IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カカドゥ アール アンド ディー ピーティーワイ リミテッドの特許一覧

<>
  • 特許-画像を圧縮する方法および装置 図1
  • 特許-画像を圧縮する方法および装置 図2
  • 特許-画像を圧縮する方法および装置 図3
  • 特許-画像を圧縮する方法および装置 図4
  • 特許-画像を圧縮する方法および装置 図5
  • 特許-画像を圧縮する方法および装置 図6
  • 特許-画像を圧縮する方法および装置 図7
  • 特許-画像を圧縮する方法および装置 図8
  • 特許-画像を圧縮する方法および装置 図9
  • 特許-画像を圧縮する方法および装置 図10
  • 特許-画像を圧縮する方法および装置 図11
  • 特許-画像を圧縮する方法および装置 図12
  • 特許-画像を圧縮する方法および装置 図13
  • 特許-画像を圧縮する方法および装置 図14
  • 特許-画像を圧縮する方法および装置 図15
  • 特許-画像を圧縮する方法および装置 図16
  • 特許-画像を圧縮する方法および装置 図17
  • 特許-画像を圧縮する方法および装置 図18
  • 特許-画像を圧縮する方法および装置 図19
  • 特許-画像を圧縮する方法および装置 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-08
(45)【発行日】2022-03-16
(54)【発明の名称】画像を圧縮する方法および装置
(51)【国際特許分類】
   H04N 1/41 20060101AFI20220309BHJP
   H04N 19/13 20140101ALI20220309BHJP
   H04N 19/182 20140101ALI20220309BHJP
   H04N 19/136 20140101ALI20220309BHJP
   H04N 19/91 20140101ALI20220309BHJP
