サンプリングレート変換装置、およびサンプリングレート変換方法
【課題】
小規模の信号処理によって、好適にサンプリングレート変換する。
【解決手段】
デジタル信号のデータを入力し、第1の対称軸を中心に係数値が対称形をなすタップ係数と前記入力データとの畳み込み演算結果を出力する第1の演算部(奇数タップ対称フィルタ)と、第2の対称軸を中心に係数値が対称形をなすタップ係数と前記入力データとの畳み込み演算結果を出力する第2の演算部(偶数タップ対称フィルタ)とを用い、出力データの画素位置と入力データの画素位置の関係から定められる混合比に応じて前記第1および第2の演算部の出力を混合することにより、サンプリングレートが変換された出力データを生成する。
小規模の信号処理によって、好適にサンプリングレート変換する。
【解決手段】
デジタル信号のデータを入力し、第1の対称軸を中心に係数値が対称形をなすタップ係数と前記入力データとの畳み込み演算結果を出力する第1の演算部(奇数タップ対称フィルタ)と、第2の対称軸を中心に係数値が対称形をなすタップ係数と前記入力データとの畳み込み演算結果を出力する第2の演算部(偶数タップ対称フィルタ)とを用い、出力データの画素位置と入力データの画素位置の関係から定められる混合比に応じて前記第1および第2の演算部の出力を混合することにより、サンプリングレートが変換された出力データを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル信号処理によってサンプリングレートを変換するための技術に関する。
【背景技術】
【0002】
放送や通信、蓄積など、情報メディアの多様化に伴い、デジタル信号処理によって画像のサイズを拡大、縮小したり、回転などの変形を行う技術のニーズが高まっている。
【0003】
そこで、特許文献1に記載されているように、ポリフェーズフィルタによってサンプリングレートを変換し、サンプル信号(以下、画素)を補間する技術(以下、従来技術)が提案されている。
【0004】
【特許文献1】特開2004-214827
【発明の開示】
【発明が解決しようとする課題】
【0005】
この従来技術では、入力画像の画素数をU倍(ただし、Uは正整数)に増加させるアップサンプラと、画素数を1/D(ただし、Dは正整数)に間引くダウンサンプラを組合せ、両者のトータルで画素数をU/D倍に変換することにより、もとの入力画像には存在しなかった位置の画素を生成して、拡大若しくは縮小した出力画像を得るものである。
【0006】
図2に、この従来技術の動作原理を示す。同図は、デジタル化(サンプリング)された画素(201-1)(201-2)(201-3)(201-4)から構成される(a)入力信号をもとに、一例として画素数を8/3倍に増加させて(d)出力信号を得る場合の処理内容を示している。ここで、画素(201-1)(201-2)(201-3)(201-4)は、実際に存在する画素という意味で、以下、実画素と呼ぶことにする。
【0007】
従来技術では、画素数を8/3倍に増加させる際に、まず同図(b)に示すように、後述するアップサンプラによって信号強度が0の画素(202)(以下、零点)を等間隔になるように挿入し、画素数を8倍に増加させる。続いて、同図(c)に示すように、後述する補間フィルタによって補間画素(203)を生成したのちに、後述するダウンサンプラによって画素を1/3に間引いて出力画素(204-1)(204-2)(204-3)…とし、(d)出力信号を得る。ここでさらに、出力画素(204-1)(204-2)(204-3)…の間隔が実画素(201-1)(201-2)(201-3)…の間隔と等しくなるように並べ変えれば、画像サイズが8/3倍に拡大されたことになる。
【0008】
上記では、U=8、D=3として8/3倍の拡大処理を行う場合を例に挙げて説明したが、縮小する場合も同様であり、例えばU=4、D=9とすれば、4/9倍の縮小処理を行うことができる。
【0009】
図3に、上述した従来技術の動作を実現するための構成を示す。同図(a)は、図2で説明した動作原理そのものの信号処理構成である。入力された実画素(201)に対して、アップサンプラ(301)によって零点(202)を等間隔に挿入して画素数をU倍に増加させ、補間フィルタ(302)によって補間画素(203)を生成し、ダウンサンプラ(303)によって画素を1/Dに間引いて出力画素(204)を得る。この構成では、(c)補間フィルタ後の信号において、処理途中の画素数が非常に多くなることと、信号強度が0の零点(202)に対する乗算が無駄であることから、同図(b)若しくは同図(c)の構成に等価的に置き換えて処理するのが一般的である。
【0010】
図3(b)は、上述した補間フィルタ(302)のタップ係数を部分フィルタ(304-1)(304-2)(304-3)…(304-U)に分解することによって、信号強度が0の零点(202)に対する乗算を行わないように構成したものである。これにより、切替器(305)によって各部分フィルタの出力の中から1つを選択するように制御部(306)で制御して、出力信号を得る。
【0011】
図3(c)は、部分フィルタ(307)を1つのみとし、タップ係数発生器(308-1)(308-2)(308-3)…(308-U)によって上記部分フィルタ(304-1)(304-2)(304-3)…(304-U)と同一のタップ係数を発生させる。次に、切替器(309)によって各タップ係数の中から1つを選択して部分フィルタ(307)に設定するように制御部(310)で制御し、同図(b)に示した構成と同一の出力信号を得る。なお、タップ係数発生器(308)は、タップ係数を格納するためのメモリによって構成することが一般的である。
【0012】
図4に、図3に示した補間フィルタ(302)、部分フィルタ((304-1)(304-2)(304-3)…(304-U)、およびタップ係数発生器(308-1)(308-2)(308-3)…(308-U)の各動作の一例を示す。同図(a)は、補間フィルタ(302)のタップ数=25とした場合のタップ係数の一例であり、8/3倍の拡大処理、すなわちU=8、D=3と想定した場合の一例である。なお、末尾の(*1/256)はすべてのタップ係数に1/256を乗じるという意味であり、補間フィルタ(302)のタップ係数は、左から、-1/256、-3/256、-6/256…となる。このタップ係数を、図2(b)アップサンプル後の信号に畳み込むことにより、図2(c)補間フィルタ後の信号が得られる。
【0013】
同図(b)は、同図(a)に示した補間フィルタ(302)のタップ係数を、部分フィルタ(304)(307)のタップ係数に変換したものである。すなわち、図2(d)に示した出力画素(204-1)(204-2)(204-3)…の画素位置に、図4(a)に示した補間フィルタ(302)の中央タップの位置を対応させたのちに、零点(202)に相当する位置のタップ係数を外したものを新しいタップ係数としたものであり、そのときの出力画素番号と入力画素番号の関係も併せて示している。図3(b)(c)に示した制御部(306)(310)は、図4(b)に示すタップ係数が設定された部分フィルタ(304)(308)の結果が出力されるように、切替器(305)(309)を制御する必要がある。
【0014】
図3および図4に示した従来技術により、サンプリングレートをU/D倍に変換する、すなわち、画素数をU/D倍に変換することが可能になるが、下記の課題がある。
【0015】
第1の課題は、Uの値が大きくなると、図3に示した部分フィルタ(304)若しくはタップ係数発生器(308)の個数が増加するため、ハードウェアの規模が大きくなることである。
【0016】
例えば画像を256/173倍に拡大する場合、U=256であるため、部分フィルタ(304)若しくはタップ係数発生器(308)も256個必要になる。また、部分フィルタ(304)1個あたりの平均タップ数を3とした場合、その元になる補間フィルタ(302)のタップ数は約750タップ(=3*256)となる。
【0017】
例えば、1つのタップ係数を格納するために1バイト(=8ビット)のメモリが必要だと仮定すると、上記全タップ係数を格納するためのメモリ量は約750バイトになる。高画質を得るために補間フィルタの遮断特性を急峻にする場合は、各部分フィルタ(304)のタップ数を大幅に増やす必要がある。
【0018】
例えば、部分フィルタ(304)1個あたりの平均タップ数を10にすると、その元になる補間フィルタ(302)のタップ数は約2500タップ(=10*256)となるため、タップ係数を格納するためのメモリは約2500バイトになる。さらに、複数の倍率(U/D)に対応させるためには、各部分フィルタ(304)のタップ係数を複数組用意する必要がある。
【0019】
例えば、U=256に固定して、256/D倍のDを10通り用意することにより10通りの倍率に対応させる場合は、前述したタップ数のさらに10倍のタップ数(=約25000タップ)を格納するための大量のメモリ(=約25000バイト)が必要になる。
【0020】
第2の課題は、倍率(U/D)を連続的に変化させることが困難なことである。例えば、テレビ受像機では、図15に示すように、アスペクト比16:9の画像を(a)入力画像とし、その中央の12:9(=4:3)の部分だけを抜き出して水平方向に拡大し、16:9の(b)出力画像として表示するモードがある。この際に、画面の中央部はあまり拡大せず、画面の端に近づくにつれて大きく拡大するモードがよく用いられる。このとき、出力画素の水平位置に応じて、拡大率(U/D)を連続的に変化させる必要があるが、図3に示した従来技術の構成では、部分フィルタ(304)若しくはタップ係数発生器(308)の個数をUの値に応じて連続的に変化させる必要があり、実装が困難になる。なお、使用する拡大率(U/D)の候補を予め決定し、Uの最大値を事前に決定し、それに対応する部分フィルタ(304)若しくはタップ係数発生器(308)を用意すれば実装は可能できるが、この場合、任意の拡大率(U/D)に即座に対応することは困難である。
【0021】
第3の課題は、制御部(306)(310)の動作が複雑になり、この制御を実現するためのハードウェアやソフトウェアの処理量が大きくなることである。前述したテレビ受像機の例では、Uの値が出力画素の水平位置に応じて変化する。そのため、部分フィルタの個数が画素ごとに変化し、切替器(305)(309)を制御する制御部(306)(310)の制御方法を水平位置に応じて複雑に変化させる必要がある。また、HDTV(High Definition TV)のように、単位時間あたりの画素数が非常に多い画像信号を扱う場合には、前述した部分フィルタ(304)若しくはタップ係数発生器(308)の特性を短時間で変更する必要があり、実装が困難になる。例えば、1画面(フレーム)あたりの画素数が水平1920画素×垂直1080画素、フレームレートが60fps(frame per second)の場合、1画素あたりの処理時間は8ナノ秒(=1/(1920*1080*60)秒)であり、この間に部分フィルタ(304)若しくはタップ係数発生器(308)を切り替える必要があり、特にタップ数が多い場合には実装が困難になる。
【0022】
本発明は、上記従来技術の課題に鑑みて為されたものであって、その目的は、好適にサンプリングレートを変換するための技術を提供することにある。
【課題を解決するための手段】
【0023】
上記目的を達成するために、本発明の一実施の態様は、例えば、特許請求の範囲に記載されるように構成すればよい。
【発明の効果】
【0024】
本発明によれば、より好適にサンプリングレートを変換することが可能となる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施例を、図面を参照して説明する。
【0026】
また、各図面において、同一の符号が付されている構成要素は同一の機能を有すること
とする。
【0027】
また、本明細書の各記載及び各図面における「画素」という表現は、サンプル信号若しくはサンプル点という意味も含み、デジタル化された音声信号列や、センサ等から得られた連続するデータ列などの意味も含む。
【0028】
以下、本発明の実施例について、図面を参照しつつ説明する。
【実施例1】
【0029】
図1に、本発明の実施例1に係るサンプリングレート変換装置を示し、その特徴について述べる。本実施例に係るサンプリングレート変換装置は、例えばテレビジョン受像機等の画像表示装置に適用される。以下の本実施例の説明においては、サンプリングレート変換装置として画像表示装置を例にして説明する。
【0030】
図1において、本実施例に係るサンプリングレート変換装置は、例えばテレビジョン放送信号などの動画像のフレーム列が入力される入力部(1)と、この入力部(1)から入力されたフレームの画素数を1次元方向に変換するためのサンプリングレート変換部(2)と、更にこのサンプリングレート変換部(2)によって画素数が変換されたフレームに基づき画像を表示する表示部(3)とを備えている。この表示部(3)として、例えばプラズマディスプレイパネル、液晶表示パネル、もしくは電子/電界放出型ディスプレイパネルが用いられる。以下、サンプリングレート変換部(2)の詳細について説明する。
【0031】
図1において、入力部(1)から入力された信号は、フィルタA(101)とフィルタB(102)に入力される。ここで、フィルタA(101)は、タップ数が奇数であり、なおかつタップ係数が左右(若しくは上下)対称の1次元フィルタである。また、フィルタB(102)は、タップ数が偶数であり、なおかつタップ係数が左右(若しくは上下)対称の1次元フィルタである。ここで、フィルタA(101)、フィルタB(102)の出力は、それぞれ乗算器(105)(106)に入力される。
【0032】
一方、制御部(103)にて生成した補間すべき画素の位置を表す情報(補間位置情報(108))に基づいて、係数生成部(104)は、混合比である係数(1-k)および係数kを生成する。乗算器(105)(106)は、係数(1-k)および係数kのそれぞれをフィルタA(101)およびフィルタB(106)の出力と乗算する。最後に、加算器(107)は、乗算器(105)および乗算器(106)のそれぞれの出力を加算し、サンプリングレート変換部(2)の出力信号とする。すなわち、フィルタA(101)およびフィルタB(102)のタップ係数はそれぞれ固定とし、補間すべき画素の位置に応じて各フィルタの出力を加重加算(混合)する構成とする。これにより、任意のサンプリングレート変換を実現することができる。各部の詳細な動作については後述する。
【0033】
図5(a)(b)に、フィルタA(101)(奇数タップ対称フィルタ)、およびフィルタB(偶数タップ対称フィルタ)の一例をそれぞれ示す。各図において、横軸は画素位置を示し、縦軸は対応する位置の画素の値と畳み込み演算を行うタップ係数の値の大きさを示しており、各フィルタのインパルス応答を示している。同図(a)は、5タップのフィルタであり、対称の中心(502-a)を対称軸として、左右対称のタップ係数(501-a)からなるフィルタである。すなわち、インパルス応答が左右対称であり、その対称軸が(502-a)に位置するフィルタである。同図(b)は、4タップのフィルタであり、対称の中心(502-b)を対称軸として、左右対称のタップ係数(501-b)からなるフィルタである。すなわち、インパルス応答が左右対称であり、その対称軸が(501-b)に位置するフィルタである。なお、本発明に用いるフィルタは、同図に示すタップ数やタップ係数に限定されるものではない。
【0034】
図6に、係数生成部(104)の動作を示す。同図において、横軸は画素位置を示し、実画素(601-1)と実画素(601-2)の中間に位置する出力画素(602)を生成する場合の動作を示している。このとき、実画素(601-1)の位置(座標)をx1、実画素(601-1)の右に隣接する実画素(601-2)の位置を(x1+1)、出力画素(602)の位置をx2とし、x1≦x2<(x1+1)の関係を満たすものとする。
【0035】
ここで、図5(a)に示したように、フィルタA(101)の対称の中心は(502-a)若しくは(605)に位置し、実画素(601-1)若しくは実画素(601-2)の画素位置と一致する。また、フィルタB(102)の対称の中心は(502-b)に位置し、実画素(601-1)と実画素(601-2)のちょうど中央の画素位置になる。係数生成部(104)では、フィルタAの対称の中心位置とフィルタBの対称の中心位置の間隔を1.0(基準)とした場合の、出力画素(602)とフィルタAの対称の中心(502-a)の間隔を係数k(603)として、また出力画素(602)とフィルタBの対称の中心(502-b)の間隔を係数(1-k)(604)として出力する。このとき、x2-x1:(x1+1-x1)/2=k:1.0の関係になるため、k=2.0*(x2-x1)とすればよい。
【0036】
出力画素(602)の位置が、実画素(601-1)よりも実画素(601-2)に近い場合も同様に、出力画素(602)と近いほうのフィルタAの対称の中心(605)の間隔を係数kとして、また出力画素(602)とフィルタBの対称の中心(502-b)の間隔を係数(1-k)として出力する。このようにして生成した係数kおよび(1-k)を用いて、図1に示した乗算器(105)(106)の演算を行う。
【0037】
図17に、この係数生成方法のフローチャートの一例を示す。図17のフローチャートは、ステップ(1701)から開始し、ステップ(1702)にて出力画素(602)の位置x2と、実画素(601-1)と実画素(601-2)の中央の位置(x1+0.5)を比較する。ここで(x2≦x1+0.5)の場合、すなわち出力画素(602)の位置x2が実画素(601-1)と実画素(601-2)の中央の位置(x1+0.5)よりも左側の場合は、ステップ(1703)に進んでk=2.0*(x2-x1)を出力し、ステップ(1705)にて終了する。一方、(x2>x1+0.5)の場合、すなわち出力画素(602)の位置x2が実画素(601-1)と実画素(601-2)の中央の位置(x1+0.5)よりも右側の場合は、ステップ(1704)に進んでk=2.0*(x1+1-x2)を出力し、ステップ(1705)にて終了する。係数(1-k)は、前述の係数kの値を1から減じることによって求めればよい。なお、出力画素(602)の位置x2が実画素(601-1)と実画素(601-2)のちょうど中央の位置の場合(すなわち、x2=x1+0.5の場合)は、ステップ(1703)(1704)のどちらに進んでも、kは同一の値(1.0)になる。
【0038】
図7に、一例として、8/3倍のサンプリングレート変換に、図6および図17に示した係数生成方法を適用した場合の動作を示す。図7(a)は入力信号における実画素(201-1)(201-2)(201-3)(201-4)の各位置を示しており、同図(b)は出力信号における出力画素(204-4)(204-5)(204-6)(204-7)の各位置を示している。このとき、フィルタAの対称の中心は、実画素(201-2)(201-3)等の位置と一致するため、(702-a)(703-a)等の位置になる。一方、フィルタBの対称の中心は、実画素(201-2)(201-3)等のちょうど中央の位置になるため、(702-b)等の位置になる。従って、図6および図17に示した係数生成方法を適用すると、同図(b)に示すように、出力画素(204-4)を算出する際にはk=0.25(701-4)、出力画素(204-5)を算出する際にはk=1.0(701-5)、出力画素(204-6)を算出する際にはk=0.25(701-6)、出力画素(204-7)を算出する際にはk=0.5(701-7)となる。
【0039】
次に、図9(a)(b)に、本発明のサンプリングレート変換を拡大処理に適用する場合、すなわち、U/D倍においてU>Dの際のフィルタA(101)およびフィルタB(102)の各周波数特性の一例を示す。同図(a)(b)ともに、横軸は周波数を示し、縦軸は利得を示しており、直流(=周波数=0)からナイキスト周波数(901)(=サンプリング周波数の1/2)までの各フィルタの利得を示している。ここで、同図(a)におけるフィルタA(101)の周波数特性(902)と、同図(b)におけるフィルタB(102)の周波数特性(904)を略同一にすることによって、各フィルタの出力を係数kの値に応じて加重加算した結果の周波数特性は、係数kの値によらず周波数特性(902)および(904)と略同一になる。すなわち、出力画素の位置によらずに周波数特性が略同一に保ったまま、係数kの値によって出力画素の位置(位相)のみを変化させることができるようになる。
【0040】
なお、偶数タップ対称フィルタ(フィルタB)では、ナイキスト周波数(901)では必ず利得=0となるが、奇数タップ対称フィルタ(フィルタA)では、ナイキスト周波数(901)でも必ずしも利得=0とならず、自由度を持って設計できる。このとき、ナイキスト周波数(901)におけるフィルタAの利得を0に近い値とすれば、フィルタBの特性と略同一になり、前述した特許文献1に示されているようなチェス盤歪みの発生を防ぐことができる。一方、ナイキスト周波数(901)におけるフィルタAの利得を1に近い値とすれば、高周波数成分まで通過させることが可能になるため、サンプリングレート変換後の出力を高精細な画像にすることが可能になる。従って、両者はトレードオフの関係になるため、フィルタAおよびフィルタBの周波数特性は、出力画像の画質を確認しながら最適になるように設計するのが好ましい。
【0041】
図10(a)(b)に、本発明のサンプリングレート変換を縮小処理に適用する場合、すなわち、U/D倍においてU<Dの際のフィルタA(101)およびフィルタB(102)の各周波数特性の一例を示す。同図(a)(b)ともに、横軸は周波数を示し、縦軸は利得を示しており、直流(=周波数=0)からナイキスト周波数(1001)(=サンプリング周波数の1/2)までの各フィルタの利得を示している。ここで、同図(a)におけるフィルタA(101)の周波数特性(1002)と、同図(b)におけるフィルタB(102)の周波数特性(1004)を略同一にすることによって、各フィルタの出力を係数kの値によって加重加算した結果の周波数特性は、係数kの値によらず周波数特性(1002)および(1004)と略同一になる。すなわち、出力画素の位置によらずに周波数特性が略同一に保ったまま、係数kの値によって出力画素の位置(位相)のみを変化させることがでぎるようになる。縮小処理に用いる(a)フィルタAと(b)フィルタBが、上述の拡大処理の各フィルタと異なる点は、通過帯域の上限を示すカットオフ周波数(1003)(1005)をそれぞれナイキスト周波数のU/D倍の周波数の近傍に設定することである。
【0042】
ここで、カットオフ周波数(1003)(1005)をナイキスト周波数のU/D倍の周波数よりも低く(=0に近いほうに)設定すると、高周波成分が減衰して、サンプリングレート変換後の出力がぼやけた画像になる。一方、カットオフ周波数(1003)(1005)をナイキスト周波数のU/D倍の周波数よりも高く(=ナイキスト周波数に近いほうに)設定すると、ナイキスト周波数のU/D倍の周波数を越えた成分が折返し歪みとなって、モアレなどの原因になる。従って、両者はトレードオフの関係になるため、フィルタAおよびフィルタBの周波数特性は、出力画像の画質を確認しながら最適になるように設計するのが好ましい。
【0043】
図8に、一例として、サンプリングレートを8/3倍に拡大する場合、すなわちU=8、D=3の場合の出力画素番号、係数kの値、フィルタAとフィルタBの各タップ係数、および入力画素番号をまとめて示す。ここで、同図における出力画素番号は、図2における(d)出力画素(204-1)(204-2)(204-3)…の末尾の番号である。これらは、図8に示す整数nを0、1、2…とすることにより、U個(=8)の出力画素ごとに1周期が構成される。同図における係数kの値は、図6および図17に示した方法に基づいて、実画素と出力画素の位置関係から求めたものであり、図7に示した係数kの値を他の画素にまで拡張したものである。同図におけるフィルタAおよびフィルタBのタップ係数は、図9(a)(b)に示した周波数特性に近い特性を具体的に実現した一例である。同図における入力画素番号は、図2における(a)入力信号(201-1)(201-2)(201-3)…の末尾の番号である。これらは、図8に示す整数nを0、1、2…とすることにより、D個(=3)の実画素ごとに1周期が構成される。
【0044】
ここで、入力画素番号における「A」欄に示したカッコ{}内の5個の番号は、5タップからなるフィルタAの各タップ係数と畳み込み演算を行う画素の番号を示している。また、入力画素番号における「B」欄に示したカッコ{}内の4個の番号は、4タップからなるフィルタBの各タップ係数と畳み込み演算を行う画素の番号を示している。この入力画素番号は、サンプリングレートの拡大率(U/D)から定められる出力画素の位置に最も近い実画素の位置がフィルタAの対称の中心になり、かつ出力画素を挟むように位置する2つの実画素の中央がフィルタBの対称の中心になるようにして定めたものである。本発明は、同図に示したフィルタAおよびフィルタBのタップ数およびタップ係数に限定されるわけではない。例えばタップ数をさらに増やしてカットオフ特性を急峻にすれば、より高い周波数成分までフィルタを通過させることができ、高精細な出力画像が得られる。また、他の倍率、すなわち他のUおよびDの値の場合にも、上記と同様の方法で各値を定めればよい。
【0045】
図14および図20を用いて、図1に示したサンプリングレート変換装置と等価な処理を、ソフトウェアと協働する制御部により実現する画像信号処理方法について説明する。
【0046】
まず、図14を用いて、本実施例に係る画像信号処理方法を実現するためのサンプリングレート変換装置について説明する。図14に示すサンプリングレート変換装置は、例えばテレビジョン放送信号などの画像信号が入力される入力部(1)と、入力部(1)から入力された信号を処理するためのソフトウェアを記憶する記憶部(11)と、記憶部(11)に記憶されるソフトウェアとが協働して入力部(1)から入力された信号について画像信号処理を行う制御部(10)と、入力部(1)から入力されるデータを一時的に格納するためのバッファ#1(21)と、制御部(10)が当該サンプリングレート変換処理においてデータを一時的に格納するためのバッファ#2(22)、バッファ#3(23)と、制御部(10)から出力部(3)に出力されるサンプリングレート変換処理後の信号を一時的に格納するためのバッファ#4(24)とを備える。
【0047】
ここで、データを一時的に格納するバッファ#1(21)、バッファ#2(22)、バッファ#3(23)、バッファ#4(24)およびソフトウェアを記憶する記憶部(11)は、それぞれが個別のメモリチップを用いて構成してもよいし、1個若しくは複数個のメモリチップを用い、各データアドレスを分割して使用する構成にしてもよい。
【0048】
また、同図において、入力部(1)から入力される画像信号について、制御部(10)が記憶部(11)に記憶されるソフトウェアと協働してサンプリングレート変換処理を行い、表示部(3)に出力する。当該サンプリングレート変換処理の詳細は図20を用いて説明する。
【0049】
図20に、本実施例に係るサンプリングレート変換方法のフローチャートの一例を示す。図20のフローチャートは、ステップ(2001)から開始し、ステップ(2002)にて入力信号(画素)をバッファ#1(21)に書き込む。このとき、入力画像を構成するフレームごとに、入力信号(画素)をバッファに書き込んでもよく、入力画像を小領域に分割したブロックごとに入力信号(画素)をバッファに書き込んでもよい。続いて、ステップ(2003)にて、バッファ#1(21)の信号にフィルタA(101)を作用させ、その出力をバッファ#2(22)に書き込む。一方、ステップ(2004)にて、バッファ#1(21)の信号にフィルタB(102)を作用させ、その出力をバッファ#3(23)に書き込む。ここで、フィルタA(101)およびフィルタB(102)の特性は、図5、図8、図9、図10を用いて説明した各特性をそのまま用いることができるため、図示および説明は省略する。
【0050】
また、ステップ(2005)にて、出力信号(画素)と入力信号(画素)の位置関係をもとに、出力信号(画素)ごとに係数kを生成する。このときの係数生成方法は、図6、図17、図7に示した方法をそのまま用いることができるため、図示および説明は省略する。続くステップ(2006)では、上記のようにして求めた係数kの値に応じて、バッファ#2(22)とバッファ#3(23)の各信号を加重加算してバッファ#4(24)に出力し、ステップ(2007)にて終了する。このときの加重加算の方法は、図1に示したように、フィルタA(101)の出力(=バッファ#2(22))に係数(1-k)を乗算し、フィルタB(102)の出力(=バッファ#3(23))に係数kを乗算し、両者を加算して出力信号を生成する。
【0051】
なお、ステップ(2003)(2004)(2005)は互いに独立した処理のため、各ステップを順番に処理してもよいし、各ステップを同時に並行して処理してもよい。以上述べた処理ステップにより、本実施例に係るサンプリングレート変換方法を実施できる。
【0052】
図15に、本実施例に係るサンプリングレート変換装置若しくはサンプリングレート変換方法を用いて、倍率(U/D)を連続的に変化させながら、画像を水平方向に拡大する応用例を示す。同図は、アスペクト比16:9の画像を(a)入力画像とし、その中央の12:9(=4:3)の部分だけを抜き出して水平方向に拡大し、16:9の(b)出力画像として表示する動作を示している。同図は、特に、画面の中央部はあまり拡大せず、画面の端に近づくにつれて大きく拡大する動作を示している。このとき、出力画素の水平位置に応じて、拡大率(U/D)が連続的に変化することになる。
【0053】
ここで、入力画像と出力画像の画素位置の関係は、例えば同図(c)に示すような関係にあるとする。すなわち、一例として、拡大率を、画面の左端では1.7倍(U=17、D=10)、画面の中央では1.0倍(U=1、D=1)、画面の右端では1.7倍(U=17、D=10)になるように設定したとする。また、(b)出力画像の水平方向の画素数を例えば1920画素とすると、(b)出力画像のフレーム上の画素位置(画素番号)は、左端が1、中央が960、右端が1920となる。入力画像のもともとの水平方向の画素数も同様に1920画素とすると、画面中央の12:9(=4:3)の部分だけを抜き出すため、(b)出力画像の左端に対応する(a)入力画像の画素位置は241、(b)出力画像の中央に対応する(a)入力画像の画素位置は960、(b)出力画像の右端に対応する(a)入力画像の画素位置は1680となる。このとき、画面の左端では拡大率が1.7であるため、(b)出力画像のフレーム上の1画素の間隔は、(a)入力画像のフレーム上の1.7画素に対応する。従って、(b)出力画像の画素位置=2に対応する(a)入力画像の画素位置は242.7になる。同様に、(b)出力画像の画素位置に対応する(a)入力画像の画素位置をすべて求め、その結果をテーブルに予め格納しておく。
【0054】
図1に示すサンプリングレート変換装置(2)では、制御部(103)にて上記テーブルの内容に従って補間位置情報(108)を生成し、係数生成部(104)にて図17に示すフローチャートに基づいて係数kを生成し、乗算器(105)(106)および加算器(107)を用いてフィルタA(101)およびフィルタB(102)の出力を加重加算すれば、図15に示すような(a)入力画像から(b)出力画像を容易に得ることができる。
【0055】
以上述べたように、実施例1に係るサンプリングレート変換装置およびサンプリングレート変換方法は、固定の特性を持つ2つのフィルタの出力を加重加算するだけで任意のサンプリングレート変換を実現できるため、従来技術よりもハードウェア規模およびソフトウェア処理量が小さくなる効果がある。
【0056】
また、サンプリングレートの倍率(U/D)が変化しても、拡大の場合、すなわちU/D倍においてU>Dの場合には、フィルタA(101)とフィルタB(102)の各得性を固定したまま、制御部(103)と係数生成部(104)の動作を補間位置情報(108)に応じて変更するだけでサンプリングレート変換処理を実現することが可能になるため、従来技術よりも倍率(U/D)を連続的に変化させることが容易になる効果がある。
【0057】
また、出力画素ごとにフィルタA(101)とフィルタB(102)の各特性を変更する必要がないため、従来技術よりも制御部(103)(10)の動作を単純にできる効果がある。
【実施例2】
【0058】
次に、図12及び図11を用いて、本発明のサンプリングレート変換装置に係る実施例2の構成および動作について説明する。本実施例は、前述した1次元方向のサンプリングレート変換を、水平方向および垂直方向からなる2次元に拡張したサンプリングレート変換装置の構成例である。
【0059】
図12において、本実施例に係るサンプリングレート変換装置は、例えばテレビジョン放送信号などの動画像のフレーム列が入力される入力部(1)と、この入力部(1)から入力されたフレームの画素数を2次元方向に変換するためのサンプリングレート変換部(4)と、更にこのサンプリングレート変換部(4)によって画素数が変換されたフレームに基づき画像を表示する表示部(3)とを備えている。この表示部(3)として、例えばプラズマディスプレイパネル、液晶表示パネル、もしくは電子/電界放出型ディスプレイパネルが用いられる。以下、サンプリングレート変換部(4)の詳細について説明する。
【0060】
図12において、入力部(1)から入力された信号は、垂直処理部(1216)と水平処理部(1217)によって、2次元のサンプリングレート変換が行われる。
【0061】
まず垂直処理部(1216)にて、信号を垂直フィルタV-A(1201)と垂直フィルタV-B(1202)に入力する。ここで、垂直フィルタV-A(1201)は、タップ数が奇数であり、なおかつタップ係数が上下対称の1次元フィルタである。また、垂直フィルタV-B(1202)は、タップ数が偶数であり、なおかつタップ係数が上下対称の1次元フィルタである。ここで、垂直フィルタV-A(1201)、垂直フィルタV-B(1202)の出力は、それぞれ、乗算器(1205)(1206)に入力される。
【0062】
一方、制御部(1203)にて生成した補間すべき画素の垂直位置を表す情報(垂直補間位置情報(1208))に基づいて、係数生成部(1204)は、係数(1-kV)および係数kVを生成する。乗算器(1205)(1206)は、係数(1-kV)および係数kVのそれぞれを垂直フィルタV-A(1201)および垂直フィルタV-B(1206)の出力と乗算する。次に、加算器(1207)は、乗算器(1205)及び乗算器(1206)の出力を加算して、垂直処理部(1216)の出力信号とする。
【0063】
続いて、水平処理部(1217)にて、信号を水平フィルタH-A(1209)と水平フィルタH-B(1210)に入力する。ここで、水平フィルタH-A(1209)は、タップ数が奇数であり、なおかつタップ係数が左右対称の1次元フィルタである。また、水平フィルタH-B(1210)は、タップ数が偶数であり、なおかつタップ係数が左右対称の1次元フィルタである。ここで、水平フィルタH-A(1209)、水平フィルタH-B(1210)の出力は、それぞれ、乗算器(1212)(1213)に入力される。
【0064】
一方、制御部(1203)にて生成した補間すべき画素の水平位置を表す情報(水平補間位置情報(1215))に基づいて、係数生成部(1211)は、係数(1-kH)および係数kHを生成する。乗算器(1212)(1213)は、係数(1-kH)および係数kHのそれぞれを水平フィルタH-A(1209)および水平フィルタH-B(1210)の出力と乗算する。次に、加算器(1214)は、乗算器(1212)及び(1213)の出力を加算して水平処理部(1216)の出力信号とする。当該出力信号が、サンプリングレート変換部(4)の出力となる。
【0065】
すなわち、垂直フィルタV-A(1201)、垂直フィルタVB(1202)、水平フィルタH-A(1209)、及び水平フィルタH-B(1210)のタップ係数はそれぞれ固定とし、補間すべき画素の位置に応じて各フィルタの出力を加重加算する構成により、任意の2次元サンプリングレート変換を実現するものである。なお、垂直処理部(1216)と水平処理部(1217)の処理順序を逆にしても同様の結果を得ることができる。
【0066】
図11を用いて、実画素(1101-1)(1101-2)(1101-3)(1101-4)、出力画素(1102)、各フィルタの対称の中心の各位置、および前記加重加算の際の係数kH(1105)、係数kV(1106)の関係について説明する。まず、実画素(1101-1)の位置(x1,y1)を基準とし、その右に隣接する実画素(1101-2)の位置を(x1+1,y1)、実画素(1101-1)の下に隣接する実画素(1101-3)の位置を(x1,y1+1)、実画素(1101-1)の右下に隣接する実画素(1101-4)の位置を(x1+1,y1+1)とし、出力画素(1102)の位置を(x2,y2)とする。このとき、x1≦x2<(x1+1)、かつy1≦y2<(y1+1)の関係を満たすものとする。
【0067】
ここで、4個の1次元フィルタ、すなわち、水平方向の奇数タップ対称フィルタH-A、水平方向の偶数タップ対称フィルタH-B、垂直方向の奇数タップ対称フィルタV-A、垂直方向の偶数タップ対称フィルタV-Bを用意する。水平方向の奇数タップ対称フィルタH-Aの対称の中心は(1103-a)若しくは(1107)に位置し、実画素(1101-1)(1101-3)若しくは実画素(1101-2)(1101-4)の水平位置と一致する。また、水平方向の偶数タップ対称フィルタH-Bの対称の中心は(1103-b)に位置し、実画素(1101-1)と実画素(1101-2)、若しくは実画素(1101-3)と実画素(1101-4)のちょうど中央の水平位置になる。また、垂直方向の奇数タップ対称フィルタV-Aの対称の中心は(1104-a)若しくは(1108)に位置し、実画素(1101-1)(1101-2)若しくは実画素(1101-3)(1101-4)の水平位置と一致する。また、垂直方向の偶数タップ対称フィルタV-Bの対称の中心は(1104-b)に位置し、実画素(1101-1)と実画素(1101-3)、若しくは実画素(1101-2)と実画素(1101-4)のちょうど中央の垂直位置になる。
【0068】
ここで、係数生成部(1204)では、垂直フィルタV-A(1104-a)の対称の中心位置と垂直フィルタV-B(1104-b)の対称の中心位置の垂直間隔を1.0(基準)とした場合の、出力画素(1102)と垂直フィルタV-Aの対称の中心(1104-a)の間隔を係数kV(1106)として出力する。このとき、y2-y1:(y1+1-y1)/2=kV:1.0の関係より、kV=2.0*(y2-y1)とすればよい。出力画素(1102)の垂直位置が、実画素(1101-1)よりも実画素(1101-3)に近い場合も同様に、出力画素(1102)と近いほうの垂直フィルタV-Aの対称の中心(1101-3)の間隔を係数kVとして出力する。また、出力画素(1102)と垂直フィルタV-Bの対称の中心(502-b)の垂直間隔を係数(1-kV)として出力する。このようにして生成した係数kVおよび(1-kV)を用いて、図12に示した乗算器(1205)(1206)の演算を行う。
【0069】
同様に、係数生成部(1211)では、水平フィルタH-A(1103-a)の対称の中心位置と水平フィルタH-B(1103-b)の対称の中心位置の水平間隔を1.0(基準)とした場合の、出力画素(1102)と水平フィルタH-Aの対称の中心(1103-a)の間隔を係数kH(1105)として出力する。このとき、x2-x1:(x1+1-x1)/2=kH:1.0の関係より、kH=2.0*(x2-x1)とすればよい。出力画素(1102)の水平位置が、実画素(1101-1)よりも実画素(1101-2)に近い場合も同様に、出力画素(1102)と近いほうの水平フィルタH-Aの対称の中心(1101-2)の間隔を係数kHとして出力する。また、出力画素(1102)と水平フィルタH-Bの対称の中心(1103-b)の水平間隔を係数(1-kH)として出力する。このようにして生成した係数kHおよび(1-kH)を用いて、図12に示した乗算器(1212)(1213)の演算を行う。
【0070】
図18に、この係数生成方法のフローチャートの一例を示す。図18のフローチャートは、ステップ(1801)から開始し、ステップ(1802)にて出力画素(1102)の垂直位置y2と、実画素(1101-1)と実画素(1101-3)の中央の垂直位置(y1+0.5)を比較する。ここで、(y2≦y1+0.5)の場合、すなわち出力画素(1102)の垂直位置y2が実画素(1101-1)と実画素(1101-3)の中央の垂直位置(y1+0.5)よりも上側の場合は、ステップ(1803)に進んでkV=2.0*(y2-y1)を出力し、ステップ(1805)に進む。一方、(y2>y1+0.5)の場合、すなわち出力画素(1102)の垂直位置y2が実画素(1101-1)と実画素(1101-3)の中央の位置(y1+0.5)よりも下側の場合は、ステップ(1804)に進んでkV=2.0*(y1+1-y2)を出力し、ステップ(1805)に進む。
【0071】
続いて、ステップ(1805)にて出力画素(1102)の水平位置x2と、実画素(1101-1)と実画素(1101-2)の中央の水平位置(x1+0.5)を比較しする。ここで、(x2≦x1+0.5)の場合、すなわち出力画素(1102)の水平位置x2が実画素(1101-1)と実画素(1101-2)の中央の水平位置(x1+0.5)よりも左側の場合は、ステップ(1806)に進んでkH=2.0*(x2-x1)を出力し、ステップ(1808)にて終了する。一方、(x2>x1+0.5)の場合、すなわち出力画素(1102)の水平位置x2が実画素(1101-1)と実画素(1101-2)の中央の位置(x1+0.5)よりも右側の場合は、ステップ(1807)に進んでkH=2.0*(x1+1-x2)を出力し、ステップ(1808)にて終了する。
【0072】
なお、係数(1-kV)若しくは係数(1-kH)は、前述の係数kV、若しくは係数kHの値をそれぞれ1から減じることによって求めればよい。
【0073】
また、出力画素(1102)の垂直位置y2が実画素(1101-1)と実画素(1101-3)のちょうど中央の垂直位置の場合(すなわち、y2=y1+0.5の場合)は、ステップ(1803)(1804)のどちらに進んでも、kVは同一の値(1.0)になる。
【0074】
また、出力画素(1102)の水平位置x2が実画素(1101-1)と実画素(1101-2)のちょうど中央の水平位置の場合(すなわち、x2=x1+0.5の場合)は、ステップ(1806)(1807)のどちらに進んでも、kHは同一の値(1.0)になる。
【0075】
図12に示した垂直フィルタV-A(1201)および垂直フィルタV-B(1202)の周波数特性は、図9および図10を用いて説明したフィルタAおよびフィルタBの周波数特性を垂直周波数特性に読み替えるだけであるため、図示および説明は省略する。同様に、図12に示した水平フィルタH-A(1209)および水平フィルタH-B(1210)の周波数特性は、図9および図10を用いて説明したフィルタAおよびフィルタBの周波数特性を水平周波数特性に読み替えるだけであるため、図示および説明は省略する。
【0076】
また、2次元サンプリングレート変換における出力画素番号、係数kVおよび係数kH、各フィルタのタップ係数、入力画素番号の具体例については、図8を用いて説明した1次元サンプリングレート変換における各値の求め方を、水平方向および垂直方向のそれぞれに適用すればよいため、図示および説明は省略する。
【0077】
また、水平方向の倍率と垂直方向の倍率(すなわち、各方向のUとDの値)を独立して設定可能であることは明らかであり、図9および図10を用いて説明したように、各方向の倍率に応じて、それぞれ適したフィルタの周波数特性とすればよい。
【0078】
図19および図21を用いて、図12に示したサンプリングレート変換装置と等価な処理を、ソフトウェアと協働する制御部により実現する画像信号処理方法について説明する。
【0079】
まず、図19を用いて、本実施例に係る画像信号処理方法を実現するためのサンプリングレート変換装置について説明する。図19に示すサンプリングレート変換装置は、例えばテレビジョン放送信号などの画像信号が入力される入力部(1)と、入力部(1)から入力された信号を処理するためのソフトウェアを記憶する記憶部(11)と、記憶部(11)に記憶されるソフトウェアと協働して入力部(1)から入力された信号について画像信号処理を行う制御部(10)と、入力部(1)から入力されるデータを一時的に格納するためのバッファ#1(31)と、制御部(10)が当該サンプリングレート変換処理においてデータを一時的に格納するためのバッファ#2(32)、バッファ#3(33)、バッファ#4(34)、バッファ#5(35)、バッファ#6(36)と、制御部(10)から出力部(3)に出力されるサンプリングレート変換処理後の信号を一時的に格納するためのバッファ#7(37)とを備える。
【0080】
ここで、データを一時的に格納するバッファ#1(31)、バッファ#2(32)、バッファ#3(33)、バッファ#4(34) 、バッファ#5(35)、バッファ#6(36)、バッファ#7(37)およびソフトウェアを記憶する記憶部(11)は、それぞれが個別のメモリチップを用いて構成してもよいし、1個若しくは複数個のメモリチップを用い、各データアドレスを分割して使用する構成にしてもよい。
【0081】
同図において、入力部(1)から入力される画像信号について、制御部(10)が記憶部(11)に記憶されるソフトウェアと協働してサンプリングレート変換処理を行い、表示部(3)に出力する。当該サンプリングレート変換処理の詳細は図21を用いて説明する。
【0082】
図21に、本実施例に係るサンプリングレート変換方法のフローチャートの一例を示す。図21のフローチャートは、ステップ(2101)から開始し、ステップ(2102)にて入力信号(画素)をバッファ#1(31)に書き込む。このとき、入力画像を構成するフレームごとに、入力信号(画素)をバッファに書き込んでもよいし、入力画像を小領域に分割したブロックごとに入力信号(画素)をバッファに書き込んでもよい。
【0083】
続いて、ステップ(2103)にて、バッファ#1(31)の信号に垂直フィルタV-A(1201)を作用させ、その出力をバッファ#2(32)に書き込む。一方、ステップ(2104)にて、バッファ#1(31)の信号に垂直フィルタV-B(1202)を作用させ、その出力をバッファ#3(33)に書き込む。ここで、垂直フィルタV-A(1201)および垂直フィルタV-B(1202)の特性は、図5、図8、図9、図10を用いて説明した各特性を垂直方向の特性に読み替えることによってそのまま用いることができるため、図示および説明は省略する。また、ステップ(2105)にて、出力信号(画素)と入力信号(画素)の垂直位置関係をもとに、出力信号(画素)ごとに係数kVを生成する。このときの係数生成方法は、図11、図18に示した方法をそのまま用いることができるため、図示および説明は省略する。
【0084】
続くステップ(2106)では、上記のようにして求めた係数kVの値に応じて、バッファ#2(32)とバッファ#3(33)の各信号を加重加算してバッファ#4(34)に書き込む。このときの加重加算の方法は、図12に示したように、垂直フィルタV-A(1201)の出力(=バッファ#2(32))に係数(1-kV)を乗算し、垂直フィルタV-B(1202)の出力(=バッファ#3(33))に係数kを乗算し、両者を加算することによって、バッファ#4(34)に書き込む信号とする。
【0085】
続いて、ステップ(2107)にて、バッファ#4(34)の信号に水平フィルタH-A(1209)を作用させ、その出力をバッファ#5(35)に書き込む。一方、ステップ(2108)にて、バッファ#4(34)の信号に水平フィルタH-B(1210)を作用させ、その出力をバッファ#6(36)に書き込む。ここで、水平フィルタH-A(1209)および水平フィルタH-B(1210)の特性は、図5、図8、図9、図10を用いて説明した各特性を水平方向の特性に読み替えることによってそのまま用いることができるため、図示および説明は省略する。また、ステップ(2109)にて、出力信号(画素)と入力信号(画素)の水平位置関係をもとに、出力信号(画素)ごとに係数kHを生成する。このときの係数生成方法は、図11、図18に示した方法をそのまま用いることができるため、図示および説明は省略する。
【0086】
続くステップ(2110)では、上記のようにして求めた係数kHの値に応じて、バッファ#5(35)とバッファ#6(36)の各信号を加重加算してバッファ#7(37)に書き込み、ステップ(2111)にて終了する。
【0087】
このときの加重加算の方法は、図12に示したように、水平フィルタH-A(1209)の出力(=バッファ#5(35))に係数(1-kH)を乗算し、水平フィルタH-B(1210)の出力(=バッファ#6(36))に係数kHを乗算し、両者を加算する。当該加重加算により得られた信号を出力信号とする。
【0088】
なお、ステップ(2103)(2104)(2105)、およびはステップ(2107)(2108)(2109)は、それぞれ互いに独立した処理のため、各ステップを順番に処理してもよいし、各ステップを同時に並行して処理してもよい。また、垂直方向の処理を行うステップ(2103)(2104)(2105)(2106)と、水平方向の処理を行うステップ(2107)(2108)(2109)(2110)の処理の順番を入れ替えても同様の結果を得ることができる。以上述べた処理ステップにより、本実施例に係るサンプリングレート変換方法を実施できる。
【0089】
以上述べたように、実施例2に係るサンプリングレート変換装置およびサンプリングレート変換方法は、固定の特性を持つ垂直フィルタと水平フィルタを用いて、それぞれの出力を加重加算するだけで2次元の任意のサンプリングレート変換を実現できるため、従来技術よりもハードウェア規模およびソフトウェア処理量が小さくなる効果がある。
【0090】
また、サンプリングレートの倍率(U/D)が変化しても、拡大の場合、すなわちU/D倍においてU>Dの場合には、フィルタV-A(1201)、フィルタV-B(1202)、フィルタH-A(1209)、フィルタH-B(1210)の各特性を固定したまま、制御部(1203)と係数生成部(1204)(1211)の動作を補間位置情報(1208)(1215)に応じて変更するだけで2次元のサンプリングレート変換処理を実現することが可能になるため、従来技術よりも倍率(U/D)を連続的に変化させることが容易になる効果がある。
【0091】
また、出力画素ごとにフィルタV-A(1201)、フィルタV-B(1202)、フィルタH-A(1209)、フィルタH-B(1210)の各特性を変更する必要がないため、従来技術よりも制御部(1203)(10)の動作を単純にできる効果がある。
【実施例3】
【0092】
次に、図13を用いて、本発明のサンプリングレート変換装置に係る実施例3の構成および動作について説明する。本実施例は、図12を用いて説明した2次元のサンプリングレート変換の構成を変形し、例えば画像の回転のような複雑な変形にも対応できるようにしたサンプリングレート変換装置の構成例である。
【0093】
図13において、本実施例に係るサンプリングレート変換装置は、例えばテレビジョン放送信号などの動画像のフレーム列が入力される入力部(1)と、この入力部(1)から入力されたフレームの画素数を2次元方向に変換するためのサンプリングレート変換部(7)と、更にこのサンプリングレート変換部(7)によって画素数が変換されたフレームに基づき画像を表示する表示部(3)とを備えている。この表示部(3)として、例えばプラズマディスプレイパネル、液晶表示パネル、もしくは電子/電界放出型ディスプレイパネルが用いられる。以下、サンプリングレート変換部(7)の詳細について説明する。
【0094】
図13において、入力部(1)から入力した信号を、垂直フィルタV-A(1301-a)と垂直フィルタV-B(1301-b)に入力する。ここで、垂直フィルタV-A(1301-a)は、タップ数が奇数であり、なおかつタップ係数が上下対称の1次元フィルタである。また、垂直フィルタV-B(1301-b)は、タップ数が偶数であり、なおかつタップ係数が上下対称の1次元フィルタである。続いて、垂直フィルタV-A(1301-a)の出力信号を、水平フィルタH-A(1302-a)と水平フィルタH-B(1302-b)に入力する。ここで、水平フィルタH-A(1302-a)は、タップ数が奇数であり、なおかつタップ係数が左右対称の1次元フィルタである。また、水平フィルタH-B(1302-b)は、タップ数が偶数であり、なおかつタップ係数が左右対称の1次元フィルタである。
【0095】
水平フィルタH-A(1302-a)と水平フィルタH-B(1302-b)の各出力は、それぞれバッファ(1313)(1314)を介して、乗算器(1303)(1304)に入力される。ここで、制御部(1309)にて生成した補間すべき画素の水平位置および垂直位置を表す情報(補間位置情報(1310))に基づき、係数生成部(1311)は、係数k1および係数k2を生成する。乗算器(1303)(1304)は、係数k1および係数k2のそれぞれをバッファ(1313)(1314)の出力と乗算し、加算器(1308)に入力する。
【0096】
一方、垂直フィルタV-B(1301-b)の出力信号は、水平フィルタH-A(1305-a)と水平フィルタH-B(1305-b)に入力される。ここで、水平フィルタH-A(1305-a)は、タップ数が奇数であり、なおかつタップ係数が左右対称の1次元フィルタであり、水平フィルタH-A(1302-a)と同一の特性にすればよい。また、水平フィルタH-B(1305-b)は、タップ数が偶数であり、なおかつタップ係数が左右対称の1次元フィルタであり、水平フィルタH-B(1302-b)と同一の特性とする。
【0097】
水平フィルタH-A(1305-a)と水平フィルタH-B(1305-b)の各出力は、それぞれバッファ(1315)(1316)を介して、乗算器(1306)(1307)に入力される。ここで、制御部(1309)にて生成した補間すべき画素の水平位置および垂直位置を表す情報(補間位置情報(1310))に基づき、係数生成部(1311) は、係数k3および係数k4を生成する。乗算器(1306)(1307)は、係数k3および係数k4のそれぞれをバッファ(1315)(1316)の出力と乗算し、加算器(1308)に入力する。
【0098】
次に、加算器(1308)では、前記4つの入力信号を加算してサンプリングレート変換装置(7)の出力とする。なお、前記垂直フィルタV-A(1301-a)と水平フィルタH-A(1302-a)、垂直フィルタV-A(1301-a)と水平フィルタH-B(1302-b)、垂直フィルタV-B(1301-b)と水平フィルタH-B(1305-a)、垂直フィルタV-B(1301-b)と水平フィルタH-B(1305-b)のそれぞれを予め畳み込み演算することにより、それぞれ1個の2次元フィルタとしてもよい。この場合の各2次元フィルタのタップ係数およびインパルス応答は、それぞれもとの1次元フィルタのタップ係数およびインパルス応答を畳み込んだ結果と等しい。
【0099】
ここで、係数k1、係数k2、係数k3、係数k4を、係数生成手順(1312)に示すように、k1=(1-kV)*(1-kH)、k2=(1-kV)*kH、k3=kV*(1-kH)、k4=kV*kHとおくことにより、図12に示したサンプリングレート変換装置と等価な動作を実現できる。さらに、バッファ(1313)(1314)(1315)(1316)および係数k1、係数k2、係数k3、係数k4を用いることにより、補間すべき画素の水平位置および垂直位置が画素ごとに複雑に変換するような変形、例えば回転などに対応できるようになる。
【0100】
ここで、図13に示したバッファ(1313)(1314)(1315)(1316)をフレーム単位のバッファとし、データを読み出す前に、同一アドレスに別のデータを書き込まないように制御できるように構成する。すなわち、バッファ(1313)(1314)(1315)(1316)へのデータ書込みの動作と、バッファ(1313)(1314)(1315)(1316)からのデータ読み出しの動作を、フレーム単位で独立して実行できるように構成する。例えば、2つの同等なフレームバッファを用意しておき、これらを適宜切り替えてデータ読み出しとデータ書込みの2つの処理を並行化する一般的なダブルバッファ構成を用いれば、上記制御を実現できる。
【0101】
図16は、前述した図13のサンプリングレート変換装置を用いて、(a)入力画像を回転させて(b)出力画像を得る応用例の動作を示したものである。同図において、(a)入力画像のフレーム上の画素位置(座標)を(x1,x2)とし、(b)出力画像のフレーム上の画素位置(座標)を(x2,y2)とし、その2つの画素位置が互いに対応しているものとする。同図(a)(b)のように、画素位置(x0,y0)を回転中心とし、回転角θの回転を行う場合には、入力画像の画素位置(x1,y1)と出力画像の画素位置(x2,y2)の間に同図(c)に示す関係式が成り立つ。この関係式を変形すると、同図(d)のようになる。
【0102】
ここで、(b)出力画像のフレーム上の画素位置(x2,y2)を、例えば左上から右下に向かってラスタ順にスキャンすると、同図(d)の関係式より、(a)入力画像のフレーム上の対応する画素位置(x1,y1)が得られることになる。このとき、図11に示した出力画素(1102)の画素位置(x2,y2)を図16(d)の関係式によって得られた画素位置(x1,y1)と読みかえることにより、図18に示したフローチャートを用いて、図16における(b)出力画像のフレーム上の画素位置(x2,y2)に対応した係数kVおよび係数kHを求めることができる。
【0103】
このようにして求められた係数kVおよび係数kHから、図13に示した係数生成手順(1312)に従って、係数k1=(1-kV)*(1-kH)、係数k2=(1-kV)*kH、係数k3=kV*(1-kH)、係数k4=kV*kHを求め、乗算器(1303)(1304)(1306)(1307)と加算器(1308)を用いて各バッファ(1313)(1314)(1315)(1316)の出力を加重加算することにより、図16における(a)入力画像を回転させて(b)出力画像を容易に得ることができる。
【0104】
なお、この回転によって、画像が拡大若しくは縮小されるわけではないが、もともとの実画素が存在しない位置の出力画素を生成するような画像の変形に、上記と同様のサンプリングレート変換を適用することができる。
【0105】
なお、図13に示したバッファ(1313)(1314)(1315)(1316)は、前述したようなフレーム単位のバッファに限定されるわけではなく、例えば1フレームを小領域に分割したブロック単位でデータを格納できるように構成してもよい。
【0106】
図22および図23を用いて、図13に示したサンプリングレート変換装置と等価な処理を、ソフトウェアと協働する制御部により実現する画像信号処理方法について説明する。
【0107】
まず、図22を用いて、本実施例に係る画像信号処理方法を実現するためのサンプリングレート変換装置について説明する。図22に示すサンプリングレート変換装置は、例えばテレビジョン放送信号などの画像信号が入力される入力部(1)と、入力部(1)から入力された信号を処理するためのソフトウェアを記憶する記憶部(11)と、記憶部(11)に記憶されるソフトウェアと協働して入力部(1)から入力された信号について画像信号処理を行う制御部(10)と、入力部(1)から入力されるデータを一時的に格納するためのバッファ#1(41)と、制御部(10)が当該サンプリングレート変換処理においてデータを一時的に格納するためのバッファ#2(42)、バッファ#3(43)、バッファ#4(44)、バッファ#5(45)と、制御部(10)から出力部(3)に出力されるサンプリングレート変換処理後の信号を一時的に格納するためのバッファ#6(46)とを備える。ここで、データを一時的に格納するバッファ#1(41)、バッファ#2(42)、バッファ#3(43)、バッファ#4(44) 、バッファ#5(45)、バッファ#6(46)およびソフトウェアを記憶する記憶部(11)は、それぞれが個別のメモリチップを用いて構成してもよいし、1個若しくは複数個のメモリチップを用い、各データアドレスを分割して使用する構成にしてもよい。
【0108】
同図において、入力部(1)から入力される画像信号について、制御部(10)が記憶部(11)に記憶されるソフトウェアと協働してサンプリングレート変換処理を行い、表示部(3)に出力する。当該サンプリングレート変換処理の詳細は図23を用いて説明する。
【0109】
図23に、本実施例に係るサンプリングレート変換方法のフローチャートの一例を示す。図23のフローチャートは、ステップ(2301)から開始し、ステップ(2302)にて入力信号(画素)をバッファ#1(41)に書き込む。このとき、入力画像を構成するフレームごとに、入力信号(画素)をバッファに書き込んでもよいし、入力画像を小領域に分割したブロックごとに入力信号(画素)をバッファに書き込んでもよい。続いて、ステップ(2303)にて、バッファ#1(41)の信号に垂直フィルタV-A(1301-a)と水平フィルタH-A(1302-a)を作用させ、その出力をバッファ#2(42)に書き込む。また、ステップ(2304)にて、バッファ#1(41)の信号に垂直フィルタV-A(1301-a)と水平フィルタH-B(1302-b)を作用させ、その出力をバッファ#3(43)に書き込む。また、ステップ(2305)にて、バッファ#1(41)の信号に垂直フィルタV-B(1301-b)と水平フィルタH-A(1305-a)を作用させ、その出力をバッファ#4(44)に書き込む。また、ステップ(2306)にて、バッファ#1(41)の信号に垂直フィルタV-B(1301-b)と水平フィルタH-B(1305-b)を作用させ、その出力をバッファ#5(45)に書き込む。
【0110】
ここで、水平フィルタH-A(1302-a)とH-A(1305-a)、および水平フィルタH-B(1305-b)とH-B(1305-b)は、それぞれ同一の特性とする。また、ステップ(2302)(2303)(2304)(2305)におけるそれぞれの垂直フィルタと水平フィルタの処理順序を逆にしても同等の効果が得られることは明らかである。また、各フィルタの特性は、図5、図8、図9、図10を用いて説明した各特性を垂直方向若しくは水平方向の特性に読み替えることによってそのまま用いることができるため、図示および説明は省略する。
【0111】
また、ステップ(2307)にて、出力信号(画素)と入力信号(画素)の位置関係をもとに、出力信号(画素)ごとに係数k1、係数k2、係数k3、係数k4を生成する。このときの係数生成方法は、図6、図17、図7、および図13(1312)に示した方法をそのまま用いることができるため、図示および説明は省略する。
【0112】
続くステップ(2308)では、上記のようにして求めた係数k1、係数k2、係数k3、係数k4の値に応じて、バッファ#2(42)、バッファ#3(43)、バッファ#4(44)、バッファ#5(45)の各信号を加重加算してバッファ#6(46)に出力し、ステップ(2309)にて終了する。
【0113】
このときの加重加算の方法は、図13に示したように、バッファ(1313)(=バッファ#2(42))の出力に係数k1を乗算し、バッファ(1314)(=バッファ#3(43))の出力に係数k2を乗算し、バッファ(1315)(=バッファ#3(43))の出力に係数k3を乗算し、バッファ(1316)(=バッファ#4(44))の出力に係数k4を乗算し、その結果すべてを加算する。この加重加算により算出した信号を出力信号とする。
【0114】
なお、ステップ(2303)(2304)(2305)(2306)(2307)は互いに独立した処理のため、各ステップを順番に処理してもよいし、各ステップを同時に並行して処理してもよい。以上述べた処理ステップにより、本実施例に係るサンプリングレート変換方法を実施できる。
【0115】
また、本発明は、画像の回転への用途に限定されるわけではなく、例えば図16(a)に示す画像と同図(b)に示す画像の間の対応する画素位置を、画素単位の位置推定技術によって推定し、同図(a)の画像をもとにして同図(b)に近い画像を生成する用途にも用いることができる。すなわち、例えば同図(a)と同図(b)が連続するフレームの場合には、上記位置推定技術は、画素単位の動きベクトル探索に相当し、同図(a)の画像をもとにして同図(b)に近い画像を生成する動作は、上記動きベクトル探索の結果を用いて動き補償する動作となる。ここで、上記位置推定技術として、例えば参考文献1や参考文献2に記載されているような方法をそのまま用いればよいため、図示および説明を省略する。
[参考文献1] 安藤繁 “画像の時空間微分算法を用いた速度ベクトル分布計測システム”,計測自動制御学会論文集,pp.1330-1336, Vol.22, No.12,1986
[参考文献2] 小林弘幸ほか “DCT変換に基づく画像の位相限定相関法”, 信学技法 IEICE Technical Report ITS2005-92,IE2005-299(2006-02), pp.73-78
以上述べたように、実施例3に係るサンプリングレート変換装置およびサンプリングレート変換方法は、実施例2に係るサンプリングレート変換装置およびサンプリングレート変換方法の効果に加えて、例えば画像の回転や、フレーム間の位置推定を用いた動き補償のような複雑な変形にも対応できるようになるという効果を有する。
【0116】
なお、本発明の各実施例は、上記実施例で説明した画像表示装置以外に、例えば、DVDプレーヤー、磁気ディスクプレーヤー、もしくは半導体メモリプレーヤーにも同様に適用できる。また例えば、1セグ放送を受信するための携帯画像表示端末(例えば携帯電話)にも適用できる。
【0117】
また画像フレームとしては、テレビジョン放送信号以外の信号の画像フレームを用いてもよい。また、例えば、インターネットを介して送信されるストリーミング画像や、DVDプレーヤーやHDDプレーヤーから再生された画像の画像フレームを用いてもよい。
【0118】
また、上述した各実施例では、画像をフレーム単位でサンプリングレート変換する場合を例に挙げて説明した。しかしサンプリングレート変換の対象は、必ずしもフレーム全体でなくとも良い。例えば、入力画像または入力映像のフレームの一部分をサンプリングレート変換の対象としても良い。すなわち、入力映像のフレームを対象として上述した本発明の一の実施例のサンプリングレート変換を実施すれば、入力画像または入力映像の一部分の拡大画像、縮小画像、回転画像、若しくは変形画像を得ることができる。これは、例えば、映像の一部分の拡大表示、縮小表示、回転表示、変形表示などに適用できる。
【0119】
また、上記説明では、水平方向と垂直方向からなる2次元のサンプリングレート変換を行う場合について説明したが、本発明はこれに限定されるわけではなく、例えば、水平方向と時間方向(フレーム方向)からなる2次元のサンプリングレート変換や、垂直方向と時間方向(フレーム方向)からなる2次元のサンプリングレート変換に適用することも可能である。
【0120】
また、本明細書の各記載及び各図面における「画素」という表現は、サンプル信号、若しくはサンプル点という意味も含み、デジタル化された音声信号列や、センサ等から得られた連続するデータ列などの意味も含む。従って、上述した1次元方向のサンプリングレート変換装置若しくはサンプリングレート変換方法は、音声信号やデータ列のサンプリングレート変換装置若しくはサンプリングレート変換方法として、そのまま適用できる。
【図面の簡単な説明】
【0121】
【図1】本発明に係る実施例1の説明図である。
【図2】一般的なサンプリングレート変換の動作の一例を説明する図である
【図3】従来技術の構成を説明した図である。
【図4】従来技術の動作を説明した図である。
【図5】本発明に係る実施例1の説明図である。
【図6】本発明に係る実施例1の説明図である。
【図7】本発明に係る実施例1の説明図である。
【図8】本発明に係る実施例1の説明図である。
【図9】本発明に係る実施例1の説明図である。
【図10】本発明に係る実施例1の説明図である。
【図11】本発明に係る実施例2の説明図である。
【図12】本発明に係る実施例2の説明図である。
【図13】本発明に係る実施例3の説明図である。
【図14】本発明に係る実施例1の説明図である。
【図15】本発明に係る実施例1の処理の一例の説明図である。
【図16】本発明に係る実施例3の処理の一例の説明図である。
【図17】本発明に係る実施例1の説明図である。
【図18】本発明に係る実施例1の説明図である。
【図19】本発明に係る実施例2の説明図である。
【図20】本発明に係る実施例1の説明図である。
【図21】本発明に係る実施例2の説明図である。
【図22】本発明に係る実施例3の説明図である。
【図23】本発明に係る実施例3の説明図である。
【符号の説明】
【0122】
1…入力部;2,4,7…サンプリングレート変換部;3…表示部;10,103,306,310,1203,1309…制御部;11…記憶部;21,22,23,24,31,32,33,34,35,36,37,41,42,43,44,45,46,1313,1314, 1315,1316…バッファ;101,102, 1201,1202,1209,1210,1301,1302,1305…フィルタ;104,1204,1211,1311…係数生成部;105,106,1205,1206,1212,1213,1303,1304,1306,1307…乗算器;107,1207,1214,1308…加算器;108,1208,1215,1310…補間位置情報;201,601,1101…実画素;202…零点;203…補間画素;204,602,1102…出力画素;301…アップサンプラ;302…補間フィルタ;303…ダウンサンプラ;304,307…部分フィルタ;305…切替器;308…タップ係数発生器;501…タップ係数;502,605,702,703,1103,1104,1107,1108…対称の中心;603,604,701,1105,1106…係数;901, 1001…ナイキスト周波数;902,904,1002,1004…周波数特性, 1003, 1005…カットオフ周波数;1216…垂直処理部;1217…水平処理部;1312…係数生成手順。
【技術分野】
【0001】
本発明は、デジタル信号処理によってサンプリングレートを変換するための技術に関する。
【背景技術】
【0002】
放送や通信、蓄積など、情報メディアの多様化に伴い、デジタル信号処理によって画像のサイズを拡大、縮小したり、回転などの変形を行う技術のニーズが高まっている。
【0003】
そこで、特許文献1に記載されているように、ポリフェーズフィルタによってサンプリングレートを変換し、サンプル信号(以下、画素)を補間する技術(以下、従来技術)が提案されている。
【0004】
【特許文献1】特開2004-214827
【発明の開示】
【発明が解決しようとする課題】
【0005】
この従来技術では、入力画像の画素数をU倍(ただし、Uは正整数)に増加させるアップサンプラと、画素数を1/D(ただし、Dは正整数)に間引くダウンサンプラを組合せ、両者のトータルで画素数をU/D倍に変換することにより、もとの入力画像には存在しなかった位置の画素を生成して、拡大若しくは縮小した出力画像を得るものである。
【0006】
図2に、この従来技術の動作原理を示す。同図は、デジタル化(サンプリング)された画素(201-1)(201-2)(201-3)(201-4)から構成される(a)入力信号をもとに、一例として画素数を8/3倍に増加させて(d)出力信号を得る場合の処理内容を示している。ここで、画素(201-1)(201-2)(201-3)(201-4)は、実際に存在する画素という意味で、以下、実画素と呼ぶことにする。
【0007】
従来技術では、画素数を8/3倍に増加させる際に、まず同図(b)に示すように、後述するアップサンプラによって信号強度が0の画素(202)(以下、零点)を等間隔になるように挿入し、画素数を8倍に増加させる。続いて、同図(c)に示すように、後述する補間フィルタによって補間画素(203)を生成したのちに、後述するダウンサンプラによって画素を1/3に間引いて出力画素(204-1)(204-2)(204-3)…とし、(d)出力信号を得る。ここでさらに、出力画素(204-1)(204-2)(204-3)…の間隔が実画素(201-1)(201-2)(201-3)…の間隔と等しくなるように並べ変えれば、画像サイズが8/3倍に拡大されたことになる。
【0008】
上記では、U=8、D=3として8/3倍の拡大処理を行う場合を例に挙げて説明したが、縮小する場合も同様であり、例えばU=4、D=9とすれば、4/9倍の縮小処理を行うことができる。
【0009】
図3に、上述した従来技術の動作を実現するための構成を示す。同図(a)は、図2で説明した動作原理そのものの信号処理構成である。入力された実画素(201)に対して、アップサンプラ(301)によって零点(202)を等間隔に挿入して画素数をU倍に増加させ、補間フィルタ(302)によって補間画素(203)を生成し、ダウンサンプラ(303)によって画素を1/Dに間引いて出力画素(204)を得る。この構成では、(c)補間フィルタ後の信号において、処理途中の画素数が非常に多くなることと、信号強度が0の零点(202)に対する乗算が無駄であることから、同図(b)若しくは同図(c)の構成に等価的に置き換えて処理するのが一般的である。
【0010】
図3(b)は、上述した補間フィルタ(302)のタップ係数を部分フィルタ(304-1)(304-2)(304-3)…(304-U)に分解することによって、信号強度が0の零点(202)に対する乗算を行わないように構成したものである。これにより、切替器(305)によって各部分フィルタの出力の中から1つを選択するように制御部(306)で制御して、出力信号を得る。
【0011】
図3(c)は、部分フィルタ(307)を1つのみとし、タップ係数発生器(308-1)(308-2)(308-3)…(308-U)によって上記部分フィルタ(304-1)(304-2)(304-3)…(304-U)と同一のタップ係数を発生させる。次に、切替器(309)によって各タップ係数の中から1つを選択して部分フィルタ(307)に設定するように制御部(310)で制御し、同図(b)に示した構成と同一の出力信号を得る。なお、タップ係数発生器(308)は、タップ係数を格納するためのメモリによって構成することが一般的である。
【0012】
図4に、図3に示した補間フィルタ(302)、部分フィルタ((304-1)(304-2)(304-3)…(304-U)、およびタップ係数発生器(308-1)(308-2)(308-3)…(308-U)の各動作の一例を示す。同図(a)は、補間フィルタ(302)のタップ数=25とした場合のタップ係数の一例であり、8/3倍の拡大処理、すなわちU=8、D=3と想定した場合の一例である。なお、末尾の(*1/256)はすべてのタップ係数に1/256を乗じるという意味であり、補間フィルタ(302)のタップ係数は、左から、-1/256、-3/256、-6/256…となる。このタップ係数を、図2(b)アップサンプル後の信号に畳み込むことにより、図2(c)補間フィルタ後の信号が得られる。
【0013】
同図(b)は、同図(a)に示した補間フィルタ(302)のタップ係数を、部分フィルタ(304)(307)のタップ係数に変換したものである。すなわち、図2(d)に示した出力画素(204-1)(204-2)(204-3)…の画素位置に、図4(a)に示した補間フィルタ(302)の中央タップの位置を対応させたのちに、零点(202)に相当する位置のタップ係数を外したものを新しいタップ係数としたものであり、そのときの出力画素番号と入力画素番号の関係も併せて示している。図3(b)(c)に示した制御部(306)(310)は、図4(b)に示すタップ係数が設定された部分フィルタ(304)(308)の結果が出力されるように、切替器(305)(309)を制御する必要がある。
【0014】
図3および図4に示した従来技術により、サンプリングレートをU/D倍に変換する、すなわち、画素数をU/D倍に変換することが可能になるが、下記の課題がある。
【0015】
第1の課題は、Uの値が大きくなると、図3に示した部分フィルタ(304)若しくはタップ係数発生器(308)の個数が増加するため、ハードウェアの規模が大きくなることである。
【0016】
例えば画像を256/173倍に拡大する場合、U=256であるため、部分フィルタ(304)若しくはタップ係数発生器(308)も256個必要になる。また、部分フィルタ(304)1個あたりの平均タップ数を3とした場合、その元になる補間フィルタ(302)のタップ数は約750タップ(=3*256)となる。
【0017】
例えば、1つのタップ係数を格納するために1バイト(=8ビット)のメモリが必要だと仮定すると、上記全タップ係数を格納するためのメモリ量は約750バイトになる。高画質を得るために補間フィルタの遮断特性を急峻にする場合は、各部分フィルタ(304)のタップ数を大幅に増やす必要がある。
【0018】
例えば、部分フィルタ(304)1個あたりの平均タップ数を10にすると、その元になる補間フィルタ(302)のタップ数は約2500タップ(=10*256)となるため、タップ係数を格納するためのメモリは約2500バイトになる。さらに、複数の倍率(U/D)に対応させるためには、各部分フィルタ(304)のタップ係数を複数組用意する必要がある。
【0019】
例えば、U=256に固定して、256/D倍のDを10通り用意することにより10通りの倍率に対応させる場合は、前述したタップ数のさらに10倍のタップ数(=約25000タップ)を格納するための大量のメモリ(=約25000バイト)が必要になる。
【0020】
第2の課題は、倍率(U/D)を連続的に変化させることが困難なことである。例えば、テレビ受像機では、図15に示すように、アスペクト比16:9の画像を(a)入力画像とし、その中央の12:9(=4:3)の部分だけを抜き出して水平方向に拡大し、16:9の(b)出力画像として表示するモードがある。この際に、画面の中央部はあまり拡大せず、画面の端に近づくにつれて大きく拡大するモードがよく用いられる。このとき、出力画素の水平位置に応じて、拡大率(U/D)を連続的に変化させる必要があるが、図3に示した従来技術の構成では、部分フィルタ(304)若しくはタップ係数発生器(308)の個数をUの値に応じて連続的に変化させる必要があり、実装が困難になる。なお、使用する拡大率(U/D)の候補を予め決定し、Uの最大値を事前に決定し、それに対応する部分フィルタ(304)若しくはタップ係数発生器(308)を用意すれば実装は可能できるが、この場合、任意の拡大率(U/D)に即座に対応することは困難である。
【0021】
第3の課題は、制御部(306)(310)の動作が複雑になり、この制御を実現するためのハードウェアやソフトウェアの処理量が大きくなることである。前述したテレビ受像機の例では、Uの値が出力画素の水平位置に応じて変化する。そのため、部分フィルタの個数が画素ごとに変化し、切替器(305)(309)を制御する制御部(306)(310)の制御方法を水平位置に応じて複雑に変化させる必要がある。また、HDTV(High Definition TV)のように、単位時間あたりの画素数が非常に多い画像信号を扱う場合には、前述した部分フィルタ(304)若しくはタップ係数発生器(308)の特性を短時間で変更する必要があり、実装が困難になる。例えば、1画面(フレーム)あたりの画素数が水平1920画素×垂直1080画素、フレームレートが60fps(frame per second)の場合、1画素あたりの処理時間は8ナノ秒(=1/(1920*1080*60)秒)であり、この間に部分フィルタ(304)若しくはタップ係数発生器(308)を切り替える必要があり、特にタップ数が多い場合には実装が困難になる。
【0022】
本発明は、上記従来技術の課題に鑑みて為されたものであって、その目的は、好適にサンプリングレートを変換するための技術を提供することにある。
【課題を解決するための手段】
【0023】
上記目的を達成するために、本発明の一実施の態様は、例えば、特許請求の範囲に記載されるように構成すればよい。
【発明の効果】
【0024】
本発明によれば、より好適にサンプリングレートを変換することが可能となる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施例を、図面を参照して説明する。
【0026】
また、各図面において、同一の符号が付されている構成要素は同一の機能を有すること
とする。
【0027】
また、本明細書の各記載及び各図面における「画素」という表現は、サンプル信号若しくはサンプル点という意味も含み、デジタル化された音声信号列や、センサ等から得られた連続するデータ列などの意味も含む。
【0028】
以下、本発明の実施例について、図面を参照しつつ説明する。
【実施例1】
【0029】
図1に、本発明の実施例1に係るサンプリングレート変換装置を示し、その特徴について述べる。本実施例に係るサンプリングレート変換装置は、例えばテレビジョン受像機等の画像表示装置に適用される。以下の本実施例の説明においては、サンプリングレート変換装置として画像表示装置を例にして説明する。
【0030】
図1において、本実施例に係るサンプリングレート変換装置は、例えばテレビジョン放送信号などの動画像のフレーム列が入力される入力部(1)と、この入力部(1)から入力されたフレームの画素数を1次元方向に変換するためのサンプリングレート変換部(2)と、更にこのサンプリングレート変換部(2)によって画素数が変換されたフレームに基づき画像を表示する表示部(3)とを備えている。この表示部(3)として、例えばプラズマディスプレイパネル、液晶表示パネル、もしくは電子/電界放出型ディスプレイパネルが用いられる。以下、サンプリングレート変換部(2)の詳細について説明する。
【0031】
図1において、入力部(1)から入力された信号は、フィルタA(101)とフィルタB(102)に入力される。ここで、フィルタA(101)は、タップ数が奇数であり、なおかつタップ係数が左右(若しくは上下)対称の1次元フィルタである。また、フィルタB(102)は、タップ数が偶数であり、なおかつタップ係数が左右(若しくは上下)対称の1次元フィルタである。ここで、フィルタA(101)、フィルタB(102)の出力は、それぞれ乗算器(105)(106)に入力される。
【0032】
一方、制御部(103)にて生成した補間すべき画素の位置を表す情報(補間位置情報(108))に基づいて、係数生成部(104)は、混合比である係数(1-k)および係数kを生成する。乗算器(105)(106)は、係数(1-k)および係数kのそれぞれをフィルタA(101)およびフィルタB(106)の出力と乗算する。最後に、加算器(107)は、乗算器(105)および乗算器(106)のそれぞれの出力を加算し、サンプリングレート変換部(2)の出力信号とする。すなわち、フィルタA(101)およびフィルタB(102)のタップ係数はそれぞれ固定とし、補間すべき画素の位置に応じて各フィルタの出力を加重加算(混合)する構成とする。これにより、任意のサンプリングレート変換を実現することができる。各部の詳細な動作については後述する。
【0033】
図5(a)(b)に、フィルタA(101)(奇数タップ対称フィルタ)、およびフィルタB(偶数タップ対称フィルタ)の一例をそれぞれ示す。各図において、横軸は画素位置を示し、縦軸は対応する位置の画素の値と畳み込み演算を行うタップ係数の値の大きさを示しており、各フィルタのインパルス応答を示している。同図(a)は、5タップのフィルタであり、対称の中心(502-a)を対称軸として、左右対称のタップ係数(501-a)からなるフィルタである。すなわち、インパルス応答が左右対称であり、その対称軸が(502-a)に位置するフィルタである。同図(b)は、4タップのフィルタであり、対称の中心(502-b)を対称軸として、左右対称のタップ係数(501-b)からなるフィルタである。すなわち、インパルス応答が左右対称であり、その対称軸が(501-b)に位置するフィルタである。なお、本発明に用いるフィルタは、同図に示すタップ数やタップ係数に限定されるものではない。
【0034】
図6に、係数生成部(104)の動作を示す。同図において、横軸は画素位置を示し、実画素(601-1)と実画素(601-2)の中間に位置する出力画素(602)を生成する場合の動作を示している。このとき、実画素(601-1)の位置(座標)をx1、実画素(601-1)の右に隣接する実画素(601-2)の位置を(x1+1)、出力画素(602)の位置をx2とし、x1≦x2<(x1+1)の関係を満たすものとする。
【0035】
ここで、図5(a)に示したように、フィルタA(101)の対称の中心は(502-a)若しくは(605)に位置し、実画素(601-1)若しくは実画素(601-2)の画素位置と一致する。また、フィルタB(102)の対称の中心は(502-b)に位置し、実画素(601-1)と実画素(601-2)のちょうど中央の画素位置になる。係数生成部(104)では、フィルタAの対称の中心位置とフィルタBの対称の中心位置の間隔を1.0(基準)とした場合の、出力画素(602)とフィルタAの対称の中心(502-a)の間隔を係数k(603)として、また出力画素(602)とフィルタBの対称の中心(502-b)の間隔を係数(1-k)(604)として出力する。このとき、x2-x1:(x1+1-x1)/2=k:1.0の関係になるため、k=2.0*(x2-x1)とすればよい。
【0036】
出力画素(602)の位置が、実画素(601-1)よりも実画素(601-2)に近い場合も同様に、出力画素(602)と近いほうのフィルタAの対称の中心(605)の間隔を係数kとして、また出力画素(602)とフィルタBの対称の中心(502-b)の間隔を係数(1-k)として出力する。このようにして生成した係数kおよび(1-k)を用いて、図1に示した乗算器(105)(106)の演算を行う。
【0037】
図17に、この係数生成方法のフローチャートの一例を示す。図17のフローチャートは、ステップ(1701)から開始し、ステップ(1702)にて出力画素(602)の位置x2と、実画素(601-1)と実画素(601-2)の中央の位置(x1+0.5)を比較する。ここで(x2≦x1+0.5)の場合、すなわち出力画素(602)の位置x2が実画素(601-1)と実画素(601-2)の中央の位置(x1+0.5)よりも左側の場合は、ステップ(1703)に進んでk=2.0*(x2-x1)を出力し、ステップ(1705)にて終了する。一方、(x2>x1+0.5)の場合、すなわち出力画素(602)の位置x2が実画素(601-1)と実画素(601-2)の中央の位置(x1+0.5)よりも右側の場合は、ステップ(1704)に進んでk=2.0*(x1+1-x2)を出力し、ステップ(1705)にて終了する。係数(1-k)は、前述の係数kの値を1から減じることによって求めればよい。なお、出力画素(602)の位置x2が実画素(601-1)と実画素(601-2)のちょうど中央の位置の場合(すなわち、x2=x1+0.5の場合)は、ステップ(1703)(1704)のどちらに進んでも、kは同一の値(1.0)になる。
【0038】
図7に、一例として、8/3倍のサンプリングレート変換に、図6および図17に示した係数生成方法を適用した場合の動作を示す。図7(a)は入力信号における実画素(201-1)(201-2)(201-3)(201-4)の各位置を示しており、同図(b)は出力信号における出力画素(204-4)(204-5)(204-6)(204-7)の各位置を示している。このとき、フィルタAの対称の中心は、実画素(201-2)(201-3)等の位置と一致するため、(702-a)(703-a)等の位置になる。一方、フィルタBの対称の中心は、実画素(201-2)(201-3)等のちょうど中央の位置になるため、(702-b)等の位置になる。従って、図6および図17に示した係数生成方法を適用すると、同図(b)に示すように、出力画素(204-4)を算出する際にはk=0.25(701-4)、出力画素(204-5)を算出する際にはk=1.0(701-5)、出力画素(204-6)を算出する際にはk=0.25(701-6)、出力画素(204-7)を算出する際にはk=0.5(701-7)となる。
【0039】
次に、図9(a)(b)に、本発明のサンプリングレート変換を拡大処理に適用する場合、すなわち、U/D倍においてU>Dの際のフィルタA(101)およびフィルタB(102)の各周波数特性の一例を示す。同図(a)(b)ともに、横軸は周波数を示し、縦軸は利得を示しており、直流(=周波数=0)からナイキスト周波数(901)(=サンプリング周波数の1/2)までの各フィルタの利得を示している。ここで、同図(a)におけるフィルタA(101)の周波数特性(902)と、同図(b)におけるフィルタB(102)の周波数特性(904)を略同一にすることによって、各フィルタの出力を係数kの値に応じて加重加算した結果の周波数特性は、係数kの値によらず周波数特性(902)および(904)と略同一になる。すなわち、出力画素の位置によらずに周波数特性が略同一に保ったまま、係数kの値によって出力画素の位置(位相)のみを変化させることができるようになる。
【0040】
なお、偶数タップ対称フィルタ(フィルタB)では、ナイキスト周波数(901)では必ず利得=0となるが、奇数タップ対称フィルタ(フィルタA)では、ナイキスト周波数(901)でも必ずしも利得=0とならず、自由度を持って設計できる。このとき、ナイキスト周波数(901)におけるフィルタAの利得を0に近い値とすれば、フィルタBの特性と略同一になり、前述した特許文献1に示されているようなチェス盤歪みの発生を防ぐことができる。一方、ナイキスト周波数(901)におけるフィルタAの利得を1に近い値とすれば、高周波数成分まで通過させることが可能になるため、サンプリングレート変換後の出力を高精細な画像にすることが可能になる。従って、両者はトレードオフの関係になるため、フィルタAおよびフィルタBの周波数特性は、出力画像の画質を確認しながら最適になるように設計するのが好ましい。
【0041】
図10(a)(b)に、本発明のサンプリングレート変換を縮小処理に適用する場合、すなわち、U/D倍においてU<Dの際のフィルタA(101)およびフィルタB(102)の各周波数特性の一例を示す。同図(a)(b)ともに、横軸は周波数を示し、縦軸は利得を示しており、直流(=周波数=0)からナイキスト周波数(1001)(=サンプリング周波数の1/2)までの各フィルタの利得を示している。ここで、同図(a)におけるフィルタA(101)の周波数特性(1002)と、同図(b)におけるフィルタB(102)の周波数特性(1004)を略同一にすることによって、各フィルタの出力を係数kの値によって加重加算した結果の周波数特性は、係数kの値によらず周波数特性(1002)および(1004)と略同一になる。すなわち、出力画素の位置によらずに周波数特性が略同一に保ったまま、係数kの値によって出力画素の位置(位相)のみを変化させることがでぎるようになる。縮小処理に用いる(a)フィルタAと(b)フィルタBが、上述の拡大処理の各フィルタと異なる点は、通過帯域の上限を示すカットオフ周波数(1003)(1005)をそれぞれナイキスト周波数のU/D倍の周波数の近傍に設定することである。
【0042】
ここで、カットオフ周波数(1003)(1005)をナイキスト周波数のU/D倍の周波数よりも低く(=0に近いほうに)設定すると、高周波成分が減衰して、サンプリングレート変換後の出力がぼやけた画像になる。一方、カットオフ周波数(1003)(1005)をナイキスト周波数のU/D倍の周波数よりも高く(=ナイキスト周波数に近いほうに)設定すると、ナイキスト周波数のU/D倍の周波数を越えた成分が折返し歪みとなって、モアレなどの原因になる。従って、両者はトレードオフの関係になるため、フィルタAおよびフィルタBの周波数特性は、出力画像の画質を確認しながら最適になるように設計するのが好ましい。
【0043】
図8に、一例として、サンプリングレートを8/3倍に拡大する場合、すなわちU=8、D=3の場合の出力画素番号、係数kの値、フィルタAとフィルタBの各タップ係数、および入力画素番号をまとめて示す。ここで、同図における出力画素番号は、図2における(d)出力画素(204-1)(204-2)(204-3)…の末尾の番号である。これらは、図8に示す整数nを0、1、2…とすることにより、U個(=8)の出力画素ごとに1周期が構成される。同図における係数kの値は、図6および図17に示した方法に基づいて、実画素と出力画素の位置関係から求めたものであり、図7に示した係数kの値を他の画素にまで拡張したものである。同図におけるフィルタAおよびフィルタBのタップ係数は、図9(a)(b)に示した周波数特性に近い特性を具体的に実現した一例である。同図における入力画素番号は、図2における(a)入力信号(201-1)(201-2)(201-3)…の末尾の番号である。これらは、図8に示す整数nを0、1、2…とすることにより、D個(=3)の実画素ごとに1周期が構成される。
【0044】
ここで、入力画素番号における「A」欄に示したカッコ{}内の5個の番号は、5タップからなるフィルタAの各タップ係数と畳み込み演算を行う画素の番号を示している。また、入力画素番号における「B」欄に示したカッコ{}内の4個の番号は、4タップからなるフィルタBの各タップ係数と畳み込み演算を行う画素の番号を示している。この入力画素番号は、サンプリングレートの拡大率(U/D)から定められる出力画素の位置に最も近い実画素の位置がフィルタAの対称の中心になり、かつ出力画素を挟むように位置する2つの実画素の中央がフィルタBの対称の中心になるようにして定めたものである。本発明は、同図に示したフィルタAおよびフィルタBのタップ数およびタップ係数に限定されるわけではない。例えばタップ数をさらに増やしてカットオフ特性を急峻にすれば、より高い周波数成分までフィルタを通過させることができ、高精細な出力画像が得られる。また、他の倍率、すなわち他のUおよびDの値の場合にも、上記と同様の方法で各値を定めればよい。
【0045】
図14および図20を用いて、図1に示したサンプリングレート変換装置と等価な処理を、ソフトウェアと協働する制御部により実現する画像信号処理方法について説明する。
【0046】
まず、図14を用いて、本実施例に係る画像信号処理方法を実現するためのサンプリングレート変換装置について説明する。図14に示すサンプリングレート変換装置は、例えばテレビジョン放送信号などの画像信号が入力される入力部(1)と、入力部(1)から入力された信号を処理するためのソフトウェアを記憶する記憶部(11)と、記憶部(11)に記憶されるソフトウェアとが協働して入力部(1)から入力された信号について画像信号処理を行う制御部(10)と、入力部(1)から入力されるデータを一時的に格納するためのバッファ#1(21)と、制御部(10)が当該サンプリングレート変換処理においてデータを一時的に格納するためのバッファ#2(22)、バッファ#3(23)と、制御部(10)から出力部(3)に出力されるサンプリングレート変換処理後の信号を一時的に格納するためのバッファ#4(24)とを備える。
【0047】
ここで、データを一時的に格納するバッファ#1(21)、バッファ#2(22)、バッファ#3(23)、バッファ#4(24)およびソフトウェアを記憶する記憶部(11)は、それぞれが個別のメモリチップを用いて構成してもよいし、1個若しくは複数個のメモリチップを用い、各データアドレスを分割して使用する構成にしてもよい。
【0048】
また、同図において、入力部(1)から入力される画像信号について、制御部(10)が記憶部(11)に記憶されるソフトウェアと協働してサンプリングレート変換処理を行い、表示部(3)に出力する。当該サンプリングレート変換処理の詳細は図20を用いて説明する。
【0049】
図20に、本実施例に係るサンプリングレート変換方法のフローチャートの一例を示す。図20のフローチャートは、ステップ(2001)から開始し、ステップ(2002)にて入力信号(画素)をバッファ#1(21)に書き込む。このとき、入力画像を構成するフレームごとに、入力信号(画素)をバッファに書き込んでもよく、入力画像を小領域に分割したブロックごとに入力信号(画素)をバッファに書き込んでもよい。続いて、ステップ(2003)にて、バッファ#1(21)の信号にフィルタA(101)を作用させ、その出力をバッファ#2(22)に書き込む。一方、ステップ(2004)にて、バッファ#1(21)の信号にフィルタB(102)を作用させ、その出力をバッファ#3(23)に書き込む。ここで、フィルタA(101)およびフィルタB(102)の特性は、図5、図8、図9、図10を用いて説明した各特性をそのまま用いることができるため、図示および説明は省略する。
【0050】
また、ステップ(2005)にて、出力信号(画素)と入力信号(画素)の位置関係をもとに、出力信号(画素)ごとに係数kを生成する。このときの係数生成方法は、図6、図17、図7に示した方法をそのまま用いることができるため、図示および説明は省略する。続くステップ(2006)では、上記のようにして求めた係数kの値に応じて、バッファ#2(22)とバッファ#3(23)の各信号を加重加算してバッファ#4(24)に出力し、ステップ(2007)にて終了する。このときの加重加算の方法は、図1に示したように、フィルタA(101)の出力(=バッファ#2(22))に係数(1-k)を乗算し、フィルタB(102)の出力(=バッファ#3(23))に係数kを乗算し、両者を加算して出力信号を生成する。
【0051】
なお、ステップ(2003)(2004)(2005)は互いに独立した処理のため、各ステップを順番に処理してもよいし、各ステップを同時に並行して処理してもよい。以上述べた処理ステップにより、本実施例に係るサンプリングレート変換方法を実施できる。
【0052】
図15に、本実施例に係るサンプリングレート変換装置若しくはサンプリングレート変換方法を用いて、倍率(U/D)を連続的に変化させながら、画像を水平方向に拡大する応用例を示す。同図は、アスペクト比16:9の画像を(a)入力画像とし、その中央の12:9(=4:3)の部分だけを抜き出して水平方向に拡大し、16:9の(b)出力画像として表示する動作を示している。同図は、特に、画面の中央部はあまり拡大せず、画面の端に近づくにつれて大きく拡大する動作を示している。このとき、出力画素の水平位置に応じて、拡大率(U/D)が連続的に変化することになる。
【0053】
ここで、入力画像と出力画像の画素位置の関係は、例えば同図(c)に示すような関係にあるとする。すなわち、一例として、拡大率を、画面の左端では1.7倍(U=17、D=10)、画面の中央では1.0倍(U=1、D=1)、画面の右端では1.7倍(U=17、D=10)になるように設定したとする。また、(b)出力画像の水平方向の画素数を例えば1920画素とすると、(b)出力画像のフレーム上の画素位置(画素番号)は、左端が1、中央が960、右端が1920となる。入力画像のもともとの水平方向の画素数も同様に1920画素とすると、画面中央の12:9(=4:3)の部分だけを抜き出すため、(b)出力画像の左端に対応する(a)入力画像の画素位置は241、(b)出力画像の中央に対応する(a)入力画像の画素位置は960、(b)出力画像の右端に対応する(a)入力画像の画素位置は1680となる。このとき、画面の左端では拡大率が1.7であるため、(b)出力画像のフレーム上の1画素の間隔は、(a)入力画像のフレーム上の1.7画素に対応する。従って、(b)出力画像の画素位置=2に対応する(a)入力画像の画素位置は242.7になる。同様に、(b)出力画像の画素位置に対応する(a)入力画像の画素位置をすべて求め、その結果をテーブルに予め格納しておく。
【0054】
図1に示すサンプリングレート変換装置(2)では、制御部(103)にて上記テーブルの内容に従って補間位置情報(108)を生成し、係数生成部(104)にて図17に示すフローチャートに基づいて係数kを生成し、乗算器(105)(106)および加算器(107)を用いてフィルタA(101)およびフィルタB(102)の出力を加重加算すれば、図15に示すような(a)入力画像から(b)出力画像を容易に得ることができる。
【0055】
以上述べたように、実施例1に係るサンプリングレート変換装置およびサンプリングレート変換方法は、固定の特性を持つ2つのフィルタの出力を加重加算するだけで任意のサンプリングレート変換を実現できるため、従来技術よりもハードウェア規模およびソフトウェア処理量が小さくなる効果がある。
【0056】
また、サンプリングレートの倍率(U/D)が変化しても、拡大の場合、すなわちU/D倍においてU>Dの場合には、フィルタA(101)とフィルタB(102)の各得性を固定したまま、制御部(103)と係数生成部(104)の動作を補間位置情報(108)に応じて変更するだけでサンプリングレート変換処理を実現することが可能になるため、従来技術よりも倍率(U/D)を連続的に変化させることが容易になる効果がある。
【0057】
また、出力画素ごとにフィルタA(101)とフィルタB(102)の各特性を変更する必要がないため、従来技術よりも制御部(103)(10)の動作を単純にできる効果がある。
【実施例2】
【0058】
次に、図12及び図11を用いて、本発明のサンプリングレート変換装置に係る実施例2の構成および動作について説明する。本実施例は、前述した1次元方向のサンプリングレート変換を、水平方向および垂直方向からなる2次元に拡張したサンプリングレート変換装置の構成例である。
【0059】
図12において、本実施例に係るサンプリングレート変換装置は、例えばテレビジョン放送信号などの動画像のフレーム列が入力される入力部(1)と、この入力部(1)から入力されたフレームの画素数を2次元方向に変換するためのサンプリングレート変換部(4)と、更にこのサンプリングレート変換部(4)によって画素数が変換されたフレームに基づき画像を表示する表示部(3)とを備えている。この表示部(3)として、例えばプラズマディスプレイパネル、液晶表示パネル、もしくは電子/電界放出型ディスプレイパネルが用いられる。以下、サンプリングレート変換部(4)の詳細について説明する。
【0060】
図12において、入力部(1)から入力された信号は、垂直処理部(1216)と水平処理部(1217)によって、2次元のサンプリングレート変換が行われる。
【0061】
まず垂直処理部(1216)にて、信号を垂直フィルタV-A(1201)と垂直フィルタV-B(1202)に入力する。ここで、垂直フィルタV-A(1201)は、タップ数が奇数であり、なおかつタップ係数が上下対称の1次元フィルタである。また、垂直フィルタV-B(1202)は、タップ数が偶数であり、なおかつタップ係数が上下対称の1次元フィルタである。ここで、垂直フィルタV-A(1201)、垂直フィルタV-B(1202)の出力は、それぞれ、乗算器(1205)(1206)に入力される。
【0062】
一方、制御部(1203)にて生成した補間すべき画素の垂直位置を表す情報(垂直補間位置情報(1208))に基づいて、係数生成部(1204)は、係数(1-kV)および係数kVを生成する。乗算器(1205)(1206)は、係数(1-kV)および係数kVのそれぞれを垂直フィルタV-A(1201)および垂直フィルタV-B(1206)の出力と乗算する。次に、加算器(1207)は、乗算器(1205)及び乗算器(1206)の出力を加算して、垂直処理部(1216)の出力信号とする。
【0063】
続いて、水平処理部(1217)にて、信号を水平フィルタH-A(1209)と水平フィルタH-B(1210)に入力する。ここで、水平フィルタH-A(1209)は、タップ数が奇数であり、なおかつタップ係数が左右対称の1次元フィルタである。また、水平フィルタH-B(1210)は、タップ数が偶数であり、なおかつタップ係数が左右対称の1次元フィルタである。ここで、水平フィルタH-A(1209)、水平フィルタH-B(1210)の出力は、それぞれ、乗算器(1212)(1213)に入力される。
【0064】
一方、制御部(1203)にて生成した補間すべき画素の水平位置を表す情報(水平補間位置情報(1215))に基づいて、係数生成部(1211)は、係数(1-kH)および係数kHを生成する。乗算器(1212)(1213)は、係数(1-kH)および係数kHのそれぞれを水平フィルタH-A(1209)および水平フィルタH-B(1210)の出力と乗算する。次に、加算器(1214)は、乗算器(1212)及び(1213)の出力を加算して水平処理部(1216)の出力信号とする。当該出力信号が、サンプリングレート変換部(4)の出力となる。
【0065】
すなわち、垂直フィルタV-A(1201)、垂直フィルタVB(1202)、水平フィルタH-A(1209)、及び水平フィルタH-B(1210)のタップ係数はそれぞれ固定とし、補間すべき画素の位置に応じて各フィルタの出力を加重加算する構成により、任意の2次元サンプリングレート変換を実現するものである。なお、垂直処理部(1216)と水平処理部(1217)の処理順序を逆にしても同様の結果を得ることができる。
【0066】
図11を用いて、実画素(1101-1)(1101-2)(1101-3)(1101-4)、出力画素(1102)、各フィルタの対称の中心の各位置、および前記加重加算の際の係数kH(1105)、係数kV(1106)の関係について説明する。まず、実画素(1101-1)の位置(x1,y1)を基準とし、その右に隣接する実画素(1101-2)の位置を(x1+1,y1)、実画素(1101-1)の下に隣接する実画素(1101-3)の位置を(x1,y1+1)、実画素(1101-1)の右下に隣接する実画素(1101-4)の位置を(x1+1,y1+1)とし、出力画素(1102)の位置を(x2,y2)とする。このとき、x1≦x2<(x1+1)、かつy1≦y2<(y1+1)の関係を満たすものとする。
【0067】
ここで、4個の1次元フィルタ、すなわち、水平方向の奇数タップ対称フィルタH-A、水平方向の偶数タップ対称フィルタH-B、垂直方向の奇数タップ対称フィルタV-A、垂直方向の偶数タップ対称フィルタV-Bを用意する。水平方向の奇数タップ対称フィルタH-Aの対称の中心は(1103-a)若しくは(1107)に位置し、実画素(1101-1)(1101-3)若しくは実画素(1101-2)(1101-4)の水平位置と一致する。また、水平方向の偶数タップ対称フィルタH-Bの対称の中心は(1103-b)に位置し、実画素(1101-1)と実画素(1101-2)、若しくは実画素(1101-3)と実画素(1101-4)のちょうど中央の水平位置になる。また、垂直方向の奇数タップ対称フィルタV-Aの対称の中心は(1104-a)若しくは(1108)に位置し、実画素(1101-1)(1101-2)若しくは実画素(1101-3)(1101-4)の水平位置と一致する。また、垂直方向の偶数タップ対称フィルタV-Bの対称の中心は(1104-b)に位置し、実画素(1101-1)と実画素(1101-3)、若しくは実画素(1101-2)と実画素(1101-4)のちょうど中央の垂直位置になる。
【0068】
ここで、係数生成部(1204)では、垂直フィルタV-A(1104-a)の対称の中心位置と垂直フィルタV-B(1104-b)の対称の中心位置の垂直間隔を1.0(基準)とした場合の、出力画素(1102)と垂直フィルタV-Aの対称の中心(1104-a)の間隔を係数kV(1106)として出力する。このとき、y2-y1:(y1+1-y1)/2=kV:1.0の関係より、kV=2.0*(y2-y1)とすればよい。出力画素(1102)の垂直位置が、実画素(1101-1)よりも実画素(1101-3)に近い場合も同様に、出力画素(1102)と近いほうの垂直フィルタV-Aの対称の中心(1101-3)の間隔を係数kVとして出力する。また、出力画素(1102)と垂直フィルタV-Bの対称の中心(502-b)の垂直間隔を係数(1-kV)として出力する。このようにして生成した係数kVおよび(1-kV)を用いて、図12に示した乗算器(1205)(1206)の演算を行う。
【0069】
同様に、係数生成部(1211)では、水平フィルタH-A(1103-a)の対称の中心位置と水平フィルタH-B(1103-b)の対称の中心位置の水平間隔を1.0(基準)とした場合の、出力画素(1102)と水平フィルタH-Aの対称の中心(1103-a)の間隔を係数kH(1105)として出力する。このとき、x2-x1:(x1+1-x1)/2=kH:1.0の関係より、kH=2.0*(x2-x1)とすればよい。出力画素(1102)の水平位置が、実画素(1101-1)よりも実画素(1101-2)に近い場合も同様に、出力画素(1102)と近いほうの水平フィルタH-Aの対称の中心(1101-2)の間隔を係数kHとして出力する。また、出力画素(1102)と水平フィルタH-Bの対称の中心(1103-b)の水平間隔を係数(1-kH)として出力する。このようにして生成した係数kHおよび(1-kH)を用いて、図12に示した乗算器(1212)(1213)の演算を行う。
【0070】
図18に、この係数生成方法のフローチャートの一例を示す。図18のフローチャートは、ステップ(1801)から開始し、ステップ(1802)にて出力画素(1102)の垂直位置y2と、実画素(1101-1)と実画素(1101-3)の中央の垂直位置(y1+0.5)を比較する。ここで、(y2≦y1+0.5)の場合、すなわち出力画素(1102)の垂直位置y2が実画素(1101-1)と実画素(1101-3)の中央の垂直位置(y1+0.5)よりも上側の場合は、ステップ(1803)に進んでkV=2.0*(y2-y1)を出力し、ステップ(1805)に進む。一方、(y2>y1+0.5)の場合、すなわち出力画素(1102)の垂直位置y2が実画素(1101-1)と実画素(1101-3)の中央の位置(y1+0.5)よりも下側の場合は、ステップ(1804)に進んでkV=2.0*(y1+1-y2)を出力し、ステップ(1805)に進む。
【0071】
続いて、ステップ(1805)にて出力画素(1102)の水平位置x2と、実画素(1101-1)と実画素(1101-2)の中央の水平位置(x1+0.5)を比較しする。ここで、(x2≦x1+0.5)の場合、すなわち出力画素(1102)の水平位置x2が実画素(1101-1)と実画素(1101-2)の中央の水平位置(x1+0.5)よりも左側の場合は、ステップ(1806)に進んでkH=2.0*(x2-x1)を出力し、ステップ(1808)にて終了する。一方、(x2>x1+0.5)の場合、すなわち出力画素(1102)の水平位置x2が実画素(1101-1)と実画素(1101-2)の中央の位置(x1+0.5)よりも右側の場合は、ステップ(1807)に進んでkH=2.0*(x1+1-x2)を出力し、ステップ(1808)にて終了する。
【0072】
なお、係数(1-kV)若しくは係数(1-kH)は、前述の係数kV、若しくは係数kHの値をそれぞれ1から減じることによって求めればよい。
【0073】
また、出力画素(1102)の垂直位置y2が実画素(1101-1)と実画素(1101-3)のちょうど中央の垂直位置の場合(すなわち、y2=y1+0.5の場合)は、ステップ(1803)(1804)のどちらに進んでも、kVは同一の値(1.0)になる。
【0074】
また、出力画素(1102)の水平位置x2が実画素(1101-1)と実画素(1101-2)のちょうど中央の水平位置の場合(すなわち、x2=x1+0.5の場合)は、ステップ(1806)(1807)のどちらに進んでも、kHは同一の値(1.0)になる。
【0075】
図12に示した垂直フィルタV-A(1201)および垂直フィルタV-B(1202)の周波数特性は、図9および図10を用いて説明したフィルタAおよびフィルタBの周波数特性を垂直周波数特性に読み替えるだけであるため、図示および説明は省略する。同様に、図12に示した水平フィルタH-A(1209)および水平フィルタH-B(1210)の周波数特性は、図9および図10を用いて説明したフィルタAおよびフィルタBの周波数特性を水平周波数特性に読み替えるだけであるため、図示および説明は省略する。
【0076】
また、2次元サンプリングレート変換における出力画素番号、係数kVおよび係数kH、各フィルタのタップ係数、入力画素番号の具体例については、図8を用いて説明した1次元サンプリングレート変換における各値の求め方を、水平方向および垂直方向のそれぞれに適用すればよいため、図示および説明は省略する。
【0077】
また、水平方向の倍率と垂直方向の倍率(すなわち、各方向のUとDの値)を独立して設定可能であることは明らかであり、図9および図10を用いて説明したように、各方向の倍率に応じて、それぞれ適したフィルタの周波数特性とすればよい。
【0078】
図19および図21を用いて、図12に示したサンプリングレート変換装置と等価な処理を、ソフトウェアと協働する制御部により実現する画像信号処理方法について説明する。
【0079】
まず、図19を用いて、本実施例に係る画像信号処理方法を実現するためのサンプリングレート変換装置について説明する。図19に示すサンプリングレート変換装置は、例えばテレビジョン放送信号などの画像信号が入力される入力部(1)と、入力部(1)から入力された信号を処理するためのソフトウェアを記憶する記憶部(11)と、記憶部(11)に記憶されるソフトウェアと協働して入力部(1)から入力された信号について画像信号処理を行う制御部(10)と、入力部(1)から入力されるデータを一時的に格納するためのバッファ#1(31)と、制御部(10)が当該サンプリングレート変換処理においてデータを一時的に格納するためのバッファ#2(32)、バッファ#3(33)、バッファ#4(34)、バッファ#5(35)、バッファ#6(36)と、制御部(10)から出力部(3)に出力されるサンプリングレート変換処理後の信号を一時的に格納するためのバッファ#7(37)とを備える。
【0080】
ここで、データを一時的に格納するバッファ#1(31)、バッファ#2(32)、バッファ#3(33)、バッファ#4(34) 、バッファ#5(35)、バッファ#6(36)、バッファ#7(37)およびソフトウェアを記憶する記憶部(11)は、それぞれが個別のメモリチップを用いて構成してもよいし、1個若しくは複数個のメモリチップを用い、各データアドレスを分割して使用する構成にしてもよい。
【0081】
同図において、入力部(1)から入力される画像信号について、制御部(10)が記憶部(11)に記憶されるソフトウェアと協働してサンプリングレート変換処理を行い、表示部(3)に出力する。当該サンプリングレート変換処理の詳細は図21を用いて説明する。
【0082】
図21に、本実施例に係るサンプリングレート変換方法のフローチャートの一例を示す。図21のフローチャートは、ステップ(2101)から開始し、ステップ(2102)にて入力信号(画素)をバッファ#1(31)に書き込む。このとき、入力画像を構成するフレームごとに、入力信号(画素)をバッファに書き込んでもよいし、入力画像を小領域に分割したブロックごとに入力信号(画素)をバッファに書き込んでもよい。
【0083】
続いて、ステップ(2103)にて、バッファ#1(31)の信号に垂直フィルタV-A(1201)を作用させ、その出力をバッファ#2(32)に書き込む。一方、ステップ(2104)にて、バッファ#1(31)の信号に垂直フィルタV-B(1202)を作用させ、その出力をバッファ#3(33)に書き込む。ここで、垂直フィルタV-A(1201)および垂直フィルタV-B(1202)の特性は、図5、図8、図9、図10を用いて説明した各特性を垂直方向の特性に読み替えることによってそのまま用いることができるため、図示および説明は省略する。また、ステップ(2105)にて、出力信号(画素)と入力信号(画素)の垂直位置関係をもとに、出力信号(画素)ごとに係数kVを生成する。このときの係数生成方法は、図11、図18に示した方法をそのまま用いることができるため、図示および説明は省略する。
【0084】
続くステップ(2106)では、上記のようにして求めた係数kVの値に応じて、バッファ#2(32)とバッファ#3(33)の各信号を加重加算してバッファ#4(34)に書き込む。このときの加重加算の方法は、図12に示したように、垂直フィルタV-A(1201)の出力(=バッファ#2(32))に係数(1-kV)を乗算し、垂直フィルタV-B(1202)の出力(=バッファ#3(33))に係数kを乗算し、両者を加算することによって、バッファ#4(34)に書き込む信号とする。
【0085】
続いて、ステップ(2107)にて、バッファ#4(34)の信号に水平フィルタH-A(1209)を作用させ、その出力をバッファ#5(35)に書き込む。一方、ステップ(2108)にて、バッファ#4(34)の信号に水平フィルタH-B(1210)を作用させ、その出力をバッファ#6(36)に書き込む。ここで、水平フィルタH-A(1209)および水平フィルタH-B(1210)の特性は、図5、図8、図9、図10を用いて説明した各特性を水平方向の特性に読み替えることによってそのまま用いることができるため、図示および説明は省略する。また、ステップ(2109)にて、出力信号(画素)と入力信号(画素)の水平位置関係をもとに、出力信号(画素)ごとに係数kHを生成する。このときの係数生成方法は、図11、図18に示した方法をそのまま用いることができるため、図示および説明は省略する。
【0086】
続くステップ(2110)では、上記のようにして求めた係数kHの値に応じて、バッファ#5(35)とバッファ#6(36)の各信号を加重加算してバッファ#7(37)に書き込み、ステップ(2111)にて終了する。
【0087】
このときの加重加算の方法は、図12に示したように、水平フィルタH-A(1209)の出力(=バッファ#5(35))に係数(1-kH)を乗算し、水平フィルタH-B(1210)の出力(=バッファ#6(36))に係数kHを乗算し、両者を加算する。当該加重加算により得られた信号を出力信号とする。
【0088】
なお、ステップ(2103)(2104)(2105)、およびはステップ(2107)(2108)(2109)は、それぞれ互いに独立した処理のため、各ステップを順番に処理してもよいし、各ステップを同時に並行して処理してもよい。また、垂直方向の処理を行うステップ(2103)(2104)(2105)(2106)と、水平方向の処理を行うステップ(2107)(2108)(2109)(2110)の処理の順番を入れ替えても同様の結果を得ることができる。以上述べた処理ステップにより、本実施例に係るサンプリングレート変換方法を実施できる。
【0089】
以上述べたように、実施例2に係るサンプリングレート変換装置およびサンプリングレート変換方法は、固定の特性を持つ垂直フィルタと水平フィルタを用いて、それぞれの出力を加重加算するだけで2次元の任意のサンプリングレート変換を実現できるため、従来技術よりもハードウェア規模およびソフトウェア処理量が小さくなる効果がある。
【0090】
また、サンプリングレートの倍率(U/D)が変化しても、拡大の場合、すなわちU/D倍においてU>Dの場合には、フィルタV-A(1201)、フィルタV-B(1202)、フィルタH-A(1209)、フィルタH-B(1210)の各特性を固定したまま、制御部(1203)と係数生成部(1204)(1211)の動作を補間位置情報(1208)(1215)に応じて変更するだけで2次元のサンプリングレート変換処理を実現することが可能になるため、従来技術よりも倍率(U/D)を連続的に変化させることが容易になる効果がある。
【0091】
また、出力画素ごとにフィルタV-A(1201)、フィルタV-B(1202)、フィルタH-A(1209)、フィルタH-B(1210)の各特性を変更する必要がないため、従来技術よりも制御部(1203)(10)の動作を単純にできる効果がある。
【実施例3】
【0092】
次に、図13を用いて、本発明のサンプリングレート変換装置に係る実施例3の構成および動作について説明する。本実施例は、図12を用いて説明した2次元のサンプリングレート変換の構成を変形し、例えば画像の回転のような複雑な変形にも対応できるようにしたサンプリングレート変換装置の構成例である。
【0093】
図13において、本実施例に係るサンプリングレート変換装置は、例えばテレビジョン放送信号などの動画像のフレーム列が入力される入力部(1)と、この入力部(1)から入力されたフレームの画素数を2次元方向に変換するためのサンプリングレート変換部(7)と、更にこのサンプリングレート変換部(7)によって画素数が変換されたフレームに基づき画像を表示する表示部(3)とを備えている。この表示部(3)として、例えばプラズマディスプレイパネル、液晶表示パネル、もしくは電子/電界放出型ディスプレイパネルが用いられる。以下、サンプリングレート変換部(7)の詳細について説明する。
【0094】
図13において、入力部(1)から入力した信号を、垂直フィルタV-A(1301-a)と垂直フィルタV-B(1301-b)に入力する。ここで、垂直フィルタV-A(1301-a)は、タップ数が奇数であり、なおかつタップ係数が上下対称の1次元フィルタである。また、垂直フィルタV-B(1301-b)は、タップ数が偶数であり、なおかつタップ係数が上下対称の1次元フィルタである。続いて、垂直フィルタV-A(1301-a)の出力信号を、水平フィルタH-A(1302-a)と水平フィルタH-B(1302-b)に入力する。ここで、水平フィルタH-A(1302-a)は、タップ数が奇数であり、なおかつタップ係数が左右対称の1次元フィルタである。また、水平フィルタH-B(1302-b)は、タップ数が偶数であり、なおかつタップ係数が左右対称の1次元フィルタである。
【0095】
水平フィルタH-A(1302-a)と水平フィルタH-B(1302-b)の各出力は、それぞれバッファ(1313)(1314)を介して、乗算器(1303)(1304)に入力される。ここで、制御部(1309)にて生成した補間すべき画素の水平位置および垂直位置を表す情報(補間位置情報(1310))に基づき、係数生成部(1311)は、係数k1および係数k2を生成する。乗算器(1303)(1304)は、係数k1および係数k2のそれぞれをバッファ(1313)(1314)の出力と乗算し、加算器(1308)に入力する。
【0096】
一方、垂直フィルタV-B(1301-b)の出力信号は、水平フィルタH-A(1305-a)と水平フィルタH-B(1305-b)に入力される。ここで、水平フィルタH-A(1305-a)は、タップ数が奇数であり、なおかつタップ係数が左右対称の1次元フィルタであり、水平フィルタH-A(1302-a)と同一の特性にすればよい。また、水平フィルタH-B(1305-b)は、タップ数が偶数であり、なおかつタップ係数が左右対称の1次元フィルタであり、水平フィルタH-B(1302-b)と同一の特性とする。
【0097】
水平フィルタH-A(1305-a)と水平フィルタH-B(1305-b)の各出力は、それぞれバッファ(1315)(1316)を介して、乗算器(1306)(1307)に入力される。ここで、制御部(1309)にて生成した補間すべき画素の水平位置および垂直位置を表す情報(補間位置情報(1310))に基づき、係数生成部(1311) は、係数k3および係数k4を生成する。乗算器(1306)(1307)は、係数k3および係数k4のそれぞれをバッファ(1315)(1316)の出力と乗算し、加算器(1308)に入力する。
【0098】
次に、加算器(1308)では、前記4つの入力信号を加算してサンプリングレート変換装置(7)の出力とする。なお、前記垂直フィルタV-A(1301-a)と水平フィルタH-A(1302-a)、垂直フィルタV-A(1301-a)と水平フィルタH-B(1302-b)、垂直フィルタV-B(1301-b)と水平フィルタH-B(1305-a)、垂直フィルタV-B(1301-b)と水平フィルタH-B(1305-b)のそれぞれを予め畳み込み演算することにより、それぞれ1個の2次元フィルタとしてもよい。この場合の各2次元フィルタのタップ係数およびインパルス応答は、それぞれもとの1次元フィルタのタップ係数およびインパルス応答を畳み込んだ結果と等しい。
【0099】
ここで、係数k1、係数k2、係数k3、係数k4を、係数生成手順(1312)に示すように、k1=(1-kV)*(1-kH)、k2=(1-kV)*kH、k3=kV*(1-kH)、k4=kV*kHとおくことにより、図12に示したサンプリングレート変換装置と等価な動作を実現できる。さらに、バッファ(1313)(1314)(1315)(1316)および係数k1、係数k2、係数k3、係数k4を用いることにより、補間すべき画素の水平位置および垂直位置が画素ごとに複雑に変換するような変形、例えば回転などに対応できるようになる。
【0100】
ここで、図13に示したバッファ(1313)(1314)(1315)(1316)をフレーム単位のバッファとし、データを読み出す前に、同一アドレスに別のデータを書き込まないように制御できるように構成する。すなわち、バッファ(1313)(1314)(1315)(1316)へのデータ書込みの動作と、バッファ(1313)(1314)(1315)(1316)からのデータ読み出しの動作を、フレーム単位で独立して実行できるように構成する。例えば、2つの同等なフレームバッファを用意しておき、これらを適宜切り替えてデータ読み出しとデータ書込みの2つの処理を並行化する一般的なダブルバッファ構成を用いれば、上記制御を実現できる。
【0101】
図16は、前述した図13のサンプリングレート変換装置を用いて、(a)入力画像を回転させて(b)出力画像を得る応用例の動作を示したものである。同図において、(a)入力画像のフレーム上の画素位置(座標)を(x1,x2)とし、(b)出力画像のフレーム上の画素位置(座標)を(x2,y2)とし、その2つの画素位置が互いに対応しているものとする。同図(a)(b)のように、画素位置(x0,y0)を回転中心とし、回転角θの回転を行う場合には、入力画像の画素位置(x1,y1)と出力画像の画素位置(x2,y2)の間に同図(c)に示す関係式が成り立つ。この関係式を変形すると、同図(d)のようになる。
【0102】
ここで、(b)出力画像のフレーム上の画素位置(x2,y2)を、例えば左上から右下に向かってラスタ順にスキャンすると、同図(d)の関係式より、(a)入力画像のフレーム上の対応する画素位置(x1,y1)が得られることになる。このとき、図11に示した出力画素(1102)の画素位置(x2,y2)を図16(d)の関係式によって得られた画素位置(x1,y1)と読みかえることにより、図18に示したフローチャートを用いて、図16における(b)出力画像のフレーム上の画素位置(x2,y2)に対応した係数kVおよび係数kHを求めることができる。
【0103】
このようにして求められた係数kVおよび係数kHから、図13に示した係数生成手順(1312)に従って、係数k1=(1-kV)*(1-kH)、係数k2=(1-kV)*kH、係数k3=kV*(1-kH)、係数k4=kV*kHを求め、乗算器(1303)(1304)(1306)(1307)と加算器(1308)を用いて各バッファ(1313)(1314)(1315)(1316)の出力を加重加算することにより、図16における(a)入力画像を回転させて(b)出力画像を容易に得ることができる。
【0104】
なお、この回転によって、画像が拡大若しくは縮小されるわけではないが、もともとの実画素が存在しない位置の出力画素を生成するような画像の変形に、上記と同様のサンプリングレート変換を適用することができる。
【0105】
なお、図13に示したバッファ(1313)(1314)(1315)(1316)は、前述したようなフレーム単位のバッファに限定されるわけではなく、例えば1フレームを小領域に分割したブロック単位でデータを格納できるように構成してもよい。
【0106】
図22および図23を用いて、図13に示したサンプリングレート変換装置と等価な処理を、ソフトウェアと協働する制御部により実現する画像信号処理方法について説明する。
【0107】
まず、図22を用いて、本実施例に係る画像信号処理方法を実現するためのサンプリングレート変換装置について説明する。図22に示すサンプリングレート変換装置は、例えばテレビジョン放送信号などの画像信号が入力される入力部(1)と、入力部(1)から入力された信号を処理するためのソフトウェアを記憶する記憶部(11)と、記憶部(11)に記憶されるソフトウェアと協働して入力部(1)から入力された信号について画像信号処理を行う制御部(10)と、入力部(1)から入力されるデータを一時的に格納するためのバッファ#1(41)と、制御部(10)が当該サンプリングレート変換処理においてデータを一時的に格納するためのバッファ#2(42)、バッファ#3(43)、バッファ#4(44)、バッファ#5(45)と、制御部(10)から出力部(3)に出力されるサンプリングレート変換処理後の信号を一時的に格納するためのバッファ#6(46)とを備える。ここで、データを一時的に格納するバッファ#1(41)、バッファ#2(42)、バッファ#3(43)、バッファ#4(44) 、バッファ#5(45)、バッファ#6(46)およびソフトウェアを記憶する記憶部(11)は、それぞれが個別のメモリチップを用いて構成してもよいし、1個若しくは複数個のメモリチップを用い、各データアドレスを分割して使用する構成にしてもよい。
【0108】
同図において、入力部(1)から入力される画像信号について、制御部(10)が記憶部(11)に記憶されるソフトウェアと協働してサンプリングレート変換処理を行い、表示部(3)に出力する。当該サンプリングレート変換処理の詳細は図23を用いて説明する。
【0109】
図23に、本実施例に係るサンプリングレート変換方法のフローチャートの一例を示す。図23のフローチャートは、ステップ(2301)から開始し、ステップ(2302)にて入力信号(画素)をバッファ#1(41)に書き込む。このとき、入力画像を構成するフレームごとに、入力信号(画素)をバッファに書き込んでもよいし、入力画像を小領域に分割したブロックごとに入力信号(画素)をバッファに書き込んでもよい。続いて、ステップ(2303)にて、バッファ#1(41)の信号に垂直フィルタV-A(1301-a)と水平フィルタH-A(1302-a)を作用させ、その出力をバッファ#2(42)に書き込む。また、ステップ(2304)にて、バッファ#1(41)の信号に垂直フィルタV-A(1301-a)と水平フィルタH-B(1302-b)を作用させ、その出力をバッファ#3(43)に書き込む。また、ステップ(2305)にて、バッファ#1(41)の信号に垂直フィルタV-B(1301-b)と水平フィルタH-A(1305-a)を作用させ、その出力をバッファ#4(44)に書き込む。また、ステップ(2306)にて、バッファ#1(41)の信号に垂直フィルタV-B(1301-b)と水平フィルタH-B(1305-b)を作用させ、その出力をバッファ#5(45)に書き込む。
【0110】
ここで、水平フィルタH-A(1302-a)とH-A(1305-a)、および水平フィルタH-B(1305-b)とH-B(1305-b)は、それぞれ同一の特性とする。また、ステップ(2302)(2303)(2304)(2305)におけるそれぞれの垂直フィルタと水平フィルタの処理順序を逆にしても同等の効果が得られることは明らかである。また、各フィルタの特性は、図5、図8、図9、図10を用いて説明した各特性を垂直方向若しくは水平方向の特性に読み替えることによってそのまま用いることができるため、図示および説明は省略する。
【0111】
また、ステップ(2307)にて、出力信号(画素)と入力信号(画素)の位置関係をもとに、出力信号(画素)ごとに係数k1、係数k2、係数k3、係数k4を生成する。このときの係数生成方法は、図6、図17、図7、および図13(1312)に示した方法をそのまま用いることができるため、図示および説明は省略する。
【0112】
続くステップ(2308)では、上記のようにして求めた係数k1、係数k2、係数k3、係数k4の値に応じて、バッファ#2(42)、バッファ#3(43)、バッファ#4(44)、バッファ#5(45)の各信号を加重加算してバッファ#6(46)に出力し、ステップ(2309)にて終了する。
【0113】
このときの加重加算の方法は、図13に示したように、バッファ(1313)(=バッファ#2(42))の出力に係数k1を乗算し、バッファ(1314)(=バッファ#3(43))の出力に係数k2を乗算し、バッファ(1315)(=バッファ#3(43))の出力に係数k3を乗算し、バッファ(1316)(=バッファ#4(44))の出力に係数k4を乗算し、その結果すべてを加算する。この加重加算により算出した信号を出力信号とする。
【0114】
なお、ステップ(2303)(2304)(2305)(2306)(2307)は互いに独立した処理のため、各ステップを順番に処理してもよいし、各ステップを同時に並行して処理してもよい。以上述べた処理ステップにより、本実施例に係るサンプリングレート変換方法を実施できる。
【0115】
また、本発明は、画像の回転への用途に限定されるわけではなく、例えば図16(a)に示す画像と同図(b)に示す画像の間の対応する画素位置を、画素単位の位置推定技術によって推定し、同図(a)の画像をもとにして同図(b)に近い画像を生成する用途にも用いることができる。すなわち、例えば同図(a)と同図(b)が連続するフレームの場合には、上記位置推定技術は、画素単位の動きベクトル探索に相当し、同図(a)の画像をもとにして同図(b)に近い画像を生成する動作は、上記動きベクトル探索の結果を用いて動き補償する動作となる。ここで、上記位置推定技術として、例えば参考文献1や参考文献2に記載されているような方法をそのまま用いればよいため、図示および説明を省略する。
[参考文献1] 安藤繁 “画像の時空間微分算法を用いた速度ベクトル分布計測システム”,計測自動制御学会論文集,pp.1330-1336, Vol.22, No.12,1986
[参考文献2] 小林弘幸ほか “DCT変換に基づく画像の位相限定相関法”, 信学技法 IEICE Technical Report ITS2005-92,IE2005-299(2006-02), pp.73-78
以上述べたように、実施例3に係るサンプリングレート変換装置およびサンプリングレート変換方法は、実施例2に係るサンプリングレート変換装置およびサンプリングレート変換方法の効果に加えて、例えば画像の回転や、フレーム間の位置推定を用いた動き補償のような複雑な変形にも対応できるようになるという効果を有する。
【0116】
なお、本発明の各実施例は、上記実施例で説明した画像表示装置以外に、例えば、DVDプレーヤー、磁気ディスクプレーヤー、もしくは半導体メモリプレーヤーにも同様に適用できる。また例えば、1セグ放送を受信するための携帯画像表示端末(例えば携帯電話)にも適用できる。
【0117】
また画像フレームとしては、テレビジョン放送信号以外の信号の画像フレームを用いてもよい。また、例えば、インターネットを介して送信されるストリーミング画像や、DVDプレーヤーやHDDプレーヤーから再生された画像の画像フレームを用いてもよい。
【0118】
また、上述した各実施例では、画像をフレーム単位でサンプリングレート変換する場合を例に挙げて説明した。しかしサンプリングレート変換の対象は、必ずしもフレーム全体でなくとも良い。例えば、入力画像または入力映像のフレームの一部分をサンプリングレート変換の対象としても良い。すなわち、入力映像のフレームを対象として上述した本発明の一の実施例のサンプリングレート変換を実施すれば、入力画像または入力映像の一部分の拡大画像、縮小画像、回転画像、若しくは変形画像を得ることができる。これは、例えば、映像の一部分の拡大表示、縮小表示、回転表示、変形表示などに適用できる。
【0119】
また、上記説明では、水平方向と垂直方向からなる2次元のサンプリングレート変換を行う場合について説明したが、本発明はこれに限定されるわけではなく、例えば、水平方向と時間方向(フレーム方向)からなる2次元のサンプリングレート変換や、垂直方向と時間方向(フレーム方向)からなる2次元のサンプリングレート変換に適用することも可能である。
【0120】
また、本明細書の各記載及び各図面における「画素」という表現は、サンプル信号、若しくはサンプル点という意味も含み、デジタル化された音声信号列や、センサ等から得られた連続するデータ列などの意味も含む。従って、上述した1次元方向のサンプリングレート変換装置若しくはサンプリングレート変換方法は、音声信号やデータ列のサンプリングレート変換装置若しくはサンプリングレート変換方法として、そのまま適用できる。
【図面の簡単な説明】
【0121】
【図1】本発明に係る実施例1の説明図である。
【図2】一般的なサンプリングレート変換の動作の一例を説明する図である
【図3】従来技術の構成を説明した図である。
【図4】従来技術の動作を説明した図である。
【図5】本発明に係る実施例1の説明図である。
【図6】本発明に係る実施例1の説明図である。
【図7】本発明に係る実施例1の説明図である。
【図8】本発明に係る実施例1の説明図である。
【図9】本発明に係る実施例1の説明図である。
【図10】本発明に係る実施例1の説明図である。
【図11】本発明に係る実施例2の説明図である。
【図12】本発明に係る実施例2の説明図である。
【図13】本発明に係る実施例3の説明図である。
【図14】本発明に係る実施例1の説明図である。
【図15】本発明に係る実施例1の処理の一例の説明図である。
【図16】本発明に係る実施例3の処理の一例の説明図である。
【図17】本発明に係る実施例1の説明図である。
【図18】本発明に係る実施例1の説明図である。
【図19】本発明に係る実施例2の説明図である。
【図20】本発明に係る実施例1の説明図である。
【図21】本発明に係る実施例2の説明図である。
【図22】本発明に係る実施例3の説明図である。
【図23】本発明に係る実施例3の説明図である。
【符号の説明】
【0122】
1…入力部;2,4,7…サンプリングレート変換部;3…表示部;10,103,306,310,1203,1309…制御部;11…記憶部;21,22,23,24,31,32,33,34,35,36,37,41,42,43,44,45,46,1313,1314, 1315,1316…バッファ;101,102, 1201,1202,1209,1210,1301,1302,1305…フィルタ;104,1204,1211,1311…係数生成部;105,106,1205,1206,1212,1213,1303,1304,1306,1307…乗算器;107,1207,1214,1308…加算器;108,1208,1215,1310…補間位置情報;201,601,1101…実画素;202…零点;203…補間画素;204,602,1102…出力画素;301…アップサンプラ;302…補間フィルタ;303…ダウンサンプラ;304,307…部分フィルタ;305…切替器;308…タップ係数発生器;501…タップ係数;502,605,702,703,1103,1104,1107,1108…対称の中心;603,604,701,1105,1106…係数;901, 1001…ナイキスト周波数;902,904,1002,1004…周波数特性, 1003, 1005…カットオフ周波数;1216…垂直処理部;1217…水平処理部;1312…係数生成手順。
【特許請求の範囲】
【請求項1】
デジタル信号のサンプリングレートを変換する装置において、
前記デジタル信号のデータが入力される入力部と、
第1の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算部と、
第2の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算部と、
前記第1の演算部の出力および第2の演算部の出力を混合する混合部と、
該混合部からのデータを出力する出力部と、
を備えることを特徴とするサンプリングレート変換装置。
【請求項2】
前記第1の対称軸の位置は、前記入力データの画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの各画素位置の中央と一致することを特徴とする、請求項1記載のサンプリングレート変換装置。
【請求項3】
前記混合部は、前記入力データの画素位置と前記出力部から出力されうるデータの画素位置との関係から定められる所定の混合比に基づいて、前記第1の演算部の出力および第2の演算部の出力を混合することを特徴とする、請求項1記載のサンプリングレート変換装置。
【請求項4】
第1の方向と第2の方向からなる2次元のサンプリング点を持ったデジタル信号のサンプリングレートを変換する装置において、
前記デジタル信号のデータが入力される入力部と、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算部と、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算部と、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第3の演算部と、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第4の演算部と、
前記第1乃至第4の演算部のそれぞれの出力を混合する混合部と、
該混合部からのデータを出力する出力部と、
を備えることを特徴とするサンプリングレート変換装置。
【請求項5】
前記第1の対称軸の位置は、前記入力データの第1の方向における画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの第1の方向における各画素位置の中央と一致し、前記第3の対称軸の位置は、前記入力データの第2の方向における画素位置と一致し、前記第4の対称軸の位置は、隣接する2個の前記入力データの第2の方向における各画素位置の中央と一致することを特徴とする、請求項4記載のサンプリングレート変換装置。
【請求項6】
前記混合部は、出力データの画素位置と入力データの画素位置の関係から定められる所定の混合比に基づいて、前記第1乃至第4の演算部のそれぞれの出力を混合することを特徴とする、請求項4記載のサンプリングレート変換装置。
【請求項7】
デジタル信号のサンプリングレートを変換する方法において、
前記デジタル信号のデータが入力される入力ステップと、
第1の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算ステップと、
第2の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算ステップと、
前記第1の演算ステップの出力および第2の演算ステップの出力を混合する混合ステップと、
該混合ステップからのデータを出力する出力ステップと、
を備えることを特徴とするサンプリングレート変換方法。
【請求項8】
前記第1の対称軸の位置は、前記入力データの画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの各画素位置の中央と一致することを特徴とする、請求項7記載のサンプリングレート変換方法。
【請求項9】
前記混合ステップは、前記入力データの画素位置と前記出力ステップにおいて出力されうるデータの画素位置との関係から定められる所定の混合比に基づいて、前記第1の演算ステップの出力および第2の演算ステップの出力を混合することを特徴とする、請求項7記載のサンプリングレート変換方法。
【請求項10】
第1の方向と第2の方向からなる2次元のサンプリング点を持ったデジタル信号のサンプリングレートを変換する方法において、
前記デジタル信号のデータが入力される入力ステップと、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算ステップと、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算ステップと、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第3の演算ステップと、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第4の演算ステップと、
前記第1乃至第4の演算ステップのそれぞれの出力を混合する混合ステップと、
該混合ステップからのデータを出力する出力ステップと、
を備えることを特徴とするサンプリングレート変換方法。
【請求項11】
前記第1の対称軸の位置は、前記入力データの第1の方向における画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの第1の方向における各画素位置の中央と一致し、前記第3の対称軸の位置は、前記入力データの第2の方向における画素位置と一致し、前記第4の対称軸の位置は、隣接する2個の前記入力データの第2の方向における各画素位置の中央と一致することを特徴とする、請求項10記載のサンプリングレート変換方法。
【請求項12】
前記混合ステップは、出力データの画素位置と入力データの画素位置の関係から定められる所定の混合比に基づいて、前記第1乃至第4の演算ステップのそれぞれの出力を混合することを特徴とする、請求項10記載のサンプリングレート変換方法。
【請求項1】
デジタル信号のサンプリングレートを変換する装置において、
前記デジタル信号のデータが入力される入力部と、
第1の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算部と、
第2の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算部と、
前記第1の演算部の出力および第2の演算部の出力を混合する混合部と、
該混合部からのデータを出力する出力部と、
を備えることを特徴とするサンプリングレート変換装置。
【請求項2】
前記第1の対称軸の位置は、前記入力データの画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの各画素位置の中央と一致することを特徴とする、請求項1記載のサンプリングレート変換装置。
【請求項3】
前記混合部は、前記入力データの画素位置と前記出力部から出力されうるデータの画素位置との関係から定められる所定の混合比に基づいて、前記第1の演算部の出力および第2の演算部の出力を混合することを特徴とする、請求項1記載のサンプリングレート変換装置。
【請求項4】
第1の方向と第2の方向からなる2次元のサンプリング点を持ったデジタル信号のサンプリングレートを変換する装置において、
前記デジタル信号のデータが入力される入力部と、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算部と、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算部と、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第3の演算部と、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第4の演算部と、
前記第1乃至第4の演算部のそれぞれの出力を混合する混合部と、
該混合部からのデータを出力する出力部と、
を備えることを特徴とするサンプリングレート変換装置。
【請求項5】
前記第1の対称軸の位置は、前記入力データの第1の方向における画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの第1の方向における各画素位置の中央と一致し、前記第3の対称軸の位置は、前記入力データの第2の方向における画素位置と一致し、前記第4の対称軸の位置は、隣接する2個の前記入力データの第2の方向における各画素位置の中央と一致することを特徴とする、請求項4記載のサンプリングレート変換装置。
【請求項6】
前記混合部は、出力データの画素位置と入力データの画素位置の関係から定められる所定の混合比に基づいて、前記第1乃至第4の演算部のそれぞれの出力を混合することを特徴とする、請求項4記載のサンプリングレート変換装置。
【請求項7】
デジタル信号のサンプリングレートを変換する方法において、
前記デジタル信号のデータが入力される入力ステップと、
第1の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算ステップと、
第2の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算ステップと、
前記第1の演算ステップの出力および第2の演算ステップの出力を混合する混合ステップと、
該混合ステップからのデータを出力する出力ステップと、
を備えることを特徴とするサンプリングレート変換方法。
【請求項8】
前記第1の対称軸の位置は、前記入力データの画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの各画素位置の中央と一致することを特徴とする、請求項7記載のサンプリングレート変換方法。
【請求項9】
前記混合ステップは、前記入力データの画素位置と前記出力ステップにおいて出力されうるデータの画素位置との関係から定められる所定の混合比に基づいて、前記第1の演算ステップの出力および第2の演算ステップの出力を混合することを特徴とする、請求項7記載のサンプリングレート変換方法。
【請求項10】
第1の方向と第2の方向からなる2次元のサンプリング点を持ったデジタル信号のサンプリングレートを変換する方法において、
前記デジタル信号のデータが入力される入力ステップと、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第1の演算ステップと、
第1の方向において第1の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第2の演算ステップと、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第3の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第3の演算ステップと、
第1の方向において第2の対称軸を中心に係数値が対称形をなすタップ係数と、第2の方向において第4の対称軸を中心に係数値が対称形をなすタップ係数と、前記入力データとの畳み込み演算結果を出力する第4の演算ステップと、
前記第1乃至第4の演算ステップのそれぞれの出力を混合する混合ステップと、
該混合ステップからのデータを出力する出力ステップと、
を備えることを特徴とするサンプリングレート変換方法。
【請求項11】
前記第1の対称軸の位置は、前記入力データの第1の方向における画素位置と一致し、前記第2の対称軸の位置は、隣接する2個の前記入力データの第1の方向における各画素位置の中央と一致し、前記第3の対称軸の位置は、前記入力データの第2の方向における画素位置と一致し、前記第4の対称軸の位置は、隣接する2個の前記入力データの第2の方向における各画素位置の中央と一致することを特徴とする、請求項10記載のサンプリングレート変換方法。
【請求項12】
前記混合ステップは、出力データの画素位置と入力データの画素位置の関係から定められる所定の混合比に基づいて、前記第1乃至第4の演算ステップのそれぞれの出力を混合することを特徴とする、請求項10記載のサンプリングレート変換方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2009−141445(P2009−141445A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−312981(P2007−312981)
【出願日】平成19年12月4日(2007.12.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成19年12月4日(2007.12.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
[ Back to top ]