(57)【要約】【課題】  コンパクトなビット平面データ圧縮のための装置および方法の提供。【解決手段】  複数のレジスタを備え、各係数が前記係数の複数の当該ビット位置に位置する複数のビットに分解される係数の配列を順次に受信し、前記各係数の前記複数のビットと併行して動作するように構成されることを特徴とするエンコーダ。【選択図】  図１
2015073274.tif 000002
【特許請求の範囲】
【請求項１】
複数のレジスタを備え、
各係数が前記係数の複数の当該ビット位置に位置する複数のビットに分解される、係数の配列を順次に受信し、
前記各係数の前記複数のビットと併行して動作するように構成されることを特徴とするエンコーダ。
【請求項２】
前記エンコーダは、前記複数のビットのビットが０であることを探知したことに応答して、前記複数のレジスタからのビットに対応する前記複数のビット位置のうち１つのビットに対応するレジスタを、１だけインクリメントするようにさらに構成されることを特徴とする請求項１に記載のエンコーダ。
【請求項３】
前記エンコーダは、前記複数のビットのビットが１であることを探知したことに応答して、前記ビットに対応するビット位置に対応するレジスタの値を符号化することによって、符号化されたシンボルを生成するようにさらに構成されることを特徴とする請求項２に記載のエンコーダ。
【請求項４】
前記エンコーダは、前記複数のビットのビットが１であることを探知したことに応答して、前記ビットに対応するビット位置に対応するレジスタを０にリセットするようにさらに構成されることを特徴とする請求項３に記載のエンコーダ。
【請求項５】
前記ビットのビット位置に相当するレジスタ値は、ビット位置の連続した零の値を表わすことを特徴とする請求項３に記載のエンコーダ。
【請求項６】
各係数のビット位置は、複数のそれぞれのビット平面レベルを形成し、前記エンコーダは複数の符号化されたシンボルを含む、複数の符号化されたビット平面レベルを生成するようにさらに構成されることを特徴とする請求項３に記載のエンコーダ。
【請求項７】
前記エンコーダは、係数のシーケンスの最後（ＥＯＳ）の信号を探知したことに応答して、複数のシーケンスの最後（ＥＯＳ）の信号を、前記複数の符号化されたビット平面レベルに伝送するように構成されることを特徴とする請求項６に記載のエンコーダ。
【請求項８】
前記エンコーダは、係数のシーケンスの最後を探知したことに応答して、前記複数のレジスタを０にリセットするようにさらに構成されることを特徴とする請求項７に記載のエンコーダ。
【請求項９】
前記複数のビット位置の最初のビット位置は、各係数の符号を表わすことを特徴とする請求項１に記載のエンコーダ。
【請求項１０】
それぞれのビット平面が複数の係数のビット位置に対応する複数のビット平面内に配置された符号化されたシンボルのシーケンスを受信し、
前記複数のビット平面のビット平面に対応する符号化されたシンボルのシーケンスの符号化されたシンボルを読み込み、
前記符号化されたシンボルが連続した同じ値であることを探知したことに応答して、前記連続した同じ値に等しい数の０ビットのビットを出力し、
前記数の０ビットのビットを出力した後に１ビットを出力するように構成されることを特徴とするデコーダ。
【請求項１１】
前記デコーダは、シーケンスの最後（ＥＯＳ）のシンボルである符号化されたシンボルを探知したことに応答して、前記複数のビット平面の次のビット平面に対応する符号化されたシンボルのシーケンスの次に符号化されたシンボルを読み込むようにさらに構成されることを特徴とする請求項１０に記載のデコーダ。
【請求項１２】
前記デコーダは、前記複数のビット平面の最後のビット平面に相当するシーケンスの最後（ＥＯＳ）のシンボルを探知したことに応答して、他の符号化されたシンボルのシーケンスを受信するようにさらに構成されることを特徴とする請求項１１に記載のデコーダ。
【請求項１３】
複数のレジスタを備えるエンコーダを使用し、
各係数が前記係数の複数の当該ビット位置に位置する複数のビットに分解される係数の配列を順次に受信し、
前記各係数の前記複数のビットと併行して動作するステップを含むことを特徴とする符号化方法。
【請求項１４】
前記複数のビットのビットが０であることを探知したことに応答して、前記ビットに対応する前記複数のビット位置のうち１つのビット位置に対応する１つのレジスタを１だけインクリメントするステップをさらに含むことを特徴とする請求項１３に記載の符号化方法。
【請求項１５】
前記複数のビットのビットが１であることを探知したことに応答して、前記ビットに対応するビット位置に対応するレジスタの値を符号化することによって、符号化されたシンボルを生成するステップをさらに含むことを特徴とする請求項１４に記載の符号化方法。
【請求項１６】
前記複数のビットのビットが１であることを探知したことに応答して、前記レジスタを０にリセットするステップをさらに含むことを特徴とする請求項１５に記載の符号化方法。
【請求項１７】
前記レジスタの値は、ビット位置の連続した零の値を表わすことを特徴とする請求項１５に記載の符号化方法。
【請求項１８】
各係数のビット位置は複数の各ビット平面レベルを形成し、前記方法は、複数の符号化されたシンボルを含む複数の符号化されたビット平面レベルを生成するステップをさらに含むことを特徴とする請求項１５に記載の符号化方法。
【請求項１９】
係数のシーケンスの最後（ＥＯＳ）の信号を探知したことに応答して、複数のシーケンスの最後（ＥＯＳ）の信号を、前記複数の符号化されたビット平面レベルに伝送するステップをさらに含むことを特徴とする請求項１８に記載の符号化方法。
【請求項２０】
係数のシーケンスの最後の信号を探知したことに応答して、前記複数のレジスタを０にリセットするステップをさらに含むことを特徴とする請求項１９に記載の符号化方法。
【請求項２１】
前記複数のビット位置の最初のビット位置は、各係数の符号を表わすことを特徴とする請求項１３に記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ圧縮のための装置および方法に関する。
【背景技術】
【０００２】
データ圧縮またはソース符号化は、データの元の表現方式よりも少ないビット数を用いて情報を符号化することを含むコンピュータ活用分野において幅広く用いられる過程である。データは、例えば、データ保存空間（storage、記憶領域）や伝送容量などの資源の使用を低減するためなどの理由を含む様々な理由から圧縮される。しかしながら、データ圧縮（例えば、符号化）は、データを再び使用するためにデータの圧縮解凍（例えば、復号化）を必要とするため、データ圧縮は空間と時間との間においてバランスを取らなければならない（例えば、データ圧縮によりコンピュータ空間を省くことができるが、圧縮解凍による処理時間の増加が発生することがある）。
【０００３】
また、データ圧縮過程の設計は、圧縮度、これによって導入される歪みのサイズ（例えば、データの損失圧縮を使用する場合）およびデータを圧縮し且つ圧縮解凍するために用いられるコンピュータ演算資源などを含む他の考慮事項を含む。この理由から、保存空間を低減ししながらも、同時に圧縮解凍後にデータの正確度を増大させデータ圧縮技法が次から次へと求められている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明では、保存空間を低減ししながらも、同時に圧縮解凍後にデータの正確度を増大させることができる装置および方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の一実施形態に係るエンコーダは、複数のレジスタを備える。エンコーダは、係数の配列を順次に受信する。各係数は、前記係数の複数の対応するビット位置に位置する複数のビットに分解される。そして、エンコーダは、前記各係数の前記複数のビットを併行して（同時に）動作するように構成される。
【０００６】
前記エンコーダは、前記複数のビットのビットが０であることを探知したことに応答して、前記複数のレジスタからの前記ビットに対応する前記複数のビット位置のうち１つのビット位置に対応する１つのレジスタを、１だけインクリメントするようにさらに構成されてもよい。
【０００７】
前記エンコーダは、前記複数のビットのビットが１であることを探知したことに応答して、前記ビットに対応するビット位置に対応するレジスタの値を符号化することによって、符号化されたシンボルを生成するようにさらに構成されてもよい。
【０００８】
前記エンコーダは、前記複数のビットのビットが１であることを探知したことに応答して、前記ビットに対応するビット位置に対応するレジスタを０にリセットするようにさらに構成されてもよい。
【０００９】
前記ビットのビット位置に対応するレジスタ値は、ビット位置の連続した零の値を表わしてもよい。
【００１０】
各係数のビット位置は、複数のそれぞれのビット平面レベルを形成し、前記エンコーダは、複数の符号化されたシンボルを含む、複数の符号化されたビット平面レベルを生成するようにさらに構成されてもよい。
【００１１】
前記エンコーダは、係数のシーケンスの最後（ＥＯＳ）の信号を探知したことに応答して、複数のシーケンスの最後（ＥＯＳ）の信号を、前記複数の符号化されたビット平面レベルに伝送するように構成されてもよい。
【００１２】
前記エンコーダは、係数のシーケンスの最後を探知したことに応答して、前記複数のレジスタを０にリセットするようにさらに構成されてもよい。
【００１３】
前記複数のビット位置のうち最初のビット位置は、各係数の符号を表わしてもよい。
【００１４】
本発明の他の実施形態に係るデコーダは、次のように構成される。デコーダは、複数のビット平面内に配置された符号化されたシンボルのシーケンスを受信する。ここで、複数のビット平面において、それぞれのビット平面は複数の係数のビット位置に対応している。また、デコーダは、前記複数のビット平面のうち１つのビット平面に対応する符号化されたシンボルのシーケンスの符号化されたシンボルを読み込む。また、デコーダは、前記符号化されたシンボルが連続した同じ値であることを探知したことに応答して、前記連続した同じ値に等しい数の０ビットのビットを出力し、前記数の０ビットのビットを出力した後に１ビットを出力するように構成される。
【００１５】
前記デコーダは、シーケンスの最後（ＥＯＳ）のシンボルである符号化されたシンボルを探知したことに応答して、前記複数のビット平面の次のビット平面に対応する符号化されたシンボルのシーケンスの次に符号化されたシンボルを読み込むようにさらに構成されてもよい。
【００１６】
前記デコーダは、前記複数のビット平面の最後のビット平面に対応するシーケンスの最後（ＥＯＳ）のシンボルを探知したことに応答して、他の符号化されたシンボルのシーケンスを受信するようにさらに構成されてもよい。
【００１７】
本発明のさらに他の実施形態に係る方法は、複数のレジスタを備えるエンコーダを使用してエンコードする方法である。この方法では、係数の配列を順次に受信するステップを含む。ここで、各係数は、前記係数の複数の対応するビット位置に位置する複数のビットに分解される。さらに、この方法では、前記各係数の前記複数のビットを併行して（同時に）操作するステップを含むことを特徴とする。
【００１８】
前記方法は、前記複数のビットのビットが０であることを探知したことに応答して、前記ビットに対応する前記複数のビット位置のうち１つのビット位置に対応する１つのレジスタを１だけインクリメントするステップをさらに含んでいてもよい。
【００１９】
前記方法は、前記複数のビットのビットが１であることを探知したことに応答して、前記ビットに対応するビット位置に相対応するレジスタの値を符号化することによって、符号化されたシンボルを生成するステップをさらに含んでいてもよい。
【００２０】
前記方法は、前記複数のビットのビットが１であることを探知したことに応答して、前記レジスタを０にリセットするステップをさらに含んでいてもよい。
【００２１】
前記レジスタの値は、ビット位置の連続した零（zero、０）の値を表わしてもよい。
【００２２】
各係数のビット位置は、複数の各ビット平面レベルを形成してもよく、前記方法は、複数の符号化されたシンボルを含む複数の符号化されたビット平面レベルを生成するステップをさらに含んでいてもよい。
【００２３】
前記方法は、係数のシーケンスの最後（ＥＯＳ）の信号を探知したことに応答して、複数のシーケンスの最後（ＥＯＳ）の信号を、前記複数の符号化されたビット平面レベルに伝送するステップをさらに含んでいてもよい。
【００２４】
前記方法は、係数のシーケンスの最後の信号を探知したことに応答して、前記複数のレジスタを０にリセットするステップをさらに含んでいてもよい。
【００２５】
前記複数のビット位置の最初のビット位置は、各係数の符号を表わしてもよい。
【図面の簡単な説明】
【００２６】
本発明の前記および他の実施形態は、これらに対する実施形態の例示を後述する添付図面を参照して詳細に記述することによって一層明らかになる:
【図１】本発明の一実施形態に係る符号化過程を例示するフローチャートである。
【図２】本発明の一実施形態に係る符号化システムを例示する概略的なブロック図である。
【図３】本発明の一実施形態に係る復号化過程を例示するフローチャートである。
【図４】本発明の一実施形態に係る復号化システムを例示する概略的なブロック図である。
【発明を実施するための形態】
【００２７】
関連出願に対する相互参照
本特許出願は２０１３年１０月３日付けで出願され、タイトルが「固定ビット率イメージおよびビデオ圧縮のためのコンパクトなビット平面コーディングデザイン（Ｃｏｍｐａｃｔ Ｂｉｔｐｌａｎｅ Ｃｏｄｉｎｇ Ｄｅｓｉｇｎ ｆｏｒ Ｆｉｘｅｄ Ｂｉｔｒａｔｅ Ｉｍａｇｅ ａｎｄ Ｖｉｄｅｏ Ｃｏｍｐｒｅｓｓｉｏｎ）」である米国予備出願第６１/８８６,５８０号に対する優先権を主張し、これに伴う利益を受けることを希望し、前記出願の全体的な内容は本明細書に参照として取り込まれている。
【００２８】
本発明の実施形態を示す添付図面を参照して本発明の実施形態をより完全に記述する。当該分野における通常の技術者であれば理解できるように、記述された実施形態は本発明の思想または範囲を逸脱しないつつも様々な修正を加えたり大まかな形態を取ったりすることができる。本発明を明確に記述するために、本発明を完全に理解するのに不要になる一部の要素と特徴は省略可能である。
【００２９】
本明細書において用いられた用語は特定の実施形態を記述するために用いられ、本発明を限定するためのものではない。例えば、「第１」、「第２」などの用語が本明細書においては様々な要素を記述するために用いられてもよいが、これらの要素がこれらの用語の厳しい構成に制限されるわけではないということを理解しなければならない。その代わりに、これらの用語はある構成要素を他の構成要素と区別するために用いられる。また、単数として用いられた表現は、文脈上に明らかに他の意味を有していない限り、複数の表現を含むものである。本明細書において用いられた、「構成される」、「備える」、「有する」などの用語は、明細書に開示された特徴、数字、ステップ、動作、構成要素、部分またはこれらの結合の存在を表わすためのものであると理解しなければならず、一つ以上の他の特徴、数字、ステップ、動作、構成要素、部分またはこれらの結合が存在したり追加されたりする可能性を事前に排除するためのものではない。
【００３０】
要素またはレイヤーが他の要素またはレイヤーの「の上に」、またはここに「接続されて」または「係合されて」いると参照される場合、前記要素またはレイヤーは他の要素またはレイヤーの真上にまたはここに直結されたり係合されたりするものであってもよく、あるいは、一つ以上の要素またはレイヤーが介在されていると理解されるべきである。要素が他の要素またはレイヤーの「真上に」、またはここに「直結されて」または「直接的に係合されて」いると参照される場合、ここに介入する他の要素またはレイヤーは存在しない。同じ数値は全体的に同じ要素を参照する。本明細書において用いられる用語「および／または」は、関連されて列挙された一つ以上の項目のうちの任意の一つまたは全ての組み合わせを含む。
【００３１】
「下方に」、「下に」、「低く」、「の上に」、「高さ」などのように空間的に相対的な用語は、本明細書の図面に例示された一つの要素または特徴が他の要素や特徴と有する関係をより簡単に記述するために用いられる。空間的に相対的な用語は、図面に示す配置とともに用いられる装置または動作の他の配置を含むために用いられるものと理解しなければならない。例えば、図面の装置がひっくり返される場合、他の要素または特徴の「下方」または「下に」あると記述された要素は、他の要素または特徴の「上方に」または「上に」ある場合もある。したがって、例として挙げられた用語「の上に」は、上下の配置を両方とも含んでいてもよい。装置は他の方式により配置されてもよく（例えば、９０°回転したり他の方向に）、本明細書において用いられた空間的に相対的な記述はこれにより解釈さるべきである。
【００３２】
別途の断りのない限り、本明細書において用いられた全ての用語（技術的、科学的な用語を含む）は、本発明が属する技術分野において通常の知識を有する者によって一般的に理解される意味と同じ意味を有する。通常的に用いられる辞書に定義されたような用語もまた、関連技術分野における文脈に応じて有する意味と一貫した意味を有するものと解釈さるべきであり、本明細書において明らかに定義されない限り、理想的にまたは過度に形式的な意味と解釈されてはいけない。なお、本発明の実施形態を記述するとき、「することができる」の使用は、本発明の「一つまたはそれ以上の実施形態」に関連する。
【００３３】
図中、同じ図面符号は同じ要素を示し、これについての繰り返された記述は省略される。
【００３４】
イメージとビデオの圧縮のための一般的なデータ圧縮技法は、まず、元のピクセルデータを変換係数に変換することを含む。例えば、イメージ内のブロックデータまたは残余ブロック間データは、まず、ピクセルの強度値から、離散コサイン変換（ｄｉｓｃｒｅｔｅ ｃｏｓｉｎｅ ｔｒａｎｓｆｏｒｍ:ＤＣＴ）、アダマール（Ｈａｄａｍａｒｄ）変換、ウェーブレット（ｗａｖｅｌｅｔ）変換または当該分野における通常の技術を有する者に知られているその他の適切な変換過程のような特定の二次元変換により周波数係数に変換される。例えば、元の写真イメージは二次元のＮ×Ｎブロック（例えば、８×８ブロック）に変換され、ＤＣＴ式が、前記Ｎ×Ｎ行列の各行と列に適用される。前記Ｎ×Ｎ行列（Ｎ×Ｎブロック）の各行と列は、各ブロックが対応する変換係数を有するように、イメージにオーバレイされる。他の実施形態においては、各ブロックに対して多数の変換係数が存在する。
【００３５】
前記変換係数は、係数に対応する重要度に応じて再び量子化されたり重み付け値が付加されたりして、前記変換係数の多くの数またはほとんどが零の値を有する量子化された係数となる。次いで、前記量子化された値または係数は、特定の可変長エントロピー符号化方法（例えば、静的、適応的（ａｄａｐｔｉｖｅ）、ハフマン（Ｈｕｆｆｍａｎ）コーディング、算術コーディングまたは当該分野における通常の技術を有する者に知られているその他の適切なエントロピー符号化方法）により一連の順序にまたは事前に定義された順序に（例えば、ジグザグ順に）符号化される。このような過程の結果は、元の未圧縮データに相当する符号化ビット列であってもよい。他の例においては、元のイメージは初期に複数の区画に仕切られ、上述した圧縮過程は元のイメージの各区画に対して行われる。
【００３６】
例えば、整列された変換係数のシーケンスが与えられたとき、エンコーダは特定の量子化臨界値（例えば、量子化数（ｑｕａｎｔｉｚｅｒ）Ｑ）に基づいて前記値を調整してデータのサイズを調節する。次いで、量子化された係数は、１）として、連続した零の数字（例えば、連続した同一値）および、２）として、０ではない絶対値と符号の対のシンボルに変換される。次いで、量子化されたり近似化されたりした、連続した零の値や係数の０ではない値は、特定のエントロピー符号化によりパックされる。
【００３７】
例えば、下記のように整列された１６個の量子化された数字は、上述した過程により圧縮（パック）される:
１４、０、０、０、５、−３、０、０、０、０、０、０、９、０、−１、０
上述した方法の最初のステップは、このシーケンスを下記のように連続した同一値と絶対値および符号に変換する:
（１）  ｒ＝０、ａ＝１４、ｓ＝０．
（２）  ｒ＝３、ａ＝５、ｓ＝０．
（３）  ｒ＝０、ａ＝３、ｓ＝１．
（４）  ｒ＝６、ａ＝９、ｓ＝０．
（５）  ｒ＝１、ａ＝１、ｓ＝１；ＥＯＳ
これらの値に対して、ｒ、ａおよびｓはそれぞれ連続した同一値、絶対値および符号を示し、ＥＯＳはシーケンスの最後（ｅｎｄ  ｏｆ ｓｅｑｕｅｎｃｅ）を示す。量子化された最初の数字は零ではないため（すなわち、１４）、以前には零（zero、０）の値の連続がなく、このため、ｒ＝０であり、零ではない数字が１４の値を有する正数であるため、ａ＝１４（絶対値を表わす）であり、ｓ＝０（符号が正であることを表わす）である。次いで、量子化された最初の数字に続いて、他の零ではない係数（すなわち、５）に達する前に３つの零が後続する。このため、２番目の集合の値に対してｒ＝３（３つの零が連続していることを表わす）、ａ＝５（シーケンス内において次の零ではない数字が５の値を有することを表わす）およびｓ＝０（前記零ではない値が正数であることを表わす）である。このように量子化された数字のシーケンスを構成する過程は、ＥＯＳによって表示されるシーケンスの最後に達するまで続く。次いで、ｒ、ａおよびｓ値のシーケンスは、当該分野における通常の技術を有する者に知られている適切な特定のエントロピーコーデックまたはコーディング技法により符号化される。例えば、以前に議論された符号化技法（例えば、静的、適応的、ハフマン符号化、算術符号化または当該分野における通常の技術を有する者に知られているその他の適切なエントロピー符号化方法）のうちの一つを用いる適切なエンコーダが使用可能である。
【００３８】
要するに、前記過程は、シーケンス内の零ではない係数の位置に基づいて、且つ、前記零ではない係数間の零の数に基づいて量子化された数字のシーケンスを組織化したり圧縮（パック）したりする。このため、前記過程は保存空間（storage、記憶領域）を低減して効率を高めつつも、シーケンス情報を連続した同一値と絶対値および符号指標（sign indicator）のシーケンスに変換することができる。次いで、前記変換されたシーケンス（例えば、量子化された係数のシーケンスから変換された連続した同一値と絶対値および符号のシーケンス）は、適切に符号化される。
【００３９】
このデータ圧縮アルゴリズムは、エンコーダおよびデコーダの両方が状態マシン（state machine、例えば、係数が入力されてビットが出力される）として構築されるようにする。
【００４０】
固定ターゲットビット容量を構成したり、最終的にコーディングされたビット列に対する制限または上限を許容したりするために（例えば、１ビット列当たりに２５６ビットへの制限）、前記係数はビット平面に切られることがあり、このとき、最上位ビットが先にエントロピー符号化され、最下位ビットが後続し、ターゲットサイズに達すれば、符号化されたデータは終了する。換言すると、大まかな（alternative）通常の単一パス過程は、係数の絶対値を独立したビット平面に保存する過程を含むことができ、このとき、各ビット平面は単一ビット位置または各係数のビット位置（例えば、８ビットビット平面）を示す。この過程は、予め割り当てられたデータのサイズに達するまで最上位ビットがひとまとめにパックされるように、最上位ビット位置から最下位ビット位置までのデータをパックする（例えば、イメージの各ブロックに対応する予め割り当てられたデータ）。
【００４１】
予め割り当てられたデータのサイズを使用する通常の単一パス（ｓｉｎｇｌｅ-ｐａｓｓ）データの圧縮過程は、係数入力項目を絶対値と符号情報の対に変換することから始まる。これによって、係数の符号に対応するビット位置と、係数の絶対値に等しい値に達するまで加算された係数のビットに対応するビット位置（例えば、サイズビット）と、に対するビット平面を生成する。次いで、係数の符号を符号化して符号を示すビット平面を形成することによって最初のビット平面が生成される。次いで、係数の絶対値のビット平面は、最上位ビットから最下位ビットまで一度に一つずつ符号化される。なお、各ビット平面に対して、１のビット（すなわち、１に等しいビット）間の連続した零の値が実際の符号化シンボルを提供する。
【００４２】
例えば、上述したような同じ係数のシーケンスが本符号化技法を記述するために用いられる:
１４、０、０、０、５、-３、０、０、０、０、０、０、９、０、-１、０
現在記述されるアルゴリズムは、まず、前記係数のシーケンスを符号ビットと絶対値ビットビット平面に変換して下記表１に示すように合計５つのビット平面を生成する:
【００４３】
【表１】
2015073274.tif 000003
表１は、次のような導き出された５つのビット平面を示す。表１のビット平面には、符号ビット平面、８ビットビット平面、４ビットビット平面、２ビットビット平面および１ビットビット平面が含まれる。前記符号ビット平面は、各係数の符号に関する情報を含む（例えば、正の符号である場合に０のビット、負の符号である場合に１のビット）。残余サイズまたは絶対値ビット平面は、それぞれの係数が４つの絶対値ビット平面を当該係数の同じサイズに垂直に加算させるビット値を含む場合に１を含む。例えば、係数−３は、符号ビット平面における１のビット、２ビットビット平面における１のビットおよび１ビットビット平面における１のビットで解析され、これによって、前記係数が負数であり、絶対値３を有することを（すなわち、１＋２＝３）示す。
【００４４】
次いで、前記圧縮技法は、各ビット平面に存在する１ビットと前記１ビットの間に存在する連続した零の値に依存して、符号ビット平面と四つの絶対値ビット平面を符号化する。前記過程は、ビット平面データを符号化するために、当該分野の技術者に知られている適切な特定のエントロピーコーデックまたは符号化技法を使用することができる。前記ビット平面は、ターゲットデータのサイズに達するまで符号化される。下記表２は、表１の値を符号化した結果を示す。
【００４５】
【表２】
2015073274.tif 000004
表２を参照すると、符号化された８ビットビット平面は最初に「０」を含み、これは、ビット平面の最初のビットが「１」を含むためである。次いで、符号化された８ビットビット平面値は「１１」であり、これは、１１個の連続した零の値が次の１ビットの値の以前に現れることを示す。最後に、後続する１ビットがそれ以上ないため、符号化された８ビットビット平面は「１１」の次にＥＯＳを含む。
【００４６】
符号化された４ビットビット平面は、ビット平面の最初のビットが「１」を含むため、最初に「０」を含む。次いで、符号化される４ビットビット平面値は「３」であり、これは、３つの連続した零の値が次の１ビットの値の以前に現れることを示す。最後に、後続する１ビットがそれ以上ないため、符号化された４ビットビット平面は「３」の次にＥＯＳを含む。
【００４７】
符号化された２ビットビット平面は、ビット平面の最初のビットが「１」を含むため、最初に「０」を含む。次いで、符号化される２ビットビット平面値は「４」であり、これは、四つの連続した零の値が次の１ビットの値の以前に現れることを示す。最後に、後続する１ビットがそれ以上ないため、符号化された２ビットビット平面は「４」の次にＥＯＳを含む。
【００４８】
符号化された１ビットビット平面は、ビット平面の最初の４ビットが「０」を含むため、最初に「４」を含む。次いで、符号化される１ビットビット平面値は「０」であり、これは、次の１ビットの値の以前に連続した零の値がないことを示す。次いで、符号化される１ビットビット平面値は「６」であり、これは、６つの連続した零の値が次の１ビットの値の以前に現れることを示す。次いで、符号化される１ビットビット平面値は「１」であり、これは、一つの連続した零の値が次の１ビットの値の以前に現れることを示す。最後に、後続する１ビットがそれ以上ないため、符号化された１ビットビット平面は「１」の次にＥＯＳを含む。
【００４９】
ビット平面を使用する前記符号化方法は、イメージブロックに対する固定データのサイズのビット平面を許容するが、上述したビット平面圧縮方法は過程が順次に行われるので全ての係数データを保存するためにバッファメモリを使用する。
【００５０】
図１は、本発明の一実施形態に係る符号化過程を例示するフローチャートである。
【００５１】
図１を参照すると、本発明の実施形態の一例に係る符号化過程のフローチャート１００は係数から始まって、ビット平面を生成し、符号化を行って最終的に符号化ビット列で終わる過程を例示する。符号化過程１００は、ステップ１０２において、一連の量子化された係数から始まる。符号化過程１００は、多数のレジスタ（例えば、図２のレジスタ２０４）を使用する。前記レジスタは、符号レジスタとビットの他のサイズを示すビットレジスタを備える。例えば、前記レジスタは、前記１ビット、２ビット、４ビットおよび８ビットのためのレジスタを備えていてもよく、結果的に、符号レジスタをはじめとして合計５つのレジスタを備えることになる（すなわち、４つのビットレジスタと１つの符号レジスタ）。本実施形態に係るエンコーダは、上述したように、全ての係数に対するビット平面を生成する代わりに、各係数の入力項目を分解して全てのビットを並列に符号化するように処理（作動、operate）する。
【００５２】
各係数の分解は、上記表２と関連して記述された方式とほとんど同様の方式により起こる。しかるが故に、ステップ１０２において量子化された係数はそれぞれ表２に例示した形態を有し、このとき、各係数は符号ビットパラメータとサイズビットパラメータを有する。各係数の分解は、係数を符号ビット（例えば、「ｓ」）とこれに相当するサイズビット（例えば、「ａK,．．．,ａ1,ａ0」）により構成するステップを含む。
【００５３】
符号化過程１００は、前記過程１００に入力された係数のシーケンス内の最初の係数を処理したり、これをパック（圧縮）したりすることによって機能する。最初の係数の後に、符号化過程１００は、係数のシーケンス１０２内の次の係数に移動して、係数がそれ以上残留しなくなるまで過程を繰り返し行う。符号およびサイズビットは、対応するレジスタ（例えば、ｒｓ,ｒａK,．．．,ｒａ1,ｒａ0）によって表わされる。
【００５４】
ステップ１０４において、前記エンコーダは、処理対象係数の符号ビット「ｓ」が０であるか否か（例えば、係数の符号が正であるか否か）を決定する。係数の符号ビットが０に等しいときには（例えば、係数の符号が正である場合）、符号ビットと関連したレジスタｒｓがステップ１０６において１だけインクリメントされる。これに対し、係数の符号ビットが０ではないときには（例えば、符号ビットが１に等しいため係数が負であることを示す場合）、符号レジスタｒｓがステップ１０８において符号化され、符号レジスタｒｓは０にリセットされる。符号化は、当該分野における通常の技術を有する者に知られている任意の適切な符号化技法、例えば、以上において議論された符号化方法（例えば、静的、適応的、ハフマン符号化、算術符号化またはその他の適切なエントロピー符号化方法）のうちの任意の方法を用いて行うことができる。
【００５５】
併行して、処理対象係数のサイズビットａK,．．．,ａ1,ａ0は同じ取り扱い過程を経る。例えば、ステップ１１０において、前記エンコーダは、最大のビットサイズを示す処理対象係数のビットａKが０であるか否か（例えば、前記係数がビットサイズを含むか否か）を決定する。最大のサイズビットａKは、本発明の実施形態に係る適切なサイズ（例えば、ａKは、８のサイズを示す）であってもよい。係数の最大のサイズビットが０に等しい場合には、係数の最大のサイズビットと関連するレジスタｒａKの値がステップ１１２において１だけインクリメントされる。これに対し、係数の最大のサイズビットが０に等しくない場合には（例えば、最大のサイズビットが１に等しいとき）、係数の最大のサイズビットレジスタｒａKが符号化され、前記レジスタはステップ１１４において０にリセットされる。この処理は、係数の残りのビットに対して同様に行われる。本発明の一部の実施形態において、レジスタは、係数のシーケンスが処理（作動）される前に０に初期化される。
【００５６】
ステップ１１６において、係数のシーケンス内の係数を処理した後に、符号化過程１００は、係数のシーケンス内に次の係数があるか否かを決定する。ステップ１１８において、係数のシーケンス内に次の係数がある場合に、前記過程は、ステップ１０２の係数のシーケンスに戻って分解された次の係数を検索し、前記エンコーダは、上述した方式と同じ方式により次の係数のビットを並列に（例えば、並行してまたは同時に）処理する。
【００５７】
分解された係数のビットはそれぞれの符号化ビット列１２０に符号化され、このとき、前記ビット列のそれぞれは各係数を構成するそれぞれのビット位置に相当する（例えば、係数の符号ビットに相当する符号化ビット列、係数のうち最大のサイズのビットａKに相当する符号化ビット列など）。
【００５８】
ステップ１２２において、係数のシーケンス内に次の係数がない場合に、前記エンコーダはシーケンスの最後（ＥＯＳ）の信号を伝送して全てのレジスタを０にリセットする。ステップ１２４において、エンコーダは、データの他のブロック（例えば、イメージデータの他のブロック）を示す他の係数のシーケンスに対して前記符号化過程を繰り返し行う。ステップ１２４において、併行動作（例えば、同時に）に際して、前記エンコーダはエンコーダによって符号化された符号化ビット列１２０を統合し、結果的に符号化ビット列１２６を生成する。符号ビットとビット平面を示す符号化ビット列は、並列にインターレースされるか（interlace、組み合わされる）、あるいは、直列に統合される。前記符号化過程は、データの全てのブロックが符号化されるまで続く。
【００５９】
例にとって説明すると、係数のシーケンスは、下記のように上記表１のシーケンスを含むことができる。つまり、係数のシーケンスは、１４、０、０、０、５、-３、０、０、０、０、０、０、９、０、-１、０である。本発明の実施形態によれば、５つのビット平面（例えば、符号ビット平面、８ビットビット平面、４ビットビット平面、２ビットビット平面および１ビットビット平面）は明らかに変換されないが、５つのビット平面に相当する５つのレジスタが維持される（例えば、ｒ_ｓ、ｒ_８、ｒ_４、ｒ_２およびｒ_１）。５つのレジスタは、各ビット平面内の連続した零の値に追従する。本発明の実施形態は、分解された係数、例えば、表１に示すように、ビットに分解された係数を用いることができる。
【００６０】
符号化過程は、シーケンス内の最初の係数（すなわち、１４）から始まる。係数１４に対応する符号ビットと１ビットがそれぞれ０であるため、レジスタｒ_ｓとｒ_１がそれぞれ１ずつインクリメントされる。なお、係数１４に相当する８ビット、４ビットおよび２ビットがそれぞれ１であるため、レジスタｓｒ_８、ｒ_４およびｒ_２が符号化されて０にリセットされる（この場合には、０で維持される）。
【００６１】
次いで、過程は次の係数である０に移動する。全てのビットが０であるため、各レジスタｒ_ｓ、ｒ_８、ｒ_４、ｒ_２およびｒ_１が１ずつインクリメントされる。次の係数もまた０であるため、全てのレジスタが再び１ずつインクリメントされる。次の係数もまた０であるため、全てのレジスタが再び１ずつインクリメントされる。３番目の０の次の係数は５である。係数５に対応する符号ビット、８ビットおよび２ビットがそれぞれ０であるため、各レジスタｒ_ｓ、ｒ_８およびｒ_２が１ずつインクリメントされる。また、係数５に対応する４ビットと１ビットがそれぞれ１であるため、各レジスタｒ_４およびｒ_１は符号化されて０にリセットされる。この場合、過程の現ステップにおいてｒ_４＝３であり、且つ、ｒ_１＝４であるため、これらの保存された値が符号化され、ｒ_４およびｒ_１は０にリセットされる。
【００６２】
次の係数は-３である。係数３に相当する各８ビットおよび４ビットが０であるため、各レジスタｒ_８およびｒ_４が１ずつインクリメントされる。また、係数-３に相当する符号ビット、２ビットおよび１ビットがそれぞれ１であるため、各レジスタｒ_ｓ、ｒ_２およびｒ_１は符号化されて０にリセットされる。この場合、過程の現ステップにおいて、ｒ_ｓ＝５、ｒ_２＝４であり、且つ、ｒ_１＝０であるため、これらの保存された値が符号化され、ｒ_ｓ、ｒ_２およびｒ_１は０にリセットされる（または、０で維持される）。過程は、係数のシーケンスの最後に達するまで続く。ここで記述された本発明の一実施形態に係る符号化過程をシーケンス内の６つの係数に対して以下に要約する:  
１４:ｒ_ｓ+＝１、ｒ_１+＝１;符号化:ｒ_８＝０、ｒ_４＝０およびｒ_２＝０
０:ｒ_ｓ+＝１、ｒ_８+＝１、ｒ_４+＝１、ｒ_２+＝１およびｒ_１+＝１
０:ｒ_ｓ+＝１、ｒ_８+＝１、ｒ_４+＝１、ｒ_２+＝１およびｒ_１+＝１
０:ｒ_ｓ+＝１、ｒ_８+＝１、ｒ_４+＝１、ｒ_２+＝１およびｒ_１+＝１
５:ｒ_ｓ+＝１、ｒ_８+＝１、ｒ_２+＝１;符号化:ｒ_４＝３およびｒ_１＝４;リセット:ｒ_４＝ｒ_１＝０
-３:ｒ_８+＝１、ｒ_４+＝１;符号化:ｒ_ｓ＝５、ｒ_２＝４およびｒ_１＝０;リセット:ｒ_ｓ＝ｒ_２＝ｒ_１＝０
図２は、本発明の一実施形態に係る符号化システムを例示する概略的なブロック図である。
図２を参照すると、符号化システム２００は、変換器２０２に入力されるイメージデータから始まる。前記イメージデータは、赤-緑-青（ＲＧＢ）のピクセル情報を含むことができる。前記イメージデータは、静止画像または動画イメージまたはビデオ（例えば、ビデオのフレーム）に相当する。前記変換器２０２は、イメージデータを変換係数に変換する。前記変換器２０２は、当該分野における通常の技術を有する技術者に知られている適切な変換技術、例えば、離散コサイン変換（ＤＣＴ）、アダマール変換、ウェーブレット変換などを用いて実行することができる。本発明の一部の実施形態において、前記変換係数は、上記の図１と関連して記述された係数とほとんど同様である。
【００６３】
前記変換係数は、符号化ビット平面に対応する複数のレジスタ２０４に送られる。前記レジスタ２０４は、前記変換係数を構成してパック（圧縮）するのに用いられる。前記レジスタ２０４は、要望または必要に応じて適切な数のレジスタを備えることができる。本実施形態において、符号化ビット平面レジスタは、下記のような５つのレジスタを備える。つまり、符号レジスタｒ_ｓ、８ビットレジスタｒ_８、４ビットレジスタｒ_４、２ビットレジスタｒ_２および１ビットレジスタｒ_１である。前記レジスタ２０４は、図１と結び付けて上述したように、各係数に対する情報を追跡する。本発明の実施形態において、前記レジスタ２０４は、各係数を並列に（例えば、並行してまたは同時に）構成する。換言すると、前記レジスタ２０４は、各変換係数と関連する情報を追跡して係数に一旦、処理が加えられると、当該係数は除去され、この係数は中間メモリに保存される必要がない。
【００６４】
前記レジスタ２０４は変換係数をパックするため、一部のレジスタ２０４の値が、例えば、レジスタが１ビットに直面する度に符号化される。符号化されるべきこれらのレジスタの値はエンコーダ２０６に送られる。エンコーダ２０６は、上記の図１を参照して議論された通りに符号化ビット列を出力する。符号化ビット列は、変換器２０２に送られた未圧縮、あるいは元のイメージピクセルデータに対応する、符号化もしくは圧縮されたデータである。符号化ビット列は、必要な場合に復号化のためにアクセスできるようにメモリ２０８に保存されるか、あるいは、デコーダまたは他の装置に伝送される。
【００６５】
当該技術に対して通常の技術を有する者であれば、変換器モジュールおよびエンコーダモジュールが単一のモジュールに組み合わせられてもよく、他のサブモジュールに分離されてもよいということが認識できる筈である。各モジュールは、変換器およびエンコーダモジュールの特定の機能を行うように構成された一つまたはそれ以上のＡＳＩＣ、ＦＰＧＡ、プログラミングされたマイクロプロセッサーおよび／またはこれとほとんど同じ装置により実現される。例えば、前記マイクロプロセッサーは、マイクロプロセッサーによって起動される場合に特定の機能を発生するコンピュータコマンドを保存するメモリと接続される。なお、一部の実施形態において、レジスタとエンコーダは単一のモジュールに組み合わせられる。
【００６６】
図３は、本発明の一実施形態に係る復号化過程を例示するフローチャートである。
【００６７】
図３を参照すると、本実施形態により圧縮もしくは符号化された情報の復号化過程３００は、符号化ビット列３０２（符号化されたシンボル３０２）から始まる。符号化ビット列３０２は、本発明の実施形態、例えば、図１に例示した本発明の実施形態により生成される。符号化ビット列は指定された一部のメモリに保存され、最終的に符号化された値をビット平面順に示す（例えば、表２に示すように左側から右側への水平スキャニング順に示される）。符号化ビット列は、例えば、伝送媒体を介して受信される。
【００６８】
前記復号化過程３００は、保存された前記符号化ビット列３０２を解凍（unpack）したり、圧縮を展開（decompress）したりする。前記復号化過程３００は、符号化シンボルのシーケンスを含む符号化ビット列を分析する。ステップ３０４において、符号化ビット列内の符号化シンボルが読み込まれるかあるいは探知される。ステップ３０６において、符号化シンボルがビット平面のシーケンスの最後を示すＥＯＳシンボルであるか否かが決定される。
【００６９】
ステップ３０８においてＥＯＳシンボルが探知されなければ、連続した同一値ｒが読み込まれて探知される。連続した同一値ｒは、符号化されたシンボルの値に等しい（例えば、符号化されたシンボル５は、５ビットの連続した同一値を示す）。連続した同一値ｒは、特定のビット平面における連続した零の値の数を意味する。符号化シンボルの連続した同一値ｒが読み込まれた後に、ステップ３１０において、ｒ個の場所または位置（すなわち、連続した同一値の値）はスキップされ、ｒ個のビット後の次のビットが１ビットに設定される。スキップされた場所または位置のビット値は０で出力される。連続した同一値ｒは、特定のビット平面に沿って水平方向に沿って発生する。例えば、８ビットビット平面に対応する符号化シンボル５が読み込まれると、５つの零の値が８ビットビット平面に沿って位置したり出力されたりして、前記５つの零の値以降の６番目のビット位置は１ビットに設定される。連続した同一値ｒを読み込んだ後に、ステップ３１２において、処理対象となるビット平面の次の符号化シンボルが読み込まれ、ステップ３０４の次の符号化シンボルにおいて過程が再開される。
【００７０】
復号化過程３００がＥＯＳシンボルを探知すると、過程３００は、次いで、探知されたＥＯＳがステップ３１４のビット平面の最後のレベルに相当するか否かを決定する。ステップ３１６において、ＥＯＳが最後のビット平面レベルに相当しない場合、復号化過程３００は次のビット平面レベルに進む。これに対し、ステップ３１８において、ＥＯＳが最後のビット平面レベルに相当する場合、前記デコーダは符号化されたデータの次のブロックに進んでステップ３０４において次のブロックの最初の符号化シンボルを読み込むことによってデータを解き続ける。データの次のブロックは、イメージの次のブロックに対応する。
【００７１】
例えば、符号化ビット列は、表３に示す情報を順次に有する。
【００７２】
【表３】
2015073274.tif 000005
この情報は、１ビットビット平面情報をそれ以上使用することができないということを除いては、前記表２の情報とほとんど同様であることに留意しなければならない。上述したように、本発明の実施形態は、固定データサイズ符号化を許容し、このため、固定データサイズの制限により、２ビットビット平面が符号化された後にデータ容量が充足されると、１ビットビット平面は符号化されないこともある。したがって、１ビットビット平面情報は符号化されず、復号化ステップにおいて使用できるように保存されない。他の実施形態において、他の固定データ容量が符号化ステップにおいて課せられることがあるが、例えば、２ビットビット平面と１ビットビット平面は、最終符号化ビット列に含まれないことがある。
【００７３】
本実施形態によれば、前記符号化ビット列は、上端ビット平面レベルから下端ビット平面レベル（例えば、最後のビット平面）までの各ビット平面に亘って水平に復号化される。本実施形態に係るデコーダは、符号化されたシンボルを符号化されたシンボルではないビットを含むビット平面に水平分割し、下記表４に示す結果を生成する。
【００７４】
【表４】
2015073274.tif 000006
ビット平面を垂直にグループ分けした後に、下記のような係数のシーケンス結果が得られる:
１４、０、０、０、４、-２、０、０、０、０、０、０、８、０、０、０
表１に示す元の係数と比較すると、１ビットビット平面を符号化ステップにおいて除去したところ、多かれ少なかれ相違は存在するものの、ビット平面レベルにおいて固定データ制限を実現する能力を有し、メモリを省きながらもその結果は依然としてほとんど同様である。例えば、本発明の実施形態に係るコーデック設計における統合されたゲートの数は、エンコーダの場合には４０,０００個未満であり、デコーダの場合には６０,０００個未満である。したがって、本発明の実施形態は、従来のビデオおよびイメージコーデックと比較して１／１０未満の計算複雑度を有する。
【００７５】
図４は、本発明の一実施形態に係る復号化システムを例示する概略的なブロック図である。
図４を参照すると、復号化システム４００が、メモリ４０８に保存された符号化ビット列（例えば、符号化されたシンボルを含むビット平面）にアクセスする。前記符号化ビット列は、エントロピーエンコーダ４０２に伝送される。エントロピーエンコーダ４０２は、前記符号化ビット列を、復号化あるいは解凍したりして復号化された係数（例えば、係数の符号とサイズに対応するビットを含むビット平面）を生成するように構成されている。圧縮もしくは符号化されたデータは、本発明の実施形態、例えば、図３と結び付けて記述された方法により圧縮が解凍されたり復号化されたりする。復号化された係数は、前記復号化された係数を復号化されたイメージに変換するように構成された（例えば、前述したように、ビット平面の垂直列を追加することによって）変換器４０４に送られる。例えば、復号化されたイメージは、最終使用者がコンピュータにおいて用いるためのディスプレイのためのイメージであってもよい。
【００７６】
上記本実施形態によれば、圧縮解凍後にデータの正確度を増加させ、データを圧縮し且つ圧縮解凍するために用いられる処理に必要とされるパワーと時間を低減しながらも、処理に用いられる空間の量を低減するデータ圧縮のための（例えば、「コンパクト」にするための）ビット平面に関する装置および方法を提供することができる。
【００７７】
本発明の分野における通常の技術を有する者であれば、前記デコーダモジュールおよびコンバータモジュールが単一のモジュールに組み合わせられてもよく、他のサブモジュールに分離されてもよいということが認識できる筈である。各モジュールは、前記デコーダおよびコンバータモジュールの特定の機能を行うように構成された一つ以上のＡＳＩＣ、ＦＰＧＡ、プログラミングされたマイクロプロセッサーおよび／またはこれとほとんど同じ装置により実現される。例えば、前記マイクロプロセッサーは、マイクロプロセッサーによって起動される場合に特定の機能を発生するコンピュータコマンドを保存するメモリと接続される。
【００７８】
本発明の実施形態に係るエンコーダ及びデコーダは、様々な応用分野において活用可能である。例えば、本発明の実施形態は、ディスプレイパネル、携帯電話、コンピュータおよびデータ圧縮を必要とするその他の装置において実現される。
本発明を特定の実施形態と結び付けて記述したが、本発明が開示された実施形態にのみ制限されるわけではなく、逆に、本発明は、添付の請求項の精神と範囲内において含まれる様々な修正と均等な配置およびこれらと均等な事項を含むように意図されたものである。
【図１】
2015073274.tif 000007
【図２】
2015073274.tif 000008
【図３】
2015073274.tif 000009
【図４】
2015073274.tif 000010