説明

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

【課題】本発明は、フィルタリング後の低フレームレート映像信号の符号化効率を考慮した形でフレームレート変換を実現する技術の提供を目的とする。
【解決手段】等間隔のフレーム位置において、各フィルタ係数を用いる場合に生成されるフレームのそれぞれについて、規定数前のフレーム位置において生成されるフレームとの間で低フレームレート映像信号の符号化効率を示す値を算出し、それに基づいて、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるフィルタ係数を特定することを、最終のフレーム位置に向けて繰り返す。そして、繰り返しの実行を終えたフレーム位置において、符号化効率表示値の総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出し、それを起点として先に特定したフィルタ係数を辿ることで、各フレーム位置で用いるフィルタ係数を選択する。

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

【0021】
また、単純平均では、下記の式(2)で表されるフレームをダウンサンプリング後のフレームとする。
【0022】
【数2】

【0023】
しかしながら、フレーム間引きと単純平均のいずれの方法も、動き補償を伴う動画像符号化を想定した手法ではなく、ダウンサンプリング後の映像信号の符号化効率の観点からは最適な手法とはいえない。
【0024】
そこで、本発明では、時間方向のエイリアシング(動きのカクツキ)に起因する画質劣化を防止しつつ、ダウンサンプリング後の映像信号の符号化効率を向上することを実現するために、下記の式(3)で表されるように、タップ長2Δ+1を持つフィルタ係数Wi (iはダウンサンプリングのフレーム位置を示す変数)
i =(ωi 〔−Δ〕, .... ,ωi 〔Δ〕)
を用いたフィルタリングを行うことにより、図1に示すように、ダウンサンプリング後のフレームを得ることとする。
【0025】
【数3】

