読者です 読者をやめる 読者になる 読者になる

simpleA記

馬にふつまに 負ほせ持て

phoさんから、JPEG2000について届いた


さぁ、どんどん肉付けしてくよー!


2章前半>2章後半>2章結論>3章後半>3章結論>4章後半>4章結論>5章前半>5章後半>5章結論>おまけ2>おまけ1>おまけ4>scribdへアップ>みんなで打ち上げパーティー@門前仲町(勝手に予定)


JPEG 2000に関する技術的なことね。細かいことは気にせず、ふーん、そうなんだー、って感じで読んでみようね。

id:phoさんからの訳




『Alternative File Formats for Storing Master Images of Digitisation Projects』http://www.scribd.com/doc/2388286/Alternative20File20Formats20for20Storing20Masters202201

2.2 詳細 15
2.2.1 ストラクチャー 15
2.2.2 エンコードとデコード 15


2 JPEG 2000


2.1 JPEG 2000とは何か?


2.1.1 概要


JPEG 2000は、ISO,IEC,およびITU-T標準化組織の共同の取り組みとして、JPEG(Joint Photographic Experts Group)により開発された標準規格(ISO/IEC 15444-1/ITU-T REC. T.800)である。これらのグループは、世界各地の様々な営利組織および学術団体の代表者からなる。


JPEGグループの目的は、以下の基本原則に則った新たな画像標準規格を開発することであった。

  • フォーマットの完全な開放性
  • 現行のJPEG圧縮と比較して改善された不可逆圧縮アルゴリズム
  • 可逆圧縮のオプション
  • 画像ファイルにメタデータをバンドルする包括的なオプション
  • 1ファイルにいくつかの解像度を記憶すること


これらの基本原則は、JPEG 2000標準規格で実現された。


2.1.2 JPEG 2000の各パート


2007年に、JPEG 2000は12の標準規格に分けられた。これらは全て、おおよそ第1標準規格:パート1から派生したものか、または補足するものである。これは、静止画(パート1.jp2およびパート2 .jpx)、ドキュメント(パート6 .jpm)、動画(パート3.mj2)に関する。それらに共通しているのは、ウェーブレット圧縮技術が採用されている、ということである。


パート1,2,4,6および8のみが、静止画のマスターを記憶することに関連しそうである。


以下に、12のパートの概要を、要約した形で示す。


パート1
その名前から示唆されるように、パート1はJPEG 2000のコアを規定する。これは、JPEG 2000のコードストリームの構文と、JPEG 2000画像のエンコードおよびデコードに関連する必要なステップを含む。標準規格の後半のパートは、全て、様々な種類の拡張に関連し、これらのどれも、基本的なJPEG 2000 の実装に必須ではない。現行の実装の多くは、パート1のみを使用する。


パート1は、JP2と呼ばれる基本的なファイル・フォーマットの規定もする。JP2により、(正確なレンダリングに必須である)色空間情報のようなメタデータを、JPEG 2000のコードストリームとともに、相互運用可能な形で含めることができる。JP2は、拡張可能なアーキテクチャを使用し、そのアーキテクチャは他のパートで規定するJPEG 2000ファミリーのファイル・フォーマットで共有している。


パート1は、ガイドラインおよび例、技術的なリファレンスの文献目録、ISOに特許声明書を提出した企業のリストも含む。JPEG 2000は、ライセンスフィーまたはロイヤリティを支払う必要なくパート1が実施できることを意図して開発され、多くの特許権者が、この目的に対する彼らの権利を放棄した。しかしながら、JPEG委員会は、正式な保証をすることができず、どの特許も侵害されないことを確かめるは、依然として実装する者の責任である。


パート1は、2000年12月に国際標準規格(ISO/IEC 15444-1)となった。


パート1の第2版は、2004年に発行された。特に、標準規格色空間(YCC)が加えられた。


パート2


パート2は、パート1に対する様々な拡張を規定し、以下を含む。

  • ウェーブレット変換および係数量子化のより柔軟な形態
  • 特定の関心領域(ROI)をエンコードする代替の方法
  • JP2に基づくが、複数の合成層、アニメーション、拡張された色空間等をサポートする新たなファイル・フォーマットJPX
  • (DIG35規格に基づく)写真のような画像のためのリッチメタデータセット

