本节开始介绍编码过程中的量化环节。还记得上一篇的变换吗?变换之后得到了一个新的矩阵,一个经过从空域变换到频域的一个矩阵。那么,量化呢,就是基于变换后得到的矩阵,再做进一步的处理,本质也就是进一步的压缩。
一、原理
量化的原理是把变换后的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) 从公式也可以看出,编码过程中,量化是一个有损的过程哦,这一点一定要注意哦。
好了,量化就到这里喽,量化后的数据该怎么处理呢,敬请期待下一篇ZIG-ZAG之字形扫描喽。
原文地址:http://blog.51cto.com/7335580/2067118
时间: 2024-10-09 05:15:28