JP2006202170A - 低解像度な複数の画像を用いた高解像度画像の生成 - Google Patents

低解像度な複数の画像を用いた高解像度画像の生成 Download PDF

Info

Publication number
JP2006202170A
JP2006202170A JP2005015034A JP2005015034A JP2006202170A JP 2006202170 A JP2006202170 A JP 2006202170A JP 2005015034 A JP2005015034 A JP 2005015034A JP 2005015034 A JP2005015034 A JP 2005015034A JP 2006202170 A JP2006202170 A JP 2006202170A
Authority
JP
Japan
Prior art keywords
resolution
image
low
line
pixel value
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.)
Pending
Application number
JP2005015034A
Other languages
English (en)
Inventor
Tsunesuke Shinkai
恒扶 新開
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005015034A priority Critical patent/JP2006202170A/ja
Publication of JP2006202170A publication Critical patent/JP2006202170A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】 複数の低解像度な画像を用いて高解像度な画像を生成する処理の負荷を軽減することが可能な技術を提供することを目的とする。
【解決手段】 まず、複数の入力低解像度画像の中の1枚の参照低解像度画像を用いて、出力高解像度画像の画素値を推定する。さらに、参照低解像度画像を用いて低解像度な1枚の推定低解像度画像を生成するとともに、この推定低解像度画像と各入力低解像度画像との差を合成した画像を表す高解像度誤差画像の画素値を算出する。そして、この高解像度誤差画像の画素値の負のフィードバックによって、推定出力高解像度画像の画素値を更新する。ここで、これらの処理を一部のライン毎に繰り返し実行する。
【選択図】 図6

Description

