JP7477178B2 - 画像圧縮のための方法及び装置 - Google Patents

画像圧縮のための方法及び装置 Download PDF

Info

Publication number
JP7477178B2
JP7477178B2 JP2021519707A JP2021519707A JP7477178B2 JP 7477178 B2 JP7477178 B2 JP 7477178B2 JP 2021519707 A JP2021519707 A JP 2021519707A JP 2021519707 A JP2021519707 A JP 2021519707A JP 7477178 B2 JP7477178 B2 JP 7477178B2
Authority
JP
Japan
Prior art keywords
coding
samples
magnitude
group
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021519707A
Other languages
English (en)
Other versions
JP2022504604A (ja
Inventor
スコット タウプマン、デイビッド
Original Assignee
カカドゥ アール アンド ディー ピーティーワイ リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2018903869A external-priority patent/AU2018903869A0/en
Application filed by カカドゥ アール アンド ディー ピーティーワイ リミテッド filed Critical カカドゥ アール アンド ディー ピーティーワイ リミテッド
Publication of JP2022504604A publication Critical patent/JP2022504604A/ja
Application granted granted Critical
Publication of JP7477178B2 publication Critical patent/JP7477178B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Auxiliary Devices For And Details Of Packaging Control (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Description

本発明は、画像圧縮のための方法及び装置に関し、詳細には、限定はしないが、画像圧縮のための改善されたブロック・コーディング装置及び方法に関する。
画像圧縮システムが知られている。JPEG及びJPEG2000は、画像圧縮のための普及している規格である。
JPEG2000アルゴリズムは、多くの多様な分野において適用される特徴のリッチなセットを提供する。最も重要な特徴のうちのいくつかは、以下の通りである。
・ 圧縮効率
・ 品質スケーラビリティ
・ 解像度スケーラビリティ
・ 関心領域アクセシビリティ
・ 並列計算
・ 反復符号化なしの最適化されたレート制御
・ 視覚的に関係する最適化目標をターゲットにする能力
・ 誤り耐性
・ 圧縮されたドメイン(すなわち、超低メモリ)転置及び反転動作
・ コード・ブロック、プレシンクト又はJ2Kパケット・レベルにおいて情報を再シーケンス化する能力
これらの特徴の大部分は、EBCOTアルゴリズム(最適化切断による組込みブロック・コーディング(Embedded Block Coding with Optimized Truncation))の使用から派生するが、階層型離散ウェーブレット変換(DWT:Discrete Wavelet Transform)の使用も重要な役割を果たす。
これらのコア特徴に加えて、規格のJPEG2000スイートは、以下の適用例について良好なサポートを提供する。
・ JPIPを介した(ビデオ及びアニメーションを含む)像の効率的で応答型のリモート対話型ブラウズ。
・ 巨大な像ソースからの任意の領域の効率的なオンデマンドのレンダリング。
・ 非線形トーン曲線及び/又はカスタム浮動小数点マッピングの使用による、高いダイナミック・レンジ圧縮。
・ リッチなメタデータ注釈。
・ ハイパースペクトル及びボリュメトリック・コンテンツの効率的な圧縮。
JPEG2000規格の欠点は、計算複雑さである。ビデオ適用例の場合、及び特に電力を意識する適用例の場合、圧縮及びレンダリング複雑さは、JPEG2000の多くの利益にもかかわらず、JPEG2000を採用することに対する障害になることがある。
第1の態様によれば、本発明は、画像サンプルがブロック・コーディング・プロセスによりコード・ブロックに形成される、画像圧縮の方法を提供し、ブロック・コーディング・プロセスは、
走査順序において前のサンプルの有意性(significance)のみに依存するコードを使用して、サンプルのセットについての有意性情報をコーディングするステップと、
走査順序において前のマグニチュード(magnitude)及び有意性情報のみに依存するコードを使用して、サンプルのセットについてのマグニチュード及び符号(sign)情報をコーディングするステップと、
有意性及びマグニチュード・コード・ビットを、サンプルの各セットに関連する有意性ビットが、コーディングされた表現(コードワード・セグメント)中で一緒に出現するように、セットごとに構成するステップと、
コード・ブロック中のサンプルの各セットについてコーディングするステップ及びコード・ビット構成ステップを繰り返すステップと
を含む。
一実施例では、ブロック・コーディング・プロセスは、サンプルのセットがサンプルのグループを含むように、コード・ブロックのサンプルをグループに収集するステップを含む。有意性コーディング・ステップはグループに適用される。一実施例では、各グループは、コード・ブロックのラスタ走査に従う4つの隣接サンプルを含む。別の実施例では、各グループは、高さ2のストライプをもつコード・ブロックのストライプ指向走査に従う4つの隣接サンプルを含み、したがって、グループはコード・ブロック内に2×2編成を有する。
一実施例では、グループ有意性シンボルは、コード・ブロック内のいくつかのグループについて、各グループが有意サンプルを含んでいるのか有意サンプルをまったく含んでいないのかを通信するための適応コードを使用してコーディングされる。実施例では、グループ有意性シンボルは、コード・ブロック内のすでにコーディングされた空間近傍が完全に非有意であるグループについてコーディングされる。実施例では、グループ中のサンプルについての有意性をコーディングするステップは、グループが適応グループ有意性シンボル・コーディングの対象であるかどうかと、そのようなグループ有意性シンボルの値とに依存する。
実施例では、ブロック・コーディング・プロセスは、複数のビットストリームを含む単一のコードワード・セグメントを作り出すステップを含む。一実施例では、前方伸長(forward growing)ビットストリーム及び後方伸長(backward growing)ビットストリーム(デュアル・ビットストリーム)が使用され、したがって、個々のビットストリームの長さが別個に通信される必要がなく、デコーダにとって、個々のビットストリームが属するコードワード・セグメントの長さがわかれば十分である。別の実施例では、2つのビットストリームが前方に伸長し、1つのビットストリームが後方に伸長する、3つのビットストリーム(トリプル・ビットストリーム)が使用され、3つのビットストリームからなるコードワード・セグメントの全長に加えて、2つの前方伸長ビットストリーム間のインターフェースは明示的に識別される。実施例では、最終の圧縮されたコードストリーム内の禁止コードの出現を回避するために、コード・ブロックのコードワード・セグメントの別個のビットストリーム内でビット・スタッフィング技法が適用される。
実施例では、グループ有意性シンボルの適応コーディングによって作り出されたビットは、コード・ブロックのコードワード・セグメント内のそれら自体のビットストリーム(適応的にコーディングされたビットストリーム)に割り当てられる。
一実施例では、グループ有意性シンボルは、適応算術コーディング・エンジンを使用してコーディングされる。
別の実施例では、グループ有意性シンボルは、適応ランレングス・コーディング・エンジンを使用してコーディングされる。
一実施例では、サンプルのセットについての有意性をコーディングするステップは、コンテキストに基づき、サンプルのセットのコンテキストは、走査ライン順序において、コード・ブロック中のサンプルの前のセットについてすでにコーディングされた有意性情報のみに依存する。一実施例では、コンテキストベース有意性コーディングのステップは、可変長コードを利用し、単一のコードワードが、他の場合は、完全に非有意であると知られていないサンプルの各セットについて放出される。
実施例では、コンテキストベース有意性コーディングによって作り出されたビットは、適応的にコーディングされたビットストリームとは別個であるビットストリーム(未加工ビットストリーム)内に構成される。
一実施例では、マグニチュード情報をコーディングするステップはマグニチュード・コンテキストに基づき、各サンプルについてのマグニチュード・コンテキストは、それの近傍のマグニチュード指数から形成される。一実施例では、マグニチュード・コンテキストは、近接サンプル・マグニチュード指数の和から形成される。
一実施例では、コード・ブロックの有意サンプルについてのマグニチュード及び符号情報を符号化するために使用されるビットは、コンテキストベース有意性コード・ビットと同じビットストリーム(未加工ビットストリーム)内に構成されるが、サンプルのセットについての有意性ビットが、サンプルの同じセットについてのマグニチュード及び符号ビットの前に出現するように分離される。一実施例では、ビットストリーム内で有意性ビット及びマグニチュード/符号ビットを分離するための基礎を形成するサンプルのセットは、コード・ブロックの全走査ラインである。
別の実施例では、マグニチュード及び符号情報を符号化するために使用されるビットは、コンテキストベース有意性コード・ビットとは別個のビットストリーム(未加工ビットストリーム)内に構成される。
他の実施例では、有意サンプルについてのマグニチュード及び符号情報は、可変長コーディングされた部分とコーディングされていない部分とに分離され、ここで、可変長コーディングされた部分によって作り出されたビットは、コンテキストベース有意性コード・ビットと同じビットストリーム(VLCビットストリーム)内に構成され、コーディングされていない部分は別個のビットストリーム(未加工ビットストリーム)内に構成される。そのような実施例では、有意性VLCビットとマグニチュードVLCビットとは、サンプルのセットについての有意性VLCビットがサンプルの同じセットについてのマグニチュードVLCビットの前に出現するように、VLCビットストリーム内で分離される。一実施例では、有意性VLCビットをマグニチュードVLCビットから分離するために使用されるサンプルの前記セットはグループ・ペアに対応し、有意性コーディングはグループに基づく。
一実施例では、画像圧縮の方法はJPEG2000フォーマットに準拠し、上記で説明されたブロック・コーディング・プロセスは、通常のJPEG2000ブロック・コーディング・プロセスの代わりに使用される。
一実施例では、有意性及びマグニチュード・コーディング(Cleanupパス)のステップは、あるマグニチュード・ビットプレーンに対してコード・ブロック内で量子化サブバンド・サンプルを通信するコードワード・セグメント(Cleanupセグメント)を作り出す。一実施例では、次により細かい(より高い精度)マグニチュード・ビットプレーンに対して、Cleanupパスにおいて非有意としてコーディングされたコード・ブロック内のいくつかのサンプルの有意性を表す、追加のコードワード・セグメント(SigPropセグメント)が、より細かいビットプレーンに対してのみ有意であるサンプルについての符号情報とともに作り出される。一実施例では、Cleanupパスにおいて有意としてコーディングされるサンプルについて、より細かい(より高い精度)ビットプレーンに関して最下位マグニチュード・ビットを保持するさらなるコードワード・セグメント(MagRefセグメント)が作り出される。実施例では、SigPropパスは、JPEG2000において定義された通り、4ライン・ストライプ指向走査に従う、Cleanupパス又はSigPropパスのいずれかにおいて、近傍が有意としてコーディングされた、前に非有意のサンプルについての有意性情報をコーディングする。一実施例では、SigPropパスによって作り出された有意性ビットと符号ビットとは、サンプルのセットについての新しい有意性ビットがサンプルの同じセットについての符号ビットに先行するように単一の未加工ビットストリーム内で分離される。一実施例では、SigPropコードワード・セグメント内に有意性ビット及び符号ビットを構成するための基礎を形成するサンプルのセットは、4つのサンプルからなる。
一実施例では、本発明の方法は、特に、標準JPEG2000 EBCOTアルゴリズムと比較して、比較的高速のブロック・コーディング・アルゴリズムを提供するという利点を有する。本明細書では、FBCOT(最適化切断による高速ブロック・コーダ(Fast Block Coder with Optimized Truncation))という用語を使用する。高速ブロック・コーダ・オプションは、いくつかの利点を有し、それらの利点は、以下の発明を実施するための形態から明らかになる。
第2の態様によれば、本発明は、本発明の第1の態様による方法を実装するように構成された符号化装置を提供する。
第3の態様によれば、本発明は、サンプルのセットについての有意性情報をコーディングすることと、サンプルのセットについてのマグニチュード及び符号情報をコーディングすることと、最終の圧縮された結果(コードワード・セグメント)内の得られたコード・ビットを構成することと、有意性、符号及びマグニチュード情報が、コード・ブロック中のサンプルのすべてのセットについてコーディングされるまで、サンプルの他のセットについて、コーディングするステップ及びコード・ビット構成ステップを繰り返すこととを行うように構成された、ブロック・コーダを備える、符号化装置を提供する。
第4の態様によれば、本発明は、JPEG2000規格に準拠する画像圧縮の方法であって、画像サンプルが、ブロック・コーディング・プロセスによってコード・ブロックに形成され、改善が、ブロック・コーディング・プロセスにおいてCleanupパスを実装することを含み、これは、すべての対応する先行するJPEG2000コーディング・パスによって符号化されることになる情報とともに、対応するJPEG2000 Cleanupパスによって符号化されることになる情報を符号化する、方法を提供する。
第5の態様によれば、本発明は、コーディング・パス動作の限られたセットのみが各コード・ブロックについて実施される必要があるプロパティとともに、画像又は画像のシーケンスを圧縮するときに、ターゲットの圧縮されたサイズが達成されることを可能にするレート制御方法を提供する。
本発明の特徴及び利点は、添付の図面を参照することによって、単に実例として、その実施例の以下の説明から明らかになるであろう。
RESTARTモード・フラグを用いて/用いずに作り出されるコードワード・セグメントを示すFASTコーディング・パス、並びにエンコーダによって生成され、コードストリームに最終的に放出され得るコーディング・パスの実例の図である。 Cleanupパス・エンコーダ(デュアル・ビットストリーム・バージョン)のブロック図である。 Cleanupパス・エンコーダ(トリプル・ビットストリーム・バージョン)のブロック図である。 Cleanupパス・エンコーダ(分散マグニチュード情報を用いたトリプル・ビットストリーム・バージョン)のブロック図である。 FASTブロック・コーダのCleanupパスについてのデュアル・ビットストリーム・コードワード構造の表現である。 FASTブロック・コーダのCleanupパスについてのトリプル・ビットストリーム・コードワード構造の表現である。 4で割り切れない偶数の幅Wをもつコード・ブロックの第1の2つのラインの部分を示す、線形1×4グループの場合のラスタ走査順序を示す図である。最右グループの欠落したサンプルが、無視されるのではなく、0でパディングされることに留意されたい。 奇数の幅Wの3つのラインをもつコード・ブロックを示す、正方形2×2グループの場合のライン・インターリーブ(line-interleaved)走査順序の図である。コード・ブロックと重複する各グループ内の欠落したサンプルが、無視されるのではなく、0でパディングされることに留意されたい。 FAST Cleanupパスのデュアル・ビットストリーム・バージョンについての有意性及びマグニチュード/符号情報のライン・インターリーブ・シーケンシングの表現である。ここでの説明は、1×4線形グループ構造に固有でなく、2×2グループについて、Wは、コード・ブロック幅の2倍として解釈されるべきである。 FAST Cleanupパスのトリプル・ビットストリーム・バージョンについての有意性及びマグニチュード/符号情報の完全に切り離された処理の表現である。ここでの説明は、1×4線形グループ構造に固有でなく、2×2グループについて、Wは、コード・ブロック幅の2倍として解釈されるべきである。 線形1×4グループgにおける有意性コーディングのために使用される情報の図である。 正方形2×2グループgにおける有意性コーディングのために使用される情報を示す図である。 E[n]がそれのコード・ブロックの第1のラインに属する場合と属さない場合とについて別個に示される、E[n]についてのマグニチュード・コーディング・コンテキストを形成するために使用される近接マグニチュード指数の表現である。 コード・ブロック内のグループの初期行を除いて、線形1×4グループ(上部)と正方形2×2グループ(下部)とについての分散マグニチュード・コーディングに関与する量を示す図である。
JPEG2000ブロック・コーディング・アルゴリズムの簡単な概観
既存のJPEG2000ブロック・コーディング・アルゴリズムは、コーディング・パスのシーケンスを通して各コード・ブロック内のサブバンド・サンプルを処理する。次のセクションにおけるFASTブロック・コーディング・アルゴリズムの異なるが関係するコーディング・パス構造を説明するために、これを簡単に復習することは役立つ。
X[n]を、ロケーションn=(n,n)によってインデックス付けされたコード・ブロック内のサンプルを示すものとし、ここで、0≦n<Wは水平位置を表し、0≦n<Hは垂直位置を示し、W及びHは、それぞれ、コード・ブロックの幅及び高さである。各コーディング・パスはビットプレーン・インデックスp≧0に属し、ビットプレーン・インデックスp≧0に関して、サンプルX[n]の量子化マグニチュードは、

によって与えられる。
ここで、Δは、可逆コーディング・プロシージャの場合に存在しない量子化ステップ・サイズである。
[n]≠0である場合、サンプルX[n]がビットプレーンpに関して「有意」であると言う。
最も細かいビットプレーン(最高品質)は、p=0に対応し、最も粗い品質は、p=K-1に対応し、ここで、Kは、コードストリーム・ヘッダ中に記録されたサブバンド固有パラメータによって決定される、所与のサブバンドに属する任意のコード・ブロックについてのビットプレーンの最大数である。
各コード・ブロックについて、パラメータMstartは、関係するJPEG2000パケット・ヘッダを介して通信され、パラメータMstartは、コード・ブロックの表現中の欠落したビットプレーンの数として解釈される。JPEG2000ブロック・デコーダは、コード・ブロック中のすべてのサンプルがビット・プレーンp≧K-Mstartにおいて非有意であることを予想することができる。等価的に、有意サンプルを含んでいることがあるビットプレーンの総数は、
P=K-Mstart
によって与えられる。
JPEG2000ブロック・コーディング・アルゴリズムにおける第1のコーディング・パスは、ビットプレーンp=P-1についての(有意サンプルについてのみの)有意性情報及び符号を符号化する。このコーディング・パスは、「Cleanup」パスとして識別される。重要なことには、このcleanupパスにおいてコーディングされる有意サンプルは、マグニチュード1を有しなければならない。
各連続的により細かいビットプレーンについて、3つのコーディング・パスが作り出され、「SigProp」(有意性伝搬)コーディング・パス及び「MagRef」(マグニチュード・リファインメント)コーディング・パスとして識別される。次いで、合計で、以下の構造をもつ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): ...
エンコーダが最終のコードストリーム中に含まれる情報から任意の数の末尾のコーディング・パスをドロップし得ることに留意されたい。事実上、エンコーダが、そのようなコーディング・パスがドロップされることになることを合理的に予期することができる場合、エンコーダは、初めからそれらのコーディング・パスを生成する必要はない。
標準JPEG2000ブロック・コーディング・アルゴリズムでは、すべてのコーディング・パスは、4つのライン・ストライプをもつストライプ指向走査パターンを採用する。各ストライプの列は、次のストライプに移動する前に左から右にアクセスされるが、各ストライプ列内で、ストライプ列の4つのサンプルは上から下に走査される。
JPEG2000ブロック・コーダは、cleanupパスにおけるすべてのシンボルについて算術コーディングを利用するが、随意にSigPropコーディング・パス及びMagRefコーディング・パスにおいて未加工(コーディングされていない)ビットを単に放出することができる。未加工ビットが非cleanupパスについて放出されるこのモードが、「算術コーダ・バイパス」モード、又は略して単に「BYPASS」モードとして識別される。
本発明のこの実施例によるFASTブロック・コーディング・アルゴリズムの重要な要素
コーディング・パス構造
FASTブロック・コーダはまた、ビットプレーンpに関して定義された、Cleanupコーディング・パス、SigPropコーディング・パス及びMagRefコーディング・パスを伴う、コーディング・パス構造を採用する。しかしながら、重要なことに、各ビットプレーンpに関連するCleanupパスは、M[n]≠0であるサンプルのマグニチュードM[n]及び符号を完全に符号化する。この情報は、すべての前の(より大きいp)コーディング・パスに関連するものを完全に包含し、したがって、コードストリームにそれらを放出しても意味がない。
結果として、第1の放出されたコーディング・パスがCleanupパスである限り、先頭のコーディング・パスと末尾のコーディング・パスの両方がエンコーダによってドロップされ得る(又は決して生成されないことがある)ことになる。事実上、エンコーダが、最終のコードストリーム中の所与のコード・ブロックについて4つ以上のコーディング・パスを実際に含むことはまったく意味をなさない。図1は、FASTブロック・エンコーダによって生成され得る、及び/又は最終のコードストリームに放出され得るコーディング・パスを示す。
デコーダの観点から、JPEG2000パケット・ヘッダをパースすることによって復元されるMstart値は、依然としてコード・ブロックについての第1の利用可能なコーディング・パスに関連するビットプレーン・インデックスp=K-Mstart-1を識別するように働く。しかしながら、FAST Cleanupパスが所与のサンプルについての複数のマグニチュード・ビットを符号化することができるので、Mstartは、すべて0である先頭のマグニチュード・ビットの数としてもはや解釈され得ない。エンコーダは、Mstartが各コード・ブロックについての第1の放出されたコーディング・パスを正しく記述することを保証するように注意するべきである。
FASTブロック・コーダによって生成されたSigPropコーディング・パスとMagRefコーディング・パスとは、互いに依存せず、それらは、直前のCleanupパスのみに依存する。FASTブロック・コーダによって生成されたSigProp及びMagRefコーディング・パスは、JPEG2000の場合とまったく同じ情報を符号化し、したがって、FASTブロック・コーディング・アルゴリズムが使用されるのか、標準JPEG2000ブロック・コーダが使用されるのかにかかわらず、Cleanupパス、SigPropパス又はMagRefパスの終端において表現を切断することに関連する有効な量子化は同じである。
SigPropパスからのすべての有意性及び関連する符号情報は、未加工2進数字として放出され、MagRefパスからのすべてのマグニチュード・リファインメント情報は、未加工2進数字として放出され、ここで、これらの未加工ビットストリームは、範囲FF90h~FFFFh(脚注1)における偽マーカー・コードの出現を回避するためにJPEG2000要件に従うビット・スタッフィング・プロシージャのみを受ける。
FASTブロック・コーディング・アルゴリズムによって採用されるMagRefパスは、コード・ビットがリトルエンディアン・ビット順序を用いて未加工ビットストリームのバイトにパックされることを除いて、算術コーダ・バイパス・モード(略してBYPASSモード)で動作する、標準JPEG2000ブロック・コーダのMagRefパスと同等である。すなわち、バイトにおける第1のコード・ビットは、それのMSBとは対照的に、それのLSBにおいて出現する。
FASTブロック・コーディング・アルゴリズムによって採用されるSigPropコーディング・パスはまた、BYPASSモードで動作する、標準JPEG2000ブロック・コーダのSigPropコーディング・パスと極めて同様であり、以下の差がある。
1.コード・ビットは、同じく、リトルエンディアン・ビット順序を用いて未加工ビットストリームのバイトにパックされるが、JPEG2000コーダは、ビッグエンディアン・ビット・パッキング順序を使用する。
2.高さ3又は高さ4のストライプの場合、各ストライプ列に関連する有意性ビットが最初に放出され、次のストライプ列に進む前に、関連する符号ビットが続く。
3.高さ2のストライプの場合、ストライプ列の各ペアに関連する有意性ビットが最初に放出され、ストライプ列の次のペアに進む前に、関連する符号ビットが続く。
4.高さ1のストライプ列の場合、4つのストライプ列(4つのサンプル)の各グループに関連する有意性ビットが最初に放出され、4つのストライプ列の次のグループに進む前に、関連する符号ビットが続く。
これらの変更は、ともに、特にソフトウェア・ベースの実装形態について、元のJPEG2000方法に勝る実装利点を有する。最後の3つの変更は、以下で説明されるように、有意性情報をサンプル・データの他の態様から分離する原理、Cleanupパスのためにより大きいスケールで採用する原理に従うことに留意されたい。これらの最後の3つの変更は、適度のルックアップ・テーブルに基づく加速された復号を可能にするために慎重に作られる。最後の2つの変更は、短くて広いコード・ブロックが頻繁に発生することを予想される適用例、特に低レイテンシ適用例についてのみ重要である。他の適用例の場合、すべてのストライプ高さをカバーし、最後の2つを除去するために、第2の変更を拡張することは、適切であり得る。
ブロック・コーディング・アルゴリズム自体は別として、FASTブロック・コーダは、他のJPEG2000コードストリーム構成体又はそれらの解釈に対する影響を有しない。プレシンクト、パケット、タイル、変換、及びすべての他のJPEG2000要素は、不変のままである。特に、JPEG2000パケットの構成は、従来のブロック・コーディング・アルゴリズムが使用されるのか、FASTブロック・コーディング・アルゴリズムが使用されるのかにかかわらず、ブロック・コーダによって作り出されるコードワード・セグメントに依存する。
コードワード・セグメントは、パケット・ヘッダを介して長さが必然的に識別される、バイトのシーケンスである。標準JPEG2000ブロック・コーダは、すべてのコーディング・パスを、単一のコードワード・セグメント(デフォルト・モード)にパックし得るが、RESTARTモードでは、各コーディング・パスに、それ自体のコードワード・セグメントが割り当てられ、RESTARTがない(1つ又は複数の)BYPASSモードでは、SigProp及びMagRefコーディング・パスに、まとめてコードワード・セグメントが割り当てられる。
FASTブロック・コーダは、暗示されるBYPASSモード・フラグと、意味を有しないRESETモード・フラグとを除いて、標準JPEG2000ブロック・コーダについて定義されるモード・フラグのすべてをサポートする。3つ以下のコーディング・パスがコードストリームに放出され、BYPASSが暗示されるので、図1に示されているように、RESTARTモード・フラグに応じて、生じることがある2つのタイプのコードワード・セグメントのみがある。CAUSALモードがSigPropコーディング・パスの解釈に影響を及ぼすので、CAUSALモードは、すべての標準JPEG2000ブロック・ビットストリームへの/からの完全可逆トランスコーディングを保証するために、オプションとして保持されなければならない。
Cleanupパス概観
このセクションの残りは、FASTブロック・コーダのCleanupパスについて説明することに充てられる。進行する前に、エンコーダについての要約ブロック図を提供することは役立つ。後の説明を容易にするために、本明細書によってカバーされるFAST cleanupパスのいくつかの異なる変形態に対応するいくつかのバージョンにおいて符号化ブロック図を提供する。変形態は、以下のように、2つの主要なやり方において区別される。
1.各変形態は、デュアル・ビットストリーム構造又はトリプル・ビットストリーム構造のいずれかを有する。デュアル・ビットストリーム構造は、圧縮観点から、概念的により簡単でごくわずかにより効率的であるが、トリプル・ビットストリーム構造は、ソフトウェア及びハードウェア最適化のためにより多くのオプションを提供し、したがって、一般に好まれることになる。デュアル・ビットストリーム構造は、1つのビットストリーム内でVLCビット及びMagSgnビットをインターリーブするが、トリプル・ビットストリーム構造は、別個のVLCビットストリーム及びMagSgnビットストリームを提供する。
2.他の顕著な特徴は、各有意サンプルについてのマグニチュード情報が、1つのビットストリーム(MagSgnビットストリーム)内に統合されるのか、VLCビットストリームとMagSgnビットストリームとの間で分散されるのかである。分散手法は、統計的冗長性を活用するわずかにより少ない機会を提供するが、サンプル間依存性を低減又は除去することによって、ソフトウェア復号スループットを改善し、ハードウェア復号クロック・レートを増加させる。分散手法はまた、MagSgnビットストリームに関連するワースト・ケース・データ・レートを低減し、それは、ハードウェア実装形態の場合、より良好である。
図2は、統合マグニチュードをもつデュアル・ビットストリーム構造についてのエンコーダ・ブロック図を提供する。図3は、同じく統合マグニチュードをもつトリプル・ビットストリーム構造についての対応するブロック図を提供する。最後に、図4は、分散マグニチュード情報をもつトリプル・ビットストリーム変形態についての符号化プロシージャを示す。ここでデュアル・ビットストリームと分散マグニチュード情報とをもつ変形態をわざわざ明示的に提示しないが、それのブロック図は、すでに提供されたものから明らかになるであろう。これらのブロック図の要素は以下のサブセクションにおいて説明されるが、「記憶」要素は、前もってある程度明確化するに値するであろう。
記憶要素は、コード・ブロックのサンプル並びに何らかの推論された状態情報を記憶することができるバッファを表す。符号化中に、記憶要素はサブバンド・サンプルでポピュレートされ、その後に、導出された量(有意性フラグ及びマグニチュード指数)が直ちに見つけられ得る。記憶要素は、コード・ブロック全体についてすべてのサンプル又は導出された量を必ずしも収容する必要はないが、このようにして事物を概念化することは最も容易である。
Cleanupパスにおけるデュアル又はトリプル・ビットストリーム
上述のように、JPEG2000コードストリーム構造との適合性のために、FASTブロック・コーダのCleanupパスは、既存の方法を介して(1つ又は複数の)関係するパケット・ヘッダについて長さが通信される単一のコードワード・セグメントを作り出す。しかしながら、FASTブロック・コーダでは、このコードワード・セグメントは、2つ又は3つのビットストリームに分割される。
A. 前方に伸長する適応的にコーディングされたビットストリーム、
B. コードワード・セグメントの終端から後方に伸長する未加工ビットストリーム、及び
C. いくつかの変形態における、コードワード・セグメントの開始から前方に伸長する第2の未加工ビットストリーム。
ここで「適応的にコーディングされた」という用語は、シンボル統計値を何らかのやり方で学習し、それに適応するコンテキスト適応型エントロピー・コーダの存在を識別する。対照的に、未加工ビットストリームは、偽マーカー・コード(下記参照)を回避するための必須のビット・スタッフィングは別として、単にパックされたビットからなる。様々な適応コーディング技術が利用され得、本明細書は、それらのうち、特に注目する2つ、すなわち、a)JPEG2000からのMQ算術コーダ、及びb)JPEG-LSによって使用されるMELコーディング・アルゴリズムと同様のMELコーディング・アルゴリズムについて説明する。結局、その両方は、極めて同様の圧縮効率及び同様の状態遷移パターンを提供するが、MELコーディング手法は、より小さい状態機械を有し、したがって、一般に好ましい。
図5は、デュアル・ビットストリーム構成を示す。図2の対応するブロック図を参照すると、未加工ビットストリームは、ここで、ラインごとにインターリーブされた、VLC有意性コードワード並びにマグニチュード・ビット及び符号ビットを含む。
図6は、トリプル・ビットストリーム構成を示し、VLC有意性コードワードは、インターリーブされるのではなく、マグニチュード・ビット及び符号ビットから完全に分離される(切り離される)(図3参照)。トリプル・ビットストリーム構成は、2つの前方伸長ビットストリーム間の境界を識別するために余分のシグナリング(インターフェース・ロケータ・ワード)が必要とされるので、わずかに効率が劣る。しかしながら、独立しているか、中間で接触するか、又は重複することさえあり得る、前方伸長ビットストリームと逆方向伸長ビットストリームとの間の境界が、正しい復号に干渉しない限り、この境界を明示的に識別する必要がない。
ここで、目標は、依然として、パケット生成に対して1つのコードワード・セグメントのみを提示し、既存のJPEG2000規格との最大適合性のための機構をパースする一方で、処理複雑さとコーディング効率との間の異なるトレードオフを表す、異なるコーディング技術の使用を可能にすることである。
単一のコードワード・セグメント内の2つの異なるビットストリームの使用は、同時/並列処理を可能にすることにおいて有意な利点を有する。FASTブロック・コーダに関連する適応的にコーディングされたビットストリームは、(1つ又は複数の)他のビットストリームとは無関係に符号化及び復号され得る。高度デコーダ実装形態では、適応的にコーディングされたシンボルの一部又は全部は、未加工シンボルよりずっと前に復号され得、未加工シンボルの複合は、適応的にコーディングされたシンボルの一部又は全部に依存する。エンコーダは、未加工ビットの一部又は全部がコード・ブロックのために放出されるまで、適応符号化ステップを延期することができ、それは、ソフトウェア実装形態において有益であり、ハードウェア展開にとって十分に有益であり得る。
わずかに効率が劣るが、トリプル・ビットストリーム構成は、それがさらにより高いレベルの同時性を提供し、符号化プロセス及び復号プロセスの順序付けにおけるより高いレベルのフレキシビリティをサポートするという理由で選好される。これらは、ハードウェアにおいて特に有益であり得る。手短に説明されるように、コーディング・プロセスは、有意性情報がマグニチュード及び符号情報とは無関係に符号化又は復号され得るようなものである。これは、デコーダが他の2つのビットストリームを参照せずに、適応的にコーディングされたビットストリームを処理することができ、MagSgn未加工ビットストリームを参照せずに、VLC未加工ビットストリームを処理することができることを意味する。エンコーダは、デュアル・ビットストリーム変形態のインターリービング動作によって課される同期制約なしに、所望される場合、同時にすべての3つのビットストリームを生成することができる。トリプル・ビットストリーム構成のさらなる重要な利点は、エンコーダとデコーダの両方が、実質的なパス間遅延なしにCleanupパスと同時に任意の有意性伝搬(SigProp)パス又はマグニチュード・リファインメント(MagRef)パスを処理することができることである。
これらの特性は、ブロック・コーダのハードウェア実装形態の場合、保証された、サンプルごとの単一クロックの処理を容易にし、それは、複数のコード・ブロックの利用可能性と組み合わさって、極めて高いデータ・スループットが、低いクロック・レートにおいて得られることを可能にする。
デュアル・ビットストリーム構造及びトリプル・ビットストリーム構造が同時性及び切り離すことにおいてもたらす利益は、ビットストリームが発展する順序に依存せず、したがって、もちろん、考慮され得る他の極めて密接に関係するビットストリーム構成がある。以下のポイントから諒解され得るいくつかの理由のために図6における構成を選好する。
1. MagSgnビットストリームは、高いビットレートにおいてビットストリームの最大のものである傾向があり、したがって、このビットストリームをコードワード・セグメントの開始から前方に伸長させることにある程度の利益があり、各コード・ブロックの終端において、生成されたバイトを再構成するために必要とされる労力を最小限に抑える。
2. VLCビットストリームと適応的にコーディングされたビットストリームとの組み合わせられたサイズは、確定的に制限され得る。
a.有意サンプルについてのすべてのマグニチュード関係ビットがMagSgnビットストリームのみにおいて見つけられる統合マグニチュード情報があれば、この制限は、VLCビットストリーム内で利用されるコードについての好適な選定を条件として、Smax<1020バイトを満たすように示され得、L=10ビット・インターフェース・ロケータ・ワード(ILW:interface locator word)を使用して2つの前方伸長ビットストリーム間の境界をシグナリングすることを可能にする。
b.コーディングされたマグニチュード情報をVLCビットストリームとMagSgnビットストリームとの間で分散する変形態の場合、VLCビットストリームと適応的にコーディングされたビットストリームとの組み合わせられたサイズが増大し、VLCビットストリームとともに利用されるコードについての好適な選定を条件として、Smax<2040バイトを満たすように示され得る制限を伴う。これは、L=11ビット・インターフェース・ロケータ・ワード(ILW)を使用して2つの前方伸長ビットストリーム間の境界をシグナリングすることを可能にする。
Lビット(すなわち、10又は11ビット)ILWをコードワード・セグメントの終端に配置し、それの8つのMSBが最後のバイトにおいて出現することは、末端の「FFh」が回避される(JPEG2000要件)という利益を有する。ILWのL-8(すなわち、2又は3)LSBは、コードワード・セグメントの最後から2番目のバイトの最下位のL-8ビット位置を占有し、次いで、それの他の16-L(すなわち、6又は5)ビットは、コード・ビットのために利用可能である。
3. CBR適用例においてバッファ・アンダーフローを回避するために、2つの前方伸長セグメント間で余分のバイトがスタッフィングされる必要がある場合、スタッフィング・ロケーションは、複数のコードワード・セグメントがコードストリーム・バッファに放出された後でも、単に最後の2つの生成されたバイトを読み取ることによって容易に見つけられ得る。
ここで、複数のビットストリーム構成の同時性利益はまた、適応的にコーディングされたビットストリームのために使用される適応コーディング・アルゴリズムの選定に依存しない。次の2つのサブセクションでは、綿密に検討した2つの適応コーディング技術、すなわち、MQコーディング及びMELコーディングについて、具体的な詳細及び考慮事項を提供する。
コードワード・セグメント全体は、範囲FF90h~FFFFhにおいて偽マーカー・コードがないことを必要とされ、これは、複数のISO/IEC画像コーディング規格において見つけられる一般的な要件である。すなわち、バイトのペアは、第1のバイトの16進値がFFhであり、第2のバイトの16進値は範囲90h~FFh内にあるという特性を有するべきでない。さらに、JPEG2000規格は、偽マーカー・コードを作成する危険なしに、コードワード・セグメントの後の再構成を可能にするように、コードワード・セグメントの末端バイトがFFhでないことを必要とする。
JPEG2000において、及びJBIG2においても使用されるMQ算術コーダは、それが偽マーカー・コードを放出することができない特性をすでに有している。
他の適応コーディング・アルゴリズムの場合、ビット・スタッフィングは、MELコーディングの場合について以下で説明されるように、偽マーカー・コードを回避するために別個に導入される必要がある。
前方伸長未加工ビットストリームの場合、偽マーカー・コードは、JPEG2000ブロック・コーダのBYPASSモードで作り出された未加工ビットストリームと同じストラテジーを使用して回避される。詳細には、放出されたFFhに続くバイトは、7つの有効ビットのみを含んでおり、0がそれの最上位ビット位置にスタッフィングされる。
Cleanupコードワード・セグメントの終端から後方に伸長する未加工ビットストリームは、以下のように偽マーカー・コードを回避する。ビットは、ビットを最下位ビット位置から開始するバイトにパックする放出未加工動作を介して、コーディング・プロシージャから未加工ビットストリームに放出される。バイトがアセンブルされると、そのバイトは、最後の放出されたバイト(何もない場合0)と組み合わせられて、16ビット・ビッグエンディアン符号なし整数Vを形成する。エンコーダが、
(V&7FFFh)>7F8Fh
を見つけた場合、Vの最上位ビットは、新たに生成されたバイトを放出する前にリセットされ、その後、削除されたばかりのビットは、それが次のバイトの最下位ビットになるように、放出未加工に受け渡される。
もちろん、上記で説明されたビット・スタッフィング・ストラテジーと等価である高速実装形態がある(脚注2)。デコーダは、デコーダが未加工ビットストリームから(後方に)バイトを読み取るとき、同じ条件を待ち構えてスタッフィング・ビットを削除する。
交互ビット・スタッフィング手法が考慮され得、この交互ビット・スタッフィング手法では、テストされる条件は、単に、以下である。
(V&7F80h)≠0
この手法はごくわずかにより簡単であるが、圧縮効率の同様にごく小さい低減という犠牲を払う。
ビットストリーム間のインターフェースにおいて、そこでも偽マーカー・コードが生成されないことを確実にするために、注意が払われなければならない。これを行うために、エンコーダは、追加のバイトを挿入するか、又はビットストリームのうちのいずれかの末尾において未使用ビットを反転する必要があり得る。
デュアル・ビットストリーム構成の場合、エンコーダは、スタッフィング・ビット(すなわち、0)を、それの最初のステップとして後方伸長未加工ビットストリームに放出することによって、コードワード・セグメントの最後のバイトがFFhでないという要件に対処し、このスタッフィング・ビットは、任意の有効ビットの前にデコーダによって消費される。
トリプル・ビットストリーム構成の場合、初期スタッフィング・ビットは必要とされず、なぜなら、後方伸長VLC未加工ビットストリームが、コードワード・セグメントの最後から2番目のバイトの最後の16-L(すなわち、6又は5)ビットから開始し、最後のL(すなわち、10又は11)ビットがインターフェース・ロケータ・ワードによって占有され、その最終のバイトがFFhと同程度に大きくなることができないからである。ビット・スタッフィング及びビット・アンスタッフィング・アルゴリズムの目的で、コードワード・セグメントの最後のLビットは、それらがすべて1であったかのように扱われ、これは、エンコーダが、インターフェース・ロケータ・ワードに挿入されることになるLビット値に対する依存なしに、すべてのビットストリームについてビット・スタッフィングを実施し、完了されたバイトを生成することを可能にする。
実際的実装形態では、これは、符号化するより前にL個のプレースホルダー・ビット(すべて1に等しい)をVLC未加工ビットストリームに実際に放出し、すべての符号化が完了した後に、これらのビットをILW値で上書きすることによって、達成され得る。一方、デコーダは、最初にILWを抽出してSを決定し、対応するLビットを1と置き換え、次いで、すべてのS個のサフィックス・バイトを、VLC未加工ビットストリームに関連するビット・アンスタッフィング機構に受け渡すことができ、この手法では、L個のプレースホルダー・ビットは、VLC未加工ビットストリームから消費され、実際のブロック復号が開始する前に廃棄されることになる。
トリプル・ビットストリーム構成の場合、デコーダは、MagSgnビットストリームの終端において単一のFFhを、それのビットを取り込んでマグニチュード及び符号情報を復号するより前に、常に付加する。したがって、エンコーダは、他の場合はMagSgnビットストリームに放出されることになる末端のFFhを廃棄することができ、一般にそれらの末端のFFhを廃棄するべきであり、2つの前方伸長ビットストリーム・セグメント間のインターフェースにおいて偽マーカー・コードが生じる可能性を回避する。
MQ適応算術コーディング
算術コーディングは極めて強力でフレキシブルな技術であるが、FASTブロック・コーダは、AZCシンボルとして知られている、バイナリ・シンボルの可変長ストリングσAZC[i]を表すために適応コーディングを使用する。以下で説明されるように、これらのサンプルはすべて、同一の(全0)近隣を有し、したがって、それらを、異なる統計値をもつサブクラスに分離するためのアプリオリなやり方はない。したがって、符号化実装形態と復号実装形態の両方を簡略化する、1つの適応MQコーディング・コンテキストのみが利用される必要がある。
MQコーダは、46個の到達可能な状態をもつ状態機械を利用し、ここで、状態遷移が再正規化イベント上でのみ発生する。再正規化は、LPS(劣勢シンボル(least-probable symbol))がコーディングされるとき、常に発生し、ここで、LPSは、ほとんどいつもσAZC[i]=1に対応する。さらに、1つのMPS(優勢シンボル(most-probable symbol))再正規化イベントが、一般にLPSシンボル間で発生する。したがって、1によって終了される0AZCシンボルの各ランについて、約2つの状態遷移が予想され得る。事実上、MQコーダは、「スキュー・コーダ」まで追跡され得る系統をもつ、ランレングス・コーダのタイプとして理解され得、これは、効率的なランレングス・コーディング・アルゴリズムに他ならない。
MQコーディング・アルゴリズムの詳細は、ここで繰り返される必要はないが、FASTブロック・コーダによって利用されるデュアル・ビットストリーム構造が、MQ終了ストラテジーの選定に対する影響を有するということを指摘する。最も簡単な手法は、よく知られているElias終了方法を使用することであり、Elias終了方法では、MQコーダの間隔ベース・レジスタCは、214だけ増補され(MQ間隔長レジスタAは16ビット幅であり)、この追加されたビット14がフラッシュされるまで、バイトはコーダからフラッシュされる。最後のフラッシュされたバイトがFFhである場合、1つの追加のバイトは、偽マーカー・コードを回避するためにMQとCleanupビットストリーム・セグメントの未加工ビットストリームとの間に放出される必要があり得る。
もちろん、真に最適なMQビットストリーム終了も可能であるが、是認される可能性が低い、複雑さのより大きい代償を払う。最小長のMQ終了は、しばしば、それらの情報ビットのうちのいくつかを未加工ビットストリームと共有し、上記で説明されたElias終了手法に対して、約6ビットの、全体的Cleanupコードワード・セグメント長の平均的な低減を達成する。
MEL適応コーディング・アルゴリズム
MELCODEは、適応ランレングス・コードとして最も容易に理解される。したがって、説明の便宜上、AZCシンボル・ストリームσAZC[i]がランレングスRAZC[j]のシーケンスに最初にコンバートされると考え、ここで、各ランは、次の1に先行する0の数を表す。4つのコード・ブロック・サンプルのあらゆるグループについて多くとも1つのAZCシンボルがあり、コード・ブロックは4096個よりも多いサンプルを有し得ないので、コーディングされる必要がある最大ランレングスは1024であり、これは、完全に非有意なコード・ブロックに対応し、したがって、通常発生するはずはないが、とはいえ、その可能性を考慮に入れる。これは、空でないコードワード・セグメントが完全に空のコード・ブロックを表すために使用されることを可能にし、これは、非効率的であるが、CBR適用例では、バッファ・アンダーフローの回避のために有用であり得る。
JPEG-LS規格において使用されるMELコーダは、32個の状態を有するが、範囲0~12の状態インデックスkをもつ13個の状態のみを用いて、FASTブロック・コーダについての異なる状態機械を定義することが役立つことがわかる。各状態kは、指数EMEL[k]としきい値

