HEVC中级别(Level)计算

155 篇文章 135 订阅
66 篇文章 23 订阅

 

在前面的文章档次、层、级别中已经介绍过级别(level),H.265共定义了13个级别,1 2 2.1 3 3.1 4 4.1 5 5.1 5.2 6 6.1 6.2。那么如何选择level呢?

官方参考序列的配置文件已经为我们写好了level等参数,如果我们要使用自己的序列那么如何设置level呢?

级别(Level)是用来约束 分辨率、帧率 和 码率 的。如下图所示:

Max Luma Picture Size(samples)表示每帧亮度分量的像素数。

Max Luma Sample Rate(samples/s)表示每秒的亮度像素数。

如何通过分辨率和帧率推断level?

每个level下,图像的宽和高都要小于等于​\sqrt{8*Max Luma Picture Size},避免图像形状过于极端引起解码问题。

例如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。可以看到,下面的配置文件满足这个要求。

#======== File I/O ===============InputFile                     : ../../origCfP/Johnny_1280x720_60.yuvInputBitDepth                 : 8           # Input bitdepthInputChromaFormat             : 420         # Ratio of luminance to chrominance samplesFrameRate                     : 60          # Frame Rate per secondFrameSkip                     : 0           # Number of frames to be skipped in inputSourceWidth                   : 1280        # Input  frame widthSourceHeight                  : 720         # Input  frame heightFramesToBeEncoded             : 600         # Number of frames to be codedLevel                         : 4

最大存储帧数、DPB

最大存储帧数与DPB有关——DPB:decoded picture buffer,解码图片缓存区。在做视频解码时,需要将最近的若干幅参考帧缓存起来,这个缓冲区就叫做DPB。所以最大存储帧数也是最大参考帧数(ref)。

当DPB中的图像达到了该level下最大尺寸,则DPB只能存放6帧图像。如果DPB中的图像小于该level下最大尺寸,则DPB至多能存放16帧图像(取决于图像尺寸)。

level还限制了每帧图像水平和垂直方向最大tile数量,以及每秒最大tile数。

感兴趣的请关注微信公众号Video Coding

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值