(57)【特許請求の範囲】
【請求項１】
メモリ；及び
前記メモリに結合されるプロセッサであって：
ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補動きベクトル（ＭＶ）を取得し、
前記候補ＭＶの候補リストを生成し、
前記候補リストから最終ＭＶを選択し、及び
ＡＦ＿ｉｎｔｅｒ又はＡＦ＿ｍｅｒｇｅにおける前記最終ＭＶ又は前記最終ＭＶに基づく変換に制約を適用し、前記ＡＦ＿ｉｎｔｅｒ又は前記ＡＦ＿ｍｅｒｇｅに必要なメモリ帯域幅が低減されるように制約されたＭＶを取得するように構成されているプロセッサ；
を含む装置。
【請求項２】
前記制約は、前記候補リストから選択された第１最終ＭＶと前記候補リストから選択された第２最終ＭＶとの間の第１差分の第１絶対値が、前記現在ブロックの幅と閾値とに基づく第１量以下であることをもたらし、前記制約は、更に、前記第１最終ＭＶと前記第２最終ＭＶとの間の第２差分の第２絶対値が、前記現在ブロックの高さと前記閾値とに基づく第２量以下であることをもたらす、請求項１に記載の装置。
【請求項３】
前記制約は、第１量の第１平方根が第２量以下であることをもたらし、前記第１量は、前記候補リストから選択された第１最終ＭＶと、前記候補リストから選択された第２最終ＭＶと、前記現在ブロックの幅とに基づいており、前記第２量は前記幅と閾値とに基づいている、請求項１に記載の装置。
【請求項４】
前記制約は、更に、第３量の第２平方根が第４量以下であることをもたらし、前記第３量は、前記第１最終ＭＶと、前記候補リストから選択された第３最終ＭＶと、前記現在ブロックの高さとに基づいており、前記第４量は前記高さと前記閾値とに基づいている、請求項３に記載の装置。
【請求項５】
前記制約は、第１量が第２量以下であることをもたらし、前記第１量は、変換されたブロックの第１幅と、整数サンプル位置を入力としてサブ・サンプル位置を生成する補間フィルタの長さと、前記変換されたブロックの第１高さとに基づいており、前記第２量は、閾値と、前記現在ブロックの第２幅と、前記現在ブロックの第２高さとに基づいている、請求項１に記載の装置。
【請求項６】
前記閾値は単−予測又は双−予測に特有である、請求項５に記載の装置。
【請求項７】
前記制約は、ある量が閾値以下であることをもたらし、前記量は第１メモリ帯域幅と第２メモリ帯域幅とに正比例し、前記量は前記現在ブロックの幅と前記現在ブロックの高さとに反比例する、請求項１に記載の装置。
【請求項８】
前記制約は、変換されたブロックの第１幅と前記現在ブロックの第２幅との間の第１差分が閾値以下であることをもたらし、前記制約は、更に、前記変換されたブロックの第１高さと前記現在ブロックの第２高さとの間の第２差分が前記閾値以下であることをもたらす、請求項１に記載の装置。
【請求項９】
前記プロセッサは、更に：
前記制約されたＭＶに基づいて動きベクトル・フィールド（ＭＶＦ）を計算し；
前記現在ブロックの予測ブロックを生成するために、前記ＭＶＦに基づいて動き補償予測（ＭＣＰ）を実行し；及び
ＭＶインデックスをエンコードする；
ように構成されている、請求項１−８のうち何れか１項に記載の装置。
【請求項１０】
前記プロセッサは、更に：
ＭＶインデックスをデコードし；
前記制約されたＭＶに基づいて動きベクトル・フィールド（ＭＶＦ）を計算し；及び
前記現在ブロックの予測ブロックを生成するために、前記ＭＶＦに基づいて動き補償予測（ＭＣＰ）を実行する；
ように構成されている、請求項１−８のうち何れか１項に記載の装置。
【請求項１１】
ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補動きベクトル（ＭＶ）を取得するステップ；
前記候補ＭＶの候補リストを生成するステップ；
前記候補リストから最終ＭＶを選択するステップ；及び
ＡＦ＿ｉｎｔｅｒ又はＡＦ＿ｍｅｒｇｅにおける前記最終ＭＶ又は前記最終ＭＶに基づく変換に制約を適用し、前記ＡＦ＿ｉｎｔｅｒ又は前記ＡＦ＿ｍｅｒｇｅに必要なメモリ帯域幅が低減されるように制約されたＭＶを取得するステップ；
を含む方法。
【請求項１２】
メモリ；及び
前記メモリに結合されるプロセッサであって：
ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補動きベクトル（ＭＶ）を取得し、
前記候補ＭＶの候補リストを生成し、
ＡＦ＿ｉｎｔｅｒ又はＡＦ＿ｍｅｒｇｅにおける前記候補ＭＶ又は前記候補ＭＶに基づく変換に制約を適用し、前記ＡＦ＿ｉｎｔｅｒ又は前記ＡＦ＿ｍｅｒｇｅに必要なメモリ帯域幅が低減されるように制約されたＭＶを取得し、及び
前記制約されたＭＶから最終ＭＶを選択するように構成されているプロセッサ；
を含む装置。
【請求項１３】
前記制約は、前記候補リストから選択された第１最終ＭＶと前記候補リストから選択された第２最終ＭＶとの間の第１差分の第１絶対値が、前記現在ブロックの幅と閾値とに基づく第１量以下であることをもたらし、前記制約は、更に、前記第１最終ＭＶと前記第２最終ＭＶとの間の第２差分の第２絶対値が、前記現在ブロックの高さと前記閾値とに基づく第２量以下であることをもたらす、請求項１２に記載の装置。
【請求項１４】
前記制約は、第１量の第１平方根が第２量以下であることをもたらし、前記第１量は、前記候補リストから選択された第１最終ＭＶと、前記候補リストから選択された第２最終ＭＶと、前記現在ブロックの幅とに基づいており、前記第２量は前記幅と閾値とに基づいている、請求項１２に記載の装置。
【請求項１５】
前記制約は、更に、第３量の第２平方根が第４量以下であることをもたらし、前記第３量は、前記第１最終ＭＶと、前記候補リストから選択された第３最終ＭＶと、前記現在ブロックの高さとに基づいており、前記第４量は前記高さと前記閾値とに基づいている、請求項１４に記載の装置。
【請求項１６】
前記制約は、第１量が第２量以下であることをもたらし、前記第１量は、変換されたブロックの第１幅と、整数サンプル位置を入力としてサブ・サンプル位置を生成する補間フィルタの長さと、前記変換されたブロックの第１高さとに基づいており、前記第２量は、閾値と、前記現在ブロックの第２幅と、前記現在ブロックの第２高さとに基づいている、請求項１２に記載の装置。
【請求項１７】
前記制約は、ある量が閾値以下であることをもたらし、前記量は第１メモリ帯域幅と第２メモリ帯域幅とに正比例し、前記量は前記現在ブロックの幅と前記現在ブロックの高さとに反比例する、請求項１２に記載の装置。
【請求項１８】
前記制約は、変換されたブロックの第１幅と前記現在ブロックの第２幅との間の第１差分が閾値以下であることをもたらし、前記制約は、更に、前記変換されたブロックの第１高さと前記現在ブロックの第２高さとの間の第２差分が前記閾値以下であることをもたらす、請求項１２に記載の装置。
【請求項１９】
前記プロセッサは、更に：
前記制約されたＭＶに基づいて動きベクトル・フィールド（ＭＶＦ）を計算し；
前記現在ブロックの予測ブロックを生成するために、前記ＭＶＦに基づいて動き補償予測（ＭＣＰ）を実行し；及び
ＭＶインデックスをエンコードする；
ように構成されている、請求項１２−１８のうち何れか１項に記載の装置。
【請求項２０】
前記プロセッサは、更に：
ＭＶインデックスをデコードし；
前記制約されたＭＶに基づいて動きベクトル・フィールド（ＭＶＦ）を計算し；及び
前記現在ブロックの予測ブロックを生成するために、前記ＭＶＦに基づいて動き補償予測（ＭＣＰ）を実行する；
ように構成されている、請求項１２−１８のうち何れか１項に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願のクロスリファレンス
本出願は「ビデオ・コーディングにおける動きベクトル（ＭＶ）制約及び変換制約」と題する２０１８年４月３日付けで出願された仮出願でない米国特許出願第１５／９４４，５０１号に対する優先権を主張しており、その出願は、フューチャーウェイ・テクノロジーズ・インコーポレーテッドにより２０１７年４月７日付で出願された「アフィン動きベクトルのための制約」と題する米国仮特許出願第６２／４８３，１９６号、及びフューチャーウェイ・テクノロジーズ・インコーポレーテッドにより２０１８年１月１１日付で出願された「アフィン・メモリ・アクセスのための制約」と題する米国仮特許出願第６２／６１６，２６３号に対する優先権を主張しており、これらはリファレンスに組み込まれる。
【０００２】
技術分野
本発明はビデオ圧縮の技術に関連し、特にビデオ・コーディングの動き補償に関連する。
【０００３】
背景技術
ビデオは、比較的大量のデータを使用するので、ビデオの通信は比較的大量の帯域幅を使用する。しかしながら、多くのネットワークは、それらの帯域幅容量において又はその近辺で動作する。更に、顧客は、よりいっそう多くのデータを使用することを要する高いビデオ品質を要求する。従って、ビデオ・データ量を削減すること、及びビデオ品質を改善することの双方に対する要望が存在する。１つの解決策は、エンコーディング・プロセス中にビデオを圧縮し、デコーディング・プロセス中にビデオを解凍することである。圧縮及び解除技術を改善することは研究及び開発の中心である。
【発明の概要】
【０００４】
一実施形態において、開示は装置を含み、装置は：メモリ；及びメモリに結合されるプロセッサであって：ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補ＭＶを取得し、候補ＭＶの候補リストを生成し、候補リストから最終ＭＶを選択し、及び最終ＭＶ又は変換に制約を適用し、制約されたＭＶを取得するように構成されているプロセッサを含む。幾つかの実施形態において、制約は、第１最終ＭＶと第２最終ＭＶとの間の第１差分の第１絶対値が、現在ブロックの幅と閾値とに基づく第１量以下であることをもたらし、制約は、更に、第３最終ＭＶと第４最終ＭＶとの間の第２差分の第２絶対値が、現在ブロックの高さと閾値とに基づく第２量以下であることをもたらす；制約は、第１量の第１平方根が第２量以下であることをもたらし、第１量は、第１最終ＭＶと、第２最終ＭＶと、第３最終ＭＶと、第４最終ＭＶと、現在ブロックの幅とに基づいており、第２量は幅と閾値とに基づいている；制約は、更に、第３量の第２平方根が第４量以下であることをもたらし、第３量は、第５最終ＭＶと、第６最終ＭＶと、第７最終ＭＶと、第８最終ＭＶと、現在ブロックの高さとに基づいており、第４量は高さと閾値とに基づいている；制約は、第１量が第２量以下であることをもたらし、第１量は、変換されたブロックの第１幅と、補間フィルタの長さと、変換されたブロックの第１高さとに基づいており、第２量は、閾値と、現在ブロックの第２幅と、現在ブロックの第２高さとに基づいている；閾値は単−予測又は双−予測に特有である；制約は、ある量が閾値以下であることをもたらし、その量は第１メモリ帯域幅と第２メモリ帯域幅とに正比例し、その量は現在ブロックの幅と現在ブロックの高さとに反比例する；制約は、変換されたブロックの第１幅と現在ブロックの第２幅との間の第１差分が閾値以下であることをもたらし、制約は、更に、変換されたブロックの第１高さと現在ブロックの第２高さとの間の第２差分が閾値以下であることをもたらす；プロセッサは、更に：制約されたＭＶに基づいてＭＶＦを計算し；現在ブロックの予測ブロックを生成するために、ＭＶＦに基づいてＭＣＰを実行し；及び  ＭＶインデックスをエンコードするように構成されている；プロセッサは、更に：ＭＶインデックスをデコードし；制約されたＭＶに基づいてＭＶＦを計算し；及び現在ブロックの予測ブロックを生成するために、ＭＶＦに基づいてＭＣＰを実行するように構成されている。
【０００５】
別の実施形態において、開示は方法を含み、方法は：ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補ＭＶを取得するステップ；候補ＭＶの候補リストを生成するステップ；候補リストから最終ＭＶを選択するステップ；及び最終ＭＶ又は変換に制約を適用し、制約されたＭＶを取得するステップを含む。
【０００６】
更に別の実施形態において、開示は装置を含み、装置は：メモリ；及びメモリに結合されるプロセッサであって：ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補ＭＶを取得し、候補ＭＶの候補リストを生成し、候補ＭＶ又は変換に制約を適用し、制約されたＭＶを取得し、及び制約されたＭＶから最終ＭＶを選択するように構成されているプロセッサを含む。幾つかの実施形態において、制約は、第１最終ＭＶと第２最終ＭＶとの間の第１差分の第１絶対値が、現在ブロックの幅と閾値とに基づく第１量以下であることをもたらし、制約は、更に、第３最終ＭＶと第４最終ＭＶとの間の第２差分の第２絶対値が、現在ブロックの高さと閾値とに基づく第２量以下であることをもたらす；制約は、第１量の第１平方根が第２量以下であることをもたらし、第１量は、第１最終ＭＶと、第２最終ＭＶと、第３最終ＭＶと、第４最終ＭＶと、現在ブロックの幅とに基づいており、第２量は幅と閾値とに基づいている；制約は、更に、第３量の第２平方根が第４量以下であることをもたらし、第３量は、第５最終ＭＶと、第６最終ＭＶと、第７最終ＭＶと、第８最終ＭＶと、現在ブロックの高さとに基づいており、第４量は高さと閾値とに基づいている；制約は、第１量が第２量以下であることをもたらし、第１量は、変換されたブロックの第１幅と、補間フィルタの長さと、変換されたブロックの第１高さとに基づいており、第２量は、閾値と、現在ブロックの第２幅と、現在ブロックの第２高さとに基づいている；制約は、ある量が閾値以下であることをもたらし、その量は第１メモリ帯域幅と第２メモリ帯域幅とに正比例し、その量は現在ブロックの幅と現在ブロックの高さとに反比例する；制約は、変換されたブロックの第１幅と現在ブロックの第２幅との間の第１差分が閾値以下であることをもたらし、制約は、更に、変換されたブロックの第１高さと現在ブロックの第２高さとの間の第２差分が閾値以下であることをもたらす；プロセッサは、更に：制約されたＭＶに基づいてＭＶＦを計算し；現在ブロックの予測ブロックを生成するために、ＭＶＦに基づいてＭＣＰを実行し；及びＭＶインデックスをエンコードするように構成されている；プロセッサは、更に：ＭＶインデックスをデコードし；制約されたＭＶに基づいてＭＶＦを計算し、現在ブロックの予測ブロックを生成するために、ＭＶＦに基づいてＭＣＰを実行するように構成されている。
【０００７】
新しい実施形態を形成するために、上記のうち任意の実施形態が上記のうち他の任意の実施形態と組み合わされてもよい。これらおよび他の特徴は、添付の図面及び特許請求の範囲に関連して行われる以下の詳細な説明からより明確に理解されるであろう。
【図面の簡単な説明】
【０００８】
本開示のより完全な理解のために、添付の図面及び詳細な説明に関連して以下の簡単な説明が参照され、ここで同様な参照番号は同様な部分を表す。
【０００９】
【図１】図１はコーディング・システムの概略図である。
【００１０】
【図２】図２は現在ブロックのＭＶを示す概略図である。
【００１１】
【図３】図３は現在ブロックの変換を示す概略図である。
【００１２】
【図４】図４は本開示の実施形態によるエンコーディングの方法を示すフローチャートである。
【００１３】
【図５】図５は本開示の実施形態によるデコーディングの方法を示すフローチャートである。
【００１４】
【図６】図６は本開示の別の実施形態によるエンコーディングの方法を示すフローチャートである。
【００１５】
【図７】図７は本開示の別の実施形態によるデコーディングの方法を示すフローチャートである。
【００１６】
【図８】図８は本開示の実施形態による装置の概略図である。
【発明を実施するための形態】
【００１７】
最初に、１つ又は複数の実施形態の例示的な実装が以下に提供されるが、開示されるシステム及び／又は方法は、現在知られているか又は存在するかにかかわらず、幾つでも技術を使用して実装され得ることが理解されるべきである。開示は、ここに示され且つ説明される例示的な設計及び実装を含む以下に示される例示的な実装、図面、及び技術に決して限定されるべきではなく、添付の特許請求の範囲内で、それらの均等物の範囲全体とともに修正され得る。
【００１８】
以下の略語及び頭文字が適用される：
ＡＦ＿ｉｎｔｅｒ：アフィン・インター
ＡＦ＿ｍｅｒｇｅ：アフィン・マージ
ＡＳＩＣ：特定用途向け集積回路
ＣＰＵ：中央処理ユニット
ＣＴＵ：コーディング・ツリー単位
ＤＳＰ：ディジタル信号プロセッサ
ＥＯ：電気−ｔｏ−光
ＦＰＧＡ：フィールド・プログラマブル・ゲート・アレイ
ＩＴＵ：国際電気通信連合
ＩＴＵ−Ｔ：ＩＴＵ電気通信標準化部門
ＬＣＤ：液晶ディスプレイ
ＭＢ：メモリ帯域幅
ＭＣＰ：動き補償予測
ＭＶ：動きベクトル
ＭＶＦ：動きベクトル・フィールド
ＮＢ：隣接ブロック
ＯＥ：光−ｔｏ−電気的
ＰＰＳ：ピクチャー・パラメータ・セット
ＲＡＭ：ランダム・アクセス・メモリ
ＲＦ：無線周波数
ＲＯＭ：リード・オンリー・メモリ
ＲＸ：受信機ユニット
ＳＰＳ：シーケンス・パラメータ・セット
ＳＲＡＭ：スタティックＲＡＭ
ＴＣＡＭ：３値連想メモリ
ＴＨ：閾値
ＴＸ：送信機ユニット
【００１９】
図１は、コーディング・システム１００の概略図である。コーディング・システム１００は、ソース・デバイス１１０と、媒体１５０と、宛先デバイス１６０とを含む。ソース・デバイス１１０及び宛先デバイス１６０は、モバイル・フォン、タブレット・コンピュータ、デスクトップ・コンピュータ、ノートブック・コンピュータ、又は他の適切なデバイスである。媒体１５０は、ローカル・ネットワーク、無線ネットワーク、インターネット、又は他の適切な媒体である。
【００２０】
ソース・デバイス１１０は、ビデオ・ジェネレータ１２０、エンコーダ１３０、及び出力インターフェース１４０を含む。ビデオ・ジェネレータ１２０は、ビデオを生成するのに適したカメラ又は他のデバイスである。エンコーダ１３０は、コーデックとして言及されてもよい。エンコーダは、例えば、リファレンスに組み込まれている“Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ，”ＩＴＵ‐Ｔ  Ｈ．２６５，Ｄｅｃｅｍｂｅｒ  ２０１６（“Ｈ．２６５”）に記載されているように、一組の規則に従ってエンコーディングを実行する。出力インターフェース１４０は、宛先デバイス１６０にデータを送信するのに適したアンテナ又は他のコンポーネントである。代替的に、ビデオ・ジェネレータ１２０、エンコーダ１３０、及び出力インターフェース１４０は、デバイスの任意の適切な組み合わせにある。
【００２１】
宛先デバイス１６０は、入力インターフェース１７０、デコーダ１８０、及びディスプレイ１９０を含む。入力インターフェース１７０は、ソース・デバイス１１０からデータを受信するのに適したアンテナ又は他のコンポーネントである。デコーダ１８０はまた、コーデックとして言及されてもよい。デコーダ１８０は、例えばＨ．２６５に記載されているように、一組の規則に従って復号化を実行する。ディスプレイ１９０は、ビデオを表示するのに適したＬＣＤスクリーン又は他のコンポーネントである。代替的に、入力インターフェース１８０、デコーダ１８０、及びディスプレイ１９０は、デバイスの任意の適切な組み合わせにある。
【００２２】
動作中、ソース・デバイス１１０において、ビデオ・ジェネレータ１２０はビデオをキャプチャし、エンコーダ１３０はビデオをエンコードしてエンコードされたビデオを生成し、出力インターフェース１４０は、エンコードされたビデオを媒体１５０を介して宛先デバイス１６０に向けて送信する。ソース・デバイス１１０は、ビデオ又はエンコードされたビデオをローカルに保存する、又はソース・デバイス１１０は、ビデオ又はエンコードされたビデオの他のデバイスへの保存を命令する。エンコードされたビデオは、スライス及びブロックを含む様々なレベルで定義されたデータを含む。スライスは、エンコーダ１３０がビデオ・フレーム内の任意の他の領域とは別個にエンコードする、ビデオ・フレームの空間的に別個の領域である。ブロックは、矩形に配置されたピクセルのグループであり、例えば８ピクセル×８ピクセルの正方形である。ブロックはまた、ユニット又はコーディング・ユニットとも言及される。他のレベルは、領域、ＣＴＵ、及びタイルを含む。宛先デバイス１６０では、入力インターフェース１７０はエンコードされたビデオをソース・デバイス１１０から受信し、デコーダ１８０はエンコードされたビデオをデコードしてデコードされたビデオを取得し、ディスプレイ１９０はデコードされたビデオを表示する。デコーダ１８０は、エンコーダ１３０がビデオをエンコードする方法とは逆の方法で、エンコードされたビデオをデコードすることができる。宛先デバイス１６０は、エンコードされたビデオ又はデコードされたビデオをローカルに保存する、又は宛先デバイス１６０は、エンコードされたビデオ又はデコードされたビデオの別のデバイスへの保存を指示する。
【００２３】
エンコーディング及びデコーディングは共にコーディングと呼ばれる。コーディングは、それぞれイントラ予測及びインター予測とも呼ばれるイントラ・コーディング及びインター・コーディングを含む。イントラ予測は、ビデオ・フレーム内の空間冗長性を低減するために空間的予測を実施する。インター予測は、連続するビデオ・フレーム間の時間的冗長性を低減するために時間的予測を実施する。インター予測の１つのタイプは、ＭＣＰである。
【００２４】
リファレンスに組み込まれている“Ａｆｆｉｎｅ  ｔｒａｎｓｆｏｒｍ  ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  ｎｅｘｔ  ｇｅｎｅｒａｔｉｏｎ  ｖｉｄｅｏ  ｃｏｄｉｎｇ，”  Ｈｕａｗｅｉ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｃｏ．，Ｌｔｄ．，Ｏｃｔｏｂｅｒ  ２０１５は、アフィン変換をモデル化する２つのタイプのＭＣＰエンコーディング・モードであるＡＦ＿ｉｎｔｅｒ及びＡＦ＿ｍｅｒｇｅを記載している。この文脈では、アフィン変換は、ライン及び並列性を維持する仕方における、第１ビデオ・ブロック又は他のユニットの第２ビデオ・ブロック又は他のユニットへの変換である。したがって、ＡＦ＿ｉｎｔｅｒ及びＡＦ＿ｍｅｒｇｅは、並進、回転、ズーム、せん断マッピング、及び他の特徴をモデル化する。しかしながら、ＡＦ＿ｉｎｔｅｒ及びＡＦ＿ｍｅｒｇｅ両方は、必要なメモリ帯域幅を増加させる。メモリ帯域幅は、データがメモリから読み出される、又はメモリに記憶されるレートであり、典型的には、バイト／秒で測定される。この文脈では、メモリ帯域幅は、ＭＣＰエンコーディング中にサンプルがメモリから読み出されるレートを指してもよい。ＡＦ＿ｉｎｔｅｒ及びＡＦ＿ｍｅｒｇｅは、必要なメモリ帯域幅を増加させるので、そのメモリ帯域幅を別の方法で減少させることが望ましい。
【００２５】
ここで開示されるものは、ビデオ・コーディングにおけるＭＶ制約及び変換制約に関する実施形態である。実施形態は、ＡＦ＿ｉｎｔｅｒ及びＡＦ＿ｍｅｒｇｅを実行するために必要とされるメモリ帯域幅の量を低減するために、ＭＶ又は変換を制約する。実施形態は、２つ、３つ、４つ、又はそれ以上の制御ポイントとともに変換に適用する。制約を実施するために、エンコーダ及びデコーダは閾値を適用する。エンコーダ及びデコーダは、閾値を静的なデフォルトとして保存する。代替的に、エンコーダは、ＳＰＳ、ＰＰＳ、スライス・ヘッダ、又は他の適切な形式で、閾値をデコーダに動的に合図する。
【００２６】
図２は、現在のブロックのＭＶを示す概略図２００である。概略図２００は、現在ブロック２１０と、ＮＢ２２０、２３０、２４０、２５０、２６０、２７０、２８０とを含む。現在のブロック２１０は、エンコーダ１３０が現在それを符号化しているので、現在ブロックと呼ばれる。現在ブロック２１０は、幅ｗと、高さｈと、黒点で示される左上制御ポイント及び右上制御ポイントとを含む。ｗ及びｈは例えば８ピクセルである。左上制御ポイントは、（ｖ０ｘ，ｖ０ｙ）として表されるＭＶｖ０を有し、ｖ０ｘはｖ０の水平成分であり、ｖ０ｙはｖ０の垂直成分である。右上制御ポイントは、（ｖ１ｘ，ｖ１ｙ）として表されるＭＶｖ１を有し、ｖ１ｘはｖ１の水平成分であり、ｖ１ｙはｖ１の垂直成分である。現在のブロック２１０は、追加の制御ポイント、例えば現在ブロック２１０の中心にある制御ポイントを含むことができる。ＮＢ２２０−２８０は、それらが現在ブロック２１０に隣接するので、ＮＢと呼ばれる。
【００２７】
２つの制御ポイント及び４つのパラメータを有するアフィン・モデルの場合、現在ブロック２１０のＭＶＦは、以下のように表される：
【数１】
0006903149.tif 000002
ｖｘは、現在ブロック２１０全体のＭＶの水平成分であり；ｖ１ｘ，ｖ０ｘ，ｗ，ｖ１ｙ，及びｖ０ｙは上述の通りであり；ｘは現在ブロック２１０の中心から測定された水平位置であり；ｙは現在ブロック２１０の中心から測定された垂直位置であり；ｖｙは現在ブロック２１０全体のＭＶの垂直成分である。３つの制御ポイント及び６つのパラメータを有するアフィン・モデルの場合、現在ブロック２１０のＭＶＦは、以下のように表される：
【数２】
0006903149.tif 000003
ｖｘ，ｖ１ｘ，ｖ０ｘ，ｗ，ｘ，ｈ，ｙ，ｖｙ，ｖ１ｙ，及びｖ０ｙは上述の通りであり；ｖ２ｘは左下制御ポイントＭＶの水平成分であり；ｖ２ｙは左下制御ポイントＭＶの垂直成分である。４つの制御ポイント及び８つのパラメータを有するアフィン・モデルの場合、現在ブロック２１０のＭＶＦは、以下のように表される：
【数３】
0006903149.tif 000004
ｖｘ，ｖ１ｘ，ｖ０ｘ，ｗ，ｘ，ｖ２ｘ，ｈ，ｙ，ｖｘ，ｖ１ｙ，ｖ０ｙ，及びｖ２ｙは上述の通りであり；ｖ３ｘは右下制御ポイントＭＶの水平成分であり；ｖ３ｙは右下制御ポイントＭＶの垂直成分である。
【００２８】
図３は、現在ブロックの変換を示す概略図３００である。概略図３００は、現在ブロック３１０と、変換されたブロック３２０とを含む。現在ブロック３１０は、現在のビデオ・フレーム内にあり、変換されたブロック３２０は、変換を受けた直後に続くビデオ・フレーム内の現在ブロック３１０である。図示されるように、現在ブロック３１０から変換されたブロック３２０へ変換するために、現在ブロック３１０は回転及びズームの両方を受ける。
【００２９】
現在ブロック３１０では、左上制御ポイント、右上制御ポイント、左下制御ポイント、及び右下制御ポイントの現在ブロック３１０における位置は、それぞれ、座標セット（ｘ０，ｙ０）、（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）として表され；ｗは幅であり；ｈは高さである。変換されたブロック３２０についての、変換されたブロック３２０の左上制御ポイント、右上制御ポイント、左下制御ポイント、及び右下制御ポイントの位置は、それぞれ、座標セット（ｘ０’，ｙ０’）、（ｘ１’，ｙ１’）、（ｘ２’，ｙ２’）、（ｘ３’，ｙ３）として表され；ｗ’は横幅であり；ｈ’は高さである。動きベクトルｖは、座標セット（ｖ０，ｖ１  ｖ２，ｖ３）として表され、変換されたブロック３２０に対する現在ブロック３１０の動きを記述する。従って、変換されたブロック３２０の制御ポイントは、現在ブロック３１０の制御ポイント及び動きベクトルｖに関して、以下のように表すことができる：
【数４】
0006903149.tif 000005
変換されたブロック３２０のサイズは、次のように表すことができる。
【数５】
0006903149.tif 000006
関数ｍａｘ（）は、そのオペランドから最大値を選択し、関数ｍｉｎ（）は、そのオペランドから最小値を選択する。従って、現在ブロック３１０の制御ポイントの位置を知ることにより、ｖは、変換されたブロック３２０の制御ポイントの位置を説明する。ｖが分数である場合、ｖは、リファレンス・フレームに存在しないサブ・サンプル位置を指す。その場合、エンコーダ１３０は、入力として整数サンプルを有する補間フィルタを使用してサブ・サンプル位置を生成し、Ｔ’は、アフィン・モードの補間フィルタの長さであり、整数サンプルの数に等しい。例えば、Ｔ’は２、４又は８である。最後に、現在ブロック３１０をエンコードするのに必要なメモリ帯域幅ＭＢは、以下のように表すことができる：
【数６】
0006903149.tif 000007
ｗ’、Ｔ’，及びｈ’は上述の通りである。
【００３０】
図４は、本開示の実施形態によるエンコーディングの方法４００を示すフローチャートである。エンコーダ１３０は、ＡＦ＿ｉｎｔｅｒ又はＡＦ＿ｍｅｒｇｅの何れかを実行する場合に方法４００を実行することができる。ステップ４１０において、候補ＭＶが取得される。インター予測では、エンコーダ１３０は、エンコーダ１３０が現在ブロック２１０をエンコードしている場合に既に知っているＮＢ２２０−２８０のＭＶから候補ＭＶを取得する。具体的には、ＡＦ＿ｉｎｔｅｒの場合、エンコーダ１３０は、ＮＢ２５０、２６０、２４０からのＭＶをその順序でｖ０の候補ＭＶとして考え、エンコーダ１３０は、ＮＢ２７０、２８０からのＭＶをその順序でｖ１の候補ＭＶとして考える。ＡＦ＿ｍｅｒｇｅの場合、エンコーダ１３０は、ｖ０及びｖ１に関し、ＮＢ２３０、２７０、２８０、２２０、２５０からのＭＶをその順序で考慮する。
【００３１】
ステップ４２０において、候補ＭＶの候補リストが生成される。そうするために、エンコーダ１３０は、既知の規則を適用する。例えば、エンコーダ１３０は、重複する候補ＭＶを除去し、未使用の候補リスト・スロットをゼロＭＶで満たす。
【００３２】
ステップ４３０において、最終ＭＶが候補リストから選択される。エンコーダ１３０は、２つの制御ポイント及び４つのパラメータのアフィン・モデルに関するｖ０及びｖ１；３つの制御ポイント及び６つのパラメータのアフィン・モデルに関するｖ０，ｖ１，及びｖ２；又は４つの制御ポイント及び８つのパラメータのアフィン・モデルに関するｖ０，ｖ１，ｖ２，及びｖ３双方の最終ＭＶを選択する。そうするために、エンコーダ１３０は、既知の規則を適用する。例えば、エンコーダは、レート歪コスト・チェックを適用する。ＡＦ＿ｉｎｔｅｒの場合、エンコーダ１３０は、最終ＭＶを取得するために動き推定を実行することもできる。
【００３３】
ステップ４４０では、制約されたＭＶを取得するために、制約が最終ＭＶ又は変換に適用される。エンコーダ１３０は、以下に説明されるＭＶ制約の１セットを使用して最終ＭＶを直接的に制約する、又はエンコーダ１３０は、以下に説明される変換制約の１セットを使用して変換を制約することによって、最終ＭＶを間接的に制約する。制約を適用することによって、エンコーダ１３０は、最終ＭＶを制約する場合にエンコーダ１３０が使用するアフィン・モデルに応じて、ｖ０ｘ、ｖ０ｙ、ｖ１ｘ、ｖ１ｙ、ｖ２ｘ、ｖ２ｙ、ｖ３ｘ、及びｖ３ｙの組み合せを算出する、又はエンコーダ１３０は、変換を制約する場合にｗ’，ｈ’，及びＴ’を算出する。最終的なＭＶと比較して、制約されたＭＶは、メモリ帯域幅を減少させる。エンコーダ１３０が最終ＭＶを制約することができない場合、エンコーダ１３０は、２つの代替形態のうちの１つで進行することができる。第１の代替形態では、エンコーダ１３０は、方法４００の残りのステップをスキップし、ＡＦ＿ｉｎｔｅｒ又はＡＦ＿ｍｅｒｇｅ以外のコーディング・モードを実施する。第２の代替形態では、エンコーダ１３０は、エンコーダ１３０が最終ＭＶを制約できるまで、最終ＭＶを修正する。代替的に、ステップ４１０、４２０、４３０は、ＭＶを決定する単一のステップで置き換えられてもよく、ステップ４４０は、ＭＶに制約を適用するステップ、又は制約されたＭＶを得るための変換で置き換えられてもよい。
【００３４】
ステップ４５０において、制約されたＭＶに基づいてＭＶＦが計算される。エンコーダ１３０は、数式セット（１）、（２）、又は（３）に従ってＭＶＦを算出する。ステップ４６０では、現在ブロックに対する予測ブロックを生成するために、ＭＶＦに基づいてＭＣＰが実行される。予測ブロックは、現在ブロック２１０の各ピクセルに対する予測値を含む。
【００３５】
最後に、ステップ４７０において、ＭＶインデックスがエンコードされる。エンコーダ１３０は、上述のエンコードされたビデオの一部としてＭＶインデックスをエンコードする。ＭＶインデックスは、候補リストにおける候補ＭＶの順序を示す。ＡＦ＿ｉｎｔｅｒに関し、エンコーダ１３０はまた、最終ＭＶと候補ＭＶとの間の差を示すＭＶ差分をエンコードすることもできる。
【００３６】
図５は、本開示の実施形態によるデコーディングの方法５００を示すフローチャートである。デコーダ１８０は、ＡＦ＿ｉｎｔｅｒ又はＡＦ＿ｍｅｒｇｅの何れかを実行する場合に方法５００を実行することができる。ステップ５１０において、ＭＶインデックスがデコードされる。ＭＶインデックスは、図４のステップ４７０においてエンコードされたのと同じインデックスであってもよい。ＡＦ＿ｉｎｔｅｒの場合、エンコーダ１３０はまた、ＭＶ差分をデコードすることもできる。ステップ５２０、５３０、５４０、５５０、５６０、５７０はそれぞれ図４のステップ４１０、４２０、４３０、４４０、４５０、４６０と同様である。ＡＦ＿ｉｎｔｅｒの場合、エンコーダ１３０は、ＭＶ差分を候補ＭＶに加算する最終ＭＶを取得することができる。代替的に、ステップ５２０、５３０、５４０は、ＭＶを決定する単一のステップで置き換えられてもよく、ステップ５５０は、ＭＶに制約を適用するステップ、又は制約されたＭＶを取得するための変換で置き換えられてもよい。
【００３７】
図６は、本開示の別の実施形態によるエンコーディングの方法６００を示すフローチャートである。エンコーダ１３０は、ＡＦ＿ｍｅｒｇｅを実行する場合に方法６００を実行することができる。方法６００は、図４の方法４００と同様である。具体的には、図６のステップ６１０、６２０、６５０、６６０、６７０はそれぞれ図４のステップ４１０、４２０、４５０、４６０、４７０と同様である。しかしながら、ステップ４３０、４４０と比較すると、ステップ６３０、６４０が逆にされている。更に、方法４００のようにＡＦ＿ｉｎｔｅｒ及びＡＦ＿ｍｅｒｇｅの両方に適用する代わりに、方法６００はＡＦ＿ｍｅｒｇｅに適用される。
【００３８】
図７は、本開示の別の実施形態によるデコーディングの方法７００を示すフローチャートである。デコーダ１８０は、ＡＦ＿ｍｅｒｇｅを実行する場合に方法７００を実行することができる。ステップ７１０において、ＭＶインデックスがデコードされる。ＭＶインデックスは、図６のステップ６７０でエンコードされたのと同じインデックスであってもよい。ステップ７２０、７３０、７４０、７５０、７６０、７７０はそれぞれ図６のステップ６１０、６２０、６３０、６４０、６５０、６６０と同様である。
【００３９】
ＭＶ制約
ＭＶ制約の第１実施形態では、２つの制御ポイントを使用して、エンコーダ１３０は、以下のＭＶ制約を予備ＭＶに適用する：
【数７】
0006903149.tif 000008
ｖ１ｘ，ｖ０ｘ，ｗ，ｖ１ｙ，ｖ０ｙは上述した通りであり；ＴＨは閾値であり；ｈは、例えば８ピクセル等のピクセル数における現在ブロック２１０の高さである。ＴＨは、適切なＭＣＰを提供するのに適した任意の数であるが、メモリ帯域幅を低減することにも適している。例えば、現在ブロック３１０が、スケーリング変換のみを用いて、変換されたブロック３２０に変換される場合であって、最大スケーリング係数が２である場合、変換されたブロック３２０の幅である｜ｖ１ｘ＿ｖ０ｘ｜＋ｗは２＊ｗより大きくはなく、ＴＨは１に設定されるべきである。エンコーダ１３０及びデコーダ１８０は、静的なデフォルトとしてＴＨを保存する。代替的に、エンコーダ１３０は、ＳＰＳ、ＰＰＳ、スライス・ヘッダ、又は別の適切な形式で、ＴＨをデコーダ１８０に動的に合図する。
【００４０】
ＭＶ制約の第２実施形態では、３つの制御ポイントを使用して、エンコーダ１３０は、以下のＭＶ制約を予備ＭＶに適用する：
【数８】
0006903149.tif 000009
ｖ１ｘ、ｖ０ｘ、ｗ、ＴＨ、ｖ１ｙ、ｖ０ｙ、及びｈは上述の通りであり；ｖ２ｘは第３制御ポイントＭＶの水平成分であり；ｖ２ｙは第３制御ポイントＭＶの垂直成分である。第３制御ポイントは、現在ブロック２１０の任意の適切な位置、例えば、現在ブロック２１０の中心にある。
【００４１】
ＭＶ制約の第３実施形態では、２つの制御ポイントを使用して、エンコーダ１３０は、以下のＭＶ制約を予備ＭＶに適用する：
【数９】
0006903149.tif 000010
ｖ１ｘ，ｖ０ｘ，ｗ，ｖ１ｙ，ｖ０ｙ，ＴＨは上記の通りである。
【００４２】
ＭＶ制約の第４実施形態では、３つの制御ポイントを使用して、エンコーダ１３０は、以下のＭＶ制約を予備ＭＶに適用する：
【数１０】
0006903149.tif 000011
ｖ１ｘ，ｖ０ｘ，ｗ，ｖ１ｙ，ｖ０ｙ，ＴＨ，ｖ２ｙ，ｈ，ｖ２ｘは上記の通りである。
【００４３】
変換制約
変換制約の第１実施形態では、エンコーダ１３０は、以下の変換制約を適用する：
【数１１】
0006903149.tif 000012
ｗ’，Ｔ’，ｈ’，ｗ，及びｈは、上述の通りである。ＴＨは、適切なＭＣＰを提供するのに適した任意の数であるが、メモリ帯域幅を低減することにも適している。例えば、サンプルの最大メモリ帯域幅が４×４ブロックのメモリ・アクセス消費として定義される場合、ＴＨは次のようになる：
【数１２】
0006903149.tif 000013
Ｔは、並進モードのための補間フィルタの長さである。エンコーダ１３０及びデコーダ１８０は、静的なデフォルトとしてＴＨを保存する。代替的に、エンコーダ１３０は、ＳＰＳ、ＰＰＳ、スライス・ヘッダ、又は別の適切な形式で、ＴＨをデコーダ１８０に動的に合図する。
【００４４】
変換制約の第２実施形態では、エンコーダ１３０は、単−予測を使用する場合に、以下の変換制約を適用する：
【数１３】
0006903149.tif 000014
単−予測は、エンコーダ１３０が、１つのリファレンス・ブロックを用いて現在ブロック２１０の予測値を決定することを意味する。ｗ’，Ｔ’，ｈ’，ｗ，及びｈは、上述の通りである。ＴＨＵＮＩは、適切なＭＣＰを提供するのに適した任意の数であるが、単−予測のためのメモリ帯域幅を低減することにも適している。例えば、単−予測のためのサンプルの最大メモリ帯域幅が、４×４ブロックのメモリ・アクセス消費として定義される場合、ＴＨＵＮＩは、次のようになる：
【数１４】
0006903149.tif 000015
同様に、エンコーダ１３０は、双−予測を使用する場合、以下の変換制約を適用する：
【数１５】
0006903149.tif 000016
双−予測は、エンコーダ１３０が、２つのリファレンス・ブロックを用いて現在ブロック２１０の予測値を決定することを意味する。ｗ’，Ｔ’，ｈ’，ｗ，及びｈは、上述の通りである。ＴＨＢＩは、適切なＭＣＰを提供するのに適した任意の数であるが、双−予測のためのメモリ帯域幅を低減することにも適している。ＴＨＵＮＩは、ＴＨＢＩ以下である。例えば、双−予測のためのサンプルの最大メモリ帯域幅が８×４ブロックのメモリ・アクセス消費として定義される場合、ＴＨＢＩは次のようになる：
【数１６】
0006903149.tif 000017
式（１１）とは異なり、式（１３）及び（１５）における閾値は、それぞれ単−予測及び双−予測に特有である。
【００４５】
変換制約の第３実施形態では、エンコーダ１３０は、以下のように２つのメモリ帯域幅が存在するように、双−予測を使用する：
【数１７】
0006903149.tif 000018
ＭＢ０は第１幅ｗ０’及び第１高さｈ０’を使用する第１変換のためのメモリ帯域幅であり、ＭＢ１は第２幅ｗ１’及び第２高さｈ１’を使用する第２変換のためのメモリ帯域幅である。２つのメモリ帯域幅を使用して、エンコーダ１３０は、以下の変換制約を適用する：
【数１８】
0006903149.tif 000019
ＭＢ０，ＭＢ１，ｗ，ｈ，ＴＨは上述した通りである。
【００４６】
変換制約の第４実施形態では、エンコーダ１３０は、以下の変換制約を適用する：
【数１９】
0006903149.tif 000020
ｗ’，ｗ，ｈ’，ｈ，及びＴＨは、上述の通りである。
【００４７】
変換制約の第５実施形態では、エンコーダ１３０は、以下のように変換されたブロック４２０の位置を決定する：
【数２０】
0006903149.tif 000021
ｘ０’，ｙ０’，ｘ０，ｖ，ｙ０，ｘ１’，ｙ１’，ｗ，ｘ１，ｙ１，ｘ２’，ｙ２’，ｘ２，ｈ，ｙ２，ｘ３’，ｙ３’，ｘ３，及びｙ３は、上述の通りである。数式セット（１７）及び数式セット（７）を使用して、エンコーダ１３０は、ｗ’及びｈ’を決定する。
【００４８】
変換制約の第６実施形態では、制約されていない候補ＭＶが廃棄される。制約されていない候補ＭＶは、上述のように制約されていない又は他の方法で制約されていない候補ＭＶである。従って、制約されていない候補ＭＶは、元の形態のままである候補ＭＶである。
【００４９】
図８は、本開示の実施形態による装置８００の概略図である。装置８００は、開示された実施形態を実装することができる。装置８００は、データを受信するための入口ポート８１０及びＲＸ８２０と、データを処理するためのプロセッサ、論理ユニット、ベースバンド・ユニット、又はＣＰＵ８３０と、データを送信するためのＴＸ８４０及び出口ポート８５０と、データを保存するためのメモリ８６０と含む。装置８００はまた、光信号、電気信号、又はＲＦ信号の入口又は出口のために、入口ポート８１０、ＲＸ８２０、ＴＸ８４０、及び出口ポート８５０に結合されるＯＥコンポーネント、ＥＯコンポーネント、又はＲＦコンポーネントを含むことができる。
【００５０】
プロセッサ８３０は、ハードウェア、ミドルウェア、ファームウェア、又はソフトウェアの任意の組み合せである。プロセッサ８３０は、１つ又は複数のＣＰＵチップ、コア、ＦＰＧＡ、ＡＳＩＣ、又はＤＳＰの任意の組み合せを含む。プロセッサ８３０は、入口ポート８１０、ＲＸ８２０、ＴＸ８４０、出口ポート８５０、及びメモリ８６０と通信する。プロセッサ８３０は、開示された実施形態を実施するコーディング・コンポーネント８７０を含む。従って、コーティング・コンポーネント８７０を含めることは、装置８００の機能に対してかなりの改善を提供し、装置８００の異なる状態への変換をもたらす。代替的に、メモリ８６０は、コーティング・コンポーネント８７０を命令として保存し、プロセッサ８３０はこれらの命令を実行する。
【００５１】
メモリ８６０は、ディスク、テープ・ドライブ、又はソリッド・ステート・ドライブの任意の組み合わせを含む。装置８００は、プログラムを、装置８００が実行のためにそれらのプログラムを選択する場合に記憶するために、及びそれらのプログラムの実行中に装置８００が読み込む命令及びデータを記憶するために、メモリ８６０を、オーバー・フロー・データ記憶デバイスとして使用することができる。メモリ８６０は、揮発性又は不揮発性であるとすることができ、ＲＯＭ、ＲＡＭ、ＴＣＡＭ、又はＳＲＡＭの任意の組み合せであるとすることができる。
【００５２】
例示的な実施形態では、装置は：メモリ要素；及びメモリ要素に結合されるプロセッサ要素であって：ビデオ・フレームにおいて現在ブロックに隣接する隣接ブロックに対応する候補ＭＶを取得し、候補ＭＶの候補リストを生成し、候補リストから最終ＭＶを選択し、制約されたＭＶを取得するために最終ＭＶ又は変換に制約を適用するように構成されたプロセッサ要素を含む。
【００５３】
幾つかの実施形態が本開示で提供されてきたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化されてもよいことが理解され得る。本実施例は、例示的であって限定的ではないと考えられるべきであり、本発明はここで与えられる詳細に限定されるべきではない。例えば、様々な要素又はコンポーネントは、別のシステムにおいて組み合わされ、又は統合されてもよく、あるいは、特定の特徴が省略されたり、又は実装されなかったりしてもよい。
【００５４】
更に、本開示の範囲から逸脱することなく、様々な実施形態において個別又は別個に説明及び図示された技術、システム、サブシステム、及び方法は、他のシステム、コンポーネント、技術、又は方法と組み合わせられ又は統合され得る。結合されるように示され又は議論された他のアイテムは、直接的に結合されてもよいし、又は電気的に、機械的に、又は他の方法で、何らかのインターフェース、デバイス、又は中間コンポーネントを介して間接的に結合され又は通信してもよい。変形、置換、及び代替の他の例は、当業者によって確認可能であり、ここに開示される精神及び範囲から逸脱することなく為され得る。
【図１】
0006903149.tif 000022
【図２】
0006903149.tif 000023
【図３】
0006903149.tif 000024
【図４】
0006903149.tif 000025
【図５】
0006903149.tif 000026
【図６】
0006903149.tif 000027
【図７】
0006903149.tif 000028
【図８】
0006903149.tif 000029