「JPEG 2000」の版間の差分

削除された内容 追加された内容
編集の要約なし
15行目:
'''JPEG 2000'''(ジェイペグにせん)は、静止画[[データ圧縮|圧縮]]技術及び同技術を用いた[[画像]][[ファイルフォーマット|フォーマット]]のことである。
 
[[国際標準化機構|ISO]] [[国際電気通信連合|ITU]] の共同組織である [[Joint Photographic Experts Group]] において [[JPEG]] の後継として規格化された。"JPEG2000"と詰めて書かずに、'''JPEG 2000'''と書くのが正式な表記である。JPEG は、処理負荷の少ないように作られていたが、JPEG 2000では画質と[[圧縮率]]の向上を優先している。また JPEG で直面した様々な問題を抜本的に解決する試みも行われており、[[国際標準化機構|ISO]]/[[国際電気標準会議|IEC]] 15444-1:2000などにおいて国際規格制定がなされている。
 
== 技術の詳細 ==
JPEG 2000 JPEG と同様、ある画素の状態(明るさや色)は周囲の状態との類似性が高いという画像の性質を利用して圧縮するため、一度画像を空間領域から[[周波数領域]](波の[[状態]])に変換する。この周波数領域へ変換する手法としてJPEGでは[[離散コサイン変換]] (DCT: Discrete Cosine Transform) を用いたが、JPEG 2000では[[離散ウェーブレット変換]] (DWT: Discrete Wavelet Transform) を用いる。ウェーブレットとはさざなみのことである。
 
ウェーブレット変換は、従来の変換で使われていた全体に一様な定常波と異なり、波が部分的に存在する基底を使って変換する。さらに波のセットとしても高周波成分に比較的多くの波を割り当てることによって、ゆったりとした変化だけでなく急激な変化にも柔軟に対応が出来る。そのためJPEGではエッジなどの急峻な変化の周囲で発生していたもやもやしたノイズ(モスキートノイズ)を防ぐことができる。DWTでは、完全に周波数領域に変換するのではなく、空間領域の位置関係もある程度保ちながら変換を行うため、色や明るさが位置によって徐々に変化するようなグラデーションにも強い。また、JPEGでは8×8固定であった周波数領域への変換を行う単位(この単位をJPEGではブロック、JPEG 2000ではタイルと呼ぶ)のサイズをJPEG 2000では大きくできる(例えば256×256)ため、JPEGにおいてブロックの境界で生じていた段差([[ブロックノイズ]])が目立たない。特にブロックサイズ(タイルサイズ)を画面全体とした場合にはブロックノイズが全く生じない。これらの技術により、単に機械的な画質の指標である PSNR (Peak Signal to Noise Ratio) の数値が大きく向上しているだけでなく、その数値以上に見た目の画質(主観評価画質)が改善している。また、DCTは有限の演算精度においては非可逆変換であるのに対し、DWTは[[リフティング構成]]をとることによって、有限精度においても可逆な変換を行うことが可能である。JPEG 2000ではリフティング構成されたDWTを採用しているため、非可逆符号化と可逆符号化を同一の符号化方式で実現可能となっている。
 
周波数領域に変換後のデータは JPEG と同様、[[量子化]]してから[[エントロピー符号化]]を行う。このエントロピー符号化の方式は、 EBCOT (Embedded Block Coding with Optimized Truncation) と呼ばれる。EBCOTでは、DWT変換係数上に定義された矩形領域であるコードブロック単位で符号化が行われる。各コードブロックは[[ビットプレーン]]に分解され、係数ビットモデリング処理によって、高々3つの符号化パス(サブビットプレーン)に分類される。それぞれのサブビットプレーンに属する係数ビットは、2値画像圧縮方式のJBIG2 (Joint Bilevel Image Group) でも利用されているMQ-Coderと呼ばれる[[算術符号]]化器を用いて圧縮される。MQ-coderはマルチコンテクストの算術符号化器であり、注目係数の周囲状態に合わせて効率良くデータ圧縮が可能である。JPEGで用いた[[ハフマン符号]]に比べ、算術符号は圧縮効率が高い一方、その実行には一般に乗算器を必要とするため演算量が増加することが知られている。MQ-coderではこの乗算を加減算で近似することによって、この問題を回避している。EBCOTでは、MQ-coderによって圧縮された各符号化パスを単位としてビット切捨て (Bit truncation) を行う。この操作は、各々の符号化パスを切り捨てた場合に増加する復号画像の歪みを予め計測しておき、与えられた圧縮率で最も高画質になるように切り捨てるパスを[[ラグランジュの未定乗数法]]などの最適化手法を用いることで実現される。
EBCOTでは、MQ-coderによって圧縮された各符号化パスを単位としてビット切捨て(Bit truncation)を行う。この操作は、各々の符号化パスを切り捨てた場合に増加する復号画像の歪みを予め計測しておき、与えられた圧縮率で最も高画質になるように切り捨てるパスを[[ラグランジュの未定乗数法]]などの最適化手法を用いることで実現される。
 
