JPEGツール


画像の種類と使い分けで「JPEGで保存する場合は画質などのパラメータを決めてやる必要があります」と書きました。 画質、形式・最適化、ダウンサンプリング などのパラメータがあります。 くわしいことはjpeg 圧縮とオプションの話 や、JPEG画像圧縮FAQ その1、[5] JPEG保存の時のよい「品質設定値」って?を読んでください。といいつつ、少しは触れておかないとあとの説明がしにくいので簡単に説明します。

画質もしくは品質
出力画像品質の設定。画質を上げるとファイルサイズも大きくなります。
形式
JPEGには通常のもの(ベースライン)とプログレッシブの2とおりあります。どちらを使えばファイルサイズが小さくなるかは画像によりますが、大差はありません。画質は変化なし。
最適化
ONにすると計算に時間がかかりますが、ファイルサイズが少し小さくなります。画質は変化なし。
スムージング
JPEGは色や明るさの変化がはっきりした画像が苦手です(ファイルサイズがあまり小さくならない)。そういう画像には、ぼかし(スムージング)をかければ小さくなります。ということでぼかす度合いのパラメータ。通常は0(ぼかさない)です。
サブサンプリング・ダウンサンプリング
色の解像度の設定。 JPEGではRGBの情報を、輝度情報YとCr,Cbの2種類の色情報に変換してから処理しています。 そのCr,Cbを間引く設定です。 人間の眼は色の変化に鈍感なので少々落としても大丈夫です。
「4:4:4」=「1x1,1x1,1x1」
ダウンサンプリングなし(Cr,Cb両方ともそのまま)。高画質用の設定です。
「4:2:2」=「2x1,1x1,1x1」
Cr,Cbを横方向に半分にする。
「4:2:0」=「2x2,1x1,1x1」
Cr,Cbを縦横ともに半分にする。この3種類の中ではファイルサイズはこれが一番小さくなります。
これ以外の設定もあります。
DCT法の設定
計算精度の設定。まじめに時間をかけて計算するか、精度を落として早く済ませるかの設定です。

指定できるパラメータはソフトウェアによって違います。ということでいくつか紹介していきましょう。

JPEGで保存できるソフトのいろいろ

IJGライブラリ/ツール

Independent JPEG Group

このライブラリ(プログラムの部品、と思ってもらえばいいでしょう)が、広く使われているので最初に紹介します。多くのソフトウェアがJPEGを扱うためにこのライブラリを利用しているわけです。

ツールとしては cjpeg (別形式の画像をJPEGへ変換)、djpeg (JPEGから別形式へ変換)、jpegtran (回転・切り抜きや最適化などを画質劣化させずに行う)、rdjpgcom (JPEGファイル内のコメントの表示)、wrjpgcom (コメントの埋め込み) の5つが提供されています。

多くの環境(Linux や Windows、Mac OS X など)で使えますが、なにせコマンドラインツールなので、同じ機能を持つ使いやすいツールがほかにあればそちらを使った方がいいでしょう。

参考
Independent JPEG Group's JPEG software の使い方

参考に cjpeg でできる主なことを挙げます。

このライブラリ/プログラムを利用しているソフトウェアでも、上記の機能が使えるとは限りません。

Photoshop for Windowsfor Mac

Adobe - Adobe Photoshop

プロ用画像編集ソフト。印刷用データ作成では定番ソフトですね。

Photoshop CS6 のJPEG保存時のダイアログ

Photoshop CS6 でJPEG保存するとき(「別名で保存(名前を付けて保存)」でJPEG形式を選んだとき)のダイアログです。次のような項目があります。

画質は0〜12の範囲です。プルダウンメニュー(低(高圧縮率)/中/高/最高(低圧縮率)の4項目)やスライドバーで数値をかえられます。

右のプレビューにチェックを入れておくと、元のウィンドウでJPEG化した時の画質を確認できます。

