JPEG
![]() | |
![]() 花の写真をJPEGで圧縮したもの。左から右にいくに従って損失率が大きくなるようにしてある。 | |
拡張子 | .jpeg, .jpg, .jpe .jfif, .jfi, .jif (containers) |
---|---|
MIMEタイプ | image/jpeg |
タイプコード | JPEG |
UTI | public.jpeg |
マジック ナンバー | \xff\xd8 |
開発者 | Joint Photographic Experts Group |
包含物 | 静止画像、テキスト |
JPEG(ジェイペグ、Joint Photographic Experts Group)は、コンピュータなどで扱われる静止画像のデジタルデータを圧縮する方式のひとつ。またはそれをつくった組織 (ISO/IEC JTC 1/SC 29/WG 1, Joint Photographic Experts Group) の略称であり、アクロニムである。JPEG方式による画像ファイルにつけられる拡張子はjpgが多く使われるほか、jpeg等が使われる場合もある。
一般的に非可逆圧縮の画像フォーマットとして知られている。可逆圧縮形式もサポートしているが、可逆圧縮は特許などの関係でほとんど利用されていない。1992年9月18日に最初のリリースが行われた比較的古いフォーマットである。JPEGの欠点を克服すべく数々の後継規格が提案されてきたが、企業間の思惑なども絡み[要出典]、いずれも主流になるには至らず、JPEGが現在も静止画像規格の主流である。
標準では、特定の種類の画像の正式なフォーマットがなく、JFIF形式(マジックナンバー上は、6バイト目から始まる形式部分にJFIFと記されているもの)が事実上の標準ファイルフォーマットとなっている。動画を記録可能にしたものにMotion JPEGがある。立体視 (3D) 用には、ステレオJPEG (JPS) フォーマット[1]がある。
デジタルカメラの記録方式としてもよく利用されているが、デジタルカメラでは様々なオプション機能を使い、JFIFを拡張したExchangeable image file format (EXIF) などのフォーマットとしてまとめられている。
技術の詳細[編集]
ここでは、一般に用いられる非可逆圧縮の方式について説明する。なお、JPEGの可逆圧縮には非可逆圧縮とは全く別の技術が用いられている。JPEG 2000ではどちらにも同じ技術を用いる。
符号化方式[編集]
JPEGでは、画像を固定サイズ(8×8画素)のブロックに分割し、そのブロック単位で、離散コサイン変換 (DCT: discrete cosine transform) を用いて、空間領域から周波数領域へ変換する。この変換自体では情報量は削減されない。変換されたデータは、量子化ビット数の低減によって情報量を落としてから、ハフマン符号によるエントロピー符号化がなされ圧縮が行われる。エントロピー符号化とは、データの生起確率の高低に応じて異なる長さの符号を割り当てることで圧縮を行うものである。
DCTによる周波数領域への変換では、変換そのものでは情報量は削減されないが、低周波数成分にエネルギーが集まることを利用して、量子化ビット数の低減による情報量削減と、エントロピー符号化での圧縮率向上を図っている。普通の画像をそのまま量子化ビット数を低減してしまうと大きな画質劣化が生じるが、重要な成分が局所的に集められた後では元の画像の性質を残したまま量子化が可能である。また、低周波数成分に集中するという形で、データに偏りが生じると、エントロピー符号化の圧縮率も向上する。なお、JPEGでは、量子化マトリックスと呼ばれる係数表を用いて、低周波数成分に比べて高周波数成分でより粗い量子化を行うのが一般的である。
エントロピー符号化ではハフマン符号を用いる。ハフマン符号は処理が単純であるため演算量が少なく、さらにその符号セットが想定する、理想的なデータが入力された場合には極めて高い圧縮率を実現する。符号セットにあわないデータが入力された場合、逆に圧縮率は下がってしまう。この問題を解消するため後継のJPEG 2000では算術符号が採用された。
なお、周波数領域への変換前の画像フォーマットの色成分の数は1~4の間で選択でき、各色成分が何であるかを決める表色系も自由に選択することができる。そのため色成分が1つのグレースケール、色成分が3つのRGB及びYCbCr、色成分が4つのYMCKなどのデータのどれも用いることができる。しかし、表色系の規定がない上にどの表色系であるかを示す情報もないことは互換性に大きな問題となる。そのためJFIF形式では、YCbCr表色系を用いること、さらに成分の順序はY、Cb、Crの順であることを規定している。各色成分の空間的な間引きをあらわすサンプリングファクタについては、各々の色成分について水平方向、垂直方向独立に定めることができ、一般的な形式の4:4:4、4:2:2、4:2:0、4:1:1のいずれもが選択可能である。
ノイズ[編集]
JPEGではブロック単位で変換を行うため、圧縮率を上げるとブロックの境界にブロックノイズと呼ばれるノイズが生じる。
また、周波数領域への変換においては、低周波成分に画像のエネルギーが集中するため、高周波成分のエネルギーは小さくなる。このため量子化を行うと高周波成分はゼロに落ち、無くなってしまう。すると画像の急峻な変化を十分に表現できないため、エッジ周辺では、ある一点に集まる蚊にたとえモスキートノイズと呼ばれるノイズが生じる。
色差を間引く為、特に赤には弱く、赤の部分でノイズが発生しやすい。
規格書[編集]
規格は、合同のグループで作られたため国際標準化機構 (ISO)、国際電気標準会議 (IEC) と国際電気通信連合 (ITU) の双方から出されている。それにならい、日本産業規格 (JIS) でも規格化されている。
インターネットでの普及とその背景[編集]
JPEGは、Webの普及黎明期において、Webブラウザ標準の画像フォーマットとして、GIFと双璧を成していた。
JPEGの符号化方式の特性から、同じ色が広い範囲に広がることの多い絵画であっても、画像そのもののサイズに比例してファイルサイズが大きくなる。このため、ダイヤルアップ接続等、一般ユーザーの末端接続がナローバンドだった時代には、データ転送量を少なくするという観点から、絵画はGIF、デジタルスチル写真にはJPEG、という使い分けが存在していた。
1999年、GIFの特許問題によって起こったGIF排斥運動(当該項目を参照)で、GIFから、JPEGや、新たにフリーのフォーマットとして開発されたPNGに移行する流れになった。PNGは当時のブラウザではプラグインを導入しないと表示できないなどの問題を抱えているケースが多かったため、GIF画像をJPEGによって置き換えられるケースが多かった。
現在は、GIFのLZWの特許が失効し、フリーな画像フォーマットとして再び使えるようになり、PNGもほぼ全てのブラウザでサポートされるようになった。この2つの画像フォーマットは現在もインターネット上でよく使われている。
実装[編集]
Independent JPEG Group によるフリーのライブラリ libjpeg は jpeg コーデックの実装として大変重要である。これは1991年に初版がリリースされ、jpegが標準技術として採用され成功を収める鍵となった[3] 。 libjpeg やその派生版は数えきれないほどのソフトウェアから利用されている。
2017年3月には Google が Guetzli というオープンソースの jpeg エンコーダを発表した。 これは同じく Google が発表した画質評価アルゴリズム Butteraugli に特化したエンコーダであり、既存のエンコーダと比較してエンコードに莫大な時間を費やす代わりに、Butteraugli の評価値と圧縮率においてバランスの取れた画像を出力する。Google は既存の方式と比較して Guetzli は高品質なjpeg画像のファイルサイズを35%削減できると主張している[4]。
注釈・出典[編集]
- ^ http://www.nvidia.co.jp/object/3d-vision-3d-pictures-jp-old.html
- ^ JIS X 4301:1995「連続階調静止画像のディジタル圧縮及び符号処理」(日本産業標準調査会、経済産業省)
- ^ Jpeg.org
- ^ Announcing Guetzli: A New Open Source JPEG Encoder - Google Research Blog
関連項目[編集]
- 派生規格
- ポストJPEG規格
- データ圧縮
- JBIG
- 安田浩
- プログレッシブJPEG
- Portable Network Graphics (PNG)
- Graphics Interchange Format (GIF)
- libjpeg
外部リンク[編集]
- JPEG公式サイト (英語)
- W3C Overview of JPEG (英語)(JPEGおよびJFIFの仕様書あり)