分享

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

 pgl147258 2014-12-04

【Cascade的回答(25票)】:

这个问题要解释清楚非常麻烦。需要先把JPEG的整个压缩算法以及涉及到相关知识都解释一遍,然后才能说明白“颜色”和压缩参数究竟是如何影响JPEG压缩结果的。

但简单地说,就是这两张图用了不同的压缩参数,也就是很多回答所说的“品质”参数,导致压缩率不一样,所以体积不同。这是其中最主要的原因。其次就是图像的颜色不同,导致就算用相同的参数压缩,产生的文件大小也不一样。

下面的内容是失眠时写的,语句有很多不通顺的地方,内容上稍微详细的解释了一下前面说的两点。更主要想说的是,很多人对于JPEG的“品质”这个参数有误解。很多软件里,这个参数并不是一个有精确意义的东西。更多的就像你描述一家饭店饭菜做的“一般”“还行”“挺好”这种比较模糊的词语。从数值上去比较不同软件的这个参数意义不大。

以下是原有内容:

这两张图像除了长宽一样以外,在计算机眼里几乎没有相同的地方。它们压缩为JPEG的时候,使用的参数不同,导致两者文件体积的巨大差异。图像本身内容上的不同也会使JPEG压缩的结果大小不一样。所以大小不同是非常正常的。

大部分软件都是用一个参数来控制压缩后JPEG图像的品质。这个参数是来控制JPEG压缩过程中,“量化”步骤所使用的量化参数矩阵的。

使用和红色图像完全相同参数重新保存暗色图像后,大小约为30M。如果以暗色的参数为准,那么红色图像将变为25M。两者相差约10M。这个差别就是因为它们图像本身的不同引起的。暗色图像在变换到频率域,同时做了量化以后,产生了更多的重复数据。导致最后做霍夫曼编码压缩时压缩率比红色的高。

如果都按照暗色图的参数存储:

Filename: [暗色.jpg]Filesize: [15733917] BytesCompression stats: Compression Ratio: 9.28:1 Bits per pixel: 2.59:1Filename: [红色.jpg]Filesize: [23365012] BytesCompression stats: Compression Ratio: 6.25:1 Bits per pixel: 3.84:1暗色图的压缩比要高一些

而且,两张图压缩过程中所使用的质量因子确实不同。这是两幅图压缩中所用的量化表:

红色:

Destination ID=0 (Luminance)DQT, Row #0: 1 1 1 1 1 1 1 1 DQT, Row #1: 1 1 1 1 1 1 1 1 DQT, Row #2: 1 1 1 1 1 1 1 1 DQT, Row #3: 1 1 1 1 1 1 1 1 DQT, Row #4: 1 1 1 1 1 1 1 1 DQT, Row #5: 1 1 1 1 1 1 1 1 DQT, Row #6: 1 1 1 1 1 1 1 1 DQT, Row #7: 1 1 1 1 1 1 1 1 Approx quality factor = 100.00 (scaling=2.99 variance=6.13)

暗色:

Destination ID=0 (Luminance)DQT, Row #0: 1 1 1 1 1 1 1 2 DQT, Row #1: 1 1 1 1 1 1 1 2 DQT, Row #2: 1 1 1 1 1 1 2 2 DQT, Row #3: 1 1 1 1 1 2 2 3 DQT, Row #4: 1 1 1 1 2 2 3 3 DQT, Row #5: 1 1 1 2 2 3 3 3 DQT, Row #6: 1 1 2 2 3 3 3 3 DQT, Row #7: 2 2 2 3 3 3 3 3 Approx quality factor = 98.11 (scaling=3.79 variance=4.10)

这里只取了亮度的量化表。量化表是8x8的,JPEG压缩的时候图像被分为8x8的小块,一块块处理。至于表中的数值,你可以简单地理解为数值越大的项,对应的数据就会被砍的越多。其中的Approx quality factor是用Independent JPEG Group(IJG)发布的算法算的,里面的98.11是Photoshop中“存储为”12品质JPG对应在IJG算法里的参数。但就算是用标准量化表(IJG参数是100),产生的数据也是有损失的,而不是完全的无损。