サブサンプリングは画質設定値と連動していて、6までが2x2,1x1,1x1、7以上が1x1,1x1,1x1になっています。 Photoshopで保存すると、解像度やソフトウェア名などのEXIFデータも埋め込むほか、JPEGファイルの中にサムネイルも保存されます。このサムネイルはWebで使うのに全く無用の長物で、その分ファイルサイズが大きくなってしまいます。Webで使う画像なら「Web用に保存」を使いましょう。

Photoshop CS6 Web用に保存

ということでPhotoshopの「Web用に保存」です。JPEG保存のパラメータは右側の上の方の部分です。

画質は0〜100の範囲です。プルダウンメニュー(低画質/中画質/やや高画質/高画質/最高画質の5段階)やスライドバーで数値をかえられます。

プログレッシブをONにすると、最適化はOFFになります。

ぼかしは0から2まで(小数点2けたまで有効)です。この数値の2倍がぼかしの半径(pixel)になるようです。

マットは、元画像に透明部分がある場合に背景色として使われる色です。

「カラープロファイルの埋め込み」をONにすると現在のカラープロファイルを埋め込みます。対応しているブラウザでは、作者の意図した正しい色で表示されることが期待できます。対応していないブラウザでも「正しい色」で表示させたい場合は、その下の「sRGBに変換」をONにすることで対処できます。

「メタデータ」はEXIFなどの情報を含めるかどうかの選択です。「なし」「著作権情報」「著作権情報および問い合わせ先」「カメラ情報以外のすべて」「すべて」からの選択です。

圧縮後の画質やファイルサイズは最大4分割できるウィンドウで見比べることができます。

「Web用に保存」でもやはりサブサンプリングは画質設定値と連動していて、50までが2x2,1x1,1x1、51以上が1x1,1x1,1x1になっています。またJPEGコメント、サムネイルは埋め込まれません。

GIMP for Linuxfor Windowsfor Mac

GIMP - The GNU Image Manipulation Program

写真のレタッチ、画像の作成・加工などのために作られた自由に使えるソフトです。CMYKモードを持たないため印刷業務には向きませんが、Web制作には十分で豊富な機能があります。

GIMPのJPEG保存時のダイアログ

GIMP2.8.0でJPEG保存するときのダイアログです。次のような項目があります。

GIMPはIJGのライブラリを利用していますが、品質は0〜100の範囲で90が初期値です。

プレビューをONにするとファイルサイズも表示されます。プレビュー用に、元画像の上にJPEG画像レイヤーができるので、レイヤーの表示・非表示を切り替えて元画像と見比べることができます。

これ以降は詳細設定ということで最初は隠れています。「詳細設定」をクリックすると表示されます。

「最適化」「プログレッシブ」「スムージング」などは cjpeg のオプションといっしょです。

「EXIFデータの保存」「XMPデータの保存」は、画像がEXIFデータ、XMPデータを持っている場合のみ有効になります。

「サムネイルを保存」は、JPEGファイル内にサムネイルを埋め込みます。

「原画の品位設定を使用」は、元の画像がJPEGの場合のみ有効になります。ONにすると品質値やサブサンプリングなどが元の画像の設定と同じ(と思われる値)になります。

「コメント」は、JPEGファイル内にコメントをUTF-8で埋め込みます。Shift_JISではないことに注意 (JPEGの仕様では内蔵コメントの文字コードは決められていませんが、日本ではこれまでShift_JISを用いることが多く、UTF-8のコメントを表示できないツールもあります)。 このコメントは、メニューの 画像>画像の情報 で出てくるウインドウのコメントタブでも確認・修正できます。

PaintShop Pro for Windows

PaintShop Pro X4 - あなたの好きな風景を特別な1枚に変える写真編集ソフト

写真編集ソフト。写真しかいじれないわけではないです。

PaintShop Pro X4 のJPEG保存時のダイアログ

