H264/AVC Profile和Level

Profile对解码器设置算法约束,确定解码器应该能够处理哪些解码工具。

Level对解码器设置数据处理和存储约束,决定解码器应该能够存储、处理和输出多少数据。

一个H.264解码器可以通过提取profile和level参数,从而确定解码器的能力是否支持这些参数,进而确定它是否能够解码某个特定的流。


Profile

264规定了一系列profile,每个profile都指定了264可用的编码工具的一个子集。profile限制了264解码器所需的算法。因此,符合264 Main Profile的解码器只需要支持Main Profile中包含的工具;High Profile解码器需要支持进一步的编码工具;以此类推。每个profile旨在对某一类应用有效。例如,Baseline Profile对于低延迟、“会话”应用程序(如视频会议)是有效的,具有相对较低的计算需求。Main Profile适用于基本的电视/娱乐应用程序,如标准定义电视服务。High Profile在Main Profile的基础上添加了一些工具,提高了压缩效率,适用于分辨率更高的服务,如高清电视。

1. Baseline / Constrained Baseline / Extended / Main Profile

下图显示了Baseline / Constrained Baseline / Extended / Main Profile所支持的工具。

2. High Profile

下图展示了4种High Profile和Main Profile的关系示意图

这些Hight Profile都添加了支持高质量应用程序的编码工具——高清晰度、扩展位深、更高颜色深度,但代价是解码复杂度的升高。High Profile可以在相同的Level上使用更高的编码数据速率(higher coded data rate)。

3. Intra Profile

下图展示了四个Intra Profile和Main Profile:

这些Intra Profile可能对视频编辑(video edit)等应用很有用,这些应用需要对单个帧进行高效编码,也需要对编码帧进行完全随机访问,因此不需要Inter的部分。


Level

SPS为已编码的码流定义了Level的概念:施加于264码流中语法元素值的约束。Profile和Level的组合限制了解码器的最大计算和存储需求。

Main Level约束如下所示:

  • Maximum macroblock processing rate(MaxMBPS):解码器每秒必须处理的宏块的最大数量(16x16的亮度+相应的色度)
  • Maximum frame size(MaxFS):解码帧中,宏块数量的最大值
  • Maximum Decoded Picture Buffer size(MaxDPB):解码器中存储已解码图像的最大内存空间值
  • Maximum video bit rate(MaxBR):已编码视频码流的最大值(maximum coded video bitrate)
  • Maximum Coded Picture Buffer size(MaxCPB):解码前存储(缓冲)编码数据所需的最大内存空间值
  • Vertical motion vector range(MaxVmvR):竖直运动矢量的最大范围
  • Mininum Compression Ratio(MinCR):未压缩视频帧与压缩视频数据大小之间的最小比率
  • Maximum motion vectors per two consecutive macroblocks (MaxMvsPer2Mb):在level大于3时才指定的,对(MVx, MVy)的数量的限制,出现在任何两个连续的解码宏块中。

在特定level上操作的解码器能够处理该级别或该级别以下的任何level约束。例如,2.1 level的可以处理1.1、1.2、1.3、2、2.1 level。下面是level可以规定的一些例子:

1. level规定图片尺寸

2. level规定不同尺寸的解码速率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值