-
量化
量化就是把信号的連續取值映射成多個離散的幅值的過程,實作了信号取值多對一的映射。
殘差資料進過變換之後,變換系數具有較大的取值範圍,量化可以有效減小信号的取值範圍,進而獲得更好的壓縮效果
量化是造成失真的根本原因
-
衡量失真的三種準則:
1、均方差MSE
2、信噪比SNR
3、峰值信噪比PSNR
-
HEVC可以使用的傳統量化方法
1、大概的公式:l = floor(c/Qstep + f),c表示系數、Qstep表示量化步長、l表示量化後的值,floor是向下取整函數,f控制舍入關系
2、HEVC有52個量化步長,對應了52個量化參數QP,可以通過查表查詢
3、對于色度分量,量化參數限制為045。具體的說,當亮度分量的QP小于30時,色度分量的QP和亮度的相同,當亮度信号QP在3051時,兩者的關系可以通過查表得出
4、量化過程同時要完成整數DCT中的比例縮放運算,為了避免浮點計算,HEVC把分子分母進行放大處理,然後取整,以此保證運算精度,QP的運算方式也要進行調整:QP = floor(QP/6) + QP % 6
-
HEVC使用的RDOQ(率失真優化量化)
1、把量化與率失真優化過程結合,給定多個可選的量化值,利用RDO(率失真優化)選出最優的值
2、操作步驟:
(1)确定目前TU每個系數的可選量化值,利用下面公式進行預量化:
|l| = round(|c|/Q_{step})
(2)利用RDO準則确定目前TU所有系數的最優量化值QP(注意是每個系數的QP)
(3)利用RDO準則确定目前TU每一個系數塊組(CG,4x4的塊)是否量化成全零組。如果目前的CG是全零CG,那麼隻需要編碼全零标志;否則,要編碼所有的系數。具體是:周遊所有的CG,計算其量化為全零CG時的率失真代價,與原來的率失真代價比較,如果全零CG對應的率失真代價較小,那麼令目前CG為全零CG
(4)利用RDO準則準确确定目前TU最後一個非零系數的位置
-
量化矩陣。
1、使用量化矩陣的原因是,對不同位置的系數使用不同的量化步長,這樣能提高視訊的主觀品質
2、量化矩陣作用于比例縮放過程(比例縮放過程在變換和量化之間),其大小和TU相同(從4x4到32x32)
3、HEVC定義了4x4和8x8兩種大小的預設量化矩陣,并規定16x16、32x32量化矩陣可以由8x8量化矩陣采樣得到
4、HEVC對量化矩陣中的元素使用差分編碼!
-
量化參數:
1、量化參數QP是量化步長Qstep的序号。對于亮度(Luma)編碼而言,量化步長Qstep共有52個值,QP取值051,對于色度(Chroma)編碼,Q的取值039。
2、量化參數,反映了空間細節壓縮情況。值越小,量化越精細,圖像品質越高,産生的碼流也越長。如QP小,大部分的細節都會被保留;QP增大,一些細節丢失,碼率降低,但圖像失真加強和品質下降。
————————————————————————————————
0–0.625 1–0.6875 2–0.8125 3–0.875 4–1 5–1.125 6–1.25 7–1.375 8–1.625 9–1.75
10–2 11–2.25 12–2.5 13–2.75 14–3.25 15–3.5 16–4 17–4.5 18–5 19–5.5
20–6.5 21–7 22–8 23–9 24–10 25–11 26–13 27–14 28–16 29–18
30–20 31–22 32–26 33–28 34–32 35–36 36–40 37–44 38–52 39–56
40–64 41–72 42–80 43–88 44–104 45–112 46–128 47–144 48–160 49–176
————————————————————————————————
QP取最小值0 時,表示量化最精細;相反,QP取最大值51時,表示量化是最粗糙的。
QP和Qstep具有線性相關性,Qstep随着QP的增加而增加,每當QP值增加6,Qstep便增加一倍。
量化是在不降低視覺效果的前提下減少圖像編碼長度,減少視覺恢複中不必要的資訊。H264采用标量量化技術,它将每個圖像樣點編碼映射成較小的數值。一般标量量化器的原理為:FQ = round(y/Qstep)。其中,y為輸入樣本點編碼,Qstep為量化步長,FQ為y的量化值。其相反過程即反量化為:y’ = FQ ·Qstep。
1)Round(x)函數
其功能采用“銀行家舍入”算法,即四舍五入取偶。詳細地說是這樣,四舍六入五考慮,五後非零就進一,五後皆零看奇偶,五前為偶應舍去,五前為奇要進一。
2)在YUV中,“Y”代表明亮度(Luminance或Luma),也就是灰階值; 而“U”和“V”表示的則是色度(Chrominance或Chroma),作用是描述圖像色彩及飽和度,用于指定像素的顔色。
- min qp 最小量化步長
說明:設定x264可以使用的最小量化器。量化參數越小,輸出越接近輸入。使用某些值時,x264的輸出可以和輸入看起來完全一樣,雖然其實并不是精确相同的,通常就夠了沒有必要使用更多比特在宏塊上了。如果開啟了自适應量化器(預設開啟),則不鼓勵提高qpmin的值,那樣可能會降低幀的平坦部分的品質。
- max qp最大量化步長
說明:qpmin的反面,設定x264可以使用的最大量化器。預設值51是H.264标準中的最大值,品質非常低。預設值51其實相當于沒有設定qpmax。如果你想控制x264輸出的最低品質,也許你想要把這個值調低一點(調到30-40最低了),但一般而言不推薦調節這個值。