【FI】
H04N1/41
H04N19/13
H04N19/182
H04N19/136
H04N19/91
【請求項の数】 15
(21)【出願番号】P 2019514149
(86)(22)【出願日】2017-05-23
(65)【公表番号】
(43)【公表日】2019-08-08
(86)【国際出願番号】 AU2017050484
(87)【国際公開番号】W WO2017201574
(87)【国際公開日】2017-11-30
【審査請求日】2020-05-22
(31)【優先権主張番号】2016901947
(32)【優先日】2016-05-23
(33)【優先権主張国・地域又は機関】AU
(31)【優先権主張番号】2016902956
(32)【優先日】2016-07-27
(33)【優先権主張国・地域又は機関】AU
(31)【優先権主張番号】2016903093
(32)【優先日】2016-08-05
(33)【優先権主張国・地域又は機関】AU
(31)【優先権主張番号】2016904209
(32)【優先日】2016-10-17
(33)【優先権主張国・地域又は機関】AU
(31)【優先権主張番号】2017900628
(32)【優先日】2017-02-24
(33)【優先権主張国・地域又は機関】AU
(73)【特許権者】
【識別番号】518416735
【氏名又は名称】カカドゥ アール アンド ディー ピーティーワイ リミテッド
(74)【代理人】
【識別番号】110002527
【氏名又は名称】特許業務法人北斗特許事務所
(72)【発明者】
【氏名】ドーブマン デビット スコット
(72)【発明者】
【氏名】マシュー レジ クルヴィラ
(72)【発明者】
【氏名】ナマン アオウス サビット
【審査官】松永 隆志
(56)【参考文献】
【文献】特開2005-110185(JP,A)
【文献】特開2003-008445(JP,A)
【文献】特開2003-008906(JP,A)
【文献】特開2005-167611(JP,A)
【文献】特開2005-150842(JP,A)
【文献】特開2010-093669(JP,A)
【文献】特開2005-117582(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/41
H04N 19/13
H04N 19/182
H04N 19/136
H04N 19/91
(57)【特許請求の範囲】
【請求項1】
ブロック符号化処理によってサブバンド画像の複数のサンプルを複数のコードブロックの形にする、画像のウェーブレット変換を含む画像圧縮の方法であって、前記ブロック符号化処理は、
各サンプルについて、非ゼロであれば有意それ以外であれば非有意であるように該サンプルが有意か又は非有意かを決定し、有意であると決定された各サンプルについて、該サンプルについてのマグニチュード-1値を演算し、および該サンプルについてのマグニチュード指数を演算するステップ、ここで前記マグニチュード指数は、2のe乗が前記マグニチュード-1の2倍よりも大きくなる最小の非負の整数eである、と、
前記コードブロックの前記複数のサンプルを、走査パターンに応じて、走査順において連続するnサンプルの複数のグループにまとめるステップと、
各グループに符号化コンテキストを割り当てるステップ、ここで前記符号化コンテキストは、走査順において前のグループに関連付けられたサンプルの有意性のみに依存し、ここでグループは、このグループについての前記符号化コンテキストを形成するのに用いられる全てのサンプルが非有意であればAZCグループと称する全ゼロコンテキストグループとして識別される、と、
少なくとも2つの分離したビットストリーム内でグループ単位で有意性情報をエンコードするステップ、前記少なくとも2つの分離したビットストリームは、
AZCグループと識別された全てのグループについてのグループ有意性シンボルをエンコードする第1ビットストリーム、ここで前記グループ有意性シンボルは該グループの任意のサンプルが有意であるか否かを示す、と、
非AZCグループおよび有意なAZCグループについて、1つのグループ内の全てのサンプルの有意性を一緒にエンコードする第2ビットストリーム、ここで前記グループ内の少なくとも一つのサンプルは有意である、と、を含み、
前記少なくとも2つの分離したビットストリームは、並行してデコード可能である、と、
有意な複数のサンプルについての前記マグニチュード-1値およびサイン情報を、前記走査順における前のサンプルの有意性およびマグニチュード指数にのみ依存する符号を用いて符号化するステップと、
前記複数のコードブロックについての有意性およびマグニチュード符号ビットを、並行してデコード可能である前記少なくとも2つの分離したビットストリームに配置するステップと、
を含む方法。
【請求項2】
複数のビットストリームは、前記コードブロックの符号語セグメントと称される、前記コードブロックの符号化表現、を形成するように配置される3つのビットストリームを含み、前記複数のビットストリームのうちの2つのビットストリームは前記符号語セグメントの始点から連続して前方に伸長する一方、第3のビットストリームは前記符号語セグメントの終点から後方に伸長し、前方に伸長する前記2つのビットストリーム間のインターフェースと、前記符号語セグメントの全体の長さと、が特定され、これにより、デコーダに前記符号語セグメントから同時に3つ全てのビットストリームを同時に処理させるおよび復元させることを可能とする、
請求項1に記載の方法。
【請求項3】
AZCグループの有意性をエンコードする前記第1ビットストリームは、適合型ランレングス符号化エンジンを用いて生成される、
請求項1に記載の方法。
【請求項4】
1つのグループ内の有意性の符号化は、コンテキストに基づいており、前記1つのグループについての前記コンテキストは、前記走査順における前のグループについて既に符号化された有意性情報から決められ、グループの前記コンテキストは、それがAZCグループであるか非AZCグループであるかも決める、
請求項1に記載の方法。
【請求項5】
各有意なAZCグループおよび各非AZCグループ内の全てのサンプルの有意性を一緒にエンコードする前記第2ビットストリームは、可変長符号を利用し、
非有意なAZCグループではない各グループについて、単一の符号語が放出される、
請求項4に記載の方法。
【請求項6】
有意サンプルについての前記マグニチュード-1およびサイン情報は、可変長符号化部と非符号化部とに分離され、ここで、前記可変長符号化部により生成されるビットは、各有意性AZCグループおよび各非AZCグループ内の全てのサンプルの有意性を一緒にエンコードする符号ビットとともに、前記第2ビットストリームにインターリーブされ、一方、前記非符号化部は、未加工ビットストリームと称する第3ビットストリーム内に配置される、
請求項1から5のいずれか1項に記載の方法。
【請求項7】
コードブロックの前記複数のグループは複数のセットに区画され、各セットは、前記コードブロック内のライン又はストライプに対応し、1つのセットにおける各有意なサンプルについての前記未加工ビットストリームに含まれるマグニチュード情報のビットの数は、同じセットについての有意性および可変長マグニチュード符号ビット、それらは前のセット内の近傍サンプルの前記マグニチュード指数とともに他のビットストリームに見出される、のみに依存する、
請求項6に記載の方法。
【請求項8】
前記前のセットにおける近傍サンプルの前記マグニチュード指数は、現在のセットについてのマグニチュード指数予測因子の形成に用いられ、前記マグニチュード情報の前記可変長符号化部は、前記現在のセット内で、前記マグニチュード指数予測因子と実際のマグニチュード指数又はその上限との間の差分、以下ではマグニチュード指数残差と称する、をエンコードする、
請求項7に記載の方法。
【請求項9】
マグニチュード指数残差を符号化するステップを、グルーブ単位で行い、1つのグループにつき1つの残差のみを符号化して、その残差と対応するマグニチュード指数予測因子との組み合わせがそのグループにおける各有意なサンプルの前記マグニチュード指数の上限を提供する、
請求項8に記載の方法。
【請求項10】
予測残差および有意性の符号語のビットは、同じビットストリーム内においてインターリーブされ、残差および有意性の符号語のビットのインターリーブは、連続的グループの各対についての前記有意性の符号語に、連続的グループの同じ対についての前記予測残差の符号語が続き、連続的グループの前記対が有意なサンプルを含む場合には、連続的グループの次の対についての前記有意性の符号語が続くというように行われる、
請求項9に記載の方法。
【請求項11】
画像圧縮の前記方法は、JPEG 2000フォーマットに準拠する、
請求項1~10のいずれか1項に記載の方法。
【請求項12】
Cleanupパスと称される有意性およびマグニチュード符号化のステップは、あるマグニチュードビットプレーンに関連してコードブロック内の量子化されたサブバンドサンプルを通信する、Cleanup セグメントと称される符号語セグメントを生成する、
請求項1に記載の方法。
【請求項13】
SigPropセグメントと称される付加的な符号語セグメントを生成し、該SigPropセグメントは、次に低いマグニチュードビットプレーンに関連して、前記Cleanupパスにおいて非有意として符号化された前記コードブロック内のいくつかのサンプルの有意性を、この低いビットプレーンに関連してのみ有意である複数のサンプルについての前記サイン情報と共に表し、
前記SigPropセグメントにおいて符号化された有意性を有するサンプルは、対応するJPEG 2000のSignificance Propagation パスでエンコードされるであろうものと一致し、
MagRefセグメントと称されるさらなる符号語セグメントを生成し、該MagRefセグメントは、前記Cleanupパスにおいて有意として符号化されるサンプルについて、次に低いビットプレーンに対する、最下位マグニチュードビットを保持する、
請求項12に記載の方法。
【請求項14】
請求項1に記載の画像処理の方法を実施するように構成されたエンコーディング装置。
【請求項15】
標準的なJPEG 2000ブロックビットストリームを請求項1に記載の方法によって生成されるようなブロックビットストリームに変換するステップを含む、トランスコーディング処理。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を圧縮する方法および装置に関し、特に、限定はしないが、画像を圧縮する向上したブロック符号化装置および方法に関する。
【背景技術】
【0002】
画像圧縮システムは、知られている。JPEGおよびJPEG 2000は、画像圧縮のための一般向けの規格である。
【0003】
JPEG 2000アルゴリズムは、多くの様々な分野において用途を見出す豊富な特性を提供する。いくつかの最も重要な特性は以下の通りである。
・圧縮効率
・品質スケーラビリティ
・解像度スケーラビリティ
・関心領域アクセシビリティ
・並列計算
・反復エンコーディングせずに最適化されたレート制御
・視覚的に関連する最適化対象を標的にする能力
・誤り耐性
・圧縮ドメイン(すなわち非常に少ないメモリ)転置およびフリッピング操作
・コードブロック、プレシンクトまたはJ2Kパケットレベルで情報を再シーケンス化する能力
【0004】
これらの特性の多くはEBCOTアルゴリズム(Embedded Block Coding with Optimized Truncation)の使用により派生するが、階層的な離散ウェーブレット変換(DWT)の使用も重要な役割を果たす。
【0005】
これらの中核的特性に加えて、複数の規格のうちのJPEG 2000の規格一式は、以下の用途に対して良好なサポートを提供する。
・JPIPを介したイメージ(映像および動画を含む)の効率的かつ応答型のリモート
・インタラクティブ
・ブラウジング。
・大量のイメージソースからの任意領域の効率的なオンデマンドでのレンダリング。
・非線形トーンカーブおよび/またはカスタム浮動小数点マッピングを使用することによる、高ダイナミックレンジ圧縮。
・豊富なメタデータアノテーション。
・ハイパースペクトル立体コンテンツの効率的圧縮。
【0006】
JPEG 2000規格の欠点は、計算複雑性である。映像用途について、および、特にパワーを意識した用途については、圧縮およびレンダリング複雑性が、JPEG 2000の多くの利点にもかかわらずその採用の障壁となり得る。
【発明の概要】
【0007】
第1観点によれば、本発明は、ブロック符号化処理によって複数の画像サンプルを複数のコードブロックの形にする画像圧縮の方法を提供し、前記ブロック符号化処理は、1つのサンプルセットについての有意性情報を、走査順における前のサンプルの有意性にのみ依存する符号を用いて符号化するステップと、1つのサンプルセットについてのマグニチュードおよびサイン情報を、前記走査順における前のマグニチュードおよび有意性情報にのみ依存する符号を用いて符号化するステップと、各サンプルセットに関連付けられた有意性ビットが符号化表現(符号語セグメント)においてまとまって発現するように、有意性およびマグニチュード符号ビットをサンプルのセット毎に配置するステップと、前記コードブロックにおける各サンプルセットについて、前記符号化および前記符号ビット配置ステップを繰り返すステップと、を含む。
【0008】
一形態では、前記ブロック符号化処理は、1つのサンプルセットが1グループのサンプルを含むように、前記コードブロックの前記サンプルを複数のグループに収集するステップを含む。前記有意性符号化ステップは、複数のグループに適用される。一形態では、各グループは、前記コードブロックのラスター走査を受けて、4つの連続するサンプルを有する。別の形態では、各グループは、高さ2のストライプを有するコードブロックのストライプ指向性の走査を受けて、4つの連続するサンプルを有し、その結果、前記複数のグループが前記コードブロック内に2×2組成を有する。
【0009】
一形態では、グループ有意性シンボルを、コードブロック内におけるいくつかのグループについて適合符号を用いて符号化し、このような各グループが何らかの有意サンプルを含んでいるかどうか、または、非有意サンプルを全く含んでいないかどうかを通信する。複数の形態では、グループ有意性シンボルは、コードブロック内の既に符号化された空間近傍が完全に非有意である複数のグループについて符号化される。複数の形態では、あるグループにおけるサンプルについての有意性を符号化するステップは、該グループが、適応性グループ有意性シンボル符号化の対象であるかどうか、および、そのようなグループ有意性シンボルの値に応じている。
【0010】
複数の形態では、前記ブロック符号化処理は、多重ビットストリームを含む単一符号語セグメントを生成するステップを含む。一形態では、前方へ延伸するビットストリームおよび後方へ延伸するビットストリームは、個々のビットストリームの長さを別々に通信する必要がないように使用され(デュアルビットストリーム)、デコーダにとっては、個々のビットストリームが属する符号語セグメントの長さが分かれば十分である。別の形態では、3つのビットストリームが使用され(トリプルビットストリーム)、そのうち2つが前方へ延伸し、一方で1つが後方へ延伸する。3つのビットストリームからなる符号語セグメントの全長に加えて、2つの前方延伸ビットストリーム間のインターフェースが明確に特定される。複数の形態では、最終的な圧縮コードストリーム内に禁止コードが発現するのを回避するため、コードブロックの符号語セグメントの分離したビットストリーム内でビットスタッフィング技術が適用される。
【0011】
複数の形態では、グループ有意性シンボルの適合型符号化により生成されるビットは、コードブロックの符号語セグメント内の自身のビットストリーム(適合的に符号化されたビットストリーム)に割り当てられる。
【0012】
一形態では、グループ有意性シンボルが適合型算術符号化エンジンを用いて符号化される。
【0013】
別の形態では、グループ有意性シンボルは、適合型ランレングス符号化エンジンを用いて符号化されている。
【0014】
一形態では、1つのサンプルセットについての有意性を符号化するステップは、コンテキストに基づき、1つのサンプルセットの前記コンテキストは、走査ライン順に前記コードブロックにおける前の複数のサンプルセットのために既に符号化された有意性情報にのみ依存している。一形態では、コンテキストに基づいて有意性符号化する前記ステップは、可変長符号を利用し、単一符号語は、それ以外の場合は全体に非有意と分からない各サンプルセットについて放出される。
【0015】
複数の形態では、コンテキストに基づく有意性符号化により生成される前記ビットを、前記適合的に符号化されたビットストリームから分離したビットストリーム(未加工ビットストリーム)内に配置する。
【0016】
一形態では、マグニチュード情報を符号化する前記ステップは、マグニチュードコンテキストに基づき、各サンプルについての前記マグニチュードコンテキストは、その近傍の前記マグニチュード指数から形成される。一形態では、前記マグニチュードコンテキストは、前記近傍サンプルマグニチュード指数の合計から形成される。
【0017】
一形態では、コードブロックの有意サンプルについてのマグニチュードおよびサイン情報をエンコードするために使用される前記ビットは、前記コンテキストに基づく有意性符号ビットと同じビットストリーム(未加工ビットストリーム)内に配置されているが、1つのサンプルセットについての前記有意性ビットが同じサンプルセットについての前記マグニチュードおよびサインビットよりも前に発現するように分離されている。一形態では、ビットストリームにおいて有意性およびマグニチュード/サインビットを分離するための基礎となる複数のサンプルセットは、コードブロックの全走査ラインである。
【0018】
別の形態では、マグニチュードおよびサイン情報をエンコードするために使用される前記ビットは、前記コンテキストに基づく有意性符号ビットから分離したビットストリーム(未加工ビットストリーム)内に配置されている。
【0019】
他の形態では、有意サンプルについてのマグニチュードおよびサイン情報は、可変長符号化部と非符号化部とに分離され、ただし、前記可変長符号化部により生成される前記ビットは、前記コンテキストに基づく有意性符号ビットと同じビットストリーム(VLCビットストリーム)内に配置され、一方、前記非符号化部は、分離したビットストリーム(未加工ビットストリーム)内に配置されている。このような形態では、有意性およびマグニチュードVLCビットは、1つのサンプルセットについての有意性VLCビットが同じサンプルセットについてのマグニチュードVLCビットよりも前に発現するように、VLCビットストリーム内で分離されている。一形態では、マグニチュードVLCビットから有意性を分離するために使用される前記複数のサンプルセットは、複数のグループ対に対応し、ただし、有意性符号化は複数グループに基づく。
【0020】
一形態では、前記画像圧縮の方法は、前記JPEG 2000形式に準拠し、上述のブロック符号化処理は、前記通常のJPEG 2000ブロック符号化処理の代わりに使用される。
【0021】
一形態では、有意性およびマグニチュード符号化のステップ(Cleanupパス)は、あるマグニチュードビットプレーンに関連してコードブロック内において量子化されたサブバンドサンプルを通信する符号語セグメント(Cleanup セグメント)を生成する。一形態では、付加的な符号語セグメント(SigPropセグメント)を生成し、該付加的な符号語セグメントは、前記Cleanupパスにおいて非有意として符号化された、コードブロック内のいくつかのサンプルの有意性を、次のより細かい(より高精度の)マグニチュードビットプレーンに関連して、このより細かいビットプレーンに関連してのみ有意である複数のサンプルについての前記サイン情報と共に表す。一形態では、さらなる符号語セグメント(MagRefセグメント)を生成し、該さらなる符号語セグメントは、前記より細かい(より高精度の)ビットプレーンに関して、前記Cleanupパスにおいて有意として符号化されるサンプルについて、最下位マグニチュードビットを保持する。複数の形態では、SigPropパスは、4ラインストライプ指向性走査を受けて、JPEG 2000において規定されているように正確に、CleanupパスまたはSigPropパスのいずれかにおいて有意として符号化された近傍を有する、以前は非有意であったサンプルについての有意性情報を符号化する。一形態では、SigPropパスにより生成される有意性およびサインビットは、1つのサンプルセットについてのいくつかの新しい有意性ビットが同じサンプルセットについてのいくつかのサインビットに先行するように、単一未加工ビットストリーム内で分離されている。一形態では、SigProp符号語セグメント内に有意性およびサインビットを配置するための基礎を形成する複数のサンプルセットは、4つのサンプルからなる。
【0022】
一形態では、本発明の方法は、特に、標準的なJPEG 2000EBCOTアルゴリズムと比較して比較的高速のブロック符号化アルゴリズムを提供するという利点を有する。本願では、FBCOT(Fast Block Coder with Optimized Truncation)という用語を使用する。Fast Block Coderオプションは、以下の詳細な説明から明らかとなる多数の利点を有する。
【0023】
第2観点によると、本発明は、本発明の第1観点に係る方法を実施するように構成されたエンコーディング装置を提供する。
【0024】
第3観点によると、本発明は、エンコーディング装置を提供し、該エンコーディング装置は、ブロック符号化器を備え、該ブロック符号化器は、1つのサンプルセットについての有意性情報を符号化し、前記1つのサンプルセットについてのマグニチュードおよびサイン情報を符号化し、結果として得られる符号ビットを最終的圧縮結果(符号語セグメント)内に配置し、他の複数のサンプルセットについて符号化ステップと符号ビット配置ステップとを、コードブロックにおける全ての前記複数のサンプルセットについて有意性、サイン、およびマグニチュード情報が符号化されるまで繰り返すように構成されている。
【0025】
第4観点によると、本発明は、トランスコーディング処理を提供し、該トランスコーディング処理は、標準的なJPEG 2000ブロックビットストリームを、JPEG 2000ブロックビットストリームから全ての情報を保存するために必要とされるように、0または1のCleanupパス符号語セグメントと、0または1のSigProp符号語セグメントと、0または1のMagref符号語セグメントとを有する、本発明の第1観点の方法により作成されるようなブロックビットストリームに変換するステップを含む。
【0026】
第5観点によると、本発明は、トランスコーディング装置を提供し、該トランスコーディング装置は、標準的なJPEG 2000ブロックビットストリームを本発明の第1観点の方法によって生成されるようなブロックビットストリームに変換するように構成されている。
【0027】
第6観点によると、本発明は、トランスコーディング処理を提供し、該トランスコーディング処理は、本発明の第1観点の方法によって生成されるようなブロックビットストリームを標準的なJPEG 2000ブロックビットストリームに変換するステップを含む。
【0028】
第7観点によると、本発明は、トランスコーディング装置を提供し、該トランスコーディング装置は、本発明の第1観点の方法によって生成されるようなブロックビットストリームを標準的なJPEG 2000ブロックビットストリームに変換するように構成されている。
【0029】
第8観点によると、本発明は、JPEG 2000規格に準拠した画像圧縮の方法を提供し、該方法において、画像サンプルをブロック符号化処理によってコードブロックの形にし、改善策はブロック符号化処理においてCleanupパスを実施することを含み、これは、全ての対応する先行のJPEG 2000符号化パスによってエンコードされる情報と共に、対応のJPEG 2000Cleanupパスによってエンコードされる情報をエンコードする。
【0030】
第9観点によると、本発明は、1つの画像または複数の画像のシーケンスを圧縮する際に目標圧縮サイズを達成することができるレート制御方法を、各コードブロックに対して限られたセットの符号化パス動作しか行う必要がない特性と共に提供する。
【0031】
第10観点によると、本発明は、デコーディング処理を提供し、該デコーディング処理は、本発明の第1観点の方法により生成されるデジタルビットストリームをデコードするように構成されている。
【0032】
第11観点によると、本発明は、デコーディング装置を提供し、該デコーディング装置は、本発明の第1観点の方法により作成されるビットストリームをデコードするように構成されている。
【図面の簡単な説明】
【0033】
本発明の特徴および利点は、添付の図を参照することにより、単なる例であるその実施形態の以下の説明から明らかとなる。
【0034】
図1図1は、RESTARTモードフラグによって/によらずに作成される符号語セグメントを示すFAST符号化パスとエンコーダによって生成され最終的にコードストリームへ出力される可能性がある符号化パスの例とを示す図である。
図2図2は、Cleanupパスエンコーダ(デュアルビットストリームバージョン)のブロック図である。
図3図3は、Cleanupパスデコーダ(デュアルビットストリームバージョン)のブロック図である。
図4図4は、Cleanupパスエンコーダ(トリプルビットストリームバージョン)のブロック図である。
図5図5は、Cleanupパスデコーダ(トリプルビットストリームバージョン)のブロック図である。
図6図6は、Cleanupパスエンコーダ(分散型マグニチュード情報を有するトリプルビットストリームバージョン)のブロック図である。
図7図7は、Cleanupパスデコーダ(分散型のマグニチュード情報を有するトリプルビットストリームバージョン)のブロック図である。
図8図8は、FASTブロック符号化器のCleanupパスについてのデュアルビットストリーム符号語構造を表す図である。
図9図9は、FASTブロック符号化器のCleanupパスについてのトリプルビットストリーム符号語構造を表す図である。
図10図10は、4で割り切れない偶数幅Wを有するコードブロックの最初の2ラインの一部を示す、線形1×4グループでのラスター走査順序を示す図である。なお、最右端のグループの抜けているサンプルは無視されずゼロパディングされている。
図11図11は、奇数幅Wの3ラインを有するコードブロックを示す、正方形の2×2グループでのラインインターリーブ走査順序を説明する図である。なお、コードブロックに重なる各グループ内の抜けているサンプルは無視されずゼロパディングされている。
図12図12は、FAST Cleanupパスのデュアルビットストリームバージョンについての有意性およびマグニチュード/サイン情報のラインインターリーブされたシーケンス化を表す図である。この説明は、1×4線形グループ構造に特有ではないが、2×2グループについては、Wは、コードブロック幅の2倍と解釈されるものとする。
図13図13は、FAST Cleanupパスのトリプルビットストリームバージョンについての有意性およびマグニチュード/サイン情報の完全に切り離された処理を表す図である。この説明は、1×4線形グループ構造に特有ではないが、2×2グループについては、Wは、コードブロック幅の2倍と解釈されるものとする。
図14図14は、線形1×4グループgにおける有意性符号化のために使用される情報の図である。
図15図15は、正方形2×2グループgにおける有意性符号化のために使用される情報を示す図である。
図16図16は、E[n]についてのマグニチュード符号化コンテキストを形成するために使用される近傍マグニチュード指数を表す図であり、E[n]がそのコードブロックの第1ラインに属する場合と属さない場合とについて別々に示す。
図17図17は、コードブロック内のグループの最初の列を除く、線形1×4グループ(上)と正方形2×2グループ(下)とについて分散型のマグニチュード符号化において含まれる量を示す図である。
図18図18は、サブバンドを影付きで示す「プレシンクトバンド」に縦に区画した、例2レベルMallat(左)および3レベルDFS(右)DWT構造である。
図19図19は、コードブロック「フラッシュセット」の8つの変換されたラインを生成するための入力走査ラインにおける垂直分解の2つのレベルを示す図である。5/3DWT解析リフティングステップおよび該5/3DWT解析リフティングステップが出力コードブロックラインと入力走査ラインとの間において作成する対応の依存性を示す。
図20図20は、8本の走査ラインをデコーディングする垂直5/3DWT合成ステップを示す図である。次の連続する第2コードブロック「フラッシュセット」からの符号化されたサブバンドラインに対するデコードされた走査ラインの依存性は、影付きで強調されている。デコードされたライン5~7は、第1および第2フラッシュセットからのサンプルを必要とする。
【発明を実施するための形態】
【0035】
JPEG 2000ブロック符号化アルゴリズムの概要
既存のJPEG 2000ブロック符号化アルゴリズムは、符号化パスのシーケンスに亘り各コードブロック内のサブバンドサンプルを処理する。これを簡単に復習しておくことが、次の章での、異なる、しかしながら関連する符号化パス構造のFASTブロック符号化アルゴリズムを説明するために、助けとなる。
【0036】
【0037】
[n]≠0であれば、ビットプレーンpに対してサンプルX[n]は「有意」であると言う。
【0038】
最も細かいビットプレーン(最高品質)はp=0に対応し、一方、最も粗い品質はp=K-1に対応し、ただし、Kは、コードストリームヘッダーに記録されたサブバンドに特有のパラメータによって決定される、任意のサブバンドに属するいずれかのコードブロックについてのビットプレーンの最大数である。
【0039】
各コードブロックについて、パラメータMstartは、関連するJPEG 2000パケットヘッダーを介して通信され、コードブロックの表現における抜けているビットプレーンの数と解釈される。JPEG 2000ブロックデコーダは、ビットプレーンp≧K-Mstartにおいてコードブロックにおける全てのサンプルが非有意であると期待することができる。同様に、有意サンプルを含む可能性のあるビットプレーンの合計数は、P=K-Mstartによって与えられる。
【0040】
JPEG 2000ブロック符号化アルゴリズムにおける第1符号化パスは、ビットプレーンp=P-1について有意性(significance)情報およびサイン(有意サンプルについてのみ)をエンコードする。この符号化パスは、「Cleanup」パスとして特定される。重要なことには、このクリーンアップ(cleanup)パスにおいて符号化された何らかの有意サンプルは、マグニチュード1を有している必要がある。
【0041】
各連続する細かいビットプレーンについて、「SigProp」(significance propagation)および「MagRef」(magnitude refinement)符号化パスとして特定された、3つの符号化パスが作成される。そして、合計で、以下の構造を有する3P-2の符号化パスがある。
Cleanup(p=P-1):ビットプレーンpにおける、全サンプルの有意性、プラス有意サンプルのサインを符号化する。
SigProp(p=P-2):プレーンpにおいて、既知の有意サンプルの非有意近傍にアクセスし、それらの有意性(およびサイン)を符号化する。MagRef(p=P-2):プレーンp+1に対して既に有意であったサンプルにアクセスし、M[n]の最下位ビットを符号化する。
Cleanup(p=P-2):ビットプレーンpにおける、有意性が未だ確立されていない全サンプルの有意性(およびサイン)を符号化する。
SigProp(p=P-3):…
MagRef(p=P-3):…
Cleanup(p=P-3):…

Cleanup(p=0):…
なお、エンコーダは、最終コードストリームに含まれる情報から、末尾における任意数の符号化パスを落としてもよい。実際には、エンコーダは、それらが落とされることを妥当に予測することができるならば、そもそもこのような符号化パスを生成する必要はない。
【0042】
標準的なJPEG 2000ブロック符号化アルゴリズムにおいて、全ての符号化パスは、4ラインストライプを有する、ストライプ指向性走査パターンを採用する。各ストライプの列は、次のストライプへ動く前に左から右へアクセスされ、一方、各ストライプ列内において、ストライプ列の4サンプルが上から下へ走査される。
【0043】
JPEG 2000ブロック符号化器は、クリーンアップパスにおける全てのシンボルについて算術符号化を採用しているが、SigPropおよびMagRef符号化パスにおける未加工の(符号化されていない)ビットを任意に放出するのみであり得る。非クリーンアップ(non-cleanup)パスのために未加工ビットが放出されるこのモードは、「算術符号化器バイパス」モード、または短縮して単に「BYPASS」モードと認識される。
本発明の本実施形態に基づくFASTブロック符号化アルゴリズムの鍵となる要素
符号化パス構造
【0044】
FASTブロック符号化器は、ビットプレーンpに関して定義された、Cleanup、SigPropおよびMagRef符号化パスと共に、符号化パス構造も採用する。しかしながら、各ビットプレーンpと関連付けられたCleanupパスは、M[n]≠0であるサンプルのマグニチュードM[n]およびサインを完全にエンコードすることが重要である。この情報は、コードストリームへ符号化パスを放出しても意味がないように、全ての前の(pよりも大きい)符号化パスと関連づけられているものを完全に含む。
【0045】
その結果、最初の放出符号化パスがCleanupパスである限り、先頭および末尾双方の符号化パスは、エンコーダによって落とされ(または全く生成されなく)てもよい。実際、最終コードストリームにおけるいずれかの任意のコードブロックのために3つを上回る符号化パスを実際に含むことは、エンコーダにとっては全く意味がない。図1は、FASTブロックエンコーダによって生成されてもよく、および/または、最終コードストリームへ放出されてもよい符号化パスを示す。
【0046】
デコーダの観点から、JPEG 2000パケットヘッダーを構文解析することにより回復されるMstart値は、コードブロックのための最初の利用可能符号化パスに関連付けられたビットプレーンインデックスp=K-Mstart-1を特定する役割を依然として果たしている。しかしながら、FAST Cleanupパスは、いずれかの任意のサンプルについての多重マグニチュードビットをエンコードする可能性があるため、Mstartを全てが0である先頭マグニチュードビットの数と解釈することができなくなる。エンコーダは、Mstartが各コードブロックのための第1放出符号化パスを正しく説明する、ということを保証することに慎重であるべきである。
【0047】
FASTブロック符号化器により生成されるSigPropおよびMagRef符号化パスは、互いに依存しておらず、直前のCleanupパスにのみ依存している。FASTブロック符号化器により生成されるSigPropおよびMagRef符号化パスは、JPEG 2000におけるのと全く同じ情報をエンコードし、その結果、Cleanup、SigPropまたはMagRefパスの末端における表現の切り捨てに関連する効果的な量子化は、FASTブロック符号化アルゴリズムが使用されるのか、または、標準的なJPEG 2000ブロック符号化器が使用されるのかにかかわらず同じである。
【0048】
SigPropパスからの全ての有意性および関連するサイン情報は未加工2進数として放出され、MagRefパスからの全てのマグニチュードリファインメント情報は未加工二進数として放出され、ただし、これらの未加工ビットストリームには、FF90h~FFFFhの範囲における誤りマーカー符号の発現を回避するためのJPEG 2000の要件に準拠したビットスタッフィング手順のみが行われる。
―――――――――――――――
実際、JPEG 2000未加工符号語セグメントにおけるビットスタッフィングは、FF80h~FFFFhの範囲のビッグエンディアン16進値を有するバイト対の発現を回避するが、ブロック符号化アルゴリズムは、一般的には、FF90h~FFFFhの範囲であるマーカー符号を回避すればよい。
―――――――――――――――
【0049】
FASTブロック符号化アルゴリズムにより採用されるMagRefパスは、符号ビットがリトルエンディアンビット順で未加工ビットストリームのバイトに詰められていることを除き、算術符号化器バイパスモード(短縮してBYPASSモード)において動作する、標準的なJPEG 2000ブロック符号化器のそれと同一である。すなわち、1バイトにおける第1符号ビットは、そのMSBではなくそのLSBにおいて発現する。
【0050】
FASTブロック符号化アルゴリズムにより採用されるSigProp符号化パスも、BYPASSモードで動作する標準的なJPEG 2000ブロック符号化器のそれと非常に類似し、以下の差異を有する。
1.再び、符号ビットがリトルエンディアンビット順で未加工ビットストリームのバイトに詰められる一方で、JPEG 2000符号化器は、ビッグエンディアンビット詰め順を使用する。
2.高さ3または高さ4のストライプについては、各ストライプ列に関連付けられた有意性ビットがまず放出され、次のストライプ列へ進む前に、関連付けられたサインビットが続く。
3.高さ2のストライプについては、ストライプ列の各対に関連付けられた有意性ビットがまず放出され、ストライプ列の次の対へ進む前に、関連付けられたサインビットが続く。
4.高さ1のストライプ列については、4つのストライプ列(4サンプル)の各グループに関連付けられた有意性ビットがまず放出され、4つのストライプ列の次のグループへ進む前に、関連付けられたサインビットが続く。
【0051】
これらの変更は、まとまって、元来のJPEG 2000方法よりも実施の利点を、特に、ソフトウエアに基づく実施について有している。なお、最後の3つの変更は、以下で説明するように、サンプルデータの他の観点から有意性情報を分離する原則、大きいスケールではCleanupパスについて採用する原則、に一致する。最後の3つの変更は、簡単なルックアップテーブルに基づく短時間でのデコーディングが可能となるように、慎重に作成される。最後の2つの変更は、短く幅の広いコードブロックが頻繁に生じると予測される用途、特に、低レイテンシ用途のためにのみ重要である他の用途のためには、2つ目の変更を延長して、全てのストライプの高さをカバーし最後の2つを除外するのが、適切である可能性がある。
【0052】
ブロック符号化アルゴリズム自体は別として、FASTブロック符号化器は、他のJPEG 2000コードストリーム構成またはそれらの解釈に影響を与えない。プレシンクト、パケット、タイル、変換、および全ての他のJPEG 2000要素は変更されないままである。特に、JPEG 2000パケットの構成は、従来のブロック符号化アルゴリズムが使用されるのか、または、FASTブロック符号化アルゴリズムが使用されるのかに関わらず、ブロック符号化器により作成される符号語セグメントに依存している。
【0053】
符号語セグメントは1シーケンスのバイトであり、その長さはパケットヘッダーを介して必然的に特定される。標準的なJPEG 2000ブロック符号化器は、全ての符号化パスを単一符号語セグメントに詰めてもよい(デフォルトモード)が、RESTARTモードにおいて、各符号化パスには、その自身の符号語セグメントが割り当てられており、一方、RESTART無しの1つまたは複数のBYPASSモードにおいて、SigPropおよびMagRef符号化パスには、総括的に符号語セグメントが割り当てられている。
【0054】
FASTブロック符号化器は、示唆されたBYPASSモードフラグおよび意味を持たないRESETモードフラグを除き、標準的なJPEG 2000ブロック符号化器について定義されたモードフラグの全てをサポートしている。3つ未満の符号化パスがコードストリームへ放出され、BYPASSが示唆されるため、図1に示すように、RESTARTモードフラグに応じて、立ち上がり得る符号語セグメントは2種類しかない。CAUSALモードは、全ての標準的なJPEG 2000ブロックビットストリームへ、または、全ての標準的なJPEG 2000ブロックビットストリームからの完全に可逆的なトランスコーディングを確保するために、オプションとして維持される必要がある。なぜなら、CAUSALモードは、SigProp符号化パスの解釈に影響するからである。
Cleanup Passの概要
【0055】
このセクションの残りを、FASTブロック符号化器のCleanupパスを説明することに充てる。先へ進む前に、エンコーダおよびデコーダについての概要ブロック図を提供することが助けとなる。後の説明を簡単化するため、本願でカバーされるFASTクリーンアップパスの複数の異なる変形例(variant)に対応する、複数バージョンにおけるエンコーディングおよびデコーディングブロック図を提供する。変形例は、以下のように2つの主な方法で特徴付けられる。
1.各変形例は、デュアルビットストリーム構造またはトリプルビットストリーム構造のいずれかを有する。デュアルビットストリーム構造は、圧縮の観点から、構想的により簡単であるが非常にわずかしか効率的でない。しかしながら、トリプルビットストリーム構造は、ソフトウエアおよびハードウエア最適化のためにより多くのオプションを提供するため、一般的に好まれる。デュアルビットストリーム構造は、1ビットストリーム内でVLCおよびMagSgnビットをインターリーブし、一方、トリプルビットストリーム構造は、分離したVLCおよびMagSgnビットストリームを提供する。
2.他の際立った特徴は、各有意サンプルについてのマグニチュード情報が1ビットストリーム(MagSgnビットストリーム)内に統合されているか、または、VLCビットストリームとMagSgnビットストリームとの間で分散されているかである。分散アプローチは、統計的冗長性を利用する機会を提供するのが若干少ないが、サンプル毎の依存性を低減または除去することにより、ソフトウエアデコーディングスループットを向上させ、ハードウエアデコーディングクロックレートを上昇させる。分散アプローチは、MagSgnビットストリームに関連付けられた最悪の事態データ速度も低減し、このことは、ハードウエア実施のためにより良好である。
【0056】
図2および図3は、統合されたマグニチュードを有するデュアルビットストリーム構造についてのエンコーダおよびデコーダのブロック図を提供する。図4および図5は、同様に、統合されたマグニチュードを有する、トリプルビットストリーム構造についての対応するブロック図を提供する。最後に、図6および図7は、分散されたマグニチュード情報を有するトリプルビットストリームの変形例についてエンコーディングおよびデコーディングの手順を示す。なお、ここでは、デュアルビットストリームおよび分散されたマグニチュード情報を有する変形例については明示しないが、ブロック図は、既に提供されたものから明らかである。これらのブロック図の要素は、以下のサブセクションにおいて説明されるが、「記憶」素子については、事前に明確化しておくのがよいであろう。
【0057】
記憶素子は、コードブロックのサンプルおよびいくつかの推定された状態情報を格納することができるバッファを表す。エンコード中に、記憶素子にサブバンドサンプルが入力され、その後、導出された量(有意性フラグおよびマグニチュード指数)をすぐに見出すことができる。デコーディング中に、デコーディングが進むにつれて記憶素子にはサブバンドサンプル、および導出された量(有意性フラグおよびマグニチュード指数)が漸進的に入力される。記憶素子は、全コードブロックについて全てのサンプルまたは導出された量を格納する必要はないが、物事をこのように概念化することが最も簡単である。記憶要件を以下でより徹底的に検討する。
Cleanupパスにおけるデュアルまたはトリプルのビットストリーム
【0058】
上記の通り、JPEG 2000コードストリーム構造との互換性のために、FASTブロック符号化器のCleanupパスは、既存の方法により関連する1つまたは複数のパケットヘッダーと繋がる長さを有する単一符号語セグメントを生成する。しかしながら、FASTブロック符号化器では、この符号語セグメントは、2つまたは3つのビットストリーム、すなわち、
A.前方へ延伸する適合的に符号化されたビットストリームと、
B.符号語セグメントの端部から後方へ延伸する未加工ビットストリームと、
C.いくつかの変形例において、符号語セグメントの開始から前方へ延伸する第2未加工ビットストリームと、に分割されている。
【0059】
「適合的に符号化された」という用語は、ここでは、何らかの方法でシンボル統計を学習し、これに適応する、コンテキスト適合型のエントロピー符号化器の存在を指す。対照的に、未加工ビットストリームは、誤りマーカー符号(以下を参照)を回避するための必須ビットスタッフィングは別として、単に詰められたビットからなる。様々な適合型符号化技術を採用することができ、それらのうち、本願では、特に注目される2つ、すなわち、a)JPEG 2000からのMQ算術符号化器と、b)JPEG-LSにより使用されるものと同様のMEL符号化アルゴリズムとを説明する。結局のところ、双方とも非常に類似した圧縮効率と類似の状態遷移パターンとを提供するが、MEL符号化アプローチは、より小さい状態機械を有するため、一般的に好まれる。
【0060】
図8は、デュアルビットストリーム構成を示す。図2および図3の対応するブロック図を参照すると、未加工ビットストリームは、ここでは、ライン毎にインターリーブされた、VLC有意性符号語、ならびに、マグニチュードおよびサインビットを含む。
【0061】
図9は、トリプルビットストリーム構成を示し、この構成では、VLC有意性符号語が、インターリーブされるのではなく、マグニチュードおよびサインビットから完全に分離(切断)されている(図4および図5参照)。トリプルビットストリーム構成は、効率性がわずかだが低い。なぜなら、2つの前方延伸ビットストリーム間の境界を特定するために、追加の信号伝達(インターフェース位置特定言語)が必要だからである。しかしながら、切り離され得る、中央で接触し得る、または重なり合いさえしてもよい、前方延伸ビットストリームと後方延伸ビットストリームとの境界が正しいデコーディングに干渉しない限り、この境界を明確に特定する必要はない。
【0062】
ここで、目的は、依然として、パケット生成に対するただ1つの符号語セグメントを提供し、既存のJPEG 2000規格との最大の互換性のための機構を解析しつつ、処理複雑性と符号化効率との間の様々な妥協点を表す様々な符号化技術を使用できるようにすることである。
【0063】
単一符号語セグメント内で2つの異なるビットストリームを使用することは、並行/平行処理を可能にすることにおいて顕著な利点を有する。FASTブロック符号化器に関連づけられた、適合的に符号化されたビットストリームを、他の1つまたは複数のビットストリームからは独立してエンコードおよびデコードすることができる。高度なデコーダの実施においては、適合的に符号化されたシンボルの一部または全ては、そのデコーディングが自身に依存する未加工シンボルの十分前にデコードされる可能性がある。エンコーダは、適合的エンコーディングステップを、コードブロックについて未加工ビットの一部または全てが放出され終わった後まで延期することができ、このことは、ソフトウエア実施において有益であり、ハードウエア展開のためにも十分有益であり得る。
【0064】
トリプルビットストリーム構成は、効率が少し低いが、より高いレベルの同時並行性さえ提供し、エンコーディング処理およびデコーディング処理の順序付けにおいてより高いレベルの柔軟性をサポートするという理由で好ましい。これらは、ハードウエアにおいて特に有益である。簡単に説明したように、符号化処理は、有意性情報をマグニチュードおよびサイン情報とは独立してエンコードまたはデコードし得るものである。これは、デコーダが、適合的に符号化されたビットストリームを、他の2つのビットストリームを参照せずに処理でき、VLC未加工ビットストリームを、MagSgn未加工ビットストリームを参照せずに処理できることを意味する。エンコーダは、デュアルビットストリームの変形例の演算をインターリーブすることにより課される同期化制限無く、希望であれば全ての3つのビットストリームを並行して生成することができる。トリプルビットストリーム構成のさらなる重要な利点は、エンコーダおよびデコーダの双方が、任意の有意性伝播(SigProp)またはマグニチュードレファインメント(MagRef)パスを、Cleanupパスと並行して、実質的なパス間遅延無しで処理できることである。
【0065】
これらの特性は、ブロック符号化器のハードウエア実施のためのサンプル処理当たりに保証された単一クロックを簡単化し、このことは、多重コードブロックの利用可能性と組み合わさり、低いクロックレートで非常に高いデータスループットを得ることができる。
【0066】
デュアルおよびトリプルビットストリーム構造が並行性および切断にもたらす利点は、ビットストリームが発展する順番からは独立しており、その結果、他の非常に近く関係した考えられるビットストリーム配置が当然ある。図7の配置は、以下の点から分かるであろう複数の理由から好ましい。
1.MagSgnビットストリームは、高いビットレートでビットストリームのうちの最大のものである傾向があるため、これを符号語セグメントの開始から前方へ延伸させることのいくつかの利点があり、生成されたバイトを各コードブロックの端部に再配置するために必要な労力を最小化する。
2.VLCビットストリームおよび適合的に符号化されたビットストリームの組み合わせられたサイズを確定的に抑制することができる。
a.有意サンプルのための全てのマグニチュード関連ビットがMagSgnビットストリームのみに見出される統合されたマグニチュード情報により、この抑制を、Smax<1020バイトを満たすように表すことができ、VLCビットストリーム内で採用される符号についての適切な選択の対象であり得、L=10ビットのインターフェース位置確定語(ILW)を用いて2つの前方伸長ビットストリーム間の境界を信号伝達することができるようになる。
b.VLCビットストリームとMagSgnビットストリームとの間の符号化されたマグニチュード情報を分散させる変形例について、VLCおよび適合的に符号化されたビットストリームの組み合わせられたサイズは上昇し、抑制を、Smax<2040バイトを満たすように表すことができ、VLCビットストリームと共に採用される符号のための適した選択の対象であり得る。これにより、L=11ビットインターフェース位置確定語(ILW)を用いて2つの前方伸長ビットストリーム間の境界を信号伝達することができる。
【0067】
Lビット(すなわち10ビットまたは11ビット)ILWを、その8MSBの最終バイトにおける発現と共に、符号語セグメントの末端に置くことは、末端「FFh」が回避される(JPEG 2000要件)という利点を有する。ILWにおける最下位L-8(すなわち、2または3)ビットは、符号語セグメントの第2最終バイトの最下位L-8ビット位置を占め、その他の16-L(すなわち、6または5)ビットは、次に、符号ビットのために利用可能である。
3.CBR用途におけるバッファーアンダーフローを回避するために2つの前方伸長セグメント間に追加バイトをスタッフィングする必要があるならば、多重符号語セグメントがコードストリームバッファへ放出された後でも、最後に生成された2つのバイトを読み取るだけで、スタッフィングの場所を簡単に見出すことができる。
【0068】
ここでの多重ビットストリーム配置の並行利点も、適合的に符号化されたビットストリームのために使用される適合型符号化アルゴリズムの選択からは独立している。次の2つのサブセクションにおいて、掘り下げて調査した2つの適合型符号化技術、MQおよびMEL符号化についての具体的な詳細および検討を示す。
【0069】
全体の符号語セグメントは、多重ISO/IEC画像符号化規格において見出される一般要件である、FF90h~FFFFhの範囲において誤りマーカー符号が無いということが要求される。すなわち、第1のバイトの16進数値がFFhであり第2のバイトの16進数値が90h~FFhの範囲にあるという特徴を有しているバイト対が、ないべきである。加えて、JPEG 2000規格は、誤りマーカー符号が作成されるリスク無く符号語セグメントを後から再配置できるように、符号語セグメントの末端バイトはFFhであってはならないということを要求している。JPEG 2000において、また、JBIG2においても使用されるMQ算術符号化器は、誤りマーカー符号を放出することができない特性を既に有している。
【0070】
MEL符号化の場合について以下で説明するように、他の適合型符号化アルゴリズムについては、ビットスタッフィングを別途導入して、誤りマーカー符号を回避する必要がある。
【0071】
前方伸長未加工ビットストリームについては、JPEG 2000ブロック符号化器のBYPASSモードにおいて生成される未加工ビットストリームと同じ方策を用いて誤りマーカー符号が回避される。具体的には、放出されたFFhに続くバイトは、7つしか有効バイトを含んでおらず、その最上位ビット位置に0がスタッフィングされている。
【0072】
Cleanup符号語セグメントの端部から後方伸長する未加工ビットストリームは、以下のように誤りマーカー符号を回避する。ビットは、最下位ビット位置から始まるバイトにビットを詰める放出未加工操作を介して、未加工ビットストリームへ符号化手順から放出される。バイトが組み立てられると、最後に放出されたバイト(無ければ0)と組み合わせられて、16ビットビッグエンディアン・アンサインド整数Vを形成する。エンコーダが
(V&7FFFh)>7F8Fh
を見出すと、次に、Vの最上位ビットを、新しく生成されるバイトを放出する前にリセットし、その後、除去されたばかりのビットが次のバイトの最下位ビットとなるように放出未加工(emit-rraw)へ送られる。
【0073】
当然ながら、上記ビットスタッフィング方策と同等の迅速な実施もある
―――――――――――――――
ソフトウエア実施のために、全てのビットスタッフィング手順を、効率的にベクトル化することができ、その結果、個々のバイト指向の試験は必要無い。
―――――――――――――――
デコーダは、バイトを(逆向きに)未加工ビットストリームから読むため、同じ条件を監視してスタッフィングビットを除去する。
【0074】
交互ビットスタッフィングアプローチが考えられ、このアプローチにおいて、試験される条件は、単に、
(V&7F80h)≠0
である。
【0075】
このアプローチは、圧縮効率もわずかながら低減される代わりに、極めてわずかながら簡単である。
【0076】
ビットストリーム間のインターフェースにおいてそこに誤りマーカー符号が確実に生成されないようにすることも注意しなければならない。このため、エンコーダは、追加バイト、または、フリップ不使用ビットを、ビットストリームのいずれかの末尾に挿入する必要がある場合もある。
【0077】
デュアルビットストリーム構成については、エンコーダは、その最初のステップの通り、スタッフィングビット(すなわち0)を後方伸長未加工ビットストリームへ放出することにより、符号語セグメントの最後のバイトがFFhではないという要件に対処し、このスタッフィングビットは、任意の有効ビットよりも前にデコーダにより消費される。
【0078】
トリプルビットストリーム構成のためには、初期スタッフィングビットは不要である。なぜなら、後方伸長VLC未加工ビットストリームは、符号語セグメントの最後から2番目のバイトの最後の16-L(すなわち、6または5)ビットから開始するからであり、この最後のL(すなわち、10または11)ビットは、FFhと同じ大きさであり得ない最終バイトを有するインターフェース位置確定語により占められるからである。ビットスタッフィングおよびビットアンスタッフィングアルゴリズムの目的で、符号語セグメントの最後のLビットは全て1であったとして処理され、これにより、エンコーダは、インターフェース位置確定語に挿入されることになるLビット値に対する何等かの依存性無しで、全てのビットストリームのために、ビットスタッフィングを行い、完成したバイトを生成することができる。
【0079】
実際の実施では、このことは、エンコーディングの前にVLC未加工ビットストリームへ複数のL個のプレースホルダビット(全て1に等しい)を実際に放出し、全てのエンコーディングが完了した後でILW値によりこれらのビットを上書きすることによって達成されてもよい。一方、デコーダは、まず、ILWを抽出してSを決定することができ、対応するLビットを1で置換し、次に、全てのS末尾バイトをVLC未加工ビットストリームと関連付けられたビットアンスタッフィング機構へ送る。このアプローチでは、L個のプレースホルダビットは、VLC未加工ビットストリームから消費され実際のブロックデコーディングが開始する前に破棄されるであろう。
【0080】
トリプルビットストリーム構成については、デコーダは、MagSgnビットストリームの端部に単一FFhを、そのビットを取り込んでマグニチュードおよびサイン情報をデコードする前に、常に付加する。したがって、エンコーダは、任意の末端FFhを破棄して、2つの前方伸長ビットストリームセグメント間のインターフェースにおいて誤りマーカー符号が発生する何らかの可能性を回避することができ、一般的にはするべきであり、任意の末端FFhは、破棄されない場合はMagSgnビットストリームへ放出されることになる。
【0081】
CBR制約を伴うJPEG-XS用途などのいくつかの用途では、スタッフィングバイトをCleanup符号語セグメントへ導入して通信バッファがアンダーフローしないようにする必要がある場合がある。このことは、ここで説明するデュアルまたはトリプルビットストリーム構造によって簡単に達成される。スタッフィングバイトを、正しいデコーディングに干渉することなく、前方伸長および後方伸長ビットストリーム間に導入することができる。トリプルビットストリーム構成のためには、インターフェース位置確定バイトを介して特定された位置において、第2前方伸長ビットストリームの直前にスタッフィングバイトを挿入することが強く推奨される。また、このようなスタッフィングバイトが、実際に何らかのビットをデコーディングすることなく、検出および安全に除去することが容易なパターンである、FFh 80h FFh 80h…に従うことも推奨される。
MQ適応型算術符号化
【0082】
算術符号化は、非常に強力で柔軟な技術である一方、FASTブロック符号化器は、適合型符号化を使用して、AZCシンボルとして知られている2進数シンボルσAZC[i]の可変長ストリングを表す。以下に説明するように、これらのサンプルは、全て、同一の(全てゼロの)近傍を有するため、異なる統計値を有するサブクラスにそれらを分離する先験的な方法は無い。したがって、適応型MQ符号化コンテキストを1つ採用すればよく、これにより、エンコーディングおよびデコーディング実施が簡単化される。
【0083】
MQ符号化器は46の到達可能状態を有する状態機械を採用し、ただし、状態遷移は、繰り込みイベントにおいてのみ起こる。繰り込みは、LPS(least-probable symbol)が符号化される場合は常に起こり、この場合、LPSは、ほぼ例外なくσAZC[i]=1に対応する。加えて、LPSシンボル間に、典型的には1回のMPS(most-probable symbol)繰り込みイベントが起こる。したがって、1で終了する0AZCシンボルの各ランについておよそ2つの状態遷移を予測できる。実際に、MQ符号化器は、「スキュー符号化器」まで追跡され得る系統を有する、ランレングス符号化器の1種と理解され得る。これは効率的ランレングス符号化アルゴリズムに他ならない。
【0084】
MQ符号化アルゴリズムの詳細がここで繰り返される必要はないが、FASTブロック符号化器により採用されるデュアルビットストリーム構造は、MQ終了方策の選択に影響を及ぼすことを指摘しておく。最も簡単なアプローチは、周知のイライアス終了方法論を使用することであり、この方法論では、MQ符号化器の間隔ベースレジスタCは、214だけ増大され(MQ間隔長レジスタAは16ビット幅であり)、バイトは、この追加ビット14が排出されるまで、符号化器から排出される。最後に排出されるバイトがFFhであれば、次に、1つの追加バイトを、誤りマーカー符号を回避するために、MQとCleanupビットストリームセグメントの未加工ビットストリームとの間に放出される必要がある場合がある。
【0085】
正当化されにくいが複雑性においてより高いコストを払えば、真に最適なMQビットストリーム終了も当然可能である。最短MQ終了は、多くの場合、それらの情報ビットのいくつかを未加工ビットストリームと共用し、上記イライアス終了アプローチに対して、全Cleanup符号語セグメント長においておよそ6ビットの平均的な低減が達成される。
MEL適合型符号化アルゴリズム
【0086】
MELCODEは、適応型ランレングス符号として最も簡単に理解される。したがって、説明しやすいように、AZCシンボルストリームσAZC[i]が、まずランレングスRAZC[j]のシーケンスに変換され、ただし、各ランは、次の1に先行する0の数を表しているものとする。4コードブロックサンプルの各グループのために最大で1つのAZCシンボルがあり、コードブロックは4096個を上回るサンプルを有していてはいけないため、符号化される必要のある最大ランレングスは、全く非有意のコードに対応する1024ブロックであり、それゆえ、通常は起こるはずがないが、それにもかかわらず、その可能性はあり得る。これにより、完全に空のコードブロックを表すために、非空符号語セグメントを使用でき、これは、非効率的であるが、CBR用途におけるバッファーアンダーフローの回避のために有用であり得る。
【0087】

