(57)【要約】【課題】ＪＰＥＧ２０００方式の画像復号装置を構成する場合等に用いるエントロピ復号器に関し、エントロピ復号演算の高速化を図ることができ、しかも、回路規模の増大を確率生成部を設ける場合よりも小さく抑えるようにする。【解決手段】ＳＰパス処理時に、注目ビットの上のビットのシンボルが確定する前に、注目ビットの上のビットのシンボルを“０”と仮定して予測したコンテクストを演算し、ＭＱ−ＣＯＤＥＲ復号演算時に、コンテクスト変換テーブルを用いて予測したコンテクストを正しいコンテクストに変換してシンボルを演算し、「前のシンボルが確定してから、注目ビットのコンテクストを求め、その後に注目ビットのシンボルを求める」という手順を踏む必要を無くし、「前のシンボルが確定したら、注目ビットのシンボルを求める」ことを可能とする。【選択図】          図６
2006019814.tif 000002
【特許請求の範囲】
【請求項１】
ＳＰパス処理時又はＣパス処理時に、注目ビットの上のビットのシンボルが確定する前に、前記注目ビットの上のビットのシンボルを所定値と仮定して予測したコンテクストを演算するビットモデリング演算器と、
前記仮定が外れた場合には、所定のコンテクスト変換テーブルを用いて前記予測したコンテクストを正しいコンテクストに変換する算術復号器を有することを特徴とするエントロピ復号器。
【請求項２】
前記ビットモデリング演算器は、複数ビットのコンテクスト演算を同時に行うことを特徴とする請求項１記載のエントロピ復号器。
【請求項３】
前記ビットモデリング演算器は、ＳＰパスの処理中に同時にＭＲパスのコンテクストを確定することを特徴とする請求項１又は２記載のエントロピ復号器。
【請求項４】
前記算術復号器は、多段構成とされていることを特徴とする請求項１、２又は３記載のエントロピ復号器。
【請求項５】
前記ビットモデリング演算器は、前のストライプのシンボルが複数回にわたり出力されるような場合、既に出力されたシンボルに関しては次のストライプのコンテクスト演算に反映し、未だ出力されていないシンボルのみ所定値と仮定してコンテクストを演算することを特徴する請求項２、３又は４記載のエントロピ復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＪＰＥＧ２０００方式の画像復号装置を構成する場合等に用いるエントロピ復号器に関する。より具体的には、エントロピ復号器の高速化技術に関する。
【背景技術】
【０００２】
エントロピ復号方式は、ＪＰＥＧ２０００の算術復号方式として用いられている。ＪＰＥＧ２０００の規格は、「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（以下、それぞれ、ＳＰパス、ＭＲパス、Ｃパスという）に分類され、１パスずつ、かつ、１ビットずつ順にコンテクスト演算と算術復号演算が行われる。
【０００５】
各パスについてのコンテクスト演算は、図４２に示すように、まず、パスの左上からストライプと呼ばれる縦方向４ビットのコンテクスト演算を上から順に行い、次に右隣のストライプの４ビットのコンテクスト演算を上から順に行い、これを繰り返して右端に達すると、縦方向に１ストライプ分シフトし、同様のコンテクスト演算を左端から右方向にシフトしながら行い、以下、同様にして右下まで繰り返すことにより行われる。
【０００６】
図４３において、ｂ０は注目ビットを示しており、ビットモデリング演算器４は、注目ビットｂ０が現在処理中のパスに属するか否かを判断し、属するのであれば、注目ビットのコンテクストを算出する。その際、注目ビットｂ０の周辺の８ビットｂ１〜ｂ８の情報が参照される。そして、注目ビットｂ０のコンテクストが決定すると、ＭＱ−ＣＯＤＥＲ復号器５での算術復号演算が可能となり、算術復号演算の結果として、注目ビットｂ０のシンボルが“０”であるか、“１”であるかが決定される。
【特許文献１】特公昭６１−１４５３２号公報
【特許文献２】特開平１１−１０３２５７号公報
【特許文献３】特開２００１−２３０９３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
エントロピ復号器２では、図４４に示すように、注目ビットｂ０の周囲の８ビット情報から注目ビットｂ０のコンテクストを求め、そのコンテクスト情報を用いてＭＱ−ＣＯＤＥＲ復号演算によりシンボルが決まり、注目ビットのシンボルが決まると、ようやく次のビットのコンテクストが決まる、といったように、直前のＭＱ−ＣＯＤＥＲ復号結果が次のビットの処理に影響を及ぼすため、１ビットずつの処理しか行うことができない。
【０００８】
ここで、ビットモデリング演算器４でのコンテクスト演算で１サイクルを費やし、ＭＱ−ＣＯＤＥＲ復号器５での復号演算で1サイクルを費やすとすると、１ビットの処理を行うのに、最低２サイクル、更に、パスが３つに分かれていることを考慮すると、処理を行わないビットも存在し、処理できるビット数は、２サイクル当たり１ビットよりも少なくなってしまう。このため、図４０に示す画像復号装置では、エントロピ復号に多くの時間を費やしてしまうという問題点があった。
【０００９】
また、従来のＭＱ−ＣＯＤＥＲ復号器５では、1ビットの演算を行う度にオージェンド（Ａ）や符号（Ｃ）が変化し、その変化した値を次のビットの演算に使用するため、先行して次のビットの演算を行うことができない。よって、最速でも１回の演算で1ビットしか処理することができず、少なくとも、［処理するデータの数］×［データのビット数］の処理時間が必要となるという問題点もあった。
【００１０】
前述の問題点により制限を受けているエントロピ復号速度は、近年、動画像処理分野で必要性が高まっているMotion-JPEG2000に要求されるエントロピ復号速度を満たすことができない。また、静止画分野においても、エントロピ復号処理の高速化が求められる中、必要とされるエントロピ復号速度とは大きくかけ離れたものとなっている。
【００１１】
なお、特許文献１には、１ビットを復号演算した結果が“０”か“１”のいずれかであることから、次に処理するビットのコンテクストを、現在処理しているビットの復号結果が“０”であった場合と、“１”であった場合の両方について演算し、どちらかを使用するという手法が記載されている。しかし、この手法では、確率生成部が２つ必要となり、回路規模が必要以上に大きくなってしまうという問題点がある。
【００１２】
本発明は、かかる点に鑑み、エントロピ復号演算の高速化を図ることができ、しかも、回路規模の増大を確率生成部を設ける場合よりも小さく抑えることができるようにしたエントロピ復号器を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のエントロピ復号器は、ＳＰパス処理時又はＣパス処理時に、注目ビットの上のビットのシンボルが確定する前に、前記注目ビットの上のビットのシンボルを所定値と仮定して予測したコンテクストを演算するビットモデリング演算器と、前記仮定が外れた場合には、所定のコンテクスト変換テーブルを用いて前記予測したコンテクストを正しいコンテクストに変換する算術復号器を有するものである。
【発明の効果】
【００１４】
本発明によれば、「前のシンボルが確定してから、注目ビットのコンテクストを求め、その後に注目ビットのシンボルを求める」という手順を踏む必要が無く、「前のシンボルが確定したら、注目ビットのシンボルを求める」ことが可能となり、エントロピ復号演算を高速化することができる。また、コンテクスト変換テーブルを用いるとしているので、回路規模の増大を確率生成部を設ける場合よりも小さく抑えることができる。
【００１５】
なお、ビットモデリング演算器において、複数ビット同時にコンテクスト演算を行い、ＭＱ−ＣＯＤＥＲ復号器において、ＭＱ−ＣＯＤＥＲ復号演算を複数ビット並列して行うようにする場合には、１回の演算で複数ビットを処理することができ、エントロピ復号演算の更なる高速化を図ることができる。
【発明を実施するための最良の形態】
【００１６】
（第１実施形態）
図１は本発明の第１実施形態の概略的構成図である。図１中、１０はビットモデリング演算器、１１は算術復号器をなす４段ＭＱ−ＣＯＤＥＲ復号器１１である。ビットモデリング演算器１０は、４段ＭＱ−ＣＯＤＥＲ復号器１１が出力するシンボル（Ｄ）を入力し、コンテクスト（ＣＸ）演算を１ストライプの４ビットについて同時に行うものである。４段ＭＱ−ＣＯＤＥＲ復号器１１は、ビットモデリング演算器１０が出力するコンテクスト等のデータと、ストリーム解析器（図示せず）が出力するバイトデータ（Ｂ）を入力し、ＭＱ−ＣＯＤＥＲ復号演算を行うものである。
【００１７】
図２はビットモデリング演算器１０の概略的構成図である。図２中、１３は４段ＭＱ−ＣＯＤＥＲ復号器１１から与えられるビットプレーンの各ビットの有意ビット情報を記憶する有意ビット記憶装置、１４は第１コンテクスト演算器であり、１５はＳＰパス用コンテクスト演算器、１６はＣパス用コンテクスト演算器である。１７は第２コンテクスト演算器であり、１８はＭＲパス用コンテクスト演算器である。１９はＭＲパス用コンテクスト記憶装置、２０は４段ＭＱ−ＣＯＤＥＲ復号器１１に与えるコンテクスト等のデータを格納するコンテクスト・レジスタ（ＣＸreg）部である。
【００１８】
図３はＳＰパス用コンスタント演算器１５におけるＳＰパスの各ビットのパス及びコンテクスト演算処理順序を示す図である。図３中、２１はビットプレーンから分けられたＳＰパスを示しており、本実施形態では、ＳＰパスの各ビットのパス及びコンテクスト演算は、まず、ＳＰパスの左上からストライプと呼ばれる縦方向４ビットのパス及びコンテクスト演算を同時に行い、次に右隣のストライプの４ビットのパス及びコンテクスト演算を同時に行い、これを繰り返して右端に達すると、縦方向に１ストライプ分シフトし、同様のパス及びコンテクスト演算を左端から右方向にシフトしながら行い、以下、同様にして右下まで繰り返すことにより行われる。Ｃパスについても同様である。
【００１９】
図４はＳＰパス用コンテクスト演算器１５の概略的構成図である。ＳＰパス用コンテクスト演算器１５は、ＳＰパスの処理時に、パス及びコンテクスト演算を１ストライプの４ビット同時に行うものであり、２３−１はストライプの１番上のビットのパス及びコンテクストを演算するＳＰパス用コンテクスト演算器、２３−２はストライプの上から２番目のビットのパス及びコンテクストを演算するＳＰパス用コンテクスト演算器、２３−３はストライプの上から３番目のビットのパス及びコンテクストを演算するＳＰパス用コンテクスト演算器、２３−４はストライプの上から４番目のビットのパス及びコンテクストを演算するＳＰパス用コンテクスト演算器である。なお、ストライプの１番上のビットのシンボル・コンテクストは必ず確定している。
【００２０】
２４−１はＳＰパス用コンテクスト演算器２３−１が備えるコンテクスト・テーブル、２４−２はＳＰパス用コンテクスト演算器２３−２が備えるコンテクスト・テーブル、２４−３はＳＰパス用コンテクスト演算器２３−３が備えるコンテクスト・テーブル、２４−４はＳＰパス用コンテクスト演算器２３−４が備えるコンテクスト・テーブルであり、これらコンテクスト・テーブルは、ＪＰＥＧ２０００規格によるものである。
【００２１】
図５はＳＰパス用コンテクスト演算器１５で行われるパス及びコンテクスト演算手順の一部を示すフローチャートである。即ち、ＳＰパス用コンテクスト演算器においてＳＰパスが処理されるときには、図５に示すフローチャートに従って、注目ビットのパス、そのパスが確定しているか、及び、出力されるコンテクストは確定しているコンテクストか後述する予想コンテクストかの判定が行われる。
【００２２】
具体的には、まず、注目ビットが前のビットプレーンまでに有意になっているか否かを判断する（ステップＳ１）。そして、注目ビットが前のビットプレーンまでに有意になっている場合（ステップＳ１でＹＥＳの場合）には、ＭＲパスであることが確定される（ステップＳ２）。これに対して、注目ビットが前のビットプレーンまでに有意になっていない場合（ステップＳ１でＮＯの場合）には、現在処理中のストライプは全て０と仮定してコンテクストを求める（ステップＳ３）。
【００２３】
次に、求めたコンテクストが０であるか否かが判断される（ステップＳ４）。そして、求めたコンテクストが０である場合（ステップＳ４でＹＥＳの場合）には、注目ビットが注目ストライプの一番上のビットであるか否かを判断する（ステップＳ５）。注目ビットが注目ストライプの一番上のビットである場合（ステップＳ５でＹＥＳの場合）には、Ｃパスであることが確定され、コンテクストも確定される（ステップＳ６）。
【００２４】
これに対して、注目ビットが注目ストライプの一番上のビットでない場合（ステップＳ５でＮＯの場合）には、注目ビットの上のビットがＣパスであると確定しているか否かが判断される（ステップＳ７）。そして、注目ビットの上のビットがＣパスであると確定している場合（ステップＳ７でＹＥＳの場合）には、注目ビットはＣパスであると確定され、コンテクストは未定（indef）とされる（ステップＳ８）。これに対して、注目ビットの上のビットがＣパスであると確定していない場合（ステップＳ７でＮＯの場合）には、ＳＰp状態（ＳＰパスであるかＣパスであるか未定の状態）で、コンテクストも未定（indef）とされる（ステップＳ９）。
【００２５】
また、ステップＳ４で、コンテクストは０でないと判断された場合には、注目ストライプの一番上もしくは注目ビットの上のビットがＭＲパスもしくはＣパスに確定しているか否かが判断される（ステップＳ１０）。そして、注目ストライプの一番上もしくは注目ビットの上のビットがＭＲパスもしくはＣパスに確定している場合（ステップＳ１０でＹＥＳの場合）には、ＳＰパスであると確定され、コンテクストも確定（fix）される（ステップＳ１１）。これに対して、注目ストライプの一番上及び注目ビットの上のビットがＭＲパスもしくはＣパスに確定していない場合（ステップＳ１０でＮＯの場合）には、ＳＰパスであると確定され、コンテクストは未定（indef）とされる（ステップＳ１２）。
【００２６】
図６はＳＰパス用コンテクスト演算器１５で行われるシンボルのコンテクスト演算（図５に示すステップＳ３で行われるシンボルのコンテクスト演算）を説明するための図であり、図６（Ａ）は注目ストライプの一番上のビットのシンボルのコンテクストを演算する場合、図６（Ｂ）は注目ストライプの上から２番目以下のビットのシンボルのコンテクストを演算する場合を示している。
【００２７】
注目ストライプの一番上のビットのシンボルのコンテクスト演算は、ＳＰパス用コンテクスト演算器１５内のＳＰパス用コンテクスト演算器２３−１で行われるが、この場合には、通常のコンテクスト演算装置と同じように、注目ビット２６−１について、処理パスにおける８近傍の有意情報に基づいて、コンテクスト・テーブル２４−１を参照してコンテクストが決定される。
【００２８】
注目ストライプの上から２番目以下のビットのシンボルのコンテクスト演算は、ＳＰパス用コンテクスト演算器１５内のＳＰパス用コンテクスト演算器２３−ｋ（但し、ｋ＝２、３、４）で行われるが、この場合には、注目ビット２６−ｋの上のビットのシンボルの復号結果が“０” であると仮定した８近傍有意情報に基づいて、コンテクスト・テーブル２４−ｋを参照してコンテクストが決定される。
【００２９】
このように、注目ビットの上のビットは“０”であると仮定してコンテクストを求め、図５に示す処理フローで“コンテクスト未定”と判定された場合、このコンテクストを予想コンテクスト（ｐＣＸ）と呼ぶ。即ち、ＳＰパスの処理では、注目ビットの上のビットが同じＳＰパスで処理されるビットであり、シンボルが未だ出力されていない場合には、注目ビットのコンテクストを求めることかできない。そこで、注目ビットの上のビットのシンボルの信号結果は“０”であると仮定して予想コンテクストを演算する。予想コンテクストは、仮定が間違っていた場合には、４段ＭＱ−ＣＯＤＥＲ復号器１１において、後述するコンテクスト変換テーブルを用いて正しいコンテクストに変換される。
【００３０】
また、ＳＰパスの処理においては、注目ビットの上のビットの値が確定しないと、ＳＰパスに属するか、Ｃパスに属するか、確定しない場合がある（図５のステップＳ９）。この場合には、とりあえず、４段ＭＱ−ＣＯＤＥＲ復号器１１にはＳＰパスとしてコンテクストを送る。そして、注目ビットの上のビットのシンボルの信号結果が“０”であった場合には、注目ビットはＣパスであり、注目ビットはＳＰパスではないことが確定するので、ＳＰパスとしてのＭＱ−ＣＯＤＥＲ復号処理を行わないようにする。逆に、注目ビットの上のシンボルが“１”であった場合には、注目ビットはＳＰパスであることが確定するので、ＳＰパスとしてＭＱ−ＣＯＤＥＲ復号処理を行う。
【００３１】
図７はＳＰパス用コンテクスト演算器１５で行われる正負符号のコンテクスト演算を説明するための図であり、図７（Ａ）は図５に示す処理で注目ビットのコンテクストが確定していると判定された場合、図７（Ｂ）は図５に示す処理フローで注目ビットのコンテクストが確定していないと判定された場合を示している。
【００３２】
即ち、図５に示す処理フローで注目ビット２６−ｋのコンテクストが確定していると判定された場合には、垂直方向コンテクストモデル判定器２８による垂直方向コンテストモデル判定値と、水平方向コンテクストモデル判定器２９による水平コンテクストモデル判定値から、正負符号コンテクストモデル・ＸＯＲビット演算器３０による正負符号のコンテクストモデルが演算され、コンテクスト及びＸＯＲビットが出力される。
【００３３】
これに対して、図５に示す処理で注目ビットのコンテクストが確定していないと判定された場合には、注目ビット２６−ｋの上のビットは「有意でない係数」として垂直方向コンテクストモデル判定器２８による垂直方向コンテストモデル判定値SinＶと、水平方向コンテクストモデル判定器２９による水平コンテクストモデル判定値SinＨが演算され、これら垂直方向コンテストモデル判定値SinＶ及び水平コンテクストモデル判定値SinＨが出力され、正負符号コンテクストモデル・ＸＯＲビット演算器３０による演算は行われない。
【００３４】
図８はＳＰパス用コンテクスト演算器１５からのコンテクスト（予想コンテクストを含む）の出力例を示す図である。図８（Ａ）は１ストライプの４ビットが全てＳＰパスに属する場合の例である。ストライプの一番上のビットはコンテクストが確定しているが、上から２番目以下のビットのコンテクストは確定しない例である。
【００３５】
図８（Ｂ）は１ストライプの４ビットのうち、上から３番目のビットがＭＲパスに属することがわかっている場合の例である。この場合、一番上のビットのコンテクストは確定しており、上から２番目のビットのコンテクストは予想コンテクストになる。しかし、4番目のビットは、上のビットがＳＰパス処理時に処理が行われないため、上のビットの復号結果には依存されない。したがって、４番目のビットのコンテクストは確定する。
【００３６】
図９はＣパス用コンテクスト演算器１６で行われるコンテクスト演算手順の一部を示すフローチャートである。即ち、Ｃパスを処理するときは、まず、現在処理中のストライプの復号結果が全て０であると仮定してコンテクストを求め（ステップＰ１）、ストライプのデータが全てＣパスで、かつ、全てのビットのコンテクスト＝０であるか否かを判断する（ステップＰ２）。
【００３７】
そして、ストライプのデータが全てＣパスで、かつ、全てのビットのコンテクスト＝０である場合（ステップＰ２でＹＥＳの場合）には、このストライプはランレンクス処理を行う（ステップＰ３）。これに対して、ストライプのデータが全てＣパスで、かつ、全てのビットのコンテクスト＝０でない場合（ステップＰ２でＮＯの場合）には、注目ビットがストライプの一番上のビットであるか否かを判断する（ステップＰ４）。
【００３８】
そして、注目ビットがストライプの一番上のビットである場合（ステップＰ４でＹＥＳの場合）には、注目ビットのコンテクストは確定（fix）される（ステップＰ５）。これに対して、注目ビットがストライプの一番上のビットでない場合（ステップＰ４でＮＯの場合）には、注目ビットの上のビットがＣパスであるか否かを判断する（ステップＰ６）。
【００３９】
そして、注目ビットの上のビットがＣパスでない場合（ステップＰ６でＮＯの場合）には、注目ビットのコンテクストは確定（fix）される（ステップＰ７）。これに対して、注目ビットの上のビットがＣパスである場合（ステップＰ６でＹＥＳの場合）には、注目ビットのコンテクストは未定（indef）とされる（ステップＰ８）。
【００４０】
Ｃパスの処理も、注目ビットの上のビットが同じＣパスで処理されるビットであり、シンボルが未だ出力されていない場合は、注目ビットのコンテクストを求めることかできない。そこで、この場合も、注目ビットの上のビットのシンボルの復号結果が“０”であると仮定して予想コンテクストを演算する。予想コンテクストは、仮定が間違っていた場合には、４段ＭＱ−ＣＯＤＥＲ復号器１１において、後述するコンテクスト変換テーブルを用いて正しいコンテクストに変換される。
【００４１】
なお、ＳＰパスの処理においては、パスが確定しない場合があったが、Ｃパスで処理されることになっているビットは、必ずＣパスで処理されるので、４段ＭＱ−ＣＯＤＥＲ復号器１１でコンテクストそのものの処理を除外することはない。
【００４２】
図１０は第２コンテクスト演算器１７の概略的構成図である。図１０中、３２−１〜３２−４はＯＲ回路であり、ＯＲ回路３２−１は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの一番上のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報とをＯＲ処理するものである。ＯＲ回路３２−２は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの上から２番目のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報とをＯＲ処理するものである。
【００４３】
また、ＯＲ回路３２−３は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの上から３番目のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報とをＯＲ処理するものである。ＯＲ回路３２−４は、４段ＭＱ−ＣＯＤＥＲ復号器１１から出力されるＳＰパスのストライプの上から４番目のビットのシンボルの復号結果と、同一ビットについての前のビットプレーンまでの有意情報とをＯＲ処理するものである。
【００４４】
３３は記憶装置からなる遅延回路であり、出力端３３−１〜３３−４に、ＯＲ回路３２−１〜３２−４から出力される有意情報を処理パスの横方向のライン分のコンテクスト演算処理時間だけ遅延したものを出力すると共に、出力端３３−０に、出力端３３−４に得られる有意情報を処理パスの横方向のライン分のコンテクスト演算処理時間だけ遅延させたものを出力するものである。
【００４５】
したがって、ＭＲパス用コンテクスト演算器１８の入力端３４−０には、注目ストライプの上のビットの有意情報が入力され、入力端３４−１〜３４−４には、注目ストライプの各ビットの有意情報が入力され、入力端３４−５には、注目ストライプの下のビットの有意情報が入力される。そして、ＭＲパス用コンテクスト演算器１８から出力されるＭＲパスのコンテクストは、ＭＲパス用コンテクスト記憶装置１９に記憶される。
【００４６】
このように、本実施形態では、第２コンテクスト演算器１７を設け、ＳＰパス用コンテクスト演算器１５でのＳＰパスの処理中に同時にＭＲパスのコンテクストを確定し、これをＭＲパス用コンテクスト記憶装置１９に記憶し、ＳＰパスの処理後、４段ＭＱ−ＣＯＤＥＲ演算器１１において、直ちにＭＲパスのシンボルを演算できるようにしている。
【００４７】
即ち、ＭＲパスのコンテクストは、同じビットプレーンにおけるＭＲパスの復号結果には依存せず、注目ビットの８近傍のＳＰパスの復号結果が出力された時点でコンテクストが確定するので、この確定したコンテクストをＭＲパス用コンテクスト記憶装置１９に記憶しておき、ＳＰパスの処理後、直ちにＭＲパス用コンテクスト記憶装置１９から読み出して、４段ＭＱ−ＣＯＤＥＲ演算器１１において、ＭＲパスのシンボルを演算できるようにしている。
【００４８】
なお、ＭＲパス用コンテクスト記憶装置１９にＭＲパスのコンテクストを詰めて記憶する場合には、ＭＲパスのビットプレーン内の実際の位置に拘わらず連続して処理を行うことができ、高速化を図ることができる。しかし、ＭＲパスのビットプレーンの位置を意識しないで復号した際には、ＭＲパスにおいて復号されたシンボルのビットモデリング演算器１０への配置をＭＲパスの復号と同時に行うことが困難である。従って、ＭＲパスのシンボルを配置するための時間が必要である。この配置を次の処理であるＣパスの復号時間、あるいは、更にそれ以降のＳＰパス又はＣパスの処理時間に行うことにより、ＭＲパスのシンボル配置の時間を短縮することができる。
【００４９】
図１１はコンテクスト・レジスタ部２０の概略的構成図である。図１１中、ＣＸreg（０）〜ＣＸreg（３）はコンテクスト・レジスタである。ＣＸreg（０）において、３６−１はＣＸ０ＥＮ領域、３６−２はDataＣＸ０領域、３６−３はSinＣＸ０領域である。ＣＸreg（１）において、３７−１はＣＸ１ＥＮ領域、３７−２はfix１領域、３７−３はDataＣＸ１領域、３７−４はSinＣＸ１領域である。ＣＸreg（２）において、３８−１はＣＸ２ＥＮ領域、３８−２はfix２領域、３８−３はDataＣＸ２領域、３８−４はSinＣＸ２領域である。ＣＸreg（３）において、３９−１はＣＸ３ＥＮ領域、３９−２はfix３領域、３９−３はDataＣＸ３領域、３９−４はSinＣＸ３領域である。４０はコンテクスト変換回路である。
【００５０】
ＣＸ０ＥＮ、ＣＸ１ＥＮ、ＣＸ２ＥＮ、ＣＸ３ＥＮは、それぞれ、コンテクストＣＸ０、ＣＸ１、ＣＸ２、ＣＸ３が有効な値であるかどうかを示すデータである。fixｎはシンボル・コンテクストdataＣＸｎ及び正負符号sinＣＸｎが確定しているかどうかを表すデータであり、fixｎ＝“１”の場合は確定、fixｎ＝“０”の場合は未定を示す。なお、コンテクスト・レジスタＣＸreg（０）〜ＣＸreg（３）には、コンテクスト演算器１３から出力されたデータのうち、現在処理を行っているパスのデータが格納され、必要量のデータが次のステップである４段ＭＱ−ＣＯＤＥＲ復号器１１に送られる。また、SinＣＸ領域には、中間値SinV、SinHが記憶される場合もある。
【００５１】
また、コンテクスト変換回路４０は、後述するＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器が備えるコンテクスト変換テーブル及び正負符号コンテクスト・ＸＯＲビット演算器と同様の機能を有するものである。
【００５２】
なお、第１コンテクスト演算器１４の演算速度（本実施形態では、１サイクル１ストライプ）と多段ＭＱ−ＣＯＤＥＲ復号器の演算速度が同じであれば、コンテクスト・レジスタ部２０は不要である。しかし、第１コンテクスト演算器１４で１ストライプを処理した場合に出力されるコンテクストは最大で１０個であり、１０個のコンテクストを同時に処理する多段ＭＱ−ＣＯＤＥＲ復号器を構成することは非常に難しい。１サイクルの時間が非常に長ければ（クロック周波数が非常に低ければ）可能であるが、一般的に使用されるクロックサイクルでは不可能であると考えられるので、コンテクスト・レジスタ部２０が必要となる。
【００５３】
図１２は４段ＭＱ−ＣＯＤＥＲ復号器１１の概略的構成図である。４段ＭＱ−ＣＯＤＥＲ復号器１１は、ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１と、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２と、Ｃパス用４段ＭＱ−ＣＯＤＥＲ復号器４３を有している。
【００５４】
図１３はＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１の概略的構成図である。図１３中、４４はオージェンドＡ及び符号Ｃを更新的に記憶するＡ・Ｃレジスタ、４５は１段目のＭＱ−ＣＯＤＥＲ復号器、４６は２段目のＭＱ−ＣＯＤＥＲ復号器、４７は３段目のＭＱ−ＣＯＤＥＲ復号器、４８は４段目のＭＱ−ＣＯＤＥＲ復号器である。
【００５５】
４９はスキップするかのデータSkip１を選択制御データとし、ＭＱ−ＣＯＤＥＲ復号器４５の出力又はＭＱ−ＣＯＤＥＲ復号器４６の出力を選択するセレクタ、５０はスキップするかのデータSkip２を選択制御データとし、セレクタ４９出力又はＭＱ−ＣＯＤＥＲ復号器４７の出力を選択するセレクタである。
【００５６】
５１はスキップするかのデータSkip３を選択制御データとし、セレクタ５０の出力又はＭＱ−ＣＯＤＥＲ復号器４８の出力を選択するセレクタ、５２は復号処理をスキップするかのデータSkip MQ-decを選択制御データとし、セレクタ５１の出力又はＡ・Ｃレジスタ４４の出力を選択するセレクタである。
【００５７】
ＣＸ１ＥＮが無効であるときには、Skip１＝Ｔ（真）となり、２段目の復号は無効になる。以下、Skip２、Skip３も同様である。また、全てのコンテクストＣＸ０〜ＣＸ３が無効なときは、Skip MQ-dec＝Ｔとなり、オージェンドＡと符号Ｃの値は変化しない。
【００５８】
図１４は１段目のＭＱ−ＣＯＤＥＲ復号器４５の回路図である。図１４中、５４はＣＸ０を入力してＩ（ＣＸ０）（＝インデックス）を出力するインデックス・メモリ、５５はＩ（ＣＸ０）を入力してＱe０＝Ｑe（Ｉ（ＣＸ０））（＝劣性シンボル確率）を出力するＱeテーブル回路、５６はオージェンドＡ０からＱeテーブル回路４５の出力Ｑe０を減算する減算器、５７は符号Ｃ０からＱeテーブル回路５５の出力Ｑe０を減算する減算器である。
【００５９】
５８は「Ｃ０high＜Ｑe０であるか」のデータＨＬＣＦ０を選択制御データとし、Ｑeテーブル回路５５の出力Ｑe０又は減算器５６の出力ＡＭＳＢ０を選択するセレクタ、５９は「Ｃ０high＜Ｑe０であるか」のデータＨＬＣＦ０を選択制御データとし、減算器５７の出力又は符号Ｃ０を選択するセレクタ、６０はセレクタ５８の出力を入力してオージェンドＡ１を出力するＲＥＭＯＲＭＥ（符号化時再正規化）回路、６１はセレクタ５９の出力をＲＥＮＯＲＭＥ回路６０でシフトした量と同じビット数でシフトするシフタ、６２はシフタ６１の出力とバイト入力が発生した際には、バイトを加算して符号Ｃ１を出力する加算器である。
【００６０】
６３は「Ｃ０high＜Ｑe０であるか」のデータＨＬＣＦ０と「Ａ０＜（Ｑe０＜＜１）（＝Ｑeを左に１ビットシフトしたもの）であるか」のデータをＥxＯＲ処理し、符号化がＭＰＳ符号化であるかＬＰＳ符号化であるかを示すデータＩsＬＰＳ０を出力するＥxＯＲ回路である。６４はＣＸ０を入力してＭＰＳ（ＣＸ０）（＝優勢シンボル）を出力するＭＰＳメモリ、６５はＥxＯＲ回路６３の出力ＩsＬＰＳ０とＭＰＳメモリ６４の出力ＭＰＳ（ＣＸ０）をＥxＯＲ処理して信号結果のシンボルＤ０を出力するＥxＯＲ回路である。
【００６１】
６６はＥxＯＲ回路６３の出力ＩsＬＰＳ０とＳＷＩＴＣＨ（ＣＸ０）（＝シンボル逆転スイッチ）をＡＮＤ処理するＡＮＤ回路、６７はＭＰＳメモリ６４の出力ＭＰＳ（ＣＸ０）とＡＮＤ回路６６の出力をＥxＯＲ処理し、後段のビット処理に必要なＮxtＭＰＳ（ＣＸ０）を出力するＥxＯＲ回路、６８はインデックス・メモリ５４の出力Ｉ（ＣＸ０）と減算器５６の出力ＡＭＳＢ０を入力してネクスト・インデックスＮxtＩ（ＣＸ０）を出力するネクスト・インデックス回路である。
【００６２】
図１５は２段目のＭＱ−ＣＯＤＥＲ復号器４６の回路図である。図１５中、７０はＣＸ１を入力してＰreＩ（ＣＸ１）を出力するインデックス・メモリ、７１は「ＣＸ０＝ＣＸ１であるか」のデータを選択制御データとし、ＮxtＩ（ＣＸ０）又はインデックス・メモリ７０の出力ＰreＩ（ＣＸ１）を選択するセレクタ、７２はセレクタ７１の出力Ｉ（ＣＸ１）を入力してＱe１＝Ｑe（Ｉ（ＣＸ１））を出力するＱeテーブル回路である。
【００６３】
７３はオージェンドＡ１からＱeテーブル回路７２の出力Ｑe１を減算する減算器、７４は符号Ｃ１からＱeテーブル回路７２の出力Ｑe１を減算する減算器、７５は「Ｃ１high＜Ｑe１であるか」のデータＨＬＣＦ１を選択制御データとし、Ｑeテーブル回路７２の出力Ｑe１又は減算器７３の出力ＡＭＳＢ１を選択するセレクタ、７６は「Ｃ１high＜Ｑe１であるか」のデータＨＬＣＦ１を選択制御データとし、減算器７４の出力又は符号Ｃ１を選択するセレクタである。
【００６４】
７７はセレクタ７５の出力を入力してオージェンドＡ２を出力するＲＥＮＯＲＭＥ回路、７８はセレクタ７６の出力をＲＥＮＯＲＭＥ回路７７でシフトした量と同じビット数シフトするシフタ、７９はシフタ７８の出力とバイト入力が発生した際にはバイトを加算して符号Ｃ２を出力する加算器である。
【００６５】
８０は「Ｃ１high＜Ｑe１であるか」のデータＨＬＣＦ１と「Ａ１＜（Ｑe１＜＜１）であるか」のデータをＥxＯＲ処理してＩsＬＰＳ１を出力するＥxＯＲ回路、８１はＣＸ１を入力してＰreＭＰＳ（ＣＸ１）を出力するＭＰＳメモリ、８２は「ＣＸ０＝ＣＸ１であるか」のデータを選択制御データとし、ＭＰＳメモリ８１の出力ＰreＭＰＳ（ＣＸ１）又はＮxtＭＰＳ（ＣＸ０）を選択するセレクタである。
【００６６】
８３はＥxＯＲ回路８０の出力ＩsＬＰＳ１とセレクタ８２の出力ＭＰＳ（ＣＸ１）をＥxＯＲ処理して信号結果のシンボルＤ１を出力するＥxＯＲ回路、８４はＥxＯＲ回路８０の出力ＩsＬＰＳ１とＳＷＩＴＣＨ（ＣＸ１）をＡＮＤ処理するＡＮＤ回路、８５はセレクタ８２の出力ＭＰＳ（ＣＸ１）とＡＮＤ回路８４の出力をＥxＯＲ処理してＮxtＭＰＳ（ＣＸ１）を出力するＥxＯＲ回路、８６はセレクタ７１の出力Ｉ（ＣＸ１）と減算器７３の出力ＡＭＳＢ１と「Ｃ１high＜Ｑe１であるか」のデータＨＬＣＦ１を入力してネクスト・インデックスＮxtＩ（ＣＸ１）を出力するネクスト・インデックス回路である。
【００６７】
図１６は３段目のＭＱ−ＣＯＤＥＲ復号器４７の回路図である。図１６中、８８はＣＸ２を入力してＰreＩ（ＣＸ２）を出力するインデックス・メモリ、８９は「ＣＸ０＝ＣＸ２であるか」のデータを選択制御データとし、インデックス・メモリ８８の出力ＰreＩ（ＣＸ２）又はＮxtＩ（ＣＸ０）を選択するセレクタ、９０は「ＣＸ１＝ＣＸ２であるか」のデータを選択制御データとし、セレクタ８９の出力又はＮxtＩ（ＣＸ１）を選択するセレクタ、９１はＩ（ＣＸ２）を入力してＱe２＝Ｑe（Ｉ（ＣＸ２））を出力するＱeテーブル回路である。
【００６８】
９２はオージェンドＡ２からＱeテーブル回路９１の出力Ｑe２を減算する減算器、９３は符号Ｃ２からＱeテーブル回路９１の出力Ｑe２を減算する減算器、９４は「Ｃ２high＜Ｑe２であるか」のデータＨＬＣＦ２を選択制御データとし、Ｑeテーブル回路９１の出力Ｑe２又は減算器９２の出力ＡＭＳＢ２を選択するセレクタ、９５は「Ｃ２high＜Ｑe２であるか」のデータＨＬＣＦ２を選択制御データとし、減算器９３の出力又は符号Ｃ２を選択するセレクタである。
【００６９】
９６はセレクタ９４の出力を入力してオージェンドＡ３を出力するＲＥＮＯＲＭＥ回路、９７はセレクタ９５の出力をＲＥＮＯＲＭＥ回路でシフトした量と同じビット数シフトするシフタ、９８はシフタ９７の出力とバイト入力が発生した際には、バイトを加算して符号Ｃ３を出力する加算器である。
【００７０】
９９は「Ｃ２high＜Ｑe２であるか」のデータＨＬＣＦ２と「Ａ２＜（Ｑe２＜＜１）であるか」のデータをＥxＯＲ処理してＩsＬＰＳ２を出力するＥxＯＲ回路、１００はＣＸ２を入力してＰreＭＰＳ（ＣＸ２）を出力するＭＰＳメモリ、１０１は「ＣＸ０＝ＣＸ２であるか」のデータを選択制御データとし、ＭＰＳメモリ１００の出力ＰreＭＰＳ（ＣＸ２）又はＮxtＭＰＳ（ＣＸ０）を選択するセレクタ、１０２は「ＣＸ１＝ＣＸ２であるか」のデータを選択制御データとし、セレクタ１０１の出力又はＮxtＭＰＳ（ＣＸ１）を選択するセレクタである。
【００７１】
１０３はＥxＯＲ回路９９の出力ＩsＬＰＳ２とセレクタ１０２の出力ＭＰＳ（ＣＸ２）をＥxＯＲ処理して信号結果のシンボルＤ２を出力するＥxＯＲ回路、１０４はＥxＯＲ回路９９の出力ＩsＬＰＳ２とＳＷＩＴＣＨ（ＣＸ２）をＡＮＤ処理するＡＮＤ回路、１０５はセレクタ１０２の出力ＭＰＳ（ＣＸ２）とＡＮＤ回路１０４の出力をＥxＯＲ処理してＮxtＭＰＳ（ＣＸ２）を出力するＥxＯＲ回路、１０６はセレクタ９０の出力Ｉ（ＣＸ２）と減算器９２の出力ＡＭＳＢ２と「Ｃ２high＜Ｑe２であるか」のデータＨＬＣＦ２を入力してネクスト・インデックスＮxtＩ（ＣＸ２）を出力するネクスト・インデックス回路である。
【００７２】
図１７は４段目のＭＱ−ＣＯＤＥＲ復号器４８の回路図である。図１７中、１０８はＣＸ３を入力してＰreＩ（ＣＸ３）を出力するインデックス・メモリ、１０９は「ＣＸ０＝ＣＸ３であるか」のデータを選択制御データとし、インデックス・メモリ１０８の出力ＰreＩ（ＣＸ３）又はＮxtＩ（ＣＸ０）を選択するセレクタ、１１０は「ＣＸ１＝ＣＸ３であるか」のデータを選択制御データとし、セレクタ１０９の出力又はＮxtＩ（ＣＸ１）を選択するセレクタ、１１１は「ＣＸ２＝ＣＸ３であるか」のデータを選択制御データとし、セレクタ１１０の出力又はＮxtＩ（ＣＸ２）を選択するセレクタ、１１２はセレクタ１１１の出力Ｉ（ＣＸ３）を入力してＱe３＝Ｑe（Ｉ（ＣＸ３））を出力するＱeテーブル回路である。
【００７３】
１１３はオージェンドＡ３からＱeテーブル回路１１２の出力Ｑe３を減算する減算器、１１４は符号Ｃ３からＱeテーブル回路１１２の出力Ｑe３を減算する減算器、１１５は「Ｃ３high＜Ｑe３であるか」のデータＨＬＣＦ３を選択制御データとし、Ｑeテーブル回路１１２の出力Ｑe３又は減算器１１３の出力ＡＭＳＢ３を選択するセレクタ、１１６は「Ｃ３high＜Ｑe３であるか」のデータＨＬＣＦ３を選択制御データとし、減算器１１４の出力又は符号Ｃ３を選択するセレクタである。
【００７４】
１１７はセレクタ１１５の出力を入力してオージェンドＡ４を出力するＲＥＮＯＲＭＥ回路、１１８はセレクタ１１６の出力をＲＥＮＯＲＭＥ回路１１７でシフトした量と同じビット数シフトするシフタ、１１９はシフタ１１８の出力とバイト入力が発生した際にはバイトを加算して符号Ｃ４を出力する加算器である。
【００７５】
１２０は「Ｃ３high＜Ｑe３であるか」のデータＨＬＣＦ３と「Ａ３＜（Ｑe３＜＜１）であるか」のデータをＥxＯＲ処理してＩsＬＰＳ３を出力するＥxＯＲ回路、１２１はＣＸ３を入力してＰreＭＰＳ（ＣＸ３）を出力するＭＰＳメモリである。１２２は「ＣＸ０＝ＣＸ３であるか」のデータを選択制御データとし、ＭＰＳメモリ１２１の出力ＰreＭＰＳ（ＣＸ３）又はＮxtＭＰＳ（ＣＸ０）を選択するセレクタ、１２３は「ＣＸ１＝ＣＸ３であるか」のデータを選択制御データとし、セレクタ１２２の出力又はＮxtＭＰＳ（ＣＸ１）を選択するセレクタ、１２４は「ＣＸ２＝ＣＸ３であるか」のデータを選択制御データとし、セレクタ１２３の出力又はＮxtＭＰＳ（ＣＸ２）を選択するセレクタである。
【００７６】
１２５はＥxＯＲ回路１２０の出力ＩsＬＰＳ３とセレクタ１２４の出力ＭＰＳ（ＣＸ３）をＥxＯＲ処理して信号結果のシンボルＤ３を出力するＥxＯＲ回路、１２６はＥxＯＲ回路１２０の出力ＩsＬＰＳ３とＳＷＩＴＣＨ（ＣＸ３）をＡＮＤ処理するＡＮＤ回路、１２７はセレクタ１２４の出力ＭＰＳ（ＣＸ３）とＡＮＤ回路１２６の出力をＥxＯＲ処理してＮxtＭＰＳ（ＣＸ３）を出力するＥxＯＲ回路、１２８はセレクタ１１１の出力Ｉ（ＣＸ３）と減算器１１３の出力ＡＭＳＢ３と「Ｃ３high＜Ｑe３であるか」のデータＨＬＣＦ３を入力してネクスト・インデックスＮxtＩ（ＣＸ３）を出力するネクスト・インデックス回路である。
【００７７】
なお、４段ＭＱ−ＣＯＤＥＲ復号器１１の代わりに、１段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、図１４に示す１段目のＭＱ−ＣＯＤＥＲ復号器のみを設けるようにする。２段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、図１４に示す１段目のＭＱ−ＣＯＤＥＲ復号器と、図１５に示す２段目のＭＱ−ＣＯＤＥＲ復号器を設けるようにする。３段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、図１４に示す１段目のＭＱ−ＣＯＤＥＲ復号器と、図１５に示す２段目のＭＱ−ＣＯＤＥＲ復号器と、図１６に示す３段目のＭＱ−ＣＯＤＥＲ復号器を設けるようにする。なお、同様に５段以上のＭＱ−ＣＯＤＥＲ復号器を設けることもできる。
【００７８】
図１８はインデックス・メモリ５４、７０、８８、１０８の第１構成例を示す回路図である。本実施形態では、イネデックス・メモリ５４、７０、８８、１０８は一体として構成される。図１８中、１３０−ｉ（但し、ｉ＝０、１、・・・、１８）、１３１−ｉ、１３２−ｉ、１３３−ｉはセレクタ、１３４−ｉはインデックス・レジスタ、１３５〜１３８はセレクタである。
【００７９】
セレクタ１３０-ｉは、「ＣＸ０＝ｉであるか」のデータを選択制御データとし、インデックス・レジスタ１３４−ｉの出力又はＮxtＩ（ＣＸ０）を選択するものである。セレクタ１３１-ｉは、「ＣＸ１＝ｉであるか」のデータを選択制御データとし、セレクタ１３０−ｉの出力又はＮxtＩ（ＣＸ１）を選択するものである。
【００８０】
セレクタ１３２-ｉは、「ＣＸ２＝ｉであるか」のデータを選択制御データとし、セレクタ１３１−ｉの出力又はＮxtＩ（ＣＸ２）を選択するものである。セレクタ１３３-ｉは、「ＣＸ３＝ｉであるか」のデータを選択制御データとし、セレクタ１３２−ｉの出力又はＮxtＩ（ＣＸ３）を選択するものである。インデックス・レジスタ１３４−ｉはセレクタ１３３−ｉの出力を記憶するものである。
【００８１】
セレクタ１３５は、ＣＸ０を選択制御データとし、ＣＸ０＝ｉの場合には、インデックス・レジスタ１３４−ｉの出力を選択するものである。セレクタ１３６は、ＣＸ１を選択制御データとし、ＣＸ１＝ｉの場合には、インデックス・レジスタ１３４−ｉの出力を選択するものである。
【００８２】
セレクタ１３７は、ＣＸ２を選択制御データとし、ＣＸ２＝ｉの場合には、インデックス・レジスタ１３４−ｉの出力を選択するものである。セレクタ１３８は、ＣＸ３を選択制御データとし、ＣＸ３＝ｉの場合には、インデックス・レジスタ１３４−ｉの出力を選択するものである。
【００８３】
なお、４段ＭＱ−ＣＯＤＥＲ復号器１１の代わりに３段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、セレクタ１３３−０〜１３３−１８、１３８を設けないようにする。２段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１３２−０〜１３２−１８、１３７を設けないようにする。１段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１３１−０〜１３１−１８、１３６を設けないようにする。
【００８４】
図１９はインデックス・メモリ５４、７０、８８、１０８の第２構成例を示す回路図である。第２構成例は、セレクタ１３０−１８、１３１−１８、１３２−１８、１３３−１８及びインデックス・メモリ１３４−１８（ＵＮＩＦＯＲＭに対するインデックス）の代わりに、固定値「４６」を出力する回路１４０を設け、その他については、第１構成例と同様に構成したものである。
【００８５】
なお、４段ＭＱ−ＣＯＤＥＲ復号器１１の代わりに３段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、セレクタ１３３−０〜１３３−１７、１３８を設けないようにする。２段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１３２−０〜１３２−１７、１３７を設けないようにする。１段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１３１−０〜１３１−１７、１３６を設けないようにする。
【００８６】
図２０はＭＰＳメモリ６４、８１、１００、１２１の第１構成例を示す回路図である。本実施形態では、ＭＰＳメモリ６４、８１、１００、１２１は一体として構成される。図２０中、１４２−ｉ、１４３−ｉ、１４４−ｉ、１４５−ｉはセレクタ、１４６−ｉはＭＰＳレジスタ、１４７〜１５０はセレクタである。
【００８７】
セレクタ１４２-ｉは、「ＣＸ０＝ｉであるか」のデータを選択制御データとし、ＭＰＳレジスタ１４６−ｉの出力又はＮxtＭＰＳ（ＣＸ０）を選択するものである。セレクタ１４３-ｉは、「ＣＸ１＝ｉであるか」のデータを選択制御データとし、セレクタ１４２−ｉの出力又はＮxtＭＰＳ（ＣＸ１）を選択するものである。
【００８８】
セレクタ１４４-ｉは、「ＣＸ２＝ｉであるか」のデータを選択制御データとし、セレクタ１４３−ｉの出力又はＮxtＭＰＳ（ＣＸ２）を選択するものである。セレクタ１４５-ｉは、「ＣＸ３＝ｉであるか」のデータを選択制御データとし、セレクタ１４４−ｉの出力又はＮxtＭＰＳ（ＣＸ３）を選択するものである。ＭＰＳレジスタ１４６−ｉはセレクタ１４５−ｉの出力を記憶するものである。
【００８９】
セレクタ１４７は、ＣＸ０を選択制御データとし、ＣＸ０＝ｉの場合には、ＭＰＳレジスタ１４６-ｉの出力を選択するものである。セレクタ１４８は、ＣＸ１を選択制御データとし、ＣＸ１＝ｉの場合には、ＭＰＳレジスタ１４６-ｉの出力を選択するものである。セレクタ１４９は、ＣＸ２を選択制御データとし、ＣＸ２＝ｉの場合には、ＭＰＳレジスタ１４６-ｉの出力を選択するものである。セレクタ１５０は、ＣＸ３を選択制御データとし、ＣＸ３＝ｉの場合には、ＭＰＳレジスタ１４６-ｉの出力を選択するものである。
【００９０】
なお、４段ＭＱ−ＣＯＤＥＲ復号器１１の代わりに３段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、セレクタ１４５−０〜１４５−１８、１５０を設けないようにする。２段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１４４−０〜１４４−１８、１４９を設けないようにする。１段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１４３−０〜１４３−１８、１４８を設けないようにする。
【００９１】
図２１はＭＰＳメモリ６４、８１、１００、１２１の第２構成例を示す回路図である。第２構成例は、セレクタ１４２−１８、１４３−１８、１４４−１８、１４５−１８及びＭＰＳレジスタ１４６−１８（ＵＮＩＦＯＲＭに対するＭＰＳ）の代わりに、固定値「０」を出力する回路１５２を設け、その他については、第１構成例と同様に構成したものである。
【００９２】
なお、４段ＭＱ−ＣＯＤＥＲ復号器１１の代わりに３段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、セレクタ１４５−０〜１４５−１７、１５０を設けないようにする。２段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１４４−０〜１４４−１７、１４９を設けないようにする。１段ＭＱ−ＣＯＤＥＲ復号器を設けるようにする場合には、更に、セレクタ１４３−０〜１４３−１７、１４８を設けないようにする。
【００９３】
図２２はネクスト・インデックス回路６８、８６、１０６、１２８の回路図である。図２２中、ｍ＝０とする場合には、ネクスト・インデックス回路６８を示し、ｍ＝１とする場合には、ネクスト・インデックス回路８６を示し、ｍ＝２とする場合には、ネクスト・インデックス回路１０６を示し、ｍ＝３とする場合には、ネクスト・インデックス回路１２８を示す。
【００９４】
１５４はセレクタであり、ＩsＬＰＳｍを選択制御データとし、ＩsＬＰＳｍ＝“０”の場合には、ＮＭＰＳ（Ｉ（Ｃｘｍ））（＝ＭＰＳ符号化後の更新インデックス）を選択し、ＩsＬＰＳｍ＝“１”の場合には、ＮＬＰＳ（Ｉ（ＣＸｍ））（＝ＬＰＳ符号化後の更新インデックス）を選択するものである。１５５はＡＭＳＢｍ［１５］（ＡＭＳＢｍの１６ビット目）と、ＨＬＣＦｍのＮＯＴ論理をとったものとをＡＮＤ処理するＡＮＤ回路である。１５６はセレクタであり、ＡＮＤ回路１５５の出力を選択制御データとし、ＡＮＤ回路１５５の出力が“０”の場合には、セレクタ１５４の出力をそのまま出力し、ＡＮＤ回路１５５の出力が“１”の場合には、Ｉ（ＣＸｍ）を出力する。
【００９５】
図２３はＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２の構成図である。１画素のデータでシンボルの復号と正負符号の復号が発生する可能性があるため、１画素あたり２段のＭＱ−ＣＯＤＥＲ復号器を用意する。図２３中、１５８はオージェンドＡ及び符号Ｃを更新的に記憶するＡ・Ｃレジスタ、１５９は１段目のＭＱ−ＣＯＤＥＲ復号器（図１４に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）、１６０は２段目のＭＱ−ＣＯＤＥＲ復号器（図１５に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）、１６１は３段目のＭＱ−ＣＯＤＥＲ復号器（図１６に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）、１６２は４段目のＭＱ−ＣＯＤＥＲ復号器（図１７に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）である。
【００９６】
１６３はスキップするかのデータSkip１を選択制御データとし、ＭＱ−ＣＯＤＥＲ復号器１５９の出力又はＭＱ−ＣＯＤＥＲ復号器１６０の出力を選択するセレクタ、１６４はスキップするかのデータSkip２を選択制御データとし、セレクタ１６３の出力又はＭＱ−ＣＯＤＥＲ復号器１６１の出力を選択するセレクタ、１６５はスキップするかのデータSkip３を選択制御データとし、セレクタ１６４の出力又はＭＱ−ＣＯＤＥＲ復号器１６２の出力を選択するセレクタ、１６６は復号処理をスキップするかのデータSkip MQ-decを選択制御データとし、セレクタ１６５の出力又はＡ・Ｃレジスタ１５８の出力を選択するセレクタである。
【００９７】
１６７はシンボル用のコンテクスト変換テーブル、１６８は正負符号コンテクストモデル・ＸＯＲビット演算器（図７に示す正負符号コンテクストモデル・ＸＯＲビット演算器３０と同一構成のもの）であり、１６９はＭＱ−ＣＯＤＥＲ復号器１５９から出力されるＤ０とfix１のＮＯＴ論理をとったものとをＡＮＤ処理するＡＮＤ回路、１７０はＡＮＤ回路１６９の出力を選択制御データとするセレクタ、１７１はfix１を選択制御データとするセレクタである。ＣＸ１ＥＮが無効である場合には、Skip２、３＝Ｔとなり、３、４段目の復号は無効になる。また、１段目の復号結果、シンボルＤ０が０になったときには２段目である正負符号は復号されないため、Skip＝１となり、２段目の結果が無視される。
【００９８】
また、dataＣＸ１のデータがＳＰpの場合（つまり、dataＣＸ１＝０の場合）は、１段目の復号結果シンボルが“０”になったときには、このデータはＣパスのデータであることが確定する。したがって、Skip２、３＝Ｔとし、３、４段目の復号処理を無視する必要がある。また、ＭＱ−ＣＯＤＥＲ復号器が２段以下の場合には、コンテクスト変換テーブル１６７の機能は不要になる。この機能は、コンテクスト・レジスタ部２０にあるためである。
【００９９】
図２４はＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２が備えるＳＰパス用のコンテクスト変換テーブル１６７の内容を示す図である。コンテクスト変換テーブル１６７において、１７３はＬＬ及びＬＨサブバンド用コンテクスト変換テーブル、１７４はＨＬサブバンド用コンテクスト変換テーブル、１７５はＨＨサブバンド用コンテクスト変換テーブルであり、pＣＸと記載されている欄の値が予想コンテクストの値である。このコンテクスト変換テーブル１６７の内容は、ＪＰＥＧ２０００に従って作成されたものである。
【０１００】
なお、ＬＬ及びＬＨサブバンド用コンテクスト変換テーブル１７３のpＣＸ欄に「４」と記載され、ＨＬ用サブバンド用コンテクスト変換テーブル１７４のpＣＸ欄に「８」と記載されているが、これらは便宜上記載したものであり、実際のコンテクスト変換テーブルには不要である。
【０１０１】
ここに、注目ビットの上のビットを復号した結果、シンボルが“０”であった場合には、pＣＸの値をそのままコンテクストとして利用し、逆に、注目ビットの上のビットを復号した結果、シンボルが“１”であった場合にはＣＸの欄の値を利用する。したがって、コンテクストを再度計算するような複雑な演算は必要としない。正負符号のコンテクスト変換回路も、シンボル用のコンテクスト変換回路と同様な単純なコンテクスト変換回路によって実現が可能である。
【０１０２】
図２５はコンテクスト変換テーブル１６７、ＡＮＤ回路１６９及びセレクタ１７０からなるシンボル用のコンテクスト変換回路の動作を説明するための回路図である。セレクタ１７０は、注目ビットの上のビットのシンボルが“０”であった場合、又は、注目ビットの上のビットのシンボルが“１”で、かつ、fix１＝“１”の場合にも、入力されるコンテクストを正しいコンテクストとして、そのまま出力する。これに対して、注目ビットの上のビットのシンボルが“１”で、かつ、fix１＝“０”の場合には、ビットモデリング演算器１０での注目ビットの上のビットのシンボルの復号結果を“０”と仮定したことは間違いであったとして、セレクタ１７０は、入力される予想コンテクストをコンテクスト変換テーブル１６７で変換した値を正しいコンテクストとして出力する。
【０１０３】
図２６は正負符号コンテクストモデル・ＸＯＲビット演算器１６８とセレクタ１７１からなる正負符号用のコンテクスト変換回路の動作を説明するための図である。セレクタ１７１は、fix１＝“１”の場合、即ち、確定したコンテクストとＸＯＲビットを持っている場合は、そのまま出力する。これに対して、fix１＝“０”の場合、即ち、中間値SinＨ、SinＶを持っている場合には、これらをＤ１と合わせて、正負符号コンテクストモデル・ＸＯＲビット演算器１６８で演算を行い、セレクタ１７１は、この結果を出力する。
【０１０４】
図２７はＣパス用４段ＭＱ−ＣＯＤＥＲ復号器４３の構成図である。図２７中、１７７はオージェンドＡ及び符号Ｃを更新的に記憶するＡ・Ｃレジスタ、１７８は１段目のＭＱ−ＣＯＤＥＲ復号器（図１４に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）、１７９は２段目のＭＱ−ＣＯＤＥＲ復号器（図１５に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）、１８０は３段目のＭＱ−ＣＯＤＥＲ復号器（図１６に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）、１８１は４段目のＭＱ−ＣＯＤＥＲ復号器（図１７に示すＭＱ−ＣＯＤＥＲ復号器と同一構成のもの）である。
【０１０５】
１８２はスキップするかのデータSkip１を選択制御データとし、ＭＱ−ＣＯＤＥＲ復号器１７８の出力又はＭＱ−ＣＯＤＥＲ復号器１７９の出力を選択するセレクタ、１８３はスキップするかのデータSkip２を選択制御データとし、セレクタ１８２の出力又はＭＱ−ＣＯＤＥＲ復号器１８０の出力を選択するセレクタ、１８４はスキップするかのデータSkip３を選択制御データとし、セレクタ１８３の出力又はＭＱ−ＣＯＤＥＲ復号器１８１の出力を選択するセレクタ、１８５は復号処理をスキップするかのデータSkip MQ-decを選択制御データとし、セレクタ１８４の出力又はＡ・Ｃレジスタ１７７の出力を選択するセレクタである。
【０１０６】
１８６はシンボル用のコンテクスト変換テーブルであり、図２４に示すコンテクスト変換テーブル１６７と同様のものである。１８７は正負符号コンテクストモデル・ＸＯＲビット演算器（図７に示す正負符号コンテクストモデル・ＸＯＲビット演算器３０と同一構成のもの）、１８８はＭＱ−ＣＯＤＥＲ復号器１７８から出力されるＤ０とfix１のＮＯＴ論理をとったものとをＡＮＤ処理するＡＮＤ回路、１８９はＡＮＤ回路１８８の出力を選択制御データとするセレクタ、１９０はfix１を選択制御データとするセレクタである。
【０１０７】
なお、Ｃパスの演算は、ＳＰパスの演算に近い。異なる点は、ＳＰpに対する処理がないことと、後述するようなランレンクスに対する処理が入ることである。ランレンクスの処理のために、コンテクスト・レジスタ部２０にランレンクス用のコンテクストを入力する装置１９１、１９２を加える必要がある。
【０１０８】
図２８は本実施形態における最初のＣパスの処理時のデータの流れを示す図である。図２８中、１９４は接続回路部である。最初のＣパスでは、全てのデータがＣパスとして処理され、処理と同時に最終的な復号結果であるコードブロックのデータがコードブロックデータ記憶装置１９５に書き込まれる。
【０１０９】
図２９はＳＰパスの処理時のデータの流れを示す図である。ＳＰパスの処理時は、同時にＭＲパスのコンテクストを演算し、演算結果をＭＲパス用コンテクスト記憶装置１９に記憶する。同じビットプレーンにおけるＣパスの位置をＣパスの位置記憶装置１９７に記憶して行く。ＳＰパスの復号結果であるコードブロックデータもコードブロックデータ記憶装置１９５に書き込む。このように、ＳＰパスの処理時に同時にＭＲパスのコンテクストを確定することにより、ＳＰパスの処理後、ＭＲパスのシンボル演算を高速に行うことができる。
【０１１０】
図３０はＣＸreg（０）〜ＣＸreg（３）及びコンテクスト変換回路４０のＳＰパス処理時の接続関係を示す図である。この場合には、注目ビットの上のビットのＭＱ−ＣＯＤＥＲ復号演算の結果を反映し、コンテクスト・レジスタＣＸreg（０）、ＣＸreg（１）に入っているデータを変換する。そして、コンテクスト・レジスタＣＸreg（２）、ＣＸreg（３）のデータをコンテクスト・レジスタＣＸreg（０）、ＣＸreg（１）に移す。
【０１１１】
この場合、２段目のＭＱ−ＣＯＤＥＲ復号器１６０には１段目のＭＱ−ＣＯＤＥＲ復号器１５９の演算結果が必要である。それ以外に、２段目のＭＱ−ＣＯＤＥＲ復号器１６０の演算結果を反映して、２段目のコンテクストをコンテクスト変換回路４０で正しいコンテクストに変換し、コンテクスト・レジスタＣＸＲeg (２）のデータをコンテクスト・レジスタＣＸＲeg（０）に入力する。なお、図３１はＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２がＳＰパスの処理を２ビットずつ連続して行う場合の動作例を示す図である。
【０１１２】
図３２はＳＰパス処理時のエントロピ復号演算例の流れを示すタイムチャートである。ＳＰパス時には、まず、入力データに対して１ストライプ同時にコンテクストを演算し、各ビットの属するパスと、シンボルに対するコンテクスト（予想コンテクストを含む）と、正負符号に対するコンテクスト（もしくはSinH, SinV）をＳＰパス用コンテクスト演算器１５を使用して演算する。ただし、処理中のストライプの演算結果は未定なので、信号結果は全て０であると仮定してパス・コンテクストを求める。
【０１１３】
ＳＰパス処理時には、ＳＰパス用コンテクスト演算器２３−１からは、パスのタイプ／fix／シンボル・コンテクスト／正負符号コンテクスト／ＸＯＲビットが出力され、ＳＰパス用コンテクスト演算器２３−２〜２３−４からは、パスのタイプ／fix／シンボル・コンテクスト／正負符号コンテクスト／ＸＯＲビット、又は、パスのタイプ／indef／シンボル予想コンテクスト／SinH／SinVが出力される。
【０１１４】
ここで、図５に示すフローに従ってパスとコンテクスト（予想コンテクストを含む）を出力するが、この場合、通常のＳＰパス、ＭＲパス、Ｃパス以外にＳＰp（SPパスに属するかＣパスに属するか未定）というものが存在すると考えられる。ＳＰpの場合、予想コンテクストは必ず“０”になり、通常のＳＰパスの場合、コンテクスト（予想コンテクストを含む）は必ず“０”以外になる。図３２の例では、一番下のビットがＳＰpとなっている。ＳＰpの場合には、ＳＰパスと仮定して演算を続け、上のビットのシンボルの復号結果が“１”であれば（図３２ではＤ１＝１）、ＳＰパスであり、そのまま演算を行い、上のビットのシンボルが“０”であれば（図３２ではＤ１＝０）、Ｃパスであり、ＳＰパスの処理中には処理を行わない。
【０１１５】
図３３はＭＲパスの処理時のデータの流れを示す図である。図３３中、２０３はＭＲパス用シンボル記憶装置である。ＭＲパス処理時は、ＳＰパス処理時に算出されたコンテクストデータをＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１で復号する。復号結果は、ＭＲシンボル記憶装置２０３に書き込む。処理を行っているデータＣＸのコードブロックにおける位置がバラバラであるために、ＳＰパス、Ｃパスのように処理を行いながらコードブロックデータ記憶装置１９５に復号データを書き込むことができない。したがって、次のＣパスの処理時、またはＳＰパスの処理時にコードブロックデータ記憶装置１９５に配置する必要がある。
【０１１６】
図３４は最初のＣパス以外のＣパス（通常のＣパス）の処理時のデータの流れを示す図である。同じビットプレーンのＳＰパス処理時に記憶されたＣパスの位置のデータを使用しながら、Ｃパスのデータを復号する。このとき、Ｃパスの復号結果であるシンボルをコードブロックデータ記憶装置１９５に配置するのと同じストライプにＭＲパスの復号結果を配置する。
【０１１７】
図３５はＭＲパスのデータ配置があるＳＰパス処理時のデータの流れを示す図である。Ｃパスのデータが無い時には、処理時間の短縮のため、Ｃパスをとばすことが可能である。この場合には、ＭＲパスの復号結果の配置は次のコードブロックのＳＰパスの処理時に行うことができる。図３６はＭＲパスのシンボルを配置する場合のデータの流れを示す図である。ＭＲパスの処理がそのコードブロックにおける最後の処理となったときには、シンボルを配置するための処理が必要である。
【０１１８】
なお、表１はＭＲパス処理時のコンテクスト・レジスタＣＸreg（０）〜ＣＸreg（３）へのデータの配置例を示している。この場合、fixとSinＣＸの領域は使用しない。コンテクストは確定しているので、コンテクスト変換テーブルは必要ない。つまり、ＳＰパス、Ｃパスと４段ＭＱ−ＣＯＤＥＲ復号器を共有するときには、fix＝１とし、コンテクスト変換テーブルを無視する。
【０１１９】
【表１】
2006019814.tif 000003
【０１２０】
また、表２〜表７はランレンクス処理時のコンテクスト・レジスタＣＸreg（０）〜ＣＸreg（３）へのデータの配置例を示している。表２は１回目のデータの配置例を示しているが、「＊１」はrunlengthに対するＣＸ（１７という数字は便宜上の値）、「＊２」はUNIFORMに対するＣＸ（１８という数字は便宜上の値）である。SinＣＸ１は必ず９になる。なぜならば、周囲に有意なビットが存在しないからである。
【０１２１】
【表２】
2006019814.tif 000004
【０１２２】
入力したＣＸ＝１７（runlength）に対する復号結果が０の場合、表３に示すように、以下の復号結果を無視し（skip１〜skip３＝Ｔ）、このストライプの処理を終了する。
【０１２３】
【表３】
2006019814.tif 000005
【０１２４】
runlengthの復号結果が１の場合には、UNIFORMの復号結果（ＣＸ＝１８の２つ）によって処理が異なる。UNIFORM＝３の場合には、最初の処理の４段目に入力された正負符号に対するＣＸ（＝９）のみを処理し、このストライプの処理を終了する。
【０１２５】
【表４】
2006019814.tif 000006
【０１２６】
UNIFORM＝２の場合には、最初の処理の４段目に入力された正負符号に対するＣＸ（＝９）を処理し、さらに次のサイクルで８近傍ＣＸと正負符号ＣＸを通常の処理（runlength以外の処理）と同様に処理を行う。正負符号ＣＸは上のビットが有効になったので１０、ＸＯＲビットは上のビットの結果（１回目のＤ３）と同じ値になる。
【０１２７】
【表５】
2006019814.tif 000007
【０１２８】
UNIFORM＝１のときは、最初の処理の４段目に入力された正負符号に対するＣＸ（＝９）を処理し、さらに次のサイクルで２ビット分の８近傍ＣＸと正負符号ＣＸを通常の処理と同様に処理を行う。ＣＸ１の結果はコンテクスト変換テーブルよって変換する必要がある（fix1=0となっているので、新しい機能を付加しなくとも自動的に変換される）。
【０１２９】
【表６】
2006019814.tif 000008
【０１３０】
UNIFORM＝０のときは、最初の処理の４段目に入力された正負符号に対するＣＸ（＝９）を処理し、さらに次のサイクルで２ビット分の８近傍ＣＸと正負符号ＣＸを通常の処理と同様に処理を行う。ＣＸ１、ＣＸ２の結果はコンテクスト変換テーブルよって変換する必要がある。ＣＸ２はシフト時に変換することになる。（これも、いままでに書いたシフト機能に含まれる）。
【０１３１】
【表７】
2006019814.tif 000009
【０１３２】
（第２のコンテクスト演算手法）
図３７は本発明の第１実施形態で実行できる第２のコンテクスト演算手法を説明するための図である。第２のコンテクスト演算例は、注目ストライプの前のストライプの各ビットのシンボルが出力する前に、注目ストライプの前のストライプの各ビットのシンボルの値を“０”（又は“１”）と仮定してＳＰパス及びＣパスのコンテクスト演算を行うというものである。
【０１３３】
通常、注目ストライプの前のストライプの各ビットのシンボルが決定しないと、注目ストライプのコンテクストを演算することはできない。例えば、ＭＱ−ＣＯＤＥＲ復号演算に１サイクル以上の処理時間が掛かるときには、従来の演算手法では、その間にコンテクスト演算回路は処理を行わない。しかしながら、シンボルが決定してからコンテクストを演算すると、コンテクストを演算している間、ＭＱ−ＣＯＤＥＲ復号器は、データが出力するのを待つ時間が生じ処理が遅くなる。
【０１３４】
そこで、シンボルが出力する前に、例えば、ストライプ単位でコンテクストを計算するコンテクスト演算器であれば、前のストライプのデータを全て“０”（又は”１”）に仮定してコンテクストを演算する。この仮定が正しくなければ、再度コンテクストの演算を行う。仮定が正しくないときは、従来と変わらない処理時間がかかるが、正しければ、そのコンテクストをそのままＭＱ−ＣＯＤＥＲの復号処理に採用することができ、ＭＱ−ＣＯＤＥＲ復号器はコンテクスト演算を待たされること無く、連続してＭＱ−ＣＯＤＥＲ復号演算を行うことが可能になり、処理時間を短縮することができる。
【０１３５】
（第３のコンテクスト演算手法）
図３８は本発明の第１実施形態で実行できる第３のコンテクスト演算手法を説明するための図である。第３のコンテクスト演算例は、注目ビットの前のストライプの一番上及び上から２番目のビットについては、出力されるシンボルを使用し、注目ストライプの前のストライプの上から３番目及び４番目のビットについては、シンボルが出力される前に、０と仮定し、ＳＰパス及びＣパスのコンテクスト演算を行うというものであり、ＭＱ−ＣＯＤＥＲ復号器が１ストライプ分のデータを複数サイクルかけて演算を行う場合には有効な手法である。
【０１３６】
図３７に示す第２のコンテクスト演算手法では、仮定が正しい確率が低いが、ＭＱ−ＣＯＤＥＲ復号器が１ストライプ分のデータを複数サイクルかけて演算を行う場合に、第３のコンテクスト演算手法を用いる場合には、仮定が正しい確率が上がる。図３７に示す第２のコンテクスト演算手法の場合と同様、仮定が正しくなかったときは、従来と演算速度は変わらないが、仮定が正しかったときには、再度コンテクスト演算を行う必要が無くなり、処理時間を短縮できる。更に、図３７に示すコンテクスト演算手法の場合に比べ、処理する時点で確定しているシンボルをコンテクストを演算に反映させるため、より仮定が正しい可能性が高くなり、処理時間の短縮量が多くなる。
【０１３７】
以上のように、本発明の第１実施形態によれば、ＳＰパス処理時及びＣパス処理時に、注目ビットの上のビットのシンボルが確定する前に、注目ビットの上のビットのシンボルを“０”と仮定して予測したコンテクストを演算するビットモデリング演算器１０を備えているので、「前のシンボルが確定してから、注目ビットのコンテクストを求め、その後に注目ビットのシンボルを求める」という手順を踏む必要が無く、「前のシンボルが確定したら、注目ビットのシンボルを求める」ことが可能となり、エントロピ復号演算を高速化することができる。
【０１３８】
また、コンテクスト変換テーブル１６７、１８６を用いるとしているので、回路規模の増大を確率生成部を設ける場合よりも小さく抑えることができる。なお、ＳＰパス又はＣパスのいずれか一方についてのみ、注目ビットの上のビットのシンボルを“０”と仮定して予測したコンテクストを演算するようにしても良い。
【０１３９】
また、ＳＰパス処理時及びＣパス処理時に、１ストライプの４ビットについて同時にコンテクストを演算することができるビットモデリング演算器を設けると共に、ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２、Ｃパス用４段ＭＱ−ＣＯＤＥＲ復号器４３を設けているので、エントロピ復号演算の更なる高速化を図ることができる。
【０１４０】
また、第２コンテクスト演算器１７を設け、ＳＰパスの処理中に同時にＭＲパスのコンテクストを確定することができるようにされているので、ＳＰパスの処理後、ＭＲパスのシンボル演算を高速に演算することができる。
【０１４１】
また、ＭＲパスの演算結果であるシンボルを次以降のＣパスまたはＳＰパスの処理中にコードブロックデータ記憶装置１９５に書き込むようにしているので、ＭＲパスの出力のための時間を必要としない。
【０１４２】
また、ＳＰパス用コンテクスト演算器１５とＣパス用コンテクスト演算器１６においては、同じ処理を行う回路の共有化を図ることができ、このようにする場合には、演算性能を保ったまま、回路規模の縮小化を図ることができる。
【０１４３】
また、ＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器４１、ＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器４２、Ｃパス用４段ＭＱ−ＣＯＤＥＲ復号器４３においては、同じ処理を行う回路の共有化を図ることができ、このようにする場合には、演算性能を保ったまま、回路規模の縮小化を図ることができる。
【０１４４】
（第２実施形態）
図３９は本発明の第２実施形態を説明するための図である。本発明の第２実施形態は、図２に示す第１コンテクスト演算器１４と同様の４個のコンテクスト演算器２１０〜２１３を設け、各コンテクスト演算器２１０〜２１３に本発明の第１実施形態における第３のコンテクスト演算手法を実行させ（但し、仮定シンボルの値は、各コンテクスト演算器２１０〜２１３で異なるものとし）、正しいコンテクストのみを採用するというものである。
【０１４５】
ここで、未定部分として考えられるシンボルの全て（もしくは、１つ以上の一部）に対してコンテクスト演算をあらかじめ行い、シンボルが確定した時点で、正しいシンボルで演算したコンテクストのみをデータとして採用する方法が考えられる。前のストライプにおける未確定シンボルから算出しうるコンテクスト・予想コンテクストのセットを全て（もしくは一部）算出する。例えば、前のストライプにおける未確定シンボルが２つあったとするのであれば、最多で４つのコンテクスト・予想コンテクストのセットを出力する必要がある。
【０１４６】
公知の似た技術として、特許文献１に記載の技術がある。これは、まだ出力されていないデータ（本実施形態におけるシンボルに相当）として考えられるもの全てのコンテクストを算出しておき、前のデータが確定した時点で必要なコンテクストのみ使用するというものである。この手法で、４つのコンテクストを同時に出力するときに、注目している４ビットの前の１ビットが確定していないのであれば、最初の注目ビットに対して２通りのコンテクストが考えられ、次のビットに対して４通り、３ビット目に対して８通り、4ビット目に対して１６通りのコンテクストが考えられる。さらに、前２ビットが確定していないのであれば、最初の注目ビットに対して4通り、２ビット目に対して８通り、３ビット目に対して１６通り、4ビット目に対して３２通りのコンテクストが考えられる。これらを全て演算し、出力することは、回路規模の大幅な増大につながる。
【０１４７】
本発明の第２実施形態によれば、１ストライプ上の４つのコンテクストを同時に出力するときに、前のストライプの１ビットが確定していないのであれば、各ビットのコンテクストとして考えられるのは２通りずつ、前のストライプの２ビットが確定していないのであれば、各ビットのコンテクストとして考えられるのは４通りずつであり、従来手法より回路規模を小規模に抑えることか可能である。
【０１４８】
なお、特許文献２には、予想状態（index）を記憶するのでなく、確率（Qe）を記憶し、更に、特許文献１の技術を使用して算術符号化演算器を止めることのない演算回路が記載されている。本発明では、算術復号回路を更に多段化することにより高速化している。更に、コンテクスト変換テーブルを利用し、確率推定記憶装置を複数持つような、余計なメモリは必要としない。
【０１４９】
また、特許文献３には、複数のビットプレーンにまたがるようにコンテクスト演算する技術が記載されている。本発明では、コンテクストが確定するのは、コンテクスト変換テーブルを通った後、算術復号化の直前である。このため、より少ないメモリ構成で演算が可能である。
【０１５０】
ここで、本発明のエントロピ復号器を整理すると、本発明のエントロピ復号器では、少なくとも、以下のエントロピ復号器が含まれる。
【０１５１】
（付記１）ＳＰパス処理時に、注目ビットの上のビットのシンボルが確定する前に、前記注目ビットの上のビットのシンボルを所定値（例えば、“０”）と仮定して予測したコンテクストを演算するビットモデリング演算器と、前記仮定が外れた場合には、所定のコンテクスト変換テーブルを用いて、前記予測したコンテクストを正しいコンテクストに変換する算術復号器を有することを特徴とするエントロピ復号器。
【０１５２】
（付記２）Ｃパス処理時に、注目ビットの上のビットのシンボルが確定する前に、前記注目ビットの上のビットのシンボルを所定値（例えば、“０”）と仮定して予測したコンテクストを演算するビットモデリング演算器と、前記仮定が外れた場合には、所定のコンテクスト変換テーブルを用いて前記予測したコンテクストを正しいコンテクストに変換する算術復号器を有することを特徴とするエントロピ復号器。
【０１５３】
（付記３）前記ビットモデリング演算器は、複数ビットのコンテクスト演算を同時に行うことを特徴とする付記１又は２記載のエントロピ復号器。
【０１５４】
（付記４）前記ビットモデリング演算器は、ＳＰパスの処理中に同時にＭＲパスのコンテクストを確定することを特徴とする付記１、２又は３記載のエントロピ復号器。
【０１５５】
（付記５）前記ビットモデリング演算器は、ＭＲパスの演算結果であるシンボルを次以降のＣパスまたはＳＰパスの処理中にコードブロックデータ記憶装置に書き込むことを特徴とする付記１、２、３又は４記載のエントロピ復号器。
【０１５６】
（付記６）前記ビットモデリング演算器は、ＳＰパス用のコンテクスト演算器とＣパス用のコンテクスト演算器は、同じ処理を行う回路を共有していることを特徴とする付記１〜５のいずれか一に記載のエントロピ復号器。
【０１５７】
（付記７）前記算術復号器は、多段構成とされていることを特徴とする付記１〜６のいずれか一に記載のエントロピ復号器。
【０１５８】
（付記８）前記算術復号器は、確定していないコンテクストを正しいコンテクストに変換し、ＳＰパスに属する可能性があったが、実際にはＳＰパスには属さないコンテクスを除外する機能を持ち、コンテクストを並列に入力して同時にシンボルを求めるように構成されていることを特徴とする付記１〜７のいずれか一に記載のエントロピ復号器。
【０１５９】
（付記９）前記算術復号器は、確定していないコンテクストを正しいコンテクストに変換し、コンテクストを並列に入力して同時にシンボルを求めるように構成されていることを特徴とする付記１〜７のいずれか一に記載のエントロピ復号器。
【０１６０】
（付記１０）前記算術復号器は、多段構成とされ、複数の算術復号器は、同じ処理を行う回路を共有化していることを特徴とする付記１〜７のいずれか一に記載のエントロピ復号器。
【０１６１】
（付記１１）前記ビットモデリング演算器は、前のストライプの復号結果のシンボルが所定値であると仮定し、注目ストライプのコンテクスト演算を行い、仮定が正しかった場合には、コンテクスト演算結果を用いて算術復号演算を行い、仮定が外れた場合には、シンボル確定後に再度コンテクスト演算を行うことを特徴とする付記１〜１１のいずれか一に記載のエントロピ復号器。
【０１６２】
（付記１２）前記ビットモデリング演算器は、前のストライプのシンボルが複数回にわたり出力されるような場合、既に出力されたシンボルに関しては次のストライプのコンテクスト演算に反映し、未だ出力されていないシンボルのみ所定値と仮定してコンテクストを演算することを特徴する付記１〜１１のいずれか一に記載のエントロピ復号器。
【０１６３】
（付記１３）前記ビットモデリング演算器は、複数のコンテクスト演算器を有し、前のストライプのシンボルが複数回にわたり出力されるような場合、前記複数のコンテクスト演算器の各々に、既に出力されたシンボルに関しては次のストライプのコンテクスト演算に反映し、未だ出力されていないシンボルについては、前記複数のコンテクスト演算器の各々に異なる値を仮定し、コンテクストを演算し、前のストライプにおけるシンボルが確定した後に、前記複数のコンテクスト演算器の出力のうち、有効なものを採用することを特徴とする付記１〜１１のいずれか一に記載のエントロピ復号器
【図面の簡単な説明】
【０１６４】
【図１】本発明の第１実施形態の概略的構成図である。
【図２】本発明の第１実施形態が備えるビットモデリング演算器の概略的構成図である。
【図３】本発明の第１実施形態が備えるＳＰパス用コンスタント演算器におけるＳＰパスの各ビットのパス及びコンテクスト演算処理順序を示す図である。
【図４】本発明の第１実施形態が備えるＳＰパス用コンテクスト演算器の概略的構成図である。
【図５】本発明の第１実施形態が備えるＳＰパス用コンテクスト演算器で行われるパス及びコンテクスト演算手順の一部を示すフローチャートである。
【図６】本発明の第１実施形態が備えるＳＰパス用コンテクスト演算器で行われるシンボルのコンテクスト演算を説明するための図である。
【図７】本発明の第１実施形態が備えるＳＰパス用コンテクスト演算器で行われる正負符号のコンテクスト演算を説明するための図である。
【図８】本発明の第１実施形態が備えるＳＰパス用コンテクスト演算器からのコンテクスト（予想コンテクストを含む）の出力例を示す図である。
【図９】本発明の第１実施形態が備えるＣパス用コンテクスト演算器で行われるコンテクスト演算手順の一部を示すフローチャートである。
【図１０】本発明の第１実施形態が備える第２コンテクスト演算器の概略的構成図である。
【図１１】本発明の第１実施形態が備えるコンテクスト・レジスタ部の概略的構成図である。
【図１２】本発明の第１実施形態が備える４段ＭＱ−ＣＯＤＥＲ復号器の概略的構成図である。
【図１３】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の概略的構成図である。
【図１４】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の１段目のＭＱ−ＣＯＤＥＲ復号器の回路図である。
【図１５】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の２段目のＭＱ−ＣＯＤＥＲ復号器の回路図である。
【図１６】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の３段目のＭＱ−ＣＯＤＥＲ復号器の回路図である。
【図１７】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器の４段目のＭＱ−ＣＯＤＥＲ復号器の回路図である。
【図１８】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるインデックス・メモリの第１構成例を示す回路図である。
【図１９】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるインデックス・メモリの第２構成例を示す回路図である。
【図２０】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるＭＰＳメモリの第１構成例を示す回路図である。
【図２１】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるＭＰＳメモリの第２構成例を示す回路図である。
【図２２】本発明の第１実施形態が備えるＭＲパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるネクスト・インデックス回路の回路図である。
【図２３】本発明の第１実施形態が備えるＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成図である。
【図２４】本発明の第１実施形態が備えるＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるコンテクスト変換テーブルの内容を示す図である。
【図２５】本発明の第１実施形態が備えるＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられるシンボル用のコンテクスト変換回路の動作を説明するための回路図である。
【図２６】本発明の第１実施形態が備えるＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器に設けられる正負符号用のコンテクスト変換回路の動作を説明するための図である。
【図２７】本発明の第１実施形態が備えるＣパス用４段ＭＱ−ＣＯＤＥＲ復号器の構成図である。
【図２８】本発明の第１実施形態における最初のＣパスの処理時のデータの流れを示す図である。
【図２９】本発明の一実施形態におけるＳＰパスの処理時のデータの流れを示す図である。
【図３０】本発明の第１実施形態が備えるコンテクスト・レジスタ及びコンテクスト変換回路のＳＰパス処理時の接続関係を示す図である。
【図３１】本発明の第１実施形態が備えるＳＰパス用４段ＭＱ−ＣＯＤＥＲ復号器がＳＰパスの処理を２ビットずつ連続して行う場合の動作例を示す図である。
【図３２】本発明の第１実施形態におけるＳＰパス処理時のエントロピ復号演算例の流れを示すタイムチャートである。
【図３３】本発明の第１実施形態におけるＭＲパスの処理時のデータの流れを示す図である。
【図３４】本発明の第１実施形態における最初のＣパス以外のＣパスの処理時のデータの流れを示す図である。
【図３５】本発明の第１実施形態におけるＭＲパスのデータ配置があるＳＰパス処理時のデータの流れを示す図である。
【図３６】本発明の第１実施形態におけるＭＲパスのシンボルを配置する場合のデータの流れを示す図である。
【図３７】本発明の第１実施形態で実行できる第２のコンテクスト演算手法を説明するための図である。
【図３８】本発明の第１実施形態で実行できる第３のコンテクスト演算手法を説明するための図である。
【図３９】本発明の第２実施形態を説明するための図である。
【図４０】ＪＰＥＧ２０００方式の画像復号装置の一例の構成図である。
【図４１】図４０に示す画像復号装置が備えるエントロピ復号器での処理の流れを示す図である。
【図４２】図４０に示す画像復号装置が備えるビットモデリング演算器が各パスについてコンテクスト決定処理を行う場合の処理順序を示す図である。
【図４３】図４０に示す画像復号装置が備えるビットモデリング演算器が注目ビットのコンテクストを決定する際に参照するビットを示す図である。
【図４４】図４０に示す画像復号装置が備えるエントロピ復号器が有する問題点を説明するための図である。
【符号の説明】
【０１６５】
１０…ビットモデリング演算器
１１…４段ＭＱ−ＣＯＤＥＲ復号器
１３…有意ビット記憶装置
１４…第１コンテクスト演算器
１５…ＳＰパス用コンテクスト演算器
１６…Ｃパス用コンテクスト演算器
１７…第２コンテクスト演算器
１８…ＭＲパス用コンテクスト演算器
１９…ＭＲパス用コンテクスト記憶装置
２０…コンテクスト・レジスタ部
【図１】
2006019814.tif 000010
【図２】
2006019814.tif 000011
【図３】
2006019814.tif 000012
【図４】
2006019814.tif 000013
【図５】
2006019814.tif 000014
【図６】
2006019814.tif 000015
【図７】
2006019814.tif 000016
【図８】
2006019814.tif 000017
【図９】
2006019814.tif 000018
【図１０】
2006019814.tif 000019
【図１１】
2006019814.tif 000020
【図１２】
2006019814.tif 000021
【図１３】
2006019814.tif 000022
【図１４】
2006019814.tif 000023
【図１５】
2006019814.tif 000024
【図１６】
2006019814.tif 000025
【図１７】
2006019814.tif 000026
【図１８】
2006019814.tif 000027
【図１９】
2006019814.tif 000028
【図２０】
2006019814.tif 000029
【図２１】
2006019814.tif 000030
【図２２】
2006019814.tif 000031
【図２３】
2006019814.tif 000032
【図２４】
2006019814.tif 000033
【図２５】
2006019814.tif 000034
【図２６】
2006019814.tif 000035
【図２７】
2006019814.tif 000036
【図２８】
2006019814.tif 000037
【図２９】
2006019814.tif 000038
【図３０】
2006019814.tif 000039
【図３１】
2006019814.tif 000040
【図３２】
2006019814.tif 000041
【図３３】
2006019814.tif 000042
【図３４】
2006019814.tif 000043
【図３５】
2006019814.tif 000044
【図３６】
2006019814.tif 000045
【図３７】
2006019814.tif 000046
【図３８】
2006019814.tif 000047
【図３９】
2006019814.tif 000048
【図４０】
2006019814.tif 000049
【図４１】
2006019814.tif 000050
【図４２】
2006019814.tif 000051
【図４３】
2006019814.tif 000052
【図４４】
2006019814.tif 000053