(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-05-10
(54)【発明の名称】ビデオコーディングのための方法および装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20220427BHJP
H04N 19/593 20140101ALI20220427BHJP
【FI】
H04N19/70
H04N19/593
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021553844
(86)(22)【出願日】2020-03-17
(85)【翻訳文提出日】2021-09-30
(86)【国際出願番号】 US2020023100
(87)【国際公開番号】W WO2020190916
(87)【国際公開日】2020-09-24
(32)【優先日】2019-03-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK61
5C159MA04
5C159RC11
5C159TA31
5C159TC02
5C159TC42
5C159UA02
5C159UA05
(57)【要約】
ビデオデコーダが実行するビデオデコードの方法を提供する。この方法では、コード化されたビデオビットストリームから、現在ブロックの隣接ブロックのコード化された情報を受信する。前記コード化された情報は前記隣接ブロックのイントラ予測情報を含む。前記隣接ブロックのコード化された情報に基づいて、前記現在ブロックのイントラ予測情報を決定する。前記現在ブロックのイントラ予測情報に基づいてイントラ予測方向モードを決定する。前記現在ブロックのイントラ予測方向モードに従って、前記現在ブロックの少なくとも1つのサンプルを再構築する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ビデオデコーダが実行する、ビデオデコードの方法であって、
コード化されたビデオビットストリームから、現在ブロックの隣接ブロックのコード化された情報を受信するステップであって、前記コード化された情報が前記隣接ブロックのイントラ予測情報を含む、ステップと、
前記隣接ブロックのコード化された情報に基づいて、前記現在ブロックのイントラ予測情報を決定するステップと、
前記現在ブロックのイントラ予測情報に基づいて、イントラ予測方向モードを決定するステップと、
前記現在ブロックのイントラ予測方向モードに従って、前記現在ブロックの少なくとも1つのサンプルを再構築するステップと、を含む方法。
【請求項2】
前記現在ブロックのイントラ予測情報を決定するステップは、
前記コード化された情報に基づいて、コンテキストモデルのセットからコンテキストモデルを決定するステップと、
前記決定されたコンテキストモデルに従って、前記現在ブロックの隣接ブロックのコード化された情報に基づいて、前記現在ブロックのイントラ予測情報を決定するステップと、を含む、請求項1に記載の方法。
【請求項3】
前記コード化された情報は、最確モード(MPM)フラグ、参照ラインインデックス、イントラサブパーティション(IPS)フラグ、イントラ予測モード、およびMPMインデックスのうちの少なくとも1つを含む、請求項2に記載の方法。
【請求項4】
前記現在ブロックのイントラ予測情報は、前記MPMフラグ、MPMリストのサイズ、および前記MPMインデックスのうちの少なくとも1つを含む、請求項3に記載の方法。
【請求項5】
前記コード化された情報に基づいて、複数のコンテキストモデルから前記コンテキストモデルを決定するステップは、
前記コンテキストモデルを、前記隣接ブロックの非角度モード数、前記隣接ブロックの角度モード数、前記隣接ブロックの最確モード(MPM)フラグ、前記隣接ブロックのMPMインデックス、および前記隣接ブロックのイントラサブパーティション(ISP)フラグのうちの少なくとも1つに基づいて決定するステップを含む、請求項2に記載の方法。
【請求項6】
前記隣接ブロックのイントラ予測モードが非角度モードである場合、前記現在ブロックのMPMリストのサイズは第1の整数であり、前記隣接ブロックのイントラ予測モードの1つが角度モードである場合、前記現在ブロックのMPMリストのサイズは第2の整数であり、前記第1の整数が前記第2の整数よりも小さい、請求項4に記載の方法。
【請求項7】
前記隣接ブロックのイントラ予測モードが非角度モードである場合、前記現在ブロックのMPMリストのサイズは第1の整数であり、前記隣接ブロックのイントラ予測モードの1つが非角度モードである場合、前記現在ブロックのMPMリストのサイズは第2の整数であり、前記隣接ブロックのイントラ予測モードがいずれも角度モードである場合、前記現在ブロックのMPMリストのサイズは第3の整数であり、前記第1の整数が前記第2の整数よりも小さく、前記第2の整数が前記第3の整数よりも小さい、請求項4に記載の方法。
【請求項8】
ビデオデコーダが実行する、ビデオデコードの方法であって、
コード化されたビデオビットストリームから、現在ブロックおよび前記現在ブロックの隣接ブロックのコード化された情報を受信するステップであって、前記コード化された情報が前記現在ブロックおよび前記隣接ブロックのイントラ予測情報を含む、ステップと、
前記コード化された情報内の現在ブロックに関連付けられた第1の情報をデコードするステップであって、前記第1の情報は、前記現在ブロックの輝度サンプルのイントラ予測モードが選択されたイントラ予測モードに属するか否かを示すものである、ステップと、
前記第1の情報は前記現在ブロックの輝度サンプルのイントラ予測モードが前記選択されたイントラ予測モードに属することを示すものであることに対応して、前記コード化された情報内の現在ブロックに関連付けられた第2の情報をデコードするステップであって、前記第2の情報は、前記現在ブロックの輝度サンプルの最確モード(MPM)が角度モードおよび非角度モードのいずれかを示すものである、ステップと、
前記コード化された情報内の現在ブロックに関連付けられた第3の情報をデコードするステップであって、前記第2の情報は前記現在ブロックの輝度サンプルのMPMが前記角度モードであることを示すものであることに対応して、前記第3の情報が前記現在ブロックの輝度サンプルのMPMインデックスを示すものである、ステップと、
前記コード化された情報内の現在ブロックに関連付けられた第4の情報をデコードするステップであって、前記第2の情報は前記現在ブロックの輝度サンプルのMPMが前記非角度モードであることを示すものであることに対応して、前記第4の情報が前記現在ブロックのMPMが平面モードおよびDCモードのいずれかを示すものである、ステップと、を含む方法。
【請求項9】
前記現在ブロックに関連付けられた第2の情報をエントロピーコード化するために使用されるコンテキストモデルが、前記隣接ブロックに関連付けられた第1の情報または前記隣接ブロックに関連付けられた第2の情報に基づいて決定される、請求項8に記載の方法。
【請求項10】
前記現在ブロックに関連付けられた第3の情報は、固定長コーディングを使用してコード化される、請求項8又は9に記載の方法。
【請求項11】
処理回路を含むビデオデコードのための装置であって、
前記処理回路は、請求項1から10のいずれかの一項に記載の方法を実行する、装置。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は、2019年3月17日に提出された、出願番号が62/819652であり、発明の名称が「IMPROVED INTRA MODE CODING SCHEME」である米国仮出願に対して優先権を主張する、2020年3月12日に提出された、出願番号が16/817131であり、発明の名称が「METHOD AND APPARATUS FOR VIDEO CODING」である米国特許出願に対して優先権を主張する。これらの出願の全ての内容は、参照により本願に組み込むものとする。
【0002】
本開示は、一般的にビデオコーディングに関する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される「背景技術」の説明は、本開示の背景を大まかに示すことを目的とする。ここに名を挙げられている発明者の業績は、この背景技術に記載された範囲において、出願時に従来技術として通常見なされえない記載の態様と共に、明示的にも黙示的にも本開示に対する従来技術として認められない。
【0004】
ビデオコーディングおよびデコードは、動き補償を伴うインターピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080輝度サンプルと関連する彩度サンプルの空間寸法を持っている。該一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式には「フレームレート」とも呼ばれる)を持つことができる。非圧縮ビデオには、顕著なビットレート要件がある。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080輝度サンプル解像度)には、1.5Gbit/sに近い帯域幅が必要となる。このようなビデオを1時間使用するには、600GBytesを超えた記憶空間が必要である。
【0005】
ビデオコーディングおよびデコードの1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことであり得る。圧縮は、前述の帯域幅または記憶空間の要件を、場合によっては2桁以上削減するのに役立つ。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる技法を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号の間の歪みは、再構築された信号を意図されたアプリケーションに役立てる程度に小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ発行アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコーディングを含むいくつかの幅広いカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含み得る。イントラコーディングでは、サンプル値は、予め再構築された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードでコード化されると、そのピクチャはイントラピクチャになる可能性がある。イントラピクチャと、独立したデコーダリフレッシュピクチャなどのその派生物とは、デコーダの状態をリセットするために使用できるため、コード化されたビデオビットストリームとビデオセッションの最初のピクチャとして、または静止画像として使用されることができる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピーコーディングの前に量子化されることができる。イントラ予測は、事前変換領域でサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所定の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG-2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコード順の先に位置するデータのブロックのエンコード/デコード中に得られた周囲のサンプルデータおよび/またはメタデータからイントラ予測を試みる技法を含む。そのような技法は、以降、「イントラ予測」技法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構築中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データを使用しないことに注意されたい。
【0009】
イントラ予測はさまざまな形態で存在し得る。そのような技法の2つ以上が所定のビデオコーディング技術に使用できる場合、使用中の技法はイントラ予測モードでコード化されることができる。場合によっては、モードはサブモードやパラメータを有することができ、それらを個別にコード化するか、もしくはモードコードワードに含めることができる。どのコードワードが所定のモード/サブモード/パラメータの組み合わせに使用されるかは、イントラ予測によるコーディング効率ゲインに影響を与える可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードはH.264で提出され、H.265で改良され、さらに共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術で改良された。予測子ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成されることができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコード化されるか、もしくはそれ自体を予測され得る。
【0011】
図1を参照し、右下に示されたのは、H.265の33通りの予測可能な方向(35個のイントラ予測モードのうちの33個の角度モードに対応)から知られる9通りの予測方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、水平軸から45度の角度での右上の1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平軸から22.5度の角度での、サンプル(101)の左下の1つまたは複数のサンプルから予測されることを示す。
【0012】
引き続き
図1を参照し、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示される)が示されている。正方形ブロック(104)は、それぞれが、「S」、Y次元におけるその位置(例えば、行インデックス)、およびX次元におけるその位置(例えば、列インデックス)でラベル付けされた16サンプルを含む。例えば、サンプルS21は、Y次元(上から)における2番目のサンプルかつX次元(左から)における1番目のサンプルである。同様に、サンプルS44は、YおよびX次元の両方においてブロック(104)における4番目のサンプルである。ブロックがサイズで4×4サンプルなので、S44は、右下にある。さらに、同様な番号付け体系に従う参照サンプルが示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方で、予測サンプルは再構築中のブロックに隣接している。したがって、負の値を使用する必要がない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向で適切の隣接するサンプルから参照サンプル値をコピーすることで機能することができる。例えば、仮に、コード化されたビデオビットストリームは、このブロックについて矢印(102)と一致する予測方向(すなわち、サンプルが、水平から45度の角度での右上の1つまたは複数の予測サンプルから予測される)を示すシグナリングを含むとする。この場合、サンプルS41、S32、S23、およびS14は同一の参照サンプルR05から予測される。サンプルS44は、参照サンプルR08から予測される。
【0014】
特定の場合において、複数の参照サンプルの値は、参照サンプルを算出するために、特に方向が45度で均等に分割されていない場合に、例えば補間によって組み合わせられることができる。
【0015】
ビデオコーディング技術が発展するにつれて、可能な方向の数は増加した。H.264(2003年)では、9通りの異なる方向を表すことができた。H.265(2013年)で33通りに増加し、JEM/VVC/BMSは開示時に最大65通りの方向をサポートできる。最も見込みのある方向を識別するための実験が行われ、エントロピーコーディングにおける特定の技法は、数が少ないビットで見込みの高い方向を表すために使用され、見込みの低い方向に対する特定のペナルティを容認する。さらに、方向自体は、隣接する、すでにデコードされたブロックで使用される隣接方向から予測される場合がある。
【0016】
図2は、経時的な予測方向の増加数を示すために、JEMによる65通りのイントラ予測方向を示す概略図(201)を示す。
【0017】
方向を表すコード化されたビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性があり、また、例えば、イントラ予測モードへ乃至コードワードへの予測方向の単純な直接マッピングから、最も可能性の高いモードや類似した技法を含む複雑な適応方式までの範囲とすることができる。しかしながら、すべての場合において、他の特定の方向よりも統計的にビデオコンテンツにおいて発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の削減であるため、適切に機能するビデオコーディング技術では、これらの可能性の低い方向は、可能性の高い方向よりも多くのビット数で表される。
【発明の概要】
【0018】
本開示の態様は、ビデオエンコード/デコードのための方法および装置を提供する。一部の例では、ビデオデコードのための装置は、受信回路および処理回路を含む。
【0019】
本開示の一態様によれば、コード化されたビデオビットストリームから、現在ブロックの隣接ブロックのコード化された情報を受信し、前記コード化された情報が前記隣接ブロックのイントラ予測情報を含む。前記隣接ブロックのコード化された情報に基づいて、前記現在ブロックのイントラ予測情報を決定する。前記現在ブロックのイントラ予測情報に基づいてイントラ予測方向モードを決定する。また、前記現在ブロックのイントラ予測方向モードに従って、前記現在ブロックの少なくとも1つのサンプルを再構築する。
【0020】
一部の実施形態では、前記コード化された情報に基づいて、コンテキストモデルのセットからコンテキストモデルを決定する。前記決定されたコンテキストモデルに従って、前記現在ブロックの隣接ブロックのコード化された情報に基づいて、前記現在ブロックのイントラ予測情報を決定する。
【0021】
一部の実施形態では、前記コード化された情報は、MPMフラグ、参照ラインインデックス、イントラサブパーティション(IPS)フラグ、イントラ予測モード、またはMPMインデックスを含むことができる。
【0022】
一部の実施形態では、前記現在ブロックのイントラ予測情報は、最確モード(MPM)フラグ、MPMリストのサイズ、またはMPMインデックスを含むことができる。
【0023】
一部の実施形態では、前記コンテキストモデルを、前記隣接ブロックの非角度モード数、前記隣接ブロックの角度モード数、前記隣接ブロックのMPMフラグ、前記隣接ブロックのMPMインデックス、および前記隣接ブロックのISPフラグのうちの少なくとも1つに基づいて決定することができる。
【0024】
前記隣接ブロックのイントラ予測モードが非角度モードである場合、前記現在ブロックのMPMリストのサイズは第1の整数であってもよい。前記隣接ブロックのイントラ予測モードの1つが角度モードである場合、前記現在ブロックのMPMリストのサイズは第2の整数であってもよい。前記第1の整数が前記第2の整数よりも小さくなってもよい。
【0025】
また、前記隣接ブロックのイントラ予測モードが非角度モードである場合、前記現在ブロックのMPMリストのサイズは第1の整数であってもよい。前記隣接ブロックのイントラ予測モードの1つが非角度モードである場合、前記現在ブロックのMPMリストのサイズは第2の整数であってもよい。前記隣接ブロックのイントラ予測モードがいずれも角度モードである場合、前記現在ブロックのMPMリストのサイズは第3の整数であってもよい。前記第1の整数が前記第2の整数よりも小さくなり、前記第2の整数が前記第3の整数よりも小さくなってもよい。
【0026】
本開示の一態様によれば、ビデオデコーダによって実行されるビデオデコードの方法を提供する。この方法では、コード化されたビデオビットストリームから、現在ブロックおよび前記現在ブロックの隣接ブロックのコード化された情報を受信し、前記コード化された情報が前記現在ブロックおよび前記隣接ブロックのイントラ予測情報を含む。また、前記コード化された情報内の現在ブロックに関連付けられた第1の情報をデコードし、前記第1の情報が、前記現在ブロックの輝度サンプルのイントラ予測モードが選択されたイントラ予測モードに属するか否かを示すものである。また、前記第1の情報は前記現在ブロックの輝度サンプルのイントラ予測モードが前記選択されたイントラ予測モードに属することを示すものであることに対応して、前記コード化された情報内の現在ブロックに関連付けられた第2の情報をデコードする。前記第2の情報は、前記現在ブロックの輝度サンプルの最確モード(MPM)が角度モードであるか、または非角度モードであるかを示すものである。
【0027】
さらに、前記コード化された情報内の現在ブロックに関連付けられた第3の情報がデコードされている。前記第2の情報は前記現在ブロックの輝度サンプルのMPMが前記角度モードであることを示すものであることに対応して、前記第3の情報が前記現在ブロックの輝度サンプルのMPMインデックスを示すものである。前記コード化された情報内の現在ブロックに関連付けられた第4の情報がデコードされている。前記第4の情報は、前記現在ブロックの輝度サンプルのMPMが前記非角度モードであることを示す、前記現在ブロックに関連付けられた第2の情報に対応する、前記現在ブロックのMPMが平面モードであるか、またはDCモードであるかを示すものである。
【0028】
一部の実施形態では、前記現在ブロックに関連付けられた第2の情報をエントロピーコード化するために使用されるコンテキストモデルが、前記隣接ブロックに関連付けられた第1の情報または前記隣接ブロックに関連付けられた第2の情報に基づいて決定される。
【0029】
一部の実施形態では、前記現在ブロックに関連付けられた第3の情報は、固定長コーディングを使用してコード化される。
【0030】
本開示の態様はまた、ビデオデコードのためにコンピュータによって実行されると、前記コンピュータにビデオデコードのための方法のいずれか1つまたは組み合わせを実行させる命令を記憶する非一時的なコンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0031】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【0032】
【
図1】イントラ予測モードの例示的なサブセットの概略図である。
【0033】
【0034】
【
図3】実施形態に係る通信システム(300)の簡略化されたブロック図の概略図である。
【0035】
【
図4】実施形態に係る通信システム(400)の簡略化されたブロック図の概略図である。
【0036】
【
図5】実施形態に係るデコーダの簡略化されたブロック図の概略図である。
【0037】
【
図6】実施形態に係るエンコーダの簡略化されたブロック図の概略図である。
【0038】
【
図7】別の実施形態に係るエンコーダを示すブロック図である。
【0039】
【
図8】別の実施形態に係るデコーダを示すブロック図である。
【0040】
【
図9】実施形態に係る35個のイントラ予測モードを示す図である。
【0041】
【
図10】実施形態に係る87個のイントラ予測モードを示す図である。
【0042】
【
図11】実施形態に係る現在コーディングブロックユニットの隣接コーディングブロックユニットの位置を示す図である。
【0043】
【
図12】実施形態に係るコーディングブロックユニットに隣接する4本の参照ラインを示す図である。
【0044】
【
図13】ブロックの第1の例示的な分割を示す図である。
【0045】
【
図14】ブロックの第2の例示的な分割を示す図である。
【0046】
【
図15】本開示の一部の実施形態に係るプロセス例の概要を示すフローチャートである。
【0047】
【
図16】実施形態に係るコンピュータシステムの概略図である。
【発明を実施するための形態】
【0048】
図3は、本開示の実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。
図3の例では、第1の対の端末装置(310)および(320)は、データの単方向送信を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他方の端末装置(320)へ送信するためにビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)をコード化し得る。エンコードされたビデオデータは、1つ以上のコード化されたビデオビットストリームの形で送信されることができる。端末装置(320)は、ネットワーク(350)からコーディングビデオデータを受信し、コーディングビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ送信は、メディア供給アプリケーションなどで一般的である。
【0049】
別の例では、通信システム(300)は、例えば、ビデオ会議中に発生し得るコーディングビデオデータの双方向送信を実行する第2の対の端末装置(330)および(340)を含む。データの双方向送信の場合、一例では、端末装置(330)および(340)のそれぞれは、ネットワーク(350)を介して端末装置(330)および(340)のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)をコード化し得る。端末装置(330)および(340)の一方は、端末装置(330)および(340)のうちの他方の端末装置で送信されたコーディングビデオデータを受信することができ、コーディングビデオデータをデコードしてビデオピクチャを復元することができ、復元されたビデオデータに従ってビデオピクチャをアクセス可能な表示装置に表示することができる。
【0050】
図3の例では、端末装置(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、本開示の原理はこれに制限されることはない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、および/または専用のビデオ会議機器などにおける用途を見出す。ネットワーク(350)は、例えば有線および/または無線通信ネットワークを含む、端末装置(310)、(320)、(330)および(340)間でコーディングビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要でないかもしれない。
【0051】
図4は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、および、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションに等しく適用可能である。
【0052】
ストリーミングシステムは、例えば非圧縮のビデオピクチャ(402)のストリームを作成するデジタルカメラなどのビデオソース(401)を含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャ(402)のストリームは、デジタルカメラによって取得されたサンプルを含む。エンコードされたビデオデータ(404)(またはコード化されたビデオビットストリーム)と比較して高データ量を強調するために太線で示されたビデオピクチャ(402)のストリームは、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか或いは実施するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャ(402)のストリームと比較してより低いデータ量を強調するために細い線で示された、エンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム(404))は、将来使うためにストリーミングサーバ(405)に記憶されることができる。
図4のクライアントサブシステム(406)および(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)および(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)におけるビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入り方向コピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(描画せず)でレンダリングできるビデオピクチャ(411)の出方向ストリームを作成する。一部のストリーミングシステムにおいて、エンコードされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコードされることができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、発展中のビデオコーディング規格は、非公式的にヴァーサトゥルビデオコーディングまたはVVCとして知られている。開示された主題は、VVCの文脈に使用され得る。
【0053】
なお、電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)を含むこともできる。
【0054】
図5は、本開示の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(410)の代わりに使用されることができる。
【0055】
受信機(531)は、ビデオデコーダ(510)によってデコードされる1つ以上のコーディングビデオシーケンスを受信することができ、同一または別の実施形態では、一度に1つのコーディングビデオシーケンスを受信してもよく、各コーディングビデオシーケンスのデコードは、他のコーディングビデオシーケンスから独立している。コーディングビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信されることができる。受信機(531)は、それぞれの使用エンティティ(描画せず)に転送され得る他のデータ、例えば、コーディングオーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機(531)は、コーディングビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合、バッファメモリ(515)は、ビデオデコーダ(510)(描画せず)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(510)の外部にバッファメモリ(描画せず)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ(510)の内部に別のバッファメモリ(515)が存在し得る。受信機(531)が十分な帯域幅および可制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ(515)は必要とされないことがあり、または小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要になる場合があり、バッファメモリ(515)は、比較的大きいことがあり、有利には適応サイズであることができ、ビデオデコーダ(510)の外部のオペレーティングシステムまたは類似の要素(描画せず)に少なくとも部分的に実施され得る。
【0056】
ビデオデコーダ(510)は、コーディングビデオシーケンスからシンボル(521)を再構築するパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の操作を管理するために使用される情報を含んで、および、電子デバイス(530)の不可欠な部分ではないが、
図5に示されるように電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、表示画面)のようなレンダリングデバイスを制御する情報を潜在的に含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(描画せず)の形態であってよい。パーサ(520)は、受信されたコーディングビデオシーケンスを構文解析/エントロピーデコードすることができる。コーディングビデオシーケンスのコーディングは、ビデオコーディング技術または規格に合わせることができ、可変長コーディング、ハフマンコーディング、文脈感受性を有するもしくは有さない算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)は、コーディングビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出することができる。
【0057】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析操作を実行することができる。
【0058】
シンボル(521)の再構築は、コーディングビデオピクチャまたはその一部のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットが、どのように関与するかは、パーサ(520)によってコーディングビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0059】
すでに述べた機能ブロックに加え、ビデオデコーダ(510)は、以下で説明されるようにいくつかの機能ユニットに概念的に細分されることができる。商業的な制約の下で実際の実施操作にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部は互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分は、適切に行われる。
【0060】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力可能なサンプル値を含むブロックを出力することができる。
【0061】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングブロック、すなわち、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックの同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、一部再構築された現在ピクチャおよび/または完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0062】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化された、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(521)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(521)の形態で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプル正確な動きベクトルが使用中であるときに参照ピクチャメモリ(557)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0063】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けられる。ビデオ圧縮技術は、コーディングビデオシーケンス(コード化されたビデオビットストリームとも呼ばれる)に含まれる、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能とされたパラメータによって制御されることができ、それに、コーディングピクチャまたはコーディングビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。
【0064】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)へ出力されることができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶されることができるサンプルストリームであり得る。
【0065】
特定のコーディングピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応するコーディングピクチャが完全に再構築され、コーディングピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングピクチャの再構築を開始する前に新しい現在ピクチャバッファを再割当てすることができる。
【0066】
ビデオデコーダ(510)は、ITU-T推奨のH.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。コーディングビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、コーディングビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できるツールとして選択することができる。コーディングビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様およびコーディングビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0067】
一実施形態では、受信機(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コーディングビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、および/または、元のビデオデータをより正確に再構築するためにビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。
【0068】
図6は、本開示の実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。
図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(603)を使用することができる。
【0069】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコード化されるビデオ画像をキャプチャし得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0070】
ビデオソース(601)は、ビデオエンコーダ(603)によってコード化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(601)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
【0071】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャをコード化し、コーディングビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の機能の1つである。一部の実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成されることができる。
【0072】
一部の実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディング対象となる入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルとコード化されたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆であるためである)。再構築されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性の該基本原理(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連分野にも使用されている。
【0073】
「ローカル」デコーダ(633)の動作は、前文で
図5に関連して既に詳細に説明された、ビデオデコーダ(510)などの「リモート」デコーダの動作と同様であり得る。しかしながら、
図5も簡単に参照し、シンボルが使用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングビデオシーケンスへのシンボルのコーディング/デコードは可逆であり得るので、バッファメモリ(515)、およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)では完全に実施されない場合がある。
【0074】
これで分かるように、デコーダに存在する構文解析/エントロピーデコード以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダ操作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0075】
操作中、一部の例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予めコード化されたピクチャを参照して入力ピクチャを予測的にコード化する動き補償予測コーディングを実行してもよい。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異をコード化する。
【0076】
ローカルビデオデコーダ(633)は、ソースコーダ(630)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングビデオデータをデコードすることができる。コーディングエンジン(632)の操作は、有利には非可逆プロセスであり得る。コーディングビデオデータがビデオデコーダ(
図6に示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構築された参照ピクチャのコピーをローカルに記憶し得る。
【0077】
予測器(635)は、コーディングエンジン(632)の予測検索を実行することができる。つまり、コーディング対象となる新しいピクチャについて、予測器(635)は、(候補の参照画素ブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(634)で検索することができる。予測器(635)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに操作することができる。場合によっては、予測器(635)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0078】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング操作を管理することができる。
【0079】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けられる。エントロピーコーダ(645)は、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディングビデオシーケンスに変換する。
【0080】
送信機(640)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダ(645)によって作成されたコーディングビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオコーダ(603)からのコーディングビデオデータを、送信されるべき他のデータ、例えば、コーディングオーディオデータおよび/または補助データストリーム(ソースは示されていない)とマージすることができる。
【0081】
コントローラ(650)は、ビデオエンコーダ(603)の操作を管理し得る。コーディング中、コントローラ(650)は、各コーディングピクチャに特定のコーディングピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
【0082】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずにコーディングおよびデコードされ得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形およびそれらのそれぞれの用途および特徴を知っている。
【0083】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコーディングおよびデコードされ得るものであり得る。
【0084】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコーディングおよびデコードされ得るものであり得る。同様に、多重予測ピクチャは、単数のブロックの再構築のために2つを超えた参照ピクチャおよび関連メタデータを使用することができる。
【0085】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定された他の(既にコード化された)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、或いは、同一のピクチャの既にコード化されたブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされてもよい。Pピクチャの画素ブロックは、1つの予めコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの予めコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。
【0086】
ビデオエンコーダ(603)は、ITU-T推奨のH.265などの予め設定されたビデオコーディング技術または規格に従って、コーディング操作を実行することができる。操作中、ビデオエンコーダ(603)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測コーディング操作を含む、様々な圧縮操作を実行することができる。したがって、コーディングビデオデータは、使用されるビデオコーディング技術または規格によって指定されたシンタックスに準拠する場合がある。
【0087】
一実施形態では、送信機(640)は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、このようなデータをコーディングビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0088】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在ピクチャと呼ばれるエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予めコーディングされ、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコード化されることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
【0089】
一部の実施形態では、インターピクチャ予測において双予測法を使用することができる。双予測法によれば、ビデオにおける現在ピクチャよりもデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを使用する。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコード化されることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0090】
さらに、マージモード技法をインターピクチャ予測に適用して、コーディング効率を向上させることができる。
【0091】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素など、同一のサイズを有する。一般に、CTUは、1つの輝度CTBと2つの彩度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16個の16×16画素のCUに分割されることができる。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、1つの輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、コーディング(エンコード/デコード)における予測操作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、輝度値)の行列を含む。
【0092】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、一連のビデオピクチャ内の現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングビデオシーケンスの一部であるコーディングピクチャにエンコードするように構成される。一例では、
図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(703)を使用する。
【0093】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、例えばレート歪み最適化を用いて、処理ブロックをイントラモード、インターモード、または双予測モードにより最も良くコード化するか否かを決定する。処理ブロックがイントラモードでコーディングされようとする場合、ビデオエンコーダ(703)は、イントラ予測法を用いて処理ブロックをコーディングピクチャにエンコードすることができる。また、処理ブロックがインターモードまたは双予測モードでコーディングされようとする場合、ビデオエンコーダ(703)は、それぞれインター予測または双予測法を用いて、処理ブロックをコーディングピクチャにエンコードすることができる。特定のビデオコーディング技術では、マージモードは、予測子外のコーディング動きベクトル成分の利便を介することなく、1つ以上の動きベクトル予測子から動きベクトルを導出するインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0094】
図7の例では、ビデオエンコーダ(703)は、
図7に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、統括制御部(721)およびエントロピーエンコーダ(725)を含む。
【0095】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコード法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な技法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされたデコード参照ピクチャである。
【0096】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既にコード化されたブロックと比較し、量子化された変換後係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラエンコード法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(722)は、イントラ予測情報および同一のピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。
【0097】
統括制御部(721)は、統括制御データを決定し、統括制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、統括制御部(721)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。また、モードがインターモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。
【0098】
残差算出部(723)は、受信されたブロックとイントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用されることができる。例えば、インターエンコーダ(730)は、デコード残差データよびインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ(722)は、デコード残差データおよびイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0099】
エントロピーエンコーダ(725)は、エンコードブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ(725)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含ませるように構成される。開示された主題によれば、インターモードまたは双予測モードのマージサブモードでブロックをコード化する場合、残差情報はないことに留意されたい。
【0100】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングビデオシーケンスの一部であるコーディングピクチャを受信し、コーディングピクチャをデコードして、再構築ピクチャを生成するように構成される。一例では、
図4の例におけるビデオデコーダ(410)の代わりにビデオデコーダ(810)を使用する。
【0101】
図8の例では、ビデオデコーダ(810)は、
図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)、およびイントラデコーダ(872)を含む。
【0102】
エントロピーデコーダ(871)は、コーディングピクチャから、コーディングピクチャを構成するシンタックス要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えば、ブロックがコード化されるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモードまたは別のサブモード)、それぞれイントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードであれば、インター予測情報は、インターデコーダ(880)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は、逆量子化を施されることができ、残差デコーダ(873)に提供される。
【0103】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0104】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0105】
残差デコーダ(873)は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ(871)によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。
【0106】
再構築モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構築ビデオの一部となり得る再構築ピクチャの一部であり得る再構築ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。
【0107】
なお、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、任意の適切な技法を用いて実施されることができる。一実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、1つ以上の集積回路を用いて実施されることができる。別の実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実施されることができる。
【0108】
本開示は、改良されたイントラモードコーディング方式を含む、高度なビデオコーディング技術のセットを対象としている。
【0109】
例えば、HEVCで使用されるように、合計35個のイントラ予測モードが
図9に示されている。35個のイントラ予測モードのうち、モード10は水平モードであり、モード26は垂直モードである。モード2、18、および34は対角モードである。35個のイントラ予測モードは、3つの最確モード(MPM)と残りの32個のモードによってシグナリングすることができる。
【0110】
例えば、VVCで使用されるように、合計95個のイントラ予測モードが
図10に示されている。モード18は水平モードであり、モード50は垂直モードである。モード2、34、および66は、対角モードである。モード-1~-14およびモード67~80は、広角イントラ予測(WAIP)モードと呼ぶことができる。
【0111】
サイズ3のMPMリストは、例えば、HEVCにおいて、現在ブロックの隣接ブロックのイントラ予測モードに基づいて生成することができる。このMPMリストは、一次MPMリストとも呼ばれる。現在ブロックのイントラ予測モードがMPMリストからのものではない場合、フラグ、例えば、MPMフラグは、現在ブロックのイントラ予測モードが選択されたモード、例えば、MPMリスト内のイントラ予測モードとは異なる他の候補イントラ予測モードに属するか否かを示すためにシグナリングすることができる。
【0112】
MPMリスト生成プロセスの例は、以下のシンタックス要素に示されている。
If (leftIntraDir == aboveIntraDir && leftIntraDir > DC_IDX)
MPM [0] = leftIntraDir;
MPM [1] = ((leftIntraDir + offset) % mod) + 2;
MPM [2] = ((leftIntraDir - 1) % mod) + 2;
Else if (leftIntraDir == aboveIntraDir)
MPM [0] = PLANAR_IDX;
MPM [1] = DC_IDX;
MPM [2] = VER_IDX;
Else if (leftIntraDir != aboveIntraDir)
MPM [0] = leftIntraDir;
MPM [1] = aboveIntraDir;
If (leftIntraDir > 0 && aboveIntraDir > 0)
MPM [2] = PLANAR_IDX;
Else
MPM [2] = (leftIntraDir + aboveIntraDir) < 2 ?VER_IDX :DC_IDX;
上記のシンタックス要素の例では、leftIntraDirを使用して、現在ブロックの左の隣接ブロック(「左ブロック」)のモードを示し、aboveIntraDirを使用して、現在ブロックの上の隣接ブロック(「上ブロック」)のモードを示す。左ブロックまたは上のブロックが現在利用不可である場合、leftIntraDirまたはaboveIntraDirをイントラDCモードのインデックス(DC_IDXなど)に設定することができる。また、変数「offset」と「mod」は定数値であり、一例ではそれぞれ29と32に設定することができる。
【0113】
MPMリストのサイズは、例えばVVCテストモデル3(VTM3)のように、隣接する参照ライン(ゼロ参照ラインとも呼ばれる)および隣接しない参照ライン(非ゼロ参照ラインとも呼ばれる)の両方において6に設定することができる。6つのMPM候補を導出するために使用される隣接モードの位置はまた、例えば
図11に示されるように、隣接する参照ラインおよび隣接しない参照ラインについて同じであり得る。
図11に示されるように、ブロックAおよびブロックBは、現在コーディングユニット1100の例示的な上および左の隣接コーディングユニットを示す。変数candIntraPredModeAおよびcandIntraPredModeBは、それぞれブロックAおよびBに関連付けられたイントラ予測モードを示す。また、candIntraPredModeAおよびcandIntraPredModeBは、最初にINTRA_PLANARに等しく設定することができる。ブロックA(またはB)が使用可能としてマークされる場合、candIntraPredModeA(またはcandIntraPredModeB)は、ブロックA(またはB)の実際のイントラ予測モードに等しく設定される。
【0114】
現在コーディングユニット1100のMPM候補導出プロセス(またはMPMリスト導出プロセス)は、現在コーディングユニット1100の隣接する参照ライン(またはゼロ参照ライン)と隣接しない参照ライン(または非ゼロ参照ライン)との間で異なることができる。ゼロ参照ラインについて、隣接モードが両方とも平面モードまたはDCモードである場合、デフォルトモードを使用してMPMリストを構築することができる。デフォルトモードの2つは平面モードとDCモードであり得、残りの4つのモードは角度モード(角度デフォルトモードとも呼ばれる)であり得る。非ゼロ参照ラインについて、隣接モードが両方とも平面モードまたはDCモードである場合、6つの角度デフォルトモードを使用してMPMリストを構築することができる。例示的なMPMリスト導出プロセスを以下のシンタックス要素に示す。以下のシンタックス要素において、x=0..5のcandModeList[x]は6つのMPM候補を示し、IntraLumaRefLineIdx[xCb][yCb]は予測されるブロック(または現在コーディングユニット)の参照ラインインデックスを示し、IntraLumaRefLineIdx[xCb][yCb]は、0、1、または3にすることができる。
candIntraPredModeBがcandIntraPredModeAに等しく、かつcandIntraPredModeAがINTRA_DCよりも大きい場合、x=0..5のcandModeList[x]は以下のように導出される。
IntraLumaRefLineIdx[xCb][yCb]が0である場合、以下が適用される。
candModeList[ 0 ] = candIntraPredModeA
candModeList[ 1 ] = INTRA_PLANAR
candModeList[ 2 ] = INTRA_DC
candModeList[ 3 ] =
2 + ( ( candIntraPredModeA + 61 ) % 64 )
candModeList[ 4 ] =
2 + ( ( candIntraPredModeA - 1 ) % 64 )
candModeList[ 5 ] =
2 + ( ( candIntraPredModeA + 60 )
% 64 )
そうでない場合(IntraLumaRefLineIdx[xCb][yCb]が0ではない場合)、以下が適用される。
candModeList[ 0 ] = candIntraPredModeA
candModeList[ 1 ] =
2 + ( ( candIntraPredModeA + 61 ) % 64 )
candModeList[ 2 ] =
2 + ( ( candIntraPredModeA - 1 ) % 64 )
candModeList[ 3 ] =
2 + ( ( candIntraPredModeA + 60 ) % 64 )
candModeList[ 4 ] =
2 + ( candIntraPredModeA % 64 )
candModeList[ 5 ] =
2 + ( ( candIntraPredModeA + 59 ) % 64 )
そうでない場合、candIntraPredModeBがcandIntraPredModeAに等しくなく、かつcandIntraPredModeAまたはcandIntraPredModeBがINTRA_DCよりも大きい場合、以下が適用される。
変数minABおよびmaxABは、以下のように導出される。
minAB
=candModeList[ (candModeList[ 0 ] > candModeList[ 1 ] ) ?1 :0]
maxAB=candModeList[ (candModeList[ 0 ] > candModeList[ 1 ] ) ?0 :1]
candIntraPredModeAおよびcandIntraPredModeBの両方がINTRA_DCよりも大きい場合、x=0..5のcandModeList[x]は以下のように導出される。
candModeList[ 0 ] = candIntraPredModeA
candModeList[ 1 ] = candIntraPredModeB
IntraLumaRefLineIdx[xCb][yCb]が0である場合、以下が適用される。
candModeList[ 2 ] = INTRA_PLANAR
candModeList[ 3 ] = INTRA_DC
maxAB-minABが2~62の範囲にある場合、以下が適用される。
candModeList[ 4 ] =
2 + ( ( maxAB + 61 ) % 64 )
candModeList[ 5 ] = 2 + ( ( maxAB - 1 ) % 64 )
そうでない場合、以下が適用される。
candModeList[ 4 ] = 2 + ( ( maxAB + 60 ) % 64 )
candModeList[ 5 ] =
2 + ( ( maxAB ) % 64 )
そうでない場合(IntraLumaRefLineIdx[xCb][yCb]が0ではない場合)、以下が適用される。
maxAB-minABが1である場合、以下が適用される。
candModeList[ 2 ] =
2 + ( ( minAB + 61 ) % 64 )
candModeList[ 3 ] = 2 + ( ( maxAB - 1 ) % 64 )
candModeList[ 4 ] =
2 + ( ( minAB + 60 ) % 64 )
candModeList[ 5 ] = 2 + ( maxAB % 64 )
そうでない場合、maxAB-minABが2である場合、以下が適用される。
candModeList[ 2 ] = 2 + ( ( minAB - 1 ) % 64 )
candModeList[ 3 ] = 2 + ( ( minAB + 61 ) % 64 )
candModeList[ 4 ] = 2 + ( ( maxAB - 1 ) % 64 )
candModeList[ 5 ] = 2 + ( ( minAB + 60 ) % 64 )
そうでない場合、maxAB-minABが61よりも大きい場合、以下が適用される。
candModeList[ 2 ] = 2 + ( ( minAB - 1 ) % 64 )
candModeList[ 3 ] =
2 + ( ( maxAB + 61 ) % 64 )
candModeList[ 4 ] = 2 + ( minAB % 64 )
candModeList[ 5 ] =
2 + ( ( maxAB + 60 ) % 64 )
そうでない場合、以下が適用される。
candModeList[ 2 ] =
2 + ( ( minAB + 61 ) % 64 )
candModeList[ 3 ] = 2 + ( ( minAB - 1 ) % 64 )
candModeList[ 4 ] =
2 + ( ( maxAB + 61 ) % 64 )
candModeList[ 5 ] = 2 + ( ( maxAB - 1 ) % 64 )
そうでない場合(candIntraPredModeAまたはcandIntraPredModeBがINTRA_DCよりも大きい場合)、x=0..5のcandModeList[x]は以下のように導出される。
IntraLumaRefLineIdx[xCb][yCb]が0である場合、以下が適用される。
candModeList[ 0 ] = candIntraPredModeA
candModeList[ 1 ] = candIntraPredModeB
candModeList[ 2 ] = 1 - minAB
candModeList[ 3 ] =
2 + ( ( maxAB + 61 ) % 64 )
candModeList[ 4 ] = 2 + ( ( maxAB - 1 ) % 64 )
candModeList[ 5 ] =
2 + ( ( maxAB + 60 ) % 64 )
そうでない場合(IntraLumaRefLineIdx[xCb][yCb]が0ではない場合)、以下が適用される。
candModeList[ 0 ] = maxAB
candModeList[ 1 ] = 2 + ( ( maxAB +
61 ) % 64 )
candModeList[ 2 ] = 2 + ( ( maxAB - 1 ) % 64 )
candModeList[ 3 ] =
2 + ( ( maxAB + 60 ) % 64 )
candModeList[ 4 ] = 2 + ( maxAB % 64 )
candModeList[ 5 ] =
2 + ( ( maxAB + 59 ) % 64 )
そうでない場合、以下が適用される。
IntraLumaRefLineIdx[xCb][yCb]が0である場合、以下が適用される。
candModeList[ 0 ] = candIntraPredModeA
candModeList[ 1 ] =candModeList[0] = =
INTRA_PLANAR ) ?INTRA_DC :INTRA_PLANAR
candModeList[ 2 ] = INTRA_ANGULAR50
candModeList[ 3 ] = INTRA_ANGULAR18
candModeList[ 4 ] = INTRA_ANGULAR46
candModeList[ 5 ] = INTRA_ANGULAR54
そうでない場合(IntraLumaRefLineIdx[xCb][yCb]が0ではない場合)、以下が適用される。
candModeList[ 0 ] = INTRA_ANGULAR50
candModeList[ 1 ] = INTRA_ANGULAR18
candModeList[ 2 ] = INTRA_ANGULAR2
candModeList[ 3 ] = INTRA_ANGULAR34
candModeList[ 4 ] = INTRA_ANGULAR66
candModeList[ 5 ] = INTRA_ANGULAR26
【0115】
多重ラインのイントラ予測では、追加の参照ラインをイントラ予測に使用することができる。エンコーダは、イントラ予測子を生成するためにどの参照ラインを使用するかを決定し、シグナリングすることができる。参照ラインインデックスを、イントラ予測モードの前にシグナリングすることができ、非ゼロ参照ラインインデックスがシグナリングされた場合、最確モードのみを許容することができる。
図12には、4本の参照ライン(例えば、参照ライン0~3)の例が示され、4本の参照ラインのそれぞれは、左上の参照サンプルとともに、6つのセグメント、すなわち、セグメントA~Fで構成される。また、セグメントAとFに、それぞれセグメントBとEからの最も近いサンプルを埋め込むことができる。
【0116】
イントラサブパーティション(ISP)コーディングモードでは、例えば表1に示すように、輝度イントラ予測ブロックは、ブロックサイズの寸法に応じて、垂直方向または水平方向にサブパーティション(例えば2つまたは4つ)に分割することができる。
図13および
図14は、ISPコーディングモードに基づく輝度イントラ予測ブロックの分割の2つの可能性の例を示す。
図13は、4×8ブロックまたは8×4ブロックの例示的な分割を示す。
図14は、4×8ブロック、8×4ブロック、および4×4ブロックのうちの1つではないブロックの例示的な分割を示す。全てのサブパーティションは、一例では、少なくとも16個のサンプルを有するという条件を満たす。
【表1】
【0117】
サブパーティションのそれぞれについて、残差信号は、エンコーダによって送信された係数をエントロピーデコードして、係数を逆量子化および逆変換することによって生成することができる。また、サブパーティションはイントラ予測され、対応する再構築されたサンプルは、残差信号を予測信号に加算することによって取得することができる。したがって、各サブパーティションの再構築された値を使用して、次のサブパーティションの予測を生成でき、これにより、プロセスなどを繰り返すことができる。全てのサブパーティションは、同じイントラ予測モードを共有することができる。
【0118】
イントラ予測モードおよび利用される分割に基づいて、クラスの異なる2つの処理順序を使用することができ、通常の順序および逆の順序と呼ばれることができる。通常の順序では、処理される1番目のサブパーティションは、CUの左上のサンプルを含む。その後、処理は下向き(例えば水平分割)または右向き(例えば垂直分割)に継続する。その結果、サブパーティションの予測信号を生成するための参照サンプルは、ラインの左側および上側にのみ配置される。一方で、逆の処理順序(または逆の順序)は、(i)CUの左下のサンプルを含むサブパーティションで始まり、上向きに続くか、(ii)CUの右上のサンプルを含むサブパーティションで始まり、左向きに続くかのいずれかである。
【0119】
一部の実施形態では、ISPアルゴリズムは、MPMリストの一部であるイントラ予測モードでのみテストされる。したがって、ブロックがISPモードを使用する場合、MPMフラグは1つであると推定することができる。ISPモードが特定のブロックに使用される場合、MPMリストを変更して、DCモードを除外し、かつISPの水平分割の水平イントラ予測モードとISP垂直分割の垂直イントラ予測モードを優先することができる。
【0120】
平面モードおよびDCモードが、例えばVTM4において常にMPMリストに含まれ、隣接モードが両方とも平面/DCモードである場合、現在モードは、平面またはDCモードである可能性が高い。本開示の実施形態は、現在のイントラ予測モードコーディングの設計においてこの相関関係を利用することを含む。以下でさらに説明されるように、一部の実施形態では、現在ブロックのイントラ予測情報をエントロピーコード化するために使用されるコンテキストは、隣接ブロックのコード化された情報に依存する。さらに、一部の実施形態では、選択されたMPMが角度モードであるか、および/または平面またはDCモードが選択されているか否かをシグナリングするためのシンタックス要素が提供される場合もある。
【0121】
上記のように、隣接する参照ライン、または最も近い参照ラインのラインインデックスは0(ゼロ参照ライン)であり、他のラインは非ゼロ参照ラインと呼ばれる。また、candModeListはMPMリストを示し、RefLineIdxは現在ブロックの参照ラインインデックスを示し、candIntraPredModeAとcandIntraPredModeBは左および上の隣接イントラ予測モードを示す。各イントラ予測モードは、モード番号(イントラ予測モードインデックスとも呼ばれる)に関連付けられている。例えば、VVCでは、平面、DC、水平および垂直のイントラ予測モードを、それぞれモード番号0、1、18、および50に関連付けることができる。MPMリストの1番目の候補のMPMインデックスは0として示すことができ、2番目の候補のMPMインデックスは1として示すことができ、それ以降は同様である。
【0122】
隣接イントラ予測モードが平面またはDCモードではない場合、または、隣接イントラ予測モードが、例えばVVCドラフト2で定義されるように、モード2からモード66までのイントラ予測モードなど、所定の予測方向に従って予測サンプルを生成する場合、隣接イントラ予測モードは角度モードである。隣接イントラ予測モードが、平面またはDCモードなど、指向性イントラ予測を示さない場合、隣接イントラ予測モードは非角度モードである。
【0123】
一部の実施形態では、現在ブロックのMPMフラグをエントロピーコード化するために使用されるコンテキスト(またはコンテキストモデル)は、現在ブロックおよび/または現在ブロックの隣接ブロックのコード化された情報に依存することができる。コード化された情報は、MPMフラグ、参照ラインインデックス、ISPタイプ(例えば、垂直サブパーティション、水平サブパーティション、サブパーティションなし)、イントラ予測モード、MPMインデックスなどを含むことができるが、これらに限定されない。
【0124】
一実施形態では、現在ブロックのMPMフラグおよび/またはイントラ予測モードなどの他のコード化された情報の前にデコードすることができる、現在ブロックのコード化された情報(例えば、参照ラインインデックスおよび/またはISPタイプ)は、現在ブロックのMPMフラグおよびイントラ予測モードをエントロピーコード化するために使用することができる。
【0125】
一実施形態では、現在ブロックのMPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接ブロックの非角度(または角度)モードの数に依存することができる。第1の例では、隣接ブロックのイントラ予測モードが両方とも非角度モードである場合、第1のコンテキストを使用する。隣接ブロックのイントラ予測モードの一方のみが非角度モードである場合、第2のコンテキストを使用する。隣接ブロックのイントラ予測モードが両方とも角度モードである場合、第3のコンテキストを使用する。第2の例では、隣接ブロックのイントラ予測モードの少なくとも1つが非角度モードである場合、第1のコンテキストを使用する。隣接ブロックのイントラ予測モードが両方とも角度モードである場合、第2のコンテキストを使用する。第3の例では、MPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接ブロックのモードのいくつが平面モードであるかに依存する。第4の例では、MPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接ブロックのモードのいくつが平面またはDCモードであるかに依存する。
【0126】
MPMフラグのエントロピーコーディングのためのコンテキストの数は、隣接モードがいくつ使用されるかに依存することができる。例えば、使用される隣接ブロックの数がNである場合、MPMフラグをエントロピーコード化するために使用されるコンテキストの数はK*(N+1)であり得、ここでKは1または2などの任意の正の整数であり得る。
【0127】
一実施形態では、現在ブロックのMPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接ブロックのMPMフラグに依存することができる。第1の例では、隣接ブロックのMPMフラグが両方とも真である場合、第1のコンテキストを使用する。隣接ブロックのMPMフラグのうちの1つのみが真である場合、第2のコンテキストを使用する。隣接ブロックのMPMフラグがいずれも真ではない場合、第3のコンテキストを使用する。第2の例では、隣接ブロックのMPMフラグの少なくとも1つが真である場合、第1のコンテキストを使用する。隣接ブロックのMPMフラグがいずれも真ではない場合、第2のコンテキストを使用する。第3の例では、MPMフラグをエントロピーコード化するためのコンテキストの数は、隣接モード(またはブロック)のMPMフラグのいずれが真であるかに依存することができる。例えば、使用される隣接ブロックの数がNである場合、MPMフラグをエントロピーコード化するために使用されるコンテキストの数はK*(N+1)であり得、ここでKは1または2などの任意の正の整数であり得る。
【0128】
一実施形態では、現在ブロックのMPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接モードのMPMフラグおよび/または隣接ブロックの非角度(または角度)MPMの数に依存する。例えば、隣接モードが両方とも非角度MPMである場合、第1のコンテキストを使用する。隣接モードが両方とも、角度MPMと非角度MPMを含むことができるMPMである場合、第2のコンテキストを使用する。隣接モードのうちの1つのみがMPMである場合、第3のコンテキストを使用する。そうでない場合、隣接モードがいずれもMPMではない場合、第4のコンテキストを使用する。
【0129】
一実施形態では、MPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接ブロックのMPMフラグおよび/またはMPMインデックスに依存する。一実施形態では、MPMフラグをエントロピーコード化するために使用されるコンテキストは、隣接ブロックのMPMフラグおよび/またはISPフラグに依存する。また、さらなる例では、MPMフラグをエントロピーコード化するために使用されるコンテキストは、他のコード化された情報またはコード化された情報の組み合わせに依存することができる。
【0130】
一部の実施形態では、現在ブロックのMPMリストのサイズは、例えば上記のように、現在ブロックのコード化された情報、および/または現在ブロックの隣接ブロックに依存することができる。コード化された情報は、イントラ予測モード、MPMフラグ、ISPフラグ、MPMインデックス、参照ラインインデックスなどを含むことができるが、これらに限定されない。一実施形態では、MPMリストのサイズは、隣接ブロックの非角度(または角度)モードの数に依存する。第1の例では、隣接モードが両方とも非角度モードである場合、MPMリストのサイズはK1である。隣接モードの1つが角度モードである場合、MPMリストのサイズはK2である。K1とK2は正の整数であり、K1はK2よりも小さい。例えば、K1を2に設定することができる。第2の例では、隣接モードが両方とも非角度モードである場合、MPMリストのサイズをK1とすることができる。隣接モードの1つのみが非角度モードである場合、MPMリストのサイズはK2とすることができる。隣接モードがいずれも非角度モードではない場合、MPMリストのサイズはK3である。K1、K2、およびK3は正の整数である。また、K1はK2よりも小さくすることができ、K2はK3よりも小さくすることができる。例えば、K1を2に設定し、K2を5に設定することができる。
【0131】
一部の実施形態では、現在ブロックのMPMフラグが真である場合に、MPMインデックスをシグナリングする代わりに、新しいシンタックス要素、例えば、intra_luma_ang_mpm_flagは、選択されたMPMが角度モードであるか否かを示すようにシグナリングすることができる。intra_luma_ang_mpm_flagが真である場合、別のフラグintra_luma_planar_flagは、平面またはDCモードが選択されるか否かを示すようにシグナリングすることができる。例示的なシンタックスの変更とセマンティクスを表2に示す。
【表2】
【0132】
表2に示すように、シンタックス要素intra_luma_ref_idx[x0][y0]==0(例えば、現在ブロックの参照ラインは参照ライン0である)およびシンタックス要素intra_subpartitions_mode_flag[x0][y0]==0(例えば、ISPモードは適用されない)の場合、intra_luma_mpm_flag[x0][y0]がシグナリングされる。intra_luma_mpm_flag[x0][y0]は、現在ブロックの輝度サンプルのイントラ予測モードが、選択されたイントラ予測モード(例えば、MPMリスト内のイントラ予測モードとは異なる他の候補イントラ予測モード)に属するか否かを示す。intra_luma_mpm_flag[x0][y0]が真である場合(例えば、現在ブロックの輝度サンプルのイントラ予測モードが、選択されたイントラ予測モードに属している場合)、intra_luma_ang_mpm_flag[x0][y0]をシグナリングすることができる。intra_luma_ang_mpm_flag[x0][y0]は、現在ブロックの輝度サンプルのイントラ予測モードが角度モードであるか、または非角度モードであるかを指定することができ、角度モードは、平面またはDCモードではないイントラ予測モードである。配列インデックスx0、y0は、ピクチャの左上の輝度サンプルに対する、考えられたコーディングブロック(または現在ブロック)の左上の輝度サンプルの位置(x0、y0)を指定する。intra_luma_ang_mpm_flag[x0][y0]が真である(例えば、現在ブロックの輝度サンプルのイントラ予測モードが角度モードである)場合、intra_luma_mpm_idx[x0][y0]をシグナリングすることができる。intra_luma_mpm_idx[x0][y0]は、現在ブロックの輝度サンプルのMPMインデックスを示す。
【0133】
intra_luma_ang_mpm_flag[x0][y0]が真ではない(例えば、現在ブロックの輝度サンプルのイントラ予測モードが非角度モードである)場合、intra_luma_planar_flag[x0][y0]をシグナリングすることができる。intra_luma_planar_flag[x0][y0]は、現在ブロックの輝度サンプルのイントラ予測モードが平面であるか、またはDCであるかを指定することができる。配列インデックスx0、y0は、ピクチャの左上の輝度サンプルに対する、考えられたコーディングブロック(または現在ブロック)の左上の輝度サンプルの位置(x0、y0)を指定する。
【0134】
intra_luma_mpm_flag[x0][y0]が真ではない(例えば、現在ブロックの輝度サンプルのイントラ予測モードが、選択されたイントラ予測モードに属していない)場合、intra_luma_mpm_remainder[x0][y0]をシグナリングすることができる。intra_luma_mpm_remainder[x0][y0]は、現在ブロックの輝度サンプルのイントラ予測モードが、選択されたイントラ予測モード以外の残りの候補に属していることを示すことができる。
【0135】
一実施形態では、intra_luma_mpm_idx[x0][y0]は、固定長コーディングを使用してコード化する(例えば、2ビットを使用してコード化する)ことができる。一実施形態では、intra_luma_ang_mpm_flag[x0][y0]をエントロピーコード化することができ、intra_luma_ang_mpm_flag[x0][y0]をエントロピーコード化するために使用されるコンテキストは、隣接ブロックのintra_luma_mpm_flagの値から導出することができる。一実施形態では、intra_luma_ang_mpm_flag[x0][y0]をエントロピーコード化することができ、intra_luma_ang_mpm_flag[x0][y0]をエントロピーコード化するために使用されるコンテキストは、隣接ブロックのintra_luma_ang_mpm_flagの値から導出することができる。
【0136】
一部の実施形態では、現在ブロックのMPMインデックスをエントロピーコード化するためのコンテキストは、現在ブロックの隣接ブロックのコード化された情報に依存することができ、コード化された情報は、隣接ブロックのイントラ予測モード、MPMフラグ、MPMインデックス、参照ラインインデックス、ISPフラグなどを含むことができるが、これらに限定されない。一実施形態では、MPMインデックスをエントロピーコード化するためのコンテキストは、隣接ブロックの角度モードの数に依存することができる。例えば、MPMインデックスの第1のビンをエントロピーコード化するためのコンテキストは、隣接ブロックの角度モードの数に依存する。一実施形態では、MPMインデックスをエントロピーコード化するためのコンテキストは、平面モードよりも大きいイントラ予測モードである隣接モードの数に依存することができる。例えば、MPMインデックスの第1のビンをエントロピーコード化するためのコンテキストは、イントラ予測モード番号が平面モードよりも大きい隣接モードの数に依存する。
【0137】
図15は、本開示の実施形態に係るプロセス(1500)の概要のフローチャートを示す。プロセス(1500)は、イントラモードでコード化されたブロックの再構築に用いて、再構築中のブロックの予測ブロックを生成することができる。様々な実施形態では、プロセス(1500)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(1500)はソフトウェア命令で実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1500)を実行する。プロセスは(S1501)から開始し、(S1510)に進む。
【0138】
(1510)では、コード化されたビデオビットストリームから、現在ブロックの隣接ブロックのコード化された情報を受信することができる。コード化された情報は隣接ブロックのイントラ予測情報を含むことができる。一部の実施形態では、コード化された情報は、MPMフラグ、参照ラインインデックス、イントラサブパーティション(IPS)フラグ、イントラ予測モード、またはMPMインデックスを含むことができる。
【0139】
(1520)では、隣接ブロックのコード化された情報に基づいて、現在ブロックのイントラ予測情報を決定することができる。一部の実施形態では、現在ブロックのイントラ予測情報は、最確モード(MPM)フラグ、MPMリストのサイズ、またはMPMインデックスを含むことができる。一部の実施形態では、現在ブロックのイントラ予測情報を決定するために、コード化された情報に基づいて、コンテキストモデルのセットからコンテキストモデルを決定することができ、かつ決定されたコンテキストモデルに従って、現在ブロックの隣接ブロックのコード化された情報に基づいて、現在ブロックのイントラ予測情報を決定することができる。
【0140】
一部の実施形態では、コンテキストモデルを、隣接ブロックの非角度モード数、隣接ブロックの角度モード数、隣接ブロックのMPMフラグ、隣接ブロックのMPMインデックス、および隣接ブロックのISPフラグのうちの少なくとも1つに基づいて決定することができる。
【0141】
一部の実施形態では、現在ブロックのMPMリストのサイズは、隣接ブロックのイントラ予測モードが非角度モードである場合に第1の整数であり得、現在ブロックのMPMリストのサイズは、隣接ブロックのイントラ予測モードの1つが角度モードである場合に第2の整数であり得、第1の整数は第2の整数よりも小さい。
【0142】
一部の実施形態では、現在ブロックのMPMリストのサイズは、隣接ブロックのイントラ予測モードが非角度モードである場合に第1の整数であり得、現在ブロックのMPMリストのサイズは、隣接ブロックのイントラ予測モードの1つが非角度モードである場合に第2の整数であり得、現在ブロックのMPMリストのサイズは、隣接ブロックのイントラ予測モードがいずれも角度モードである場合に第3の整数であり得る。第1の整数は第2の整数よりも小さく、第2の整数は第3の整数よりも小さい。
【0143】
(1530)では、現在ブロックのイントラ予測情報に基づいてイントラ予測方向モードを決定することができる。(1540)では、現在ブロックのイントラ予測方向モードに従って、現在ブロックの少なくとも1つのサンプルを再構築することができる。
【0144】
本開示に説明された方法は、別々に用いられてもよく、任意の順序で組み合わせられてもよい。さらに、方法(または実施形態)、エンコーダおよびデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実施することができる。一例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されるプログラムを実行する。さらに、ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、即ちCUとして解釈されてもよい。
【0145】
以上で説明された技法は、コンピュータ読取可能な命令を使用するコンピュータソフトウェアとして実行され、1つ以上のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、
図16は、開示された主題の特定の実施形態を実行することに適したコンピュータシステム(1600)を示す。
【0146】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いてコード化されることができる。
【0147】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0148】
コンピュータシステム(1600)について、
図16に示される例示的なコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(1600)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つまたは組み合わせに関する任意の依存性または必要性を有するとして解釈されるべきではない。
【0149】
コンピュータシステム(1600)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(描画せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。
【0150】
入力ヒューマンインターフェースデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示せず)、ジョイスティック(1605)、マイクフォン(1606)、スキャナ(1607)、カメラ(1608)(それぞれ1つのみ示されている)のうちの1つ以上を含み得る。
【0151】
コンピュータシステム(1600)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1610)、データグローブ(図示せず)、またはジョイスティック(1605)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(1609)、ヘッドホン(描画せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1610)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(描画せず)、ホログラフィックディスプレおよびスモークタンク(描画せず)など)、およびプリンタ(描画せず)を含み得る。
【0152】
コンピュータシステム(1600)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(1621)付きのCD/DVD ROM/RW(1620)を含む光学媒体、サムドライブ(1622)、リムーバブルハードドライブまたはソリッドステートドライブ(1623)、テープやフロッピー(登録商標)ディスクなどの従来の磁気媒体(描画せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(描画せず)などをも含むことができる。
【0153】
ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。
【0154】
コンピュータシステム(1600)は、1つ以上の通信ネットワークへのインターフェースをさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1649)(例えば、コンピュータシステム(1600)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム(1600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(1600)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
【0155】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1600)のコア(1640)に接続されることができる。
【0156】
コア(1640)は、1つ以上の中央処理装置(CPU)(1641)、グラフィックスプロセッシングユニット(GPU)(1642)、フィールドプログラマブルゲートアレイ(FPGA)(1643)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1644)などを含むことができる。これらのデバイスは、リードオンリメモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量ストレージ(1647)とともに、システムバス(1648)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1648)は、1つ以上の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(1648)に直接、または周辺バス(1649)を介して接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0157】
CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に記憶されることができる。推移データはRAM(1646)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(1647)に記憶されることができる。1つ以上のCPU(1641)、GPU(1642)、大容量ストレージ(1647)、ROM(1645)、RAM(1646)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速保存および検索が可能になる。
【0158】
コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
【0159】
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(1600)、特にコア(1640)は、1つ以上の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で紹介したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(1647)またはROM(1645)などの非一時的な性質を持つコア(1640)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(1640)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1640)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1646)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更することを含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(1644))に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
付録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:Groups of Pictures(ピクチャ群)
TU:Transform Unit(変換ユニット)
PU:Prediction Unit(予測ユニット)
CTU:Coding Tree Unit(コーディングツリーユニット)
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 Communication(移動通信用グローバルシステム)
LTE:Long-Term Evolution(長期的な進化)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
FPGA:Field Programmable Gate Array(フィールド・プログラマブル・ゲート・アレイ)
SSD:Solid-State Drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(コーディングユニット)
【0160】
本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を考案できることが理解されよう。
【国際調査報告】