zoukankan      html  css  js  c++  java
  • [多媒体]理解PCM、DPCM、APCM、ADPCM

    多媒体挂了。先说几句无关主题的话。虽然可以表现得像没什么事一样,但心里却比较失落。我一向不信卷子成绩可以衡量一个人水*什么的鬼话,但自己对成绩的要求还有一条底线。这条底线是我坚持自己风格的资本。低过这条底线,一切理直气壮的理由都将变成80后充满戾气的蛮横要求。我该反省,为什么会沦落到竟然挂科的地步?我该反省,接下来的关键半年时光里我该怎么度过?我该反省,做人是不是也该有条自己坚持的底线,温文尔雅也该适可而止?

    但挂科也的确有积极意义。一直没有看过的书,终于有机会要看了。最*一段时间将围绕多媒体技术这块做一些学习笔记,也算弥补了当初自己的一个小小心愿。

    PCM(Pulse Code Modulation——脉冲编码调制)

    脉冲调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输.
    个人认为上面这句话概括的相当经典

    脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程.

    所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号.该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号.它的抽样速率的下限是由抽样定理确定的.在该实验中,抽样速率采用8Kbit/s.

    所谓量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电*,把瞬时抽样值用最接*的电*值来表示.
    一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值.

    所谓编码,就是用一组二进制码组来表示每一个有固定电*的量化值.然而,实际上量化是在编码过程中同时完成的,故编码过程也称为模/数变换,可记作A/D.

    DPCM(Differential Pulse Code Modulation——差分脉冲编码调制)
    在PCM中,波形的每个样本独立进行编码。然而,以奈奎斯特速率或更高速率采样的绝大多数信号(包括语音信号),其相邻的样本之间呈现明显的相关性,换言之,相邻采样幅度间的*均变化较小。所以,利用采样中多余度的编码方案将使语音信号的码率降低。
    一种简单的解决方法就是对相邻样本之差编码而不是对样本本身编码,由于相邻样本之差比实际样本幅度小,所以表示差信号需要较小的位数。这种普通方法的一种改进方案是用前面的n个样本根据一定的规律来预测当前的样本,然后将预测值与实际值的误差进行量化后传输,在根据误差信号,采用和发送端相同的预测方法恢复出原始信号。 这就是DPCM.

    APCM(Adaptive Pulse Code Modulation——自适应脉冲编码调制)
    自适应脉冲编码调制是一种根据输入信号幅度大小来改变量化阶大小的一种波形编码技术。这种自适应可以是瞬时自适应,即量化阶的大小每隔几个样本就改变;也可以是音节自适应,即量化阶的大小在较长时间周期里发生变化。
    改变量化阶大小的方法有两种:前向自适应(forward adaptation)和后向自适应(backward adaptation).

    ADPCM(Adaptive Differential Pulse Code Modulation——自适应差分脉冲编码调制)
    ADPCM综合了APCM的自适应特性和DPCM的差分特性,是一种性能比较好的波形编码。它的核心想法是:1.利用自适应改变量化阶的大小,即使用小的量化阶去编码小的差值,使用大的量化阶去编码大的差值。2.使用过去的样本值估算下一个输入样本的预测值,使实际样本也预测值之间的差值总是最小。

  • 相关阅读:
    IO流2 --- File类的常用方法1 --- 技术搬运工(尚硅谷)
    IO流1 --- File类的实例化 --- 技术搬运工(尚硅谷)
    luoguP6136 【模板】普通平衡树(数据加强版)
    CF981E Addition on Segments 线段树分治+bitset
    LOJ#2538. 「PKUWC2018」Slay the Spire DP+组合
    LOJ#2537. 「PKUWC2018」Minimax 线段树合并
    luoguP4220 [WC2018]通道 随机化
    学习笔记2018/6/22
    git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)
    IDEA错误:Cannot start compilation: the output path is not specified for module "Test". Specify the out
  • 原文地址:https://www.cnblogs.com/lookof/p/1239822.html
Copyright © 2011-2022 走看看