(57)【特許請求の範囲】
【請求項１】
イメージデータを圧縮して蓄積した後に改めて読み出し、これを伸長することで元のイメージデータに復元して出力する印字用データ発生装置において、
イメージデータを予定の単位ブロックごとに圧縮する圧縮手段と、
圧縮されたイメージデータを前記単位ブロックごとに蓄積する蓄積手段と、
表面印字または裏面印字の指示に応答して、前記蓄積されたイメージデータを、それぞれ正および逆方向から単位ブロックごとに読み出す第１の読出手段と、
読み出されたイメージデータを単位ブロックごとに伸長する伸長手段と、
伸長された単位ブロック分のイメージデータを記憶するデータバッファと、
前記データバッファ上のイメージデータを、表面印字の指示に応答して正方向から読み出し、裏面印字の指示に応答して逆方向から読み出す第２の読出手段とを具備したことを特徴とする印字用データ発生装置。
【請求項２】
前記表面印字の指示は片面印字モードおよび両面印字モードでの表面印字タイミングのいずれかで発せられ、裏面印字の指示は両面印字モードでの裏面印字タイミングで発せられることを特徴とする請求項１に記載の印字用データ発生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、イメージデータを圧縮して蓄積した後に改めて読み出し、これを伸長することで元のイメージデータに復元して出力する印字用データ発生装置に係り、特に、両面印字モードにおける裏面印字のタイミングではページイメージの上下左右を反転して出力するようにした印字用データ発生装置に関する。
【０００２】
【従来の技術】
複数枚の原稿を順次読み取って各ページを必要枚数づつコピー出力する場合、従来は同一原稿を必要なコピー枚数分だけ繰り返し読み取っていたが、近年では例えば特公平７−５３４５４号公報に記載されているように、複数枚の原稿を順番に１回づつ読み取って画像メモリに蓄積し、この蓄積された画像データをメモリから順番に繰り返し読み出すことで必要枚数のコピー出力を１回の読取り操作だけで行えるようにした装置が普及している。
【０００３】
しかしながら、画像データは情報量が多いために複数枚のページイメージを蓄積しようとすると必要なメモリ容量が膨大なものとなってしまう。このため、一般には画像データを圧縮する圧縮器および伸長する伸長器を設け、メモリに蓄積する画像データは圧縮器で予め圧縮しておくことで蓄積容量を低減する一方、メモリから読み出した圧縮データは伸長器で元の画像データに復元してから印字部等へ出力するようにしている。
【０００４】
一方、両面印字の可能な装置では、例えば特開昭６０−２０４３７９号公報において論じられているように、裏面となるページのイメージデータは全て上下左右を反転、すなわちイメージデータを１８０°回転してから印字部等へ出力する必要がある。イメージデータの回転方法に関しては、これまでに以下の２つの方法が提案されている。
【０００５】
第１の方法は、入力されたイメージデータを初めに１８０°だけ回転させ、これを圧縮してメモリに蓄積する方法であり、第２の方法は、圧縮して蓄積する際には回転させず、１ページ分の画像データを読み出して伸長した後に１８０°回転させる方法である。
【０００６】
【発明が解決しようとする課題】
上記した第１の方法では、両面印刷するつもりでメモリに蓄積された画像データは１ページごとに１８０°回転されているので、何らかの理由でこれを片面印刷する必要性が生じた場合には、改めて原稿の読取り、圧縮、および蓄積をやり直さなければならないという問題があった。
【０００７】
また、上記した第２の方法では画像データの１８０°回転が画像データの読み出し後に行われるので前記第１の方法が抱えている問題はないものの、伸長した１ページ分の画像データを１８０°回転させるための記憶領域を別途用意しなければならないのでメモリ容量が増えてしまうという問題がった。
【０００８】
本発明の目的は、上記した従来技術の問題点を解決し、メモリ容量を大きく増加させることなく、画像データの回転を圧縮データの蓄積後からでも行えるようにした印字用データ発生装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記した目的を達成するために、本発明では、イメージデータを予定の単位ブロックごとに圧縮する圧縮手段と、圧縮されたイメージデータを前記単位ブロックごとに蓄積する蓄積手段と、表面印字または裏面印字の指示に応答して、前記蓄積されたイメージデータを、それぞれ正または逆方向から単位ブロックごとに読み出す第１の読出手段と、読み出されたイメージデータを単位ブロックごとに伸長する伸長手段と、伸長された単位ブロック分のイメージデータを記憶するデータバッファと、表面印字または裏面印字の指示に応答して、前記データバッファ上のイメージデータを、それぞれ正および逆方向から読み出す第２の読出手段とを具備した点に特徴がある。
【００１０】
上記した構成によれば、各単位ブロックの読み出し方向および各単位ブロックを構成するバイトデータの読み出し方向が、裏面印字タイミングでは常時と逆になってイメージデータが実質上１８０°だけ回転されるので、メモリ容量を増加させることなく、画像データの回転を圧縮データの蓄積後からでも行えるようになる。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明を詳細に説明する。図１は本発明の印字用データ発生装置を適用したプリンタ制御装置の一実施形態のブロック図である。ネットワークインターフェース回路６は、オペレータ（ユーザ）との間で印字データおよびその属性データの送受信を行う。ユーザインターフェース（以下、ＵＩと表現する）制御回路９は、オペレータからのプリント指令の受付け、およびプリント情報のオペレータへの提供を行う。システムメモリ３は、当該システムのプログラム領域および画像メモリ領域として利用される。ハードディスク装置４には複数ページ分のイメージデータ（非圧縮データ）および圧縮されたイメージデータ（圧縮データ）が蓄積される。
【００１２】
圧縮／伸長回路７は、イメージデータの符号化による圧縮および圧縮データの復号化による伸長を行う。通信制御回路８はプリンタ５の動作を制御する。出力回路１０は、自身のデータバッファに単位量ごと蓄積されるイメージデータをプリンタ５の印字タイミングに同期して出力する。メインプロセッサ１は、ネットワークインターフェース回路６から転送される印字情報すなわちページ記述言語（以下、ＰＤＬ）、コピー部数、印字面（片面または両面）等にしたがってシステムメモリ３上にドットイメージを展開し、これを圧縮後にハードディスク装置４に記憶する。
【００１３】
図２は本発明の機能ブロック図ならびに表面印字時および裏面印字時の動作を模式的に表現した図である。圧縮手段７ａは前記圧縮／伸長回路７の一機能であり、前記システムメモリ３から読み出した１ページ分のビットマップデータＤを複数の単位ブロックＤ1 ，Ｄ2 ，…Ｄm ごとに符号化して圧縮し、それぞれ圧縮データｄ1 ，ｄ2 ，…ｄm として出力する。蓄積手段４ａは前記ハードディスク装置４の一機能であり、前記圧縮データｄ1 ，ｄ2 ，…ｄm を蓄積する。
【００１４】
第１の読出手段７ｃは前記圧縮／伸長回路７の一機能であり、前記蓄積手段４ａに蓄積された前記圧縮データｄ1 〜ｄm を、メインプロセッサ１からの指示等によって別途指定される表面印字および裏面印字のいずれかの指示に応じて、それぞれ正側すなわち圧縮データｄ1 側から、あるいは逆側すなわち圧縮データｄm 側からＤＭＡ転送によって読み出して当該順序で伸長手段７ｂへ出力する。
【００１５】
伸長手段７ｂも前記圧縮／伸長回路７の一機能であり、前記第１の読出手段７ｃによって順次読み出された圧縮データｄx を当該順序で復号化して伸長することで前記各圧縮データｄ1 〜ｄm を、それぞれ前記単位ブロックＤ1 〜Ｄm に復元する。データバッファ１０ａは前記出力回路１０の一機能であり、前記伸長手段７ｂによって復元された前記各単位ブロックＤ1 〜Ｄm を１ブロックづつ一時記憶する。
【００１６】
第２の読出手段１０ｂも前記出力回路１０の一機能であり、データバッファ１０ａに順次蓄積される前記各単位ブロックＤx を構成する各データｂ1 ，ｂ2 ，…ｂn を、別途指定される表面印字および裏面印字のいずれかの指示に応じて、図示したようにそれぞれ正方向に（たとえば、図中左側のデータｂ1 から）、あるいは逆方向に（たとえば、図中右側のデータｂn から）順次読み出して当該順序で出力する。印字部５ａは前記プリンタ５の一機能であり、前記第２の読出手段１０ｂによって順次読み出される各データｂx （ｂ1 〜ｂn またはｂn 〜ｂ1 ）を当該順序で印字出力する。この結果、片面印字モードおよび両面印字モードでの表面印字タイミングでは通常のイメージデータが印字出力され、両面印字モードでの裏面印字タイミングでは１８０°だけ回転したイメージデータが印字出力されるようになる。
【００１７】
以下、本実施形態の動作を詳細に説明する。図３は本発明の動作を示したフローチャートである。ステップＳ１では、複数ページ分のビットマップデータのうちの最初の１ページがシステムメモリ３上に展開される。ステップＳ２では、システムメモリ３に一時記憶された１ページ分のビットマップデータＤが圧縮手段７ａによって単位ブロックＤ1 ，Ｄ2 …Ｄm ごとに符号化圧縮され、それぞれ圧縮データｄ1 ，ｄ2 …ｄm として蓄積手段４ａに蓄積される。ステップＳ３では、１ページ分のビットマップデータの圧縮および蓄積が終了したか否がか判定され、全ての単位ブロックＤ1 〜Ｄm に関する符号化圧縮および蓄積が終了するとステップＳ４へ進む。
【００１８】
図４は、前記蓄積手段４ａに蓄積された前記１ページ分の圧縮データ列のデータ構造を模式的に表現した図であり、ここではビットマップデータＤの単位ブロックごとの圧縮がライン単位で行われる例を示している。すなわち、前記図２の圧縮データｄ1 ，ｄ2 …ｄm は、それぞれ図４の第１、２〜ｍライン圧縮データに相当する。
【００１９】
圧縮データ列の先頭には、当該データ列の最終アドレスを表すオフセット値として「最終ラインオフセットアドレス」が付加され、その後に各ラインごとの圧縮データが連結されている。また、各圧縮データの両端には当該圧縮データのバイトカウント（データサイズ）が付加されている。但し、最後の第ｍライン圧縮データについては、バイトカウントはその先端にのみ付加されており、後端には付加されていない。
【００２０】
再び図３のフローチャートへ戻り、ステップＳ４では印字モードが片面印字モードおよび両面印字モードのいずれであるかが判定され、片面印字モードが指示されているとステップＳ６へ進み、両面印字モードが指示されているとステップＳ５へ進む。ステップＳ５では、さらに両面印字モードの表面印字タイミングおよび裏面印字タイミングのいずれであるかが判定され、表面印字のタイミングであると前記片面印字モード時と同様にステップＳ６へ進み、裏面印字のタイミングであるとステップＳ７へ進む。
【００２１】
ステップＳ６では、図５に示したように、第１の読出手段７ｃは蓄積手段４ａに蓄積されているｍ個の第１〜ｍライン圧縮データを正側すなわち第１ライン圧縮データ側からＤＭＡ転送によって順次読み出し、当該順序で伸長手段７ｂへ転送する。これに対して裏面印字のステップＳ７では、図６に示したように、第１の読出手段７ｃはｍ個の第１〜ｍライン圧縮データを逆側すなわち第ｍライン圧縮データ側からＤＭＡ転送によって順次読み出し、当該順序で伸長手段７ｂへ転送する。
【００２２】
当該逆側からの読み出しは、前記図４に関して説明した各圧縮データの後端に付加された「バイトカウント」を参照することで高速かつ確実に行うことができる。たとえば、最終ラインの第ｍライン圧縮データに関する処理が終了したならば、当該第ｍライン圧縮データの直前に付加された自身の「バイトカウント」の前に付加された「バイトカウント」を読み取る。当該「バイトカウント」は第（ｍ−１）ライン圧縮データのデータ量を表しているので、現在位置から当該「バイトカウント」だけ戻ったアドレスが次に処理すべき第（ｍ−１）ライン圧縮データの先頭アドレスとなる。
【００２３】
以上のようにして読み出された各圧縮データは、ステップＳ８において単位ブロックごとに伸長されて前記データバッファ１０ａに蓄積される。ステップＳ９では、印字モードが片面印字モードおよび両面印字モードのいずれであるかが再び判定され、片面印字モードであるとステップＳ１１へ進み、両面印字モードであるとステップＳ１０へ進む。ステップＳ１０では、さらに両面印字モードの表面印字タイミングおよび裏面印字タイミングのいずれであるかが判定され、表面印字のタイミングであると前記片面印字モード時と同様にステップＳ１１へ進み、裏面印字のタイミングであるとステップＳ１１へ進む。
【００２４】
ステップＳ１１では、図８に示したように、第２の読出手段１０ｂはデータバッファ１０ａに蓄積されている１ライン分の圧縮データを構成するｎ個のバイトデータ１〜ｎを正側すなわちバイトデータ１側から順次読み出して当該順序で転送する。これに対して裏面印字のステップＳ１２では、図９に示したように、第２の読出手段１０ｂはバイトデータ１〜ｎを逆側すなわちバイトデータｎ側から順次読み出して当該順序で転送する。転送されたバイトデータ１〜ｎ（または、バイトデータｎ〜１）はステップＳ１３において印字出力される。
【００２５】
図７は前記第２の読出手段１０ｂを備えた前記出力回路１０の構成を示したブロック図であり、前記ステップＳ１１、Ｓ１２の各処理は図７のブロック図では以下のようにして実行される。
【００２６】
出力回路１０のラインカウンタ１０２には前記単位ブロック数ｍが登録され、ドットカウンタ１０３には前記バイトデータ数ｎが登録される。ラインカウンタ１０２のカウント値はプリンタ５から出力される垂直同期信号に同期して減ぜられる。したがって、１ページ分の処理が終了するとラインカウンタ１０２のカウント値は“０”になる。また、ドットカウンタ１０３のカウント値はプリンタ５から出力される水平同期信号に同期して減ぜられる。したがって、１ライン分の処理が終了するとドットカウンタ１０３のカウント値は“０”になる。ドットカウンタ１０３のカウント値が“０”になると、読み出し制御回路１０４はビジー信号の出力を停止して次のデータ入力に備える。
【００２７】
アドレスカウンタ１０１には、片面印字モードおよび両面印字モードでの表面印字タイミングにおいてアップカウントが指示されると共に初期値“０”がセットされる。これとは逆に、両面印字モードの裏面印字タイミングにはダウンカウントが指示されると共に初期値として前記ドットカウンタ１０３の初期値“ｎ”がセットされる。アドレスカウンタ１０１は、読み出し制御回路１０４から出力される読出タイミング信号に同期してアップカウントまたはダウンカウントする。データバッファ１０ａからはアドレスカウンタ１０１のカウント値で指示されるアドレスのバイトデータが出力されるので、上記したような正方向あるいは逆方向からの選択的な読み出しが可能になる。
【００２８】
なお、最終データがデータバッファ１０ａのデータ幅よりも短い場合には、出力ビット数変換回路１０ｃが最上位ビットの出力と最下位ビットの出力とを切り替えることでビット数の切り替を行う。
【００２９】
再び図３のフローチャートへ戻り、前記ステップＳ１３において１ライン分の印字出力が終了すると、ステップＳ１４では全ライン分の印字出力すなわち１ページ分の印字出力が終了したか否か判断され、終了していなければ前記ステップＳ４へ戻って上記した各処理を繰り返す。また、１ページ分の印字出力が終了していると、ステップＳ１５では次ページの有無が判定され、次ページが有れば前記ステップＳ１へ戻り、次ページに対して前記各処理が実行される。
【００３０】
【発明の効果】
上記したように、本発明によればビットマップデータを単位ブロックごとに圧縮して記憶すると共に、各単位ブロックの読み出し順序および各単位ブロックを構成するバイトデータの読み出し順序を、印刷モードが片面印字モードおよび両面印字モードのいずれであるか、および両面印字モードであれば表面印字タイミングおよび裏面印字タイミングのいずれであるかに応じて異ならせるようにしたので、メモリ容量を増加させることなく、画像データの回転を圧縮データの蓄積後からでも行えるようになる。
【図面の簡単な説明】
【図１】  本発明の印字用データ発生装置を適用したプリンタ制御装置の一実施形態のブロック図である。
【図２】  本発明の機能ブロック図である。
【図３】  本発明の動作を示したフローチャートである。
【図４】  １ページ分の圧縮データのデータ構造を表した図である。
【図５】  表面用の圧縮データの読出し方法を表わした図である。
【図６】  裏面用の圧縮データの読出し方法を表わした図である。
【図７】  出力回路１０の構成を示したブロック図である。
【図８】  表面用の各ラインのデータ読出し方法を表わした図である。
【図９】  裏面用の各ラインのデータ読出し方法を表わした図である。
【符号の説明】
１…メインプロセッサ，３…システムメモリ，４…ハードディスク装置，４ａ…蓄積手段，５…プリンタ，６…ネットワークインターフェース回路，７…圧縮／伸長回路，７ａ…圧縮手段，７ｂ…伸長手段，７ｃ…第１の読出手段，８…通信制御回路，９…ＵＩ制御回路，１０…出力回路，１０ａ…データバッファ，１０ｂ…第２の読出手段
【図１】
0003674644.tif 000002
【図２】
0003674644.tif 000003
【図３】
0003674644.tif 000004
【図４】
0003674644.tif 000005
【図５】
0003674644.tif 000006
【図６】
0003674644.tif 000007
【図７】
0003674644.tif 000008
【図８】
0003674644.tif 000009
【図９】
0003674644.tif 000010