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

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

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

特開2024-111184イントラモードコーディングのための改良
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024111184
(43)【公開日】2024-08-16
(54)【発明の名称】イントラモードコーディングのための改良
(51)【国際特許分類】
   H04N 19/11 20140101AFI20240808BHJP
   H04N 19/176 20140101ALI20240808BHJP
   H04N 19/46 20140101ALI20240808BHJP
【FI】
H04N19/11
H04N19/176
H04N19/46
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024099241
(22)【出願日】2024-06-20
(62)【分割の表示】P 2023524542の分割
【原出願日】2022-01-18
(31)【優先権主張番号】17/564,607
(32)【優先日】2021-12-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/222,376
(32)【優先日】2021-07-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】
【課題】ビデオデコーディングにおけるイントラ予測モードコーディングのための方法を提供する。
【解決手段】方法は、ブロックのコーディングされたビデオビットストリームをデバイスによって受信すること;デバイスによって、イントラモードのリストをブロックの複数のイントラモードセットに、リスト内の各イントラモードのモード情報に基づいて、分割すること;コーディングされたビデオビットストリームから、デバイスによって、複数のイントラモードセットからイントラモードセットを示すセットインデックスを抽出すること;コーディングされたビデオビットストリームから、デバイスによって、イントラモードセットからイントラ予測モードを示すモードインデックスを抽出すること;及び、デバイスによって、セットインデックス及びモードインデックスに基づいて、ブロックのイントラ予測モードを決定すること;を含む。
【選択図】図15

