视频等级level划分
1、H.264共定义了13个级别,1、2 、2.1、3、3.1、4、4.1、5、5.1、5.2、6、6.1、6.2。
级别(Level)是用来约束分辨率、帧率和码率的。
H264等级的计算
frameMbs = Math.ceil(nwidth/16) * Math.ceil(nheight/16);// 计算每帧宏块数
secondMbs = frameMbs * nfps;// 计算每秒宏块数
DpbMbs = frameMbs * nref;// 计算DPB宏块数
最大存储帧数与DPB有关——DPB:decoded picture buffer,解码图片缓存区。在做视频解码时,需要将最近的若干幅参考帧缓存起来,这个缓冲区就叫做DPB。所以最大存储帧数也是最大参考帧数(ref)。
当DPB中的图像达到了该level下最大尺寸,则DPB只能存放6帧图像。如果DPB中的图像小于该level下最大尺寸,则DPB至多能存放16帧图像(取决于图像尺寸)。
level还限制了每帧图像水平和垂直方向最大tile数量,以及每秒最大tile数。
参数
{Level:"1", MaxDpbMbs:396, MaxSecondMbs:1485, MaxFrameMbs:99}
{Level:"1.1", MaxDpbMbs:900, MaxSecondMbs:3000, MaxFrameMbs:396}
{Level:"1.2", MaxDpbMbs:2376, MaxSecondMbs:6000, MaxFrameMbs:396}
{Level:"1.3", MaxDpbMbs:2376, MaxSecondMbs:11880, MaxFrameMbs:396}
{Level:"2", MaxDpbMbs:2376, MaxSecondMbs:11880, MaxFrameMbs:396}
{Level:"2.1", MaxDpbMbs:4752, MaxSecondMbs:19800, MaxFrameMbs:792}
{Level:"2.2", MaxDpbMbs:8100, MaxSecondMbs:20250, MaxFrameMbs:1620}
{Level:"3", MaxDpbMbs:8100, MaxSecondMbs:40500, MaxFrameMbs:1620}
{Level:"3.1", MaxDpbMbs:18000, MaxSecondMbs:108000, MaxFrameMbs:3600}
{Level:"3.2", MaxDpbMbs:20480, MaxSecondMbs:216000, MaxFrameMbs:5120}
{Level:"4", MaxDpbMbs:32768, MaxSecondMbs:245760, MaxFrameMbs:8192}
{Level:"4.1", MaxDpbMbs:32768, MaxSecondMbs:245760, MaxFrameMbs:8192}
{Level:"4.2", MaxDpbMbs:34816, MaxSecondMbs:522240, MaxFrameMbs:8704}
{Level:"5", MaxDpbMbs:110400, MaxSecondMbs:589824, MaxFrameMbs:22080}
{Level:"5.1", MaxDpbMbs:184320, MaxSecondMbs:983040, MaxFrameMbs:36864
例如:1280*720*60
frame=80*45=3600,等级Level 3.1以上
sencondMbs=3600*60=216000,等级Level 3.2以上
二、H265等级
H265共定义了13个级别,1、2 、2.1、3、3.1、4、4.1、5、5.1、5.2、6、6.1、6.2。
级别(Level)是用来约束分辨率、帧率和码率的。
如下图所示:
Max Luma Picture Size(samples)表示每帧亮度分量的像素数。
Max Luma Sample Rate(samples/s)表示每秒的亮度像素数。
等级计算
samples=width*height
samples=samples*帧频
每个level下,图像的宽和高都要小于等于sqrt(8*samples)。
例如480P(832x480)视频,每帧亮度分量的像素数=832x480=399360,可知其level必须在3以上,如果帧率为60,每秒的亮度像素数=832x480x60=23961600,所有其level为3.1或以上。
例如720P(1280x720)视频,每帧亮度分量的像素数=1280x720=921600,可知其level必须在3.1以上。当level为4时,其帧率至少为66846720/921600=72.5。
例如:1280*720*60
samples=1280*720=921600,等级Level 3.1以上
samples=921600*60=55296000,等级Level 4以上
例如:1920*1080*60
samples=1920*1080=2073600,等级Level 4以上
samples=2073600*60=124416000,等级Level 4.1