搜尋時,乙個不可避免的問題就是如何對mv進行比較,從而得到最優
對於同一壓縮演算法來說,位元速率越高表示影象質量越好、失真越小,但是位元速率越高要求更大的儲存空間,也會增加網路傳輸的壓力。因此在位元速率與失真中找出平衡點,使壓縮效果最優,這種方法叫做r-d optimization(位元速率失真優化)
典型的高位元速率下,位元速率與失真關係(r-d關係式)為
$r(d) = )}$
$r$為位元速率,$\alpha$為係數,$\delta^2$為方差,$d$為失真。
方差越大,意味著影象細節越多,因此位元速率也會越大;失真越大,意味著影象由於壓縮所損失的細節越多,那麼位元速率越小。
r-d曲線
r與d好比魚與熊掌,取一方,必然會捨去另一方,兩者不可能都取得最佳,因此如何取捨,就需要權衡利弊。最好的方法,就是看哪個權重大,哪個的比例就大,權重小的比例小,這就是拉格朗日方法。
拉格朗日代價函式為:
$j = d + \lambda_ \cdot r$
要使得代價最小,那麼在其導數為0處有最小值:
$\frac = \frac + \lambda_ = 0$
現假設d與r的權重比為$\lambda_$,並假設上方點a為根據上方結論得到的最佳位置,那麼點a處有斜率:
$k = -\lambda_ = \frac$
$\frac = -\frac$
因此,在r-d最優點處有:
$\lambda_ = \frac$
另外,在典型的高位元速率下,失真近似滿足公式:
$d = \frac$
把d代入上述公式,得到:
$\lambda_ = \frac\cdot quant^2$
即:$\lambda_ = \zeta\cdot quant^2$
最終可以通過函式擬合得到$\zeta = 0.85$,在h.264中,當存在b幀編碼時$\zeta = 0.68$,則有:
$\begin
\lambda_
&= 0.68\cdot quant^2 \\
&= 0.68 \cdot (2^\frac)^2 \\
&= 0.68\cdot 2^\frac
\end$
注:qp在這裡減去12是因為在h.264早期只有40個qp,而現在有52個qp
由於上面計算的時候用的是$\delta^2$(方差),即ssd,但是實際上h.264計算用的是
$\begin
sad &= \sum_\left | s[x,y] - s'[x,y]\right | \\
ssd &= \sum_\left | s[x,y] - s'[x,y]\right |^2
\end$
那麼$\lambda_ = \sqrt}$
為了方便計算,在一般h.264的編碼器中採用的都是
$d = sad$
而r則需要知道當前所選擇的mv與ref所占用的bit,而這些都是可以事先計算出來的,在jm中不同的mv與ref所佔的bit都在編碼前被初始化了,用陣列儲存起來。mv與ref採用的都是哥倫布編碼。
$r = bit_ + bit_$
h 264 率失真優化
搜尋時,乙個不可避免的問題就是如何對mv進行比較,從而得到最優 對於同一壓縮演算法來說,位元速率越高表示影象質量越好 失真越小,但是位元速率越高要求更大的儲存空間,也會增加網路傳輸的壓力。因此在位元速率與失真中找出平衡點,使壓縮效果最優,這種方法叫做r d optimization 位元速率失真優化...
簡明H 264率失真分析概念
所謂率失真 distortion rate 其實指的是影象失真度與編碼位元速率二者之間的相互關係。其中的影象失真度,目前一般採用原始影象與編碼重建影象之間的峰值性噪比psnr來衡量,這個psnr可以是亮度psnr,也可以是亮度與色度psnr的線性組合。一般最簡單的情況下,採用亮度的psnr y ps...
簡明H 264率失真分析概念
簡明h.264率失真分析概念 所謂率失真 distortion rate 其實指的是影象失真度與編碼位元速率二者之間的相互關係。其中的影象失真度 目前一般採用原始影象與編碼重建影象之間的峰值性噪比psnr來衡量,這個psnr可以是亮度psnr,也可以是亮度與色度psnr的線性組合。一般最簡單的情況下...