ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « ブリッジネットワーク接続の仮想マシンを使う時はport-securityに気をつける FreeBSD 10に入れたTomcat 7のタイムゾーン設定方法 » MozJPEGのjpegtranによるJPEG圧縮最適化が凄い件 とても今更なんですけどね、Mozilla謹製JPEGライブラリ群の一部、jpegtranによるJPEG最適化の効果に驚愕しとるわけです。 PENTAX K-1を買ってからというものPCのストレージの減り方が半端なく、そりゃJPEG+RAWで撮ってれば1シャッターにつき60MB前後の容量を食うので当たり前なわけでありますが、冗談抜きで空き容量が逼迫しとるんですわ。1TBのSSDうち820GBをデータ用に割り当ててるのに、現時点で残り2.3GBですよ。使用量のうち8割が写真であるからして、白羽の矢が立ったのがMozJPEGというわけ。(RAWが一番容量食ってるってツッコミはなしなんだぜ。) とりあえず急場凌ぎで、画像の品質には一切影響を与えないjpegtranで最適化してみたら、縮むこと縮むこと。元の画像サイズが大きいことも相まって、1枚あたり1MB弱ほど小さくなった。論より証拠ってなもんでスクショをご覧頂こう。 圧縮データの最適化、つまり無劣化でここまで縮むんだから大したもんですよ。もっとも、演算能力や処理時間の制約が厳しいデジカメで生成されたJPEGデータなので、最適化の余地が大きかろう点は考慮の必要があるだろうが…。 画像右端の「算術符号」ってのは、-arithmeticオプションで最適化した結果である。ハフマン符号最適化(-optimizeオプション)より更に小さくなっており、その効果には目を見張るばかりだが、哀しい哉、特許の関係で算術符号でエンコードされたJPEGに対応したソフトは皆無…。試した範囲では、MacOS X v10.9のプレビュー.app、Photoshop CC 2015.5、Firefox 58のいずれにおいても表示する事ができなかった。フォトショとLightroomで使えれば、手元のデジタル写真ライブラリの容量削減に大きく寄与するんだがなー。口惜しい…。 ついでに言うと、-optimizeより-arithmeticの方が処理時間が短かったりするのよね。軽くて縮むとかどんだけだよ。本当に口惜しい……。MacBook Pro (Late 2013)での処理時間は↓こんな感じ。 ・-optimizeの時 real 3m35.907s user 3m22.685s sys 0m11.282s ・-arithmeticの時 real 3m12.291s user 2m57.712s sys 0m11.897s -copy allオプションを付ければJPEGに含まれるメタデータは全て引き継がれる。少なくともexiftoolで比較した限りでは、元ファイルと最適化後のファイルでExifの相違はなかった。 個人的には元ファイルのタイムスタンプも継承したかったので、下記のようなシェルスクリプトで処理した。 #!/bin/sh TARGETDIR="$1" OUTDIR="$1/out" FILES=`find "$TARGETDIR" -maxdepth 1 -type f -name '*.JPG'` echo `pwd` mkdir -p $OUTDIR for file in $FILES; do echo $file CTIME=`GetFileInfo -d "$file"` MTIME=`GetFileInfo -m "$file"` OUTFILE="$OUTDIR/$file" jpegtran -optimize -progressive -copy all "$file" > "$OUTFILE" #jpegtran -arithmetic -progressive -arithmetic -copy all "$file" > "$OUTFILE" SetFile -d "$CTIME" "$OUTFILE" SetFile -m "$MTIME" "$OUTFILE" done ご覧の通り、エラー処理とか何も入れてないので、元ファイルが無関係のファイルが無くなってもしらにゃい(´・ω・`)。GetFileInfoとSetFileを使ってるのでXcodeを入れとく必要がある、つまりこのスクリプトはMac専用なんだぜ。 Comments Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2017/2017-12-01.txt 最終更新: 2017-12-02 00:43by Decomo