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

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

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

特表2024-538898動きベクトル差を制限するための方法およびデバイス
<>
  • 特表-動きベクトル差を制限するための方法およびデバイス 図1A
  • 特表-動きベクトル差を制限するための方法およびデバイス 図1B
  • 特表-動きベクトル差を制限するための方法およびデバイス 図2
  • 特表-動きベクトル差を制限するための方法およびデバイス 図3
  • 特表-動きベクトル差を制限するための方法およびデバイス 図4
  • 特表-動きベクトル差を制限するための方法およびデバイス 図5
  • 特表-動きベクトル差を制限するための方法およびデバイス 図6
  • 特表-動きベクトル差を制限するための方法およびデバイス 図7
  • 特表-動きベクトル差を制限するための方法およびデバイス 図8
  • 特表-動きベクトル差を制限するための方法およびデバイス 図9
  • 特表-動きベクトル差を制限するための方法およびデバイス 図10
  • 特表-動きベクトル差を制限するための方法およびデバイス 図11
  • 特表-動きベクトル差を制限するための方法およびデバイス 図12
  • 特表-動きベクトル差を制限するための方法およびデバイス 図13
  • 特表-動きベクトル差を制限するための方法およびデバイス 図14
  • 特表-動きベクトル差を制限するための方法およびデバイス 図15
  • 特表-動きベクトル差を制限するための方法およびデバイス 図16
  • 特表-動きベクトル差を制限するための方法およびデバイス 図17
  • 特表-動きベクトル差を制限するための方法およびデバイス 図18
  • 特表-動きベクトル差を制限するための方法およびデバイス 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-28
(54)【発明の名称】動きベクトル差を制限するための方法およびデバイス
(51)【国際特許分類】
   H04N 19/513 20140101AFI20241018BHJP
   H04N 19/463 20140101ALI20241018BHJP