【特許請求の範囲】
【請求項1】
ビデオデコーディングにおけるイントラ予測モードコーディングのための方法であって、前記方法は:
命令を記憶するメモリ及び前記メモリと通信するプロセッサを含むデバイスによって、ブロックのコーディングされたビデオビットストリームを受信すること;
前記デバイスによって、イントラモードのリストを前記ブロックの複数のイントラモードセットに、前記リスト内の各イントラモードのモード情報に基づいて分割することであって、前記イントラモードのリストは前記ブロックの少なくとも1つの隣接ブロックのイントラ予測モードに対応する、分割すること;
前記コーディングされたビデオビットストリームから、前記デバイスによって、前記複数のイントラモードセットからイントラモードセットを示すセットインデックスを抽出すること;
前記コーディングされたビデオビットストリームから、前記デバイスによって、前記イントラモードセットからイントラ予測モードを示すモードインデックスを抽出すること;及び
前記デバイスによって、前記セットインデックス及び前記モードインデックスに基づいて、前記ブロックの前記イントラ予測モードを決定すること;を含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本出願は、2021年7月15日に出願された米国仮出願第63/222,376号及び2021年12月29日に出願された米国特許出願第17/564,607号に基づくとともにこれらに対する優先権の利益を主張するものであり、これらの両方はその全体が参照により本出願に援用される。
【0002】
[技術分野]
本開示は、ビデオコーディング(coding)及び/又はデコーディング(decoding)技術に関し、特にイントラ予測モードコーディング改良された設計及びシグナリング(signaling)に関する。
【背景技術】
【0003】
本明細書で提供されるこの背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で本出願の出願時に先行技術として適格でないことがあり得る本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオコーディング及びデコーディングは、動き補償を伴うインターピクチャ予測を使用して実行できる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080のルミナンスサンプル及び関連するフル又はサブサンプリングされたクロミナンスサンプルの空間的寸法を有する。一連のピクチャは、固定又は可変のピクチャレート(代替的にはフレームレートと呼ばれる)、例えば、毎秒60ピクチャ又は毎秒60フレームのピクチャレートを有することができる。非圧縮ビデオは、ストリーミング又はデータ処理のための特定のビットレート要件を有する。例えば、1920×1080のピクセル解像度、60フレーム/秒のフレームレート、及びカラーチャネルあたりピクセルあたり8ビットで4:2:0のクロマサブサンプリングを持つビデオは、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性を低減することである。圧縮は、前述の帯域幅及び/又は記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことができる。可逆圧縮及び不可逆圧縮の双方、並びにそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮された元の信号からデコードプロセスを介して元の信号の正確なコピーを再構成できる技術をいう。不可逆圧縮とは、元のビデオ情報がコーディング中に完全に保持されず、デコーディング中に完全に回復可能でないコーディング/デコードプロセスをいう。不可逆圧縮を使用する場合、再構成された信号は、元の信号と同一ではないことがあり得るが、元の信号と再構成された信号との間の歪みは、多少の情報損失にもかかわらず、再構成された信号が意図されたアプリケーションに役立つように十分小さくされる。ビデオの場合、不可逆圧縮が多くのアプリケーションで広く用いられている。許容される歪みの量はアプリケーションに依存する。例えば、特定の消費者ビデオストリーミングアプリケーションのユーザは、映画又はテレビ放送アプリケーションのユーザよりも高い歪みを許容することがある。特定のコーディングアルゴリズムによって達成可能な圧縮比は、さまざまな歪み許容度を反映するように選択又は調整されることができる:より高い許容可能な歪みは、概して、より高い損失及びより高い圧縮比をもたらすコーディングアルゴリズムを可能にする。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、フーリエ変換、量子化、及びエントロピーコーディングを含むいくつかの広範なカテゴリ及びステップからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、ピクチャが空間的にサンプルのブロックに分割される。サンプルの全てのブロックがイントラモードでコーディングされる場合、そのピクチャをイントラピクチャと呼ぶことができる。イントラピクチャと、独立デコーダリフレッシュピクチャのようなその派生物は、デコーダ状態をリセットするために使用でき、よって、コーディングされたビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用できる。イントラ予測後のサンプルをその後周波数領域への変換にかけることができ、そのように生成された変換係数は、エントロピーコーディングの前に量子化されることができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術から知られるような伝統的なイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接するエンコーディング及び/又はデコーディング中に得られる周囲のサンプルデータ及び/又はメタデータに基づいてブロックのコーディング/デコーディングを試み、イントラコーディング又はデコーディングされるデータのブロックをデコーディング順序で先行させる技術を含む。このような技術は、以下では「イントラ予測」技術と呼ばれる。少なくともいくつかの場合には、イントラ予測は再構成中の現在ピクチャからの参照データのみを使用し、他の参照ピクチャからの参照データは使用しないことに注意されたい。
【0009】
様々な形のイントラ予測があり得る。所与のビデオコーディング技術において、そのような技術1より多くが利用可能である場合、使用される技術は、イントラ予測モードと呼ばれることができる。1つ以上のイントラ予測モードが特定のコーデックで提供される場合がある。特定の場合には、モードは、サブモードを持つことができる及び/又は様々なパラメータと関連付けられ得、モード/サブモード情報とビデオのブロックのイントラコーディングパラメータは、個別に又はモードコードワードにまとめてコーディングされることができる。所与のモード、サブモード及び/又はパラメータの組み合わせのためにどのコードワードを使用するかは、イントラ予測を通してコーディング効率利得に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も同様に影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM)、多用途ビデオコーディング(VVC)、及びベンチマークセット(BMS)のようなより新しいコーディング技術においてさらに洗練された。一般に、イントラ予測では、予測子ブロックは、利用可能になった隣接(neighboring)サンプル値を使用して形成されることができる。例えば、特定の方向及び/又は線に沿った隣接サンプルの特定のセットの利用可能な値が予測子ブロックにコピーされ得る。使用される方向への参照は、ビットストリームにおいてコーディングされることができ、或いは、それ自身予測されてもよい。
【0011】
図1Aを参照すると、右下に示されているのは、H.265の33の可能なイントラ予測子方向(H.265で指定された35個のイントラモードの33個の角度モードに対応する)で指定された9個の予測子方向のサブセットである。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、隣接サンプルを使用して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】
ブロック104のイントラピクチャ予測は、シグナリングされる(signaled)予測方向にしたがって、隣接サンプルから参照サンプル値をコピーすることによって開始し得る。例えば、コーディングされたビデオビットストリームが、このブロック104について、矢印(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個のイントラ予測方向を描く概略図(180)を示している。
【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予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測自身が、例えば、いくつかの周囲のMVから予測子を計算する際の丸め誤差のために、不可逆であることがある。
【0020】
H.265/HEVC(ITU-T Rec. H.265、「High Efficiency Video Coding」、December 2016)には、様々なMV予測機構が記載されている。H.265が指定する多くのMV予測機構のうち、以下に説明するものは、以後、「空間マージ(spatial merge)」と呼ばれる技術である。
【0021】
具体的には、図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセスの間にエンコーダによって見出されたサンプルを含む。そのMVを直接コーディング(符号化)する代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば(復号順で)最新の参照ピクチャから、A0、A1、及びB0、B1、B2(それぞれ202~206)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、隣接ブロックが使用するのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示は、ビデオエンコーディング及び/又はデコーディングのための方法、装置、及びコンピュータ可読記憶媒体の様々な実施形態を説明する。
【0023】
一態様によれば、本開示の一実施形態は、ビデオデコーディングにおけるイントラ予測モードコーディングのための方法を提供する。本方法は、ブロックのコーディングされたビデオビットストリームをデバイスによって受信することを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサを含む。また、本方法は、デバイスによって、リスト内の各イントラモードのモード情報に基づいて、ブロックの複数のイントラモードセットにイントラモードのリストを分割することであって、イントラモードのリストはブロックの少なくとも1つの隣接ブロックのイントラ予測モードに対応する、分割すること;コーディングされたビデオビットストリームから、デバイスによって、複数のイントラモードセットからイントラモードセットを示すセットインデックスを抽出すること;コーディングされたビデオビットストリームから、デバイスによって、イントラモードセットからイントラ予測モードを示すモードインデックスを抽出すること;及び、デバイスによって、セットインデックス及びモードインデックスに基づいて、ブロックのイントラ予測モードを決定すること;を含む。
【0024】
別の態様によれば、本開示の一実施形態は、ビデオエンコーディング及び/又はデコーディングのための装置を提供する。装置は、命令を記憶するメモリ;及びメモリと通信するプロセッサを含む。プロセッサが命令を実行するとき、プロセッサは、ビデオデコーディング及び/又はエンコーディングのための上記の方法を装置に実行させるように構成される。
【0025】
別の態様では、本開示の一実施形態は、ビデオデコーディング及び/又はエンコーディングのためにコンピュータによって実行されるとき、コンピュータにビデオデコーディング及び/又はエンコーディングのための上記の方法を実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0026】
上記及びその他の態様及びそれらの実装は、図面、説明、及び請求項でより詳細に説明されている。
【図面の簡単な説明】
【0027】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明白になるであろう。
【0028】
図1A】イントラ予測方向性モードの例示的なサブセットの概略図を示す。
【0029】
図1B】例示的なイントラ予測方向の説明図を示す。
【0030】
図2】一例における動きベクトル予測のための現在ブロック及びその周囲空間マージ候補の概略図を示す。
【0031】
図3】例示的実施形態による通信システム(300)の簡略化されたブロック図の概略図を示す。
【0032】
図4】例示的実施形態による通信システム(400)の簡略化されたブロック図の概略図を示す。
【0033】
図5】例示的実施形態によるビデオデコーダの簡略化されたブロック図の概略図を示す。
【0034】
図6】例示的実施形態によるビデオエンコーダの簡略化されたブロック図の概略図を示す。
【0035】
図7】別の例示的実施形態によるビデオエンコーダのブロック図を示す。
【0036】
図8】別の例示的実施形態によるビデオデコーダのブロック図を示す。
【0037】
図9】本開示の例示的実施形態による方向性イントラ予測モードを示す。
【0038】
図10】本開示の例示的な実施形態による非方向性イントラ予測モードを示す。
【0039】
図11】本開示の例示的な実施形態による再帰的イントラ予測モードを示す。
【0040】
図12】本開示の例示的な実施形態による様々な基準線に基づくイントラ予測スキームを示す。
【0041】
図13】本開示の例示的な実施形態によるイントラ予測のためのオフセットベースの改良を示す。
【0042】
図14A】本開示の例示的な実施形態によるイントラ予測のためのオフセットベースの改良の別の図を示す。
【0043】
図14B】本開示の例示的な実施形態によるイントラ予測のためのオフセットベースの改良の別の図を示す。
【0044】
図15】本開示の例示的な実施形態による方法のフローチャートを示す。
【0045】
図16】本開示の例示的な実施形態によるコンピュータシステムの概略図を示す。
【発明を実施するための形態】
【0046】
以下、本発明の一部を構成し、例示として実施形態の具体例を示す添付図面を参照して、本発明を詳細に説明する。しかし、本発明は、様々な異なる形態で具体化される可能性があり、したがって、対象の又は特許請求の範囲に記載された主題は、以下に述べるいずれの実施形態にも限定されないと解釈されることを意図していることに注意されたい。また、本発明は、方法、装置、コンポーネント又はシステムとして具体化される可能性があることに注意されたい。したがって、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせの形態をとり得る。
【0047】
明細書及び特許請求の範囲を通して、用語は、明示的に述べられた意味を超えて、文脈において示唆又は暗示されたニュアンスを持ち得る。本明細書で使用される「実施形態において」又は「いくつかの実施形態において」という語句は、必ずしも同じ実施形態を指すとは限らず、本明細書で使用される「別の実施形態において」又は「他の実施形態において」という語句は、必ずしも異なる実施形態を指すとは限らない。同様に、本明細書で使用される「実装において」又は「いくつかの実装において」という語句は、必ずしも同じ実装を指すとは限らず、ここで使用される「別の実装において」又は「他の実装において」という語句は、必ずしも異なる実装を指すとは限らない。例えば、請求項に記載された主題は、全体又は一部の例示的な実施形態/実装の組み合わせが含まれることが意図されている。
【0048】
一般に、用語は、少なくとも部分的には文脈での使用から理解され得る。例えば、本明細書で使用される「及び」、「又は」、「及び/又は」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存し得る様々な意味を含み得る。典型的には、「又は」は、A、B、又はCなどのリストを関連付けるために使用される場合、ここでは包括的な意味で使用されるA、B、又はCだけでなく、ここでは排他的な意味で使用されるA、B、又はCも意味することを意図している。加えて、本明細書で使用される 「1つ以上」又は少なくとも1つ」という用語は、少なくとも部分的に文脈に応じて、任意の特徴、構造、又は特性を単一の意味で記述するために使用される場合もあれば、特徴、構造、又は特性の組み合わせを複数の意味で記述するために使用される場合もある。同様に、「1つの(「a」、「an」)」、又は「その(「the」)などの用語は、少なくとも部分的に文脈に応じて、単数の用法を伝えるため、又は複数の用法を伝えるように理解される場合がある。加えて、「に基づく」又は「によって決定される」という用語は、必ずしも要素の排他的なセットを伝えることを意図していないと理解される場合があり、代わりに、この場合も同様に、少なくとも部分的に文脈に応じて、必ずしも明示的に記述されていない追加的な要素の存在を可能にする場合がある。
【0049】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行し得る。例えば、端末デバイス(310)は、ネットワーク(350)を介した他方の端末デバイス(320)への伝送のために、(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングしてもよい。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で伝送されることができる。端末デバイス(320)は、ネットワーク(350)から、コーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディアサービスアプリケーション等において実装され得る。
【0050】
別の例では、通信システム(300)は、例えばビデオ会議アプリケーション中に実装され得るコーディングされたビデオデータの双方向伝送を実行する第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した、端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のために、(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングし得る。端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し得、コーディングされたビデオデータをデコーディングして、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能な表示デバイスにおいてビデオピクチャを表示し得る。
【0051】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして実装され得るが、本開示の基礎となる原理の適用可能性は、それに限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のビデオ会議設備などで実装され得る。ネットワーク(350)は、例えば有線(配線)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間でコーディングされたビデオデータを伝達する任意の数又は種類のネットワークを表す。通信ネットワーク(350)は、回線交換、パケット交換、及び/又は他の種類のチャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。ここでの議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、ここで明示的に説明しない限り、本開示の動作には重要ではないことがある。
【0052】
図4は、開示される主題のためのアプリケーションのための一例として、ビデオストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示される主題は、例えば、ビデオ会議、デジタルTV放送、ゲーム、仮想現実、CD、DVD、メモリスティック等を含むデジタル媒体上の圧縮ビデオの記憶等を含む、他のビデオ対応アプリケーションにも等しく適用可能であり得る。
【0053】
ストリーミングシステムは、ビデオソース(401)、例えばデジタルカメラを含むことができ、例えば非圧縮のビデオピクチャ又は画像のストリーム(402)を生成するビデオキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、ビデオソース(401)のデジタルカメラによって記録されたサンプルを含む。エンコーディングされたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較した場合の高いデータボリュームを強調するために太線として描かれているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にするため或いは実現するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。非圧縮のビデオピクチャのストリーム(402)と比較した場合の、より低いデータボリュームを強調するために細い線として描かれている、エンコーディングされたビデオデータ(404)(又はエンコーディングされたビデオビットストリーム)は、将来の使用のためにストリーミングサーバ(405)に又は直接下流のビデオデバイス(図示せず)に記憶されることができる。図4のクライアントサブシステム(406)及び(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコーディングされたビデオデータ(404)のコピー(407)及び(409)を取り出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入力コピー(407)をデコーディングし、非圧縮であり、ディスプレイ(412)(例えば表示画面)又は他のレンダリングデバイス(図示せず)上にレンダリングできるビデオピクチャの出力ストリーム(411)を生成する。ビデオデコーダ410は、本開示に記載されているさまざまな機能の一部又はすべてを実行するように構成され得る。いくつかのストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮標準に従ってエンコーディングされることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング標準は、非公式に多用途ビデオコーディング(VVC)として知られている。開示される主題は、VVC、及び他のビデオコーディング標準の文脈で使用されてもよい。
【0054】
電子デバイス(420)及び(430)は、他のコンポーネント(図示せず)を含むことができることを注意しておく。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0055】
図5は、以下の本開示のいずれかの実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(310)の代わりに使用できる。
【0056】
受信機(531)は、ビデオデコーダ(510)によってデコーディングされることになる1つ以上のコーディングされたビデオシーケンスを受信し得る。同じ又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスがデコーディングされてもよく、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスの復号から独立である。各ビデオシーケンスは、複数のビデオフレーム又は画像と関連付けられ得る。コーディングされたビデオシーケンスは、チャネル(501)から受信されてもよく、該チャネルは、エンコーディングされたビデオデータを記憶する記憶デバイス又はエンコーディングされたビデオデータを送信するストリーミングソースへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、エンコーディングされたビデオデータを、コーディングされたオーディオデータ及び/又は補助データストリームなどの他のデータと一緒に受信してもよく、これらのデータは、それぞれの処理回路(図示せず)を転送され得る。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタ対策として、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下「パーサ」)との間に配置され得る。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部として実装され得る。他のアプリケーションでは、ビデオデコーダ(510)の外部に分離することができる(図示せず)。さらに他のアプリケーションでは、例えばネットワークジッタに対抗する目的のために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があることができ、例えば再生タイミングを扱うために、ビデオデコーダ(510)の内部に別の追加のバッファメモリ(515)があってもよい。受信機(531)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合は、バッファメモリ(515)は、必要とされなくてもよく、或いは、小さくてもよい。インターネットのようなベストエフォート型のパケットネットワークでの使用のためには、十分なサイズのバッファメモリ(515)が要求されることがあり、そのサイズは比較的大きくなることがある。このようなバッファメモリは、適応サイズで実装されことができ、少なくとも部分的に、ビデオデコーダ(510)の外部でオペレーティングシステム又は同様の要素(図示せず)において実装されてもよい。
【0057】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的には、表示デバイス(512)(例えば表示画面)のようなレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスは、電子デバイス(530)の一体的な部分であってもなくてもよいが、図5に示すように、電子デバイス(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)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化器パラメータ値、動きベクトル等の情報を抽出し得る。
【0058】
パーサ(520)は、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコーディング/パース動作を実行し、それによりシンボル(521)を生成し得る。
【0059】
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその諸部分のタイプ(例えば、インター及びイントラピクチャ、インター及びイントラブロック)、及び他の要因に依存して、複数の異なる処理又は機能ユニットに関わることができる。関わるユニット及びそれらがどのように関わるかは、コーディングされたビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御され得る。パーサ(520)と下記の複数の処理又は機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔さのため、描かれていない。
【0060】
既に述べた機能ブロックのほかに、ビデオデコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実用的な実装では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題の様々は機能を明確に記述する目的のためには、以下の開示では、機能ユニットへの概念的な細分化が採用される。
【0061】
第1のユニットは、スケーラ/逆変換ユニット(551)を含み得る。スケーラ/逆変換ユニット(551)は、どのタイプの逆変換を使用するかを示す情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列、及びシンボル(単数又は複数)としての状態(521)を含む制御情報とともに、量子化変換係数をパーサ(520)から受信し得る。スケーラ/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0062】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、イントラコーディングされたブロックは、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在の画像バッファ(558)に既に再構成され記憶されている周囲のブロック情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成し得る。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。集計器(555)は、いくつかの実装では、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加算し得る。
【0063】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、インターピクチャ予測のために使用されるサンプルを取ってくるために参照ピクチャメモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラ/逆変換ユニットの出力(ユニット551の出力は、残差サンプル又は残差信号と呼ばれ得る)に加算されて、それにより出力サンプル情報を生成することができる。動き補償予測ユニット(553)が予測サンプルを取ってくる参照ピクチャメモリ(557)内のアドレスは、シンボル(521)の形で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、例えばX、Y成分(シフト)、及び参照ピクチャ成分(時間)を有することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されるときの参照ピクチャメモリ(557)から取ってこられるサンプル値の補間を含み得、動きベクトル予測機構等とも関連付けられ得る。
【0064】
集計器(555)の出力サンプルは、ループフィルタユニット(556)内で様々なループフィルタリング技術にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順で)前の部分のデコーディング中に得られたメタ情報に応答するとともに、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。いくつかのタイプのループフィルタが、さまざまな順序でループフィルタユニット556の一部として含まれる場合があるが、これについては後述する。
【0065】
ループフィルタユニット(556)の出力はサンプルストリームであることができ、これは、レンダリングデバイス(512)に出力されることができ、また将来のインターピクチャ予測において使用するために参照ピクチャメモリ(557)に記憶されることができる。
【0066】
コーディングされたピクチャは、いったん完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、該コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、後続のコーディングされたピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファが再割り当てされることができる。
【0067】
ビデオデコーダ(510)は、ITU-T勧告H.265のような標準に採用されている所定のビデオ圧縮技術に従ってデコーディング動作を実行し得る。コーディングされたビデオシーケンスがビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準において文書化されているプロファイルの両方に従うという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって規定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術又は標準において利用可能な全てのツールから、そのプロファイルのもとで利用可能な唯一のツールとして、特定のツールを選択することができる。標準に準拠するために、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあり得る。いくつかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャサイズ等を制約する。レベルによって設定された限界は、場合によっては、コーディングされたビデオシーケンスにおいてシグナリングされる、HRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様及びメタデータを通じてさらに制約されることができる。
【0068】
いくつかの例示的な実施形態では、受信機(531)は、エンコーディングされたビデオとともに追加の(冗長な)データを受信し得る。追加データは、コーディングされたビデオシーケンス(単数又は複数)の一部として含まれ得る。追加データは、データを適正にデコーディングするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号等の形であり得る。
【0069】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれ得る。電子デバイス(620)は、さらに、送信機(640)(例えば、送信回路)を含み得る。ビデオエンコーダ(603)は、図4の例におけるビデオエンコーダ(403)の代わりに使用できる。
【0070】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされることになるビデオ画像をキャプチャし得るビデオソース(601)(これは図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は、電子デバイス(620)の一部として実装され得る。
【0071】
ビデオソース(601)は、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ、…)及び任意の好適なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形で、ビデオエンコーダ(603)によってコーディングされることになるソースビデオシーケンスを提供し得る。メディアサービスシステムにおいては、ビデオソース(601)は、事前に準備されたビデオを記憶することができる記憶デバイスであり得る。ビデオ会議システムにおいては、ビデオソース(601)は、ローカルでの画像情報をビデオシーケンスとしてキャプチャするカメラでもよい。ビデオデータは、シーケンスで見たときに動きを付与する複数の個々のピクチャ又は画像として提供され得る。ピクチャ自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用されているサンプリング構造、色空間等に依存して、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0072】
いくつかの例示的な実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャを、リアルタイムで或いはアプリケーションによって要求される任意の他の時間的制約の下で、コーディング及び圧縮して、コーディングされたビデオシーケンス(643)にし得る。適切なコーディング速度を施行することは、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットに機能的に結合され、該他の機能ユニットを制御し得る。かかる結合は、簡潔さのために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャスキップ、量子化器、レート‐歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0073】
いくつかの例示的な実施形態では、ビデオエンコーダ(603)は、コーディングループにおいて動作するように構成され得る。思い切って単純化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされることになる入力ピクチャ、及び参照ピクチャ(単数又は複数)に基づいてシンボルストリームなどのシンボルを生成することを受け持つ)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、埋め込みデコーダ633がエントロピーコーディングなしでソースコーダ630によってコーディングされたビデオストリームを処理する場合でも、(リモートの)デコーダが生成するであろうのと同様の仕方でサンプルデータを生成するよう前記シンボルを再構成する(エントロピーコーディングにおけるシンボルとコーディングされたビデオビットストリームとの間の圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆である可能性があるため)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャメモリ(634)の内容もローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコーディング中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、コーディング品質を向上させるために使用される。
【0074】
「ローカル」デコーダ(633)の動作は、図5との関連で既に上記で詳細に述べた「リモート」デコーダ、例えばビデオデコーダ(410)の動作と同じでもよい。しかしながら、簡単に図5も参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(420)による、シンボルのコーディングされたビデオシーケンスへのエンコーディング/デコーディングが可逆であり得るので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピーデコーディング部は、エンコーダのローカルデコーダ(633)においては完全には実装されなくてもよい。
【0075】
この時点で行うことができる観察は、デコーダにのみ存在し得るパース/エントロピーデコーディングを除くデコーダ技術は、また、対応するエンコーダにも、実質的に同じ機能形態で必然的に存在する必要があり得ることである。このため、開示される主題は、デコーダの動作に焦点を当てることがあり、これはエンコーダのデコード部分に関連する。したがって、エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、省略することができる。特定の領域又は態様においてのみ、エンコーダのより詳細な説明を以下に示す。
【0076】
動作中、いくつかの例示的な実装では、ソースコーダ(630)は、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測的にコーディングする、動き補償された予測コーディングを実行し得る。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照(単数又は複数)として選択され得る参照ピクチャ(単数又は複数)のピクセルブロックとの間の差分をコーディングする。
【0077】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングし得る。コーディングエンジン(632)の動作は、有利には、損失のあるプロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図6には示さず)でデコーディングされ得るとき、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端の(リモート)ビデオデコーダによって得られるであろう再構成された参照ピクチャとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャのコピーを、ローカルに記憶することができる。
【0078】
予測器(635)は、コーディングエンジン(632)について予測探索を実行することができる。すなわち、コーディングされることになる新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測参照として機能し得るサンプルデータ(候補参照ピクセルブロックとして)又は特定のメタデータ、例えば参照ピクチャ動きベクトル、ブロック形状等を求めて、参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプルブロック/ピクセルブロック毎に(on a sample block-by-pixel block basis)動作し得る。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
【0079】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(630)のコーディング動作を管理し得る。
【0080】
上記の機能ユニット全ての出力は、エントロピーコーダ(645)におけるエントロピーコーディングを受け得る。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング等といった技術に従ってシンボルの無損失圧縮によって、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0081】
送信機(640)は、エントロピーエンコーダ(645)によって生成されるコーディングされたビデオシーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備し得る。通信チャネル(660)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信されることになる他のデータ、例えばコーディングされたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージし得る。
【0082】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディングの間、コントローラ(650)は、それぞれのコーディングされたピクチャに、あるコーディングされたピクチャタイプを割り当て得る。コーディングされたピクチャタイプは、それぞれのピクチャに適用され得るコーディング技術に影響し得る。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つとして割り当てられ得る:
【0083】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、コーディングされ、デコーディングされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形、並びにそれらのそれぞれの用途及び特徴を認識する。
【0084】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いてコーディング及びデコーディングされ得るものであり得る。
【0085】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いてコーディング及びデコーディングされ得るものであり得る。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0086】
ソースピクチャは、通常では、空間的に複数のサンプルコーディングブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に分割され、ブロック毎にコーディングされ得る。ブロックは、「ブロック」のそれぞれのピクチャに適用されるコーディング割り当てによって決定されるところにより、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、或いは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間的予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的にコーディングされてもよい。ソースピクチャ又は中間処理されたピクチャは、他の目的のために他のタイプのブロックに細分化されてもよい。コーディングブロック及び他のタイプのブロックの分割は、以下でさらに詳細に説明するように、同じ方法に従う場合と従わない場合がある。
【0087】
ビデオエンコーダ(603)は、ITU-T勧告H.265等の所定のビデオコーディング技術又は標準に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング動作を含む、様々な圧縮動作を実行し得る。コーディングされたビデオデータは、したがって、使用されるビデオコーディング技術又は標準によって指定されるシンタックスに準拠し得る。
【0088】
いくつかの実施形態では、送信機(640)は、エンコーディングされたビデオと一緒に追加データを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNRエンハンスメント層、冗長ピクチャ及びスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント等を含んでいてもよい。
【0089】
ビデオは、時間的シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。例えば、現在ピクチャと呼ばれるエンコーディング/デコーディング対象の特定のピクチャは、ブロックにパーティション化され得る。現在ピクチャ内のブロックが、ビデオにおける、前にコーディングされ、且つ、まだバッファに入れられている参照ピクチャ内の参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを識別する第3の次元を有することができる。
【0090】
いくつかの例示的な実施形態では、双予測技術がインターピクチャ予測に使用できる。そのような双予測技術によれば、いずれもビデオにおいて現在ピクチャよりデコーディング順で先行する(ただし、表示順では、それぞれ過去又は将来でもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングできる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって共同予測できる。
【0091】
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技術が使用できる。
【0092】
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックの単位で実行される。例えば、ビデオピクチャのシーケンスにおけるピクチャは、圧縮のためにコーディングツリーユニット(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に分割されることができる。32 x 32ブロックの1つ以上のそれぞれは、さらに16 x 16ピクセルの4つのCUに分割することができる。いくつかの例では、各CUは、インター予測タイプ又はイントラ予測タイプのような様々な予測タイプの中からそのCUについての予測タイプを決定するために解析され得る。CUは時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PU)に分割され得る。一般に、各PUは、ルマ予測ブロック(PB)、及び2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。CUのPU(又は異なるカラーチャネルのPB)への分割は、さまざまな空間パターンで実行され得る。例えば、ルマ又はクロマPBは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプルなどのサンプルについての値(例えば、ルマ値)のマトリックスを含み得る。
【0093】
図7は、本開示の別の例示的な実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコーディングするように構成される。例示的なビデオエンコーダ(703)は、図4の例におけるビデオエンコーダ(403)の代わりに使用され得る。
【0094】
例えば、ビデオエンコーダ(703)は、8×8サンプル等の予測ブロックのような処理ブロックについてサンプル値の行列を受信する。ビデオエンコーダ(703)は、次に、処理ブロックが、イントラモード、インターモード、又は双予測モードのどれを使用して、最もよくコーディングされるかを、例えばレート‐歪み最適化(RDO)を使用して、決定する。処理ブロックがイントラモードでコーディングされると決定される場合、ビデオエンコーダ(703)は、処理ブロックをコーディングされたピクチャにエンコーディングするためにイントラ予測技術を使用し得る。処理ブロックがインターモード又は双予測モードでコーディングされると決定される場合、ビデオエンコーダ(703)は、処理ブロックをコーディングされたピクチャにエンコーディングするために、それぞれ、インター予測技術又は双予測技術を使用し得る。いくつかの例示的な実施形態では、マージモード(merge mode)が、動きベクトルが1つ以上の動きベクトル予測子から導出されるが前記予測子の外のコーディングされた動きベクトル成分の利益のない、インターピクチャ予測のサブモードとして使用され得る。他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在し得る。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュール等の図7に明示的に示されていない他のコンポーネントを含み得る。
【0095】
図7の例では、ビデオエンコーダ(703)は、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、及びエントロピーコーダ(725)を、図7の例示的な配置に示されるように一緒に結合されて含む。
【0096】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、表示順で以前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技術を使用してインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(図7の残差デコーダ728として示されており、以下でさらに詳細に説明する)図6の例示的なエンコーダ620に埋め込まれたデコードユニット633を使用して、エンコーディングされたビデオ情報に基づいてデコーディングされた、デコーディングされた参照ピクチャである。
【0097】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを、同じピクチャ内で既にコーディングされているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラコーディング技術によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)は、該イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算し得る。
【0098】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成され得る。一例では、全般コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいて制御信号をスイッチ(726)に提供する。例えば、予測モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。ブロックについての予測モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。
【0099】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択されたブロックについての予測結果との間の差(残差データ)を計算するように構成され得る。残差エンコーダ(724)は、残差データをエンコードして変換係数を生成するように構成され得る。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成され得る。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な例示的な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用されることができる。例えば、インターエンコーダ(730)は、デコーディングされた残差データ及びインター予測情報に基づいて、デコーディングされたブロックを生成することができ、イントラエンコーダ(722)は、デコーディングされた残差データ及びイントラ予測情報に基づいて、デコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するために好適に処理され、デコーディングされたピクチャは、メモリ回路(図示せず)内にバッファリングされ、参照ピクチャとして使用されることができる。
【0100】
エントロピーエンコーダ(725)は、エンコーディングされたブロックを含むようにビットストリームをフォーマットし、エントロピーコーディングを実行するように構成され得る。エントロピーエンコーダ(725)は、様々な情報をビットストリームに含めるように構成される。例えば、エントロピーエンコーダ(725)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適な情報をビットストリーム内に含めるように構成され得る。インターモード又は双予測モードのいずれかのマージサブモードにおいてブロックをコーディングする場合、残差情報は存在しないことがあり得る。
【0101】
図8は、本開示の別の実施形態による例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコーディングして、再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例におけるビデオデコーダ(410)の代わりに使用され得る。
【0102】
図8の例では、ビデオデコーダ(810)は、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)が図8の例示的な配置に示されるように一緒に結合されたものを含む。
【0103】
エントロピーデコーダ(871)は、コーディングされたピクチャから、そのコーディングされたピクチャが構成されるシンタックスエレメントを表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモード)、イントラデコーダ(872)又はインターデコーダ(880)によって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報等)、例えば量子化された変換係数の形の残差情報等を含むことができる。一例では、予測モードがインター又は双予測モードである場合、インター予測情報がインターデコーダ(880)に提供される。予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0104】
インターデコーダ(880)は、インター予測情報を受信し、該インター予測情報に基づいてインター予測結果を生成するように構成され得る。
【0105】
イントラデコーダ(872)は、イントラ予測情報を受信し、該イントラ予測情報に基づいて予測結果を生成するように構成され得る。
【0106】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成され得る。残差デコーダ(873)はまた、エントロピーデコーダ(871)によって提供され得る特定の制御情報(量子化器パラメータ(QP)を含む)を利用し得る(これは、低データボリュームの制御情報のみであり得るため、データ経路は描かれていない)。
【0107】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてインター又はイントラ予測モジュールによって出力される)とを組み合わせて、再構成されたビデオの一部として再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成され得る。視覚的品質を改善するためにデブロッキング動作等の他の好適な動作も実行されることができることが留意される。
【0108】
ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、任意の好適な技術を用いて実装できることが留意される。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)、(703)及びビデオデコーダ(410)、(510)、(810)は、1つ以上の集積回路を使用して実装できる。別の実施形態では、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装できる。
【0109】
イントラ予測プロセスに戻り、ブロック内のサンプル(例えば、ルマ又はクロマ予測ブロック、又は予測ブロックにさらに分割されていない場合はコーディングブロック)を、隣接、次の隣接、又は他のライン(単数又は複数)又はライン、又はそれらの組み合わせのサンプルによって予測し、予測ブロックを生成する。次に、コーディングされている実際のブロックと予測ブロックとの間の残差が、変換とそれに続く量子化によって処理され得る。さまざまなイントラ予測モードが利用可能にされ得、イントラモード選択に関連するパラメータ及びその他のパラメータがビットストリームでシグナリングされ得る。例えば、さまざまなイントラ予測モードは、サンプルを予測するためのライン位置(単数又は複数)、それに沿って予測サンプルが予測するライン(単数又は複数)から選択される方向、及びその他の特殊なイントラ予測モードに関係する場合がある。
【0110】
例えば、イントラ予測モード(「イントラモード」と互換的に呼ばれる)のセットは、事前に定義された数の方向性(directional)イントラ予測モードを含み得る。図1の例示的な実装に関連して前述したように、これらのイントラ予測モードは、特定のブロック内で予測されるサンプルについての予測としてそれに沿ってブロック外サンプルが選択される、事前に定義された数の方向に対応し得る。別の特定の例示的な実装では、水平軸に対して45から207度の角度に対応する8つの主方向性モードが、サポートされ、事前に定義され得る。
【0111】
イントラ予測の他のいくつかの実装では、方向性テクスチャのより多様な空間冗長性をさらに活用するために、方向性イントラモードがさらに細かい粒度で設定された角度に拡張され得る。例えば、上記の8つの角度の実装は、図9に示すように、V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D 57_PRED、D203_PRED、及びD67_PREDと呼ばれる8つの公称角度を提供するように構成され得、各公称角度に対して、事前に定義された数(例えば7)のより細かい角度が追加され得る。このような拡張により、事前に定義された同じ数の方向性イントラモードに対応して、より大きな合計数(例えば、この例では56)の方向角がイントラ予測に利用可能であり得る。予測角は、公称イントラ角+角度デルタで表され得る。上記の特定の例では、各公称角に対してより細かい7つの角度方向があり、角度デルタは3度のステップサイズに-3~3を掛け得る。
【0112】
上記の方向性イントラ予測はまた、単一方向性(single directional)イントラ予測とも呼ばれることがあり、これは本開示の後半で説明する双方向性(bi-directional)イントラ予測(イントラ双予測とも呼ばれる)とは異なる。
【0113】
いくつかの実装では、代替として又は上記の方向性イントラモードに加えて、事前に定義された数の非方向性(non-directional)イントラ予測モードも、事前に定義され、利用可能にされ得る。例えば、滑らかなイントラ予測モードと呼ばれる5つの非方向性イントラモードが指定され得る。これらの非方向性イントラモード予測モードは、特にDC、PAETH、SMOOTH、SMOOTH_V、及びSMOOTH_Hイントラモードと呼ばれ得る。これらの例の非方向性モードの下での特定のブロックのサンプルの予測を図10に示す。例として、図10は、上の隣接線及び/又は左の隣接線からのサンプルによって予測される4×4ブロック1002を示す。ブロック1002の特定のサンプル1010は、ブロック1002の上の隣接線のサンプル1010のすぐ上のサンプル1004、上の隣接線と左の隣接線の交点としてのサンプル1010の左上のサンプル1006、及びブロック1002の左の隣接線のサンプル1010のすぐ左のサンプル1008に対応し得る。例示的なDCイントラ予測モードでは、左及び上の隣接サンプル1008と1004の平均がサンプル1010の予測子として使用され得る。例示的なPAETHイントラ予測モードでは、上、左、及び左上の参照サンプル1004、1008、及び1006が取得され得、その後これらの3つの参照サンプルのうち、(上+左-上左)に最も近い値がサンプル1010の予測子として設定され得る。例示的なSMOOTH_Vイントラ予測モードでは、サンプル1010は、左上の隣接サンプル1006と左の隣接サンプル1008の垂直方向の二次補間によって予測され得る。例示的なSMOOTH_Hイントラ予測モードでは、サンプル1010は、左上の隣接サンプル1006と上の隣接サンプル1004の水平方向の二次補間によって予測され得る。例示的なSMOOTHイントラ予測モードでは、サンプル1010は、垂直方向と水平方向の二次補間の平均によって予測され得る。上記の非方向性イントラモードの実装は、非限定の例として示されているにすぎない。他の隣接線、及びサンプルの他の非方向性選択、及び予測ブロック内の特定のサンプルを予測するための予測サンプルを組み合わせる方法も考慮される。
【0114】
さまざまなコーディングレベル(ピクチャ、スライス、ブロック、ユニットなど)における上記の方向性モード又は非方向性モードからのエンコーダによる特定のイントラ予測モードの選択がビットストリームでシグナリングされ得る。いくつかの例示的な実装では、5つの非角平滑モードとともに例示的な8つの公称方向性モード(合計13のオプション)が最初にシグナリングされ得る。その後、シグナリングされたモードが8つの公称角イントラモードのうちの1つである場合、選択された角度デルタを対応するシグナリングされる公称角に示すために、インデックスがさらにシングなリングされる。いくつかの他の例示的な実装では、シグナリングのために、すべてのイントラ予測モードがすべて一緒にインデックス付けされ得る(例えば、56個の方向性モードと5個の非方向性モードを加えて61個のイントラ予測モードを生成する)。
【0115】
いくつかの例示的な実装では、例56又は他の数の方向性イントラ予測モードは、ブロックの各サンプルを参照サブサンプル位置に投影し、2タップのバイリニアフィルタによって参照サンプルを補間する、統一された方向性予測器で実装され得る。
【0116】
いくつかの実装では、エッジ上の参照との減衰する空間的相関をキャプチャするために、FILTER INTRAモードと呼ばれる追加のフィルタモードが設計され得る。これらのモードでは、ブロック外のサンプルに加えてブロック内の予測サンプルが、ブロック内のいくつかのパッチについてのイントラ予測参照サンプルとして使用され得る。これらのモードは、例えば、事前に定義されており、少なくともルマブロック(又はルマブロックのみ)についてのイントラ予測に使用可能にされ得る。事前に定義された数(例えば、5)のフィルタイントラモードが事前に設計され得、それぞれは、例えば、4×2パッチ内のサンプルとそれに隣接するn個の近傍との間の相関を反映するnタップフィルタ(例えば、7タップフィルタ)のセットによって表される。言い換えれば、nタップフィルタの重み付け係数は位置に依存し得る。8×8ブロック、4×2パッチ、および7タップフィルタリングを例に取ると、図11に示すように、8×8ブロック1102は8つの4×2パッチに分割され得る。これらのパッチは、図11ではB 0、B1、B1、B3、B4、B5、B6、及びB7で示される。各パッチについて、図11においてR0~R7で示されている7つの近傍が、現在のパッチのサンプルを予測するために使用され得る。パッチB0では、すべての近傍がすでに再構成されている可能性がある。しかし、他のパッチでは、近傍のいくつかは現在ブロック内にあり、再構成されていない可能性があるため、直近の近傍の予測値は参照として使用される。例えば、図11に示されているパッチB7のすべての近傍は再構成されないため、近傍の予測サンプル、例えばB4、B5、及び/又はB6の一部が代わりに使用される。
【0117】
イントラ予測のいくつかの実装では、1つの色成分が1つ以上の他の色成分を使用して予測され得る。色成分は、YCrCb、RGB、XYZ色空間などの成分のいずれか1つであり得る。例えば、クロマフロムルマ(Chroma from Luma)又はCfLと呼ばれる、ルマ成分(例えばルマ基準サンプル)からのクロマ成分(例えばクロマブロック)の予測が、実装され得る。いくつかの例示的な実装では、クロスカラー予測の多くはルマからクロマまでしか許可されない。例えば、クロマブロック内のクロマサンプルは、一致再構成ルマサンプルの線形関数としてモデル化され得る。CfL予測は次のように実装され得る:
【数1】
【0118】
ここで、LACはルマ成分のAC寄与を示し、αは線形モデルのパラメータを示し、DCはクロマ成分のDC寄与を示す。例えば、AC成分はブロックの各サンプルに対して取得され、DC成分はブロック全体に対して取得される。具体的には、再構成されたルマサンプルがクロマ解像度にサブサンプリングされ得、その後、平均ルマ値(ルマのDC)が各ルマ値から減算されて、ルマのAC寄与を形成し得る。次に、ルマのAC寄与が式(1)の線形モードで使用されて、クロマ成分のAC値を予測する。ルマAC寄与からクロマAC成分を近似又は予測するために、スケーリングパラメータを計算するようデコーダに要求する代わりに、例示的なCfL実装は、元のクロマサンプルに基づいてパラメータαを決定し、ビットストリームでシグナリングし得る。これは、デコーダの複雑さを軽減し、より正確な予測をもたらす。クロマ成分のDC寄与に関しては、いくつかの例示的な実装では、クロマ成分内のイントラDCモードを使用して計算され得る。
【0119】
イントラ予測に戻ると、いくつかの例示的な実装では、コーディングブロック又は予測ブロック内のサンプルの予測は、一連の参照線の1つに基づき得る。言い換えれば、常に最隣接線(例えば、上記の図1に示すような予測ブロックのすぐ上の隣接線又はすぐ左の隣接線)を使用するのではなく、複数の参照線がイントラ予測の選択のオプションとして提供され得る。このようなイントラ予測の実装は、複数参照線選択(Multiple Reference Line Selection)(MRLS)と呼ばれ得る。これらの実装では、エンコーダが、イントラ予測子を生成するために複数の参照線のどの参照線が使用されるかを決定し、シグナリングする。デコーダ側では、参照線インデックスをパースした後、イントラ予測モード(このような方向性、非方向性、及び他のイントラ予測モード)に従って指定された参照線を検索することによって、再構成された参照サンプルを識別することによって、現在のイントラ予測ブロックのイントラ予測を生成できる。実装によっては、参照線インデックスが、コーディングブロックレベルでシグナリングされ得、複数の参照線のうち1つだけが選択され、1つのコーディングブロックのイントラ予測に使用され得る。いくつかの例では、複数の参照線がイントラ予測のために一緒に選択され得る。例えば、複数の参照線を結合、平均化、補間、又はその他の方法で、重みの有無にかかわらず、予測を生成し得る。いくつかの例示的な実装では、MRLSはルマ成分にのみ適用され得、クロマ成分(複数可)には適用されない場合がある。
【0120】
図12では、4つの基準線MRLSの例が描かれている。図12の例に示されているように、イントラコーディングブロック1202は、4つの水平基準線1204、1206、1208、および1210並びにおよび4つの垂直基準線1212、1214、1216、および1218の1つに基づいて予測され得る。これらの基準線のうち、1210と1218はすぐ隣接する基準線である。参照線は、コーディングブロックからの距離に応じてインデックス付けされ得る。例えば、参照線1210と1218はゼロ参照線と呼ばれ得、他の参照線は非ゼロ参照線と呼ばれ得る。具体的には、参照線1208と1216は第1の参照線として参照され得る。参照線1206と1214は第2の参照線として参照され得る。参照線1204と1212は第3の参照線として参照され得る。
【0121】
いくつかの実施形態では、イントラコーディングされた特定のコーディングブロック、コーディングユニット、予測ブロック、又は予測ユニットについて、そのイントラモードはビットストリーム内の1つ以上のシンタックスエレメントによってシグナリングされる必要がある。前述のように、可能なイントラ予測モードの数は膨大である可能性があり、使用可能な62のイントラ予測モードがあり得る:56の方向性イントラ予測モード、5つの非方向性モード、及びルミナンスモードからの1つのクロマ(例えば、クロマ成分についてのみ)。これらのイントラ予測モードをシグナリングするために、第1のシンタックスが、どの公称角度又は非方向性モードが現在ブロックの公称モードと等しいかを示すために、シグナリングされ得る。次に、現在ブロックのモードが方向性モードである場合、どのデルタ角が現在ブロックのそれと等しいかを示すために、第2のシンタックスがシグナリングされ得る。ビデオエンコーディング又はデコーディング中の状況によっては、現在ブロックのイントラ予測モードとその隣接ブロックの間に強い相関関係があり得る。
【0122】
さまざまな実施形態では、この相関関係を利用して、イントラモードコーディングのためのより効率的なシンタックスを設計することができる。いくつかの実装では、現在ブロックについて使用可能なイントラ予測モードは、隣接ブロックのイントラ予測モードに従って、複数のイントラ予測モードセットに分割され得る。現在ブロックのイントラ予測モードを取得するために、まず、現在ブロックについてのイントラ予測モードのセットインデックスを示すために、セットインデックスがシグナリングされ得る。次に、モードセット内のイントラ予測モードのインデックスを示すために、モードインデックスがシグナルされ得る。
【0123】
ここで、本開示の様々な実施形態において、「XYZがシグナルされる」ということは、XYZがエンコーディングプロセス中にコーディングされたビットストリームにエンコーディングされることを指し得る;及び/又は、コーディングされたビットストリームが1つのデバイスから別のデバイスに送信された後、 「XYZがシグナルされる」ということは、XYZがデコーディングプロセス中にコーディングされたビットストリームからデコーディング/抽出されることを指し得る。
【0124】
例えば、上記の実装のいくつかでは、使用可能なイントラ予測モードの数は、62の異なるモードを含む場合があり、例えば、56の方向性イントラ予測モード(例えば、各公称方向に7つの微細な角度を持つ8の公称方向)、5つの非方向性モード、及び1つのルマからのクロマフロムルマモード(クロマ成分についてのみ)を含む。特定のコーディングブロック、コーディングユニット、予測ブロック、又は予測のコーディングプロセス中にイントラモードが選択されると、選択されたイントラモードに対応するシグナリングがビットストリームに含まれる必要がある。シグナリングシンタックス(複数可)は、これらの62のモードをすべて何らかの方法で区別できなければならない。例えば、これらの62のモードは、それぞれが1つのモードに対応する62のインデックスに対して単一のシンタックスを使用してシグナリングされ得る。他のいくつかの実装例では、1つのシンタックスは、どの公称角度又は無方向性モードが現在ブロックで公称モードとして使用されるかを示すためにシグナリングされ得、次に、現在ブロックの公称モードが方向性モードである場合、別のシンタックスが、どのデルタ角が現在ブロックに対して選択されるかを示すために追加でシグナリングされ得る。
【0125】
イントラコーディングに関連するさまざまなシンタックスは、通常、ビットストリームの大部分を占め、イントラモードの選択は、例えばさまざまなコーディングレベルで、シグナル的に頻繁に行われる必要があるため、イントラモードのシグナリングに使用されるビット数の削減は、ビデオコーディング効率を向上させる上で重要になる。実際には、さまざまなイントラ予測モードの使用は、特定の統計パターンに従う可能性があり、そのような使用パターンは、シグナリング効率を高めることができるように、イントラモードのインデックス作成とシグナリングシンタックスを設計するために利用され得る。さらに、ブロックからブロックへのイントラモード選択の間には、平均していくつかの相関が存在し得る。このような相関は、統計的にオフラインで取得され得、イントラモードの選択のシグナリングのためのシンタックス(複数可)の設計で考慮され得る。目標は、コーディングされたビットストリーム内のシグナリングシンタックスエレメントのビット数を平均的に減らすことである。例えば、いくつかの一般的な統計は、現在ブロックの最適なイントラ予測モードとその隣接ブロックの間に強い相関がある可能性があることを示している場合がある。このような相関は、イントラモードコーディングのシンタックス(複数可)を設計するときに利用され得る。
【0126】
いくつかの実施形態では、ビデオのエンコーディング/デコーディングパフォーマンスを向上させるために、イントラ予測サンプルを生成した後に、イントラ予測のためのオフセットベースの改良(ORIP)が使用され得る。ORIPを適用されるとき、オフセット値を追加することによって予測サンプルが改良される。
【0127】
図13に示すように、参照サンプルに基づいてイントラ予測(1330)が実行される。参照サンプルは、1つ以上の左参照線(1312)及び/又は1つ以上の上参照線(1310)からのサンプルを含み得る。イントラ予測のためのオフセットベースの改良(ORIP)(1350)は、隣接する参照サンプルを使用してオフセット値を生成し得る。実装によっては、ORIPのための隣接する参照サンプルは、イントラ予測のための参照サンプルと同じセットであり得る。他のいくつかの実装では、ORIPのための隣接する参照サンプルは、イントラ予測の参照サンプルと異なるセットであり得る。
【0128】
図14A及び図14Bを参照するいくつかの実装では、ORIPは4×4サブブロックレベルで実行され得る。各4×4サブブロック(1471、1472、1473、及び/又は1474)について、オフセットはその隣接するサンプルから生成される。例えば、第1のサブブロック(1471)については、オフセットはその上の隣接するサンプル(1420のP1、P2、P3、及びP4)、左の隣接するサンプル(1410のP5、P6、P7、及びP8)、及び/又は左上の隣接するサンプル(P0)(1401)から生成される。いくつかの実装では、上の隣接するサンプルは、上の隣接するサンプル(1420のP1、P2、P3、及びP4)及び左上の隣接するサンプル(P0)(1401)の両方を含み得る。他のいくつかの実装では、左の隣接するサンプルは、左の隣接するサンプル(1410のP5、P6、P7、及びP8)及び左上の隣接するサンプル(P0)(1401)の両方を含み得る。
【0129】
第1のサブブロック(1471)は4×4ピクセルを含み、4×4ピクセルの各ピクセルは、細分化前のN番目の隣接予測サンプルであるpredNに対応する。例えば、pred0,pred1,pred2,... pred16。
【0130】
さまざまな実施形態では、所与のサブブロックの各ピクセルのオフセット値は、式に従って隣接するサンプルに基づいて計算され得る。式は、事前に定義された式、又はコーディングされたビットストリームにおいてコーディングされたパラメータによって示される式であり得る。
【0131】
図14Bを参照するいくつかの実装では、所与のサブブロックのk番目の位置のオフセット値(offset(k))は次のように生成され得る:
【数2】

