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

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

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

特許7648761イントラモード符号化のためのハードウェアフレンドリーな設計
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-10
(45)【発行日】2025-03-18
(54)【発明の名称】イントラモード符号化のためのハードウェアフレンドリーな設計
(51)【国際特許分類】
   H04N 19/11 20140101AFI20250311BHJP
   H04N 19/157 20140101ALI20250311BHJP
   H04N 19/176 20140101ALI20250311BHJP
   H04N 19/46 20140101ALI20250311BHJP
【FI】
H04N19/11
H04N19/157
H04N19/176
H04N19/46
【請求項の数】 11
(21)【出願番号】P 2023530738
(86)(22)【出願日】2022-01-27
(65)【公表番号】
(43)【公表日】2023-11-30
(86)【国際出願番号】 US2022014145
(87)【国際公開番号】W WO2023027763
(87)【国際公開日】2023-03-02
【審査請求日】2023-05-22
(31)【優先権主張番号】17/573,856
(32)【優先日】2022-01-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/236,542
(32)【優先日】2021-08-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
【審査官】鈴木 順三
(56)【参考文献】
【文献】特表2019-520743(JP,A)
【文献】米国特許出願公開第2021/0160539(US,A1)
【文献】米国特許出願公開第2020/0169752(US,A1)
【文献】米国特許出願公開第2019/0373268(US,A1)
【文献】特表2019-530367(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ復号におけるイントラ予測モード符号化のための方法であって、
命令を記憶するメモリと、前記メモリと通信するプロセッサとを含むデバイスによって、符号化ビデオビットストリームを受信するステップと、
前記デバイスによって、ブロックのサイズに基づく所定のルールに従って、前記符号化ビデオビットストリーム内の前記ブロックのイントラモードのリストを構築するステップと、
前記デバイスによって、前記イントラモードのリストを前記ブロックの複数のイントラモードセットに分割するステップと、
前記デバイスによって、前記符号化ビデオビットストリームから、前記複数のイントラモードセットからのイントラモードセットを示すセットインデックスを抽出するステップと、
前記デバイスによって、前記符号化ビデオビットストリームから、前記イントラモードセットからのイントラ予測モードを示すモードインデックスを抽出するステップと、
前記デバイスによって、前記セットインデックス及び前記モードインデックスに基づいて、前記ブロックの前記イントラ予測モードを決定するステップと、
前記デバイスによって、前記イントラ予測モードに基づいて前記符号化ビデオビットストリームを復号するステップと
を含み、
前記所定のルールは、
前記ブロックの前記サイズが第1の閾値以上である場合、
前記イントラモードのリストが前記リストの先頭にある第1のサブリストを含み、
前記第1のサブリストが全ての非方向性イントラ予測モードを含む
ことを含む、方法。
【請求項2】
前記第1の閾値は8×8である、又は
前記第1の閾値はサンプル数で32である、請求項1に記載の方法。
【請求項3】
前記所定のルールは、
隣接ブロックが方向性イントラ予測モードを使用する場合、且つ、前記ブロックの前記サイズが前記1の閾値以上である場合、
前記イントラモードのリストが前記リスト内の前記第1のサブリストの次にある第2のサブリストを含み、
前記第2のサブリストが前記隣接ブロックの前記方向性イントラ予測モードに基づく複数の導出されたイントラ予測モードを含む
ことを含む、請求項1又は2に記載の方法。
【請求項4】
前記複数の導出されたイントラ予測モードは、[0,-1,+1,-2,+2,-3,+3,-4,+4]のオフセットを前記隣接ブロックの前記方向性イントラ予測モードに追加することによって、9つの方向性イントラ予測モードを含む、請求項3に記載の方法。
【請求項5】
前記所定のルールは、
前記イントラモードのリストが前記リスト内の前記第2のサブリストの次にある第3のサブリストを含み、
前記第3のサブリストがデフォルトイントラ予測モードを含む
ことを含む、請求項3又は4に記載の方法。
【請求項6】
前記デフォルトイントラ予測モードは、ゼロのデルタ角を有する少なくとも1つの公称方向性イントラ予測モードを含む、請求項5に記載の方法。
【請求項7】
前記所定のルールは、
前記ブロックの前記サイズが前記第1の閾値より小さい場合、
前記イントラモードのリストが前記リストの先頭にある前記第1のサブリストを含み、
前記第1のサブリストが全ての非方向性イントラ予測モードを含む
ことを含む、請求項1に記載の方法。
【請求項8】
前記所定のルールは、
前記イントラモードのリストが前記リスト内の前記第1のサブリストの次にある第2のサブリストを含み、
前記第2のサブリストがデフォルトイントラ予測モードを含む
ことを含む、請求項7に記載の方法。
【請求項9】
ビデオ復号におけるイントラ予測モード符号化のための装置であって、
命令を記憶するメモリと、
前記メモリと通信するプロセッサと
を含み、前記プロセッサが前記命令を実行すると、前記プロセッサは、当該装置に請求項1乃至8のうちいずれか1項に記載の方法を実行させるように構成される、装置。
【請求項10】
プロセッサに請求項1乃至8のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項11】
ビデオエンコーダが実行するイントラ予測モード符号化のための方法であって、
前記ビデオエンコーダによって、ブロックのサイズに基づく所定のルールに従って、符号化ビデオビットストリーム内の前記ブロックのイントラモードのリストを構築するステップと、
前記ビデオエンコーダによって、前記イントラモードのリストを前記ブロックの複数のイントラモードセットに分割するステップと、
前記ビデオエンコーダによって、前記複数のイントラモードセットからのイントラモードセットを示すセットインデックスを前記符号化ビデオビットストリームに含めるステップと、
前記ビデオエンコーダによって、前記イントラモードセットからのイントラ予測モードを示すモードインデックスを前記符号化ビデオビットストリームに含めるステップと、
を含み、
前記ブロックの前記イントラ予測モードは、前記セットインデックス及び前記モードインデックスに基づいて決定され、
前記所定のルールは、
前記ブロックの前記サイズが第1の閾値以上である場合、
前記イントラモードのリストが前記リストの先頭にある第1のサブリストを含み、
前記第1のサブリストが全ての非方向性イントラ予測モードを含む
ことを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本出願は、2021年8月24日に出願された米国仮出願第63/236,542号及び2022年1月12日に出願された米国非仮出願第17/573,856号に基づき、優先権の利益を主張する。双方の出願の全内容を参照することによって援用する。
【0002】
[技術分野]
本開示は、ビデオ符号化及び/又は復号技術に関し、特にイントラ予測モード符号化の改良された設計及び信号伝達に関する。
【背景技術】
【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】
様々な形式のイントラ予測が存在し得る。所与のビデオ符号化技術において、このような技術の2つ以上が利用可能である場合、使用される技術は、イントラ予測モードと呼ばれることができる。1つ以上のイントラ予測モードが特定のコーデックで提供されてもよい。特定の場合には、モードは、サブモードを有することができ、及び/又は様々なパラメータに関連付けられてもよく、ビデオのブロックのモード/サブモード情報及びイントラ符号化パラメータは、個別に符号化されることができ、或いは、併せてモードコードワードに含められることができる。所与のモード、サブモード及び/又はパラメータの組み合わせのためにどのコードワードを使用するかは、イントラ予測を通して符号化効率利得に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
イントラ予測の特定のモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM, joint exploration model)、バーサタイルビデオ符号化(VVC, versatile video coding)、及びベンチマークセット(BMS, benchmark set)のようなより新しい符号化技術においてさらに洗練された。一般的にイントラ予測について、予測子ブロックは、利用可能になった隣接サンプル値を使用して形成されることができる。例えば、特定の方向及び/又はラインに沿った特定のセットの隣接サンプルの利用可能な値が予測子ブロックにコピーされてもよい。使用される方向への参照は、ビットストリームにおいて符号化されることができ、或いは、それ自身予測されてもよい。
【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のイントラピクチャ予測は、信号伝達(シグナリング)される予測方向に従って隣接サンプルから参照サンプル値をコピーすることによって始まってもよい。例えば、符号化ビデオビットストリームは、このブロック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】
一側面によれば、本開示の一実施形態は、ビデオ復号におけるイントラ予測モード符号化のための方法を提供する。当該方法は、デバイスによって、符号化ビデオビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。当該方法はまた、デバイスによって、ブロックのサイズに基づく所定のルールに従って、符号化ビデオビットストリーム内のブロックのイントラモードのリストを構築するステップと、デバイスによって、イントラモードのリストをブロックの複数のイントラモードセットに分割するステップと、デバイスによって、符号化ビデオビットストリームから、複数のイントラモードセットからのイントラモードセットを示すセットインデックスを抽出するステップと、デバイスによって、符号化ビデオビットストリームから、イントラモードセットからのイントラ予測モードを示すモードインデックスを抽出するステップと、デバイスによって、セットインデックス及びモードインデックスに基づいて、ブロックのイントラ予測モードを決定するステップと、デバイスによって、イントラ予測モードに基づいて符号化ビデオビットストリームを復号するステップとを含む。
【0024】
別の側面によれば、本開示の一実施形態は、ビデオ符号化及び/又は復号のための装置を提供する。当該装置は、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。プロセッサが命令を実行すると、プロセッサは、当該装置にビデオ復号及び/又は符号化のために上記の方法を実行させるように構成される。
【0025】
別の側面では、本開示の一実施形態は、ビデオ復号及び/又は符号化のためにコンピュータによって実行されると、コンピュータにビデオ復号及び/又は符号化のために上記の方法を実行させる命令を記憶した、非一時的なコンピュータ読み取り可能媒体を提供する。
【0026】
上記及び他の側面並びにそれらの実装は、図面、詳細な説明及び特許請求の範囲においてより詳細に記載されている。
【図面の簡単な説明】
【0027】
開示された主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明白になるであろう。
図1A】イントラ予測方向モードの例示的なサブセットの概略図を示す。
図1B】例示的なイントラ予測方向の説明図を示す。
図2】一例における動きベクトル予測のための現在ブロック及びその周囲の空間的マージ候補の概略図を示す。
図3】例示的な実施形態による通信システムの簡略化されたブロック図の概略図を示す。
図4】例示的な実施形態による通信システム(400)の簡略化されたブロック図の概略図を示す。
図5】例示的な実施形態によるビデオデコーダの簡略化されたブロック図の概略図を示す。
図6】例示的な実施形態によるビデオエンコーダの簡略化されたブロック図の概略図を示す。
図7】例示的な実施形態によるビデオエンコーダのブロック図を示す。
図8】例示的な実施形態によるビデオデコーダのブロック図を示す。
図9】本開示の例示的な実施形態による方向性イントラ予測モードを示す。
図10】本開示の例示的な実施形態による非方向性イントラ予測モードを示す。
図11】本開示の例示的な実施形態による再帰的イントラ予測モードを示す。
図12】本開示の例示的な実施形態による様々な参照ラインに基づくイントラ予測方式を示す。
図13】本開示の例示的な実施形態によるイントラ予測のためのオフセットベースの改良を示す。
図14A】本開示の例示的な実施形態によるイントラ予測のためのオフセットベースの改良の別の図を示す。
図14B】本開示の例示的な実施形態によるイントラ予測のためのオフセットベースの改良の別の図を示す。
図15】本開示の例示的な実施形態による方法のフローチャートを示す。
図16】本開示の例示的な実施形態によるコンピュータシステムの概略図を示す。
【発明を実施するための形態】
【0028】
以下、本発明の一部を構成し、例示として実施形態の具体例を示す添付図面を参照して、本発明について詳細に説明する。しかし、本発明は、様々な異なる形式で具体化されてもよいことを注意しておく。したがって、対象となる主題又は請求される主題は、以下に示す実施形態のいずれにも限定されないと解釈されることを意図する。また、本発明は、方法、デバイス、コンポーネント又はシステムとして具体化されてもよいことも注意しておく。したがって、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせの形式をとってもよい。
【0029】
明細書及び特許請求の範囲を通して、用語は、明示的に述べられた意味を超えて、文脈において示唆又は暗示されたニュアンスの意味を有することがある。本明細書で使用される「一実施形態において(では)」又は「いくつかの実施形態において(では)」という語句は、必ずしも同じ実施形態を示すとは限らず、本明細書で使用される「別の実施形態において(では)」又は「他の実施形態において(では)」という語句は、必ずしも異なる実施形態を示すとは限らない。同様に、本明細書で使用される「1つの実装において(では)」又は「いくつかの実装において(では)」という語句は、必ずしも同じ実装を示すとは限らず、本明細書で使用される「別の実装において(では)」又は「他の実装において(では)」という語句は、必ずしも異なる実装を示すとは限らない。例えば、特許請求の範囲の主題は、全体的又は部分的に例示的な実施形態/実装の組み合わせを含むことを意図する。
【0030】
一般的に、用語は文脈における用法から少なくとも部分的に理解されてもよい。例えば、本明細書で使用される「及び」、「又は」又は「及び/又は」のような用語は、このような用語が使用される文脈に少なくとも部分的に依存する可能性のある様々な意味を含んでもよい。通常では、A、B又はCのようなリストを関連付けるために使用される場合の「又は」は、ここでは包括的な意味で使用されるA、B及びCと、ここでは排他的な意味で使用されるA、B又はCとを意味することを意図する。さらに、本明細書で使用される「1つ以上」又は「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、任意の特徴、構造又は特性を単一の意味で記述するために使用されてもよく、或いは、特徴、構造又は特性の組み合わせを複数の意味で記述するために使用されてもよい。同様に、単数形(「a」、「an」又は「the」等)の用語も同様に、文脈に少なくとも部分的に依存して、単数形の用法又は複数形の用法を伝えるものとして理解されてもよい。さらに、「に基づいて」又は「によって決定される」という用語は、必ずしも要因の排他的なセットを伝えることを意図するとは限らないと理解されてもよく、その代わりに、この場合にも同様に文脈に少なくとも部分的に依存して、必ずしも明示的に記述されていない更なる要因の存在を許容してもよい。
【0031】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行してもよい。例えば、端末デバイス(310)は、ネットワーク(350)を介した他方の端末デバイス(320)への伝送のために、ビデオデータ(例えば、端末デバイス(310)によって捕捉されたビデオピクチャのストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化ビデオビットストリームの形式で伝送されることができる。端末デバイス(320)は、ネットワーク(350)から、符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディアサービスアプリケーション等において実施されてもよい。
【0032】
別の例では、通信システム(300)は、例えばビデオ会議アプリケーション中に実施され得る符号化されたビデオデータの双方向伝送を実行する第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した、端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のために、ビデオデータ(例えば、端末デバイスによって捕捉されたビデオピクチャのストリーム)を符号化してもよい。端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信された符号化されたビデオデータを受信してもよく、符号化されたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能な表示デバイスにおいてビデオピクチャを表示してもよい。
【0033】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして実装されてもよいが、本開示の基礎の原理の適用可能性は、これらに限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、及び/又は専用のビデオ会議設備に実装されてもよい。ネットワーク(350)は、例えば有線(配線)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間で符号化されたビデオデータを伝達する任意の数又はタイプのネットワークを表す。通信ネットワーク(350)は、回線交換、パケット交換及び/又は別のタイプのチャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。ここでの議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、以下に明示的に説明しない限り、本開示の動作には重要ではないことがある。
【0034】
図4は、開示される主題のためのアプリケーションの例として、ビデオストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示される主題は、例えば、ビデオ会議、デジタルTV放送、ゲーム、仮想現実、CD、DVD、メモリスティック等を含むデジタル媒体上の圧縮ビデオの記憶等を含む、他のビデオアプリケーションにも等しく適用可能であり得る。
【0035】
ビデオストリーミングシステムは、ビデオソース(401)、例えばデジタルカメラを含むことができ、例えば非圧縮のビデオピクチャ又は画像のストリーム(402)を生成するビデオ捕捉サブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって記録されたサンプルを含む。符号化されたビデオデータ(404)(又は符号化されたビデオビットストリーム)と比較した場合の高いデータボリュームを強調するために太線として描かれているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下により詳細に説明されるように、開示される主題の側面を可能にするため或いは実現するためのハードウェア、ソフトウェア、又はこれらの組み合わせを含むことができる。非圧縮のビデオピクチャのストリーム(402)と比較した場合の、より低いデータボリュームを強調するために細い線として描かれている、符号化されたビデオデータ(404)(又は符号化されたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶されることができ、或いは、ダウンストリームのビデオデバイス(図示せず)に直接記憶されることができる。図4のクライアントサブシステム(406)及び(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化されたビデオデータ(404)のコピー(407)及び(409)を取り出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化されたビデオデータの入力コピー(407)を復号し、ディスプレイ(412)(例えば表示画面)又は他のレンダリングデバイス(図示せず)上にレンダリングできる非圧縮のビデオピクチャの出力ストリーム(411)を生成する。ビデオデコーダ410は、本開示に記載の様々な機能の一部又は全部を実行するように構成されてもよい。いくつかのストリーミングシステムでは、符号化されたビデオデータ(404)、(407)、及び(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮標準に従って符号化されることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化標準は、非公式に多用途ビデオ符号化(VVC)として知られている。開示される主題は、VVC及び他のビデオ符号化標準の文脈で使用されてもよい。
【0036】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0037】
図5は、以下の本開示の任意の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(310)の代わりに使用できる。
【0038】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよい。同じ又は別の実施形態において、一度に1つの符号化ビデオシーケンスが復号されてもよく、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスから独立である。各ビデオシーケンスは複数のビデオフレーム又は画像に関連付けられてもよい。符号化ビデオシーケンスは、チャネル(501)から受信されてもよく、該チャネルは、符号化されたビデオデータを記憶する記憶デバイス又は符号化ビデオデータを送信するストリーミングソースへのハードウェア/ソフトウェアリンクでもよい。受信機(531)は、符号化されたビデオデータを、符号化されたオーディオデータ及び/又は補助データストリームのような他のデータと一緒に受信してもよく、これらのデータは、それぞれの処理回路(図示せず)を転送されてもよい。受信機(531)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタ対策として、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下「パーサ」)との間に配置されてもよい。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部として実装されてもよい。他のアプリケーションでは、ビデオデコーダ(510)の外部に離れて存在することができる(図示せず)。さらに他のアプリケーションでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在してもよく、さらに、例えば再生タイミングを扱うために、ビデオデコーダ(510)の内部に別の更なるバッファメモリ(515)が存在してもよい。受信機(531)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合は、バッファメモリ(515)は、必要とされなくてもよく、或いは、小さくてもよい。インターネットのようなベストエフォート型のパケットネットワークでの使用のためには、十分なサイズのバッファメモリ(515)が要求されることがあり、そのサイズは比較的大きい。このようなバッファメモリは適応サイズで実装されてもよく、少なくとも部分的に、ビデオデコーダ(510)の外部でオペレーティングシステム又は同様の要素(図示せず)において実装されてもよい。
【0039】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的には、ディスプレイ(512)(例えば表示画面)のようなレンダリングデバイスを制御するための情報とを含む。ディスプレイは、図5に示されるように、電子デバイス(530)の一体的な部分でも一体的な部分でなくてもよく、電子デバイス(530)に結合されることができる。レンダリングデバイス(単数又は複数)のための制御情報は、補足エンハンスメント情報(Supplementary Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(520)は、パーサ(520)によって受信された符号化ビデオシーケンスをパースする/エントロピー復号することができる。符号化ビデオシーケンスのエントロピー符号化は、ビデオ符号化技術又は標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性あり又はなしの算術符号化等を含む、様々な原理に従うことができる。パーサ(520)は、符号化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットを、サブグループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、グループオブピクチャ(Group of Pictures、GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit、CU)、ブロック、変換ユニット(Transform Unit、TU)、予測ユニット(Prediction Unit、PU)等を含むことができる。パーサ(520)はまた、符号化ビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
【0040】
パーサ(520)は、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
【0041】
シンボル(521)の再構成は、符号化されたビデオピクチャ又はその部分のタイプ(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なる処理又は機能ユニットに関わることができる。関わるユニット及びどのように関わるかは、符号化ビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御されてもよい。パーサ(520)と下記の複数の処理又は機能ユニットとの間のこのようなサブグループ制御情報の流れは、簡潔のため、描かれていない。
【0042】
既に述べた機能ブロックのほかに、ビデオデコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかし、開示される主題の様々な機能を明確に記述する目的のために、機能ユニットへの概念的な細分が以下の開示において採用される。
【0043】
第1のユニットは、スケーラ/逆変換ユニット(551)を含んでもよい。スケーラ/逆変換ユニット(551)は、パーサ(520)から、量子化された変換係数及び制御情報をシンボル(単数又は複数)(521)として受信してもよい。制御情報は、どのタイプの逆変換を使用するか、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列等を示す情報含む。スケーラ/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0044】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在ピクチャの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、既に再構成されて現在ピクチャバッファ(558)に記憶されている周囲のブロック情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成してもよい。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。集計器(555)は、実装によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加算してもよい。
【0045】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。このような場合、動き補償予測ユニット(553)は、インターピクチャ予測のために使用されるサンプルを取り出すために参照ピクチャメモリ(557)にアクセスすることができる。取り出されたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラ/逆変換ユニットの出力(ユニット551の出力は、残差サンプル又は残差信号と呼ばれてもよい)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、シンボル(521)の形式で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、例えばX、Y成分(シフト)、及び参照ピクチャ成分(時間)を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャメモリ(557)から取ってこられるサンプル値の補間を含んでもよく、動きベクトル予測機構等にも関連してもよい。
【0046】
集計器(555)の出力サンプルは、ループフィルタユニット(556)内で様々なループフィルタリング技術にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号順で)前の部分の復号中に得られたメタ情報に応答するとともに、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。以下に更に詳細に説明するように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれてもよい。
【0047】
ループフィルタユニット(556)の出力はサンプルストリームであることができ、これは、レンダリングデバイス(512)に出力されることができ、また将来のインターピクチャ予測において使用するために参照ピクチャメモリ(557)に記憶されることができる。
【0048】
特定の符号化されたピクチャは、いったん完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応する符号化されたピクチャが完全に再構成され、該符号化されたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして特定されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、後続の符号化されたピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファが再割り当てされることができる。
【0049】
ビデオデコーダ(510)は、ITU-T勧告H.265のような標準で採用されている所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化ビデオシーケンスはビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準において文書化されているプロファイルに従うという意味で、符号化されたビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術又は標準において利用可能な全てのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、特定のツールを選択することができる。標準に準拠するために、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内になり得る。いくつかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャサイズ等を制約する。レベルによって設定された限界は、場合によっては、符号化ビデオシーケンスにおいて信号伝達される、HRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様及びメタデータを通じてさらに制約されることができる。
【0050】
いくつかの例示的な実施形態において、受信機(531)は、符号化されたビデオとともに追加の(冗長な)データを受信してもよい。追加データは、符号化されたビデオシーケンス(単数又は複数)の一部として含まれていてもよい。追加データは、データを適正に復号するため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号等の形式になり得る。
【0051】
図6は、本開示の例示的な実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれてもよい。電子デバイス(620)は、送信機(640)(例えば、送信回路)を更に含んでもよい。ビデオエンコーダ(603)は、図4の例におけるビデオエンコーダ(403)の代わりに使用できる。
【0052】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオソース(601)(これは図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部として実装されてもよい。
【0053】
ビデオソース(601)は、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCB、RGB、XYZ、…)及び任意の好適なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によって符号化されるべきソースビデオシーケンスを提供することができる。メディアサービスシステムにおいては、ビデオソース(601)は、事前に準備されたビデオを記憶可能な記憶デバイスでもよい。ビデオ会議システムにおいては、ビデオソース(601)は、ローカルでの画像情報をビデオシーケンスとして捕捉するカメラでもよい。ビデオデータは、シーケンスで見たときに動きを付与する複数の個々のピクチャ又は画像として提供されてもよい。ピクチャ自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0054】
いくつかの例示的な実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャを、リアルタイムで或いはアプリケーションによって要求される任意の他の時間的制約の下で、符号化及び圧縮して、符号化ビデオシーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットに機能的に結合され、該他の機能ユニットを制御してもよい。かかる結合は、簡潔のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャスキップ、量子化器、レート‐歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0055】
いくつかの例示的な実施形態では、ビデオエンコーダ(603)は、符号化ループにおいて動作するように構成されてもよい。思い切って単純化した説明として、一例では、符号化ループは、ソース符号化器(630)(例えば、符号化されるべき入力ピクチャと参照ピクチャ(単数又は複数)に基づいてシンボルストリームのようなシンボルを生成することを受け持つ)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。埋め込みデコーダ633がソースコーダ630によってエントロピーコーディングせずに符号化ビデオストリームを処理する場合であっても、デコーダ(633)は、(リモートの)デコーダも生成するであろうのと同様の仕方でサンプルデータを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、エントロピーコーディングにおけるシンボルと符号化ビデオビットストリームとの間のどの圧縮も無損失になり得る)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャメモリ(634)の内容もローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、符号化品質を改善するために使用される。
【0056】
「ローカル」デコーダ(633)の動作は、図5との関連で既に上記で詳細に述べた「リモート」デコーダ、例えばビデオデコーダ(410)の動作と同じでもよい。しかし、簡単に図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)及びパーサ(420)による、シンボルの符号化ビデオシーケンスへの符号化/復号が可逆であり得るので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピー復号部は、エンコーダのローカルデコーダ(633)においては完全には実装されなくてもよい。
【0057】
この時点で行なうことができる観察は、デコーダ内のみに存在し得るパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要があり得ることである。このため、開示される主題は時としてデコーダ動作に焦点を当てることがある。これはエンコーダの復号部分と同様である。したがって、エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、省略することができる。エンコーダの特定の領域又は側面においてのみ、より詳細な説明が以下に提供される。
【0058】
動作中、いくつかの例示的な実装では、ソース符号化器(630)は、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の以前に符号化されたピクチャを参照して、入力ピクチャを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャ(単数又は複数)のピクセルブロックとの間のカラーチャネルにおける差分(又は残差)を符号化する。
【0059】
ローカルビデオデコーダ(633)は、ソース符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号することができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスであり得る。符号化されたビデオデータがビデオデコーダ(図6には示さず)で復号され得るとき、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させることができる。このようにして、ビデオエンコーダ(603)は、遠端(リモート)のビデオデコーダによって得られるであろう再構成された参照ピクチャとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャのコピーを、ローカルに記憶することができる。
【0060】
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測参照として機能し得るサンプルデータ(候補参照ピクセルブロックとして)又は特定のメタデータ、例えば参照ピクチャ動きベクトル、ブロック形状等を求めて、参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプルブロック/ピクセルブロック毎に(on a sample block-by-pixel block basis)動作し得る。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0061】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソース符号化器(630)の符号化動作を管理してもよい。
【0062】
上記の機能ユニット全ての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化等といった技術に従ってシンボルを無損失圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0063】
送信機(640)は、エントロピー符号化器(645)によって生成される符号化ビデオシーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオ符号化器(630)からの符号化されたビデオデータを、送信されるべき他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージすることができる。
【0064】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャに、ある符号化ピクチャタイプを割り当てることができる。符号化ピクチャタイプは、それぞれのピクチャに適用され得る符号化技術に影響し得る。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つとして割り当てられることがある。
【0065】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化され、復号され得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形、並びにそれらのそれぞれの用途及び特徴を認識する。
【0066】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号され得るものであり得る。
【0067】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号され得るものであり得る。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0068】
ソースピクチャは、通常では、空間的に複数のサンプル符号化ブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に分割され、ブロック毎に符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるところにより、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前に符号化された1つの参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。ソースピクチャ又は中間処理ピクチャは、他の目的のために他のタイプのブロックに細分されてもよい。以下に更に詳細に説明するように、符号化ブロック及び他のタイプのブロックの分割は同じ方式に従ってもよく、或いは、同じ方式に従わなくてもよい。
【0069】
ビデオエンコーダ(603)は、ITU-T勧告H.265等の所定のビデオ符号化技術又は標準に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測符号化動作を含む、様々な圧縮動作を実行することができる。よって、符号化されたビデオデータは、使用されるビデオ符号化技術又は標準によって指定されるシンタックスに準拠し得る。
【0070】
いくつかの例示的な実施形態において、送信機(640)は、符号化されたビデオと一緒に追加データを送信してもよい。ソース符号化器(630)は、符号化ビデオシーケンスの一部としてこのようなデータを含めてもよい。追加データは、時間的/空間的/SNRエンハンスメント層、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント等を含んでいてもよい。
【0071】
ビデオは、時間的シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてもよい。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の時間的又は他の相関を利用する。例えば、現在ピクチャと呼ばれる符号化/復号対象の特定のピクチャは、ブロックに分割されてもよい。現在ピクチャ内のブロックが、ビデオにおける、前に符号化され、且つ、まだバッファに入れられている参照ピクチャ内の参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによって符号化されてもよい。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを特定する第3の次元を有することができる。
【0072】
いくつかの例示的な実施形態において、インターピクチャ予測において双方向予測技術が使用できる。このような双方向予測技術によれば、いずれもビデオにおいて現在ピクチャより復号順で先行する(ただし、表示順では、それぞれ過去又は将来でもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって一緒に予測できる。
【0073】
さらに、符号化効率を改善するために、インターピクチャ予測においてマージモード技術が使用されてもよい。
【0074】
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックの単位で実行される。例えば、ビデオピクチャのシーケンスにおけるピクチャは、圧縮のために符号化ツリーユニット(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に分割されることができる。1つ以上の32×32ブロックのそれぞれは、16×16ピクセルの4つのCUに更に分割されてもよい。いくつかの例示的な実施形態では、各CUは、符号化中に、インター予測タイプ又はイントラ予測タイプのような様々な予測タイプの中で、そのCUについての予測タイプを決定するために解析されてもよい。CUは時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PU)に分割されてもよい。一般に、各PUはルマ予測ブロック(PB)及び2つのクロマPBを含む。ある実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックの単位で実行される。PU(又は異なるカラーチャネルのPB)へのCUの分割は、様々な分割パターンで実行されてもよい。例えば、ルマ又はクロマPBは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のように、ピクセルについての値(例えば、ルマ値)の行列を含んでもよい。
【0075】
図7は、本開示の別の例示的な実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。例示的なビデオエンコーダ(703)は、図4の例におけるビデオエンコーダ(403)の代わりに使用されてもよい。
【0076】
例えば、ビデオエンコーダ(703)は、8×8サンプル等の予測ブロックのような処理ブロックについてサンプル値の行列を受信する。次いで、ビデオエンコーダ(703)は、処理ブロックが、イントラモード、インターモード、又は双方向予測モードのどれを使用して、最もよく符号化されるかを、例えばレート‐歪み最適化(RDO)を使用して、判別する。処理ブロックがイントラモードで符号化されると決定された場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するためにイントラ予測技術を使用してもよい。処理ブロックがインターモード又は双方向予測モードで符号化されると決定された場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するために、それぞれ、インター予測技術又は双方向予測技術を使用してもよい。いくつかの例示的な実施形態では、マージモード(merge mode)は、動きベクトルが1つ以上の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、インターピクチャ予測のサブモードとして使用されてもよい。いくつかの例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。よって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するためのモード決定モジュール(図示せず)のような、図7に明示的に図示しないコンポーネントを含んでもよい。
【0077】
図7の例では、ビデオエンコーダ(703)は、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、及びエントロピー符号化器(725)を、図7の例示的な配置に示されるように一緒に結合されて含む。
【0078】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、表示順で以前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技術を使用してインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて、図6の例示的なエンコーダ620に埋め込まれた復号ユニット633(以下に更に詳細に説明するように、図7の残差デコーダ728として示される)を使用して復号された、復号された参照ピクチャである。
【0079】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを、同じピクチャ内で既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)はまた、該イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算してもよい。
【0080】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成されてもよい。一例では、全般コントローラ(721)は、ブロックの予測モードを決定し、その予測モードに基づいて制御信号をスイッチ(726)に提供する。例えば、予測モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。そのブロックの予測モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。
【0081】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択されたそのブロックの予測結果との差(残差データ)を計算するように構成されてもよい。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するように構成されてもよい。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成されてもよい。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な例示的な実施形態において、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用されることができる。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために好適に処理され、復号されたピクチャは、メモリ回路(図示せず)内にバッファリングされ、参照ピクチャとして使用されることができる。
【0082】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットし、エントロピー符号化を実行するように構成される。エントロピーエンコーダ(725)は、様々な情報をビットストリーム内に含めるように構成される。例えば、エントロピーエンコーダ(725)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適な情報をビットストリーム内に含めるように構成されてもよい。インターモード又は双方向予測モードのいずれかのマージサブモードにおいてブロックを符号化する場合は、残差情報は存在しなくてもよい。
【0083】
図8は、本開示の別の実施形態による例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号して、再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例におけるビデオデコーダ(410)の代わりに使用されてもよい。
【0084】
図8の例では、ビデオデコーダ(810)は、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)が図8の例示的な構成に示されるように一緒に結合されたものを含む。
【0085】
エントロピーデコーダ(871)は、符号化されたピクチャから、その符号化されたピクチャが構成されるシンタックスエレメントを表す特定のシンボルを再構成するように構成されることができる。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモード)、イントラデコーダ(872)又はインターデコーダ(880)によって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば量子化された変換係数の形式の残差情報等を含むことができる。一例では、予測モードがインター又は双方向予測モードである場合、インター予測情報がインターデコーダ(880)に提供される。予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0086】
インターデコーダ(880)は、インター予測情報を受信し、該インター予測情報に基づいてインター予測結果を生成するように構成されてもよい。
【0087】
イントラデコーダ(872)は、イントラ予測情報を受信し、該イントラ予測情報に基づいて予測結果を生成するように構成されてもよい。
【0088】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されてもよい。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)をも利用してもよく、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは、低データボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0089】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてイントラ又はインター予測モジュールによって出力される)とを組み合わせて、再構成されたビデオの一部として再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成されてもよい。視覚的品質を改善するためにデブロッキング動作等の他の好適な動作も実行されてもよいことを注意しておく。
【0090】
なお、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、任意の好適な技術を用いて実装できる。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)、(703)及びビデオデコーダ(410)、(510)、(810)は、1つ以上の集積回路を使用して実装できる。別の実施形態では、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装できる。
【0091】
イントラ予測プロセスに戻ると、ブロック内のサンプル(例えば、ルマ若しくはクロマ予測ブロック、又は予測ブロックに更に分割されていない場合には符号化ブロック)が隣接、次の隣接又は他のライン若しくは複数ライン、又はそれらの組み合わせによって予測され、予測ブロックを生成する。次いで、符号化されている実際のブロックと予測ブロックとの間の残差は、変換及びその後の量子化を介して処理されてもよい。様々なイントラ予測モードが利用可能になり、イントラモード選択に関連するパラメータ及び他のパラメータがビットストリームで信号伝達されてもよい。例えば、様々なイントラ予測モードは、サンプルを予測するためのライン位置又は複数位置、予測ライン又は複数ラインから予測サンプルが選択される方向、及び他の特別なイントラ予測モードに関連してもよい。
【0092】
例えば、イントラ予測モード(「イントラモード」とも呼ばれる)のセットは、所定数の方向性イントラ予測モードを含んでもよい。図1の例示的な実装に関連して上記に説明したように、これらのイントラ予測モードは、特定のブロック内で予測されるサンプルのための予測として、ブロック外のサンプルが選択される所定数の方向に対応してもよい。別の特定の例示的な実装では、水平軸に対して45°から207°の角度に対応する8つの主方向性モードがサポートされ、予め定義されてもよい。
【0093】
イントラ予測のいくつかの他の実装では、方向性テクスチャにおいてより多様な空間冗長性を更に活用するために、方向性イントラモードが、より細かい粒度で設定された角度に更に拡張されてもよい。例えば、上記の8つの角度の実装は、図9に示すようにV_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED及びD67_PREDと呼ばれる8つの公称角度を提供するように構成されてもよい。各公称角度について、所定数(例えば、7つ)のより細かい角度が追加されてもよい。このような拡張によって、同じ数の所定の方向性イントラモードに対応して、より大きい総数(例えば、この例では56個)の方向角度がイントラ予測に利用可能になってもよい。予測角度は、公称イントラ角度に角度デルタを加えたもので表されてもよい。各公称角度について7つのより細かい角度方向を有する上記の特定の例では、角度デルタは、-3~3で3°のステップサイズを乗算するものでもよい。
【0094】
上記の方向性イントラ予測はまた、単一方向性イントラ予測とも呼ばれてもよく、本開示の後半で説明する双方向イントラ予測(イントラ双方向予測とも呼ばれる)とは異なる。
【0095】
いくつかの実装では、上記の方向性イントラモードの代わりに或いはそれに加えて、所定数の非方向性イントラ予測モードも予め定義され、利用可能になってもよい。例えば、スムーズイントラ予測モードと呼ばれる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は、垂直方向及び水平方向における二次補間の平均によって予測されてもよい。上記の非方向性イントラモードの実装は、単に非限定的な例として示されている。他の隣接ライン及び他のサンプルの非方向性選択、並びに予測ブロック内の特定のサンプルを予測するための予測サンプルの組み合わせの方式も考慮される。
【0096】
様々な符号化レベル(ピクチャ、スライス、ブロック、ユニット等)において、上記の方向性モード又は非方向性モードからのエンコーダによる特定のイントラ予測モードの選択は、ビットストリームで信号伝達されてもよい。いくつかの例示的な実装では、5つの非角度スムーズモードと共に、例示的な8つの公称方向性モード(合計で13個の選択肢)が最初に信号伝達されてもよい。次いで、信号伝達されたモードが8つの公称角度イントラモードのうち1つである場合、対応する信号伝達された公称角度に対する選択された角度デルタを示すために、インデックスが更に信号伝達される。いくつかの他の例示的な実装では、全てのイントラ予測モードが信号伝達のために全て一緒にインデックス付けされてもよい(例えば、56個の方向性モードに5個の非方向性モードを加えて61個のイントラ予測モードを生成する)。
【0097】
いくつかの例示的な実装では、例示的な56個の方向性イントラ予測モード又は他の数の方向性イントラ予測モードは、ブロックの各サンプルを参照サブサンプル位置に投影し、2タップのバイリニアフィルタによって参照サンプルを補間する統合方向性予測器を使用して実装されてもよい。
【0098】
いくつかの実装では、エッジ上の参照との減衰する空間的相関を捕捉するために、フィルタイントラ(FILTER INTRA)モードと呼ばれる更なるフィルタモードが設計されてもよい。これらのモードでは、ブロック外サンプルに加えてブロック内の予測サンプルが、ブロック内のいくつかのパッチのためのイントラ予測参照サンプルとして使用されてもよい。例えば、これらのモードは予め定義され、少なくともルマブロック(又はルマブロックのみ)についてイントラ予測に使用可能になってもよい。所定数(例えば、5つ)のフィルタイントラモードが予め設計されてもよく、それぞれは、例えば4×2パッチ内のサンプルとそれに隣接するn個の近傍との間の相関関係を反映するnタップフィルタ(例えば、7タップフィルタ)のセットによって表される。言い換えると、nタップフィルタの重み係数は位置に依存してもよい。8×8ブロック、4×2パッチ及び7タップフィルタリングを例にとると、図11に示すように、8×8ブロック1102は8つの4×2パッチに分割されてもよい。これらのパッチは、図11においてB0、B1、B1、B3、B4、B5、B6及びB7によって示されている。各パッチについて、図11においてR0~R7によって示されるその7つの近傍が、現在のパッチ内のサンプルを予測するために使用されてもよい。パッチB0では、全ての近傍が既に再構成されている可能性がある。しかし、他のパッチでは、近傍のいくつかが現在ブロック内にあり、再構成されていない可能性がある。その場合、直近の近傍の予測値が参照として使用される。例えば、図11に示すように、パッチB7の全ての近傍は再構成されないため、例えば、B4、B5及び/又はB6の一部の近傍の予測サンプルが代わりに使用される。
【0099】
イントラ予測のいくつかの実装では、1つの色成分が1つ以上の他の色成分を使用して予測されてもよい。色成分はYCrCb、RGB、XYZ色空間等における色成分のうちいずれか1つでもよい。例えば、CfL(Chroma from Luma)と呼ばれるルマ成分(例えば、ルマ参照サンプル)からのクロマ成分(例えば、クロマブロック)の予測が実装されてもよい。いくつかの例示的な実装では、クロスカラー(色間)予測はルマからクロマでのみ許容されてもよい。例えば、クロマブロック内のクロマサンプルは、一致する再構成されたルマサンプルの線形関数としてモデル化されてもよい。CfL予測は以下のように実装されてもよい。
CfL(α)=α×LAC+DC (1)
【0100】
ここで、LACはルマ成分のAC寄与を示し、αは線形モデルのパラメータを示し、DCはクロマ成分のDC寄与を示す。例えば、AC成分はブロックの各サンプルについて取得されるが、DC成分は全体のブロックについて取得される。具体的には、再構成されたルマサンプルはクロマ解像度にサブサンプリングされてもよく、次いで、平均ルマ値(ルマのDC)が各ルマ値から減算されて、ルマにおけるAC寄与が形成されてもよい。次いで、ルマのAC寄与が式(1)の線形モードにおいて使用され、クロマ成分のAC値を予測する。ルマACの寄与からクロマAC成分を近似又は予測するために、デコーダにスケーリングパラメータの計算を要求する代わりに、例示的なCfLの実装は、元のクロマサンプルに基づいてパラメータαを決定し、ビットストリームで信号伝達してもよい。これは、デコーダの複雑さを低減し、より正確な予測を生じる。クロマ成分のDC寄与に関しては、いくつかの例示的な実装では、クロマ成分内でイントラDCモードを使用して計算されてもよい。
【0101】
イントラ予測に戻り、いくつかの例示的な実装では、符号化ブロック又は予測ブロック内のサンプルの予測は、参照ラインのセットの1つに基づいてもよい。言い換えると、最も近い隣接ライン(例えば、上記の図1に示す予測ブロックの直近の上隣接ライン又は直近の左隣接ライン)を常に使用するのではなく、複数の参照ラインがイントラ予測の選択のための選択肢として提供されてもよい。このようなイントラ予測の実装は、複数参照ライン選択(MRLS, Multiple Reference Line Selection)と呼ばれてもよい。これらの実装では、エンコーダは、複数の参照ラインのうちどの参照ラインがイントラ予測子を生成するために使用されるかを決定して信号伝達する。デコーダ側では、参照ラインインデックスをパースした後に、イントラ予測モード(方向性、非方向性及び他のイントラ予測モード等)に従って指定の参照ラインを検索することによって再構成された参照サンプルを特定することで、現在イントラ予測ブロックのイントラ予測が生成できる。いくつかの実装では、参照ラインインデックスが符号化ブロックレベルで信号伝達されてもよく、複数の参照ラインのうち1つのみが選択されてもよく、1つの符号化ブロックのイントラ予測に使用されてもよい。いくつかの例では、イントラ予測のために1つより多くの参照ラインが同時に選択されてもよい。例えば、1つより多くの参照ラインが、重み付きで或いは重みなしで組み合わされ、平均化され、補間され、或いは、他の方法で組み合わされ、予測を生成してもよい。いくつかの例示的な実装では、MRLSはルマ成分にのみ適用されてもよく、クロマ成分に適用されなくてもよい。
【0102】
図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の参照ラインと呼ばれてもよい。
【0103】
いくつかの実施形態では、イントラ符号化された特定の符号化ブロック、符号化ユニット、予測ブロック又は予測ユニットについて、そのイントラモードはビットストリーム内の1つ以上のシンタックスエレメントによって信号伝達される必要がある。上記のように、可能なイントラ予測モードの数は膨大になる可能性があり、56個の方向性イントラ予測モード、5つの非方向性モード及び1つのChroma from Lumaモード(例えば、クロマ成分のみ)の62個のイントラ予測モードが利用可能になってもよい。これらのイントラ予測モードを信号伝達するために、どの公称角度又は非方向性モードが現在ブロックの公称モードと等しいかを示すために、第1のシンタックスが信号伝達されてもよい。次いで、現在ブロックのモードが方向性モードである場合、どのデルタ角度が現在ブロックのデルタ角度と等しいかを示すために、第2のシンタックスが信号伝達されてもよい。ビデオ符号化及び/又は復号中のいくつかの状況では、現在ブロックのイントラ予測モードとその隣接ブロックとの間に強い相関関係が存在し得る。
【0104】
様々な実施形態では、この相関関係は、イントラモード符号化のためのより効率的なシンタックスを設計するために利用されてもよい。いくつかの実装では、現在ブロックの利用可能なイントラ予測モードは、その隣接ブロックのイントラ予測モードに従って、複数のイントラ予測モードセットに分割されてもよい。現在ブロックのイントラ予測モードを取得するために、まず、現在ブロックのイントラ予測モードのモードセットインデックスを示すためにモードセットインデックスが信号伝達されてもよく、次に、モードセット内のイントラ予測モードのインデックスを示すためにモードインデックスが信号伝達されてもよい。
【0105】
ここで、本開示の様々な実施形態において、「XYZが信号伝達される」ことは、XYZが符号化プロセス中に符号化ビットストリームに符号化されることを示してもよく、及び/又は、符号化ビットストリームがあるデバイスから別のデバイスに送信された後に、「XYZが信号伝達される」ことは、復号プロセス中にXYZが符号化ビットストリームから復号/抽出されることを示してもよい。
【0106】
例えば、上記の実装のいくつかでは、利用可能なイントラ予測モードの数は、例えば、56個の方向性イントラ予測モード(例えば、各公称方向に7つの細かい角度を有する8つの公称方向)、5つの非方向性モード、及び1つのchroma-from-lumaモード(クロマ成分のみ)を含む62個の異なるモードを含んでもよい。特定の符号化ブロック、符号化ユニット、予測ブロック又は予測についての符号化プロセス中にイントラモードが選択されると、選択されたイントラモードに対応する信号伝達がビットストリームに含まれる必要がある。シンタックスの信号伝達は、全てのこれらの62個のモードを何らかの方式で区別できなければならない。例えば、これらの62個のモードは、それぞれが1つのモードに対応する62個のインデックスについて単一のシンタックスを使用して信号伝達されてもよい。いくつかの他の例示的な実装では、どの公称角度又は非方向性モードが現在ブロックにおいて公称モードとして使用されるかを示すために、1つのシンタックスが信号伝達されてもよく、次いで、現在ブロックの公称モードが方向性モードである場合、どのデルタ角度が現在ブロックについて選択されるかを示すために、別のシンタックスが更に信号伝達されてもよい。
【0107】
イントラ符号化に関する様々なシンタックスは典型的にはビットストリームの大部分を占有し、例えば様々な符号化レベルにおいて、イントラモードの選択が頻繁に信号伝達されなければならないので、イントラモードの信号伝達に使用されるビット数の低減は、ビデオ符号化効率を改善する際に重要になっている。実際には、様々なイントラ予測モードの使用は、特定の統計的パターンに従う可能性があり、このような使用パターンは、信号伝達効率が高められることができるように、イントラモードのインデックス付けとシンタックスの信号伝達とを設計するために利用されてもよい。さらに、ブロックからブロックへのイントラモードの選択の間には、平均していくつかの相関関係が存在する可能性がある。このような相関関係は、統計的にオフラインで取得され、イントラモードの選択の信号伝達のためのシンタックスの設計で考慮されてもよい。目標は、符号化ビットストリーム内の信号伝達シンタックスエレメントのビット数を平均して低減することである。例えば、いくつかの一般的な統計は、現在ブロックとその隣接ブロックの最適なイントラ予測モードの間に強い相関関係が存在し得ることを示してもよい。このような相関関係は、イントラモード符号化のシンタックスを設計する際に利用されてもよい。
【0108】
いくつかの実施形態では、ビデオ符号化/復号性能を改善するために、イントラ予測サンプルを生成した後に、イントラ予測のためのオフセットベースの改良(ORIP, offset-based refinement for intra prediction)が使用されてもよい。ORIPが適用される場合、予測サンプルはオフセット値を追加することで改良される。
【0109】
図13に示すように、参照サンプルに基づいてイントラ予測(1330)が実行される。参照サンプルは、1つ以上の左参照ライン(1312)及び/又は1つ以上の上参照ライン(1310)からのサンプルを含んでもよい。イントラ予測のためのオフセットベースの改良(ORIP)(1350)は、隣接参照サンプルを使用してオフセット値を生成してもよい。いくつかの実装では、ORIPのための隣接参照サンプルは、イントラ予測のための参照サンプルと同じセットでもよい。いくつかの他の実装では、ORIPのための隣接参照サンプルは、イントラ予測のための参照サンプルと異なるセットでもよい。
【0110】
図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)との双方を含んでもよい。
【0111】
第1のサブブロック(1471)は4×4ピクセルを含み、4×4ピクセルの各ピクセルは、改良前の第Nの隣接予測サンプルであるpredNに対応する。例えば、pred0、pred1、pred2、...pred16である。
【0112】
様々な実施形態では、所与のサブブロックの各ピクセルのオフセット値は、ある式に従って隣接サンプルに基づいて計算されてもよい。式は、所定の式でもよく、或いは、符号化ビットストリームにおいて符号化されたパラメータによって示される式でもよい。
【0113】
図14Bを参照するいくつかの実装では、所与のサブブロックの第kの位置のオフセット値(offset(k))は以下のように生成されてもよい。
【数1】
【0114】
Wknはオフセット計算用の所定の重みである。Pnは隣接サンプル(例えば、P0、P1、P2、...、P8)の値である。predkは、イントラ予測又はその他の予測(例えば、インター予測)の適用後のピクセルの予測値である。pred_refinedkは、ORIPの適用後のピクセルの改良値である。clip3()は、clip3の数学関数である。nは0以上8以下の整数である。kは0以上15以下の整数である。
【0115】
いくつかの実装では、Wknは予め定義されてもよく、表1に従って取得されてもよい。
【表1】
【0116】
いくつかの他の実装では、サブブロックベースのORIPは、所定のセットのイントラ予測モードにのみ適用されてもよく、及び/又は、イントラ予測モードに依存してルマ及びクロマについて異なってもよい。表2は、様々なイントラ予測モード及びルマチャネル又はクロマチャネルのいずれかによるサブブロックベースのORIPの1つの実装を示す。ルマチャネルを例にとると、予測モードがDC又はSMOOTHのいずれかである場合、ORIPは常にONであり、更なる信号伝達は必要とされず、予測モードがHOR/VERであり、angle_deltaが0に等しい場合、ORIPを有効/無効にするためにブロックレベルの信号伝達が必要であり、及び/又は、イントラ予測モードが他のモードである場合、ORIPは常にOFFであり、更なるシグナリングは必要とされない。
【表2】
【0117】
第2の4×4サブブロック(1473)を参照すると、第1の4×4サブブロック(1471)とのその相対位置のため、第2のサブブロックの上隣接サンプルは第1のサブブロックのいくつかのピクセルでもよい。第2のサブブロックのP1は第1のブロックのpred12でもよく、第2のサブブロックのP2は第1のサブブロックのpred13でもよく、第2のサブブロックのP3は第1のサブブロックのpred14でもよく、第2のサブブロックのP4は第1のサブブロックのpred15でもよい。第2のサブブロックの左上隣接サンプル(P0)は第1のサブブロックの左隣接サンプル(P8)でもよい。
【0118】
様々な実施例では、符号化されている現在ブロックについて利用可能なイントラ予測モード又はモード選択肢は、複数のイントラ予測モードセットに分割されてもよい。各セットにモードセットインデックスを割り当ててもよい。各セットは、複数のイントラモード予測モードを含んでもよい。利用可能なイントラ予測モードが分割されて順序付けられ、モードセットのそれぞれにおいてイントラ予測モードが順序付けられる方式は、ブロック間のイントラ予測モードの間の相関関係に基づいて、その隣接ブロックによって使用されるイントラ予測モードに少なくとも部分的に従って決定されてもよい。隣接ブロックによって使用されるイントラ予測モードは、「参照イントラ予測モード」又は「参照モード」と呼ばれてもよい。特定のユニットについてのイントラ予測モードが決定されて選択されてもよい。イントラ予測モードの選択は信号伝達されてもよい。まず、選択されたイントラ予測モードを含むイントラ予測モードセットのモードセットインデックスを示すために、モードセットインデックスが信号伝達されてもよい。次に、モードインデックス(セット内のモード位置インデックスとも呼ばれる)は、モードセット内で選択されたイントラ予測モードのインデックスを示すために信号伝達されてもよい。
【0119】
上記のイントラ予測モードの分割及び順序付けの一般的な実装と、以下の具体例とは、統計的効果と隣接相関関係を利用して、これらのモードを動的にインデックス化し、その結果、符号化ビデオビットストリームにおいてその選択を信号伝達するためのシンタックスの設計が、符号化効率を改善するように最適化できる。例えば、これらの実装は、信号伝達のためのシンタックスの数を低減することに役立ち、エントロピー符号化のより効率的なコンテキスト生成に役立ち得る。
【0120】
本開示に記載の様々な実施形態及び/又は実装は、別々に或いは任意の順序で組み合わせて使用されてもよい。さらに、これらの実施形態及び/又は実装の一部、全部又はいずれかの部分的若しくは全体的な組み合わせは、エンコーダ及び/又はデコーダの一部として実装されてもよく、ハードウェア及び/又はソフトウェアで実装されてもよい。例えば、専用の処理回路(例えば、1つ以上の集積回路)にハードコードされてもよい。他の一例では、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する1つ以上のプロセッサによって実装されてもよい。
【0121】
イントラモード符号化に関連するいくつかの問題/課題が存在し得る。例えば、イントラモード符号化のハードウェア実装、特に小さいブロックについてのイントラモードリストの構築プロセスは非常に困難になり得る。
【0122】
本開示は、ビデオ符号化及び/又は復号におけるイントラ予測モード符号化の様々な実施形態を記述し、上述の問題/課題の少なくとも1つに対処し、改善されたイントラモード符号化のための効率的なソフトウェア/ハードウェア実装を達成する。いくつかの実施形態では、効率的なソフトウェア/ハードウェアの実装のためにシンタックスを簡略化するために、小さいブロックについてのイントラ予測モードのための信号伝達及び/又は符号化が、所定のルールに従って実装されてもよい。
【0123】
様々な実施形態において、図15を参照すると、ビデオ復号におけるイントラ予測モード符号化のための方法1500は、命令を記憶するメモリと、メモリと通信するプロセッサとを含むデバイスによって、符号化ビデオビットストリームを受信するステップ1510と、デバイスによって、ブロックのサイズに基づく所定のルールに従って、符号化ビデオビットストリーム内のブロックのイントラモードのリストを構築するステップ1520と、デバイスによって、イントラモードのリストをブロックの複数のイントラモードセットに分割するステップ1530と、デバイスによって、符号化ビデオビットストリームから、複数のイントラモードセットからのイントラモードセットを示すセットインデックスを抽出するステップ1540と、デバイスによって、符号化ビデオビットストリームから、イントラモードセットからのイントラ予測モードを示すモードインデックスを抽出するステップ1550と、デバイスによって、セットインデックス及びモードインデックスに基づいて、ブロックのイントラ予測モードを決定するステップ1560と、デバイスによって、イントラ予測モードに基づいて符号化ビデオビットストリームを復号するステップ1570との一部又は全部を含んでもよい。
【0124】
本開示の様々な実施形態では、ブロック(例えば、限定されるものではないが、符号化ブロック、予測ブロック又は変換ブロック)のサイズは、ブロックの幅又は高さを示してもよい。ブロックの幅又は高さは、ピクセルの単位の整数値でもよい。本開示の様々な実施形態では、ブロックのサイズは、ブロックの面積サイズを示してもよい。ブロックの面積サイズは、ピクセルの単位でブロックの幅にブロックの高さを乗算して計算される整数値でもよい。本開示のいくつかの様々な実施形態では、ブロックのサイズは、ブロックの幅若しくは高さの最大値、ブロックの幅若しくは高さの最小値、又はブロックの縦横比を示してもよい。ブロックの縦横比は、ブロックの高さで除算した幅として計算されてもよく、或いは、ブロックの幅で除算した高さとして計算されてもよい。
【0125】
いくつかの実装では、イントラモードのモードタイプは、方向性モード、非方向性モード、スムーズモード(例えば、smooth、smooth_v、smooth_h)、DCモード、PAETHモード、及び/又は所与の予測方向に従って予測サンプルを生成するモードのうち少なくとも1つを含んでもよい。他のいくつかの実装では、緩やかな分類において、方向性モードは、スムーズ(smooth、smooth_v、smooth_h)、DC、又はPAETHモードでない任意のモードと、所与の方向に従って予測サンプルを生成するモードとを広く含んでもよい。他のいくつかの実装では、非方向性モードは、スムーズモード(例えば、smooth、smooth_v、smooth_h)、DCモード、PAETHモード、及びluma-for-chromaモードを含んでもよい。他のいくつかの実装では、緩やかな分類において、非方向性モードは、方向性モードではない任意のモードを広く含んでもよい。
【0126】
いくつかの実装では、現在ブロックのための利用可能なイントラ予測モードは、複数のイントラ予測モードセットに分割/分離されてもよい。現在ブロックのイントラ予測モードを取得するために、まず、現在ブロックのイントラ予測モードのモードセットインデックスを示すためにモードセットインデックスが信号伝達されてもよく、次に、モードセット内のイントラ予測モードのインデックスを示すためにモードインデックスが信号伝達されてもよい。
【0127】
ここで、本開示の様々な実施形態において、「第1」のモードセットは、「1つ」のモードセットを示すだけでなく、最小のモードセットインデックスを有する「第1」のモードセットを示し、「第2」のモードセットは、「別の」モードセットを示すだけでなく、2番目に小さいモードセットインデックスを有する「第2」のモードセットを示し、以下同様である。例えば、イントラ予測モードセットの数はMで示されてもよく、モードセットインデックスは、例えば1~M又は0~M-1の範囲でもよい。モードセットインデックスが1~Mの範囲にある場合、「第1」のモードセットは、モードセットインデックスが1である「最初」のモードセットであり、「第2」のモードセットは、モードセットインデックスが2である「2番目」のモードセットであり、以下同様である。モードセットインデックスが0~M-1の範囲にある場合、「第1」のモードセットは、モードセットインデックスが0である「最初の」モードセットであり、「第2」のモードセットは、モードセットインデックスが1である「2番目」のモードセットであり、以下同様である。
【0128】
ここで、本開示の様々な実施形態において、「XYZが信号伝達される」ことは、XYZが符号化プロセス中に符号化ビットストリームに符号化されることを示してもよく、及び/又は、符号化ビットストリームがあるデバイスから別のデバイスに送信された後に、「XYZが信号伝達される」ことは、復号プロセス中にXYZが符号化ビットストリームから復号/抽出されることを示してもよい。
【0129】
ここで、本開示の様々な実施形態では、「ブロック」は、予測ブロック、符号化ブロック、変換ブロック又は符号化ユニット(CU)を示してもよい。
【0130】
ステップ1510を参照すると、デバイスは図5の電子デバイス(530)又は図8のビデオデコーダ(810)でもよい。いくつかの実装では、デバイスは図6のエンコーダ(620)内のデコーダ(633)でもよい。他の実装では、デバイスは、図5の電子デバイス(530)の一部、図8のビデオデコーダ(810)の一部、又は図6のエンコーダ(620)内のデコーダ(633)の一部でもよい。符号化ビデオビットストリームは、図8の符号化ビデオシーケンスでもよく、図6又は図7の中間符号化データでもよい。ブロックは符号化中のブロック又は符号化済みのブロックを示してもよい。
【0131】
ステップ1520を参照すると、デバイスは、ブロックのサイズに基づく所定のルールに従って、ブロックのイントラモードのリストを構築してもよい。ステップ1530を参照すると、デバイスは、イントラモードのリストをブロックの複数のイントラモードセットに分割してもよい。所定のルールは、所定のルールのセットの1つでもよく、ブロックのサイズに基づいて所定のルールのセットから選択されてもよい。
【0132】
いくつかの実装では、イントラモードリストは、現在ブロックについて所定のルールに基づいて構築される。イントラモードリストを構築した後に、イントラ予測モードは、イントラモードリスト内の対応するインデックスに従って、複数のイントラ予測モードセットに分割される。現在ブロックのイントラ予測モードを信号伝達するために、まず、現在ブロックのイントラ予測モードのモードセットインデックスを示すために、モードセットインデックスが信号伝達されてもよく、次に、モードセット内のイントラ予測モードのインデックスを示すために、モードインデックスが信号伝達されてもよい。所定のルールは、異なるブロックサイズに対して異なってもよく、これはブロック内のサンプルの数によって示されてもよい。
【0133】
様々な実施形態では、ブロックのサイズが第1の閾値以上であることに応じて、イントラモードのリストは、リストの先頭にある第1のサブリストを含み、第1のサブリストは全ての非方向性イントラ予測モードを含む。例えば、イントラモードのリストが複数のイントラモードセットに分割される場合、非方向性イントラ予測モードがリストの先頭にあるので、非方向性イントラ予測モードは第1のイントラモードセットに分割されてもよい。いくつかの実装では、非方向性モードはスムーズモード(例えば、smooth、smooth_v、smooth_h)、DCモード、PAETHモード及びluma-for-chromaモードを含んでもよい。他のいくつかの実装では、緩やかな分類において、非方向性モードは、方向性モードではない任意のモードを広く含んでもよい。
【0134】
いくつかの実装では、ブロックサイズが第1の閾値(TH1)以上であるブロックについて、まず、全ての非方向性モードがモードリストに追加される。次に、イントラ予測モードを導出するために、隣接ブロックの方向性イントラ予測モードにオフセットが追加され、、導出されたイントラ予測モードがイントラモードリストに追加される。最後に、全ての導出されたイントラ予測モードを追加した後に、イントラ予測モードセットがまだ一杯になっていない場合、イントラモードリストの残りの位置を埋めるためにデフォルトモードが使用される。例えば、第1の閾値は8×8である。別の例では、第1の閾値はサンプル数で32である。
【0135】
いくつかの他の実装では、隣接ブロックが方向性イントラ予測モードを使用することに応じて、イントラモードのリストは、リスト内の第1のサブリストの次にある第2のサブリストを含み、第2のサブリストは、隣接ブロックの方向性イントラ予測モードに基づく複数の導出されたイントラ予測モードを含む。例えば、イントラモードのリストが複数のイントラモードセットに分割される場合、複数の導出されたイントラ予測モードはリストの先頭から非方向性イントラ予測モードのすぐ次にあるので、隣接ブロックの方向性イントラ予測モードに基づく複数の導出されたイントラ予測モードは、第1のイントラモードセット又は第2のイントラモードセットのいずれかに分割される可能性が高い。いくつかの実装では、現在ブロックの隣接ブロックは、現在ブロックの上(上部)ブロック、現在ブロックの左ブロック、又は現在ブロックの上(上部)ブロックと左ブロックとの双方を含んでもよい。
【0136】
いくつかの他の実装では、複数の導出されたイントラ予測モードは、[0,-1,+1,-2,+2,-3,+3,-4,+4]のオフセットを隣接ブロックの方向性イントラ予測モードに追加することによって、9つの方向性イントラ予測モードを含む。例えば、隣接ブロックの方向性イントラ予測モードが特定の方向角度(x°)を有し、方向角度のステップサイズが3°である場合、複数の導出されたイントラ予測モードは、x、x±3、x±6、x±9及びx±12°の方向角度を有する9つの方向性イントラ予測モードを含んでもよい。
【0137】
別の例では、現在ブロックのための利用可能なイントラ予測モードは、5つの非方向性モードと56個の方向性モードとを含む61個である。現在ブロックの隣接ブロックが1つ以上の方向性イントラ予測モードで符号化されている場合、まず、5つの非方向性モードがモードリストに追加され、次に、[0,-1,+1,-2,+2,-3,+3,-4,+4]のオフセットを隣接ブロックの方向性モードのそれぞれに追加することによって、9つの方向性イントラ予測モードが導出される。隣接ブロックに方向性モードが存在しない場合、第2のステップはスキップされてもよい。例えば、1つのみの隣接ボックスが1つの方向性イントラ予測モードで符号化されている場合、9つの方向性イントラ予測モードが導出されてもよく、その結果、14(=9+5)個のモードがモードリストに追加され、次いで、デフォルトモードがモードリストに追加される。別の例では、2つの隣接ブロックが2つの方向性イントラ予測モードで符号化されている場合、18(=9*2)個の方向性イントラ予測モードが導出されてもよく、その結果、23(=18+5)個のモードがモードリストに追加され、次いで、デフォルトモードがモードリストに追加される。いくつかの状況で、2つの隣接ブロックが2つの方向性イントラ予測モードで符号化されている場合、2組の9つの導出された方向性イントラ予測モードの間のいずれかの重複を除去した後で、18個より少ない方向性イントラ予測モードが導出されてもよい。極端な状況では、2つの隣接ブロックが2つの同じ方向性イントラ予測モードで符号化されている場合、同じ2組の9つの導出された方向性イントラ予測モードの間の重複を除去した後に、9つの方向性イントラ予測モードのみが導出されてもよい。
【0138】
いくつかの他の実装では、イントラモードのリストは、リスト内の第2のサブリストの次にある第3のサブリストを含み、第3のサブリストはデフォルトイントラ予測モードを含む。いくつかの他の実装では、デフォルトイントラ予測モードは、ゼロのデルタ角を有する少なくとも1つの公称方向性イントラ予測モードを含む。例えば、デフォルトイントラ予測モードは、隣接ブロックの方向性イントラ予測モードに基づいて、上記の導出されたイントラ予測モードにはまだ含まれていない、ゼロのデルタ角を有する全ての他の公称方向性イントラ予測モードを含んでもよい。
【0139】
様々な実施形態では、ブロックのサイズが第1の閾値より小さいことに応じて、イントラモードのリストは、リストの先頭にある第1のサブリストを含み、第1のサブリストは全ての非方向性イントラ予測モードを含む。いくつかの実装では、隣接ブロックが方向性イントラ予測モードを使用することに応じて、イントラモードのリストは、リスト内の第1のサブリストの次にある第2のサブリストを含み、第2のサブリストは、隣接ブロックの全ての方向性イントラ予測モードを含む。いくつかの他の実装では、イントラモードのリストは、リスト内の第2のサブリストの次にある第3のサブリストを含み、第3のサブリストはデフォルトイントラ予測モードを含む。いくつかの他の実装では、隣接ブロックの全ての方向性イントラ予測モードの数が1より大きいことに応じて、イントラモードのリスト内の隣接ブロックの方向性イントラ予測モードは、小さい方から大きい方への角度の順序を有する。
【0140】
いくつかの実装では、ブロックサイズが第1の閾値TH1より小さいブロックについて、まず、全ての非方向性モードがモードリストに追加され、次に、隣接ブロックの方向性イントラ予測モードがイントラモードリストに追加され、次いで、イントラモードリストの残りの位置を埋めるためにデフォルトモードが使用される。一例では、第1の閾値(TH1)はブロックサイズ8×8に設定される。別の例では、隣接ブロックに2つの方向性イントラ予測モードが存在する場合、より小さい角度を有する方向性モードが最初にモードリストに追加される。例えば、垂直モードは90°であり、水平モードは180°であり、垂直モードの角度は水平モードの角度より小さいため、垂直モードが最初にモードリストに追加される。
【0141】
様々な実施形態では、ブロックのサイズが第1の閾値よりも小さいことに応じて、イントラモードのリストは、所定のデフォルトイントラ予測モードを含む。いくつかの実装では、イントラモードのリスト内の所定のデフォルトイントラ予測モードは、第1に全ての非方向性イントラ予測モード、第2にゼロのデルタ角を有する方向性イントラ予測モード、第3にステップサイズの+2倍又は2倍のデルタ角を有する方向性イントラ予測モード、第4にステップサイズの+1倍又は1倍のデルタ角を有する方向性イントラ予測モード、及び/又は、第5にステップサイズの+3倍又は3倍のデルタ角を有する方向性イントラ予測モードの順序を有する。いくつかの実装では、ステップサイズは3°のデフォルト値でもよい。
【0142】
いくつかの実装では、ブロックサイズが閾値(TH1)より小さいブロックについて、所定のデフォルトモードがイントラモードリスト内の全ての位置を埋めるために使用される。例えば、所定のデフォルトモードは以下に記載されるものでもよい。第1に全ての非方向性モードがモードリストに追加され、第2に0に等しいデルタ角を有する方向性モードがモードリストに追加され、第3に2及び-2に等しいデルタ角を有する方向性モードがモードリストに追加され、第4に1及び-1に等しいデルタ角を有する方向性モードがモードリストに追加され、及び/又は、第5に3及び-3に等しいデルタ角を有する方向性モードがモードリストに追加される。
【0143】
様々な実施形態では、ブロックのサイズが第1の閾値より小さいことに応じて、セットインデックスによって示されるイントラモードセットはN個のイントラモードセットに属し、N個のイントラモードセットは複数のイントラモードセットの先頭にあり、Nは正の整数である。
【0144】
いくつかの実装では、閾値(TH1)より小さいブロックについて、現在ブロックについて最初のN個のイントラモードセットのみが許可され信号伝達される。Nは正の整数である。一例では、Nは1に設定され、現在ブロックについて最初のイントラモードセットのみが許可され信号伝達されることを示す。別の例では、Nは2に設定され、現在ブロックについて最初のイントラモードセット及び2番目のイントラモードセットのみが許可され信号伝達されることを示す。
【0145】
本開示の実施形態は個別に使用されてもよく、或いは、任意の順序で組み合わされてもよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマブロック又はクロマブロックに適用されてもよく、クロマブロックでは、実施形態は1つより多くの色成分に個別に適用されてもよく、或いは、1つより多くの色成分に一緒に適用されてもよい。
【0146】
本開示において、様々な実施形態における任意のステップ又は動作が必要に応じて任意の量又は任意の順序で組み合わされてもよい。本開示において、様々な実施形態における2つ以上のステップ又は動作が並行して実行されてもよい。
【0147】
上述の技術は、コンピュータ読み取り可能命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されることができる。例えば、図17は、開示された主題の特定の実施形態を実施するのに好適なコンピュータシステム(2600)を示す。
【0148】
コンピュータソフトウェアは、任意の好適な機械コード又はコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、又は同様の機構の対象とされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に、又はインタープリット、マイクロコード実行等を通じて実行可能な命令を含むコードを作成することができる。
【0149】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はそのコンポーネント上で実行されることができる。
【0150】
コンピュータシステム(2600)について図17に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータシステム(2600)の例示的実施形態において示されているコンポーネントの任意の1つ又は組み合わせに関する何らかの依存性又は要件を有するものとして解釈されるべきではない。
【0151】
コンピュータシステム(2600)は、特定のヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャー)、嗅覚入力(図示せず)を通じた一又は複数の人間ユーザによる入力に応答することができる。また、ヒューマンインターフェースデバイスは、音声(例えば、発話、音楽、周囲の音)、画像(例えば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しない特定のメディアを捕捉するために使用できる。
【0152】
入力ヒューマンインターフェースデバイスは、キーボード(2601)、マウス(2602)、トラックパッド(2603)、タッチスクリーン(2610)、データグローブ(図示せず)、ジョイスティック(2605)、マイクロフォン(2606)、スキャナ(2607)、カメラ(2608)の1つ以上(それぞれの一つしか図示していない)を含んでいてもよい。
【0153】
コンピュータシステム(2600)はまた、特定のヒューマンインターフェース出力デバイスを含んでいてもよい。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び臭い/味を通じて、一又は複数の人間ユーザの感覚を刺激するものであってもよい。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2610)、データグローブ(図示せず)、又はジョイスティック(2605)による触覚フィードバック;ただし、入力デバイスのはたらきをしない触覚フィードバックデバイスもあり得る)、音声出力デバイス(例えば、スピーカー(2609)、ヘッドフォン(図示せず))、視覚出力デバイス(例えば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2610);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力又は立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイ及び煙タンク(図示せず))、及びプリンタ(図示せず)を含んでいてもよい。
【0154】
コンピュータシステム(2600)はまた、人間がアクセス可能な記憶デバイス及び関連する媒体、例えば、CD/DVD又は類似の媒体(2621)とともにCD/DVD ROM/RW(2620)を含む光学式媒体、サムドライブ(2622)、取り外し可能なハードドライブ又はソリッドステートドライブ(2623)、テープ及びフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティドングルのような特化したROM/ASIC/PLDベースのデバイス(図示せず)等を含むことができる。
【0155】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0156】
コンピュータシステム(2600)はまた、1つ以上の通信ネットワーク(2655)へのインターフェース(2654)を含むことができる。ネットワークは、例えば、無線、有線、光学式であり得る。ネットワークは、さらに、ローカル、広域、都市圏、車載及び工業用、リアルタイム、遅延耐性等であり得る。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線又は無線の広域デジタルネットワーク、CAN Busを含む車載及び工業用等を含む。特定のネットワークは、普通、特定の汎用データポート又は周辺バス(2649)(例えば、コンピュータシステム(2600)のUSBポート等)に取り付けられる外部ネットワークインターフェースアダプターを必要とする。他は、普通、後述するようなシステムバスへの取り付けによって、コンピュータシステム(2600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2600)は、他のエンティティと通信することができる。このような通信は、一方向性、受信のみ(例えば、放送テレビ)、一方向性送信専用(例えば、特定のCANbusデバイスへのCANbus)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性であってもよい。上述のようなそれらのネットワーク及びネットワークインターフェースのそれぞれで、特定のプロトコル及びプロトコルスタックが使用できる。
【0157】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2600)のコア(2640)に取り付けることができる。
【0158】
コア(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等を含む。
【0159】
CPU(2641)、GPU(2642)、FPGA(2643)、及びアクセラレータ(2644)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を、実行することができる。そのコンピュータコードは、ROM(2645)又はRAM(2646)に記憶できる。一時的データも、RAM(2646)に記憶されることができ、一方、持続的データは、例えば、内部大容量記憶デバイス(2647)に記憶されることができる。1つ以上のCPU(2641)、GPU(2642)、大容量記憶デバイス(2647)、ROM(2645)、RAM(2646)等と密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶及び取り出しを可能にすることができる。
【0160】
コンピュータ読み取り可能媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又は、コンピュータソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0161】
非限定的な例として、アーキテクチャ(2600)、具体的にはコア(2640)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。このようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶並びにコア内部の大容量記憶デバイス(2647)又はROM(2645)のような非一時的な性質のコア(2640)の特定の記憶に関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア(2640)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、RAM(2646)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定の特定部分を、コア(2640)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることができる。追加的又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(2644))内に配線された、又は他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、又はそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(例えば集積回路(IC))、実行のための論理を具現する回路、又はその双方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の好適な組み合わせを包含する。
【0162】
例示的な実施形態を参照して特定の発明について説明したが、この説明は限定することを意図していない。本発明の例示的な実施形態及び更なる実施形態の様々な変更は、この説明から当業者に明らかになる。当業者は、本発明の真意及び範囲から逸脱することなく、本明細書に例示して説明した例示的な実施形態に対して、上記及び他の様々な変更を加えることができることを容易に認識する。したがって、添付の特許請求の範囲は、いずれかのこのような変更及び代替実施形態をカバーすると考えられる。図面における特定の比率は誇張されることがあり、他の比率は最小化されることがある。したがって、開示及び図面は限定的なものではなく例示的なものとみなされる。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図15
図16