LC3编码之量化和算术编码

这是我第一次分享自己的见解,如有问题,请指出。

一、频谱量化

 量化的中间过程:

1)、首先粗略估计全局增益,目的是使量化的结果尽可能接近要求的比特数

2)、根据公式进行量化,然后对量化的数据求解最后一对非零二元组,接着求解编码数据。即codingdata[0]、codingdata[1]、codingdata[2]。根据可用的比特数,对量化后多余的Xq(k)信息进行截断,置零,此时lsbMode为1。

3)、如果nbits_est比nbits_spec相差过大,则截断信息较多,需对全局增益做调整(精估)

4)、若求得的gainChange = 1,则进行二次量化。

二、算术编码

算术编码属于熵编码。与其它熵编码方式不同的地方在于,其它的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码。而算术编码是把整个输入信号编码为一个数,一个满足[0,1)的小数,可以说算术编码实现了用小数个比特来表示一个符号。算术编码是用符号的概率和编码间隔两个基本参数来描述的,在给定符号集和符号概率的条件下,算术编码可以给出接近最优的编码结果。使用算术编码的压缩算法通常先要对输入符号的概率进行估计,然后编码,估计越准,编码结果就越接近最优结果。算术编码可以是静态的,也可以是自适应的。

LC3编码中的算术编码,是对量化的数据进行编码,从最低频率系数开始,逐步到最高频率系数,它们由两个频率系数{a,b}组成进行编码。这个二元组被分为三个部分:MSB、LSB和符号。使用均匀概率分布独立于幅度对符号进行编码,并且a和b可以有不同的符号。符号只对非零值a和b进行编码。magnitude本身又可以分为两个部分。2元组{a,b}的两个最高有效位(MSB)被组合并用算术编码器编码,并且剩余的最低有效位平面(LSB,如果适用的话)被使用均匀概率分布单独编码。对于两个频谱系数中的一个频谱系数的幅度高于3的2元组,首先发送一个或多个转义符号以用信号通知任何额外的位平面。

2元组的单个谱值a和b之间的关系,最显著位平面m和剩余的最低有效位平面r如图3.8中的示例所示。本例中,在实际值m之前发送三个转义符号,表示三个传输最少有效位平面。

注意:lsbMode==1是用于高比特率模式的特殊情况,其中第一个位平面(lev=0)被单独编码为剩余位。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值