HEVC 參考幀管理(RPS)

分析HM參考幀的管理:

HEVC採用了參考幀集(RPS)的技術來管理已解碼的幀,用作後續圖像的參考。與之前的視頻編碼標準中參考偵管理策略不同的是,HEVC中的RPS技術,通過直接在每一幀開始的片頭碼流中傳輸DPB中各個幀的狀態變化,而H.264/AVC中的滑動窗和MMCO (Memory ManagementControl Operation)這兩種參考幀管理技術,是通過傳輸每一個片的DPB的相對變化來實現,一但發生數據丟失,將會有持續的影響。

1、參考幀管理基本知識

H.263, H.264/AVC和HEVC中都採用了多幀參考技術,來提高幀間預測的準確性。解碼已經完成的圖像,被緩存在DPB中,供後續的幀用作參考圖像,因此,標準需要對DPB中的圖像進行管理。DPB中的每一個圖像,有三種狀態“Unused for reference”、“Used for short-termreference"和”Used for long-term reference",這三種狀態之間的轉換,是通過解碼圖像標記過程進行控制的。H。264/AVC中採用了滑動窗和MMCO兩種方式。滑動窗管理方式,顧名思義,是以DPB可以存放的幀數爲窗口,隨着當前解碼的圖像,以先入先出的方式,將新的解碼圖像移入,將超出窗口的解碼圖像移出,因此,DPB中保存的是最近解碼的多個圖像。MMCO是通過在碼流中傳輸控制命令,完成對DPB中圖像的狀態標記的,它可以將一個“Used for reference“ (short-term or long-term)標記爲“Unused for reference也可以將當前幀或者“Used for short-termreference“的幀,標記爲“ Used for long-term reference ”等。

2、HEVC 參考幀集技術(RPS)

爲了增強參考幀管理的抗差錯能力,HEVC採用了參考偵集技術,它通過直接在每一幀開始的片頭碼流中傳輸DPB中各個幀的狀態變化,將當前幀以及後續幀可能用到的參考幀在DPB中都進行描述,描述以POC作爲一幀貞的身份標識。因此,它不需要依賴於前面幀的DPB狀態,從而增強了抗差錯的性能。簡言之,每幀的第一個片中包含一個RPS,它是由一組“ΔPOC”(當前幀POC與其POC的差)和“是否用作當前幀/後續偵的參考”這些標識信息組成,DPB根據片頭中RPS的描述,對參考幀進行標記。例如,POC=4的B幀,只能參考POC=0的I幀,其 RPS 爲{(ΔPOC =3,UsedByCurPic)}; POC=3 的 b 幀,可以參考 P0C=4和 P0C=2 的兩個B幀,其 RPS 爲{(ΔPOC = -1,UsedByCurPic), (ΔPOC=1,UsedByCurPic)};若POC=0的I幀,不再出現在RPS中,則它被標記爲“Unused for reference",然後從DPB中移除。

參考幀RPS更新:

a)       在解碼P0C=1的幀前,DPB中有三個參考幀,分別是POC=0,4,2的幀;

b)       當接收到P0C=1的片頭中傳輸的RPS信息(描述瞭解碼P0C=1的幀時,DPB的狀態,即POC=0和2的幀用作當前幀的short-term參考,P0C=4的幀用作後續幀的參考)後,對DPB中的幀進行狀態的標記,將POC=0和2的幀標記爲“Used for short-termreference”,並且保留POC=0的幀,以用作後續參考;然後解碼P0C=1的幀,解碼完成,將P0C=1的幀放入DPB中。此時,DPB中有POC=0, 4,2, 1四幀;

c)       當接收到P0C=3的片頭中傳輸的RPS信息(描述瞭解碼P0C=3的幀時,DPB中,P0C=2和4的幀用作當前幀的short-term參考,POC=0的幀用作後續幀的參考,POC=1的幀不再用作參考)後,對DPB中的幀進行狀態的標記,將 P0C=2 和 4 的楨標記爲 “Used for short-termreference將 P0C=1的幀移出DPB,然後解碼P0C=3的幀,解碼完成,將其放入DPB中。此時,DPB中有POC=0,4, 2,3四幀。

3 、RPS預測

從上述描述中可以看出,在用POC值對參考幀進行身份描述時,不同幀的RPS中的多個ΔPOC值的差值是相同的,例如上例中,POC爲1的幀的RPS描述中,ΔPOC值分別是{1, -3,-1}, POC爲3的幀的RPS描述中,ΔPOC值分別{3,-1,1}爲ΔPOC之間的差值爲2。因此,不同幀的RPS描述中,ΔPOC值仍然可以進行預測,即DeltaRPS = ΔPOC(RPScurr)- ΔPOC(RPSref),以進一步減少傳輸代價。

4、HM中的多參考幀配置

參考軟件HM在Random Access配置中採用了 Hierachical-B的GOP結構,參考幀數目爲4 (或者3),如圖3-3所示,但在編碼配置中,活動的參考幀數目爲2,即只對最近的兩個參考幀進行運動估計和運動補償。與此類似,在LowDelay配置下,參考幀數目爲4,活動的參考幀數目爲4。

5、HM多參考幀優化選擇

從前文的分析中,HEVC及其參考軟件HM都支持多參考幀技術,HM中可以配置4或者2個活動參考幀,這使得每個PU的運動估計的複雜度成倍增加。HEVC參考軟件中仍然採用傳統的塊匹配技術進行運動矢量的搜索,並選擇最佳的預測方向和參考幀索引。其過程可以簡單總結爲以下流程:

(1)  從ListX=0開始(即前向預測),將參考索引iReflndex設置爲0;

(2)  在當前iReflndex下,生成高級運動矢量預測(AMVP: Advanced MotionVector Prediction)候選列表,並進行AMVP索引的選擇;

(3)  以(2)中選中的AMVP爲起始點,在當前iReflndex幀內,以SA(T)D+λpred*Bits爲代價進行運動估計,得到最佳的運動矢量和最小代價;

(4)設置 iRefIndex=iRefIndex+l,重複步驟(2)和(3),得到當前 iReflndex下的最佳運動矢量和最小代價;直到參考幀隊列ListX中的所有標記爲“Used for Reference“的參考幀都完成最佳運動矢量和最小代價的計算,並從中挑選代價最小的iReflndex作爲當前預測方向下,最佳的參考索引;

(5)  將ListX=1 (即後向預測),重複(2)到(4)步驟,並挑選代價最小的iReflndex作爲當前預測方向下的最佳的參考索引;

(6)  固定以List0 (或者List1)中最佳的參考索引和運動矢量爲雙向預測中的其中之一,對List1(或者list0)中所有參考索引進行(2)到(4)步驟,並找到最佳的雙向預測參考索引和運動矢量。

(7)   比較前向預測、後向預測以及雙向預測的最小代價,選擇出最佳的預測方向。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章