为什么减压不能保持质量?

时间:2014-10-03 02:45:31

标签: graphics

我已经读过,要将压缩图像读入内存,必须首先解压缩,然后分配原始大小。因此,由于它被解压缩并且在压缩之前将其大小分配到内存中,为什么使用某个软件查看时压缩图像的分辨率与原始软件不同?

2 个答案:

答案 0 :(得分:6)

压缩不是要降低图像的分辨率或像素大小。压缩是为了减少表示特定图像所需的字节数。

您可以将图像看作4字节结构的数组,每个像素一个,其中每个字节代表每个像素颜色的一个组成部分,即红色,绿色,蓝色和alpha。使用此方案表示图像所需的大小是

width * height * 4

因此,100x100像素的图像将具有10000个像素,因此消耗40000个字节。事实上,这大致就是BMP格式存储图像的方式。

但是,这不是表示10000像素的唯一方法。例如,如果前5000个像素是蓝色,而底部像素是棕色,则可以通过说“blue:5000,brown 5000”之类的内容来表示图像,并且这将需要更少的字节来表示。此方案大致与RLE(Run Length Encoding)的工作方式有关,并广泛用于GIF等多种格式。

但是,您可以做很多事情来减少表示图像中字节所需的字节数。数据并不总是很容易用较少的字节来表示,因此一些压缩算法(如JPEG文件中使用的算法)就是稍微修改像素,因此数据更易于压缩,变化不是很明显。如果这种变化是可以接受的,则在压缩图像时可以获得令人印象深刻的结果。这就是所谓的“有损压缩”。

压缩图像的整个目的是使图像从一个地方移动到另一个地方更容易,无论是将它们存储在光盘上还是通过互联网发送。但是,当您要显示图像时,您的计算机必须告诉显示器每个像素必须获得什么颜色,因此一旦您要显示图像,您需要将其解压缩。

答案 1 :(得分:2)

从技术上讲, de 压缩压缩图像确实可以保持压缩图像的质量。但是,压缩图像可能会降低质量(即压缩图像会略微降低原始图像的质量)。

图像的具体更改取决于您应用的压缩类型;也就是说,我不熟悉任何会改变图像分辨率或大小的压缩。你确定你做对了吗?

相关问题