表1:MEL符号化状態機械
【表1】
【0088】
MELCODEは、ランレングスRAZC[j]についての適合型ゴロム符号であり、ただし、閾値TMEL[k]はゴロムパラメータの役割を果たす。適合を無視すると、符号化手順は以下のように要約される。
R≧Tである間、1(「hit」)を放出し、RからTが引かれる。
0(「miss」)を放出し、Rの最下位ビットからE個のビットが続く。
【0089】
指数関数的に分散された情報源のための最適ゴロムパラメータは、その平均値の半分よりも少し大きい。したがって、典型的なランRは、missが続く1つのhitによって符号化されるはずである。このことは、適応型状態機械が各ランにつき1つのhitと1つのmissとを(平均して)経験するはずだということを示唆し、このことは、表1に示ように各hitの後に状態を増加させ、各missの後に状態を低減することにより達成される。
【0090】
完全なMEL符号化アルゴリズムは、以下の通りである。
Initialize k=0
Foreach j=0,1,…
Set R←RAZC[j]
While R≧TMEL[k]
Emit“1” (“hit”)
Update R←R-TMEL[k]
Update k←min{k+1,12}
Emit“0” (“miss”)
Emit EMEL[k] LSB’s of R
Update k←max{k-1,0}
【0091】
アルゴリズムはランレングス符号化に関して表現される一方で、MQ符号器がランにおいて動作する状態機械としてリキャストされるのと全く同様に、個別シンボルにおいて動作する適合型状態機械と常にリキャストすることができる。個別AZCシンボルのためのエンコーダとして、ここでのMEL符号化器は6を上回る符号ビットを生成できないが、多くの場合、ビットを全く生成しない。MQおよびMEL双方の符号化アプローチは、ほぼ同じ数の状態遷移を示すが、MEL符号化器の利点は、非常に小さい状態機械を有することである。マルチシンボル符号化の目的で、MQ符号化器の状態機械は、MQ状態インデックスおよび16ビットAレジスタの双方からなると考えることができ、一方、MEL符号化器は、たった4ビットの状態インデックスを有する。少なくともソフトウエア実施においては、ランのエンコーディングおよびデコーディングを駆動するために小さいルックアップテーブルを使用することが望ましく、多くの場合、完全なランをエンコードまたはデコードするためにはシングルルックアップで十分である。
【0092】
MEL符号化器により放出される複数のビットは、MSBから始めてLSBまで作業されて、ビッグエンディアンでの方法で複数のバイトに詰められる。また、誤りマーカー符号の発現を防止するために、FFhに続く任意のバイトのMSBに0ビットが詰められる。
【0093】
大抵の場合は、コードブロックにおける最後のAZCシンボルは0であり、その結果、最終ランは実際に「オープン」であり、これは、より大きいランをエンコーディングすることはAZCシンボルの正しいデコーディングに干渉しないことを意味する。加えて、MEL符号化器により生成される最終バイトは、多くの場合は、1または複数の未使用LSBを含む。これ点を考慮して、MEL符号化されたビットストリームのために様々な終了方策を工夫することができる。MQ符号ビットストリームと同様に、MELビットストリームに属するバイトは、正しいデコーディングが保証される限り、Cleanup符号語セグメント内において、未加工ビットストリームに属するバイトに部分的に重なってもよい。
【0094】
FASTブロック符号化器の様々なビットストリームにおけるビットおよびバイトについてのシーケンス化の概要は、鍵となる動作原理を変えることなく、様々な方法で変更され得る。例えば、後方伸長MEL符号ビットストリームを、前方伸長未加工ビットストリームに接触するように配置することができる。MEL符号ビットストリームにおけるビットはリトルエンディアン順に詰めた状態で、未加工ビットストリームにおけるビットをビッグエンディアン順に詰めることができる一方で、以前として2つのビットストリーム間のインターフェースにおける終了方策を可能にすることができる。しかしながら、リトルエンディアンビット詰め順は、ソフトウエア実施のための利点をもたらす傾向があり、それゆえ、適合的に符号化されたビットストリームよりも典型的には大きい未加工ビットストリームのために、リトルエンディアン順を採用することは意味がある。
Cleanupパスグループおよび走査パターン
【0095】
FASTブロック符号化アルゴリズムの重要な特性は、Cleanupパスについての有意性情報が複数のグループに集められ、他の情報よりも前に符号化されていることである。有意性の効率的な符号化は、特に比較的低いビットレートにおいて、非常に重要であり、コードブロックにおけるどのサンプルが有意(すなわち、非ゼロ)であるかを特定して符号化されたビットの半分以上が消費されてもよい。FASTブロック符号化器は、決まったセットのVLC符号語を使用して1つのグループにおける全てのサンプルの有意性(または、その他)を1度で特定する。加えて、FASTブロック符号化器は、AZC(All-Zeroコンテキスト)グループとして知られる特定グループのサンプルを、全体として非有意であろうと特定し、適合型(MQまたはMEL)符号化エンジンは、各AZCグループが実際に全体として非有意であるかどうかを効率的にエンコードするために使用される。
【0096】
グループがこのような重要な役割を果たすため、それらのサイズおよび配列は重要である。経験的な証拠は、サイズ4のグループが複雑性と符号化効率との間の最良の妥協点を提供することを強く示唆している。より小さいグループでは、適合型AZCグループ符号化は、より効果的になる傾向があり、VLC符号語は小さくできる。より大きいグループでは、より多くのサンプルの有意性を1度で符号化することができるが、小さい表で管理するにはVLC符号語が長くなり過ぎる。
【0097】
本願では、それぞれ4サンプルを有する2種類のグループに基づいた、FASTブロック符号化アルゴリズムの変形例を説明する。
1.線形(または1×4)グループは、単一走査ライン内において水平に隣接する4つのサンプルからなる。コードブロック幅が4分割されない場合、各走査ライン内の最後のグループにゼロ値のサンプルがパディングされる。
2.正方形(または2×2)グループは、連続する2つのコードブロック行の1つのストライプから続く2つの列からなる。幅または高さが2分割されないコードブロックには、簡単化のため、同じく、単に0がパディングされている。
【0098】
これらの異なる2つのグループ構造(および潜在的にはその他)を、サンプルの再配置と同等の対象と考えることができ、要するに、符号化を目的としてサンプルがアクセスされる順、すなわち、走査パターンにおける変化となる。図10および図11は、上記で特定された2つのグループ構造と関連付けられた走査パターンを示す。いずれの場合も1グループは走査順において連続する4つのサンプルからなり、抜けたサンプルには0がパディングされている。0パディングは非効率性を伴うが、サブバンド境界で切り捨てられるコードブロックを取り扱う必要がある実施を簡単化する。明らかに、2×2の正方形のグループ構造は、コードブロック走査ラインの各対を2倍の幅を有する1つの走査ラインにインターリーブすることにより、1×4線形グループ構造に変換される。
【0099】
直線グループ構造は、コードブロックがライン毎に符号化されるという利点を有し、このことは、アルゴリズムの全体のレイテンシを最小化するという潜在性を有する。一方、正方形グループの利点は、小さい幅を有するコードブロック、例えば、32×32コードブロックで作業する場合、高いスループットのソフトウエア実施により適していることである。セクション0に示す圧縮性能結果は、2×2グループ構造が1×4線形構造よりも若干良好に動作する可能性があることを示唆している。
有意性符号化
【0100】
上述の通り、有意性は、グループベースで符号化されている。各グループgは、グループにおける任意のサンプルが有意であれば1であり、それ以外は0である2値の有意性状態σを有する。加えて、グループgは、0~15の範囲において4ビット有意性パターンρを有し、(走査順にLSBからMSBまで)これらビットの各々は、グループにおける対応のサンプルが有意であれば1である。明らかに、σ=0⇔ρg=0である。
【0101】
有意性符号化を目的として、各グループには、走査順にアクセスされて、前のグループと関連付けられた有意性情報にのみ依存する符号化コンテキストcが割り当てられる。これは重要である、なぜなら、それにより、マグニチュードおよびサイン情報より前に有意性をデコードすることができるからである。これにより、エンコーダおよびデコーダ双方の少なくともソフトウエア実施において、計算のスループットが向上し、SigPropおよびMagRef符号化パスをCleanupパスと平行してエンコードおよびデコードすることもできる。
【0102】
=0であるグループは、All-Zero-Context(AZC)状態にあるといわれる。実際面では、これらは因果関係を示す近傍が全て非有意であるグループがあり、これが用語AZCの説明となっている。適合型符号化は、セクション4.4(MQ符号化)および0(MEL符号化)において上記で説明された通り、AZCグループの有意性σを符号化するためにのみ採用される。具体的には、シーケンスにおける各AZCグループに関連付けられた2値のシンボルσは、連結されて、可変長2値のストリングσAZC[i]を形成し、これに対して上記可変符号化技術の1つを行う。AZCシンボルストリングのエンコーディングおよびデコーディングは、他のエンコーディングまたはデコーディングステップと同期化される必要はない。
【0103】
非AZCグループ、および有意(すなわちσ=1)であるAZCグループについて、有意性パターンρは、可変長符号化(VLC)を用いてエンコードされ、結果として生じる符号語を未加工VLCビットストリームへ直接放出し、ここで、これらには、前述のビットスタッフィング手順のみ行われる。個別のセットのVLC符号語は、各グループコンテキストcのために使用される。効率的実施は、VLC表を使用することができる。この表のエントリは、後続のグループのためのコンテキストラベルの生成を簡単化するために定式化される。
【0104】
上述の通り、有意性情報は、マグニチュードおよびサイン情報の一部または全てとは別に符号化され/デコードされ、このことは、切断の程度をFASTブロック符号化器の実施に導入する。本願では、有意サンプルについてのマグニチュードおよびサイン情報をエンコードする二進数を指すために「MagSgnビット」という用語を使用することが役立つ。図8のデュアルビットストリーム構成により、VLC符号語およびMagSgnビットは、図2に示すように、1行のグループに基づいて(すなわち、1×4線形グループのためにはライン毎、または、2×2正方形グループのためにはラインの対毎に)、単一未加工ビットストリーム内においてインターリーブされる。すなわち、コードブロック内のグループの各行のために、グループ有意性符号化に関連付けられた全てのVLC符号語は、グループのその行における有意サンプルのためにMagSgnビットが放出される前に、未加工ビットストリームへ放出される。図12は、これらの概念を示す。
【0105】
図9のトリプルビットストリーム構成によれば、有意性情報のエンコーディングおよびデコーディングは、マグニチュードおよびサインビットからは完全に切断され、エンコーダおよびデコーダの双方においてエンコーディングおよびデコーディングの動作のシーケンス化において大きい柔軟性を提供する。この構成についての情報の流れを図13に示す。
【0106】
先述の通り、FASTブロック符号化器の重要な変形例は、実際には、VLCとMagSgnビットストリームとの間でマグニチュード情報を分散させる。この場合、VLCビットは増大されるが、図においてこれを詳細に示すことは不要に混乱させることである。
線形グループのグループ有意性コンテキスト
【0107】
ここで、グループ有意性コンテキストcの具体的セットを説明する。該グループ有意性コンテキストは、線形1×4グループで動作する場合、現在の実施において使用される。図14に示すように、ρg-1が左のグループの有意性パターンを示し(無ければ0)、σ が左のサンプルの有意性を示し、σ ppが2つの左のサンプルの有意性を示し、σ ~σ が前の走査ライン上のグループg上を中心とした6つのサンプルの有意性(無ければそれぞれ0)を示しているとする。
【0108】
次に、コードブロックの第1走査ラインについては、

であり、一方他の全ての走査ラインについては、

である。
【0109】
の実際の数値は、選択されたにもかかわらず重要ではない、なぜならそれらはハードウエアおよびソフトウエアにおいて効率的に計算され得るからである。標記a|bは、ここでは、二進数aおよびbの論理ORを意味する。コードブロックにおいて全てのラインが利用可能なコンテキスト7および0を有する、合計で8つのコンテキストがある。コンテキスト0は、コンテキストを形成するために使用されるサンプルの全てが非有意、すなわち、AZCコンテキストであることを常に意味する。逆に、コンテキスト7は、コンテキストを形成するために使用されるサンプルの全てが有意であることを意味する。非初期走査ラインに関連付けられたコンテキストは、実質的に2つの二進数から形成され、そのうちの一方は、グループの最初のサンプルが有意近傍を有する場合は1であり、他方は、グループの最後のサンプルが有意近傍を有する場合は1である。
【0110】
ソフトウエアにおいてデコーダは、VLC表エントリについて適切な構造を仮定すれば、前の走査ラインにおける有意性状態の単純関数から計算される(ベクトル演算を用いて計算され得る)、前のグループのVLC表のマスク処理された出力との論理ORされた索引および未加工ビットストリームからの次の6ビットを用いて、全てのコンテキストを含む単一VLCルックアップテーブルに索引付けすることができる。このことは、非常に高いデコーディングスループットにつながり得る。エンコーダは、高度に平行なバイト指向性ベクトル演算を用いてそれらのコンテキスト情報を全て計算することができるため、本質的により簡単である。
正方形グループのためのグループ有意性コンテキスト
【0111】
2×2正方形グループ構造によると、本実施において使用される有意性符号化コンテキストを図15に示す。この場合、最初のライン対、ここでは前の走査ラインの有意性は利用できない、については完全に分離したVLCコードブックが使用されることが好ましく、この場合のために8つの別のコンテキスト、そして走査ラインの非初期対内で見出されるグループのためにさらに別の8つのコンテキストを有する。
【0112】
グループgが走査ラインの第1対において見出される第1の場合について、グループコンテキストは、走査順(図12参照)において先行する4サンプル、ここではσ p1~σ p4として特定され、gがコードブロックにおいて第1グループにあればこれらの全ては0だと考えられる、の有意性を用いて形成される。この場合のグループコンテキストは以下のように得られる。
【0113】
全ての他のグループについて、有意性符号化コンテキストは、操作順における前の2つのサンプル、すなわち、σ p1およびσ p2の有意性を、前の走査ライン上の4つの近傍サンプル、図15においてσ ~σ として特定される、の有意性と共に用いて、形成される。単純に定式化されたものの1つを、グループコンテキストのために採用してもよい。
または
【0114】
双方のコンテキストラベル定義を、ソフトウエアおよびハードウエアにおけるエンコーディングおよびデコーディングの間の効率的な形成のために、受け入れることができる。
グループ有意性パターンの可変長符号化
【0115】
ここで、適合的に符号化されたビットストリーム内で有意であると特定された非AZCグループおよびAZCグループのための有意性パターンをエンコードするために使用されるVLC符号についての具体的な情報を提供する。
【0116】
分離したVLC表は、各コンテキストcのために定義される。これらの各々は、15符号語しか有していないc=0(AZCコンテキスト)である場合を除き、16符号語を有する。なぜなら、グループにおける少なくとも1つの有意サンプルの存在は、既述の通り、適合的に符号化されたビットストリーム内で既に符号化されているためである。符号語長さは、6ビットに制限され、その結果、コンテキスト当たりたった64エントリを有するルックアップテーブルを用いてデコーディングを達成することができる。
【0117】
VLC表は、原則的に、各符号語の長さによって定義されている。なぜなら、適切なセットの符号語は、各コンテキストにおける符号語長さのセットから常に導出され得るからである。符号語のいくつかの選択により、ルックアップテーブルの代わりにVLC符号の直接計算が可能な場合もある。これを可能にする1つの非常に簡単な構造は、AZCコンテキストを除き、グループにおける各サンプルの有意性をその自身の符号語ビットに単にマップすることであり、この場合、符号語の最初の2ビットは、グループにおいて(走査順に)最初の有意のサンプルのインデックスfを特定し、これに、グループにおける各後続のサンプルの個々の有意性を特定する3-fビットが続く。この(基準)選択のための符号語長さを、表2に示す。
表2:AZCコンテキストにおける初期ゼロのランの符号化と個々のビットのその他の各サンプルの有意性への割り当てとに互換性を有する、VLC符号語長さの単純集合。
【表2】
【0118】
VLC符号語長さの良好な集合を生成するため、符号語当たり最大6ビットに制約した上で、周知のハフマン構造を用いて1ビット/ペル~6ビット/ペルの範囲のビット率で圧縮された多数の自然画像の統計値を集めて、最適な長さを見出した。
表3:1×4グループ構造のためのVLC符号語長さの最適化された集合
【表3】
【0119】
線形1×4グループについて、導出された符号語長さを表3に示す。これらの符号語長さは、表2の符号語長さよりも実質的に優れ、動作条件の全範囲に亘り、同じビット率で、PSNRにおける0.2~0.5dBの範囲において典型的に向上する。なお、直線グループについて、コードブロックの初期ラインおよび非初期ラインの双方に対して、合計で丁度8つのコンテキストを有するVLC表の1つの集合しか使用しない。これは機能する、なぜなら、第1ラインはより小さいコンテキスト情報を利用可能であり、それゆえ、多くのコンテキストが要求されるわけではなく、それらの重要性は、第1ラインが典型的にはコードブロックサンプルの非常に小さい割合しか占めないという事実により減少される。
【0120】
2×2正方形グループ構造のためには、2つの別々の、つまり、1つは第1ラインペアにおいて見出されるグループのため、またもう1つは非初期ラインペアにおいて見出されるグループのためのVLC符号語の集合が開発される。最適化された符号語長さは、表4および表5において報告され、ただし、後者は上記でc unbalとして特定された「非バランス」ラベルに対応する。最適化されたVLC符号語の使用は、2×2グループケースにおける圧縮性能に対して、1×4線形グループのためよりも重要でさえある。それぞれ最適化されたVLC符号語を用いる場合、2×2グループのための全体の符号化効率は1×4グループのためよりもわずかに高く、一方、表2の自明な符号語が使用される場合は、逆のことも真実であることが分かった。
表4:コードブロックにおけるグループの初期行内の2×2正方形グループのためのVLC符号語長さの最適化された集合
【表4】
【表5】
【0121】
異なる指向性を有するDWTサブバンド、または、おそらく、DWT階層における異なるレベルについて、別々に最適化されたVLC符号語表を用いることで、符号化効率を向上することができる、と期待されるかもしれない。実際に、このことは、いくつかの小さい恩恵を提供するが、実験によれば、これらの恩恵が典型的には全体的な符号化データレートの1%よりも小さいことが示唆され、このことは、表の数の拡張を正当化するには不十分な場合がある。
マグニチュード指数
【0122】
既述の通り、ビットプレーンpにおいて、サンプルX[n]のマグニチュードは、以下の通りであると考えられる。

