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

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

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

特開2024-156757適応的ローカル参照範囲によるイントラブロックコピー
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156757
(43)【公開日】2024-11-06
(54)【発明の名称】適応的ローカル参照範囲によるイントラブロックコピー
(51)【国際特許分類】
   H04N 19/593 20140101AFI20241029BHJP
   H04N 19/105 20140101ALI20241029BHJP
   H04N 19/159 20140101ALI20241029BHJP
   H04N 19/176 20140101ALI20241029BHJP
【FI】
H04N19/593
H04N19/105
H04N19/159
H04N19/176
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024120788
(22)【出願日】2024-07-26
(62)【分割の表示】P 2023532307の分割
【原出願日】2022-08-24
(31)【優先権主張番号】63/237,098
(32)【優先日】2021-08-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/893,877
(32)【優先日】2022-08-23
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】      (修正有)
【課題】ビデオ復号のための方法、装置及び非一時的なコンピュータ読み取り可能記憶媒体を提供する。
【解決手段】ビデオ復号装置は、符号化ビデオビットストリームから現在ピクチャ内のブロック内の領域を再構成する処理回路を含む。ブロックは、現在ピクチャ内の1つ以上の符号化ブロック(CB)を含む。再構成の後に、処理回路は、(i)再構成領域のコンテンツ及び/又は(ii)再構成領域の予測情報に基づいて、イントラブロックコピー(IBC, intra block copy)モードの以前のローカル参照範囲を更新するか否かを決定する。IBCモードの以前のローカル参照範囲を更新しないという決定に応じて、IBCモードの以前のローカル参照範囲は更新されない。処理回路は、再構成領域を含まない以前のローカル参照範囲に基づくIBCモードを使用して、現在ピクチャ内の符号化ブロックを復号する。
【選択図】図19
【特許請求の範囲】
【請求項1】
ビデオデコーダが実行するビデオ復号のための方法であって、
符号化ビデオビットストリームから現在ピクチャ内のブロック内の領域を再構成するステップであって、前記ブロックは、前記現在ピクチャ内の1つ以上の符号化ブロック(CB)を含む、ステップと、
前記再構成の後に、(i)再構成領域のコンテンツ及び/又は(ii)前記再構成領域の予測情報に基づいて、イントラブロックコピー(IBC)モードの以前のローカル参照範囲を更新するか否かを決定するステップと、
前記IBCモードの前記以前のローカル参照範囲を更新しないという決定に応じて、前記IBCモードの前記以前のローカル参照範囲は更新されず、前記再構成領域を含まない前記以前のローカル参照範囲に基づく前記IBCモードを使用して、前記現在ピクチャ内の符号化ブロック(CB)を復号するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本出願は、2022年8月23日に出願された米国特許出願第17/893,877号「INTRA BLOCK COPY WITH AN ADAPTIVE LOCAL REFERENCE RANGE」に対する優先権の利益を主張するものであり、当該出願は、2021年8月25日に出願された米国仮出願第63/237,098号「IntraBC with Adaptive Local Reference Range」に対する優先権の利益を主張するものである。先の出願の開示の全内容を参照により援用する。
【0002】
[技術分野]
本開示は、概してビデオ符号化(コーディング)に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で出願時に先行技術として適格でないことがあり得る本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
画像及び/又はビデオ符号化及び復号は、動き補償を伴うインターピクチャ予測を使用して実行できる。非圧縮デジタル画像及び/又はビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間的寸法を有する。一連のピクチャは、固定又は可変のピクチャレート(非公式にはフレームレートとしても知られる)、例えば、毎秒60ピクチャ又は60Hzのピクチャレートを有することができる。非圧縮画像及び/又はビデオは、特定のビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
画像及び/又はビデオ符号化及び復号の1つの目的は、圧縮による入力画像及び/又はビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅及び/又は記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことがある。本明細書における説明は例示的な例としてビデオ符号化/復号を使用するが、本開示の真意を逸脱することなく、同じ技術が画像符号化/復号にも同様に適用できる。可逆圧縮及び不可逆圧縮の双方、並びにそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮された元の信号から、元の信号の正確なコピーが再構成できる技術をいう。不可逆圧縮を使用する場合、再構成された信号は、元の信号と同一ではないことがあり得るが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途のために有用にするのに十分小さい。ビデオの場合、不可逆圧縮が広く用いられている。許容される歪みの量はアプリケーションに依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容することがある。達成可能な圧縮比は、より高い許容可能/認容可能な歪みはより高い圧縮比をもたらすことができる、ということを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、変換処理、量子化、及びエントロピー符号化を含むいくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、ピクチャは空間的にサンプルのブロックに分割される。サンプルの全てのブロックがイントラモードで符号化される場合、そのピクチャはイントラピクチャであり得る。イントラピクチャと、独立デコーダリフレッシュピクチャのようなその派生物は、デコーダ状態をリセットするために使用でき、よって、符号化ビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用できる。イントラブロックのサンプルを変換にかけることができ、変換係数は、エントロピー符号化の前に量子化されることができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えばMPEG-2世代の符号化技術において用いられている伝統的なイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、データのブロックの符号化/復号中に得られた周囲のサンプルデータ及び/又はメタデータに基づいて予測を実行することを試みる技術を含む。そのような技術は、以下では「イントラ予測」技術と呼ばれる。少なくともいくつかの場合には、イントラ予測は再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに注意されたい。
【0009】
様々な形のイントラ予測があり得る。所与のビデオ符号化技術において、そのような技術の2つ以上が使用できる場合、使用される技術は、イントラ予測モードで符号化されることができる。特定の場合には、イントラ予測モードは、サブモード及び/又はパラメータを有することができ、サブモード及び/又はパラメータは、個別に符号化されることができ、或いは、予測モードを定義するモードコードワードに含められることができる。所与のモード、サブモード及び/又はパラメータの組み合わせのためにどのコードワードを使用するかは、イントラ予測を通して符号化効率利得に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM)、多用途ビデオ符号化(VVC)、及びベンチマークセット(BMS)のようなより新しい符号化技術においてさらに洗練された。予測子ブロックは、既に利用可能なサンプルの近傍サンプル値を使用して形成されることができる。近傍サンプルのサンプル値が、ある方向に従って予測子ブロックにコピーされる。使用される方向への参照は、ビットストリームにおいて符号化されることができ、或いは、それ自身予測されてもよい。
【0011】
図1Aを参照すると、右下に、H.265で定義されている33個の可能な予測子方向(35個のイントラモードのうち33個の角度モードに対応する)から知られている9個の予測子方向のサブセットが描かれている。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度の右上のサンプル(単数又は複数)から予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度の、サンプル(101)の左下のサンプル(単数又は複数)から予測されることを示す。
【0012】
引き続き図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が描かれている(太い破線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」とY次元におけるその位置(例えば、行インデックス)及びX次元におけるその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)最初のサンプルである。同様に、サンプルS44は、Y及びX次元の双方においてブロック(104)内の4番目のサンプルである。ブロックが4×4サンプルのサイズなので、S44は右下にある。さらに、同様の番号付けスキームに従う参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)でラベル付けされる。H.264とH.265の双方において、予測サンプルは再構成中のブロックの近傍であり、そのため負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、信号伝達(シグナリング)される予測方向によって示される近傍サンプルから参照サンプル値をコピーすることによって機能できる。例えば、符号化ビデオビットストリームは、このブロックについて、矢印(102)と整合する予測方向を示す信号伝達を含むと想定する。すなわち、サンプルは、水平から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個のイントラ予測方向を描く概略図(110)を示している。
【0017】
方向を表す符号化ビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオ符号化技術毎に異なることができる。そのようなマッピングは、例えば、単純な直接的マッピングから、コードワード、最確モードに関わる複雑な適応方式、及び同様の技術まであり得る。しかしながら、ほとんどの場合、ビデオコンテンツにおいて、他の特定の方向よりも統計的に起こりにくい特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるので、良好に機能するビデオ符号化技術においては、そうしたより可能性の低い方法は、より可能性の高い方向よりもより多くのビット数によって表わされる。
【0018】
動き補償は、不可逆圧縮技術であることがあり、且つ、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後に、新しく再構成されるピクチャ又はその一部の予測のために使用される技術に関することができる。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じであることもできる。MVは、X及びYの2次元、又は3次元を有することができ、第3の次元は、使用される参照ピクチャの指示である(これは、間接的に、時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVは、他のMVから、例えば、再構成中の領域に空間的に隣接し、復号順でそのMVに先行するサンプルデータの別の領域に関連するMVから予測されることができる。そうすることにより、MVの符号化に必要とされるデータ量を大幅に削減することができ、それにより冗長性を除去し、圧縮を増加させることができる。MV予測が有効に機能できるのは、例えば、カメラから導出される入力ビデオ信号(ナチュラルビデオとして知られる)を符号化する際に、単一のMVが適用可能である領域よりも大きな領域が同様の方向に移動し、よって、特定の場合には、近傍領域のMVから導出された同様の動きベクトルを用いて予測できるという、統計的確からしさがあるからである。その結果、所与の領域について見出されるMVが、周囲のMVから予測されるMVと同様又は同一であることになり、そして、それは、エントロピー符号化の後、MVを直接符号化する場合に使用されるであろうものよりも少数のビットで表現できる。いくつかの場合には、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測自身が、例えば、いくつかの周囲のMVから予測子を計算する際の丸め誤差のために、不可逆であることがある。
【0020】
H.265/HEVC(ITU-T Rec. H.265、「High Efficiency Video Coding」、December 2016)には、様々なMV予測機構が記載されている。H.265が提供する多くのMV予測機構のうち、図2を参照して説明するものは、以後、「空間マージ(spatial merge)」と呼ばれる技術である。
【0021】
図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセスの間にエンコーダによって見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば(復号順で)最新の参照ピクチャから、A0、A1、及びB0、B1、B2(それぞれ202~206)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の側面は、ビデオ符号化及び復号のための方法及び装置を提供する。いくつかの例では、ビデオ復号のための装置は処理回路を含む。処理回路は、符号化ビデオビットストリームから現在ピクチャ内のブロック内の領域を再構成するように構成される。ブロックは、現在ピクチャ内の1つ以上の符号化ブロック(CB, coding block)を含む。再構成の後に、処理回路は、(i)再構成領域のコンテンツ及び/又は(ii)再構成領域の予測情報に基づいて、イントラブロックコピー(IBC, intra block copy)モードの以前のローカル参照範囲を更新するか否かを決定することができる。IBCモードの以前のローカル参照範囲を更新しないという決定に応じて、IBCモードの以前のローカル参照範囲は更新されず、処理回路は、再構成領域を含まない以前のローカル参照範囲に基づくIBCモードを使用して、現在ピクチャ内の符号化ブロック(CB)を復号する。
【0023】
一実施形態では、処理回路は、再構成領域内の再構成サンプルに基づいて、再構成領域のコンテンツを決定し、再構成領域のコンテンツは、再構成領域内のテクスチャコンテンツの割合及び/又はスクリーンコンテンツの割合を示す。処理回路は、再構成領域内のテクスチャコンテンツの割合及び/又はスクリーンコンテンツの割合に基づいて、IBCモードの以前のローカル参照範囲を更新するか否かを決定することができる。一例では、再構成領域のコンテンツはスクリーンコンテンツを含まず、処理回路はIBCモードの以前のローカル参照範囲が更新されないと決定する。
【0024】
一実施形態では、処理回路は、領域の予測モードを示す領域の予測情報を復号し、予測モードが所定の予測モードのセットにあるか否かに基づいて、IBCモードの以前のローカル参照範囲を更新するか否かを決定する。
【0025】
一実施形態では、処理回路は、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かを示す領域の予測情報を復号する。処理回路は、予測情報の中で、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かの指示に基づいて、IBCモードの以前のローカル参照範囲を更新するか否かを決定する。
【0026】
一例では、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かは、領域の予測情報に含まれるフラグによって示され、処理回路は、フラグに基づいてIBCモードの以前のローカル参照範囲を更新するか否かを決定する。一例では、フラグは、IBCモードでローカル参照範囲を更新する際に、ブロック内のいずれかの再構成サンプルが使用されるか否かを示す。
【0027】
一実施形態では、IBCモードの以前のローカル参照範囲が更新されると決定され、以前のローカル参照範囲は参照サンプルメモリ(RSM, reference sample memory)に記憶された複数の領域を含む。複数の領域は参照サンプルを含むことができる。処理回路は、複数の領域のコンテンツに基づいて複数の領域をランク付けでき、コンテンツのそれぞれは複数の領域のそれぞれ1つに対応する。処理回路は、複数の領域のランク付けに基づいて、再構成領域内の再構成サンプルによって置き換えられる複数の領域内の領域を選択し、以前のローカル参照範囲内の選択された領域を再構成領域内の再構成サンプルに置き換えることによって、現在のローカル参照範囲を生成することができる。
【0028】
一例では、複数の領域のそれぞれ1つに対応するコンテンツのそれぞれは、対応する領域内のスクリーンコンテンツの割合又はテクスチャコンテンツの割合によって示される。処理回路は、複数の領域のスクリーンコンテンツのそれぞれの割合又はテクスチャコンテンツのそれぞれの割合に基づいて、複数の領域をランク付けする。
【0029】
一実施形態では、IBCモードの以前のローカル参照範囲が更新されると決定され、以前のローカル参照範囲はRSMに記憶された複数の領域を含む。複数の領域の各領域は、所定の予測モードのセット内の1つ以上の予測モードでコーディングされた、それぞれの領域内の特別にコーディングされた複数の参照サンプルを含む。処理回路は、複数の領域内の特別にコーディングされた複数の参照サンプルのそれぞれに基づいて、複数の領域をランク付けできる。処理回路は、複数の領域のランク付けに基づいて、再構成領域内の再構成サンプルによって置き換えられる複数の領域内の領域を選択し、以前のローカル参照範囲内の選択された領域を再構成領域内の再構成サンプルに置き換えることによって、現在のローカル参照範囲を生成することができる。
【0030】
一実施形態では、IBCモードの以前のローカル参照範囲が更新されると決定され、以前のローカル参照範囲はRSMに記憶された複数の領域を含む。複数の領域の各領域に関連する参照頻度は、現在ピクチャ内のCBを予測するために使用されるブロックベクトルによってそれぞれの領域が参照される回数を示す。処理回路は、複数の領域のそれぞれの参照頻度に基づいて複数の領域をランク付けできる。処理回路は、複数の領域のランク付けに基づいて、再構成領域内の再構成サンプルによって置き換えられる複数の領域内の領域を選択し、以前のローカル参照範囲内の選択された領域を再構成領域内の再構成サンプルに置き換えることによって、現在のローカル参照範囲を生成することができる。
【0031】
一実施形態では、以前のローカル参照範囲は複数の領域を含む。複数の領域の再構成サンプルは、複数の領域の1つにおけるサブ領域の再構成サンプルを除いて、RSMに記憶される。複数の領域の1つにおけるサブ領域の再構成サンプルは、複数の領域の1つにおけるサブ領域に対応するパディングされたサンプルをRSMに記憶するパディングプロセスによって置き換えられる。
【0032】
一実施形態では、再構成領域は再構成された符号化ブロックであるか、或いは、再構成領域のサイズはメモリ更新領域単位のサイズである。
【0033】
本開示の側面はまた、ビデオ復号のための方法を実行するために、少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的なコンピュータ読み取り可能記憶媒体を提供する。
【図面の簡単な説明】
【0034】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明白になるであろう。
図1A】イントラ予測モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の説明図である。
図2】一例における現在ブロック(201)及びその周囲のサンプルの例を示す。
図3】通信システム(300)の例示的なブロック図の概略図である。
図4】ある実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
図5】デコーダの例示的なブロック図の概略図である。
図6】エンコーダの例示的なブロック図の概略図である。
図7】例示的なエンコーダのブロック図を示す。
図8】例示的なデコーダのブロック図を示す。
図9】本開示の実施形態による現在符号化ユニットに関連するブロックベクトルを示す。
図10A】本開示の実施形態によるイントラブロックコピー(IBC)モードの参照領域を示す。
図10B】本開示の実施形態によるイントラブロックコピー(IBC)モードの参照領域を示す。
図10C】本開示の実施形態によるイントラブロックコピー(IBC)モードの参照領域を示す。
図10D】本開示の実施形態によるイントラブロックコピー(IBC)モードの参照領域を示す。
図11】空間的な参照サンプルメモリ(RSM)の例示的な連続更新プロセスを示す。
図12】制限された直近の再構成領域の例を示す。
図13】例示的なメモリ再利用メカニズムを示す。
図14A】現在SBの符号化中のRSMにおける例示的なメモリ更新プロセスを示す。
図14B】現在SBの符号化中のRSMにおける例示的なメモリ更新プロセスを示す。
図15】現在SBが復号されているときのRSMにおける例示的な適応的メモリ更新プロセスを示す。
図16】適応的メモリ更新プロセスにおいて使用される例示的なパディングプロセスを示す。
図17】RSMにおける例示的な適応的メモリ更新プロセスを示す。
図18】本開示の一実施形態による符号化プロセスの概要を示すフローチャートを示す。
図19】本開示の一実施形態による復号プロセスの概要を示すフローチャートを示す。
図20】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0035】
I.ビデオ/画像符号化技術の概要
【0036】
図3は、通信システム(300)の例示的なブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介した他方の端末デバイス(320)への伝送のために、ビデオデータ(例えば、端末デバイス(310)によって捕捉されたビデオピクチャのストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化ビデオビットストリームの形で伝送されることができる。端末デバイス(320)は、ネットワーク(350)から、符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディアサービスアプリケーション等において一般的であり得る。
【0037】
別の例では、通信システム(300)は、例えばビデオ会議中の符号化されたビデオデータの双方向伝送を実行する第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した、端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のために、ビデオデータ(例えば、端末デバイスによって捕捉されたビデオピクチャのストリーム)を符号化してもよい。端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信された符号化されたビデオデータを受信してもよく、符号化されたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能な表示デバイスにおいてビデオピクチャを表示してもよい。
【0038】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、それぞれサーバ、パーソナルコンピュータ及びスマートフォンとして示されているが、本開示の原理は、それに限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議設備での応適用を見出す。ネットワーク(350)は、例えば有線(配線)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。ここでの議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、以下に説明しない限り、本開示の動作には重要ではないことがある。
【0039】
図4は、開示される主題のためのアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダを示す。開示される主題は、例えば、ビデオ会議、デジタルTV、ストリーミングサービス、CD、DVD、メモリスティック等を含むデジタル媒体上の圧縮ビデオの記憶等を含む、他のビデオ対応アプリケーションにも等しく適用可能であり得る。
【0040】
ストリーミングシステムは、ビデオソース(401)、例えばデジタルカメラを含むことができ、例えば非圧縮のビデオピクチャのストリーム(402)を生成する捕捉サブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって取り込まれたサンプルを含む。符号化されたビデオデータ(404)(又は符号化されたビデオビットストリーム)と比較した場合の高いデータボリュームを強調するために太線として描かれているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にするため或いは実現するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(402)と比較した場合の、より低いデータボリュームを強調するために細い線として描かれている、符号化されたビデオデータ(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の文脈で使用されてもよい。
【0041】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0042】
図5は、ビデオデコーダ(510)の例示的なブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(310)の代わりに使用できる。
【0043】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよい。ある実施形態において、一度に1つの符号化ビデオシーケンスが受信され、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスの復号から独立である。符号化ビデオシーケンスは、チャネル(501)から受信されてもよく、該チャネルは、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(531)は、符号化されたビデオデータを、他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリームと一緒に受信してもよく、これらのデータは、それぞれの使用エンティティ(図示せず)を転送されてもよい。受信機(531)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタ対策として、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下「パーサ」)との間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、ビデオデコーダ(510)の外部にあることができる(図示せず)。さらに他のアプリケーションでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、さらに、例えば再生タイミングを扱うために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受信機(531)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合は、バッファメモリ(515)は、必要とされなくてもよく、或いは、小さくてもよい。インターネットのようなベストエフォート型のパケットネットワークでの使用のためには、バッファメモリ(515)が要求されることがあり、比較的大きいことがあり、有利には適応サイズであることができ、少なくとも部分的に、ビデオデコーダ(510)の外部でオペレーティングシステム又は同様の要素(図示せず)において実装されてもよい。
【0044】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的には、レンダーデバイス(512)(例えば表示画面)のようなレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスは、図5に示されるように、電子デバイス(530)の一体的な部分ではなく、電子デバイス(530)に結合されることができる。レンダリングデバイス(単数又は複数)のための制御情報は、補足エンハンスメント情報(Supplementary Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセットフラグメント(図示せず)の形でもよい。パーサ(520)は、受信された符号化ビデオシーケンスをパースする/エントロピー復号することができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性あり又はなしの算術符号化等を含む、様々な原理に従うことができる。パーサ(520)は、符号化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、グループオブピクチャ(Group of Pictures、GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit、CU)、ブロック、変換ユニット(Transform Unit、TU)、予測ユニット(Prediction Unit、PU)等を含むことができる。パーサ(520)はまた、符号化ビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
【0045】
パーサ(520)は、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
【0046】
シンボル(521)の再構成は、符号化されたビデオピクチャ又はその諸部分のタイプ(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットがどのように関わるかは、符号化ビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御されることができる。パーサ(520)と下記の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確のため、描かれていない。
【0047】
既に述べた機能ブロックのほかに、ビデオデコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能ユニットへの概念的な細分が適切である。
【0048】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)から、量子化された変換係数及び制御情報をシンボル(単数又は複数)(521)として受信する。制御情報は、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む。スケーラ/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0049】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化されたブロックに関することができる。イントラ符号化されたブロックは、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの、以前に再構成された部分からの予測情報を使用することができるブロックである。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取ってきた、周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。集計器(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加算する。
【0050】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、予測のために使用されるサンプルを取ってくるために参照ピクチャメモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラ/逆変換ユニットの出力(この場合、残差サンプル又は残差信号と呼ばれる)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取ってくる参照ピクチャメモリ(557)内のアドレスは、シンボル(521)の形で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、例えばX、Y、及び参照ピクチャ成分を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャメモリ(557)から取ってこられるサンプル値の補間、動きベクトル予測機構等を含むことができる。
【0051】
集計器(555)の出力サンプルは、ループフィルタユニット(556)内で様々なループフィルタリング技術にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされる。ビデオ圧縮はまた、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号順で)前の部分の復号中に得られたメタ情報に応答するとともに、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。
【0052】
ループフィルタユニット(556)の出力はサンプルストリームであることができ、これは、レンダーデバイス(512)に出力されることができ、また将来のインターピクチャ予測において使用するために参照ピクチャメモリ(557)に記憶されることができる。
【0053】
符号化されたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応する符号化されたピクチャが完全に再構成され、該符号化されたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、後続の符号化されたピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファが再割り当てされることができる。
【0054】
ビデオデコーダ(510)は、ITU-T勧告H.265のような所定のビデオ圧縮技術又は標準に従って復号動作を実行することができる。符号化ビデオシーケンスはビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準において文書化されているプロファイルに従うという意味で、符号化されたビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術又は標準において利用可能な全てのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、特定のツールを選択することができる。準拠のためにはまた、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることも必要であることがある。いくつかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャサイズ等を制約する。レベルによって設定された限界は、場合によっては、符号化ビデオシーケンスにおいて信号伝達される、HRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様及びメタデータを通じてさらに制約されることができる。
【0055】
ある実施形態において、受信機(531)は、符号化されたビデオとともに追加の(冗長な)データを受信してもよい。追加データは、符号化されたビデオシーケンス(単数又は複数)の一部として含まれていてもよい。追加データは、データを適正に復号するため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号等の形であり得る。
【0056】
図6は、ビデオエンコーダ(603)の例示的なブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例におけるビデオエンコーダ(403)の代わりに使用できる。
【0057】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオソース(601)(これは図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0058】
ビデオソース(601)は、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCB、RGB、…)及び任意の好適なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形で、ビデオエンコーダ(603)によって符号化されるべきソースビデオシーケンスを提供することができる。メディアサービスシステムにおいては、ビデオソース(601)は、事前に準備されたビデオを記憶している記憶デバイスでもよい。ビデオ会議システムにおいては、ビデオソース(601)は、ローカルでの画像情報をビデオシーケンスとして捕捉するカメラでもよい。ビデオデータは、シーケンスで見たときに動きを付与する複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0059】
ある実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャを、リアルタイムで或いは要求される任意の他の時間的制約の下で、符号化及び圧縮して、符号化ビデオシーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。かかる結合は、明確のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャスキップ、量子化器、レート‐歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0060】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループにおいて動作するように構成される。思い切って単純化した説明として、一例では、符号化ループは、ソース符号化器(630)(例えば、符号化されるべき入力ピクチャと参照ピクチャ(単数又は複数)に基づいてシンボルストリームのようなシンボルを生成することを受け持つ)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモートの)デコーダも生成するであろうのと同様の仕方でサンプルデータを生成するよう前記シンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャメモリ(634)の内容もローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0061】
「ローカル」デコーダ(633)の動作は、図5との関連で既に上記で詳細に述べた「リモート」デコーダ、例えばビデオデコーダ(410)の動作と同じでもよい。しかしながら、簡単に図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)及びパーサ(420)による、シンボルの符号化ビデオシーケンスへの符号化/復号が可逆であり得るので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピー復号部は、ローカルデコーダ(633)においては完全には実装されなくてもよい。
【0062】
ある実施形態では、デコーダ内に存在するパース/エントロピー復号を除くデコーダ技術は、対応するエンコーダ内で同一又は実質的に同一の機能的形態で存在する。したがって、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、省略することができる。特定の領域において、より詳細な説明が以下に提供される。
【0063】
動作中、いくつかの例では、ソース符号化器(630)は、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の以前に符号化されたピクチャを参照して、入力ピクチャを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャ(単数又は複数)のピクセルブロックとの間の差分を符号化する。
【0064】
ローカルビデオデコーダ(633)は、ソース符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号することができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスであり得る。符号化されたビデオデータがビデオデコーダ(図6には示さず)で復号され得るとき、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャメモリ(634)に格納させることができる。このようにして、ビデオエンコーダ(603)は、遠端のビデオデコーダによって得られるであろう再構成された参照ピクチャとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャのコピーを、ローカルに記憶することができる。
【0065】
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測参照として機能し得るサンプルデータ(候補参照ピクセルブロックとして)又は特定のメタデータ、例えば参照ピクチャ動きベクトル、ブロック形状等を求めて、参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプルブロック/ピクセルブロック毎に(on a sample block-by-pixel block basis)動作し得る。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0066】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソース符号化器(630)の符号化動作を管理してもよい。
【0067】
上記の機能ユニット全ての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化等といった技術に従ってシンボルに無損失圧縮を適用することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0068】
送信機(640)は、エントロピーエンコーダ(645)によって生成される符号化ビデオシーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオ符号化器(630)からの符号化されたビデオデータを、送信されるべき他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージすることができる。
【0069】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャに、ある符号化ピクチャタイプを割り当てることができる。符号化ピクチャタイプは、それぞれのピクチャに適用され得る符号化技術に影響し得る。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つとして割り当てられることがある。
【0070】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化され、復号され得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形、並びにそれらのそれぞれの用途及び特徴を認識する。
【0071】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号され得るものであり得る。
【0072】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号され得るものであり得る。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0073】
ソースピクチャは、通常では、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に分割され、ブロック毎に符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるところにより、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前に符号化された1つの参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。
【0074】
ビデオエンコーダ(603)は、ITU-T勧告H.265等の所定のビデオ符号化技術又は標準に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測符号化動作を含む、様々な圧縮動作を実行することができる。よって、符号化されたビデオデータは、使用されるビデオ符号化技術又は標準によって指定されるシンタックスに準拠し得る。
【0075】
ある実施形態において、送信機(640)は、符号化されたビデオと一緒に追加データを送信してもよい。ソース符号化器(630)は、符号化ビデオシーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNRエンハンスメント層、冗長ピクチャ及びスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント等を含んでいてもよい。
【0076】
ビデオは、時間的シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてもよい。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在ピクチャと呼ばれる符号化/復号対象の特定のピクチャは、ブロックに分割される。現在ピクチャ内のブロックが、ビデオにおける、前に符号化され、且つ、まだバッファに入れられている参照ピクチャ内の参照ブロックに類似する場合、現在ピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによって符号化できる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを識別する第3の次元を有することができる。
【0077】
いくつかの実施形態において、インターピクチャ予測において双予測技術が使用できる。双予測技術によれば、いずれもビデオにおいて現在ピクチャより復号順で先行する(ただし、表示順では、それぞれ過去及び将来でもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測できる。
【0078】
さらに、符号化効率を改善するために、インターピクチャ予測においてマージモード技術が使用できる。
【0079】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオピクチャのシーケンスにおけるピクチャは、圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャにおけるそれらのCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセル等の同じサイズを有する。一般に、CTUは、1つのルマCTB及び2つのクロマCTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、再帰的に、1つ以上の符号化ユニット(CU)に四分木分割されていくことができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割されることができる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのような、そのCUについての予測タイプを決定するために解析される。CUは時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)及び2つのクロマPBを含む。ある実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等、ピクセルについての値(例えば、ルマ値)の行列を含む。
【0080】
図7は、ビデオエンコーダ(703)の例示的な図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0081】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプル等の予測ブロックのような処理ブロックについてサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、イントラモード、インターモード、又は双予測モードのどれを使用して、最もよく符号化されるかを、例えばレート‐歪み最適化を使用して、判別する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するためにイントラ予測技術を使用してもよい。処理ブロックがインターモード又は双予測モードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するために、それぞれ、インター予測技術又は双予測技術を使用してもよい。特定のビデオ符号化技術では、マージモード(merge mode)は、動きベクトルが1つ以上の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、インターピクチャ予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他のコンポーネントを含む。
【0082】
図7の例では、ビデオエンコーダ(703)は、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、及びエントロピー符号化器(725)を、図7に示されるように一緒に結合されて含む。
【0083】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技術を使用してインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号された、復号された参照ピクチャである。
【0084】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、該ブロックを、同じピクチャ内で既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、該イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算する。
【0085】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成される。一例では、全般コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。
【0086】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な実施形態において、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用されることができる。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために好適に処理され、復号されたピクチャは、メモリ回路(図示せず)内にバッファリングされ、いくつかの例では参照ピクチャとして使用されることができる。
【0087】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC標準のような好適な標準に従って様々な情報をビットストリームに含めるように構成される。一例では、エントロピーエンコーダ(725)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適な情報をビットストリーム内に含めるように構成される。開示される主題によれば、インターモード又は双予測モードのいずれかのマージサブモードにおいてブロックを符号化する場合は、残差情報は存在しないことを注意しておく。
【0088】
図8は、ビデオデコーダ(810)の例示的な図を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号して、再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0089】
図8の例では、ビデオデコーダ(810)は、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)が図8に示されるように一緒に結合されたものを含む。
【0090】
エントロピーデコーダ(871)は、符号化されたピクチャから、その符号化されたピクチャが構成されるシンタックスエレメントを表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモードにおける後者の2つ)、及びイントラデコーダ(872)又はインターデコーダ(880)によってそれぞれ予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報等)を含むことができる。シンボルはまた、例えば量子化された変換係数の形の残差情報等を含むことができる。一例では、予測モードがインター又は双予測モードである場合、インター予測情報がインターデコーダ(880)に提供される。予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0091】
インターデコーダ(880)は、インター予測情報を受信し、該インター予測情報に基づいてインター予測結果を生成するように構成される。
【0092】
イントラデコーダ(872)は、イントラ予測情報を受信し、該イントラ予測情報に基づいて予測結果を生成するように構成される。
【0093】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差情報を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)をも必要とすることがあり、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは、低ボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0094】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差情報と、予測結果(場合に応じてイントラ又はインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成され、該再構成されたブロックは再構成されたピクチャの一部であってもよく、該再構成されたピクチャは再構成されたビデオの一部であってもよい。視覚的品質を改善するためにデブロッキング動作等の他の好適な動作が実行されることができることを注意しておく。
【0095】
なお、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、任意の好適な技術を用いて実装できる。ある実施形態では、ビデオエンコーダ(403)、(603)、(703)及びビデオデコーダ(410)、(510)、(810)は、1つ以上の集積回路を使用して実装できる。別の実施形態では、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装できる。
【0096】
II.イントラブロックコピー(IBC又はIntraBC)モード
【0097】
本開示は、ローカル参照範囲によるイントラブロックコピーモードに関連する高度ビデオ/画像コーディング技術について説明する。
【0098】
II.1 HEVC及びVVCにおけるIBCモード
【0099】
II.1.1 HEVCにおける現在ピクチャ参照(CPR, Current Picture Referencing)
【0100】
IBCコーディングツールは、HEVCスクリーンコンテンツコーディング(SCC, Screen Content Coding)拡張機能においてCPRとして使用できる。IBCモードは、現在ピクチャがIBCモードで参照ピクチャとして使用されるインター予測に使用されるコーディング技術を使用することができる。IBCモードを使用する利点は、サンプルを参照するためのアドレッシングメカニズムの表現として2次元(2D)空間ベクトルが使用できるIBCモードの参照構造である。IBCモードのアーキテクチャの利点は、IBCの統合が仕様に対する比較的小さい変更を必要とすることであり、製造者がHEVCバージョン1のような特定のインター予測技術を既に実装している場合、実装の負担を軽減できることである。HEVC SCC拡張機能におけるCPRは、特別なインター予測モードとすることができ、その結果、インター予測モードのシンタックス構造と同じシンタックス構造と、インター予測モードの復号プロセスと同様の復号プロセスとを生じる。
【0101】
IBCモードは、インター予測プロセスに統合できる。いくつかの例では、IBCモード(又はCPR)はインター予測モードであり、イントラのみの予測スライスが、IBCモードの使用を可能にする予測スライスになる。IBCモードが適用可能である場合、コーダは、現在ピクチャを指すポインタについて、参照ピクチャリストを1つのエントリだけ拡張できる。例えば、現在ピクチャは、共有された復号ピクチャバッファ(DPB, decoded picture buffer)の1ピクチャサイズのバッファを使用する。IBCモードの信号伝達は暗黙的に行うことができる。例えば、選択された参照ピクチャが現在ピクチャを指している場合、CUはIBCモードを使用できる。様々な実施形態では、IBCプロセスにおいて使用される参照サンプルはフィルタリングされず、これは通常のインター予測とは異なる。IBCプロセスにおいて使用される対応する参照ピクチャは、長期参照である。メモリ要件を最小化するために、コーダは現在ピクチャを再構成した後にバッファを解放でき、例えば、コーダは現在ピクチャを再構成した直後にバッファを解放する。再構成ピクチャのフィルタリングされたバージョンは、再構成ピクチャが参照ピクチャである場合、短期参照としてコーダによってDPBに戻されることができる。
【0102】
ブロックベクトル(BV, block vector)コーディングでは、再構成領域への参照は、インター予測と同様の2D BVを介して実行できる。BVの予測及びコーディングは、インター予測プロセスにおけるMV予測及びコーディングを再利用できる。一例では、ルマBVは、通常のインター符号化CTUに使用されるMVの1/4の精度ではなく、整数の解像度になる。
【0103】
図9は、本開示の実施形態による現在CU(901)に関連するBVを示す。各正方形(900)は、CTUを表すことができる。灰色で網掛けされた領域は、既にコーディングされた領域(例えば、既に符号化された領域)を表し、白色の網掛けされていない領域は、コーディングされるべき領域(例えば、符号化されるべき領域)を表す。再構成中の現在CTU(900(4))は、現在CU(901)と、コーディングされた領域(902)と、コーディングされるべき領域(903)とを含む。一例では、現在CU(901)をコーディングした後に、領域(903)がコーディングされる。
【0104】
HEVCのような例では、現在CTU(900(4))の右上にある2つのCTU(900(1)~900(2))を除く灰色で網掛けされた領域が、ウェーブフロント並列処理(WPP, Wavefront Parallel Processing)を可能にするためのIBCモードにおける参照領域として使用できる。HEVCで許可されるBVは、参照領域(例えば、2つのCTUを除く灰色で網掛けされた領域(900(1)~900(2)))内にあるブロックを指すことができる。例えば、HEVCで許可されるBV(905)は、参照ブロック(911)を指す。
【0105】
VVCのような例では、IBCモードにおける参照領域として、現在CTU(900(4))に加えて、現在CTU(900(4))の左にある左隣接CTU(900(3))のみが許可される。一例では、VVCにおいてIBCモードで使用される参照領域は点線の領域(915)内にあり、コーディングされたサンプルを含む。例えば、VVCで許可されるBV(906)は、参照ブロック(912)を指す。
【0106】
いくつかの例では、BVの復号された動きベクトル差(MVD, motion vector difference)(BV差(BVD, BV difference)とも呼ばれる)は、最終的なBVを再構成するために対応するBV予測子に追加する前に、2だけ左シフトされることができる。
【0107】
いくつかの実施形態では、実装及び性能の理由で、IBCモードの特別な処理が必要となる場合があり、IBCモード及びインター予測モード(例えば、通常のインター予測モード)は、以下に記載するように異なる可能性がある。一例では、IBCモードで使用される参照サンプルはフィルタリングされない(例えば、DBF及びサンプル適応オフセット(SAO, sample adaptive offset)フィルタのようなループ内フィルタリングプロセスが適用される前の再構成サンプル)。HEVCの他のインター予測モード(例えば、通常のインター予測モード)は、フィルタリングされたサンプル、例えば、ループ内フィルタリングプロセスによってフィルタリングされた参照サンプルを使用できる。
【0108】
いくつかの例では、ルマサンプル補間はIBCモードで実行されない。クロマサンプル補間はIBCモードで実行できる。いくつかの例では、クロマサンプル補間は、クロマBVが対応するルマBVから導出されるときにクロマBVが非整数である場合にのみ必要となる。いくつかの例では、ルマサンプル補間及びクロマサンプル補間は、通常のインター予測モードで実行できる。
【0109】
IBCモードでは、クロマBVが非整数BVであり、参照ブロックが利用可能な領域(例えば、参照領域)の境界付近にある場合、特別な場合が発生する可能性がある。例えば、クロマ補間を実行するために、周囲の再構成サンプルは境界の外側にすることができる。一例では、単一の境界の隣(next-to-border)のラインを指すBVは、周囲の再構成サンプルが境界の外側になることを生じ得る。
【0110】
II.1.2 VVCにおけるIBCアーキテクチャ
【0111】
HEVC SCC拡張におけるIBCモードの有効な参照領域は、図9に記載のように、並列処理の目的でいくつかの例外を除き、現在ピクチャの既に再構成された領域全体を含むことができる。HEVCにおいて使用される参照領域の欠点は、ハードウェア実装で外部メモリを使用する可能性があるDPBにおける更なるメモリの要件を含む可能性がある。外部メモリへの更なるアクセスはメモリ帯域幅を増加させる可能性があり、DPBの使用は魅力的ではない可能性がある。いくつかの実施形態では、IBCモードのためにオンチップで実現できる固定メモリ(例えば、固定サイズのメモリ)がVVCで使用できる。IBCモードにおけるオンチップ固定メモリは、ハードウェアアーキテクチャにおけるIBCモードの実装の複雑さを大幅に減少させることができる。一例では、IBCモードにおけるオンチップ固定メモリはレイテンシを減少させることができる。いくつかの例では、HEVC SCC拡張のように、変更は、インター予測プロセス内の統合から離れた信号伝達の概念に対処する。
【0112】
図10A図10Dに示す例では、IBCモードで使用される参照領域を記憶するために固定メモリが割り当てられることができる。固定メモリは、参照サンプルメモリ(RSM, reference sample memory)と呼ばれることができる。RSMの一部は、コーディングプロセス(例えば、符号化プロセス又は再構成プロセス)中に異なる中間時点で更新できる。図10A図10Dは、本開示の実施形態によるコーディングプロセス(例えば、符号化プロセス又は再構成プロセス)中の様々な中間時点でのRSM更新プロセスを示す。図10A図10Dは、VVCにおけるIBCモードの参照領域と、VVCにおける構成とを示す。
【0113】
図10A図10Dを参照すると、現在CTU(1020)は、現在CTU(1020)の左にあるCTU(例えば、左隣接CTU)(1010)に隣接する。いくつかの例では、現在CTU(1020)は4つの領域(1021)~(1024)を含む。左隣接CTU(1010)は、それぞれ領域(1021)~(1024)に対応する4つの領域(1011)~(1014)を含むことができる。領域(1011)~(1014)の位置は、それぞれ領域(1021)~(1024)の位置からCTU(1020)の幅だけ左シフトされる。RSMは、現在CTU(1020)の一部及び/又は左隣接CTU(1010)の一部を含むことができる。図10A図10Dに示す例では、RSMのサイズはCTUのサイズに等しい。薄い灰色で網掛けされた領域は左隣接CTU(1010)の参照サンプルを含むことができ、濃い灰色で網掛けされた領域は現在CTU(1020)の参照サンプルを含むことができ、白色の網掛けされていない領域はコーディングされるべき領域(例えば、来たるべきコーディング領域)を表すことができる。
【0114】
図10Aを参照すると、現在CTU(1020)のコーディングプロセスの開始時であるコーディングプロセスの第1の中間時点に、RSMは全体の左隣接CTU(1010)を含み、現在CTU(1020)のコーディングプロセスの開始時に、全体の左隣接CTU(1010)はIBCモードにおける参照領域として機能できる。現在CTU(1020)のコーディングプロセスの開始時におけるRSMは、領域(1021)~(1024)のいずれも含まない。
【0115】
図10Bを参照すると、領域(1021)はサブ領域(1031)~(1033)を含む。サブ領域(1031)は既にコーディングされており(例えば、符号化又は再構成されており)、サブ領域(1032)はコーディングされている(例えば、符号化中又は再構成中である)現在CUであり、サブ領域(1033)は以降にコーディングされる。現在CTU(1020)のサブ領域(1032)がコーディングされている現在CTU(1020)のコーディングプロセスの第2の中間時点において、RSMは左隣接CTU(1010)の一部と現在CTU(1020)の一部を含むように更新される。例えば、RSMは左隣接CTU(1010)の領域(1012)~(1014)と現在CTU(1020)のサブ領域(1031)とを含む。第2の中間時点における参照領域は、左隣接CTU(1010)の領域(1012)~(1014)と現在CTU(1020)のサブ領域(1031)とを含むことができる。
【0116】
図10Cを参照すると、領域(1022)はサブ領域(1041)~(1043)を含む。サブ領域(1041)(濃い灰色の網掛け)は既にコーディングされており(例えば、エンコード又は再構成されており)、サブ領域(1042)はコーディングされている(例えば、符号化中又は再構成中である)現在CUであり、サブ領域(1043)(白色)は以降にコーディングされる。現在CTU(1020)のサブ領域(1042)がコーディングされている現在CTU(1020)のコーディングプロセスの第3の中間時点において、RSMは、(i)左隣接CTU(1010)の領域(1013)~(1014)と(ii)現在CTU(1020)の領域(1021)及びサブ領域(1041)とを含むように更新される。RSMにおいて、領域(1012)はサブ領域(1041)に置き換えられる。第3の中間時点における参照領域は、(i)左隣接CTU(1010)の領域(1013)~(1014)と、(ii)現在CTU(1020)の領域(1021)及びサブ領域(1041)とを含むことができる。
【0117】
図10Dを参照すると、領域(1024)はサブ領域(1051)~(1053)を含む。サブ領域(1051)(濃い灰色の網掛け)は既にコーディングされており(例えば、符号化又は再構成されており)、サブ領域(1052)はコーディングされている(例えば、符号化中又は再構成中である)現在CUであり、サブ領域(1053)(白色)は以降にコーディングされる。現在CTU(1020)のサブ領域(1052)がコーディングされている現在CTU(1020)のコーディングプロセスの第4の中間時点において、RSMは、現在CTU(1020)の領域(1021)~(1023)及びサブ領域(1051)を含むように更新される。第4の中間時点におけるRSMは、左隣接CTU(1010)内の領域を含まない。第4の中間時点における参照領域は、現在CTU(1020)の領域(1021)~(1023)及びサブ領域(1051)を含むことができる。
【0118】
II.1.3 VVCにおけるIBCモードのシンタックス及びセマンティクス
【0119】
VVCにおけるIBCアーキテクチャは、イントラ予測モード及びインター予測モード(例えば、通常のインター予測モード)に加えて、IBCモードが3番目の予測モードとなる専用のコーディングモードを形成できる。ビットストリームは、例えば、CUのサイズが64×64以下である場合、CUのIBCモードを示すIBCシンタックスエレメントを含むことができる。いくつかの例では、図10A図10Dを参照して記載されているようなRSMの連続メモリ更新メカニズムを実現するために、IBCモードを利用できる最大CUサイズは64×64である。一例では、参照サンプルアドレッシングメカニズムは、2Dオフセットを示しておりインター予測モードのベクトル(例えば、MV)コーディングプロセスを再利用することによって、HEVC SCC拡張において使用されているものと同じままである。一例では、CSTがアクティブである場合、コーダは対応するルマBVからクロマBVを導出できず、その結果、ルマCBについてのみIBCモードの使用を生じる。
【0120】
II.1.4 VVCにおけるIBCモードの参照領域及びサンプルメモリ
【0121】
VVCにおけるIBC設計は、参照サンプルを記憶するために色成分毎に固定メモリサイズ(例えば、128×128)を使用することができる。上記のように、固定メモリサイズは、ハードウェア実装におけるメモリ(例えば、RSM)のオンチップ配置を可能にすることができる。VVCのような例では、最大CTUサイズ及びIBCモードの固定メモリサイズは128×128である。一例では、最大CTUサイズ構成がIBCモードの固定メモリサイズ(例えば、128×128)に等しい場合、RSMは単一のCTUのサンプルを含む。
【0122】
RSMの特徴は、図10A図10Dに記載のように、左隣接CTUの再構成サンプルを現在CTUの再構成サンプルに置き換える連続更新メカニズムである。図10A図10Dは、コーディングプロセス(例えば、再構成プロセス)中の4つの中間時点における更新メカニズムの簡略化されたRSMの例を示す。図10A図10Cにおける薄い灰色で網掛けされた領域は、左隣接CTU(1010)の参照サンプルを含むことができ、図10B図10Dにおける濃い灰色で網掛けされた領域は、現在CTU(1020)の参照サンプルを含むことができる。図10Aを参照すると、現在CTU(1020)のコーディング(例えば、符号化又は再構成)の開始を表す第1の中間時点において、RSMは左隣接CTU(1010)の参照サンプルのみで構成される。図10B図10Dに示す他の3つの中間時点において、コーディングプロセス(例えば、符号化プロセス又は再構成プロセス)は、左隣接CTU(1010)のサンプルを現在CTU(1020)のサンプルに置き換えている。
【0123】
いくつかの例では、RSMは暗黙的に4つの領域に分割され、例えば、64×64の4つのばらばらな領域に分割される。RSMにおける領域のリセットは、コーダが現在CTU内の対応する領域にある第1のCUを処理するときに発生する可能性があり、ハードウェア実装作業を容易にする。例えば、RSMはCTU(例えば、左隣接CTU及び現在CTU)内の領域にマッピングされる。図11は、空間的にRSMの連続更新プロセス(1100)を示す。左隣接CTU(1010)及び現在CTU(1020)が図10A図10Dに示されている。左隣接CTU(1010)は領域(1011)~(1014)を含むことができる。現在CTU(1020)は領域(1021)~(1024)を含むことができる。現在CTU(1020)内の領域(1023)は、コーディングされている現在CU(1152)と、既にコーディングされたサブ領域(1151)と、コーディングされるべきサブ領域(1153)とを含むことができる。灰色で網掛けされた領域は、RSMに記憶されたサンプルを含むことができ、白色の網掛けされていない領域は、置き換えられたサンプル又はコーディングされていないサンプル(例えば、再構成されていないサンプル)を含むことができる。
【0124】
図11に示すコーディング時間(例えば、再構成時間)において、RSM更新プロセスは、左隣接CTU(1010)内の白色の網掛けされていない領域(例えば、領域(1011)~(1013))でカバーされているサンプルを、現在CTU(1020)の灰色で網掛けされた領域(例えば、領域(1021)~(1022)及びサブ領域(1151))に置き換えている。図11では、RSMは、(i)左隣接CTU(1010)内の領域(1014)と、(ii)現在CTU(1020)の領域(1021)~(1022)及びサブ領域(1051)とを含むことができる。
【0125】
いくつかの例では、最大CTUサイズがRSMサイズ(例えば、128×128)未満である場合、RSMは、単一の左隣接CTUよりも多くを含むことができ、IBCモードでは複数の隣接CTUが参照領域として使用できる。例えば、最大CTUサイズが32×32である場合、128×128のサイズを有するRSMは15個の隣接CTUのサンプルを含むことができる。
【0126】
II.1.5 VVCにおけるIBCモードのBVコーディング
【0127】
BVコーディングは、インター予測(例えば、通常のインター予測)に指定されたプロセスを使用することができる。BVコーディングは、候補リストを構築するために、インター予測(例えば、通常のインター予測)で使用されるルールよりも簡単なルールを使用することができる。
【0128】
例えば、インター予測の候補リストは、5つの空間候補と、1つの時間候補と、6つの履歴ベースの候補とを含む。インター予測の最終候補リストにおいて重複したエントリを回避するために、複数の候補の比較が履歴ベースの候補に使用できる。インター予測の候補リストは、ペアワイズ平均化された候補を含んでもよい。
【0129】
IBCモードの候補リストは、それぞれの空間隣接からの2つのBVと、5つの履歴ベースのBV(HBVP, history-based BV)とを含むことができる。一例では、IBCモードの候補リストは、それぞれの空間隣接からの2つのBVと、5つの履歴ベースのBV(HBVP)とに制限される。一実施形態では、IBCモードでは、最初のHBVPが候補リストに追加されるときに、最初のHBVPのみが空間候補と比較される。
【0130】
通常のインター予測モードは、2つの異なる候補リストを使用できる。例えば、一方の候補リストはマージモード用であり、他方の候補リストは通常モード(例えば、マージモードではないインター予測モード)用である。IBCモードにおける候補リストは、双方のIBCモード(例えば、マージIBCモード及び通常のIBCモード)について同一にすることができる。IBCモードでは、マージモードは候補リストの最大6つの候補を使用してもよく、通常のモードは候補リストの最初の2つの候補のみを使用する。
【0131】
ブロックベクトル差(BVD, block vector difference)コーディングは、通常のインター予測モードで使用されるMVDプロセスを使用でき、最終的なBVは任意の大きさを有することができる。決定されたBV(例えば、再構成されたBV)は、参照サンプル領域の外側の領域を指してもよい。一例では、RSMの幅及び/又は高さに基づくモジュロ演算を使用して、各方向の絶対オフセットへの補正が適用できる。
【0132】
II.2 AV1におけるIBCモード
【0133】
AV1のようないくつかの例では、IBCモード(又はIntraBCモード)は、現在ブロックの同じピクチャ内の予測ブロックを見つけるために、BVを使用する。BVはビットストリームで信号伝達でき、信号伝達されるBVの精度は整数ポイントにすることができる。IBCモードにおける予測プロセスは、インター予測モード(例えば、インターピクチャ予測)における予測プロセスと同様にすることができる。IBCモードとインターピクチャ予測との間の違いが以下に記載される。IBCモードでは、予測ブロックは、現在ピクチャの再構成サンプルから(例えば、ループフィルタリングを適用する前に)形成できる。IBCモードは、BVをMVとして使用して、現在ピクチャ内の「動き補償」と考えられることができる。
【0134】
現在ブロックについてIBCモードが有効であるか否かを示すフラグは、ビットストリームで送信できる。現在ブロックについてIBCモードが有効である場合、現在BVから予測BVを引くことによってBV差が導出でき、BV差は、BV差の値の水平成分及び垂直成分に従って4つのタイプに分類できる。タイプ情報はビットストリームへと信号伝達でき、2つの成分(例えば、水平成分及び垂直成分)のBV差の値はタイプ情報に続いて信号伝達できる。
【0135】
IBCモードは、スクリーンコンテンツをコーディングするのに効果的になり得る。IBCモードは、ハードウェア設計に課題をもたらす可能性がある。ハードウェア設計を容易にするために、以下の変更がIBCモードで採用できる。
【0136】
(i)IBCモードが許可されている場合、ループフィルタが無効にできる。ループフィルタは、デブロッキングフィルタ、制約方向拡張フィルタ(CDEF, Constrained Directional Enhancement Filter)、ループ復元(LR, loop restoration)フィルタを含むことができる。ループフィルタを無効にすることによって、IBCモードを有効にするのに専用の第2のピクチャバッファが回避できる。
【0137】
(ii)並列復号を容易にするために、予測は制限された領域を超えることはできない。スーパーブロックの左上位置の座標は(x0,y0)である。スーパーブロックでは、位置(x,y)における予測は、垂直座標がy0未満であり、水平座標が(x0+2(y0-y))未満である場合にIBCモードでアクセスできる。一例では、位置(x,y)における予測は、垂直座標がy0未満であり、水平座標が(x0+2(y0-y))未満である場合にのみIBCモードでアクセスできる。一例では、位置(x,y)における予測は、垂直座標がy0以下であり、水平座標が(x0+2(y0-y))未満である場合にのみIBCモードでアクセスできる。
【0138】
(iii)ハードウェア書き戻し遅延を可能にするために、直近の再構成領域は、IBCモードでアクセスできない。制限された直近の再構成領域は、1~N個のスーパーブロックを含むことができ、Nは正の整数である。上記の変更(ii)に加えて、再構成中のスーパーブロック(1210)の左上位置の座標が(x0,y0)である場合、位置(x,y)における予測は、垂直座標がy0以下であり、水平座標が(x0+2(y0-y)-D)未満である場合にIBCモードでアクセスできる。Dは、IBCモードについて制限される直近の再構成領域のサイズを示すことができる。図12は、制限された直近の再構成領域の例を示す。灰色で網掛けされた領域は、再構成中のそれぞれの現在スーパーブロック(1210)についてIBCモードでアクセス可能な許可された検索領域を含む。黒色で網掛けされた領域は、それぞれの現在スーパーブロック(1210)についてIBCモードでアクセスできない禁止検索領域を含む。白色の網掛けされていない領域は、コーディング(例えば、再構成)されるべきスーパーブロックを含む。現在スーパーブロック(1210(1))について、直近の再構成領域は、現在スーパーブロック(1210(1))の左にある2つのスーパーブロック(1221)~(1222)を含む(例えば、Nは2である)。Dは2Wのサイズを示し、Wは各スーパーブロックの幅である。スーパーブロック(1221)~(1222)は、現在スーパーブロック(1210(1))にとってアクセス可能ではない。領域(1230)は、現在スーパーブロック(1210(1))にとってアクセス可能である。
【0139】
II.3 AV1におけるローカル参照範囲によるIBCモード
【0140】
サイズM×M(例えば、128×128)を有するオンチップメモリ(RSMと呼ばれる)は、IBCモードで使用される参照サンプルを記憶するために割り当てられることができる。一実施形態では、RSMのサイズはスーパーブロックのサイズに等しく、スーパーブロックのサイズがRSMに割り当てられる。メモリ再利用メカニズムは、L×L(例えば、64×64)ベースでRSMに適用できる。RSMは、I個のRSMユニットに分割でき、IはL×Lに対するM×Mの比率に等しい。例えば、M×Mが128×128であり、L×Lが64×64である場合、Iは4(128×128/(64×64))である。II.2に記載のIBCモードでは、ローカル参照範囲(local reference range)が使用できる。II.2に記載のIBCモードに対して、以下の変更が行われることができる。
【0141】
(i)IBCモードにおける最大ブロックサイズはL×L(例えば、64×64)に制限できる。
【0142】
(ii)現在スーパーブロック(SB, superblock)内の参照ブロック及び対応する現在ブロックは、同じSB行にあるものとすることができる。一例では、参照ブロックは現在SB又は現在SBの左にある左隣接SBにのみ位置する。
【0143】
(iii)RSMユニットのサイズL×L(例えば、64×64)を有するユニットが現在SBの再構成サンプルで更新し始めると、全体のL×Lユニット内の以前に記憶された参照サンプル(例えば、左隣接SBの参照サンプル)は、IBCモードで使用される予測サンプルを生成するのに利用不可能であるとしてマーキングできる。
【0144】
図13は、本開示の一実施形態による現在ピクチャにおける現在SB(1301)のコーディング(例えば、符号又は復号)中にメモリ(例えば、RSM(1310))が更新される例示的なメモリ再利用メカニズム(1300)を示す。上のブロックは、状態(0)におけるRSM(1310)を示す。上の行は、状態(1)~(4)におけるRSM(1310)を示す。下の行は、コーディングされている現在SB(1301)と、状態(0)~(4)における現在ピクチャ内の左隣接SB(1302)とを示す。左隣接SB(1302)は、現在SB(1301)の左にすることができる。図13の例では、四分木分割がSBルートにおいて使用され、SBは4つの領域を含むことができる。一例では、4つの領域のそれぞれのサイズは64×64である。一例では、現在SB(1301)は4つの領域4~7を含み、左隣接SB(1302)は4つの領域0~3を含む。
【0145】
現在SB(1301)のような各SBをコーディングする開始時の状態(0)において、RSM(1310)は以前にコーディングされたSB(例えば、左隣接SB(1302))のサンプルを記憶できる。現在ブロックが現在SB(1301)内の4つの領域(例えば、4つの64×64の領域)の1つに位置する場合、RSM(1310)内の対応する領域が空にされ、現在のコーディング領域(例えば、現在の64×64のコーディング領域)のサンプルを記憶するために使用できる。RSM(1310)内のサンプルは、現在SB(1301)内のサンプルによって徐々に更新されることができる。
【0146】
状態(1)を参照すると、現在ブロック(1311)は現在SB(1301)内の領域4に位置し、RSM(1310)における対応する領域(例えば、左上領域)が空にされ、コーディングされている現在の領域である領域4のサンプルを記憶するために使用できる。下の行を参照して、BV(例えば、符号化されたBV又は復号されたBV)(1321)は、現在ブロック(1311)から、現在ブロック(1311)の検索範囲(1341)内にある参照ブロック(1331)を指すことができる(検索範囲(1341)の境界は破線でマーキングされる)。上の行を参照して、RSM(1310)における対応するオフセット(1351)は、現在ブロック(1311)からRSM(1310)における参照ブロック(1331)を指すことができる。状態(1)を参照して、検索範囲(1341)は、左隣接SB(1302)内の領域1~3と、領域4内のコーディングされたサブ領域(1361)とを含む。検索範囲(1341)は、左隣接SB(1302)内の領域0を含まない。
【0147】
状態(2)を参照すると、現在ブロック(1312)は現在SB(1301)内の領域5に位置し、RSM(1310)における対応する領域(例えば、右上領域)が空にされ、コーディングされている現在の領域である領域5のサンプルを記憶するために使用できる。BV(例えば、符号化されたBV又は復号されたBV)(1322)は、現在ブロック(1312)から、現在ブロック(1312)の検索範囲(1342)内にある参照ブロック(1332)を指すことができる(検索範囲(1342)の境界は破線でマーキングされる)。RSM(1310)における対応するオフセット(1352)は、現在ブロック(1312)からRSM(1310)における参照ブロック(1332)を指すことができる。状態(2)を参照すると、検索範囲(1342)は、(i)左隣接SB(1302)内の領域2~3と、(ii)現在SB(1301)内にある領域4及び領域5内のコーディングされたサブ領域(1362)とを含む。検索範囲(1342)は、左隣接SB(1302)内の領域0~1を含まない。
【0148】
状態(3)を参照すると、現在ブロック(1313)は現在SB(1301)内の領域6に位置し、RSM(1310)における対応する領域(例えば、左下領域)が空にされ、コーディングされている現在の領域である領域6のサンプルを記憶するために使用できる。BV(例えば、符号化されたBV又は復号されたBV)(1323)は、現在ブロック(1313)から、現在ブロック(1313)の検索範囲(1343)内にある参照ブロック(1333)を指すことができる(検索範囲(1343)の境界は破線でマーキングされる)。RSM(1310)における対応するオフセット(1353)は、現在ブロック(1313)からRSM(1310)における参照ブロック(1333)を指すことができる。状態(3)を参照すると、検索範囲(1343)は、(i)左隣接SB(1302)内の領域3と、(ii)現在SB(1301)内にある領域4~5及び領域6内のコーディングされたサブ領域(1363)とを含む。検索範囲(1343)は、左隣接SB(1302)内の領域0~2を含まない。
【0149】
状態(4)を参照すると、現在ブロック(1314)は現在SB(1301)内の領域7に位置し、RSM(1310)における対応する領域(例えば、右下領域)が空にされ、コーディングされている現在の領域である領域7のサンプルを記憶するために使用できる。BV(例えば、符号化されたBV又は復号されたBV)(1324)は、現在ブロック(1314)から、現在ブロック(1314)の検索範囲(1344)内にある参照ブロック(1334)を指すことができる(検索範囲(1344)の境界は破線でマーキングされる)。RSM(1310)における対応するオフセット(1354)は、現在ブロック(1314)からRSM(1310)における参照ブロック(1334)を指すことができる。状態(4)を参照すると、検索範囲(1344)は、現在SB(1301)内にある領域4~6及び領域7内のコーディングされたサブ領域(1364)を含む。検索範囲(1344)は、左隣接SB(1302)内の領域0~3を含まない。
【0150】
現在SB(1301)が完全にコーディングされた場合、全体のRSM(1310)は現在SB(1301)の全てのサンプルで埋められることができる。
【0151】
図13に示す例では、現在SB(1301)は、四分木分割を使用してパーティション化される。現在SB(1301)内の4つの領域のコーディング順序は、左上領域(例えば、領域4)、右上領域(例えば、領域5)、左下領域(例えば、領域6)及び右下領域(例えば、領域7)とすることができる。図14A図14Bに示すような他のブロック分割の決定において、RSM更新プロセスは、例えば、現在SB内の再構成サンプルを使用してRSMにおけるそれぞれの領域を置き換えることによって、図13に示すものと同様にすることができる。
【0152】
図14A図14Bは、現在SB(1401)のコーディング(例えば、符号化又は復号)中のRSMにおける例示的なメモリ更新プロセスを示す。図14A図14Bにおいて、左隣接SB(1402)は、コーディング(例えば、符号化又は復号)されている現在SB(1401)の左にある。一例では、現在SB(1401)及び左隣接SB(1402)のそれぞれのサイズは128×128である。現在SB(1401)及び左隣接SB(1402)のそれぞれは、64×64のサイズを有する4つの領域(例えば、4つのブロック)を含むことができる。現在SB(1401)はブロック4~7を含むことができ、左隣接SB(1402)はブロック0~3を含むことができる。
【0153】
図14Aでは、SBルートにおいて水平分割が実行され、続いて垂直分割が実行される。SB(例えば、現在SB(1401))は、左上ブロック(例えば、ブロック4)、左下ブロック(例えば、ブロック6)、右上ブロック(例えば、ブロック5)及び右下ブロック(例えば、ブロック7)の4つのブロックを含むことができる。現在SB(1401)のコーディング順序は、左上ブロック(状態1)、右上ブロック(状態2)、左下ブロック(状態3)及び右下ブロック(状態4)とすることができる。
【0154】
図14Bでは、SBルートにおいて垂直分割が実行され、続いて水平分割が実行される。現在SB(1401)のコーディング順序は、左上ブロック(状態1)、左下ブロック(状態2)、右上ブロック(状態3)及び右下ブロック(状態4)とすることができる。
【0155】
現在SB(1401)に対する現在ブロック(例えば、(1431))の位置に応じて、以下が適用できる。
【0156】
(i)図14A図14Bにおける状態(1)を参照すると、現在ブロック(1431)は現在SB(1401)の左上ブロック(例えば、ブロック4)にあり、RSMは、ブロック4にあるブロック(1461)内の既に再構成されたサンプルに加えて、左隣接SB(1402)の右下ブロック(例えば、ブロック3)、左下ブロック(例えば、ブロック2)及び右上のブロック(例えば、ブロック1)内の参照サンプルを含むことができる。
【0157】
(ii)図14Aにおける状態(2)又は図14Bにおける状態(3)を参照すると、現在ブロック(1432)は現在SB(1401)の右上ブロック(例えば、ブロック5)にある。
【0158】
図14Aにおける状態(2)に示すように、ブロック6の左上角(例えば、現在SB(1401)に対する(0,64))に位置するルマサンプルがまだ再構成されていない場合、ブロック4内の既に再構成されたサンプル及びブロック5にあるブロック(1462)に加えて、現在ブロック(1432)は、左隣接SB(1402)の左下ブロック(例えば、ブロック2)及び右下ブロック(例えば、ブロック3)内の参照サンプルを参照できる。対応するRSMは、ブロック4及びブロック5にあるブロック(1462)に加えて、左隣接SB(1402)の左下ブロック(例えば、ブロック2)及び右下ブロック(例えば、ブロック3)内の参照サンプルを含むことができる。
【0159】
そうでなく、図14Bにおける状態(3)に示すように、ブロック6の左上角(例えば、現在SB(1401)に対する(0,64))に位置するルマサンプルが再構成されている場合、現在ブロック(1432)は左隣接SB(1402)の右下ブロック(例えば、ブロック3)内の参照サンプルを参照できる。対応するRSMは、ブロック4及び6内の既に再構成されたサンプルとブロック5にあるブロック(1462)に加えて、左隣接SB(1402)の右下ブロック(例えば、ブロック3)内の参照サンプルを含むことができる。
【0160】
(iii)図14Aにおける状態(3)又は図14Bにおける状態(2)を参照すると、現在ブロック(1433)は現在SB(1401)の左下ブロック(例えば、ブロック6)にある。
【0161】
図14Bにおける状態(2)に示すように、ブロック5の左上角(例えば、現在SB(1401)に対する(64,0))に位置するルマサンプルがまだ再構成されていない場合、ブロック4内の既に再構成されたサンプル及び現在SB(1401)にあるブロック(1463)に加えて、現在ブロック(1433)は、左隣接SB(1402)の右上ブロック(例えば、ブロック1)及び右下ブロック(例えば、ブロック3)内の参照サンプルを参照できる。対応するRSMは、ブロック4及び現在SB(1401)にあるブロック(1463)に加えて、左隣接SB(1402)の右上ブロック(例えば、ブロック1)及び右下ブロック(例えば、ブロック3)内の参照サンプルを含むことができる。
【0162】
そうでなく、図14Aにおける状態(3)に示すように、ブロック5の左上角(例えば、現在SB(1401)に対する(64,0))に位置するルマサンプルが再構成されている場合、現在ブロック(1433)は左隣接SB(1402)の右下ブロック(例えば、ブロック3)内の参照サンプルを参照できる。対応するRSMは、ブロック4~5内の既に再構成されたサンプル及び現在のSB(1401)にあるブロック(1463)に加えて、左隣接SB(1402)の右下ブロック(例えば、ブロック3)内の参照サンプルを含むことができる。
【0163】
(iv)図14A図14Bにおける状態(4)を参照すると、現在ブロック(1434)は現在SB(1401)の右下ブロック(例えば、ブロック7)にある。現在ブロック(1434)は、ブロック4~6及びブロック(1464)内の既に再構成されたサンプルのような、現在SB(1401)内の既に再構成されたサンプルを参照できる。対応するRSMは、ブロック4~6及びブロック(1464)内の参照サンプルを含むことができる。一例では、現在ブロック(1434)が現在SB(1401)の右下ブロックに該当する場合、現在ブロックは現在SB(1401)内の既に再構成されたサンプルのみを参照できる。
【0164】
III. 適応的ローカル参照範囲によるIBCモード
【0165】
IBCモードの性能は、IBCモードで使用される参照範囲に大きく依存する可能性がある。VVCにおけるIBCモード及びローカル参照範囲によるIBCモードのような関連技術では、所定のメモリ更新メカニズムがRSMにおいて使用できる。一例では、図13図14A及び図14Bに記載のように、RSMにおけるメモリ更新は、現在ブロックのブロック位置と、現在CTU又は現在SBのパーティションとにのみ依存する。メモリ更新は、メモリ更新プロセス中の、例えば、現在ブロックのコンテンツ又は予測情報に依存しない。したがって、いくつかの実施形態では、テクスチャコンテンツがほとんどないか或いは全くないピクチャ内の領域について、その領域を参照範囲(例えば、ローカル参照範囲)に含め、そのピクチャ内の領域をRSMに記憶することは、IBCモードの予測効率について限られた利点を有する可能性がある。本開示の一実施形態によれば、適応的ローカル参照範囲のような適応的参照範囲がIBCモードで使用できる。
【0166】
以下の説明では、ブロックという用語は、変換ブロック(TB, transform block)、PB、符号化ブロック(CB, coding block)、符号化ユニット(CU, coding unit)、ピクチャ内のスーパーブロック、CTU又はCTB等として解釈されてもよい。ブロックサイズは、ブロック幅、ブロック高さ、ブロック幅及びブロック高さの最大値、ブロック幅及びブロック高さの最小値、領域サイズ(例えば、ブロック幅×ブロック高さ)、ブロックのアスペクト比(例えば、ブロック幅/ブロック高さ、又はブロック高さ/ブロック幅)等を示すことができる。
【0167】
いくつかの例では、64×64のサイズがメモリ更新領域単位の例として使用される。メモリ更新領域単位は任意のブロックサイズとすることができ、サイズ64×64に限定されない。メモリ更新領域単位の例は、図13における領域0~7及び図14A~図14Bにおける領域0~7を含む。
【0168】
本開示の一実施形態によれば、IBCモードで使用されるローカル参照範囲を更新するか否かは、現在ピクチャ内の再構成中のスーパーブロックにある再構成領域に基づいて決定される。スーパーブロックは1つ以上のCBを含むことができる。ローカル参照範囲は制限できる。一例では、ローカル参照範囲の最大サイズは、例えば、図13図14A及び図14Bに示す2つのスーパーブロックのサイズのように、複数のスーパーブロックのサイズになるように制限される。一例では、ローカル参照範囲の空間範囲は、例えば複数のスーパーブロック(例えば、図13図14A及び図14Bに示すようなスーパーブロック及びスーパーブロックの左隣接スーパーブロック)内になるように制限される。いくつかの実施形態では、以前のローカル参照範囲を更新するか否かは、(i)再構成領域のコンテンツ及び/又は(ii)再構成領域の予測情報に基づいて決定される。
【0169】
再構成領域のサイズは、例えば、メモリ更新領域単位のサイズが再構成されたCBのサイズ未満である場合、メモリ更新領域ユニット(例えば、64×64)のサイズに等しくすることができる。再構成領域は、例えば、再構成されたCBのサイズがメモリ更新領域単位のサイズ以下である場合、再構成されたCBとすることができる。
【0170】
再構成領域のコンテンツは、再構成領域のテクスチャコンテンツ及び/又はスクリーンコンテンツを含むことができる。再構成領域のコンテンツは、再構成領域の再構成サンプル(又は再構成ピクセル)に基づいて決定できる。
【0171】
再構成領域の予測情報は、領域を再構成するために使用される予測モードを示すことができる。一実施形態では、以前のローカル参照範囲を更新するか否かは、予測モードが所定の予測モードのセットにあるか否かに基づいて決定される。予測モードが所定の予測モードのセットにある場合、以前のローカル参照範囲が更新できる。予測モードが所定の予測モードのセットにない場合、以前のローカル参照範囲は更新されない。一実施形態では、所定の予測モードのセットは、IBCモード、パレットモード、変換スキップモード、ブロックベースのデルタパルス符号変調(BDPCM, block based delta pulse code modulation)モード等のようなスクリーンコンテンツコーディングモードを含む。
【0172】
一実施形態では、予測情報は、例えば、領域の予測情報に含まれるフラグを介して、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かを示す。したがって、以前のローカル参照範囲を更新するか否かは、予測情報の中で、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かの指示(例えば、フラグ)に基づくものとすることができる。
【0173】
一実施形態では、IBCモードのRSMにおけるメモリ更新プロセスは、現在ブロック又は領域(例えば、64×64の領域)のコンテンツ(例えば、再構成サンプルの値)及び/又は現在ブロック又は領域の予測情報(又はコーディングされた情報)に依存する。
【0174】
一例では、現在ブロック(例えば、現在CB)又は領域(例えば、64×64の領域)が再構成された後に、現在ブロック又は領域のコンテンツ(例えば、再構成サンプルの値)の評価が実行される。メモリ更新を実行するか否かは、評価に基づいて決定できる。図15は、現在SB(1501)が復号されているときのRSMにおける例示的な適応的メモリ更新プロセスを示す。現在SB(1501)及び現在SB(1501)の左隣接SB(1502)のそれぞれは、4つの領域を含む。現在SB(1501)は領域4~7を含み、左隣接SB(1502)は領域0~3を含む。一例では、領域0~7のそれぞれは64×64のサイズを有する。領域0~3を含む左SB(1502)が再構成されている。IBCモードで使用される以前のローカル参照範囲がRSMに記憶されている。一例では、以前のローカル参照範囲は領域1~3を含む。図15に示す例では、領域5のローカル参照範囲は領域0を含まない。
【0175】
現在SB(1501)内の領域4は、例えば左SB(1502)の再構成の後に再構成される。領域4のコンテンツ(例えば、再構成サンプル)は、以前のローカル参照範囲を記憶しているRSMを更新するためのメモリ更新を実行するか否かを決定するために評価されることができる。決定がRSMを更新しないものである場合、RSMは更新されず、以前のローカル参照範囲も更新されない。以前のローカル参照範囲は、領域5(例えば、再構成中の現在の領域)を再構成するために使用できる。一例では、以前のローカル参照範囲は領域1~3を含み、領域5の再構成の前に既に再構成されている領域4を含まない。したがって、領域5の検索領域は領域1~3を含み、領域4を含まない。一例では、領域5の検索領域は、再構成されている領域5の既に再構成された部分を含む。
【0176】
一実施形態では、評価プロセスは、再構成ブロック又は再構成領域(例えば、64×64の領域)のテクスチャコンテンツが条件を満たすか否かを決定する。図15を参照すると、再構成領域4のテクスチャコンテンツが評価できる。例えば、再構成ブロック又は再構成領域のテクスチャコンテンツの割合が決定される。再構成ブロック又は再構成領域のテクスチャコンテンツの割合が閾値以上である場合、条件が満たされていると決定される。そうでない場合、条件が満たされていないと決定される。
【0177】
再構成ブロック又は再構成領域のコンテンツは、1つ又は複数の色成分の強度値のヒストグラムに基づくもののように、いずれか適切な方法によって決定できる。一例では、ヒストグラムが1つ又は複数の色成分においてN0よりも多くN1未満の個別の強度値を含む場合、再構成ブロック又は再構成領域はスクリーンコンテンツ領域として決定される。そうでない場合、再構成ブロック又は再構成領域はテクスチャ領域として決定される。テクスチャ領域はカメラによってキャプチャでき、自然領域又はカメラキャプチャ領域と呼ばれることができる。一例では、スクリーンコンテンツ領域はカメラによってキャプチャされない。図15を参照すると、領域4に関連する1つ又は複数の色成分における強度値のヒストグラムは、領域4がテクスチャ領域であるかスクリーンコンテンツ領域であるかを決定するために使用できる。
【0178】
一実施形態では、評価プロセスは、再構成ブロック又は再構成領域(例えば、64×64の領域)が所定の予測モードのセットのうち或る予測モード(単数又は複数)によってコーディングされているか否かを決定する。一例では、所定の予測モードのセットは、IBCモード、パレットモード、変換スキップモード、BDPCMモード等のようなスクリーンコンテンツコーディングモード(単数又は複数)を含む。
【0179】
一実施形態では、再構成ブロック又は再構成領域(例えば、64×64の領域)のスクリーンコンテンツが条件を満たすと評価プロセスが決定した場合、例えば、スクリーンコンテンツの量又は割合が閾値未満である場合、再構成ブロック又は再構成領域についてメモリ更新プロセスはスキップされ、したがって、ブロック又は領域をコーディング(例えば、符号化又は復号)した後に実行されない。メモリ更新プロセスがスキップされた場合、RSMに記憶されている以前のローカル参照範囲は、再構成される別の符号化ブロック又は別の領域を復号するために使用される。一例では、再構成ブロック又は再構成領域はスクリーンコンテンツを含まず、再構成ブロック又は再構成領域についてメモリ更新プロセスはスキップされ、したがって、ブロック又は領域をコーディングした後に実行されない。
【0180】
図15に示す例では、領域0~7の各領域のサイズは、メモリ更新領域単位のサイズに等しい。RSMのサイズは、スーパーブロックのサイズに等しい。図15を参照して説明する実施形態は、スーパーブロックがいずれか適切なサイズを有するいずれか適切な数の領域を含んでもよい他の状況に適切に適応できる。RSMのサイズは、スーパーブロックのサイズに等しくてもよく、スーパーブロックのサイズよりも大きくてもよく、或いは、スーパーブロックのサイズよりも小さくてもよい。
【0181】
図15に示す例では、評価プロセスは、メモリ更新領域単位と同じサイズを有する領域(例えば、領域4)に基づく。したがって、領域を再構成した後に、以前のローカル参照範囲が更新されることを評価プロセスが示す場合、全体の領域内の再構成サンプルが以前のローカル参照範囲を更新するために使用される。
【0182】
いくつかの例では、評価プロセスは、メモリ更新領域単位と同じサイズを有する領域の部分に基づく。例えば、CBのサイズはメモリ更新領域単位のサイズよりも小さく、領域の部分はCBである。領域の部分(例えば、CB)を再構成した後に、以前のローカル参照範囲を更新されることを評価プロセスが示す場合、領域の部分(例えば、CB)の再構成サンプルが以前のローカル参照範囲を更新するために使用される。一例では、メモリ更新領域単位のサイズを有する領域について、領域の第1の部分は、以前の参照範囲を更新するために使用でき、領域の第2の部分は、以前の参照範囲を更新するために使用されない。したがって、ローカル参照範囲は、領域の第1の部分の第1の再構成サンプルを含むことができ、領域の第2の部分の第2の再構成サンプルを含まない。領域の第2の部分の第2の再構成サンプルの位置(単数又は複数)がBVによって参照される場合、図16に示すように、IBCモードで使用されるサンプルを生成するために、パディングプロセスが使用できる。
【0183】
図16は、適応的メモリ更新プロセスで使用される例示的なパディングプロセスを示す。現在SB(1601)及び現在SB(1601)の左隣接SB(1602)のそれぞれは、4つの領域を含む。現在SB(1601)は領域4~7を含み、左隣接SB(1602)は領域0~3を含む。一例では、領域0~7のそれぞれは64×64のサイズを有する。領域0~3を含む左SB(1602)及び現在SB(1601)の領域4-5は既に再構成されている。
【0184】
領域4は第1の部分(1611)及び第2の部分(1612)を含む。一例では、第1の部分(1611)は第1のCBであり、第2の部分(1612)は第2のCBである。一例では、メモリ更新が実行され、IBCモードで使用されるローカル参照範囲は第1のCB(1611)を含むように更新される。メモリ更新は、第2のCB(1612)を再構成した後に実行されず、IBCモードで使用されるローカル参照範囲は第2のCB(1612)を含むように更新されない。一例では、領域5の再構成の後に、ローカル参照範囲は、領域3と、領域4内の第1の部分(1611)と、領域5とを含む。図16に示す例では、ローカル参照範囲は、左隣接SB(1602)内の領域0~2を含まない。ローカル参照範囲は、領域4内の第2の部分(1612)を含まない。領域4内の第2の部分(1612)はRSMに記憶されない。
【0185】
一実施形態では、RSMに記憶されているローカル参照範囲を使用してIBC予測を実行する場合、領域(例えば、図16における領域4)内の再構成サンプルの全てがRSMに記憶されていない場合には、RSMにおいて領域(例えば、図16における領域4)を埋めるためにパディングプロセスが適用できる。図16を参照すると、領域6内のCB(1632)はIBCモードで再構成される。領域4内の第2の部分(1612)のサンプルは、CB(1632)についてIBCモードでの参照サンプルとして使用される前に、パディングプロセスによって生成されることができる。
【0186】
一例では、RSMに記憶されているローカル参照範囲の領域4内の第2の部分(1612)に、単一の値が割り当てられる。例えば、第2の部分(1612)内の各サンプルは、単一の値に等しい同一の値を有する。一例では、単一の値は利用可能であり且つ第2の部分(1612)に隣接するサンプル(単数又は複数)に基づく。利用可能であり且つ第2の部分(1612)に隣接するサンプルは、領域4内又は領域4外に位置することができる。一例では、単一の値は、第2の部分(1612)に隣接するサンプル(単数又は複数)のうち1つの値に等しい。
【0187】
一例では、パディングプロセスは、利用可能であり且つ領域4内の第2の部分(1612)の隣接するサンプルを使用して、RSMにおける領域4内の第2の部分(1612)に対して、特定のイントラ予測、例えばDC予測、平面(planar)予測等を実行することによって実施される。
【0188】
一例では、パディングプロセスは、利用可能であり且つ領域4内の第2の部分(1612)の隣接するサンプルをコピーすることによって実施される。
【0189】
いくつかの例では、パディングプロセスは、領域4の外側の境界領域について実行される。
【0190】
一実施形態では、RSMにおいてメモリ更新処理を実行する場合、RSMにおける記憶されたブロック(又は記憶された領域)がランク付けできる。RSMにおける記憶されたブロックのどれがメモリ更新処理中に置き換えられるかは、ランク付けに基づいて決定できる。一例では、記憶されたブロックのそれぞれはメモリ更新領域単位のサイズ(例えば、64×64)を有する。
【0191】
図17を参照すると、現在SB(1701)及び現在SB(1701)の左隣接SB(1702)のそれぞれは4つの領域を含む。現在SB(1701)は領域4~7を含み、左隣接SB(1702)は領域0~3を含む。一例では、領域0~7のそれぞれは64×64のサイズを有する。領域0~3を含む左SB(1702)が再構成されている。
【0192】
図17の左側を参照すると、領域4は再構成中であり、領域5~7はまだ再構成されていない。IBCモードで使用されるローカル参照範囲はRSMに記憶される。一例では、ローカル参照範囲は領域1~3を含み、領域0を含まない。
【0193】
図17の右側を参照すると、領域4を再構成した後に、ローカル参照範囲は再構成領域4に基づいて更新される。一例では、RSMに記憶された領域1~3がランク付けされる。メモリ更新プロセス中に領域1~3のどれが再構成領域4によって置き換えられるかは、ランク付けに基づいて決定できる。例えば、領域2が置き換えられることをランク付けが示す場合、ローカル参照範囲は、領域2を再構成領域4に置き換えることによって更新される。図17の右側の更新されたローカル参照範囲は、領域1、3及び4を含む。
【0194】
一例では、スクリーンコンテンツに対応する再構成サンプルの割合が、RSMにおける記憶されたブロック(例えば、図17における領域1~3)のそれぞれについて決定される。それぞれの記憶されたブロックのスクリーンコンテンツの割合のランク付けに基づいて、RSMに記憶されている記憶済みのブロックのどれがメモリ更新プロセス中に置き換えられるかが決定される。
【0195】
一例では、テクスチャ領域に対応する再構成サンプルの割合が、RSMにおける記憶されたブロック(例えば、図17における領域1~3)のそれぞれについて決定される。それぞれの記憶されたブロックのテクスチャ領域の割合のランク付けに基づいて、RSMに記憶されている記憶済みのブロックのどれがメモリ更新プロセス中に置き換えられるかが決定される。
【0196】
一例では、RSMにおいて記憶されたブロック(例えば、図17における領域1~3)のそれぞれに関連する頻度(例えば、参照頻度)が決定される。一例では、参照頻度は、現在ピクチャ又は現在ピクチャの一部においてCBを予測するために、それぞれの記憶されたブロックがIBCモードでのBVによって参照される回数を示す。それぞれの記憶されたブロックの参照頻度のランク付けに基づいて、RSMに記憶されたブロックのどれがメモリ更新プロセス中に置き換えられるかが決定される。
【0197】
一例では、記憶されたブロック(例えば、図17における領域1~3)のそれぞれの特別にコーディングされたサンプルの数(例えば、領域サイズ)が決定され、特別にコーディングされたサンプルは、所定の予測モードのセット内の1つ以上の予測モードでコーディングされる。一例では、所定の予測モードのセットは、上記のように、IBCモード、パレットモード、変換スキップモード、BDPCMモード等のようなスクリーンコンテンツコーディングモードを含む。それぞれの記憶されたブロックの特別にコーディングされたサンプルの数のランク付けに基づいて、RSMに記憶されている記憶済みのブロックのどれがメモリ更新プロセス中に置き換えられるかが決定される。
【0198】
再構成領域又は再構成ブロックのコンテンツ又は予測モード(単数又は複数)に基づいてローカル参照範囲を更新するか否かを決定すること加えて、或いは、その代わりに、ローカル参照範囲を更新するか否かは、ローカル参照範囲を更新するか否かを示す再構成領域又は再構成ブロックの予測情報に基づいて決定できる。例えば、予測情報は、ローカル参照範囲を更新するか否かを明示的に示す再構成領域又は再構成ブロックのフラグ(例えば、指示フラグ)を含み、ローカル参照範囲を更新するか否かは、そのフラグに基づいて決定される。いくつかの例では、ローカル参照範囲を更新するか否かは、再構成領域又は再構成ブロックのフラグ、コンテンツ及び/又は予測モードに基づいて決定される。
【0199】
一実施形態では、適応的メモリ更新プロセスは、メモリ更新プロセスがIBCモードのRSMで実行されるか否かが、メモリ更新領域単位のそれぞれについてビットストリームで送信される指示(例えば、フラグ)に依存する点を除き、図15~17に記載の実施形態と同様である。
【0200】
一実施形態では、コーディングされた領域毎に(例えば、コーディングされた領域のサイズはメモリ更新領域単位のサイズと同じである)、コーディングされた領域内の再構成サンプルがRSMに記憶されるか否かを示すためのフラグが信号伝達される。フラグが、コーディングされた領域内の再構成サンプルがRSMに記憶されることを示す場合、本開示に記載のように、メモリ更新プロセスが実行される。そうでなく、フラグが、コーディングされた領域内の再構成サンプルがRSMに記憶されないことを示す場合、コーディングされた領域内の再構成サンプルはRSMに記憶される必要はない。例えば、メモリ更新プロセスがスキップされる。
【0201】
一実施形態では、現在ブロックサイズ(例えば、CBのサイズ)がメモリ更新領域単位のサイズよりも大きい場合、現在ブロック(例えば、CB)は複数の領域を含むことができ、複数の領域のそれぞれはメモリ更新領域単位のサイズを有する。現在ブロック内の第1の領域の第1のフラグが信号伝達でき、現在ブロック内の他の領域の後続のフラグが推定又は信号伝達できる。一例では、後続のフラグは現在ブロック内の第1の領域の第1のフラグから推定できる。例えば、後続のフラグは第1の領域の第1のフラグと同じ値を使用する。一例では、後続のフラグは信号伝達され、それぞれのフラグは、複数の領域のそれぞれについて個別に信号伝達される。それぞれの領域内のサンプルがRSMに記憶されるか否かは、ビットストリームで信号伝達されたそれぞれのフラグに基づいて決定できる。したがって、複数のフラグが現在ブロックについて信号伝達される。
【0202】
一実施形態では、固定サイズの領域のフラグが信号伝達され、固定サイズの領域内のサンプルがRSMに記憶されるか否かを示す。固定サイズの領域は、メモリ更新領域単位よりも大きくすることができる。例えば、固定サイズの領域は、例えば、128×128のサイズを有するスーパーブロック、CTU又はCTBであり、メモリ更新領域単位のサイズは64×64である。このフラグは、固定サイズの領域(例えば、スーパーブロック、CTU又はCTB)内のいずれかのサンプルがRSMに記憶されるか否かを示すために使用できる。
【0203】
本開示のいくつかの実施形態では、図15図17を参照して説明したように、スーパーブロックが例として使用される。説明はCTU又はCTBにも適用可能であり、スーパーブロックをCTU又はCTBに置き換えることによって適応させることができる。
【0204】
図18は、本開示の実施形態による符号化プロセス(1800)の概要を示すフローチャートを示す。様々な実施形態において、プロセス(1800)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(例えば、(403)、(603)、(703))の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1800)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1800)を実行する。プロセスは(S1801)において始まり、(S1810)に進む。
【0205】
(S1810)において、現在ピクチャ内のスーパーブロック又は符号化ツリーブロック(CTB, coding tree block)内の領域が、領域の予測情報に基づいて符号化できる。領域の予測情報は、領域の1つ以上の予測モードを示すことができる。領域は、領域の1つ以上の予測モードに基づいて符号化できる。一例では、領域はスーパーブロック又はCTB内のCBである。一例では、領域はCBの一部である。一例では、スーパーブロック又はCTBのサイズは128×128である。一例では、領域のサイズは、64×64のようなメモリ更新領域単位のサイズである。
【0206】
(S1820)において、(i)領域のコンテンツ及び/又は(ii)領域の予測情報に基づいて、イントラブロックコピー(IBC, intra block copy)モードの以前のローカル参照範囲を更新するか否かが決定できる。一例では、領域のコンテンツは、対応する再構成領域内のサンプルによって示され、サンプルは空間領域における再構成サンプルである。
【0207】
一例では、領域のコンテンツは、領域内のテクスチャコンテンツの割合及び/又はスクリーンコンテンツの割合を示す。IBCモードの以前のローカル参照範囲を更新するか否かは、領域内のテクスチャコンテンツの割合及び/又はスクリーンコンテンツの割合に基づいて決定される。例えば、領域のコンテンツはスクリーンコンテンツを含まず、IBCモードの以前のローカル参照範囲は更新されないと決定される。
【0208】
一例では、IBCモードの以前のローカル参照範囲を更新するか否かは、1つ以上の予測モードが所定の予測モードのセットにあるか否かに基づいて決定される。
【0209】
IBCモードの以前のローカル参照範囲を更新しないという決定に応じて、プロセス(1800)は(S1830)に進む。そうでなく、IBCモードの以前のローカル参照範囲を更新するという決定に応じて、プロセス(1800)は(S1840)及び(S1850)を含む分岐に進む。
【0210】
(S1830)において、現在ピクチャ内の符号化ブロック(CB)は、領域内のサンプルを含まない以前のローカル参照範囲に基づくIBCモードを使用して符号化できる。(S1830)の後に、プロセス(1800)は(S1899)に進み、終了する。
【0211】
(S1840)及び(S1850)を含む分岐において、IBCモードの以前のローカル参照範囲が更新されると決定される。
【0212】
(S1840)において、現在のローカル参照範囲は、以前のローカル参照範囲と、対応する再構成領域内のサンプル(例えば、再構成サンプル)とに基づいて生成できる。
【0213】
以前のローカル参照範囲は参照サンプルメモリ(RSM, reference sample memory)に記憶された複数の領域を含むことができる。現在のローカル参照範囲は、以前のローカル参照範囲内の複数の領域の1つにおける参照サンプルを領域内のサンプルに置き換えることによって生成できる。
【0214】
いくつかの実施形態では、以前のローカル参照範囲内の複数の領域のどれが置き換えられるかは、複数の領域のランク付けに基づいて決定される。したがって、領域内のサンプルによって置き換えられる複数の領域内の領域は、複数の領域のランク付けに基づいて選択できる。現在のローカル参照範囲は、以前のローカル参照範囲内の選択された領域を領域内のサンプルに置き換えることによって生成できる。
【0215】
いくつかの例では、複数の領域は、複数の領域のコンテンツに基づいてランク付けされる。コンテンツのそれぞれは、複数の領域のそれぞれ1つに対応できる。一例では、複数の領域のそれぞれ1つに対応するコンテンツのそれぞれは、対応する領域内のスクリーンコンテンツの割合又はテクスチャコンテンツの割合によって示され、複数の領域は、複数の領域のスクリーンコンテンツのそれぞれの割合又はテクスチャコンテンツのそれぞれの割合に基づいてランク付けされる。
【0216】
いくつかの例では、複数の領域の各領域は、所定の予測モードのセット内の1つ以上の予測モードでコーディングされた、それぞれの領域内の特別にコーディングされた複数の参照サンプルを含む。複数の領域は、複数の領域内の特別にコーディングされた複数のサンプルのそれぞれに基づいてランク付けできる。
【0217】
いくつかの例では、複数の領域の各領域に関連する参照頻度は、現在ピクチャ又は現在ピクチャの一部においてCBを予測するために使用されるブロックベクトルによってそれぞれの領域が参照される回数を示す。複数の領域は、複数の領域のそれぞれの参照頻度に基づいてランク付けできる。
【0218】
(S1840)の後に、プロセス(1800)は(S1850)に進む。(S1850)において、CBは、現在のローカル参照範囲に基づくIBCモードを使用して符号化できる。(S1850)の後に、プロセス(1800)は(S1899)に進み、終了する。
【0219】
プロセス(1800)は様々なシナリオに適切に適応させることができ、プロセス(1800)内のステップはそれに従って調整できる。プロセス(1800)内のステップの1つ以上は、適応、省略、反復及び/又は組み合わせが可能である。プロセス(1800)を実施するために、いずれか適切な順序が使用できる。更なるステップが追加できる。
【0220】
いくつかの例では、予測情報は、領域内のサンプルで以前のローカル参照範囲を更新するか否かを示すフラグを含む。フラグは符号化され、ビデオビットストリームに含まれることができる。一例では、CBについて単一のフラグが信号伝達される。一例では、CBについて複数のフラグが信号伝達される。例えば、CBは複数の領域を含み、複数の領域のそれぞれはメモリ更新領域単位のサイズを有し、それぞれの領域について個別のフラグが信号伝達される。
【0221】
図19は、本開示の実施形態による復号プロセス(1900)の概要を示すフローチャートを示す。様々な実施形態において、プロセス(1900)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1900)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1900)を実行する。プロセスは(S1901)において始まり、(S1910)に進む。
【0222】
(S1910)において、現在ピクチャ内のブロック内の領域が、符号化ビデオビットストリームから再構成できる。ブロックは、現在ピクチャ内の1つ以上の符号化ブロック(CB)を含むことができる。ブロックは、現在ピクチャ内のスーパーブロック又はCTBとすることができる。一例では、スーパーブロック又はCTBのようなブロックは、現在ピクチャ内の最大のCBである。一例では、領域はスーパーブロック又はCTB内のCBである。一例では、領域はスーパーブロック又はCTB内のCBの一部である。一例では、ブロックのサイズは128×128である。一例では、領域のサイズは、64×64のようなメモリ更新領域単位のサイズである。
【0223】
(S1920)において、図15のような本開示の記載のように、再構成の後に、イントラブロックコピー(IBC)モードの以前のローカル参照範囲を更新するか否かは、(i)再構成領域のコンテンツ及び/又は(ii)再構成領域の予測情報に基づいて決定できる。
【0224】
一実施形態では、IBCモードの以前のローカル参照範囲を更新するか否かは、再構成領域のコンテンツに基づいて決定される。例えば、再構成領域のコンテンツは、再構成領域内の再構成サンプルに基づいて決定され、再構成領域のコンテンツは、再構成領域内のテクスチャコンテンツの割合及び/又はスクリーンコンテンツの割合を示す。したがって、IBCモードの以前のローカル参照範囲を更新するか否かは、再構成領域内のテクスチャコンテンツの割合及び/又はスクリーンコンテンツの割合に基づいて決定される。一例では、領域のコンテンツはスクリーンコンテンツを含まず、IBCモードの以前のローカル参照範囲は更新されないと決定される。
【0225】
一実施形態では、IBCモードの以前のローカル参照範囲を更新するか否かは、再構成領域の予測情報に基づいて決定される。予測情報は復号される。
【0226】
一例では、領域の予測情報は、領域の1つ以上の予測モードを示す。IBCモードの以前のローカル参照範囲を更新するか否かは、1つ以上の予測モードが所定の予測モードのセットにあるか否かに基づいて決定される。一例では、所定の予測モードのセットは、IBCモード、パレットモード、変換スキップモード、BDPCMモード等のようなスクリーンコンテンツコーディングモード(単数又は複数)を含む。
【0227】
一例では、領域の予測情報は、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かを示す。IBCモードの以前のローカル参照範囲を更新するか否かは、予測情報の中で、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かの指示に基づいて決定できる。例えば、再構成領域内の再構成サンプルで以前のローカル参照範囲を更新するか否かは、領域の予測情報に含まれるフラグによって示される。IBCモードの以前のローカル参照範囲を更新するか否かは、フラグに基づいて決定できる。一例では、フラグは符号化ビデオビットストリームで信号伝達される。
【0228】
一例では、64×64のようなメモリ更新領域単位のサイズを有する領域毎に個別のフラグが信号伝達される。一例では、CB毎に個別のフラグが信号伝達される。
【0229】
スーパーブロック又はCTB毎に個別のフラグが信号伝達される。一例では、フラグは、IBCモードでローカル参照範囲を更新する際に、ブロック(例えば、スーパーブロック又はCTB)内のいずれかの再構成サンプルが使用されるか否かを示す。したがって、IBCモードでローカル参照範囲を更新する際に、ブロック(例えば、スーパーブロック又はCTB)内の複数の領域内の再構成サンプルが使用されるか否かを示すために、単一のフラグ(例えば、フラグ)が使用できる。一例では、複数の領域のそれぞれはCB又はCBの一部である。一例では、複数の領域のそれぞれのサイズは、64×64のようなメモリ更新領域単位のサイズである。
【0230】
IBCモードの以前のローカル参照範囲を更新しないという決定に応じて、プロセス(1900)は(S1930)に進む。そうでなく、IBCモードの以前のローカル参照範囲を更新するという決定に応じて、プロセス(1900)は(S1940)及び(S1950)を含む分岐に進む。
【0231】
(S1930)において、IBCモードの以前のローカル参照範囲が更新されないと決定される。したがって、IBCモードの以前のローカル参照範囲は更新されない。現在ピクチャ内の符号化ブロック(CB)は、再構成領域を含まない以前のローカル参照範囲に基づくIBCモードを使用して復号できる。一例では、CBはスーパーブロック又はCTBにある。
【0232】
(S1930)の後に、プロセス(1900)は(S1999)に進み、終了する。
【0233】
(S1940)及び(S1950)を含む分岐において、IBCモードの以前のローカル参照範囲が更新されると決定される。
【0234】
(S1940)において、現在のローカル参照範囲は、以前のローカル参照範囲と、再構成領域内の再構成サンプルとに基づいて生成できる。
【0235】
以前のローカル参照範囲は参照サンプルメモリ(RSM)に記憶された複数の領域を含むことができる。現在のローカル参照範囲は、以前のローカル参照範囲内の複数の領域の1つにおける参照サンプルを再構成領域内の再構成サンプルに置き換えることによって生成できる。
【0236】
いくつかの実施形態では、以前のローカル参照範囲内の複数の領域のどれが置き換えられるかは、複数の領域のランク付けに基づいて決定される。したがって、再構成領域内の再構成サンプルによって置き換えられる複数の領域内の領域は、複数の領域のランク付けに基づいて選択できる。現在のローカル参照範囲は、以前のローカル参照範囲内の選択された領域を再構成領域内の再構成サンプルに置き換えることによって生成できる。
【0237】
いくつかの例では、複数の領域は、複数の領域のコンテンツに基づいてランク付けされる。コンテンツのそれぞれは、複数の領域のそれぞれ1つに対応できる。一例では、複数の領域のそれぞれ1つに対応するコンテンツのそれぞれは、対応する領域内のスクリーンコンテンツの割合又はテクスチャコンテンツの割合によって示され、複数の領域は、複数の領域のスクリーンコンテンツのそれぞれの割合又はテクスチャコンテンツのそれぞれの割合に基づいてランク付けされる。
【0238】
いくつかの例では、複数の領域の各領域は、所定の予測モードのセット内の1つ以上の予測モードでコーディングされた、それぞれの領域内の特別にコーディングされた複数の参照サンプルを含む。複数の領域は、複数の領域内の特別にコーディングされた複数の参照サンプルのそれぞれに基づいてランク付けできる。
【0239】
いくつかの例では、複数の領域の各領域に関連する参照頻度は、現在ピクチャ又は現在ピクチャの一部においてCBを予測するために使用されるブロックベクトルによってそれぞれの領域が参照される回数を示す。複数の領域は、複数の領域のそれぞれの参照頻度に基づいてランク付けできる。
【0240】
(S1950)において、現在ピクチャ内のCBは、再構成領域を含む現在のローカル参照範囲に基づくIBCモードを使用して復号できる。
【0241】
(S1950)の後に、プロセス(1900)は(S1999)に進み、終了する。
【0242】
プロセス(1900)は様々なシナリオに適切に適応させることができ、プロセス(1900)内のステップはそれに従って調整できる。プロセス(1900)内のステップの1つ以上は、適応、省略、反復及び/又は組み合わせが可能である。プロセス(1900)を実施するために、いずれか適切な順序が使用できる。更なるステップが追加できる。
【0243】
一例では、以前のローカル参照範囲は複数の領域を含む。複数の領域の1つにおけるサブ領域の再構成サンプルを除いて、複数の領域の再構成サンプルがRSMに記憶される。複数領域の1つにおけるサブ領域の再構成サンプルは、複数の領域の1つにおけるサブ領域に対応するパディングされたサンプルをRSMに記憶するパディングプロセスによって置き換えられる。
【0244】
本開示における実施形態は、個別に使用されてもよく、或いは、任意の順序で組み合わされてもよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。
【0245】
上述の技術は、コンピュータ読み取り可能な命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。例えば、図20は、開示された主題の特定の実施形態を実施するのに好適なコンピュータシステム(2000)を示す。
【0246】
コンピュータソフトウェアは、任意の好適な機械コード又はコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、又は同様の機構の対象とされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に、又はインタープリット、マイクロコード実行等を通じて実行可能な命令を含むコードを作成することができる。
【0247】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はそのコンポーネント上で実行されることができる。
【0248】
コンピュータシステム(2000)について図20に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータシステム(2000)の例示的実施形態において示されているコンポーネントの任意の1つ又は組み合わせに関する何らかの依存性又は要件を有するものとして解釈されるべきではない。
【0249】
コンピュータシステム(2000)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャー)、嗅覚入力(図示せず)を通じた一又は複数の人間ユーザによる入力に応答することができる。また、ヒューマンインターフェースデバイスは、音声(例えば、発話、音楽、周囲の音)、画像(例えば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しない特定のメディアを捕捉するために使用できる。
【0250】
入力ヒューマンインターフェースデバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロフォン(2006)、スキャナ(2007)、カメラ(2008)の1つ以上(それぞれの一つしか図示していない)を含んでいてもよい。
【0251】
コンピュータシステム(2000)はまた、特定のヒューマンインターフェース出力デバイスを含んでいてもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び臭い/味を通じて、一又は複数の人間ユーザの感覚を刺激するものであってもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、又はジョイスティック(2005)による触覚フィードバック;ただし、入力デバイスのはたらきをしない触覚フィードバックデバイスもあり得る)、音声出力デバイス(例えば、スピーカー(2009)、ヘッドフォン(図示せず))、視覚出力デバイス(例えば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2010);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力又は立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイ及び煙タンク(図示せず))、及びプリンタ(図示せず)を含んでいてもよい。
【0252】
コンピュータシステム(2000)はまた、人間がアクセス可能な記憶デバイス及び関連する媒体、例えば、CD/DVD又は類似の媒体(2021)とともにCD/DVD ROM/RW(2020)を含む光学式媒体、サムドライブ(2022)、取り外し可能なハードドライブ又はソリッドステートドライブ(2023)、テープ及びフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティドングルのような特化したROM/ASIC/PLDベースのデバイス(図示せず)等を含むことができる。
【0253】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0254】
コンピュータシステム(2000)はまた、1つ以上の通信ネットワーク(2055)へのインターフェース(2054)を含むことができる。ネットワークは、例えば、無線、有線、光学式であり得る。ネットワークは、さらに、ローカル、広域、都市圏、車載及び工業用、リアルタイム、遅延耐性等であり得る。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線又は無線の広域デジタルネットワーク、CANBusを含む車載及び工業用等を含む。特定のネットワークは、普通、特定の汎用データポート又は周辺バス(2049)(例えば、コンピュータシステム(2000)のUSBポート等)に取り付けられる外部ネットワークインターフェースアダプターを必要とする。他は、普通、後述するようなシステムバスへの取り付けによって、コンピュータシステム(2000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(例えば、放送テレビ)、一方向性送信専用(例えば、特定のCANbusデバイスへのCANbus)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性であってもよい。上述のようなそれらのネットワーク及びネットワークインターフェースのそれぞれで、特定のプロトコル及びプロトコルスタックが使用できる。
【0255】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2000)のコア(2040)に取り付けることができる。
【0256】
コア(2040)は、1つ以上の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲートアレイ(FPGA)(2043)の形の特化したプログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(2044)、グラフィックアダプター(2050)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、内部のユーザアクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)等の内部大容量記憶デバイス(2047)とともに、システムバス(2048)を通じて接続され得る。いくつかのコンピュータシステムでは、追加のCPU、GPU等による拡張を可能にするために、システムバス(2048)は、1つ以上の物理プラグの形でアクセス可能であってもよい。周辺デバイスは、コアのシステムバス(2048)に直接取り付けられることも、周辺バス(2049)を通じて取り付けられることもできる。一例では、グラフィックアダプター(2050)にスクリーン(2010)が接続されることができる。周辺バスのためのアーキテクチャは、PCI、USB等を含む。
【0257】
CPU(2041)、GPU(2042)、FPGA(2043)、及びアクセラレータ(2044)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を、実行することができる。そのコンピュータコードは、ROM(2045)又はRAM(2046)に記憶できる。一時的データは、RAM(2046)に記憶されることができ、一方、持続的データは、例えば、内部大容量記憶デバイス(2047)に記憶されることができる。1つ以上のCPU(2041)、GPU(2042)、大容量記憶デバイス(2047)、ROM(2045)、RAM(2046)等と密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶及び取り出しを可能にすることができる。
【0258】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又は、コンピュータソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0259】
限定ではなく一例として、アーキテクチャ(2000)、具体的にはコア(2040)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶並びにコア内部の大容量記憶デバイス(2047)又はROM(2045)のような非一時的な性質のコア(2040)の特定の記憶に関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2040)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、RAM(2046)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定の特定部分を、コア(2040)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることができる。追加的又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(2044))内に配線された、又は他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、又はそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(例えば集積回路(IC))、実行のための論理を具現する回路、又はその双方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の好適な組み合わせを包含する。
【0260】
付録A:頭字語
JEM: joint exploration model
VVC: versatile video coding
BMS: benchmark set
MV: Motion Vector
HEVC: High Efficiency Video Coding
SEI: Supplementary Enhancement Information
VUI: Video Usability Information
GOP: Group of Pictures
TU: Transform Unit
PU: Prediction Unit
CTU: Coding Tree 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 communications
LTE: Long-Term Evolution
CANBus: Controller Area Network Bus
USB: Universal Serial Bus
PCI: Peripheral Component Interconnect
FPGA: Field Programmable Gate Areas
SSD: solid-state drive
IC: Integrated Circuit
CU: Coding Unit
R-D: Rate-Distortion
【0261】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、及び様々な代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具現し、よって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図11
図12
図13
図14A
図14B
図15
図16
図17
図18
図19
図20
【外国語明細書】