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.
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 http://www.vsynctester.com/detect.html 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:".