【问题标题】:How does variable bit rate video compression average out per frame?可变比特率视频压缩如何平均每帧?
【发布时间】:2010-12-17 05:01:58
【问题描述】:

可变比特率在什么时间范围内用于平均?例如,假设我想以每秒 2000 千比特的速度对 60 秒的 640 x 280 25 fps 视频进行编码。

编解码器是否查看视频的第一秒(25 帧),确定如何将这 25 帧压缩为 2000 千比特,然后移动到视频的下一秒(25 帧)?

还是它分析整个视频(可能前 10 秒是纯黑色的)并计算出它可以在最后 50 秒使用超过 2000 kb,但仍然保持整个视频平均 2000 kb?

p>

还是基于特定编解码器的关键帧间隔。如果我将关键帧间隔设置为 250(10 秒的视频),编解码器会在 10 秒的时间段内分配 20,000 千比特吗?

我确信所有不同的编解码器实际上是不同的,但我认为必须有一个最佳实践(或者至少一个我可以谷歌的术语)。

【问题讨论】:

    标签: compression video-encoding bitrate


    【解决方案1】:

    我不知道任何特定编解码器的定义或编码器的实现,但我熟悉 VBR 背后的原理和动机(更多地涉及音频,但我相信概念是相同的)。

    这里有两个主要类别:单通道和多通道。单程(即时)编码速度更快。它只通过一次视频并进行编码。对于整个视频不可用于事先分析的广播和其他情况,可以实时完成。您的问题似乎主要涉及多遍。虽然它被称为多通道,但通常意味着只有两个。更重要的是,您似乎在询问多通道 VBR 编码,其中指定了平均值 (ABR) 并且必须遵守。

    VBR 允许由于更高的颜色深度、数量、边缘数量等(或在音频中 - 大量复音、混合频率等)而需要它的部分使用更高的比特率,而对于具有更少的那些品质(音频:单一声音,只有节奏的部分等),极端的是纯色或接近它的整个帧(沉默)。与影响静止图像压缩的标准基本相同。

    因此,在我看来,编码器坚持指定平均值的最有效方法是在整个文件中以某个周期性频率对单个帧进行采样。比如说,整个视频每秒两次。 (我不知道这是否在现实估计的范围内,但你明白了)。这有望很好地估计视频字符(因为没有更好的词),并允许最有效地分配这些宝贵的资源。

    还应该注意的是,有时可以使用一个最小和最大比特率范围,因此比特率在任何时候都不能小于 X 或大于 Y。选择合适的范围显然取决于分辨率。

    至于谷歌的条款 - 尝试多通道编码和 AVR。像往常一样,维基百科勾勒出一张相当不错的粗略图片,足以让你知道去哪里进一步阅读http://en.wikipedia.org/wiki/Variable_bitrate#Multi-pass_encoding_and_single-pass_encoding

    【讨论】:

      【解决方案2】:

      一个你可以用谷歌搜索的术语——多通道编码和速率预测。

      它的作用(除了提供最佳质量编码之外)是编解码器有效地对视频进行两次编码,第一次记录由固定比特率导致的质量损失,第二次合并该信息以保持相同水平的无论视频中的变化量如何,质量都是如此。

      速率预测/速率控制,是一个非常引人入胜的话题,尤其是对于实时的单通道编码。编解码器必须对未来场景的复杂度做出良好的估计,以使整体比特率保持在目标范围内。

      通道允许的最大比特率限制(例如,您可能需要 1MBit/s 的平均比特率,但内容不能超过 2MBit/s 超过 5 秒,因为播放器中的缓冲)使这项任务更具挑战性.

      查看此处了解更多提示: http://www.pixeltools.com/rate_control_paper.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多