(57)【要約】【課題】  ライン単位に左マージン設定の変更と空白情報の転送とを可能とする構成においても、パックビッツ展開をブロック単位にハードウェアで高速に行う。従来ライン単位にパックビッツ解凍を行っており展開処理が遅かった。【解決手段】  ラスタデータ受信では、パックビッツ圧縮された左余白データと圧縮ラスタデータと行端コードを圧縮バッファに書き込み、空白ラスタ受信では空白ラインデータを圧縮バッファに書き込み、これらを複数ラインまとめて解凍ハードウェアに処理させる。解凍ハードウェアは行末コードを読込むと現ライン末端まで空白を展開したあと次ラインの解凍にうつる。【選択図】  図２
2006168102.tif 000002
【特許請求の範囲】
【請求項１】
ランレングス圧縮されたラインデータを含むラスタデータコマンドとラスタ開始位置移動コマンドとを受信して展開記録する記録装置であって、上位装置で生成されたコマンドとデータのストリームを受信するインタフェースと、圧縮されたままの複数のラインデータを格納する圧縮バッファと、空白データ追加装置と、ライン終端データ追加装置と、空白行データ追加装置と、前記インタフェースから受信されたストリームを解析して前記圧縮バッファにデータを書き込むデータ展開装置と、解凍された複数のラインデータを格納する解凍バッファと、解凍バッファのライン長を設定するライン長設定装置と、前記圧縮バッファの複数ラインのデータを読み込んでランレングス解凍しながら前記解凍バッファに書き込むデータ解凍装置とを具備し、
前記データ解凍装置はライン終端データが入力されると前記ライン長設定装置で設定された解凍バッファの現ライン終端まで０を書き込むように構成され、
前記データ展開装置は、ラスタデータコマンドを受信すると以下の（工程１−１）乃至（工程１−２）を順次実行してデータを展開し、ラスタ開始位置移動コマンドを受信すると以下の（工程２−１）乃至（工程２−４）を順次実行してデータを展開するように構成されることを特徴とする記録装置。
（工程１−１）左マージン位置から水平開始位置までの空白をランレングス圧縮されたデータとして生成し圧縮バッファに書き込み、その直後の位置から１ライン分の圧縮データを受信して書き込み、受信と書き込みが終わった後にライン終端データを追加し、垂直位置に１加算する。
（工程１−２）未解凍ライン数があらかじめ定められた値に到達したら前記データ解凍装置に複数ラインを解凍させる。
（工程２−１）水平開始位置を新規水平開始位置に更新する。
（工程２−２）垂直位置が新規垂直位置と一致するまで、下記（工程２−３）乃至（工程２−４）を順次繰り返す。
（工程２−３）空白行データを圧縮バッファに書き込み、垂直位置に１加算する。
（工程２−４）未解凍ライン数があらかじめ定められた値に到達したら前記データ解凍装置に複数ラインを解凍させる。
【請求項２】
前記請求項１に記載のランレングス圧縮方法は、ＴＩＦＦ−Ｐａｃｋｂｉｔｓであり、前記請求項１に記載のライン終端データおよび空白行データは０ｘ８０であることを特徴とする前記請求項１に記載の記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータを受信して記録する記録装置、より詳しくはラスタ単位に圧縮された記録データをバッファに展開する記録制御装置に関する。
【背景技術】
【０００２】
ホストコンピュータで生成された記録データを受信して被記録媒体上に記録する記録装置は、記録データ形式の観点からページ記述言語ないしラスタ形式に大別される。ラスタ形式はホストコンピュータでラスタライズを行うので印刷装置に要求されるリソースが少なく比較的低コストな機器で多く用いられる。しかし、ラスタライズされているが故にデータ量が増大しがちであるので実用上はデータ圧縮が必須である。
【０００３】
代表的な圧縮方法としてはランレングス圧縮がある。これは、繰り返し回数を示すタグとデータそのものとの組でデータ列を表記したものであり、データ圧縮に要する計算コストが低くハードウェア化も容易、二値画像に対しての圧縮率が比較的良好、といった特徴があるためラスタ形式の記録装置に好適である。その中でもバイト単位で圧縮を行う方式としてＴＩＦＦ−Ｐａｃｋｂｉｔｓがよく知られている。これは、連続データでは  ＜‘（１−繰り返し回数）’，‘データ’＞の組を送り、非連続データでは  ＜‘（データ数−１）’，‘非圧縮データ列’＞の組を送るものである。繰り返し回数とデータ数は１２８以下と定義されているので、１２８（０ｘ８０）がタグに現れることがないという特徴がある。
【０００４】
一般に、圧縮データの解凍はその速度が印刷パフォーマンスに重大な影響を与えるので、ソフトウェアの介在を出来るだけ少なくするべくハードウェアで複数ラインまとめて行うことが望ましい。通常、ハードウェアによる解凍では処理ライン数があらかじめ決められており、そのライン数分の圧縮データは一気に処理しなければならない。従って、左右の余白と空白行も、展開後にバッファを塗りつぶすようにデータに含めてランレングス圧縮されていなければならない。また、多色データを展開する場合には面順次処理となるので、処理単位ライン数毎にデータをブロック化しなければならない。
【０００５】
特許文献１には色の切り替えを自動で行うようにした構成が開示されている。図３はこの構成でのデータ転送形式を表した模式図であり、Ｒ３０１、Ｒ３０２で示されるようにハードウェア制約に合わせた高さで空白も含めた形で圧縮データがブロック単位に生成されている。そのため、空白のデータに対してもホストコンピュータでの描画−データ圧縮−転送−データ解凍を行っておりシステム全体のオーバヘッドを増大させていた。また、ホストコンピュータ側のプリンタドライバが印刷装置のハードウェア制約を考慮しなければならず、異なるプラットフォーム上での相互運用性上好ましくないという問題もある。
【０００６】
特許文献２には、ランレングス圧縮コードを拡張して右側余白と空白行などのデータ転送量を削減する構成が開示されている。しかし、ライン単位の処理を前提としていること及び左余白のデータは必ず転送しなければならない点から更なるオーバヘッドの削減が必要である。
【０００７】
転送データ量を最小化するために、ライン単位に左マージン設定の変更を可能とする構成が知られており、これはライン単位の圧縮データ転送コマンドと、ラスタ開始位置移動コマンドを含む。例えば、ＨＰ−ＲＴＬ（ヒューレットパッカード社ラスタ転送言語）が知られている。図４はこの構成でのデータ転送形式を表した模式図であり、描画オブジェクトＲ４０１、Ｒ４０２、Ｒ４０３単位でラスタ開始位置を移動して圧縮ラスタを転送しているため、ラスタ形式ではこれ以上転送データ量を減らすことは出来ない。
【特許文献１】特開２００３‐３００３４５号公報
【特許文献２】特開平８‐３００７４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記従来例では、ライン毎に左マージンの変更を可能にしているため、展開バッファに左余白を書き込んだ後にパックビッツ解凍を行うという手順がライン単位で必要になる。そのためソフトウェアの介在が多くなって印刷速度が低下するという問題点があった。
【０００９】
本発明の目的は、柔軟かつ高速な印刷装置を提供することにあり、ランレングス解凍ハードウェアを複雑化することなくデータ解凍速度を最大化するように制御することを特徴とする。
【課題を解決するための手段】
【００１０】
本発明は、ランレングス圧縮されたラインデータを含むラスタデータコマンドとラスタ開始位置移動コマンドとを受信して展開記録する記録装置であって、上位装置で生成されたコマンドとデータのストリームを受信するインタフェースと、圧縮されたままの複数のラインデータを格納する圧縮バッファと、空白データ追加装置と、ライン終端データ追加装置と、空白行データ追加装置と、前記インタフェースから受信されたストリームを解析して前記圧縮バッファにデータを書き込むデータ展開装置と、解凍された複数のラインデータを格納する解凍バッファと、解凍バッファのライン長を設定するライン長設定装置と、前記圧縮バッファの複数ラインのデータを読み込んでランレングス解凍しながら前記解凍バッファに書き込むデータ解凍装置とを具備し、前記データ解凍装置はライン終端データが入力されると前記ライン長設定装置で設定された解凍バッファの現ライン終端まで０を書き込むように構成され、前記データ展開装置は、ラスタデータコマンドを受信すると以下の（工程１−１）乃至（工程１−２）を順次実行してデータを展開し、ラスタ開始位置移動コマンドを受信すると以下の（工程２−１）乃至（工程２−４）を順次実行してデータを展開するように構成されることを特徴とする。
【００１１】
（工程１−１）左マージン位置から水平開始位置までの空白をランレングス圧縮されたデータとして生成し圧縮バッファに書き込み、その直後の位置から１ライン分の圧縮データを受信して書き込み、受信と書き込みが終わった後にライン終端データを追加し、垂直位置に１加算する。
【００１２】
（工程１−２）未解凍ライン数があらかじめ定められた値に到達したら前記データ解凍装置に複数ラインを解凍させる。
【００１３】
（工程２−１）水平開始位置を新規水平開始位置に更新する。
【００１４】
（工程２−２）垂直位置が新規垂直位置と一致するまで、下記（工程２−３）乃至（工程２−４）を順次繰り返す。
【００１５】
（工程２−３）空白行データを圧縮バッファに書き込み、垂直位置に１加算する。
【００１６】
（工程２−４）未解凍ライン数があらかじめ定められた値に到達したら前記データ解凍装置に複数ラインを解凍させる。
【００１７】
また、本発明の第二の記録装置は、ランレングス圧縮方法がＴＩＦＦ−Ｐａｃｋｂｉｔｓであり、ライン終端データおよび空白行データは０ｘ８０であることを特徴とする。
【発明の効果】
【００１８】
本発明の第一の記録装置によれば、左マージン及びライン長さがライン毎に異なるランレングス圧縮データであっても左右余白及び途中の空白ラインも含めてハードウェアにより複数ライン展開可能となるため、データ生成を行う上位装置に対する制約の最小化、転送データ量の最小化、印刷装置でのデータ解凍速度の最大化を実現することが出来る。
【００１９】
また本発明の第二の記録装置によれば、ランレングス圧縮方法としてＴＩＦＦ−Ｐａｃｋｂｉｔｓを用いているので、未定義の０ｘ８０を終端データとして用いることが出来、好適である。
【発明を実施するための最良の形態】
【００２０】
以下図面を参照して説明する。
【００２１】
図１は本発明による印刷装置の代表的な構成を表すブロック図である。同図において符号１はデータ生成する上位装置、符号２は上位装置１から転送されたデータを一時的に格納する受信バッファである。受信バッファ２はリングバッファ構成が好適である。符号３はデータ展開装置でありＣＰＵ３１とＤＭＡ装置３２から構成されている。符号４はランレングス圧縮データを格納する圧縮バッファ、符号５はランレングス解凍を行う解凍ハードウェア、符号６は解凍されたデータを格納する展開バッファ、符号７は展開バッファ６のデータを不図示の被記録媒体上に記録する記録ヘッドである。ここで、ランレングス圧縮方法はＰａｃｋｂｉｔｓ形式である。
【００２２】
図２はデータ展開装置３の動作を説明するフローチャートである。まず、ＣＰＵ３１が受信バッファ２からコマンドを読込む。コマンドがラスタデータコマンドであればＳ１０１からの手順を実行する。ラスタデータコマンドでは圧縮されたデータのバイト長と圧縮されたデータそのものが転送される。ＣＰＵ３１は、左余白長に相当する空白データをＰａｃｋｂｉｔｓ圧縮したデータを圧縮バッファ４に書き込み、次回の書き込みに備えて書き込み位置を更新する（Ｓ１０２）。ここで圧縮された空白は、＜‘（１−空白数）’，‘０’＞  となるが、空白数が１２８より大きい場合は複数の空白に分割することになる。例えば展開バッファ６が１２００ｄｐｉの解像度で８インチ幅であったとすると圧縮された空白データのバイト数は最大でも、
【００２３】
【数１】
2006168102.tif 000003
となる。次に受信バッファ２に格納されている圧縮データをＤＭＡ装置３２によって圧縮バッファ４に転送し、書き込み位置を更新する（Ｓ１０３）。転送バイト数はコマンドパラメータで示されるバイト数に等しい。次に、行末コードを書き込んで、可能なら解凍ハードウェア５を起動する（Ｓ１０４）。これは以下のＳ１００１〜Ｓ１００４の手順による。まず、行末コード０ｘ８０を圧縮バッファ４に書き込んで、書き込み位置を更新する（Ｓ１００１）。次に垂直位置と未処理ラスタ数を更新する（Ｓ１００２）。もし未処理ラスタ数が解凍ハードウェア５の処理ラスタ数に達していなければ何もしない（Ｓ１００３）。そうでなければ解凍ハードウェア５を起動して未処理ラスタを解凍しながら展開バッファ６に書き込んだ後に未処理ラスタ数を０にする（Ｓ１００４）。一方コマンドがラスタ位置移動コマンドであるとＳ２０１からの手順を実行する。ラスタ位置移動コマンドでは新規水平位置、新規垂直位置が転送される。まず、記憶している水平位置を新規水平位置に更新する（Ｓ２０２）。次に記憶している垂直位置が新規垂直位置に等しくなるまでＳ２０４の手順を繰り返し空白行の展開を行う。Ｓ２０４の手順はＳ１０４の手順と全く同一である。
【００２４】
以上の手順により、解凍ハードウェア５をブロック単位で起動してデータ展開しながらも圧縮バッファ４に対するＣＰＵ３１の書き込みデータ量は最小限に抑えられるので、総合的なオーバヘッドを最小限にして高速な記録装置が実現できる。
【００２５】
上記説明では、マイクロプロセッサとプログラムによってデータ展開装置を構成するとしたが、データ展開装置はハードウェア化してもよく、その場合はより一層の高速化が達成できることは言うまでもない。
【図面の簡単な説明】
【００２６】
【図１】本発明の代表的な構成を表すブロック図である。
【図２】本発明のデータ展開装置の動作を説明するフローチャートである。
【図３】従来の印刷装置の印刷データ形式を説明する図である。
【図４】本発明の印刷装置の印刷データ形式を説明する図である。
【符号の説明】
【００２７】
１  データ生成上位装置
２  受信バッファ
３  データ展開装置
３１  CPU
３２  DMA装置
４  圧縮バッファ
５  解凍ハードウェア
６  展開バッファ
７  記録ヘッド
【図１】
2006168102.tif 000004
【図２】
2006168102.tif 000005
【図３】
2006168102.tif 000006
【図４】
2006168102.tif 000007