2
レプトン圧縮を阻止する
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圧縮に漸近的に近づくことは不十分です)。 APP0JFIFマーカーは(正確に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、あなたに物事を伝える必要があります。