また、サンプルは、M[n]≠0である場合は、有意であると考えられる。ビットプレーンpにおけるサンプルのための「マグニチュード指数」E[n]は、以下のように定義される。

ただし、Nは自然数(非負整数)の集合である。以下の表は、この定義を説明するのに役立つはずである。

【0123】
なお、ここで説明されるアルゴリズムは、マグニチュードを32ビット整数として表すことができるものとし、その結果、それらのマグニチュードが231を上回ることはない。しかしながら、より高い精度にさえこのアルゴリズムを拡大することは簡単である。
【0124】
ソフトウエアベースのエンコーダは、前もってコードブロックにおける全てのサンプルのマグニチュード指数を計算し、それらをメモリ(サンプル当たり1バイト)に格納することができる。なお、大抵のCPUは、マグニチュード指数を効率的に計算するために使用され得るインストラクションを含む。
マグニチュードおよびサイン符号化:前書き
【0125】
さて、有意であると知られているサンプルについてのマグニチュードおよびサイン情報の符号化に注目する。重要なことには、サンプルが有意であると知られているため、M-1≧0の値を符号化することで十分である。この場合、マグニチュード指数E-1≧0であり、また、以下の通りである。
【0126】
すなわち、E-1は、M-1という値を表すために必要とされるビットの最小数である。そうなるように、マグニチュード指数定義を詳細に工夫した。マグニチュード指数は、非自明な方法でビットプレーンpに依存し、このことは、有意サンプルのマグニチュードの効率的な符号化のために重要である。
【0127】
ここでの符号化方策は、効果的にMが1~2Ep-1の範囲にわたって均一に分散するため、E自体の値が一旦確立されると、関連するビットストリームへM-1のE-1の最下位ビットを放出すればよい。各有意サンプルのサインが均一に分散されると考え、それゆえ、未加工2進数としてサインビットを放出すればよい。
【0128】
という値を符号化する際にはより多くの注意が必要である。先述の通り、本願で説明したFASTブロック符号化アルゴリズムの変形例を、図6(エンコーダ)および図7(デコーダ)に示すように、マグニチュード情報の符号化が単一ビットストリーム内で統合されているか、または、VLCとMagSgnビットストリーム間で分散されているかに応じて分類することができる。特に、FASTブロック符号化器の分散された変形例は、Eを特定するために必要とされる情報の一部をVLCビットストリームへ動かす。
【0129】
以下のセクションでは、後続のマグニチュード指数の符号化を条件付けるための予めデコードされたマグニチュード値を用いて、指数およびmag-signビットの統合された符号化についてまず説明する。「連結されたマグニチュードおよびサイン符号化」において、分散されたマグニチュード符号化方法を説明する。
連結されたマグニチュードおよびサイン符号化
【0130】
場所nにおける有意サンプルについてのマグニチュード情報を符号化することは、その因果関係のある近傍のマグニチュード指数を集積することにより形成されるコンテキストに基づく。以下では、下付き文字pを全てのマグニチュードおよびマグニチュード指数から落とすが、ビットプレーン索引が示唆されるものとする。
【0131】
ここで説明される方法は、その1×4線形グループ構造に沿った、図10のラスター走査順に適している。2×2正方形グループについては、以下(分散されたマグニチュードおよびサイン符号化)で説明する分散されたマグニチュード符号化方策を使用する方がより一層シンプルである。
【0132】
非初期走査ラインについて、マグニチュード符号化コンテキストは、以下より形成される。

ただし、E[n]は、左側の近傍のマグニチュード指数(左側の近傍が無い場合は0)であり、E[n]は、上記近傍のマグニチュード指数(前の走査ラインが無い場合は0)であり、ENW[n]およびENE[n]は、前の走査ラインにおける、位置nの左上側と右上側との近傍(このような近傍が無い場合は0)に対応する。上付き文字W、NW、N、およびNEは、コンパス方位を示すことを意図している。コードブロックにおける第1ラインのために、以下を使用する。

ただし、EWW[n]は、2つ左側のサンプルのマグニチュード指数(何も無ければ0)である。これらの近傍構成を図16に示す。
【0133】
マグニチュード符号化コンテキストは、E[n]-1の値のための効果的な予測因子κ[n]を産出することを意図している。このことは、様々な方法によって得られ、その中でも、Esum[n]/4の量子化されたバージョンにより索引付けされる予測因子状態機械のファミリーを用いて実験を行った。しかしながら、圧縮効率と計算の複雑性との間の最善の妥協点は、以下の割り当てから得られることを最終的には見出した。

ただし、定数koffは4に設定されている。値3および5は、ほぼ効果的であることが分かったが、計算においてわずかに効率的でなかった。
【0134】
マグニチュードおよびサイン符号化は、以下のように2段階で進められると考えることができる。
Uステップ
【0135】
ここでは、アンサインド(すなわち「U」)予測残量を表すコンマ符号を放出する。
【0136】
具体的には、u[n]個の0が未加工ビットストリームへ放出され、1(「コンマ」)が続く。デコーダは、最初の1が生じるまでゼロを数えることにより未加工ビットストリームからu[n]を回復する。上記の通り、元々符号化されたサブバンドサンプルが32ビット整数(量子化後)を用いて表されている場合、E[n]≦32なので、u[n]は31を決して上回らないはずである。
Rステップ
【0137】
放出される必要のあるマグニチュードビットの数を以下のように決定した。

ただし
【0138】
まず、負であれば1、正であれば0であるX[n]のサインを放出する。次に、マグニチュード値M[n]の最下位m[n]ビットを放出する。
【0139】
なお、この手順を説明するために、有意サンプルのマグニチュードMは、以下を満たすことに留意する。

