HEVC中級別(Level)計算

 

在前面的文章檔次、層、級別中已經介紹過級別(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章