Dropboxは最近、レプトン(GitHub)をリリースしました。これは、往復でJPEG画像を無損失で圧縮し、平均22%を節約する方法です。
そのための鳩の巣原理、任意の一般的な圧縮アルゴリズムをすることはできません保証(小さいファイルをもたらすために、一般的には、特定の形式に制約の入力には適用されないため)。LeptonはJPEGに関する一般的な特性を利用します。JPEGは、破壊された場合、ソースよりも大きいファイルを生成するためにそれをピジョンホールする可能性があります。
必要条件
以下を生成するプログラムを作成します。
- 有効なJPEG / JFIF画像、
- 0.5 MB〜1 MBのサイズで、
- 256×256 px以上
- 4096×4096 px以下
- レプトンが認識できる(
.lep
画像に正常に「圧縮」できる) - (入力として)同一に 解凍し
.jpg
ます。 APPx
、COM
およびその他のメタデータ、非グラフィックマーカーセクションはJPEGで制限されています(ランダムな量の任意のバイトを画像に注入して、1:1圧縮に漸近的に近づくことは不十分です)。APP0
JFIFマーカーは(正確に16バイトでなければならない)、許可されているが、サムネイルが許可されません- tl; dr意図的にメタデータをEXIFセグメントに押し込んでおらず、選択した言語ライブラリが画像に配置したいサムネイルを無効にしている場合、それは問題ありません。
コードと画像を投稿してください。
変換すると基準を満たすJPEG が生成されるLeptonイメージを生成するプログラムを作成する場合は、問題ありません。任意の多くのJPEG→Lepton→JPEG→...サイクルにわたって同一のままでなければなりません。
得点
ソースJPEG画像で割ったレプトン画像のバイトサイズ。高い(レプトン圧縮が悪い)ほど優れています。デフォルトのフラグとスイッチでレプトンを実行します。
レプトンを取得する
レプトンを構築する5秒間のクラッシュコース:
git clone https://github.com/dropbox/lepton.git
cd lepton
./autogen.sh && ./configure && make
# fish shell: ./autogen.sh ;and ./configure ;and make
その後./lepton --help
、あなたに物事を伝える必要があります。