PaintShop Pro X4 でJPEG保存するときのオプション画面(ファイル名を決める画面でオプションボタンを押すと出る画面)です。次のような項目があります。

エンコーディングの種類は「標準」「プログレッシブ」「ロスレス」の選択です。圧縮レベルは1から99までで、大きいほど画質が低くなります。ここではプレビュー機能はありませんが、「オプティマイザーを実行...」ボタンを押すとプレビュー画面付きのオプション画面が出てきます。

PaintShop Pro X4 のJPEG保存時のダイアログ

「設定」は現在の設定を保存したり、よく使う設定を呼び出したりできます。他は前のオプション画面での項目と同じです。

さて、PSPは選べるサブサンプリングの種類が多いのですが、選んだ種類と実際にできたJPEGファイルとで食い違いがあります。

PSPでの設定できたJPEGファイル
1x1 1x1 1x12x2,1x1,1x1
2x1 1x1 1x12x2,1x1,1x1
1x2 1x1 1x12x2,1x1,1x1
2x2 1x1 1x12x2,1x1,1x1
2x2 2x1 2x12x2,1x1,1x1
4x2 1x1 1x12x2,1x1,1x1
2x4 1x1 1x12x2,1x1,1x1
4x1_1x1_1x12x2,1x1,1x1
1x4 1x1 1x12x2,1x1,1x1
4x1_2x1_2x12x1,1x1,1x1
1x4 1x2 1x21x2,1x1,1x1
4x4 2x2 2x21x1,1x1,1x1

12種類あるはずが、実際には4種類、しかも中身が違ってるというのはどうしたものでしょうか。

また、コーデックで「ロスレス」を選んでも実際にはベースラインJPEGができるようです。

Painter for Windowsfor Mac

Painter 12 - デジタルアートソフトウェアの最高峰

現実の画材のように描けることを目指しているペイントソフトです。

Painter のJPEG保存時のダイアログ

Painter 12 でJPEG保存するときのダイアログです。次のような項目があります。

品質は0〜100%の範囲です。%なんてのがついてますが、これはよくないですね。品質の設定値は何かに対するパーセンテージではなく、独立した数値ということですから。 それはともかく、Photoshopと同様に「標準」などの項目を選ぶか、スライドバーを動かして数値を決めます。

「滑らかさ」(スムーズ)も0〜100%の範囲です。最大値のボケ具合はPhotoshopのWeb用に保存やGIMPの最大と同じくらいです。

HTMLマップオプションはJPEGファイルに影響しません。いくつか選択範囲を作っておくとそれぞれの形式のMAPファイルもいっしょに作ってくれる機能です。

プレビューはこのダイアログに表示されますが、200×200ピクセルと小さめでズーム表示もできないので、PhotoshopやGIMPのように元のウィンドウにプレビューを表示するものより使いづらいかもしれません。

サブサンプリングは2x2,1x,1,1x1固定のようです。

openCanvas for Windows

portalgraphics.net:ペイントソフト openCanvas

高機能フルカラーペイントソフトです。

OpenCanvas のJPEG保存時のダイアログ

openCanvas 5.5 でJPEG保存するときのダイアログです。次のような項目があります。

品質は10から100までの範囲で、プルダウンメニュー(低/標準/高/最高の4項目)やスライドバーで数値をかえられます。プレビュー機能はありません。サブサンプリングは1x1,1x,1,1x1固定のようですね。

CLIP STUDIO PAINT PRO for Windowsfor Mac

イラスト制作ソフト CLIP STUDIO PAINT | CLIP STUDIO.NET

イラスト制作用ツールです。

CLIP STUDIO PAINT PRO のJPEG保存時のダイアログ

CLIP STUDIO PAINT PRO for Mac OS X Ver.1.0.1 でJPEG保存するときのダイアログです。次のような項目があります。