パート2における拡張のほとんどは、互いに独立して機能する。相互運用可能性を支援するため、コードストリームおよびJPXファイル・フォーマットレベルの両方において、拡張の使用を信号送信する機構が設けられる。


パート2は、2001年11月に国際標準規格(ISO/IEC 15444-2)となった。


パート3


パート3は、JPEG 2000画像のモーションシーケンス用のMJ2(またはMJP2)と呼ばれるファイル・フォーマットを規定する。関連付けられる音声のサポートも含まれる。


パート3は、2001年11月に国際標準規格(ISO/IEC 15444-3)となった。


パート4


JPEG 2000パート4は、JPEG 2000パート1に対する適合性テストに関する。これは、デコーダコンプライアンスクラスのセットの規定を含む、エンコードおよびデコードの両方のプロセスのテスト手順を指定する。パート4テストファイルは、(ヘッダーなどのついていない)むき出しのコードストリームおよびJP2ファイルの両方を含む。


JPEG 2000パート4は、承認、性能、またはロバスト性テストを、明示的にその範囲から除外することに留意されたい。


パート4は、2002年5月に国際標準規格(ISO/IEC 15444-4)となった。


パート5


JPEG 2000パート5(ISO/IEC 15444-5:2003)は、短いテキストドキュメントと、JPEG 2000パート1を実装する2つのソースコードパッケージからなる。2つのコードは、パート1とともに開発され、パート1をチェックするとともに、相互運用可能性をテストするために使用された。一方はCで書かれ、他方はJAVAで書かれている。それらは、両方ともオープンソースタイプのライセンスの下で利用可能である。


パート5は、2001年11月に国際標準規格(ISO/IEC 15444-5)となった。


パート6


JPEG 2000のパート6は、ドキュメント画像化のためのJPMファイル・フォーマットを規定し、このフォーマットは、ISO/IEC16485のMixed Raster Content(MRC)モデルを使用する。JPMは、パート1で規定されるJP2ファイルフォーマットの拡張であり、これは、(JP2に対して)パート1および(JPXに対して)パート2で規定されるのと同じアーキテクチャおよび多くの同じボックスを使用する。


JPMは、ページ毎に多くのオブジェクトを含むマルチページドキュメントを記憶するために使用され得る。これは、JPEG 2000ファミリーの一部であるが、多くの他のコーディングまたは圧縮技術の使用もサポートする。例えば、JPEG 2000の代わりとして、テキストの領域にはJBIG2が、写真の画像にはJPEGを使うことができる。


パート6は、2003年4月に国際標準規格(ISO/IEC 15444-6)となった。


パート7


このパートは、放棄された。


パート8


パート8はセキュアードJPEG 2000(JPSEC)とも呼ばれ、ツールおよびソリューションのスペックを標準化して、トランザクションのセキュリティ、コンテンツの保護(IPR)、およびテクノロジーの保護(IP)を保証するとともに、この標準に従ったアプリケーションがJPEG 2000のビットストリームをプロテクトされた形で生成、消費、および交換できるようにする。暗号化、改ざん防止、データ保全、条件付きアクセス、所有権保護の用途が扱われる。


パート8は、2006年7月に国際標準規格(ISO/IEC 15444-8)となった。


パート9


パート9の主な要素は、JPIPと呼ばれるクライアント/サーバプロトコルである。JPIPは、HTTPの上に実装され、画像転送にこれまでとは別の可能性をもたらすように設計されている。


パート9は、2004年10月に国際標準規格(ISO/IEC 15444-9)となった。


パート10


パート10は、三次元データのコーディング、平面から体積画像へのJPEG 2000の拡張に関するものであり、認証ステージ(50.60)*1の最終段階にある。


パート11


