[源编码]概述

概述

大纲

  1. 无损编码
    1. Huffman 编码
    2. 算术编码
    3. 字典编码
  2. 有损编码
    1. 标量量化
    2. 向量量化
    3. 预测编码
    4. 变换编码、JPEG
    5. 子带编码
    6. 小波编码、JPEG2000
    7. 分析-综合编码
  3. 音视频编码
    1. 音频编码
    2. 视频编码

为什么需要压缩

  1. 对物理世界:没有足够空间
  2. 对数字世界:数据增长比物理存储(带宽)增长得更快

如果没有压缩,很多应用/服务不可行,如视频流服务,很多应用/服务更贵,比如模拟移动电话、数字移动电话。

为什么可以压缩

数据大多数是冗余的:任何非随机选择的数据都有一定结构,可利用这种结构得到数据的更紧致表示。

  1. 统计冗余: 某些值经常出现,而另外一些值很少出现,那么,这种由于取值上统计的不均匀性就构成了统计冗余
  2. 字母冗余:英文中字母E最常出现,而Z很少出现
  3. 文本冗余:字母Q后常跟有字母U
  4. 图像冗余:自然图像中相邻像素的颜色往往比较相近
  5. 时间冗余:视频图像前后几帧内容变化不大,位置可能不同,可用运动估计方法找到对应位置
  6. 结构冗余:图像中物体表面纹理等结构

基本术语

  • 无损编码:\(x=x^{\prime}\),也称熵编码 ( \(entropy \quad coding\) ) 或可逆编码 ( $ reversible \quad coding$ )
  • 有损编码:\(x\ne x^{\prime}\),也称不可逆编码 ( \(irreversible \quad coding\) )
  • 压缩率:\(\frac{|x|}{|y|}\)\(|x|\) 表示编码 \(x\) 需要的比特数
  • 码率:\(\frac{比特}{样本}\),如 ASCII是 8 比特/字符
  • 质量:对有损编码而言。人类感知到 \(x\)\(x^{\prime}\) 之间的差异或在数学上\(x\)\(x^{\prime}\) 之间的差异
  • 复杂度:(1) 算法的运算量和存储量 (2) 编码器和解码器的复杂度
  • 时延

开发压缩算法的步骤

建模

  • 提取冗余信息
  • 冗余 \(\rightarrow\) 可预测性

编码

  • 用二进制表示模型与观测数据之间的差异,也称为残差 (residual)

猜你喜欢

转载自www.cnblogs.com/ColleenHe/p/11723104.html