とに関連する。表1は、主要な量の値をリストする。
MELCODEは、ランレングスRAZC[j]についての適応ゴロム・コードであり、ここで、しきい値TMEL[k]は、ゴロム・パラメータの役割を果たす。適応を無視すると、コーディング・プロシージャは、次のように要約され得る。
R≧Tである間、1(「ヒット」)を放出し、RからTを減算する
0(「ミス」)を放出し、RのE個のLSBが続く
指数関数的に分散された情報源についての最適ゴロム・パラメータは、それの平均値の半分よりも少し大きい。したがって、一般的なランRは、1つのヒットと後続のミスとによってコーディングされるべきである。これは、適応状態機械が(平均して)各ランについて1つのヒットと1つのミスとを経験するべきであることを暗示し、それは、表1に示されているように、各ヒットの後に状態を増分することと、各ミスの後に状態を減分することとによって達成される。
完全なMELコーディング・アルゴリズムは、以下の通りである。
k=0を初期化する
各j=0,1,...について
R←RAZC[j]を設定する
R≧TMEL[k]である間
「1」(「ヒット」)を放出する
R←R-TMEL[k]を更新する
k←min{k+1,12}を更新する
「0」(「ミス」)を放出する
RのEMEL[k]LSBを放出する
k←max{k-1,0}を更新する
アルゴリズムは、ランレングス・コーディングに関して表されるが、それは、まさに、MQコーダがラン上で動作する状態機械としてリキャストされ得るように、個々のシンボル上で動作する適応状態機械として常にリキャストされ得る。個々のAZCシンボルのためのエンコーダとして、MELコーダは、ここで、7つ以上のコード・ビットを作り出すことができないが、しばしばビットをまったく作り出さない。MQコーディング手法とMELコーディング手法の両方は、ほぼ同数の状態遷移を呈するが、MELコーダの利点は、それが極めて小さい状態機械を有することである。マルチ・シンボル・コーディングの目的で、MQコーダの状態機械は、MQ状態インデックスと16ビットAレジスタの両方からなると見なされ得るが、本明細書のMELコーダは、4ビット状態インデックスのみを有する。少なくともソフトウェア実装形態では、ランの符号化及び復号を駆動するために小さいルックアップ・テーブルを使用することが望ましく、ここで、たいていの場合、完全なランを符号化又は復号するために単一のルックアップで十分である。
MELコーダによって放出されたビットは、MSBから開始し、LSBまで作業するビッグエンディアン様式でバイトにパックされる。その上、偽マーカー・コードの出現を防ぐために、0ビットが、FFhに続く任意のバイトのMSBにスタッフィングされる。
たいてい、コード・ブロックにおける最後のAZCシンボルは0であり、したがって、最終のランは実際に「オープン」であり、これは、より大きいランを符号化することがAZCシンボルの正しい復号に干渉しないことを意味する。さらに、MELコーダによって作り出された最終のバイトは、しばしば、1つ又は複数の未使用LSBを含んでいる。これらのことを念頭に置いて、様々な終了ストラテジーが、MELコーディングされたビットストリームのために考案され得る。MQコーディングされたビットストリームの場合と同様に、MELビットストリームに属するバイトは、正しい復号が保証される限り、cleanupコードワード・セグメント内の未加工ビットストリームに属するものと部分的に重複し得る。
FASTブロック・コーダの様々なビットストリーム中のビット及びバイトについてのシーケンシング・ポリシーは、主要な動作原理を変更することなしに様々なやり方で修正され得ることが明らかであろう。たとえば、後方伸長MELコーディングされたビットストリームが、前方伸長未加工ビットストリームに接触するように構成することができる。また、未加工ビットストリーム中のビットがビッグエンディアン順序でパックされ、MELコーディングされたビットストリーム中のビットがリトルエンディアン順序でパックされるように構成することができる一方、依然として、2つのビットストリーム間のインターフェースにおいて終了ストラテジーを可能にすることを許容する。しかしながら、リトルエンディアン・ビット・パッキング順序は、ソフトウェア実装形態のための利益をもたらす傾向があり、したがって、一般に、適応的にコーディングされたビットストリームよりも大きい、未加工ビットストリームのためにリトルエンディアン順序を採用することは意味をなす。
Cleanupパス・グループ及び走査パターン
FASTブロック・コーディング・アルゴリズムの重要な特性は、Cleanupパスについての有意性情報がグループにおいて収集され、他の情報より先にコーディングされることである。有意性の効率的なコーディングは、特により低いビットレートにおいて極めて重要であり、ここで、コード・ブロックにおけるどのサンプルが有意(すなわち、非0)であるかを識別して、コーディングされたビットの半分以上が消耗され得る。FASTブロック・コーダは、グループ中のすべてのサンプルの有意性(又はそれ以外)を一度に識別するためにVLCコードワードの固定セットを使用する。さらに、FASTブロック・コーダは、AZC(全0コンテキスト(All-Zero Context))グループとして知られている、サンプルのいくつかのグループを完全に非有意である可能性があるものとして識別し、適応(MQ又はMEL)コーディング・エンジンは、各AZCグループが実際に完全に非有意であるか否かを効率的に符号化するために使用される。
グループがそのような重要な役割を果たすので、それらのサイズ及びジオメトリは重要である。経験的証拠は、サイズ4のグループが複雑さとコーディング効率との間の最良のトレードオフを提供することを強く示唆する。より小さいグループの場合、適応AZCグループ・コーディングはより有効である傾向があり、VLCコードワードは小さくなり得る。より大きいグループの場合、より多くのサンプルの有意性が一度にコーディングされ得るが、小さいテーブルを用いて管理するには、VLCコードワードが長くなりすぎる。
本明細書では、各々が4つのサンプルをもつグループの2つのタイプに基づくFASTブロック・コーディング・アルゴリズムの変形態について説明する。
1.線形(又は1×4)グループは、単一の走査ライン内の4つの水平方向に隣接するサンプルからなる。コード・ブロック幅が4で割り切れない場合、各走査ライン内の最後のグループは、0値サンプルでパディングされる。
2.正方形(又は2×2)グループは、2つの連続するコード・ブロック行のストライプからの2つの連続する列からなる。幅又は高さが2で割り切れないコード・ブロックは、同じく、簡単のために、単に0でパディングされる。
これらの2つの異なるグループ構造(及び潜在的に他のもの)は、サンプルの再構成を条件として等価であると見なされ得、それは結果的に、サンプルがコーディング目的のためにアクセスされる順序、すなわち、走査パターンの変化になる。図7及び図8は、上記で識別された2つのグループ構造に関連する走査パターンを示す。各場合において、グループは、走査順序において4つの連続するサンプルからなり、欠落したサンプルは0でパディングされる。0パディングは非効率性をもたらすが、それは、サブバンド境界において切断されたコード・ブロックに対処する必要がある実装形態を簡略化する。明らかに、2×2正方形グループ構造は、コード・ブロック走査ラインの各ペアを、2倍の幅をもつ1つの走査ラインにインターリーブすることによって、1×4線形グループ構造に変換される。
線形グループ構造は、コード・ブロックが、ラインごとの様式でコーディングされるという利点を有し、これは、アルゴリズムの全体的レイテンシを最小限に抑える潜在性を有する。一方、正方形グループの利点は、それが、適度の幅をもつコード・ブロック、たとえば、32×32コード・ブロックで作業するときに、高スループット・ソフトウェア実装形態に良好に適することである。セクション・エラー!参照元が見つかりませんでした。において提示される圧縮性能結果は、2×2グループ構造が1×4線形構造よりもわずかに良好に機能し得ることを示唆する。
有意性コーディング
上述のように、有意性は、グループごとにコーディングされる。各グループgは、グループ中の任意のサンプルが有意である場合1であり、他の場合0であるバイナリ有意性状態σを有する。さらに、グループgは、範囲0~15において4ビット有意性パターンρを有し、(走査順序においてLSBからMSBまでの)その各ビットは、グループ中の対応するサンプルが有意である場合、1である。明らかに、σ=0⇔ρ=0である。
有意性コーディングの目的で、各グループに、走査順序においてアクセスされる、前のグループに関連する有意性情報のみに依存するコーディング・コンテキストcが割り当てられる。これは、それが、有意性がマグニチュード及び符号情報より先に復号されることを可能にするので重要であり、それは、少なくともエンコーダとデコーダの両方のソフトウェア実装形態における計算スループットを改善し、また、SigPropコーディング・パス及びMagRefコーディング・パスがCleanupパスと並列に符号化及び復号されることを可能にする。
=0であるグループは、全0コンテキスト(AZC)状態にあると言われる。実際には、これらは、因果的近傍がすべて非有意であるグループであり、これは、用語AZCを説明している。適応コーディングは、上記でセクション4.4(MQコーディング)及びセクション0(MELコーディング)において説明されたように、AZCグループの有意性σをコーディングするためにのみ利用される。詳細には、各AZCグループに関連するバイナリ・シンボルσは順次連結されて、可変長バイナリ・ストリングσAZC[i]を形成し、これは、上記で説明された可変コーディング技法のうちの1つを受ける。このAZCシンボル・ストリングの符号化及び復号は、他の符号化又は復号ステップと同期する必要はない。
非AZCグループ、及び有意(すなわち、σ=1)であるAZCグループの場合、有意性パターンρは、可変長コーディング(VLC)を使用して符号化され、得られたコードワードを未加工VLCビットストリームに直接放出し、ここで、それらは、前に説明されたビット・スタッフィング・プロシージャのみを受ける。VLCコードワードの別個のセットが、各グループ・コンテキストcのために使用される。効率的な実装形態は、エントリが、後続のグループについてのコンテキスト・ラベルの生成を容易にするために公式化されたVLCテーブルを使用することができる。
上述のように、有意性情報は、マグニチュード及び符号情報の一部又は全部とは別個にコーディング/復号され、それは、ある程度の切り離しをFASTブロック・コーダの実装形態にもたらす。本明細書では、有意サンプルについてのマグニチュード及び符号情報を符号化する2進数字を指すために「MagSgnビット」という用語を使用することは役立つ。図5のデュアル・ビットストリーム構成の場合、VLCコードワード及びMagSgnビットは、図2に示されているように、グループの行に基づいて(すなわち、1×4線形グループの場合はラインごとに、又は2×2正方形グループの場合はライン・ペアごとに)単一の未加工ビットストリーム内でインターリーブされる。すなわち、コード・ブロック内のグループの各行について、グループ有意性コーディングに関連するすべてのVLCコードワードは、MagSgnビットがグループのその行における有意サンプルについて放出される前に、未加工ビットストリームに放出される。図9は、これらの概念を示す。
図6のトリプル・ビットストリーム構成の場合、有意性情報の符号化及び復号は、マグニチュード及び符号ビットから完全に切り離され、エンコーダとデコーダの両方内の符号化動作及び復号動作のシーケンシングの多大なフレキシビリティを提供する。この構成についての情報のフローは、図10に示されている。
前述のように、FASTブロック・コーダの重要な変形態は、実際にVLCビットストリームとMagSgnビットストリームとの間でマグニチュード情報を分散させる。この場合、VLCビットは増補されるが、図において明示的にこれを示すことは、不必要に混乱を招く。
線形グループについてのグループ有意性コンテキスト
ここで、線形1×4グループで作業するとき、現在の実装形態において使用されるグループ有意性コンテキストcの特定のセットについて説明する。図11に示されているように、ρg-1を、左のグループの有意性パターンを示すものとし(ない場合0)、