本発明は、画素の密度が低い複数の画像から画素の密度が高い画像を生成する技術に関するものである。
デジタルビデオカメラ等で撮影された動画像は、動画像の1シーンを表現する静止画像の生成にも利用されている。動画像は静止画像(フレーム画像とも呼ばれる)を複数含んでいる。ここで、複数のフレーム画像を用いて、フレーム画像よりも画素の密度の高い静止画像を生成する処理(高解像度化処理とも呼ばれる)が用いられている(例えば、特許文献1参照)。
特開2004−272751号公報
ところが、複数のフレーム画像を用いることによって、高解像度化処理に用いられるデータ量が多くなるので、高解像度化処理の負荷が高くなる傾向にある。その結果、このような高解像度化処理を実行するために、高速な演算処理速度や大容量のメモリといった高い演算能力が要求される傾向にあった。
なお、このような問題は、動画像を用いて静止画像を生成する場合に限らず、独立な複数の静止画像を用いて画素密度のより高い静止画像を生成する場合に共通する問題であった。
本発明は、上記の課題を解決するためになされたものであり、複数の低解像度な画像を用いて高解像度な画像を生成する処理の負荷を軽減することが可能な技術を提供することを目的とする。
上述の課題の少なくとも一部を解決するため、本発明の第1の態様に係る画像処理装置は、画素密度が比較的低い低解像度な複数の入力低解像度画像から、画素密度が比較的高い高解像度な出力高解像度画像を生成する画像処理装置であって、前記出力高解像度画像の推定画像である推定出力高解像度画像を生成する高解像度画像推定部であって、前記推定出力高解像度画像の対象高解像度ラインの画素値を、前記複数の入力低解像度画像の中の1枚の画像である参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて算出する前記高解像度画像推定部と、前記参照低解像度画像を用いて、低解像度な1枚の推定低解像度画像を作成する低解像度画像推定部であって、前記参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて、前記推定低解像度画像の中の前記対象高解像度ラインに対応付けられた対象低解像度ラインの画素値を算出する前記低解像度画像推定部と、前記複数の入力低解像度画像の相対的な動き量を算出する動き量算出部と、前記複数の入力低解像度画像の画素値と、前記対象低解像度ラインの画素値と、を用いて、前記対象高解像度ラインの画素値を更新する更新部と、前記各部を制御する制御部と、を備え、前記更新部は、前記各入力低解像度画像と前記推定低解像度画像とを重ね合わせたときの画素値の差を表す低解像度誤差画像の画素値を、前記各入力低解像度画像毎に算出する低解像度誤差画像算出部であって、前記各入力低解像度画像の画素値と、前記動き量と、前記推定低解像度画像の画素値と、を用いて、前記各低解像度誤差画像の中の前記対象低解像度ラインと同じ画像部分を表す対象低解像度誤差ラインの画素値を算出する前記低解像度誤差画像算出部と、前記各低解像度誤差画像を合成した画像を表す高解像度な1枚の高解像度誤差画像の画素値を算出する高解像度誤差画像算出部であって、前記複数の低解像度誤差画像の前記対象低解像度誤差ラインの画素値を用いて、前記高解像度誤差画像の中の前記対象高解像度ラインと同じライン位置の対象高解像度誤差ラインの画素値を算出する前記高解像度誤差画像算出部と、前記対象高解像度ラインの画素値に対する前記対象高解像度誤差ラインの画素値の負のフィードバックによって、前記対象高解像度ラインの画素値を更新する出力高解像度画像更新部と、を備え、前記制御部は、前記各部の処理を、前記対象高解像度ラインのライン位置を変更しつつ繰り返し実行させることによって、前記出力高解像度画像を生成する。
この画像処理装置によれば、画像の一部のラインを対象とする処理を繰り返すことによって、推定出力高解像度画像の画素値が更新されるので、画像の全体をまとめて更新する場合と比べて、複数の低解像度な画像を用いて高解像度な画像を生成する処理の負荷を軽減することが可能となる。さらに、推定出力高解像度画像の画素値の更新が、1枚の推定低解像度画像の画素値を用いて行われるので、複数枚の推定低解像度画像の画素値を用いる場合と比べて、複数の低解像度な画像を用いて高解像度な画像を生成する処理の負荷を、さらに軽減することが可能となる。
上記画像処理装置において、前記低解像度画像推定部は、前記参照低解像度画像に平滑化処理を実行することによって前記対象低解像度ラインの画素値を算出することとしてもよい。
この構成によれば、対象低解像度ラインの画素値の算出が容易となるので、複数の低解像度画像を用いた高解像度画像の生成処理の負荷をさらに軽減することが可能となる。
上記各画像処理装置において、前記低解像度誤差画像算出部は、前記各入力低解像度画像のそれぞれを、前記推定低解像度画像に重なるように移動させることによって、前記各低解像度誤差画像の前記対象低解像度誤差ラインの画素値を、前記対象低解像度ラインにおける各画素位置での画素値の差を表すように決定することとしてもよい。
この構成によれば、各低解像度誤差画像を移動させずに重ねることが可能となるので、高解像度誤差画像の画素値の算出処理の負担を軽減することが可能となる。
上記画像処理装置において、前記高解像度誤差画像算出部は、前記各低解像度誤差画像の前記対象低解像度誤差ラインの同じ画素位置における画素値の総合値を各画素位置について算出し、さらに、各画素位置における前記総合値が表す画像に対してシャープネス強調処理と高解像度化処理とを実行することによって、前記対象高解像度誤差ラインの画素値を算出することが好ましい。
この構成によれば、シャープネス強調処理と、高解像度化処理と、の対象となるデータの量が低減されるので、高解像度誤差画像の画素値の算出処理の負荷を軽減することが可能となる。
本発明の第2の態様に係る印刷データ生成装置は、画像を複数のラインに分割したときの前記各ラインを表す複数のラスタデータを含む印刷データを取得して前記画像の印刷を実行する印刷装置に供給すべき印刷データを生成する印刷データ生成装置であって、上記第1の態様に係る画像処理装置と、前記更新部によって更新された前記対象高解像度ラインの画素値を用いることによって、前記出力高解像度画像を表す印刷データを生成する印刷データ生成部と、を備え、前記印刷データ生成部は、更新済の前記対象高解像度ラインを用いて、前記更新済の対象高解像度ラインに対応付けられたラスタデータを生成し、前記制御部は、さらに前記印刷データ生成部を制御するとともに、前記印刷データ生成部を含む前記各部の処理を、前記対象高解像度ラインのライン位置を変更しつつ繰り返し実行させることによって、前記印刷データを生成する。
この印刷データ生成装置によれば、画像の一部のラインを対象とする処理を繰り返すことによって、印刷データが生成されるので、画像の全体をまとめて処理する場合と比べて、複数の低解像度な画像を用いて高解像度な画像を生成するとともに、得られた高解像度な画像を用いて印刷を実行するための印刷データを生成する処理の負荷を軽減することが可能となる。
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法および装置、複画像高解像度化処理方法および装置、複画像高解像度化処理を用いた印刷データ生成方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.変形例:
A.第1実施例:
A1.装置の構成:
図1は、本発明の実施例としての画像処理システムの構成を示すブロック図である。この画像処理システム800は、プリンタ500と、デジタルビデオカメラ300とを有している。プリンタ500は、データ処理部100と、印刷実行部700と、を有している。
データ処理部100は、CPU110と、表示部120と、操作部130と、インターフェイス部(I/F部)150と、内部記憶装置200と、を備えている。これらの構成要素は、互いにバス170を介して接続されている。
表示部120は、例えば、液晶ディスプレイを有している。また、操作部130は、例えば、複数のボタンを含む操作パネルを有している。また、内部記憶装置200は、例えば、RAMを有している。
内部記憶装置200は、画像選択部215と、低解像度画像推定部220と、高解像度画像推定部230と、低解像度差分画像生成部240と、移動量算出部250と、高解像度差分画像生成部260と、出力高解像度画像更新部270と、印刷データ生成部290と、これらの各機能部を制御する制御部210と、を有している。これらの各構成要素の機能については後述する。また、各構成要素の機能は、CPU110が実行するコンピュータプログラムによって実現されている。
インターフェイス部150は、複数の入出力端子を有しており、デジタルビデオカメラ300といった外部機器との間でデータ通信を行う。また、インターフェイス部150には、印刷実行部700が接続されている。この印刷実行部700は、データ処理部100から印刷データを受け取って、画像の印刷を行う。印刷実行部700の構成としては、インク滴を吐出して印刷を行う構成や、熱転写方式によって印刷を行う構成等の、周知の種々の構成を採用することができる。
デジタルビデオカメラ300は、動画像を生成する。生成された動画像は、データ処理部100に転送される。データ処理部100は、動画像を用いて静止画像を生成する。ところで、動画像は、静止画像(フレーム画像とも呼ばれる)を複数含んでいる。データ処理部100は、複数のフレーム画像を用いて、フレーム画像よりも高解像度な静止画像を生成する。各画像は、マトリックス状に配置される複数の画素値を含んでいる。ただし、高解像度な画像は、低解像度な画像と比べて、画素密度が高い。このように、本明細書において、「高解像度」とは画素密度が高いことを意味しており、「低解像度」とは画素密度が低いことを意味している。また、以下、複数の静止画像を用いて高解像度な静止画像を生成する処理を「複画像高解像度化処理」とも呼ぶ。なお、高解像度の画素密度は、低解像度の画素密度のM倍(Mは1より大きな任意の値)に設定可能である。但し、Mは2以上に設定することが好ましく、本実施例では、M=2に設定される。
A2.複画像高解像度化処理の比較例:
図2は、複画像高解像度化処理の比較例を示す説明図である。図2の例では、3枚の低解像度なフレーム画像(以下「入力画像Iimg」とも呼ぶ)から、1枚の高解像度な出力画像Oimgを生成することとしている。以後、図中において、符号LR(Low Resolution)が付された画像は低解像度な画像を表し、符号HR(High Resolution)が付された画像は高解像度な画像を表すこととする。
図3は、複画像高解像度化処理の比較例の手順を示すフローチャートである。ステップS200では、画像選択部215(図1)が、ユーザの指示に従って入力画像Iimgを選択する。入力画像Iimgの選択方法としては、任意の方法を採用することができる。例えば、画像選択部215が動画像を表示部120に表示し、ユーザが好みの画像(フレーム画像)を操作部130を用いて指定し、画像選択部215が、指定されたフレーム画像(以下「指定フレーム画像」と呼ぶ)を含む複数(この場合は3枚)のフレーム画像を選択することとすればよい。この際、時系列に沿った順番が指定フレーム画像の前と後とであるフレーム画像を選択してもよく、また、これとは異なる他の組み合わせを選択してもよい。
次のステップS210では、高解像度画像推定部230(図1)が、入力画像Iimgを用いて仮の出力画像Oimgを生成する。図2の例では、時系列に沿った順番が中央である参照入力画像Rimgを用いて仮の出力画像Oimgを生成する。具体的には、高解像度画像推定部230は、周知のバイリニア法を用いて、低解像度な参照入力画像Rimgから高解像度な仮の出力画像Oimgを生成する。
なお、後述するように、最終的な出力画像Oimgは、仮の出力画像Oimgを修正することによって生成される。従って、仮の出力画像Oimgの生成方法としては、バイリニア法に限らず、種々の方法を採用することができる。例えば、ニアレストネイバ法を用いてもよい。
また、参照入力画像Rimgを他の規則に従って定めてもよい。例えば、時系列に沿った順番が先頭の入力画像Iimgを参照入力画像Rimgとして用いることとしてもよい。
次のステップS220では、移動量算出部250(図1)が、各入力画像Iimgの相対移動量を算出する。この相対移動量は、ある入力画像Iimgの全体と、参照入力画像Rimgの全体と、の相対的な位置を表す値である。このような相対移動量(相対動き量とも呼ぶ)としては、例えば、入力画像Iimg全体の参照入力画像Rimg全体に対する動きベクトルを用いることができる。また、相対移動量としては、画像の平行移動を表す移動量に限らず、他の種々の動きを表す移動量を採用することができる。例えば、平行移動と回転移動とを含む動きを表す移動量を採用してもよい。いずれの場合も、相対移動量の算出方法としては、周知の種々の方法を採用することができる。例えば、各入力画像Iimgから特徴点を抽出し、特徴点の移動量を算出することによって相対移動量を算出する方法を採用することができる。
次の、ステップS230では、低解像度画像推定部220(図1)が、入力画像Iimgを用いて1枚の推定画像Eimgaを生成する。具体的には、低解像度画像推定部220は、参照入力画像Rimgに対してぼかし処理(平滑化処理)を実行することによって、1枚の推定画像Eimgaを生成する。ここで、仮の出力画像Oimgと、推定画像Eimgaとは、同じ参照入力画像Rimgから生成される(ステップS210、S230)。従って、低解像度画像推定部220は、仮の出力画像Oimgと整合性のある推定画像Eimgaを生成することができる。換言すれば、これの推定画像Eimgaは、仮の出力画像Oimgが最適な画像であると仮定した場合に、入力画像Iimg(参照入力画像Rimg)が有すべき画像を表している。また、ぼかし処理(平滑化処理)としては、周知の種々の処理を採用することができる。
次のステップS240では、低解像度差分画像生成部240(図1)が、3枚の入力画像Iimgと1枚の推定画像Eimgaとを用いて、各入力画像Iimg毎の低解像度差分画像LDimgaを生成する。具体的には、低解像度差分画像生成部240は、入力画像Iimgを相対移動量に従って移動させ、移動後の画像と、推定画像Eimgaと、を用いて低解像度差分画像LDimgaを生成する。画像の移動処理では、入力画像Iimgが、推定画像Eimgaと重なるように移動される。また、低解像度差分画像LDimgaの各画素値は、推定画像Eimgaの各画素値と、移動後の入力画像Iimgにおける同じ画素位置での画素値と、の差分(Eimga−Iimg)に設定される。移動後の入力画像Iimgの画素位置と、推定画像Eimgaの画素位置とが重なっていない場合には、移動後の画像における画素値が、周知の補間処理(例えば、バイリニア法やニアレストネイバ法)によって算出される。このように、3枚の低解像度差分画像LDimgaのそれぞれは、1枚の推定画像Eimgaの画素位置で算出された画素差分値で構成されているので、3枚の低解像度差分画像LDimga相互の位置は互いに一致している。
この低解像度差分画像LDimgaの意味は、以下のように説明できる。仮の出力画像Oimgと、各入力画像Iimgと、の関係が理想的な状態の場合、すなわち、仮の出力画像Oimgと、各入力画像Iimgと、が、位置(相対移動量)のみが異なる同じ画像を表す場合には、各低解像度差分画像LDimgaの各画素値はゼロに近い値となる。一方、仮の出力画像Oimgと理想的な出力画像との間の差異が大きい場合、すなわち、仮の出力画像Oimgと各入力画像Iimgとの間の差異が大きい場合には、その差異によって、各低解像度差分画像LDimgaの画素値がゼロから離れることとなる。このように、低解像度差分画像LDimgaの画素値のゼロからのズレの大きさは、仮の出力画像Oimgと理想的な出力画像との違いの大きさを意味することになる。従って、低解像度差分画像LDimgaの画素値を仮の出力画像Oimgにフィードバックさせれば、仮の出力画像Oimgを理想的な出力画像に近づけることが可能となる。
次のステップS250では、高解像度差分画像生成部260(図1)が、各低解像度差分画像LDimgaを合成して1枚の合成済低解像度差分画像CLDimgaを生成する。この合成済低解像度差分画像CLDimgaの各画素値は、各低解像度差分画像LDimgaの同じ画素位置の画素値の和に設定される。なお、上述したように、各低解像度差分画像LDimgaは、共通の推定画像Eimgaの画素位置を基準として生成されている。従って、高解像度差分画像生成部260は、各低解像度差分画像LDimgaを移動させずに合成済低解像度差分画像CLDimgaを生成することができる。
次のステップS260では、高解像度差分画像生成部260が、合成済低解像度差分画像CLDimgaを用いて合成済高解像度差分画像CHDimgaを生成する。具体的には、高解像度差分画像生成部260は、合成済低解像度差分画像CLDimgaに対して高解像度化処理を実行し、さらに、シャープネス強調処理を実行することによって、合成済高解像度差分画像CHDimgaを生成する。なお、生成された合成済高解像度差分画像CHDimgaは、移動させることなく、仮の出力画像Oimgと重ねることが可能である。また、高解像度化処理としては、周知の種々の処理を採用することができる。例えば、バイリニア法やニアレストネイバ法を採用することができる。さらに、シャープネス強調処理としては、周知の種々の処理を採用することができる。例えば、アンシャープマスクを利用した処理を採用してもよい。
次のステップS270では、出力高解像度画像更新部270は、合成済高解像度差分画像CHDimgaを仮の出力画像Oimgにフィードバックする。このフィードバックは、仮の出力画像Oimgの各画素値を、以下の式(1)に従って修正することによって行われる。
更新後画素値 = 更新前画素値 + α×差分画素値 ...(1)
ここで、更新後画素値は、フィードバック後の仮の出力画像Oimgの画素値である。更新前画素値は、フィードバック前の仮の出力画像Oimgの画素値である。差分画素値は、合成済高解像度差分画像CHDimgaの同じ画素位置の画素値である。αは、フィードバックの強度を表す係数である。この係数αは、フィードバックが過剰とならないように予め実験的に設定しておけばよい。なお、この係数αの正負は、負のフィードバックを実現するように決定される。本実施例では、差分画素値は、推定画像Eimgaから入力画像Iimgを差し引いた値(Eimga−Iimg)から得られているので、係数αは、負の値である。
以上の処理によって、仮の出力画像Oimgを入力画像Iimgにより適した画像に更新することが可能となる。こうして最終的に更新された出力画像Oimgは、最終的な出力画像Oimgとして利用される。図1の例では、印刷データ生成部290が、この最終的な出力画像Oimgを印刷データに変換する。制御部210は、印刷データを、インターフェイス部150を介して印刷実行部700に出力する。印刷実行部700は、受け取った印刷データに従って、画像を印刷する。
なお、この比較例では、ステップS230においてぼかし処理(平滑化処理)を実行しているので、低解像度差分画像LDimgaにおいて、各入力画像Iimgの鮮鋭な部分の画素値の絶対値を平滑な部分の画素値の絶対値よりも大きくすることができる。さらに、ステップS260でシャープネス強調処理を実行しているので、合成済高解像度差分画像CHDimgaにおいて、各入力画像Iimgの鮮鋭な部分を強調させることができる。その結果、更新後の仮の出力画像Oimgを、各入力画像Iimgと整合性のある鮮鋭な画像とすることができる。
A3.複画像高解像度化処理の第1実施例:
図4は、複画像高解像度化処理の第1実施例の手順を示すフローチャートである。図3に示す比較例との差異は、画像の一部のラインのみを対象とした複画像高解像度化処理を実行する処理(以下「ライン処理」とも呼ぶ)を、繰り返し実行することによって、画像全体の複画像高解像度化処理を実行している点だけである。他の構成は、比較例と同じである。
ステップS500の画像選択処理は、図3のステップS200と同じである。また、ステップS510の相対移動量算出処理は、図3のステップS220と同じである。
次のステップS520では、制御部210(図1)は、メモリ(内部記憶装置200)の中のライン処理(後述)の演算結果の保持に用いる部分(以下「バッファメモリ」とも呼ぶ)の初期化処理を実行する。初期化処理としては、周知の種々の処理を採用可能である。例えば、バッファメモリに格納されている値を、ライン処理の演算結果に影響を与えない値(例えば、「ゼロ」)に設定し直す処理を採用可能である。なお、バッファメモリに残っている値がライン処理に影響を与えない場合には、初期化処理を省略してもよい。
次のステップS530では、制御部210は、対象入力ラインの番号をゼロに初期化する。この対象入力ラインは、参照入力画像Rimgの複数の画素ライン(以下、単に「ライン」とも呼ぶ)の中の、ライン処理の基準となるラインである(詳細は後述)。第1実施例では、画像に含まれる複数のラインを識別するために、画像の一端部のラインから順番に、ゼロから始まる整数の番号を割り当てることとしている。以下、対象入力ラインの番号を「対象入力ライン番号LineNo」とも呼ぶ
次のステップS540では、制御部210は、内部記憶装置200が有する各機能部を制御することによって、ライン処理を実行する。このライン処理では、上述した比較例と同様に、複画像高解像度化処理における複数の中間生成画像(図2:仮の出力画像Oimg、推定画像Eimga、低解像度差分画像LDimga、合成済低解像度差分画像CLDimga、合成済高解像度差分画像CHDimgaを含む)のそれぞれの画素値が算出され、さらに、仮の出力画像Oimgの画素値が更新される。ただし、比較例とは異なり、ライン処理の対象となるラインは、各画像の複数のラインの中の一部のラインのみである。以下、仮の出力画像Oimgの複数のラインの中の、ライン処理で画素値が更新されるラインを、「対象出力ライン」と呼ぶ。なお、各画像におけるライン処理の対象となるラインの組み合わせは、予め設定されている。ライン処理の詳細については後述する。
次のステップS550では、まず、印刷データ生成部290が、更新済の対象出力ラインの画素値を用いて印刷データを生成する。第1実施例では、印刷実行部700は、印刷画像の一部のラインを表すラインデータ(「ラスタデータ」とも呼ばれる)を受け取ることによって、受け取ったラスタデータに従った一部のラインの印刷を繰り返し実行することとしている。そこで、印刷データ生成部290は、画素値が更新された対象出力ラインを用いて、対象出力ラインを表すラスタデータを生成する。次に、制御部210は、生成されたラスタデータを、インターフェイス部150を介して印刷実行部700に出力する。印刷実行部700は、受け取ったラスタデータに従って、印刷を実行する。なお、ラスタデータの構成としては、周知の種々の構成を採用することができる。
次のステップS560では、制御部210は、対象入力ライン番号LineNoに1を追加する。その結果、対象入力ラインが1つだけシフトする。
次のステップS570では、制御部210は、参照入力画像Rimgの最終ラインを基準としたライン処理が完了したか否かを判断する。最終ラインを基準としたライン処理が完了していない場合には、ステップS540に戻り、新たな対象入力ラインを基準としたステップS540〜S560の処理を繰り返し実行する。そして、最終ラインを基準(対象入力ライン)としたライン処理が完了した時点で、複画像高解像度化処理を完了する。
A4.ライン処理:
図5は、出力画像Oimgの画素位置と、参照入力画像Rimgの画素位置と、を示す説明図である。図5には、重ね合わされた各画像Oimg、Rimgの一部分の画素が示されている。白丸(○)は、参照入力画像Rimgの画素位置を示し、黒丸(●)は出力画像Oimgの画素位置を示している。各画像の複数の画素は、直交するX方向とY方向とに沿って配置されている。また、第1実施例では、出力画像Oimg(高解像度画像)の画素密度は、参照入力画像Rimg(低解像度画像)の画素密度の2倍に設定されている。図5の例では、出力画像Oimgの画素(黒丸「●」)は、参照入力画像Rimgの画素(白丸「○」)の間に均等に配置されている。
また、図5では、X方向に延びるラインにライン番号が付されている。具体的には、参照入力画像Rimgの連続する3本のラインに、順番に、n、n+1、n+2(nは整数)が付されている。また、出力画像Oimgの連続する4本のラインに、順番に、i、i+1、i+2、i+3(iは整数)が付されている。他のラインの番号は省略されている。ここで、i、i+1番の高解像度なラインは、n、n+1番の低解像度なラインの間に位置している。同様に、i+2、i+3番の高解像度なラインは、n+1、n+2番の低解像度なラインの間に位置している。以下、ライン番号がm(mは整数)であるラインのことを「m」ラインとも呼ぶ。
図6は、第1実施例におけるライン処理の概要を示す説明図である。このライン処理では、隣接する2本の高解像度なライン(対象出力ライン)の画素値が更新される。図6の例では、対象入力ライン番号LineNoが「n+2」であり、対象出力ラインの番号が「i+1、i+2」であることとしている。
なお、図6において、符号Iimg1、Iimg2、Iimg3のそれぞれは、入力画像を示している。また、第2入力画像Iimg2は、参照入力画像Rimgに相当している。
さらに、以下、画像を示す符号の先頭に「L_」の文字を追加するとともに「img」の文字を削除して得られる符号を、その画像のラインを示す符号として用いる。例えば、符号「L_I1」は、第1入力画像Iimg1のラインを意味している。また、ラインを示す符号の後ろに追加された括弧付の数字は、ライン番号を示している。例えば、対象出力ライン(図6の下側)に付された符号「L_O(i+1)」は、出力画像Oimgの「i+1」ラインを示している。
図7は、ライン処理の手順を示すフローチャートである。ステップS610では、高解像度画像推定部230(図1)が、図3のステップS210と同様に、参照入力画像Rimgの画素値を用いて仮の出力画像Oimgの画素値を算出する。ただし、画素値を算出するライン数は2本である。図6の例では、「i+1」番と「i+2」番のラインL_O(i+1)、L_O(i+2)の画素値を算出する。この際、各ラインL_O(i+1)、L_O(i+2)の画素値を、バイリニア法によって算出する。「i+1」ラインL_O(i+1)には、このラインL_O(i+1)を挟む2本のラインL_I2(n)、L_I2(n+1)が用いられ、また、「i+2」ラインL_O(i+2)には、このラインL_O(i+2)を挟む2本のラインL_I2(n+1)、L_I2(n+2)が用いられる。ただし、他の任意の周知の高解像度化処理を採用してもよい。
次のステップS630では、低解像度画像推定部220(図1)が、図3のステップS230と同様に、参照入力画像Rimgを用いて推定画像Eimgaの画素値を算出する。ただし、画素値を算出するライン数は1本である。図6の例では、「n+2」ラインL_Ea(n+2)の画素値を算出する。このラインL_Ea(n+2)の画素値は、参照入力画像Rimgにおける、同じ画素位置の画素と、その周囲を囲む8つの画素と、の画素値の平均値に設定される。そこで、「n+2」ラインL_Ea(n+2)の生成には、参照入力画像Rimgにおける「n+2」ラインL_I2(n+2)と、そのラインに隣接する2本のラインL_I2(n+1)、L_I2(n+3)と、の3本のラインが用いられる。ただし、他の任意の周知のぼかし処理を採用してもよい。
次のステップS640では、低解像度差分画像生成部240(図1)が、図3のステップS240と同様に、各入力画像Iimg毎の低解像度差分画像LDimgaの画素値を算出する。ただし、画素値を算出するライン数は、各低解像度差分画像LDimga毎に1本ずつである。図6の例では、3本の「n+2」ラインL_LDa1(n+2)、L_LDa2(n+2)、L_LDa3(n+2)の画素値を算出する。第1差分ラインL_LDa1(n+2)は、第1入力画像Iimg1に対する差分を表し、第2差分ラインL_LDa2(n+2)は、第2入力画像Iimg2に対する差分を、第3差分ラインL_LDa3(n+2)は、第3入力画像Iimg3に対する差分を、それぞれ、示している。
第1差分ラインL_LDa1(n+2)の画素値は、以下のように算出される。低解像度差分画像生成部240は、まず、第1入力画像Iimg1を、推定画像Eimgaと重なるように相対移動量に従って移動させるとともに、移動後の画像に関して、1本のラインL_Im1(n+2)の画素値を算出する。このラインL_Im1(n+2)の各画素値は、推定画像Eimgaの「n+2」ラインL_Ea(n+2)の各画素位置で算出した値に設定される。次に、第1差分ラインL_LDa1(n+2)の各画素値を、推定画像EimgaのラインL_Ea(n+2)と、移動後の画像のラインL_Im1(n+2)と、の同じ画素位置での画素値の差分(Eimga−Iimg1)に設定する。他の差分ラインL_LDa2(n+2)、L_LDa3(n+2)の画素値も、同様にして設定する。このように、3本の差分ラインL_LDa1(n+2)、L_LDa2(n+2)、L_LDa3(n+2)のそれぞれは、1本のラインL_Ea(n+2)の画素位置で算出された画素差分値で構成されているので、3本の差分ラインの相互の位置は互いに一致している。
次のステップS650では、高解像度差分画像生成部260(図1)が、図3のステップS250と同様に、合成済低解像度差分画像CLDimgaの画素値を算出する。ただし、画素値を算出するライン数は1本である。図6の例では、「n+2」ラインL_CLDa(n+2)の画素値を算出する。この合成済の差分ラインL_CLDa(n+2)の各画素値は、3本の差分ラインL_LDa1(n+2)、L_LDa2(n+2)、L_LDa3(n+2)の同じ画素位置の画素値の和に設定される。上述したように、各差分ラインL_LDa1(n+2)、L_LDa2(n+2)、L_LDa3(n+2)は、共通のラインL_Ea(n+2)の画素位置を基準として生成されている。従って、高解像度差分画像生成部260は、各差分ラインを移動させずに合成済の差分ラインL_CLDa(n+2)を生成することが可能である。
次のステップS660では、高解像度差分画像生成部260(図1)が、図3のステップS260と同様に、合成済高解像度差分画像CHDimgaの画素値を算出する。ただし、画素値を算出するライン数は2本である。図6の例では、「i+1」番と「i+2」番のラインL_CHDa(i+1)、L_CHDa(i+2)の画素値を算出する。
具体的には、高解像度差分画像生成部260は、まず、2本の合成済差分ラインL_CLDa(n+1)、L_CLDa(n+2)を用いて高解像度化処理を実行する。その結果、これら2本のラインL_CLDa(n+1)、L_CLDa(n+2)の間に位置する2本の高解像度なラインL_CHDp(i+2)、L_CHDp(i+3)が生成される。なお、「n+1」ラインL_CLDa(n+1)の画素値としては、前回のライン処理で算出された値を用いる。
次に、高解像度差分画像生成部260は、これら2本の高解像度なラインL_CHDp(i+2)、L_CHDp(i+3)と、前回のライン処理で算出された2本の高解像度なラインL_CHDp(i)、L_CHDp(i+1)と、を用いて、シャープネス強調処理を実行する。その結果、合成済高解像度差分画像CHDimgaにおける2本の「i+1、i+2」ラインL_CHDa(i+1)、L_CHDa(i+2)が生成される。
なお、図6の例では、シャープネス強調処理として、3×3のマトリックスで表されたアンシャープマスクを用いた処理を採用している。従って、「i+1」ラインL_CHDa(i+1)の算出には、「i+1」ラインL_CHDp(i+1)を中心とする3本のラインL_CHDp(i)、L_CHDp(i+1)、L_CHDp(i+2)が用いられる。さらに、「i+2」ラインL_CHDa(i+2)の算出には、「i+2」ラインL_CHDp(i+2)を中心とする3本のラインL_CHDp(i+1)、L_CHDp(i+2)、L_CHDp(i+3)が用いられる。なお、シャープネス強調処理としては、他の任意の周知のシャープネス強調処理を採用してもよい。
次のステップS670では、出力高解像度画像更新部270(図1)は、図3のステップS270と同様に、合成済高解像度差分画像CHDimgaの画素値を仮の出力画像Oimgの画素値にフィードバックする。ただし、フィードバックの対象となるライン数は、2本である。図6の例では、「i+1」ラインL_CHDa(i+1)の画素値を、「i+1」ラインL_O(i+1)の画素値にフィードバックさせ、さらに、「i+2」ラインL_CHDa(i+2)の画素値を、「i+2」ラインL_O(i+2)の画素値にフィードバックさせる。以上の処理によって、2本の対象出力ラインL_O(i+1)、L_O(i+2)の画素値が更新される。
2本の対象出力ラインの画素値を更新したら、制御部210(図1)は、図7に示す1回のライン処理を完了し、図4のステップS550へ移行する。ステップS550では、印刷データ生成部290が、更新された2本の対象出力ラインL_O(i+1)、L_O(i+2)を用いて、対象出力ラインを表すラスタデータを生成する。次に、制御部210は、生成済のラスタデータを印刷実行部700に出力し、印刷実行部700は、取得したラスタデータに従って印刷を実行する。
次のステップS560では、制御部210(図1)は、対象入力ラインを1つだけシフトさせる。次回のライン処理では、対象入力ライン番号LineNoが「n+3」となり、対象出力ライン番号が「i+3、i+4」となる。このように、第1実施例のライン処理では、対象入力ラインと、対象出力ラインとは、以下の関係にある。対象出力ラインは、対象入力ラインの前に隣接する(ライン番号が1つ小さい)低解像度なライン(図5、図6の例では、「n+1」ラインL_I2(n+1))を挟む2本の高解像度なラインとなる。
以後、制御部210は、対象入力ラインを1つずつシフトさせつつ、ステップS540〜S560の処理を繰り返し実行する。すると、各中間生成画像のそれぞれの複数のラインは、一部ずつ順番に生成されることとなる。また、仮の出力画像Oimgの複数のラインは、2本ずつ順番に更新されることとなる。その結果、内部記憶装置200に設けられた各機能部のそれぞれは、比較例と同様に、各中間生成画像と、最終的な出力画像Oimgと、のそれぞれの全体を生成することとなる。従って、第1実施例では、上述した比較例と同様に、最終的な出力画像Oimgは、入力画像Iimgと整合性のある画像となる。同様に、印刷データ生成部290は、出力画像Oimgの全体についての印刷データ(ラスタデータ)を出力し、さらに、印刷実行部700は、出力画像Oimgの全体を印刷することとなる。
なお、対象入力ラインのシフト数(図4、図6の例では1)に対する対象出力ラインのシフト数(図4、図6の例では2)の比率は2である。これは、低解像度画像の画素密度に対する高解像度画像の画素密度の比率が2であるからである。
以上説明した第1実施例は、以下のような種々の特徴と利点を有している。
第1の特徴点は、ライン処理(図6)では、複数の中間生成画像のそれぞれについて、一部のラインのみの画素値が算出される点である。一方、比較例(図3)では、各中間生成画像の生成処理を1つずつ順番に完了させ、最後に、仮の出力画像Oimgの全体を更新することによって、最終的な出力画像Oimgを生成していた。その結果、第1実施例では、複数の中間生成画像のそれぞれについて、全ての画素値を同時にメモリに格納せずに、仮の出力画像Oimgの複数のラインを順番に更新することが可能となる。従って、最終的な出力画像Oimgの生成に要するメモリ容量を比較例と比べて大幅に少なくすることができる。
例えば、合成済低解像度差分画像CLDimgaの生成に用いられるメモリの容量は、比較例では、低解像度な画像の3枚分(低解像度差分画像LDimgaの3枚分)となるが、第1実施例では、低解像度なラインの3本分(差分ラインL_LDa1、L_LDa2、L_LDa3の3本分)で済む。また、合成済高解像度差分画像CHDimgaの生成に用いられるメモリ容量は、比較例では、高解像度な画像の1枚分(合成済低解像度差分画像CLDimgaを高解像度化した後の画像の1枚分)となるが、第1実施例では、高解像度なラインL_CHDpの4本分で済む。
第2の特徴点は、対象出力ラインを更新するライン処理と(図4:ステップS540)、更新済の対象出力ラインに対応するラスタデータを生成する処理と(ステップS550)、が、対象出力ラインを変えつつ繰り返し実行される点である(図4)。その結果、出力画像Oimgの全てのラインを同時にメモリに格納せずに、全てのラスタデータを生成することが可能となる。従って、複画像高解像度化処理によって高解像度な画像を生成するとともに、生成した高解像度な画像を用いて印刷データを生成する処理に要するメモリ容量を大幅に少なくすることができる。
第3の特徴点は、各低解像度差分画像LDimga(図2)の生成に用いられる推定画像Eimgaの枚数を1枚としている点である。ところで、各低解像度差分画像LDimgaを生成する方法としては、入力画像Iimg毎に、その入力画像Iimgとぴったり重なる推定画像を個別に生成して用いる方法を採用することも可能である。ただし、第1実施例のように、1枚の推定画像Eimgaを、各入力画像Iimgに共通の画像として用いれば、推定画像Eimga、すなわち、低解像度な推定ラインL_Eaの生成処理の負荷を軽減することが可能となる。
第4の特徴点は、低解像度画像推定部220(図1)が、参照入力画像Rimgにぼかし処理を実行することによって、推定画像EimgaのラインL_Eaの画素値を算出している点である(図7:ステップS630)。その結果、各差分ラインL_LDa1、L_LDa2、L_LDa3において、各入力画像Iimg1、Iimg2、Iimg3の鮮鋭な部分の画素値の絶対値を平滑な部分の画素値の絶対値よりも大きくすることができる。従って、その差分をフィードバックすることによって、更新した出力画像Oimgを、各入力画像Iimgと整合性のある鮮鋭な画像とすることができる。
第5の特徴点は、低解像度差分画像生成部240(図1)が、各入力画像Iimgのそれぞれを、共通の1枚の推定画像Eimgaと重なるように移動させることによって、各差分ラインL_LDa1、L_LDa2、L_LDa3を生成している点である(図7:ステップS640)。この構成により、高解像度差分画像生成部260(図1)は、図7のステップS650において、3本の差分ラインL_LDa1、L_LDa2、L_LDa3を移動させずに重ねることが可能となる。従って、合成済低解像度差分ラインL_CLDaの生成処理の負荷を軽減することが可能となる。
第6の特徴点は、高解像度差分画像生成部260(図1)が、合成済高解像度差分ラインL_CHDaを生成する際に、高解像度化処理(図7:ステップS660)の前に合成処理(ステップS650)を実行している点である。その結果、高解像度化処理の対象となる画像を1枚とすることができるので、合成済高解像度差分ラインL_CHDaの生成処理の負荷を軽減することができる。同様に、シャープネス強調処理の対象となる画像も1枚とすることもできるので、合成済高解像度差分ラインL_CHDaの生成処理の負荷を、さらに軽減することが可能となる。
第7の特徴点は、高解像度差分画像生成部260(図1)が、シャープネス強調処理を実行することによって合成済高解像度差分ラインL_CHDaを生成している点である(図7:ステップS660)。その結果、合成済高解像度差分ラインL_CHDaにおいて、各入力画像Iimg1、Iimg2、Iimg3の鮮鋭な部分を強調することができる。従って、その差分をフィードバックすることによって、更新後の仮の出力画像Oimgを、各入力画像Iimgと整合性のある鮮鋭な画像とすることができる。
ところで、出力画像Oimgの端部の画素については、上述したライン処理とは異なる処理に従って画素値を算出することとしてもよい。例えば、出力高解像度画像更新部270が、仮の出力画像Oimgの画素値を、そのまま、最終的な画素値として出力することとしてもよい。こうすれば、出力画像Oimgの端部が、一部の入力画像Iimgの外にはみ出ている場合でも、適切な画素値を設定することが可能となる。また、全ての入力画像Iimgと重なっている画像部分のみを、出力画像Oimgとして採用することとしてもよい。こうすれば、出力画像Oimgの全ての画素値を、上述したライン処理で更新することが可能となる。なお、出力画像Oimgの端部の画素を取り扱う方法としては、他の任意の周知の方法を採用することが可能である。
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
変形例1:
上記実施例では、平滑化処理を実行することによって推定画像Eimga(ラインL_Ea)を生成しているが(図6、図7:ステップS630)、平滑化処理を実行しないこととしてもよい。例えば、ステップS630において、参照入力画像Rimg(ラインL_I2)を、そのまま、推定画像Eimga(ラインL_Ea)として用いることとしてもよい。ただし、平滑化処理を実行すれば、更新後の仮の出力画像Oimgの鮮鋭化を図ることが可能となる。
同様に、上記実施例では、シャープネス強調処理を実行することによって合成済高解像度差分画像CHDimga(ラインL_CHDa)を生成しているが(図6、図7:ステップS660)、シャープネス強調処理を実行しないこととしてもよい。ただし、シャープネス強調処理を実行すれば、更新後の仮の出力画像Oimgの鮮鋭化を図ることが可能となる。
変形例2:
上記実施例では、各入力画像Iimgを移動させることによって各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)を生成しているが(図6、図7:ステップS640)、推定画像Eimga(ラインL_Ea)を移動させることとしてもよい。例えば、ステップS640において、推定画像Eimgaのラインを各入力画像Iimgと重なるように移動させることによって、各差分ラインL_LDa1、L_LDa2、L_LDa3の画素値を、各入力画像Iimgの画素位置での画素差分値に設定してもよい。ただし、各入力画像Iimgを共通の1枚の推定画像Eimgaと重なるように移動させれば、各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)を、移動させずに重ね合わせて合成することができるので、各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)の合成処理の負荷を軽減することが可能となる。
変形例3:
上記実施例では、各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)の合成処理(図6、図7:ステップS650)を実行してから、高解像度化処理(ステップS660)を実行しているが、各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)に高解像度化処理を施してから、合成することとしてもよい。ただし、高解像度化処理の前に合成することとすれば、高解像度化処理に用いられるデータ量を低減させることが可能となるので、合成済高解像度差分画像CHDimga(ラインL_CHDa)の生成処理の負荷を軽減することができる。
また、上記実施例では、図6、図7のステップS660において、高解像度化処理の後にシャープネス強調処理を実行することとしていたが、逆に、シャープネス強調処理の後に高解像度化処理を実行することとしてもよい。ただし、高解像度化処理の後にシャープネス強調処理を実行することとすれば、高解像度な画像に対してシャープネス強調処理を実行することができるので、合成済高解像度差分画像CHDimga、すなわち、更新後の仮の出力画像Oimgをより鮮鋭なものとすることができる。
変形例4:
上述の実施例では、フィードバックの強度を表す係数αを、所定の固定値としていたが、この代わりに、可変値としてもよい。例えば、出力高解像度画像更新部270が、各出力ラインL_O毎に、係数αの絶対値を設定することとしてもよい。ここで、係数αの設定には、仮の出力画像Oimgと各入力画像Iimgとの差異の大きさを反映する評価値を用いることができる。具体的には、出力高解像度画像更新部270が、このような評価値を各出力ラインL_O毎に算出するとともに、ある出力ラインL_Oの係数αの絶対値を、その出力ラインL_Oの評価値が大きいほど大きな値に設定すればよい。こうすれば、最終的な出力画像Oimgにおいて、各入力画像Iimgの平滑な部分の平滑さを維持しつつ、鮮鋭な部分の鮮鋭さを強調することが可能となる。なお、このような評価値としては、例えば、合成済高解像度差分ラインL_CHDaの各画素値のゼロからのズレの大きさを表す統計値(例えば、自乗和や、絶対値の最大値)を採用可能である。また、合成済高解像度差分ラインL_CHDaの代わりに、合成済低解像度差分ラインL_CLDaに基づいて評価値を算出してもよい。また、他の種々のパラメータに基づいて係数αを設定することとしてもよい。
変形例5:
上記実施例では、各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)(すなわち、各入力画像Iimg)の重みを同じものとして、合成済高解像度差分画像CHDimga(ラインL_CHDa)(すなわち、合成済低解像度差分画像CLDimga(ラインL_CLDa))を生成している。具体的には、合成済低解像度差分画像CLDimgaの画素値として、各低解像度差分画像LDimgaの画素値の合計値(重みが均等な合計値)を用いている。この代わりに、各低解像度差分画像LDimga(ラインL_LDa1、L_LDa2、L_LDa3)毎(すなわち、各入力画像Iimg毎)に異なる重みを付すこととしてもよい。こうすれば、各入力画像Iimg間で画像が異なる場合に、その差異が強調されることを抑制することが可能となる。例えば、参照入力画像Rimgの重みを、他の入力画像Iimgの重みよりも大きくすれば、出力画像Oimgを、参照入力画像Rimgを適切に表す画像とすることができる。
一般には、合成済高解像度差分画像CHDimgaは、各低解像度差分画像LDimgaを合成した画像であればよい。ここで、「複数の画像を合成した画像」とは、合成して得られる画像の各画素値が、基の複数の画像の画素値の関数になっていることを意味している。同様に、合成済低解像度差分画像CLDimgaの画素値としては、各低解像度差分画像LDimgaの同じ画素位置における各画素値の総合値を用いることができる。ここで、「複数の画素値の総合値」とは、複数の画素値の関数となっており、画素値の和と正の相関を有する値である。この総合値として、上述した実施例のように、重みが均等な合計値を用いれば、合成済低解像度差分画像CLDimgaの生成処理の負荷を低減することが可能となる。
変形例6:
上記実施例では、複画像高解像度化処理に用いる入力画像Iimgの枚数として3枚を採用しているが、3枚以外の任意の複数の枚数を採用可能である。ただし、過剰に多い枚数を採用すると、処理の負荷が過剰に高くなるので、入力画像Iimgの枚数は、2枚〜5枚の間の枚数とすることが好ましい。
変形例7:
上述の実施例のライン処理において、各画像(入力画像Iimgと、出力画像Oimgと、複数の中間生成画像)の複数のラインの中の、1回のライン処理の処理対象となるライン(画素値が利用されるラインと画素値が算出されるライン)の組み合わせとしては、図6に示す組み合わせに限らず、他の任意の組み合わせを採用することが可能である。一般には、ライン処理は、各画像の一部のラインを処理対象として用いることによって、最終的な出力画像Oimgの一部のラインを生成する処理であればよい。こうすれば、各中間生成画像のそれぞれについて、全画素値を同時にメモリに格納せずに、最終的な出力画像Oimgの複数のラインを順番に生成することができる。その結果、複画像高解像度化処理に要するメモリ容量を少なくすることが可能となる。なお、処理対象となるラインの組み合わせは、ライン処理の内容に合わせて予め設定しておけばよい。また、いずれの場合も、ライン処理において、不要となった演算結果を格納しているメモリ部分を、新たな演算結果を格納するために再利用することが好ましい。こうすれば、複画像高解像度化処理に要するメモリ容量を効果的に少なくすることが可能となる。
変形例8:
上述の実施例において、最終的な出力画像Oimg全体の生成が完了した後にラスタデータの生成を開始することとしてもよい。ただし、図4に示した実施例のように、各画像(出力画像Oimgと、複数の中間生成画像)の一部のラインを処理対象として用いることによって、最終的な出力画像Oimgの一部のラインを表すラスタデータを生成する処理を、繰り返し実行することが好ましい。こうすれば、各中間生成画像と、最終的な出力画像Oimgと、のそれぞれについて、全ラインを同時にメモリに格納せずに、出力画像Oimgを表す複数のラスタデータを順番に生成することができる。その結果、複画像高解像度化処理によって高解像度な画像を生成するとともに、生成した高解像度画像を印刷するための印刷データを生成する処理に要するメモリ容量を少なくすることができる。従って、比較的演算処理能力の高いデータ処理装置(例えば、パーソナルコンピュータ)を用いなくても、比較的演算処理能力の低いプリンタを用いて、高解像度な画像の印刷を実行することが可能となる。
変形例9:
上述の第1実施例において、印刷実行部700の構成としては、一部のラスタデータを取得するとともに、自立して、すなわち、データ処理部100とは独立に、取得したラスタデータに従ったラインの印刷を実行可能な構成を採用することが好ましい。ここで、制御部210が、生成済のラスタデータを印刷実行部700に出力するとともに、出力したラスタデータに従ったライン印刷が完了したか否かに拘わらずに、ライン処理(ステップS540)と、ラスタデータの生成と出力(ステップS550)とを、繰り返し実行させることが好ましい。こうすれば、複画像高解像度化処理と印刷処理とを平行に進めることができるので、複画像高解像度化処理によって生成された高解像度な画像を用いた印刷処理の高速化を図ることが可能となる。なお、このような印刷実行部700の構成としては、周知の種々の構成を採用可能である。例えば、CPUとメモリとを有する印刷制御装置を印刷実行部700に設け、この印刷制御装置が、自立して、取得したラスタデータに従ったラインの印刷を実行することとすればよい。ただし、データ処理部100の制御部210が、ラスタデータを出力したら、印刷実行部700からライン印刷の完了の通知を受け取った後に次の処理に移行することとしてもよい。
変形例10:
上述の実施例においては、データ処理部100をプリンタに設けることとしたが、この代わりに、データ処理部100を、一般的なパーソナルコンピュータを用いて構成することとしてもよい。また、データ処理部100を、情報携帯端末や、携帯電話、デジタルビデオカメラ、デジタルスチルカメラ等の他の種々の機器に設けることとしてもよい。上述したように、上記各実施例では、複画像高解像度化処理の負荷が軽減されている。従って、比較的演算処理能力の高いパーソナルコンピュータに限らず、演算処理能力が高いとはいえない種々の機器においても、複画像高解像度化処理を実現することが可能となる。また、生成された高解像度な出力画像Oimgは、印刷以外の種々の用途に利用可能である。例えば、モニタへの表示に利用することとしてもよく、また、出力画像Oimg(より正確には、出力画像Oimgを表す出力画像データ)を格納する出力画像ファイルを、外部記憶装置(例えば、ハードディスクドライブ)に格納することとしてもよい。また、出力画像データを、データ処理部100に接続された他の機器へ送信することとしてもよい。
変形例11:
上記実施例では、動画像から高解像度な静止画像を生成することとしているが、この代わりに、複数枚の低解像度な静止画像から、高解像度な静止画像を生成することとしてもよい。
変形例12:
上記実施例において、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよく、逆に、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよい。
本発明の実施例としての画像処理システムの構成を示すブロック図である。 複画像高解像度化処理の比較例を示す説明図である。 複画像高解像度化処理の比較例の手順を示すフローチャートである。 複画像高解像度化処理の第1実施例の手順を示すフローチャートである。 出力画像Oimgの画素位置と、参照入力画像Rimgの画素位置と、を示す説明図である。 第1実施例におけるライン処理の概要を示す説明図である。 ライン処理の手順を示すフローチャートである。
符号の説明
100...データ処理部
110...CPU
120...表示部
130...操作部
150...インターフェイス部
170...バス
200...内部記憶装置
210...制御部
215...画像選択部
220...低解像度画像推定部
230...高解像度画像推定部
240...低解像度差分画像生成部
250...移動量算出部
260...高解像度差分画像生成部
270...出力高解像度画像更新部
290...印刷データ生成部
300...デジタルビデオカメラ
500...プリンタ
700...印刷実行部
800...画像処理システム

