ジェーペグ‐にせん【JPEG 2000】
JPEG2000
JPEG2000とは、画像圧縮方式のJPEGを発展させた規格のことである。
JPEG2000は、JPEGよりも高い圧縮率をもち、JPEGの50%程度のデータ削減を行うことが可能となっている。画質も高く、同じサイズの画像ファイルであれば圧倒的に鮮明な画像を得ることができる。また、従来のJPEGが採用していた離散コサイン変換(DCT)の圧縮アルゴリズムから、新たにウェーブレット変換と呼ばれる圧縮アルゴリズムを採用したことによって、JPEGの難点のひとつであったブロックノイズを抑えることに成功している。ただし、JPEG2000はそれまでのJPEGよりも大きな処理負荷を伴い、また現行のJPEGとの上位互換性が保たれていない。
参照リンク
JPEG 2000 - (英文)
JPEG 2000
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/18 05:31 UTC 版)
オリジナルのJPEGフォーマットとJPEG 2000との比較 | |
拡張子 | .jp2, .jpg2,.jpc,.jph,.j2c, .j2k, .jpf, .jpx, .jpm, .mj2,.jph |
---|---|
MIMEタイプ | image/jp2, image/jp2, image/jpx, video/mj2, image/jpm,image/jph |
開発者 | Joint Photographic Experts Group |
種別 | 画像ファイルフォーマット |
国際標準 | ISO/IEC 15444 |
オープン フォーマット | はい。 |
JPEG 2000(ジェイペグにせん)は、静止画像圧縮技術及び同技術を用いた画像フォーマットの呼称である。ISOとITUの共同組織であるJoint Photographic Experts Groupによって、国際標準化が進められており、ISO/IECの規格書15444およびITU-Tの勧告書Rec.T.800シリーズとして出版されている。
JPEG2000と詰めて書かずに、JPEG 2000と書くのが正式な表記である。JPEG 2000では、JPEGを上回る圧縮効率とスケーラビリティなどの機能を付加することを目的に規格策定作業が進められた[1][2]。なお、国際標準の規格書/勧告書で規定されているのは、JPEG 2000のコードストリームをデコードするための手順である。したがって、エンコーダの仕様については何も定められていない。どのように実装されたとしても、エンコーダに要求されるのは、標準によって規定された手順でデコードできるコードストリームを出力することである。
技術の概要
JPEG 2000では、JPEGと同様、入力画像に対して周波数変換を施し、その変換係数に対して量子化、エントロピー符号化を適用することで画像の持つデータ量を圧縮する。JPEGとの要素技術における主な相違点は、以下の通り。
- 周波数変換に離散コサイン変換ではなく、離散ウェーブレット変換 (Discrete Wavelet Transform:DWT)を用いること
- エントロピー符号にハフマン符号ではなく、算術符号を用いること
- 可逆符号化(ロスレス)と非可逆(ロッシー)符号化を同一の方式にて実現可能であること
JPEG 2000は、一つの圧縮画像を様々な解像度やビットレート等で利用できるというスケーラビリティ機能を有しているが、これは特に、量子化された変換係数から圧縮されたビットストリームを生成する役割を担うEBCOT(Embedded Block Coding with Optimized Truncation[3])アルゴリズムの持つ、高い符号化効率、圧縮後のレート制御(Post Compression Rate Distortion Optimization:PCRD-opt)などの特長に依るところが大きい。
Part
2020年6月現在、JPEG 2000はPart1からPart16までが標準化されている[4]。
ITU-T側で出版されている勧告書のうち、無料で入手可能なものには参照を付した。
Part | 内容 | ISO/IEC IS | ITU- T Rec. |
---|---|---|---|
1 | 基本方式, 基本ファイルフォーマット .jp2 | 15444-1 | T.800 |
2 | 拡張 | 15444-2 | T.801 |
3 | Motion JPEG 2000, 動画像向けファイルフォーマット .mj2 | 15444-3 | T.802 |
4 | 適合性試験 | 15444-4 | T.803[5] |
5 | 参照ソフトウェア | 15444-5 | T.804[6] |
6 | 複合画像(文字と写真等が混在した画像)向けファイルフォーマット .jpm | 15444-6 | T.805[7] |
7 | |||
8 | Secure JPEG 2000, JPEG 2000画像のためのセキュリティサービス (JPSEC) | 15444-8 | T.807[8] |
9 | 双方向通信のためのツール, API, JPIPプロトコル | 15444-9 | T.808[9] |
10 | 3次元画像データのための拡張 | 15444-10 | T.809[10] |
11 | ワイヤレス通信のための誤り検出・訂正符号化 (JPWL) | 15444-11 | T.810[11] |
12 | |||
13 | エントリレベルエンコーダ | 15444-13 | T.812[12] |
14 | XMLによるファイルフォーマットあるいはコードストリームの記述法 (JPXML) | 15444-14 | T.813[13] |
15 | 高スループットブロック符号化, High Throughput JPEG 2000 (HTJ2K), .jph | 15444-15 | T.814 |
16 | JPEG 2000画像のHEIF(ISO/IEC 23008-12)へのカプセル化 | 15444-16 | T.815 |
コードストリーム構造
JPEG 2000のコードストリーム構造の例を以下の図に示す。図内の用語のうち、タイルパート・レイヤ・DWTレベル・コンポーネント・プリシンクト・パケットヘッダ・サブバンドについては後述する。
基本的には、SOC(Start of Codestream)マーカから始まるバイナリデータであり、その終端はEOC(End of Codestream)である。
SOCマーカの直後からメインヘッダが格納されており、各種符号化パラメータに関する情報がここに記録されている。メインヘッダの直後より、タイルパートが格納される。各タイルパートはタイルパートヘッダから始まる。タイルパートヘッダの直後より、そのタイルパートに含まれる圧縮データが格納される。
この圧縮データは、プログレッション順序に基づいて格納される。プログレッション順序とは、レイヤ(ある画質あるいはビットレートに対応する圧縮データの集合)、DWTレベル(DWTの分解レベルに対応する圧縮データの集合)、コンポーネント(色コンポーネント成分に対応する圧縮データの集合)、プリシンクト(DWT係数内の部分空間に対応する圧縮データの集合)の4つの要素のうち、優先的にデコードする要素の階層構造を意味する。コードストリームが取り得るプログレッション順序については後述する。
符号化手順
下図は、JPEG 2000 Part 1の符号化手順のブロック図である。なお、本符号化手順は参考例であり、規格化されたものではないことに注意されたい。以下では、Part 1エンコーダにおける各ブロックの処理内容について述べる。以後、ここでは非可逆符号化をロッシーモード、可逆符号化をロスレスモードと呼ぶ。
入力画像
規格上サポートされる入力画像のサイズ・ビット深度・色コンポーネント数などを以下にまとめる。各値は、実際にはエンコーダ・デコーダの実装上の制約を受ける。
- サイズ:
順方向2次元DWTの例 各々のDWTレベルにおいて、下図に示すようにプリシンクトと呼ばれる矩形領域が定義される。
プリシンクトのサイズは2のべき乗の整数でなければならず、最大で
コードブロック分割の例 コードブロックのサイズは、水平・垂直方向それぞれのサイズが4以上1024以下、面積が4096以下の条件を満たす2のべき乗の整数から自由に選ぶことができる。一般に64x64や、32x32のサイズが用いられることが多い。メインヘッダに記録されるコードブロックのサイズは一つであるが、実際のコードブロックサイズは画像サイズやDWTレベル数、プリシンクトサイズなどの様々なパラメータによって決定され、かならずしも全てのコードブロックで同一とはならない。コードブロック内の量子化されたDWT係数は、符号絶対値表現(符号付数値表現)で表される2進数として表現され、以後の処理はビットプレーンごとに進められる。
上図は、EBCOTにおけるビットプレーンの概念を示している。なお、図中の
EBCOTにおける係数ビットのスキャンパターン 最上位ビットプレーンをスキャンする際には、上位のビットプレーンに関する情報が得られないため、必ずCleanupパスとして処理される。最上位のすぐ次のビットプレーンからは、SP→MR→CUの順に属する符号化パスが決定される。
符号化パスの決定には、現在の係数ビットと、その周辺8近傍の係数ビットの状態が用いられる。係数ビットは"1"か"0"の値をとるが、それぞれ"有意"および"非有意"状態とみなされる。
SPパスは自身が非有意かつ周辺にすでに有意となった係数ビット存在する係数ビットが属する。このとき、現在の係数ビットは非有意から有意の状態へと更新される。
MRパスは、上位ビットプレーンですでに有意となっている係数ビットが属する。
CUパスは、SPパスにもMRパスにも属さない係数ビットが属する。
なお、それぞれの符号化パスは、さらにその周辺係数ビットの有意状態の情報に、コンテクスト(CX)と呼ばれるラベルが付けられる。規格で規定されたコンテクストの数は19である。
MQ符号化
概要
SP、MR、CUの各符号化パスに属する係数ビットは、そのコンテクストCXの値と共に2値算術符号化器であるMQ-coderへと送られ、算術符号化される。MQ-coderは、各コンテクストごとに独立した確率遷移テーブルを持つ。この確率遷移テーブルのエントリ数は46である。
MQ-coderは、係数ビットの正負を表す符号ビットと、値ビットから計算されるディシジョンビットDと、CXを入力として、出力ビットを計算する。符号ビットが入力されるのは、初めて有意となる係数ビットが符号化されるときに限られる。MQ-coder内には5つのレジスタが存在し、そのうちの出力ビットを蓄えているレジスタ上でバイト境界に達すると、バイトストリームとして1バイトが新たに出力される。この際、デコーダにとって重要なマーカとなるFF90h〜の値がバイトストリーム内に出現するのを回避するため、直前のバイト出力がFFhであった場合には、レジスタ内における次のバイト境界の先頭1ビットをスキップし、データを書き込まないようにする処理が追加される。これはビットスタッフィングと呼ばれる。
終端処理
コードブロック内の全ての係数ビットを符号化した後でも、通常、MQ-coder内のレジスタにはバイト境界に満たない符号語が残っているため、終端処理によって全ての係数ビットをデコードするのに必要な長さの符号語を出力する。
符号化モード
MQ-coderには、符号化モードとして、以下の6つのモードがオプションとして用意されている。
- Selective arithmetic coding bypass:
- 最上位から数えて5つ目のビットプレーン以降のSPおよびMRパスに属する係数ビットをRAWデータのまま符号語とするモード。CUパスは常に算術符号化される。
- Reset context probabilities on coding pass boundaries
- 各符号化パスの符号化開始時に各コンテクストごとの確率遷移テーブルを初期状態にリセットするモード。
- Termination on each coding pass
- 各符号化パスの符号化終了時に終端処理を呼び出すモード。
- Vertically causal context
- コンテクストの値を求める際のウインドウが、ひとつ下のstripeにまたがれないように制約を与えるモード。
- Predictable termination
- 終端処理を規定された方法で行うモード。
- Segmentation symbol
- エラー耐性機能のために、CUパス符号化終了時に特別なシンボルを挿入し符号語に加えるモード。
レート制御(オプション)
レート歪み最適化(Rate-Distortion Optimization)
EBCOTでは、MQ符号化後のバイトストリームに対して、符号化パスを最小単位として符号切り捨てを行うことで圧縮後のレート歪最適化(PCRD-opt)を行うことが可能である。レート制御については、エンコーダにおける処理であるため規定された技術はないが、一般的に以下の処理によって実現されることが多い。
コードブロック内の切り捨て点として、符号化パスを考える。までのデータ量を、そのパスでバイトストリームを切り捨てることで増加する歪みの推定量をとおく。所望のビットレートをとして、の条件のもと、を最小化するを各コードブロックごとに決定する。この一連の手順はラグランジュの未定乗数法を用いることで実現できる。
レイヤ(Layer)生成
また、上述のレート制御処理は、コードストリームのプログレッション順序の構成要素の一つであるレイヤを形成するためにも用いられる。レイヤとは、SNR(Signal-to-Noise Ratio, SNR)スケーラビリティを実現するための概念である。
レイヤを用いたSNRスケーラビリティとは。最上位レイヤから最下位レイヤにデコード処理が進むにしたがって、段階的にデコード画像の画質が向上する(SNRが向上する)機能を意味する。レート制御処理によって、各コードブロックの符号化パスがどの程度画質に寄与するかが予測できるため、この情報を用いてレイヤを生成する。具体的には、各コードブロックにおいて、どのレイヤに符号化パスがいくつ属するかをレート制御によって得られる情報をもとに決定する。このレイヤごとのパス数は、パケットヘッダ生成アルゴリズムによってパケットヘッダに記録される。
パケットヘッダ生成
MQ-coderからの出力バイトストリームは、プリシンクトを単位とした「パケット」として整列される。各パケットには、パケットヘッダとして以下の情報が付加される。
- emptyパケットフラグ(1bit)
- レイヤ番号におけるコードブロックの包含情報
- ゼロビットプレーン数
- 符号化パス数
- バイトストリームの長さ
各パケットヘッダの先頭1bitは、そのパケットのデータが空である場合には0、それ以外には1となるフラグである。
2. 3.については、タグツリーと呼ばれるデータ構造によって符号化される。
生成されたパケットヘッダは、各パケットの先頭あるいは、メインヘッダ内、あるいはタイルパートヘッダ内のいずれか一つの場所に格納される。
パケット生成
各パケットは、指定されたプログレッション順序に応じて並べ替えられる。指定可能なプログレッション順序は、
- レイヤ、DWTレベル、色コンポーネント、プリシンクト(LRCP)
- DWTレベル、レイヤ、色コンポーネント、プリシンクト(RLCP)
- DWTレベル、プリシンクト、色コンポーネント、レイヤ(RPCL)
- プリシンクト、色コンポーネント、DWTレベル、レイヤ(PCRL)
- 色コンポーネント、プリシンクト、DWTレベル、レイヤ(CPRL)
の5つである。
動向
デジタルシネマ[16]、公文書や芸術作品のアーカイブ[17]、医療用画像の圧縮[18]、業務用途の画像配信システム、監視カメラ、PDFファイル内の画像フォーマットなどでは既に広く使われている。高い圧縮効率や豊富な機能を備えていることから、発表当初はコンシューマ向け分野でも急激に普及することが期待されたが、JPEGと比較すると計算負荷が高くバッテリー消費が激しいことや、またスループットを稼げず連写速度の向上が難しいことから、デジタルカメラ用途での採用は進んでいない。
Part 15(High Throughput JPEG 2000)では、EBCOTの弱点であった計算負荷の高さとそれに起因する低スループットおよびバッテリー消費量の問題を解決するべく、新しいブロック符号化アルゴリズムが標準化された。若干の圧縮効率の低下と引き換えに、10倍以上のスループット向上が達成されている。また、決して並列化向きのアルゴリズムではなかったEBCOTとは異なり、GPUなどによる並列化を強く意識したアルゴリズムとなっており、並列化によるスループットのさらなる向上が期待できる。
対応ソフトウェア
- OS
- macOS
- iOS
- アドビ
- Adobe Photoshop/Adobe Photoshop Elements
- Adobe Acrobat/Adobe Reader(6.0以降)
- FFmpeg
- GIMP
- CorelDRAW
- Digital Cinema Initiatives (DCI) 規格のデジタルシネマ
- GTK [19]
- Qt [20]
- Honeyview
- JTrim
- MATLAB
- Mathematica
- Graphicconverter
- ImageMagick
- IrfanView(プラグインが必要)
- Susie(プラグインが必要)
- XnView(プレビュー、変換ともに可能)
- Blender
- JuGeMu JPEG 2000 viewer(JPEG2000 Part1対応ビューア)
出典
- ^ Taubman, David S. (2002). JPEG2000 : image compression fundamentals, standards, and practice. Marcellin, Michael W.. Boston: Kluwer Academic Publishers. ISBN 079237519X. OCLC 47737760
- ^ The JPEG 2000 suite. Schelkens, Peter., Skodras, Athanassios., Ebrahimi, Touradj.. Chichester, West Sussex, U.K.: J. Wiley. (2009). ISBN 9780470744635. OCLC 441886987
- ^ Taubman, D. (2000-7). “High performance scalable image compression with EBCOT”. IEEE Transactions on Image Processing 9 (7): 1158–1170. doi:10.1109/83.847830 .
- ^ “JPEG - JPEG 2000”. jpeg.org. 2019年8月12日閲覧。
- ^ “T.803 : Information technology - JPEG 2000 image coding system: Conformance testing”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.804 : Information technology - JPEG 2000 image coding system: Reference software”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.805 : Information technology - JPEG 2000 image coding system: Compound image file format”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.807 : Information technology - JPEG 2000 image coding system: Secure JPEG 2000”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.808 : Information technology - JPEG 2000 image coding system: Interactivity tools, APIs and protocols”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.809 : Information technology - JPEG 2000 image coding system: Extensions for three-dimensional data”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.810 : Information technology - JPEG 2000 image coding system: Wireless”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.812 : Information technology - JPEG 2000 image coding system: An entry level JPEG 2000 encoder”. www.itu.int. 2019年9月6日閲覧。
- ^ “T.813 : Information technology - JPEG 2000 image coding system: XML structural representation and reference”. www.itu.int. 2019年9月6日閲覧。
- ^ Kasner, J.H.; Marcellin, M.W.; Hunt, B.R. (Dec./1999). “Universal trellis coded quantization”. IEEE Transactions on Image Processing 8 (12): 1677–1687. doi:10.1109/83.806615 .
- ^ Christopoulos, C.; Askelof, J.; Larsson, M. (2000-9). “Efficient methods for encoding regions of interest in the upcoming JPEG2000 still image coding standard”. IEEE Signal Processing Letters 7 (9): 247–249. doi:10.1109/97.863146. ISSN 1070-9908 .
- ^ “Digital Cinema Initiatives (DCI) - DIGITAL CINEMA SYSTEM SPECIFICATION, VERSION 1.2”. www.dcimovies.com. 2019年8月12日閲覧。
- ^ “国立公文書館 デジタルアーカイブ”. www.digital.archives.go.jp. 2019年8月12日時点のオリジナルよりアーカイブ。2019年8月12日閲覧。
- ^ “8.2.4 JPEG 2000 Image Compression”. dicom.nema.org. 2019年8月12日閲覧。
- ^ “gdk-pixbuf - An image loading library”. 2014年7月16日閲覧。
- ^ “Qt Image Formats | QtImageFormats 5.3 | Documentation | Qt Project”. 2014年7月16日閲覧。
外部リンク
- JPEG 2000
- The JPEG committee home page
- Everything you always wanted to know about JPEG 2000 (PDF) [リンク切れ] - published by intoPIX in 2008
- The Jasper Project Homepage C言語によるJPEG 2000の実装(Part 5の一部)
- JJ2000 Public Homepage [リンク切れ] JavaによるJPEG 2000の実装(Part 5の一部)
- OpenJPEG Homepage オープンソース(BSDライセンス)のJPEG 2000の実装(Part 5の一部)
- Kakadu JPEG 2000 SDK Home Page C++言語によるJPEG 2000の実装
- JuGeMu JPEG 2000 viewer(JPEG2000 Part1対応ビューア)
- Selective arithmetic coding bypass:
JPEG 2000
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/22 08:37 UTC 版)
「ウェーブレット」の記事における「JPEG 2000」の解説
ウェーブレットはデータ圧縮の分野でも用いられる。デジタル信号処理における他の時間-周波数変換と同様、ウェーブレット変換は(たとえば画像などの)圧縮されていないデータに対し適用でき、その後圧縮処理がなされることで、結果として効果的なデータ圧縮を実現できる。JPEG 2000はウェーブレットを利用した画像形式の一つである。ウェーブレットを利用したデータ圧縮についてはウェーブレット圧縮を参照されたい。 JPEG 2000で使われているウェーブレットは双直交ウェーブレットであり、ウェーブレット系列の座標は異なる2つの基底関数集合を用いて計算されるため、注意を要する。
※この「JPEG 2000」の解説は、「ウェーブレット」の解説の一部です。
「JPEG 2000」を含む「ウェーブレット」の記事については、「ウェーブレット」の概要を参照ください。
「JPEG 2000」の例文・使い方・用例・文例
- 再生するためのビデオフォーマットはMotion-JPEGでないといけない。
- 彼の番組は2000年に始まった
- 2000年まで彼はずっとこの会社の社長だった
- CopyMax 2000は使い勝手がいいですが、使いすぎないでください。私たちが紙を節約しようとしていることを思い出してください。
- 2000万トンのTNT
- 彼は20ドルをさらに賭けて2000ドルに増やした。
- リボソームの構造は2000年に発表された。
- 連結会計制度は、2000年3月期より導入されている。
- スマートフォン市場の急拡大に対応するため、A社は来期に2000人の新卒採用を予定している。
- あなたのお兄さん(弟)と私は2000年から知り合いです。
- 2000円が必要です。
- この写真は2000年に撮られたものです。
- この店は2000年に開店した。
- その会社の株価は2000年の105円から2010年末には60円まで下落しました
- 予約価格は20000円前後です。
- もしスイートルームに興味があるようでしたら82000円の特別料金を提示いたします。
- それは約2000年前に建てられました。
- 私はこの本に2000円払います。
- そのグループは2000年の元旦に結成されました。
- それは2000年1月に開業しました。
固有名詞の分類
- JPEG2000のページへのリンク