像素格式

像素格式

执行ffmpeg -codecs | grep -i huffyuv表明我的 FFmpeg 构建支持三个不同版本的 HuffYUV 无损视频编解码器:

DEVI.S ffvhuff              Huffyuv FFmpeg variant
DEVI.S huffyuv              HuffYUV
D.VI.S hymt                 HuffYUV MT

HuffYUV我知道 HuffYUV MT 是多线程的,而且我的版本似乎只支持对其进行解码,但标准编解码器和ffvhuffFFmpeg 版本之间有什么区别?有这方面的文档吗?

答案1

ffmpeg编码方面,有两个主要区别。

像素格式

ffvhuff 支持更多像素格式(44 种对 3 种)。

请参阅ffmpeg -h encoder=ffvhuffffmpeg -h encoder=huffyuv了解每个编码器支持的像素格式列表。

每帧霍夫曼表

ffvhuff 支持每帧(上下文自适应)霍夫曼表,这可以减小输出文件大小。但由于它强制将线程数设为 1,因此编码速度较慢。

默认为不是使用每帧霍夫曼表。可以使用 启用它-context 1

除像素格式和每帧哈夫曼表之外,它们几乎完全相同。

答案2

HuffYUV 和 ffvhuff 编解码器之间有什么区别?

哈夫YUV

HuffYUV 是由 Ben Rudiak-Gould 提出的,作为未压缩 Y CbCr 视频的替代方案。它将帧内预测与残差的连续霍夫曼熵编码相结合。帧内预测在三种不同的预测模型之间进行选择:左、梯度和中值。

  • 第一个模型(左侧)仅使用像素 l 来预测像素 x,因为 x = l,

  • 第二个模型,梯度,预测 x 为 x = l + a -d,并且

  • 中值模型从模型左侧、模型梯度以及 x 上方的像素 a 中选择中值

请注意,模型选择不是自适应的,而是在编码之前选择一个模型,然后将其用于整个视频序列。此外,只使用一个固定的霍夫曼码熵编码表。

添加上下文:

FFvYUV 是 FFmpeg 项目开发的 HuffYUV 的扩展,用于解决 HuffYUV 的一些缺点:不使用固定的 Huffman 表,而是使用上下文自适应 Huffman 表进行熵编码。

来源平板电脑上基于人群的质量评估的无损视频编解码器比较(pdf)作者是 Christian Keimel、Christopher Pangerl 和 Klaus Diepold。

上面链接的论文包含更多信息、图像和更多资源的链接。


该编解码器由 ffmpeg 开发。

它是一种类似 huffyuv 的编解码器,只是它不向后兼容 huffyuv。但是,它的压缩率比 huffyuv 更高,支持 yv12 色彩空间,并且速度与 huffyuv 差不多

来源ffvhuff? [存档] - Doom9 的论坛

相关内容