(57)【要約】      （修正有）【課題】ビデオ画像のコーディング効果を有効的に向上させることができるビデオコーディング方法及びその画像処理装置を提供する。【解決手段】画像処理装置によるビデオコーディング方法は、現在のコーディングユニットを受信し、現在のコーディングユニットの制御点の数を設定する。ここで、制御点の数は３以上である。次いで、制御点の数に基づき、少なくとも１つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算する。さらに、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットについて画面間予測コーディングを行う。【選択図】図３
2019118101.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に適用されるビデオコーディング方法であって、
現在のコーディングユニット（ｃｏｄｉｎｇ  ｕｎｉｔ）の制御点の数を受信並びに設定し、ここで、前記制御点の数は３以上であり、
前記制御点の数に基づき、少なくとも１つのアフィンモデルを生成し、
各前記アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、
前記アフィン運動ベクトルに基づき、前記現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって前記現在のコーディングユニットに画面間予測コーディングを行うことを含む方法。
【請求項２】
前記制御点の数は為１＋２Ｎであり、Ｎは正の整数である請求項１に記載の方法。
【請求項３】
Ｎ＝１の時、前記アフィンモデルの数は１である請求項２に記載の方法。
【請求項４】
Ｎ＞１の時、前記アフィンモデルの数は１＋２Ｎ−１である請求項２に記載の方法。
【請求項５】
前記現在のコーディングユニットの前記制御点の数を設定するステップは、
前記制御点の数に対する設定値を取得する請求項１に記載の方法。
【請求項６】
前記制御点の数の前記設定値が３である時、前記方法は、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左上角、右上角及び左下角に設置すること、を更に含む請求項５に記載の方法。  
【請求項７】
前記アフィンモデルを生成するステップは、
前記第一制御点の運動ベクトル、前記第二制御点の運動ベクトル及び前記第三制御点の運動ベクトルを用いて、前記アフィンモデルを構築することを含み、ここで、前記アフィンモデルの数は１である請求項６に記載の方法。
【請求項８】
前記制御点の数の前記設定値が１＋２Ｎ且つＮ＞１である時、前記アフィンモデルを生成するステップの前に、前記方法は、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置することと、
第四制御点を前記第一制御点と前記第二制御点の間に設置し、第五制御点を前記第二制御点と前記第三制御点の間に設置することと、
前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達したか否か判断することと、
達していない場合、前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達するまで、新たな制御点を各２つの隣接して設置された制御点の間に繰り返し設置することと、を更に含む請求項５に記載の方法。
【請求項９】
前記アフィンモデルを生成するステップは、
前記現在のコーディングユニットに設置される各前記制御点の運動ベクトルを用いて、前記アフィンモデルを構築することを含み、ここで、前記アフィンモデルの数は１＋２Ｎ−１であり、各前記アフィンモデルは、異なる組合わせのうち３つの前記制御点の運動ベクトルによって構築されている請求項８に記載の方法。
【請求項１０】
前記方法は、
それぞれ第一初期制御点、第二初期制御点及び第三初期制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置することを更に含む請求項１に記載の方法。
【請求項１１】
前記現在のコーディングユニットの前記制御点の数を設定するステップは、
前記第一初期制御点の運動ベクトルと前記第二初期制御点の運動ベクトルの第一運動ベクトル差を計算することと、
前記第二初期制御点の前記運動ベクトルと前記第三初期制御点の運動ベクトルの第二運動ベクトル差を計算することと、
前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに複数の新たな制御点を増やすか否か判断することと、を含む請求項１０に記載の方法。
【請求項１２】
前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに前記新たな制御点を増やすか否か判断するステップは、
前記第一運動ベクトル差及び前記第二運動ベクトル差がいずれもプリセット差より小さい時、前記新たな制御点を増やさず、前記制御点の数は、前記現在のコーディングユニットに設置される前記初期制御点の数に設定される請求項１１に記載の方法。
【請求項１３】
前記アフィンモデルを生成するステップは、
前記第一初期制御点の運動ベクトル、前記第二初期制御点の運動ベクトル及び前記第三初期制御点の運動ベクトルを用いて、前記アフィンモデルを構築することを含み、ここで、前記アフィンモデルの数は１である請求項１２に記載の方法。
【請求項１４】
前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに前記新たな制御点を増やすか否か判断するステップは、
前記第一運動ベクトル差及び前記第二運動ベクトル差の少なくとも１つがプリセット差より大きい時、第四初期制御点を前記第一初期制御点と前記第二初期制御点の間に新設し、第五初期制御点を前記第二初期制御点と前記第三初期制御点の間に新設することを含む請求項１１に記載の方法。
【請求項１５】
前記現在のコーディングユニットに設置される各２つの隣接する前記初期制御点の運動ベクトル差がいずれもプリセット差より小さいか否か判断することと、
小さくない場合、前記現在のコーディングユニットに設置される各２つの隣接する前記初期制御点の前記運動ベクトル差がいずれもプリセット差より小さくなるか、前記現在のコーディングユニットに設置される前記初期制御点の数が現在のコーディングユニットの上方及び左方に位置する複数の隣接サブブロックの数に達するまで、新たな制御点を各２つの隣接して設置された初期制御点の間に繰り返し設置することと、を更に含む請求項１４に記載の方法。  
【請求項１６】
前記アフィンモデルを生成するステップは、
前記現在のコーディングユニットに設置される各前記初期制御点の前記運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は１＋２Ｎ−１であり、各前記アフィンモデルは、異なる３つの前記初期制御点の前記運動ベクトルによって構築される請求項１５に記載の方法。
【請求項１７】
データを保存するのに用いられるメモリと、
前記メモリに結合され、
現在のコーディングユニットの制御点の数を受信並びに設定し、ここで、前記制御点の数は３以上であり、
前記制御点の数に基づき、少なくとも１つのアフィンモデルを生成し、
各前記アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、
前記アフィン運動ベクトルに基づき、前記現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって前記現在のコーディングユニットに画面間予測コーディングを行うように配置されるプロセッサと、を含む画像処理装置。
【請求項１８】
前記制御点の数は為１＋２Ｎであり、Ｎは正の整数である請求項１７に記載の画像処理装置。
【請求項１９】
Ｎ＝１の時、前記アフィンモデルの数は１である請求項１８に記載の画像処理装置。
【請求項２０】
Ｎ＞１の時、前記アフィンモデルの数は１＋２Ｎ−１である請求項１８に記載の画像処理装置。
【請求項２１】
前記プロセッサは、前記制御点の数に対する設定値を取得し、前記現在のコーディングユニットの前記制御点の数を設定する請求項１７に記載の画像処理装置。
【請求項２２】
前記制御点の数の前記設定値が３である時、前記プロセッサは、更に、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左上角、右上角及び左下角に設置するのに用いられる請求項２１に記載の画像処理装置。
【請求項２３】
前記プロセッサは、前記第一制御点の運動ベクトル、前記第二制御点の運動ベクトル及び前記第三制御点の運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は１である請求項２２に記載の画像処理装置。
【請求項２４】
前記制御点の数の前記設定値が１＋２Ｎ且つＮ＞１である時、前記プロセッサは、更に、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置し、
第四制御点を前記第一制御点と前記第二制御点の間に設置し、第五制御点を前記第二制御点と前記第三制御点の間に設置し、
前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達したか否か判断し、
達していない場合、前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達するまで、新たな制御点を各２つの隣接して設置された制御点の間に繰り返し設置するのに用いられる請求項２１に記載の画像処理装置。
【請求項２５】
前記プロセッサは、前記現在のコーディングユニットに設置される各前記制御点の運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、其中前記アフィンモデルの数は１＋２Ｎ−１であり、各前記アフィンモデルは、異なる組合わせのうち３つの前記制御点の運動ベクトルによって構築されている請求項２４に記載の画像処理装置。
【請求項２６】
前記プロセッサは、更に、
それぞれ第一初期制御点、第二初期制御点及び第三初期制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置するのに用いられる請求項１７に記載の画像処理装置。
【請求項２７】
前記プロセッサは、前記第一初期制御点の運動ベクトルと前記第二初期制御点の運動ベクトルの第一運動ベクトル差を計算し、前記第二初期制御点の前記運動ベクトルと前記第三初期制御点の運動ベクトルの第二運動ベクトル差を計算し、前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに複数の新たな制御点を増やすか否か判断する請求項２６に記載の画像処理装置。
【請求項２８】
前記第一運動ベクトル差及び前記第二運動ベクトル差がいずれもプリセット差より小さい時、前記プロセッサは、前記新たな制御点を増やさず、前記制御点の数は、前記現在のコーディングユニットに設置される前記初期制御点の数に設定される請求項２７に記載の画像処理装置。
【請求項２９】
前記プロセッサは、前記第一初期制御点の運動ベクトル、前記第二初期制御点の運動ベクトル及び前記第三初期制御点の運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は１である請求項２８に記載の画像処理装置。
【請求項３０】
前記第一運動ベクトル差及び前記第二運動ベクトル差の少なくとも１つがプリセット差より大きい時、前記プロセッサは、第四初期制御点を前記第一初期制御点と前記第二初期制御点の間に新設し、第五初期制御点を前記第二初期制御点と前記第三初期制御点の間に新設する請求項２７に記載の画像処理装置。
【請求項３１】
前記プロセッサは、更に、
前記現在のコーディングユニットに設置される各２つの隣接する前記初期制御点の運動ベクトル差がいずれもプリセット差より小さいか否か判断し、
小さくない場合、前記現在のコーディングユニットに設置される各２つの隣接する前記初期制御点の前記運動ベクトル差がいずれもプリセット差より小さくなるか、前記現在のコーディングユニットに設置される前記初期制御点の数が現在のコーディングユニットの上方及び左方に位置する複数の隣接サブブロックの数に達するまで、新たな制御点を各２つの隣接して設置された初期制御点の間に繰り返し設置するのに用いられる請求項３０に記載の画像処理装置。
【請求項３２】
前記プロセッサは、前記現在のコーディングユニットに設置される各前記初期制御点の前記運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は１＋２Ｎ−１であり、各前記アフィンモデルは、異なる３つの前記初期制御点の前記運動ベクトルによって構築される請求項３１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオコーディングの技術に関する。
【背景技術】
【０００２】
仮想現実及び拡張現実のオーディオビジュアルエンターテイメント産業における迅速な発展とともに、仮想環境を順応、探索及び操作して、あたかも傍にあるように感じるように、消費者の高品質画像に対する要求は日増しに増加している。スムーズで高画質の画像画面を提供するために、限られた容量及びネットワーク帯域幅で画像データを送受信し、画像コーディングの技術は、キーとなるコアの１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これに鑑みて、本発明は、ビデオ画像のコーディング効果を有効的に向上させることができるビデオコーディング方法及びその画像処理装置を提供する。
【０００４】
本発明の例示的な実施形態において、上記方法は、画像処理装置に適用され、下記ステップを含む。現在のコーディングユニットを受信し、現在のコーディングユニットの制御点の数を設定し、ここで、制御点の数は、３以上である。次いで、制御点の数に基づき、少なくとも１つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算する。それから、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットに画面間予測コーディングを行う。
【０００５】
本発明の例示的な実施形態において、上記画像処理装置は、メモリ及びプロセッサを含み、ここで、プロセッサは、メモリに結合される。メモリは、データを保存するのに用いられる。プロセッサは、現在のコーディングユニットを受信し、現在のコーディングユニットの制御点の数を設定し、ここで、制御点の数は、３以上であり、制御点の数に基づき、少なくとも１つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって、現在のコーディングユニットに画面間予測コーディングを行うのに用いられる。
【発明の効果】
【０００６】
上述に基づき、本発明が提出するビデオコーディング技術は、高解像度ビデオの２つの制御点と１つのアフィンモデルによる効果が不足する問題を解決でき、画面間予測コーディングの正確性及びビデオ画像のコーディング効果を向上させる。
【０００７】
本発明の上述した特徴と利点を更に明確化するために、以下に、実施例を挙げて図面と共に詳細な内容を説明する。
【図面の簡単な説明】
【０００８】
【図１】図１Ａ〜図１Ｂは、１つのブロックの運動ベクトルフィールドの概略図である。図１Ｃは、複数の移動物体を有する１つのコーディングユニットの概略図である。
【図２】図２は、本発明の例示的な実施形態が図示する画像処理装置のブロック図である。
【図３】図３は、本発明の例示的な実施形態が図示するビデオコーディング方法のフロー図である。
【図４】図４Ａ〜図４Ｄは、本発明の例示的な実施形態が図示する制御点の設定方法の概略図である。
【図５Ａ】図５Ａは、本発明の例示的な実施形態が図示する制御点の隣接運動ベクトルの検索方法の概略図である。
【図５Ｂ】図５Ｂは、本発明の例示的な実施形態が図示する３つの制御点を有する現在のコーディングユニットの概略図である。
【図５Ｃ】図５Ｃは、本発明の例示的な実施形態が図示する５つの制御点を有する現在のコーディングユニットの概略図である。
【図６】図６は、本発明の例示的な実施形態が図示する制御点の設定方法のフロー図である。
【図７】図７は、本発明の例示的な実施形態が図示する制御点の設定方法の概略図である。
【発明を実施するための形態】
【０００９】
本発明の一部の例示的な実施形態は、以下に、図面をあわせて詳細に記述する。以下の記述で引用する部材番号は、異なる図面で同じ部材番号として出現し、同じ又は相似する部材とみなす。これらの例示的な実施形態は、本発明の一部でしかなく、全ての本発明の実施可能なものを開示していない。更に正確には、これらの例示的な実施形態は、本発明の特許請求の範囲の方法と装置の例でしかない。
【００１０】
現在、国際電気通信連合電気通信標準化部門（Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ，ＩＴＵ−Ｔ）及び動画専門家グループ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ，  ＭＰＥＧ）が共通して構成する連合ビデオ専門家チーム（Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｅｘｐｅｒｔ  Ｔｅａｍ，ＪＶＥＴ）会議において、次世代ビデオコーディング（Ｖｅｒｓａｔｉｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ，Ｈ．２６６／ＶＶＣ）を提出し、高効率ビデオコーディング（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ，Ｈ．２６５／ＨＥＶＣ）より高いコーディング効果の標準を提供している。ＪＶＥＴ会議に回答する圧縮技術効果募集コンテスト（Ｃａｌｌ  ｆｏｒ  Ｐｒｏｐｏｓａｌ，ＣｆＰ）において、主に、スタンダードダイナミックレンジ（ｓｔａｎｄａｒｄ  ｄｙｎａｍｉｃ  ｒａｎｇｅ，ＳＤＲ）動画、ハイダイナミックレンジ（ｈｉｇｈ  ｄｙｎａｍｉｃ  ｒａｎｇｅ，ＨＤＲ）動画及び３６０度動画等３種類の技術項目について検討し、この３種類の技術は、画面データのコーディングを行うには、いずれも予測を必要とする。
【００１１】
上記予測方法は、大まかに、画面内予測（ｉｎｔｒａ−ｐｒｅｄｉｃｔｉｏｎ）と画面間予測（ｉｎｔｅｒ−ｐｒｅｄｉｃｔｉｏｎ）に分けられ、前者は、主に、空間ドメインにおける画面の隣接ブロックに関連性分析を行い、後者は、主に、時間ドメインにおける画面の間のブロックに関連性分析を行って、動き補正予測（ｍｏｔｉｏｎ−ｃｏｍｐｅｎｓａｔｉｏｎ  ｐｒｅｄｉｃｔｉｏｎ，ＭＣＰ）を行う。動き補正予測は、並進運動モデル（ｔｒａｎｓｌａｔｉｏｎ  ｍｏｔｉｏｎ  ｍｏｄｅｌ）に基づき、ブロックの画面の間の運動ベクトルを計算できる。ブロックのオリジナルデータ伝送に対して、運動ベクトルの伝送は、必要なコーディングビット数を大幅に減少する。しかしながら、実世界では、例えば、拡大（ｚｏｏｍ  ｉｎ）、縮小（ｚｏｏｍ  ｏｕｔ）、旋回（ｒｏｔａｔｉｏｎ）、相似変換（ｓｉｍｉｌａｒｉｔｙ  ｔｒａｎｓｆｏｒｍａｔｉｏｎ）、螺旋相似（ｓｐｉｒａｌ  ｓｉｍｉｌａｒｉｔｙ）、透視（ｐｅｒｓｐｅｃｔｉｖｅ  ｍｏｔｉｏｎ）又はその他の不規則な動きが存在する。したがって、並進運動モデルに基づく動き補正予測メカニズムは、コーディング効果に大幅に影響する。
【００１２】
現在、連合探索測定プラットフォーム（Ｊｏｉｎｔ  Ｅｘｐｌｏｒａｔｉｏｎ  Ｔｅｓｔ  Ｍｏｄｅｌ，ＪＥＭ）は、アフィン動き補正予測（ａｆｆｉｎｅ  ｍｏｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ  ｐｒｅｄｉｃｔｉｏｎ）を提出しており、２つの制御点に基づき、１つのアフィンモデルで１つのブロックの運動ベクトルフィールド（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｆｉｅｌｄ，ＭＶＦ）を記述して、旋回、ズーム、並進するシーンの予測効果を向上している。図１Ａの１つのブロック１００を例とすると、ブロック１００のサンプル位置である(ｘ，ｙ）の運動ベクトルフィールドは、方程式（１）のアフィンモデルで記述できる。
【数１】
2019118101.tif 000003
【００１３】
動き補償予測を更に簡略化するために、ブロック１００をＭ×Ｎ個のサブブロックに分けて（例として、図１Ｂでは、ブロック１００を４×４個のサブブロックに分けている）、方程式（１）に基づき、各サブブロックの中心サンプリングの運動ベクトルを導出できる。次いで、動き補償補間フィルタ（ｍｏｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ  ｉｎｔｅｒｐｏｌａｔｉｏｎ  ｆｉｌｔｅｒ）を各サブブロックの運動ベクトルに用いて、各サブブロックの予測が得られる。動き補償予測の後、各サブブロックの高精度を有する運動ベクトルは、丸められ（ｒｏｕｎｄｅｄ）、一般の運動ベクトルと同じ精度に保存される。
【００１４】
しかしながら、消費者の高品質ビデオに対する要求を満たすために、ビデオの解像度は相対的に向上し、各コーディングユニット（ｃｏｄｉｎｇ  ｕｎｉｔ，ＣＵ）のサイズも相対的に向上し、実施形態において、１２８×１２８まで大きい可能性がある。現行のアフィン動き補償予測は、１つのコーディングユニット全てが１つの物体に属する仮定の下で行われる。しかしながら、コーディングユニットは、１つの物体を含むだけではなく、異なる動作を含む時（例えば、図１ＣのコーディングユニットＣＵ１は、異なる旋回方向の移動物体ＯＢ１、ＯＢ２、ＯＢ３を有し、例えば、移動物体ＯＢ１は反時計回りに旋回し、移動物体ＯＢ２、ＯＢ３は時計周りに旋回するが、旋回速度は異なる）、現行のメカニズムでは、誤った予測を生み出す可能性がある。本発明の例示的な実施形態が提出するビデオコーディング技術は、高解像度ビデオの２つの制御点と１つのアフィンモデルによる効果が不足する問題を解決できる。
【００１５】
図２は、本発明の例示的な実施形態が図示する画像処理装置のブロック図であるが、これは説明をしやすくするためだけであって、本発明を限定するものではない。実施形態において、画像処理装置２００は、エンコーダ及び／またはデコーダであってもよい。
【００１６】
図２を参照すると、本例示的な実施形態において、画像処理装置２００は、少なくともメモリ２１０と、プロセッサ２２０と、を含み、プロセッサ２２０はメモリ２１０に結合される。例示的な実施形態において、画像処理装置２００は、パソコン、ノートブック型パソコン、サーバーコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルデバイス、ワークステーション等の電子デバイスであってもよい。
【００１７】
メモリ２１０は、画像、数値データ、プログラムコード等のデータを保存するのに用いられ、例えば、任意のタイプの固定型又は移動型ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ，ＲＡＭ）、リードオンリーメモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ，ＲＯＭ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、ハードディスク又はその他の類似の装置、集積回路及びその組合わせであってもよい。
【００１８】
プロセッサ２２０は、画像処理装置２００全体の動作を制御して、ビデオコーディングを実行するのに用いられ、例えば、中央処理ユニット（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ，ＣＰＵ）、アプリケーションプロセッサ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｃｅｓｓｏｒ，ＡＰ）、又はその他のプログラマブルな一般用途又は特殊用途のマイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ，ＤＳＰ）、画像信号プロセッサ（ｉｍａｇｅ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ，ＩＳＰ）、図形処理ユニット（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ，ＧＰＵ）又はその他の類似の装置、集積回路及びその組合わせであってもよい。
【００１９】
追加で説明することとして、例示的な実施形態において、画像処理装置２００は、画像取り込み装置、伝送インターフェース、ディスプレイ、通信ユニットを選択的に含んでもよい。画像取り込み装置は、例えば、デジタルカメラ、デジタルカムコーダ、ネットワークカメラ、モニターカメラであってもよく、画像データを取り込むのに用いられる。伝送インターフェースは、Ｉ／Ｏインターフェースであってもよく、プロセッサ２２０に画像データ及び関連データを受信させる。ディスプレイは、処理後の画像データを表示するのに用いられる任意のスクリーンであってもよい。通信ユニットは、任意の有線接続または無線通信標準を支援するモデム、送受信器であってもよく、外部ソースからオリジナル画像データを受信し、処理後の画像データをその他の装置又はプラットフォームに送信するのに用いられる。当業者は以下について明瞭である。エンコードの観点からすると、プロセッサ２２０がエンコード完了した後、エンコード後のビットストリーム及び関連データを通信ユニットによってその他のデコーダを有する装置又はプラットフォームに送信する。また、プロセッサ２２０は、例えば、ＤＶＤディスク、従来のハードディスク、ポータブルハードドライブ、メモリカード等の保存記録媒体にエンコード後のビットストリーム及び関連データを保存することもできるが、本発明はこれに限定しない。デコードの観点からすると、プロセッサ２２０がエンコードされたビットストリーム及び関連データを受信した後、関連データに基づき、エンコードされたビットストリーム及び関連データをデコードして、プレイヤーに出力して再生する。
【００２０】
図３は、本発明の例示的な実施形態が図示するビデオコーディング方法のフロー図であり、図３の方法フローは、図２の画像処理装置２００によって実現できる。本発明の実施形態において、コーディングは、エンコード及び／又はデコードであってもよく、コーディング方法は、エンコード方法及び／又はデコード方法であってもよい。
【００２１】
本例示的な実施形態において、プロセッサ２２０は、画像処理装置２００のエンコードフロー及び／またはデコードフローを実行できる。例を挙げると、図３の方法フローは、プログラムコード形式でメモリ２１０に保存し、プロセッサ２２０は、プログラムコードを実行して、図３の各ステップを実行することができる。プロセッサ２２０がエンコードフローを実行する時、図３のフローを実行する前に、オリジナルビデオストリーム／画面を受信してから、このオリジナルビデオストリーム／画面にエンコードプログラムを行う。プロセッサ２２０がデコードフローを実行する時、図３のフローを実行する前に、エンコードされたビットストリームを受信してから、このエンコードされたビットストリームにデコードプログラムを行う。以下の説明では、受信したオリジナルビデオストリーム／画面又はエンコードされたビットストリームの複数を、基本処理ユニット（ｂａｓｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）のコーディングツリーユニット（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ，ＣＴＵ）のうちの１つのコーディングユニット（ｃｏｄｉｎｇ  ｕｎｉｔ，ＣＵ）として説明し、これをまとめて「現在のコーディングユニット」と称する。
【００２２】
図２と図３を同時に参照すると、まず、画像処理装置２００のプロセッサ２２０は、現在のコーディングユニットを受信し（ステップＳ３０２）、現在のコーディングユニットの制御点の数を設定する。ここで、制御点の数は、３以上である（ステップＳ３０４）。制御点の数は、ユーザーが予め入力装置（不図示）によって入力したデフォルト値、システムデフォルト値、又は現在のコーディングユニットの物体移動状態に基づき適切に設定したものであってもよい。
【００２３】
次いで、プロセッサ２２０は、制御点の数に基づき、少なくとも１つのアフィンモデルを生成し（ステップＳ３０６）、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算する（ステップＳ３０８）。その後、プロセッサ２２０は、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットの画面間予測コーディングを行う（ステップＳ３１０）。ここで、プロセッサ２２０は、全てのアフィンモデルを現在のコーディングユニットの全てのサブブロックに適用し、各サブブロックは、異なる重み付けによって全てのアフィン運動ベクトルを分配し、対応する運動ベクトル予測因子を得て、現在のコーディングユニットの画面間予測コーディングを行う。下記例示的な実施形態によりステップＳ３０４〜Ｓ３１０の詳細について説明する。
【００２４】
図４Ａ〜図４Ｄは、本発明の例示的な実施形態が図示する制御点の設定方法であり、これらの例示は、図２のエンコード及び／またはデコードするのに用いられる画像処理装置２００によって実現できる。
【００２５】
本例示的な実施形態において、プロセッサ２２０は、ユーザー設定又はシステムプリセットに基づき、制御点の数及び参照範囲を設定し、この制御点の数は、１＋２Ｎを満たし、Ｎは正の整数である。制御点の参照範囲は、現在のコーディングユニットの左方及び上方の隣接サブブロックの列数と行数であり、Ｍで表すことができ、Ｍは正の整数である。図４Ａを例とすると、Ｍ＝１の時、現在のコーディングユニットＣＵ４Ａの制御点の参照範囲は、左方に隣接する１行と上方に隣接する１列の隣接サブブロック（番号１〜９）であり、Ｍ＝２の時、現在のコーディングユニットＣＵ４Ａの制御点の参照範囲は、左方に隣接する２行と上方に隣接する２列の隣接サブブロック（番号１〜２０）であり、これにより類推される。
【００２６】
プロセッサ２２０は、制御点の数及び参照範囲を設定した後、制御点の位置を設定する。まず、プロセッサ２２０は、３つの制御点を現在のエンコードブロックの左下角、左上角及び右上角に設置する。図４Ｂを例とすると、４０Ｂ、４１Ｂ、４２Ｂは、それぞれ現在のコーディングユニットＣＵ４Ｂの左上角、右上角及び左下角に位置する３つの制御点であり、即ち、番号５、９、１のサブブロックに対応する。別の観点から見ると、番号１〜９のサブブロックが参照線ＲＢに配列する場合、現在のコーディングユニットＣＵ４Ｂは正方形であることに基づき、３つの制御点４０Ｂ、４１Ｂ、４２Ｂは、それぞれ参照線ＲＢの両端点及び中点に位置する。また、図４Ｃを例とすると、４０Ｃ、４１Ｃ、４２Ｃは、現在のコーディングユニットＣＵ４Ｃの左上角、右上角及び左下角に位置する３つの制御点であり、即ち、番号５、１３、１のサブブロックに対応する。別の観点から見ると、番号１〜１３のサブブロックが参照線ＲＣに配列する場合、現在のコーディングユニットＣＵ４Ｃは、幅が長さより大きい非正方形であることに基づき、３つの制御点４０Ｃ、４１Ｃ、４２Ｃは、それぞれ参照線ＲＣの両端点及び左半分に位置する。
【００２７】
プロセッサ２２０は、Ｎの数値に基づき、各２つの制御点の間に新たな制御点を新設するか否か決定する。別の観点から見ると、プロセッサ２２０は、現在のコーディングユニットに設置される制御点の数が、制御点の数の設定値に達したか否か判断する。詳細には、Ｎ＝１の時、即ち、制御点の数は３であることを表し、現在のコーディングユニットに設置された制御点の数は、制御点の数の設定値に達し、したがって、制御点の設置を完了する。Ｎ＝２の時、制御点の数は５であることを表し、即ち、現在のコーディングユニットに設置された制御点の数は、制御点の数の設定値に達しておらず、したがって、プロセッサ２２０は、２つの制御点を現在のコーディングユニットの各隣接する制御点の間に新設する。図４Ｄを例とすると、図４Ｂに続き、４０Ｂ、４１Ｂ、４２Ｂは、それぞれ現在のコーディングユニットＣＵ４Ｄに設置される３つの制御点であり、プロセッサ２２０は、制御点４３を制御点４０Ｂと制御点４１Ｂの中点に追加で設置し、制御点４４を制御点４２Ｂと制御点４０Ｂの中点に追加で設置する。Ｎ＝３の時、即ち、制御点の数は９であることを表し、プロセッサ２２０は、４つの制御点をそれぞれ各２つの隣接する制御点の間、例えば、制御点４２Ｂと制御点４４の中点、制御点４４と制御点４０Ｂの中点、制御点４０Ｂと制御点４３の中点及び制御点４３と制御点４１Ｂの中点に追加で設置する。これにより類推され、プロセッサ２２０は、現在のコーディングユニット４２０に設置される制御点の数が制御点の数の設定値に達していないと判定する時、現在のコーディングユニット４２０に設置される制御点の数が制御点の数の設定値に達するまで、新たな制御点を各２つの隣接して設置された制御点の中点に繰り返し設置する。
【００２８】
次いで、プロセッサ２２０は、制御点の運動ベクトルに基づき、アフィンモデルを生成する。本例示的な実施形態において、Ｎ＝１（即ち、制御点の数は３である）の時、アフィンモデルの数は１であり、Ｎ＞１（即ち、制御点の数は３より大きい）の時、アフィンモデルの数は１＋２Ｎ−１である。制御点の運動ベクトルは、コーディングされた隣接運動ベクトルに基づき計算でき、このコーディングされたの隣接運動ベクトルの参照画面と制御点の参照画面は同じである。
【００２９】
図５Ａの本発明の例示的な実施形態が図示する制御点の隣接運動ベクトルの検索方法の概略図を例とすると、Ｍ＝１の時、プロセッサ２２０は、それぞれ現在のコーディングユニットＣＵ５Ａの制御点５０Ａ、５１Ａ、５２Ａの隣接サブブロックからコーディングされた運動ベクトルを検索する。サブブロックＤに位置する制御点５０Ａからすると、プロセッサ２２０は、サブブロックＡ〜Ｃがコーディング済されたサブブロックであると検索したと仮定すると、制御点５０Ａの運動ベクトルは、サブブロックＡ〜Ｃの運動ベクトルの中から選択できる。例を挙げると、プロセッサ２２０は、１つの固定順序により、サブブロックＡ〜Ｃが現在のコーディングユニットＣＵ５Ａと同じ参照画面を有するか否かを逐一判断して、この設定に適合すると最初に判定するサブブロックの運動ベクトルは、制御点５０Ａの運動ベクトルの設定根拠とする。
【００３０】
一方、サブブロックＧに位置する制御点５１Ａからすると、プロセッサ２２０は、サブブロックＥ〜Ｆがコーディングされたサブブロックであると検索したと仮定すると、その運動ベクトルは、サブブロックＥ〜Ｆの運動ベクトルの中から選択でき、サブブロックＨは、コーディングしていないことから、制御点５１Ａの運動ベクトルの選択根拠としない。サブブロックＫに位置する制御点５２Ａからすると、プロセッサ２２０は、サブブロックＩ〜Ｊがコーディングされたサブブロックであると検索したと仮定すると、その運動ベクトルは、サブブロックＩ〜Ｊの運動ベクトルの中から選択でき、サブブロックＬは、コーディングしていないことから、制御点５２Ａの運動ベクトルの選択根拠としない。
【００３１】
また、Ｍ＝２の時、プロセッサ２２０は、それぞれ現在のコーディングユニットＣＵ５Ａの制御点５０Ａ、５１Ａ、５２Ａの隣接サブブロックから、アフィン運動モデルによってコーディングされた運動ベクトルを検索できる。Ｍ＝１に対して、制御点５０Ａは、更に多くの隣接サブブロックを参照して制御点５０Ａ、５１Ａ、５２Ａの運動ベクトルの選択及び設定根拠を検出することができ、例えば、制御点５０Ａが参照できる隣接サブブロックはＡ〜Ｃ、Ｍ〜Ｑであり、制御点５１Ａが参照できる隣接サブブロックはＥ〜Ｆ、Ｈ、Ｒ〜Ｖであり、制御点５２Ａが参照できる隣接サブブロックはＩ、Ｊ、Ｌ、Ｗ〜ＺＺである。制御点５０Ａ、５１Ａ、５２Ａの運動ベクトルの選択及び設定方式は、Ｍ＝１に関する説明を参考にでき、ここでは繰り返さない。
【００３２】
例示的な実施形態において、制御点の運動ベクトルは、その他の制御点の運動ベクトルから計算してもよく、例えば、制御点５２Ａの運動ベクトルが隣接サブブロックから知り得ることができない場合、制御点５０Ａ及び制御点５１Ａの運動ベクトルから計算し、制御点５２Ａの運動ベクトルは、例えば、方程式（２．０１）により計算できる。
【数２】
2019118101.tif 000004
【００３３】
別の例示的な実施形態において、制御点５１Ａの運動ベクトルが隣接サブブロックから知り得ることができない場合、制御点５０Ａ及び制御点５２Ａの運動ベクトルは、例えば、方程式（２．０２）により計算できる。
【数３】
2019118101.tif 000005
【００３４】
2019118101.tif 000006
【００３５】
2019118101.tif 000007
【００３６】
図６は、本発明の例示的な実施形態が図示する制御点の設定方法のフロー図である。図７は、本発明の例示的な実施形態が図示する制御点の設定方法の概略図である。以下の設定方法は、図２のエンコードまたはデコードするのに用いられる画像処理装置２００によって実現できる。本例示的な実施形態において、プロセッサ２２０は、現在のコーディングユニットの物体移動状態に基づき、制御点の数を適切に設定する。
【００３７】
図２、図６を同時に参照すると、まず、プロセッサ２２０は、現在のコーディングユニットの３つの初期制御点を設定する（ステップＳ６０２）。本例示的な実施形態において、参照範囲Ｍ＝１をデフォルト値として説明し、この３つの初期制御点は、現在のエンコードブロックの左下角、左上角及び右上角に順に設置し、以下、それぞれ第一初期制御点、第二初期制御点及び第三初期制御点と称する。図７を例とすると、現在のコーディングユニットＣＵ７の７Ａ、７Ｂ、７Ｃは、それぞれ第一初期制御点、第二初期制御点及び第三初期制御点である。追加で説明することとして、そのほかの例示的な実施形態において、プロセッサ２２０は、ステップＳ６０２の前に、ユーザー設定又はシステムプリセットに基づき参照範囲を設定することもできる。
【００３８】
次いで、プロセッサ２２０は、各初期制御点の運動ベクトルを計算し（ステップＳ６０４）、各２つの隣接する初期制御点の運動ベクトル差を計算し（ステップＳ６０６）、いかなる運動ベクトル差もプリセット差より大きいか否かと、現在のコーディングユニットに設置される初期制御点の数が現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数より小さいか否か判断する（ステップＳ６０８）。説明が必要なこととして、ここで言う２つの隣接する初期制御点とは、現在のコーディングユニットの角に順に配列した２つの隣接する初期制御点を指す。図７を例とすると、プロセッサ２２０は、第一初期制御点７Ａの運動ベクトルＶＡと第二初期制御点７Ｂの運動ベクトルＶＢの間の運動ベクトル差||ＶＡ−ＶＢ||（「第一運動ベクトル差」と称する）を計算し、第二初期制御点７Ｂの運動ベクトルＶＢと第三初期制御点７Ｃの運動ベクトルＶＣの間の運動ベクトル差||ＶＢ−ＶＣ||「第二運動ベクトル差」と称する）を計算し、第一運動ベクトル差||ＶＡ−ＶＢ||及び第二運動ベクトル差||ＶＢ−ＶＣ||のいずれかがプリセット差ｄより大きいか否か判断する。
【００３９】
プロセッサ２２０は、いかなる運動ベクトル差もプリセット差より大きくないと判定する時、例示的な実施形態において、全ての運動ベクトルは、高い類似性を有し、現在の初期制御点は、同じ移動物体に対応することを表すため、制御点を新設する必要は無い。また、現在のコーディングユニットに設置される初期制御点の数が、現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数より小さくない（すでに達した）時も制御点を新設する必要は無い。プロセッサ２２０は、ここで、制御点の設定フローを終了して、これらの初期制御点の運動ベクトルに基づき、アフィンモデルの生成を開始することができる。図７を例とすると、プロセッサ２２0は、||ＶＡ−ＶＢ||＜ｄ且つ、||ＶＢ−ＶＣ||＜ｄと判定すると、第一初期制御点７Ａの運動ベクトルＶＡ、第二初期制御点７Ｂの運動ベクトルＶＢ及び第三初期制御点７Ｃの運動ベクトルＶＣを用いて１つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算して、これによって現在のコーディングユニットの画面間予測エンコードを行う。
【００４０】
一方、プロセッサ２２０は、いかなる運動ベクトル差もプリセット差より大きいと判定する時、例示的な実施形態において、現在の初期制御点は、異なる移動物体に対応することを表すことから、制御点を増やして、現在のコーディングユニットの全ての移動物体を完全に記述して、後続の予測を更に正確にする。ここで、プロセッサ２２０は、更に、現在のコーディングユニットに設置される初期制御点の数が現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数より小さい（まだ達していない）と判定する時、プロセッサ２２０は、各２つの隣接する初期制御点の間に制御点を１つ増やし（ステップＳ６１０）、増やされた制御点を初期制御点に加える（ステップＳ６１２）。換言すると、第一初期制御点と第二初期制御点の間に新設した制御点は、第四初期制御点となり、第二初期制御点と第三初期制御点の間に新設した制御点は、第五初期制御点となる。その後、プロセッサ２２０は、ステップＳ６０４に戻って、各２つの隣接する初期制御点の運動ベクトル差がいずれもプリセット差より小さくなるか、現在のコーディングユニットに設置される初期制御点の数が現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数に達するまで継続するフローを繰り返す。
【００４１】
図７を例とすると、プロセッサ２２０は、||ＶＡ−ＶＢ||＞ｄ及び／又は、||ＶＢ−ＶＣ||＞ｄと判定した場合、プロセッサ２２０は、第一初期制御点７Ａと第二初期制御点７Ｂの中点に制御点７Ｄを新設し、第二初期制御点７Ｂと第三初期制御点７Ｃの中点に制御点７Ｅを新設してもよい。その後、プロセッサ２２０は、第一初期制御点７Ａの運動ベクトルＶＡと第四初期制御点７Ｄの運動ベクトルＶＤの間の運動ベクトル差||ＶＡ−ＶＤ||、第四初期制御点７Ｄの運動ベクトルＶＤと第二初期制御点７Ｂの運動ベクトルＶＢの間の運動ベクトル差||ＶＤ−ＶＢ||、第二初期制御点７Ｂの運動ベクトルＶＢと第五初期制御点７Ｅの運動ベクトルＶＥの間の運動ベクトル差||ＶＢ−ＶＥ||、第五初期制御点７Ｅの運動ベクトルＶＥと第三初期制御点７Ｃの運動ベクトルＶＣの間の運動ベクトル差||ＶＥ−ＶＣ||を計算し、この４つの運動ベクトル差の中に、プリセット差ｄより大きいものがあるか否か判断する。この４つの運動ベクトル差の中に、プリセット差ｄより大きいものがある場合、プロセッサ２２０は、更にそれぞれこの５つの初期制御点７Ａ〜７Ｅ中の各２つの隣接する制御点の中点に制御点を新設する。換言すると、プロセッサ２２０は、いかなる現在のコーディングユニットＣＵ７に設置される各２つの隣接する初期制御点の運動ベクトル差がプリセット差より小さくないと判定する時、現在のコーディングユニットＣＵ７に設置される各２つの隣接する初期制御点の運動ベクトル差がいずれもプリセット差より小さくなるか、現在のコーディングユニットＣＵ７に設置される初期制御点の数が、現在のコーディングユニットＣＵ７の上方及び左方に位置する隣接サブブロックの数に達する（例えば、図７が設置できる初期制御点の数は最多で９である）まで、新たな制御点を各２つの隣接して設置された初期制御点の中点に繰り返し設置する。
【００４２】
この４つの差がいずれもプリセット差ｄより小さい場合、プロセッサ２２０は、第一初期制御点７Ａの運動ベクトルＶＡ、第二初期制御点７Ｂの運動ベクトルＶＢ、第三初期制御点７Ｃの運動ベクトルＶＣ、第四初期制御点７Ｄの運動ベクトルＶＤ、第五初期制御点７Ｅの運動ベクトルＶＥを用いて３つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットの画面間予測コーディングを行う。
【００４３】
以上より、本発明が提出するビデオコーディング方法及びその画像処理装置は、コーディングユニットにおいて、３つ以上の制御点により少なくとも１つのアフィンモデルを生成して、それぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、コーディングユニットの運動ベクトル予測因子を計算する。本発明が提出するビデオコーディング技術は、高解像度ビデオの２つの制御点と１つのアフィンモデルによる効果が不足する問題を解決でき、画面間予測コーディングの正確性及びビデオ画像のコーディング効果を向上させる。
【００４４】
本文は以上の実施例のように示したが、本発明を限定するためのものではなく、当業者が本発明の精神の範囲から逸脱しない範囲において、変更又は修正することが可能であるが故に、本発明の保護範囲は後続の特許請求の範囲に定義しているものを基準とする。
【産業上の利用可能性】
【００４５】
本発明が提出するビデオコーディング技術は、高解像度ビデオの２つの制御点と１つのアフィンモデルによる効果が不足する問題を解決でき、画面間予測コーディングの正確性及びビデオ画像のコーディング効果を向上させる。
【符号の説明】
【００４６】
１００：ブロック
１１０、１２０、４０Ｂ、４１Ｂ、４２Ｂ、４０Ｃ、４１Ｃ、４２Ｃ、４３、４４、５０Ａ、５１Ａ、５２Ａ、５０Ｂ、５１Ｂ、５２Ｂ、５０Ｃ、５１Ｃ、５２Ｃ、７Ａ、７Ｂ、７Ｃ、７Ｄ、７Ｅ：制御点
２００：画像処理装置
２１０：メモリ
２２０：プロセッサ
Ｓ３０２〜Ｓ３１０、Ｓ６０２〜Ｓ６１２：ステップ
ＣＵ１：コーディングユニット
ＣＵ４Ａ、ＣＵ４Ｂ、ＣＵ４Ｃ、ＣＵ４Ｄ、ＣＵ５Ａ、ＣＵ７：現在のコーディングユニット
１〜２０：番号
ＲＢ、ＲＣ、Ｒ７：参照線
Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、Ｏ、Ｐ、Ｑ、Ｒ、Ｓ、Ｔ、Ｕ、Ｖ、Ｗ、Ｘ、Ｙ、Ｚ、ＺＺ：サブブロック
【図１−１】
2019118101.tif 000008
【図１−２】
2019118101.tif 000009
【図２】
2019118101.tif 000010
【図３】
2019118101.tif 000011
【図４−１】
2019118101.tif 000012
【図４−２】
2019118101.tif 000013
【図４−３】
2019118101.tif 000014
【図４−４】
2019118101.tif 000015
【図５Ａ】
2019118101.tif 000016
【図５Ｂ】
2019118101.tif 000017
【図５Ｃ】
2019118101.tif 000018
【図６】
2019118101.tif 000019
【図７】
2019118101.tif 000020
【外国語明細書】
2019118101000001.pdf