(57)【要約】【課題】印刷可能な用紙のサイズより大きなサイズを有し、符号化された画像データを復号化する場合に、メモリ容量の増加を抑制するデータ処理装置を提供する。【解決手段】画像のサイズと符号化データとを取得し、画像のサイズが印刷装置において印刷可能な用紙より大きいと判定された場合、復号化の対象画素が用紙のサイズ以内に存在するか、参照画素が用紙のサイズ以内に存在するかを判定する。復号化の対象画素が用紙のサイズ以内に存在しないと判定された符号化データを復号化し、その画像データをＭラインからＮラインに相当する領域が確保された第１のメモリに格納する。参照画素が用紙のサイズ以内に存在しないと判定された場合、第１のメモリに格納された画像データを参照画素として読み出す。第１のメモリに格納する際、復号化された対象画素の画像データを、既に格納され且つ参照画素として用いられない画素の画像データに上書きする。【選択図】図１
2011239038.tif 000002
【特許請求の範囲】
【請求項１】
画像を構成する複数のラインに対応する２値の画像データを前記画像のＭラインからＮライン（Ｍ、Ｎは１以上の整数、Ｍ＞Ｎ）までに含まれる画素を参照画素として参照して符号化した符号化データを復号化する印刷装置であって、
前記ＭラインからＮラインまでに含まれる参照画素を参照して前記符号化データを復号化する復号化手段と、
前記画像のサイズと前記画像の符号化データとを取得する取得手段と、
前記取得手段により取得された前記画像のサイズが、前記印刷装置において印刷可能な用紙より大きいか否かを判定する第１の判定手段と、
前記第１の判定手段により、前記画像のサイズが前記印刷装置において印刷可能な用紙より大きいと判定された場合に、前記復号化の対象画素が前記用紙のサイズ以内に存在するか否かを判定する第２の判定手段と、
前記第１の判定手段により、前記画像のサイズが前記印刷装置において印刷可能な用紙より大きいと判定された場合に、前記参照画素が前記用紙のサイズ以内に存在するか否かを判定する第３の判定手段と、
前記第２の判定手段により、前記復号化の対象画素が前記用紙のサイズ以内に存在しないと判定された符号化データを復号化して、該復号化された画像データを前記ＭラインからＮラインの画像データに相当する領域が確保された第１のメモリに格納する格納手段とを備え、
前記復号化手段は、前記第３の判定手段により、前記参照画素が前記用紙のサイズ以内に存在しないと判定された場合に、前記第１のメモリに格納された画像データを前記参照画素として読み出し、
前記格納手段は、復号化された対象画素の画像データを、既に格納され且つ参照画素として用いられない画素の画像データに上書きする、
ことを特徴とする印刷装置。
【請求項２】
前記格納手段は、前記第２の判定手段により、前記復号化の対象画素が前記用紙のサイズ以内に存在すると判定された符号化データを復号化して、第２のメモリに格納し、
前記復号化手段は、前記第３の判定手段により、前記参照画素が前記用紙のサイズ以内に存在すると判定された場合に、前記第２のメモリに格納された画像データを前記参照画素として読み出す、
ことを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記画像データは、複数色を用いて印刷されるための画像データであり、
前記第１のメモリは、各色の領域に分割されており、
前記各色の領域において、
前記復号化手段は、前記第３の判定手段により、前記参照画素が前記用紙のサイズ以内に存在しないと判定された場合に、前記第１のメモリに格納された画像データを前記参照画素として読み出し、前記格納手段は、復号化された対象画素の画像データを、既に格納され且つ参照画素として用いられない画素の画像データに上書きする、
ことを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
画像を構成する複数のラインに対応する２値の画像データを前記画像のＭラインからＮライン（Ｍ、Ｎは１以上の整数、Ｍ＞Ｎ）までに含まれる画素を参照画素として参照して符号化した符号化データを復号化する印刷装置において実行されるデータ復号化方法であって、
前記印刷装置の復号化手段が、前記ＭラインからＮラインまでに含まれる参照画素を参照して前記符号化データを復号化する復号化工程と、
前記印刷装置の取得手段が、前記画像のサイズと前記画像の符号化データとを取得する取得工程と、
前記印刷装置の第１の判定手段が、前記取得工程において取得された前記画像のサイズが、前記印刷装置において印刷可能な用紙より大きいか否かを判定する第１の判定工程と、
前記印刷装置の第２の判定手段が、前記第１の判定工程において、前記画像のサイズが前記印刷装置において印刷可能な用紙より大きいと判定された場合に、前記復号化の対象画素が前記用紙のサイズ以内に存在するか否かを判定する第２の判定工程と、
前記印刷装置の第３の判定手段が、前記第１の判定工程において、前記画像のサイズが前記印刷装置において印刷可能な用紙より大きいと判定された場合に、前記参照画素が前記用紙のサイズ以内に存在するか否かを判定する第３の判定工程と、
前記印刷装置の格納手段が、前記第２の判定工程において、前記復号化の対象画素が前記用紙のサイズ以内に存在しないと判定された符号化データを復号化して、該復号化された画像データを前記ＭラインからＮラインの画像データに相当する領域が確保された第１のメモリに格納する格納工程とを備え、
前記復号化工程は、前記第３の判定工程において、前記参照画素が前記用紙のサイズ以内に存在しないと判定された場合に、前記第１のメモリに格納された画像データを前記参照画素として読み出し、
前記格納工程は、復号化された対象画素の画像データを、既に格納され且つ参照画素として用いられない画素の画像データに上書きする、
ことを特徴とするデータ復号化方法。
【請求項５】
コンピュータを、
画像を構成する複数のラインに対応する２値の画像データを前記画像のＭラインからＮライン（Ｍ、Ｎは１以上の整数、Ｍ＞Ｎ）までに含まれる画素を参照画素として参照して符号化した符号化データを復号化する際に、前記ＭラインからＮラインまでに含まれる参照画素を参照して前記符号化データを復号化する復号化手段、
前記画像のサイズと前記画像の符号化データとを取得する取得手段、
前記取得手段により取得された前記画像のサイズが、印刷可能な用紙より大きいか否かを判定する第１の判定手段、
前記第１の判定手段により、前記画像のサイズが印刷可能な用紙より大きいと判定された場合に、前記復号化の対象画素が前記用紙のサイズ以内に存在するか否かを判定する第２の判定手段、
前記第１の判定手段により、前記画像のサイズが印刷可能な用紙より大きいと判定された場合に、前記参照画素が前記用紙のサイズ以内に存在するか否かを判定する第３の判定手段、
前記第２の判定手段により、前記復号化の対象画素が前記用紙のサイズ以内に存在しないと判定された符号化データを復号化して、該復号化された画像データを前記ＭラインからＮラインの画像データに相当する領域が確保された第１のメモリに格納する格納手段として機能させるためのプログラムであって、
前記復号化手段は、前記第３の判定手段により、前記参照画素が前記用紙のサイズ以内に存在しないと判定された場合に、前記第１のメモリに格納された画像データを前記参照画素として読み出し、
前記格納手段は、復号化された対象画素の画像データを、既に格納され且つ参照画素として用いられない画素の画像データに上書きする、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化データを復号化する印刷装置、印刷装置におけるデータ復号化方法およびプログラムに関する。
【背景技術】
【０００２】
２値の静止画像データの複数ラインを符号化／復号化する方式として、ＪＢＩＧが、ＩＴＵ−Ｔ  Ｔ．８２、Ｔ．８５勧告により規格化されている。ＪＢＩＧは、エントロピー符号化方式として適応算術符号演算を用いた方式であり、文字／線画画像に限らず、擬似中間調画像に対しても高能率の符号化が可能である（特許文献１）。特に、Ａ０等の大きな用紙サイズに印刷可能な印刷装置（以下、大判プリンタという）においては、通信路を流れる画像データのサイズが印刷システム全体のスループットに影響する。そのために、２値の静止画像データの符号化方式として高能率なＪＢＩＧを用いることが注目されている。
【０００３】
ＪＢＩＧの符号化においては、対象とする対象画素と相関の深い複数の画素を参照画素（以下、テンプレートという）として、その参照画素の値の組をコンテキストとする。そして、そのコンテキストを用いて対象画素の値を予測し、出現確率を算出して予測の正誤を符号化する。また、符号化された対象画素は、コンテキストを参照して復号化される。符号化／復号化において、対象画素毎に上記の処理が行われる際、同時に学習テーブルが更新される。
【０００４】
図１０は、一般的なＪＢＩＧの復号化処理を行うハードウエアであるＪＢＩＧデコーダ１０００のブロック図を示す図である。ＪＢＩＧ  ＤＥＣ１００１は、ＪＢＩＧの符号化データを復号化するブロックである。ＳＲＡＭ１００２は、ラインバッファメモリと学習テーブルを格納する。ＪＢＩＧ  ＣＯＮ１００３は、不図示のＣＰＵとバス１００６を介して接続され、そのＣＰＵからの指示を受けて、ＪＢＩＧデコーダ１０００全体を制御するブロックである。ＪＢＩＧ  ＤＭＡ１００４は、ＪＢＩＧ  ＤＥＣ１００１に符号化データを入力するＤＭＡコントローラである。ＪＢＩＧ  ＤＭＡ１００５は、ＪＢＩＧ  ＤＥＣ１００１から入力した復号化データ（画素）を出力するＤＭＡコントローラである。ここで、ラインバッファメモリは、テンプレートを効率的に参照するために設けられている。例えば、２ラインのテンプレートを参照する場合には、少なくとも１ライン前と現在処理中のラインとにおける画素を記憶する。
【０００５】
特許文献２には、元の符号化データのうち、テンプレートを参照するために必要なラインの画素だけをラインバッファメモリに復号化して格納する符号変換装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−０７７６３７号公報
【特許文献２】特許第０３０８１１０５号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的に、大判プリンタの扱う用紙サイズは大きく、そのような用紙幅の画素を記憶可能な大容量のＳＲＡＭをＪＢＩＧデコーダの内部に搭載することは、コストの点からも現実的ではない。そのために、例えば、テンプレートを参照するためにＪＢＩＧデコーダ１００の内部に保持する画素は復号化の対象画素の近辺の画素に留め、必要に応じて、復号化した画素を格納するバッファから復号化した画素を読み戻す構成が考えられる。ここで、復号化した画素を格納するバッファとは、例えば、ＪＢＩＧデコーダ１００とバス１０６を介して接続されたＤＲＡＭである。
【０００８】
また、符号化データを復号した結果が、大判プリンタの印刷可能な用紙の幅に必ずしも収まるわけではない。印刷処理を開始すると、大判プリンタは印刷可能な用紙の幅に対応した、復号化した画素を格納するバッファのサイズを決定する。もし、符号化データを復号化した結果がそのバッファのサイズを超えてしまう場合には、ＪＢＩＧデコーダ１００は符号化データを正しく復号化することができない。
【０００９】
このように、大判プリンタを提供するメーカ以外のベンダが提供するプリンタドライバにより生成された印刷データが大判プリンタの想定する用紙サイズに収まらない場合は比較的多い。その理由としては、ベンダが他のメーカのプリンタと印刷データの生成部分を共通化しなければならないということが挙げられる。しかしながら、大判プリンタは、そのようなプリンタドライバにより生成された印刷データにも対応できることが望ましい。例えば、最大Ａ２サイズ対応の大判プリンタが、より大きなＡ０等の用紙サイズに印刷可能な他の大判プリンタ用に生成された印刷データのうち印刷可能な範囲のみを印刷する場合がある。
【００１０】
しかしながら、上述のように、符号化データを復号化した結果がバッファのサイズを越えていまうので、正しく復号化することができない。従って、上記のような符号化データを正しく復号化するために、復号化した画素を格納するバッファを、大判プリンタで印刷可能な用紙幅に付加した、より大きなライン幅で用意する必要がある。しかしながら、容量の大きなメモリを搭載することは、コスト増大の一因となってしまう。
【００１１】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、印刷可能な用紙のサイズより大きなサイズを有し、符号化された画像データを復号化する場合に、メモリ容量の増加を抑制する印刷装置、印刷装置におけるデータ復号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明に係る印刷装置は、画像を構成する複数のラインに対応する２値の画像データを前記画像のＭラインからＮライン（Ｍ、Ｎは１以上の整数、Ｍ＞Ｎ）までに含まれる画素を参照画素として参照して符号化した符号化データを復号化する印刷装置であって、
前記ＭラインからＮラインまでに含まれる参照画素を参照して前記符号化データを復号化する復号化手段と、
前記画像のサイズと前記画像の符号化データとを取得する取得手段と、
前記取得手段により取得された前記画像のサイズが、前記印刷装置において印刷可能な用紙より大きいか否かを判定する第１の判定手段と、
前記第１の判定手段により、前記画像のサイズが前記印刷装置において印刷可能な用紙より大きいと判定された場合に、前記復号化の対象画素が前記用紙のサイズ以内に存在するか否かを判定する第２の判定手段と、
前記第１の判定手段により、前記画像のサイズが前記印刷装置において印刷可能な用紙より大きいと判定された場合に、前記参照画素が前記用紙のサイズ以内に存在するか否かを判定する第３の判定手段と、
前記第２の判定手段により、前記復号化の対象画素が前記用紙のサイズ以内に存在しないと判定された符号化データを復号化して、該復号化された画像データを前記ＭラインからＮラインの画像データに相当する領域が確保された第１のメモリに格納する格納手段とを備え、
前記復号化手段は、前記第３の判定手段により、前記参照画素が前記用紙のサイズ以内に存在しないと判定された場合に、前記第１のメモリに格納された画像データを前記参照画素として読み出し、
前記格納手段は、復号化された対象画素の画像データを、既に格納され且つ参照画素として用いられない画素の画像データに上書きする、ことを特徴とする。
【発明の効果】
【００１３】
本発明によると、印刷可能な用紙のサイズより大きなサイズを有し、符号化された画像データを復号化する場合に、メモリ容量の増加を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施例におけるＪＢＩＧ復号器（デコーダ）の構成を示す図である。
【図２】２ラインのテンプレートの一例を示す図である。
【図３】ＳＲＡＭの領域の構造を示す図である。
【図４】本実施例のＪＢＩＧデコーダを用いた印刷システムの一例を示す図である。
【図５】元画像を説明するための図である。
【図６】出力バッファと元画像の幅を説明するための図である。
【図７】復号化データの１ライン分の転送処理の手順を示すフローチャートである。
【図８】参照画素の１ライン分の転送処理の手順を示すフローチャートである。
【図９】第２の実施例におけるＳＲＡＭの領域の構造を示す図である。
【図１０】従来のＪＢＩＧ復号器（デコーダ）の構成を示す図である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１６】
［第１の実施例］
［ＪＢＩＧ復号器の構成］
図１は、本発明に係る実施例におけるＪＢＩＧ復号器（デコーダ）の構成を示す図である。ＪＢＩＧデコーダ１００は、ＪＢＩＧ復号化処理を行うハードウエアである。ＪＢＩＧデコーダ１００は、一般的に、画像を構成する複数のラインに対応する２値の画像データを画像のＭラインからＮライン（Ｍ、Ｎは１以上の整数、Ｍ＞Ｎ）までに含まれる画素を参照画素として参照し、符号化データを復号化する。特に、本実施例においては、ＪＢＩＧデコーダ１００は、図２に示すような２値の画像データに含まれる２ラインについてテンプレートを参照して復号化する。ＪＢＩＧ  ＤＥＣ１０１は、ＪＢＩＧ符号化データを復号化する。ＳＲＡＭ１０２は、学習テーブルを格納する。ＪＢＩＧ  ＣＯＮ１０３は、不図示のＣＰＵとバス１０８を介して接続され、ＪＢＩＧデコーダ１００を制御する。不図示のＣＰＵは、ＪＢＩＧ  ＣＯＮ１０３のレジスタによって、制御パラメータを設定することができる。制御パラメータは、例えば、符号化データの格納元アドレス、符号化データのサイズである。また、制御パラメータは、他にも、符号化データの元画像の幅、符号化データの元画像の高さ、復号化データの格納先アドレス（出力バッファのアドレス）、出力バッファのライン幅、出力バッファの高さを表すパラメータを含む。
【００１７】
ＪＢＩＧ  ＤＭＡ１０４は、ＪＢＩＧ  ＤＥＣ１０１に符号化データを入力するＤＭＡコントローラである。ＪＢＩＧ  ＤＭＡ１０５は、ＪＢＩＧ  ＤＥＣ１０１から入力された復号化データ（画素）を出力するＤＭＡコントローラである。また、ＪＢＩＧ  ＤＭＡ１０５は、出力した画素数を計数する機能を有している。その計数値は、ライン毎にリセットされる。ＪＢＩＧ  ＤＭＡ１０６は、ＪＢＩＧ  ＤＥＣ１０１に、テンプレート参照のために対象画素の１ライン前の画素を参照画素として入力するＤＭＡコントローラである。また、ＪＢＩＧ  ＤＭＡ１０６は、入力した画素数を計数する機能を有している。その計数値は、ライン毎にリセットされる。
【００１８】
ＳＲＡＭ１０７は、本実施例において、ＪＢＩＧ  ＤＭＡ１０５から出力された復号化データを格納する。ＳＲＡＭ１０７は、領域３０１および領域３０２のように２つの領域を有している。ＪＢＩＧ  ＣＯＮ１０３は、その領域３０１と領域３０２のアドレス管理を行なう。ＤＲＡＭ１０９は、本実施例において、ＪＢＩＧデコーダ１００が出力する復号化データ（画素）を格納する出力バッファや、ＪＢＩＧデコーダ１００に入力される符号化データを格納する入力バッファとして機能する。
【００１９】
［ＪＢＩＧデコーダの印刷システムへの適用］
ＪＢＩＧデコーダ１００は、図４に示すような印刷システムの大判プリンタにおいて用いられる。ホストコンピュータ４００は、例えば、一般的なパーソナルコンピュータである。ホストコンピュータ４００は、プリンタドライバにより用紙サイズ、解像度、余白等の印刷のための設定情報とＪＢＩＧ符号化データとを含んだ印刷データを生成する。そして、ホストコンピュータ４００は、インクジェットプリンタである大判プリンタ４０１にＬＡＮケーブル４０２を介して印刷データを送信する。ここで、大判プリンタ４０１は、ＪＢＩＧデコーダ１００を搭載したプリンタである。ホストコンピュータ４００から受信した印刷データを処理してインクジェット方式により印刷データの印刷処理を行う。ホストコンピュータ４００にインストールされたプリンタドライバは、元画像を色面毎にＪＢＩＧ符号化する。また、プリンタドライバは、印刷対象ページを数ラインから成るバンドごとに処理する。本実施例においては、実画像が存在する矩形範囲をバンドの一単位としてＪＢＩＧ符号化する。
【００２０】
例えば、図５（ａ）に示す画像を印刷する場合には、ホストコンピュータ４００のプリンタドライバは、図５（ｂ）に示すように、用紙サイズから余白を除いた領域をバンド単位で区切り、それぞれのバンドを一単位としてＪＢＩＧ符号化する。図５（ｂ）に示す各バンド分の画像が本実施例における元画像である。
【００２１】
大判プリンタ４０１の不図示のＣＰＵは、ホストコンピュータ４００から受信した印刷のための設定情報を解釈して、復号化処理するページについて、出力バッファのサイズ（幅）を決定し、ＤＲＡＭ１０９に領域を確保する。そして、ＪＢＩＧ  ＣＯＮ１０３のレジスタに各設定値を設定して、大判プリンタ４０１のＣＰＵは、復号化処理をＪＢＩＧデコーダ１００に指示する。
【００２２】
ここで、大判プリンタ４０１のＣＰＵは、ＤＲＡＭ１０９に領域を確保する処理として、図５（ｂ）に示す用紙幅のうち、大判プリンタ４０１で印刷可能な横幅と高さ（バンドのライン数）を有する出力バッファをＤＲＡＭ１０９内に確保する。出力バッファのサイズは１バンドについてであり、そのような出力バッファを複数、ＤＲＡＭ１０９内に確保する。図５（ｃ）は、そのような出力バッファに格納される１バンド分の復号化データの表す画像を示す図である。
【００２３】
ＪＢＩＧ  ＣＯＮ１０３内のレジスタには、「符号化データの格納元アドレス」として、符号化データが格納されたＤＲＡＭ１０９の入力バッファ上の先頭アドレスが設定されている。また、ＪＢＩＧ  ＣＯＮ１０３内のレジスタには、「符号化データのサイズ」として、符号化データのデータサイズが設定されている。また、ＪＢＩＧ  ＣＯＮ１０３内のレジスタには、「符号化データの元画像の幅」と「符号化データの元画像の高さ」として、ホストコンピュータ４００から受信した符号化データのヘッダ部より取得した元画像の幅と高さ（元画像のサイズ）が設定されている。また、ＪＢＩＧ  ＣＯＮ１０３内のレジスタには、「復号化データの格納先アドレス」として、復号化処理後の画素を格納するＤＲＡＭ１０９内の出力バッファ上の先頭アドレスが設定されている。また、ＪＢＩＧ  ＣＯＮ１０３内のレジスタには、「出力バッファのライン幅」と「出力バッファの高さ」として、出力バッファの幅と高さとが設定されている。
【００２４】
ＪＢＩＧデコーダ１００は、ＪＢＩＧ  ＣＯＮ１０３内のレジスタに設定された値に従い、ホストコンピュータ４００から受信した符号化データを復号化する。ＪＢＩＧ  ＤＥＣ１０１により復号化された画素は、ＤＲＡＭ１０９の出力バッファに出力され、ＪＢＩＧデコーダ１００は、復号化処理の完了を大判プリンタ４０１の不図示のＣＰＵに通知する。大判プリンタ４０１のＣＰＵは、復号化された画像データを、さらに大判プリンタ４０１の特性にあったデータに加工し、不図示のキャリッジ、印刷ヘッド、用紙搬送などの印刷機構を制御して、用紙に印刷する。
【００２５】
本実施例における元画像について、１バンド＝６４ライン、用紙サイズ＝ＡＲＣＨ  Ｄ（２４ｘ３６インチ）、解像度＝２４００ｘ１２００ｄｐｉ、余白（上下左右で各３ｍｍ）であるとする。また、１バンドに対するＤＲＡＭ１０９の出力バッファのサイズは、図６（ａ）に示すように、ライン幅＝５７０３４ドット（データ量に換算すると、４バイトの倍数として７１３２バイト）、高さ＝６４ラインとなる。
【００２６】
なお、色面毎に符号化された符号化データを復号化するために大判プリンタ４０１は、色数分のＪＢＩＧデコーダ１００を搭載し、色毎に別のＪＢＩＧデコーダ１００を使用する。但し、本構成に限られるものではなく、例えば、ＪＢＩＧデコーダ１００の内部ブロックのうちＪＢＩＧ  ＣＯＮ１０３以外のブロックを色数分多重化した１つのＪＢＩＧデコーダ１００を構成してもよい。
【００２７】
以下、ある１つの色面における図５（ｂ）に示すバンド５００の符号化データについて説明する。本実施例においては、ホストコンピュータ４００のプリンタドライバは、画像データを符号化する際に、図５（ｃ）に示した幅（出力バッファの幅）よりも少し大きな範囲を元画像として符号化する。即ち、図６（ｂ）に示すように、元画像の幅は５７０６６ドットであり、元画像の高さは６４ラインである。つまり、図６（ｂ）に示す太線で囲まれた部分がＤＲＡＭ１０９に確保した出力バッファの幅に収まらない部分となる。
【００２８】
［ＪＢＩＧデコーダ１００の処理］
大判プリンタ４０１のＣＰＵからＪＢＩＧデコーダ１００に復号化処理の開始が指示されると、ＪＢＩＧ  ＣＯＮ１０３は、ＪＢＩＧデコーダ１００の各ブロックの制御を開始する。
【００２９】
ＪＢＩＧ  ＤＭＡ１０４は、ＪＢＩＧ  ＤＥＣ１０１からの符号化データの入力要求に従って、ＤＲＡＭ１０９から符号化データをＪＢＩＧ  ＤＥＣ１０１に転送する。符号化データは、ＪＢＩＧ  ＣＯＮ１０３内部のレジスタに設定された「符号化データの先頭アドレス」に従って、ＤＲＡＭ１０９内の入力バッファ上のアドレスから読み込む。ＤＭＡ１０４は、転送したデータ量を計数する機能を有しており、レジスタに設定された「符号化データのデータサイズ」の分、転送したら転送処理を完了する。ＪＢＩＧ  ＤＭＡ１０５は、ＪＢＩＧ  ＤＥＣ１０１の復号化データ（画素）の出力要求に従って、ＪＢＩＧ  ＤＥＣ１０１からＤＲＡＭ１０９の出力バッファ又はＳＲＡＭ１０７に復号化データを転送する。
【００３０】
図７は、ＪＢＩＧ  ＤＭＡ１０５の１ライン分の転送処理の手順を示すフローチャートである。ＪＢＩＧ  ＣＯＮ１０３から指示を受けて転送処理を開始する。Ｓ７０１において、使用するＳＲＡＭ領域を確定する。本実施例において、ＪＢＩＧ  ＣＯＮ１０３は、ＪＢＩＧ  ＤＭＡ１０５とＪＢＩＧ  ＤＭＡ１０６が図３に示す領域３０１と領域３０２のいずれを使用するかを制御している。ＪＢＩＧ  ＤＭＡ１０５は、ＪＢＩＧ  ＣＯＮ１０３の制御に従って、使用するＳＲＡＭ領域を確定する。
【００３１】
ＪＢＩＧ  ＤＭＡ１０５が領域３０１を使用する（復号化した画素を領域３０１に書き込む）場合には、ＪＢＩＧ１０６が領域３０２を使用する（参照画素を領域３０２から読み込む）。その場合に、ＪＢＩＧ  ＤＭＡ１０５は、領域３０１に既に記録されていた画素に対して新たに上書きする。しかしながら、上書きする対象の画素は、既に参照する必要がなくなった画素であるので問題ない。
【００３２】
一方、ＪＢＩＧ  ＤＭＡ１０５が領域３０２を使用する（復号化した画素を領域３０２に書き込む）場合には、ＪＢＩＧ１０６が領域３０１を使用する（参照画素を領域３０２から読み込む）。その場合に、ＪＢＩＧ  ＤＭＡ１０５は、領域３０２に既に記録されていた画素に対して新たに上書きする。しかしながら、上書きする対象の画素は、既に参照する必要がなくなった画素であるので問題ない。ＪＢＩＧ  ＣＯＮ１０３は、以上のような処理をライン毎に交互に繰り返して、ＪＢＩＧ  ＤＭＡ１０５とＪＢＩＧ  ＤＭＡ１０６を制御する。
【００３３】
Ｓ７０２において、ＪＢＩＧ  ＤＭＡ１０５は、出力画素計数のカウント値をクリアする。Ｓ７０３において、ＪＢＩＧ  ＤＭＡ１０５は、出力画素計数機能により出力画素の座標を算出し、その算出された出力画素の座標とＪＢＩＧ  ＣＯＮ１０３のレジスタに設定された「符号化データの元画像の幅」とを比較して判定する（第１の判定の一例）。ここで、出力画素の座標が「符号化データの元画像の幅」以下であると判定された場合には、Ｓ７０４に進む。一方、出力画素の座標が「符号化データの元画像の幅」よりも大きいと判定された場合には、Ｓ７０８に進む。Ｓ７０８において、ＪＢＩＧ  ＤＭＡ１０５は、ＪＢＩＧ  ＣＯＮ１０３に、１ライン分の復号化した画素の転送処理が完了した旨を通知し、本処理を終了する。
【００３４】
Ｓ７０４において、ＪＢＩＧ  ＤＭＡ１０５は、出力画素の座標とＪＢＩＧ  ＣＯＮ１０３のレジスタに設定された「出力バッファのライン幅」とを比較して判定する（第２の判定の一例）。ここで、出力画素の座標が「出力バッファのライン幅」以下であると判定された場合、即ち、出力画素の座標が大判プリンタ４０１の印刷可能な用紙のサイズ以内に存在する場合には、Ｓ７０５に進む。一方、出力画素の座標が「出力バッファのライン幅」よりも大きいと判定された場合には、Ｓ７０６に進む。
【００３５】
Ｓ７０５において、ＪＢＩＧ  ＤＭＡ１０５は、ＪＢＩＧ  ＤＥＣ１０１から出力された復号化データ（画素）をＤＲＡＭ１０９内の出力バッファに書き込んで、Ｓ７０７に進む。また、Ｓ７０６において、ＪＢＩＧ  ＤＭＡ１０５は、ＪＢＩＧ  ＤＥＣ１０１から出力された復号化データ（画素）をＳＲＡＭ１０７（第１のメモリの一例）に書き込んで、Ｓ７０７に進む。ここで、書き込む領域は、Ｓ７０１において確定した領域である。Ｓ７０７において、ＪＢＩＧ  ＤＭＡ１０５は、出力画素計数の値をカウントアップする。
【００３６】
以上のように、本実施例においては、ＪＢＩＧ  ＤＭＡ１０５は、元画像の符号化データのうち、ＤＲＡＭ１０９の出力バッファの幅に収まる分の符号化データについては、復号化した結果をＤＲＡＭ１０９（第２のメモリの一例）に格納する。また、ＤＲＡＭ１０９の出力バッファの幅に収まらない分の符号化データについては、復号化した結果をＳＲＡＭ１０７に格納する。
【００３７】
次に、ＪＢＩＧ  ＤＭＡ１０６の参照画素の転送処理について説明する。
【００３８】
図８は、ＪＢＩＧ  ＤＭＡ１０６の１ライン分の転送処理の手順を示すフローチャートである。ＪＢＩＧ  ＤＭＡ１０６は、ＪＢＩＧ  ＤＥＣ１０１の参照画素（テンプレート）の入力要求に従って、ＤＲＡＭ１０９の出力バッファ又はＳＲＡＭ１０７からＪＢＩＧ  ＤＥＣ１０１に、１ライン前の復号化データを転送する。
【００３９】
図８に示す処理は、ＪＢＩＧ  ＣＯＮ１０３から指示を受けて転送処理を開始する。Ｓ８０１において、復号化データを読み出すＳＲＡＭ領域を確定する。上述したように、ＪＢＩＧ  ＣＯＮ１０３は、ＪＢＩＧ  ＤＭＡ１０５とＪＢＩＧ  ＤＭＡ１０６が図３に示す領域３０１と領域３０２のいずれを使用するかを制御している。ＪＢＩＧ  ＤＭＡ１０６は、ＪＢＩＧ  ＣＯＮ１０３による制御に従って、復号化データを読み出すＳＲＡＭ領域を確定する。
【００４０】
Ｓ９０２において、ＪＢＩＧ  ＤＭＡ１０６は、参照画素計数のカウント値をクリアする。Ｓ９０３において、ＪＢＩＧ  ＤＭＡ１０６は、参照画素計数機能により参照画素の座標を算出し、その算出された参照画素の座標と、ＪＢＩＧ  ＣＯＮ１０３内のレジスタに設定された「符号化データの元画像の幅」と比較して判定する。ここで、参照画素の座標が「符号化データの元画像の幅」以下であると判定された場合には、Ｓ８０４に進む。一方、参照画素の座標が「符号化データの元画像の幅」よりも大きいと判定された場合には、Ｓ８０８に進む。Ｓ８０８において、ＪＢＩＧ  ＤＭＡ１０６は、ＪＢＩＧ  ＣＯＮ１０３に、１ライン分の転送処理が完了した旨を通知して、本処理を終了する。
【００４１】
Ｓ８０４において、ＪＢＩＧ  ＤＭＡ１０６は、参照画素の座標と、ＪＢＩＧ  ＣＯＮ１０３内のレジスタに設定された「出力バッファのライン幅」とを比較して判定する（第３の判定の一例）。ここで、参照画素の座標が「出力バッファのライン幅」以下であると判定された場合、即ち、参照画素の座標が大判プリンタ４０１で印刷可能な用紙のサイズ以内に存在する場合には、Ｓ８０５に進む。一方、参照画素の座標が「出力バッファのライン幅」よりも大きいと判定された場合には、Ｓ８０６に進む。
【００４２】
Ｓ８０５において、ＪＢＩＧ  ＤＭＡ１０６は、ＤＲＡＭ１０９の出力バッファから参照画素を読み込んで、ＪＢＩＧ  ＤＥＣ１０１に転送して、Ｓ８０７に進む。一方、Ｓ８０６において、ＪＢＩＧ  ＤＭＡ１０６は、ＳＲＡＭ１０７から参照画素を読み込んで、ＪＢＩＧ  ＤＥＣ１０１に転送して、Ｓ８０７に進む。ここで、参照画素を読み込む領域は、Ｓ８０１において確定した領域である。Ｓ８０７において、ＪＢＩＧ  ＤＭＡ１０６は、参照画素計数の値をカウントアップする。
【００４３】
以上のように、本実施例においては、ＪＢＩＧ  ＤＭＡ１０６は、元画像の復号化データのうち、ＤＲＡＭ１０９の出力バッファの幅に収まる分の復号化データについては、ＤＲＡＭ１０９から参照画素として読み込む。また、ＤＲＡＭ１０９の出力バッファの幅に収まらない分の復号化データについては、ＳＲＡＭ１０７から参照画素として読み込む。
【００４４】
ＪＢＩＧ  ＤＥＣ１０１は、ＪＢＩＧ  ＤＭＡ１０４から受信した符号化データと、ＪＢＩＧ  ＤＭＡ１０６から受信した１ライン前の復号化データ及び対象画素と同ラインの復号化データからなるテンプレートとを用いて、ＪＢＩＧ復号化処理を行う。また、ＪＢＩＧ  ＤＥＣ１０１は、同時に、ＳＲＡＭ１０２に格納された学習テーブルを更新する。そして、ＪＢＩＧ  ＤＥＣ１０１は、後続する画素を復号化していき、復号化データ（画素）をＪＢＩＧ  ＤＭＡ１０５との通信の単位に応じて、ＪＢＩＧ  ＤＭＡ１０５に出力する。ここで、ＪＢＩＧ  ＤＥＣ１０１は、入力された１ライン前の復号化データ及び先の処理で復号化した復号化データを、後続する対象画素の復号化のために暫く内部に保持する。
【００４５】
図６（ｂ）に示したような符号化データの場合、左端から５７０３４ドットまでの座標位置の画素を対象画素として処理する場合には、ＪＢＩＧ  ＤＭＡ１０５は、ＤＲＡＭ１０９の出力バッファに復号化データ（画素）を書き込む。そして、ＪＢＩＧ  ＤＭＡ１０６は、テンプレート参照のために、ＤＲＡＭ１０９の出力バッファから参照画素を読み出す。一方、５７０３５ドットから５７０６６ドットまでの座標位置の画素を対象画素として処理する場合には、ＪＢＩＧ  ＤＭＡ１０５は、ＳＲＡＭ１０７（図３に示す領域３０１と領域３０２のいずれかの領域）に復号化データ（画素）を書き込む。そして、ＪＢＩＧ  ＤＭＡ１０６は、テンプレート参照のために、ＳＲＡＭ１０７（図３に示す領域３０１と領域３０２のいずれかの領域）から参照画素を読み出す。
【００４６】
従来、ＪＢＩＧデコーダで復号化するためには、テンプレート参照のために、元画像の用紙サイズ（幅）から想定されるライン幅で出力バッファとしてメモリ領域を確保しておく必要があった。その場合には、「１ライン当りの余裕幅（例えば５７０３５ドットから５７０６６ドットまで）×ライン数（例えば６４ライン）×出力バッファの数」だけの本来よりも余計なメモリ容量が必要になってしまう。ここで、本来よりも余計なメモリ容量とは、即ち、図６（ｃ）に示す太線で囲まれた部分に相当する容量である。
【００４７】
しかしながら、本実施例においては、「１ライン当りの余裕幅（例えば５７０３５ドットから５７０６６ドットまで）×テンプレート参照のためのライン数（例えば６４ライン）」の容量のみを確保すれば良い。本実施例においては、ＪＢＩＧデコーダ１００内のＳＲＡＭ１０７に確保している。即ち、ＪＢＩＧデコーダ１００は、印刷可能でない領域（図６（ｂ）に示す太枠の領域）の復号化データの出力時には、Ｓ７０６においてＳＲＡＭ１０７に復号化データ（画素）を書き込む。また、ＪＢＩＧデコーダ１００は、印刷可能でない領域に含まれる参照画素をテンプレートとして参照する場合には、Ｓ８０６においてＳＲＡＭ１０７から読み込むことで、復号化することができる。
【００４８】
以上のように、本実施例においては、復号化した結果が大判プリンタの想定する用紙サイズ（幅）に収まらないような符号化データに対しても、メモリ容量の増加を抑制し、且つ、符号化データのうち印刷可能な部分のみを復号化して出力することができる。従って、大容量メモリの搭載によるコストの上昇を抑えることができる。
【００４９】
本実施例においては、バンド単位で符号化された符号化データについて説明したが、ページ単位で処理するシステムにおいてはページ単位で符号された符号化データであっても良い。また、ＳＲＡＭ１０７がＪＢＩＧデコーダ１００内で構成されているが、ＤＲＡＭ１０９等、データを記憶することができるメモリであれば特に限定されない。また、２ラインをテンプレート参照して復号化する例を説明したが、２ラインより多くても良い。その場合には、例えばテンプレート参照が３ラインで行なわれる場合に、図３において領域が３等分される。又は、ＳＲＡＭ１０７を複数個搭載するようにしても良い。さらに、処理速度の低下を避けるために、ＪＢＩＧ  ＤＭＡ１０６をマルチ・チャネルとして搭載するようにしても良い。
【００５０】
本実施例は、ＪＢＩＧでのデータ復号化に限定されず、複数ラインを符号化する方式で符号化された画像データを、Ｎライン前までの画素（Ｎ＞＝１）及び同ラインの画素を参照して、Ｍライン分（Ｍ＞Ｎ）復号化するデコーダであれば適用することができる。
【００５１】
［第２の実施例］
第１の実施例においては、大判プリンタ４０１が処理する色数分、ＪＢＩＧデコーダを搭載している。一方、本実施例においては、１つのＪＢＩＧデコーダで複数の色面の符号化データを復号化できる。以下、Ｋ、Ｃ、Ｍ、Ｙの４色に対応した構成について説明する。
【００５２】
図９に示すように、ＪＢＩＧ  ＣＯＮ１０３は、ＳＲＡＭ１０７の領域をＡ１領域９０１、Ｂ１領域９０２、Ａ２領域９０３、Ｂ２領域９０４、Ａ３領域９０５、Ｂ３領域９０６、Ａ４領域９０７、Ｂ４領域９０８に分割して、アドレス管理する。また、大判プリンタ４０１の不図示のＣＰＵがどの色面のＪＢＩＧ復号化を行うかを設定するために、ＪＢＩＧ  ＣＯＮ１０３は、「色面設定」を設定するためのレジスタをさらに有している。不図示のＣＰＵは、「色面設定」として、レジスタにＪＢＩＧ復号化を行う色面の色番号を設定する。
【００５３】
ＪＢＩＧ  ＣＯＮ１０３は、色番号１を指定された場合に、Ａ１領域９０１とＢ１領域９０２を、ラインごとに交互に使用するようにＪＢＩＧ  ＤＭＡ１０５及びＪＢＩＧ  ＤＭＡ１０６を制御する。また、ＪＢＩＧ  ＣＯＮ１０３は、色番号２を指定された場合に、Ａ２領域９０３とＢ２領域９０４を、ラインごとに交互に使用するようにＪＢＩＧ  ＤＭＡ１０５及びＪＢＩＧ  ＤＭＡ１０６を制御する。また、ＪＢＩＧ  ＣＯＮ１０３は、色番号３を指定された場合に、Ａ３領域９０５とＢ３領域９０６を、ラインごとに交互に使用するようにＪＢＩＧ  ＤＭＡ１０５及びＪＢＩＧ  ＤＭＡ１０６を制御する。また、ＪＢＩＧ  ＣＯＮ１０３は、色番号４を指定された場合に、Ａ４領域９０７とＢ４領域９０８を、ライン毎に交互に使用するようにＪＢＩＧ  ＤＭＡ１０５及びＪＢＩＧ  ＤＭＡ１０６を制御する。その他の処理については第１の実施例と同じである。
【００５４】
本実施例においては、第１の実施例に比べて、ＪＢＩＧデコーダの規模を大きくすることなく、複数色面のＪＢＩＧ符号化データの復号化に対応することができる。
【００５５】
また、Ｋ、Ｃ、Ｍ、Ｙの４色に対応した例を説明したが、４色に限定するものではなくより多くの色面数であっても良い。また、「色面数設定」のためのレジスタや、色面毎に「データ記憶領域先頭アドレス」や「データ記憶領域サイズ」のためのレジスタを設けても良い。
【００５６】
第１及び第２の実施例におけるＪＢＩＧデコーダは、メモリ容量の増加を抑制しながらも、符号化時のバッファ幅よりも小さな幅を有するバッファに符号化データを復号化することができる。メモリ容量の増加を抑制することにより、ＪＢＩＧデコーダを搭載した製品の購入価格の上昇を抑えることができる。
【００５７】
また、大判プリンタの想定する用紙サイズ（幅）に収まらないような元画像（Ａ０等）を符号化した符号化データに対しても、印刷に必要な部分のみを復号化した復号化データ（画素）を出力することができる。
【００５８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011239038.tif 000003
【図２】
2011239038.tif 000004
【図３】
2011239038.tif 000005
【図４】
2011239038.tif 000006
【図５】
2011239038.tif 000007
【図６】
2011239038.tif 000008
【図７】
2011239038.tif 000009
【図８】
2011239038.tif 000010
【図９】
2011239038.tif 000011
【図１０】
2011239038.tif 000012