(57)【要約】【課題】  ＪＰＥＧ２０００に準拠する符号化・復号処理装置の係数ビットモデリング部において、コードブロックを分割したサブブロックの符号化・復号処理を効率よく行う。【解決手段】  コードブロックが複数に分割されたサブブロック単位で処理するパスにおける処理対象のビットを、探索して符号化、又は復号の処理を行うＪＰＥＧ２０００のビットモデリング処理装置において、一つのサブブロックに対するＳｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎパスの処理中に、そのサブブロックにてその後で実施されるＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパスでの処理対象ビットが存在するか否かの情報を生成して格納し、その後のＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパス処理時に、上記の格納情報に基づき、処理対象ビットを含むサブブロックのみ選択して処理することを特徴とする。【選択図】図１
2006033179.tif 000002
【特許請求の範囲】
【請求項１】
コードブロックが複数に分割されたサブブロック単位で処理するパスにおける処理対象のビットを、探索して符号化、又は復号の処理を行うＪＰＥＧ２０００のビットモデリング処理装置において、
一つのサブブロックに対するＳｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎパスの処理中に、
そのサブブロックにてその後で実施されるＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパスでの処理対象ビットが存在するか否かの情報を生成して格納し、
その後のＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパス処理時に、上記の格納情報に基づき、処理対象ビットを含むサブブロックのみ選択して処理することを特徴とするビットモデリング処理装置。
【請求項２】
上記の格納情報に基づき、
Ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパスで処理対象となるビットを含むサブブロックが、一つのビットプレーン全体に無ければ、そのパスの処理を行わないことを特徴とする請求項１に記載のビットモデリング処理装置。
【請求項３】
請求項１又は請求項２に記載のビットモデリング処理装置を含むことを特徴とするＪＰＥＧ２０００の符号化復号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＪＰＥＧ２０００に準拠する符号化処理装置に関し、特に同装置の中の係数ビットモデリング処理部に関する。
【背景技術】
【０００２】
図９（１）は、ＪＰＥＧ２０００における符号化処理の概略フロー図である。
【０００３】
画像データは、ＤＣレベルシフト・色変換処理部１０２、ウエーブレット変換部１０４、量子化部１０６により、サブバンド毎の係数データに変換され、係数ビットモデリング部１０８に入力される。係数ビットモデリング部１０８は、係数データを基にして、後段のＭＱ符号化部１１０で順次ビットデータが符号化されていく際に用いられる、既に符号化されたビットデータから抽出される符号化情報（コンテキストと言う。）と、実際に符号化されるビットデータ（ディシジョンと言う。）を生成する。更に、ＭＱ符号化部１１０にて、そのコンテキストとディシジョンより符号データが生成され、最終的に符号形成部１１２にてＪＰＥＧ２０００符号となる。
【０００４】
図９（２）は、係数ビットモデリング部１０８とＭＱ符号化器１１０の間のデータの流れを示す図である。係数ビットモデリング部１０８は、入力される係数データよりコンテキスト（ＣＸ）、ディシジョン（Ｄ）を生成し、ＭＱ符号化器１１０は、それらより符号データ（Ｃ）を生成する。図９（３）は、復号時の係数ビットモデリング部１０８とＭＱ復号器１１１の間のデータの流れを示す図である。復号時には、まずＭＱ復号器１１１が入力される符号データ（Ｃ）よりディシジョン（Ｄ）を生成し、係数ビットモデリング部１０８はそのディシジョンより係数データを構成していくと同時に、ＭＱ復号器１１１が次のディシジョンを生成するのに用いるコンテキスト（ＣＸ）を生成する。
【０００５】
次に、係数ビットモデリング部１０８において、係数データよりコンテキストを生成していく手順（ビットモデリングの手順）を説明する。
【０００６】
各サブバンド内の係数データは、まず、互いに独立して符号化が行われるコードブロックと呼ばれる矩形領域に分割される。このとき、係数データは、絶対値と符号（サインビット）とで表され、更に、その絶対値の精度は量子化結果がオーバーフローしないようサブバンド毎に予め決められている。その絶対値はコードブロック内でビットプレーンに分割され、その上位のビットプレーンから順に符号化が行われる。含まれる全てのビットデータが０であるビットプレーンが最上位から続く場合その連続するビットプレーン（ゼロビットプレーン）のみが別の方式の符号化の対象となり、１のビットデータを含む最初のビットプレーンより下位のビットプレーンが、ビットモデリングを用いる符号化の対象となる。
【０００７】
図６（１）は、画像データがウエーブレット変換によりサブバンド毎の係数データに変換されている例を示す概念図である。この例では、画像データは３レベルのウエーブレット変換により、３ＬＬ〜１ＨＨまでの１０個のサブバンドの係数データに変換されている。
【０００８】
図６（２）は、１つのサブバンドが複数のコードブロックに分割されている例を示す図である。この例では、１つのコードブロックの大きさは３２×３２（ビット）であり、図のサブバンドは０から１５までの１６個のコードブロックに分割される。また、このサブバンドでは、係数データの絶対値はＭビットの精度で表される。
【０００９】
図６（３）は、コードブロックの係数データがビットプレーンに分割されている例を示す概念図である。この例では、コードブロックの係数データは、Ｍ個のビットプレーン（ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側からＢＰ（Ｍ−１）、ＢＰ（Ｍ−２）、・・・、ＢＰ（０））に分割され、各ビットプレーンは３２×３２個のビットデータより成る。
【００１０】
図６（４）は、このコードブロック内のビットプレーンが、上位から続くゼロビットプレーンとビットモデリングを用いた符号化の対象となるビットプレーンとに分割されている様子を示す図である。ここで、ＢＰ（Ｎ−１）はＭＳＢ側から見て始めて１を含むビットプレーンである。ＢＰ（Ｍ−１）からＢＰ（Ｎ）までのビットプレーンはすべてのビットデータが０であるから、その枚数（Ｍ−Ｎ）が符号化される。ＢＰ（Ｎ−１）からＢＰ（０）までのビットプレーンがビットモデリングを用いた符号化の対象となる。
【００１１】
次に、ビットプレーン毎に行われるビットモデリングの手順を、符号化処理を例にして説明する。
【００１２】
各コードブロックに含まれる全係数データには、それぞれ符号化を開始した時点で０となっている“ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ”と呼ばれる１ビットの変数が、与えられる。上位のビットプレーンから符号化が行われていく過程で、各係数データの絶対値は、上位のビットから１ビットずつ符号化されるが、最初に有意なデータである１が符号化された時点でこの係数の“ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ”も１となり、その後は１を保持する。以下において、“ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ”が１となった係数データを有意状態、０のままの係数データを非有意状態と表現する。また、符号化対象となるコードブロック外側のデータは、常に非有意状態として扱う。
【００１３】
まず、ビットプレーンを決められた順番でスキャンしていき、ある特定の条件にあてはまるビットを探索する。その条件に当てはまるビットが見つかればそのビットを符号化対象ビットとしてコンテキストを生成し、符号化を行う。そのビットプレーンのスキャンが終るまで同じ条件での符号化対象ビットの探索、コンテキスト生成、符号化を繰り返す。１回のスキャンが終了した時点ではまだそのビットプレーンには符号化されていないビットが残っているのが通常である。そこで、再度ビットプレーンのスキャンをしていくが、次は異なった条件での探索となり、その条件に当てはまるビットがあればそれを符号化対象ビットとして、コンテキスト生成、符号化をおこなう。１回のスキャンと符号化対象ビットの探索・コンテキストの生成・符号化の過程をパスと呼び、計３つのパスでそのビットプレーンに含まれる全てのビットの符号化が完了する。
【００１４】
符号化対象となるビットを探索するためそのビットプレーンをスキャンする順番を、図７に示す。ビットプレーンは、左上のビットから各縦方向に４ビットずつのグループ（列）に分けられる。スキャンは、グループ（列）内では上のビットから下のビットに、ビットプレーン内ではそのグループを左上から右下へ行われる。この順番は全パス共通である。
【００１５】
各ビットプレーンの最初の符号化パスは、Ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎパスと呼ばれる（以下では、ＳＰパスと言う。）。このパスにおいて、符号化の対象となるビットは、探索の時点で自らは非有意な状態で、周囲８個の係数データのうち少なくとも１つが有意状態にある係数データのビットである。さらに、対象となるビットの値が１であった場合、そのビットに続きその係数データのサインビットが符号化対象となる。２番目のパスは、Ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパスと呼ばれる（以下では、ＭＲパスと言う。）。このパスにおいて、自らが有意な状態であり、かつ、直前のＳＰパスで符号化対象とならなかった係数データのビットが符号化される。最後のパスは、Ｃｌｅａｎ  ｕｐパスと呼ばれる（以下では、ＣＵパスと言う。）。このパスにおいて、直前のＳＰパス、ＭＲパスで符号化されなかった全てのビットが符号化される。ＣＵパスでもＳＰパスと同様、ビットデータとして１が符号化されると、その係数データのサインビットが符号化される。
【００１６】
探索された符号化対象ビットに対して生成されるコンテキストは、パス毎に異なっている。ＳＰパスでは、符号化対象ビットの周囲８個の係数データのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅや、符号化対象となるビットを含む上下左右の係数データのサインデータなどより、コンテキストが生成される（ｎｅｉｇｈｂｏｒ  コンテキスト）。図１０（１）（２）は、ＬＬサブバンド、ＬＨサブバンドに含まれるコードブロックの符号化においてＳＰパスで生成されるコンテキストを示す。図１０（１）のＸを符号化の対象となるビットとしたとき、図１０（２）に示すようにその周囲８個の係数データのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅによりコンテキストが決定される。図１０（２）におけるΣＨｉはＸの左右の係数データ（Ｈ０、Ｈ１）のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅの合計を表している。ΣＶｉ、ΣＤｉも同様に、上下（Ｖ０、Ｖ１）、斜め（Ｄ０、Ｄ１、Ｄ２、Ｄ３）の係数データのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅの合計である。なお、このときのディシジョンは、ビットデータ自身となる。
【００１７】
図１１（１）（２）は、サインビットを符号化する際に生成されるコンテキストを示している。この場合、符号化対象の係数データの上下左右４個のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとサインデータより、コンテキストが生成される。また、サインビットを符号化する場合のディシジョンは、図１１（２）で示されるＸＯＲｂｉｔとサインビットとのＥＸＯＲ（排他的論理和）をとったものとなる。
【００１８】
ＭＲパスでは、符号化対象となったビットがその係数で初めてＭＲパスで符号化されるビット（Ｆｉｒｓｔ  ｒｅｆｉｎｅｍｅｎｔ）かどうかということと、周囲の係数データのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとで、コンテキストが決定される。図１２にＭＲパスで生成されるコンテキストを示す。また、ＭＲパスでのディシジョンは、ビットデータそのものである。
【００１９】
ＣＵパスでのコンテキストの生成について示す。次の（ａ）且つ（ｂ）の場合には、ランレングス（ｒｕｎ−ｌｅｎｇｔｈ）コンテキストと呼ばれる単独のコンテキストが使われる。
（ａ）図７の１つの列に含まれる４つのビットデータ全てがＣＵパスで符号化される。
（ｂ）その４つのビットそれぞれの周囲８個のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅがすべて０である。
このとき、この列の４つのビットデータが全て０であればディシジョンとして０を符号化してこれら４つのビットの符号化を終了する。この列の４つのビットに一つでも１があればディシジョンとして１を符号化する。更に、４つのビットのうち最初にどの位置のビットが１となっているかを２ビットのデータで表して、それをＵＮＩＦＯＲＭコンテキストと呼ばれる単独のコンテキストで１ビットずつ符号化する。その後で、その最初に１となったビットのサインビットを、図１１を用いて符号化する。
【００２０】
この時点で、まだ、この列で符号化されていないビットがあれば、それらを上から順に１ビットずつ（ＳＰパスと同じ）ｎｅｉｇｈｂｏｒコンテキストを使って符号化する。上記（ａ）あるいは（ｂ）の条件が満たされない場合、あるいは、１つの列のビットの数が３個以下の場合は、１ビットずつ（ＳＰパスと同じ）ｎｅｉｇｈｂｏｒコンテキストを使って符号化する。
【００２１】
図８（ア）（イ）（ウ）（エ）により、ビットモデリングの符号化処理の具体例を説明する。これらの図は、３×４のサイズのコードブロックの一つのビットプレーンを３つのパスで符号化していく様子を示している。このビットプレーンにはａ１〜ｃ４までの１２個のビットがあり、各ビット位置に示している１、０の数字はビットデータを表している。また、背景にハッチが掛かっているビットデータは、その係数データがすでに有意状態となっていることを示す。図８（ア）は、このビットプレーンの符号化を開始する直前の各ビットデータの様子を表しており、この時点ではａ１のみが有意状態となっている。各パスにおいてａ列、ｂ列、ｃ列の順に、各列内では１、２、３、４の順にスキャンされ符号化対象となるビットが探索されていく。
【００２２】
図８（イ）は、ＳＰパスでの符号化の様子を示している。自らは非有意状態で、周囲８個の係数のうち少なくとも１つが有意状態にある最初のビットは“ａ２”であるので、ＳＰパスにおいてはこのビットが最初に符号化される。ａ２の周囲８個の係数データのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅより、ｎｅｉｇｈｂｏｒコンテキストが生成される。ａ２のビットデータが１であるので、次にａ２のサインビットの符号化が行われる。図８（イ）（１）はａ２の符号化を終了した時点での、このビットプレーンの様子を示している。この時点でａ２のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅが１となり、以後この位置の係数データは有意な状態として扱われる（このビットは既に符号化されたことを示すため、ビットデータ値が消去されている。）。次に符号化の対象となるのはａ３のビットであるが、データが０であるので、このビットが符号化されてもこの位置は非有意の状態が保たれる。ａ３のビットの符号化が終わった時点での、ビットプレーンの様子を図８（イ）（２）に示す。更に、ｂ１、ｂ２、ｂ３の順で符号化が行われる。図８（イ）（３）、（４）、（５）は、それぞれのビットの符号化が終わった時点でのビットプレーンの様子を表している。
【００２３】
ここで注意する必要があるのは、ＳＰパスでの符号化が開始された時点で有意な状態にあったのはａ１のみであったため、その時点で符号化対象となる条件を満たしているのはその周囲のａ２、ｂ１、ｂ２のみであったものが、ａ２の処理が終った時点でこのビットも有意となったために、ＳＰパスでの符号化対象にａ３、ｂ３が加わり、さらに次の対象ビットがａ３となった点である。即ち、ＳＰパスにおいては、ビットを処理する毎に符号化対象となるビットが増え、処理順も変わる可能性がある。
【００２４】
次に、ＭＲパスで符号化が行われる。ＳＰパス終了時（図８（イ）（５））、自らが有意な状態で、且つ、直前のＳＰパスで符号化対象とならなかったのは、ａ１のみであり、ＭＲパスではこのビットだけが符号化の対象となる。ＭＲパスでの符号化終了時点のビットプレーンの様子を、図８（ウ）に示す。
【００２５】
最後に、ＣＵパスでの符号化が行われる。このパスでは、先のＳＰパス、ＭＲパスで符号化されなかった６つのビットが符号化の対象となる。まず、ａ４が最初の符号化対象ビットとなり、このときのコンテキストは周囲８個の係数データのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅより生成される（ｎｅｉｇｈｂｏｒコンテキスト）。また、ビットデータが１であるので、次にａ４のサインビットの符号化が行われる。ｂ４の符号化も、ｎｅｉｇｈｂｏｒコンテキストを用いて行われる。ａ４、ｂ４の２つのビットデータの符号化が終った時点でのビットプレーンの様子が、図８（エ）（１）、（２）に示される。ａ４の値が１であるため、図８（エ）（１）にてａ４が有意状態に変わっている。次に、ｃ１からのビットが符号化されるが、ｃ列（ｃ１、ｃ２、ｃ３、ｃ４）は上述のランレングスに係る（ａ）（ｂ）の条件を満たすので、４ビットまとめて符号化の対象となり、ランレングス（ｒｕｎ−ｌｅｎｇｔｈ）コンテキストが生成される。ｃ列すべてが０であれば、このときのディシジョンを０としてこのコードブロックの符号化が完了するが、ここではｃ３ビットが１なのでディシジョンを１として符号化し、続けて３ビット目に１があるという情報“１０”を、１ビットずつＵＮＩＦＯＲＭコンテキストを使って符号化する。更に、ｃ３ビットのサインビットとｃ４ビットとがｎｅｉｇｈｂｏｒコンテキストを使って符号化され、このコードブロックの符号化処理が終了する。
【００２６】
ＣＵパスにおいても、ＳＰパス同様、現在処理しているビットの値によって、その後のビットのコンテキストが違ってくる。例えば、ｂ４ビットの値が１であったとすると、処理後この係数データは有意状態となるのでｃ列は上述の（ｂ）の条件を満たさず、ｃ１から順番にｎｅｉｇｈｂｏｒコンテキストを用いて符号化されることになる。
【００２７】
以上、符号化処理を例にとってビットモデリングの手順を説明したが、復号処理も同様に、ビットプレーンの３パスでのスキャンと復号対象ビットの探索、コンテキストの生成という手順で行われる。ただし、符号化とは異なり、ＭＱ復号器が生成したコンテキストを用いて符号データよりディシジョンを決定するため、係数モデリング部では、その結果を受け取って係数データの構成を行っていく。特に、ＳＰパス、ＣＵパスでは、復号結果によって次の復号対象ビット、コンテキストが変わるので次の復号処理を行うまでにＭＱ復号器がディシジョンを生成するのを待つ必要がある。
【００２８】
次に、符号化処理、復号処理を行うビットモデリング装置の従来例について説明する。
【００２９】
先に説明したようにあるビットがそのパスでの処理対象かどうかを判断するにあたり、その位置と周辺８個（の位置）の係数のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅを用いる。ところで、ＭＲパス、ＣＵパスでは先のＳＰパスで処理対象とならなかったビットを選択する必要がある。そのため、符号化、復号処理においてはｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ以外に、ＳＰパスで処理対象となったかどうかの情報が必要となる。
【００３０】
ここで説明する従来例では、コードブロックの１つの係数データに、ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとは別に“ｐａｓｓ  ｂｉｔ”という変数を割り当て、この２つの変数を使って、符号化、あるいは復号処理の対象となるビットを探索する。“ｐａｓｓ  ｂｉｔ”は、ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとの組み合わせで意味合いが変る。つまり、その係数が非有意の場合、ｐａｓｓ  ｂｉｔが１であれば、直前のＳＰパスで処理対象となったことを示す。その係数が有意の場合、ｐａｓｓ  ｂｉｔが１であれば、このビットプレーンの処理開始時点でその係数が既に有意であったため直前のＳＰパスでの処理対象とならなかったことを示している。
【００３１】
図１３（１）（２）は、それぞれのパスでの処理対象となるｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ（以下、ｓｓと言う。）と、ｐａｓｓ  ｂｉｔ（以下、ｐｓと言う。）の組み合わせ、及び、そのビットを処理した後に更新される  ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ（ｓｓ）とｐａｓｓ  ｂｉｔ（ｐｓ）の値（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）を示す。
【００３２】
ＳＰパスでは、（ｓｓ、ｐｓ）＝（１、ｘ）の場合、その係数は既に有意になっているので処理は行わないが、すでに前のビットプレーンで有意となっていたことを示すため（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）＝（１、１）に書き換える。（ｓｓ、ｐｓ）＝（０、０）の場合、その周囲８個の係数のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅのどれかが１（ｎｅｉ＝１）であればそのビットを処理し、そのビットの値が１（ディシジョン、Ｄ＝１）であれば、（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）＝（１、０）に、０（Ｄ＝０）であれば（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）＝（０、１）にする。（ｓｓ、ｐｓ）＝（０、１）の場合は、その前のビットプレーンですでにＳＰパスで処理していることを示しているので無条件で処理し、そのビットの値が１（ディシジョン、Ｄ＝１）であれば、（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）＝（１、０）に更新する。
【００３３】
ＭＲパスでは、（ｓｓ、ｐｓ）＝（１、１）の係数のビットのみ処理する。
【００３４】
ＣＵパスでは、（ｓｓ、ｐｓ）＝（０、０）の係数のビットを処理し、そのビットの値が１（ディシジョン、Ｄ＝１）であれば、（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）＝（１、１）に更新する。
【００３５】
コードブロック全体は、縦方向に４つの係数が含まれる４×４などの矩形のサブブロックに分けて処理が行われる。図１４（１）は、１６×１６のコードブロックが４×４のサブブロックに分割されている様子を示している。この場合、０、１、２、・・・１５のサブブロックが順番に処理されていく。サブブロック領域に含まれるビットデータに関して、どのビットデータをどのパスで処理するかを決定し適切なコンテキストを生成するためには、上下左右でそのサブブロックより１つずつ大きな領域のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとサインビットの情報が必要となる。即ち、４×４のサブブロックに対しては、図１４（２）に示す６×６の領域のそれらの情報が必要となる。
【００３６】
図１５は、符号化ビットモデリング装置１０８の１つの例を示す。この例では、図１４（１）のようにコードブロックを４×４のサブコードブロックに分けて処理するものとする。
【００３７】
符号化時、ウエーブレット変換器１０４、量子化器１０６で変換された係数データは、絶対値とサインビットとに分けられてコードブロック毎に係数絶対値格納メモリ５８、サインビット格納メモリ５６に格納される。また、ｓｓフラグ格納メモリ５２、ｐｓフラグ格納メモリ５４には、そのコードブロックに含まれる係数のｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとｐａｓｓ  ｂｉｔが格納される。
【００３８】
その際、係数絶対値データとｐｓフラグは、４×４のサブブロック単位で１つのアドレス領域に格納されるが、サインビットとｓｓフラグは６×６の領域が読み出せるように格納される。このことは、例えば図１６（１）に示すように、Ａ、Ｂ２つのメモリに別々にデータを格納することで実現できる。図１６（１）におけるＡ０はメモリＡのアドレス０の領域に格納されているデータ、Ａ１はメモリＡのアドレス１の領域に格納されているデータ、・・・、Ｂ０はメモリＢのアドレス０の領域に格納されているデータ、Ｂ１はメモリＢのアドレス１の領域に格納されているデータ、・・・を示している。このようにメモリに格納しておき、更に図１６（２）に示すような、出力を次段の入力とする３段のレジスタにそれぞれのメモリからのリードデータを入力することで、通常のメモリを用いた６×６領域のデータの読み出しが可能となる。図１６（２）は、図１４（２）における“５”のサブブロックを処理する場合に必要となる６×６領域のデータが、レジスタに入力されている様子を示している。
【００３９】
メモリに格納されているデータのうち、該当する４×４の領域のビットデータとｐｓフラグを４×４領域レジスタ６８、６４に、その処理に必要な６×６領域のサインビットとｓｓフラグを６×６領域レジスタ６６、６２に読み込んだ後、ビットモデリング処理部２において、ＳＰパス・ＭＲパス・ＣＵパスで符号化処理するビットの決定、コンテキスト・ディシジョンの生成、ｓｓフラグとｐｓフラグの更新を行ってコードブロックの符号化を行っていく。
【００４０】
図１７は、ビットモデリング処理部２のブロック図である。
【００４１】
パスカウンター１６は３値のカウンターであり、ビットプレーンの処理をしていくにあたって現在処理中のパスが、ＳＰパス、ＭＲパス、若しくはＣＵパスのいずれであるかを示し、１つのパスでの処理が終了するとインクリメントして次のパスを示す。ｐａｓｓ＿ｉｎｉｔは、このカウンター１６の初期化信号、ｐａｓｓ＿ｉｎｃｒｅｍｅｎｔは、インクリメント信号である。
【００４２】
アドレス生成部１４は、係数絶対値格納メモリ５８、サインビット格納メモリ５６、ｓｓフラグ格納メモリ５２、ｐｓフラグ格納メモリ５４から処理対象の４×４領域と６×６領域のデータを読み出す際のアドレスを生成し、その領域の処理が終る毎にインクリメントされる。ａｄｄ＿ｉｎｉｔは、アドレス初期化信号、ａｄｄ＿ｉｎｃｒｅｍｅｎｔは、アドレスインクリメント信号である。
【００４３】
パス決定ユニット４では、４×４のサブブロック中の１６個のビットのそれぞれに関して、現在のパスでの処理対象ビットかそうでないかをｓｓフラグ、ｐｓフラグより判断して出力する。
【００４４】
コンテキスト・ディシジョン生成部１０は、ｓｓフラグ、サインビットを使って４×４のサブブロックの１６個のビットのそれぞれに関して、図１０、図１１、図１２で示されるようなコンテキストとディシジョンデータを生成する。
【００４５】
ｓｓ、ｐｓフラグ更新部１２は、図１３に示す論理に基づき処理対象となったビット位置（ＮＸＴ＿ＢＩＴ）のｓｓフラグとｐｓフラグの更新値（ｎｅｗ  ｓｓ、ｎｅｗ  ｐｓ）を生成し、ｕｐｄａｔｅ信号が入力されるとそれぞれのデータを格納している６×６領域レジスタ６２、４×４領域レジスタ６４の値を更新する。
【００４６】
図１８（１）は、パス決定ユニット４の詳細なブロック図である。ＳＰパス処理抽出部７２、ＭＲパス処理抽出部７４、ＣＵパス処理抽出部７６は、１６個のビットが各パスでの処理対象となる図１３（２）の条件を満たしているかどうかを判断し、その結果として１６ビットからなるデータＩＮＰ＿ＳＰ、ＩＮＰ＿ＭＲ、ＩＮＰ＿ＣＵを出力する。それぞれの出力は、各ビットが処理対象となる条件を満たしていれば１、満たしていなければ０となっている。
【００４７】
４×４領域と６×６領域の各ビット位置を、図１８（２）（３）に示す番号・記号で示す。ＳＰパスでは、そのビットのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅが０で周辺の８個の係数のいずれかのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅが１であるビットが処理の対象となるので、その条件は、
ＩＮＰ＿ＳＰ（Ｎ）＝（ＳＳ（Ｎ）＝＝０）＆＆（ｎｅｉ（Ｎ）＞０），（０≦Ｎ≦１５）
となる。ここで、“ｎｅｉ（Ｎ）”はビット位置Ｎでの周辺８個のデータのｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅの合計値である。例えば、
ｎｅｉ（０）＝ＳＳ（ｃ０）＋ＳＳ（ｌ０）＋ＳＳ（ｌ１）＋ＳＳ（ｔ０）＋
ＳＳ（１）＋ＳＳ（ｔ１）＋ＳＳ（４）＋ＳＳ（５）
ｎｅｉ（５）＝ＳＳ（０）＋ＳＳ（１）＋ＳＳ（２）＋ＳＳ（４）＋ＳＳ（６）
＋ＳＳ（８）＋ＳＳ（９）＋ＳＳ（１０）
となる。
【００４８】
ＭＲパスでは、ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとｐａｓｓ  ｂｉｔが共に１となるビット、ＣＵパスでは、ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅとｐａｓｓ  ｂｉｔが共に０となるビットが処理対象となるので、その条件は、
ＩＮＰ＿ＭＲ（Ｎ）＝（ＳＳ（Ｎ）＝＝１）＆＆（ＰＳ（Ｎ）＝＝１）、（０≦Ｎ≦１５）
ＩＮＰ＿ＣＵ（Ｎ）＝（ＳＳ（Ｎ）＝＝０）＆＆（ＰＳ（Ｎ）＝＝０）、（０≦Ｎ≦１５）
となる。これら３つの出力から、パスカウンター１６のパスカウント値によって現在処理しているパスに対応するデータが選択され１６ビットのＩＮＰとして出力される。
【００４９】
パス決定ユニット４より出力されたＩＮＰ値は、マスクロジック部６に入力される。マスクロジック部６は、マスクレジスタ８より入力されるＭＳＫ値とＩＮＰ値のビット毎の論理和を以下のように算出してＭＳＫ＿ＩＮＰ値として出力する。
ＭＳＫ＿ＩＮＰ（Ｎ）＝ＩＮＰ（Ｎ）＆ＭＳＫ（Ｎ）、（０≦Ｎ≦１５）
【００５０】
上記のＭＳＫ値は、その４×４領域で直前に処理されたビットより位置的に先に探索されるビット位置のデータは０、それ以外は１となっている。即ち、
ＭＳＫ（Ｎ）＝０、（０≦Ｎ≦Ｍ）
ＭＳＫ（Ｎ）＝１、（Ｍ＜Ｎ≦１５）
（Ｍは同じ４×４領域内で直前に処理されたビットの位置）
となる。これにより、ＭＳＫ＿ＩＮＰを図１８（２）に示されたビット位置０から順に探索していって最初に１となっているビットが現在のパスで次に処理するビットとなる。これを実現するのが次段の処理ビット決定部１８である。
【００５１】
図１９は、処理ビット決定部１８の詳細なブロック図である。先に説明したように、入力されたＭＳＫ＿ＩＮＰは、プライオリティエンコーダ８４に入力されて次に処理するビット位置情報、ＮＸＴ＿ＢＩＴに変換される。この時の論理は、
ｉｆ  （ＭＳＫ＿ＩＮＰ［０］  ＝＝  １）      ＮＸＴ＿ＢＩＴ  ＝  ０
ｅｌｓｅ  ｉｆ  （ＭＳＫ＿ＩＮＰ［１］  ＝＝  １）    ＮＸＴ＿ＢＩＴ  ＝  １
ｅｌｓｅ  ｉｆ  （ＭＳＫ＿ＩＮＰ［２］  ＝＝  １）    ＮＸＴ＿ＢＩＴ  ＝  ２
ｅｌｓｅ  ｉｆ  （ＭＳＫ＿ＩＮＰ［３］  ＝＝  １）    ＮＸＴ＿ＢＩＴ  ＝  ３
・
・
ｅｌｓｅ  ｉｆ  （ＭＳＫ＿ＩＮＰ［１５］  ＝＝  １  ）  ＮＸＴ＿ＢＩＴ  ＝  １５
となる。また、ＭＳＫ＿ＩＮＰが全て０の場合、この４×４領域には現在のパスで処理対象となるビットが無いことを示しており、この時ＢＬＫ＿ＥＮＤ出力が１となる。
【００５２】
マスクレジスタ８では、ＮＸＴ＿ＢＩＴで選択された位置より先に探索されるビット位置のデータは０、それ以外は１となるＭＳＫデータを作成する。
【００５３】
選択・制御部２０は、ビットモデリング処理部２全体の制御を行うと同時に、現在のパス（パスカウント値）とビット位置（ＮＸＴ＿ＢＩＴ）より最終的なコンテキストとディシジョンを選択するブロックである。
【００５４】
図２０は、選択・制御部２０におけるコンテキストとディシジョンの選択の制御に係る概略のフローチャートである。
【００５５】
コードブロックの符号化をスタート（Ｓ００）した後、アドレスとパスカウント値が初期化され（Ｓ０２）、最初の４×４領域のｐｓフラグ、ビットデータ、６×６領域のｓｓフラグ、サインビットデータがそれぞれレジスタにロードされる（Ｓ０４）。その４×４領域に処理対象となるビットがあれば（ＢＬＫ＿ＥＮＤ＝０）、コンテキスト・ディシジョン生成部１０で生成された複数のコンテキストとディシジョンよりパスカウント値とＮＸＴ＿ＢＩＴの値により適切なコンテキストとディシジョンを選択して出力する。同時にＭＱ符号化器１１０に符号化を許可するためイネーブル（ＥＮ）を１とする（Ｓ０８）。次に図１３（２）で示される（ｎｅｘｔ  ｓｓ、ｎｅｘｔ  ｐｓ）を生成して４×４領域レジスタ６４にロードされているｐｓフラグ、６×６領域レジスタ６２にロードされているｓｓフラグを更新する（Ｓ１０）。更に、更新されたｐｓフラグ、ｓｓフラグを用いて処理対象ビットの探索を行い、同様のフローを繰り返す。その４×４領域の処理が終わると（ＢＬＫ＿ＥＮＤ＝１）、４×４領域レジスタ６４にロードされているｐｓフラグ、６×６領域レジスタ６２にロードされているｓｓフラグをそれぞれの格納メモリの（先に）読み出しを行ったのと同じアドレス領域に書き込む（Ｓ１２）。処理の終った４×４領域が、そのコードブロックの最後のサブブロックであるかどうかを判断し（Ｓ１４）、そうでなければ、アドレスをインクリメントし（Ｓ１８）次の４×４領域を処理するためのｐｓフラグ、ビットデータ、ｓｓフラグ、サインビットデータをレジスタにロードした後（Ｓ０４）そのサブブロックの処理を行っていく。Ｓ１４にて最後のサブブロックと判断されれば、処理したパスがコードブロックの最後のパスであるかどうかを判断し（Ｓ２２）、まだ、処理するパスが残っていれば、パスカウント値のインクリメントとアドレスの初期化を行い（Ｓ２４）新たなパスの符号化を行う。最後のパスであれば、処理を終了する（Ｓ３４）。
【００５６】
図２１は、復号ビットモデリング装置の１つの例を示す。図１５に示される符号化ビットモデリング装置と大きく異なるのは、ディシジョン（Ｄ）が、ビットモデリング処理部２ではなくＭＱ復号器１１１が符号を復号した結果として出力される点である。ビットモデリング処理部２がこのディシジョンからビットデータ、サインビットを生成した後、各領域レジスタ・メモリへの書き込みが行われ、逆量子化、ウエーブレット逆変換を経て画像データへ変換される。ここで、サインビットに関しては、コンテキストを生成するのに使用されるためサインビット格納メモリ５６より６×６領域レジスタ６６へのロードが行われる。以上を実現するビットモデリング処理部２のブロック図を図２２に示す。図１７と比べてディシジョンからビットデータ、サインビットを生成するサインビット、ビットデータ生成部４６が追加されている。
【００５７】
以上の従来技術では、コードブロックを処理する単位に分割したサブブロックの符号化・復号処理において、現在のパスにおける処理対象ビットの有無に関わらず、一旦そのサブブロックのｓｓフラグ、ｐｓフラグをロードした後、処理対象ビットの有無を判断していたので余分な時間がかかるという問題がある。
【００５８】
特許文献１に係る発明は、情報を符号化及び復号化する方法並びに装置を提供する。つまり、当該発明の装置は、メモリ及び復号化ハードウェアを含む。メモリは、ランカウント及び／又はスキップカウントを保持し、復号化ハードウェアは、復号化中にメモリから取得されたランカウント及び／又はスキップカウントを復号化する。特許文献２に係る発明は、処理速度の速いビットモデリングの処理方法及びそれを用いる処理回路である。つまり、当該発明に係る処理方法・処理回路は、ｓｉｇパスにより、処理対象であるビットと周囲のビット群の有意フラグの状態及び符号ビットの状態に応じて変化するコンテキスト及びディシジョンとを同時に生成し、処理対象であるビットの値が１のときのみ符号ビットのコンテキスト及びディシジョンを採用し、有意フラグを更新し、処理対象であるビットの値が０のときは廃止し、処理対象であるビットの値が１か０に係わらず、処理済フラグを更新するビットモデリングの処理回路を、同一グループのビットに同時に適用し、並列に処理する。
【特許文献１】特開２００３−８４４５  公報
【特許文献２】特開２００３−８９０６  公報
【発明の開示】
【発明が解決しようとする課題】
【００５９】
本発明は、ＪＰＥＧ２０００に準拠する符号化・復号処理装置の係数ビットモデリング部において、コードブロックを分割したサブブロックの符号化・復号処理を効率よく行うことを目的とする。
【課題を解決するための手段】
【００６０】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項１に記載のビットモデリング処理装置は、
コードブロックが複数に分割されたサブブロック単位で処理するパスにおける処理対象のビットを、探索して符号化、又は復号の処理を行うＪＰＥＧ２０００のビットモデリング処理装置である。そのビットモデリング処理装置において、
一つのサブブロックに対するＳｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎパスの処理中に、
そのサブブロックにてその後で実施されるＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパスでの処理対象ビットが存在するか否かの情報を生成して格納し、
その後のＭａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパス処理時に、上記の格納情報に基づき、処理対象ビットを含むサブブロックのみ選択して処理することを特徴とする。
【００６１】
本発明に係る請求項２に記載のビットモデリング処理装置は、
上記の格納情報に基づき、
Ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス又はＣｌｅａｎ  ｕｐパスで処理対象となるビットを含むサブブロックが、一つのビットプレーン全体に無ければ、そのパスの処理を行わないことを特徴とする請求項１に記載のビットモデリング処理装置である。
【００６２】
本発明に係る請求項３に記載の符号化復号処理装置は、
請求項１又は請求項２に記載のビットモデリング処理装置を含むことを特徴とするＪＰＥＧ２０００の符号化復号処理装置である。
【発明の効果】
【００６３】
本発明を利用することにより、次のような効果を得ることができる。
【００６４】
ＭＲパス、ＣＵパスにおいて処理対象となるビットが存在するサブブロックのみ選択して処理できるので、ＪＰＥＧ２０００の符号化、復号処理を高速に行うことができる。また、ＭＲパス、ＣＵパスにおいて処理対象となるビットが無ければそのパスの処理を行わずに次のパスの処理が行えるので、さらに高速な処理ができる。
【発明を実施するための最良の形態】
【００６５】
本発明は、ＳＰパスでの処理を行っていく際に、直後のＭＲパスやＣＵパスで処理すべきビットが判明することを利用して、それぞれのサブブロックにＭＲパス、あるいはＣＵパスでの処理対象となるビットがあるかという情報をＳＰパス処理時点で生成しておき、ＭＲパス、あるいはＣＵパス処理時には処理対象ビットが含まれるサブブロックのみ選択して処理する。このことにより処理の高速化を図る。
【００６６】
以下、図面を参照しつつ、本発明に係る好適な実施形態を説明する。
【００６７】
図１は、本発明の好適な実施形態に係る符号化処理用のビットモデリング処理部２のブロック図である。従来例（図１７参照）と比べると、ＭＲパスアドレス生成部２２、ＣＵパスアドレス生成部２４が追加されている。
【００６８】
これらのブロックは、ＳＰパスでの処理中に更新されるｓｓフラグとｐｓフラグを使って、処理中のサブブロックに次のＭＲパス、ＣＵパスにおける処理対象ビットが含まれるかどうかを判断し、その判断に係る情報を格納しておく。更に、これらのブロックは、ＭＲパス、ＣＵパス処理中に順次その情報を使い、処理対象ビットの含まれるサブブロックのみが処理されるようにアドレス（ＭＲ＿ＡＤＤ、ＣＵ＿ＡＤＤ）を生成して出力する。また更に、これらのブロックは、それらのパスで処理対象となるビットが無い場合、そのことを示す信号（ＭＲ＿ＮＯＰＡＳＳ、ＣＵ＿ＮＯＰＡＳＳ）も出力する。
【００６９】
ＭＲパス又はＣＵパスが処理される際、選択・制御部２０は、アドレスをインクリメントするのではなく、ＭＲ＿ＡＤＤ又はＣＵ＿ＡＤＤをアドレス生成部１４にロードするように制御する。更に、選択・制御部２０は、それぞれのパスの処理を開始する際、ＭＲ＿ＮＯＰＡＳＳ又はＣＵ＿ＮＯＰＡＳＳが出力されていれば、そのパスで処理するビットが無いと判断して符号化処理は行わず、パスカウンター１６のパスカウント値をインクリメントして次のパスの処理を行う。
【００７０】
図２は、ＭＲパスアドレス生成部２２の構成図を示す。ＭＲパスアドレス生成部２２では、コードブロック内のサブブロックの数と同数のフリップフロップＦＦ０、ＦＦ１、ＦＦ２、・・・ＦＦ１５が設けられる。ここで、例えば、アドレスが“０”である領域のサブブロック内に次のＭＲパスで処理対象となるビットが存在する場合、ＦＦ０の出力（ＭＲ＿ＦＬＡＧ＿０）が１となり、対象となるビットが存在しない場合、０となる。また、全てのサブブロックで処理対象となるビットが存在しない場合、全てのフリップフロップの出力が０となり、結果としてＭＲ＿ＮＯＰＡＳＳ出力が１となる。これらのフリップフロップの動作は、ｅｎ入力が１の時、ｓｅｔ信号が入力されれば出力ｄは１にセットされ、ｃｌｒ信号が入力されれば出力ｄは０にクリアされる、というものである。
【００７１】
図２に示される装置の動作を詳細に説明する。コードブロックの処理が開始される時点で、ＭＲパスアドレス生成部２２の全てのフリップフロップ（ＦＦ０、ＦＦ１、・・・ＦＦ１５）の出力は、０となっている。ＳＰパス処理時、アドレス入力がアドレスデコーダ３０に入力されて、現在処理しているサブブロックに対応するフリップフロップのｅｎ入力が１となる。一方、ＭＲパスでの処理対象ビットは、その位置のｓｓフラグとｐｓフラグが共に１であるビットなので（図１３参照）、更新するｓｓフラグ（ｎｅｗＳＳ）とｐｓフラグ（ｎｅｗＰＳ）のビット毎の論理積の論理和（｜（ｎｅｗＳＳ  ＆  ｎｅｗＰＳ））が“１”のとき、そのサブブロックにてＭＲパスでの処理対象ビットがあることになる。従って、そのサブブロックの処理が終ってアドレスのインクリメントが起こるタイミング（ａｄｄ＿ｉｎｃｒｅｍｅｎｔ）で、前記の条件が成立すれば、現在処理しているサブブロックに対応するフリップフロップの出力が“１”にセットされる。前記条件が成立しなければ、０のままとなる。ＳＰパスの処理においてはすべてのサブブロックが処理対象となるので、ＳＰパスの処理終了時点ですべてのサブブロックについて処理対象ビットの有無の判断できるようになる。
【００７２】
ＭＲパスアドレス生成部２２の全てのフリップフロップ（ＦＦ０、ＦＦ１、・・・ＦＦ１５）の出力がプライオリティエンコーダ２８に入力されている。プライオリティエンコーダ２８からは、出力が１であるフリップフロップのうち、先に処理されるべき位置にあるサブブロックに対応するものが優先的にデコードされてアドレス（ＭＲ＿ＡＤＤ）として出力される。ＭＲパスでの処理が開始されると、ａｄｄ＿ｌｏａｄ信号により、最初に処理されるサブブロックのアドレスがアドレス生成部１４にロードされる。一方、そのアドレス出力（ＭＲ＿ＡＤＤ）はアドレスデコーダ３０への入力となっており、ａｄｄ＿ｌｏａｄが入力されるとそのアドレスに対応するフリップフロップの出力が０にクリアされる。これにより、最初に処理されるサブブロックのアドレスがアドレス生成部１４にロードされると同時に、２回目に処理されるべきサブブロックのアドレスがＭＲ＿ＡＤＤより出力される。この動作を繰り返して、処理対象ビットを含む全てのサブブロックの処理が終了すると、全てのフリップフロップの出力が０にクリアされ、ＭＲ＿ＮＯＰＡＳＳ信号が出力される。選択・制御部２０は一つのパスの処理を終って次のパスの処理を開始するように全体を制御する。
【００７３】
図３は、ＣＵパスアドレス生成部２４の構成図である。基本的な動作は、図２に示されるＭＲパスアドレス生成部２２と同じであるが、以下の２つの点で異なっている。
【００７４】
まず、各コードブロックの最初のビットプレーンはＣＵパスで処理する必要があるので、最初のＣＵパスではすべてのサブブロックを処理する必要がある。そのため、ＣＵパスアドレス生成部２４の全てのフリップフロップ（ＦＦ０、ＦＦ１、・・・ＦＦ１５）の出力は、コードブロックの処理が開始される時点で出力が１となっている。
【００７５】
また、ＣＵパスでの処理対象ビットは、その位置のｓｓフラグとｐｓフラグが共に０のビットなので、更新するｓｓフラグ（ｎｅｗＳＳ）とｐｓフラグ（ｎｅｗＰＳ）のビット反転したデータのビット毎の論理積の論理和（｜（〜ｎｅｗＳＳ  ＆〜  ｎｅｗＰＳ））が“１”のとき、アドレスのインクリメントが起こるタイミング（ａｄｄ＿ｉｎｃｒｅｍｅｎｔ）で、処理しているサブブロックに対応するフリップフロップの出力が“１”にセットされる。
【００７６】
図４は、本発明の好適な実施形態に係るビットモデリング処理部２の選択・制御部２０におけるコンテキストとディシジョンの選択の制御のフローチャートである。
【００７７】
スタート（Ｓ００）後、ｐａｓｓ＿ｉｎｉｔ信号でパスカウンターがリセットされるが、最初のパスはＣＵパスなので、ａｄｄ＿ｌｏａｄ信号を発生してアドレス生成部１４にＣＵ＿ＡＤＤをロードする（Ｓ０２）。次にアドレス値により選択されたサブブロックのデータが各データの格納レジスタにロードされ（Ｓ０４）た後、そのサブブロック内でのビットモデリング処理が行われる。（但し、先に説明したようにＣＵパスアドレス生成部２４のフリップフロップが全て１にセットされているので、この最初のＣＵパスではすべてのサブブロックが処理される。）
【００７８】
このサブブロック内のすべてのビットの処理が終了すると、ＢＬＫ＿ＥＮＤが１となるので、ｓｓフラグ、ｐｓフラグの更新値（ｎｅｗＳＳ、ｎｅｗＰＳ）が格納メモリに書き込まれる（Ｓ１２）。
【００７９】
次に、処理が終ったサブブロックがそのコードブロックで最後に処理されるサブブロックかどうかが判断される。処理しているパスがＭＲパスかＣＵパスであるならば（Ｓ１４・ＹＥＳ）ＮＯ＿ＰＡＳＳ信号にて判断し（Ｓ２０）、ＳＰパスであるならば（Ｓ１４・ＮＯ）、そのアドレスが最後のサブブロックを示しているかどうかで判断する（Ｓ１６）。
【００８０】
もし、そのパスの最後のサブブロックでなければ、ＳＰパスの場合、ａｄｄ＿ｉｎｃｒｅｍｅｔ信号でアドレス生成部１４のアドレスをインクリメントする（Ｓ１８）。ＭＲパスかＣＵパスの場合、ａｄｄ＿ｌｏａｄ信号により、処理対象ビットを含む次のサブブロックのアドレスをアドレス生成部１４にロードする（Ｓ２０）。
【００８１】
もし、そのパスの最後のサブブロックであれば、全てのパスの処理が終了したかどうかを判断して、終了していれば（Ｓ２２・ＹＥＳ）そのコードブロックの処理を終了する（Ｓ２４）。まだ、処理するパスが残っている場合（Ｓ２２・ＮＯ）、ｐａｓｓ＿ｉｎｃｒｅｍｅｎｔ信号によりパスカウント値をインクリメントする（Ｓ２４）。
【００８２】
新しいパスカウントで示されるパスがＳＰパスであれば、ａｄｄ＿ｉｎｉｔ信号によりアドレス生成部１４のアドレスを初期化して（Ｓ２８）、最初のサブブロック領域のデータのロードを行い（Ｓ０４）、そのパスの処理を開始する。
【００８３】
新しいパスがＭＲパス又はＣＵパスであれば、まず、ＮＯ＿ＰＡＳＳ信号を確認する（Ｓ３０）。この時点でＮＯ＿ＰＡＳＳが出力されていれば（Ｓ３０・ＹＥＳ）、新しいパスでの処理対象ビットが無いことが示されているのだから、再度そのパスが最後のパスであるかどうかを確認（Ｓ２２）した後、まだ処理するパスが残っていれば（Ｓ２２・ＮＯ）、ｐａｓｓ＿ｉｎｃｒｅｍｅｎｔ信号によりパスカウント値をインクリメントして（Ｓ２４）上記と同様の処理を繰り返す。
【００８４】
ＮＯ＿ＰＡＳＳが出力されていなければ（Ｓ３０・ＮＯ）、ａｄｄ＿ｌｏａｄ信号によって、最初に処理すべきサブブロックを示すＡＤＤ（アドレス）をアドレス生成部１４にロードし（Ｓ３２）、そのサブブロックのデータを各格納レジスタにロードして（Ｓ０４）そのパスの処理を開始する。
【００８５】
図５は、本発明の好適な実施形態に係る復号処理用のビットモデリング処理部２のブロック図である。
【００８６】
従来例（図２２参照）と同様、符号化処理用のビットモデリング処理部と大きく異なるのは、ディシジョン（Ｄ）が、ビットモデリング処理部により出力されるのではなく、ＭＱ復号器が符号を復号した結果として出力される点である。そのため、図１の符号化処理用のビットモデリング処理部２と比べると、ディシジョン（Ｄ）からビットデータ、サインビットを生成するサインビット・ビットデータ生成部４６が追加されている。
【図面の簡単な説明】
【００８７】
【図１】本発明の好適な実施形態に係る符号化処理用のビットモデリング処理部のブロック図である。
【図２】ＭＲパスアドレス生成部の構成図である。
【図３】ＣＵパスアドレス生成部の構成図である。
【図４】本発明の好適な実施形態に係るビットモデリング処理部の選択・制御部におけるコンテキストとディシジョンの選択の制御のフローチャートである。
【図５】本発明の好適な実施形態に係る復号処理用のビットモデリング処理部のブロック図である。
【図６】（１）は、画像データがウエーブレット変換によりサブバンド毎の係数データに変換されている例を示す概念図である。（２）は、１つのサブバンドが複数のコードブロックに分割されている例を示す図である。（３）は、コードブロックの係数データがビットプレーンに分割されている例を示す概念図である。（４）は、このコードブロック内のビットプレーンが、上位から続くゼロビットプレーンとビットモデリングを用いた符号化の対象となるビットプレーンとに分割されている様子を示す図である。
【図７】符号化対象となるビットを探索するためそのビットプレーンをスキャンする順番を示す図である。
【図８】ビットモデリングの符号化処理の具体例である。
【図９】（１）は、ＪＰＥＧ２０００における符号化処理の概略フロー図である。（２）は、係数ビットモデリング部とＭＱ符号化器の間のデータの流れを示す図である。（３）は、復号時の係数ビットモデリング部とＭＱ復号器の間のデータの流れを示す図である。
【図１０】ＬＬサブバンド、ＬＨサブバンドに含まれるコードブロックの符号化においてＳＰパスで生成されるコンテキストを示す図である。
【図１１】サインビットを符号化する際に生成されるコンテキストを示す図である。
【図１２】ＭＲパスで生成されるコンテキストを示す図である。
【図１３】それぞれのパスでの処理対象となるｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ（ｓｓ）と、ｐａｓｓ  ｂｉｔ（ｐｓ）の組み合わせ、及び、そのビットを処理した後に更新される  ｓｉｇｎｉｆｉｃａｎｃｅ  ｓｔａｔｅ（ｓｓ）とｐａｓｓ  ｂｉｔ（ｐｓ）の値（ｎｅｗ  ｓｓ  、ｎｅｗ  ｐｓ）を示す図である。
【図１４】（１）は、１６×１６のコードブロックが４×４のサブブロックに分割されている様子を示す図である。（２）は、４×４のサブブロックに対して必要な６×６の領域を示す図である。
【図１５】従来例の符号化ビットモデリング装置のブロック図である。
【図１６】（１）は、コードブロックに係るデータの格納例である。（２）は、図１４（２）における“５”のサブブロックを処理する場合に必要となる６×６領域のデータが、レジスタに入力されている様子を示す図である。
【図１７】従来例のビットモデリング処理部のブロック図である。
【図１８】（１）は、従来例のパス決定ユニットの詳細なブロック図である。（２）（３）はそれぞれ、各ビット位置を示す番号・記号が付された４×４領域と６×６領域の図である。
【図１９】従来例の処理ビット決定部の詳細なブロック図である。
【図２０】従来例の選択・制御部におけるコンテキストとディシジョンの選択の制御に係る概略のフローチャートである。
【図２１】従来例の復号ビットモデリング装置の１つの例を示す。
【図２２】従来例のビットモデリング処理部のブロック図である。
【符号の説明】
【００８８】
２・・・ビットモデリング処理部、１４・・・アドレス生成部、１６・・・パスカウンター、２０・・・選択・制御部、２２・・・ＭＲパスアドレス生成部、２４・・・ＣＵパスアドレス生成部、４６・・・サインビット・ビットデータ生成部。
【図１】
2006033179.tif 000003
【図２】
2006033179.tif 000004
【図３】
2006033179.tif 000005
【図４】
2006033179.tif 000006
【図５】
2006033179.tif 000007
【図６】
2006033179.tif 000008
【図７】
2006033179.tif 000009
【図８】
2006033179.tif 000010
【図９】
2006033179.tif 000011
【図１０】
2006033179.tif 000012
【図１１】
2006033179.tif 000013
【図１２】
2006033179.tif 000014
【図１３】
2006033179.tif 000015
【図１４】
2006033179.tif 000016
【図１５】
2006033179.tif 000017
【図１６】
2006033179.tif 000018
【図１７】
2006033179.tif 000019
【図１８】
2006033179.tif 000020
【図１９】
2006033179.tif 000021
【図２０】
2006033179.tif 000022
【図２１】
2006033179.tif 000023
【図２２】
2006033179.tif 000024