【数3】
【0132】
Wknはオフセット計算のための事前定義された重みである。Pnは隣接するサンプル(例えば、P0,P1,P2,...,P8)の値である。predkは、イントラ予測又は他の予測(例えば、インター予測)を適用した後のピクセルの予測値である。pred_refinedkは、ORIPの適用後のピクセルの洗練された値である。clip3()は、clip3の数学関数である。nは0以上8以下の整数である。kは0以上15以下の整数である。
【0133】
いくつかの実装では、Wknは、事前に定義されている場合があり、表1に従って取得される場合がある。
【表1】

【0134】
他のいくつかの実装では、サブブロックベースのORIPは、事前に定義されたイントラ予測モードのセットにのみ適用され得る及び/又はイントラ予測モードに応じてルマ及びクロマについて異なり得る。表2は、さまざまなイントラ予測モードとルマチャネル又はクロマチャネルのいずれかによるサブブロックベースのORIPの1つの実装を示す。ルマチャネルを例に取ると:予測モードがDC又はSMOOTHのいずれかである場合、ORIPは常にON(オン)であり、追加のシグナリングは必要とされない;予測モードがHOR/VERであり、angle_deltaが0に等しい場合、ブロックレベルのシグナリングが、ORIPの有効/無効にするために必要とされる;及び/又はイントラ予測モードが他のモードである場合、ORIPは常にOFF(オフ)であり、追加のシグナリングは必要とされない。
【表2】
【0135】
第2の4×4サブブロック(1473)に戻ると、第1の4×4サブブロック(1471)との相対位置のため、第2のサブブロックの上位隣接サンプルは第1のサブブロックのいくつかのピクセルであり得る。第2のサブブロックのP1は第1のブロックのpred12、第2のサブブロックのP 2は第1のサブブロックのpred13、第2のサブブロックのP3は第1のサブブロックのpred14、第2のサブブロックのP4は第1のサブブロックのpred15であり得る。第2のサブブロックの左上の隣接サンプル(P0)は、第1のサブブロックの左の隣接サンプル(P8)であり得る。
【0136】
さまざまな実施形態では、コーディングされている現在ブロックについての利用可能なイントラ予測モード又はモードオプションは、複数のイントラ予測モードセットに分割され得る。各セットは、セットインデックスを割り当てられ得る。セットのセットインデックスは、複数のイントラ予測モードセットの中のあるセットのインデックスを示す整数である。いくつかの実装では、セットインデックスは0以上の整数であり得る;又は他のいくつかの実装では、セットインデックスは1以上の整数であり得る。各セットは、いくつかのイントラモード予測モードを含み得る。イントラモード予測モードのモードインデックスは、いくつかのイントラモード予測モードのうちのイントラモード予測モードのインデックスを示す整数である。いくつかの実装では、モードインデックスは0以上の整数であり得る;又は他のいくつかの実装では、モードインデックスは1以上の整数であり得る。モードセットの各々において、利用可能なイントラ予測モードが分割され順序付けられ、イントラ予測モードが順序付けられる方法は、ブロック間のイントラ予測モード間の相関に基づいて、その隣接ブロックによって使用されるイントラ予測モードに従って、少なくとも部分的に決定され得る。隣接ブロックによって使用されるイントラ予測モードは、「参照イントラ予測モード」又は「参照モード」と呼ばれ得る。特定のユニットについてのイントラ予測モードが決定され、選択され得る。イントラ予測モードの選択はシグナリングされ得る。まず、セットインデックスが、選択されたイントラ予測モードを含むイントラ予測モードセットのセットインデックスを示すためにシグナリングされ得る。次に、モードインデックス(代替的には、セット内のモード位置インデックスと呼ばれる)が、モードセット内の選択されたイントラ予測モードのインデックスを示すためにシグナリングされ得る。
【0137】
上記のイントラ予測モードの分割と順序付けの一般的な実装と、以下の具体例は、統計的効果と隣接相関を利用して、これらのモードを動的にインデックス付けし、コーディングされたビデオビットストリーム内でそれらの選択をシグナリングするためのシンタックスの設計を最適化して、コーディング効率を向上させることができるようにする。例えば、これらの実装は、シグナリングのためのシンタックスの数を減らし、エントロピーコーディングのためのより効率的なコンテキスト生成を支援し得る。
【0138】
本開示に記載された様々な実施形態及び/又は実装は、別々に使用することも、任意の順序で組み合わせることもできる。さらに、これらの実施形態及び/又は実装の一部、全て、又は、部分的若しくは全ての組み合わせは、エンコーダ及び/又はデコーダの一部として実施することができ、ハードウェア及び/又はソフトウェアで実施することができる。例えば、専用の処理回路(例えば、1つ以上の集積回路)にハードコードされる場合がある。別の例では、非一時的コンピュータ可読媒体に記憶されているプログラムを実行する1つ以上のプロセッサによって実装される場合がある。
【0139】
ORIPが適用される場合、イントラモードコーディングに関連するいくつかの課題/問題がある場合がある。例えば、ORIP設計では、公称モードがHOR/VERの場合、ORIPの使用を示すために1つのデルタ角が追加される場合がある;イントラモードコーディング設計では、公称モードとデルタ角のシグナリングが変更される場合があり、その結果、ORIPとイントラモードコーディングを一緒にマージするのが簡単ではないという問題/課題が少なくとも1つ発生する。
【0140】
本開示は、ビデオコーディング及び/又はデコーディングにおけるイントラ予測モードコーディングのさまざまな実施形態について説明し、上記で説明した課題/問題の少なくとも1つに対処し、ORIPと改善されたイントラモードコーディングの効率的な組み合わせを実現する。
【0141】
さまざまな実施形態では、図15、ビデオデコーディングにおけるイントラ予測モードコーディングの方法1500を参照すると、方法1500は、次のステップの一部又はすべてを含み得る:ステップ1510、命令を記憶するメモリと、メモリと通信するプロセッサを有するデバイスによって、ブロックのコーディングされたビデオビットストリームを受信するステップ;ステップ1520、デバイスによって、リスト内の各イントラモードのモード情報に基づいて、ブロックの複数のイントラモードセットにイントラモードのリストを分割するステップであって、イントラモードのリストは、ブロックの少なくとも1つの隣接ブロックのイントラ予測モードに対応する、ステップ;ステップ1530、デバイスによって、コーディングされたビデオビットストリームから、複数のイントラモードセットからイントラモードセットを示すセットインデックスを抽出するステップ;ステップ1540、デバイスによって、コーディングされたビデオビットストリームから、イントラモードセットからイントラ予測モードを示すモードインデックスを抽出するステップ;及び/又は、ステップ1550、デバイスによって、セットインデックスとモードインデックスに基づいて、ブロックのイントラ予測モードを決定するステップ。
【0142】
いくつかの実装では、イントラモードのモード情報は、次のうちの少なくとも1つを含み得る:方向性モード、方向性モードの公称角度、方向性モードのオフセット角度、非方向性モード、スムーズモード(例えば、smooth、smooth_v、smooth_h)、DCモード、PAETHモード、及び/又は所与の予測方向に従って予測サンプルを生成しているモード。他のいくつかの実装では、緩やかな分類において、方向性モードは、広く次のものを含み得る:スムーズ(smooth、smooth_v、smooth_h)でない任意のモード、DC、又はPAETH;及び所与の予測方向に従って予測サンプルを生成している任意のモード。他のいくつかの実装では、非方向性モードは、スムーズモード(例:smooth、smooth_v、smooth_h)、DCモード、PAETHモード、及びルマフォークロマ(luma-for-chroma)モードを含み得る。他のいくつかの実装では、緩やかな分類では、非方向性モードは広く、方向性モードではない任意のモードを含み得る。
【0143】
本開示の様々な実施形態では、ブロックのサイズ(例えば、限定されるものではないが、コーディングブロック、予測ブロック、又は変換ブロック)は、ブロックの幅又は高さを指し得る。ブロックの幅又は高さは、ピクセル単位の整数であり得る。本開示の様々な実施形態では、ブロックのサイズは、ブロックの面積サイズを指し得る。ブロックの面積サイズは、ピクセル単位でブロックの幅にブロックの高さを乗じて計算された整数であり得る。本開示のいくつかの様々な実施形態では、ブロックのサイズは、ブロックの幅又は高さの最大値、ブロックの幅又は高さの最小値、又はブロックの縦横比を指し得る。ブロックの縦横比は、幅をブロックの高さで割って計算され得る、又は、高さをブロックの幅で割って計算され得る。
【0144】
いくつかの実装では、現在ブロックで利用可能なイントラ予測モードは、隣接ブロックのイントラ予測モードに従って、複数のイントラ予測モードセットに分割/分けられ得る。現在ブロックのイントラ予測モードを取得するために、まず、セットインデックスが、現在ブロックのイントラ予測モードのセットインデックスを示すためにシグナルされ得る;次に、モードインデックスが、モードセット内のイントラ予測モードのインデックスを示すためにシグナルされ得る。いくつかの実装では、すべての非方向性モードが第1モードセットに含まれ得る。セットのセットインデックスは、複数のセットの中のあるセットのインデックスを示す整数である;及び/又はモードのモードインデックスは、モードのセットの中のあるモードのインデックスを示す整数である。いくつかの実装では、セットインデックス及び/又はモードインデックスは0以上の整数であり得る。他のいくつかの実装では、セットインデックスやモードインデックスが1以上の整数であり得る。
【0145】
ここで、本開示の様々な実施例では、「第1の」モードセットは、「1つの」モードセットを指すだけでなく、最小のセットインデックスを持つ「第1の」モードセットを指し、「第2の」モードセットは、「別の」モードセットを指すだけでなく、2番目に小さいセットインデックスを持つ「第2の」モードセットを指す、というように続く。例えば、イントラ予測モードセットの数は、Mで示され、セットインデックスは、例えば、1からM、又は0からM-1までの範囲であり得る。セットインデックスが1からMの範囲である場合、「第1の」 モードセットは、セットインデックスが1である「第1の」モードセットであり、「第2の」モードセットは、セットインデックスが2である「第2の」モードセットである、というように続く。セットインデックスが0からM-1の範囲である場合、「第1の」モードセットは、セットインデックスが0である「第1の」モードセットであり、「第2の」モードセットは、セットインデックスが1である「第2の」モードセットである、というように続く。
【0146】
ここで、本開示の様々な実施形態では、「XYZがシグナリングされる」ということは、XYZがエンコーディングプロセス中にコーディングされたビットストリームにエンコーディングされることを指し得る;及び/又は、コーディングされたビットストリームがあるデバイスから別のデバイスに送信された後、 「XYZがシグナリングされる」ということは、XYZがデコーディングプロセス中にコーディングされたビットストリームからデコーディング/抽出されることを指し得る。
【0147】
ステップ1510を参照すると、デバイスは図5の電子デバイス(530)又は図8のビデオデコーダ(810)であり得る。いくつかの実装では、デバイスは図6のエンコーダ(620)のデコーダ(633)であり得る。他の実装では、デバイスは、図5の電子デバイス(530)の一部、図8のビデオデコーダ(810)の一部、又は図6のエンコーダ(620)のデコーダ(633)の一部であり得る。コーディングされたビデオビットストリームは、図8のコーディングされたビデオシーケンス、又は、図6又は図7の中間のコーディングされたデータであり得る。ブロックは、コーディングブロック又はコーディングされたブロックを参照し得る。
【0148】
ステップ1520を参照すると、デバイスは、リスト内の各イントラモードのモード情報に基づいて、ブロックの複数のイントラモードセットにイントラモードのリストを分割し得る。いくつかの実装では、ステップ1520は、デバイスによって、1つ以上の要因、例えば、限定されるものではないが、各イントラモードのモードタイプ、方向性イントラモードの方向角、及び/又はブロックの隣接ブロックのイントラモード、に基づいて、複数のイントラモードセットを決定することを含み得る。イントラモードのモードタイプは、それが方向性モードであるか非方向性モードであるかどうか、及び/又はそれがORIPモードであるか非ORIPモードであるかを含み得る。他のいくつかの実装では、リストはブロックの隣接ブロックの少なくとも1つのイントラ予測モードに対応し得る;及び/又はリストは、ブロックのイントラ予測モードを導出するために使用され得る。
【0149】
様々な実施形態では、イントラモードのリストは、事前に定義された数のイントラ予測モードを含み得る。例えば、事前に定義された数は61である。
【0150】
いくつかの実装では、イントラモードのリストは、リストの先頭にある第1のサブリストを含み;第1のサブリストは、すべての非方向性イントラ予測モードを含む。例えば、イントラモードのリストが複数のイントラモードセットに分割される場合、非方向性イントラ予測モードがリストの先頭にあるため、非方向性イントラ予測モードが第1のイントラモードセットに分割され得る。
【0151】
他のいくつかの実装では、方向性イントラ予測モードを使用する隣接ブロックに応答して:イントラモードのリストは、リスト内の第1のサブリストの隣にある第2のサブリストを含み;第2のサブリストは、隣接ブロックの方向性イントラ予測モードに基づく複数の導出されたイントラ予測モードを含む。例えば、イントラモードのリストが複数のイントラモードセットに分割される場合、隣接ブロックの方向性イントラ予測モードに基づく複数の導出されたイントラ予測モードは、複数の導出されたイントラ予測モードがリストの先頭から非方向性イントラ予測モードのすぐ横にあるため、第1のイントラモードセット又は第2のイントラモードセットのいずれかに分割される可能性が高い。いくつかの実装では、現在ブロックの隣接ブロックは、現在ブロックの上(上の)ブロック、現在ブロックの左ブロック、又は現在ブロックの上(上の)ブロック及び左ブロックの両方を含み得る。
【0152】
他のいくつかの実装では、複数の導出されたイントラ予測モードは、隣接ブロックの方向性イントラ予測モードに[0、-1、+1、-2、+2、-3、+3、-4、+4]のオフセットを追加することによって、9つの方向性イントラ予測モードを有する。例えば、隣接ブロックの方向性イントラ予測モードが特定の方向角(x度)を持ち、方向角のステップサイズが3度である場合、複数の導出されたイントラ予測モードは、x、x±3、x±6、x±9、及びx±12度の方向角を持つ9つの方向性イントラ予測モードを含み得る。
【0153】
他のいくつかの実装では、イントラモードのリストは、リスト内の第2のサブリストの隣にある第3のサブリストを含み;第3のサブリストは、少なくとも1つのデフォルトのイントラ予測モードを有する。他のいくつかの実装では、デフォルトのイントラ予測モードは、0デルタ角を持つ少なくとも1つの公称方向性イントラ予測モードを含む。例えば、デフォルトのイントラ予測モードは、隣接ブロックの方向性イントラ予測モードに基づく上記の導出されたイントラ予測モードにはまだ含まれていない、0デルタ角を持つ他のすべての公称方向性イントラ予測モードを含み得る。
【0154】
他のいくつかの実装では、非方向性イントラ予測モードを使用する隣接ブロックに応答して:イントラモードのリストは、リスト内の第1のサブリストの隣にある第2のサブリストを含み;第2のサブリストは、0デルタ角を持つ複数の公称方向性イントラ予測モードを含む。例えば、隣接ブロックの両方が非方向性モードである場合、0デルタ角を持つすべての方向性イントラ予測モードが第2のサブリストに追加される。他のいくつかの実装では、非方向性イントラ予測モードを使用するすべての隣接ブロックに応答して:イントラモードのリストは、リスト内の第1のサブリストの隣にある第2のサブリストを含み;第2のサブリストは、0デルタ角を持つ複数の公称方向性イントラ予測モードを含む。すべての隣接ブロックは、上隣接ブロック(すなわち、現在ブロックの上に位置する隣接ブロック)と左隣接ブロック(すなわち、現在ブロックの左に位置する隣接ブロック)を含み得る;すべての隣接ブロックは、右隣接ブロック(すなわち、現在ブロックの右に位置する隣接ブロック)又は下隣接ブロック(つまり、現在ブロックの下に位置する隣接ブロック)を含まない場合がある。
【0155】
例えば、まず、すべての非方向性イントラ予測モードはイントラモードリストに追加され得る。次に、オフセットが、隣接ブロックの方向性イントラ予測モードに追加されてイントラ予測モードを導出し得、導出されたイントラ予測モードはイントラモードリストに追加され得る。最後に、すべての導出されたイントラ予測モードを追加した後、イントラ予測モードリストがまだいっぱいでない場合は、デフォルトのモードがイントラモードリストの残りの位置を埋めるために使用され得る。
【0156】
別の例では、現在ブロックに利用可能なイントラ予測モードは、5つの非方向性モードと56の方向性モードを含む61である。現在ブロックの隣接ブロックの1つだけが方向性イントラ予測モードでコーディングされている場合、まず、5つの非方向性モードがモードリストに追加される;次に、9つの方向性イントラ予測モードが、隣接ブロックの方向性モードに[0、-1、+1、-2、+2、-3、+3、-4、+4]のオフセットを追加することによって導出される。その後、14のモードのみがモードリストに追加され、イントラモードリストの47(61-14=47)の位置は埋まらない。その後、デフォルトのモードがモードリストに追加される。いくつかの実装では、イントラモードリストがいっぱいでない場合、デルタ角が0に等しい公称角が最初にイントラモードリストを埋めるためにデフォルトのモードとして使用される。
【0157】
様々な実施形態では、複数のイントラモードセットは、第1のイントラモードセットを含み;第1のイントラモードセットは、すべての非方向性イントラ予測モードを含む。例えば、非方向性モードは常に第1のモードセットに含まれる。非方向性モードは、スムーズモード(例:smooth、smooth_v、smooth_h)、DCモード、PAETHモード、ルマフォークロマモードを含み得る。他のいくつかの実装では、緩やかな分類において、非方向性モードは、広く、方向性モードではない任意のモードを含み得る。
【0158】
様々な実施形態では、複数のイントラモードセットは、第1のイントラモードセットを含み;第1のイントラモードセットは、全ての非方向性イントラ予測モードからなる。例えば、第1のモードセットは、非方向性イントラ予測モードのみを含む。
【0159】
様々な実施形態では、複数のイントラモードセットは、第1のイントラモードセットを含み;第1のイントラモードセットは、すべての非方向性イントラ予測モードと、1つ以上のイントラ予測のためのオフセットベースの改良(ORIP)モードを含む。いくつかの実装では、1つ以上のORIPモードは、垂直ORIPモードと水平ORIPモードを含む。例えば、2つの追加モード、VER_ORIPとHOR_ORIPが、デルタ角が0に等しいVERとHORモードでORIPを使用することを示すために指定される。これらの2つのモードは、非方向性モードとしてマークされ、第1のモードセットに分割され得る。
【0160】
様々な実施形態では、1つ以上のORIPモードは全てのORIPモードを含む。例えば、ORIPを適用する全てのイントラ予測モードは非方向性モードとみなされる。
【0161】
様々な実施形態では、複数のイントラモードセットは、N個のイントラモードセットとM個のイントラモードセットを含み:N個のイントラモードセットは、小さい方から大きい方へのセットインデックスの順で、M個のイントラモードセットの前にあり、Nは正の整数であり、Mは正の整数であり;M個のイントラモードセットのそれぞれのイントラ予測モードの数は、2の累乗に等しい。いくつかの実装では、Nは、例えば1又は2であるが、これに限定されない。例えば、Nは1であり、Mは4である;複数のイントラモードセットは、小さい方から大きい方へのイントラモードセットインデックスの順で、第1のイントラモードセット、第2のイントラモードセット、第3のイントラモードセット、第4のイントラモードセット、及び第5のイントラモードセットを含み;第1のイントラモードセットのイントラ予測モードの数は、次のうちの1つ:5又は7である;第2のイントラモードセットのイントラ予測モードの数は8である;第3のイントラモードセットのイントラ予測モードの数は16である;第4のイントラモードセットのイントラ予測モードの数は16である;及び第5のイントラモードセットのイントラ予測モードの数は16である。
【0162】
別の例として、第1のN個のイントラモードセットを除き、各モードセットのモードの数は2の累乗に等しく;Nは1又は2などの正の整数である。Nが1の場合、第1のモードセットのモードの数だけが2の累乗と等しくないことを意味し得る。
【0163】
1つの例では、利用可能なイントラ予測モードは5つのモードセットに分割され;各モードセットのモード数は(5、8、16、16、16)である。5である第1のモードセットの数は、非方向性モードの数に等しい。
【0164】
別の例では、利用可能なイントラ予測モードは5つのモードセットに分割される。各モードセットのモード数は(7、8、16、16、16)である。7である第1のモードセットの数は、非方向性モードの数にVER_ORIPとHOR_ORIPを加えたものに等しい。
【0165】
本開示における実施形態は、個別に使用されてもよく、或いは、任意の順序で組み合わされてもよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマブロック又はクロマブロックに適用することができ;クロマブロックでは、実施形態は、複数の色成分に別々に適用することも、複数の色成分に一緒に適用することもできる。
【0166】
上述の技術は、コンピュータ読み取り可能な命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ可読媒体に物理的に記憶されることができる。例えば、図16は、開示された主題の特定の実施形態を実施するのに好適なコンピュータシステム(2600)を示す。
【0167】
非限定的な例として、アーキテクチャ(2600)、具体的にはコア(2640)を持つコンピュータシステムは、プロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行した結果として機能性を提供することができる。そのようなコンピュータ可読媒体は、上で紹介したようなユーザがアクセス可能な大容量記憶装置に関連する媒体であるとともに、コア内部大容量記憶装置(2647)又はROM(2645)など非一時的な性質を持つコア(2640)の特定の記憶装置であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2640)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(2640)、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2646)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含めて、ここで説明する特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代替として、コンピュータシステムは、論理がハードワイヤードされている、又は回路(例えば:アクセラレータ(2644))に組み込まれている結果として機能を提供することができ、これは、ソフトウェアの代わりに又はそれと一緒に動作して、本明細書で説明する特定のプロセス又は特定のプロセスの特定の部分を実行することができる。ソフトウェアへの参照は、適切な場合には、論理を含むことができ、その逆も可能である。コンピュータが可読媒体への参照は、適切な場合には、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具体化する回路、又はその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
【0168】
コンピュータソフトウェアは、任意の好適な機械コード又はコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、又は同様の機構の対象とされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に、又はインタープリット、マイクロコード実行等を通じて実行可能な命令を含むコードを作成することができる。
【0169】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はそのコンポーネント上で実行されることができる。
【0170】
コンピュータシステム(2600)について図16に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータシステム(2600)の例示的実施形態において示されているコンポーネントの任意の1つ又は組み合わせに関する何らかの依存性又は要件を有するものとして解釈されるべきではない。
【0171】
コンピュータシステム(2600)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャー)、嗅覚入力(図示せず)を通じた一又は複数の人間ユーザによる入力に応答することができる。また、ヒューマンインターフェースデバイスは、音声(例えば、発話、音楽、周囲の音)、画像(例えば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しない特定のメディアをキャプチャするために使用できる。
【0172】
入力ヒューマンインターフェースデバイスは、キーボード(2601)、マウス(2602)、トラックパッド(2603)、タッチスクリーン(2610)、データグローブ(図示せず)、ジョイスティック(2605)、マイクロフォン(2606)、スキャナ(2607)、カメラ(2608)の1つ以上(それぞれの1つしか図示していない)を含んでいてもよい。
【0173】
コンピュータシステム(2600)はまた、特定のヒューマンインターフェース出力デバイスを含んでいてもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び臭い/味を通じて、一又は複数の人間ユーザの感覚を刺激するものであってもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2610)、データグローブ(図示せず)、又はジョイスティック(2605)による触覚フィードバック;ただし、入力デバイスのはたらきをしない触覚フィードバックデバイスもあり得る)、音声出力デバイス(例えば、スピーカー(2609)、ヘッドフォン(図示せず))、視覚出力デバイス(例えば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2610);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力又は立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイ及び煙タンク(図示せず))、及びプリンタ(図示せず)を含んでいてもよい。
【0174】
コンピュータシステム(2600)はまた、人間がアクセス可能な記憶デバイス及び関連する媒体、例えば、CD/DVD又は類似の媒体(2621)とともにCD/DVD ROM/RW(2620)を含む光学式媒体、サムドライブ(2622)、取り外し可能なハードドライブ又はソリッドステートドライブ(2623)、テープ及びフロッピー(登録商標)ディスクといったレガシー磁気媒体(図示せず)、セキュリティドングルのような特化したROM/ASIC/PLDベースのデバイス(図示せず)等を含むことができる。
【0175】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0176】
コンピュータシステム(2600)はまた、1つ以上の通信ネットワーク(2655)へのインターフェース(2654)を含むことができる。ネットワークは、例えば、無線、有線、光学式であり得る。ネットワークは、さらに、ローカル、広域、都市圏、車載及び工業用、リアルタイム、遅延耐性等であり得る。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線又は無線の広域デジタルネットワーク、CANbusを含む車載及び工業用等を含む。特定のネットワークは、普通、特定の汎用データポート又は周辺バス(2649)(例えば、コンピュータシステム(2600)のUSBポート等)に取り付けられる外部ネットワークインターフェースアダプターを必要とする。他は、普通、後述するようなシステムバスへの取り付けによって、コンピュータシステム(2600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2600)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(例えば、放送テレビ)、一方向性送信専用(例えば、特定のCANbusデバイスへのCANbus)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性であってもよい。上述のようなそれらのネットワーク及びネットワークインターフェースのそれぞれで、特定のプロトコル及びプロトコルスタックが使用できる。
【0177】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2600)のコア(2640)に取り付けることができる。
【0178】
コア(2640)は、1つ以上の中央処理装置(CPU)(2641)、グラフィックス処理装置(GPU)(2642)、フィールドプログラマブルゲートアレイ(FPGA)(2643)の形の特化したプログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(2644)、グラフィックアダプター(2650)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(2645)、ランダムアクセスメモリ(2646)、内部のユーザアクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)等の内部大容量記憶デバイス(2647)とともに、システムバス(2648)を通じて接続され得る。いくつかのコンピュータシステムでは、追加のCPU、GPU等による拡張を可能にするために、システムバス(2648)は、1つ以上の物理プラグの形でアクセス可能であってもよい。周辺デバイスは、コアのシステムバス(2648)に直接取り付けられることも、周辺バス(2649)を通じて取り付けられることもできる。一例では、グラフィックアダプター(2650)にスクリーン(2610)が接続されることができる。周辺バスのためのアーキテクチャは、PCI、USB等を含む。
【0179】
CPU(2641)、GPU(2642)、FPGA(2643)、及びアクセラレータ(2644)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を、実行することができる。そのコンピュータコードは、ROM(2645)又はRAM(2646)に記憶できる。一時的データは、RAM(2646)にも記憶されることができ、一方、持続的データは、例えば、内部大容量記憶デバイス(2647)に記憶されることができる。1つ以上のCPU(2641)、GPU(2642)、大容量記憶デバイス(2647)、ROM(2645)、RAM(2646)等と密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶及び取り出しを可能にすることができる。
【0180】
コンピュータ可読媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又は、コンピュータソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0181】
特定の発明が例示的な実施形態を参照して説明されているが、この説明は限定することを意図していない。本発明の例示的な実施形態及び追加的な実施形態の様々な修正は、この説明から当業者に明らかであろう。当業者は、本発明の精神及び範囲から逸脱することなく、これら及び他の様々な修正を、ここに図示し説明した例示的な実施形態に対して行うことができることを容易に認識するであろう。したがって、添付の特許請求の範囲は、そのような修正及び代替実施形態をカバーするものと考えられる。図の中の特定の比率は誇張されることがあり、一方、他の比率は最小化されることがある。したがって、開示及び図面は限定的ではなく例示的なものとみなされるべきである。
【0182】
次の付記を記す。
(付記1) ビデオデコーディングにおけるイントラ予測モードコーディングのための方法であって、前記方法は:
命令を記憶するメモリ及び前記メモリと通信するプロセッサを含むデバイスによって、ブロックのコーディングされたビデオビットストリームを受信すること;
前記デバイスによって、イントラモードのリストを前記ブロックの複数のイントラモードセットに、前記リスト内の各イントラモードのモード情報に基づいて分割することであって、前記イントラモードのリストは前記ブロックの少なくとも1つの隣接ブロックのイントラ予測モードに対応する、分割すること;
前記コーディングされたビデオビットストリームから、前記デバイスによって、前記複数のイントラモードセットからイントラモードセットを示すセットインデックスを抽出すること;
前記コーディングされたビデオビットストリームから、前記デバイスによって、前記イントラモードセットからイントラ予測モードを示すモードインデックスを抽出すること;及び
前記デバイスによって、前記セットインデックス及び前記モードインデックスに基づいて、前記ブロックの前記イントラ予測モードを決定すること;を含む、
方法。
(付記2) 前記イントラモードのリストは、事前に定義された数のイントラ予測モードを含む、
付記1に記載の方法。
(付記3) 前記事前に定義された数は61である、
付記2に記載の方法。
(付記4) 前記イントラモードのリストは、前記リストの先頭にある第1のサブリストを含み;
前記第1のサブリストは、すべての非方向性イントラ予測モードを含む、
付記1に記載の方法。
(付記5) 方向性イントラ予測モードを使用する前記ブロックの隣接ブロックに応答して:
前記イントラモードのリストは、前記リスト内の前記第1のサブリストの隣にある第2のサブリストを含み;
前記第2のサブリストは、前記隣接ブロックの前記方向性イントラ予測モードに基づく複数の導出されたイントラ予測モードを含む、
付記4に記載の方法。
(付記6) 前記複数の導出されたイントラ予測モードは、前記隣接ブロックの前記方向性イントラ予測モードに[0,-1,+1,-2,+2,-3,+3,-4,+4]のオフセットを加えることによる9つの方向性イントラ予測モードを含む、
付記5に記載の方法。
(付記7) 前記イントラモードのリストは、前記リスト内の前記第2のサブリストの隣にある第3のサブリストを含み;
前記第3のサブリストは、少なくとも1つのデフォルトのイントラ予測モードを含む、
付記5に記載の方法。
(付記8) 前記少なくとも1つのデフォルトのイントラ予測モードは、0デルタ角を持つ少なくとも1つの公称方向性イントラ予測モードを含む、
付記7に記載の方法。
(付記9) 非方向性イントラ予測モードを使用する前記ブロックの隣接ブロックに応答して:
前記イントラモードのリストは、前記リスト内の前記第1のサブリストの隣にある第2のサブリストを含み;
前記第2のサブリストは、0デルタ角を持つ複数の公称方向性イントラ予測モードを含む、
付記4に記載の方法。
(付記10) 前記複数のイントラモードセットは、第1のイントラモードセットを含み;
前記第1のイントラモードセットは、すべての非方向性イントラ予測モードを含む、
付記1に記載の方法。
(付記11) 前記複数のイントラモードセットは、第1のイントラモードセットを含み;
前記第1のイントラモードセットは、すべての非方向性イントラ予測モードからなる、
付記1に記載の方法。
(付記12) 前記複数のイントラモードセットは、第1のイントラモードセットを含み;
前記第1のイントラモードセットは、すべての非方向性イントラ予測モード及び1つ以上のイントラ予測のためのオフセットベースの改良(ORIP)モードを含む、
付記1に記載の方法。
(付記13) 前記1つ以上のORIPモードは、垂直ORIPモード及び水平ORIPモードを含む、
付記12に記載の方法。
(付記14) 前記1つ以上のORIPモードは全てのORIPモードを含む、
付記12に記載の方法。
(付記15) 前記複数のイントラモードセットは、N個のイントラモードセットとM個のイントラモードセットを含み:
前記N個のイントラモードセットは、小さい方から大きい方へのセットインデックスの順で、前記M個のイントラモードセットの前にあり、
Nは正の整数であり、
Mは正の整数であり;
前記M個のイントラモードセットのそれぞれのイントラ予測モードの数は、2の累乗に等しい、
付記1に記載の方法。
(付記16) Nは1又は2である、
付記15に記載の方法。
(付記17) Nは1であり、Mは4であり;
前記複数のイントラモードセットは、小さい方から大きい方へのイントラモードセットインデックスの順で、第1のイントラモードセット、第2のイントラモードセット、第3のイントラモードセット、第4のイントラモードセット、及び第5のイントラモードセットを含み;
前記第1のイントラモードセットのイントラ予測モードの数は、次のうちの1つ:5又は7であり;
前記第2のイントラモードセットのイントラ予測モードの数は8であり;
前記第3のイントラモードセットのイントラ予測モードの数は16であり;
前記第4のイントラモードセットのイントラ予測モードの数は16であり;
前記第5のイントラモードセットのイントラ予測モードの数は16である、
付記15に記載の方法。
(付記18) ビデオデコーディングにおけるイントラ予測モードコーディングのための装置であって、前記装置は:
命令を記憶するメモリ;及び
前記メモリと通信するプロセッサを含み、前記プロセッサが前記命令を実行するとき、前記プロセッサは、付記1乃至17のいずれかの方法を前記装置に実行させるように構成される、
装置。
(付記19) プロセッサによって実行されるとき、前記プロセッサに、付記1乃至17のいずれかの方法を実行させる、コンピュータプログラム。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図15
図16
【外国語明細書】