このパートを作るために、JPEG 2000ワイヤレス(JPWL)、すなわち標準規格のパート11は、エラーしがちなワイヤレスネットワーク上で、JPEG 2000画像の効率的な伝送を達成するためのツールおよび方法を標準化している。詳しく言うと、JPWLは、パート1に記載されたコアコーディングシステムの要素を、エラー保護および訂正の機構によって拡張する。これらの拡張は、パート1を実装するデコーダがJPWLで規定された拡張をスキップすることができるという意味で、後方互換性を有する。


パート11は、2007年6月に国際標準規格(ISO/IEC 15444-11)となった。


パート12


JPEG 2000のパート12、ISO/IEC 15444-12は、MPEG-4標準規格のパート12、ISO/IEC
14496-12と共通のテキストを有する。JPEGとMPEGが共同でイニシアティブをとり、将来のアプリケーションのベースとなるファイル・フォーマットを作成した。フォーマットは、メディアデータの時限シーケンス用の汎用的なフォーマットである。これは、AppleのQuichTimeファイル・フォーマットおよびJPEG 2000ファイル・フォーマットと同じ基礎となるアーキテクチャを使用する。


パート12は、2003年7月に国際標準規格(ISO/IEC 15444-12)となった。


パート13 エントリーレベルJPEG 2000 エンコーダ


パート13は、広範囲に広がる用途をもつロイヤリティおよびライセンスフィーなしのエントリーレベルJPEG 2000エンコーダを規定する。最終的な委員会のドラフトはまだできていない。


2.2 詳細


2.2.1 ストラクチャー


JPEG 2000ファイルは、連続したボックスからなる。ボックスは他のボックスを含むことができ、これはスーパーボックスと呼ばれる。*2ボックスは長さ可変であり、この長さは最初の4バイトにより決定される。各ボックスは、第2のシーケンスの4バイトにより決定されるタイプを有する。


JPEG 2000ファミリーの各ファイルは、JPEG 2000シグネチャボックスから始まり、特にタイプ(例えばJP2)およびバージョンを決定するファイルタイプボックスが続く。それから、特に解像度、ビット深さ、色仕様が規定される様々なボックスを含むヘッダボックスが続く。ファイルに関するメタデータは、XML構造でも、非XMLでも良いが、任意のボックスとして追加できる。それから、画像データを含む「連続的なコードストリーム」ボックスが続く。 *3


2.2.2 エンコードとデコード


JPEG 2000エンコードは、6つのステップで行われる。*4


ステップ1:色成分変換(任意)


まず、RGB色空間が他の色空間に変更される。これは任意のステップであるが、RGBのような色空間には大抵使用さ

れ、推奨される。これに対して2つのオプションがあり得る。

  1. YCbCr色空間に不可逆色変換(ICT)
  2. YUV色空間に可逆色変換(RCT)

最初の方法は、不可逆圧縮に使用され、色情報を単純化するステップを含み、量子化エラーをもたらし得る。


ステップ2:タイル化


色変換の後、画像はいわゆるタイルに分割される。この利点は、デコーダが画像を作るために少ないメモリしか必要としないことである。(エンコードソフトウェアがこの高度なオプションを提供する場合)タイルのサイズさえも選択され得る。タイルが非常に小さくされるか、または圧縮係数が非常に高い場合、JPEGと同じブロッキングの影響が生じ得る(これは不可逆圧縮のみに当てはまる)。タイルのサイズは、ファイルサイズに最小限の影響しかない。小さなタイルが選択されると、ファイルは少し大きくなる。*5全体の画像と同じ大きさを持つ1つのタイルを使うことができるので、このステップも(結果として)任意ということになる。全体の画像と同じ大きさを持つ1つのタイルを使うことで、前に述べられたブロッキングの影響/タイル化アーチファクトを回避するだろう。


ステップ3:ウェーブレット変換


それからタイルは、離散ウェーブレット変換(DWT)で変換される。*6


これに対して2つの可能性がある。

  1. 9/7浮動点ウェーブレットフィルタによる不可逆(または視覚的にはロスレス)圧縮
  2. 5/3整数ウェーブレットフィルタによる可逆圧縮*7


ステップ4:量子化不可逆圧縮のみ)