なお、中程度の圧縮率では JPEG においても JPEG 2000 とそれほど遜色ない画質で圧縮できるが、高圧縮のときには画質の差は顕著になる。実際、 JPEG では100分の1未満に圧縮した場合には、有り得ない色や模様になるなど酷い劣化が生じるが、JPEG 2000では確かに画質は劣化しているものの自然である。また、JPEG 2000では可逆圧縮にも対応しているので、低圧縮の場合においては全く画像を劣化させることなく圧縮が可能である。
 
また、 JPEG 2000 は単に圧縮率を高めるだけではなく、 [[関心領域|ROI]] (Region of Interest) という技術で特定の領域(注目領域)の画像を向上させる技術や、[[電子透かし]]などの著作権保護技術、[[端末]]や[[コンピュータネットワーク|ネットワーク]]状況によって適切な[[データ]]量を転送する技術が採用されるなど非常に多機能である。
 
== 動向 ==
発表当初は急激に普及すると思われたものの、近年の[[ハードディスク]]ドライブ、[[光ディスク]]ドライブ、[[フラッシュメモリ]]などの[[ストレージ]]の急激な価格低下、計算コストの割にはサイズが小さくならないなどの要因により普及は進んでいない。[[OS X|Mac OS X]]では[[QuickTime]]の機能にもとづき標準で対応しているが、[[Microsoft Windows|Windows]]においては標準で対応していない。[[Linux]]など[[オープンソース]]の[[オペレーティングシステム]] (OS) においては、一般的に使われる[[GUIツールキット]]である[[GTK+]]および[[Qt]]が標準で対応している
[[OS X|Mac OS X]]では[[QuickTime]]の機能にもとづき標準で対応しているが、[[Microsoft Windows|Windows]]においては標準で対応していない。[[Linux]]など[[オープンソース]]の[[オペレーティングシステム]](OS)においては、一般的に使われる[[GUIツールキット]]である[[GTK+]]および[[Qt]]が標準で対応している。
 
Web用途では、QuickTimeの機能を活用する[[Safari]]を除き、他の[[ウェブブラウザ|Webブラウザ]]は標準で対応していないため、Webページでの使用は避けられている。他のWebブラウザでもプラグインをインストールすればJPEG 2000の取り扱いが可能になる。
37 ⟶ 35行目:
デジタルカメラ・携帯電話用途では、メーカーもJPEG 2000の実装に消極的であり、圧縮負荷が重く画像によって処理時間に長短が生じるため連写速度を誇れない点も採用の障害となった<ref>大槻智洋著 『JPEG XRが導く 階調8ビット超カメラ』 日経エレクトロニクス2008年12月29日号 71-77頁</ref>。チップメーカーがJPEG 2000の符号化に対応したプロセッサを提供しているにもかかわらず、JPEG 2000が使える機器は[[ネットワークカメラ]]などの産業用途に偏っているのが現状である。このように、2014年時点では、当初のJPEGを置き換えるという目標には程遠いものの、[[デジタルシネマ]]、業務用途の画像配信システム、[[監視カメラ]]、[[Portable Document Format|PDF]]ファイル内の画像フォーマットなど、一般消費者の目に見えないところでは既に広く使われている。事実上、[[Tagged Image File Format|TIFF]]及び[[Motion JPEG]]の置き換えという立場に落ち着いたといえる。
 
対抗規格として、マイクロソフトが開発した[[HD Photo]]を元に標準化された[[JPEG XR]]や、グーグルが開発を進めている[[WebP]]がある。[[Adobe Photoshop]]はJPEG 2000およびJPEG XRのプラグインを標準で添付している。
[[Adobe Photoshop]]はJPEG 2000およびJPEG XRのプラグインを標準で添付している。
 