を、左のサンプルの有意性を示すものとし、

を、2つ左のサンプルの有意性を示すものとし、



を、前の走査ライン上のグループgの上を中心とした6つのサンプルの有意性を示すものとする(それが存在しない場合、各々は0である)。
次いで、コード・ブロックの第1の走査ラインについて、

であるが、すべての他の走査ラインについて、

である。
の実際の数値は、それらが選定されたにもかかわらず重要でなく、それは、それらの数値がハードウェア及びソフトウェアの両方において効率的に計算され得るからである。記法a|bは、ここでは、2進数字a及びbの論理ORを意味する。コード・ブロック中のすべてのラインにとって利用可能なコンテキスト7及び0をもつ、合計8つのコンテキストがある。コンテキスト0は、コンテキストを形成するために使用されるサンプルのすべてが非有意、すなわち、AZCコンテキストであることを常に意味する。逆に、コンテキスト7は、コンテキストを形成するために使用されるサンプルのすべてが有意であることを意味する。非初期走査ラインに関連するコンテキストは、実質的に2つの2進数字から形成され、それらのうちの一方は、グループの最初のサンプルが有意な近傍を有する場合に1であるが、他方は、グループの最後のサンプルが有意な近傍を有する場合に1である。
ソフトウェアにおいて、VLCテーブル・エントリについて好適な構造を仮定すると、デコーダは、前の走査ラインにおいて有意性状態のより簡単な関数から計算され(ベクトル算術を使用して計算され得)、前のグループのVLCテーブルのマスキングされた出力と論理ORにされた、インデックスと、未加工ビットストリームからの次の6ビットとを使用して、すべてのコンテキストを組み込む単一のVLCルックアップ・テーブルをインデックス付けすることが可能である。これは、極めて高い復号スループットにつながることがある。エンコーダは、それらのコンテキスト情報が高度並列バイト指向ベクトル算術を使用してすべて計算され得るので、本質的により簡単である。
正方形グループについてのグループ有意性コンテキスト
2×2正方形グループ構造の場合、現在の実装形態において使用される有意性コーディング・コンテキストが図12に示されている。この場合、ラインの第1のペアについて完全に別個のVLCコードブックを使用することを選好し、ここで、前の走査ラインの有意性は利用可能でなく、この場合、8つの固有のコンテキストがあり、走査ラインの非初期ペア内で見つけられるグループについて別の8つのコンテキストがある。
第1の場合、グループgが走査ラインの第1のペアにおいて見つけられた場合、グループ・コンテキストは、ここで、