プレビュー機能はありません。 「品質」は1から100まで。0からではありません。「出力イメージ」は各項目を画像に含めるかどうかの選択です。「カラー」はRGBカラー、グレースケール、モノクロ2値の選択で、グレースケール、モノクロ2値を選ぶとグレイスケールJPEGになります。サブサンプリングは2x2,1x1,1x1固定のようです。

Pixia for Windows

Pixiaホームページ

高性能なフルカラーペイントツールです。

Pixia のJPEG保存時のダイアログ

Pixia 5.40p でJPEG保存するときのダイアログです。次のような項目があります。

画質設定だけです。範囲は1から100。プレビュー機能もありません。サブサンプリングは1x1,1x,1,1x1固定のようです。

プレビュー機能などがついたプラグイン S_JPG が公開されています。

Pixia+S_JPG のダイアログ

S_JPG ver 0.81 のダイアログです。

S_JPG は IJGのライブラリをもとに制作されています。ICCプロファイルとコメント以外のオプションは cjpeg のものと同じです。

「コメント」は3ページまで使えます。JPEGでは仕様上いくつでもコメントブロック(1つのブロックは64kb以内)を入れられることになっていますが、そのうち3ブロックまで使えるわけです。

プレビュー画像とファイルサイズは「Preview」ボタンを押さないと更新されません。プレビューボタンの下の「Ratio」はプレビュー表示倍率の切り替えです。

JTrim for Windows

JTrim / WoodyBells

簡単に使えるフォトレタッチソフトです。

JTrim のJPEG保存時のダイアログ

JTrim ver.1.53c でJPEG保存するときのオプションです。ファイル名をを決めるウィンドウで「設定...」ボタンを押さないと出てきません。(あるいは ファイル>保存オプション... であらかじめ設定しておく)

プレビューボタンを押すと別ウィンドウでプレビュー画面が出てきます。プレビューを見ながら画質の数値をいじることはできず、一旦プレビューを閉じる必要があります。 サブサンプリングは 2x2,1x,1,1x1固定のようです。

PictBear for Windows

PictBear

軽くて高機能なペイントソフトです。

PictBear JPEGファイル書き出しダイアログ

PictBear ver.2.04 のファイルエクスポート画面です。普通に「名前を付けて保存...」でもJPEGで保存できますが、その場合この画面は出ず、すぐに保存完了します。この画面を利用するには、ファイル > エクスポート > Jpegファイルの書き出し を選びます。

品質の「%」表記についてはPainterの項目に書いたとおりよろしくありませんね。プレビュー画面はドラッグで表示部分を動かせますが、左右別々で連動しません。サブサンプリングは2x2,1x,1,1x1固定のようです。

SAI for Windows

SYSTEMAX Software Development - ペイントツールSAI

気軽に気持ちよく絵が描けることを目指したペイントツールです。

SAI JPEG保存ダイアログ

SAI ver.1.1.0 のJPEG保存画面です。

SAIはIJGのライブラリではなくオリジナルのエンコーダーを持ってます。輝度と色それぞれに別の品質設定ができるのは珍しいですね。

MyPaint for Linuxfor Windowsfor Mac

MyPaint

多彩なブラシが特徴のペイントツールです。

JPEG保存ではパラメータの指定ができません。JPEGで保存を実行すると、オプションのウィンドウが出てくることなくすぐに保存されます。Pythonで書かれたソースを見ると、保存時のオプションは quality=90 と固定で、他のオプションは指定されてないようです。JPEGデータを見るとサブサンプリングは2x2,1x1,1x1になってます。

MyPaintはユーザーにキャンバスの大きさを意識させない作りになっています(絵を描き広げていけばその分キャンバスサイズが自動的に大きくなる)。一方、キャンバスの大きさを小さくする(トリミングや縮小する)方法がありません。ですので、GIMPに持ち込んで(MyPaintのoraファイルを読み書きするプラグインがあります)トリミングなどしてJPEGエンコード、あるいはMyPaintからPNGにエクスポートして他のツールで調整、JPEGエンコードする方がいいと思います。

