
本文共 1196 字,大约阅读时间需要 3 分钟。
数字图像处理——第八章 图像压缩
图像压缩的核心目标是减少表示数字图像所需的数据量。或许你会问,既然是一张二维图像,哪一张二维图像还需要减少数据量?毕竟,几个G容量还能存入一大堆文件。但当你想到Android中的Bitmap数据格式,就能够理解为什么图像压缩如此重要了。
为啥要图像压缩
图像压缩其实是去除冗余信息的过程。数字图像中存在编码冗余、空间冗余和时间冗余等多种类型的冗余。例如,ARGB_8888格式的像素需要4字节存储,每个像素占用32位,如果一张1920×1080的图像,总数据量就可达8MB,1GB存储空间只能保存约140张图片。对于视频数据来说,压缩的必要性就更加明显了。
编码冗余
图像的灰度值可以看作离散随机变量,其中每个值出现的概率据以决定其比特分配。通过对变量的编码,我们可以有效减少所需比特数,当编码冗余被减少时,图像压缩得以实现。
空间冗余
相同颜色的像素相邻出现是最常见的空间冗余现象。例如,连续图像中的像素往往颜色相近。通过统计像素值的出现频率,使用行程编码(RLE)来记录连续相同颜色的像素,这大大减少了需要存储的数据量。
时间冗余
视频数据具有强烈的时间冗余,因为连续帧之间的变化通常非常微小。在进行视频压缩时,可以充分利用帧间的相似性,以降低压缩率和增强压缩效率。
一些基本的压缩方法
霍夫曼编码
霍夫曼编码是一种变长编码方法,通过将高频信源分配较短的编码表,对数据进行压缩。具体步骤包括:
行程编码(RLE)
行程编码专门针对空间冗余进行压缩。例如,连续相同的像素颜色只需记录颜色值和连续像素的数量即可。这种方法简单有效,尤其适合处理大量连续相同图像块的情况。
算术编码
算术编码将数据映射到实数区间内,通过动态调整分区间以减少平均比特数。这种方法在处理低熵数据时表现优异,特别适合网络压缩和储存压缩场景。
LZW编码
LZW算法通过查找优最短子字符串匹配,对重复数据进行高效压缩。在图像处理中,它非常适合处理具有高重复性和多样性的数据结构。
数字图像水印
数字水印是一种在图像中嵌入隐藏信息的技术,用于保护版权或验证图像的完整性。常见水印方法包括可见水印和不可见水印。
可见水印
可见水印的基本公式为:
[ f_w = (1 - \alpha)f + \alpha w ]
其中,α控制水印的可见程度,f为衬底图像,w为添加的水印图像。通过调节α值,可以在图像中可见地嵌入水印信息。
LSB不可见水印
LSB方法将高位比特信息嵌入到低位比特中。例如,使用8位颜色图像的最低两位来嵌入隐藏信息。这种方法的优点是难以察觉且不影响图像质量。
通过多种方法结合,可以实现高效的图像压缩和水印技术,从而在图像处理任务中提供坚实的理论基础。
发表评论
最新留言
关于作者
