JP6789720B2 - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP6789720B2
JP6789720B2 JP2016158003A JP2016158003A JP6789720B2 JP 6789720 B2 JP6789720 B2 JP 6789720B2 JP 2016158003 A JP2016158003 A JP 2016158003A JP 2016158003 A JP2016158003 A JP 2016158003A JP 6789720 B2 JP6789720 B2 JP 6789720B2
Authority
JP
Japan
Prior art keywords
image
reduction ratio
deformation
division
reduction
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.)
Active
Application number
JP2016158003A
Other languages
English (en)
Other versions
JP2018026007A (ja
Inventor
高村 明裕
明裕 高村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016158003A priority Critical patent/JP6789720B2/ja
Priority to US15/671,606 priority patent/US10395337B2/en
Publication of JP2018026007A publication Critical patent/JP2018026007A/ja
Application granted granted Critical
Publication of JP6789720B2 publication Critical patent/JP6789720B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06T3/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4015Demosaicing, e.g. colour filter array [CFA], Bayer pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images

Description

本発明は、画像変形処理を行う画像処理装置、画像処理方法及びプログラムに関する。
画像変形処理は、例えばフロントプロジェクタの投射位置補正やカメラレンズの収差補正等に使用されている。ただし、これらの画像変形処理では、入力画素の走査順序と出力画素の走査順序の両方を単純な走査順序(例えばラスタ順)にするようなことはできない。このため、画像変形処理では、通常は、フレームバッファを介することで、入力と出力を単純な走査順序にしている。特許文献1では、撮影画像からレンズの歪曲歪みを補正するような画像変形処理を行う際、撮影画像を縮小した縮小画像の入力走査順に従って出力画像の座標を求めて画像変形を行い、それをフレームバッファに書き込むことで画像変形を行っている。
特開2005−267457号公報
ここで、画像変形処理を行う場合、入力画素と出力画素の走査の速度を一定のピクセル/サイクルにすると、フレームバッファへの書き込みと読み出しで必要となるピクセル/サイクルは、画像変形処理の際の縮小率によって変わってくる。なお、ここでは、縮小率=出力画素数/入力画素数であると定義する。また、拡大率も縮小率と同様に、拡大率=出力画素数/入力画素数であると定義する。したがって、例えば縮小となるときは縮小率<1.0であり、一方、拡大となるときは縮小率>1.0となる。
また、フロントプロジェクタの投射位置補正やカメラレンズの収差補正等に用いる解像度のフレームバッファは容量が大きい。このため、フレームバッファは一般にDRAMが用いられる。ただし、DRAMのメモリ帯域を大きくすることは、コストの大幅な上昇を招くことになる。したがって、画像変形処理を行う際のフレームバッファへの書き込み、読み出しにおけるピクセル/サイクルの最大値を小さくすることが、コスト削減の上で大切になる。
しかしながら、前述した特許文献1に記載の技術の場合、画像変形において例えば画像内の一部分でも拡大される部分がある場合、その拡大される部分に対応するために必要なDRAMのメモリ帯域のピーク値が大きくなってしまう。このため、DRAMへの書き込み、読み出しにおけるピクセル/サイクルの最大値を小さくするができず、コスト削減を実現することが難しい。
そこで、本発明は、画像変形処理のために使用されるフレームバッファのメモリ帯域のピーク値を小さくできるようにすることを目的とする。
本発明は、入力画像の複数の分割領域毎に、画像変形処理のための変形パラメータに基づく縮小率を決定する決定手段と、前記分割領域毎に決定された縮小率に基づいて、前記分割領域の画像をそれぞれ縮小してメモリに記憶させる縮小手段と、前記メモリに記憶された縮小済みの分割領域の画像に対し、前記変形パラメータに基づく画像変形処理を行う変形手段とを有することを特徴とする。
本発明によれば、画像変形処理のために使用されるフレームバッファのメモリ帯域のピーク値を小さくできるようになる。
本実施形態の画像処理装置の概略的な全体構成を示す図である。 本実施形態の画像処理装置の主要部の概略構成を示す図である。 分割領域を表す図である。 分割領域毎縮小部の出力例を表す図である。 変形部の機能ブロック図である。 変形部の出力例を表す図である。
以下、本発明の実施の形態を添付の図面を参照して詳細に説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、本発明は以下の実施形態に限定されるものではない。
<第1の実施形態>
図1は、第1の実施形態の画像処理装置の一適用例である投影装置(プロジェクタ)の概略的なハードウェア構成を示すブロック図である。図1に示す投影装置100は、例えば、CPU101、ROM102、RAM103、操作部106、投影部105、画像入力I/F104を有して構成されている。
CPU101は、投影装置100のシステム制御及び各種画像処理を実行する。ROM102は、本実施形態に係るプログラムや各種パラメータ等を格納する読み取り専用メモリである。なお、プログラムやパラメータ等は、ROM102の他に、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、メモリカード等の記録媒体から供給されてもよいし、通信ネットワークを介して供給されてもよい。RAM103は、外部から供給されるプログラムや各種データ等を一時記憶する書き換え可能なメモリであり、また、外部から入力された画像データを一時記憶するフレームバッファとしても使用される。本実施形態の場合、RAM103は例えばDRAMを含んでいる。
投影部105は、画像入力I/F104により入力されてRAM103に一時記憶された画像データや、ROM102に格納されている画像データに基づく画像をスクリーンに投影する。操作部106は、本実施形態の投影装置100のユーザ(使用者)からの各種操作に応じた操作情報をCPU101に送る。画像入力I/F104は、スクリーンに投影される画像に対応する画像データが、例えば外部から入力されるインタフェースである。
図2は、本実施形態の投影装置100において実行される画像処理(画像変形処理)を実現する概略的な機能ブロックを表す図である。本実施形態の投影装置100は、画像変形処理を行うための構成として、分割領域毎縮小率計算部201(以下、計算部201と表記する。)と、分割領域毎縮小部202(以下、縮小部202と表記する。)と、記憶部203と、変形部204とを有する。図2に示した計算部201、縮小部202、変形部204は、例えばCPU101が本実施形態に係るプログラムを実行することで実現されるソフトウェア構成でもよいし、少なくとも一部がハードウェア構成により実現されてもよい。例えば、計算部201の処理はCPU101により実行され、縮小部202と変形部204の処理は、CPU101の制御に基づいて専用のハードウェア(例えばASIC)により実行されるようにしても良い。本実施形態では、それらハードウェア構成とソフトウェア構成を区別せずに説明することとする。図2の記憶部203は、図1のRAM103に相当する。
ここで、本実施形態では、説明を簡単にするために、入力画像223と出力画像224が共に、水平方向(X方向)のピクセル(画素)数が1024ピクセル、垂直方向(Y方向)のピクセル数が768ピクセルの、1024×768ピクセルの画像であるとする。本実施形態では、1024×768ピクセルの入力画像を、256×256ピクセルの矩形の領域毎に複数に分割し、それら分割画像(以下、分割領域と表記する。)毎に後述する縮小処理を行い、その縮小済みの分割領域毎に後述する画像変形処理を行う。分割領域は、入力画像223の一例である図3に示すような入力画像300を、例えば水平方向(X方向)の領域数が"4"で、垂直方向(Y方向)の領域数が"3"となる4×3領域に分割することにより形成される。本実施形態では、各分割領域は、それぞれ座標(tx,ty)、0≦tx<4、0≦ty<3により表される。なお、分割領域のサイズ(水平×垂直のピクセル数で表されるサイズ)は、上述した256×256ピクセルに限定されず、任意のサイズであってもよい。特に、分割領域のサイズを小さくすれば、入力画像を分割したことで画素(ピクセル)の端数ができてしまうことによる処理効率低下の発生を少なくすることが可能になる。その一方で、フレームバッファへの転送が行われる際には、各分割領域のサイズが小さいと、分割領域毎の転送画素数が少なくなり、メモリ帯域の使用効率が低下してしまうことも考えられる。このため、分割領域のサイズは、それらのバランスを考慮して決定することが望ましい。本実施形態ではこれらのことを考慮した一例として、入力画像300を4×3領域に分割した例を挙げている。また、本実施形態では、各分割領域の画像サイズが同一となされた例を挙げたが、各分割領域はそれぞれ異なるサイズ(不均一な画像サイズ)となされてもよく、さらに各分割領域の形状は矩形ではなく任意の形状となされてもよい。
また、本実施形態では、1ピクセルは、指定した(X,Y)座標を中心に、X−0.5以上でX+0.5未満、Y−0.5以上でY+0.5未満の範囲を占めると定義して説明を行う。1ピクセルの座標の取り方は他の方法もあるが、座標を補正することで対応することができる。
また、本実施形態では、説明の簡略化のため、画像変形処理の一例として、射影変換を挙げて説明するが、例えばカメラレンズの収差を画像処理で補正する場合のような多項式で表された変形にも適用可能である。すなわち、レンズの収差補正の画像処理の場合にも、カメラにより撮像された画像を格子状に区切ってそれぞれ分割領域とし、それら各分割領域に対してそれぞれ画像変形処理を行うようにする。
図2に示した機能ブロックの構成において、入力画像223は、図2に示したような入力画像300に相当する。縮小部202は、入力画像223を、図2に示したような矩形の複数の分割領域に分割し、計算部201にて算出される分割領域毎の縮小率に応じて、それら各分割領域の画像を縮小処理する。図4の画像400は、図3に示した入力画像300の各分割領域が、それぞれ縮小率に応じて縮小された縮小済み分割領域401の一例を概念的に表した図である。計算部201は、変形パラメータ221に基づいて、分割領域毎の縮小率を算出して、縮小部202と変形部204に供給する。変形パラメータ221は、例えば、本実施形態のプログラム等により生成される画像変形処理のパラメータであり、具体的には後述するような射影変換の行列で表されるデータである。計算部201が変換パラメータに基づいて分割領域毎の縮小率を算出する処理の詳細は後述する。そして、縮小部202での縮小処理後の各縮小済み分割領域のデータは、記憶部203に記憶される。
なお、縮小部202に対する入力画像223の入力順序は、例えば、1画像毎のラスタ方式、分割された分割領域の画像毎のラスタ方式、分割領域のサイズより小さな例えば8×8ピクセル毎の入力方式等の、何れの方式による順序であってもよい。本実施形態では、説明を簡単化するために、1画像毎のラスタ方式であるとして説明を行う。また、記憶部203に縮小済み分割領域のデータを格納する際の格納方式についても、様々な方式を用いることができる。本実施形態では、図4に示すように、縮小前の各分割領域の左上座標に対し、各縮小済み分割領域の左上座標がそれぞれ一致するように、各縮小済み分割領域のデータが格納されるとして説明する。また、記憶部203へのアクセスをなるべく連続させてメモリアクセスの効率化を図る観点から、縮小前の各分割領域の左上座標から縮小済み分割領域のデータを連続して格納するようにしてもよい。このように、記憶部203は、縮小部202による縮小済み分割領域毎にデータを保持する。
変形部204は、記憶部203に格納されている縮小済み分割領域毎の画像データに対し、縮小率と変形パラメータとに基づいて決定した変形量による画像変形処理を行う。すなわち、変形部204は、変形パラメータに基づく画像変形処理を行う際、記憶部203に格納されている縮小済み分割領域毎の画像データが、それぞれ計算部201で計算された分割領域毎の縮小率で縮小されていることを考慮した画像変形処理を行う。変形部204における画像変形処理の詳細は後述する。変形部204にて縮小済み分割領域毎に画像変形処理された後の画像データは出力画像224として出力される。
以下、計算部201における分割領域毎の縮小率の算出処理の詳細を説明する。
計算部201は、決定手段の一例であり、全ての分割領域に対して、以下に示すX方向(水平方向)の縮小率、Y方向(垂直方向)の縮小率を算出する。本実施形態の場合、計算部201は、分割領域(tx,ty)、0≦tx<4、0≦ty<3に対して、分割領域毎のX方向縮小率ratioX(tx,ty)とY方向縮小率ratioY(tx,ty)とを算出する。
先ず、分割領域内で縮小した画像を拡大することによる画質低下が起こらないようにするため、計算部201は、分割領域内のX方向縮小率及びY方向縮小率の最大値を算出する。本実施形態の画像変形処理が射影変換である場合には、例えば分割領域の四隅の何れかの座標における縮小率が、その分割領域内での縮小率の最大値となる。このため、計算部201は、分割領域の四隅の座標において、X方向縮小率及びY方向縮小率の最大値を算出する。
このとき、1ピクセルが占める座標を考慮して、計算部201は、
左上隅の(X−0.5,Y−0.5)
右上隅の(X+0.5,Y−0.5)
左下隅の(X−0.5,Y+0.5)
右下隅の(X+0.5,Y+0.5)
の各座標での縮小率を計算する。例えば図3の左上の分割領域(0,0)を例に挙げた場合、計算部201は、左上の分割領域(0,0)に対するX方向縮小率とY方向縮小率を、下記の座標に対して算出する。すなわち、計算部201は、
左上隅の(−0.5,−0.5)
右上隅の(255.5,−0.5)
左下隅の(−0.5,255.5)
右下隅の(255.5,255.5)
の各座標に対してX方向縮小率とY方向縮小率を算出する。
なお、一般的には、例えば分割領域内の縮小率がその分割領域内での縮小率の最大値となる全候補座標(例えば全ピクセルの座標)において、X方向縮小率及びY方向縮小率を算出し、その中の最大値が算出されることになる。これに対し、本実施形態では、前述したように、分割領域の四隅の座標においてX方向縮小率及びY方向縮小率の最大値を算出している。そして、本実施形態では、分割領域の四隅の座標におけるX方向縮小率及びY方向縮小率の最大値を、その分割領域に対する縮小率とする。
さらに、本実施形態では、分割領域毎の縮小率は、画像変形処理に応じた値として算出している。本実施形態の場合、射影変換を行う例を挙げているため、計算部201は、画像変形処理の変形パラメータとして射影変換を表す行列m11〜m33を用い、この射影変換を表す行列m11〜m33に基づいて縮小率を算出する。具体的には、計算部201は、先ず、射影変換を表す行列m11〜m33を用い、下記の式(1)によりX方向の縮小率XratioとY方向の縮小率Yratioを算出する。
z=m31・x+m32・y+m33
dz=1/z
Xratio=m11・dz−m31(m11・x+m12・y+m13)dz2
Yratio=m22・dz−m32(m21・x+m22・y+m23)dz2
・・・式(1)
そして、計算部201は、分割領域内の四隅座標におけるX方向縮小率XratioとY方向の縮小率Yratioの最大値を求めて、それを分割領域の縮小率とする。
さらに、計算部201は、フレームバッファ書き込み時のメモリ帯域を削減するため、分割領域内のX方向縮小率が"1"を超えている場合、すなわち拡大となる場合には、X方向縮小率を"1"とする。これにより、縮小部202では、X方向の拡大が行われないことになる。同様に、計算部201は、分割領域内のY方向縮小率が"1"を超えている場合もY方向縮小率を"1"としてY方向の拡大が行われないようにする。このように、計算部201は、分割領域毎のX方向縮小率、Y方向縮小率を算出する。
次に、縮小部202における分割領域毎の縮小処理の詳細を説明する。
縮小部202は、入力画像223の各ピクセルに対する入力画素座標を算出し、その入力画素座標が含まれる分割領域を算出して、その分割領域に対して計算部201で算出された縮小率に応じた縮小処理を行う。そして、縮小部202は、その縮小処理により生成した縮小済み分割領域毎の画像データを、記憶部203に出力して記憶させる。
入力画素座標を(srcx,srcy)で表し、本実施形態のようにラスタ順の入力が行われる場合、縮小部202は、入力画像223の各ピクセルに対して、ラスタ順に0≦srcx<1024、0≦srcy<768の座標を算出する。
さらに、入力画素座標(srcx,srcy)が含まれる分割領域の算出では、縮小部202は、入力画素座標(srcx,srcy)がどの分割領域(tx,ty)に含まれるかを算出する。本実施形態の場合、分割領域は256×256ピクセルであるため、分割領域(tx,ty)は、式(2)により算出できる。
(floor((srcx+0.5)/256),floor((srcy+0.5)/256)) ・・・式(2)
なお、式(2)中のfloor(x)は、一般に床関数と呼ばれるものであり、実数xに対してx以下の最大の整数を返す関数である。
次に、縮小部202は、分割領域に対して計算部201で算出された縮小率に応じた縮小処理を行う。このときの縮小処理のアルゴリズムには、様々なアルゴリズムを使用することができる。縮小処理のアルゴリズムは、例えば、0次ホールド法、バイリニア法、バイキュービック法、Lanczos法などの各種アルゴリズムを使用することができる。
このような縮小処理により、入力画素座標(srcx,srcy)は、式(3)で表されるような分割領域(tx,ty)毎の画像内の座標に変換される。
((((srcx+0.5)mod256)−0.5)・ratioX(tx,ty),(((srcy+0.5)mod256)−0.5)・ratioY(tx,ty))
・・・式(3)
なお、数式中のmodは剰余を表すもので、例えばR=A mod Bとした時、AをBで割ったときの剰余がRで表される。また、剰余Rは0≦R<Bの関係を満たすとする。
次に、変形部204の構成と射影変換の詳細を説明する。
変形部204は、図5に示すようにsrc座標算出部505(以下、座標算出部505と表記する。)、ピクセル補間座標算出部506(以下、補間座標算出部506と表記する。)、ピクセル補間部507を有して構成されている。
座標算出部505は、出力画像224として出力される走査順にdst座標を生成し、そのdst座標(dstx,dsty)に対するsrc座標(srcx,srcy)を座標変換によって求める。なお、src座標は入力される縮小済み分割領域における四角形の四つの頂点座標であり、dst座標は入力される縮小済み分割領域の四つの頂点座標に対応する出力の分割領域における四つの頂点座標である。ここで、本実施形態で挙げている射影変換の場合、この座標変換は、下記式(4)にて算出することができる。なお、式(4)中のm-111〜m-133は、前述した射影変換の行列m11〜m33に対する逆行列である。
srcz=m-131・dstx+m-132・dsty+m-133
srcx=(m-111・dstx+m-112・dsty+m-113)/srcz
srcy=(m-121・dstx+m-122・dsty+m-123)/srcz
・・・式(4)
補間座標算出部506は、src座標(srcx,srcy)からピクセル補間に用いるピクセルの座標をsrc座標上で算出する。srx座標を算出する際には、記憶部203に格納されている分割領域毎の画像が、それぞれ計算部201で計算された分割領域毎の縮小率で縮小処理されていることを考慮する。このため、本実施形態において、補間座標算出部506は、各ピクセル座標を縮小後のピクセル座標に座標変換してから、縮小前のピクセル座標に座標逆変換してピクセル補間座標を算出する。
先ず、補間座標算出部506のsrc周辺ピクセル座標算出部508(以下、周辺座標算出部508と表記する。)は、src座標(srcx,srcy)から縮小前のピクセルのsrc座標を求める。ここで、本実施形態で説明するピクセル補間部507ではsrc座標を囲む4点のピクセルのうち最大3点の内挿によって補間を行う。このため、周辺座標算出部508は、下記の4点の座標をsrc周辺ピクセル座標(srcpx[i],srcpy[i]),i=0〜3とする。
i=0 (floor(srcx−0.5),floor(srcy−0.5))
i=1 (floor(srcx+0.5),floor(srcy−0.5))
i=2 (floor(srcx―0.5),floor(srcy+0.5))
i=3 (floor(srcx+0.5),floor(srcy+0.5))
次に、縮小後src周辺ピクセル座標算出部509(以下、縮小後周辺座標算出部509と表記する。)は、補間に用いるピクセルの座標を算出する。具体的には、縮小後周辺座標算出部509は、src周辺ピクセル座標(srcpx[i],srcpy[i]),i=0〜3のそれぞれを分割領域毎に縮小する座標変換を行う。これにより、縮小後のピクセル座標(srcrx[i],srcry[i]),i=0〜3が得られる。
また縮小後周辺座標算出部509は、ピクセル座標(srcrx[i],srcry[i]),i=0〜3のうちの2点が、縮小により同一座標になる場合、src座標(srcx,srcy)を縮小後のピクセル座標(srcrox,srcroy)に変換する。そして、縮小後周辺座標算出部509は、縮小後のピクセル座標(srcrox,srcroy)が、下記式(5)の関係を満たしているか否か確認する。
srcrx[0] <= srcroxかつsrcry[0]<=srcroy
srcrx[1] >= srcroxかつsrcry[1]<=srcroy
srcrx[2] <= srcroxかつsrcry[2]>=srcroy
srcrx[3] >= srcroxかつsrcry[3]>=srcroy
・・・式(5)
式(5)の関係を満たしていない場合は、縮小後周辺座標算出部509は、式(5)の関係を満たさないピクセル座標(srcrx[i],srcry[i])を、式(5)の関係を満たすまで+1、もしくは−1する。すなわち、縮小後周辺座標算出部509は、(srcrx[i],srcry[i]),i=0〜3の4点が(srcrox,srcroy)を外側に囲む座標になるまで座標を広げる。
更に、縮小前src周辺ピクセル座標算出部510(以下、縮小前周辺座標算出部510と表記する。)は、ピクセル補間部507での補間係数算出のため縮小後のピクセル座標を求める。具体的には、縮小前周辺座標算出部510は、ピクセル補間部507での補間係数算出のため縮小後のピクセル座標(srcrx[i],srcry[i]),i=0〜3のそれぞれを分割領域毎に縮小する座標逆変換を行う。これにより、縮小前の座標(srcdx[i],srcdy[i]),i=0〜3が得られる。
そして、ピクセル補間部507は、縮小前の座標(srcdx[i],srcdy[i]),i=0〜3と、それに対応する(srcrx[i],srcry[i]),i=0〜3におけるピクセル値[i],i=0〜3とから、補間したピクセル値を算出する。具体的には、ピクセル補間部507は、先ず、補間に用いるピクセルを選択して、そのピクセルのデータを記憶部203から読み出す。ここで、ピクセル補間の手法の一例として、バイリニア補間では4点のピクセルを用いるが、一般には(srcdx[i],srcdy[i],ピクセル値[i])の3次元座標4点は同一平面上にない。そこで本実施形態の場合、ピクセル補間部507は、縮小前の座標(srcdx[i],srcdy[i]),i=0〜3と、座標(srcx,srcy)との間の距離d[i],i=0〜3を算出し、距離d[i]が小さいものから3点のピクセルを決定する。そして、ピクセル補間部507は、その3点のピクセルのデータを記憶部203から読み出して、それらデータを用いて補間を行う。距離d[i]は、本実施形態では例えば√((srcdx[i]−srcx)2+(srcdy[i]−srcy)2)で求めるものとする。
また、ピクセル補間部507は、距離d[i]=0となるものがある場合には、縮小前の座標(srcdx[i],srcdy[i])が、src座標(srcx,srcy)と同じであるため、補間後のピクセル値をピクセル値[i]とする。一方、それ以外の場合(距離d[i]=0となるものがない場合)、ピクセル補間部507は、例えば距離d[i]が小さいものから3点を選び、(srcdx[i],srcdy[i],ピクセル値[i])の3次元座標4点からなる3次元平面の方程式を求める。そして、ピクセル補間部507は、この方程式でsrc座標(srcx,srcy)におけるピクセル値を算出することで、補間後のピクセル値を算出する。
なお、前述の例は、縮小前の座標(srcdx[i],srcdy[i])が異なる分割領域(tx,ty)にあるときに一般に用いることができるが、同一の分割領域(tx,ty)にあるときは、その4点に対してバイリニア補間を行うこともできる。
図6は、変形部204による画像変形処理の出力画像600の一例を示す図である。出力画像600は、図2の出力画像224に相当する。図6に示すように、画像変形処理後の出力画像600は、分割領域が各々変形されて合わされた変形画像601となる。
以上説明したように、第1の実施形態の投影装置100においては、画像変形処理のための変形パラメータに基づいて分割領域毎に縮小率を算出し、その分割領域毎の縮小率で、各分割領域を縮小してフレームバッファ(記憶部203)に書き込む。すなわち、フレームバッファには、分割領域毎の縮小率で縮小された各縮小済み分割領域の画像データが格納される。したがって、例えば1画面分の画像全体を縮小して格納するような場合と比較して、分割領域毎に縮小した画像データを格納する場合の方が、メモリ帯域のピーク値が小さくなり、メモリ帯域の大きなフレームバッファを必要とせず、コスト削減が可能となる。また、フレームバッファに格納される縮小済み分割領域毎の画像データは、画像変形処理の変形パラメータに基づく分割領域毎の縮小率で縮小された画像データとなされている。このため、画像変形処理が縮小であっても、また例えば縮小した画像を拡大する場合であっても、画質低下が非常に少ない画像変形処理が可能となる。このように、第1の実施形態によれば、画像変形が拡大,縮小の何れであってもメモリ帯域のピーク値を小さくでき、コスト削減を実現可能であるとともに画質劣化も非常に少ない。
<第2の実施形態>
次に、第2の実施形態について説明する。第2の実施形態の構成は前述した図1、図2と同様であるためそれら構成の図示は省略する。以下の説明では、第1の実施形態とは異なる部分についてのみ説明する。
第2の実施形態では、変形部204での1ピクセル当たりのメモリ帯域上限が例えば所定の上限値M_READに決められている場合における、計算部201での計算方法について説明する。第2の実施形態では、1[ピクセル/サイクル]で出力する画像処理装置において、所定の上限値M_READの単位は[ピクセル/サイクル]であるとして説明する。
ここで、変形部204での1ピクセル当たりのメモリ帯域を小さくするためには、計算部201から変形部204に送られる縮小率の最小値を大きくすればよい。また、変形部204での縮小率の最小値と、分割領域内の縮小率の最小値と、分割領域内の縮小率の最大値とは、下記式(6)の関係を有する。
変形部での縮小率の最小値=分割領域内の縮小率の最小値/最大値 ・・・式(6)
このため、第2の実施形態の場合、計算部201は、分割領域毎のX方向縮小率の最小値ratioXmin(tx,ty)とY方向縮小率の最小値ratioYmin(tx,ty)とを求める。そして、計算部201は、分割領域毎のX方向縮小率の最小値ratioXmin(tx,ty)とY方向縮小率の最小値ratioYmin(tx,ty)と上限値M_READとが、下記式(7)に示す不等式の関係を満たすようにする。
(ratioXmin(tx,ty)×ratioYmin(tx,ty))/(ratioX(tx,ty)×ratioY(tx,ty))<1/M_READ
・・・式(7)
ただし、この式(7)の不等式を満たすratioX(tx,ty)、ratioY(tx,ty)は無数に存在する。この場合、例えば下記式(8)の計算を行うことで、メモリ帯域上限を、上限値以下(M_READ以下)にすることができる。
ratioX(tx,ty)=√(M_READ)×ratioXmin(tx,ty)
ratioY(tx,ty)=√(M_READ)×ratioYmin(tx,ty) ・・・式(8)
このように、第2の実施形態においては、計算部201は、分割領域毎の縮小率の計算の際、変形部204での分割領域毎の縮小率=縮小率の最小値/縮小率の最大値が1/M_READを下回る場合、分割領域毎の縮小率を小さくする。したがって、第2の実施形態によれば、メモリ帯域のピーク値を上限値以下(M_READ以下)にすることができる。これにより、第2の実施形態によれば、画像変形が拡大,縮小の何れであってもメモリ帯域のピーク値が小さく、また例えば、縮小した画像を拡大することによる画質低下も生じない画像処理を実現可能である。
<第3の実施形態>
次に、第3の実施形態について説明する。第3の実施形態の構成は前述した図1、図2と同様であるためそれら構成の図示は省略する。以下の説明では、第1の実施形態とは異なる部分についてのみ説明する。
第3の実施形態では、変形部204での1画面分に相当する画像当たり(以下、1画面当たりと表記する。)のメモリ帯域上限が例えば上限値M_READに決められている場合における、計算部201での計算方法について説明する。第3の実施形態では、1画面当たりの上限値M_READの単位は[ピクセル]であるとして説明する。
ここで、変形部204での1画面当たりのメモリ帯域を上限値以下(M_READ以下)にするためには、縮小部202が出力するピクセル総数を上限値以下(M_READ以下)にすればよい。本実施形態では、説明を簡単にするため、上限値M_READ以下にするために、分割領域毎のX方向縮小率ratioX(tx,ty)とY方向縮小率ratioY(tx,ty)とを、それぞれk倍(k≦1.0)して減らす例を挙げる。なお、分割領域毎のピクセル数を減らす方法はこの例に限定されるものではない。
第3の実施形態の場合、計算部201は、先ず、分割領域毎のピクセル数に、分割領域毎のX方向縮小率ratioX(tx,ty)とY方向縮小率ratioY(tx,ty)とを乗ずることにより、縮小部202が出力するピクセル数を算出する。そして、計算部201は、算出したピクセル数を全ての分割領域について合計したものを、合計上限値M_READ_ALLとする。
また、上限値M_READ以下にするために分割領域毎のX方向縮小率ratioX(tx,ty)とY方向縮小率ratioY(tx,ty)にそれぞれ乗ずる係数を例えばk(k<1.0)としたとき、係数kは式(9)の関係を満たす。
2×M_READ_ALL≦M_READ ・・・式(9)
さらに、計算部201は、式(9)の不等式を解いて、式(10)の関係を満たす係数kを選ぶ。
k≦√(M_READ/M_READ_ALL) ・・・式(10)
そして、計算部201は、式(11)に示すように、その係数k(例えばk=√(M_READ/M_READ_ALL))を、分割領域毎のX方向縮小率ratioX(tx,ty)とY方向縮小率ratioY(tx,ty)にそれぞれ乗ずる。これにより、1画面当たりのメモリ帯域上限が上限値M_READ以下になされる。
ratioX(tx,ty)×k、ratioY(tx,ty)×k・・・式(11)
上述したように、第3の実施形態では、計算部201は、分割領域毎の縮小率の計算の際に、変形部204での1画面当たりのメモリ帯域を算出する。そして、計算部201は、1画面当たりのメモリ帯域がメモリ帯域上限である上限値M_READを超える場合には、分割領域毎の縮小率を小さくする。したがって、第3の実施形態によれば、1画面当たりのメモリ帯域上限を、上限値M_READ以下にすることができる。これにより、第3の実施形態によれば、画像変形が拡大,縮小の何れであってもメモリ帯域のピーク値が小さく、また例えば、縮小した画像を拡大することによる画質低下が生じない画像処理を実現可能である。
なお上述の各実施形態では、入力画像を構成する複数の分割領域毎に縮小率を決定し、当該複数の分割領域をそれぞれ縮小してメモリに記憶させる構成を中心に説明したが、この形態に限られない。すなわち、入力画像を構成する複数の分割領域のうち、少なくとも一部の分割領域について縮小して、当該縮小後の分割領域の画像データをメモリに記憶させても良い。この場合、典型的には、縮小されなかった分割領域の画像データも、メモリに記憶される。そして、メモリに記憶された縮小済み分割画像データと、未縮小の分割画像データとに基づいて、変形処理後の画像を生成することも可能である。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
201 分割領域毎縮小率計算部、202 分割領域毎縮小部、203 記憶部、204 変形部、505 src座標算出部、506 ピクセル補間座標算出部、507 ピクセル補間部、508 src周辺ピクセル座標算出部、509 縮小後src周辺ピクセル座標算出部、510 縮小前src周辺ピクセル座標算出部

Claims (12)

  1. 入力画像の複数の分割領域毎に、画像変形処理のための変形パラメータに基づく縮小率を決定する決定手段と、
    前記分割領域毎に決定された縮小率に基づいて、前記分割領域の画像をそれぞれ縮小してメモリに記憶させる縮小手段と、
    前記メモリに記憶された縮小済みの分割領域の画像に対し、前記変形パラメータに基づく画像変形処理を行う変形手段と
    を有することを特徴とする画像処理装置。
  2. 前記決定手段は、前記分割領域毎にそれぞれの分割領域内で得られる複数の縮小率の最大値を求め、前記最大値の前記縮小率を、前記分割領域毎の縮小率として決定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記決定手段は、矩形の前記分割領域の四隅のピクセル座標におけるX方向の縮小率及びY方向の縮小率の最大値を、前記分割領域に対する縮小率として決定することを特徴とする請求項2に記載の画像処理装置。
  4. 前記決定手段は、前記変形パラメータに基づく前記分割領域の前記X方向の縮小率が1を超える場合には前記X方向の縮小率を1に決定し、前記変形パラメータに基づく前記分割領域の前記Y方向の縮小率が1を超える場合には前記Y方向の縮小率を1に決定することを特徴とする請求項3に記載の画像処理装置。
  5. 前記変形手段は、前記変形パラメータに基づいて、前記メモリに記憶された縮小済みの分割領域のピクセル座標に対応する出力の分割領域のピクセル座標を算出し、前記算出したピクセル座標に基づくピクセルのデータを前記メモリから読み出すことによる前記画像変形処理を行うことを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  6. 前記変形手段は、前記変形パラメータに基づいて、前記メモリに記憶された縮小済みの矩形の前記分割領域の四隅のピクセル座標に対応する出力の分割領域の四隅のピクセル座標を算出し、前記算出した四隅のピクセル座標を基に補間に用いるピクセル座標を算出し、前記補間に用いるピクセル座標に基づくピクセルのデータを前記メモリから読み出すことによる前記画像変形処理を行うことを特徴とする請求項5に記載の画像処理装置。
  7. 前記決定手段は、1ピクセル当たりのメモリ帯域上限が所定の上限値に決められているとき、前記分割領域毎にそれぞれの分割領域内での縮小率の最大値と最小値とを求め、前記分割領域毎の縮小率の最小値/最大値が前記所定の上限値を下回る場合には、前記分割領域毎の前記縮小率を小さくして前記メモリ帯域上限を上記所定の上限値以下にすることを特徴とする請求項1乃至6の何れか1項に記載の画像処理装置。
  8. 前記決定手段は、1画面分の画像当たりのメモリ帯域上限が所定の上限値に決められているとき、前記画像変形処理における1画面分の画像当たりのメモリ帯域を算出し、前記1画面分の画像当たりのメモリ帯域がメモリ帯域上限の前記所定の上限値を超える場合には、前記分割領域毎にそれぞれの分割領域内での縮小率を小さくして前記1画面分の画像当たりの前記メモリ帯域上限を前記所定の上限値以下にすることを特徴とする請求項1乃至6の何れか1項に記載の画像処理装置。
  9. 前記変形手段は、前記分割領域について前記決定手段により決定された縮小率と、前記変形パラメータとに基づいて、前記分割領域の画像の変形量を決定することを特徴とする請求項1乃至8の何れか1項に記載の画像処理装置。
  10. 前記決定手段は、前記入力画像を構成する分割領域のうち、一部の分割領域毎に、縮小率を決定し、
    前記縮小手段は、前記入力画像を構成する分割領域のうち、一部の分割領域について前記決定手段により決定された縮小率に基づいて、当該分割領域の画像を縮小して前記メモリに記憶させることを特徴とする請求項1乃至9の何れか1項に記載の画像処理装置。
  11. 入力画像の複数の分割領域毎に、画像変形処理のための変形パラメータに基づく縮小率を決定するステップと、
    前記分割領域毎に決定された縮小率に基づいて、前記分割領域の画像をそれぞれ縮小してメモリに記憶させるステップと、
    前記メモリに記憶された縮小済みの分割領域の画像に対し、前記変形パラメータに基づく画像変形処理を行うステップと
    を有することを特徴とする画像処理装置の画像処理方法。
  12. コンピュータを、請求項1乃至10の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2016158003A 2016-08-10 2016-08-10 画像処理装置、画像処理方法及びプログラム Active JP6789720B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016158003A JP6789720B2 (ja) 2016-08-10 2016-08-10 画像処理装置、画像処理方法及びプログラム
US15/671,606 US10395337B2 (en) 2016-08-10 2017-08-08 Image processing apparatus, image processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016158003A JP6789720B2 (ja) 2016-08-10 2016-08-10 画像処理装置、画像処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018026007A JP2018026007A (ja) 2018-02-15
JP6789720B2 true JP6789720B2 (ja) 2020-11-25

Family

ID=61159143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016158003A Active JP6789720B2 (ja) 2016-08-10 2016-08-10 画像処理装置、画像処理方法及びプログラム

Country Status (2)

Country Link
US (1) US10395337B2 (ja)
JP (1) JP6789720B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110852933A (zh) * 2018-08-21 2020-02-28 北京市商汤科技开发有限公司 图像处理方法及装置、图像处理设备及存储介质
CN110852934A (zh) * 2018-08-21 2020-02-28 北京市商汤科技开发有限公司 图像处理方法及装置、图像设备及存储介质
CN110942421A (zh) * 2018-09-21 2020-03-31 北京市商汤科技开发有限公司 图像处理方法及装置、图像处理设备及存储介质
CN113628095B (zh) * 2021-08-04 2022-11-01 展讯通信(上海)有限公司 人像区域网格点信息存储方法及相关产品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000021282A1 (en) * 1998-10-02 2000-04-13 Macronix International Co., Ltd. Method and apparatus for preventing keystone distortion
JP2004056474A (ja) * 2002-07-19 2004-02-19 Matsushita Electric Ind Co Ltd 画像処理装置とそのためのプログラム
JP2005267457A (ja) 2004-03-19 2005-09-29 Casio Comput Co Ltd 画像処理装置、撮影装置、画像処理方法及びプログラム
JP5115398B2 (ja) * 2008-08-27 2013-01-09 セイコーエプソン株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP5997882B2 (ja) * 2011-07-21 2016-09-28 セイコーエプソン株式会社 プロジェクター及びプロジェクターの制御方法
JP6524644B2 (ja) * 2014-11-14 2019-06-05 株式会社リコー 画像処理装置および電子機器
WO2016088406A1 (ja) * 2014-12-04 2016-06-09 三菱電機株式会社 画像処理装置及び方法、並びに撮像装置、並びにプログラム及び記録媒体

Also Published As

Publication number Publication date
JP2018026007A (ja) 2018-02-15
US10395337B2 (en) 2019-08-27
US20180047133A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
JP6789720B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP4657367B2 (ja) 画像処理装置、撮像装置、および画像歪み補正方法
JP5914045B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP3276886B2 (ja) 拡大宛先画像のピクセル値の生成方法
JP6568223B2 (ja) 投射装置、投射方法および投射プログラム
US9824431B2 (en) Image synthesis apparatus, image synthesis method, and recording medium
JP2013218654A (ja) 画像処理装置
JP4124096B2 (ja) 画像処理方法および画像処理装置、並びにプログラム
JP2017191572A (ja) 画像処理装置及びその方法、プログラム
JPH11250239A (ja) Yuvデータによりディストーション補正を行うディジタル撮像装置
US10796441B2 (en) Apparatus and method for image-distance transformation using bi-directional scans
JP4594848B2 (ja) 内接矩形検出装置および内接矩形検出プログラム
US8509568B2 (en) Image processing apparatus and image processing method
JP6632434B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2013257665A (ja) 映像処理装置、映像処理装置の制御方法
JP6440465B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP6762775B2 (ja) 画像処理装置、撮像装置、制御方法及びプログラム
US9917972B2 (en) Image processor, image-processing method and program
JP6972089B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US9008461B2 (en) Image processing apparatus and image processing method
JP6091082B2 (ja) 画像処理装置、画像処理方法、及び、プログラム
JP2015069272A (ja) 画像変形装置および画像変形方法
US20190043200A1 (en) Image processing apparatus, image processing method, and storage medium
JP2017120530A (ja) 画像処理装置及び画像処理方法
JPH11175709A (ja) 画像変形装置およびそのプログラムを格納した記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200928

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: 20201006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201104

R151 Written notification of patent or utility model registration

Ref document number: 6789720

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151