JP3667025B2 - 解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 - Google Patents
解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 Download PDFInfo
- Publication number
- JP3667025B2 JP3667025B2 JP04663697A JP4663697A JP3667025B2 JP 3667025 B2 JP3667025 B2 JP 3667025B2 JP 04663697 A JP04663697 A JP 04663697A JP 4663697 A JP4663697 A JP 4663697A JP 3667025 B2 JP3667025 B2 JP 3667025B2
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- resolution
- image
- area
- magnification
- 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.)
- Expired - Fee Related
Links
- 238000006243 chemical reaction Methods 0.000 title claims description 251
- 238000000034 method Methods 0.000 title claims description 112
- 238000012545 processing Methods 0.000 claims description 125
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 32
- 230000009467 reduction Effects 0.000 description 28
- 239000000872 buffer Substances 0.000 description 22
- 230000006870 function Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000003672 processing method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1225—Software update, e.g. print driver, modules, plug-ins, fonts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/3872—Repositioning or masking
- H04N1/3873—Repositioning or masking defined only by a limited number of coordinate points or parameters, e.g. corners, centre; for trimming
- H04N1/3875—Repositioning or masking defined only by a limited number of coordinate points or parameters, e.g. corners, centre; for trimming combined with enlarging or reducing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Editing Of Facsimile Originals (AREA)
- Dot-Matrix Printers And Others (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、画像を表現する画素数を増加したり減少したりして画像の解像度を変換するための画像解像度変換方法に関するものである。特に、ホストコンピュータ上のプリンタドライバに組み込み可能な該画像解像度変換方法を実現する解像度変換モジューやそれが組み込まれたプリンタドライバに関し、コンピュータ上の画像データの解像度をインクジェットプリンタ等の出力装置の解像度に合わせて変更すること等を目的とする。
【0002】
【従来の技術】
一般に、コンピュータシステムでは、入出力装置間、入出力装置とコンピュータ本体間、或はシステム間で、それぞれが目的に適合する解像度を使用するため異なる解像度で画像を処理することが多い。この中で、最も頻繁に発生するのは、コンピュータ本体内或いは表示の解像度とプリンタの解像度との相違である。
【0003】
そこで、プリンタが印刷するデータを作成してプリンタに描画命令を出力するプリンタドライバと呼ばれるコンピュータ上で動作するプログラムが、各OSにおいて標準化された文字や図形や画像を描画する命令を、各プリンタが解釈できる描画命令に変換する処理を行うが、この際、プリンタドライバは、アプリケーション上での処理解像度と実際に印刷を行うプリンタでの解像度との違いを意識する必要がある。例えば、アプリケーションが90dpiでデータを管理しており、360dpiの解像度のプリンタから出力する場合には、縦横ともに4倍の画素数からなるページを作成する必要がある。
【0004】
本発明が特に好適に適用されるところのインクジェットプリンタに代表されるシリアルプリンタでは、PDL(ページ記述言語)を持たず、プリンタドライバで生成されたビットマップデータを基本とする印刷命令を受け取って印刷を行うのが一般的である。したがって、これらのプリンタドライバにおいてはベクターで表現された文字や図形データは、プリンタの解像度に見合った画素数で直接メモリ上に描画することで出力解像度のビットマップデータに変換し、また元来ビットマップデータであった画像データは出力解像度に合わせて拡大や縮小操作によってそのサイズを変更することで出力解像度のビットマップデータに変換する。
【0005】
ビットマップデータを拡大したり縮小することによる解像度変換方法には各種あり、例えば拡大では、各画素を単純に拡大倍率分繰り返す0次補間、拡大によって生じた画素を元の画素からの距離の比率等によって埋める線形補間、周囲の画素の配置状態によって各種の補間方法を切り替えて最適な拡大を行う方法(特開平7−105359号)等がある。
【0006】
【発明が解決しようとする課題】
しかしながら、プリンタドライバにおける画像処理には多くの制約があり、実際には、各方式そのままでは非整数倍率を含む任意の倍率に対応できない、バンド間で出力結果に不連続が生じるような任意のライン数単位での処理に対応できない等の理由で、解像度変換処理のドライバへの組み込みができない或いは難しいという問題があった。この問題は、特にそれぞれの画素の処理に際し、周囲の画素を必要とするデジタルイメージフィルタ系の画像処理方法においては顕著である。しかしながら、一般にデジタルイメージフィルタ系の処理は、周囲の画素を使用しない0次補間方法のような単純な処理に比べて処理後の画質は良いとされている。
【0007】
本発明は、簡単な操作及び手順で非整数倍率を含む任意の倍率に対応できる画像解像度変換方法及びそれを実現する画像解像度変換モジュールを提供する。
特に、コンピュータ上でソフトウェアとして実現されるデジタルフィルタ系の拡大縮小方法であっても、統一されたインターフェースによってプリンタドライバに効率良く組み込まれる画像解像度変換方法及びそれを実現する画像解像度変換モジュールを提供する。
【0008】
更に、上記画像解像度変換モジュールが組み込まれたプリンタドライバを提供する。
【0009】
【課題を解決するための手段】
そこで、上記課題を解決するために、本発明の解像度変換モジュールは、画像データの解像度を変換する解像度変換モジュールであって、変換前後の解像度を表わす情報を外部より受け取るステップと、前記情報から変換前の原画像の各画素の倍率を求めるステップと、変換後の画像サイズを基準に分割された処理領域の情報を外部より受け取るステップと、前記分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求めるステップと、求められた前記変換前の原画像上の領域に対応する情報を外部に渡すステップと、外部より、前記領域の原画像データを受け取るステップと、前記受け取った原画像データのサイズを前記各画素の倍率を基に変更するステップと、外部に対して、前記領域の解像度変換後のデータを渡すステップとを備えることを特徴とする。なお、前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズである。
【0010】
ここで、前記解像度変換モジュールは画像処理プログラムに組み込まれる。また、前記画像処理プログラムはプリンタドライバであって、前記変換後の解像度はプリンタの解像度、前記変換後の画像サイズを基準に分割された処理領域はバンド領域である。また、前記変換前の原画像の各画素の倍率は、複数画素の倍率が変換前後の解像度の倍率になるような整数倍或は整数分の1の組み合わせからなる。また、前記分割された処理領域の情報は領域の開始点の位置及び領域の大きさである。また、前記原画像上の領域を求めるステップは、解像度変換処理に必要な画素数を使って開始点及び大きさを調整するステップと、原画像の端部を考慮して領域の開始点及び大きさを調整するステップとを含む。また、前記求められた原画像上の領域の情報は領域の開始点の位置及び領域の大きさである。また、前記画像のサイズを変更するステップは、画像データを1ライン分ずつ受け取るステップと、受け取った画像データをサイズ変更に必要なライン分保持するステップと、必要でなくなったラインの画像データを破棄して新たなラインの画像データに更新するステップと、処理後のデータを1ラインずつ出力するステップとを含む。
【0011】
又、本発明のプリンタドライバは、画像データの解像度変換モジュールが組み込まれたプリンタドライバであって、前記解像度変換モジュールが、変換前後の解像度を表わす情報を前記ドライバから受け取るステップと、前記情報から変換前の原画像の各画素の倍率を求めて、これを記憶するステップと、変換後の画像サイズを基準に分割された処理領域の情報を、前記ドライバから受け取るステップと、前記分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求めるステップと、前記ドライバに対し、前記求められた原画像上の領域の情報を渡すと共に原画像データの受渡し要求をし、該領域の原画像データを受け取るステップと、前記求められた原画像上の領域毎に、前記各画素の倍率を基に画像のサイズを変更するステップと、前記ドライバに対し、サイズ変更後のデータの引き取り要求をし、前記領域の解像度変換データを渡すステップとを備えることを特徴とする。なお、前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズである。
【0012】
又、本発明の画像解像度変換方法は、画像データの解像度変換を行う画像解像度変換方法であって、解像度変換を行う解像度変換モジュールと画像データの解像度変換を必要とする画像処理プログラムとがある場合に、前記画像処理プログラムから前記解像度変換モジュールへ、変換前後の解像度を表わす情報と、変換後の画像サイズを基準に分割された処理領域の情報とを渡し、前記解像度変換モジュールは、前記変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求め、前記分割された処理領域からこれに対応する変換前の原画像上の領域を前記各画素の倍率を基に求めて、該領域の情報を前記画像処理プログラムに渡して、前記原画像上の領域の原画像データの受渡しを要求し、前記画像処理プログラムから前記解像度変換モジュールへ、前記領域の原画像データが渡されると、前記解像度変換モジュールは、前記原画像上の領域毎に前記各画素の倍率を基に画像のサイズを変更して、サイズの変更された画像データを前記画像処理プログラムに返すことを特徴とする。なお、前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズである。ここで、前記原画像上の領域を求める場合に、解像度変換処理に必要な画素数を使って開始点及び大きさを調整し、原画像の端部を考慮して領域の開始点及び大きさを調整する。
【0013】
又、本発明の画像解像度変換方法は、画像データの解像度変換を行う画像解像度変換方法であって、変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求め、変換後の画像サイズを基準に分割された処理領域の情報からこれに対応する変換前の原画像上の領域を前記各画素の倍率を基に求め、前記原画像上の領域の原画像データ単位に、前記各画素の倍率を基に画像のサイズを変更することを特徴とする。なお、前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズである。ここで、前記変換前の原画像の各画素の倍率は、複数画素の倍率が変換前後の解像度の倍率になるような整数倍或は整数分の1の組み合わせからなる。また、前記原画像上の領域を求める場合に、解像度変換処理に必要な画素数を使って開始点及び大きさを調整し、原画像の端部を考慮して領域の開始点及び大きさを調整する。
【0014】
又、本発明の画像処理装置は、画像データの解像度変換を伴なう画像処理を行う画像処理装置であって、前記解像度変換が、変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求める倍率作成手段と、変換後の画像サイズを基準に分割された処理領域の情報からこれに対応する変換前の原画像上の領域を前記各画素の倍率を基に求める対応領域計算手段と、前記原画像上の領域の原画像データ単位に、前記各画素の倍率を基に画像のサイズを変更するサイズ変更手段とにより行われることを特徴とする。なお、前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズである。ここで、前記変換前の原画像の各画素の倍率は、複数画素の倍率が変換前後の解像度の倍率になるような整数倍或は整数分の1の組み合わせからなる。また、前記原画像上の領域を求める場合に、解像度変換処理に必要な画素数を使って開始点及び大きさを調整し、原画像の端部を考慮して領域の開始点及び大きさを調整する。また、前記変換後の解像度はプリンタの解像度、前記変換後の画像サイズを基準に分割された処理領域はバンド領域である。
【0015】
【発明の実施の形態】
以下、添付図面にしたがって、本発明による実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態を図1から図15に基づき説明する。
<本実施の形態の画像解像度変換方法を実現するシステム構成例>
図1は、本発明の実施形態を示すシステム構成図である。尚、本実施の形態では、本発明の画像解像度変換方法をプリンタドライバに組み込んだ構成について説明するが、これに限定されることなく、本発明の画像解像度変換方法を他のドライバに組み込んでも、独立して解像度変換モジュールとして使用しても、同様の作用効果を得られることは明らかである。
【0016】
図中、1は本実施の形態の画像解像度変換方法を具備するプリンタドライバを動作させるためのホストコンピュータであり、CPU、RAM、ROM、外部記憶装置、プリンタポート等を備えている。ホストコンピュータ1では、ROM内に格納されたプログラム、或は外部記憶装置からRAMにロードされたプログラムに従って、CPUにより演算・制御が行われて、描画命令の作成、ビットマップデータの作成、解像度の変換、印刷コマンドの作成・出力を行う。2はプリンタドライバによって制御する、例えばインクジェットプリンタ等の2値カラープリンタである。ホストコンピュータ1とプリンタ2とは通信ケーブル3で接続され、ホストコンピュータ1からプリンタ2に対してビットマップデータをベースとする印刷データが送信され、印刷が行われる。
【0017】
図2は、本発明の実施の形態であるところの解像度変換方法を組み込んだプリンタドライバ100を使用して印刷を行う場合のデータの流れ図である。
このプリンタドライバ100では、アプリケーションから画像102、図形103、文字104の各描画命令を受けると、各命令に対応した描画ルーチン105〜107を使用してバンドバッファ上にビットマップデータ108をプリンタ2の解像度で作成する。その後、作成されたビットマップデータ108は印刷コマンド生成部109によってプリンタ2が印刷できる形式のデータ(印刷コマンド110)に変換され、通信ケーブル3を通じてプリンタ2へ送信され、印刷される。
【0018】
図3は、図2における画像描画部105のブロック図である。
画像描画部105は、画像描画命令102をアプリケーション101から受け取ると、ホストコンピュータ1のモニタ上で観察される画像の色とプリンタ2から出力される印刷物の色とができるだけ近付くように、カラーマッチング部200で画像データ内の各画素の色を変更し、次に解像度変換部201でカラーマッチングされた画像データをプリンタ2の持つ解像度に合わせるように、そのサイズを変更して画素数を調整する。
【0019】
例えば、アプリケーション101から渡された画像描画命令102による画像データが、縦横ともに100画素からなる正方形の画像でありその解像度が90dpiであったならば、360dpiの解像度を持つプリンタ2から同じ面積を持つ画像を出力するためには、縦横ともに400画素からなる正方形の画像に大きさを変更しなければならない。つまり、アプリケーション101から渡された画像データの各画素はそれぞれ16(4×4)倍の画素数になるように解像度変換部201によって処理される。
【0020】
この場合に画像の大きさを変更(拡大)する方法には様々なものがあるが、本実施の形態によれば、解像度変換方法のインターフェースを統一することができるようになる。
<実施の形態1の画像解像度変換方法の手順例>
図4は、本発明の実施の形態であるところの画像解像度変換方法の処理の流れを示す図面である。以下順に処理の流れを説明する。
【0021】
まず、ステップS300にて、処理に必要な作業メモリの確保などの初期化処理を行う。次に、ステップS301において解像度変換のためのサイズ変更情報を獲得する。具体的には、原画像の縦横の各画素数(DHとDW)、各画素のビット長、各画素の格納され方、及び解像度変換後の縦横の各画素数(SHとSW)等の情報を得る。そしてこれらの内、解像度変換前後の縦横の各画素数の情報から、ステップS302において各画素の倍率(拡大倍率又は縮小倍率)を保持するテーブルを作成する。
【0022】
尚、ステップS301において、本例のように解像度変換モジュールがプリンタドライバに組み込まれている場合には、サイズ変更情報をプリンタドライバより獲得することとなる。ここで、プリンタドライバがサイズ変更情報をユーザインタフェースを介してユーザの指定により得るか、プリンタからの情報伝送により自動的に得るかは問わない。一方、解像度変換モジュールを独立で使用する場合は、直接ユーザインタフェースを介してユーザの指定により設定されても良い。
【0023】
解像度変換例として、図5に示した画像500(縦4画素、横6画素)を図6に示したサイズの画像600(縦6画素、横10画素)に変換する場合を示す。この例では、画像500が縦横にそれぞれ6/4、10/6倍に拡大されることを示している。
(倍率テーブル例及びその作成手順例)
図7は、本例での倍率テーブルの内容を示したものであり、画像500の各列はそれぞれX方向の倍率テーブル701にしたがって2,1,2,2,1,2倍され、各行はそれぞれY方向の倍率テーブル702にしたがって2,1,2,1倍されることが示されている。そしてこれらのテーブルによって、画像500における画素501は画像600における領域601(縦2画素、横2画素)の、画素502は領域602(縦1画素、横2画素)の領域を作成する元(原画素)となることがわかる。このように縦横それぞれの倍率テーブルを用意することで、縦横独立して非整数倍を含む任意の倍率で画像の解像度変換処理を行うことができるようになる。
【0024】
図8は、倍率テーブル701,702の作成方法の手順を示した図面である。図中、SH、SWはそれぞれ解像度変換前の画像の縦と横の画素数(例ではSH=4、SW=6)を示し、DH、DWはそれぞれ解像度変換後の画像の縦と横の画素数(例ではDH=6、DW=10)を示している。TY[i]はY方向の倍率テーブル702のi番目の要素を示し、TX[i]はX方向の倍率テーブル701のi番目の要素を示している。なお割算は整数演算であり結果は切り捨てられる(例えば、10/6=1)。ここで、ステップS801やS805に示す変数=a,b,cは、変数をaからbまでc単位で増加(cがマイナス値であれば減少)させながら、下位に接続されているステップを繰り返すことを意味している。以下、同様である。
【0025】
処理の流れを説明すると、まずステップS800で演算の誤差を格納する変数eを0で初期化する。次にステップS801では変数iを1ずつ増やしながら0からSH−1まで、ステップS802とS803とを繰り返す。ステップS802では、Y方向の倍率テーブルの各要素の値を蓄積された計算誤差を考慮しながら求め、ステップS803では計算誤差の更新を行う。この結果、例えばTY[i](i=0〜3)としてY方向の倍率テーブル702が作成される。
【0026】
同様にステップS804で演算の誤差を格納する変数eを再度0で初期化し、次にステップS805では変数iを1ずつ増やしながら0からSW−1までステップS806とS807とを繰り返す。ステップS806ではX方向の倍率テーブルの各要素の値を蓄積された計算誤差を考慮しながら求め、ステップS807では計算誤差の更新を行う。この結果、、例えばTX[i](i=0〜5)としてX方向の倍率テーブル701が作成される。
【0027】
倍率テーブル701,702は上記方法によって作成されたテーブルである。倍率テーブルの各要素はここに示したように整数値である。倍率テーブルを使う本実施の形態は、整数倍の組み合わせにより擬似的に任意の倍率の解像度変換ができるようになっている。このことは整数倍の画像サイズの変更しかできない解像度変換方法であっても、それを本実施の形態の方法に使用すれば擬似的に非整数倍の画像サイズ変更が可能になることを示している。尚、本実施の形態の方法によれば、倍率テーブルの各要素の値の合計は拡大の場合は処理後の縦横それぞれの画素数に一致する。本例では、X方向の倍率テーブル701の各要素の合計は10(2+1+2+2+1+2)となり、拡大後の画像600の横の画素数10と一致し、Y方向の倍率テーブル702の各要素の合計は6(2+1+2+1)となり、拡大後の画像600の縦の画素数6と一致する。
【0028】
(解像度変換処理例)
さて、ステップS302によって倍率テーブルが作成されたならば、次にステップS303において処理対象となる全ての領域の処理が終了したかどうかをチェックしながら、ステップS304からS312までを各領域に対して繰り返し適用する。ここで、領域の定義については以下に詳細に示す。
【0029】
(領域の分割例及び周辺画素の使用例)
ステップS304では、解像度変換処理を行う領域を決定することで、処理領域の分割を行う。本実施の形態の方法が適用されるプリンタドライバではメモリ使用量に制限があることが多く、この様な領域分割ができることが必要である。特にインクジェットプリンタに代表されるシリアルプリンタ用のドライバでは、バンド(対象処理領域を短冊状に区切ったもの)と呼ばれる単位で画像処理、コマンド生成処理が行われるのが一般であるが、本実施の形態ではより自由度の高い任意の矩形領域単位に処理ができるような構成になっている。なお、この領域分割はプリンタドライバという事情から解像度変換後の領域の分割を指定することで行われる。つまり、印刷用にどの部分のデータを作成するかによって分割が決まることを意味しており、現状では先に述べたようにバンド単位に分割が行われるのが一般的であるが、これに限定されない。
【0030】
図9は、拡大後の画像600の占める領域から領域901を切り出した場合と、この領域の処理に必要な原画像500中の領域902との関係を示した図である。
領域902の決定には、先に示した倍率テーブル701,702を使用している。倍率テーブル701,702は原画像500の各画素の拡大率を格納しているが、これを用いることで拡大後の画像600の各画素が原画像500のどの画素を拡大した結果であるかをも同時に知ることができる。したがって、拡大後の領域901から拡大前の領域902を求める際には、領域901に含まれる各画素の拡大元の画素の集合を求めれば良い。ただし、画素501と領域601の関係からも明らかなように拡大後の各画素は元の画素を拡大した領域の一部でしかないが、それが領域901に属しているのならば、その拡大元の画素は領域902に含めるようにしなければならない。
【0031】
図10は、画像600を4つの領域1001,1002,1003,1004に分割して処理を行う場合の分割例を示している。
このとき、それぞれの領域に対応する原画像の領域は、図11に示した領域1101,1102,1103,1104である。先に述べた理由から、ある原画素の拡大後の領域を跨いだ分割の場合(図10)、原画像中の4つの領域1101,1102,1103,1104は一部が互いに重なりあった状態となる。例えば領域1101と領域1102とでは3つの画素(3,0)、(3,1)、(3,2)が両方の領域内に存在することとなる。
【0032】
ところで、画像の解像度変換処理では変換後のある画素を作り出すために、変換元の画素の周辺の画素も必要とするものが少なくない。例えば線形補間法では、拡大後の画素の位置によって拡大前の隣接する画素間の割合を求めて新しい画素を作り出している。また、前出の特開平7−105359号における解像度変換方法でも、処理の際に周囲の画素を必要とする。ところが周辺画素が何画素必要であるかは各方法によって、さらには求める処理精度によっても変化する。本実施の形態では、解像度変換モジュールが変換後の領域に対応する原領域を決定する際に予めこの情報を含めておくことで、ドライバ側が各方法毎にデータを引き渡す方法を変更しなくても済むようにしている。
【0033】
例えば、倍率テーブル701,702によって求められた領域1101は領域1001に対応する原領域であるが、ドライバから呼び出される拡大方法が各原画素の周囲1画素を必要とする場合には、領域1101に領域1111を足した領域をドライバに通知することで、必要なデータの全てをドライバから渡してもらえることとなる。同様に領域1002,1003,1004に対してはそれぞれ1102+1112、1103+1113、1104+1114が対応することになる。そしてこの際、新たに必要な領域(1111,1112,1113,1114)が原画像で賄えるならばこれを使用することで、領域毎に処理を分けた場合でも処理後の結果は領域を分割しなかった場合と全く同じ連続した画像が得られる。何故ならば、先に述べたように各領域の周辺部分は他の領域と重なり合っているので重複して処理される部分が多少発生するものの、各画素に対しては全く同じ処理が施されることになるからである。
【0034】
図12は、画像の領域分割に際して更に画像の周囲部分の処理(端部処理)を組み込んだ例を示した図である。
図において、1200は原画像を示し、指定された領域から周辺画素を含んでいない原領域1201が倍率テーブル701,702によって求められたとする。この時、原画像1200のサイズは縦SH画素、横SW画素であり、領域1201のサイズは縦RH画素、横RW画素であって、領域1201の左上の画素1202は画像1200の画素(RX,RY)に位置するものとする(図12の例では、SH=10,SW=10,RH=5,RW=8,RX=0,RY=1)。そして、拡大処理に原画素の周囲B画素(図12の例では、B=3)の情報が必要であるとすると、その一部は原画像1200中には存在しない位置の画素となってしまう。この場合、本実施の形態では、原画像1200中から得られる画素はできるだけこれを利用し、原画像から得られない画素は最も近い画素の値をコピーすることで仮想的な画像1206を作成し、これを解像度変換処理に使用することで画像処理手順の簡略化及び画像周辺での画質劣化を防止する。
【0035】
図12において領域1203は原画像を利用して調整された領域であり、領域1204は領域1203の周辺の画素をコピーして作成された領域である。この時、ドライバには領域1203の開始点1205の座標(RX’,RY’)とそのサイズの縦RH’画素、横RW’画素の情報を通知することで、原画像1200の内で最大限利用できる領域を解像度変換処理モジュールはドライバから得ることができる(図12の例では、RX’=0,RY’=0,RH’=9,RW’=10)。また、同時に周辺でのコピーする画素数の情報を保存しておくことで画像1206を作り出すことができることは容易に想像できる。図12では、CT、CB、CL、CRがそれぞれ領域1203での上端、下端、左端、右端でのコピー画素数を示している(図12の例では、CT=2,CB=0,CL=3,CR=1)。このとき、当然のことながら、B+RH+B=CT+RH’+CB、及び、B+RW+B=CL+RW’+CRの2式が必ず成立しなければならない。
【0036】
以上のステップS305の対応領域の計算方法の流れを示したものが、図13である。ここでは、座標(DRX,DRY)を左上の点とする縦RDH画素、横DRW画素からなる領域に対応する原領域を、倍率テーブルTXとTYを使って計算する。また同時に、開始点(DRX,DRY)が原画素(RX,RY)を拡大した時の領域のどの位置に対応しているかを、OXとOYとに格納している。このOXとOYの情報は、拡大方法によっては出力開始点の計算をする上で計算係数の初期値を決める際などに利用される重要な値となる。
【0037】
ステッ0プS1301からS1306は、領域1201の左上の点のY座標を求める操作である。縦方向の倍率テーブルTY[i]の各要素を順に加算しながら(ステップS1304;zに加算後、iを1増加)、開始点のY座標値DRYと比較することで(ステップS1303)、開始点の元となる画素のY座標RYをテーブルのインデックスiの値から求めている(ステップS1306)。また途中の値を利用してOYの値を求めることができる(ステップS1305)。
【0038】
ステップS1307からS1309は、領域1201の縦の画素数を求める操作である。縦方向の倍率テーブルTY[i]の各要素を更に順に加算しながら(ステップS1304;zに加算後、iを1増加)、値DRY+DRHと比較することで(ステップS1308)、領域1201の縦の画素数RHをテーブルのインデックスiと先に求めたRYの値から求めている(ステップS1309)。
【0039】
ステップS1310からS1315は、領域1201の左上の点のX座標と求める操作である。横方向の倍率テーブルTX[i]の各要素を順に加算しながら(ステップS1313;zに加算後、iを1増加)、開始点のX座標値DRXと比較することで(ステップS1312)、開始点の元となる画素のX座標RXをテーブルのインデックスiの値から求めている(ステップS1315)。また途中の値を利用してOXの値を求めることができる(ステップS1314)。
【0040】
ステップS1316からS1318は、領域1201の横の画素数を求める操作である。横方向の倍率テーブルTX[i]の各要素を更に順に加算しながら(ステップS1317;zに加算後、iを1増加)、値DRX+DRWと比較することで(ステップS1316)、領域1201の横の画素数RWをテーブルのインデックスiと先に求めたRXの値から求めている(ステップS1318)。
【0041】
領域1201の開始点座標(DRX,DRY)と大きさ(DRW,DRH)が求まったならば、次に必要な周辺画素の数と原画像の大きさを考慮して、ドライバに要求する領域1201+1203の開始点とその大きさを求める。
ステップS1319,S1320は以下の操作のための準備であり、CT、CB、CL、CRを0で初期化し、RX’、RY’、RW’、RH’をそれぞれに対応する値RX、RY、RW、RHで初期化しておく。
【0042】
ステップS1321からS1325は、領域1201の上側の調整を行う操作である。先に求めた領域1201の開始点のY座標RYと周辺画素数Bを1ずつ減じた値(ステップS1321)とを比較して(ステップS1322)、RYの値がこれに同じか、大きければ使用できる原画素が上方にあることを意味するので、領域1201を上側に1画素分拡張する(ステップS1323,S1324)。逆にRYの方が小さければ、領域1201は原画像1200の上端を越えるので、上端部のコピー画素数を記憶するCTに1を加算する(ステップS1325)。
【0043】
ステップS1326からS1330は、領域1201の下側の調整を行う操作である。先に求めた値RY’とRH’とを加算した値R(ステップS1326)と、原画像1200の縦の画素数SHから、周辺画素数Bを1ずつ減じた値(ステップS1327)を差し引いた値とを比較して(ステップS1328)、Rの値がこれに同じか、小さければ使用できる原画素が下方にあることを意味するので、領域1201を下側に1画素分拡張する(ステップS1329)。逆にRの方が大きければ領域1201は原画像1200の下端を越しているので、下端部のコピー画素数を記憶するCBに1を加算する(ステップS1330)。
【0044】
ステップS1331からS1335は、領域1201の左側の調整を行う操作である。先に求めた領域1201の開始点のX座標RXと周辺画素数Bを1ずつ減じた値(ステップS1331)値とを比較して(ステップS1332)、RXの値がこれに同じか、大きければ使用できる原画素が左方にあることを意味するので、領域1201を左側に1画素分拡張する(ステップS1333,S1334)。逆にRXの方が小さければ領域1201は原画像1200の左端を越えているので、左端部のコピー画素数を記憶するCLに1を加算する(ステップS1335)。
【0045】
ステップS1336からS1340は、領域1201の右側の調整を行う操作である。先に求めた値RX’とRY’とを加算した値R(ステップS1336)と、原画像1200の横の画素数SWから、周辺画素数Bを1ずつ減じた値(ステップS1337)を差し引いた値とを比較して(ステップS1338)、Rの値がこれに同じか、小さければ使用できる原画素が右方にあることを意味するので、領域1201を右側に1画素分拡張する(ステップS1339)。逆にRの方が大きければ領域1201は原画像1200の右端を越えているので、右端部のコピー画素数を記憶するCRに1を加算する(ステップS1330)。
【0046】
以上、上記ステップS1301からS1340によって求めた各値をドライバ側と解像度変換処理モジュール側とで使用することで、画像1206をメモリ上に作り出すことができる。そして画像1206を処理することで画像周辺の歪みを抑えた、また各領域間で不連続が生じない出力を得ることが可能となる。
(分割領域の解像度変換例)
さて、分割された領域に対する原画像上の領域(開始点(RX’,RY)、縦RH’画素、横RW’画素)がステップS305によって得られたならば、ステップS306からS312によって、この領域の解像度変換を行う。
【0047】
解像度変換は、ステップS308で得られる状態変数Statusの値によって制御される。Statusは解像度変換の終わりを示すEND、次のデータの引渡を要求するPASS_SRC、解像度変換処理モジュールからの出力の引き取りを指示するTAKE_DSTのいずれか、あるいはPASS_SRCとTAKE_DSTとの組合せを保持する。
【0048】
ステップS306では、StatusをPASS_SRCで初期化し、原領域の最初のラインを解像度変換処理モジュールに引き渡すよう指示する。そして、ステップS306の後は、Statusの値がENDになるまでステップS308からS312までの操作を繰り返す(ステップS307)。
このように状態変数Statusを導入するのは、拡大処理の場合には1ラインの入力から複数のラインの出力が得られること、周辺の画素を必要とする処理方法では最初の数ラインの入力からは出力が得られないこと、縮小処理の場合には複数ラインの入力で1ラインの出力しか得られないこと等、画像処理の違いによる事情に同時に対処するためである。状態変数を導入することで、ドライバはどんな処理方法を使っても解像度変換処理モジュールの返す状態にしたがって、入力の引き渡し、出力の引き取りをしさえすれば良い。そしてこのように1ラインずつの処理というインターフェースを実現することで、ドライバは任意の大きさの領域(任意のライン数単位の領域)の任意の倍率での拡大/縮小を、画像解像度変換処理モジュールを使って統一的に処理できるようになる。
【0049】
ところで、全ての解像度変換処理において1ラインずつの処理を実現するためには、解像度変換処理モジュール内に解像度変換処理に必要なバッファを用意する必要がある。幅がRW画素である原領域を周辺B画素を必要とする方法で解像度変換する場合には、少なくともRW+B+B画素分の幅のものがB+B+1ライン分必要となる。解像度変換処理モジュールではこれらのバッファに順次入力されたデータを蓄え、バッファが一杯になった段階で解像度変換処理を開始する。そして必要に応じてバッファをシフト(最も古いデータを捨てて次の入力を格納する)して、次のラインの処理を開始する。なお、データの取り込みの際には、先に求めたCL、CRの値を使ってバッファの両端を調整する。
【0050】
解像度変換処理モジュール内のバッファの様子を示したのが図15である。
図15において、(a)は空の状態、(b)は最初の1ライン目がバッファ1505に取り込まれた状態、(c)から(e)は2から4番目のラインがバッファシフトを行いながら次々とバッファ1505に取り込まれていった状態を示している。(f)に至り解像度変換処理モジュール内の全てのバッファは入力データによって満たされた状態となり、画素1506の処理が領域1507の画素を用いて行われる。各画素の処理は(g)から(i)に示したように右に1画素ずつずれて(1508,1510,1512)行き、それに伴って使用される領域も右に1画素ずつ移動して行く(1509,1511,1513)。そして、バッファ1503の処理が終わったならば、結果を出力し、このラインを使っての処理が終わったならば、(j)に示すように、バッファをシフトして新たなラインを取り込んで、画素1514の処理を領域1515の画素を使って開始する。
【0051】
図14にステップS308における処理の流れを示す。
ステップS1401では指定領域の全ての処理が終わったかどうかを判定する。これは既に何ライン出力したかを調べること等で実現できる。そして全ての処理が終了しているのならば、状態変数StatusにENDをセットして終了する。この結果、ステップS307によって原領域での処理の終了が検出され、ステップS303によって次の領域の処理が開始される。
【0052】
逆にステップS1401によって原領域での全ての処理が終わっていないと判定されたならば、状態変数Statusの値を調べて(ステップS1403)、もしこの時の状態がPASS_SRCを含んでいれば、次のデータがドライバより渡されて来ているので、ステップS1404においてバッファのシフトを行い、ステップS1405において渡された次のラインをバッファに取り込む。そして最初のラインが渡された時に上端のコピーが必要であれば、CTに格納されたライン数分、バッファに格納されたラインデータのコピーを行う(ステップS1406〜S1409)。
【0053】
ラインデータの取り込が終わったならば、全てのバッファがラインデータで満たされていることを確認して(ステップS1410)、1ライン分の処理を行う(ステップS1411)。この処理にはこれまで述べて来たように様々な方法を使うことができるが、拡大なのか縮小なのかそもそもステップS1411が実行されたのかにより出力ラインが作成されない場合があることに留意する必要がある。このためステップS1412において出力ラインが作成されたかを調べ、作成されていたならばステップS1413によってStatusにTAKE_DSTをセットし、そうでなければステップS1414によってStatusに0(END、PASS_SRC、TAKE_DSTのいずれでもまた組合せでもない値)をセットしておく。
【0054】
そして、次回の処理に次のラインデータの入力が必要であるかをステップS1415において判定し、もしそうであればステップS1416において次のデータが存在するかを判定する。もし現在のラインが原画像の下端であり次のデータが取得できない場合には、ステップS1417でバッファシフトを行い、ステップS1418で最後に入力されたラインデータをバッファにコピーする。また、現在のラインが画像の下端に達していなければ、ステップS1413またはS1414で設定したStatusにPASS_SRCを追加して処理をステップS1401へ戻す。
【0055】
こうして設定された状態変数Statusの値はステップS309及びS311で調べられ、値に応じた対応を行った後にステップS307へ戻る。
さて、ステップS308において設定されたStatusがもしPASS_SRCを保持していたならば、次回に解像度変換処理モジュールを呼び出す際に引き渡す入力データを現在の次のラインに更新する(ステップS319)。また、ステップS308において設定されたStatusがもしTAKE_DSTを保持していたならば、解像度変換処理モジュールからの出力をあらかじめ用意した出力バッファに書き込む(ステップS312)。なお、ステップS310とS312は、同一ループ内ではStatusの値によりどちらか一方のみ実行されることもあり、両方とも実行されることもある。
【0056】
以上、図4に示した画像解像度変換処理の流れを中心に、本発明の第1の実施の形態について述べた。ここで説明したように、本実施の形態によれば、従来の問題点が解決され、様々な種類の画像解像度変換処理方法をプリンタドライバに対して統一したインターフェイスで組み込むことが可能となり、解像度変換処理のドライバへの組み込みが可能となった。
【0057】
(第2の実施の形態)
第2の実施の形態を図16から図19に基づき説明する。
第1の実施の形態では原画像を縦横ともに拡大する例を示したが、本発明の適用はこの場合に限定されるものではない。拡大と縮小の組み合わせにより倍率テーブルの作成手順のみ若干異なることになるが、基本的な処理手順は全く同じである。本実施の形態では縮小の場合の手順を示すが、倍率テーブルの作成部分を中心に記述する。例として挙げるのは、図5に示した画像500(縦4画素、横6画素)を図16に示したサイズの画像1600(縦3画素、横4画素)に変換する場合である。この例では画像500が縦横にそれぞれ3/4、4/6倍に縮小される。
【0058】
図17は、この例での倍率テーブルの内容を示したものであり、倍率の逆数で表されている。
画像500の各列はそれぞれX方向の倍率テーブル1701にしたがって1/2,1,1/2,1倍され、各行はそれぞれY方向の倍率テーブル1702にしたがって1,1/2,1倍されることが示されている。そしてこれらのテーブルによって、画像500における画素501は、画像1600における画素(1,1)の一部1601に、画素502は画素(3,1)の一部となることが分かる。一般に縮小の場合には、複数の原画素により変換後の1画素が生成されることとなる。この様な場合、変換後の各画素は、これを構成する複数の原画素の中から1画素を選ぶ(間引き)方法や複数の原画素を混ぜ合わせる方法等によって作成されることが一般的であるが、本実施の形態では縮小の方法にも特に制限はなく拡大と同じインターフェイスで画像の縮小が可能である。
【0059】
図18は、倍率テーブル1701,1702の作成方法を示した図面である。図中SH、SWはそれぞれ解像度変換前の画像の縦と横の画素数(例ではSH=4,SW=6)を示し、DH、DWはそれぞれ解像度変換後の画像の縦と横の画素数(本例では、DH=3,DW=4)を示している。またTY[i]はY方向の倍率テーブル1702のi番目の要素を示し、TX[i]はX方向の倍率テーブル1701のi番目の要素を示している。なお割算は整数演算であり結果は切り捨てられる(例えば、4/3=1)。
【0060】
処理の流れを説明すると、まずステップ1800で演算の誤差を格納する変数eを0で初期化する。次にステップS1801では変数iを1ずつ増やしながら0からDH−1までステップS1802とS1803を繰り返す。ステップS1802ではY方向の倍率テーブルの各要素の値を蓄積された計算誤差を考慮しながら求め、ステップS1803では計算誤差の更新を行う。この結果、ステップS1800からS1803によってY方向の倍率テーブル1702が作成される。
【0061】
同様にステップS1804で演算の誤差を格納する変数eを再度0で初期化し、次にステップS1805では変数iを1ずつ増やしながら0からDW−1までステップS1806とS1807を繰り返す。ステップS1806ではX方向の倍率テーブルの各要素の値を蓄積された計算誤差を考慮しながら求め、ステップS1807では計算誤差の更新を行う。この結果、ステップS1804からS1807によってX方向の倍率テーブル1701が作成される。
【0062】
倍率テーブル1701,1702はこの方法によって作成されたテーブルである。倍率テーブルの各要素は個々に示したように整数値である。倍率テーブルを使う本実施の形態は整数倍の組み合わせにより任意の縮小の解像度変換ができるようになっている。このことは、整数分の1倍の画像サイズの変更しかできない方法であっても、非整数分の1倍の画像サイズ変更が可能になることを示している。なお、倍率テーブルの各要素の値の合計は縮小の場合は処理前の縦横それぞれの画素数に一致する。例えば、X方向の倍率テーブル1701の各要素の合計は6(2+1+2+1)となり、縮小前の画像500の横の画素数6と一致し、Y方向の倍率テーブル1702の各要素の合計は3(1+2+1)となり、縮小前の画像500の縦の画素数4と一致する。
【0063】
図19は、縮小の場合の対応領域の計算方法の手順である。ここでは、座標(DRX,DRY)を左上の点とする縦DRH画素、横DRW画素からなる領域に対応する原領域を倍率テーブルTXとTYを使って計算する。拡大時に求めていたOXとOYは縮小時にはあまり意味がないので、本例では0を格納している。ステップS1901からS1906は、領域1201の左上の点のY座標を求める操作である。縦方向の倍率テーブルTY[i]の各要素を順に加算しながら(ステップS1904)、倍率テーブルのインデックスiと開始点のY座標値DRYと比較することで(ステップS1903)、開始点の元となる画素のY座標RYをテーブルの各要素の加算値から求めている(ステップS1906)。
【0064】
ステップS1907からS1909は、領域1201の縦の画素数を求める操作である。縦方向の倍率テーブルTY[i]の各要素を更に順に加算しながら(ステップS1907)、倍率テーブルのインデックスiと値DRY+DRHと比較することで(ステップS1908)、領域1201の縦の画素数RHをテーブルの各要素の加算値と先に求めたRYの値から求めている(ステップS1909)。
【0065】
ステップS1910からS1915は、領域1201の左上の点のX座標を求める操作である。横方向の倍率テーブルTX[i]の各要素を順に加算しながら(ステップS1913)、倍率テーブルのインデックスiと開始点のX座標値DRXと比較することで(ステップS1912)、開始点の元となる画素のX座標RXをテーブルの各要素の加算値から求めている(ステップS1915)。
【0066】
ステップ1916SからS1918は、領域1201の横の画素数を求める操作である。横方向の倍率テーブルTX[i]の各要素を更に順に加算しながら(ステップS1917)、倍率テーブルのインデックスiと値DRX+DRWと比較することで(ステップS1916)、領域1901の横の画素数RWをテーブルの各要素の加算値と先に求めたRXの値から求めている(ステップS1918)。
【0067】
領域1201の開始点座標と大きさが求まったならば、次に必要な周辺画素の数と原画像の大きさとを考慮して、ドライバに要求する領域1201+1203の開始点とその大きさを求めるが、この手順は第1の実施の形態と全く同じであるため説明は省略する。
そしてこれまで説明した手順により画像1206を作成できるパラメータが揃ってしまえば、どんな解像度変換処理でも利用できる。図14に関しては縮小の場合も拡大と同じに動作するが、縮小の場合はステップS1417に入り込まない限り、Statusには必ずPASS_SRCが含まれることになる。
【0068】
以上説明したように、縮小の場合も倍率テーブルの作成手順と変換後の領域から変換前の領域を作成する手順を若干手直しするだけで、拡大の時と全く同様に解像度変換処理を扱うことができる。
(第3の実施の形態)
第3の実施の形態を図20から図21に基づき説明する。
【0069】
第1の実施の形態では原画像を縦横ともに拡大する例を、第2の実施の形態では原画像を縦横ともに縮小する例を示したが、本発明の適用はこれらの場合に限定されるものではない。本例として挙げるのは、図5に示した画像500(縦4画素、横6画素)を図20に示したサイズの画像2000(縦6画素、横4画素)に変換する場合である。本例では画像500が縦には6/4倍に拡大され、横には4/6倍に縮小される。
【0070】
図21は、本例での倍率テーブルの内容を示したものであり、X方向は倍率の逆数、Y方向は倍率が示されている。
画像500の各列はそれぞれX方向の倍率テーブル2001にしたがって1/2,1,1/2,1倍され、各行はそれぞれY方向の倍率テーブル2002にしたがって2,1,2,1倍されることが示されている。そしてこれらのテーブルによって、画像500における画素501は画像2000における領域2001に、画素502は画素2002となることが分かる。
【0071】
このように拡大と縮小が混在する場合には、第1の実施の形態と第2の実施の形態とで示した倍率テーブルの作成手順と変換後の領域から変換前の領域を作成する手順を組み合わせることで、画像1206を作成するための全パラメータを容易に得ることができ、その後は拡大と縮小の方法を順に適用することで目的の画像が得られることが容易に想像できる。
【0072】
以上説明したように、拡大と縮小が混在する場合も倍率テーブルの作成手順と変換後の領域から変換前の領域を作成する手順を若干手直しするだけで、他の場合と全く同様に解像度変換処理を扱うことができる。
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0073】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0074】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0075】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0076】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図22のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。すなわち、少なくとも倍率テーブル作成モジュール、対応領域計算モジュール、サイズ変更処理モジュール、および(他のプログラムとの)インターフェースモジュールの各モジュールのプログラムコードを記憶媒体に格納すればよい。更に、これらモジュールを解像度変換モジュールとして組み込んだプリンタドライバを、記憶媒体に格納してもよい。
【0077】
【発明の効果】
以上説明したように、本発明によれば、簡単な操作及び手順で、非整数倍率を含む任意の倍率に対応できる画像解像度変換方法及びそれを実現する画像解像度変換モジュールが提供できる。
特に、コンピュータ上でソフトウェアとして実現されるデジタルフィルタ系の拡大縮小方法であっても、統一されたインターフェースによってプリンタドライバに効率良く組み込まれる画像解像度変換方法及びそれを実現する画像解像度変換モジュールが提供できる。
【0078】
更に、、上記画像解像度変換モジュールが組み込まれたプリンタドライバを提供できる。
具体的な適用によれば、どんな解像度変換の方法であっても統一されたインターフェイスでプリンタドライバへの組み込みを可能にすることにより、各処理方法それぞれにおいて非整数倍率を含む任意の倍率に対応できないという問題、バンド間で出力結果に不連続が生じるという問題、任意のライン数単位での処理に対応できないという問題があってもこれらを解消することができ、プリンタドライバ内でこれらを使用することができるようになる。
【0079】
また、全ての処理方法が任意の矩形領域を処理単位として利用できるようになるので、メモリ量の都合によってはバンドという処理単位を更に細かく分割して処理することもできるようになるという効果がある。また、同様の理由で印刷方向の変化(portraitとlandscape )によるバンド分割の方向の変化に柔軟に対応できるという効果もある。さらには、各処理方法によらずドライバからの呼び出し方法が統一されることになるのでドライバ側の処理が簡略化でき、したがってドライバ本体のプログラムサイズを小さくできる、ドライバ本体のコードに誤りが入りにくくなるなどの効果もある。
【図面の簡単な説明】
【図1】本発明の実施の形態のシステム構成例を示す図である。
【図2】本実施の形態を含む印刷処理部の構成を示すブロック図である。
【図3】画像データに関する描画処理の構成を示すブロック図である。
【図4】画像解像度変換処理の手順例を示す図である。
【図5】原画像の例を示す図である。
【図6】拡大時の変換後の画像の例を示す図である。
【図7】拡大時の倍率テーブルの例を示す図である。
【図8】拡大時の倍率テーブル作成の手順例を示す図である。
【図9】変換前後の領域の対応を示す図である。
【図10】領域分割の例を示す図である。
【図11】領域分割された原画像上の領域を示す図である。
【図12】原領域の調整を説明する図である。
【図13A】対応領域作成の手順例を示す図である。
【図13B】対応領域作成の手順例を示す図である。
【図14】サイズ変更処理の手順例を示す図である。
【図15】バッファの使用状態を説明する図である。
【図16】縮小時の変換後の画像の例を示す図である。
【図17】縮小時の倍率テーブルの例を示す図である。
【図18】縮小時の倍率テーブル作成の手順例を示す図である。
【図19A】対応領域作成の手順例を示す図である。
【図19B】対応領域作成の手順例を示す図である。
【図20】拡大と縮小が組み合わされた場合の変換後の画像の例を示す図である。
【図21】拡大と縮小が組み合わされた場合の倍率テーブルの例を示す図である。
【図22】記憶媒体上のメモリマップ例を示す図である。
Claims (26)
- 画像データの解像度を変換する解像度変換モジュールであって、
変換前後の解像度を表わす情報を外部より受け取るステップと、
前記情報から変換前の原画像の各画素の倍率を求めるステップと、
変換後の画像サイズを基準に分割された処理領域の情報を外部より受け取るステップと、
前記分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求めるステップと、
求められた前記変換前の原画像上の領域に対応する情報を外部に渡すステップと、
外部より、前記領域の原画像データを受け取るステップと、
前記受け取った原画像データのサイズを前記各画素の倍率を基に変更するステップと、
外部に対して、前記領域の解像度変換後のデータを渡すステップとを備えることを特徴とする解像度変換モジュール。 - 画像処理プログラムに組み込まれて使用され画像データの解像度を変換する解像度変換モジュールであって、
変換前後の解像度を表わす情報を前記画像処理プログラムから受け取るステップと、
前記情報から変換前の原画像の各画素の倍率を求めるステップと、
変換後の画像サイズを基準に分割された処理領域の情報を、前記画像処理プログラムから受け取るステップと、
前記分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求めるステップと、
前記画像処理プログラムに対し、前記求められた原画像上の領域の情報を渡すと共に原画像データの受渡し要求をし、該領域の原画像データを受け取るステップと、 前記求められた原画像上の領域毎に、前記各画素の倍率を基に画像のサイズを変更するステップと、
前記画像処理プログラムに対し、サイズ変更後のデータの引き取り要求をし、前記領域の解像度変換後のデータを渡すステップとを備えることを特徴とする解像度変換モジュール。 - 前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズであることを特徴とする請求項1又は2記載の解像度変換モジュール。
- 前記画像処理プログラムはプリンタドライバであって、前記変換後の解像度はプリンタの解像度、前記変換後の画像サイズを基準に分割された処理領域はバンド領域であることを特徴とする請求項2記載の解像度変換モジュール。
- 前記変換前の原画像の各画素の倍率は、複数画素の倍率が変換前後の解像度の倍率になるような整数倍或は整数分の1の組み合わせからならることを特徴とする請求項1又は2記載の解像度変換モジュール。
- 前記分割された処理領域の情報は領域の開始点の位置及び領域の大きさであることを特徴とする請求項1又は2記載の解像度変換モジュール。
- 前記原画像上の領域を求めるステップは、
解像度変換処理に必要な画素数を使って開始点及び大きさを調整するステップと、
原画像の端部を考慮して領域の開始点及び大きさを調整するステップとを含むことを特徴とする請求項6記載の解像度変換モジュール。 - 前記求められた原画像上の領域の情報は領域の開始点の位置及び領域の大きさであることを特徴とする請求項1又は2記載の解像度変換モジュール。
- 前記画像のサイズを変更するステップは、画像データを1ライン分ずつ受け取るステップと、受け取った画像データをサイズ変更に必要なライン分保持するステップと、必要でなくなったラインの画像データを破棄して新たなラインの画像データに更新するステップと、処理後のデータを1ラインずつ出力するステップとを含むことを特徴とする請求項1又は2記載の解像度変換モジュール。
- 画像データの解像度変換モジュールが組み込まれたプリンタドライバであって、
前記解像度変換モジュールが、
変換前後の解像度を表わす情報を前記ドライバから受け取るステップと、
前記情報から変換前の原画像の各画素の倍率を求めて、これを記憶するステップと、
変換後の画像サイズを基準に分割された処理領域の情報を、前記ドライバから受け取るステップと、
前記分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求めるステップと、
前記ドライバに対し、前記求められた原画像上の領域の情報を渡すと共に原画像データの受渡し要求をし、該領域の原画像データを受け取るステップと、
前記求められた原画像上の領域毎に、前記各画素の倍率を基に画像のサイズを変更するステップと、
前記ドライバに対し、サイズ変更後のデータの引き取り要求をし、前記領域の解像度変換データを渡すステップとを備えることを特徴とするプリンタドライバ。 - 前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズであることを特徴とする請求項10記載のプリンタドライバ。
- 画像データの解像度変換を行う画像解像度変換方法であって、
解像度変換を行う解像度変換モジュールと画像データの解像度変換を必要とする画像処理プログラムとがある場合に、
前記画像処理プログラムから前記解像度変換モジュールへ、変換前後の解像度を表わす情報と、変換後の画像サイズを基準に分割された処理領域の情報とを渡し、
前記解像度変換モジュールは、前記変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求め、前記分割された処理領域からこれに対応する変換前の原画像上の領域を前記各画素の倍率を基に求めて、該領域の情報を前記画像処理プログラムに渡して、前記原画像上の領域の原画像データの受渡しを要求し、
前記画像処理プログラムから前記解像度変換モジュールへ、前記領域の原画像データが渡されると、前記解像度変換モジュールは、前記原画像上の領域毎に前記各画素の倍率を基に画像のサイズを変更して、サイズの変更された画像データを前記画像処理プログラムに返すことを特徴とする画像解像度変換方法。 - 前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズであることを特徴とする請求項12記載の画像解像度変換方法。
- 前記原画像上の領域を求める場合に、解像度変換処理に必要な画素数を使って開始点及び大きさを調整し、原画像の端部を考慮して領域の開始点及び大きさを調整することを特徴とする請求項12記載の画像解像度変換方法。
- 画像データの解像度を変換するプログラムを格納するコンピュータ可読メモリであって、
変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求める倍率作成モジュールと、
変換後の画像サイズを基準に分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求める対応領域計算モジュールと、
前記求められた領域の原画像データのサイズを前記各画素の倍率を基に変更するサイズ変更処理モジュールと、
外部より、前記変換前後の解像度を表わす情報、前記分割された処理領域の情報、及び前記求められた領域の原画像データを受け取り、外部に対して、前記求められた領域の情報と前記分割された領域の解像度変換後のデータとを渡すインターフェースモジュールとを含むことを特徴とするコンピュータ可読メモリ。 - 画像データの解像度を変換するプログラムを格納するコンピュータ可読メモリであって、
解像度の変換を行う解像度変換モジュールと該解像度変換モジュールを組み込むプリンタドライバとを有し、
前記解像度変換モジュールは、
変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求める倍率作成モジュールと、
変換後の画像サイズを基準に分割された処理領域からこれに対応する変換前の原画像上の領域を、前記各画素の倍率を基に求める対応領域計算モジュールと、
前記求められた領域の原画像データのサイズを前記各画素の倍率を基に変更するサイズ変更処理モジュールと、
前記プリンタドライバより、前記変換前後の解像度を表わす情報、前記分割された処理領域の情報、及び前記求められた領域の原画像データを受け取り、前記プリンタドライバに対して、前記求められた領域の情報と前記分割された領域の解像度変換後のデータとを渡すインターフェースモジュールとを含むことを特徴とするコンピュータ可読メモリ。 - 前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズであることを特徴とする請求項15又は16記載のコンピュータ可読メモリ。
- 画像データの解像度変換を行う画像解像度変換方法であって、
変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求め、
変換後の画像サイズを基準に分割された処理領域の情報からこれに対応する変換前の原画像上の領域を前記各画素の倍率を基に求め、
前記原画像上の領域の原画像データ単位に、前記各画素の倍率を基に画像のサイズを変更することを特徴とする画像解像度変換方法。 - 前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズであることを特徴とする請求項18記載の画像解像度変換方法。
- 前記変換前の原画像の各画素の倍率は、複数画素の倍率が変換前後の解像度の倍率になるような整数倍或は整数分の1の組み合わせからなることを特徴とする請求項18記載の画像解像度変換方法。
- 前記原画像上の領域を求める場合に、解像度変換処理に必要な画素数を使って開始点及び大きさを調整し、原画像の端部を考慮して領域の開始点及び大きさを調整することを特徴とする請求項18記載の画像解像度変換方法。
- 画像データの解像度変換を伴なう画像処理を行う画像処理装置であって、
前記解像度変換が、
変換前後の解像度を表わす情報から変換前の原画像の各画素の倍率を求める倍率作成手段と、
変換後の画像サイズを基準に分割された処理領域の情報からこれに対応する変換前の原画像上の領域を前記各画素の倍率を基に求める対応領域計算手段と、
前記原画像上の領域の原画像データ単位に、前記各画素の倍率を基に画像のサイズを変更するサイズ変更手段とにより行われることを特徴とする画像処理装置。 - 前記変換前後の解像度を表わす情報は、画素数で表された変換前後の画像データのサイズであることを特徴とする請求項22記載の画像処理装置。
- 前記変換前の原画像の各画素の倍率は、複数画素の倍率が変換前後の解像度の倍率になるような整数倍或は整数分の1の組み合わせからなることを特徴とする請求項22記載の画像処理装置。
- 前記原画像上の領域を求める場合に、解像度変換処理に必要な画素数を使って開始点及び大きさを調整し、原画像の端部を考慮して領域の開始点及び大きさを調整することを特徴とする請求項22記載の画像処理装置。
- 前記変換後の解像度はプリンタの解像度、前記変換後の画像サイズを基準に分割された処理領域はバンド領域であることを特徴とする請求項22記載の画像処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04663697A JP3667025B2 (ja) | 1997-02-28 | 1997-02-28 | 解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 |
US09/031,969 US6333792B1 (en) | 1997-02-28 | 1998-02-27 | Resolution conversion module, printer driver with resolution conversion module, and image resolution conversion method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04663697A JP3667025B2 (ja) | 1997-02-28 | 1997-02-28 | 解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10243215A JPH10243215A (ja) | 1998-09-11 |
JP3667025B2 true JP3667025B2 (ja) | 2005-07-06 |
Family
ID=12752794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04663697A Expired - Fee Related JP3667025B2 (ja) | 1997-02-28 | 1997-02-28 | 解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6333792B1 (ja) |
JP (1) | JP3667025B2 (ja) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587221B1 (en) * | 1999-10-29 | 2003-07-01 | Xerox Corporation | Scanning device and method |
JP2002091725A (ja) * | 2000-09-11 | 2002-03-29 | Canon Inc | 情報処理装置及びシステム及びその制御方法と周辺装置とプリンタドライバ |
US20030231345A1 (en) * | 2002-03-20 | 2003-12-18 | Seiko Epson Corporation | Printer, printing method, medium recording data generation management program, print control device, print control method, medium recording print control program, and print system |
JP4066803B2 (ja) * | 2002-12-18 | 2008-03-26 | 株式会社ニコン | 画像処理装置、画像処理プログラム、画像処理方法および電子カメラ |
US7259888B2 (en) * | 2003-01-03 | 2007-08-21 | Eastman Kodak Company | Image file bit depth expansion and subsequent manipulation |
US20040145708A1 (en) * | 2003-01-24 | 2004-07-29 | Evans & Sutherland Computer Corporation | Infrared projector |
US6751001B1 (en) | 2003-01-24 | 2004-06-15 | Evans & Sutherland Computer Corporation | Non-sampled auto-format conversion method |
US20050038919A1 (en) * | 2003-08-12 | 2005-02-17 | Konica Minolta Business Technologies, Inc. | User-friendly image forming apparatus and image forming method |
US9910341B2 (en) | 2005-01-31 | 2018-03-06 | The Invention Science Fund I, Llc | Shared image device designation |
US8902320B2 (en) | 2005-01-31 | 2014-12-02 | The Invention Science Fund I, Llc | Shared image device synchronization or designation |
US7920169B2 (en) | 2005-01-31 | 2011-04-05 | Invention Science Fund I, Llc | Proximity of shared image devices |
US20060170956A1 (en) | 2005-01-31 | 2006-08-03 | Jung Edward K | Shared image devices |
US8606383B2 (en) | 2005-01-31 | 2013-12-10 | The Invention Science Fund I, Llc | Audio sharing |
US9489717B2 (en) | 2005-01-31 | 2016-11-08 | Invention Science Fund I, Llc | Shared image device |
US7876357B2 (en) | 2005-01-31 | 2011-01-25 | The Invention Science Fund I, Llc | Estimating shared image device operational capabilities or resources |
US9082456B2 (en) | 2005-01-31 | 2015-07-14 | The Invention Science Fund I Llc | Shared image device designation |
US9325781B2 (en) | 2005-01-31 | 2016-04-26 | Invention Science Fund I, Llc | Audio sharing |
US20060174203A1 (en) | 2005-01-31 | 2006-08-03 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Viewfinder for shared image device |
US9124729B2 (en) | 2005-01-31 | 2015-09-01 | The Invention Science Fund I, Llc | Shared image device synchronization or designation |
JP4546294B2 (ja) * | 2005-03-15 | 2010-09-15 | キヤノン株式会社 | 印刷装置およびその制御方法 |
US9942511B2 (en) | 2005-10-31 | 2018-04-10 | Invention Science Fund I, Llc | Preservation/degradation of video/audio aspects of a data stream |
US9093121B2 (en) | 2006-02-28 | 2015-07-28 | The Invention Science Fund I, Llc | Data management of an audio data stream |
US8681225B2 (en) | 2005-06-02 | 2014-03-25 | Royce A. Levien | Storage access technique for captured data |
US10003762B2 (en) | 2005-04-26 | 2018-06-19 | Invention Science Fund I, Llc | Shared image devices |
US9451200B2 (en) | 2005-06-02 | 2016-09-20 | Invention Science Fund I, Llc | Storage access technique for captured data |
US9967424B2 (en) | 2005-06-02 | 2018-05-08 | Invention Science Fund I, Llc | Data storage usage protocol |
US7782365B2 (en) | 2005-06-02 | 2010-08-24 | Searete Llc | Enhanced video/still image correlation |
US9001215B2 (en) | 2005-06-02 | 2015-04-07 | The Invention Science Fund I, Llc | Estimating shared image device operational capabilities or resources |
US9819490B2 (en) | 2005-05-04 | 2017-11-14 | Invention Science Fund I, Llc | Regional proximity for shared image device(s) |
US20070052982A1 (en) * | 2005-09-07 | 2007-03-08 | Kabushiki Kaisha Toshiba | Color image forming apparatus and image forming method |
WO2007077520A2 (en) * | 2006-01-03 | 2007-07-12 | Ati Technologies, Inc. | Image analyser and adaptive image scaling circuit and methods |
US7891818B2 (en) | 2006-12-12 | 2011-02-22 | Evans & Sutherland Computer Corporation | System and method for aligning RGB light in a single modulator projector |
US20080218773A1 (en) * | 2007-03-05 | 2008-09-11 | Lexmark International, Inc. | Image scaling for an electrophotographic device to obtain various media output speeds |
US8086073B2 (en) * | 2008-02-07 | 2011-12-27 | Seiko Epson Corporation | Non-uniform image resizer |
US8358317B2 (en) | 2008-05-23 | 2013-01-22 | Evans & Sutherland Computer Corporation | System and method for displaying a planar image on a curved surface |
US8702248B1 (en) | 2008-06-11 | 2014-04-22 | Evans & Sutherland Computer Corporation | Projection method for reducing interpixel gaps on a viewing surface |
JP2010098728A (ja) * | 2008-09-19 | 2010-04-30 | Sanyo Electric Co Ltd | 投写型映像表示装置及び表示システム |
US8077378B1 (en) | 2008-11-12 | 2011-12-13 | Evans & Sutherland Computer Corporation | Calibration system and method for light modulation device |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
US10366299B2 (en) * | 2011-10-25 | 2019-07-30 | Bull Hn Information Systems, Inc. | Sorting/scanning system camera upgrade apparatus with backwards compatibility |
US10062017B2 (en) | 2016-04-22 | 2018-08-28 | Eastman Kodak Company | Print engine with adaptive processing |
US9565337B1 (en) | 2016-04-22 | 2017-02-07 | Eastman Kodak Company | Computing array of high-resolution halftone pixel values by addressing halftone dot function and averaging values to determine value at printer resolution |
KR20180086048A (ko) * | 2017-01-20 | 2018-07-30 | 한화에어로스페이스 주식회사 | 카메라 및 카메라의 영상 처리 방법 |
US10885405B2 (en) | 2019-05-21 | 2021-01-05 | Eastman Kodak Company | Correcting cross-track errors in a linear printhead |
US11126107B2 (en) | 2019-05-21 | 2021-09-21 | Eastman Kodak Company | Printer with cross-track position error correction |
US11106954B2 (en) | 2019-09-09 | 2021-08-31 | Eastman Kodak Company | Correcting in-track errors in a linear printhead |
US11138482B2 (en) | 2019-09-09 | 2021-10-05 | Eastman Kodak Company | Printer with in-track position error correction |
US10872278B1 (en) | 2019-09-25 | 2020-12-22 | Eastman Kodak Company | Correcting tone scale errors in a digital printer |
CN114407364B (zh) * | 2021-12-31 | 2023-10-24 | 深圳市纵维立方科技有限公司 | 三维模型的切片方法、打印方法、打印***及电子设备 |
US11797803B1 (en) | 2022-08-10 | 2023-10-24 | Eastman Kodak Company | Track error correction incorporating anti-aliasing |
US11914319B1 (en) | 2022-08-10 | 2024-02-27 | Eastman Kodak Company | Printer providing in-track error correction incorporating anti-aliasing at cross-track positions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06334844A (ja) * | 1993-05-20 | 1994-12-02 | Canon Inc | データ処理方法及びそれを用いた記録装置 |
JP3092769B2 (ja) | 1993-09-30 | 2000-09-25 | キヤノン株式会社 | 画像処理装置 |
US5528704A (en) * | 1993-11-15 | 1996-06-18 | Xerox Corporation | Image resolution conversion using a plurality of image registrations |
-
1997
- 1997-02-28 JP JP04663697A patent/JP3667025B2/ja not_active Expired - Fee Related
-
1998
- 1998-02-27 US US09/031,969 patent/US6333792B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6333792B1 (en) | 2001-12-25 |
JPH10243215A (ja) | 1998-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3667025B2 (ja) | 解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 | |
JP4010460B2 (ja) | 画像処理方法及び画像処理装置 | |
US8547561B2 (en) | Information processing apparatus, printing processing method, and program therefor | |
US5315693A (en) | Method and system for integrating in a single image, character and graphical information by employing data of different pixel resolution | |
JP4940050B2 (ja) | 画像データに歪曲収差補正を施す画像処理方法、プログラム、および、記録媒体 | |
JP2012049826A (ja) | 画像処理装置及び画像処理方法 | |
US20100259557A1 (en) | Methods and apparatus for rendering images | |
JP3347735B2 (ja) | 印刷枚葉紙の電子モンタージュ方法 | |
US6961069B2 (en) | Method of and system for visually selecting process area for efficient image processing | |
US6492994B2 (en) | Image editing method and apparatus and image composing method and apparatus | |
US7155669B1 (en) | System, method and apparatus for changing output size of an electronically transmitted document | |
JP2017170884A (ja) | 画像処理装置、その制御方法、およびプログラム | |
JP2013122661A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
JP2007122621A (ja) | 情報処理装置、情報処理方法 | |
JP2009066926A (ja) | 画像処理装置及び画像形成システム | |
JPH0581397A (ja) | ページスクロール方法及び画像処理装置 | |
JPH01191572A (ja) | 画像生成装置 | |
US7394568B1 (en) | Method, system, and logic for selecting pixel data from multiple objects | |
JP3419450B2 (ja) | 画素データ処理装置および方法 | |
JP3741183B2 (ja) | 画像データ補間装置、画像データ補間方法および画像データ補間プログラムを記録した媒体 | |
JPH01284976A (ja) | 画像処理システム | |
JP2004021925A (ja) | 画像処理装置 | |
JP2020026107A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
JPH0713541A (ja) | 画像処理方法及び装置 | |
JP2010056637A (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050215 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050311 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050405 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100415 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110415 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130415 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130415 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |