(57)【特許請求の範囲】
【請求項１】
外部から入力されるベクトルデータおよびラスタイメージデータを含む画像データに基づいて画像を形成する画像形成装置において、
入力画像データを解析するデータ解析手段と、
該データ解析手段の解析結果データを記憶するデータ記憶領域を含むメモリと、
前記解析結果データに回転処理を施す回転処理手段と、
前記解析結果データに基づいて、画像の一部であるバンド単位に印字イメージを展開するフレームメモリ手段と、
該フレームメモリ手段に展開された印字イメージに基づいてバンド単位に画像を形成する印字手段と、
前記データ解析手段の解析結果に基づいて、当該画像の回転に必要な作業用メモリ容量を含む、当該画像印字に要するメモリ消費量を求めるメモリ消費量算出手段と、
該求められたメモリ消費量を前記メモリの空き容量と比較して、前記画像の回転が実行可能か否かを判定する判定手段と、
該判定手段により画像の回転が実行可能でないと判定された場合に前記画像の回転を抑止する回転抑止手段とを備え、
前記メモリ消費量算出手段は、
ベクトルデータに基づくメモリ消費量と、ラスタイメージデータに基づくメモリ消費量とを別個に求め、
ベクトルデータについては、１ベクトル当たり予め定められた固定値のベクトル実体データ量をベクトル数分累積した値と、各ベクトルがまたがるバンド数に基づいて得られるポインタデータ量をベクトル数分累積した値との和により、前記ベクトルデータに基づくメモリ消費量を算出し、
ラスタイメージデータについては、各ラスタイメージデータの非圧縮データサイズを累積した値と、最大サイズのラスタイメージデータのライン数および横幅に基づく作業データ量との和により、前記ラスタイメージデータに基づくメモリ消費量を算出する
ことを特徴とする画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プロッタ、プリンタ等の画像形成装置における画像処理に関するものである。
【０００２】
【従来の技術】
いわゆるラスタプリンタにおいては、６００ｄｐｉの解像度でＡ４サイズ１ページで、約４Ｍバイトのラスタイメージデータ用メモリが必要になる。これが、大判の印字用紙を扱えるプロッタにおいてＡ０サイズになれば、１６倍の約６４Ｍバイトのラスタイメージデータ用メモリが必要になる。カラー印字にいたっては、さらに４倍の約２５６Ｍバイトのラスタイメージデータ用メモリが必要になってしまう。この方法は、一般的にフルビットマップ方式と呼ばれている。
【０００３】
別の従来技術として、インクジェット方式のプリンタ、プロッタにおいては、ヘッドが複数回走査することで画像部分（バンド）毎に順次印字していくバンディング方式がある。この方式では、ヘッドの１走査分の画像部分（バンド）に相当する容量のメモリに順次ラスタイメージデータを展開していく。この場合は、１ページ分のフレームメモリを必要とせず、ヘッドのノズル数とバンドの横幅の長さで決まる容量の部分的なフレームメモリで足りる。６００ｄｐｉの解像度かつカラーでヘッドのノズル数が１６０ノズルの場合、およそ２Ｍバイトのフレームメモリがあればよい。本発明の実施では、この方式にて画像処理を行っている。
【０００４】
バンディング方式では、フレームメモリの他に、ベクトルデータやラスタイメージデータ解析後の中間的な画像データを記憶するデータ記憶メモリが必要となる。この中間的な画像データをＤＬ（ディスプレイリスト）と呼び、このデータを記録するメモリ（領域）をＤＬメモリと呼ぶ。ベクトルデータとラスタイメージデータがすべてＤＬメモリに入りきれば、画像欠損は生じない。
【０００５】
【発明が解決しようとする課題】
ところで、プロッタ等で大判の印字用紙を用いる場合、用紙に無駄が生じないように縦長の画像を横長にして印字を行うことがある。このような場合には、画像を９０゜回転させる回転処理を施す必要がある。その際、画像がベクトルデータの場合は、座標値を変更するだけなのでメモリを圧迫することはないが、ラスタイメージデータの場合は、ラスタイメージデータの幅×高さ分の作業用メモリ領域が必要となってくる。この作業用メモリ領域が不足したまま回転処理を行うと、ラスタイメージデータの回転処理時にメモリが足りなくなって画像欠損を生じるという問題があった。
【０００６】
従来、取り扱う画像データがベクトルデータのみの場合にはこのような問題は生じなかったが、近年、ベクトルデータに対して、例えば写真画像のようなラスタイメージデータを混在させた画像データを扱うようになって、この問題が顕在化してきた。
【０００７】
本発明は、このような問題を解消するために、入力データの解析の結果からメモリ容量上、ラスタイメージデータの回転処理が可能か否かの判断を行うことにより画像欠損を生じなくした、信頼性の高い画像形成装置を提供することを目的とするものである。
【０００８】
【課題を解決するための手段】
本発明による画像形成装置は、外部から入力される画像データに基づいて画像を形成する画像形成装置において、入力画像データを解析するデータ解析手段と、該データ解析手段の解析結果データを記憶するデータ記憶領域を含むメモリと、前記解析結果データに回転処理を施す回転処理手段と、前記解析結果データに基づいて、画像の一部であるバンド単位に印字イメージを展開するフレームメモリ手段と、該フレームメモリ手段に展開された印字イメージに基づいてバンド単位に画像を形成する印字手段と、前記データ解析手段の解析結果に基づいて、当該画像の回転に必要な作業用メモリ容量を含む、当該画像印字に要するメモリ消費量を求めるメモリ消費量算出手段と、該求められたメモリ消費量を前記メモリの空き容量と比較して、前記画像の回転が実行可能か否かを判定する判定手段と、該判定手段により画像の回転が実行可能でないと判定された場合に前記画像の回転を抑止する回転抑止手段とを備えたものである。
【０００９】
この発明によれば、ラスタイメージデータを回転させることが可能か否かを入力画像データの解析時に判別することができる。したがって無駄なデータ（後述するＤＬ）生成をすることがなくなり回転ができなくなったときの処理時間のロスを防げる。また、データ欠損も防げる。
【００１０】
前記画像データはベクトルデータおよびラスタイメージデータを含み、前記メモリ消費量算出手段は、ベクトルデータに基づくメモリ消費量と、ラスタイメージデータに基づくメモリ消費量とを別個に求める。
【００１１】
例えば、ベクトルデータについて、前記メモリ消費量算出手段は、１ベクトル当たり予め定められた固定値のベクトル実体データ量をベクトル数分累積した値と、各ベクトルがまたがるバンド数に基づいて得られるポインタデータ量をベクトル数分累積した値との和により、前記ベクトルデータに基づくメモリ消費量を算出する。
【００１２】
また、ラスタイメージデータについて、前記メモリ消費量算出手段は、各ラスタイメージデータの非圧縮データサイズを累積した値と、最大サイズのラスタイメージデータのライン数および横幅に基づく作業データ量との和により、前記ラスタイメージデータに基づくメモリ消費量を算出する。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。ここでは、複数のノズルを用紙搬送方向に配列したヘッドを用紙搬送方向とほぼ直角の方向に走査することにより、１回の走査で１バンドの画像を形成するインクジェット画像記録装置を例として説明する。
【００１４】
図１は本実施の形態の画像形成装置の構成を示すブロック図である。図１中、１１は装置全体の動作を制御するＣＰＵ、１２はフレームメモリおよびＤＬメモリの他、ＣＰＵ１１の作業領域およびデータの一時記憶領域として利用されるＲＡＭである。１３は画像形成装置を駆動するためのプログラムやデータが書き込まれているＲＯＭであり、ＣＰＵ１１により使用される。１４は外部のコンピュータ端末装置等（図示せず）と接続するためのインタフェース部であり、これを介してベクトルデータやベクトル修飾情報データなどのプロッタ記述言語データが転送されてくる。１５はマンマシンインタフェースのための表示を行うＬＣＤ表示装置、１６は画像形成装置の各種設定を選択するためのキー操作部である。１７は画像形成装置の印字部、１８はＣＰＵ１１と他の各要素とを接続するシステムバスである。
【００１５】
図２に、本実施の形態における、入力データ受信から印字までの概略処理フローを示す。
【００１６】
まず、外部から入力データ（ベクトルデータ）を受信し（Ｓ２１）、この受信したデータに対してプロッタ記述言語のフォーマットにしたがってデータ解析を行う（Ｓ２２）。このデータ解析手段を一般にインタープリタと呼んでいる。解析後、ベクトルデータは、各ベクトルの始点、終点、線幅、色等の情報を中間ファイルとしてＲＡＭ１２に記憶される。ラスタイメージデータは、圧縮されてＲＡＭ１２に記憶される（Ｓ２３）。これらの処理は印字開始データの解析終了まで行われる（Ｓ２４）。
【００１７】
印字開始コマンドを受信した後、画像の回転可否判定および回転処理が行われる（Ｓ２５）。このステップの詳細については後述する。
【００１８】
その後、今まで中間ファイルとして記憶されてきたＲＡＭ１２からバンドごとにディスプレイリスト（ＤＬ）生成が行われる（Ｓ２６）。ＤＬ生成とは、画像がどのバンドからどのバンドまであるのか、および、どのような画像なのかをバンドごとにＲＡＭ１２に記憶していくことである。ＤＬ生成が終了すると、１バンド目からＤＬ生成で記憶されているデータに基づいてベクトルデータをラスタイメージデータに変換したり、圧縮されたラスタイメージデータを解凍するＶＲＣ処理が行われる（Ｓ２７）。このＶＲＣ処理では、記録に適した印字データを図１のＲＡＭ１２（フレームメモリ）に展開する。このフレームメモリの印字データに基づいて、実際の印字動作が実行される（Ｓ２８）。
【００１９】
図３は、図２のフロー内の１ステップである中間ファイル作成（Ｓ２３）の処理例を示すフローチャートである。
【００２０】
先のデータ解析の結果、与えられた処理対象がベクトルデータかラスタイメージデータかを調べる（Ｓ２３１）。ベクトルデータの場合、そのベクトルの始点、終点座標値が算出される（Ｓ２３２）。このベクトルをＤＬへ登録するときに必要となるサイズ（ＤＬでのメモリ消費量）を算出して記憶しておく（Ｓ２３３）。この登録は、あるベクトルが最初に出現するバンドにおいて、そのベクトルの実体データを記憶するものである。さらに、始点、終点間のベクトルが何個のバンドにまたがるか（バンド数）を算出する（Ｓ２３４）。実体データの他に実体を指し示すポインタサイズ分のメモリが必要になるため、このバンド数に基づいて、ＤＬでのメモリ消費量を算出して記憶しておく（Ｓ２３５）。そして、中間ファイルに始点、終点情報を記憶する（Ｓ２３６）。
【００２１】
Ｓ２３３でのメモリ消費量の算出方法は、本実施の形態では、ＤＬにベクトルの実体データを登録するのに、１ベクトル当たり１４バイト必要なので、
【００２２】
ベクトル実体データのＤＬサイズ  ＋＝  １４  ・・・（１）
となる。ここに、記号”＋＝”は、式の左辺の変数の現在値に右辺の値を足し込む（累積する）演算を表す。
【００２３】
Ｓ２３５でのメモリ消費量の算出方法は、本実施の形態では、１ポインタのサイズが４バイト必要なので、
【００２４】
バンド間にまたがるＤＬサイズ  ＋＝  （４＊（またがるバンド数−１））・・・ （２）
【００２５】
先のステップＳ２３１において、処理対象がラスタイメージデータであった場合、データ解析の結果、ラスタイメージデータについては、非圧縮時のデータ量を次式のように加算していく（Ｓ２３７）。
【００２６】
回転時必要な非圧縮時のデータサイズ  ＋＝  非圧縮データサイズ・・（３）
【００２７】
さらに、このときの入力されたラスタイメージデータのライン数と横幅のサイズを次式により算出し記憶しておく。これは、ラスタイメージデータの回転処理に必要な作業用のメモリ容量である。
【００２８】
回転時に必要なコピーエリアサイズ  ＝  ライン数×横幅  ・・・（４）
【００２９】
なお、１ページの印刷対象画像中に複数個のラスタイメージが複数存在する場合には、回転時に必要なコピーエリアサイズはその最大面積のものとする。
【００３０】
その後、周知のパックビッツ等の方式による圧縮処理にて、ラスタイメージデータを圧縮して（Ｓ２３９）、中間ファイルに記憶する（Ｓ２３６）。
【００３１】
図４は、図２のフロー内に示した１ステップである「回転可否判定＆回転」処理の詳細を示すフローチャートである。
【００３２】
回転可否判定に当たって、まず、先に登録した中間ファイルを読み込む（Ｓ２５１）。そこで、回転要求があるか否かを調べる（Ｓ２５２）。回転要求がなければ本処理を終了する。
【００３３】
回転要求があれば、回転時に必要となるメモリ容量を算出する（Ｓ２５３）。ラスタイメージデータを回転させるときに必要なメモリ容量は、前記（１）式、（２）式、（３）式、（４）式の総和である。この総和と現在残っているメモリ容量を比較する（Ｓ２５４）。空きメモリ容量があれば、データの欠損なくしてラスタイメージデータの回転を行うことが可能であるので、回転処理を行う（Ｓ２５５）。
【００３４】
空きメモリ容量がないときは、回転をしてもいずれデータの欠損があきらかに生じることがこの判定にて認識できる。この場合、回転処理を行わずに、そのままＤＬ生成（Ｓ２６）へ進む。但し、ユーザに対して、空きメモリ容量不足のために回転を行わない旨のメッセージを文字表示やインジケータランプ点灯等により出力してもよい（Ｓ２５６）。
【００３５】
図５は、本実施の形態にあたっての実際のベクトルデータを解析してＤＬ展開される様子を説明するための図である。この例では、ベクトル１とベクトル２が画像データであり、ベクトル１はバンド１からバンド３にかけてまたがり、ベクトル２はバンド３からバンド７へかけてまたがっている。したがって、ベクトル１のバンド数は３、ベクトル２のバンド数は５である。
【００３６】
図５の画像データに対して作成されるＤＬの例を図６に示す。
【００３７】
この例では、ベクトル１はバンド１で最初に出現するので、ＤＬのバンド１においてベクトル１の実体データが登録される。そのバイト数は１４である。ベクトル１はバンド２、３にまたがっているので、ＤＬのバンド２、３にはベクトル１へのポインタが登録される。そのバイト数はそれぞれ４バイトである。同様に、ベクトル３はバンド３で最初に出現するので、ＤＬのバンド３においてベクトル３の実体データが登録される。したがって、ＤＬのバンド３における合計のメモリ消費量は１８バイトとなる。ベクトル２は後続のバンド７にまでまたがるので、ＤＬのバンド４〜７の各々にはついては、ベクトル２へのポインタの４バイトが消費される。ここでは、極めて簡単な例を示したが、実際の画像データではさらに複雑なＤＬの内容となる。しかし、基本的な構造は図７に示したとおりである。
【００３８】
本実施の形態では、ラスタイメージの回転が必要な場合、ＤＬ生成を行う前にメモリ容量上、ラスタイメージの回転が可能か否かを判別することができる。したがって、無駄なＤＬ生成をすることがなくなり回転できないことが判明したときの処理時間のロスを防げる。また、ＤＬのデータ欠損も防げる。
【００３９】
以上、本発明の好適な実施の形態について説明したが、発明の要旨を逸脱することなく、種々の変形、変更が可能である。
【００４０】
【発明の効果】
本発明によれば、ラスタイメージデータの回転処理時にメモリ容量が足りなくなって印字がされないという問題を解消するために、入力画像データのデータ解析時にラスタイメージデータの回転処理が可能か否かの判断を行うことにより、画像欠損を生じなくさせた、信頼性の高い画像形成装置を提供することができる。
【図面の簡単な説明】
【図１】本発明による画像形成装置の構成例を示すブロック図である。
【図２】図１の画像形成装置の入力データ受信から印字までの処理フローを示すフローチャートである。
【図３】図２のフロー内の１ステップである中間ファイル作成（Ｓ２３）の処理例を示すフローチャートである。
【図４】図２のフロー内に示した１ステップである「回転可否判定＆回転」処理の詳細を示すフローチャートである。
【図５】本発明の実施の形態にあたっての実際のベクトルデータを解析してＤＬ展開される様子を説明するための図である。
【図６】図５に示した画像例におけるＤＬ生成時のメモリ使用状態を示す図である。
【符号の説明】
１１  ＣＰＵ
１２…ＲＡＭ
１３…ＲＯＭ
１４…インターフェース
１５…液晶表示装置
１６…キー操作部
１７…印字部
１８…システムバス
【図１】
0004010386.tif 000002
【図２】
0004010386.tif 000003
【図３】
0004010386.tif 000004
【図４】
0004010386.tif 000005
【図５】
0004010386.tif 000006
【図６】
0004010386.tif 000007