基于DM642的MPEG-2视频压缩编码(二)
来源:互联网 发布:windows ie10补丁 编辑:程序博客网 时间:2024/05/29 07:33
这一篇讲量化因子的生成和可变长编码。
量化因子在整个编码过程当中起着至关重要的作用,它即决定了图像的质量也决定了图像的压缩比。而且量化因子也应该具有良好的适应性,因为每一个宏块的特征都不相同,所以各自的量化因子也是不一样的。以I帧为例,推导一下量化因子的生成。首先是量化因子的初始化得到的是prev_mquant.
而其中的d,r由下式得来
综上所述prev_mquant由bit_rate和frame_rate组成的各种繁琐的式子组成,至此,我们还没有看到量化因子的可适应性。所以在量化的时候当然不是用的prev_mquant。在帧内量化和帧间量化的过程中使用的mquant是存放在mbinfo这个结构体里的。而mbinfo[k].mquant是由函数rc_calc_mquant(k)得来,那又经过了哪些步骤呢?
这里面未知的就是Qj和N_actj,下面给出计算公式
关键性变量出现了,就是actj,这个变量是由何而来?又代表什么呢?
actj=var_sblk(p,width);而var_sblk(p,width)计算的是每一个块的内部的方差值,也就是块中的像素值是不是有较大的变化,由此我们知道对于每一个宏块都是由它本身决定着量化因子的大小,虽然之前列出了很多公式,但是我没有把他们合并成一个。。。太多了,只是找出了量化因子和宏块间的关系。
再讲一下量化后,编码前的扫描,将二维矩阵扫描成一维的,也就是将8*8的块扫描成64大小的数组,常用的zig_zag扫描也就是我们常说的之字形扫描,扫描矩阵为
zig_zag_scan[64]=
{
0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,
12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,
35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,
58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63
}
程序中我们又用到了另外一种扫描矩阵
alternate_scan[64]=
{
0,8,16,24,1,9,2,10,17,25,32,40,48,56,57,49,
41,33,26,18,3,11,4,12,19,27,34,42,50,58,35,43,
51,59,20,28,5,13,6,14,21,29,36,44,52,60,37,45,
53,61,22,30,7,15,23,31,38,46,54,62,39,47,55,63
}
结合图片来看一下:
那么这两种扫描方式有什么区别呢?以下是由一篇论文而得:如果字块中包含较强的垂直频率分量,也就是非零DCT系数主要集中水平方向的低频部分。表现在像素亮度上则是块在水平方向上较为平坦,那么采用轮流垂直扫描,而帧间编码块的差值信号分布随机性比较大,一般适合之字形扫描,而且几乎一半以上的图像块适合之字形扫描。
下一篇再介绍可变长编码吧(鉴于篇幅原因)~
- 基于DM642的MPEG-2视频压缩编码(二)
- 基于DM642的MPEG-2视频压缩编码
- 基于DM642的MPEG-2视频压缩编码(三)
- 基于DM642的mpeg-2视频压缩编码之硬件结构
- 基于DM642的MPEG-2视频压缩编码之硬件设计和CCS开发环境的介绍
- VC++实现视频压缩编码标准 MPEG-4
- MPEG-2的编码
- MPEG-2 数字视频技术参考指南 (3)—— MPEG-2视频压缩
- 视频压缩编码的基本原理
- H264视频压缩编码标准(二)
- H264视频压缩编码标准(二)
- 基于Intel®IPP的MPEG-2编码技术研究及实现
- 基于MPEG-4编码的近距离无线视频传输系统
- MPEG-4视频压缩基础
- MPEG-4视频压缩基础
- MPEG-4视频压缩基础
- MPEG4视频压缩编码的文章
- [图文]MPEG-2压缩编码技术原理应用(二)
- async Nand flash 、sync nand flash 和 toggle nand flash区别
- mfc 通过excel驱动读取excel文件
- 电子商务实训4
- js指定内容滚动左侧或其它地方不滚动
- Tekever iOS
- 基于DM642的MPEG-2视频压缩编码(二)
- 使用.emacs.d目录管理Emacs配置文件
- 今日食谱及作息(6.17)
- hive存储元数据在mysql配置
- oralce 数据简单恢复
- Coding for NEON - Part 1: Load and Stores
- Eclipse使用
- Win32 Windows编程 三
- Memcache参数