Claims (7)

  1. 画素密度が比較的低い低解像度な複数の入力低解像度画像から、画素密度が比較的高い高解像度な出力高解像度画像を生成する画像処理装置であって、
    前記出力高解像度画像の推定画像である推定出力高解像度画像を生成する高解像度画像推定部であって、前記推定出力高解像度画像の対象高解像度ラインの画素値を、前記複数の入力低解像度画像の中の1枚の画像である参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて算出する前記高解像度画像推定部と、
    前記参照低解像度画像を用いて、低解像度な1枚の推定低解像度画像を作成する低解像度画像推定部であって、前記参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて、前記推定低解像度画像の中の前記対象高解像度ラインに対応付けられた対象低解像度ラインの画素値を算出する前記低解像度画像推定部と、
    前記複数の入力低解像度画像の相対的な動き量を算出する動き量算出部と、
    前記複数の入力低解像度画像の画素値と、前記対象低解像度ラインの画素値と、を用いて、前記対象高解像度ラインの画素値を更新する更新部と、
    前記各部を制御する制御部と、
    を備え、
    前記更新部は、
    前記各入力低解像度画像と前記推定低解像度画像とを重ね合わせたときの画素値の差を表す低解像度誤差画像の画素値を、前記各入力低解像度画像毎に算出する低解像度誤差画像算出部であって、前記各入力低解像度画像の画素値と、前記動き量と、前記推定低解像度画像の画素値と、を用いて、前記各低解像度誤差画像の中の前記対象低解像度ラインと同じ画像部分を表す対象低解像度誤差ラインの画素値を算出する前記低解像度誤差画像算出部と、
    前記各低解像度誤差画像を合成した画像を表す高解像度な1枚の高解像度誤差画像の画素値を算出する高解像度誤差画像算出部であって、前記複数の低解像度誤差画像の前記対象低解像度誤差ラインの画素値を用いて、前記高解像度誤差画像の中の前記対象高解像度ラインと同じライン位置の対象高解像度誤差ラインの画素値を算出する前記高解像度誤差画像算出部と、
    前記対象高解像度ラインの画素値に対する前記対象高解像度誤差ラインの画素値の負のフィードバックによって、前記対象高解像度ラインの画素値を更新する出力高解像度画像更新部と、
    を備え、
    前記制御部は、前記各部の処理を、前記対象高解像度ラインのライン位置を変更しつつ繰り返し実行させることによって、前記出力高解像度画像を生成する、
    画像処理装置。
  2. 請求項1に記載の画像処理装置であって、
    前記低解像度画像推定部は、前記参照低解像度画像に平滑化処理を実行することによって前記対象低解像度ラインの画素値を算出する、画像処理装置。
  3. 請求項1または請求項2に記載の画像処理装置であって、
    前記低解像度誤差画像算出部は、前記各入力低解像度画像のそれぞれを、前記推定低解像度画像に重なるように移動させることによって、前記各低解像度誤差画像の前記対象低解像度誤差ラインの画素値を、前記対象低解像度ラインにおける各画素位置での画素値の差を表すように決定する、
    画像処理装置。
  4. 請求項3に記載の画像処理装置であって、
    前記高解像度誤差画像算出部は、前記各低解像度誤差画像の前記対象低解像度誤差ラインの同じ画素位置における画素値の総合値を各画素位置について算出し、さらに、各画素位置における前記総合値が表す画像に対してシャープネス強調処理と高解像度化処理とを実行することによって、前記対象高解像度誤差ラインの画素値を算出する、画像処理装置。
  5. 画像を複数のラインに分割したときの前記各ラインを表す複数のラスタデータを含む印刷データを取得して前記画像の印刷を実行する印刷装置に供給すべき印刷データを生成する印刷データ生成装置であって、
    請求項1ないし請求項4のいずれかに記載の画像処理装置と、
    前記更新部によって更新された前記対象高解像度ラインの画素値を用いることによって、前記出力高解像度画像を表す印刷データを生成する印刷データ生成部と、を備え、
    前記印刷データ生成部は、更新済の前記対象高解像度ラインを用いて、前記更新済の対象高解像度ラインに対応付けられたラスタデータを生成し、
    前記制御部は、さらに前記印刷データ生成部を制御するとともに、前記印刷データ生成部を含む前記各部の処理を、前記対象高解像度ラインのライン位置を変更しつつ繰り返し実行させることによって、前記印刷データを生成する、
    印刷データ生成装置。
  6. 画素密度が比較的低い低解像度な複数の入力低解像度画像から、画素密度が比較的高い高解像度な出力高解像度画像を生成する画像処理方法であって、
    (a)前記出力高解像度画像の推定画像である推定出力高解像度画像を生成する工程であって、前記推定出力高解像度画像の対象高解像度ラインの画素値を、前記複数の入力低解像度画像の中の1枚の画像である参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて算出する、前記工程と、
    (b)前記参照低解像度画像を用いて、低解像度な1枚の推定低解像度画像を作成する工程であって、前記参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて、前記推定低解像度画像の中の前記対象高解像度ラインに対応付けられた対象低解像度ラインの画素値を算出する、前記工程と、
    (c)前記複数の入力低解像度画像の相対的な動き量を算出する工程と、
    (d)前記複数の入力低解像度画像の画素値と、前記対象低解像度ラインの画素値と、を用いて、前記対象高解像度ラインの画素値を更新する工程と、
    (e)前記工程(a)と、前記工程(b)と、前記工程(c)と、前記工程(d)とを、前記対象高解像度ラインのライン位置を変更しつつ繰り返し実行することによって、前記出力高解像度画像を生成する工程と、
    を備え、
    前記工程(d)は、
    (d1)前記各入力低解像度画像と前記推定低解像度画像とを重ね合わせたときの画素値の差を表す低解像度誤差画像の画素値を、前記各入力低解像度画像毎に算出する工程であって、前記各入力低解像度画像の画素値と、前記動き量と、前記推定低解像度画像の画素値と、を用いて、前記各低解像度誤差画像の中の前記対象低解像度ラインと同じ画像部分を表す対象低解像度誤差ラインの画素値を算出する、前記工程と、
    (d2)前記各低解像度誤差画像を合成した画像を表す高解像度な1枚の高解像度誤差画像の画素値を算出する工程であって、前記複数の低解像度誤差画像の前記対象低解像度誤差ラインの画素値を用いて、前記高解像度誤差画像の中の前記対象高解像度ラインと同じライン位置の対象高解像度誤差ラインの画素値を算出する、前記工程と、
    (d3)前記対象高解像度ラインの画素値に対する前記対象高解像度誤差ラインの画素値の負のフィードバックによって、前記対象高解像度ラインの画素値を更新する工程と、
    を含む、画像処理方法。
  7. 画素密度が比較的低い低解像度な複数の入力低解像度画像から、画素密度が比較的高い高解像度な出力高解像度画像を生成する画像処理をコンピュータに実行させるためのコンピュータプログラムであって、
    (a)コンピュータに、前記出力高解像度画像の推定画像である推定出力高解像度画像を生成させる機能であって、前記推定出力高解像度画像の対象高解像度ラインの画素値を、前記複数の入力低解像度画像の中の1枚の画像である参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて算出させる、前記機能と、
    (b)コンピュータに、前記参照低解像度画像を用いて、低解像度な1枚の推定低解像度画像を作成させる機能であって、前記参照低解像度画像の中の前記対象高解像度ラインに対応付けられたラインの画素値を用いて、前記推定低解像度画像の中の前記対象高解像度ラインに対応付けられた対象低解像度ラインの画素値を算出させる、前記機能と、
    (c)コンピュータに、前記複数の入力低解像度画像の相対的な動き量を算出させる機能と、
    (d)コンピュータに、前記複数の入力低解像度画像の画素値と、前記対象低解像度ラインの画素値と、を用いて、前記対象高解像度ラインの画素値を更新させる機能と、
    (e)コンピュータに、前記機能(a)と、前記機能(b)と、前記機能(c)と、前記機能(d)とを、前記対象高解像度ラインのライン位置を変更しつつ繰り返し実行することによって、前記出力高解像度画像を生成させる機能と、
    を実現させるコンピュータプログラムであり、
    前記機能(d)は、
    (d1)コンピュータに、前記各入力低解像度画像と前記推定低解像度画像とを重ね合わせたときの画素値の差を表す低解像度誤差画像の画素値を、前記各入力低解像度画像毎に算出させる機能であって、前記各入力低解像度画像の画素値と、前記動き量と、前記推定低解像度画像の画素値と、を用いて、前記各低解像度誤差画像の中の前記対象低解像度ラインと同じ画像部分を表す対象低解像度誤差ラインの画素値を算出させる、前記機能と、
    (d2)コンピュータに、前記各低解像度誤差画像を合成した画像を表す高解像度な1枚の高解像度誤差画像の画素値を算出させる機能であって、前記複数の低解像度誤差画像の前記対象低解像度誤差ラインの画素値を用いて、前記高解像度誤差画像の中の前記対象高解像度ラインと同じライン位置の対象高解像度誤差ラインの画素値を算出させる、前記機能と、
    (d3)コンピュータに、前記対象高解像度ラインの画素値に対する前記対象高解像度誤差ラインの画素値の負のフィードバックによって、前記対象高解像度ラインの画素値を更新させる機能と、
    を含む、コンピュータプログラム。
