这个主要是涉及信息论的"熵"的概念吧。。
知乎有个类似的问题,可以看一下:
http://www.zhihu.com/question/22539777针对LZ的问题,固定大小的图片,理论上如果其中的数据最无序(熵最大),那它的压缩比也应该是上最小的。
在具体到文件格式上:
-----------------------------
PNG格式是无损压缩,压缩算法是deflate,实际上就是用Haffman编码来压缩,符合信息熵的理论,那最简单的方法就是每个像素都用随机数填充,随机数函数质量越好,熵越大。
简单做个实验:
BMP文件用这个生成:
https://github.com/esneider/bmp随机数是从设备的噪声数据熵池中取的:
http://zh.wikipedia.org/wiki//dev/random生成一张100x100 24bit的bmp文件,大小是30KB。
这张是手动填写的数据,虽然没有相同颜色的像素,但是数据比较有序。压缩成PNG后只有6KB。
这张是用随机数填充的,压缩成PNG后有32KB(几乎没有压缩效果)。
如果非要精确的生成一张理论压缩比最小的PNG,可以尝试看下PNG的压缩过程,针对实际算法来一步步填充。
-----------------------------
JPG格式是有损压缩,所以要先看一下这个压缩算法。JPG是用人类的视觉模型来进行压缩的,颜色模型是YCbCr,所以BMP转JPG时,第一步要把RGB颜色转换为YCbCr,然后再用离散余弦变换转换到频域,之后可以压缩掉一些频域上人眼不敏感的数据,最后才用Haffman编码来处理数据。
这个过程来说,根据视觉模型压缩这一步不好分析。。生成一个"最小压缩比"的图片,理论上很困难。。感觉。。