Dropbox最近发布了Lepton(GitHub),该方法可无损地压缩JPEG图像往返,平均节省22%。
由于信鸽原理,不能保证任何常规的压缩算法都会导致文件更小(一般是因为它不适用于限制为特定格式的输入)。Lepton充分利用了JPEG的共同特征,如果这些特征被颠覆了,可能会导致其产生比源更大的文件。
要求
编写一个生成以下内容的程序:
- 有效的JPEG / JFIF图像,
- 大小介于0.5 MB和1 MB之间,
- 不小于256×256 px,
- 不大于4096×4096像素,
- Lepton可以识别(它可以成功地“压缩”为
.lep
图像),并且 - 解压缩为相同的
.jpg
(作为输入)。 APPx
,COM
以及其他元数据,非图形标记部分在JPEG中受到限制(向图像中注入任意数量的随机字节以渐近地接近1:1压缩是la脚的。)- 允许使用
APP0
JFIF标记,但不允许使用缩略图(应为16个字节) - tl; dr如果您不是故意将元数据推入EXIF段中,并且禁用了您希望选择的语言库想要放入图像的任何缩略图,那应该没问题。
- 允许使用
发布代码和图像。
如果要编写一个生成Lepton图像的程序,该程序在转换时会产生符合条件的JPEG,那就很好。在任意多个JPEG→轻子→JPEG→...循环中,它必须保持相同。
计分
Lepton图像的字节大小除以源JPEG图像。更高(更轻的Lepton压缩)更好。使用默认标志和开关运行Lepton。
到达莱普顿
5秒钟的速成课程来构建Lepton:
git clone https://github.com/dropbox/lepton.git
cd lepton
./autogen.sh && ./configure && make
# fish shell: ./autogen.sh ;and ./configure ;and make
那./lepton --help
应该告诉你的事情。