业内新闻 > 用JPEG算法压缩文本,结果一塌糊涂

JPEG图像压缩算法是有损算法。每次当你打开图片编辑、保存的时候,图片中一部分原始内容就会丢失。但是,人们很难用肉眼观察到其中的差别。因此,我们就来压缩下《罗密欧与朱丽叶》,把虚拟的“压缩”现实化。

压缩后片段:

“O Romep+ Rpldo wiepffnre arr!riov Romep@

Dgoy thz gatggr `me tefusf sgx n`me!”

原文:

O Romeo, Romeo! wherefore art thou Romeo?

Deny thy father and refuse thy name;

上述片段来自于《罗密欧与朱丽叶》中著名的“楼台会”。我用PhotoShop导入这个纯文本,选择“最高质量”,再将所得结果导出,于是就得到了这么一个东西。

通过上述对比可以发现,即使选择的是“最高质量”的压缩方式,多数字符还是被其相邻或相近的字符替换了。而这一点在图像上就是细微的颜色变化,人眼几乎分辨不出来;但当变化通过这种形式展现出来时,即使最轻微的变化也会给阅读带来麻烦。

于是,我又试了试其他的质量,下图中从上到下依次是“最高质量”到“最高压缩”。之后,我又把它们打印出来,装订成册。

当质量逐渐下降时,很多字符都已经变成了ASCII中的控制符。为了方便印刷,这些控制符都以空格代替,但制表符和换行符得以保留。悲催的是,一行文本变成了好几行,而这场戏也成了一串串无厘头的字符。

从此,我们得以发现:我们对文本失真十分敏感,因为每秒钟人眼能够阅读的数据只有几十个字符;相反,我们对图像却不加考究,降低清晰度的图像丝毫不会影响到我们。

真的是这样吗?阅读序顺错乱真的不会影响读阅质量吗?

[via TomScott]


评论摘录:

比如把abcdef编码成两个RBG点:

(97, 98, 99)(100,101,102)

比如原文有30000个字符,那么就可以编码成10000个像素点,排成100×100的图片。

然后jpeg压缩,然后反过来解码。

另外我想说一下,图片的压缩方式不适合文字。举个简单的例子,相邻的3个点

(0, 0, 0)(X,X,X)(2,2,2)

这个时候预测中间那个点是(1,1,1)似乎是合理的,至少不会出太大偏差。

如果是文字:

F*CK

谁来预测一下。

 

信息来源:http://www.cnbeta.com/articles/241730.htm

上一篇:Ubuntu手机电信运营商名单曝光 2013/6/19 19:09:10
下一篇:时代周刊:苹果公司会如何颠覆电视市场 2013/6/19 20:08:57