説明

画像処理装置及び画像処理方法

【課題】演算回路の増大を抑えながら、より高精度なフィルタ処理を用いた画像処理を行う。
【解決手段】フレーム画像を入力する。フレーム画像から、1番目からN番目までのN枚の中間画像を生成する。オリジナルフィルタを分割することにより生成された、1番目からN番目までのN個のサブフィルタと、それぞれのサブフィルタが参照する画素の相対位置情報とを保持する。i番目(1≦i≦N)の中間画像の着目画素に対して、i番目のサブフィルタの相対位置情報が示す相対位置にある、中間画像の画素値を収集する。収集した画素値に対して、i番目のサブフィルタを用いて得られる演算値から、i番目のサブフレーム画像の着目画素の画素値を求めることにより、N枚のサブフレーム画像を作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像に対するフィルタ処理技術に関する。
【背景技術】
【0002】
近年、ディスプレイは大画面化及び高解像度化(4K2K、8K4K)している。これにともなって、解像度変換等の画像処理には高画質な画像を生成することが求められている。このような画像処理方法の一つに、2次元フィルタを使用したフィルタ処理がある。フィルタ処理によって得られる画像の画質を向上するための方法の1つとして、フィルタのタップ数を増やす方法がある。しかしながらタップ数を増加するためには、演算回路やラインメモリ等を拡大する必要がある。
【0003】
特許文献1には、このような演算回路やラインメモリ等の拡大を防止しながら、画像データを拡大する方法が開示されている。特許文献1に記載の方法では、拡大処理を行う際に、隣接する画素の画素値を繰り返すように補間を行うことにより、複数のサブフレーム画像を生成する。このとき、同じ位置の画素が、異なるサブフレーム画像において、異なる画素値を持つようにすることができる。これら複数のフレーム画像を連続して表示することにより、各フレーム画像における画素値の平均が、見かけの画素値となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平09−214864号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら特許文献1の方法においては、補間によって生成される画素値は他の画素値の繰り返しである。より高い画質が求められている現状においては、より高精度な画像処理を行うことが望ましい。
【0006】
本発明によれば、演算回路の増大を抑えながら、より高精度なフィルタ処理を用いた画像処理を行う技術を提供する。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
1枚のフレーム画像から、N倍速駆動表示用の、1番目からN番目までのN枚(N≧2)のサブフレーム画像を生成する画像処理装置であって、
フレーム画像を入力する入力手段と、
前記フレーム画像から、1番目からN番目までのN枚の中間画像を生成する生成手段と、
オリジナルフィルタを分割することにより生成された、1番目からN番目までのN個のサブフィルタと、それぞれの前記サブフィルタが参照する画素の相対位置情報とを保持する保持手段と、
i番目(1≦i≦N)の前記中間画像の着目画素に対して、i番目の前記サブフィルタの前記相対位置情報が示す相対位置にある、前記中間画像の画素値を収集する収集手段と、
前記収集手段が収集した画素値に対して、i番目の前記サブフィルタを用いて得られる演算値から、i番目の前記サブフレーム画像の前記着目画素の画素値を求めることにより、N枚の前記サブフレーム画像を作成する演算手段とを備え、
N枚の前記サブフレーム画像についての画素値の平均値が、前記フレーム画像に対して前記オリジナルフィルタを用いて得られる値に一致することを特徴とする。
【発明の効果】
【0008】
演算回路の増大を抑えながら、より高精度なフィルタ処理を用いた画像処理を行うことができる。
【図面の簡単な説明】
【0009】
【図1】実施例1に係る画像処理装置の構成を示すブロック図。
【図2】実施例1に係るフィルタ処理を説明する図。
【図3】実施例1に係るフィルタ処理を説明する図。
【図4】実施例1に係るフィルタ処理を説明する図。
【図5】実施例1に係るフィルタ処理を説明する図。
【図6】実施例1に係る処理のフローチャート。
【図7】実施例3に係るフィルタ係数の分割例を説明する図。
【図8】実施例3に係るフィルタ係数を示す図。
【図9】実施例1に係るフィルタ処理を説明する図。
【発明を実施するための形態】
【0010】
[実施例1]
本実施例では、動画像を4倍速駆動表示する。例えば、60Hzの動画像が入力された場合には、動画像を240Hzに変換し、変換された動画像を出力する。さらに、フレーム画像に対してフィルタ処理を行うことにより、フレーム画像を拡大する。図1は、本実施例に係るブロック図である。
【0011】
フレームレート変換部101は、フレームメモリ111を備える。フレームレート変換部101は、入力された1枚のフレーム画像を、4つのサブフレーム(中間画像)に変換する(変換手段)。この際フレームレート変換部101は、動き検出などの既知の方法を用いて補間処理を行うことにより、1枚のフレーム画像と後続するフレーム画像とを補間する画像として、サブフレームを生成してもよい。そしてフレームレート変換部101は、4つのサブフレームを解像度変換部102へと出力する。
【0012】
解像度変換部102は、4つのサブフレームのそれぞれを拡大する。解像度変換部102は、サブフレーム判定部103と、フィルタ記憶部104と、水平演算回路105と、垂直演算回路106とを備える。解像度変換部102はまた、サブフレームカウント部107と、フィルタ切換部108と、読み出し制御部109、増幅部110とを備える。
【0013】
サブフレーム判定部103は、フレームレート変換部101から取得したサブフレーム画像について、フィルタ処理を行う領域が、4つのサブフレーム画像について同じか否かを判定する。サブフレーム判定部103は、判定結果に基づいて、フィルタ記憶部104(保持手段)から出力されるフィルタ係数を変更する。水平演算回路105と垂直演算回路106とは、5x5タップの2次元FIRフィルタを構成する。水平演算回路105と垂直演算回路106とは、フィルタ記憶部104に格納されたフィルタ係数を用いて、サブフレーム画像に対してフィルタ処理を行う。本実施例において、水平演算回路105と垂直演算回路106とは、拡大処理において必要となる補間画素の画素値を求める。
【0014】
サブフレームカウント部107は、1枚のフレーム画像が生成されるサブフレームの数(本実施例においては4つ)をフレームレート変換部101から取得する。またサブフレームカウント部107は、サブフレームが1枚のフレーム画像についての何番目のサブフレームであるかを判断する。フィルタ切換部108は、サブフレームカウント部107からの情報に基づいて、フィルタ記憶部104からフィルタ係数を選択し、水平演算回路105と垂直演算回路106とに出力する。フィルタ記憶部104には、それぞれのフィルタ係数が適用される画素の相対位置情報が、さらに保持されている。
【0015】
読み出し制御部109は、サブフレーム画像中(中間画像中)のどの画素値が、フレームレート変換部101から、水平演算回路105及び垂直演算回路106へと出力されるかを制御する(収集手段)。増幅部110は、水平演算回路105及び垂直演算回路106から出力された値を4倍して出力する。これらの処理によって、解像度変換部102は、フィルタ処理されたサブフレーム画像を作成する。
【0016】
図2と図3に、本実施例で行う処理の概略を示す。図2は、フィルタ処理が行われる領域内の画像が、4つのサブフレームについて同じではない場合の処理を示す。図2は、動き検出などの既知の方法を用いることにより、2つのフレームの補間画像としてサブフレームが生成された場合に対応する。サブフレームが補間画像である場合には、図2に示すように、5×5のフィルタ係数を用いるフィルタ処理を行う。こうして、拡大処理において必要な補間画素の画素値が求められる。本実施例では各入力サブフレーム251〜254に対してフィルタ処理を行うことにより、出力サブフレーム261〜264を生成する。着目画素の画素値を求めるためにフィルタ処理を行う場合、フィルタが参照する画素の、着目画素に対する位置は、4つのサブフレームのそれぞれについて共通である。
【0017】
図3は、フィルタ処理が行われる領域内の画像が、4つのサブフレームについて同じ場合の処理を示す。この場合、5×5タップのフィルタ(水平演算回路105及び垂直演算回路106)は、10×10のフィルタ係数と、10×10個の画素とを参照することにより、補間画素値を算出する。図4を参照して、図3の処理をより詳しく説明する。図3の処理においては、図3(B)に示す10×10のフィルタ係数を用いる。図3(B)のフィルタ係数は、図3(A)に示されるフィルタ関数331〜334から求められる。
【0018】
図3においては、第1サブフレーム311、第2サブフレーム312、第3サブフレーム313、及び第4サブフレーム314に対してフィルタ処理が行われる。そして、第1サブフレーム321、第2サブフレーム322、第3サブフレーム323、及び第4サブフレーム324が生成される。図3に示される第1サブフレームの補間画素303、第2サブフレームの補間画素306、第3サブフレームの補間画素307、及び第4サブフレームの補間画素308は、同じ位置に存在する。
【0019】
補間画素303の画素値を求めるために、本実施例では、補間画素303の位置の左上に位置する5×5画素(301)に対して、図3(B)の左上のフィルタ係数群(341)(サブフィルタ)が適用される。同様に、画素群304に対してはフィルタ係数群342が適用される。画素群305に対してはフィルタ係数群343が適用される。画素群309に対してはフィルタ係数群344が適用される。このように、それぞれのフィルタ係数には、適用される画素の相対位置情報が規定されている。各フィルタ係数群341〜344は、341〜344を包含するオリジナルフィルタを分割することによって得られる。
【0020】
第1〜第4サブフレーム321〜324は連続して表示されるため、補間画素303、306、307、及び308も連続して表示され。従って、累積輝度視認効果により、人の目に知覚される補間画素値は、補間画素303、306、307、及び308の平均値となる。フィルタ処理によって得られた補間画素値を適切に補正する(本実施例では4倍する)ことにより、補間画素の平均値は、10×10タップのフィルタを用いて計算される補間画素値と等しくなる。
【0021】
次に、図4、図5、及び図9を使用して、本実施例の処理をより詳しく説明する。本実施例では、図4(A)のサブフレーム画像が、図9(B)のように縦方向及び横方向のそれぞれについて2倍に拡大される。ここでは、図9(B)の補間画素401の画素値を求めるものとする。図9(A)に示される10×10タップのFIRフィルタを用いる場合、補間画素401の画素値Aは、図4(B)に示される式(1)によって求められる。
【0022】
本実施例では、411に対応する値を、第1サブフレームでの補間画素401の値とする。また、412に対応する値を、第2サブフレームでの補間画素401の値とする。さらに、413に対応する値を、第3サブフレームでの補間画素401の値とする。さらに、414に対応する値を、第4サブフレームでの補間画素401の値とする。
【0023】
本実施例では、411〜414に示される値を4倍して得られる値を、補間画素401の値とする。これは、補間画素値にサブフレームの数(N、本実施例では4)を乗じると、補間画素401の各サブフレームについての平均値が、10×10タップのフィルタを用いて計算される補間画素値と等しくなるためである。このことは、以下の式(2)〜(5)によって示される。もっとも、補間画素値にサブフレームの数(N)を乗じる必要がないように、フィルタ係数が予め調整されていてもよい。例えば、本実施例で用いられるフィルタ係数が、10×10タップのフィルタにおいて用いられるフィルタ係数にNを乗じることによって求められていてもよい。
【0024】
第1サブフレームにおける補間画素401の画素値をA1とすると、
A1=(X00・K0・L0 + X01・K1・L0 + X02・K2・L0 + X03・K3・L0 + X04・K4・L0 +
X10・K0・L1 + X11・K1・L1 + X12・K2・L1 + X13・K3・L1 + X14・K4・L1 +
X20・K0・L2 + X21・K1・L2 + X22・K2・L2 + X23・K3・L2 + X24・K4・L2 +
X30・K0・L3 + X31・K1・L3 + X32・K2・L3 + X33・K3・L3 + X34・K4・L3 +
X40・K0・L4 + X41・K1・L4 + X42・K2・L4 + X43・K3・L4 + X44・K4・L4)×4 (2)
【0025】
第2サブフレームにおける補間画素401の画素値をA2とすると、
A2=(X50・K0・L5 + X51・K1・L5 + X52・K2・L5 + X53・K3・L5 + X54・K4・L5 +
X60・K0・L6 + X61・K1・L6 + X62・K2・L6 + X63・K3・L6 + X64・K4・L6 +
X70・K0・L7 + X71・K1・L7 + X72・K2・L7 + X73・K3・L7 + X74・K4・L7 +
X80・K0・L8 + X81・K1・L8 + X82・K2・L8 + X83・K3・L8 + X84・K4・L8 +
X90・K0・L9 + X91・K1・L9 + X92・K2・L9 + X43・K3・L9 + X94・K4・L9)×4 (3)
【0026】
第3サブフレームにおける補間画素401の画素値をA3とすると、
A3=(X55・K5・L5 + X56・K6・L5 + X57・K7・L5 + X58・K8・L5 + X59・K9・L5 +
X65・K5・L6 + X66・K6・L6 + X67・K7・L6 + X68・K8・L6 + X69・K9・L6 +
X75・K5・L7 + X76・K6・L7 + X77・K7・L7 + X78・K8・L7 + X79・K9・L7 +
X85・K5・L8 + X86・K6・L8 + X87・K7・L8 + X88・K8・L8 + X89・K9・L8 +
X95・K5・L9 + X96・K6・L9 + X97・K7・L9 + X98・K8・L9 + X99・K9・L9)×4 (4)
【0027】
第4サブフレームにおける補間画素401の画素値をA4とすると、
A4=(X05・K5・L0 + X06・K6・L0 + X07・K7・L0 + X08・K8・L0 + X09・K9・L0 +
X15・K5・L1 + X16・K6・L1 + X17・K7・L1 + X18・K8・L1 + X19・K9・L1 +
X25・K5・L2 + X26・K6・L2 + X27・K7・L2 + X28・K8・L2 + X29・K9・L2 +
X35・K5・L3 + X36・K6・L3 + X37・K7・L3 + X38・K8・L3 + X39・K9・L3 +
X45・K5・L4 + X46・K6・L4 + X47・K7・L4 + X48・K8・L4 + X49・K9・L4)×4 (5)
【0028】
式(2)〜(5)に従って求められた補間画素値A1〜A4の平均画素値Amは、以下の式(6)に従って求められる。
Am=(A1+A2+A3+A4)/4 …(6)
平均画素値Amは、図4(B)の式(1)に従って求められる、10×10タップのFIRによって算出された画素値Amと等しくなる。すなわち、本実施例に従って生成されたサブフレームが連続して表示された場合に人の目に知覚される補間画素値は、10×10タップのフィルタを用いて生成されたサブフレームが表示された場合に人の目に知覚される補間画素値と等しくなる。
【0029】
式(2)の計算は、図5(A)に示されるように、5×5タップのフィルタ回路と、2ビットシフタとを用いて実現することができる。図5(A)のフィルタ回路は、図4(A)に示される10×10個の参照画素のうち、左上の5×5個の画素群402を参照する。また、図5(A)のフィルタ回路は、図3(B)に示されるフィルタ係数のうち、左上の5×5個の係数群341を用いる。フィルタ回路から出力された値を、2ビットシフタが左に(最上位ビット方向に)2ビットシフトすることにより、フィルタ回路から出力された値を4倍にすることができる。
【0030】
同様に式(3)の計算は、図5(B)に示されるように、5×5タップのフィルタ回路と、2ビットシフタとを用いて実現することができる。図5(B)のフィルタ回路は、図4(A)に示される10×10個の参照画素のうち、左下の5×5個の画素群403を参照する。また、図5(A)のフィルタ回路は、図3(B)に示されるフィルタ係数のうち、左下の5×5個の係数群342を用いる。
【0031】
式(4)の計算も、図5(C)に示されるように、5×5タップのフィルタ回路と、2ビットシフタとを用いて実現することができる。図5(C)のフィルタ回路は、図4(A)に示される10×10個の参照画素のうち、右下の5×5個の画素群404を参照する。また、図5(C)のフィルタ回路は、図3(B)に示されるフィルタ係数のうち、右下の5×5個の係数群343を用いる。
【0032】
式(5)の計算も、図5(D)に示されるように、5×5タップのフィルタ回路と、2ビットシフタとを用いて実現することができる。図5(D)のフィルタ回路は、図4(A)に示される10×10個の参照画素のうち、右上の5×5個の画素群404を参照する。また、図5(D)のフィルタ回路は、図3(B)に示されるフィルタ係数のうち、右上の5×5個の係数群344を用いる。
【0033】
本実施例では、以上の図5(A)〜(D)の構成を、5×5タップの、水平演算回路105及び垂直演算回路106を用いて実現する。本実施例では図5(A)〜(D)のFIRフィルタが用いられる。したがって本実施例では水平演算回路105及び垂直演算回路106に対して25個の係数が設定されるのではなく、実際には水平演算回路105に対して5個の係数が設定され、垂直演算回路106に対して5個の係数が設定される。
【0034】
図5(A)〜(D)の回路は、用いるフィルタ係数が異なる。また、参照する画素も異なる。本実施例では、フィルタ切換部108が、水平演算回路105及び垂直演算回路106によって用いられるフィルタ係数を変更する。また、読み出し制御部109が、水平演算回路105及び垂直演算回路106によって参照される画素を変更する。こうして、累積輝度視認効果を利用することにより、5×5タップのフィルタ回路で10×10タップのフィルタ演算結果を得ることができる。
【0035】
次に、本実施例に係る処理を、図6(A)のフローチャートを用いて説明する。ステップS601の開始前に、フレームレート変換部101による変換処理が終了しているものとする。ステップS601において、サブフレームカウント部107は、iを1に初期化する。この初期化は、第1サブフレームが入力された際に、もしくは、第4サブフレームの処理が終了した際に行われればよい。iは処理対象のサブフレーム番号を示し、1≦i≦Nである。サブフレームは1番目からN番目まで、N枚入力される。つまり、Nはサブフレームの数を示す。
【0036】
ステップS602において、読み出し制御部109は、着目画素位置を初期化する。例えば読み出し制御部109は、サブフレーム画像の最も左上の画素を着目画素とすればよい。この場合読み出し制御部109は、ステップS612でラスタ順に順次着目画素を選択していけばよい。
【0037】
ステップS603において、サブフレーム判定部103は、フィルタ処理が行われる領域内の画像が、4つのサブフレームについて一致するか否かを判定する(判断手段)。つまり、フィルタ処理が行われる領域内の画像について、補間画像が生成されているか、同じ画像が4回繰り返されている(4度出し)かを判定する。具体的には、着目画素の画素値が4つのサブフレームについて同じか否かを判定してもよい。また、着目画素周辺の画像が4つのサブフレームについて同じか否かを判定してもよい。さらには、フィルタ処理において参照する画素の画素値が、4つのサブフレームについて同じか否かを判定してもよい。
【0038】
サブフレーム判定部103は、フレームレート変換部101又はフレームメモリ111に格納されているサブフレーム画像を参照して、ステップS603の判定を行ってもよい。また、サブフレーム判定部103は、フィルタ処理が行われる領域内の画像が4つのサブフレームについて同じか否かを、フレームレート変換部101に問い合わせてもよい。
【0039】
ステップS603で、4度出しであると判定された場合、処理はステップS604に進む。また、4度出しではないと判定された場合、処理はステップS609に進む。ステップS604において、サブフレーム判定部103は、フィルタ記憶部104が図3(B)に示されるような10×10個の係数を出力するように、フィルタ記憶部104を設定する。ステップS605において、フィルタ切換部108は、フィルタ記憶部104から出力された10×10のフィルタ係数から、サブフレーム番号iについての5×5のフィルタ係数を選択する。
【0040】
第1サブフレームについては、フィルタ切換部108はフィルタ係数群341を選択すればよい。第2サブフレームについては、フィルタ切換部108はフィルタ係数群342を選択すればよい。第3サブフレームについては、フィルタ切換部108はフィルタ係数群343を選択すればよい。第4サブフレームについては、フィルタ切換部108はフィルタ係数群344を選択すればよい。そしてフィルタ係数切換部108は、選択したフィルタ係数を、水平演算回路105及び垂直演算回路106に設定する。前述のように本実施例では、フィルタ係数切換部108は、水平演算回路105に対して5個の係数を設定し、垂直演算回路106に対して5個の係数を設定する。
【0041】
ステップS606において、読み出し制御部109は、サブフレーム番号に従って、フレームレート変換部101又はフレームメモリ111から参照画素の画素値を読み出す。例えば着目画素が図4(A)のX44である場合、読み出し制御部109は、1番目のサブフレームについては画素群402の画素値を読み出せばよい。また、読み出し制御部109は、2番目のサブフレームについては画素群403の画素値を読み出せばよい。3番目のサブフレームについては、読み出し制御部109は画素群403の画素値を読み出せばよい。4番目のサブフレームについては、読み出し制御部109は画素群404の画素値を読み出せばよい。
【0042】
読み出し制御部109が画素群402の画素値を読み出すタイミングを通常のタイミングとする。この場合、第2サブフレームの参照画素は、第1サブフレームの参照画素に対して5ライン下のデータであるから、読み出し制御部109は通常のタイミングよりも5ライン分オフセットして読み出しを行えばよい。第3サブフレームの参照画素は、第1サブフレームの参照画素に対して5ドット右かつ5ライン下のデータであるから、読み出し制御部109は通常のタイミングよりも5ドット5ライン分オフセットして読み出しを行えばよい。第4サブフレームの参照画素は、第1サブフレームの参照画素に対して5ドット右のデータであるから、読み出し制御部109は通常のタイミングよりも5ドット分オフセットして読み出しを行えばよい。
【0043】
ステップS607において、水平演算回路105及び垂直演算回路106は、ステップS605で設定されたフィルタ係数と、ステップS606で読み出された参照画素とを用いて、5×5タップのフィルタ演算を行う。ステップS608において、増幅部110は、ステップS607での結果を4倍して得られた値を、出力画素値として出力する。
【0044】
ステップS609でサブフレーム判定部は、フィルタ記憶部104が5×5のフィルタ係数を出力するように、フィルタ記憶部104を設定する。さらにフィルタ切換部108は、フィルタ記憶部104によって出力されたフィルタ係数を、水平演算回路105及び垂直演算回路106に設定する。ステップS610において読み出し制御部109は、着目画素周辺の5×5個の参照画素を読み出す。
【0045】
ステップS611において、水平演算回路105及び垂直演算回路106は、ステップS609で設定されたフィルタ係数と、ステップS610で読み出された参照画素の画素値を用いて、フィルタ演算を行う。そして水平演算回路105及び垂直演算回路106は、演算結果を出力画素値として出力する。図6に示される処理の終了後、例えば画素X44を着目画素として求められた出力画素値が、画素401の画素値となるように、図9(B)に示される拡大画像が生成される。
【0046】
ステップS612において、読み出し制御部109は、例えばラスタ順に、着目画素を選択する。ステップS613で読み出し制御部109は、i番目のサブフレーム中の全ての画素に対して処理を行ったか否かを判定する。全ての画素について処理が終了していない場合、処理はステップS603に戻る。全ての画素について処理が終了している場合、処理はステップS614に進む。
【0047】
ステップS614でサブフレームカウント部107は、iに1を加える。ステップS615でサブフレームカウント部107は、全てのサブフレームに対する処理が終了したか否かを判定する。具体的にはサブフレームカウント部107は、i>Nであるか否かを判定すればよい。全てのサブフレームに対する処理が終了していない場合、処理はステップS602に戻り、次のサブフレームに対する処理が行われる。全てのサブフレームに対する処理が終了している場合、処理はステップS601に戻る。ステップS601ではiは1に初期化され、次に入力されたフレーム画像に対して一連の処理が繰り返される。
【0048】
以上のように本実施例では、各サブフレーム画像を生成する際に、異なるフィルタ係数及び参照画素を用いて、同じ位置の着目画素に対するフィルタ処理が行われる。こうして、回路規模を増やすことなく、フィルタ演算のタップ数を増やすことができる。4倍速処理を行う本実施例においては、フィルタ回路は5×5タップであるが、10×10タップのフィルタ処理と同等の効果が得られる。言い換えると、10×10タップのフィルタ処理を、5×5タップのフィルタ回路で実現することが可能となる。
【0049】
さらに、各サブフレーム間で画像が異なる領域(補間領域)と、各サブフレーム間で画像が同じ領域(4度出し領域)とが、サブフレーム画像中に混在していることがある。特開平09−214864号公報に示す方法は、静止画像の解像度を変換することを主な目的としている。本実施例の方法でも、静止画像に対してフィルタ処理を行うことが可能である。一方で本実施例の方法によれば、動画像をも正しくフィルタ処理することができる。すなわち、フレーム画像を補間するようにサブフレームを生成した場合、各サブフレーム間で画像が異なる領域が存在する。
【0050】
本実施例においては、上述のように、各サブフレーム間で画像が異なる領域については5×5タップのフィルタ処理を行う。各サブフレーム間で画像が異なる領域と、各サブフレーム間で画像が同じ領域との間でフィルタ処理を変更することにより、動画像に対しても高精度なフィルタ処理を行い、正しい結果を得ることができる。例えば、静止している背景上を移動物体が通過するような場合において、静止している背景をより高精度に表示することが可能となる。
【0051】
[実施例1の変形例]
実施例1では、フィルタ処理を行うことで、拡大処理に必要な補間画素の画素値を求めた。具体的には図9(B)に示される画素401の画素値を、図4(A)の10×10個の画素を参照して求めた。同様にして、画素401の上に隣接する画素411の画素値、及び画素401の右に隣接する画素412の画素値を求めることもできる。この場合、X00〜X99の100個の画素を参照してもよいし、他の画素を参照してもよい。また、画素411及び412の画素値を求める際に用いられるフィルタ係数が、画素401の画素値を求める際に用いられるフィルタ係数と同じでもよいし、違ってもよい。
【0052】
実施例1では、水平演算回路105及び垂直演算回路106を用いてFIRフィルタ処理を行った。しかしながら本変形例において、用いられるフィルタはFIRフィルタに限られない。例えば、一般の畳み込みフィルタを用いることもできる。図5(A)〜(D)に示されるように、実施例1でフィルタ切換部108は、水平演算回路105に5個の係数を設定し、垂直演算回路106に5個の係数を設定した。
【0053】
一般の畳み込みフィルタが用いられる場合、水平演算回路105及び垂直演算回路106の代わりに用いられるフィルタ回路に対して、フィルタ切換部108は25個のフィルタ係数を設定してもよい。この場合フィルタ回路は、それぞれの参照画素に対して、フィルタ係数のうち1つを乗算してもよい。そしてフィルタ回路は、得られた値を合計することにより、出力画素値を求めてもよい。
【0054】
[実施例2]
本実施例では、実施例1と同様にフレーム画像に対してフィルタ処理を行うことにより、フレーム画像を拡大する。しかしながら本実施例では、動画像を9倍速駆動表示する。本実施例に係る画像処理装置の構成は、図1に示される第1の実施例のものと同様である。また本実施例に係る処理のフローチャートも、図6(A)に示される第1の実施例のものと同様である。以下、第1の実施例と異なる点について説明する。
【0055】
一般的に、拡大処理を行う時に用いられる、補間画素を求めるための2次元ローパスフィルタの係数の総和は、おおよそ1となる。図3に示すように、フィルタ係数を均等に4分割すると、各サブフレームについて用いられるフィルタ係数の総和はおおよそ0.25になる。実施例1ではフィルタ演算の結果が増幅部110によって4倍される。上述のようにフィルタ係数の総和は0.25であるから、例えば画素値80の一様な画素を有するサブフレーム画像を処理すると、得られる値は80×0.25×4=80となる。このように、実施例1のようにフィルタ係数が均等に分割された場合、フィルタ処理によって得られる値がオーバーフローする可能性は低い。
【0056】
一方で本実施例では、フィルタ係数を図8に示されるように、801〜809に9分割する。この場合、フィルタ係数群805の値は他と比べて大きくなる。さらに本実施例では、フィルタ演算の結果得られた値は、増幅部110によって9倍にされる。この場合、出力画素値を規定のビット数で表現できずに、オーバーフローが起きてしまう可能性がある。すると、規定のビット数で表現できる値(上限値又は所定値)を超える値(飽和値)は、上限値として記録されてしまう。この場合、サブフレーム画像の画素値がフィルタ処理の結果とは異なるものとなる。したがって、サブフレーム画像を連続表示することにより人の目に知覚される画素値は、フレーム画像に対してフィルタ処理を行うことにより得られる画素値とは異なってしまう。
【0057】
そこで本実施例では、フィルタ係数の総和がより大きいフィルタ係数群を先に用いて、フィルタ演算が行われる。オーバーフローが発生した場合には、増幅部110は演算結果(演算値)と上限値との差分を格納する。そして増幅部110は、格納された差分を次のサブフレームに加算する。増幅部110が差分を格納するメモリは、N度出し時にのみ使用される。したがって、フレーム間に動きのある場合にのみフレームメモリを使用する回路(例えばオーバードライブ回路)がある場合には、増幅部110はこの回路とフレームメモリを共用することができる。
【0058】
本実施例に係る処理を図6(A)のフローチャートを用いて説明する。以下では、第1の実施例とは異なる点について説明する。ステップS601においてサブフレームカウント部107はNを1に初期化する。また、増幅部110は、総和値を0に初期化する。ステップS603で読み出し制御部109は、フィルタ処理が行われる領域内の画像が、9つのサブフレームについて同じか否かを判定する。
【0059】
ステップS604においてサブフレーム判定部103は、フィルタ記憶部104が15×15の係数を出力するように、フィルタ記憶部104を設定する。ステップS605においてフィルタ切換部108は、フィルタ記憶部104から出力された15×15のフィルタ係数から、サブフレーム番号iについての5×5のフィルタ係数群を選択する。このときフィルタ切換部108は、フィルタ係数の総和が大きいものから順に、フィルタ係数群を選択する。例えば、サブフレーム番号1については、フィルタ係数群805を選択する。ステップS606において、読み出し制御部109は、ステップS605で選択されたフィルタ係数群に対応する参照画素の画素値を読み出す。読み出し制御部109は、フィルタ係数群805に対しては、着目画素を中心とする5×5の画素値を読み出せばよい。読み出し制御部109は、フィルタ係数群806に対しては、着目画素を中心とする5×5の画素の右隣に位置する、5×5の画素値を読み出せばよい。
【0060】
本実施例では、ステップS608の代わりに、図6(B)に示されるステップS608a〜eが行われる。ステップS608aにおいて、増幅部110は、ステップS607で算出された値を9倍し、飽和値を加える。ステップS607で算出された値をIとすると、ステップS608aで求められる値Jは、以下の式(7)に従って求められる。
【0061】
J ← 9 × I + 飽和値 ・・・(7)
ステップS608bにおいて増幅部110は、ステップS608aでの計算結果Jが規定のビット数で表現できるか否かを判断する。増幅部110は、規定のビット数で表現できる値の最大値(制限値)を、Jが超えているか否かを判断すればよい。Jが制限値を超えていない場合、処理はステップS608cに進む。Jが制限値を超える場合、処理はステップS608dに進む。
【0062】
ステップS608cにおいて増幅部110は、Jを出力画素値として出力する。ステップS608dにおいて増幅部110は、制限値を出力画素値として出力する。ステップS608eにおいて増幅部110は、飽和値を更新して記録する。例えば増幅部110は、以下の式(8)のようにして飽和値を更新する。
【0063】
飽和値 ← J − 上限値 + 飽和値 ・・・(8)
ステップS609〜S615の処理は実施例1と同様である。本実施例の方法によれば、フィルタ係数が均等に分割されないことによりオーバーフローが起こる場合でも、飽和値を記録することにより、正しく人に知覚されうるサブフレーム画像を生成することができる。
【0064】
[実施例3]
実施例2においては、飽和値を記録することによりオーバーフローに対処した。本実施例においては、フィルタ係数の分割方法を実施例2とは変えることにより、オーバーフローの発生を抑制する。本実施例でも実施例2と同様に、動画像を9倍速駆動表示する。本実施例に係る画像処理装置の構成は、図1に示す実施例1のものと同様である。また本実施例に係る処理のフローチャートも、図6(A)に示される第1の実施例のものと同様である。
【0065】
本実施例に係るフィルタ係数の分割方法を図7に示す。図7(A)、実施例2に係るフィルタ係数の分割方法である。上述のように、フィルタ係数群(5)には大きいフィルタ係が集中する。これに対して図7(B)は、本実施例に係るフィルタ係数の分割方法である。本実施例の方法では、フィルタ係数群(1)〜(9)のいずれにも、大きなフィルタ係数が集中しない。このために、オーバーフローの発生が抑えられる。
【0066】
本実施例では、フィルタ係数の位置に応じた参照画素を用いて、フィルタ演算を行う。例えば第5サブフレームのフィルタ処理を行う場合、図7(B)で(5)と示されたフィルタ係数を用いる。このとき、着目画素の画素値に対してはフィルタ係数1102を適用すればよい。また、着目画素の3つ上の画素に対しては、フィルタ係数1103を適用すればよい。実施例1及び2では、参照画素を、フレームメモリ111から連続的に読み出した。しかしながら本実施例では、フィルタ係数の位置に合わせて、参照画素を離散的に読み出す。以上のように、本実施例の方法により、1つのサブフレーム画像に対して用いるフィルタ係数群に大きい値が集中しないように、9つのフィルタ係数群を設定することにより、オーバーフローの発生を抑制することができる。
【0067】
[その他の実施例]
実施例1では4倍速処理をする場合の例を、実施例2及び3では9倍速処理する場合の例を示した。しかしながらより一般的に、N倍速駆動表示用の、動画像のN倍速処理(2≦N)を行う場合に、上述の実施例の方法を変形して適用することができる。また、複数(N個)のフィルタ係数群を用意し、それぞれのフィルタ係数群を異なる位置の参照画素に適用すれば、少ないタップ数のフィルタを用いて高精度のフィルタ処理を行うためには十分である。
【0068】
例えば上述の実施例のように、矩形領域内の全ての画素を参照画素とする必要はない。着目画素から所定の位置にある画素を参照画素とすれば十分である。例えば図4(A)においてX44が着目画素である場合、Xab(a,bは偶数)で示される画素のみを参照画素としてもよい。
【0069】
また、フィルタ係数の数及び参照画素の数が、全てのサブフレーム画像について共通である必要もない。したがって、例えば3倍速処理をする場合にも、上述の各実施例の方法を応用できる。例えば、図4(A)においてX44が着目画素である場合、X00〜X29を第1サブフレーム画像についての参照画素にすればよい。また、X30〜X69を第2サブフレーム画像についての参照画素に、X70〜X99を第3サブフレーム画像についての参照画素にすればよい。この場合、それぞれのサブフレーム画像についてのフィルタ係数を用意しておけばよい。
【0070】
上述の各実施例では、各フィルタ係数群が重複しないように、オリジナルフィルタを分割するものとした。しかしながら、各フィルタ係数群が重複するように、分割が行われてもよい。たとえば、各フィルタ係数群を重ね合わせて係数の和を取ると、オリジナルフィルタの係数と等しくなるように、分割が行われてもよい。
【0071】
また、例えば実施例1では、補間画素401の各サブフレームについての平均値が、10×10タップのフィルタを用いて計算される補間画素値と等しくなる。これは、例えば液晶ディスプレイなどのホールド型表示装置に適している。一方で、インパルス型表示装置に対して用いるために、補間画素401の各サブフレームについての平均値が、10×10タップのフィルタを用いて計算される補間画素値と等しくなってもよい。

