JP2007043461A - 画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体 - Google Patents
画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2007043461A JP2007043461A JP2005225064A JP2005225064A JP2007043461A JP 2007043461 A JP2007043461 A JP 2007043461A JP 2005225064 A JP2005225064 A JP 2005225064A JP 2005225064 A JP2005225064 A JP 2005225064A JP 2007043461 A JP2007043461 A JP 2007043461A
- Authority
- JP
- Japan
- Prior art keywords
- image
- magnification
- intermediate code
- enlargement
- enlarging
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 132
- 230000015654 memory Effects 0.000 abstract description 36
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000000859 sublimation Methods 0.000 description 1
- 230000008022 sublimation Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Abstract
【課題】 少ないメモリ容量で、画像を拡大する処理を高速に実行することができる画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体を提供すること。
【解決手段】 イメージ画像Fを整数倍(M1倍)に拡大した後、実数倍(M2倍)に拡大する処理において、整数倍の拡大を行うときには、ソースデータとしてシステムメモリS−MEMに記憶されているイメージ画像Fをバイリニア法を用いて整数倍に拡大し、拡大したイメージ画像GBのソースデータをシステムメモリS−MEMに記憶する。実数倍の拡大を行うときには、イメージ画像GBのソースデータを読み出して、イメージ画像GBを実数倍に拡大したイメージ画像Hの画素値をニアレストネイバー法により補間し、バンドバッファB−BUFに記憶することにより、イメージ画像HのRGBデータを生成する。
【選択図】 図12
【解決手段】 イメージ画像Fを整数倍(M1倍)に拡大した後、実数倍(M2倍)に拡大する処理において、整数倍の拡大を行うときには、ソースデータとしてシステムメモリS−MEMに記憶されているイメージ画像Fをバイリニア法を用いて整数倍に拡大し、拡大したイメージ画像GBのソースデータをシステムメモリS−MEMに記憶する。実数倍の拡大を行うときには、イメージ画像GBのソースデータを読み出して、イメージ画像GBを実数倍に拡大したイメージ画像Hの画素値をニアレストネイバー法により補間し、バンドバッファB−BUFに記憶することにより、イメージ画像HのRGBデータを生成する。
【選択図】 図12
Description
画像を構成する画素数を増加させることにより、画像を拡大する画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体に関する。
従来、画像を拡大する場合には、拡大して画素数が増加した画像の画素値を、バイリニア法(共1次内挿法)、バイキュービック法(3次畳み込み内挿法)、またはニアレストネイバー法(最近隣内挿法)などを用いて補間することにより行われる。バイリニア法では、補間対象の画素に対して周辺にある拡大前の4つの画素の画素値を用いて線形補間し、バイキュービック法では、周辺にある拡大前の16の画素の画素値を用いて補間する。ニアレストネイバー法では、補間対象の画素に対して最も近い1つの画素の画素値を、当該補間対象の画素の画素値とすることにより補間する。バイリニア法、バイキュービック法によれば、複数の画素の画素値を用いて補間しているので、ニアレストネイバー法に比べてより高画質な画像を得ることができる。一方、ニアレストネイバーによれば、バイリニア法、バイキュービック法に比べて演算量を少なくすることができるので、より高速に処理することができる。
そこで、バイリニア法、バイキュービック法、またはニアレストネイバー法を適宜使い分けることにより、画質と処理速度を両立させることが行われている。例えば、特許文献1に記載の技術では、拡大した画像の画素ごとに補間方法を使い分けている。特許文献2に記載の技術では、画像データのうち視覚の感度が高い輝度成分と視覚の感度が低い色差成分とで補間方法を使い分けている。
また、特許文献3に記載の技術では、バイリニア法により縮小した画像に対して、さらにニアレストネイバ−法により拡大する処理を行っている。
しかしながら、特許文献1または特許文献2に記載の技術では、バイリニア法、バイキュービック法を用いたときの演算量を減少させることはできない。特に、画像を拡大する倍率が実数倍であれば、バイリニア法、バイキュービック法の処理には膨大な演算量が必要となり、処理時間が長くなってしまう。
また、特許文献3に示すように、バイリニア法により変換した画像をさらにニアレストネイバ−法により拡大するようにして、画像の大きさを2段階に変換することもある。このとき、ニアレストネイバ−法により拡大した最終画像を記憶するためのメモリ領域に加えて、バイリニア法により拡大した画像を一時記憶しておくためのメモリ領域が必要になり、使用するメモリ領域が大きくなってしまう。
そこで、本発明は、少ないメモリ容量で、画像を拡大する処理を高速に実行することができる画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体を提供することを目的とする。
上記目的を達成する本発明の画像拡大装置は、印刷ページに含まれる印刷対象画像を拡大する画像拡大装置であって、印刷対象画像を拡大するための第1の倍率および第2の倍率を設定する倍率設定部と、第1の倍率に応じて印刷対象画像を拡大することにより中間拡大画像を生成し、中間拡大画像および印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する中間コード登録部と、中間拡大画像を第2の倍率に応じて拡大したときの各画素について、中間コードデータに基づいて補間した画素値を、印刷ページに対応するビットマップ画像の画素値とすることにより、中間コードデータをビットマップ画像に展開する中間コード展開部と、を備えることを特徴とする。
この構成によれば、中間コード登録部は、第1の倍率に応じて印刷対象画像を拡大することにより中間拡大画像を生成し、中間拡大画像および印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する。中間コード展開部は、中間拡大画像を第2の倍率に応じて拡大したときの各画素について、中間コードデータに基づいて補間した画素値を、印刷ページに対応するビットマップ画像の画素値として展開する。中間拡大画像を第2の倍率に応じて拡大した画像を生成することなく、拡大した印刷対象画像を含むビットマップ画像に展開することができるので、中間拡大画像を第2の倍率に応じて拡大した画像を記憶しておくためのメモリが不要になり、処理に要するメモリ容量を少なくすることができる。また、中間拡大画像を第2の倍率に応じて拡大した画像をメモリに格納することなく展開しているので、より高速に処理することができる。
ここで、倍率設定部は、印刷対象画像を拡大画像に拡大する倍率を拡大倍率として、拡大倍率の整数部分の値、または拡大倍率に最も近い整数値を第1の倍率に、拡大倍率を第1の倍率で除算した実数値を第2の倍率に設定し、中間コード展開部は、中間拡大画像を第2の倍率に応じて拡大したときのビットマップ画像の画素に対して周辺に位置する、中間拡大画像の1つの画素を用いて、当該ビットマップ画像の画素を補間することが好ましい。
このようにすれば、実数倍の拡大については、1つの画素を用いて補間しているので演算量が少なくなり、処理全体としてより高速に処理することができる。なお、1つの画素を用いて補間する方法としては、ニアレストネイバー法を用いることがより望ましい。
ここで、印刷対象画像がビットマップ画像である場合に、中間コード登録部は、中間拡大画像の画素に対して周辺に位置する、印刷対象画像の複数の画素を用いて、当該中間拡大画像の画素を補間することが好ましい。
このようにすれば、中間コード登録部が行う整数倍の拡大については、複数の画素を用いて補間するので精度良く補間することができる。なお、複数の画素を用いて補間する方法としては、バイリニア法やバイキュービック法を用いることがより望ましい。
本発明のもう1つの画像拡大装置は、印刷ページに含まれる印刷対象画像を拡大する画像拡大装置であって、印刷対象画像を拡大するための拡大倍率を設定する倍率設定部と、印刷対象画像および印刷ページにおける印刷対象画像の位置を表す中間コードデータを登録する中間コード登録部と、印刷対象画像を拡大倍率で拡大したときの各画素について、中間コードデータに基づいて補間した画素値を、印刷ページに対応するビットマップ画像の画素値とすることにより、中間コードデータをビットマップ画像に展開する中間コード展開部と、を備えることを特徴とする。
この構成によれば、中間コード登録部は、印刷対象画像および印刷ページにおける印刷対象画像の位置を表す中間コードデータを登録する。中間コード展開部は、印刷対象画像を拡大倍率で拡大した拡大画像の各画素について、中間コードデータに基づいて補間した画素値を、印刷ページに対応する画像の画素値として展開するので、印刷対象画像を拡大倍率に応じて拡大した拡大画像を生成することなく、印刷ページに対応するビットマップ画像に展開することができる。したがって、処理に要するメモリ容量を少なくすることができると共に、高速に処理することができる。
また、本発明は、方法の発明とすることもできる。すなわち、本発明の画像拡大方法は、印刷対象画像を拡大するための第1の倍率および第2の倍率を設定する倍率設定工程と、第1の倍率に応じて印刷対象画像を拡大することにより中間拡大画像を生成し、中間拡大画像および印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する中間コード登録工程と、中間拡大画像を第2の倍率に応じて拡大したときの各画素について、中間コードデータに基づいて補間した画素値を、印刷ページに対応するビットマップ画像の画素値とすることにより、中間コードデータをビットマップ画像に展開する中間コード展開工程と、を備えることを特徴とする。
さらに、本発明は、プログラムまたはそのプログラムを記憶した記録媒体とすることもできる。すなわち、本発明の画像拡大プログラムは、印刷ページに含まれる印刷対象画像を拡大する画像拡大プログラムであって、コンピュータに、印刷対象画像を拡大するための第1の倍率および第2の倍率を設定する倍率設定工程、第1の倍率に応じて印刷対象画像を拡大することにより中間拡大画像を生成し、中間拡大画像および印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する中間コード登録工程、中間拡大画像を第2の倍率に応じて拡大したときの各画素について、中間コードデータに基づいて補間した画素値を、印刷ページに対応するビットマップ画像の画素値とすることにより、中間コードデータをビットマップ画像に展開する中間コード展開工程、を実行させることを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやCD−ROM、ICカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
以下、本発明に係る一実施形態について図面を参照して説明する。
図1は、本実施形態に係る印刷システムの構成を示した図である。ホストコンピュータ1は、プリンタドライバ(図示なし)より、PDLなどの所定のプリンタ制御言語で記述された印刷対象データや、印刷対象データの画像を拡大するための倍率情報などを含む印刷ジョブデータをプリンタ2に送信する。印刷ジョブデータを送信するホストコンピュータ1としては、パーソナルコンピュータの他、デジタルスチルカメラ、携帯情報端末、携帯電話など様々な装置を挙げることができる。
プリンタ2は、いわゆるプリンタページモードで印刷することができるカラーレーザプリンタである。プリンタ2は、画像拡大装置100と、プリントエンジン200とを備えている。画像拡大装置100は、所定のプリンタ制御言語で記述された印刷対象データを、印刷可能なCMYK(シアン、マゼンタ、イエロー、ブラック)の各色ドットを表す印刷データに変換し、プリントエンジン200に供給する。プリントエンジン200は、印刷データに従って印刷用紙などの記録媒体にCMYK各色のドットを形成することにより印刷を行う。
次に、画像拡大装置100について説明する。図1に示すように、画像拡大装置100は、言語解釈部10、倍率設定部11、中間コードデータ登録部12、中間コードデータ展開部13、色変換部14、階調数変換部15、および圧縮部16を備えている。
言語解釈部10は、ホストコンピュータ1から送信された印刷ジョブデータを解釈して、印刷対象画像を表す印刷対象データを取得する。また、言語解釈部10は、印刷ジョブデータから印刷対象画像を拡大する拡大倍率も取得する。
倍率設定部11は、取得した拡大倍率に基づき、印刷対象画像を後述するように2段階に拡大するための2つの倍率を設定する。設定する倍率は整数値の倍率、および実数値の倍率の2つであり、次式に従って整数倍の倍率(第1の倍率)M1および実数倍の倍率(第2の倍率)M2を設定する。ここで、Mは印刷対象画像の拡大倍率、int()は、()内の値を超えない最大の整数値を返す関数である。
M1=int(M) (ただし、M>1) …(1)
M2=M/M1 …(2)
M1=int(M) (ただし、M>1) …(1)
M2=M/M1 …(2)
例えば、拡大倍率Mが「2.5」であれば、整数倍の倍率M1は「2」、実数倍の倍率M2は「1.25」となる。整数倍の倍率M1に応じた拡大および実数倍の倍率M2に応じて拡大することにより、拡大倍率Mに応じた拡大となる2つの倍率が設定される。なお、本実施形態にいう倍率とは、拡大する前後での単位長さあたりに含まれる画素数の比をいう。
次に、中間コードデータ登録部12が行う中間コードデータ登録処理について説明する。中間コードデータ登録処理では、まず、印刷対象データを解釈することにより、印刷ページのどこの領域にどのような画像があるかを検出する。そして、印刷対象データが表す印刷対象画像を整数倍の倍率M1に応じて、印刷対象画像を拡大する。図2は、中間コードデータ登録部12が行う処理を説明する図である。印刷対象データが表す印刷ページには、図形、文字、イメージなどの印刷対象画像が含まれているが、以下、印刷対象画像をイメージとして説明する。図2(a)には、拡大前のビットマップ画像であるイメージ画像Fを含む印刷ページが示されている。
イメージ画像Fを整数倍の倍率M1に応じて拡大すると、図2(b)に示すように、整数倍に拡大したイメージ画像(中間拡大画像)Gが生成される。
次に、整数倍に拡大したイメージ画像Gを、複数のバンドに分割して、各バンドを中間コードで表した中間コードデータを生成する処理を行う。中間コードデータ登録部12は、まず、図2(c)に示すように、印刷ページの領域を、所定のバンド高さで分割する。図2(c)の例では、印刷ページを5つのバンド0〜4に分割している。各バンドには、各バンド領域に合わせてイメージ画像Gを分割したイメージ画像GBが含まれている。
中間コードデータは、各バンドに含まれるオブジェクトの位置、領域などの情報を含んたデータである。図3は、中間コードデータのデータ構造を示している。図3に示すように、中間コードデータは、ヘッダ部分と中間コードデータ部分とで構成される。ヘッダ部分には、分割した各バンドに対応するバンド番号などの情報が含まれる。
中間コードデータ部分には、そのバンドに含まれるオブジェクトごとにオブジェクトデータが含まれる。1つのオブジェクトには、例えば、オブジェクトの種別を示す情報(オブジェクト種別情報:イメージ画像、文字などの情報)、オブジェクトの位置情報として座標(x,y)およびサイズ(w,h)等の種々の情報が含まれる。また、オブジェクト自体の画像データは、オブジェクトのソースデータへのポインタPsとして中間コードデータ部分に含まれている。ソースデータは、オブジェクトを表すビットマップデータであり、各画素ごとにRGB各色の画素値が与えられている。したがって、中間コードデータのポインタを参照してソースデータを読み出すことにより、イメージ画像を表すRGB形式のビットマップデータを得ることができる。
図4は、中間コードデータに含まれるオブジェクトの情報を説明するための図である。図4では、図2(c)に示したバンド0を示している。図4に示すように、バンド0に含まれるイメージ画像GBの座標は、バンドの左上を原点として、原点から右向きをx方向、下向きにy方向を定めた座標系に従って決められている。したがって、図4では、イメージ画像GBの左上の位置を原点からの画素数で表した座標(x,y)がイメージ画像GBの座標となる。また、図4に示すように、x方向の画素数である幅w、およびy方向の画素数である高さhがイメージ画像GBのサイズとなる。すなわち、中間コードデータでは、イメージ画像の座標およびサイズにより、描画するイメージ画像の位置を表現している。中間コードデータ登録部12は、イメージ画像GBの座標(x,y)、サイズ(w,h)の値、およびイメージ画像GBのソースデータへのポインタPsを含む中間コードデータを生成する。
なお、図2の例では、印刷ページに含まれるイメージ画像Fは1つとしているが、オブジェクトであるイメージ画像Fの数はこれに限られない。印刷ページに複数のオブジェクトが含まれている場合には、図3に示すように、中間コードデータにはバンドごとに複数のオブジェクトについてのパラメータが記録される。
中間コードデータ展開部13は、中間コードデータに含まれるイメージ画像GBを実数倍の倍率M2に応じて拡大することにより、イメージ画像Fを拡大倍率Mに応じて拡大したイメージ画像を含んだRGBデータに展開する。ここで、RGBデータは、イメージ画像が存在しない領域については、例えば初期値として「0」の画素値を有することにより、バンドごとの印刷ページに対応するビットマップ画像のビットマップデータとなっている。中間コードデータ展開部13が行う処理(以下、中間コード展開処理という)について詳細は後述する。なお、展開するデータは、RGB形式のデータに限られることなく、モノクロデータ、CMYKデータなど他の色表現形式のデータであってもよい。
色変換部14は、展開されたRGBデータに色変換を行い、プリントエンジン200が形成するドットの色に対応するCMYKデータに変換する。
階調数変換部15は、CMYKデータの各色ごとに、ディザ法、誤差拡散法など周知の方法を用いた量子化処理を行うことにより、形成する各色ドットの階調数に対応した階調変換データに変換する。
圧縮部16は、階調変換データを圧縮して印刷データを生成する。
印刷データ出力部17は、印刷データを解凍してパルス幅変調を施し、パルス幅信号の形式で印刷データをプリントエンジン200に出力する。
図5は、画像拡大装置100の具体的ハードウェア構成を示した図である。図5に示すように、画像拡大装置100は、入力インターフェース(以下、入力I/F)50、CPU51、ROM52、ハードディスク53、RAM54、メモリカードスロット55および出力インターフェース(以下、出力I/F)56を備えており、それらはバスを介して互いに接続されている。
入力I/F50は、ホストコンピュータ1とプリンタ2とのインターフェースである。ホストコンピュータ1から所定の伝送方式により伝送された印刷ジョブデータは入力I/F50に入力される。
RAM54は、汎用のワーキングメモリとして機能する。また、RAM54の記憶領域上には、印刷システムの各種処理を実行するために用いるシステムメモリS−MEM、中間コードデータを記憶する中間コードバッファIC−BUF、および中間コードデータ展開したバンドごとのデータを記憶するバンドバッファB−BUFが確保されている。特に、ホストコンピュータ1から伝送された印刷ジョブデータは、入力I/F50を介してシステムメモリS−MEMに記憶される。
CPU51は、ROM52またはハードディスク53に格納された画像拡大プログラムを読み出して、実行することにより画像拡大装置100としての各種の画像処理を行う。すなわち、CPU51が画像拡大プログラムを実行することにより、画像拡大装置100の各構成が機能する。この画像拡大プログラムは、予めROM52やハードディスク53に格納されてもよいし、例えば、メモリカード57などのコンピュータが読み取り可能な記録媒体によって外部から供給され、メモリカードスロット55を介してプリンタ2に備えられたROM52やハードディスク53に格納されてもよい。もっとも、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによって格納されてもよい。
出力I/F56は、画像拡大装置100とプリントエンジン200とのインターフェースである。画像拡大装置100が各種の画像処理を施したデータは、出力I/F56を介してプリントエンジン200に出力され、プリントエンジン200により印刷が行われる。
以上に説明したように、本実施形態に係るプリンタ2では、中間コードデータを登録する際に、整数倍に拡大し、さらに中間コードデータを展開する際に実数倍の拡大を行うことにより、拡大画像のRGBデータを生成する。図6は、プリンタ2が印刷時に行う処理の流れを示すフローチャートである。以下、プリンタ2が行う処理についてフローチャートに従って詳細に説明する。
まず、ユーザがホストコンピュータ1を操作して、印刷する画像ファイル、拡大倍率などの印刷条件を設定して印刷する操作を行うと、ホストコンピュータ1内のプリンタドライバは、印刷対象データおよび拡大倍率Mの倍率情報などを含む印刷ジョブデータを生成し、プリンタ2に送信する。
CPU51が画像拡大プログラムを実行し、プリンタ2が受信した印刷ジョブデータをシステムメモリS−MEMに格納すると、図6のフローチャートに示す処理を開始する。処理を開始すると、まず、ステップS1において、言語解釈部10は、システムメモリS−MEMから読み出した印刷ジョブデータを解釈して、印刷対象データを取得する。また、印刷ジョブデータを解釈して拡大倍率Mを取得し、システムメモリS−MEMに格納する。
次に、ステップS2では、倍率設定部11は、式(1)および式(2)に従って拡大倍率Mから、整数倍の倍率M1および実数倍の倍率M2を算出する。算出した整数倍の倍率M1および実数倍の倍率M2はシステムメモリS−MEMに格納する。
次に、ステップS3では、中間コードデータ登録部12は、中間コードデータを生成して登録する中間コード登録処理を行う。図7は、中間コード登録処理の処理の流れを示したフローチャートである。
中間コード登録処理を開始すると、まず、ステップS30において、中間コードデータ登録部12は、印刷対象データを解釈して、印刷ページに含まれるイメージ画像Fの範囲を算出する。印刷対象データには、印刷ページにおけるイメージ画像Fの座標、幅、高さを示す位置情報が含まれており、印刷対象データの位置情報からイメージ画像Fの範囲を求める。
次に、ステップS31では、中間コードデータ登録部12は、イメージ画像Fの範囲から、整数倍の倍率M1に応じて拡大したイメージ画像Gの範囲を算出し、システムメモリS−MEMの記憶領域に、イメージ画像Gのソースデータを記憶するための領域を確保する。
次に、ステップS32では、中間コードデータ登録部12は、イメージ画像Gの領域を区切るようにして、各バンドごとのイメージ画像Gの領域を認識する。
次に、ステップS33〜ステップS35では、中間コードデータ登録部12は、イメージ画像Gをバンドごとに区切ったイメージ画像GBについての画素値を求める処理を行う。そのため、まず、ステップS33では、注目するバンド内のイメージ画像GBについて補間対象とする画素の座標を算出する。
次に、ステップS34では、イメージ画像Gの補間対象画素の画素値をバイリニア法により補間する。図8は、バイリニア法による補間処理を説明する図である。図8では、拡大する前のイメージ画像Fの画素を黒丸印、倍率M1倍に拡大したイメージ画像GBの画素を三角印で表している。
バイリニア法では、補間対象画素の周辺の4つの画素を用いて線形補間することによって、補間対象画素の画素値を求める。例えば、図8において、イメージ画像GBの補間対象画素GB(k,l)の画素値g(k,l)を求める際には、イメージ画像Fの4つの画素F(i,j)、画素F(i+1,j)、画素F(i,j+1)および画素F(i+1,j+1)の画素値、f(i,j),f(i+1,j),f(i,j+1),f(i+1,j+1)を用いて、次式の演算を行う。算出した画素値g(k,l)はイメージ画像GBのソースデータとしてシステムメモリS−MEM上に確保した領域に格納する。
g(k,l)=((i+1)−k)×((j+1)−l))×f(i,j)
+((i+1)−k)×(l−j))×f(i,j+1)
+(k−i)×((j+1)−l))×f(i+1,j)
+((k−i)×(l−j))×f(i+1,j+1) …(3)
g(k,l)=((i+1)−k)×((j+1)−l))×f(i,j)
+((i+1)−k)×(l−j))×f(i,j+1)
+(k−i)×((j+1)−l))×f(i+1,j)
+((k−i)×(l−j))×f(i+1,j+1) …(3)
なお、整数倍の倍率M1の拡大に用いる補間方法としては、上述したバイリニア法に限られることなく、補間対象画素の周辺の16点の画素を用いて補間するバイキュービック法など、ニアレストネイバ−法より補間精度が高い、他の補間方法を用いてもよい。
次に、ステップS35では、注目するバンド内のイメージ画像GBの全画素について、ステップS33およびS34の処理を行ったか否かを判断する。全画素について処理を行っていなかった場合(No)、ステップS33に進み、イメージ画像GBの新たな画素を補間対象画素として処理を行う。イメージ画像GBの全画素について処理を行っていた場合(Yes)、ステップS36に進む。
ステップS36では、中間コードデータ登録部12は、注目するバンド内のイメージ画像GBについて、イメージ画像GBの座標、高さ、幅およびイメージ画像GBのソースデータへのポインタなどを当該バンドの中間コードデータとして中間コードバッファIC−BUFに書き込む。
次に、ステップS37では、注目するバンドに含まれる全イメージ画像GBについて処理を終了したか否かを判断する。バンド内に複数のイメージ画像が含まれており、未処理のイメージ画像GBがある場合(No)、バンド内の未処理のイメージ画像GBに注目してステップS33へ進む。全イメージ画像GBについて処理を行っている場合(Yes)、ステップS38に進む。
ステップS38では、分割した全バンドについて、ステップS33〜ステップS37の処理を行ったか否かを判断する。全バンドについて処理を行っていなかった場合(No)、次のバンド番号のバンドに注目してステップS33に進む。全バンドについて処理を行っていた場合(Yes)、図7の中間コード登録処理を終了し、ステップS4に進む。
図6のフローチャートに戻り、ステップS4では、中間コードデータ展開部13は中間コードデータを展開する中間コード展開処理を行う。図9は中間コード展開処理の流れを示したフローチャートである。
中間コード展開処理を開始すると、ステップS40において、中間コードデータ展開部13は、中間コードバッファIC−BUFから展開するバンドの中間コードデータを読み取り、展開するバンドに含まれるイメージ画像GBの座標、幅、高さ、ソースデータへのポインタの情報を取得する。
次に、ステップS41では、中間コードデータ展開部13は、イメージ画像GBを実数倍の倍率M2に応じて拡大したイメージ画像Hの範囲を算出し、算出した範囲内にある画素の画素値を記憶するための記憶領域を、バンドバッファB−BUFに確保する。例えば、実数倍の倍率M2に応じた拡大では、図10(a)に示した幅w、高さhのイメージ画像GBは、図10(b)に示すように、幅M2×w、高さM2×hのイメージ画像Hに変換されるので、中間コードデータのイメージ画像GBの位置情報を表すパラメータから、イメージ画像Hの範囲を特定する。イメージ画像Hの範囲を特定すると、当該イメージ画像Hの画素値を記憶することができるだけの記録領域をバンドバッファB−BUFに確保する。
次に、ステップS42〜ステップS44では、中間コードデータ展開部13は、イメージ画像Hの画素値を、ニアレストネイバー法により補間する処理を行う。図11は、ニアレストネイバー法による補間処理を説明する図である。図11の例では、イメージ画像GBの画素を三角印、イメージ画像Hの画素を四角印で示している。ニアレストネイバー法によれば、イメージ画像Hの補間対象画素H(m,n)に最も近い、イメージ画像GBの画素GB(k+1,l+1)の画素値を、補間対象画素H(m,n)の画素値とする。なお、バンドバッファB−BUFのバンドに対応する領域には、例えば画素値「0」が初期値として与えられている。
そのため、ステップS42では、中間コードデータ展開部13は、ステップS41にて特定されたイメージ画像Hの範囲のうちから、補間対象とする画素H(m,n)の座標を算出する。
次に、ステップS43では、補間対象画素H(m,n)に最も近い、イメージ画像GBの画素を選択する。
次に、ステップS44では、ステップS43で選択した画素の画素値を取得し、補間対象画素H(m,n)の画素値とする。具体的には、中間コードバッファIC−BUFに記憶された中間コードデータから、イメージ画像GBのソースデータへのポインタPsを読み出し、ポインタPsおよび補間対象画素の位置から、選択した画素の画素値を記憶しているシステムメモリS−MEM上のアドレスを割り出す。割り出したアドレスのシステムメモリS−MEMにアクセスして、選択した画素の画素値を読み出し、イメージ画像Hの補間対象画素H(m,n)の画素値としてバンドバッファB−BUFの確保した領域に書き込む。
次に、ステップS45では、イメージ画像Hの全画素を補間対象画素として、ステップS42〜ステップS44の処理を行ったか否かを判断する。すなわち、バンドバッファB−BUFに確保した全領域の画素についてニアレストネイバー法による補間を行ったかを判断する。全画素について補間していなかった場合(No)、ステップS42に進み、新たな画素を補間対象画素として処理を行う。全画素について補間していた場合(Yes)、ステップS46に進む。
ステップS46では、バンド内の全イメージ画像GBについて処理を行ったか否かを判断する。未処理のイメージ画像GBがあった場合(No)、ステップS41に進み、未処理のイメージ画像GBについてステップS41からS45の処理を行う。未処理のイメージ画像GBがない場合(Yes)、図9の中間コード展開処理を終了し、ステップS5に進む。
図6のフローチャートに戻り、ステップS5では、色変換部14は、バンドバッファB−BUFから読み出したRGBデータをCMYKデータに変換する色変換処理を行う。そして、色変換したCMYKデータをバンドバッファB−BUFに格納する。
次に、ステップS6では、階調数変換部15は、バンドバッファB−BUFから読み出したCMYKデータに階調数変換を行う。階調変換した階調変換データはバンドバッファB−BUFに格納する。
次に、ステップS7では、印刷ページの全バンドについて処理を行ったか否かを判断する。未処理のバンドがある場合(No)、ステップS4に戻り、未処理のバンドについて処理を行う。全バンドについて処理を行っていた場合(Yes)、ステップS8へ進む。
次に、ステップS8では、圧縮部16は、バンドバッファB−BUFに格納された全バンドについての階調変換データを圧縮し、印刷データを生成する。印刷データはシステムメモリS−MEMに格納する。
ステップS9では、印刷データ出力部17が、システムメモリS−MEMから読み出した印刷データにパルス幅変調を行い、プリントエンジン200に対応するパルス幅信号に変換する。そして、変換したパルス幅信号をプリントエンジン200に出力する。プリントエンジン200は、印刷データ出力部17から入力されたパルス幅信号に従って、CMYK各色の画像を順番に印刷することにより、印刷を実行する。ステップS9の処理を終えると、図6のフローチャートに示した処理を終了する。
なお、ステップS2が、倍率設定工程、ステップS3が中間コード登録工程、ステップS4が中間コード展開工程に相当する。
以上に説明したように、本実施形態の画像拡大装置100は、印刷対象画像であるイメージ画像Fを、整数倍の拡大と実数倍の拡大に分け、2段階に拡大している。図12は、本実施形態の中間コード登録処理、中間コード展開処理においてシステムメモリS−MEM、中間コードバッファIC−BUF、バンドバッファB−BUFに記憶されるデータの動きを示した図である。図12に示すように、イメージ画像FのソースデータはシステムメモリS−MEMに格納されている。整数倍の拡大を行うときには、イメージ画像Fを整数倍に拡大したイメージ画像GのソースデータがシステムメモリS−MEMに格納される。そして、イメージ画像Gを各バンドに含まれるイメージ画像GBごとに、イメージ画像GBのソースデータへのポインタPsを含んだ中間コードデータが、中間コードバッファIC−BUFに格納される。実数倍の拡大を行うときには、中間コードデータに含まれるポインタPsを参照して、イメージ画像Hの補間対象画素H(m,n)の画素値を、システムメモリS−MEMに記憶されたイメージ画像GBのソースデータから読み出して、バンドバッファB−BUFに次々に記憶するようにして、イメージ画像Hの全画素についてのRGBデータを生成する。このように、イメージ画像HのソースデータをシステムメモリS−MEMに記憶することなく、実数倍の拡大処理を行っている。
また、図13では、本実施形態に係る画像拡大装置100によらずに、2段階の拡大処理を通常の方法で行う場合に、中間コード登録処理、中間コード展開処理においてシステムメモリS−MEM、中間コードバッファIC−BUF、バンドバッファB−BUFに記憶されるデータの動きを示している。2段階に拡大する処理を行うと、図13に示すように、中間コード展開処理において、整数倍拡大後のソースデータおよび実数倍拡大後のソースデータを、システムメモリS−MEMに記憶することになる。そして、中間コード展開処理では、実数倍拡大後のソースデータを読み出して、RGBデータに展開したRGBデータをバンドバッファB−BUFに記憶する。このように、整数倍拡大後のソースデータおよび実数倍拡大後のソースデータを記憶しておく必要があった。
したがって、本実施形態の中間コード展開処理では、図13に示した処理に比べて、実数倍拡大後のソースデータをバンドバッファB−BUFに記憶することなく、実数倍の拡大を行うことができる。
以下、本実施形態における効果を記載する。
(1)本実施形態に係る画像拡大装置100によれば、イメージ画像HのソースデータをシステムメモリS−MEMに記憶していないので、処理に要するメモリ容量を少なくすることができる。
(2)イメージ画像HのソースデータをシステムメモリS−MEMに格納していないので、ソースデータの読み書きに要する時間が短くなる。したがって、高速に処理することができる。
(3)整数倍(M1倍)の拡大には補間精度の高いバイリニア法、またはバイキュービック法を用い、実数倍の拡大には、演算量が少ないニアレストネイバー法により行っているので、処理全体としての演算量が少なくなる。したがって、画質の劣化を抑えながら、高速に処理することができる。
(4)ニアレストネイバー法を用いる実数倍の拡大においては、補間対象画素H(x,y)の周辺に1つでも画素があれば適切に補間することができるので、バンドの境界にある補間対象画素であっても適切に補間することができる。
以上、本発明の一実施形態について説明したが、本発明はこれに限られることなく、様々な形態とすることもできる。以下、本発明の変形例について説明する。
(変形例1)本発明は、通常の1段階に拡大する処理においても適用することができる。図14に示すように、中間コードデータのソースデータへのポインタPsよりイメージ画像Fのソースデータを読み出し、中間コードデータの座標、高さ、幅の情報から、イメージ画像Fを拡大倍率M倍に拡大したイメージ画像Hを記憶する領域をバンドバッファB−BUFに確保する。イメージ画像Hの各画素について、イメージ画像Fより補間した画素値をバンドバッファB−BUFに記憶することにより、拡大画像を取得する。すなわち、前記実施形態の中間コード登録処理においては整数倍の拡大を行うことなく、中間コード展開処理において拡大倍率M倍の拡大を行う。このようにしても、イメージ画像Fを拡大倍率Mに応じて解像度変換した画像を表すソースデータを記憶する必要がなくなるので、少ないメモリ容量で印刷対象画像を拡大することができる。
(変形例2)前記実施形態では、設定された倍率Mから整数部分の倍率を倍率M1として、バイリニア法またはバイキュービック法を用いた拡大処理を行った。第2の変形例として、倍率M1を次式で表す値としてもよい。
M1=int(M+0.5)…(4)
例えば、拡大倍率Mが「2.7」である場合、前記実施形態によれば、倍率M1は「2」、倍率M2が「1.35」となるところ、式(4)によれば整数倍の倍率M1は「3」、倍率M2は式(2)に従って「0.9」となる。このようにすれば、実数倍の倍率M2により拡大または縮小する割合が小さくなるので、ニアレストネイバー法の補間により生じる画質の劣化をさらに抑えることができる。
M1=int(M+0.5)…(4)
例えば、拡大倍率Mが「2.7」である場合、前記実施形態によれば、倍率M1は「2」、倍率M2が「1.35」となるところ、式(4)によれば整数倍の倍率M1は「3」、倍率M2は式(2)に従って「0.9」となる。このようにすれば、実数倍の倍率M2により拡大または縮小する割合が小さくなるので、ニアレストネイバー法の補間により生じる画質の劣化をさらに抑えることができる。
(変形例3)前記実施形態では、印刷対象画像であるオブジェクトが、画素ごとに画素値を有したイメージ画像の例について説明した。本発明はこれに限られることなく、図形・文字のオブジェクトをパラメータやインデックスにより表した中間コードデータに対応することもできる。この場合、中間コード登録時には、整数倍(M1倍)に拡大した図形・文字を表す中間コードデータを生成して登録する。中間コード展開時には、図形・文字をさらに実数倍(M2倍)に拡大した領域の各画素について、中間コードデータから画素値を補間するようにして、RGBデータを生成する。
(変形例4)前記実施形態では、CPU51が画像拡大プログラムを実行することにより、画像拡大装置100としての機能をソフトウェアによって実現する例について説明した。第4の変形例として、上述した画像拡大装置100の機能を、ASICなどのハードウェア回路により実現するとしてもよい。もちろん、一部の機能をハードウェア回路にもたせて、ハードウェア回路がもたない機能をソフトウェアによって実現するようにしてもよい。
(変形例5)前記実施形態では、レーザプリンタに適用した画像拡大装置100の一例について説明した。本発明の画像拡大装置は、インクジェットプリンタや熱昇華型プリンタなど他の印刷方式のプリンタ、複写機、ファックス、ディスプレイなど様々な装置に適用することもできる。
1…ホストコンピュータ、2…プリンタ、10…言語解釈部、11…倍率設定部、12…中間コード登録部としての中間コードデータ登録部、13…中間コード展開部としての中間コードデータ展開部、14…色変換部、15…階調数変換部、16…圧縮部、17…印刷データ出力部、50…入力インターフェース、51…CPU、52…ROM、53…ハードディスク、54…RAM、55…メモリカードスロット、56…出力インターフェース、57…メモリカード、100…画像拡大装置、200…プリントエンジン、F…印刷対象画像としての拡大前のイメージ画像、F(i,j)…拡大前のイメージ画像における座標(i,j)の画素、G…中間拡大画像としての整数倍に拡大後のイメージ画像、G(k,l)…整数倍に拡大後のイメージ画像における座標(k,l)の画素、GB…整数倍に拡大後のバンドごとのイメージ画像、H…実数倍に拡大後のイメージ画像、H(m,n)…実数倍に拡大後のイメージ画像における座標(m,n)の画素、f…イメージ画像Fの画素値、g…イメージ画像Gの画素値、h…イメージ画像Hの画素値、M…拡大倍率、M1…第1の倍率としての整数倍の倍率、M2…第2の倍率としての実数倍の倍率、S−MEM…システムメモリ、IC−BUF…中間コードバッファ、B−BUF…バンドバッファ。
Claims (7)
- 印刷ページに含まれる印刷対象画像を拡大する画像拡大装置であって、
前記印刷対象画像を拡大するための第1の倍率および第2の倍率を設定する倍率設定部と、
前記第1の倍率に応じて前記印刷対象画像を拡大することにより中間拡大画像を生成し、前記中間拡大画像および前記印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する中間コード登録部と、
前記中間拡大画像を前記第2の倍率に応じて拡大したときの各画素について、前記中間コードデータに基づいて補間した画素値を、前記印刷ページに対応するビットマップ画像の画素値とすることにより、前記中間コードデータを前記ビットマップ画像に展開する中間コード展開部と、を備えることを特徴とする画像拡大装置。 - 請求項1に記載の画像拡大装置において、
前記倍率設定部は、前記印刷対象画像を前記拡大画像に拡大する倍率を拡大倍率として、前記拡大倍率の整数部分の値、または前記拡大倍率に最も近い整数値を前記第1の倍率に、前記拡大倍率を前記第1の倍率で除算した実数値を第2の倍率に設定し、
前記中間コード展開部は、前記中間拡大画像を第2の倍率に応じて拡大したときのビットマップ画像の画素に対して周辺に位置する、前記中間拡大画像の1つの画素を用いて、当該ビットマップ画像の画素を補間することを特徴とする画像拡大装置。 - 請求項2に記載の画像拡大装置において、
前記印刷対象画像がビットマップ画像である場合に、
前記中間コード登録部は、前記中間拡大画像の画素に対して周辺に位置する、前記印刷対象画像の複数の画素を用いて、当該中間拡大画像の画素を補間することを特徴とする画像拡大装置。 - 印刷ページに含まれる印刷対象画像を拡大する画像拡大装置であって、
前記印刷対象画像を拡大するための拡大倍率を設定する倍率設定部と、
前記印刷対象画像および前記印刷ページにおける印刷対象画像の位置を表す中間コードデータを登録する中間コード登録部と、
前記印刷対象画像を前記拡大倍率で拡大したときの各画素について、前記中間コードデータに基づいて補間した画素値を、前記印刷ページに対応するビットマップ画像の画素値とすることにより、前記中間コードデータを前記ビットマップ画像に展開する中間コード展開部と、を備えることを特徴とする画像拡大装置。 - 印刷ページに含まれる印刷対象画像を拡大する画像拡大方法であって、
前記印刷対象画像を拡大するための第1の倍率および第2の倍率を設定する倍率設定工程と、
前記第1の倍率に応じて前記印刷対象画像を拡大することにより中間拡大画像を生成し、前記中間拡大画像および前記印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する中間コード登録工程と、
前記中間拡大画像を前記第2の倍率に応じて拡大したときの各画素について、前記中間コードデータに基づいて補間した画素値を、前記印刷ページに対応するビットマップ画像の画素値とすることにより、前記中間コードデータを前記ビットマップ画像に展開する中間コード展開工程と、を備えることを特徴とする画像拡大方法。 - 印刷ページに含まれる印刷対象画像を拡大する画像拡大プログラムであって、
コンピュータに、
前記印刷対象画像を拡大するための第1の倍率および第2の倍率を設定する倍率設定工程、
前記第1の倍率に応じて前記印刷対象画像を拡大することにより中間拡大画像を生成し、前記中間拡大画像および前記印刷ページにおける中間拡大画像の位置を表す中間コードデータを登録する中間コード登録工程、
前記中間拡大画像を前記第2の倍率に応じて拡大したときの各画素について、前記中間コードデータに基づいて補間した画素値を、前記印刷ページに対応するビットマップ画像の画素値とすることにより、前記中間コードデータを前記ビットマップ画像に展開する中間コード展開工程、を実行させることを特徴とする画像拡大プログラム。 - 請求項6に記載の画像拡大プログラムを記録したコンピュータ読取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005225064A JP2007043461A (ja) | 2005-08-03 | 2005-08-03 | 画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005225064A JP2007043461A (ja) | 2005-08-03 | 2005-08-03 | 画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007043461A true JP2007043461A (ja) | 2007-02-15 |
Family
ID=37801031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005225064A Withdrawn JP2007043461A (ja) | 2005-08-03 | 2005-08-03 | 画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007043461A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111711732A (zh) * | 2019-03-18 | 2020-09-25 | 精工爱普生株式会社 | 图像处理装置以及图像处理方法 |
-
2005
- 2005-08-03 JP JP2005225064A patent/JP2007043461A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111711732A (zh) * | 2019-03-18 | 2020-09-25 | 精工爱普生株式会社 | 图像处理装置以及图像处理方法 |
CN111711732B (zh) * | 2019-03-18 | 2023-07-25 | 精工爱普生株式会社 | 图像处理装置以及图像处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6029344B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
JP6840884B2 (ja) | 画像処理システム及び画像処理方法 | |
JP5882713B2 (ja) | 画像処理装置、画像処理方法、コンピュータプログラム | |
JP2001094784A (ja) | 画像処理方法、装置および記録媒体 | |
JP4469330B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラム、記録媒体及び画像形成装置 | |
JP4564986B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP2005243003A (ja) | 画像処理方法及び画像処理装置 | |
JP6330790B2 (ja) | 印刷制御システム、印刷制御装置およびプログラム | |
JP2007043461A (ja) | 画像拡大装置、画像拡大方法、画像拡大プログラムおよびそのプログラムを記録した記録媒体 | |
JP3952188B2 (ja) | 画像補間装置、画像補間方法および画像補間プログラム | |
JP4196782B2 (ja) | 画像処理装置及び画像処理をコンピュータに実行させる画像処理プログラム | |
JP4514168B2 (ja) | 画像処理システム及び画像処理方法 | |
JP6612167B2 (ja) | ラスタライズ処理装置、ラスタライズ処理方法、およびプログラム | |
JP2006254199A (ja) | 画像処理装置 | |
JP2007083556A (ja) | 画像処理装置および画像処理方法 | |
JP4379571B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2006103045A (ja) | 画像形成装置 | |
JP4636145B2 (ja) | 画像処理装置及びプログラム | |
JP2007081886A (ja) | 描画処理装置 | |
JP2007021730A (ja) | データ処理装置、データ処理方法、データ処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2000050058A (ja) | 解像度変換方法、装置および記録媒体 | |
JP2006196945A (ja) | 制御装置、画像形成装置、制御方法、画像形成方法、制御プログラムおよびそのプログラムを記録した記録媒体 | |
JPH11196246A (ja) | 画像形成装置 | |
JP3060569B2 (ja) | 印刷装置 | |
JP2008173946A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081007 |