ただし、E-1≧0である。アンサインド予測残差がu>0であれば、デコーダは、E-1=k+uおよび2E-2≦M-1<2E-1が確実であり得るため、M-1の最下位E-2=k+u-1ビットは、その値を特定するために十分であり、デコーダは、潜在的な(implicit)最上位1を加減して、これらのmビットからM-1を回復する。u=0である場合、デコーダは、E-1≦k+uであることのみを認識しているため、0≦M-1<2k+uであり、これは、m=k+uビットが放出される理由である。
【0140】
この検討に基づき、場所nにおけるサンプルが「implicit-1」を有しているかどうかを特定しつつ、i[n]を認識することができる。
【0141】
ただし、デコーダは、κ[n]を形成し、次に、m[n]=κ[n]+u[n]を回復することに留意すべきである。ここでu[n]は、コンマ符号をデコーディングすることによりUステップにおいて取得されたものである。しかしながら、エンコーダとは異なり、Rステップにおいては、デコーダはマグニチュード指数E[n]も回復する必要がある。一般的な場合は、このことは、m[n]マグニチュードビットを未加工ビットストリームから回収して、M[n]-1の2値表示における最上位の1を見出すことができるように、する必要がある場合がある。このステップは、ハードウエアベースのデコーダのスループットを決定するクリティカルパスである可能性がある。なぜなら、E[n]の値は、次のサンプルのEsum値を形成するのに必要であり、これは、サンプルが有意である場合には、サンプルのRステップにおいて必要とされる。
【0142】
要するに、アンサインド予測残差u[n]は、近傍のマグニチュード指数を与えられる場合、E[n]の値を一部のみエンコードし、u[n]=0である場合にE[n]の回復を完了するためには、マグニチュードビット自体が要求される。
マグニチュード符号化のための密接に関連する代替案
【0143】
マグニチュード符号化のための上記方法は、効果的には、パラメータκ[n]を有する、M[n]-1のための指数関数的なゴロム符号であり、ただし、サインビットは実際にはコンマ(符号の1変数の部分)とマグニチュードビットとの間にインターリーブされている。なぜなら、このようにすることで、効率的なソフトウエアベースのデコーダの実施を簡単化することになるからである。
【0144】
上述の通り、このアプローチの1つの小さい欠点は、未加工ビットストリームからコードの全てのマグニチュードビットが回復されるまで、すなわち、Rステップが完了するまで、デコーダが後続のマグニチュード符号化コンテキストを形成するために必要とされるマグニチュード指数E[n]を通常は回復できないことである。
ライスマッピング
【0145】
代替方策は、サインド予測残差s[n]=E[n]-1-k[n]のκ[n]依存ライスマッピングを採用することである。
【0146】
ライスマッピングは、アンサインドマップド量r[n]を作成し、次に、これを、コンマ符号または決まったゴロム符号を用いて直接エンコードすることができるように、最も負の値が-kであり、最も正の値が31-kである、予測残差sの+veおよび-ve値をインターリーブする。このアプローチの潜在的な利点は、未加工ビットストリームから取り込まれることになるマグニチュードビットを待つ必要がなく、デコーダが、マグニチュード指数をE[n]=1+k[n]+s[n]からすぐに回復することができることである。すなわち、マグニチュード指数は、第2ステップが完了するのを待つ必要が無く、デコーディング手順の第1ステップから直接、因果関係のある近傍へ伝播され得る。これにより、ライスアンマッピング手順の小さいオーバーヘッドにもかかわらず、ハードウエアソリューションは、スループットを若干高めることができる傾向がある。一方、このアプローチは、ライスマッピング/アンマッピング動作を通常はルックアップテーブルを用いて実施する必要があるソフトウエア展開に対しては多少不都合である。さらに、実験によれば、これらの方法の圧縮効率が先行のセクションで記載した好ましいアプローチよりも若干劣ることが示される。
マグニチュードおよびサイン符号化のための代替ビット配置
【0147】
このセクションでは、上記で説明されたUおよびRステップにより放出されたビットのための代替配置を説明する。この代替配置は、上記配置の符号化効率と同じ符号化効率を有している。なぜなら、それは、放出されたビットの単なる再順序付けだからであり、言い換えると、この代替の表示のために全く同じ数のビットが必要とされる。
【0148】
u[n]の値に応じて、4つのケースを特定する。
・ケース1:u[n]>κ[n]。表6にまとめたこのケースでは、エンコーダは、1(コンマ)が続くu[n]個のゼロを放出し、M[n]のサインX[n]、そして、M[n]-1のκ[n]+u[n]-1=E[n]-2最下位ビットが続く。2E-2≦M-1<2E-1が分かっているため、このことが可能である。これは、u[n]>0である場合にセクション0によって放出されたのと全く同じコードである。
・ケース2:κ[n]≧u[n]>0。この場合、エンコーダは、1(コンマ)が続くu[n]-1個のゼロを放出し、そして、(d[n]=0で表される)単一のゼロが続き、M[n]のサインX[n]、そして、M[n]-1のκ[n]+u[n]-1=E[n]-2最下位ビットが続く。表6を参照。
・ケース3:u[n]=0、およびp[n]<κ[n]、ただし、p[n]=κ[n]-(E[n]-1)である。この場合、2k-p-1≦M-1<2k-pである。エンコーダは、1(コンマ)が続くp[n]個のゼロを放出し、そして、(d[n]=1で表される)単一の1が続き、M[n]のサインX[n]、そして、M[n]-1のκ[n]-p[n]-1=E[n]-2最下位ビットが続く。表6を参照。
・ケース4:u[n]=0、およびp[n]=κ[n]。この場合E[n]-1=M[n]-1=0。エンコーダは、1(コンマ)が続くκ[n]個のゼロを放出し、そして、M[n]のサインX[n]が続く。表6を参照。
表6:代替ビット配置の4つのケース。表は、各ケースについての条件、放出されるビット、およびその配置を示す。「NA」は、適用不可を意味し、そのフィールドについてはビットが放出される必要がないことを示す。
【表6】
【0149】
次に、デコーダに注目する。デコーダは、考慮される有意サンプルのコンテキストからκ[n]を評価する。次に、デコーダは、コンマ(1)が見出されるまでゼロの数l[n]を数え、ゼロの数l[n]は、u[n]、u[n]-1、p[n]、またはκ[n]であり得る。その後、デコーダは、以下のように進める。
・l[n]=κ[n]であれば、これは、ケース4であり、M[n]のサインビットX[n]を読み出すことによりデコーディングを進めることができ、M[n]-1=0である。
・l[n]>κ[n]であれば、これはケース1であり、ここでl[n]=u[n]であり、M[n]のサインビットX[n]およびM[n]-1のκ[n]+l[n]-1=E[n]-2LSBをビットストリームから読み取ることによりデコーディングを進めることができる。次に、デコーダは、M[n]-1の潜在的なMSBを追加する必要があるだろう。潜在的なMSBは2E-2であると分かっているため伝送されていない。
・l[n]<κ[n]であれば、これはケース2またはケース3のいずれかであり得る。デコーダは、コンマの後のビット、d[n]を調査することによりこのケースを特定することができる。ケース2については、d[n]=0であり、ケース3については、d[n]=1である。ケースに応じて、デコーダは以下のように進める。
○l[n]=u[n]-1であるケース2(d[n]=0)については、デコーダは、次に、M[n]のサインビットX[n]とM[n]-1のκ[n]+l[n]=E[n]-2LSBとをビットストリームから読み取る。次に、デコーダは、M[n]-1の潜在的なMSBを追加する必要があるだろう。潜在的なMSBは2E-2であると分かっているため伝送されていない。
○l[n]=p[n]であるケース3(d[n]=1)については、デコーダは、次に、M[n]のサインビットX[n]とM[n]-1のκ[n]-l[n]-1=E[n]-2LSBとをビットストリームから読み取る。次に、デコーダは、M[n]-1の潜在的なMSBを追加する必要があるだろう。潜在的なMSBは2E-2であると分かっているため伝送されていない。
表7:デコーダがこのセクションの代替ビット配置の4つのケースを特定する方法。この表は、各ケースについての条件、ビットストリームから読み取られるビットの数、および潜在的なMSBの存在を示す。
【表7】
【0150】
この方法の利点は、l[n]、および必要であればd[n]のデコーディングの直後に、指数E[n]を計算することができ、一方、上記配置は、M[n]-1のデコーディングの後はM[n]-1における末尾のゼロの数を数えることを要求する。デコーダは、E[n]が一旦分かると、M[n]デコーディングが終了するのを待たずに、この情報を因果関係のある近傍へ伝播してそれら近傍のデコーディングを開始することができる。パイプラインハードウエアは、指数E[n]が一旦分かると、後続のサンプルについてκを評価することにより、このセクションのビット配置から利益を得ることができる。
【0151】
ハードウエア実施についての別の利点は、E[n]を決定するために必要な全ての情報がビットストリームの底にある点であり、それゆえ、ビットを逐次的に処理でき、これにより、回路のデコーディングが簡単になる。
【0152】
ソフトウエア実施は、この配置からも利益を得られる。最新CPUは、パイプライニングを採用し、いくつかのインストラクションのレイテンシを、該いくつかのインストラクションを他のインストラクションに重ねることによって、隠すことができる。したがって、慎重に書き込まれたコードにより、E[n]が一旦利用可能になると、現在のサンプルをデコーディングするインストラクションは、次のサンプルをデコーディングするインストラクションに重なってもよい。
【0153】
この配置は、FASTブロック符号化器のクリーンアップパスのデュアルおよびトリプル双方のビットストリームの変形例に適用可能である。なぜなら、この方法は、有意サンプルのマグニチュードとサインとの符号化に関連するだけだからである。
線因果コンテキスト
【0154】
上記代替案の各々によって対処される問題は、有意サンプルのマグニチュードをエンコード/デコードするために使用されるコンテキスト(または予測因子)が走査順において先行するサンプルのマグニチュード指数に依存している、という事実から生じる。
【0155】
この問題に対処する簡単な方法は、前の走査ラインにおいて見出されるサンプルのマグニチュードにのみ依存するようにκ[n]の定義を変更することである。例えば、Esum[n]の定義を以下のように置換してもよい。
このアプローチでは、予測因子が全くなければ、最初の走査ライン上のマグニチュードが残る。
分散されたマグニチュードおよびサイン符号化
【0156】
FASTブロック符号化アルゴリズムの分散されたマグニチュード符号化の変形例では、有意サンプルのマグニチュード指数を発見するために必要とされる情報の一部がVLCビットストリームへ移動される。一例として、上述の1変数の符号化されたアンサインド予測残差u[n]をVLCビットストリームへ簡単に移動させることができ、同時に、VLCビットストリームはMagSgnビットストリームを参照せずにデコードされ得る、という重要な性質は損なわれない。デコードされたu[n]値を、有意サンプルのマグニチュード指数E[n]を回復するためにすぐに使用することはできない。なぜなら、MagSgnビットストリームにおいて見出されるマグニチュードビットに依存している可能性がある、以前のマグニチュード指数が分かっている必要があるためである。しかしながら、前もってu[n]値をデコードする能力は、クリティカルパスレイテンシを低減でき、デコーディングスループットを増加させることができる。
【0157】
このアプローチを線因果コンテキストに連結することにより、上述のように、マグニチュードデコーディングに関連付けられた全ての著しいサンプル間の依存関係を排除することができる。しかしながら、VLCビットストリームへ動かされ得るビットの最大数を慎重に抑制することが重要である。なぜなら、ハードウエアおよびソフトウエアの双方のエンコーダおよびデコーダの全体的な複雑性に影響が及ぶからである。
【0158】
次に、有意サンプルのマグニチュード(およびサイン)の分散符号化についての好ましいアプローチを説明する。このアプローチは、その1×4グループ構造での図10のラスター走査順およびその2×2グループ構造での図11のラインインターリーブ走査順の双方に適している。このアプローチは、各有意グループg、すなわち、少なくとも1つの有意サンプルを有する各グループについて、アンサインド予測残差uを1つだけ含む。
非初期グループ行についての分散Mag-Sign符号化
【0159】
コードブロック内の非初期グループ行、すなわち、1×4グループでの非初期走査ラインまたは2×2グループでの非初期ラインペアについてのuの符号化および解釈を説明することから始める。予測因子κ[n]は、前の走査ラインからのマグニチュード指数に基づき、グループgにおける各有意サンプルのために形成される。ここで、nは、走査順に、グループg内のサンプルを索引付けする。図17は、1×4および2×2グループ構造の双方について、この好ましい方法において予測因子κ[n]を形成するために使用される線因果指数E 、E 、E およびE を特定する。
【0160】
デコーダは、uをκ[n]に加えて上限
を対応するマグニチュード指数E[n]マイナス1のために形成する。すなわち
である。
【0161】
また、この制限は、グループにおいてただ1つのサンプルのみが有意であり、M[n]-1の2値表現における最上位の1の位置が潜在的である条件であるu>0の場合には厳格であることが要求される。特に、グループgのための「implicit-1」条件を、
のように定義し、グループgにおける各有意サンプルのために放出されるマグニチュードビットの数を以下のように定義する。
【0162】
MagSgnビットストリームは、走査順において各有意サンプルにアクセスすることにより形成され、サインビットをまず放出し、次に、M[n]-1のm[n]個の最下位ビットを放出する。
【0163】
グループの行についてのデコーディングは、3つのステップを含む。第1に、有意性パターンをデコーディング中にアンサインド予測残差uをデコードする。第2に、前の走査ラインからの有意性パターンρおよびデコードされたマグニチュードのみを使用して、予測因子κ[n]を決定し、この処理の間に、デコーダは、uを用いてm[n]およびiを発見する。最後に、各有意サンプルについてのMagSgnビットストリームからM[n]-1のためのサインおよびマグニチュードLSBを解凍し、任意のimplicit-1 iを再挿入する。
【0164】
これら3つのステップは、相互依存しているが、実質的には切り離されている。例えば、いずれかのグループで他のステップが行われる前に、コードブロックにおける全てのグループで第1のステップを行ってもよい。あるいは、第1のステップを、グループ毎に第2のステップの直前に行ってもよい。第2のステップをグループの行の全体に、これらのグループのいずれかに第3のステップを行う前に、行ってもよいが、これも必須ではない。一般的に、ソフトウエア実施は、ソフトウエア実施は、より分散されたアプローチ、ここでは各ステップは第2ステップへ動く前に多数のグループに対して行われる、から利益を得る傾向がある。なぜなら、これによりベクトルインストラクションの利用が簡単化され、レジスタ利用が向上されるからである。逆に、ハードウエア実施は、より分散されていない方策から恩恵を得る傾向がある。なぜなら、これにより、中間状態を保存するためのメモリーリソースの必要性が下がるためである。
【0165】
この方法は、ここでは別個のVLCおよびMagSgnビットストリーム(すなわち、FASTブロック符号化器のトリプルビットストリームの変形例)に関して説明されるが、同じ方策を、デュアルビットストリーム変数、ここではVLCビットおよびMagSgnビットがグループの行に基づいてインターリーブされる(線形グループについてはラインインターリーブ、正方形グループについてはライン対インターリーブ)、と共に使用してもよい。
【0166】
一般的に、グループgにおける各有意サンプルは、グループgと関連付けられた有意性パターンρと共に、線因果指数E 、E 、E およびE から導出され得る異なる予測因子κ[n]を有していてもよい。
【0167】
1×4線形グループと2×2正方形グループとの双方について、予測因子を割り当てる簡単かつ効果的な方法は以下の通りである。
【0168】
ここで、Pを、グループgにおける各有意サンプルのオフセットマグニチュード指数E[n]-1のための初期予測上限として理解することができる。Zは、オフセットであり、このオフセットにより、アンサインド予測残差uは、Pg>0である場合は-1くらいに小さい残差を効果的に表わすことができる。すなわち、デコーダがE[n]-1のために導出する境界U[n]は、実際にはP+(u-Z)に等しい。グループgにおけるただ1つのサンプルが有意である場合の選択P=0はより重要だと分かる。
【0169】
上記方策は、グループgにおける全ての有意サンプルのために共通の予測因子κを生成することを含むが、エンコーダおよびデコーダの双方において全て利用可能である、前のグループ行からのマグニチュード情報に基づいて、グループのために予測因子を形成する必要がある時点よりも十分前に、より効果的な位置特有の予測因子を導出することができる。グループにおける全てのサンプルのための有意性情報を、予測性能を最適化するために、(走査順において)その因果関係のある近傍と共に使用することもできる。
【0170】
次に、アンサインド予測因子uのためのVLC符号に注目する。1変数コード(別称:コンマ符号)を採用してもよいが、この場合の最大符号語長さは、本願で考えられる最高精度のためには約32であり、このような長い符号語を提供することは、ソフトウエアおよびハードウエア双方の実施の効率に悪影響を与える。その代わり、表8におけるいわゆる「uコード」が好ましい。uコードはコンマ符号として始まり、u=0、u=1およびu=2はそれぞれ符号語「1」、「01」および「001」を用いて表される。u=3およびu=4のための符号語は、プレフィックス「0001」を含み、u-3の最下位ビットが続く。全てのより大きいuの値は非常に稀れだということが分かり、そのため、これらには、共通4ビットプレフィックス「0000」に割り当てられ、u-5の5個のLSBが続く。このuコードは、サブバンドサンプルを36ビットまでの精度で表すのには十分である
表8:非初期グループ行のための、アンサインド残差uを符号化するために用いられるuコード。ここで、lおよびlは、プレフィックスおよびサフィックスの長さを表し、l+lは全体の符号語の長さを表すが、プレフィックスおよびサフィックスのビットは、実際にはグループ対毎にインターリーブされている。
【表8】
【0171】
なお、ここでの最短の符号語は、U[n]=P-Zに対応するイベントu=0に割り当てられている。したがってP>0である場合、この最短符号語は、選択U[n]=P-1に割り当てられる。イベントがU[n]=Pである可能性が高いことが期待されるかもしれないが、これは典型的なものではない。一つには、より小さいサンプル指数の方がより大きいサンプル指数よりも先験的には現実味があるからである。グループにおける全てのサンプルが有意(すなわちρ=15)である特定のケースでは、イベントU[n]=Pが実際にはより現実味があり、一方、全ての他の有意性パターンについては、U[n]=P-Zが最も現実味のある結果であることが分かる。ρ=15である場合、必要であれば、条件付きで、u=0のための符号語をu=1とを交換してもよい。つまり、エンコーダは、ρ=15であり且つu≦1である場合は常にuを1-uに変換する。この変換は、それ自身の逆を取ることであり、それゆえ、デコーダが同じ事を行う。実験によれば、この小さい変化のり点は、符号化されたサイズを約0.25%だけ低減するというものであり、これは、条件付き変換手順を導入することの複雑性を正当化するには十分でないかもしれないことが示唆される。
有意性ビットおよびUコードビットのペア毎のインターリーブ
【0172】
1対のグループに亘ってuコードのプレフィックス成分とサフィックス成分とをインターリーブすることが、特に、ソフトウエア実施のためには有効であることが分かる。具体的には、VLCビットストリームは、まず、1対のグループに割り当てられた有意性VLC符号語(空であり得る)を放出し、次に、上記対における各有意グループについてのuコードプレフィックスを放出し、最後に、上記対における各有意グループについての任意のuコードサフィックスを放出することにより形成される。これにより、ソフトウエアエンコーダのために、1回で1対のグループのための完全なuコードを生成するために小さいルックアップテーブルを使用することができる。ソフトウエアデコーダにとっては、1対のクワッドのためのuコードプレフィックスを一度にデコードするために小さいルックアップテーブルで十分であり、結合符号語の長さ、および、サフィックスの場所を非常に効率的に決定できる。有意性VLC符号語またはAZCシンボルを有しておらず、常に非有意であり、その結果、uコード成分も有していない追加グループを必要に応じて加えることにより、グループの各行はグループ対の総数に拡張される。
初期グループ行のための分散されたMag-Sign符号化
【0173】
コードブロック内のグループの初期行のためには、前の走査ラインからのマグニチュード指数を利用できない。このケースは、上記で展開した方法を用いて常に処理され得るが、E 、E 、E およびE は全て0とされる。
【0174】
しかしながら、このケースは、コードブロック高さが通常は小さい低レイテンシ用途においては重要な場合があるため、水平予測の形態を含む境界Uを符号化するための代替機構を採用することが好ましい。以前のとおり、Uは、「implicit-1」条件下では境界が厳格である必要があるということを除き、グループgにおける全ての有意サンプルのマグニチュード指数が
を満たす任意の境界であり、これを以下で説明する。
【0175】
ここで展開される代替機構は、同様に、予測因子とアンサインド残差uとを含むが、予測は、グループ毎に適合される基準値Bに関して形成される。具体的には
ただし、
【0176】
1つ以上の有意サンプルを有する連続するグループの収集のために、アンサインド残差uをUの連続する値間のオフセット(2)の差として理解することができる。なぜなら、この場合U=Ug-1+(u-2)であるためである。明らかに、uのためのいくつかの値は受け入れられないはずであり、このことは、以下で説明するようにBの値に依存するuのためのコードに反映される。ただ1つの有意サンプルを有するグループについて、上記関係はBを強制的に1にし、その結果、U=u-2は前のグループに依存性を有さず、分かる通り、uのためのB依存符号は、この場合2未満の値を表すことができない。特別な値B=0は厳密には重要ではない。なぜなら、それは、非有意グループに対応するからであり、非有意グループのために、u値は符号化されず、または、使用されないが、この特別の値をルックアップテーブルに基づく効率的実施を簡単化するために使用することができる。
【0177】
のためのB依存VLC符号を説明する前に、iフラグに関連付けられた「implicit-1」条件の決定について簡単に説明する。このフラグは、グループgの各有意サンプルのために放出されるマグニチュードビットm[n]の数を決定するためにUと組み合わせられる。implicit-1条件は、正確に1つの有意サンプルがグループgにある場合のみ起こり得るが、これは実際面では非常に一般的な条件である。この場合、既述のとおり、上記関係は、U=u-2を産出し、uは、必然的に2以上である。uがこの最小値2を超えると、implicit-1条件が生じる。すなわち、
【0178】
非初期グループ行について、グループgにおける各有意サンプルのために放出されたマグニチュードビットの数は、以下により与えられる。
また、MagSgnビットストリームは、走査順に各有意サンプルにアクセスすることにより形成され、まずサインビットを、次にM-1のm[n]個の最下位ビットを放出する。
【0179】
をエンコードするために、表9により定義されるB依存可変長コード(または「Buコード」)が採用される。このコードは、表8のuコードに基づいており、同じく9ビットの最大符号語長さを有し、さらに、サブバンドサンプルの精度が非常に高い。u-2がサインド予測残差の役割を果たすということに注目すると、u-2が負であるかどうか判断するためにサインビットが2または3ビットのプレフィックスに付加される|u-2|<Bである場合を除き、原則的に、uコードは、このサインド残差|u-2|の絶対値に適用されている。この符号語のプレフィックスは、長さが4ビットを超えることは決してないため、LUTに基づく効率的なデコーディング方策を展開することができ、4ビットの符号語プレフィックスと共に、2ビットのB値により索引付けされ、次のグループが2個未満の有意サンプルを有している場合にのみ補正が必要となる、次グループのB値、およびu境界、サフィックス長さ、プレフィックス長さを返す。
【0180】
非初期グループ行について、有意性VLC符号語およびBuコードビットは、1対のグループに亘ってインターリーブされる。以前のとおり、対になった各グループについて有意性ビットがまず発現し、対になった各有意グループについてのBuコードプレフィックスが続き、最後に、対になった各有意グループについての任意のBuコードサフィックスが続く。
表9:コードブロックにおけるグループの初期行内において、アンサインド残差uを符号化するために使用されるBuコード。ここで、lおよびlはプレフィックスおよびサフィックスの長さを表し、l+lは全体の符号語長さを表すが、プレフィックスおよびサフィックスビットは、グループ対毎に実際にはインターリーブされる。
【表9】
複雑性の考察
Magnitude Refinement (MagRef)パス
【0181】
マグニチュードレファインメントパスは、ビットがリトルエンディアン順で未加工ビットストリームのバイトに詰められること以外は、算術符号化バイパスモードにおいて、標準的なJPEG 2000ブロック符号化器のそれと同一である(すなわち、ビット7ではなくビット0から始まる)。
【0182】
この符号化パスは、Cleanupパスにおいて有意として符号化された各サンプルに簡単にアクセスし、1ビット(関連するサンプルのLSB)を未加工ビットストリームへ放出する。デコーダは、同様に自明である。ソフトウエア実施において、マグニチュードレファインメントパスは全体の処理仕事量に対して比較的少ししか寄与しないことが分かる。リトルエンディアンビット順位付けの慣例は、ソフトウエアエンコーダおよびデコーダを顕著に速くさせるために役立つ。
【0183】
ハードウエアエンコーダは、RESTARTモードオプションが採用される限り、コストをほぼ増加させることなく、特に、Cleanupパスと並行してマグニチュードレファインメントパスを生成することができ、その結果、マグニチュードレファインメントパスは、その自身の符号語セグメントを得、このことは、いずれの場合も推奨される。
【0184】
デコーダも、Cleanupパスと並行してマグニチュードレファインメントパスを処理することができ、各有意サンプルに出会った場合ビットをその未加工ビットストリームから除去する。同様に、この並行処理は、推奨されるRESTARTモードを必要とする。
【0185】
エンコーダがマグニチュードレファインメントパスを生成する必要がない用途もある。MagRef符号化パスは、同様に含まれているSigProp符号化パスによって先行される場合にのみ、最終コードストリームに含まれることとなる。したがって、実際面では、MagRef符号化パスは、実際に最終コードストリームに最も含まれにくい符号化パスであり、その結果、圧縮効率に大きい不都合を招くことなく、MagRef符号化パスを完全に落とすことができる。
【0186】
レート制御をPCRD-optを介してではなく量子化パラメータを変調することによって管理する場合、エンコーダによってCleanupパスさえ実際に生成すればよい。JPEG 2000Part-2において定義されるQPDおよびQPCマーカーセグメントを用いることにより、量子化パラメータをより細かい粒度で変調することができる。可変圧縮データレートを許容し得る、おそらくはフレーム毎に変調された用途において、エンコーダもCleanupパスさえ生成すればよい。
Significance Propagation(SigProp)パス
【0187】
SigPropパスも、算術符号化バイパスモードにおける、標準的なJPEG 2000ブロック符号化器のそれと非常に類似しており、価値のある以下の2つの差異を有する。1)ビットは、未加工ビットストリームのバイトに、ビット7ではなくビット0から詰められ始める。2)符号化される必要のあるサンプルの有意性ビットは、サンプル毎にサインビットにインターリーブされるのではなく、(高さ3のストライプを除き)1度に4サンプルのグループにインターリーブされる。
【0188】
上記変更の1つの利点は、変更によりテーブル駆動型エンコーディングおよびデコーディングアプローチが簡単化されることであり、該アプローチは、ソフトウエア実施のために特に注目されている。ハードウエアデコーダも利益を得ることができる。なぜなら、ストライプ列において符号化された有意性ビットは、後続のストライプ列に対する符号化パスメンバーシップの伝播を指示するからである。ビットストリーム内のサインビットに先行するマグニチュードビットを動かすことにより、少なくともいくつかのハードウエアデコーディング実施において、クリティカルパスデコーディングレイテンシを低減することができる。
【0189】
標準的なJPEG 2000ブロック符号化器では、SigProp符号化パスは、Cleanup符号化パス間に挟まれていることが多い。これは、SigProp符号化パスが、後のCleanupパスによって使用されることになる状態情報をアップデートする必要があることを意味する。このアップデート動作は、BYPASSモードにおいては非常に自明である、エンコーディング/デコーディングステップ自体と同程度に、またはそれ以上にコストがかかり得る。例えば、「コンテキストブロードキャスティング」方策は、JPEG 2000のソフトウエア実施のために最も効率的であることが通常は分かり、この場合、各有意サンプルがその近傍の有意性符号化コンテキスト状態をアップデートし、その結果、有意サンプルは、後続の符号化ステップおよびパスにおいて効率的に処理され得る。FASTブロック符号化器の場合は、この必要がない。なぜなら、各Cleanupパスは一から始まるからである。
【0190】
ハードウエア実施は、特に、SigProp符号化パスをCleanup符号化パスと常に並行して生成することができ、第3ビットストリームを生成または消費する(Cleanupパスはそれ自身の2つのビットストリームを生成/消費)する、という事実から利益を得ることができる。これは、RESTARTモードスイッチを必要としない。なぜなら、CleanupおよびSigProp符号化パスは異なる符号語セグメントを常に占めているからである。
【0191】
ソフトウエアエンコーダにおいて、SigPropパスは、極めて効率的に実施され得、MagRef符号化パスと同様の複雑性を有する。MagRef符号化パスと同様に、SigPropパスもいくつかの用途においては完全にスキップすることができる。
ベクトル化可能性
【0192】
最新のCPUアーキテクチャは、一般的にマルチメディア処理のための基本ツールとなった強力なベクトル処理能力を提供する。FASTブロック符号化アルゴリズムは、ベクトル化を考慮して設計されており、このセクションでは、これに関してFASTブロック符号化アルゴリズムが表す機会のいくつかを明らかにする。なお、ベクトル化可能性はソフトウエアコンセプトであるが、ベクトル化可能なアルゴリズムは、必然的に、ローカル平行を表すものである。そのため、高度のベクトル化可能性は、このアルゴリズムも効率的なハードウエアおよびGPU実施に適していることを示唆する。ベクトル化可能性は、ベクトルが、多くの小さい要素(特に個々のバイト)からなり得る場合に最も有益である。なぜなら、これがスループットを最大化するからである。ハードウエア実施については、このことは、計算および論理演算を低い精度で行われる可能性があることを意味し、これは、複雑性および電力消費に顕著な影響を及ぼす。
【0193】
CleanupおよびSigProp符号化パスにおける連続的走査ライン(またはラインペア)は、各サンプルの有意性を特定する単一ビットフラグの収集により連結される。このような1ビット/サンプルフラグはCleanupパスもSigPropおよびMagRef符号化パスと連結する。デコーディング中に、これらフラグは、VLC表ルックアップによりグループ毎に生成され、これは非常に速い。エンコーディング中に、共通ベクトル比較と最新のCPUにおいて見出されるパッキングインストラクションとを使用して、ソースサンプルから直接、またはそれらのマグニチュード指数から、有意性フラグを生成することができる。
【0194】
Cleanupパス中の有意性符号化コンテキストの形成は、同じ走査ライン上の先行のグループからの有意性情報の集合と共に、前の走査ラインからの有意性フラグの水平集合を必要とする。第1動作を、エンコーダおよびデコーダの双方によって効率的にベクトル化することができる。第2動作をエンコーダによってベクトル化することができる。なぜなら、全ての有意性情報が前もって分かっているためである。デコーダは、良好に設計されたVLC表を用いて第2動作を効率的に行うことができ、VLC表のエントリは、前の走査ラインから次のグループのコンテキストへ、水平に集合した有意性ビットをアップデートするために必要とされる情報とデコードされた有意性フラグとの双方を提供する。良好な実施は、4サンプルのグループ当たりたった1つの追加論理ANDと1つの論理ORとによってこれを達成することができる。
【0195】
マグニチュード符号化コンテキストを形成するために必要とされる全ての量は、8ビット内で十分に表すことができる。エンコーダにおいて、マグニチュード指数E[n]を、ベクトル計算を用いて事前に計算し、バイト指向性ベクトルに格納することができる。次に、これらを、共通の飽和ベクトル算術演算を用いて符号化コンテキスト/予測因子に変換することができ、NEON、SSE2、またはAVX2などの共通のインストラクションセットにより一時に16~32サンプルを処理する。Cleanupパスの未加工ビットストリーム(またはMagSgn未加工ビットストリーム)へのビットの放出を駆動する鍵となる量の全てを、ベクトル演算を用いて直接計算することができ、高スループットおよび低レイテンシを達成する。サイン、マグニチュード、およびコンマコード/uコードビットを1または複数の未加工ビットストリームへ詰めることだけが、エンコーディング中に連続的な非ベクトル化注意(non-vectorized attention)を必要とする演算であり、これらは非常に簡単である。
【0196】
デコーダのために、マグニチュードデコーディングコンテキストは、ベクトル演算を用いて少なくとも一部が計算されていてもよい。先行の走査ラインからのマグニチュード指数に対する加算および最大演算を、完全にベクトル化することができる。統合されたマグニチュード符号化の変形例について、各連続的なマグニチュード指数が発見されるため、マグニチュード指数の水平な集合が連続して行われる必要があるが、これは、上述のように、FASTブロック符号化アルゴリズムの分散変数、およびいくつかの他のマグニチュード符号化変数の場合には当てはまらない。
【0197】
SigProp符号化パスのために、Cleanupパスからの有意性フラグは、パスメンバーロケーションの初期セットを決定するために水平および垂直に集合される必要があり、次に、符号化が進むにつれて順にアップデートされる必要がある。メンバーの初期セットを、ベクトル処理を用いて効率的に形成することができ、なお、単一128ビットベクトルは、128サンプルと関連付けられた情報を一度に操作することができる。SigPropパス中のメンバーシップビットフラグの走査および漸進的アップデートを、最新のCPUにおいて現在は一般的に利用可能なビット操作インストラクションにより効率的に行うことができる。
並行/平行処理
【0198】
JPEG 2000と同様に、本願で説明したアルゴリズムは、コードブロックレベルで巨視的な平行度を提供する。メモリ使用度および負担が予測される遅延に応じて、エンコーダまたはデコーダによって、任意の数のコードブロックを並行して処理することができる。ブロックは、サイズが4096サンプルを決して上回らないため、この種類の平行度を利用するために、ソフトウエアおよびハードウエアの双方の実施のために、必然的に、考慮すべき領域がある。
【0199】
個々のコードブロックのレベルで、多重ビットストリームコンセプトは、エンコーダおよびデコーダの双方により利用され得る並行性を導入する。特に、適合的に符号化されたビットストリームに関連付けられた適合型エンコーディング/デコーディング手順(MQまたはMEL符号化)は、有意性、マグニチュードおよびサイン情報符号化ステップを並行して進めることができる。トリプルビットストリーム構成において、3つ全てのビットストリームの並行したエンコーディングおよびデコーディングが可能である。
【0200】
そのうえ、符号化パス自体を通常は並行して処理することができる。エンコーダは、多くの符号化パスを生成してもよく、一方、デコーダは、最大3つの符号化パスを見出してもよい。エンコーダは、コードブロックからサンプルデータの十分なラインを利用可能である限り、全ての符号化パスを並行して処理してもよい
―――――――――――――――
上述の通り、MagRef符号化パスについて、これが厳密に当てはまるのは、RESTARTモードスイッチが使用される場合のみであり、このことは非常に推奨され、オーバーヘッドは取るに足らないものである。多くの場合、エンコーダは、全体のコードブロックを収容するためにサブバンドデータの十分なラインをバッファする。
―――――――――――――――
しかしながら、ブロックエンコーダにとっては、サンプルの最初のラインが現れ始めると同時に、Cleanupパスをすぐに処理することも可能である。当然、SigPropおよびMagRef符号化パスは、4ラインストライプで動作するため、それらの処理は、サンプルデータの全ストライプが利用可能になってからしか開始できないが、これとは別に、全ての符号化パスは、比較的困難を伴わずに並行して処理されてもよい。
【0201】
複数の符号化パスの並行処理は、デコーダにとってはあまり価値がない。これは、単純に、関心のある情報の大部分、および、関連付けられた処理リソースの大部分が、ただ1つのCleanupパスに関連付けられているからである。RESTARTモードスイッチが採用される限り、デコーダは任意のSigPropおよびMagRef符号化パスをまとめて処理してもよい。また、これらは、若干の遅延の後にCleanup符号化パスとともに並行して処理されてもよく、次にこれを説明する。
【0202】
デュアルビットストリーム構造では、一般的に、有意性情報の初期の4ラインは、その他のパスのデコーディングを開始できるよりも前に、完全にデコードされている必要がある。有意性およびマグニチュード/サイン情報は、ライン毎にインターリーブされているため、これは、マグニチュード/サイン情報の3ラインも他の符号化パスのデコーディングを開始できるよりも前に、デコードされている必要がある。コードブロック高さが4ライン以下である場合は、SigPropおよびMagRef符号化パスの並行処理を、Cleanupパスがコードブロックの最後のラインの開始に到達する点よりも若干早く開始することができる。例えば、コードブロックが2ラインしか有していない場合、SigPropおよびMagRefデコーディングは、Cleanupデコーディング処理の後半と重なっていてもよい。この特性は、高スループット、低レイテンシ用途において価値がある傾向があり、それゆえ、さらにこれについて以下で説明する。
【0203】
トリプルビットストリーム構造では、有意性情報は、マグニチュードおよびサイン情報よりも十分に前にデコードされ得る(および一般的にはデコードされる)。一時に4サンプルのグループに対して作業する場合、有意性符号化は、大体どの実施においても、最悪の場合のマグニチュード/サインデコーディングスループットの軽く4倍は速いため、パス間デコーディング遅延を1ラインまたはWクロック周期未満に確定的に抑制することができ、ただし、Wはコードブロックの幅である。
局所依存
【0204】
エンコーダは、ハードウエア展開のためのクロックレートに大きく影響する可能性のあるクリティカル依存性パスを、たとえあったとしても、少ししか経験しないほうがよい。有意性符号化コンテキスト(グループをベースとする)およびマグニチュード符号化コンテキスト(サンプルまたはグループをベースとする)を、符号化ステップ自体への何らかの直列依存を有することなく、ソースデータから直接形成することができる。AZCグループをすぐに特定することができ、AZCグループの有意性は、他の符号化ステップへの何らかの依存性を有することなく、独立して符号化される。これは、クリーンアップパスのデュアルビットストリーム構造の直接的な結果である。有意グループ内の有意性およびマグニチュードビットパターンは、デュアルビットストリーム組織によって正しくシーケンス化される必要があるが、未加工の2進数のみからなるため、必要であれば、別個のステップとして同時に生成されシーケンス化され得る。
【0205】
デコーダも多重ビットストリーム構造から恩恵を受け、これにより、AZC有意性情報を前もってデコードし、次に、VLC有意性フラグと統合して有意サンプル位置を再構築することができる。有意性デコーディングは、個々のサンプルではなくグループに対して行われ、したがって、存在する依存性は、連続的サンプル間ではなく連続的グループ間であり、スループットに対する影響を大幅に低減している。また、トリプルビットストリーム構成では、有意性情報は、MagSgnビットストリームに対する何らかの依存性を有することなく、完全にデコードされ得る。
【0206】
上述の統合されたマグニチュード符号化方法は、デコーダのためのいくらかの顕著なクリティカルパス依存性を示し、該クリティカルパス依存性は、ソフトウエアおよび特にはハードウエアにおいてもスループットに影響を及ぼす。しかしながら、これらの依存性を、上記分散されたマグニチュード符号化方法を採用することにより、効果的に除去することができる。
【0207】
適合型符号化スループットについて、符号化コンテキストは1つしかないことが留意される。このことは、必要であれば、周知のマルチシンボル並行デコーディング方策の使用を促進する。マルチシンボルMEL符号化は、その状態機械がより小さいため、マルチシンボルMQ符号化よりも簡単である。実際に、AZC有意性シンボルの1つの全体のランまたは複数のランさえ一回でエンコードまたはデコードすることが通常は可能であり、全ての状態遷移を小さいルックアップテーブルに畳み込む。また、各4つのサブバンドサンプル毎に符号化/デコードされることになるAZCシンボルは最大1つある。
Post-Compression R-D Optimizationによるエンコーディング
【0208】
Post-Compression Rate-Distortion Optimization(PCRD-opt)は、JPEG 2000アルゴリズムの価値のある特徴であり、既に生成されたコードブロックビットストリームを切り捨てるだけで、1または複数のターゲット圧縮ビット率を達成することができる。最適な切り捨て位置を見出すことは、各切り捨てポイントについて1セットの歪み推定(または測定)とすれば、比較的容易である。
【0209】
PCRD-optアプローチは効果的である。なぜならJPEG 2000ブロック符号化器は、細かく埋め込まれたビットストリームを作成し、複数の切り捨てポイント(ビットプレーン当たり3)を提供するからであり、これらの大部分は、典型的には、コードブロックの稼働率-歪み特性の凸包上にある。
FASTブロック符号化器でのPCRD-optの使用
【0210】
上記FASTブロック符号化アルゴリズムは、厳密には埋め込まれていないが、PCRD-optベースのレート制御方法論を展開することができる十分なレベルの埋込を提供する。ビットプレーン当たり3つの符号化パスが依然として在り、これら符号化パスのレート-歪み特性は、標準的なJPEG 2000ブロック符号化器のレート-歪み特性と非常に類似していると判明する。典型的な写真イメージでの実験において、図1に示すFASTブロック符号化パスのセットに最適な切り捨てアルゴリズムを適用することで、標準的なJPEG 2000ブロック符号化器によって達成される圧縮効率と同様の圧縮効率が得られることが分かった
―――――――――――――――
この観察は、標準的なJPEG 2000ブロック符号化アルゴリズムが全BYPASSモードにおいて動作する場合には事実であり、ここで、全てのSigPropおよびMagRef符号化パスは、未加工ビットを放出し、適合型符号化は、Cleanupパスにおいてのみ使用される。
―――――――――――――――
【0211】
当然、FASTブロック符号化器により生成された符号化パスのセットを切り捨てた後、最後に残るCleanupパスだけが、もしあれば、それに続く残るSigPropおよびMagRefパスと共に、コードストリームへ放出される。なぜなら、FASTブロック符号化器のCleanupパスの各々が、全ての先行の符号化パスを完全に包含するためである。
【0212】
コンテンツを、エンコーダのために比較的多く種々の質(異なる量子化ステップサイズ)で圧縮してから、最終的に各コードブロックの圧縮されたバージョンのうち1つを除いて全てを破棄することにより、任意の非埋め込み型のブロック符号化アルゴリズムを、PCRD-optアルゴリズムと共に使用し得る、と主張する人がいるかもしれない。しかしながら、このようなアプローチとここで提案されるアプローチとの差異は、エンコーダが、SigPropおよびMagRef符号化パスに依存して、最大限でもビットプレーン当たり1つのCleanup符号化パスを作成して極めて低い計算量で稼働率-歪み特性を効果的に補間する必要がある点である。
符号化パスの選択的な生成
【0213】
JPEG 2000についてのPCRD-opt手段の高度な実施では、既に、予測的方策を用いて、PCRD-optレート制御段によって後に見出される最適切り捨てポイントの外にある傾向がある多くの符号化パスの生成を、回避している。FASTブロック符号化器については、PCRD-opt切り捨てポイントに保持される後のCleanupパスに包含される傾向がある符号化パスの生成を、追加の方策を使用して回避することができる。すなわち、図1により示唆されるように、生成する価値のある最終の符号化パスと符号化パスを生成し始める第1の(最も粗い)ビットプレーンとの双方を決定するために予測的方策を使用することができる。
【0214】
レート制御を通常は必要としないトランスコーディング用途は別として、本願において説明されるFASTブロック符号化器のための最も重要な用途は、映像を含む。なぜなら、このような用途は、標準的なJPEG 2000アルゴリズムが課題とする非常に高いデータレートを含むからである。
【0215】
JPEG 2000実施において生成する価値がない最終の符号化パスを予測するための既存の方策は、PCRD-optアルゴリズムにより採用される歪み長さ勾配閾値が通常はフレーム毎にゆっくりとしか変化せず、それゆえ、生成した符号化パスに関連付けられている歪み長さ勾配閾値が、前のフレームにおいてPCRD-optアルゴリズムにより選択される歪み長さ勾配閾値、または、以前に生成されたフレームの定義されたセットにおいて選択された最小のこのような閾値よりも小さくなるとすぐに、ブロックエンコーダは符号化パスの生成を停止することができる、という事実を利用している。この方策を、FASTブロック符号化アルゴリズムと共に直接採用して、PCRD-optレート制御段階で破棄される傾向がある符号化パスの生成を制限することができる。
【0216】
続くサブセクションは、主に第2の課題、すなわち、FASTブロックエンコーダによって生成される必要のある第1の/最も粗い符号化パスを予測することに関する。この目的のために、同様に、先行のフレームの圧縮の観察結果を利用することができる。この情報を、サブバンドサンプルから導出される統計値で補足することも可能であり、一方、そっらは、コードブロックになるように組み立てられている。これらの方法を説明する前に、以下のことを観察する。
1.エンコード処理中に粗いビットプレーンを破棄することは、PCRD-opt段階を乗り切ることが期待されない細かい符号化パスを破棄することよりも「リスクがある」。コードブロックのために最初に生成されるビットプレーンが、多すぎるビットの生成という結果になる場合、PCRD-opt段階は、コードブロックのためのコンテンツを全く含むことができない可能性がある。よって、より粗いビットプレーンを破棄するという決定に関連付けられた最悪の場合の歪の影響は、より細かいビットプレーンを破棄することに関連付けられたその影響よりも大きい。
2.より粗いビットプレーンは、一般的には、少なくともソフトウエア実施においては、より細かいビットプレーンよりも消費する計算のリソースが少なく、そのため、実施のためには、必要とするよりも多くの細かいビットプレーンではなく、必要とするよりも多くの粗いビットプレーンを生成して失敗する方が、望ましい。実際、粗いビットプレーンが全くスキップされなくても、FASTブロックエンコーダはJPEG 2000よりも依然としてはるかに速い。
3.高いスループットハードウエア実施は、決定論的な方法で、何らかの任意のコードブロックのために生成されることになる符号化パスの総数を固定する必要がある可能性がある。このことは、適合型アルゴリズムがより簡単に実施されるソフトウエア環境よりもより大きい課題を提供する。
4.低いエンドツーエンドレイテンシを有する一定のビットレート圧縮データストリームを必要とする用途は、符号化パスまたはビットプレーンを選択的に生成するアルゴリズムにとって最大の課題である。下手な決定が結果として大きい歪みとなることの尤度は、PCRD-optアルゴリズムが厳格なビット予算に合うように強制される場合に、特に、コードブロックの小さいセットに対して通常行われるのだがこの強制が行われる場合に、大幅に増加する。
【0217】
上記で特定された困難性にもかかわらず、たとえハードウエアにおいても、良好な圧縮性能と共に、高いスループットエンコーディングを許容する効果的なアルゴリズムを開発することが可能である。
長さベースのビットプレーン/符号化パス選択アルゴリズム
【0218】
このセクションでは、第1アルゴリズムを説明する。第1アルゴリズムは、ブロックエンコーディング処理中に粗いビットプレーンの生成をスキップするために使用され得る。このアルゴリズムは、PCRD-optアルゴリズムにより全てのコードブロックを破棄しなければならないというリスクを軽減するために、符号化された長さ推定および測定に依存している。この方法は、少なくとも2つ、しかしながら、好ましくは3つ以上のビットプレーンが、並行してではなく順にエンコードされる状況に適している。これにより、各エンコードされたビットプレーンのエンコードされた長さは、エンコードすることになる後続のビットプレーンを選択するようにガイドすることができる。これらの属性は、アルゴリズムをハードウエアよりもソフトウエア実施により適したものとするかもしれない。
【0219】
映像シーケンスからの1シーケンスのフレームが圧縮されているとする。また、説明を簡単化するため、各フレームの圧縮されたサイズに対する制約Lmaxが課される各フレームのコードストリームのための符号化パスを選択するために、PCRD-optアルゴリズムが使用されているとする。すなわち、全てのフレームは、同じ長さ制約を有するとする。以下で説明される方法を、フレーム毎に異なる可能性のある長さ制約にどのように適合させることができるかを理解することは難しくない。この方法は、低レイテンシ用途にも適用されてもよい。低レイテンシ用途では、長さ制約は、フレームの断片のみを表すコードブロックのより小さい集合に適用される。
【0220】