【FI】
H04N19/513
H04N19/463
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023548342
(86)(22)【出願日】2022-10-07
(85)【翻訳文提出日】2023-08-09
(86)【国際出願番号】 US2022045994
(87)【国際公開番号】W WO2023069257
(87)【国際公開日】2023-04-27
(31)【優先権主張番号】63/257,856
(32)【優先日】2021-10-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/289,118
(32)【優先日】2021-12-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/960,206
(32)【優先日】2022-10-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リャン・ジャオ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA19
5C159MA21
5C159MC11
5C159ME01
5C159NN11
5C159NN21
5C159RC12
5C159RC38
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示は、一般に、ビデオコーディングに関し、特に、動きベクトル差(MVD)を制限するためのシグナリング方式を提供するための方法およびシステムに関する。例示的な方法は、コーディングされたビデオビットストリームを受信するステップと、コーディングされたビデオビットストリームから、現在のビデオブロックの動きベクトル差(MVD)を取得するステップと、MVDがただ1つの予測方向についてのみシグナリングされるかどうかを判定するステップと、MVDがただ1つの予測方向についてのみシグナリングされるとの判定に応答して、MVDを所定の方向に制限するステップと、MVDに基づいて、現在のビデオブロックをデコーディングするステップと、を含む方法。
【特許請求の範囲】
【請求項1】
ビデオビットストリームの現在のビデオブロックをデコーディングするための方法であって、
命令を格納するメモリと、前記メモリと通信するプロセッサと、を含むデバイスによって、コーディングされたビデオビットストリームを受信するステップと、
前記コーディングされたビデオビットストリームから前記デバイスによって、現在のビデオブロックに対する動きベクトル差(MVD)を取得するステップであって、前記現在のビデオブロックが、複合参照モードにおけるインターコーディング済ブロックである、ステップと、
前記デバイスによって、前記MVDがただ1つの予測方向についてのみシグナリングされるかどうかを判定するステップと、
前記MVDがただ1つの予測方向についてのみシグナリングされるとの判定に応答して、前記デバイスによって、前記MVDを所定の方向に制限するステップと、
前記MVDに基づいて前記デバイスによって、前記現在のビデオブロックをデコーディングするステップと、を含む、方法。
【請求項2】
前記MVDは、前記複合参照モードにおいて、ただ1つの参照フレームについての前記コーディングされたビデオビットストリームでシグナリングされるか、または
前記MVDは、前記複合参照モードにおいて、2つの参照フレームについて共同でシグナリングされる、
請求項1に記載の方法。
【請求項3】
前記現在のビデオブロックは、NEW_NEARMVモードまたはNEAR_NEWMVモードのうちの少なくとも1つを含む前記複合参照モードにある、
請求項1に記載の方法。
【請求項4】
前記現在のビデオブロックがNEW_NEARMVモードまたはNEAR_NEWMVモードにあることに応答して、前記所定の方向は、水平方向または垂直方向のうちの少なくとも1つを含む、
請求項1に記載の方法。
【請求項5】
前記コーディングされたビデオビットストリームから前記デバイスによって、前記水平方向および前記垂直方向が非ゼロMVDを有するかどうかを示すフラグを取得するステップ
をさらに含む、請求項4に記載の方法。
【請求項6】
前記フラグの値は、
前記水平方向および前記垂直方向のいずれも非ゼロMVDを有さないことを示す第1のフラグ値か、
前記水平方向および前記垂直方向の一方のみが非ゼロMVDを有することを示す第2のフラグ値か、または
前記水平方向および前記垂直方向の他方のみが非ゼロMVDを有することを示す第3のフラグ値、のうちの1つのみを含む、
請求項5に記載の方法。
【請求項7】
前記現在のビデオブロックが前記NEW_NEARMVモードにあることに応答して、
前記フラグが前記第2のフラグ値前記MVDと等しいことに応答して、前記MVDは、第1の参照フレームリスト内の参照フレームの前記垂直方向に対応し、
前記フラグが前記第3のフラグ値前記MVDと等しいことに応答して、前記MVDは、前記第1の参照フレームリスト内の前記参照フレームの前記水平方向に対応し、
前記現在のビデオブロックが前記NEAR_NEWMVモードにあることに応答して、
前記フラグが前記第2のフラグ値前記MVDと等しいことに応答して、前記MVDは、第2の参照フレームリスト内の参照フレームの前記水平方向に対応し、
前記フラグが前記第3のフラグ値前記MVDと等しいことに応答して、前記MVDは、前記第2の参照フレームリスト内の前記参照フレームの前記垂直方向に対応する、
請求項6に記載の方法。
【請求項8】
前記フラグの値は、
前記水平方向および前記垂直方向の一方のみが非ゼロMVDを有することを示す第1のフラグ値か、または
前記水平方向および前記垂直方向の他方のみが非ゼロMVDを有することを示す第2のフラグ値のうちの一方のみを含む、
請求項5に記載の方法。
【請求項9】
前記現在のビデオブロックが前記NEW_NEARMVモードにあることに応答して、
前記フラグが前記第1のフラグ値前記MVDと等しいことに応答して、前記MVDは、第1の参照フレームリスト内の参照フレームの前記垂直方向に対応し、
前記フラグが前記第2のフラグ値前記MVDと等しいことに応答して、前記MVDは、前記第1の参照フレームリスト内の前記参照フレームの前記水平方向に対応し、
前記現在のビデオブロックが前記NEAR_NEWMVモードにあることに応答して、
前記フラグが前記第1のフラグ値前記MVDと等しいことに応答して、前記MVDは、第2の参照フレームリスト内の参照フレームの前記水平方向に対応し、
前記フラグが前記第2のフラグ値前記MVDと等しいことに応答して、前記MVDは、前記第2の参照フレームリスト内の前記参照フレームの前記垂直方向に対応する、
請求項8に記載の方法。
【請求項10】
前記フラグは、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、アダプテーションパラメータセット(APS)、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、タイルヘッダ、またはコーディングツリーユニット(CTU)ヘッダのうちの少なくとも1つを含む高レベルシンタックスでシグナリングされる、
請求項5に記載の方法。
【請求項11】
前記現在のビデオブロックがNEW_NEARMVモードまたはNEAR_NEWMVモードにあることに応答して、前記所定の方向は1つの方向のみを含む、
請求項1に記載の方法。
【請求項12】
前記現在のビデオブロックのモードに基づいて前記デバイスによって、水平方向および垂直方向が非ゼロMVDを有するかどうかを判定するステップ
をさらに含む、請求項1に記載の方法。
【請求項13】
前記現在のビデオブロックがNEW_NEARMVモードにあることに応答して、前記MVDは第1の参照フレームリスト内の参照フレームの前記水平方向に対応し、
前記現在のビデオブロックがNEAR_NEWMVモードにあることに応答して、前記MVDは第2の参照フレームリスト内の参照フレームの前記垂直方向に対応する、
請求項12に記載の方法。
【請求項14】
前記現在のビデオブロックがNEW_NEARMVモードにあることに応答して、前記MVDは第1の参照フレームリスト内の参照フレームの前記垂直方向に対応し、
前記現在のビデオブロックがNEAR_NEWMVモードにあることに応答して、前記MVDは第2の参照フレームリスト内の参照フレームの前記水平方向に対応する、
請求項12に記載の方法。
【請求項15】
ビデオビットストリームの現在のビデオブロックをデコーディングするための装置であって、前記装置は、
命令を格納するメモリと、
前記メモリと通信するプロセッサであって、前記プロセッサが前記命令を実行すると、前記プロセッサは、請求項1から14のいずれか一項に記載の方法を前記装置に実施させるように構成される、プロセッサと、を含む、装置。
【請求項16】
命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令がプロセッサによって実行されると、前記命令は、請求項1から14のいずれか一項に記載の方法を前記プロセッサに実施させるように構成される、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年10月20日に出願された米国仮特許出願第63/257,856号に基づいており、その優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。本出願はまた、2021年12月13日に出願された米国仮特許出願第63/289,118号に基づいており、その優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。本出願はまた、2022年10月5日に出願された米国非仮特許出願第17/960,206号に基づいており、その優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオコーディングに関し、特に、動きベクトル差(MVD)を制限するためのシグナリング方式を提供するための方法およびシステムに関する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を大まかに提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、またそれ以外の本出願の出願時に従来技術として認められない可能性のある説明の態様と共に、本開示に対する従来技術としては明示的にも暗示的にも認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して実施され得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連するフルサンプリングまたはサブサンプリングされた色差サンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャまたは毎秒60フレームの固定または可変のピクチャレート(あるいはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、1920×1080の画素解像度、60フレーム/秒のフレームレート、および色チャネルあたり画素あたり8ビットで4:2:0の彩度サブサンプリングを有するビデオは、1.5Gbit/sに近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減させるのに役立ち得る。可逆圧縮と非可逆圧縮の両方、ならびにそれらの組み合わせを採用することができる。可逆圧縮とは、原信号の正確なコピーをデコーディングプロセスを介して圧縮された原信号から再構築することができる技法を指す。非可逆圧縮とは、元のビデオ情報がコーディング時に完全に保持されず、デコーディング時に完全に復元できないコーディング/デコーディングプロセスを指す。非可逆圧縮を使用する場合、再構築された信号は原信号と同一ではない可能性があるが、原信号と再構築された信号との間の歪みは、多少の情報損失はあっても、再構築された信号を意図された用途に役立てるのに十分なほど小さくなる。ビデオの場合、非可逆圧縮が多くの用途で広く採用されている。耐容できる歪みの量は、用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画やテレビ放送用途のユーザよりも高い歪みを容認し得る。特定のコーディングアルゴリズムによって達成可能な圧縮比が、様々な歪み耐性を反映するように選択または調整され得る。すなわち、一般に、歪み耐性が高いほど、高い損失および高い圧縮比をもたらすコーディングアルゴリズムが可能になる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリおよびステップからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に再構築された参照ピクチャからのサンプルまたは他のデータを参照することなく表される。一部のビデオコーデックでは、ピクチャがサンプルのブロックに空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャをイントラピクチャと呼ぶことができる。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生ピクチャは、デコーダ状態をリセットするために使用され得、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用され得る。次いで、イントラ予測後のブロックのサンプルに周波数領域への変換を施すことができ、そのように生成された変換係数をエントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技法を表す。場合によっては、変換後のDC値が小さいほど、かつAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップのサイズにおいて必要とされるビットは少なくなる。
【0008】
例えば、MPEG-2生成コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的隣接のエンコーディングおよび/またはデコーディング時に取得される、イントラコーディングまたはイントラデコーディングされているデータのブロックにデコーディング順序で先行する、周囲のサンプルデータおよび/またはメタデータに基づいて、ブロックのコーディング/デコーディングを試みる技法を含む。そのような技法は、以後「イントラ予測」技法と呼ばれる。少なくともいくつかの場合において、イントラ予測は、再構築中の現在のピクチャのみからの参照データを使用し、他の参照ピクチャからの参照データは使用しないことに留意されたい。
【0009】
イントラ予測には、多くの異なる形態があり得る。そのような技法のうちの2つ以上が所与のビデオコーディング技術において利用可能である場合、使用される技法を、イントラ予測モードと呼ぶことができる。1つまたは複数のイントラ予測モードが、特定のコーデックで提供され得る。特定の場合には、モードは、サブモードを有することができ、かつ/または様々なパラメータに関連付けられていてもよく、モード/サブモード情報およびビデオのブロックのイントラコーディングパラメータは、個々にコーディングされるか、またはまとめてモードのコードワードに含めることができる。所与のモード、サブモード、および/またはパラメータの組み合わせに、どのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、そのため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。一般に、イントラ予測では、利用可能になった隣接サンプル値を使用して予測器ブロックを形成することができる。例えば、特定の方向および/または線に沿った特定の隣接サンプルのセットの利用可能な値が、予測器ブロックにコピーされ得る。使用中の方向への参照は、ビットストリームでコーディングされ得るか、またはそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に示されているのは、(H.265で指定される35個のイントラモードのうちの33個の角度モードに対応する)H.265の33個の可能なイントラ予測器方向で指定される9つの予測器方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、101にあるサンプルを予測するために隣接サンプルがそこから使用される方向を表す。例えば、矢印(102)は、サンプル(101)が水平方向から45度の角度で右上に1つまたは複数の隣接サンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平方向から22.5度の角度でサンプル(101)の左下に1つまたは複数の隣接サンプルから予測されることを示す。
【0012】
さらに図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が示されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元とX次元の両方の4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様の番号付け方式に従う例示的な参照サンプルが、さらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264とH.265の両方で、再構築中のブロックに隣接する予測サンプルが使用される。
【0013】
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向に従って隣接サンプルから参照サンプル値をコピーすることから開始し得る。例えば、コーディングされたビデオビットストリームは、このブロック104について、矢印(102)の予測方向を示すシグナリングを含む、すなわち、サンプルは1つまたは複数の予測サンプルから右上へ、水平方向から45度の角度で予測されると仮定する。そのような場合、サンプルS41、S32、S23、およびS14が同じ参照サンプルR05から予測される。次いで、サンプルS44が参照サンプルR08から予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れない場合、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展し続けるにつれて増加してきた。H.264(2003年)では、例えば、9つの異なる方向がイントラ予測に利用可能である。これは、H.265(2013年)では33まで増加し、JEM/VVC/BMSは、本開示の時点で、最大65の方向をサポートすることができる。最も適切なイントラ予測方向を識別するのに役立つ実験研究が行われており、エントロピーコーディングの特定の技法を使用して、方向についての特定のビットペナルティを受け入れて、それらの最も適切な方向が少数のビットでエンコーディングされ得る。さらに、方向自体を、デコーディングされた隣接ブロックのイントラ予測で使用された隣接する方向から予測することができる場合もある。
【0016】
図1Bは、時間の経過と共に発展した様々なエンコーディング技術における増加する予測方向の数を例示するために、JEMによる65個のイントラ予測方向を示す概略図(180)を示す。
【0017】
コーディングされたビデオビットストリームにおけるイントラ予測方向を表すビットの予測方向へのマッピングのための方法は、ビデオコーディング技術によって異なる可能性があり、例えば、予測方向対イントラ予測モードの単純な直接マッピングから、コードワード、最確モードを含む複雑な適応方式、および同様の技法に及ぶことができる。しかしながら、すべての場合において、特定の他の方向よりもビデオコンテンツで発生する可能性が統計的に低いイントロ予測の特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるため、うまく設計されたビデオコーディング技術においては、それらのより可能性の低い方向はより可能性の高い方向よりも多くのビット数で表され得る。
【0018】
インターピクチャ予測、またはインター予測は、動き補償に基づいていてもよい。動き補償では、以前に再構築されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータが、動きベクトル(以後に、MV)によって示される方向に空間的にシフトされた後に、新たに再構築されたピクチャまたはピクチャ部分(例えば、ブロック)の予測に使用され得る。場合によっては、参照ピクチャは、現在再構築中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有していてもよく、第3の次元は、(時間次元と類似した)使用中の参照ピクチャの指示である。
【0019】
いくつかのビデオ圧縮技法では、サンプルデータの特定のエリアに適用可能な現在のMVが、他のMVから、例えば再構築中のエリアに空間的に隣接し、デコーディング順序で現在のMVに先行する、サンプルデータの他のエリアに関連する他のMVから予測され得る。そうすることにより、相関するMVの冗長性の除去に依拠することによってMVをコーディングするのに必要とされる全体のデータ量を大幅に削減することができ、それによって圧縮効率が増加する。MV予測が効果的に機能することができるのは、例えば、(自然なビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能なエリアよりも大きいエリアは、ビデオシーケンスにおいて同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接するエリアのMVから導出された同様の動きベクトルを使用して予測することができるからである。その結果として、所与のエリアの実際のMVが周囲のMVから予測されたMVと同様または同一になる。そのようなMVはさらに、エントロピーコーディング後に、MVが隣接するMVから予測されるのではなく直接コーディングされた場合に使用されることになるビット数よりも少ないビット数で表され得る。場合によっては、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合には、MV予測自体は、例えばいくつかの周囲のMVから予測器を計算するときの丸め誤差のために、非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T勧告H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が指定する多くのMV予測メカニズムのうち、以下で説明するのは、以後「空間マージ」と呼ぶ技法である。
【0021】
具体的には、図2を参照すると、現在のブロック(201)は、動き検索プロセス中にエンコーダによって、空間的にシフトされた同じサイズの前のブロックから予測可能であると検出されたサンプルを含む。直接そのMVをコーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ、202~206)と表記された5つの周囲のサンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば、(デコーディング順序で)最新の参照ピクチャから導出され得る。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測器を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示は、動きベクトル差(MVD)を制限するための方法、装置、およびコンピュータ可読記憶媒体の様々な実施形態を説明する。
【0023】
一態様によれば、本開示の一実施形態は、ビデオビットストリームの現在のビデオブロックをデコーディングするための方法を提供する。本方法は、デバイスによって、コーディングされたビデオビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサと、を含む。本方法はまた、コーディングされたビデオビットストリームからデバイスによって、現在のビデオブロックに対する動きベクトル差(MVD)を取得するステップであって、現在のビデオブロックが、複合参照モードにおけるインターコーディング済ブロックである、ステップと、デバイスによって、MVDがただ1つの予測方向についてのみシグナリングされるかどうかを判定するステップと、MVDがただ1つの予測方向についてのみシグナリングされるとの判定に応答して、デバイスによって、MVDを所定の方向に制限するステップと、MVDに基づいてデバイスによって、現在のビデオブロックをデコーディングするステップと、を含む。
【0024】
別の態様によれば、本開示の一実施形態は、ビデオビットストリームの現在のビデオブロックをデコーディングするための装置を提供する。本装置は、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。プロセッサが命令を実行すると、プロセッサは、ビデオデコーディングおよび/またはエンコーディングのための上記の方法を装置に実施させるように構成される。
【0025】
別の態様では、本開示の一実施形態は、ビデオデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されると、ビデオデコーディングおよび/またはエンコーディングのための上記の方法をコンピュータに実施させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0026】
上記および他の態様ならびにそれらの実施態様は、図面、明細書、および特許請求の範囲においてさらに詳細に説明される。
【0027】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0028】
図1A】イントラ予測方向性モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向を示す図である。
図2】一例における現在のブロックおよび動きベクトル予測のためのその周囲の空間マージ候補を示す概略図である。
図3】例示的な実施形態による、通信システム(300)の簡略化されたブロック図の概略図である。
図4】例示的な実施形態による、通信システム(400)の簡略化されたブロック図の概略図である。
図5】例示的な実施形態による、ビデオデコーダの簡略化されたブロック図の概略図である。
図6】例示的な実施形態による、ビデオエンコーダの簡略化されたブロック図の概略図である。
図7】別の例示的な実施形態による、ビデオエンコーダのブロック図である。
図8】別の例示的な実施形態による、ビデオデコーダのブロック図である。
図9】本開示の例示的な実施形態による、コーディングブロック分割の方式を示す図である。
図10】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
図11】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
図12】例示的な分割方式による、ベースブロックのコーディングブロックへの例示的な分割を示す図である。
図13】例示的な三分割方式を示す図である。
図14】例示的な四分木二分木コーディングブロック分割方式を示す図である。
図15】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための方式および変換ブロックのコーディング順序を示す図である。
図16】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式および変換ブロックのコーディング順序を示す図である。
図17】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式を示す図である。
図18】本開示の例示的な実施形態による、方法のフローチャートを示す図である。
図19】本開示の例示的な実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0029】
本明細書および特許請求の範囲全体を通して、用語は、明示的に記載される意味を超えて文脈内で示唆または暗示される微妙な意味を有する場合がある。本明細書で使用される「一実施形態では」または「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を指すものではなく、本明細書で使用される「別の実施形態では」または「他の実施形態では」という語句は、必ずしも異なる実施形態を指すものではない。同様に、本明細書で使用される「一実施態様では」または「いくつかの実施態様では」という語句は、必ずしも同じ実施態様を指すものではなく、本明細書で使用される「別の実施態様では」または「他の実施態様では」という語句は、必ずしも異なる実施態様を指すものではない。例えば、特許請求される主題は、例示的な実施形態/実施態様の全部または一部の組み合わせを含むことを意図している。
【0030】
一般に、専門用語は、文脈における使用法から少なくとも部分的に理解される場合がある。例えば、本明細書で使用される「および」、「または」、または「および/または」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存する場合がある様々な意味を含んでもよい。典型的には、A、B、またはCなどのリストを関連付けるために使用される場合の「または」は、ここでは包括的な意味で使用されるA、B、およびC、ならびにここでは排他的な意味で使用されるA、B、またはCを意味することを意図している。加えて、本明細書で使用される「1つまたは複数」または「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、単数の意味で任意の特徴、構造、もしくは特性を記述するために使用されてもよく、または複数の意味で特徴、構造、もしくは特性の組み合わせを記述するために使用されてもよい。同様に、「a」、「an」、または「the」などの用語もやはり、文脈に少なくとも部分的に依存して、単数形の使用法を伝えるか、または複数形の使用法を伝えると理解されてもよい。加えて、「に基づいて」または「によって判定される」という用語は、必ずしも排他的な要因のセットを伝えることを意図していないと理解されてもよく、代わりに、やはり文脈に少なくとも部分的に依存して、必ずしも明示的に記述されていないさらなる要因の存在を可能にする場合もある。図3は、本開示の一実施形態による、通信システム(300)の簡略化されたブロック図を示している。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実施し得る。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するための(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリームの)ビデオデータをコーディングし得る。エンコーディングされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で送信され得る。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示し得る。単方向データ送信は、メディアサービング用途などで実施されてもよい。
【0031】
別の例では、通信システム(300)は、例えば、ビデオ会議用途の間に実施され得るコーディングされたビデオデータの双方向送信を実施する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するための(例えば、その端末デバイスによって取り込まれたビデオピクチャのストリームの)ビデオデータをコーディングし得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってアクセス可能な表示デバイスでビデオピクチャを表示し得る。
【0032】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして実装されてもよいが、本開示の基礎となる原理の適用はそのように限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、および/または専用のビデオ会議機器などで実装されてもよい。ネットワーク(350)は、例えば配線(有線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)、および(340)間で、コーディングされたビデオデータを伝達する任意の数またはタイプのネットワークを表す。通信ネットワーク(350)9は、回線交換チャネル、パケット交換チャネル、および/または他のタイプのチャネルでデータを交換してもよい。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で明確に説明されない限り、本開示の動作にとって重要でない可能性がある。
【0033】
図4は、開示された主題についての用途用の一例として、ビデオストリーミング環境内のビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオ用途に等しく適用可能であってもよい。
【0034】
ビデオストリーミングシステムは、例えば、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えば、デジタルカメラを含むことができるビデオキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって記録されたサンプルを含む。エンコーディングされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較したときに高データ量を強調するために太い線として示されたビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に記載されるように、開示された主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(404)(またはエンコーディングされたビデオビットストリーム(404))は、非圧縮ビデオピクチャのストリーム(402)と比較した場合の低データ量を強調するために細線で示されており、将来の使用のためにストリーミングサーバ(405)に、または下流のビデオデバイス(図示せず)に直接記憶され得る。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコーディングされたビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入力コピー(407)をデコーディングし、圧縮されていない、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示に記載される様々な機能の一部または全部を実施するように構成され得る。いくつかのストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮標準規格に従ってエンコーディングされ得る。それらの標準規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオコーディング標準規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVC、および他のビデオコーディング標準規格の文脈で使用されてもよい。
【0035】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0036】
図5は、以下の本開示の任意の実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)を、図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0037】
受信機(531)は、ビデオデコーダ(510)によってデコーディングされるべき1つまたは複数のコーディングされたビデオシーケンスを受信し得る。同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスがデコーディングされ得、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたはビデオ画像に関連付けられ得る。コーディングされたビデオシーケンスはチャネル(501)から受信され得、チャネル(501)は、エンコーディングされたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンク、またはエンコーディングされたビデオデータを送信するストリーミングソースであり得る。受信機(531)は、エンコーディングされたビデオデータを、それぞれの処理回路(図示せず)に転送され得る、コーディングされたオーディオデータおよび/または補助データストリームなどの他のデータと共に受信し得る。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以後に、「パーサ(520)」)との間に配置されてもよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装されてもよい。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)(図示せず)から分離されて外部にあってもよい。さらに他の用途では、例えば、ネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に別の追加のバッファメモリ(515)があってもよい。受信機(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は不要な場合があり、または小さくすることができる。インターネットなどのベストエフォートパケットネットワークで使用するために、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きくなり得る。そのようなバッファメモリは、適応サイズで実装されてもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0038】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構築するためにパーサ(520)を含むことができる。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、図5に示すように、電子デバイス(530)の不可欠な部分である場合もそうでない場合もあるが、電子デバイス(530)に結合することができるディスプレイ(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、補足強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(520)は、パーサ(520)によって受信されるコーディングされたビデオシーケンスをシンタックス解析/エントロピーデコーディングし得る。コーディングされたビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または標準規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、文脈依存性ありまたはなしの算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループには、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含めることができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトルなどの情報も抽出し得る。
【0039】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコーディング/パーシング動作を実行し得る。
【0040】
シンボル(521)の再構築は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なる処理ユニットまたは機能ユニットを含むことができる。含まれるユニットおよびユニットがどのように含まれるかは、パーサ(520)によってコーディングされたビデオシーケンスからシンタックス解析されたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数の処理ユニットまたは機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために図示されていない。
【0041】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下で説明するように、概念的にいくつかの機能ユニットに細分することができる。商業的制約の下で動作する実際の実施態様では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に、互いに統合され得る。しかしながら、開示された主題の様々な機能を明確に記載する目的で、以下の開示において機能ユニットへの概念的細分化が採用される。
【0042】
第1のユニットは、スケーラ/逆変換ユニット(551)を含んでもよい。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどのタイプの逆変換を使用するかを示す情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(520)からシンボル(521)として受信し得る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0043】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構築されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに関係する場合がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、すでに再構築され、現在のピクチャバッファ(558)に記憶されている周囲のブロックの情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在のピクチャバッファ(558)は、例えば、部分的に再構築された現在のピクチャおよび/または完全に再構築された現在のピクチャをバッファリングする。アグリゲータ(555)は、いくつかの実施態様では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加することができる。
【0044】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後に、これらのサンプルを、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれ得る)。動き補償予測ユニット(553)がそこから予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X成分、Y成分(シフト)、および参照ピクチャ成分(時間)を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な、動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間を含んでもよく、また、動きベクトル予測メカニズムなどに関連付けられてもよい。
【0045】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、(コーディングされたビデオビットストリームとも呼ばれる)コーディングされたビデオシーケンスに含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に応答するだけでなく、以前に再構築およびループフィルタリングされたサンプル値に応答することもできる。以下でさらに詳細に説明するように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれてもよい。
【0046】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することもできるサンプルストリームであり得る。
【0047】
特定のコーディングされたピクチャは、完全に再構築されると、将来のインターピクチャ予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構築され、コーディングされたピクチャが参照ピクチャとして(例えば、パーサ(520)によって)識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、未使用の現在のピクチャバッファは、次のコーディングされたピクチャの再構築を開始する前に再割り当てされ得る。
【0048】
ビデオデコーダ(510)は、例えばITU-T勧告H.265などの標準規格で採用された所定のビデオ圧縮技術に従ってデコーディング動作を実施し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または標準規格のシンタックスと、ビデオ圧縮技術または標準規格に文書化されたプロファイルの両方に忠実であるという意味において、使用されているビデオ圧縮技術または標準規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または標準規格において使用可能なすべてのツールから、そのプロファイルの下で使用することができる唯一のツールとして特定のツールを選択することができる。規格に準拠するために、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルによって定義される範囲内にあってもよい。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、コーディングされたビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0049】
いくつかの例示的な実施形態では、受信機(531)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてもよい。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコーディングするために、かつ/または元のビデオデータをより正確に再構築するために使用され得る。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)の強化層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形であり得る。
【0050】
図6は、本開示の例示的な実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれ得る。電子デバイス(620)は、送信機(640)(例えば、送信回路)をさらに含み得る。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0051】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像を取り込み得るビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は、電子デバイス(620)の一部分として実装されてもよい。
【0052】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ…)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することが可能な記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個々のピクチャまたは画像として提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用されているサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者であれば、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0053】
いくつかの例示的な実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングおよび圧縮し得る。適切なコーディング速度を強制することが、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下で説明するように、他の機能ユニットに機能的に結合され、他の機能ユニットを制御し得る。簡潔にするために、結合は図示されていない。コントローラ(650)によって設定されるパラメータには、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値など)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル検索範囲などが含まれ得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0054】
いくつかの例示的な実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成されてもよい。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされるべき入力ピクチャと参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)と、を含むことができる。デコーダ(633)は、組み込まれたデコーダ633がエントロピーコーディングなしでソースコーダ630によってコーディングされたビデオストリームを処理するとしても、シンボルを再構築して、(リモート)デコーダが作成することになるのと同様の方法でサンプルデータを作成する(開示された主題で考慮されるビデオ圧縮技術では、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆であり得るため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの位置(ローカルまたはリモート)に関係なくビットイグザクトな結果をもたらすため、参照ピクチャメモリ(634)の内容も、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えばチャネル誤差が原因で同期性を維持することができない場合に結果として生じるドリフト)は、コーディング品質を向上させるために使用される。
【0055】
「ローカル」デコーダ(633)の動作は、図5と併せて上記で詳細にすでに説明されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であり得るため、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、エンコーダ内のローカルデコーダ(633)においては完全に実装されない場合がある。
【0056】
この時点で言えることは、デコーダ内にのみ存在し得るシンタックス解析/エントロピーデコーディングを除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形式で存在する必要があり得るということである。このため、開示された主題はデコーダ動作に焦点を当てる場合があり、この動作はエンコーダのデコーディング部分と同様である。よって、エンコーダ技術の説明は、包括的に説明されるデコーダ技術の逆であるので、省略され得る。特定の領域または態様においてのみ、エンコーダのより詳細な説明が以下に提供される。
【0057】
動作中、いくつかの例示的な実施態様では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする、動き補償予測コーディングを実施することができる。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャの画素ブロックとの間の色チャネルの差(または残差)をコーディングする。「残差」という用語およびその形容詞形「残差の」は、互換的に使用されてもよい。
【0058】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングし得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであってもよい。コーディングされたビデオデータが(図6には示されていない)ビデオデコーダでデコーディングされ得るとき、再構築されたビデオシーケンスは、典型的には、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実施され得るデコーディングプロセスを複製し、再構築された参照ピクチャが参照ピクチャキャッシュ(634)に記憶されるようにし得る。このようにして、ビデオエンコーダ(603)は、(送信誤差なしで)遠端(リモート)ビデオデコーダによって取得される再構築された参照ピクチャと共通の内容を有する再構築された参照ピクチャのコピーをローカルに記憶することができる。
【0059】
予測器(635)は、コーディングエンジン(632)の予測探索を実行し得る。すなわち、コーディングされる新しいピクチャの場合、予測器(635)は、新しい画素のための適切な予測参照として役立つことができる、(候補参照画素ブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、画素ブロックごとにサンプルブロックに対して動作することができる 場合によっては、予測器(635)によって取得された探索結果によって判定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0060】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
【0061】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ったシンボルの可逆圧縮により、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0062】
送信機(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスを、通信チャネル(660)を介した送信に含むためにバッファしてもよく、通信チャネル(660)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0063】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディング中、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられ得る。
【0064】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用することなくコーディングおよびデコーディングされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
【0065】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングおよびデコーディングされ得るものであり得る。
【0066】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングおよびデコーディングされ得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連メタデータを使用することができる。
【0067】
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって判定されるように、他の(すでにコーディング済)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または同じピクチャのすでにコーディング済ブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされてもよい。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされてもよい。ソースピクチャまたは中間処理されたピクチャは、他の目的で他のタイプのブロックに細分されてもよい。コーディングブロックおよび他のタイプのブロックの分割は、以下でさらに詳細に説明するように、同じ方法に従ってもよく、従わなくてもよい。
【0068】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または標準規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実施することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または標準規格によって指定されたシンタックスに準拠し得る。
【0069】
いくつかの例示的な実施形態では、送信機(640)は、エンコーディングされたビデオと共に追加のデータを送信し得る。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間/空間/SNR強化層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0070】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)として取り込まれてもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の時間または他の相関を利用する。例えば、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割され得る。現在のピクチャ内のブロックは、ビデオ内の以前にコーディングされたまだバッファリングされている参照ピクチャ内の参照ブロックと同様である場合、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0071】
いくつかの例示的な実施形態では、双予測技法がインターピクチャ予測に使用され得る。そのような双予測技法によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャをデコーディング順序で進める(ただし、表示順序では、それぞれ過去または未来にあり得る)。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって共同して予測することができる。
【0072】
さらに、マージモード技法が、インターピクチャ予測においてコーディング効率を改善するために使用されてもよい。
【0073】
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実施される。例えば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有し得る。一般に、CTUは、3つの並列のコーディングツリーブロック(CTB)、すなわち、1つの輝度CTBおよび2つの彩度CTBを含み得る。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64画素のCTUを、64×64画素の1つのCU、または32×32画素の4つのCUに分割することができる。32×32ブロックのうちの1つまたは複数の各々は、16×16画素の4つのCUにさらに分割され得る。いくつかの例示的な実施形態では、各CUは、インター予測タイプやイントラ予測タイプなどの様々な予測タイプの中からそのCUの予測タイプを判定するためにエンコーディング中に分析され得る。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割され得る。一般に、各PUは、1つの輝度予測ブロック(PB)および2つの彩度PBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実施される。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで実施され得る。輝度PBまたは彩度PBは、例えば、8×8画素、16×16画素、8×16画素、16×8画素などといった、サンプルの値(例えば、輝度値)の行列を含み得る。
【0074】
図7は、本開示の別の例示的な実施形態による、ビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコーディングするように構成される。例示的なビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0075】
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックについてのサンプル値の行列を受信する。次いでビデオエンコーダ(703)は、例えば、レート歪み最適化(RDO)を使用して、処理ブロックがそれを使用して最良にコーディングされるのは、イントラモードか、インターモードか、それとも双予測モードかを判定する。処理ブロックがイントラモードでコーディングされると判定された場合、ビデオエンコーダ(703)は、イントラ予測技法を使用して処理ブロックをコーディングされたピクチャにエンコーディングし、処理ブロックがインターモードまたは双予測モードでコーディングされると判定された場合、ビデオエンコーダ(703)は、それぞれインター予測技法または双予測技法を使用して、処理ブロックをコーディングされたピクチャにエンコーディングし得る。いくつかの例示的な実施形態では、インターピクチャ予測のサブモードとして、動きベクトルが予測器の外側のコーディングされた動きベクトル成分の恩恵を受けずに1つまたは複数の動きベクトル予測器から導出されるマージモードが使用され得る。いくつかの他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在し得る。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを判定するために、モード判定モジュールなど、図7に明示的に示されていない構成要素を含んでもよい。
【0076】
図7の例では、ビデオエンコーダ(703)は、図7の例示的な配置に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0077】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順序で前のピクチャ内および後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技法による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技法を使用してインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に説明するように、図7の残差デコーダ728として示されている)図6の例示的なエンコーダ620に組み込まれたデコーディングユニット633を使用して、エンコーディングされたビデオ情報に基づいてデコーディングされた、デコーディングされた参照ピクチャである。
【0078】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技法によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)は、イントラ予測情報および同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算することができる。
【0079】
汎用コントローラ(721)は、汎用制御データを判定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成されてもよい。一例では、汎用コントローラ(721)は、ブロックの予測モードを判定し、予測モードに基づいて制御信号をスイッチ(726)に提供する。例えば、予測モードがイントラモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのイントラモード結果を選択させ、エントロピーエンコーダ(725)を制御して、イントラ予測情報を選択させてそのイントラ予測情報をビットストリームに含めさせ、ブロックの予測モードがインターモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのインター予測結果を選択させ、エントロピーエンコーダ(725)を制御して、インター予測情報を選択させてそのインター予測情報をビットストリームに含めさせる。
【0080】
残差計算器(723)は、受信したブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックについての予測結果との間の差(残差データ)を計算するように構成されてもよい。残差エンコーダ(724)は、残差データをエンコーディングして変換係数を生成するように構成され得る。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成され得る。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な例示的な実施形態において、ビデオエンコーダ(703)は、残差デコーダ(728)も含む。残差デコーダ(728)は逆変換を実施し、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用され得る。例えば、インターエンコーダ(730)は、デコーディングされた残差データおよびインター予測情報に基づいてデコーディングされたブロックを生成することができ、イントラエンコーダ(722)は、デコーディングされた残差データおよびイントラ予測情報に基づいてデコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するために適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用され得る。
【0081】
エントロピーエンコーダ(725)は、ビットストリームをエンコーディングされたブロックを含むようにフォーマットし、エントロピーコーディングを実施するように構成され得る。エントロピーエンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報やインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成され得る。インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報は存在しなくてもよい。
【0082】
図8は、本開示の別の実施形態による、例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコーディングして再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0083】
図8の例では、ビデオデコーダ(810)は、図8の例示的な配置に示すように、互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)、およびイントラデコーダ(872)を含む。
【0084】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成されるシンタックス要素を表す特定のシンボルを再構築するように構成することができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によって予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報)、例えば、量子化変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0085】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されてもよい。
【0086】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されてもよい。
【0087】
残差デコーダ(873)は、逆量子化を実施して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されてもよい。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含めるために)特定の制御情報を利用することができ、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは小さいデータ量の制御情報のみであり得るので、データパスは示されていない)。
【0088】
再構築モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によって、インター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果を組み合わせて、再構築されたビデオの一部としての再構築されたピクチャの一部を形成する再構築されたブロックを形成するように構成され得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作が実施されてもよいことに留意されたい。
【0089】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技法を使用して実装することができることに留意されたい。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0090】
コーディングおよびデコーディングのためのブロック分割に目を向けると、一般的な分割は、ベースブロックから開始することができ、所定のルールセット、特定のパターン、分割ツリー、または任意の分割構造もしくは方式に従うことができる。分割は、階層的かつ再帰的であってもよい。以下に記載される例示的な分割手順もしくは他の手順、またはそれらの組み合わせのいずれかに従ってベースブロックを分離または分割した後に、パーティションまたはコーディングブロックの最終セットが取得されてもよい。これらのパーティションの各々は、分割階層内の様々な分割レベルのうちの1つにあってもよく、様々な形状のパーティションであってもよい。パーティションの各々は、コーディングブロック(CB)と呼ばれる場合がある。以下にさらに記載される様々な例示的な分割実施態様では、結果として得られる各CBは、許容されるサイズおよび分割レベルのいずれかのCBであってもよい。そのようなパーティションは、そのためのいくつかの基本的なコーディング/デコーディング判定が行われ得、コーディング/デコーディングパラメータが最適化され、判定され、エンコーディングされたビデオビットストリームにおいてシグナリングされ得るユニットを形成し得るので、コーディングブロックと呼ばれる。最終パーティションにおける最高または最深のレベルは、コーディングブロック分割ツリー構造の深度を表す。コーディングブロックは、輝度コーディングブロックまたは彩度コーディングブロックであってもよい。各色のCBツリー構造は、コーディングブロックツリー(CBT)と呼ばれる場合がある。
【0091】
すべての色チャネルのコーディングブロックは、まとめてコーディングユニット(CU)と呼ばれる場合がある。すべての色チャネルの階層構造は、まとめてコーディングツリーユニット(CTU)と呼ばれる場合がある。CTU内の様々な色チャネルの分割パターンまたは分割構造は、同じであってもなくてもよい。
【0092】
いくつかの実施態様では、輝度チャネルおよび彩度チャネルに使用される分割ツリー方式または構造は、同じである必要はなくてもよい。言い換えれば、輝度チャネルおよび彩度チャネルは、別々のコーディングツリー構造またはパターンを有してもよい。さらに、輝度チャネルおよび彩度チャネルが同じコーディング分割ツリー構造を使用するか、異なるコーディング分割ツリー構造を使用するか、および使用されるべき実際のコーディング分割ツリー構造は、コーディングされているスライスがPスライスか、Bスライスか、Iスライスかに依存する場合がある。例えば、Iスライスの場合、彩度チャネルおよび輝度チャネルは、別々のコーディング分割ツリー構造またはコーディング分割ツリー構造モードを有してもよいが、PスライスまたはBスライスの場合、輝度チャネルおよび彩度チャネルは、同じコーディング分割ツリー方式を共有してもよい。別々のコーディング分割ツリー構造またはモードが適用されるとき、輝度チャネルは、1つのコーディング分割ツリー構造によってCBに分割されてもよく、彩度チャネルは、別のコーディング分割ツリー構造によって彩度CBに分割されてもよい。
【0093】
いくつかの例示的な実施態様では、所定の分割パターンがベースブロックに適用されてもよい。図9に示すように、例示的な4方向分割ツリーは、第1の所定のレベル(例えば、ベースブロックサイズとして、64×64ブロックレベルまたは他のサイズ)から開始してもよく、ベースブロックは、所定の最下位レベル(例えば、4×4レベル)まで階層的に分割されてもよい。例えば、ベースブロックは、902、904、906、および908によって示された4つの所定の分割オプションまたはパターンに従うことができ、Rとして指定されたパーティションは、図9に示す同じ分割オプションが最下位レベル(例えば、4×4レベル)まで下位スケールで繰り返され得るという点で、再帰分割が可能である。いくつかの実施態様では、図9の分割方式に追加の制限が加えられてもよい。図9の実施態様では、長方形パーティション(例えば、1:2/2:1の長方形パーティション)は、許容され得るが、再帰的であることは許容され得ず、一方、正方形パーティションは再帰的であることが許容される。必要に応じて、再帰による図9の後に続く分割により、コーディングブロックの最終セットが生成される。ルートノードまたはルートブロックからの分割深度を示すために、コーディングツリー深度がさらに定義されてもよい。例えば、64×64ブロックのルートノードまたはルートブロックに対するコーディングツリー深度は0に設定されてもよく、ルートブロックが図9に従ってさらに1回分割された後に、コーディングツリー深度は1だけ増加する。64×64のベースブロックから4×4の最小パーティションまでの最大または最深のレベルは、上記の方式では(レベル0から開始して)4である。そのような分割方式が、色チャネルのうちの1つまたは複数に適用されてもよい。各色チャネルは、図9の方式に従って独立して分割されてもよい(例えば、各階層レベルにおける色チャネルの各々に対して、所定のパターンの中の分割パターンまたはオプションが独立して判定されてもよい)。あるいは、2つ以上の色チャネルが図9の同じ階層パターンツリーを共有してもよい(例えば、各階層レベルにおける2つ以上の色チャネルに対して、所定のパターンの中の同じ分割パターンまたはオプションが選択されてもよい)。
【0094】
図10は、再帰分割により分割ツリーを形成することを可能にする別の例示的な所定の分割パターンを示す。図10に示すように、例示的な10通りの分割構造またはパターンが予め定義されてもよい。ルートブロックは、所定のレベルから(例えば、128×128レベルまたは64×64レベルのベースブロックから)開始することができる。図10の例示的な分割構造は、様々な2:1/1:2および4:1/1:4の長方形パーティションを含む。図10の2列目の1002、1004、1006、および1008で示される3つのサブパーティションを有するパーティションタイプは、「T型」パーティションと呼ばれ得る。「T型」パーティション1002、1004、1006、および1008は、左T型、上T型、右T型、および下T型と呼ばれる場合がある。いくつかの例示的な実施態様では、図10の長方形パーティションのどれもこれ以上細分されることは可能でない。ルートノードまたはルートブロックからの分割深度を示すために、コーディングツリー深度がさらに定義されてもよい。例えば、128×128ブロックのルートノードまたはルートブロックに対するコーディングツリー深度は0に設定されてもよく、ルートブロックが図10に従ってさらに1回分割された後に、コーディングツリー深度は1だけ増加する。いくつかの実施態様では、1010のすべて正方形パーティションのみが、図10のパターンの後に続く分割ツリーの次のレベルへの再帰分割を可能とすることができる。言い換えれば、再帰分割は、T型パターン1002、1004、1006、および1008内の正方形パーティションでは可能でない場合がある。必要に応じて、再帰による図10の後に続く分割手順により、コーディングブロックの最終セットが生成される。そのような方式が、色チャネルのうちの1つまたは複数に適用されてもよい。いくつかの実施態様では、8×8レベル未満のパーティションの使用に、より多くの柔軟性が加えられてもよい。例えば、場合によっては、2×2の彩度インター予測が使用されてもよい。
【0095】
コーディングブロック分割についてのいくつかの他の例示的な実施態様では、ベースブロックまたは中間ブロックを四分木パーティションに分割するために四分木構造が使用されてもよい。そのような四分木分割は、任意の正方形パーティションに階層的かつ再帰的に適用されてもよい。ベースブロックまたは中間ブロックまたはパーティションがさらに四分木分割されるかどうかは、ベースブロックまたは中間ブロック/パーティションの様々なローカル特性に適応してもよい。ピクチャ境界における四分木分割が、さらに適応してもよい。例えば、サイズがピクチャ境界に収まるまでブロックが四分木分割を続けるように、ピクチャ境界で暗黙の四分木分割が実施されてもよい。
【0096】
いくつかの他の例示的な実施態様では、ベースブロックからの階層二分割が使用されてもよい。そのような方式の場合、ベースブロックまたは中間レベルブロックは、2つのパーティションに分割されてもよい。二分割は、水平または垂直のいずれかであってもよい。例えば、水平二分割は、ベースブロックまたは中間ブロックを等しい左右のパーティションに分割することができる。同様に、垂直二分割は、ベースブロックまたは中間ブロックを等しい上下のパーティションに分割することができる。そのような二分割は、階層的かつ再帰的であってもよい。二分割方式を続けるべきかどうか、および方式がさらに続く場合、水平二分割が使用されるべきか、垂直二分割が使用されるべきかは、ベースブロックまたは中間ブロックの各々において判定されてもよい。いくつかの実施態様では、さらなる分割は、(一方または両方の次元の)所定の最低パーティションサイズで停止することができる。あるいは、ベースブロックから所定の分割レベルまたは深度に達すると、さらなる分割を停止することができる。いくつかの実施態様では、パーティションのアスペクト比は制限されてもよい。例えば、パーティションのアスペクト比は、1:4よりも小さく(または4:1よりも大きく)なくてもよい。そのため、4:1の垂直対水平アスペクト比を有する垂直ストリップパーティションは、各々が2:1の垂直対水平アスペクト比を有する上下のパーティションに垂直にさらに二分割され得るのみである。
【0097】
さらにいくつかの他の例では、図13に示すように、ベースブロックまたは任意の中間ブロックを分割するために三分割方式が使用され得る。三元パターンは、図13の1302に示すように垂直に、または図13の1304に示すように水平に実装されてもよい。図13の例示的な分割比は、垂直または水平のいずれかで1:2:1として示されているが、他の比が予め定義されてもよい。いくつかの実施態様では、2つ以上の異なる比が予め定義されてもよい。そのような三分木分割が1つの連続するパーティション内のブロック中心に位置するオブジェクトを取り込むことが可能であるが、四分木および二分木が常にブロック中心に沿って分割しており、したがってオブジェクトを別々のパーティションに分割するという点で、そのような三分割方式は四分木または二分割構造を補完するために使用されてもよい。いくつかの実施態様では、例示的な三分木のパーティションの幅および高さは、さらなる変換を回避するために常に2の累乗である。
【0098】
上記の分割方式は、異なる分割レベルで任意の方法で組み合わされ得る。一例として、上述された四分木および二分割方式は、ベースブロックを四分木-二分木(QTBT)構造に分割するために組み合わされてもよい。そのような方式では、ベースブロックまたは中間ブロック/パーティションは、指定された場合、所定の条件のセットに従う、四分木分割または二分割のいずれかであってもよい。特定の例が、図14に示されている。図14の例では、ベースブロックは、1402、1404、1406、および1408によって示すように、最初に4つのパーティションに四分木分割される。その後に、結果として得られたパーティションの各々は、(1408などの)4つのさらなるパーティションに四分木分割されるか、または次のレベルで(例えば、両方とも対称である1402もしくは1406などの水平もしくは垂直のいずれかの)2つのさらなるパーティションに二分割されるか、または(1404などの)分割されないかのいずれかである。二分割または四分木分割は、1410の全体的な例示的な分割パターンおよび1420の対応するツリー構造/表現によって示すように、正方形パーティションに対して再帰的に可能にされてもよく、実線は四分木分割を表し、破線は二分割を表す。二分割が水平か垂直かを示すために、二分割ノード(非リーフバイナリパーティション)ごとにフラグが使用されてもよい。例えば、1410の分割構造と一致する1420に示すように、フラグ「0」は水平二分割を表すことができ、フラグ「1」は垂直二分割を表すことができる。四分木分割パーティションの場合、四分木分割は常にブロックまたはパーティションを水平と垂直の両方に分割して等しいサイズの4つのサブブロック/パーティションを生成するので、分割タイプを示す必要はない。いくつかの実施態様では、フラグ「1」は水平二分割を表すことができ、フラグ「0」は垂直二分割を表すことができる。
【0099】
QTBTのいくつかの例示的実施態様では、四分木および二分割ルールセットは、以下の所定のパラメータおよびそれに関連する対応する関数によって表されてもよい。
-CTUサイズ:四分木のルートノードサイズ(ベースブロックのサイズ)
-MinQTSize:最小許容四分木リーフノードサイズ
-MaxBTSize:最大許容二分木ルートノードサイズ
-MaxBTDepth:最大許容二分木深さ
-MinBTSize:最小許容二分木リーフノードサイズ
QTBT分割構造のいくつかの例示的実施態様では、CTUサイズは、彩度サンプルの2つの対応する64×64ブロックを有する128×128個の輝度サンプルとして設定されてもよく(例示的な彩度サブサンプリングが考慮され使用される場合)、MinQTSizeは、16×16として設定されてもよく、MaxBTSizeは、64×64として設定されてもよく、MinBTSize(幅および高さの両方について)は、4×4として設定されてもよく、MaxBTDepthは、4として設定されてもよい。四分木分割は、四分木リーフノードを生成するために、最初にCTUに適用されてもよい。四分木リーフノードは、16×16のその最小許容サイズ(すなわち、MinQTSize)から128×128(すなわち、CTU size)までのサイズを有することができる。ノードが128×128である場合、サイズがMaxBTSize(すなわち、64×64)を超えるので、二分木によって最初に分割されることはない。そうでない場合、MaxBTSizeを超えないノードは、二分木によって分割される可能性がある。図14の例では、ベースブロックは、128×128である。ベースブロックは、所定のルールセットに従って、四分木分割のみが可能である。ベースブロックは、0の分割深度を有する。結果として得られた4つのパーティションの各々は、MaxBTSizeを超えない64×64であり、レベル1でさらに四分木分割または二分木分割されてもよい。プロセスは続く。二分木深度がMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されなくてもよい。二分木ノードの幅がMinBTSize(すなわち、4)に等しいとき、それ以上の水平分割は考慮されなくてもよい。同様に、二分木ノードの高さがMinBTSizeに等しいとき、それ以上の垂直分割は考慮されない。
【0100】
いくつかの例示的な実施態様では、上記のQTBT方式は、輝度および彩度が同じQTBT構造または別々のQTBT構造を有するための柔軟性をサポートするように構成されてもよい。例えば、PスライスおよびBスライスの場合、1つのCTU内の輝度CTBおよび彩度CTBは同じQTBT構造を共有することができる。しかしながら、Iスライスの場合、輝度CTBはQTBT構造によってCBに分割されてもよく、彩度CTBは別のQTBT構造によって彩度CBに分割されてもよい。これは、CUがIスライス内の異なる色チャネルを参照するために使用されてもよく、例えば、Iスライスが、輝度成分のコーディングブロックまたは2つの彩度成分のコーディングブロックから構成されてもよく、PスライスまたはBスライス内のCUが、3つの色成分すべてのコーディングブロックから構成されてもよいことを意味する。
【0101】
いくつかの他の実施態様では、QTBT方式は、上述された三元方式で補完されてもよい。そのような実施態様は、マルチタイプツリー(MTT)構造と呼ばれる場合がある。例えば、ノードの二分割に加えて、図13の三分割パターンのうちの1つが選択されてもよい。いくつかの実施態様では、正方形ノードのみが三分割を受けることができる。三分割が水平であるか垂直であるかを示すために、追加のフラグが使用されてもよい。
【0102】
QTBT実施態様および三分割によって補完されたQTBT実施態様などの2レベルツリーまたはマルチレベルツリーの設計は、主に複雑性の低減によって動機付けられてもよい。理論的には、ツリーをトラバースする複雑性はTDであり、ここで、Tは分割タイプの数を表し、Dはツリーの深度である。深度(D)を低減しながらマルチタイプ(T)を使用することによって、トレードオフが行われてもよい。
【0103】
いくつかの実施態様では、CBはさらに分割されてもよい。例えば、CBは、コーディングプロセスおよびデコーディングプロセス中のイントラフレーム予測またはインターフレーム予測を目的として、複数の予測ブロック(PB)にさらに分割され得る。言い換えれば、CBは異なるサブパーティションにさらに分割されてもよく、そこで個々の予測判定/構成が行われてもよい。並行して、CBは、ビデオデータの変換または逆変換が実施されるレベルを記述する目的で、複数の変換ブロック(TB)にさらに分割されてもよい。CBのPBおよびTBへの分割方式は、同じである場合もそうでない場合もある。例えば、各分割方式は、例えば、ビデオデータの様々な特性に基づいて独自の手順を使用して実施され得る。PBおよびTBの分割方式は、いくつかの例示的な実施態様では独立していてもよい。PBおよびTBの分割方式および境界は、いくつかの他の例示的な実施態様では相関されていてもよい。いくつかの実施態様では、例えば、TBは、PB分割後に分割されてもよく、詳細には、各PBは、コーディングブロックの分割の後に続いて判定された後に、次いで1つまたは複数のTBにさらに分割されてもよい。例えば、いくつかの実施態様では、PBは、1つ、2つ、4つ、または他の数のTBに分割され得る。
【0104】
いくつかの実施態様では、ベースブロックをコーディングブロックに分割し、さらに予測ブロックおよび/または変換ブロックに分割するために、輝度チャネルおよび彩度チャネルは異なって処理されてもよい。例えば、いくつかの実施態様では、コーディングブロックの予測ブロックおよび/または変換ブロックへの分割は、輝度チャネルに対して許容されてもよいが、コーディングブロックの予測ブロックおよび/または変換ブロックへのそのような分割は、彩度チャネルに対して許容されない場合がある。そのような実施態様では、よって、輝度ブロックの変換および/または予測は、コーディングブロックレベルでのみ実施され得る。別の例では、輝度チャネルおよび彩度チャネルの最小変換ブロックサイズが異なっていてもよく、例えば、輝度チャネルのコーディングブロックは、彩度チャネルよりも小さい変換ブロックおよび/または予測ブロックに分割されることが許容され得る。さらに別の例では、コーディングブロックの変換ブロックおよび/または予測ブロックへの分割の最大深度が輝度チャネルと彩度チャネルとの間で異なっていてもよく、例えば、輝度チャネルのコーディングブロックは、彩度チャネルよりも深い変換ブロックおよび/または予測ブロックに分割されることが許容され得る。具体例として、輝度コーディングブロックは、最大2レベルだけ下がる再帰分割によって表すことができる複数のサイズの変換ブロックに分割されてもよく、正方形、2:1/1:2、および4:1/1:4などの変換ブロック形状、ならびに4×4から64×64の変換ブロックサイズが許容され得る。しかしながら、彩度ブロックの場合、輝度ブロックに指定された可能な最大の変換ブロックのみが許容されてもよい。
【0105】
コーディングブロックをPBに分割するためのいくつかの例示的な実施態様では、PB分割の深度、形状、および/または他の特性は、PBがイントラコーディングされるかインターコーディングされるかに依存してもよい。
【0106】
コーディングブロック(または予測ブロック)の変換ブロックへの分割は、四分木分割および所定のパターン分割を含むがそれらに限定されない様々な例示的な方式で、再帰的または非再帰的に、コーディングブロックまたは予測ブロックの境界での変換ブロックをさらに考慮して実施されてもよい。一般に、結果として得られた変換ブロックは、異なる分割レベルにあってもよく、同じサイズでなくてもよく、形状が正方形である必要がなくてもよい(例えば、それらはいくつかの許容されたサイズおよびアスペクト比を有する長方形であり得る)。さらなる例は、図15図16、および図17に関連して以下でさらに詳細に説明される。
【0107】
しかしながら、いくつかの他の実施態様では、上記の分割方式のいずれかを介して取得されたCBは、予測および/または変換のための基本または最小のコーディングブロックとして使用されてもよい。言い換えれば、インター予測/イントラ予測を実施する目的で、かつ/または変換の目的で、これ以上の分割は実施されない。例えば、上記のQTBT方式から取得されたCBは、予測を実施するための単位としてそのまま使用されてもよい。具体的には、そのようなQTBT構造は、複数の分割タイプの概念を取り除く、すなわち、CU、PU、およびTUの分離を取り除き、上述したように、CU/CB分割形状についてのさらなる柔軟性をサポートする。そのようなQTBTブロック構造では、CU/CBは、正方形または長方形のいずれかの形状を有することができる。そのようなQTBTのリーフノードは、これ以上の分割なしに予測および変換処理のための単位として使用される。これは、CU、PU、およびTUがそのような例示的なQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。
【0108】
上記の様々なCB分割方式、ならびにPBおよび/またはTBへのCBのさらなる分割(PB/TB分割なしを含む)は、任意の方法で組み合わされ得る。以下の特定の実施態様は、非限定的な例として提供される。
【0109】
コーディングブロックおよび変換ブロックの分割の具体的で例示的な実施態様が、以下に記載される。そのような例示的な実施態様では、ベースブロックは、再帰的四分木分割、または(図9および図10の分割パターンなどの)上述された所定の分割パターンを使用して、コーディングブロックに分割されてもよい。各レベルにおいて、特定のパーティションのさらなる四分木分割を続けるべきかどうかが、ローカルビデオデータ特性によって判定されてもよい。結果として得られたCBは、様々な四分木分割レベルにあり、様々なサイズのCBであってもよい。ピクチャエリアをインターピクチャ(時間)予測を使用してコーディングするか、イントラピクチャ(空間)予測を使用してコーディングするかの判定は、CBレベル(または、すべての3色チャネルの場合CUレベル)で行われてもよい。各CBは、所定のPB分割タイプに従って、1つ、2つ、4つ、または他の数のPBにさらに分割されてもよい。1つのPB内部で、同じ予測プロセスが適用されてもよく、関連情報はPBベースでデコーダに送信されてもよい。PB分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後に、CBは、CB用のコーディングツリーと同様の別の四分木構造に従ってTBに分割することができる。この特定の実施態様では、CBまたはTBは、正方形に限定されなくてもよい。さらにこの特定の例では、PBは、インター予測では正方形または長方形であってもよく、イントラ予測では正方形のみであってもよい。コーディングブロックは、例えば、4つの正方形のTBに分割されてもよい。各TBは、(四分木分割を使用して)再帰的に、残差四分木(RQT)と呼ばれるより小さいTBにさらに分割されてもよい。
【0110】
ベースブロックをCB、PB、および/またはTBに分割するための別の例示的な実施態様が、以下でさらに記載される。例えば、図9または図10に示すタイプなどの複数のパーティションユニットタイプを使用するのではなく、二分割および三分割のセグメント化構造(例えば、QTBTまたは上述された三分割によるQTBT)を使用するネストされたマルチタイプツリーを有する四分木が使用されてもよい。CB、PB、およびTBの分離(すなわち、CBのPBおよび/またはTBへの分割、ならびにPBのTBへの分割)は、そのようなCBがさらなる分割を必要とする場合に、最大変換長には大きすぎるサイズを有するCBに必要なときを除き、断念されてもよい。この例示的な分割方式は、予測および変換が両方ともこれ以上の分割なしにCBレベルで実施され得るように、CB分割形状についてのさらなる柔軟性をサポートするように設計されてもよい。そのようなコーディングツリー構造では、CBは、正方形または長方形のいずれかの形状を有することができる。具体的には、コーディングツリーブロック(CTB)が最初に四分木構造によって分割されてもよい。次いで、四分木リーフノードが、ネストされたマルチタイプツリー構造によってさらに分割されてもよい。二分割または三分割を使用するネストされたマルチタイプツリー構造の一例が、図11に示されている。具体的には、図11の例示的なマルチタイプツリー構造は、垂直二分割(SPLIT_BT_VER)(1102)、水平二分割(SPLIT_BT_HOR)(1104)、垂直三分割(SPLIT_TT_VER)(1106)、および水平三分割(SPLIT_TT_HOR)(1108)と呼ばれる4つの分割タイプを含む。次いで、CBはマルチタイプツリーのリーフに対応する。この例示的な実施態様では、CBが最大変換長に対して大きすぎない限り、このセグメント化は、これ以上の分割なしに予測と変換の両方の処理に使用される。これは、ほとんどの場合、CB、PB、およびTBが、ネストされたマルチタイプツリーコーディングブロック構造を有する四分木において同じブロックサイズを有することを意味する。例外は、サポートされる最大変換長がCBの色成分の幅または高さよりも小さいときに発生する。いくつかの実施態様では、二分割または三分割に加えて、図11のネストされたパターンは、四分木分割をさらに含んでもよい。
【0111】
1つのベースブロックに対する(四分木分割、二分割、および三分割のオプションを含む)ブロック分割のネストされたマルチタイプツリーコーディングブロック構造を有する四分木についての1つの具体例が図12に示されている。より詳細には、図12は、ベースブロック1200が4つの正方形パーティション1202、1204、1206、および1208に四分木分割されることを示す。さらなる分割のために図11のマルチタイプツリー構造および四分木をさらに使用する判定は、四分木分割されたパーティションの各々について行われる。図12の例では、パーティション1204は、これ以上分割されない。パーティション1202およびパーティション1208は、別の四分木分割を各々採用する。パーティション1202では、第2のレベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、四分木、図11の水平二分割1104、非分割、および図11の水平三分割1108の第3のレベルの分割を採用する。パーティション1208は別の四分木分割を採用し、第2のレベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、図11の垂直三分割1106、非分割、非分割、および図11の水平二分割1104の第3のレベルの分割を採用する。1208の第3のレベルの左上パーティションのサブパーティションのうちの2つは、それぞれ、図11の水平二分割1104および水平三分割1108に従ってさらに分割される。パーティション1206は、図11の垂直二分割1102の後に続く、2つのパーティションへの第2のレベルの分割パターンを採用し、2つのパーティションは図11の水平三分割1108および垂直二分割1102に従って第3のレベルでさらに分割される。図11の水平二分割1104に従って、それらのうちの1つに第4のレベルの分割がさらに適用される。
【0112】
上記の具体例では、最大輝度変換サイズは64×64であってもよく、サポートされる最大彩度変換サイズは、輝度とは異なる、例えば、32×32であり得る。図12の上記の例示的なCBが、一般に、より小さいPBおよび/またはTBにこれ以上分割されない場合でも、輝度コーディングブロックまたは彩度コーディングブロックの幅または高さが最大変換幅または最大変換高さよりも大きいとき、輝度コーディングブロックまたは彩度コーディングブロックは、水平方向および/または垂直方向の変換サイズ制限を満たすように、その方向に自動的に分割されてもよい。
【0113】
上記のベースブロックのCBへの分割についての具体例では、上述されたように、コーディングツリー方式は、輝度および彩度が別々のブロックツリー構造を有するための能力をサポートすることができる。例えば、PスライスおよびBスライスの場合、1つのCTU内の輝度CTBおよび彩度CTBは、同じコーディングツリー構造を共有することができる。Iスライスの場合、例えば、輝度および彩度は、別々のコーディングブロックツリー構造を有してもよい。別々のブロックツリー構造が適用されるとき、輝度CTBは1つのコーディングツリー構造によって輝度CBに分割されてもよく、彩度CTBは別のコーディングツリー構造によって彩度CBに分割される。これは、Iスライス内のCUが輝度成分のコーディングブロックまたは2つの彩度成分のコーディングブロックから構成されてもよく、PスライスまたはBスライス内のCUが常に、ビデオがモノクロでない限り3つの色成分すべてのコーディングブロックから構成されることを意味する。
【0114】
コーディングブロックが複数の変換ブロックにさらに分割されるとき、その中の変換ブロックは、様々な順序または走査方式に従ってビットストリーム内で順序付けされてもよい。コーディングブロックまたは予測ブロックを変換ブロックに分割するための例示的な実施態様、および変換ブロックのコーディング順序が、以下でさらに詳細に記載される。いくつかの例示的な実施態様では、上述されたように、変換分割は、例えば、4×4から64×64までの範囲の変換ブロックサイズを有する、複数の形状、例えば、1:1(正方形)、1:2/2:1、および1:4/4:1の変換ブロックをサポートすることができる。いくつかの実施態様では、コーディングブロックが64×64よりも小さいか等しい場合、変換ブロック分割は、彩度ブロックの場合、変換ブロックサイズがコーディングブロックサイズと同一であるように、輝度成分にのみ適用されてもよい。そうではなく、コーディングブロックの幅または高さが64よりも大きい場合、輝度コーディングブロックと彩度コーディングブロックの両方は、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ブロックに暗黙的に分割されてもよい。
【0115】
変換ブロック分割のいくつかの例示的な実施態様では、イントラコーディングされたブロックとインターコーディングされたブロックの両方について、コーディングブロックが、所定の数のレベル(例えば、2レベル)までの分割深度を有する複数の変換ブロックにさらに分割され得る。変換ブロックの分割深度およびサイズは、関連してもよい。いくつかの例示的な実施態様の場合、現在の深度の変換サイズから次の深度の変換サイズへのマッピングが以下で表1に示されている。
【0116】
【表1】
【0117】
表1の例示的なマッピングに基づいて、1:1正方形ブロックの場合、次のレベルの変換分割は、4つの1:1正方形サブ変換ブロックを作成することができる。変換分割は、例えば、4×4で停止してもよい。したがって、4×4の現在の深度の変換サイズは、次の深度の4×4の同じサイズに対応する。表1の例では、1:2/2:1非正方形ブロックの場合、次のレベルの変換分割は2つの1:1正方形サブ変換ブロックを作成することができるが、1:4/4:1非正方形ブロックの場合、次のレベルの変換分割は2つの1:2/2:1サブ変換ブロックを作成することができる。
【0118】
いくつかの例示的な実施態様では、イントラコーディングされたブロックの輝度成分に対して、変換ブロック分割に関してさらなる制限が適用され得る。例えば、変換分割のレベルごとに、すべてのサブ変換ブロックは、等しいサイズを有するように制限されてもよい。例えば、32×16のコーディングブロックの場合、レベル1の変換分割は、2つの16×16のサブ変換ブロックを作成し、レベル2の変換分割は、8つの8×8のサブ変換ブロックを作成する。言い換えれば、変換ユニットを等しいサイズに保つために、すべての第1のレベルのサブブロックに第2のレベルの分割が適用されなければならない。表1に従ってイントラコーディングされた正方形ブロックに対する変換ブロック分割の一例が、矢印によって示されたコーディング順序と共に図15に示されている。具体的には、1502は、正方形コーディングブロックを示す。表1による4つの等しいサイズの変換ブロックへの第1のレベルの分割が、矢印によって示されたコーディング順序と共に1504に示されている。表1によるすべての第1のレベルの等しいサイズのブロックの16個の等しいサイズの変換ブロックへの第2のレベルの分割が、矢印によって示されたコーディング順序と共に1506に示されている。
【0119】
いくつかの例示的な実施態様では、インターコーディングされたブロックの輝度成分に対して、イントラコーディングに対する上記の制限が適用されない場合がある。例えば、第1のレベルの変換分割の後に、サブ変換ブロックのいずれか1つが、もう1つのレベルでさらに独立して分割され得る。したがって、結果として得られた変換ブロックは、同じサイズのブロックであってもなくてもよい。インターコーディングされたブロックのそれらのコーディング順序による変換ロックへの例示的な分割が、図16に示されている。図16の例では、インターコーディングされたブロック1602は、表1に従って2つのレベルで変換ブロックに分割される。第1のレベルで、インターコーディングされたブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロックのうちの(それらのすべてではない)1つのみが4つのサブ変換ブロックにさらに分割され、1604によって示すように、2つの異なるサイズを有する合計7つの変換ブロックがもたらされる。これらの7つの変換ブロックの例示的なコーディング順序が、図16の1604に矢印によって示されている。
【0120】
いくつかの例示的な実施態様では、彩度成分の場合、変換ブロックに対する何らかのさらなる制限が適用されてもよい。例えば、彩度成分の場合、変換ブロックサイズは、コーディングブロックサイズと同じ大きさであり得るが、所定のサイズ、例えば、8×8よりも小さくすることはできない。
【0121】
いくつかの他の例示的な実施態様では、幅(W)または高さ(H)のいずれかが64よりも大きいコーディングブロックの場合、輝度コーディングブロックと彩度コーディングブロックの両方は、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ユニットに暗黙的に分割されてもよい。ここで、本開示では、「min(a,b)」は、aとbとの間で小さい方の値を返すことができる。
【0122】
図17は、コーディングブロックまたは予測ブロックを変換ブロックに分割するための別の代替的な例示的な方式をさらに示す。図17に示すように、再帰変換分割を使用する代わりに、コーディングブロックの変換タイプに従って、所定の分割タイプのセットがコーディングブロックに適用されてもよい。図17に示す特定の例では、6つの例示的な分割タイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分割するために適用されてもよい。変換ブロック分割を生成するそのような方式は、コーディングブロックまたは予測ブロックのいずれかに適用されてもよい。
【0123】
より詳細には、図17の分割方式は、任意の所与の変換タイプ(変換タイプは、例えば、ADSTなどのプライマリ変換のタイプを指す)に対して最大6つの例示的な分割タイプを提供する。この方式では、すべてのコーディングブロックまたは予測ブロックは、例えば、レート歪みコストに基づいて変換分割タイプが割り当てられてもよい。一例では、コーディングブロックまたは予測ブロックに割り当てられる変換分割タイプは、コーディングブロックまたは予測ブロックの変換タイプに基づいて判定されてもよい。図17に例示された6つの変換分割タイプによって示すように、特定の変換分割タイプが、変換ブロックの分割サイズおよびパターンに対応することができる。様々な変換タイプと様々な変換分割タイプとの間の対応関係が、予め定義されてもよい。レート歪みコストに基づいてコーディングブロックまたは予測ブロックに割り当てられ得る変換分割タイプを大文字のラベルが示す一例が、以下に示されている。
【0124】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0125】
・PARTITION_SPLIT:ブロックサイズの1/2の幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0126】
・PARTITION_HORZ:ブロックサイズと同じ幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0127】
・PARTITION_VERT:ブロックサイズの1/2の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0128】
・PARTITION_HORZ4:ブロックサイズと同じ幅およびブロックサイズの1/4の高さの変換サイズを割り当てる。
【0129】
・PARTITION_VERT4:ブロックサイズの1/4の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0130】
上記の例では、図17に示す変換分割タイプは、すべて分割された変換ブロックについての均一な変換サイズを含む。これは限定ではなく単なる例である。いくつかの他の実施態様では、特定の分割タイプ(またはパターン)における分割された変換ブロックに混合変換ブロックサイズが使用されてもよい。
【0131】
上記の分割方式のいずれかから取得されたPB(または、予測ブロックにさらに分割されていない場合はPBとも呼ばれるCB)は、イントラ予測またはインター予測のいずれかを介してコーディングのための個々のブロックになり得る。現在のPBにおけるインター予測のために、現在のブロックと予測ブロックとの間の残差が生成され、コーディングされ、コーディングされたビットストリームに含まれ得る。
【0132】
インター予測は、例えば、単一参照モードまたは複合参照モードで実施され得る。いくつかの実施態様では、現在のブロックがインターコーディングされており、スキップされないかどうかを示すために、スキップフラグが最初に現在のブロックのビットストリームに(またはより高いレベルで)含まれ得る。現在のブロックがインターコーディングされている場合、現在のブロックの予測に単一参照モードが使用されているか複合参照モードが使用されているかを示す信号として、別のフラグがビットストリームにさらに含まれ得る。単一参照モードの場合、現在のブロックの予測ブロックを生成するために1つの参照ブロックが使用され得る。複合参照モードの場合、例えば、加重平均によって予測ブロックを生成するために2つ以上の参照ブロックが使用され得る。複合参照モードは、複数参照モード、2参照モード、または多重参照モードと呼ばれる場合がある。1つまたは複数の参照ブロックは、1つまたは複数の参照フレームインデックスを使用して、さらに、参照ブロックと、例えば、水平および垂直画素内の位置における現在のブロックとの間のシフトを示す対応する1つまたは複数の動きベクトルを使用して識別され得る。例えば、現在のブロックのインター予測ブロックは、単一参照モードの予測ブロックとして参照フレーム内の1つの動きベクトルによって識別される単一参照ブロックから生成され得るが、複合参照モードの場合、予測ブロックは、2つの参照フレームインデックスおよび2つの対応する動きベクトルによって示される2つの参照フレーム内の2つの参照ブロックの加重平均によって生成され得る。動きベクトルは、様々な方法でコーディングされ、ビットストリームに含まれ得る。
【0133】
いくつかの実施態様では、エンコーディングまたはデコーディングシステムは、デコーディングされたピクチャバッファ(DPB)を維持することができる。いくつかの画像/ピクチャは、(デコーディングシステムにおいて)表示されるのを待つDPBにおいて維持されてもよく、DPBにおけるいくつかの画像/ピクチャは、(デコーディングシステムまたはエンコーディングシステムにおいて)インター予測を可能にするための参照フレームとして使用されてもよい。いくつかの実施態様では、DPB内の参照フレームは、エンコーディングまたはデコーディングされている現在の画像の短期参照または長期参照のいずれかとしてタグ付けされ得る。例えば、短期参照フレームは、現在のフレームまたは現在のフレームに最も近い所定の数(例えば、2つ)の後続のビデオフレーム内のブロックのインター予測に使用されるフレームをデコーディング順序に含むことができる。長期参照フレームは、デコーディングの順序で現在のフレームから所定の数のフレームを超えるフレーム内の画像ブロックを予測するために使用することができるDPB内のフレームを含むことができる。短期および長期参照フレームのためのこのようなタグに関する情報は、参照ピクチャセット(RPS)と称され、エンコーディングされたビットストリームにおける各フレームのヘッダに追加され得る。エンコーディングされたビデオストリーム内の各フレームは、ピクチャ順序カウンタ(POC)によって識別されることができ、これは、絶対的な方式で、または例えば、Iフレームから開始するピクチャグループに関連して、再生シーケンスに従って番号付けされる。
【0134】
いくつかの例示的な実施態様では、インター予測のための短期および長期参照フレームの識別を含む1つまたは複数の参照ピクチャリストが、RPS内の情報に基づいて形成され得る。例えば、単一のピクチャ参照リストは、L0参照(または参照リスト0)として表記される単方向インター予測のために形成されてもよく、2つのピクチャ参照リストは、2つの予測方向の各々についてL0(または参照リスト0)およびL1(または参照リスト1)として表記される双方向インター予測のために形成されてもよい。L0リストおよびL1リストに含まれる参照フレームは、様々な所定の方法で順序付けられてもよい。L0リストおよびL1リストの長さは、ビデオビットストリームにおいてシグナリングされ得る。単方向インター予測は、複合予測モードでの加重平均による予測ブロックの生成のための複数の参照が予測されるブロックの同じ側にある場合、単一参照モードまたは複合参照モードのいずれかであり得る。双方向インター予測は、双方向インター予測が少なくとも2つの参照ブロックを含むという点で、複合モードのみであり得る。
【0135】
いくつかの実施態様では、インター予測のためのマージモード(MM)が実装されてもよい。一般に、マージモードの場合、現在のPBの単一参照予測における動きベクトルまたは複合参照予測における動きベクトルの1つまたは複数は、独立して計算およびシグナリングされるのではなく、他の動きベクトルから導出されてもよい。例えば、エンコーディングシステムでは、現在のPBの現在の動きベクトルは、現在の動きベクトルと他の1つまたは複数のすでにエンコーディングされた動きベクトル(参照動きベクトルと呼ばれる)との間の差によって表すことができる。現在の動きベクトルの全体ではなく動きベクトルのそのような差は、エンコーディングされてビットストリームに含まれてもよく、参照動きベクトルにリンクされてもよい。これに対応して、デコーディングシステムにおいて、現在のPBに対応する動きベクトルは、デコーディングされた動きベクトル差およびそれとリンクされたデコーディングされた参照動きベクトルに基づいて導出され得る。一般的なマージモード(MM)インター予測の具体的な形式として、動きベクトル差に基づくこのようなインター予測は、動きベクトル差を伴うマージモード(MMVD)と呼ばれることがある。したがって、一般的なMMまたは特にMMVDは、異なるPBに関連付けられた動きベクトル間の相関を活用してコーディング効率を改善するために実装され得る。例えば、隣接するPBは、同様の動きベクトルを有してもよく、したがってMVDは小さくてもよく、効率的にコーディングすることができる。別の例では、動きベクトルは、空間内の同様に位置/配置されたブロックについて時間的に(フレーム間で)相関することができる。
【0136】
いくつかの例示的な実施態様では、現在のPBがマージモードにあるかどうかを示すために、エンコーディングプロセス中にMMフラグをビットストリームに含めることができる。追加的または代替的に、現在のPBがMMVDモードにあるかどうかを示すために、エンコーディングプロセス中にMMVDフラグが含まれ、ビットストリームでシグナリングされてもよい。MMおよび/またはMMVDフラグまたはインジケータは、PBレベル、CBレベル、CUレベル、CTBレベル、CTUレベル、スライスレベル、ピクチャレベルなどで提供され得る。特定の例では、現在のCUに対してMMフラグとMMVDフラグの両方が含まれることができ、MMVDモードが現在のCUに使用されるかどうかを指定するために、MMVDフラグは、スキップフラグおよびMMフラグの直後にシグナリングされ得る。
【0137】
MMVDのいくつかの例示的な実施態様では、予測されるブロックに対して、動きベクトル予測のための参照動きベクトル(RMV)またはMV予測器候補のリストを形成することができる。RMV候補のリストは、その動きベクトルが現在の動きベクトルを予測するために使用され得る所定の数(例えば、2つ)のMV予測器候補ブロックを含むことができる。RMV候補ブロックは、同じフレーム内の隣接ブロックおよび/または時間ブロック(例えば、現在のフレームの進行中または後続のフレームにおいて同一に位置するブロック)から選択されたブロックを含むことができる。これらのオプションは、現在のブロックと同様または同一の動きベクトルを有する可能性が高い、現在のブロックに対する空間的または時間的位置にあるブロックを表す。MV予測器候補のリストのサイズは、予め判定されてもよい。例えば、リストは、2つ以上の候補を含んでもよい。RMV候補のリスト上にあるために、候補ブロックは、例えば、現在のブロックと同じ参照フレーム(または複数のフレーム)を有する必要があり得、存在しなければならず(例えば、現在のブロックがフレームのエッジの近くにある場合、境界チェックが実施される必要がある)、エンコーディングプロセス中にすでにエンコーディングされなければならず、および/またはデコーディングプロセス中にすでにデコーディングされなければならない。いくつかの実施態様では、マージ候補のリストは、利用可能であり、上記の条件を満たす場合、最初に空間的に隣接するブロック(特定の所定の順序で走査される)で埋められ、次いで、リスト内に空間がまだ利用可能である場合、時間ブロックで埋められてもよい。隣接するRMV候補ブロックは、例えば、現在のブロックの左および上のブロックから選択することができる。RMV予測器候補のリストは、動的参照リスト(DRL)として様々なレベル(シーケンス、ピクチャ、フレーム、スライス、スーパーブロックなど)で動的に形成することができる。DRLは、ビットストリームでシグナリングされ得る。
【0138】
いくつかの実施態様では、現在のブロックの動きベクトルを予測するための参照動きベクトルとして使用されている実際のMV予測器候補がシグナリングされ得る。RMV候補リストに2つの候補が含まれる場合、参照マージ候補の選択を示すために、マージ候補フラグと呼ばれる1ビットのフラグが使用されてもよい。複合モードで予測されている現在のブロックについて、MV予測器を使用して予測された複数の動きベクトルの各々は、マージ候補リストからの参照動きベクトルに関連付けられ得る。エンコーダは、どのRMV候補が現在のコーディングブロックをより厳密に予測するかを判定し、選択をDRLへのインデックスとしてシグナリングすることができる。
【0139】
MMVDのいくつかの例示的な実施態様では、RMV候補が選択され、予測される動きベクトルのベース動きベクトル予測器として使用された後に、動きベクトル差(予測対象の動きベクトルと参照候補動きベクトルとの間の差を表すMVDまたはデルタMV)がエンコーディングシステムで計算され得る。そのようなMVDは、MV差の大きさおよびMV差の方向を表す情報を含むことができ、それらの両方はビットストリームでシグナリングされ得る。動き差の大きさおよび動き差の方向は、様々な方法でシグナリングされ得る。
【0140】
MMVDのいくつかの例示的な実施態様では、距離インデックスを使用して、動きベクトル差の大きさ情報を指定し、開始点(参照動きベクトル)からの所定の動きベクトル差を表す所定のオフセットのセットのうちの1つを示すことができる。次いで、シグナリングされたインデックスに応じたMVオフセットが、開始(参照)動きベクトルの水平成分または垂直成分のいずれかに加えられ得る。参照動きベクトルの水平成分または垂直成分がオフセットされるべきかどうかは、MVDの方向情報によって判定することができる。距離インデックスと所定のオフセットとの間の例示的な所定の関係は、表2に指定されている。
【0141】
【表2】
【0142】
MMVDのいくつかの例示的な実施態様では、方向インデックスがさらにシグナリングされ、参照動きベクトルに対するMVDの方向を表すために使用され得る。いくつかの実施態様では、方向は、水平方向および垂直方向のいずれか一方に制限されてもよい。例示的な2ビット方向インデックスが、表3に示されている。表3の例では、MVDの解釈は、開始/参照MVの情報に従って変化し得る。例えば、開始/参照MVが単一予測ブロックに対応するか、または両方の参照フレームリストが現在のピクチャの同じ側を指す双予測ブロックに対応する場合(すなわち、2つの参照ピクチャのPOCは両方とも現在のピクチャのPOCよりも大きいか、または両方とも現在のピクチャのPOCよりも小さい)、表3の符号は、開始/参照MVに加えられるMVオフセットの符号(方向)を指定することができる。開始/参照MVが、現在のピクチャの異なる側に2つの参照ピクチャを有する双予測ブロックに対応し(すなわち、一方の参照ピクチャのPOCは現在のピクチャのPOCよりも大きく、他方の参照ピクチャのPOCは現在のピクチャのPOCよりも小さい)、ピクチャ参照リスト0内の参照POCと現在のフレームとの間の差が、ピクチャ参照リスト1内の参照POCと現在のフレームとの間の差よりも大きい場合、表3の符号は、ピクチャ参照リスト0内の参照ピクチャに対応する参照MVに加えられるMVオフセットの符号を指定することができ、ピクチャ参照リスト1内の参照ピクチャに対応するMVのオフセットの符号は、反対の値(オフセットの反対符号)を有することができる。そうではなく、ピクチャ参照リスト1内の参照POCと現在のフレームとの間の差がピクチャ参照リスト0内の参照POCと現在のフレームとの間の差よりも大きい場合、表3の符号は、ピクチャ参照リスト1に関連付けられた参照MVに加えられたMVオフセットの符号と、ピクチャ参照リスト0に関連付けられた参照MVへのオフセットの符号とが反対の値を有することを指定することができる。
【0143】
【表3】
【0144】
いくつかの例示的な実施態様では、MVDは、各方向のPOCの差に従ってスケーリングされてもよい。両方のリストにおけるPOCの差が同じである場合、スケーリングは必要とされない。そうではなく、参照リスト0内のPOCの差が参照リスト1の差よりも大きい場合、参照リスト1のMVDはスケーリングされる。参照リスト1のPOC差がリスト0よりも大きい場合、リスト0のMVDも同様にスケーリングされ得る。開始MVが単一予測される場合、MVDは、利用可能または参照MVに加えられる。
【0145】
双方向複合予測のためのMVDコーディングおよびシグナリングのいくつかの例示的な実施態様では、2つのMVDを別々にコーディングおよびシグナリングすることに加えて、またはその代わりに、1つのMVDのみがシグナリングを必要とし、他のMVDがシグナリングされたMVDから導出され得るように、対称MVDコーディングが実装され得る。そのような実施態様では、リスト0とリスト1の両方の参照ピクチャインデックスを含む動き情報がシグナリングされる。しかしながら、例えば、参照リスト0に関連付けられたMVDのみがシグナリングされ、参照リスト1に関連付けられたMVDはシグナリングされず導出される。具体的には、スライスレベルでは、参照リスト1がビットストリームでシグナリングされていないかどうかを示すために、「mvd_l1_0_flag」と呼ばれるフラグがビットストリームに含まれ得る。このフラグが1であり、参照リスト1が0に等しい(したがって、シグナリングされない)ことを示す場合、「BiDirPredFlag」と呼ばれる双方向予測フラグは0に設定されてもよく、これは双方向予測がないことを意味する。そうではなく、mvd_l1_0_flagが0である場合、リスト0内の最も近い参照ピクチャおよびリスト1内の最も近い参照ピクチャが参照ピクチャの順方向および逆方向のペアまたは参照ピクチャの逆方向および順方向のペアを形成する場合、BiDirPredFlagは1に設定されてもよく、リスト0およびリスト1の参照ピクチャは両方とも短期参照ピクチャである。そうでなければ、BiDirPredFlagは、0に設定される。1のBiDirPredFlagは、対称モードフラグがビットストリームで追加的にシグナリングされることを示すことができる。デコーダは、BiDirPredFlagが1である場合、ビットストリームから対称モードフラグを抽出することができる。対称モードフラグは、例えば、(必要に応じて)CUレベルでシグナリングされ得、対称MVDコーディングモードが対応するCUのために使用されているかどうかを示すことができる。対称モードフラグが1である場合、それは対称MVDコーディングモードの使用を示し、リスト0とリスト1の両方の参照ピクチャインデックス(「mvp_l0_flag」および「mvp_l1_flag」と呼ばれる)のみが、リスト0に関連付けられたMVD(「MVD0」と呼ばれる)によってシグナリングされ、他の動きベクトル差「MVD1」がシグナリングされるのではなく導出されるべきであることを示す。例えば、MVD1は、-MVD0として導出され得る。したがって、例示的な対称MVDモードでは、1つのMVDのみがシグナリングされる。MV予測のためのいくつかの他の例示的な実施態様では、単一参照モードMV予測と複合参照モードMV予測の両方のために、一般的なマージモードMMVD、およびいくつかの他のタイプのMV予測を実装するために、調和方式が使用されてもよい。現在のブロックのMVが予測される方法をシグナリングするために、様々なシンタックス要素が使用され得る。
【0146】
例えば、単一参照モードの場合、以下のMV予測モードがシグナリングされ得る。
【0147】
NEARMV-MVDなしで直接DRL(動的参照リスト)インデックスによって示されるリスト内の動きベクトル予測器(MVP)のうちの1つを使用する。
【0148】
NEWMV-参照としてDRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを使用し、デルタをMVPに適用する(例えば、MVDを使用する)。
【0149】
GLOBALMV-フレームレベルのグローバル動きパラメータに基づいて動きベクトルを使用する。
【0150】
同様に、予測される2つのMVに対応する2つの参照フレームを使用する複合参照インター予測モードの場合、以下のMV予測モードがシグナリングされ得る。
【0151】
NEAR_NEARMV-予測される2つのMVの各々について、MVDなしのDRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを使用する。
【0152】
NEAR_NEWMV-2つの動きベクトルのうちの第1の動きベクトルを予測するために、MVDを用いて参照MVとしてDRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを使用し、2つの動きベクトルのうちの第2の動きベクトルを予測するために、DRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを、追加的にシグナリングされたデルタMV(MVD)と併せて参照MVとして使用する。
【0153】
NEW_NEARMV-2つの動きベクトルのうちの第2の動きベクトルを予測するために、MVDを用いて参照MVとしてDRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを使用し、2つの動きベクトルのうちの第1の動きベクトルを予測するために、DRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを、追加的にシグナリングされたデルタMV(MVD)と併せて参照MVとして使用する。
【0154】
NEW_NEWMV-参照MVとしてDRLインデックスによってシグナリングされたリスト内の動きベクトル予測器(MVP)のうちの1つを使用し、それを追加的にシグナリングされたデルタMVと併せて使用して2つのMVの各々について予測する。
【0155】
GLOBAL_GLOBALMV-フレームレベルのグローバル動きパラメータに基づいて、各参照からのMVを使用する。
【0156】
したがって、上記の「NEAR」という用語は、一般的なマージモードとしてMVDなしの参照MVを使用するMV予測を指すのに対して、「NEW」という用語は、参照MVを使用し、MMVDモードのようにシグナリングされたMVDでそれをオフセットすることを含むMV予測を指す。複合インター予測の場合、参照ベース動きベクトルと上記の動きベクトルデルタの両方は、それらが相関され、そのような相関が2つの動きベクトルデルタをシグナリングするために必要な情報量を削減するために利用され得るとしても、2つの参照間で一般に異なるか独立していてもよい。そのような状況では、2つのMVDの共同シグナリングが実装され、ビットストリームに示され得る。
【0157】
上記の動的参照リスト(DRL)は、動的に維持され、候補動きベクトル予測器と見なされるインデックス付き動きベクトルのセットを保持するために使用され得る。
【0158】
いくつかの例示的な実施態様では、MVDの所定の解像度が許容され得る。例えば、1/8画素の動きベクトル精度(または確度)が許容され得る。様々なMV予測モードで上述したMVDは、様々な方法で構築およびシグナリングすることができる。いくつかの実施態様では、参照フレームリスト0またはリスト1内の上記の動きベクトル差をシグナリングするために、様々なシンタックス要素を使用することができる。
【0159】
例えば、「mv_joint」と呼ばれるシンタックス要素は、それに関連付けられた動きベクトル差のどの成分が非ゼロであるかを指定することができる。MVDの場合、これはすべての非ゼロ成分について共同でシグナリングされる。例えば、mv_jointは、以下の値を有する:
0は、水平方向または垂直方向のいずれかに沿って非ゼロMVDがないことを示すことができ、
1は、水平方向に沿ってのみ非ゼロMVDがあることを示すことができ、
2は、垂直方向に沿ってのみ非ゼロMVDがあることを示すことができ、
3は、水平方向と垂直方向の両方に沿って非ゼロMVDがあることを示すことができる。
【0160】
MVD用の「mv_joint」シンタックス要素が、非ゼロMVD成分がないことをシグナリングする場合、さらなるMVD情報はシグナリングされ得ない。しかしながら、「mv_joint」シンタックスが、1つまたは2つの非ゼロ成分があることをシグナリングする場合、追加のシンタックス要素は、以下で説明するように、非ゼロMVD成分の各々についてさらにシグナリングされ得る。
【0161】
例えば、「mv_sign」と呼ばれるシンタックス要素を使用して、対応する動きベクトル差成分が正または負であるかをさらに指定してもよい。
【0162】
別の例では、「mv_class」と呼ばれるシンタックス要素を使用して、対応する非ゼロMVD成分のクラスの所定のセット間の動きベクトル差のクラスを指定することができる。動きベクトル差の所定のクラスは、例えば、動きベクトル差の連続した大きさ空間を、各範囲がMVDクラスに対応する非重複範囲に分離するために使用され得る。したがって、シグナリングされたMVDクラスは、対応するMVD成分の大きさ範囲を示す。以下の表4に示す例示的な実施態様では、より高いクラスは、より大きな大きさの範囲を有する動きベクトル差に対応する。表4において、シンボル(n,m)は、n画素よりも大きくm画素以下の動きベクトル差の範囲を表すために使用される。
【0163】
【表4】
【0164】
いくつかの他の例では、「mv_bit」と呼ばれるシンタックス要素をさらに使用して、非ゼロ動きベクトル差成分と対応してシグナリングされたMVクラス大きさ範囲の開始の大きさとの間のオフセットの整数部分を指定することができる。したがって、mv_bitは、MVDの大きさまたは振幅を示すことができる。各MVDクラスの全範囲をシグナリングするために「my_bit」に必要なビット数は、MVクラスに応じて変化し得る。例えば、表4の実施態様におけるMV_CLASS 0およびMV_CLASS 1は、0の開始MVDから1または2の整数画素オフセットを示すために単一ビットのみを必要とし得、表4の例示的な実施態様における各より高いMV_CLASSは、前のMV_CLASSよりも「mv_bit」に対して漸進的にもう1ビットを必要とし得る。
【0165】
いくつかの他の例では、「mv_fr」と呼ばれるシンタックス要素は、対応する非ゼロMVD成分の動きベクトル差の最初の2つの小数(fractional)ビットを指定するためにさらに使用されてもよく、「mv_hp」と呼ばれるシンタックス要素は、対応する非ゼロMVD成分の動きベクトル差の第3の小数ビット(高解像度ビット)を指定するために使用されてもよい。2ビットの「mv_fr」は、本質的に1/4画素のMVD解像度を提供するが、「mv_hp」ビットは、1/8画素の解像度をさらに提供することができる。いくつかの他の実施態様では、1/8画素よりも細かいMVD画素解像度を提供するために、2つ以上の「mv_hp」ビットが使用されてもよい。いくつかの例示的な実施態様では、1/8画素以上のMVD解像度がサポートされているかどうかを示すために、様々なレベルのうちの1つまたは複数で追加のフラグがシグナリングされてもよい。MVD解像度が特定のコーディングユニットに適用されない場合、対応するサポートされていないMVD解像度についての上記のシンタックス要素は、シグナリングされない場合がある。
【0166】
上記のいくつかの例示的な実施態様では、小数解像度は、異なるクラスのMVDとは無関係であり得る。言い換えれば、動きベクトル差の大きさに関係なく、非ゼロMVD成分の小数MVDをシグナリングするために、所定の数の「mv_fr」および「mv_hp」ビットを使用して、動きベクトル解像度に対する同様のオプションを提供することができる。
【0167】
しかしながら、いくつかの他の例示的な実施態様では、様々なMVDの大きさクラスにおける動きベクトル差の解像度を区別することができる。具体的には、より高いMVDクラスの大きなMVDの大きさのための高解像度MVDは、圧縮効率の統計的に有意な改善をもたらさない可能性がある。したがって、MVDは、より高いMVDの大きさクラスに対応するより大きなMVDの大きさ範囲に対して、解像度(整数画素解像度または小数画素解像度)を下げてコーディングすることができる。同様に、MVDは、一般により大きなMVD値に対して、解像度(整数画素解像度または小数画素解像度)を下げてコーディングすることができる。そのようなMVDクラス依存性またはMVDの大きさ依存性MVD解像度は、一般に、適応型MVD解像度、大きさ依存性適応型MVD解像度、または大きさ依存性MVD解像度と呼ばれることがある。「解像度」という用語は、「画素解像度」とさらに呼ばれることがある。適応型MVD解像度は、全体的により良好な圧縮効率を達成するために、以下の例示的な実施態様によって説明するように様々な方法で実施され得る。特に、精度の低いMVDを目指すことによるシグナリングビットの数の削減は、大規模または高クラスのMVDのMVD解像度を低規模または低クラスのMVDと同様のレベルで非適応的に処理しても、大規模または高クラスのMVDを有するブロックのインター予測残差コーディング効率を大幅に増加させることができないという統計的観察に起因して、そのような精度の低いMVDの結果としてインター予測残差をコーディングするために必要な追加のビットよりも大きくなり得る。言い換えれば、大規模または高クラスのMVDのためにより高いMVD解像度を使用することは、より低いMVD解像度を使用するよりも多くのコーディング利得をもたらさない可能性がある。
【0168】
いくつかの一般的な例示的な実施態様では、MVDの画素解像度または精度は、MVDクラスの増加に伴って下がってもよいし、増加しなくてもよい。MVDの画素解像度を下げることは、より粗いMVD(または1つのMVDレベルから次のレベルへのより大きなステップ)に対応する。いくつかの実施態様では、MVD画素解像度とMVDクラスとの間の対応関係は、指定、事前定義、または事前構成されてもよく、したがってエンコーディングビットストリームでシグナリングされる必要はない。
【0169】
いくつかの例示的な実施態様では、表3のMVクラスは各々、異なるMVD画素解像度に関連付けられてもよい。
【0170】
いくつかの例示的な実施態様では、各MVDクラスは、単一の許容された解像度に関連付けられてもよい。いくつかの他の実施態様では、1つまたは複数のMVDクラスは、2つ以上の任意選択のMVD画素解像度に関連付けられてもよい。したがって、そのようなMVDクラスを有する現在のMVD成分のビットストリーム内の信号の後に、現在のMVD成分に対して選択された任意選択の画素解像度を示すための追加のシグナリングが続くことができる。
【0171】
いくつかの例示的な実施態様では、適応的に許容されるMVD画素解像度は、(解像度の降順で)1/64pel(画素)、1/32pel、1/16pel、1/8pel、1-4pel、1/2pel、1pel、2pel、4pel…を含むことができるが、これらに限定されない。したがって、昇順MVDクラスの各々は、非昇順でこれらのMVD画素解像度のうちの1つに関連付けられ得る。いくつかの実施態様では、MVDクラスは、上記の2つ以上の解像度に関連付けられてもよく、より高い解像度は、先行するMVDクラスのより低い解像度以下であってもよい。例えば、表4のMV_CLASS_3が任意選択の1pelおよび2pel解像度に関連付けられている場合、表4のMV_CLASS_4が関連付けられ得る最高解像度は、2pelになる。いくつかの他の実施態様では、MVクラスの最高許容解像度は、先行する(より低い)MVクラスの最低許容解像度よりも高くてもよい。しかしながら、昇順MVクラスについて許容される解像度の平均は、非昇順のみであってもよい。
【0172】
いくつかの実施態様では、1/8pelよりも高い小数画素解像度が許容される場合、「mv_fr」および「mv_hp」シグナリングは、合計で3を超える小数ビットに対応して拡張され得る。
【0173】
いくつかの例示的な実施態様では、小数画素解像度は、しきい値MVDクラス以下のMVDクラスに対してのみ許容され得る。例えば、小数画素解像度は、MVD-CLASS 0に対してのみ許容され、表4のすべての他のMVクラスに対しては許容されない場合がある。同様に、小数画素解像度は、表4の他のMVクラスのいずれか1つ以下のMVDクラスに対してのみ許容され得る。しきい値MVDクラスを上回る他のMVDクラスについては、MVDの整数画素解像度のみが許容される。このようにして、「mv-fr」および/または「mv-hp」ビットのうちの1つまたは複数などの小数解像度シグナリングは、しきい値MVDクラス以上のMVDクラスでシグナリングされるMVDに対してシグナリングされる必要はない。1画素未満の解像度を有するMVDクラスの場合、「mv-bit」シグナリングのビット数は、さらに低減され得る。例えば、表4のMV_CLASS_5の場合、MVD画素オフセットの範囲は(32,64]であり、したがって1pel解像度で範囲全体をシグナリングするには5ビットが必要である。しかしながら、MV_CLASS_5が2pel MVD解像度(1画素解像度よりも低い解像度)に関連付けられている場合、「mv-bit」には5ビットではなく4ビットが必要とされ得、「mv-fr」および「mv-hp」のいずれもMV-CLASS_5として「mv_class」のシグナリングに続いてシグナリングされる必要はない。
【0174】
いくつかの例示的な実施態様では、小数画素解像度は、しきい値整数画素値未満の整数値を有するMVDに対してのみ許容されてもよい。例えば、小数画素解像度は、5画素よりも小さいMVDに対してのみ許容され得る。この例に対応して、小数解像度は、表4のMV_CLASS_0およびMV_CLASS_1に対して許可され、すべての他のMVクラスに対しては許容されない場合がある。別の例では、小数画素解像度は、7画素よりも小さいMVDに対してのみ許容され得る。この例に対応して、小数解像度は、表4のMV_CLASS_0およびMV_CLASS_1(5画素未満の範囲を有する)に対して許容され、MV_CLASS_3以上(5画素を超える範囲を有する)に対しては許容されない場合がある。その画素範囲が5画素を包含するMV_CLASS_2に属するMVDの場合、MVDの小数画素解像度は、「mv-bit」値に応じて許容されてもよいし許容されてもよい。「m-bit」値が1または2としてシグナリングされる場合(「m-bit」によって示されるようにオフセット1または2を有するMV_CLASS_2の画素範囲の開始として計算される、シグナリングされたMVDの整数部分が5または6であるように)、小数画素解像度が許容され得る。そうではなく、「mv-bit」値が3または4としてシグナリングされる場合(シグナリングされたMVDの整数部分が7または8であるように)、小数画素解像度は許容されない場合がある。
【0175】
いくつかの他の実施態様では、しきい値MVクラス以上のMVクラスについては、単一のMVD値のみが許容され得る。例えば、そのようなしきい値MVクラスは、MV_CLASS 2であってもよい。したがって、MV_CLASS_2以上は、単一のMVD値を有し、小数画素解像度を有さないことのみが許容され得る。これらのMVクラスの単一の許容MVD値は、予め定義されてもよい。いくつかの例では、許容される単一の値は、表4のこれらのMVクラスのそれぞれの範囲の上限値であってもよい。例えば、MV_CLASS_2~MV_CLASS_10は、MV_CLASS 2のしきい値クラス以上であってもよく、これらのクラスの単一の許容MVD値は、それぞれ8、16、32、64、128、256、512、1024、および2048として予め定義されてもよい。いくつかの他の例では、許容される単一の値は、表4のこれらのMVクラスのそれぞれの範囲の中央値であってもよい。例えば、MV_CLASS_2~MV_CLASS_10は、クラスしきい値を上回ってもよく、これらのクラスの単一の許容MVD値は、それぞれ3、6、12、24、48、96、192、384、768、および1536として予め定義されてもよい。範囲内の任意の他の値もまた、それぞれのMVDクラスの単一の許容解像度として定義することができる。
【0176】
上記の実施態様では、シグナリングされた「mv_class」が所定のMVDクラスしきい値以上である場合、「mv_class」シグナリングのみがMVD値を判定するのに十分である。次にMVDの大きさおよび方向は、「mv_class」および「mv_sign」を使用して判定される。
【0177】
したがって、MVDがただ1つの参照フレーム(参照フレームリスト0またはリスト1からのいずれかであるが、両方ではない)についてシグナリングされるか、または2つの参照フレームについて共同でシグナリングされる場合、MVDの精度(または解像度)は、表3の関連する動きベクトル差のクラスおよび/またはMVDの大きさに依存し得る。
【0178】
いくつかの他の実施態様では、MVDの画素解像度または精度は、MVDの大きさの増加に伴って下がってもよいし、増加しなくてもよい。例えば、画素解像度は、MVDの大きさの整数部分に依存し得る。いくつかの実施態様では、小数画素解像度は、振幅しきい値以下のMVDの大きさに対してのみ許容され得る。デコーダの場合、MVDの大きさの整数部分は、最初にビットストリームから抽出され得る。次いで、画素解像度を判定することができ、次に任意の小数MVDがビットストリームに存在し、解析される必要があるかどうかに関して判定を行うことができる(例えば、部分画素解像度が特定の抽出されたMVDの整数の大きさに対して許容されない場合、抽出を必要とするビットストリームには小数MVDビットが含まれなくてもよい)。MVDクラス依存性適応型MVD画素解像度に関する上記の例示的な実施態様は、MVDの大きさ依存性適応型MVD画素解像度に適用される。特定の例では、大きさのしきい値を上回るまたは包含するMVDクラスは、ただ1つの所定の値を有することが許容され得る。
【0179】
いくつかの実施態様では、MVDは、主に1つまたは複数の特定の方向に沿って分布することができ、すなわち、MVDは、1つまたは複数の特定の方向、例えば水平方向および/または垂直方向に沿っている可能性が高い。この統計的特性は、例えば、コーディング/デコーディング効率を改善し、インターコーディングされたモード構造を強化するために、MVDに制限を課すことによって利用することができる。非限定的な例として、1つまたは複数の特定の方向が水平方向および/または垂直方向を含む場合、MVDは水平方向および/または垂直方向に沿って制限されてもよい。
【0180】
図18は、動きベクトル差(MVD)を制限するための上記の実施態様の根底にある原理に従う例示的な方法のフローチャート1800を示す。例示的なデコーディング方法フローは1801で開始し、S1810では、コーディングされたビデオビットストリームを受信するステップ、S1820では、コーディングされたビデオビットストリームから、現在のビデオブロックの動きベクトル差(MVD)を取得するステップであって、現在のビデオブロックが複合参照モードにおけるインターコーディング済ブロックである、ステップ、S1830では、MVDがただ1つの予測方向についてのみシグナリングされるかどうかを判定するステップ、S1840では、MVDがただ1つの予測方向についてのみシグナリングされるとの判定に応答して、MVDを所定の方向に制限するステップ、および/またはS1850では、MVDに基づいて現在のビデオブロックをデコーディングするステップ、のうちの一部または全部を含むことができる。例示的な方法は、S1899で停止することができる。いくつかの実施態様では、現在のビデオブロックが複合参照モードのインターコーディング済ブロックであるとき、現在のビデオブロックは双方向インター予測を介する。
【0181】
いくつかの実施態様では、現在のフレームに対する参照フレームの方向は、参照フレームが表示順序において現在のフレームの前にあるかどうか、または参照フレームが表示順序において現在のフレームの後にあるかどうかによって判定され得る。
【0182】
いくつかの実施態様では、2つの参照フレームを複合参照モードで使用することができる。1つの動きベクトルペアに対する両方の参照フレームのPOCが現在のフレームのPOCよりも大きいかまたは小さい場合、2つの参照フレームの方向は同じであると見なされ得る。そうではなく、一方の参照フレームのPOCが現在のフレームのPOCよりも大きく、他方の参照フレームのPOCが現在のフレームのPOCよりも小さい場合、2つの参照フレームの方向は異なると見なされ得る。
【0183】
いくつかの実施態様では、現在のビデオブロック(または現在のフレーム)に対してただ1つのMVDがシグナリングされてもよく、これは、以下の状況、すなわち、MVDが複合参照モードにおいてただ1つの参照フレームについてコーディングされたビデオビットストリームでシグナリングされる状況、および/または、MVDが複合参照モードにおいて2つの参照フレームについて共同でシグナリングされる状況、のうちの少なくとも1つを含んでもよい。上記の状況のいくつかでは、第1の参照フレームリスト(すなわち、参照フレームリスト0)または第2の参照フレームリスト(すなわち、参照フレームリスト1)のためにシグナリングされるMVDは、1つまたは複数の所定の方向(例えば、水平方向および/または垂直方向)に制限され得る。
【0184】
非限定的な例として、MVDがただ1つの予測方向についてシグナリングされる場合(例えば、MVDは、参照フレームリスト0またはリスト1のためにシグナルされるが、両方ではなく、または、2つの参照フレームリストのために共同でシグナルされる)、参照フレームリスト0(またはリスト1)のMVDは、ある所定の方向に制限され得る。
【0185】
いくつかの実施態様では、現在のビデオブロックは、NEW_NEARMVモードまたはNEAR_NEWMVモードのうちの少なくとも1つを含む複合参照モードにある。いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードまたはNEAR_NEWMVモードのうちの少なくとも1つを含む複合参照モードにあるときにのみ、MVDは1つまたは複数の所定の方向に制限される。いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードまたはNEAR_NEWMVモードではない場合、MVDは1つまたは複数の特定の所定の方向に制限されない。
【0186】
非限定的な例では、MVDの特定の所定の方向への制限は、NEW_NEARMVおよび/またはNEAR_NEWMVモードにのみ適用される。
【0187】
いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードまたはNEAR_NEWMVモードにあることに応答して、所定の方向は、水平方向または垂直方向のうちの少なくとも1つを含む。
【0188】
非限定的な例として、NEW_NEARMV(またはNEAR_NEWMV)モードの場合、参照フレームリスト0(またはリスト1)のMVDは、水平方向および/または垂直方向に制限され得る。
【0189】
いくつかの実施態様では、図18の方法は、コーディングされたビデオビットストリームから、水平方向および垂直方向が非ゼロMVDを有するかどうかを示すフラグを取得するステップをさらに含むことができる。いくつかの実施態様では、フラグはシンタックスまたはシンタックス要素を指すことができる。非限定的な例として、参照フレームリスト0(またはリスト1)におけるNEW_NEARMV(またはNEAR_NEWMV)モードのためのMVDをシグナリングするために、水平方向または垂直方向に沿って非ゼロMVDが存在するか否かを示すために、1つのフラグ(例えば、mvd_direction_flag)がシグナリングされる。
【0190】
いくつかの実施態様では、フラグの値は、水平方向および垂直方向のいずれも非ゼロMVDを有さないことを示す第1のフラグ値か、水平方向および垂直方向の一方のみが非ゼロMVDを有することを示す第2のフラグ値か、または水平方向および垂直方向の他方のみが非ゼロMVDを有することを示す第3のフラグ値、のうちの1つのみを含む。
【0191】
いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードにあることに応答して、フラグが第2のフラグ値MVDと等しいことに応答して、MVDは、第1の参照フレームリスト内の参照フレームの垂直方向に対応し、フラグが第3のフラグ値MVDと等しいことに応答して、MVDは、第1の参照フレームリスト内の参照フレームの水平方向に対応し、現在のビデオブロックがNEAR_NEWMVモードにあることに応答して、フラグが第2のフラグ値MVDと等しいことに応答して、MVDは、第2の参照フレームリスト内の参照フレームの水平方向に対応し、フラグが第3のフラグ値MVDと等しいことに応答して、MVDは、第2の参照フレームリスト内の参照フレームの垂直方向に対応する。
【0192】
非限定的な例では、フラグ(例えば、mvd_direction_flag)の値は0、1、または2のみとすることができ、0は垂直方向または水平方向に沿って非ゼロMVDがないことを示し、1は垂直(または水平)方向に沿ってのみ非ゼロMVDがあることを示し、2は水平(または垂直)方向に沿ってのみ非ゼロMVDがあることを示す。
【0193】
いくつかの実施態様では、フラグの値は、以下のうちの1つのみを含む。水平方向および垂直方向のうちの1つのみが非ゼロMVDを有することを示す第1のフラグ値、または、水平方向および垂直方向の他方のみが非ゼロMVDを有することを示す第2のフラグ値。
【0194】
いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードにあることに応答して、フラグが第1のフラグ値MVDと等しいことに応答して、MVDは、第1の参照フレームリスト内の参照フレームの垂直方向に対応し、フラグが第2のフラグ値MVDと等しいことに応答して、MVDは、第1の参照フレームリスト内の参照フレームの水平方向に対応し、現在のビデオブロックがNEAR_NEWMVモードにあることに応答して、フラグが第1のフラグ値MVDと等しいことに応答して、MVDは、第2の参照フレームリスト内の参照フレームの水平方向に対応し、フラグが第2のフラグ値MVDと等しいことに応答して、MVDは、第2の参照フレームリスト内の参照フレームの垂直方向に対応する。
【0195】
非限定的な例では、フラグ(例えば、mvd_direction_flag)の値は0または1のみとすることができ、0は垂直(または水平)方向にのみ非ゼロMVDがあることを示し、1は水平(または垂直)方向にのみ非ゼロMVDがあることを示す。
【0196】
いくつかの実施態様では、フラグは、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、アダプテーションパラメータセット(APS)、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、タイルヘッダ、またはコーディングツリーユニット(CTU)ヘッダのうちの少なくとも1つを含む高レベルシンタックスでシグナリングされる。非限定的な例では、非ゼロMVDが水平方向または垂直方向に沿っているかどうかを示すフラグは、VPS、PPS、SPS、APS、フレームヘッダ、またはスライスヘッダを含むがこれらに限定されない高レベルシンタックスでシグナリングされる。
【0197】
いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードまたはNEAR_NEWMVモードにあることに応答して、所定の方向は1つの方向のみを含む。非限定的な例として、NEW_NEARMV(またはNEAR_NEWMV)モードの場合、参照フレームリスト0(またはリスト1)のMVDは、水平方向または垂直方向のいずれかの一方向のみに制限されてもよい。
【0198】
いくつかの実施態様では、方法1800は、現在のビデオブロックのモードに基づいて、水平方向および垂直方向が非ゼロMVDを有するかどうかを判定するステップをさらに含むことができる。
【0199】
いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードにあることに応答して、MVDは、第1の参照フレームリスト内の参照フレームの水平方向に対応し、および/または現在のビデオブロックがNEAR_NEWMVモードにあることに応答して、MVDは、第2の参照フレームリスト内の参照フレームの垂直方向に対応する。
【0200】
いくつかの実施態様では、現在のビデオブロックがNEW_NEARMVモードにあることに応答して、MVDは、第1の参照フレームリスト内の参照フレームの垂直方向に対応し、および/または現在のビデオブロックがNEAR_NEWMVモードにあることに応答して、MVDは、第2の参照フレームリスト内の参照フレームの水平方向に対応する。
【0201】
非限定的な例として、水平方向または垂直方向に沿って非ゼロMVDがあるかどうかを示すフラグは、インター予測モードに基づいて推測され、例えば、水平(または垂直)としてのMVD方向は、インター予測モードに基づいて所定の(またはデフォルトの)構成であってもよい。非限定的な例として、MVD方向は、NEW_NEARMVモードの水平(または垂直)方向として推測(またはデフォルト設定)されてもよいし、および/またはMVD方向は、NEAR_NEWMVモードの垂直(または水平)方向として推測される(またはデフォルト設定される)。
【0202】
本開示の実施形態および実施態様では、所望により、任意のステップおよび/または動作は、任意の量または順序で組み合わされるか、または配置されてもよい。ステップおよび/または動作のうちの2つ以上が、並列に実施されてもよい。本開示の実施形態および実施態様は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態は、輝度ブロックまたは彩度ブロックに適用されてもよい。ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCUとして解釈されてもよい。ここでのブロックという用語はまた、変換ブロックを指すために使用されてもよい。以下の項目では、ブロックサイズと言うとき、それは、ブロックの幅もしくは高さ、または幅および高さの最大値、または幅および高さの最小値、またはエリアのサイズ(幅*高さ)、またはブロックのアスペクト比(幅:高さ、もしくは高さ:幅)のいずれかを指すことができる。
【0203】
上述された技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、図19は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
【0204】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンクなどのメカニズムを受けることができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して、実行され得る命令を含むコードを作成することができる。
【0205】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行することができる。
【0206】
コンピュータシステム(1900)に関して図19に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示す構成要素のいずれか1つまたは組み合わせに関するいかなる依存関係または要件も有すると解釈されるべきでない。
【0207】
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きなどの)触覚入力、(音声、拍手などの)オーディオ入力、(ジェスチャなどの)視覚入力、(描写されていない)嗅覚入力を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0208】
入力ヒューマンインターフェースデバイスには、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロフォン(1906)、スキャナ(1907)、カメラ(1908)のうちの1つまたは複数が含まれてもよい(各々の1つのみが描写されている)。
【0209】
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、またはジョイスティック(1905)による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、(スピーカ(1909)、ヘッドフォン(描写せず)などの)オーディオ出力デバイス、(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1910)など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(描写せず)、ホログラフィックディスプレイおよびスモークタンク(描写せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)視覚出力デバイス、ならびにプリンタ(描写せず)が含まれてもよい。
【0210】
コンピュータシステム(1900)は、CD/DVDまたは同様の媒体(1921)を有するCD/DVD ROM/RW(1920)を含む光学媒体、サムドライブ(1922)、リムーバブルハードドライブまたはソリッドステートドライブ(1923)、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)などの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含むこともできる。
【0211】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0212】
コンピュータシステム(1900)は、1つまたは複数の通信ネットワーク(1955)へのインターフェース(1954)を含むこともできる。ネットワークは、例えば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および地上波放送テレビを含むテレビ有線または無線ワイドエリアデジタルネットワーク、CAN busを含む車両用および産業用などが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(1900)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1949)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下で説明するようなシステムバスに取り付けることによってコンピュータシステム(1900)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は、他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0213】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に取り付けることができる。
【0214】
コア(1940)は、1つまたは複数の中央処理装置(CPU)(1941)、グラフィックス処理装置(GPU)(1942)、フィールドプログラマブルゲートエリア(FPGA)(1943)、特定のタスク用のハードウェアアクセラレータ(1944)、グラフィックスアダプタ(1950)などの形態の特殊なプログラマブル処理装置を含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1945)、ランダムアクセスメモリ(1946)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1947)と共に、システムバス(1948)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(1948)に直接取り付けることも、周辺バス(1949)を介して取り付けることもできる。一例では、スクリーン(1910)は、グラフィックスアダプタ(1950)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0215】
CPU(1941)、GPU(1942)、FPGA(1943)、およびアクセラレータ(1944)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1945)またはRAM(1946)に記憶することができる。移行データもRAM(1946)に記憶することができるが、永続データは、例えば、内部大容量ストレージ(1947)に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および検索は、1つまたは複数のCPU(1941)、GPU(1942)、大容量ストレージ(1947)、ROM(1945)、RAM(1946)などと密接に関連付けることができるキャッシュメモリを使用して可能にすることができる。
【0216】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0217】
非限定的な例として、アーキテクチャを有するコンピュータシステム(1900)、具体的にはコア(1940)は、(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果としての機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(1947)またはROM(1945)などの非一時的な性質のコア(1940)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1940)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1940)、具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(1946)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1944))にハードワイヤードまたは他の方法で具現化された論理の結果としての機能を提供することができ、これは、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに、またはソフトウェアと共に動作し得る。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0218】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替的な均等物が存在する。よって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化する、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足強化情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:グローバル移動体通信システム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺機器相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
HDR:ハイダイナミックレンジ
SDR:標準ダイナミックレンジ
JVET:共同ビデオ探索チーム
MPM:最確モード
WAIP:広角イントラ予測
CU:コーディングユニット
PU:予測ユニット
TU:変換ユニット
CTU:コーディングツリーユニット
PDPC:位置依存予測組み合わせ
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
PPS:ピクチャパラメータセット
APS:適応パラメータセット
VPS:ビデオパラメータセット
DPS:デコーディングパラメータセット
ALF:適応型ループフィルタ
SAO:サンプル適応型オフセット
CC-ALF:交差成分適応型ループフィルタ
CDEF:制約付き指向性強化フィルタ
CCSO:交差成分サンプルオフセット
LSO:ローカルサンプルオフセット
LR:ループ復元フィルタ
AV1:AOMediaビデオ1
AV2:AOMediaビデオ2
MVD:動きベクトル差
CfL:輝度からの彩度
SDT:半分離ツリー
SDP:半分離分割
SST:半分離ツリー
SB:スーパーブロック
IBC(またはIntraBC):イントラブロックコピー
CDF:累積密度関数
SCC:スクリーンコンテンツコーディング
GBI:一般化双予測
BCW:CUレベル重みによる双予測
CIIP:結合されたイントラ-インター予測
POC:ピクチャ順序カウント
RPS:参照ピクチャセット
DPB:デコーディングされたピクチャバッファ
MMVD:動きベクトル差を伴うマージモード
MV:動きベクトル
MVP:動きベクトル予測器
【符号の説明】
【0219】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
201 現在のブロック
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ストリーム
403 ビデオエンコーダ
404 エンコーディングされたビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 エンコーディングされたビデオデータのコピー
408 クライアントサブシステム
409 エンコーディングされたビデオデータのコピー
410 ビデオデコーダ
411 出力ストリーム
412 ディスプレイ
413 ビデオキャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス/ディスプレイ
515 バッファメモリ
520 エントロピーデコーダ/パーサ
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在のピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 ローカルビデオデコーダ
634 参照ピクチャメモリ
635 予測器
640 送信機
643 コーディングされたビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構築モジュール
880 インターデコーダ
1002 T型パーティション/T型パターン
1004 T型パーティション/T型パターン
1006 T型パーティション/T型パターン
1008 T型パーティション/T型パターン
1102 垂直二分割
1104 水平二分割
1106 垂直三分割
1108 水平三分割
1200 ベースブロック
1202 正方形パーティション
1204 正方形パーティション
1206 正方形パーティション
1208 正方形パーティション
1602 インターコーディングされたブロック
1800 フローチャート
1900 コンピュータシステム
1901 キーボード
1902 マウス
1903 トラックパッド
1905 ジョイスティック
1906 マイクロフォン
1907 スキャナ
1908 カメラ
1909 スピーカ
1910 タッチスクリーン
1921 媒体
1922 サムドライブ
1923 ソリッドステートドライブ
1940 コア
1941 中央処理装置(CPU)
1942 グラフィックス処理装置(GPU)
1943 フィールドプログラマブルゲートエリアFPGA
1944 ハードウェアアクセラレータ
1945 読取り専用メモリ(ROM)
1946 ランダムアクセスメモリ(RAM)
1947 内部大容量ストレージ
1948 システムバス
1949 周辺バス
1950 グラフィックスアダプタ
1954 インターフェース
1955 通信ネットワーク
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【国際調査報告】