JP2005015034A 2005-01-24 2005-01-24 低解像度な複数の画像を用いた高解像度画像の生成 Pending JP2006202170A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005015034A JP2006202170A (ja) 2005-01-24 2005-01-24 低解像度な複数の画像を用いた高解像度画像の生成

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005015034A JP2006202170A (ja) 2005-01-24 2005-01-24 低解像度な複数の画像を用いた高解像度画像の生成

Publications (1)

Publication Number Publication Date
JP2006202170A true JP2006202170A (ja) 2006-08-03

Family

ID=36960101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005015034A Pending JP2006202170A (ja) 2005-01-24 2005-01-24 低解像度な複数の画像を用いた高解像度画像の生成

Country Status (1)

Country Link
JP (1) JP2006202170A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008032442A1 (fr) * 2006-09-14 2008-03-20 Nikon Corporation Dispositif de traitement d'images, caméra électronique et programme de traitement d'images
JP2008072428A (ja) * 2006-09-14 2008-03-27 Nikon Corp 画像処理装置、電子カメラ、および画像処理プログラム
JP2009231871A (ja) * 2008-03-19 2009-10-08 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008032442A1 (fr) * 2006-09-14 2008-03-20 Nikon Corporation Dispositif de traitement d'images, caméra électronique et programme de traitement d'images
JP2008072428A (ja) * 2006-09-14 2008-03-27 Nikon Corp 画像処理装置、電子カメラ、および画像処理プログラム
US8194148B2 (en) 2006-09-14 2012-06-05 Nikon Corporation Image processing device, electronic camera and image processing program
JP2009231871A (ja) * 2008-03-19 2009-10-08 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム

