在图像处理领域,在开始处理较大的图像或视频之前,图像的压缩是重要的一步。图像的压缩由编码器执行,并输出图像的压缩形式。在压缩过程中,数学变换起着至关重要的作用。图像压缩过程的流程图可以表示为:
在本文中,我们试图解释图像压缩技术所涉及概念的概述。计算机中图像的一般表示就像一个像素向量。每个像素由固定数量的位表示。这些位确定颜色的强度(如果是黑白图像,则为灰度;如果是彩色图像,则具有三个RGB通道)。
为什么我们需要图像压缩?
考虑一个分辨率为1000 * 1000的黑白图像,每个像素使用8位表示强度。因此,每个图像的总位数req = 1000 * 1000 * 8 = 80,000,000位。并考虑一下上述类型图像是否为每秒30帧的视频,则3秒视频的总位为:3 *(30 *(8,000,000))= 720,000,000位
正如我们看到的那样,要存储3秒的视频,我们需要那么多的位,这是非常巨大的。因此,我们还需要一种具有适当表示形式的方法,以便以最少的位数存储有关图像的信息,而又不会丢失图像的字符。因此,图像压缩起着重要的作用。
图像压缩的基本步骤:
- 应用图像变换
- 量化水平
- 编码序列。
变换图像
什么是转换(数学上):
它从一个域(矢量空间)到另一个域(其他矢量空间)映射的函数。假设T是一个变换,f(t):X-> X’是一个函数,则T(f(t))称为该函数的变换。
In a simple sense, we can say that T changes the shape(representation) of the function as it is a mapping from one vector space to another (without changing basic function f(t) i.e the relationship between the domain and co-domain).
通常,我们将函数从一个向量空间转换为另一向量空间,因为当我们在新投影的向量空间中这样做时,我们会推断出有关该函数的更多信息。
现实生活中的转换示例:
在这里,我们可以说棱镜是一个转换函数,其中它将白光(f(t))分成其分量,即白光的表示形式。
我们观察到,与白光相比,我们可以推断出更多有关光的信息。这就是变换如何以有效的方式帮助理解功能的方式。
图像处理中的转换
图像也是像素位置的函数。即I(x,y)其中(x,y)是图像中像素的坐标。因此,我们通常将图像从空间域转换到频域。
为什么图像变换很重要:
- 容易知道组成图像并帮助压缩表示形式的所有主要成分是什么。
- 它使计算变得容易。
- 示例:在变换之前在时域中查找卷积:
变换后在频域中找到卷积:
- 因此我们可以看到,随着切换到频域,计算成本降低了。我们还可以看到,在时域中,卷积等效于积分运算符,但在频域中,卷积等于项的简单乘积。因此,这种方式降低了计算成本。
- 示例:在变换之前在时域中查找卷积:
因此,通过这种方式,当我们将图像从域转换为其他图像时,执行空间滤波操作会变得更加容易。
量化
过程量化是至关重要的步骤,其中,基于像素上定义的数学函数,将各种强度级别分组为特定级别。通常,通过采用固定的过滤器大小“ m”并除以过滤器的每个“ m”项并将其四舍五入为最接近的整数,然后再乘以“ m”来确定较新的级别。
基本量化函数:[pixelvalue / m] * m
因此,像素值中最接近的像素值近似于单个级别,因此随着图像中涉及的不同级别的数量越来越少。因此,我们减少了强度水平上的冗余。因此,量化有助于减少不同的水平。
例如:(m = 9)
因此,在上面的示例中,我们看到两个强度值都向上舍入为18,从而减少了图像规格中不同级别(涉及的字符)的数量。
符号编码
符号阶段涉及以否的方式对图像中涉及的不同字符进行编码。根据角色出现的频率,表示字符所需的位数是最佳的。简而言之,在此阶段,将为存在的不同字符生成代码字。通过这样做,我们旨在减少数量。代表强度水平并以最佳位数表示它们所需的位数。
有很多编码算法。一些受欢迎的是:
- 霍夫曼可变长度编码。
- 游程编码。
在霍夫曼编码方案中,我们尝试以一种方式找到编码,使得这些编码中的任何一个都不是另一个的前缀。并且基于字符出现的可能性,确定代码的长度。为了获得最佳解决方案,最可能的字符具有最小的长度代码。
例子:
我们看到了实际的8位表示形式以及新的较小长度的代码。代码生成的机制是:
因此,我们看到如何减少位数的存储要求,如下所示:
Initial representation–average code length: 8 bits per intensity level.
After encoding–average code length: (0.6*1)+(0.3*2)+(0.06*3)+(0.02*4)+(0.01*5)+(0.01*5)=1.56 bits per intensity level
Thus the no of bits required to represent the pixel intensity is drastically reduced.
因此,以这种方式,量化机制有助于压缩。图像一旦被压缩,很容易将其存储在设备上或进行传输。并且根据所使用的转换类型,量化类型和编码方案,基于压缩的逆逻辑设计解码器,以便可以基于从压缩图像中获得的数据来重建原始图像。