(57)【特許請求の範囲】
【請求項１】
動き補償に従って、後のフレームの映像ストリームを符号化された映像ビットストリームに予測符号化するためのビデオコーダであって、
前記映像ストリームの少なくとも１つの参照フレームを記憶するように適合されるフレームバッファであって、前記参照フレームは、前記映像ストリームの現在のフレームと異なる、フレームバッファと、
前記参照フレームの参照ブロックと前記現在のフレームの現在のブロックとの間の動きを推定することによって動きベクトルを生成するように適合される動き推定ユニットと、
前記動きベクトルの向きに応じて、複数のフィルタのうちの１つのフィルタを選択するように適合されるフィルタ選択ユニットと、
選択された前記フィルタを前記参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合されるフィルタリングユニットと、
前記現在のブロックおよび前記フィルタリングされた参照ブロックに基づいて、前記現在のブロックのフィルタリングされた予測ブロックを生成するように適合される動き補償ユニットと
を備え、
前記動き推定ユニットは、
前記フィルタリングされた参照ブロックと前記現在のブロックとの間の動きを推定することによって、第２動きベクトルを生成するように適合され、
前記第２動きベクトル、および、前記参照ブロックと前記現在のブロックとの間の動きベクトルの比較に応じて、前記符号化された映像ビットストリームを生成するために、前記フィルタリングされた参照ブロックが考慮されるか、または、破棄される、
ビデオコーダ。
【請求項２】
前記動き補償ユニットは、
前記現在のブロックおよび前記参照ブロックに基づいて、前記現在のブロックのフィルタリングされていない予測ブロックをさらに生成し、
前記フィルタリングされた予測ブロックおよび前記フィルタリングされていない予測ブロックの中から、予測誤差を最小化する予測ブロックを出力し、前記予測誤差は、前記現在のブロックと、それぞれの前記予測ブロックとの間の差である、
ように適合される、請求項１に記載のビデオコーダ。
【請求項３】
前記動き補償ユニットによって出力される前記予測ブロックに対応する予測誤差に基づいて前記符号化された映像ビットストリームを生成するように適合される符号化手段を備える、請求項１または２に記載のビデオコーダ。
【請求項４】
前記符号化された映像ビットストリームを生成するように適合される符号化手段を備え、これにより、前記符号化された映像ビットストリームは、動き情報およびフィルタ情報を含み、前記動き情報は、前記動きベクトルを含み、
前記フィルタ情報は、前記符号化された映像ビットストリームが、前記現在のブロックと前記フィルタリングされた予測ブロックとの間の予測誤差に基づいているか、または、前記現在のブロックと前記フィルタリングされていない予測ブロックとの間の予測誤差に基づいているかを指定する、
前述の請求項１から３のいずれか一項に記載のビデオコーダ。
【請求項５】
前記符号化手段は、予測符号化された現在のブロックの各々についてのブロックレベル、フレームレベル、ＧＯＰ（ピクチャのグループ）レベル、ＰＰＳ（ピクチャパラメータセット）レベル、またはＳＰＳ（シーケンスパラメータセット）レベルで、前記フィルタ情報を前記符号化された映像ビットストリームに追加するように適合される、請求項４に記載のビデオコーダ。
【請求項６】
変換係数を生成するべく、線形空間変換を用いて予測誤差を変換し、前記変換係数を量子化するように適合される変換および量子化ユニットと、
前記符号化された映像ビットストリームを生成するべく、量子化された前記変換係数を、それぞれ走査およびエントロピー符号化するように適合される走査ユニットおよびエントロピーエンコーダと
を備える、請求項３から５のいずれか一項に記載のビデオコーダ。
【請求項７】
前記フィルタ選択ユニットは、例えば、正の横軸に対する、前記動きベクトルの角度を導出し、前記角度に応じて、複数のフィルタのうちの１つの前記フィルタを選択するように適合される、請求項１から６のいずれか一項に記載のビデオコーダ。
【請求項８】
前記映像ストリームを単層符号化するための、請求項１から７のいずれか一項に記載のビデオコーダ。
【請求項９】
前記フィルタ選択ユニットは、前記動きベクトルの向きに応じて、複数のブラーおよびブラー除去フィルタのうち少なくとも１つを選択するように適合される、請求項１から８のいずれか一項に記載のビデオコーダ。
【請求項１０】
請求項１から９のいずれか一項に記載のビデオコーダを備える、フレーム内およびフレーム間予測のためのハイブリッドビデオエンコーダ。
【請求項１１】
動き補償に従って後のフレームの映像ストリームを符号化された映像ビットストリームに予測符号化するための方法であって、
前記映像ストリームのうちの少なくとも１つの参照フレームを記憶する段階であって、前記参照フレームは、前記映像ストリームの現在のフレームと異なる、段階と、
前記参照フレームの参照ブロックと、前記現在のフレームの現在のブロックとの間の動きを推定することによって、動きベクトルを生成することを含む、動き推定の段階と、
前記動きベクトルの向きに応じて、複数のフィルタのうちの１つのフィルタを選択する段階と、
選択された前記フィルタを前記参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成する段階と、
前記現在のブロックおよび前記フィルタリングされた参照ブロックに基づいて、前記現在のブロックのフィルタリングされた予測ブロックを生成することを含む動き補償の段階と
を備え、
前記動き推定の段階は、前記フィルタリングされた参照ブロックと前記現在のブロックとの間の動きを推定することによって、第２動きベクトルを生成し、
前記第２動きベクトル、および、前記参照ブロックと前記現在のブロックとの間の動きベクトルの比較に応じて、前記符号化された映像ビットストリームを生成するために、前記フィルタリングされた参照ブロックが考慮されるか、または、破棄される、
方法。
【請求項１２】
コンピュータプログラムがコンピュータデバイス上で動作するときに、請求項１１に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、映像処理の分野、および、映像動き補償のための装置に関し、具体的には、映像内のフレームを予測するための動き補償をサポートするためのビデオコーダおよびビデオデコーダに関する。本発明はさらに、動き補償を使用して映像ストリームを符号化するための方法および復号化するための方法に関する。最後に、本発明は、そのような方法を実行するためのプログラムコードを有するコンピュータプログラムに関する。
【背景技術】
【０００２】
映像処理の分野、特に、ハイブリッド映像符号化および圧縮の分野において、ピクチャ間およびピクチャ内予測、ならびに変換符号化を使用することが知られている。そのようなハイブリッド映像符号化技術は、Ｈ．２６１、Ｈ．２６３、ＭＰＥＧ‐１，２，４、Ｈ．２６４／ＡＶＣまたはＨＥＶＣのような、知られている映像圧縮規格において使用される。
【０００３】
図１は、従来技術に係るビデオコーダを示す。ビデオコーダ１００は、入力ピクチャを受信するための入力部と、符号化された映像ストリームを生成するための出力部とを備える。ビデオコーダ１００は、予測、変換、量子化、およびエントロピー符号化を映像シーケンスに適用するように適合される。変換、量子化、およびエントロピー符号化はそれぞれ、変換および量子化ユニット１０１、ならびに、エントロピーエンコーダ１０３によって実行される。変換および量子化ユニット１０１と、エントロピーエンコーダ１０３との間には、走査ユニット１０２が提供されている。
【０００４】
映像シーケンスは、複数の入力ピクチャに対応し、各ピクチャは、特定のサイズのブロックに分割され、イントラ符号化またはインター符号化のいずれかを実行される。映像シーケンスの第１ピクチャのブロックは、イントラ予測ユニット１０９を用いてイントラ符号化される。イントラピクチャは、同一ピクチャ内の情報のみを使用して符号化され、これにより、独立に復号化され得て、ランダムアクセスのために、ビットストリーム内にエントリポイントを提供し得る。
【０００５】
インター符号化されたピクチャについては、参照ピクチャと呼ばれる、前および／または後の符号化されたピクチャからの情報が、時間的冗長性を減らすために使用される。参照ピクチャは、逆走査、逆量子化、逆変換ユニット１０４によって、および、デブロッキングおよびＳＡＯ（サンプルアダプティブオフセット）フィルタ１０５によって処理され、フレームバッファ１０６に記憶される。インター符号化されたピクチャの各ブロックは、参照ピクチャにおける同一サイズのブロックから予測される。
【０００６】
例えば動きベクトル（ＭＶ）などの動きデータ、モード決定、および参照フレームを選択するために、動き推定が動き推定ユニット１０７によって適用される。動き推定ユニット１０７は、入力として、インター符号化されるピクチャおよび参照ピクチャを含む。元のブロックとその予測されるブロックとの間の差を最小化するために、特定のコスト関数に基づいて、動きデータが選択される。コーダ制御ユニット１１０は、レート歪み最適化手順に基づいて、動きベクトルまたは参照フレームインデックスなどの動き情報を選択する。
【０００７】
動き補償ユニット１０８によって実行される動き補償は、予測信号、または、動き補償されたフレーム信号を生成するために動きデータを使用する。動きデータは、符号化されてサイド情報としてデコーダへ伝送される。その後、残差または予測誤差と呼ばれる、元のブロックとその予測との間の差が変換される。変換係数は通常、量子化され、走査され、エントロピー符号化され、動きデータと共に伝送される。 
【０００８】
ビデオコーダ１００の一部であるデコーダ処理が、図１における点線の四角形１１１内に示されている。図２は、従来技術に係るビデオデコーダ２００を示す。ビデオデコーダ２００は、ビデオコーダ１００と同様に、エントロピーデコーダ２０３と、逆走査、逆量子化、逆変換ユニット２０４と、デブロッキングフィルタおよびＳＡＯユニット２０５と、フレームバッファ２０６と、動き補償ユニット２０８と、イントラ予測ユニット２０９とを備える。
【０００９】
ビデオコーダ１００およびビデオデコーダ２００は両方、同一の予測を生成する。残差データは、逆走査、逆量子化、逆変換ユニット２０４によって再構築される。残差を予測に追加することによって、近似された入力ピクチャがブロック単位で再構築される。アーティファクトを取り除くために、追加の結果がさらにループフィルタ内に供給され得る。最終的な再構築ピクチャは、その後、ピクチャまたはフレームバッファ２０６内に記憶され、後のピクチャの予測に使用され得る。
【００１０】
例えば、図１のビデオコーダ１００および図２のビデオデコーダにおいて適用される動き補償は、ハイブリッド映像符号化／復号化におけるもっとも重要な要素の１つである。動き補償は、現在のブロックを予測するために時間的な情報を利用し、これにより、映像の冗長性を減らす。予測の精度は、参照ブロックと現在のブロックとの間の内容の類似性に依存する。典型的にはアクション映画およびスポーツ映画において予想されるが、ある場面におけるカメラまたは特定の物体の速度の変化によって、モーションブラーがフレームごとに変動し、予測精度の低下につながる。
【００１１】
映像符号化規格からの一般的な動き補償方法は、静止している物体、または、一定速度で移動している物体には有効である。しかしながら、モーションブラーが変動する場合、その精度は制限を受ける。露出時間の間に物体が移動する場合、物体の動きの方向にモーションブラーが発生する。加速する物体は、前の参照フレームより、現在のフレームでの方が、よりぶれて見え、一方、減速する物体は、より鮮明に見える。連続するフレームの間のブラーの程度が変化すると、一般的に、予測誤差が大きくなる。従って、圧縮効率の減少につながり、その結果、インター予測されるブロックの残差についてのデータレートが増加する。
【００１２】
この文脈において、変動するモーションブラー補償のために、参照フレームをフィルタリングすることによって、予測誤差を減らすことが知られている。例えば、複数のブラーフィルタを予め定義し、これらのブラーフィルタを、フレームバッファ１０６内に記憶された参照フレームに適用することが知られている。レート歪み最適化の観点から、各フィルタの性能を繰り返しテストすることにより、最高のブラーフィルタがビデオコーダによって選択される。生成されたビットストリームをビデオデコーダが復号化することを可能にするために、ビデオコーダによって選択されたブラーフィルタは、ビットストリーム内のサイド情報としてデコーダにシグナリングされる。
【００１３】
それでも、そのような技法によって、参照フレームと、インター符号化されている現在のフレームとの間にブラーの変動がある場合に予測誤差が減少し得るとしても、選択されたブラーフィルタをビデオコーダからビデオデコーダへシグナリングするには、符号化されたビットストリーム内に追加のビットが必要となる。この追加のシグナリングによって、今度は、符号化されたビットストリームにおいて、予測誤差を符号化するために使用され得るビット数が減少する。
【発明の概要】
【００１４】
本発明は、上述の短所および問題を考慮して、従来技術を改善することを目的とするものである。具体的には、本発明の目的は、後のフレームの映像ストリームの符号化および復号化を改善するために、ビデオコーダ、符号化方法、ビデオデコーダ、および復号化方法を提供することである。
【００１５】
本発明は特に、予測信号の精度を改善することによって、インター予測符号化の品質を改善することを意図している。本発明はまた、符号化されたビットストリームにおけるシグナリングビットの数を減らすことを意図している。
【００１６】
本発明の上述の目的は、添付の独立請求項において提供される解決法によって達成される。さらに、それぞれの従属請求項において、本発明の有利な実装が定義されている。
【００１７】
本発明の第１態様は、動き補償に従って、後のフレームの映像ストリームを符号化された映像ビットストリームに予測符号化するためのビデオコーダを提供する。ビデオコーダは、映像ストリームの少なくとも１つの参照フレームを記憶するように適合されるフレームバッファを備え、上記参照フレームは、映像ストリームの現在のフレームと異なる。ビデオコーダは、参照フレームの参照ブロックと、現在のフレームの現在のブロックとの間の動きを推定することによって、動きベクトルを生成するように適合される動き推定ユニットを備える。ビデオコーダは、動きベクトルの向きに応じて、複数のフィルタのうちの１つを選択するように適合されるフィルタ選択ユニットを備える。ビデオコーダは、選択されたフィルタを参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合されるフィルタリングユニットを備える。ビデオコーダは、現在のブロックおよびフィルタリングされた参照ブロックに基づいて、現在のブロックのフィルタリングされた予測ブロックを生成するように適合される動き補償ユニットを備える。
【００１８】
これにより、従来技術では、後のフレームの映像ストリームについてのビットストリームにおいて、符号化されることになる追加情報が必要とされるが、本発明では、インター予測サポートのために既にビットストリームの一部である動きベクトルを利用する。従って、参照フレーム／ブロックのフィルタリングをサポートするのに追加のシグナリングは必要ない。以下において、フィルタリングおよび予測は、フレームのブロック、または、さらにはフレーム自体にも適用され得るので、「フレーム」および「ブロック」という特徴は、相互に置き換え可能である。
【００１９】
第１態様に係るビデオコーダの第１実装形式において、動き補償ユニットはさらに、現在のブロックおよび参照ブロックに基づいて、現在のブロックのフィルタリングされていない予測ブロックを生成し、フィルタリングされた予測ブロックおよびフィルタリングされていない予測ブロックの中から、予測誤差を最小化する予測ブロックを出力するように適合され、上記予測誤差は、現在のブロックと、それぞれの予測ブロックとの間の差である。
【００２０】
これにより、レート歪み最適化が行われ得て、その結果、フィルタリングされた、またはフィルタリングされていない参照ブロックが、符号化された予測誤差を生成するために使用される。 
【００２１】
第１態様に係るビデオコーダのさらなる実装形式において、動き推定ユニットは、フィルタリングされた参照ブロックと現在のブロックとの間の動きを推定することによって第２動きベクトルを生成するように適合される。第２動きベクトル、および、参照ブロックと現在のブロックとの間の動きベクトルの比較に応じて、フィルタリングされた参照ブロックが、符号化された映像ビットストリームの生成について、考慮または破棄される。
【００２２】
これにより、第２動き推定の評価によって、ブロックの予測がより正確になり得る。
【００２３】
第１態様に係るビデオコーダのさらなる実装形式において、ビデオコーダは、動き補償ユニットによって出力される予測ブロックに対応する予測誤差に基づいて、符号化された映像ビットストリームを生成するように適合される符号化手段を含む。これにより、効率的な予測符号化を実装され得る。
【００２４】
第１態様に係るビデオコーダのさらなる実装形式において、ビデオコーダは、符号化された映像ビットストリームを生成するように適合される符号化手段を備え、これにより、符号化された映像ビットストリームは、動き情報およびフィルタ情報を含む。動き情報は、動きベクトルを含み、フィルタ情報は、符号化された映像ビットストリームが、現在のブロックとフィルタリングされた予測ブロックとの間の予測誤差に基づくか、または、現在のブロックとフィルタリングされていない予測ブロックとの間の予測誤差に基づくかを指定する。
【００２５】
これにより、フィルタ情報によって、ビデオデコーダは、予測復号化を実行するために参照ブロックの追加的なフィルタリングを行う必要があるかどうかを迅速に判定できる。
【００２６】
第１態様に係るビデオコーダのさらなる実装形式において、符号化手段は、符号化された映像ビットストリーム内に、予測符号化された現在のブロックの各々についてのブロックレベル、フレームレベル、ＧＯＰレベル、ＰＰＳレベル、またはＳＰＳレベルでフィルタ情報を追加するように適合される。
【００２７】
これにより、フィルタ情報を所望の粒度に適応的に設定することが可能となり、その結果、シグナリングが最適化され得る。
【００２８】
第１態様に係るビデオコーダのさらなる実装形式において、ビデオコーダは、変換係数を生成するべく、線形空間変換を用いて予測誤差を変換するように、および、変換係数を量子化するように適合される変換および量子化ユニットと、符号化された映像ビットストリームを生成するべく、量子化された変換係数を、それぞれ走査およびエントロピー符号化するように適合される走査ユニットおよびエントロピーエンコーダとを備える。
【００２９】
これにより、映像ビットストリームにおける、予測誤差を伝送するためのビット数がさらに減らされ得る。
【００３０】
第１態様に係るビデオコーダのさらなる実装形式において、フィルタ選択ユニットは、正の横軸に対する動きベクトルの角度を導出するように、および、角度に応じて、複数のフィルタのうちの上記１つを選択するように適合される。
【００３１】
これにより、参照ブロックに適用されるフィルタの選択が簡易化され、それ以上のシグナリングビットなしで実行され得る。
【００３２】
第１態様に係るビデオコーダのさらなる実装形式において、ビデオコーダは、映像ストリームを単層符号化するためのビデオコーダである。
【００３３】
第１態様に係るビデオコーダのさらなる実装形式において、フィルタ選択ユニットは、動きベクトルの向きに応じて、複数のブラーおよび／またはブラー除去フィルタのうちの１つを選択するように適合される。
【００３４】
これにより、映像ストリームにおいて動きの加速または減速がある場合に、ブラーを参照ブロックから除去または追加することが可能になる。
【００３５】
本発明のさらなる態様は、そのようなビデオコーダを含む、フレーム内およびフレーム間予測のためのハイブリッドビデオエンコーダを提供する。
【００３６】
本発明のさらなる態様は、動き補償に従って、後のフレームの映像ストリームを符号化された映像ビットストリームに予測符号化する方法を提供する。方法は、映像ストリームのうちの少なくとも１つの参照フレームを記憶する段階であって、上記参照フレームは、映像ストリームの現在のフレームと異なる、段階と、参照フレームの参照ブロックと、現在のフレームの現在のブロックとの間の動きを推定することによって、動きベクトルを生成することを含む、動き推定段階と、動きベクトルの向きに応じて、複数のフィルタのうちの１つを選択する段階と、選択されたフィルタを参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成する段階と、現在のブロックおよびフィルタリングされた参照ブロックに基づいて、現在のブロックのフィルタリングされた予測ブロックを生成することを含む動き補償段階とを備える。
【００３７】
本発明のさらなる態様は、動き補償に従って、後のフレームの映像ストリームを予測符号化することによって取得される符号化された映像ビットストリームを復号化するためのビデオデコーダを提供し、符号化された映像ビットストリームは、予測符号化された現在のフレーム、および、参照フレームの参照ブロックと現在のフレームの現在のブロックとの間の動きを反映する符号化された動きベクトルを含み、上記参照フレームは現在のフレームと異なる。ビデオデコーダは、符号化された参照フレームおよび符号化された動きベクトルを復号化するように適合され、これにより、参照フレームおよび動きベクトルを生成する、デコーダと、参照フレームを記憶するように適合されるフレームバッファと、動きベクトルの向きに応じて、複数のフィルタのうちの１つを選択するように適合されるフィルタ選択ユニットと、選択されたフィルタを参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合されるフィルタリングユニットと、動きベクトルおよびフィルタリングされた参照ブロックに基づいて、予測符号化された現在のフレームの現在のブロックを生成するように適合される動き補償ユニットとを備える。
【００３８】
これにより、従来技術では、後のフレームの映像ストリームについてのビットストリームにおいて、符号化されることになる追加情報が必要とされるが、本発明では、インター予測サポートのために既にビットストリームの一部である動きベクトルを利用する。従って、参照フレーム／ブロックのフィルタリングをサポートするのに追加のシグナリングは必要ない。また、フィルタを選択し、選択されたフィルタを参照フレーム／ブロックに適用するために、現在のフレーム以外の情報は必要ない。
【００３９】
さらなる態様に係るビデオデコーダの実装形式において、符号化された映像ビットストリームは、現在のブロックに関連するフィルタ情報を含む。デコーダは、フィルタ情報を復号化するように適合される。動き補償ユニットは、フィルタ情報の値に応じて、動きベクトルおよびフィルタリングされた参照ブロックに基づいて、または、動きベクトルおよび参照ブロックに基づいて、予測符号化された現在のフレームの現在のブロックを生成するように適合される。上記参照ブロックは、フィルタリングされていない参照ブロック、すなわち、選択されたフィルタによって処理されなかった参照ブロックに対応する。
【００４０】
さらなる態様に係るビデオデコーダの実装形式において、フィルタ選択ユニットは、正の横軸などに対する、動きベクトルの角度を導出するように、および、角度に応じて複数のフィルタのうちの上記１つを選択するように適合される。
【００４１】
さらなる態様に係るビデオデコーダの実装形式において、ビデオデコーダは、映像ストリームの単層符号化のためのビデオデコーダである。
【００４２】
さらなる態様に係るビデオデコーダの実装形式において、フィルタ選択ユニットは、動きベクトルの向きに応じて、複数のブラーおよび／またはブラー除去フィルタのうちの１つを選択するように適合される。
【００４３】
本発明のさらなる態様は、そのようなビデオデコーダを含む、フレーム内およびフレーム間予測のためのハイブリッドビデオデコーダを提供する。
【００４４】
本発明のさらなる態様は、動き補償に従って、後のフレームの映像ストリームを予測符号化することによって取得される符号化された映像ビットストリームを復号化するための方法を提供する。符号化された映像ビットストリームは、少なくとも１つの符号化された参照フレーム、予測符号化された現在のフレーム、参照フレームの参照ブロックと現在のフレームの現在のブロックとの間の動きを反映する符号化された動きベクトルを含み、上記参照フレームは、現在のフレームと異なる。方法は、符号化された参照フレーム、および、符号化された動きベクトルを復号化し、これにより、参照フレームおよび動きベクトルを生成する段階と、参照フレームを記憶する段階と、動きベクトルの向きに応じて複数のフィルタのうちの１つを選択する段階と、選択されたフィルタを参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成する段階と、動きベクトルおよびフィルタリングされた参照ブロックに基づいて予測符号化された現在のフレームの現在のブロックを生成することを含む動き補償を行う段階とを備える。
【００４５】
本発明のさらなる態様は、コンピュータプログラムがコンピュータデバイス上で動作するときに、そのような符号化および／または復号化方法を実行するためのプログラムコードを含むコンピュータプログラムを提供する。
【００４６】
本願において説明されるすべてのデバイス、要素、ユニット、および手段は、ソフトウェアもしくはハードウェア要素、または、この任意の種類の組み合わせにおいて実装され得ることに注意すべきである。本願において説明される、さまざまなエンティティによって実行されるすべての段階、および、さまざまなエンティティによって実行されるものと説明される機能は、それぞれのエンティティが、それぞれの段階および機能を実行するように適合または構成されることを意味することが意図されている。具体的な実施形態の以下の記載において、不変のエンティティによって完全に形成される特定の機能または段階が、その特定の機能または段階を実行する、そのエンティティの特定の詳細な要素の記載に反映されていない場合でも、当業者にとって、これらの方法および機能は、それぞれのソフトウェアもしくはハードウェア要素、またはこの任意の種類の組み合わせにおいて実装され得ることは明らかなはずである。
【図面の簡単な説明】
【００４７】
本発明の上述の態様および実装形式は、添付の図面に関連して、具体的な実施形態の以下の記載において説明される。
【図１】従来技術に係るビデオコーダを示す。
【図２】従来技術に係るビデオデコーダを示す。
【図３】本発明の実施形態に係るビデオコーダを示す。
【図４】本発明の実施形態に係るビデオデコーダを示す。
【図５ａ】本発明に係るモーションブラー補償の実施形態を示す。
【図５ｂ】本発明に係るモーションブラー補償の実施形態を示す。
【図６】図５ａの実施形態によって取得される動きベクトルの例を示す。
【図７】本発明に係るフィルタの実施形態を示す。
【図８】本発明に係るフィルタの実施形態を示す。
【図９】本発明に係るフィルタ係数の実施形態を示す。
【発明を実施するための形態】
【００４８】
図３は、本発明の実施形態に係るビデオコーダ、特に、動き補償に従って、後のフレームの映像ストリームを、符号化された映像ビットストリームに予測符号化するためのハイブリッドビデオコーダ３００を示す。
【００４９】
ビデオコーダ３００は、特に、フレームバッファ３０６、動き推定ユニット３０７、フィルタ選択ユニット３１３、フィルタリングユニット３１４、および動き補償ユニット３０８を備える。
【００５０】
フレームバッファ３０６は、映像ストリームのうちの少なくとも１つの参照フレームを記憶するように適合される。上記参照フレームは、映像ストリームの現在のフレームと異なる。本発明の文脈において、現在のフレームは、現在符号化されている映像ストリームのフレームである。現在のフレームは、インター符号化技法を使用して符号化される。すなわち、現在のフレームは、１または複数の参照フレームから予測される。参照フレームは、前のフレーム、すなわち、後のフレームの映像ストリームにおいて現在のフレームの前に位置するフレームであり得る。代替的に、前方予測が使用される場合、参照フレームは、後のフレーム、すなわち、現在のフレームの後に位置するフレームであり得る。複数の参照フレームが存在する場合、少なくとも１つが前のフレームであり得て、それらの少なくとも１つが後のフレームであり得る。参照フレームは、イントラ符号化され得て、すなわち、それ以上のフレームを使用することなく、および、他のフレームへのいかなる依存もなく、符号化され得て、これにより、独立に復号化され得て、ランダム映像アクセスのためのエントリポイントとして機能し得る。 
【００５１】
動き推定ユニット３０７は、参照フレームの参照ブロックと現在のフレームの現在のブロックとの間の動きを推定することによって動きベクトルを生成するように適合される。従って、図３は、動き推定ユニット３０７が、フレームバッファ３０６に記憶される参照フレームのための入力と、現在のフレームに対応する入力ピクチャのための入力とを備えることを示す。
【００５２】
動きベクトルは、ブロック動き推定を使用することによって生成される。参照ブロックおよび現在のブロックは、好ましくは、それぞれ、参照フレームおよび現在のフレームの領域またはサブ領域である。そのようなブロックは、規則的な長方形の形状、または、不規則な形状であり得る。代替的に、ブロックは、フレームと同一のサイズを有し得る。現在のブロックおよび参照ブロックの両方は、同一のサイズを有する。ブロックのサイズは、ブロックモードを用いて定義される。ブロックは、例えば６４×６４画素など、フレームの一部を含む、予め定義されたサイズの映像シーケンスの基本的な符号化構造である符号化単位（ＣＵ）に対応し得る。
【００５３】
インター符号化される、現在のフレームの現在のブロックは、参照フレームの参照ブロックから予測される。フレーム間予測のための符号化処理は、現在のブロックを予測するために適用される動きベクトルと参照インデックスとを含む動きデータを選択することを含む。参照インデックスは、参照ブロックおよび／または参照フレームのインデックスである。
【００５４】
フィルタ選択ユニット３１３は、動きベクトルの向きに応じて複数のフィルタのうちの１つを選択するように適合される。フィルタリングユニット３１４は、選択されたフィルタを参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合される。動き補償ユニット３０８は、現在のブロックおよびフィルタリングされた参照ブロックに基づいて現在のブロックのフィルタリングされた予測ブロックを生成するように適合される。
【００５５】
従って、図３は、動き推定ユニット３０７が動きベクトルをフィルタ選択ユニット３１３へ伝送することを示す。フィルタ選択ユニット３１３の出力は、選択されたフィルタを識別する。フィルタリングユニット３１４は次に、フィルタ選択ユニット３１３によって選択されたフィルタを、フレームバッファ３０６内に記憶された参照フレームの参照ブロックに適用し、これにより、動き補償ユニット３０８へ伝送される、フィルタリングされた参照ブロックを生成する。動き補償ユニット３０８は次に、現在のフレームの現在のブロック、および、フィルタリングされた参照ブロックに基づいて、フィルタリングされた予測ブロックを生成する。好ましくは、フィルタリングされた予測ブロックは、現在のブロック、動きベクトル、およびフィルタリングされた参照ブロックに基づいて生成される。
【００５６】
特に、ハイブリッド映像符号化については、参照フレームにおいて最適な予測ユニットを指す動きベクトルを発見するために、符号化の間、上記動き推定３０７が実行される。動き補償３０８は、予測信号を生成するために、符号化されてサイド情報としてデコーダへ伝送される動きデータを使用する。予測信号は、予測フレームを取得するために組み合わされ得る予測ブロックを指す。 
【００５７】
図３のビデオコーダ３００は、図１のビデオコーダ１００と同様に、さらなるユニットを備える。特に、ビデオコーダ３００は、変換および量子化ユニット３０１、走査ユニット３０２、エントロピーエンコーダ１０３、逆走査、逆量子化、逆変換ユニット３０４、ならびにデブロッキングおよびＳＡＯフィルタユニット３０５である類似ユニットを備える。ビデオコーダ３００はさらに、動き推定ユニット３０７、動き補償ユニット３０８、例えば参照フレームのイントラ予測を担当するイントラ予測３０９、およびコーダ制御３１０である類似ユニットを備える。
【００５８】
図３において示されるハイブリッドビデオコーダ３００において、例えばブロックもしくは符号化単位のために、動き推定３０７の間に生成される動きベクトルに基づいて、上記動きベクトルの向きに従って、特に、横軸に対する、上記動きベクトルの角度に従って、予め定義されたフィルタが選択３１３される。現在のブロックの動きベクトルに基づいて、角度が計算される。次に、選択されたフィルタが、フレームバッファ３０６内に記憶された参照フレームに適用される。 
【００５９】
ビデオエンコーダ３００において、動き補償ユニット３０８はさらに、現在のブロックおよび参照ブロックに基づいて、特に、現在のブロック、動きベクトル、および参照ブロックに基づいて、現在のブロックのフィルタリングされていない予測ブロックを生成するように適合される。ここで考慮される参照ブロックは、フレームバッファ３０６内に記憶された参照フレームのフィルタリングされていない参照ブロックである。動き補償ユニット３０８はさらに、フィルタリングされた予測ブロックおよびフィルタリングされていない予測ブロックの中から、予測誤差を最小化する予測ブロックを出力するように適合され、上記予測誤差は、現在のブロックと、それぞれの予測ブロックとの間の差である。
【００６０】
このことは、フィルタリングされた予測ブロック、および、フィルタリングされていない予測ブロックのレート歪み性能が比較されることを意味する。その結果、より良いレート歪み性能を提示する選択肢が選択される。この比較およびこの選択は、コーダ制御３１０によって実行され得る。コーダ制御３１０は、レート歪み最適化手順に基づいて、動きベクトルおよび参照インデックスなどの動き情報、ならびに、ブラーフラグのようなフィルタ情報を選択し得る。
【００６１】
エントロピーエンコーダ３０３は、符号化された映像ビットストリームを生成するように適合され、その結果、符号化された映像ビットストリームは、動き情報およびフィルタ情報を含む。動き情報は、ユニットによって選択される動きベクトルを含み、また、有利なことに、参照ブロックを識別するためのインデックスである参照インデックス、ならびに／または、現在のブロックおよび／もしくは現在のフレームの予測符号化に使用される参照フレームを含む。フィルタ情報は、符号化された映像ビットストリームが、現在のブロックとフィルタリングされた予測ブロックとの間の予測誤差に基づくか、または、現在のブロックとフィルタリングされていない予測ブロックとの間の予測誤差に基づくかを指定する。特に、フィルタ情報は、符号化されたビットストリームが、フィルタリングされた予測ブロックおよびフィルタリングされていない予測ブロックに基づいて生成されたかどうかを指定する。
【００６２】
フィルタ選択ユニット３１３は、動きベクトルの向きに応じて、複数のブラーまたはブラー除去フィルタのうちの１つを選択するように適合される。フィルタは、コーダ３００、および、図４においてデコーダ４００として示される対応するデコーダの両方に存在する、予め定められたフィルタであり得る。代替的に、フィルタの定義は、ビットストリームにおいて、対応するフィルタシグナリングによって、コーダ３００からデコーダ４００へ伝送され得る。このことは、予め定義されたフィルタを送信する必要が無いように、固定されたフィルタがすべての映像シーケンスに使用されること、または、例えば、異なる分類の映像のために、カスタマイズされたフィルタが定義されることのいずれかを意味する。後者の場合、フィルタは、ＳＥＩ（補足拡張情報）メッセージを通してデコーダへ送信され得る。
【００６３】
ビットストリームにおいて伝送されるフィルタ情報は、フィルタフラグであり得る。例えば、ブラーフラグは、インター予測で、すなわち、インターモードに従って符号化された各ブロックについて定義され得る。ブロックレベルのフラグは、現在のブロックに、ブラーまたはブラー除去フィルタが使用されたかどうかを示すために使用され得る。加えて、スライスヘッダにおいて追加されるブラーフラグは、ブラー／ブラー除去フィルタが現在のスライスに使用されたかどうかを示すために使用され得る。ＳＰＳ（シーケンスパラメータセット）におけるそのようなフラグは、ブラー／ブラー除去フィルタが、符号化された映像シーケンスのために使用されたかどうかを示すために使用され得る。ＰＰＳ（ピクチャパラメータセット）におけるそのようなフラグは、ブラー／ブラー除去フィルタが、符号化されたピクチャに使用されたかどうかを示すために使用され得る。代替的に、ブラーフラグは、ブラーフィルタが現在のブロックに使用されたかどうかを示すために使用され得て、ブラー除去フラグは、ブラー除去フィルタが現在のブロックに使用されたかどうかを示すために使用され得る。
【００６４】
フレーム内およびフレーム間予測である、知られている標準的な符号化方法（スキップを含む）に加えて、本発明はさらに、ハイブリッド映像符号化のためのモーションブラー補償モードであるモードを提案する。このモーションブラー補償は、特定のブロックの符号化の間の、ＨＥＶＣなどのハイブリッド映像符号化のインターモード（スキップを含む）の補完とみなされ得る。本発明は、動き推定３０７によって取得される動きベクトルから導出される角度θのフィルタで、フレームバッファ３０６に記憶された、再構築されたフレームをフィルタリング３１４することによって、時間的参照フレームを形成することを提案する。
【００６５】
これらのフィルタリングされた参照フレームおよび／または参照ブロックは次に、モーションブラー補償に使用される。ブラーフィルタが参照フレームに適用される場合、フィルタリングされた参照フレーム、および、フレームバッファ３０６に記憶された元の参照フレームは、同一の参照インデックスを共有する。つまり、参照インデックスは、ハイブリッド映像符号化における一般的な動き推定における再構築されたフレーム、または、提案されたモーションブラー補償の動き推定に使用される、ブラー処理された時間的フレームのいずれかを指すであろう。
【００６６】
本発明に係るモーションブラー補償の動き推定は、ＨＥＶＣにおける動き推定など、ハイブリッド映像符号化の従来の動き推定の後に実行される。
【００６７】
ブラーフラグは、すべてのパーティションサイズ（２Ｎ×２Ｎ、２Ｎ×Ｎ、２Ｎ×Ｎｕ、２Ｎ×Ｎｄ、...）について、インターモード（スキップを含む）で符号化される各ブロックまたは符号化単位のために定義され得る。デコーダ４００は、ＣＵの再構築の間に参照フレームがブラー処理されたかどうかを判定でき、符号化されたＭＶから導出される角度θを使用して参照フレームのブラーを再現できる。ブラーフラグは、レート歪み（ＲＤ）最適化において考慮される。 
【００６８】
ブロックまたは符号化単位レベルにおけるフラグは、ブラー／ブラー除去フィルタが符号化単位のために使用されたかどうかを示すために使用され得る。それに加えて、ＳＰＳにおけるフラグは、ブラー／ブラー除去フィルタが、符号化された映像シーケンスに使用されたかどうかを示すために使用され得る。また、ＰＰＳにおけるフラグは、ブラー／ブラー除去フィルタが、符号化されたピクチャに使用されたかどうかを示すために使用され得る。
【００６９】
図４は、本発明の実施形態に係るビデオデコーダを示す。このビデオデコーダ４００は、図３における点線の四角形３１１の中に位置するビデオコーダ３００の要素を含むという点で、ビデオコーダ３００に対応する。デコーダ４００は、ビデオコーダ３００によって生成されるビットストリームを復号化するように適合され、デコーダ４００およびコーダの両方は、同一の予測を生成する。
【００７０】
ビデオデコーダ４００は、動き補償に従って、後のフレームの映像ストリームを予測符号化することによって取得される、符号化された映像ビットストリームを復号化するためのデコーダである。符号化された映像ビットストリームは、予測誤差に対応する、予測符号化された現在のフレームと、参照フレームの参照ブロックと現在のフレームの現在のブロックとの間の動きを反映する符号化された動きベクトルを含み、上記参照フレームは、現在のフレームと異なる。
【００７１】
ビデオデコーダ４００は、デコーダ４０３、フレームバッファ４０６、フィルタ選択ユニット４１３、フィルタリングユニット４１４、および動き補償ユニット４０８を備える。デコーダ４０３は、符号化された参照フレーム、および、符号化された動きベクトルを復号化するように適合され、これにより、参照フレームおよび動きベクトルを生成する。フレームバッファ４０６は、参照フレームを記憶するように適合される。  フィルタ選択ユニット４１３は、動きベクトルの向きに応じて複数のフィルタのうちの１つを選択するように適合される。フィルタリングユニット４１４は、選択されたフィルタを参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合される。動き補償ユニット４０８は、動きベクトルおよびフィルタリングされた参照ブロックに基づいて、予測符号化された現在のフレームの現在のブロックを生成するように適合される。
【００７２】
さらに、符号化された映像ビットストリームは、現在のブロックに関連するフィルタ情報を含む。デコーダ４０３は、フィルタ情報を復号化するように適合され、動き補償ユニット４０８は、フィルタ情報の値に応じて、動きベクトルおよびフィルタリングされた参照ブロックに基づいて、または、動きベクトルおよび参照ブロックに基づいて、予測符号化された現在のフレームの現在のブロックを生成するように適合される。事実、上記参照ブロックは、フィルタリングされていない参照ブロック、すなわち、選択されたフィルタによって処理されなかった参照ブロックに対応する。
【００７３】
フィルタ選択ユニット４１３は、正の横軸に対する、動きベクトルの角度を導出し、角度に応じて、複数のフィルタのうちの上記１つを選択するように適合される。
【００７４】
図４は、符号化された映像ストリーム、すなわち、ビットストリームが、逆走査、逆量子化、逆変換ユニット４０４、ならびにデブロッキングおよびＳＡＯフィルタ４０５を介して、現在のブロック／フレームについての参照フレームおよび予測誤差を復号化するエントロピーデコーダ４０３に供給されることを示す。参照フレームは、フレームバッファ４０６に記憶される。他方、デコーダ４０３は、動きベクトルおよびブラー／ブラー除去フラグをそれぞれ有する動き情報およびフィルタ情報をフィルタ選択ユニット４１３および動き補償ユニット４０８へ伝送する。
【００７５】
ブラー／ブラー除去フラグなどのフィルタ情報は、例えば、２Ｎ×２Ｎ、２Ｎ×Ｎ、２Ｎ×Ｎｕ、２Ｎ×Ｎｄ、...を含むすべてのパーティションサイズについて、インターモード（スキップを含む）で符号化された各ブロックまたは符号化単位のために定義され得る。ブラー／ブラー除去フラグは、スライスヘッダ、ＰＰＳ、またはＳＰＳにおいて提示され得る。デコーダ４００は、ブロックの再構築の間に参照フレームがブラー処理されたかどうかを判定でき、符号化された動きベクトルから導出される角度θを使用して参照フレームのブラーを再現できる。デコーダ４００において復号化されるフレームが、再構築されたものと同一であることを確実にするために、デコーダ４００およびコーダ３００によって同一のフィルタが現在のブロックに適用され、フィルタは、復号化された動きベクトルの向きを使用して決定される。次に、モーションブラーフィルタが参照フレーム／ブロックに適用される。動き補償は、フィルタ情報に応じて、特に、フィルタ、例えばブラーフィルタがエンコーダ３００において適用されたことをブラー／ブラー除去フラグが示す場合、ブラーフィルタリングされた信号を利用する。
【００７６】
提案される動き補償、すなわち、エンコーダにおけるモーションブラー補償の２つの実施形態は、以下のように説明される。
【００７７】
図５ｂは、本発明に係るモーションブラー補償の実施形態を示す。この実施形態は、現在のブロックまたは符号化単位（ＣＵ）を符号化５００するとき、動き推定ユニット３０７によって動き推定５０１が実行され、その結果、参照ブロックと現在のブロックとの間の動きを推定することによって動きベクトルを生成するという点において、１つの動き推定を含む。フィルタ生成５０３の間、フィルタ選択ユニット３１３は、動きベクトルの向き、すなわち、例えば横方向に対する、動きベクトルの角度θに対応するフィルタを選択する。角度θについての範囲［０，π］は、小範囲［０，θ１］、［θ１，θ２］...［θｎ−１，θｎ］、［θｎ，π］に細分され（ｎは整数の値）、各小範囲は、１つの予め定義されたフィルタに関連する。
【００７８】
フィルタが生成または選択されると、このフィルタは、例えば、ブラー処理された参照ブロック／フレーム５０４のようなフィルタリングされた参照ブロック／フレームを生成するために、参照ブロックまたはフレームに適用される。図５ｂは、フィルタフラグ、すなわち、ブラーフラグが真５０２である場合、フィルタリングされた参照ブロック／フレームが生成され、一方で、フィルタフラグ、すなわち、ブラーフラグが偽５０５である場合、参照ブロック／フレームがフィルタリングされないことを示す。動き補償５０６は、フィルタリングされた参照ブロック／フレームおよびフィルタリングされていない参照ブロック／フレームの両方に適用される。以下のレート歪み最適化５０７に基づいて、フィルタリングされた、またはフィルタリングされていない参照ブロックが、予測誤差の生成に使用されるかどうかが決定される。
【００７９】
図５ａは、本発明に係るモーションブラー補償のさらなる実施形態を示す。図５ｂの実施形態と対照的に、ブラー処理された参照ブロック／フレーム５０４は、動き補償５０６へ送信されないが、第２動き推定を実行するために使用される。
【００８０】
従って、動き推定ユニット３０７は、フィルタリングされた参照ブロック５０４に基づいて第２動き推定５１０を実行し、それにより、フィルタリングされた参照ブロック５０４と現在のブロックとの間の動きを推定することによって第２動きベクトルを生成するように適合される。次に、参照ブロックと現在のブロックとの間の、第２動き推定５１０によって生成される第２動きベクトルと、第１動き推定５０１によって生成される、第１動きベクトルとの間で比較５１１が実行される。この比較５１１に応じて、フィルタリングされた参照ブロックは、符号化された映像ビットストリームの生成について考慮されるか、または破棄される。
【００８１】
そのため、図５ａの実施形態は、２回の動き推定５０１、５１０を含み、第２動き推定５１０は、フィルタリングされた参照ブロック／フレームに基づいて実行される。これにより、第１および第２動きベクトルが、区画ベースのアルゴリズムに従って定義された同一の角度区画内に位置しない場合、フィルタリング／ブラー方法は無視される５１２。
【００８２】
特定のブロックまたは符号化単位の符号化５０１の間、符号化処理における区画ベースのアルゴリズムの１要素は、フィルタリングまたはブラー処理された参照ブロック／フレームに基づいて第２動き推定５１０が行われた後の、第２動きベクトルに対応する、予測される動きベクトルのバリデーションチェックである。
【００８３】
バリデーションチェックは以下の３つの基準を有する。１）第１動きベクトルおよび第２動きベクトルが同一区画内にある。２）第２動きベクトルが非ゼロベクトルである。３）動きベクトルが、定義された検索範囲、すなわち、横方向および縦方向の±６４の中にある。
【００８４】
図６は、区画ベースのアルゴリズムを使用して図５ａの実施形態によって取得される動きベクトルの例を示す。図６は、４つの異なる角度区画、［０，π／４］、［π／４，π／２］、［π／２，３π／４］、［３π／４，π］を示す。第１動き推定５０１によって取得される第１動きベクトルは、「１．ＭＶ」で表され、第１区画に位置する。 
【００８５】
第１の例によれば、第２動き推定５１０が次に適用され、その結果として、第２動きベクトルは「有効２．ＭＶ」で表される。第２動きベクトルは、第１動きベクトルと同一区画に位置し、ブラーフラグは真である５１３。このことは、フィルタリングされた参照ブロックに基づく動き補償が可能であることを意味する。この場合、動き補償５０６は、フレームバッファからのフィルタリングされていない参照ブロックおよびフィルタリングされた参照ブロックの両方について実行される。以下のレート歪み最適化は、フィルタリングされた、またはフィルタリングされていないバージョンのいずれかを選択するために実行される。
【００８６】
第２の例によれば、「無効２．ＭＶ」で表される第２動きベクトルは、第１動きベクトルの区画と異なる区画に位置する。その結果、フィルタリングは無視され５１２、動き補償はフィルタリングされていない参照ブロックのみに適用される。
【００８７】
換言すれば、ブラー操作５０４の後、第１動きベクトルおよび第２動きベクトルが同一の定義された区画に位置する場合のみ、ブラーフラグが真に設定される５１３。それ以外の場合、ブラーフラグは偽に設定される５１２。対照的に、図５ｂの実施形態において、２回目の動き推定は必要ない。ブラー５０４が実行される場合、ブラーフラグは真に設定される５０２。これらの実施形態は、ブラーフィルタが使用されるべきかどうかをどのように決定するかについての、コーダ関連の実施形態である。
【００８８】
再び図５ａの実施形態において、第１の基準は、好ましくは、代表的な方向が、予め定義された区画の各々について定義されることを意味する。代表的な方向は、好ましくは、区画の中央に存在する。例えば、図６は、第１区画についての代表的な方向を示し、上記方向は、「代表的ＭＶ」で表される。そのような代表的な方向に基づいて、ブラーフィルタが生成される。異なる精度の要件に従って区画の数が与えられ得て、符号化が開始する前に、同一の数の対応するブラーフィルタが計算される。
【００８９】
第１および第２動きベクトルが同一区画に属する場合、同一の代表的な方向、および、同一のブラーフィルタがエンコーダおよびデコーダによって使用される。デコーダは、伝送される動きベクトルによって保持される方向を発見するだけでよく、同一の再構築されたブロックまたは符号化単位を有するように厳密なフィルタリングを行う。
【００９０】
図６の例において、４つの区画の数が選択される場合、各フィルタは、π／４＝４５°の角度をカバーする。第１動きベクトルは第１区画に含まれるので、代表的動きベクトルは、区画の中央の方向を指す。第２動きベクトル「有効２．ＭＶ」が同一区画に含まれる場合、真の値がバリデーションチェックによって与えられ、デコーダは、同一の代表的動きベクトルを発見する。
【００９１】
好ましくは、第２動きベクトルは次に、デコーダへ伝送される。このことは、ビデオコーダは、符号化された映像ビットストリームを生成するように適合される符号化手段３０３を備え、これにより、符号化された映像ビットストリームは動き情報を有し、動き情報は第２動きベクトルは含むことを意味する。
【００９２】
第２動きベクトル「無効２．ＭＶ」が、第２ベクトルについての別の代表的動きベクトルにつながる場合、偽の値がバリデーションチェックによって与えられる。
【００９３】
有利なことに、第２の基準は、第２動きベクトルが非ゼロベクトルであることから成る。この基準は、露出の間に物体とカメラとの間に相対的な動きがある場合にモーションブラーが発生するという事実に基づく。ゼロ動きベクトルとは、ブロックまたは符号化単位について動きが発見されず、従って、ブラーが存在しないはずであり、バリデーションチェックの結果、偽にならないことを意味する。従って、フィルタは参照ブロックに適用されない３１４。この第２の基準は、第１の基準に加えて、または単独で考慮され得る。
【００９４】
最後に、第３の基準によれば、バリデーションチェックが真となるには、第２動きベクトルは、動き推定の検索範囲内にある必要がある。この第３の基準は、第１および／または第２の基準に加えて考慮され得る。
【００９５】
区画の数の増加に伴い、ブラーの方向はより正確になり、一方、第２動きベクトルのバリデーション速度が減少し、これにより、符号化利得および効率の低下につながり得る。従って、フィルタ精度とバリデーション速度との間にはトレードオフが存在する。
【００９６】
図５ａの実施形態と比較すると、図５ｂの実施形態の符号化構造は、区画に基づく第２動き推定およびバリデーションチェックの代わりに、フィルタリングされた参照に基づいて同一の動きベクトルを動き補償（ＭＣ）に適用することによって簡易化される。従って、図５ｂの実施形態は、ランタイムを減らし得る。実際、この実施形態は、１つの追加の動き推定だけでなく、ブラーの領域も削減する。標準動き推定によってカバーされる領域全体をブラー処理する代わりに、動きベクトルによって指される、参照フレーム上のブロックもしくは符号化単位、および、後の補間によって使用されるその周辺をブラー処理することだけが要求される。図５ａの実施形態において上述した理由と同一の理由から、ここでも、ゼロ動きベクトルがモーションブラー補償から排除される。
【００９７】
図５ａの実施形態は、エンコーダおよびデコーダが同一のブラー方向を共有することを確実にするために、フィルタリングされた参照フレームに対する第２動き推定、および、区画ベースのバリデーションチェックを導入する。図５ａの実施形態において、ブロックまたは符号化単位の予測は、フィルタ数の増加、すなわち、区画の数の増加に伴い、より正確になる。なぜなら、生成されたフィルタは、方向の精度がより高いからである。他方、フィルタの数が多くなることは、第２動きベクトルについての有効角度の範囲が減少し、モーションブラー補償がより頻繁に無視されることを意味する。９個のフィルタを使用することが良い妥協案である。
【００９８】
以下において、モーションブラー補償に使用され得るブラーフィルタの実施形態が示される。
【００９９】
連続的な時間領域における、一般に使用される線形均一モーションブラーの点拡がり関数（ＰＳＦ）は、線分Ｌ、および、横軸に対する角度θによって記述され、以下の式で与えられる。
【０１００】
【数１】
0006593934.tif 000002
【０１０１】
ここで、Ｌは動きの速度および露出時間に比例し、θは動きの方向を示し、（ｘ，ｙ）は直交座標系における位置である。この関数は、例えば、「Ｐｈｏｔｏ  ｃｏｎｓｉｓｔｅｎｔ  ｍｏｔｉｏｎ  ｂｌｕｒ  ｍｏｄｅｌｉｎｇ  ｆｏｒ  ｒｅａｌｉｓｔｉｃ  ｉｍａｇｅ  ｓｙｎｔｈｅｓｉｓ」（Ｈ．Ｌｉｎ  ａｎｄ  Ｃ．Ｃｈａｎｇ，ＰＳＩＶＴ２００６）から周知である。
【０１０２】
式（１）の離散版は、一定速度で露出時間の間に、線分によってカバーされるセンサを横切る輝点を考慮することによって取得される。これは、「Ｐａｒａｍｅｔｒｉｃ  Ｂｌｕｒ  Ｅｓｔｉｍａｔｉｏｎ  ｆｏｒ  Ｂｌｉｎｄ  Ｒｅｓｔｏｒａｔｉｏｎ  ｏｆ  Ｎａｔｕｒａｌ  Ｉｍａｇｅｓ：  Ｌｉｎｅａｒ  Ｍｏｔｉｏｎ  ａｎｄ  Ｏｕｔ−ｏｆ−Ｆｏｃｕｓ」（Ｊ．Ｏｌｉｖｅｉｒａ，Ｍ．Ｆｉｇｕｅｉｒｅｄｏ，ａｎｄ  Ｊ．Ｂｉｏｕｃａｓ−Ｄｉａｓ，Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ，２０１４）から周知である。ブラーカーネルの各係数は、各センサ要素に費やされた時間に比例する。一定の動きを仮定すると、フィルタ係数は、図７によって示されるように、線分と、格子内の各画素との交差の正規化された長さによって与えられる。上記の図７は、θ＝ａｒｃｔａｎ４／５である線形モーションブラーの離散版を示す。
【０１０３】
モーションブラーが変動する場合、フィルタリングされた参照は、符号化性能を改善し得る。モーションブラー、および、モーションブラーの変化は、式（１）によって記述され得ると仮定する。単一フレームの露出時間の間、動きは一定であるとみなされ得る。２つの隣接フレームの間の時間間隔は、５０ｆｐｓ映像シーケンスの場合、わずか０．０２秒なので、ほとんどの場合、モーションブラーの程度の変化は小さいと、私たちは示唆する。従って、私たちは、ブラーにおける変動の現象を記述するために、３画素の固定された程度を利用する。すなわち、Ｌ＝３である。従って、輝度成分についての２次元ブラーフィルタは、３×３の次元を有する。
【０１０４】
ブラーフィルタについての他の自由度は、角度θである。それは、ＨＥＶＣなどのハイブリッド映像符号化において使用される動きベクトルから導出される。従って、ブラーフィルタが確立される前に、標準ハイブリッド映像符号化動き検索が実行される。ブラー処理された参照フレームは、動きベクトルの方向を使用することによって生成される。 
【０１０５】
３×３フィルタの一般的な離散版は、対称性に起因して、５つの異なる係数ａ、ｂ、ｃ、ｄ、ｅを有し、図８を使用して、任意角度θに従って計算される。示唆されるフィルタは、ローパスフィルタである。例として、θ＝１５°およびθ＝６０°である場合のフィルタ係数が図９に列挙されている。
【０１０６】
実施形態において、テストシーケンスが４：２：０形式を有する場合、私たちは、そのような３×３フィルタを使用することによって、参照の輝度成分をブラー処理することだけを行う。クロミナンス画素は、輝度成分の１つおきの画素位置に存在する［６］。ブラーの程度がわずか３画素である場合、３つの近接するルミナンス画素、ただしクロミナンス画素は１つのみを考慮する必要がある。近接するクロミナンス画素は、ブラーの影響範囲の外にあり、従って、フィルタは必要ない。４：４：４クロマサブサンプリングのシーケンスの場合、輝度成分についての同一のフィルタがクロミナンス成分に適用される。
【０１０７】
提案されるモーションブラーモデルおよび提案されるブラーフィルタは例である。提案された発明によれば、他のブラーフィルタも同様に適用され得る。当該発明において、現在の符号化単位／ブロックの動きベクトルは、ハイブリッド映像符号化における符号化効率の改善のために、予め定義されたフィルタを選択するために使用される。
【０１０８】
例としてのさまざまな実施形態および実装と併せて本発明を説明した。しかしながら、当業者、および、請求される発明を実施する者であれば、図面、本開示、および独立請求項を検討することによって、他の変形形態を理解および実現し得る。特許請求の範囲および発明の記載において、「含む」という単語は、他の要素または段階を排除するものではなく、不定冠詞「ａ」または「ａｎ」は、複数形を排除するものではない。単一の要素または他のユニットが、特許請求項において列挙される複数のエンティティまたは項目の機能を実現し得る。特定の手段が、相互に異なる従属請求項において列挙されるという事実だけで、これらの手段の組み合わせが有利な実装において使用できないことが示されるわけではない。
本願によれば、以下の各項目もまた開示される。
（項目１）
動き補償に従って、後のフレームの映像ストリームを符号化された映像ビットストリームに予測符号化するためのビデオコーダであって、
前記映像ストリームの少なくとも１つの参照フレームを記憶するように適合されるフレームバッファであって、前記参照フレームは、前記映像ストリームの現在のフレームと異なる、フレームバッファと、
前記参照フレームの参照ブロックと前記現在のフレームの現在のブロックとの間の動きを推定することによって動きベクトルを生成するように適合される動き推定ユニットと、
前記動きベクトルの向きに応じて、複数のフィルタのうちの１つのフィルタを選択するように適合されるフィルタ選択ユニットと、
選択された前記フィルタを前記参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合されるフィルタリングユニットと、
前記現在のブロックおよび前記フィルタリングされた参照ブロックに基づいて、前記現在のブロックのフィルタリングされた予測ブロックを生成するように適合される動き補償ユニットと
を備えるビデオコーダ。
（項目２）
前記動き補償ユニットは、
前記現在のブロックおよび前記参照ブロックに基づいて、前記現在のブロックのフィルタリングされていない予測ブロックをさらに生成し、
前記フィルタリングされた予測ブロックおよび前記フィルタリングされていない予測ブロックの中から、予測誤差を最小化する予測ブロックを出力し、前記予測誤差は、前記現在のブロックと、それぞれの前記予測ブロックとの間の差である、
ように適合される、項目１に記載のビデオコーダ。
（項目３）
前記動き推定ユニットは、
前記フィルタリングされた参照ブロックと前記現在のブロックとの間の動きを推定することによって、第２動きベクトルを生成するように適合され、
前記第２動きベクトル、および、前記参照ブロックと前記現在のブロックとの間の動きベクトルの比較に応じて、前記符号化された映像ビットストリームを生成するために、前記フィルタリングされた参照ブロックが考慮されるか、または、破棄される、
項目１または２に記載のビデオコーダ。
（項目４）
前記動き補償ユニットによって出力される前記予測ブロックに対応する前記予測誤差に基づいて前記符号化された映像ビットストリームを生成するように適合される符号化手段を備える、項目２に記載のビデオコーダ。
（項目５）
前記符号化された映像ビットストリームを生成するように適合される符号化手段を備え、これにより、前記符号化された映像ビットストリームは、動き情報およびフィルタ情報を含み、前記動き情報は、前記動きベクトルを含み、
前記フィルタ情報は、前記符号化された映像ビットストリームが、前記現在のブロックと前記フィルタリングされた予測ブロックとの間の予測誤差に基づいているか、または、前記現在のブロックと前記フィルタリングされていない予測ブロックとの間の予測誤差に基づいているかを指定する、
前述の項目１から４のいずれか一項に記載のビデオコーダ。
（項目６）
前記符号化手段は、予測符号化された現在のブロックの各々についてのブロックレベル、フレームレベル、ＧＯＰ（ピクチャのグループ）レベル、ＰＰＳ（ピクチャパラメータセット）レベル、またはＳＰＳ（シーケンスパラメータセット）レベルで、前記フィルタ情報を前記符号化された映像ビットストリームに追加するように適合される、項目５に記載のビデオコーダ。
（項目７）
変換係数を生成するべく、線形空間変換を用いて予測誤差を変換し、前記変換係数を量子化するように適合される変換および量子化ユニットと、
前記符号化された映像ビットストリームを生成するべく、量子化された前記変換係数を、それぞれ走査およびエントロピー符号化するように適合される走査ユニットおよびエントロピーエンコーダと
を備える、項目４から６のいずれか一項に記載のビデオコーダ。
（項目８）
前記フィルタ選択ユニットは、例えば、正の横軸に対する、前記動きベクトルの角度を導出し、前記角度に応じて、複数のフィルタのうちの１つの前記フィルタを選択するように適合される、項目１から７のいずれか一項に記載のビデオコーダ。
（項目９）
前記映像ストリームを単層符号化するための、項目１から８のいずれか一項に記載のビデオコーダ。
（項目１０）
前記フィルタ選択ユニットは、前記動きベクトルの向きに応じて、複数のブラーおよびブラー除去フィルタのうち少なくとも１つを選択するように適合される、項目１から９のいずれか一項に記載のビデオコーダ。
（項目１１）
項目１から１０のいずれか一項に記載のビデオコーダを備える、フレーム内およびフレーム間予測のためのハイブリッドビデオエンコーダ。
（項目１２）
動き補償に従って後のフレームの映像ストリームを符号化された映像ビットストリームに予測符号化するための方法であって、
前記映像ストリームのうちの少なくとも１つの参照フレームを記憶する段階であって、前記参照フレームは、前記映像ストリームの現在のフレームと異なる、段階と、
前記参照フレームの参照ブロックと、前記現在のフレームの現在のブロックとの間の動きを推定することによって、動きベクトルを生成することを含む、動き推定の段階と、
前記動きベクトルの向きに応じて、複数のフィルタのうちの１つのフィルタを選択する段階と、
選択された前記フィルタを前記参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成する段階と、
前記現在のブロックおよび前記フィルタリングされた参照ブロックに基づいて、前記現在のブロックのフィルタリングされた予測ブロックを生成することを含む動き補償の段階と
を備える方法。
（項目１３）
動き補償に従って後のフレームの映像ストリームを予測符号化することによって取得される符号化された映像ビットストリームを復号化するためのビデオデコーダであって、
前記符号化された映像ビットストリームは、予測符号化された現在のフレーム、および、参照フレームの参照ブロックと、前記現在のフレームの現在のブロックとの間の動きを反映する符号化された動きベクトルを含み、前記参照フレームは、前記現在のフレームと異なり、
前記ビデオデコーダは、
前記符号化された参照フレームおよび前記符号化された動きベクトルを復号化するように適合され、これにより、参照フレームおよび動きベクトルを生成する、デコーダと、
前記参照フレームを記憶するように適合されるフレームバッファと、
前記動きベクトルの向きに応じて、複数のフィルタのうちの１つのフィルタを選択するように適合されるフィルタ選択ユニットと、
選択された前記フィルタを前記参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成するように適合されるフィルタリングユニットと、
前記動きベクトルおよび前記フィルタリングされた参照ブロックに基づいて、前記予測符号化された現在のフレームの前記現在のブロックを生成するように適合される動き補償ユニットと
を備える、ビデオデコーダ。
（項目１４）
前記符号化された映像ビットストリームは、前記現在のブロックに関連するフィルタ情報を含み、
前記デコーダは、前記フィルタ情報を復号化するように適合され、
前記動き補償ユニットは、前記フィルタ情報の値に応じて、前記動きベクトルおよび前記フィルタリングされた参照ブロックに基づいて、または、前記動きベクトルおよび前記参照ブロックに基づいて、前記予測符号化された現在のフレームの前記現在のブロックを生成するように適合される、
項目１３に記載のビデオデコーダ。
（項目１５）
前記フィルタ選択ユニットは、例えば正の横軸に対する、前記動きベクトルの角度を導出し、前記角度に応じて複数のフィルタのうちの１つの前記フィルタを選択するように適合される、項目１３または１４に記載のビデオデコーダ。
（項目１６）
前記映像ストリームを単層符号化するための、項目１３から１５のいずれか一項に記載のビデオデコーダ。
（項目１７）
前記フィルタ選択ユニットは、前記動きベクトルの向きに応じて、複数のブラーおよびブラー除去フィルタのうち少なくとも１つを選択するように適合される、項目１３から１６のいずれか一項に記載のビデオデコーダ。
（項目１８）
項目１３から１７のいずれか一項に記載のビデオデコーダを備える、フレーム内およびフレーム間予測のためのハイブリッドビデオデコーダ。
（項目１９）
動き補償に従って、後のフレームの映像ストリームを予測符号化することによって取得される符号化された映像ビットストリームを復号化するための方法であって、
前記符号化された映像ビットストリームは、少なくとも１つの符号化された参照フレーム、予測符号化された現在のフレーム、および、前記参照フレームの参照ブロックと前記現在のフレームの現在のブロックとの間の動きを反映する符号化された動きベクトルを含み、前記参照フレームは前記現在のフレームと異なり、
前記方法は、
前記符号化された参照フレームおよび前記符号化された動きベクトルを復号化し、これにより、参照フレームおよび動きベクトルを生成する段階と、
前記参照フレームを記憶する段階と、
前記動きベクトルの向きに応じて複数のフィルタのうちの１つのフィルタを選択する段階と、
選択された前記フィルタを前記参照ブロックに適用することによって、フィルタリングされた参照ブロックを生成する段階と、
前記動きベクトルおよび前記フィルタリングされた参照ブロックに基づいて、前記予測符号化された現在のフレームの前記現在のブロックを生成することを含む動き補償を行う段階と
を備える、方法。
（項目２０）
前記符号化された映像ビットストリームは、前記現在のブロックに関するフィルタ情報を含み、
前記方法は、
前記フィルタ情報を復号化する段階と、
前記フィルタ情報の値に応じて、前記動きベクトルおよび前記フィルタリングされた参照ブロックに基づいて、または、前記動きベクトルおよび前記参照ブロックに基づいて、前記予測符号化された現在のフレームの前記現在のブロックを生成する段階と
を備える、
項目１９に記載の方法。
（項目２１）
例えば、正の横軸に対する前記動きベクトルの角度を導出する段階と、
前記角度に応じて、複数のフィルタのうちの１つの前記フィルタを選択する段階と
を備える、項目１９または２０に記載の方法。
（項目２２）
前記映像ストリームを単層符号化するための、項目１９から２１のいずれか一項に記載の方法。
（項目２３）
複数のフィルタのうちの１つのフィルタを選択する前記段階は、前記動きベクトルの向きに応じて、複数のブラーおよびブラー除去フィルタのうちの少なくとも１つを選択する段階を含む、項目１９から２２のいずれか一項に記載の方法。
（項目２４）
フレーム内およびフレーム間予測のための、項目１９から２３のいずれか一項に記載の方法。
（項目２５）
コンピュータプログラムがコンピュータデバイス上で動作するときに、項目１２または１９から２４のいずれか一項に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム。
【図１】
0006593934.tif 000003
【図２】
0006593934.tif 000004
【図３】
0006593934.tif 000005
【図４】
0006593934.tif 000006
【図５ａ】
0006593934.tif 000007
【図５ｂ】
0006593934.tif 000008
【図６】
0006593934.tif 000009
【図７】
0006593934.tif 000010
【図８】
0006593934.tif 000011
【図９】
0006593934.tif 000012