Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

引言

内容

  • 图像压缩导论

  • 熵编码 霍夫曼编码、算术编码、行程长度编码、LZW编码

  • 预测编码

    • DM编码、DPCM编码

  • 块变换编码

    • KL变换编码、离散余弦变换

  • JPEG编码

压缩比与数据冗余

  • 数据是传递信息的手段。由于可以使用不同数量的数据来表示相同数量的信息,因此包含不相关或重复信息的表示被称为包含冗余数据。设 b 和 b’ 分别表示相同信息的两种表示中的比特数,则压缩比可以定义为:

    C=bbC=\frac{b}{b'}
  • 冗余数据的存在为图像压缩提供了可能性。对于图像压缩问题,主要考虑以下三种冗余:

    • 编码冗余、

    • 空间和时间冗余

    • 以及无关信息。

编码冗余 - 平均编码长度

  • 编码冗余

    • 每个信息或事件被赋予一个编码符号序列,称为码字,而每个码字里的符号个数称为码字的长度

    • 图像灰度值的出现概率

      ps(rk)=nk/n,k=0,1,,L1p_s\left(r_k\right)=n_k/n, \quad k=0,1,\cdots,L-1

      Lavg=k=0L1l(rk)pr(rk)L_{avg}=\sum_{k=0}^{L-1} l\left(r_k\right)p_r\left(r_k\right)

      为表示每个像素所需的平均比特数

    • 编码时如果不能使Lavg达到最小,就说明存在编码冗余

    • 编码所用符号构成的集合称为码本

    • 最简单的二元码本称为自然码,它对出现概率不同的灰度级都赋予相同数量的比特数,因而不能使Lavg达到最小,从而产生编码冗余。此时可使用变长码

空间和时间冗余

  • 与像素间相关性直接联系着的数据在空间和时间上的冗余

  • 根据相关性,由某一个像素的性质往往可在空间和时间上推断其邻域像素的性质

  • 为了减少图像中的像素相关冗余,需要将常用的2D像素矩阵表达形式转换为某种更有效(但可能不直观)的表达形式。这种减少像素间冗余的转换常称为映射

无关信息与量化

  • 图像中(在特定的场合或时间)与另外一些信息相比来说不那么重要的某些信息可认为是不相关的。

  • 这样的信息之所以能够被丢弃,是因为信息本身对于(人类)正常的视觉处理和/或预期用途不是必不可少的。

  • 因为这类信息的压缩会导致一定量信息的丢失,所以去除它通常被称为量化。

图像压缩模型

  • 以原图像f(x,y)f(x,y)作为输入,可在编码器中进行编码,生成压缩数据。压缩后的数据不仅易于存储以备后续使用,而且易于传输到远端使用。对压缩数据进行解码可重建图像f^(x,y)\hat{f}(x,y)

  • 在图像应用中,编码输入和解码器输出可用f(x,y)f(x,y)f^(x,y)\hat{f}(x,y)表示。在视频应用程序中,编码输入和解码器输出则用f(x,y,t)f(x,y,t)f^(x,y,t)\hat{f}(x,y,t)表示,其中离散参数tt代表时间。

无损压缩与有损压缩

原始图像经编码后成为一串特定的码流,这串码流经解码又成为一幅图像。我们区分两种压缩方式:

  • 无损压缩(无损压缩):压缩过程中不损失任何信息, 即解码图像与原始图像完全相同。 可以达到高达1/10的压缩比 (压缩后图像的字节大小是原始图像的1/10)。 无损图像压缩方法包括行程长度编码、熵编码法等。

  • 有损压缩(有损压缩):在压缩过程中接受丢失部分信息 (同时确保解码图像仍然接近原始图像)。 压缩比可以达到高达1/100! 有损压缩方法包括块变换编码、分形压缩等。

编码类别

  • 根据编码原理,编码方法分为四类:

  1. 熵编码或统计编码:属于无损编码。为出现概率较高的符号分配一个短码字,为出现概率较小的符号分配一个长码字,从而使最终的平均码长较小。主要的熵编码方法包括霍夫曼编码、香农编码、算术编码等。

  2. 预测编码:基于图像数据的空间或时间冗余特性,利用相邻的已知像素(或像素块)来预测当前像素(或像素块)的值,然后对预测误差进行量化和编码。包括脉冲编码调制PCM、差分脉冲编码调制DPCM等。

  3. 变换编码:将空间域中的图像变换到另一个变换域。变换后图像的大部分能量仅集中在少数几个变换系数上,通过使用适当的量化和熵编码可以有效地压缩图像。

  4. 混合编码:结合了熵编码、变换编码或预测编码的编码方法,如JPEG标准和MPEG标准。

🤖