HEVC的參考幀管理

DPB大小

參考幀是存放在DPB中的。所以談到參考幀管理,必須先說明DPB的相關概念。

DPB是已解碼幀緩衝區。即需要緩衝多少幀來完成所需的解碼工作。當解碼器完成解碼一幀的動作之後,是否將當前幀的結果放入DPB呢?如何放置呢?HEVC定義了RPS來對其進行操作。RPS相關的操作是在解碼CTU之前進行的。相比AVC中對參考幀進行的滑動窗管理或是標記操作,HEVC對參考幀的管理作了一定的簡化。

在SPS中,(sps_max_dec_pic_buffering_minus1+1)說明了DPB的大小。已解碼幀緩衝區(DPB)的大小以編碼幀大小爲單位。不同的級別定義了最大可能的圖像大小,所允許的DPB的大小可以由這個允許圖像的最大尺寸以及當前編碼圖像的尺寸的比率來推算。比如在級別5.1,允許大最大圖像大約是4096x2160。如果現在要編碼一個HD(1920x1080)圖像序列,則允許的最大DPB數量是16,如果要編碼4Kx2K圖像序列,就只允許最大有6個DPB了。

需要指出的是,DPB大小並不是當前幀解碼時所需要的參考圖像數目。HEVC規定解一幀所需的參考幀數目不能超過8。具體從DPB中哪些幀用來解當前幀,是由RPS定義的。


RPS

HEVC中提出了RPS的概念來對參考幀的選擇進行管理。

RPS也就是Reference Picture Set,即參考幀集。也就是可以選用的參考幀的集合。集合的每個元素是一種參考幀的排隊方案。按照參考幀POC與當前幀POC的大小的相對關係排成一隊。然後按照RPS的語法,來選出對應的reference_list_x。

對參考幀隊列中的圖像(即DPB中的圖像幀)可分爲三類:前向參考幀、後向參考幀和非參考幀。與H.264相似,前向、後向參考幀與list_0、list_1有關係,但不是對應關係。在構造參考幀列表時,會對DPB中的所有幀作遍歷,將POC小於當前幀的作爲前向參考幀備選,將POC大於當前幀的作爲後向參考幀備選。這時,可以通過指定RPS中的ID值來選擇用哪些幀來形成真正的參考幀列表。在即時RPS中,通過(與參考幀POC差,是否選入參考列表)兩個參數對備選參考幀序列再作篩選,選出真正用於參考的參考幀序列。是不是其中標記爲非參考幀的圖像就可以被剔除出DPB了呢?當然不是,只是在當前RPS中的指定ID被選中時,這個圖像不作爲參考幀而已。

爲了支持即時參考幀與長時參考幀,RPS分爲兩種,即時RPS與長時RPS、



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