Similar Documents

Publication Publication Date Title
EP0949586B1 (en) Apparatus and method for image data interpolation
EP3355568B1 (en) Image processing apparatus and method for controlling the same
JP2006222493A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP4100210B2 (ja) 画像処理装置
JP4983684B2 (ja) 画像処理装置、画像処理方法、画像処理のためのコンピュータプログラム
JP4274238B2 (ja) 画像処理装置及び画像処理方法、並びにコンピュータ・プログラム
JP2006202168A (ja) 低解像度な複数の画像を用いた高解像度画像の生成
JP2006221221A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP2006202170A (ja) 低解像度な複数の画像を用いた高解像度画像の生成
JP2006221220A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP5406703B2 (ja) 画像処理装置及び画像処理方法及び画像形成装置
JP4564986B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2006203717A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP2006203716A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP2010016533A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2018042212A (ja) 画像処理装置
JP2009237660A (ja) 画像処理装置、プリンタ、画像処理方法、画像処理のためのプログラム
JP2007081886A (ja) 描画処理装置
JP5414384B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP7171382B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2011077587A (ja) 画像処理装置、画像処理方法およびプログラム
JP4670403B2 (ja) 画像処理装置、画像処理方法、表示コントローラ及び電子機器
JP2009060214A (ja) 画像を縮小する画像処理
JP2007306445A (ja) 画像データ変換装置
JP3514895B2 (ja) 画像展開処理方法及び装置