使用H.264建议的压缩率?

时间:2011-02-17 01:18:56

标签: video compression video-encoding h.264

注意事项:我发现这是一个非常复杂的问题,大约有一百万个细微差别,我正试图减少到一个数字......

我即将使用H.264编码进行大型视频编码项目。我们正在尝试创建多个比特率配置文件,以适应互联网连接,处理器,设备等的流式传输。

一般来说,我应该期望看到什么样的压缩比(在保持合理的质量水平的同时)?

例如,640 x360(16:9)像素视频文件@ 24帧/秒和16位颜色应该会产生未压缩文件,大约33 MB / s。

我被告知,对于该文件,500 Kbits /秒(或62 KB / s)不是不合理的视频比特率。这看起来很疯狂 - 压力超过530:1?压缩率为99.8%。我的数学错了吗?

我只是在寻找一个粗略的外部质量指南,例如“超过500倍压缩是疯狂的”或“低于400倍是浪费带宽”。我到处寻找,没有任何东西给我任何预期的压缩......

5 个答案:

答案 0 :(得分:59)

在一个名为H.264 Primer的非常有趣的文档中,根据视频的特征,给出了一个简单的公式作为计算“理想”输出文件比特率的提示:

  

[图像宽度] x [图像高度] x [帧速率] x [运动等级] x 0.07 = [所需比特率]

其中图像宽度和高度以像素表示,运动等级是1到4之间的整数,1是低运动,2是中等运动,4是高运动(运动是图像数据量,正在帧之间切换,请参阅链接文档以获取更多信息。)

因此,例如,如果我们以24 FPS拍摄1280x720视频,中等运动(相机移动速度慢的电影,场景变化不多......),预期的理想比特率为:

  

1280 x 720 x 24 x 2 x 0.07 = 3,096,576 bps =>大约3000 kbps

这纯粹是一个暗示,在我看来,准确找到理想比特率的唯一方法是逐个试错:)

答案 1 :(得分:22)

根据源视频的内容,它会有很大的不同。我稍后会谈到这一点。

640x360并不是那么大。 512kbps是非常合理的,可以说是标准的。如果你真的对质量感兴趣,可能是768kbps。

这怎么可能?一个简单的答案:有一些关于video compression的技术和事实使这成为可能:

  1. 并非所有视频帧数据结构都在常见的H.264(或其他编解码器)中是完整图像。相反,有两种类型通俗地称为
    1. 关键帧:整个视频图像的完整渲染
    2. 帧内:前一帧更改的说明。这些帧通常构成视频中绝大多数(80%-99%)的帧。
  2. H.264是“有损,和许多其他编解码器一样。它们不会重现原始源视频的逐个像素逐帧精确复制。 示例 :有损块:如果区域中除了一个像素之外的所有像素都是相同的颜色,则CODEC'丢失'一个像素。因此,CODEC不是必须存储关于帧中每个像素的信息,而是说“x1,y1到x2,y2都是颜色x”。效率很高。
  3. 这一切都比这复杂得多,在特定的编解码器和CODEC之间有数以万计的不同方法,技术和算法来实现这一目标。

    所以,回到“它将根据源视频的内容发生巨大变化”评论:您将看到的压缩率以及由此产生的质量将取决于:

    • 视频内容
    • 您对工件的容忍度(块,颜色损失,定义丢失)
    • 您设置的CODEC参数以及设置方式

    示例 :每十分钟一个关键帧的房间门(如安全摄像头)的视频将会非常高压缩率。我的背面计算结果表明这种情况压缩为15,000:1。

    由于您正在开始一个大型视频编码项目,我建议您使用以下几项来确定您的压缩率:

    • 获取您要编码的源视频样本。 100或更多具有统计相关性。
    • 使用各种参数对各种比特率进行编码,以确定哪些特性符合您的需求

    更改编码器的参数以使视频更小也会产生其他影响:

    • 更高的回放CPU要求
    • 玩家CODEC的期望。并非所有播放器都能播放所有H.264编码的视频
    • 更长的编码时间
    • 各种质量下降

    这是一个很复杂的主题。祝好运。我经验丰富的“拇指到风”测试表示,您对项目的512-768kbps非常满意。

答案 2 :(得分:8)

Compression Ratio Rules of Thumb
Compression ratios to maintain excellent quality:
– 10:1 for general images using JPEG
– 30:1 for general video using H.263 and MPEG-2
– 50:1 for general video using H.264 / MPEG-4 AVC

来自http://www.kanecomputing.co.uk/pdfs/compression_ratio_rules_of_thumb.pdf

答案 3 :(得分:2)

不要忘记正常播放MPEG只会使用YUV 4:2:0。在8位颜色深度中,每个像素仅值16位(或每4像素64位)。请,只有来自相机的RAW文件才能使用16位深度,而它必须价值数百万美元!中高级电影DVR只能提供12-14bit !!并且没有人会使用H.264来存储RAW。 H.264适用于最终产品。

在640x360 / 24p YUV4:2:0中,比特率值得:

  640x360x24x(8+4+4)/8 = 10.5MB/s

对于500Kbps,压缩率仅为172:1。这是正常的

有关YUV4:2:0的说明,请阅读:
http://en.wikipedia.org/wiki/Chroma_subsampling

答案 4 :(得分:0)

与H264环境分享我对编码的了解

如果你使用H264和High 5.0或High 7.0,那么450-512 kbits / s的比例最好。 好吧,我可以建议你,要获得与最佳质量平衡的良好比例,真正重要的关键是使用分辨率大小。  视频解决结果= 3/4 *原生/原始视频的分辨率

如果不将帧压缩到稍微小一点的分辨率,H264往往会更多地丢失细节。