== 対応ソフトウェア ==
49 ⟶ 46行目:
*[[GIMP]]
*[[CorelDRAW]]
*{{仮リンク|Digital Cinema Initiatives|en|Digital Cinema Initiatives}} (DCI) 規格の[[デジタルシネマ]]
*[[GTK+]] <ref>{{Cite web |url=https://git.gnome.org/browse/gdk-pixbuf/commit/gdk-pixbuf/io-jasper.c?id=6ecfe5ad19ea8684b86adaa8940e60d5fd959a5e |title=gdk-pixbuf - An image loading library |accessdate=2014-07-16}}</ref>
*[[Qt]] <ref>{{Cite web |url=http://qt-project.org/doc/qt-5/qtimageformats-index.html |title=Qt Image Formats |{{!}} QtImageFormats 5.3 |{{!}} Documentation |{{!}} Qt Project |accessdate=2014-07-16}}</ref>
*JTrim
*[[Graphicconverter]]
58 ⟶ 55行目:
*[[IrfanView]](プラグインが必要)
*[[Susie]](プラグインが必要)
*[[XnView]](プレビュー、変換ともに可能)
*[[Blender]]
 
== Part ==
'''JPEG 2000''' はいくつかのPartに分かれる。それは以下の通り。
*Part1Part 1 (ISO-/IEC 15444-1/ITU-T Rec.800) … 基本的な '''JPEG 2000''' の機能で従来JPEGに相当する部分
*Part2Part 2 (ISO-/IEC 15444-2/ITU-T Rec.801) … Part1Part 1の拡張
*Part3Part 3 (ISO-/IEC 15444-3/ITU-T Rec.802) … [[動画]]、 Motion JPEG 2000
*Part4Part 4 (ISO-/IEC 15444-4/ITU-T Rec.803) … 妥当性
*Part5Part 5 (ISO-/IEC 15444-5/ITU-T Rec.804) … 検証[[ソフトウェア]]
*Part6Part 6 (ISO-/IEC 15444-6) … JPM、複合画像
*Part7Part 7 … (没規格)[[互換性]]
*Part8Part 8 (ISO-/IEC 15444-8/ITU-T Rec.807) … JPSEC、[[情報セキュリティ|セキュリティ]]、著作権保護
*Part9Part 9 (ISO-/IEC 15444-9/ITU-T Rec.808) … JPIP '''JPEG 2000''' の転送[[プロトコル]]
*Part10Part 10 (ISO-/IEC 15444-10/ITU-T Rec.809) … 3[[次元]]画像、([[浮動小数点]]画像(流体シミュレーション画像)は策定対象外となった)
*Part11Part 11 (ISO-/IEC 15444-11/ITU-T Rec.810) … JPWL、[[携帯電話]]・[[無線機器]]
*Part12Part 12 (ISO-/IEC 15444-12) … [[MP4#ISOベースメディアファイルフォーマット|ISOベースメディアファイルフォーマット]]: [[MPEG-4]] (ISO/IEC 14496) Part 12 と同一の内容で、 Part 3 の[[ファイルフォーマット]]に派生
*Part13Part 13 (ISO-/IEC 15444-13) … 符号化標準(Part1(Part 1の符号器の標準)
*Part14Part 14 (ISO-/IEC 15444-14) … JPXML、XMLを用いた[[ファイルフォーマット]]の[[構造化]]表現と参照方式
 
== 出典 ==
84 ⟶ 81行目:
* [http://jpeg.org/jpeg2000/index.html Official JPEG 2000 website]
* [http://www.jpeg.org/ The JPEG committee home page]
* {{PDFlink|[http://www.intopix.com/pdf/JPEG%202000%20Handbook.pdf Everything you always wanted to know about JPEG 2000]}} - published by intoPIX in 2008] ([[Portable Document Format|PDF]]){{en icon}}
* [http://www.ece.uvic.ca/~mdadams/jasper/ The Jasper Project Homepage] C言語によるJPEG 2000の実装(Part- 5の一部)
* [http://jj2000.epfl.ch/ JJ2000 Public Homepage] JavaによるJPEG 2000の実装(Part- 5の一部)
* [http://www.openjpeg.org/ OpenJPEG Homepage] オープンソース(BSDライセンス)のJPEG 2000の実装
* [http://www.kakadusoftware.com/ Kakadu JPEG 2000 SDK Home Page] C++言語によるJPEG 2000の実装