【问题标题】:What do these FFmpeg APNG encoder prediction methods mean?这些 FFmpeg APNG 编码器预测方法是什么意思?
【发布时间】:2021-04-13 13:56:51
【问题描述】:

通过运行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 或其他任何地方都找不到任何文档。

【问题讨论】:

  • 谢谢,就是这样。我假设“混合”就是最好的?
  • 说实话,我不知道。也许this code 有答案。我看到它迭代了其他过滤器类型,它似乎选择了具有最低 成本 的任何东西。

标签: ffmpeg png image-compression apng


【解决方案1】:

PNG specification 指定了 5 种不同的过滤器类型,用于使图像数据在压缩前更易于压缩:none、sub、up、average 和 Paeth。每个过滤器的想法是从附近的像素中推导出当前像素,然后只存储多少来调整该估计以获得真实值。图像的每条扫描线都有一个为其指定的过滤器。每个过滤器在不同的情况下效果最好。过滤器不会影响实际的图像数据,只会影响它的存储方式。

mixed 不是过滤器,而是告诉 ffmpeg 为每一行选择最佳过滤器。这也称为动态过滤。这会使编码变慢,因为需要为每一行尝试 5 种不同的过滤器,但可以产生更好的压缩效果。使用minimum sum of absolute differences method 找到最佳过滤器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2014-12-24
    相关资源
    最近更新 更多