FireAlpaca for Windowsfor Mac

FireAlpaca.com / 無料のペイントツール ファイアアルパカ ( FireAlpaca )

気軽に描けるペイントツールです。

JPEG保存ではパラメータの指定ができません。JPEGで保存を実行すると、オプションのウィンドウが出てくることなくすぐに保存されます。保存されたJPEGデータを見るとサブサンプリングは2x2,1x1,1x1、品質値は90のようです。

ペイント for Windows

ペイント - Windows 7 の機能 - Microsoft Windows

Windowsに付属の簡易画像編集ソフト。

JPEG保存ではパラメータの指定ができません。JPEGで保存を実行すると、オプションのウィンドウが出てくることなくすぐに保存されます。保存されたJPEGデータを見るとサブサンプリングは2x2,1x1,1x1、品質値は94のようです。また解像度の設定されてない画像は「解像度96x96」の情報が埋め込まれるようです。ちなみに解像度が設定されていない場合、大多数のソフトは72x72と見なします。

IrfanView for Windows

IrfanView 日本語版のページ

マルチメディアビューアです。画像加工機能も持っています。

IrfanView の保存設定ダイアログ

IrfanView 日本語版 ver.4.25 でJPEG保存するときのダイアログです。次のような項目があります。

プレビュー機能はありません。「カラーサンプリングを無効」ONで1x1,1x1,1x1、OFFで2x1,1x1,1x1の切替えとなります。

プレビュー for Mac

アップル

Mac OS Xに標準添付の画像表示ソフト。トリミングや色調の加工、違うフォーマットでの書き出しなどができます。

プレビューのJPEG保存時のダイアログ

バージョン 5.5.2 (719.25) でのJPEG保存時のダイアログです。

フォーマットにJPEGを選ぶと品質スライドバーが現れます(初期値は80ぐらい)。 以前は品質の数値(0から100まで)も表示できたのですが、今のバージョンではいっさい表示されません。

また、プレビュー機能はありません。サブサンプリングも指定できず、2x2,1x1,1x1で固定のようです。

EXIFの編集や削除はできません。EXIF情報のない画像をJPEGで保存すると、画像の向き・解像度・画像サイズのEXIF情報が追加されます。

GraphicConverter for Mac

GraphicConverter:定番!ピクチャーを多数のフォーマットやプラットフォーム間で変換することができます。 | Bridge 1 Software

フォーマット変換をはじめ、多機能な画像ユーティリティです。

GraphicConverter のJPEGダイアログ

GraphicConverter 8.1 でJPEG保存するときのダイアログです。次のような項目があります。

非常にたくさんの項目があります。コーデックにロスレスがありますが、ブラウザでは表示できないはずなので、WEB用には使えません。が、このバージョンはロスレスを選んでもベースラインのJPEGができるみたいです。

各ソフトウェアの実行環境は、Mac版が MacPro (メモリ4G) + Mac OS X 10.7.4、Windows版が Windows 8 Release Previewを 上記のMac上の VirtualBox 4.1.18 で稼働させています。 JPEGファイルの解析には、ImageMagickのツール identify と JpegAnalyzer Plus を使用しました。

機能一覧