另外“质量因子”是一个人为设定的参数,它代表删减图像所依据的量化表与“标准”量化表的差距。量化表是用来做有损压缩中的“有损”这一步的。这个参数从数值上没什么意义,除了用IJG算法的以外,剩下的都是软件开发人员自己定的。基本上都是越大就越接近标准量化表,被删减的数据就越少,体积越大,品质越高。比如Photoshop在生成Web用图像的时候最大是100,存储到磁盘时最大值是12,它只是代表有12挡可调。实际上生成Web用图的效果要比存储成12品质JPG好那么一点点。而相比Photoshop,美图秀秀或者说它使用的库,用的是IJG的算法,所以最高品质图像压缩损失掉的数据要比PS的少,当然文件也就更大。

【杨健的回答(25票)】:

亲测:

昵图网下载图片:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

使用 Photoshop CC 将原图存储为 Web 所用格式,使用JPEG,品质100,如图:使用 Photoshop CC 将原图存储为 Web 所用格式,使用JPEG,品质100,如图:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

======================开始试验========================

首先将图片色相调整

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

按照以上格式保存,命名为“红色.jpg”。按照以上格式保存,命名为“红色.jpg”。

继续调整色相:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

保存命名为“青色.jpg”。保存命名为“青色.jpg”。

如图比较:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

还是有些差距的。

========补充=====

将原图1000%缩放,此时分辨率为10240 x 8190 ,Photoshop中显示文档大小239.9M

另存为BMP格式,

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

保存为“青色.bmp",此时Photoshop中显示文档大小没变化。

调整色相 +180,另存为“红色.bmp”,此时Photoshop中显示文档大小没变化。。。。。

这时查看两文件信息,发现大小完全相同

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

=========添加纯黑BMP对比===============

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

==========================JPEG==========================

另存为选项选择jpeg,保存选项为12高品质(话说 存储为Web格式 居然不支持10000像素以上。。。。。。。)

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

两图信息如下,有细微差别

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

=======================================

以上实验均在保存格式与参数相同情况下测试,BMP无压缩,在分辨率相同的情况下两图文件大小完全相同。JPEG因为压缩算法问题,颜色有差别,文件大小有细微差别。

以下为品质 12 与品质 6 时的文件大小差别:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

LZ的两个文件差别这么大。。。一定是压缩品质的问题。。。。。。。。。。

【FelixSiu的回答(10票)】:

看program name那一栏 ,一个叫http://www.meitu.com,一个叫adobe photoshop cs2,我仿佛明白了什么

【BGLL的回答(14票)】:

@Cascade 的解释没有错,但是可能会让一些人产生误解

而他把2张色彩不同的图片大小不同的原因归结于

暗色图像在变换到频率域,同时做了量化以后,产生了更多的重复数据

(其实结果没错,前提有问题,色彩不同本身重复数据就不同。)

过于强调了JPEG的压缩原理和压缩级别对图片大小的影响,让人容易忽视色彩对图片体积的是有影响的。

也就是根据他的答案很多人都得出了色彩不同对图像大小没有影响.....的错误认识

---------------

#先问一个问题

由下面三种颜色填充满组成图片:64X64的PNG格式图片 ,那种颜色的图片大小更大?(要64X64大小哦,纯色图片区别太小。尺寸大了压缩效果太强没区别,尺寸太小没压缩效果...在PS里要选保存为WEB格式并在元数据选项中选择”无“,否则图片会带有其它版权啊编辑历史啊等无关信息影响判断)

红ff0000 橙ff7d00 紫45165e

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

如果是BMP格式这种不压缩的格式,大小是一样的(BMP没有压缩,就像箱子不管里面装什么都一样的大,PNG是无损压缩像塑料袋子装的东西少体积就会减小,而JPEG是有损压缩像是网眼袋不仅装进东西少体积会减小而且里面的小东西还会漏走),但只要是有压缩的格式,包括PNG这种无损压缩的格式,这3张图片大小一定是:红色<橙色<深紫色。。。

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

这是为什么呢?

这要从图片的存储方式说起:

一张彩色图片都是有有3张黑白图片组成的,那3张灰度(黑白)图片分别是图片中红色、绿色、蓝色的信息,显示的时候红绿蓝3个通道的图片合起来显示出彩色的图片:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

也就是说,红绿蓝3个通道的取值是独立的

而每个通道的一个像素点是一个取值为0~255的整数:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

3个通道的值合起来就是 我们常常表示一个的像素点: RGB(255,33,222):

图片压缩的本质就是去除冗余信息、保留有效信息。

图片所含信息越多,体积越大、能压缩的空间也就越少

