IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7572487適応動きベクトル解像度による動きベクトルの変更
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】適応動きベクトル解像度による動きベクトルの変更
(51)【国際特許分類】
   H04N 19/513 20140101AFI20241016BHJP
【FI】
H04N19/513
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2023045399
(22)【出願日】2023-03-22
(62)【分割の表示】P 2021514371の分割
【原出願日】2019-09-23
(65)【公開番号】P2023078364
(43)【公開日】2023-06-06
【審査請求日】2023-03-29
(31)【優先権主張番号】PCT/CN2018/107168
(32)【優先日】2018-09-23
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】ワン ユエ
【審査官】田中 純一
(56)【参考文献】
【文献】特開2006-187025(JP,A)
【文献】特表2017-508346(JP,A)
【文献】米国特許出願公開第2015/0195562(US,A1)
【文献】米国特許出願公開第2004/0240550(US,A1)
【文献】特表2021-536686(JP,A)
【文献】Jianle Chen, et al.,Algorithm Description of Joint Exploration Test Model 7 (JEM 7) [online], JVET-G JVET-G1001-v1,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/7_Torino/wg11/JVET-G1001-v1.zip><JVET-G1001-v1.docx>,2017年08月19日,i-iv,1-44
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像処理方法であって、
現在の映像ブロックの信号通知された動きベクトル差(MVD)について、精度セットから第1の精度を判定することと、
前記第1の精度に基づいて、予め定義された第2の精度を有する動きベクトルを取得することと、前記第2の精度は、ブロックを予測するために記憶された動きベクトルの精度と同じであり、前記動きベクトルは、動きベクトル予測子(MVP)を前記動きベクトル差(MVD)に加えることに基づいており、
前記動きベクトルに基づいて、前記現在の映像ブロックをコーディングすることと、を含み、
前記MVDは、前記MVPを前記MVDに加える前にスケールされ、
前記MVPは、前記第1の精度に基づいて前記MVPを前記MVDに加える前に修正される、映像処理方法。
【請求項2】
前記第2の精度は、1/16画素精度である、請求項1に記載の方法。
【請求項3】
前記第1の精度が1画素精度よりも低いまたは1画素精度に等しいと判定されると前記MVPをスケーリングすることをさらに含む、請求項に記載の方法。
【請求項4】
前記MVPは、空間的に近傍のブロックまたは時間的に近傍のブロックのうちの少なくとも1つから導出されるか、またはデフォルトMVPである、請求項1に記載の方法。
【請求項5】
前記精度セットは、1/16画素精度、1/4画素精度および1画素精度を含む、請求項1に記載の方法。
【請求項6】
前記第1の精度は、ビットストリームで示される、請求項1に記載の方法。
【請求項7】
前記現在の映像ブロックは、アフィンインターモードでコーディングされる、請求項1に記載の方法。
【請求項8】
前記第1の精度は、適応型動きベクトル解像度(AMVR)ツールを使用して判定される、請求項1に記載の方法。
【請求項9】
前記コーディングは、前記現在の映像ブロックをビットストリームに符号化することを含む、請求項1に記載の方法。
【請求項10】
前記コーディングは、ビットストリームから前記現在の映像ブロックを復号することを含む、請求項1に記載の方法。
【請求項11】
処理装置と命令が記憶された非一時的メモリとを備える映像処理装置であって、前記命令が前記処理装置によって実行されると、前記処理装置に、
現在の映像ブロックの信号通知された動きベクトル差(MVD)について、精度セットから第1の精度を判定することと、
前記第1の精度に基づいて、予め定義された第2の精度を有する動きベクトルを取得することと、前記第2の精度は、ブロックを予測するために記憶された動きベクトルの精度と同じであり、前記動きベクトルは、動きベクトル予測子(MVP)を前記動きベクトル差(MVD)に加えることに基づいており、
前記動きベクトルに基づいて、前記現在の映像ブロックをコーディングすることと、を行わせ、
前記MVDは、前記MVPを前記MVDに加える前にスケールされ、
前記MVPは、前記第1の精度に基づいて前記MVPを前記MVDに加える前に修正される、映像処理装置。
【請求項12】
前記第2の精度は、1/16画素精度である、請求項11に記載の装置。
【請求項13】
前記精度セットは、1/16画素精度、1/4画素精度および1画素精度を含む、請求項11に記載の装置。
【請求項14】
前記第1の精度は、ビットストリームで示される、請求項11に記載の装置。
【請求項15】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は処理装置に、
現在の映像ブロックの信号通知された動きベクトル差(MVD)について、精度セットから第1の精度を判定することと、
前記第1の精度に基づいて、予め定義された第2の精度を有する動きベクトルを取得することと、前記第2の精度は、ブロックを予測するために記憶された動きベクトルの精度と同じであり、前記動きベクトルは、動きベクトル予測子(MVP)を前記動きベクトル差(MVD)に加えることに基づいており、
前記動きベクトルに基づいて、前記現在の映像ブロックをコーディングすることと、を行わせ、
前記MVDは、前記MVPを前記MVDに加える前にスケールされ、
前記MVPは、前記第1の精度に基づいて前記MVPを前記MVDに加える前に修正される、非一時的なコンピュータ可読記憶媒体。
【請求項16】
像のビットストリームを記憶する方法であって、前記方法が、
現在の映像ブロックの信号通知された動きベクトル差(MVD)について、精度セットから第1の精度を判定することと、
前記第1の精度に基づいて、予め定義された第2の精度を有する動きベクトルを取得することと、前記第2の精度は、ブロックを予測するために記憶された動きベクトルの精度と同じであり、前記動きベクトルは、動きベクトル予測子(MVP)を前記動きベクトル差(MVD)に加えることに基づいており、
前記動きベクトルに基づいて、前記現在の映像ブロックを前記ビットストリームに符号化することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと、を含
前記MVDは、前記MVPを前記MVDに加える前にスケールされ、
前記MVPは、前記第1の精度に基づいて前記MVPを前記MVDに加える前に修正される、方法
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2018年9月23日出願の国際特許出願第PCT/CN2018/107168号の優先権および利益を主張する、2019年9月23日出願の国際特許出願PCT/IB2019/058034の国内段階である、日本国特許出願第2021-514371号の分割出願である。前述すべての特許出願は、その全体が参照によりここに組み込まれる。
【0002】
本特許明細書は、映像符号化技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像の受信および表示が可能な接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
デジタル映像符号化に関し、具体的には、適応動きベクトル解像度(AMVR)を有するアフィンモードのための動きベクトル予測子の導出および信号通知に関するデバイス、システム、および方法を説明する。記載された方法は、既存の映像符号化規格(例えば、高効率映像符号化(HEVC))および将来の映像符号化規格またはビデオコーデックの両方に適用され得る。
【0005】
1つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間で変換するために、現在の映像ブロックに関連付けられた各動きベクトルの解像度を適宜選択する符号化ツールを使用して、最終的動きベクトルを判定することであって、最終的動きベクトルの精度は、現在の映像ブロックの記憶された動きベクトルの精度と同一である、判定することと、最終的動きベクトルに基づいて、ビットストリーム表現と現在の映像ブロックとの間で変換を行うことと、を含む。
【0006】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間で変換するために、現在の映像ブロックに関連付けられた各動きベクトルの解像度を適宜選択する符号化ツールを使用して、最終的動きベクトルを判定することであって、現在の映像ブロックはアフィンモードで符号化され、ビットストリーム表現は、現在の映像ブロックに関連付けられた動きベクトルの精度または動きベクトルの差を示す2つ以上のビットを含むフィールドを含む、判定することと、最終的動きベクトルに基づいて、ビットストリーム表現と現在の映像ブロックとの間の変換を実行することと、を含む。
【0007】
さらに別の代表的な態様において、上記方法は、処理装置が実行可能なコードの形式で実施され、コンピュータ可読プログラム媒体に記憶される。
【0008】
さらに別の代表的な態様において、上述した方法を行うように構成された、または動作可能なデバイスが開示される。この装置は、この方法を実装するようにプログラムされた処理装置を含んでもよい。
【0009】
さらに別の代表的な態様において、ビデオデコーダ装置は、本明細書で説明されるような方法を実装してもよい。
【0010】
開示される技術の上記および他の態様および特徴は、図面、説明および特許請求の範囲でより詳細に説明される。
【図面の簡単な説明】
【0011】
図1】マージ候補リストを構築する例を示す。
図2】空間的候補の位置の一例を示す。
図3】空間的マージ候補の冗長性チェックの対象となる候補対の例を示す。
図4A】現在のブロックのサイズおよび形状に基づく第2の予測ユニット(PU)の位置の例を示す。
図4B】現在のブロックのサイズおよび形状に基づく第2の予測ユニット(PU)の位置の例を示す。
図5】時間的マージ候補のための動きベクトルのスケーリングの例を示す。
図6】時間的マージ候補の候補位置の一例を示す図である。
図7】結合双予測マージ候補を生成する例を示す。
図8】動きベクトル予測候補の構築例を示す。
図9】空間的動きベクトル候補のための動きベクトルのスケーリングの例を示す。
図10】符号化ユニット(CU)のために代替の時間的動きベクトル予測(ATMVP)アルゴリズムを使用する動き予測の例を示す。
図11】空間的-時間的動きベクトル予測(STMVP)アルゴリズムで使用されるサブブロックおよび近傍のブロックを有する符号化ユニット(CU)の例を示す。
図12A】重複ブロック動き補償(OBMC)アルゴリズムを使用する場合のサブブロックの例示的なスナップショットを示す。
図12B】重複ブロック動き補償(OBMC)アルゴリズムを使用する場合のサブブロックの例示的なスナップショットを示す。
図13】ローカル照明補償(LIC)アルゴリズムのパラメータを導出するために使用される近傍のサンプルの例を示す。
図14】簡略化したアフィン動きモデルの一例を示す。
図15】サブブロックごとのアフィン動きベクトルフィールド(MVF)の例を示す。
図16】AF_INTERアフィン動きモードにおける動きベクトル予測(MVP)の例を示す。
図17A】それぞれ4パラメータおよび6パラメータアフィンモードの例を示す。
図17B】それぞれ4パラメータおよび6パラメータアフィンモードの例を示す。
図18A】AF_MERGEアフィン動きモードの候補の例を示す。
図18B】AF_MERGEアフィン動きモードの候補の例を示す。
図19】フレームレートアップ変換(FRUC)アルゴリズムに基づく特殊なマージモードである、パターンマッチング動きベクトル導出(PMMVD)モードにおけるバイラテラルマッチングの例を示す。
図20】FRUCアルゴリズムにおけるテンプレートマッチングの一例を示す。
図21】FRUCアルゴリズムにおけるユニラテラル動き推定の例を示す。
図22】映像処理のための例示的な方法のフローチャートを示す。
図23】映像処理の他の例示的な方法のフローチャートを示す。
図24】本明細書に記載されるビジュアルメディアの復号化またはビジュアルメディアの符号化技術を実装するためのハードウェアプラットフォームの一例を示すブロック図である。
図25】開示される技術が実装され得る例示的な映像処理システムのブロック図である。
【発明を実施するための形態】
【0012】
より高い解像度の映像の需要が増大しているため、近代技術において、映像符号化法および技術は、遍在している。ビデオコーデックは、一般的に、デジタル映像を圧縮または展開する電子回路またはソフトウェアを含み、より高い符号化効率を提供するように絶えず改良されている。ビデオコーデックは、非圧縮映像を圧縮フォーマットに変換する、またはその逆である。映像の品質、映像を表現するために使用されるデータの数(ビットレートで決まる)、エンコーディングおよびデコーディングアルゴリズムの複雑性、データの損失およびエラーに対する敏感さ、編集のしやすさ、ランダムアクセス、およびエンドツーエンドの遅延(待ち時間)の間には複雑な関係がある。この圧縮フォーマットは、通常、標準的な映像圧縮規格、例えば、高効率映像符号化(High Efficiency Video Coding、HEVC)規格(H.265またはMPEG-H Part 2としても知られている)[1]、完成させるべき汎用映像符号化規格、または他の現在および/または将来の映像符号化規格に準拠している。
【0013】
開示される技術の実施形態は、圧縮性能を向上させるために、既存の映像符号化規格(例えば、HEVC、H.265)および将来の規格に適用されてもよい。本明細書では、説明の可読性を向上させるために章の見出しを使用しており、説明または実施形態(および/または実装形態)をそれぞれの章のみに限定するものではない。
【0014】
1. HEVC/H.265におけるインター予測の例
映像符号化規格は、長年にわたって大幅に改善され、現在、部分的には、高いコーディング効率を実現し、より高い解像度をサポートする。HEVCおよびH.265などの最近の規格は、時間予測プラス変換コーディングが利用されるハイブリッド映像符号化構造に基づく。
【0015】
1.1 予測モードの例
各インター予測されたPU(予測ユニット)は、1つまたは2つの参照ピクチャリストのための動きパラメータを有する。いくつかの実施形態において、動きパラメータは、動きベクトルおよび参照ピクチャインデックスを含む。他の実施例において、2つの参照ピクチャリストのうちの1つの参照ピクチャリストの使用は、inter_pred_idcを用いて通知されてもよい。さらに他の実施形態において、動きベクトルは、予測子に対するデルタ(delta)として明確にコーディングされてもよい。
【0016】
1つのCUがスキップモードでコーディングされる場合、1つのPUがこのCUに関連付けられ、有意な残差係数がなく、コーディング動きベクトルデルタも参照ピクチャインデックスもない。マージモードを指定し、これにより、現在のPUのための動きパラメータを、空間的および時間的候補を含む近傍のPUから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたPUに適用することができる。マージモードの代替としては、動きパラメータの明確な送信があり、PUごとに、各参照ピクチャリストおよび参照ピクチャリストの使用に対応する参照ピクチャインデックスである、動きベクトルを明確に信号通知する。
【0017】
2つの参照ピクチャリストのうちの1つを使用することを信号通知が示す場合、1つのサンプルのブロックからPUを生成する。これを「単一予測」と呼ぶ。単一予測は、PスライスおよびBスライスの両方に利用可能である[2]。
【0018】
両方の参照ピクチャリストを使用することを信号通知が示す場合、2つのサンプルのブロックからPUを生成する。これを「双予測」と呼ぶ。Bスライスのみに双予測が利用可能である。
【0019】
1.1.1 マージモードの候補を構築する実施形態
マージモードを使用してPUを予測する場合、ビットストリームからマージ候補リストにおけるエントリを指すインデックスを構文解析し、これを使用して動き情報を検索する。このリストの構成は、以下のステップのシーケンスに基づいてまとめることができる。
【0020】
ステップ1:初期候補導出
ステップ1.1:空間的候補導出
ステップ1.2:空間的候補の冗長性チェック
ステップ1.3:時間的候補導出
ステップ2:追加候補挿入
ステップ2.1:双予測候補の作成
ステップ2.2:動きゼロ候補の挿入
【0021】
図1は、上記ステップのシーケンスに基づいて、マージ候補リストを構築する例を示す。空間的マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補を選択する。時間的マージ候補導出のために、2つの候補の中から最大1つのマージ候補を選択する。デコーダ側ではPUごとに一定数の候補を想定しているので、候補数がスライスヘッダで信号通知されるマージ候補(MaxNumMergeCand)の最大数に達しない場合、追加の候補を生成する。候補の数は一定であるので、短縮された単項2値化(TU)を使用して最良マージ候補のインデックスをエンコードする。CUのサイズが8に等しい場合、現在のCUのすべてのPUは、2N×2N予測ユニットのマージ候補リストと同じ1つのマージ候補リストを共有する。
【0022】
1.1.2 空間的マージ候補の構築
空間的マージ候補の導出において、図2に示す位置にある候補の中から、最大4つのマージ候補を選択する。導出の順序はA、B、B、A、Bである。位置A、B、B、AのいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはイントラコーディングされた場合にのみ、位置Bが考慮される。位置Aの候補を加えた後、残りの候補を加えると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、コーディング効率を向上させることができる。
【0023】
計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。その代わりに、図3の矢印で結ばれたペアのみを考慮し、冗長性チェックに使用された対応する候補が同じ動き情報を持っていない場合に、候補をリストに追加するのみである。重複した動き情報の別のソースは、2N×2Nとは異なるパーティションに関連付けられた「第2のPU」である。一例として、図4Aおよび図4Bは、それぞれ、N×2Nおよび2N×Nの場合の第2のPUを描いている。現在のPUをN×2Nに分割する場合、リスト構築に位置Aの候補は考慮されない。いくつかの実施形態において、この候補を加えることにより、2つの予測ユニットが同じ動き情報を有するようになり、1つのコーディングユニットに1つのPUのみを有することは冗長である。同様に、現在のPUを2N×Nに分割する場合、位置Bは考慮されない。
【0024】
1.1.3 時間的マージ候補の構築
このステップにおいて、1つの候補のみがリストに追加される。具体的には、この時間的マージ候補の導出において、所与の参照ピクチャリストにおける現在のピクチャとの間に最小のPOC差を有するピクチャに属する同一位置PUに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、同一位置PUの導出に用いられる参照ピクチャリストが明確に信号通知される。
【0025】
図5は、POC距離tb、tdを用いて、同一位置PUの動きベクトルからスケーリングされた、現在のピクチャの参照ピクチャと現在のピクチャとの間のPOC差をtbとし、同一位置ピクチャの参照ピクチャと同一位置ピクチャとの間のPOC差をtdとする、時間的マージ候補のためのスケーリングされた動きベクトル(点線)の導出の例を示す。時間的マージ候補の参照ピクチャインデックスをゼロに等しく設定する。Bスライスの場合、2つの動きベクトル、即ち、1つは参照ピクチャリスト0のためのもの、もう1つは参照ピクチャリスト1のためのものを取得し、これらを組み合わせることによって、双予測マージ候補を形成する。
【0026】
参照フレームに属する同一位置PU(Y)において、図6に示すように、候補Cと候補Cとの間で時間的候補の位置を選択する。位置CのPUが利用可能でない場合、イントラコーディングされている場合、または現在のCTUの外側にある場合、位置Cが使用される。そうでない場合、位置Cが時間的マージ候補の導出に使用される。
【0027】
1.1.4 追加タイプのマージ候補の構築
時空間的マージ候補の他に、2つの追加のタイプのマージ候補、すなわち、結合双予測マージ候補およびゼロマージ候補がある。時空間的マージ候補を利用して、結合双予測マージ候補を生成する。結合双予測マージ候補は、Bスライスのみに使用される。最初の候補の第1の参照ピクチャリスト動きパラメータと別の候補の第2の参照ピクチャリスト動きパラメータとを組み合わせることで、結合双予測候補を生成する。これら2つのタプルが異なる動き仮説を提供する場合、これらのタプルは、新しい双予測候補を形成する。
【0028】
図7は、このプロセスの例を示しており、mvL0、refIdxL0、またはmvL1、refIdxL1を有するオリジナルリスト(710、左側)における、2つの候補を使用して、最終リスト(720、右側)に加えられる結合双予測マージ候補を生成する。
【0029】
動きゼロ候補を挿入し、マージ候補リストにおける残りのエントリを埋めることにより、MaxNumMergeCand容量にヒットする。これらの候補は、空間的変位がゼロであり、新しいゼロ動き候補をリストに加える度にゼロから始まり増加する参照ピクチャインデックスを有する。これらの候補が使用する参照フレームの数は、それぞれ、一方向予測の場合は1つ、双方向予測の場合は2つである。いくつかの実施形態において、これらの候補に対して冗長性チェックは行われない。
【0030】
1.1.5 並列処理のための動き推定領域の例
エンコーディング処理を高速化するために、動き推定を並列に行うことができ、それによって、所与の領域内のすべての予測ユニットの動きベクトルを同時に導出する。1つの予測ユニットは、その関連する動き推定が完了するまで、隣接するPUから動きパラメータを導出することができないので、空間的近傍からのマージ候補の導出は、並列処理に干渉する可能性がある。コーディング効率と処理待ち時間との間のトレードオフを緩和するために、動き推定領域(MER)を規定することができる。「log2_parallel_merge_level_minus2」構文要素を使用して、ピクチャパラメータセット(PPS)においてMERのサイズを信号通知してもよい。1つのMERを規定するとき、同じ領域にあるマージ候補は使用不可としてマークされ、それゆえにリスト構築においては考慮されない。
【0031】
1.2 高度動きベクトル予測(AMVP)の実施形態
AMVPは、動きパラメータの明確な伝送に使用される、動きベクトルの近傍のPUとの空間的-時間的相関を利用する。まず、左側、上側の時間的に近傍のPU位置の可用性をチェックし、冗長な候補を取り除き、ゼロベクトルを加えることで、候補リストの長さを一定にすることで、動きベクトル候補リストを構築する。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。マージインデックスの信号通知と同様に、最良の動きベクトル候補のインデックスは、短縮された単項を使用してエンコードされる。この場合に符号化されるべき最大値は2である(図8参照)。以下の章では、動きベクトル予測候補の導出処理の詳細を説明する。
【0032】
1.2.1 動きベクトル予測候補の構築例
図8は、動きベクトル予測候補の導出処理をまとめたものであり、refidxを入力として、各参照ピクチャリストに対して実装されてもよい。
【0033】
動きベクトル予測において、空間的動きベクトル候補と時間的動きベクトル候補という2つのタイプの動きベクトル候補が考えられる。空間的動きベクトル候補を導出するために、最終的には、図2に示したように、5つの異なる位置にある各PUの動きベクトルに基づいて、2つの動きベクトル候補を導出する。
【0034】
時間的動きベクトル候補を導出するために、2つの異なる同じ場所に配置された位置に基づいて導出された2つの候補から1つの動きベクトル候補を選択する。第1の時空間的候補リストを作成した後、リストにおける重複した動きベクトル候補を除去する。候補の数が2よりも多い場合、関連づけられた参照ピクチャリストにおける参照ピクチャインデックスが1よりも大きい動きベクトル候補をリストから削除する。空間的―時間的動きベクトル候補の数が2未満である場合は、追加のゼロ動きベクトル候補をリストに加える。
【0035】
1.2.2 空間的動きベクトル候補の構築
空間的動きベクトル候補の導出において、前回図2に示したような位置にあるPUから導出された5つの候補のうち、最大2つの候補を考慮され、それらの位置は動きマージの位置と同じである。現在のPUの左側のための導出の順序は、A、A、スケーリングされたA、スケーリングされたAとして規定される。現在のPUの上側のための導出の順序は、B、B、B、スケーリングされたB、スケーリングされたB、スケーリングされたBとして規定される。そのため、辺ごとに、動きベクトル候補として使用できる場合は4つ、すなわち空間的スケーリングを使用する必要がない2つの場合と、空間的スケーリングを使用する2つの場合とがある。4つの異なる場合をまとめると、以下のようになる。
【0036】
--空間的スケーリングなし
(1)同じ参照ピクチャリスト、および同じ参照ピクチャインデックス(同じPOC)
(2)異なる参照ピクチャリストであるが、同じ参照ピクチャ(同じPOC)
--空間的スケーリング
(3)同じ参照ピクチャリストであるが、異なる参照ピクチャ(異なるPOC)
(4)異なる参照ピクチャリスト、および異なる参照ピクチャ(異なるPOC)
【0037】
まず、非空間的スケーリングの場合をチェックし、次に、空間的スケーリングを可能にする場合をチェックする。参照ピクチャリストにかかわらず、POCが近傍のPUの参照ピクチャと現在のPUの参照ピクチャとで異なる場合、空間的スケーリングを考慮する。左側候補のすべてのPUが利用可能でないか、またはイントラコーディングされている場合、上側の動きベクトルのスケーリングは、左側および上側MV候補の並列導出に役立つ。そうでない場合、上側の動きベクトルに対して空間的スケーリングは許可されない。
【0038】
図9の例に示すように、空間的スケーリングの場合は、時間的スケーリングの場合と同様に、近傍のPUの動きベクトルがスケーリングされる。1つの違いは、現在のPUの参照ピクチャリストおよびインデックスを入力として与え、実際のスケーリング処理は時間的スケーリングと同じであることである。
【0039】
1.2.3 時間的動きベクトル候補の構築
参照ピクチャインデックスを導出すること以外は、時間的マージ候補を導出するためのすべての処理は、空間的動きベクトル候補を導出するための処理と同じである(図6の例に示す)。いくつかの実施形態において、参照ピクチャインデックスはデコーダに信号通知される。
【0040】
2. 共同探索モデル(Joint Exploration Model:JEM)におけるインター予測方法の例
いくつかの実施形態において、将来の映像符号化技術は、Joint Exploration Model(JEM)[3][4]として知られる参照ソフトウェアを用いて検討される。JEMでは、サブブロックベースの予測は、アフィン予測、代替時間的動きベクトル予測(ATMVP)、空間的-時間的動きベクトル予測(STMVP)、双方向オプティカルフロー(BIO)、フレームレートアップ変換(FRUC)、ローカル適応動きベクトル解像度(LAMVR)、オーバーラップブロック動き補償(OBMC)、ローカル照明補償(LIC)、デコーダ側動きベクトル改良(DMVR)などの、いくつかの符号化ツールで適用されている。
【0041】
2.1 サブCUに基づく動きベクトル予測の例
4分木に2分木を加えたJEM(QTBT)において、各CUは、各予測方向に対して最大1つの動きパラメータのセットを有することができる。いくつかの実施形態において、エンコーダにおいて、ラージCUをサブCUに分割し、ラージCUのすべてのサブCUの動き情報を導出することにより、2つのサブCUレベルの動きベクトル予測方法を考慮する。代替的な時間的動きベクトル予測(ATMVP)方法により、各CUが、配列された参照ピクチャにおける現在のCUよりも小さい複数のブロックから複数の動き情報のセットをフェッチすることが可能となる。空間的-時間的動きベクトル予測(STMVP)法において、時間的動きベクトル予測子および空間的近傍動きベクトルを使用して、サブCUの動きベクトルを再帰的に導出する。いくつかの実施形態において、サブCU動き予測のためにより正確な動きフィールドを維持するために、参照フレームの動き圧縮は無効にされてもよい。
【0042】
2.1.1 代替の時間的動きベクトル予測(ATMVP)の例
ATMVP法において、時間的動きベクトル予測(TMVP)法は、現在のCUより小さいブロックから複数セットの動き情報(動きベクトルおよび参照インデックスを含む)を取り出すことで修正される。
【0043】
図10は、CU1000におけるATMVP動き予測処理の一例を示す。ATMVP法は、CU1000におけるサブCU1001の動きベクトルを2つのステップで予測する。第1のステップでは、参照ピクチャ1050における対応するブロック1051を時間的ベクトルで特定する。参照ピクチャ1050は、モーションソースピクチャとも呼ばれる。第2のステップでは、現在のCU1000をサブCU1001に分割し、各サブCUに対応するブロックから、各サブCUの動きベクトルおよび参照インデックスを得る。
【0044】
第1のステップにおいて、現在のCU1000の空間的に近傍のブロックの動き情報によって、参照ピクチャ1050および対応するブロックを判定する。近傍のブロックの繰り返し走査処理を回避するために、現在のCU1000のマージ候補リストにおける第1のマージ候補を用いる。第1の利用可能な動きベクトルおよびその関連する参照インデックスを、時間的ベクトルおよびモーションソースピクチャのインデックスに設定する。このように、TMVPに比べて、対応するブロックをより正確に特定することができ、対応するブロック(配列されたブロックと呼ばれることがある)は、常に現在のCUに対して右下または中心位置にある。
【0045】
第2のステップにおいて、現在のCUの座標に時間的ベクトルを加えることで、モーションソースピクチャ1050における時間的ベクトルによって、サブCU1051の対応するブロックを特定する。サブCUごとに、その対応するブロックの動き情報(例えば、中心サンプルを覆う最小の動きグリッド)を使用して、サブCUの動き情報を導出する。対応するN×Nブロックの動き情報を特定した後、HEVCのTMVPと同様に、現在のサブCUの動きベクトルおよび参照インデックスに変換され、動きスケーリングや他の手順が適用される。例えば、デコーダは、低遅延条件(例えば、現在のピクチャのすべての参照ピクチャのPOCが現在のピクチャのPOCよりも小さい)が満たされているかどうかをチェックし、場合によっては、動きベクトルMVx(例えば、参照ピクチャリストXに対応する動きベクトル)を使用して、各サブCUの動きベクトルMVy(例えば、Xが0または1に等しく、Yが1-Xに等しい)を予測する。
【0046】
2.1.2 空間的-時間的動きベクトル予測(STMVP)の例
STMVP法において、サブCUの動きベクトルは、ラスタスキャンの順に沿って再帰的に導出される。図11は、4つのサブブロックおよび近傍のブロックを有する1つのCUの例を示す。4つの4×4個のサブCU、A(1101)、B(1102)、C(1103)、およびD(1104)を含む8×8個のCU1100を考える。現在のフレームにおける近傍の4×4ブロックを、a(1111)、b(1112)、c(1113)、およびd(1114)とラベルする。
【0047】
サブCUのAの動きの導出は、その2つの空間的近傍を特定することで始まる。第1の近傍は、サブCU、A1101の上のN×Nブロックである(ブロックc1113)。このブロックc(1113)が利用可能でない、またはイントラ符号化されている場合、サブCU A(1101)の上の他のN×N個のブロックをチェックする(ブロックc1113から始まって左から右へ)。第2の近傍は、サブCU A1101の左側のブロックである(ブロックb1112)。ブロックb(1112)が利用可能でない、またはイントラ符号化されている場合、サブCU A1101の左側の他のブロックをチェックする(ブロックb1112から始まり、上から下へ)。各リストの近傍のブロックから得られた動き情報を、所与のリストの第1の参照フレームにスケーリングする。次に、HEVCに規定されているTMVP導出と同じ手順に従って、サブブロックA1101の時間的動きベクトル予測子(TMVP)を導出する。ブロックD1104における同一位置とされたブロックの動き情報がフェッチされ、それに応じてスケーリングされる。最後に、動き情報を検索し、スケーリングした後、参照リストごとにすべての利用可能な動きベクトルを別々に平均する。この平均化された動きベクトルを現在のサブCUの動きベクトルとする。
【0048】
2.1.3 サブCUの動き予測モード信号通知の例
いくつかの実施形態において、サブCUモードは追加のマージ候補として有効とされ、モードを信号通知するために追加の構文要素は必要とされない。ATMVPモードおよびSTMVPモードを表すように、各CUのマージ候補リストに2つの追加のマージ候補を加える。他の実施形態において、シーケンスパラメータセットがATMVPおよびSTMVPが有効であることを示す場合、7個までのマージ候補を使用してもよい。追加のマージ候補のエンコーディングロジックは、HMにおけるマージ候補の場合と同じであり、つまり、PまたはBスライスにおける各CUについて、2つの追加のマージ候補に対して2回以上のRDチェックが必要となる可能性がある。いくつかの実施形態において、例えばJEMのように、マージインデックスのすべての2値(bin)はコンテキストベースの適応型バイナリ算術コーディング(CABAC)によりコンテキストコーディングされる。他の実施形態、例えばHEVCにおいては、第1の2値のみがコンテキストコーディングされ、残りの2値はコンテキストバイパスコーディングされる。
【0049】
2.2 適応動きベクトル差解像度の例
本発明の実施例中において、use_integer_mv_flagがスライスヘッダにおいて0であるとき、4分の1輝度サンプルの単位で動きベクトルの差(MVD)(動きベクトルとPUの予測動きベクトルとの間)を信号通知される。JEMにおいて、ローカル適応動きベクトル解像度(LAMVR)が導入される。JEMにおいて、MVDは、1/4輝度サンプル、整数輝度サンプルまたは4つの輝度サンプルの単位でコーディングできる。MVD分解能はコーディングユニット(CU)レベルで制御され、MVD解像度フラグは、少なくとも1つのノンゼロMVDモジュールを有する各CUに対して条件付きで信号通知される。
【0050】
少なくとも1つのノンゼロMVDモジュールを有するCUの場合、1/4輝度サンプルMV精度がCUにおいて使用されるかどうかを示すために、第1のフラグが信号通知される。第1のフラグ(1に等しい)が、1/4輝度サンプルMV精度が使用されていないことを示す場合、整数輝度サンプルMV精度が使用されるかまたは4輝度サンプルMV精度が使用されるかを示すために、別のフラグが信号通知される。
【0051】
CUの第1のMVD解像度フラグがゼロであるか、またはCUに対してコーディングされていない(つまり、CUにおけるすべてのMVDがゼロである)場合、CUに対して1/4輝度サンプルMV解像度が使用される。CUが整数輝度サンプルMV精度または4輝度サンプルMV精度を使用する場合、CUのAMVP候補リストにおけるMVPを対応する精度に丸める。
【0052】
エンコーダにおいて、CUレベルのRDチェックは、どのMVD解像度をCUに用いるかを決定するために用いられる。すなわち、1つのMVD解像度ごとに3回、CUレベルのRDチェックを行う。エンコーダの速度を速めるために、JEMにおいては、以下の符号化方式が適用される。
【0053】
--通常の1/4輝度サンプルMVD解像度を有するCUのRDチェック中、現在のCUの動き情報(整数輝度サンプル精度)が記憶される。整数輝度サンプルおよび4輝度サンプルのMVD解像度を有する同じCUのRDチェック中に、記憶された動き情報(丸められた後)は、更なる小範囲動きベクトル改良の開始点として使用されるので、時間がかかる動き推定処理が3回重複しない。
【0054】
--4輝度サンプルMVD解像度を有するCUのRDチェックを条件付きで呼び出す。CUの場合、整数輝度サンプルMVD解像度のRDコストが1/4輝度サンプルMVD解像度のそれよりもはるかに大きい場合、CUのための4輝度サンプルMVD解像度のRDチェックは省略される。
【0055】
2.3 動きベクトルの記憶精度を向上させる例
HEVCにおいて、動きベクトルの精度は、1/4画素(4:2:0映像の場合、1/4輝度サンプルおよび1/8クロマサンプル)である。JEMにおいて、内部の動きベクトルの記憶およびマージ候補の精度は、1/16画素にまで向上する。スキップ/マージモードで符号化されたCUの動き補償インター予測には、より高い動きベクトル精度(1/16画素)が用いられる。通常のAMVPモードで符号化されたCUの場合、整数画素または1/4画素の動きのいずれかが使用される。
【0056】
HEVC動き補償補間フィルタと同じフィルタ長と正規化係数を有するSHVCアップサンプリング補間フィルタを、追加の分数画素位置の動き補償補間フィルタとして使用する。JEMにおいて、クロマ成分の動きベクトルの精度は1/32サンプルであり、近傍の2つの1/16画素の分数位置のフィルタの平均を用いて、1/32画素の分数位置の追加の補間フィルタを導出する。
【0057】
2.4 重複ブロック動き補償(OBMC)の例
JEMにおいて、OBMCは、CUレベルの構文を使用してオン/オフを切り替えることができる。JEMにおいてOBMCを使用する場合、OBMCは、CUの右下の境界を除くすべての動き補償(MC)ブロック境界に対して実行される。また、輝度およびクロマ成分の両方に適用される。JEMにおいて、MCブロックは符号化ブロックに対応する。CUがサブCUモードで符号化された(サブCUマージ、アフィン、およびFRUCモードを含む)場合、CUの各サブブロックは1つのMCブロックである。均一にCU境界を処理するために、OBMCは、すべてのMCブロック境界に対してサブブロックレベルで実行され、ここで、サブブロックサイズは、図12A、12Bに示すように、4×4に等しく設定される。
【0058】
図12Aは、CU/PU境界におけるサブブロックを示し、斜線を付けたサブブロックは、OBMCが適用される場所である。同様に、図12Bは、ATMVP モードのサブPUを示す。
【0059】
OBMCが現在のサブブロックに適用される場合、現在の動きベクトルの他に、4つの接続された近傍のサブブロックの動きベクトルも、利用可能であり、現在の動きベクトルと同一でない場合には、現在のサブブロックのための予測ブロックを導出するために使用される。複数の動きベクトルに基づくこれらの複数の予測ブロックを組み合わせ、現在のサブブロックの最終予測信号を生成する。
【0060】
近傍のサブブロックの動きベクトルに基づく予測ブロックをPN(Nは、近傍の上、下、左、右のサブブロックのインデックス)とし、現在のサブブロックの動きベクトルに基づく予測ブロックをPCとする。PNが現在のサブブロックと同じ動き情報を含む近傍のサブブロックの動き情報に基づく場合、OBMCはPNから行われない。そうでない場合、PNのすべてのサンプルをPC内の同じサンプルに加える。すなわち、PNの4つの行/列をPCに加える。PNには重み係数{1/4,1/8,1/16,1/32}を用い、PCには重み係数{3/4,7/8,15/16,31/32}を用いる。例外は、小さなMCブロック(すなわち、符号化ブロックの高さまたは幅が4に等しいか、または1つのCUがサブCUモードで符号化された場合)であり、その場合、2つの行/列のPNのみがPCに追加される。この場合、PNに対して重み係数{1/4,1/8}が使用され、PCに対して重み係数{3/4,7/8}が使用される。垂直(水平)方向に近傍のサブブロックの動きベクトルに基づいて生成されたPNに対して、PNの同じ行(列)におけるサンプルを、同じ重み係数でPCに加算する。
【0061】
JEMにおいて、サイズが256輝度サンプル以下のCUの場合、現在のCUに対してOBMCが適用されているかどうかを示すように、CUレベルフラグが信号通知される。サイズが256輝度サンプルよりも大きい、またはAMVPモードで符号化されていないCUの場合、OBMCがデフォルトで適用される。エンコーダにおいて、OBMCがCUに適用される場合、その影響は動き推定ステージ中に考慮される。上側近傍のブロックおよび左側近傍のブロックの動き情報を用いてOBMCにより形成された予測信号は、現在のCUの元の信号の上側および左側の境界を補償するために用いられ、その後、通常の動き推定処理が適用される。
【0062】
2.5 ローカル照明補償(LIC)の例
LICは、倍率aおよびオフセットbを用いて、照明変化の線形モデルに基づく。そして、各インターモードコーディングユニット(CU)に対して適宜有効または無効とされる。
【0063】
LICがCUに適用される場合、現在のCUの近傍のサンプルおよびそれらに対応する参照サンプルを使用することによって、パラメータaおよびbを導出するために、最小二乗誤差法が使用される。図13は、ICアルゴリズムのパラメータを導出するために使用される近傍のサンプルの例を示す。具体的には、図1に示すようになる。具体的には、図13に示すように、CUのサブサンプリング(2:1のサブサンプリング)された近傍サンプルと、参照ピクチャ内の対応するサンプル(現在のCUまたはサブCUの動き情報によって特定される)とが使用される。ICパラメータは、各予測方向に対して別々に導出され、適用される。
【0064】
1つのCUがマージモードで符号化される場合、マージモードにおける動き情報のコピーと同様に、近傍のブロックからLICフラグをコピーし、そうでない場合、CUにLICフラグを信号通知してLICが適用されるかどうかを示す。
【0065】
1つのピクチャに対してLICが有効化されるとき、1つのCUに対してLICが適用されるかどうかを判定するために、追加のCUレベルRDチェックが必要である。CUのためにLICが有効化される場合、整数画素動き探索および小数画素動き探索のために、SADおよびSATDの代わりに、それぞれ、絶対差の平均除去和(MR-SAD)および絶対アダマール変換差の平均除去和(MR-SATD)が使用される。
【0066】
符号化の複雑性を低減するために、JEMにおいては、以下のエンコーディング方式が適用される。
【0067】
--現在の画像とその参照ピクチャとの間に明瞭な照度変化がない場合、LICは画像全体に対して無効にされる。この状況を特定するために、エンコーダにおいて、現在のピクチャおよび現在のピクチャのすべての参照ピクチャのヒストグラムを計算する。現在のピクチャと現在のピクチャのすべての参照ピクチャとの間のヒストグラム差が所与の閾値よりも小さい場合、現在のピクチャに対してLICを無効化し、そうでない場合、現在のピクチャに対してLICを有効化する。
【0068】
2.6 アフィン動き補償予測の例
HEVCにおいて、動き補償予測(MCP)のために並進運動モデルのみが適用される。しかしながら、カメラおよび対象物は、様々な種類の動き、例えば、ズームイン/ズームアウト、回転、透視運動、および/または他の不規則な動きを有してもよい。一方、JEMは、簡易アフィン変換動き補償予測を適用する。図14は、2つの制御点動きベクトルVおよびVによって記述されるブロック1400のアフィン動きフィールドの例を示す。ブロック1400の動きベクトルフィールド(MVF)は、以下の式で表すことができる。
【0069】
【数1】
【0070】
図14に示すように、(vx,vy)は左上隅の制御点の動きベクトルであり、(vx,vy)は右上隅の制御点の動きベクトルである。動き補償予測を簡単にするために、サブブロックに基づくアフィン変換予測を適用することができる。サブブロックのサイズM×Nは、以下のように導出される。
【0071】
【数2】
【0072】
ここで、MvPreは、動きベクトルの分数精度(例えば、JEMでは1/16)である。(vx,vy)は、式(1)に従って算出された左下制御点の動きベクトルである。必要であれば、MおよびNを下方に調整して、それぞれwおよびhの除数にすることができる。
【0073】
図15は、ブロック1500のためのサブブロックごとのアフィンMVFの例を示す。各M×Nサブブロックの動きベクトルを導出するためには、各サブブロックの中心サンプルの動きベクトルを式(1)に従って算出し、動きベクトルの分数精度(例えば、JEMでは1/16)に丸めればよい。次に、動き補償補間フィルタを適用して、導出された動きベクトルを用いて各サブブロックの予測を生成することができる。MCPの後、各サブブロックの高精度動きベクトルを丸め、通常の動きベクトルと同じ精度で保存する。
【0074】
2.6.1 AF_INTERモードの実施形態
JEMにおいて、2つのアフィン動きモード、AF_INTERモードおよびAF_MERGEモードがある。幅と高さの両方が8より大きいCUの場合、AF_INTERモードを適用することができる。AF_INTERモードが使用されるかどうかを示すために、ビットストリームにおいてCUレベルのアフィンフラグが信号通知される。AF_INTERモードにおいて、近傍のブロックを用いて動きベクトル対
【0075】
【数3】
【0076】
を有する候補リストを構築する。
【0077】
図16は、AF_INTERモードにおけるブロック1600のための動きベクトル予測(MVP)の例を示す。図16に示すように、vは、サブブロックA、B、またはCの動きベクトルから選択される。近傍のブロックからの動きベクトルは、参照リストに従ってスケーリングすることができる。また、動きベクトルは、近傍のブロックの参照のピクチャオーダカウント(PIC)と、現在のCUの参照のPOCと、現在のCUのPOCとの間の関係に基づいてスケーリングされてもよい。近傍のサブブロックDおよびEからvを選択する方法は類似している。候補リストの数が2未満である場合、AMVP候補の各々を複製した動きベクトル対でリストを埋める。候補リストが2よりも大きい場合、まず、近傍の動きベクトルに基づいて(例えば、対候補における2つの動きベクトルの類似性に基づいて)候補をソートする。いくつかの実装形態において、最初の2つの候補を保持する。いくつかの実施形態において、レート歪み(RD)コストチェックを用いて、どの動きベクトル対候補を現在のCUの制御点動きベクトル予測(CPMVP)として選択するかを判定する。ビットストリームにおいて、候補リストにおけるCPMVPの位置を示すインデックスを信号通知することができる。現在のアフィンCUのCPMVPを判定した後、アフィン動き推定を適用し、制御点動きベクトル(CPMV)を求める。次に、CPMVとCPMVPとの差をビットストリームにおいて信号通知する。
【0078】
AF_INTERモードにおいて、4/6パラメータアフィンモードが使用される場合、2/3個の制御点が必要であり、従って、図17A、17Bに示すように、これらの制御点のために2/3個のMVDを符号化することが必要である。既存の実装形態[5]において、MVは、例えば、mvdからmvdおよびmvdを予測することで、以下のように導出されてもよい。
【0079】
【数4】
【0080】
ここでm ̄v ̄、mvd、mvは、それぞれ、図18Bに示すように、左上の画素(i=0)、右上の画素(i=1)、左下の画素(i=2)の予測動きベクトル、動きベクトルの差分、動きベクトルである。いくつかの実施形態において、2つの動きベクトル(例えば、mvA(xA,yA)およびmvB(xB,yB))の加算は、2つの成分を別々に合計することに等しい。例えば、newMV=mvA+mvBは、newMVの2つの成分を、それぞれ(xA+xB)および(yA+yB)に設定することを意味する。
【0081】
2.6.2 AF_INTERモードにおける高速アフィンMEアルゴリズムの例
アフィンモードのいくつかの実施形態において、2つまたは3つの制御点のMVは、一緒に判定される必要がある。複数のMVをまとめて直接検索することは、計算が複雑である。一例において、高速アフィンMEアルゴリズム[6]が提案され、VTM/BMSに採用される。
【0082】
例えば、4パラメータアフィンモデルに対して高速アフィンMEアルゴリズムを説明し、この考えを6パラメータアフィンモデルに拡張することができる。
【0083】
【数5】
【0084】
【数6】
【0085】
(a-1)をa’に置き換えることにより、動きベクトルを以下のように書き換えることができる。
【0086】
【数7】
【0087】
2つの制御点(0,0)および(0,w)の動きベクトルが既知であると仮定すると、式(5)から、アフィンパラメータは、以下のように導出されてもよい。
【0088】
【数8】
【0089】
動きベクトルは、ベクトルの形で以下のように書き換えることができる。
【0090】
【数9】
【0091】
ここで、P=(x,y)は、画素位置である。
【0092】
【数10】
【0093】
いくつかの実施形態において、エンコーダにおいて、AF_INTERのMVDは反復して導出されることができる。MV(P)を位置Pのi番目の反復で導出されたMVとし、dMV をi番目の反復でMVに対して更新されたデルタとして示す。次に、(i+1)番目の繰り返しにおいて、
【0094】
【数11】
【0095】
Picrefを参照ピクチャとし、Piccurを現在のピクチャとし、Q=P+MV(P)を表す。MSEをマッチング基準として用いる場合、最小化する必要がある関数は、以下のように表されてもよい。
【0096】
【数12】
【0097】
(dMV が十分に小さいと仮定すると、Picref(Q+A(P)*(dMV )は、1次のテイラー展開に基づく近似として、以下のように書き換えられてもよい。
【0098】
【数13】
【0099】
ここで、
【0100】
【数14】
【0101】
である。Ei+1(P)=Piccur(P)-Picref(Q)の表記を採用する場合、以下のようになる。
【0102】
【数15】
【0103】
誤差関数の導関数をゼロに設定し、次に、A(P)*(dMV に基づいて、制御点(0,0)および(0,w)のデルタMVを以下のように算出することで、項dMV を導出することができる。
【0104】
【数16】
【0105】
【数17】
【0106】
【数18】
【0107】
【数19】
【0108】
いくつかの実施形態において、このMVD導出処理をn回繰り返し、次のようにして最終MVDを算出することができる。
【0109】
【数20】
【0110】
【数21】
【0111】
【数22】
【0112】
【数23】
【0113】
上記実装形態[5]において、mvdで表される制御点(0,0)のデルタMVから、mvdで表される制御点(0,w)のデルタMVを予測することは、mvdに対して
【0114】
【数24】
【0115】
の場合のみ符号化されることになる。
【0116】
2.6.3 AF_MERGEモードの実施形態
AF_MERGEモードにおいてCUを適用する場合、CUは、有効な近傍の再構築ブロックから、アフィンモードで符号化された第1のブロックを得る。図18Aは、現在のCU1800のための候補ブロックの選択順序の例を示す。図18Aに示すように、選択順序は、現在のCU1800の左(1801)、上(1802)、右(1803)、左下(1804)、左上(1805)の順とすることができる。図18Bは、AF_MERGEモードにおける現在のCU1800の候補ブロックの別の例を示す。近傍の左下ブロック1801がアフィンモードで符号化されている場合、図18Bに示すように、サブブロック1801を含むCUの左上隅、右上隅、左下隅の動きベクトルv、v、vが導出される。v2、v3、v4に基づいて、現在のCU1800における左上隅の動きベクトルvを算出する。従って、現在のCUの右上の動きベクトルv1を算出することができる。
【0117】
式(1)のアフィン運動モデルに従って現在のCUv0,v1のCPMVを計算した後、現在のCUのMVFを生成することができる。現在のCUがAF_MERGEモードで符号化されているかどうかを識別するために、アフィンモードで符号化されている近傍のブロックが少なくとも1つある場合、ビットストリーム内にアフィンフラグを信号通知することができる。
【0118】
2.7 パターンマッチング動きベクトル導出(PMMVD)の例
PMMVDモードは、フレームレートアップ変換(FRUC)法に基づく特殊マージモードである。このモードでは、ブロックの動き情報は信号通知されず、デコーダ側で導出される。
【0119】
FRUCフラグは、そのマージフラグが真である場合、CUに信号通知され得る。FRUCフラグが偽である場合、マージインデックスを信号通知することができ、通常のマージモードが使用される。FRUCフラグが真である場合、追加のFRUCモードフラグを信号通知して、どの方法(例えば、バイラテラルマッチングまたはテンプレートマッチング)を使用してブロックの動き情報を導出するかを示すことができる。
【0120】
エンコーダ側では、CUのためにFRUCマージモードを使用するかどうかの決定は、通常のマージ候補に対して行われるのと同じように、RDコストの選択に基づく。例えば、RDコスト選択を使用して、1つのCUに対して複数のマッチングモード(例えば、バイラテラルマッチングおよびテンプレートマッチング)をチェックする。最小コストに導くものが、他のCUモードと比較される。FRUCマッチングモードが最も効率的なものである場合、CUに対してFRUCフラグを真に設定し、関連するマッチングモードを使用する。
【0121】
一般的に、FRUCマージモードにおける動き導出処理では、まずCUレベルの動き探索が行われ、次にサブCUレベルの動き改良を行うという2つのステップを有する。CUレベルでは、バイラテラルマッチングまたはテンプレートマッチングに基づいて、CU全体のための初期の動きベクトルを導出する。まず、MV候補のリストを生成し、最小マッチングコストに導く候補を、さらなるCUレベル改善の開始点として選択する。そして、開始点付近でのバイラテラルマッチングまたはテンプレートマッチングに基づく局所検索を行う。最小マッチングコストにおけるMVの結果を、CU全体のMVとする。続いて、導出されたCU動きベクトルを開始点として、サブCUレベルでの動き情報をさらに改良する。
【0122】
例えば、W×H CU動き情報導出のために、以下の導出処理を行う。第1のステージにおいて、W×H CU全体のためのMVが導出される。第2のステージにおいて、CUは、M×M個のサブCUにさらに分割される。Mの値は、式(3)のように計算されるが、Dは、予め規定された分割深さであり、JEMにおいてデフォルトで3に設定される。
そして、各サブCUのMVを導出する。
【0123】
【数25】
【0124】
図19は、フレームレートアップ変換(FRUC)法で使用されるバイラテラルマッチングの例を示す。このバイラテラルマッチングは、2つの異なる参照ピクチャ(1910、1911)における現在のCU(1900)の動き軌跡に沿った2つのブロック間の最も近いマッチングを見出すことで、現在のCUの動き情報を導出するために用いられる。連続した動き軌跡を仮定すると、2つの参照ブロックを指す動きベクトルMV0(1901)、MV1(1902)は、現在のピクチャと2つの参照ピクチャとの間の時間的距離に比例し、例えば、TD0(1903)、TD1(1904)である。いくつかの実施形態において、現在のピクチャ1900が2つの参照ピクチャ(1910、1911)の間にあり、現在のピクチャから2つの参照ピクチャまでの時間的距離が同じである場合、バイラテラルマッチングはミラーに基づく双方向MVとなる。
【0125】
図20は、フレームレートアップ変換(FRUC)法で使用されるテンプレートマッチングの例を示す。テンプレートマッチングを使用して、現在のピクチャにおけるテンプレート(例えば、現在のCUの上側および/または左側の近傍のブロック)と参照ピクチャ2010におけるブロック(例えば、テンプレートと同じサイズ)との間の最も近いマッチングを見出すことで、現在のCU2000の動き情報を導出することができる。前述のFRUCマージモード以外に、テンプレートマッチングは、AMVPモードにも適用できる。JEMおよびHEVCの両方において、AMVPは2つの候補を有する。テンプレートマッチング法を用いることで、新しい候補を導出することができる。テンプレートマッチングによって新規に導出された候補が、第1の既存のAMVP候補と異なる場合、AMVP候補リストの最初に挿入し、次に、(例えば、第2の既存のAMVP候補を取り除くことによって)リストサイズを2に設定する。AMVPモードに適用される場合、CUレベル検索のみが適用される。
【0126】
CUレベルのMV候補セットは、以下を含むことができる。(1)現在のCUがAMVPモードにある場合、元のAMVP候補、(2)すべてのマージ候補、(3)補間されたMVフィールド内の複数のMV(後述)、および左上の近傍の動きベクトル。
【0127】
バイラテラルマッチングを使用する場合、マージ候補の各有効なMVを入力として使用して、バイラテラルマッチングを仮定してMV対を生成することができる。例えば、マージ候補の1つの有効なMVは、参照リストAにおいて(MVa,ref)である。そして、その対をなすバイラテラルMVの参照ピクチャrefが他の参照リストBにおいて見出され、refおよびrefは、時間的に現在のピクチャの異なる側にある。参照リストBにおいてこのようなrefが利用可能でない場合、refをrefとは異なる参照として決定し、現在のピクチャとの時間的距離はリストBにおける最小値である。refを決定した後、現在のピクチャとref,refとの時間距離に基づいてMVaをスケーリングすることでMVbを導出する。
【0128】
いくつかの実装形態において、補間されたMVフィールドからの4つのMVをCUレベル候補リストに追加してもよい。具体的には、現在のCUの(0,0)、(W/2,0)、(0,H/2)、(W/2,H/2)の位置の補間MVを加算する。AMVPモードでFRUCを適用する場合、元のAMVP候補をCUレベルMV候補セットにも加える。いくつかの実装形態において、CUレベルにおいて、AMVP CUのための15個のMVおよびマージCUに対し、13個のMVを候補リストに加えることができる。
【0129】
サブCUレベルのMV候補セットは、CUレベルの検索によって決定されたMVと、(2)上、左、左上、右上の近傍のMVと、(3)参照ピクチャからの配列されたMVのスケーリングされたバージョンと、(4)1つ以上(例えば、4つまで)のATMVP候補と、(5)1つ以上(例えば、4つまで)のSTMVP候補とを含む。参照ピクチャからのスケーリングされたMVは、以下のように導出される。両方のリストにおける参照ピクチャをトラバースする。参照ピクチャにおけるサブCUの配列位置にあるMVは、開始CUレベルMVの参照に対してスケーリングされる。ATMVPおよびSTMVPの候補は、最初の4つの候補であってもよい。サブCUレベルにおいて、1つ以上(例えば、最大17個)のMVが候補リストに追加される。
【0130】
補間MVフィールドの生成。あるフレームをコーディングする前に、片側MEに基づいてピクチャ全体に対して補間動きフィールドを生成する。そして、この動きフィールドを後にCUレベルまたはサブCUレベルのMV候補として使用してもよい。
【0131】
いくつかの実施形態において、両方の参照リストにおける各参照ピクチャの動きフィールドは、4×4ブロックレベルでトラバースされる。図21は、FRUC方法におけるユニラテラル動き推定(ME)2100の例を示す。各4×4ブロックにおいて、現在のピクチャの4×4ブロックを通過するブロックに関連する動きで、補間動きがまだ割り当てられていない場合、時間距離TD0およびTD1に基づいて(HEVCにおけるTMVPのMVスケーリングと同様に)、参照ブロックの動きを現在のピクチャにスケーリングし、スケーリングされた動きを現在のフレームのブロックに割り当てる。スケーリングされないMVが4×4ブロックに割り当てられる場合、ブロックの動きは、補間された動きフィールドにおいて利用不可能であるとマークされる。
【0132】
補間およびマッチングコスト。1つの動きベクトルが1つの小数のサンプル位置を指す場合、動き補償補間が必要である。複雑性を低減するために、通常の8タップHEVC補間の代わりに、バイラテラルマッチングおよびテンプレートマッチングの両方に双線形補間を使用できる。
【0133】
マッチングコストの計算は、異なるステップでは少し異なる。CUレベルの候補セットから候補を選択する場合、マッチングコストは、バイラテラルマッチングまたはテンプレートマッチングの絶対和差(SAD)であってもよい。開始MVを決定した後、サブCUレベル検索におけるバイラテラルマッチングのマッチングコストCを以下のように算出する。
【0134】
【数26】
【0135】
ここで、wは重み係数である。いくつかの実施形態において、wは経験的に4に設定されてもよい。MVおよびMVは、それぞれ、現在のMVおよび開始MVを示す。SADは、依然として、サブCUレベル検索におけるテンプレートマッチングのマッチングコストとして使用されてもよい。
【0136】
FRUCモードにおいて、MVは、輝度サンプルのみを使用することによって導出される。導出された動きは、MCインター予測のために、輝度およびクロマの両方に使用される。MVを決定した後、輝度用の8タップ補間フィルタおよびクロマ用の4タップ補間フィルタを使用して、最終的なMCを行う。
【0137】
MV改良は、バイラテラルマッチングコストまたはテンプレートマッチングコストの基準を有するパターンに基づくMV検索である。JEMでは、2つの検索パターン、即ち、無制限中心バイアス菱形検索(UCBDS)およびCUレベルおよびサブCUレベルでのMV改良のための適応クロス検索をそれぞれサポートする。CUおよびサブCUレベルのMV改善の両方のために、MVは、1/4輝度サンプルMVの正確度で直接検索され、これに続いて1/8輝度サンプルMVの改良が行われる。CUおよびサブCUステップのためのMV改良の検索範囲は、8つの輝度サンプルに等しく設定される。
【0138】
バイラテラルマッチングマージモードにおいては、双予測が適用される。なぜなら、2つの異なる参照ピクチャにおける現在のCUの動き軌跡に沿った2つのブロック間の最も近いマッチングに基づいて、CUの動き情報を導出するからである。テンプレートマッチングマージモードにおいて、エンコーダは、list0からの単一予測、list1からの単一予測、またはCUのための双予測のうちから選択することができる。選択は、テンプレートマッチングコストに基づいて、以下のように行うことができる。
【0139】
costBi<=factor*min(cost0,cost1)の場合
双予測を用いる。
それ以外の場合、cost0<=cost1
list0からの単一予測を用いる。
そうでない場合、
list1からの単一予測を用いる。
【0140】
ここで、cost0はlist0テンプレートマッチングのSADであり、cost1はlist1テンプレートマッチングのSADであり、costBiは双予測テンプレートマッチングのSADである。例えば、factorの値が1.25である場合、選択処理が双予測に偏っていることを意味する。このインター予測方向選択は、CUレベルのテンプレートマッチング処理に適用することができる。
【0141】
3. 既存の実装形態の欠点
いくつかの既存の実装形態において、MV/MV差(MVD)をアフィン符号化ブロックのための1組の複数のMV/MVD精度のセットから選択することができる場合、より正確な動きベクトルをどのようにして取得することができるかは、依然として不確定である。
【0142】
他の既存の実装形態において、MV/MVD精度情報は、アフィンモードに適用されるAMVRの全体的な符号化利得の判定においても重要な役割を果たすが、この目標を達成するかどうかは依然として不確定である。
【0143】
4. AMVRを用いるアフィンモード用のMV予測子のための例示的な方法
本開示の技術の実施形態は、既存の実装の欠点を克服し、それにより、より高い符号化効率を有する映像符号化を提供する。開示された技術に基づいて、適応動きベクトル解像度(AMVR)を有するアフィンモード用の動きベクトル予測子を導出し、信号通知することにより、既存のおよび将来の映像符号化規格の両方を向上させることができ、様々な実装形態に対して説明する以下の例で明らかにする。以下に提供される開示される技術の例は、一般的な概念を説明するものであり、限定するものと解釈されるべきではない。一例において、明確に反対の指示がない限り、これらの例に記載されている様々な特徴を組み合わせることができる。
【0144】
いくつかの実施形態において、AMVRが適用されるとき、アフィンモードまたはノーマルモードに次のような例を適用することができる。これらの例は、AF_INTERモードでMVDを符号化するため、または通常のインターモードでMVDを符号化するために、精度Prec(即ち、MVは1/(2^Prec)の精度を有する)を使用すると仮定する。動きベクトル予測子(例えば、近傍のブロックMVから継承される)およびその精度を、それぞれMVPred(MVPred,MVPred)、PredPrecと表す。
【0145】
例1 最終的なMV精度は変化させず、即ち記憶されるべき動きベクトルの精度と同じに維持されることが提案される。
(a)一例において、最終MV精度は、1/16画素または1/8画素に設定されてもよい。
(b)一例において、信号通知されたMVDは、まずスケーリングされ、次にMVPに加えられ、1つのブロックのための最終MVを形成する。
【0146】
例2 まず、近傍のブロック(例えば、空間的または時間的)またはデフォルトMVPから直接導出されたMVPを修正し、次に、信号通知されたMVDに加えて、(現在の)ブロックのための最終MVを形成することができる。
(a)代替的に、MVPの修正を適用するかどうか、およびどのように適用するかは、Precの異なる値ごとに異なってもよい。
(b)一例において、Precが1よりも大きい(すなわち、MVDが分数精度である)場合、近傍のMVの精度は変更されず、スケーリングは実行されない。
(c)一例において、Precが1に等しい(すなわち、MVDが1画素の精度を有する)場合、MV予測子(すなわち、近傍のブロックのMV)をスケーリングする必要がある。
(d)一例において、Precが1よりも小さい(すなわち、MVDが4画素精度である)場合、MV予測子(すなわち、近傍のブロックのMV)をスケーリングする必要がある。
【0147】
例3 一例において、MVD信号の精度が記憶されたMVの精度と同じである場合、アフィンMVを再構築した後、スケーリングは必要とされず、そうでない場合、MVは、信号通知されたMVDの精度で再構成され、その後、記憶されたMVの精度にスケーリングされる。
【0148】
例4 一例において、通常インターモードおよびAF_INTERモードは、上述された異なる例に基づいて実装形態を選択してもよい。
【0149】
例5 一例において、アフィンモードのためのMV/MVD精度を示すための構文要素(または2ビット以上のビット、例えば2ビットを含むフィールド)が、以下の意味論で信号通知されてもよい。
(a)一例において、0、1、および2に等しい構文要素は、それぞれ、1/4画素、1/16画素、および1画素のMV精度を示す。
(b)あるいは、アフィンモードにおいて、0、1、および2に等しい構文要素は、それぞれ1/4画素、1画素、および1/16画素のMV精度を示す。
(c)あるいは、アフィンモードにおいて、0、1、および2に等しい構文要素は、それぞれ1/16画素、1/4画素、および1画素のMV精度を示す。
【0150】
例6 一例において、アフィンモードのためにAMVRを有効化するかまたは無効化するかは、SPS、PPS、VPS、シーケンス/ピクチャ/スライスヘッダ/タイル等において信号通知されてもよい。
【0151】
例7 一例において、許可されたMV/MVD精度の指示は、SPS、PPS、VPS、シーケンス/ピクチャ/スライスヘッダ/タイル等において信号通知されてもよい。
(a)選択されたMVD精度の指示は、各符号化ツリーユニット(CTU)および/または各領域に信号通知されてもよい。
(b)許容されるMV/MVD精度のセットは、現在のブロックの符号化モード(例えば、アフィンまたは非アフィン)に依存し得る。
(c)許容されるMV/MVD精度のセットは、スライスタイプ/時間層インデックス/低遅延チェックフラグに依存し得る。
(d)許容されるMV/MVD精度のセットは、現在のブロックまたは近傍のブロックのブロックサイズおよび/またはブロック形状に依存し得る。
(e)許容されるMV/MVD精度のセットは、復号化ピクチャバッファに記憶されるべきMVの精度に依存し得る。
【0152】
(i)一例において、記憶されたMVがX画素(X-pel)である場合、許容されるMV/MVD精度セットは、少なくともX画素(X-pel)を有してもよい。
【0153】
上述された例は、以下に説明される方法、例えば、方法2200および2300に関連して組み込まれてもよく、方法2200および2300は、ビデオデコーダまたはビデオエンコーダにおいて実装されてもよい。
【0154】
図22は、映像復号化のための例示的な方法のフローチャートを示す。方法2200は、ステップ2210において現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間で変換するために、現在の映像ブロックに関連付けられた各動きベクトルの解像度を適宜選択する符号化ツールを使用して、精度が現在の映像ブロックの記憶された動きベクトルの精度と同一である最終的動きベクトルを判定することを含む。
【0155】
方法2200は、ステップ2220において、最終的動きベクトルに基づいて、ビットストリーム表現と現在の映像ブロックとの間で変換を行うことを含む。
【0156】
図23は、映像復号化のための別の例示的な方法のフローチャートを示す。方法2300は、ステップ2310において、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間で変換するために、現在の映像ブロックに関連付けられた各動きベクトルの解像度を適宜選択する符号化ツールを使用して、最終的動きベクトルを判定することであって、現在の映像ブロックは、アフィンモードで符号化されており、ビットストリーム表現は、現在の映像ブロックに関連付けられた動きベクトルまたは動きベクトルの差の精度を示す2つ以上のビットを含むフィールドを含む、判定することを含む。
【0157】
方法2300は、ステップ2320において、最終的動きベクトルに基づいて、ビットストリーム表現と現在の映像ブロックとの間で変換を行うことを含む。
【0158】
いくつかの実施形態において、以下の技術的解決策を実装することができる。
【0159】
A1.映像処理のための方法(例えば、図22の方法2200)であって、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間で変換するために、現在の映像ブロックに関連付けられた各動きベクトルの解像度を適宜選択する符号化ツールを使用して、精度が現在の映像ブロックの格納された動きベクトルの精度と同一である最終的動きベクトルを判定すること(2210)と、最終的動きベクトルに基づいて、ビットストリーム表現と現在の映像ブロックとの間で変換を行うこと(2220)、とを含む方法。
【0160】
A2.最終的動きベクトルの精度は、1/16画素である、解決策A1に記載の方法。
【0161】
A3.最終的動きベクトルの精度は、1/8画素である、解決策A1に記載の方法。
【0162】
A4.最終的動きベクトルは、動きベクトル差(MVD)に動きベクトル予測子(MVP)を加えることに基づく、解決策A1~A3のいずれかに記載の方法。
【0163】
A5.MVDにMVPを加える前に、MVDをスケーリングする、解決策A4に記載の方法。
【0164】
A6.MVPは、空間的または時間的に近傍のブロックから導出される、解決策A4に記載の方法。
【0165】
A7.MVPがデフォルトMVPである、解決策A4に記載の方法。
【0166】
A8.MVPをMVDに添加する前に、MVPを修正する、解決策A6またはA7に記載の方法。
【0167】
A9.MVPを修正することは、MVDの精度に基づく、解決策A7に記載の方法。
【0168】
A10.MVDの精度が分数であると判定されると、MVPのためのスケーリング演算をバイパスすることをさらに含む、解決策A9に記載の方法。
【0169】
A11.MVDの精度が1以下であると判定されると、MVPをスケーリングすることをさらに含む、解決策A9に記載の方法。
【0170】
A12.MVDの精度が記憶された動きベクトルの精度と同一であると判定されると、最終的動きベクトルのためにスケーリング演算をバイパスすることをさらに含む、解決策A4に記載の方法。
【0171】
A13.MVDの精度が記憶された動きベクトルの精度と異なると判定された場合、最終的動きベクトルをスケーリングすることをさらに含む、解決策A4に記載の方法。
【0172】
A14.現在の映像ブロックは、非アフィンインターモードまたはアフィンインターモードで符号化される、解決策A1~A13のいずれかに記載の方法。
【0173】
A15.各動きベクトルに対して解像度を適宜選択する符号化ツールは、適応動きベクトル解像度(AMVR)ツールである、解決策A1~A14のいずれかに記載の方法。
【0174】
A16.変換は、ビットストリーム表現から現在の映像ブロックを生成する、解決策A1~A15のいずれかに記載の方法。
【0175】
A17.変換は、現在の映像ブロックからビットストリーム表現を生成する、解決策A1~A15のいずれかに記載の方法。
【0176】
A18.処理装置と、命令を搭載した非一時的メモリとを備える、映像システムにおける装置であって、処理装置が実行する前記命令は、前記処理装置に、解決策A1~A17のいずれかに記載の方法を実装させる映像システムにおける装置。
【0177】
A19.非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、解決策A1~A17のいずれかに記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【0178】
上記解決策に加え、いくつかの実施形態において、以下の解決策を実装することができる。
【0179】
B1.現在の映像ブロックと、現在の映像ブロックの、ビットストリーム表現との間の変換に関して、現在の映像ブロックに関連付けられた各動きベクトルの解像度を適宜選択する符号化ツールを使用して、最終的動きベクトルを判定することであって、現在の映像ブロックは、アフィンモードで符号化されており、ビットストリーム表現は、現在の映像ブロックに関連付けられた動きベクトルまたは動きベクトルの差の精度を示す2つ以上のビットを含むフィールドを含む、判定することと、最終的動きベクトルに基づいて、ビットストリーム表現と現在の映像ブロックとの間の変換を実行することと、を含む、映像処理方法。
【0180】
B2.フィールドの異なる値は、動きベクトルまたは動きベクトルの差の精度が、1/4画素、1/16画素または1画素であることを示す、解決策B1に記載の方法。
【0181】
B3.フィールドの値が0、1または2であることは、動きベクトルの精度がそれぞれ1/4画素、1/16画素および1画素であることに対応する、解決B2に記載の方法。
【0182】
B4.フィールドの値が0、1または2であることは、動きベクトルの精度がそれぞれ1/4画素、1画素および1/16画素であることに対応する、解決B2に記載の方法。
【0183】
B5.フィールドの値が0、1または2であることは、動きベクトルの精度がそれぞれ1/16画素、1/4画素および1画素であることに対応する、解決策B2に記載の方法。
【0184】
B6.シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、映像パラメータセット(VPS)、スライスヘッダ、タイルヘッダ、シーケンスヘッダ、またはピクチャヘッダにおける信号通知に基づいて、アフィンモードのための符号化ツールを有効にする、解決策B1~B5のいずれかに記載の方法。
【0185】
B7.シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、映像パラメータセット(VPS)、スライスヘッダ、タイルヘッダ、シーケンスヘッダ、またはピクチャヘッダにおいて、アフィンモードまたは非アフィンモードにおける動きベクトルまたは動きベクトル差の精度のための1つの許容値のセットを信号通知する、解決策B1~B5のいずれかに記載の方法。
【0186】
B8.現在のブロックの各符号化ツリーユニット(CTU)に前記許容値のセットを信号通知する、解決策B7に記載の方法。
【0187】
B9.前記許容値のセットは、現在のブロックの符号化モードまたは寸法に基づく、解決策B7に記載の方法。
【0188】
B10.前記符号化モードは、アフィンモードまたは非アフィンモードである、解決策B9に記載の方法。
【0189】
B11.前記許容値のセットは、スライスタイプ、時間層インデックス、または低遅延チェックフラグに基づく、解決策B7に記載の方法。
【0190】
B12.前記許容値のセットは、復号化ピクチャバッファに記憶される動きベクトルの精度に基づく、解決策B7に記載の方法。
【0191】
B13.各動きベクトルの解像度を適宜選択する符号化ツールが、適応動きベクトル解像度(AMVR)ツールである、解決策B1~B12のいずれかに記載の方法。
【0192】
B14.変換は、ビットストリーム表現から現在の映像ブロックを生成する、解決策B1~B13のいずれかに記載の方法。
【0193】
B15.変換は、現在の映像ブロックからビットストリーム表現を生成する、解決策B1~B13のいずれかに記載の方法。
【0194】
B16.処理装置と、命令を搭載した非一時的メモリとを備える、映像システムにおける装置であって、処理装置が実行する前記命令は、前記処理装置に、解決策B1~B15のいずれかに記載の方法を実装させることを特徴とする装置。
【0195】
B17.非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、前記コンピュータプログラム製品は、解決策B1~B15のいずれか1項に記載の方法を実行するためのプログラムコードを含む。
【0196】
5. 開示される技術の例示的な実装形態
図24は、映像処理装置2400のブロック図である。装置2400は、本明細書で説明される方法の1つ以上を実装するために使用してもよい。装置2400は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置2400は、1つ以上の処理装置2402と、1つ以上のメモリ2404と、映像処理ハードウェア2406と、を含んでもよい。処理装置2402は、本明細書に記載の1つ以上の方法(方法2200および2300を含むが、これらに限定されない)を実装するように構成されてもよい。メモリ(メモリ)2404は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア2406は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0197】
いくつかの実施形態において、映像符号化方法は、図24を参照して説明したように、ハードウェアプラットフォームに実装される装置を用いて実施されてもよい。
【0198】
図25は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム2500を示すブロック図である。様々な実装形態は、システム2500のモジュールの一部または全部を含んでもよい。システム2500は、映像コンテンツを受信するための入力ユニット2502を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、8または10ビットの多成分の画素値で受信されても、あるいは圧縮または符号化フォーマットで受信されてもよい。入力ユニット2502は、ネットワークインターフェース、周辺バスインターフェースユニット、または記憶インターフェースユニットを表してもよい。ネットワークインターフェースユニットの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェースユニット、およびWi-Fiまたはセルラーインターフェースユニット等の無線インターフェースユニットを含む。
【0199】
システム2500は、本明細書に記載される様々な符号化または符号化方法を実装することができる符号化モジュール2504を含んでもよい。符号化モジュール2504は、入力ユニット2502からの映像の平均ビットレートを符号化モジュール2504の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール2504の出力は、モジュール2506によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット2502において受信された、記憶されたまたは通信された映像のビットストリーム(または符号化)表現は、モジュール2508によって使用されて、表示インターフェースユニット2510に送信される画素値または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成するプロセスは、映像展開と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作またはツールと呼ぶが、符号化ツールまたは動作は、エンコーダおよびそれに対応する、復号化の結果を逆にする復号化ツールまたは動作が、デコーダによって行われることが理解されよう。
【0200】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースユニットの例は、シリアル・アドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェースユニット等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理および/または映像表示を行うことができる他のデバイス等の様々な電子機器に実施されてもよい。
【0201】
以上、説明の目的で本開示の技術の特定の実施形態を説明したが、本発明の範囲から逸脱することなく様々な修正が可能であることは、理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0202】
本特許明細書に記載された主題および機能操作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、様々なシステム、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。本明細書に記載された主題の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実行されるため、またはデータ処理装置の操作を制御するために、有形で非可搬性のコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、記憶装置、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理ユニット」または「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置若しくはコンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含んでもよい。
【0203】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットを含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開可能である。
【0204】
本明細書に記載されたプロセスおよびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。プロセスおよびロジックフローはまた、特別目的のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置はまた、特別目的のロジック回路として実装することができる。
【0205】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上の記憶装置とである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、および記憶装置を含み、例えば、EPROM、EEPROM、フラッシュ記憶装置等の半導体記憶装置を含む。処理装置およびメモリは、専用ロジック回路によって補完されてもよく、または専用ロジック回路に組み込まれてもよい。
【0206】
本明細書は、図面とともに、例示のみを目的とするものであり、例示的とは例を意味することが意図される。本明細書において、「または」の使用は、文脈からそうでないことが明確に示されていない限り、「および/または」を含むことが意図される。
【0207】
本特許明細書は多くの詳細を含むが、これらは、任意の発明の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許明細書において別の実施形態の文脈で説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、単一の例の文脈で説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブ組み合わせまたはサブ組み合わせのバリエーションに向けられてもよい。
【0208】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で実行されること、または示された全ての操作が実行されることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムモジュールの分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0209】
いくつかの実装形態および例のみが記載されており、本特許明細書に記載され図示されている内容に基づいて、他の実施形態、拡張および変形が可能である。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16
図17A
図17B
図18A
図18B
図19
図20
図21
図22
図23
図24
図25