として識別された、走査順序において先行する4つのサンプルの有意性を使用して形成され、
それらのすべては、gがコード・ブロックにおいて第1のグループである場合0になるようにとられる。この場合のグループ・コンテキストは、

によって与えられる。
すべての他のグループの場合、有意性コーディング・コンテキストは、走査順序において、前の2つのサンプル、すなわち、

及び

の有意性を、



として図12において識別される前の走査ライン上の4つの近接サンプルの有意性とともに使用して形成される。以下の簡単な公式化のうちの1つが、次いで、グループ・コンテキストのために採用され得る。

、又は
両方のコンテキスト・ラベル定義が、ソフトウェア及びハードウェアにおける、符号化及び復号中の効率的な形成に適用できる。
グループ有意性パターンの可変長コーディング
ここで、適応的にコーディングされたビットストリーム内で有意として識別された、非AZCグループとAZCグループとについての有意性パターンを符号化するために使用されるVLC符号に関する特定の情報を提供する。
別個のVLCテーブルが各コンテキストcについて定義される。これらの各々は、15個のコードワードのみを有するc=0(AZCコンテキスト)であるときを除いて、16個のコードワードを有し、これは、グループ中の少なくとも1つの有意サンプルの存在は、すでに説明されたように、適応的にコーディングされたビットストリーム内ですでにコーディングされているからである。コードワード長は、復号がコンテキストごとに64個のエントリのみをもつルックアップ・テーブルを使用して達成され得るように、6ビットに限定される。
VLCテーブルは、コードワードの好適なセットが、各コンテキストにおけるコードワード長のセットから常に導出され得るので、本質的に各コードワードの長さによって定義される。コードワードのいくつかの選定は、ルックアップ・テーブルの代わりにVLCコードの直接計算を可能にし得る。これを可能にする1つの極めて簡単な構成は、単に、AZCコンテキストを除いて、グループ中の各サンプルの有意性をそれ自体のコードワード・ビットにマッピングすることであり、ここで、コードワードの第1の2ビットは、有意である、(走査順序において)グループ中の第1のサンプルのインデックスfを識別し、それに、グループ中の各後のサンプルの個々の有意性を識別する3-fビットが続く。この(基準)選定のためのコードワード長は、表2に示されている。
VLCコードワード長の良好なセットを生成するために、コードワードごとに多くとも6ビットに制約された最適長さを発見するために、よく知られているハフマン構成を使用して、範囲1ビット/ペル~6ビット/ペルにおけるビットレートにおいて圧縮された自然画像の大きいセットに関して統計値を収集する。
線形1×4グループの場合、導出されたコードワード長が表3に示されている。これらのコードワード長は、表2のものよりも実質的に優れており、動作条件の全範囲にわたって、同じビットレートにおいて、PSNRにおける範囲0.2~0.5dBにおいて典型的な改善を生じる。線形グループについて、コード・ブロックの初期ラインと非初期ラインの両方について、合計でちょうど8つのコンテキストをもつVLCテーブルの1つのセットのみを使用することに留意されたい。これは、比較的少ないコンテキスト情報が第1のラインにとって利用可能であるので機能し、したがって、多くのコンテキストが必要とされず、それらの重要性は、第1のラインが典型的にはコード・ブロック・サンプルの極めて小さい部分のみを占めるということによって減少される。
2×2正方形グループ構造の場合、VLCコードワードの2つの別個のセット、すなわち、第1のライン・ペアにおいて見つけられるグループのためのセット、及び非初期ライン・ペアにおいて見つけられるグループのためのセットを展開させる。最適化されたコードワード長は、表4及び表5において報告され、ここで、後者は、

として上記で識別された「不平衡(unbalanced)」ラベルに対応する。最適化されたVLCコードワードの使用は、2×2グループの場合における圧縮性能に、それらが1×4線形グループのための場合よりも、さらに重要である。それぞれの最適化されたVLCコードワードを使用するときに、2×2グループの場合の全体的コーディング効率が、1×4グループの場合よりもわずかに高く、表2の単純なコードワードが使用された場合は、その逆が当てはまることがわかる。

異なる配向をもつDWTサブバンドについて、又は場合によってはDWT階層における異なるレベルについてさえ、別個に最適化されたVLCコードワード・テーブルを使用することによって、コーディング効率が改善され得ることが予想され得る。実際、これは、いくつかの小さい利益をもたらすが、実験は、これらの利益が、典型的には、コーディングされたデータ・レート全体の1%よりも小さいことを示唆し、これは、テーブルの拡張された数を正当化するのに十分でないことがある。
マグニチュード指数
上述のように、ビットプレーンpでは、サンプルX[n]のマグニチュードは、

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

ここで、

は自然数(非負整数)のセットである。以下の表は、この定義について説明するのに役立つはずである。
:0 1 2 3 4 5 ... 8 9 ... 16 17 ... 32 ... 230+1 ... 231
:0 1 2 3 3 4 ... 4 5 ... 5 6 ... 6 ... 32 ... 32
ここで説明されるアルゴリズムは、マグニチュードが32ビット整数として表され得ると仮定し、したがって、それらのマグニチュードが231を決して超えるはずがないことに留意されたい。ただし、さらにより高い精度へのアルゴリズムの拡張が派生しやすい。
ソフトウェア・ベースのエンコーダは、前もってコード・ブロック中のすべてのサンプルのマグニチュード指数を計算し、それらをメモリに(サンプルごとに1バイト)記憶することができる。たいていのCPUは、マグニチュード指数を効率的に計算するために使用され得る命令を含むことに留意されたい。
マグニチュード及び符号コーディング:序論
次に、有意であることが知られているサンプルについてのマグニチュード及び符号情報のコーディングに注目する。重要なことには、サンプルが有意であると知られているので、M-1≧0の値をコーディングすることで十分である。また、この場合、マグニチュード指数E-1≧0を有し、

を有する。すなわち、E-1は、M-1の値を表すために必要とされるビットの最小数である。これがそうなるために、マグニチュード指数定義を精密に考案した。マグニチュード指数は単純でないやり方でビットプレーンpに依存し、これは、有意サンプルのマグニチュードの効率的なコーディングにとって重要である。
コーディング・ストラテジーは、効果的に、1から

までの範囲にわたって一様に分散されるようにMをとり、したがって、E自体の値が確立されると、M-1のE-1最下位ビットを関係するビットストリームに放出することで十分である。また、一様に分散されるように各有意サンプルの符号をとり、したがって、また、符号ビットを未加工2進数字として放出することで十分である。
の値をコーディングすることにおいて、より大きい注意が払われる必要がある。前述のように、本明細書で説明されるFASTブロック・コーディング・アルゴリズムの変形態は、マグニチュード情報のコーディングが単一のビットストリーム内で統合されるのか、図4(エンコーダ)に示されているようにVLCビットストリームとMagSgnビットストリームとの間で分散されるのかに従って分類され得る。特に、FASTブロック・コーダの分散変形態は、Eを識別するために必要とされる情報の一部をVLCビットストリームに移動させる。
以下のセクションでは、最初に、後続のマグニチュード指数のコーディングを調整するために前に復号されたマグニチュード値を使用する、指数とmag-signビットとの統合コーディングについて説明する。次いで、統合マグニチュード及び符号コーディングにおいて、分散マグニチュード・コーディング方法について説明する。
統合マグニチュード及び符号コーディング
ロケーションnにおける有意サンプルについてのマグニチュード情報のコーディングは、それの因果的近傍のマグニチュード指数を累積することによって形成されるコンテキストに基づく。以下では、すべてのマグニチュード及びマグニチュード指数から下付き文字pを削除するが、ビットプレーン・インデックスが暗示されるものとする。
ここで説明される方法は、その1×4線形グループ構造とともに、図7のラスタ走査順序に好適である。2×2正方形グループの場合、以下(分散マグニチュード及び符号コーディング)で説明される分散マグニチュード・コーディング・ストラテジーを使用することが、はるかに簡単である。
非初期走査ラインの場合、マグニチュード・コーディング・コンテキストは、
sum[n]=E[n]+ENW[n]+E[n]+ENE[n]
から形成され、ここで、E[n]は、左の近傍のマグニチュード指数(左の近傍がない場合0)であり、E[n]は、上の近傍のマグニチュード指数(前の走査ラインがない場合0)であり、ENW[n]及びENE[n]は、前の走査ライン上のロケーションnの左上又は右上の近傍(そのような近傍がない場合0)に対応する。上付き文字W、NW、N及びNEは、コンパス方向を示すことを意図される。
コード・ブロック中の第1のラインの場合、
sum[n]=(2E[n]+EWW[n])
を使用し、ここで、EWW[n]は、左の2番目のサンプルのマグニチュード指数(ない場合0)である。これらの近傍設定は、図13に示されている。
マグニチュード・コーディング・コンテキストは、E[n]-1の値についての有効な予測子κ[n]を生じることを意図される。これは、様々なやり方で取得され得、その中のやり方を用いて、Esum[n]/4の量子化バージョンによってインデックス付けされた予測状態機械のファミリーを使用して実験した。しかしながら、最後に、圧縮効率と計算複雑さとの間の最良のトレードオフが、割当て

から生じることを見つけ、ここで、定数κoffは4に設定される。値3及び5は、ほぼ有効であることが判明したが、計算するにはわずかに効率が劣る。
マグニチュード及び符号コーディングは、以下のように、2つのステップにおいて進行すると考えられ得る。
Uステップ
ここで、符号なし(したがって、「U」)予測残差
u[n]=max{0,E[n]-1-κ[n]}
を表すコンマ・コードを放出する。
詳細には、u[n]個の0が未加工ビットストリームに放出され、1(「コンマ」)が続く。
デコーダは、最初の1が発生するまで0を計数することによって、未加工ビットストリームからu[n]を復元する。u[n]は、最初にコーディングされたサブバンド・サンプルが(量子化の後に)32ビット整数を使用して表された場合、上記で説明されたように、E[n]≦32であるので、31を決して超えるはずがないことに留意されたい。
Rステップ
ここで、
m[n]=κ[n]+u[n]-i[n]
として放出されなければならないマグニチュード・ビットの数を決定し、ここで、

