Very slow EXR export

The last two exports have been excruciatingly slow when using EXR. Anything I’m missing, or is there an issue?

Project is a 279 frame relatively simple remove job. UHD footage. Working on decent fast system (MacPro, 64GB memory, fast RAID disk).

When I save the same job as a Quicktime move file it takes 38 second. When I save it as EXR sequence it takes 15 minutes! That’s a big productivity hit to have to wait for that.

I do prefer EXR because I’m round-tripping from Resolve and start with an EXR sequence. That keeps color space and gamma simple and less error prone.

Mocha Pro 2019 Build 6.0.1

Any help is appreciated.

Check your compression type for the .EXR, if it is PIZ Wavelet it will be a lot slower, try Zip 1 Scanline instead for the compression type.

Quicktime will be faster because you have much less data to process and a very lossy compression algorithm vs .EXR which is nearly lossless compression type. Also depending on the color you need you may only need 16 bit vs 32 bit. If at all possible you can color your footage and place it into a smaller colorspace to also reduce image size.

However this is all dependent on your final deliverable and form factor, i.e. (Television, feature, you tube, mobile, tablet.).

hope this helps!

That makes sense. 16bit float w/ compression is sufficient.

However, I cannot find any settings inside Mocha Pro where these EXR parameters are changed. It’s not in preferences, the export dialog, or in the manual. I must be missing something?

Inspecting the file with mediainfo it shows ZIP compression. It doesn’t indicate 16 vs 32bit in any metadata I can see. But it’s 15MB for a UHD frame which is the same size it was exported from Resolve as 16bit float w/ PIZ.

I realize EXR is slower because of the higher data rate and individual files which causes filesystem overhead. But compared to Resolve or Silhouette the MochaPro EXR exports are exceptionally slow, which was made me think something might be off. Especially since in MochaPro it’s already pre-rendered, it’s a pure export. In Silhouette it’s still doing the render at the same time.

unfortunately you would need to re-render an image sequence for any software package to utilize the smaller file type, there is not going to be a setting to change the compression type or bit depth, you can really only do that with colorspace.

But if you are talking about rendering/writing out to that specific bit depth and compression i don’t think mocha has settings to do so, this is why i suggest you re-render from nuke, resolve or similar so that you are giving Mocha the 16 bit half float, zip 1 scanline compression and bit depth.

I cant speak to how Mocha Pro handles .EXR files types and why it may be faster in other software packages but i can say that 32-bit PIZ wavelet is much slower than other .EXR compression’s.

Also i think Mocha Pro does a proxy during a remove and when you click export it actually writes the full file, the reason i say this is because in the preferences i only see the ability to output results in .tiff and .dpx, i do not see a .EXR setting. This would need to be confirmed from our friends at Boris FX. Maybe JP can shine some light on this subject. @jps

Thanks. Yes, that syncs with my understanding.

Would be interesting to know if on export Mocha reads the TIFF proxy and uses that for export or repeats the render step. I thought it’s the former, but might be wrong.

For context: I’m working on an episodical grade at the moment and there are are 4 clips that need removal of some items the crew missed. So this is a simple round-trip from Resolve. Render out clip from Resolve in 16bit float PIZ EXR, run remove in MochaPro, render out as EXR again to return to Resolve to replace original clip and do final render there. In two of the clips, I’m doing a second pass in Silhouette for some additional paint tool steps for another remove step.

@vfx.agarcia thanks for mentioning me on this thread, I spent a while investigating Mocha’s EXR performance today and have found some improvements that should make it into the next maintenance release.

To answer your questions about the render process, when you render any of the modules in Mocha, each full-res frame is rendered to an intermedia file in the results folder. This will be at full project bit depth, which for any EXR-based project is 32-bit float, as Mocha doesn’t support half internally. This is the reason we only offer DPX and TIFF as intermediate formats, these are capable of losslessly containing all the internal formats Mocha can produce. When you use File | Export Rendered Clip… Mocha reads back those intermediate files and exports them as EXR.

For EXR, we always export as half float with zip 1 scanline as you noticed. We could be offering more control here but implementing that is on the backburner until we make some other major changes to our image and movie file support.

1 Like

Thanks for the follow-up and explaining the render process.