加载后图像大小增加

Image size increases after loading

本文关键字:增加 图像 加载      更新时间:2023-10-16

我有一个RGB JPEG图像,重约11 MB,分辨率为7680 x 4320。我使用 uchar4 数组将其存储在 RAM 中。sizeof(uchar4) 是 4 个字节,这是合乎逻辑的。不难计算出,我使用的数组大小为 4 x 7680 x 4320 = 132710400 字节 = [大约] 126 MB。那么为什么图像存储在硬盘驱动器上时仅重 11 MB,加载到 RAM 后重 126 MB。

所以实际上你的问题是为什么图像大小存储在磁盘上时更小,因为内存中的大小实际上是你期望的,对吧?

不幸的是,您没有告诉我们使用哪种文件格式来存储图像,但基本上所有常见的图像格式都不会按原样存储像素值。他们首先应用压缩算法。PNG 或 GIF 等某些格式使用无损压缩,JPEG 等其他格式使用有损压缩,这意味着每当存储图像时,图像质量都会略差。但是,这些格式允许更好的压缩。

所有压缩算法都依赖于图像像素不(统计上)彼此独立的事实。附近的像素通常是相关的。此关联用于减少数据量。由于不同的图像通常具有不同的相关性,因此即使像素数相同,图像文件大小也会有所不同。