である。
最初に、X[n]の符号を放出し、これは、負である場合1であり、正である場合0である。次いで、マグニチュード値M[n]の最下位m[n]ビットを放出する。
このプロシージャを説明するために、有意サンプルのマグニチュードMが、
0≦M-1<2E-1
を満たすことに留意し、ここで、E-1≧0である。符号なし予測残差u>0である場合、デコーダは、E-1=κ+uであること、及び2E-2≦M-1<2E-1であることを確実にすることができ、したがって、M-1の最下位E-2=κ+u-1ビットは、その値を識別するのに十分であり、デコーダは、暗黙的最上位1を再加算して、これらのmビットからM-1を復元する。u=0である場合、デコーダは、E-1≦κ+uであることのみを知っており、したがって、0≦M-1<2κ+uであり、これが、m=κ+uビットが放出される理由である。
この説明に照らして、i[n]は、ロケーションnにおけるサンプルが「暗黙的1(implicit-1)」を有するか否かを識別するものとして認識され得る。
デコーダがκ[n]を形成し、次いで、m[n]=κ[n]+u[n]を復元し、ここで、u[n]が、コンマ・コードを復号することによって、Uステップにおいて取得されたことに留意する。しかしながら、エンコーダとは異なり、Rステップでは、デコーダは、マグニチュード指数E[n]をも復元しなければならない。一般的な場合には、これは、M[n]-1のバイナリ表現における最上位1が見つけられ得るように、m[n]マグニチュード・ビットが未加工ビットストリームから取り出されることを必要とし得る。このステップは、ハードウェアベースのデコーダのスループットを決定するクリティカル・パスであり得る。これは、E[n]の値が次のサンプルのEsum値を形成することを必要とされるからであり、これは、サンプルが有意である場合にそのサンプルのRステップにおいて必要とされる。
要約すれば、符号なし予測残差u[n]は、近接マグニチュード指数が与えられれば、E[n]の値を部分的に符号化するにすぎず、u[n]=0であるとき、E[n]の復元を完了するために、マグニチュード・ビット自体が必要とされる。
マグニチュード・コーディングのための密接に関係する代替形態
マグニチュード・コーディングのための上記の方法は、事実上、パラメータκ[n]をもつ、M[n]-1についての指数ゴロム・コードであり、実際には、符号ビットがコンマ(コードの単項部分)とマグニチュード・ビットとの間でインターリーブされることに留意し、なぜなら、これは、効率的なソフトウェア・ベースのデコーダ実装形態を容易にするようになるからである。
上述のように、本手法の1つの小さい欠点は、コードのすべてのマグニチュード・ビットが未加工ビットストリームから復元されるまで、すなわち、Rステップが完了するまで、デコーダが、概して、後続のマグニチュード・コーディング・コンテキストを形成するために必要とされるマグニチュード指数E[n]を復元することができないことである。
ライス・マッピング
代替ストラテジーは、符号付き予測残差
s[n]=E[n]-1-κ[n]
のκ[n]依存ライス・マッピングを利用することである。
ライス・マッピングは、符号なしのマッピングされた量r[n]を作り出し、次いで、この量がコンマ・コード又は固定ゴロム・コードを使用して直接符号化され得るように、最も負の値が-κであり、最も正の値が31-κであることに留意して、予測残差sの+ve値と-ve値とをインターリーブする。本手法の潜在的な利点は、マグニチュード・ビットが未加工ビットストリームから取り込まれるのを待つ必要なしに、デコーダがE[n]=1+κ[n]+s[n]からマグニチュード指数を直ちに復元することができることである。すなわち、マグニチュード指数は、第2のステップが完了するのを待つ必要なしに、復号プロシージャの第1のステップから因果的近傍に直接伝搬され得る。ライス・アンマッピング・プロシージャの小さいオーバーヘッドにもかかわらず、これは、ハードウェア・ソリューションがわずかにより高いスループットを達成することを可能にする可能性がある。一方、本手法は、ライス・マッピング/アンマッピング動作が通常、ルックアップ・テーブルを使用して実装されなければならないソフトウェア展開にやや不利である。さらに、実験は、これらの方法の圧縮効率が、先行するセクションに記載された好ましい手法よりもわずかに劣っていることを示す。
マグニチュード及び符号コーディングのための代替ビット構成
このセクションは、上記で説明された構成に対する、UステップとRステップとによって放出されたビットについての代替構成を提示する。この代替構成は、上記の構成のものと同じコーディング効率を有し、これは、それが、放出されたビットの並べ替えにすぎないからであり、言い換えれば、この代替表現のためにまったく同じビット数を必要とする。
u[n]の値に応じて、以下の4つのケースを識別する。
・ ケース1:u[n]>κ[n]。表6において要約されるこのケースにおいて、エンコーダは、u[n]個の0を放出し、1(コンマ)が続き、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。このケースにおいて、エンコーダは、u[n]-1個の0を放出し、1(コンマ)が続き、次いで、(d[n]=0によって示される)単一の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)である。このケースにおいて、2κ-p-1≦M-1<2κ-pを有する。エンコーダは、p[n]個の0を放出し、1(コンマ)が続き、次いで、(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である。エンコーダは、κ[n]個の0を放出し、1(コンマ)が続き、次いで、M[n]の符号X[n]が続く。表6を参照されたい。
次にデコーダに注目する。デコーダは、検討中の有意サンプルのコンテキストからκ[n]を評価する。デコーダは、次いで、コンマ(1)が見つけられるまで、0の数l[n]を計数し、0の数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]-2 LSBとを読み取ることによって進行することができる。デコーダは、次いで、M[n]-1の暗黙的MSBを加算する必要があり、暗黙的MSBは、2E-2であることが知られているので、送信されなかった。
・ l[n]<κ[n]である場合:これは、ケース2又はケース3のいずれかであり得る。デコーダは、コンマの後のビット、d[n]を検査することによってケースを識別することができる。ケース2の場合、d[n]=0を有し、ケース3の場合、d[n]=1を有する。ケースに応じて、デコーダは、以下のように進行することになる。
〇 ケース2(d[n]=0)の場合、ここで、l[n]=u[n]-1であり、デコーダは、次いで、ビットストリームから、M[n]の符号ビットX[n]と、M[n]-1のκ[n]+l[n]=E[n]-2 LSBとを読み取ることになる。デコーダは、次いで、M[n]-1の暗黙的MSBを加算する必要があり、暗黙的MSBは、2E-2であることが知られているので、送信されなかった。
〇 ケース3(d[n]=1)の場合、ここで、l[n]=p[n]であり、デコーダは、次いで、ビットストリームから、M[n]の符号ビットX[n]と、M[n]-1のκ[n]-l[n]-1=E[n]-2 LSBとを読み取ることになる。デコーダは、次いで、M[n]-1の暗黙的MSBを加算する必要があり、暗黙的MSBは、2E-2であることが知られているので、送信されなかった。
本方法の利点は、l[n]を復号した直後に、及び必要なときはいつでもd[n]を復号した直後に、指数E[n]が計算され得ることであるが、上記の構成は、M[n]-1を復号した後に、M[n]-1における末尾の0の数を計数することを必要とする。デコーダがE[n]を知ると、デコーダは、M[n]復号が終了するのを待つ必要なしに、この情報を因果的近傍に伝搬してそれらの復号を開始することができる。パイプライン・ハードウェアは、それが指数E[n]を知ると、後続のサンプルについてのκを評価することによってこのセクションのビット構成から恩恵を受けることができる。
ハードウェア実装形態についての別の利点は、E[n]を決定するために必要とされるすべての情報がビットストリームの下部に存在し、したがって、ビットの順次処理が可能であり、それにより、復号回路が簡略化される。
また、ソフトウェア実装形態は、この構成から恩恵を受けることができる。たいていの現代のCPUはパイプライン化を利用し、いくつかの命令のレイテンシを、それらの命令を他の命令と重複させることによって、隠すことができる。したがって、慎重に書き込まれたコードは、E[n]が利用可能になると、現在のサンプルを復号する命令と、次のサンプルを復号する命令との重複を可能にすることができる。
この構成は、本方法が、有意サンプルのマグニチュード及び符号をコーディングすることに関係するにすぎないので、FASTブロック・コーダのcleanupパスのデュアル・ビットストリーム変形態とトリプル・ビットストリーム変形態の両方に適用可能である。
ライン因果(Line-Causal)コンテキスト
上記の代替形態の各々によって対処される問題は、有意サンプルのマグニチュードを符号化/復号するために使用されるコンテキスト(又は予測子)が、走査順序において先行するサンプルのマグニチュード指数に依存することから生じる。
この問題に対処するための簡単なやり方は、κ[n]の定義を修正することであり、したがって、それは、前の走査ラインにおいて見つけられるサンプルのマグニチュードのみに依存する。たとえば、Esum[n]の定義は、以下によって置き換えられ得る。
sum[n]=ENW[n]+2E[n]+ENE[n]
しかしながら、この手法は、まったく予測子がなければ、最初の走査ライン上のマグニチュードを残すことに留意されたい。
分散マグニチュード及び符号コーディング
FASTブロック・コーディング・アルゴリズムの分散マグニチュード・コーディング変形態では、有意サンプルのマグニチュード指数を発見するために必要とされる情報の一部は、VLCビットストリームに移動される。一実例として、上記で説明された単項コーディングされた符号なし予測残差u[n]は、MagSgnビットストリームを参照せずにVLCビットストリームが復号され得るという重要な特性を損なうことなしに、VLCビットストリームに容易に移動され得る。復号されたu[n]値は、有意サンプルのマグニチュード指数E[n]を復元するために直ちに使用され得ず、なぜなら、これは、MagSgnビットストリームにおいて見つけられるマグニチュード・ビットに依存し得る以前のマグニチュード指数の知識を必要とするからである。しかしながら、u[n]値を前もって復号する能力は、クリティカル・パス・レイテンシを低減し、復号スループットを増加させることができる。
この手法をライン因果コンテキストと結合することによって、上記で説明されたように、マグニチュード復号に関連するすべての有意なサンプル間依存性をなくすことが可能である。しかしながら、VLCビットストリームに移動され得るビットの最大数を慎重に制限することは、これが、ハードウェアとソフトウェアの両方のエンコーダ及びデコーダの全体的複雑さに影響を及ぼすので重要である。
次に、有意サンプルのマグニチュード(及び符号)の分散コーディングのための好ましい手法について説明する。本手法は、その1×4グループ構造の場合の図7のラスタ走査順序と、その2×2グループ構造の場合の図8のライン・インターリーブ走査順序の両方に好適である。本手法は、各有意なグループg、すなわち、少なくとも1つの有意サンプルをもつ各グループについて、ただ1つの符号なし予測残差uを伴う。
非初期グループ行についての分散Mag-Signコーディング
コード・ブロック内の非初期グループ行、すなわち、1×4グループをもつ非初期走査ライン、又は2×2グループをもつ非初期ライン・ペアについてのuのコーディング及び解釈を説明することから始める。予測子κ[n]が、前の走査ラインからのマグニチュード指数に基づいて、グループg中の各有意サンプルについて形成される。ここで、nは、走査順序において、グループg内のサンプルをインデックス付けする。図14は、ライン因果指数





及び

を識別し、それらは、1×4グループ構造と2×2グループ構造の両方について、好ましい方法で予測子κ[n]を形成するために使用される。
デコーダはuをκ[n]に加算して、対応するマグニチュード指数E[n]-1についての上限
[n]=u+κ[n]
を形成する。すなわち、
[n]-1≦U[n]
である。
その上、この制限は、グループ中の1つのサンプルのみが有意であり、u>0である場合に、厳しくないものであることが必要とされ、それは、M[n]-1のバイナリ表現における最上位1のロケーションが暗黙的である、条件である。詳細には、グループgについての「暗黙的1」条件を、

として定義し、グループg中の各有意サンプルについての放出されたマグニチュード・ビットの数が、
[n]=U[n]-i
になるように定義する。
MagSgnビットストリームは、走査順序において各有意サンプルにアクセスすることによって形成され、最初に符号ビットを放出し、次いで、M[n]-1のm[n]最下位ビットを放出する。
グループの行についての復号は、3つのステップを伴う。第1に、符号なし予測残差uは、有意性パターンを復号する間に復号される。第2に、予測子κ[n]は、有意性パターンρと、前の走査ラインからの復号されたマグニチュードとのみを使用して決定され、そのプロセス中に、デコーダは、m[n]とiとを発見するためにuを使用する。最後に、M[n]-1についての符号及びマグニチュードLSBは、各有意サンプルについてのMagSgnビットストリームからアンパックされ、暗黙的1 iを再挿入する。
これらの3つのステップは互いに依存するが、とはいえ、それらのステップは実質的に切り離される。たとえば、第1のステップは、他のステップがいずれかのグループについて実施される前に、コード・ブロックにおけるすべてのグループについて実施され得、代替的に、第1のステップは、グループごとに、第2のステップの直前に実施され得る。第2のステップは、グループの全行について、第3のステップがこれらのグループのいずれかについて実施される前に実施され得るが、同じく、これは必要でない。概して、ソフトウェア実装形態は、より分散された手法から恩恵を受ける傾向があり、ここで、各ステップは、第2のステップに移動する前に多数のグループに対して実施され、なぜなら、これは、ベクトル命令の活用を容易にし、レジスタ利用を改善するからである。対照的に、ハードウェア実装形態は、あまり分散されていないストラテジーから恩恵を受ける可能性があり、なぜなら、これは、メモリ・リソースが中間状態を保存する必要を低減するからである。
本方法は、ここで、別個のVLCビットストリーム及びMagSgnビットストリームに関して(すなわち、FASTブロック・コーダのトリプル・ビットストリーム変形態について)説明されるが、同じストラテジーが、デュアル・ビットストリーム変形態とともに使用され得、ここで、VLCビット及びMagSgnビットは、グループの行に基づいてインターリーブされる(線形グループの場合はライン・インターリービング、及び正方形グループの場合はライン・ペア・インターリービング)。
概して、グループg中の各有意サンプルは、異なる予測子κ[n]を有し得、それは、グループgに関連する有意性パターンρとともに、ライン因果指数





及び

から導出され得る。
1×4線形グループと2×2正方形グループの両方について、予測子を割り当てるための簡単で有効な方法は、以下の通りである。
ここで、Pは、グループg中の各有意サンプルのオフセット・マグニチュード指数E[n]-1についての初期の予測された上限として理解され得る。Zは、符号なし予測残差uが、P>0である場合に-1と同程度に小さい残差を効果的に表すことを可能にするオフセットである。すなわち、デコーダがE[n]-1について導出する制限U[n]は、実際にP+(u-Z)に等しい。グループg中の1つのサンプルのみが有意であるときの選定P=0は、むしろ重要であることがわかる。
上記で説明されたストラテジーは、グループg中のすべての有意サンプルについての共通予測子κの生成を伴うが、グループについての予測子が形成される必要がある時点のかなり前に、エンコーダとデコーダの両方において十分に利用可能である、前のグループ行からのマグニチュード情報に基づいて、より有効なロケーション固有予測子を導出することは可能である。また、予測性能を最適化するために、グループ中のすべてのサンプルについての有意性情報を、(走査順序における)それの因果的近傍とともに使用することが可能である。
次に、符号なし予測子uについてのVLCコードに注目する。単項コード(別名コンマ・コード)が利用され得るが、この場合の最大コードワード長は、本明細書で考慮される最高精度の場合、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ビットの精度で、サブバンド・サンプルを表すのに十分である。
最も短いコードワードがここで、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コード・ビットとのペアワイズ・インターリービング
特に、ソフトウェア実装形態の場合、グループのペアにわたってuコードのプレフィックス成分とサフィックス成分とをインターリーブすることは、有益であることがわかる。詳細には、VLCビットストリームは、最初に、グループのペアに関連する(場合によっては空の)有意性VLCコードワードを放出し、次いで、ペア中の各有意なグループについてのuコード・プレフィックスを放出し、最後に、ペア中の各有意なグループについてのuコード・サフィックスを放出することによって形成される。ソフトウェア・エンコーダの場合、これは、適度のルックアップ・テーブルがグループのペアについての完全なuコードを一度に生成するために使用されることを可能にする。ソフトウェア・デコーダの場合、小さいルックアップ・テーブルが、クワッドのペアについてのuコード・プレフィックスを一度に復号するのに十分であり、組み合わせられたコードワード長とサフィックス・ロケーションとが極めて効率的に決定されることを可能にする。グループの各行は、必要な場合、有意性VLCコードワード又はAZCシンボルを有せず、常に非有意である余分のグループを追加することによって、整数個のグループ・ペアに拡張され、したがって、それはまた、uコード成分を有しない。
初期グループ行についての分散Mag-Signコーディング
コード・ブロック内のグループの初期行の場合、マグニチュード指数は、前の走査ラインから入手可能でない。このケースは、常に、上記で展開された方法を使用してハンドリングされ得るが、





及び

がすべて0になるようにとられる。
しかしながら、このケースは、コード・ブロック高さが通常小さい、低レイテンシ適用例において重要であり得るので、水平予測の形式を伴う制限Uをコーディングするための代替機構を利用することを選好する。前述のように、Uは、制限が、以下で説明される「暗黙的1」条件の下で厳しくなければならないことを除いて、グループg中のすべての有意サンプルのマグニチュード指数が
[n]-1≦U
を満たすような制限である。
ここで展開される代替機構は再び、予測子と符号なし残差uとを伴うが、予測は、グループごとに適応されるベース値Bに対して形成される。詳細には、

であり、ここで、

である。
2つ以上の有意サンプルをもつ連続するグループの集合について、この場合、U=Ug-1+(u-2)であるので、Uの連続する値の間の(2だけの)オフセット差として符号なし残差uを理解することが可能である。明らかに、uについてのいくつかの値は認容されるべきでなく、これは、以下で説明されるように、Bの値に依存するuについてのコードにおいて反映される。1つの有意サンプルのみをもつグループの場合、上記の関係は、U=u-2が前のグループに対する依存を有しないように、Bを1に強制し、わかるように、uについてのB依存コードは、この場合、2よりも小さい値を表すことができない。特殊値B=0は、それが、u値がコーディング又は使用されない非有意グループに対応するので、厳密には重要でないが、この特殊値は、ルックアップ・テーブルに基づく効率的な実装形態を容易にするために使用され得る。
のためのB依存VLCコードについて説明する前に、iフラグに関連する「暗黙的1」条件の決定について手短に説明し、このフラグは、グループg中の各有意サンプルについて放出されるマグニチュード・ビットの数m[n]を決定するためにUと組み合わせられる。暗黙的1条件は、グループg中に厳密に1つの有意サンプルがあるときのみ発生することができるが、これは、実際には極めて一般的な条件である。この場合、すでに述べられたように、上記の関係は、U=u-2を生じ、uは、必然的に2以上である。暗黙的1条件は、uが2のこの最小値を超えたとき発生する。すなわち、

