开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算:PCM 与预测编码(上)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/811/detail/15679
PCM 与预测编码(上)
内容介绍
一、脉冲编码调制(PCM)
二、增量调制(DM )
一、脉冲编码调制(PCM)
1.脉冲编码调制
是 Pulse Code Modulation 的缩写,是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但是这并没有刻意的对数据进行压缩,因此也是数据量最大的编码方法。
PCM是对每个采样信号的整个幅度进行量化编码,具有对任意波形进行编码的能力,实际上是对模拟信号进行采样和量化的一种编码。采样即为要采取多少个点,而量化是每一个点用多少位表示,而PCM恰好实现采样和量化的过程。
如下图:在水平轴上每隔一段时间采样——给定一个脉冲,每一个采样的点的位置是脉冲的一个波,脉冲是否跟曲线有交点,然后把点采集。在水平轴画若干线,此线的距离为量化的步长。此步长两线之间间隔的越小,量化所需要的位数越高。具有点之后,可以把原始的信号恢复。
2.PCM编码框架
以声音为例,模拟声音作为输入,第一步进行防失真的滤波器,滤波器可以理解为用来过滤掉声音频带以外的信号。音频信号是20-20000赫兹,则低于20赫兹和20000赫兹的会被去除。而波形编码器即采样过程,就是每一个脉冲和每一个原始信号求救;量化器具有量化步长,每一个原始信号的值需要跟量化的步长求商,补偿越小商越大,所需要的位数越多。则量化阶的大小就是量化间隔决定量化的精度。
3.PCM编码有损
如果满足采样定理,信号本身可以还原,但因为量化时是四舍五入的,即采样时并不是每个点都恰好落在水平线上,只要不在线上就进行四舍五入,因此量化时是有信息损失的。
4.量化分类
量化可以分为均匀量化和非均匀量化,所谓的均匀量化是采用相等的量化间隔对采样得到的信号作量化。如左图:量化的步长是一样的
如右图:而非均匀量化(也称作非线性量化)的量化阶的步长一开始很小,而到后面会变大,小信号可以用小间隔来做量化,而大的而输入信号用大的间隔作量化。换言之,变化剧烈的、敏感的应该精细化描述;如果变化本身很小、信号大时量化阶可以增大。一旦量化阶增大,数据就会变小,此时就可以对数据进行压缩。非线性量是减少数据量的一个有效途径,但是需要判断正确什么时候变大什么时候变小。
二、增量调制(DM )
由上引申出 DM,是属于早期在电话中使用的,因为那时无法做到精细的描述,能够大概把声音还原,因为传输的速率是有限的,所以声音只要不失真即可(失真在这里通俗理解为说的是什么,听到的是什么即可,至于是否动听悦耳无需讲究)。
增量调制也叫△调制(是 Delta Modulation 的缩写),是预测编码的一种算法,是PCM 算法的一种变形。
编码思想是对实际的采样信号与预测的采样信号之差的极性进行编码。这里的极性指大于等于零或者是小于零。如果差值是非负,则用“1”来表示;相反用“0”来表示。换言之,△方法并不是把值保存,而是把差值的正负用“0”和“1”表示。这样采样点用1位来表示即可,因此也称作“1位系统”。
如图:
用当前的一个点来预测下一个点,例如当前点为零实际上也为零,但也代表为非负,因此非负就用“1”来表示。而“1”表示加一个△,即下一个步长加一个△。按照如此应为红线 但实际上为蓝线。蓝色值减去红色点的值的差值为大于零,因为增加一个△并没有达到原始数据的变化,所以仍为“1”。
为“1”之后再增加一个△,但蓝色线仍在红色线之上。因为实际采样值比预测值要大,所以极性仍是大于等于零,即仍为“1”。所以下一步再增加一个△,然后依次增长。增长到第六点时,预测值比实际值要大,所以实际值减去预测值的值小于零,小于零的极性用“0”表示,“0”表示减去一个△。到第七点时预测值比实际值还要大,此时选择继续减去一个△;到第八点时预测值要小于实际值,此时用“1”表示。“1”表示增加一个△,发现增加后预测值比实际值要大,则下一步再减去一个△,依次类推,最后得到图形。
由图可知,红色线已经大致把蓝色线描述出来,但是描述的并不准确。前期线段斜率过载,即曲线的斜率大于1时,无论怎么增加△都不能超过蓝色线的变化;到了后期线段基本不变的时候,两者的差值要么为1要么为0,因此称此现象为“粒度噪声”。
噪声在两个问题的根源:前面原始信号变化很快,增加缓慢后增加△的步长就会变小。
如果一开始增加很大的步长,则红色线会很快超过蓝色线;相反基本不变的时候增加或减少△应该会变小一点,则不需要每次都变化,这是后面根据信号的变化是否能够自适应的调整△值的内容。