一、原理
量化的原理是把变换后的DCT系数除以一个常量,经过量化后的结果是量化步长的整数倍或者为更多的零值,从而达到了压缩的目的。
二、量化公式
q(x, y) = round(F(x, y) / Q + 0.5);
公式说明:F(x, y)为经过DCT变换后的DCT系数, Q为量化步长,在x264中对应qp的值。round()函数返回四舍五入的整数值。q(x, y)则是经过量化之后的值喽。简单举个栗子:如果某个像素点经过DCT变换后的值为203, 量化步长QP 取28,辣么,q(x,y) = round(205 / 28 + 0.5) = round(7.8214) = 8. 有没有懂了呢,哈哈,还是来个图吧。
三、量化示意
四、说明
(1) 我的天哪,量化完之后肿么这么多零呢,哈哈,这个不正式咱们想要的结果吗,哈哈;
(2) 从公式可以看粗来,量化值QP越大,那么量化的粒度越粗,相应的也会省更多的比特,但是画质相应的就会差很多;量化值QP越小,那么量化粒度越细,相应的会占用更多的比特,画质也就会好一些喽。
(3) 从公式也可以看出,编码过程中,量化是一个有损的过程哦,这一点一定要注意哦。