(57)【特許請求の範囲】
【請求項１】
所定サイズのＮ個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、
ｎ番目（１≦ｎ≦Ｎ）の単位画像の符号化及び復号に用いられる第１参照データ群を保持し、該ｎ番目の単位画像中の画素毎の符号化及び復号結果に応じて該第１参照データ群を更新する第１学習メモリであって、前記各単位画像へ使用を開始する前に該第１参照データ群が初期化される第１学習メモリと、
ｎ＋１番目の単位画像の符号化及び復号に用いられる第２参照データ群を保持し、該ｎ＋１番目の単位画像中の画素毎の符号化及び復号結果に応じて該第２参照データ群を更新する第２学習メモリであって、前記各単位画像へ使用を開始する前に該第２参照データ群が初期化される第２学習メモリとを有し、
初期化された場合の前記第１及び第２参照データ群を同一の内容とすることを特徴とする符号化及び復号装置。
【請求項２】
前記符号化及び復号は予測符号化及び復号であることを特徴とする請求項１記載の符号化及び復号装置。
【請求項３】
前記符号化及び復号はＪＢＩＧ符号化及び復号であることを特徴とする請求項１記載の符号化及び復号装置。
【請求項４】
前記単位画像は１ページの画像を構成するバンド状の画像であることを特徴とする請求項１記載の符号化及び復号装置。
【請求項５】
前記第１及び第２の学習メモリは略同一の構成であることを特徴とする請求項１記載の符号化及び復号装置。
【請求項６】
所定サイズのＮ個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、
ｎ番目（１≦ｎ≦Ｎ）の単位画像の符号化及び復号に用いられる第１参照データ群を保持し、前記各単位画像へ使用を開始する前に該第１参照データ群を初期化し、該ｎ番目の単位画像中の画素毎の符号化及び復号結果に応じて該第１参照データ群を更新する第１学習メモリを用意し、
ｎ＋１番目の単位画像の符号化及び復号に用いられる第２参照データ群を保持し、前記各単位画像へ使用を開始する前に該第２参照データ群を初期化し、該ｎ＋１番目の単位画像中の画素毎の符号化及び復号結果に応じて該第２参照データ群を更新する第２学習メモリを用意し、
初期化された場合の前記第１及び第２参照データ群を同一の内容とすることを特徴とする符号化及び復号方法。
【請求項７】
複数個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、
各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリと、
前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリとを有し、
前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする符号化及び復号装置。
【請求項８】
前記符号化及び復号はＪＢＩＧ符号化及び復号であることを特徴とする請求項７記載の符号化及び復号装置。
【請求項９】
前記単位画像は１ページの画像を構成するバンド状の画像であることを特徴とする請求項７記載の符号化及び復号装置。
【請求項１０】
複数個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、
各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリを用意し、
前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリを用意し、
前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする符号化及び復号方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化及び復号装置とその符号化及び復号方法に関するものである。
【０００２】
【従来の技術】
従来、コンピュータからプリンタ等の画像出力装置に転送された画像データやページ記述言語（以下、ＰＤＬと略す）データは該出力装置において描画展開され、描画展開される毎にビットマップデータをプリンタのエンジン部に送っていた。しかし、描画展開する内容が複雑な場合には、該描画展開スピードがエンジン部の描画スピードに追い付かないことがある。この場合には、描画展開後のビットマップデータを一旦メモリ（該メモリをページメモリという）に格納し、ページ単位のすペての描画展開が終了して該ビットマップデータがメモリに格納された後に、該ビットマップデータを先頭から順にプリンタのエンジン部へ送る。
【０００３】
ところが、プリント出力する用紙がＡ３で解像度が６００ｄｐｉの場合、１画素あたりのビット数が１ビットの２値であっても、全ビットマップのデータ量は８ＭＢにもなり、大容量のメモリはプリンタのコストが高くなる大きな要因であった。
そこで、図１に示すような構成が考えられている。コンピュータから受け取ったデータは、コンピュータからデータを受け取るインターフェース部１０１、コンピュータから受け取ったデータを一時的に記憶するテンポラリバッファ１０２、コンピュータから受け取ったデータ描画展開する描画部１０３、該描画部が描画展開したビットマップデータを書き込むバンドバッファ１０４、該バンドバッファのビットマップデータを圧縮符号化する符号化部１０５、該符号化部で圧縮符号化した符号化データを格納するページバッファ１０６、該ページバッファ中の符号化データを復号する復号部１０７を番号順に経由して、最後に、復号して得られたビットマップデータをプリント出力するプリンタエンジン部１０８へ出力される。尚、バンドバッファ１０４は複数設けて、描画部１０３の展開処理と符号化部１０５の符号化処理とを並列に処理することで、処理の高速化を図る。
【０００４】
この構成により、圧縮前には８ＭＢ必要であったページメモリの容量が１／２〜１／４程度に減少する。そのかわり新たに、バンドバッファ１０４が必要になり、その分のメモリが増えるが、展開描画する単位（これをバンドという）を１ページの１／１６〜１／２０にすれば、トータルではメモリの削減効果がでてくる。
【０００５】
上記符号化部１０５の符号化方式としては、コスト削減の要求が強く、ページメモリの容量をなるべく減らすために、任意のビットマップデータ（テキスト、グラフィック、画像等）に対して、圧縮率の最悪値がある一定の値を保証する圧縮方式が望まれる。そのような圧縮方式としては、圧縮対象となるビットマップデータの２次元的な特徴を学習する機能を有するＪＢＩＧ符号化方式が候補となる。
【０００６】
ＪＢＩＧ符号化方式では、予測状態を保持するＲＡＭの内容を更新することで学習を行なう。この学習（ＲＡＭの内容の更新）は不定期に発生し、その際メモリへの書き込み動作のために、符号化復号処理の時間が長くなる。逆に、該学習（ＲＡＭの内容の更新）をしなくてもよい場合には、符号化復号処理の時間が短くなる。従って、該ＪＢＩＧ方式で符号化データを復号した場合には、該復号部１０７からのデータ出力レートが一定でなく、該出力をプリンタエンジン部１０８に直接出力することは出来ない。そこで、図２に示すごとく、復号部１０７とエンジン部１０８との間に、ＦＩＦＯ（First In First Out）Memory１０９を設け、該復号部１０７から出力するビットマップデータを時間的に平滑化してから、エンジン部１０８に出力するようにしている。
【０００７】
さらに、本発明者は先に同一出願人が出願した特許において、以下の処理方式を提案した。この新たな提案の構成を図３に示す。該提案内容と図２との違いは、以下の２点である。
（１）復号部１０７で復号したビットマップデータをバンドバッファ１０４に書き込む。
（２）該バンドバッファ１０４に書き込まれたビットマップデータを所定のタイミングで、プリンタエンジン１０８に出力する。
【０００８】
上記（１）が処理できるようにデータパス３０１を設け、上記（２）が処理できるようにデータパス３０２を設けたのが、構成上の違いである。
機能的には、図２におけるＦＩＦＯ１０９で行なっていたビットマップデータを時間的に平滑化する処理を、バンドバッファ１０４で行なおうとしたところが、図２と異なる。該バンドバッファ１０４は、図２では描画展開時と符号化時のみ動作していたが、本例では復号時にも動作する。
【０００９】
その動作タイミングを図４に示す。説明を簡略化するため、１ページのビットマップデータは６つのバンドに分割されるものとし、上から順にＡ１，Ｂ２，Ａ３，Ｂ４，Ａ５，Ｂ６と名前を付ける。処理のスループットを上げるため、バンドバッファ１０４はダブルバッファ構成とし、該２つのバッファをそれぞれバッファＡ，バッファＢとする。
【００１０】
バンドバッファに対する描画展開処理はＡ１，Ｂ２，Ａ３，Ｂ４，Ａ５，Ｂ６の順に行なわれる（図４−ａ）が、Ａ１，Ａ３，Ａ５はバッファＡに、Ｂ２，Ｂ４，Ｂ６はバッファＢに、それぞれ展開される。Ｂ２の展開が始まる時にはＡ１の展開が終了しているので、Ｂ２の展開と平行してＡ１の圧縮符号化を行なう（図４−ｂ）。以下、Ａ３の展開と平行してＢ２の圧縮符号化を行ない、最後にＢ６の圧縮符号化を行なう。こうして１ページ分のビットマップデータをすペて圧縮符号化し終ると、次は該圧縮データの復号を行なう。
【００１１】
復号する順序も、符号化時と同じでＡ１，Ｂ２，Ａ３，Ｂ４，Ａ５，Ｂ６の順に行なう（図４−ｃ）。復号部１０７で、復号した１バンド分のビットマップデータＡ１はまずバッファＡに書き込まれる。次に復号した１バンド分のビットマップデータＢ２はバッファＢに書き込まれる。その際、バッファＢの書き込みに平行してバッファＡからビットマップデータを読み出し、該ビットマップデータをプリンタエンジン部１０８に送り（図４−ｄ）、１ページのプリントを開始する（図４−ｅ）。
【００１２】
以下、復号したビットマップデータＡ３の書き込みと平行して、Ｂ２の読み出しとプリンタエンジン１０８への転送を行ない、最後にＢ６の読み出しとプリンタエンジン１０８への転送を行なう。これにより、１ページ分の全ビットマップデータがプリンタエンジン１０８に送られ、プリント出力が終了する（図４−ｅ）。
【００１３】
上記図１−図３の符号化部１０５や復号部１０７で使用される、従来のＪＢＩＧの符号化及び復号装置のブロック図を図５に示し、その動作について簡単に説明する。
同図において、５０１は、ＪＢＩＧにおける算術演算を行う算術演算部、５０２は、予測状態を保持する学習ＲＡＭ、５０３は、該学習ＲＡＭ５０２に格納する予測データを生成するＳＴ＆ＭＰＳ生成部、５０４は、コンテキスト（ＣＸ）を入力する端子、５０５は、メモリクリア時にメモリクリアモード信号を入力する端子、５１１は、メモリクリア時に学習ＲＡＭ５０２のアドレス信号を生成するカウンタ、５１３は、メモリクリア時に学習ＲＡＭ５０２に書き込むゼロデータを生成するデータ生成部、５１５は、メモリクリア時に学習ＲＡＭ５０２に与えるライトパルスを生成するパルス生成部、５２１，５２３，５２５は、それぞれセレクタである。
【００１４】
まず、符号化または復号に先立ち、端子５０５にメモリクリアモード信号（Ｈｉｇｈ）を入力して学習ＲＡＭ５０２のクリアをおこなう。該信号がＨｉｇｈになると、セレクタ５２１はカウンタ５１１を選択し、セレクタ５２３はデータ生成部５１３を選択し、セレクタ５２５はパルス生成部５１５を選択する。カウンタ５１１は前記モード信号がＬｏｗの間は、ゼロにリセットされており、該モード信号がＨｉｇｈになるとカウントアップ動作を行う。該カウンタの値はセレクタ５２１を通して、学習ＲＡＭ５０２のアドレス端子に与えられ、該学習ＲＡＭ５０２のすべてのアドレスをアクセスする。それと同時に、ゼロデータがデータ生成部５１３からセレクタ５２３を通して該学習ＲＡＭ５０２のデータ入力端子に与えられ、メモリライトパルス信号がパルス生成部５１５で生成され、セレクタ５２５を通して該学習ＲＡＭ５０２のライトパルス入力端子に与えられる。以上の動作により、該学習ＲＡＭ５０２がすペてクリアされると、端子５０５から入力されるメモリクリアモード信号はＬｏｗになる。
【００１５】
そして、該学習ＲＡＭ５０２のアドレス端子には端子５０４から入力されるコンテキスト（ＣＸ）が、データ入力端子にはＳＴ＆ＭＰＳ生成部５０３で生成されるデータＮＳＴ（NEXT STATE；次の予測状態）及びＮＭＰＳ（NEXT MPS；次の優勢シンボル）が、ライトパルス入力端子には算術演算部５０１内の制御回路で生成されるパルスが、それぞれ入力される。それから符号化または復号動作が開始される。
【００１６】
復数の参照画素データがコンテキストとして学習ＲＡＭ５０２のアドレス端子に与えられ、該コンテキストに対応する予測状態ＳＴや優勢シンボルＭＰＳが読み出される。該情報は算術演算部５０１に送られ、該情報に基づいて算術演算が行われる。そして、その演算結果に基づいて、学習ＲＡＭ５０２の内容を更新するかどうかが判定され、更新する場合にはメモリライトパルス信号がセレクタ５２５を通して学習ＲＡＭ５０２に与えられる。それと同時にＳＴ＆ＭＰＳ生成部５０３にて該学習ＲＡＭ５０２に新たに格納するデータＮＳＴ＆ＮＭＰＳが前記ＳＴ＆ＭＰＳに基づいて生成される。
【００１７】
学習ＲＡＭ５０２から出力されたＳＴ＆ＭＰＳの内、算術演算部５０１ではＳＴがＬＳＺ（劣勢シンボルのサイズ；確率推定値）に変換されて、算術演算に使用される。尚、本例では予測状態ＳＴを使って制御を行っているが、学習ＲＡＭ５０２にＬＳＺそのものを記憶するようにしても構わない。
図１３に従来知られている符号化の処理フローの概略を、図１５にＪＢＩＧの符号化アルゴリズムの処理”ＥＮＣＯＤＥ”の一般的なフローチャートを示す。以下、図１３と図１５とを用いて従来の符号化動作を説明する。ここで、Ａはインタバルサイズのレジスタ、Ｃはコードレジスタである。
【００１８】
ステップ１９００は読み出し処理であり、学習ＲＡＭ５０２から符号化画素に対応する予測状態ＳＴと予測シンボルＭＰＳの読み出しを行う。読み出し処理の際、入力されるアドレスは、符号化対象画素ＰＩＸの周囲の参照画素群から生成した値であり、参照する範囲の形状をテンプレートという。ＪＢＩＧ符号化に用いられるテンプレートの一例を、図１４に示す。この例では、２０１０が符号化対象画素であり、２０００から２００９までの１０個の画素が参照画素群にあたる。これら１０個の画素の色を１０ビットの２進数に対応させたものを、コンテキストＣＸという。従って、１０ビットのテンプレートの場合、コンテキストの値は０から１０２３までの１０２４通りの値を取りうることになる。
【００１９】
ステップ１９０１の確率推定値デコード処理は、ステップ１９００において読み出されたＳＴを、劣勢シンボルの出現確率に比例する確率推定値ＬＳＺに変換する。次に、ＰＩＸ，ＭＰＳ，ＬＳＺを用いて算術演算が行われる。ＪＢＩＧ符号化では、各々のコンテキストごとに決定しているＬＳＺ，ＭＰＳを、符号化を行っていく過程で適応的に更新していかなければならない。ステップ１９０２においては、演算αの結果から、この更新処理を行う必要があるかどうかを判定する。この処理は、図１５のステップ２１００，２１０２及び２１０１ａ，ｂの処理の（Ａ−ＬＳＺ）の計算部分に対応する。すなわち、更新処理は、ＰＩＸ＝ＭＰＸでない場合、あるいは（Ａ−ＬＳＺ）の結果が０ｘ８０００未満となった場合に、実行される。更新処理が選択されると、ステップ１９０３で演算β及び書き込み処理を行う。
【００２０】
ステップ１９０３は、更新処理が必要な場合に行う処理であり、学習ＲＡＭ５０２への書き込み処理では、当該コンテキストにおける次なる予測状態ＮＳＴ及び、次なるＭＰＳであるＮＭＰＳを、学習ＲＡＭ５０２に書き込む。書き込むアドレスは、読み出し処理に使用した現処理対象画素のコンテキストである。演算βは、図１５のステップ２１０３ａ，ｂ、２１０４ａ，ｂ、２１０９の処理に対応し、書き込み処理は、図１５のステップ２１０５〜２１０８の処理に対応する。更新処理が必要ない場合は、演算βと書き込み処理を行わず、ステップ１９０４の演算γを行って次の画素の処理に移る。演算γは更新処理が必要ない場合に行う演算であり、図１５のステップ２１０１ａ，ｂの処理の（Ａ−ＬＳＺ）の結果をＡレジスタへ代入する部分に対応する。
【００２１】
【発明が解決しようとする課題】
しかしながら、上記従来例の符号化及び復号装置では、符号化及び復号処理に先立って行う学習メモリのクリア処理にある所定の時間が必要なので、図１−図３のようにバンド単位で符号化や復号を行う場合には、各バンド毎に学習ＲＡＭのクリアを行うための処理時間が必要となり、バンドデータを連続して符号化処理したり復号処理することが困難となり、処理の高速化の制限となっていた。
【００２２】
本発明は、上記従来の欠点を除去し、バンド単位で符号化や復号を行うように学習メモリの頻繁なクリアが必要な場合も、処理の高速化が可能な符号化及び復号装置とその符号化及び復号方法を提供する。
【００２３】
【課題を解決するための手段】
この課題を解決するために、本発明の符号化及び復号装置は、所定サイズのＮ個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、ｎ番目（１≦ｎ≦Ｎ）の単位画像の符号化及び復号に用いられる第１参照データ群を保持し、該ｎ番目の単位画像中の画素毎の符号化及び復号結果に応じて該第１参照データ群を更新する第１学習メモリであって、前記各単位画像へ使用を開始する前に該第１参照データ群が初期化される第１学習メモリと、ｎ＋１番目の単位画像の符号化及び復号に用いられる第２参照データ群を保持し、該ｎ＋１番目の単位画像中の画素毎の符号化及び復号結果に応じて該第２参照データ群を更新する第２学習メモリであって、前記各単位画像へ使用を開始する前に該第２参照データ群が初期化される第２学習メモリとを有し、初期化された場合の前記第１及び第２参照データ群を同一の内容とすることを特徴とする。ここで、前記符号化及び復号は予測符号化及び復号である。また、前記符号化及び復号はＪＢＩＧ符号化及び復号である。また、前記単位画像は１ページの画像を構成するバンド状の画像である。また、前記第１及び第２の学習メモリは略同一の構成である。
【００２４】
又、本発明の符号化及び復号方法は、所定サイズのＮ個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、ｎ番目（１≦ｎ≦Ｎ）の単位画像の符号化及び復号に用いられる第１参照データ群を保持し、前記各単位画像へ使用を開始する前に該第１参照データ群を初期化し、該ｎ番目の単位画像中の画素毎の符号化及び復号結果に応じて該第１参照データ群を更新する第１学習メモリを用意し、ｎ＋１番目の単位画像の符号化及び復号に用いられる第２参照データ群を保持し、前記各単位画像へ使用を開始する前に該第２参照データ群を初期化し、該ｎ＋１番目の単位画像中の画素毎の符号化及び復号結果に応じて該第２参照データ群を更新する第２学習メモリを用意し、初期化された場合の前記第１及び第２参照データ群を同一の内容とすることを特徴とする。
【００２５】
又、本発明の符号化及び復号装置は、複数個の単位画像を独立して順次符号化及び復号する符号化及び復号装置であって、各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリと、前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリとを有し、前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする。ここで、前記符号化及び復号はＪＢＩＧ符号化及び復号である。また、前記単位画像は１ページの画像を構成するバンド状の画像である。
【００２６】
又、本発明の符号化及び復号方法は、複数個の単位画像を独立して順次符号化及び復号する符号化及び復号方法であって、各単位画像中の画素を符号化及び復号する毎に参照され、該符号化及び復号の結果に応じて更新される参照データ群を保持する学習メモリを用意し、前記学習メモリ内の参照データの各々が、符号化及び復号の対象である単位画像の符号化及び復号の過程内で更新されているか否かを表すデータを保持する更新時期格納メモリを用意し、前記単位画像を符号化及び復号する為に学習メモリから読み出した参照データが、該単位画像の符号化及び復号の過程内で更新されていない場合には、前記学習メモリから読み出した参照データを所定の初期参照データに置き換えることを特徴とする。
【００２７】
【発明の実施の形態】
＜第１の実施の形態＞
本発明の第１の実施の形態の符号化及び復号装置を図６に示す。本実施の形態においては、同一容量の２つの学習ＲＡＭを用いる。
同図において、５０１〜５２５までは、前記図５に示した従来例における同一番号と同じ機能を果たすものであるため、説明を省略する。
【００２８】
６０２，６２１，６２３，６２５はそれぞれ５０２，５２１，５２３，５２５と同じ機能を有するものであり、６０５はバンドが切り替わるごとにＨｉｇｈとＬｏｗとに交互に切り替わるバンド切り替え信号を入力する端子、６３０は２つの学習ＲＡＭ５０２，６０２の出力を選択するセレクタである。
一番最初の符号化または復号に先立ちバンド切り替え信号をＨｉｇｈにし、不図示のリセット信号により、カウンタ５１１をゼロにリセットする。そして、従来例のところで述ペたように、学習ＲＡＭ５０２をクリアする。このクリア処理には当然、所定の時間がかかる。該クリア処理終了後、前記バンド切り替え信号をＬｏｗにして、最初のバンドの符号化または復号処理を行う。該符号化または復号処理をしている間に、別の学習ＲＡＭ６０２のクリア処理を前記学習ＲＡＭ５０２のクリア処理と同じように行う。
【００２９】
１つバンドのデータ量（画素数）は数万〜数十万画素であるのに対して、学習ＲＡＭの容量は１０２４番地しかないため、該クリア処理はすぐ終了してしまう。１つバンドデータをすべて符号化または復号処理したら、バンド切り替え信号をＬｏｗからＨｉｇｈに替え、クリア処理済みの学習ＲＡＭ６０２を用いて、次のバンドの符号化または復号処理を行う。この時、学習ＲＡＭ５０２のクリア処理を行うのは、当然である。
【００３０】
以下同様にして、残りのバンドの符号化または復号処理を行う。
＜第２の実施の形態＞
次に、本発明の第２の実施の形態の符号化及び復号装置を図７に示す。本実施の形態においても、第１の実施の形態と同様、同一容量の２つのメモリを用いる。但し、１つは従来の学習ＲＡＭであり、もう１つはバンドシーケンスの番号を記憶するために用いる。
【００３１】
同図において、５０１〜５２５までは、前記図５に示した従来例における同一番号と同じ機能を果たすものであるため、説明を省略する。
７０１は、これまでにいくつのバンドを処理したかを示すバンドシーケンス番号を生成するための８ビットのカウンタ、７０２は、該シーケンス番号を格納するためのバンドシーケンス格納メモリで、容量的には上記のごとく、学習ＲＡＭ５０２と同じである。７０４は、該バンドシーケンス格納メモリ７０２から読み出した値と前記カウンタ７０１の出力値とが等しいかどうかを検出する一致検出回路、７０６は、該一致検出回路７０４の検出結果に基づいて、学習ＲＡＭ５０２の出力をマスクするマスク回路である。
【００３２】
最初のメモリクリアの方法は、従来例に近く、まず、符号化または復号に先立ち端子５０５にメモリクリアモード信号（Ｈｉｇｈ）を入力して、学習ＲＡＭ５０２のクリアをおこなう。該信号がＨｉｇｈになると、セレクタ５２１はカウンタ５１１を選択し、セレクタ５２３はデータ生成部５１３を選択し、セレクタ５２５はパルス生成部５１５を選択する。カウンタ５１１は前記モード信号がＬｏｗの間は、ゼロにリセットされており、該モード信号がＨｉｇｈになるとカウントアップ動作を行う。該カウンタの値はセレクタ５２１を通して、学習ＲＡＭ５０２とバンドシーケンス格納メモリ７０２とのアドレス端子に与えられ、該２つメモリのすべてのアドレスをアクセスする。
【００３３】
それと同時に、ゼロデータがデータ生成部５１３からセレクタ５２３を通して該学習ＲＡＭ５０２のデータ入力端子に与えられ、一方、不図示のリセット信号によってゼロにクリアされたカウンタ７０１の出力値がバンドシーケンス格納メモリ７０２のデータ入力端子に与えられる。そして、メモリライトパルス信号がパルス生成部５１５で生成され、セレクタ５２５を適して該学習ＲＡＭ５０２とバンドシーケンス格納メモリ７０２のライトパルス入力端子に与えられる。
【００３４】
以上の動作により、該学習ＲＡＭ５０２とバンドシーケンス格納メモリ７０２とがすべてクリアされると、一番最初のメモリクリア処理は終了し、端子５０５から入力されるメモリクリアモード信号はＬｏｗになる。
本実施の形態の特徴は、これ以降のメモリクリアの方法にある。簡潔にその内容を表現すると、
（１）実際のメモリクリア処理は最初の１回行うだけで、その後はクリア処理をしない。
（２）見かけ上のクリア処理は、マスク回路７０６で学習ＲＡＭ５０２からの出力をゼロにマスクすることで行う。
（３）処理するバンドが変わってから初めてアクセスされるアドレスでは、該アドレスで読み出されるシーケンス番号（メモリ７０２の出力）と、カウンタ７０１の出力値（これはバンドが変わった時にカウントアップしている）とが一致しないので、一致検出回路７０４の出力はゼロとなり、上記（２）のように処理される。
（４）ｎ番目のバンドのあるアドレスで１度学習ＲＡＭ５０２の更新が行なわれると、該アドレスにおけるバンドシーケンス格納メモリ７０２の内容がカウンタ７０１の値に書き換えられるので、それ以降における該アドレスの学習ＲＡＭ５０２の出力はマスクされずに有効となる。
【００３５】
ＪＢＩＧにおける学習ＲＡＭ５０２の容量は１０２４番地×８ビットであり、メモリ７０２も該容量と同じであるため、バンドシーケンス番号が２５５以内に収まっていれば、本実施の形態はまったく問題なく、上述のごとく実際のメモリクリア処理は最初の１回行うだけで、その後はクリア処理をしなくても見かけ上クリアがなされているように見える。
【００３６】
本実施の形態は以下に述べる応用が可能である。
バンドシーケンス番号が必ず（２^n−１）以下になる場合には、カウンタ７０１はｎビット、バンドシーケンス格納メモリ７０２のビット幅もｎビットで済む。ここで、バンドシーケンス番号について少し述べる。１ページのデータを例えば１６個のバンドに分割し、各バンドを順番に処理し、１バンドにつき１回しか処理しなければ、バンドシーケンス番号は０から始まって１５で終る。しかし、同じ１６個のバンドへの分割でも、一度符号化したビットマップデータを上書きのために一旦復号して、上書き後に再度符号化するような処理をおこなうと、バンドシーケンス番号は１５以内に収まらない。この場合は、例えば該番号の上限を６３に制限して前記カウンタ及びメモリのビット幅を６ビットにするということも１つの方法である。
【００３７】
＜第３の実施の形態＞
本発明の第３の実施の形態の符号化及び復号装置について述べる。
前記第２の実施の形態の最後で述べたように、１ページのバンドの個数よりもバンドシーケンス番号が大きくなる場合がある。しかし、符号化時と復号時で事情は大きく異なる。符号化時は前述のように上書き処理を行うとバンドシーケンス番号はいくらでも大きくなりうる。しかし、バンドの替わり目で該符号化処理を少しの間停止し、学習メモリ等のクリア処理を行うことが可能である（尚、上書きの前に行う復号処理は、上記符号化処理に含まれる）。
【００３８】
それに対して、復号処理（ＬＢＰ等の画像出力エンジンに復号データを出力する場合）では、１ページの一番最初のバンドから順番に復号処理するため、各バンドは１度しか処理しない。よって、バンドの個数に対応して、シーケンス番号の最大値が確定する。ところが、復号処理は、復号データの出力先が画像出力エンジンであるため、該復号処理をメモリクリアの都合で停止することは出来ない。
【００３９】
従って、復号処理がとどこおることのないよう、１ページのバンドの個数に合わせて、前記カウンタ７０１及びバンドシーケンス格納メモリ７０２のビット幅を設定する。これにより、該格納メモリの容量を必要最小限にすることができる。符号化時には、バンドシーケンス番号が前記カウンタ７０１を容易に超すことが想像される。この場合、カウンタ７０１のビット数をｎビットとすれば、２n個のバンドを処理するごとに該符号化処理を少しの間停止して学習メモリ等のクリア処理を行うことで、符号化処理にも対応する。
【００４０】
本実施の形態の符号化及び復号装置を表すブロック図は、前記第２の実施の形態を表す図７とほとんど同じであり、カウンタ７０１とバンドシーケンス格納メモリ７０２の入出力データのバス幅が、変わるだけである。
処理タイミング上は少し違いがあり、符号化時の学習ＲＡＭ等のメモリをクリアする回数が複数回になる。それを図８に示す。
【００４１】
＜第４の実施の形態＞
本発明の第４の実施の形態の符号化及び復号装置のブロック図を図９に示す。該ブロック図は、前記第３の実施の形態とほとんど同じである。しかし、本実施の形態では学習メモリ等のクリア処理を行う時に、上記符号化処理を少しの間停止するといったことはせずに、連続して符号化処理ができるようにした。
【００４２】
そのために、前記学習メモリ等のクリア処理を上記符号化処理とほぼ平行して行うことができるよう、学習ＲＡＭ５０２から読み出してマスク回路７０６を通したデータを直接該学習ＲＡＭ５０２に書き込めるよう、該データを保持することができるレジスタ８０１と該データを直接学習ＲＡＭ５０２に入力できるようセレクタ８０３、並びに該セレクタ制御信号の入力端子８０５を設けた。
【００４３】
一般的に、ＬＢＰ等の画像出力エンジンは、主走査１ラインのデータを連続して転送しなければならないが、該ラインとラインとの間には若干の休止期間がある。その休止期間内に、前記学習ＲＡＭ５０２の読み出しと書き込みを少しずつ行ない、２^nバンド期間内にすペてのアドレスを一通りアクセスし、前記バンドシーケンス格納メモリ７０２を書き換えることにより、学習ＲＡＭ５０２を見かけ上クリアする。
【００４４】
図１０に本実施の形態の処理のタイミングチャートの例を示す。例えば、ｎ＝６，２^n＝６４とすると、学習ＲＡＭ５０２の１６ｍ番地〜１６ｍ＋１５番地は、バンドシーケンス番号ｍで読み出しと書き込みを行う。
ここで、学習ＲＡＭ５０２の６番地と８７番地がバンドシーケンス番号３でアクセス（メモリ更新）されたとする。この時、バンドシーケンス格納メモリ７０２の６番地と８７番地には、該バンドシーケンス番号３が格納される。この学習ＲＡＭ５０２の内容は、該バンドシーケンス番号が３の間はずっと有効である。ところが、処理するバンドが替わって、バンドシーケンス番号及びカウンタ７０１の出力が４になると、６番地と８７番地の学習ＲＡＭ５０２の内容は、マスク回路７０６でゼロにマスクされ、見かけ上クリアされたようになる。
【００４５】
やがて、バンドシーケンス番号が５になると、該８７番地の値が読み出され、マスク回路７０６でゼロにマスクされて書き込まれるので、本当に該番地のデータはゼロクリアされる。一方、６番地の学習ＲＡＭ５０２の内容はまだクリアされないが、マスク回路７０６でゼロにマスクされるので、見かけ上はクリアされているような状態が続く。さらに処理が進んでゆき、バンドシーケンス番号が６４（これはバンドシーケンス番号０と等価）になると、該学習ＲＡＭ５０２の６番地の内容も本当にゼロクリアされる。
【００４６】
上記のように、エンジンへの主走査単位のデータ転送の間に生じるわずかなデータ停止期間を利用して、学習ＲＡＭの内容をクリアする本実施の形態の方法は、復号時において特に有効なクリア方法であり、該方法を復号時に用い、符号化時には、前記第３の実施の形態の方法を用いるのも一つの方法である。
＜第５の実施の形態＞
本発明の第５の実施の形態の符号化及び復号装置のブロック図を図１１に示す。
【００４７】
本実施の形態ではバンドシーケンス格納メモリ７０２のビット幅を１ビットとし、実施の形態２〜４で使用していたカウンタ７０１の替わりに、バンドごとに出力値が反転するフラグ１００１を用い、一致検出回路としてＥＸＮＯＲ（exclusive-NOR）１００３を用いる。
本実施の形態は、前記第４の実施の形態においてｎ＝１とした場合であり、そういう意味では、前記第４の実施の形態とはとんど同じであるが、ｎ＝１の場合には付加すべきハードウェアの規模が最小になるため、これについて詳しく述ベるのは重要なことである。
【００４８】
まず、符号化時について述ペる。上述の実施の形態で述べたように、ｎ＝１の場合には、２バンドおきに符号化処理を停止し、学習ＲＡＭ等のメモリのクリアを行うことができる。しかし、２バンドおきに符号化処理を停止するのは中途半端だと思えば、１バンドおきに符号化処理を停止し、毎バンドごとに学習ＲＡＭ等のメモリのクリアを行なってもよい。
【００４９】
次に、復号時について述べる。復号処理に先立ち、まず、学習ＲＡＭ等のメモリをすべてクリアする。そして、最初のバンドの復号処理を行う。この時、フラグ１００１の値は“０”である。最初のバンドの処理は、前記メモリのクリアが行われているおかげで、他には何もすることはない。次のバンドになると、フラグ１００１の出力は“１”になる。これによりＥＸＮＯＲ１００３の出力は“０”となり、学習ＲＡＭは見かけ上クリアされたことになる。しかし、次のバンドに替わって、該フラグの出力が“０”に戻るとクリアされたはずの学習ＲＡＭの内容が復活してしまうので、該フラグの出力が“１”の間に、本当に該学習ＲＡＭ５０２をクリアする必要がある。
【００５０】
ここで、１バンドの主走査のライン数が２５６だとすると、前述のエンジンへのデータ転送休止期間に４つのアドレスからデータを読み出し書き込む動作を行なうことができれば、１バンドの間に１０２４番地すべての学習ＲＡＭ５０２の内容を、該バンドで有効なデータを保存しながら無効なデータをクリアすることができる。該クリア処理は、上記バンド以降、バンドが替わるたびに行う。
【００５１】
また、該クリア処理のため学習ＲＡＭ５０２からデータを読み出した時に、既に該バンドで学習ＲＡＭの更新がなされたアドレスでは、ＥＸＮＯＲ１００３の出力が“１”になるため、該出力に基づいて書き込み動作を省略してもよい。
＜第６の実施の形態＞
本発明の第６の実施の形態の符号化及び復号装置のブロック図を図１２に示す。本実施の形態は、前記第５の実施の形態を応用したものである。
【００５２】
これまで述べた実施の形態におけるバンドシーケンス格納メモリには、１つの番地には１つのデータしか格納していなかったが、本実施の形態では、１つの番地に複数のデータを格納し、その分、該メモリのアドレス空間を小さくして、該メモリの全アドレス空間のアクセスを高速化したものである。
図１２に示した例は、該バンドシーケンス格納メモリ１１０１を１２８番地×８ビットで構成した場合である（前記第５の実施の形態では、１０２４番地×１ビットというメモリ構成であった）。よって、該バンドシーケンス格納メモリ１１０１に入力するアドレス信号はこれまでの１０ビットから７ビットになり、残りの３ビットは該バンドシーケンス格納メモリ１１０１から読み出した８ビットのデータから１ビットを選択するセレクタ１１０３及びデコーダ１１０４に入力される。該デコーダ１１０４は、該バンドシーケンス格納メモリ１１０１に入力する８ビットデータの各々に設けられているセレクタ１１１１〜１１１８の内、対応するセレクタのみをフラグ１００１の出力端子に切り替え、その他のセレクタは該バンドシーケンス格納メモリ１１０１の出力を選択するような信号を生成する。バンドシーケンス格納メモリ１１０１の出力を選択するということは、前のデータを保持するということである。
【００５３】
アドレスが７ビットになったのに対応して、該７ビットのアドレス信号のみを切り替えるセレクタ１１０５や、該７ビットのアドレス信号を（メモリクリア時に）発生するカウンタ１１０７が付加され、余分なものが除去されている。
本実施の形態の特徴は、上記バンドシーケンス格納メモリ１１０１の構成以外に、学習ＲＡＭ５０２の扱い方にある。すなわち、本実施の形態では、メモリクリア動作において、該学習ＲＡＭ５０２へのデータの書き込みを一切行わない。もちろん、一番最初の初期化時にゼロクリアするのはかまわないが、それすら不要である。
【００５４】
以下に、その動作原理について説明する。
本実施の形態のクリア動作の基本は、フラグ１００１の値がバンドの替わり目で反転する直前に、該フラグ１００１の値をバンドシーケンス格納メモリ１１０１のすべてのアドレスに格納することである。そうすることで、該フラグ１００１の値が変わった場合は、バンドシーケンス格納メモリ１１０１の全アドレスにおける内容はフラグ１１０１の値と異なることになるため、見かけ上学習ＲＡＭ５０２はすペてクリアされていることになる。
【００５５】
該処理はフラグ１００１が反転するたび、すなわち、バンドが切り替わるたびに必要であるが、これまでに比べ該処理は８分の１の処理時間で済み、バンドシーケンス格納メモリ１１０１のビット数を増やしてアドレスを減らせば、さらに短くすることが可能である。本実施の形態がすべての場合に適用できるわけではないが、上記格納処理をバンド毎に行うことが出来るような場合には、大変有効であるといえる。
【００５６】
なお、本発明は、ＪＢＩＧ符号化復号処理に限定されるものではなく、一般的に学習機能を有し、かつ該学習内容を定期的にリフレッシュあるいは、クリアする手段として有効な方法である。
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００５７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００５８】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００５９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６１】
【発明の効果】
本発明により、バンド単位で符号化や復号を行うように学習メモリの頻繁なクリアが必要な場合も、処理の高速化が可能な符号化及び復号装置とその符号化及び復号方法を提供できる。
すなわち、ＪＢＩＧ符号化復号処理に先立って行う学習メモリのクリア処理に、ある所定の時間が必要であり、バンド単位で符号化復号を行う場合には、各バンド毎に該学習ＲＡＭのクリアを行うための処理時間が必要であり、バンドデータを連続して符号化復号処理することが従来は困難であった。そこで、本発明では、まず第１に、学習ＲＡＭを２組持ち、一方を使用中にもう一方をクリアすることで、従来の問題点を解決した。第２に、学習ＲＡＭの各アドレス毎にバンドシーケンス番号を格納するバンドシーケンス格納メモリと、バンドが変わるごとにカウントアップ動作するカウンタと、上記シーケンスとカウンタ値が一致しているかどうかを検出する一致検出手段と、該一致検出手段の出力に基づき、読み出した学習ＲＡＭの内容をマスクする手段とを設けることにより、前述の学習ＲＡＭのクリア動作を見かけ上、一瞬で行えるようにすることで、従来の問題点を解決した。
【００６２】
以上により、従来、バンド毎に学習ＲＡＭのクリアを行うための処理時間がない場合にも、きちんと該学習ＲＡＭのクリアを行うことができるようになった。
【図面の簡単な説明】
【図１】符号化及び復号処理を導入してページメモリの削減を図った画像処理装置の構成例を示す図である。
【図２】図１の復号部とエンジン部の間に復号部から出力するビットマップデータを時間的に平滑化するためのＦＩＦＯを設けた場合の構成例を示す図である。
【図３】図１で復号部からバンドバッファ部ヘビットマップデータを出力するパスを設けた画像処理装置の構成例を示す図である。
【図４】図３の画像処理装置における描画展開と圧縮伸張処理のタイミングを示す図である。
【図５】従来のＪＢＩＧ符号化及び復号装置の構成例を示すブロック図である。
【図６】本発明の第１の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図７】本発明の第２の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図８】本発明の第３の実施の形態の動作を示すタイミングチャート図である。
【図９】本発明の第４の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図１０】本発明の第４の実施の形態の動作を示すタイミングチャート図である。
【図１１】本発明の第５の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図１２】本発明の第６の実施の形態の符号化及び復号装置の構成例を示すブロック図である。
【図１３】従来例の動作手順の概略を示すフローチャートである。
【図１４】テンプレートの構成例を示す図である。
【図１５】ＪＢＩＧの符号化アルゴリズムの処理”ＥＮＣＯＤＥ”の一般的なフローチャートである。
【図１】
0003679586.tif 000002
【図２】
0003679586.tif 000003
【図３】
0003679586.tif 000004
【図４】
0003679586.tif 000005
【図５】
0003679586.tif 000006
【図６】
0003679586.tif 000007
【図７】
0003679586.tif 000008
【図８】
0003679586.tif 000009
【図９】
0003679586.tif 000010
【図１０】
0003679586.tif 000011
【図１１】
0003679586.tif 000012
【図１２】
0003679586.tif 000013
【図１３】
0003679586.tif 000014
【図１４】
0003679586.tif 000015
【図１５】
0003679586.tif 000016