(57)【特許請求の範囲】
【請求項１】
１画素をｍビット（ｍ≧２）で表される多値画像データを、各画素を構成する１ビット毎に算術符号化する算術符号化方法であって、
符号化対象画素を構成する各符号化対象ビットを符号化する為に、２サイクル以上前に符号化されたビットを用いてコンテキスト情報を生成するコンテキスト生成ステップと、
前記符号化対象ビットを、前記コンテキスト情報に基づいて算術符号化する算術符号化ステップとを備え、
前記多値画像データを構成するビットプレーンの数をｍ、該ビットプレーン番号をＭＳＢから順に１、２、・・・ｍとし、各画素の番号を｛  ｝、ビットプレーンを［  ］で表すとすると、前記算術符号化するビットの順序として、｛ｉ｝［ｊ］の次は、ｊ≠ｍの場合｛ｉ‐１｝［ｊ＋１］を、ｊ＝ｍの場合｛ｉ＋ｍ｝［１］を算術符号化することを特徴とする算術符号化方法。
【請求項２】
符号化する画素の数がｎである場合、｛ｉ‐１｝≦０及び｛ｉ＋１｝＞ｎでは、所定値を符号化することを特徴とする請求項１に記載の算術符号化方法。
【請求項３】
符号化する画素の数がｎである場合、｛ｉ‐１｝≦０及び｛ｉ＋１｝＞ｎでは、符号化をスキップすることを特徴とする請求項１に記載の算術符号化方法。
【請求項４】
１画素をｍビット（ｍ≧２）で表される多値画像データを、各画素を構成する１ビット毎に算術復号化する算術復号化方法であって、
復号化対象画素を構成する各復号化対象ビットを復号化する為に、２サイクル以上前に復号化されたビットを用いてコンテキスト情報を生成するコンテキスト生成ステップと、
前記復号化対象ビットを、前記コンテキスト情報に基づいて算術復号化する算術復号化ステップとを備え、
前記多値画像データを構成するビットプレーンの数をｍ、該ビットプレーン番号をＭＳＢから順に１、２、・・・ｍとし、各画素の番号を｛  ｝、ビットプレーンを［  ］で表すとすると、前記算術復号化するビットの順序として、｛ｉ｝［ｊ］の次は、ｊ≠ｍの場合｛ｉ‐１｝［ｊ＋１］を、ｊ＝ｍの場合｛ｉ＋ｍ｝［１］を算術復号化することを特徴とする算術復号化方法。
【請求項５】
復号化する画素の数がｎである場合、｛ｉ‐１｝≦０及び｛ｉ＋１｝＞ｎでは、所定値を復号化することを特徴とする請求項４に記載の算術復号化方法。
【請求項６】
復号化する画素の数がｎである場合、｛ｉ‐１｝≦０及び｛ｉ＋１｝＞ｎでは、復号化をスキップすることを特徴とする請求項４に記載の算術復号化方法。
【請求項７】
１画素をｍビット（ｍ≧２）で表される多値画像データを、各画素を構成する１ビット毎に算術符号化する算術符号化装置であって、
符号化対象画素を構成する各符号化対象ビットを符号化する為に、２サイクル以上前に符号化されたビットを用いてコンテキスト情報を生成するコンテキスト生成手段と、
前記符号化対象ビットを、前記コンテキスト情報に基づいて算術符号化する算術符号化手段とを備え、
前記多値画像データを構成するビットプレーンの数をｍ、該ビットプレーン番号をＭＳＢから順に１、２、・・・ｍとし、各画素の番号を｛  ｝、ビットプレーンを［  ］で表すとすると、前記算術符号化するビットの順序として、｛ｉ｝［ｊ］の次は、ｊ≠ｍの場合｛ｉ‐１｝［ｊ＋１］を、ｊ＝ｍの場合｛ｉ＋ｍ｝［１］を算術符号化することを特徴とする算術符号化装置。
【請求項８】
１画素をｍビット（ｍ≧２）で表される多値画像データを、各画素を構成する１ビット毎に算術復号化する算術復号化装置であって、
復号化対象画素を構成する各復号化対象ビットを復号化する為に、２サイクル以上前に復号化されたビットを用いてコンテキスト情報を生成するコンテキスト生成手段と、
前記復号化対象ビットを、前記コンテキスト情報に基づいて算術復号化する算術復号化手段とを備え、
前記多値画像データを構成するビットプレーンの数をｍ、該ビットプレーン番号をＭＳＢから順に１、２、・・・ｍとし、各画素の番号を｛  ｝、ビットプレーンを［  ］で表すとすると、前記算術復号化するビットの順序として、｛ｉ｝［ｊ］の次は、ｊ≠ｍの場合｛ｉ‐１｝［ｊ＋１］を、ｊ＝ｍの場合｛ｉ＋ｍ｝［１］を算術復号化することを特徴とする算術復号化装置。
【請求項９】
予測値及び確率推定値を保持する、各ビットプレーン毎に設けられた確率推定値メモリと、
前記生成されたコンテキスト情報に基づいて予測値及び確率推定値を更新する予測推定更新手段とを有し、
前記生成されたコンテキスト情報をアドレスとして、前記確率推定値メモリから予測値及び確率推定値を読み出すことを特徴とする請求項８に記載の算術復号化装置。
【請求項１０】
予測値及び状態値を保持する、各ビットプレーン毎に設けられた予測状態メモリと、
前記生成されたコンテキスト情報に基づいて予測値及び状態値を更新する予測状態更新手段とを有し、
前記生成されたコンテキスト情報をアドレスとして、前記予測状態メモリから予測値及び状態値を読み出すことを特徴とする請求項８に記載の算術復号化装置。
【請求項１１】
復号化する画素の数がｎである場合、｛ｉ‐１｝≦０及び｛ｉ＋１｝＞ｎでは、所定値を復号化することを特徴とする請求項８に記載の算術復号化装置。
【請求項１２】
復号化する画素の数がｎである場合、｛ｉ‐１｝≦０及び｛ｉ＋１｝＞ｎでは、復号化をスキップすることを特徴とする請求項８に記載の算術復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、算術符号(Arithmetic code)を用いて画像データを符号化する算術符号化方法と、該方法で符号化された画像データを復号化する算術復号化装置に関し、特に多値画像の算術符号化方法と算術復号化装置に関する。
【０００２】
【従来の技術】
算術符号は、［０，１）の数値直線上の対応区間（２進小数で［０．０・・・０，０．１・・・１］）を各シンボルの生起確率に応じて不等長に分割していき、符号化対象シンボル系列を対応する部分区間に割り当て、再帰的に分割を繰り返していくことにより得られた区間内に含まれる点の座標を少なくとも他の区間と区別できる２進小数で表現して、そのまま符号とするものである。
【０００３】
算術符号の方法の代表的なものとして、ＩＴＵの機関であるＪＢＩＧ（Ｊｏｉｎｔ  Ｂｉ−１ｅｖｅｌ  Ｉｍａｇｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）で標準化されたＪＢＩＧ（ＱＭ−ｃｏｄｅｒ）方法、ＩＢＭ社が提案しているＱ−ｃｏｄｅｒ等がある。
【０００４】
各方法により使用されている用語が異なるため、ここでは標準方法であるＪＢＩＧ方法に用いられている用語を使用するが、これによりＪＢＩＧ方法の算術符号に限定されるものではない。
【０００５】
算術符号化では、原理的には算術演算部で乗算処理を必要とするが、乗算処理を行うと算術演算部のハードウェア規模が大きくなったり、乗算処理にかかる処理時間が長くなるといった問題があるため、該算術演算を加減演算に置き換え簡略化した方法が主流になっている。
【０００６】
算術演算部内部には、符号化シンボル系列に対応する領域幅（オージェント）を保持するＡレジスタと、コードを発生する基となる値を保持するコードレジスタ（Ｃレジスタ）とがあり、符号化予測値に対する符号化対象シンボルのはずれ確率を確率推定値ＬＳＺとして入力し、前記シンボルが予測値に一致したかあるいは不一致かという情報に基づいて、確率推定値ＬＳＺと前記２つのレジスタの値から算術演算（加減算）を行ない、該２つのレジスタの値を更新する。
【０００７】
確率推定値ＬＳＺは、符号化対象シンボルの周辺シンボル情報を数値化したコンテキストごとに持つｉｎｄｅｘ（状態）値から所定の対応表を用いて変換することによって得られる。コンテキストごとに持つ状態値は、所定条件に基づいて更新することにより、符号化シンボル系列固有のパターンを学習することができ、符号化効率を上げることができる。
【０００８】
ＪＢＩＧ方法では、Ａレジスタの値を１００００Ｈに初期化し、算術演算（符号化あるいは復号化）の結果、Ａレジスタの値が８０００Ｈ未満になると、正規化処理と称して、Ａレジスタの値が８０００Ｈ以上になるまで左シフトを行い、その際に現コンテキストの状態値を更新する。
【０００９】
また、Ａレジスタの値を左シフトする時、それと同時にＣレジスタの値も左シフトする。この時、Ｃレジスタの再上位からシフトアウトされるデータが符号化データとなる。
【００１０】
符号化対象のシンボルの値が０または１しかとらない、２値の画素データである場合、上記算術符号化処理を行なう符号化ブロックの構成は、図１に示すものとなる。
【００１１】
＜符号化ブロック＞
同図において、１０１は符号化対象画素の２値データＰＩＸを入力する端子、１０２は２値データＰＩＸ信号、１０３は符号化対象画素の周辺画素データからなるコンテキスト情報、１０５はコンテキスト情報ごとに予測値とｉｎｄｅｘ（状態）値を保持する予測状態メモリ、１０６は予測状態メモリ１０５から出力される予測値、１０７は予測状態メモリ１０５から出力される状態値、１０９は出力された状態値１０７を確率推定値ＬＳＺに変換する確率推定部、１１１は確率推定部１０９から出力される確率推定値ＬＳＺ、１１３は排他的ＮＯＲゲート、１１４は前記２値データＰＩＸと予測値１０６との一致／不一致を表わす信号、１１５は算術符号化演算部、１１７は算術符号化演算部１１５から出力される符号化データ（コードデータ）、１１８は前記予測状態メモリ１０５の更新を要求するための信号、１１９は現在の予測値１０６と状態値１０７から更新後の予測値と状態値を求める予測状態更新部、１２０は予測状態更新部１１９から出力される、更新後の予測値・状態値信号および予測状態メモリ１０５に該信号を書き込む制御信号等である。
【００１２】
次に、図１に示す算術符号化処理ブロックの動作説明を行なう。
【００１３】
符号化対象画素の２値データＰＩＸは端子１０１から入力され、排他的ＮＯＲゲート１１３に入力する。一方、コンテキスト情報である１０３の符号化対象画素の周辺画素データＣＸｉ（ｉ＝１，２，…，ｎ）が予測状態メモリ１０５に与えられる。
【００１４】
予測状態メモリ１０５は周辺画素データからなるコンテキスト情報１０３をアドレスとして、符号化対象画素に対する予測値１０６とｉｎｄｅｘ（状態）値１０７を出力する。なお、この状態値１０７はそれまでに符号化処理して学習した内容に基づいて決まる。予測値１０６は、０または１の２値であり、排他的ＮＯＲゲート１１３に入力される。
【００１５】
一方、状態値１０７は確率推定部１０９に送られ、ここで確率推定値１１１に変換される。確率推定値１１１は、２値データＰＩＸが予測値１０６と一致しない確率を表わす。状態値１０７から確率推定値１１１への変換は、ＲＯＭテーブルあるいはデコーダを用いて行なわれる。また、状態値１０７は予測状態更新部１１９にも入力される。
【００１６】
排他的ＮＯＲゲート１１３では、２値データＰＩＸと予測値１０６との一致／不一致の関係を調べ、一致していれば１を、不一致であれば０を算術符号化演算部１１５へ送る。
【００１７】
算術符号化演算部１１５では、一致／不一致情報１１４と、確率推定部１０９から入力される確率推定値１１１とに基づいて、後述する符号化処理のための算術演算を行ない、符号化データ１１７を出力する。
【００１８】
算術符号化演算部１１５における算術演算の過程で上述の正規化処理が行なわれると、信号１１８を出力し、予測状態更新部１１９に更新要求を行なう。
【００１９】
予測状態更新部１１９は、入力される状態値１０７、予測値１０６及び一致／不一致情報１１４から、更新後の状態値と予測値を求めて、更新データを予測状態メモリ１０５に送る。更新データを受信した予測状態メモリ１０５は、更新要求に基づいて保持内容を更新する。なお、予測状態更新部１１９において入力状態値１０６から更新後の状態値を求めるには、ＲＯＭテーブルあるいはデコーダ等を用いる。
【００２０】
次に、図２に算術符号化演算部１１５の一構成例を示し、その動作について述べる。
【００２１】
同図において、２０１は領域幅（オージェント）を保持するＡレジスタ、２０３はコードを発生する基となる値を保持するコードレジスタ（Ｃレジスタ）、２０５はＡレジスタ２０１の出力値から確率推定値１１１を減算する減算器、２０７はＣレジスタ２０３の出力値に減算器２０５の出力を加算する加算器、２０９はＡレジスタ２０１へ入力するデータを選択するセレクタ、２１１はＣレジスタへ入力するデータを選択するセレクタ、２１３はＣレジスタからシフトアウトされるコード情報を取り込むシフトレジスタ、２１５は出力レジスタ、２１７はシフトレジスタ２１３に取り込んだビット数をカウントするカウンタ、２１８はシフトクロックを入力する端子、２１９はマスク回路、２２０はマスク回路２１９によりマスクされたシフトクロック、２２１は、Ａレジスタ２０１の出力値が８０００Ｈ（１６進）以上であることを検出する検出器である。
【００２２】
初期化後の状態では、Ａレジスタ２０１の値は１００００Ｈ、Ｃレジスタ２０３の値は０Ｈであり、カウンタ２１７の値は０である。
【００２３】
入力された一致／不一致情報１１４と確率推定値１１１に基づいて所定の算術演算を行うことにより、１画素を符号化するごとにＡレジスタ２０１とＣレジスタ２０３の値を更新する。そして、Ａレジスタ２０１の正規化処理に伴いＣレジスタ２０３の上位からシフトアウトされるデータをＮビット単位にまとめて出力したものが符号化データ１１７となる。
【００２４】
まず入力された確率推定値１１１は減算器２０５とセレクタ２０９に入力する。
【００２５】
減算器２０５では、Ａレジスタ２０１の出力値から、確率推定値１１１を減算し、その結果をセレクタ２０９と加算器２０７へ送る。
【００２６】
セレクタ２０９には確率推定値１１１も与えられており、一致／不一致情報１１４が１の時は減算結果を、０の時は確率推定値１１１を選択し出力する。
【００２７】
加算器２０７では、減算器２０５から送られてきた減算結果をＣレジスタ２０３の出力値に加算し、加算結果をセレクタ２１１に送る。セレクタ２１１には、Ｃレジスタ２０３の出力値も直接与えられており、前記一致／不一致情報１１４が１の時はＣレジスタ２０３の出力値を、０の時は加算結果を選択し出力する。
【００２８】
セレクタ２０９、２１１それぞれの出力は、それぞれ次のサイクルで、Ａレジスタ２０１、Ｃレジスタ２０３に取り込まれる。
【００２９】
Ａレジスタ２０１の値が８０００Ｈ未満の時は、検出器２２１でそれを検出し、次の算術演算を行う前に正規化処理を行う。それに対し、Ａレジスタ２０１の値が８０００Ｈ以上の時は、次の算術演算を行う。
【００３０】
正規化処理の１つの実現方法は、Ａレジスタ２０１とＣレジスタ２０３のそれぞれにシフト機能を有するレジスタを用い、該レジスタにシフト用のクロック２２０を与え、Ａレジスタ２０１の値が８０００Ｈになるまで、ＡレジスタとＣレジスタを左シフトするものである。
【００３１】
シフト用のクロック２２０は、検出器２２１の出力に基づいて、端子２１８から入力されるシフトクロックをマスク回路２１９にてマスクすることにより得られる。
【００３２】
Ａレジスタ２０１の値が８０００Ｈ未満のあいだ、入力シフトクロックはマスク回路２１９を通過し、Ａレジスタ２０１、Ｃレジスタ２０３並びに、シフトレジスタ２１３、カウンタ２１７に送られる。このシフトクロックが入力する毎に、Ａレジスタ２０１、Ｃレジスタ２０３、シフトレジスタ２１３は１ビット左へシフトし、カウンタ２１７は１つカウントアップする。
【００３３】
シフトレジスタ２１３へ入力するデータは、Ｃレジスタ２０３の最上位ビットであるため、シフトクロック２２０が各ブロックへ送られるたびに、Ｃレジスタ２０３の上位ビットデータがシフトレジスタ２１３に移ることになる。
【００３４】
シフトレジスタ２１３に移されたビット数はシフトクロック２２０によりカウントアップするカウンタ２１７でカウントされていることになり、該カウント値が所定の値に達したところで、カウンタ２１７は出力レジスタ２１５へデータ取り込みパルス２２２を送る。
【００３５】
出力レジスタ２１５はパルス２２２が入力されるタイミングで、シフトレジスタ２１３から送られる所定ビット数のデータを一括して受け取り、次のデータ取り込みパルス２２２が入力されるまで、該データを保持する。
【００３６】
なお、Ａレジスタ２０１の値が８０００Ｈ未満であることを検出器２２１が検出したときに、不図示の回路により予測状態更新部１１９へ更新を要求する信号１１８が出力される。
【００３７】
以上説明したような算術演算及び正規化処理により、端子１０１に入力された２値データＰＩＸが符号化され、符号化データ１１７が算術符号化演算部１１５より所定ビット単位で出力される。
【００３８】
＜復号化ブロック＞
次に、図１に示す符号化ブロックに対応した復号化ブロックの構成を図３に示し、その動作を説明する。
【００３９】
図３に示す復号化ブロックと、図１に示す符号化ブロックとの大きな違いは、以下の２点である。
【００４０】
（１）算術符号化演算部１１５の替わりに、算術復号化演算部３０１を用いる。（２）符号化データ３０６を入力して、着目画素データの値を求める。
その他の構成は基本的に同じであるため、上記違いについて簡単に説明する。
【００４１】
まず算術復号化演算部３０１内部の動作説明から行なう。図４に、算術復号化演算部３０１の構成を示す。
【００４２】
同図において、減算器４０１は図２の算術符号化演算部１１５における加算器２０７を、入力バッファレジスタ４０３は図２の出力レジスタ２１５を、また、シフトレジスタ４０５はシフトレジスタ２１３をそれぞれ置き換えたものである。
【００４３】
入力された確率推定値１１１は、減算器２０５とセレクタ２０９に入力される。減算器２０５ではＡレジスタ２０１の出力値から、入力された確率推定値１１１を減算し、その減算結果をセレクタ２０９と減算器４０１へ送る。
【００４４】
図１の算術符号化演算部１１５では、一致／不一致情報１１４に基づいてセレクタ２０９が動作していたが、算術復号化演算部３０１では、減算器４０１における減算結果が正か負かによって、セレクタ２０９の動作が決まる。
【００４５】
減算器４０１では、Ｃレジスタ２０３の出力値から減算器２０５の出力値を減算し、減算結果をセレクタ２１１に送り、更に減算結果が正か負かを表す信号３０２を出力する。信号３０２は、減算結果が正の場合０、負の場合１という値をとる。
【００４６】
この信号３０２を制御信号として、減算結果が正の場合、セレクタ２０９は確率推定値１１１を選択し、減算結果が負の場合、減算器２０５の出力を選択して出力する。
【００４７】
セレクタ２１１もセレクタ２０９と同じ信号３０２により制御される。セレクタ２１１には減算器４０１の出力すなわち減算結果と、Ｃレジスタ２０３の出力値が入力されている。そして、減算結果が正の場合、減算器４０１の出力を選択し、減算結果が負の場合、Ｃレジスタ２０３の出力を選択して出力する。
【００４８】
セレクタ２０９、２１１の出力は、それぞれ次のサイクルで、Ａレジスタ２０１、Ｃレジスタ２０３に取り込まれ、算術符号化演算部１１５と同様に正規化処理を行う。
【００４９】
算術符号化演算部１１５では、正規化処理時に符号化データ１１７を出力したが、算術復号化演算部３０１では、正規化処理にともない符号化データ３０６を取り込んでゆく。
【００５０】
符号化データ３０６は、図１の算術符号化演算部１１５から出力され、不図示の記憶ユニットに一旦格納される。そしてしかるべきタイミングで読み出されて、復号化ブロック内の算術復号化演算部３０１に与えられる。あるいは、符号化データをそのまま遠隔地まで転送し、遠隔地にて復号化ブロックを用いて、元の２値画像データに復元される。復元された２値画像データは、モニタやプリンタ等の画像表示機器に送られ、可視画像に変換される。
【００５１】
算術復号化演算部３０１に与えられた符号化データ３０６は、入力バッファレジスタ４０３を経由してシフトレジスタ４０５に取り込まれ、正規化処理によって、シフトレジスタ４０５の最上位ビットがＣレジスタ２０３の最下位ビットにシフト入力される。正規化処理の制御方法は算術符号化演算部１１５と同じであるため、その説明は省略する。なお、この正規化処理が行われるタイミングで、不図示の回路により予測状態更新部１１９へ更新を要求する信号３１５が出力される。
【００５２】
以上説明した算術復号化演算部３０１の演算処理により、復号中の着目画素値が予測値に一致するか否か（一致／不一致）という情報が信号３０２として得られ、算術復号化演算部３０１から出力され、図３の復号化ブロックにて使用される。この信号３０２は、復号中の着目画素値が予測値に一致する場合１、一致しない場合０という値をとる。
【００５３】
復号化ブロックでは、符号化ブロックと同様に、予測状態メモリ１０５は周辺画素データのコンテキスト情報をアドレスとして、復号中の着目画素に対する予測値１０６を出力する。
【００５４】
該予測値１０６は、算術復号化演算部３０１から出力される一致／不一致信号３０２との間で、排他的ＮＯＲゲート３０５にて論理演算される。この論理演算の結果は復号化した着目画素の値であり、復号画素値が信号３０４として得られる。
【００５５】
その他のブロックの動作は、図１の符号化ブロックと同じなので、説明を省略する。
【００５６】
次に、本発明人が提案している特開平１１−１０３２５７に記載の、確率推定値から更新後の確率推定値を得る手段を有する算術復号化ブロックの構成を図５に示す。図５において、５０１は、現在の確率推定値から次（更新後）の確率推定値を求める予測確率更新部、５０３は、予測値と確率推定値を格納する確率推定値メモリであり、その他の要素は、図３で同一番号を付した要素と同じ機能を有する。
【００５７】
図５の構成図を図３の構成図と比較すると、確率推定値メモリ５０３と算術復号化演算部３０１との間に、確率推定部１０９が無いということが分かる。
【００５８】
算術復号化演算部３０１の入出力信号は図３に示す構成の場合と全く同じであるため、確率推定部１０９が無くなった影響は、他の構成要素である予測状態メモリ１０５や予測状態更新部１１９に現われる。
【００５９】
算術復号化演算部３０１に必要な確率推定値１１１は、新たに設けた予測確率推定値メモリ５０３から読み出す。そのため、確率推定部１０９が不要になる。
【００６０】
確率推定値メモリ５０３に確率推定値を格納するには、初期化時に、初期状態値に対応した確率推定値を確率推定値メモリ５０３に書き込み、該メモリ更新時に、更新後の確率推定値を書き込む。
【００６１】
更新後の確率推定値は、予測確率更新部５０１で求める。予測確率更新部５０１は予測状態更新部１１９の替わりに用いるもので、現在の確率推定値、予測値等を入力して、更新後の確率推定値、予測値を求めるものである。現在の確率推定値から更新後の確率推定値への変換はＲＯＭテーブルあるいはデコーダ等を用いて行なう。
【００６２】
よって、上記構成を有する復号化ブロックにおいては、状態値１０７が物理的には存在しなくなる。しかし、現在の確率推定値から更新後の確率推定値への変換テーブル（ＲＯＭテーブルあるいはデコーダの作成に必要となる）は、状態値の推移を確率推定値の推移に置き換えて作成するため、変換テーブルに内包されることになる。
【００６３】
状態値の番号には一意性がある。すなわち、異なる状態には、必ず異なる状態値番号が割り当てられる。しかし、確率推定値には一意性があるとは言えない。すなわち、異なる状態に対して同一の確率推定値を割り当てることが原理的に可能である。しかし、ＪＢＩＧ方法においては、異なる状態に対して異なる確率推定値が割り当てられているので、ＪＢＩＧ方法に限れば確率推定値に一意性があるといえる。
【００６４】
確率推定値に一意性があれば、予測確率更新部５０１で行う処理に何も問題はないが、一意性が無い場合には問題が生じる。すなわち、入力確率推定値に対して更新確率推定値が何種類も存在してしまうという問題である。これを避けるには、同じ確率推定値を区別するための識別信号が必要になる。同じ確率推定値をとるものが２ｎ個ある場合は、識別のためにｎビットの識別信号が必要となる。この識別信号は予測確率更新部５０１におけるＲＯＭテーブルあるいはデコーダ等に入力され、何種類もある更新確率推定値のうちの一つを特定する。さらに出力側の更新確率推定値が一意でない場合には、この確率推定値を識別するｎビットの信号が必要となり、識別信号は確率推定値メモリ５０３にも格納される。
【００６５】
図１及び図３に示す構成を有する符号化／復号化ブロックにおける、１画素を符号化／復号化するのに要する主な処理は、以下の４ステップになる。
【００６６】
（１）予測値と状態値をメモリから読み出す。
（２）状態値を確率推定値に変換する。
（３）確率推定値を用いて算術符号化／復号化演算を行なう。
（４）予測値と状態値を更新し、メモリに書き込む（正規化処理時のみ必要）。上記（４）における予測値と状態値の更新処理は、（３）における算術符号化演算と並列に行なうことができるので、タイミング的に（４）で行なう処理はメモリへの書き込み処理だけになる。
【００６７】
これに対して、図５に示す構成を有する復号化ブロックでは、以下の３ステップになる。
【００６８】
（１）予測値と確率推定値をメモリから読み出す。
（２）確率推定値を用いて算術復号化演算を行なう。
（３）予測値と確率推定値を更新し、メモリに書き込む（正規化処理時のみ必要）。
従って、図１及び図３に示す構成に比べて、状態値を確率推定値に変換する処理に相当する時間だけ、速く符号化することができる。
【００６９】
また、本発明人はさらに特開平１１−１０３２５７により、図６に示すような構成を有する算術復号化ブロックも提案している。
【００７０】
一般に、予測値を求める基になるコンテキスト情報としては、着目画素と相関の強い真上及び左隣の画素を用いるため、復号化処理をラスター走査順序で行なう場合、単純な逐次処理では、着目画素の復号化が終了しなければ、右隣の画素を復号化処理するために必要な予測値等を読み出すことができない。
【００７１】
そこで、予測値等を格納したメモリを複数のメモリ群に分割して、該メモリ群から複数の予測値等を並列に読み出す。この複数の予測値は、復号化処理中の着目画素値が０と１の場合のそれぞれに対応するもので、着目画素値が確定した時に、複数の予測値から一つの予測値を選択する、というものである。
【００７２】
図６は、上記メモリ構成を有し、メモリに確率推定値を格納する算術復号化ブロックを示す。
【００７３】
同図において、６０１は第１の確率推定値メモリ、６０２は第２の確率推定値メモリ、６０３は上記２つのメモリから読み出した２組の予測値・確率推定値の一方を選択するセレクタ、６０５はセレクタ６０３の出力と予測確率更新部５０１の出力のいずれか一方を選択するセレクタ、６０７はセレクタ６０５の出力をラッチするＤタイプフリップフロップ（Ｄ−Ｆ／Ｆ）、６１０はコンテキスト情報、６０９はコンテキスト情報６１０を１サイクル遅延させる遅延回路である。その他の構成要素は、図５に示す復号化ブロックにおいて同一番号で示すものと同じであるため、説明を省略する。
【００７４】
図６の構成では、予測値と確率推定値を先行してメモリから読み出すため、メモリ読み出し用のコンテキスト情報と、メモリの更新時に使用するメモリ書き込み用のコンテキスト情報が１サイクルずれ、別の信号になる。そこで、２つのコンテキスト情報（アドレス）を同時に入力できる２ポートメモリを用いるものとする。
【００７５】
信号６１０は、復号化処理中の着目画素値を除く他のコンテキスト情報であり、これまでに出てきたコンテキスト情報１０３に較べ、１ビット情報が少ない。コンテキスト情報６１０は、メモリ読み出し用のアドレス信号として、第１及び第２の確率推定値メモリ６０１，６０２に与えられる。一方、コンテキスト情報６１０は、遅延回路６０９にて１サイクル遅延されて、メモリ書き込み用のアドレス信号として、第１及び第２の確率推定値メモリ６０１、６０２に与えられる。
【００７６】
第１の確率推定値メモリ６０１には、復号化処理中の着目画素値が０の時に対応する予測値と確率推定値を記憶しており、第２の確率推定値メモリ６０３には、復号化処理中の着目画素値が１の時に対応する予測値と確率推定値を記憶している。すなわち、２つのメモリ６０１、６０２で記憶する全情報は、図５に示す確率推定値メモリ５０３で記憶する情報と同じである。
【００７７】
第１及び第２の確率推定値メモリ６０１，６０２から、コンテキスト情報６１０をアドレスとして、予測値と確率推定値を並列に読み出す。
【００７８】
該メモリからの読み出しと並行して、着目画素の復号化処理（算術復号化演算）を行ない、メモリ読み出しデータが確定する頃に復号画素値が確定する。この復号画素値に基づいて、セレクタ６０３にて２つのメモリ出力の一方を選択する。
【００７９】
セレクタ６０３の出力は、図５における確率推定値メモリ５０３から読み出した内容と基本的には等しいが、更新データを書き込む前に次の確率推定値を先行して読み出すため、更新データがセレクタ６０３の出力に反映されない場合がある。
【００８０】
それは、予測値・確率推定値を読み出して選択する元となった全コンテキスト情報と、メモリ更新時に用いる全コンテキスト情報が完全に一致した場合である。これは、（読み出しアドレス＝書き込みアドレス）かつ（現サイクルの復号画素値＝１サイクル前の復号画素値）かつ（メモリ更新時）という条件に言い替えられる。
【００８１】
上記条件が成り立つことを不図示の検出器で検出する場合には、セレクタ６０５によりメモリ出力を更新データに切り換える。セレクタ６０５の出力は、Ｄ−Ｆ／Ｆ６０７でラッチして、算術復号化演算部３０１に与え、次の画素を復号化するための算術演算が行なわれる。
【００８２】
該算術演算をしている間、復号化中の画素値を含まない、１ビット少ないコンテキスト情報６１０に基づき２つの確率推定値メモリ６０１，６０２から新たな確率推定値を読み出す。
【００８３】
上記構成では、上述したように復号化のための算術演算と確率推定値メモリ６０１，６０２からの読み出しを並行して行なうことができるので、さらに高速な復号化処理が可能となる。
【００８４】
以上は２値の画像データを符号化及び復号化する例について説明したが、次に、複数のビットプレーンで構成される多値画像を画素順序で符号化及び復号化する場合について説明する。画素順序とはプレーン順序と異なり、例えば２ビットプレーンでは図７（ａ）に示すように、・・・，｛ｉ−１｝［２］，｛ｉ−１｝［１］，｛ｉ｝［２］，｛ｉ｝［１］，｛ｉ＋１｝［２］，｛ｉ＋１｝［１］，｛ｉ＋２｝［２］，・・・（｛  ｝［１］は上位ビットプレーン、｛  ｝［２］は下位ビットプレーンを表わす）のように、下位ビットと上位ビットを交互に符号化し、画素を逐次符号化するものである。
【００８５】
この時に問題となるのは、各々のプレーンにおいて何を参照してコンテキスト情報とするかいうことである。各々のプレーンを独立に符号化する場合には、上位ビットを符号化する時には上位ビットプレーンだけを、下位ビットを符号化する時には下位ビットプレーンだけを参照すればよい。
【００８６】
ところが、下位ビットを符号化する時に上位ビット、それも同一画素の上位ビットを参照したい場合には、上位ビットを下位ビットよりも前に符号化する必要がある。これに対しては、前記符号化順序を図７（ｂ）に示すように、・・・，｛ｉ−１｝［１］，｛ｉ−１｝［２］，｛ｉ｝［１］，｛ｉ｝［２］，｛ｉ＋１｝［１］，｛ｉ＋１｝［２］，｛ｉ＋２｝［１］，・・のように変更すればよい。該符号化順序の変更によって、復号化が可能となる。
【００８７】
【発明が解決しようとする課題】
上記従来例による復号化ブロックを用いて、多値画像の複数ビットプレーンを算術復号化しようとすると、ある着目ビットを復号化する時、復号化処理に必要なすべてのコンテキスト情報が確定するのは最悪、直前のビットを復号化してからである。そのため、直前のビットを復号化してからでないと学習メモリを読み出すことができないので、ハードウェアで復号化処理を行なう場合、復号化動作速度を高速化する大きな妨げになっていた。
【００８８】
本発明は上記問題点を鑑みてなされたものであり、単純な構成を有するハードウェアで、算術符号化された多値画像の算術復号化速度を高速化することを目的とする。
【００８９】
【課題を解決するための手段】
上記目的を達成するために、１画素をｍビット（ｍ≧２）で表される多値画像データを、各画素を構成する１ビット毎に算術符号化する本発明の算術符号化／復号化方法は、符号化／復号化対象画素を構成する各符号化／復号化対象ビットを符号化／復号化する為に、２サイクル以上前に符号化／復号化されたビットを用いてコンテキスト情報を生成するコンテキスト生成ステップと、前記符号化／復号化対象ビットを、前記コンテキスト情報に基づいて算術符号化／復号化する算術符号化／復号化ステップとを備え、前記多値画像データを構成するビットプレーンの数をｍ、該ビットプレーン番号をＭＳＢから順に１、２、・・・ｍとし、各画素の番号を｛  ｝、ビットプレーンを［  ］で表すとすると、前記算術符号化／復号化するビットの順序として、｛ｉ｝［ｊ］の次は、ｊ≠ｍの場合｛ｉ‐１｝［ｊ＋１］を、ｊ＝ｍの場合｛ｉ＋ｍ｝［１］を算術符号化／復号化する。
【００９１】
好適な一様態によれば、符号化／復号化する画素の数がｎである場合、｛ｉ−１｝≦０及び｛ｉ＋１｝＞ｎでは、所定値を符号化／復号化する。
【００９２】
また、好適な別の一様態によれば、符号化／復号化する画素の数がｎである場合、｛ｉ−１｝≦０及び｛ｉ＋１｝＞ｎでは、符号化／復号化をスキップする。
【００９３】
また、上記目的を達成するために、１画素をｍビット（ｍ≧２）で表される多値画像データを、各画素を構成する１ビット毎に算術符号化する本発明の算術符号化／復号化装置は、符号化／復号化対象画素を構成する各符号化／復号化対象ビットを符号化／復号化する為に、２サイクル以上前に符号化／復号化されたビットを用いてコンテキスト情報を生成するコンテキスト生成手段と、前記符号化／復号化対象ビットを、前記コンテキスト情報に基づいて算術符号化／復号化する算術符号化／復号化手段とを備え、前記多値画像データを構成するビットプレーンの数をｍ、該ビットプレーン番号をＭＳＢから順に１、２、・・・ｍとし、各画素の番号を｛  ｝、ビットプレーンを［  ］で表すとすると、前記算術符号化／復号化するビットの順序として、｛ｉ｝［ｊ］の次は、ｊ≠ｍの場合｛ｉ‐１｝［ｊ＋１］を、ｊ＝ｍの場合｛ｉ＋ｍ｝［１］を算術符号化／復号化する。
【００９５】
好適な一様態によれば、算術復号化装置は、予測値及び確率推定値を保持する、各ビットプレーン毎に設けられた確率推定値メモリと、前記生成されたコンテキスト情報に基づいて予測値及び確率推定値を更新する予測推定更新手段とを有し、前記生成されたコンテキスト情報をアドレスとして、前記確率推定値メモリから予測値及び確率推定値を読み出す。
【００９６】
また、好適な別の一様態によれば、算術復号化装置は、予測値及び状態値を保持する、各ビットプレーン毎に設けられた予測状態メモリと、前記生成されたコンテキスト情報に基づいて予測値及び状態値を更新する予測状態更新手段とを有し、前記生成されたコンテキスト情報をアドレスとして、前記予測状態メモリから予測値及び状態値を読み出す。
【００９８】
また、好適な一様態によれば、復号化する画素の数がｎである場合、｛ｉ−１｝≦０及び｛ｉ＋１｝＞ｎでは、所定値を符号化／復号化する。
【００９９】
また、好適な別の一様態によれば、復号化する画素の数がｎである場合、｛ｉ−１｝≦０及び｛ｉ＋１｝＞ｎでは、復号化をスキップする。
【０１００】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【０１０１】
なお上述の通り、算術符号化方法の種類により使用されている用語が異なるため、本発明の実施の形態においても標準方法であるＪＢＩＧ方法に用いられている用語を使用するが、これによりＪＢＩＧ方法の算術符号に限定されるものではない。
【０１０２】
［第１の実施形態］
本第１の実施形態では、１画素が２ビットからなる多値画像の算術符号化方法と該算術符号化方法に対応する算術復号化装置を示す。
【０１０３】
図８は、本第１の実施形態における符号化／復号化の順序を表わす図である。同図における矢印の示す順序で算術符号化／復号化をする。すなわち、・・・，｛ｉ｝［１］，｛ｉ−１｝［２］，｛ｉ＋１｝［１］，｛ｉ｝［２］，｛ｉ＋２｝［１］，｛ｉ＋１｝［２］，｛ｉ＋３｝［１］，・・・の順序で符号化／復号化する。ここで、｛  ｝［１］は上位ビットプレーンを、｛  ｝［２］は下位ビットプレーンを表わす。
【０１０４】
１番目の画素の最上位ビット即ち｛１｝［１］の次は｛−１｝［２］を符号化／復号化することとなるが、これは存在しない画素の下位ビットにあたる。また、画素数をｎとしたとき最後から２番目の画素の下位ビット即ち｛ｎ−１｝［２］の次は｛ｎ＋１｝［１］を符号化／復号化することとなり、これも存在しない画素である。これらのビットは本来符号化する必要はないが、ダミービットとして例えば０を符号化しておき、復号化時には復号化されたダミービットを捨てて元画像を得てもよい。この方法によれば画像の先端及び終端において例外的な動作を行なわなくても済むので装置構成が簡単になるという利点がある。
【０１０５】
上位ビットプレーンを符号化する時にはそれ以前に符号化した上位ビットのみを参照する。すなわち、上位ビットプレーンを符号化する時のコンテキスト情報はそれ以前に符号化した上位ビットのみを用いて構成する。
【０１０６】
下位ビットプレーンを符号化する時にはそれ以前に符号化した下位ビットと、該下位ビット以前に符号化した上位ビットとを参照する。具体的には上記順序で符号化を行う場合、｛ｉ｝［２］を符号化する時に参照できる下位ビットは｛ｉ−１｝［２］であり、また上位ビットは、参照する下位ビット｛ｉ−１｝［２］を符号化する以前に符号化した上位ビット、すなわち｛ｉ｝［１］以前の上位ビットである。実際的には｛ｉ−１｝［２］以前の下位ビットの一部と、｛ｉ｝［１］とを参照する。
【０１０７】
従来は、復号対象となるビット情報を復号化する１つ前のサイクルで必要なコンテキスト情報が確定していたが、本第１の実施形態では、２つ前のサイクルで必要なコンテキスト情報が確定する。復号化順序は符号化順序とまったく同じであるため、図８に示すように・・・，｛ｉ｝［１］，｛ｉ−１｝［２］，｛ｉ＋１｝［１］，｛ｉ｝［２］，｛ｉ＋２｝［１］，｛ｉ＋１｝［２］，｛ｉ＋３｝［１］，・・・の順序で復号化処理が行なわれる。
【０１０８】
まず、上記復号化順序により、上位ビットプレーンの符号化データを復号する場合について考える。上位ビットの復号化にはそれ以前に符号化した上位ビットのみを参照するため、｛ｉ＋１｝［１］を復号化するのに必要なコンテキスト情報は、｛ｉ｝［１］及びそれ以前の上位ビット情報である。この場合、｛ｉ＋１｝［１］を復号化するのに必要な一番最後の情報である｛ｉ｝［１］の復号化は、｛ｉ＋１｝｛ｉ｝を処理するタイミングに対して２サイクル前に終了している。
【０１０９】
次に、下位ビットプレーンの符号化データを復号する場合について考える。｛ｉ｝［２］を符号化する時に参照する上位ビット｛ｉ｝［１］の復号化は、｛ｉ｝［２］に対し３サイクル前に終了している。また、下位ビットプレーン上の参照ビットの復号化は２サイクル前に終了している。従って、図８に示す復号化順序では、着目ビットの復号化処理に必要なコンテキスト情報は、いずれのプレーンにおいても２サイクル前には確定していることが解る。
【０１１０】
上記のように参照ビット情報を用いてコンテキストを生成し、符号化したデータをハードウェアで復号化する方法においては、信号処理のタイミングが大変重要である。この場合は特にコンテキスト情報が確定するタイミングが重要となる。上記復号化順序で復号化処理可能な復号化ブロックの構成について、図９を参照して説明する。
【０１１１】
同図において、８０１は上位ビットプレーンを復号化する時のコンテキスト情報、８０３は上記コンテキスト情報８０１をラッチするＤ−Ｆ／Ｆ、８０５は下位ビットプレーンを復号化する時のコンテキスト情報、８０７はコンテキスト情報８０５をラッチするＤ−Ｆ／Ｆ、８０９は上位ビットプレーンを復号化する時に用いる確率推定値メモリ、８１１は下位ビットプレーンを復号化する時に用いる確率推定値メモリ、８１３は上記２つの確率推定値メモリの出力の一方を選択するセレクタ、８１５はセレクタ８１３の出力と更新した確率推定値の一方を選択するセレクタ、８１７はセレクタ８１５から出力する確率推定値をラッチするＤ−Ｆ／Ｆ、８１９は予測・確率更新部から出力する更新された予測値と確率推定値をラッチするＤ−Ｆ／Ｆである。なお、その他の構成要素は図６において同一番号で示す要素と同様の機能を有する。
【０１１２】
上記構成を有する復号化ブロックにおける復号化処理のタイミングを、画素ビット｛ｉ＋１｝［１］から画素ビット｛ｉ＋３｝［１］を処理する場合について、図１０を参照して説明する。
【０１１３】
まず最初のサイクルで、｛ｉ＋１｝［１］に対応する予測値及び確率推定値を確率推定値メモリ８０９から読み出す。セレクタ８１３は１サイクル毎に確率推定値メモリ８０９及び８１１を交互に選択するように制御されており、ここでは確率推定値メモリ８０９からの出力を選択する。また、セレクタ８１５は、図６のセレクタ６１５と同様に、（読み出しアドレス＝書き込みアドレス）かつ（現サイクルの復号画素値＝１サイクル前の復号画素値）かつ（メモリ更新時）の条件が成り立つ場合にのみＤ−Ｆ／Ｆ８１９の出力を選択する。従って、通常はスイッチ８１３の出力を選択している。読み出された予測値及び確率推定値はＤ−Ｆ／Ｆ８１７に一旦ラッチされる。
【０１１４】
次のサイクル２でＤ−Ｆ／Ｆ８１７にラッチされた予測値及び確率推定値は算術復号化演算部３０１に入力し、｛ｉ＋１｝［１］の符号化データが算術復号化される。この算術演算の結果、復号した画素値がコンテキスト情報の一部として得られるが、サイクルの後半に確定するので、このコンテキスト情報を安定した信号として使用するために、一度Ｄ−Ｆ／Ｆ８０３にラッチする。これによりＤ−Ｆ／Ｆ８０３から出力されるコンテキスト情報は１サイクル遅れた信号となるが、サイクルの先頭から安定した信号として使用することができる。
【０１１５】
また、該確率推定値も同じくサイクルの後半に確定するため、それを安定した信号として使用するためにＤ−Ｆ／Ｆ９１８でラッチする。
【０１１６】
また、サイクル２の間に、上記処理と平行して｛ｉ｝［２］に対応する予測値及び確率推定値を確率推定値メモリ８１１から読み出し、Ｄ−Ｆ／Ｆ８１７によりラッチする。
【０１１７】
次のサイクル３で、Ｄ−Ｆ／Ｆ８１９にラッチされた｛ｉ＋１｝［１］に対する更新予測・確率推定値が正規化処理に対応して確率推定値メモリ８０９に書き込まれる。同時に、Ｄ−Ｆ／Ｆ８１７にラッチされた予測値及び確率推定値は算術復号化演算部３０１に入力し、｛ｉ｝［２］の符号化データが算術復号化され、復号した画素値をコンテキスト情報の一部として、他の情報と一緒にＤ−Ｆ／Ｆ８０７によりラッチする。
【０１１８】
また、サイクル３の間に、上記処理と平行して｛ｉ＋２｝［１］に対応する予測値及び確率推定値を確率推定値メモリ８０９から読み出し、Ｄ−Ｆ／Ｆ８１７によりラッチする。
【０１１９】
次のサイクル４では、Ｄ−Ｆ／Ｆ８１９にラッチされた｛ｉ｝［２］に対する更新予測・確率推定値が正規化処理に呼応して確率推定値メモリ８１１に書き込まれる。同時に、Ｄ−Ｆ／Ｆ８１７にラッチされた予測値及び確率推定値は算術復号化演算部３０１に入力する。なお、図１０に示すように、｛ｉ＋２｝［１］の符号化データを復号化する際に用いられる予測値及び確率推定値はサイクル２で確定した｛ｉ＋１｝［１］のコンテキスト情報に基づく値である。この予測値及び確率推定値を使用して｛ｉ＋２｝［１］は算術復号化され、さらに、予測確率更新部５０１により得られる更新予測・確率推定値をＤ−Ｆ／Ｆ８１９によりラッチする。
【０１２０】
また、サイクル４の間に、上記処理と平行して｛ｉ＋１｝［２］に対応する予測値及び確率推定値を確率推定値メモリ８１１から読み出し、Ｄ−Ｆ／Ｆ８１７によりラッチする。
【０１２１】
次のサイクル５では、Ｄ−Ｆ／Ｆ８１９にラッチされた｛ｉ＋２｝［１］に対応する更新予測・確率推定値が正規化処理に呼応して確率推定値メモリ８０９に書き込まれる。同時に、Ｄ−Ｆ／Ｆ８１７にラッチされた予測値及び確率推定値は算術復号化演算部３０１に入力する。なお、図１０に示すように、｛ｉ＋１｝［２］の符号化データを復号化する際に用いられる予測値及び確率推定値は、サイクル２で確定した｛ｉ＋１｝［１］のコンテキスト情報及びサイクル３で確定した｛ｉ｝［２］のコンテキスト情報に基づく値である。この予測値及び確率推定値を使用して｛ｉ＋１｝［２］は算術復号化され、さらに、予測確率更新部５０１により得られる更新予測・確率推定値をＤ−Ｆ／Ｆ８１９によりラッチする。
【０１２２】
また、サイクル５の間に、上記処理と平行して｛ｉ＋３｝［１］に対応する予測値及び確率推定値を確率推定値メモリ８０９から読み出し、Ｄ−Ｆ／Ｆ８１７によりラッチする。
【０１２３】
上記手順による処理を、すべての画素ビットについて繰り返し行う。
【０１２４】
このように、２サイクル先行していたコンテキスト情報としての復号画素値も、それを一度Ｄ−Ｆ／Ｆ８０３でラッチし、メモリ読み出し後にもう一度Ｄ−Ｆ／Ｆ８１７でラッチすることによって、２サイクルの遅れが生じ、最終的には、算術復号化演算部３０１における位相と一致する。
【０１２５】
上記の通り本発明の第１の実施形態によれば、多値画像を構成する複数ビットプレーンをプレーン間で数画素ずつずらして符号化する。すなわちあるビットプレーンを符号化する時に、コンテキスト情報として参照する別のビットプレーンを復号化対象画素ビットのビットプレーンより数画素先行して符号化し、復号化時は符号化時と同じ順序で復号化処理を行なうため、ハードウェアで復号化処理を行なう際に、復号化動作速度を大幅に高速化することが可能になる。
【０１２６】
［第２の実施形態］
本第２の実施形態では、１画素が４ビットからなる多値画像の算術符号化方法と該算術符号化方法に対応する算術復号化装置を示す。
【０１２７】
図１１に本第２の実施形態における符号化復号化順序を表わす図を示す。同図における矢印の示す順序で算術符号化／復号化をする。すなわち、・・・，｛ｉ｝［１］，｛ｉ−１｝［２］，｛ｉ−２｝［３］，｛ｉ−３｝［４］，｛ｉ＋１｝［１］，｛ｉ｝［２］，｛ｉ−１｝［３］，｛ｉ−２｝［４］，｛ｉ＋２｝［１］，｛ｉ＋１｝［２］，｛ｉ｝［３］，｛ｉ−１｝［４］，｛ｉ＋３｝［１］，・・・の順序で符号化／復号化をする。ここで、｛  ｝［１］は最上位ビットプレーンを｛  ｝［４］は最下位ビットプレーンを表わす。
【０１２８】
最上位ビットプレーンを符号化する時にはそれ以前に符号化した最上位ビットのみを参照する。すなわち、最上位ビットプレーンを符号化する時のコンテキスト情報はそれ以前に符号化した最上位ビットのみを用いて構成する。
【０１２９】
最上位以外のビットプレーンを符号化する時にはそれ以前に符号化した同一プレーンのビットと該ビット以前に符号化した上位のビットを参照する。上記符号化順序の場合、｛ｉ｝［２］を符号化する時に参照できる同一プレーンのビットは｛ｉ−１｝［２］であり、また上位ビットは、参照する前記ビット｛ｉ−１｝［２］を符号化する以前に符号化した上位ビット、すなわち｛ｉ｝［１］以前の上位ビットである。実際的には｛ｉ−１｝［２］以前の同一プレーンのビットの一部と、｛ｉ｝［１］とを参照する。
【０１３０】
ただし第１実施例と同様、画像の先端と終端付近では存在しない画素のビットを処理するタイミングが発生する。すなわち画像の先端では、｛１｝［１］，｛０｝［２］，｛−１｝［３］，｛−２｝［４］，｛２｝［１］，｛１｝［２］，｛０｝［３］，｛−１｝［４］，｛３｝［１］，｛２｝［２］，｛１｝［３］，｛０｝［４］，｛４｝［１］，｛３｝［２］，｛２｝［３］，｛１｝［４］，という順番で処理を行なうとすると、２番目、３番目、４番目、７番目、８番目、１２番目に処理を行うビットは実際には存在しない画素である。第１の実施形態と同様に０のダミービットを符号化しても良いが、本第２の実施形態ではビット情報がないところは符号化を行なわず、復号化時に於いては後述する図１２に示す有効画素タイミング発生回路１０５３とマスク回路１０５４によって確率推定値を０にしている。確率推定値が０であれば、算術復号化演算部３０１内のＡレジスタ２０１及びＣレジスタ２０２の値は変化しないので符号化処理を行なわないのと同じことになる。この構成はダミービットを符号化する方法に対して余計な符号を発生させないので符号長を短くできるという利点がある。
【０１３１】
上記第１の実施形態では、復号対象となるビット情報を復号化するのに必要なコンテキスト情報の２つ前のサイクルで確定していたが、本第２の実施形態では、必要なコンテキスト情報が４つ前のサイクルで確定する。復号化順序は符号化順序とまったく同じであるため、前記・・・，｛ｉ｝［１］，｛ｉ−１｝［２］，｛ｉ−２｝［３］，｛ｉ−３｝［４］，｛ｉ＋１｝［１］，｛ｉ｝［２］，｛ｉ−１｝［３］，｛ｉ−２｝［４］，｛ｉ＋２｝［１］，｛ｉ＋１｝［２］，｛ｉ｝［３］，｛ｉ−１｝［４］，｛ｉ＋３｝［１］，・・・の順序で復号化処理が行なわれる。
【０１３２】
まず、最上位ビットプレーンに着目して考える。最上位ビットの復号化にはそれ以前に符号化した最上位ビットのみを参照するため、｛ｉ＋１｝［１］を復号化するのに必要なコンテキスト情報は、｛ｉ｝［１］及びそれ以前の最上位ビット情報であり、一番間近の情報である｛ｉ｝［１］の復号化は｛ｉ＋１｝［１］に対して４サイクル前に終了している。
【０１３３】
次に、他のビットプレーンについて考える。｛ｉ｝［ｊ＋１］を符号化する時に参照した上位ビット｛ｉ｝［ｊ］の復号化は、｛ｉ｝［ｊ＋１］に対し５サイクル前に終了している。同一プレーン上の参照ビットは４サイクル前に終了している。従って、着目ビットの復号化処理に必要なコンテキスト情報は、いずれのプレーンにおいても４サイクル前には確定していることが解る。
【０１３４】
第２の実施形態が、ビットプレーンが２ビットから４ビットへ拡張されたことの他に第１の実施形態と異なる点は、メモリに保持する値としては状態値を用いること、バイパスの経路がないこと、有効画素のみを符号化するための手段が加えられていることである。
【０１３５】
上記のような参照ビット情報でコンテキストを生成し、符号化したデータをハードウェアで復号化する復号化ブロックの構成について、図１２を参照して説明する。
【０１３６】
同図において、１０１０は最上位ビットプレーンを復号化する時のコンテキスト情報、１０１１はコンテキスト情報１０１０をラッチするＤ−Ｆ／Ｆ、１０２０は２番目に上位のビットプレーンを復号化する時のコンテキスト情報、１０２１はコンテキスト情報１０２０をラッチするＤ−Ｆ／Ｆ、１０３０は３番目に上位のビットプレーンを復号化する時のコンテキスト情報、１０３１はコンテキスト情報１０３０をラッチするＤ−Ｆ／Ｆ、１０４０は最下位ビットプレーンを復号化する時のコンテキスト情報、１０４１はコンテキスト情報１０４０をラッチするＤ−Ｆ／Ｆ、１０１２は最上位ビットプレーンを復号化する時に用いる予測状態メモリ、１０２２は２番目に上位のビットプレーンを復号化する時に用いる予測状態メモリ、１０３２は３番目に上位のビットプレーンを復号化する時に用いる予測状態メモリ、１０４２は最下位ビットプレーンを復号化する時に用いる予測状態メモリ、１０５０は上記４つの予測状態メモリ１０１２，１０２２，１０３２，１０４２の出力の一つを選択するセレクタ、１０５１は上記セレクタから出力する予測状態値をラッチするＤ−Ｆ／Ｆ、１０９は状態値を確率推定値ＬＳＺに変換する確率推定部、１０５３は、有効画素の確率推定値が変換されているとき１を出力する有効画素タイミング発生回路、１０５４は、無効画素に対応する確率推定値を強制的に０にマスクするマスク回路、１０５５はマスク回路から出力された確率推定値をラッチするＤ−Ｆ／Ｆ、１０５６は現在の確率推定値から更新時の状態値を予測する予測状態更新部、１０５７は予測状態の更新値をラッチするＤ−Ｆ／Ｆ、１０５８は復号したビット情報をラッチするＤ−Ｆ／Ｆである。なお、その他の構成要素は、図６において同一番号で示す要素と同様の機能を有する。
【０１３７】
状態値をメモリへ保持する構成が可能なのはコンテキストが４サイクル前に確定するので確率推定値を生成するために必要な余計なディレイを許容できるからである。例えば予測状態メモリ１０１２からある状態値が出力されたとすると、２サイクル後に算術復号化より復号ビット情報が排他的ＮＯＲゲート３０５より出力されるので、Ｄ−Ｆ／Ｆ１０５８によりさらに１サイクル遅延を加えて４サイクル後に次の画素のコンテキストの一部としてＤ−Ｆ／Ｆ１０１１にラッチさせる。状態値は確率推定値よりビット幅が狭いので、メモリの容量を少なくし回路規模を小さくするためには本構成の方が好ましい。
【０１３８】
メモリへの更新データをバイパスする必要がないのは、各メモリからの読み出しが４サイクルおきであるためである。例えば予測状態メモリ１０１２からある状態値が出力され、さらに状態値の更新が行なわれるとすれば、その更新値がＤ−Ｆ／Ｆ１０５７にセットされるのは３サイクル後である。つまり３サイクル後にメモリ１０１２へ更新値の書き込み処理を行なえば、次のサイクルで仮に４サイクル前と同じコンテキストが発生したとしても更新済みの状態値を読み出せる訳である。
【０１３９】
上記の処理タイミングを示したものが図１３である。
【０１４０】
上記の通り本第２の実施形態によれば、多値画像を構成する複数ビットプレーンをプレーン間で数画素ずつずらして符号化する。すなわちあるビットプレーンを符号化する時に、コンテキスト情報として参照する別のビットプレーンを復号化対象画素ビットのビットプレーンより数画素先行して符号化し、復号化時は符号化時と同じ順序で復号化処理を行なうため、ハードウェアで復号化処理を行なう際に、復号化動作速度を大幅に高速化することが可能になる。
【０１４１】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１４２】
【発明の効果】
以上説明したように本発明によれば、単純な構成を有するハードウェアで、算術符号化された多値画像の算術復号化速度を高速化することができる。
【図面の簡単な説明】
【図１】従来の算術符号化処理を行なう符号化ブロックの構成を示すブロック図である。
【図２】図１に示す算術符号化演算部の構成例を示すブロック図である。
【図３】従来の算術復号化処理を行なう復号化ブロックの構成を示すブロック図である。
【図４】図３に示す算術復号化演算部の構成例を示すブロック図である。
【図５】従来の算術復号化処理を行なう復号化ブロックの別の構成を示すブロック図である。
【図６】従来の算術復号化処理を行なう復号化ブロックの別の構成を示すブロック図である。
【図７】従来の符号化／復号化の順序を表わす図である。
【図８】本発明の第１の実施形態における符号化／復号化の順序を表わす図である。
【図９】本発明の第１の実施形態における算術復号化処理を行なう復号化ブロックの構成を示すブロック図である。
【図１０】図９に示す復号化ブロックにより復号化を行う際の処理タイミングを示す図である。
【図１１】本発明の第２の実施形態における符号化／復号化の順序を表わす図である。
【図１２】本発明の第２の実施形態における算術復号化処理を行なう復号化ブロックの構成を示すブロック図である。
【図１３】図１２に示す復号化ブロックにより復号化を行う際の処理タイミングを示す図である。
【符号の説明】
１０１  端子
１０２  ２値データＰＩＸ信号
１０３  コンテキスト情報
１０５  予測状態メモリ
１０６  予測値
１０７  状態値
１０９  確率推定部
１１１  確率推定値ＬＳＺ
１１３  排他的ＮＯＲゲート
１１４  一致／不一致信号
１１５  算術符号化演算部
１１７  符号化データ
１１８  信号
１１９  予測状態更新部
１２０  制御信号
２０１  Ａレジスタ
２０３  コードレジスタ
２０５  減算器
２０７  加算器
２０９  セレクタ
２１１  セレクタ
２１３  シフトレジスタ
２１５  出力レジスタ
２１７  カウンタ
２１８  端子
２１９  マスク回路
２２０  シフトクロック
２２１  検出器
３０１  算術復号化演算部
３０２  信号
３０４  復号画素値信号
３０５  排他的ＮＯＲゲート
３０６  符号化データ
４０１  減算器
４０３  入力バッファレジスタ
４０５  シフトレジスタ
５０１  予測確率更新部
５０３  確率推定値メモリ
６０１  第１の確率推定値メモリ
６０２  第２の確率推定値メモリ
６０３、６０５  セレクタ
６０７  Ｄ−Ｆ／Ｆ
６０９  遅延回路
６１０  コンテキスト情報
８０１、８０５  コンテキスト情報
８０３、８０７、８１７、８１９  Ｄ−Ｆ／Ｆ
８０９、８１１  確率推定値メモリ
８１３、８１５  セレクタ
１０１０、１０２０、１０３０、１０４０  コンテキスト情報
１０１１、１０２１、１０３１、１０４１  Ｄ−Ｆ／Ｆ
１０１２、１０２２、１０３２、１０４２  予測状態メモリ
１０５０  セレクタ
１０５１、１０５５、１０５７、１０５８  Ｄ−Ｆ／Ｆ
１０５３  有効画素タイミング発生回路
１０５４  マスク回路
１０５６  予測状態更新部
【図１】
0003684128.tif 000002
【図２】
0003684128.tif 000003
【図３】
0003684128.tif 000004
【図４】
0003684128.tif 000005
【図５】
0003684128.tif 000006
【図６】
0003684128.tif 000007
【図７】
0003684128.tif 000008
【図８】
0003684128.tif 000009
【図９】
0003684128.tif 000010
【図１０】
0003684128.tif 000011
【図１１】
0003684128.tif 000012
【図１２】
0003684128.tif 000013
【図１３】
0003684128.tif 000014