2015-04-28 30 views
1

HEVC標準中的HEVC量化(均勻情況)步驟需要在計算電平係數時通過QP/6進行右移。HEVC量化參數

我不知道如何執行這種權利轉移的情況下,當QP不能被6整除任何幫助,將不勝感激。

參考:核心變換設計的高效視頻編碼(HEVC)標準:MADHUKAR Budagavi,高級會員,IEEE,Arild Fuldseth,伊斯勒Bjøntegaard,利德詩,會員,IEEE和Mangesh Sadafale

回答

4

在HEVC參考軟件(HM 16.5),量化步長被q計算如下:

Double q[MAX_QP + 1]; 
for (int v = 0; v <= MAX_QP; v++) 
{ 
    q[v] = (Double)(g_invQuantScales[v % 6] * (1 << (v/6)))/64; 
} 

其中g_invQuantScales定義如下:

const Int g_invQuantScales[SCALING_LIST_REM_NUM] = 
{ 
    40,45,51,57,64,72 
}; 

也就是說,v是一個整數,v/6是一個整數除法。整數除法的C中的行爲,例如這裏說明:What is the behavior of integer division in C?

基本上,v總是非負這裏,整數除法的結果將是相同的確切商數地板操作。

從這個意義上說,您引用的論文中的方程(8)有點誤導,因爲寫作是在「代碼風格」中。

如果您需要用另一種語言自己實現它,您應該確保您使用的是樓層操作。例如。 「< < floor(QP/6)」