図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本実施の形態の1つにおけるテレビジョン受像機の構成の概略を示すブロック図である。図1に示されるように、テレビジョン受像機1は、その全体を制御する中央演算装置(CPU)11、映像信号処理回路21、音声信号処理回路23およびパネルコントローラー25を含む集積回路(LSI)3と、電源ユニット5と、チューナー7と、インターフェース9と、表示部13と、操作部15と、スピーカー17とを備える。
インターフェース9は、TVアンテナ41と、TMDS(Transition Minimized Differential Signaling)方式でシリアル通信するためのDVI(Digital Visual Interface)端子43およびHDMI(High Definition Multimedia Interface)端子45と、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで通信するためのLAN端子47とを含む。インターフェース9は、CPU11からの指示に従って、DVI端子43、HDMI端子45またはLAN端子47に接続された外部の機器との間でデータを送受信する。
操作部15は、電源スイッチと、切替スイッチとを少なくとも含む。電源スイッチは、テレビジョン受像機1の電源のオンとオフの切り替えを指示する操作指示を入力するためスイッチである。切替スイッチは、テレビジョン受像機1で受像する放送チャンネルを指定する操作指示を入力するためのスイッチである。操作部15は、電源スイッチおよび切替スイッチが押下されることに応じて、各スイッチに対応する操作指示をCPU11に出力する。
なお、ここでは、テレビジョン受像機1が備える操作部15が操作される場合を例に説明したが、テレビジョン受像機1と無線で通信することが可能なリモートコントローラに操作部15を備えるようにして、各スイッチに対応する操作指示をテレビジョン受像機1に送信するようにしてもよい。この場合、リモートコントローラがテレビジョン受像機1と通信する通信媒体は、赤外光であってもよいし、電磁波であってもよい。
表示部13は、例えば、液晶表示装置(LCD)、プラズマディスプレイパネル等であり、テレビジョン番組を表示することが可能である。
電源ユニット5は、外部から供給される電力を制御する。CPU11は、電源スイッチから入力される操作指示に応じて、電源ユニット5に電力を供給させる、または、電力の供給を遮断させる。電源スイッチから入力される操作指示が電源オンに切り替える操作指示である場合、テレビジョン受像機1の全体に電力が供給され、電源スイッチから入力される操作指示が電源オフに切り替える操作指示である場合、テレビジョン受像機1に供給される電力が遮断される。
チューナー7は、例えば、地上波デジタルチューナーまたはBS/CSデジタルチューナーであり、TVアンテナ41と接続され、TVアンテナ41が受信する放送信号が入力される。放送信号は、映像データおよび音声データを含む高周波デジタル変調信号である。チューナー7は、逆インターリーブ回路、誤り訂正回路を備えており、取り出した特定の周波数の高周波デジタル変調信号を復調して可変長符号を生成する。チューナー7は、TVアンテナ41で受信された放送信号のうちからCPU11で指定されたチャンネルの放送信号を選択し、その放送信号に基づいて生成された可変長符号を映像信号処理回路21および音声信号処理回路23に出力する。
映像信号処理回路21は、チューナー7から入力される可変長符号に各種の処理を実行し、映像信号を生成する。
パネルコントローラー25は、表示部13を制御して、映像信号処理回路21が出力する映像信号の映像を表示部13に表示する。具体的には、パネルコントローラー25は、パネル駆動回路、バックライト制御回路を備え、CPU11からの指示に従って、パネル駆動回路の駆動を制御し、表示部13の背面に配置されたバックライトの点灯および消灯を制御する。
音声信号処理回路23は、オーディオデコーダを備えており、チューナー7から入力される可変長符号を復号して音声信号を生成し、音声信号をD/A(デジタル/アナログ)変換して、スピーカー17に出力する。
なお、ここでは、チューナー7がTVアンテナ41により受信された放送信号に基づいて、映像信号処理回路21が映像信号を生成する場合を例に説明したが、外部の機器がDVI端子43、HDMI端子45またはLAN端子47を介して送信した映像データに基づいて、映像信号処理回路21が映像信号を生成するようにしてもよい。また、チューナー7は、地上波デジタルチューナーとBS/CSデジタルチューナーとの両方を備えていてもよい。
図2は、映像信号処理回路の構成を示すブロック図である。図2に示されるように、映像信号処理回路21は、ビデオデコーダ51と、IP変換処理部53と、ノイズ低減処理部55と、シャープネス処理部57と、カラー調整処理部59と、スケーラー処理部61とを含む。
ビデオデコーダ51は、チューナー7から入力される可変長符号を復号して映像信号を生成し、映像信号をD/A変換して、IP変換処理部53に出力する。IP変換処理部53は、必要に応じて、ビデオデコーダ51から入力される映像信号をインタレース方式からプログレッシブ方式に変換する。ノイズ低減処理部55は、IP変換処理部53が出力する映像信号に含まれるノイズ成分を軽減するためのノイズ低減処理を実行する。シャープネス処理部57は、ノイズ低減処理部55が出力する映像信号の映像を鮮鋭化するシャープネス処理を実行する。カラー調整処理部59は、ノイズ低減処理部55が出力する映像信号に対して、コントラストや彩度等を調整するカラー処理を実行する。スケーラー処理部61は、カラー調整処理部59が出力する映像信号に対して、表示部13の画素数に応じたスケーリング処理を実行する。なお、CPU11は、図示しないフレームメモリに、映像信号処理回路21により各種の処理が実行される際の映像信号をフレーム単位で適宣記憶させる。
スケーリング処理は、表示部13の画素数に応じた倍率に、映像データに含まれるフレーム単位の画像データを拡大(または縮小)し、拡大(または縮小)により補間が必要な画素を補間画素として算出する処理を少なくとも含む。補間画素は、画像データが拡大(または縮小)された倍率により、位置が定まる。具体的には、画像データにおいて、縦方向、横方向および斜め方向それぞれの入力画素と入力画素との間の位置である。例えば、倍率が2倍である場合、縦方向、横方向および斜め方向それぞれの入力画素と入力画素との間を2等分する位置に補間画素が設定される。一般的には、画像データをn倍に拡大すると、縦方向および横方向に隣接する4つの入力画素の間をn×n等分する位置に補間画素が設定される。
図3は、スケーラー処理部の構成を示すブロック図である。図3に示されるように、スケーラー処理部61は、エッジ方向推定処理部71と、補間面設定部73と、仮画素値算出処理部75と、補間処理部77とを含む。
エッジ方向推定処理部71は、カラー調整処理部59から入力される映像信号に基づいて、フレーム単位の画像データにおける入力画素のエッジ方向、または、当該エッジ方向から所定角度だけずれたエッジ勾配を推定する。ここで、入力画素は、入力された画像データに存在する画素である。エッジ方向、つまり、エッジ線分の方向は、エッジ勾配の方向に直交する。本実施形態では、エッジ方向推定処理部71は、エッジ勾配の方向(つまり、エッジ方向から90度だけずれた方向)が含まれる角度範囲を判定することにより、エッジ方向を推定する。エッジ勾配の方向は、周知の技術を用いて算出することができる。ここでは、Sobelフィルタを用いて水平方向および垂直方向のエッジ勾配の方向θを算出する場合を例に説明する。なお、エッジ勾配の方向θは、水平方向であるX軸に対する角度で表される。
図4は、Sobelフィルタを示す図である。図4(a)は、水平方向に対応するSobelフィルタを示す図である。図4(b)は、垂直方向に対応するSobelフィルタを示す図である。エッジ方向推定処理部71は、図4(a),(b)に示すSobelフィルタを用いて算出される水平方向(X軸方向)および垂直方向(Y軸方向)の1次微分を用いて、エッジ勾配の方向θを算出する。水平方向の1次微分gradX(垂直方向のエッジを検出)は、図4(a)に示すSobelフィルタを用いて式(1)に従って算出される。
gradX=IN(x+1,y−1)+IN(x+1,y)×2
+IN(x+1,y+1)−IN(x−1,y−1)
−IN(x−1,y)×2−IN(x−1,y+1)・・・・・・式(1)
ただし、IN(x,y)は、座標(x,y)の入力画素の画素濃度を示す。
垂直方向の1次微分gradY(水平方向のエッジを検出)は、図4(b)に示すSobelフィルタを用いて式(2)に従って算出される。
gradY=IN(x−1,y+1)+IN(x,y+1)×2
+IN(x+1,y+1)−IN(x−1,y−1)
−IN(x,y−1)×2−IN(x+1,y−1)・・・・・・式(2)
ただし、IN(x,y)は、座標(x,y)の入力画素の画素濃度を示す。
ここで、水平方向の1次微分gradXおよび垂直方向の1次微分gradYを用いて、エッジ勾配の方向が含まれる角度範囲を判定するエッジ方向推定処理について説明する。図5は、エッジ方向推定処理の流れを示すフローチャートである。エッジ方向推定処理は、ROMまたはHDD等に記憶されたエッジ方向推定プログラムが実行されることにより実行される処理である。図5に示されるように、下記の数1で示される式で算出されたエッジの強さが所定の閾値T(例えば16)より小さいか否かを判断する(ステップS01)。エッジの強さが所定の閾値Tより小さいならば処理をステップS02に進めるが、そうでなければ処理をステップS03に進める。
ステップS02においては、エッジ勾配の方向が不定、すなわちエッジ勾配の方向θの判定不能と判断する。
ステップS03においては、下記の式(4)の条件を満たすか否かを判断する。換言すれば、gradXの符号とgradYの符号とが異なるか否かを判断する。gradXの符号とgradYの符号とが異なるならば処理をステップS13に進めるが、そうでなれば処理をステップS04に進める。
gradX×gradY<0・・・・・式(4)
ステップS04においては、下記の式(5)の条件を満たすか否かを判断する。式(5)の条件を満たすならば処理をステップS05に進めるが、そうでなければ処理をステップS06に進める。
|gradY|≦t1×|gradX|・・・・・・式(5)
ただし、t1はπ/16における正接の値(小数点以下4桁で表す場合0.1989)である。
ステップS05においては、エッジ勾配の方向が−π/16≦θ≦π/16、または、15π/16≦θ≦17π/16の範囲にあると判定する。
ステップS06においては、下記の式(6)の条件を満たすか否かを判断する。式(6)の条件を満たすならば処理をステップS07に進めるが、そうでなければ処理をステップS08に進める。
|gradY|≦t2×|gradX|・・・・・・式(6)
ただし、t2は3π/16における正接の値(小数点以下4桁で表す場合0.6682)である。
ステップS07においては、エッジ勾配の方向がπ/16<θ≦3π/16、または、−15π/16<θ≦−13π/16の範囲にあると判定する。
ステップS08においては、下記の式(7)の条件を満たすか否かを判断する。式(7)の条件を満たすならば処理をステップS09に進めるが、そうでなければ処理をステップS10に進める。
|gradY|≦t3×|gradX|・・・・・・式(7)
ただし、t3は5π/16における正接の値(小数点以下4桁で表す場合1.4966)である。
ステップS09においては、エッジ勾配の方向が3π/16<θ≦5π/16、または、−13π/16<θ≦−11π/16の範囲にあると判定する。
ステップS10においては、下記の式(8)の条件を満たすか否かを判断する。式(8)の条件を満たすならば処理をステップS11に進めるが、そうでなければ処理をステップS12に進める。
|gradY|≦t4×|gradX|・・・・・・式(8)
ただし、t4は7π/16における正接の値(小数点以下4桁で表す場合5.0273)である。
ステップS11においては、エッジ勾配の方向が5π/16<θ≦7π/16、または、−11π/16<θ≦−9π/16の範囲にあると判定する。
ステップS12においては、エッジ勾配の方向が7π/16≦θ<9π/16、または、−9π/16<θ≦−7π/16の範囲にあると判定する。なお、ステップS02、S05〜S12の処理が終了すると、エッジ方向推定処理は終了する。
ステップS13は、ステップS12においてgradXの符号とgradYの符号とが異なると判断された場合である。ステップS13においては、式(5)の条件を満たすか否かを判断する。式(5)の条件を満たすならば処理をステップS14に進めるが、そうでなければ処理をステップS15に進める。
ステップS14においては、エッジ勾配の方向が−π/16≦θ≦π/16、または、15π/16≦θ≦17π/16の範囲にあると判定する。
ステップS15においては、式(6)の条件を満たすか否かを判断する。式(6)の条件を満たすならば処理をステップS16に進めるが、そうでなければ処理をステップS17に進める。
ステップS16においては、エッジ勾配の方向が13π/16≦θ<15π/16、または、−3π/16≦θ<−π/16の範囲にあると判定する。
ステップS17においては、式(7)の条件を満たすか否かを判断する。式(7)の条件を満たすならば処理をステップS18に進めるが、そうでなければ処理をステップS19に進める。
ステップS18においては、エッジ勾配の方向11π/16≦θ<13π/16、または、−5π/16≦θ<−3π/16の範囲にあると判定する。
ステップS19においては、式(8)の条件を満たすか否かを判断する。式(8)の条件を満たすならば処理をステップS20に進めるが、そうでなければ処理をステップS21に進める。
ステップS20においては、エッジ勾配の方向が9π/16≦θ<11π/16、または、−7π/16<θ≦−5π/16の範囲にあると判定する。
ステップS21においては、エッジ勾配の方向が7π/16<θ<9π/16、または、−9π/16<θ<−7π/16の範囲にあると判定する。なお、全ての入力画素についてステップS14〜S21の処理が終了すると、エッジ方向推定処理は終了する。
なお、ここでは、入力画素の画素濃度を用いてエッジ勾配の方向を算出したが、入力画素の画素濃度に代えてRGB画像から生成した輝度値を用いてもよい。この場合、例えば、RGBデータを、下記の式(9)に示すマトリックス演算を用いて輝度Yに変換するようにすればよい。
Y=0.29891×R+0.58661×G+0.11448×B・・・・式(9)
また、輝度値を用いる代わりに、Rの1次微分gradXRおよびgradYR、Gの一次微分gradYGおよびgradYG、Bの一次微分gradYBおよびgradYBを求め、以下の数2で示される式で算出される勾配が最大のチャネルの一次微分を代表値とし、代表値としたgradXおよびgradYのそれぞれを水平方向の1次微分および垂直方向の1次微分に設定してもよい。
補間面設定部73は、エッジ方向推定処理部71から入力されるフレーム単位の画像データとエッジ方向推定処理部71により算出された各入力画素におけるエッジ勾配の方向とに基づいて、補間画素におけるエッジ方向(補間画素エッジ方向)に沿った領域であり、かつ、補間画素を囲む領域である補間面(補間領域)を設定する。ここで、エッジ方向は、エッジ勾配の方向に垂直である。このため、補間面設定部73は、補間画素の近傍に存在する入力画素のエッジ勾配の方向から、補間画素におけるエッジ勾配の方向を特定し、特定したエッジ勾配の方向に垂直な方向を補間画素エッジ方向とすればよい。そして、補間面設定部73は、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向に沿って補間面を設定する。補間面の設定は、表示部13の画素数に応じた映像データの拡大縮小率により補間の対象となる補間画素の近傍に位置する4×4入力画素で形成される四角形を含むブロック内を対象とする。具体的には、補間画素は、その近傍に位置する4×4入力画素で形成される四角形の中に含まれる。
補間面は、ブロックのサイズと補間画素エッジ方向と補間面が設定される領域内の画素数とに基づいて定まる領域である。具体的には、補間面は、その大きさがブロック内に収まる大きさであり、かつ、補間画素エッジ方向に沿った第1軸に平行な2辺と第1軸とは異なる方向の第2軸に平行な2辺とを有する平行四辺形である。また、平行四辺形の補間面には、第1軸および第2軸に沿って配列された格子点である、ブロック内の画素と同じ画素数の4×4画素が含まれる。補間面に含まれる複数の画素には、入力画素の他に、画素値が存在しない仮画素が含まれる場合がある。仮画素については後述する。なお、補間面は、第1軸および第2軸に沿って配列された4×4画素の中心の2×2画素で囲まれる領域に補間画素が含まれるように設定される。
なお、補間画素におけるエッジ勾配の方向は、補間画素に最も近い入力画素に対して算出されたエッジ勾配の方向を用いてもよいし、補間画素の近傍に位置する入力画素に対して算出されたエッジ勾配の方向の代表値を用いてもよい。この場合、代表値は、例えばエッジ方向推定処理部71により算出された複数のエッジ勾配の方向の平均値、または複数のエッジ勾配の方向のうち最頻値とすればよい。
図6は、補間画素を含むブロック内に設定された補間面の一例を示す図である。図6に示されるように、丸81,丸83および丸85はそれぞれ、補間画素,入力画素,仮画素の位置を示す。補間画素は、補間処理の対象となる画素である。入力画素は、入力された画像データにおいて画素値が存在する画素である。仮画素は、入力された画像データにおいて画素値が存在しない画素であり、補間面に含まれる複数の入力画素それぞれの間を補うための仮の画素である。仮画素は、後述する仮画素値算出処理部75により算出される。なお、ブロックのサイズは、4×4の入力画素を含むサイズである。
図6(a)は、補間画素を含むブロック内に設定された補間面の一例を示す第1の図である。ここでの補間画素におけるエッジ勾配の方向θは、殆ど水平方向であり、−π/16≦θ≦π/16または15π/16≦θ≦17π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、7π/16≦θ’≦9π/16または−9π/16≦θ’≦−7π/16の角度範囲に含まれる。この角度範囲に定められている補間面は、図6(a)に示されるように、正方形の補間面であり、補間画素の近傍に位置する4×4画素に対して設定される。ここで、エッジ勾配の方向は、殆ど水平方向であるので、補間画素の近傍に位置する4×4画素はすべて入力画素である。このため、従来用いられている補間処理を行ってもシャギーを発生させることなく補間処理することができる。
図6(b)は、補間画素を含むブロック内に設定された補間面の一例を示す第2の図である。ここでは、補間画素におけるエッジ勾配の方向θは、斜め方向であり、具体的には、水平方向に対して約26.5度傾いている。この傾きは、π/16<θ≦3π/16または−15π/16<θ≦−13π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、9π/16<θ’≦11π/16または−7π/16<θ’≦−5π/16の角度範囲に含まれる。この角度範囲に定められている補間面は、図6(b)に示されるように、平行四辺形の補間面である。補間面は、その平行となる2つの長辺がエッジ勾配の方向に垂直な方向(つまり補間画素エッジ方向)に沿って設定される。換言すれば、補間面は、その平行となる2つの長辺に沿って設定される。このため、補間面に含まれる複数の画素は、入力画素と仮画素とを含む4×4画素となる。
図6(c)は、補間画素を含むブロック内に設定された補間面の一例を示す第3の図である。ここでは、補間画素におけるエッジ勾配の方向θは、斜め方向であり、具体的には、水平方向に対して約45度傾いている。この傾きは、3π/16<θ≦5π/16または−13π/16<θ≦−11π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、11π/16<θ’≦13π/16または−5π/16<θ’≦−3π/16の角度範囲に含まれる。この角度範囲に定められている補間面は、図6(c)に示されるように、正方形の補間面である。また、補間面は、その2辺がエッジ勾配の方向に垂直な方向(つまり補間画素エッジ方向)に沿って設定される。換言すれば、補間面は、その2辺が補間画素エッジ方向に沿って設定される。このため、補間面に含まれる複数の画素は、入力画素と仮画素とを含む4×4画素となる。
図6(d)は、補間画素を含むブロック内に設定された補間面の一例を示す第4の図である。ここでは、補間画素におけるエッジ勾配の方向θは、斜め方向であり、具体的には、水平方向に対して約63.5度傾いている。この傾きは、5π/16<θ≦7π/16または−11π<θ≦−9π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配方向に垂直な方向である補間画素エッジ方向θ’は、13π/16<θ’≦15π/16または−3π/16<θ’≦−π/16の角度範囲に含まれる。この角度範囲に定められている補間面は、図6(d)に示されるように、平行四辺形の補間面である。また、補間面は、その平行となる2つの長辺がエッジ勾配の方向に垂直な方向(つまり補間画素エッジ方向)に沿って設定される。換言すれば、補間面は、その2つの長辺が補間画素エッジ方向に沿って設定される。このため、補間面に含まれる複数の画素は、入力画素と仮画素とを含む4×4画素となる。
図6(e)は、補間画素を含むブロック内に設定された補間面の一例を示す第5の図である。ここでは、エッジ勾配の方向θは、殆ど垂直方向であり、7π/16<θ<9π/16または−9π/16<θ<−7π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、−π/16<θ’<π/16または15π/16<θ’<17π/16の角度範囲に含まれる。この角度範囲に定められている補間面は、図6(e)に示されるように、図6(a)に示す補間面と同じであり、補間画素の近傍に位置する4×4画素に対して設定される。ここでは、エッジ勾配の方向は、殆ど垂直方向であるので、補間画素の近傍に位置する4×4画素は、すべて入力画素である。このため、従来用いられている補間処理を行ってもシャギーを発生させることなく補間処理することができる。
図6(f)は、補間画素を含むブロック内に設定された補間面の一例を示す第6の図である。ここでは、エッジ勾配の方向θは、斜め方向であり、具体的には水平方向に対して約116.5度傾いている。この傾きは、9π/16≦θ<11π/16または−7π/16≦θ<−5π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、π/16≦θ’<3π/16または−15π/16≦θ’<−13π/16の角度範囲に含まれる。この角度範囲に定められる補間面は、図6(f)に示されるように、平行四辺形の補間面である。また、補間面は、その平行となる2つの長辺がエッジ勾配の方向に垂直な方向(つまり補間画素エッジ方向)に沿って設定される。換言すれば、補間面は、その平行となる2つの長辺が補間画素エッジ方向に沿って設定される。このため、補間面に含まれる複数の画素は、入力画素と仮画素とを含む4×4画素となる。
図6(g)は、補間画素を含むブロック内に設定された補間面の一例を示す第7の図である。ここでは、エッジ勾配の方向θは、斜め方向であり、具体的には水平方向に対して135度傾いている。この傾きは、11π/16≦θ<13π/16または−5π/16≦θ<−3π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、3π/16≦θ’<5π/16または−11π/16≦θ’<−11π/16の角度範囲に含まれる。この角度範囲に定められる補間面は、図6(g)で示されるように、図6(c)に示される補間面と同じであり、補間面は、その2辺が補間画素エッジ方向に沿って設定される。
図6(h)は、補間画素を含むブロック内に設定された補間面の一例を示す第7の図である。ここでは、エッジ勾配の方向θは、斜め方向であり、具体的には水平方向に対して約153.4度傾いている。この傾きは、13π/16≦θ<15π/16または−3π/16≦θ<−π/16の角度範囲に含まれる。すなわち、補間画素におけるエッジ勾配の方向に垂直な方向である補間画素エッジ方向θ’は、5π/16≦θ’<7π/16または−11π≦θ’<−9π/16の角度範囲に含まれる。この角度範囲に定められている補間面は、図6(h)に示されるように、平行四辺形の補間面である。また、補間面は、その平行となる2つの長辺がエッジ勾配の方向に垂直な方向(つまり補間画素エッジ方向)に沿って設定される。換言すれば、補間面は、その平行となる2つの長辺が補間画素エッジ方向に沿って設定される。このため、補間面に含まれる複数の画素は、入力画素と仮画素とを含む4×4画素となる。
ここで、補間画素エッジ方向とエッジ勾配の関係を具体的に説明する。図31は、補間画素エッジ方向とエッジ勾配の関係を示す図である。ここでは、図6(b),(d)に対応する補間画素エッジ方向とエッジ勾配の関係について説明する。図31(a)は、図6(b)に対応する補間画素エッジ方向とエッジ勾配の関係を示す図である。図31(b)は、図6(d)に対応する補間画素エッジ方向とエッジ勾配の関係を示す図である。図31(a),(b)に示されるように、矢印はエッジ勾配を示し、矢印に垂直である太線はエッジ線分(つまり、補間画素エッジ方向)を示す。エッジ勾配の方向θは、水平方向を基準とした角度を示す。図6(b)に示す補間面は、その長辺が図31(a)に示す矢印に垂直である太線に沿って設定され、図6(d)に示す補間面は、その長辺が図31(b)に示す矢印に垂直である太線に沿って設定される。これにより、補間画素エッジ方向に沿って補間面が設定される。
上述したように、補間画素におけるエッジ勾配の方向を推定することにより補間画素エッジ方向を特定することができるので、補間面を補間画素エッジ方向に沿って設定することができる。これにより、画像データの拡大により補間が必要となった位置に補間画素が形成されることにより、ジャギーを抑制することができる。ここで、補間面は、補間画素の近傍に位置する4×4の入力画素のみを用いても設定することが可能である。しかしながら、画素間の距離が非常に遠くなるため、補間画素との相関性が低くなってしまう。
そこで、ここでは入力画素が存在しない位置において仮画素を特定し、仮画素を含めた4×4画素の補間面を設定する。これにより、入力画素のみを用いた4×4画素の補間面を形成する場合に比べて、画素間の距離を適度に保つことができる。したがって、補間画素との相関性の高い画素を用いた補間処理が可能となる。また、補間画素の近傍に位置する複数の画素を含むブロック内に、補間画素エッジ方向に沿った補間面を設定するので、エッジ方向に関係なく補間面を設定した場合に比べて、補間処理により生じるジャギーを抑制することができる。
なお、エッジ勾配の方向が不定である場合、一意に図6(a)または図6(c)に対応する補間面を設定するようにしてもよいし、補間画素の近傍に位置する入力画素におけるエッジ勾配の方向を参照して、図6(a)〜(d)のいずれかに対応する補間面を設定するようにしてもよい。
仮画素値算出処理部75は、補間面設定部73により設定された補間面内において特定される仮画素の画素値(画素濃度を示す値)を、その近傍に位置する入力画素に基づいて算出する仮画素算出処理を実行する。具体的には、仮画素算出処理は、仮画素の近傍に位置する入力画素に対して推定されたエッジ勾配の方向それぞれに定められた算出方法に従って仮画素の画素値を算出する処理である。
すなわち、仮画素値算出処理部75は、仮画素の近傍に存在する入力画素のエッジ勾配の方向から、仮画素におけるエッジの方向を示す仮画素エッジ方向を特定する。そして、仮画素値算出処理部75は、仮画素を含み、仮画素エッジ方向に沿った仮画素値算出用領域を設定し、仮画素値算出用領域に含まれる入力画素の値を用いて仮画素の画素値を算出する。より具体的には、仮画素値算出処理部75は、仮画素エッジ方向または当該仮画素エッジ方向から所定角度範囲内の方向に隣接する入力画素の値を用いて仮画素の画素値を算出する。
ここで、仮画素の近傍に位置する入力画素は、例えば、仮画素の近傍に位置する2つの入力画素であってもよいし(この場合、当該2つの入力画素からなる領域が仮画素算出用領域となる)、仮画素の近傍に位置する4つの入力画素であってもよい(この場合、当該4つの入力画素からなる領域が仮画素算出用領域となる)。仮画素の近傍に位置する画素が仮画素の近傍に位置する2つの入力画素または4つの入力画素である場合、仮画素の画素値は、複数の入力画素それぞれの画素値に重み係数を乗じて加算した値である。重み係数は、予め定めた値であってもよいし、画素間の距離に応じた値であってもよい。なお、以下では、仮画素の画素値の算出方法を仮画素値算出方法という。
図7は、仮画素値算出方法の一例を示す第1の図である。ここでは、図6(b),(h)に示す補間面に含まれる仮画素の仮画素値算出方法をパターン別に示している。ここで、仮画素の近傍に位置する入力画素のエッジ勾配は、補間面のエッジ勾配とは異なる場合がある。このため、仮画素の算出は、仮画素の近傍に位置する入力画素のエッジ勾配の方向に応じたパターンに従って算出することが好ましいので、仮画素の近傍に位置する入力画素のエッジ勾配の方向に応じたパターンに従って算出する場合を例に説明する。ここでは、仮画素を算出する際に使用するエッジ勾配の方向(仮画素におけるエッジ勾配の方向)θは、仮画素の4近傍の入力画素におけるエッジ勾配の方向θの代表値(例えば最頻値や平均値)を用いるものとする。なお、ここでの仮画素算出処理が実行される仮画素は、横方向に並ぶ入力画素の間に位置する仮画素を対象とする。
図7(a)は、第1のパターンの仮画素値算出方法を示す図である。第1のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向がπ/16<θ≦3π/16または−15π/16<θ≦−13π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、9π/16<θ’≦11π/16または−7π/16<θ’≦−5π/16の角度範囲に含まれる。そこで、図7(a)に示されるように、第1のパターンにおいては、仮画素の近傍に位置し、仮画素に対して仮画素エッジ方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。つまり、仮画素エッジ方向に沿って隣接する入力画素1,2を含む領域(図中、点線で示される)が仮画素算出用領域として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
図7(b)は、第2のパターンの仮画素値算出方法を示す図である。第2のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が3π/16<θ≦5π/16または−13π/16<θ≦−11π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、11π/16<θ’≦13π/16または−5π/16<θ’≦−3π/16の角度範囲に含まれる。そこで、図7(b)に示されるように、第2のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。つまり、入力画素1〜4を含む点線の領域が仮画素算出用領域として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素2,4の距離が仮画素と入力画素1,3の距離よりも近いことを考慮して、入力画素2,4に対して重み係数を0.3に設定し、入力画素1,3に対して重み係数を0.2に設定するようにしてもよい。なお、入力画素1〜4に対して設定する重み係数を全て同じ値にするか、仮画素との距離に応じた値に設定するかは、画像を用いて検証を行い、好ましい方法を選択すればよい。具体的には、入力画素1〜4に対して設定する重み係数を全て同じ値にする方法により生成した解像度の性能を評価するためのテスト画像と入力画素1〜4に対して設定する重み係数を仮画素との距離に応じた値に設定する方法により生成した解像度の性能を評価するためのテスト画像のうち、好ましい画質となった方法を選択する。
図7(c)は、第3のパターンの仮画素値算出方法を示す図である。第3のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が5π/16<θ≦7π/16または−11π/16<θ≦−9π/16に含まれるときの仮画素算出方法である。この場合、仮画素エッジ方向θ’は、13π/16<θ’≦15π/16または−3π/16<θ’≦−π/16の角度範囲に含まれる。そこで、図7(c)に示されるように、第3のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。つまり、入力画素1〜4を含む点線の領域が仮画素算出用領域として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,4の距離が仮画素と入力画素2,3の距離よりも近いことを考慮して、入力画素2,4に対して重み係数を0.1に設定し、入力画素1,3に対して重み係数を0.4に設定するようにしてもよい。
図7(d)は、第4のパターンの仮画素値算出方法を示す図である。第4のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が9π/16≦θ<11π/16または−7π/16≦θ<−5π/16の角度範囲に含まれるときの仮画素算出方法である。この場合、仮画素エッジ方向θ’は、−π/16≦θ’<π/16または15π/16≦θ’<17π/16の角度範囲に含まれる。そこで、図7(d)に示されるように、第4のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。つまり、入力画素1〜4を含む点線の領域が仮画素算出用領域として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。これにより、仮画素が算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,3の距離が仮画素と入力画素2,4の距離よりも近いことを考慮して、入力画素1,3に対して重み係数を0.4に設定し、入力画素2,3に対して重み係数を0.1に設定するようにしてもよい。
図7(e)は、第5のパターンの仮画素値算出方法を示す図である。第5のパターンにおいては、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が11π/16≦θ<13π/16または−5π/16≦θ<−3π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、π/16≦θ’<3π/16または−15π/16≦θ’<−13π/16の角度範囲に含まれる。そこで、図7(e)に示されるように、第5のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。つまり、入力画素1〜4を含む点線の領域が仮画素算出用領域として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,3の距離が仮画素と入力画素2,4の距離よりも近いことを考慮して、入力画素1,3に対して重み係数を0.3に設定し、入力画素2,4に対して重み係数を0.2に設定するようにしてもよい。
図7(f)は、第6のパターンの仮画素値算出方法を示す図である。第6のパターンにおいては、仮画素の近傍に位置する画素において推定された、仮画素におけるエッジ勾配の方向が13π/16≦θ<15π/16または−3π/16≦θ<−π/16の角度範囲に含まれるときの仮画素算出方法である。この場合、仮画素エッジ方向θ’は、3π/16≦θ’<5π/16または−11π/16≦θ’<−11π/16の角度範囲に含まれる。そこで、図7(f)に示されるように、第6のパターンにおいては、仮画素の近傍に位置し、仮画素に対して仮画素エッジ方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。つまり、入力画素1、2を含む点線の領域が仮画素算出用領域として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
図7(g)は、第7のパターンの仮画素値算出方法を示す図である。第7のパターンにおいては、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が不定のときの仮画素算出方法である。図7(g)に示されるように、第7のパターンにおいては、仮画素の横方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ0.5の重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、仮画素の近傍に位置する入力画素におけるエッジ方向を参照して仮画素の画素値を算出してもよい。
図8は、仮画素算出方法の一例を示す第2の図である。ここでは、図6(c),(g)に示す補間面に含まれる仮画素の画素値の仮画素算出方法をパターン別に示している。ここで、仮画素の近傍に位置する入力画素のエッジ勾配は、補間面のエッジ勾配とは異なる場合がある。このため、仮画素の算出は、仮画素の近傍に位置する入力画素のエッジ勾配の方向に応じたパターンに従って算出することが好ましい。なお、ここでの仮画素算出処理が実行される仮画素は、斜め方向に並ぶ入力画素の間に位置する仮画素を対象とする。
図8(a)は、第1のパターンの仮画素値算出方法を示す図である。第1のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向がπ/16<θ≦3π/16または−15π/16<θ≦−13π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、9π/16<θ’≦11π/16または−7π/16<θ’≦−5π/16の角度範囲に含まれる。そこで、図8(a)に示されるように、第1のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,4の距離が仮画素と入力画素2,3の距離よりも近いことを考慮して、入力画素1,4に対して重み係数を0.3に設定し、入力画素2,3に対して重み係数を0.2に設定するようにしてもよい。なお、入力画素1〜4に対して設定する重み係数を全て同じ値にするか、仮画素との距離に応じた値に設定するかは、画像を用いて検証を行い、好ましい方法を選択すればよい。
図8(b)は、第2のパターンの仮画素値算出方法を示す図である。第2のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が3π/16<θ≦5π/16または−13π/16<θ≦−11π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、11π/16<θ’≦13π/16または−5π/16<θ’≦−3π/16の角度範囲に含まれる。そこで、図8(b)に示されるように、第2のパターンにおいては、仮画素の近傍に位置し、仮画素に対して仮画素エッジ方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
図8(c)は、第3のパターンの仮画素値算出方法を示す図である。第3のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が5π/16<θ≦7π/16または−11π/16<θ≦−9π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、13π/16<θ’≦15π/16または−3π/16<θ’≦−π/16の角度範囲に含まれる。そこで、図8(c)に示されるように、第3のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素2,3の距離が仮画素と入力画素1,4の距離よりも近いことを考慮して、入力画素2,3に対して重み係数を0.3に設定し、入力画素1,4に対して重み係数を0.2に設定するようにしてもよい。
図8(d)は、第4のパターンの仮画素値算出方法を示す図である。第4のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が9π/16≦θ<11π/16または−7π/16≦θ<−5π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、−π/16≦θ’<π/16または15π/16≦θ’<17π/16の角度範囲に含まれる。そこで、図8(d)に示されるように、第4のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1と入力画素3とを結ぶ線と、入力画素2と入力画素4とを結ぶ線とが交わる点が仮画素の位置として算出され、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,4の距離が仮画素と入力画素2,3の距離よりも近いことを考慮して、入力画素1,4に対して重み係数を0.3に設定し、入力画素2,3に対して重み係数を0.2に設定するようにしてもよい。
図8(e)は、第5のパターンの仮画素値算出方法を示す図である。第5のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が11π/16≦θ<13π/16または−5π/16≦θ<−3π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、π/16≦θ’<3π/16または−15π/16≦θ’<−13π/16の角度範囲に含まれる。そこで、図8(e)に示されるように、第5のパターンにおいては、仮画素の近傍に位置し、仮画素に対して仮画素エッジ方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
図8(f)は、第6のパターンの仮画素値算出方法を示す図である。第6のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が13π/16≦θ<15π/16または−3π/16≦θ<−π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、3π/16≦θ’<5π/16または−11π/16≦θ’<−11π/16の角度範囲に含まれる。そこで、図8(f)に示されるように、第6のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1と入力画素3とを結ぶ線と、入力画素2と入力画素4とを結ぶ線とが交わる点が仮画素の位置として算出され、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,4の距離が仮画素と入力画素2,3の距離よりも近いことを考慮して、入力画素1,4に対して重み係数を0.3に設定し、入力画素2,3に対して重み係数を0.2に設定するようにしてもよい。
図8(g)は、第7のパターンの仮画素値算出方法を示す図である。第7のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が不定のときの仮画素算出方法である。図8(g)に示されるように、第7のパターンにおいては、仮画素の斜め方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは入力画素1〜4に対して重み係数を0.25に設定している。
図9は、仮画素算出方法の一例を示す第3の図である。ここでは、図6(d),(f)に示す補間面に含まれる仮画素の画素値の算出方法をパターン別に示している。ここで、仮画素の近傍に位置する入力画素のエッジ勾配は、補間面のエッジ勾配とは異なる場合がある。このため、仮画素の算出は、エッジ勾配の方向に応じたパターンに従って算出することが好ましい。なお、ここでの仮画素算出処理が実行される仮画素は、縦方向に並ぶ入力画素の間に位置する仮画素を対象とする。
図9(a)は、第1のパターンの仮画素値算出方法を示す図である。第1のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向がπ/16<θ≦3π/16または−15π/16<θ≦−13π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、9π/16<θ’≦11π/16または−7π/16<θ’≦−5π/16の角度範囲に含まれる。そこで、図9(a)に示されるように、第1のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素2,4の距離が仮画素と入力画素1,3の距離よりも近いことを考慮して、入力画素2,4に対して重み係数を0.4に設定し、入力画素1,3に対して重み係数を0.1に設定するようにしてもよい。なお、入力画素1〜4に対して設定する重み係数を全て同じ値にするか、仮画素との距離に応じた値に設定するかは、画像を用いて検証を行い、好ましい方法を選択すればよい。
図9(b)は、第2のパターンの仮画素値算出方法を示す図である。第2のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が3π/16<θ≦5π/16または−13π/16<θ≦−11π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、11π/16<θ’≦13π/16または−5π/16<θ’≦−3π/16の角度範囲に含まれる。そこで、図9(b)に示されるように、第2のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素2,4の距離が仮画素と入力画素1,3の距離よりも近いことを考慮して、入力画素2,4に対して重み係数を0.3に設定し、入力画素1,3に対して重み係数を0.2に設定するようにしてもよい。
図9(c)は、第3のパターンの仮画素値算出方法を示す図である。第3のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が5π/16<θ≦7π/16または−11π/16<θ≦−9π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、13π/16<θ’≦15π/16または−3π/16<θ’≦−π/16の角度範囲に含まれる。そこで、図9(c)に示されるように、第3のパターンにおいては、仮画素の近傍に位置し、仮画素に対して仮画素エッジ方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
図9(d)は、第4のパターンの仮画素値算出方法を示す図である。第4のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が9π/16≦θ<11π/16または−7π/16≦θ<−5π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、−π/16≦θ’<π/16または15π/16≦θ’<17π/16の角度範囲に含まれる。そこで、図9(d)に示されるように、第4のパターンにおいては、仮画素の近傍に位置し、仮画素に対して仮画素エッジ方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
図9(e)は、第5のパターンの仮画素値算出方法を示す図である。第5のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が11π/16≦θ<13π/16または−5π/16≦θ<−3π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、π/16≦θ’<3π/16または−15π/16≦θ’<−13π/16の角度範囲に含まれる。そこで、図9(e)に示されるように、第5のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,3の距離が仮画素と入力画素2,4の距離よりも近いことを考慮して、入力画素1,3に対して重み係数を0.3に設定し、入力画素2,4に対して重み係数を0.2に設定するようにしてもよい。
図9(f)は、第6のパターンの仮画素値算出方法を示す図である。第6のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が13π/16≦θ<15π/16または−3π/16≦θ<−π/16の角度範囲に含まれるときの仮画素値算出方法である。この場合、仮画素エッジ方向θ’は、3π/16≦θ’<5π/16または−11π/16≦θ’<−11π/16の角度範囲に含まれる。そこで、図9(f)に示されるように、第6のパターンにおいては、仮画素の近傍に位置し、仮画素エッジ方向から45°以内の方向に隣接する入力画素1〜4が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1〜4それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1〜4の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、入力画素1〜4に対して重み係数を0.25に設定してもよいし、仮画素と入力画素1,3の距離が仮画素と入力画素2,4の距離よりも近いことを考慮して、入力画素1,3に対して重み係数を0.4に設定し、入力画素2,4に対して重み係数を0.1に設定するようにしてもよい。
図9(g)は、第7のパターンの仮画素値算出方法を示す図である。第7のパターンは、仮画素の近傍に位置する入力画素において推定された、仮画素におけるエッジ勾配の方向が不定のときの仮画素算出方法である。図9(g)に示されるように、第7のパターンにおいては、仮画素の縦方向に隣接する入力画素1,2が、仮画素の画素値を算出するための画素として設定される。仮画素の画素値は、入力画素1,2それぞれに設定された重み係数に基づいて算出される。具体的には、入力画素1の画素値および入力画素2の画素値にそれぞれ重み係数を掛け、加算した値が仮画素の画素値として算出される。なお、ここでは、入力画素1および入力画素2に対して重み係数を0.5に設定している。
ここで、補間面は、補間画素の近傍に位置する4×4の入力画素のみを用いても設定することが可能である。しかしながら、画素間の距離が非常に遠くなるため、補間画素との相関性が低くなってしまう。そこで、図7〜9において述べたように、補間面において入力画素が存在しない位置に仮画素を設定したので、補間面内の画素間の距離を適度に保つことができる。これにより、補間画素との相関性の高い画素を用いた補間処理が可能となる。
なお、ここでは、仮画素におけるエッジ勾配の方向を、仮画素の4近傍の入力画素におけるエッジ勾配の方向θの代表値(例えば最頻値や平均値)を用いるものとした。しかしながら、これに限定されず、仮画素に最も近い入力画素のエッジ勾配の方向θを用いてもよい。もしくは、仮画素が属する補間面を設定する際に用いた補間画素におけるエッジ勾配の方向を、仮画素におけるエッジ勾配の方向として設定してもよい。この場合、仮画素におけるエッジ勾配の方向を、補間画素におけるエッジ勾配の方向とは別に算出する必要がないので、処理速度を高めることができる。
補間処理部77は、仮画素値算出処理部75により画素値が算出された仮画素を含む補間面に補間処理を実行する。補間処理は、補間面に含まれる補間画素の画素値を算出する処理である。補間処理は、例えば、Lanczos(ランツォシュ)補間処理である。Lanczos補間処理は、数3で示される補間関数に基づいて定められる重み係数と補間に用いる画素との積和を算出する補間演算を実行する処理である。
ただし、sinc関数は下記の数4で示される式であり、nは補間関数の性質を制御するための変数である。Lanczos補間処理に用いる補間画素の画素数は、変数nに応じて変化する。dは、補間画素とその近傍に位置する画素(入力画素または仮画素)との距離を示す。
補間処理部77は、エッジ方向推定処理部71により推定されたエッジ勾配の方向に応じた補間演算を実行し、補間画素の画素値を算出する。ここで、エッジ勾配の方向別の補間演算について説明する。
なお、以下では、図6(a),(e)に示す補間面を第1の補間面といい、図6(b)に示す補間面を第2の補間面といい、図6(c),(g)に示す補間面を第3の補間面といい、図6(d)に示す補間面を第4の補間面といい、図6(f)に示す補間面を第5の補間面といい、図6(h)に示す補間面を第6の補間面という。また、本実施の形態における補間処理は、補間画素の近傍に位置する4×4画素を用いるため、数3においてn=2としている。この場合、重み係数は、補間画素の位置からの距離によって定まり、具体的には、図16に示すような分布図となる。なお、分布図の横軸は補間画素からの距離を示し、縦軸は重み係数を示す。
図10は、第1の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、入力された画像データにおける水平方向(横方向)をX軸、垂直方向(縦方向)をY軸とする座標系を設定している。ここでの座標系は、入力画素とその隣の入力画素との距離を基準とした座標系である。図10には、補間画素とその近傍左上画素との距離の水平方向成分および垂直方向成分がそれぞれdistX,distYとして示されている。ここで、distXは、水平方向に隣接する入力画素間の距離を1としたときの値であり、distYは、垂直方向に隣接する入力画素間の距離を1としたときの値である。補間演算は、図10に示されるdistX,distYを用いて、式(11)により水平方向に実行される。
V(i)=w(−1−distX)×P(0,i)
+w(−distX)×P(1,i)
+w(1−distX)×P(2,i)
+w(2−distX)×P(3,i)・・・・・式(11)
ただし、0≦i≦3であり、P(X,Y)は入力画素を示す。
次に、式(11)により算出されたV(i)を用いて、式(12)により補間演算が行なわれ、補間画素の画素値OUTが算出される。
OUT=w(−1−distY)×V(0)
+w(−distY)×V(1)
+w(1−distY)×V(2)
+w(2−distY)×V(3)・・・・・式(12)
図11は、第2の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、第2の補間面の横方向をX’軸(第2軸)、補間画素エッジ方向に平行な方向をY’軸(第1軸)とする座標系を設定している。ここでの座標系は、入力画素とその隣の仮画素との距離を基準とした座標系である。図11には、補間画素とその近傍左上画素との距離の水平方向(X軸方向)成分および垂直方向(Y軸方向)成分がそれぞれdistX,distYとして示されている。補間演算は、図11に示されるdistX,distYに基づいて算出されたdistX’とdistYとを用いて、式(13)により水平方向に実行される。
V(i)=w(−1−distX’)×P(0,i)
+w(−distX’)×P(1,i)
+w(1−distX’)×P(2,i)
+w(2−distX’)×P(3,i)・・・・・式(13)
ただし、0≦i≦3であり、P(X’,Y’)は入力画素または仮画素を示す。なお、distX’は式(14)によって算出される。
distX’=2×distX+distY・・・・・・・式(14)
distX’は、補間画素と基準画素を通る水平方向より斜め右上約63.4度方向の軸(P(1,0)とP(1,3)を通る軸)との距離を示す。以下、基準画素は、補間画素に対する近傍左上画素である。
次に、式(14)により算出されたV(i)を用いて、式(15)により補間演算が行なわれ、補間画素の画素値OUTが算出される。
OUT=w(−1−distY)×V(0)
+w(−distY)×V(1)
+w(1−distY)×V(2)
+w(2−distY)×V(3)・・・・・式(15)
ここで、distXは、水平方向に隣接する入力画素間の距離を1としたときの値であり、distYは、垂直方向に隣接する入力画素間の距離を1としたときの値である。一方、distX’は、仮画素を含めた補間面におけるX’軸方向に隣接する画素(入力画素、仮画素の両方を含む)間の距離を1としたときの値であり、distY’は、仮画素を含めた補間面におけるY’軸方向に隣接する画素間の距離を1としたときの値である。以下の図12から16についても同様である。
図12は、第3の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、第3の補間面の補間画素エッジ方向に沿った辺に平行な方向をX’軸(第1軸)、補間画素エッジ方向に沿っていない辺に平行な方向をY’軸(第2軸)とする座標系を設定している。ここでの座標系は、入力画素とその隣の仮画素との距離を基準とした座標系である。
図12には、補間画素とその近傍左上画素との距離の水平方向成分および垂直方向成分がそれぞれdistX,distYとして示されている。補間演算は、図12に示されるdistX,distYに基づいて算出されたdistX’とdistYとを用いて、式(16)により水平方向に実行される。
V(i)=w(−1−distX’)×P(0,i)
+w(−distX’)×P(1,i)
+w(1−distX’)×P(2,i)
+w(2−distX’)×P(3,i)・・・・・式(16)
ただし、0≦i≦3であり、P(X’,Y’)は入力画素または仮画素を示す。なお、distX’は式(17)によって算出される。
distX’=distX−distY・・・・・・・式(17)
distX’は、補間画素と基準画素を通る水平方向より斜め右上45度方向の軸(P(0,1)とP(3,1)とを通る軸)との距離を示す。
次に、式(17)により算出されたV(i)を用いて、式(18)により補間演算が行なわれ、補間画素の画素値OUTが算出される。
OUT=w(−1−distY’)×V(0)
+w(−distY’)×V(1)
+w(1−distY’)×V(2)
+w(2−distY’)×V(3)・・・・・式(18)
ただし、distY’は、図12に示されるdistX、distYを用いて式(19)により算出される。
distY’=distX+distY・・・・・・・式(19)
distY’は、補間画素と基準画素を通る水平方向より斜め右下45度方向の軸(P(1,0)とP(1,3)とを通る軸)との距離を示す。
図13は、第4の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、第4の補間面の補間画素エッジ方向に沿った辺に平行な方向をX’軸(第1軸)、補間画素エッジ方向に沿っていない辺に平行な方向をY’軸(第2軸)とする座標系を設定している。ここでの座標系は、入力画素とその隣の仮画素との距離を基準とした座標系である。図13には、補間画素とその近傍左上画素との距離の水平方向成分および垂直方向成分がそれぞれdistX,distYとして示されている。補間演算は、図13に示されるdistX,distYを用いて、式(20)により水平方向に実行される。
V(i)=w(−1−distX)×P(0,i)
+w(−distX)×P(1,i)
+w(1−distX)×P(2,i)
+w(2−distX)×P(3,i)・・・・・式(20)
次に、式(20)により算出されたV(i)を用いて、式(21)により補間演算が行なわれ、補間画素の画素値OUTが算出される。
OUT=w(−1−distY’)×V(0)
+w(−distY’)×V(1)
+w(1−distY’)×V(2)
+w(2−distY’)×V(3)・・・・・式(21)
ただし、distY’は、図13に示されるdistX、distYを用いて式(22)により算出される。
distY’=2×distY+distX・・・・・・・式(22)
distY’は、補間画素と基準画素を通る水平方向より斜め右上26.5度方向の軸(P(0,1)とP(3,1)とを通る軸)との距離を示す。
図14は、第5の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、第5の補間面の補間エッジ方向に沿った辺に平行な方向をX’軸(第1軸)、補間画素エッジ方向に沿っていない辺に平行な方向をY’軸(第2軸)とする座標系を設定している。ここでの座標系は、入力画素とその隣の仮画素との距離を基準とした座標系である。図14には、補間画素とその近傍左上画素との距離の水平方向成分および垂直方向成分がそれぞれdistX,distYとして示されている。補間演算は、図14に示されるdistX,distYを用いて、式(23)により水平方向に実行される。
V(i)=w(−1−distX)×P(0,i)
+w(−distX)×P(1,i)
+w(1−distX)×P(2,i)
+w(2−distX)×P(3,i)・・・・・式(23)
ただし、0≦i≦3であり、P(X’,Y’)は入力画素または仮画素を示す。
次に、式(23)により算出されたV(i)を用いて、式(24)により補間演算が行なわれ、補間画素の画素値OUTが算出される。
OUT=w(−1−distY’)×V(0)
+w(−distY’)×V(1)
+w(1−distY’)×V(2)
+w(2−distY’)×V(3)・・・・・式(24)
ただし、distY’は、図14に示されるdistX、distYを用いて式(25)により算出される。
distY’=2×distY−distX・・・・・・・式(25)
distY’は、補間画素と基準画素を通る水平方向より斜め右下−26.5度方向の軸(P(0,1)とP(3,1)とを通る軸)との距離を示す。
図15は、第6の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、第6の補間面の補間画素エッジ方向に沿っていない辺に平行な方向をX’軸(第2軸)、補間画素エッジ方向に沿った辺に平行な方向をY’軸(第1軸)とする座標系を設定している。ここでの座標系は、入力画素とその隣の仮画素との距離を基準とした座標系である。図15には、補間画素とその近傍左上画素との距離の水平方向成分および垂直方向成分がそれぞれdistX,distYとして示されている。補間演算は、図15に示されるdistX,distYに基づいて算出されたdistX’とdistYとを用いて、式(26)により水平方向に実行される。
V(i)=w(−1−distX’)×P(0,i)
+w(−distX’)×P(1,i)
+w(1−distX’)×P(2,i)
+w(2−distX’)×P(3,i)・・・・・式(26)
ただし、0≦i≦3であり、P(X’,Y’)は入力画素または仮画素を示す。なお、distX’は式(27)によって算出される。
distX’=2×distX−distY・・・・・・・式(27)
distX’は、補間画素と基準画素を通る水平方向より斜め右下−63.4度方向の軸(P(1,0)とP(1,3)とを通る軸)との距離を示す。
次に、式(26)により算出されたV(i)を用いて、式(28)により補間演算が行なわれ、補間画素の画素値OUTが算出される。
OUT=w(−1−distY)×V(0)
+w(−distY)×V(1)
+w(1−distY)×V(2)
+w(2−distY)×V(3)・・・・・式(28)
以上の処理により、エッジ勾配の方向に応じて最適な補間面による補間処理演算を行うことができる。
なお、ここは、Lanczos補間処理を用いて補間演算する場合を例に説明したが、下記式(29)により示される双三次元補間(バイキュービック補間)を用いてもよい。
また、図6に示すブロックよりも大きいブロック内に補間面を設定してもよい。この場合、Lanczos関数のnを3として補間演算を行う。ここで、補間画素を含むブロック内に補間面が設定されている場合を、図17に示す。図17が図6と異なる点は、補間面が、ブロックが拡大した分だけ大きくなっている点である。したがって、ここでは詳細な説明は繰り返さない。ここで、図17(a),(e)で示されるブロック内に設定された補間面に補間演算を行う場合を例に説明する。なお、この補間面を第7の補間面という。
図18は、第7の補間面とともに補間演算に用いるパラメータを示す図である。ここでは、第7の補間面の横方向をX軸、縦方向をY軸とする座標系を設定している。ここでの座標系は、入力画素とその隣の入力画素との距離を基準とした座標系である。図18には、補間画素とその近傍左上画素との距離の水平方向成分および垂直方向成分がそれぞれdistX,distYとして示されている。補間演算は、図18に示されるdistX,distYとを用いて、式(30)により水平方向に実行される。
V(i)=w(−2−distX)×P(0,i)
+w(−1−distX)×P(1,i)
+w(−distX)×P(2,i)
+w(1−distX)×P(3,i)
+w(2−distX)×P(4,i)
+w(3−distX)×P(5,i)・・・・・式(30)
ただし、0≦i≦6であり、P(X,Y)は入力画素を示す。
次に、式(30)により算出されたV(i)を用いて、式(31)により補間演算が行なわれ、補間画素値OUTが算出される。
OUT=w(−2−distY)×V(0)
+w(−1−distY)×V(1)
+w(−distY)×V(2)
+w(1−distY)×V(3)
+w(2−distY)×V(4)
+w(3−distY)×V(5)・・・・・式(31)
なお、図6(a)〜(h)に示すエッジ勾配の方向それぞれに対応して補間面を設定する代わりに、設定する補間面のパターンを少なくしてもよい。例えば、図19に示すブロック内に、エッジ勾配の方向に応じて、4通りの補間面のうちいずれかを設定すればよい。また、仮画素を算出する際に参照する周辺画素を図8記載のように変更することで、計算量を減らしながら各画素におけるエッジ勾配の方向を考慮して補間演算を行うことができる。
図20は、映像信号処理回路により実行される処理の流れを示すフローチャートである。図20に示されるように、補間面設定部73は、補間画素のエッジ方向を推定する(ステップS31)。エッジ勾配の方向は、エッジ方向に垂直な方向であり、補間面設定部73は、具体的には補間画素のエッジ勾配の方向を推定する。エッジ勾配の方向は、補間画素に最も近い入力画素に対して算出されたエッジ勾配の方向を用いてもよいし、補間画素の近傍に位置する入力画素に対して算出されたエッジ勾配の方向の代表値を用いてもよい。
次のステップS32においては、補間面設定部73は、ステップS31において推定されたエッジ勾配の方向が所定の角度範囲内にあるか否かを判断する。エッジ勾配の方向が所定の範囲内にあるならば処理をステップS33に進めるが、そうでなければ処理をステップS36に進める。なお、所定の角度範囲は、π/16<θ≦7π/16、9π/16≦θ<15π/16の角度範囲である。尚、エッジが存在せずエッジ方向が不定の場合はエッジ勾配の方向が所定の範囲内と判定する。
ステップS33においては、表示部13の画素数に応じた映像データの拡大縮小率により補間の対象となる補間画素の近傍に位置する4×4入力画素で形成される四角形のブロック内を対象に、ステップS31において算出されたエッジ勾配の方向に沿って補間面を設定する。補間面は、ブロックのサイズとエッジ方向と補間面が設定される領域内の画素数とに基づいて定まる領域であり、具体的には、補間面は、その大きさがブロック内に収まる最大の大きさであり、かつ、補間画素エッジ方向に沿った第1軸に平行な2辺と第1軸とは異なる方向の第2軸に平行な2辺とを有する平行四辺形である。また、平行四辺形の補間面には、第1軸および第2軸に沿って配列された格子点である、ブロック内の画素と同じ画素数の4×4画素が含まれる。補間面に含まれる複数の画素には、入力画素の他に、画素値が存在しない仮画素が含まれる場合がある。仮画素については後述する。なお、補間面は、第1軸および第2軸に沿って配列された4×4画素の中心の2×2画素で囲まれる領域に補間画素が含まれるように設定される。
なお、補間画素の近傍に位置する画素は、4×4画素であってもよいし、6×6画素であってもよい。補間画素の近傍に位置する画素が4×4画素である場合、補間面は、図6(a)〜(h)で示される補間面のうちエッジ勾配の方向に対応するものを設定する。なお、エッジ勾配の方向が不定である場合、一意に図6(a)または図6(c)に対応する補間面を設定するようにしてもよいし、近傍画素におけるエッジ勾配の方向を参照して、図6(a)〜(d)で示される補間面のうち参照されたエッジ勾配の方向に対応するものを設定するようにしてもよい。
補間画素の近傍に位置する画素が6×6画素の場合、図17(a)〜(h)で示される補間面のうちエッジ勾配の方向に対応するものを設定する。なお、エッジ勾配の方向が不定である場合、一意に図17(a)または図17(c)に対応する補間面を設定するようにしてもよいし、近傍画素におけるエッジ勾配の方向を参照して、図17(a)〜(d)で示される補間面のうち参照されたエッジ勾配の方向に対応するものを設定するようにしてもよい。
次のステップS34においては、仮画素算出部75は、ステップS33において設定された補間面内において特定される仮画素の画素値を、その近傍に位置する画素に基づいて算出する仮画素算出処理を実行する。仮画素算出処理は、仮画素の近傍に位置する画素に対して推定されたエッジ勾配の方向それぞれに定められた算出方法に従って仮画素の画素値を算出する処理である。仮画素の近傍に位置する画素は、例えば、補間画素の近傍に位置する入力画素であってもよいし、仮画素の近傍に位置する2つの入力画素であってもよいし、仮画素の近傍に位置する4つの入力画素であってもよい。
次のステップS35においては、補間処理部77は、第1補間処理を実行することにより補間画素値を算出し、処理を終了する。第1補間処理は、ステップS34において仮画素が算出された後の補間面に対して、ステップS31において算出されたエッジ勾配の方向に対応する補間演算を実行する処理である。
ステップS36は、ステップS31において算出された補間画素のエッジ勾配の方向が所定の角度範囲に含まれない場合である。ステップS36においては、補間処理部77は、第2補間処理を実行することにより補間画素の画素値を算出し、処理を終了する。第2補間処理は、ステップS34において仮画素が算出された後の補間面に対して、従来周知の補間演算を実行する処理である。具体的には、図10に示す方法により補間画素の画素値を算出する。
<変形例>
変形例におけるスケーラー処理部は、本実施の形態におけるスケーラー処理部が実行する処理に加えて、補正処理を実行するものである。
図21は、変形例におけるスケーラー処理部の構成を示すブロック図である。図21に示すスケーラー処理部61Aが図3に示すスケーラー処理部61と異なる点は、補正処理部79が追加された点である。その他の構成および機能は、スケーラー処理部61と同じであるので、ここでは説明は繰り返さない。
図21に示されるように、補正処理部79は、補間処理部77により補間演算された後の画像データに補正処理を実行する。補正処理は、補間演算により発生したボヤケを補正してエッジを鮮明にする処理である。
図22は、補正処理部の構成を示す図である。図22に示されるように、補正処理部79は、最大値・最小値算出処理部81と、フィルタ処理部83と、飽和処理部85とを含む。
最大値・最小値算出処理部81は、補間処理部77による補間演算後の画像データから最大画素値maxValおよび最小画素値minValを算出する。最大画素値maxValおよび最小画素値minValの算出は、画像データから処理対象となる画素を設定し、設定された画素とその近傍に位置する画素を含むM×N画素を対象とする。
フィルタ処理部83は、エッジを鮮鋭化する処理としてのフィルタ処理を、最大値・最小値算出処理部81の処理対象となる所定の範囲の画素に対して実行し、フィルタ処理後の画素値をフィルタ処理結果filValとして算出する。フィルタ処理結果filValは、例えば、補間処理部77により補間演算された後の画像データの画素をpixValとすると、式(32)に従って算出する。なお、所定の範囲の画素は、最大値・最小値算出処理部81の処理対象となるM×N画素であってもよいし、それより範囲の小さいm×n画素であってもよい。例えば、M×N画素は7×7画素であり、m×n画素は5×5画素である。
ただし、coef(i,j)はフィルタ係数を示す。
飽和処理部85は、最大値・最小値算出処理部81により算出された最大画素値maxValおよび最小画素値minVal、フィルタ処理部83により算出されたフィルタ処理結果filValおよび補間処理部77により補間演算された後の画像データの画素pixValに基づいて、エッジの鮮鋭化の度合いを制御する飽和処理を実行する。飽和処理は、フィルタ処理結果filValと画素pixValとを比較した比較結果に応じて、フィルタ処理結果filValと最大画素値maxValとに基づく比較結果またはフィルタ処理結果filValと最小画素値minValとに基づく比較結果を判定することにより、オーバーシュートまたはアンダーシュートの発生を制御する処理である。
より具体的には、フィルタ処理結果filValと画素pixValとを比較した第1の比較結果に加えて、フィルタ処理結果filValと最小画素値minValに所定の係数αを減算した値とを比較した第2の比較結果またはフィルタ処理結果filValと最大画素値maxValに所定の係数βを加算した値とを比較した第3の比較結果に基づいて、補正処理結果を決定する。
第1の比較結果がフィルタ処理結果filValが画素pixValより小さいことを示す場合、第2の比較結果を判定し、そうでない場合、第3の比較結果を判定する。第2の比較結果の判定において、フィルタ処理結果filValが最小画素値minValに所定の係数αを減算した値以上であることを示す場合、フィルタ処理結果filValを補正処理結果として決定するが、そうでない場合、最小画素値minValを補正処理結果として決定する。第3の比較結果の判定において、フィルタ処理結果filValが最大画素値maxValに所定の係数βを加算した値以下であることを示す場合、フィルタ処理結果filValを補正処理結果として決定するが、そうでない場合、最大画素値maxValを補正処理結果として決定する。
なお、係数αおよびβは、エッジを強調する度合いによって変化させることが可能である。具体的には、係数αを変化させればアンダーシュートの発生および抑制を制御することが可能であり、係数βを変化させればオーバーシュートの発生および抑制を制御することが可能である。例えば、係数αを0に設定する場合、アンダーシュートの発生を抑制することができ、係数αを8に設定する場合、人間の目にとって目障りでないレベルのアンダーシュートを発生させることができる。また、係数βを0に設定する場合、オーバーシュートの発生を抑制することができ、係数βを8に設定する場合、人間の目にとって目障りでないレベルのオーバーシュートを発生させることができる。
また、飽和処理は、文字等の輪郭を補正するのに非常に有効である反面、画像のディテイル部の階調再現を損なわせる可能性がある。そのため、エッジ強度の強い輪郭とディテイル部を識別するために、最大画素値maxValと最小画素値minValとの差分により算出されるダイナミックレンジがある程度大きい値(例えば64)を有するとき、輪郭が存在すると判定し補正処理を行い、それ以外の場合は補正処理を行わないようにしても良い。
図23は、オーバーシュートおよびアンダーシュートの抑制効果の一例を示す図である。図23(a)は、映像データに含まれる複数フレームのうち1フレームの画像データの一例を示す図である。図23(b)は、補正処理を行わずにフィルタ処理(強調処理)を行った画像データの一例を示す第1の図である。図23(c)は、補正処理後の画像データの一例を示す第2の図である。図23(a)に示す画像データに対してフィルタ処理が実行されると、図23(b)に示すように、オーバーシュートおよびアンダーシュートが発生することを確認できた。一方、図23(a)に示す画像データに対して補正処理が実行されると、図23(c)に示すように、オーバーシュートおよびアンダーシュートが発生しないことが確認できた。
図24は、変形例における映像信号処理回路により実行される処理の流れを示すフローチャートである。図24に示す処理が、図20に示す処理と異なる点は、ステップS41〜ステップS44が追加された点である。その他の処理は、図20に示す処理と同じであるので、ここでは説明を繰り返さない。
図24に示されるように、ステップS41においては、補正処理部79は、補正処理を実行するか否かを判断する。具体的には、最大画素値maxValと最小画素値minValとの差分により算出されるダイナミックレンジがある程度大きい値(例えば64)であるか否かを判断する。ダイナミックレンジがある程度大きい値(例えば64)であるならば処理をステップS42に進めるが、そうでなければ処理を終了する。
ステップS42においては、最大値・最小値算出処理部81は、ステップ35またはステップS36における補間演算後の画像データから最大画素値maxValおよび最小画素値minValを算出する。最大画素値maxValおよび最小画素値minValの算出は、画像データから処理対象となる画素を設定し、設定された画素とその近傍に位置する画素を含むM×N画素を対象とする。
ステップS43においては、フィルタ処理部83は、エッジを鮮鋭化する処理としてのフィルタ処理を、画像データのうちステップS42において処理対象となった画素を含む所定の範囲の画素に対して実行し、フィルタ処理後の画素値をフィルタ処理結果filValとして算出する。フィルタ処理結果filValは、例えば、ステップS35またはステップS36において補間演算された後の画像データの画素pixValを用いて、式(32)に従って算出する。
ステップS44においては、飽和処理部85は、飽和処理を実行し、処理を終了する。
図25は、飽和処理の流れを示すフローチャートである。飽和処理は、図24に示す処理のステップS54において、飽和処理部85により実行される処理である。図25に示されるように、フィルタ処理結果filValが画素pixValより小さいか否かを判断する(ステップS51)。フィルタ処理結果filValが画素pixValより小さいならば処理をステップS55に進めるが、そうでなければ処理をステップS52に進める。
ステップS52においては、フィルタ処理結果filValが最大画素値maxValに係数βを加えた値以下であるか否かを判断する。フィルタ処理結果filValが最大画素値maxValに係数βを加算した値以下であるならば処理をステップS53に進めるが、そうでなければ処理をステップS54に進める。
なお、係数βは、固定値であってもよい。この場合、固定値は、例えば16である。また、ダイナミックレンジに所定の係数を乗算した値であってもよい。具体的には、最大画素値maxValと最小画素値minValとの差分に、所定の係数(例えば0.1)を乗算した値である。
ステップS53においては、フィルタ処理結果filValを補正処理結果として決定し、ステップS54においては、最大画素値maxValを補正処理結果として決定し、飽和処理を終了する。
ステップS55は、ステップS51において、フィルタ処理結果filValが画素pixVal以上であると判断された場合である。ステップS55においては、フィルタ処理結果filValが最小画素値minValに係数αを減算した値以上であるか否かを判断する。フィルタ処理結果filValが最小画素値minValに係数αを減算した値以上ならば処理をステップS56に進めるが、そうでなければ処理をステップS57に進める。
なお、係数αは、固定値であってもよい。この場合、固定値は、例えば16である。また、ダイナミックレンジに所定の係数を乗算した値であってもよい。具体的には、最大画素値maxValと最小画素値minValとの差分に、所定の係数(例えば0.1)を乗算した値である。
ステップS56においては、最小画素値minValを補正処理結果として決定し、ステップS57においては、フィルタ処理結果filValを補正処理結果として決定し、飽和処理を終了する。
したがって、上述した補正処理により、映像データを鮮鋭化し、オーバーシュートおよびアンダーシュート(過強調)の発生を抑制することができるので、補間演算により発生した映像のボヤケを抑制することができる。
なお、本実施の形態においてはテレビジョン受像機1の場合を例に説明したが、図26に示すようにテレビジョン受像機1が垂直方向および水平方向に複数台配置されたマルチディスプレイであってもよい。
また、本実施の形態においては、エッジ勾配の方向をSobelフィルタを用いたキャニー法によりエッジ勾配の方向を算出しているが、エッジ勾配の方向の算出方法はこれに限定するものではない。Prewittフィルタを用いるようにしてもよいし、Scharrフィルタを用いるようにしてもよい。
図27は、Prewittフィルタを示す図である。図27(a)は、水平方向に対応するPrewittフィルタを示す図である。図27(b)は、垂直方向に対応するPrewittフィルタを示す図である。図28は、Scharrフィルタを示す図である。図28(a)は、水平方向に対応するScharrフィルタを示す図である。図28(b)は、垂直方向に対応するScharrフィルタを示す図である。エッジ方向推定処理部71は、図4(a),(b)に示すSobelフィルタと同様に、図27(a),(b)に示すPrewittフィルタまたは図28(a),(b)に示すScharrフィルタを用いて、数7で示される式に従ってエッジ勾配の方向を算出してもよい。
このとき、エッジ方向φは、エッジ勾配の方向θに対して垂直になるため、数8で示される式に従って算出できる。
また、エッジ勾配の方向の算出方法は、テンプレートマッチングであってよい。この場合、テンプレートマッチングに用いるテンプレートは、エッジ勾配の方向を推定するために予め角度が定められている。ここで、テンプレートマッチングを用いたエッジ勾配の方向の算出方法を具体的に説明する。
図29は、テンプレートの一例を示す図である。ここでは、0,45,90,135,180(=0度),225(=45度),270(=90度),315度(=135度)それぞれに対応するテンプレートを示している。これら複数のテンプレートそれぞれを画像データにマッチングすることによりエッジ勾配の方向を推定する。具体的には、マッチングすることによりそれぞれ算出されたエッジ量に基づいて、複数のテンプレートのうち画像データに最も一致するテンプレートに対応する角度を特定するとともに、テンプレートごとのエッジ量の総和を算出する。そして、特定された角度と算出されたエッジ量の総和とに基づいて、エッジ勾配の方向を特定する。複数のテンプレートのうち画像データに最も一致するテンプレートは、複数のテンプレートのうちマッチングにより算出されたエッジ量が最大となるテンプレートである。ここで、エッジ方向の特定について具体的に説明する。
複数のテンプレートのうち0度に対応するテンプレートの一致度が最も大きく、かつ、0度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きいならば(例えば、エッジ量の総和の40%を超える)、エッジ勾配の方向が−π/16≦θ≦π/16、または、15π/16≦θ≦17π/16の範囲にあると判定する。
複数のテンプレートのうち45度に対応するテンプレートの一致度が最も大きく、かつ、45度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きいならば、エッジ勾配の方向が3π/16<θ≦5π/16、または、−13π/16<θ≦−11π/16の範囲にあると判定する。
複数のテンプレートのうち90度に対応するテンプレートの一致度が最も大きく、かつ、90度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きいならば、エッジ勾配の方向が7π/16<θ≦9π/16、または、−9π/16<θ≦−7π/16の範囲にあると判定する。
複数のテンプレートのうち135度に対応するテンプレートの一致度が最も大きく、かつ、135度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きいならば、エッジ勾配の方向が13π/16≦θ<15π/16、または、−3π/16≦θ<−π/16の範囲にあると判定する。
一方、複数のテンプレートのうち0度または45度に対応するテンプレートの一致度が最も大きいが、0度または45度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きくなければ(例えば、エッジ量の総和の30%程度)、エッジ勾配の方向が3π/16<θ≦5π/16、または、−13π/16<θ≦−11π/16の範囲にあると判定する。
複数のテンプレートのうち45度または90度に対応するテンプレートの一致度が最も大きいが、0度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きくなければ、エッジ勾配の方向が5π/16<θ≦7π/16、あるいは、−11π/16<θ≦−9π/16の範囲にあると判定する。
複数のテンプレートのうち90度または135度に対応するテンプレートの一致度が最も大きいが、90度または135度に対応するテンプレートに基づいて算出されたエッジ量が他のエッジ量と比べて十分に大きくなければ、エッジ勾配の方向が9π/16<θ≦11π/16、または、−7π/16<θ≦−5π/16の範囲にあると判定する。
複数のテンプレートのうち135度または0度に対応するテンプレートの一致度が最も大きいが、135度または0度に対応するテンプレートに基づいて算出されたエッジ量が他のテンプレートに基づいて算出されたエッジ量と比べて十分に大きくなければ、エッジ勾配の方向が13π/16≦θ<15π/16、または、−3π/16≦θ<−π/16の範囲にあると判定する。
なお、テンプレートマッチングを用いて、エッジ方向を推定するようにしてもよい。この場合、エッジ方向は、エッジ勾配の方向に垂直であるので、マッチングにより特定された角度に垂直な角度を含む角度範囲をエッジ方向として推定すればよい。例えば、複数のテンプレートのうち0度に対応するテンプレートが最も一致度が大きく、かつ、0度に対応するテンプレートに基づいて算出されたエッジ量が他のエッジ量と比べて十分に大きいならば(エッジ量の総和の40%を超える)、エッジ方向が7π/16<θ≦9π/16、または、−9π/16<θ≦−7π/16の範囲にあると判定する。
また、本実施の形態においては、Lanczos補間処理や、双三次補間(バイキュービック補間)を用いて補間する場合を例に説明したが、スプライン補間処理を用いた補間であってもよい。式(35)は3次のスプライン補間式であり、補間処理部77は、仮画素値算出処理部により算出された仮画素の値を用いて、係数ai、bi、ci、diを算出する。
Si(x)=ai×(x−xi)3+bi×(x−xi)2
+ci×(x−xi)+di・・・・・・・・・・(35)
補間処理部77は、下記条件に基づいて、6つの入力画素を用いて、式(35)に従って係数ai、bi、ci、diを算出する。
・全ての入力画素を通る。
・各々の区分補間式は、境界点の1次導関数は連続とする。
・各々の区分補間式は、境界点の2次導関数は連続とする。
補間処理部77は、算出された係数ai、bi、ci、diを用いて、3次のスプライン補間式に基づいて、補間画素を算出する。なお、図30の丸91に示す画素は、式(36)に従って算出する。ただし、distXは、補間画素の位置と基準となる入力画素の位置との距離を示す。
Si(x)=ai×distX3+bi×distX2
+ci×distX+di・・・・・・・・・・(36)
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
最後に、テレビジョン受像機1の各ブロック、特にスケーラー処理部61,61Aは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
上述した機能を実現するソフトウェアであるテレビジョン受像機1の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記テレビジョン受像機1に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、テレビジョン受像機1を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。