这种变换能够去除块内相邻像素间的空间冗余,再结合量化,可以有效地实现数据的压缩
和以往编解码标准中8 x 8 DC T变换不 同.H_ 2 6 4/AVC使用了4 x 4整数变换,在编码效率得到提高的同时 . 也增加了块效应的程度
在进入滤波之前,视频流数据 已经经过熵解码 、反量化、DC T逆变换和重构,由 S l i c e结构的数 据组成以帧为单位的数据滤波仍1日以宏块为单位进入循环当遍历帧中所有宏块后。滤波结束并把本帧图像直写入显存.
视频数据在进入滤波模块时已经由S l i c,结构复原为整帧数据,为结构优化设计创造了条件
对于每个4×4亮度块之间的块边界都定义了滤波强度BS
每条边界长度均为16个像素,等分成4份,每个对应一个最小块大小的边界,以此为单元进行滤波。
对每条边界调用get_strength,获得这4个部分的Bs值。
DeblockMB在Loop Filter中的作用是对一个宏块进行滤波,对一条边界16像素(亮度)或者8像素(色度)进行处理
http://www.chinavideo.org/viewthread.php?tid=2031&extra=&ordertype=1 我跟踪了一下程序,打印了每个4x4块的坐标,发现了附件中图示的规律,在解码扫描帧内预测的顺序时是以16X16的宏块为单位,从左到右,从上到下;然后在每个16X16的宏块里,又对4个8X8从上到下从左到右的扫描;在每个8X8中对4X4的子块从上到下从左到右的扫描。所以img_block_x和img_block_y应该是全局的以4x4块为单位的块坐标。 |
4x4预测.JPG (15.24 KB)
4x4预测
既然高频系数大多数趋向于零,那么利用游程编码就可以缩减零的数目,从而高效的达到熵编码的目的。
联系客服