基于DM642的MPEG-2视频压缩编码(三)

在mpeg-2编码中,并没有规定具体要用哪种编码方式,程序中我们采用的是可变长编码(VLC),VLC是统计编码技术,它的基本思想是:对出现频度较高的数值分配比特数较少的码字,而对出现频度较低的数值分配比特数较多的码字。因为从总体效果看,数据量比用均匀分配比特数的数据量要少。

首先经过DCT和扫描后,DC系数在数组的首位,而我们将DC系数进行可变长编码的时候,并不是直接将DC系数进行编码,二是采用差值的方式,即用现要编码的DC系数减去上一个编码过的DC系数,将差值进行可变长编码。对差分DC系数用两个符号进行编码,符号1和符号2。符号1表示的信息称为“长度”,即为DC系数的幅度进行编码所用的位数,符号2表示DC系数的幅度。

类似地,对每个AC系数也用两个符号进行编码,符号1和符号2。符号1表示两条信息,称为“行程”和“长度”。行程是在之字形矩阵中位于非零AC系数前的连续零值AC系数的个数,长度是对AC系数的幅度进行编码所用的位数。符号2表示了AC系数的幅度。

其实还是利用了查表的方式,程序中有:



这是将DC系数的两个符号压入缓冲区的语句。

而对于AC系数来说,由行程和编码所需的位数来决定符号1,同样是可以通过查表得到。

总之,可变长编码都是利用改进的Huffman编码而来,从而更好的达到压缩的效果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值