JP2004030164A - Device and method for image processing - Google Patents

Device and method for image processing Download PDF

Info

Publication number
JP2004030164A
JP2004030164A JP2002184648A JP2002184648A JP2004030164A JP 2004030164 A JP2004030164 A JP 2004030164A JP 2002184648 A JP2002184648 A JP 2002184648A JP 2002184648 A JP2002184648 A JP 2002184648A JP 2004030164 A JP2004030164 A JP 2004030164A
Authority
JP
Japan
Prior art keywords
image
position information
scan line
band
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002184648A
Other languages
Japanese (ja)
Inventor
Masakazu Takahashi
高橋 正和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002184648A priority Critical patent/JP2004030164A/en
Publication of JP2004030164A publication Critical patent/JP2004030164A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Facsimile Image Signal Circuits (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To analyze a drawing command inputted by each band which divides a page into a plurality of parts, to detect the number of image areas and position information by each line of the band based on analyzed contents, and to perform optimal image processing with respect to an image drawn on the basis of the inputted drawing command while switching a method of image processing based on a band width and the number of image areas. <P>SOLUTION: The device consists of an analysis means for analyzing an image drawing command from a drawing command inputted by each band, a detecting means for detecting the number of drawing areas and the position information based on the image drawing command, a detective means for detecting the number of image areas, a start point and an end point by each line of the band on the basis of detection information, a selecting means for selecting a method of image processing from a band width and the number of image areas, and an image processor selected by the selection means. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は画像処理装置およびその方法に関し、たとえば1頁を複数に分割したバンド単位に入力される描画命令を処理する画像処理装置およびその方法に関するものである。
【0002】
【従来の技術】
一般に、プリンタを接続するホストコンピュータには、プリンタを制御するための印刷制御装置を構成するプリンタドライバが搭載されている。
【0003】
ホストコンピュータに搭載されたアプリケーションソフトは、作成した文字、図形などのグラフィックス画像や、自然画などのイメージ画像を含む画像データを作成し、この画像データを印刷出力するときには、アプリケーションからこの印刷出力対象となる画像データをOS(オペレーティングシステム)を介して描画命令としてプリンタドライバに供給する。
【0004】
プリンタドライバでは、供給された画像データに基づく描画命令を解析し、メモリ上に、RGB多階調イメージデータを作成し、それをプリンタインクの各色を表すCMYK多値情報に変換し、次にインクを打つか打たないかを表すCMYK二値のデータに変換する処理をおこなった後、プリンタが解析できる出力データを生成してプリンタに転送する。
【0005】
プリンタにより画像データに基づく出力画像を良好に出力する場合、出力画像を構成する複数の描画命令の各々に対し、描画命令の種類に応じた色処理(輝度/濃度変換処理、マスキング処理、ガンマ処理、減色処理)、量子化処理等を行うことが必要とされている。
【0006】
画像データを構成する描画命令群は、プリンタドライバに対してたとえば写真画像部分はイメージ描画命令、テキスト部分はテキスト描画命令、図表等のグラフィックス部分はグラフィックス描画命令というように構成要素毎に描画命令が発行され、プリンタドライバは描画命令の種類ごとに適した色処理や量子化処理等を行い、プリンタの出力可能な画像に変換することができる。
【0007】
画像処理に用いられている一般的な色処理手法としては、グラフィックス描画命令には「鮮やかさ優先の色処理」、テキスト描画命令は「測色的一致」、写真部描画命令は「色み優先の色処理」が行われている。これら描画命令毎に色処理を切り替えることにより、全ての描画命令に対し良好な出力を得る事ができる。
【0008】
また、画像処理に用いられている一般的な量子化手法としては、ディザマトリクス法、誤差拡散手法などの手法がある。ディザマトリクス法は、高速でかつ均一に量子化することが可能な手法であり、この手法は、テキスト、図形等の描画命令により描画されたデータの量子化に適している。これに対し、誤差拡散手法は、ディザマトリクス法よりも処理時間を要するが、微妙な階調表現をすることができる手法であり、この手法は自然画などのイメージデータに分類される描画命令で描画されたデータの量子化に適している。
【0009】
1頁を複数に分割したバンド単位に画像処理を行う、バンディング方式を用いたプリンタドライバにおいて、バンド内に存在する描画命令を解析し、バンド内の1スキャンラインに対し、イメージ描画領域とそれ以外の描画領域(グラフィックス描画領域)を識別し、それぞれの領域に適した画像処理(色処理、量子化処理)を行うことで、良好な出力画像を得ることができる。
【0010】
このような考えかたの画像処理方法としては、特開平10−051636号公報において記載の技術がある。
【0011】
【発明が解決しようとする課題】
該当スキャンライン上のイメージ描画領域とグラフィックス描画領域に対し最適な画像処理施す場合、2倍の画像処理用メモリを用意し、スキャンライン全体に対してイメージ描画領域用とグラフィックス描画領域用の画像処理をそれぞれ行い、最後に各描画領域位置情報を基に出力画像を合成する方法(特開平10−051636号公報の技術はこれに相当する。)と、スキャンラインの始点から終点まで順番に、イメージ描画領域部分用の画像処理とグラフィックス描画領域用の画像処理を交互に行う方法とが一般的である。
【0012】
しかし、前者の方法だと倍のメモリ使用となる分の効率悪化と、イメージ領域が少なかった場合には無駄な画像処理時間の増加が問題となる。また、後者の方法ではメモリの使用量は節約できるが、スキャンライン上に多数のイメージ領域が存在した場合、小さな領域に対する画像処理方法の切り替えのオーバーヘッドにより処理時間の増加が問題となっていた。
【0013】
本発明は、これらの問題点に鑑みてなされたものであり、ページ記述言語をもたないプリンタ用の、バンディング方式を用いたプリンタドライバにおいて、バンド内に存在する描画命令のうち、イメージ描画命令のみを識別し、該当描画命令のイメージ描画領域の矩形情報を保存しておき、バンド内の1スキャンラインに対し色処理および量子化処理時に、保存しておいた領域情報を参照し、該当スキャンライン上に存在するイメージ描画領域の始点と終点を位置情報として作成し、該当スキャンライン上の領域情報が重なる場合には1つの領域情報、該当スキャンラインをイメージ描画領域かそれ以外かに切り分けた位置情報を基に、色処理、量子化処理を切り分けて行う画像処理装置において、バンド幅と1スキャンライン上のイメージ描画領域の個数から画像処理の方法を選択する手段をもつことを特徴とし、バンド内の1スキャンラインに対し、始点からイメージ描画領域かグラフィックス描画領域かで順次、印刷情報処理を切り替えながら行う方法と、1スキャンライン全体をイメージ描画領域用と、グラフィック描画領域用の画像処理を行った後、領域位置情報を基に合成する方法を併用し、切り替えて使用することで、より効率的に画像処理を行うことを目的とする。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本願発明は、各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段によって識別された描画領域とバンド内のあるスキャンラインのY座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段と、該当スキャンラインの幅と該当スキャンライン上の位置情報より画像処理方法を選択する選択手段を備え、前記生成手段で生成された位置情報に基づき、前記入力画像データに対して自動的に最適な画像処理を行うことを特徴とする。
【0015】
以上、本発明を整理して要約すれば以下の構成に集約できる。
【0016】
(1)各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す4点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのY座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す2点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理装置。
【0017】
(2)各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す4点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのY座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す2点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理方法。
【0018】
【発明の実施の形態】
(第一実施形態)
以下、図面を参照して本発明に係る発明の実施の形態の一例を詳細に説明する。
【0019】
本実施形態におけるシステムの概略の一例を図1に示す。
【0020】
ホストコンピュータ100には、例えばインクジェットプリンタなどのプリンタ105とモニタ104やキーボード106が接続されている。ホストコンピュータ100は、ワープロ、表計算、インターネットブラウザ等のアプリケーションソフトウエア101とそのアプリケーションソフトによってOS102に発行される出力画像を示す各種描画命令群(イメージ描画命令、テキスト描画命令、グラフィックス描画命令)を処理して印刷データを作成するプリンタドライバ103をソフトウエアとして持つ。
【0021】
ホストコンピュータ100は、これらソフトウエアが動作可能な各種ハードウエアとして中央演算処理装置CPU108、ハードディスクHD107、ランダムアクセスメモリRAM109、リードオンリーメモリROM110等と、前記CPU、HD、RAM、ROMを接続するデータバス111を備える。
【0022】
図1で示される実施形態として、例えば一般的に普及しているIBM ATコンパチのパーソナルコンピュータにMicrosoft Windows(R)95をOS102として使用し、任意の印刷可能なアプリケーションをインストールし、モニタ104とプリンタ105とキーボード106を接続した形態が一実施形態として考えられる。
【0023】
以下図2に本実施例が示すバンディング方式のプリンタドライバとOSの処理フローについて説明する。
【0024】
ホストコンピュータ100上のアプリケーションソフト101は、文字などのテキストに分類されるテキストデータや、図形などのグラフィックスに分類されるグラフィックスデータや、自然画などに分類されるイメージ画像データなど出力画像データとして作成する。
【0025】
作成された出力画像データを印刷出力するときには、アプリケーションソフト101からOS102に印刷出力要求を行い、テキストデータ部分は、テキスト描画命令、グラフィックスデータ部分はグラフィックス描画命令、イメージ画像データ部分はイメージ描画命令で構成される出力画像を示す描画命令群をOS102に発行する。
【0026】
OS102はアプリケーション101の出力要求を受け、出力プリンタ105に対応するプリンタドライバ103に印刷要求を発行する。
【0027】
プリンタドライバ103ではOS102から印刷要求が送られてくると、バンド用の作業領域を確保し、確保した領域の座標データ(バンドサイズのデータ)をOS102に送る。OS102は渡されたバンドサイズ内に存在する描画命令群をプリンタドライバ103に発行する。バンド用の作業領域を確保するのは、本実施形態で示したようなページ記述言語を持たないラスター系のプリンタ105では、ホストコンピュータ100上のプリンタドライバ103がイメージ展開処理を行うのだが、ホストコンピュータ100には、通常一ページ分すべての描画命令を展開するだけの十分な記憶装置が搭載されていないので、横に細長く分割したバンドと呼ばれる単位ごとにイメージをメモリ上に作成するためである。
【0028】
プリンタドライバ103は、OS102からの描画命令群を順次RGB24ビットの形式でバンドメモリにラスタライズし、全ての描画命令をラスタライズした後にバンドメモリの内容をCMYKデータに変換を行い、最後にプリンタ105が印刷可能なデータ形式に変換し、プリンタ105に転送する。
【0029】
OS102は、アプリケーション101で作成されたページ内に存在するすべての描画命令群の発行を、バンド毎に繰り返し、印刷を実行し、完了させる。
【0030】
以下図3に本実施例が示すプリンタドライバ103による印刷データ処理の流れについて説明する。
【0031】
バンディング方式のプリンタドライバなので全体的な流れとしては、前述した図2の説明のように、プリンタドライバ103はバンドメモリを確保したのち、すべての印刷制御処理はバンド毎に行い、すべての処理が終わった後に、バンドメモリを開放する処理となっている。
【0032】
バンド毎のプリンタドライバ103の印刷制御処理としては、大きく分けると3つのSTEPに分けることができる。以下、その3STEPについて詳しく説明する。
【0033】
STEP1では、OS102からバンド領域内に描画すべき描画命令を1つづつ受け取り、プリンタドライバ103はこの描画命令実行時に、後述する描画命令解析処理(図5)も行いながらイメージ領域情報テーブル(図6)を作成し、プリンタ105の解像度に応じ、予め確保しておいたRGB24ビットバンドメモリに順次ラスタライズを行い、RGB画像データを生成する。
【0034】
図5に示した描画命令解析処理とは、OS102から渡された描画命令を解析することによって、バンド内に存在しているイメージ領域の数情報(ImageCount)と、バンド内に存在しているイメージ領域の矩形情報を示すイメージ領域情報テーブル(AreaInfoTBL)を出力するものである。
【0035】
以下、処理フローを順に説明すると、ImageCountを初期化した後、まず渡された描画命令の種類を判別する。該当描画命令がイメージ描画命令であった場合には、次に描画命令で示されるオブジェクトが写真画像部分であるかを識別する。一般的に写真画像等のイメージデータは24ビットRGBのオブジェクト画像や8ビットパレットのオブジェクト画像である事が多く、それより小さなビット深さのイメージ画像は写真画像でない場合が多い。このため、イメージ描画命令の関数のヘッダを参照し、イメージのビット深さが24ビット以上あるいは8ビットパレットであった場合のみ、RAM109に、図5に示すようにイメージ領域情報テーブルに1つエントリを作成し、イメージ描画命令に含まれていた描画位置情報(矩形の左上座標,Left,Topと右下座標Right,Bottom)を格納し、ImageCountを一つインクリメントする。この描画命令解析処理は、バンド領域内で実行される全ての描画命令に対して実行される処理であり、バンド内にまだ描画命令が存在する場合には、再び描画命令解析の部分にもどる。すべての描画命令に対して解析処理を終えた後、イメージ領域情報テーブルが作成されていた場合には、左端(Left)、上端(Top)、右端(Right)、下端(Bottom)の順に小さい値からテーブル内を並べ変え、処理を終了する。
【0036】
STEP2では、作成されたRGB画像データのバンドメモリに対して、バンド内の1スキャンライン毎に、STEP1で生成したイメージ領域情報テーブルに基づき、後述するイメージ領域生成処理(図8)を実行し、イメージ位置情報情報テーブル(図7)を獲得する。
【0037】
図8に示したイメージ領域生成処理とは、バンドメモリ内の1スキャンラインのY座標方向の位置情報を基に、該当スキャンライン上に存在するイメージ領域の数情報(ImageCountPerLine)と、各イメージ領域の該当スキャンライン上のX座標方向の始点と終点を示すイメージ位置情報テーブル(図7)を生成するものである。
【0038】
以下、処理フローを順に説明する。ImageCountPerLineを初期化した後、バンド内にいくつイメージ領域が存在しているかを示すImageCountを参照する。バンド内にイメージ領域が存在しない時は処理を終了する。存在する時は、イメージ領域情報テーブルからイメージ領域情報を1つ取り出し、スキャンラインのY座標と、イメージ領域情報の上端(Top)と下端(Bottom)から、該当スキャンライン上にイメージ領域が存在するかどうかを判定する。存在した場合には、イメージ領域情報の左端(Left)と右端(Right)を取り出す。イメージ位置情報テーブルがまだ存在していない場合には、RAM109に、図6に示すイメージ位置情報テーブルのエントリを1つ作成し、始点にLeftと終点にRightを保存し、ImageCountPerLineを1つインクリメントする。
【0039】
既にイメージ位置情報テーブルが作成されていた場合には、最後に保存したイメージ位置情報の始点(PreLeft)と終点(PreRight)と、現在のイメージ位置情報のLeftとRightをそれぞれ比較し、イメージが重ならない場合(PreRight<Leftの時)には、イメージ位置情報テーブルのエントリを1つ追加し、始点にLeftと終点にRightを保存し、ImageCoutPerLineを1つインクリメントする。
【0040】
イメージが重なった場合には終点、PreRightとRightを比較し、PreRight<Rightの場合のみ、PreRightをRightに更新する。イメージが重なった時は、1つのイメージ領域とみなすことからImageCoutPerLineはインクリメントしない。また、始点、PreLeftとLeftに関しては、既に描画命令解析手段で常にPreLeft<=Leftになるように並べ変えてあることより比較しない。また、当処理の結果、生成されたイメージ位置情報テーブル内のイメージ位置情報は自動的にスキャンラインの先端位置(左端)から順に並べられている。
【0041】
バンド内に存在するすべてのイメージ領域情報に対して前述した処理を繰り返した後、処理を終了する。
【0042】
STEP3では、STEP2で生成されたイメージ位置情報テーブルを基に、バンド内の1スキャンライン毎に、該当スキャンラインの先端から終端まで、イメージ領域部分とイメージ領域でない部分に対して、それぞれの特性に応じた、色処理(輝度/濃度変換処理、マスキング処理、ガンマ処理、減色処理)、2値化処理を施した後、印字コマンドに変換しプリンタに出力を行う。
【0043】
以下に詳述する。
【0044】
STEP3では、まず、スキャンラインの先端位置情報を変数StartPosに、後端位置情報をEndPosにセットし、STEP2でセットされたスキャンライン内のイメージ領域個数(ImageCountPerLine)を参照する。
【0045】
スキャンライン内に1つもイメージ領域が存在しない場合(最初からImageCountPerLine=0の時)には、StartPosからEndPosまで、つまりスキャンライン全体に対して、グラフィックスデータとみなし、鮮やかさ優先の色処理を行いRGB24bit画像データをCMYK32bit画像データに変換した後、CMYK32bit画像データに対して、ディザマトリクス法により2値化処理を施してCMYK4bit2値画像データに変換し、印字コマンドに変換したあとプリンタ105に送信する。
【0046】
スキャンライン内にイメージ領域がImageCountPerLine個存在した場合には、画像処理選択手段において、スキャンラインの幅を存在するスキャンライン上に存在するイメージ領域ImageCountPerLine個で割り、おおよその1イメージ領域のピクセル数(ImgagePixel)を算出する。そのピクセル数と、あらかじめ調査し決定しておいた閾値Xとを比較する。
【0047】
この閾値Xは、スキャンライン幅のデータに対し、イメージ領域用、およびグラフィックス領域用それぞれの画像処理を施す時間と、ImagePixel幅のデータに対しスキャンライン幅割るImagePixel幅の回数分、イメージ領域用およびグラフィックス領域用画像処理をそれぞれ行った場合の合計時間とを計測した場合に、後者の処理時間のほうが小さくなる限界の幅とし、ImagePixelが、閾値Xよりも小さくなる場合には、前者の画像処理を施した場合のほうが、メモリの使用量は増大するが画像処理の高速化を行うことができる。
【0048】
この前述した閾値XとImagePixelを比較した結果、閾値Xのほうが小さかった場合には、以下の画像処理を行う。
【0049】
STEP2で生成されたイメージ位置情報テーブル(ImageAreaTBL[ImageCountPerLine])から、先頭のイメージ位置情報を参照し、先頭イメージ領域の始点(X1)と終点(X2)を獲得する。そして、StartPosからX1までは、グラフィックスデータ用の鮮やかさ優先の色処理を行い、RGB24bit画像データをCMYK32bit画像データに変換した後、CMYK32bit画像データに対してディザマトリクス法により2値化処理を施し、CMYK4bit2値画像データに変換する。次に、X1からX2まではイメージデータ用の色見優先の色処理を行い、RGB24bit画像データをCMYK32bit画像データに変換した後、CMYK32bit画像データに対して、誤差拡散法により2値化処理を施してCMYK4bit2値画像データに変換する。
【0050】
その後、StartPosにX2の値をセットしなおし、ImageCountPerLineを1つ減らし、ImageCountPerLineがゼロになるまで、つまりスキャンライン上のイメージ領域情報テーブルをすべて参照するまで、本処理を繰り返す。
【0051】
すべて参照し終わった後、StartPosにはスキャンライン上の最後イメージ領域の終点がセットされているので、このStartPosからスキャンラインの後端、EndPosまでをグラフィックスデータとみなし、鮮やかさ優先の色処理を行い、RGB24bit画像データをCMYK32bit画像データに変換した後、CMYK32bit画像データに対して、ディザマトリクス法により2値化処理を施してCMYK4bit2値画像データに変換する。
【0052】
前述した閾値XとImagePixelを比較した結果、閾値Xのほうが大きかった場合には、以下の画像処理を行う。
【0053】
ScanLine幅分の2値化後の作業用メモリ(ScanLineBuffer)をもうひとつ作成するために、作業用メモリ(ScanLineBuffer2)を確保する。確保できなかった場合には、前述した画像処理を実行する。
【0054】
確保できた場合には、StartPosからEndPosまで、つまりスキャンライン幅全体に対して、グラフィックス領域用の画像処理である鮮やかさ優先の色処理およびディザマトリクス法により2値化処理を行いScanLineBufferに格納する。続けて同じようにStartPosからEndPosまでイメージ領域用の画像処理である色見優先の色処理および誤差拡散法により2値化処理を行い、処理結果をScanLineBuffer2に格納する。この後STEP2で生成されたイメージ位置情報テーブル(ImageAreaTBL[ImageCountPerLine])から、先頭のイメージ位置情報を参照し、ScanLineBuffer2上の先頭イメージ領域の始点(X1)と終点(X2)をScanLineBufferにコピーする。このコピー作業をImageCountPerLine回繰り返すことで、スキャンライン上に存在するすべてのイメージ領域データをScanLineBuffer2からScanLineBufferにコピーする。
【0055】
前述してきた画像処理を施した結果、1スキャンラインすべてに対して、イメージ領域部分とイメージ領域でない部分に対して、それぞれの特性に応じた、色処理および2値化処理が終わったことになり、1スキャンライン分のCMYK4bit2値画像データを印字コマンドに変換した後、プリンタに送信する。
【0056】
前述したSTEP2およびSTEP3の処理を、1バンド内すべてのスキャンラインに対して行った後、プリンタドライバのバンド毎の印刷情報処理が終わったこととなる。
【0057】
STEP1,STEP2,STEP3の処理の流れを簡単に示す1例を図9に示した。
【0058】
図9の例1で、バンドNには3つのイメージビットマップ領域が存在する。STEP1で描画命令解析処理を行った結果、バンド内に存在するイメージ領域の個数(ImageCount)は、ImageCount=3として登録され、イメージ領域情報テーブル(AreaInfoTBL)には、AreaInfoTBL[0]={Left1,Top1,Right1,Bottom1}、AreaInfoTBL[1]={Left2,Top2,Right2,Bottom2}、AreaInfoTBL[2]={Left3,Top3,Right3,Bottom3}として登録される。次にバンド内のY Lineに値するスキャンラインに対してSTEP2を実行すると、スキャンライン上に存在するイメージ領域の個数(ImageCountPerLine)は、ImageCountPerLine=2として登録され、イメージ位置情報テーブル(ImageAreaTBL)には、ImageAreaTBL[0]={Left1,Right2}、ImageAreaTBL[1]={Left3,Right3}として登録される。そしてSTEP3で、画像処理方法選択手段により、スキャンライン幅をイメージ領域の個数で割った結果、あらかじめ求めていた閾値より値が大きいので、スキャンラインの始点から順次、イメージ位置情報テーブルを参照しながら画像処理を実行した場合の処理の流れの説明図である。また、図9の例2は、8つのイメージビットマップ領域が存在し、前述と同様にSTEP1からSTEP2を経てイメージ位置情報テーブルを作成する。そしてSTEP3で画像処理方法選択手段の結果、スキャンライン全体に対して、イメージ用画像処理とグラフィックス用画像処理を施し、最後に両処理後のデータを合成した場合の処理の流れの説明図である。
【0059】
前述してきたように本実施形態では、バンド内の描画命令を描画命令解析処理(図5)で解析した結果得られたバンド内に存在するイメージ領域情報をもとに、イメージ領域生成処理(図8)でスキャンライン上に存在する無駄なイメージ領域をまとめたイメージ位置情報を生成し、スキャンライン幅と前記イメージ位置情報により、スキャンライン毎の効率的な画像処理(図4)を行うことができた。
【0060】
(変形例)
前述してきた実施形態では、CMYK多値データをCMYK2値データに変換する処理を行っているが、階調数を減らすN値化処理すべてで同じである。
【0061】
前述してきた実施形態の機能を実現する為に各種のデバイスを動作させる様に、該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウエアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【0062】
またこの場合、前記ソフトウエアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【0063】
かかるプログラムコードを格納する記憶媒体としては例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることが出来る。
【0064】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【0065】
また供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【0066】
【発明の効果】
以上説明したように、本発明によれば、バンド毎に入力される様々な描画命令で構成される画像データの印刷時に、バンド内の1スキャンライン上のイメージ描画領域の数および位置情報を生成し、生成した位置情報を基に画像処理を自動的に切り替える際には、スキャンラインの幅とイメージ描画領域の数から最適な画像処理方法を選択することによって、印刷を高速かつ効率的に行うことができる。
【図面の簡単な説明】
【図1】システムの構成の一例を示すブロック図
【図2】バンディング方式のプリンタドライバの処理の流れを示す図
【図3】実施例一のプリンタドライバの印刷データ処理のフローチャート
【図4】領域情報とバンド幅に基づく画像処理を示す図
【図5】描画命令解析処理のフローチャート
【図6】イメージ領域情報テーブル(バンド毎)の構成例を示す図
【図7】イメージ位置情報テーブル(スキャンライン毎)の構成例を示す図
【図8】イメージ領域生成処理のフローチャート
【図9】実施例一のバンドNのY Lineに対しての印刷情報処理結果例を示す図
【符号の説明】
100 ホストコンピュータ
101 アプリケーションソフトウエア
102 オペレーティングシステム(OS)
103 プリンタドライバ
104 モニタ
105 プリンタ
106 キーボード
107 HD
108 CPU
109 RAM
110 ROM
111 データバス
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing apparatus and method, and more particularly, to an image processing apparatus and method for processing a drawing command input in units of bands obtained by dividing one page into a plurality.
[0002]
[Prior art]
Generally, a host computer connected to a printer is equipped with a printer driver constituting a print control device for controlling the printer.
[0003]
The application software installed on the host computer creates image data including the created graphics images such as characters and graphics, and image images such as natural images, and prints out the image data. The target image data is supplied to the printer driver as a drawing command via an OS (operating system).
[0004]
The printer driver analyzes a drawing command based on the supplied image data, creates RGB multi-tone image data in a memory, converts it into CMYK multi-value information representing each color of printer ink, and After performing a process of converting into CMYK binary data indicating whether or not to hit, the printer generates output data that can be analyzed by the printer and transfers it to the printer.
[0005]
When an output image based on image data is satisfactorily output by a printer, color processing (brightness / density conversion processing, masking processing, gamma processing) for each of a plurality of drawing commands constituting the output image according to the type of the drawing command is performed. , Color reduction processing), quantization processing, and the like.
[0006]
The drawing command group forming the image data is drawn to the printer driver for each component such as, for example, an image drawing command for a photographic image portion, a text drawing command for a text portion, and a graphics drawing command for a graphics portion such as a chart. An instruction is issued, and the printer driver performs color processing, quantization processing, and the like appropriate for each type of drawing instruction, and can convert the image into an image that can be output by the printer.
[0007]
As general color processing methods used for image processing, "color processing giving priority to vividness" is used for graphics drawing commands, "colorimetric matching" is used for text drawing commands, and "color Priority color processing "is performed. By switching the color processing for each drawing command, a good output can be obtained for all drawing commands.
[0008]
In addition, as a general quantization method used for image processing, there are methods such as a dither matrix method and an error diffusion method. The dither matrix method is a method that can quantize at high speed and uniformly, and this method is suitable for quantizing data drawn by a drawing command of a text, a figure, or the like. On the other hand, the error diffusion method requires a longer processing time than the dither matrix method, but is a method capable of expressing subtle gradations. This method uses a drawing instruction classified as image data such as a natural image. Suitable for quantizing rendered data.
[0009]
In a printer driver using a banding method, which performs image processing in units of bands obtained by dividing one page into a plurality of parts, a drawing command existing in a band is analyzed, and an image drawing area and other parts are scanned for one scan line in the band. , A good output image can be obtained by identifying the drawing area (graphics drawing area) and performing image processing (color processing and quantization processing) suitable for each area.
[0010]
As an image processing method based on such thinking, there is a technique described in Japanese Patent Application Laid-Open No. 10-051636.
[0011]
[Problems to be solved by the invention]
When performing optimal image processing on the image drawing area and the graphics drawing area on the corresponding scan line, double the image processing memory is prepared, and the entire scan line is used for the image drawing area and the graphics drawing area. Image processing is performed, and finally, an output image is synthesized based on each drawing area position information (the technology of Japanese Patent Application Laid-Open No. Hei 10-051636 is equivalent to this method). Generally, a method of alternately performing image processing for an image drawing area portion and image processing for a graphics drawing area is used.
[0012]
However, in the former method, there is a problem in that the efficiency is reduced due to the use of twice as much memory, and when the image area is small, the useless image processing time is increased. In the latter method, the amount of memory used can be saved. However, when a large number of image areas exist on a scan line, the processing time increases due to the overhead of switching the image processing method for a small area.
[0013]
SUMMARY OF THE INVENTION The present invention has been made in view of these problems, and in a printer driver using a banding method for a printer having no page description language, an image drawing command is included in a drawing command existing in a band. Only the rectangle information of the image drawing area of the corresponding drawing instruction is stored, and at the time of color processing and quantization processing for one scan line in the band, the stored area information is referred to, and the corresponding scanning is performed. The starting point and the ending point of the image drawing area existing on the line are created as position information, and when the area information on the corresponding scan line overlaps, one area information is cut, and the corresponding scan line is cut into the image drawing area or the other. In an image processing apparatus that separates color processing and quantization processing based on position information, the bandwidth and the image on one scan line It is characterized by having means for selecting an image processing method based on the number of image areas, and performing print information processing sequentially for one scan line in a band from the start point to an image drawing area or a graphics drawing area. The method and the method of performing image processing on the entire one scan line for the image drawing area and image processing for the graphic drawing area and then combining them based on the area position information are used together and switched to be used more efficiently. The purpose is to perform image processing.
[0014]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides an input unit for dividing and inputting image data indicated by various drawing commands of each page into a plurality of bands, and analyzing each drawing command input for each band. Determining means for determining only a specific drawing command; identifying means for identifying a drawing area based on the drawing command determined by the determining means; and a drawing area identified by the identifying means and a scan line in a band. Generating means for generating position information for performing efficient image processing on the corresponding scan line based on the Y coordinate, and selecting means for selecting an image processing method from the width of the relevant scan line and positional information on the relevant scan line And automatically performing optimal image processing on the input image data based on the position information generated by the generation unit.
[0015]
As described above, the present invention can be summarized into the following configuration by organizing and summarizing the present invention.
[0016]
(1) Input means for dividing and inputting image data indicated by various drawing commands of each page into a plurality of bands, and analyzing each drawing command input for each band to determine only a specific drawing command. Determining means; identifying means for identifying a drawing area based on the drawing command determined by the determining means; and four points indicating the number of rectangular areas identified by the identifying means and positional information of all identified rectangular areas. Area information storage means for storing coordinate data of the image data, and an image processing apparatus for performing efficient image processing on the corresponding scan line based on the drawing area stored by the area information storage means and the Y coordinate of a certain scan line in the band. Generating means for generating position information, the number of position information on the scan line generated by the generating means, and all the position information on the generated scan line An image processing apparatus comprising: position information storage means for storing coordinate data of two points; and selection means for selecting an image processing method from the number and bandwidth of the position information stored by the position information storage means. .
[0017]
(2) Input means for dividing and inputting image data indicated by various drawing commands of each page into a plurality of bands, and analyzing each drawing command input for each band to determine only a specific drawing command. Determining means; identifying means for identifying a drawing area based on the drawing command determined by the determining means; and four points indicating the number of rectangular areas identified by the identifying means and positional information of all identified rectangular areas. Area information storage means for storing coordinate data of the image data, and an image processing apparatus for performing efficient image processing on the corresponding scan line based on the drawing area stored by the area information storage means and the Y coordinate of a certain scan line in the band. Generating means for generating position information, the number of position information on the scan line generated by the generating means, and all the position information on the generated scan line An image processing method comprising: position information storage means for storing two sets of coordinate data; and selection means for selecting an image processing method from the number and the bandwidth of the position information stored by the position information storage means. .
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
(First embodiment)
Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings.
[0019]
FIG. 1 shows a schematic example of a system according to the present embodiment.
[0020]
The host computer 100 is connected with a printer 105 such as an inkjet printer, a monitor 104 and a keyboard 106. The host computer 100 includes application software 101 such as a word processor, a spreadsheet, and an Internet browser, and various drawing commands (image drawing command, text drawing command, graphics drawing command) indicating output images issued to the OS 102 by the application software. And a printer driver 103 for creating print data by processing the data as software.
[0021]
The host computer 100 includes a central processing unit CPU 108, a hard disk HD 107, a random access memory RAM 109, a read-only memory ROM 110, and the like as various types of hardware on which the software can operate, and a data bus connecting the CPU, HD, RAM, and ROM. 111 is provided.
[0022]
As an embodiment shown in FIG. 1, for example, using Microsoft Windows (R) 95 as an OS 102 in a generally-used IBM AT compatible personal computer, an arbitrary printable application is installed, and a monitor 104 and a printer are installed. An embodiment in which the keyboard 105 and the keyboard 106 are connected is considered as one embodiment.
[0023]
FIG. 2 illustrates a processing flow of a banding-type printer driver and an OS according to the present exemplary embodiment.
[0024]
The application software 101 on the host computer 100 outputs text data classified as text such as characters, graphics data classified as graphics such as figures, and output image data such as image image data classified as natural images. Create as
[0025]
To print out the created output image data, the application software 101 issues a print output request to the OS 102. The text data portion is a text drawing command, the graphics data portion is a graphics drawing command, and the image image data portion is an image drawing command. A drawing command group indicating an output image composed of commands is issued to the OS 102.
[0026]
The OS 102 receives an output request from the application 101 and issues a print request to the printer driver 103 corresponding to the output printer 105.
[0027]
When a print request is sent from the OS 102, the printer driver 103 secures a band work area and sends coordinate data (band size data) of the secured area to the OS 102. The OS 102 issues, to the printer driver 103, a drawing command group existing within the passed band size. In order to secure the work area for the band, in the raster printer 105 having no page description language as shown in the present embodiment, the printer driver 103 on the host computer 100 performs the image development processing. Since the computer 100 usually does not have a sufficient storage device for expanding all drawing commands for one page, an image is created in the memory in units called bands which are horizontally and elongated divided into bands. .
[0028]
The printer driver 103 rasterizes the drawing command group from the OS 102 into the band memory in the form of 24-bit RGB sequentially, rasterizes all the drawing commands, converts the contents of the band memory into CMYK data, and finally the printer 105 prints. The data is converted into a possible data format and transferred to the printer 105.
[0029]
The OS 102 repeats issuance of all drawing command groups existing in the page created by the application 101 for each band, executes printing, and completes.
[0030]
FIG. 3 illustrates a flow of print data processing by the printer driver 103 according to the present exemplary embodiment.
[0031]
Since the printer driver is a banding type printer, as a whole flow, as described above with reference to FIG. 2, the printer driver 103 secures a band memory, performs all print control processing for each band, and ends all processing. After that, the band memory is released.
[0032]
The print control process of the printer driver 103 for each band can be roughly divided into three STEPs. Hereinafter, the 3 STEP will be described in detail.
[0033]
In STEP 1, a drawing command to be drawn in the band area is received one by one from the OS 102, and at the time of executing the drawing command, the printer driver 103 performs a drawing command analysis process (FIG. 5) described later while performing an image area information table (FIG. 6). ) Is created and sequentially rasterized in an RGB 24-bit band memory reserved in advance according to the resolution of the printer 105 to generate RGB image data.
[0034]
The drawing command analysis processing shown in FIG. 5 is a process of analyzing a drawing command passed from the OS 102 to obtain information on the number of image areas (ImageCount) existing in the band and the number of images existing in the band. It outputs an image area information table (AreaInfoTBL) indicating rectangular information of the area.
[0035]
Hereinafter, the processing flow will be described in order. After ImageCount is initialized, first, the type of the given drawing command is determined. If the drawing command is an image drawing command, it is determined whether the object indicated by the drawing command is a photographic image portion. Generally, image data such as a photographic image is often an object image of 24-bit RGB or an object image of an 8-bit palette, and an image image having a bit depth smaller than that is often not a photographic image. Therefore, referring to the header of the function of the image drawing instruction, only when the bit depth of the image is 24 bits or more or an 8-bit palette, one entry is stored in the RAM 109 as shown in FIG. Is stored, and the drawing position information (upper left coordinates, Left, Top and lower right coordinates Right, Bottom) of the rectangle included in the image drawing command is stored, and ImageCount is incremented by one. This drawing command analysis process is a process executed for all drawing commands executed in the band area. If a drawing command still exists in the band, the process returns to the drawing command analysis portion. If the image area information table has been created after the analysis process has been completed for all drawing commands, the smaller values are in the order of left end (Left), top end (Top), right end (Right), and bottom end (Bottom). And rearranges the table, and terminates the process.
[0036]
In STEP 2, an image area generation process (FIG. 8) described below is executed on the band memory of the created RGB image data for each scan line in the band based on the image area information table generated in STEP 1. Acquire the image position information information table (FIG. 7).
[0037]
The image area generation processing illustrated in FIG. 8 is based on the position information of one scan line in the band memory in the Y coordinate direction, the number information (ImageCountPerLine) of image areas existing on the corresponding scan line, and each image area. The image position information table (FIG. 7) indicating the start point and the end point in the X coordinate direction on the corresponding scan line is generated.
[0038]
Hereinafter, the processing flow will be described in order. After initializing ImageCountPerLine, reference is made to ImageCount indicating how many image areas exist in the band. If there is no image area in the band, the processing ends. When the image area information exists, one image area information is extracted from the image area information table, and an image area exists on the corresponding scan line from the Y coordinate of the scan line and the upper end (Top) and lower end (Bottom) of the image area information. Is determined. If there is, the left edge (Left) and the right edge (Right) of the image area information are extracted. If the image position information table does not yet exist, one entry of the image position information table shown in FIG. 6 is created in the RAM 109, Left is stored at the start point, Right is stored at the end point, and ImageCountPerLine is incremented by one. .
[0039]
When the image position information table has already been created, the start point (PreLeft) and the end point (PreRight) of the last saved image position information are compared with the Left and Right of the current image position information, respectively, and the image is duplicated. If not (when PreRight <Left), one entry of the image position information table is added, Left is stored at the start point, Right is stored at the end point, and ImageCoutPerLine is incremented by one.
[0040]
If the images overlap, the end point, PreRight, and Right are compared, and only when PreRight <Right, PreRight is updated to Right. When the images overlap, ImageCoutPerLine is not incremented because it is regarded as one image area. Further, the start points, PreLeft and Left, are not compared because the drawing instruction analysis means has already rearranged them so that PreLeft <= Left. As a result of this processing, the image position information in the image position information table generated is automatically arranged in order from the leading end position (left end) of the scan line.
[0041]
After the above-described processing is repeated for all the image area information existing in the band, the processing ends.
[0042]
In STEP3, based on the image position information table generated in STEP2, for each scan line in the band, from the front end to the end of the corresponding scan line, the image area portion and the non-image region have respective characteristics. After performing the corresponding color processing (brightness / density conversion processing, masking processing, gamma processing, and color reduction processing) and binarization processing, the data is converted into print commands and output to a printer.
[0043]
Details will be described below.
[0044]
In STEP 3, first, the leading end position information of the scan line is set in the variable StartPos and the trailing end position information is set in EndPos, and the number of image areas (ImageCountPerLine) in the scan line set in STEP 2 is referred to.
[0045]
If no image area exists in the scan line (when ImageCountPerLine = 0 from the beginning), from StartPos to EndPos, that is, the entire scan line is regarded as graphics data, and color processing giving priority to vividness is performed. After converting the RGB 24-bit image data into CMYK 32-bit image data, the CMYK 32-bit image data is subjected to a binarization process by a dither matrix method, converted into CMYK 4-bit binary image data, converted into a print command, and transmitted to the printer 105. .
[0046]
When there are ImageCountPerLine image areas in the scan line, the image processing selecting means divides the width of the scan line by the image area ImageCountPerLine existing on the existing scan line, and the approximate number of pixels in one image area ( ImagePixel) is calculated. The number of pixels is compared with a threshold value X that has been investigated and determined in advance.
[0047]
The threshold value X is the time required to perform image processing for the image area and the graphics area for the scan line width data, and the number of image pixel width times the image pixel width divided by the scan line width for the image pixel width data. And when the total time when the image processing for the graphics area is respectively performed is measured, the latter processing time is set as a limit width that becomes smaller, and when ImagePixel becomes smaller than the threshold X, the former processing is performed. When the image processing is performed, the memory usage increases, but the image processing can be speeded up.
[0048]
As a result of comparing the above-described threshold X and ImagePixel, if the threshold X is smaller, the following image processing is performed.
[0049]
The start point (X1) and end point (X2) of the head image area are acquired by referring to the head image position information from the image position information table (ImageAreaTBL [ImageCountPerLine]) generated in STEP2. Then, from StartPos to X1, the color processing of vividness priority for graphics data is performed, RGB 24-bit image data is converted into CMYK 32-bit image data, and then CMYK 32-bit image data is subjected to binarization processing by a dither matrix method. , CMYK 4-bit binary image data. Next, from X1 to X2, the color processing for the color appearance for image data is performed, and the RGB 24-bit image data is converted into CMYK 32-bit image data, and then the CMYK 32-bit image data is subjected to the binarization processing by the error diffusion method. To CMYK 4-bit binary image data.
[0050]
Thereafter, the value of X2 is set again in StartPos, ImageCountPerLine is reduced by one, and this process is repeated until ImageCountPerLine becomes zero, that is, until all image area information tables on the scan line are referenced.
[0051]
After all references have been made, the start point of the last image area on the scan line is set in the StartPos. Therefore, the range from this StartPos to the end of the scan line and EndPos is regarded as graphics data, and color processing giving priority to vividness is performed. After converting the RGB 24-bit image data into CMYK 32-bit image data, the CMYK 32-bit image data is subjected to a binarization process by a dither matrix method to be converted into CMYK 4-bit binary image data.
[0052]
As a result of comparing the above-described threshold X and ImagePixel, if the threshold X is larger, the following image processing is performed.
[0053]
To create another working memory (ScanLineBuffer) after binarization for the ScanLine width, a working memory (ScanLineBuffer2) is reserved. If the image processing cannot be secured, the above-described image processing is executed.
[0054]
If it can be secured, from StartPos to EndPos, that is, the entire scan line width, color processing giving priority to vividness, which is image processing for the graphics area, and binarization processing by the dither matrix method are performed, and stored in the ScanLineBuffer. I do. In the same manner, from StartPos to EndPos, binarization processing is performed by the color look-first color processing and the error diffusion method, which are image processing for the image area, and the processing result is stored in ScanLineBuffer2. Thereafter, the start point (X1) and the end point (X2) of the head image area on ScanLineBuffer2 are copied to ScanLineBuffer by referring to the head image position information from the image position information table (ImageAreaTBL [ImageCountPerLine]) generated in STEP2. By repeating this copying operation ImageCountPerLine times, all the image area data existing on the scan line is copied from ScanLineBuffer2 to ScanLineBuffer.
[0055]
As a result of performing the above-described image processing, the color processing and the binarization processing corresponding to the respective characteristics of the image area portion and the non-image area portion have been completed for all one scan line. After converting CMYK 4-bit binary image data for one scan line into a print command, the command is transmitted to the printer.
[0056]
After performing the processing of STEP 2 and STEP 3 described above for all the scan lines in one band, the print information processing for each band of the printer driver is completed.
[0057]
FIG. 9 shows an example in which the flow of the processing in STEP1, STEP2, and STEP3 is simply described.
[0058]
In the example 1 of FIG. 9, three image bitmap areas exist in the band N. As a result of performing the rendering command analysis processing in STEP 1, the number of image areas existing in the band (ImageCount) is registered as ImageCount = 3, and AreaInfoTBL [0] = TLeft1, in the image area information table (AreaInfoTBL). Top1, Right1, Bottom1}, AreaInfoTBL [1] = {Left2, Top2, Right2, Bottom2}, AreaInfoTBL [2] = {Left3, Top3, Right3, Bottom3}. Next, when STEP 2 is performed on a scan line denoting Y Line in the band, the number of image areas existing on the scan line (ImageCountPerLine) is registered as ImageCountPerLine = 2, and is stored in the image position information table (ImageAreaTBL). , ImageAreaTBL [0] = {Left1, Right2}, ImageAreaTBL [1] = {Left3, Right3}. Then, in STEP 3, as a result of dividing the scan line width by the number of image areas by the image processing method selecting means, the value is larger than the threshold value obtained in advance. Therefore, referring to the image position information table sequentially from the start point of the scan line. FIG. 9 is an explanatory diagram of a processing flow when image processing is performed. In Example 2 of FIG. 9, there are eight image bitmap areas, and an image position information table is created through STEP1 to STEP2 as described above. Then, in STEP 3, as a result of the image processing method selecting means, an image processing for graphics and an image processing for graphics are performed on the entire scan line, and finally, the processing flow in the case where the data after both processings are combined is shown in FIG. is there.
[0059]
As described above, in the present embodiment, the image area generation processing (see FIG. 5) is performed based on the image area information present in the band obtained as a result of analyzing the drawing instruction in the band by the drawing instruction analysis processing (FIG. 5). In step 8), image position information that summarizes useless image areas existing on the scan line is generated, and efficient image processing for each scan line (FIG. 4) is performed based on the scan line width and the image position information. did it.
[0060]
(Modification)
In the embodiment described above, the process of converting the CMYK multi-value data into the CMYK binary data is performed, but the same applies to all the N-value conversion processes for reducing the number of gradations.
[0061]
In order to operate various devices to realize the functions of the above-described embodiments, a program code of software for realizing the functions of the above-described embodiments is stored in an apparatus or a computer in the system connected to the various devices. The present invention also includes a computer (CPU or MPU) of the system or the apparatus that operates by operating the various devices according to a stored program.
[0062]
In this case, the program code itself of the software realizes the function of the above-described embodiment, and the program code itself and a unit for supplying the program code to the computer, for example, the program code is stored. The storage medium constitutes the present invention.
[0063]
As a storage medium for storing such a program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, a ROM and the like can be used.
[0064]
When the computer executes the supplied program code, not only the functions of the above-described embodiments are realized, but also the OS (Operating System) in which the program code runs on the computer, or other application software. It goes without saying that such a program code is also included in the embodiment of the present invention when the functions of the above-described embodiment are realized in cooperation with the above.
[0065]
Further, the supplied program code is stored in a memory provided on a function expansion board of a computer or a function expansion unit connected to the computer, and then, based on an instruction of the program code, a CPU provided on the function expansion board or the function storage unit. It is needless to say that the present invention includes a case in which the functions of the above-described embodiments are implemented by performing a part or all of the actual processing.
[0066]
【The invention's effect】
As described above, according to the present invention, when printing image data composed of various drawing commands input for each band, the number and position information of the image drawing area on one scan line in the band is generated. When automatically switching image processing based on the generated position information, printing is performed quickly and efficiently by selecting an optimal image processing method based on the width of the scan line and the number of image drawing areas. be able to.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an example of a system configuration.
FIG. 2 is a diagram illustrating a processing flow of a banding type printer driver.
FIG. 3 is a flowchart of print data processing of a printer driver according to the first embodiment.
FIG. 4 is a diagram showing image processing based on region information and bandwidth.
FIG. 5 is a flowchart of a drawing command analysis process.
FIG. 6 is a diagram showing a configuration example of an image area information table (for each band).
FIG. 7 is a diagram showing a configuration example of an image position information table (for each scan line).
FIG. 8 is a flowchart of an image area generation process.
FIG. 9 is a diagram illustrating an example of a print information processing result for Y Line of band N according to the first embodiment.
[Explanation of symbols]
100 Host computer
101 Application software
102 Operating System (OS)
103 Printer Driver
104 monitor
105 Printer
106 keyboard
107 HD
108 CPU
109 RAM
110 ROM
111 data bus

