Frequently Asked Question

Due to the computational demands of decoding JPEG 2000 images and rendering images up to 4k in real-time, easyDCP Player has very specific requirements.

First, the performance bottleneck must be identified. To do that, enable the fps statistics (Playback | Statistics). The statistics list the data rate and the overall theoretically possible fps. When it says 100 fps, it means that decoding (or reading or rendering) a single frame takes 1/100th of a second in average. It does not mean that it actually does display 100 frames per second. easyDCP Player reads, decodes and renders images in parallel, i.e. either disk-read, CPU processing power or GPU-processing power or OpenGL rendering might be the bottleneck.

If "disk read" is the bottleneck:

Disk read sometimes takes too long when a DCP is first played. Play a few minutes and then restart from the beginning to benefit from the operating systems´s cache. Alternatively, copy the package to a local drive, preferably to a SSD.

If "decoding" is the bottleneck:

Please read the hardware requirements carefully to determine if your system should be capable of real-time playback.

If you know your system is too weak, but want to playback DCPs in real-time nonetheless, you can leverage from the JPEG 2000 compression´s scalability. Either change the decoder´s performance-to-quality trade-off in Options | Codec | <your current codec> or alternatively discard one or more resolution levels using the drop-down box in the main control bar. Enabling the "Fit to Window" option will cause the images to be scaled up to the window´s current size, which causes virtually no overhead.

If "rendering" is the bottleneck:

Since v3.0 easyDCP Player has two render modes: V-sync-independent rendering and V-Sync-rendering.

  •  V-sync-independent rendering: This was the only option in all versions prior to v3.0. It is still the right choice if the display runs with 60 Hz (default for "regular" computer monitors). It is also the fallback option, if V-Sync is not available or not enabled.
  •  V-sync-rendering: Especially, if the target display is a LCD-TV or a projector, or if the max. refresh rate is significantly lower than 60 Hz (e.g. only 30 Hz), then the V-Sync rendering mode should be selected. It can be activated in Options | Video | V-Sync, but only if Options | Video | General Rendering | V-Sync is currently on. Whether or not V-Sync is actually made available to easyDCP Player by the graphics driver is stated in round brackets next to the Options | Video | General Rendering | V-Sync checkbox. When you start playback in V-Sync-Rendering mode, the package´s frame-rate as well as the display´s refresh rate will be started in curly brackets next to the "Render"fps line (e.g. "Render (24 fps @ 24 Hz) in the statistics window. easyDCP will now explicitly translate between the packages´s frame-rate and the display´s refresh rate, which gives best results when both rate are equal or when the display´s refresh rate is an even multiple of the package´s frame-rate.

You experience very heavy stuttering ? If you have multiple displays attached to your computer, it is important that the V-Sync rate is identical to the refreh rate of the display, where easyDCP Player´s canvas is located. To make sure that the display is actually the V-Sync-Display open up and verify that the measured Hz-rate matches the display´s refresh rate.

Hint: Configure the display, where the canvas is loacated, to be your main display. (Windows 7: right-click desktop | Screen resolution | <select display> | Check "Make this my main display"

Hint: When using two Nvidia graphics cards (e.g. one for rendering and one for decoding with CUDA), it might be necessary, to manually specify the graphics card that will be rendering: NVIDIA Control Panel | 3D SSetings | Manage 3D settings | Global Settings | OpenGL rendering GPU | <select the graphics card that drives the display where easyDCP Player´s canvas is located>. We found that this can make a huge difference in terms of render performance.

If there is no obvious bottleneck:

Is´s likely the rendering that causes the stuttering. See "If `rendering`is the bottleneck:".