(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-12
(45)【発行日】2023-01-20
(54)【発明の名称】ビデオ符号化及び復号のための方法および装置
(51)【国際特許分類】
H04N 19/513 20140101AFI20230113BHJP
H04N 19/46 20140101ALI20230113BHJP
【FI】
H04N19/513
H04N19/46
(21)【出願番号】P 2021517613
(86)(22)【出願日】2019-07-08
(86)【国際出願番号】 US2019040854
(87)【国際公開番号】W WO2020072114
(87)【国際公開日】2020-04-09
【審査請求日】2021-03-29
(32)【優先日】2018-10-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】国際公開第2018/067823(WO,A1)
【文献】特表2019-535192(JP,A)
【文献】米国特許出願公開第2018/0098063(US,A1)
【文献】国際公開第2020/017367(WO,A1)
【文献】米国特許出願公開第2020/0195963(US,A1)
【文献】Guichun Li, Xiaozhong Xu, Xiang Li, Shan Liu, Palo Alto,CE4-related: affine merge mode with prediction offsets [online], JVET-L JVET-L0320,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0320-v1.zip>,2019年10月17日,1-5
【文献】Yu-Chiao Yang, Yao-Jen Chang,CE4-related: Control point MV offset for Affine merge mode [online], JVET-L JVET-L0389r1,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0389-v2.zip>,2019年10月17日,1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
デコーダが実行するビデオ・デコードのための方法であって:
符号化されたビデオ・ビットストリームから現在ピクチャー内の現在ブロックの予測情報をデコードする段階であって、前記予測情報は、オフセットを有するアフィン・マージ・モードを示す、段階と;
前記符号化されたビデオ・ビットストリームから、動きベクトル差分を決定するために使用される一組のオフセット・パラメータをデコードする段階と;
前記一組のオフセット・パラメータを使用して決定された前記動きベクトル差分を、現在ブロックのベース予測子の複数の制御点の第1動きベクトルに適用して、現在ブロックの対応する複数の制御点における第2動きベクトルを決定する段階
であって、前記複数の制御点のそれぞれに対して同一の前記一組のオフセット・パラメータが使用される、段階と;
現在ブロックの前記対応する複数の制御点における前記第2動きベクトルに基づいてアフィン・モデルのパラメータを決定する段階と;
前記アフィン・モデルに従って現在ブロックの少なくとも一つのサンプルを再構成する段階とを含む、
方法。
【請求項2】
前記符号化されたビデオ・ビットストリームから、前記動きベクトル差分を決定するために使用されるオフセット距離インデックスおよびオフセット方向インデックスをデコードする段階と;
前記オフセット距離インデックスおよびオフセット距離インデックスとオフセット距離の間のあらかじめ定義されたマッピングに従って、オフセット距離を決定する段階と;
前記オフセット方向インデックスおよびオフセット方向インデックスとオフセット方向の間のあらかじめ定義されたマッピングに従って、オフセット方向を決定する段階とをさらに含む、
請求項1に記載の方法。
【請求項3】
4パラメータ・アフィン・モデルが使用されるとき、前記動きベクトル差分を前記ベース予測子の2つの制御点に適用する段階をさらに含む、請求項1または2に記載の方法。
【請求項4】
6パラメータ・アフィン・モデルが使用されるとき、前記動きベクトル差分を前記ベース予測子の3つの制御点に適用する段階をさらに含む、請求項1または2に記載の方法。
【請求項5】
第1の参照ピクチャーを参照する前記ベース予測子の前記制御点の前記第1動きベクトルに前記動きベクトル差分を適用して、前記第1の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における前記第2動きベクトルを決定する段階と;
第2の参照ピクチャーを参照する前記ベース予測子の前記制御点の第3動きベクトルに前記動きベクトル差分のミラーを適用して、前記第2の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における第4動きベクトルを決定する段階とをさらに含む、
請求項1ないし4のうちいずれか一項に記載の方法。
【請求項6】
前記第2の参照ピクチャー及び前記第1の参照ピクチャーが、それぞれ現在ピクチャーの両側にある、請求項5に記載の方法。
【請求項7】
第1の参照ピクチャーを参照する前記ベース予測子の前記制御点の前記第1動きベクトルに前記動きベクトル差分を適用して、前記第1の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における前記第2動きベクトルを決定する段階と;
前記第1の参照ピクチャーと現在ピクチャーとの間の第1のピクチャー番号差と、第2の参照ピクチャーと現在ピクチャーとの間の第2のピクチャー番号差とに基づいてスケーリング因子を計算する段階と;
前記第2の参照ピクチャーを参照する前記ベース予測子の前記制御点の第3動きベクトルに、前記スケーリング因子に従ってスケーリングされた前記動きベクトル差分を適用し、前記第2の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における第4動きベクトルを決定する段階とをさらに含む、
請求項1ないし6のうちいずれか一項に記載の方法。
【請求項8】
処理回路を有するビデオ・デコードのための装置であって、
前記処理回路は:
符号化されたビデオ・ビットストリームから現在ピクチャー内の現在ブロックの予測情報をデコードする段階であって、前記予測情報は、オフセットを有するアフィン・マージ・モードを示す、段階と;
前記符号化されたビデオ・ビットストリームから、動きベクトル差分を決定するために使用される一組のオフセット・パラメータをデコードする段階と;
前記一組のオフセット・パラメータを使用して決定された前記動きベクトル差分を、現在ブロックのベース予測子の複数の制御点の第1動きベクトルに適用して、現在ブロックの対応する複数の制御点における第2動きベクトルを決定する段階
であって、前記複数の制御点のそれぞれに対して同一の前記一組のオフセット・パラメータが使用される、段階と;
現在ブロックの前記対応する複数の制御点における前記第2動きベクトルに基づいてアフィン・モデルのパラメータを決定する段階と;
前記アフィン・モデルに従って現在ブロックの少なくとも一つのサンプルを再構成する段階とを実行するように構成されている、
装置。
【請求項9】
前記処理回路はさらに:
前記符号化されたビデオ・ビットストリームから、前記動きベクトル差分を決定するために使用されるオフセット距離インデックスおよびオフセット方向インデックスをデコードする段階と;
前記オフセット距離インデックスおよびオフセット距離インデックスとオフセット距離の間のあらかじめ定義されたマッピングに従って、オフセット距離を決定する段階と;
前記オフセット方向インデックスおよびオフセット方向インデックスとオフセット方向の間のあらかじめ定義されたマッピングに従って、オフセット方向を決定する段階とを実行するようにさらに構成されている、
請求項8に記載の装置。
【請求項10】
前記処理回路が:
4パラメータ・アフィン・モデルが使用されるとき、前記動きベクトル差分を前記ベース予測子の2つの制御点に適用するようにさらに構成されている、請求項8または9に記載の装置。
【請求項11】
前記処理回路が:
6パラメータ・アフィン・モデルが使用されるとき、前記動きベクトル差分を前記ベース予測子の3つの制御点に適用するようにさらに構成されている、請求項8または9に記載の装置。
【請求項12】
前記処理回路が:
第1の参照ピクチャーを参照する前記ベース予測子の前記制御点の前記第1動きベクトルに前記動きベクトル差分を適用して、前記第1の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における前記第2動きベクトルを決定する段階と;
第2の参照ピクチャーを参照する前記ベース予測子の前記制御点の第3動きベクトルに前記動きベクトル差分のミラーを適用して、前記第2の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における第4動きベクトルを決定する段階とを実行するようにさらに構成されている、
請求項8ないし11のうちいずれか一項に記載の装置。
【請求項13】
前記第2の参照ピクチャー及び前記第1の参照ピクチャーが、それぞれ現在ピクチャーの両側にある、請求項12に記載の装置。
【請求項14】
前記処理回路が:
第1の参照ピクチャーを参照する前記ベース予測子の前記制御点の前記第1動きベクトルに前記動きベクトル差分を適用して、前記第1の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における前記第2動きベクトルを決定する段階と;
前記第1の参照ピクチャーと現在ピクチャーとの間の第1のピクチャー番号差と、第2の参照ピクチャーと現在ピクチャーとの間の第2のピクチャー番号差とに基づいてスケーリング因子を計算する段階と;
前記第2の参照ピクチャーを参照する前記ベース予測子の前記制御点の第3動きベクトルに、前記スケーリング因子に従ってスケーリングされた前記動きベクトル差分を適用し、前記第2の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における第4動きベクトルを決定する段階とを実行するようにさらに構成されている、
請求項8ないし13のうちいずれか一項に記載の装置。
【請求項15】
コンピュータに:
符号化されたビデオ・ビットストリームから現在ピクチャー内の現在ブロックの予測情報をデコードする段階であって、前記予測情報は、オフセットを有するアフィン・マージ・モードを示す、段階と;
前記符号化されたビデオ・ビットストリームから、動きベクトル差分を決定するために使用される一組のオフセット・パラメータをデコードする段階と;
前記一組のオフセット・パラメータを使用して決定された前記動きベクトル差分を、現在ブロックのベース予測子の複数の制御点の第1動きベクトルに適用して、現在ブロックの対応する複数の制御点における第2動きベクトルを決定する段階
であって、前記複数の制御点のそれぞれに対して同一の前記一組のオフセット・パラメータが使用される、段階と;
現在ブロックの前記対応する複数の制御点における前記第2動きベクトルに基づいてアフィン・モデルのパラメータを決定する段階と;
前記アフィン・モデルに従って現在ブロックの少なくとも一つのサンプルを再構成する段階とを実行させるための、
コンピュータ・プログラム。
【請求項16】
前記コンピュータに:
前記符号化されたビデオ・ビットストリームから、前記動きベクトル差分を決定するために使用されるオフセット距離インデックスおよびオフセット方向インデックスをデコードする段階と;
前記オフセット距離インデックスおよびオフセット距離インデックスとオフセット距離の間のあらかじめ定義されたマッピングに従って、オフセット距離を決定する段階と;
前記オフセット方向インデックスおよびオフセット方向インデックスとオフセット方向の間のあらかじめ定義されたマッピングに従って、オフセット方向を決定する段階とを実行させるための命令をさらに含む、
請求項15に記載のコンピュータ・プログラム。
【請求項17】
4パラメータ・アフィン・モデルが使用されるとき、前記動きベクトル差分を前記ベース予測子の2つの制御点に適用する段階を実行させるための命令をさらに含む、請求項15または16に記載のコンピュータ・プログラム。
【請求項18】
6パラメータ・アフィン・モデルが使用されるとき、前記動きベクトル差分を前記ベース予測子の3つの制御点に適用する段階を実行させるための命令をさらに含む、請求項15または16に記載のコンピュータ・プログラム。
【請求項19】
前記コンピュータに:
第1の参照ピクチャーを参照する前記ベース予測子の前記制御点の前記第1動きベクトルに前記動きベクトル差分を適用して、前記第1の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における前記第2動きベクトルを決定する段階と;
第2の参照ピクチャーを参照する前記ベース予測子の前記制御点の第3動きベクトルに前記動きベクトル差分のミラーを適用して、前記第2の参照ピクチャーを参照する現在ブロックの前記対応する複数の制御点における第4動きベクトルを決定する段階とを実行させるための命令をさらに含む、
請求項15ないし18のうちいずれか一項に記載のコンピュータ・プログラム。
【請求項20】
前記第2の参照ピクチャー及び前記第1の参照ピクチャーが、それぞれ現在ピクチャーの両側にある、請求項19に記載のコンピュータ・プログラム。
【請求項21】
エンコーダが実行するビデオ・エンコードのための方法であって:
ビデオ・ビットストリームを符号化する段階と;
前記符号化されたビデオ・ビットストリームから現在ピクチャー内の現在ブロックの予測情報をデコードする段階であって、前記予測情報は、オフセットを有するアフィン・マージ・モードを示す、段階と;
前記符号化されたビデオ・ビットストリームから、動きベクトル差分を決定するために使用される一組のオフセット・パラメータをデコードする段階と;
前記一組のオフセット・パラメータを使用して決定された前記動きベクトル差分を、現在ブロックのベース予測子の複数の制御点の第1動きベクトルに適用して、現在ブロックの対応する複数の制御点における第2動きベクトルを決定する段階
であって、前記複数の制御点のそれぞれに対して同一の前記一組のオフセット・パラメータが使用される、段階と;
現在ブロックの前記対応する複数の制御点における前記第2動きベクトルに基づいてアフィン・モデルのパラメータを決定する段階と;
前記アフィン・モデルに従って現在ブロックの少なくとも一つのサンプルを再構成する段階とを含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本願は、2019年7月3日に出願された米国特許出願第16/503,451号「ビデオ符号化のための方法および装置」の優先権の利益を主張する。同出願は、2018年10月4日に出願された米国仮特許出願第62/741,532号「予測オフセットを有するアフィン動きモデル符号化の方法」の優先権の利益を主張する。その内容全体は参照により本明細書に組み込まれる。
【0002】
技術分野
本開示は、ビデオ符号化及び復号に概括的に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で出願時に先行技術として適格でないことがありうる本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオ符号化および復号は、動き補償を伴うピクチャー間予測を用いて実行できる。非圧縮デジタル・ビデオは、一連のピクチャーを含むことができ、各ピクチャーは、たとえば1920×1080のルミナンス・サンプルおよび関連するクロミナンス・サンプルの空間的寸法を有する。一連のピクチャーは、固定または可変のピクチャー・レート、たとえば、60ピクチャー毎秒または60Hzを有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。たとえば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレーム・レートでの1920×1080のルミナンス・サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ符号化および復号の1つの目的は、圧縮による入力ビデオ信号の冗長性の低減でありうる。圧縮は、前述の帯域幅または記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことがある。可逆圧縮および不可逆圧縮の両方、ならびにそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮されたもとの信号から、もとの信号の正確なコピーが再構成できる技術をいう。不可逆圧縮を使用する場合、再構成された信号は、もとの信号と同一ではないことがありうるが、もとの信号と再構成された信号との間の歪みは、再構成された信号を意図された用途のために有用にするのに十分小さい。ビデオの場合、不可逆圧縮が広く用いられている。許容される歪みの量はアプリケーションに依存し、たとえば、ある種の消費者ストリーミングアプリケーションのユーザーは、テレビ配信アプリケーションのユーザーよりも高い歪みを許容することがある。達成可能な圧縮比は、より高い許容可能/認容可能な歪みはより高い圧縮比をもたらすことができる、ということを反映できる。
【0006】
動き補償は、不可逆圧縮技術であることができ、以前に再構成されたピクチャーまたはその一部(参照ピクチャー)からのサンプル・データのブロックが、動きベクトル(motion vector)(以下、MV)によって示される方向に空間的にシフトされた後に、新しく再構成されるピクチャーまたはピクチャー部分の予測のために使用される技術に関連することができる。場合によっては、参照ピクチャーは、現在再構成中のピクチャーと同じであることができる。MVは、XおよびYの2次元、または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 Rec. H.265, High Efficiency Video Coding, December 2016)に記述されている。H.265が提供する多くのMV予測機構のうち、ここでは、以下で「空間マージ」と呼ばれる技法について述べる。
【0009】
図1を参照すると、現在ブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが、動き探索プロセスの間にエンコーダによって見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、一つまたは複数の参照ピクチャーに関連付けられたメタデータから、たとえば(復号順で)最新の参照ピクチャーから、A0、A1、およびB0、B1、B2(それぞれ102ないし106)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャーからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0010】
本開示の諸側面は、ビデオ・エンコード/デコードのための方法および装置を提供する。いくつかの例では、ビデオ・デコード装置は、受領回路および処理回路を含む。たとえば、処理回路は、符号化されたビデオ・ビットストリームから現在ピクチャー内の現在ブロックの予測情報をデコードする。予測情報は、オフセットを有するアフィン・マージ・モードを示す。次いで、処理回路は、符号化されたビデオ・ビットストリームから、動きベクトル差分を決定するために使用される一組のオフセット・パラメータをデコードし、動きベクトル差分を、現在ブロックのベース予測子の複数の制御点の第1動きベクトルに適用して、現在ブロックの対応する複数の制御点における第2動きベクトルを決定する。さらに、処理回路は、現在ブロックの対応する複数の制御点における第2動きベクトルに基づいてアフィン・モデルのパラメータを決定し、アフィン・モデルに従って現在ブロックの少なくとも一つのサンプルを再構成する。
【0011】
いくつかの実施形態では、処理回路は、符号化されたビデオ・ビットストリームから、動きベクトル差分を決定するために使用されるオフセット距離インデックスおよびオフセット方向インデックスをデコードし、オフセット距離インデックスおよびオフセット距離インデックスとオフセット距離のあらかじめ定義されたマッピングに従って、オフセット距離を決定する。次いで、処理回路は、オフセット方向インデックスおよびオフセット方向インデックスとオフセット方向のあらかじめ定義されたマッピングに従って、オフセット方向を決定する。
【0012】
一例では、処理回路は、4パラメータ・アフィン・モデルが使用されるとき、動きベクトル差分をベース予測子の2つの制御点に適用する。別の例では、処理回路は、6パラメータ・アフィン・モデルが使用されるとき、動きベクトル差分をベース予測子の3つの制御点に適用する。
【0013】
ある実施形態では、処理回路は、第1の参照ピクチャーを参照する第1動きベクトルに前記動きベクトル差分を適用して、第1の参照ピクチャーの第2動きベクトルを決定し、第2の参照ピクチャーを参照するベース予測子の制御点の第3動きベクトルに前記動きベクトル差分のミラーを適用して、第2の参照ピクチャーを参照する現在ブロックの対応する複数の制御点における第4動きベクトルを決定する。
【0014】
別の実施形態では、処理回路は、第2の参照ピクチャーが第1の参照ピクチャーとは現在ピクチャーの反対側にあるときに、第1の参照ピクチャーを参照する第1動きベクトルに前記動きベクトル差分を適用して第1の参照ピクチャーを参照する第2動きベクトルを決定し、第2の参照ピクチャーを参照するベース予測子の制御点の第3動きベクトルに前記動きベクトル差分のミラーを適用して、第2の参照ピクチャーを参照する現在ブロックの対応する複数の制御点における第4動きベクトルを決定する。
【0015】
いくつかの例では、処理回路は、第1の参照ピクチャーを参照する第1動きベクトルに前記動きベクトル差分を適用して、第1の参照ピクチャーを参照する第2動きベクトルを決定し、第1の参照ピクチャーと現在ピクチャーとの間の第1のピクチャー番号差と、第2の参照ピクチャーと現在ピクチャーとの間の第2のピクチャー番号差とに基づいてスケーリング因子を計算する。さらに、処理回路は、スケーリング因子に従ってスケーリングされた動きベクトル差分を、第2の参照ピクチャーを参照するベース予測子の制御点の第3動きベクトルに適用し、第2の参照ピクチャーを参照する現在ブロックの対応する複数の制御点における第4動きベクトルを決定する。
【0016】
本開示の諸側面は、ビデオ・デコードのためにコンピュータによって実行されたときに、該コンピュータにビデオ・デコードのための方法を実行させる命令を記憶している非一時的なコンピュータ読み取り可能媒体をも提供する。
【図面の簡単な説明】
【0017】
開示された主題のさらなる特徴、性質、およびさまざまな利点は、以下の詳細な記述および添付の図面からより明白になるであろう。
【0018】
【
図1】一例における現在ブロックおよびその周囲の空間マージ候補の概略図である。
【0019】
【
図2】ある実施形態による通信システム(200)の簡略ブロック図の概略図である。
【0020】
【
図3】ある実施形態による通信システム(300)の簡略ブロック図の概略図である。
【0021】
【
図4】ある実施形態によるデコーダの簡略ブロック図の概略図である。
【0022】
【
図5】ある実施形態によるエンコーダの簡略ブロック図の概略図である。
【0023】
【
図6】別の実施形態によるエンコーダのブロック図を示す。
【0024】
【
図7】別の実施形態によるデコーダのブロック図を示す。
【0025】
【
図8】いくつかの例における空間的および時間的候補の例を示す。
【0026】
【
図9】本開示のある実施形態によるUMVEの例を示す。
【0027】
【
図10】本開示のある実施形態によるUMVEの例を示す。
【0028】
【
図11】アフィン動きモデルを有するブロックの例を示す。
【0029】
【
図12】本開示のいくつかの実施形態によるアフィン変換の例を示す。
【0030】
【
図13】現在ブロックについての制御点CP0およびCP1を示すプロットを示す。
【0031】
【
図14】本開示のいくつかの実施形態によるプロセス例を概説するフローチャートを示す。
【0032】
【
図15】ある実施形態によるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0033】
図2は、本開示のある実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、たとえばネットワーク(250)を介して互いに通信することができる複数の端末装置を含む。たとえば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1の対の端末装置(210)および(220)を含む。
図2の例では、第1の対の端末装置(210)および(220)は、データの一方向送信を実行する。たとえば、端末装置(210)は、ネットワーク(250)を介した他方の端末装置(220)への伝送のために、ビデオ・データ(たとえば、端末装置(210)によって捕捉されたビデオ・ピクチャーのストリーム)を符号化してもよい。エンコードされたビデオ・データは、一つまたは複数の符号化されたビデオ・ビットストリームの形で伝送されることができる。端末装置(220)は、ネットワーク(250)から、符号化されたビデオ・データを受信し、符号化されたビデオ・データをデコードしてビデオ・ピクチャーを復元し、復元されたビデオ・データに従ってビデオ・ピクチャーを表示してもよい。一方向データ伝送は、メディア・サービス・アプリケーション等において一般的でありうる。
【0034】
別の例では、通信システム(200)は、たとえばビデオ会議中に発生しうる符号化されたビデオ・データの双方向伝送を実行する第2の対の端末装置(230)および(240)を含む。データの双方向伝送のために、一例では、端末装置(230)および(240)の各端末装置は、ネットワーク(250)を介した、端末装置(230)および(240)のうちの他方の端末装置への伝送のために、ビデオ・データ(たとえば、端末装置によって捕捉されたビデオ・ピクチャーのストリーム)を符号化してもよい。端末装置(230)および(240)の各端末装置は、端末装置(230)および(240)のうちの他方の端末装置によって送信された符号化されたビデオ・データを受信し、符号化されたビデオ・データをデコードして、ビデオ・ピクチャーを復元し、復元されたビデオ・データに従って、アクセス可能な表示装置においてビデオ・ピクチャーを表示してもよい。
【0035】
図2の例では、端末装置(210)、(220)、(230)および(240)は、サーバー、パーソナルコンピュータおよびスマートフォンとして示されてもよいが、本開示の原理は、それに限定されなくてもよい。本開示の実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤー、および/または専用のビデオ会議設備での応用を見出す。ネットワーク(250)は、たとえば有線(ワイヤード)および/または無線〔ワイヤレス〕通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)の間で符号化されたビデオ・データを伝達する任意の数のネットワークを表わす。通信ネットワーク(250)は、回線交換および/またはパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、遠隔通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。今の議論の目的のために、ネットワーク(250)のアーキテクチャーおよびトポロジーは、以下に説明しない限り、本開示の動作には重要ではないことがある。
【0036】
図3は、開示される主題のためのアプリケーションの例として、ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置を示す。開示される主題は、たとえば、ビデオ会議、デジタルTV、CD、DVD、メモリースティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションにも等しく適用可能でありうる。
【0037】
ストリーミング・システムは、ビデオ源(301)、たとえばデジタル・カメラを含むことができ、たとえば非圧縮のビデオ・ピクチャーのストリーム(302)を生成する捕捉サブシステム(313)を含んでいてもよい。一例では、ビデオ・ピクチャーのストリーム(302)は、デジタル・カメラによって撮影されたサンプルを含む。エンコードされたビデオ・データ(304)(または符号化されたビデオ・ビットストリーム)と比較した場合の高いデータ・ボリュームを強調するために太線として描かれているビデオ・ピクチャーのストリーム(302)は、ビデオ源(301)に結合されたビデオ・エンコーダ(303)を含む電子装置(320)によって処理されることができる。ビデオ・エンコーダ(303)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にし、または実現するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオ・ピクチャーのストリーム(302)と比較した場合の、より低いデータ・ボリュームを強調するために細い線として描かれている、エンコードされたビデオ・データ(304)(またはエンコードされたビデオ・ビットストリーム(304))は、将来の使用のためにストリーミング・サーバー(305)に記憶されることができる。
図3のクライアント・サブシステム(306)および(308)のような一つまたは複数のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(305)にアクセスして、エンコードされたビデオ・データ(304)のコピー(307)および(309)を取り出すことができる。クライアント・サブシステム(306)は、たとえば電子装置(330)内にビデオ・デコーダ(310)を含むことができる。ビデオ・デコーダ(310)は、エンコードされたビデオ・データの入来コピー(307)をデコードし、ディスプレイ(312)(たとえば表示画面)または他のレンダリング装置(図示せず)上にレンダリングできるビデオ・ピクチャーの出ていくストリーム(311)を生成する。いくつかのストリーミング・システムでは、エンコードされたビデオ・データ(304)、(307)、および(309)(たとえば、ビデオ・ビットストリーム)は、ある種のビデオ符号化/圧縮標準に従ってエンコードされることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化規格は、非公式に多用途ビデオ符号化(VVC)として知られている。開示される主題は、VVCの文脈で使用されてもよい。
【0038】
電子装置(320)および(330)は、他の構成要素(図示せず)を含むことができることを注意しておく。たとえば、電子装置(320)は、ビデオ・デコーダ(図示せず)を含むことができ、電子装置(330)は、ビデオ・エンコーダ(図示せず)も含むことができる。
【0039】
図4は、本開示のある実施形態によるビデオ・デコーダ(410)のブロック図を示す。ビデオ・デコーダ(410)は、電子装置(430)に含まれることができる。電子装置(430)は、受領機(431)(たとえば、受領回路)を含むことができる。ビデオ・デコーダ(410)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用できる。
【0040】
受領機(431)は、ビデオ・デコーダ(410)によってデコードされるべき一つまたは複数の符号化されたビデオ・シーケンスを受領してもよい;同じまたは別の実施形態において、一度に1つの符号化されたビデオ・シーケンスであり、各符号化されたビデオ・シーケンスのデコードは、他の符号化されたビデオ・シーケンスから独立である。符号化されたビデオ・シーケンスは、チャネル(401)から受信されてもよく、該チャネルは、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。受領機(431)は、エンコードされたビデオ・データを、他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリームと一緒に受領してもよく、これらのデータは、それぞれの使用エンティティ(図示せず)を転送されてもよい。受領機(431)は、符号化されたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタ対策として、バッファメモリ(415)が、受領器(410)とエントロピー・デコーダ/パーサー(420)(以下「パーサー」)との間に結合されてもよい。ある種のアプリケーションでは、バッファメモリ(415)はビデオ・デコーダ(410)の一部である。他のアプリケーションでは、ビデオ・デコーダ(410)の外部にあることができる(図示せず)。さらに他のアプリケーションでは、たとえばネットワーク・ジッタに対抗するために、ビデオ・デコーダ(410)の外部にバッファメモリ(図示せず)があってもよく、さらに、たとえば再生タイミングを扱うために、ビデオ・デコーダ(410)の内部に別のバッファメモリ(415)があってもよい。受領器(431)が、十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領している場合は、バッファメモリ(415)は、必要とされなくてもよく、または小さくてもよい。インターネットのようなベストエフォート型のパケット・ネットワークでの使用のためには、バッファメモリ(415)が要求されることがあり、比較的大きいことがあり、有利には適応サイズであることができ、少なくとも部分的に、ビデオ・デコーダ(410)の外部でオペレーティング・システムまたは同様の要素(図示せず)において実装されてもよい。
【0041】
ビデオ・デコーダ(410)は、符号化されたビデオ・シーケンスからシンボル(421)を再構成するためのパーサー(420)を含んでいてもよい。これらのシンボルのカテゴリーは、ビデオ・デコーダ(410)の動作を管理するために使用される情報と、潜在的には、レンダー装置(412)(たとえば表示画面)のようなレンダリング装置を制御するための情報とを含む。レンダー装置は、
図4に示されたように、電子装置(430)の一体的な部分ではなく、電子装置(430)に結合されることができる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information、SEIメッセージ)またはビデオユーザービリティ情報(Video Usability Information、VUI)パラメータ・セット・フラグメント(図示せず)の形であってもよい。パーサー(420)は、受領された符号化されたビデオ・シーケンスをパースする/エントロピー復号することができる。符号化されたビデオ・シーケンスの符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしの算術符号化などを含む、さまざまな原理に従うことができる。パーサー(420)は、符号化されたビデオ・シーケンスから、ビデオ・デコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、ピクチャーグループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、PU)などを含むことができる。パーサー(420)はまた、符号化されたビデオ・シーケンスから、変換係数、量子化パラメータ値、動きベクトル等の情報を抽出することができる。
【0042】
パーサー(420)は、バッファメモリ(415)から受領されたビデオ・シーケンスに対してエントロピー・デコード/パース動作を実行し、それによりシンボル(421)を生成することができる。
【0043】
シンボル(421)の再構成は、符号化されたビデオ・ピクチャーまたはその諸部分のタイプ(たとえば、インターおよびイントラ・ピクチャー、インターおよびイントラ・ブロック)および他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットがどのように関わるかは、符号化されたビデオ・シーケンスからパーサー(420)によってパースされたサブグループ制御情報によって制御されることができる。パーサー(420)と下記の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確のため、描かれていない。
【0044】
すでに述べた機能ブロックのほかに、ビデオ・デコーダ(410)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能単位への概念的な細分が適切である。
【0045】
第1のユニットは、スケーラー/逆変換ユニット(451)である。スケーラー/逆変換ユニット(451)は、パーサー(420)から、量子化された変換係数および制御情報をシンボル(単数または複数)(421)として受領する。制御情報は、どの変換を使用するか、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む。スケーラー/逆変換ユニット(451)は、集計器(455)に入力できるサンプル値を含むブロックを出力することができる。
【0046】
場合によっては、スケーラー/逆変換(451)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャーからの予測情報を使用していないが、現在ピクチャーの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラ・ピクチャー予測ユニット(452)によって提供されることができる。場合によっては、イントラ・ピクチャー予測ユニット452は、現在ピクチャー・バッファ(458)から取ってきた、周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。集計器(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラー/逆変換ユニット(451)によって提供される出力サンプル情報に加算する。
【0047】
他の場合には、スケーラー/逆変換ユニット(451)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(453)は、予測のために使用されるサンプルを取ってくるために参照ピクチャー・メモリ(457)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(421)に従って動き補償した後、これらのサンプルは、集計器(455)によってスケーラー/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(453)が予測サンプルを取ってくる参照ピクチャー・メモリ(457)内のアドレスは、シンボル(421)の形で動き補償ユニット(453)に利用可能な動きベクトルによって制御できる。該シンボルは、たとえばX、Y、および参照ピクチャー成分を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャー・メモリ(457)から取ってこられるサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0048】
集計器(455)の出力サンプルは、ループ・フィルタ・ユニット(456)内でさまざまなループ・フィルタリング技術を受けることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化されたビデオ・シーケンス(符号化されたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(420)からのシンボル(421)としてループ・フィルタ・ユニット(456)に利用可能にされるが、符号化されたピクチャーまたは符号化されたビデオ・シーケンスの(デコード順で)前の部分のデコード中に得られたメタ情報に応答するとともに、以前に再構成されループ・フィルタリングされたサンプル値に応答することもできる。
【0049】
ループ・フィルタ・ユニット(456)の出力はサンプル・ストリームであることができ、これは、レンダリング装置(412)に出力されることができ、また将来のインターピクチャー予測において使用するために参照ピクチャー・メモリ(457)に記憶されることができる。
【0050】
符号化された画像は、いったん完全に再構成されると、将来の予測のための参照ピクチャーとして使用できる。たとえば、現在ピクチャーに対応する符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえば、パーサー(420)によって)参照ピクチャーとして同定されると、現在ピクチャー・バッファ(458)は参照ピクチャーメモリ(457)の一部となることができ、後続の符号化されたピクチャーの再構成を開始する前に、新鮮な現在ピクチャー・バッファが再割当てされることができる。
【0051】
ビデオ・デコーダ(410)は、ITU-T勧告H.265のような標準における所定のビデオ圧縮技術に従ってデコード動作を実行することができる。符号化されたビデオ・シーケンスは、ビデオ圧縮技術または標準のシンタックスおよびビデオ圧縮技術または標準において文書化されているプロファイルに従うという意味で、符号化されたビデオ・シーケンスは、使用されているビデオ圧縮技術または標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術または標準において利用可能なすべてのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、ある種のツールを選択することができる。準拠のためにはまた、符号化されたビデオ・シーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあることも必要であることがある。いくつかの場合には、レベルは、最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定された限界は、場合によっては、符号化されたビデオ・シーケンスにおいて信号伝達される、HRDバッファ管理のための仮設参照デコーダ(Hypothetical Reference Decoder、HRD)仕様およびメタデータを通じてさらに制約されることができる。
【0052】
ある実施形態において、受領器(431)は、エンコードされたビデオとともに追加の(冗長な)データを受領してもよい。追加データは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれていてもよい。追加データは、データを適正にデコードするため、および/またはもとのビデオ・データをより正確に再構成するために、ビデオ・デコーダ(410)によって使用されてもよい。追加データは、たとえば、時間的、空間的、または信号対雑音比(SNR)の向上層、冗長スライス、冗長ピクチャー、前方誤り訂正符号などの形でありうる。
【0053】
図5は、本開示のある実施形態によるビデオ・エンコーダ(503)のブロック図である。ビデオ・エンコーダ(503)は、電子装置(520)に含まれる。電子装置(520)は、送信器(540)(たとえば、送信回路)を含む。ビデオ・エンコーダ(503)は、
図3の例におけるビデオ・エンコーダ(303)の代わりに使用できる。
【0054】
ビデオ・エンコーダ(503)は、ビデオ・エンコーダ(503)によって符号化されるべきビデオ画像を捕捉することができるビデオ源(501)(これは
図5の例ではエンコーダ装置(520)の一部ではない)からビデオ・サンプルを受領することができる。別の例では、ビデオ源(501)は、電子装置(520)の一部である。
【0055】
ビデオ源(501)は、任意の好適なビット深さ(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCB、RGB、…)および任意の好適なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、ビデオ・エンコーダ(503)によって符号化されるべき源ビデオ・シーケンスを提供することができる。メディア・サービス・システムにおいては、ビデオ源(501)は、事前に準備されたビデオを記憶している記憶装置であってもよい。ビデオ会議システムにおいては、ビデオ源(501)は、ローカルでの画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを付与する複数の個々のピクチャーとして提供されてもよい。ピクチャー自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0056】
ある実施形態によれば、ビデオ・エンコーダ(503)は、源ビデオ・シーケンスのピクチャーを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間的制約の下で、符号化および圧縮して、符号化されたビデオ・シーケンス(543)にすることができる。適切な符号化速度を施行することは、コントローラ(550)の一つの機能である。いくつかの実施形態では、コントローラ(550)は、以下に記載されるような他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。かかる結合は、明確のために描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技術のラムダ値、…)、ピクチャー・サイズ、ピクチャーグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(550)は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(503)に関する他の好適な機能を有するように構成できる。
【0057】
いくつかの実施形態では、ビデオ・エンコーダ(503)は、符号化ループにおいて動作する。思い切って単純化した説明として、一例では、符号化ループは、源符号化器(530)(たとえば、符号化されるべき入力ピクチャーと参照ピクチャー(算数または複数)に基づいてシンボル・ストリームのようなシンボルを生成することを受け持つ)と、ビデオ・エンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(リモートの)デコーダも生成するであろうのと同様の仕方でサンプル・データを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、シンボルと符号化されたビデオ・ビットストリームとの間のどの圧縮も無損失である)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャー・メモリ(534)に入力される。シンボル・ストリームのデコードは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャー・メモリの内容もローカル・エンコーダとリモート・エンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(および、たとえば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0058】
「ローカル」デコーダ(533)の動作は、
図4との関連ですでに上記で詳細に述べた「リモート」デコーダ、たとえばビデオ・デコーダ(410)の動作と同じであってよい。しかしながら、暫時
図4も参照すると、シンボルが利用可能であり、エントロピー符号化器(545)およびパーサー(420)による、シンボルの符号化されたビデオ・シーケンスへのエンコード/デコードが可逆でありうるので、バッファメモリ(415)およびパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号部は、ローカル・デコーダ(533)においては完全には実装されなくてもよい。
【0059】
この時点で行なうことができる観察は、デコーダ内に存在するパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要があることである。このため、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、短縮することができる。ある種の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0060】
動作中、いくつかの例では、源符号化器(530)は、「参照フレーム」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたピクチャーを参照して、入力ピクチャーを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(532)は、入力ピクチャーのピクセル・ブロックと、入力ピクチャーに対する予測参照として選択されうる参照ピクチャー(単数または複数)のピクセル・ブロックとの間の差分を符号化する。
【0061】
ローカル・ビデオ・デコーダ(533)は、源符号化器(530)によって生成されたシンボルに基づいて、参照フレームとして指定されうるピクチャーの符号化されたビデオ・データをデコードすることができる。符号化エンジン(532)の動作は、有利には、損失のあるプロセスでありうる。符号化されたビデオ・データがビデオ・デコーダ(
図5には示さず)でデコードされうるとき、再構成されたビデオ・シーケンスは、典型的には、いくつかのエラーを伴う源ビデオ・シーケンスの複製でありうる。ローカル・ビデオ・デコーダ(533)は、ビデオ・デコーダによって参照ピクチャーに対して実行されうるデコード・プロセスを複製し、再構成された参照ピクチャーを参照ピクチャー・キャッシュ(534)に格納させることができる。このようにして、ビデオ・エンコーダ(503)は、遠端のビデオ・デコーダによって得られるであろう再構成された参照ピクチャーとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャーのコピーを、ローカルに記憶することができる。
【0062】
予測器(535)は、符号化エンジン(532)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャーについて、予測器(535)は、新しいピクチャーのための適切な予測参照のはたらきをしうるサンプル・データ(候補参照ピクセル・ブロックとして)またはある種のメタデータ、たとえば参照ピクチャー動きベクトル、ブロック形状などを求めて、参照ピクチャー・メモリ(534)を探索することができる。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック/ピクセル・ブロック毎に(on a sample block-by-pixel block basis)動作しうる。場合によっては、予測器(535)によって得られた検索結果によって決定されるところにより、入力ピクチャーは、参照ピクチャー・メモリ(534)に記憶された複数の参照ピクチャーから引き出された予測参照を有することができる。
【0063】
コントローラ(550)は、たとえば、ビデオ・データをエンコードするために使用されるパラメータおよびサブグループ・パラメータの設定を含め、源符号化器(530)の符号化動作を管理してもよい。
【0064】
上記の機能ユニットすべての出力は、エントロピー符号化器(545)におけるエントロピー符号化を受けることができる。エントロピー符号化器(545)は、ハフマン符号化、可変長符号化、算術符号化などといった技術に従ってシンボルを無損失圧縮することによって、さまざまな機能ユニットによって生成されたシンボルを符号化されたビデオ・シーケンスに変換する。
【0065】
送信器(540)は、エントロピー符号化器(545)によって生成される符号化されたビデオ・シーケンスをバッファに入れて、通信チャネル(560)を介した送信のためにそれを準備することができる。通信チャネル(560)は、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(540)は、ビデオ符号化器(530)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージすることができる。
【0066】
コントローラ(550)は、ビデオ・エンコーダ(503)の動作を管理してもよい。符号化の間、コントローラ(550)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー・タイプを割り当てることができる。符号化ピクチャー・タイプは、それぞれのピクチャーに適用されうる符号化技術に影響しうる。たとえば、ピクチャーはしばしば、以下のピクチャー・タイプのうちの1つとして割り当てられることがある。
【0067】
イントラピクチャー(Iピクチャー)は、予測の源としてシーケンス内の他のピクチャーを使用せずに、符号化され、デコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば、独立デコーダ・リフレッシュ(Independent Decoder Refresh、「IDR」)・ピクチャーを含む、異なるタイプのイントラ・ピクチャーを許容する。当業者は、Iピクチャーのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識する。
【0068】
予測ピクチャー(Pピクチャー)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。
【0069】
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。同様に、マルチ予測ピクチャーは、単一のブロックの再構成のために、3つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
【0070】
源ピクチャーは、普通、空間的に複数のサンプル・ブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定されるところにより、他の(すでに符号化された)ブロックを参照して予測的に符号化されうる。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよく、または、同じピクチャーのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、以前に符号化された一つの参照ピクチャーを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。Bピクチャーのブロックは、1つまたは2つの以前に符号化された参照ピクチャーを参照して、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。
【0071】
ビデオ・エンコーダ(503)は、ITU-T勧告H.265などの所定のビデオ符号化技術または標準に従って符号化動作を実行することができる。その動作において、ビデオ・エンコーダ(503)は、入力ビデオ・シーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。よって、符号化されたビデオ・データは、使用されるビデオ符号化技術または標準によって指定されるシンタックスに準拠しうる。
【0072】
ある実施形態において、送信器(540)は、エンコードされたビデオと一緒に追加データを送信してもよい。源符号化器(530)は、符号化されたビデオ・シーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNR向上層、冗長ピクチャーおよびスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータ・セット・フラグメントなどを含んでいてもよい。
【0073】
ビデオは、時間的シーケンスにおいて複数の源ピクチャー(ビデオ・ピクチャー)として捕捉されてもよい。ピクチャー内予測(しばしば、イントラ予測と略される)は、所与のピクチャーにおける空間的相関を利用し、ピクチャー間予測は、ピクチャー間の(時間的または他の)相関を利用する。一例では、現在ピクチャーと呼ばれるエンコード/デコード対象の特定のピクチャーは、ブロックに分割される。現在ピクチャー内のブロックが、ビデオにおける前に符号化され、かつ、まだバッファに入れられている参照ピクチャー内の参照ブロックに類似する場合、現在ピクチャー内のそのブロックは、動きベクトルと呼ばれるベクトルによって符号化できる。動きベクトルは、参照ピクチャー内の参照ブロックをポイントし、複数の参照ピクチャーが使用される場合には、参照ピクチャーを同定する第3の次元を有することができる。
【0074】
いくつかの実施形態において、ピクチャー間予測において双予測技術が使用できる。双予測技術によれば、いずれもビデオにおける現在ピクチャーよりデコード順で先行する(ただし、表示順では、それぞれ過去および将来であってもよい)第1の参照ピクチャーおよび第2の参照ピクチャーのような2つの参照ピクチャーが使用される。現在ピクチャー内のブロックは、第1の参照ピクチャー内の第1の参照ブロックをポイントする第1動きベクトルと、第2の参照ピクチャー内の第2の参照ブロックをポイントする第2動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測できる。
【0075】
さらに、符号化効率を改善するために、ピクチャー間予測においてマージモード技法が使用できる。
【0076】
本開示のいくつかの実施形態によれば、ピクチャー間予測およびピクチャー内予測などの予測は、ブロックの単位で実行される。たとえば、HEVC規格によれば、ビデオ・ピクチャーのシーケンスにおけるピクチャーは、圧縮のために符号化ツリー単位(CTU)に分割され、ピクチャーにおけるそれらのCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルのように、同じサイズを有する。一般に、CTUは、1つのルーマCTBおよび2つのクロマCTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、再帰的に、一つまたは複数の符号化単位(CU)に四分木分割されていくことができる。たとえば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCU、または16×16ピクセルの16個のCUに分割されることができる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプのような、そのCUの予測タイプを決定するために解析される。CUは時間的および/または空間的予測可能性に依存して、一つまたは複数の予測単位(PU)に分割される。一般に、各PUはルーマ予測ブロック(PB)および2つのクロマPBを含む。ある実施形態では、符号化(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルーマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなど、ピクセルについての値(たとえば、ルーマ値)の行列を含む。
【0077】
図6は、本開示の別の実施形態によるビデオ・エンコーダ(603)の図を示す。ビデオ・エンコーダ(603)は、ビデオ・ピクチャーのシーケンス内の現在ビデオ・ピクチャー内のサンプル値の処理ブロック(たとえば、予測ブロック)を受領し、処理ブロックを、符号化されたビデオ・シーケンスの一部である符号化されたピクチャーにエンコードするように構成される。一例では、ビデオ・エンコーダ(603)は、
図3の例におけるビデオ・エンコーダ(303)の代わりに使用される。
【0078】
HEVCの例では、ビデオ・エンコーダ(603)は、8×8サンプルなどの予測ブロックのような処理ブロックについてサンプル値の行列を受領する。ビデオ・エンコーダ(603)は、処理ブロックが、イントラモード、インターモード、または双予測モードのどれを使用して、最もよく符号化されるかを、たとえばレート‐歪み最適化を使用して、判別する。処理ブロックがイントラモードで符号化される場合、ビデオ・エンコーダ(603)は、処理ブロックを符号化されたピクチャーにエンコードするためにイントラ予測技法を使用してもよく;処理ブロックがインターモードまたは双予測モードで符号化される場合、ビデオ・エンコーダ(603)は、処理ブロックを符号化されたピクチャーにエンコードするために、それぞれ、インター予測技法または双予測技法を使用してもよい。ある種のビデオ符号化技術では、マージモード(merge mode)は、動きベクトルが一つまたは複数の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、ピクチャー間予測サブモードでありうる。ある種の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオ・エンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0079】
図6の例では、ビデオ・エンコーダ(603)は、インター・エンコーダ(630)、イントラ・エンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、全般コントローラ(621)、およびエントロピー符号化器(625)を、
図6に示されるように一緒に結合されて含む。
【0080】
インター・エンコーダ(630)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを参照ピクチャー内の一つまたは複数の参照ブロック(たとえば、以前のピクチャーおよび後のピクチャー内のブロック)と比較し、インター予測情報(たとえば、インター・エンコード技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技術を使用してインター予測結果(たとえば、予測されたブロック)を計算するように構成される。いくつかの例では、前記参照ピクチャーは、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャーである。
【0081】
イントラ・エンコーダ(622)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、場合によっては、該ブロックを、同じピクチャー内ですでに符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(たとえば、一つまたは複数のイントラ・エンコード技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラ・エンコーダ(622)はまた、該イントラ予測情報および同じピクチャー内の参照ブロックに基づいて、イントラ予測結果(たとえば、予測されたブロック)を計算する。
【0082】
全般コントローラ(621)は、全般制御データを決定し、全般制御データに基づいてビデオ・エンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、全般コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいて制御信号をスイッチ(626)に提供する。たとえば、モードがイントラモードである場合、全般コントローラ(621)は、残差計算器(623)による使用のためにイントラモードの結果を選択するようスイッチ(626)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピー・エンコーダ(625)を制御する;モードがインターモードである場合、全般コントローラ(621)は、残差計算器(623)による使用のためにインター予測の結果を選択するようスイッチ(626)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピー・エンコーダ(625)を制御する。
【0083】
残差計算器(623)は、受領されたブロックと、イントラ・エンコーダ(622)またはインター・エンコーダ(630)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。さまざまな実施形態において、ビデオ・エンコーダ(603)は、残差デコーダ(628)をも含む。残差デコーダ(628)は、逆変換を実行して、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラ・エンコーダ(622)およびインター・エンコーダ(630)によって好適に使用されることができる。たとえば、インター・エンコーダ(630)は、デコードされた残差データおよびインター予測情報に基づいて、デコードされたブロックを生成することができ、イントラ・エンコーダ(622)は、デコードされた残差データおよびイントラ予測情報に基づいて、デコードされたブロックを生成することができる。デコードされたブロックは、デコードされたピクチャーを生成するために好適に処理され、デコードされたピクチャーは、メモリ回路(図示せず)内でバッファリングされ、いくつかの例では参照ピクチャーとして使用されることができる。
【0084】
エントロピー・エンコーダ(625)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピー・エンコーダ(625)は、HEVC標準のような好適な標準に従ってさまざまな情報を含むように構成される。一例では、エントロピー・エンコーダ(625)は、全般制御データ、選択された予測情報(たとえば、イントラ予測情報またはインター予測情報)、残差情報、および他の好適な情報をビットストリーム内に含めるように構成される。開示される主題によれば、インターモードまたは双予測モードのいずれかのマージ・サブモードにおいてブロックを符号化する場合、残差情報は存在しないことを注意しておく。
【0085】
図7は、本開示の別の実施形態によるビデオ・デコーダ(710)の図を示す。ビデオ・デコーダ(710)は、符号化されたビデオ・シーケンスの一部である符号化されたピクチャーを受領し、符号化されたピクチャーをデコードして、再構成されたピクチャーを生成するように構成される。一例では、ビデオ・デコーダ(710)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用される。
【0086】
図7の例では、ビデオ・デコーダ(710)は、エントロピー・デコーダ(771)、インター・デコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、およびイントラ・デコーダ(772)が
図7に示されるように一緒に結合されたものを含む。
【0087】
エントロピー・デコーダ(771)は、符号化されたピクチャーから、その符号化されたピクチャーが構成されるシンタックス要素を表わすある種のシンボルを再構成するように構成されることができる。そのようなシンボルは、たとえば、ブロックが符号化されるモード(たとえば、イントラモード、インターモード、双予測モード、マージ・サブモードまたは別のサブモードにおける後者の2つ)、イントラ・デコーダ(772)またはインター・デコーダ(780)によってそれぞれ予測のために使用されるある種のサンプルまたはメタデータを同定することができる予測情報(たとえば、イントラ予測情報またはインター予測情報など)、たとえば量子化された変換係数の形の残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードである場合、インター予測情報がインター・デコーダ(780)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(772)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0088】
インター・デコーダ(780)は、インター予測情報を受領し、該インター予測情報に基づいてインター予測結果を生成するように構成される。
【0089】
イントラ・デコーダ(772)は、イントラ予測情報を受領し、該イントラ予測情報に基づいて予測結果を生成するように構成される。
【0090】
残差デコーダ(773)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)はまた、ある種の制御情報(量子化器パラメータ(QP)を含む)をも必要とすることがあり、その情報は、エントロピー・デコーダ(771)によって提供されてもよい(これは、低ボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0091】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)によって出力される残差と、予測結果(場合に応じてイントラまたはインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成され、該再構成されたブロックは再構成されたピクチャーの一部であってもよく、該再構成されたピクチャーは再構成されたビデオの一部であってもよい。視覚的品質を改善するためにブロッキング解除動作などの他の好適な動作が実行されることができることを注意しておく。
【0092】
なお、ビデオ・エンコーダ(303)、(503)、(603)、およびビデオ・デコーダ(310)、(410)、(710)は、任意の好適な技術を用いて実装できる。ある実施形態では、ビデオ・エンコーダ(303)、(503)、(603)およびビデオ・デコーダ(310)、(410)、(710)は、一つまたは複数の集積回路を使用して実装できる。別の実施形態では、ビデオ・エンコーダ(303)、(503)、(503)、およびビデオ・デコーダ(310)、(410)、(710)は、ソフトウェア命令を実行する一つまたは複数のプロセッサを使用して実装できる。
【0093】
本開示の諸側面は、予測オフセットを有するアフィン動き補償を単純化する技術を提供する。
【0094】
一般に、ブロックについての動きベクトルは、動きベクトル予測子に対する差分を信号伝達するよう明示的な仕方で(たとえば、高度動きベクトル予測(advanced motion vector prediction)またはAMVPモード);またはある以前に符号化もしくは生成された動きベクトルから完全に示されるよう暗黙的な仕方で、符号化されることができる。後者は、マージモード(merge mode)と呼ばれ、現在ブロックが、その動き情報を使用することによって、以前に符号化されたブロックにマージされることを意味する。
【0095】
マージモードおよびAMVPモードはどちらも、デコード中に候補リストを構築する。
【0096】
図8は、いくつかの例における空間的および時間的候補の例を示す。
【0097】
インター予測におけるマージモードのために、候補リスト内のマージ候補は、主に、現在ブロックの空間的または時間的近傍ブロックのいずれかからの動き情報をチェックすることによって形成される。
図8の例では、候補ブロックA1、B1、B0、A0、およびB2が順次チェックされる。候補ブロックのいずれかが有効な候補である、たとえば、動きベクトルで符号化される場合、有効な候補ブロックの動き情報がマージ候補リストに追加されることができる。重複した候補が再度リストに入れられないことを確実にするように、何らかの剪定動作が実行される。候補ブロックA1、B1、B0、A0およびB2は、現在ブロックのコーナーに隣接しており、コーナー候補と呼ばれる。
【0098】
空間的候補の後、時間的候補もチェックされてマージ候補リストに入れられる。いくつかの例では、指定された参照ピクチャーにおける、現在ブロックの共位置のブロックが見出される。共位置のブロックのC0位置(現在ブロックの右下コーナー)の動き情報は、時間的マージ候補として使用される。この位置のブロックがインターモードで符号化されていないか、または利用可能でない場合は、C1位置(共位置のブロックの中心の外側の右下コーナー)が代わりに使用される。本開示は、マージモードをさらに改善するための技術を提供する。
【0099】
HEVCにおける高度動きベクトル予測(AMVP)モードは、現在ブロックの動き情報を予測するために空間的および時間的近傍ブロックの動き情報を使用しつつ、予測残差がさらに符号化されることをいう。空間的および時間的近傍候補の例が、
図8にも示されている。
【0100】
いくつかの実施形態では、AMVPモードでは、2候補の動きベクトル予測子リストが形成される。たとえば、リストは、第1の候補予測子および第2の候補予測子を含む。第1の候補予測子は、空間的なA0、A1位置の順に、左エッジからの最初の利用可能な動きベクトルである。第2の候補予測子は、空間的なB0、B1、B2位置の順に、上エッジからの最初の利用可能な動きベクトルである。左エッジまたは上エッジについてのチェックされた位置から有効な動きベクトルが見つからない場合、リストに候補が入れられない。2つの利用可能な候補が同じであれば、1つだけがリストに保持される。リストが(2つの異なる候補があって)満杯でない場合、C0位置からの時間的な共位置の動きベクトルが(スケーリング後に)別の候補として使用される。C0位置の動き情報が利用可能でない場合は、代わりに位置C1が使用される。
【0101】
いくつかの例では、まだ十分な動きベクトル予測子候補がない場合、リストを埋めるためにゼロ動きベクトルが使用される。
【0102】
いくつかの実施形態では、既存のマージ候補に加えて、予測オフセットが信号伝達されることができる。たとえば、最終動きベクトル表現(ultimate motion vector expression、UMVE)と呼ばれる技術は、既存のマージ候補に加えてオフセット(大きさと方向の両方)が信号伝達される特殊なマージモードを使用する。この技法では、予測方向IDX、ベース候補IDX、距離IDX、探索方向IDXなどの若干のシンタックス要素が、そのようなオフセットを記述するために信号伝達される。たとえば、予測方向IDXは、予測方向のうちどの方向(時間的予測方向、たとえばL0参照方向、L1参照方向、またはL0およびL1参照方向)がUMVEモードのために使用されるかを示すために使用される。ベース候補IDXは、既存のマージ候補のうちのどれが、オフセットを適用するための開始点(ベース候補)として使用されるかを示すために使用される。距離IDXは、開始点からオフセットがどのくらい大きいかを示すために使用される(両方ではなく、xまたはy方向に沿って)。オフセットの大きさは、固定数の選択から選ばれる。探索方向IDXは、オフセットを適用する方向(xまたはy、+または-方向)を示すために使用される。
【0103】
一例では、開始点MVがMV_Sであり、オフセットはMV_offsetであるとする。すると、最終的なMV予測子はMV_final=MV_S+MV_offsetとなる。
【0104】
図9は、本開示のある実施形態によるUMVEについての例を示す。一例では、開始点MVは(911)によって示され(たとえば、予測方向IDXおよびベース候補IDXによる)、オフセットは(912)によって示され(たとえば、距離IDXおよび探索方向IDXによる)、最終MV予測子は、
図9において(913)によって示される。別の例では、開始点MVは(921)によって示され(たとえば、予測方向IDXおよびベース候補IDXによる)、オフセットは(922)によって示され(たとえば、距離IDXおよび探索方向IDXによる)、最終MV予測子は、
図9において923によって示される。
【0105】
図10は、本開示のある実施形態によるUMVEについての例を示す。たとえば、開始点MVは(1011)によって示される(たとえば、予測方向IDXおよびベース候補IDXによる)。
図10の例では、+Y、-Y、+X、-Xのような4つの探索方向が使用され、該4つの探索方向は0、1、2、3によってインデックス付けできる。距離は、0(開始点MVまで0距離)、1(開始点MVまで1s)、2(開始点MVまで2s)、3(開始点まで3s)などによってインデックス付けできる。よって、探索方向IDXが3で、距離IDXが2である場合、最終MV予測子は1015として示される。
【0106】
別の例では、探索方向および距離が、インデックス付けのために組み合わされることができる。たとえば、開始点MVは(1021)によって示される(たとえば、予測方向IDXおよびベース候補IDXによる)。探索方向および距離は組み合わされて、
図10に示されるように0~12でインデックス付けされる。
【0107】
本開示のある側面によれば、符号化ブロックについての6パラメータ(または簡略化された4パラメータ)アフィン・モデルを記述することによって、アフィン動き補償は、現在ブロック内のサンプルについての動き情報を効率的に予測することができる。より具体的には、アフィン符号化または記述された符号化ブロックにおいては、諸サンプルの異なる部分は異なる動きベクトルを有することができる。アフィン符号化または記述されたブロックにおいて動きベクトルを有する基本単位は、サブブロックと呼ばれる。サブブロックのサイズは、1サンプルのみであってもよく、現在ブロックのサイズと同じ大きさであってもよい。
【0108】
アフィン・モードが決定されるとき、現在ブロック内の各サンプルについて、その動きベクトル(目標とされる参照ピクチャーに対する)は、そのようなモデル(たとえば、6パラメータ・アフィン動きモデルまたは4パラメータ・アフィン動きモデル)を使用して導出できる。実装の複雑さを低減するために、アフィン動き補償は、サンプル・ベースではなく、サブブロック・ベースで実行される。つまり、各サブブロックがその動きベクトルを導き、各サブブロック内のサンプルについては、動きベクトルは同じである。各サブブロックの特定の位置、たとえばサブブロックの左上または中心点が、代表的な位置であると想定される。一例では、そのようなサブブロック・サイズは、4×4のサンプルを含む。
【0109】
一般に、アフィン動きモデルは、ブロックの動き情報を記述するための6つのパラメータを有する。アフィン変換の後、長方形ブロックは平行四辺形になる。一例では、アフィン符号化されたブロックの6つのパラメータは、ブロックの3つの異なる位置における3つの動きベクトルによって表わすことができる。
【0110】
図11は、アフィン動きモデルを有するブロック(1100)の例を示す。ブロック(1100)は、ブロック(1100)のために使用されるアフィン動きモデルの動き情報を記述するために、3つのコーナー位置A、B、Cにおける動きベクトル
【数1】
を使用する。これらの位置A、B、Cは、制御点と呼ばれる。
【0111】
単純化された例では、アフィン動きモデルは、アフィン変換後にブロックの形状が変化しないという想定に基づいて、ブロックの動き情報を記述するために4つのパラメータを使用する。よって、長方形ブロックは、変換後も、長方形で同じアスペクト比(たとえば、高さ/幅)のままであろう。そのようなブロックのアフィン動きモデルは、コーナー位置AおよびBのような2つの異なる位置における2つの動きベクトルによって表わすことができる。
【0112】
図12は、6パラメータ・アフィン・モード(6パラメータ・アフィン・モデルを使用)および4パラメータ・アフィン・モード(4パラメータ・アフィン・モデルを使用)についてのアフィン変換の例を示す。
【0113】
一例では、オブジェクトがズームおよび並進動きのみを有するか、またはオブジェクトが回転および並進モデルのみを有するように想定がなされる場合、アフィン動きモデルは、並進部分を示す2つのパラメータおよびズームのためのスケーリング因子もしくは回転のための角度因子のいずれかを示す1つのパラメータを有する3パラメータのアフィン動きモデルにさらに単純化できる。
【0114】
本開示のある側面によれば、アフィン動き補償が使用される場合、2つの信号伝達技術が使用できる。2つの信号伝達技術は、マージモードに基づく信号伝達技術および残差(AMVP)モードに基づく信号伝達技術と呼ばれる。
【0115】
マージモードに基づく信号伝達技術については、現在ブロックのアフィン情報は、以前にアフィン符号化されたブロックから予測される。ある方法では、現在ブロックは参照ブロックと同じアフィン・オブジェクト内にあると想定され、現在ブロックの制御点におけるMVは参照ブロックのモデルから導出できる。現在ブロックの他の位置のMVは、参照ブロックにおけるある制御点から別の制御点への修正と同じように線形に修正される。この方法は、モデルに基づくアフィン予測と呼ばれる。別の方法では、近傍ブロックの動きベクトルが、現在ブロックの制御点における動きベクトルとして直接使用される。次いで、制御点からの情報を用いて、ブロックの残りの部分における動きベクトルが生成される。この方法は、制御点に基づくアフィン予測と呼ばれる。いずれの方法においても、現在ブロックにおけるMVの残差成分は信号伝達されない。言い換えれば、MVの残差成分はゼロと仮定される。
【0116】
残差(AMVP)モードに基づく信号伝達技術については、アフィン・パラメータ、または現在ブロックの制御点におけるMVが予測される。予測されるべき動きベクトルが複数あるので、すべての制御点における動きベクトルについての候補リストは、リスト内の各候補がすべての制御点についての動きベクトル予測子の集合を含むように、グループ化された仕方で編成される。たとえば、候補1={制御点Aについての予測子、制御点Bについての予測子、制御点Cについての予測子};候補2={制御点Aについての予測子、制御点Bについての予測子、制御点Cについての予測子}など。異なる候補における同じ制御点についての予測子は、同じであることも、異なることもある。動きベクトル予測子フラグ(リスト0についてはmvp_l0_flag、リスト1についてはmvp_l1_flag)は、リストからどの候補が選ばれるかを示すために使用される。予測の後、パラメータの残差部分、または制御点におけるMV予測子に対する実際のMVの差が、信号伝達される。各制御点におけるMV予測子は、その近傍制御点の1つからのモデルに基づくアフィン予測からも得ることができ、アフィン・マージ・モードについての上記の記述から記述された方法が使用できる。
【0117】
いくつかの関連する方法では、ブロックについてのアフィン・パラメータは、純粋に近傍ブロックのアフィン・モデルまたは制御点のMV予測子から導出でき、または制御点におけるMV差を明示的に信号伝達することから導出できる。しかしながら、多くの場合、アフィン・パラメータの非並進部分はゼロに非常に近い。アフィン・パラメータを信号伝達するために制約されないMV差分符号化を使用することは、冗長性がある。
【0118】
本開示の諸側面は、アフィン動きパラメータをよりよく表現するための新しい技術を提供し、よって、アフィン動き補償の符号化効率を改善する。より具体的には、より効率的な仕方でアフィン・モデル・パラメータを予測するために、ブロックの並進パラメータは、通常のインター予測符号化されるブロックの場合と同じ仕方または類似の仕方で、動きベクトル予測を用いて表現される。たとえば、並進パラメータは、マージ候補から示されることができる。非並進部分については、回転パラメータおよびズーム・パラメータのような若干の典型的に使用されるパラメータが、一組の固定オフセット値を用いてあらかじめ決定される。これらの値は、デフォルト値のまわりのいくつかの微調整またはオフセットとみなされる。エンコーダは、これらの値から最良のオプションを評価し、選択したもののインデックスをデコーダに信号伝達することができる。次いで、デコーダは、1)デコードされた並進動きベクトルと、2)選択された非並進パラメータのインデックスを用いて、アフィン・モデル・パラメータを復元する。
【0119】
以下の記述では、例として4パラメータ・アフィン・モデルを用い、以下の記述で記述される方法は、他の動きモデル、または6パラメータ・アフィン・モデルなどのようにパラメータ数の異なるアフィン・モデルにも拡張できる。以下の記述の一部では、使用されるモデルは、常にアフィン・モデルではなく、可能性としては他のタイプの動きモデルであることがある。
【0120】
一例では、式(1)によって示されるように、4パラメータ・アフィン・モデルが記述される。
【数2】
ここで、ここでρはズームのためのスケーリング因子、θは回転のための角度因子、(c,f)は並進動きを記述する動きベクトルである。(x,y)は現在ピクチャーにおけるピクセル位置であり、(x',y')は参照ピクチャーにおける対応するピクセル位置である。
【0121】
a=ρcosθ、b=ρsinθとすると、式(1)は式(2)のような次の形になる。
【数3】
このように、4パラメータ・アフィン・モデルは、モデル・ベースのパラメータの集合{ρ,θ,c,f}または{a,b,c,f}によって表現できる。
【0122】
式(2)から、ピクセル位置(x,y)における動きベクトル(MV
x,MV
y)は式(3)のように記述されうる。
【数4】
ここで、a'は(a-1)と等しく、MV
xは水平動きベクトル値であり、MV
yは垂直動きベクトル値である。
【0123】
いくつかの例では、4パラメータ・アフィン・モデルは、ブロックの2つの制御点CP0およびCP1の動きベクトルによっても表現できる。同様に、6パラメータ・アフィン・モデルを表わすために3つの制御点が必要とされることがある。
【0124】
図13は、現在ブロックについての制御点CP0およびCP1を示すプロットを示す。
【0125】
2つの制御点CP0およびCP1を用いて、現在ブロックにおける位置(x,y)における動きベクトルは式(4)を用いて導出できる。
【数5】
ここで、(v
0x,v
0y)は、
図13に示されるような左上コーナー制御点CP0の動きベクトルであり、(v
1x,v
1y)は、
図13に示されるような右上コーナー制御点CP1の動きベクトルである。制御点に基づくモデルの例では、ブロックのアフィン・モデルは、{v
0x,v
0y,v
1x,v
1y}によって表現されてもよい。
【0126】
いくつかの関連する例では、ブロックについてのアフィン・パラメータは、純粋に近傍ブロックのアフィン・モデルまたは制御点のMV予測子から導出されるか、または制御点におけるMV差の明示的な信号伝達から導出されることができる。しかしながら、多くの場合、アフィン・パラメータの非並進部分はゼロに非常に近い。アフィン・パラメータを信号伝達するために制約されないMV差分符号化を使用することは冗長性がある。符号化効率を改善するために、アフィン動きパラメータをよりよく表現する新しい技術が開発された。
【0127】
本開示の諸側面は、アフィン・マージおよびアフィン動きベクトル符号化の符号化効率を改善するための技術を提供する。これらの技術は、高度なビデオ・コーデックにおいて、アフィン・インター予測の符号化性能を改善するために使用できる。ここでの動きベクトルは、HEVC標準におけるマージ候補のような、ブロック・モード(一つのブロック全体が一組の動き情報を使用する従来の動きベクトル)であってもよい。ここでの動きベクトルはまた、VVCにおけるアフィン・モードおよび高度時間的MV予測(ATMVP)のような、サブブロック・モード(ブロックの異なる部分については、異なる組の動き情報が適用され得る)であってもよい。
【0128】
提案された方法は、別々に使用されてもよく、または任意の順序で組み合わされてもよいことを注意しておく。以下の説明では、ブロックという用語は、予測ブロック、符号化ブロック、または符号化単位、すなわち、CUとして解釈されうる。2つまたは3つのコーナーでの制御点動きベクトル(control point motion vector、CPMV)に基づいて現在ブロックのアフィン・モデルを予測することが提案される。モデル・ベースのアフィン・マージ予測または構築された制御点ベースのアフィン・マージ予測を用いてCPMVが予測された後、利用可能なアフィン・マージ候補がベース予測子として選択されてもよい。
【0129】
いくつかの実施形態では、affine_merge_with_offset使用フラグのようなフラグが、提案される方法が使用されるかどうかを示すために信号伝達される。affine_merge_with_offset使用フラグが提案される方法の使用を示す場合、選択されるベース予測子候補の数(たとえば、アフィン・マージ候補の数)が、あらかじめ定義された値または信号伝達された値に基づいて決定されうる。一例では、ベース予測子候補の数は、既知であるあらかじめ定義されたデフォルト値であり、エンコーダおよびデコーダの両方によって使用される。別の例では、エンコーダ側が、ベース予測子候補の数を決定し、ベース予測子候補の数を符号化されたビデオ・ビットストリームにおいて、たとえばこれに限定されないがシーケンスパラメータセット(SPS)、ピクチャーパラメータセット(PPS)、またはスライスヘッダにおいて、信号伝達する。
【0130】
一例では、ベース予測子候補の数が1である場合、ベース予測子インデックスは、符号化されたビデオ・ビットストリームにおいて信号伝達されず、最初に利用可能なアフィン・マージ候補が、ベース予測子として使用される。ベース予測子候補の数が1より大きい場合は、どのアフィン・マージ候補がベース予測子として使用されるべきかを示すために、ベース予測子インデックスが、符号化されたビデオ・ビットストリームにおいて信号伝達される。
【0131】
ベース予測子が決定された後、ベース予測子のCPMV値が開始点として使用されてもよく、距離オフセット値がCPMV値の上に加算されて、現在ブロックのCPMV値を生成してもよい。
【0132】
オフセット値は、オフセット・パラメータによって決定されてもよい。いくつかの例では、オフセット・パラメータは、オフセット方向インデックスおよびオフセット距離インデックスの形で提供される。たとえば、オフセット方向インデックスは、オフセットがどの成分(単数または複数)でCPMVに適用されうるかを示すために信号伝達される。それは、CPMVの水平方向および/または垂直方向にあってもよい。ある実施形態では、表1において下記に示されるように、各制御点について4つのオフセット方向があってもよく、ここでxまたはy方向のみがMV差を有するが、両方向ではない。
【表1】
【0133】
別の実施形態では、xまたはyのみがMV差を有するという制限はなく、その場合、オフセット方向IDXのための表は表2に示されるようになることができ、8つのオフセット方向のうちの1つが使用されうる。
【表2】
【0134】
オフセット距離インデックスは、CPMVに適用されるオフセット距離の大きさを示すために信号伝達される。一例では、オフセット距離インデックスは、ピクセル距離の形で信号伝達される。いくつかの実施形態では、オフセット距離テーブルが使用され、各オフセット距離インデックスは、オフセット距離テーブルに従ってピクセル数で表わしたオフセット距離にマッピングされる。オフセット距離値は整数値または端数値でありうる。オフセット距離値は、ベース予測子の動きベクトル値に適用されるオフセットを示す。
【0135】
一例では、サイズ4のオフセット距離テーブルは、表3に示されるとおりである。この表におけるオフセット距離値は、ピクセル数で表わした{1/2,1,2,4}である。
【表3】
【0136】
別の例では、サイズ5のオフセット距離テーブルは、表4に示されるとおりである。この表におけるオフセット距離値は、ピクセル数で表わした{1/2,1,2,4,8}である。
【表4】
【0137】
別の例では、8つのインデックスをもつオフセット距離値のマッピングが表5に示されている。オフセット距離値は1/4ピクセルから32ピクセルの範囲である。
【表5】
【0138】
距離インデックスの数および/または各距離インデックスに対応するピクセル距離の値は、異なる範囲において異なる値を有してもよいが、それらは、前述の例によって限定されない。
【0139】
ある実施形態では、オフセット方向インデックスおよびオフセット距離インデックスは、すべての制御点について1回だけ信号伝達されてもよく、同じオフセット距離が同じオフセット方向ですべてのCPMVに適用されてもよい。
【0140】
別の実施形態では、オフセット方向インデックスとオフセット距離インデックス・パラメータが、各制御点について別々に信号伝達されてもよい。各CPMVは、対応するオフセット方向に適用される対応するオフセットの大きさを有する。
【0141】
いくつかの実施形態では、オフセット・パラメータが各制御点について信号伝達されるとき、zero_MVDフラグが、オフセット・パラメータの前に信号伝達されて、対応するCPMVについて動きベクトル差分がゼロであるかどうかを示すことができる。zero_MVDフラグが真である場合、一例では、オフセット・パラメータは、対応するCPMVについて信号伝達されない。ある実施形態では、N個の制御点が利用可能であり(Nは正の整数)、最初のN-1個の制御点が真であるzero_MVDフラグを有する場合、最後の制御点のzero_MVDは偽であると推定されうるので、最後の制御点についてのそのzero_MVDフラグは信号伝達されない。
【0142】
別の実施形態では、オフセット・パラメータの一つの集合がすべての制御点について信号伝達される場合、zero_MVDフラグは信号伝達されなくてもよい。
【0143】
本開示の諸側面は、オフセット・パラメータを信号伝達する技術を提供する。
【0144】
ある実施形態では、各制御点は、別個に信号伝達されたそのオフセット・パラメータを有する。一例では、現在ブロックのマージフラグとaffine_merge_with_offset使用フラグは両方とも真である。ベース予測子のために潜在的に使用される複数の予測子候補が存在する場合、一例では、エンコーダ側からデコーダ側へベース予測子インデックスが信号伝達される。別の例では、ベース予測子インデックスは信号伝達されず、あらかじめ定義されたベース予測子インデックスがエンコーダ側およびデコーダ側で使用されることができる。
【0145】
さらに、現在ブロックの各制御点(CP)について、CPについてZero_MVDフラグが信号伝達される。CPがブロックの最後のCPであり、他のすべてのCPが1(真)に等しいZero_MVDをもつ場合は、最後のCPについてのZero_MVDフラグは信号伝達なしで0(偽)と推定される。
【0146】
各CPについて、Zero_MVDフラグが真である場合、CPMVは、ベース予測子の対応するCPMV値と同じに設定される。しかしながら、Zero_MVDフラグが偽である場合、一例では、該CPについてのオフセット距離インデックスおよびオフセット方向インデックスが信号伝達される。オフセット距離インデックスおよびオフセット方向インデックスに基づいて、オフセット距離およびオフセット方向は、たとえば表1~表5に基づいて決定できる。次いで、CPMV値は、オフセット方向で適用されるオフセット距離を用いて、ベース予測子の対応するCPMV予測子値から生成される。
【0147】
いくつかの例では、現在ブロックについての制御点の数は、ベース予測子のアフィン・モデル・タイプによって決定される。ベース予測子が4パラメータ・アフィン・モデルを使用する場合、現在ブロックは2つの制御点を使用する。ベース予測子が6パラメータ・アフィン・モデルを使用する場合、現在ブロックは3つの制御点を使用する。
【0148】
一例では、ベース予測子は、4パラメータ・アフィン・モデルを使用し、信号伝達されるパラメータは、使用フラグ(たとえば、affine_merge_with_offset使用フラグが真に等しい)、ベース予測子インデックス、第1のCP(CP0とも呼ばれる)についてのzero_MVDフラグ(偽)、第1のCPについてのオフセット距離インデックス、第1のCPについてのオフセット方向インデックス、第2のCP(CP1とも呼ばれる)についてのzero_MVDフラグ(偽)、第2のCPについてのオフセット距離インデックス、および第2のCPについてのオフセット方向インデックスを含む。
【0149】
別の例では、ベース予測子は、6パラメータ・アフィン・モデルを使用し、信号伝達されるパラメータは、使用フラグ(たとえば、affine_merge_with_offset使用フラグが真に等しい)、ベース予測子インデックス、第1のCP(CP0とも呼ばれる)のzero_MVDフラグ(偽)、第1についてのCPのオフセット距離インデックス、第1のCPについてのオフセット方向インデックス、第2のCP(CP1とも呼ばれる)についてのzero_MVDフラグ、第2のCPについてのオフセット距離インデックス、第2のCPについてのオフセット方向インデックス、第3のCP(CP2とも呼ばれる)についてのzero_MVDフラグ(偽)、第3のCPについてのオフセット距離インデックス、第3のCPについてのオフセット方向インデックスを含む。
【0150】
他の実施形態では、オフセット・パラメータの一つの集合が、すべての制御点について信号伝達される。いくつかの例では、現在ブロックのマージフラグとaffine_merge_with_offset使用フラグは両方とも真である。ベース予測子のために潜在的に使用される複数の予測子候補が存在する場合、一例では、エンコーダ側からデコーダ側へベース予測子インデックスが信号伝達される。別の例では、ベース予測子インデックスは信号伝達されず、あらかじめ定義されたベース予測子インデックスが、エンコーダ側およびデコーダ側で使用されることができる。現在ブロックについて、オフセット距離インデックスとオフセット方向インデックスの一つの集合が信号伝達される。オフセット距離インデックスとオフセット方向インデックスに基づいて、オフセット距離とオフセット方向が決定される。次いで、現在ブロックのCPMV値は、オフセット方向で適用されるオフセット距離を用いて、ベース予測子の対応するCPMV予測子値から生成される。
【0151】
一例では、信号伝達されるパラメータは、使用フラグ(たとえば、affine_merge_with_offset使用フラグが真に等しい)、ベース予測子インデックス、現在ブロックについてのオフセット距離インデックス、および現在ブロックについてのオフセット方向インデックスを含む。
【0152】
本開示の諸側面は、CPMV値を計算するための技術を提供する。
【0153】
いくつかの実施形態では、インター予測が単予測(uni-prediction)である場合、オフセット方向(符号化されたビットストリームからデコードされたオフセット方向インデックスに基づいて決定される)でオフセット距離(符号化されたビデオ・ビットストリームからデコードされたオフセット距離インデックスに基づいて決定される)を適用する形の動きベクトル差分が、各制御点予測子について使用される。次いで、動きベクトル差分が、各制御点のMV値を決定するために使用される。
【0154】
たとえば、ベース予測子が単予測であり、ベース予測子の制御点の動きベクトル値がMVP(vpx,vpy)として記される場合。オフセット距離インデックスとオフセット方向インデックスが信号伝達される場合、現在ブロックの対応する制御点の動きベクトルが式(5)を用いて計算される。distance_offsetは、オフセット距離インデックスに基づいて決定されるオフセット距離値を示す。x_dir_factorおよびy_dir_factorは、それぞれx軸およびy軸上のオフセット方向因子(たとえば、1または-1)を示し、これらはオフセット方向インデックスに基づいて決定される。
MV(vx,vy)=MVP(vpx,vpy)+MV(x_dir_factor×distance_offset,y_dir_factor×distance_offset) (Eq.5)
【0155】
ある実施形態では、双予測CPMVについて、オフセット・ミラーリング(offset mirroring)が使用される。(オフセット距離およびオフセット方向の形の)動きベクトル差分は、L0リストからの参照ピクチャーを参照する制御点の動きベクトルと、L1リストからの参照ピクチャーを参照する制御点の動きベクトルとに、反対方向に適用されることができる。インター予測が双予測である場合、(オフセット距離およびオフセット方向の形の)動きベクトル差分が制御点予測子のL0動きベクトル(L0リストからの参照ピクチャーを参照する動きベクトル)に適用されて、現在ブロックについての制御点のL0動きベクトル(L0リストからの参照ピクチャーを参照する動きベクトル)を算出し;前記動きベクトル差分は制御点予測子のL1動きベクトル(L1リストからの参照ピクチャーを参照する動きベクトル)にも、ただし逆方向に適用されて、現在ブロックについての制御点のL1動きベクトル(L1リストからの参照ピクチャーを参照する動きベクトル)を算出する。計算結果は、各インター予測方向での各制御点のMV値となる。
【0156】
たとえば、ベース予測子が双予測であり、L0上の制御点の動きベクトル値(L0リストからの参照ピクチャーを参照する動きベクトル)がMVPL0(v0px,v0py)と記され、L1上の制御点の動きベクトル値(L1リストからの参照ピクチャーを参照する動きベクトル)がMVPL1(v1px,v1py)と記される場合。オフセット距離インデックスおよびオフセット方向インデックスが信号伝達されるとき、現在ブロックの対応する制御点の動きベクトルは式(6)および式(7)を用いて計算できる。
MVL0(v0x,v0y)=MVPL0(v0px,v0py)+MV(x_dir_factor×distance_offset,y_dir_factor×distance_offset) (Eq.6)
MVL1(v0x,v0y)=MVPL1(v0px,v0py)+MV(-x_dir_factor×distance_offset,-y_dir_factor×distance_offset) (Eq.7)
【0157】
本開示の別の側面によれば、オフセット・ミラーリングを用いたCPMV計算は、たとえば現在ピクチャーに関する参照ピクチャーの位置に基づいて、双予測CPMV計算のために条件付きで実行される。
【0158】
一例では、インター予測が双予測である場合、L0リストからの制御点の動きベクトル値(L0リストからの参照ピクチャーを参照する動きベクトル)は、上記と同じ仕方で計算され、信号伝達されたオフセット距離が、信号伝達されたオフセット方向で、制御点予測子のL0動きベクトル(L0リストからの参照ピクチャーを参照する動きベクトル)について適用される。
【0159】
L0およびL1からの参照ピクチャーが現在ピクチャーの反対側にある場合は、L1リストからの制御点についての動きベクトル(L1リストからの参照ピクチャーを参照する動きベクトル)を計算するために、制御点予測子のL1動きベクトル(L1リストからの参照ピクチャーを参照する動きベクトル)について、(信号伝達されたオフセット方向とは)逆のオフセット方向の、同じオフセット距離が適用される。
【0160】
L0およびL1からの参照ピクチャーが現在ピクチャーの同じ側にある場合は、L1リストからの制御点の動きベクトルを計算するために、制御点予測子のL1の動きベクトル(L1リストからの参照ピクチャーを参照する動きベクトル)について、(信号伝達されたオフセット方向と)同じオフセット方向の、同じオフセット距離が適用される。
【0161】
いくつかの実施態様では、L1リストからの参照ピクチャーに適用されるオフセット距離は、L0リストからの参照ピクチャーに適用されるオフセット距離と同じであり、いくつかの他の実施態様では、L1リストからの参照ピクチャーに適用されるオフセット距離は、L0リストからの参照ピクチャーの、現在ピクチャーまでの距離と、L1リストからの参照ピクチャーの、現在ピクチャーまでの距離との比に従ってスケーリングされることを注意しておく。
【0162】
ある実施形態では、L1リストから参照ピクチャーで適用される距離オフセットは、L0リストから参照ピクチャーで適用される距離オフセットと同じである。
【0163】
一例では、ベース予測子が双予測であり、L0リストからの参照ピクチャー上の(ベース予測子の)制御点の動きベクトル値がMVPL0(v0px,v0py)として記され、L1リストからの参照ピクチャー上の(ベース予測子の)その制御点の動きベクトル値がMVPL1(v1px,v1py)として記される場合。L0リストおよびL1リストからの参照ピクチャーは、現在ピクチャーの反対側にある。オフセット距離インデックスおよびオフセット方向インデックスが信号伝達される場合、現在ブロックの対応する制御点の動きベクトルは、上記に示した式(6)および式(7)を用いて計算できる。
【0164】
別の実施形態では、L1リストからの参照ピクチャー上で適用されるオフセット距離は、L0リストからの参照ピクチャーの、現在ピクチャーまでの距離とL1リストからの参照ピクチャーの、現在ピクチャーまでの距離との比に応じてスケーリングされる。
【0165】
一例では、ベース予測子が双予測であり、L0リストからの参照ピクチャー上の(ベース予測子の)制御点の動きベクトル値がMVPL0(v0px,v0py)として記され、L1リストからの参照ピクチャー上の(ベース予測子の)その制御点の動きベクトル値がMVPL1(v1px,v1py)として記される場合。オフセット距離インデックスおよびオフセット方向インデックスが信号伝達される場合、現在ブロックの対応する制御点の動きベクトルは、式(8)および式(9)を用いて計算できる。
MVL0(v0x,v0y)=MVPL0(v0px,v0py)+MV(x_dir_factor×distance_offset,y_dir_factor×distance_offset) (Eq.8)
MVL1(v0x,v0y)=MVPL1(v0px,v0py)+MV(x_dir_factor×distance_offset×scaling_factor,y_dir_factor×distance_offset×scaling_factor) (Eq.9)
【0166】
scaling_factorは、現在ピクチャーのPOC番号(current_POCと記される)、L0リスト上の参照ピクチャーのPOC番号(POC_L0と記される)、およびL1リスト上の参照ピクチャーのPOC番号(POC_L1と記される)に基づいて、式(10)に従って計算される。
scaling_factor=(POC_L1-current_POC)/(POC_L0-current_POC) (Eq.10)
【0167】
図14は、本開示のある実施形態によるプロセス(1400)を概観するフローチャートを示す。プロセス(1400)は、イントラモードで符号化されたブロックの再構成において、再構成中のブロックのための予測ブロックを生成するために使用されることができる。さまざまな実施形態において、プロセス(1400)は、端末装置(210)、(220)、(230)および(240)の処理回路、ビデオ・エンコーダ(303)の機能を実行する処理回路、ビデオ・デコーダ(310)の機能を実行する処理回路、ビデオ・デコーダ(410)の機能を実行する処理回路、ビデオ・エンコーダ(503)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1400)は、ソフトウェア命令において実装され、よって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1400)を実行する。プロセスは(S1401)で始まり、(S1410)に進む。
【0168】
(S1410)において、現在ピクチャー内の現在ブロックの予測情報が、符号化されたビデオ・ビットストリームからデコードされる。予測情報は、オフセットを有するアフィン・マージ・モードを示す。
【0169】
(S1420)において、オフセットを有するアフィン・マージ・モードに応答して、オフセット・パラメータの集合が、符号化されたビデオ・ビットストリームからデコードされる。オフセット・パラメータの集合に基づいて、動きベクトル差分が決定される。いくつかの例では、オフセット方向にオフセット距離を適用する形で、異なる動きベクトルが使用される。
【0170】
(S1430)において、動きベクトル差分は、現在ブロックのベース予測子からの複数の制御点の第1動きベクトルに適用され、現在ブロックの対応する複数の制御点における第2動きベクトルを計算する。
【0171】
(S1440)において、現在ブロックの対応する複数の制御点における第2動きベクトルに基づいて、アフィン・モデルのパラメータが決定される。
【0172】
(S1450)において、アフィン・モデルに基づいて現在ブロックのサンプルが再構成される。たとえば、現在ブロックのあるサンプルについて、そのサンプルにおける動きベクトルが、アフィン・モデルに従って計算される。よって、一例では、そのサンプルは、動きベクトルによってポイントされる参照ピクチャー内の参照サンプルに基づいて構成される。その後、プロセスは(S1499)に進み、終了する。
【0173】
上述の技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装されることができ、一つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。たとえば、
図15は、開示された主題のある種の実施形態を実装するのに好適なコンピュータ・システム(1500)を示す。
【0174】
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、または同様の機構の対象とされて、一つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、またはインタープリット、マイクロコード実行などを通じて実行可能な命令を含むコードを作成することができる。
【0175】
命令は、たとえば、パーソナルコンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置等を含むさまざまなタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0176】
コンピュータ・システム(1500)について
図15に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータ・システム(1500)の例示的実施形態において示されているコンポーネントの任意の1つまたは組み合わせに関する何らかの依存性または要件を有するものとして解釈されるべきではない。
【0177】
コンピュータ・システム(1500)は、ある種のヒューマン・インターフェース入力装置を含むことができる。そのようなヒューマン・インターフェース入力装置は、たとえば、触覚入力(たとえば、キーストローク、スワイプ、データグローブの動き)、音声入力(たとえば、声、拍手)、視覚入力(たとえば、ジェスチャー)、嗅覚入力(図示せず)を通じた一または複数の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース装置は、音声(たとえば、発話、音楽、周囲の音)、画像(たとえば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(たとえば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
【0178】
入力ヒューマン・インターフェース装置は、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチスクリーン(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイクロフォン(1506)、スキャナ(1507)、カメラ(1508)の一つまたは複数を含んでいてもよい。
【0179】
コンピュータ・システム(1500)はまた、ある種のヒューマン・インターフェース出力装置を含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば、触覚出力、音、光、および臭い/味を通じて、一または複数の人間ユーザーの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえば、タッチスクリーン(1510)、データグローブ(図示せず)、またはジョイスティック(1505)による触覚フィードバック;ただし、入力装置のはたらきをしない触覚フィードバック装置もありうる)、音声出力装置(たとえば、スピーカー(1509)、ヘッドフォン(図示せず))、視覚出力装置(たとえば、陰極線管(CRT)画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(1510);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力または立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイおよび煙タンク(図示せず))、およびプリンタ(図示せず)を含んでいてもよい。
【0180】
コンピュータ・システム(1500)はまた、人間がアクセス可能な記憶装置および関連する媒体、たとえば、CD/DVDまたは類似の媒体(1521)とともにCD/DVD ROM/RW(1520)を含む光学式媒体、サムドライブ(1522)、取り外し可能なハードドライブまたはソリッドステートドライブ(1523)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティ・ドングルのような特化したROM/ASIC/PLDベースの装置(図示せず)などを含むことができる。
【0181】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0182】
コンピュータ・システム(1500)はまた、一つまたは複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、たとえば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載および工業用、リアルタイム、遅延耐性などでありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車載および工業用などを含む。ある種のネットワークは、普通、ある種の汎用データ・ポートまたは周辺バス(1549)(たとえば、コンピュータ・システム(1500)のUSBポートなど)に取り付けられる外部ネットワーク・インターフェース・アダプターを必要とする。他は、普通、後述するようなシステム・バスへの取り付けによって、コンピュータ・システム(1500)のコアに統合される(たとえば、PCコンピュータ・システムへのイーサネット・インターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム(1500)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(たとえば、放送テレビ)、一方向性送信専用(たとえば、ある種のCANbus装置へのCANbus)、または、たとえば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータ・システムへの双方向性であってもよい。上述のようなそれらのネットワークおよびネットワークインターフェースのそれぞれで、ある種のプロトコルおよびプロトコルスタックが使用できる。
【0183】
前述のヒューマン・インターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータ・システム(1500)のコア(1540)に取り付けることができる。
【0184】
コア(1540)は、一つまたは複数の中央処理装置(CPU)(1541)、グラフィックス処理装置(GPU)(1542)、フィールドプログラマブルゲートアレイ(FPGA)(1543)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(1544)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(1545)、ランダムアクセスメモリ(RAM)(1546)、内部のユーザー・アクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)などの内蔵大容量記憶装置(1547)とともに、システムバス(1548)を通じて接続されうる。いくつかのコンピュータ・システムでは、追加のCPU、GPUなどによる拡張を可能にするために、システム・バス(1548)は、一つまたは複数の物理プラグの形でアクセス可能であってもよい。周辺装置は、コアのシステムバス(1548)に直接取り付けられることも、周辺バス(1549)を通じて取り付けられることもできる。周辺バスのためのアーキテクチャーは、PCI、USBなどを含む。
【0185】
CPU(1541)、GPU(1542)、FPGA(1543)、およびアクセラレータ(1544)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(1545)またはRAM(1546)に記憶できる。一時的データも、RAM(1546)に記憶されることができ、一方、持続的データは、たとえば、内部大容量記憶装置(1547)に記憶されることができる。一つまたは複数のCPU(1541)、GPU(1542)、大容量記憶装置(1547)、ROM(1545)、RAM(1546)などと密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶および取り出しを可能にすることができる。
【0186】
コンピュータ読み取り可能な媒体は、さまざまなコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、または、コンピュータ・ソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0187】
限定ではなく一例として、アーキテクチャー(1500)、具体的にはコア(1540)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が一つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザー・アクセス可能な大容量記憶ならびにコア内部の大容量記憶装置(1547)またはROM(1545)のような非一時的な性質のコア(1540)のある種の記憶に関連する媒体であることができる。本開示のさまざまな実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(1540)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、一つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(1546)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定の特定部分を、コア(1540)および具体的にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。追加的または代替的に、コンピュータ・システムは、回路(たとえば、アクセラレータ(1544))内に配線された、または他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(たとえば集積回路(IC))、実行のための論理を具現する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の好適な組み合わせを包含する。
【0188】
付録A:頭字語
JEM:joint exploration model(合同探査モデル)
VVC:versatile video coding(多用途ビデオ符号化)
BMS:benchmark set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(高効率ビデオ符号化)
SEI:Supplementary Enhancement Information(補足向上情報)
VUI:Video Usability Information(ビデオユーザービリティ情報)
GOP:Group of Pictures(ピクチャーグループ)
TU:Transform Unit(変換単位)
PU:Prediction Unit(予測単位)
CTU:Coding Tree Units(符号化ツリー単位)
CTB:Coding Tree Block(符号化ツリーブロック)
PB:Prediction Block(予測ブロック)
HRD:Hypothetical Reference Decoder(仮設参照デコーダ)
SNR:Signal Noise Ratio(信号雑音比)
CPU:Central Processing Unit(中央処理装置)
GPU:Graphics Processing Unit(グラフィックス処理ユニット)
CRT:Cathode Ray Tube(陰極線管)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
CD:Compact Disc(コンパクトディスク)
DVD:Digital Video Disc(デジタルビデオディスク)
ROM:Read-Only Memory(読み出し専用メモリ)
RAM:Random Access Memory(ランダムアクセスメモリ)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
LAN:Local Area Network(ローカルエリアネットワーク)
GSM:Global System for Mobile communications(グローバル移動通信システム)
LTE:Long-Term Evolution(ロングタームエボリューション)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネント相互接続)
FPGA:Field Programmable Gate Area(フィールド・プログラマブル・ゲートエリア)
SSD:solid-state drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(符号化単位)
【0189】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、およびさまざまな代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが理解されるであろう。