(57)【特許請求の範囲】
【請求項１】
印刷用紙に印刷される画像データであって、複数のビットデータで表される画素データが複数配列されてなる画像データを取得する画像データ取得部と、
該画像データ取得部により取得された複数の画像データのそれぞれに対して、前記ビットデータの配列方向について、前記画素データの境界で区切られる１または複数のバイト単位からなるブロック単位で圧縮処理を施して圧縮画像データを生成する圧縮処理部と、
該圧縮処理部により生成された圧縮画像データに対して前記ブロック単位で展開処理を施し、該展開処理の施された画像データを出力する展開処理部と、
前記画像データ取得部により取得された複数の画像データを１枚の印刷用紙内に配置して印刷する面付け印刷指示を受け付ける面付け印刷指示受付部とを備え、
前記圧縮処理部が、前記複数の画像データのそれぞれについて、前記ビットデータの配列方向に配置された画素データのうちの１のビットデータを含む先頭位置の画素データが前記印刷用紙の所望の位置に印刷されるように前記先頭位置の画素データの前にダミー画素データを配置した後、前記圧縮処理を施し、
前記展開処理部が、前記面付け印刷指示受付部において面付け印刷指示が受け付けられた場合には、前記ビットデータの配列方向に隣接して配置される前記圧縮画像データに対してそれぞれ展開処理を施す際、一方の前記圧縮画像データの先頭または後端の前記ブロックの展開処理済の画像データと該先頭または後端のブロックに隣接する他方の前記圧縮画像データのブロックの展開処理済の画像データとが互いに上書きされないように、前記一方の圧縮画像データの先頭または後端のブロックおよび前記他方の圧縮画像データの前記先頭または後端のブロックに隣接するブロックの展開処理済の画像データに対して所定の演算を施すものであることを特徴とする画像処理装置。
【請求項２】
前記所定の演算がＯＲ演算であることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記圧縮処理部が、前記複数の画像データに対して別個に圧縮処理を施して複数の圧縮画像データを生成するものであることを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
前記展開処理部が、前記複数の圧縮画像データに対して別個に展開処理を施し、該展開処理の施された複数の画像データを前記面付け印刷指示に基づいて順次出力するものであることを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記圧縮画像データと前記画像データに付加される所定の情報を表す付加情報データとをまとめて印刷制御コードとして生成する印刷制御コード生成部を備えたことを特徴とする請求項１から４いずれか１項記載の画像処理装置。
【請求項６】
請求項１から５いずれか１項記載の画像処理装置および該画像処理装置から出力された画像データに基づいて印刷用紙に対して印刷処理を施す印刷部を備えた印刷装置と、
原稿画像を光電的に読み取って前記画像データを前記画像処理装置に出力する原稿読取装置とを備えたことを特徴とする印刷システム。
【請求項７】
請求項１から５いずれか１項記載の画像処理装置における前記画像データ取得部および前記圧縮処理部を備えたコンピュータと、
前記画像処理装置における前記展開処理部および該展開処理部から出力された画像データに基づいて印刷用紙に対して印刷処理を施す印刷部を備えた印刷装置とを備えたことを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびその画像処理装置を用いた印刷システムに関するものであり、特に、印刷される画像データに対して施される圧縮処理に関するものである。
【背景技術】
【０００２】
従来、コンピュータのアプリケーションによって作成された画像データや、スキャナなどによって原稿画像を光電的に読み取った画像データに基づいて印刷処理を行う印刷システムが種々提案されている。
【０００３】
このような印刷システムにおいては、画像データに対してランレングス圧縮などの圧縮処理を施した後、その圧縮画像データに基づいてＰＤＬ（Page Description Language）などで記述されたプリンタ制御コードを生成し、そのプリンタ制御コードをハードディスクに一旦保存する。そして、その保存したプリンタ制御コードをハードディスクから読み出して展開処理を施し、その展開処理済の画像データをメモリに一旦記憶した後、印刷エンジンに出力して印刷処理を行う。
【０００４】
ここで、上記画像データは、多数の画素データを２次元状に配列したものであり、この各画素データは、一般的に３ビットまたは４ビットのビットデータで構成される。
【０００５】
一方、上述した圧縮処理や展開処理を行うＣＰＵ（Central Processing Unit）は、一般的に、そのハードウェアの設計の都合上、バイト単位で圧縮処理や展開処理を行うように構成されていることが多い（たとえば特許文献１参照）。
【０００６】
したがって、各画素データがたとえば３ビットのビットデータから構成される場合には、この３ビットのビットデータが圧縮処理の処理単位であるバイト単位の間でまたがってしまっては、バイト単位で展開処理を施してビットデータをメモリに書き込む際にビットシフトをする必要があり、複雑な処理が必要となるため、展開処理の速度低下となり、これにより印刷処理の開始タイミングが遅れるため高速な印刷処理を行うことができない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−２６２０８２号公報
【特許文献２】特開昭６３−３０４２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そこで、各画素データがたとえば３ビットのビットデータから構成される場合には、この３ビットのビットデータが圧縮処理の処理単位であるバイト単位の間でまたがらないようにするため、３バイト（２４ビット）の画素データ、すなわち８つの画素データを１つのブロック単位（処理単位）として設定し、このブロック単位で圧縮処理および展開処理を行う方法が考えられる。
【０００９】
ここで、上述したようなブロック単位で圧縮処理および展開処理を行う場合について、図１４を参照しながら詳細に説明する。なお、図１４は、印刷対象の元の画像データと、その元の画像データから生成される圧縮対象の画素データと、その圧縮処理済の画像データから生成されるプリンタ制御コードと、プリンタ制御コードに対して展開処理を施した展開処理済の画像データと、その展開処理済の画像データから構成される印刷用の画像データとを上から順に示したものである。
【００１０】
まず、図１４に示すような元の画像データに対して、印刷用紙の用紙サイズに合わせて必要に応じてカット処理が施された後、一般的には、圧縮処理後のデータの容量を小さくするため、１行の画素データのうち、１のビットデータを含む先頭位置（５，３）の画素データから１のビットデータを含む後端（１４，３）の画素データまでが圧縮対象の画素データとして切り出される。
【００１１】
そして、この切り出された画素データに対してブロック単位で圧縮処理を施すため、図１４に示すように、後端の画素データの後ろに６画素のダミー画素データ（ゼロの画素データ）が配置される。
【００１２】
次いで、上述したようにダミー画素データが配置された画素データに対して圧縮処理が施され、その圧縮画像データに基づいて画像コードが生成され、図１４に示すようなプリンタ制御コードが生成される。なお、図１４に示すプリンタ制御コードにおける座標コードは、上述した先頭位置の画素データの元の画像データにおける座標値を示すものである。
【００１３】
そして、上記のようにして生成されたプリンタ制御コードに対して展開処理が施され、その展開処理済の画像データに基づいて印刷用の画像データが生成されるが、このとき展開処理済の画像データをそのまま印刷用の画像データとしたのでは、元の画像データにおいては座標値（５，３）の位置であった画素データが、印刷用紙の座標系における座標値（０，３）の位置に印刷されることになるので、５画素（５ドット）のズレが発生してしまう。
【００１４】
したがって、元の画像データにおける座標値（５，３）の位置にある画素データを印刷用紙の座標系における（５，３）の位置に印刷するためには、図１４に示すように、座標コードに含まれる座標値（５，３）に基づいて、１行の画素データに対してビットシフト処理を施す必要がある。
【００１５】
しかしながら、このようなビットシフト処理を行うためには、たとえば特許文献２に示されるようなバレルシフタを設ける必要があり、このような特別な回路を用いることは開発工数やコストが増大してしまう問題がある。
【００１６】
また、展開処理の際に上述したようなビットシフト処理を行うようにしたのでは、そのビットシフト処理の時間を要するため、高速な印刷処理を行う際にはその印刷速度に追いつかず、印刷処理が可能な状態であるにも関わらず、印刷用の画像データの生成が終了していないという事態となり、高速な印刷処理の実現が困難となる問題がある。
【００１７】
本発明は、上記事情に鑑み、より安価に製造することができ、かつ高速な印刷処理の実現が可能な画像処理装置および印刷システムを提供することを目的とするものである。
【課題を解決するための手段】
【００１８】
本発明の画像処理装置は、印刷用紙に印刷される画像データであって、複数のビットデータで表される画素データが複数配列されてなる画像データを取得する画像データ取得部と、画像データ取得部により取得された画像データに対して、ビットデータの配列方向について、画素データの境界で区切られる１または複数のバイト単位からなるブロック単位で圧縮処理を施して圧縮画像データを生成する圧縮処理部と、圧縮処理部により生成された圧縮画像データに対してブロック単位で展開処理を施し、その展開処理の施された画像データを出力する展開処理部とを備え、圧縮処理部が、ビットデータの配列方向に配置された画素データのうちの１のビットデータを含む先頭位置の画素データが印刷用紙の所望の位置に印刷されるように先頭位置の画素データの前にダミー画素データを配置した後、圧縮処理を施すものであることを特徴とするものである。
【００１９】
また、上記本発明の画像処理装置においては、圧縮処理部を、先頭位置の画素データが展開処理後に圧縮処理前の画像データの元の位置に配置されるように先頭位置の画素データの前にダミー画素データを配置するものとできる。
【００２０】
また、画像データ取得部を、複数の画像データを取得するものとし、画像データ取得部により取得された複数の画像データを１枚の印刷用紙内に配置して印刷する面付け印刷指示を受け付ける面付け印刷指示受付部を設け、展開処理部を、面付け印刷指示受付部において面付け印刷指示が受け付けられた場合には、ビットデータの配列方向に隣接して配置される圧縮画像データに対して展開処理を施す際、一方の圧縮画像データの先頭または後端のブロックの展開処理済の画像データとその先頭または後端のブロックに隣接する他方の圧縮画像データのブロックの展開処理済の画像データとが互いに上書きされないように、一方の圧縮画像データの先頭または後端のブロックおよび他方の圧縮画像データの先頭または後端のブロックに隣接するブロックの展開処理済の画像データに対して所定の演算を施すものとすることができる。
【００２１】
また、上記所定の演算としてＯＲ演算を用いることができる。
【００２２】
また、圧縮処理部を、複数の画像データに対して別個に圧縮処理を施して複数の圧縮画像データを生成するものとできる。
【００２３】
また、展開処理部を、複数の圧縮画像データに対して別個に展開処理を施し、その展開処理の施された複数の画像データを面付け印刷指示に基づいて順次出力するものとできる。
【００２４】
また、圧縮画像データと画像データに付加される所定の情報を表す付加情報データとをまとめて印刷制御コードとして生成する印刷制御コード生成部を設けることができる。
【００２５】
本発明の印刷システムは、上記画像処理装置およびその画像処理装置から出力された画像データに基づいて印刷用紙に対して印刷処理を施す印刷部を備えた印刷装置と、原稿画像を光電的に読み取って画像データを画像処理装置に出力する原稿読取装置とを備えたことを特徴とするものである。
【００２６】
本発明の印刷システムは、上記画像処理装置における画像データ取得部および圧縮処理部を備えたコンピュータと、画像処理装置における展開処理部およびその展開処理部から出力された画像データに基づいて印刷用紙に対して印刷処理を施す印刷部を備えた印刷装置とを備えたことを特徴とするものである。
【発明の効果】
【００２７】
本発明の画像処理装置によれば、画像データに対して１または複数のバイト単位からなるブロック単位で圧縮処理を施して圧縮画像データを生成し、その圧縮画像データに対してブロック単位で展開処理を施し、その展開処理の施された画像データを出力する画像処理装置において、ビットデータの配列方向に配置された画素データのうちの１のビットデータを含む先頭位置の画素データが印刷用紙の所望の位置に印刷されるように先頭位置の画素データの前にダミー画素データを配置した後、上記圧縮処理を施すようにしたので、ブロック単位で展開処理を施した画像データに対して、上述したようなビットシフト処理を施す必要がないので、ビットシフト処理を行う回路を必要としない安価な構成とすることができ、かつ高速な印刷処理を実現することができる。
【００２８】
なお、本発明によれば圧縮処理前にダミー画素データを配置する処理の時間が必要となるが、たとえばスキャナで読み取った画像データを印刷する際には、スキャナでの原稿画像の読み取り時間などを含めて圧縮処理が終わるまでに相当な時間を要するので、ダミー画素データを配置する処理の時間はそれ程問題とならない。
【００２９】
これに対し、上述したように展開処理後にビットシフト処理を行う場合には、印刷処理の開始タイミングに直接的な影響を及ぼすことになるので、高速な印刷処理の実現が困難となる。
【図面の簡単な説明】
【００３０】
【図１】本発明の画像処理装置の一実施形態を用いたプリンタシステムの概略構成を示すブロック図
【図２】本発明の画像処理装置の一実施形態を用いたプリンタシステムの作用を説明するための模式図
【図３】プリンタ制御コードの一例を示す図
【図４】本発明の画像処理装置の一実施形態を用いたプリンタシステムの作用を説明するためのフローチャート
【図５】本発明の画像処理装置の一実施形態を用いたプリンタシステムの面付け印刷の作用を説明するための模式図
【図６】２面アップ印刷における圧縮処理のその他の実施形態を説明するための図
【図７】４面アップ印刷の一例を示す図
【図８】４面アップ印刷の際の圧縮処理および展開処理と、プリンタ制御コードとを説明するための図
【図９】４面アップ印刷のその他の例を示す図
【図１０】付加情報として文字画像コードを含むプリンタ制御コードを示す図
【図１１】図１０に示すプリンタ制御コードを展開して印刷した場合の一例を示す図
【図１２】白抜き四角内にページ数を印刷した例を示す図
【図１３】付加情報として白抜き画像コードと文字画像コードとを含むプリンタ制御コードを示す図
【図１４】プリンタ制御コードを展開した後にビットシフト処理を行う場合の例を説明するための図
【発明を実施するための形態】
【００３１】
以下、図面を参照して本発明の画像処理装置の一実施形態を用いたプリンタシステムについて詳細に説明する。図１は、本実施形態のプリンタシステムの全体概略構成図である。
【００３２】
本実施形態のプリンタシステムは、図１に示すように、スキャナ１０と、プリンタ２０と、コンピュータ３０とを備えている。
【００３３】
スキャナ１０は、原稿画像が印刷された原稿用紙を光電的に読み取って画像データを取得し、その画像データをプリンタ２０に出力するものである。
【００３４】
ここで、本実施形態においてスキャナ１０から出力される画像データは、図２に示すように、多数の画素データを２次元状に配列したビットマップデータである。なお、図２は、印刷対象の元の画像データと、その元の画像データから生成される圧縮対象の画素データと、その圧縮処理済の画像データから生成されるプリンタ制御コードと、プリンタ制御コードに対して展開処理を施した展開処理済の画像データと、その展開処理済の画像データから構成される印刷用の画像データとを上から順に示したものである。
【００３５】
そして、本実施形態においては、画像データを構成する各画素データは、図２に示すように、３ビットのビットデータによって表されるものである。なお、図２に示すビットデータは、画像データにおける所定の１行の画素データを抜き出したものである。また、本実施形態においては、各画素データとして３ビットのビットデータを用いるようにしたが、これに限らず、たとえば４ビット以上のビットデータを用いるようにしてもよい。
【００３６】
プリンタ２０は、図１に示すように、制御部２１と、メモリ２２と、ハードディスク２３と、印刷エンジン２４と、インクヘッド２５と、印刷指示受付部２６とを備えている。そして、さらに制御部２１は、画像データ取得部４０と、圧縮処理部４１と、プリンタ制御コード生成部４２と、展開処理部４３とを備えている。
【００３７】
画像データ取得部４０は、スキャナ１０から出力された画像データを取得し、その画像データをメモリ２２に出力して記憶させたり、コンピュータ３０から出力された後述するプリンタ制御コードを取得し、そのプリンタ制御コードをハードディスク２３に出力して記憶させたりするものである。
【００３８】
圧縮処理部４１は、メモリ２２から読み出された画像データに対して圧縮処理を施すものである。具体的には、本実施形態の圧縮処理部４１は、入力された画像データに対して、各画素データを構成するビットデータの配列方向についてランレングス圧縮処理を施すものである。
【００３９】
ここで、この圧縮処理部４１を含む制御部２１は、ＣＰＵ（Central Processing Unit）などのハードウェアから構成されており、そのハードウェアの設計の都合上、バイト単位で処理を行うように構成されている。
【００４０】
したがって、圧縮処理部４１においても１または複数のバイト単位で圧縮処理が施されるが、このとき、本実施形態のように各画素データを３ビットのビットデータから構成した場合、上述したように、この３ビットのビットデータが圧縮処理の処理単位の間でまたがらないようにする必要がある。すなわち、圧縮処理の処理単位が、画素データの境界で区切られるようにする必要がある。
【００４１】
そこで、本実施形態の圧縮処理部４１においては、３バイトの画素データ、すなわち８つの画素データを１つのブロック単位（処理単位）として設定し、このブロック単位でランレングス圧縮を行う。
【００４２】
一方、ランレングス圧縮を行う際には、その圧縮後のデータの容量を小さくするため、一般的には、図２に示すように、１行の画素データのうちの、１のビットデータを含む先頭位置の画素データから１のビットデータを含む後端の画素データまでが圧縮対象の画素データとして切り出される。なお、本実施形態においては、図２に示すビットデータの左から右に向かって圧縮処理を施すものとする。
【００４３】
しかしながら、このとき上述したように切り出した先頭位置の画素データからブロック単位で圧縮処理を開始するようにしたのでは、上述したように、展開処理を施した後に、展開処理後の画素データにシフト処理を施す必要があり、その処理時間が多くかかってしまう。
【００４４】
そこで、本実施形態においては、先頭位置の画素データが、展開処理後において所望の位置に配置されるように、図２に示すように先頭位置の画素データの前にダミー画素データを配置し、その後、圧縮処理を施すようにしている。より具体的には、本実施形態においては、先頭位置の画素データが、展開処理後において圧縮処理前の画像データの元の位置に配置されるようにダミー画素データを配置する。なお、このときダミー画素データを含めた圧縮対象の画素データの数がブロック単位でない場合には、図２に示すように１のビットデータを含む後端の画素データの後にもダミー画素データを配置する。
【００４５】
そして、圧縮処理部４１は、上述したようにしてダミー画素データの配置後に圧縮処理を施した圧縮画像データとともに、画像データの行毎の先頭ダミー画素データの座標値をプリンタ制御コード生成部４２に出力するものである。
【００４６】
プリンタ制御コード生成部４２は、圧縮処理部４１から出力された圧縮画像データおよび行毎の先頭ダミー画素データの座標値などに基づいて、図２および図３に示すようなプリンタ制御コードを生成するものである。
【００４７】
図３は、図２に示すプリンタ制御コードをより詳細に示すものである。本実施形態において生成されるプリンタ制御コードは、図３に示すように、座標コード、画像コードおよび改頁コードなどから構成されている。座標コードは、上述した行毎の先頭ダミー画像データの座標値（ｘ，ｙ）を含むものである。画像コードは、圧縮画像データおよび展開処理後の画像データのサイズ情報や、画像データに含まれる色（たとえばＣＭＹＫ）の情報や、圧縮処理の有無の情報や、展開処理の際の演算方式の情報や、圧縮画像データなどを含むものである。なお、展開処理の際の演算方式の情報については、後で詳述する。
【００４８】
そして、プリンタ制御コード生成部４２において生成されたプリンタ制御コードは、ハードディスク２３に出力されて記憶されるものである。
【００４９】
展開処理部４３は、ハードディスク２３に記憶されたプリンタ制御コードを読み出し、このプリンタ制御コードに含まれる圧縮画像データに対してブロック単位で展開処理を施し、図２に示すようなダミー画素データを含む画像データを生成するものである。展開処理後の画像データは、プリンタ制御コードに含まれる座標コードに基づいてメモリ２２に一旦記憶された後、印刷エンジン２４に出力される。
【００５０】
印刷エンジン２４は、入力された画像データに基づいて、後述するインクヘッド２５に制御信号を出力してインクヘッド２５の駆動を制御するものである。
【００５１】
インクヘッド２５は、印刷用紙の搬送面の上方に非接触状態で配設され、印刷用紙に向かってインクを選択的に吐出するラインヘッドを備えている。たとえばフルカラー画像を形成する場合には、Ｋ（黒）、Ｃ（シアン）、Ｍ（マゼンダ）、Ｙ（イエロー）の４色のラインヘッドから構成される。
【００５２】
印刷指示受付部２６は、たとえばタッチパネルなどの入力受付手段から構成されており、印刷枚数や印刷部数、面付け印刷指示などの種々の印刷条件および出力方法などの操作者による入力を受け付けるものである。
【００５３】
コンピュータ３０は、図１に示すように、アプリケーション３１とプリンタドライバ３２とを備えている。なお、アプリケーション３１およびプリンタドライバ３２は、コンピュータ３０にインストールされたプログラムによって構成されるものである。
【００５４】
アプリケーション３１は、メモ帳やＷｏｒｄ（登録商標）などのような原稿画像を表す画像データを編集することができるプログラムであり、アプリケーション３１において編集された画像データはプリンタドライバ３２に出力される。
【００５５】
プリンタドライバ３２は、印刷枚数や印刷部数、面付け印刷指示などの種々の印刷条件および出力方法などの操作者による入力を受け付けるユーザーインターフェースを有し、その印刷条件や出力方法などに応じて、プリンタ２０において認識可能なプリンタ制御コードを生成して出力するものである。本実施形態におけるプリンタドライバ３２は、プリンタ制御コードとして、ＰＤＬ（Page Description Language）データを生成するものである。
【００５６】
また、本実施形態のプリンタドライバ３２は圧縮処理部３３を備えている。この圧縮処理部３３は、アプリケーション３１から出力された画像データに対して圧縮処理を施すものである。プリンタドライバ３２の圧縮処理部３３において施される圧縮処理は、プリンタ２０における制御部２１の圧縮処理部４１において画像データに施される圧縮処理と同様である。
【００５７】
そして、プリンタドライバ３２は、アプリケーション３１から出力された画像データに基づいて、プリンタ２０における制御部２１のプリンタ制御コード生成部４２において生成されるプリンタ制御コードと同様のものを生成するものである。プリンタドライバ３２から出力されたプリンタ制御コードは、プリンタ２０の制御部２１によって取得され、ハードディスク２３に記憶される。
【００５８】
次に、本実施形態のプリンタシステムの作用について、図２および図４に示すフローチャートを参照しながら説明する。本実施形態のプリンタシステムは、スキャナ１０において原稿画像を読み取ることによって取得された画像データに基づく印刷と、コンピュータ３０のアプリケーション３１において生成された画像データに基づく印刷とを行うことができるが、まずは、スキャナ１０において取得された画像データに基づいて印刷を行う場合の作用について説明する。
【００５９】
まず、スキャナ１０において原稿画像が光電的に読み取られ、その読み取られた画像データがプリンタ２０に出力される（Ｓ１０）。そして、スキャナ１０から出力された画像データは、プリンタ２０の画像データ取得部４０によって取得され、メモリ２２に一旦記憶される（Ｓ１２）。
【００６０】
次に、メモリ２２に記憶された画像データが読み出され、この読み出された画像データに対して必要に応じてカット処理が施される（Ｓ１４）。このカット処理は、たとえばスキャナ１０から出力された画像データのサイズが印刷用紙のサイズよりも大きい場合に施される処理であり、画像データのサイズが印刷用紙のサイズに一致するように画像データの一部を削除する処理である。たとえば、図２に示すように、画像データの両サイドの斜線の部分の画素データが削除される。
【００６１】
次に、カット処理が施された後の画像データは圧縮処理部４１に入力される。そして、圧縮処理部４１は、入力された画像データに対して圧縮処理を施す前に、上述したダミー画素データの挿入を行う（Ｓ１６）。
【００６２】
具体的には、圧縮処理部４１は、まず、画像データの所定の行の画素データについて、図２に示すように、１のビットデータを含む先頭位置（５，３）の画素データから１のビットデータを含む後端（１４，３）の画素データまでの画素データを切り出す。次に、圧縮処理部４１は、先頭位置（５，３）の画素データが、展開処理後において圧縮処理前の画像データの元の位置（５，３）に配置されるように、図２に示すように、先頭位置（５，３）の画素データの前にダミー画素データを配置する。このダミー画素データとはゼロの画素データである。図２に示す例では５画素のダミー画素データが配置される。そして、さらに圧縮対象の画素データの数が上述したブロック単位となるように、必要に応じて後端の画素データの後ろにもダミー画素データを配置する。図２に示す例では１画素のダミー画素データが後ろに配置される。
【００６３】
そして、圧縮処理部４１は、上述したようにダミー画素データを配置した後に圧縮処理を施し（Ｓ１８）、その圧縮処理の施された圧縮画像データとともに、行毎の先頭ダミー画素データの座標値をプリンタ制御コード生成部４２に出力する。
【００６４】
次に、プリンタ制御コード生成部４２において、入力された圧縮画像データおよび行毎の先頭ダミー画素データの座標値などに基づいて、図２および図３に示すようなプリンタ制御コードが生成される（Ｓ２０）。なお、図２においては、所定の１行の画素データに対する処理のみを表しているが、その他の行についても、上記と同様のカット処理、ダミー画素データの配置処理および圧縮処理が施され、１枚の画像データ全体に対して１つのプリンタ制御コードが生成される。
【００６５】
そして、プリンタ制御コード生成部４２において生成されたプリンタ制御コードは、ハードディスク２３に一旦記憶される（Ｓ２２）。
【００６６】
次いで、展開処理部４３によってハードディスク２３に記憶されたプリンタ制御コードが読み出され、このプリンタ制御コードに含まれる圧縮画像データに対してブロック単位で展開処理が施され、図２に示すようなダミー画素データを含む画像データが生成される（Ｓ２４）。
【００６７】
そして、展開処理後の画像データは、プリンタ制御コードに含まれる座標コードに基づいてメモリ２２に一旦記憶された後、印刷エンジン２４に出力される。
【００６８】
印刷エンジン２４は、入力された画像データに基づいてインクヘッド２５に制御信号を出力し、インクヘッド２５は、入力された制御信号に基づいて駆動され、印刷用紙にインクを吐出して印刷を行う（Ｓ２６）。
【００６９】
以上が、スキャナ１０によって取得された画像データに基づいて印刷を行う場合の作用である。
【００７０】
次に、コンピュータ３０のアプリケーション３１において生成された画像データに基づいて印刷を行う場合の作用について説明する。
【００７１】
まず、アプリケーション３１が起動され、このアプリケーション３１を用いて文書、イラスト、写真画像などが編集されて画像データが生成される。
【００７２】
そして、アプリケーション３１において印刷指示が選択されると、プリンタドライバ３２のユーザーインターフェースが起動されて種々の印刷条件および出力方法などの入力を受け付ける印刷条件受付画面が表示される。そして、その印刷条件受付画面において種々の印刷条件および出力方法などが操作者によって所定の入力手段を用いて設定された後、印刷指示が選択されると、プリンタドライバ３２はアプリケーション３１から出力された画像データに対して、上述したカット処理を施した後、圧縮処理部３３においてダミー画素データの配置処理および圧縮処理（Ｓ１４〜Ｓ１８）を行い、その圧縮処理を施した圧縮画像データと設定された印刷条件などに基づいて、上述したプリンタ制御コードを生成する（Ｓ２０）。
【００７３】
そして、プリンタドライバ３２において生成されたプリンタ制御コードはプリンタ２０に出力され、プリンタ２０の画像データ取得部４０によって取得された後、ハードディスク２３に出力されて記憶される。
【００７４】
そして、その後、ハードディスク２３に記憶されたプリンタ制御コードが読み出されて上述した展開処理が施され（Ｓ２２）、上記と同様にして展開処理後の画像データに基づいて印刷処理が行われる（Ｓ２４）。
【００７５】
以上が、コンピュータ３０のアプリケーション３１において生成された画像データに基いて印刷を行う場合の作用である。
【００７６】
次に、本実施形態のプリンタシステムにおいて、面付け処理の印刷指示条件が設定された場合の作用について説明する。面付け処理とは、１枚の印刷用紙の中に複数枚の画像を割り当てて印刷を行う処理である。ここでは、まず、１枚の印刷用紙に２枚の画像を左右に並べて印刷する場合の作用について説明する。
【００７７】
まず、プリンタ２０の印刷指示受付部２６において使用者による面付け印刷指示が受け付けられた後、面付けされる２枚の画像のうちの１枚目の画像データがスキャナ１０から出力され、その１枚の画像データがプリンタ２０の画像データ取得部４０によって取得され、メモリ２２に一旦記憶される。
【００７８】
ここで、本実施形態におけるメモリ２２は、１枚分の画像データのデータ量に相当する記憶容量を有するものとする。そして、本実施形態においては、後述するとおり、１枚の画像データが画像データ取得部４０によって取得され、メモリ２２に一旦記憶される毎にその画像データがメモリ２２から読み出されて所定の処理が施され、メモリ２２から読み出された画像データについてはメモリ２２から順次破棄される。このように１枚の画像データを取得する毎に所定の処理を施して各画像コードを生成することによって、従来のように、予めメモリ上で面付け対象の複数の画像データを配置して面付け画像データを生成する場合と比較すると、メモリ２２の記憶容量を少なくすることができ、コストの削減を図ることができる。なお、本実施形態においては、上述したようにメモリ２２を、１枚分の画像データのデータ量に相当する記憶容量を有するものとしたが、これに限らず、１枚分の画像データのデータ容量以上であって、２枚分の画像データのデータ容量より小さい記憶容量であればよい。
【００７９】
そして、メモリ２２に記憶された１枚の画像データが読み出され、この読み出された１枚の画像データに対して、印刷用紙の用紙サイズに応じてカット処理が施される。
【００８０】
ここで、図５に、本実施形態における面付け対象の左面の画像データと右面の画像データとを示す。具体的には、図５では、Ｘ方向のサイズが１６画素（３バイト×２＝６バイト）の２枚の画像データを、Ｘ方向の用紙サイズが２４画素（３バイト×３＝９バイト）の印刷用紙に印刷する場合の左面の画像データと右面の画像データとを示している。
【００８１】
そして、まず、図５に示す２枚の画像データのうちの左面の１枚の画像データに対して、左端の２画素と右端の２画素が削除される処理が施される。
【００８２】
そして、カット処理が施された後の１枚の画像データは圧縮処理部４１に入力される。次に、スキャナ１０から出力された２枚目の画像データ、すなわち右面の画像データがプリンタ２０の画像データ取得部４０によって取得され、メモリ２２に一旦記憶された後、メモリ２２から読み出されて上記と同様のカット処理が施されて圧縮処理部４１に入力される。
【００８３】
次に、圧縮処理部４１は、入力された画像データに対して圧縮処理を施す前にダミー画素データの挿入を行う。なお、ここでは左右の画像データの各行の画素データのうちの３行目と５行目の画素データに対してダミー画素データの挿入を行う場合について説明するが、実際には全ての行に対してダミー画素データの挿入処理が行われるものとする。
【００８４】
具体的には、圧縮処理部４１は、左面の画像データの３行目の画素データについては、図５に示すように、１のビットデータを含む先頭位置（５，３）の画素データから１のビットデータを含む後端（１１，３）の画素データまでの画素データを切り出した後、先頭位置（５，３）の画素データが、展開処理後において圧縮処理前の画像データの元の位置に配置されるように、先頭位置（５，３）の画素データの前に５画素のダミー画素データを配置する。そして、さらに圧縮対象の画素データの数がブロック単位となるように、後端（１１，３）の画素データの後ろにも４画素のダミー画素データを配置する。
【００８５】
また、左面の画像データの５行目の画素データについても同様に、１のビットデータを含む先頭位置（１，５）の画素データから１のビットデータを含む後端（１０，５）の画素データまでの画素データを切り出した後、先頭位置（１，５）の画素データが、展開処理後において圧縮処理前の画像データの元の位置に配置されるように、先頭位置（１，５）の画素データの前に１画素のダミー画素データを配置する。そして、さらに圧縮対象の画素データの数がブロック単位となるように、後端（１０，５）の画素データの後ろにも５画素のダミー画素データを配置する。
【００８６】
また、右面の画像データについては、上述したようにＸ方向の用紙サイズが２４画素（３バイト×３＝９バイト）の印刷用紙に印刷する場合、図５に示すように、印刷用紙の座標系におけるＸ＝１２の位置から印刷されることになる。すなわち、右面の画像データの一番左端の画素データのＸ座標は、図５に示すようにＸ＝１２となる。
【００８７】
そして、まず、３行目の画素データについては、図５に示すように、１のビットデータを含む先頭位置（１６，３）の画素データから１のビットデータを含む後端（２３，３）の画素データまでの画素データを切り出した後、先頭位置（１６，３）の画素データが、展開処理後において印刷用紙の座標系における（１６，３）の位置に印刷されるように、先頭位置の画素データの前に８画素のダミー画素データを配置する。そして、さらに圧縮対象の画素データの数がブロック単位となるように、後端（２２，３）の画素データの後ろにも１画素のダミー画素データを配置する。
【００８８】
また、左面の画像データの５行目の画素データについても同様に、１のビットデータを含む先頭位置（１２，５）の画素データから１のビットデータを含む後端（２１，５）の画素データまでの画素データを切り出した後、先頭位置（１２，５）の画素データが、展開処理後において印刷用紙の座標系における（１２，３）の位置に印刷されるように、先頭位置（１２，５）の画素データの前に４画素のダミー画素データを配置する。そして、さらに圧縮対象の画素データの数がブロック単位となるように、後端（２１，５）の画素データの後ろにも２画素のダミー画素データを配置する。
【００８９】
そして、圧縮処理部４１は、上述したようにダミー画素データを配置した後、左面の画像データと右面の画像データとに対してそれぞれ別個に圧縮処理を施し、２つの圧縮画像データを生成する。そして、圧縮処理部４１は、その２つの圧縮画像データとともに、各圧縮画像データについて、行毎の先頭ダミー画素データの座標値をプリンタ制御コード生成部４２に出力する。
【００９０】
次に、プリンタ制御コード生成部４２において、入力された各圧縮画像データおよび各圧縮画像データについての行毎の先頭ダミー画素データの座標値などに基づいて、図５に示すような、左面の座標コードおよび画像コードと、右面の座標コードおよび画像コードとから構成される１つのプリンタ制御コードが生成される。
【００９１】
そして、プリンタ制御コード生成部４２において生成されたプリンタ制御コードは、ハードディスク２３に一旦記憶される。
【００９２】
次いで、展開処理部４３によってハードディスク２３に記憶されたプリンタ制御コードが読み出され、このプリンタ制御コードに含まれる圧縮画像データに対してブロック単位で展開処理が施され、その展開処理済の画像データがメモリ２２に記憶される。
【００９３】
ここで、この展開処理においては、左面の圧縮画像データと右面の圧縮画像データとに対してそれぞれ別個に展開処理が施されるが、このとき左面の圧縮画像データの後端ブロックの展開処理済の画像データと右面の圧縮画像データの先頭ブロックの展開処理済の画像データとをそれぞれ展開してメモリ２２に記憶するようにしたのでは、たとえば左面の圧縮画像データの後端ブロックの展開処理済の画像データを記憶した後に、右面の圧縮画像データの先頭ブロックの展開処理済の画像データを記憶するようにした場合、図５に示すように、左面の展開処理済の後端ブロックのＸ＝８〜１１までの画素データが右面の展開処理済の先頭ブロックのダミー画素データによって上書きされてしまい、画像情報が失われてしまう。また、逆に、たとえば右面の圧縮画像データの先頭ブロックの展開処理済の画像データを記憶した後に、左面の圧縮画像データの後端ブロックの展開処理済の画像データを記憶するようにした場合、右面の展開処理済の後端ブロックのＸ＝１２〜１６までの画素データが左面の展開処理済の後端ブロックのダミー画素データによって上書きされてしまい画像情報が失われてしまう。
【００９４】
そこで、本実施形態においては、図５に示すように、左面の画像データの後端ブロックの展開処理済の画像データと右面の画像データの先頭ブロックの展開処理済の画像データとのＯＲ演算を行い、そのＯＲ演算の結果得られた画像データをメモリ２２に記憶するようにする。なお、このとき左面の画像データの先頭ブロックと右面の画像データの後端ブロックの画像データを展開する際には上記ＯＲ演算は行わないものとする。
【００９５】
このように圧縮（展開）方向に隣接する圧縮画像データを展開する際、隣接するブロックの展開処理済の画像データのＯＲ演算を行うことによって、図５に示すように、左面および右面の画像データの画像情報を失うことなく適切な印刷用の画像データを展開することができる。
【００９６】
なお、本実施形態においては、上述したようにＯＲ演算を行うことによって左面の画像データと右面の画像データとの画像情報が失われないようにしたが、演算方式としてはこれに限らず、両方の画像情報が失われないような演算方式であれば如何なる演算方式でもよく、たとえばマスク演算などを行うようにしてもよい。また、ＯＲ演算に限らず、ＡＮＤ演算、ＸＯＲ演算、ＮＯＴ演算、ＣＯＰＹ演算などを用いるようにしてもよい。また、このときの演算方式は、上述したプリンタ制御コードの画像コードにおける展開処理の際の演算方式の情報として含めることができ、また、印刷指示受付部２６において使用者によって複数の演算方式の中から所定の演算方式を選択可能としてもよい。
【００９７】
そして、展開処理後の画像データは、プリンタ制御コードに含まれる座標コードに基づいてメモリ２２に一旦記憶された後、印刷エンジン２４に出力される。
【００９８】
次いで、印刷エンジン２４は、入力された画像データに基づいてインクヘッド２５に制御信号を出力し、インクヘッド２５は、入力された制御信号に基づいて駆動され、印刷用紙にインクを吐出して印刷を行う。
【００９９】
なお、上記説明は、スキャナ１０によって読み取られた２枚の画像データに基づいて面付け印刷を行う場合の作用であるが、コンピュータ３０のアプリケーション３１において生成された画像データに基づいて面付け印刷を行う場合も、アプリケーション３１から出力された画像データに対して、上記と同様のカット処理、ダミー画素データの配置処理および圧縮処理が行われてプリンタ制御コードが生成される。
【０１００】
そして、コンピュータ３０のプリンタドライバ３２において生成されたプリンタ制御コードはプリンタ２０に出力され、プリンタ２０の画像データ取得部４０によって取得された後、ハードディスク２３に出力されて記憶される。
【０１０１】
そして、その後、ハードディスク２３に記憶されたプリンタ制御コードが読み出されて上記と同様のＯＲ演算を含む展開処理が施され、その展開処理後の画像データに基づいて印刷処理が行われる。
【０１０２】
また、上記説明では、模式的にＸ方向のサイズが１６画素（３バイト×２＝６バイト）の２枚の画像データを、Ｘ方向の用紙サイズが２４画素（３バイト×３＝９バイト）の印刷用紙に印刷する場合を説明したが、以下、原稿画像を３００ｄｐｉで読み取った画像データを図６（Ａ）に示すようなＡ４Ｒサイズの印刷用紙に対して左右に並べて面付け印刷する場合の作用について説明する。
【０１０３】
３００ｄｐｉで読み取られた画像データをＡ４Ｒサイズの印刷用紙に左右に２枚並べて印刷する際には、まず、各画像データに対して所定の縮小率で縮小処理が施され、図６（Ｂ）に示すように１７５３画素×２４８０画素の左面の画像データＡと右面の画像データＢとが生成される。なお、ここでは、説明を簡略化するため、図６（Ｂ）に示す左面の画像データＡと右面の画像データＢとは全ての画素データが１のビットデータを有する有効な画素データであるとする。
【０１０４】
そして、この左面の画像データＡと右面の画像データＢとを左右に並べて圧縮処理を施す際には、上記説明と同様に、８画素（３バイト）のブロック単位で圧縮処理が施されるが、図６（Ｃ）に示すように左面の画像データＡと右面の画像データＢとの境界は、左端から１７５３画素目と１７５４画素目との間となり、ブロック単位の倍数である１７５２画素の位置から１画素だけずれることになる。
【０１０５】
したがって、左面の画像データＡについてはブロック単位で圧縮処理を施すために、図６（Ｄ）に示すように後端ブロックの後ろに７画素のダミー画素データが配置され、このダミー画素データを含めてブロック単位で圧縮処理が施される。
【０１０６】
一方、右面の画像データＢについては、先頭位置の画素データが、展開処理後において印刷用紙の座標系における１７５４画素目の位置に印刷されるように、図６（Ｅ）に示すように先頭ブロックの前に１画素のダミー画素データが配置される。また、右面の画像データＢの後端の画素データの位置は１７５３画素×２＝３５０６画素目となるので、図６（Ｅ）に示すようにブロック単位の倍数の３５０４画素目から２画素だけずれることになる。したがって、右面の画像データＢの後端の画素データをブロック単位で圧縮処理を施すために、図６（Ｅ）に示すように後端ブロックの後ろに６画素のダミー画素データが配置される。上記のようにして右面の画像データＢに対してダミー画素データが配置された後、このダミー画素データを含めてブロック単位で圧縮処理が施される。
【０１０７】
そして、上記のようにして生成された左面の圧縮画像データと右面の圧縮画像データとに基づいて、上記と同様にしてプリンタ制御コードが生成され、ハードディスク２３に一旦記憶される。
【０１０８】
次いで、ハードディスク２３に記憶されたプリンタ制御コードが読み出されて展開処理が施されるが、このとき、上述した面付け印刷の場合と同様に、左面の画像データの後端ブロックの展開処理済の画像データと右面の画像データの先頭ブロックの展開処理済の画像データとのＯＲ演算を行い、そのＯＲ演算の結果得られた画像データをメモリ２２に記憶する。なお、このとき左面の画像データの後端ブロック以外のブロックと右面の画像データの先頭ブロック以外のブロックの画像データを展開する際には上記ＯＲ演算は行わないものとする。
【０１０９】
そして、展開処理後の画像データは、プリンタ制御コードに含まれる座標コードに基づいてメモリ２２に一旦記憶された後、印刷エンジン２４に出力される。
【０１１０】
以上が、Ａ４サイズの原稿画像の画像データをＡ４Ｒサイズの印刷用紙に対して左右に２枚並べて面付け印刷する場合の作用である。
【０１１１】
また、上記説明では、１枚の印刷用紙に２枚の画像データを印刷する、いわゆる２面アップの圧縮処理、展開処理および印刷処理について説明したが、２面アップに限らず、図７に示すような４面アップや、それ以上の８面アップなどにおいても、同様の処理を適用することができる。
【０１１２】
なお、たとえば図７に示すような１面から４面の画像データの４面アップの印刷の際には、図８に示すように、１面から４面の各面の画像データに対して別個に上記と同様の圧縮処理が施され、各面の画像データについてそれぞれ座標コードと画像コードとが生成されて図８に示すような各面の座標コードと画像コードとから構成されるプリンタ制御コードが生成される。なお、このとき生成されるプリンタ制御コードの各面の座標コードには、各面の印刷用紙における印刷位置の座標が含まれているものとする。
【０１１３】
そして、プリンタ制御コードの画像コードに含まれる各面の圧縮画像データに対して上記と同様の展開処理が施される。なお、このとき１面の画像データと２面の画像データとが互いに上書きしないように、上記と同様にして１面の画像データと２面の画像データとにおける隣接するブロックの展開処理を行う際にはＯＲ演算が行われる。また、同様に、３面の画像データと４面の画像データとが互いに上書きしないように、上記と同様にして３面の画像データと４面の画像データとにおける隣接するブロックの展開処理を行う際にはＯＲ演算が行われる。
【０１１４】
そして、展開処理済の各面の画像データが座標コードに含まれる印刷位置の座標値に基づいて配置されて４面アップの印刷用の画像データが生成され、その印刷用の画像データはメモリ２２に一旦記憶された後、印刷エンジン２４に出力される。
【０１１５】
なお、上記説明では、１面から４面の画像データを左上から順に配置して印刷する場合について説明したが、必ずしもこの順でなくてもよく、プリンタ制御コードの各面の座標コードを指定することによって、図９に示すような配置で１面から４面までの画像データを印刷することも可能である。各面の座標コードの指定については、プリンタ２０の印刷指示受付部２６またはコンピュータ３０のプリンタドライバ３２によって受け付けるようにすることができる。
【０１１６】
また、上記実施形態におけるプリンタ制御コードは、さらに図１０に示すような文字画像コードなどの付加情報を含むことも可能である。この文字画像コードは、たとえば印刷用紙内に図１１に示すようなページ数や、日付などの文字を印刷するためのものである。そして、この文字画像コードは、ページ数などを表す文字画像の画素データとゼロの画素データから構成される１枚の画像データに対して上記と同様の圧縮処理を施すことによって生成された圧縮画像データから構成されるものである。
【０１１７】
そして、上記のような文字画像コードを含むプリンタ制御コードが展開される際には、画像コードに含まれる圧縮画像データを展開した画像データと、文字画像コードに含まれる圧縮画像データを展開した文字画像データとの間でＯＲ演算を行うことによって、図１１に示すような印刷用の画像データを生成することができる。なお、このＯＲ演算の情報についても、プリンタ制御コードにおける展開処理の際の演算方式の情報として含めることができる。
【０１１８】
また、さらに、上述したページ数などの文字画像を、図１２に示すような白抜き四角内に印刷するような場合には、プリンタ制御コードに対して、図１３に示すような白抜き画像コードをさらに含めるようにすればよい。この白抜き画像コードは、白抜き四角を表すゼロの画素データと１の画素データから構成される１枚の画像データに対して上記と同様の圧縮処理を施すことによって生成された圧縮画像データから構成されるものである。
【０１１９】
そして、上記のような白抜き画像コードを含むプリンタ制御コードが展開される際には、画像コードに含まれる圧縮画像データを展開した画像データと、白抜き画像コードに含まれる圧縮画像データを展開した白抜き画像データとの間でＡＮＤ演算を行った後、そのＡＮＤ演算の結果と文字画像コードに含まれる圧縮画像データを展開した文字画像データとの間でＯＲ演算を行うことによって、図１２に示すような印刷用の画像データを生成することができる。なお、このＡＮＤ演算とＯＲ演算の情報についても、プリンタ制御コードにおける展開処理の際の演算方式の情報として含めることができる。
【０１２０】
なお、プリンタ制御コードに含める付加情報としては、上述したような文字画像コードや白抜き画像コードに限らず、その他の付加的な画像を表す画像コードも用いることができる。
【０１２１】
また、上記実施形態においてはプリンタ２０として、インクジェットプリンタを用いるようにしたが、これに限らず、孔版印刷プリンタやレーザープリンタなども用いることができる。
【符号の説明】
【０１２２】
１０   スキャナ
２０   プリンタ
２１   制御部
２２   メモリ
２３   ハードディスク
２４   印刷エンジン
２５   インクヘッド
２６   印刷指示受付部
３０   コンピュータ
３１   アプリケーション
３２   プリンタドライバ
３３   圧縮処理部
４０   画像データ取得部
４１   圧縮処理部
４２   プリンタ制御コード生成部
４３   展開処理部
【図１】
0005851201.tif 000002
【図３】
0005851201.tif 000003
【図４】
0005851201.tif 000004
【図６】
0005851201.tif 000005
【図７】
0005851201.tif 000006
【図８】
0005851201.tif 000007
【図９】
0005851201.tif 000008
【図１０】
0005851201.tif 000009
【図１１】
0005851201.tif 000010
【図１２】
0005851201.tif 000011
【図１３】
0005851201.tif 000012
【図２】
0005851201.tif 000013
【図５】
0005851201.tif 000014
【図１４】
0005851201.tif 000015