【0026】
ここで、Σωi 〔j〕=1を満たすものとする。ただし、Σはj=−Δi 〜Δi についての総和である。また、Δi は各フレーム毎に外部から与えられるパラメータ(iに依存しないこともある)である。
【0027】
なお、ダウンサンプリングのフレーム位置が先頭のフレーム位置や最終のフレーム位置である場合には、フィルタリングの対象となる2Δ+1枚のフレームが揃わないことも起こるが、この場合には、フィルタリング対象として存在するフレームについてのフィルタ係数を比例演算(それらのフィルタ係数の総和が1となるようにする比例演算)により決定することになる。
【0028】
そして、本発明では、このときに、ダウンサンプリング後の映像信号の符号化効率を向上することを実現すべく、ダウンサンプリング後の低フレームレート映像信号の全フレームの符号化効率を考慮した形で、このフィルタ係数Wi を決定するようにする。
【0029】
次に、本発明に特徴的な処理であるフィルタ係数Wi の決定方法について説明する。
【0030】
〔i〕“フィルタ係数の決定(その1)”
フィルタ係数Wi =(ωi 〔−Δ〕, .... ,ωi 〔Δ〕)として取り得るフィルタ係数の集合として、N通りの係数Ψn ={ψn 〔−Δ〕, .... ,ψn 〔Δ〕}(n=0, .... ,N−1)を考える。以下では、〜Ψ=(Ψ0 , .... ,ΨN-1 )とおく。なお、以下の表記において、「〜X」(Xは文字)における記号〜は、「X」の上に付く記号を示している。
【0031】
図2に示すように、等間隔に設定される各フレーム位置では、このN通りの中から適切なフィルタ係数を選択するものとする。以下、フィルタ係数の選択方法について詳細に説明する。
【0032】
信号^f(x, iMδt , Wi )をサイズSの区間B〔k〕(k=0, 1, .... ,K−1)に分割し、各区間B〔k〕(k=0, 1, .... ,K−1)を単位として動き補償(推定変移量di =(di 〔0〕, .... ,di 〔K−1〕)を行った場合、その区間内の動き補償後の予測誤差電力は下記の式(4)のように表現できる。なお、以下の表記において、「^X」(Xは文字)における記号^は、「X」の上に付く記号を示している。
【0033】
【数4】

【0034】
ここで、式(4)では、1つ前のフィルタリングにより生成されたフレーム(参照フレームとなるフレーム)との間で動き補償後の予測誤差電力を求めるようにしている。
【0035】
i とWi-1 が与えられた場合、この式(4)に従って、σi 2 〔Wi , Wi-1 〕を最小化するように推定変移量d〔k〕(k=0, 1, .... ,K−1)を設定し、d〔k, Wi , Wi-1 〕(k=0, 1, .... ,K−1)とおく。このとき、推定変移量d〔k〕の精度は外部から与えられるものとする(例:整数画素精度、1/2画素精度、1/4画素精度など)。
【0036】
ここで、注意すべきは、Wi の設定方法である。σi 2 〔Wi , Wi-1 〕を最小化するようにWi を設定したのでは、シーケンス全体での予測誤差電力
Σσi 2 〔Wi , Wi-1
但し、Σはi=1〜(J/M−1)の総和で、Jはフレーム数
を最小化したことにはならない。なぜなら、Wi の選択はσi 2 〔Wi+1 , Wi 〕にも影響を与えるからである。
【0037】
従って、求めるべきパラメータは、下記の式(5)を満たすJ/M個のパラメータである。
【0038】
【数5】

【0039】
各Wi を〜Ψに含まれるN通りの候補から選択を行うため、J/M個のパラメータ(W0 , .... ,WJ/M-1 )の取り得る組み合わせはNJ/M 通りであり、この中から最適な組み合わせ(W* 0 , .... ,W* J/M-1 )を総当たりで探索するのは、計算量的に困難である。
【0040】
そこで、本発明では、σi 2 〔Wi , Wi-1 〕が直前フレームの結果のみに依存することに着目し、以下のように最適解を算出する。
【0041】
まず、Wi として取り得る全てのフィルタ係数集合〜Ψに対して、最適なWi-1 , .... ,W0 を用いた場合のΣσi 2 〔Wi , Wi-1 〕(但し、Σはi=1〜iの総和)をSi (Wi )として定義する。
【0042】
ここで、σi 2 〔Wi , Wi-1 〕が直前フレームの結果のみに依存することに着目すると、Si (Wi )はSi-1 (Wi-1 )を用いて、図3に示すように、下記の式(6)のように表される。なお、i=1, .... ,(J/M−1)である。
【0043】
【数6】

【0044】
このとき算出したSi (Wi )(Wi =Ψ0 , .... ,ΨN-1 )をメモリに格納しておき、Si+1 (Wi+1 )の計算で用いるものとする。さらに、この式(6)の最小値を与えるWi-1 を、図3中に示すように、^Wi-1 (Wi )とおく。この^Wi-1 (Wi )(Wi =Ψ0 , .... ,ΨN-1 )についても、全てメモリに格納しておくものとする。ここで、「^X」(Xは文字)における記号^は、「X」の上に付く記号を示している。
【0045】
式(5)の最小化問題は、下記の式(7)のように表せる。
【0046】
【数7】

【0047】
この式(7)を最小化するWJ/M-1 をW* J/M-1 とおくと、このW* J/M-1 は下記の式(8)で表せる。
【0048】
【数8】

【0049】
* J/M-1 に対する最適解は、^WJ/M-2 (WJ/M-1 )としてメモリに格納されているので、その値を参照し、W* J/M-2 =^WJ/M-2 (WJ/M-1 )とする。
【0050】
以下、同様の参照処理を、
* J/M-3 =^WJ/M-3 (WJ/M-2
・・・・・
* 0 =^W0 (W1
として繰り返す。
【0051】
このようにして、“フィルタ係数の決定(その1)”によれば、総当たりによる探索に依らずに、等間隔に設定される各フレーム位置iで用いるフィルタ係数の最適な組み合わせ(W* 0 , .... ,W* J/M-1 )を求めることができるようになる。
【0052】
以上の説明では、動き補償予測誤差電力を最小化するようにフィルタ係数の選択を行うことで説明したが、特定の符号化器(例えば、H.264準拠の符号化器)により符号化を行い、その符号化歪みDと符号量Rの加重和のラグランジェコスト(符号化コスト:J=D+λR)を最小化するようにフィルタ係数の選択を行うようにしてもよい。ここで、λは符号化歪みDと符号量Rの重みを調整するパラメータであり、外部から与えられることになる。
【0053】
〔ii〕“フィルタ係数の決定(その2)”
“フィルタ係数の決定(その1)”では、フィルタ係数Wi =(ωi 〔−Δ〕, .... ,ωi 〔Δ〕)を用いた式(3)で示されるフィルタリングを行うことによりダウンサンプリング後のフレームを得るようにしたが、“フィルタ係数の決定(その2)”では、下記の式(9)で示されるフィルタリングを行うことによりダウンサンプリング後のフレームを得るようにする。
【0054】
【数9】

【0055】
ここで、Σωi 〔j〕=1を満たすものとする。ただし、Σはj=−Δi 〜Δi についての総和である。また、Δi は各フレーム毎に外部から与えられるパラメータ(iに依存しないこともある)である。
【0056】
式(3)との違いは、式(9)では、フィルタ処理の位置を補正するパラメータpi が加わった点である。このパラメータpi は、pi =0, 1, .... ,P−1の値をとる。なお、このpi の値については、0を中心として正負の値をとるように定義することも可能である。
【0057】
通常、図17に示すように、ダウンサンプリング後のフレーム時間間隔が等間隔になるように実施される。これは、非等間隔の時間サンプリングでは、ジャーキネス(画質劣化)を発生させるという仮定に基づくものである。ダウンサンプリングの対象が低フレームレート映像信号の場合、この仮定は正しい。しかし、ダウンサンプリングの対象が高フレームレート映像信号の場合は、その限りではない。ダウンサンプリングの対象が高フレームレート映像信号の場合、フレームを厳密に等間隔に配置しなくても、等間隔の乖離が一定閾値以内であれば、視覚的には大きなジャーキネス(画質劣化)が発生しないからである。
【0058】
そこで、“フィルタ係数の決定(その2)”では、フィルタ処理の位置を補正するパラメータpi を加えるようにしている。
【0059】
すなわち、フィルタ係数Wi =(ωi 〔−Δ〕, .... ,ωi 〔Δ〕)として取り得るフィルタ係数の集合として、N通りの係数Ψn ={ψn 〔−Δ〕, .... ,ψn 〔Δ〕}(n=0, .... ,N−1)を考え、さらに、これらのフィルタ係数を施す位置として、P通りの位置を選択可能とする。
【0060】
P=3について例示する図4に示すように、等間隔に設定される各フレーム位置では、このN×P通りの中から適切なフィルタ係数を選択するものとする。以下、フィルタ係数の選択方法について詳細に説明する。
【0061】
信号^f(x, iMδt , Wi , pi )をサイズSの区間B〔k〕(k=0, 1, .... ,K−1)に分割し、各区間B〔k〕(k=0, 1, .... ,K−1)を単位として動き補償(推定変移量di =(di 〔0〕, .... ,di 〔K−1〕)を行った場合、その区間内の動き補償後の予測誤差電力は下記の式(10)のように表現できる。
【0062】
【数10】

【0063】
ここで、式(10)では、1つ前のフィルタリングにより生成されたフレーム(参照フレームとなるフレーム)との間で動き補償後の予測誤差電力を求めるようにしている。
【0064】
i , Wi-1 , pi , pi-1 が与えられた場合、この式(10)に従って、σi 2 〔Wi , Wi-1 , pi , pi-1 〕を最小化するように推定変移量d〔k〕(k=0, 1, .... ,K−1)を設定し、d〔k, Wi , Wi-1 , pi , pi-1 〕(k=0, 1, .... ,K−1)とおく。このとき、推定変移量d〔k〕の精度は外部から与えられるものとする(例:整数画素精度、1/2画素精度、1/4画素精度など)。
【0065】
ここで、注意すべきは、Wi , pi の設定方法である。σi 2 〔Wi , Wi-1 , pi , pi-1 〕を最小化するようにWi , pi を設定したのでは、シーケンス全体での予測誤差電力
Σσi 2 〔Wi , Wi-1 , pi , pi-1
但し、Σはi=1〜(J/M−1)の総和で、Jはフレーム数
を最小化したことにはならない。なぜなら、Wi , pi の選択はσi 2 〔Wi , Wi-1 , pi , pi-1 〕にも影響を与えるからである。
【0066】
従って、求めるべきパラメータは、下記の式(11)を満たす2×(J/M)個のパラメータである。
【0067】
【数11】

【0068】
各Wi を〜Ψに含まれるN通りの候補から選択を行い、さらに、各pi をP通りの候補から選択を行うため、2J/M個のパラメータ(W0 , .... ,WJ/M-1 , p0 , .... ,pJ/M-1 )の取り得る組み合わせは(PN)J/M 通りであり、この中から最適な組み合わせ(W* 0 , .... ,W* J/M-1 , p* 0 , .... ,p* J/M-1 )を総当たりで探索するのは、計算量的に困難である。
【0069】
そこで、本発明では、σi 2 〔Wi , Wi-1 , pi , pi-1 〕が直前フレームの結果のみに依存することに着目し、以下のように最適解を算出する。
【0070】
まず、Wi として取り得る全てのフィルタ係数集合〜Ψおよびpi として取り得るパラメータ集合(pi =0, 1, .... ,P−1)に対して、最適なWi-1 , .... ,W0 , pi-1 , .... ,p0 を用いた場合のΣσi 2 〔Wi , Wi-1 , pi , pi-1 〕(但し、Σはi=1〜iの総和)をSi (Wi , pi )として定義する。
【0071】
ここで、σi 2 〔Wi , Wi-1 , pi , pi-1 〕が直前フレームの結果のみに依存することに着目すると、Si (Wi , pi )はSi-1 (Wi-1 , pi-1 )を用いて、図5に示すように、下記の式(12)のように表される。なお、i=1, .... ,(J/M−1)である。
【0072】
【数12】

【0073】
このとき算出したSi (Wi , pi )をメモリに格納しておき、Si+1 (Wi+1 , pi+1 )の計算で用いるものとする。さらに、この式(12)の最小値を与えるWi-1 、pi-1 を、図5中に示すように、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )とおく。この^Wi-1 (Wi , pi )および^pi-1 (Wi , pi )(Wi =Ψ0 , .... ,ΨN-1 , pi =0, 1, .... ,P−1)についても、全てメモリに格納しておくものとする。
【0074】
式(11)の最小化問題は、下記の式(13)のように表せる。
【0075】
【数13】

【0076】
この式(13)を最小化するWJ/M-1 、pJ/M-1 を、それぞれW* J/M-1 、p* J/M-1 とおくと、このW* J/M-1 およびp* J/M-1 は下記の式(14)で表せる。
【0077】
【数14】

【0078】
* J/M-1 、p* J/M-1 に対する最適解は、^WJ/M-2 (WJ/M-1 , pJ/M-1 )、^pJ/M-2 (WJ/M-1 , pJ/M-1 )としてメモリに格納されているので、その値を参照し、W* J/M-2 =^WJ/M-2 (WJ/M-1 , pJ/M-1 )、p* J/M-2 =^pJ/M-2 (WJ/M-1 , pJ/M-1 )とする。
【0079】
以下、同様の参照処理を、
* J/M-3 =^WJ/M-3 (WJ/M-2 , pJ/M-2
* J/M-3 =^pJ/M-3 (WJ/M-2 , pJ/M-2
・・・・・
* 0 =^W0 (W1 , p1
* 0 =^p0 (W1 , p1
として繰り返す。
【0080】
このようにして、“フィルタ係数の決定(その2)”によれば、各フレーム位置iの近傍についてもフィルタ処理の対象と含めるようにする場合において、総当たりによる探索に依らずに、等間隔に設定される各フレーム位置iで用いるフィルタ係数の最適な組み合わせ(W* 0 , .... ,W* J/M-1 )とフィルタリング位置の最適な組み合わせ(p* 0 , .... ,p* J/M-1 )を求めることができるようになる。
【0081】
以上の説明では、動き補償予測誤差電力を最小化するようにフィルタ係数の選択を行うことで説明したが、特定の符号化器(例えば、H.264準拠の符号化器)により符号化を行い、その符号化歪みDと符号量Rの加重和のラグランジェコスト(符号化コスト:J=D+λR)を最小化するようにフィルタ係数の選択を行うようにしてもよい。ここで、λは符号化歪みDと符号量Rの重みを調整するパラメータであり、外部から与えられることになる。
【0082】
〔2〕本発明の構成
次に、本発明の構成について説明する。
【0083】
本発明のフレームレート変換装置は、等間隔のフレーム位置において、予め用意するフィルタ係数集合の中からフィルタ係数を選択し、高フレームレート映像信号の複数フレームをそのフィルタ係数を用いてフィルタリングすることでダウンサンプリングを実行するものであり、そのことを実行するために、(1)等間隔のフレーム位置において、各フィルタ係数を用いる場合に生成される複数フレームのそれぞれについて、規定数前のフレーム位置において生成される複数フレームのそれぞれとの間で、ダウンサンプリングにより生成される低フレームレート映像信号の符号化効率を示す値を算出し、それに基づいて、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるフィルタ係数を特定することを、先頭のフレーム位置から最終のフレーム位置に向けて繰り返し実行する実行手段と、(2)実行手段による繰り返しの実行を終えたフレーム位置において生成される複数フレームの中から、符号化効率表示値の総和の最小値を持つフレームを検出することで、その総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出する検出手段と、(3)検出手段の検出したフィルタ係数を起点として実行手段の特定したフィルタ係数を辿ることで、各フレーム位置で用いるフィルタ係数を選択する選択手段とを備えるように構成する。
【0084】
ここで、実行手段は、具体的には、算出した符号化効率表示値とその算出対象となった規定数前のフレーム位置にあるフレームの持つ符号化効率表示値の総和との加算値を求めて、それらの中の最小値を特定することで、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるその規定数前のフレーム位置におけるフィルタ係数を特定するとともに、その加算値をその特定元のフレームの持つ符号化効率表示値の総和として設定するように処理する。
【0085】
この構成を採るときに、等間隔のフレーム位置を補正する位置補正用パラメータを設定する設定手段を備えることがあり、この場合には、実行手段は、位置補正用パラメータにより補正されるフレーム位置において生成される複数フレームについても、等間隔のフレーム位置において生成されるフレームに含める形で処理を実行する。
【0086】
また、実行手段は、符号化効率表示値として、動き補償予測誤差電力を算出したり、所定の符号化器を用いて符号化する場合に得られる符号化コストを算出することがある。
【0087】
以上の各処理手段が動作することで実現される本発明のフレームレート変換方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
【0088】
このように構成される本発明のフレームレート変換装置において、実行手段が、低フレームレート映像信号の符号化処理に合わせて、1つ前のフレーム位置において生成される複数フレームのそれぞれとの間で、ダウンサンプリングにより生成される低フレームレート映像信号の符号化効率を示す値を算出するという構成を採る場合には、実行手段によるフィルタ係数の特定処理のためのパスが1つとなって、実行手段による繰り返しの実行の終了が最終のフレーム位置のみとなるので、本発明のフレームレート変換装置は以下のように構成されることになる。
【0089】
すなわち、本発明のフレームレート変換装置は、等間隔のフレーム位置において、予め用意するフィルタ係数集合の中からフィルタ係数を選択し、高フレームレート映像信号の複数フレームをそのフィルタ係数を用いてフィルタリングすることでダウンサンプリングを実行するものであり、そのことを実行するために、(1)等間隔のフレーム位置において、各フィルタ係数を用いる場合に生成される複数フレームのそれぞれについて、1つ前のフレーム位置において生成される複数フレームのそれぞれとの間で、ダウンサンプリングにより生成される低フレームレート映像信号の符号化効率を示す値を算出し、それに基づいて、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられる1つ前のフレーム位置におけるフィルタ係数を特定することを、最終のフレーム位置まで繰り返し実行する実行手段と、(2)最終のフレーム位置において生成される複数フレームの中から、符号化効率表示値の総和の最小値を持つフレームを検出することで、その総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出する検出手段と、(3)検出手段の検出したフィルタ係数を起点として実行手段の特定したフィルタ係数を辿ることで、各フレーム位置で用いるフィルタ係数を選択する選択手段とを備えるように構成する。
【発明の効果】
【0090】
本発明では、高フレームレート映像信号のフレームをフィルタリングに基づくダウンサンプリングにより低フレームレート映像信号へとフレームレート変換を実行するときに、ダウンサンプリング後の低フレームレート映像信号の全シーケンスに対する符号化効率を考慮した形で、そのフレームレート変換処理を実行する。
【0091】
これから、本発明によれば、高フレームレート映像信号に対してのフィルタリングに基づくダウンサンプリングにより得られた所望のフレームレートの映像信号を符号化する場合に、均等フレーム間隔の間引きにより得られた映像信号よりも符号量を低く抑えることができるようになるとともに、全シーケンスに対する符号化効率を考慮しないで行う非等のフレーム間隔の間引きにより得られた映像信号よりも符号量を低く抑えることができるようになる。
【0092】
そして、本発明によれば、高フレームレート映像信号のフレームをフィルタリングに基づくダウンサンプリングにより低フレームレート映像信号へと変換することから、時間方向のエイリアシングに起因する画質劣化を防止することができるようになる。
【図面の簡単な説明】
【0093】
【図1】フィルタリングに基づくフレームレート変換処理の説明図である。
【図2】フィルタ係数の選択処理の説明図である。
【図3】本発明で算出するSi (Wi )の算出処理の説明図である。
【図4】フィルタ処理の位置を補正するパラメータの説明図である。
【図5】本発明で算出するSi (Wi , pi )の算出処理の説明図である。
【図6】本発明のフレームレート変換装置の装置構成図である。
【図7】フィルタ係数記憶部のデータ構造の説明図である。
【図8】本発明のフレームレート変換装置の装置構成図である。
【図9】本発明のフレームレート変換装置の装置構成図である。
【図10】ダウンサンプリング実行部の実行するフローチャートである。
【図11】ダウンサンプリング実行部の実行するフローチャートである。
【図12】ダウンサンプリング実行部の実行するフローチャートである。
【図13】ダウンサンプリング実行部の実行するフローチャートである。
【図14】ダウンサンプリング実行部の実行するフローチャートである。
【図15】ダウンサンプリング実行部の実行するフローチャートである。
【図16】本発明の有効性を検証するために行った実験結果の説明図である。
【図17】従来技術によるフレームレート変換処理の説明図である。
【発明を実施するための形態】
【0094】
以下、実施の形態に従って本発明を詳細に説明する。
【0095】
図6に、本発明のフレームレート変換装置1の装置構成の一例を図示する。
【0096】
この図に示すように、本発明のフレームレート変換装置1は、フレームレート変換処理の対象となる高フレームレート映像信号を格納する高フレームレート映像ファイル10と、フレームレート変換処理された低フレームレート映像信号を格納する低フレームレート映像ファイル11と、高フレームレート映像信号から低フレームレート映像信号へのフィルタリングに基づくフレームレート変換処理を実行するフレームレートダウンサンプリング部12とを備える。
【0097】
このフレームレートダウンサンプリング部12は、動き推定部1200を備えて、動き補償予測誤差電力を算出する動き補償予測誤差算出部120と、フィルタ係数の集合を記憶するフィルタ係数記憶部121と、動き補償予測誤差算出部120の算出する動き補償予測誤差電力を評価値として用いて、フィルタ係数記憶部121の記憶するフィルタ係数集合の中から最適なフィルタ係数を選択して、その選択したフィルタ係数を使って高フレームレート映像信号の複数フレームに対してフィルタリング処理を施すことでフレームレートダウンサンプリング処理を実行するダウンサンプリング実行部122と、ダウンサンプリング実行部122の作業用データを記憶する作業用メモリ123とを備える。
【0098】
ここで、フィルタ係数記憶部121は、フィルタリング処理が2Δ+1枚のフレームに対して施される場合には、図7に示すようなデータ構造に従って、ダウンサンプリング実行部122の用いるフィルタ係数の集合を記憶することになる。
【0099】
ダウンサンプリング実行部122の実行するフレーム選択処理の説明に入る前に、動き補償予測誤差算出部120の備える動き推定部1200の処理について説明する。
【0100】
動き推定部1200は、予測対象フレームと参照フレームとを入力として、下記に示す処理を実行することで、予測対象フレーム内のブロック毎の動きベクトルd〔k〕、すなわち、式(4)や式(10)におけるd〔k〕(k=0, 1, .... ,K−1)を推定する処理を行う。ここで、kはブロックを同定するインデックスである。
【0101】
処理:・式(4)や式(10)のΣ{x∈B〔k〕}の項(第kブロックの予測誤差和 )を最小化する動きベクトルd〔k〕を求める
・動きベクトルは、予め与えられた探索範囲−D≦d〔k〕≦D−1内の値から 選択される
・選択の方法は、探索範囲内の全ての候補ベクトルに対して、その候補ベクトル を用いた場合の予測誤差和を算出し、その予測誤差和を最小化するベクトルを d〔k〕とすることで行う
動き補償予測誤差算出部120は、動き推定部1200の推定したベクトルd〔k〕を使い、式(4)や式(10)に基づいて、予測対象フレームと参照フレームとの間の動き補償予測誤差電力を算出する。
【0102】
〔1〕第1の実施形態例
次に、第1の実施形態例について説明する。
【0103】
〔1−1〕ダウンサンプリング実行部122の装置構成
図8に、第1の実施形態例を実現すべく構成されるダウンサンプリング実行部122の装置構成の一例を図示する。ここで、以下に説明するダウンサンプリング実行部122の処理では、フィルタリングに用いるフィルタ係数の選択基準として、動き補償予測誤差誤差電力を用いる場合を示す。
【0104】
ダウンサンプリング実行部122は、フィルタリングに基づくフレームレートダウンサンプリング処理を実行するものであり、第1の実施形態例に従う場合には、この図8に示すように、入力部1220と、処理フレーム位置選択部1221と、処理フィルタ係数選択部1222と、参照フィルタ係数決定部1223と、全フレーム位置終了判定部1224と、累積予測誤差最小化最終フィルタ係数検出部1225と、決定参照フィルタ係数追跡部1226と、フィルタリング実行部1227とを備える。
【0105】
この入力部1220は、高フレームレート映像信号のフレーム数Jと、高フレームレート映像信号のフレーム間隔δt と、ダウンサンプリング比Mとを読み込む。
【0106】
処理フレーム位置選択部1221は、ダウンサンプリング比Mとフレーム間隔δt とに基づく等間隔のダウンサンプリングにより規定されるダウンサンプリングフレーム位置(以下、フレーム位置と略記する)を選択対象として、先頭のフレーム位置の1つ後のフレーム位置を起点にして、最終のフレーム位置までのフレーム位置を順次、処理フレーム位置として選択する。
【0107】
処理フィルタ係数選択部1222は、フィルタ係数記憶部121に記憶されるフィルタ係数集合の中からフィルタ係数を順次選択して、その選択したフィルタ係数を使って、処理フレーム位置選択部1221の選択した処理フレーム位置の近傍に位置するフレームをフィルタリングすることで処理フレームを生成する。
【0108】
参照フィルタ係数決定部1223は、処理フィルタ係数選択部1222の生成した処理フレームと、1つ前のフレーム位置において各フィルタ係数の選択に対応付けて生成された参照フレームのそれぞれとの間で動き補償予測誤差電力を算出し、その算出した動き補償予測誤差電力とその算出対象となった参照フレームの持つ動き補償予測誤差電力の総和との加算値を求めて(累積予測誤差算出機能)、それらの中の最小値を特定することで(最小累積予測誤差特定機能)、先頭のフレーム位置からの動き補償予測誤差電力の総和を最小化するつながりを持つ参照フレームを特定して、その特定した参照フレームの生成に用いられたフィルタ係数を、処理フィルタ係数選択部1222の選択したフィルタ係数にとっての最適なフィルタ係数(参照フィルタ係数)として決定する。
【0109】
全フレーム位置終了判定部1224は、最終のフレーム位置までの全フレーム位置について処理を行ったのか否かを判定して、全フレーム位置について処理を行っていないことを判定するときには、処理フレーム位置選択部1221に対して次のフレーム位置を選択するように指示し、全フレーム位置について処理を行ったことを判定するときには、累積予測誤差最小化最終フィルタ係数検出部1225に対して処理の実行を指示する。
【0110】
累積予測誤差最小化最終フィルタ係数検出部1225は、最終のフレーム位置において算出された動き補償予測誤差電力の総和(参照フィルタ係数決定部1223が算出したもの)について、それらの中の最小値を持つフレームを検出することで、先頭のフレーム位置からの動き補償予測誤差電力の総和を最小化する最終フレームを特定して、その特定した最終フレームの生成に用いられたフィルタ係数を最終のフレーム位置における最適なフィルタ係数(最終フィルタ係数)として検出する。
【0111】
決定参照フィルタ係数追跡部1226は、累積予測誤差最小化最終フィルタ係数検出部1225の検出した最終フィルタ係数を起点として、参照フィルタ係数決定部1223の決定した参照フィルタ係数を辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについての最適な参照フィルタ係数を抽出する。
【0112】
フィルタリング実行部1227は、累積予測誤差最小化最終フィルタ係数検出部1225の検出した最終フィルタ係数と、決定参照フィルタ係数追跡部1226の抽出した参照フィルタ係数とを用いてフィルタリング処理を実行することで高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行する。
【0113】
〔1−2〕ダウンサンプリング実行部122の実行する処理
下記に、このように構成されるダウンサンプリング実行部122の実行するフレームレートダウンサンプリング処理の流れを示す。
【0114】
1.撮影された映像信号(フレームレート変換処理の対象となる高フレームレート映像 信号)、そのフレーム数J、そのフレームレート(フレーム間隔δt を算出するた めに用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.i=1, .... ,J/M−1について以下の処理を行う
4. Wi =Ψ0 , .... ,ΨN-1 について以下の処理を行う
5. Wi-1 =Ψ0 , .... ,ΨN-1 について以下の処理を行う
6. 参照フレームを^f(x−di 〔k〕, (i−1)Mδt , Wi-1 )とする 場合の^f(x, iMδt , Wi )に対する動き補償予測誤差電力(式(4 ))を最小化する動きベクトルを求める。動きベクトルの求め方は外部から与 えられる。例えば、探索範囲内の候補をしらみつぶしにあたる全探索法を用 いる。求めた動きベクトルを用いた場合の動き補償予測誤差電力をσi 2 〔 Wi , Wi-1 〕に格納する
7. σi 2 〔Wi , Wi-1 〕+Si-1 (Wi-1 )の値を算出する
(ただし、i=1の場合には、σ1 2 〔W1 , W0 〕の値を算出する)
8. σi 2 〔Wi , Wi-1 〕+Si-1 (Wi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 ) の中での最小値をSi (Wi )に格納する
(ただし、i=1の場合には、σ1 2 〔W1 , W0 〕(W0 =Ψ0 , .... , ΨN-1 )の中での最小値をS1 (W1 )に格納する)
9. Si (Wi )を与えるWi-1 を^Wi-1 (Wi )に格納する
10.SJ/M-1 (WJ/M-1 )を最小化するWJ/M-1 をW* J/M-1 に格納する
11.i=J/M−2, .... ,1について以下の処理を行う
12. W* i-1 =^Wi-1 (Wi )を読み出す
13.ダウンサンプリング後の第iフレームとして、^f(x, iMδt , W* i
(x=0, .... ,X−1)を格納する。
【0115】
このようにして、ダウンサンプリング実行部122は、まず最初に、予め用意した各フィルタ係数のそれぞれを使って、等間隔のダウンサンプリングにより規定されるフレーム位置の近傍に位置するフレームをフィルタリングすることでフレームを生成して、図3に示すように、その生成したフレームのそれぞれについて、1つ前のフレーム位置において各フィルタ係数の選択に対応付けて同様に生成したフレームのそれぞれとの間で動き補償予測誤差電力を算出し、その算出した動き補償予測誤差電力とその算出対象となった参照フレームの持つ動き補償予測誤差電力の総和との加算値を求めて、それらの中の最小値を特定することで、1つ前のフレーム位置における最適なフィルタ係数を求めるという処理を、最終のフレーム位置まで繰り返して実行し、
続いて、最終のフレーム位置において算出した動き補償予測誤差電力の総和について、それらの中の最小値を持つフレームを検出することで、最終のフレーム位置における最適なフィルタ係数を検出して、その検出したフィルタ係数を起点として先に特定したフィルタ係数を先頭のフレーム位置に向けて辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについて最適なフィルタ係数を抽出し、
最後に、それらの抽出した最適なフィルタ係数を用いて各フレーム位置においてフィルタリングを実行することで、高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行するのである。
【0116】
ここで、ダウンサンプリング実行部122は、低フレームレート映像信号の符号化処理に合わせて、1つ前のフレーム位置との間ではなくて、それよりも前の規定数前のフレーム位置との間で動き補償予測誤差電力を算出するようにしてもよい。
【0117】
この場合には、フィルタ係数の特定処理のためのパスが複数となって、先頭のフレーム位置およびそれに続く規定数のフレーム位置を起点として繰り返しの実行を開始して、最終のフレーム位置よりも規定数前のフレーム位置およびそれに続く最終のフレーム位置までのフレーム位置について、その繰り返しの実行を行うことになる。
【0118】
そして、その繰り返しの実行を終えたフレーム位置において生成される複数フレームの中から、動き補償予測誤差電力の総和の最小値を持つフレームを検出することで、その総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出して、その検出したフィルタ係数を起点として先に特定したフィルタ係数を先頭のフレーム位置に向けて辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについて最適なフィルタ係数を抽出することになる。
【0119】
〔2〕第2の実施形態例
次に、第2の実施形態例について説明する。
【0120】
〔2−1〕ダウンサンプリング実行部122の装置構成
図9に、第2の実施形態例を実現すべく構成されるダウンサンプリング実行部122の装置構成の一例を図示する。ここで、以下に説明するダウンサンプリング実行部122の処理では、フィルタリングに用いるフィルタ係数の選択基準として、動き補償予測誤差誤差電力を用いる場合を示す。
【0121】
ダウンサンプリング実行部122は、フィルタリングに基づくフレームレートダウンサンプリング処理を実行するものであり、第2の実施形態例に従う場合には、この図9に示すように、入力部1220αと、処理フレーム位置選択部1221αと、処理位置・フィルタ係数選択部1222αと、参照位置・フィルタ係数決定部1223αと、全フレーム位置終了判定部1224αと、累積予測誤差最小化最終位置・フィルタ係数検出部1225αと、決定参照位置・フィルタ係数追跡部1226αと、フィルタリング実行部1227とを備える。
【0122】
この入力部1220αは、高フレームレート映像信号のフレーム数Jと、高フレームレート映像信号のフレーム間隔δt と、ダウンサンプリング比Mとを読み込む。
【0123】
処理フレーム位置選択部1221αは、ダウンサンプリング比Mとフレーム間隔δt とに基づく等間隔のダウンサンプリングにより規定されるダウンサンプリングフレーム位置(以下、フレーム位置と略記する)を選択対象として、先頭のフレーム位置の1つ後のフレーム位置を起点にして、最終のフレーム位置までのフレーム位置を順次、処理フレーム位置として選択する。
【0124】
処理位置・フィルタ係数選択部1222αは、フィルタ処理の位置を補正するパラメータ(前述したpi :pi =0, 1, .... ,P−1)を順次設定するとともに、フィルタ係数記憶部121に記憶されるフィルタ係数集合の中からフィルタ係数を順次選択して、その設定・選択した処理位置およびフィルタ係数を使って、処理フレーム位置選択部1221αの選択した処理フレーム位置の近傍に位置するフレームをフィルタリングすることで処理フレームを生成する。
【0125】
参照位置・フィルタ係数決定部1223αは、処理位置・フィルタ係数選択部1222αの生成した処理フレームと、1つ前のフレーム位置において各参照位置・各フィルタ係数の設定・選択に対応付けて生成された参照フレームのそれぞれとの間で動き補償予測誤差電力を算出し、その算出した動き補償予測誤差電力とその算出対象となった参照フレームの持つ動き補償予測誤差電力の総和との加算値を求めて(累積予測誤差算出機能)、それらの中の最小値を特定することで(最小累積予測誤差特定機能)、先頭のフレーム位置からの動き補償予測誤差電力の総和を最小化するつながりを持つ参照フレームを特定して、その特定した参照フレームの生成に用いられた参照位置およびフィルタ係数を、処理位置・フィルタ係数選択部1222αの設定・選択した処理位置およびフィルタ係数にとっての最適な参照位置およびフィルタ係数(参照フィルタ係数)として決定する。
【0126】
全フレーム位置終了判定部1224αは、最終のフレーム位置までの全フレーム位置について処理を行ったのか否かを判定して、全フレーム位置について処理を行っていないことを判定するときには、処理フレーム位置選択部1221αに対して次のフレーム位置を選択するように指示し、全フレーム位置について処理を行ったことを判定するときには、累積予測誤差最小化最終位置・フィルタ係数検出部1225αに対して処理の実行を指示する。
【0127】
累積予測誤差最小化最終位置・フィルタ係数検出部1225αは、最終のフレーム位置において算出された動き補償予測誤差電力の総和(参照位置・フィルタ係数決定部1223αが算出したもの)について、それらの中の最小値を持つフレームを検出することで、先頭のフレーム位置からの動き補償予測誤差電力の総和を最小化する最終フレームを特定して、その特定した最終フレームの生成に用いられた最終位置およびフィルタ係数を最終のフレーム位置における最適な最終位置およびフィルタ係数(最終フィルタ係数)として検出する。
【0128】
決定参照位置・フィルタ係数追跡部1226αは、累積予測誤差最小化最終位置・フィルタ係数検出部1225αの検出した最終位置および最終フィルタ係数を起点として、参照位置・フィルタ係数決定部1223αの決定した参照位置および参照フィルタ係数を辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについての最適な参照位置および参照フィルタ係数を抽出する。
【0129】
フィルタリング実行部1227αは、累積予測誤差最小化最終位置・フィルタ係数検出部1225αの検出した最終位置および最終フィルタ係数と、決定参照位置・フィルタ係数追跡部1226αの抽出した参照位置および参照フィルタ係数とを用いてフィルタリング処理を実行することで高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行する。
【0130】
〔2−2〕ダウンサンプリング実行部122の実行する処理
下記に、このように構成されるダウンサンプリング実行部122の実行するフレームレートダウンサンプリング処理の流れを示す。
【0131】
1.撮影された映像信号(フレームレート変換処理の対象となる高フレームレート映像 信号)、そのフレーム数J、そのフレームレート(フレーム間隔δt を算出するた めに用いる)を読み込む
2.ダウンサンプリング比Mを読み込む
3.i=1, .... ,J/M−1について以下の処理を行う
4. Wi =Ψ0 , .... ,ΨN-1 について以下の処理を行う
5. pi =0, .... ,P−1について以下の処理を行う
6. Wi-1 =Ψ0 , .... ,ΨN-1 について以下の処理を行う
7. pi-1 =0, .... ,P−1について以下の処理を行う
8. 参照フレームを^f(x−di 〔k〕, (i−1)Mδt , Wi-1 , p i-1 )とする場合の^f(x, iMδt , Wi , pi )に対する動き補 償予測誤差電力(式(10))を最小化する動きベクトルを求める。動き ベクトルの求め方は外部から与えられる。例えば、探索範囲内の候補を しらみつぶしにあたる全探索法を用いる。求めた動きベクトルを用いた 場合の動き補償予測誤差電力をσi 2 〔Wi , Wi-1 , pi , pi-1 〕 に格納する
9. σi 2 〔Wi , Wi-1 , pi , pi-1 〕+Si-1 (Wi-1 , pi-1 )の 値を算出する
(ただし、i=1の場合には、σ1 2 〔W1 , W0 , p1 , p0 〕の 値を算出する)
10. σi 2 〔Wi , Wi-1 , pi , pi-1 〕+Si-1 (Wi-1 , pi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 , pi-1 =0, .... ,P−1)の中での最小値をSi ( Wi , pi )に格納する
(ただし、i=1の場合には、σ1 2 〔W1 , W0 , p1 , p0 〕(W0 = Ψ0 , .... ,ΨN-1 , p0 =0, .... ,P−1)の中での最小値をS1 ( W1 , p1 )に格納する)
11. Si (Wi , pi )を与えるWi-1 , pi-1 を^Wi-1 (Wi , pi ), ^p i-1 (Wi , pi )に格納する
12.SJ/M-1 (WJ/M-1 , pJ/M-1 )を最小化するWJ/M-1 , pJ/M-1 をW* J/M-1 , p* J/M-1 に格納する
13.i=J/M−2, .... ,1について以下の処理を行う
14. W* i-1 =^Wi-1 (Wi , pi )を読み出す
15. p* i-1 =^pi-1 (Wi , pi )を読み出す
16.ダウンサンプリング後の第iフレームとして、^f(x, iMδt , W* i , p* i )(x=0, .... ,X−1)を格納する。
【0132】
このようにして、ダウンサンプリング実行部122は、まず最初に、予め用意した各フィルタ係数および各位置補正用パラメータ値のそれぞれを使って、等間隔のダウンサンプリングにより規定されるフレーム位置の近傍に位置するフレームをフィルタリングすることでフレームを生成して、図5に示すように、その生成したフレームのそれぞれについて、1つ前のフレーム位置において各フィルタ係数および各位置補正用パラメータ値の選択に対応付けて同様に生成したフレームのそれぞれとの間で動き補償予測誤差電力を算出し、その算出した動き補償予測誤差電力とその算出対象となった参照フレームの持つ動き補償予測誤差電力の総和との加算値を求めて、それらの中の最小値を特定することで、1つ前のフレーム位置における最適なフィルタ係数および位置補正用パラメータ値を求めるという処理を、最終のフレーム位置まで繰り返して実行し、
続いて、最終のフレーム位置において算出した動き補償予測誤差電力の総和について、それらの中の最小値を持つフレームを検出することで、最終のフレーム位置における最適なフィルタ係数および位置補正用パラメータ値を検出して、その検出したフィルタ係数および位置補正用パラメータ値を起点として先に特定したフィルタ係数および位置補正用パラメータ値を先頭のフレーム位置に向けて辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについて最適なフィルタ係数および位置補正用パラメータ値を抽出し、
最後に、それらの抽出した最適なフィルタ係数および位置補正用パラメータ値を用いて各フレーム位置においてフィルタリングを実行することで、高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行するのである。
【0133】
ここで、ダウンサンプリング実行部122は、低フレームレート映像信号の符号化処理に合わせて、1つ前のフレーム位置(補正位置を含む)との間ではなくて、それよりも前の規定数前のフレーム位置(補正位置を含む)との間で動き補償予測誤差電力を算出するようにしてもよい。
【0134】
この場合には、フィルタ係数の特定処理のためのパスが複数となって、先頭のフレーム位置およびそれに続く規定数のフレーム位置を起点として繰り返しの実行を開始して、最終のフレーム位置よりも規定数前のフレーム位置およびそれに続く最終のフレーム位置までのフレーム位置について、その繰り返しの実行を行うことになる。
【0135】
そして、その繰り返しの実行を終えたフレーム位置において生成される複数フレームの中から、動き補償予測誤差電力の総和の最小値を持つフレームを検出することで、その総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出して、その検出したフィルタ係数を起点として先に特定したフィルタ係数を先頭のフレーム位置に向けて辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについて最適なフィルタ係数を抽出することになる。
【実施例】
【0136】
次に、実施例に従って本発明を詳細に説明する。
【0137】
〔1〕第1の実施例
図10〜図12に、図8のように構成されるダウンサンプリング実行部122の実行するフレームレートダウンサンプリング処理のフローチャートの一例を図示する。
【0138】
次に、これらのフローチャートに従って、図8のように構成されるダウンサンプリング実行部122が実行することになるフレームレートのダウンサンプリング処理について詳細に説明する。
【0139】
〔1−1〕全体処理
ダウンサンプリング実行部122は、フレームレートダウンサンプリング処理の実行要求があると、図10のフローチャートに示すように、まず最初に、ステップS101で、フレームレート変換処理の対象となる高フレームレート映像信号と、そのフレーム数Jと、そのフレーム間隔δt と、ダウンサンプリング比Mとを読み込むとともに、フィルタ係数記憶部121に記憶されるフィルタ係数の集合Ψn (n=0〜N−1)を読み込む。
【0140】
続いて、ステップS102で、i=1およびW1 (W1 :i=1のフレーム位置で用いるフィルタ係数)の指定するフレームと、i=0およびW0 (W0 :i=0のフレーム位置で用いるフィルタ係数)の指定するフレームとの間で、前述のS1 (W1 )を算出して、それを作業用メモリ123に格納するとともに、そのS1 (W1 )を与えるW0 を^W0 (W1 )として作業用メモリ123に格納する。
【0141】
ここで、このステップS102の処理の詳細については、図11のフローチャートで後述する。
【0142】
続いて、ステップS103で、2≦i≦J/M−1について、iおよびWi (Wi :フレーム位置iで用いるフィルタ係数)の指定するフレームと、i−1およびWi-1 (Wi-1 :フレーム位置i−1で用いるフィルタ係数)の指定するフレームとの間で前述のSi (Wi )を算出して、それを作業用メモリ123に格納するとともに、そのSi (Wi )を与えるWi-1 を^Wi-1 (Wi )として作業用メモリ123に格納する。
【0143】
ここで、このステップS103の処理の詳細については、図12のフローチャートで後述する。
【0144】
続いて、ステップS104で、SJ/M-1 (WJ/M-1 )を最小化するWJ/M-1 をW* J/M-1 として作業用メモリ123に格納する。すなわち、最終のフレーム位置J/M−1で、SJ/M-1 (WJ/M-1 )を最小化するフィルタ係数WJ/M-1 を求めて、それを最終のフレーム位置J/M−1で用いる最適なフィルタ係数W* J/M-1 として作業用メモリ123に格納するのである。
【0145】
続いて、ステップS105で、変数iにJ/M−2をセットする。
【0146】
続いて、ステップS106で、W* J/M-1 を起点として、W* i-1 =^Wi-1 (Wi )に従ってW* i-1 を決定して作業用メモリ123に格納する。
【0147】
すなわち、図3に示すように、^Wi-1 (Wi )はそのWi にとって最小値を与えるWi-1 であるので、それを使って、W* i-1 =^Wi-1 (Wi )に従って、フレーム位置i−1で用いる最適なフィルタ係数W* i-1 を決定して作業用メモリ123に格納するのである。
【0148】
続いて、ステップS107で、変数iの値が0に到達したのか否かを判断して、0に到達していないことを判断するときには、ステップS108に進んで、変数iの値を1つディクリメントしてから、ステップS106の処理に戻り、0に到達したことを判断するときには、ステップS109の処理に進む。
【0149】
続いて、ステップS109で、0≦i≦J/M−1を処理対象として、ダウンサンプリング後の第iフレームとして、^f(x, iMδt , W* i )(x=0, .... ,X−1)を生成して低フレームレート映像ファイル11に格納することで、ダウンサンプリング後の低フレームレート映像信号を生成して、処理を終了する。
【0150】
〔1−2〕ステップS102の処理の詳細
次に、図11のフローチャートに従って、図10のフローチャートのステップS102で実行する処理の詳細について説明する。
【0151】
ダウンサンプリング実行部122は、ステップS102の処理に入ると、図11のフローチャートに示すように、まず最初に、ステップS201で、フレーム位置iを示す変数iに1をセットする。なお、図11のフローチャートにおいては、iの値は1に固定されている。
【0152】
続いて、ステップS202で、フレーム位置iで用いるフィルタ係数Wi の番号を示す変数uに0をセットし、続くステップS203で、フレーム位置iで用いるフィルタ係数Wi としてΨu をセットする。
【0153】
続いて、ステップS204で、フレーム位置i−1で用いるフィルタ係数Wi-1 の番号を示す変数vに0をセットし、続くステップS205で、フレーム位置i−1で用いるフィルタ係数Wi-1 としてΨv をセットする。
【0154】
続いて、ステップS206で、iおよびWi の指定するフレーム(フレーム位置iで、フィルタ係数Wi を使ってフィルタリングすることで生成されるフレーム)と、i−1およびWi-1 の指定するフレーム(フレーム位置i−1で、フィルタ係数Wi-1 を使ってフィルタリングすることで生成されるフレーム)との間で、動き補償予測誤差電力の最小値σi 2 〔Wi , Wi-1 〕を算出して、それを作業用メモリ123に格納する。
【0155】
すなわち、i=1であるので、σ1 2 〔W1 , W0 〕を算出して、それを作業用メモリ123に格納するのである。
【0156】
続いて、ステップS207で、変数vの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS208に進んで、変数vの値を1つインクリメントしてから、ステップS205の処理に戻る。
【0157】
このようにして、i=1の場合において、変数vの値を0からN−1まで1つずつインクリメントしながらステップS206の処理を実行することで、i=1およびW1 (uの値の指すフィルタ係数)の指定するフレームと、i=0およびW0 (W0 =Ψ0 , .... ,ΨN-1 )の指定するフレームとの間で動き補償予測誤差電力の最小値σ1 2 〔W1 , W0 〕を算出して、それらを作業用メモリ123に格納するのである。
【0158】
一方、ステップS207で、変数vの値がN−1に到達したことを判断するときには、ステップS209に進んで、作業用メモリ123に格納したσi 2 〔Wi , Wi-1 〕(Wi-1 =Ψ0 , .... ,ΨN-1 )の中の最小値Si (Wi )を特定して、それを作業用メモリ123に格納するとともに、そのSi (Wi )を与えるWi-1 を^Wi-1 (Wi )として作業用メモリ123に格納する。
【0159】
すなわち、i=1の場合において、あるフィルタ係数W1 について、ステップS206の処理を繰り返し実行することで求めたσ1 2 〔W1 , W0 〕(W0 =Ψ0 , .... ,ΨN-1 )の中の最小値S1 (W1 )を特定して、それを作業用メモリ123に格納するとともに、そのS1 (W1 )を与えるW0 を^W0 (W1 )として作業用メモリ123に格納するのである。
【0160】
続いて、ステップS210で、変数uの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS211に進んで、変数uの値を1つインクリメントしてから、ステップS203の処理に戻る。
【0161】
このようにして、i=1の場合において、変数uの値を0からN−1まで1つずつインクリメントしながらステップS206/ステップS209の処理を実行することで、W1 の値Ψ0 , .... ,ΨN-1 のそれぞれについて、σ1 2 〔W1 , W0 〕(W0 =Ψ0 , .... ,ΨN-1 )を求めて、その中の最小値S1 (W1 )を特定して作業用メモリ123に格納するとともに、そのS1 (W1 )を与えるW0 を^W0 (W1 )として作業用メモリ123に格納するのである。
【0162】
そして、ステップS210で、変数uの値がN−1に到達したことを判断するときには、図10のフローチャートのステップS102の処理を終了する。
【0163】
このようにして、ダウンサンプリング実行部122は、図10のフローチャートのステップS102の処理に入ると、図11のフローチャートを実行することで、i=1およびW1 の指定するフレームとi=0およびW0 の指定するフレームとの間でS1 (W1 )を算出して、それを作業用メモリ123に格納するとともに、そのS1 (W1 )を与えるW0 を^W0 (W1 )として作業用メモリ123に格納するように処理するのである。
【0164】
〔1−3〕ステップS103の処理の詳細
次に、図12のフローチャートに従って、図10のフローチャートのステップS103で実行する処理の詳細について説明する。
【0165】
ダウンサンプリング実行部122は、ステップS103の処理に入ると、図12のフローチャートに示すように、まず最初に、ステップS301で、フレーム位置iを示す変数iに2をセットする。
【0166】
続いて、ステップS302で、フレーム位置iで用いるフィルタ係数Wi の番号を示す変数uに0をセットし、続くステップS303で、フレーム位置iで用いるフィルタ係数Wi としてΨu をセットする。
【0167】
続いて、ステップS304で、フレーム位置i−1で用いるフィルタ係数Wi-1 の番号を示す変数vに0をセットし、続くステップS305で、フレーム位置i−1で用いるフィルタ係数Wi-1 としてΨv をセットする。
【0168】
続いて、ステップS306で、iおよびWi の指定するフレーム(フレーム位置iで、フィルタ係数Wi を使ってフィルタリングすることで生成されるフレーム)と、i−1およびWi-1 の指定するフレーム(フレーム位置i−1で、フィルタ係数Wi-1 を使ってフィルタリングすることで生成されるフレーム)との間で、動き補償予測誤差電力の最小値σi 2 〔Wi , Wi-1 〕を算出する。
【0169】
続いて、ステップS307で、σi 2 〔Wi , Wi-1 〕+Si-1 (Wi-1 )を算出して作業用メモリ123に格納する。このときに用いるSi-1 (Wi-1 )については、図11のフローチャートの処理や後述するステップS310の処理で求められて作業用メモリ123に格納されているので、それを用いる。
【0170】
続いて、ステップS308で、変数vの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS309に進んで、変数vの値を1つインクリメントしてから、ステップS305の処理に戻る。
【0171】
このようにして、変数vの値を0からN−1まで1つずつインクリメントしながらステップS306/ステップS307の処理を実行することで、iおよび変数Wi (uの値の指すフィルタ係数)の指定するフレームと、i−1および変数Wi-1 (Wi-1 =Ψ0 , .... ,ΨN-1 )の指定するフレームとの間で動き補償予測誤差電力の最小値σi 2 〔Wi , Wi-1 〕を算出して、その算出したσi 2 〔Wi , Wi-1 〕と、そのi−1および変数Wi-1 (Wi-1 =Ψ0 , .... ,ΨN-1 )の指定するフレームのそれぞれが持つ先頭のフレーム位置からの動き補償予測誤差電力の総和Si-1 (Wi-1 )との加算値を算出し、それらを作業用メモリ123に格納するのである。
【0172】
一方、ステップS308で、変数vの値がN−1に到達したことを判断するときには、ステップS310に進んで、作業用メモリ123に格納したσi 2 〔Wi , Wi-1 〕+Si-1 (Wi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 )の中の最小値Si (Wi )を特定して、それを作業用メモリ123に格納するとともに、そのSi (Wi )を与えるWi-1 を^Wi-1 (Wi )として作業用メモリ123に格納する。
【0173】
すなわち、変数Wi のある値について、ステップS306/ステップS307の処理を繰り返し実行することで求めたσi 2 〔Wi , Wi-1 〕+Si-1 (Wi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 )の中の最小値Si (Wi )を特定して、それを作業用メモリ123に格納するとともに、そのSi (Wi )を与えるWi-1 を^Wi-1 (Wi )として作業用メモリ123に格納するのである。
【0174】
続いて、ステップS311で、変数uの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS312に進んで、変数uの値を1つインクリメントしてから、ステップS303の処理に戻る。
【0175】
このようにして、変数uの値を0からN−1まで1つずつインクリメントしながらステップS306/ステップS307/ステップS310の処理を実行することで、変数Wi の値Ψ0 , .... ,ΨN-1 のそれぞれについて、σi 2 〔Wi , Wi-1 〕+Si-1 (Wi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 )を求めて、その中の最小値Si (Wi )を特定して作業用メモリ123に格納するとともに、そのSi (Wi )を与えるWi-1 を^Wi-1 (Wi )として格納するのである。
【0176】
一方、ステップS311で、変数uの値がN−1に到達したことを判断するときには、ステップS313に進んで、変数iの値がJ/M−1に到達したのか否かを判断して、J/M−1に到達していないことを判断するときには、ステップS314に進んで、変数iの値を1つインクリメントしてから、次のフレーム位置について処理を行うべく、ステップS302の処理に戻る。
【0177】
そして、ステップS313で、変数iの値がJ/M−1に到達したことを判断するときには、図10のフローチャートのステップS103の処理を終了する。
【0178】
このようにして、ダウンサンプリング実行部122は、図10のフローチャートのステップS103の処理に入ると、図12のフローチャートを実行することで、2≦i≦J/M−1について、iおよびWi の指定するフレームとi−1およびWi-1 の指定するフレームとの間でSi (Wi )を算出して、それを作業用メモリ123に格納するとともに、そのSi (Wi )を与えるWi-1 を^Wi-1 (Wi )として作業用メモリ123に格納するように処理するのである。
【0179】
〔1−4〕処理の概要
このように、図8のように構成されるダウンサンプリング実行部122は、まず最初に、予め用意した各フィルタ係数のそれぞれを使って、等間隔のダウンサンプリングにより規定されるフレーム位置の近傍に位置するフレームをフィルタリングすることでフレームを生成して、図3に示すように、その生成したフレームのそれぞれについて、1つ前のフレーム位置において各フィルタ係数の選択に対応付けて同様に生成したフレームのそれぞれとの間で動き補償予測誤差電力を算出し、その算出した動き補償予測誤差電力とその算出対象となった参照フレームの持つ動き補償予測誤差電力の総和との加算値を求めて、それらの中の最小値を特定することで、1つ前のフレーム位置における最適なフィルタ係数を求めるという処理を、最終のフレーム位置まで繰り返して実行する。
【0180】
続いて、最終のフレーム位置において算出した動き補償予測誤差電力の総和について、それらの中の最小値を持つフレームを検出することで、最終のフレーム位置における最適なフィルタ係数を検出して、その検出したフィルタ係数を起点として先に特定したフィルタ係数を先頭のフレーム位置に向けて辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについて最適なフィルタ係数を抽出する。
【0181】
そして、最後に、それらの抽出した最適なフィルタ係数を用いて各フレーム位置においてフィルタリングを実行することで、高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行する。
【0182】
〔2〕第2の実施例
図13〜図15に、図9のように構成されるダウンサンプリング実行部122の実行するフレームレートダウンサンプリング処理のフローチャートの一例を図示する。
【0183】
次に、これらのフローチャートに従って、図9のように構成されるダウンサンプリング実行部122が実行することになるフレームレートのダウンサンプリング処理について詳細に説明する。
【0184】
〔2−1〕全体処理
ダウンサンプリング実行部122は、フレームレートダウンサンプリング処理の実行要求があると、図13のフローチャートに示すように、まず最初に、ステップS401で、フレームレート変換処理の対象となる高フレームレート映像信号と、そのフレーム数Jと、そのフレーム間隔δt と、ダウンサンプリング比Mとを読み込むとともに、フィルタ係数記憶部121に記憶されるフィルタ係数の集合Ψn (n=0〜N−1)を読み込む。
【0185】
続いて、ステップS402で、i=1、W1 およびp1 (W1 :i=1のフレーム位置で用いるフィルタ係数、p1 :i=1のフレーム位置を補正するパラメータ)の指定するフレームと、i=0、W0 およびp0 (W0 :i=0のフレーム位置で用いるフィルタ係数、p0 :i=0のフレーム位置を補正するパラメータ)の指定するフレームとの間で、前述のS1 (W1 , p1 )を算出して、それを作業用メモリ123に格納するとともに、そのS1 (W1 , p1 )を与えるW0 、p0 を、それぞれ^W0 (W1 , p1 )、^p0 (W1 , p1 )として作業用メモリ123に格納する。
【0186】
ここで、このステップS402の処理の詳細については、図14のフローチャートで後述する。
【0187】
続いて、ステップS403で、2≦i≦J/M−1について、i、Wi およびpi (Wi :フレーム位置iで用いるフィルタ係数、pi :フレーム位置iを補正するパラメータ)の指定するフレームと、i−1、Wi-1 およびpi-1 (Wi-1 :フレーム位置i−1で用いるフィルタ係数、pi-1 :フレーム位置i−1を補正するパラメータ)の指定するフレームとの間で、前述のSi (Wi , pi )を算出して、それを作業用メモリ123に格納するとともに、そのSi (Wi , pi )を与えるWi-1 、pi-1 を、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )として作業用メモリ123に格納する。
【0188】
ここで、このステップS403の処理の詳細については、図15のフローチャートで後述する。
【0189】
続いて、ステップS404で、SJ/M-1 (WJ/M-1 , pJ/M-1 )を最小化するWJ/M-1 、pJ/M-1 を、それぞれW* J/M-1 、p* J/M-1 として作業用メモリ123に格納する。すなわち、最終のフレーム位置J/M−1で、SJ/M-1 (WJ/M-1 , pJ/M-1 )を最小化するフィルタ係数WJ/M-1 および位置補正用パラメータpJ/M-1 を求めて、それを最終のフレーム位置J/M−1で用いる最適なフィルタ係数W* J/M-1 および位置補正用パラメータp* J/M-1 として作業用メモリ123に格納するのである。
【0190】
続いて、ステップS405で、変数iにJ/M−2をセットする。
【0191】
続いて、ステップS406で、W* J/M-1 およびp* J/M-1 を起点として、W* i-1 =^Wi-1 (Wi , pi )に従ってW* i-1 を決定して作業用メモリ123に格納するとともに、p* i-1 =^pi-1 (Wi , pi )に従ってp* i-1 を決定して作業用メモリ123に格納する。
【0192】
すなわち、図5に示すように、^Wi-1 (Wi , pi )はそのWi にとって最小値を与えるWi-1 であるので、それを使って、W* i-1 =^Wi-1 (Wi , pi )に従って、フレーム位置i−1で用いる最適なフィルタ係数W* i-1 を決定して作業用メモリ123に格納し、さらに、^pi-1 (Wi , pi )はそのpi にとって最小値を与えるpi-1 であるので、それを使って、p* i-1 =^pi-1 (Wi , pi )に従って、フレーム位置i−1で用いる最適な位置補正用パラメータp* i-1 を決定して作業用メモリ123に格納するのである。
【0193】
続いて、ステップS407で、変数iの値が0に到達したのか否かを判断して、0に到達していないことを判断するときには、ステップS408に進んで、変数iの値を1つディクリメントしてから、ステップS406の処理に戻り、0に到達したことを判断するときには、ステップS409の処理に進む。
【0194】
続いて、ステップS409で、0≦i≦J/M−1を処理対象として、ダウンサンプリング後の第iフレームとして、^f(x, iMδt , W* i , p* i )(x=0, .... ,X−1)を生成して低フレームレート映像ファイル11に格納することで、ダウンサンプリング後の低フレームレート映像信号を生成して、処理を終了する。
【0195】
〔2−2〕ステップS402の処理の詳細
次に、図14のフローチャートに従って、図13のフローチャートのステップS402で実行する処理の詳細について説明する。
【0196】
ダウンサンプリング実行部122は、ステップS402の処理に入ると、図14のフローチャートに示すように、まず最初に、ステップS501で、フレーム位置iを示す変数iに1をセットする。なお、図14のフローチャートにおいては、iの値は1に固定されている。
【0197】
続いて、ステップS502で、フレーム位置iで用いるフィルタ係数Wi の番号を示す変数uに0をセットし、続くステップS503で、フレーム位置iで用いるフィルタ係数Wi としてΨu をセットし、続くステップS504で、フレーム位置iで用いる位置補正用パラメータpi の値として0をセットする。
【0198】
続いて、ステップS505で、フレーム位置i−1で用いるフィルタ係数Wi-1 の番号を示す変数vに0をセットし、続くステップS506で、フレーム位置i−1で用いるフィルタ係数Wi-1 としてΨv をセットし、続くステップS507で、フレーム位置i−1で用いる位置補正用パラメータpi-1 の値として0をセットする。
【0199】
続いて、ステップS508で、i、Wi およびpi の指定するフレーム(pi により補正されたフレーム位置iで、フィルタ係数Wi を使ってフィルタリングすることで生成されるフレーム)と、i−1、Wi-1 およびpi-1 の指定するフレーム(pi-1 により補正されたフレーム位置i−1で、フィルタ係数Wi-1 を使ってフィルタリングすることで生成されるフレーム)との間で、動き補償予測誤差電力の最小値σi 2 〔Wi , Wi-1 , pi , pi-1 〕を算出して、それを作業用メモリ123に格納する。
【0200】
すなわち、i=1であるので、σ1 2 〔W1 , W0 , p1 , p0 〕を算出して、それを作業用メモリ123に格納するのである。
【0201】
続いて、ステップS509で、pi-1 の値がP−1に到達したのか否かを判断して、P−1に到達していないことを判断するときには、ステップS510に進んで、pi-1 の値を1つインクリメントしてから、ステップS508の処理に戻る。
【0202】
一方、ステップS509の判断処理で、pi-1 の値がP−1に到達したことを判断するときには、ステップS511に進んで、変数vの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS512に進んで、変数vの値を1つインクリメントしてから、ステップS506の処理に戻る。
【0203】
このようにして、i=1の場合において、pi-1 の値を0からP−1まで1つずつインクリメントするとともに、変数vの値を0からN−1まで1つずつインクリメントしながらステップS508の処理を実行することで、i=1、W1 (あるフィルタ係数)およびp1 (ある補正パラメータ)の指定するフレームと、i=0、W0 (W0 =Ψ0 , .... ,ΨN-1 )およびp0 (p0 =0, .... ,N−1)の指定するフレームとの間で動き補償予測誤差電力の最小値σ1 2 〔W1 , W0 , p1 , p0 〕を算出して、それらを作業用メモリ123に格納するのである。
【0204】
一方、ステップS511で、変数vの値がN−1に到達したことを判断するときには、ステップS513に進んで、作業用メモリ123に格納したσi 2 〔Wi , Wi-1 , pi , pi-1 〕(Wi-1 =Ψ0 , .... ,ΨN-1 , pi-1 =0, .... ,N−1)の中の最小値Si (Wi , pi )を特定して、それを作業用メモリ123に格納するとともに、そのSi (Wi , pi )を与えるWi-1 、pi-1 を、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )として作業用メモリ123に格納する。
【0205】
すなわち、i=1の場合において、あるフィルタ係数W1 およびあるp1 について、ステップS508の処理を繰り返し実行することで求めたσ1 2 〔W1 , W0 , p1 , p0 〕(W0 =Ψ0 , .... ,ΨN-1 , p0 =0, .... ,N−1)の中の最小値S1 (W1 , p1 )を特定して、それを作業用メモリ123に格納するとともに、そのS1 (W1 , p1 )を与えるW0 、p0 を、それぞれ^W0 (W1 , p1 )、^p0 (W1 , p1 )として作業用メモリ123に格納するのである。
【0206】
続いて、ステップS514で、pi の値がP−1に到達したのか否かを判断して、P−1に到達していないことを判断するときには、ステップS515に進んで、pi の値を1つインクリメントしてから、ステップS505の処理に戻る。
【0207】
一方、ステップS514の判断処理で、pi の値がP−1に到達したことを判断するときには、ステップS516に進んで、変数uの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS517に進んで、変数uの値を1つインクリメントしてから、ステップS503の処理に戻る。
【0208】
このようにして、i=1の場合において、pi の値を0からP−1まで1つずつインクリメントするとともに、変数uの値を0からN−1まで1つずつインクリメントしながらステップS508/ステップS513の処理を実行することで、W1 の値(W1 =Ψ0 , .... ,ΨN-1 )およびpi の値(p1 =0, .... ,N−1)のそれぞれについて、σ1 2 〔W1 , W0 , p1 , p0 〕(W0 =Ψ0 , .... ,ΨN-1 , p0 =0, .... ,N−1)を求めて、その中の最小値S1 (W1 , p1 )を特定して作業用メモリ123に格納するとともに、そのS1 (W1 , p1 )を与えるW0 、p0 を、それぞれ^W0 (W1 , p1 )、^p0 (W1 , p1 )として作業用メモリ123に格納するのである。
【0209】
そして、ステップS516で、変数uの値がN−1に到達したことを判断するときには、ステップS402の処理を終了する。
【0210】
このようにして、ダウンサンプリング実行部122は、図13のフローチャートのステップS402の処理に入ると、図14のフローチャートを実行することで、i=1、W1 およびp1 の指定するフレームと、i=0、W0 およびp0 の指定するフレームとの間で、S1 (W1 , p1 )を算出して、それを作業用メモリ123に格納するとともに、そのS1 (W1 , p1 )を与えるW0 、p0 を、それぞれ^W0 (W1 , p1 )、^p0 (p1 , p1 )として作業用メモリ123に格納するように処理するのである。
【0211】
〔2−3〕ステップS403の処理の詳細
次に、図15のフローチャートに従って、図13のフローチャートのステップS403で実行する処理の詳細について説明する。
【0212】
ダウンサンプリング実行部122は、ステップS403の処理に入ると、図15のフローチャートに示すように、まず最初に、ステップS601で、フレーム位置iを示す変数iに2をセットする。
【0213】
続いて、ステップS602で、フレーム位置iで用いるフィルタ係数Wi の番号を示す変数uに0をセットし、続くステップS603で、フレーム位置iで用いるフィルタ係数Wi としてΨu をセットし、続くステップS604で、フレーム位置iで用いる位置補正用パラメータpi の値として0をセットする。
【0214】
続いて、ステップS605で、フレーム位置i−1で用いるフィルタ係数Wi-1 の番号を示す変数vに0をセットし、続くステップS606で、フレーム位置i−1で用いるフィルタ係数Wi-1 としてΨv をセットし、続くステップS607で、フレーム位置i−1で用いる位置補正用パラメータpi-1 の値として0をセットする。
【0215】
続いて、ステップS608で、i、Wi およびpi の指定するフレーム(pi により補正されたフレーム位置iで、フィルタ係数Wi を使ってフィルタリングすることで生成されるフレーム)と、i−1、Wi-1 およびpi-1 の指定するフレーム(pi-1 により補正されたフレーム位置i−1で、フィルタ係数Wi-1 を使ってフィルタリングすることで生成されるフレーム)との間で、動き補償予測誤差電力の最小値σi 2 〔Wi , Wi-1 , pi , pi-1 〕を算出する。
【0216】
続いて、ステップS609で、σi 2 〔Wi , Wi-1 , pi , pi-1 〕+Si-1 (Wi-1 , pi-1 )を算出して作業用メモリ123に格納する。このときに用いるSi-1 (Wi-1 , pi-1 )については、図14のフローチャートの処理や後述するステップS614の処理で求められて作業用メモリ123に格納されているので、それを用いる。
【0217】
続いて、ステップS610で、pi-1 の値がP−1に到達したのか否かを判断して、P−1に到達していないことを判断するときには、ステップS611に進んで、pi-1 の値を1つインクリメントしてから、ステップS608の処理に戻る。
【0218】
一方、ステップS610の判断処理で、pi-1 の値がP−1に到達したことを判断するときには、ステップS612に進んで、変数vの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS613に進んで、変数vの値を1つインクリメントしてから、ステップS606の処理に戻る。
【0219】
このようにして、pi-1 の値を0からP−1まで1つずつインクリメントするとともに、変数vの値を0からN−1まで1つずつインクリメントしながらステップS608/ステップS609の処理を実行することで、i、Wi (あるフィルタ係数)およびpi (ある補正パラメータ)の指定するフレームと、i−1、Wi-1 (Wi-1 =Ψ0 , .... ,ΨN-1 )およびpi-1 (pi-1 =0, .... ,N−1)の指定するフレームとの間で動き補償予測誤差電力の最小値σ1 2 〔Wi , Wi-1 , pi , pi-1 〕を算出して、その算出したσ1 2 〔Wi , Wi-1 , pi , pi-1 〕と、そのi−1、Wi-1 (Wi-1 =Ψ0 , .... ,ΨN-1 )およびpi-1 (pi-1 =0, .... ,N−1)の指定するフレームのそれぞれが持つ先頭のフレーム位置からの動き補償予測誤差電力の総和Si-1 (Wi-1 , pi-1 )との加算値を算出し、それを作業用メモリ123に格納するのである。
【0220】
一方、ステップS612で、変数vの値がN−1に到達したことを判断するときには、ステップS614に進んで、作業用メモリ123に格納したσi 2 〔Wi , Wi-1 , pi , pi-1 〕+Si-1 (Wi-1 , pi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 , pi-1 =0, .... ,N−1)の中の最小値Si (Wi , pi )を特定して、それを作業用メモリ123に格納するとともに、そのSi (Wi , pi )を与えるWi-1 、pi-1 を、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )として作業用メモリ123に格納する。
【0221】
すなわち、あるフィルタ係数Wi およびあるpi について、ステップS608/ステップS609の処理を繰り返し実行することで求めたσi 2 〔Wi , Wi-1 , pi , pi-1 〕+Si-1 (Wi-1 , pi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 , pi-1 =0, .... ,N−1)の中の最小値Si (Wi , pi )を特定して、それを作業用メモリ123に格納するとともに、そのSi (Wi , pi )を与えるWi-1 、pi-1 を、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )として作業用メモリ123に格納するのである。
【0222】
続いて、ステップS615で、pi の値がP−1に到達したのか否かを判断して、P−1に到達していないことを判断するときには、ステップS616に進んで、pi の値を1つインクリメントしてから、ステップS605の処理に戻る。
【0223】
一方、ステップS615の判断処理で、pi の値がP−1に到達したことを判断するときには、ステップS617に進んで、変数uの値がN−1に到達したのか否かを判断して、N−1に到達していないことを判断するときには、ステップS618に進んで、変数uの値を1つインクリメントしてから、ステップS603の処理に戻る。
【0224】
このようにして、pi の値を0からP−1まで1つずつインクリメントするとともに、変数uの値を0からN−1まで1つずつインクリメントしながらステップS608/ステップS609/ステップS614の処理を実行することで、Wi の値(Wi =Ψ0 , .... ,ΨN-1 )およびpi の値(pi =0, .... ,N−1)のそれぞれについて、σi 2 〔Wi , Wi-1 , pi , pi-1 〕+Si-1 (Wi-1 , pi-1 )(Wi-1 =Ψ0 , .... ,ΨN-1 , pi-1 =0, .... ,N−1)を求めて、その中の最小値Si (Wi , pi )を特定して作業用メモリ123に格納するとともに、そのSi (Wi , pi )を与えるWi-1 、pi-1 を、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )として作業用メモリ123に格納するのである。
【0225】
一方、ステップS617で、変数uの値がN−1に到達したことを判断するときには、ステップS618に進んで、変数iの値がJ/M−1に到達したのか否かを判断して、J/M−1に到達していないことを判断するときには、ステップS619に進んで、変数iの値を1つインクリメントしてから、次のフレーム位置について処理を行うべく、ステップS602の処理に戻る。
【0226】
そして、ステップS618で、変数iの値がJ/M−1に到達したことを判断するときには、図13のフローチャートのステップS403の処理を終了する。
【0227】
このようにして、ダウンサンプリング実行部122は、図13のフローチャートのステップS403の処理に入ると、図15のフローチャートを実行することで、i、Wi およびpi の指定するフレームと、i−1、Wi-1 およびpi-1 の指定するフレームとの間で、Si (Wi , pi )を算出して、それを作業用メモリ123に格納するとともに、そのSi (Wi , pi )を与えるWi-1 、pi-1 を、それぞれ^Wi-1 (Wi , pi )、^pi-1 (Wi , pi )として作業用メモリ123に格納するように処理するのである。
【0228】
〔2−4〕処理の概要
このように、図9のように構成されるダウンサンプリング実行部122は、まず最初に、各フィルタ係数および各位置補正用パラメータ値のそれぞれを使って、等間隔のダウンサンプリングにより規定されるフレーム位置の近傍に位置するフレームをフィルタリングすることでフレームを生成して、図5に示すように、その生成したフレームのそれぞれについて、1つ前のフレーム位置において各フィルタ係数および各位置補正用パラメータ値の選択に対応付けて同様に生成したフレームのそれぞれとの間で動き補償予測誤差電力を算出し、その算出した動き補償予測誤差電力とその算出対象となった参照フレームの持つ動き補償予測誤差電力の総和との加算値を求めて、それらの中の最小値を特定することで、1つ前のフレーム位置における最適なフィルタ係数および位置補正用パラメータ値を求めるという処理を、最終のフレーム位置まで繰り返して実行する。
【0229】
続いて、最終のフレーム位置において算出した動き補償予測誤差電力の総和について、それらの中の最小値を持つフレームを検出することで、最終のフレーム位置における最適なフィルタ係数および位置補正用パラメータ値を検出して、その検出したフィルタ係数および位置補正用パラメータ値を起点として先に特定したフィルタ係数および位置補正用パラメータ値を先頭のフレーム位置に向けて辿ることで、等間隔のダウンサンプリングにより規定されるフレーム位置のそれぞれについて最適なフィルタ係数および位置補正用パラメータ値を抽出する。
【0230】
そして、最後に、それらの抽出した最適なフィルタ係数および位置補正用パラメータ値を用いて各フレーム位置においてフィルタリングを実行することで、高フレームレート映像信号から低フレームレート映像信号へのフレームレート変換処理を実行する。
【0231】
〔3〕本発明の有効性を検証するために行った実験について
次に、本発明の有効性を検証するために行った実験について説明する。
【0232】
この実験は、フレーム間引きの基準となる高フレームレート映像として、高速度カメラで撮影したRGBカラー映像を用いた。その高フレームレート映像のフレームレートは1000〔フレーム/秒〕、総フレーム数は480〔フレーム〕、解像度は640×480〔画素〕である。また、映像素材はミニカートの走行シーンである。
【0233】
なお、動き補償時のブロックサイズは16×16〔画素〕とした。また、フレーム間予測は片方向予測とし、参照フレームは直前フレームとした。また、動き推定アルゴリズムとしてはSSD最小化に基づく全探索を行った。
【0234】
この実験では、ダウンサンプリング比Mの値を32とし、フィルタ係数のタップ長(2Δ+1)を規定するΔの値を1としたときにおける、予測画像のPSNRを従来技術である平均値フィルタと比較することで行った。
【0235】
図16に、比較結果を図示する。ここで、カッコ内は平均二乗誤差の値である。平均値フィルタはフィルタ係数を(1/3, 1/3, 1/3)としたフィルタである。本発明については、N(フィルタ係数集合に属するフィルタ係数の数)の値として、16、64の2通りを設定した。
【0236】
この図16に示す比較結果から分かるように、本発明は、平均値フィルタに対して0.16〔db〕のPSNR向上を実現していることが確認できる。これから、本発明の有効性を検証することができた。
【0237】
図示実施例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施例では、1つ前に選択したフレームとの間で動き補償予測誤差電力を算出するようにしているが、選択済みの複数のフレームとの間で動き補償予測誤差電力を算出するようにしてもよい。
【産業上の利用可能性】
【0238】
本発明は高フレームレート映像信号から低フレームレート映像信号へフレームレート変換を実行するときに適用できるものであり、本発明を適用することで、高フレームレート映像信号に対してのダウンサンプリングにより得られた所望のフレームレートの映像信号を符号化する場合に、従来のフレーム間引き処理により得られた映像信号よりも符号量を低く抑えることができるようになるとともに、時間方向のエイリアシングに起因する画質劣化を防止することができるようになる。
【符号の説明】
【0239】
1 フレームレート変換装置
10 高フレームレート映像ファイル
11 低フレームレート映像ファイル
12 フレームレートダウンサンプリング部
120 動き補償予測誤差算出部
121 フィルタ係数記憶部
122 ダウンサンプリング実行部
123 作業用メモリ
1200 動き推定部
1220 入力部
1221 処理フレーム位置選択部
1222 処理フィルタ係数選択部
1223 参照フィルタ係数決定部
1224 全フレーム位置終了判定部
1225 累積予測誤差最小化最終フィルタ係数検出部
1226 決定参照フィルタ係数追跡部
1227 フィルタリング実行部

【特許請求の範囲】
【請求項1】
等間隔のフレーム位置において、予め用意するフィルタ係数集合の中からフィルタ係数を選択し、高フレームレート映像信号の複数フレームをそのフィルタ係数を用いてフィルタリングすることでダウンサンプリングを実行するフレームレート変換方法であって、
等間隔のフレーム位置において、各フィルタ係数を用いる場合に生成される複数フレームのそれぞれについて、規定数前のフレーム位置において生成される複数フレームのそれぞれとの間で、ダウンサンプリングにより生成される低フレームレート映像信号の符号化効率を示す値を算出し、それに基づいて、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるフィルタ係数を特定することを、先頭のフレーム位置から最終のフレーム位置に向けて繰り返し実行する過程と、
前記繰り返しの実行を終えたフレーム位置において生成される複数フレームの中から、前記符号化効率表示値の総和の最小値を持つフレームを検出することで、その総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出する過程と、
前記検出したフィルタ係数を起点として前記特定したフィルタ係数を辿ることで、各フレーム位置で用いるフィルタ係数を選択する過程とを備えることを、
特徴とするフレームレート変換方法。
【請求項2】
請求項1に記載のフレームレート変換方法において、
等間隔のフレーム位置を補正する位置補正用パラメータを設定する過程を備え、
前記実行する過程では、前記位置補正用パラメータにより補正されるフレーム位置において生成される複数フレームについても、等間隔のフレーム位置において生成されるフレームに含める形で処理を実行することを、
特徴とするフレームレート変換方法。
【請求項3】
請求項1または2に記載のフレームレート変換方法において、
前記実行する過程では、前記算出した符号化効率表示値とその算出対象となった規定数前のフレーム位置にあるフレームの持つ符号化効率表示値の総和との加算値を求めて、それらの中の最小値を特定することで、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるその規定数前のフレーム位置におけるフィルタ係数を特定するとともに、その加算値をその特定元のフレームの持つ符号化効率表示値の総和として設定することを、
特徴とするフレームレート変換方法。
【請求項4】
請求項1ないし3のいずれか1項に記載のフレームレート変換方法において、
前記実行する過程では、前記符号化効率表示値として、動き補償予測誤差電力を算出することを、
特徴とするフレームレート変換方法。
【請求項5】
請求項1ないし3のいずれか1項に記載のフレームレート変換方法において、
前記実行する過程では、前記符号化効率表示値として、所定の符号化器を用いて符号化する場合に得られる符号化コストを算出することを、
特徴とするフレームレート変換方法。
【請求項6】
等間隔のフレーム位置において、予め用意するフィルタ係数集合の中からフィルタ係数を選択し、高フレームレート映像信号の複数フレームをそのフィルタ係数を用いてフィルタリングすることでダウンサンプリングを実行するフレームレート変換装置であって、
等間隔のフレーム位置において、各フィルタ係数を用いる場合に生成される複数フレームのそれぞれについて、規定数前のフレーム位置において生成される複数フレームのそれぞれとの間で、ダウンサンプリングにより生成される低フレームレート映像信号の符号化効率を示す値を算出し、それに基づいて、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるフィルタ係数を特定することを、先頭のフレーム位置から最終のフレーム位置に向けて繰り返し実行する手段と、
前記繰り返しの実行を終えたフレーム位置において生成される複数フレームの中から、前記符号化効率表示値の総和の最小値を持つフレームを検出することで、その総和の最小値を持つフレームの生成に用いられるフィルタ係数を検出する手段と、
前記検出したフィルタ係数を起点として前記特定したフィルタ係数を辿ることで、各フレーム位置で用いるフィルタ係数を選択する手段とを備えることを、
特徴とするフレームレート変換装置。
【請求項7】
請求項6に記載のフレームレート変換装置において、
等間隔のフレーム位置を補正する位置補正用パラメータを設定する手段を備え、
前記実行する手段は、前記位置補正用パラメータにより補正されるフレーム位置において生成される複数フレームについても、等間隔のフレーム位置において生成されるフレームに含める形で処理を実行することを、
特徴とするフレームレート変換装置。
【請求項8】
請求項6または7に記載のフレームレート変換装置において、
前記実行する手段は、前記算出した符号化効率表示値とその算出対象となった規定数前のフレーム位置にあるフレームの持つ符号化効率表示値の総和との加算値を求めて、それらの中の最小値を特定することで、先頭のフレーム位置からの符号化効率表示値の総和を最小化するつながりを持つフレームの生成に用いられるその規定数前のフレーム位置におけるフィルタ係数を特定するとともに、その加算値をその特定元のフレームの持つ符号化効率表示値の総和として設定することを、
特徴とするフレームレート変換装置。
【請求項9】
請求項1ないし5のいずれか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

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−206430(P2010−206430A)
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願番号】特願2009−48753(P2009−48753)
【出願日】平成21年3月3日(2009.3.3)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 平成20年10月29日 発行の「画像符号化シンポジウム 第23回シンポジウム資料」に発表
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】