説明

フレームレート変換方法,フレームレート変換装置およびフレームレート変換プログラム

【課題】高フレームレート映像信号のフレームをフィルタリングに基づくダウンサンプリングすることで得られた低フレームレート映像信号を符号化する場合に,主観画質の保持を図りながら符号量を低く抑えることができるようにする。
【解決手段】フィルタリングにより生成されるフレームを予測対象フレームとし,生成済みのフレームを参照フレームとして動きベクトルを探索し,その動き補償予測誤差およびジャーキネス評価尺度からなるコスト関数を最小化するフィルタ係数を算出することを繰り返すことで,最適なフィルタ係数でフィルタリングする場合の動きベクトルを特定することを,ダウンサンプリング対象の全フレームについて実行する。続いて,特定した動きベクトルを用いることで算出される全フレームに対してのコスト関数値の総和を最小化するフィルタ係数を算出することで,最終的なフィルタ係数を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,高フレームレート映像信号の複数フレームを1つのフレームに置き換えるフィルタリングを実行することで,高フレームレート映像信号から低フレームレート映像信号への変換を実行するフレームレート変換方法およびその装置と,そのフレームレート変換方法の実現に用いられるフレームレート変換プログラムとに関する。
【背景技術】
【0002】
近年,臨場感あふれる大画面のスポーツ映像やデジタルシネマに代表される超高画質映像への期待が高まっている。これを受けて,映像の高画質化に関する研究が精力的に行われている。
【0003】
超高画質映像の実現には次の四要素が必要である。すなわち,空間解像度,画素値深度,色再現性,時間解像度である。これを受けて,前者の三要素については,デジタルシネマ等の応用およびナチュラルビジョンプロジェクトにおいて検討が進められている。また,被写体の自然な動きを表現するために不可欠な時間解像度の向上,すなわち,映像の高フレームレート化についても検討がなされている。
【0004】
映像の入力・出力システムのフレームレートの上限は非対称である。現在,撮像系としては,1000fps(frame/sec) を超える高フレームレート映像を取得可能な高速度カメラが利用可能である。ただし,こうした高速度カメラで撮影された映像はスロー再生用途で用いられている。
【0005】
一方,現行のディスプレイの上限は120fps程度である。したがって,高速度カメラで撮影された映像ソースは,実時間再生を目的とした表示形態では,フレームレートを間引く必要がある。
【0006】
このようなことを背景にして,従来技術では,図15に示すように,ダウンサンプリング後のフレーム時間間隔が等間隔になるような間引きによるダウンサンプリングが検討されてきた(例えば,特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−201165号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら,従来技術のような単純なフレーム間引き処理では,時間方向のエイリアシングに起因する画質劣化が問題となる。こうした問題を回避するためには,時間軸方向の帯域制限フィルタリングが必要である。
【0009】
一方,動き補償フレーム間予測を用いた符号化器の場合,時間方向のエイリアシングの低減は,予測誤差の低減とは直接的には結びつかない。つまり,時間方向のダウンサンプリングフィルタに関して,符号化効率の観点から最適化の余地があることになる。
【0010】
従来の30fps,60fpsのフレームレートの映像の場合には,フィルタリングのための十分なサンプル(すなわちフレーム)が確保できないため,フィルタの特性を高精度に近似することが困難であった。例えば,60fpsの映像信号をフィルタリングして30fpsの映像信号を生成する場合,フィルタリングの対象フレームに重複を許さない条件下では,フィルタリングの対象となるフレームは2フレームに限定される。
【0011】
これに対し,高フレームレート映像の場合,フィルタ設計の自由度は拡張される。例えば,1000fpsの映像信号をフィルタリングして62.5fpsの映像信号を生成する場合,フィルタリングの対象フレームに重複を許さない条件下であっても,16フレームをフィルタリングの対象とすることができる。したがって,高フレームレート映像を入力してフィルタリングにより低フレームレート映像を得る場合,フィルタリング設計の自由度が高まる。
【0012】
そこで,動き補償予測誤差を最小化するように,フィルタ係数を設計する方法が検討された。しかし,この方式では,フレームごとに独立にフィルタ係数を設定している。このため,シーケンス全体での動き補償予測誤差の最小化は保証していない。また,ダウンサンプリングのジャーキネスを考慮できておらず,ダウンサンプリング後のシーケンスの画質が劣化する可能性がある。ここで,ジャーキネスとは,動きのカクツキに起因する画質劣化を表す。
【0013】
本発明はかかる事情に鑑みてなされたものであって,高フレームレート映像信号に対してダウンサンプリングにより得られる低フレームレート映像信号を入力とする映像符号化処理において,主観画質を保持しつつ,ダウンサンプリング後の低フレームレート映像信号の全フレームの符号化効率を考慮した形で,低フレームレート映像信号を決定する効率的なフレームレート変換のためのフィルタリング技術を確立することを目的とする。
【課題を解決するための手段】
【0014】
フレームレートの変換対象となる高フレームレート映像信号について,フレーム間隔をδt として,時刻t=jδt (j=0, 1, …)のフレームにおける位置xの画素値をf(x,t)(x=0, 1, … ,X−1)と表す。
【0015】
この画素信号f(x,t)を,ダウンサンプリングによりフレーム数を1/Mに変換する場合を考える。ダウンサンプリング前後のフレームレートの比Mをダウンサンプリング比と呼ぶ。つまり,この変換は,フレームレートを“1/δt ”から“1/(Mδt )”へ変換することを想定している。
【0016】
なお,以下では,簡単のために一次元信号を例にとり説明するが,同様の議論は,容易に二次元信号にも拡張可能である。
【0017】
フレームレートの変換方法としては,フレーム間引き,単純平均の方法がある。例えばフレーム間引きでは,次のようなフレームをダウンサンプリング後のフレームとする。
【0018】
f(x,iMδt ) (i=0,1,2,…)
また,単純平均では,次のような式で表されるフレームをダウンサンプリング後のフレームとする。
【0019】
【数1】

【0020】
しかしながら,フレーム間引きと単純平均のいずれの方法も,動き補償を伴う動画像符号化を想定した手法ではなく,ダウンサンプリング後の映像信号の符号化効率の観点からは最適な手法とはいえない。
【0021】
〔1〕本発明の基本的な考え方
そこで,本発明では,下記の式(1) で表されるように,フィルタ係数Wi (iはダウンサンプリングのフレーム位置を示す変数)
i ={wi [−Δ], … ,wi [Δ−1]}
を用いたフィルタリングにより,ダウンサンプリング後のフレームを得ることとする。
【0022】
【数2】

【0023】
なお,Σwi [j]=1を満たすものとする。ただし,Σはj=−Δi 〜Δi −1についての総和である。また,Δi は各フレーム毎に外部から与えられるパラメータ(iに依存しないこともある)である。
【0024】
本発明では,このフィルタ係数Wi を,ダウンサンプリング後の低フレームレート映像信号の全フレームの符号化効率とジャーキネスの評価尺度とを考慮した形で決定するようにする。
【0025】
次に,本発明に特徴的な処理であるフィルタ係数Wi の決定方法について説明する。
【0026】
〔A〕フィルタ係数Wi の決定
信号^f(x,iMδt ,Wi )をサイズSの区間B[k](k=0,1, … ,K−1)に分割し(ここでは1次元で説明しているので区間と表記するが,2次元の場合にはブロックに相当する),各区間B[k](k=0,1, … ,K−1)を単位として動き補償(推定変移量di =(di [0], … ,di [K−1]))を行った場合,その区間内の動き補償後の予測誤差電力は下記の式(2) のように表現できる。なお,「^X」(Xは文字)における記号^は,「X」の上に付く記号を示している。
【0027】
【数3】

【0028】
ここで,式(2) では,1つ前のフィルタリングにより生成されたフレーム(参照フレームとなるフレーム)との間で動き補償後の予測誤差電力を求めるようにしている。
【0029】
さらに,ジャーキネスを考慮するため,ジャーキネスの評価尺度として,次の式(3) の値を用いる。
【0030】
【数4】

【0031】
ここで,H(j,j′)は,重み関数として,フレーム間距離をジャーキネス評価に反映させるものであり,
H(j,j′)=(j−j′)2 …(4)
あるいは, H(j,j′)=(M+j−j′)2 …(5)
とする。
【0032】
このジャーキネス評価尺度は,“(フィルタ係数で重み付けされたサブフレーム間差分電力)2 ×(サブフレーム間距離)2 ”を,j,j′のそれぞれに対して,−Δi からΔi まて足し合わせたものである。これは,ダウンサンプリング後のフレーム間の距離が,元のフレームシーケンスにおいて等間隔であれば,画像の動きが滑らかであるのに対し,等間隔でなければ動きにカクツキが生じて画質が劣化するので,そのジャーキネスの度合を評価するためのものである。
【0033】
図1は,このジャーキネス評価尺度を説明する図であって,図1(A)は,ジャーキネス項が小さくなる例を示しており,図1(B)は,ジャーキネス項が大きくなる例を示している。図1(A)の場合,ダウンサンプリングに用いるフィルタ係数の絶対値の並び方がダウンサンプリング後のフレーム間でほぼ一様であるので,動きの観点からはフレームを等間隔に間引いたのと実質的に同じであり,ジャーキネス項が小さくなる。これに対して,図1(B)の場合,ダウンサンプリングに用いるフィルタ係数の絶対値の並び方がダウンサンプリング後のフレーム間で大きく変化しているので,フレームを不等間隔に間引いたのと実質的に同じになり,ジャーキネス項が大きくなる。すなわち,動きの画質劣化が図1(A)の場合に比べて大きくなる。
【0034】
以上のことから,本発明では,次の式(6) に示す予測誤差とジャーキネス評価尺度の加重和を,コスト関数Φi として用いて,コスト関数の値が小さくなるフィルタ係数を算出するようにする。
【0035】
Φi (Wi ,Wi-1 ,di
=σ2 (Wi ,Wi-1 ,di )+λζi (Wi ,Wi-1 ) …(6)
なお,λは予め定められる重み値であるが,λ=0とすることで,予測誤差のみを最小化することも可能である。
【0036】
〔B〕“フィルタ係数算出方法その1”
次に,“フィルタ係数算出方法その1”について説明する。この“フィルタ係数算出方法その1”では,Step1とStep2という2つのステップを実行することで,フィルタ係数Wi を算出する。
【0037】
〔B−1〕“フィルタ係数算出方法その1”のStep1
式(2) では,フィルタ係数Wi と変移量di [k]とが変数となるが,この2つの間には,動き補償予測誤差電力を小さくすべくフィルタ係数Wi を変化させると,それによりダウンサンプリング後のフレームが変化し,それに伴って変移量di [k](以下,動きベクトルと記載することもある)も変化してしまうことで動き補償予測誤差電力が影響を受けるというように,互いに影響を与え合う関係がある。
【0038】
そこで,Step1では,この式(2) に従い,繰り返し処理によりフィルタ係数Wi を算出するようにする。
【0039】
このとき,フィルタ係数Wi の初期値Wi (0) は外部から与えられる。例えば,Wi (0) =(1/2Δ, … ,1/2Δ)とする。なお,参照フレームのフィルタ係数Wi-1 については既に確定しているものとし,起点となるダウンサンプリング後の先頭フレームについては,高フレームレート映像信号の先頭フレームを含む所定の範囲内にある複数フレームに対しての予め設定されたフィルタ係数を用いたフィルタリングにより生成するものとする。
【0040】
この繰り返し処理では,まず,動き補償予測誤差電力σi 2 (Wi (0) ,Wi-1 (0) ,di )を最小化するように,変移量d[k](k=0,1, … ,K−1)を設定する。この設定方法については,別途,外部から与えられる動き推定方法を用いる。例えば,フルサーチを用いる。ここで求めた変移量をd[k](0) (k=0,1, … ,K−1)とする。
【0041】
次に,d[k](0) (k=0,1, … ,K−1)を用いた場合のコスト関数Φi (Wi ,Wi-1 ,di (0) )を最小化するフィルタ関数Wi を求める。具体的には,以下の連立方程式をWi について解く。
【0042】
【数5】

【0043】
上式を展開すると,以下の線形連立方程式となる。なる,以下の連立方程式において,λ=0とすると,予測誤差のみをコスト関数とした場合の最適なフィルタ係数の算出に対応する。
【0044】
(Ψ+λΘ)wi =(β+λγ) …(7)
βは,予測誤差調整ベクトルであり,第j+Δ−1成分を,
【0045】
【数6】

【0046】
とする2Δ次元ベクトルである。
【0047】
Ψは,予測誤差調整行列であり,2Δ次元ベクトルの第(j+Δ−1,n+Δ−1)成分を,
【0048】
【数7】

【0049】
とする2Δ×2Δ行列である。なお,εi (x,n,m)および^εi (x,n)は,次式で定義される。
【0050】
【数8】

【0051】
γは,ジャーキネス調整ベクトルであり,第j+Δ−1成分を以下とする2Δ次元列ベクトルである。
【0052】
【数9】

【0053】
Θは,ジャーキネス調整行列であり,2Δ次元列ベクトルの第(j+Δ−1,j+Δ−1)成分を以下とする2Δ×2Δ対角行列である。
【0054】
【数10】

【0055】
上記の解として求めたフィルタ係数を,Wi (1) とする。上記の変移量di の算出処理およびフィルタ係数Wi の算出処理を,所定の終了条件を満たすまで繰り返し行う。終了条件としては,後述するStep1の終了条件1,終了条件2,終了条件3のような例がある。
【0056】
〔B−2〕“フィルタ係数算出方法その1”のStep2
Step1の処理では,フレーム間の依存関係を考慮せずにフィルタ係数を設定している。そこで,全フレームに対するコスト関数を最小化するようにフィルタ係数を再計算する。この再計算にあたって,Step1により得られた動きベクトル(変移量di と同義)を,この処理で流用するものとし,この動きベクトルを^di とおく。
【0057】
全フレームに対するコスト関数を,次の式(12)のとおり定義する。このコスト関数の値は,式(6) に示すコスト関数の全フレームの和に相当するので,以下では,コスト関数値の総和ともいう。
【0058】
【数11】

【0059】
全フレームに対するコスト関数を最小化するフィルタ係数は,次式を満たす。
【0060】
【数12】

【0061】
式(12)を考慮すると,Eの項においてWi が関係するのは,Φi+1 (Wi+1 ,Wi ,^di+1 ),Φi (Wi ,Wi-1 ,^di )のみであることから,上記の連立方程式は,Wi に関して,各々,次の連立方程式に帰着できる。
【0062】
【数13】

【0063】
上記を展開すると,以下の線形連立方程式となる。なお,以下の線形連立方程式において,λ=0とすると,予測誤差のみをコスト関数とした場合の最適なフィルタ係数の算出に対応する。
【0064】
(Ψ+λΘ)W=(β+λγ) …(14)
ここで,I=J/M−1と略記すると,Wは,第2iΔ+j+Δ−1成分をwi [j]とする2IΔ次元列ベクトルである。
【0065】
γは,ジャーキネス調整ベクトルであり,第2Δ(i−1)+j+Δ−1成分を以下とする2ΔI次元列ベクトルである。
・i=1の場合: C1 (1)
・2≦i≦I−1の場合: C1 (i)+C2 (i)
・i=Iの場合: C2 (I)
なお,C1 (i),C2 (i)は,以下のとおりである。
【0066】
【数14】

【0067】
【数15】

【0068】
Θは,ジャーキネス調整行列であり,2ΔI次元列ベクトルの第(2Δ(i−1)+j+Δ−1,2Δ(i−1)+j+Δ−1)成分を以下とする2ΔI×2ΔI対角行列である。なお,n,j,j′=−Δ+1,…,Δである。
・i=1の場合:
(1)第(2Δ(i−1)+n+Δ−1,2Δ(i−1)+j+Δ−1)成分:
cur2(i,n,j)
(2)第(2Δi+n+Δ−1,2Δi+j+Δ−1)成分:
pos (i,n,j)
・2≦i≦I−1の場合:
(1)第(2Δ(i−1)+n+Δ−1,2Δ(i−1)+j+Δ−1)成分:
cur1(i,n,j)+Wcur2(i,n,j)
(2)第(2Δ(i−2)+n+Δ−1,2Δ(i−2)+j+Δ−1)成分:
pre (i,n,j)
(3)第(2Δi+n+Δ−1,2Δi+j+Δ−1)成分:
pos (i,n,j)
・i=Iの場合:
(1)第(2Δ(i−1)+n+Δ−1,2Δ(i−1)+j+Δ−1)成分:
cur1(i,n,j)
(2)第(2Δ(i−2)+n+Δ−1,2Δ(i−2)+j+Δ−1)成分:
pre (i,n,j)
なお,Wcur1(i,n,j),Wcur2(i,n,j),Wpre (i,n,j),Wpos (i,n,j)は,それぞれ以下のとおりである。
【0069】
【数16】

【0070】
・j≠nの場合:
【0071】
【数17】

【0072】
【数18】

【0073】
・j≠nの場合:
【0074】
【数19】

【0075】
【数20】

【0076】
【数21】

【0077】
βは,予測誤差調整ベクトルであり,第2Δi+n+Δ−1成分を,以下とする2ΔI次元列ベクトルである。
・i=0の場合:
【0078】
【数22】

【0079】
・1≦i≦I−1の場合:
【0080】
【数23】

【0081】
・i=Iの場合:
【0082】
【数24】

【0083】
また,Ψは,予測誤差調整行列であり,第2Δi+n+Δ−1行を2ΔI次元ベクトルとする2ΔI×2ΔI行列である。なお,この行ベクトルの成分は,以下のとおりである。
・i=0の場合:
前記行ベクトルの2Δi+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0084】
【数25】

【0085】
前記行ベクトルの2Δ(i+1)+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0086】
【数26】

【0087】
前記行ベクトルの上記以外の成分は,0である。
・1≦i≦I−1の場合:
前記行ベクトルの2Δ(i−1)+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0088】
【数27】

【0089】
前記行ベクトルの2Δi+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0090】
【数28】

【0091】
前記行ベクトルの2Δ(i+1)+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0092】
【数29】

【0093】
前記行ベクトルの上記以外の成分は,0である。
・i=Iの場合:
前記行ベクトルの2Δ(i−1)+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0094】
【数30】

【0095】
前記行ベクトルの2Δ(i+1)+(j+Δ−1)成分(n,j=−Δ+1,…,Δ)
【0096】
【数31】

【0097】
前記行ベクトルの上記以外の成分は,0である。
【0098】
〔B−3〕“フィルタ係数算出方法その1”のStep1の終了条件
(イ)Step1の終了条件1
終了条件1では,繰り返し回数の上限を定める。この場合,繰り返し回数をnとして,nが予め定めた閾値Nよりも大きくなった時点でStep1を終了する。
【0099】
(ロ)Step1の終了条件2
終了条件2では,繰り返し処理によるフィルタ係数の変化量で判定する。n回目のフィルタ係数の算出結果とn−1回目のフィルタ係数の算出結果との差が,予め与えられた閾値εw 以下となる場合にStep1を終了する。式で書くと,次の式(33)のようになる。
【0100】
【数32】

【0101】
(ハ)Step1の終了条件3
終了条件3では,繰り返し処理によるコスト関数の変化量で判定する。n回目のコスト関数とn−1回目のフィルタのコスト関数との差が,予め与えられた閾値εe 以下となる場合にStep1を終了する。式で書くと,次の式(34)のようになる。
【0102】
【数33】

【0103】
〔C〕“フィルタ係数算出方法その2”
次に,“フィルタ係数算出方法その2”について説明する。この“フィルタ係数算出方法その2”と前述した“フィルタ係数算出方法その1”との違いは,この“フィルタ係数算出方法その2”では,Step2の処理において,フィルタ係数Wi の算出処理と変移量di の算出処理とを繰り返し実行することで,フィルタ係数Wi の算出精度を高めるようにする構成を採るという点である。
【0104】
〔C−1〕“フィルタ係数算出方法その2”のStep1
Step1では,“フィルタ係数算出方法その1”のStep1と同じ処理を実行する。
【0105】
〔C−2〕“フィルタ係数算出方法その2”のStep2
Step2では,“フィルタ係数算出方法その1”のStep2と同様の処理を実行することで,フィルタ係数を算出する。この算出したフィルタ係数を^Wi とおく。
【0106】
このフィルタ係数^Wi を用いて,そのフィルタ係数を固定した場合の動き補償予測誤差電力の総和E(^W0 , … ,^WJ/M-1 , ^d1 ,…, ^dJ/M-1 )を最小化するように,変移量^d[k](k=0,1, … ,K−1)を設定する。この設定方法は,別途,外部から与えられる動き推定方法を用いる。例えば,フルサーチを用いる。
【0107】
Step2では,このフィルタ係数^Wi の算出処理および動きベクトル^di の探索処理を所定の終了条件を満たすまで繰り返し行う。終了条件としては,例えば,次のような終了条件1〜3がある。
【0108】
〔C−3〕“フィルタ係数算出方法その2”のStep2の終了条件
(イ)Step2の終了条件1
終了条件1では,繰り返し回数の上限を定める。この場合,繰り返し回数をnとして,nが予め定めた閾値Nよりも大きくなった時点でStep2を終了する。
【0109】
(ロ)Step2の終了条件2
終了条件2では,繰り返し処理によるフィルタ係数の変化量で判定する。n回目のフィルタ係数の算出結果とn−1回目のフィルタ係数の算出結果との差の総和が,予め与えられた閾値^εw 以下となる場合にStep2を終了する。式で書くと,次の式(35)のようになる。
【0110】
【数34】

【0111】
(ハ)Step2の終了条件3
終了条件3では,繰り返し処理によるコスト関数の変化量で判定する。n回目のコスト関数とn−1回目のフィルタのコスト関数との値の差が,予め与えられた閾値^εe 以下となる場合にStep2を終了する。式で書くと,次の式(36)のようになる。
【0112】
【数35】

【0113】
次に,本発明の構成について説明する。
【0114】
〔2〕本発明の構成
本発明のフレームレート変換装置は,高フレームレート映像信号の複数フレームをフィルタ係数を使って重み付け加算することで1つのフレームに置き換えるフィルタリングを実行し,これにより高フレームレート映像信号のフレームをダウンサンプリングして低フレームレート映像信号に変換することを実現するために,(1)フィルタ係数によるフィルタリングにより生成されるフレームを予測対象フレームとし,生成済みのフレームを参照フレームとする動き探索により動きベクトルを求め,得られた動きベクトルを用いたときの動き補償予測誤差電力と,与えられた評価式により算出されるフレーム間の画像の動きが滑らかでない度合を示すジャーキネス評価尺度との加重和をコスト関数とし,前記コスト関数の値を最小化するフィルタ係数を算出する処理を,所定の終了条件が成立するまで繰り返すことで,予測対象フレームに対しての最適なフィルタ係数を算出するとともに,その最適なフィルタ係数でフィルタリングする場合の動きベクトルを特定することを,ダウンサンプリング対象の全てのフレームについて実行する実行手段と,(2)実行手段の特定した動きベクトルを用いることで算出される全フレームに対しての前記コスト関数の値の総和を最小化するフィルタ係数を再計算することで,ダウンサンプリングに用いるフィルタ係数を算出する算出手段とを備える。
【0115】
この構成を採るときに,前記実行手段が用いる所定の終了条件として,前記繰り返しの回数が所定の上限値より大きくなったという条件,または前記繰り返しの処理によるフィルタ係数の変化量が所定の閾値以下となったという条件,または前記繰り返しの処理による前記コスト関数の値の変化量が所定の閾値以下となったという条件を用いることができる。
【0116】
また,前記算出手段では,前記フィルタ係数の再計算で求めたフィルタ係数を用いてフィルタリングすることにより得られた全フレームの動きベクトルを探索し,その動きベクトルを用いて,全フレームに対しての前記コスト関数の値の総和を最小化するフィルタ係数を算出することを所定の終了条件が成立するまで繰り返すことで,最終的なフィルタ係数を算出することもできる。
【0117】
以上の各処理手段が動作することで実現される本発明のフレームレート変換方法はコンピュータプログラムでも実現できるものであり,このコンピュータプログラムは,適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり,ネットワークを介して提供され,本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
【0118】
本発明のフレームレート変換装置は,以上の構成によって,フィルタリングにより高フレームレート映像信号から低フレームレート映像信号へのダウンサンプリングを実行するときに,ダウンサンプリングに用いるフィルタのフィルタ係数を,動き補償予測誤差電力が小さく,かつ,ジャーキネスの度合が小さくなるように決定することができるので,主観画質の劣化が大きくならずに,ダウンサンプリング後の低フレームレート映像信号の全シーケンスに対する符号化効率を考慮した形で,ダウンサンプリングを実行することができるようになる。
【発明の効果】
【0119】
本発明により,所望のフレームレートの映像信号を符号化する場合に,主観画質を保持しつつ,等長のフレーム間隔の間引きや単純平均のフィルタリングにより得られた映像信号よりも符号量を低く抑えることができるようになる。
【図面の簡単な説明】
【0120】
【図1】本発明で用いるジャーキネス評価尺度を説明する図である。
【図2】本発明のフレームレート変換装置の装置構成図である。
【図3】本発明のフレームレート変換装置の装置構成図である。
【図4】本発明の処理の説明図である。
【図5】本発明の処理の説明図である。
【図6】本発明の処理の説明図である。
【図7】本発明の処理の説明図である。
【図8】ダウンサンプリング実行部の実行するフローチャートである。
【図9】ダウンサンプリング実行部の実行するフローチャートである。
【図10】ダウンサンプリング実行部の実行するフローチャートである。
【図11】ダウンサンプリング実行部の実行するフローチャートである。
【図12】ダウンサンプリング実行部の実行するフローチャートである。
【図13】ダウンサンプリング実行部の実行するフローチャートである。
【図14】コスト関数を最小化するフィルタ係数算出処理のフローチャートである。
【図15】従来技術によるフレームレートダウンサンプリング処理の説明図である。
【発明を実施するための形態】
【0121】
以下,本発明の実施の形態を図面を用いて詳細に説明する。
【0122】
図2に,本発明のフレームレート変換装置の装置構成の一例を図示する。この図に示すように,フレームレート変換装置1は,フレームレート変換処理の対象となる高フレームレート映像信号を格納する高フレームレート映像ファイル10と,フレームレート変換処理された低フレームレート映像信号を格納する低フレームレート映像ファイル11と,フィルタ係数を使ったダウンサンプリングのためのフィルタリング処理を実行することで,高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行するフレームレートダウンサンプリング部12とを備える。
【0123】
このフレームレートダウンサンプリング部12は,式(6) に示されるコスト関数Φi (Wi ,Wi-1 ,di )が最小となるフィルタ係数とそのときの動きベクトルとを算出するコスト関数算出部120と,コスト関数算出部120の算出したフィルタ係数を使って,高フレームレート映像信号のフレームをフィルタリングすることでダウンサンプリング処理を実行するダウンサンプリング実行部121と,ダウンサンプリング実行部121の作業用データを記憶する作業用メモリ122とを備える。
【0124】
コスト関数算出部120は,動き推定部1201を備えて,式(2) に示される動き補償予測電力を算出する動き補償予測誤差算出部1200と,式(3) に示されるジャーキネスの評価尺度ζi (Wi ,Wi-1 )を算出するジャーキネス評価尺度算出部1202とを備えることで,式(6) に示されるコスト関数Φi (Wi ,Wi-1 ,di )が最小となるフィルタ,動きベクトルを算出する。
【0125】
〔1〕コスト関数算出部120の処理
〔1−1〕動き補償予測誤差算出部1200の処理
ダウンサンプリング実行部121の実行するフレームレートダウンサンプリング処理の説明に入る前に,動き補償予測誤差算出部1200の処理について説明する。
【0126】
動き推定部1201は,予測対象フレームと参照フレームとを入力として,下記に示す処理を実行することで,予測対象フレーム内のブロック毎の動きベクトルd[k],すなわち,式(2) の右辺を最小化するd[k](k=0,1, … ,K−1)を推定する処理を行う。ここで,kはブロックを同定するインデックスである。
【0127】
動き推定部1201の処理(各kに対して):
・式(2) のΣ{x∈B[k]}の項(第kブロックの予測誤差和)を最小化する動きベクトルd[k]を求める。
・動きベクトルは,予め与えられた探索範囲−D≦d[k]≦D−1内の値から選択される。
・選択の方法は,探索範囲内の全ての候補ベクトルに対して,その候補ベクトルを用いた場合の予測誤差和を算出し,その予測誤差和を最小化するベクトルをd[k]とすることで行う。
【0128】
動き補償予測誤差算出部1200は,動き推定部1201の推定した動きベクトルd[k]を使い,式(2) に基づいて,予測対象フレームと参照フレームとの間の動き補償予測誤差電力を算出する。
【0129】
〔1−2〕ジャーキネス評価尺度算出部1202の処理
ジャーキネス評価尺度算出部1202は,初期値として与えられたフィルタ係数または繰り返し処理ごとに決定されたフィルタ係数を用いたときの式(3) に示されるジャーキネスの評価尺度ζi (Wi ,Wi-1 )を算出する。
【0130】
〔2〕ダウンサンプリング実行部121の処理
次に,ダウンサンプリング実行部121の実行するフレームレートダウンサンプリング処理について説明する。
【0131】
図3に,ダウンサンプリング実行部121の装置構成の一例を図示する。この図に示すように,ダウンサンプリング実行部121は,入力部1210と,動きベクトル設定部1211と,フィルタ係数決定部1212とを備える。
【0132】
この入力部1210は,高フレームレート映像信号のフレーム数Jと,高フレームレート映像信号のフレーム間隔δt と,ダウンサンプリング比Mと,フィルタ係数初期値Wi (0) と,フィルタリングの対象となるフレーム数を指定する値Δi と,フィルタ係数の終了条件の判定用閾値とを読み込む。なお,以下の説明では,Δi はiに依存しない値を持つこととして説明する。
【0133】
動きベクトル設定部1211は,等長間隔のダウンサンプリングにより規定されるダウンサンプリングフレーム位置(以下,フレーム位置と略記する)について,図4に示すように,フィルタ係数によるフィルタリングにより生成されるフレームを予測対象フレームとし,1つ前のフレーム位置にある生成済みのフレームを参照フレームとするブロックkごとの動き補償予測誤差電力を最小化する動きベクトルを探索し,その動きベクトルを用いて算出されたフレーム全体の動き補償予測誤差電力と,式(3) によって算出されるジャーキネスの評価尺度とによって定義される式(6) のコスト関数の値を最小化するフィルタ係数を,式(7) の連立方程式を解くことによって算出する。この処理を,所定の終了条件が成立するまで繰り返すことで,予測対象フレームと参照フレームとの間のコスト関数値を最小化するフィルタ係数を求めるようにして,図5に示すように,その一連の処理を先頭のフレーム位置から最終のフレーム位置に向けて実行する。こうすることで,ダウンサンプリング対象の全てのフレームについて,それぞれの最適なフィルタ係数を算出するとともに,1つ前のフレーム位置にあるフレームとの間の動き補償予測誤差電力を最小化する動きベクトルを求めて,それをフィルタ係数決定部1212に通知する動きベクトルとして設定するように処理する。
【0134】
動きベクトル設定部1211は,この処理を実行するために,図3に示すように,
(1)予め設定されたフィルタ係数を用いたフィルタリングによりダウンサンプリング後の先頭フレームを生成する先頭フレーム生成部12110と,
(2)ダウンサンプリング後のフレームが生成された場合に,等長間隔のダウンサンプリングにより規定される次のフレーム位置を特定する次フレーム位置特定部12111と,
(3)次フレーム位置特定部12111の特定したフレーム位置の近傍に位置する2Δ枚のフレームに対して,その時点のフィルタ係数を使ったフィルタリング処理を実行するフィルタリング実行部12112と,
(4)フィルタリング実行部12112が今回生成したフレームと1つ前のフレーム位置で生成されたフレームとを指定して,コスト関数算出部120に対して,動き補償予測誤差電力とジャーキネス評価尺度との算出を指示し,その加重和からなるコスト関数値が最小化するフィルタ係数を求めるコスト関数値最小化部12113と,
(5)コスト関数値最小化部12113によって算出されたフィルタ係数を用いて,元のフィルタ係数を更新するフィルタ係数更新部12114と,
(6)フィルタ係数更新部12114によるフィルタ係数の更新を終了する条件が成立したか否かを判定して,更新終了条件が成立していないときには,フィルタリング実行部12112に対して,更新したフィルタ係数を使ってフィルタリング処理を実行することを指示する更新終了条件判定部12115と,
(7)更新終了条件判定部12115がフィルタ係数の更新終了条件が成立したと判定したときに,更新終了条件成立時点のフィルタ係数を使ったフィルタリング処理を実行することで,次フレーム位置特定部12111の特定したフレーム位置にあるフレームに置き換えるダウンサンプリング後のフレームを生成するフレーム生成部12116と,
(8)更新終了条件判定部12115がフィルタ係数の更新終了条件が成立したと判定したときに,フィルタリングの対象となる全てのフレーム位置に対しての処理を終了したか否かを判定して,処理が未終了のときには,次のフレーム位置に対しての処理を実行すべく次フレーム位置特定部12111を起動し,処理が終了したと判定したときには,最終的に求めた動きベクトルをフィルタ係数決定部1212に通知する動きベクトルとして設定して通知する全フレーム位置終了判定部12117と,
を備える。
【0135】
フィルタ係数決定部1212は,動きベクトル設定部1211から通知される動きベクトルを使い,図6に示すように,式(14)の連立方程式に従って,全フレームに対するコスト関数値の総和を最小化するフィルタ係数を算出することで,そのフィルタ係数を決定するように処理する。
【0136】
さらに,このフィルタ係数の決定精度を高めるために,図7に示すように,算出したフィルタ係数によりダウンサンプリングされるフレーム間のコスト関数値の総和を最小化するフィルタ係数を,動きベクトルを固定した状態で算出し,次にフィルタ係数を固定として,動き補償予測誤差電力の総和が最小化する動きベクトルを探索する処理を,所定の終了条件が成立するまで繰り返すことで,全フレームに対するコスト関数値の総和を最小化するフィルタ係数を算出し,最終的なフィルタ係数を決定するように処理する実施も好適である。
【0137】
フィルタ係数決定部1212は,この処理を実行するために,図3に示すように,
(1)動きベクトル設定部1211の設定した動きベクトルを使って,コスト関数値の総和が最小となるフィルタ係数を決定し,さらに,次に説明する動きベクトル算出部12121の算出した動きベクトルを使って,式(14)の連立方程式を生成して,それを解くことでフィルタ係数を算出するフィルタ係数算出部12120と,
(2)フィルタ係数算出部12120の算出したフィルタ係数を使ったフィルタリング処理を実行することで生成される隣接する2つのフレームの対データについて,動き補償予測誤差電力を最小化する動きベクトルの探索を行い,各対データについて動きベクトルを得て,フィルタ係数算出部12120に対して,それらの動きベクトルを指定してフィルタ係数の再算出を指示する動きベクトル算出部12121と,
(3)動きベクトル算出部12121によるフィルタ係数の再算出の指示を終了する条件が成立したか否かを判定して,再算出の指示終了条件が成立したときに,フィルタ係数算出部12120の算出したフィルタ係数を最終的なフィルタ係数として決定する終了条件判定部12122と,
(4)終了条件判定部12122が最終決定したフィルタ係数を使ったフィルタリング処理を実行することで,ダウンサンプリング後のフレームを生成するフレーム生成部12123と,
を備える。
【0138】
次に,このように構成されるダウンサンプリング実行部121により実行されるフレームレートダウンサンプリング処理について説明する。
【0139】
〔2−1〕第1の実施の形態
第1の実施の形態では,ダウンサンプリング実行部121は,図8のフローチャートに示すように,まず最初に,ステップS10で,動きベクトル設定部1211が動作して,フィルタ係数決定部1212に通知する動きベクトルを設定する。続いて,ステップS20で,フィルタ係数決定部1212のフィルタ係数算出部12120のみが動作して(動きベクトル算出部12121は動作しない),動きベクトル設定部1211の設定した動きベクトルを使って,ダウンサンプリングに用いるフィルタ係数を算出するように処理する。
【0140】
次に,下記の〔2−1−1〕に,前述した『〔B−3〕“フィルタ係数算出方法その1”のStep1の終了条件』で説明した終了条件1に従って実行する場合におけるステップS10の処理の流れを記載するとともに,下記の〔2−1−2〕に,ステップS20の処理の流れを記載する。
【0141】
〔2−1−1〕ステップS10の処理の流れ
1.撮影された高フレームレート映像信号,そのフレーム数J,そのフレームレート( フレーム間隔δt を算出するために用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.繰り返し回数の閾値Nを読み込む
4.フィルタ係数の初期値W0 (0) を読み込み,ダウンサンプリング後の先頭フレーム を生成する
5.i=1, … ,J/M−1の各々について順番に以下の処理を繰り返す
6. フィルタ係数の初期値Wi (0) を読み込む
7. Δi の値として,予め設定された値を読み込む
8. n=0
9. n=n+1
10. 予め設定された方法に基づき,フィルタ係数をWi (n-1) とした場合の式(2) で表される動き補償予測誤差電力に対して,その予測誤差電力を最小化する動 きベクトルを算出し,レジスタd[k](n) (k=0,1, … ,K−1)に格 納する
11. 動きベクトルをd[k](n) (k=0,1, … ,K−1)とした場合の式(6) で示されるコスト関数に対して,そのコスト関数の値を最小化するフィルタ係 数を算出し,レジスタWi (n) に格納する。具体的な算出方法は,式(7) の連 立方程式をWi について解き,その解を求めるフィルタ係数とする
12. n<Nならば,“9.”に戻り,そうでなければ,次のステップに進む
13. Wi (n) を第iフレームに対するフィルタ係数Wi として,式(1) に従いダウン サンプリング後のフレームを出力する(この処理についてはフレーム生成部12 123が実行する)。
【0142】
このようにして,ダウンサンプリング実行部121は,図8のフローチャートのステップS10では,その時点のフィルタ係数でフィルタリングした場合の動き補償予測誤差電力を最小化する動きベクトルを算出(探索)し,その算出した動きベクトルを使って,2つのフレームの間のコスト関数の値を最小化するフィルタ係数の導出式である式(7) の連立方程式を解くことでフィルタ係数を更新して,前述した終了条件1の規定する繰り返し回数に従って,この一連の更新処理を繰り返していくことで,式(6) で表される動き補償予測誤差電力とジャーキネス評価尺度の加重和で定義されるコスト関数の値を最小化するフィルタ係数・動きベクトルを算出する。
【0143】
〔2−1−2〕ステップS20の処理の流れ
1.撮影された高フレームレート映像信号,そのフレーム数J,そのフレームレート( フレーム間隔δt を算出するために用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.ステップS10で求めた動きベクトルdi (i=1, … ,J/M−1)を読み込む 4.動きベクトルをdi (i=1, … ,J/M−1)とした場合の式(12)で表されるコ スト関数値(式(6) で表されるコスト関数値の総和)に対して,その動き補償予測 誤差電力の総和を最小化するフィルタ係数を算出し,レジスタWi * に格納する。
【0144】
具体的な算出方法は,式(14)に示す連立方程式をWi について解き,その解を求め るフィルタ係数とすることで行う
このようにして,ダウンサンプリング実行部121は,図8のフローチャートのステップS20では,ステップS10で求めた動きベクトルdi (i=1, … ,J/M−1)を使って,コスト関数の値の総和を最小化するフィルタ係数の導出式である連立方程式の式(14)を解くことで,フィルタ係数を算出する。
【0145】
〔2−1−3〕終了条件2に従うステップS10の処理の流れ
『〔2−1−1〕ステップS10の処理の流れ』に記載するステップS10の処理では,前述した『〔B−3〕“フィルタ係数算出方法その1”のStep1の終了条件』で説明した終了条件1に従って処理を実行したが,そこで説明した終了条件2に従う場合には,次のように処理する。
【0146】
1.撮影された高フレームレート映像信号,そのフレーム数J,そのフレームレート( フレーム間隔δt を算出するために用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.フィルタ係数の類似度に関する閾値εw を読み込む
4.フィルタ係数の初期値W0 (0) を読み込み,ダウンサンプリング後の先頭フレーム を生成する
5.i=1, … ,J/M−1の各々について,以下の処理を繰り返す
6. フィルタ係数の初期値Wi (0) を読み込む
7. Δi の値として,予め設定された値を読み込む
8. n=0
9. n=n+1
10. 予め設定された方法に基づき,フィルタ係数をWi (n-1) とした場合の式(2) で表される動き補償予測誤差電力に対して,その予測誤差電力を最小化する動 きベクトルを算出し,レジスタd[k](n) (k=0,1, … ,K−1)に格 納する
11. 動きベクトルをd[k](n) (k=0,1, … ,K−1)とした場合の式(6) で表されるコスト関数に対して,そのコスト関数を最小化するフィルタ係数を 算出し,レジスタWi (n) に格納する。具体的な算出方法は,式(7) の連立方 程式をWi について解き,その解を求めるフィルタ係数とすることで行う
12. 式(33)に従って,Wi (n) とWi (n-1) との間の類似度を評価して,その類似 度が閾値εw よりも大きければ“9.”に戻り,そうでなければ,次のステッ プに進む
13. Wi (n) を第iフレームに対するフィルタ係数Wi として,式(1) に従いダウン サンプリング後のフレームを出力する(この処理についてはフレーム生成部12 123が実行する)。
【0147】
〔2−1−4〕終了条件3に従うステップS10の処理の流れ
『〔2−1−1〕ステップS10の処理の流れ』に記載するステップS10の処理では,前述した『〔B−3〕“フィルタ係数算出方法その1”のStep1の終了条件』で説明した終了条件1に従って処理を実行したが,そこで説明した終了条件3に従う場合には,次のように処理する。
【0148】
1.撮影された高フレームレート映像信号,そのフレーム数J,そのフレームレート( フレーム間隔δt を算出するために用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.予測誤差に関する閾値εe を読み込む
4.フィルタ係数の初期値W0 (0) を読み込み,ダウンサンプリング後の先頭フレーム を生成する
5.i=1, … ,J/M−1の各々について,以下の処理を繰り返す
6. フィルタ係数の初期値Wi (0) を読み込む
7. Δi の値として,予め設定された値を読み込む
8. n=0
9. n=n+1
10. 予め設定された方法に基づき,フィルタ係数をWi (n-1) とした場合の式(2) で表される動き補償予測誤差電力に対して,その予測誤差電力を最小化する動 きベクトルを算出し,レジスタd[k](n) (k=0,1, … ,K−1)に格 納する
11. 動きベクトルをd[k](n) (k=0,1, … ,K−1)とした場合の式(6) で表されるコスト関数に対して,そのコスト関数を最小化するフィルタ係数を 算出し,レジスタWi (n) に格納する。具体的な算出方法は,式(7) に示す連 立方程式をWi について解き,その解を求めるフィルタ係数とすることで行う 12. Wi (n) ,d[k](n) を用いた場合のコスト関数の値をレジスタE(n) に格 納する
13. |E(n) −E(n-1) |<εe ならば,“9.”に戻り,そうでなければ,次の ステップに進む
14. Wi (n) を第iフレームに対するフィルタ係数Wi として,式(1) に従いダウン サンプリング後のフレームを出力する(この処理についてはフレーム生成部12 123が実行する)。
【0149】
〔2−2〕第2の実施の形態
第2の実施の形態では,ダウンサンプリング実行部121は,図9のフローチャートに示すように,まず最初に,ステップS30で,動きベクトル設定部1211が動作して,フィルタ係数決定部1212に通知する動きベクトルを設定する。
【0150】
続いて,ステップS40で,フィルタ係数決定部1212のフィルタ係数算出部12120が動作して,動きベクトル設定部1211の設定した動きベクトルを使って,コスト関数の値の総和を最小化するフィルタ係数を算出し(ステップS41),続いて,終了条件が成立したのかを判定して(ステップS42),終了条件が成立しないときには,フィルタ係数決定部1212の動きベクトル算出部12121が動作して,フィルタ係数算出部12120の算出したフィルタ係数を用いる場合の動き補償予測誤差電力の総和を最小化する動きベクトルを算出(探索)して,フィルタ係数算出部12120に対して,その算出した動きベクトルを使って,コスト関数の値の総和を最小化するフィルタ係数を算出することを指示することを繰り返すことで(ステップS43),ダウンサンプリングに用いるフィルタ係数を最終的に算出するように動作する。
【0151】
次に,下記の〔2−2−1〕に,ステップS30の処理の流れを記載するとともに,下記の〔2−2−2〕に,前述した『〔C−3〕“フィルタ係数算出方法その2”のStep2の終了条件』で説明した終了条件1に従って実行する場合におけるステップS40の処理の流れを記載する。
【0152】
〔2−2−1〕ステップS30の処理の流れ
ステップS30では,前述した『〔2−1−1〕ステップS10の処理の流れ』や,前述した『〔2−1−3〕終了条件2に従うステップS10の処理の流れ』や,前述した『〔2−1−4〕終了条件3に従うステップS10の処理の流れ』の処理と同一の処理を実行することで,式(6) で表されるコスト関数の値を最小化するフィルタ係数・動きベクトルを算出する。
【0153】
〔2−2−2〕ステップS40の処理の流れ
1.撮影された高フレームレート映像信号,そのフレーム数J,そのフレームレート( フレーム間隔δt を算出するために用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.繰り返し回数の閾値Nを読み込む
4.n=0
5.ステップS30で求めた動きベクトルdi (i=1, … ,J/M−1)を動きベ クトルの初期値di (0) として読み込む
6. 動きベクトルをdi (n) (i=1, … ,J/M−1)とした場合の式(12)で表さ れるコスト関数の値の総和に対して,そのコスト関数の値の総和を最小化するフ ィルタ係数を算出し,レジスタWi * に格納する。具体的な算出方法は,下記の 式(14)に示す連立方程式をWi について解き,その解を求めるフィルタ係数とす ることで行う
7. 式(12)で表される動き補償予測誤差電力の総和(コスト関数E(W0 , … ,WJ/ M-1 , ^d1 ,…, ^dJ/M-1 )をλ=0として求めた値)を最小化する動きベ クトルdi (i=1, … ,J/M−1)を算出し,その結果をdi (n) (i=1 , … ,J/M−1)に格納する
8. n=n+1
9. n<Nならば,“6.”に戻り,そうでなければ,次のステップに進む
10.Wi (n) を第iフレームに対するフィルタ係数Wi として,式(1) に従いダウンサ ンプリング後のフレームを出力する(この処理についてはフレーム生成部1212 3が実行する)。
【0154】
このようにして,ダウンサンプリング実行部121は,図9のフローチャートのステップS40では,ステップS30で求めた動きベクトルdi (i=1, … ,J/M−1)を使って,コスト関数の値の総和を最小化するフィルタ係数の導出式である式(14)の連立方程式を解くことで,動き補償予測誤差電力の総和を最小化するフィルタ係数を算出して,その算出したフィルタ係数でフィルタリングした場合の動き補償予測誤差電力の総和を最小化する動きベクトルを算出(探索)することを繰り返していくことで,式(12)で表されるコスト関数の値の総和を最小化するフィルタ係数を算出するように処理する。
【実施例】
【0155】
次に,実施例に従って本発明を詳細に説明する。
【0156】
〔1〕第1の実施例
図10および図11に,図8のフローチャートに従ってダウンサンプリングに用いるフィルタ係数を算出するダウンサンプリング実行部121の実行する詳細なフローチャートを図示する。
【0157】
ここで,このフローチャートでは,前述した『〔B−3〕“フィルタ係数算出方法その1”のStep1の終了条件』で説明した終了条件1に従ってダウンサンプリングに用いるフィルタ係数を算出する例について説明する。
【0158】
次に,このフローチャートに従って,ダウンサンプリング実行部121が実行するフレームレートのダウンサンプリング処理について詳細に説明する。
【0159】
ダウンサンプリング実行部121は,図8のフローチャートに従ってダウンサンプリングに用いるフィルタ係数を算出する場合には,図10および図11のフローチャートに示すように,まず最初に,ステップS101で,フレームレート変換処理の対象となる高フレームレート映像信号と,そのフレーム数Jと,そのフレーム間隔δt と,ダウンサンプリング比Mと,繰り返し回数の閾値Nとを読み込む。
【0160】
続いて,ステップS102で,高フレームレート映像信号の先頭フレームを含む所定の範囲内にある複数フレームに対しての予め設定されたフィルタ係数を用いたフィルタリングによりダウンサンプリング後の先頭フレームを生成する。
【0161】
続いて,ステップS103で,ダウンサンプリング比Mとフレーム間隔δt とに基づく等長間隔のダウンサンプリングにより規定されるフレーム位置(ダウンサンプリングのフレーム位置)を指定する変数iに1をセットする。すなわち,先頭フレームの次のダウンサンプリング位置を指定する値である1をセットする。
【0162】
続いて,ステップS104で,フィルタ係数の初期値Wi (0) と,フィルタリングの対象となるフレーム数(=2Δi )を指定する値Δi とを読み込む。
【0163】
続いて,ステップS105で,繰り返し回数をカウントする変数nに0をセットし,続くステップS106で,変数nの値を1つインクリメントする。
【0164】
続いて,ステップS107で,設定されているフィルタ係数を使い,式(1) に基づいて,変数iの指すフレーム位置の近傍に位置する2Δi 枚のフレームに対してのフィルタリングを実行することで,動きベクトル算出用のフレームを生成する。
【0165】
続いて,ステップS108で,生成した動きベクトル算出用のフレームを予測対象フレームとし,後述するステップS111の処理に従って前回生成したフレーム(処理開始時は先頭フレーム)を参照フレームとする動き補償で算出される動き補償予測誤差電力を最小化する動きベクトルを算出する。
【0166】
続いて,ステップS109で,算出した動きベクトルを用いるコスト関数の値を最小化するフィルタ係数を求める式(7) の連立方程式を作成し,それを解くことでフィルタ係数を更新する。
【0167】
続いて,ステップS110で,変数nの値が繰り返し回数の閾値Nを超えていないか否かを判断して,繰り返し回数の閾値Nを超えていないと判断したときには,ステップS106の処理に戻って,フィルタ係数の更新処理を継続する。
【0168】
一方,ステップS110の判断処理に従って,変数nの値が繰り返し回数の閾値Nを超えたと判断したときには,ステップS111に進んで,更新の終了したフィルタ係数を使い,式(1) に基づいて,変数iの指すフレーム位置の近傍に位置する2Δi 枚のフレームに対してのフィルタリングを実行することで,ダウンサンプリング後のフレームを生成する。
【0169】
続いて,ステップS112で,変数iの値を1つインクリメントし,続くステップS113で,変数iの値が最大値であるJ/M−1を超えたか否かを判断して,J/M−1を超えていないと判断したときには,変数iの指す次のダウンサンプリング位置についてステップS104〜ステップS112の処理を実行すべく,ステップS104の処理に戻る。
【0170】
一方,ステップS113の判断処理により,変数iの値がJ/M−1を超えたと判断したときには,全てのダウンサンプリング位置についての処理を終了したことで,図8のフローチャートのステップS10の処理を終了する。
【0171】
続いて,図8のフローチャートのステップS20の処理に入って,ステップS201(図11に示すステップS201)で,ステップS101〜ステップS113の処理により算出した動きベクトルdi (i=1, … ,J/M−1)を読み込む。
【0172】
続いて,ステップS202で,読み込んだ動きベクトルdi (i=1, … ,J/M−1)を用いる式(14)の連立方程式を作成し,それを解くことでフィルタ係数を算出する。
【0173】
続いて,ステップS203で,算出したフィルタ係数を使ってフィルタリングを実行することでフレームレートダウンサンプリング処理を実行する。
【0174】
このようにして,ダウンサンプリング実行部121は,フレームレートのダウンサンプリング処理を実行するときに,全フレームに対するコスト価値の値の総和を最小化するようにフィルタ係数を算出し,これにより,そのダウンサンプリング処理により得られた低フレームレート映像信号を符号化する場合に,従来技術よりも符号量を低く抑えることができるようになる。
【0175】
〔2〕第2の実施例
図12および図13に,図9のフローチャートに従ってダウンサンプリングに用いるフィルタ係数を算出するダウンサンプリング実行部121の実行する詳細なフローチャートを図示する。
【0176】
ここで,このフローチャートでは,前述した『〔B−3〕“フィルタ係数算出方法その1”のStep1の終了条件』で説明した終了条件1(繰り返し回数の上限をN1としている)と,前述した『〔C−3〕“フィルタ係数算出方法その2”のStep2の終了条件』で説明した終了条件1(繰り返し回数の上限をN2としている)とに従って,ダウンサンプリングに用いるフィルタ係数を算出するようにしている。
【0177】
次に,このフローチャートに従って,ダウンサンプリング実行部121が実行するフレームレートのダウンサンプリング処理について詳細に説明する。
【0178】
ダウンサンプリング実行部121は,図9のフローチャートに従ってダウンサンプリングに用いるフィルタ係数を算出する場合には,図12および図13のフローチャートに示すように,ステップS301〜ステップS313で,図10および図11のフローチャートのステップS101〜ステップS113と同様の処理を実行することで,図9のフローチャートのステップS30の処理を終了する。
【0179】
続いて,図9のフローチャートのステップS40の処理に入って,ステップS401(図13に示すステップS401)で,繰り返し回数をカウントする変数nに0をセットし,続くステップS402で,ステップS301〜ステップS313の処理により算出した動きベクトルdi (i=1, … ,J/M−1)を,動きベクトルの初期値di (0) として読み込む。
【0180】
続いて,ステップS403で,動きベクトルdi (n) (i=1, … ,J/M−1)を用いるコスト関数の値の総和を最小化するフィルタ係数をもとめる式(14)の連立方程式を作成し,それを解くことでフィルタ係数を算出する。
【0181】
続いて,ステップS404で,算出したフィルタ係数を使い,式(1) に基づいて,変数i(i=1, … ,J/M−1)の指すフレーム位置の近傍に位置する2Δi 枚のフレームに対してのフィルタリングを実行することで,動きベクトル算出用のフレームを生成する。
【0182】
続いて,ステップS405で,生成した各動きベクトル算出用のフレームについて,その動きベクトル算出用のフレームを予測対象フレームとし,1つ前のフレーム位置にある動きベクトル算出用のフレームを参照フレームとする動き補償で算出される動き補償予測誤差電力の総和を最小化する動きベクトルを算出する。
【0183】
続いて,ステップS406で,変数nの値を1つインクリメントし,続くステップS407で,変数nの値が繰り返し回数の閾値N2を超えたか否かを判断して,繰り返し回数の閾値N2を超えていないと判断したときには,ステップS403の処理に戻ることで,算出した動きベクトル(更新した動きベクトル)を用いてフィルタ係数を算出することを繰り返す処理を続行する。
【0184】
一方,ステップS407で,変数nの値が繰り返し回数の閾値N2を超えたと判断したときには,最終的なフィルタ係数を算出したと判断して,ステップS408に進んで,算出したフィルタ係数を使ってフィルタリングを実行することでフレームレートダウンサンプリング処理を実行する。
【0185】
このようにして,ダウンサンプリング実行部121は,第2の実施例に従う場合には,フレームレートのダウンサンプリング処理を実行するときに,第1の実施例よりもさらに全フレームに対するコスト関数の値の総和を最小化するようにフィルタ係数を算出し,これにより,そのダウンサンプリング処理により得られた低フレームレート映像信号符号化する場合に,従来技術よりも符号量を低く抑えることができるようになる。
【0186】
図14は,コスト関数を最小化するフィルタ係数算出処理のフローチャートである。
【0187】
図10のステップS109および図12のステップS309におけるコスト関数を最小化するフィルタ係数の算出では,図14に示す処理を実行する。入力は,フレームと,動きベクトルdi [k]と,重み係数λである。
【0188】
まず,ステップS501では,予測誤差調整行列Ψを算出する。ステップS502では,ジャーキネス調整行列Θを算出する。ステップS503では,予測誤差調整ベクトルβを算出する。ステップS504では,ジャーキネス調整ベクトルγを算出する。次に,ステップS505では,上記の計算結果を用いて,式(7) の連立方程式(Ψ+λΘ)wi =(β+λγ)を解き,式(6) に示すコスト関数の値を最小化するフィルタ係数を算出する。この処理による出力は,フィルタ係数wi である。
【0189】
また,図11に示すステップS202および図13に示すステップS403においても,同様の手順で式(12)に示す全フレームのコスト関数の値(すなわち式(6) に示すコスト関数の値の総和)が最小になるフィルタ係数を算出する。その出力は,ダウンサンプリング対象の全フレームのフィルタ係数Wi である。
【産業上の利用可能性】
【0190】
本発明は,フィルタリングにより高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換を実行するときに適用できるものであり,本発明を適用することで,高フレームレート映像信号に対してのダウンサンプリングにより得られた所望のフレームレートの映像信号を符号化する場合に,等長のフレーム間隔の間引きや単純平均のフィルタリングにより得られた映像信号よりも符号量を低く抑えることができるようになる。
【符号の説明】
【0191】
1 フレームレート変換装置
10 高フレームレート映像ファイル
11 低フレームレート映像ファイル
12 フレームレートダウンサンプリング部
120 コスト関数算出部
121 ダウンサンプリング実行部
122 作業用メモリ
1200 動き補償予測誤差算出部
1201 動き推定部
1202 ジャーキネス評価尺度算出部
1210 入力部
1211 動きベクトル設定部
1212 フィルタ係数決定部
12110 先頭フレーム生成部
12111 次フレーム位置特定部
12112 フィルタリング実行部
12113 コスト関数値最小化部
12114 フィルタ係数更新部
12115 更新終了条件判定部
12116 フレーム生成部
12117 全フレーム位置終了判定部
12120 フィルタ係数算出部
12121 動きベクトル算出部
12122 終了条件判定部
12123 フレーム生成部

【特許請求の範囲】
【請求項1】
等長間隔のダウンサンプリングにより規定されるフレーム位置において,高フレームレート映像信号の複数フレームをフィルタ係数を用いて重み付け加算することで1つのフレームに置き換えるフィルタリングを実行し,高フレームレート映像信号のフレームを低フレームレート映像信号に変換するフレームレート変換方法であって,
フィルタ係数によるフィルタリングにより生成されるフレームを予測対象フレームとし,生成済みのフレームを参照フレームとする動き探索により動きベクトルを求め,得られた動きベクトルを用いたときの動き補償予測誤差電力と,与えられた評価式により算出されるフレーム間の画像の動きが滑らかでない度合を示すジャーキネス評価尺度との加重和をコスト関数とし,前記コスト関数の値を最小化するフィルタ係数を算出する処理を,所定の終了条件が成立するまで繰り返すことで,予測対象フレームに対しての最適なフィルタ係数を算出するとともに,そのフィルタ係数でフィルタリングする場合の動きベクトルを特定することを,ダウンサンプリング対象の全てのフレームについて実行する第1の過程と,
前記特定した動きベクトルを用いることで算出される全フレームに対しての前記コスト関数の値の総和を最小化するフィルタ係数を再計算することで,ダウンサンプリングに用いるフィルタ係数を算出する第2の過程とを有する
ことを特徴とするフレームレート変換方法。
【請求項2】
請求項1に記載のフレームレート変換方法において,
前記第1の過程における所定の終了条件は,前記繰り返しの回数が所定の上限値より大きくなったという条件,または前記繰り返しの処理によるフィルタ係数の変化量が所定の閾値以下となったという条件,または前記繰り返しの処理による前記コスト関数の値の変化量が所定の閾値以下となったという条件である
ことを特徴とするフレームレート変換方法。
【請求項3】
請求項1または請求項2に記載のフレームレート変換方法において,
前記第2の過程では,前記フィルタ係数の再計算で求めたフィルタ係数を用いてフィルタリングすることにより得られた全フレームの動きベクトルを探索し,その動きベクトルを用いて,全フレームに対しての前記コスト関数の値の総和を最小化するフィルタ係数を算出することを所定の終了条件が成立するまで繰り返すことで,最終的なフィルタ係数を算出する
ことを特徴とするフレームレート変換方法。
【請求項4】
等長間隔のダウンサンプリングにより規定されるフレーム位置において,高フレームレート映像信号の複数フレームをフィルタ係数を用いて重み付け加算することで1つのフレームに置き換えるフィルタリングを実行し,高フレームレート映像信号のフレームを低フレームレート映像信号に変換するフレームレート変換装置であって,
フィルタ係数によるフィルタリングにより生成されるフレームを予測対象フレームとし,生成済みのフレームを参照フレームとする動き探索により動きベクトルを求め,得られた動きベクトルを用いたときの動き補償予測誤差電力と,与えられた評価式により算出されるフレーム間の画像の動きが滑らかでない度合を示すジャーキネス評価尺度との加重和をコスト関数とし,前記コスト関数の値を最小化するフィルタ係数を算出する処理を,所定の終了条件が成立するまで繰り返すことで,予測対象フレームに対しての最適なフィルタ係数を算出するとともに,そのフィルタ係数でフィルタリングする場合の動きベクトルを特定することを,ダウンサンプリング対象の全てのフレームについて実行する第1の手段と,
前記特定した動きベクトルを用いることで算出される全フレームに対しての前記コスト関数の値の総和を最小化するフィルタ係数を再計算することで,ダウンサンプリングに用いるフィルタ係数を算出する第2の手段とを備える
ことを特徴とするフレームレート変換装置。
【請求項5】
請求項4に記載のフレームレート変換装置において,
前記第1の手段が用いる所定の終了条件は,前記繰り返しの回数が所定の上限値より大きくなったという条件,または前記繰り返しの処理によるフィルタ係数の変化量が所定の閾値以下となったという条件,または前記繰り返しの処理による前記コスト関数の値の変化量が所定の閾値以下となったという条件である
ことを特徴とするフレームレート変換装置。
【請求項6】
請求項4または請求項5に記載のフレームレート変換装置において,
前記第2の手段は,さらに前記フィルタ係数の再計算で求めたフィルタ係数を用いてフィルタリングすることにより得られた全フレームの動きベクトルを探索し,その動きベクトルを用いて,全フレームに対しての前記コスト関数の値の総和を最小化するフィルタ係数を算出することを所定の終了条件が成立するまで繰り返すことで,最終的なフィルタ係数を算出する手段である
ことを特徴とするフレームレート変換装置。
【請求項7】
請求項1から請求項3までのいずれか1項に記載のフレームレート変換方法を,コンピュータに実行させるためのフレームレート変換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2011−49633(P2011−49633A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−194045(P2009−194045)
【出願日】平成21年8月25日(2009.8.25)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 2009年3月5日 社団法人情報処理学会主催「情報処理学会研究報告」において文書をもって発表
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】