【0221】
次に、Lp,b をフレームkのコードブロックb内のビットプレーンpに属するCleanupパスに関連付けられた長さ(バイト)とし、後続の(生成されている)フレームkgenを考察する。サブバンドβにおける各コードブロックbが、少なくとも1つの生成された、
であるCleanupパスを有する限り、PCRD-optアルゴリズムが、Lmax未満の全長を有するフレームkgenのためにコードストリームを生成することが確実に可能となる。実際、たとえこの制約がなくても、PCRD-optアルゴリズムは、長さの制約Lmaxを満たすために、1つまたは複数のコードブロックを完全に破棄することは常に可能である。しかしながら、このことは、コードブロックが破棄されている場合は、品質の大幅な低下を被る可能性があり、これは単に、十分に粗いビットプレーンに関連付けられた符号化パスはブロックエンコーダによって生成されなかったからである。
【0222】
フレームkのコードストリームの生成中に記録されることとなる情報の第2種類は、最も粗いビットプレーン索引pmax,γ であり、コードブロックグループγの集合の各々に関連付けられている。1つのグループ化アプローチは、明確なJPEG 2000プレシンクトによって、各コードブロックグループγを特定することであるが、1つのプレシンクト内でコードブロックの明確なサブバンド指向性(例えばHH,LH,HL)を(明確なグループによって)さらに区別することが好ましい可能性はある。コードブロックの重なり合うグループを使用することも望ましい可能性がある。一方では、グループは単一コードブロックからなり、他方では、画像成分のウェーブレット分解における任意の解像度レベルからの全てのサブバンドは、単一グループを構成すると考えられてもよい。いずれにせよ、pmax,γ は、フレームkのためのコードストリームに埋め込むためにPCRD-optアルゴリズムが選択するグループγにおける任意のコードブロックからの任意のCleanupパスに関連付けられた最も粗いビットプレーンである。加えて、γをコードブロックbのための「自然」グループとし、「自然」グループは、複数のこのようなグループ(重なるグループ)が無ければ、単にコードブロックbが属するグループであり、ある場合は、γは、コードブロックbの幾何学的中心に最も近く一致する幾何学的中心を有するグループである。
【0223】
【0224】
【0225】
【0226】
この方法の複雑性および性能の双方は、Δadj値に応じている。厳格なレイテンシ制約を有していないソフトウエア実施において、要求される平均スループットを達成するために、Δadjの値は、フレーム毎に適合され得る。
低レイテンシ用途のための符号化パス選択アルゴリズム
【0227】
このセクションでは、何らかの任意のコードブロックにおける所定の最大数の符号化パスを生成するアルゴリズムを説明する。このアルゴリズムは、ソフトウエアと同様に高パフォーマンスハードウエア実施に適している。なぜなら、処理されることになるビットプレーンは、逐次エンコーディング処理に依存せずに、事前に決められるからである。処理する最も粗いビットプレーンの決定のみを考察した先行のセクションとは異なり、ここでは、任意のコードブロックのために処理されることになる符号化パスの全セットの決定を検討する。ここで説明されるアルゴリズムは、低レイテンシ用途に適し、低レイテンシ用途では、完全な映像フレームの小さい一部のみを表していることもあるコードブロックの集合に対してPCRD-optアルゴリズムが規則的に実施され、コードブロックのこのような集合のために、「フラッシュセット」という用語を用いる。同様に、1シーケンスの映像フレームが圧縮されているという事実に依存し、その結果、前のフレームにおけるPCRD-optアルゴリズムからの結果を後続のフレームにおける符号化パスの選択をガイドするために用いることができる。各コードブロックのための符号化パスの選択は、歪み長さ勾配情報に基づく。なぜなら、符号化長さは事前には利用可能ではないからである。
【0228】
以下の検討において、各コードブロックのために生成された1セットの符号化パスから適切な符号化パスを選択するためのPCRD-opt処理について簡単に総括する。これは、基本的にPCRD-optアルゴリズムの総括であり、そもそも、実際に生成された符号化パスのセットを限定するという課題に特有ではない。
【0229】

【0230】
【0231】
【0232】
【0233】
【0234】
【0235】
生成された符号化パスの各々について、対応する歪み長さ勾配が計算され格納される。次に、これらの勾配値を使用して、最終的にビットストリームへ含められることになる符号化パスを選択する。歪み長さ勾配に基づくレート分散最適符号化パス選択方策を、このセクションにおいて先に説明した。
【0236】
【0237】
上記方法は、たとえ、各コードブロックが2未満の連続ビットプレーンを処理するよう制限されている場合でも、映像シーケンスにおける連続するフレーム間で複雑性の大きい変化が経験される場合を除き、実際面では良好に作用する。特に、フレーム(またはフレームの領域)が非常に低い複雑性(例えば、少ないテクスチュア、少ないエッジなど)を示す場合、PCRD-optアルゴリズムは、各関連するコードブロックのために利用可能な最も細かいビットプレーンを選択する傾向がある。フレームの1シーケンスに亘り、これは、動作点をコンテンツの非常に細かい量子化を表す点へ迅速に動かす。次に、複雑性が突然上昇する場合、この細かい動作点は多すぎるビットを生成し、PCRD-optアルゴリズムは全コードブロックを破棄させることを強要され、結果として歪みが大きいという欠点となる。この条件は、大きい複雑性過渡から典型的には2または3フレーム内で復元される高パフォーマンスによって迅速に消滅し、これは、識別できるような歪みを回避するために十分かもしれないが、このような過渡を低減または排除するためのステップを行うことが望ましい。このセクションにおいて、上記符号化パス選択アルゴリズムを向上するために使用することができる全体的および局所的な複雑性を測定する方法を説明する。
【0238】
メモリ/レイテンシ抑制環境において、ウェーブレット変換により生成されるサブバンドサンプルのラインは収集器へ漸増的にプッシュされ、これによりラインをコードブロックになるよう組み立て、その後、都合がつき次第できるだけ早くブロックエンコーディング処理を開始する。この処理の間に、サブバンドサンプルを解析して符号化複雑性を評価することができる。同一のサブバンドにおいて水平方向に隣接するコードブロックからのサブバンドサンプルおよびウェーブレット階層における同じレベルでの他のサブバンドからのサブバンドサンプルは、同様の時間において生成されるため、それらの複雑性は、より全体的な推定を形成するために組み合わせられてもよい。同様に、複雑性情報は、異なる画像成分(例えば色成分)に属するサブバンドから組み合わせられてもよく、この場合、組み合わせられたサブバンドは同じ垂直解像度を有する。異なる解像度に亘る複雑性推定を蓄積することによりより一層全体的な推定を形成することができるが、このことは、メモリまたはレイテンシの抑制された用途において選択的にのみ行うことができる。
【0239】
ここで説明する方法は、複雑性の局所的基準として個々のコードブロック内の絶対サブバンドサンプルの集積で開始する。具体的には、サブバンドβ内のコードブロックbについて、局所的な複雑性基準は、以下のように表されてもよい。
ここで、Δβは、量子化ステップサイズ、Nは、コードブロックb内にあるサンプル位置のセットを表し、||N||は、コードブロックエリアを表す。厳格な等式よりもむしろを記載する。なぜなら、多くの用途において、log(x)演算は、正確に計算されるよりむしろ近似されることになるからである。例えば、xについての浮動小数点表示におけるビットの一部または全ては、log(x)の不動点近似として再解釈されてもよい。cβ[b]の効率的計算は、||N||・Δβによる割り算をアルゴリズムの外側に動かすことを含む可能性があり、この場合、それは、固定オフセットとなる。
【0240】
既述のとおり、ウェーブレット変換から、および、おそらく色変換などの他の変換処理から、サブバンドサンプルが利用可能となるため、上記等式により表される集積は、典型的には漸増的に行われる。エンコーディングのために、コードブロックの完全な1行が一旦組み立てられると、cβ[b]に関連付けられたログオペレーションおよび正規化を行の各コードブロックのために行ってもよい。同時に、局所的複雑性推定は、以下のように、より全体的な推定に組み合わせられてもよい。
ここで、Vはサブバンドサンプルの単一「v-set」(垂直セット)を表し、同じ垂直解像度を有する各サブバンドからのコードブロックの1行を構成する。関連するJPEG 2000プレシンクト区画の影響を考慮すると、任意のv-setへ寄与するサブバンドは異なる画像成分に属していてもよいが、同じ垂直サンプリングレートを有し、同じ垂直コードブロックサイズを有するべきである。
―――――――――――――――
垂直解像度は、ここでは、(最高垂直解像度を有する画像成分から)画像ラインがウェーブレット変換へプッシュされるにつれてサブバンドラインが現れるレートを意味する。丸め効果とは別に、サブバンドの垂直解像度は、サブバンドにおけるラインの数であり、画像の高さにより割られる。
―――――――――――――――
したがって、gは、vにより索引付けされたv-set内で見出されるコードブロックの面積-重み付け平均複雑性と理解される。
【0241】
【0242】
【0243】

【0244】
【0245】
ビットレートおよび歪み長さ勾配推定方策
【0246】
上記アルゴリズムは、コードブロックbをビットプレーンpに符号化する際に経験されるビットレートは、R+Cβ[b]-pの形態であるはずであり、ただし、Rはフレーム毎に異ならない定数であるという仮定に関して理解され得る。これは、非常に大まかなモデルであり、多くのサンプルが非有意であるより低いビットレート(より粗いビットプレーン)において、正確だとは期待されない。
【0247】
符号化されたビットレートのより一層正確な予測は、エンコーディング処理を実際にせずに、コードブロックのために形成され得る。このための1つの方法は、各利用可能なビットプレーンp=0、p=1、...において生じる有意サンプルの数の集計Σを形成することによる。確かに、これは計算を必要とするが、エンコーディングステップを実際に行うよりも一層低コストであり得る。これらのΣ値から、各ビットプレーンpについて有意性フラグの次のエントロピーを直接判断することができ、各pのためのMagSgnビットストリームに詰められる必要があるマグニチュードおよびサインビットの数も分かる。各有意サンプルのためのアンサインドマグニチュード指数予測残差の符号化のために1または2ビットを許容すると、何らかの任意のビットプレーンpにおいてCleanupパスによって必要とされるビットの数について妥当な推測が得られる。この推測は、控えめである傾向がある。なぜなら、実際の符号化方法は、より効率的であるからである。
【0248】
エンコーディング処理のビットレートを推測する別の方法は、サブバンドサンプルの確率密度関数についての汎用のガウスモデルをコードブロック内に挿入し、モデルのパラメータにのみ依存する各ビットプレーンpのビットレートについての予め計算された値を使用することである。モデルを挿入するために、各コードブロックのためのたった2つの統計値を集めることで十分である。2つの統計値の一方は、平均絶対値、または、同等に、先に導入された複雑性予測R+Cβ[b]であり、他方は、サブバンドサンプルの平均平方値であってもよい。
【0249】
各ビットプレーンにおける有意サンプルを直接カウントすることに対するモデルベースのアプローチの主な利点は、複雑性の低下である。両方のアプローチは、なんらかの任意のコードブロックのための符号化されたビットレートを予測する関数を、ビットプレーンpの関数として産出する。この関数から、各ビットプレーンにおけるコードブロックのための演算の歪み長さ勾配の推測が導出されてもよい。これらのビットレートおよび歪み長さ勾配推定を、様々な用途設定において、符号化パスの狭いセットを選択して各コードブロックのために実際に生成するために使用することができる。
【0250】
【0251】
【0252】
一定のビットレート(CBR)設定において、それが属するv-set V、またはより大きいセットU(V)における各コードブロックのための予測されたビットレートおよび歪み長さ勾配を使用して、PCRD-optアルゴリズムの期待される挙動をシミュレーションし、各コードブロックのためのコードストリームに含まれることが期待されるCleanupパスを有するビットプレーン(もしあれば)を決定することができる。同様に、予測が控えめである、これは、実際のブロック符号化器は予測が示唆するよりも効率的であることを意味するが、と仮定すれば、この予測されたCleanupパス、プラス1または2つのより高い品質(すなわち、より小さいp)のCleanupパスを、それぞれSigPropおよびMagRef符号化パスと共に、生成することで十分である。実際のPCRD-optアルゴリズムは、この制限されたセットの生成された符号化パスで動作する。
コードストリームシンタックスおよびトランスコーディング
【0253】
このセクションにおいて、FASTブロック符号化処理を使用して様々な価値のあるトランスコーディング対象を実現できる方法を説明する。まず、プレシンクト毎に使用され得るオプションとしてFASTブロック符号化器の組み込みを支持するために必要とされるJPEG 2000規格に対する小さな変更のセットを説明する。次に、この能力を利用することができる方法について説明する。
JPEG 2000コードストリームシンタックスの変更
【0254】
FASTブロック符号化アルゴリズムは、JPEG 2000シンタックスに対してほぼ影響を与えない。既存のコードストリームシンタックスにこの符号化オプションを最適に組み込むための最も簡単な方法は、IS15444-2/AMD4から16ビットSXcodフィールドの定義を広げることである。SXcodフィールドの標準的な解釈について説明することから始める。
【0255】
ビット-5をJPEG 2000COD(各COC)マーカーセグメントのスタイルバイトScod(各Scoc)内で設定する場合、マーカーセグメントは、標準的なJPEG 2000ブロック符号化器によって使用されて追加のBYPASSオプションを特定する16ビットSXcodフィールドを含む。特に、IS15444-2/AMD4によれば、SXcodフィールドの2つのLSBは、コードブロックスタイルフィールドSPcod(各SPcoc)のBYPASSフラグ(ビット0)が設定される場合は常に、使用されることになる追加のバイパスされたビットプレーンの数を特定する値BBをエンコードする。BYPASS=1およびBB=01である場合、SigPropおよびMagRef双方の符号化パスについて、算術符号化は全てのビットプレーンにおいてバイパスされる。
【0256】
FASTブロック符号化アルゴリズムを取り入れるために、SXcodフィールド内の追加の(現在保存されている)ビットに、表10において特定される解釈を与えることができる。FASTブロック符号化器がCOD(またはCOD)マーカーセグメントによって説明される全てのプレシンクトにおいて使用されることになる場合、BYPASSは、1であり、BBは01であるはずである。次に、既存のJPEG 2000パケット解析機構は、何の変更もなくFASTブロック符号化器の符号語セグメントを正しく復元することになる。
表10:SXcodフィールドの構造
【表10】
【0257】
表10において特定されるより興味深い(かつ僅かながらより侵略的な)オプションは、MIXEDモードであり、このモードでは、選択されたプレシンクトにおいて、FASTブロック符号化アルゴリズムが使用されてもよく、一方、標準的なJPEG 2000ブロック符号化アルゴリズムは、その他で使用される。この場合、COD(各COC)マーカーセグメントにより定義される全てのブロック符号化オプションは、それが使用される標準的なブロック符号化アルゴリズムに当てはまり、一方、FASTブロック符号化アルゴリズムは、BYPASS=1およびBB=01が示唆されること以外は、同じ符号化オプション(適用可能であれば)を使用する。
【0258】
このMIXEDモードにおいて、FASTブロック符号化アルゴリズムを使用するプレシンクトは、各プレシンクト内における第1パケットの第1バイトを解釈する方法を少し変更することにより特定される。アルゴリズムを構文解析する標準的なJPEG 2000パケットは、第1バイトがそのMSB(ビット7)セットを有するパケットを「ゼロ長」パケットとして解釈する。したがって、このビットは、ZLPビットとしてここでは特定される。実際面では、JPEG 2000におけるZLP信号伝達メカニズムは、プレシンクトの非初期パケットにとって価値があるのみであり、なぜなら、第1パケットは、第1バイトを0に等しいように設定するだけで、完全に空だと特定され得る
―――――――――――――――
厳密には、プレシンクトが7つを上回るサブバンドを有する場合、完全に空の初期パケットの存在を信号で知らせるために、追加の0バイトが必要とされる可能性があるが、これは、パート2Arbitrary Decomposition Style(ADS)特性が使用される場合のみ可能である。
―――――――――――――――
これを考慮し、MIXEDモードにおける何らかのプレシンクトの第1パケットのZLPビットは、FASTブロック符号化アルゴリズムが使用されるならば、1と再定義され、それ以外の場合は0と再定義される。次に、パケット構文解析(段階2デコーディング)の全ての他の観点は、第1パケットのZLPビットが1であった場合、BYPASSおよびBBモードがそれぞれ1および01であったかのように、第1パケットが「ゼロ長」パケットであり得ず、プレシンクトのパケットが構文解析されること以外は、変更されないままである。
FASTビットストリームへのSTDビットストリームのトランスコーディング
【0259】
FASTブロック符号化器表示へのトランスコーディングは、複数の用途において価値があり得る。メディア配信サービスにおいて、全体画像、映像フレームまたは映像シーケンスは、最終レンダリングプラットフォームの計算の能力、または、ハードウエアの能力に合うように、FAST表示になるようにトランスコードされてもよい。特に、モバイルプラットフォームは、FAST表示の利用可能性から利益を得て完全なJPEG 2000デコーディングに関連付けられたエネルギー需要を減らすことができる可能性がある。このような用途において、メディア配信サービス(例えば、「クラウド」ベースのサービス)は、標準的なJPEG 2000表示の品質スケーラビリティを利用することができ、利用可能な通信帯域幅と共に、意図したレンダリングタスクに最も好適に一致する品質層を選択する。このような用途における各FASTブロックビットストリームは、選択された品質層に応じて、オリジナル符号化パスの(おそらく)切り捨てられるセットからトランスコードされる。
【0260】
FASTブロック符号化器表示へのトランスコーディングを、コードブロックを再レンダリングする必要がある周波数に基づいて、画像/映像レンダリングプラットフォーム自体によって、局所的に行うこともできる。JPEG 2000に基づく双方向性のレンダリング用途は、コンテンツの範囲内においてユーザーが動的にパンまたはズームするにつれて、通常は、少なくともいくつかのコードブロックの繰り返し再構成を含み、関心のあるコンテンツに関するこれらのコードブロックのみが実際にデコードされる必要がある、という事実を利用している。このような用途は、再構成されたコードブロックをFAST表示へ頻繁にトランスコーディングすることから利益を得ることができる。特に、効率的インタラクティブレンダリングエンジンは、限られた履歴を維持することができ、最近デコードされたコードブロックを含むプレシンクトの固有性を、このような各プレシンクトのために行われたコードブロックデコーディング操作の数と共に記録する。この情報に基づき、レンダリングエンジンは、プレシンクトにおける全てのコードブロックをトランスコードすることが好ましい可能性があるかどうか判断することができ、その結果、コンテンツの将来的な再構成は、エネルギーまたは処理時間に関してより一層効率的であり得る。
【0261】
遠隔メディアをJPIPベースでインタラクティブに閲覧する場合、JPIPの顧客は、サーバーから受信するいわゆる「プレシンクトデータビン」を一般的にキャッシュする。次に、サーバー(通信履歴)からの新しいコンテンツの到着によってプレシンクトがアップデートされる頻度と共に、レンダリング機構(デコーディング履歴)がプレシンクトにアクセスする頻度に基づいてプレシンクトをFAST表示に選択的にトランスコードする能力によって、キャッシュを増大することができる。例えば、JPIPキャッシュは、サーバーからのデータの到着により最後に増大されてからレンダリングのためにプレシンクトのコンテンツが回復された回数を記録するカウンタによってそのキャッシュにおける、各プレシンクトデータビンに関連付けられたエントリをそれぞれ増大させることができる。このカウンタの値に基づき、プレシンクトは、オリジナルキャッシュエントリを上書きするかまたはこのようなトランスコーディングのために予約された平行キャッシュエントリに記録されるFAST表示へトランスコードされ得る。このことは、プレシンクトが最後にトランスコードされてからサーバーからの新しいデータの到着により十分に増大された場合を除いて、レンダリングエンジンに、FASTブロックビットストリームの使用という代替案を提供する。FAST表示に関連付けられた処理スループット/エネルギーの向上は、コードブロックに関連付けられた符号化されたビットレート(サンプル当たりのビット)が上昇するにつれて、重要性が増す。スマートなJPIPキャッシュは、上記のことを、十分に大きいデータビンを有するプレシンクトのみをトランスコーディングすることによって、考慮することができる。
【0262】
全てのトランスコーディング動作は、反転および/または再適用されるウェーブレットまたはマルチコンポーネント変換を必要することなく、個々のコードブロックに対して独立して行われ得る。理論上、標準的なJPEG 2000ブロックビットストリームからFASTビットストリームへのトランスコーディングは、利用可能なJPEG 2000符号化パスをデコーディングし、その後、結果として生じるサンプルを、FASTブロック符号化アルゴリズムを用いて再エンコーディングすることにより達成される。しかしながら、この表面上のアプローチは、それが潜在的に可能であるほど効率的ではなく、必ずしも真に可逆的でもない。
【0263】
真に可逆的なトランスコーディングのためには、オリジナルのJPEG 2000ブロックビットストリームの最終のCleanupパスにSigProp符号化パスが続いていた場合、かつその場合に限り、FASTブロックビットストリームのCleanupパスにSigProp符号化パスが続く、ということが重要である。同様に、オリジナルJPEG 2000ブロックビットストリームがMagRef符号化パスで終了した場合かつその場合に限り、FASTブロックビットストリームは、MagRef符号化パスで終了する必要がある。これらの条件の理由は、コードブロックにおける各サンプルに適用された効果的な量子化器が、JPEG 2000に埋め込まれたビットストリームにおける最終の符号化パスがCleanup、SigPropまたはMagRef符号化パスであるかどうかに依存しているためである。これは、今度は、サンプルを逆量子化するべき方法に影響を及ぼす。FASTブロック符号化アルゴリズムの設計における鍵となる要素は、その符号化パスが、標準的なJPEG 2000ブロック符号化アルゴリズムのそれらと全く同じサンプルセット依存性量子化器を表すことであり、それゆえ、トランスコードされた表現がオリジナルの符号化パスと同じ符号化パスの種類で終了することが重要である。
【0264】
FASTブロック符号化アルゴリズムは、標準的なJPEG 2000ブロックビットストリームをトランスコーディングする場合、1つのCleanupパスを生成すればよい。また、Cleanupパスにおいて符号化される必要があるサンプルマグニチュードおよびサインは、オリジナルビットストリームの最終のCleanupパスをデコーディングした後に生成されるものである。実際、FASTブロック符号化器のCleanupパスにより符号化されることになる各有意サンプルのマグニチュード指数E[n]は、標準的なJPEG 2000ブロックビットストリームをデコーディングする間に行われるMagRefメンバシップテストの副産物として取得され得る。
【0265】
標準的なJPEG 2000ブロックビットストリームが、算術符号化器BYPASSオプションを(最終のCleanupパスに続く)その最終SigPropまたはMagRef符号化パスのために使用した場合、これらの符号化パスのための符号語セグメントを、FASTブロックビットストリームへ直接転送することができ、トランスコーディング処理をさらに簡単化する。
STDビットストリームへのFASTビットストリームのトランスコーディング
【0266】
FAST表示から標準的なJPEG 200ブロックビットストリームへ戻る逆方向のトランスコーディングも価値のあるものであり得る。高い解像度/フレーム-レート映像キャプチャ用途において、コンテンツは、FASTブロック符号化器表示を用いて初期的にエンコードされ得る。続いて、コンテンツは、完全に、または、プレシンクトベースで、品質スケーラビリティを可能にするために標準的なJPEG 2000表示へトランスコードされ得る。品質スケーラビリティの有効化は、帯域幅効率的JPIPベースのインタラクティブメディア閲覧のために特に重要である。具体的には、JPIPサーバーは、プレシンクトがJPIPクライアントによりアクセスされる場合のみ、プレシンクトを要求に応じてトランスコードすることを選択することができる。
【0267】
同様に、効率的かつ真の可逆トランスコーディングのためには、トランスコードされた表現が、オリジナル表現と同じ種類の符号化パス(Cleanup、SigPropまたはMagRef)で終了することが重要である。
圧縮パフォーマンスの表示
【0268】
本願に記載されたFBCOTアルゴリズムがJPEG-XS標準化取り組みの一部として低レイテンシ用途のために完全にテストされるとはいえ、ここでこの方法のパフォーマンスについてのいくつかの初期の実験的な証拠を提供することは価値がある。
【0269】
JPEG 2000のために、標準的なブロック符号化器のドロップイン代替品としてFASTブロック符号化器を選択することを可能にし、ヴィジュアルウエイト、コードストリーム構造等の全ての他の特性を保持するKakaduツールのバージョンを作成した。新しいオプションは、デフォルトCtyp=STDの代わりにCtyp=FASTを特定することにより利用可能になる。この実施を使用することで、以下のオプションについて圧縮効率が評価される。
DEF: kdu_compress -i <image> -o im.jpx -rate <rate>
BYP: kdu_compress -I <image> -o im.jpx -rate <rate>
Cmodes=BYPASS|BYPASSS_E1|BYPASS_E2
FAST: kdu_compress -I <image> -o im.jpx -rate <rate>
Cmodes=BYPASS|BYPASSS_E1|BYPASS_E2Ctyp=FAST
【0270】
ここで、<rate>は、ビット/画素で測定される、圧縮されたビットレートであり、これのために、1bpp、2bppおよび4bppを調査する。<image>は、圧縮されているテスト画像であり、これのために、標準的なISOテスト画像「バイク」および「女性」が使用される。これらのテスト画像の各々は、オリジナル(一度も圧縮されていない)フルRGB2560×2048カラー画像である。「バイク」画像は、強い空間構造を有する数々の鮮明な特徴を示し、一方、「女性」は、非常に異なる種類のコンテンツを提供し、滑らかな領域と、組織立っていない強いテクスチャとを特徴とする。短縮のため、これら2つの画像についてのみ結果を報告するが、他のコンテンツも同様の挙動を示すことが分かる。
【0271】
全ての3つの画像において、コードブロックサイズは64×64である。これらの条件により、FASTブロック符号化アルゴリズムの圧縮効率と標準的なJPEG 2000ブロック符号化アルゴリズムの2つの変形例(DEFおよびBYP)とを公平に比較することができる。DEF構成は、算術符号化が全ての符号化パスのために使用され、単一埋め込みビットストリームは、ただ1つの符号語セグメント(最小オーバーヘッド)と共に生成される、デフォルトJPEG 2000符号化器条件に対応する。BYP構成は、算術符号化が全ての可能性のある符号化パスにおいてバイパスされ、圧縮効率におけるいくらかの損失と引き換えにより高いスループットにつながる場合に対応する。このモードは、FASTブロック符号化器のモードに最も近いが、多数の符号化パスを依然として含み、全てのCleanupパスが全てのシンボルのためのコンテキスト適合型算術符号化を使用する。
統合されたマグニチュード符号化による初期実験
【0272】
実験の第1セットにおいて、セクション0および0において詳述したような、クリーンアップパスの適合的に符号化されたビットストリームのためのMQおよびMEL符号化オプションの使用に対応する、FASTブロック符号化器の2つの変形例を評価する。これらの2つのケースをFAST-MQおよびFAST_MELと称する。これらの実験において、統合されたマグニチュード符号化およびデュアルビットストリーム構造と共に、FAST Cleanupパスのために線形1×4グループ構造を採用する。
【0273】
表11および表12は、特定されたビットレートに亘って上述の4つの構成についての圧縮パフォーマンスを比較する。明らかに、FAST-MQ、FAST-MEL、およびBYPオプションは全て、全てのビットレートおよび色成分に亘ってほぼ同一の圧縮効率を有する。DEFスキーマは当然より高い圧縮効率を有し、コンテキスト適合型算術符号化を広範囲に使用するが、差異は、高いビットレートレジームにおいては約0.4dBに低減する。

