PCM 与预测编码(上)| 学习笔记

简介: 快速学习 PCM 与预测编码(上),介绍了 PCM 与预测编码(上)系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算PCM 与预测编码(上)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/811/detail/15679


PCM 与预测编码(上)


内容介绍

一、脉冲编码调制(PCM)

二、增量调制(DM )


一、脉冲编码调制(PCM)

1.脉冲编码调制

Pulse Code Modulation 的缩写,是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但是这并没有刻意的对数据进行压缩,因此也是数据量最大的编码方法。

PCM是对每个采样信号的整个幅度进行量化编码,具有对任意波形进行编码的能力,实际上是对模拟信号进行采样和量化的一种编码。采样即为要采取多少个点,而量化是每一个点用多少位表示,而PCM恰好实现采样和量化的过程。

如下图:在水平轴上每隔一段时间采样——给定一个脉冲,每一个采样的点的位置是脉冲的一个波,脉冲是否跟曲线有交点,然后把点采集。在水平轴画若干线,此线的距离为量化的步长。此步长两线之间间隔的越小,量化所需要的位数越高。具有点之后,可以把原始的信号恢复。

image.png

2.PCM编码框架

以声音为例,模拟声音作为输入,第一步进行防失真的滤波器,滤波器可以理解为用来过滤掉声音频带以外的信号。音频信号是20-20000赫兹,则低于20赫兹和20000赫兹的会被去除。而波形编码器即采样过程,就是每一个脉冲和每一个原始信号求救;量化器具有量化步长,每一个原始信号的值需要跟量化的步长求商,补偿越小商越大,所需要的位数越多。则量化阶的大小就是量化间隔决定量化的精度。

3.PCM编码有损

如果满足采样定理,信号本身可以还原,但因为量化时是四舍五入的,即采样时并不是每个点都恰好落在水平线上,只要不在线上就进行四舍五入,因此量化时是有信息损失的。

4.量化分类

量化可以分为均匀量化和非均匀量化,所谓的均匀量化是采用相等的量化间隔对采样得到的信号作量化。如左图:量化的步长是一样的

image.pngimage.png

如右图:而非均匀量化(也称作非线性量化)的量化阶的步长一开始很小,而到后面会变大,小信号可以用小间隔来做量化,而大的而输入信号用大的间隔作量化。换言之,变化剧烈的、敏感的应该精细化描述;如果变化本身很小、信号大时量化阶可以增大。一旦量化阶增大,数据就会变小,此时就可以对数据进行压缩。非线性量是减少数据量的一个有效途径,但是需要判断正确什么时候变大什么时候变小。


二、增量调制(DM )

由上引申出 DM,是属于早期在电话中使用的,因为那时无法做到精细的描述,能够大概把声音还原,因为传输的速率是有限的,所以声音只要不失真即可(失真在这里通俗理解为说的是什么,听到的是什么即可,至于是否动听悦耳无需讲究)。

增量调制也叫△调制(是 Delta Modulation 的缩写),是预测编码的一种算法,是PCM 算法的一种变形。

编码思想是对实际的采样信号与预测的采样信号之差的极性进行编码。这里的极性指大于等于零或者是小于零。如果差值是非负,则用“1”来表示;相反用“0”来表示。换言之,△方法并不是把值保存,而是把差值的正负用“0”和“1”表示。这样采样点用1位来表示即可,因此也称作“1位系统”。

如图:

image.png

用当前的一个点来预测下一个点,例如当前点为零实际上也为零,但也代表为非负,因此非负就用“1”来表示。而“1”表示加一个△,即下一个步长加一个△。按照如此应为红线 但实际上为蓝线。蓝色值减去红色点的值的差值为大于零,因为增加一个△并没有达到原始数据的变化,所以仍为“1”。