である。
非初期グループ行に関しては、グループg中の各有意サンプルについての放出されたマグニチュード・ビットの数は、
[n]=U[n]-i
によって与えられ、MagSgnビットストリームは、走査順序において各有意サンプルにアクセスすることによって形成され、最初に符号ビットを放出し、次いで、M[n]-1のm[n]最下位ビットを放出する。
を符号化するために、表9によって定義されるB依存可変長コード(又は「Buコード」)を利用する。コードは、表8のuコードに基づき、9ビットの同じ最大コードワード長を有し、さらに、極めて高精度のサブバンド・サンプルを伴う。u-2は符号付き予測残差の役割を果たし、uコードは、本質的にこの符号付き残差の絶対値|u-2|に適用されており、ただし、|u-2|<Bであるとき、u-2が正であるのか負であるのかを識別するために符号ビットが2ビット又は3ビット・プレフィックスに付加されることに留意されたい。コードワードのプレフィックスは、長さが4ビットを決して超えないので、効率的なLUTベース復号ストラテジーが展開され、4ビット・コードワード・プレフィックスとともに、2ビットB値によってインデックス付けされ得、プレフィックス長、サフィックス長、U制限及び次のグループのB値を返し、それらは、次のグループが2つよりも少ない有意サンプルを有する場合にのみ、修正される必要がある。
非初期グループ行に関しては、有意性VLCコードワード及びBuコード・ビットは、グループのペアにわたってインターリーブされる。前述のように、ペア中の各グループについての有意性ビットが最初に出現し、ペア中の各有意グループについてのBuコード・プレフィックスが続き、最後に、ペア中の各有意グループについてのBuコード・サフィックスが続く。
圧縮後R-D最適化を用いた符号化
圧縮後レートひずみ最適化(PCRD-opt:Post-Compression Rate-Distortion Optimization)は、JPEG2000アルゴリズムの有益な特徴であり、これは、1つ又は複数のターゲットの圧縮されたビットレートが、単に、すでに生成されたコード・ブロック・ビットストリームを切断することによって達成されることを可能にする。最適切断ポイントを見つけることは、各切断ポイントについてのひずみ推定値(又は測定値)のセットが与えられれば、比較的簡単である。
JPEG2000ブロック・コーダが細かく組み込まれたビットストリームを作り出し、多数の切断ポイント(ビットプレーンごとに3つ)を提供するので、PCRD-opt手法は有効であり、それらの切断ポイントの大部分は、典型的には、コード・ブロックの動作レートひずみ特性の凸閉包上にある。
FASTブロック・コーダとともにPCRD-optを使用すること
上記で説明されたFASTブロック・コーディング・アルゴリズムは、厳密には組み込まれないが、それは、PCRD-optベースのレート制御方法の展開を可能にするのに十分なレベルの組込みを提供する。依然として、ビットプレーンごとの3つのコーディング・パスがあり、それらのレートひずみプロパティは、標準JPEG2000ブロック・コーダのレートひずみプロパティと極めて同様であることがわかる。典型的な写真像(photographic imagery)を用いた実験において、図1に示されているFASTブロック・コーディング・パスのセットに最適切断アルゴリズムを適用することが、標準JPEG2000ブロック・コーダを用いて達成される圧縮効率と同様の圧縮効率を生じることがわかる(脚注3)。
もちろん、FASTブロック・コーダによって生成されたコーディング・パスのセットを切断した後に、最後の残存するCleanupパスのみが、もしあれば、それに続く残存するSigPropパス及びMagRefパスとともに、コードストリームに放出される。これは、FASTブロック・コーダのCleanupパスの各々がすべての先行するコーディング・パスを完全に包含するからである。
より多くの異なる品質(異なる量子化ステップ・サイズ)においてコンテンツを圧縮するようにエンコーダを準備し、次いで、各コード・ブロックの圧縮バージョンのうちの1つを除いてすべてを最終的に廃棄することによって、非組込みブロック・コーディング・アルゴリズムがPCRD-optアルゴリズムとともに使用され得ると主張されるかもしれない。しかしながら、そのような手法とここで提案される手法との間の差は、動作レートひずみ特性を極端に少ない計算労力で効果的に補間するために、SigPropコーディング・パスとMagRefコーディング・パスとに依拠して、エンコーダが、多くともビットプレーンごとに1つのCleanupコーディング・パスを作り出す必要があることである。
コーディング・パスの選択的生成
JPEG2000のためのPCRD-opt方法の高度実装形態は、すでに、PCRD-optレート制御段階によって後で見つけられることになる最適切断ポイント以外に存在する可能性がある多くのコーディング・パスを生成することを回避するために予測ストラテジーを利用している。FASTブロック・コーダの場合、PCRD-opt切断ポイントによって保持される後のCleanupパスによって包含される可能性があるコーディング・パスを生成することを回避するために、追加のストラテジーが使用され得る。すなわち、予測ストラテジーは、図1によって示唆されるように、生成するに値する最後のコーディング・パスと、コーディング・パスを生成し始める最初の(最も粗い)ビットプレーンの両方を決定するために使用され得る。
レート制御が通常必要とされないトランスコーディング適用例とは別に、本明細書で説明されるFASTブロック・コーダについての最も重要な適用例はビデオを伴い、これは、そのような適用例が標準JPEG2000アルゴリズムにとって困難であり得る極めて高いデータ・レートを伴うからである。
JPEG2000実装形態において生成するに値しない最終のコーディング・パスを予測するための既存のストラテジーは、PCRD-optアルゴリズムによって利用されるひずみ長さ勾配しきい値が、通常、フレームごとに緩やかに変化するにすぎず、したがって、ブロック・エンコーダは、それが生成したコーディング・パスに関連するひずみ長さ勾配しきい値が、前のフレームにおいてPCRD-optアルゴリズムによって選択されたひずみ長さ勾配しきい値、又は前に生成されたフレームの定義されたセットにおいて選択された最も小さいそのようなしきい値よりも小さくなるとすぐに、コーディング・パスを生成することを停止することができることを利用する。このストラテジーはFASTブロック・コーディング・アルゴリズムとともに直接採用され、PCRD-optレート制御段階によって廃棄される可能性があるコーディング・パスの生成を制限することができる。
以下のサブセクションは、主に、第2の問題、すなわち、FASTブロック・エンコーダによって生成される必要がある最初の/最も粗いコーディング・パスを予測することに関係する。この目的で、この場合も、以前のフレームの圧縮からの観測を参考にすることが可能である。この情報をサブバンド・サンプルから導出された統計値で補足することも可能であるが、それらは、コード・ブロックにアセンブルされている。これらの方法について説明する前に、以下の観測を行う。
1.符号化プロセス中に粗いビットプレーンを廃棄することは、PCRD-opt段階を切り抜けることを予想しない細かいコーディング・パスを廃棄することよりも「危険」である。コード・ブロックについての最初の生成されたビットプレーンが、あまりに多くのビットの生成を生じた場合、PCRD-opt段階は、コード・ブロックについてのコンテンツをまったく含むことが可能でないことがある。したがって、より粗いビットプレーンを廃棄するという決定に関連するワースト・ケースひずみ影響は、より細かいビットプレーンを廃棄することに関連するひずみ影響よりもはるかに大きい。
2.より粗いビットプレーンは、概して、少なくとも、ソフトウェア実装形態内では、より細かいビットプレーンよりも少ない計算リソースを消費し、したがって、実装形態にとって、それが必要とするよりも細かいビットプレーンではなく、それが必要とするよりも粗いビットプレーンを生成し過ぎることが望ましい。実際、粗いビットプレーンがまったくスキップされないときでも、FASTブロック・エンコーダは、依然としてJPEG2000よりもはるかに高速になり得る。
3.高スループット・ハードウェア実装形態は、決定的なやり方で、所与のコード・ブロックについて生成されることになるコーディング・パスの総数を固定する必要があり得る。これは、適応アルゴリズムがより容易に実装されるソフトウェア環境よりも大きい課題を提供する。
4.低いエンドツーエンド・レイテンシをもつ一定ビットレート圧縮データ・ストリームを必要とする適用例は、コーディング・パス又はビットプレーンを選択的に生成するアルゴリズムにとって最も困難である。不十分な決定が大きいひずみを生じる可能性は、PCRD-optアルゴリズムが厳しいビット・バジェットに準拠することを強制される場合、特に、これがコード・ブロックの小さいセットに対して定期的に行われる場合、大幅に増加される。
上記で識別された困難にもかかわらず、ハードウェアにおいても、良好な圧縮性能をもつ高スループット符号化を可能にする有効なアルゴリズムを展開させることが可能である。
長さベースのビットプレーン/コーディング・パス選択アルゴリズム
このセクションでは、ブロック符号化プロセス中に粗いビットプレーンの生成をスキップするために使用され得る第1のアルゴリズムについて説明する。このアルゴリズムは、コーディングされた長さ推定値及び測定値に依拠して、コード・ブロック全体がPCRD-optアルゴリズムによって廃棄されなければならないという危険を緩和する。本方法は、少なくとも2つのビットプレーンが符号化され、ただし好ましくは3つ又はそれ以上のビットプレーンが符号化され、それらが、同時にではなく連続的に符号化される状況に好適である。これは、各符号化されたビットプレーンの符号化された長さが、符号化すべき後続のビットプレーンの選択を案内することを可能にする。これらの属性は、アルゴリズムを、ハードウェアよりもソフトウェア実装形態に好適にし得る。
ビデオ・シーケンスからのフレームのシーケンスが圧縮されていると仮定する。また、説明を簡単にするために、PCRD-optアルゴリズムが、各フレームの圧縮サイズに対する制約Lmaxを条件として各フレームのコードストリームについてのコーディング・パスを選択するために使用されていると仮定する。すなわち、すべてのフレームは、同じ長さ制約を有するようにとられる。以下で説明される方法が、フレームごとに異なり得る長さ制約にどのように適応され得るかを理解することは難しくない。本方法はまた、長さ制約が、フレームの一部分のみを表すコード・ブロックのより小さい集合に適用される低レイテンシ適用例に適応され得る。
PCRD-optアルゴリズムが各フレームk上に呼び出され、フレームのコードストリーム中に含めるべきコーディング・パスのセット(1つのCleanup、随意にSigProp、及び場合によってはMagRefパスが続く)を選択するとき、フレームについての2つのタイプの情報を記録する。最初に、各サブバンドβによってフレームkのコードストリームに寄与するバイトの総数

を記録する。これらは、

バイト/サンプルに従って、「示唆された」サブバンド・データ・レートのセット

にコンバートされ得、ここで、Nは、コード・ブロックb中のサンプルの数であり、したがって、

は、サブバンドβ中のサンプルの総数にすぎない。
次に、

を、フレームkのコード・ブロックb内のビットプレーンpに属するCleanupパスに関連する(バイト単位の)長さであるとし、後続の(生成されている)フレームkgenを考慮する。サブバンドβ中の各コード・ブロックbが、

である、少なくとも1つの生成されたCleanupパスを有する限り、PCRD-optアルゴリズムは、全長がLmaxよりも大きくない、フレームkgenについてのコードストリームを生成することが可能になることを確実にすることができる。実際に、この制約がなくても、PCRD-optアルゴリズムは、長さ制約Lmaxを満たすために1つ又は複数のコード・ブロックを完全に廃棄することが、常に可能である。しかしながら、これは、コード・ブロックが廃棄されている場合、品質の大きい劣化を招き得、これは、単に、十分に粗いビットプレーンに関連するコーディング・パスがブロック・エンコーダによって生成されなかったからである。
フレームkのコードストリームの生成中に記録されるべき第2のタイプの情報は、コード・ブロック・グループγの集合の各々に関連する、最も粗いビットプレーン・インデックス

である。1つのグループ化手法は、別個のJPEG2000プレシンクトを用いて各コード・ブロック・グループγを識別することであるが、(別個のグループを介して)プレシンクト内のコード・ブロックの別個のサブバンド配向(たとえば、HH、LH、HL)をさらに区別することは好ましいことがある。また、コード・ブロックの重複するグループを使用することが望ましいことがある。一方の極端な例では、グループは、単一のコード・ブロックからなるが、他方の極端な例では、画像成分のウェーブレット分解における所与の解像度レベルからのすべてのサブバンドは、単一のグループをなすと見なされ得る。いずれの場合も

は、PCRD-optアルゴリズムがフレームkについてのコードストリーム中に組み込むことを選定するグループγ中のコード・ブロックからのCleanupパスに関連する最も粗いビットプレーンである。さらに、γを、コード・ブロックbについての「自然」グループであるとし、「自然」グループは、複数のそのようなグループ(重複するグループ)がない限り、単にコード・ブロックbが属するグループであり、その場合、γは、幾何学的中心がコード・ブロックbの幾何学的中心と最も密接に一致するグループである。
後続の(すなわち、生成されている)フレームkgen中のこの情報を使用して、コード・ブロックbについてのブロック・エンコーダは、ビットプレーンについてのそれの第1のCleanupコーディング・パスを生成することによって開始し、

コーディングされた長さ

を生じる。ここで、

は、コード・ブロックb中のサンプルがフレームkgenにおいて有意である、最も粗い(最上位)ビットプレーンである。本質的に、ブロック・エンコーダは、コード・ブロックbの近隣(グループγ)内で、コーディング・パスが以前のフレームk中で放出された最も粗いビットプレーンを、それがフレームkgenにおいて考慮する必要がある最も粗いビットプレーンについての初期推定値として解釈する。オフセットΔadj≧0は、アルゴリズムが(時間とともに)準最適な状態に置かれることがないことを確実にするように、少なくとも時々非0でなければならない。
重要なことには、ブロック・エンコーダは、この第1の生成されたCleanupパスの長さ

を、上記の式(RB)によって与えられる、示唆されたサブバンド・データ・レートと比較する。

が、制限

を超え、

である場合、ビットプレーン・インデックスpは1だけ増加され、新しいCleanupパスが符号化され、(概してより小さい)長さ

を有する。このプロセスは、最も粗い生成されたCleanupパスが、示唆されたレート制限を満たすか、又はより粗い有意ビットプレーンが存在しなくなるまで、繰り返される。この条件が達せられると、エンコーダは、さらにより粗いビットプレーンについてのコンテンツを生成して、利用可能な計算リソースを条件としてコンテンツのより大きいダイバーシティをPCRD-optアルゴリズムに提供し得る。
本方法の複雑さと性能の両方が、Δadj値に依存する。厳しいレイテンシ制約を有しないソフトウェア実装形態では、Δadjの値は、必要とされる平均スループットを達成するためにフレームごとに適応され得る。
低レイテンシ適用例の場合のコーディング・パス選択アルゴリズム
このセクションでは、所与のコード・ブロック中の規定された最大数のコーディング・パスを生成するためのアルゴリズムについて説明する。アルゴリズムは、処理されるべきビットプレーンが、連続的符号化プロセスに依拠することなしに、前もって決定されるので、高性能ハードウェア実装形態、並びにソフトウェアに好適である。処理すべき最も粗いビットプレーンの決定のみを考慮した先行するセクションとは異なり、ここでは、所与のコード・ブロックについて処理されるべきコーディング・パスのフル・セットの決定を検討する。
ここで説明されるアルゴリズムは、PCRD-optアルゴリズムが、完全なビデオ・フレームの小さい部分のみを表し得るコード・ブロックの集合に対して定期的に行使される低レイテンシ適用例に好適であり、そのような、コード・ブロックの集合について「フラッシュ・セット」という用語を使用する。ここでも、前のフレームにおけるPCRD-optアルゴリズムからの結果が、後続のフレームにおいてコーディング・パスの選択を誘導するために使用され得るように、ビデオ・フレームのシーケンスが圧縮されているということに依拠する。各コード・ブロックについてのコーディング・パスの選択は、コーディングされた長さが前もって利用可能でないので、ひずみ長さ勾配情報に基づく。
以下の説明では、最初に、各コード・ブロックについて生成されるコーディング・パスのセットから適切なコーディング・パスを選択するためのPCRD-optプロセスを手短にレビューする。これは、本質的にPCRD-optアルゴリズムのレビューであり、それは、最初に実際に生成されたコーディング・パスのセットを制限するという問題に固有でない。

を、生成されている現在フレームにおける単一のフラッシュ・セット(コード・ブロックのグループ)γに適用される長さ制約を表すものとする。

を、フラッシュ・セットγについてのひずみ長さ勾配しきい値を表すものとする。勾配しきい値

は、ひずみ長さ性能に従って各コード・ブロックから適切なコーディング・パスを選択するために使用される。コード・ブロックbについてのコーディング・パスcpを選定することから生じるひずみ長さ勾配を指すために、記法

を使用する。これは、ひずみの低減とコーディングされた長さの増加との間の比であり、コード・ブロックの動作ひずみ長さ特性の凸閉包上にあるコーディング・パス間で測定され、これらの勾配値は、コーディング・パスが粗いビットプレーンから最も細かいビットプレーンに進むにつれて、必然的に単調に減少する。PCRD-optアルゴリズムは、もしあれば、生成されたフラッシュ・セット中にコード・ブロックbから含まれるべき最後のコーディング・パスcpを識別する。詳細には、cpは、もしあれば、

である、最後の(最も細かい)コーディング・パスである。

を、ひずみ長さ勾配目標に従う選択されたコーディング・パスcpについてのコード・ブロックbの長さを表すものとする。フラッシュ・セット中の各コード・ブロックからのすべての長さ寄与の合計

は、初期長さ値を提供し、初期長さ値は、次いで、フラッシュ・セット・ターゲット長さ

と比較され得る。初期長さ

がターゲット長さ

を超えた場合、

は適宜に増加され得、コーディング・パス選択プロセスは、フラッシュ・セットについて繰り返され得る。

についてのより大きい値は、各コード・ブロックからより粗いビットプレーンが潜在的に選択されることになり、それにより全長への寄与を低減することを意味する。勾配しきい値

は、総フラッシュ・セット長さ

が、もはやターゲット

を超えなくなるまで、繰り返し増加され得る。同様にして、初期に

がターゲット長さ

よりも低い場合、勾配しきい値

は減少され得、コーディング・パス選択プロセスは繰り返され得る。

についてのより低い値は、各コード・ブロックからより細かいビットプレーンが潜在的に選択されることになり、全長への寄与を増加させることを暗示する。
次に、各コード・ブロックについてのコーディング・パスの限られたセットを生成する際の続くプロセスについて説明する。これは、コード・ブロックのレートひずみ特性がフレームごとに比較的安定しているという観測に依拠する。したがって、現在のコード・ブロックbのコーディングは、前のフレームにおける対応するコード・ブロック

の属性によって誘導され得る。好ましい実施例は、

のいくつかの記憶された属性を利用し、これらは、ビットプレーン

と、ビットストリーム中に最後に含まれていた、関連するコーディング・パス

(すなわち、Cleanup、SigProp又はMagRef)とを含む。多くの事例において、

は、コーディングが実施されるべきである現在のコード・ブロックのビットプレーンについての良好な推定値であることがわかる。したがって、ビットプレーン

におけるCleanupパスと、関連するSigPropパス及びMagRefパスとは、常に、現在のコード・ブロックについて生成される。レート制御アルゴリズムがフレームごとにコンテンツの変化に適応することを可能にするために、予測されたアンカー

に関してより粗いビットプレーン及びより細かいビットプレーンについてのコーディング・パスを生成することを考慮することも重要である。好ましい実施例では、ビットプレーン

及び

についてのコーディング・パスが、前のフレームにおける対応するコード・ブロック

のステータスに応じて考慮される

が、前のコード・ブロック

について生成された最も粗いビットプレーンに等しく、含まれた対応する最後のコーディング・パス

がCleanupパスである場合、「初期コーディング・パス」フラグは、1に設定される(INITIAL_CP=1)。これは、より粗いビットプレーンが有用であった可能性があるが、前のコード・ブロック

にとって利用可能でなかったことを示す。したがって、現在のコード・ブロックは、より粗いビットプレーン

を考慮し、Cleanupパスと、随意に関連するSigPropパス及びMagRefパスとを生成する。SigPropとMagRefとを含むことは、生成されるべきであるコーディング・パスの総数に対するユーザ定義上限に依存して行われ得る。

が、前のコード・ブロック

について生成された最も細かいビットプレーンに等しく、含まれた対応する最後のコーディング・パス

がMagRefパスである場合、「最終コーディング・パス」フラグは、1に設定される(FINAL_CP=1)。これは、より細かいビットプレーンが有益であった可能性があるが、前のコード・ブロック

について生成されなかったことを示す。
より細かいビットプレーンを考慮することの利益をさらに検証するために、コーディング・パス

に対応するひずみ長さ勾配

は、フラッシュ・セットしきい値

と比較され、ここで、

は、前のコード・ブロック

を含むフラッシュ・セットを示す。



との間に小さい差のみがある場合、これは、生成されたコーディング・パス

が適切であり、現在のコード・ブロックについてのより細かいビットプレーンを考慮することにおいて利得がほとんどないことがあることを暗示する。しかしながら、「最終コーディング・パス」フラグが1に設定され(すなわち、FINAL_CP=1)、勾配値

がフラッシュ・セットしきい値

よりも実質的に大きい場合、より細かいビット・プレーン

は、現在のコード・ブロックについて考慮される。Cleanupパスと、随意に関連するSigPropパス及びMagRefパスとは、次いで、ビット・プレーン

について生成される。再び、SigPropパス及びMagRefパスの生成は、生成されるべきであるコーディング・パスの総数に対するユーザ定義上限に依存して行われ得る。
フレームごとに監視される別の重要なコード・ブロック属性は、各コード・ブロックについての欠落したMSBの数である。前のコード・ブロック

と現在ブロックbとの間の欠落したMSBの大きい差が、コード・ブロックの複雑さの急速な変化のおおまかな測度として使用され得る。好ましい実施例では、現在ブロックbについての欠落したMSBの数が、前のブロック

の欠落したMSBの数よりも大きい場合、より細かいビット・プレーン

