(57)【特許請求の範囲】
【請求項１】
画像を復号する算術復号器において、
データコンテクストまたは符号コンテクストの入力に応じて算術復号を行う算術復号部と、
前記算術復号部の復号結果に基づいて、次の前記データコンテクストまたは前記符号コンテクストを前記算術復号部に出力するコンテクストジェネレータと、
を有し、前記コンテクストジェネレータは、前記復号結果が前記符号コンテクストを要求する結果のとき、前記符号コンテクストを出力し、それ以外は前記データコンテクストを出力することを特徴とする算術復号器。
【請求項２】
前記コンテクストジェネレータは、複数の前記データコンテクストを前記算術復号部に出力し、前記算術復号部は、複数の前記データコンテクストに対応する複数の前記復号結果を出力するよう構成されており、
前記コンテクストジェネレータは、前記算術復号部の前記各復号結果の少なくともいずれか１つが前記符号コンテクストを要求する結果のとき、前記符号コンテクストを出力し、それ以外は前記データコンテクストを出力することを特徴とする請求項１記載の算術復号器。
【請求項３】
前記算術復号部は、複数の前記データコンテクストそれぞれに対応する複数のデコーダを有し、
前記コンテクストジェネレータは、前記符号コンテクストを要求する結果を出力した前記デコーダに基づいた前記符号コンテクストを出力することを特徴とする請求項２記載の算術復号器。
【請求項４】
画像を復号するエントロピ復号器において、
ＳＰパス処理時またはＣＬパス処理時に、処理対象のビットに隣接するビットのシンボルが確定する前に、前記処理対象のビットに隣接するビットのシンボルを所定値と仮定して予測したデータコンテクストおよび符号コンテクストを演算する演算器と、前記データコンテクストおよび前記符号コンテクストを格納するレジスタと、を有するビットモデリング演算器と、
前記データコンテクストまたは前記符号コンテクストの入力に応じて算術復号を行う算術復号部と、
前記算術復号部の復号結果に基づいて、前記レジスタに格納されている次の前記データコンテクストまたは前記符号コンテクストを前記算術復号部に出力するコンテクストジェネレータと、
を有し、前記コンテクストジェネレータは、前記復号結果が前記符号コンテクストを要求する結果のとき、前記符号コンテクストを出力し、それ以外は前記データコンテクストを出力することを特徴とするエントロピ復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は算術復号器およびエントロピ復号器に関し、特に、ＪＰＥＧ２０００方式の画像を復号する算術復号器およびエントロピ復号器に関する。
【背景技術】
【０００２】
ＪＰＥＧ２０００の規格は、「ISO/IEC15444-1，“JPEG2000 image coding system Part1：Core coding system，”15 Dec.2000」や「野水泰之，“次世代画像符号化方式：JPEG2000，”トリケップス，Feb.2001」等に詳細に記載されている。
【０００３】
図２６は、従来の画像復号装置を示すブロック図である。
この画像復号装置は、ストリーム解析器９１と、エントロピ復号器９２と、逆ウエーブレット変換器９３を備え、エントロピ復号器９２は、ビットモデリング演算器９４と、算術復号器（ＭＱ−ＣＯＤＥＲ）９５を備えている。
【０００４】
図２７は、エントロピ復号器の処理の流れを示す図である。
コードブロック９６は、Ｍ×Ｎ画素の大きさのコードブロックを示しており、エントロピ復号器９２では、コードブロックを単位として処理が行われる。コードブロック９６は、Ｍ×Ｎビットのビットプレーン９６１〜９６６に分けられ、さらに、ビットプレーン９６１〜９６６は、Significance propagation pass、Magnitude refinement pass、Cleanup pass（以下、それぞれ、ＳＰパス、ＭＲパス、ＣＬパスという）に分類され、１パスずつ、かつ、１ビットずつ順にコンテクスト演算と算術復号演算が行われる。
【０００５】
図２８は、コンテクスト決定処理を行う場合の処理順序を示す図である。
各パスについてのコンテクスト演算は、まず、パスの左上からストライプと呼ばれる縦方向４ビットのコンテクスト演算を上から順に行い、次に右隣のストライプの４ビットのコンテクスト演算を上から順に行い、これを繰り返して右端に達すると、縦方向に１ストライプ分シフトし、同様のコンテクスト演算を左端から右方向にシフトしながら行い、以下、同様にして右下まで繰り返すことにより行われる。
【０００６】
図２９は、注目ビットのコンテクストを決定する際に参照するビットを示す図である。
ビットモデリング演算器９４は、注目ビットｂ９０が現在処理中のパスに属するか否かを判断し、属するのであれば、注目ビットのコンテクストを算出する。その際、注目ビットｂ９０を囲む８ビットｂ９１〜ｂ９８の情報が参照される。そして、注目ビットｂ９０のコンテクストが決定すると、ＭＱ−ＣＯＤＥＲ復号器９５での算術復号演算が可能となり、算術復号演算の結果として、注目ビットｂ０のシンボルが“０”であるか、“１”であるかが決定される。
【０００７】
これに対し、エントロピ復号演算の高速化を図るために、ＳＰパス処理時に、注目ビットの上のビットのシンボルが確定する前に、注目ビットの上のビットのシンボルを“０”と仮定して予測したコンテクストを演算し、ＭＱ−ＣＯＤＥＲ復号演算時に、コンテクスト変換テーブルを用いて予測したコンテクストを正しいコンテクストに変換してシンボルを演算する方法が知られている（例えば特許文献１参照）。
【特許文献１】特開２００６−１９８１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、エントロピ復号器の処理能力は、単位クロック当たりに処理できるコンテクストの数により定まる。また、入力するコンテクストの順序には依存性があり、単位クロック当たりのコンテクスト入力数を単純に増やしても動作周波数が向上しない。
【０００９】
しかしながら、従来は、データコンテクストと符号コンテクストとをセットで（同時に）入力していた。ほとんどの場合、符号コンテクストは必要なく、過剰な符号コンテクストを入力する無駄が生じていた。
【００１０】
本発明はこのような点に鑑みてなされたものであり、エントロピ復号演算の高速化を図ることができる算術復号器およびエントロピ復号器を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では上記問題を解決するために、図１に示すような処理をコンピュータに実行させるための算術復号器１が提供される。
本発明に係る算術復号器１は、画像を復号する算術復号器である。
【００１２】
算術復号器１は、データコンテクストまたは符号コンテクストの入力に応じて算術復号を行う算術復号部２と、算術復号部２の復号結果に基づいて、次のデータコンテクストまたは符号コンテクストを算術復号部２に出力するコンテクストジェネレータ３と、を有する。
【００１３】
このような算術復号器１によれば、算術復号部２により、データコンテクストまたは符号コンテクストの入力に応じて算術復号が行われる。また、コンテクストジェネレータ３により、算術復号部２の復号結果に基づいて、次のデータコンテクストまたは符号コンテクストが算術復号部２に出力される。
【発明の効果】
【００１４】
本発明によれば、算術復号部の復号結果に基づいて、次のデータコンテクストまたは符号コンテクストを算術復号部に出力するようにしたので、無駄なデータを算術復号部に送ることなく、データ処理効率を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。
【００１６】
算術復号器１は、画像を復号する算術復号器であり、算術復号部２と、コンテクストジェネレータ３とを有している。
算術復号部２は、データコンテクストまたは符号コンテクストの入力に応じて算術復号を行う。ここで、データコンテクストおよび符号コンテクストは、ビットモデリング演算器により生成されたコンテクストである。
【００１７】
コンテクストジェネレータ３は、算術復号部２の復号結果に基づいて、次の（次に入力された）データコンテクストまたは符号コンテクストを算術復号部２に出力する。
このような算術復号器１によれば、算術復号部２により、データコンテクストまたは符号コンテクストの入力に応じて算術復号が行われる。また、コンテクストジェネレータ３により、算術復号部２の復号結果に基づいて、次のデータコンテクストまたは符号コンテクストが算術復号部２に出力される。
【００１８】
以下、本発明の実施の形態を説明する。
図２は、実施の形態のエントロピ復号器の構成を示すブロック図である。
エントロピ復号器１００は、ビットモデリング演算器１０と、算術復号器を構成する４段ＭＱ−ＣＯＤＥＲ復号器１１とを有している。
【００１９】
ビットモデリング演算器１０は、４段ＭＱ−ＣＯＤＥＲ復号器１１が出力するシンボルＤを入力し、コンテクスト演算を１ストライプの４ビットについて同時に行う。
４段ＭＱ−ＣＯＤＥＲ復号器１１は、ビットモデリング演算器１０が出力するコンテクストＣＸと、ストリーム解析器（図示せず）が出力するバイトデータＢとを入力し、ＭＱ−ＣＯＤＥＲ復号演算を行う。
【００２０】
図３は、ビットモデリング演算器の構成を示すブロック図である。
ビットモデリング演算器１０は、有意ビット記憶部１３と、ＳＰパス用コンテクスト演算器１５とＣＬパス用コンテクスト演算器１６とを備える第１コンテクスト演算器１４と、ＭＲパス用コンテクスト演算器１８を備える第２コンテクスト演算器１７と、ＭＲパス用コンテクスト記憶部１９と、コンテクストレジスタ部２０とを有している。
【００２１】
有意ビット記憶部１３は、４段ＭＱ−ＣＯＤＥＲ復号器１１から与えられるビットプレーンの各ビットの有意である（significant）ビット情報を記憶する。
ＳＰパス用コンテクスト演算器１５は、ビットプレーンから分けられたＳＰパスの各ビットのパスおよびコンテクスト演算を行う。
【００２２】
ＣＬパス用コンテクスト演算器１６は、ビットプレーンから分けられたＣＬパスの各ビットのパスおよびコンテクスト演算を行う。
ＭＲパス用コンテクスト演算器１８は、ビットプレーンから分けられたＭＲパスの各ビットのパスおよびコンテクスト演算を行う。
【００２３】
コンテクストレジスタ部２０は、４段ＭＱ−ＣＯＤＥＲ復号器１１に与えるコンテクスト等のデータを格納する。
図４は、ＳＰパス用コンテクスト演算器のＳＰパスの各ビットのパスおよびコンテクスト演算処理順序を示す図である。
【００２４】
ＳＰパス用コンテクスト演算器１５は、ＳＰパス２１の左上から呼ばれる縦方向４ビット（ストライプ２１１）のパスおよびコンテクスト演算を同時に行う。次に、右隣のストライプの４ビットのパスおよびコンテクスト演算を同時に行う。これを繰り返して右端に達すると、下方向に１ストライプ分シフトし、同様のパスおよびコンテクスト演算を左端から右方向にシフトしながら行う。以下、同様にして右下まで繰り返し処理を行う。ＣＬパスについても同様である。
【００２５】
コンテクスト演算により、シンボル・コンテクストを示すコンテクストＤａｔａＣＸおよび正負符号を示す正負符号ＳｉｇｎＣＸが求まる。ここで、正負符号ＳｉｇｎＣＸ数は、コードブロックサイズにより決まる（例えば６４×６４なら４０９６）。また、コンテクストＤａｔａＣＸ数は、正負符号ＳｉｇｎＣＸ数×ビットプレーン数である。また、コンテクストＤａｔａＣＸ数＋正負符号ＳｉｇｎＣＸ数＝全コンテクスト数である。
【００２６】
図５は、シンボルのコンテクスト演算を説明するための図であり、図５（ａ）は注目ストライプの一番上のビットのシンボルのコンテクストを演算する場合、図５（ｂ）は注目ストライプの上から２番目以下のビットのシンボルのコンテクストを演算する場合を示している。
【００２７】
注目ストライプの一番上のビットのシンボルのコンテクスト演算は、注目ビット２６１について、処理パスにおける８近傍の有意情報（注目ビット２６１を取り囲む８ビットの画素データ）に基づいて、コンテクストＤａｔａｐＣＸ０を決定する情報を格納するコンテクストテーブル２４１を参照してコンテクストＤａｔａＣＸ０を決定する。
【００２８】
注目ストライプの上から２番目以下のビットのシンボルのコンテクスト演算は、ＳＰパス用コンテクスト演算器１５内のＳＰパス用コンテクスト演算器２３（ｋ）（但し、ｋ＝２、３、４）で行うが、この場合には、注目ビット２６（ｋ）の上のビットのシンボルの復号結果が“０”であると仮定した仮定ビットｂ１０を含む８近傍有意情報に基づいて、コンテクストＤａｔａＣＸ（ｋ−１）を決定する情報を格納するコンテクストテーブル２４（ｋ）を参照してコンテクストＤａｔａＣＸ（ｋ−１）を決定する。これらのコンテクストテーブルは、それぞれＪＰＥＧ２０００規格によるものである。
【００２９】
このように、注目ビットの上のビットは“０”であると仮定してコンテクストＤａｔａＣＸ（ｋ−１）を求める。すなわち、ＳＰパスの処理では、注目ビットの上のビットが同じＳＰパスで処理されるビットであり、シンボルＤが未だ出力されていない場合には、注目ビットのコンテクストＤａｔａＣＸ（ｋ−１）を求めることかできない。そこで、注目ビットの上のビットのシンボルＤの信号結果は“０”であると仮定してコンテクストＤａｔａＣＸ（ｋ−１）を求める。そして、後にコンテクストＤａｔａＣＸ（ｋ−１）が“未確定”と判断された場合、このコンテクストＤａｔａＣＸ（ｋ−１）を予想コンテクストＤａｔａｐＣＸ（ｋ−１）とする。予想コンテクストＤａｔａｐＣＸ（ｋ−１）は、仮定が間違っていた場合には、４段ＭＱ−ＣＯＤＥＲ復号器１１が、正しいコンテクストに変換する。
【００３０】
図６は、ＳＰパス用コンテクスト演算器の構成を示すブロック図である。
ＳＰパス用コンテクスト演算器１５は、ＳＰパスの処理時に、パスおよびコンテクスト演算を１ストライプ（４ビット）同時に行うものであり、１ストライプの１番上のビット（最上段に位置するビット）のパスおよびコンテクスト演算を行うＳＰパス用コンテクスト演算器２３１と、ストライプの上から２番目のビットのパスおよびコンテクスト演算を行うＳＰパス用コンテクスト演算器２３２と、ストライプの上から３番目のビットのパスおよびコンテクスト演算を行うＳＰパス用コンテクスト演算器２３３と、ストライプの上から４番目のビットのパスおよびコンテクスト演算を行うＳＰパス用コンテクスト演算器２３４とを有している。
【００３１】
また、ＳＰパス用コンテクスト演算器２３１は、コンテクストテーブル２４１を有している。ＳＰパス用コンテクスト演算器２３２は、コンテクストテーブル２４２を有している。ＳＰパス用コンテクスト演算器２３３は、コンテクストテーブル２４３を有している。ＳＰパス用コンテクスト演算器２３４は、コンテクストテーブル２４４を有している。
【００３２】
ＳＰパス用コンテクスト演算器２３１は、演算により得られた１ストライプの１番上のビットのパス（のタイプ）、コンテクストＤａｔａＣＸ０、コンテクストＤａｔａＣＸ０が確定していることを示すＣＸ確定（ｆｉｘ）、および正負符号ＳｉｇｎＣＸ０／ＸＯＲビットを出力する。なお、ストライプの１番上のビットのコンテクストＤａｔａＣＸ０は必ず確定（ｆｉｘ）している。
【００３３】
ＳＰパス用コンテクスト演算器２３２は、演算により得られたストライプの上から２番目のビットのパスを出力する。また、ストライプの上から２番目のコンテクストＤａｔａＣＸ１が確定している場合には、コンテクストＤａｔａＣＸ１に加え、コンテクストＤａｔａＣＸ１が確定していることを示すＣＸ確定（ｆｉｘ）および正負符号ＳｉｇｎＣＸ１／ＸＯＲビットを出力する。一方、コンテクストＤａｔａＣＸ１が未確定の場合には、予想コンテクストＤａｔａｐＣＸ１、予想コンテクストＤａｔａｐＣＸ１が未確定であることを示すＣＸ未確定（ｉｎｄｅｆ）、並びに垂直方向コンテクストモデル判定値ＳｉｇｎＶ（Vertical）および水平方向コンテクストモデル判定値ＳｉｇｎＨ（Horizontal）を出力する。なお、垂直方向コンテクストモデル判定値ＳｉｇｎＶおよび水平方向コンテクストモデル判定値ＳｉｇｎＨについては後述する。
【００３４】
ＳＰパス用コンテクスト演算器２３３は、演算により得られたストライプの上から３番目のビットのパスを出力する。また、上記と同様に、コンテクストＤａｔａＣＸ２、ＣＸ確定（ｆｉｘ）、およびＳｉｇｎＣＸ２／ＸＯＲビット、または、予想コンテクストＤａｔａｐＣＸ２、ＣＸ未確定（ｉｎｄｅｆ）、並びに垂直方向コンテクストモデル判定値ＳｉｇｎＶおよび水平方向コンテクストモデル判定値ＳｉｇｎＨを出力する。
【００３５】
ＳＰパス用コンテクスト演算器２３４は、演算により得られたストライプの上から４番目のビットのパスを出力する。また、上記と同様に、コンテクストＤａｔａＣＸ３、ＣＸ確定（ｆｉｘ）、およびＳｉｇｎＣＸ３／ＸＯＲビット、または、予想コンテクストＤａｔａｐＣＸ３、ＣＸ未確定（ｉｎｄｅｆ）、並びに垂直方向コンテクストモデル判定値ＳｉｇｎＶおよび水平方向コンテクストモデル判定値ＳｉｇｎＨを出力する。
【００３６】
図７は、ＳＰパス用コンテクスト演算器が行うパスおよびコンテクスト演算手順の一部を示すフローチャートである。
ＳＰパス用コンテクスト演算器１５は、ＳＰパスを処理する際、（１）注目ビット（処理対象ビット）のパスの判断、（２）そのパスが確定しているかの判断、（３）出力されるコンテクストは確定しているコンテクストか、または後述する予想コンテクストかの判断を行う。
【００３７】
まず、ＳＰパス用コンテクスト演算器１５は、注目ビットが前のビットプレーンまでに有意になっているか否かを判断する（ステップＳ１）。
そして、注目ビットが前のビットプレーンまでに有意になっている場合（ステップＳ１のＹｅｓ）、ＭＲパスであることを確定する（ステップＳ２）。
【００３８】
これに対して、注目ビットが前のビットプレーンまでに有意になっていない場合（ステップＳ１のＮｏ）、現在処理中のストライプのビットは全て“０”と仮定して図６にて説明した方法を用いてコンテクストを求める（ステップＳ３）。
【００３９】
次に、求めたコンテクストが“０”であるか否かを判断する（ステップＳ４）。求めたコンテクストが“０”である場合（ステップＳ４のＹｅｓ）、注目ビットが注目ストライプ（処理対象ストライプ）の一番上のビットであるか否かを判断する（ステップＳ５）。
【００４０】
注目ビットが注目ストライプの一番上のビットである場合（ステップＳ５のＹｅｓ）、ＣＬパスであることを確定し、コンテクストも確定（ｆｉｘ）する（ステップＳ６）。
これに対して、注目ビットが注目ストライプの一番上のビットでない場合（ステップＳ５のＮｏ）、注目ビットの上のビットがＣＬパスであると確定しているか否かを判断する（ステップＳ７）。
【００４１】
そして、注目ビットの上のビットがＣＬパスであると確定している場合（ステップＳ７のＹｅｓ）、注目ビットはＣＬパスであると確定し、コンテクストは未確定（ｉｎｄｅｆ）とする（ステップＳ８）。
【００４２】
これに対して、注目ビットの上のビットがＣＬパスであると確定していない場合（ステップＳ７のＮｏ）、ＳＰｐ状態（ＳＰパスであるかＣＬパスであるか未確定の状態）で、コンテクストも未確定（ｉｎｄｅｆ）とする（ステップＳ９）。
【００４３】
この場合には、とりあえず（暫定的に）、４段ＭＱ−ＣＯＤＥＲ復号器１１にはＳＰパスとしてコンテクストを送る。そして、注目ビットの上のビットのシンボルＤの信号結果が“０”であった場合には、注目ビットはＣＬパスであり、注目ビットはＳＰパスではないことが確定するので、ＳＰパスとしてのＭＱ−ＣＯＤＥＲ復号処理を行わないようにする。逆に、注目ビットの上のシンボルＤが“１”であった場合には、注目ビットはＳＰパスであることが確定するので、ＳＰパスとしてＭＱ−ＣＯＤＥＲ復号処理を行う。
【００４４】
また、ステップＳ４で、コンテクストは０でないと判断した場合（ステップＳ４のＮｏ）、注目ストライプの一番上もしくは注目ビットの上のビットがＭＲパスもしくはＣＬパスに確定しているか否かを判断する（ステップＳ１０）。そして、注目ストライプの一番上もしくは注目ビットの上のビットがＭＲパスもしくはＣＬパスに確定している場合（ステップＳ１０のＹｅｓ）、ＳＰパスであると確定し、コンテクストも確定（ｆｉｘ）する（ステップＳ１１）。
【００４５】
これに対して、注目ストライプの一番上および注目ビットの上のビットがＭＲパスもしくはＣＬパスに確定していない場合（ステップＳ１０のＮｏ）、ＳＰパスであると確定し、コンテクストは未確定（ｉｎｄｅｆ）とする（ステップＳ１２）。
【００４６】
図８および図９は、ＳＰパス用コンテクスト演算器で行われる正負符号のコンテクスト演算を説明するための図であり、図８は、図７に示す処理により注目ビットのコンテクストが確定していると判断した場合を示す図であり、図９は、図７に示す処理により注目ビットのコンテクストが確定していないと判断した場合を示す図である。
【００４７】
ＳＰパス用コンテクスト演算器１５は、垂直方向コンテクストモデル判定器２８と、水平方向コンテクストモデル判定器２９と、正負符号コンテクストモデル・ＸＯＲビット演算器３０とをさらに有している。
【００４８】
ＳＰパス用コンテクスト演算器１５は、図７に示す処理フローで注目ビット２６（ｍ）のコンテクストＤａｔａＣＸ（ｍ）が確定していると判断した場合、これらの各演算器を用いて以下の動作を行う。
【００４９】
垂直方向コンテクストモデル判定器２８は、注目ビットの垂直方向（図８中上下方向）に隣接する２つのビットに基づいて垂直方向コンテクストモデル判定値を演算する。
水平方向コンテクストモデル判定器２９は、注目ビットの水平方向（図８中左右方向）に隣接する２つのビットに基づいて水平方向コンテクストモデル判定値を演算する。
【００５０】
正負符号コンテクストモデル・ＸＯＲビット演算器３０は、垂直方向コンテクストモデル判定値と水平方向コンテクストモデル判定値とから、正負符号のコンテクストモデルを演算し、演算結果の正負符号ＳｉｇｎＣＸ（ｋ）／ＸＯＲビットを出力する。
【００５１】
これに対して、ＳＰパス用コンテクスト演算器１５は、図７に示す処理で注目ビットのコンテクストが確定していないと判断した場合には、注目ビット２６（ｋ）の上のビットは「有意でない係数」として以下の動作を行う。
【００５２】
垂直方向コンテクストモデル判定器２８は、垂直方向コンテクストモデル判定値ＳｉｇｎＶを演算する。
水平方向コンテクストモデル判定器２９は、水平方向コンテクストモデル判定値ＳｉｇｎＨを演算し、これら垂直方向コンテクストモデル判定値ＳｉｇｎＶおよび水平方向コンテクストモデル判定値ＳｉｇｎＨを出力する。この場合、正負符号コンテクストモデル・ＸＯＲビット演算器３０による演算は行わない。
【００５３】
図１０は、ＳＰパス用コンテクスト演算器からのコンテクスト（予想コンテクストを含む）の出力例を示す図である。
図１０（ａ）は１ストライプの４ビットが全てＳＰパスに属する場合の例を示す図である。ストライプの一番上のビットはコンテクストＤａｔａＣＸ０が確定しているが、上から２番目以下のビットのコンテクストは未確定の例である。
【００５４】
図１０（ｂ）は１ストライプの４ビットのうち、上から３番目のビットがＭＲパスに属することがわかっている場合の例を示す図である。この場合、一番上のビットのコンテクストＤａｔａＣＸ０は確定しており、上から２番目のビットのコンテクストは予想コンテクストＤａｔａｐＣＸになる。しかし、４番目のビットは、上のビットがＳＰパス処理時に処理が行われないため、上のビットの復号結果には依存されない。従って、４番目のビットのコンテクストＤａｔａＣＸ３は確定する。
【００５５】
図１１は、ＣＬパス用コンテクスト演算器で行われるコンテクスト演算手順の一部を示すフローチャートである。
ＣＬパスを処理するときは、まず、現在処理中のストライプの復号結果が全て０であると仮定してコンテクストを求め（ステップＳ２１）、ストライプのデータが全てＣＬパスで、かつ、全てのビットのコンテクスト＝０であるか否かを判断する（ステップＳ２２）。
【００５６】
そして、ストライプのデータが全てＣＬパスで、かつ、全てのビットのコンテクストＤａｔａＣＸ＝０である場合（ステップＳ２２のＹｅｓ）、このストライプは後述するランレングス（Run length）処理を行う（ステップＳ２３）。
【００５７】
これに対して、ストライプのデータが全てＣＬパスで、かつ、全てのビットのコンテクスト＝０でない場合（ステップＳ２２のＮｏ）、注目ビットがストライプの一番上のビットであるか否かを判断する（ステップＳ２４）。
【００５８】
そして、注目ビットがストライプの一番上のビットである場合（ステップＳ２４のＹｅｓ）、注目ビットのコンテクストを確定（ｆｉｘ）する（ステップＳ２５）。
これに対して、注目ビットがストライプの一番上のビットでない場合（ステップＳ２４のＮｏ）、注目ビットの上のビットがＣＬパスであるか否かを判断する（ステップＳ２６）。
【００５９】
そして、注目ビットの上のビットがＣＬパスでない場合（ステップＳ２６のＮｏ）、注目ビットのコンテクストを確定（ｆｉｘ）する（ステップＳ２７）。
これに対して、注目ビットの上のビットがＣＬパスである場合（ステップＳ２６のＹｅｓ）、注目ビットのコンテクストを未確定（ｉｎｄｅｆ）とする（ステップＳ２８）。
【００６０】
ＣＬパスの処理も、注目ビットの上のビットが同じＣＬパスで処理されるビットであり、シンボルＤが未だ出力されていない場合は、注目ビットのコンテクストを求めることができない。そこで、この場合も、注目ビットの上のビットのシンボルＤの復号結果が“０”であると仮定して予想コンテクストを演算する。予想コンテクストは、仮定が間違っていた場合には、４段ＭＱ−ＣＯＤＥＲ復号器１１において、正しいコンテクストに変換される。
【００６１】
なお、ＳＰパスの処理においては、パスが確定しない場合があったが、ＣＬパスで処理されることになっているビットは、必ずＣＬパスで処理されるので、４段ＭＱ−ＣＯＤＥＲ復号器１１でコンテクストそのものの処理を除外することはない。
【００６２】
次に、第２コンテクスト演算器１７について詳しく説明する。
図１２は、第２コンテクスト演算器の構成を示すブロック図である。
第２コンテクスト演算器１７は、ＭＲパス用コンテクスト演算器１８に加え、ＯＲ回路３２１〜３２４と、遅延回路３３とをさらに有している。
【００６３】
ＯＲ回路３２１は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの一番上のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報との論理和（ＯＲ）をとる。
【００６４】
ＯＲ回路３２２は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの上から２番目のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報との論理和（ＯＲ）をとる。
【００６５】
ＯＲ回路３２３は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの上から３番目のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報との論理和（ＯＲ）をとる。
【００６６】
ＯＲ回路３２４は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの上から４番目のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報との論理和（ＯＲ）をとる。
【００６７】
遅延回路３３は記憶部を構成しており、ＯＲ回路３２１〜３２４から出力される有意情報を処理パスの横方向のライン分のコンテクスト演算処理時間だけ遅延したものを、遅延回路３３の出力端３３１〜３３４に出力するとともに、出力端３３４に得られる有意情報を処理パスの横方向のライン分のコンテクスト演算処理時間だけ遅延させたものを、出力端３３０に出力する。
【００６８】
従って、ＭＲパス用コンテクスト演算器１８の入力端３４０には、注目ストライプの上のビットの有意情報が入力され、入力端３４１〜３４４には、注目ストライプの各ビットの有意情報が入力され、入力端３４５には、注目ストライプの下のビットの有意情報が入力される。そして、ＭＲパス用コンテクスト演算器１８から出力されるＭＲパスのコンテクストは、ＭＲパス用コンテクスト記憶部１９に記憶される。
【００６９】
このように、本実施形態では、第２コンテクスト演算器１７を設け、ＳＰパス用コンテクスト演算器１５でのＳＰパスの処理中に同時にＭＲパスのコンテクストＤａｔａＣＸ（ｍ）を確定し、これをＭＲパス用コンテクスト記憶部１９に記憶し、ＳＰパスの処理後、４段ＭＱ−ＣＯＤＥＲ復号器１１において、直ちにＭＲパスのシンボルＤを演算できるようにしている。
【００７０】
すなわち、ＭＲパスのコンテクストＤａｔａＣＸ（ｍ）は、同じビットプレーンにおけるＭＲパスの復号結果には依存せず、注目ビットの８近傍のＳＰパスの復号結果が出力された時点でコンテクストが確定するので、この確定したコンテクストをＭＲパス用コンテクスト記憶部１９に記憶しておき、ＳＰパスの処理後、直ちにＭＲパス用コンテクスト記憶部１９から読み出して、４段ＭＱ−ＣＯＤＥＲ復号器１１において、ＭＲパスのシンボルＤを演算することができる。
【００７１】
なお、ＭＲパス用コンテクスト記憶部１９にＭＲパスのコンテクストＤａｔａＣＸ（ｍ）を詰めて記憶する場合には、ＭＲパスのビットプレーン内の実際の位置に拘わらず連続して処理を行うことができ、高速化を図ることができる。しかし、ＭＲパスのビットプレーンの位置を意識しないで復号した際には、ＭＲパスにおいて復号されたシンボルのビットモデリング演算器１０への配置をＭＲパスの復号と同時に行うことが困難である。従って、ＭＲパスのシンボルを配置するための時間が必要である。この配置を次の処理であるＣＬパスの復号時間、あるいは、さらにそれ以降のＳＰパスまたはＣＬパスの処理時間に行うことにより、ＭＲパスのシンボル配置の時間を短縮することができる。
【００７２】
次に、コンテクストレジスタ部２０の構成を説明する。
図１３は、コンテクストレジスタ部の構成を示す図である。
コンテクストレジスタ部２０は、コンテクストレジスタＣＸｒｅｇ（０）〜ＣＸｒｅｇ（３）を有している。
【００７３】
コンテクストレジスタＣＸｒｅｇ（０）は、ＣＸ０ＥＮ領域３６１と、ＤａｔａＣＸ０領域３６２と、ＳｉｇｎＣＸ０領域３６３とを有している。
コンテクストレジスタＣＸｒｅｇ（１）は、ＣＸ１ＥＮ領域３７１と、ｆｉｘ１領域３７２と、ＤａｔａＣＸ１領域３７３と、ＳｉｇｎＣＸ１領域３７４とを有している。
【００７４】
コンテクストレジスタＣＸｒｅｇ（２）は、ＣＸ２ＥＮ領域３８１と、ｆｉｘ２領域３８２と、ＤａｔａＣＸ２領域３８３と、ＳｉｇｎＣＸ２領域３８４とを有している。
コンテクストレジスタＣＸｒｅｇ（３）は、ＣＸ３ＥＮ領域３９１と、ｆｉｘ３領域３９２と、ＤａｔａＣＸ３領域３９３と、ＳｉｇｎＣＸ３領域３９４とを有している。
【００７５】
ＣＸ０ＥＮ領域３６１、ＣＸ１ＥＮ領域３７１、ＣＸ２ＥＮ領域３８１、ＣＸ３ＥＮ領域３９１にはそれぞれ、コンテクストＤａｔａＣＸ（ｍ）（ｍ＝０〜３）が有効な値か否かを示すＳＰパス用コンテクスト演算器１５が生成したデータＣＸ０ＥＮ、ＣＸ１ＥＮ、ＣＸ２ＥＮ、ＣＸ３ＥＮが入力される。
【００７６】
ＤａｔａＣＸ０領域３６２、ＤａｔａＣＸ１領域３７３、ＤａｔａＣＸ２領域３８３、ＤａｔａＣＸ３領域３９３にはそれぞれ、コンテクストＤａｔａＣＸ（ｍ）が入力される。
【００７７】
ＳｉｇｎＣＸ０領域３６３、ＳｉｇｎＣＸ１領域３７４、ＳｉｇｎＣＸ２領域３８４、ＳｉｇｎＣＸ３領域３９４にはそれぞれ、正負符号ＳｉｇｎＣＸ（ｍ）／ＸＯＲビットまたは垂直方向コンテクストモデル判定値ＳｉｇｎＶ、水平方向コンテクストモデル判定値ＳｉｇｎＨのいずれかが記憶される。
【００７８】
ｆｉｘ１領域３７２、ｆｉｘ２領域３８２、ｆｉｘ３領域３９２にはそれぞれ、コンテクストＤａｔａＣＸ（ｋ−１）および正負符号ＳｉｇｎＣＸ（ｋ−１）が確定しているか否かを表すデータｆｉｘ１、ｆｉｘ２、ｆｉｘ３が入力される。ｆｉｘ（ｎ）＝“１”の場合は確定を示し、ｆｉｘ（ｎ）＝“０”の場合は未確定を示す。
【００７９】
なお、コンテクストレジスタＣＸｒｅｇ（０）〜ＣＸｒｅｇ（３）には、第１コンテクスト演算器１４から出力されたデータのうち、現在処理を行っているパスのデータが格納され、必要量のデータが、次のステップである４段ＭＱ−ＣＯＤＥＲ復号器１１に送られる。
【００８０】
なお、第１コンテクスト演算器１４の演算速度（本実施形態では、１サイクル１ストライプ）と多段ＭＱ−ＣＯＤＥＲ復号器の演算速度とが同じであれば、コンテクストレジスタ部２０は不要である。しかし、第１コンテクスト演算器１４で１ストライプを処理した場合に出力されるコンテクストは最大で１０個であり、１０個のコンテクストを同時に処理する多段ＭＱ−ＣＯＤＥＲ復号器を構成することは非常に難しい。１サイクルの時間が非常に長ければ（クロック周波数が非常に低ければ）可能であるが、一般的に使用されるクロックサイクルでは不可能であると考えられるので、コンテクストレジスタ部２０が必要となる。
【００８１】
図１４は４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
４段ＭＱ−ＣＯＤＥＲ復号器１１は、ＭＲパスを復号するＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器（ＭＱ−ｄｅｃ）と、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器（算術復号部）と、ＣＬパスを復号するＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器の機能を有する復号器４０と、コンテクストジェネレータ４４を有している。
【００８２】
コンテクストジェネレータ４４は、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器のパス復号結果に基づいて、次のコンテクストＤａｔａＣＸ０〜ＤａｔａＣＸ３または正負符号ＳｉｇｎＣＸ０〜ＳｉｇｎＣＸ３をＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器に出力する。また、ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器のパス復号結果に基づいて、次のコンテクストＤａｔａＣＸ０〜ＤａｔａＣＸ３または正負符号ＳｉｇｎＣＸ０〜ＳｉｇｎＣＸ３をＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器に出力する。
【００８３】
次に、ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器およびＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器の内部構成について詳しく説明する。
図１５は、ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
【００８４】
ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１は、Ａ・Ｃｒｅｇ４５と、１段目のＭＱ−ＣＯＤＥＲ復号器４６と、２段目のＭＱ−ＣＯＤＥＲ復号器４７と、３段目のＭＱ−ＣＯＤＥＲ復号器４８と、４段目のＭＱ−ＣＯＤＥＲ復号器４９と、セレクタ５０、５１、５２、５３を有している。
【００８５】
Ａ・Ｃｒｅｇ４５は、オージェンドＡおよび符号Ｃを更新的に記憶する。
ＭＱ−ＣＯＤＥＲ復号器４６〜４９はそれぞれ、入力されるコンテクストの算術復号を行う。
【００８６】
セレクタ５０は、スキップするか（入力されるコンテクストをスキップするか否かを決定するため）のデータＳｋｉｐ１を選択制御データ（セレクタ５０のデータ選択基準）とし、ＭＱ−ＣＯＤＥＲ復号器４６の出力またはＭＱ−ＣＯＤＥＲ復号器４７の出力を選択する。
【００８７】
セレクタ５１は、スキップするかのデータＳｋｉｐ２を選択制御データとし、セレクタ５０の出力またはＭＱ−ＣＯＤＥＲ復号器４８の出力を選択する。
セレクタ５２は、スキップするかのデータＳｋｉｐ３を選択制御データとし、セレクタ５１の出力またはＭＱ−ＣＯＤＥＲ復号器４９の出力を選択する。
【００８８】
セレクタ５３は、復号処理をスキップするかのデータＳｋｉｐ  ＭＱ−ｄｅｃを選択制御データとし、セレクタ５２の出力またはＡ・Ｃｒｅｇ４５の出力を選択する。
ここで、データＣＸ１ＥＮが無効であるときには、データＳｋｉｐ１＝Ｔ（真）となり、２段目の復号は無効になる。以下、データＳｋｉｐ２、データＳｋｉｐ３も同様である。また、全てのコンテクストＣＸ０〜ＣＸ３が無効なときは、データＳｋｉｐ  ＭＱ−ｄｅｃ＝Ｔとなり、オージェンドＡと符号Ｃの値は変化しない。
【００８９】
次に、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成について詳しく説明する。
図１６は、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
１画素のデータでシンボルの復号と正負符号の復号が発生する可能性があるため、１画素あたり２段のＭＱ−ＣＯＤＥＲ復号器を用意する。
【００９０】
ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２は、オージェンドＡおよび符号Ｃを更新的に記憶するＡ・Ｃｒｅｇ１５８と、１段目のＭＱ−ＣＯＤＥＲ復号器１５９と、２段目のＭＱ−ＣＯＤＥＲ復号器１６０と、３段目のＭＱ−ＣＯＤＥＲ復号器１６１と、４段目のＭＱ−ＣＯＤＥＲ復号器１６２と、セレクタ１６３、１６４、１６５、１６６とを有している。
【００９１】
セレクタ１６３は、スキップするかのデータＳｋｉｐ１を選択制御データとし、ＭＱ−ＣＯＤＥＲ復号器１５９の出力またはＭＱ−ＣＯＤＥＲ復号器１６０の出力を選択する。
セレクタ１６４は、スキップするかのデータＳｋｉｐ２を選択制御データとし、セレクタ１６３の出力またはＭＱ−ＣＯＤＥＲ復号器１６１の出力を選択する。
【００９２】
セレクタ１６５は、スキップするかのデータＳｋｉｐ３を選択制御データとし、セレクタ１６４の出力またはＭＱ−ＣＯＤＥＲ復号器１６２の出力を選択する。
セレクタ１６６は、復号処理をスキップするかのデータＳｋｉｐ  ＭＱ−ｄｅｃを選択制御データとし、セレクタ１６５の出力またはＡ・Ｃｒｅｇ１５８の出力を選択する。
【００９３】
コンテクストジェネレータ４４は、コンテクストレジスタ部２０からコンテクストＤａｔａＣＸ（ｎ）および正負符号ＳｉｇｎＣＸ（ｎ）を取り出す。
そして、ＭＱ−ＣＯＤＥＲ復号器１５９の出力（以下、「出力Ｄ（Decision）０」と言う）、ＭＱ−ＣＯＤＥＲ復号器１６０の出力（以下、「出力Ｄ１」と言う）、ＭＱ−ＣＯＤＥＲ復号器１６１の出力（以下、「出力Ｄ２」と言う）およびＭＱ−ＣＯＤＥＲ復号器１６２の出力（以下、「出力Ｄ３」と言う）それぞれの値に応じた出力ＣＸＡをＭＱ−ＣＯＤＥＲ復号器１５９に出力し、出力ＣＸＢをＭＱ−ＣＯＤＥＲ復号器１６０に出力し、出力ＣＸＣをＭＱ−ＣＯＤＥＲ復号器１６１に出力し、出力ＣＸＤをＭＱ−ＣＯＤＥＲ復号器１６２に出力する。
【００９４】
図１７は、コンテクストジェネレータの出力を示す図である。
出力Ｄ０〜出力Ｄ３がともに“０”の場合、すなわち、ビットモデリング演算器１０での注目ビットの上のビットのシンボルの復号結果を“０”と仮定したことがいずれも正しかった場合、出力ＣＸＡは、コンテクストＤａｔａＣＸ０となり、出力ＣＸＢは、コンテクストＤａｔａＣＸ１となり、出力ＣＸＣは、コンテクストＤａｔａＣＸ２となり、出力ＣＸＤは、コンテクストＤａｔａＣＸ３となる。
【００９５】
出力Ｄ０が“１”の場合、すなわち、ビットモデリング演算器１０での注目ビットの上のビットのシンボルの復号結果を“０”と仮定したことは間違いであった場合、出力Ｄ１〜出力Ｄ３の状態にかかわらず（図１７中は“Ｘ”（ｄｏｎ’ｔ  ｃａｒｅ））、出力ＣＸＡは、正負符号ＳｉｇｎＣＸ０となり、出力ＣＸＢ〜出力ＣＸＤは、出力しない（Ｎｕｌｌ）。
【００９６】
出力Ｄ０が“０”、出力Ｄ１が“１”の場合、すなわち、ビットモデリング演算器１０での注目ビットの上のビットのシンボルの復号結果を“０”と仮定したことは間違いであった場合、出力Ｄ２、出力Ｄ３の状態にかかわらず、出力ＣＸＡは、正負符号ＳｉｇｎＣＸ１となり、出力ＣＸＢ〜出力ＣＸＤは、いずれも出力しない。
【００９７】
出力Ｄ０、出力Ｄ１が“０”、出力Ｄ２が“１”の場合、すなわち、ビットモデリング演算器１０での注目ビットの上のビットのシンボルの復号結果を“０”と仮定したことは間違いであった場合、出力Ｄ３の状態にかかわらず、出力ＣＸＡは、正負符号ＳｉｇｎＣＸ２となり、出力ＣＸＢ〜出力ＣＸＤは、出力しない。
【００９８】
出力Ｄ０〜出力Ｄ２がいずれも“０”、出力Ｄ３が“１”の場合、すなわち、ビットモデリング演算器１０での注目ビットの上のビットのシンボルの復号結果を“０”と仮定したことは間違いであった場合、出力ＣＸＡは、正負符号ＳｉｇｎＣＸ３となり、出力ＣＸＢ〜出力ＣＸＤは、いずれも出力しない。
【００９９】
図１８は、コンテクストジェネレータの動作例を示す図である。なお、説明を簡単にするために、コンテクストレジスタＣＸｒｅｇ（０）、ＣＸｒｅｇ（１）に対応する構成としている。
【０１００】
まず、コンテクストジェネレータ４４は、出力ＣＸＡとしてコンテクストＤａｔａＣＸ０（１）、出力ＣＸＢとしてコンテクストＤａｔａＣＸ１（１）を出力する。なお、コンテクストＤａｔａＣＸ０（１）は、コンテクストレジスタＣＸｒｅｇ（０）から最初に出力されたコンテクストＤａｔａＣＸ０を示し、コンテクストＤａｔａＣＸ１（１）は、コンテクストレジスタＣＸｒｅｇ（１）から最初に出力されたコンテクストＤａｔａＣＸ１を示している。
【０１０１】
その結果、出力Ｄ０、Ｄ１がいずれも“０”であったので、続けて出力ＣＸＡとしてコンテクストＤａｔａＣＸ０（２）、出力ＣＸＢとしてコンテクストＤａｔａＣＸ１（２）を出力する。なお、コンテクストＤａｔａＣＸ０（２）は、コンテクストレジスタＣＸｒｅｇ（０）から２番目に出力されたコンテクストＤａｔａＣＸ０を示し、コンテクストＤａｔａＣＸ１（２）は、コンテクストレジスタＣＸｒｅｇ（１）から２番目に出力されたコンテクストＤａｔａＣＸ１を示している。以下、同様である。
【０１０２】
その結果、出力Ｄ０が“１”、Ｄ１が“０”であったので、出力ＣＸＡとして、コンテクストＤａｔａＣＸ０（２）に対応する正負符号ＳｉｇｎＣＸ０（２）を出力し、出力ＣＸＢは出力しない。
【０１０３】
そして、前回の出力でコンテクストＤａｔａＣＸ１（２）は、無視したので、続けて出力ＣＸＡとしてコンテクストＤａｔａＣＸ１（２）、出力ＣＸＢとしてコンテクストＤａｔａＣＸ０（３）を出力する。
【０１０４】
ところで、例えば８ビットのデータの場合、コンテクストＤａｔａＣＸ（ｎ）は７ビットに対し、正負符号ＳｉｇｎＣＸ（ｎ）は１ビットしかない。従って、出力Ｄ０または出力Ｄ１に“１”が出る頻度は、相対的に低い。従って、毎回正負符号ＳｉｇｎＣＸ（ｎ）を入れるのではなく、普段はコンテクストＤａｔａＣＸ（ｎ）を入れ続け、正負符号ＳｉｇｎＣＸ（ｎ）が必要となったときにだけ、正負符号ＳｉｇｎＣＸ（ｎ）を出力するようにすることで、クロック当たりの処理能力を向上させることができる。これにより、例えば従来はＤａｔａＣＸ（ｎ）とＳｉｇｎＣＸ（ｎ）を１対で入力した場合、４つのコンテクストＤａｔａＣＸ（ｎ）を処理するのに４クロック必要であったが、本実施の形態のエントロピ復号器１００によれば、図１８に示すように、２クロックで４つのコンテクストＤａｔａＣＸ（ｎ）を処理することもできる。
【０１０５】
また、従来に比べてＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２の構成を簡易なものとすることができる。
図１９は、ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
【０１０６】
オージェンドＡおよび符号Ｃを更新的に記憶するＡ・Ｃｒｅｇ１７７と、１段目のＭＱ−ＣＯＤＥＲ復号器１７８と、２段目のＭＱ−ＣＯＤＥＲ復号器１７９と、３段目のＭＱ−ＣＯＤＥＲ復号器１８０と、４段目のＭＱ−ＣＯＤＥＲ復号器１８１と、セレクタ１８２、１８３、１８４、１８５を有している。
【０１０７】
なお、ＭＱ−ＣＯＤＥＲ復号器１７８は、図１６に示すＭＱ−ＣＯＤＥＲ復号器１５９と同一構成のものであり、ＭＱ−ＣＯＤＥＲ復号器１７９は、ＭＱ−ＣＯＤＥＲ復号器１６０と同一構成のものであり、ＭＱ−ＣＯＤＥＲ復号器１８０は、ＭＱ−ＣＯＤＥＲ復号器１６１と同一構成のものであり、ＭＱ−ＣＯＤＥＲ復号器１８１は、ＭＱ−ＣＯＤＥＲ復号器１６２と同一構成のものである。
【０１０８】
セレクタ１８２は、スキップするかのデータＳｋｉｐ１を選択制御データとし、ＭＱ−ＣＯＤＥＲ復号器１７８の出力またはＭＱ−ＣＯＤＥＲ復号器１７９の出力を選択する。
セレクタ１８３は、スキップするかのデータＳｋｉｐ２を選択制御データとし、セレクタ１８２の出力またはＭＱ−ＣＯＤＥＲ復号器１８０の出力を選択する。
【０１０９】
セレクタ１８４は、スキップするかのデータＳｋｉｐ３を選択制御データとし、セレクタ１８３の出力またはＭＱ−ＣＯＤＥＲ復号器１８１の出力を選択する。
セレクタ１８５は、復号処理をスキップするかのデータＳｋｉｐ  ＭＱ−ｄｅｃを選択制御データとし、セレクタ１８４の出力またはＡ・Ｃｒｅｇ１７７の出力を選択する。
【０１１０】
なお、ＣＬパスの演算は、ＳＰパスの演算に近い。異なる点は、コンテクストＤａｔａＣＸ（ｎ）のＳＰｐ状態に対する処理がないことと、ランレングスに対する処理が入ることである。ランレングスの処理のために、コンテクストレジスタ部２０にランレングス用のコンテクストを入力する装置１９１、１９２を加える必要がある。
【０１１１】
次に、ビットモデリング演算器１０と４段ＭＱ−ＣＯＤＥＲ復号器１１との間のデータの流れを説明する。
図２０は、最初のＣＬパスの処理時のデータの流れを示す図である。
【０１１２】
ビットモデリング演算器１０は、コードブロックのデータを記憶するコードブロックデータ記憶部１９５をさらに有している。
ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器４３は、最初のＣＬパスでは、全てのデータをＣＬパスとして処理を行い、ビットモデリング演算器１０は、処理と同時に最終的な復号結果であるコードブロックのデータを、コードブロックデータ記憶部１９５にも書き込む。
【０１１３】
図２１は、ＳＰパスの処理時のデータの流れを示す図である。
ビットモデリング演算器１０は、ＣＬパスの位置を記憶するＣＬパス位置記憶部１９７をさらに有している。
【０１１４】
ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２がＳＰパスの処理を行うと同時にビットモデリング演算器１０がＭＲパスのコンテクストを演算し、演算結果をＭＲパス用コンテクスト記憶部１９に記憶する。その際、ビットモデリング演算器１０は、同じビットプレーンにおけるＣＬパスの位置をＣＬパス位置記憶部１９７に記憶していく。
【０１１５】
また、ＳＰパスの復号結果であるコードブロックデータもコードブロックデータ記憶部１９５に書き込む。このように、ＳＰパスの処理時に同時にＭＲパスのコンテクストを確定することにより、ＳＰパスの処理後、ＭＲパスのシンボル演算を高速に行うことができる。
【０１１６】
図２２は、ＭＲパスの処理時のデータの流れを示す図である。
ＭＲパス処理時は、ＳＰパス処理時に算出されたコンテクストデータをＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１で復号する。復号結果は、ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器４３が備えるＭＲシンボル記憶部２０３に書き込む。処理を行っているデータＣＸのコードブロックにおける位置がバラバラであるために、ＳＰパス、ＣＬパスのように処理を行いながらコードブロックデータ記憶部１９５に復号データを書き込むことができない。従って、次のＣＬパスの処理時、またはＳＰパスの処理時にコードブロックデータ記憶部１９５に配置する必要がある。
【０１１７】
図２３は、最初のＣＬパス以外のＣＬパス（通常のＣＬパス）の処理時のデータの流れを示す図である。
ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器４３は、同じビットプレーンのＳＰパス処理時に記憶されたＣＬパスの位置のデータを使用しながら、ＣＬパスのデータを復号する。このとき、ＣＬパスの復号結果であるシンボルをコードブロックデータ記憶部１９５に配置するのと同じストライプにＭＲパスの復号結果を配置する。
【０１１８】
図２４は、ＭＲパスのデータ配置があるＳＰパス処理時のデータの流れを示す図である。
ＣＬパスのデータが無いときには、処理時間の短縮のため、ＣＬパスを省略することが可能である。この場合には、ＭＲパスの復号結果の配置は、次のコードブロックのＳＰパスの処理時に行うことができる。
【０１１９】
図２５は、ＭＲパスのシンボルを配置する場合のデータの流れを示す図である。
ＭＲパスの処理が、そのコードブロックにおける最後の処理となったときには、シンボルを配置するための処理が必要である。
【０１２０】
以上、本発明のエントロピ復号器を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１２１】
また、本発明は、前述した実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
（付記１）  画像を復号する算術復号器において、
データコンテクストまたは符号コンテクストの入力に応じて算術復号を行う算術復号部と、
前記算術復号部の復号結果に基づいて、次の前記データコンテクストまたは前記符号コンテクストを前記算術復号部に出力するコンテクストジェネレータと、
を有することを特徴とする算術復号器。
【０１２２】
（付記２）  前記コンテクストジェネレータは、前記復号結果が前記符号コンテクストを要求する結果のとき、前記符号コンテクストを出力し、それ以外は前記データコンテクストを出力することを特徴とする付記１記載の算術復号器。
【０１２３】
（付記３）  前記コンテクストジェネレータは、複数の前記データコンテクストを前記算術復号部に出力し、前記算術復号部は、複数の前記データコンテクストに対応する複数の前記復号結果を出力するよう構成されており、
前記コンテクストジェネレータは、前記算術復号部の前記各復号結果の少なくともいずれか１つが前記符号コンテクストを要求する結果のとき、前記符号コンテクストを出力し、それ以外は前記データコンテクストを出力することを特徴とする付記１記載の算術復号器。
【０１２４】
（付記４）  前記算術復号部は、複数の前記データコンテクストそれぞれに対応する複数のデコーダを有し、
前記コンテクストジェネレータは、前記符号コンテクストを要求する結果を出力した前記デコーダに基づいた前記符号コンテクストを出力することを特徴とする付記３記載の算術復号器。
【０１２５】
（付記５）  前記データコンテクストおよび前記符号コンテクストは、ＳＰパス処理時またはＣＬパス処理時に、処理対象のビットに隣接するビットのシンボルが確定する前に、前記処理対象のビットに隣接するビットのシンボルを所定値と仮定して予測したコンテクストであることを特徴とする付記１記載の算術復号器。
【０１２６】
（付記６）  画像を復号するエントロピ復号器において、
ＳＰパス処理時またはＣＬパス処理時に、処理対象のビットに隣接するビットのシンボルが確定する前に、前記処理対象のビットに隣接するビットのシンボルを所定値と仮定して予測したデータコンテクストおよび符号コンテクストを演算する演算器と、前記データコンテクストおよび前記符号コンテクストを格納するレジスタと、を有するビットモデリング演算器と、
前記データコンテクストまたは前記符号コンテクストの入力に応じて算術復号を行う算術復号部と、
前記算術復号部の復号結果に基づいて、前記レジスタに格納されている次の前記データコンテクストまたは前記符号コンテクストを前記算術復号部に出力するコンテクストジェネレータと、
を有することを特徴とするエントロピ復号器。
【図面の簡単な説明】
【０１２７】
【図１】本発明の概要を示す図である。
【図２】実施の形態のエントロピ復号器の構成を示すブロック図である。
【図３】ビットモデリング演算器の構成を示すブロック図である。
【図４】ＳＰパス用コンテクスト演算器のＳＰパスの各ビットのパスおよびコンテクスト演算処理順序を示す図である。
【図５】シンボルのコンテクスト演算を説明するための図である。
【図６】ＳＰパス用コンテクスト演算器の構成を示すブロック図である。
【図７】ＳＰパス用コンテクスト演算器が行うパスおよびコンテクスト演算手順の一部を示すフローチャートである。
【図８】ＳＰパス用コンテクスト演算器で行われる正負符号のコンテクスト演算を説明するための図である。
【図９】ＳＰパス用コンテクスト演算器で行われる正負符号のコンテクスト演算を説明するための図である。
【図１０】ＳＰパス用コンテクスト演算器からのコンテクスト（予想コンテクストを含む）の出力例を示す図である。
【図１１】ＣＬパス用コンテクスト演算器で行われるコンテクスト演算手順の一部を示すフローチャートである。
【図１２】第２コンテクスト演算器の構成を示すブロック図である。
【図１３】コンテクストレジスタ部の構成を示す図である。
【図１４】４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
【図１５】ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
【図１６】ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
【図１７】コンテクストジェネレータの出力を示す図である。
【図１８】コンテクストジェネレータの動作例を示す図である。
【図１９】ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成を示すブロック図である。
【図２０】最初のＣＬパスの処理時のデータの流れを示す図である。
【図２１】ＳＰパスの処理時のデータの流れを示す図である。
【図２２】ＭＲパスの処理時のデータの流れを示す図である。
【図２３】最初のＣＬパス以外のＣＬパス（通常のＣＬパス）の処理時のデータの流れを示す図である。
【図２４】ＭＲパスのデータ配置があるＳＰパス処理時のデータの流れを示す図である。
【図２５】ＭＲパスのシンボルを配置する場合のデータの流れを示す図である。
【図２６】従来の画像復号装置を示すブロック図である。
【図２７】エントロピ復号器の処理の流れを示す図である。
【図２８】コンテクスト決定処理を行う場合の処理順序を示す図である。
【図２９】注目ビットのコンテクストを決定する際に参照するビットを示す図である。
【符号の説明】
【０１２８】
１  算術復号器
２  算術復号部
３、４４  コンテクストジェネレータ
１０  ビットモデリング演算器
１１  ４段ＭＱ−ＣＯＤＥＲ復号器
１３  有意ビット記憶部
１４  第１コンテクスト演算器
１５、２３１〜２３４  ＳＰパス用コンテクスト演算器
１６  ＣＬパス用コンテクスト演算器
１７  第２コンテクスト演算器
１８  ＭＲパス用コンテクスト演算器
１９  ＭＲパス用コンテクスト記憶部
２０  コンテクストレジスタ部
２１  ＳＰパス
２４１〜２４４  コンテクストテーブル
２６１、２６（ｋ）  注目ビット
２８  垂直方向コンテクストモデル判定器
２９  水平方向コンテクストモデル判定器
３０  正負符号コンテクストモデル・ＸＯＲビット演算器
３３  遅延回路
４０  復号器
４１  ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器
４２  ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器
４３  ＣＬパス用４段ＭＱ−ＣＯＤＥＲ復号器
１００  エントロピ復号器
１５８  Ａ・Ｃｒｅｇ
１５９、１６０  ＭＱ−ＣＯＤＥＲ復号器（ＭＱ−ｄｅｃ）
１６１、１６２  セレクタ
２１１  ストライプ
ＣＸｒｅｇ（０）〜ＣＸｒｅｇ（３）  コンテクストレジスタ
【図１】
0004825755.tif 000002
【図２】
0004825755.tif 000003
【図３】
0004825755.tif 000004
【図４】
0004825755.tif 000005
【図５】
0004825755.tif 000006
【図６】
0004825755.tif 000007
【図７】
0004825755.tif 000008
【図８】
0004825755.tif 000009
【図９】
0004825755.tif 000010
【図１０】
0004825755.tif 000011
【図１１】
0004825755.tif 000012
【図１２】
0004825755.tif 000013
【図１３】
0004825755.tif 000014
【図１４】
0004825755.tif 000015
【図１５】
0004825755.tif 000016
【図１６】
0004825755.tif 000017
【図１７】
0004825755.tif 000018
【図１８】
0004825755.tif 000019
【図１９】
0004825755.tif 000020
【図２０】
0004825755.tif 000021
【図２１】
0004825755.tif 000022
【図２２】
0004825755.tif 000023
【図２３】
0004825755.tif 000024
【図２４】
0004825755.tif 000025
【図２５】
0004825755.tif 000026
【図２６】
0004825755.tif 000027
【図２７】
0004825755.tif 000028
【図２８】
0004825755.tif 000029
【図２９】
0004825755.tif 000030