Photo­shop Web用に保存 GIMP PaintShop Pro Painter open­Canvas
プレビュー機能△1×
最適化指定××××
サブサンプリング指定××××
スムージング××
プログレッシブJPEG
グレイスケールJPEG△2×△2△2×
カラープロファイル埋込み×
JPEGコメント埋込み×××××
EXIFデータ△3△4×5×5
その他メタデータ△6×7×5×5
CLIP STUDIO PAINT PRO Pixia Pixia + S_JPG JTrim Pict­Bear
プレビュー機能××○8△9
最適化指定×××××
サブサンプリング指定××××
スムージング××××
プログレッシブJPEG×××
グレイスケールJPEG××△2
カラープロファイル埋込み×××××
JPEGコメント埋込み××○10××
EXIFデータ×5×11×5×5
その他メタデータ×5×5×5×5×5
SAI My­Paint Fire­Alpaca ペイント
プレビュー機能×××
最適化指定××××
サブサンプリング指定×××
スムージング××××
プログレッシブJPEG××××
グレイスケールJPEG××××
カラープロファイル埋込み××××
JPEGコメント埋込み××××11
EXIFデータ×5×5×5×11
その他メタデータ×5×5×5×11
Irfan­View­32 プレビュー Graphic­Converter
プレビュー機能××
最適化指定×××
サブサンプリング指定○12×
スムージング×××
プログレッシブJPEG×
グレイスケールJPEG××
カラープロファイル埋込み×
JPEGコメント埋込み×13×11
EXIFデータ△14×11
その他メタデータ×15×11

まとめ

以上のようにツールによって指定できるパラメータは様々です。でき上がりの結果もまた様々です(同じライブラリを使っているなら設定を同じにすれば同じ仕上がりになるはずです)。いろいろ試しに使ってみて、気にいった物を使えばいいでしょう。

画質をちゃんと確認したいなら、プレビュー機能のあるものを使いましょう。

JPEG保存の手順

WEB上で使うためのJPEG画像のおおざっぱな保存手順です。

  1. 元画像はJPEGとは別にちゃんと保存しておく。
  2. ファイルサイズをどのぐらいにしたいか、画質はどの程度まで荒れてもいいか、おおざっぱに考えておく。「サムネイルなので 5KB以内、画質は気にしない」「できるだけきれいに、150KBぐらいまで」など。
  3. まずは初期設定で画質・ファイルサイズを確認する。プレビュー機能があればプレビュー画面で確認できる。実際に保存したJPEG画像を確認する場合は、一旦ウィンドウを閉じて保存したJPEG画像を改めて開く。(JPEG保存した直後はもとの画質の画像が表示されているので)
  4. 予想よりファイルサイズが大きければ品質設定値を下げる。予想より画質が悪ければ品質設定値を上げる。これを繰り返して両方を満たす品質設定値を決める。ファイルサイズか画質のどちらかをあきらめなければならないときもある。
  5. 設定を決めたらそれで保存する。

同じ設定でも画像によってファイルサイズが違ってきますし、画質の荒れ具合も違います。

おまけ・画質設定とファイルサイズ

さて、品質を上げるとファイルサイズも増え、品質を下げるとファイルサイズも小さくなりますが、どれぐらい変わるのでしょうか。実際に試してみました。

[評価用画像] 評価用画像です。PNGで96kBほどあります。 JPEGエンコードに使ったのはIJGライブラリを使っているものの代表としてGIMPと、独自エンコーダーのPhotoshop CS6の「Web用に保存」です。GIMPでは 最適化:ON、スムージング:0、プログレッシブ:OFF、リスタートマーカー:OFF、サムネイルの保存:OFF、DCT変換方法:整数 の設定で、 サブサンプリング4:4:4、4:2:2水平、4:2:0の3通りを、Web用に保存では プログレッシブ:OFF、ぼかし:0、最適化:ON、カラープロファイルの埋め込み:OFF、メタデータ:なし の設定でファイルサイズを調べました。

品質設定値とファイルサイズのグラフ
グラフはGNUPLOTで作成、Inkscapeで調整しました。

いずれも画質設定が大きくなるほどグラフの傾きが大きくなっています。GIMPではどれも画質設定が90あたりで急激にファイルサイズが増えているのがわかります。特に4:4:4の画質100では102.5kBとPNGでのファイルサイズを超えています。JPEGではいくら画質を上げても必ず損失がありますので、画質を優先するならJPEGを使わないことも検討すべきです。

参考
旧バージョン: JPEGツール

2012.09.25. http://rinrin.saiin.net/~aor/ もうパンツはかない