压缩图像文件格式(jpeg、PNG、gif)的原始形式是什么?

What is the raw form of a compressed image file format(jpeg, PNG , gif)?

我们知道 jpeg 、 PNG 、 gif 都是压缩文件格式,我的问题是我们提供给这些压缩算法的原始输入源是什么,图像数据在转换为图像数据之前以哪种形式存储这些文件格式。

视情况而定。

PNG一般是无损的,但是确实有数量限制bits/pixel。 GIF 也证明是无损的,但要获得大量颜色更复杂。这些格式仍然是压缩的,但使用不会丢失数据的压缩方式。

JPEG 是有损的。如果您另存为 JPEG,您将无法在不损失清晰度的情况下恢复为另一种格式。通过将数据表示为方程式,它可以变得非常小,但随着近似值变得更糟,它可以开始看起来 "blurry"。

还有其他图像格式,如 TIFF、RAW 和 BMP,它们通常不进行任何压缩,尽管它们实际上更像是容器并且在技术上可以包含压缩数据,但它们通常不进行压缩。

原始的、未压缩的数据取决于生成它的内容。 photoshop 文件将另存为 PSD,但在内存中可能以不同方式表示。每个数码相机可能都有不同的内部存储器布局方式,并且照片传感器倾向于将传感器 1 对 1 映射到一组位数的内存位置。

然而,常见的模式是图像的每个像素都存储为 3 个(有时是 4 个)颜色值,每个颜色值介于 8 到 16 位之间。这 3 个值可以代表红色、绿色和蓝色,或者也可以代表色调、饱和度和明度。对于设计,它可以是 CMYK(青色、品红色、黄色和黑色)。也可能有一个 alpha 值。每个颜色通道使用超过 16 位是不常见的,最常见的是使用 8 位。大多数人认为使用 12 位是全彩色,但这在 32 位甚至 64 位机器上对齐得不是很好。不过,有时在数字视频信号中使用 12 位,因为在串行广播时,颜色值不需要适合字词。

不同的格式会有不同的顺序。通常先行,但有些格式从底行开始,有些格式从顶部开始。

所以,真正的答案是它取决于特定的压缩器正在寻找什么。大多数保存为 JPEG 或 PNG 的软件将接受多种格式,最常见的可能是 32 位/像素,RGB(红色、绿色、蓝色)和一种未使用或 alpha 各 8 个字节。它将需要图像的宽度和高度,因此图像数据应为宽度*高度*4(以字节为单位)。您通常会传入一个定义的常量,告诉它字节顺序:RBGA、ARGB、BGR、RGB 等。