(57)【特許請求の範囲】
【請求項１】
オブジェクト幅と描画開始ライン位置とに基づき描画開始位置を算出する算出手段と、
入力されるコードをバイト数に変換するコード変換手段と、
オブジェクトデータのスタートアドレスに前記コード変換手段により変換された入力されたコードのバイト数を加算することにより加算値を求め、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求める加算手段と、
前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較する比較手段と、
前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より大きい場合、前記コード変換手段に入力されたコードのアドレスと、前記算出手段により算出された描画開始位置の値から前記コード変換手段に入力されたコードの一つ前のアドレスのコードまでの加算値を減算した残バイト数とをラッチし、ラッチされたアドレスからデコード処理を開始し、デコードされたデータの残バイト数目から描画データとして出力する出力手段とを有し、
前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より小さい場合、前記コード変換手段は次に入力されたコードをバイト数に変換し、前記加算手段は、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求め、前記比較手段は、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較することを特徴とする画像形成装置。
【請求項２】
オブジェクト幅と描画開始ライン位置とに基づき描画開始位置を算出する算出手段と、入力されるコードをバイト数に変換するコード変換手段と、オブジェクトデータのスタートアドレスに前記コード変換手段により変換された入力されたコードのバイト数を加算することにより加算値を求め、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求める加算手段と、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較する比較手段とを有する画像形成装置で実行される画像形成方法であって、
前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より大きい場合、前記コード変換手段に入力されたコードのアドレスと前記算出手段により算出された描画開始位置の値から前記コード変換手段に入力されたコードの一つ前のアドレスのコードまでの加算値を減算した残バイト数とをラッチし、ラッチされたアドレスからデコード処理を開始し、デコードされたデータの残バイト数目から描画データとして出力し、
前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より小さい場合、前記コード変換手段は、次に入力されたコードをバイト数に変換し、前記加算手段は、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求め、前記比較手段は、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較することを特徴とする画像形成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像形成装置および画像形成方法に関し、より具体的には、パックビッツ圧縮されたイメージデータ等の、圧縮によりエンコードされたオブジェクトデータに基づいて描画を行う画像形成装置および画像形成方法に関する。
【０００２】
【従来の技術】
従来、プリンタにおけるメモリの容量不足に対処するため、あるいは、ホストコンピュータで作成されたデータのプリンタヘの送信量を少なくするために、種々のデータ圧縮の方式が用いられてきた。そのデータ圧縮の方式の１つとして、例えば所定数ビットを１単位としてデータ圧縮を行うパックビッツ（ＰａｃｋＢｉｔｓ）圧縮が存在する。例えば、バイト単位で同種データ並びおよび異種データ並びの繰り返し回数をコード化してデータ圧縮を行うバイトランレングス符号化圧縮方法がこれに該当する。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記のパックビッツ圧縮されたオブジェクトデータを描画する際には、このオブジェクトデータを先頭から伸張していかなければならない。例えば、図２に示すように、伸張後の構造が２５６バイト×１０ラインのイメージデータを描画する場合を考える。１ＣＬＫ／１Ｂｙｔｅ処理のとき、同図に示すデータの３ライン目が描画開始位置である場合、このイメージデータを圧縮したオブジェクトデータに基づいて描画を行うとすれば、描画開始位置までデコードするのに２５６バイト×２ライン＝５１２クロック必要となる。
【０００４】
このように、圧縮されたオブジェクトデータの描画を行う際、描画開始までに時間がかかってしまうという問題があった。
【０００５】
本発明は、このような問題に鑑みてなされたものであり、その目的とするところは、描画スキップを行うことにより、圧縮されたオブジェクトデータの描画の高速化を図ることが可能な画像形成装置および画像形成方法を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る画像形成装置は、オブジェクト幅と描画開始ライン位置とに基づき描画開始位置を算出する算出手段と、入力されるコードをバイト数に変換するコード変換手段と、オブジェクトデータのスタートアドレスに前記コード変換手段により変換された入力されたコードのバイト数を加算することにより加算値を求め、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求める加算手段と、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較する比較手段と、前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より大きい場合、前記コード変換手段に入力されたコードのアドレスと前記算出手段により算出された描画開始位置の値から前記コード変換手段に入力されたコードの一つ前のアドレスのコードまでの加算値を減算した残バイト数とをラッチし、ラッチされたアドレスからデコード処理を開始し、デコードされたデータの残バイト数目から描画データとして出力する出力手段とを有し、前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より小さい場合、前記コード変換手段は次に入力されたコードをバイト数に変換し、前記加算手段は、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求め、前記比較手段は、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較する。
【０００７】
また、本発明に係る画像形成方法は、オブジェクト幅と描画開始ライン位置とに基づき描画開始位置を算出する算出手段と、入力されるコードをバイト数に変換するコード変換手段と、オブジェクトデータのスタートアドレスに前記コード変換手段により変換された入力されたコードのバイト数を加算することにより加算値を求め、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求める加算手段と、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較する比較手段とを有する画像形成装置で実行される画像形成方法であって、前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より大きい場合、前記コード変換手段に入力されたコードのアドレスと前記算出手段により算出された描画開始位置の値から前記コード変換手段に入力されたコードの一つ前のアドレスのコードまでの加算値を減算した残バイト数とをラッチし、ラッチされたアドレスからデコード処理を開始し、デコードされたデータの残バイト数目から描画データとして出力し、前記比較手段による比較の結果、前記加算手段により求められた加算値が前記算出手段により算出された描画開始位置の値より小さい場合、前記コード変換手段は、次に入力されたコードをバイト数に変換し、前記加算手段は、求められた加算値に前記コード変換手段により変換された次に入力されたコードのバイト数を加算することにより加算値を求め、前記比較手段は、前記加算手段により求められた加算値と前記算出手段により算出された描画開始位置とを比較する。
【００２１】
本発明では、パックビッツ圧縮イメージデータオブジェクトのスタートアドレスを設定するオブジェクトスタートアドレス設定レジスタ１０１、オブジェクトの幅を設定するオブジェクト幅設定レジスタ１０２、スキップするライン数を設定するスキップライン数設定レジスタ１０３、上記設定された値からスキップするバイト数を算出する乗算器１０４、パックビッツコード部分のアドレスＬＴＯＰを出力する加算器１２１、およびパックビッツコードから算出したバイト数とスキップするバイト数とを比較するマグニチュードコンパレータ１０７を備えた構成とする。これにより、パックビッツ圧縮されたイメージデータのパックビッツコード部分のみを解析することにより無駄なデコード処理をなくすことができる。
【００２２】
【発明の実施の形態】
以下、図面を参照し、本発明の実施の形態について詳細に説明する。
【００２３】
図１は、本発明を適用した画像形成装置の機能構成の一例を概略的に示すブロック図であり、本出願の発明の特徴を最もよく表わすものである。同図において、オブジェクトスタートアドレス設定レジスタ１０１にはパックビッツ圧縮されたブジェクトデータのメモリ上でのスタートアドレスが設定される。オブジェクト幅設定レジスタ１０２には、デコード（伸張）後のオブジェクトデータの幅が設定される。スキップライン数設定レジスタ１０３には、スキップする伸張後のオブジェクトデータのライン数Ｏｆｆｓｅｔ  Ｙが設定される。乗算器１０４は、オブジェクト幅と描画スキップライン数との乗算を行って、スキップするオブジェクトデータのバイト数を算出する。
【００２４】
ＬＴＯＰ１０５は加算器１２１からの出力値である。このＬＴＯＰ１０５は、オブジェクトデータが圧縮されていないイメージデータである場合に、オブジェクト幅およびスキップライン数に基づいて、伸張後のオブジェクトデータ上の描画開始位置になるアドレスを算出したときの値である。
【００２５】
コード変換器１０６は、パックビッツ圧縮されたオブジェクトデータに含まれている、コード並びの繰り返し数を示す制御コード（パックビッツコード）を、デコード時のバイト数（ｎ）に変換する。マグニチュードコンパレータ（ＭＣＰ）１０７は、ＬＴＯＰ１０５とバイト数（ｎ）とを比較して、バイト数（ｎ）が大きい場合に“Ｈ”を出力する。減算器１０８は、ＬＴＯＰ１０５からバイト数（ｎ−１）を減算する。
【００２６】
ＣＯＤＥ（ｎ）１０９は、パックビッツコードの入力を表している。ＡＤＲ（ｎ）１１０およびＡＤＲ（ｎ−１）１１１は、制御コード位置判別部１２２からの出力である。このうち、ＡＤＲ（ｎ）１１０はパックビッツコードの位置を示すアドレスであり、このアドレスに基づいて入力されて来るデータがＣＯＤＥ（ｎ）１０９である。また、ＡＤＲ（ｎ−１）１１１はＡＤＲ（ｎ）１１０により示されるアドレスの前状態のアドレスである。残バイト数１１２は、減算器１０８により算出された値である。
【００２７】
出力Ａ１１３は、マグニチュードコンパレータ１０７から出力されるＬＴＯＰ１０５とバイト数（ｎ）とのコンパレート結果である。出力Ｂ１１４は、マグニチュードコンパレータ１０７から出力されるＬＴＯＰ１０５とバイト数（ｎ−１）とのコンパレート結果である。
【００２８】
ＣＯＤＥ変換器２  １１５は、パックビッツ圧縮されたオブジェクトデータ上のカレントパックビッツコードを基準として次のパックビッツコードの位置を算出する。このＣＯＤＥ変換器２  １１５からの算出値により、圧縮されたオブジェクト内で、カレントパックビッツコードから次のパックビッツコードへ遷移することが可能となる。パックビッツコードＣＯＤＥ（ｎ）１０９として８１ｈ〜ＦＦｈが入力された場合、ＣＯＤＥ変換器２  １１５は２を出力する。また、ＣＯＤＥ（ｎ）１０９として００ｈ〜７Ｆｈが入力された場合は、ＣＯＤＥ（ｎ）＋２を出力する。
【００２９】
図２は、パックビッツ圧縮されたオブジェクトデータのデコード後の構造の一例を概略的に示す図である。本実施形態において使用されるデータは、オブジェクト幅が２５６バイト、高さが１０ラインのイメージデータである。
【００３０】
同図における２ラインとは、スタートアドレスから前記描画開始位置までのライン数を表しており、ＬＴＯＰとは描画を開始する位置を表している。従って、オブジェクトデータの先頭アドレスは４００００ｈであり、描画開始位置のアドレスは４０２００ｈである。
【００３１】
図３は、図２に示したパックビッツ圧縮されたオブジェクトデータの内容を表す図である。同図におけるデータ中、下線が引いてある部分は、パックビッツコードを示している。コードＮｏは、圧縮されたオブジェクトデータ中の何個目のパックビッツコードであるかを示している。ここで、コードＮｏ．８およびＮｏ．９の間の線は、９個目のパックビッツコードに対応するコードから有効描画範囲に入ることを表している。すなわち、コードＮｏ．９のパックビッツコードにより指定されたバイト数分繰り返されるコード並びの中に、描画開始位置が含まれている。同図に示す例では、コードＮｏ，９に対応するデータの９４バイト目が描画開始位置である。
【００３２】
図４は、本実施形態に係る画像形成装置が実行する画像形成処理のタイミングチャートである。同図において、縦線の区切り１つが１クロックに相当する。
【００３３】
以下、図３に示すオブジェクトデータを描画する場合を例に挙げて説明する。パックビッツ圧縮されたオブジェクトデータのスタートアドレスは４００００ｈであり、かつオブジェクト幅が２５６（１００ｈ）バイトである。また、高さは１０ライン、描画開始ライン位置（Ｏｆｆｓｅｔ  Ｙ）は２ラインである。この場合、オブジェクトスタートアドレス設定レジスタ１０１にはオブジェクトスタートアドレスとして４００００ｈが設定され、オブジェクト幅設定レジスタ１０２にはオブジェクト幅として１００ｈが設定される。また、スキップライン数設定レジスタ１０３には、Ｏｆｆｓｅｔ  Ｙとして２ｈが設定される。
【００３４】
このようにして、圧縮されたオブジェクトデータのスタートアドレスを設定し、伸張後のオブジェクトデータの描画開始位置を設定する処理が実現される。また、描画開始位置を設定する際に、伸張後のオブジェクトデータのオブジェクト幅を設定し、スタートアドレスから描画開始位置までのライン数を設定する処理が実現される。
【００３５】
従って、スキップするバイト数は２５６バイト×２ラインで計５１２（２００ｈ）バイトであるから、乗算器１０４からの出力は２００ｈとなる。この値にオブジェクトスタートアドレス設定レジスタ１０１に設定されたオブジェクトスタートアドレスである４００００ｈを加算することによりＬＴＯＰ値となるので、加算器１２１からの出力であるＬＴＯＰは４０２００ｈとなる。このようにして、描画開始位置が、オブジェクト幅およびライン数に基づいて算出される。
【００３６】
次に、描画がスタートされると、ＡＤＲ（ｎ）１１０が出力される。ここで出力される値は、オブジェクトスタートアドレス設定レジスタ１０１にオブジェクトスタートアドレスとして設定されたアドレス４００００ｈである。これにより、ＣＯＤＥ（ｎ）１０９に図３のコードＮｏ．１に対応するパックビッツコード「８１ｈ」が入力される。すると、ＣＯＤＥ変換器１０６によるコード変換後の値Ｎｕｍは１２８（８０ｈ）となるので、バイト数（ｎ）は４００８０ｈとなる。この値はＬＴＯＰ値より小さいので、マグニチュードコンパレータ１０７からの出力Ａは“ＬＴＯＰ”のままである。また、ＣＯＤＥ変換器２  １１５から出力される、カレントパックビッツコードから次のパックビッツコードまでのバイト数Ｎｕｍは２となり、コード変換後のアドレスＡＤＲ（ｎ）１１０は４０００２ｈとなる。従って、次クロックにおいて、コードＮｏ．２に対応する次のパックビッツコード「０２ｈ」がＣＯＤＥ変換器１０６およびＣＯＤＥ変換器２  １１５に入力されて来る。
【００３７】
次いで、上記と同様の処理が行われ、バイト数（ｎ）は４００８３ｈとなり、ＡＤＲ（ｎ）１１０は４０００６ｈとなる。
【００３８】
以上のような処理が繰り返された後、コードＮｏ．８まで処理が進むとＡＤＲ（ｎ）１１０が４００１Ｄｈとなり、バイト数（ｎ）は４０１Ａ３ｈとなる。次クロックにおいて、ＡＤＲ（ｎ）１１０にて指定されたコードＮｏ．９に対応するパックビッツコード「８１ｈ」が入力されると、バイト数（ｎ）が４０２２３ｈとなり、ＬＴＯＰ値（＝４０２００ｈ）よりも大きくなる。このとき、出力Ａが“Ｈ”、出力Ｂが“Ｌ”となり、このタイミングにてＡＤＲ（ｎ−１）１１１と残バイト数１１２をラッチしておく。
【００３９】
このようにしてラッチされたＡＤＲ（ｎ−１）１１１のアドレスが、描画開始位置（ＬＴＯＰ）のデータを含んでいるパックビッツコードの位置である。従って、このラッチ処理により、設定されたスタートアドレスに基づいて、設定された描画開始位置に対応する、圧縮されたオブジェクトデータ内の制御コードの位置を判別する処理が実現される。
【００４０】
また、残バイト数１１２は判別された制御コードの位置から描画開始位置までのバイト数を示し、そのパックビッツコードにより指定されたコート並びのうちの何バイト目からが有効な描画データであるかを示すポインタとなる。
【００４１】
つまり、本実施形態において、パックビッツ圧縮されたオブジェクトデータを印刷する場合、図３の例に示すパックビッツコードのアドレス４００１Ｄｈからデコード処理を開始する。これにより、そのデコードされたバイト数の９４バイト目から描画データとして出力されることになる。
【００４２】
従って、従来はパックビッツ圧縮されたオブジェクトデータを描画開始位置までデコードするのに５１２クロックがかかっていたのに対し、本実施形態に係る画像形成方法によれば、同じデータについて９４＋９クロック程度で描画を開始することができる。結果として、より高速にイメージデータの印刷を行うことが可能となる。
【００４３】
以上、本発明の好適な実施の形態について説明したが、本発明は上述の実施の形態に限定されず、他の種々の形態でも実施可能であることはいうまでもない。
【００４４】
なお、本発明は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００４５】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４６】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、光ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００４７】
また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【００４８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【００４９】
本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体からそのプログラムをパソコン通信など通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。
【００５０】
【発明の効果】
以上説明したように本発明によれば、オブジェクト幅と描画開始ライン位置とに基づき描画開始位置を算出し、入力されるコードをバイト数に変換し、オブジェクトデータのスタートアドレスに変換された入力されたコードのバイト数を加算することにより加算値を求め、求められた加算値に変換された次に入力されたコードのバイト数を加算することにより加算値を求め、求められた加算値と算出された描画開始位置とを比較し、比較の結果、求められた加算値が算出された描画開始位置の値より大きい場合、入力されたコードのアドレスと算出された描画開始位置の値から入力されたコードの一つ前のアドレスのコードまでの加算値を減算した残バイト数とをラッチし、ラッチされたアドレスからデコード処理を開始し、デコードされたデータの残バイト数目から描画データとして出力し、求められた加算値が算出された描画開始位置の値より小さい場合、コード変換の際に次に入力されたコードをバイト数に変換し、加算の際に求められた加算値に変換された次に入力されたコードのバイト数を加算することにより加算値を求め、比較の際に求められた加算値と算出された描画開始位置とを比較するので、パックビッツ圧縮されたイメージデータのラインスキップを行う際に、スキップされるラインのデコード処理を行わずに済むことになる。結果として、高速な描画処理が可能となる。
【図面の簡単な説明】
【図１】本発明を適用した画像形成装置の機能構成の一例を概略的に示すブロック図である。
【図２】パックビッツ圧縮されたオブジェクトデータのデコード後の構造の一例を概略的に示す図である。
【図３】図２に示したパックビッツ圧縮されたオブジェクトデータの内容を表す図である。
【図４】本発明の実施形態に係る画像形成装置が実行する画像形成処理のタイミングチャートである。
【符号の説明】
１０１  オブジェクトスタートアドレス設定レジスタ
１０２  オブジェクト幅設定レジスタ
１０３  スキップライン数設定レジスタ（Ｏｆｆｓｅｔ  Ｙ）
１０４  乗算器（スキップバイト数計算）
１０５  ＬＴＯＰ
１０６  ＣＯＤＥ変換器
１０７  コンパレータ
１０８  減算器
１０９  パックビッツコード
１１０  パックビッツコード位置アドレス（ｎ）
１１１  パックビッツコード位置アドレス（ｎ−１）
１１２  残バイト数
１１３  出力Ａ
１１４  出力Ｂ
１１５  ＣＯＤＥ変換器２
１２１  加算器
１２２  制御コード位置判別部
【図１】
0003870101.tif 000002
【図２】
0003870101.tif 000003
【図３】
0003870101.tif 000004
【図４】
0003870101.tif 000005