についてのコーディング・パスは、FINAL_CPフラグ、又は



とについての値にかかわらず生成され、これは、これらの測度が、コード・ブロック複雑さの急速な変化により、有効であると見なされないからである。欠落したMSBの数がコーディング・パス生成に対して有することがある影響は、サブバンドに応じて選択的にされ得、たとえば、LLサブバンドについての好ましい実施例では、欠落したMSBの数は、コード・ブロック複雑さの変化の信頼できる測度と見なされない。
生成されたコーディング・パスの各々について、対応するひずみ長さ勾配が算出され、記憶される。次いで、これらの勾配値は、最終的にビットストリームに含まれることになるコーディング・パスを選択するために使用される。ひずみ長さ勾配に基づくレートひずみ最適コーディング・パス選択ストラテジーは、このセクションにおいて前に説明された。
いくつかの実装形態では、上記で説明されたアルゴリズムが、



との間の差が小さいかどうかのみに依拠するので、前のフレームからのひずみ長さ勾配としきい値とを記憶することは、実際には必要でない。
複雑さ認識(Complexity-Aware)コーディング・パス選択アルゴリズム
上記で説明された方法は、ビデオ・シーケンス中の連続フレーム間で複雑さの大きい変化が経験される場合を除いて、あらゆるコード・ブロックが2つ以下の連続するビットプレーンを処理するように制約されるときでも、実際にはうまく機能する。特に、フレーム(又はフレームの領域)が極めて低い複雑さ(たとえば、小さいテクスチャ、少ないエッジなど)を呈する場合、PCRD-optアルゴリズムは、各関係するコード・ブロックについて利用可能な最も細かいビットプレーンを選択する傾向がある。フレームのシーケンスにわたって、これは、動作点を、コンテンツの極めて細かい量子化を表す動作点に急速に移動させる。次いで、複雑さが突然増加した場合、この細かい動作点は、あまりに多くのビットを作り出し、PCRD-optアルゴリズムは、全コード・ブロックを廃棄することを強制され、大きいひずみという不利益を生じる。その条件は、典型的には、大きい複雑さの過渡から2つ又は3つのフレーム内で復元される高性能により急速に消滅し、これは、知覚可能なひずみを回避するのに十分であろうが、そのような過渡を低減又は除去するためのステップをとることが望ましい。このセクションでは、上記で説明されたコーディング・パス選択アルゴリズムを向上させるために使用され得る、全体的複雑さと局所的複雑さの両方を測定するやり方について説明する。
メモリ/レイテンシ制約環境において、ウェーブレット変換によって作り出されたサブバンド・サンプルのラインは、増分的にコレクタにプッシュされ、コレクタは、それらをコード・ブロックにアセンブルし、次いで、都合がつき次第できるだけ早くブロック符号化プロセスを始める。このプロセス中に、サブバンド・サンプルは、コーディング複雑さを査定するために分析され得る。同じサブバンドにおいて水平方向に隣接するコード・ブロックからのサブバンド・サンプル、及びウェーブレット階層における同じレベルにある他のサブバンドからのサブバンド・サンプルは、同様の時間において作り出され、したがって、それらの複雑さは、より全体的な推定値を形成するために組み合わせられ得る。同様に、複雑さ情報は、異なる画像成分(たとえば、色成分)に属するサブバンドから組み合わせられ得、ここで、組み合わせられたサブバンドは、同じ垂直解像度を有する。異なる解像度にわたる複雑さ推定値を累積することによってさらにより全体的な推定値が形成され得るが、これは、メモリ又はレイテンシ制約適用例において選択的に行われ得るにすぎない。
ここで説明される方法は、複雑さの局所的測度として、個々のコード・ブロック内の絶対サブバンド・サンプルの累積から始まる。詳細には、サブバンドβ内のコード・ブロックbについて、局所的複雑さ測度は、

として表され得る。
ここで、Δβは量子化ステップ・サイズであり、Nは、コード・ブロックb内にあるサンプル・ロケーションのセットを示し、||N||はコード・ブロック面積である。多くの適用例では、log(x)演算は、正確に計算されるのではなく近似されることになるので、厳密な等式ではなく書き込む。たとえば、xについての浮動小数点表現でのビットの一部又は全部は、log(x)の固定小数点近似として解釈し直され得る。Cβ[b]の効率的な計算は、||N||・Δβによる除算を対数の外に移動することを伴い得、ここで、それは固定オフセットになる。
上述のように、上式によって表される累積は、典型的には、サブバンド・サンプルがウェーブレット変換から、場合によっては、色変換などの他の変換プロセスから利用可能になるので、増分的に実施されるであろう。コード・ブロックの完全な行が符号化のためにアセンブルされると、Cβ[b]に関連する正規化及びログ演算が、行中の各コード・ブロックについて実施され得る。同時に、局所的複雑さ推定値は、以下のように、より全体的な推定値に組み合わせられ得る。

ここで、Vは、同じ垂直解像度を有する各サブバンドからのコード・ブロックの1つの行からなる、サブバンド・サンプルの単一の「vセット」(垂直セット(vertical set))を識別する。所与のvセットに寄与するサブバンドは、異なる画像成分に属し得るが、関係するJPEG2000プレシンクト区画の効果を考慮に入れると、同じ垂直サンプリング・レート(脚注4)及び同じ垂直コード・ブロック・サイズを有するべきである。したがって、Gは、vによってインデックス付けされたvセット内に見つけられるコード・ブロックの面積加重平均複雑さとして理解され得る。
上述のように、異なる垂直解像度からの複雑さ値は、選択的に組み合わせられ得る。これを具体的にするために、P(V)を、JPEG2000キャンバス座標系の「高解像度グリッド」上に投影されるとき、vセットVに属するサブバンド・サンプルが及ぶ領域を示すものとする。vセットV内の複雑さ情報は、P(V)⊆P(V)である場合、vセットVに適合すると見なされる。適合vセットVからの複雑さ情報は、この情報が、Vに属するコード・ブロックがコーディングされる必要がある時点より前に利用可能である限り、vセットについての全体的複雑さ値Gを増補するために使用され得る。ウェーブレット変換により招かれる垂直遅延が、多重解像度階層における深度とともに伸長するので、低い垂直解像度をもつvセットからの複雑さ情報を、はるかに高い垂直解像度を有するものと統合することが可能であると予想しない。しかしながら、いくつかの場合には、より低い解像度からの情報は、レイテンシ及びメモリに対する制約を条件として、次に高い解像度におけるvセットにとって利用可能な全体的複雑さを増補するために使用され得る。一方、より高い解像度からの複雑さ情報を、より低い解像度におけるvセットにとって利用可能な全体的複雑さに統合することは、比較的簡単である。
これらの要件を考慮すると、U(V)を、V自体を含むすべてのvセットVの集合を示すものとし、したがって、P(V)⊆P(V)であり、V内に見つけられるサブバンド・サンプルは、vセットV中のコード・ブロックが符号化される必要がある時点より十分に先にウェーブレット変換によって作り出される。次いで、vセットV中のコード・ブロックの符号化中に使用され得る、増補された(又は「統一された」)全体的複雑さ値を以下のように定義する。

最も簡単なケースでは、U(V)は単にV自体であり、したがって、

である。
次に、局所的及び全体的複雑さ値が、コード・ブロックb内で符号化するためのコーディング・パスの選択にどのように影響を及ぼすかを説明する。v(b)を、コード・ブロックbが属するvセットのインデックスであるとする。次いで、コード・ブロックbの符号化中に利用可能な局所的及び全体的複雑さ情報は、それぞれ、Cβ[b]及び

からなる。

及び

を、ビデオ・シーケンスの前のフレームにおいて計算されたような、対応する量を示すものとし、ここで、

及び

は、現在フレームにおけるb及びβに対応する、前のフレームからのコード・ブロック及びサブバンドである。これらがすべての対数量であるので、2つ又は3つの少数ビットをもつ8ビット固定小数点表現は、たいていの実際的適用例の場合、それらをフレーム間に記憶するために十分であるはずである。セクション0のコーディング・パス選択方法は、オフセットδを、そこで説明される、予測されたアンカー・ビットプレーン

に加算することによって修正される。詳細には、

であり、ここで、αは小さい正の定数(たとえば、0.5又は0.25)である。
この修正を理解するために、第1に、δ=1の増分が、符号化されるアンカー・ビットプレーンに関連する量子化ステップ・サイズを効果的に2倍にすることを観測する。額面通りに、単に

を設定することは、全体的シーンの複雑さの変化を近似的に補償することが予想され得る。上記の式中の第2の項は、相対的複雑さ(全体的に対する局所的)が増加したコード・ブロックについてのさらにより粗いビットプレーンの生成を助長する。これは、コード・ブロック内であまりに多くのデータを生成し、それにより、それらのコード・ブロックが複雑さの大きい増加をこうむり、それが、他の場所で複雑さの減少があるとしても、完全には補償されないことがあるという危険を低減する。基本的に、パラメータαは、複雑さの突然の変化が、フラッシュ・セット中に含まれるべきコード・ブロックに関連する情報にとって大きすぎる生成されたコーディング・パスを生じ、大きい局所的ひずみを生じ得るという、前に述べられた危険を管理するために使用される。
上記の公式化では、δは、概して整数値でないが、それが調整する予測されたアンカー・ビットプレーン

は、必然的に整数である。もちろん、δは、整数値に丸められるべきであるが、δの残りの小数部分はまた、生成すべきコーディング・パスの選択において考慮に入れられ得る。セクション0において述べられたように、実際に生成される最も粗いビットプレーンは、前のフレームにおいて選択された実際のコーディング・パス、INITIAL_CPフラグ、FINAL_CPフラグ、及び関係するひずみ長さ勾配に応じて、アンカー・ビットプレーンの上又は下にあり得る。その上、一般的な適用例では、少なくとも2つのビットプレーンが生成され、通常、各々、3つのコーディング・パス(Cleanup、プラスSigProp及びMagRefリファインメント)を伴う。δの小数部分は、明らかに、これらの決定をバイアスするために使用され得る。
ビットレート及びひずみ長さ勾配推定ストラテジー
上記で説明されたアルゴリズムは、コード・ブロックbをビットプレーンpにコーディングするときに経験されるビットレートが、形式R+Cβ[b]-pのものであるべきであるという仮定に関して理解され得、ここで、Rは、フレームごとに変動しない定数である。これは、多くのサンプルが非有意であるより低いビットレート(より粗いビットプレーン)において正確であることを予想しない極めておおまかなモデルである。
コード・ブロックについてのコーディングされたビットレートのはるかに正確な推定値が、符号化プロセスを実際に実施することなしに形成され得る。これを行うための1つのやり方は、各利用可能なビットプレーンp=0、p=1、...において発生する有意サンプルの数の集計Σを形成することによる。確実に、これは、計算を必要とするが、符号化ステップを実際に実施することよりもはるかに費用がかからないことがある。これらのΣ値から、各ビットプレーンpについての有意性フラグの1次エントロピーを直接決定することができ、また、各pについてのMagSgnビットストリームにおいてパックされる必要があるマグニチュード及び符号ビットの数を知る。各有意サンプルについての符号なしマグニチュード指数予測残差をコーディングするために1又は2ビットを許容すると、所与のビットプレーンpにおいてCleanupパスによって必要とされるビットの数についての妥当な推定値を取得する。実際のコーディング方法はより効率的である傾向があるので、この推定値は、控えめである可能性がある。
符号化プロセスのビットレートを推定するための別のやり方は、コード・ブロック内のサブバンド・サンプルの確率密度関数についての一般化されたガウス・モデルを適合させ、モデルのパラメータのみに依存する各ビットプレーンpにおけるビットレートについてのあらかじめ計算された値を使用することである。モデルを適合させるために、各コード・ブロックについてのわずか2つの統計値を収集することで十分であり、2つの統計値のうちの一方は、平均絶対値、又は等価的に、前に導入された複雑さ推定値R+Cβ[b]であり得、他方は、サブバンド・サンプルの平均2乗値であり得る。
各ビットプレーンにおける有意サンプルを直接計数することに関するモデルベースの手法の主要な利点は、複雑さの低減である。両方の手法は、ビットプレーンpの関数として、所与のコード・ブロックについてのコーディングされたビットレートを予測する関数を生じる。また、この関数から、各ビットプレーンにおいてコード・ブロックについての動作ひずみ長さ勾配の推定値を導出し得る。これらのビットレート及びひずみ長さ勾配推定値は、様々な適用例設定において、各コード・ブロックについて実際に生成すべきコーディング・パスの狭いセットを選択するために使用され得る。
モデル・ベースの手法以外に、ビット・スタッフィングより前に、特定のビットストリームに放出されることになるビットの数を直接計数するために符号化プロセス自体の要素を働かせることが可能である。ビット・スタッフィングが、15ごとに1ビット超だけ、コーディングされた長さを増加させることができず、有意な影響をめったに有しないので、この方法は、コーディングされたビットストリームを実際に生成することなしに、多数のコーディング・パスのコーディングされた長さの極めて正確な推定値を作り出すために使用され得る。分散マグニチュード・コーディングを用いるCleanupパスのトリプル・ビットストリーム変形態では、ビット・スタッフィングより前に、MagSgn及びVLCビットストリームに放出されたビットの数は、VLCコードワード・テーブルを、各グループについてのVLCビットの数と、有意サンプルの数と、残差マグニチュード・ビットの数との和を返すルックアップ・テーブルと置き換えることによって決定され得る。これは、4つのサンプルのグループごとに多くとも2つのテーブル・ルックアップ演算を必要とする。これらの値を集計することは、Cleanupパスによって作り出されたビットの総数の良好な推定値を提供し、それは、グループ有意性シンボルの適応ランレングス・コーディングによって作り出されたビットの数を推定するか又は直接算出することによって改善され得る。ビット・スタッフィングより前に、MagRefパスによって作り出されたビットの数は、単に、先行するCleanupパスにおいて有意であるサンプルの数である。SigPropパスによって作り出されたビットの数は正確に算出するのにより費用がかかり、これは、有意性プロシージャの伝搬が後続することを必要とするからであるが、とはいえ、計算することは、SigPropビットストリームを実際に生成するよりも著しく安価である。
本発明の実施例は、直接ビット計数ストラテジーとモデルベース推定ストラテジーとの組合せを使用して、コーディング・パスのセットの動作レートひずみプロパティの良好な推定値を取得し、この情報を使用して、実際に生成すべきコーディング・パスの小さいセットの選択を容易にすることができる。たとえば、いくつかの実施例では、Cleanupパスによって作り出されたビットの実際の数は、少なくとも1つの有意サンプルを含んでいるコード・ブロックの4つの最上位ビットプレーンについて算出され得、その後に、Cleanupパス境界においてひずみ長さ特性の完全な推定値を形成するために、モデルベース手法が後続のビットプレーンについて使用され得る。
可変ビットレート設定(VBR:variable bit-rate)において、フレームごとに緩やかにのみ変化するようにひずみ長さ勾配しきい値

を準備するが、これは、各フレームのコーディングされたサイズが変動することを意味し得る。ターゲット平均ビットレートを維持するように、外部ループが、

を時間とともに緩やかに調整し、これは、通常、古典的な「リーキー・バケット」モデルを介して行われる。そのような適用例では、PCRD-optアルゴリズムは、コード・ブロックが実際に符号化される時点より前に知られているしきい値

によって直接駆動され、したがって、各ビットプレーンpについてのひずみ長さ勾配推定値は、コード・ブロックについて生成されるべきであるコーディング・パスを決定するために使用され得る。
詳細には、推定値が控えめであることが信頼され得る場合、推定されるひずみ長さ勾配が、