为“1”之后再增加一个△,但蓝色线仍在红色线之上。因为实际采样值比预测值要大,所以极性仍是大于等于零,即仍为“1”。所以下一步再增加一个△,然后依次增长。增长到第六点时,预测值比实际值要大,所以实际值减去预测值的值小于零,小于零的极性用“0”表示,“0”表示减去一个△。到第七点时预测值比实际值还要大,此时选择继续减去一个△;到第八点时预测值要小于实际值,此时用“1”表示。“1”表示增加一个△,发现增加后预测值比实际值要大,则下一步再减去一个△,依次类推,最后得到图形。

由图可知,红色线已经大致把蓝色线描述出来,但是描述的并不准确。前期线段斜率过载,即曲线的斜率大于1时,无论怎么增加△都不能超过蓝色线的变化;到了后期线段基本不变的时候,两者的差值要么为1要么为0,因此称此现象为“粒度噪声”。

噪声在两个问题的根源:前面原始信号变化很快,增加缓慢后增加△的步长就会变小。

如果一开始增加很大的步长,则红色线会很快超过蓝色线;相反基本不变的时候增加或减少△应该会变小一点,则不需要每次都变化,这是后面根据信号的变化是否能够自适应的调整△值的内容

相关文章
|
2月前
|
编解码 语音技术 内存技术
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
64 0
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
|
4月前
|
存储 计算机视觉
通过视频帧提取及批量取模转换实现基于STC32的点阵LED动画播放
【8月更文挑战第25天】该方案概述了如何通过视频帧提取与批量取模转换技术,在STC32微控制器上实现点阵LED动画播放。步骤分为:1) 视频帧提取:选用合适的视频处理库(如OpenCV)或专用工具,将视频按指定帧率逐帧转存为图片;2) 批量取模转换:利用自定义或第三方工具将图片转换成适用于点阵LED显示的格式;3) 在STC32上实现动画播放:完成硬件连接后,通过SPI/I2C等接口从存储器读取取模数据,并设计定时器中断等机制控制帧切换,最终呈现流畅动画效果。此外,还需进行必要的优化和调试以改善显示质量。
|
存储
ENVI_IDL: 对风云四号卫星数据波段合成和线性拉伸并分别生成TIFF格式和JPEG格式
ENVI_IDL: 对风云四号卫星数据波段合成和线性拉伸并分别生成TIFF格式和JPEG格式
214 0
|
7月前
|
存储 编解码 算法
音视频学习之基础概念整理(rgb/yuv,pcm,采样频率,帧率,码率,i帧p帧b帧,dts/pts)
音视频学习之基础概念整理(rgb/yuv,pcm,采样频率,帧率,码率,i帧p帧b帧,dts/pts)
148 0
|
编解码
ffmpeg奇偶场帧Interlace progressive命令和代码处理
ffmpeg奇偶场帧Interlace progressive命令和代码处理
301 0
ffmpeg奇偶场帧Interlace progressive命令和代码处理
|
前端开发 芯片
【杂七杂八】excel中根据RTL信号位宽生成拼接取位
【杂七杂八】excel中根据RTL信号位宽生成拼接取位
171 0
【杂七杂八】excel中根据RTL信号位宽生成拼接取位
|
算法 开发者 内存技术
PCM 与预测编码(下)| 学习笔记
快速学习 PCM 与预测编码(下),介绍了 PCM 与预测编码(下)系统机制, 以及在实际应用过程中如何使用。
PCM 与预测编码(下)| 学习笔记
|
算法 大数据 开发者
变换编码(上)| 学习笔记
快速学习变换编码(上),介绍了变换编码(上)系统机制, 以及在实际应用过程中如何使用。
 变换编码(上)| 学习笔记
|
Web App开发 算法 计算机视觉
变换编码(下)| 学习笔记
快速学习变换编码(下),介绍了变换编码(下)系统机制, 以及在实际应用过程中如何使用。
变换编码(下)| 学习笔记
|
开发者
无损压缩编码(下)| 学习笔记
快速学习无损压缩编码(下),介绍了无损压缩编码(下)系统机制, 以及在实际应用过程中如何使用。
无损压缩编码(下)| 学习笔记