(57)【要約】【課題】大きなメモリ容量が不要な画像データ送信を可能にする。【解決手段】バンド番号と図形番号を初期化した後、バンド番号ｊが図形ｉの最初のバンドと最後のバンドの間にあるかどうかをチェック（Ｓ４０３）し、間になければ図形の番号をインクリメントしてバンド番号ｊが図形ｉの最初のバンドと最後のバンドの間になった時点（Ｓ４０３−Ｙ）で最初のバンド番号がｊであるかどうかをチェックする（Ｓ４０５）。このチェックでバンド番号がｊでなければ図形ｉのｊ番目のメモリ領域から図形ｉの圧縮済みスキャンラインデータを読み込み（Ｓ４０６）、プリンタ側に出力し（Ｓ４０７）、読み込んだメモリ領域（ｉ，ｊ）を開放し（ステップ４０８）、バンド番号がｊであれば、スキャンライン化処理を実行し（Ｓ４０９）、これらの処理を同一バンド番号の図形全てのスキャンラインデータに対して実行し、さらに、全バンド数実行する。【選択図】図８
2006259884.tif 000002
【特許請求の範囲】
【請求項１】
図形をラインごとにスキャンし、スキャンラインデータを得るスキャンライン化手段と、
前記スキャンライン化手段により得られた前記スキャンラインデータをバンドごとに圧縮する圧縮手段と、
前記圧縮手段により圧縮されたデータをバンドごとに保持する記憶手段と、
前記記憶手段に保持されている圧縮データをバンドごとに読み出して出力する出力手段と、
を備えていることを特徴とするプリンタドライバ。
【請求項２】
前記スキャンライン化手段は、入力された各図形について、その図形が表れる最初のバンドの処理時に前記図形全体をスキャンライン化することを特徴とする請求項１記載のプリンタドライバ。
【請求項３】
前記出力手段は、各バンドの出力処理時に前記圧縮されたスキャンラインデータを前記記憶手段から読み込んで出力した後、前記記憶手段を開放することを特徴とする請求項１または２記載のプリンタドライバ。
【請求項４】
請求項１ないし３のいずれか１項に記載のプリンタドライバを備えていることを特徴とする画像処理装置。
【請求項５】
図形をラインごとにスキャンし、スキャンラインデータを得る第１の手順と、
前記第１の手順により得られた前記スキャンラインデータをバンドごとに圧縮する第２の手順と、
前記第２の手順により圧縮されたデータをバンドごとに保持する第３の手順と、
前記第３の手順で保持した圧縮データをバンドごとに読み出して出力する第４の手順と、
を備え、コンピュータによって読み込まれ実行されるコンピュータプログラム。
【請求項６】
前記第１の手順で入力された各図形について、その図形が表れる最初のバンドの処理時に前記図形全体をスキャンライン化することを特徴とする請求項５記載のコンピュータプログラム。
【請求項７】
前記第４の手順で各バンドの出力処理時に前記圧縮されたスキャンラインデータを前記記憶手段から読み込んで出力した後、前記記憶手段を開放することを特徴とする請求項５または６記載のコンピュータプログラム。
【請求項８】
請求項５ないし７のいずれか１項に記載のコンピュータプログラムがコンピュータによって読み込まれ、実行可能に記憶された記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は図形をライン毎にスキャンし、スキャンラインデータを得るためのプリンタドライバ、このプリンタドライバを備えた情報処理装置、前記プリンタドライバを実現するためのコンピュータプログラム、及びこのコンピュータプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
この種の技術として例えば特許文献１記載の発明が知られている。この発明は、回転／クリップが施された非矩形イメージデータを出力系のデバイス座標に展開する非矩形イメージデータ保存方法において、非矩形イメージをライン毎にスキャンしてスキャンラインデータを得る第１の工程と、前記スキャンラインデータを白／黒ラン長の符号で表現される符号化方式に基づいて圧縮する第２の工程と、スキャンラインデータをイメージデータにマッピングし、スキャンラインのピクセルに１対１に対応したサンプル値を得る第３の工程と、を含んだものである。すなわち、この技術は、ラインプリンタ本体のイメージ処理負荷とネットワーク負荷を削減するため、図形をスキャンラインに変換し、圧縮して出力するようにしたものである。
【特許文献１】特開平１１−１９５１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前記従来技術では、スキャンラインデータを圧縮せずにメモリに保持しておき、各バンドの出力時に前記メモリの中から、そのバンドに含まれるスキャンラインデータのみを取り出し、圧縮してプリンタに送信していた。図１はメインの処理手順を示すフローチャートで、この処理は２つのサブルーチン、すなわちスキャンライン化処理（ステップＳ１００）と出力処理（ステップＳ２００）とから構成されている。
【０００４】
図２はスキャンライン化処理（ステップＳ１００）のサブルーチンの処理内容を示すフローチャートである。スキャンライン化処理では、図形ｉ＝０として最初の図形から処理を開始し（ステップＳ１０１）、その図形ｉをライン毎にスキャンしてスキャンラインデータを得るスキャンライン化を行う（ステップＳ１０２）。次いで、スキャンライン化したデータを格納するメモリ領域ｉを確保し、そのメモリ領域ｉにスキャンライン化したデータ、すなわちスキャンラインデータを書き込む（ステップＳ１０３）。これを図形の総数ｎまで繰り返し（ステップＳ１０４、Ｓ１０５、Ｓ１０２、Ｓ１０３、Ｓ１０４）、ｎになった時点で処理を終える。なお、図形の数ｉは０≦ｉ≦ｎである。
【０００５】
図３は出力処理のサブルーチンの処理内容、言い換えればスキャンラインデータ化した後の出力処理の処理手順を示すフローチャートである。この処理では、バンドｊ＝０として最初のバンドから処理を開始し（ステップＳ２０１）、さらに図形ｉ＝０として処理を進める（ステップＳ２０２）。そして、図形ｉ＝０がバンドｊ＝０にあるかどうかをチェックする（ステップＳ２０３）。ここでバンドは所定数のスキャンラインを１つとして処理するために前記所定数のスキャンライン群として設定されたものである。
【０００６】
ステップＳ２０３のチェックで図形ｉ＝０がバンドｊ＝０上になければ図形ｉを１ずつ増分して（ステップＳ２０４）図形ｉがバンドｊ上にあるかどうかをチェックする（ステップＳ２０３）。そして、図形ｉが存在するバンドｊが判明した時点で、メモリ領域ｉから図形ｉのスキャンラインデータを読み込み（ステップＳ２０５）、スキャンラインデータからバンドｊ上に存在するスキャンラインを取り出す（ステップＳ２０６）。次いで、取り出したスキャンラインのデータを圧縮し（ステップＳ２０７）プリンタ側に出力する（ステップＳ２０８）。これを図形の総数ｎまで繰り返し（ステップＳ２０９→ステップＳ２０４→ステップＳ２０３・・・ステップＳ２０９）、さらに、この処理をバンドｊの総数ｍまで繰り返す（ステップＳ２１０→ステップＳ２１１→Ｓ２０２・・・ステップＳ２１０）。そして、バンドｊの総数まで完了するとメモリを全て開放して（ステップＳ２１２）処理を終える。
【０００７】
図４はステップＳ２０７のサブルーチンの処理内容を示すフローチャートである。この圧縮処理のサブルーチンでは、ステップＳ２０６で取り出されたスキャンラインｉをスキャンラインの総数ｌまで１ライン毎に圧縮する（ステップＳ２０７１，Ｓ２０７２，Ｓ２０７３，Ｓ２０７４）。
【０００８】
このように従来の処理方法では、スキャンラインデータを圧縮せずにメモリに保持しておき、各バンドの出力時に前記メモリの中からそのバンドに含まれるスキャンラインデータのみを取り出し（ステップＳ２０６）、圧縮し（ステップＳ２０７）、プリンタに送信した（ステップＳ２０８）ので、消費メモリ量が大きかった。
【０００９】
本発明は、このような従来技術の実情に鑑みてなされたもので、その目的は、大きなメモリ容量が不要な画像データ送信を可能にすることにある。
【課題を解決するための手段】
【００１０】
前記目的を達成するため、第１の手段は、図形をラインごとにスキャンし、スキャンラインデータを得るスキャンライン化手段と、前記スキャンライン化手段により得られた前記スキャンラインデータをバンドごとに圧縮する圧縮手段と、前記圧縮手段により圧縮されたデータをバンドごとに保持する記憶手段と、前記記憶手段に保持されている圧縮データをバンドごとに読み出して出力する出力手段とを備えたプリンタドライバを特徴とする。
【００１１】
第２の手段は、第１の手段において、前記スキャンライン化手段は、入力された各図形について、その図形が表れる最初のバンドの処理時に前記図形全体をスキャンライン化することを特徴とする。
【００１２】
第３の手段は、第１または第２の手段において、前記出力手段は、各バンドの出力処理時に前記圧縮されたスキャンラインデータを前記記憶手段から読み込んで出力した後、前記記憶手段を開放することを特徴とする。
【００１３】
第４の手段は、第１ないし第３のいずれかの手段に係るプリンタドライバを画像処理装置が備えていることを特徴とする。
【００１４】
第５の手段は、図形をラインごとにスキャンし、スキャンラインデータを得る第１の手順と、前記第１の手順により得られた前記スキャンラインデータをバンドごとに圧縮する第２の手順と、前記第２の手順により圧縮されたデータをバンドごとに保持する第３の手順と、前記第３の手順で保持した圧縮データをバンドごとに読み出して出力する第４の手順とをコンピュータプログラムが備え、コンピュータによって読み込まれ実行されることを特徴とする。
【００１５】
第６の手段は、第５の手段において、前記第１の手順で入力された各図形について、その図形が表れる最初のバンドの処理時に前記図形全体をスキャンライン化することを特徴とする。
【００１６】
第７の手段は、第５または第６の手段において、前記第４の手順で各バンドの出力処理時に前記圧縮されたスキャンラインデータを前記記憶手段から読み込んで出力した後、前記記憶手段を開放することを特徴とする。
【００１７】
第８の手段は、第５ないし第７のいずれかに記載のコンピュータプログラムがコンピュータによって読み込まれ、実行可能に記憶媒体に記憶されていることを特徴とする。
【００１８】
なお、後述の実施形態において、スキャンライン化手段はスキャンライン変換部４に、圧縮手段は圧縮部５に、記憶手段はメモリ６に出力手段は出力部２にそれぞれ対応する。
【発明の効果】
【００１９】
本発明によれば、圧縮したスキャンラインデータはバンドごとに記憶手段に保持されているため、それを再展開することなく、バンドごとに出力することができ、これにより大きなメモリ容量を必要とすることなく画像データの送信が可能になる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態について図面を参照して説明する。  
図５は本発明の実施形態に係るプリンタドライバの構成を示すブロック図である。同図において、プリンタドライバ１は、出力部２、入力部３、スキャンライン変換部４、圧縮部５およびメモリ６から基本的に構成されている。
【００２１】
入力部３に入力された図形は出力部２に送られ、バンディング処理が行われる。各図形は、当該図形が最初に現れるバンドの処理時にスキャンライン変換部４に送られ、非圧縮のスキャンラインデータに変換される。そしてそれが圧縮部５に渡されて圧縮済みのスキャンラインデータとなり、図形ごとかつバンドごとにメモリ６に格納される。
【００２２】
メモリ６の構成は図形番号、バンド番号が決まればその図形のそのバンド上にある圧縮されたスキャンラインデータが取得できる連想記憶とするのが最適である。この例を図６に示す。図６（ａ）は用紙上に形成された画像ｉとバンドとの関係を示す図、図６（ｂ）はメモリ構造を概念的に示す図である。
【００２３】
図６（ａ）において、バンドが１から５までに分けられているスキャンラインに対してバンド２ないし４の間に図形ｉが存在する。この図形ｉの画像データが入力部３から出力部２に入力されると、出力部２はスキャンライン変換部４でスキャンラインデータに変換する。図形ｉの最初のバンドはｂ（ｉ）first１１であり、図６（ａ）では、バンド２である。この最初のバンドｂ（ｉ）firstのスキャンラインデータのデータの先頭は、図形番号ｉから情報領域へのポインタを格納しているメモリ領域のアドレスを算出する式ｆ（ｉ）１２から算出される。
【００２４】
メモリには、その他に図形（ｉ）のバンドｂ（ｌ）first+jの圧縮済みスキャンラインデータ、ここでは、ｂ（ i）first、ｂ（ i）first+j、及びｂ（ i）lastの圧縮済みスキャンラインデータが領域１３，１４，１５が格納され、それらの先頭アドレスはポインタｄ（ｉ，ｊ）としてメモリの別の領域１６，１７，１８に格納されている。したがってｆ（ｉ）で図形番号ｉから情報領域へのポインタを格納しているメモリ領域を算出し、指定すると、図６（ｂ）に示すように図６（ａ）における図形ｉの最初のバンドｂ（ｉ）firstのメモリ領域１１に飛ぶ。そして、この領域１１にはバンドｂ（ｉ）firstのスキャンラインデータが前記メモリ領域１３に圧縮されて格納されているので、これを読み出せばよい。なお、この実施形態では、バンドｂ（ｉ）firstは図６（ａ）においてはバンド２に対応する。したがって、バンド２の図形ｉの最初の画像データを読み出すことになる。また、メモリに格納されている圧縮済みのスキャンラインデータはバンドごとかつ図形ごとに出力部２に渡され、出力される。
【００２５】
本実施形態におけるスキャンライン化処理は、図７のフローチャートに示す処理手順に基づいて実行される。この処理では先ず、図形ｉをライン毎にスキャンしてスキャンラインデータを得るスキャンライン化を実行する（ステップＳ３０１）。次いで、スキャンライン番号を初期化し（ステップＳ３０２）、図形ｉのｋ番目（ｋ＝０）のスキャンラインが属しているバンド番号ｂを求める（ステップＳ３０３）。そして、図形iのバンドｂに対応するメモリ領域が確保済みであることが確認されると（ステップＳ３０４−Ｙ）、図形ｉのk番目のスキャンラインを圧縮し（ステップＳ３０５）、図形ｉのバンド番号ｊに対応するメモリ領域に圧縮結果を追記する（ステップＳ３０７）。この動作をスキャナライン番号をインクリメントしながら繰り返す（ステップＳ３０９）。前記メモリ領域が確保されていなければ（ステップＳ３０４−Ｎ）、図形ｉのｊ番目（ｋの１つ前）のバンドのメモリ領域を確保した後（ステップＳ３０６）、図形ｉのｋ番目のスキャナラインを圧縮する（ステップＳ３０５）。この動作を図形ｉの最終のスキャンラインに達するまで繰り返し、図形ｉのスキャンライン化を終了する。
【００２６】
そして、図７のフローチャートから分かるように全図形についてスキャンライン化を行い、これを全バンドにわたって実行する。  
本実施形態における前記プリンタドライバの処理手順を図８のフローチャートに示す。この処理では、バンド番号と図形番号を初期化した後（ステップＳ４０１，Ｓ４０２）、バンド番号ｊが図形ｉの最初のバンドと最後のバンドの間にあるかどうかをチェックし（ステップＳ４０３）、間になければ図形の番号をインクリメントしてバンド番号ｊが図形ｉの最初のバンドと最後のバンドの間になった時点で（ステップＳ４０３−Ｙｅｓ）バンドjが図形iの最初のバンドかどうかをチェックする（ステップＳ４０５）。
【００２７】
このチェックで最初のバンドでなければ図形ｉのバンドjに対応するメモリ領域から図形ｉの圧縮済みスキャンラインデータを読み込み（ステップＳ４０６）、プリンタ側に出力し（ステップＳ４０７）、ステップＳ４０６で読み込んだメモリ領域（ｉ，ｊ）を開放し（ステップＳ４０８）、最初のバンドであれば、図７のスキャンライン化処理を実行し（ステップＳ４０９）、これらの処理を同一バンド番号の図形全てのスキャンラインデータに対して実行する（ステップＳ４１０）。そして、これらの処理を全バンド数実行して（ステップＳ４１１→ステップＳ４１２→ステップＳ４０２・・・ステップＳ４１１）スキャンラインデータのプリンタ側への出力が行われる。
【００２８】
以上のように本実施形態によれば、圧縮したスキャンラインデータをメモリに保持しているため、小さなメモリ容量で済む。また、圧縮したスキャンラインデータはバンドごとにメモリに保持されているため、それを再展開することなく、バンドごとに出力することができる。さらに、各図形をすべて同時にスキャンライン化するのではなく、その図形が最初に現れるバンドの出力処理時までスキャンライン化しないため、各図形の出現バンドが異なっていれば使用するメモリ容量を削減することができる。
【図面の簡単な説明】
【００２９】
【図１】従来から実行されているスキャンラインデータを送信するときのメインの処理手順を示すフローチャートである。
【図２】図１におけるスキャンライン化処理のサブルーチンの処理内容を示すフローチャートである。
【図３】図１におけるスキャンラインデータ化した後の出力処理の処理手順を示すフローチャートである。
【図４】図３におけるステップＳ２０７の圧縮処理のサブルーチンの処理内容を示すフローチャートである。
【図５】本発明の実施形態に係るプリンタドライバの構成を示すブロック図である。
【図６】図５におけるメモリの構成を示す概念図である。
【図７】本実施形態におけるスキャンライン化処理のサブルーチンの処理内容を示すフローチャートである。
【図８】本実施形態におけるプリンタドライバの処理手順を示すフローチャートである。
【符号の説明】
【００３０】
１  プリンタドライバ
２  出力部
３  入力部
４  スキャンライン変換部
５  圧縮部
６  メモリ
【図１】
2006259884.tif 000003
【図２】
2006259884.tif 000004
【図３】
2006259884.tif 000005
【図４】
2006259884.tif 000006
【図５】
2006259884.tif 000007
【図６】
2006259884.tif 000008
【図７】
2006259884.tif 000009
【図８】
2006259884.tif 000010