而不同颜色组成图片所含信息量是不同的!

下面说的图片体积都是压缩后(包括无损压缩)的体积

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

红色包有2个0值通道,橙色1个,紫色没有....

所以所含信息: 红色<橙色<深紫色

(这只是给出一个直观感受,实际情况更复杂,只为便于理解:红色调的图片信息集中在红色通道,而橙色调图片的信息分散在红色和绿色通道.....不同色调的图片大小不同)

没有有什么图片只有一种颜色,而一种颜色的图片重复信息太多压缩空间太大,不明显。而当图片通道值分布的更广(0~255)时差距就体现出来了

可惜楼主放出的图片下载链接失效了,我只好找一张差不多的的图

如果主色调是红色这种信息只在一个通道的图片体积就要小(可压缩空间大):

//实际上红色色调的图,算是使用2个通道(另外两个通道值数值是相等是)

//青色色调的图算使用是2~3通道之间(一部分点两个通道数值是相等,另一部分点3个通道都不相等),

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

纯红色调(2.19MB) - (255,0,0)

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

而当用这种青色,这种信息要占用2个通道的颜色时:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

青色调(2.71MB) -(0,255,216)

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

2.19:2.71,有20%的体积差别,这已经不是@imlong 说的 细微差别了,而用到三个通道的紫色(3.09MB)就有了30%的差距。

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

紫色3.09MB - (184,35,105)

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

饱和度对图片体积的影响

前面说的是算是色相对图片体积的影响,而饱和度对图片体积也有影响

饱和度越低,色彩RGB三个值越接近,也就是说值变化的范围越小,信息量越低,可压缩空间就越大

低饱和度的颜色:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

当饱和度降到0:图片体积最小化了(亮度相同时),3通道值完全一样了。

0饱和度1.8MB

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

亮度对图片体积的影响

这个应该很好理解,本来一张图片色彩取值是0~255,(RGB:255,255,255 就是最亮的白色),亮度调低了,最大值就减小了,可能取值就变成0~125了,信息就被削减了,可压缩空间也就增加了

这是上面那张 紫色3.09MB 降低亮度以后的图,只剩下2MB了,体积减小1/3了。

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

另外图片色彩的动态范围也会对题体积产生影响(ps里用曲线或对比度调)这里就不多说了。

说这么多只想说图片的色彩是很重要的,不要因为 @Cascade 答案产生

颜色不同对图像大小没有影响.....,甚至图片内容对图像大小没有影响的错误认识

-

回到题主的问题,由于没有原图所以....不过看截图2张图一张是 ”饱和度较高紫色“ 一张是”饱和度较低的青色“,如果是同样的JPEG压缩品质,青色那张体积也要小与紫色那张。

实验一下:青色图:紫色图=1.64:2.13,约有20%左右的差别。

不过题主的图40MB:14MB相差70%左右,而且看楼主截图里文件详情编辑工具不同,一个美图秀秀一个PS,那肯定是保存时JPEG压缩级别设置不同了 就如 @Cascade 里解释JPEG压缩的原理的一样。巧的是正好是暗色那张压缩级别大,让人忽略了色彩对图片体积的影响。

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

青.jpg 1.64MB:

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

紫.jpg 2.13MB

两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大(20M)?

【知乎用户的回答(0票)】:

首先跳出来的想法是jpg压缩级别不同。用PS保存为jpg格式的时候你可以看到那个压缩级别的选项。分为1至12(10?)级别。

【李辉的回答(0票)】:

你把右边这张在PS里另存为BMP格式,然后在资源管理器里把扩展名改成jpg。然后他就能反超了。

【杨科的回答(5票)】:

jpg压缩,有个属性叫quality,也就是所谓的品质,范围为0-100。不同数值的quality对应了不同的压缩比,所以占用的大小会不一样,就是这么简单。

P.S.排名第一的真的很罗嗦啊,讲来讲去半天。

【RayWang的回答(0票)】:

就算不考虑压缩等级的问题,即使同样的压缩等级,因为颜色值不一样,导致表示点像素rgb数据不同,在做jpg压缩算分析的时候也由可能产生不同的大小

【王北辰的回答(0票)】:

有没有想过图片里可能含有非图片信息、突然想到了图种之类的东西、

【知乎用户的回答(0票)】:

dpi怎么看出来一样的?

原文地址:知乎

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多