【特許請求の範囲】
【請求項1】
1枚のフレーム画像から、N倍速駆動表示用の、1番目からN番目までのN枚(N≧2)のサブフレーム画像を生成する画像処理装置であって、
フレーム画像を入力する入力手段と、
前記フレーム画像から、1番目からN番目までのN枚の中間画像を生成する生成手段と、
オリジナルフィルタを分割することにより生成された、1番目からN番目までのN個のサブフィルタと、それぞれの前記サブフィルタが参照する画素の相対位置情報とを保持する保持手段と、
i番目(1≦i≦N)の前記中間画像の着目画素に対して、i番目の前記サブフィルタの前記相対位置情報が示す相対位置にある、前記中間画像の画素値を収集する収集手段と、
前記収集手段が収集した画素値に対して、i番目の前記サブフィルタを用いて得られる演算値から、i番目の前記サブフレーム画像の前記着目画素の画素値を求めることにより、N枚の前記サブフレーム画像を作成する演算手段とを備え、
N枚の前記サブフレーム画像についての画素値の平均値が、前記フレーム画像に対して前記オリジナルフィルタを用いて得られる値に一致することを特徴とする、画像処理装置。
【請求項2】
1枚のフレーム画像から、N倍速駆動表示用の、1番目からN番目までのN枚(N≧2)のサブフレーム画像を生成する画像処理装置であって、
フレーム画像を入力する入力手段と、
前記生成手段は、連続する2つの前記フレーム画像を参照し、補間処理を行うことによって、前記フレーム画像から、1番目からN番目までのN枚の中間画像を生成する生成手段と、
オリジナルフィルタを分割することにより生成された、1番目からN番目までのN個のサブフィルタと、それぞれの前記サブフィルタが参照する画素の相対位置情報とを保持する保持手段と、
i番目(1≦i≦N)の前記中間画像の着目画素に対して、i番目の前記サブフィルタの前記相対位置情報が示す相対位置にある、前記中間画像の画素値を収集する収集手段と、
前記中間画像の着目画素周辺の画素の画素値が、前記N枚の中間画像の間で一致するか否かを判断する判断手段と、
前記収集手段が収集した画素値に対して、i番目の前記サブフィルタを用いて得られる演算値から、i番目の前記サブフレーム画像の前記着目画素の画素値を求めることにより、N枚の前記サブフレーム画像を作成する演算手段とを備え、
前記演算手段は、前記判断手段が画素値が一致すると判断した場合には、前記収集手段が収集した画素値に対してi番目の前記サブフィルタを用いた演算を行い、前記判断手段が画素値が一致しないと判断した場合には、前記中間画像の着目画素周辺の画素の画素値に対して前記サブフィルタとは別のフィルタを用いた演算を行うことにより、前記サブフレーム画像の前記着目画素の画素値を取得し、
N枚の前記サブフレーム画像についての、前記演算手段が前記サブフィルタを用いて演算した前記着目画素の画素値の平均値が、前記フレーム画像の前記着目画素周辺の画素の画素値に対して前記オリジナルフィルタを用いて得られる値に一致することを特徴とする、画像処理装置。
【請求項3】
前記演算手段は、
i番目の前記サブフィルタを用いた前記演算で得られた演算値が所定値を超えない場合、前記演算値を、i番目の前記サブフレーム画像の前記着目画素の画素値として取得し、
前記演算値が前記所定値を超える場合、前記所定値を、i番目の前記サブフレーム画像の前記着目画素の画素値として取得し、前記演算値と前記所定値との差分を、i+1番目の前記サブフィルタを用いた前記演算の結果に加える
ことを特徴とする、請求項1又は2に記載の画像処理装置。
【請求項4】
前記中間画像と前記サブフレーム画像とを用いて、前記中間画像を拡大して得られる拡大画像を得るための拡大手段を備えることを特徴とする、請求項1乃至3の何れか1項に記載の画像処理装置。
【請求項5】
1枚のフレーム画像から、N倍速駆動表示用の、1番目からN番目までのN枚(N≧2)のサブフレーム画像を生成する、入力手段と生成手段と保持手段と収集手段と演算手段とを備える画像処理装置が行う画像処理方法であって、
前記入力手段が、フレーム画像を入力する入力工程と、
前記生成手段が、前記フレーム画像から、1番目からN番目までのN枚の中間画像を生成する生成工程と、
前記保持手段が、オリジナルフィルタを分割することにより生成された、1番目からN番目までのN個のサブフィルタと、それぞれの前記サブフィルタが参照する画素の相対位置情報とを保持する保持工程と、
前記収集手段が、i番目(1≦i≦N)の前記中間画像の着目画素に対して、i番目の前記サブフィルタの前記相対位置情報が示す相対位置にある、前記中間画像の画素値を収集する収集工程と、
前記演算手段が、前記収集手段が収集した画素値に対して、i番目の前記サブフィルタを用いて得られる演算値から、i番目の前記サブフレーム画像の前記着目画素の画素値を求めることにより、N枚の前記サブフレーム画像を作成する演算工程とを備え、
N枚の前記サブフレーム画像についての画素値の平均値が、前記フレーム画像に対して前記オリジナルフィルタを用いて得られる値に一致することを特徴とする、画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−44266(P2012−44266A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−181101(P2010−181101)
【出願日】平成22年8月12日(2010.8.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】