係数を表すビットの量を減らすため、係数のスカラ量子化をする。この結果、エンコードされなければならないのは整数の集合となる。いわゆる量子化ステップは、柔軟なパラメータであり、このステップが大きければ大きいほど、圧縮および品質のロスも大きくなる。


ステップ5:エンコード


エンコードは、親、子、孫などのように、階層的に連続した小さな「ユニット」に分かれている。

  1. サブバンド:周波数範囲および空間領域。これらの要素は分割されて、区画となる。
  2. 区画:ウェーブレット領域内の矩形領域。これらの要素もまた、さらに小さい要素に分割され、それがJPEG 2000における最小単位となる。
  3. コードブロック:サブバンド内の正方形のブロック。コードブロックのビットは、EBCOT(Embedded Block Coding with Optimal Trunction)方式によりエンコードされる。重要なビットがまずエンコードされ、それからあまり重要でないビットがエンコードされる。エンコード自体は3ステップ(コーディングパス)で行われ、これにより、不可逆バージョンにおいては、関連性の低いビットをスキップできる。


ステップ6:パケット化


これは、解像度、品質、色またはタイル内の位置によりソートされ得る「パケット」および「レイヤー」にコードストリームが分割されるプロセスである。


パケットはコードブロックの圧縮されたデータを含んでいて、そのコードブロックにおいて、各タイルにおける各コンポーネントが、解像度ごとに特定のポジションを持つようにされている。同様に、パケットはレイヤーの成分である。レイヤーは、パケットの集合であり、各解像度ごと、および各位置ごとに作成される。*8


これらのレイヤをある方法で配置することにより、デコード/アクセスの間、ある情報がまず利用可能にされ、他の情報は後で利用可能にされると規定することが可能である。これは、特にWebを介したアクセスに役立つ。


例えば、解像度毎のデコードを構成することを選択すると、アクセスの間まず低い解像度の画像を提供し、デコードが進むにつれて高い解像度の画像が利用可能になる。品質によりコードストリームを構成すると、低い品質/ビット深さの画像から、より良い品質/ビット深さを徐々に提供することができる。色チャネルにより構成されると、常に様々な色を提供することができ、位置により構成されると、まず画像のある部分を示すことができる。例えば、コードストリームは、アクセスがまず品質(L)により行われ、それから解像度(R)、色チャネル(C)、位置(P)により行われるように構成され得る。順序はLRCPである。他の可能な順序は、RLCP, RPCL, PCRLおよびCPRLである。LRCPの特別なオプション(関心領域のエンコードをするLRCP)は、まず画像のある部分を構築している。*9


以下の2つの図は、各ブロックのデコードが進むにつれ、より高い解像度(RPCL)で表示される様子を示す。

JPEG2000

*1:金城注:認証ステージは、http://www.y-adagio.com/public/committees/ddfd/act2003/cls2.htmの「2.3.3 関連する規格等のステータス」などを参照

*2:このボックス構造は、QuicktimeやMPEG-4と関係する。ボックスは、それらのフォーマットでは、アトムとなる。

*3:JP2の構造をもう少し詳しく知りたい場合、フロリダ・デジタル・アーカイブのJP2に関する記述を参考にすると良い。http://www.fcla.edu/digitalArchive/pdfs/action_plan_bgrounds/jp2_bg.pdf

*4:http://hp.vector.co.jp/authors/VA027608/jpeg2000/

*5:Robert Buckleyの『JPEG 2000 for Image Archiving, with Discussion of Other Popular Image Formats』 p. 41, slide 81.参照

*6:JPEGではDCTが使われる。DCTは8x8ピクセルのブロックごとに適用され、より高い圧縮率を実現する

*7:Robert Buckleyの『JPEG 2000 for Image Archiving, with Discussion of Other Popular Image Formats』 p. 42, slide 83.参照

*8:Robert Buckleyの『JPEG 2000 for Image Archiving, with Discussion of Other Popular Image Formats』p. 32, slide 64.参照

*9:Robert Buckleyの『JPEG 2000 for Image Archiving, with Discussion of Other Popular Image Formats』 p. 34, slide 68.参照