跳转到内容

一色图像值2千字

第一部分(一像素值三千字)转成双片博客文章中我讨论了一像素图像和不同图像格式“压缩”这些图像我很惊讶这件事情能说多少并描述一像素图片和压缩方式, 转而成为光荣怪兽(和二分博客贴文.

似乎我朋友图像压缩爱好者 和我一样兴奋博客文章引人入胜重置讨论中的其他格式像BMPTIFFJPEG文件由141字节一像素提供(小于我认为最小化的JPEG文件160字节)

怀着这一思想,我很高兴介绍第二部分,单色图像并检查长度我希望你发现它有趣 并想听听你的想法和洞察力

第一部分显示单像素图像最差图像压缩假设:它们都是信头和顶部,数据很少无法真正压缩任何东西, 因为压缩取决于可预测性, 并如何预测单像素

后半部分博客文章中,极可预测图像.

最可预测的图像是单色大矩形换句话说,扩展版一像素图片我在第一部分讨论空画布空白表

压缩算法应真正擅长压缩图像,即每个像素都相同颜色最优案例假设 预测性终极- 一旦你看到了第一个像素,你都看到了

取单白像素并放大至渐变大方形, 并观察各种图像格式的性能我写了个小脚本来做以下是结果

单色方图白比较

从方块看像素数是x轴数平方数:当方块宽度从1到5000像素时,图像大小从1像素到25兆像素毫不奇怪部分曲线看起来像二次函数未压缩PBM文件格式显然有线性像素数之积(原样化为像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素数中像素似似似似似似似似似似似值(本数中像素像数中像素似似似似似似似似似似值中像数中像数但是JPEG失落web也是线性像素数(方块宽度中方块数)-仅带更好的常量因子换句话说,似乎每像素有一定成本JPEG看起来需要每8x8宏块至少2比特

表示JPEG和LossyWebP理论压缩比限制或0.014比特/像素

多数其他格式似乎没有这样的限制看上去不象上文图中的二次曲线让我们看看这里有什么

  • GIF系统异常曲线:直线持续相当长段时间, 但它像转接齿轮二番:先点介于3000x3000前,再点介于4000x4000后我不知道解释 这种行为
  • 上头巴布亚新几内亚曲线直线或多或少直线直达2次权限对接(1024,2048,4096),可能是由于基点Zlib压缩行为变化所致
  • 损耗BPG无损BPG彼此相近-你可以看到这些只是两种不同的压缩算法,而WebP则完全无关算法,损耗式和无损变方法则则与WebP形成对比。怪事BPG文件大小随图像变大而上下波动相当强烈比较容易看到这一点,如果你缩放部分绘图:白-缩放单色方图比较

568x568白方块取232字节无损BPG,略大569x569白方块取144字节怪异.

  • 无损Web低曲线优美:25兆像素白方形5000x500仍只取1012字节
  • FLIF系统比赛之王:图像维度无关紧要,所有像素为白,FLIF文件为19字节比较简单压缩技术FLIF应用的副作用对每种色通道(在此例中只有一个:luma),头部可可选包含下界值和上界值通过缩小值范围,可以实现更好的压缩以8位数表示时,区域降为单值(白值或255位数)。一旦知道这是范围, 每一个像素都变得尽可能廉价: 完全零比特

上方图中仍很难看到各种格式的无特征行为以不同方式绘制数据:让我们看看相对文件大小,即比特需要像素而不是看位数像素, 即极小的位数,让我们看像素数/位数公牛大爆炸 说来话长压缩白方块图集,Y轴上像素/比特

单色平方图像对比白-像素/比特

和预期的一样未压缩PBM快速归结到一像素比特, 信头和拼接顶部变得越发不重要JPEG失落web快速归结到似理论极限-32像素/比特和70像素/比特

GIF系统趣味更多:它逐位增像素,直到接近200像素之后它似乎多次头朝天花板跳动

巴布亚新几内亚快速超过200ppb天花板并不断提高,

BPG系统无损WebP相似行为方式:先变快,但后变慢,次曲线像素接近横向两者均能实现1000多像素/比特

FLIF系统无需编码 即快速生长并持续生长

我们能走多远最大图像维度得到所有上述格式支持,为16383x16383像素(268兆像素)。来看看这个巨大的白方块有什么收获

格式化

字节

位像素

PBM

33552399

i.00

巴布亚新几内亚

53 132

631.45

GIF系统

182225

184.11

JPEG

1,048737

31.99

失传WebP

477334

70.29

无损Web

10 368

3235.95

损耗BPG

16 734

2 004.90

无损BPG

18 032

1 860.60

FLIF系统

19号

1 765 807

如果大广场为黑而不是白会有什么区别吗?取像素比方图

单色平方图像对比黑-像素/比特

268兆像素黑方数

格式化

字节

位像素

PBM

33552399

i.00

巴布亚新几内亚

32645

1,027.73

GIF系统

182225

184.11

JPEG

1,048737

31.99

失传WebP

477334

70.29

无损Web

10 366

3236.57

损耗BPG

16 734

2 004.90

无损BPG

18 032

1 860.60

FLIF系统

15

223689

发现对某些格式来说 黑白方块之间实际上有差分 黑比白总比紧内巴布亚新几内亚大白方为53KB,大黑方仅为32KB黑方比白方看起来平滑得多

难怪巴新白黑差因何PNG图像数据基本为PNM+zlib, 并有一个重要的差分:“过滤器”可用于改善数据压缩PNG支持5滤波类型图像行可使用不同的滤波每一行前缀加字节表示该行的滤波类型

现在是什么最优编码全白图像?无关紧要的是你使用哪种滤波类型-无论选择哪种-实际滤波数据字节多半0或255问题在于,如果选择过滤器类型None(编码为0),过滤数据全为255,而选择任何其他过滤器类型(编码为1至4)则过滤数据大都为0反之,你并没有得到大序列完全相同字节-行首中断重复模式,长度视图像宽度而定宽度旁跳转二分法解释:这些点Zlib需要更多比特表示LZ77距离.

A级全黑图像简单化:您可以选择过滤器类型0滤镜数据全为零,不管你做什么, 所以数据压缩为大序中只有零这也是Zlib最优假设, 所以你离得相当近zlib理论限制1032:1压缩比

A级完全透明图像或多或少得到完全黑图像相同压缩, 出于同样的原因:它是一个大序零数(只是长序数,因为有额外alpha通道)。

检验32KB大黑方PNG文件时会发现,即使压缩超过千倍,结果压缩数据仍然非常重复性换句话说,压缩数据可以进一步压缩事实:运行gzip32KBPNG文件产生225字节的.gz文件

无法抵挡边界像素:-)

哇这是一个相当长技术博客日志,然而我们只覆盖最简单可能的图像类型:先单像素,再同单像素向大方块缩放虽然这些图像肯定不是最有用或最有代表性的图片类型,但它们仍然能告诉我们一些关于图像格式极限的东西,我们已经考虑过:PNG、GIF、JPEG、PNM/PAM非压缩WebP和BPG损耗和FLIF.我们看到最坏案例和最优案例行为模式:从160字节单像素到15字节268兆像素

万事达此步 恭喜我希望你读到这些时 学到新东西写它时我肯定写了

回顶

特征邮箱

Baidu
map