(57)【要約】【課題】  算術復号処理は、復号結果をもとに周辺情報を更新しながらコンテクストの推定をするため、復号処理に時間がかかる。【解決手段】  ストリーム解析部１０からエントロピー復号部１２に符号化データＣＤが入力される。周辺情報レジスタ群２０は、符号化データＣＤの算術復号に使用するコンテクストを推定するための着目画素に対する周辺情報を保持する。コンテクスト推定部２２は、周辺情報レジスタ群２０に保持された周辺情報をもとにコンテクストを推定し、コンテクストラベルＣＸを算術復号部２４に与える。算術復号部２４は、コンテクストラベルＣＸにもとづき、符号化データＣＤを復号してデシジョンＤを求め、逆量子化部１４に与える。周辺情報レジスタ群２０に保持された周辺情報は、算術復号部２４による復号結果によって復号と同一サイクルで更新される。【選択図】  図２
2005229218.tif 000002
【特許請求の範囲】
【請求項１】
画素を復号する際、その画素の周辺情報を保持する周辺情報レジスタと、
前記周辺情報レジスタから前記周辺情報を読み出して画素の復号結果を予測するためのコンテクスト情報を生成するコンテクスト推定部と、
生成されたコンテクスト情報および画素の符号化データからその画素を復号する復号部とを有し、
当該復号部は、単位復号期間ごとに一画素を復号するとともに、各単位復号期間の終了時に、その単位復号期間において復号された画素の復号結果によって前記周辺情報を更新して前記周辺情報レジスタに書き戻すことを特徴とする画像復号装置。
【請求項２】
符号化画像をエントロピー復号するエントロピー復号ブロックと、
エントロピー復号されたデータを逆量子化する逆量子化部と、
逆量子化されたデータに空間周波数逆変換を施す逆変換部とを備え、
前記エントロピー復号ブロックは、
画素を復号する際、その画素の周辺情報を保持する周辺情報レジスタと、
前記周辺情報レジスタから前記周辺情報を読み出して画素の復号結果を予測するためのコンテクスト情報を生成するコンテクスト推定部と、
生成されたコンテクスト情報および画素の符号化データからその画素を復号する復号部とを有し、
当該復号部は、単位復号期間ごとに一画素を復号するとともに、各単位復号期間の終了時に、その単位復号期間において復号された画素の復号結果によって前記周辺情報を更新して前記周辺情報レジスタに書き戻すことを特徴とする画像復号装置。
【請求項３】
前記周辺情報レジスタは、処理対象の画素ブロック全体の周辺情報を保持するものであり、保持する周辺情報のビット数よりも少ない出力バス幅を有し、必要な周辺情報の読み出しが順次なされるようリングバッファ方式で周辺情報を保持することを特徴とする請求項１または２に記載の画像復号装置。
【請求項４】
前記コンテクスト生成部は、ある単位復号期間において、その次の単位復号期間で必要になるコンテクスト情報を予め生成して保持することを特徴とする請求項１から３のいずれかに記載の画像復号装置。
【請求項５】
前記周辺情報をもとに、復号すべき画素を特定する復号位置算出部をさらに備え、復号の必要がない画素の復号処理をスキップすることを特徴とする請求項１から４のいずれかに記載の画像復号装置。
【請求項６】
前記コンテクスト推定部および前記復号部は並列処理のためにそれぞれ複数設けられ、
前記周辺情報レジスタは、複数の前記コンテクスト推定部により共有され、保持された前記周辺情報は、複数の前記復号部の復号結果によりそれぞれの単位復号期間において更新されることを特徴とする請求項１から５のいずれかに記載の画像復号装置。
【請求項７】
前記周辺情報レジスタには、リングバッファ方式で読み出される位置以外の格納位置に保持された一部の周辺情報を保持するシフタが設けられ、前記コンテクスト推定部は、前記シフタにシフト量の指示を与えることで、前記一部の周辺情報を読み出すことを特徴とする請求項６に記載の画像復号装置。
【請求項８】
複数の前記コンテクスト推定部および前記復号部の各々は、符号化画像の複数の符号化パスに対応したパス単位の復号処理を実行し、各パスによる復号処理で参照する前記周辺情報レジスタの位置が所定の画素数だけ離れるように、各パスの復号処理の動作タイミングを制御する制御部をさらに含むことを特徴とする請求項６または７に記載の画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像復号装置に関する。
【背景技術】
【０００２】
ＩＳＯ／ＩＴＵ−Ｔにおいて、静止画像の圧縮符号化の標準技術であるＪＰＥＧ（Joint Photographic Expert Group）の後継として、離散ウェーブレット変換（ＤＷＴ）を用いたＪＰＥＧ２０００の標準化が行われている。ＪＰＥＧ２０００では、低ビットレート符号化からロスレス圧縮まで広範囲の画質を高性能で符号化することができ、画質を徐々に高めるスケーラビリティ機能も実現が容易である。
【０００３】
ＪＰＥＧ２０００における符号化処理では、ブロック分割処理と、係数ビットモデリング処理と、算術符号化処理とが行われる。ブロック分割処理は、原画像を離散ウェーブレット変換することにより生成された各サブバンドをコードブロックと呼ばれる小領域に分割する。係数ビットモデリング処理は、ウェーブレット変換係数の量子化値を最上位ビット（Most Significant Bit；ＭＳＢ）から最下位ビット（Least Significant Bit；ＬＳＢ）までのビットプレーンに分解して、算術符号化用の２値シンボルとコンテクストを生成する。算術符号化処理は、生成されたシンボルとコンテクストをもとにシンボル系列の出現確率に基づくエントロピー符号化を行う。
【０００４】
このように算術符号化処理では、符号化対象のデータ以外にコンテクストの入力が必要となる。特許文献１には、とりうるコンテクストの候補を複数用意して算術符号化の演算結果によりセレクタで切り替える構成の算術符号化装置および算術復号装置が開示されている。
【特許文献１】特許３４０６５５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＪＰＥＧ２０００における符号化および復号を高速に実行するために、処理の並列化が必要である。ＪＰＥＧ２０００における算術符号化では、コンテクストを決定するために、画素の周辺情報が必要となる。符号化においては、あらかじめすべての画素のデータが既知であるから、必要な周辺情報を揃えることができ、並列化、高速化が容易である。しかし、復号においては、実際に復号しなければ画素の周辺情報が分からないため、並列化は困難で逐次的な処理とならざるを得ない。
【０００６】
特許文献１に開示された算術復号装置では、あらかじめコンテクストの候補が用意されているが、コンテクストの候補を切り替えるための制御が複雑である。また、この装置で処理の並列化を行うと、コンテクストの候補が指数関数的に増え、回路規模の増大、制御の複雑化を招く。
【０００７】
本発明はこうした課題に鑑みてなされたものであり、その目的は、高速に復号を行うことのできる画像復号技術を提供することにある。別の目的は、並列化が容易な画像復号技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様は画像復号装置に関する。この装置は、画素を復号する際、その画素の周辺情報を保持する周辺情報レジスタと、前記周辺情報レジスタから前記周辺情報を読み出して画素の復号結果を予測するためのコンテクスト情報を生成するコンテクスト推定部と、生成されたコンテクスト情報および画素の符号化データからその画素を復号する復号部とを有し、当該復号部は、単位復号期間ごとに一画素を復号するとともに、各単位復号期間の終了時に、その単位復号期間において復号された画素の復号結果によって前記周辺情報を更新して前記周辺情報レジスタに書き戻す。復号部は、一例として、画素を算術復号するものであってもよい。
【０００９】
本発明の別の態様も画像復号装置に関する。この装置は、符号化画像をエントロピー復号するエントロピー復号ブロックと、エントロピー復号されたデータを逆量子化する逆量子化部と、逆量子化されたデータに空間周波数逆変換を施す逆変換部とを備える。前記エントロピー復号ブロックは、画素を復号する際、その画素の周辺情報を保持する周辺情報レジスタと、前記周辺情報レジスタから前記周辺情報を読み出して画素の復号結果を予測するためのコンテクスト情報を生成するコンテクスト推定部と、生成されたコンテクスト情報および画素の符号化データからその画素を復号する復号部とを有し、当該復号部は、単位復号期間ごとに一画素を復号するとともに、各単位復号期間の終了時に、その単位復号期間において復号された画素の復号結果によって前記周辺情報を更新して前記周辺情報レジスタに書き戻す。
【００１０】
前記周辺情報レジスタは、処理対象の画素ブロック全体の周辺情報を保持するものであり、保持する周辺情報のビット数よりも少ない出力バス幅を有し、必要な周辺情報の読み出しが順次なされるようリングバッファ方式で周辺情報を保持してもよい。
【００１１】
前記コンテクスト生成部は、ある単位復号期間において、その次の単位復号期間で必要になるコンテクスト情報を予め生成して保持してもよい。前記周辺情報をもとに、復号すべき画素を特定する復号位置算出部をさらに備え、復号が必要でない画素の復号処理をスキップしてもよい。
【００１２】
前記コンテクスト推定部および前記復号部は並列処理のためにそれぞれ複数設けられ、前記周辺情報レジスタは、複数の前記コンテクスト推定部により共有され、保持された前記周辺情報は、複数の前記復号部の復号結果によりそれぞれの単位復号期間において更新されてもよい。
【００１３】
前記周辺情報レジスタには、リングバッファ方式で読み出される位置以外の格納位置に保持された一部の周辺情報を保持するシフタが設けられ、前記コンテクスト推定部は、前記シフタにシフト量の指示を与えることで、前記一部の周辺情報を読み出してもよい。
【００１４】
複数の前記コンテクスト推定部および前記復号部の各々は、符号化画像の複数の符号化パスに対応したパス単位の復号処理を実行し、各パスによる復号処理で参照する前記周辺情報レジスタの位置が所定の画素数だけ離れるように、各パスの復号処理の動作タイミングを制御する制御部をさらに含んでもよい。
【００１５】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、高速に符号化画像の復号を行うことができる。また、符号化画像の復号を並列に実行することができる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１
図１は、実施の形態１に係る画像復号装置１００の構成図である。画像復号装置１００の構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリのロードされた復号機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１８】
画像復号装置１００は、圧縮符号化された画像の入力を受け、入力された符号化画像を復号して出力する。符号化画像は、原画像が４つの周波数サブバンドへ再帰的に分割されてウェーブレット変換され、量子化の後、算術符号化された画像であり、一例としてＪＰＥＧ２０００の規格にしたがうものである。
【００１９】
画像復号装置１００に入力される符号化画像は、動画像の符号化フレームであってもよい。画像復号装置１００は、符号化ストリームとして入力される動画像の各符号化フレームを連続的に復号することにより動画を再生することができる。
【００２０】
ストリーム解析部１０は、入力された符号化画像のストリームを解析して符号化データを抽出し、エントロピー復号部１２に与える。エントロピー復号部１２は、符号化データをビットプレーン毎にエントロピー復号し、復号の結果得られる量子化されたウェーブレット変換係数を逆量子化部１４に与える。
【００２１】
逆量子化部１４は、ウェーブレット変換係数の量子化値を逆量子化してウェーブレット逆変換部１６に与える。ウェーブレット逆変換部１６は逆量子化されたウェーブレット変換係数を逆変換し、得られた復号画像を出力する。
【００２２】
図２は、エントロピー復号部１２の構成図である。ストリーム解析部１０からエントロピー復号部１２に符号化データＣＤが入力される。周辺情報レジスタ群２０は、符号化データＣＤの算術復号に使用するコンテクストを推定するための着目画素に対する周辺情報を保持するレジスタである。コンテクスト推定部２２は、周辺情報レジスタ群２０に保持された周辺情報をもとに、符号化データＣＤの復号結果を予測するためのコンテクストを推定し、コンテクストラベルＣＸを算術復号部２４に与える。
【００２３】
算術復号部２４は、ストリーム解析部１０からは符号化データＣＤ、コンテクスト推定部２２からはコンテクストラベルＣＸを入力として受け取り、算術復号演算により２値の判定値であるデシジョンＤを求めて、逆量子化部１４に与える。算術復号部２４から出力されるデシジョンＤは、単位復号期間の終了時に、すなわち復号と同一サイクルで、周辺情報レジスタ群２０に入力され、周辺情報レジスタ群２０に保持されている周辺情報が算術復号部２４による演算結果により更新される。
【００２４】
コンテクスト推定部２２は、ＪＰＥＧ２０００における復号時の係数ビットモデリング処理を行うものである。復号時の係数ビットモデリング処理は、算術復号部２４による復号結果を利用して周辺情報を更新しながら、算術復号の際に必要となるコンテクストを決定する処理である。以下、図３〜図１０を参照して、復号時の係数ビットモデリング処理を説明する。
【００２５】
ストリーム解析部１０により符号化ストリームから抽出されたサブバンド画像はコードブロックと呼ばれる小領域に分割され、コードブロックが復号処理単位となる。サブバンド画像は、原画像のｘ、ｙの両方向において低周波成分を有するＬＬサブバンド、ｘ、ｙのいずれかひとつの方向において低周波成分を有し、かつもう一方の方向において高周波成分を有するＨＬおよびＬＨサブバンド、ｘ、ｙの両方向において高周波成分を有するＨＨサブバンドのいずれかである。
【００２６】
コードブロックのサイズは、高さと幅が２２〜２１０の範囲にある２のべき乗の整数値であり、高さと幅の指数の和は１２以下であることが規格において定められている。本実施の形態では、コードブロックは縦横３２ピクセルとして説明する。
【００２７】
図３は、コードブロックをビット毎にスライスして形成されたビットプレーンを説明する図である。コードブロックのビットプレーンは、ウェーブレット変換係数の量子化値の正負の符号を格納したＳｉｇｎプレーンと、ウェーブレット変換係数の量子化値の絶対値を与えるＭＳＢからＬＳＢまでの複数のプレーンとから構成される。エントロピー復号部１２は、上位ビットから順にビットプレーンを選択し、ビットプレーン単位でビットプレーン上で各係数の復号処理を行う。
【００２８】
図４は、ビットプレーン上の係数を復号する際の走査順序を説明する図である。ビットプレーンは、縦４ピクセルのストライプに分割され、ストライプ単位で走査されて復号される。各ストライプの横幅はコードブロックの横幅であり、本例では３２ピクセルである。ストライプの本数は、合計で８本となる。
【００２９】
各ストライプにおいて、矢印で示すように最初の列の縦４ピクセルを上から順に走査して１ピクセルずつ復号処理を進め、次に２番目の列の縦４ピクセルを同じ向きに走査し、これを最後の列まで繰り返す。ストライプの終端まで復号処理が終わると、次のストライプの先頭の係数から同じように走査して復号処理を進め、コードブロックの最後の行まで繰り返す。なお、係数の正負の符号を格納したＳｉｇｎプレーンの復号は、係数の絶対値部分に相当するプレーンを復号する際に適宜行われる。
【００３０】
コードブロック内の各係数は、有意であるか、有意でないかの２つの状態で識別される。有意である場合は１、有意でない場合は０を割り当て、各係数の有意性状態を２値で識別する。復号開始時は、コードブロック内のすべての係数は有意でない。
【００３１】
ここで、係数が有意であるとは、着目しているウェーブレット変換係数の量子化値が、これまでの復号処理の結果から‘０’ではないとわかっている状態をいう。言い換えれば、上位ビットプレーンから順次ストライプ単位で走査しながら復号していく中で、‘１’であるビットが発見されているウェーブレット変換係数の状態をいう。また、係数が有意でないとは、着目しているウェーブレット変換係数の量子化値が‘０’であるか、あるいは‘０’である可能性が残っている状態をいう。言い換えれば、上位ビットプレーンから順次復号していく中で、‘１’であるビットが未だ発見されていないウェーブレット変換係数の状態をいう。
【００３２】
係数ビットモデリング処理では、ビットプレーン上の係数の周囲にある係数の有意性状態にもとづいて各係数ビット毎にコンテクストが決定される。図５は、ビットプレーン上の復号対象の係数Ｘ（以下、現係数Ｘという）の周囲に隣接する８個の近傍係数を説明する図である。８個の近傍係数は、現係数Ｘに対して水平方向に隣接する２つの係数ｈ０、ｈ１と、垂直方向に隣接する２つの係数ｖ０、ｖ１と、斜め方向に隣接する４つの係数ｄ０〜ｄ３とからなる。
【００３３】
図５の８個の近傍係数はそれぞれ有意であるか、有意でないかの２つの状態をとりうるため、現係数Ｘに対して、組み合わせとしては２５６個のコンテクストがありうるが、ＪＰＥＧ２０００では、対称性などを利用して、１９種類のコンテクストに集約されており、これらのコンテクストは０〜１８のラベルをつけて識別される。なお、いずれかの近傍係数が処理中のコードブロックの外部に位置する場合は、その近傍係数は有意でないとみなして処理する。
【００３４】
ビットプレーン内の各係数ビットは、Ｓパス（significance propagation pass）、Ｒパス（magnitude refinement pass）、Ｃパス（cleanup pass）の３種類の処理パスのうちのいずれかにもとづいて復号される。Ｓパスでは、有意である係数が周囲に存在する有意でない係数の復号が行われ、Ｒパスでは、有意である係数の復号が行われ、Ｃパスでは、残りの係数の復号が行われる。
【００３５】
Ｓパス、Ｒパス、Ｃパスの各処理パスはこの順に画像の画質への寄与度が大きい。各処理パスはこの順に実行され、各係数のコンテクストが近傍係数の情報を考慮して決定される。以下、各処理パスにおける具体的な処理手順を説明する。最初にＳパス処理を説明する。
【００３６】
ビットプレーンの各ストライプにおける走査において、現係数Ｘが有意でない状態であり、かつその現係数Ｘに隣接する８個の近傍係数の内、少なくとも１つの近傍係数が有意である場合、現係数ＸはＳパスの処理対象として選ばれる。それ以外の場合は、Ｓパスの処理対象とはならない。Ｓパスで復号対象となる係数は、そのビットプレーンにおいて最も有意になる可能性が高い係数である。
【００３７】
コンテクスト推定部２２は、現係数Ｘに対して、水平方向の２つの近傍係数ｈ０，ｈ１の内、有意である係数の数を与えるΣｈｉ（＝ｈ０＋ｈ１）と、垂直方向の２つの近傍係数ｖ０，ｖ１の内、有意である係数の数を与えるΣｖｉ（＝ｖ１＋ｖ２）と、斜め方向の４つの近傍係数ｄ０，ｄ１，ｄ２，ｄ３の内、有意である係数の数を与えるΣｄｉ（＝ｄ１＋ｄ２＋ｄ３＋ｄ４）とを求める。
【００３８】
図６は、Ｓパスにおけるコンテクストの分類テーブルを説明する図である。このコンテクストテーブルは、処理中のコードブロックが、ＬＨ／ＬＬサブバンド、ＨＬサブバンド、ＨＨサブバンドのいずれに属しているかによって、水平、垂直、斜め方向の有意である近傍係数の数Σｈｉ，Σｖｉ，Σｄｉの組み合わせと、０〜８のラベルで識別される９種類のコンテクストラベルＣＸとを対応づけたものである。コンテクスト推定部２２は、このコンテクストの分類テーブルを参照し、サブバンドの周波数成分の方向性と有意である近傍係数の数Σｈｉ，Σｖｉ，Σｄｉの組み合わせにしたがって、Ｓパスで処理する係数を９種類のコンテクストのいずれかに分類し、該当するコンテクストラベルＣＸを出力する。
【００３９】
また、Ｓパスでは、現係数Ｘのビットの値が‘１’であった場合、現係数Ｘの有意性状態を「有意でない」から「有意である」に変更する。現係数Ｘが有意になった場合、引き続き、その現係数Ｘの正負を示す極性ビットを復号する。
【００４０】
極性ビットに対するコンテクストは、垂直方向の２つの近傍係数ｖ０，ｖ１および水平方向の２つの近傍係数ｈ０，ｈ１の有意性状態および正負の極性値にもとづいて次の２段階で決定される。
【００４１】
図７は、極性ビットのコンテクスト決定のための垂直指標および水平指標テーブルを説明する図である。コンテクスト推定部２２は、まず、２つの垂直方向の近傍係数ｖ０、ｖ１のそれぞれが正の有意である係数であるか、負の有意である係数であるか、有意でない係数であるかを判定し、図７のテーブルを参照して、垂直指標ｖに‘０’、‘１’、‘−１’のいずれかの値を割り当てる。同様にして、水平方向の近傍係数ｈ０、ｈ１に対しても図７のテーブルを参照して、水平指標ｈに‘０’、‘１’、‘−１’のいずれかの値を割り当てる。
【００４２】
図８は、水平指標ｈと垂直指標ｖの組み合わせと、９〜１３のラベルで識別される５種類の極性ビットに対するコンテクストラベルＣＸとを対応づけたテーブルである。コンテクスト推定部２２は、図８のテーブルを参照して、求めた水平指標ｈと垂直指標ｖの値の組み合わせによって極性ビットを５種類のコンテクストのいずれかに分類し、該当するコンテクストラベルＣＸを出力する。
【００４３】
次にＲパス処理を説明する。現係数Ｘがすでに有意であると判定されている場合、現係数Ｘは処理中のビットプレーンにおいてＲパスの処理対象となる。ただし、そのビットプレーンにおいて、直前のＳパスで有意である状態に変化した係数は処理対象としない。Ｒパスの復号処理は、Ｓパスで復号された係数の精度を上げる役割をもつ。
【００４４】
図９は、Ｒパスにおけるコンテクストの分類テーブルを示す図である。Ｒパスでは、コンテクスト推定部２２は、現係数Ｘに対する８つの近傍係数に内、有意である係数の数を示すΣｈｉ＋Σｖｉ＋Σｄｉの値を求め、さらに、現係数Ｘが１つ上のビットプレーンで有意になったかどうか、言い換えれば、当該Ｒパスは、現係数Ｘが有意でない状態から有意である状態に変化した後の最初のパスであるかどうかを判定し、これらの結果にもとづいて、同図に示すように、１４〜１６のラベルで識別される３種類のコンテクストに分類し、該当するコンテクストラベルＣＸを出力する。
【００４５】
最後にＣパス処理を説明する。Ｃパスは、現係数ＸがＳパス、Ｒパスのいずれの処理対象にも該当しない場合に用いられる。Ｃパスでは、ランレングス復号か、Ｓパスのように８つの近傍係数の値を参照した復号処理を行う。Ｃパスでは、ランレングス復号を行うかどうかを判断しながら処理を進める。
【００４６】
図１０は、Ｃパスにおけるコンテクストの分類テーブルを示す図である。Ｃパスでは、垂直方向に連続する４つの係数が全て有意でない、すなわちストライプ内の縦１列がすべてＣパスに属しており、かつ、その４つのすべての係数に対する８個の近傍係数にも有意である係数が存在しないという条件の成否を判断する。この条件に該当する場合、ランレングスモードで復号処理を行い、コンテクストラベルＣＸは１７である。この条件に該当しない場合、垂直方向に連続する４つの係数値の中に少なくとも１つの有意である係数が存在するため、最初に有意になる係数の位置はＵＮＩＦＯＲＭコンテクストを用い、このときのコンテクストラベルＣＸは１８である。残りのすべての係数に対してはＳパスと同様の処理を行う。
【００４７】
以上述べたように、コンテクスト推定部２２による係数ビットモデリング処理において、３つのいずれかの処理パスを用いて、ビットプレーン上の各係数のコンテクストラベルＣＸが決定される。
【００４８】
周辺情報レジスタ群２０は、コードブロックの１枚のビットプレーン分の大きさに対応っして縦横３２ビットのレジスタを５種類設けたものであり、コードブロック全体の周辺情報を保持する。周辺情報レジスタ群２０を構成する第１から第５レジスタは、コンテクスト推定部２２がビットプレーンにおける各処理パスでコンテクストラベルＣＸを求めるために必要な情報を格納する。
【００４９】
周辺情報レジスタ群２０の第１レジスタは、各係数が有意であるか、有意でないかを示す情報を格納する。第２レジスタは、各係数が一つ上のビットプレーンで有意になったかどうかを示す情報を格納し、Ｒパスの処理で使用される。第３レジスタは、各係数が現在のビットプレーンで有意になったかどうかを示す情報を格納する。これは第２レジスタの情報を生成するために必要となる。第４レジスタは、各係数は既に復号済みかどうかを示す情報を格納し、Ｃパスの処理で使用される。第４レジスタの情報は、第１レジスタと第３レジスタの情報から算出できるが、処理の便宜のために別途情報を保持しておく。第５レジスタは、各係数の正負の符号を示す極性の情報を格納する。
【００５０】
第１、第５レジスタの内容はコードブロックの処理開始時もしくは処理終了時に零にリセットされる。第２レジスタの内容は、ビットプレーンの処理開始時もしくは処理終了時に第３レジスタの内容をコピーすることにより初期化される。第３、第４のレジスタの内容は、ビットプレーンの処理開始時もしくは処理終了時に零にリセットされる。
【００５１】
図１１は、周辺情報レジスタ群２０の各レジスタの構成を説明する図である。周辺情報レジスタ群２０に含まれる５種類のレジスタの各々は、コードブロックがストライプ単位で走査されて復号処理されることに合わせて、ストライプの大きさのレジスタがストライプの本数分だけ並んだ構成をとる。各レジスタ列は、ストライプの縦方向４ピクセルに対応して縦４ビットで、コードブロックの横幅３２ピクセルに対応して横３２ビットである。
【００５２】
各レジスタ列は、高速化と小型化のために、横方向に４ビットずつ、Ｒ００〜Ｒ０７、Ｒ１０〜Ｒ１７、…、Ｒ７０〜Ｒ７７のように区切られ、左端の斜線を付したＲ００、Ｒ１０、…、Ｒ７０の４ビットに対してのみ読み出し、書き込みが可能なシフトレジスタである。以下、４ビットずつの区切りをレジスタブロックと呼ぶ。
【００５３】
なお、第１、第５レジスタの場合だけ、Ｓパス処理において近傍係数の参照が必要となるため、左端のレジスタブロックの左右の１ピクセル分の読み出しが可能である。すなわち、左端の各レジスタブロックＲ００、Ｒ１０、…、Ｒ７０の４ビットとともに、右隣の各レジスタブロックＲ０１、Ｒ１１、…、Ｒ７１の左側１ビットと、論理的に左隣（実際には右端）の各レジスタブロックＲ０７、Ｒ１７、…、Ｒ７７の右側１ビットも合わせて読み出し可能な構成とする。
【００５４】
図１２（ａ）、（ｂ）は、図１１の各レジスタ列の動作を説明する図である。図１２（ａ）は、一例としてストライプ０のレジスタ列を示しており、４ビットずつ、レジスタブロックＲ００〜Ｒ０７に区切られ、左端のレジスタブロックＲ００に対して読み書きが可能である。このレジスタは、リングバッファないしはバレルシフタのように機能し、図１２（ｂ）に示すように、左端にあったＲ００を右端に移動させ、残りのＲ０１〜Ｒ０７を順に左に４ビットずつシフトさせることで、読み書きできるレジスタの箇所を４ビットずつずらすことができる。
【００５５】
本実施の形態では、各プレーンについて、Ｓパス、Ｒパス、Ｃパスの順に逐次的に処理パスを実行するため、復号動作は次のようになる。まず、ＭＳＢプレーンの各ストライプに対して、Ｃパスの処理を実行し、各レジスタ列を４ビットずつ７回シフトすることで、各ストライプが終端まで処理され、８回目のシフトで最初にもどる。次に、ＭＳＢより一つ下のプレーンの各ストライプに対して、Ｓパスの処理を実行し、４ビットずつ７回シフトすることで、各ストライプが終端まで処理され、８回目のシフトで最初にもどる。この状態で、同一プレーンの各ストライプについてＲパスの処理を実行し、同様に、４ビットずつ７回シフトすることで、各ストライプが終端まで処理され、８回目のシフトで最初にもどる。以降、Ｃパスの処理を同様に実行する。これをＬＳＢプレーンまで繰り返すことで、当該コードブロックについての復号処理が終了する。
【００５６】
コードブロックの復号処理の過程で、周辺情報レジスタ群２０に保持されている周辺情報の内容は、算術復号部２４がビットプレーンの係数を一つ復号してデシジョンＤを決定するたびにその復号サイクルにおいて更新される。
【００５７】
以上説明したように、本実施の形態によれば、各係数のコンテクストの推定に必要な周辺情報をレジスタで保持しているため、周辺情報を高速に読み出して、コンテクストを推定し、算術復号部に与えることができる。また、算術復号による演算結果を利用して、算術復号と同一サイクルでレジスタに保持された周辺情報を更新することができる。周辺情報をＳＲＡＭなどのメモリに保持した場合、アドレッシングが必要となり、読み出し、書き込みに数サイクルかかってしまい、処理が遅くなるが、周辺情報をレジスタに保持することにより、復号時に必要な一連の処理、すなわち、周辺情報の読み出し、コンテクストの推定、算術符号の復号、周辺情報の更新を同一サイクルで行うことができ、１画素の復号を１サイクルで処理することが可能となり、復号処理の高速化を図ることができる。
【００５８】
実施の形態２
図１３は、実施の形態２に係る画像復号装置におけるエントロピー復号部１２の構成図である。本実施の形態の画像復号装置は、実施の形態１の画像復号装置１００とエントロピー復号部１２の構成だけが異なり、他の構成は同じである。
【００５９】
本実施の形態のエントロピー復号部１２では、コンテクスト推定部２２によりあらかじめ計算されたコンテクストラベルＣＸを保持するためのコンテクストレジスタ２３がコンテクスト推定部２２の後段に設けられる。
【００６０】
周辺情報レジスタ群２０には、算術復号部２４による符号化データＣＤを復号した結果得られたデシジョンＤがフィードバックされて、各レジスタに保持される内容が適宜更新され、コンテクスト推定部２２は、次のコンテクストの推定のために、更新された周辺情報レジスタ群２０を参照する。本実施の形態では、コンテクスト推定部２２は、さらに、周辺情報レジスタ群２０を介さずに、直接、算術復号部２４からのデシジョンＤの値を受け取ることで、次のサイクルで必要になるコンテクストラベルＣＸを先に求め、コンテクストレジスタ２３がそのコンテクストラベルＣＸをラッチする。算術復号部２４は、コンテクストレジスタ２３にラッチされたコンテクストラベルＣＸを受け取り、符号化データＣＤの復号を進める。
【００６１】
本実施の形態によれば、周辺情報レジスタ群２０を利用した通常のコンテクストラベルＣＸの計算と並行して、周辺情報レジスタ群２０をバイパスしてコンテクストラベルＣＸの計算が可能であり、算術復号部２４がラッチされたコンテクストラベルＣＸを利用することにより、さらなる復号処理の高速化を図ることができる。
【００６２】
実施の形態３
図１４は、実施の形態３に係る画像復号装置におけるエントロピー復号部１２の構成図である。本実施の形態の画像復号装置も、実施の形態１の画像復号装置１００とエントロピー復号部１２の構成だけが異なり、他の構成は同じである。
【００６３】
本実施の形態のエントロピー復号部１２は、ビットプレーンのストライプを走査しながら復号する際、すべての係数を走査するのではなく、復号すべき係数の箇所を特定しながら、復号処理を進める。
【００６４】
復号位置算出部２７は、周辺情報レジスタ群２０に保持された周辺情報を参照して、各処理パスにおいて復号すべき係数の位置を算出する。
【００６５】
図１５（ａ）〜（ｃ）は、復号位置算出部２７による復号位置の算出手順を説明する図である。図１５（ａ）は、縦横４ピクセルの最小処理単位６０を縦方向に４画素ずつ走査して復号する順序を矢印で示したものであり、通常は、この走査順に１ピクセルずつ、周辺情報を調べて復号する。
【００６６】
Ｓパスでは、有意でない係数の周囲に１つでも有意である係数が存在すれば、復号を行う。ある係数に対する８個の近傍係数の情報は、他の係数の周辺情報としても一部利用できるため、すべての画素に対して、周辺情報を調べなくても、これまで得られた周辺情報から次の復号すべき係数を特定することができる。たとえば、図１５（ｂ）に示すように、左上端の斜線で示す係数５０に対する８個の点線で囲んだ近傍係数５２の内、符号５１で示した係数が有意であったとする。このとき、たとえば斜線で示す第２の係数５３に対しても８個の近傍係数５４の内、少なくとも１つの係数が有意であることがわかるので、第２の係数５３を復号すべき係数と判定することができる。図１５（ｃ）に、こうして復号すべきと判定された係数５０、５３、５５を順にたどって復号する様子を示す。
【００６７】
周辺情報読取部２８は、復号位置算出部２７で指定された位置に対する周辺情報を周辺情報レジスタ群２０から読み取り、コンテクスト推定部２２に与える。算術復号部２４によるデシジョンＤは、復号位置算出部２７により決められた位置Ｌにもとづいて、画像バッファ２６に格納される。画像バッファ２６に書き出された復号後のウェーブレット変換係数は逆量子化部１４に出力される。画像バッファ２６は、コードブロック単位もしくはストライプ単位などの所定の単位の復号が終わると、次の復号単位の結果を格納する前にリセットされる。
【００６８】
本実施の形態によれば、周辺情報レジスタ群２０の内容を参照することで、各処理パスにおいて次に復号すべき係数を特定し、復号の必要のない係数の処理をスキップすることができるため、復号処理のさらなる高速化を図ることができる。
【００６９】
実施の形態４
図１６は、実施の形態４に係る画像復号装置におけるエントロピー復号部１２の構成図である。本実施の形態の画像復号装置も、実施の形態１の画像復号装置１００とエントロピー復号部１２の構成だけが異なり、他の構成は同じである。
【００７０】
本実施の形態では、２つのコンテクスト推定部２２ａ、２２ｂと、２つの算術復号部２４ａ、２４ｂとを設け、２画素を並列に復号する。第１のコンテクスト推定部２２ａが第１画素についてのコンテクストラベルＣＸ１を推定し、そのコンテクストラベルＣＸ１にもとづいて、第１の算術復号部２４ａが第１画素についての復号処理を行い、第１のデシジョンＤ１を出力する。一方、第２のコンテクスト推定部２２ｂが第２画素についてのコンテクストラベルＣＸ２を推定し、そのコンテクストラベルＣＸ２にもとづいて、第２の算術復号部２４ｂが第２画素についての復号処理を行い、第２のデシジョンＤ２を出力する。
【００７１】
更新判定部２５は、第１の算術復号部２４ａの第１のデシジョンＤ１の値により、第１の算術復号部２４ａによる復号結果によって第２の算術復号部２４ｂに入力された情報を更新する必要があるかどうかを判定し、その必要があれば、第１の算術復号部２４ａによる復号結果を第２の算術復号部２４ｂに与える。また、第１、第２の算術復号部２４ａ、ｂは互いに確率推定値を交換し、算術復号の精度を向上させる。
【００７２】
第１、第２の算術復号部２４ａ、２４ｂによる第１、第２のデシジョンＤ１、Ｄ２はともに周辺情報レジスタ群２０にフィードバックされて、各レジスタの保持された情報が更新される。
【００７３】
なお、本実施の形態において、第１、第２のコンテクスト推定部２２ａ、２２ｂの後段に第２の実施の形態と同様にコンテクストレジスタ２３ａ、２３ｂをさらに設け、コンテクストラベルＣＸ１、ＣＸ２をラッチするように構成してもよい。
【００７４】
実施の形態５
図１７は、実施の形態５に係る画像復号装置におけるエントロピー復号部１２の構成図である。本実施の形態の画像復号装置も、実施の形態１の画像復号装置１００とエントロピー復号部１２の構成だけが異なり、他の構成は同じである。
【００７５】
本実施の形態は、図１４で示した第３の実施の形態のエントロピー復号部１２において、２画素の並列復号が可能なように構成を変更したものであり、２つの周辺情報読取部２８ａ、２８ｂと、２つのコンテクスト推定部２２ａ、２２ｂと、２つの算術復号部２４ａ、２４ｂとが設けられる。
【００７６】
復号位置算出部２７は、実施の形態３で説明した方法で、周辺情報レジスタ群２０に保持された周辺情報を参照して、各処理パスにおいて復号すべき係数の位置を算出するが、本実施の形態では、並列化のために、復号すべき係数を２箇所求め、その位置Ｌ１、Ｌ２をそれぞれ、第１、第２の周辺情報読取部２８ａ、２８ｂに与える。第１、第２の周辺情報読取部２８ａ、２８ｂは、それぞれ復号位置算出部２７で指定された位置Ｌ１、Ｌ２に対する周辺情報を周辺情報レジスタ群２０から読み取り、第１、第２のコンテクスト推定部２２ａ、２２ｂに与える。
【００７７】
以降、第１、第２のコンテクスト推定部２２ａ、２２ｂ、第１、第２の算術復号部２４ａ、２４ｂ、および更新判定部２５による２画素の並列復号動作については、実施の形態４と同じである。
【００７８】
画像バッファ２６には、復号位置算出部２７から与えられる位置Ｌ１、Ｌ２にもとづいて第１、第２の算術復号部２４ａ、２４ｂから出力される第１、第２のデシジョンＤ１、Ｄ２が格納される。
【００７９】
なお、本実施の形態において、第１、第２のコンテクスト推定部２２ａ、２２ｂの後段に第２の実施の形態と同様にコンテクストレジスタ２３ａ、２３ｂをさらに設け、コンテクストラベルＣＸをラッチするように構成してもよい。
【００８０】
実施の形態６
図１８は、実施の形態６に係る画像復号装置におけるエントロピー復号部４０の構成図である。本実施の形態の画像復号装置は、実施の形態１の画像復号装置１００のエントロピー復号部１２の構成を同図のエントロピー復号部４０に置き換えたものであり、他の構成は実施の形態１の画像復号装置１００と同じである。
【００８１】
本実施の形態のエントロピー復号部４０は、ビットプレーン単位および処理パス単位の並列化を行うものであり、ビットプレーン単位の並列化のために、第１ビットプレーン復号部３０ａと第２ビットプレーン復号部３０ｂが設けられる。また、Ｓパス、Ｒパス、Ｃパスの各処理パス単位の並列化のために、第１ビットプレーン復号部３０ａ、第２ビットプレーン復号部３０ｂの内部には、Ｓ、Ｒ、Ｃパス復号部１２Ｓ、Ｒパス復号部１２Ｒ、およびＣパス復号部１２Ｃが含まれる。
【００８２】
入力された符号化画像が、各パスの符号化ストリームのバイト数をヘッダに指定したフォーマットである場合、ストリーム解析部１０が、各パス毎に符号化ストリームを抽出して、パス単位の並列処理が可能である。この場合、ストリーム解析部１０から、Ｓパス、Ｒパス、Ｃパスの符号化ストリームがそれぞれ、Ｓ、Ｒ、Ｃパス復号部１２Ｓ、Ｒパス復号部１２Ｒ、Ｃパス復号部１２Ｃに与えられて復号処理される。Ｓ、Ｒ、Ｃパス復号部１２Ｓは、Ｓパスを専用に復号処理し、それと並行して、Ｒパス復号部１２ＲがＲパス、Ｃパス復号部１２ＣがＣパスを専用に復号処理することで各パスが並列に復号処理される。
【００８３】
符号化画像のヘッダに各パスの符号化ストリームのバイト数が指定されていない場合は、各パスの区切りがわからないため、パス単位の並列処理を行うことはできない。パス単位の並列処理ができない場合、ストリーム解析部１０は、Ｓパス、Ｒパス、Ｃパスの各符号化ストリームを順次Ｓ、Ｒ、Ｃパス復号部１２Ｓに与え、Ｓ、Ｒ、Ｃパス復号部１２Ｓは、Ｓパス、Ｒパス、Ｃパスの順に各パスを順次復号処理する。このとき、Ｒパス復号部１２ＲおよびＣパス復号部１２Ｃは動作しない。
【００８４】
これらの各パス用の復号部１２Ｓ、１２Ｒ、１２Ｃは、それぞれ実施の形態１〜５のいずれのエントロピー復号部１２の構成であってもよいが、ここでは、説明の簡単のため、実施の形態１のエントロピー復号部１２の構成を複数含む形態を説明する。
【００８５】
第１ビットプレーン復号部３０ａの各パス用の復号部１２Ｓ、１２Ｒ、１２Ｃは、それぞれコンテクスト推定部２２と算術復号部２４を含み、コンテクスト推定部２２は、周辺情報レジスタ群２０から周辺情報を読み出し、コンテクストラベルを計算して、算術復号部２４に与える。算術復号部２４はコンテクストラベルにもとづいて、各パスの符号化データを復号して、第１のデータレジスタ３２ａに書き込む。
【００８６】
第２ビットプレーン復号部３０ｂについても同様であり、同一の周辺情報レジスタ群２０を共用して、第２ビットプレーンの各パスの復号を並列に行い、第２のデータレジスタ３２ｂに結果を出力する。なお、第１ビットプレーン復号部３０ａについては実線でデータの流れを図示し、第２ビットプレーン復号部３０ｂについては点線でデータの流れを図示している。
【００８７】
周辺情報レジスタ群２０の５種類のレジスタの内、第５レジスタはコードブロック内の係数の正負の符号を示すＳｉｇｎプレーンである。データ出力部３４は、第１ビットプレーン復号部３０ａによる第１ビットプレーンの復号結果を第１のデータレジスタ３２ａから読み取り、第２ビットプレーン復号部３０ｂによる第２ビットプレーンの復号結果を第２のデータレジスタ３２ｂから読み取り、さらに、周辺情報レジスタ群２０のＳｉｇｎプレーンから係数の正負の符号を示す極性データを読み取り、最終的にＳｉｇｎプレーンと、ＭＳＢからＬＳＢまでのプレーンからなる復号されたコードブロック３６の形で復号結果を出力する。
【００８８】
本実施の形態では、周辺情報レジスタ群２０が２枚のビットプレーンで共有され、さらに各ビットプレーン内の各処理パスによっても共有される。そのため、周辺情報レジスタ群２０の構成が、実施の形態１〜５とは一部異なる。以下、周辺情報レジスタ群２０の構成と並列動作について詳しく説明する。
【００８９】
図１９は、ビットプレーンの各ストライプにおける縦横４ピクセル、合計１６ピクセルの最小処理単位６０とその周囲の隣接ピクセル群を示す図である。この最小処理単位６０は、周辺情報レジスタ群２０の各レジスタから周辺情報を読み出す単位であり、各レジスタ列のレジスタブロックに相当する。実施の形態１で既に説明したように、Ｓパスでは、処理対象の係数に対して周囲の８個の近傍係数の有意性状態の情報が必要である。そのため、縦横４ピクセルの領域について１ピクセル毎に復号処理を行う際、斜線で示した隣接ピクセルについて周辺情報が必要となる。
【００９０】
上下の６ピクセルずつの隣接ピクセル群６２、６４は、当該ストライプにはなく、上下のストライプに位置する。また、左右に４ピクセルずつの隣接ピクセル群６１、６３は、同一のストライプにおいて隣のレジスタブロックの位置にある。
【００９１】
図２０は、図１９の最小処理単位６０の周囲の隣接ピクセル群６１〜６４のレジスタ上の対応する位置を説明する図である。ある時刻において、ストライプ２がＲパスの処理対象、ストライプ３がＳパスの処理対象、ストライプ４が前のビットプレーンのＣパスの処理対象であるとする。
【００９２】
Ｒパスでは、ストライプ２について、現在、左端に位置するレジスタブロックＲ２２から周辺情報を読み出して復号処理を行っている。Ｓパスでは、ストライプ３について、現在、左端に位置するレジスタブロックＲ３４から周辺情報を読み出して復号処理を行っている。Ｃパスでは、ストライプ４について、現在、左端に位置するレジスタブロックＲ４６から周辺情報を読み出して復号処理を行っている。このように、処理パス単位の並列処理では、各処理パスの復号箇所は、周辺情報の更新の影響を避ける目的で、水平方向に最低２ブロックずれるように制御される。
【００９３】
いま、Ｓパスがストライプ３の復号処理において参照しているレジスタブロックＲ３４に注目すると、最小処理単位６０は、このレジスタブロックＲ３４の位置にある。一方、上下の６ピクセルずつの隣接ピクセル群６２、６４は、それぞれストライプ２のレジスタブロックＲ２４、ストライプ４のレジスタブロックＲ４４の位置にある。また、左右の４ピクセルずつの隣接ピクセル群６１、６３は、それぞれストライプ３のレジスタブロックＲ３３、Ｒ３５の位置にある。Ｓパスの処理を行うためには、これらの隣接ピクセル群６１〜６４の周辺情報をそれぞれの位置のレジスタブロックから取り出す必要がある。
【００９４】
図２１は、周辺情報レジスタ群２０の第１、第５レジスタの構成を説明する図である。実施の形態１の周辺情報レジスタ群２０の各レジスタと同様に、ビットプレーンのストライプに対応したレジスタ列が並んでおり、各レジスタ列は、リングバッファのように４ビットずつ独立にリング上にシフトして左端から読み出しと書き込みが可能である。本実施の形態では、第１、第５レジスタに限り、左端の各レジスタブロックＲ００、Ｒ１０、…、Ｒ７０の４ビット、右隣のレジスタブロックＲ０１、Ｒ１１、…、Ｒ７１の左側１ビット、および論理的に左隣（実際には右端）の各レジスタブロックＲ０７、Ｒ１７、…、Ｒ７７の右側１ビットの合計６ビットが出力される。
【００９５】
さらに、第１、第５レジスタに限り、ストライプ１〜７に対応する各レジスタ列内の全レジスタブロックを横断する上端１ビット列は、それぞれシフタ７１〜７７に入力されて保持される。ストライプ０〜６に対応する各レジスタ列内の全レジスタブロックを横断する下端１ビット列は、それぞれシフタ８０〜８６に入力されて保持される。各シフタ７１〜７７、８０〜８６は、入力が３２ビットで、出力が６ビットであり、シフト量の指示を与えることで、図２０で説明した上下の６ピクセルずつの隣接ピクセルが出力される。このように第１、第５レジスタでは、上下の隣接ピクセルの読み出しのために、合計１４個のシフタ７１〜７７、８０〜８６が設けられる。
【００９６】
なお、周辺情報レジスタ群２０の内、第２、３、４のレジスタについては、隣接ピクセルの情報の読み出しを必要としないので、実施の形態１のレジスタと同じ構成でよい。また、実施の形態１では、パス単位の並列化を行っていないので、各ストライプでパス処理をずらす必要がないため、実施の形態１では、第１、第５のレジスタについても、シフタの構成が不要であった点に留意する。
【００９７】
再び、図２０を参照して、上下の隣接ピクセルをシフタで取り出すためにシフタに与えるシフト量を説明する。下側の隣接ピクセル４４を取り出すためのシフト量は、Ｃパスで現在参照しているレジスタブロックＲ４６の水平位置すなわち６から、Ｓパスが現在参照しているレジスタブロックＲ３４の水平位置すなわち４を引くことにより求められ、シフト量は２である。コンテクスト推定部２２は、図２１のストライプ４に対応するレジスタ列の上側のシフタ７４に対してシフト量２を与えることで、シフタの保持する３２ビットの情報を右へ２ブロック分だけシフトさせて、この隣接ピクセル４４の周辺情報を取り出すことができる。
【００９８】
同様に、上側の隣接ピクセル４２を取り出すためのシフト量は、Ｒパスで現在参照しているレジスタブロックＲ２２の水平位置すなわち２から、Ｓパスが現在参照しているレジスタブロックＲ３４の水平位置すなわち４を引くことにより求められ、シフト量は−２である。コンテクスト推定部２２は、図２１のストライプ２の下側のシフタ８２に対してシフト量−２を与えることで、シフタの保持する３２ビットの情報を左へ２ブロック分だけシフトさせて、この隣接ピクセル４２の周辺情報を取り出すことができる。
【００９９】
図２２は、周辺情報レジスタ群２０を共有してビットプレーン単位およびパス単位で並列処理を行う様子を説明する図である。同図は、ある時刻において、ストライプ７では、前のビットプレーンのＣパスが処理され、ストライプ６、５、４では、それぞれ現ビットプレーンのＳパス、Ｒパス、Ｃパスがそれぞれ処理され、ストライプ３、２、１では、それぞれ次のビットプレーン（ここでは、最下位のビットプレーン）のＳパス、Ｒパス、Ｃパスがそれぞれ処理され、ストライプ０では、次のコードブロックの最初のＣパスが処理されている状態を示している。それぞれの処理パスで参照されているレジスタブロックを斜線で示している。実際には、斜線を付したレジスタブロックが左端に位置しているが、ここでは説明の便宜上、各レジスタ列のレジスタブロックをシフトさせないで、参照されるレジスタブロックの位置の方をずらして図示している。
【０１００】
パス単位の並列化を行う際、第１、第５レジスタでは隣接ピクセルが重なり合う可能性があり、隣接ピクセルが重なった場合、周辺情報の更新により影響を及ぼし合う。そこで、隣接ピクセルが重ならないように、上下のストライプで、各処理パスが参照するレジスタブロックが水平方向に２だけずれるように制御する。
【０１０１】
たとえば、ストライプ６でＳパスが参照するレジスタブロックＲ６６の水平位置と、ストライプ５でＲパスが参照するレジスタブロックＲ５４の水平位置は、２ブロック分ずれている。このように２ブロックだけずらしておけば、上下の隣接ピクセルは重なりをもたないため、周辺情報が更新されても影響を及ぼし合うことがない。
【０１０２】
パス単位の並列化では、自分の処理パスの復号位置が前のパスの復号位置と水平方向に少なくとも２ブロック分ずれるように制御する。このため、上下のストライプで復号位置の差が２ブロックよりも小さくなる場合は、当該処理パスを停止し、少なくとも２ブロックだけずれたタイミングで動作を再開するように制御するタイミング制御部が設けられる。
【０１０３】
図２３は、各処理パスの復号開始タイミング制御を説明するタイミングチャートである。第１ビットプレーン復号部３０ａ（以下、ＢＰ０と略す）による各処理パスのストライプの処理タイミングと、第２ビットプレーン復号部３０ｂ（以下、ＢＰ１と略す）による各処理パスのストライプの処理タイミングとが示されている。
【０１０４】
時刻ｔ１において、ＭＳＢブレーンに対してＢＰ０によるＣパスの処理が開始される。ｓｔ０〜ｓｔ７はそれぞれストライプ０〜７の処理タイミングを図示したものである。時刻ｔ２において、２番目のプレーンにおいてＢＰ１によるＳパスの処理が開始される。ここで、ＢＰ１によるＳパス処理がストライプ０の復号を開始する時刻ｔ２は、ＢＰ０によるＣパス処理がストライプ１に進み、参照するレジスタブロックの位置が２ブロックだけ離れたときである。このタイミング制御を図２４を用いて説明する。
【０１０５】
図２４は、図２３の復号開始タイミング制御を詳しく説明するタイミングチャートである。上段には、ＢＰ０によるＣパスのストライプ０、ストライプ１の復号処理のタイミングがレジスタブロックＲ００〜Ｒ０７、Ｒ１０〜Ｒ１７の処理単位で図示されている。下段には、ＢＰ１によるＳパスのストライプ０の復号処理のタイミングがレジスタブロックＲ００〜Ｒ０７の処理単位で図示されている。
【０１０６】
ＢＰ０によるＣパス処理がストライプ１の３番目のレジスタブロックＲ１２の位置まで進んだ時点ｔ２において、ＢＰ１によるＳパス処理がストライプ０の最初のレジスタブロックＲ００の位置で開始する。このとき、ストライプ１とストライプ０で各パスの復号位置が２ブロック分ずれているため、隣接ピクセルの重なりは生じない。以降、２ブロック分だけずれた状態で、ストライプ１についてはＢＰ０によるＣパス処理、ストライプ０についてはＢＰ１によるＳパス処理が進む。
【０１０７】
時刻ｔ７において、ＢＰ１によるＳパス処理では、ストライプ０の２番目のレジスタブロックＲ０１の位置の復号処理が終了するが、ＢＰ０によるＣパス処理では、ストライプ１の４番目のレジスタブロックＲ１３の位置の復号処理に時間がかかり、まだ終了していない。このとき、ＢＰ１によるストライプ０のＳパス処理は一旦停止する。
【０１０８】
時刻ｔ８において、ＢＰ０によるＣパス処理でストライプ１の４番目のレジスタブロックＲ１３の位置の復号処理が終了すると、ＢＰ１によるストライプ０のＳパス処理が再開し、３番目のレジスタブロックＲ０２の位置の復号処理を開始する。このとき、ＢＰ０によるストライプ１のＣパス処理は５番目のレジスタブロックＲ１４の位置の復号処理を始める。この動作タイミング制御により、ストライプ１についてのＣパス処理、ストライプ０についてのＳパス処理は２ブロック分だけずれた状態が保持される。
【０１０９】
再び、図２３に戻り、時刻ｔ３において、ＢＰ１によるＲパスが２番目のプレーンのストライプ０の復号を開始する。ここで、ＢＰ１によるＲパス処理がストライプ０の復号を開始する時刻ｔ３は、ＢＰ１によるＳパス処理がストライプ１に進み、参照するレジスタブロックの位置が２ブロックだけ離れたときである。このタイミング制御は図２４と同じである。以下、同様にして、時刻ｔ４において、ＢＰ１によるＣパス処理がストライプ０の復号を開始する。
【０１１０】
さらに、ＢＰ１によるＣパス処理がストライプ１に進み、参照するレジスタブロックの位置が２ブロックだけ進んだ時点ｔ５において、ＢＰ０によるＳパス処理が３番目のプレーンのストライプ０の復号を開始する。同様にして、時刻ｔ６では、ＢＰ０によるＲパス処理がストライプ０の復号を開始する。
【０１１１】
このようにして、周辺情報レジスタ群２０を共有しながら、２つのビットプレーンの各パスの処理が並列に実行される。
【０１１２】
図２５は、コードブロックの復号開始タイミング制御を説明するタイミングチャートである。上段には、ＢＰ０によるＳパス、Ｒパス、Ｃパスにおける各ストライプの復号タイミングが図示されている。下段には、ＢＰ１によるＳパス、Ｒパス、Ｃパスにおける各ストライプの復号タイミングが図示されている。現在のコードブロックの処理については、斜線が付されており、次のコードブロックの処理については、斜線が付されていない。
【０１１３】
ＢＰ０では、現在のコードブロックのＬＳＢプレーンについて、Ｓパス、Ｒパス、Ｃパスの順に処理が進み、時刻ｔ１１で当該コードブロックの最後のＣパスの処理が終了している。一方、ＢＰ１では、現在のコードブロックのＬＳＢより一つ上のプレーンについて、Ｓパス、Ｒパス、Ｃパスの順に処理が進み、ＢＰ０のコードブロックの復号終了時刻ｔ１１よりも早い時刻ｔ１０において当該プレーンのＣパスの処理が終了している。そこで、ＢＰ０によりコードブロックの最後のパスが終了する時刻ｔ１１を待たずに、ＢＰ１によりＬＳＢより一つ前のプレーンのＣパスが終了した時点ｔ１０において、ＢＰ１によって次のコードブロックの最初のＣパス処理を開始する。この動作制御により、次のコードブロックのＭＳＢプレーンのＣパス処理を早期に連続して実行することができる。
【０１１４】
以降、ＢＰ１によるＣパス処理がＭＳＢプレーンのストライプ１まで進んでから、ＢＰ０によるＳパス処理が次のプレーンのストライプ０から始まる。以降、順にＢＰ０によるＲパス処理、Ｃパス処理、さらに、ＢＰ１によるＳパス処理、Ｒパス処理が始まる。各パスの処理開始タイミング制御は図２３、２４で既に説明した通りである。
【０１１５】
以上説明したように、本実施の形態によれば、各パスの復号部１２Ｓ、１２Ｒ、１２Ｃが周辺情報レジスタ群２０を共有して、１サイクルで一連の復号処理を完結できることを利用して、ビットプレーン単位およびパス単位で算術復号を並列して行うことができる。算術復号は周辺情報の更新をしながら行うため、一般には復号処理の並列化は困難であるが、本実施の形態では、周辺情報レジスタ群２０の更新が算術復号と同一サイクルで行えるため、ビットプレーン単位の並列化だけでなく、パス単位の細かい並列化もできる。また、符号化画像のヘッダに各パスのバイト数の情報が含まれていない場合は、少なくともビットプレーン単位の並列化ができる。
【０１１６】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を以下に示す。
【０１１７】
上記のいずれの実施の形態の画像復号装置も、入力された原画像をＪＰＥＧ２０００方式により圧縮符号化する画像符号化装置と一体化されてもよく、その場合、画像復号装置と画像符号化装置の間で、周辺情報レジスタを共用し、画像符号化装置においても復号の際と同様の周辺情報レジスタを利用する算術符号化部の構成を設けてもよい。ただし、符号化の場合は、周辺情報レジスタの内容は、原画像データからあらかじめ作成することができるため、復号時のように周辺情報レジスタの内容を演算結果によって更新する必要はない。
【０１１８】
上記の実施の形態の画像復号装置は、画像撮像ブロックと撮影した画像を算術符号化する画像符号化部を含むデジタルカメラに組み込まれ、算術符号化された画像を復号し再生するために用いられてもよい。また、上記の実施の形態の画像復号装置は監視カメラの信号処理部に組み込まれ、ＪＰＥＧ２０００方式で符号化された監視画像の復号再生に利用されてもよい。監視カメラで撮影され、符号化された画像データがネットワーク経由で送信され、ネットワークに接続した画像復号装置が、ネットワークから受信した符号化画像データを復号して再生する構成でもよい。
【図面の簡単な説明】
【０１１９】
【図１】実施の形態１に係る画像復号装置の構成図である。
【図２】図１のエントロピー復号部の構成図である。
【図３】図２のエントロピー復号部で復号処理されるコードブロックのビットプレーンを説明する図である。
【図４】ビットプレーン上の係数を復号する際の走査順序を説明する図である。
【図５】ビットプレーン上の復号対象の係数の周囲に隣接する近傍係数を説明する図である。
【図６】Ｓパス処理におけるコンテクストの分類テーブルを説明する図である。
【図７】極性ビットのコンテクスト決定のための垂直指標および水平指標テーブルを説明する図である。
【図８】極性ビットに対するコンテクストの分類テーブルを示す図である。
【図９】Ｒパス処理におけるコンテクストの分類テーブルを示す図である。
【図１０】Ｃパス処理におけるコンテクストの分類テーブルを示す図である。
【図１１】周辺情報レジスタ群の各レジスタの構成を説明する図である。
【図１２】図１１の各レジスタ列の動作を説明する図である。
【図１３】実施の形態２に係る画像復号装置におけるエントロピー復号部の構成図である。
【図１４】実施の形態３に係る画像復号装置におけるエントロピー復号部の構成図である。
【図１５】図１４の復号位置算出部による復号位置の算出手順を説明する図である。
【図１６】実施の形態４に係る画像復号装置におけるエントロピー復号部の構成図である。
【図１７】実施の形態５に係る画像復号装置におけるエントロピー復号部の構成図である。
【図１８】実施の形態６に係る画像復号装置におけるエントロピー復号部の構成図である。
【図１９】ビットプレーンの各ストライプにおける最小処理単位とその周囲の隣接ピクセル群を示す図である。
【図２０】図１９の最小処理単位の周囲の隣接ピクセル群のレジスタ上の対応する位置を説明する図である。
【図２１】周辺情報レジスタ群の第１、第５レジスタの構成を説明する図である。
【図２２】周辺情報レジスタ群を共有してビットプレーン単位およびパス単位で並列処理を行う様子を説明する図である。
【図２３】各処理パスの復号開始タイミング制御を説明する図である。
【図２４】図２３の復号開始タイミング制御を詳しく説明する図である。
【図２５】コードブロックの復号開始タイミング制御を説明する図である。
【符号の説明】
【０１２０】
１０  ストリーム解析部、  １２  エントロピー復号部、  １４  逆量子化部、  １６  ウェーブレット逆変換部、  ２０  周辺情報レジスタ群、  ２２  コンテクスト推定部、  ２３  コンテクストレジスタ、  ２４  算術復号部、  ２５  更新判定部、  ２６  画像バッファ、  ２７  復号位置算出部、  ２８  周辺情報読取部、  ３０ａ  第１ビットプレーン復号部、  ３０ｂ  第２ビットプレーン復号部、  １２Ｓ  Ｓ、Ｒ、Ｃパス復号部、  １２Ｒ  Ｒパス復号部、  １２Ｃ  Ｃパス復号部、  ４０  エントロピー復号部、  １００  画像復号装置。
【図１】
2005229218.tif 000003
【図２】
2005229218.tif 000004
【図３】
2005229218.tif 000005
【図４】
2005229218.tif 000006
【図５】
2005229218.tif 000007
【図６】
2005229218.tif 000008
【図７】
2005229218.tif 000009
【図８】
2005229218.tif 000010
【図９】
2005229218.tif 000011
【図１０】
2005229218.tif 000012
【図１１】
2005229218.tif 000013
【図１２】
2005229218.tif 000014
【図１３】
2005229218.tif 000015
【図１４】
2005229218.tif 000016
【図１５】
2005229218.tif 000017
【図１６】
2005229218.tif 000018
【図１７】
2005229218.tif 000019
【図１８】
2005229218.tif 000020
【図１９】
2005229218.tif 000021
【図２０】
2005229218.tif 000022
【図２１】
2005229218.tif 000023
【図２２】
2005229218.tif 000024
【図２３】
2005229218.tif 000025
【図２４】
2005229218.tif 000026
【図２５】
2005229218.tif 000027