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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特表2022-521699映像コーディングのための方法、装置、及びコンピュータプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-12
(54)【発明の名称】映像コーディングのための方法、装置、及びコンピュータプログラム
(51)【国際特許分類】
   H04N 19/105 20140101AFI20220405BHJP
   H04N 19/54 20140101ALI20220405BHJP
   H04N 19/176 20140101ALI20220405BHJP
   H04N 19/139 20140101ALI20220405BHJP
【FI】
H04N19/105
H04N19/54
H04N19/176
H04N19/139
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021547195
(86)(22)【出願日】2020-02-28
(85)【翻訳文提出日】2021-08-12
(86)【国際出願番号】 US2020020423
(87)【国際公開番号】W WO2020176865
(87)【国際公開日】2020-09-03
(31)【優先権主張番号】62/812,221
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/800,867
(32)【優先日】2020-02-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA19
5C159NN01
5C159NN10
5C159NN11
5C159NN21
5C159TA25
5C159TA62
5C159TB08
5C159TC12
5C159TC31
5C159TC35
5C159TC42
5C159TD03
5C159UA05
(57)【要約】
本開示の態様は、映像コーディングのための方法及び装置を提供する。一部の例において、装置は、現在ブロックについて複数の制御点動きベクトルを取得し、該複数の制御点動きベクトルに従って現在ブロックの複数のサブブロックについての第1の動きベクトル及び第2の動きベクトルを決定する処理回路を含む。第1の動きベクトルは、各サブブロック内の第1の相対位置に対応する。少なくとも1つの第1の動きベクトルが、対応する第2の動きベクトルと異なる。処理回路は、第1の動きベクトルに従って第1の予測サンプルセットを取得し、第2の動きベクトルに従って第2の予測サンプルセットを取得し、そして、第1の予測サンプルセット及び第2の予測サンプルセットに基づいて現在ブロックについての第3の予測サンプルセットを取得する。
【特許請求の範囲】
【請求項1】
デコーダが実行する映像復号方法であって、
現在ブロックについて複数の制御点動きベクトルを取得するステップであり、前記現在ブロックは複数のサブブロックに分割される、ステップと、
前記複数の制御点動きベクトルに従ってそれぞれ前記複数のサブブロックについての第1の動きベクトルを決定するステップであり、該第1の動きベクトルは、各サブブロック内の第1の相対位置に対応する、ステップと、
前記複数の制御点動きベクトルに従ってそれぞれ前記複数のサブブロックについての第2の動きベクトルを決定するステップであり、前記第1の動きベクトルからの少なくとも1つの第1の動きベクトルが、前記第2の動きベクトルからの対応する第2の動きベクトルと異なる、ステップと、
前記第1の動きベクトル及び前記複数のサブブロックに従って前記現在ブロックについての第1の予測サンプルセットを取得するステップと、
前記第2の動きベクトル及び前記複数のサブブロックに従って前記現在ブロックについての第2の予測サンプルセットを取得するステップと、
前記第1の予測サンプルセット及び前記第2の予測サンプルセットに基づいて前記現在ブロックについての第3の予測サンプルセットを取得するステップと、
を有する方法。
【請求項2】
前記第2の動きベクトルは、各サブブロック内の第2の相対位置に対応し、前記第1の相対位置は該第2の相対位置と異なる、請求項1に記載の方法。
【請求項3】
前記第1の相対位置は各サブブロックの中心である、請求項2に記載の方法。
【請求項4】
前記第2の相対位置は、各サブブロックの特定の隅である、請求項3に記載の方法。
【請求項5】
前記第1の相対位置及び前記第2の相対位置は、各サブブロックの中心と交差する垂直線、水平線、及び対角線のうちの1つに対して対称である、請求項2に記載の方法。
【請求項6】
前記第1の相対位置は、各サブブロックの左辺の中心であり、
前記第2の相対位置は、各サブブロックの右辺の中心である、
請求項2に記載の方法。
【請求項7】
前記第2の動きベクトルは、前記第1の動きベクトルに動きベクトルオフセットを適用することによって取得される、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
前記第3の予測サンプルセットは、前記第1の予測サンプルセットと前記第2の予測サンプルセットとの加重平均として計算される、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記サブブロックのうちの特定の1つについての前記第1の予測サンプルセット内の第1のピクセルが、該サブブロック内の第1の位置に置かれ、且つ前記加重平均を計算するための第1の重みを有し、
前記サブブロックのうちの前記特定の1つについての前記第1の予測サンプルセット内の第2のピクセルが、該サブブロック内の第2の位置に置かれ、且つ前記加重平均を計算するための第2の重みを有し、
前記第1の重みは前記第2の重みよりも大きく、前記第1の位置の方が、前記第2の位置よりも、前記サブブロックの前記第1の相対位置に近い、
請求項8に記載の方法。
【請求項10】
前記複数のサブブロックのうちの1つが、4×4ピクセルのサイズを有し、
前記複数のサブブロックのうちの前記1つについての前記第1の予測サンプルセット内のピクセルは、
当該ピクセルが水平方向又は垂直方向に沿って前記第1の相対位置から3ピクセル未満だけ離れて位置する場合、合計で4の重みに対して3の重みを有し、
当該ピクセルが前記水平方向又は前記垂直方向に沿って前記第1の相対位置から3ピクセル以上離れて位置する場合、前記合計で4の重みに対して1の重みを有する、
請求項8に記載の方法。
【請求項11】
前記複数のサブブロックのうちの特定の1つについて前記加重平均を計算するための重みは、前記サブブロックのうちの前記特定の1つについての一般化双予測(GBi)インデックスに従って導出される、請求項8に記載の方法。
【請求項12】
前記現在ブロックは片予測ブロックである、請求項1乃至11のいずれか一項に記載の方法。
【請求項13】
前記現在ブロック上でデブロッキングプロセスは実行されない、請求項1乃至12のいずれか一項に記載の方法。
【請求項14】
特定のレベルの符号化領域においてスタック式アフィンモードが有効にされるかを、該特定のレベルでシグナリングされるフラグに従って判定するステップであり、前記現在ブロックは、該特定のレベルの前記符号化領域に含まれる、ステップ、
を更に有し、
前記特定のレベルは、スライス、タイル、タイルグループ、ピクチャ、及びシーケンスのレベルのうちの1つに相当し、
前記複数のサブブロックについての前記第2の動きベクトルを前記決定するステップ及び前記現在ブロックについての前記第2の予測サンプルセットを前記取得するステップは、前記スタック式アフィンモードが有効にされるときに実行され、
前記複数のサブブロックについての前記第2の動きベクトルを前記決定するステップ及び前記現在ブロックについての前記第2の予測サンプルセットを前記取得するステップは、前記スタック式アフィンモードが有効にされないときには実行されない、
請求項1乃至13のいずれか一項に記載の方法。
【請求項15】
前記符号化領域に適用可能な前記フラグが、前記スタック式アフィンモードが有効にされることを指し示すとき、前記複数のサブブロックについての前記第2の動きベクトルを前記決定するステップ及び前記現在ブロックについての前記第2の予測サンプルセットを前記取得するステップは、前記符号化領域内の双予測ブロックに対しては実行されない、
請求項14に記載の方法。
【請求項16】
プロセッサと、
命令を格納したメモリと、
を有し、
前記命令は、前記プロセッサによって実行されるときに、前記プロセッサに請求項1乃至15のいずれか一項に記載の方法を実行させる、
装置。
【請求項17】
コンピュータに請求項1乃至15のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2019年2月28日に出願された米国仮出願第62/812,221号“STACKED AFFINE INTER PREDICTION METHODS”に対する優先権の利益を主張するものである2020年2月25日に出願された米国特許出願第16/800,867号“METHOD AND APPARATUS FOR VIDEO CODING”に対する優先権の利益を主張するものであり、それらの内容全体をここに援用する。
【0002】
本開示は、映像コーディングに概して関係する実施形態を記述する。
【背景技術】
【0003】
ここに提示される背景説明は、開示に係る状況を概略的に提示するためのものである。この背景セクションに記載される範囲においての、ここに名を連ねる発明者の仕事、並びに、出願時にさもなければ従来技術として適格でないかもしれない記載の態様は、明示的にも、暗示的にも、本開示に対する従来技術として認められるものではない。
【0004】
動き補償を用いるインターピクチャ予測を使用して映像符号化及び復号を実行することができる。圧縮されていないデジタル映像は一連のピクチャを含み、各ピクチャが、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を持つ。一連のピクチャは、固定又は可変のピクチャレート(非公式にはフレームレートとしても知られる)を持つことができ、例えば、毎秒60ピクチャ、すなわち、60Hzのピクチャレートを持ち得る。圧縮されていない映像は、かなりのビットレート要求を持つ。例えば、サンプル当たり8ビットの1080p60 4:2:0映像(60Hzのフレームレートで1920×1080のルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのような映像は、600GByteを超えるストレージ空間を必要とする。
【0005】
映像の符号化及び復号の1つの目的は、圧縮を通じての入力映像信号の冗長性の低減であるとし得る。圧縮は、前述の帯域幅要求又はストレージ空間要求を、場合によって2桁以上の大きさで、低減させる助けとなることができる。可逆圧縮及び非可逆圧縮の双方、並びにこれらの組み合わせを使用することができる。可逆圧縮は、原信号の正確な複製を圧縮された原信号から再構成することができる技術を指す。非可逆圧縮を使用する場合、再構成された信号は、原信号と同じにならないことがあるが、原信号と再構成信号との間の歪みは、再構成信号を意図した用途に有用にするのに十分な小ささとなる。映像の場合、非可逆圧縮が広く用いられる。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン配信アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比はそれを反映し、より高い許容/我慢できる歪みは、より高い圧縮比をもたらすことができる。
【0006】
動き補償は、非可逆圧縮技術であるとし得るとともに、先行して再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって指し示される方向に空間的にシフトされた後に、新たに再構成されるピクチャ又はピクチャ部分の予測のために使用される技術に関係するとし得る。一部のケースにおいて、参照ピクチャは、現在再構成中のピクチャと同じであることができる。MVは、2つの次元X及びYを有することができ、あるいは、使用する参照ピクチャを指し示すインジケーションを3つめとして3つの次元を有することができる(後者は、間接的に、時間次元であるとすることができる)。
【0007】
一部の映像圧縮技術では、サンプルデータのある特定の領域に適用可能なMVを、例えば、復号順でそのMVに先行するMVであって再構成中の領域に空間的に隣接するサンプルデータの別領域に関係するMVからなど、別のMVから予測することができる。そうすることは、そのMVを符号化するのに必要なデータの量を大幅に減らすことができ、それにより冗長性を取り除いて圧縮を高めることができる。MV予測は、効果的に機能することができる。何故なら、例えば、カメラに由来する入力ビデオ信号(ナチュラルビデオとして知られる)を符号化するとき、単一のMVが適用可能である領域よりも大きい領域が同様の方向に移動し、それ故に、場合により、隣接する領域のMVから導出される同様の動きベクトルを用いて予測されることができる、という統計的尤度があるからである。これがもたらすのは、所与の領域に対して見出されたMVが、周囲のMVから予測されるMVと類似又は同じであり、ひいては、エントロピー符号化の後に、そのMVを直接符号化する場合に使用されることになるものよりも少ないビット数で表されることができるということである。一部のケースでは、MV予測は、原信号(はっきり言えば、サンプルストリーム)から導出される信号(はっきり言えば、MV)の可逆圧縮の一例であることができる。他のケースでは、例えば、幾つかの周囲MVから予測子を計算する際の丸め誤差のために、MV予測それ自体が非可逆的であるとし得る。
【0008】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T勧告H.265,“High Efficiency Video Coding”、2016年12月)に記述されている。H.265が提供するそれら多数のMV予測メカニズムのうち、以下では“空間マージ”と称する技術をここで説明する。
【0009】
図1を参照するに、現在ブロック(101)は、空間的にシフトされた同じサイズの先行ブロックから予測可能であることが動き探索プロセス中にエンコーダによって見出されたサンプルを有する。MVを直接符号化する代わりに、MVを、A0、A1、及びB0、B1、B2(それぞれ102から106)と表記する5つの隣接ブロックのうちのいずれか1つに関連するMVを用いて、例えば(復号順で)直前の参照ピクチャからなど、1つ以上の参照ピクチャに関連するメタデータから導出することができる。H.265において、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0010】
本開示の態様は、映像符号化/復号のための方法及び装置を提供する。一部の例において、装置は、現在ブロックについて複数の制御点動きベクトルを取得し、上記現在ブロックは複数のサブブロックに分割される。処理回路は、上記複数の制御点動きベクトルに従ってそれぞれ上記複数のサブブロックについての第1の動きベクトルを決定し、該第1の動きベクトルは、各サブブロック内の第1の相対位置に対応する。処理回路はまた、上記複数の制御点動きベクトルに従ってそれぞれ上記複数のサブブロックについての第2の動きベクトルを決定し、上記第1の動きベクトルからの少なくとも1つの第1の動きベクトルが、上記第2の動きベクトルからの対応する第2の動きベクトルと異なる。処理回路は、上記第1の動きベクトル及び上記複数のサブブロックに従って上記現在ブロックについての第1の予測サンプルセットを取得し、上記第2の動きベクトル及び上記複数のサブブロックに従って上記現在ブロックについての第2の予測サンプルセットを取得し、上記第1の予測サンプルセット及び上記第2の予測サンプルセットに基づいて上記現在ブロックについての第3の予測サンプルセットを取得する。
【0011】
一部の実施形態において、上記第2の動きベクトルは、各サブブロック内の第2の相対位置に対応し、上記第1の相対位置は該第2の相対位置と異なる。一例において、上記第1の相対位置は各サブブロックの中心である。一例において、上記第2の相対位置は、各サブブロックの特定の隅である。
【0012】
一部の実施形態において、上記第1の相対位置及び上記第2の相対位置は、各サブブロックの中心と交差する垂直線、水平線、及び対角線のうちの1つに対して対称である。一部の実施形態において、上記第1の相対位置は、各サブブロックの左辺の中心であり、上記第2の相対位置は、各サブブロックの右辺の中心である。
【0013】
一部の実施形態において、上記第2の動きベクトルは、上記第1の動きベクトルに動きベクトルオフセットを適用することによって取得される。
【0014】
一部の実施形態において、上記第3の予測サンプルセットは、上記第1の予測サンプルセットと上記第2の予測サンプルセットとの加重平均として計算される。一例において、特定のサブブロックについての上記第1の予測サンプルセット内の第1のピクセルが、該サブブロック内の第1の位置に置かれ、且つ上記組み合わせを計算するための第1の重みを有し、上記特定のサブブロックについての上記第1の予測サンプルセット内の第2のピクセルが、該サブブロック内の第2の位置に置かれ、且つ上記組み合わせを計算するための第2の重みを有し、上記第1の重みは上記第2の重みよりも大きく、上記第1の位置の方が、上記第2の位置よりも、上記サブブロックの上記第1の相対位置に近い。
【0015】
一例において、上記複数のサブブロックのうちの1つが、4×4ピクセルのサイズを有する。そのような例において、上記複数のサブブロックのうちの上記1つについての上記第1の予測サンプルセット内のピクセルは、当該ピクセルが水平方向又は垂直方向に沿って上記第1の相対位置から3ピクセル未満だけ離れて位置する場合、合計で4の重みに対して3の重みを有し、当該ピクセルが上記水平方向又は上記垂直方向に沿って上記第1の相対位置から3ピクセル以上離れて位置する場合、上記合計で4の重みに対して1の重みを有する。
【0016】
一例において、上記複数のサブブロックのうちの特定の1つについて上記加重平均を計算するための重みは、上記サブブロックのうちの上記特定の1つについての一般化双予測(generalized bi-prediction、GBi)インデックスに従って導出される。
【0017】
一部の実施形態において、上記現在ブロックは片予測ブロックである。一部の実施形態において、上記現在ブロック上でデブロッキングプロセスは実行されない。
【0018】
一部の実施形態において、処理回路はまた、特定のレベルの符号化領域においてスタック式アフィンモードが有効にされるかを、該特定のレベルでシグナリングされるフラグに従って判定し、上記現在ブロックは、該特定のレベルの上記符号化領域に含まれる。上記特定のレベルは、スライス、タイル、タイルグループ、ピクチャ、及びシーケンスのレベルのうちの1つに相当することができる。上記複数のサブブロックについての上記第2の動きベクトルを決定すること及び上記現在ブロックについての上記第2の予測サンプルセットを取得することは、上記スタック式アフィンモードが有効にされるときに実行されることができる。上記複数のサブブロックについての上記第2の動きベクトルを決定すること及び上記現在ブロックについての上記第2の予測サンプルセットを取得することは、上記スタック式アフィンモードが有効にされないときには実行されることができない。一例において、上記符号化領域に適用可能な上記フラグが、上記スタック式アフィンモードが有効にされることを指し示すとき、上記複数のサブブロックについての上記第2の動きベクトルを決定すること及び上記現在ブロックについての上記第2の予測サンプルセットを取得することは、上記符号化領域内の双予測ブロックに対しては実行されない。
【0019】
本開示の態様はまた、映像復号用のコンピュータによって実行されるときに該コンピュータに映像復号のための方法のうちのいずれか1つ又は組み合わせを実行させる命令を格納した非一時的なコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0020】
開示に係る事項の更なる特徴、性質、及び様々な利点が、以下の詳細な説明及び添付の図面から、よりいっそう明らかになる。
図1】一例における現在ブロック及びその周囲の空間マージ候補を概略的に例示している。
図2】一実施形態に従った通信システム(200)の簡略ブロック図を概略的に例示している。
図3】一実施形態に従った通信システム(300)の簡略ブロック図を概略的に例示している。
図4】一実施形態に従ったデコーダの簡略ブロック図を概略的に例示している。
図5】一実施形態に従ったエンコーダの簡略ブロック図を概略的に例示している。
図6】他の一実施形態に従ったエンコーダのブロック図を示している。
図7】他の一実施形態に従ったデコーダのブロック図を示している。
図8】一実施形態に従った、現在ブロック及びマージモードに従った対応するマージ候補の概略図である。
図9】一実施形態に従った、冗長性検査プロセスにかけられるマージ候補のペアのチャートである。
図10】一実施形態に従った、時間マージ候補を導出するための動きベクトルスケーリングの概略図である。
図11】一実施形態に従った、動きベクトル差付きマージモード(MMVD)において評価される2つの開始点を取り囲む所定の点の概略図である。
図12A】一実施形態に従った(3つの制御点による)6パラメータアフィンモデルの概略図である。
図12B】一実施形態に従った(2つの制御点による)4パラメータアフィンモデルの概略図である。
図12C】一実施形態に従った、アフィン予測法に従って符号化される現在ブロックのサブブロックに対して導出される動きベクトルの概略図である。
図13】一実施形態に従った、アフィン予測法によって符号化される現在ブロックに関する空間隣接ブロック及び時間隣接ブロックの概略図である。
図14A】一実施形態に従った、サブブロックベースの時間動きベクトル予測法を用いて現在ブロックに対する予測動き情報を決定するために使用されることが可能な空間隣接ブロックの概略図である。
図14B】一実施形態に従った、サブブロックベースの時間動きベクトル予測法において選択される空間隣接ブロックの概略図である。
図15A】一実施形態に従った、三角予測法による現在ブロックに対する2つの分割例の概略図である。
図15B】一実施形態に従った、三角予測法のための片予測候補リストを構築するのに使用される空間及び時間隣接ブロックの一例を示している。
図16A】一実施形態に従った、適応ブレンドプロセスにおいて一組の重みを適用する符号化ユニットの一例を示している。
図16B】一実施形態に従った、適応ブレンドプロセスにおいて一組の重みを適用する符号化ユニットの一例を示している。
図17】一実施形態に従った、インターウィーブ式アフィン予測法を示している。
図18A】一実施形態に従った、インターウィーブ式アフィン予測法におけるサブブロックに対する一組の重みの一例を示している。
図18B】一実施形態に従った、インターウィーブ式アフィン予測法においてブロックをサブブロックに分割するパターンの概略図である。
図19】一実施形態に従った、スタック式アフィン予測法を示している。
図20】一実施形態に従った、スタック式アフィン予測法に従って符号化される現在ブロックの同じサブブロックセットに対する二組の動きベクトルの概略図である。
図21】一実施形態に従った、スタック式アフィン予測法に従って特定のブロックを符号化することの概略図である。
図22A】22A-22Eは、1つ以上の実施形態に従った、スタック式アフィン予測法においてサブブロックに重みを割り当てることの様々な例を示している。
図22B】22A-22Eは、1つ以上の実施形態に従った、スタック式アフィン予測法においてサブブロックに重みを割り当てることの様々な例を示している。
図22C】22A-22Eは、1つ以上の実施形態に従った、スタック式アフィン予測法においてサブブロックに重みを割り当てることの様々な例を示している。
図22D】22A-22Eは、1つ以上の実施形態に従った、スタック式アフィン予測法においてサブブロックに重みを割り当てることの様々な例を示している。
図22E】22A-22Eは、1つ以上の実施形態に従った、スタック式アフィン予測法においてサブブロックに重みを割り当てることの様々な例を示している。
図23】本開示の一部の実施形態に従ったプロセスを概説するフローチャートを示している。
図24】一実施形態に従ったコンピュータシステムの概略図である。
【発明を実施するための形態】
【0021】
I. 映像コーディングエンコーダ及びデコーダ
図2は、本開示の一実施形態に従った通信システム(200)の簡略ブロック図を例示している。通信システム(200)は、例えばネットワーク(250)を介して、互いに通信することができる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1の対の端末装置(210)及び(220)を含む。図2の例において、第1の対の端末装置(210)及び(220)は、データの一方向伝送を行う。例えば、端末装置(210)が、映像データ(例えば、端末装置(210)によってキャプチャされた映像ピクチャのストリーム)を、ネットワーク(250)を介した他の端末装置(220)への伝送のために符号化し得る。符号化された映像データは、1つ以上の符号化映像ビットストリームの形態で伝送されることができる。端末装置(220)が、ネットワーク(250)から符号化映像データを受信し、符号化映像データを復号して映像ピクチャを復元し、復元した映像データに従って映像ピクチャを表示し得る。一方向データ伝送は、メディアサービス提供アプリケーション及びそれに類するものにおいて一般的であり得る。
【0022】
他の一例において、通信システム(200)は、例えば、テレビ会議中に発生し得る符号化映像データの双方向伝送を行う第2の対の端末装置(230)及び(240)を含む。データの双方向伝送では、一例において、端末装置(230)及び(240)の各端末装置が、映像データ(例えば、その端末装置によってキャプチャされた映像ピクチャのストリーム)を、ネットワーク(250)を介した端末装置(230)及び(240)のうちの他方の端末装置への伝送のために符号化し得る。端末装置(230)及び(240)の各端末装置はまた、端末装置(230)及び(240)のうちの他方の端末装置によって送信された符号化映像データを受信し得るとともに、符号化映像データを復号して映像ピクチャを復元し、そして、復元した映像データに従って、アクセス可能なディスプレイ装置に映像ピクチャを表示し得る。
【0023】
図2において、端末装置(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されているが、本開示の原理は、そのように限定されるものではないとし得る。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のテレビ会議機器での用途を見出し。ネットワーク(250)は、例えば、配線(有線)通信ネットワーク及び/又は無線通信ネットワークを含め、端末装置(210)、(220)、(230)及び(240)間で符号化された映像データを伝達するあらゆる数のネットワークを表す。通信ネットワーク(250)は、回線交換チャネル及び/又はパケット交換チャネルにてデータを交換し得る。代表的なネットワークは、遠距離通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットを含む。本説明の目的上、ネットワーク(250)のアーキテクチャ及びトポロジーは、以下にて説明しない限り、本開示の動作にとって重要ではないとし得る。
【0024】
図3は、開示に係る事項に関するアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を例示している。開示に係る事項は、例えば、テレビ会議や、デジタルTVや、CD、DVD、メモリスティック及びこれらに類するものを含むデジタル媒体上での圧縮映像の格納などを含め、映像を使用可能な他の用途にも等しく適用されることができる。
【0025】
ストリーミングシステムは、例えば圧縮されていない映像ピクチャのストリーム(302)を作り出す例えばデジタルカメラといった映像ソース(301)を含むことができるキャプチャサブシステム(313)を含み得る。一例において、映像ピクチャのストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。映像ピクチャのストリーム(302)は、符号化された映像データ(304)(又は符号化映像ビットストリーム)と比較して高いデータボリュームであることを強調するために太線として描かれており、映像ソース(301)に結合されたビデオエンコーダ(303)を含んだエレクトロニクス装置(320)によって処理され得る。ビデオエンコーダ(303)は、更に詳細に後述される開示に係る事項の態様を使用可能にする又は実装するための、ハードウェア、ソフトウェア、又はこれらの組み合わせを含むことができる。符号化された映像データ(304)(又は符号化映像ビットストリーム(304))は、映像ピクチャのストリーム(302)と比較して低いデータボリュームであることを強調するために細線として描かれており、後の使用のためにストリーミングサーバ(305)に格納されることができる。例えば図3のクライアントサブシステム(306)及び(308)などの1つ以上のストリーミングクライアントサブシステムが、符号化された映像データ(304)のコピー(307)及び(309)を取り出すためにストリーミングサーバ(305)にアクセスすることができる。クライアントサブシステム(306)は、例えばエレクトロニクス装置(330)内の、ビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、入ってくる符号化された映像データのコピー(307)を復号し、出ていく映像ピクチャのストリーム(311)を作り出すことができ、出ていく映像ピクチャのストリーム(311)が、ディスプレイ(312)(例えば、表示スクリーン)又は他のレンダリング装置(図示せず)上でレンダリングされ得る。一部のストリーミングシステムにおいて、符号化された映像データ(304)、(307)、及び(309)(例えば、映像ビットストリーム)は、特定の映像符号化/圧縮標準に従って符号化されることができる。それら標準の例は、ITU-T勧告H.265を含む。一例において、開発中のある映像符号化標準は、非公式にバーサタイルビデオコーディング(Versatile Video Coding;VVC)として知られている。開示に係る事項は、VVCの文脈で使用され得る。
【0026】
なお、エレクトロニクス装置(320)及び(330)は、他のコンポーネント(図示せず)を含むことができる。例えば、エレクトロニクス装置(320)はビデオデコーダ(図示せず)を含むことができ、エレクトロニクス装置(330)はビデオエンコーダ(図示せず)も含むことができる。
【0027】
図4は、本開示の一実施形態に従ったビデオデコーダ(410)のブロック図を示している。ビデオデコーダ(410)は、エレクトロニクス装置(430)に含まれ得る。エレクトロニクス装置(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3の例におけるビデオデコーダ(310)の代わりに使用されることができる。
【0028】
受信器(431)が、これと同じ実施形態又は他の一実施形態において、一度に1つの符号化映像シーケンスで、ビデオデコーダ(410)によって復号されることになる1つ以上の符号化映像シーケンスを受信することができ、各符号化映像シーケンスの復号は、他の符号化映像シーケンスとは独立である。符号化映像シーケンスは、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得るものであるチャネル(401)から受信され得る。受信器(431)は、符号化映像データを、例えば符号化された音声データ及び/又は補助データストリームといった他のデータと共に受信してもよく、それらのデータは、それらそれぞれの使用エンティティ(図示せず)に転送され得る。受信器(431)は、符号化映像シーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、受信器(431)とエントロピーデコーダ/パーサ420(以下、“パーサ(420)”)との間にバッファメモリ(415)が結合され得る。特定のアプリケーションにおいて、バッファメモリ(415)はビデオデコーダ(410)の一部である。他のものにおいて、それは、ビデオデコーダ(410)の外部にあってもよい(図示せず)。更なる他のものにおいて、例えばネットワークジッタに対抗するために、ビデオデコーダ(410)の外部にバッファメモリ(図示せず)が存在することができ、さらに、例えば再生タイミングを取り扱うために、ビデオデコーダ(410)の内部に別のバッファメモリ(415)が存在することができる。受信器(431)が、十分な帯域幅及び可制御性の格納/転送装置から又は等同期ネットワークからデータを受信しているとき、バッファメモリ(415)は、必要とされなくてもよく、又は小さくされることができる。例えばインターネットなどのベストエフォート型パケットネットワーク上での使用では、バッファメモリ(415)が、必要とされ得るとともに、比較的大きくされ、そして、有利には適応可能なサイズのものにされることができ、また、少なくとも部分的に、ビデオデコーダ(410)の外部のオペレーティングシステム又は同様の要素(図示せず)にて実装され得る。
【0029】
ビデオデコーダ(410)は、符号化映像シーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。それらシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報を含むとともに、可能性として、図4に示したように、エレクトロニクス装置(430)の統合部分ではないがエレクトロニクス装置(430)に結合されることが可能な、例えばレンダー装置(412)(例えば、表示スクリーン)などのレンダリング装置を制御する情報を含み得る。(1つ以上の)レンダリング装置用の制御情報は、補足強化情報(Supplementary Enhancement Information;SEI)メッセージ又はビデオユーザビリティ情報(Video Usability Information;VUI)パラメータセットフラグメント(図示せず)の形態とし得る。パーサ(420)は、受け取った符号化映像シーケンスを構文解析/エントロピー復号し得る。符号化映像シーケンスの符号化は、映像符号化技術又は標準によることができ、可変長符号化、ハフマン符号化、文脈依存性を持つ又は持たない算術符号化などを含め、様々な原理に従うことができる。パーサ(420)は、符号化映像シーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つに関する一組のサブグループパラメータを抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(420)はまた、符号化映像シーケンス情報から、例えば変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出し得る。
【0030】
パーサ(420)は、シンボル(421)を生み出すよう、バッファメモリ(415)から受け取った映像シーケンスにエントロピー復号/構文解析処理を実行し得る。
【0031】
シンボル(421)の再構成には、符号化された映像ピクチャ又はその部分のタイプ及び他の要因(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロックなど)に応じて、複数の異なるユニットが関与し得る。どのユニットが関与するか、及びそれらがどのように関与するかは、パーサ(420)によって符号化映像シーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数ユニットとの間でのこのようなサブグループ制御情報の流れは、明瞭さのために図示していない。
【0032】
既述の機能ブロックを超えて、ビデオデコーダ(410)は概念的に、後述のような多数の機能ユニットに細分化されることができる。商業上の制約の下で稼働する実用的な実装において、これらのユニットのうちの多くが互いに密接にインタラクトし、少なくとも部分的に互いに統合され得る。しかしながら、開示に係る事項を説明するという目的のためには、以下の機能ユニットへの概念的な細分化が適切である。
【0033】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からの(1つ以上の)シンボル(421)として、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とともに、量子化された変換係数を受け取る。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることが可能な、サンプル値を有するブロックを出力することができる。
【0034】
場合により、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化されたブロック、すなわち、先行して再構成されたピクチャからの予測情報を使用していないが、現在ピクチャのうち先行して再構成された部分からの予測情報を使用することができるブロック、に関係し得る。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供されることができる。場合により、イントラピクチャ予測ユニット(452)は、現在ピクチャバッファ(458)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(458)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(455)は、場合により、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に付加する。
【0035】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化された、動き補償された可能性のあるブロックに関係し得る。このような場合、動き補償予測ユニット(453)が、参照ピクチャメモリ(457)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルを、ブロックに関係するシンボル(421)に従って動き補償した後、これらのサンプルが、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合、残差サンプル又は残差信号と呼ばれる)に付加されて、出力サンプル情報を生成することができる。そこから動き補償予測ユニット(453)が予測サンプルをフェッチする参照ピクチャメモリ(457)内のアドレスは、動きベクトルによって制御されることができ、例えばX、Y、及び参照ピクチャ成分を有し得るシンボル(421)の形態で動き補償予測ユニット(453)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されるときに参照ピクチャメモリ(457)からフェッチされたサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
【0036】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)にて様々なループフィルタリング技術に掛けられ得る。映像圧縮技術は、インループ(in-loop)フィルタ技術を含むことができ、これは、符号化映像シーケンス(符号化映像ビットストリームとも称する)に含められてパーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされるパラメータによって制御されるが、符号化ピクチャ又は符号化映像シーケンスのうちの(復号順で)先行部分の復号中に得られたメタ情報にも応答することができるとともに、先行して再構成されてループフィルタリングされたサンプル値にも応答することができる。
【0037】
ループフィルタユニット(456)の出力は、レンダー装置(412)に出力されることが可能なサンプルストリームとすることができ、これはまた、将来のインターピクチャ予測での使用のために参照ピクチャメモリ(457)に格納されることができる。
【0038】
ある特定の符号化ピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構成され、その符号化ピクチャが参照ピクチャとして(例えば、パーサ(420)によって)特定されると、現在ピクチャバッファ(458)が参照ピクチャメモリ(457)の一部となり得るとともに、次の符号化ピクチャの再構成を開始する前に新しい現在ピクチャバッファが再割り当てされ得る。
【0039】
ビデオデコーダ(410)は、例えばITU-T勧告H.265などの標準における所定の映像圧縮技術に従って復号処理を実行し得る。符号化映像シーケンスは、映像圧縮技術又は標準の構文と映像圧縮技術又は標準において文書化されたプロファイルとの双方を忠実に守るという意味で、使用される映像圧縮技術又は標準によって規定される構文に従い得る。具体的には、プロファイルは、映像圧縮技術又は標準において利用可能な全てのツールから、特定のツールを、そのプロファイルの下での使用に利用可能なツールはそれだけであるように選択することができる。また、コンプライアンスのために、符号化映像シーケンスの複雑さが、映像圧縮技術又は標準のレベルによって規定される範囲内にあることも必要である。場合により、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制約する。レベルによって設定される制限は、場合により、仮説的リファレンスデコーダ(Hypothetical Reference Decoder;HRD)仕様、及び符号化映像シーケンスにてシグナリングされるHRDバッファ管理用のメタデータを通して更に制約され得る。
【0040】
一実施形態において、受信器(431)は、符号化された映像と共に追加(冗長)データを受信し得る。追加データは、(1つ以上の)符号化映像シーケンスの一部として含められ得る。追加データは、データを適切に復号するため、及び/又は元の映像データをいっそう正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正符号などの形態とし得る。
【0041】
図5は、本開示の一実施形態に従った、ビデオエンコーダ(503)のブロック図を示している。ビデオエンコーダ(503)は、エレクトロニクス装置(520)に含まれる。例えば、エレクトロニクス装置(520)は送信器(540)(例えば、送信回路)を含んでいる。ビデオエンコーダ(503)は、図3の例におけるビデオエンコーダ(203)の代わりに使用されることができる。
【0042】
ビデオエンコーダ(503)は、エンコーダ(503)によって符号化されることになる(1つ以上の)映像画像をキャプチャし得る映像ソース(501)(図5の例ではエレクトロニクス装置(520)の一部ではない)から映像サンプルを受信し得る。他の一例において、映像ソース(501)は、エレクトロニクス装置(520)の一部である。
【0043】
映像ソース(501)は、ビデオエンコーダ(503)によって符号化されるソース映像シーケンスを、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、及び任意の好適なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとし得るデジタル映像サンプルストリームの形態で提供し得る。メディアサービス提供システムにおいて、映像ソース(501)は、事前に準備された映像を格納したストレージ装置とし得る。テレビ会議システムでは、映像ソース(501)は、ローカルな画像情報を映像シーケンスとしてキャプチャするカメラとし得る。映像データは、順に見たときに動きを伝える複数の個々のピクチャとして提供され得る。それらピクチャ自体は、ピクセルの空間アレイとして編成されることができ、各ピクセルが、使用されるサンプリング構造、色空間などに応じて、1つ以上のサンプルを有することができる。当業者は、ピクセルとサンプルとの関係を直ちに理解することができる。以下の説明は、サンプルに焦点を当てている。
【0044】
一実施形態によれば、ビデオエンコーダ(503)は、ソース映像シーケンスのピクチャを、リアルタイムで、又はアプリケーションによって要求される他の時間制約下で、符号化映像シーケンス(543)へと符号化及び圧縮し得る。適切な符号化速度を強制することが、コントローラ(550)の1つの機能である。一部の実施形態において、コントローラ(550)は、後述するような他の機能ユニットを制御するとともに、それら他の機能ユニットに機能的に結合される。その結合は、明瞭さのために図示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。コントローラ(550)は、特定のシステム設計に合わせて最適化されるビデオエンコーダ(503)に関連する他の好適な機能を有するように構成されることができる。
【0045】
一部の実施形態において、ビデオエンコーダ(503)は、符号化ループにて動作するように構成される。過度に単純化した説明として、一例において、符号化ループは、ソースコーダ(530)(例えば、符号化される入力ピクチャ及び(1つ以上の)参照ピクチャに基づいて例えばシンボルストリームなどのシンボルを作成することを担う)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(シンボルと符号化映像ビットストリームとの間での圧縮が、開示に係る事項において検討される映像圧縮技術において可逆であるときに)(リモート)デコーダも作成するのと同様にして、シンボルを再構成してサンプルデータを生成する。再構成されたサンプルストリーム(サンプルデータ)が、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)に依存しないビット正確な結果をもたらすので、参照ピクチャメモリ(534)内のコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに“見る”のとまったく同じサンプル値を参照ピクチャサンプルとして“見る”。この参照ピクチャ同期性の基本原理(及び、例えばチャネルエラーのために、同期性を維持することができない場合に結果として生じるドリフト)は、一部の関連技術でも使用されている。
【0046】
“ローカル”デコーダ(533)の動作は、例えばビデオデコーダ(410)などの“リモート”デコーダのものと同じであるとすることができ、それは、図4に関連して既に詳細に上述されている。しかしながら、図4も手短に参照するに、シンボルが利用可能であり、且つエントロピーコーダ(545)及びパーサ(420)によるシンボルの符号化映像シーケンスへの符号化/復号は可逆であるとし得るので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピー復号部分は、ローカルデコーダ(533)に完全に実装されなくてよい。
【0047】
この時点で気付くことができることには、デコーダ内に存在する構文解析/エントロピー復号を除く如何なるデコーダ技術も、対応するエンコーダ内に、実質的に同じ機能的形態で、必ず存在する必要がある。エンコーダ技術の説明は、徹底して説明したデコーダ技術の逆であるので、省略することができる。特定の分野においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0048】
動作時、一部の例において、ソースコーダ(530)は、入力ピクチャを、映像シーケンスからの、“参照ピクチャ”として指定された1つ以上の先に符号化されたピクチャに対して予測的に符号化するものである動き補償予測符号化を実行し得る。斯くして、符号化エンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する(1つ以上の)予測基準として選択され得る(1つ以上の)参照ピクチャのピクセルブロックとの間の差分を符号化する。
【0049】
ローカルビデオデコーダ(533)は、参照ピクチャとして指定され得るピクチャの符号化映像データを、ソースコーダ(530)によって作成されたシンボルに基づいて復号し得る。符号化エンジン(532)の動作は、有利には、非可逆プロセスとし得る。符号化映像データが映像デコーダ(図5には示されていない)で復号され得るとき、再構成された映像シーケンスは典型的に、幾分の誤差を伴うソース映像シーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照ピクチャ上でビデオデコーダによって実行され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に格納させるようにし得る。斯くして、ビデオエンコーダ(503)は、ファーエンドのビデオデコーダによって得られることになる再構成参照ピクチャと共通のコンテンツを持つ再構成参照ピクチャのコピーをローカルに格納し得る。
【0050】
予測器(535)は、符号化エンジン(532)のために予測探索を実行し得る。すなわち、符号化すべき新たなピクチャに関して、予測器(535)は、新たなピクチャ用の適切な予測基準としての役割を果たし得るサンプルデータ(候補参照ピクセルブロックとして)又は例えば参照ピクチャ動きベクトルやブロック形状などの特定のメタデータについて、参照ピクチャメモリ(534)を検索し得る。予測器(535)は、適切な予測参照を見出すために、ピクセルブロック毎に動作し得る。場合により、予測器(535)によって得られた検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから引き出された予測基準を有し得る。
【0051】
コントローラ(550)は、例えば、映像データを符号化するのに使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(530)の符号化処理を管理し得る。
【0052】
前述の全ての機能ユニットの出力が、エントロピーコーダ(545)におけるエントロピー符号化に掛けられ得る。エントロピーコーダ(545)は、例えばハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化映像シーケンスへと変換する。
【0053】
送信器(540)が、エントロピーコーダ(545)によって生成された(1つ以上の)符号化映像シーケンスをバッファリングし、通信チャネル(560)を介した伝送のために準備し得る。通信チャネル(560)は、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得る。送信器(540)は、ビデオコーダ(503)からの符号化映像データを、例えば符号化オーディオデータ及び/又は補助データストリーム(ソースは図示していない)といった、送信される他のデータとマージし得る。
【0054】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。符号化において、コントローラ(550)は、各符号化ピクチャに、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得るものである特定の符号化ピクチャタイプを割り当て得る。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つを割り当てられ得る。
【0055】
イントラピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用することなく符号化及び復号され得るものとし得る。一部の映像コーデックは、例えば独立デコーダリフレッシュ(Independent Decoder Refresh;IDR)ピクチャを含め、複数の異なるタイプのイントラピクチャを許している。当業者は、Iピクチャのそれら異形、並びにそれらそれぞれの用途及び特徴を知っている。
【0056】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くて1つの動きベクトルと参照インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。
【0057】
双予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くて2つの動きベクトルと参照インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。同様に、多重予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャと関連メタデータとを使用することができる。
【0058】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、各々4×4、8×8、4×8、又は16×16サンプルのブロック)に細分化され、ブロック毎に符号化され得る。ブロックは、それらブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは非予測的に符号化されることができ、あるいは、それらは同じピクチャの既に符号化されたブロックを参照して予測的に符号化されることができる(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの先に符号化された参照ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの先に符号化された参照ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。
【0059】
ビデオエンコーダ(503)は、例えばITU-T勧告H.265などの所定の映像符号化技術又は標準に従って符号化処理を実行し得る。その動作において、ビデオエンコーダ(503)は、入力映像シーケンスにおける時間的及び空間的な冗長性を活用する予測的な符号化処理を含め、様々な圧縮処理を実行し得る。符号化された映像データは、それ故に、使用されている映像符号化技術又は標準によって規定される構文に従い得る。
【0060】
一実施形態において、送信器(540)は、符号化された映像と共に追加データを送信し得る。ソースコーダ(530)が、そのようなデータを、符号化映像シーケンスの一部として含め得る。追加データは、時間的/空間的/SNRエンハンスメントレイヤ、例えば冗長ピクチャ及びスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを有し得る。
【0061】
映像は、時間シーケンスにて複数のソースピクチャ(映像ピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャ内の空間的な相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例において、現在ピクチャと称される符号化/復号中の特定のピクチャが、複数のブロックへと分割される。現在ピクチャ内のあるブロックが、映像内の先に符号化され且つ依然としてバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在ピクチャ内のそのブロックは、動きベクトルと称されるベクトルによって符号化されることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを特定する第3の次元を持つことができる。
【0062】
一部の実施形態において、インターピクチャ予測において双予測技術を使用することができる。双予測技術によれば、例えば、映像内でどちらも現在ピクチャに対して復号順で先である(しかし、表示順では、それぞれ過去及び将来であってもよい)第1の参照ピクチャ及び第2の参照ピクチャなどの、2つの参照ピクチャが使用される。現在ピクチャ内のブロックを、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化することができる。そのブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0063】
さらに、インターピクチャ予測において符号化効率を改善するために、マージモード技術を使用することができる。
【0064】
本開示の一部の実施形態によれば、例えばインターピクチャ予測及びイントラピクチャ予測などの予測が、ブロックの単位で実行される。例えば、HEVC標準によれば、映像ピクチャのシーケンス内のピクチャが、圧縮のために複数の符号化ツリーユニット(CTU)に分割され、ピクチャ内のそれらCTUは、例えば64×64ピクセル、32×32ピクセル、又は16×16ピクセルなどの同一サイズを有する。一般に、CTUは、1つのルマ(luma)CTBと2つのクロマ(chroma)CTBである3つの符号化ツリーブロック(CTB)を含む。各CTUが、1つ又は複数の符号化ユニット(CU)へと再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割されることができる。一例において、各CUが、例えばインター予測タイプ又はイントラ予測タイプなど、そのCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、ルマ予測ブロック(PB)と2つのクロマPBとを含む。一実施形態において、コーディング(符号化/復号)に際しての予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを用いると、該予測ブロックは、例えば8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、及びこれらに類するものなど、ピクセルの値(例えば、ルマ値)の行列を含む。
【0065】
図6は、本開示の他の一実施形態に従ったビデオエンコーダ(603)の図を示している。ビデオエンコーダ(603)は、映像ピクチャのシーケンス内の現在映像ピクチャの中の処理ブロック(例えば、予測ブロック)のサンプル値を受信し、該処理ブロックを符号化映像シーケンスの一部である符号化ピクチャへと符号化するように構成される。一例において、ビデオエンコーダ(603)は、図3の例におけるビデオエンコーダ(303)の代わりに使用される。
【0066】
HEVCの例において、ビデオエンコーダ(603)は、例えば予測ブロックの8×8サンプルなどの、処理ブロックに関するサンプル値の行列を受信する。ビデオエンコーダ(603)は、例えばレート-歪み最適化を用いて、処理ブロックが最良に符号化されるのが、イントラモードを用いてなのか、インターモードを用いてなのか、それとも双予測モードを用いてなのかを決定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(603)は、イントラ予測技術を使用して処理ブロックを符号化ピクチャへと符号化することができ、処理ブロックがインターモード又は双予測モードで符号化される場合、ビデオエンコーダ(603)は、それぞれ、インター予測技術又は双予測技術を使用して処理ブロックを符号化ピクチャへと符号化することができる。特定の映像符号化技術において、マージモードは、予測子の外側の符号化動きベクトル成分の利益なしで1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードとし得る。特定の他の映像符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例において、ビデオエンコーダ(603)は、例えば処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの、他のコンポーネントを含む。
【0067】
図6の例において、ビデオエンコーダ(603)は、図6に示すように共に結合された、インターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、全般コントローラ(621)、及びエントロピーエンコーダ(625)を含んでいる。
【0068】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、先行ピクチャ内及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術に従った冗長情報の記述、動きベクトル、マージモード情報)を生成し、そして、何らかの好適技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。一部の例において、参照ピクチャは、符号化された映像情報に基づいて復号された参照ピクチャである。
【0069】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、一部のケースにおいて、ブロックを、同じピクチャ内の既に符号化されたブロックと比較し、変換後の量子化係数を生成し、一部のケースでは、イントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成する。一例において、イントラエンコーダ(622)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0070】
全般コントローラ(621)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するように構成される。一例において、全般コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラモードであるとき、全般コントローラ(621)は、残差計算器(623)による使用のためにイントラモード結果を選択するようにスイッチ(626)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御し、モードがインターモードであるときには、全般コントローラ(621)は、残差計算器(623)による使用のためにインター予測結果を選択するようにスイッチ(626)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御する。
【0071】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例において、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次いで、変換係数が量子化処理にかけられて、量子化された変換係数が得られる。様々な実施形態において、ビデオエンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって好適に使用されることができる。例えば、インターエンコーダ(630)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(622)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックが好適に処理されて、復号されたピクチャが生成され、そして、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ得るとともに、一部の例では参照ピクチャとして使用され得る。
【0072】
エントロピーエンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、例えばHEVC標準などの好適な標準に従って種々の情報を含めるように構成される。一例において、エントロピーエンコーダ(625)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適情報を、ビットストリームに含めるように構成される。なお、本開示に係る事項によれば、インターモード又は双予測モードのいずれかのマージサブモードにてブロックを符号化するとき、残差情報は存在しない。
【0073】
図7は、本開示の他の一実施形態に従ったビデオデコーダ(710)の図を示している。ビデオデコーダ(710)は、符号化映像シーケンスの一部である符号化されたピクチャを受信し、該符号化されたピクチャを復号して再構成ピクチャを生成するように構成される。一例において、ビデオデコーダ(710)は、図3の例におけるビデオデコーダ(310)の代わりに使用される。
【0074】
図7の例において、ビデオデコーダ(710)は、図7に示すように共に結合された、エントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラデコーダ(772)を含んでいる。
【0075】
エントロピーデコーダ(771)は、符号化されたピクチャから、符号化されたピクチャを構成する構文要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は他のサブモードにおける後者の2つなど)、それぞれイントラデコーダ(772)又はインターデコーダ(780)による予測のために使用される特定のサンプル又はメタデータを特定することができる予測情報(例えば、イントラ予測情報又はインター予測情報など)、例えば量子化された変換係数の形態をした残差情報、及びこれらに類するものを含むことができる。一例において、予測モードがインターモード又は双予測モードであるときには、インター予測情報がインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプであるときには、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化にかけられることができ、残差デコーダ(773)に提供される。
【0076】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0077】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0078】
残差デコーダ(773)は、逆量子化を実行して、逆量子化された変換係数を抽出し、そして、逆量子化された変換係数を処理して、残差を周波数ドメインから空間ドメインに変換するように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)を必要としてもよく、その情報は、エントロピーデコーダ(771)によって提供され得る(これは、低ボリュームの制御情報のみとし得るのでデータ経路は不図示)。
【0079】
再構成モジュール(774)は、残差デコーダ(773)によって出力される残差と、(場合に応じてインター又はイントラ予測モジュールによって出力される)予測結果とを空間ドメインで組み合わせて、再構成ブロックを形成するように構成される。再構成ブロックは、再構成ピクチャの一部とすることができ、代わって再構成ピクチャは、再構成映像の一部とすることができる。なお、視覚的な品質を向上させるために、例えばデブロッキング処理及びそれに類するものなど、他の好適な処理を実行することができる。
【0080】
なお、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、如何なる好適技術を用いて実装されてもよい。一実施形態において、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を用いて実装され得る。他の一実施形態において、ビデオエンコーダ(303)、(503)及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装され得る。
【0081】
II. インターピクチャ予測モード
様々な実施形態において、ピクチャは、例えばツリー構造に基づく分割スキームを用いて、複数のブロックに分割されることができる。そいて、得られたブロックは、例えばイントラ予測モード、インター予測モード(例えば、マージモード、スキップモード、アドバンスト動きベクトル予測(AVMP)モード)、及びこれらに類するものなどの異なる処理モードに従って処理されることができる。イントラ符号化ブロックは、イントラ予測モードで符号化されるブロックであるとし得る。対照的に、インター符号化ブロックは、インター予測モードで処理されるブロックであるとし得る。
【0082】
1. マージモード
現在ブロックと称する現在処理されているブロックがマージモードに従って処理されるとき、現在ブロックについてのマージ候補リストを、一組の空間的及び/又は時間的に隣接するブロックに従って構築することができる。マージ候補リスト内の動き情報候補のうちの1つが、現在ブロックについての動き情報を決定又は導出するために選択され得る。どの候補が選択されるかを指し示すマージインデックスが、エンコーダからデコーダへシグナリングされ得る。
【0083】
図8は、一実施形態に従った、現在ブロック及びマージモードに従った対応するマージ候補の概略図である。この例では、マージモードに従って処理される現在ブロック(810)に対してマージ候補リストが構築される。マージモード処理では、A1、B1、B0、A0、B2、C0、及びC1と表記される一組の隣接ブロックが規定される。マージ候補リストを構築するための空間候補は、現在ブロック(810)と同じピクチャ内にある空間的に隣接するブロックA1、B1、B0、A0、及びB2に従って決定されることができる。また、マージ候補リストを構築するための時間候補は、別の符号化ピクチャ内にあって現在ブロック(810)のコロケートブロックと隣接する又は重なるブロックに相当するものである時間隣接ブロックC0及びC1に従って決定されることができる。一例において、時間隣接ブロックC1は、現在ブロック(810)の中心に近い(例えば、隣接する)位置に対応する位置にあることができる。
【0084】
一部の例において、マージ候補リストは、マージ候補の所定の最大数(Cmと表される)を持ち得る。マージ候補は、ある順序に従ってマージ候補リストにリスト化され得る。一例において、所定の順序に従って、第1の数Caのマージ候補が、空間的に隣接するブロックから、順序{A1,B1,B0,A0,B2}に従って導出され得るとともに、第2の数Cb=Cm-Caのマージ候補が、時間的に隣接するブロックから、順序{C0,C1}に従って導出され得る。
【0085】
一部のシナリオにおいて、特定の隣接ブロックからの候補動き情報が利用可能でないことがある。例えば、隣接ブロックが、イントラ予測されていたり、現在ブロック(810)を含むスライス又はタイルの外にあったり、あるいは、現在ブロック(810)と同じ符号化ツリーブロック(CTB)行になかったりすることがある。一部のシナリオでは、様々な隣接ブロックからの候補動き情報が冗長であることがある。一部の例において、冗長なマージ候補は、(例えば、剪定プロセスを実行することによって)マージ候補リストから削除され得る。マージ候補リスト内の(冗長な候補を除去した)利用可能なマージ候補の総数が、マージ候補の最大数Cmよりも小さいとき、(例えば、予め設定されたルールに従って)1つ以上の更なるマージ候補を追加してマージ候補リストを充たすことができる。例えば、追加のマージ候補は、組み合わされた双予測候補及び/又はゼロ動きベクトル候補を含むことができる。
【0086】
マージ候補リストが構築された後、エンコーダにて、評価プロセスを実行して、マージ候補リストからマージ候補を選択することができる。例えば、各マージ候補に対応するレート歪み(RD)性能を計算することができ、最良のRD性能を有するものを選択することができる。従って、選択されたマージ候補に関連付けられたマージインデックスを、現在ブロック(810)に対して決定して、デコーダにシグナリングすることができる。
【0087】
デコーダにて、現在ブロック(810)のマージインデックスを受信することができる。エンコーダ側で生成されたマージ候補リストと同じマージ候補リストを生成するための、上述と同様のマージ候補リスト構築プロセスが実行され得る。マージ候補リストが構築された後、一部の例では如何なる更なる評価も行うことなく、受信したマージインデックスに基づいてマージ候補リストからマージ候補を選択することができる。選択されたマージ候補の動き情報は、現在ブロック(810)の後続の動き補償予測に使用されることができる。
【0088】
一部の例ではスキップモードも導入される。例えば、スキップモードでは、上述のようにマージモードを用いて現在ブロックを予測することで、残差情報を導入することなく、一組の動き情報を決定することができる。スキップフラグが現在ブロックに関連付けられ得る。スキップフラグと現在ブロックの関連動き情報を指し示すマージインデックスとが、ビデオデコーダにシグナリングされ得る。例えば、インターピクチャ予測スライス内のCUの始まりで、以下を意味するスキップフラグ、すなわち、そのCUが1つのPU(2N×2N)のみを含むこと;動き情報を導出するためにマージモードが使用されること、及びビットストリーム内に残差情報が存在しないこと、を意味するスキップフラグがシグナリングされ得る。デコーダ側で、スキップフラグに基づいて、マージインデックスに基づいて予測ブロックを決定して、残差情報を付加することなくそれぞれの現在ブロックを復号し得る。従って、ここに開示されるマージモードを用いた映像コーディングのための様々な方法は、スキップモードと組み合わせて利用されることができる。
【0089】
一部の実施形態において、ビットストリーム内でシグナリングされるマージフラグ又はスキップフラグは、現在ブロック(810)がマージモードに従ってコーディングされるかを指し示すことができる。マージフラグがTRUEに設定される場合、マージインデックスは、現在ブロックについての動き情報を提供するためにマージ候補リスト内のどの候補が使用されることになるかを指し示すためにシグナリングされ得る。一部の実施形態において、(4つの空間的に隣接するブロックからの)最大4つの空間マージ候補及び(1つの時間的に隣接するブロックからの)最大1つの時間マージ候補が、マージ候補リストに追加され得る。マージ候補リストのサイズを指し示すために構文MaxMergeCandsNumを規定することができる。構文MaxMergeVandsNumをビットストリーム内でシグナリングすることができる。
【0090】
1.1 空間候補に対する冗長性検査
一部の実施形態では、冗長性検査プロセスを実行するための計算複雑性を低減させるために、全ての可能な候補ペアが冗長性検査プロセスにかけられるわけではない。その代わりに、一部の例において、冗長性検査プロセスを所定の候補ペアに制限することができる。特定の候補が、対応する候補ペアにおける他の候補のものとは異なる動き情報を持つとき、その特定の候補がマージ候補リストに追加され得る。
【0091】
図9は、一実施形態に従った、冗長性検査プロセスにかけられるマージ候補のペアのチャートである。図9は、矢印(902、904、906、912、及び916)によって結び付けられる以下の所定の候補ペア(それらのブロック参照によって表記する)を示しており、それは、{A1,B1}(矢印902によって結び付けている)、{A1,A0}(矢印904によって結び付けている)、{A1,B2}(矢印906によって結び付けている)、{B1,B0}(矢印912によって結び付けている)、及び{B1,B2}(矢印916によって結び付けている)を含む。少なくとも1つの実施形態において、図9に規定される候補ペアのみが冗長性検査プロセスにかけられる。
【0092】
1.2 時間候補に対する動きベクトルスケーリング
図10は、一実施形態に従った、時間マージ候補を導出するための動きベクトルスケーリングの概略図である。一実施形態において、1つの時間候補をマージ候補リストに追加することができる。一部の実施形態において、現在ピクチャ(1010)内の現在ブロック(1012)についての時間マージ候補の導出にて、コロケート参照ピクチャ(1020)に含まれるコロケートブロック(1022)に基づいて、スケーリングされた動きベクトル(1014)を導出することができる。どのピクチャがコロケート参照ピクチャ(1020)として使用されるかを指し示す参照ピクチャリストが、例えばビットストリームのスライスヘッダ内など、ビットストリーム内でシグナリングされ得る。現在ブロック(1012)についての時間マージ候補としてのスケーリングされた動きベクトル(1014)は、ピクチャオーダカウント(POC)距離Tb及びTdを用いて、コロケートブロック(1022)の動きベクトル(1024)からスケーリングされ得る。Tbは、現在ピクチャ(1010)と現在ピクチャ(1010)についての参照ピクチャ(1030)との間のPOC差であると定義される。Tdは、コロケートピクチャ(1020)と、コロケートピクチャ(1020)についての参照ピクチャ(1040)との間のPOC差として定義される。時間マージ候補の参照ピクチャインデックスはゼロに設定され得る。
【0093】
また、時間候補の位置は、図8に示した時間隣接ブロックC0及びC1からの時間候補の間で選択され得る。一部の実施形態において、時間隣接ブロックC0からの時間候補が最初に検査されて使用される。例えば時間隣接ブロックC0が利用可能でなかったり、イントラ符号化されたり、あるいは現在のCTUの行の外にあったりする場合など、時間隣接ブロックC0からの時間候補が利用できない場合には、時間隣接ブロックC1からの時間候補が使用され得る。
【0094】
1.3 履歴ベースの動きベクトル導出
一部の実施形態では、空間MV候補及び時間MV候補の後に、1つ以上の履歴ベースMV予測(history-based MV prediction;HMVP)候補を、マージ候補リストに追加することができる。HMVP方法は、1つ以上の先行符号化ブロックの動き情報をテーブルに格納することを含み、そのテーブルから、現在ブロックについての1つ以上のHMVP候補を選択することができる。1つ以上のHMVP候補を有するテーブルを、符号化/復号プロセスの間、維持することができる。該テーブルは、新たなCTU行を処理することになるときにリセットされる(エンプティにされる)ことができる。一部の実施形態において、サブブロックインター符号化ではないCUがあると常に、関連する動き情報が新HMVP候補としてテーブルの最後のエントリに追加され得る。
【0095】
一部の実施形態において、HMVPテーブルのサイズは6に設定されることができ、これは、最大6個のHMVP候補をテーブルに含め得ることを指し示す。新たな動き候補をテーブルに挿入するとき、制約付き先入れ先出し(FIFO)ルールを利用することができ、先ず、テーブル内に既に同じHMVPが存在するかを割り出すために冗長性検査が適用される。テーブルに格納されている候補のうちの特定の1つが、追加されるHMVP候補と同じである場合、格納されている候補のうちのその特定の1つをテーブルから削除することができるとともに、格納されている候補のうちのその特定の1つの削除によって残された空きに応答して、その後にテーブルに入る他の全てのHMVP候補を繰り上げることができる。
【0096】
一部の実施形態において、HMVP候補がマージ候補リスト構築プロセスで使用されるとき、テーブル内の最新の1つ以上のHMVP候補が、逆の時系列順に従って検査され、時間候補の後ろで候補リストに挿入され得る。一部の実施形態において、それらのHMVP候補について、既にマージ候補リスト内にある空間又は時間マージ候補に対する冗長性検査を行うことができる。
【0097】
一部の実施形態において、冗長性検査処理の数を減らすために、マージ候補リスト構築プロセスで使用されるHMVP候補の数を制限することによって、冗長性検査を簡略化することができる。一部の例において、マージ候補リスト構築プロセスで使用されるHMVP候補の数は(N<=4)? M:(8-N)として設定されることができ、ここで、Nはマージ候補リスト内の既存の候補の数を示し、Mはテーブル内で利用可能なHMVP候補の数を示す。一部の実施形態において、マージ候補リスト内の候補の総数が最大許容マージ候補数マイナス1に達すると、HMVPからの候補をマージ候補リストに追加するプロセスを終了することができる。
【0098】
1.3 ペアごとの平均マージ候補導出
一部の実施形態において、現在のマージ候補リスト内の予め定められた複数の候補ペアを平均することによって、ペアごとの平均候補が生成され得る。例えば、予め定められたペアは、一実施形態において、{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)}として定められ、これらの数字はマージ候補リストへのマージインデックスを表す。一部の例において、各参照ピクチャリストに対して別々に平均動きベクトルが計算される。平均されるべき両方の動きベクトルが1つのリスト内で利用可能である場合、これら2つの動きベクトルは、それらが相異なる参照ピクチャを指す場合であっても平均されることができる。一方の動きベクトルのみが利用可能である場合、その利用可能な一方を直接使用することができる。どちらの動きベクトルも利用可能でない場合、一例において、それぞれのペアをスキップすることができる。ペアごとの平均候補は、一部の実施形態において、マージ候補リストを構築する際に、それら組み合わされた候補を置き換える。
【0099】
一部の実施形態において、ペアごとの平均マージ候補が追加された後にマージ候補リストが満杯でない場合、最大マージ候補数に達するまでマージ候補リストの末尾に1つ以上のゼロMVを追加することができる。
【0100】
2. 動きベクトル差付きマージ(MMVD)モード
一部の実施形態において、現在ブロックの動きベクトル予測子を決定するために、動きベクトル差付きマージ(MMVD)モードが使用される。MMVDモードは、スキップモード又はマージモードが有効にされるときに使用されることができる。MMVDモードは、スキップモード又はマージモードのマージ候補リスト上のマージ候補を再利用する。例えば、参照ピクチャにおける開始点を提供するために、マージ候補リストから選択されたマージ候補を用いることができる。現在ブロックの動きベクトルは、開始点と、該開始点に対する動きの大きさ及び方向を含む動きオフセットとで表現され得る。エンコーダ側で、マージ候補の選択及び動きオフセットの決定は、探索プロセス(評価プロセス)に基づくことができる。デコーダ側で、選択されたマージ候補及び動きオフセットは、エンコーダ側からのシグナリングに基づいて決定されることができる。
【0101】
MMVDモードでは、選択されたマージ候補が、シグナリングされた動きベクトル差(MVD)情報によって更に精緻化され得る。一部の実施形態において、MVD情報は、マージ候補フラグと、動きの大きさを規定するインデックスと、動き方向の指示のためのインデックスとを含む。MMVDモードでは、マージ候補リスト内の候補のうちの1つが、MV基準として使用されるように選択され得る。どの候補がMV基準として選択されるかを規定するためにマージ候補フラグがシグナリングされる。
【0102】
開始点MVの水平成分又は垂直成分に関する予め定められたオフセットを規定するために、距離インデックスを使用することができる。例えば、複数の予め定められたピクセル距離を、各々0から7までのインデックスに関連付けて、表1に示す。距離インデックスのインデックスを有するピクセル距離は、複数のピクセル距離から決定されることができ、動きの大きさを提供するために使用される。開始MVの水平成分又は垂直成分のいずれかにオフセットが加算される。距離インデックスと予め定められたオフセットとの関係が、表1に規定される。
【表1】
【0103】
方向インデックスが、開始点に対するMVDの方向を表す。例えば、00から11(バイナリ)までのインデックスを持つ4つの方向を表2に示す。方向インデックスのインデックスを有する方向は、4つの方向から決定されることができ、開始点に対する動きオフセットの方向を提供するために使用される。
【表2】
【0104】
一部の実施形態において、MVD方向の定義は、開始MVの情報に従って変わり得る。開始MVが非予測MV又は両方のリストが現在ピクチャの同じ側を指す(すなわち、2つの参照ピクチャのPOCがどちらも現在ピクチャのPOCよりも大きい又はどちらも現在ピクチャのPOCよりも小さい)双予測MVである場合、表2に従って特定される方向を用いて、開始MVに加算されるMVオフセットの方向を規定することができる。開始MVが、2つのMVが現在ピクチャの相異なる側を指す(すなわち、一方の参照ピクチャのPOCが現在のピクチャのPOCよりも大きく、且つ他方の参照ピクチャのPOCが現在ピクチャのPOCよりも小さい)双予測MVである場合、表2に従って特定される方向を用いて、開始MVのlist0 MV成分のMVオフセット及びlist1 MV成分の逆方向のMVオフセットを加算することができる。
【0105】
図11は、一実施形態に従った、MMVDマージモードにおいて評価される2つの開始点を取り囲む所定の点の概略図である。図11に示す例では、現在ブロックの第1及び第2の動きベクトルが、それぞれ、参照ピクチャリストL0及びL1内の2つの参照ピクチャ(1110)及び(1140)に関連付けられている。2つの開始点(1112)及び(1142)を、参照ピクチャ(1110)及び(1140)にて決定することができる。
【0106】
符号化側での例において、開始点(1112)及び(1142)に基づいて、参照ピクチャ(1110)及び(1140)内で開始点(1112)及び(1142)から垂直方向(+Y又は-Yで表される)又は水平方向(+X及び-Xで表される)に延びる複数の予め定められた点が評価され得る。評価に基づいて、マージリストからマージ候補を選択することができ、動き方向及び動き距離も決定することができる。例えば、選択されたマージ候補に基づいて、ベース候補インデックスを決定することができる。例えば予め定められた点(例えば、1116又は1146)に対応するものなど、選択された動きベクトル予測子に基づいて、開始点(1112又は1142)に対する点(例えば、1116又は1146)の方向及び距離を決定することができる。それに従って、表1及び表2により、方向インデックス及び距離インデックスを決定することができる。復号側での例において、シグナリングされた開始点、方向、及び距離に基づいて、MMVDに従った精緻化された動きベクトルを決定することができる。
【0107】
3. アフィン予測モード
一部の例において、現在ブロック及び/又は現在ブロックのサブブロックの動きベクトルは、アフィンモデル(例えば、6パラメータアフィンモデル又は4パラメータアフィンモデル)を用いて導出されることができる。図12Aは、一実施形態に従った(3つの制御点による)6パラメータアフィンモデルの概略図である。
【0108】
一例において、アフィン符号化ブロック(例えば、現在ブロック1202)の6つのパラメータは、現在ブロックの3つの異なる位置(例えば、図12Aの左上、右上、及び左下の隅にある制御点CP0、CP1、及びCP2)における3つの動きベクトル(3つの制御点動きベクトル(例えばCPMV、CPMV、及びCPMVであるCPMV)とも称する)によって表され得る。一部の実施形態において、6パラメータアフィンモデルでは、現在ブロック(1202)内のサンプル位置(x,y)における動きベクトルは、
【数1】
として導出されることができ、ここで、(mv0x,mv0y)は、左上隅の制御点(CPMV)の動きベクトルを表し、(mv1x,mv1y)は、右上隅の制御点(CPMV)の動きベクトルを表し、そして、(mv2x,mv2y)は、左下隅の制御点(CPMV)の動きベクトルを表す。また、Wは、現在ブロック(1202)の幅を表し、Hは、現在ブロック(1202)の高さを表す。
【0109】
図12Bは、一実施形態に従った(2つの制御点による)4パラメータアフィンモデルの概略図である。他の一例において、単純化されたアフィンモデルは、4つのパラメータを用いてアフィン符号化ブロック(例えば、現在ブロック1202)の動き情報を記述し、それは、現在ブロックの2つの異なる位置(例えば、図12Bの左上及び右上の隅にある制御点CP0及びCP1)における2つの動きベクトル(例えばCPMV及びCPMVである2つのCPMVとも称する)によって表され得る。一部の実施形態において、4パラメータアフィンモデルでは、現在ブロック(1202)内のサンプル位置(x,y)における動きベクトルは、
【数2】
として導出されることができ、ここで、(mv0x,mv0y)は、左上隅の制御点(CPMV)の動きベクトルを表し、(mv1x,mv1y)は、右上隅の制御点(CPMV)の動きベクトルを表す。また、Wは、現在ブロック(1202)の幅を表す。
【0110】
一部の実施形態において、動き補償予測を単純化するために、サブブロックベースのアフィン予測法が適用される。図12Cは、一実施形態に従った、アフィン予測法に従って符号化される現在ブロックのサブブロックに対して導出される動きベクトルの概略図である。図12Cにおいて、現在ブロック(1202)はサブブロックに分割されることができる。この例では、各サブブロックが4×4ルマサブブロックであるとし得る。それぞれのサブブロックの中心に対応するサブブロック動きベクトル(MVa乃至MVp)が、上述の4パラメータアフィン予測法に従って計算され、1/16の小数精度に丸められ得る。計算されたサブブロック動きベクトルに従って、サブブロックに対する動き補償予測ブロックデータが生成され得る。
【0111】
一部の実施形態において、クロマコンポーネントのサブブロックサイズも4×4に設定することができる。4×4クロマサブブロックのMVは、4つの対応する4×4ルマサブブロックのMVの平均として計算され得る。
【0112】
一部の実施形態において、CPMVは明示的なものとし得る。一部の実施形態において、CPMVは、例えばアフィンマージモード又はアフィンAMVPモードなどの種々のCPMV予測法に従って決定され得る。
【0113】
3.1. アフィンマージモード
図13は、一実施形態に従った、アフィン予測法によって符号化される現在ブロック(1301)に関する空間隣接ブロック及び時間隣接ブロックの概略図である。図示されるように、空間隣接ブロックは、A0、A1、A2、B0、B1、B2、及びB3(それぞれ、1302、1303、1307、1304、1305、1306、及び1308)と表記され、時間隣接ブロックは、C0(1312)と表記される。一部の例において、空間隣接ブロックA0、A1、A2、B0、B1、B2、及びB3、並びに現在ブロック(1301)は、同一ピクチャ内にある。一部の例において、時間隣接ブロックC0は、参照ピクチャ内にあり、現在ブロック(1301)の外側の位置に対応し、且つ現在ブロック(1301)の右下隅に隣接する。
【0114】
これら空間隣接ブロック及び/又は時間隣接ブロックのうちの1つ以上の動き情報に基づいて、アフィンマージモードを使用して、動き情報候補のリスト(アフィンマージ候補リストとも称する)を構築することができる。一部の例において、アフィンマージモードは、現在ブロック(1301)が8サンプル以上の幅及び高さを持つ場合に適用され得る。アフィンマージモードに従って、リスト上の動き情報候補に基づいて現在ブロック(1301)のCPMVが決定され得る。一部の例において、動き情報候補のリストは、最大5つのCPMV候補を含むことができ、どのCPMV候補が現在ブロックに対して使用されるかを指し示すために、インデックスをシグナリングすることができる。一部の実施形態において、CPMV候補は、アフィンモデルに関する全てのCPMVを含む。
【0115】
一部の実施形態において、アフィンマージ候補リストは、継承アフィン候補、構築アフィン候補、及びゼロMVを含む3つのタイプのCPVM候補を有することができる。継承アフィン候補は、隣接ブロックのCPMVからの外挿によって導出され得る。構築アフィン候補は、隣接ブロックの並進MVを用いて導出され得る。
【0116】
一例において、左隣接ブロック(A0及びA1)からの1つのブロックと、上隣接ブロック(B0、B1、及びB2)からの1つとを含む、隣接ブロックの対応するアフィン動きモデルから導出される最大2つの継承アフィン候補が存在し得る。左からの候補について、隣接ブロックA0及びA1を順に検査することができ、隣接ブロックA0及びA1からの最初の利用可能な継承アフィン候補が、左からの継承アフィン候補として使用される。上からの候補について、隣接ブロックB0、B1、及びB2を順に検査することができ、隣接ブロックB0、B1、及びB2からの最初の利用可能な継承アフィン候補が、上からの継承アフィン候補として使用される。一部の例において、これら2つの継承アフィン候補の間では剪定検査は実行されない。
【0117】
隣接アフィンブロックが特定されるとき、現在ブロック(1301)のアフィンマージリストに追加されるべき対応する継承アフィン候補を、隣接アフィンブロックの制御点動きベクトルから導出することができる。図13の例において、隣接ブロックA1がアフィンモードで符号化されるとき、ブロックA1の左上隅(制御点CP0A1)、右上隅(制御点CP1A1)、及び左下隅(制御点CP2A1)の動きベクトルを取得することができる。ブロックA1が4パラメータアフィンモデルを用いて符号化される場合、現在ブロック(1301)の継承アフィン候補としての2つのCPMVが、制御点CP0A1及び制御点CP1A1の動きベクトルに従って計算され得る。ブロックA1が6パラメータアフィンモデルを用いて符号化される場合、現在ブロック(1301)の継承アフィン候補としての3つのCPMVが、制御点CP0A1、制御点CP1A1、及び制御点CP2A1の動きベクトルに従って計算され得る。
【0118】
さらに、各制御点の隣接する並進動き情報を組み合わせることによって構築アフィン候補を導出することができる。制御点CP0、CP1、及びCP2の動き情報は、規定された空間隣接ブロックA0、A1、A2、B0、B1、B2、及びB3から導出される。
【0119】
例えば、CPMV(k=0,1,2,3)が4つの異なる制御点の動きベクトルを表し、ここで、CPMVは制御点CP0に対応し、CPMVは制御点CP1に対応し、CPMVは制御点CP2に対応し、そして、CPMVは、時間隣接ブロックC0に基づく時間制御点に対応する。CPMVについて、隣接ブロックB2、B3、及びA2を順に検査することができ、隣接ブロックB2、B3、及びA2からの最初の利用可能な動きベクトルがCPMVとして使用される。CPMVについて、隣接ブロックB1及びB0を順に検査することができ、隣接ブロックB1及びB0からの最初の利用可能な動きベクトルがCPMVとして使用される。CPMVについて、隣接ブロックA1及びA0を順に検査することができ、隣接ブロックA1及びA0からの最初の利用可能な動きベクトルがCPMVとして使用される。さらに、利用可能であれば、時間隣接ブロックC0の動きベクトルをCPMVとして使用することができる。
【0120】
4つの制御点CP0、CP1、CP2、及び時間制御点のCPMV、CPMV、CPMV、及びCPMVが得られた後、{CPMV,CPMV,CPMV}、{CPMV,CPMV,CPMV}、{CPMV,CPMV,CPMV}、{CPMV,CPMV,CPMV}、{CPMV,CPMV}、及び{CPMV,CPMV}の順に構築されるアフィンマージ候補を含むように、アフィンマージ候補リストを構築することができる。3つのCPMVの任意の組み合わせが、6パラメータアフィンマージ候補を形成し得るとともに、2つのCPMVの任意の組み合わせが、4パラメータアフィンマージ候補を形成し得る。一部の例において、動きスケーリングプロセスを回避するために、制御点のグループの参照インデックスが異なる場合、CPMVの対応する組み合わせを廃棄することができる。
【0121】
一部の実施形態において、継承アフィンマージ候補及び構築アフィンマージ候補が検査された後、リストがまだ満杯でない場合、リストの末尾にゼロMVが挿入される。
【0122】
3.2. アフィンAMVPモード
一部の実施形態において、現在ブロック(1301)が16サンプル以上の幅及び高さを持つ場合に、アフィンAMVPモードを使用して動き情報候補のリストを構築することができる。アフィンAMVPモードによれば、アフィンAMVPモードが使用されるかを指し示すために、CUレベルでのアフィンフラグをビットストリーム内でシグナリングすることができ、その後に、4パラメータアフィンモデルが使用されるのか、それとも6パラメータアフィンモデルが使用されるのかを指し示すために、別のフラグをシグナリングすることができる。アフィンAMVPモードでは、現在ブロックのCPMVと、対応するCPMV予測子(CPMVP)との差を、ビットストリーム内でシグナリングすることができる。一部の実施形態において、アフィンAVMP候補リストは、2候補のサイズを持つことができ、以下の4タイプのCPVM候補、すなわち、(1)1つ以上の隣接CUのCPMVから外挿された継承アフィンAMVP候補、(2)1つ以上の隣接CUの並進MVを用いて導出された構築アフィンAMVP候補、(3)1つ以上の隣接CUからの並進MV、及び(4)ゼロMVを含む4タイプのCPVM候補を順に用いることによって生成される。
【0123】
継承アフィンAMVP候補を導出することに関し、一部の例では、継承アフィンAMVP候補の検査順序は、継承アフィンマージ候補の検査順序と同じである。AVMP候補は、現在ブロックと同じ参照ピクチャを持つアフィンCUからのみ決定され得る。一部の実施形態において、継承アフィン動き予測子を候補リストに挿入するとき、剪定プロセスは適用されない。
【0124】
構築アフィンAMVP候補を導出することに関し、一部の例では、構築AMVP候補は、アフィンマージ候補構築において使用されるのと同じ検査順序で、図13に示した1つ以上の隣接ブロックから導出され得る。さらに、隣接ブロックの参照ピクチャインデックスも検査される。例えば、インター符号化され且つ現在ブロックと同じ参照ピクチャを持った、検査順で最初のブロックを使用することができる。一部の実施形態において、構築アフィンAMVP候補は1つのみ存在することができる。一部の実施形態において、現在ブロックが4パラメータアフィンモードに従って符号化され、且つそのCP0及びCP1に対応する検査済み隣接ブロックの制御点動きベクトルがどちらも利用可能である場合、これらの検査された隣接ブロックの制御点動きベクトルの集合を、アフィンAMVPリストに候補として追加することができる。現在ブロックが6パラメータアフィンモードに従って符号化され、且つそのCP0、CP1、及びCP2に対応する検査済み隣接ブロックの制御点動きベクトルが全て利用可能である場合、これらの検査された隣接ブロックの制御点動きベクトルの集合を、アフィンAMVPリストに候補として追加することができる。そうでない場合には、検査された隣接ブロックからの構築されたAMVP候補は利用可能でないと決定され得る。
【0125】
一部の実施形態において、継承アフィンAMVP候補及び構築AMVP候補を検査した後にアフィンAVMP候補リストが2つ未満の候補を持つ場合、1つ以上の隣接ブロックからの並進MVに従って導出された候補を、アフィンAVMP候補リストに追加することができる。リストがまだ満杯でない場合に、最後に、ゼロMVを用いてアフィンAVMP候補リストを充たすことができる。
【0126】
4. サブブロックベース時間動きベクトル予測(SbTMVP)モード
図14Aは、一実施形態に従った、サブブロックベース時間動きベクトル予測(subblock-based temporal motion vector prediction;SbTMVP)方法を用いて現在ブロック(1411)に対する予測動き情報を決定するために使用されることが可能な空間隣接ブロックの概略図である。図14Aは、現在ブロック(1411)と、A0、A1、B0、及びB1(それぞれ、1412、1413、1414、及び1415)と表記されるその空間隣接ブロックとを示している。一部の例において、空間隣接ブロックA0、A1、B0、及びB1、並びに現在ブロック(1411)は、同じピクチャ内にある。
【0127】
図14Bは、一実施形態に従った、例えばこの非限定的な例でのブロックA1などの、選択された空間隣接ブロックに基づいて、SbTMVP方法を用いて現在ブロック(1411)のサブブロックについて動き情報を決定することの概略図である。この例において、現在ブロック(1411)は現在ピクチャ(1410)内にあり、参照ブロック(1461)は、参照ピクチャ(1460)内にあって、動きベクトル(1422)によって示される現在ブロック(1411)と、参照ブロック(1461)との間の動きシフト(又は変位)に基づいて特定され得る。
【0128】
一部の実施形態において、HEVCにおける時間動きベクトル予測(TMVP)と同様に、SbTMVPは、現在ピクチャ内の現在ブロックに対して、参照ピクチャ内の様々な参照サブブロックの動き情報を使用する。一部の実施形態において、TMVPによって使用されるのと同じ参照ピクチャがSbTVMPに使用され得る。一部の実施形態において、TMVPはCUレベルで動き情報を予測するが、SbTMVPはサブCUレベルで動きを予測する。一部の実施形態において、TMVPは、現在ブロックの右下隅又は中心に隣接する対応位置を有するものであるコロケートブロックからの時間動きベクトルを使用し、SbTMVPは、現在ブロックの空間隣接ブロックのうちの1つからの動きベクトルに基づいて動きシフトを実行することによって特定されることができるものである参照ブロックからの時間動きベクトルを使用する。
【0129】
例えば、図14Aに示されるように、SbTVMPプロセスにおいて、隣接ブロックA1、B1、B0、及びA0が順に検査され得る。例えば参照ピクチャ(1460)内の参照ブロックAR1を指す動きベクトル(1422)を有するブロックA1など、参照ピクチャ(1460)をその参照ピクチャとして使用する動きベクトルを有する最初の空間隣接ブロックが特定されると直ちに、この動きベクトル(1422)を、動きシフトを実行するために使用することができる。空間隣接ブロックA1、B1、B0、及びA0からそのような動きベクトルが利用可能でない場合には、動きシフトは(0,0)に設定される。
【0130】
動きシフトを決定した後、現在ブロック(1411)の位置と、決定された動きシフトとに基づいて、参照ブロック(1461)を特定することができる。図14Bにおいて、参照ブロック(1461)は、参照動き情報MRa乃至MRpを有する16個のサブブロックに更に分割されることができる。一部の例において、参照ブロック(1461)内の各サブブロックについての参照動き情報は、それぞれのサブブロックの中心サンプルをカバーする最小の動きグリッドに基づいて決定され得る。動き情報は、動きベクトル及び対応する参照インデックスを含み得る。現在ブロック(1411)は16個のサブブロックに更に分割されることができ、TMVPプロセスと同様にして、一部の例では時間スケーリングを用いて、参照動き情報MRa乃至MRpから現在ブロック(1411)内のサブブロックについての動き情報MVa乃至MVpを導出することができる。
【0131】
SbTMVPプロセスで使用されるサブブロックサイズは、固定(又はその他の方法で所定)であることができ、あるいはシグナリングされることができる。一部の例において、SbTMVPプロセスで使用されるサブブロックサイズは、8×8サンプルとすることができる。一部の例において、SbTMVPプロセスは、例えば8ピクセルといった固定の又はシグナリングされるサイズ以上の幅及び高さを有するブロックにのみ適用可能である。
【0132】
一例において、SbTVMP候補とアフィンマージ候補とを含んだ、組み合わせによるサブブロックベースのマージリストが、サブブロックベースマージモードのシグナリングに使用される。SbTVMPモードは、シーケンスパラメータセット(SPS)フラグによって有効又は無効にされ得る。一部の例において、SbTMVPモードが有効にされる場合、SbTMVP候補が、サブブロックベースマージ候補のリストの最初のエントリとして追加され、アフィンマージ候補によって続かれる。一部の実施形態において、サブブロックベースマージリストの最大許容サイズが5に設定される。しかしながら、他の実施形態では他のサイズが使用されてもよい。
【0133】
一部の実施形態において、追加のSbTMVPマージ候補の符号化ロジックは、他のマージ候補についてと同じである。すなわち、P又はBスライス内の各ブロックに対して、SbTMVP候補を使用するかを決定するために、追加のレート歪み検査を行うことができる。
【0134】
5. 三角予測
一部の実施形態において、インター予測のために三角予測モード(triangular prediction mode;TPM)を使用することができる。一実施形態において、TPMは、サイズが8×8サンプル以上のCUに適用され、スキップモード又はマージモードで符号化される。一実施形態において、これらの条件(8×8サンプル以上のサイズ及びスキップ又はマージモードで符号化される)を満たすCUに対して、TPMが適用されるか否かを指し示すためにCUレベルのフラグがシグナリングされる。
【0135】
図15Aは、一実施形態に従った、三角予測ユニットモードによる現在ブロックに対する2つの分割例の概略図である。TPMが使用されるとき、一部の実施形態において、CUが、図15Aに示すように、左上隅から右下隅への対角線に沿って(例えば、対角分割)、又は右上隅から左下隅への対角線に沿って(例えば、逆対角分割)、二つの三角形のパーティションに等分される。図15Aでは、現在ブロック(又はCUとも呼ばれる)(1510A)は、左上隅から右下隅に分割されて2つの三角予測ユニット(1512)及び(1514)を生じさせることができる。CU(1510B)はまた、右上隅から左下隅に分割すされて、2つの三角予測ユニット(1516)及び(1518)が生じさせることもできる。これら2つの例(1510A)及び(1510B)における各三角予測ユニット(1512)、(1514)、(1516)及び(1518)が、それ自身の動き情報を用いてインター予測され得る。
【0136】
一部の実施形態では、片予測のみが各三角予測ユニットに対して許される。従って、各三角予測ユニットが、1つの動きベクトルと1つの参照ピクチャインデックスとを有する。片予測の動き制約が適用されることで、従来の双予測法と同様に、各CUに対して2つより多い動き補償予測が実行されないことを保証することができる。斯くして、処理の複雑さを下げることができる。各三角予測ユニットに対する片予測動き情報は、片予測マージ候補リストから導出されることができる。一部の他の実施形態では、双予測が各三角予測ユニットに対して許される。従って、各三角予測ユニットに対する双予測動き情報を、双予測マージ候補リストから導出することができる。
【0137】
一部の実施形態において、CUレベルフラグが、現在CUがTPMを用いて符号化されることを指し示す場合、三角パーティションインデックスと呼ぶインデックスが更にシグナリングされる。例えば、三角パーティションインデックスは、[0,39]の範囲内の値を持つことができる。この三角パーティションインデックスを用いて、三角パーティションの方向(対角又は逆対角)と、パーティションの各々の動き情報(例えば、それぞれの片予測候補リストへのマージインデックス(又はTPMインデックスと称する))とを、デコーダ側でルックアップテーブルを通じて得ることができる。
【0138】
得られた動き情報に基づいて三角予測ユニットの各々を予測した後、一実施形態において、現在CUの対角エッジ又は逆対角エッジに沿ったサンプル値が、適応的な重みを用いたブレンドプロセスを実行することによって調整される。ブレンドプロセスの結果として、CU全体についての予測信号を得ることができる。続いて、他の予測モードと同様の手法で、CU全体に変換及び量子化プロセスを適用することができる。最後に、三角分割モードを用いて予測されたCUの動きフィールドを、例えば、CUから分割された4×4ユニットのセットにて動き情報を格納することによって作成することができる。この動きフィールドは、例えば、マージ候補リストを構築するための後続の動きベクトル予測プロセスで使用されることができる。
【0139】
5.1 片予測候補リスト構築
一部の実施形態において、TPMで処理された符号化ブロックの2つの三角予測ユニットの予測のためのマージ候補リストが、符号化ブロックの空間及び時間隣接ブロックのセットに基づいて構築され得る。このようなマージ候補リストは、ここでリストアップされるTPM候補を有するTPM候補リストと称され得る。一実施形態において、このマージ候補リストは片予測候補リストである。
【0140】
図15Bは、一実施形態に従った、三角予測モードのための片予測候補リストを構築するのに使用される空間及び時間隣接ブロックの一例を示している。一部の実施形態において、片予測候補リストは、一実施形態において5つの片予測動きベクトル候補を含む。例えば、5つの片予測動きベクトル候補は、5つの空間隣接するブロック(図15BではS1乃至S5により表記する)と2つの時間隣接するブロック(図15BではT6及びT7により表記する)とを含む7つの隣接ブロックから導出される。
【0141】
一例において、7つの隣接ブロックの動きベクトルが収集され、以下の順に、すなわち、先ず、片予測隣接ブロックの動きベクトル、(b)次いで、双予測隣接ブロックについて、L0動きベクトル(すなわち、双予測MVのL0動きベクトル部分)、L1動きベクトル(すなわち、双予測MVのL1動きベクトル部分)、及び双予測MVのL0及びL1動きベクトルの平均動きベクトル、の順に、片予測候補リストに入れられる。一例において、候補の数が5未満である場合、リストの末尾にゼロ動きベクトルが追加される。一部の他の実施形態において、マージ候補リストは、図15Bに示したものと同じ又は異なる候補位置から選択される5より少ない又は5より多い片予測又は双予測マージ候補を含んでもよい。
【0142】
一実施形態において、CUは、5つのTPM候補を含むTPM(又はマージ)候補リストを用いて三角分割モードで符号化される。従って、各三角PUに対して5つのマージ候補が使用される場合、CUを予測するのに取り得る40通りのやり方が存在する。換言すれば、2(可能な分割方向)×5(第1の三角予測ユニットに対して可能なマージインデックス)×5(第2の三角予測ユニットに対して可能なマージインデックス)-5(第1及び第2の予測ユニットのペアが同じマージインデックスを共有することが起こる数)の、40通りの異なる組み合わせの分割方向及びマージ(又はTPM)インデックスが存在することができる。例えば、2つの三角予測ユニットに対して同じマージインデックスが決定された場合には、CUは、三角予測モードの代わりに、通常のマージモードを用いて処理されることができる。
【0143】
従って、一実施形態において、[0,39]の範囲内の三角パーティションインデックスを使用して、40通りの組み合わせのうちのどの1つが使用されるかを、以下の表3に示すルックアップテーブルに基づいて表すことができる。
【表3】
【0144】
表3の最初の行(triangle_idx)は、0から39までの範囲の三角パーティションインデックスを示す。表3の2番目の行(triangle dir)は、0又は1で表される可能な分割方向を指し示す。3番目の行(Part 1 cand)は、第1の三角予測ユニットに対応し、0から4の範囲の可能な第1のマージインデックスを含む。4番目の行(Part 2 cand)は、第2の三角予測ユニットに対応し、0から4の範囲の可能な第2のマージインデックスを含む。
【0145】
例えば、1の値を持つ三角パーティションインデックスがデコーダで受信された場合、triangle_idx=1に対応するルックアップテーブルの列に基づいて、分割方向は1の値で表される分割方向(例えば、逆対角分割)であり、且つ第1及び第2のマージインデックスはそれぞれ0及び1であると割り出すことができる。三角パーティションインデックスはルックアップテーブルと関連付けられるので、三角パーティションインデックスはまた、この開示においてテーブルインデックスとも呼ばれる。
【0146】
5.2 三角パーティションエッジに沿った適応ブレンディング
一実施形態において、各三角予測ユニットをそれぞれの動き情報を用いて予測した後、対角エッジ又は逆対角エッジの周りのサンプルを導出するために、ブレンドプロセスが、2つの三角予測ユニットの2つの予測信号に適用される。ブレンドプロセスは、2つの三角予測ユニット間の動きベクトル差に応じて、重み係数の2つのグループ間で適応的に選択を行う。一実施形態において、2つの重み係数グループは以下の通りである:
(1)第1の重み係数グループ:ルマコンポーネントのサンプルに対して{7/8,6/8,4/8,2/8,1/8}、クロマコンポーネントのサンプルに対して{7/8,4/8,1/8};及び
(2)第2の重み係数グループ:ルマコンポーネントのサンプルに対して{7/8,6/8,5/8,4/8,3/8,2/8,1/8}、クロマコンポーネントのサンプルに対して{6/8,4/8,2/8}。
【0147】
第2の重み係数グループは、より多くのルマ重み係数を持ち、パーティションエッジに沿ったより多くのルマサンプルをブレンドする。
【0148】
一実施形態において、以下の条件を使用して、2つの重み係数グループのうちの一方を選択する。2つの三角パーティションの参照ピクチャが互いに異なる場合、又は2つの三角パーティション間の動きベクトル差が閾値(例えば、16ルマサンプル)よりも大きい場合、第2の重み係数グループを選択することができる。そうでない場合には、第1の重み係数グループを選択することができる。
【0149】
図16Aは、一実施形態に従った、適応ブレンドプロセスにおいて第1組の重み係数を適用する符号化ユニットの一例を示している。図16Aにおいて、第1の符号化ブロック(1610)はCUのルマサンプルを含んでおり、第2の符号化ブロック(1620)は同じCUのクロマサンプルを含んでいる。これらのブロックの各々が、2つの三角パーティションP1、P2、P1’、及びP2’に分割される。符号化ブロック(1610)又は(1620)内の対角エッジに沿ったピクセルのセットが、パーティションP1又はパーティションP1’に対しては重み係数1/8、2/8、4/8、6/8、及び7/8に、そして、パーティションP2又はパーティションP2’に対しては重み係数7/8、6/8、4/8、2/8、及び1/8に、それぞれ対応する数字1、2、4、6、及び7でラベル付けられている。例えば、2なる数字でラベル付けられたピクセルでは、ブレンド処理後のピクセルのサンプル値を:
ブレンドしたサンプル値=2/8×S1+6/8×S2 (式3)
に従って得ることができ、ここで、S1及びS2は、それぞれ、第1の三角予測ユニットP1及び第2の三角予測ユニットP2の予測に属するそれぞれのピクセルにおけるサンプル値を表す。
【0150】
また、重みのない空白の領域は、三角パーティションP1(又はP1’)に従う予測サンプルがマージなしで採用されることを表す。同様に、重みのない影付きの領域は、三角パーティションP2に従う予測サンプルがマージなしで採用されることを表す。
【0151】
図16Bは、一実施形態に従った、適応ブレンドプロセスにおいて第2組の重み係数を適用する符号化ユニットの一例を示している。図16Bにおいて、第3の符号化ブロック(1630)はCUのルマサンプルを含んでおり、第4の符号化ブロック(1640)は同じCUのクロマサンプルを含んでいる。これらのブロックの各々が、2つの三角パーティションP1、P2、P1’、及びP2’に分割される。符号化ブロック(1630)又は(1640)内の対角エッジに沿ったピクセルのセットが、パーティションP1又はパーティションP1’に対しては重み係数1/8、2/8、3/8、4/8、5/8、6/8、及び7/8に、そして、パーティションP2又はパーティションP2’に対しては重み係数7/8、6/8、5/8、4/8、3/8、2/8、及び1/8に、それぞれ対応する数字1、2、3、4、5、6、及び7でラベル付けられている。また、重みのない空白の領域は、三角パーティションP1(又はP1’)に従う予測サンプルがマージなしで採用されることを表す。同様に、重みのない影付きの領域は、三角パーティションP2に従う予測サンプルがマージなしで採用されることを表す。
【0152】
6. 結合インター・イントラ予測(CIIP)
一部の実施形態において、CUがマージモードで符号化されるとき、且つCUが少なくとも64個のルマサンプルを含む(例えば、CU幅とCU高さとを掛け合わせた積が64以上である)場合、結合インター・イントラ予測(combined inter and intra prediction;CIIP)モードが現在CUに適用されるかを指し示すために、更なるフラグをシグナリングすることができる。
【0153】
一部の実施形態において、CIIPモードが適用される場合、最初にイントラ予測モードが導出され、ここでは、DCモード、プレーナモード、水平モード、又は垂直モードを含む、最大4つの取り得るイントラ予測モードを使用することができる。その後、予測ブロックに対する予測サンプルが、通常のイントラ及びインター予測プロセスと同様にして、それぞれ、インター予測信号及びイントラ予測信号(すなわち、インター予測サンプルのセット及びイントラ予測サンプルのセット)に従って導出される。最後に、インター予測サンプルのセット及びイントラ予測サンプルのセットを、加重平均プロセスに従って結合して、CIIP予測サンプルのセットを得ることができる。
【0154】
6.1 イントラ予測モード導出
一実施形態において、DCモード、プレーナモード、水平モード、及び垂直モードを含む最大4つのイントラ予測モードを使用して、CIIPモードにおけるルマコンポーネントを予測することができる。一部の実施形態において、CUの形状が非常に幅広である(すなわち、CUの幅がCUの高さの2倍を超える)場合、水平モードは許可されないとし得る。一部の実施形態において、CU形状が非常に幅狭である(すなわち、CUの高さがCUの幅の2倍を超える)場合、垂直モードは許可されないとし得る。
【0155】
一部の実施形態において、CIIPモードは、イントラ予測のために3つの最確モード(most probable modes;MPM)を使用することができる。CIIP MPM候補リストは、次のように形成され得る:
(i)左隣接ブロック及び上隣接ブロックが、それぞれ、A及びBとして設定される;
(ii)intraModeA及びintraModeBとそれぞれ表記するブロックA及びブロックBのイントラ予測モードが、以下のように導出される:
a. XをA又はBのいずれかとする、
b. (1)ブロックXが利用可能でない場合、又は(2)ブロックXがCIIPモード若しくはイントラモードを用いて予測されない場合、又は(3)ブロックXが現在CTUの外側にある場合、intraModeAはDCに設定される、そして、
c. それ以外の場合、intraModeAは、(1)ブロックXのイントラ予測モードがDC又はプレーナである場合は、DC又はプレーナに設定され、あるいは、(2)ブロックXのイントラ予測モードが“垂直的”な角度モードである(例えば、66個の角度モードが実装される場合に、一部の例において34よりも大きいモード番号を持つ)場合は、垂直に設定され、あるいは(3)ブロックXのイントラ予測モードが“水平的”な角度モードである(例えば、66個の角度モードが実装される場合に、一部の例において34以下のモード番号を持つ)場合は、水平に設定される;
(iii)intraModeAとintraModeBとが同じである場合:
a. IntraModeAがプレーナ又はDCである場合、3つのMPMが{プレーナ,DC,垂直}にこの順で設定される、そして、
b. それ以外の場合、3つのMPMが{intraModeA,プレーナ,DC}にこの順で設定される;そして、
(iv)そうでない(intraModeAとintraModeBとが異なる)場合:
a. 最初の2つのMPMは{intraModeA,intraModeB}にこの順で設定され、そして、
a. 最初の2つのMPM候補モードに対して、プレーナ、DC、垂直の唯一無二性が調べられ、唯一無二のモードが見つかると直ちに、それが3番目のMPMとして追加される。
【0156】
一部の実施形態において、CU形状が、上で定義したように非常に幅広又は非常に幅狭である場合、シグナリングなしで、MPMフラグは1であると推定することができる。それ以外の場合、CIIPイントラ予測モードが使用されるかを指し示すために、MPMフラグがシグナリングされ得る。
【0157】
一部の実施形態において、MPMフラグが1である場合、MPM候補モードのうちのいずれの1つがCIIPイントラ予測で使用されるのかを指し示すために、更にMPMインデックスをシグナリングすることができる。そうでなく、MPMフラグが0である場合、イントラ予測モードは、MPM候補リストに含まれていない、上述のMPM候補の中の“ミッシングモード”に設定されることができる。例えば、4つの取り得るイントラ予測モードがCIIPイントラ予測モードで考慮され、且つMPM候補リストは3つのイントラ予測モードしか含んでいないため、4つの取り得るモードのうちの1つをミッシングモードとすることができる。例えば、プレーナモードがMPM候補リスト内にない場合、プレーナがミッシングモードであり、イントラ予測モードはプレーナに設定されることができる。
【0158】
クロマコンポーネントに対して、DMモードは、追加のシグナリングなしで適用されることができる。従って、一部の例において、クロマコンポーネントは、対応するルマコンポーネントと同じ予測モードを使用する。
【0159】
一部の実施形態において、CIIP符号化CUのイントラ予測モードは保存されて、将来の隣接CUのイントラモード符号化に使用され得る。
【0160】
6.2 インター及びイントラ予測サンプルの結合
一実施形態において、CIIPモードにおけるインター予測サンプルのセットPinterは、通常のマージモードに適用されるのと同じインター予測プロセスを用いて導出され、イントラ予測サンプルのセットPintraは、通常のイントラ予測プロセスに従うCIIPイントラ予測モードを用いて導出される。そして、加重平均を用いてイントラ及びインター予測サンプルを結合して、CIIP予測サンプルのセットPCIIPを得ることができ、ここで、重みはイントラ予測モードに依存することができ、サンプルは符号化ブロック内に位置する。
【0161】
一部の実施形態において、イントラ予測モードがDCモード若しくはプレーナモードである場合、又はブロック幅若しくは高さが4ピクセルより小さい場合、イントラ予測サンプルのセット及びインター予測サンプルのセットに等しい重みを適用することができる。それ以外の場合、重みは、イントラ予測モード(一部のケースで、水平モード又は垂直モードのいずれか)及びブロック内のサンプル位置に基づいて決定され得る。例えば、イントラ予測モードが水平予測モードである場合、符号化ブロックを(W/4)×(H)の大きさの4つの等面積部分に分割することができ、Wはブロックの幅であり、Hはブロックの高さである。イントラ予測参照サンプルに最も近い部分から始めて、イントラ予測参照サンプルから最も離れた部分で終えて、4つの領域の一組のイントラ予測サンプルの各々に対する重みwtは、合計重みを8として、それぞれ6、5、3、及び2に設定され得る。垂直モードに関する重みは同様に導出されるが、符号化ブロックはW×(H/4)の大きさの4つの等面積部分に分割される。
【0162】
イントラ予測サンプルのセットに対して導出された重みwtを用いて、この例では、結合CIIP予測画像が、
【数3】
に従って導出され得る。
【0163】
III. インターウィーブ式アフィン予測
一部の実施形態において、インターウィーブ式アフィン予測が使用される。図17は、一実施形態に従ったインターウィーブ式アフィン予測法を示している。図17に示すように、16×16サンプルのサイズの現在ブロック(1710)が、パターン0に基づく第1のサブブロック(1720)とパターン1に基づく第2のサブブロック(1730)とを含む2つの異なる分割パターンを有するサブブロックに分割される。パターン0では、現在ブロック(1710)は、4×4の等しいサイズを有する第1のサブブロック(1720)に分割される。対照的に、パターン1は、パターン0に対してオフセット(例えば、2×2オフセット)だけシフトされる。第1のサブブロック(1720)及び第2のサブブロック(1730)に対応する予測サンプルのセットP0(1740)及び予測サンプルのセットP1(1750)を含む二組の補助予測サンプルが、アフィン動き補償(affine motion compensation;AMC)によって生成される。例えば、アフィンモデルは、サブブロックベースのマージ候補リスト上のアフィンマージ候補から決定され得る。第1のサブブロック(1720)及び第2のサブブロック(1730)からの各サブブロックに対するサブブロックMVが、アフィンモデルに基づいて導出され得る。一部の実施形態において、サブブロックMVは、それぞれのサブブロックの中心位置に従って決定され得る。
【0164】
その後、二組の予測サンプルP0(1740)とP1(1750)とを組み合わせることによって結合予測サンプルのセット(1760)を計算することができる。例えば、加重平均演算(1770)を実行して、2つの予測画像P0(1740)及びP1(1750)内の2つの対応するサンプル(P及びPにより表記する)の加重平均を、ピクセルごとに、
【数4】
に従って計算することができ、ここで、ω及びωは、それぞれ、二組の予測サンプルP0(1740)及びP1(1750)内のコロケートサンプルのペアに対応する重みである。合計重み(ω+ω)は、一実施形態において4である。
【0165】
図18Aは、一実施形態に従った、インターウィーブ式アフィン予測法におけるサブブロックに対する一組の重みの一例を示している。一実施形態において、加重平均演算(1770)における各サンプルの重みは、図18Aに示すパターン(1800)に従って設定され得る。パターン(1800)は、サブブロック(例えば、図17の4×4サブブロック)に含まれる16個のサンプルを含んでいる。サブブロックの中心付近に位置する4個の予測サンプルは、3なる重み値に関連付けられ、サブブロックの境界に位置する12個の予測サンプルは、1という重み値に関連付けられる。サブブロック内でのサンプルの位置に応じて、そのサンプルに対応する重量がパターン(1800)に基づいて決定され得る。
【0166】
図18Bは、一実施形態に従った、インターウィーブ式アフィン予測法においてブロックをサブブロックに分割するパターンの概略図である。一実施形態において、小さいサブブロック上でのブロック動き補償を回避するために、インターウィーブ式予測は、図17に示す2つの分割パターンの両方でサブブロックのサイズが例えば4×4などの閾値を満たす領域にのみ適用され得る。例えば、図18Bに示す第2のサブブロック(1730)の影付き領域では、インターウィーブ式予測は適用されず、第2のサブブロック(1730)の影付きでない領域では、インターウィーブ式予測が適用される。
【0167】
一実施形態において、インターウィーブ式予測は、クロマコンポーネント並びにルマコンポーネントに適用される。一部の実施形態では、他の予測方法と比較して、インターウィーブ式予測は、メモリアクセス帯域幅を増加させることなく実装され得る。何故なら、全てのサブブロックに対するAMCに使用される参照ピクチャの領域が、全体として一緒にフェッチされ、それ故に、更なる読み出し動作が必要とされないからである。
【0168】
さらに、柔軟性のために、インターウィーブ式予測が使用されるか否かを指し示すため、フラグを(例えば、スライスヘッダで)シグナリングすることができる。一例において、フラグは常に、1であるようにシグナリングされる。様々な実施形態において、インターウィーブ式アフィン予測は、片予測アフィンブロックに適用されることができ、あるいは、片予測及び双予測の両方のアフィンブロックに適用されることができる。
【0169】
IV. スタック式アフィン予測
1. 概説
一部の実施形態において、上記のインターウィーブ式アフィン予測法は、スタック式アフィン予測になるように変更されることができる。スタック式アフィン予測は、向上された圧縮効率を達成するために使用され得る。図19は、一実施形態に従ったスタック式アフィン予測法を示している。図19に示すように、あるサイズ(例えば、16×16サンプル)を持つ現在ブロック(1910)を、第1の補助予測のためのサブブロック(1920A)及び第2の補助予測のための同じサブブロック(1920B)を含む2つの補助予測のための分割パターンに従って、サブブロックに分割することができ、現在ブロック(1910)は、相等しいサイズ(例えば、4×4)を持つサブブロックに分割される。一部の実施形態において、現在ブロック(1910)に対するアフィンモデルは、図12A-12C、13を参照して上述したようにして決定され得る。
【0170】
スタック式アフィン予測法では、2つの異なる組のサブブロック動きベクトル(例えば、アフィンMVセット0及びアフィンMVセット1)が、第1の補助予測のためのサブブロック(1920A)及び第2の補助予測のための第2のサブブロック(1920B)に対して、アフィンモデルを用いて導出され得る。一部の実施形態において、サブブロックのうちの1つに対する少なくとも1つのサブブロック動きベクトルが、サブブロックのうちの該1つに対する第2の動きベクトルとは異なる。
【0171】
図20は、一実施形態に従った、スタック式アフィン予測法に従って符号化される現在ブロックの同じサブブロックセットに対する二組の動きベクトルの概略図である。第1の補助予測のためのサブブロック(1920A)について、サブブロックの各々についてのサブブロックMV(MVa1-MVp1)が、3つの制御点(CP0、CP1、及びCP2)及び対応する制御点動きベクトル(CPMV、CPMV、及びCPMV)によって規定されるアフィンモデルに従って導出され得る。第2の補助予測のためのサブブロック(1920B)について、サブブロックの各々についてのサブブロックMV(MVa2-MVp2)が、同じ3つの制御点(CP0、CP1、及びCP2)及び同じ対応する制御点動きベクトル(CPMV、CPMV、及びCPMV)によって規定される同じアフィンモデルに従って導出され得る。一部の実施形態において、サブブロック(1920A)についてのサブブロックMV(MVa1-MVp1)(例えば、アフィンMVセット0)は、各サブブロック内の第1の相対位置に対応するMVとして決定され得る。一部の実施形態において、サブブロック(1920B)についてのサブブロックMV(MVa2-MVp2)(例えば、アフィンMVセット1)は、各サブブロック内の第2の相対位置に対応するMVとして決定され得る。一部の実施形態において、サブブロック(1920B)についてのサブブロックMV(MVa2-MVp2)(例えば、アフィンMVセット1)は、サブブロックMV(MVa1-MVp1)を処理することによって決定されることができる。
【0172】
第1の補助予測のためのサブブロック(1920A)及び第2の補助予測のためのサブブロック(1920B)にそれぞれ対応する予測サンプルP0(1940)のセット及び予測サンプルP1(1950)のセットを含んだ、二組の補助予測サンプルが、アフィン動き補償(AMC)によって生成される。例えば、サブブロックベースのマージ候補リスト上のアフィンマージ候補からアフィンモデルを決定することができる。一部の実施形態において、補助予測サンプルのこれらセットを生成するために、同じ参照インデックスを共有することができ、及び故に、同じ参照ピクチャを使用することができる。
【0173】
その後、二組の予測サンプルP0(1940)とP1(1950)とを組み合わせることによって結合予測サンプルのセット(1960)を計算することができる。例えば、加重平均演算(1970)を実行して、二組の予測サンプルP0(1940)及びP1(1950)内の2つの対応するサンプル(P及びPにより表記する)の加重平均を、ピクセルごとに、
【数5】
に従って計算することができ、ここで、ω及びωは、それぞれ、二組の予測サンプルP0(1940)及びP1(1950)内のコロケートサンプルのペアに対応する重みである。合計重み(ω+ω)は、例えば4である。
【0174】
2. サブブロックMV導出及び動き補償の実施形態
一部の実施形態において、一方のアフィンMVセット(例えば、アフィンMVセット0)は、各サブブロック内の第1の相対位置に対応するMVとして、アフィンモードに従ってCPMVから導出されることができる。一部の実施形態において、他方のアフィンMVセット(例えば、アフィンMVセット1)は、各サブブロック内の第2の相対位置に対応するMVとして、アフィンモードに従ってCPMVから導出されることができる。
【0175】
一部の実施形態において、第1の相対位置(例えば、POS0)は、各サブブロックの中心であり、第2の相対位置(例えば、POS1)は、各サブブロックの中心以外の位置である。一例において、第2の相対位置(例えば、POS1)は、各サブブロックの左上サンプルに対応する。一例において、第2の相対位置(例えば、POS1)は、各サブブロックの右上サンプルに対応する。一例において、第2の相対位置(例えば、POS1)は、例えばCPMV値に従って、各サブブロックの左上サンプル、右上サンプル、又は左下サンプルから適応的に選択され得る。
【0176】
一例において、第2の相対位置(例えば、POS1)は、各サブブロックの左上隅に対応する。一例において、第2の相対位置(例えば、POS1)は、各サブブロックの右上隅に対応する。一例において、第2の相対位置(例えば、POS1)は、CPMV値に従って、各サブブロックの左上隅、右上隅、又は左下隅から適応的に選択され得る。
【0177】
一部の実施形態において、相対位置POS0及びPOS1は、サブブロックの内部にあることができ、サブブロックの境界上にあることができ、あるいは、隣接し合うサブブロックによって共有されることができる。一部の実施形態において、相対位置POS0及びPOS1は、各サブブロックの中心と交差する垂直線、水平線、及び対角線のうちの1つに対して対称とすることができる。
【0178】
ルマコンポーネントに関する例において、相対位置POS0は各サブブロックの左上隅に対して(2,0)であり、相対位置POS1は各サブブロックの左上隅に対して(2,3)である。
【0179】
ルマコンポーネントに関する別の一例において、相対位置POS0は各サブブロックの左上隅に対して(0,2)であり、相対位置POS1は各サブブロックの左上隅に対して(3,2)である。
【0180】
ルマコンポーネントに関する別の一例において、相対位置POS0は各サブブロックの左上隅に対して(0,0)であり、相対位置POS1は各サブブロックの左上隅に対して(3,3)である。
【0181】
ルマコンポーネントに関する別の一例において、相対位置POS0は各サブブロックの左上隅に対して(0,3)であり、相対位置POS1は各サブブロックの左上隅に対して(3,0)である。
【0182】
ルマコンポーネントに関する別の一例において、相対位置POS0は各サブブロックの左上隅に対して(1,1)であり、相対位置POS1は各サブブロックの左上隅に対して(2,2)である。
【0183】
ルマコンポーネントに関する別の一例において、相対位置POS0及び相対位置POS1は、例えばCPMVの値に従って、適応的に決定され得る。
【0184】
ルマコンポーネントに関する特定の一例において、相対位置POS0は各サブブロックの左上隅に対して(0,2)であり、相対位置POS1は各サブブロックの左上隅に対して(4,2)である。この例において、ある特定のサブブロックに対するPOS1のサブブロックMVは、実際には、隣接サブブロックに対するPOS0のサブブロックMVとしても使用される。この例において、スタック式アフィン予測法は、図21を参照して更に示すように単純化され得る。
【0185】
図21は、一実施形態に従った、スタック式アフィン予測法に従って特定のブロックを符号化することの概略図である。図21に示すように、16×16のアフィンブロック(2100)が、4×4のサイズの16個のサブブロック(B00、B01、B02、B03、B10、B11、B12、B13、B20、B21、B22、B23、B30、B31、B32、及びB33)に分割され得る。ブロック(2100)の左上隅に対して位置(0,2)、(4,2)、(8,2)、(12,2)、及び(16,2)にて、それぞれ、サブブロック(B00、B10、B20、及びB30)について、サブブロックMV(MV0,2、MV4,2、MV8,2、MV12,2、及びMV16,2)が導出される。
【0186】
サブブロックの予測は、各サブブロックの左辺の中心及び各サブブロックの右辺の中心に対応するものである、各サブブロックの左上隅に対して(0,2)及び(4,2)にあるサブブロックに関連する2つのサブブロックMVに従って生成されることができる。例えば、サブブロックB00にはMV0,2及びMV4,2が使用され、サブブロックB10にはMV4,2及びMV8,2が使用される。サブブロックMVは隣接し合うサブブロック間で共用され得るので、MV4,2に従ったサブブロック(B00)の4×4予測ブロックの生成と、MV4,2に従ったサブブロック(B10)の4×4予測ブロックの生成とを、MV4,2に従った8×4予測ブロックの生成へと併合することができる。一部の実施形態において、8×4ブロックのピクセルごとの予測の複雑さは4×4ブロックのそれよりも小さいので、提案する方法は予測の複雑さを低減させることができる。例えば、ある行内のN個の4×4サブブロックでの双予測アフィンブロックについて、提案する方法は、その行に対して(N-1)個の8×4予測ブロックと2個の4×4予測ブロックとを必要とする。対照的に、上述の単純化なしでプロセスが実装される場合には、その行に対してN×2個の4×4予測ブロックが必要である。
【0187】
また、一部の実施形態において、一方のアフィンMVセット(例えば、アフィンMVセット0)を、例えば各サブブロックの中心などの、各サブブロック内の相対(又は所定の相対)位置に対応するMVとして、アフィンモードに従ってCPMVから導出することができる。一部の実施形態において、他方のアフィンMVセット(例えば、アフィンMVセット1)は、アフィンMVセット0を処理することによって決定することができる。例えば、アフィンMVセット1は、アフィンMVセット0に動きベクトルオフセットΔMVを適用することによって得ることができる。
【0188】
3. 補助予測サンプル上での加重平均の実施形態
一実施形態において、二組の補助予測サンプルの平均化に、等しい重みが使用され得る。他の一実施形態において、サブブロックの中心にない位置に基づいてサブブロックMVが導出される場合に、サブブロックMVを導出するための対応する相対位置にいっそう近いピクセルに、対応する相対位置からいっそう離れたピクセルに対してよりも、大きい重みを割り当てることができる。
【0189】
図22A-22Eは、1つ以上の実施形態に従った、スタック式アフィン予測法においてサブブロックに重みを割り当てることの様々な例を示している。これらの例において、各サブブロックは4×4ピクセルのサイズを有する。
【0190】
一部の実施形態において、サブブロックについての予測サンプルセット内のピクセルは、当該ピクセルが水平方向又は垂直方向に沿って第1の相対位置から3ピクセル未満だけ離れて位置する場合、合計で4の重みに対して3の重みを有し、当該ピクセルが水平方向又は垂直方向に沿って第1の相対位置から3ピクセル以上離れて位置する場合、合計で4の重みに対して1の重みを有する。
【0191】
図22Aに示す一例では、サブブロックMVがサブブロックの左上位置(2210)に従って導出されるとき、加重平均プロセスの合計の重みを4として、サブブロックの左上の4つのピクセルが3の重みを割り当てられ、他のピクセルは1の重みに割り当てられることができる。
【0192】
図22Bに示す一例では、サブブロックMVがサブブロックの右上位置(2220)に従って導出されるとき、加重平均プロセスの合計の重みを4として、サブブロックの右上の4つのピクセルが3の重みを割り当てられ、他のピクセルは1の重みに割り当てられることができる。
【0193】
図22Cに示す一例では、サブブロックMVがサブブロックの左下位置(2230)に従って導出されるとき、加重平均プロセスの合計の重みを4として、サブブロックの左下の4つのピクセルが3の重みを割り当てられ、他のピクセルは1の重みに割り当てられることができる。
【0194】
図22Dに示す一例では、サブブロックMVがサブブロックの左辺の中心の位置(2240)に従って導出されるとき、加重平均プロセスの合計の重みを4として、サブブロックの左の8つのピクセルが3の重みを割り当てられ、他のピクセルは1の重みに割り当てられることができる。
【0195】
図22Eに示す一例では、サブブロックMVがサブブロックの右辺の中心の位置(2250)に従って導出されるとき、加重平均プロセスの合計の重みを4として、サブブロックの右の8つのピクセルが3の重みを割り当てられ、他のピクセルは1の重みに割り当てられることができる。
【0196】
一実施形態において、スタック式アフィン予測は、現在ブロックが片予測される(例えば、1つの参照ピクチャのみが使用される)場合にのみ適用され得る。一実施形態において、スタック式アフィン予測は、片予測ブロック及び双予測ブロックの両方に適用され得る。一部の実施形態において、現在ブロックが双予測される場合、スタック式アフィン予測を、各予測方向の参照ピクチャからの動き補償に適用することができる。
【0197】
一部の実施形態において、スタック式アフィン予測が使用される場合、現在のブロックに対して、ブロック内でのデブロッキングは実行されない。少なくとも1つの実施形態では、スタック式アフィン予測が使用される場合に、現在ブロック内でのデブロッキングをなおも実行することができる。
【0198】
一部の実施形態において、スタック式アフィン予測が1つの参照方向のみを使用する場合であっても、スタック式アフィン予測とともに一般化双予測(GBi)インデックスが使用され得る。この例において、GBiインデックスは、二組の補助予測サンプルを組み合わせるための重みを指定するためにシグナリングされ得る。一実施形態において、GBiインデックスが、スタック式アフィン予測に従って符号化されるブロック上で使用されるとき、加重平均は、GBiインデックスに従って実行されるのみとし得る。この場合、他のサブブロックベースの加重平均は実行されないとし得る。
【0199】
4. スタック式アフィン予測のシグナリング
一部の実施形態において、例えばスタック式アフィン予測フラグ(例えば、stacked_affine_flag)などのフラグがシグナリングされ得る。このフラグは、スタック式アフィン予測法が使用されるかを指し示すために、高レベルシグナリング(例えば、以下に限られないが、スライス、タイル、タイルグループ、ピクチャ、又はシーケンスレベルなど)によってシグナリングされ得る。
【0200】
一実施形態において、例えばsps_stacked_affine_flagなどのフラグが、SPSレベルでシグナリングされ得る。このフラグが真である場合、現在復号されるピクチャ又はタイルグループにスタック式アフィン予測法が使用されるかを指し示すために、ピクチャレベル又はタイルグループレベルのフラグ(例えば、picture_stacked_affine_flag)がシグナリングされ得る。
【0201】
一実施形態において、スタック式アフィン予測フラグ(例えば、stacked_affine_flag)は、例えばピクチャレベル、タイルグループレベル、タイルレベル、又はブロックレベルなど、シーケンスレベルよりも低いレベルでシグナリングされ得る。そのような場合、フラグstacked_affine_flagは、シーケンスレベルでシグナリングされるアフィン予測有効化フラグが真である場合にのみシグナリングされ得る。アフィン予測有効化フラグがシーケンスレベルで偽としてシグナリングされるとき、フラグstacked_affine_flagは偽として推定されることができる。
【0202】
一実施形態において、スタック式アフィン予測法の有効化状態は、例えば予め定められたデフォルト設定など、他のアプローチによって導出されてもよく、必ずしもシグナリングされなくてもよい。
【0203】
一部の実施形態において、スタック式アフィン予測法が有効にされ、且つアフィン片予測のみに適用される場合、以下のバリエーションが実装され得る。
【0204】
一例において、スタック式アフィン予測法が、対応する高レベル有効化フラグによって指し示されて、ある符号化領域(例えばピクチャ又はタイルグループなど)に対して有効にされる場合、片予測アフィンブロックのみがスタック式アフィン予測法を用いて符号化され、双予測アフィンブロックは、通常のアフィン双予測を用いて符号化される。このような場合、インター予測方向に関するCUレベル構文要素は変更されず、インター予測方向インデックスの意味及び/又は二値化も変更されない。
【0205】
一実施形態において、スタック式アフィン予測法が、対応する高レベルフラグによって指し示されて、ある符号化領域(例えばピクチャ又はタイルグループなど)に対して有効にされる場合、アフィン符号化ブロックに対して片予測のみが許される。この例において、同じ符号化領域に関するアフィン符号化ブロックに対して、双予測は無効にされることができる。このような場合、例えばinter_pred_idcなどのインター予測方向に関する意味が、ビットを節減するために変更され得る。
【0206】
図23は、本開示の一部の実施形態に従ったプロセス(2300)を概説するフローチャートを示している。プロセス(2300)は、現在ピクチャの現在ブロックを符号化又は復号する際に使用されることができ、スタック式アフィン予測法に従って現在ブロックについての予測サンプルセットを得ることを含む。一部の実施形態では、プロセス(2300)の前又は後に1つ以上の処理が実行され、図23に示される処理の一部が並べ替えられたり省略されたりしてもよい。
【0207】
様々な実施形態において、プロセス(2300)は、例えば、端末装置(210)、(220)、(230)及び(240)の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、及びこれらに類するものなどの、処理回路によって実行される。一部の実施形態において、プロセス(2300)は、ソフトウェア命令にて実装され、従って、処理回路がソフトウェア命令を実行するときに、処理回路がプロセス(2300)を実行する。当該プロセスは、(S2301)で開始し、(S2310)に進む。
【0208】
(S2310)にて、現在ブロックについて複数の制御点動きベクトルが取得される。現在ブロックは、複数のサブブロックに分割される。一部の実施形態において、図12A-12C、13に関して上述したアフィンマージモード又はアフィンAMVPモードに従って、複数の制御点動きベクトル(CPMV)を得ることができる。一部の実施形態において、各サブブロックは、4×4ピクセル又は8×8ピクセルのサイズを持つことができる。
【0209】
(S2320)にて、これらCPMVに従って、それぞれサブブロックについて、第1の動きベクトル(例えば、アフィンMVセット0)が決定され得る。
【0210】
(S2330)にて、これらCPMVに従って、それぞれサブブロックについて、第1の動きベクトル(例えば、アフィンMVセット1)が決定され得る。一部の実施形態において、サブブロックのうちの少なくとも1つについての第1の動きベクトルは、サブブロックのうちの該1つについての第2の動きベクトルと異なる。
【0211】
一部の実施形態において、一方のアフィンMVセット(例えば、アフィンMVセット0)を、各サブブロック内の第1の相対位置に対応するMVとして、アフィンモードに従ってCPMVから導出することができる。一部の実施形態において、他方のアフィンMVセット(例えば、アフィンMVセット1)は、各サブブロック内の第2の相対位置に対応するMVとして、アフィンモードに従ってCPMVから導出することができる。一部の実施形態において、第2の相対位置は、各サブブロックの特定の隅である。一部の実施形態において、第1の相対位置及び第2の相対位置は、各サブブロックの中心と交差する垂直線、水平線、及び対角線のうちの1つに対して対称である。
【0212】
少なくとも1つの例において、第1の相対位置は、各サブブロックの左辺の中心であり、第2の相対位置は、各サブブロックの右辺の中心である。
【0213】
また、2つの異なる相対位置POS1及びPOS2に従ってこれら2セットのサブブロック動きベクトルを導出する代わりに、1つの相対位置のみが使用される。例えば、一方のアフィンMVセット(例えば、アフィンMVセット0)を、例えば各サブブロックの中心などの、各サブブロック内の所定の相対位置に対応するMVとして、アフィンモードに従ってCPMVから導出することができる。他方のアフィンMVセット(例えば、アフィンMVセット1)は、アフィンMVセット0を処理することによって決定することができる。例えば、アフィンMVセット1は、アフィンMVセット0に動きベクトルオフセットΔMVを適用することによって得ることができる。
【0214】
(S2340)にて、第1の動きベクトル及び対応するサブブロックに従って、現在ブロックについての第1の予測サンプルセットが取得される。一部の実施形態において、第1の予測サンプルセットは、それぞれ第1の動きベクトルに従って各サブブロックについてのサブブロック予測データを得ることによって取得され得る。
【0215】
(S2350)にて、第2の動きベクトル及び対応するサブブロックに従って、現在ブロックについての第2の予測サンプルセットが取得される。一部の実施形態において、第2の予測サンプルセットは、それぞれ第2の動きベクトルに従って各サブブロックについての予測データを得ることによって取得され得る。
【0216】
(S2360)にて、第1の予測サンプルセットと第2の予測サンプルセットとの組み合わせに従って現在ブロックの第3の予測サンプルセットが取得され得る。一部の実施形態において、第1の予測サンプルセットと第2の予測サンプルセットとの組み合わせは、第1の予測サンプルセットと第2の予測サンプルセットとの加重平均として計算される。
【0217】
一例において、特定のサブブロックについての第1の予測サンプルセット内の第1のピクセルが、該サブブロック内の第1の位置に置かれ、且つ組み合わせを計算するための第1の重みを有し、上記特定のサブブロックについての第1の予測サンプルセット内の第2のピクセルが、該サブブロック内の第2の位置に置かれ、且つ組み合わせを計算するための第2の重みを有し、第1の位置の方が、第2の位置よりも、サブブロックの第1の相対位置に近く、第1の重みは第2の重みよりも大きくすることができる。
【0218】
一例において、サブブロックのうちの1つが、4×4ピクセルのサイズを有し、サブブロックのうちの1つについての第1の予測サンプルセット内のピクセルは、(1)当該ピクセルが水平方向又は垂直方向に沿って前記第1の相対位置から3ピクセル未満だけ離れて位置する場合、合計で4の重みに対して3の重みを有し、(2)当該ピクセルが前記水平方向又は前記垂直方向に沿って前記第1の相対位置から3ピクセル以上離れて位置する場合、前記合計で4の重みに対して1の重みを有する。
【0219】
一部の実施形態において、特定のサブブロックについて加重平均を計算するための重みは、該特定のサブブロックについての一般化双予測(GBi)インデックスに従って導出される
一部の実施形態において、現在ブロックは片予測ブロックである。一部の実施形態において、現在ブロック上でデブロッキングプロセスは実行されない。
【0220】
一部の実施形態において、特定のレベルの符号化領域においてスタック式アフィンモードが有効にされるかを、該特定のレベルでシグナリングされるフラグに従って判定することができ、現在ブロックは、該特定のレベルの符号化領域に含まれる。
【0221】
一部の例において、特定のレベルは、スライス、タイル、タイルグループ、ピクチャ、及びシーケンスのレベルのうちの1つに相当する。一部の例において、サブブロックについての第2の動きベクトルを決定すること(S2330)及び現在ブロックについての第2の予測サンプルセットを取得すること(S2350)は、スタック式アフィンモードが有効にされるときに実行される。一例において、サブブロックについての第2の動きベクトルを決定すること(S2330)及び現在ブロックについての第2の予測サンプルセットを取得すること(S2350)は、スタック式アフィンモードが有効にされないときには実行されない。
【0222】
一部の例において、符号化領域に適用可能なフラグが、スタック式アフィンモードが有効にされることを指し示すとき、サブブロックについての第2の動きベクトルを決定すること(S2330)及び現在ブロックについての第2の予測サンプルセットを取得すること(S2350)は、符号化領域内の双予測ブロックに対しては実行されない、
(S2360)の後、プロセス(2300)は(S2399)へと進んで終了し得る。
【0223】
ここに記載された実施形態は、別々に使用されてもよいし、あるいは、何らかの順序で組み合わせて使用されてもよい。また、これらの実施形態、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装され得る。一例において、1つ以上のプロセッサが、非一時的なコンピュータ読み取り可能媒体に格納されたプログラムを実行する。
【0224】
V. コンピュータシステム
上述の技術は、1つ以上のコンピュータ読み取り可能媒体に物理的に格納された、コンピュータ読み取り可能命令を用いたコンピュータソフトウェアとして、実装されることができる。例えば、図24は、開示に係る事項の特定の実施形態を実装するのに好適なコンピュータシステム(2400)を示している。
【0225】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様の機構に掛けられることで、直接的に又はインタープリット、マイクロコード実行及びこれらに類するものを介して1つ以上のコンピュータ中央演算処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、及びこれらに類するものによって実行されることが可能な命令を有するコードを作り出し得るような、任意の好適な機械コード又はコンピュータ言語を用いてコード化され得る。
【0226】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、及びこれらに類するものを含め、様々なタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0227】
コンピュータシステム(2400)に関して図24に示したコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能性の範囲についての何らかの限定を示唆する意図はない。また、コンポーネントの構成も、コンピュータシステム(2400)のこの例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性又は要件も持つものとして解釈されるべきでない。
【0228】
コンピュータシステム(2400)は、特定のヒューマンインタフェース入力装置を含んでもよい。そのようなヒューマンインタフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブを動かすことなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャなど)、嗅覚入力(図示せず)を介した、一人以上の人間ユーザによる入力に応答し得る。ヒューマンインタフェース装置はまた、例えばオーディオ(例えば、会話、音楽、周囲の音など)、画像(例えば、走査画像、静止画カメラから得られる写真画像など)、映像(例えば、二次元映像、立体視映像を含む3次元映像など)などの、人間による意識的な入力には必ずしも直接関係しない特定の媒体を捕捉するために使用されてもよい。
【0229】
入力ヒューマンインタフェース装置は、キーボード(2401)、マウス(2402)、トラックパッド(2403)、タッチスクリーン(2410)、データグローブ(図示せず)、ジョイスティック(2405)、マイクロフォン(2406)、スキャナ(2407)、カメラ(2408)(各々1つのみ図示している)のうちの1つ以上を含み得る。
【0230】
コンピュータシステム(2400)はまた、特定のヒューマンインタフェース出力装置を含み得る。そのようなヒューマンインタフェース出力装置は、例えば、触覚出力、音、光、及び臭い/味を通して、一人以上の人間ユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力装置は、触覚出力装置(例えば、タッチスクリーン(2410)、データグローブ(図示せず)、又はジョイスティック(2405)による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置もあってもよい)、オーディオ出力装置(例えば、スピーカー(2409)、ヘッドフォン(図示せず)など)、視覚出力装置(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2410)(各々がタッチスクリーン入力機能を有する又は有さない。各々が触覚フィードバック機能を有する又は有さない。これらの一部は、二次元の視覚出力、又は例えば立体視出力などの手段を通じて四次元以上の出力を出力することができるとし得る。)、仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)など)、及びプリンタ(図示せず)を含み得る。
【0231】
コンピュータシステム(2400)はまた、例えば、CD/DVD若しくは類似の媒体(2421)を有するCD/DVD ROM/RW(2420)を含む光媒体、サムドライブ(2422)、取り外し可能なハードドライブ若しくは又はソリッドステートドライブ(2423)、例えばテープ及びフロッピーディスク(登録商標、図示せず)などのレガシー磁気媒体、例えばセキュリティドングルなどの特殊化されたROM/ASIC/PLDベースの装置(図示せず)、及びこれらに類するものなどの、人間アクセス可能なストレージ装置及びそれらの関連媒体を含み得る。
【0232】
当業者がこれまた理解するはずのことには、ここでの開示に係る事項に関連して使用される用語“コンピュータ読み取り可能媒体”は、伝送媒体、搬送波、又は他の一時的な信号を含まない。
【0233】
コンピュータシステム(2400)はまた、1つ以上の通信ネットワークへのインタフェースを含み得る。ネットワークは、例えば、無線、有線、光とし得る。ネットワークは更に、ローカル、広域、大都市、車両及び産業、リアルタイム、耐遅延などとし得る。ネットワークの例は、例えばイーサネット(登録商標)などのローカルエリアネットワークや、無線LANや、GSM、3G、4G、5G、LTE及びこれらに類するものを含むセルラネットワークや、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワークや、CANBusを含む車両及び産業などを含む。特定のネットワークは一般に、特定の汎用データポート又はペリフェラルバス(2449)(例えば、コンピュータシステム(2400)のUSBポートなど)に取り付けられる外付けネットワークインタフェースアダプタを必要とし、他のものは一般に、後述のシステムバスへの取り付けによってコンピュータシステム(2400)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース、又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2400)は、他のエンティティと通信することができる。そのような通信は、一方向の受信のみ(例えば、放送TV)であってもよいし、一方向の送信のみ(例えば、特定のCANbus装置に対するCANbus)であってもよいし、あるいは、例えばローカル又は広域デジタルネットワークを用いた他のコンピュータシステムに対しての、双方向であってもよい。特定のプロトコル及びプロトコルスタックが、上述のようにネットワーク及びネットワークインタフェースの各々上で使用され得る。
【0234】
前述のヒューマンインタフェース装置、人間アクセス可能なストレージ装置、及びネットワークインタフェースは、コンピュータシステム(2400)のコア(2440)に取り付けられることができる。
【0235】
コア(2440)は、1つ以上の中央演算処理ユニット(CPU)(2441)、グラフィックス処理ユニット(GPU)(2442)、フィールドプログラマブルゲートアレイ(FPGA)(2443)の形態の特殊なプログラム可能なプロセッシングユニット、特定のタスク用のハードウェアアクセラレータ(2444)などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)(2445)、ランダムアクセスメモリ(2446)、例えば内部のユーザアクセス可能でないハードドライブ、SSDなどの内部大容量ストレージ(2447)、及びこれらに類するもの(2447)と共に、システムバス(2448)を介して接続され得る。一部のコンピュータシステムにおいて、システムバス(2448)は、追加のCPU、GPU、及びこれらに類するものによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能にされ得る。周辺装置は、コアのシステムバス(2448)に直接的に、又はペリフェラルバス(2449)を介して、のいずれで取り付けられてもよい。ペリフェラルバスのアーキテクチャは、PCI、USB、及びこれらに類するものを含む。
【0236】
CPU(2441)、GPU(2442)、FPGA(2443)、及びアクセラレータ(2444)は、組み合わさって前述のコンピュータコードを構成することができる特定の命令を実行し得る。そのコンピュータコードは、ROM(2445)又はRAM(2446)に格納され得る。RAM(2446)には過渡的なデータも格納されることができ、永久的なデータは、例えば内部大容量ストレージ(2447)に格納されることができる。メモリデバイスのいずれかへの高速な記憶及び取り出しが、1つ以上のCPU(2441)、GPU(2442)、大容量ストレージ(2447)、ROM(2445)、RAM(2446)、及びこれらに類するものの近くに付随し得るキャッシュメモリの使用によって可能にされ得る。
【0237】
コンピュータ読み取り可能媒体はその上に、様々なコンピュータ実装処理を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的に合わせて特別に設計及び構築されたものであってもよいし、あるいは、それらは、コンピュータソフトウェア技術の当業者にとって周知且つ利用可能な種類のものであってもよい。
【0238】
一例として、限定ではなく、アーキテクチャ(2400)、特にコア(2440)、を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現化されたソフトウェアを(1つ以上の)プロセッサ(CPU、GPU、FPGA、アクセラレータ、及びこれらに類するものを含む)が実行することの結果として機能を提供することができる。そのようなコンピュータ読み取り可能媒体は、例えばコア内部の大容量ストレージ(2447)又はROM(2445)などの、非一時的性質のものであるコア(2440)の特定のストレージ、及び上で紹介したようなユーザアクセス可能な大容量ストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア(2440)によって実行されることができる。コンピュータ読み取り可能媒体は、具体的なニーズに従って、1つ以上のメモリデバイス又はチップを含み得る。ソフトウェアは、コア(2440)及び特にその中のプロセッサ(CPU、GPU、FPGA、及びこれらに類するものを含む)に、RAM(2446)に格納されるデータ構造を規定すること、及びそのようなデータ構造を、ソフトウェアによって規定されたプロセスに従って変更することを含めて、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータシステムは、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はソフトウェアと共に動作することができる回路(例えば、アクセラレータ(2444))にて配線された又はその他の方法で具体化されたロジックの結果として、機能を提供してもよい。ソフトウェアへの言及はロジックを含み、また、適当な場合にその逆もまた然りである。コンピュータ読み取り可能媒体への言及は、実行のためのソフトウェアを格納した回路(例えば、集積回路(IC)など)、実行のためのロジックを具体化した回路、又は適当な場合にこれら双方を含み得る。本開示は、ハードウェア及びソフトウェアの好適な組み合わせを含む。
付録A:頭字語
AMVP:Advanced Motion Vector Prediction(アドバンスト動きベクトル予測)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
BMS:benchmark set(ベンチマークセット)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
CD:Compact Disc(コンパクトディスク)
CPMV:Control Point Motion Vector(制御点動きベクトル)
CPUs:Central Processing Units(中央演算処理ユニット)
CRT:Cathode Ray Tube(陰極線管)
CTUs:Coding Tree Units(符号化ツリーユニット)
CU:Coding Unit(符号化ユニット)
DVD:Digital Video Disc(デジタルビデオディスク)
FPGA:Field Programmable Gate Array(フィールドプログラマブルゲートアレイ)
GBi:Generalized Bi-prediction(一般化双予測)
GOPs:Groups of Pictures(グループ・オブ・ピクチャ)
GPUs:Graphics Processing Units(グラフィックス処理ユニット)
GSM:Global System for Mobile communications(グローバルシステムフォーモバイルコミュニケーションズ)
HEVC:High Efficiency Video Coding(ハイエフィシェンシビデオコーディング)
HMVP:History-based Motion Vector Prediction(履歴ベース動きベクトル予測)
HRD:Hypothetical Reference Decoder(仮説的リファレンスデコーダ)
IC:Integrated Circuit(集積回路)
JEM:joint exploration model(共同探索モデル)
LAN:Local Area Network(ローカルエリアネットワーク)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
LTE:Long-Term Evolution(ロングタームエボリューション)
MMVD:Merge with MVD(MVD付きマージ)
MV:Motion Vector(動きベクトル)
MVD:Motion Vector Difference(動きベクトル差)
MVP:Motion Vector Predictor(動きベクトル予測子)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
PBs:Prediction Blocks(予測ブロック)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
PUs:Prediction Units(予測ユニット)
RAM:Random Access Memory(ランダムアクセスメモリ)
ROM:Read-Only Memory(読み出し専用メモリ)
SEI:Supplementary Enhancement Information(補足強化情報)
SNR:Signal Noise Ratio(信号対雑音比)
SSD:solid-state drive(ソリッドステートドライブ)
SPS:Sequence Parameter Set(シーケンスパラメータセット)
SbTMVP:Subblock-based Temporal Motion Vector Prediction(サブブロックベース時間動きベクトル予測)
TMVP:Temporal Motion Vector Prediction(時間動きベクトル予測)
TUs:Transform Units(変換ユニット)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
VTM:Versatile Test Model(多目的テストモデル)
VUI:Video Usability Information(ビデオユーザビリティ情報)
VVC:versatile video coding(バーサタイルビデオコーディング)
【0239】
この開示は幾つかの例示的な実施形態を記述しているが、開示の範囲に入る変更、置換、及び様々な均等な代替が存在する。従って、理解されることには、当業者は、ここでは明示的に図示されたり説明されたりしていないものの、開示の原理を具体化し、それ故に、その精神及び範囲の中にあるような、数多くのシステム及び方法を考案することができるであろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図12C
図13
図14A
図14B
図15A
図15B
図16A
図16B
図17
図18A
図18B
図19
図20
図21
図22A
図22B
図22C
図22D
図22E
図23
図24
【国際調査報告】