表11:AZCグループ有意性シンボルのためのMQおよびMEL符号化技術、線形1×4グループ、統合されたマグニチュード符号化およびデュアルビットストリームCleanupパスによる、JPEG 2000の変形例(DEFおよびBYP)とFASTブロック符号化アルゴリズムとの間の圧縮効率比較、結果は3ビットレートのPSNR(dB)で報告される。ここでの結果は、PCRD最適化対象としてのMSE(等価的にPSNR)により得られる。
【表11】
表12:Kakaduのデフォルトビジュアル最適化(CSF重要性)が全てのこれらのテストにおいて有効化されていることを除き、表11と同じ実験からの結果。結果として、PSNR値は、比較的低く、評価された異なる構成を比較するために使用され得ること以外は必ずしも全てがそれほど意味があるわけではない。
【表12】
【0274】
スループットの処理について、FASTブロック符号化アルゴリズムは、JPEG 2000の変形例よりも一層速い。デコーディング処理を最適化することのみから始めたが、FASTブロックデコーディングアルゴリズムは、4bppで、DEFオプションよりも約9倍速く、BYPオプションよりも5倍速いことが既に見出されている。
【0275】
これらの測定は、ブロックデコーディング処理単独の(シングルスレッドの)実際の実施の時間を測定することに基づく。例えば、製造後3.5年の2.6GHzCorei7(Ivy Bridge)MacbookProにおいて、4bppで、シングルスレッドは、上記でテストされた女性画像について全てのFAST-MQブロックデコーディングタスクを完了するために45msかかり、FAST-MELは43msかかる。参考のため、同じ画像についてSTDブロックデコーディング処理は、405msかかり、一方、BYP構成において、Kakaduの実施は218msかかる。Kakadu実施は、非常に効率的であると既に広く見なされており、このことは、これらの結果を有意なものとする
―――――――――――――――
KakaduのいわゆるSpeed-Packの変形例に含まれるSTDブロック符号化アルゴリズムおよびBYPブロック符号化アルゴリズムの双方のより速い実施(約1.5倍速い)があるが、そこで使用される同じ技術を、FASTブロック符号化器をさらに速くするためにも適用可能である。
―――――――――――――――
最近の4コアのCPUにおける60fpsでの4K 4:4:4映像のリアルタイムデコーディングを達成するためには若干の困難が予測される。
【0276】
FASTブロック符号化アルゴリズムについてはエンコーディングのほうがデコーディングよりも大幅に速い可能性がある。なぜなら、エンコーディングは、特に、AVX2などの技術を考慮する場合、ベクトル化に極めて適しているからである。これまでの調査において、FAST-MELクリーンアップパスが約4bppのビットレートにおいてサンプル当たり4クロック未満を必要とすることが見出されるが、慎重な最適化によって、より高いスループットを達成することも同様に期待される。FAST-MQの変形例は、広い範囲のビットレートに亘って、FAST-MELよりも0.5~1.0クロック/サンプルだけ遅いことが分かる。
【0277】
他の2つの符号化パス(要求されない)は、同様により一層低い複雑性を有する。MagRefパスは、サンプル当たり0.4クロック未満を現在は必要とする。一方、SigPropパスは、サンプル当たり1クロック未満で実施され得る。これらの結果は、エンコーダが、通常は、多重符号化パスを生成する状態であるはずであり、多重符号化パスを、レート制御のためのPCRD最適化技術を必要に応じて採用できるようにしていることを既に意味している。
分散マグニチュード符号化による実験
【0278】
ここで、上記分散マグニチュード符号化方策と共にFAST Cleanupパスのトリプルビットストリームの変形例が使用される第2セットの実験の結果が提示される。線形1×4グループ構造および2×2正方形グループ構造の双方がここではテストされる。表13および表14において、これらの構成の性能を表11および表12において(太字で)報告されたデュアルビットストリーム統合マグニチュード構成と比較する。
表13:統合および分散マグニチュード符号化を含むFASTブロック符号化器の変形例間の圧縮効率の比較。「CONS1×4」行は、表11において報告された、MEL符号化、線形1×4グループ、統合マグニチュード符号化およびデュアルビットストリームCleanupパスを伴う変形例に対応する。「DIST1×4」行は、MEL符号化、線形1×4グループ、分散マグニチュード符号化およびトリプルビットストリームCleanupパスを伴う変形例に対応する。「DIST2×2」構成は、正方形2×2グループが採用されることを除き、同じである。結果は、PCRD最適化対象としてのMSE(等価的にPSNR)により得られる、3ビットレートでのPSNR(dB)において報告される。
【表13】
【0279】
明らかに、ここでテストされる新しい構成は、線形グループ構造については0.04dB~0.2dBであり、2×2グループ構造については0.01dB~0.16dBである若干劣る圧縮パフォーマンスを提供する。これは幾分かは、トリプルビットストリーム構造のオーバーヘッドに起因するが、多くは、有意サンプルのマグニチュード間の冗長性を活用するために利用可能なコンテキスト情報の量を制限する分散マグニチュード符号化処理の結果である。
【0280】
圧縮効率におけるこの若干の損失と引き換えに、デコーディングスループットを大幅に向上することができる。FASTブロックデコーダのこの変形例の最適化された実施、すなわち、Intel社のSkylakeプロセッサにおいて利用可能なAVX2およびビット操作インストラクションの活用は、統合されたマグニチュード符号化による前の変形例のあまり最適化されていない実施の2倍のスループットを達成することができる。4bppにおいて、平均ブロックデコーディングスループットは、サンプル当たり約6クロック周期である。FASTブロックデコーダの分散マグニチュードの変形例の実施は、統合マグニチュードの変形例の実施よりも強く最適化される一方で、これは、主に、分散型のバリエーションは、より多くの最適化機会、つまり、より多くのベクトル化機会、ビット操作インストラクションの使用のためのより多くの機会、およびより小さいレイテンシを提供するからである。一方、エンコーダは少なくとも同程度に速い。これらの観察は、線形1×4グループ構造についてである。2×2正方形グループ構造の最適化された実施おいて同じまたはより高いスループットが達成可能であるはずだと期待される。なぜなら、操作はほぼ同様の複雑性であり、有意サンプルは、2×2グループ構造によってよりコンパクトに統合されるはずだからである。
表14:Kakaduのデフォルトビジュアル最適化(CSF重要性)が全てのこれらのテストにおいて有効化されていること以外は表4と同じ実験の結果。結果として、PSNR値は低く、評価された異なる構成を比較するために使用され得ること以外は必ずしも全てがそれほど意味があるわけではない。
【表14】
本発明の鍵となる特徴
【0281】
好ましい実施形態の上記説明において例示された、本発明の処理および装置の多数の典型的特徴があることが評価される。実施形態の有利な特徴を以下で簡単に説明する。なお、本発明はこれらの特性に限定されず、実施形態は、これらの特徴の一部または全てを含んでいてもよいし、これらの特徴を含まず変形例を利用してもよい。
【0282】
A.有意性の符号化は、グループに(グループサイズ4が好ましい)において実施される。
【0283】
B.有意性の符号化は、様々な方法において他の符号化ステップに先行する。
a.まず、好ましい実施形態において、具体的サブセットのグループ(AZCグループとして知られる)の有意性は、その独自のビットストリームを生成する適合型符号化エンジンを用いて符号化される。
b.他の有意性情報は、有意サンプルのためのマグニチュードおよびサイン情報が符号化される前に、グループベースで符号化される。
c.デュアルビットストリーム実施形態において、有意性情報は、コードブロックサンプルの一本のライン全体について、これらのサンプルについてのマグニチュードおよびサイン情報が符号化される前に符号化され、その後、次のラインが処理されるなどする。
d.トリプルビットストリーム実施形態において、有意性エンコーディングおよびデコーディングは、マグニチュードおよびサイン符号化処理から完全に分離され、その結果、有意性は、任意の順でエンコードされ得る一方で、デコーダは、最終のマグニチュードおよびサイン情報と並行してまたはそれより前に任意の所望のマージンによって有意性情報を回復することができる。
【0284】
C.有意性符号化は、グループコンテキストに基づき、ただし、グループのコンテキストは、コードブロック内において既に符号化された有意性情報にのみ依存する。
【0285】
D.有意性の符号化は、それ以外の場合は完全に非有意であると分かっていない各グループのために放出された単一符号語と共に、可変長符号化を利用し、ただし、符号語は、グループコンテキストに依存する。
【0286】
E.有意サンプルについてのマグニチュード情報の符号化は、既に符号化されたマグニチュードに関連付けられたマグニチュード指数を利用する。これらは、コンテキスト、または予測因子を形成するために使用され、これらに関して、有意サンプルのマグニチュード指数に対する上限が符号化される。この境界は、有意サンプルについて、サインビットと共に、未加工ビットストリームへ放出される必要がある追加マグニチュードビットの数を決定する。実施形態において、近傍のマグニチュード指数の合計は、上記コンテキストを形成するために使用され、コードブロックの第1ラインについて2つの先行する近傍が使用され、コードブロックにおける全ての他のラインについて4つの近傍(左、左上、上、および右上)が使用される。
【0287】
F.マグニチュード符号化コンテキストは、予測因子Gに変換され、その後、コンマ符号を使用してR=max{0、E-1-G}をエンコードし、ただし、Eは、有意サンプルのマグニチュード指数(必然的に非ゼロ)であり、その後、R>0であれば、サインおよびR+G最下位マグニチュードビットが放出され、それ以外はサインおよびR+G+1マグニチュードビットが放出される。
【0288】
G.他の実施形態において、マグニチュード指数境界は、有意性が符号化されるのと同じグループにおいて符号化される。このような実施形態において、これらの境界についての予測因子は、以前に符号化されたマグニチュードに基づいて、好ましくはコードブロック内におけるグループの先行の行から形成され、予測残差は、予測された境界と実際の境界との間の差を特定するために符号化されるが、厳格である必要はない。好ましい実施形態において、予測残差は、可変長コードを用いて符号化され、少なくとも1つの有意サンプルを含む各グループについての1つの符号語を生成する。好ましくは、これらの残差符号語は、同じグループのために有意性を符号化する可変長符号語でインターリーブされ、指数境界残差符号語および有意性符号語を、有意サンプルの実際のマグニチュードビットおよびサインを同じまたは異なる未加工ビットストリームから解凍する必要がある時点よりも前にデコードすることができる。符号化されたマグニチュード境界残差は、マグニチュードまたはマグニチュード指数についてさえ自己充足的な説明を一般的には提供しない。なぜなら、予測因子は、最初にデコードされる必要のあるマグニチュードに基づくためである。
【0289】
H.対応するビットプレーンについてJPEG 2000Significance Propagation符号化パスと同じ情報をエンコードする各コードブロックについての追加SigProp符号化パスの使用。実施形態において、この符号化パスは、有意性およびサインビットを、未加工符号語セグメントへ放出する。いくつかの実施形態において、「適合符号化器バイパスモード」で動作する、オリジナルのJPEG 2000Significance Propagationパスを、この目的のために使用してもよい。実施形態において、オリジナルのJPEG 2000Significance Propagationパスは、サンプル毎に有意性およびサインビットをインターリーブするのではなく、その1つのサンプルセットのための対応するサインビットよりも前に、1つのサンプルセットに関連付けられた関連する有意性ビットが未加工ビットストリームへ放出されるように変更される。好ましい実施形態は、4サンプルのセットに基づいてこのインターリーブを行う。実施形態は、ビットがビッグエンディアンビット順位ではなくリトルエンディアンで未加工ビットストリームのバイトに詰められる追加の変更を含んでいてもよい。
【0290】
I.対応するビットプレーンのためのJPEG 2000Magnitude Refinement符号化パスと同じ情報をエンコードする、各コードブロックのための追加MagRef符号化パスの使用。実施形態において、この符号化パスは、未加工符号語セグメントへレファインメントビットを放出する。いくつかの実施形態においては、この符号化パスは、「適合符号化器バイパスモード」で動作する、オリジナルのJPEG 2000Magnitude Refinement符号化パスと同一であってもよい。実施形態において、JPEG 2000Magnitude Refinementパスは、ビットが、ビッグエンディアンビット順位ではなくリトルエンディアンで未加工ビットストリームのバイトに詰められることによって変更される。
【0291】
J.各コードブロックの1または複数のビットプレーンのために、該ビットプレーンの一部または全てのためのSigPropおよびMagRef符号化パスと一緒に、様々な符号化パスのための歪推定と共に、Cleanupパスを生成する画像エンコーディング方法、ここで、最終のコードストリームへ放出される実際の符号化パスは、レート歪最適化ステップに基づいて生成される符号化パスから選択される。
【0292】
K.符号化パスが、類似するコードブロックから映像シーケンスにおける前のフレームのコードストリームへ放出される最も粗いビットプレーンに基づいて、符号化パスがコードブロック内で生成される最も粗いビットプレーンを決定し、だたし、類似性は、コードブロックが属するサブバンドおよび空間的な位置に関して測定される、上記方法。
【0293】
L.コードブロック内で符号化パスが生成される最も粗いビットプレーンを、先行フレームにおけるレート制御処理の挙動から推測される、サブバンド特異性最大データレート対象に依存して判断する、上記方法。
【0294】
M.1つのコードブロック内において生成される符号化パスの全セットを、前のフレームにおける同じコードブロックから集められた要約統計値の小さいセットに基づいて、該前のフレームにおけるコードブロックのためのレート歪み最適化ステップによって選択された符号化パスについての情報と共に判断する上記方法。
【0295】
N.実施形態において、上記方法は、符号化パスが生成される最も粗いビットプレーンを、複雑性推定に基づいて上または下へ調整することによって変更され、複雑性推定は、画像における各コードブロックおよびより大きい領域の圧縮可能性を示す。実施形態は、複雑性推定を採用する。複雑性推定は、各コードブロック内にサブバンドサンプルの絶対値を集積し、結果の近似の対数を採用することにより形成される。この形の複雑性値は、生成され、格納され、その結果、符号化パスが生成されているビットプレーンを決定するための基準として使用されるレート歪最適化結果を有する以前に圧縮されたコンテンツに対し、局所的およびより全体的な複雑性比較を各コードブロックの周囲に形成することができる。
【0296】
O.実施形態において、上記方法は、各コードブロックについてのレートと、歪み長さ勾配推定とを組み込むことによって変更され、歪み長さ勾配推定は、各コードブロックのために集積された要約統計値に対するサブバンドサンプルのための統計的モデルのフィッティングから、または、複数のマグニチュードビットプレーンの各々におけるコードブロック内の有意サンプルをカウントすることから様々に形成される。
【0297】
P.標準的なJPEG 2000ブロックビットストリームをここで説明した特性のFASTブロックビットストリームに変換する、トランスコーダ。ただし、Cleanupパスは、対応するJPEG 2000Cleanupパスからデコードされた情報を、全ての先行のJPEG 2000符号化パスと共に、エンコードし、一方、任意の後続のJPEG 2000SigPropおよびMagRef符号化パスにおいて見出される情報は、FAST SigPropおよびMagRef符号化パスによってエンコードされる。
【0298】
Q.ここで説明した特性のFASTブロックビットストリームを標準的なJPEG 2000ブロックビットストリームに変換する、トランスコーダ。ただし、FAST Cleanupパスにおいて見出される情報は、対応するJPEG 2000Cleanupパスにより、全ての必要な先行のJPEG 2000符号化パスと共に、エンコードされ、一方、FAST SigPropおよびMagRef符号化パスにおいて見出される情報は、対応するJPEG 2000SigPropおよびMagRef符号化パスによってエンコードされる。
【0299】
R.まず、上記FASTブロック符号化アルゴリズムを用いて画像をエンコードし、次に、通信における品質スケーラビリティを達成するため、または、画像(映像を含む)を保管するために、コードブロックを標準的なJPEG 2000表示に選択的にトランスコードする画像エンコーディングサービス。
【0300】
S.レンダリング効率を最適化するために、標準的なJPEG 2000フォーマットにエンコードされた画像を受信し、次に、コードブロックをFASTブロック符号化器表示に選択的にトランスコードする画像レンダリングサービス。
【0301】
T.エンコーディングまたはデコーディングシステムを分離するために利用可能なスループットを向上させるか、または、電力消費を改善させるために、一方のブロック符号化器表示によって符号化されたコンテンツを受信し、他方のブロック符号化器表示を用いてコンテンツを放出する画像トランスコーディングサービス。エンコーダが非常に高速であり得るか、または、デコーダが非常に高速であり得るようにトランスコーディングを行うクラウドベースのサービスの潜在性があり、一方、システムの他の部分は、JPEG 2000の品質スケーラビリティ特徴を保持し得る。
【0302】
本発明の実施形態のための多くの用途があり、その多くを上記で説明した。本発明の実施形態から利益を得ることができる4つの特別な用途分野は、以下の通りである。
JPEG-XSへの応用
【0303】
JPEGとして知られているJPEG ISO/IEC作業グループJTC1/SC29/WG1は、JPEG-XSとして知られる低レイテンシかつ低複雑性の画像符号化標準化アクティビティを発表した。この規格のための用途は、メディアのキャプチャおよび配信のためのメザニンフォーマットの使用を含み、ただし、現在のところJPEG 2000が使用される場合がある。
【0304】
考えられる用途は、高解像度高フレームレート表示のためのディスプレイ相互接続を主に含む。この第2用途は、JPEG 2000のFASTの変形例のためのありそうもない対象に最初は見えるかもしれないが、JPEG 2000フレームワークは、低レイテンシと互換性のあるトランスフォーム構造および符号化構造を既に提供している。特に、
【0305】
1.JPEG 2000規格のPart-2は、変換構造の定義において相当な柔軟性を提供するArbitrary Decomposition Style(ADS)およびDownsampling Factor Style(DFS)というオプションを含む。これらのオプションは、長年の間JPEG 2000の少なくとも一般向けのKakadu実施において利用可能である。特に、DFSオプションにより、異なる数のウェーブレット分解レベルを、水平および垂直方向において効果的に使用することができる。極低レイテンシ用途のために、2つの垂直分解レベルとより多くの数の(例えば6つの)水平分解レベルとの組み合わせは、良好な圧縮を産出することができる。
【0306】
2.JPEG 2000により、正方形のコードブロックだけでなく、公称高さが4ラインと小さく幅が1024列と小さい長方形のコードブロックを含むコードブロックが可能である。これを、コードブロックの高さをさらに抑制するために、解像度特有のプレシンクト寸法と組み合わせることができる。特に、2レベルの垂直ウェーブレット分解により、複数のコードブロックが、第1(最も高い)垂直サブバンドからそれぞれ4ラインを有するように準備することができ、一方、垂直分解の第2レベルにより作成される複数のコードブロックは、それぞれ2ラインを有し得る。垂直ウェーブレット分解の第3レベルは、それぞれ1ラインのみを有する複数のコードブロックを作成することができる。
【0307】
3.上記コードブロック/プレシンクト構成を、空間的に漸進的パケットプログレッションオーダ(特にPCRL)と組み合わせて、圧縮パフォーマンスを損ない視覚的なアーティファクトを導入する可能性のあるチルトを用いることなく、全てのサブバンドからのコードブロックの全てのセットをエンコーダによって8画素ライン毎に確実に放出することができる。
【0308】
4.なお、JPEG 2000のコードブロック構造は、当然、特にハードウエアにおいて高いデータレートを達成するために利用され得る有意レベルの計算の並列性を提供する。加えて、適合型量子化はそれを使用することを選択する用途のための規格のPart-2によってもサポートされているが、JPEG 2000のPCRD(圧縮後レート歪み最適化)特性を使用して、所望の目標ビットレートを(CBR設定においてさえ)量子化パラメータの動的変調に依存することなく達成することができる。
【0309】
5.最後に、JPEG 2000コードストリームを、(ピクチャー・イン・ピクチャーアプリケーションのために)部分的にデコードすることができるか、または、逆順でデコードすることができ、全フレームバッファについての必要性無く、圧縮ドメインにおいて、大きいフォーマットの映像ストリームが、垂直にフリップされるかまたは回転されることを許容することが留意される。
【0310】
JPEG 2000をJPEG-XSの対象に完全に一致するように適合させるために必要な主な変更は、複雑性が大幅に低減された代替のブロック符号化アルゴリズムである。
高い解像度の映像キャプチャへの応用
【0311】
大抵のモバイル装置は、それらの画像センサーがJPEG 2000を用いて作成することのできる高解像度映像ストリームを直接圧縮する十分なCPUパワーを有していない。FASTブロック符号化オプションは、圧縮されたストリームをリアルタイムで生成できるようにし、その後、品質スケーラビリティ属性が、例えば、JPIPを介した効率的なインタラクティブ閲覧のためなどで重要であれば、JPEG 2000フォーマットへトランスコードできるようにすることでこの問題に対処するものである。トランスコーディングは、任意の2つの圧縮フォーマット間において可能であるが、本願において説明されるFBCOTアルゴリズムの利点は以下の通りである。
a)トランスコーディングは、変換されたドメインにおいて生じ得る。
b)トランスコーディングは、圧縮自体に損失のあるものであっても、本質的に損失が無い。
c)トランスコーディングを、必要性が生じると、コードブロック毎であっても、選択的に行うことができる。
【0312】
映像撮影技術において使用されるカメラは、FASTブロック符号化器から特定の利益を導出することを期待され得る。なぜなら、デジタルシネマワークフローは、JPEG 2000を強く指向する一方、カメラ自体は、多くの場合、計算による/ハードウエアによる制限のため、異なる圧縮方策を採用するよう強制されるからである。
【0313】
より一般的には、FASTブロック符号化オプションは、JPEG 2000中心の構造にハイエンドのデジタルカメラの処理アーキテクチャを移行させるための止むを得ない理由を提供し、JPEGよりも一層多い機能性と、符号化およびエネルギー効率の潜在的に十分な節約とを提供するであろう、と期待されている。
エネルギー効率的画像/映像レンダリングへの応用
【0314】
JPEG 2000の多くの用途において、コンテンツは複数回レンダリングされる。例えば、大きい画像は、解像度または関心のある領域別に、インタラクティブに表示され、その結果、連続するレンダリングされた表示は、多くのコードブロックを共通して有している。完全に解凍されたコードブロックをメモリにキャッシュすることはめったに実用的ではないが、FASTブロック符号化オプションが利用できることは、インテリジェント・コンテンツ・キャッシュが、より迅速にまたはより少ないエネルギー消費でデコードされ得る表示のために繰り返しアクセスされているコードブロックをトランスコードすることを選択できることを意味する。本願に記載のFBCOTアルゴリズムの利点は、標準的なJPEG 2000コードブロックビットストリームのFASTブロックビットストリームへのトランスコーディングが、計算上効率的であり、かつ、全体的に少ない損失であり、オリジナルのJPEG 2000表示の全ての観点が正確に保持されていることである。
クラウドベースの映像サービスへの応用
【0315】
JPEG 2000は、映像コンテンツのための中間配信フォーマットとして優れたフレームワークを提供し、JPEG 2000により、関心のある解像度(または領域さえも)を出力点の近くで、効率的に抽出でき、すぐに、それを多数の共通ストリーミング映像フォーマットのいずれかにトランスコードしてもよい。この使用は既に実行可能であり潜在的に他のアプローチよりも好ましいが、このような用途は、全ての他の関連する機能性を維持しているライトウェイトブロック符号化器の利用可能性からさらに利益を得ることができる。
【0316】
上記実施形態は、JPEG 2000フォーマット内での使用に特に関連する。実施形態の観点は、これに限定されない。いくつかの実施形態は、他の画像処理フォーマットにおいて使用されてもよい。例えば、単一符号語セグメントの使用は、2つのパートを有し、各パートは、異なる符号化処理により異なるように符号化され、他の画像処理コンテキストにおいて用途を見出してもよい。
【0317】
上で検討した通り、本発明の実施形態は、ソフトウエアまたはハードウエアまたはソフトウエアとハードウエアとの組み合わせにおいて実施され得る。ソフトウエアを使用して本発明を実施する場合、該ソフトウエアを、ディスクなどのコンピュータ読み取り可能なメディア、またはインターネットなどのネットワークのデータ信号として、または任意の他の方法で提供することができる。
【0318】
当業者は、大まかに説明したように本発明の精神または範囲を逸脱することなく、具体的な実施形態において示したように、本発明に対して多数の変形および/または変更を行ってもよいということが分かる。したがって、本実施形態は、全ての観点において説明のためのものであり、これに限定されないものとする。
JPEG-XS要件の対応
【0319】
このセクションは、上記の検討を補足することを意図している。ここで、どのようにしてFASTブロック符号化器を低レイテンシ、高スループット映像圧縮/解凍環境において使用することができるかを説明する。なお、これが唯一の用途ではない。
低レイテンシのためのウェーブレット変換およびプレシンクト
【0320】
離散ウェーブレット変換(DWT)は、有限の空間サポートによる解析および合成の演算子を含み、その結果、画像ラインが現れるにつれてサブバンドデータを漸進的に生成(圧縮)し、消費(解凍)できることを思い起すことから始める。遅延/メモリ需要の少ない用途にこの特性を活用するために、JPEG 2000規格は、コードブロックをプレシンクトとして知られている空間集合に組織し、これらプレシンクトに関連付けられた符号化情報を空間的に漸進的な方法でシーケンス化するために様々なオプションを提供する。プレシンクトにおける各コードブロックに関連付けられたビットストリームは、品質層当たり1パケットで、いわゆるパケットに配置される。この検討において、パケットはプレシンクトと同等であると考える。なぜなら、FASTブロック符号化アルゴリズムを用いて作成されるコードストリームは、通常は、1つの品質層を有するのみだからである。また、空間的に漸進的なパケットシーケンスは、各プレシンクトの全てのパケットをまとめている。
【0321】
プレシンクト寸法は、コードブロックの寸法の抑制において追加の役割を果たす。このことは、重要である。なぜなら、プレシンクト寸法は、各解像度レベルのために異なるように規定され得るからである。最後に、JPEG 2000Part-2のDFS(Downsampling Factor Style)特徴は、DWT解凍構造における各レベルが先行のレベルを水平、垂直、または、水平および垂直の両方のいずれかに分割してサブバンドにするかを制御するために使用されてもよい、ということが留意される。
【0322】
図18は、従来のMallatスタイルの解凍の2レベルと関連付けられたサブバンド構造を、解凍の3レベルを用いることにより得られるDFSサブバンド構造と共に示し、ただし、最初の2レベルは、水平および垂直に分かれるが、最後のレベルは水平にのみ分かれる。この図は、プレシンクトが最高解像度レベルにおいて高さが8であり、2番目に高い解像度レベルにおいて高さ4であり、全ての比較的低い解像度レベルについては高さ2であるという仮定で、どのようにしてサブバンドがプレシンクトバンドに区分けされるのかを示す。なお、プレシンクトは、対応するDWT段階により分割される解像度レベルにおいて定義され、その結果、プレシンクトは、その段階により生成されるサブバンドに投影されてプレシンクトバンドを得る。コードブロック寸法は、それらのプレシンクトバンド確実に区画するように抑制されている。図18における変換構造の双方は、2レベルの垂直分解しか有していないので、最も高い垂直周波数サブバンドにおけるコードブロックは、高さ8/2=4を有し、次のレベルにおいては高さ4/2=2を有し、以下のレベルでは、高さ2/1=2を有する。JPEG 2000の一般向けのKakadu実施により、図18の解凍構造は、以下のオプションを用いて取得されてもよい。
―――――――――――――――
http://www.kakadusoftware.comを参照。
―――――――――――――――
1. Mallat: Clevels=2 Cprecincts={8,8192},{4,8192},{2,8192}
2. DFS: Clevels=3 Cprecincts={8,8192},{4,8192},{2,8192} Cdecomp=B(-:-:-),B(-:-:-),H(-)
【0323】
実際面では、JPEG-XS用途のために、この同じアプローチを、より大きい数の解凍レベルで使用することが提案され、その結果、最低周波数サブバンドは、より細かく水平サブバンドに区画される。しかしながら、レイテンシおよびメモリ演算の観点からは、鍵となる属性は、解凍の垂直レベルの数およびプレシンクト(それゆえに、コードブロック)の垂直寸法である。
【0324】
次に、圧縮されたコンテンツの計算または通信による何らかの遅延は今のところは無視して、本アプローチの本質的な末端間遅延の解析を提供する。この解析のために、(真に損失の無い圧縮のために)可逆または不可逆である5/3LeGall DWTを仮定する。後者は、高いビットレート9において優れた圧縮効率となる。
―――――――――――――――
高いビットレートにおいて、量子化ステップサイズが小さくなるにつれて、JPEG 2000Part-1の可逆5/3変換に関連付けられた整数丸め操作の効果は、量子化エラーを十分に増幅する傾向があり、その結果、パフォーマンスが不可逆変換により達成されるパフォーマンスよりも顕著に劣る。
―――――――――――――――
不可逆の5/3変換は、JPEG 2000Part-2任意変換カーネル(ATK)特性を介して収容される。特に、JPEG 2000のKakadu実施は、以下のオプションにより長い間この機能をサポートしている。Kextension:I2=SYMKreversible:I2=noKsteps:I2={2,0,0,0}、{2,-1,0,0}Kcoeffs:I2=-0.5,-0.5,0.25,0.25
【0325】
本質的遅延のこの解析は、垂直分解構造にのみ依存し、垂直分解構造のために、図12に示すように、2レベルを仮定する。垂直変換だけを考えて、Hが解凍の第1レベルにより生成される高パスサブバンドを表し、HおよびLが第2レベルにより生成される高パスおよび低パスのサブバンドを表すとする。図12に示す2つの次元分解に関し、Hは{HL,LH,HH}と等価であり、Hは{HL,LH,HH}と等価であり、一方、Lは他のサブバンドの全てに対応する。
【0326】
上で検討した同じプレシンクト寸法を仮定し、その結果、Hからのコードブロックはそれぞれ4ラインを有し、一方、LおよびHに関連付けられているコードブロックはそれぞれ2ラインを有する。なお、JPEG 2000からの空間的に漸進的なパケットプログレッションシーケンス10は、空間的に対応する比較的低い解像度のプレシンクトの後のコードストリームにおいて比較的高い解像度のプレシンクトが発現するという特性を有する。
―――――――――――――――
10具体的に、最もゆっくりと進行する空間寸法を有するPCRLシーケンスを参照し、次に、構成要素寸法(すなわち、構成要素インターリービング)を参照し、最も迅速に進行する解像度および品質層が続く。
―――――――――――――――
上記条件について、パケットプログレッションシーケンスは以下のように拡張され得る。ただし、括弧内の数は、各プレシンクト内で放出されるコードブロックの高さを示す。
【0327】
明らかに、圧縮されたコンテンツ(JPEG 2000パケットにおけるコードブロックビットストリーム)は、8つのオリジナル画像ライン毎に結果として生じるコードストリームにフラッシュされてもよい。コードブロックの対応するセットをコードブロック「フラッシュセット」と称する。
【0328】
入力画像ラインとコードブロックに属する対応するサブバンドラインとの間の具体的な関係を図14に示す。図面から、垂直5/3DWTの2つの段階、および、コードブロックと入力ラインサンプルとの間の本質的な依存性を明確に推定することができる。なお、各フラッシュセットを生成するエンコーダのために、入力画像(ライン0~10)の11本のラインがバッファされる必要がある。つまり、処理される8ライン(ライン0~7)に加えて、3つの更なるライン(ライン8~10)がDWT解析計算の一部としてバッファされる必要がある。
【0329】
デコーダにおいてコードブロックを利用できるようになると、合成操作を行って画像走査ラインを復元する。合成手順を、デコードされた走査ラインとコードブロックサンプルのセットとの間の依存性がハイライトされた図20に示す。なお、画像ライン11およびその前の画像ラインに基づいてエンコーダにより生成された第1「フラッシュセット」からのみの係数を必要として、ライン0~4をデコードすることができる。ライン5~7をデコードするために、デコーダは第2フラッシュセットに対するアクセスを必要とする。この依存性は、図において赤い色の付いたラインによってハイライトされ、第2フラッシュセットからのデータを必要とする合成経路を示す。この第2フラッシュセットは、エンコーダがライン19を見るまで利用可能とならない。
【0330】
バッファリング要件、および、各デコードされたラインについて経験される対応する末端間遅延は、表15にまとめられる。経験された最大の遅延は、14ラインであり、ライン5をデコーディングするために起こる。この遅延は、デコードされるライン番号とエンコーダにおいて必要とされる最大画像ライン番号との間の差に等しい。
表15:再構築された出力ラインと必要とされるソースラインとの間の関係を誘発する遅延
【表15】
【0331】
このセクションの最後に、追加の末端間遅延は、エンコーダとデコーダとの間の情報の通信において必然的に起こるということを注記しておく。CBR(一定のビットレート)条件下で、各フラッシュセットに関連付けられた通信遅延は、8画素ラインに等しく、その結果、上記DWTおよびプレシンクト構成により達成され得る最小の末端間遅延は22ラインである。JPEG-XS要件は、CBR条件下で32ラインの最大遅延を特定している。このことは、連続するフラッシュセットに関連付けられたビットを不均一に分散するためにエンコーダが柔軟性を有することを意味する。
【0332】
なお、上記構成は単なる一例である。関心のある他の構成は、依然としてJPEG-XSの32ラインの末端間遅延要件を依然として満たすことができる、異なるDWT変換カーネルを含んでいてもよい。
ハードウエアリソースの検討
【0333】
離散ウェーブレット変換(DWT)のハードウエア複雑性はすでに周知である11ため、FASTブロック符号化アルゴリズムの複雑性にここでは焦点を絞り、なお、5/3DWT(解析または合成)のリフティングベースの実施のためのワーキング/状態メモリは、ただ二つ(2)ラインのバッファからなる。
―――――――――――――――
11例えば、Taubmanand Marcellin, JPEG2000: Image Compression Fundamentals, Standards and Practice,Springer, 2002の17章を参照。
―――――――――――――――
サブバンドサンプルを格納するために必要とされる全ての他のメモリは、以下で説明するように、コードブロック自体と関連付けられていてもよい。最高精度の用途の他は、これら2ラインバッファの各々におけるサンプル当たり16ビットを提供すれば十分である。
【0334】
以下の検討は、1×4グループ構造および統合されたマグニチュード符号化での変形例に関する。しかしながら、同様の検討は、2×2グループ構造および/または分散型のマグニチュード符号化でのバリエーションに当てはまる。
VLC表
【0335】
エンコーダは、それぞれ9ビットの128エントリ、すなわち、符号語のために6ビット、その長さのために3ビットを必要とする。これらの128エントリは、エンコードされることになる4ビット有意性パターンをそれぞれ有する8コンテキストに対応する。
【0336】
デコーダは、各7ビットの512エントリ、すなわち、デコードされた有意性パターンのための4ビット、符号語長さのための3ビットを必要とする。これらの512エントリは、それぞれ最大6ビットを有する符号語を生成する8コンテキストに対応する。
コードブロックサンプルバッファメモリ
【0337】
コードブロック全体がローカルメモリに格納されているとして、各16ビットの最大4096エントリは、大抵の用途には十分なはずである。非常に高精度のアプリケーションは、サブバンドサンプルのためにより大きいビット深度を採用してもよい。
【0338】
ただし、SigPropおよびMagRef符号化パスは4ラインストライプにおいて動作するということに注意すれば、このメモリ要件をたった4コードブロックラインに下げるために符号化パスの並行処理を採用することができる、ということを理解するのは難しくない。しかしながら、これ自体はその全てが2または4ラインの高さを有する上記で提案されたコードブロック寸法を使用する場合は、興味深いことではない。
【0339】
エンコーダは、以下の方策を使用することによりサンプルバッファリングをさらに低減することができる。各Cleanupパス12は、実際のサンプル値の1ラインのためにのみバッファリングすることを必要とし、そのため、処理は、コードブロックの第1ラインがウェーブレット変換機構により供給されるとすぐに、開始可能である。
―――――――――――――――
12エンコーダは、多重Cleanupパスを生成してレート制御機構により多くのオプションを付与してもよい。
―――――――――――――――
SigPropおよびMagRef符号化パスはそれほど早くは開始しないが、これらは双方とも次に細かいビットプレーンにおいてのみ動作し、そのため、エンコーダにとっては、サブバンドサンプルのただ1つの完全なラインと、サンプル当たり1つのマグニチュードビットと1つのサインビットのみを保持するプラス3つの追加のラインのためのストレージを提供するだけ十分である。
【0340】
したがって、16ビットサブバンドサンプルで動作する場合、エンコーダは、22W
ビットのためのストレージを提供さえすればよい。ただし、Wはコードブロックの幅である。
【0341】
FASTブロック符号化アルゴリズムが上述のように第3ビットストリームによって増大される場合、同様の方策をデコーディング中に採用することができ、その結果、4コードブロックラインのセット全体についての有意性情報をサイン/マグニチュード情報の前にデコードすることができる。しかしながら、FASTブロック符号化アルゴリズムの現在の(好ましい)形態では、たった4ラインの高さであるコードブロックは、少なくとも3ラインのサブバンドサンプルのためのストレージを必要とする。
マグニチュード指数メモリ
【0342】
マグニチュード指数は、マグニチュード符号化ステップのために必要とされ、有意性を直接的に推測するために使用することもでき、サンプルは、そのマグニチュード指数が非ゼロである場合であってその場合に限り、有意である。エンコーダおよびデコーダは、マグニチュード指数を明確に格納するための必要性を回避することができ、サンプル値自体からその場でマグニチュード指数を導出する。それにもかかわらず、エンコーディングおよびデコーディング実施は、処理されている現在のラインおよび(マグニチュードコンテキスト形成のために使用された)先行のラインに関連付けられたマグニチュード指数を格納することを有用だと見出すかもしれない。
【0343】
比較的低い精度の画像/映像圧縮用途については、マグニチュード指数を表すために4ビットで十分であり、一方、高精度アプリケーションは、指数当たり5ビットを必要とする可能性がある。
パス間状態情報
【0344】
Cleanup符号化パスにおいて見出されたように、コードブロックサンプル当たり1ビットが、その有意性を記録するために必要であり、その結果、SigPropおよびMagRef符号化パスは、必要に応じて追加の情報がエンコードまたはデコードされることになるサンプルを簡単に特定することができる。
符号化されたビットのためのストレージ
【0345】
符号語セグメント自体に関連付けられているアクセス帯域幅は、サンプル値および符号化器状態情報に関連付けられているアクセス帯域幅よりも大幅に低い。CBR条件下で、ワーキングコードブロックのセットのために圧縮されたデータの合計量は、簡単に制限され、全てのこのようなデータをオンチップで格納することは意味がある可能性があり、複数の低帯域幅アクセスポートを平行ブロック符号化エンジンの多数に対して提供する。あるいは、符号化データの一部をチップ上へまたはチップから外してより大きな外部メモリ格納部へ動かして、圧縮されたデータのために少量のローカルストレージしか実際に必要とされないようにすることが好ましい場合がある。これに関連するコストを分析することは難しいが、最終的には、他のメモリコストよりも大幅に少ないはずである。
有意性符号化のための演算
【0346】
有意性符号化は、一時に4サンプルのグループに対して行われ、そのため、スループット要件は比較的低い。符号化コンテキストは、簡単な2値論理を使用して形成され、近傍有意性フラグビットの小さい集合において動作する。可変長エンコーディングおよびデコーディングの処理の複雑性は、十分に理解されるが、ここでは、符号語長さは1~6ビットの小さい範囲しか有しておらず、これも実施を簡単化するのに役立つ。
MQ算術符号化器
【0347】
AZCグループ有意性シンボルのためにMQ符号化よりもMEL符号化を使用することが現在のところ好ましいが、それにもかかわらず、MQ符号化に関連付けられたハードウエアリソースについていくらか説明することは価値がある。
【0348】
乗算器無しのMQ符号化器を、有限のキャリープロパゲーションと共に、(設計により)ハードウエアにおいて非常に効率的に実施することができる。FASTブロック符号化器においてただ1つの符号化コンテキスト(AZCコンテキスト)が採用されるため、MQ符号化器は、効果的にはただ1種類の適合型ランレングス符号化器であり、この適合型ランレングス符号化器は、複雑性と符号化効率との間の妥当なトレードオフの関係が既に最適化されている。MQ符号化器は、46個の到達可能な16ビットエントリを有する確率推定状態機械による、低精度計算および論理演算により特徴付けられる。
【0349】
MQ符号化器の全体的なスループットは、ここで説明するFASTブロック符号化アルゴリズムにおいて、4コードブロックサンプル当たり1シンボル未満である必要があり、それゆえ、低コストのパイプライン実施を採用することができ、1を上回る繰り込みシフトが所望であればパイプラインを停止するために許容され得る。なぜなら、このようなシフトの数を確定的に境界付けすることができ、MQエンコーダもMQデコーダも他のエンコーディングまたはデコーディングステップと厳格に同期化される必要がないためである。
MEL適合符号化器
【0350】
上で詳述したように、FASTブロック符号化アルゴリズムにおいてAZCグループ有意性符号化のために使用されるMEL符号化器は、13の状態しか有していない。状態遷移も些細なものであり、極めて簡単なハードウエア実施につながる。
マグニチュード符号化のための演算
【0351】
κ[n]値(マグニチュード指数予測因子)の形成は、合計4つの低精度adds必要とし(8ビット計算は十分であり)、結果の最下位2ビットを破棄する。最悪の場合、サンプル当たり1つのκ[n]値を計算する必要がある。導出された量u[n]およびm[n]は、より低い精度さえ有し、簡単な計算および論理演算を用いて形成され得る。コンマ符号は、実施するためには些細なものであり、残りのアルゴリズムは、マグニチュードビットおよびサインビットを未加工ビットストリームに詰めるまたは未加工ビットストリームから放すことを含む。
【0352】
マグニチュード指数を生成するために、エンコーダには、マグニチュード値において最上位セットビットを見出すことができるビット走査論理が設けられているべきである。同様に、デコーダには、コンマ符号のデコーディングおよびマグニチュード指数の復元の双方のためのビット走査論理が設けられているべきである。ビット走査は、ANDゲートの主に単なる予備である。
ビットスタッフィング
【0353】
ここで説明するFASTブロック符号化アルゴリズムは、その符号語セグメント内において誤りマーカー符号(FF90h~FFFFh)の発現を回避するためにビットスタッフィングを用いる。これは、多くの既存のJPEG/JBIG規格のための要件であり、おそらく保持されるべきである。ビットスタッフィングの導入は、ソフトウエア実施に対して小さい影響を与えるものの、ハードウエア複雑性に大きく寄与しないはずである。
処理遅延の簡単な検討
【0354】
ブロックベースの符号化方策は、ブロック区切り無しにサンプルまたはラインを連続的に処理する方策よりも大きい末端間遅延を実際面で生成する可能性があるといえる。エンコーダはサンプルの第1ライン(ライン0)がDWT解析エンジンから到着し始めるとすぐに(すなわち、ブロックの形成を待たずに)、デュアルビットストリーム構成によって、Cleanupパスの処理を開始することができるが、他の符号化パス(必要な場合)は、最後のライン(ライン1またはライン3)が到着し始めるまで開始することができない。同様に、デコーダは、Cleanupパスからサンプルを走査ライン順に放出することができるが、これらのサンプルは、SigPropおよびMagRef符号化パスが結果を生成し始めることができるまで、遅延される必要がある可能性があり、このことは、CleanupデコーディングがJPEG-XSのために提案される短いコードブロックにおいて最後のライン(ライン1またはライン3)の開始に到達するまで起こり得ない。
【0355】
これらの考察は、まず、(例えば、クロックレートまたは帯域幅制限により)均一なレートでしか符号化パスを処理することができない実施は、全体的な圧縮/解凍システムの実用的な末端間遅延を顕著に増大させることを示唆するが、これはデュアルビットストリーム構成のためのみであるということに注目すべきである。
【0356】
しかしながら、パス間デコーディング遅延の実際の意味合いは、最初に考えるよりも重要ではない、ということについて議論する。上で研究したように、末端間遅延は、実際には、低解像度サブバンドにより支配されており、該サブバンドのために、高さ2を有するコードブロックを使用することが提案される。一方、高さ4のコードブロックを有するHサブバンドは、双方とも、まずはエンコーダで利用可能であり後にデコーダで必要となる。事実、高さ4を有するHサブバンドからのコードブロックは、双方とも高さ2を有するHおよびLサブバンドからのコードブロックよりも遅い2ラインまでは、DWT合成のために必要とされない。偶然に運よく一致することに、2つの走査ラインのこの差異も、並行ブロックデコーダが各タイプのコードブロックのためのサブバンドサンプルを完了し始めることができる点間の遅延における差である。したがって、関心のある遅延を処理するだけでは、基本的に1つの走査ラインである、高さ2のコードブロックの処理という結果になる。
【0357】
それにもかかわらず、図7のトリプルビットストリーム構成は依然として好ましい。なぜなら、これにより、パス間デコーディングレイテンシを1ラインまたはそれ以下に低減でき、一時に4サンプルのグループに行われる有意性情報のデコーディングが可能なレートによってのみ決定できるからである。この低いパス間遅延を上記の議論と組み合わせることで、末端間遅延に対するこの小さい処理レイテンシの実際の影響をゼロに低減することができることが示唆される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20