图像压缩介绍

概念

图像压缩是图像编码的一种典型用途。数据压缩的对象是数据,大的数据量并不代表含有大的信息量。图像压缩就是除去图像中多余的数据而对信息没有本质的影响。

目的

图像编码压缩的主要目的是用尽可能少的bits去表示一副图像,于此同时,图像的质量和信息得以保留。减少数据量的基本原理是除去其中多余的数据。

  • 冗余(redundancy)
  • 空间冗余(Spatial redundancy):图像中相邻像素间的相关性引起的。
  • 时间冗余(Time redundancy):图像序列中不同帧之间存在相关性引起的。
  • 频谱冗余(Spectrum redundancy):不同彩色平面或频谱带的相关性引起的。

图像压缩步骤

图像压缩基本按照以下流程进行:
输入图像/视频 -> 变换 -> 量化 -> 符号编码 -> 存储/传输 -> 符号解码 -> 反变换 -> 图像/视频

图像压缩 python 图像压缩的目的有哪些_图像压缩 python

量化(Quantization)

  • 概念:量化是压缩的主要图像,主要也是它引入误差的。JPEG通过各种除法来进行量化,不过对于不同重要程度的信息,它所除的数的大小会有所不同。
  • 模拟与数字:
    数字图像出来的图像空间上和数值上都是离散的
    模拟图像出来的图像空间上和数值上都是连续的
  • 目的:
    提取有用的信息,忽略细节,排除无关信息。

分类

  1. 按照压缩方法是否丢失信息
  • 无损压缩:解压以后的数据和原始数据完全一致。解压后得到的数据是原数据的复制,是一种可逆压缩。
  • 有损压缩:解压以后的数据和原始数据不完全一致,是不可逆压缩方式。
  1. 按照压缩方法的原理分类
  • 预测编码
    基本思想是利用已被编码的点的数据值,预测邻近的一个像素点的数据值
  • 变换编码
    基本思想是将图像的光强矩阵变换到系数空间上,然后对系数进行编码压缩
  • 统计编码
    根据信息出现概率的分布特性而进行的压缩编码。

应用

  • 减少信道传输时所需的带宽:TV,HDTV,UHDTV,手机
  • 减少存储时所需的存储空间:大的影响,图形数据库,医疗图像

方法

无损压缩

  • 消除编码冗余: 哈夫曼编码和算术编码。
  • 消除像素间冗余:LZW编码,位平面编码,行程编码和无损预测编码。

有损压缩

  • 变换编码:K.L变换,Haar变换,Walsh.Hadamard变换,离散余弦变换,离散傅里叶变换 和 小波变换。
  • 有损预测编码。

压缩标准

  • JPEG静态图像压缩标准是广泛使用的照片存储格式
  • JPEG 2000新一代静态 图像压缩标准,是基于小波变换的图像压缩标准,可以获得比JPEG更大的压缩比。

常见压缩编码

变换(Transform)编码

  • 概念:对原图像进行变换,使之更容易被压缩。(比如Fourier transform)。
  • 目的:
    降低空间和时间冗余。
  • 常用的变换编码:KLT,DCT,DFT,Wavelet Transform
    通常使用DCT,不使用KLT的原因:
    1.Signal independeng
    2.Easily find fast algorithm

预测(Prediction)编码

  • 概念:通过消除紧邻像素在空间上时间上的冗余来表现。
  • 分类:Inter frame, Intra frame

符号编码(Symbol Coding)

  • 目的:生成定长编码或变成编码。最小化编码冗余。
    JPEG使用常见的哈夫曼(Huffman)编码。
  • 哈夫曼编码(Huffman Coding):
    是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。信源符号出现频率越高,使用的码字就越少。是一种一致性编码法(又称“熵编码法”),用于数据的无损耗压缩。
  • 熵(entropy):反映了图像中平均信息量的多少