よりも大きくなるように、最も小さい(すなわち、最高品質の)pを見つけ、このpについてのCleanupパス、及び後続の1つ又は場合によっては2つのより高品質の(より小さいp)Cleanupパスを、それらのそれぞれのSigProp及びMagRefコーディング・パスとともに生成することで十分である。次いで、実際のPCRD-optアルゴリズムは、生成されたコーディング・パスのこの限られたセットとともに動作する。
一定ビットレート(CBR:constant bit-rate)設定では、vセットV中の、又はそれが属するより大きいセットU(V)中の各コード・ブロックについての推定されたビットレート及びひずみ長さ勾配は、各コード・ブロックについてのコードストリーム中にCleanupパスが含まれることが予想される(もしあれば)ビットプレーンを決定するために、PCRD-optアルゴリズムの予想される挙動をシミュレートするために使用され得る。同じく、推定値が控えめであると仮定すると、実際のブロック・コーダが、推定値が示唆するよりも効率的であることを意味し、その場合、それは、ただ、この推定されたCleanupパス+1つ又は2つのより高品質の(すなわち、より小さいp)Cleanupパスを、それらのそれぞれのSigProp及びMagRefコーディング・パスとともに生成することで十分である。次いで、実際のPCRD-optアルゴリズムは、生成されたコーディング・パスのこの限られたセットとともに動作する。
好ましい実施例の上記の説明において例示された、本発明のプロセス及び装置のいくつかの弁別的特徴があることが諒解されよう。実施例の有利な特徴が、以下で手短に説明される。本発明はこれらの特徴に限定されず、実施例は、これらの特徴の一部又は全部を含み得るか、又はこれらの特徴を含まないことがあり、変形形態を利用し得ることに留意されたい。
A. 有意性のコーディングは、グループに対して行われる(グループ・サイズ4が選好される)。
B. 有意性のコーディングは、いくつかのやり方で他のコーディング・ステップに先行する。
a. 最初に、好ましい実施例では、(AZCグループとして知られている)グループの特定のサブセットの有意性は、それ自体のビットストリームを生成する適応コーディング・エンジンを使用してコーディングされる。
b. 他の有意性情報は、有意サンプルについてのマグニチュード及び符号情報がコーディングされる前に、グループごとにコーディングされる。
c. デュアル・ビットストリーム実施例では、有意性情報は、コード・ブロック・サンプルの1つのライン全体についてコーディングされ、それから、それらのサンプルについてのマグニチュード及び符号情報がコーディングされ、その後に次のラインが処理され、以下同様である。
d. トリプル・ビットストリーム実施例では、有意性符号化及び復号は、マグニチュード及び符号コーディング・プロセスから完全に切り離され、したがって、有意性が任意の順序において符号化され得るが、デコーダは、同時に、又は最終のマグニチュード及び符号情報より先にのいずれかで、所望のマージンによって、有意性情報を復元することができる。
C. 有意性コーディングがグループ・コンテキストに基づき、ここで、グループのコンテキストは、コード・ブロック内ですでにコーディングされた有意性情報のみに依存する。
D. 有意性のコーディングは、可変長コーディングを、さもなければ完全に非有意であることが知られていない各グループについて放出される単一のコードワードとともに利用し、ここで、コードワードは、グループ・コンテキストに依存する。
E. 有意サンプルについてのマグニチュード情報のコーディングは、すでにコーディングされたマグニチュードに関連するマグニチュード指数を利用する。これらは、コンテキスト又は予測子を形成するために使用され、コンテキスト又は予測子に関して、有意サンプルのマグニチュード指数に対する上限がコーディングされる。この制限は、符号ビットとともに、有意サンプルについての未加工ビットストリームに放出されなければならない追加のマグニチュード・ビットの数を決定する。
実施例では、近接マグニチュード指数の和は、上述のコンテキストを形成するために使用され、2つの先行する近傍は、コード・ブロックの第1のライン中で使用され、4つの近傍(左、左上、上及び右上)は、コード・ブロック中のすべての他のラインについて使用される。
F. マグニチュード・コーディング・コンテキストは予測子Gにコンバートされ、次いで、コンマ・コードが、R=max{0,E-1-G}を符号化するために使用され、ここで、Eは有意サンプルのマグニチュード指数(必然的に非0)であり、その後に、R>0である場合、符号及びR+G最下位マグニチュード・ビットが放出され、他の場合、符号及びR+G+1マグニチュード・ビットが放出される。
G. 他の実施例では、マグニチュード指数制限は、有意性がコーディングされるのと同じグループであるグループ中でコーディングされる。そのような実施例では、これらの制限についての予測子は、前にコーディングされたマグニチュードに基づいて、好ましくはコード・ブロック内のグループの前の行から形成され、予測残差は、予測された制限と実際の制限との間の差を識別するためにコーディングされ、それは、厳しいものである必要はない。好ましい実施例では、予測残差は可変長コードを使用してコーディングされ、少なくとも1つの有意サンプルを含んでいる各グループについて1つのコードワードを生成する。好ましくは、これらの残差コードワードは、同じグループについての有意性をコーディングする可変長コードワードとインターリーブされ、指数制限残差コードワード及び有意性コードワードが、有意サンプルの実際のマグニチュード・ビット及び符号が同じ又は異なる未加工ビットストリームからアンパックされる必要がある時点より先に復号されることを可能にする。コーディングされたマグニチュード制限残差は、概して、予測子が、最初に復号されなければならないマグニチュードに基づくので、マグニチュード又はさらにマグニチュード指数の自己充足的な説明を提供しない。
H. 対応するビットプレーンについてのJPEG2000有意性伝搬コーディング・パスと同じ情報を符号化する、各コード・ブロックについての追加のSigPropコーディング・パスの使用。実施例では、このコーディング・パスは、有意性ビット及び符号ビットを未加工コードワード・セグメントに放出する。いくつかの実施例では、元のJPEG2000有意性伝搬パスはこの目的のために使用され、「適応コーダBYPASSモード」で動作し得る。実施例では、元のJPEG2000有意性伝搬パスは、サンプルのセットに関連する関係する有意性ビットが、有意性ビット及び符号ビットをサンプルごとにインターリーブするのではなく、サンプルのそのセットについて対応する符号ビットより先に未加工ビットストリームに放出されるように修正される。好ましい実施例は、4つのサンプルのセットに基づいてこのインターリービングを実施する。実施例は、ビットが、ビッグエンディアン・ビット順序ではなく、リトルエンディアンを用いて未加工ビットストリームのバイトにパックされるという追加の修正を含み得る。
I. 対応するビットプレーンについてのJPEG2000マグニチュード・リファインメント・コーディング・パスと同じ情報を符号化する、各コード・ブロックについての追加のMagRefコーディング・パスの使用。実施例では、このコーディング・パスは、リファインメント・ビットを未加工コードワード・セグメントに放出する。いくつかの実施例では、このコーディング・パスは、「適応コーダBYPASSモード」で動作する元のJPEG2000マグニチュード・リファインメント・コーディング・パスと同等であり得る。実施例では、JPEG2000マグニチュード・リファインメント・パスは、ビッグエンディアン・ビット順序ではなく、リトルエンディアンを用いて、ビットを未加工ビットストリームのバイトにパックすることによって修正される。
J. Cleanupパスが、各コード・ブロックの1つ又は複数のビットプレーンについて、前記ビットプレーンの一部又は全部についてのSigProp及びMagRefコーディング・パスとともに、様々なコーディング・パスについてのひずみ推定値とともに、生成される画像符号化方法であって、最終のコードストリームに放出される実際のコーディング・パスが、レートひずみ最適化ステップに基づいて生成されたものから選択される、画像符号化方法。
K. コーディング・パスがコード・ブロック内で生成される最も粗いビットプレーンが、コーディング・パスが、類似しているコード・ブロックからビデオ・シーケンス中の前のフレームのコードストリームに放出される最も粗いビットプレーンに基づいて決定される上記の方法であって、ここで、類似度が、コード・ブロックが属する空間ロケーション及びサブバンドに関して測定される、上記の方法。
L. コーディング・パスがコード・ブロック内で生成される最も粗いビットプレーンが、先行するフレームにおけるレート制御プロセスの挙動から推論されるサブバンド固有の最大データ・レート目標を条件として決定される、上記の方法。
M. コード・ブロック内に生成されるコーディング・パスの完全セットが、前のフレームにおけるコード・ブロックについてのレートひずみ最適化ステップによって選択された、コーディング・パスに関する情報とともに、前記前のフレームにおける同じコード・ブロックから収集された要約統計値の小さいセットに基づいて決定される、上記の方法。
N. 実施例では、上記の方法は、コーディング・パスが生成される最も粗いビットプレーンを、画像内の各コード・ブロック及びより大きい領域の圧縮率を示す複雑さ推定値に基づいて上又は下に調整することによって、修正される。実施例は、各コード・ブロック内のサブバンド・サンプルの絶対値を累積することと、結果の近似対数をとることとによって形成される、複雑さ推定値を利用する。この形式の複雑さ値は、局所的複雑さとより全体的な複雑さとの比較が、前に圧縮されたコンテンツに対して、各コード・ブロックの周りに形成され得るように生成及び記憶され、前に圧縮されたコンテンツのレートひずみ最適化結果は、コーディング・パスが生成されているビットプレーンを決定するために参照として使用される。
O. 実施例では、上記の方法は、各コード・ブロックについてのレート及びひずみ長さ勾配推定値の組込みによって修正され、それらのレート及びひずみ長さ勾配推定値は、各コード・ブロックについて累積される要約統計値への、サブバンド・サンプルについての統計モデルの適合から、又は複数のマグニチュード・ビットプレーンの各々においてコード・ブロック内の有意サンプルの計数から様々に形成される。

脚注
1 実際に、JPEG2000未加工コードワード・セグメントにおけるビット・スタッフィングは、ビッグエンディアン16進値が範囲FF80h~FFFFh内にあるバイト・ペアの出現を回避するが、ブロック・コーディング・アルゴリズムは、概して、範囲FF90h~FFFFhにおけるマーカー・コードを回避することを必要とされるにすぎない。
2 ソフトウェア実装形態の場合、すべてのビット・スタッフィング・プロシージャは効率的にベクトル化され得、したがって、個々のバイト指向テストは必要とされない。
3 この観測は、標準JPEG2000ブロック・コーディング・アルゴリズムが全BYPASSモードで動作する場合に当てはまり、ここで、すべてのSigPropコーディング・パス及びMagRefコーディング・パスは未加工ビットを放出し、適応コーディングはCleanupパスにおいてのみ使用される。
4 垂直解像度によって、(最高垂直解像度をもつ画像成分からの)画像ラインがウェーブレット変換にプッシュされるにつれてサブバンド・ラインが出現するレートを意味する。丸め効果は別として、サブバンドの垂直解像度は、画像の高さで除算された、サブバンド中のラインの数である。

Claims (18)

  1. 画像圧縮の方法であって、前記画像圧縮は画像のウェーブレット変換を伴い、サブバンド・画像サンプルが、ブロック・コーディング・プロセスを使用して、コード・ブロックに形成され、前記方法は、
    前記ブロック・コーディング・プロセスの前に、
    コード・ブロックについて、サンプル、走査順序において走査パターンに従ってn個の連続するサンプルのグループに収集するステップと
    各サンプルについて、前記サンプルが、サンプルが非ゼロの場合は有意であると決定され、そうでない場合は有意でないと決定するように、有意であるのか又は有意でないのかを決定するステップと
    を実行し、
    ビットストリームを生成するために、コーディング・パスを実行する前に
    複数のビットプレーンに対応する複数のコーディング・パスについて、ビットストリームのコーディングされた長さ及びひずみ長さ勾配を推定するステップであって、推定されたコーディングされた長さ及びひずみ長さ勾配が、複雑さの測度として使用される、ステップと、
    コーディング・パスが前コーディングされた長さ及びひずみ長さ勾配の推定に基づいて前記コード・ブロックについて生成されるべきビットプレーンのセットを、前記複数のビットプレーンから選択するステップと、
    前記ブロック・コーディング・プロセスを使用して、前記選択されたビットプレーンをコーディングするステップであって、前記ブロック・コーディング・プロセスは、
    走査順序において前記コード・ブロックの前のサンプルの有意性のみに依存するコードを使用して、前記コード・ブロックのサンプルのグループについての有意性情報をコーディングするステップと、
    前記走査順序において前のマグニチュード及び有意性情報のみに依存するコードを使用して、前記コード・ブロックのサンプルのグループについてのマグニチュード及び符号情報をコーディングするステップと、
    前記有意性及びマグニチュード・コード・ビットを、各グループに関連する有意性ビットが前記コード・ブロックのコーディングされた表現中で一緒に出現するように、グループごとに少なくも2つの別個のビットストリームに構成するステップと、
    前記コード・ブロックのサンプルの各グループについてコーディングするステップ及びコード・ビット構成ステップを繰り返すステップと
    を含む、ステップと
    を含む方法。
  2. 前記推定されたコーディングされた長さが、複数のビットプレーンの各々においてコード・ブロック中で見つけられた有意サンプルの数を計数することに基づく、請求項1に記載の方法。
  3. 前記推定されたコーディングされた長さ及びひずみ長さ勾配が、コード・ブロック内の前記サブバンド・サンプルの確率密度関数についての一般化されたガウス・モデルに基づき、前記モデルについてのパラメータが、前記コード・ブロックのサンプル値から計算される要約統計から形成される、請求項1に記載の方法。
  4. 前記推定されたコーディングされた長さが、ビット・スタッフィングより前に個々のビットストリームに放出されることになるビットの数を決定するために、前記個々のビットストリームを生成することなしに、Cleanupパスのいくつかの要素を実行することに基づいて取得される、請求項1に記載の方法。
  5. ビット・スタッフィングより前にMagSgn及び可変長コーディング(VLC)ビットストリームに放出されたビットの数を推定するために、VLCコードワード・テーブルが、各グループについてのVLCビットの数と、有意サンプルの数と、残差マグニチュード・ビットの数との和を返すルックアップ・テーブルと置き換えられる、請求項4に記載の方法。
  6. 各グループが4つのサンプルを含む、請求項1から5までのいずれか一項に記載の方法。
  7. グループ有意性シンボルは、前記コード・ブロック内のいくつかのグループについて、各前記グループが有意サンプルを含んでいるのか有意サンプルをまったく含んでいないのかを通信するための適応コードを使用してコーディングされる、請求項1から6までのいずれか一項に記載の方法。
  8. 前記ブロック・コーディング・プロセスが、複数のビットストリームを含む単一のコードワード・セグメントを作り出すステップを含む、請求項1から7までのいずれか一項に記載の方法。
  9. 前記単一のコードワード・セグメントが、前記単一のコードワード・セグメントの始まりから開始する前方伸長ビットストリーム及び前記単一のコードワード・セグメントの終わりから開始する後方伸長ビットストリームによって作り出され、それにより、前記前方伸長ビットストリーム及び後方伸長ビットストリームの長さが別個に通信される必要がない、請求項8に記載の方法
  10. 前記単一のコードワード・セグメントは、前記単一のコードワード・セグメントの始まりから開始する2つの前方伸長ビットストリーム前記単一のコードワード・セグメントの終わりから開始する1つの後方伸長ビットストリームとを含む、3つのビットストリームによって作り出され、前記2つの前方伸長ビットストリーム間のインターフェースと前記コードワード・セグメントの全長が識別される、請求項8に記載の方法。
  11. グループ有意性シンボルの適応コーディングによって作り出されたビットが、前記コード・ブロックのコードワード・セグメント内のそれら自体のビットストリームに割り当てられる、請求項1から10までのいずれか一項に記載の方法。
  12. グループ有意性シンボルが、適応算術コーディング・エンジンを使用してコーディングされる、請求項1から11までのいずれか一項に記載の方法。
  13. グループ有意性シンボルが、適応ランレングス・コーディング・エンジンを使用してコーディングされる、請求項1から12までのいずれか一項に記載の方法。
  14. サンプルのグループについての有意性情報をコーディングする前記ステップが、コンテキストに基づき、サンプルのグループの前記コンテキストが、走査ライン順序において、前記コード・ブロック中のサンプルの前のグループについてすでにコーディングされた前記有意性情報のみに依存する、請求項1から13までのいずれか一項に記載の方法。
  15. マグニチュード及び符号情報をコーディングする前記ステップが、各有意サンプルについての未加工ビットストリーム中に含まれる必要があるマグニチュード情報のビットの数をコーディングするステップを伴う、請求項1から14までのいずれか一項に記載の方法。
  16. 各有意サンプルについての前記未加工ビットストリーム中に含まれる必要があるマグニチュード情報のビットの前記数をコーディングする前記ステップが、マグニチュード・コーディング・コンテキストに基づき、前記マグニチュード・コーディング・コンテキストが、近接サンプルのマグニチュード指数から形成される、請求項15に記載の方法。
  17. 前記マグニチュード・コーディング・コンテキストが、前記近接サンプルマグニチュード指数の和から形成される、請求項16に記載の方法。
  18. 請求項1から17までのいずれか一項に記載の方法を実装するように構成される、符号化装置。
JP2021519707A 2018-10-12 2019-10-11 画像圧縮のための方法及び装置 Active JP7477178B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2018903869 2018-10-12
AU2018903869A AU2018903869A0 (en) 2018-10-12 A method and apparatus for image compression
PCT/AU2019/051105 WO2020073098A1 (en) 2018-10-12 2019-10-11 A method and apparatus for image compression

Publications (2)

Publication Number Publication Date
JP2022504604A JP2022504604A (ja) 2022-01-13
JP7477178B2 true JP7477178B2 (ja) 2024-05-01

Family

ID=70163647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021519707A Active JP7477178B2 (ja) 2018-10-12 2019-10-11 画像圧縮のための方法及び装置

Country Status (5)

Country Link
US (1) US11595692B2 (ja)
EP (1) EP3864848A4 (ja)
JP (1) JP7477178B2 (ja)
AU (1) AU2019356526B2 (ja)
WO (1) WO2020073098A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2019356526B2 (en) 2018-10-12 2023-08-10 Kakadu R & D Pty Ltd A method and apparatus for image compression
WO2021077178A1 (en) 2019-10-25 2021-04-29 Kakadu R & D Pty Ltd Method and apparatus for complexity control in high throughput jpeg 2000 (htj2k) encoding
US20240119562A1 (en) * 2022-10-11 2024-04-11 Samsung Electronics Co., Ltd. Least significant bit (lsb) information preserved signal interpolation with low bit resolution processors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005110185A (ja) 2003-09-08 2005-04-21 Sony Corp 画像符号化装置及び方法
US20060262984A1 (en) 2005-05-18 2006-11-23 Dts Az Research, Llc Rate control of scalably coded images
WO2017201574A1 (en) 2016-05-23 2017-11-30 Newsouth Innovations Pty Limited A method and apparatus for image compression

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012091A (en) * 1997-06-30 2000-01-04 At&T Corporation Video telecommunications server and method of providing video fast forward and reverse
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
JP3743384B2 (ja) * 2002-04-19 2006-02-08 ソニー株式会社 画像符号化装置及び方法、並びに画像復号装置及び方法
US8599926B2 (en) * 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US9819946B2 (en) * 2012-04-05 2017-11-14 Newsouth Innovations Pty Limited Method and apparatus for coding of spatial data
AU2019356526B2 (en) 2018-10-12 2023-08-10 Kakadu R & D Pty Ltd A method and apparatus for image compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005110185A (ja) 2003-09-08 2005-04-21 Sony Corp 画像符号化装置及び方法
US20060262984A1 (en) 2005-05-18 2006-11-23 Dts Az Research, Llc Rate control of scalably coded images
WO2017201574A1 (en) 2016-05-23 2017-11-30 Newsouth Innovations Pty Limited A method and apparatus for image compression

Also Published As

Publication number Publication date
WO2020073098A1 (en) 2020-04-16
AU2019356526A1 (en) 2021-04-15
US11595692B2 (en) 2023-02-28
JP2022504604A (ja) 2022-01-13
EP3864848A1 (en) 2021-08-18
AU2019356526B2 (en) 2023-08-10
US20210392377A1 (en) 2021-12-16
EP3864848A4 (en) 2022-08-24

Similar Documents

Publication Publication Date Title
US11470322B2 (en) Method and apparatus for image compression
US7321695B2 (en) Encoder rate control
US7016545B1 (en) Reversible embedded wavelet system implementation
KR102438562B1 (ko) 엔트로피 인코딩 및 디코딩 방식
JP7477178B2 (ja) 画像圧縮のための方法及び装置
JP2007267384A (ja) 圧縮装置及び圧縮方法
JP2005218124A (ja) データ圧縮システム
JP2024150498A (ja) 画像圧縮のためのさらに改善された方法及び装置
US7457473B2 (en) Method for block sequential processing

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20210609

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240411

R150 Certificate of patent or registration of utility model

Ref document number: 7477178

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150