当前位置: 代码迷 >> 综合 >> H264/AVC Profile和Level
  详细解决方案

H264/AVC Profile和Level

热度:23   发布时间:2023-12-21 07:14:34.0

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规定不同尺寸的解码速率

  相关解决方案