Claims (2)

各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す4点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのY座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す2点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理装置。Input means for dividing and inputting image data indicated by various drawing commands of each page into a plurality of bands, and determining means for analyzing each drawing command input for each band and determining only a specific drawing command; Identifying means for identifying a drawing area based on the drawing command determined by the determining means; and four-point coordinate data indicating the number of rectangular areas identified by the identifying means and positional information of all identified rectangular areas. Based on the drawing area stored by the area information storing unit and the Y coordinate of a certain scan line within the band, and position information for performing efficient image processing on the corresponding scan line. Generating means for generating, indicating the number of position information on the scan line generated by the generating means, and indicating all the positional information on the generated scan line; The image processing apparatus of the position information storage means for storing coordinate data, to have a selection means for selecting the number and the image processing method from the band width of the position information stored in the position information storage means and features. 各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す4点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのY座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す2点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理方法。Input means for dividing and inputting image data indicated by various drawing commands of each page into a plurality of bands, and determining means for analyzing each drawing command input for each band and determining only a specific drawing command; Identifying means for identifying a drawing area based on the drawing command determined by the determining means; and four-point coordinate data indicating the number of rectangular areas identified by the identifying means and positional information of all identified rectangular areas. Based on the drawing area stored by the area information storing unit and the Y coordinate of a certain scan line within the band, and position information for performing efficient image processing on the corresponding scan line. Generating means for generating, indicating the number of position information on the scan line generated by the generating means, and indicating all the positional information on the generated scan line; Image processing method characterized by having the position information storage means for storing coordinate data, selection means for selecting an image processing method from the number and bandwidth of the position information stored in the position information storage means.
JP2002184648A 2002-06-25 2002-06-25 Device and method for image processing Withdrawn JP2004030164A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002184648A JP2004030164A (en) 2002-06-25 2002-06-25 Device and method for image processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002184648A JP2004030164A (en) 2002-06-25 2002-06-25 Device and method for image processing

