图片来源:duduf
当使用OpenEXR格式的时候,用哪种压缩算法比较好呢?答案似乎很模糊。
首先,什么样的压缩是最适合的?就是文件尽可能小的同时读写速度尽量和软件适配。
画面的类型
本文中,我们会根据下列几种画面类型讲解:
· 带颗粒感的视频或动画
带颗粒感的摄影画面(包括逼真CGI)或动画
· 视频
没有颗粒感的摄影画面(包括逼真CGI)
· 动画、图形
带明显风格的2D动画、运动图形、3D动画或3D通道
· 带大范围平实颜色的画面
基本由实色构成的画面,比如带有alpha通道或ID通道的画面
· 纹理贴图
多分辨率文件
有损(最终)输出
对于最终输出,你可能不需要无损压缩。有了正确的设置,输出的文件可以很小,而且对画质的损伤也很小,做视频母版或备份可以用这种方式存储。
这样的情况下,DWA(压缩程度很小)是非常适合的。如果你要用ffmpeg,可以不用DWA,试试PXR24(无损)。
RLE能非常高效地压缩实色(比如alpha通道),不会损伤画质。
无损(中间)输出
如果导出文件是为了再导入合成软件中,那你可能想用无损压缩。
如果你用AOV(一般来自3D软件)渲染画面,并且接收接受一点点(非常轻微的)画质损失,则DWA是最好的选择,因为它只压缩RGB通道,对alpha通道使用RLE,对余下通道使用ZIP。
此时要注意通道名称:
有损通道名称:R、G、B、Y、RY、BY
使用RLE的通道名称:A
使用ZIP的通道名称:以上名称外的任何名称(Red, red, r, Green, green, g, Blue, blue, b, x, y, z, U, u, V, v, 等)
比如,如果你的通道名称为大写的XYZ,则Y通道会成为有损压缩通道,可以使用小写的“xyz”。
如果画面没有颗粒感:
· 如果不需要精确到全32位浮点,PXR24是最好的选择。
· 如果需要精确到全32位浮点,ZIP是最好的选择。如果画面有颗粒,则PIZ永远是最好的选择。
对于立体画面,最好的选择是ZIP。
对于带类似alpha通道的实色画面,最好用RLE。(T)
作者:Nicolas Dufresne