(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-21
(45)【発行日】2024-01-04
(54)【発明の名称】最確モードの導出のための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/11 20140101AFI20231222BHJP
H04N 19/176 20140101ALI20231222BHJP
H04N 19/196 20140101ALI20231222BHJP
H04N 19/463 20140101ALI20231222BHJP
【FI】
H04N19/11
H04N19/176
H04N19/196
H04N19/463
(21)【出願番号】P 2021512371
(86)(22)【出願日】2019-07-05
(86)【国際出願番号】 US2019040726
(87)【国際公開番号】W WO2020014089
(87)【国際公開日】2020-01-16
【審査請求日】2020-11-04
【審判番号】
【審判請求日】2022-09-14
(32)【優先日】2018-07-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】リ,シアン
【合議体】
【審判長】畑中 高行
【審判官】川崎 優
【審判官】高橋 宣博
(56)【参考文献】
【文献】特表2014-517630(JP,A)
【文献】Jianle Chen, et al.、Further improvements to HMKTA-1.0、ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group(VCEG)、52nd Meeting:19-26 June 2015,Warsaw,Poland、Document VCEG-AZ07_v2、2015年6月発行、pp.1-8
【文献】大久保、鈴木、高村、中條、インプレス標準教科書シリーズ H.265/HEVC教科書、株式会社インプレスジャパン、2013年10月21日発行、pp.115-124
【文献】ITU-T TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU、H.265(04/2013)、SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video、High efficiency video coding,Recommendation ITU-T H.265,ITU-T,2013年4月発行,pp.102-104
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーダが実行するビデオ復号の方法であって、
イントラ予測モードでの符号化ブロックについて、候補リストを導出するステップであって、前記候補リストに、
複数のイントラ予測モードのうちの第1のイントラ予測モードとして、前記符号化ブロック
の左、上、左下、右上及び左上に隣接する
複数の隣接ブロックのイントラ予測モードに対応する第1の
セットの候補イントラ予測モード値(Mode
1)と、
第2の
セットの候補イントラ予測モード値(Mode
2)と、
第3の
セットの候補イントラ予測モード値(Mode
3)と
が含まれ、Mode
2とMode
3のいずれもが、
対応するMode
1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは
2
N0
+2
N1
に等し
く、N0はN1と異なり、前記候補リストに含まれる候補イントラ予測モードの数が所定の数未満である場合、前記候補リストにデフォルトモードが更に含まれる、ステップと、
前記導出された候補リストに従って、前記符号化ブロックのイントラ予測モード値を決定するステップと
を含み、
Mode
2は((Mode
1+
2
N0
+2
N1
-A
0
-d)%
(2
N0
+2
N1
))+
A
0
に従って決定され、Mode
3は((Mode
1
+2
N0
+2
N1
-A
0
+d)%
(2
N0
+2
N1
))+
A
0
に従って決定され、
dは正の整数であり、角度イントラモードの総数は
Kであり、角度モードインデックスはA
0からA
K-1の範囲である、方法。
【請求項2】
少なくとも1つの処理回路を含むビデオデコーダであって、
前記少なくとも1つの処理回路が請求項
1に記載の方法を実行するように構成されるビデオデコーダ。
【請求項3】
コンピュータに請求項
1に記載の方法を実行させるためのコンピュータプログラム。
【請求項4】
エンコーダが実行するビデオ符号化の方法であって、
イントラ予測モードでの符号化ブロックについて、候補リストを導出するステップであって、前記候補リストに、
複数のイントラ予測モードのうちの第1のイントラ予測モードとして、前記符号化ブロックの左、上、左下、右上及び左上に隣接する複数の隣接ブロックのイントラ予測モードに対応する第1のセットの候補イントラ予測モード値(Mode
1
)と、
第2のセットの候補イントラ予測モード値(Mode
2
)と、
第3のセットの候補イントラ予測モード値(Mode
3
)と
が含まれ、Mode
2
とMode
3
のいずれもが、対応するMode
1
からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2
N0
+2
N1
に等しく、N0はN1と異なり、前記候補リストに含まれる候補イントラ予測モードの数が所定の数未満である場合、前記候補リストにデフォルトモードが更に含まれる、ステップと、
前記導出された候補リストに従って、前記符号化ブロックのイントラ予測モード値を決定するステップと
を含み、
Mode
2
は((Mode
1
+2
N0
+2
N1
-A
0
-d)%(2
N0
+2
N1
))+A
0
に従って決定され、Mode
3
は((Mode
1
+2
N0
+2
N1
-A
0
+d)%(2
N0
+2
N1
))+
A
0
に従って決定され、
dは正の整数であり、角度イントラモードの総数はKであり、角度モードインデックスはA
0
からA
K-1
の範囲である、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2018年9月28日に出願された米国特許出願第16/147,544号「METHODS AND APPARATUS FOR MOST PROBABLE MODE DERIVATION」の優先権の利益を主張する。当該米国特許出願は、2018年7月13日に出願された米国仮出願第62/698,014号「METHODS AND APPARATUS FOR MOST PROBABLE MODE DERIVATION」の優先権の利益を主張する。これらの出願の全内容が参照によって本明細書に組み込まれる。
【0002】
[技術分野]
本開示は、概してビデオ符号化に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の背景を一般的に提示するためのものである。本願の発明者の研究は、当該研究がこの背景技術の段落に記載されている範囲において、また、出願時に従来技術として特に適することのない説明の側面も、本開示に対する従来技術として明示的にも暗示的にも認められるものではない。
【0004】
ビデオ符号化及び復号は、動き補償によるインターピクチャ予測を使用して実行できる。非圧縮ディジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャ又は60Hzの固定又は可変のピクチャレート(非公式には、フレームレートとしても知られている)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートの1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600Gバイトを超える記憶空間を必要とする。
【0005】
ビデオ符号化及び復号の1つの目的は、圧縮を通じて入力ビデオ信号の冗長性を低減できることである。圧縮は、場合によっては2桁以上も上記の帯域幅又は記憶空間の要件を低減するのに役立つことができる。可逆圧縮及び不可逆圧縮の双方並びにこれらの組み合わせを使用することができる。可逆圧縮とは、元の信号の正確なコピーが圧縮された元の信号から復元できる技術を示す。不可逆圧縮を使用する場合、復元された信号は、元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的のアプリケーションにとって有用にするほど十分に小さい。ビデオの場合、不可逆圧縮が広く使用されている。許容される歪みの量はアプリケーションに依存する。例えば、特定の消費者のストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する可能性がある。達成可能な圧縮比は、より高い許容可能な歪み/許容される歪みがより高い圧縮比をもたらすことができるということを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化及びエントロピー符号化を含むいくつかの広範なカテゴリからの技術を利用できる。
【0007】
ビデオコーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、前に復元された参照ピクチャからのサンプル又は他のデータを参照することなく表される。いくつかのビデオコーデックでは、ピクチャはサンプルのブロックに空間的に分割される。サンプルの全てのブロックがイントラモードにおいて符号化されている場合、当該ピクチャはイントラピクチャとすることができる。イントラピクチャと、独立デコーダリフレッシュピクチャ(independent decoder refresh picture)のようなその派生は、デコーダ状態をリセットするために使用でき、したがって、符号化ビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、或いは、静止画像として使用できる。イントラブロックのサンプルは変換を受けることができ、変換係数はエントロピー符号化の前に量子化できる。イントラ予測は、変換前のドメインにおけるサンプル値を最小化する技術とすることができる。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップサイズにおいて必要とされるビット数は少なくなる。
【0008】
例えば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかし、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接しており、復号順で先行しているデータのブロックの符号化/復号中に取得さられた周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。このような技術は、以下では「イントラ予測」技術と呼ばれる。少なくともいくつかの場合では、イントラ予測は復元中のカレントピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しない点に留意すべきである。
【0009】
多くの異なる形式のイントラ予測が存在し得る。1つより多くのこのような技術が所与のビデオ符号化技術において使用できる場合、使用中の技術は、イントラ予測モードで符号化できる。或る場合には、モードは、サブモード及び/又はパラメータを有することができ、これらは個別に符号化でき、或いは、モードコードワードに含められることができる。所与のモード/サブモード/パラメータの組み合わせに使用するコードワードは、イントラ予測を通じて符号化効率利得に影響を与える可能性があり、同様に、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術にも影響を与える可能性がある。
【0010】
特定のイントラ予測モードがH.264で導入され、H.265で改良され、JEM(joint exploration model)、VVC(versatile video coding)、BMS(benchmark set)のようなより新しい符号化技術で更に改良された。予測子ブロックは、既に利用可能なサンプルに属する隣接サンプル値を使用して形成できる。隣接サンプルのサンプル値は、或る方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームに符号化でき、或いは、それ自体が予測されることがある。
【0011】
ビデオ符号化技術が開発されるにつれて、可能な方向の数が増加している。H.264(2003年)では、9個の異なる方向が表現され得る。これはH.265(2013年)で33に増加し、本開示の時点でのJEM/VVC/BMSは、65個の方向までサポートできる。最も可能性の高い方向を識別するための実験が行われており、エントロピー符号化における特定の技術は、より可能性の低い方向に対して特定のペナルティを受け入れることで、少数のビットで可能性のある方向を表すために使用されている。さらに、方向自体は、場合によっては既に復号された隣接ブロックで使用される隣接方向から予測できる。
【0012】
方向を表す符号化ビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオ符号化技術によって異なる可能性があり、例えば、コードワードに対するイントラ予測モードへの予測方向の単純な直接のマッピングから、最確モード及び同様の技術を含む複雑な適応方式までの範囲にわたる可能性がある。当業者は、これらの技術に容易に精通する。しかし、全ての場合に、映像コンテンツにおいて、特定の他の方向よりも統計的に発生しにくい特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるので、良好に動作するビデオ符号化技術において、これらのより可能性の低い方向は、より可能性の高い方向よりもより多くのビット数によって表される。
【0013】
VVCは、HEVCを更に改良した次世代のビデオ符号化標準である。HEVCのイントラ予測モードは33個の方向モードを使用するが、VVCのイントラ予測モードは圧縮を改善するために65個の方向モードを使用する。しかし、従来のHEVCイントラ予測モード処理は、VVCに含まれる更なる方向モードを処理できない。
【発明の概要】
【0014】
本開示の一実施形態によれば、デコーダが実行するビデオ復号の方法が提供され、当該方法は、イントラ予測モードでの符号化ブロックについて、候補リストを導出するステップであって、前記候補リストに、複数のイントラ予測モードのうちの第1のイントラ予測モードとして、前記符号化ブロックに隣接する隣接ブロックのイントラ予測モードに対応する第1の候補イントラ予測モード値(Mode1)と、第2の候補イントラ予測モード値(Mode2)と、第3の候補イントラ予測モード値(Mode3)とが含まれ、Mode2とMode3のいずれもが、Mode1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2の累乗で、かつ32に等しくない、ステップを含む。当該方法は、導出された候補リストに従って、符号化ブロックのイントラ予測モード値を決定するステップを更に含む。
【0015】
本開示の一実施形態によれば、ビデオデコーダが提供され、当該ビデオデコーダは、イントラ予測モードでの符号化ブロックについて、候補リストを導出するように構成された処理回路であって、前記候補リストに、複数のイントラ予測モードのうちの第1のイントラ予測モードとして、前記符号化ブロックに隣接する隣接ブロックのイントラ予測モードに対応する第1の候補イントラ予測モード値(Mode1)と、第2の候補イントラ予測モード値(Mode2)と、第3の候補イントラ予測モード値(Mode3)とが含まれ、Mode2とMode3のいずれもが、Mode1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2の累乗で、かつ32に等しくない、処理回路を含む。処理回路は、導出された候補リストに従って、符号化ブロックのイントラ予測モード値を決定するように更に構成される。
【0016】
本開示の一実施形態によれば、命令を記憶した非一時的なコンピュータ読み取り可能媒体が提供され、当該命令は、ビデオ復号装置内のプロセッサにより実行されると、プロセッサに、イントラ予測モードでの符号化ブロックについて、候補リストを導出するステップであって、前記候補リストに、複数のイントラ予測モードのうちの第1のイントラ予測モードとして、前記符号化ブロックに隣接する隣接ブロックのイントラ予測モードに対応する第1の候補イントラ予測モード値(Mode1)と、第2の候補イントラ予測モード値(Mode2)と、第3の候補イントラ予測モード値(Mode3)とが含まれ、Mode2とMode3のいずれもが、Mode1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2の累乗で、かつ32に等しくない、ステップを含む方法を実行させる。当該方法は、導出された候補リストに従って、符号化ブロックのイントラ予測モード値を決定するステップを更に含む。
【図面の簡単な説明】
【0017】
開示の対象物の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
【
図1】一実施形態による通信システム(100)の簡略化したブロック図の概略図である。
【
図2】一実施形態による通信システム(200)の簡略化したブロック図の概略図である。
【
図3】一実施形態によるデコーダの簡略化したブロック図の概略図である。
【
図4】一実施形態によるエンコーダの簡略化したブロック図の概略図である。
【
図5】他の実施形態によるエンコーダのブロック図を示す。
【
図6】他の実施形態によるデコーダのブロック図を示す。
【
図7】例示的なイントラ予測モードの概略図である。
【
図8】35個の予測モードについての様々な角度モードを示す。
【
図9】67個の予測モードについての様々な角度モードを示す。
【
図10】カレントブロック及びその周囲の隣接の概略図である。
【
図11】エンコーダ又はデコーダによって実行される処理の一実施形態を示す。
【
図12】エンコーダ又はデコーダによって実行される処理の一実施形態を示す。
【
図13】エンコーダ又はデコーダによって実行される処理の一実施形態を示す。
【
図14】カレントブロック及び隣接ブロックの概略図である。
【
図15】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0018】
図1は、本開示の一実施形態による通信システム(100)の簡略化したブロック図を示す。通信システム(100)は、例えば、ネットワーク(150)を介して互いに通信できる複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された第1の対の端末デバイス(110)及び(120)を含む。
図1の例では、第1の対の端末デバイス(110)及び(120)は、データの一方向伝送を実行する。例えば、端末デバイス(110)は、ネットワーク(150)を介して他の端末デバイス(120)に送信するために、ビデオデータ(例えば、端末デバイス(110)によってキャプチャされたビデオピクチャのストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化ビデオビットストリームの形式で送信されてもよい。端末デバイス(120)は、ネットワーク(150)から符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディア提供アプリケーション等において一般的でもよい。
【0019】
他の例では、通信システム(100)は、例えば、テレビ会議中に発生し得る符号化ビデオデータの双方向伝送を実行する第2の対の端末デバイス(130)及び(140)を含む。データの双方向伝送のために、一例では、端末デバイス(130)及び(140)の各端末デバイスは、ネットワーク(150)を介して端末デバイス(130)及び(140)の他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)を符号化してもよい。また、端末デバイス(130)及び(140)の各端末デバイスは、端末デバイス(130)及び(140)の他方の端末デバイスによって送信された符号化ビデオデータを受信してもよく、符号化ビデオデータを復号してビデオピクチャを復元してもよく、復元されたビデオデータに従って、アクセス可能な表示デバイスにビデオピクチャを表示してもよい。
【0020】
図1の例では、端末デバイス(110)、(120)、(130)及び(140)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されることがあるが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ及び/又は専用のテレビ会議機器に適用がある。ネットワーク(150)は、例えば、有線(配線接続)及び/又は無線通信ネットワークを含む、端末デバイス(110)、(120)、(130)及び(140)の間で符号化ビデオデータを伝達するいずれかの数のネットワークを表す。通信ネットワーク(150)は、回線交換チャネル及び/又はパケット交換チャネル内のデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。本説明の目的では、ネットワーク(150)のアーキテクチャ及びトポロジは、本明細書において以下に説明しない限り、本開示の動作には重要ではない。
【0021】
図2は、開示の対象物のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示の対象物は、例えば、テレビ会議、デジタルTV、デジタルメディア(CD、DVD、メモリスティック等を含む)上の圧縮ビデオの記憶等を含む、他のビデオ可能なアプリケーションにも同様に適用可能である。
【0022】
ストリーミングシステムはキャプチャサブシステム(213)を含んでもよく、当該キャプチャサブシステム(213)は、例えば、非圧縮のビデオピクチャのストリーム(202)を生成するビデオソース(201)(例えば、デジタルカメラ)を含んでもよい。一例では、ビデオピクチャのストリーム(202)は、デジタルカメラによって撮影されたサンプルを含む。符号化ビデオデータ(204)(又は符号化ビデオビットストリーム)と比較したときに高いデータ量であることを強調する太線として描かれるビデオピクチャのストリーム(202)は、ビデオソース(201)に結合されたビデオエンコーダ(203)を含む電子デバイス(220)によって処理されてもよい。ビデオエンコーダ(203)は、以下により詳細に説明するように、開示の対象物の態様を可能にするため或いは実装するために、ハードウェア、ソフトウェア又はこれらの組み合わせを含んでもよい。ビデオピクチャのストリーム(202)と比較したときにより低いデータ量であることを強調するために細線として描かれる符号化ビデオデータ(204)(又は符号化ビデオビットストリーム(204))は、将来の使用のためにストリーミングサーバ(205)に記憶されてもよい。
図2におけるクライアントサブシステム(206)及び(208)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして符号化ビデオデータ(204)のコピー(207)及び(209)を取得してもよい。クライアントサブシステム(206)は、例えば、電子デバイス(230)内にビデオデコーダ(210)を含んでもよい。ビデオデコーダ(210)は、符号化ビデオデータの入力コピー(207)を復号し、ディスプレイ(212)(例えば、表示画面)又は他のレンダリングデバイス(図示せず)上にレンダリングできるビデオピクチャの出力ストリーム(211)を生成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(204)、(207)及び(209)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮標準に従って符号化されてもよい。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化標準は、VVC(Versatile Video Coding)として非公式に知られている。開示の対象物は、VVCの背景において使用されてもよい。VVC標準は、「Versatile Video Coding (Draft 2)」、JVET-K1001、2018年7月に記載されており、その全内容は参照により本明細書に組み込まれる。
【0023】
電子デバイス(220)及び(230)は、他の構成要素(図示せず)を含んでもよい点に留意すべきである。例えば、電子デバイス(220)は、ビデオデコーダ(図示せず)を含んでもよく、また、電子デバイス(230)は、ビデオエンコーダ(図示せず)を含んでもよい。
【0024】
図3は、本開示の一実施形態によるビデオデコーダ(310)のブロック図を示す。ビデオデコーダ(310)は、電子デバイス(330)に含まれてもよい。電子デバイス(330)は、受信機(331)(例えば、受信回路)を含んでもよい。
図2の例では、ビデオデコーダ(210)の代わりにビデオデコーダ(310)が使用されてもよい。
【0025】
受信機(331)は、ビデオデコーダ(310)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよく、同一又は他の実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスとは独立している。符号化ビデオシーケンスは、チャネル(301)から受信されてもよく、当該チャネルは、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(331)は、符号化ビデオデータを、他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム)と共に受信してもよく、これらは、それぞれの使用エンティティ(図示せず)に転送されてもよい。受信機(331)は、符号化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ(315)は、受信機(331)とエントロピーデコーダ/パーサ(320)(以下、「パーサ(320)」という)との間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(315)はビデオデコーダ(310)の一部である。他の場合には、ビデオデコーダ(310)の外側にあってもよい(図示せず)。更に他の場合には、例えば、ネットワークジッタを防止するために、ビデオデコーダ(310)の外側にバッファメモリ(図示せず)が存在してもよく、加えて、例えば、再生タイミングに対処するために、ビデオデコーダ(310)の内側に他のバッファメモリ(315)が存在してもよい。受信機(331)が、十分な帯域幅及び制御可能性を有する記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合、バッファメモリ(315)は必要なくてもよく或いは小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用については、バッファメモリ(315)が必要とされてもよく、比較的大きくすることができ、有利には適応的なサイズとすることができ、ビデオデコーダ(310)の外側のオペレーティングシステム又は同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0026】
ビデオデコーダ(310)は、符号化ビデオシーケンスからシンボル(321)を復元するためのパーサ(320)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(310)の動作を管理するために使用される情報を含み、レンダリングデバイス(312)(例えば、表示画面)のようなレンダリングデバイスを制御するための情報を潜在的に含む。当該レンダリングデバイス(312)は、
図3に示されているように、電子デバイス(330)の一体的な部分ではないが、電子デバイス(330)に結合されてもよい。レンダリングデバイスの制御情報は、補足エンハンスメント情報(SEI, Supplemental Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(VUI, Video Usability Information)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(320)は、受信した符号化ビデオシーケンスを解析/エントロピー復号してもよい。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従ってもよく、可変長符号化、ハフマン符号化、コンテキスト感度を伴う或いは伴わない算術符号化等を含む様々な原理に従ってもよい。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうち少なくとも1つについてのサブグループパラメータのセットを抽出してもよい。サブグループは、グループオブピクチャ(GOP, Group of Picture)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU, Coding Unit)、ブロック、変換ユニット(TU, Transformation Unit)、予測ユニット(PU, Prediction Unit)等を含んでもよい。また、パーサ(320)は、符号化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル等のような情報を抽出してもよい。
【0027】
パーサ(320)は、シンボル(321)を生成するために、バッファメモリ(315)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行してもよい。
【0028】
シンボル(321)の復元には、符号化ビデオピクチャ又はその部分のタイプ(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)及び他の要因に依存して、複数の異なるユニットが関与してもよい。どのユニットがどのように関与するかは、パーサ(320)によって符号化ビデオシーケンスから解析されたサブグループ制御情報によって制御されてもよい。パーサ(320)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0029】
上記の機能ブロックの他に、ビデオデコーダ(310)は、概念的に、以下に説明するような複数の機能ユニットに細分されてもよい。商用的な制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されてもよい。しかし、開示の対象物を説明する目的で、以下の機能ユニットに概念的に細分することが適切である。
【0030】
第1のユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、パーサ(320)からシンボル(321)として、制御情報(どの変換を使用するべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む)と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)に入力できるサンプル値を含むブロックを出力してもよい。
【0031】
場合によっては、スケーラ/逆変換(351)の出力サンプルは、イントラ符号化ブロックに関連してもよく、すなわち、前に復元されたピクチャからの予測情報を使用していないが、カレントピクチャの前に復元された部分からの予測情報を使用できるブロックに関連してもよい。このような予測情報は、イントラピクチャ予測ユニット(352)によって提供されてもよい。場合によっては、イントラピクチャ予測ユニット(352)は、カレントピクチャバッファ(358)から取り出された周囲の既に復元された情報を使用して、復元中のブロックの同じサイズ及び形状のブロックを生成する。カレントピクチャバッファ(358)は、例えば、部分的に復元されたカレントピクチャ及び/又は完全に復元されたカレントピクチャをバッファする。場合によっては、アグリゲータ(355)は、サンプル毎に、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供された出力サンプル情報に追加する。
【0032】
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、インター符号化されて潜在的に動き補償されたブロックに関連してもよい。このような場合、動き補償予測ユニット(353)は、参照ピクチャメモリ(357)にアクセスして、予測に使用されるサンプルを取り出してもよい。ブロックに関連するシンボル(321)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によってスケーラ/逆変換ユニット(351)の出力(この場合には、残差サンプル又は残差信号と呼ばれる)に追加されてもよい。動き補償予測ユニット(353)に利用可能な、動き補償予測ユニット(353)が予測サンプルを取り出す参照ピクチャメモリ(357)内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有することができるシンボル(321)の形式で、動きベクトルによって制御されてもよい。また、動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(357)から取り出されるサンプル値の補間、動きベクトル予測メカニズム等を含んでもよい。
【0033】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)内の様々なループフィルタリング技術を受けてもよい。ビデオ圧縮技術はループ内フィルタ技術を含んでもよく、当該ループ内フィルタ技術は、符号化ビデオシーケンス(符号化ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(320)からシンボル(321)としてループフィルタユニット(356)に利用可能にされるが、符号化ピクチャ又は符号化ビデオシーケンスの(復号順に)前の部分の復号の間に取得されたメタ情報に応答する共に、前に復元されてループフィルタリングされたサンプル値にも応答してもよい。
【0034】
ループフィルタユニット(356)の出力はサンプルストリームでもよく、当該サンプルストリームは、レンダリングデバイス(312)に出力されると共に、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(357)に記憶されてもよい。
【0035】
特定の符号化ピクチャは、完全に復元されると、将来の予測のための参照ピクチャとして使用されてもよい。例えば、カレントピクチャに対応する符号化ピクチャが完全に復元され、符号化ピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、カレントピクチャバッファ(358)は参照ピクチャメモリ(357)の一部となってもよく、新たなカレントピクチャバッファが、後続の符号化ピクチャの復元を開始する前に再割り当てされてもよい。
【0036】
ビデオデコーダ(310)は、ITU-T Rec. H.265のような標準における所定のビデオ圧縮技術に従って復号動作を実行してもよい。符号化ビデオシーケンスがビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準に文書化されているプロファイルの双方に従うという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって指定されたシンタックスに適合してもよい。具体的には、プロファイルは、ビデオ圧縮技術又は標準で利用可能な全てのツールから特定のツールを、そのプロファイルで使用するのに利用可能な唯一のツールとして選択してもよい。また、コンプライアンスのために必要なことは、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることである。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大復元サンプルレート(例えば、毎秒当たりのメガサンプル単位で測定される)、最大参照ピクチャサイズ等を制限する。場合によっては、レベルによって設定される制限は、仮想参照デコーダ(HRD, Hypothetical Reference Decoder)仕様及び符号化ビデオシーケンスで伝達されるHRDバッファ管理についてのメタデータを通じて更に制限されてもよい。
【0037】
一実施形態では、受信機(331)は、符号化ビデオと共に更なる(冗長な)データを受信してもよい。更なるデータは、符号化ビデオシーケンスの一部として含まれてもよい。更なるデータは、データを適切に復号するために、及び/又は元のビデオデータをより正確に復元するために、ビデオデコーダ(310)によって使用されてもよい。更なるデータは、例えば、時間、空間又は信号雑音比(SNR, signal noise ratio)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形式でもよい。
【0038】
図4は、本開示の一実施形態によるビデオエンコーダ(303)のブロック図を示す。ビデオエンコーダ(303)は、電子デバイス(420)に含まれる。電子デバイス(420)は、送信機(440)(例えば、送信回路)を含む。
図2の例では、ビデオエンコーダ(203)の代わりにビデオエンコーダ(403)が使用されてもよい。
【0039】
ビデオエンコーダ(403)は、ビデオソース(401)(
図4の例では電子デバイス(420)の一部ではない)からビデオサンプルを受信してもよく、当該ビデオソース(401)は、ビデオエンコーダ(403)によって符号化されるべきビデオ画像をキャプチャしてもよい。他の例では、ビデオソース(401)は電子デバイス(420)の一部である。
【0040】
ビデオソース(401)は、デジタルビデオサンプルストリームの形式でビデオエンコーダ(403)によって符号化されるべきソースビデオシーケンスを提供してもよく、当該デジタルビデオサンプルストリームは、いずれかの適切なビット深度(例えば、8ビット、10ビット、12ビット等)、いずれかの色空間(例えば、BT.601 Y CrCB、RGB等)及びいずれかの適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)でもよい。メディア提供システムにおいて、ビデオソース(401)は、事前に準備されたビデオを記憶する記憶デバイスでもよい。テレビ会議システムでは、ビデオソース(401)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラでもよい。ビデオデータは、順に見たときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間配列として構成されてもよく、各画素は、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含んでもよい。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0041】
一実施形態によれば、ビデオエンコーダ(403)は、リアルタイムで或いはアプリケーションによって要求されるいずれかの他の時間制約下で、ソースビデオシーケンスのピクチャを、符号化ビデオシーケンス(443)に符号化及び圧縮してもよい。適切な符号化速度を実現することは、コントローラ(450)の1つの機能である。いくつかの実施形態では、コントローラ(450)は、以下に説明するように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラ(450)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値当)、ピクチャサイズ、グループオブピクチャ(GOP)のレイアウト、最大動きベクトル探索範囲等を含んでもよい。コントローラ(450)は、特定のシステム設計のために最適化されたビデオエンコーダ(403)に関連する他の適切な機能を有するように構成されてもよい。
【0042】
いくつかの実施形態では、ビデオエンコーダ(403)は、符号化ループで動作するように構成される。非常に簡略化した説明として、一例では、符号化ループは、ソースコーダ(430)(例えば、符号化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリームのようなシンボルを生成することを担う)と、ビデオエンコーダ(403)に埋め込まれた(ローカル)デコーダ(433)とを含んでもよい。デコーダ(433)は、(リモート)デコーダが生成するのと同様に(シンボルと符号化ビデオビットストリームとの間のいずれかの圧縮が、開示の対象物において検討されるビデオ圧縮技術において可逆であるように)、サンプルデータを生成するようにシンボルを復元する。復元されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号は、デコーダの位置(ローカル又はリモート)と独立したビット単位の正確な結果をもたらすので、参照ピクチャメモリ(434)内の内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期(例えば、チャネルエラーの理由で同期が維持できない場合の結果として生じるドリフトを含む)のこの基本原理は、いくつかの関連技術においても同様に使用される。
【0043】
「ローカル」デコーダ(433)の動作は、ビデオデコーダ(310)のような「リモート」デコーダと同じでもよく、これは、
図3に関連して上記において既に詳細に説明した。しかし、
図3を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(445)及びパーサ(320)による符号化ビデオシーケンスへのシンボルの符号化/復号が可逆になり得るので、バッファメモリ(315)及びパーサ(320)を含むビデオデコーダ(310)のエントロピー復号部分は、ローカルデコーダ(433)に完全には実装されなくてもよい。
【0044】
この時点で行うことができる考察は、デコーダ内に存在する解析/エントロピー復号を除く如何なるデコーダ技術も、必然的に対応するエンコーダ内に実質的に同一の機能形式で存在する必要があることである。このため、開示の対象物はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0045】
いくつかの例では、動作中に、ソースコーダ(430)は、動き補償予測符号化を実行してもよく、当該動き補償予測符号化は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する。このように、符号化エンジン(432)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャの画素ブロックとの間の差を符号化する。
【0046】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータを復号してもよい。符号化エンジン(432)の動作は、有利には、不可逆処理でもよい。符号化ビデオデータがビデオデコーダ(
図4に図示せず)で復号され得る場合、復元されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカになり得る。ローカルビデオデコーダ(433)は、参照ピクチャに対してビデオデコーダによって実行され得る復号処理を複製し、復元された参照ピクチャを参照ピクチャキャッシュ(434)に記憶させてもよい。このように、ビデオエンコーダ(403)は、遠端のビデオデコーダによって取得される(送信エラーのない)復元された参照ピクチャとして、共通の内容を有する復元された参照ピクチャのコピーをローカルに記憶してもよい。
【0047】
予測器(435)は、符号化エンジン(432)のための予測探索を実行してもよい。すなわち、符号化されるべき新たなピクチャについて、予測器(435)は、(候補参照画素ブロックとしての)サンプルデータ又は特定のメタデータ(参照ピクチャ動きベクトル、ブロック形状等)を求めて参照ピクチャメモリ(434)を検索してもよい。これらは、新たなピクチャについての適切な予測参照として機能してもよい。予測器(435)は、適切な予測参照を検出するために、サンプルブロック毎画素ブロック毎(sample block-by-pixel block)に動作してもよい。場合によっては、予測器(435)によって取得された検索結果によって決定された入力ピクチャは、参照ピクチャメモリ(434)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0048】
コントローラ(450)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(430)の符号化動作を管理してもよい。
【0049】
全ての上記の機能ユニットの出力は、エントロピーコーダ(445)におけるエントロピー符号化を受けてもよい。エントロピーコーダ(445)は、ハフマン符号化、可変長符号化、算術符号化等のような当業者に既知の技術に従って、シンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0050】
送信機(440)は、エントロピーコーダ(445)によって生成された符号化ビデオシーケンスをバッファして、通信チャネル(460)を介した送信の準備をしてもよく、当該通信チャネル(460)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。送信機(440)は、ビデオコーダ(403)からの符号化ビデオデータを、送信されるべき他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム(図示せず))とマージしてもよい。
【0051】
コントローラ(450)は、ビデオエンコーダ(403)の動作を管理してもよい。符号化中に、コントローラ(450)は、各符号化ピクチャに、特定の符号化ピクチャタイプを割り当ててもよい。当該符号化ピクチャタイプは、各ピクチャに適用され得る符号化技術に影響を与えてもよい。例えば、ピクチャは、しばしば、以下のピクチャタイプのうち1つとして割り当てられてもよい。
【0052】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化及び復号され得るものでもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR, Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例と、それぞれの用途及び特徴を認識する。
【0053】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。
【0054】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。同様に、複数の予測ピクチャは、単一のブロックの復元のために、2つより多くの参照ピクチャ及び関連するメタデータを使用してもよい。
【0055】
一般的に、ソースピクチャは、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8又は16×16のサンプルのブロック)に細分され、ブロック毎に符号化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される通り、他の(既に符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャの画素ブロックは、1つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して非予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して非予測的に符号化されてもよい。
【0056】
ビデオエンコーダ(403)は、ITU-T Rec. H.265のような所定のビデオ符号化技術又は標準に従って符号化動作を実行してもよい。その動作において、ビデオエンコーダ(403)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測符号化動作を含む様々な圧縮動作を実行してもよい。したがって、符号化ビデオデータは、使用されているビデオ符号化技術又は標準によって指定されたシンタックスに適合してもよい。
【0057】
一実施形態では、送信機(440)は、符号化ビデオと共に更なるデータを送信してもよい。ソースコーダ(430)は、符号化ビデオシーケンスの一部としてこのようなデータを含んでもよい。更なるデータは、時間/空間/SNRエンハンスメント層、冗長ピクチャ及びスライス、補足エンハンスメント情報(SEI)メッセージ、ビジュアルユーザビリティ情報(VUI, Visual Usability Information)パラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
【0058】
ビデオは、時系列において複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャ内の空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、カレントピクチャと呼ばれる符号化/復号中の特定のピクチャは、ブロックに分割される。カレントピクチャ内のブロックがビデオ内の前に符号化されて依然としてバッファされている参照ピクチャ内の参照ブロックに類似する場合、カレントピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによって符号化されてもよい。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有してもよい。
【0059】
いくつかの実施形態では、双方向予測技術は、インターピクチャ予測において使用されてもよい。双方向予測技術によれば、ビデオ内のカレントピクチャへの復号順で双方とも先行する(しかし、表示順ではそれぞれ過去及び将来のものでもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。カレントピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化されてもよい。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されてもよい。
【0060】
さらに、符号化効率を改善するために、インターピクチャ予測においてマージモード技術が使用できる。マージモードでは、カレントピクチャ内のブロックは、カレントピクチャにおける隣接ブロック(例えば、当該ブロックと境界を共有するもの、当該ブロックと共により大きいパーティション領域に配置されるもの)の動きベクトルを継承してもよい。
【0061】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット(CTU, coding tree unit)に分割され、ピクチャ内のCTUは、64×64の画素、32×32の画素又は16×16の画素のように、同じサイズを有する。HEVC標準は、H.265/HEVC(ITU-T Rec. H.265, 「High Efficiency Video Coding」、2016年12月)に記載されており、その全内容が参照により本明細書に組み込まれる(以下、「HEVC標準」という)。一般的に、CTUは、1つの輝度CTBと2つの色差CTBである3つの符号化ツリーブロック(CTB, coding tree block)を含む。各CTUは、1つ又は複数の符号化ユニット(CU, coding unit)に再帰的に四分木分割されてもよい。例えば、64×64の画素のCTUは、64×64の画素の1つのCU、32×32の画素の4つのCU又は16×16の画素の16個のCUに分割できる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのようなCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測可能性に依存して1つ以上の予測ユニット(PU, prediction unit)に分割される。一般的に、各PUは、輝度予測ブロック(PB, prediction block)と2つの色差PBとを含む。一実施形態では、符号化(符号化/復号)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例として輝度予測ブロックを使用すると、予測ブロックは、8×8の画素、16×16の画素、8×16の画素、16×8の画素等のように、画素の値(例えば、輝度値)の行列を含む。
【0062】
図5は、本開示の他の実施形態によるビデオエンコーダ(503)の図を示す。ビデオエンコーダ(503)は、ビデオピクチャのシーケンス内のカレントビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化ビデオシーケンスの一部である符号化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(503)は、
図2の例のビデオエンコーダ(203)の代わりに使用される。
【0063】
HEVCの例では、ビデオエンコーダ(503)は、8×8のサンプルの予測ブロック等のような処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(503)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモードを使用して最も良く符号化されるか、インターモードを使用して最も良く符号化されるか、双方向予測モードを使用して最も良く符号化されるかを決定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(503)は、処理ブロックを符号化ピクチャに符号化するためにイントラ予測技術を使用してもよい。処理ブロックがインターモード又は双方向予測モードで符号化される場合、ビデオエンコーダ(503)は、処理ブロックを符号化ピクチャに符号化するために、それぞれインター予測技術又は双方向予測技術を使用してもよい。「マージモード(merge mode)」は、それぞれインター予測及び双方向予測の双方のサブモードであり、残差を使用して或いは残差を使用せずに予測サンプルに対して復元を実行するために使用されてもよい。言い換えると、マージモードで符号化された符号化ブロックは、1つ以上の動きベクトルの形式の参照を含み、場合によっては開示の対象物に関連しない制御情報を含み、残差の係数を含んでも含まなくてもよい。特定のビデオ符号化技術では、マージモードは、動きベクトル予測子以外の符号化された動きベクトル成分の恩恵を受けずに、動きベクトルが1つ以上の動きベクトル予測子から導出されるインターピクチャ予測サブモードでもよい。特定の他のビデオ符号化技術では、対象のブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(503)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)のような他の構成要素を含む。
【0064】
図5の例では、ビデオエンコーダ(503)は、
図5に示されるように共に結合されたインターエンコーダ(530)と、イントラエンコーダ(522)と、残差計算器(523)と、スイッチ(526)と、残差エンコーダ(524)と、全体コントローラ(521)と、エントロピーエンコーダ(525)とを含む。
【0065】
インターエンコーダ(530)は、カレントブロック(例えば、処理ブロック)のサンプルを受信し、当該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、いずれかの適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。
【0066】
イントラエンコーダ(522)は、カレントブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、当該ブロックを、同じピクチャ内で既に符号化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。
【0067】
全体コントローラ(521)は、全体制御データを決定し、全体制御データに基づいてビデオエンコーダ(503)の他の構成要素を制御するように構成される。一例では、全体コントローラ(521)は、ブロックのモードを決定し、当該モードに基づいて制御信号をスイッチ(526)に提供する。例えば、モードがイントラモードである場合、全体コントローラ(521)は、残差計算器(523)によって使用されるイントラモード結果を選択するようにスイッチ(526)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(525)を制御する。モードがインターモードである場合、全体コントローラ(521)は、残差計算器(523)によって使用されるインター予測結果を選択するようにスイッチ(526)を制御し、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(525)を制御する。
【0068】
残差計算器(523)は、受信したブロックと、イントラエンコーダ(522)又はインターエンコーダ(530)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(524)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(524)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を取得するための量子化処理を受ける。
【0069】
エントロピーエンコーダ(525)は、符号化ブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(525)は、HEVC標準のような適切な標準に従った様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(525)は、全体制御データと、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)と、残差情報と、他の適切な情報とをビットストリームに含めるように構成される。開示の対象物によれば、インターモード又は双方向予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報は存在しない点に留意すべきである。
【0070】
図6は、本開示の他の実施形態によるビデオデコーダ(610)の図を示す。ビデオデコーダ(610)は、符号化ビデオシーケンスの一部である符号化ピクチャを受信し、符号化ピクチャを復号して復元ピクチャを生成するように構成される。一例では、ビデオデコーダ(610)は、
図2の例のビデオデコーダ(210)の代わりに使用される。
【0071】
図6の例では、ビデオデコーダ(610)は、
図6に示されるように共に結合されたエントロピーデコーダ(671)と、インターデコーダ(680)と、残差デコーダ(673)と、復元モジュール(674)と、イントラデコーダ(672)とを含む。
【0072】
エントロピーデコーダ(671)は、符号化ピクチャから、当該符号化ピクチャが構成されるシンタックスエレメントを表す特定のシンボルを復元するように構成されてもよい。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は他のサブモードにおける後者の2つ等)、それぞれイントラデコーダ(672)又はインターデコーダ(680)によって予測のために使用される特定のサンプル又はメタデータを識別できる予測情報(例えば、イントラ予測情報又はインター予測情報等)、例えば、量子化された変換係数の形式の残差情報等を含んでもよい。一例では、予測モードがインターモード又は双方向予測モードである場合、インター予測情報はインターデコーダ(680)に提供され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(672)に提供される。残差情報は、逆量子化を受けてもよく、残差デコーダ(673)に提供される。
【0073】
インターデコーダ(680)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0074】
イントラデコーダ(672)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0075】
残差デコーダ(673)は、逆量子化された変換係数を抽出するための逆量子化を実行し、逆量子化された変換係数を処理して残差を周波数ドメインから空間ドメインに変換するように構成される。また、残差デコーダ(673)は、特定の制御情報(量子化パラメータ(QP, Quantizer Parameter)を含む)を必要としてもよく、その情報は、エントロピーデコーダ(671)によって提供されてもよい(これは低ボリュームの制御情報のみである可能性があるので、データ経路は図示されていない)。
【0076】
復元モジュール(674)は、空間ドメインにおいて、残差デコーダ(673)によって出力された残差と、予測結果(場合によっては、インター予測モジュール又はイントラ予測モジュールによって出力されたもの)とを結合して復元ブロックを形成するように構成され、当該復元ブロックは、復元ピクチャの一部でもよく、また、復元ビデオの一部でもよい。視覚品質を改善するために、デブッキング動作のような他の適切な動作が実行されてもよい点に留意すべきである。
【0077】
ビデオエンコーダ(203)、(403)及び(503)並びにビデオデコーダ(210)、(310)及び(610)は、いずれかの適切な技術を使用して実装されてもよい点に留意すべきである。一実施形態では、ビデオエンコーダ(203)、(403)及び(503)並びにビデオデコーダ(210)、(310)及び(610)は、1つ以上の集積回路を使用して実装されてもよい。他の実施形態では、ビデオエンコーダ(203)、(403)及び(403)並びにビデオデコーダ(210)、(310)及び(610)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装されてもよい。
【0078】
図7は、イントラ予測に使用される例示的な角度モードの実施形態を示す。
図7において、右下に示されているのは、9個の予測子の方向のサブセットであり、当該予測子の方向は、H.265の35個の可能な予測子の方向からのものでもよい。矢印が収束する点(701)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表す。例えば、矢印(702)は、サンプル(701)が、水平軸から45度の角度にある、右上への1つ又は複数のサンプルから予測されることを示す。同様に、矢印(703)は、サンプル(701)が、水平軸から22.5度の角度にある、左下のサンプル(701)への1つ又は複数のサンプルから予測されることを示す。
【0079】
依然として
図7を参照すると、右上には、4×4のサンプルの正方形ブロック(704)が示されている(破線の太線で示されている)。正方形ブロック(704)は、16個のサンプルを含み、各サンプルは「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされる。例えば、サンプルS21は、Y次元における第2のサンプル(上から)及びX次元における第1のサンプル(左から)である。同様に、サンプルS44は、Y次元及びX次元の双方においてブロック(704)内の第4のサンプルである。ブロックのサイズが4×4のサンプルであるので、S44は右下にある。さらに、同様の番号付け方式に従った参照サンプルが示されている。参照サンプルは、Rと、ブロック(704)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)とでラベル付けされる。イントラピクチャ予測は、伝達された予測方向によって必要に応じて、隣接サンプルから参照サンプル値をコピーすることによって機能し得る。例えば、符号化ビデオビットストリームは、このブロックについて、矢印(702)と一致する予測方向を示す信号伝達を含むと仮定する。すなわち、サンプルは、水平から45度の角度にある、右上への1つ又は複数の予測サンプルから予測される。この場合、サンプルS41、S32、S23及びS14は、同じR05から予測される。次いで、サンプルS44は、R08から予測される。
【0080】
或る場合には、特に方向が45度で均一に割り切れない場合には、参照サンプルを計算するために、複数の参照サンプルの値が、例えば、補間を通じて組み合わされてもよい。
【0081】
いくつかの実施形態によれば、イントラ予測は、新たな予測ブロック(PB)を予測するために、ブロックに空間的に隣接する前に復号された境界サンプルを使用する。いくつかの実施形態では、角度イントラ予測が、ビデオ及び画像内容に存在する異なる方向の構造を効率的にモデル化するために使用される。利用可能な予測方向のセットは、符号化の複雑性と符号化効率との間の良好なトレードオフを提供するように選択されてもよい。
【0082】
いくつかの実施形態によれば、イントラ予測は、所定の数(X)のイントラ予測モードに従って実行されてもよい。各イントラ予測モードは数字で識別されてもよく、モード0は平面イントラ予測モードを示し、モード1はDCイントラ予測モードを示す。平面イントラ予測モード(すなわち、モード0)は、テクスチャピクチャに対する平面予測モードでもよく、ブロック端に沿った連続性を保護するために使用されてもよい。DCイントラ予測モード(すなわち、モード1)は、平坦な表面のように滑らかに変化するコンテンツの平面領域を予測するために使用されてもよい。
【0083】
モード2~X-1は角度イントラ予測モードを示し、各角度モードは方向を示す。ビデオ画像では、水平及び垂直パターンは、他の方向のパターンよりも頻繁に発生し得る。したがって、いくつかの実施形態では、水平モード又は垂直モードにより近いイントラ角度モードは、他の方向の変位パラメータよりも小さい変位パラメータを有してもよい。例えば、変位パラメータ差は、より少ない頻度で発生するパターンについての予測モードの密度を低減するために、対角方向により近づくことになってもよい。
【0084】
図8(A)及び(B)は、33個の角度モードを含む合計で35個のイントラ予測モードの実施形態を示す。モード0はINTRA_PLANARモードであり、モード1はINTRA_DCモードである。さらに、モード2~34はイントラ角度モードを表す。モード10は水平角度モードであり、モード26は垂直モードである。
【0085】
図9(A)及び(B)は、65個の角度モードを含む合計で67個のイントラ予測モードの実施形態を示す。モード0はINTRA_PLANARモードであり、モード1はINTRA_DCモードである。さらに、モード2~66はそれぞれイントラ角度モードのINTRA_ANGULAR2~INTRA_ANGULAR66を表す。モード18は水平モードであり、モード50は垂直モードである。
【0086】
図9(A)及び(B)に示される実施形態は、ナチュラルビデオで提示される任意のエッジ方向のキャプチャを可能にする。さらに、
図9(A)及び(B)に示される実施形態は、モード数の増加によって、
図8(A)及び(B)に示される実施形態よりも良好な予測精度を提供する。しかし、最確モード(MPM, most probable mode)導出処理の間に、MPMリストに既に含まれている角度モードに-1又は+1を加えることによって更なるモードが取得される場合、モジュロ演算%65が実行される必要がある。%65演算は%2
N演算よりもエンコーダ又はデコーダのようなハードウェアで実装するのがより複雑であるので、%65演算は不利である。これに関して、モジュロ演算の複雑さは、除算演算の複雑さに類似しており、これは、ビデオ符号化及び復号を実行するときに当業者には望ましくない。しかし、2
Nのモジュロ演算は、除算演算よりも簡単な&(2
N)のような方法で実行できる。
【0087】
いくつかの実施形態によれば、所与の角度モードの隣接モードを導出する場合、モジュロ%M演算が使用される。ここで、Mは2の累乗であるが、32に等しくなくてもよい。隣接モードは、MPM導出処理、二次MPM導出又はP次MPMリスト導出の間に導出されてもよい。Mの例は、2、4、8、16、64、128、256等を含むが、これらに限定されない。
【0088】
いくつかの実施形態によれば、角度イントラモードの総数はK=1+2Nであり、モジュロMの値は2Nであり、角度モードインデックスはA0からAK-1の範囲である。-dモードは以下のように導出されてもよい。
【0089】
式1:M_0=((mode+2N-A0-d)%2N)+A0
+dモードは以下のように導出されてもよい。
【0090】
式2:M_1 = ((mode-A0+d)%2N)+A0
一例として、Mが64に等しい場合(例えば、N=6)、角度イントラモードの総数Kは1+26=65であり、A0は2であり、AK-1は64である。-dモードは以下のように導出される。
【0091】
M_0=((mode+62-d)%64)+2
さらに、+dモードは以下のように導出される。
【0092】
M_1=((mode-2+d)%64)+2
いくつかの実施態様によれば、Mは2の複数(X個)の累乗の和である。Mの例示的な値は、32+64、32+16、16+64等を含むが、これらに限定されない。Xの例示的な値は、2、3、4等を含むが、これらに限定されない。Mが2の複数(X個)の累乗の和である場合、角度イントラモードの総数はK=1+2N0+2N1であり、Mは2N0+2N1であり、角度モードインデックスはA0からAK-1の範囲である。
【0093】
-dモードは以下のように導出されてもよい。
【0094】
式(3):M_0=((mode+2N0+2N1-A0-d)%(2N0+2N1))+A0
+dモードは以下のように導出されてもよい。
【0095】
式(4):M_1= ((mode+2N0+2N1-A0+d)%(2N0+
2N1))+A0
いくつかの実施形態によれば、方向イントラモード数の増加に対応するために、イントラモード符号化方法は、所定の数の最確モード(MPM)を含む候補リストを導出する。いくつかの実施形態では、所定の数は6であるが、当業者に理解されるように、この数のMPMに限定されない。候補リストに含まれるモードは、(1)隣接イントラモードと、(2)導出イントラモードと、(3)デフォルトイントラモードとに分類されてもよい。
【0096】
いくつかの実施形態では、初期候補リストを形成するために、5個の隣接イントラ予測モードが使用される。
図10は、(i)左下(BL)1002、(ii)左1003、(iii)右上(AR)1004、(iv)上(A)1005及び(v)左上(AL)1006の隣接ブロックによって囲まれたカレントブロック1001を示す。初期候補リスト内のこれらのブロックの順序は、左、上、平面、DC、左下、右上及び左上である。
【0097】
いくつかの実施形態では、初期候補リストが
図10に示される隣接ブロックのモードで形成された後に、候補リストに重複のないモードが残るように、重複モードを除去するための切り捨て処理が使用される。例えば、左ブロック(1003)及び左下ブロック(1002)が共にINTRA_DCモードである場合、これらのブロックのうち1つが候補リストから除去される。
【0098】
切り捨て処理後に候補リストが一杯になっていない場合(例えば、候補リストに6個未満のMPM候補が存在する場合)、導出モードが候補リストに追加される。導出モードは、候補リストに含まれる各イントラ角度モードに-1又は+1を加えることによって取得されてもよい。例えば、d=1、K=66且つN=6では、式(1)又は(3)が-1モードを導出するために使用されてもよく、式(2)又は(4)が+1モードを導出するために使用されてもよい。例えば、式(1)が使用される場合、-dモードは以下のようになる。
【0099】
M_0=((mode+62-d)%64)+2
さらに、式(2)が使用される場合、+dモードは以下のようになる。
【0100】
M_1=((mode-2+d)%64)+2
上記の例では、dはd=1、2、3等のような正の整数でもよい。
【0101】
導出モードを候補リストに追加した後に依然として候補リストが一杯になっていない場合、デフォルトモードが、垂直モード、水平モード、モード2及び対角モードの順に追加されてもよい。この処理の結果、6個のMPMモードの重複のない候補リストが生成される。
【0102】
いくつかの実施形態によれば、6個のMPMを使用する選択されたモードのエントロピー符号化のために、切り捨て単項バイナリ化(truncated unary binarization)が使用される。最初の3つのビンは、現在伝達されているビンに関連するMPMモードに依存するコンテキストで符号化されてもよい。MPMモードは、(a)主に水平モード(すなわち、MPMモード番号が対角方向のモード番号以下である)、(b)主に垂直モード(すなわち、MPMモードが対角方向のモード番号よりも大きい)及び(c)非角度(DC及び平面)クラスの3つのカテゴリのうち1つに分類されてもよい。したがって、この分類に基づいて、3つのコンテキストがMPMインデックスを伝達するために使用されてもよい。
【0103】
いくつかの実施形態によれば、残りの61個の非MPMを選択のための符号化は、以下のように実行されてもよい。61個の非MPMは、まず、選択モードセットと非選択モードセットの2つのセットに分割されてもよい。選択モードセットは、16個のモードを含んでもよく、残り(45個のモード)は、非選択モードセットに割り当てられてもよい。現在のモードが属するモードセットは、フラグを用いてビットストリームにおいて示されてもよい。示されるモードが選択モードセット内にある場合、選択されたモードは、4ビットの固定長のコードで伝達されてもよく、示されるモードが非選択セットからのものである場合、選択されたモードは、切り捨てバイナリコードで伝達されてもよい。
【0104】
図11は、それぞれ、イントラエンコーダ522又はイントラデコーダ672のようなエンコーダ又はデコーダによって実行される処理の一実施形態を示す。
図11に示される処理は、カレントブロックのイントラ予測モードを決定するために使用される候補リストを導出するために使用されてもよい。処理は、空の候補リストによって、ステップS1100を開始してもよい。カレントブロックについては、隣接イントラモードが候補モードリストに追加される。例えば、
図10を参照すると、カレントブロック1001について、隣接ブロック1002~1006のイントラモードが候補リストに追加される。処理はステップS1102に進み、重複したイントラモードが候補リストから除去される。例えば、候補リスト内の2つのモードが共にモードINTRA_DCを含む場合、これらのモードのうち1つが除去される。
【0105】
処理はステップS1104に進み、候補モードリスト内のモード数が所定の数未満であるか否かが決定される。例えば、所定の数は6に設定されてもよい。候補リスト内のモード数が所定の数に等しい場合、候補リストは完成し、処理はステップS1112に進み、カレントブロックのイントラモードが、カレントブロックについて候補リストを使用して決定される。
【0106】
候補リスト内のモード数が所定の数未満である場合、処理はステップS1106に進み、導出イントラモードを決定する。例えば、候補リストに含まれるイントラ角度モード毎に、-1モードがd=1で式(1)又は(3)を使用して決定され、+1モードがd=1で式(2)又は(4)を使用して決定される。
【0107】
処理はステップS1108に進み、候補リスト内のモード数が所定の数未満であるか否かを決定する。候補リスト内のモード数が依然として所定の数未満である場合、処理はステップS1110に進み、デフォルトモードが候補リストに追加される。例えば、デフォルトモードは、垂直モード、水平モード、モード2及び対角モードを含んでもよい。処理は、ステップS1110からステップS1112に進む。ステップS1108に戻り、候補リスト内のモード数が所定の数に等しい場合、処理はステップS1112に進む。
【0108】
図12は、カレントブロックの輝度イントラ予測モードを決定するために、それぞれイントラエンコーダ522又はイントラデコーダ672のようなエンコーダ又はデコーダによって実行される処理の一実施形態を示す。
図12に示される処理は、
図9に示されるイントラ予測モードを使用して実行されてもよい。合計で67個のイントラ予測モードが存在し、イントラ角度モードには2~66の番号が付される。
図12に示される処理は、ステップS1200で開始してもよく、隣接位置がカレントブロックについて設定される。例えば、カレントブロックが位置座標(xPb,yPb)を有する場合、隣接位置(xNbA,yNba)及び(xNbB, yNbB)は以下のように設定される。
【0109】
(xNbA,yNba)=(xPb-1,yPb)
(xNbB,yNbB)=(xPb,yPb-1)
図14は、隣接位置(xNbA,yNbA)及び(xNbB,yNbB)の例を示す。例えば、ブロックAは、隣接位置(xNbA,yNba)を表す。これは、この隣接位置がカレントブロック(xPb,yPb)の左にあるためである。さらに、ブロックBは、隣接位置(xNbB,yNbB)を表す。これは、この隣接位置がカレントブロック(xPb,yPb)の上にあるためである。
【0110】
処理はステップS1202に進み、隣接位置のイントラ予測モードが決定される。例えば、隣接位置(xNbA,yNba)及び(xNbB,yNbB)のイントラ予測モードは、それぞれ変数candIntraPredModeA及びcandIntraPredModeBに割り当てられてもよい。これに関して、candIntraPredModeAはブロックA(
図14)のイントラ予測モードを表してもよく、candIntraPredModeBはブロックB(
図14)のイントラ予測モードを表してもよい。変数candIntraPredModeA及びcandIntraPredModeBは、一般的にcandIntraPredModeXと呼ばれてもよい。後続のステップ(i)及び(ii)(a)~(d)は、変数candIntraPredModeXを決定する例示的な処理を記載する。XがA又はBのいずれかで置き換えられる場合、変数candIntraPredModeX(例えば、candIntraPredModeA又はcandIntraPredModeB)は以下のように導出される。
【0111】
(i)処理は、カレントの現在位置としてパラメータ(xCurr,Currr)に値を割り当て、次いでカレントブロックについて参照サンプルが利用可能であるか否かを決定することで始まる。例えば、HEVC標準の6.4.1節において指定されているz-スキャン順のブロックの可用性導出処理は、入力として(xPb,yPb)に等しく設定された位置(xCurrr,yCurr)及び(xNbX, yNbX)に等しく設定された隣接位置(xNbY,yNbY)で呼び出され、出力は、カレントブロックの参照サンプルが利用可能であるか否かを示すために使用されるbooleanパラメータavailableXに割り当てられる。
【0112】
(ii)候補イントラ予測モードcandIntraPredModeXは以下のように導出される。
【0113】
(a)availableXがFALSEに等しい場合(すなわち、参照サンプルが利用可能ではない)、candIntraPredModeXはINTRA_DCに等しく設定される。
【0114】
(b)そうでなく(すなわち、参照サンプルが利用可能である)、CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくない場合又はpcm_flag[xNbX][yNbX]が1に等しい場合、candIntraPredModeXはINTRA_DCに等しく設定される。
【0115】
(c)そうでなく、XがBに等しく、yPb-1が((yPb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である場合、candIntraPredModeBはINTRA_DCに等しく設定される。
【0116】
(d)そうでない場合、candIntraPredModeXはIntraPredModeY[xNbX][yNbX]に等しく設定される。
【0117】
上記の例では、変数CuPredModeはカレントブロックのイントラ予測モードを表してもよく、変数pcm_flagは差動パルスコード変調(DPCM, differential pulse code modulation)モードが有効であるか否かを示してもよく、変数CtbLog2SizeYはブロック高さのLog2値を表してもよい。
【0118】
処理はステップS1204に進み、最確モード(MPM)の候補リストが決定される。MPMの候補リストを決定するための例示的な処理が
図13に示されている。
図13において、変数AはcandIntraPredModeAを表し、変数BはcandIntraPredModeBを表す。
【0119】
図13に示される処理はステップS1300で開始してもよく、A=Bであるか否かが決定される。A=Bである場合(すなわち、A及びBが同じイントラ予測モードを有する)、処理はステップS1302に進み、A<2であるか否か(すなわち、Aが非角度イントラ予測モードであるか否か)を決定する。A<2である場合、処理はステップS1304に進み、候補リストは以下のように決定される。
【0120】
candlist[0]=Intra_Planar
candlist[1]=Intra_DC
candlist[2]=Intra_Angular50
Aが2未満でない場合、処理はステップS1302からステップS1306に進み、候補リストは以下のように決定される。
【0121】
candlist[0]=A
candlist[1]=2+((A+61)%64)
candlist[2]=2+((A-2+1)%64)
上記のように、候補リストの第1のエントリ(例えば、candlist[0])は、ブロックA(
図14)に対応するインター予測モードに設定され、候補リストの第2のエントリ(例えば、candlist[1])は、式(1)に従って決定され、候補リストの第3のエントリ(例えば、candlist[2])は、d=1、N=6且つA
0=2で式(2)に従って決定される。
【0122】
ステップS1300に戻り、AがBと等しくない場合、処理はステップS1308に進み、候補リストの第1のエントリ(例えば、candlist[0])がAに設定され、候補リストの第2のエントリ(例えば、candlist[1])がBに設定される。処理はステップS1310に進み、A及びBが共にIntra_Planarモードに等しくないか否かが決定される。A及びBが共にIntra_Planarモードに等しくない場合、処理はステップS1312に進み、候補リストの第3のエントリ(例えば、candlist[2])がIntra_Planarモードに等しく設定される。
【0123】
ステップS1310に戻り、A又はBがIntra_Planarモード(例えば、モード0)に等しい場合、処理はステップS1314に進み、A及びBが共にIntra_DCモード(例えば、モード1)に等しくないか否かが決定される。A及びBが共にIntra_DCモードに等しくない場合、処理はステップS1316に進み、候補リスト内の第3のエントリ(例えば、candlist[2])がIntra_DCモードに等しく設定される。しかし、A又はBがIntra_DCモードに等しい場合、処理はステップS1314からステップS1318に進み、候補リスト内の第3のエントリ(例えば、candlist[2])は、垂直イントラ予測モード(例えば、モード50)に設定される。
【0124】
MPMの候補リストが生成された後に、
図13に示される処理が完了する。
図12に戻り、処理はステップS1204からステップS1206に進み、カレントブロックのイントラ予測モードが決定される。カレントブロックのイントラ予測モードは、変数IntraPredModeY[xPb][yPb]によって表されてもよい。当該変数IntraPredModeY[xPb][yPb]は、以下に示されるステップ(i)及びステップ(ii)(a)~(e)に従って決定されてもよい。具体的には、ステップ(i)において、カレントブロックのイントラ予測モードが候補リストに含まれているか否か(例えば、booleanパラメータprev_intra_luma_pred_flagがTRUEであるか否か)が決定される。例えば、カレントブロックの輝度イントラ予測モードが候補リストに含まれる3つの候補のうち1つである場合、変数prev_intra_luma_pred_flag[xPb][yPb]は、エンコーダによって1に設定されてもよく、これは変数mpm_idxによって示されてもよい。変数prev_intra_luma_pred_flag及びmpm_idxは、ビデオビットストリーム内でエンコーダによってデコーダに伝達されてもよい。
【0125】
インター予測モードが候補リストに含まれていない場合(例えば、prev_intra_luma_pred_flag[xPb][yPb]=0)、ステップ(ii)において、候補リストが最低から最高まで順序付けられ(例えば、(a)~(c)))、次いで、カレントブロックのインター予測モードが非MPMモード(例えば、rem_intra_luma_pred_mode)に設定され、導出候補リストに従って導出される(例えば、(d)及び(e))。
【0126】
カレントブロックのイントラ予測モード(例えば、IntraPredModeY[xPb][yPb])を決定する処理は、以下のように記述されてもよい。
【0127】
(i)prev_intra_luma_pred_flag[xPb][yPb]が1に等しい場合、IntraPredModeY[xPb][yPb]はcandModeList[mpm_idx[xPb][yPb]]に等しく設定される。
【0128】
(ii)そうでない場合、IntraPredModeY[xPb][yPb]は、以下の順のステップを適用することによって導出される。
【0129】
(a)candModeList[0]がcandModeList[1]よりも大きい場合、双方の値が以下のように交換される。
【0130】
(candModeList[0],candModeList[1])=Swap(candModeList[0],candModeList[1])
(b)candModeList[0]がcandModeList[2]よりも大きい場合、双方の値が以下のように交換される。
【0131】
(candModeList[0],candModeList[2])=Swap(candModeList[0],candModeList[2])
(c)candModeList[1]がcandModeList[2]よりも大きい場合、双方の値が以下のように交換される。
【0132】
(candModeList[1],candModeList[2])=Swap(candModeList[1],candModeList[2])
(d)IntraPredModeY[xPb][yPb]はrem_intra_luma_pred_mode[xPb][yPb]に等しく設定される。
【0133】
(e)iが0~2に等しい場合、IntraPredModeY[xPb][yPb]がcandModeList[i]以上である場合、IntraPredModeY[xPb][yPb]の値は1だけインクリメントされる。
【0134】
上記の技術及び処理は、コンピュータ読み取り可能命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されてもよい。例えば、
図15は、開示の対象物の特定の実施形態を実装するのに適したコンピュータシステム(1500)を示す。
【0135】
コンピュータソフトウェアは、いずれかの適切な機械コード又はコンピュータ言語を使用して符号化されてもよく、当該機械コード又はコンピュータ言語は、命令を含むコードを生成するために、アセンブリ、コンパイル、リンク又は類似のメカニズムを受けてもよく、当該命令は、1つ以上のコンピュータ中央処理装置(CPU, central processing unit)、グラフィックス処理ユニット(GPU, Graphics Processing Unit)等によって、直接的に或いはインタープリタ、マイクロコード実行等を通じて実行されてもよい。
【0136】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行されてもよい。
【0137】
コンピュータシステム(1500)について
図15に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する如何なる限定も示唆することを意図するものではない。また、構成要素の構成も、コンピュータシステム(1500)の例示的な実施形態に示される構成要素のいずれか1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0138】
コンピュータシステム(1500)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、会話、音楽、周辺音)、画像(スキャンされた画像、静止画カメラから取得された写真画像)、ビデオ(2次元ビデオ、立体ピクチャを含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
【0139】
入力ヒューマンインタフェースデバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチ画面(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイクロフォン(1506)、スキャナ(1507)、カメラ(1508)のうち1つ以上を含んでもよい。
【0140】
また、コンピュータシステム(1500)は、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(1510)、データグローブ(図示せず)又はジョイスティック(1505)による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスが存在してもよい)と、オーディオ出力デバイス(スピーカ(1509)、ヘッドフォン(図示せず)等)と、視覚出力デバイス(それぞれがタッチ画面入力機能を有しても有さなくてもよく、それぞれが触覚フィードバック機能を有しても有さなくてもよく、いくつかが2次元視覚出力又は立体出力のような手段を通じた3次元以上の出力を出力可能でもよいCRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1510)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))と、プリンタ(図示せず)とを含んでもよい。
【0141】
また、コンピュータシステム(1500)は、CD/DVD又は同様の媒体(1521)を有するCD/DVD ROM/RW(1520)を含む光媒体のような人間がアクセス可能な記憶デバイス及び関連する媒体、サムドライブ(1522)、取り外し可能ハードドライブ又はソリッドステートドライブ(1523)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊なROM/ASIC/PLDに基づくデバイス等を含んでもよい。
【0142】
また、当業者は、ここに開示の対象物に関連して使用される用語「コンピュータ読み取り可能媒体」が伝送媒体、搬送波又は他の非一時的な信号を含まないことを理解すべきである。
【0143】
また、コンピュータシステム(1500)は、1つ以上の通信ネットワークへのインタフェースを含んでもよい。ネットワークは、例えば、無線、有線、光でもよい。ネットワークは、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等でもよい。ネットワークの例は、イーサネット、無線LAN、セルラネットワーク(GSM、3G、4G、5G、LTE等を含む)、TV有線又は無線広域デジタルネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、車両及び産業(CANBusを含む)等を含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス(1549)に取り付けられる外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(1500)のUSBポート等)を必要とし、他のネットワークインタフェースアダプタは、一般的に、以下に説明するシステムバス(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラネットワーク)に取り付けられることによって、コンピュータシステム(1500)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1500)は、他のエンティティと通信することができる。このような通信は、一方向の受信のみ(例えば、放送TV)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)でもよく、或いは、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向でもよい。特定のプロトコル及びプロトコルスタックは、上記のようなネットワーク及びネットワークインタフェースのそれぞれにおいて使用されてもよい。
【0144】
上記のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス及びネットワークインタフェースは、コンピュータシステム(1500)のコア(1540)に取り付けられてもよい。
【0145】
コア(1540)は、1つ以上の中央処理装置(CPU)(1541)、グラフィックス処理ユニット(GPU)(1542)、フィールドプログラマブルゲートアレイ(FPGA, Field Programmable Gate Area)(1543)の形式の特殊なプログラム可能処理ユニット、特定のタスク用のハードウェアアクセラレータ(1544)等を含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、内部大容量記憶装置(内部のユーザアクセス不可能なハードドライブ、SSD等)(1547)と共に、システムバス(1548)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1548)は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能でもよい。周辺デバイスは、コアのシステムバス(1548)に直接取り付けられてもよく、或いは、周辺バス(1549)を通じて取り付けられてもよい。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0146】
CPU(1541)、GPU(1542)、FPGA(1543)及びアクセラレータ(1544)は特定の命令を実行してもよく、当該特定の命令は、組み合わせによって上記のコンピュータコードを構成してもよい。当該コンピュータコードは、ROM(1545)又はRAM(1546)に記憶されてもよい。また、一時的なデータは、RAM(1546)に記憶されてもよいが、永続的なデータは、例えば、内部大容量記憶装置(1547)に記憶されてもよい。1つ以上のCPU(1541)、GPU(1542)、大容量記憶装置(1547)、ROM(1545)、RAM(1546)等と密接に関連してもよいキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索が可能になってもよい。
【0147】
コンピュータ読み取り可能媒体は、様々なコンピュータに実装された動作を実行するためのコンピュータコードを有してもよい。媒体及びコンピュータコードは、本開示の目的のために特に設計及び構築されたものでよく、或いは、コンピュータソフトウェア分野における当業者に周知で入手可能なようなものでもよい。
【0148】
限定ではなく一例として、アーキテクチャ(1500)、具体的には、コア(1540)を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供できる。このようなコンピュータ読み取り可能媒体は、コア内部の大容量記憶装置(1547)又はROM(1545)のような非一時的な性質のコア(1540)の特定の記憶装置と同様に、上記のようなユーザがアクセス可能な大容量記憶装置に関連する媒体でもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア(1540)によって実行されてもよい。コンピュータ読み取り可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含んでもよい。ソフトウェアは、コア(1540)、具体的には、その中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1546)に記憶されたデータ構造を定義し、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することを含む、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行させてもよい。さらに或いは代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1544))内に配線されたロジック又は他の方法で具現されたロジックの結果として、機能を提供してもよく、当該回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに或いはソフトウェアと共に動作してもよい。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能媒体への言及は、必要に応じて、実行するためのソフトウェアを記憶する回路(集積回路(IC)等)、実行するためのロジックを具現する回路又はこれらの双方を含んでもよい。本開示は、ハードウェア及びソフトウェアのいずれかの適切な組み合わせを含む。
【0149】
付録A:略語
MV: Motion Vector
HEVC: High Efficiency Video Coding
SEI: Enhancement Information
VUI: Video Usability Information
GOP: Group of Picture
TU: Transform Unit
PU: Prediction Unit
CTU: Coding Tree Unit
CTB: Coding Tree Block
PB: Prediction Block
HRD: Hypothetical Reference Decoder
SNR: Signal Noise Ratio
CPU: Central Processing Unit
GPU: Graphics Processing Unit
CRT: Cathode Ray Tube
LCD: Liquid-Crystal Display
OLED: Organic Light-Emitting Diode
CD: Compact Disc
DVD: Digital Video Disc
ROM: Read-Only Memory
RAM: Random Access Memory
ASIC: Application-Specific Integrated Circuit
PLD: Programmable Logic Device
LAN: Local Area Network
GSM: Global System for Mobile communications
LTE: Long-Term Evolution
CANBus: Controller Area Network Bus
USB: Universal Serial Bus
PCI: Peripheral Component Interconnect
FPGA: Field Programmable Gate Areas
SSD: solid-state drive
IC: Integrated Circuit
CU: Coding Unit
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換及び様々な代替の等価物が存在する。したがって、当業者は、本明細書に明示的に図示又は記載されていないが、本開示の原理を具現し、したがって、本開示の真意及び範囲内にある多数のシステム及び方法を考案することができることが認識される。
【0150】
上記の開示は以下に記載の実施形態を含む。
【0151】
(1)デコーダが実行するビデオ復号の方法は、イントラ予測モードでの符号化ブロックについて、候補リストを導出するステップであって、前記候補リストに、複数のイントラ予測モードのうちの第1のイントラ予測モードとして、前記符号化ブロックに隣接する隣接ブロックのイントラ予測モードに対応する第1の候補イントラ予測モード値(Mode1)と、第2の候補イントラ予測モード値(Mode2)と、第3の候補イントラ予測モード値(Mode3)とが含まれ、Mode2とMode3のいずれもが、Mode1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2の累乗で、かつ32に等しくない、ステップと、導出された候補リストに従って、符号化ブロックのイントラ予測モード値を決定するステップとを含む。
【0152】
(2)Mode2は((Mode1+M-A0-d)%M)+A0に従って決定され、Nは正の整数であり、dは正の整数であり、角度イントラモードの総数はK=1+2Nであり、Mは2Nに等しく、角度モードインデックスはA0からAK-1の範囲である、特徴(1)に記載の方法。
【0153】
(3)Mode3は((Mode1-A0+d)%M)+A0に従って決定される、特徴(2)に記載の方法。
【0154】
(4)ビデオデコーダは、イントラ予測モードでの符号化ブロックについて、候補リストを導出するように構成された処理回路であって、前記候補リストに、複数のイントラ予測モードのうちの第1のイントラ予測モードとして、符号化ブロックに隣接する隣接ブロックのイントラ予測モードに対応する第1の候補イントラ予測モード値(Mode1)と、第2の候補イントラ予測モード値(Mode2)と、第3の候補イントラ予測モード値(Mode3)とが含まれ、Mode2とMode3のいずれもが、Mode1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2の累乗で、かつ32に等しくなく、導出された候補リストに従って、符号化ブロックのイントラ予測モード値を決定するように構成された処理回路を含む。
【0155】
(5)Mode2は((Mode1+M-A0-d)%M)+A0に従って決定され、Nは正の整数であり、dは正の整数であり、角度イントラモードの総数はK=1+2Nであり、Mは2Nに等しく、角度モードインデックスはA0からAK-1の範囲である、特徴(4)に記載のビデオデコーダ。
【0156】
(6)Mode3は((Mode1-A0+d)%M)+A0に従って決定される、特徴(5)に記載のビデオデコーダ。
【0157】
(7)命令を記憶した非一時的なコンピュータ読み取り可能媒体は、当該命令がビデオ復号装置内のプロセッサにより実行されると、プロセッサに、イントラ予測モードでの符号化ブロックについて、候補リストを導出するステップであって、前記候補リストに、複数のイントラ予測モードのうち第1のイントラ予測モードとして、符号化ブロックに隣接する隣接ブロックのイントラ予測モードに対応する第1の候補イントラ予測モード値(Mode1)と、第2の候補イントラ予測モード値(Mode2)と、第3の候補イントラ予測モード値(Mode3)とが含まれ、Mode2とMode3のいずれもが、Mode1からの所定のオフセットとモジュロM演算に従って決定され、前記Mは2の累乗で、かつ32に等しくない、ステップと、導出された候補リストに従って、符号化ブロックのイントラ予測モード値を決定するステップとを含む方法を実行させる。
【0158】
(8)Mode2は((Mode1+M-A0-d)%M)+A0に従って決定され、Nは正の整数であり、dは正の整数であり、角度イントラモードの総数はK=1+2Nであり、Mは2Nに等しく、角度モードインデックスはA0からAK-1の範囲である、特徴(7)に記載の非一時的なコンピュータ読み取り可能媒体。
【0159】
(9)Mode3は((Mode1-A0+d)%M)+A0に従って決定される、特徴(8)に記載の非一時的なコンピュータ読み取り可能媒体。