Publications (1)

Publication Number Publication Date
JP2004030164A true JP2004030164A (en) 2004-01-29

Family

ID=31180516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002184648A Withdrawn JP2004030164A (en) 2002-06-25 2002-06-25 Device and method for image processing

Country Status (1)

Country Link
JP (1) JP2004030164A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013193400A (en) * 2012-03-22 2013-09-30 Seiko Epson Corp Image processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013193400A (en) * 2012-03-22 2013-09-30 Seiko Epson Corp Image processing device

Similar Documents

Publication Publication Date Title
US6490055B1 (en) Printing apparatus with execution of software rendering and hardware rendering
US6512595B1 (en) Data processing apparatus, data processing method, and medium
US6323958B1 (en) Printing apparatus
US5852679A (en) Image processing apparatus and method
JPH024543A (en) Printing device and method
JPH10243210A (en) Image processor and image-processing method
US6429950B1 (en) Method and apparatus for applying object characterization pixel tags to image data in a digital imaging device
JPH11245453A (en) Imaging apparatus
JPH1166327A (en) Method and device for processing image and recording medium
KR20010104212A (en) Method, system, program, and data structure for generating raster objects
JPH0918732A (en) Image processor and its method
JP2004030164A (en) Device and method for image processing
JP2004299104A (en) Image data processor and image forming apparatus
US6339654B1 (en) Apparatus and method for efficiently processing color and monochrome images
JP2004334533A (en) Image processing device and method
JPH09314915A (en) Printing control device, control method for printer, printing system and storage medium
JP2002063582A (en) Device and method for forming image
JP3636891B2 (en) Color image output method
JP3792881B2 (en) Image processing apparatus, data processing method for image processing apparatus, and storage medium storing computer-readable program
JP2001150732A (en) Color print system and drawing command generating method for use therein
JPH10151815A (en) Printing-processing apparatus
JP2001270170A (en) Printer controller
JP4325339B2 (en) Printing system, host computer and printer driver
JP2001296857A (en) Data preserving method and data transform device
JP2006155307A (en) Image processing system performing load distributed processing

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050906