HEVC中的快速RDOQ方法

2021-10-10 19:49:33 字數 3125 閱讀 3913

儘管rdoq顯著提高了hevc的編碼效能,但是在用rdo準則優化操作時,確定各變換係數的最佳量化電平需要較高的計算複雜度。

本文中,首先提出一種跳過所有零編碼單元的有效方法;然後,進一步提出一種快速rdoq方法(通過跳過所有除dc係數的量化零塊(aqzb-dc)的優化步驟)。此外,建立aqzb-dc的rate difference模型,以選擇最優量化電平。 總結

rdoq的高複雜度主要表現在它需要以rdo的方式為每個變換係數確定最優量化電平。rdoq可以降低3.02%的位元率,但是帶來了超過12%的計算複雜度。

本文從不同角度提出一種快速rdoq方法:首先,高效檢測全零塊;此外,早期檢測一種新型別的塊(aqzb-dc);然後,推導aqzb-dc的量化電平確定方案。

量化結果的浮點型別qcfloat和它的向下捨入整型qcceil表示如下:

其中,coeff代表變換係數,m是乙個與qp有關的倍增因子。offset與幀型別有關。shift與tu尺寸和畫素位深度有關。量化後可以得到兩個可選的量化值:

然後,編碼器通過計算原始cg和全零cg的rd cost來決定當前cg係數是否設定為全零。最終,以rd方式確定tu中最後乙個非零系數字置,以節省變換係數的位元率。

綜上所述可以發現,rdoq包含了大量的迭代,計算乙個tu中每個係數或者cg的失真和位元率是非常耗時的。此外,位元率計算涉及上下文模型更新,這就進一步惡化了演算法複雜度。因此,有必要提出新方法簡化rdoq,該方法側重於量化電平的確定。

首先定義一種新的塊:除了直流係數的全量化零塊(aqzb-dc)。aqzb-dc經過量化後在dc位置只包含乙個非零係數。下圖描述了提出的快速rdoq演算法過程,量化跳過方法適用於全零塊。然後,建立乙個量化電平決策模型來為aqzb-dc確定最優量化電平。

rdoq實現了顯著的編碼增益。然而,當量化電平為0時,沒有更多的位元節省。因此,rdoq對全零塊的編碼效能沒有任何影響。如果全零塊跳過量化過程會節省時間。對於aqzb-dc塊,如果早期**量化電平,就可以降低編碼複雜度。下表展示了aqzb-dc塊所佔的百分比。

其中,aqzb-dc ratio代表tu中aqzb-dc的比例,hit ratio代表aqzb-dc塊的dc係數保持原始電平(qcceil)的概率。aqzb-dc佔據了整個tu的超過18.5%(全零tu除外)。然而,在ra和ld配置下,分別只有37%和32%的aqzb-dc塊保持了原始的量化電平。因此,提出量化電平決策模型來為aqzb-dc塊**最優量化電平是合適的。

與對tu中所有係數進行量化處理不同,我們從下面式子對塊型別檢測進行推導閾值(thdzero)。

如果qcfloat小於1,向下捨入的結果qcceil等於0。thdzero就可以推導如下:

如上式所示,在沒有量化的情況下,thdzero下的變換係數coeff設為0。

注意到thdzero的值和tu尺寸和qp密切相關。因此,我們只需要根據編碼器初始化階段的tu尺寸和qp對來計算thdzero。提出的檢測方法可以描述為:

為了對aqzb-dc塊**最優電平,基於qcceil和qcfloor之間的位元速率和失真差異建立乙個量化電平決策模型。

引入△j模型代表tu的rd cost差異:

其中,jceil和jfloor分別代表qcceil和qcfloor的rd cost。△d和△r代表兩個候選值之間的失真和位元速率差。最優量化結果通過△j的值產生。△j為負值,代表qcceil是最優的,並最終在rdoq過程中被選擇。所以就有下面的推導:

量化電平決策模型基於上式來建立。△r和△d/λ可以根據aqzb-dc的係數電平得到。這個模型的具體推導過程如下:

首先,量化誤差(失真)dq等描述如下:

其中qcq是量化結果。

注意到,當qcceil等於2時,rdoq很少將值從2改到0。所以在這種情況下,只考慮2和1作為量化候選值。從上面的一些式子推導可以得到:

然後,引入位元速率差△r的快速估計。4種相關的語法元素列在下表。

其中,grt1和grt2分別表示量化係數的絕對值是否大於1和2;cbf表示當前tu是否有非零係數。以上三個元素以常規模式編碼;rem表示變換係數編碼過程中的剩餘量化電平,並以旁路模式編碼。上述四個元素的位元速率計算在下式中表示,這表明△r可以通過語法元素和相應標誌的組合匯出,如下:

考慮到aqzb-dc塊的特殊係數分布,可以直接獲得常規模式編碼語法元素的上下文索引。因此,可以通過hm16.0中定義的查詢表來獲得某個語法元素編碼位元速率r*(f)。當qcceil大於3時,如果qcceil不是某乙個範圍內的第乙個值,量化電平往往具有相同的bit length。所以,假設這種情況△r為0。對於每個aqzb-dc塊,△r時在不計算每個每個候選值的位元速率來估計的。而且,避免了上下文更新過程,獲得了固定的上下文模型。整個過程大大降低了演算法複雜性。

計算完△r和thd△r後,aqzb-dc的量化係數可以基於選擇模型來快速決定。如下式所示,如果△r小於thd△r,qcceil被設定為最終電平,否則,qcfloor就是最優選擇。

本文通過早期檢測全零塊和aqzb-dc塊來實現快速rdoq。提出量化電平決策模型,對aqzb-dc塊以最優rd折中來選擇值。提出的方法在ra和la配置下,分別可以減少量化時間平均42.00%和39.63%,只有0.03%和0.06%的bd-rate損失。

HEVC中的位元速率控制(RC)

題記 hevc 標準中所推薦的位元速率控制模型不像h.264中推薦 二次率失真模型 而採用了 r lambda 模型。模型較簡單,主要提案涉及三個 jct vc k0103 jct vc m0257 jct vc m0036 在hm中對應的 如下 group level group level rc...

HEVC解碼中的SPS解析

以下是對每乙個語法元素的討論解釋 1 sps video parameter set id 指定了當前活動的vps的id號,當前例子的取值為0,這也與前文的vps解析的結果一直 2 sps max sub layers minus1 該值 1表示引用該sps的cvs所包含的最大時域子層數,取值範圍0...

HEVC和JEM中的掃瞄順序

為了更好地理解幀內 中的各個函式的原理過程,有必要對cu pu位址計算方法有著較好的了解,因此,本文將對這個問題先做個討論。hevc裡同樣也有光柵掃瞄順序,但是,由於它對cu採用的是遞迴劃分的方式,如果仍是採用光柵掃瞄順序,對cu的定址會很不方便,因此,hevc定義了z掃瞄順序,如下圖所示 右圖可見...