数字图像处理-学习笔记-图像压缩

数字图像处理-学习笔记-图像压缩

6.11 图像压缩

图像压缩基础知识

首先

数据 \(\neq\) 信息

数据是信息的载体。

当我们打电话时,电话对面的人和你交流,我们通过电话传输的是电波,是数据,而对面听到的是你说的话,属于信息。

图像压缩就是对数据进行压缩。

图像压缩很有必要

可行性

改变图像的描述方式可以变更存储空间。

比如我们可以对原来8个红色的像素表示成8 * R,也就是说,原来我们要用八个格子装红色像素的数据,现在只要两个格子。

上面的例子也就是我们所说的:

图像像素存在着大量冗余

当然图像视觉感知也存在冗余——也就是我们人眼对于微小的颜色变化是没有感知的,可以把他们用刚刚的方法缩小存储空间。

人眼会忽略微小差距

6.12 冗余分析

冗余分类

  • 空间冗余
  • 时间冗余
  • 统计冗余
  • 视觉心理冗余

对于空间冗余

  • 相邻像素之间存在相关性

  • 相应帧之间相关性也很大

    • 去除冗余的方法:预测、变换

对于统计冗余

  • 信息熵
  • 信息量
  • 熵是平均信息量
  • 信息量公式:\(I(x_n)=-log_i(P_n)\)
  • 如果以2为底,单位是:比特
  • 如果以\(e\)为底,单位是:奈特
  • 如果以\(10\)为底,单位是哈特
  • 信息量怎么解释:
    • 你出现的概率越小,你越不寻常,信息量也就更大;
    • 你出现的概率越大,你越平凡寻常,信息量也就越小。
  • 等概率的熵最大
    • 但是我们图片的信息熵不是等概率分布的
    • 所以可以采用一些方法来减少视觉系统的冗余
      • 量化(IGS)
  1. 编码方式

原始图像->去相关–>量化–>熵编码

解码–>>熵解码–>>解相关

  1. 去相关技术
  • 基于预测
  • 基于矢量量化
  • 基于变换
  • 基于子带变换
  1. 信息熵编码/统计编码:

利用图像灰度分布统计特性

均匀的特点,采用不等字长进行编码。

图像压缩的分类

  • 无损压缩-可逆
  • 有损压缩-不可逆

常见的图片格式:

  • \1. JPEG (或 JPG):广泛用于照片和网页图像,支持有损压缩,可以减小文件大小。
  • \2. PNG:支持透明背景,无损压缩,常用于网页设计和图标。
  • \3. GIF :支持动画和透明背景,但颜色限制较多(最多256色),常用于简单动画和图标。
  • \4. BMP:位图格式,通常不进行压缩,因此文件较大,常用于Windows操作系统。
  • \5. TIFF:主要用于专业图像存储,支持无损压缩和多种颜色深度,常用于印刷行业。
  • \6. RAW:相机原始数据格式,未经处理的图像文件,保留了拍摄时的全部信息,适合后期编辑。
  • \7. SVG :矢量图像格式,适合图形设计,可以无限放大而不失真。
  • \8. WebP:由Google开发,旨在提供比JPEG更好的压缩,支持有损和无损压缩,以及动画和透明度。

实验

用python进行实验

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 导入库
import numpy as np
import cv2
from matplotlib import pyplot as plt

# 读取图像
image = cv2.imread('1.1.jpg')
scale_factor = 0.5 # 缩小比例,根据需要调整
image = cv2.resize(image, None, fx=scale_factor, fy=scale_factor)

# 保存图片为test1.jpg有损压缩
cv2.imwrite('test1.jpg',image)

# 读取test1.jpg文件
image1 = cv2.imread('test1.jpg')

# 想减查看原图和读取的图片的差别
sub = image1-image

# 输出图片效果
cv2.imshow("resized_image", image)
cv2.imshow("image1", image1)
cv2.imshow("sub", sub)

cv2.waitKey()
cv2.destroyAllWindows()

实验效果图

原图

1.1.jpg

保存后的的jpg格式图片

test1.jpg

和原图相减后

sub.jpg

效果分析

  • 可以看出,保存后的结果和原图的差别不大。

  • 当我们进行想减,在显示原图后的结果,可以明显看出差别。

  • 图像信息丰富的地方失去了一些细节,但是我们的视觉感知不大;

  • 而图像复杂度低的地方损失的像素不是很多。

总结

本次实验总结了图像压缩的方法、分类,还提出了一些图片保存的格式,以及通过实验来验证了会有损压缩图片的像素,对未来图片的加密、图片处理来说,可能会造成复原噪点、图像损失。

但是图像压缩对于网站来说是很有必要的,可以加快网站对图片的加载速度。


数字图像处理-学习笔记-图像压缩
https://yelelalearn.github.io/2024/04/12/数字图像处理-学习笔记-图像压缩/
作者
Yelearn
发布于
2024年4月12日
更新于
2024年4月14日
许可协议