通过运行ffmpeg -h encoder=apng
,我得到了:
APNG encoder AVOptions:
-dpi <int> E..V..... Set image resolution (in dots per inch) (from 0 to 65536) (default 0)
-dpm <int> E..V..... Set image resolution (in dots per meter) (from 0 to 65536) (default 0)
-pred <int> E..V..... Prediction method (from 0 to 5) (default none)
none E..V.....
sub E..V.....
up E..V.....
avg E..V.....
paeth E..V.....
mixed E..V.....
-pred
指定的这些预测方法之间有什么区别?
我在ffmpeg.org或其他任何地方都找不到任何文档。
PNG规范指定了5种不同的过滤器类型,用于在压缩图像数据之前使其更具可压缩性:none、sub、up、average和Paeth。每个滤波器的想法是从附近的像素推导出当前像素,然后只存储调整估计值以获得真实值的量。图像的每条扫描线都有一个指定的过滤器。每个过滤器在不同的情况下效果最好。过滤器不会影响实际的图像数据,只会影响图像数据的存储方式。
mixed
不是一个过滤器,而是告诉ffmpeg为每一行选择最好的过滤器。这也被称为动态过滤。这使得编码速度变慢,因为每行需要尝试5个不同的滤波器,但可以获得更好的压缩效果。使用绝对差分最小和法找到最佳滤波器。