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

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

▶ QUALCOMM INCORPORATEDの特許一覧
特表2022-529685イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て
<>
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図1
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図2
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図3
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図4A
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図4B
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図5
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図6
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図7
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図8
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図9
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図10
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図11
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図12
  • 特表-イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-23
(54)【発明の名称】イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て
(51)【国際特許分類】
   H04N 19/11 20140101AFI20220616BHJP
   H04N 19/159 20140101ALI20220616BHJP
   H04N 19/176 20140101ALI20220616BHJP
   H04N 19/593 20140101ALI20220616BHJP
【FI】
H04N19/11
H04N19/159
H04N19/176
H04N19/593
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021561999
(86)(22)【出願日】2020-04-22
(85)【翻訳文提出日】2021-10-18
(86)【国際出願番号】 US2020029264
(87)【国際公開番号】W WO2020219512
(87)【国際公開日】2020-10-29
(31)【優先権主張番号】62/838,928
(32)【優先日】2019-04-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/854,720
(32)【優先日】2020-04-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】コバン、ムハンメド・ゼイド
(72)【発明者】
【氏名】ファン・デル・オーウェラ、ゲールト
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MA23
5C159MA41
5C159MC11
5C159ME01
5C159ME11
5C159TA31
5C159TB08
5C159TC27
5C159TC42
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
ビデオコーディングを改善するための技法について説明する。例えば、エンコードされたビデオビットストリームに含まれているピクチャーの第1のブロックが取得されてもよく、ピクチャーの第2のブロックが、垂直BDPCMモードまたは水平BDPCMモード等のブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードのタイプを使用してコード化されている(例えば、エンコードされている)と決定されてもよい。第2のブロックが垂直BDPCMモードを使用してコード化されている場合、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードが決定されてもよく、水平イントラ予測モードが第1のブロックに対するイントラ予測モードリストに追加されてもよい。第2のブロックが水平BDPCMモードを使用してコード化されている場合、第1のブロックに対するイントラ予測モードリストのための水平イントラ予測モードが決定されてもよく、水平イントラ予測モードが第1のブロックに対するイントラ予測モードリストに追加されてもよい。
【選択図】図9
【特許請求の範囲】
【請求項1】
ビデオデータをデコードする方法において、
エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得することと、
前記ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定することと、
前記第2のブロックが前記垂直BDPCMモードを使用してコード化されていることに基づいて、前記第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することと、
前記垂直イントラ予測モードを前記第1のブロックに対する前記イントラ予測モードリストに追加することとを含む方法。
【請求項2】
前記イントラ予測モードリストが、最確モード(MPM)リストを含む請求項1記載の方法。
【請求項3】
前記第2のブロックが、前記ピクチャー中の前記第1のブロックの隣接ブロックである請求項1記載の方法。
【請求項4】
前記エンコードされたビデオビットストリームからの情報に基づいて、かつ、前記イントラ予測モードリストに基づいて、前記第1のブロックをデコードするために使用する予測モードを決定することと、
前記決定された予測モードを使用して、前記第1のブロックをデコードすることとをさらに含む請求項1記載の方法。
【請求項5】
前記エンコードされたビデオビットストリームからの情報は、前記第1のブロックをデコードするために使用する予測モードが、前記イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む請求項4記載の方法。
【請求項6】
前記イントラ予測モードリストフラグの値に基づいて、前記第1のブロックをデコードするために使用する予測モードが、前記イントラ予測モードリスト中に含まれている前記多数の予測モードの中にあることを決定することと、
前記イントラ予測モードリストから、前記第1のブロックをデコードするために使用する予測モードを決定することとをさらに含む請求項5記載の方法。
【請求項7】
前記エンコードされたビデオビットストリーム中の情報が、前記イントラ予測モードリストに関係するインデックス値を含み、
前記方法が、
前記インデックス値を使用して、前記イントラ予測モードリストから、前記第1のブロックをデコードするために使用する予測モードを決定することとをさらに含む請求項6記載の方法。
【請求項8】
前記第1のブロックが、ルーマコーディングブロックである請求項1記載の方法。
【請求項9】
前記エンコードされたビデオビットストリーム中に含まれている前記ピクチャーの第3のブロックを取得することと、
前記ピクチャーの第4のブロックが、水平ブロックベースのBDPCMモードを使用してコード化されていることを決定することと、
前記第4のブロックが前記水平BDPCMモードを使用してコード化されていることに基づいて、前記第3のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、
前記水平イントラ予測モードを前記第3のブロックに対する前記イントラ予測モードリストに追加することとをさらに含む請求項1記載の方法。
【請求項10】
ビデオデータをデコードする装置において、
前記ビデオデータの少なくとも1つのブロックを記憶するように構成されているメモリと、
固定機能回路とプログラムマブル回路とのうちの少なくとも1つを備えるビデオデコーダとを具備し、
前記ビデオデコーダは、
エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得するようにと、
前記ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定するようにと、
前記第2のブロックが前記垂直BDPCMモードを使用してコード化されていることに基づいて、前記第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定するようにと、
前記垂直イントラ予測モードを前記第1のブロックに対する前記イントラ予測モードリストに追加するように構成されている装置。
【請求項11】
前記イントラ予測モードリストが、最確モード(MPM)リストを含む請求項10記載の装置。
【請求項12】
前記第2のブロックが、前記ピクチャー中の前記第1のブロックの隣接ブロックである請求項10記載の装置。
【請求項13】
前記ビデオデコーダは、
前記エンコードされたビデオビットストリームからの情報に基づいて、かつ、前記イントラ予測モードリストに基づいて、前記第1のブロックをデコードするために使用する予測モードを決定するようにと、
前記決定された予測モードを使用して、前記第1のブロックをデコードするように構成されている請求項10記載の装置。
【請求項14】
前記エンコードされたビデオビットストリームからの情報は、前記第1のブロックをデコードするために使用する予測モードが、前記イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む請求項13記載の装置。
【請求項15】
前記ビデオデコーダは、
前記イントラ予測モードリストフラグの値に基づいて、前記第1のブロックをデコードするために使用する予測モードが、前記イントラ予測モードリスト中に含まれている前記多数の予測モードの中にあることを決定するようにと、
前記イントラ予測モードリストから、前記第1のブロックをデコードするために使用する予測モードを決定するように構成されている請求項14記載の装置。
【請求項16】
前記エンコードされたビデオビットストリーム中の情報が、前記イントラ予測モードリストに関係するインデックス値を含み、
前記ビデオデコーダは、
前記インデックス値を使用して、前記イントラ予測モードリストから、前記第1のブロックをデコードするために使用する予測モードを決定するように構成されている請求項15記載の装置。
【請求項17】
前記第1のブロックが、ルーマコーディングブロックである請求項10記載の装置。
【請求項18】
前記ビデオデコーダは、
前記エンコードされたビデオビットストリーム中に含まれている前記ピクチャーの第3のブロックを取得するようにと、
前記ピクチャーの第4のブロックが、水平ブロックベースのBDPCMモードを使用してコード化されていることを決定するようにと、
前記第4のブロックが前記水平BDPCMモードを使用してコード化されていることに基づいて、前記第3のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定するようにと、
前記水平イントラ予測モードを前記第3のブロックに対する前記イントラ予測モードリストに追加するように構成されている請求項10記載の装置。
【請求項19】
前記ビデオデータを表示するように構成されているディスプレイをさらに具備する請求項10記載の装置。
【請求項20】
前記装置が、カメラと、コンピュータと、移動体デバイスと、ブロードキャスト受信機デバイスと、セットトップボックスとのうちの少なくとも1つを備える請求項10記載の装置。
【請求項21】
ビデオデータをエンコードする方法において、
垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードすることと、
前記ピクチャーの第2のブロックを取得することと、
前記第1のブロックが前記垂直BDPCMモードを使用してエンコードされていることに基づいて、前記第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することと、
前記垂直イントラ予測モードを前記第2のブロックに対する前記イントラ予測モードリストに追加することと、
前記第1のブロックと、前記第2のブロックと、前記イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させることとを含む方法。
【請求項22】
前記イントラ予測モードリストが、最確モード(MPM)リストを含む請求項21記載の方法。
【請求項23】
前記第2のブロックが、前記ピクチャー中の前記第1のブロックの隣接ブロックである請求項21記載の方法。
【請求項24】
前記エンコードされたビデオビットストリーム中に、前記第1のブロックをデコードするために使用する予測モードを示す情報を含めることとをさらに含む請求項21記載の方法。
【請求項25】
前記情報は、前記第1のブロックをデコードするために使用する予測モードが、前記イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む請求項24記載の方法。
【請求項26】
前記情報が、前記第1のブロックをデコードするために使用する前記イントラ予測モードリストからの前記予測モードを示すインデックス値を含む請求項25記載の方法。
【請求項27】
前記第2のブロックが、ルーマコーディングブロックである請求項21記載の方法。
【請求項28】
水平ブロックベースのBDPCMモードを使用して、前記ピクチャーの第3のブロックをエンコードすることと、
前記ピクチャーの第4のブロックを取得することと、
前記第3のブロックが前記水平BDPCMモードを使用してコード化されていることに基づいて、前記第4のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、
前記水平イントラ予測モードを前記第4のブロックに対する前記イントラ予測モードリストに追加することとをさらに含む請求項21記載の方法。
【請求項29】
ビデオデータをエンコードする装置において、
前記ビデオデータの少なくとも1つのブロックを記憶するように構成されているメモリと、
固定機能回路とプログラムマブル回路とのうちの少なくとも1つを備えるビデオエンコーダとを具備し、
前記ビデオエンコーダは、
垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードするようにと、
前記ピクチャーの第2のブロックを取得するようにと、
前記第1のブロックが前記垂直BDPCMモードを使用してエンコードされていることに基づいて、前記第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定するようにと、
前記垂直イントラ予測モードを前記第2のブロックに対する前記イントラ予測モードリストに追加するようにと、
前記第1のブロックと、前記第2のブロックと、前記イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させるように構成されている装置。
【請求項30】
前記イントラ予測モードリストが、最確モード(MPM)リストを含む請求項29記載の装置。
【請求項31】
前記第2のブロックが、前記ピクチャー中の前記第1のブロックの隣接ブロックである請求項29記載の装置。
【請求項32】
前記ビデオエンコーダは、
前記エンコードされたビデオビットストリーム中に、前記第1のブロックをデコードするために使用する予測モードを示す情報を含めるように構成されている請求項29記載の装置。
【請求項33】
前記情報は、前記第1のブロックをデコードするために使用する予測モードが、前記イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む請求項32記載の装置。
【請求項34】
前記情報が、前記第1のブロックをデコードするために使用する前記イントラ予測モードリストからの前記予測モードを示すインデックス値を含む請求項33記載の装置。
【請求項35】
前記第2のブロックが、ルーマコーディングブロックである請求項29記載の装置。
【請求項36】
前記ビデオエンコーダは、
水平ブロックベースのBDPCMモードを使用して、前記ピクチャーの第3のブロックをエンコードするようにと、
前記ピクチャーの第4のブロックを取得するようにと、
前記第3のブロックが前記水平BDPCMモードを使用してコード化されていることに基づいて、前記第4のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定するようにと、
前記水平イントラ予測モードを前記第4のブロックに対する前記イントラ予測モードリストに追加するように構成されている請求項29記載の装置。
【請求項37】
前記装置は、カメラと、コンピュータと、移動体デバイスと、ブロードキャスト受信機デバイスと、セットトップボックスとのうちの1つ以上を備える請求項29記載の装置。

【発明の詳細な説明】
【分野】
【0001】
[0001]
本出願はビデオコーディングに関する。より詳細には、本出願は、ブロックベースの差分パルスコード変調(DPCM)コード化ブロックに対するイントラ予測モードを割り当てるためのシステム、装置、方法およびコンピュータ読取可能媒体に関する。
【背景】
【0002】
[0002]
多くのデバイスおよびシステムは、ビデオデータが処理され、消費のために出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの要求を満たすために大量のデータを含んでいる。例えば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートおよびこれらに類するものを有する最高品質のビデオを望む。その結果、これらの要求を満たすために必要とされる大量のビデオデータは、ビデオデータを処理し記憶する通信ネットワークおよびデバイスに負担をかける。
【0003】
[0003]
さまざまなビデオコーディング技法が使用されて、ビデオデータが圧縮されるかもしれない。ビデオコーディングは、1つ以上のビデオコーディング標準規格にしたがって実行される。例えば、ビデオコーディング標準規格は、とりわけ、バーサタイルビデオコーディング(VVC)、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、MPEG-2パート2コーディング(MPEGは、ムービングピクチャーエキスパートグループを表す)、VP9、オープンメディアのアライアンス(AOMedia)ビデオ1(AV1)を含んでいる。ビデオエンコーディングは、一般的に、ビデオ画像またはビデオシーケンス中に存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測、または、これらに類するもの)を利用する。ビデオエンコーディング技法の重要な目標は、ビデオ品質の劣化を回避または最小限に抑えながら、ビデオデータをより低いビットレートを使用する形態に圧縮することである。進化し続けるビデオサービスが利用可能になるにつれて、より良好なエンコーディング効率を有するエンコーディング技法が必要とされる。
【概要】
【0004】
[0004]
(ブロックベース差分(または、デルタ)パルスコード変調、あるいは、残差差分(または、デルタ)パルスコード変調(RDPCM)としても呼ばれる)ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)コード化ブロックのためのイントラ予測モードを割り当てる技法およびシステムが本明細書で説明されている。イントラ予測を使用して、コーディングデバイス(例えば、ビデオエンコーダおよび/またはビデオデコーダ)は、同じピクチャー内の以前にエンコードされた隣接ブロックからの隣接サンプルに基づく空間予測技法を使用して、予測ブロックを形成することができる。Planarモード、DCモード、および/または、複数の方向性予測モード(垂直、水平、さまざまな角度モード)のうちの1つのような、使用されている特定のイントラ予測モードに基づいて、隣接サンプルを識別することができる。元のブロックと予測ブロックとに基づいて、残差データを決定することができる。BDPCMコーディングモードは、いくつかのイントラ予測コーディングモードと同様に動作するが、残差データに基づいて(例えば、残差データから発生された、変換され量子化された係数に基づいて)実行されるライン毎の差分決定も含んでいる。BDPCMモードは、水平BDPCMおよび垂直BDPCMを含むことができる。
【0005】
[0005]
コード化されることになる現在ブロックのイントラ予測モードコーディングは、最確モード(MPM)予測子リストの発生を含むことができる。VVCでは、67個の利用可能なイントラ予測モードがある。ある数のイントラ予測モード(例えば、5つ)をMPM予測子リスト中に含めることができ(MPMモードとして呼ばれる)、残りのモードは非MPMモードとして呼ばれる。MPM予測子リストは、MPM予測子リスト中に、現在ブロックの1つ以上の隣接ブロックに対して使用されるイントラ予測モードを含めることにより、現在ブロックに対して発生させることができる。しかしながら、隣接ブロックが、BDPCMモードを使用してコード化されているときには、隣接ブロックは、現在ブロックに対するMPMリストに追加することができる、関係するイントラ予測モードを有しない。
【0006】
[0006]
本明細書で説明する技法およびシステムは、異なるBDPCMモードの異なるイントラ予測モードへのマッピングを提供する。マッピングされたイントラ予測モードは、BDPCMモードを使用してコード化される隣接ブロックを表すために、(現在ブロックに対する)MPM予測子リスト中に含めることができる。例えば、水平イントラ予測モードは、水平BDPCMモードを使用してコード化される隣接ブロックを表すために、MPM予測子リスト中に含めることができ、垂直イントラ予測モードは、垂直BDPCMモードを使用してコード化される隣接ブロックを表すために、MPM予測子リスト中に含めることができる。
【0007】
[0007]
少なくとも1つの例によれば、ビデオデータをデコードする方法が提供される。方法は、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得することと、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定することと、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することと、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加することとを含んでいる。
【0008】
[0008]
別の例では、ビデオデータの少なくとも1つのエンコードされたブロックを記憶するように構成されているメモリと、固定機能回路とプログラマブル回路とのうちの少なくとも1つを備えるビデオデコーダとを含む、ビデオデータをデコードする装置が提供される。いくつかの例では、ビデオデコーダは、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得するようにと、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定するようにと、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定するようにと、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加するように構成されている。
【0009】
[0009]
別の例では、命令を記憶しているコンピュータ読取可能記憶媒体が提供される。命令は、実行されるときに、ビデオデータをデコードするデバイスの1つ以上のプロセッサに、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得させ、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定させ、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定させ、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加させる。
【0010】
[0010]
別の例では、ビデオデータをデコードする装置が提供される。装置は、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得する手段と、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定する手段と、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定する手段と、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加する手段とを含んでいる。
【0011】
[0011]
いくつかの態様では、イントラ予測モードリストが、最確モード(MPM)リストを含んでいる。
【0012】
[0012]
いくつかの態様では、第2のブロックが、ピクチャー中の第1のブロックの隣接ブロックである。
【0013】
[0013]
いくつかの態様では、上記で説明した方法、装置およびコンピュータ読取可能記憶媒体は、エンコードされたビデオビットストリームからの情報に基づいて、かつ、イントラ予測モードリストに基づいて、第1のブロックをデコードするために使用する予測モードを決定することと、決定された予測モードを使用して、第1のブロックをデコードすることとを含んでいる。いくつかの例では、エンコードされたビデオビットストリームからの情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含んでいる。いくつかの例では、上記で説明した方法、装置およびコンピュータ読取可能記憶媒体は、イントラ予測モードリストフラグの値に基づいて、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあることを決定することと、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定することとを含んでいる。
【0014】
[0014]
いくつかのケースでは、エンコードされたビデオビットストリーム中の情報が、イントラ予測モードリストに関係するインデックス値を含んでいる。いくつかの態様では、上記で説明した方法、装置およびコンピュータ読取可能記憶媒体は、インデックス値を使用して、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定することを含んでいる。
【0015】
[0015]
いくつかの態様では、第1のブロックが、ルーマコーディングブロックである。
【0016】
[0016]
いくつかの態様では、上記で説明した方法、装置およびコンピュータ読取可能記憶媒体は、エンコードされたビデオビットストリーム中に含まれているピクチャーの第3のブロックを取得することと、ピクチャーの第4のブロックが、水平ブロックベースのBDPCMモードを使用してコード化されていることを決定することと、第4のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第3のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第3のブロックに対するイントラ予測モードリストに追加することとを含んでいる。
【0017】
[0017]
少なくとも1つの他の例によれば、ビデオデータをエンコードする方法が提供される。方法は、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードすることと、ピクチャーの第2のブロックを取得することと、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することと、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加することと、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させることとを含んでいる。
【0018】
[0018]
別の例では、ビデオデータの少なくとも1つのブロックを記憶するように構成されているメモリと、固定機能回路とプログラムマブル回路とのうちの少なくとも1つを備えるビデオエンコーダとを含む、ビデオデータをエンコードする装置が提供される。いくつかの例では、ビデオエンコーダは、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードするようにと、ピクチャーの第2のブロックを取得するようにと、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定するようにと、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加するようにと、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させるように構成されている。
【0019】
[0019]
別の例では、命令を記憶しているコンピュータ読取可能記憶媒体が提供される。命令は、実行されるときに、ビデオデータをエンコードするデバイスの1つ以上のプロセッサに、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードさせ、ピクチャーの第2のブロックを取得させ、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定させ、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加させ、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させる。
【0020】
[0020]
別の例では、ビデオデータをエンコードする装置が提供される。装置は、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードする手段と、ピクチャーの第2のブロックを取得する手段と、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定する手段と、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加する手段と、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させる手段とを含んでいる。
【0021】
[0021]
いくつかの態様では、イントラ予測モードリストが、最確モード(MPM)リストを含んでいる。
【0022】
[0022]
いくつかの態様では、第2のブロックが、ピクチャー中の第1のブロックの隣接ブロックである。
【0023】
[0023]
いくつかの態様では、ビデオデータをエンコードする上記で説明した方法、装置およびコンピュータ読取可能記憶媒体は、エンコードされたビデオビットストリーム中に、第1のブロックをデコードするために使用する予測モードを示す情報を含めることを含んでいる。いくつかの例では、情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含んでいる。いくつかの例では、情報は、第1のブロックをデコードするために使用するイントラ予測モードリストからの予測モードを示すインデックス値を含んでいる。
【0024】
[0024]
いくつかの態様では、第2のブロックが、ルーマコーディングブロックである。
【0025】
[0025]
いくつかの態様では、ビデオデータをエンコードする上記で説明した方法、装置およびコンピュータ読取可能記憶媒体は、水平ブロックベースのBDPCMモードを使用して、ピクチャーの第3のブロックをエンコードすることと、ピクチャーの第4のブロックを取得することと、第3のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第4のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第4のブロックに対するイントラ予測モードリストに追加することとを含んでいる。
【0026】
[0026]
いくつかの態様では、ビデオデータをデコードする装置および/またはビデオデータをエンコードする装置は、カメラ、移動体デバイス(例えば、移動体電話機またはいわゆる「スマートフォン」または他の移動体デバイス)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(例えば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、または、複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、または、他のデバイスを備えている。いくつかの態様では、ビデオデータをデコードする装置および/またはビデオデータをエンコードする装置は、1つ以上の画像をキャプチャするカメラまたは複数のカメラを含んでいる。いくつかの態様では、ビデオデータをデコードする装置および/またはビデオデータをエンコードする装置は、1つ以上の画像、通知、および/または、他の表示可能なデータを表示するディスプレイを含んでいる。
【0027】
[0027]
方法、装置およびコンピュータ読取可能媒体のいずれかに関連する上記で説明した態様は、個々にまたは何らかの適切な組み合わせで使用することができる。
【0028】
[0028]
この概要は、特許請求される主題の重要なまたは本質的な特徴を識別することを意図するものではなく、特許請求される主題の範囲を決定するために単独で使用されることを意図するものでもない。主題は、本特許の明細書全体の適切な部分、任意のまたはすべての図面、および、各請求項を参照することにより理解されることになる。
【0029】
[0029]
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲および添付の図面を参照すると、より明らかになるであろう。
【図面の簡単な説明】
【0030】
[0030]
以下の図面を参照して、本出願の例示的な実施形態を、以下で詳細に説明する。
図1】[0031] 図1は、いくつかの例による、エンコーディングデバイスおよびデコーディングデバイスの例を図示するブロック図である。
図2】[0032] 図2は、いくつかの例による、バーサタイルビデオコーディング(VVC)標準規格に関係するイントラ予測モードの例示的な図を提供する図である。
図3】[0033] 図3は、いくつかの例による、ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されている現在ブロックを含むピクチャーの例を図示するブロック図である。
図4A】[0034] 図4Aは、いくつかの例による、現在ブロックをコード化するために使用される隣接ブロックの行の例を図示するブロック図である。
図4B】[0035] いくつかの例による、図3からの現在ブロックを図示するブロック図である。
図5】[0036] いくつかの例による、図3からの現在ブロックのコーディングから結果的に生じるブロックの例を図示するブロック図である。
図6】[0037] いくつかの例による、図3からの現在ブロックのコーディングから結果的に生じるブロックの例を図示するブロック図である。
図7】[0038] いくつかの例による、図3からの現在ブロックのコーディングから結果的に生じるブロックの例を図示するブロック図である。
図8】[0039] 図8は、いくつかの例による、コード化されている現在ブロックを含むピクチャーの例を図示するブロック図である。
図9】[0040] 図9は、いくつかの例による、コード化されている現在ブロックを含むピクチャーの例を図示するブロック図である。
図10】[0041] いくつかの例による、ビデオデータをデコードするプロセスの例を図示するフロー図である。
図11】[0042] 図11は、いくつかの例による、ビデオデータをエンコードするプロセスの例を図示するフロー図である。
図12】[0043] 図12は、いくつかの例による、例示的なビデオエンコーディングデバイスを図示するブロック図である。
図13】[0044] 図13は、いくつかの例による、例示的なビデオデコーディングデバイスを示すブロック図である。
【詳細な説明】
【0031】
[0045]
本開示のある態様および実施形態を以下に提供する。当業者に明らかであるように、これらの態様および実施形態のいくつかは独立して適用してもよく、これらのうちのいくつかは組み合わせて適用してもよい。以下の説明では、説明の目的で、本出願の実施形態の完全な理解を提供するために具体的な詳細が示されている。しかしながら、さまざまな実施形態がこれらの具体的な詳細なしで実施されてもよいことは明らかであろう。図面および説明は、限定的であることを意図するものではない。
【0032】
[0046]
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用可能性、または、コンフィギュレーションを限定することを意図するものではない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実現するための可能な説明を当業者に提供するであろう。添付の特許請求の範囲に記載された本出願の精神および範囲から逸脱することなく、要素の機能および配置において、さまざまな変更が行われてもよいことを理解されたい。
【0033】
[0047]
ビデオコーディングデバイスは、ビデオデータを効率的にエンコードおよびデコードするためのビデオ圧縮技法を実現する。本明細書で使用されているように、ビデオコーディングデバイスは、ビデオエンコーダ、ビデオデコーダ、または、(CODECとして呼ばれる)組み合わされたビデオエンコーダ-デコーダを指すことがある。ビデオ圧縮技法は、(イントラ予測またはフレーム内予測として呼ばれる)空間予測、(インター予測またはフレーム間予測として呼ばれる)時間予測、(ビデオデータの異なるレイヤに渡る)レイヤ間予測、および/または、ビデオシーケンスに固有の冗長性を低減または除去する他の予測技法を含む、異なる予測モードを適用することを含むことができる。ビデオエンコーダは、元のビデオシーケンスの各ピクチャーを、(以下でより詳細に説明する)ビデオブロックまたはコーディングユニットとして呼ばれる矩形領域に区分することができる。これらのビデオブロックは、特定の予測モードを使用して、エンコードされてもよい。
【0034】
[0048]
ビデオブロックは、1つ以上の方法で、より小さいブロックの1つ以上のグループに分割されてもよい。ブロックは、コーディングツリーブロック、予測ブロック、変換ブロック、および/または、他の適切なブロックを含むことがある。特に指定されていない限りに、「ブロック」への参照は、一般的に、このようなビデオブロック(例えば、当業者に理解されるように、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、あるいは、他の適切なブロックまたはサブブロック)を指しているかもしれない。さらに、これらのブロックのそれぞれはまた、本明細書では、「ユニット」(例えば、コーディングツリーユニット(CTU)、コーディングユニット、予測ユニット(PU)、変換ユニット(TU)、または、これらに類するもの)として、交換可能に呼ばれることがある。
【0035】
[0049]
インター予測モードに対して、ビデオエンコーダは、参照フレームまたは参照ピクチャーとして呼ばれる、別の時間的ロケーションに位置するフレーム(または、ピクチャー)中でエンコードされているブロックと類似するブロックをサーチすることができる。ビデオエンコーダは、エンコードされることになるブロックからある空間的変位にサーチを制限するかもしれない。最良の一致は、水平変位成分と垂直変位成分とを含む2次元(2D)動きベクトルを使用して、位置付けられるかもしれない。イントラ予測モードに対して、ビデオエンコーダは、同じピクチャー内の以前にエンコードされた隣接ブロックからのデータに基づいて、空間予測技法を使用して、予測されたブロックを形成してもよい。
【0036】
[0050]
ビデオエンコーダは、予測誤差を決定してもよい。例えば、予測誤差は、エンコードされているブロック中のピクセル値と予測されたブロックとの間の差分として決定することができる。予測誤差は、残差として呼ばれることもある。ビデオエンコーダはまた、変換コーディングを使用して(例えば、離散コサイン変換(DCT)の形態、離散サイン変換(DST)の形態、または、他の適切な変換を使用して)予測誤差に変換を適用して、変換係数を発生させてもよい。変換後、ビデオエンコーダは、変換係数を量子化してもよい。量子化された変換係数および動きベクトルは、シンタックス要素を使用して表されてもよく、制御情報とともに、ビデオシーケンスのコード化表現を形成してもよい。いくつかの事例では、ビデオエンコーダは、シンタックス要素をエントロピーコード化してもよく、それにより、それらの表現のために必要とされるビットの数をさらに低減させる。
【0037】
[0051]
ビデオデコーダは、上記で説明したシンタックス要素と制御情報とを使用して、現在フレームをデコードするための予測的データ(例えば、予測的ブロック)を構築してもよい。例えば、ビデオデコーダは、予測されたブロックと圧縮された予測誤差とを加算してもよい。ビデオデコーダは、量子化係数を使用して、変換基底関数を重み付けすることにより、圧縮された予測誤差を決定してもよい。再構築されたフレームと元のフレームとの間の差分は、再構築誤差として呼ばれる。
【0038】
[0052]
以下でより詳細に説明するように、ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)コード化ブロックに対するイントラ予測モードを割り当てることに関連するシステム、装置、(プロセスとしても呼ばれる)方法およびコンピュータ読取可能媒体を本明細書で説明する。BDPCMコーディングモードは、イントラ予測に類似するが、残差データから発生された、量子化された変換係数に対して実行されるライン毎の差分決定をも含んでいる。BDPCMモードは、水平BDPCMと垂直BDPCMとを含んでいることがある。
【0039】
[0053]
いくつかのケースでは、(現在ブロックとして呼ばれる)現在コード化されているブロックのイントラ予測モードコーディングは、最確モード(MPM)予測子リストの発生を含むことができる。(MPMモードして呼ばれる)ある数のイントラ予測モードは、MPM予測子リスト中に含めることができ、残りのモードは、非MPMモードとして呼ばれる。本明細書で説明する技法およびシステムは、1つ以上のBDPCMモードの1つ以上のイントラ予測モードへのマッピングを提供し、現在ブロックに対するMPM予測子リスト中に、マッピングされたイントラ予測モードを含める。
【0040】
[0054]
いくつかの例では、本明細書で説明する技法は、既存のビデオコーデック(例えば、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、または、他の適切な既存のビデオコーデック)のいずれかに適用することができ、ならびに/あるいは、例えば、バーサタイルビデオコーディング(VVC)、ジョイントイクスポレーションモデル(JEM)、VP9、AV1、ならびに/あるいは、開発中または開発されるであろう他のビデオコーディング標準規格のような、開発中である何らかのビデオコーディング標準規格、および/または、将来のビデオコーディング標準規格のための効率的なコーディングツールとすることができる。いくつかのケースでは、本明細書で説明する技法は、画像ベースの圧縮(例えば、ジョイントフォトグラフィックエキスパートグループ(JPEG)コーディングおよび/または他の画像コーディング技法)のために実行することができる。
【0041】
[0055]
図1は、エンコーディングデバイス104とデコーディングデバイス112とを含むシステム100の例を図示するブロック図である。エンコーディングデバイス104は、発信元デバイスの一部であってもよく、デコーディングデバイス112は、(クライアントデバイスとしても呼ばれる)受信デバイスの一部であってもよい。発信元デバイスおよび/または受信デバイスは、移動体または固定電話ハンドセット(例えば、スマートフォン、セルラー電話機、または、これらに類するもの)、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、1つ以上のサーバデバイスを含むサーバシステム中のサーバデバイス(例えば、ビデオストリーミングサーバシステム、または、他の適切なサーバシステム)、ヘッドマウントディスプレイ(HMD)、ヘッドアップディスプレイ(HUD)、スマートグラス(例えば、仮想現実(VR)グラス、拡張現実(AR)グラス、または、他の適切なスマートグラス)、あるいは、他の何らかの適切な電子デバイスのような、電子デバイスを含んでいてもよい。
【0042】
[0056]
システム100のコンポーネントは、本明細書で説明するさまざまな動作を実行するために、1つ以上のプログラマブル電子回路(例えば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、および/または、他の適切な電子回路)を含むことができる電子回路または他の電子ハードウェアを含むことができ、および/または、それらを使用して実現することができ、コンピュータソフトウェア、ファームウェア、または、それらの何らかの組み合わせを含むことができ、および/または、それらを使用して実現することができる。
【0043】
[0057]
システム100は、いくつかのコンポーネントを含むように示されているが、システム100は、図1に示されているものよりも多いまたは少ないコンポーネントを含むことができることを当業者は認識するであろう。例えば、システム100はまた、いくつかの事例では、記憶装置108および記憶装置118以外の1つ以上のメモリデバイス(例えば、1つ以上のランダムアクセスメモリ(RAM)コンポーネント、リードオンリーメモリ(ROM)コンポーネント、キャッシュメモリコンポーネント、バッファコンポーネント、データベースコンポーネント、および/または、他のメモリデバイス)、1つ以上のメモリデバイスと通信し、および/または、1つ以上のメモリデバイスと電気的に接続されている1つ以上の処理デバイス(例えば、1つ以上のCPU、GPU、および/または、他の処理デバイス)、(例えば、各ワイヤレスインターフェースに対する1つ以上のトランシーバおよびベースバンドプロセッサを含む)ワイヤレス通信を実行するための1つ以上のワイヤレスインターフェース、1つ以上のワイヤード接続を介して通信を実行するための1つ以上のワイヤードインターフェース(例えば、ユニバーサルシリアルバス(USB)入力のようなシリアルインターフェース、ライトニングコネクタ、および/または、他のワイヤードインターフェース)、ならびに/あるいは、図1に示されていない他のコンポーネントを含むことができる。
【0044】
[0058]
エンコーディングデバイス104(または、エンコーダ)は、ビデオコーディング標準規格またはプロトコルを使用して、ビデオデータをエンコードして、エンコードされたビデオビットストリームを発生させるために使用することができる。ビデオコーディング標準規格の例は、ITU-T H.261、ISO/IEC MPEG-1ビジュアル、ITU-T H.262、または、ISO/IEC MPEG-2ビジュアル、ITU-T H.263、ISO/IEC MPEG-4Vビジュアル、(ISO/IEC MPEG-4 AVCとしても知られる)ITU-T H.264を含み、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張と、高効率ビデオコーディング(HEVC)またはITU-T H.265とを含んでいる。範囲およびスクリーンコンテンツコーディング拡張、3Dビデオコーディング(3D-HEVC)およびマルチビュー拡張(MV-HEVC)およびスケーラブル拡張(SHVC)を含む、マルチレイヤコーディングを取り扱うHEVCに対するさまざまな拡張が存在する。HEVCおよびその拡張は、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャーエキスパートグループ(MPEG)の3Dビデオコーディング拡張開発におけるジョイントコラボレーションチーム(JCT-VC)とともに、ビデオコーディングにおけるジョイントコラボレーションチーム(JCT-VC)により開発されている。
【0045】
[0059]
MPEGおよびITU-T VCEGはまた、バーサタイルビデオコーディング(VVC)と名付けられた次世代のビデオコーディング標準規格のための新しいビデオコーディングツールを探求および開発するためのジョイント探求ビデオチーム(JVET)を形成した。基準ソフトウェアは、VVCテストモデル(VTM)と呼ばれる。VVCの目的は、既存のHEVC標準規格を上回る圧縮性能の著しい改善を提供することであり、(例えば、とりわけ、360°全方向没入型マルチメディア、高ダイナミックレンジ(HDR)ビデオのような)より高品質のビデオサービスおよび新しいアプリケーションの開発を助ける。VP9およびオープンメディアのアライアンス(AOMedia)ビデオ1(AV1)は、本明細書で説明する技法を適用することができる他のビデオコーディング標準規格である。
【0046】
[0060]
本明細書で説明する多くの実施形態は、VTM、VVC、HEVC、AVC、および/または、それらの拡張のような、ビデオコーデックを使用して実行することができる。しかしながら、本明細書で説明する技法およびシステムはまた、MPEG、ジョイントフォトグラフィックエキスパートグループ(JPEG)(または、静止画像のための他のコーディング標準規格)、VP9、AV1、それらの拡張、あるいは、既に利用可能であるかまたはまだ利用可能でないかまたは開発されていない他の適切なコーディング標準規格のような、他のコーディング標準規格に適用可能であってもよい。したがって、本明細書で説明する技法およびシステムは、特定のビデオコーディング標準規格を参照しながら説明しているかもしれないが、当業者は、説明がその特定の標準規格のみに適用されると解釈されることになるものではないことを認識するであろう。
【0047】
[0061]
図1を参照すると、ビデオソース102は、ビデオデータをエンコーディングデバイス104に提供してもよい。ビデオソース102は、発信元デバイスの一部であってもよく、または、発信元デバイス以外のデバイスの一部であってもよい。ビデオソース102は、ビデオキャプチャデバイス(例えば、ビデオカメラ、カメラフォン、ビデオフォン、または、これらに類するもの)、記憶されているビデオを含んでいるビデオアーカイブ、ビデオデータを提供するビデオサーバまたはコンテンツプロバイダ、ビデオサーバまたはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを発生させるコンピュータグラフィックスシステム、このようなソースの組み合わせ、あるいは、他の何らかの適切なビデオソースを含んでいてもよい。
【0048】
[0062]
ビデオソース102からのビデオデータは、1つ以上の入力ピクチャーを含んでいてもよい。ピクチャーは「フレーム」としても呼ばれることがある。ピクチャーまたはフレームは、いくつかのケースでは、ビデオの一部である静止画像であってもよい。HEVC、VVC、および、他のビデオコーディング仕様では、ビデオシーケンスは一連のピクチャーを含んでいてもよい。ピクチャーは、S、SCbおよびSCrと表される3つのサンプルアレイを含んでいてもよい。Sはルーマサンプルの2次元アレイであり、SCbはCbクロミナンスサンプルの2次元アレイであり、SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは本明細書では「クロマ」サンプルとして呼ばれることもある。他の事例では、ピクチャーはモノクロームであってもよく、ルーマサンプルのアレイのみを含んでいてもよい。
【0049】
[0063]
エンコーディングデバイス104のエンコーダエンジン106(または、エンコーダ)は、ビデオデータをエンコードして、エンコードされたビデオビットストリームを発生させる。いくつかの例では、エンコードされたビデオビットストリーム(あるいは、「ビデオビットストリーム」または「ビットストリーム」)は、一連の1つ以上のコード化されたビデオシーケンスである。コード化されたビデオシーケンス(CVS)は、ベースレイヤ中のランダムアクセスポイントピクチャーを有するアクセスユニット(AU)で開始し、次のAUまである性質を有するが、次のAUを含まない、一連のAUを含んでおり、次のAUは、ベースレイヤ中のランダムアクセスポイントピクチャーを有し、ある性質を有する。例えば、CVSを開始するランダムアクセスポイントピクチャーのある性質は、1に等しいランダムアクセススキップリーディング(RASL)ピクチャーフラグ(例えば、NoRaslOutputFlag)を含んでいてもよい。そうでない場合には、(RASLフラグが0に等しい)ランダムアクセスポイントピクチャーは、CVSを開始しない。アクセスユニット(AU)は、1つ以上のコード化されたピクチャーと、同一の出力時間を共有するコード化されたピクチャーに対応する制御情報とを含んでいる。ピクチャーのコード化されたスライスは、ビットストリームレベルにおいて、ネットワークアブストラクションレイヤ(NAL)ユニットとして呼ばれるデータユニットにカプセル化される。例えば、HEVCビデオビットストリームは、NALユニットを含む1つ以上のCVSを含んでいてもよい。NALユニットのそれぞれは、NALユニットヘッダを有している。1つの例では、ヘッダは、H.264/AVC(マルチレイヤ拡張を除く)に対しては1バイトであり、HEVCに対しては2バイトである。NALユニットヘッダ中のシンタックス要素は、指定されたビットをとり、したがって、とりわけ、トランスポートストリーム、リアルタイムトランスポート(RTP)プロトコル、ファイルフォーマットのような、すべての種類のシステムおよびトランスポートレイヤに対して可視である。
【0050】
[0064]
ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含む、2つのクラスのNALユニットがHEVC標準規格中に存在する。VCL NALユニットは、コード化されたビデオビットストリームを形成するコード化されたピクチャーデータを含んでいる。例えば、コード化されたビデオビットストリームを形成するビットのシーケンスが、VCL NALユニット中に存在する。VCL NALユニットは、コード化されたピクチャーデータの1つのスライスまたは(以下で説明する)スライスセグメントを含むことができ、非VCL NALユニットは、1つ以上のコード化されたピクチャーに関連する制御情報を含んでいる。いくつかのケースでは、NALユニットは、パケットとして呼ぶことがある。HEVC AUは、コード化されたピクチャーデータを含むVCL NALユニットと、コード化されたピクチャーデータに対応する非VCL NALユニット(存在する場合)とを含んでいる。非VCL NALユニットは、他の情報に加えて、エンコードされたビデオビットストリームに関連する高レベル情報を有するパラメータセットを含んでいてもよい。例えば、パラメータセットは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャーパラメータセット(PPS)とを含んでいてもよい。いくつかのケースでは、ビットストリームの各スライスまたは他の部分は、単一のアクティブなPPS、SPS、および/または、VPSを参照して、デコーディングデバイス112が、ビットストリームのスライスまたは他の部分をデコードするために使用されるかもしれない情報にアクセスすることを可能にしてもよい。
【0051】
[0065]
NALユニットは、ビデオ中のピクチャーのコード化された表現のような、ビデオデータのコード化された表現(例えば、エンコードされたビデオビットストリーム、ビットストリームのCVS、または、これらに類するもの)を形成するビットのシーケンスを含んでいてもよい。エンコーダエンジン106は、各ピクチャーを複数のスライスに区分することにより、ピクチャーのコード化された表現を発生させる。スライスは他のスライスから独立しており、したがって、スライス中の情報は、同じピクチャー内の他のスライスからのデータに依存せずにコード化される。スライスは、独立スライスセグメントと、存在する場合には、以前のスライスセグメントに依存する1つ以上の依存スライスセグメントとを含んでいる、1つ以上のスライスセグメントを含んでいる。
【0052】
[0066]
HEVCでは、スライスは、その後、ルーマサンプルとクロマサンプルとのコーディングツリーブロック(CTB)に区分される。ルーマサンプルのCTBとクロマサンプルの1つ以上のCTBは、サンプルに対するシンタックスとともに、コーディングツリーユニット(CTU)として呼ばれる。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)として呼ばれることもある。CTUは、HEVCエンコーディングのための基本処理ユニットである。CTUは、さまざまなサイズの複数のコーディングユニット(CU)に分割することができる。CUは、コーディングブロック(CB)として呼ばれるルーマサンプルアレイとクロマサンプルアレイとを含んでいる。
【0053】
[0067]
ルーマCBおよびクロマCBは、予測ブロック(PB)にさらに分割することができる。PBは、(利用可能であるかまたは使用が可能であるとき)インター予測またはイントラブロックコピー予測に対して同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBと1つ以上のクロマPBとともに、関係するシンタックスは、予測ユニット(PU)を形成する。インター予測に対して、動きパラメータのセット(例えば、1つ以上の動きベクトル、参照インデックス、または、これらに類するもの)が、各PUに対してビットストリーム中でシグナリングされ、ルーマPBと1つ以上のクロマPBのインター予測のために使用される。動きパラメータはまた、動き情報として呼ばれることもある。CBはまた、1つ以上の変換ブロック(TB)に区分することができる。TBは、予測残差信号をコード化するために残差変換(例えば、いくつかのケースでは、同じ2次元変換)が適用される色成分のサンプルの正方形ブロックを表している。変換ユニット(TU)は、ルーマサンプルおよびクロマサンプルのTBと、対応するシンタックス要素とを表している。
【0054】
[0068]
CUのサイズは、コーディングモードのサイズに対応し、形状が正方形であってもよい。例えば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または、対応するCTUのサイズまでの他の何らかの適切なサイズであってもよい。本明細書では、「N×N」という語句は、垂直および水平寸法に関するビデオブロックのピクセル寸法(例えば、8ピクセル×8ピクセル)を指すために使用されている。ブロック中のピクセルは、行および列に配置されていてもよい。いくつかの実施形態では、ブロックは、水平方向において、垂直方向と同じ数のピクセルを有していなくてもよい。CUに関係するシンタックスデータは、例えば、CUの1つ以上のPUへの区分を記述していてもよい。区分モードは、CUがイントラ予測モードエンコードされるか、または、インター予測モードエンコードされるかによって、異なっていてもよい。PUは、非正方形の形状に区分されてもよい。CUに関係するシンタックスデータはまた、例えば、CTUにしたがった、CUの1つ以上のTUへの区分を記述していてもよい。TUの形状は、正方形または非正方形とすることができる。
【0055】
[0069]
HEVC標準規格によると、変換は、変換ユニット(TU)を使用して実行されてもよい。TUは、異なるCUに対して変化させてもよい。TUは、所定のCU内のPUのサイズに基づいて、サイズを決めてもよい。TUは、PUと同じサイズまたはPUよりも小さくてもよい。いくつかの例では、CUに対応する残差サンプルは、残差4分ツリー(RQT)として知られる4分ツリー構造を使用して、より小さいユニットに再分割されてもよい。RQTのリーフノードは、TUに対応していてもよい。TUに関係するピクセル差分値は、変換係数を生成させるように変換されてもよい。変換係数は、その後、エンコーダエンジン106により量子化されてもよい。
【0056】
[0070]
いったんビデオデータのピクチャーがCUに区分されると、エンコーダエンジン106は、予測モードを使用して、各PUを予測する。その後、予測ユニットまたは予測ブロックが、元のビデオデータから減算され、(以下で説明する)残差が得られる。各CUに対して、予測モードは、シンタックスデータを使用して、ビットストリーム内でシグナリングされてもよい。予測モードは、イントラ予測(または、ピクチャー内予測)あるいはインター予測(または、ピクチャー間予測)を含んでいてもよい。イントラ予測は、ピクチャー内の空間的に隣接するサンプル間の相関を利用する。例えば、イントラ予測を使用して、各PUは、例えば、を見つけるためにDC予測を、Planar表面をPUに適合させるためにplanar予測を、隣接データから外挿するために方向予測を、または、他の何らかの適切なタイプの予測を使用して、同じピクチャー中の隣接画像データから予測される。インター予測は、画像サンプルのブロックに対する動き補償された予測を導出するために、ピクチャー間の時間的相関を使用する。例えば、インター予測を使用して、各PUは、(出力順で現在ピクチャーの前または後の)1つ以上の参照ピクチャー中の画像データから、動き補正予測を使用して予測される。ピクチャー間予測またはピクチャー内予測を使用してピクチャーエリアをコード化するか否かの決定は、例えば、CUレベルにおいてなされてもよい。
【0057】
[0071]
(以下でより詳細に説明する)エンコーダエンジン106およびデコーダエンジン116は、VVCにしたがって動作するように構成されていてもよい。VVCによると、(エンコーダエンジン106および/またはデコーダエンジン116のような)ビデオコーダは、ピクチャーを複数のコーディングツリーユニット(CTU)に区分する(ここで、ルーマサンプルのCTBとクロマサンプルの1つ以上のCTBとともに、サンプルに対するシンタックスは、CTUとして呼ばれる)。ビデオコーダは、4分ツリー-2分ツリー(QTBT)構造またはマルチタイプツリー(MTT)構造のような、ツリー構造にしたがって、CTUを区分することができる。QTBT構造は、HEVCのCU、PUおよびTUの間の分離のような、複数の区分タイプの概念を取り除く。QTBT構造は、4分ツリー区分にしたがって区分される第1のレベルと、2分ツリー区分にしたがって区分される第2のレベルとを含む、2つのレベルを含んでいる。QTBT構造のルートノードは、CTUに対応する。2分ツリーのリーフノードは、コーディングユニット(CU)に対応する。
【0058】
[0072]
MTT区分構造では、ブロックは、4分ツリー区分、2分ツリー区分、および、1つ以上のタイプの3分ツリー区分を使用して区分されてもよい。3分ツリー区分は、ブロックが3つのサブブロックに区分される区分である。いくつかの例では、3分ツリー区分は、中心を通して元のブロックを分割することなく、ブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(例えば、4分ツリー、2分ツリー、および、3分ツリー)は、対称または非対称であってもよい。
【0059】
[0073]
いくつかの例では、ビデオコーダは、ルミナンス成分とクロミナンス成分のそれぞれを表すために単一のQTBTまたはMTT構造を使用することができるが、他の例では、ビデオコーダは、ルミナンス成分のために1つのQTBTまたはMTT構造および両方のクロミナンス成分のために別のQTBTまたはMTT構造(あるいは、それぞれのクロミナンス成分のために2つのQTBTおよび/またはMTT構造)のような、2つ以上のQTBTまたはMTT構造を使用することができる。
【0060】
[0074]
ビデオコーダは、HEVC毎の4分ツリー区分、QTBT区分、MTT区分、または、他の区分構造を使用するように構成することができる。例示目的のために、本明細書での説明は、QTBT区分に言及しているかもしれない。しかしながら、本開示の技法は、同様に、4分ツリー区分または他のタイプの区分を使用するように構成されているビデオコーダにも適用してもよいことを理解されたい。
【0061】
[0075]
いくつかの例では、ピクチャーの1つ以上のスライスは、スライスタイプが割り当てられる。スライスタイプは、イントラコード化されたスライス(Iスライス)と、インターコード化されたPスライスと、インターコード化されたBスライスとを含んでいる。Iスライス(イントラコード化されたフレーム、独立的にデコード可能)は、イントラ予測のみによりコード化されているピクチャーのスライスであり、したがって、Iスライスは、スライスの何らかの予測ユニットまたは予測ブロックを予測するためにフレーム内のデータのみを必要とすることから、独立的にデコード可能である。Pスライス(単方向予測されるフレーム)は、イントラ予測と単方向インター予測とによりコード化されているかもしれないピクチャーのスライスである。Pスライス内の各予測ユニットまたは予測ブロックは、イントラ予測またはインター予測のいずれかによりコード化されている。インター予測が適用されるときには、予測ユニットまたは予測ブロックは、1つの参照ピクチャーによってのみ予測され、したがって、参照サンプルは、1つのフレームの1つの参照領域からのみである。Bスライス(双方向予測的フレーム)は、イントラ予測とインター予測とでコード化されているかもしれない(例えば、双予測または単予測)ピクチャーのスライスである。Bスライスの予測ユニットまたは予測ブロックは、2つの参照ピクチャーから双方向予測されてもよく、各ピクチャーは、1つの参照領域に寄与し、2つの参照領域のサンプルセットは、双方向予測されたブロックの予測信号を発生させるために(例えば、等しい重みでまたは異なる重みで)重み付けされる。上述したように、1つのピクチャーのスライスは、独立的にコード化される。いくつかのケースでは、ピクチャーはちょうど1つのスライスのようにコード化することができる。
【0062】
[0076]
上述したように、ピクチャー内予測は、ピクチャー内の空間的に隣接するサンプル間の相関を利用する。(「イントラモード」としても呼ばれる)複数のイントラ予測モードが存在する。いくつかの例では、ルーマブロックのイントラ予測は、Planarモード、DCモード、および、33個の角度モード(例えば、斜めイントラ予測モードおよび斜めイントラ予測モードに隣接する角度モード)を含む、35個のモードを含んでいる。HEVCにおいて指定されている35個のイントラ予測モードは、以下の表I中で示されているようにインデックス付けされている。他の例では、33個の角度モードによりまだ表されていないことがある予測角度を含む、より多くのイントラモードが定義されていてもよい。
【0063】
【表1】
【0064】
[0077]
他の例では、角度モードに関係する予測角度は、HEVCにおいて使用されるものとは異なっていてもよい。例えば、図2および以下の表2に示されているように、67個のイントラ予測モードが、VVCにおいて指定されている。いくつかのケースでは、イントラ予測モードINTRA_LT_CCLM、INTRA_L_CCLM、および、INTRA_T_CCLMは、クロマ成分にのみ適用可能である。
【0065】
【表2】
【0066】
[0078]
ピクチャー間予測は、画像サンプルのブロックに対する動き補償された予測を導出するために、ピクチャー間の時間的相関を使用する。並進動きモデルを使用して、以前にデコードされたピクチャー(参照ピクチャー)中のブロックの位置は、動きベクトル(Δx,Δy)により示され、Δxは、現在ブロックの位置に対する参照ブロックの、水平変位を指定し、Δyは、垂直変位を指定する。いくつかのケースでは、動きベクトル(Δx,Δy)は、(整数精度としても呼ばれる)整数サンプル精度とすることができ、このケースでは、動きベクトルは、参照フレームの整数ペルグリッド(または、整数ピクセルサンプリンググリッド)を指している。いくつかのケースでは、参照フレームの整数ペルグリッドに制限されることなく、基礎をなすオブジェクトの動きをより正確にキャプチャするために、動きベクトル(Δx,Δy)は、(小数ペル精度または非整数精度としても呼ばれる)小数サンプル精度とすることができる。動きベクトルの精度は、動きベクトルの量子化レベルにより表現されるかもしれない。例えば、量子化レベルは、整数精度(例えば、1ピクセル)または小数ペル精度(例えば、1/4ピクセル、1/2ピクセル、または、他のサブピクセル値)であってもよい。対応する動きベクトルが小数サンプル精度を有するときには、補間が参照ピクチャーに適用され、予測信号が導出される。例えば、(例えば、1つ以上の補間フィルタを使用して)整数位置において利用可能なサンプルをフィルタリングして、小数位置における値を推定することができる。以前にデコードされた参照ピクチャーは、参照ピクチャーリストへの参照インデックス(refIdx)により示される。動きベクトルおよび参照インデックスは、動きパラメータとして呼ばれることがある。単予測および双予測を含む2種類のピクチャー間予測を実行することができる。
【0067】
[0079]
双予測を使用するインター予測では、動きパラメータの2つのセット(Δx,Δy,refIdx、および、Δx,Δy,refIdx)を使用して、(同じ参照ピクチャーから、または、場合によっては、異なる参照ピクチャーから)2つの動き補償された予測を発生させる。例えば、双予測では、各予測ブロックは、2つの動き補償された予測信号を使用し、B予測ユニットを発生させる。その後、2つの動き補償された予測を組み合わせて、最終的な動き補償された予測を得る。例えば、2つの動き補償された予測は、平均化することにより組み合わせることができる。別の例では、重み付けされた予測を使用することができ、このケースでは、異なる重みをそれぞれの動き補償された予測に適用することができる。双予測において使用することができる参照ピクチャーは、リスト0およびリスト1として示される2つの別個のリスト中に記憶される。動きパラメータは、動き推定プロセスを使用して、エンコーダにおいて導出することができる。
【0068】
[0080]
単予測を使用するインター予測では、動きパラメータの1つのセット(Δx,Δy,refIdx、)を使用して、参照ピクチャーから、動き補償された予測を発生させる。例えば、単予測では、各予測ブロックは、多くとも1つの動き補償された予測信号を使用し、P予測ユニットを発生させる。
【0069】
[0081]
PUは、予測プロセスに関連するデータ(例えば、動きパラメータまたは他の適切なデータ)を含んでいてもよい。例えば、PUがイントラ予測を使用してエンコードされるときには、PUは、PUに対するイントラ予測モードを記述するデータを含んでいてもよい。別の例として、PUがインター予測を使用してエンコードされるときには、PUは、PUに対する動きベクトルを規定するデータを含んでいてもよい。PUに対する動きベクトルを規定するデータは、例えば、動きベクトルの水平成分(Δx)、動きベクトルの垂直成分(Δy)、動きベクトルに対する解像度(例えば、整数精度、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャー、参照インデックス、動きベクトルに対する参照ピクチャーリスト(例えば、リスト0、リスト1、または、リストC)、または、これらの何らかの組み合わせを記述していてもよい。
【0070】
[0082]
イントラ予測および/またはインター予測を使用して予測を実行した後、エンコーディングデバイス104は、変換および量子化を実行することができる。例えば、予測に続いて、エンコーダエンジン106は、PUに対応する残差値を計算してもよい。残差値は、コード化されているピクセルの現在ブロック(PU)と、現在ブロックを予測するために使用される予測ブロック(例えば、現在ブロックの予測されたバージョン)との間のピクセル差分値を含んでいるかもしれない。例えば、(インター予測またはイントラ予測を使用して)予測ブロックを発生させた後に、エンコーダエンジン106は、現在ブロックから、予測ユニットにより生成された予測ブロックを減算することにより、残差ブロックを発生させることができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含んでいる。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(例えば、ピクセル値の2次元行列またはアレイ)で表されるかもしれない。いくつかの例では、残差ブロックは、ピクセル値の2次元表現である。
【0071】
[0083]
予測が実行された後に残っているかもしれない何らかの残差データは、離散コサイン変換(DCT)、離散サイン変換(DST)、整数変換、ウェーブレット変換、他の適切な変換関数、または、これらの何らかの組み合わせに基づいているかもしれないブロック変換を使用して変換される。いくつかのケースでは、1つ以上のブロック変換(例えば、サイズ32×32、16×16、8×8、4×4、または、他の適切なサイズのカーネル)を、各CU中の残差データに適用してもよい。いくつかの例では、エンコーダエンジン106により実現される変換および量子化プロセスのために、TUを使用してもよい。1つ以上のPUを有する所定のCUはまた、1つ以上のTUを含んでいてもよい。以下でさらに詳細に説明するように、残差値は、ブロック変換を使用して、変換係数に変換されてもよく、その後、TUを使用して量子化および走査して、エントロピーコーディングのためのシリアル化変換係数を生成させてもよい。
【0072】
[0084]
いくつかの実施形態では、CUのPUを使用して、イントラ予測的コーディングまたはインター予測的コーディングに続いて、エンコーダエンジン106は、CUのTUに対する残差データを計算してもよい。PUは、空間ドメイン(または、ピクセルドメイン)中のピクセルデータを含んでいてもよい。前述のように、残差データは、エンコードされていないピクチャーのピクセルとPUに対応する予測値との間のピクセル差分値に対応していてもよい。エンコーダエンジン106は、(PUを含む)CUに対する残差データを含む1つ以上のTUを形成してもよく、その後、TUを変換して、CUに対する変換係数を生成させてもよい。TUは、ブロック変換の適用にしたがう、変換ドメイン中の係数を含んでいてもよい。
【0073】
[0085]
エンコーダエンジン106は、変換係数の量子化を実行してもよい。量子化は、変換係数を量子化することによりさらなる圧縮をもたらして、係数を表すために使用されるデータの量を低減させる。例えば、量子化は、係数のいくつかまたはすべてに関係するビット深度を低減させてもよい。1つの例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられてもよく、nはmよりも大きい。
【0074】
[0086]
いったん量子化が実行されると、コード化されたビデオビットストリームは、(変換係数レベルとしても呼ばれる)量子化された変換係数と、予測情報(例えば、予測モード、動きベクトル、ブロックベクトル、または、これらに類するもの)と、区分情報と、他のシンタックスデータのような他の何らかの適切なデータとを含んでいる。コード化されたビデオビットストリームの異なる要素は、その後、エンコーダエンジン106によりエントロピーエンコードされてもよい。いくつかの例では、エンコーダエンジン106は、予め規定されている走査順序を利用して、量子化された変換係数を走査して、エントロピーエンコードすることができるシリアル化ベクトルを生成させてもよい。いくつかの例では、エンコーダエンジン106は、適応走査を実行してもよい。量子化された変換係数を走査してベクトル(例えば、1次元ベクトル)を形成した後、エンコーダエンジン106は、ベクトルをエントロピーエンコードしてもよい。例えば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または、別の適切なエントロピーエンコーディング技法を使用してもよい。
【0075】
[0087]
エンコーディングデバイス104の出力110は、エンコードされたビデオビットストリームデータを作り上げるNALユニットを、通信リンク120を介して、受信デバイスのデコーディングデバイス112に送ってもよい。デコーディングデバイス112の入力114は、NALユニットを受信してもよい。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、または、ワイヤードネットワークとワイヤレスネットワークとの組み合わせにより提供されるチャネルを含んでいてもよい。ワイヤレスネットワークは、何らかのワイヤレスインターフェースまたはワイヤレスインターフェースの組み合わせを含んでいてもよく、何らかの適切なワイヤレスネットワーク(例えば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(登録商標)、無線周波(RF)、超広帯域(UWB)、WiFi-Direct、セルラー、ロングタームエボリューション(LTE(登録商標))、WiMax(登録商標)、および、これらに類似するもの)を含んでいてもよい。ワイヤードネットワークは、何らかのワイヤードインターフェース(例えば、ファイバ、イーサネット(登録商標)、電力線イーサネット(登録商標)、同軸ケーブルを介したイーサネット(登録商標)、デジタル信号線(DSL)、または、これらに類するもの)を含んでいてもよい。ワイヤードおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチ、または、これらに類するもののような、さまざまな機器を使用して実現してもよい。エンコードされたビデオビットストリームデータは、ワイヤレス通信プロトコルのような通信標準規格にしたがって変調され、受信デバイスに送信されてもよい。
【0076】
[0088]
いくつかの例では、エンコーディングデバイス104は、エンコードされたビデオビットストリームデータを記憶装置108に記憶させてもよい。出力110は、エンコードされたビデオビットストリームデータを、エンコーダエンジン106から、または、記憶装置108から取り出してもよい。記憶装置108は、さまざまな分散またはローカルにアクセスされるデータ記憶媒体のいずれかを含んでいてもよく。例えば、記憶装置108は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは、エンコードされたビデオデータを記憶する他の何らかの適切なデジタル記憶媒体を含んでいてもよい。記憶装置108はまた、インター予測において使用するための参照ピクチャーを記憶するデコードピクチャーバッファ(DPB)を含むことがある。さらなる例では、記憶装置108は、発信元デバイスにより発生されたエンコードされたビデオを記憶するかもしれないファイルサーバまたは別の中間記憶デバイスに対応することがある。このケースでは、デコーディングデバイス112を含む受信デバイスは、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されているビデオデータにアクセスすることができる。ファイルサーバは、エンコードされたビデオデータを記憶し、エンコードされたビデオデータを受信デバイスに送信することができる何らかのタイプのサーバであってもよい。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、または、ローカルディスクドライブを含んでいる。受信デバイスは、インターネット接続を含む何らかの標準的なデータ接続を介して、エンコードされたビデオデータにアクセスしてもよい。これは、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム等)、または、ファイルサーバ上に記憶されているエンコードされたビデオデータにアクセスするのに適切な両方の組み合わせを含んでいてもよい。記憶装置108からのエンコードされたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または、これらの組み合わせであってもよい。
【0077】
[0089]
デコーディングデバイス116の入力114は、エンコードされたビデオビットストリームデータを受信し、ビデオビットストリームデータをデコーダエンジン116に、または、デコーダエンジン116による後の使用のために記憶装置118に提供してもよい。例えば、記憶装置118は、インター予測において使用するための参照ピクチャーを記憶するDPBを含んでいることがある。デコーディングデバイス112を含む受信デバイスは、デコードされることになるエンコードされたビデオデータを、記憶装置108を介して受信することができる。エンコードされたビデオデータは、ワイヤレス通信プロトコルのような通信標準規格にしたがって変調され、受信デバイスに送信されてもよい。エンコードされたビデオデータを送信するための通信媒体は、無線周波数(RF)スペクトルまたは1つ以上の物理送信線のような、何らかのワイヤレスまたはワイヤード通信媒体を備えることができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、または、インターネットのようなグローバルネットワークのような、パケットベースネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、または、発信元デバイスから受信デバイスへの通信を容易にするのに有用であるかもしれない他の何らかの機器を含んでいてもよい。
【0078】
[0090]
デコーダエンジン116は、(例えば、エントロピーデコーダを使用して)エントロピーデコードし、エンコードされたビデオデータを作り上げる1つ以上のコード化されたビデオシーケンスの要素を抽出することにより、エンコードされたビデオビットストリームデータをデコードしてもよい。その後、デコーダエンジン116は、エンコードされたビデオビットストリームデータ上で再スケーリングおよび逆変換を実行してもよい。残差データは、その後、デコーダエンジン116の予測ステージに渡される。その後、デコーダエンジン116は、ピクセルのブロック(例えば、PU)を予測する。いくつかの例では、予測は逆変換の出力(残差データ)に加算される。
【0079】
[0091]
ビデオデコーディングデバイス112は、デコードされたビデオデータをビデオ宛先デバイス122に出力してもよく、ビデオ宛先デバイス122は、コンテンツの消費者にデコードされたビデオデータを表示するディスプレイまたは他の出力デバイスを含んでいてもよい。いくつかの態様では、ビデオ宛先デバイス122は、デコーディングデバイス112を含む受信デバイスの一部であってもよい。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であってもよい。
【0080】
[0092]
いくつかの実施形態では、ビデオエンコーディングデバイス104および/またはビデオデコーディングデバイス112は、それぞれ、オーディオエンコーディングデバイスおよびオーディオデコーディングデバイスと統合されてもよい。ビデオエンコーディングデバイス104および/またはビデオデコーディングデバイス112はまた、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、または、これらの何らかの組み合わせのような、上記で説明したコーディング技法を実現するために必要な他のハードウェアまたはソフトウェアを含んでいてもよい。ビデオエンコーディングデバイス104およびビデオデコーディングデバイス112は、それぞれのデバイス中の組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されていてもよい。
【0081】
[0093]
図1中に示されている例示的なシステムは、本明細書で使用することができる1つの実例的な例である。本明細書で説明する技法を使用してビデオデータを処理する技法は、何らかのデジタルビデオエンコーディングおよび/またはデコーディングデバイスにより実行することができる。一般的に、本開示の技法はビデオエンコーディングデバイスまたはビデオデコーディングデバイスにより実行されるが、本開示の技法はまた、典型的に、「CODEC」として呼ばれる、組み合わされたビデオエンコーダ-デコーダにより実行されてもよい。さらに、本開示の技法は、ビデオプリプロセッサにより実行されてもよい。発信元デバイスおよび受信デバイスは、発信元デバイスが受信デバイスへの送信のためのコード化ビデオデータを発生させる、そのようなコーディングデバイスの例にすぎない。いくつかの例では、発信元デバイスおよび受信デバイスは、デバイスのそれぞれがビデオエンコーディングコンポーネントとビデオデコーディングコンポーネントとを含むように、実質的に対称的に動作してもよい。したがって、例示的なシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、または、ビデオ電話通信のために、ビデオデバイス間の一方向または双方向のビデオ送信をサポートしてもよい。図12を参照して、エンコーディングデバイス104の具体的な詳細の例を以下で説明する。図13を参照して、デコーディングデバイス112の具体的な詳細の例を以下で説明する。
【0082】
[0094]
HEVC標準規格に対する拡張は、MV-HEVCとして呼ばれるマルチビュービデオコーディング拡張と、SHVCとして呼ばれるスケーラブルビデオコーディング拡張とを含んでいる。MV-HEVCおよびSHVC拡張は、レイヤコーディングの概念を共有し、異なるレイヤがエンコードされたビデオビットストリーム中に含まれている。コード化されたビデオシーケンス中の各レイヤは、一意的なレイヤ識別子(ID)によりアドレス指定される。レイヤIDは、NALユニットが関係付けられるレイヤを識別するために、NALユニットのヘッダ中に存在していてもよい。MV-HEVCでは、異なるレイヤが、ビデオビットストリーム中の同じシーンの異なるビューを表すことができる。SHVCでは、異なる空間解像度(または、ピクチャー解像度)であるいは異なる再構築忠実度でビデオビットストリームを表す、異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0を有する)ベースレイヤと(レイヤID=1,2,...,nを有する)1つ以上のエンハンスメントレイヤとを含んでいてもよい。ベースレイヤは、HEVCの第1のバージョンのプロファイルに準拠していてもよく、ビットストリーム中の利用可能な最下位レイヤを表している。エンハンスメントレイヤは、ベースレイヤと比較して、増加した空間解像度、時間解像度またはフレームレート、ならびに/あるいは、再構築忠実度(または、品質)を有している。エンハンスメントレイヤは、階層的に組織化され、下位レイヤに依存していてもよい(または、依存していなくてもよい)。いくつかの例では、異なるレイヤが、単一の標準コーデックを使用してコード化されてもよい(例えば、すべてのレイヤが、HEVC、SHVC、または、他のコーディング標準規格を使用して、コード化される)。いくつかの例では、異なるレイヤが、マルチ標準コーデックを使用してコード化されてもよい。例えば、ベースレイヤはAVCを使用してコード化される一方で、1つ以上のエンハンスメントレイヤは、SHVCおよび/またはHEVC標準規格に対するMV―HEVC拡張を使用してコード化されてもよい。
【0083】
[0095]
一般的に、レイヤは、VCL NALユニットのセットと非VCL NALユニットの対応するセットとを含んでいる。NALユニットには、特定のレイヤID値が割り当てられる。レイヤは、レイヤが下位レイヤに依存しているかもしれないという意味で階層的であることがある。レイヤセットは、ビットストリーム内で自己完結型であると表されるレイヤのセットを指し、レイヤセット内のレイヤは、デコーディングプロセスにおいて、レイヤセット中の他のレイヤに依存することがあるが、デコーディングのために他の何らかのレイヤに依存しないことを意味する。したがって、レイヤセット中のレイヤは、ビデオコンテンツを表すことができる独立したビットストリームを形成することができる。レイヤセット中のレイヤのセットは、サブビットストリーム抽出プロセスの動作により、別のビットストリームから取得されてもよい。レイヤセットは、デコーダがあるパラメータにしたがって動作したいときにデコードされることになるレイヤのセットに対応していてもよい。
【0084】
[0096]
前に説明したように、HEVCビットストリームは、VCL NALユニットと非VCL NALユニットとを含むNALユニットのグループを含んでいる。VCL NALユニットは、コード化されたビデオビットストリームを形成するコード化されたピクチャーデータを含んでいる。例えば、コード化されたビデオビットストリームを形成するビットのシーケンスが、VCL NALユニット中に存在する。非VCL NALユニットは、他の情報に加えて、エンコードされたビデオビットストリームに関連する高レベル情報を有するパラメータセットを含んでいてもよい。例えば、パラメータセットは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャーパラメータセット(PPS)とを含んでいてもよい。パラメータセットの目標の例は、ビットレート効率と、エラー復元力と、システムレイヤインターフェースを提供することとを含んでいる。デコーディングデバイス112がスライスをデコードするために使用するかもしれない情報にアクセスするために、各スライスは、単一のアクティブなPPS、SPSおよびVPSを参照する。VPS ID、SPS ID、および、PPS IDを含む、各パラメータセットに対して、識別子(ID)がコード化されてもよい。SPSは、SPS IDとVPS IDとを含んでいる。PPSは、PPS IDとSPS IDとを含んでいる。各スライスヘッダは、PPS IDを含んでいる。IDを使用して、所定のスライスに対して、アクティブパラメータセットを識別することができる。
【0085】
[0097]
PPSは、所定のピクチャー中のすべてのスライスに適用される情報を含んでいる。このことから、ピクチャー中のすべてのスライスは、同じPPSを指している。異なるピクチャー中のスライスも、同じPPSを指していてもよい。SPSは、同じコード化されたビデオシーケンス(CVS)またはビットストリーム中のすべてのピクチャーに適用される情報を含んでいる。前述のように、コード化されたビデオシーケンスは、ベースレイヤ中のランダムアクセスポイントピクチャー(例えば、瞬時デコード参照(IDR)ピクチャーまたはブロークンリンクアクセス(BLA)ピクチャー、あるいは、他の適切なランダムアクセスポイントピクチャー)で開始し、ベースレイヤ中のランダムアクセスポイントピクチャーを持ち、ある性質(または、ビットストリームの終了)を有する次のアクセスユニット(AU)を含まないが次のAUまで(上記で説明した)いくつかの性質を有する、一連のAUである。SPS中の情報は、コード化されたビデオシーケンス内ではピクチャー毎に変化しないかもしれない。コード化されたビデオシーケンス中のピクチャーは、同じSPSを使用するかもしれない。VPSは、コード化されたビデオシーケンスまたはビットストリーム内のすべてのレイヤに適用される情報を含んでいる。VPSは、コード化されたビデオシーケンス全体に適用されるシンタックス要素を有するシンタックス構造を含んでいる。いくつかの実施形態では、VPS、SPSまたはPPSは、エンコードされたビデオデータと帯域内で送信されてもよい。いくつかの実施形態では、VPS、SPSまたはPPSは、コード化されたビデオデータを含んでいるNALユニット以外の別個の送信において、帯域外で送信されてもよい。
【0086】
[0098]
ビデオビットストリームはまた、補足エンハンスメント情報(SEI)メッセージを含んでいることがある。例えば、SEI NALユニットは、ビデオビットストリームの一部であることがある。いくつかのケースでは、SEIメッセージは、デコーディングプロセスにより必要とされないある情報を含んでいることがある。例えば、SEIメッセージ中の情報は、デコーダがビットストリームのビデオピクチャーをデコードするために必須ではないかもしれないが、デコーダは、ピクチャーの表示または処理(例えば、デコードされた出力)を改善するために情報を使用することができる。SEIメッセージ中の情報は、埋め込まれたメタデータであることがある。1つの例示的な例では、SEIメッセージ中の情報は、コンテンツの可視性を改善するために、デコーダ側エンティティにより使用することができる。いくつかの事例では、いくつかのアプリケーション標準規格は、品質の改善がアプリケーション標準規格に準拠するすべてのデバイスにもたらされることができるように、ビットストリーム中のそのようなSEIメッセージの存在を義務付けてもよい(例えば、他の多くの例に加えて、SEIメッセージがビデオのフレーム毎に搬送される、フレーム互換Planar立体3DTVビデオフォーマットのためのフレームパッキングSEIメッセージの搬送、復元ポイントSEIメッセージの取り扱い、DVBにおけるパンスキャンスキャン矩形SEIメッセージの使用)。
【0087】
[0099]
いくつかのインプリメンテーションでは、ビデオコーダ(例えば、ビデオエンコーダ、ビデオデコーダ、あるいは、組み合わされたエンコーダデコーダすなわちCODEC)は、残差ブロック上でブロックベースのパルスコード変調(PCM)モードを利用することができ、これは、ブロックベースの量子化された残差ドメインPCM(BDPCM)または残差差分(または、デルタ)PCM(RDPCM)として呼ばれることがある。BDPCM予測モードは、イントラ予測モードとは別個である。図2は、モード0~66として示されている、VVCに関係する67個のイントラ予測モードの例示的な実例を提供している図である。モード0はPlanarモードであり、モード1はDCモードであり、モード2~66は角度モードである。上述したように、現在ブロック信号から予測信号を減算することにより(予測誤差に対応している)、残差信号(または、残差ブロック)を発生させることができる。したがって、残差信号は、選択された予測器により予測できなかった元の信号の一部分である。ビデオコーダは、垂直または水平方向の隣接サンプルから、残差ブロックを予測することができる。いったん残差ブロックが決定されると、変換および量子化を適用して量子化係数を発生させることができる。
【0088】
[0100]
BDPCMモードを使用して、ビデオコーダは、以前の行または列中の値に基づいて、量子化係数の行または列の値を修正することができる。BDPCMモードは、水平BDPCMと垂直BDPCMとを含んでいることがある。垂直BDPCMの1つの例示的な実例では、ビデオコーダは、量子化係数のブロックの(行0として呼ばれる)第1の行をそのままにしておくことができる。ブロックの第2の行(行1)に対して、ビデオコーダは、行1の値から行0の値を減算する(例えば、行1の第1の値から行0の第1の値を減算する、行1の第2の値から行0の第2の値を減算する等)ことができる。ビデオコーダは、ブロックの第3の行(行2)に対して、行2の値から行1中の値を減算し、ブロックの第4の行(行3)に対して、行3の値から行2中の値を減算する等することができる。減算は、減算の結果に等しい値を決定することを指すことができ、減算することにより、または、値の負を加算することにより実行することができる。ビデオコーダは、行0に対する変換され量子化された残差値を、行1に対する差分値を、行2に対する差分値等をシグナリングすることができる。
【0089】
[0101]
図3は、垂直BDPCMモードを使用して、エンコーディングデバイス(例えば、エンコーディングデバイス104、または、エンコーディングデバイス104を含むCODEC)によりコード化されている現在ブロック304を含むピクチャー302の例を図示すブロック図である。現在ブロック304の第1の隣接ブロックは、現在ブロックの上に示され(上隣接ブロック306として呼ばれる)、現在ブロック304の第2の隣接ブロックは、現在ブロックの左に示されている(左隣接ブロック308として呼ばれる)。垂直BDPCMモードを使用して、上隣接ブロック306の最下行307から、現在ブロックを予測することができる。例えば、上隣接ブロック306の最下行を使用して、現在ブロック304に対して、(残差信号を表す)残差ブロックを発生させることができる。水平BDPCMが使用されていた場合には、現在ブロックは、左隣接ブロック308の最も右の列309から予測することができる。
【0090】
[0102]
図4Aは、さまざまな値を有する上隣接ブロック306の最下行307を図示する図であり、図4Bは、さまざまな値を有する現在ブロック304を図示する図である。最下行307中の値および現在ブロック304中の値は、サンプル値(例えば、ルーマ値、クロマ値、または、ルーマ値およびクロマ値)を表している。図5は、上隣接ブロック306の最下行307を使用して、現在ブロック304に対して発生された残差ブロック510の例を図示する図である。垂直BDPCMモードを使用して、上隣接ブロック306の最下行307が、現在ブロック304中のライン毎から減算され、残差ブロック510が取得される。例えば、最下行307が現在ブロック304の(行0として呼ばれる)第1の行から減算され、残差ブロック510の第1の行(行0)が決定される。現在ブロック304の行0中の第1の値11から、最下行307中の第1の値8が減算されて、3の値が取得され、これは、残差ブロック510の第1の値として含まれる。現在ブロック304の行0中の第2の値12から、最下行307中の第2の値7が減算されて、5の値が取得され、これは、残差ブロック510の第2の値として含まれる。現在ブロック304の行0中の第3の値13から、最下行307中の第3の値6が減算されて、7の値が取得され、これは、残差ブロック510の第3の値として含まれる。現在ブロック304の行0中の第4の値14から、最下行307中の第4の値5が減算されて、9の値が取得され、これは、残差ブロック510の第4の値として含まれる。残差ブロック510の第2の行(行1)、第3の行(行2)、第4の行(行3)中の値を決定するために、同様な計算がなされる。
【0091】
[0103]
エンコーディングデバイスは、残差ブロック510上で変換を実行することができ、変換された値を量子化して、コード化されることになる最終の量子化された変換係数値を決定することができる。量子化された変換係数は、変換係数レベルまたはレベルとして呼ばれることがある。変換および量子化に関する詳細は、図1に関して上記で説明しており、以下で、図12および図13に関して説明する。図6は、残差ブロック510中の値を変換および量子化することから生じる、量子化された変換係数を有するブロック620の例を図示する図である。通常のイントラ予測モード(例えば、図2中に示されているイントラ予測モード0~66)では、エンコーディングデバイスは、(例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)または他のエントロピーコーディング技法を使用するような、量子化された変換係数のエントロピーコーディングを実行することにより)量子化された変換係数をそのままコード化することになる。
【0092】
[0104]
PDPCMを実行するときには、量子化された変換係数上で、追加の予測が実行される。上述したように、エンコーディングデバイスは、以前の行または列中の値に基づいて、量子化係数の行または列の値を修正することができる。図7は、垂直BDPCMを使用して、量子化された変換係数のブロック620から決定された値を含む、ブロック730例を図示する図である。量子化された変換係数のブロック620の(行0と呼ばれる)第1行は変更されず、ブロック730中でそのまま保持される。例えば、図7中に示されているように、ブロック730の行0は値1、2、3および4を含み、これらは、ブロック620の行0と同じ値である。ブロック730の第2行(行1)に対して、エンコーディングデバイスは、ブロック620の行1中の値から、ブロック620の行0中の値を減算する。例えば、ブロック620の行0中の第1の値1は、ブロック620の行1中の第1の値10から減算され、9の値が取得され、これは、ブロック730の行1中の第1の値として含まれる。ブロック620の行0中の第2の値2は、ブロック620の行1中の第2の値11から減算され、9の値が取得され、これは、ブロック730の行1中の第2の値として含まれる。ブロック620の行0中の第3の値3は、ブロック620の行1中の第3の値12から減算され、9の値が取得され、これは、ブロック730の行1中の第3の値として含まれる。ブロック620の行0中の第4の値4は、ブロック620の行1中の第4の値13から減算され、9の値が取得され、これは、ブロック730の行1中の第4の値として含まれる。結果として、ブロック730中の第2の行(行1)は、値9、9、9および9を含んでいる。
【0093】
[0105]
ブロック730の第3の行(行2)および第4の行(行3)中の値を決定するために、同様の計算が行われる。例えば、ブロック730の第3の行(行2)は、ブロック620の行2中の値から、ブロック620の行1中の値を減算することにより決定され、ブロック730の第3の行(行3)は、ブロック620の行3中の値から、ブロック620の行2中の値を減算することにより決定される。その後、エンコーディングデバイスは、(例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)または他のエントロピーコーディング技法を使用するような、量子化された変換係数のエントロピーコーディングを実行することにより)ブロック730中の値をコード化することができる。コード化された値は、エンコードされたビデオビットストリーム中に含めて、デコーディングのためのデバイスによる受信のために記憶および/または送信することができる。デコーディングデバイスは、BDPCMを使用してエンコードされたブロックをデコードするために、BDPCMを実行するように上述したようなプロセスと逆のプロセスを実行することができる。
【0094】
[0106]
BDPCM予測モードは、イントラ予測モードのシグナリングとは別個にシグナリングされる。BDPCM予測モードに関係するさまざまなシンタックス要素および変数は、エンコーディングデバイスによりシグナリングすることができ、BDPCMモードを使用してブロックをデコードすべきか否かを決定するためにデコーディングデバイスにより使用することができる。例えば、BDPCM予測の方向(例えば、水平または垂直)を示すシンタックス要素および/または変数とともに、ブロックがBDPCMモードを使用するか否かを示すシンタックス要素および/または変数をシグナリングすることができる。イントラ予測モードシグナリングは、予測子を利用して、ブロックをコード化するために使用することができるイントラ予測モードをシグナリングする。いくつかの例では、予測子は、(MPMリストとしても呼ばれる)最確モード(MPM)予測子リスト中でシグナリングすることができる。図2中に示されているように、VVCは67個の利用可能なイントラ予測モードを指定する。ある数のイントラ予測モード(例えば、VVCでは5個、HEVCでは3個、または、他の適切な個数)をMPMリスト中に含めることができる。MPMリスト中に含まれているイントラ予測モードは、MPMモードとして呼ばれる。(MPMモード以外の)残りのモードは、非MPMモードとして呼ばれる。いくつかのケースでは、MPMリストは、アレイcandModeList[ ]として指定することができる。
【0095】
[0107]
MPMリスト発生は、エンコーダおよびデコーダにおいて、同じプロセスを使用して実行される。例えば、エンコーディングデバイスおよびデコーディングデバイスは、ブロックに対してMPMリストを独立して発生させることができる。エンコーディングデバイスは、(MPMリスト中の)MPMモードから、または、非MPMモードから、ブロックに対するイントラ予測モードを選択するためにデコーダが使用することができる情報をシグナリングすることができる。いくつかのケースでは、MPM発生は、ルーマサンプルのイントラ予測に対してのみ指定される。例えば、MPM発生は、(クロマではなく)ルーマサンプルのイントラ予測に対して、VVC中でのみ指定される。他のケースでは、MPM発生は、ルーマサンプルおよびクロマサンプルに対して、指定し、実行することができる。
【0096】
[0108]
MPMリスト中の最確モードは、それらがモードの残りとは異なるようにシグナリングされるので、「特殊」と見なすことができる。MPMリスト中のブロックに対するMPMモードは、それらが別個にシグナリングされることから記憶される。VVCでは、PlanarモードはMPMリストから「除外」されているが、Planarモードはまた、残りの予測モード(例えば、他のイントラ予測モード)とは別個にシグナリングされる。Planarモードは、MPMリスト自体には含まれないが、最確モードと見なすことができる。
【0097】
[0109]
コード化された(エンコードまたはデコードされた)各ブロックに対して、最確モードのリストが規定されてもよい。コード化されているブロックは、現在ブロックとして呼ばれる。上述したように、VVCでは、Planarモードは、発生されるMPMリスト中に含まれず、MPMリスト中の最確モードの数をカウントしない。現在ブロックに隣接する1つ以上の隣接ブロックに対して使用されるイントラ予測モードから、現在ブロックに対するMPMリスト中に含める予測子のうち1つ以上を導出することができる。例えば、現在ブロックに隣接する2つの隣接ブロックを選択して、現在ブロックに対するMPMリスト中に含めるモードを導出するために使用することができる。ブロックの位置は、現在ブロックに対して規定することができる。例えば、現在ブロックの第1の隣接ブロックは、現在ブロックの(上隣接ブロックと呼ばれる)上のブロックを含むことができ、現在ブロックの第2の隣接ブロックは、現在ブロックの(左隣接ブロックと呼ばれる)左のブロックを含むことができる。1つの実例的な例において、ブロックに対するMPMリスト中にトータルで5つのモードを含めることができ、5つのモードのうちの2つは、2つの隣接ブロックのモードである。いくつかのケースでは、隣接ブロックのモードの両方が同一である場合には、それらは、MPMリスト中で1つのエントリのみとカウントされる。
【0098】
[0110]
図8は、コード化(エンコードまたはデコード)されている現在ブロック804を含むピクチャー802の例を図示する図である。実例的な例として図8を参照すると、現在ブロック804に対するMPMリストを発生させるときには、上隣接ブロック806および左隣接ブロック808を選択して、現在ブロック804に対するMPMリストのための予測子の導出のために使用することができる。いくつかのケースでは、現在ブロック(例えば、現在ブロック804)に対するMPMリストのための予測子として、2つの隣接ブロック(例えば、上隣接ブロック806および左隣接ブロック808)をそれぞれ表す1つのイントラ予測モードを選ぶことができる。いくつかの例では、隣接ブロックがレギュラーイントラ予測モード(例えば、図2中に示されている67個のイントラ予測モードのうちの1つ)でコード化される場合には、そのイントラ予測モードは、現在ブロックに対するMPMリスト中に含まれるように、隣接ブロックに対する代表的なモードとして選ばれる。このような例では、隣接ブロックがレギュラーイントラ予測モード以外のコーディングモードでコード化される(例えば、行列イントラ予測(MIP)、インター予測、イントラブロックコピー(IBC)、BDPCM、利用可能でない、または、他の非イントラ予測モードを使用してのコード化される)場合には、代表的なモードは、あるルールに基づいて選ばれる。1つの実例的な例では、MIPコード化またはイントラコード化されないような(例えば、インター、IBC等)、隣接ブロックのモードが利用可能ではないときには、隣接ブロックに対する代表的なイントラ予測モードは、Planarまたは他のデフォルトモードであるように設定することができる。以下で説明するように、隣接ブロックがBDPCMを使用してコード化される場合には、MPMリストに対して使用されるであろう隣接ブロックに対して指定されるイントラ予測モード(例えば、水平、垂直等)があるかもしれない。
【0099】
[0111]
いくつかのインプリメンテーションでは、1つ以上のイントラ予測モード(例えば、図2中で、モード0として呼ばれるDCモード)を、常に、何らかのロケーションにおいて、(例えば、MPMリスト中の第1のエントリとして)MPMリスト中に含めることができる。例えば、VVCでは、DCモードがMPMリスト中に含まれている(例えば、常に何らかのロケーションにおいて、MPM中に含まれている)。ブロックに対するMPMの残りのMPMモードは、隣接モードおよび/または他のデフォルトモードから導出することができる。例えば、コーディングデバイス(例えば、エンコーディングデバイスおよび/またはデコーディングデバイス)は、ブロックに対するMPMリストを満たすために、隣接ブロックのモードの近くのモードを決定することができる。例えば、xおよびyがそれぞれブロックAおよびBの隣接モードである場合には、x+1、x-1、y+1、y-1、x+2等を、MPMリスト中に含めることができる。1つの実例的な例では、xがイントラ予測モード36である場合には、x+1はイントラ予測モード37であり、x-1はイントラ予測モード35である。ステップのセットを使用して、例えば、VVC標準規格で指定されているように、どのモードが追加されるかを決定することができる。いくつかのケースでは、デフォルトモードは、垂直イントラ予測モード(モード50)、水平イントラ予測モード(モード18)、または、MPMリストに追加することができる他のモードを含むことができる。導出の基礎となる仮定は、MPMリストにおける反復が回避されるということにすることができる。
【0100】
[0112]
1つの例では、2つの隣接ブロックからの2つのモードと、DCモードと、隣接モードから導出された2つのモードとに基づいて、5つのモードが、現在ブロックに対するMPMリスト中に含まれる。いくつかのケースでは、他の数のイントラ予測モード(例えば、HEVCによる3つのイントラ予測モード)を、MPMリスト中に含めることができる。
【0101】
[0113]
現在ブロックをエンコードするときには、エンコーディングデバイスは、現在ブロックをエンコードすべきイントラ予測モード(例えば、Planarモード、DCモード、または、角度モード)を選ぶ。例えば、以下で説明するように、エンコーディングデバイスは、誤差結果(例えば、コーディングレートおよび歪みレベル、または、これらに類するもの)に基づいて、現在ブロックに対する、複数のイントラ予測コーディングモードのうちの1つ、または、複数のインター予測コーディングモードのうちの1つのような、複数の可能性あるコーディングモードのうちの1つを選択することができる。選択されたモードがMPMリストに属する場合には、イントラ予測モードリストフラグは、真(例えば、1の値を有する)に設定される。1つの実例的な例では、イントラ予測モードリストフラグは、intra_luma_mpm_flagとして表すことができる。イントラ予測モードリストフラグが真に設定されるときには(例えば、intra_luma_mpm_flagが1に等しい)、選択されたモードがPlanarであるか否かに依存して、イントラ予測モードがPlanarモードでないか否かを示すPlanarフラグの値がシグナリングされる。Planarフラグは、intra_luma_not_planar_flagとして表すことができ、intra_luma_not_planar_flagの真の値(例えば、1に等しい)は、MPMモードがPlanarモードでないことを示し、偽の値(例えば、0に等しい)は、MPMモードがPlanarモードであることを示している。MPMモードがPlanarモードでない場合には(例えば、intra_luma_not_planar_flagが1に等しい)、エンコードされたビデオビットストリーム中で、MPMリストへのインデックスをシグナリングすることができる。MPMリストに関係するインデックスは、intra_luma_mpm_idxとして表すことができ、現在ブロックに対して使用されることになるMPMリストからのMPMモードを示すことができる。選択されたモードがMPMリストに属していない場合には、イントラ予測モードフラグ(例えば、intra_luma_mpm_flag)は偽に設定され(例えば、0の値を有する)、非MPMイントラ予測モードへの非MPMインデックスは、エンコードされたビデオビットストリーム中でシグナリングされる。
【0102】
[0114]
デコーダに関して、デコードされている現在ブロックに対して、イントラ予測モードリストフラグ(例えば、intra_luma_mpm_flag)は、エンコードされたビデオビットストリームから取得することができる。上述したように、イントラ予測モードリストフラグ(例えば、intra_luma_mpm_flag)は、選択されたイントラ予測モードがMPMリスト中のものの中にあるか否かをデコーダに指定する。いくつかのケースでは、イントラ予測モードリストフラグ(例えば、intra_luma_mpm_flag)が偽に設定されている場合には、デコーダは、ブロックに対するMPMリストを導出しないように選択するかもしれない。イントラ予測モードリストフラグが真に設定される場合には(例えば、intra_luma_mpm_flagが1に等しい)、Planarフラグ(例えば、intra_luma_not_planar_flag)および/またはMPMリストへのインデックス(例えば、intra_luma_mpm_idx)を使用して、MPMリストからモードが選択される。例えば、Planarフラグが偽の値(例えば、intra_luma_not_planar_flagが0に等しい)を有する場合には、デコーダは、MPMモードがPlanarモードであることを決定することができる。Planarフラグが真の値(例えば、intra_luma_not_planar_flagが1に等しい)を有する場合には、デコーダは、MPMモードがPlanarモードではないことを決定することができ、現在ブロックをデコードするためにMPMリスト中のどのMPMモードを選択するのかを決定するために、MPMリストへのインデックス(例えば、intra_luma_mpm_idx)を示すことができる。イントラ予測モードリストフラグが偽に設定される場合には(例えば、intra_luma_mpm_flagが0に等しい)、非MPMインデックスをデコーダにより使用して、現在ブロックをデコードするために使用する非MPMインデックスを導出することができる。
【0103】
[0115]
上記で説明したように、現在ブロックに対するMPMリスト中のMPMイントラ予測モードとして、現在ブロックに隣接する1つ以上の隣接ブロックに適用されるイントラ予測モードを使用することができる。しかしながら、隣接ブロックが、イントラ予測モードではなく(例えば、図2中に示されているVVCの67個のイントラ予測モードのうちの1つではなく)BDPCMモードを使用してコード化されているときには、現在ブロックに対するMPMリストに追加することができる隣接ブロックに関係するイントラ予測モードはない。イントラモード導出のために、BDPCMモードを使用してエンコードされたブロックは、将来のコード化されるブロックに対する1つ以上のイントラ予測モード予測子の導出のために、それに割り当てられるイントラ予測モードを要求するかもしれない。例えば、現在ブロックをエンコードまたはデコードするときには、コーディングデバイス(例えば、エンコーディングデバイス、デコーディングデバイス、または、CODEC)は、BDPCMモードを使用してコード化される隣接ブロック(現在ブロックに隣接する)にイントラ予測モードを割り当てることができ、割り当てられたイントラ予測モードを現在ブロックに対するMPMリスト中に含めることができる。いくつかの技法は、BDPCMコード化されたブロックに割り当てるイントラ予測モードとして、予測子リストの第1の要素(例えば、MPMリスト中の第1のエントリ)を割り当てる。いくつかのケースでは、Planarモード、DCモード、または、他のモードが、MPMリスト中の第1のエントリと見なされてもよい。
【0104】
[0116]
BDPCMコード化されたブロックに対するイントラ予測モードを割り当てるためのシステム、方法、装置およびコンピュータ読取可能媒体を本明細書で説明する。異なるイントラ予測モードへの異なるBDPCMモードのマッピングを提供することができる。例えば、水平イントラ予測モード(例えば、モード18)は、水平BDPCMモードにマッピングすることができ、垂直イントラ予測モード(例えば、モード50)は、垂直BDPCMモードにマッピングすることができる。このようなマッピングを使用して、水平BDPCMモードを使用してコード化されたブロックに、水平イントラ予測モードを割り当てることができ、垂直BDPCMモードを使用してコード化されたブロックに、垂直イントラ予測モードを割り当てることができる。いくつかのケースでは、PLANARモードおよび/またはDCモードは、BDCPMコード化ブロックに割り当てることができる。
【0105】
[0117]
イントラ予測モードとBDPCMモードとの間のマッピングを使用して、将来コード化されるブロックに対する予測子リスト(例えば、MPMリスト)を導出することができる。例えば、BDPCMコード化されたブロックに割り当てられたイントラ予測モードは、現在ブロックに対する予測子リスト(例えば、MPMリスト)中に含めることができる。1つの例では、水平イントラ予測モードと水平BDPCMモードとの間のマッピングに基づいて、水平イントラ予測モードは、水平BDPCMモードを使用してコード化された隣接ブロックを表すために、現在ブロックに対するMPM予測子リスト中に含めることができる。別の例では、垂直イントラ予測モードと垂直BDPCMモードとの間のマッピングに基づいて、垂直イントラ予測モードは、垂直BDPCMモードを使用してコード化された隣接ブロックを表すために、現在ブロックに対するMPM予測子リスト中に含めることができる。
【0106】
[0118]
図9は、コード化されている(例えば、エンコーディングデバイスによりエンコードされている、または、デコーディングデバイスによりデコードされている)現在ブロック904を含むピクチャー902の例を図示する図である。現在ブロック904に対するMPMリストを発生させるときには、上隣接ブロック906と左隣接ブロック908と選択して、現在ブロック904に対するMPMリストのための予測子を導出するために使用することができる。図示されているように、イントラ予測モードXを使用して、左隣接ブロック908がコード化(エンコードまたはデコード)されている。イントラ予測モードXは、例えば、図2中に示されているイントラの67個の予測モードのいずれかを含むことができる。イントラ予測モードXは、現在ブロック904に対するMPMリストに追加することができる。
【0107】
[0119]
図9中に示されているように、BDPCMを使用して、上隣接ブロック906がコード化(エンコードまたはデコード)されている。1つの実例的な例では、上隣接ブロック906をコード化するために使用されるBDPCMモードは、水平BDPCMモードである。このような例では、水平BDPCMモードは、上隣接ブロック906を表すために、水平イントラ予測モード(例えば、図2からのモード18)にマッピングすることができる。上隣接ブロック906を表す水平イントラ予測モードは、現在ブロック904に対するMPMリストに追加することができる。別の実例的な例では、上隣接ブロック906をコード化するために使用されるBDPCMモードは、垂直BDPCMモードである。このような例では、垂直BDPCMモードは、上隣接ブロック906を表すために、垂直イントラ予測モード(例えば、図2からのモード50)にマッピングすることができる。上隣接ブロック906を表す垂直イントラ予測モードは、現在ブロック904に対するMPMリストに追加することができる。いくつかのインプリメンテーションでは、1つ以上の他のイントラ予測モードも、現在ブロック904に対するMPMリストに含めることができる。例えば、いくつかのケースでは、DCモードを現在ブロック904に対するMPMリストに含めることができる。
【0108】
[0120]
いくつかのケースでは、水平BDPCMモードは、隣接ブロックを表すために、水平イントラ予測モード(例えば、図2からのモード18)にマッピングすることができる。なぜなら、ブロックへの適用のために水平BDPCMモードを選択させるかもしれないブロックの性質は、ブロックへの適用のために水平イントラ予測モードを選択させるかもしれないブロックの性質と類似するからである。ブロックの性質に基づいて、(水平BDPCMモードが利用可能でない場合)ブロックは、水平イントラ予測モードを使用して予測するのに最も適しているだろう。いくつかのケースでは、垂直BDPCMモードは、隣接ブロックを表すために、垂直イントラ予測モード(例えば、図2からのモード18)にマッピングすることができる。なぜなら、ブロックへの適用のために垂直BDPCMモードを選択させるかもしれないブロックの性質は、ブロックへの適用のために垂直イントラ予測モードを選択させるかもしれないブロックの性質と類似するからである。ブロックの性質に基づいて、(垂直BDPCMモードが利用可能でない場合)ブロックは、垂直イントラ予測モードを使用して予測するのに最も適しているだろう。
【0109】
[0121]
いくつかのインプリメンテーションでは、コーディングデバイス(例えば、エンコーディングデバイス、デコーディングデバイス、または、CODEC)は、レギュラーまたはツリー区分構造に加えて、イントラサブ区分(ISP)モードを適用することができる。例えば、QTBT構造またはMTT構造を使用して、ピクチャーをコーディングユニットまたはブロックに分けることができ、ISPを使用して、コーディングユニットまたはコーディングブロックをさらに分けることができる。ISPモードでは、コーディングブロックを分けることから結果的に得られる2つ以上の区分は、同じイントラ予測モードを共有する。例えば、コーディングブロックの2つ以上の区分を、別個に(例えば、シーケンシャルな順序で)エンコードまたはデコードすることができるが、2つ以上の区分のそれぞれに対して、同じイントラ予測モードが使用される。例えば、いくつかのインプリメンテーションでは、ISPモードが、有効にされるか、または、コーディングブロックに適用されるように選択される場合には、コーディングブロックは区分することができ、同じイントラ予測モードを、区分のそれぞれに適用することができる。いくつかのインプリメンテーションでは、BDPCMコード化されたブロックは、非ISPモードコード化されたブロックとして取り扱うことができる。例えば、BDPCMを使用してコード化されたブロックは、ISPモードを使用してコード化されないかもしれない。
【0110】
[0122]
図10は、本明細書で説明する技法を使用して、ビデオデータをデコードするプロセス1000の1つの例を図示するフローチャートである。いくつかの例では、プロセス1000は、デコーディングデバイス(例えば、デコーディングデバイス112)により実行される。他の例では、プロセス1000は、デバイスのプロセッサが命令を実行するときに、デバイスにプロセス1000を実行させる、非一時的記憶媒体中の命令として実現することができる。いくつかのケースでは、プロセス1000がビデオデコーダにより実行されるときには、ビデオデータは、エンコードされたビデオビットストリーム中に含まれている、コード化されたピクチャーまたはコード化されたピクチャーの一部分(例えば、1つ以上のブロック)を含んでいることがあり、あるいは、エンコードされたビデオビットストリーム中に含まれている複数のコード化されたピクチャーを含んでいることがある。
【0111】
[0123]
ブロック1002において、プロセス1000は、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得することを含んでいる。いくつかのインプリメンテーションでは、第1のブロックは、(例えば、ルーマサンプルを含み、クロマサンプルを含まない)ルーマコーディングブロックである。いくつかのインプリメンテーションでは、第1のブロックは、(例えば、クロマサンプルを含み、ルーマサンプルを含まない)クロマコーディングブロックである。いくつかのインプリメンテーションでは、第1のブロックは、ルーマサンプルとクロマサンプルとを含んでいるコーディングブロックである。
【0112】
[0124]
ブロック1004において、プロセス1000は、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されることを決定することを含んでいる。本明細書で説明するように、第2のブロックは、ピクチャー中の第1のブロックの隣接ブロックとすることができる。図9を参照する1つの実例的な例では、第1のブロックは、現在ブロック904を含むことができ、第2のブロックは、隣接ブロック906とすることができる。
【0113】
[0125]
ブロック1006において、プロセス1000は、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することを含んでいる。ブロック1008において、プロセス1000は、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加することを含んでいる。いくつかの態様では、イントラ予測モードリストは、最確モード(MPM)リストを含んでいる。
【0114】
[0126]
いくつかの例では、プロセス1000は、エンコードされたビデオビットストリームからの情報に基づいて、かつ、イントラ予測モードリストに基づいて、第1のブロックをデコードするために使用する予測モードを決定することを含んでいる。プロセス1000は、決定された予測モードを使用して、第1のブロックをデコードすることができる。いくつかのインプリメンテーションでは、エンコードされたビデオビットストリームからの情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリストに含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含んでいる。第1のブロックをデコードするために使用されることになる予測モードが、イントラ予測モードリストに属している場合には、イントラ予測モードリストフラグは、(例えば、1の値を有する)真に設定することができる。1つの実例的な例では、イントラ予測モードリストフラグは、intra_luma_mpm_flagとして表すことができる。いくつかの例では、プロセス1000は、イントラ予測モードリストフラグの値に基づいて(例えば、イントラ予測モードリストフラグが1の値を有することに基づいて)、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリストに含まれている多数の予測モードの中にあることを決定することを含んでいる。第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリストに含まれている多数の予測モードの中にあることを決定することに基づいて、プロセス1000は、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定することができる。上述したように、モードがイントラ予測モードリストに属していない場合には、イントラ予測モードリストフラグ(例えば、intra_luma_mpm_flag)は、(例えば、0の値を有する)偽に設定され、非MPMイントラ予測モードへの非MPMインデックスを、エンコードされたビデオビットストリーム中でシグナリングすることができる。
【0115】
[0127]
いくつかのインプリメンテーションでは、エンコードされたビデオビットストリーム中の情報が、イントラ予測モードリストに関係するインデックス値を含んでいる。例えば、情報は、イントラ予測モードリストフラグとインデックス値とを含んでいることがある。1つの実例的な例では、イントラ予測モードリストに関係するインデックスは、intra_luma_mpm_idxとして表すことができ、第1のブロックのために使用されることになるイントラ予測モードリストからの予測モードを示すことができる。プロセス1000は、インデックス値を使用して、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定することを含むことができる。
【0116】
[0128]
いくつかの例では、プロセス1000は、エンコードされたビデオビットストリーム中に含まれているピクチャーの第3のブロックを取得することと、ピクチャーの第4のブロックが、水平ブロックベースのBDPCMモードを使用してコード化されていることを決定することとを含んでいる。このような例では、プロセス1000は、第4のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第3のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第3のブロックに対するイントラ予測モードリストに追加することとを含んでいる。
【0117】
[0129]
図11は、本明細書で説明する技法を使用して、ビデオデータをエンコードするプロセス1100の例を図示するフローチャートである。いくつかの例では、プロセス1100は、エンコーディングデバイス(例えば、エンコーディングデバイス104)により実行される。他の例では、プロセス1100は、デバイスのプロセッサが命令を実行するときに、デバイスにプロセス1100を実行させる、非一時的記憶媒体中の命令として実現することができる。いくつかのケースでは、プロセス1100がビデオエンコーダにより実行されるときには、ビデオデータは、エンコードされたビデオビットストリーム中にエンコードされることになる、ピクチャーまたはピクチャーの一部分(例えば、1つ以上のブロック)を含むことがあり、あるいは、エンコードされたビデオビットストリーム中にエンコードされることになる複数のピクチャーを含むことがある。
【0118】
[0130]
ブロック1102において、プロセス1100は、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードすることを含んでいる。ブロック1104において、プロセス1100は、ピクチャーの第2のブロックを取得することを含んでいる。いくつかの態様では、第2のブロックは、(例えば、ルーマサンプルを含み、クロマサンプルを含まない)ルーマコーディングブロックである。いくつかのインプリメンテーションでは、第2のブロックは、(例えば、クロマサンプルを含み、ルーマサンプルを含まない)クロマコーディングブロックである。いくつかのインプリメンテーションでは、第2のブロックは、ルーマサンプルとクロマサンプルとを含んでいるコーディングブロックである。本明細書で説明するように、第1のブロックは、ピクチャー中の第2のブロックの隣接ブロックとすることができる。図9を参照する1つの実例的な例では、第2のブロックは、現在ブロック904を含むことができ、第1のブロックは、隣接ブロック906とすることができる。
【0119】
[0131]
ブロック1106において、プロセス1100は、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することを含んでいる。ブロック1108において、プロセス1100は、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加することを含んでいる。いくつかの例では、イントラ予測モードリストは、最確モード(MPM)リストを含んでいる。ブロック1110において、プロセス1100は、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させることを含んでいる。
【0120】
[0132]
いくつかの例では、プロセス1100は、エンコードされたビデオビットストリーム中に、第1のブロックをデコードするために使用する予測モードを示す情報を含めることを含んでいる。いくつかの例では、情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含んでいる。第1のブロックをデコードするために使用されることになる予測モードが、イントラ予測モードリストに属している場合には、イントラ予測モードリストフラグは、(例えば、1の値を有する)真に設定することができる。上述したように、モードがイントラ予測モードリストに属していない場合には、イントラ予測モードリストフラグ(例えば、intra_luma_mpm_flag)は、(例えば、0の値を有する)偽に設定され、非MPMイントラ予測モードへの非MPMインデックスを、エンコードされたビデオビットストリーム中に含めることができる。1つの実例的な例では、イントラ予測モードリストフラグは、intra_luma_mpm_flagとして表すことができる。
【0121】
[0133]
いくつかの例では、情報は、第1のブロックをデコードするために使用するイントラ予測モードリストからの予測モードを示すインデックス値を含んでいる。例えば、情報は、イントラ予測モードリストフラグとインデックス値とを含むことがある。1つの実例的な例では、イントラ予測モードリストに関係するインデックスは、intra_luma_mpm_idxとして表すことができ、第2のブロックのために使用されることになるイントラ予測モードリストからの予測モードを示すことができる。
【0122】
[0134]
いくつかの態様では、プロセス1100は、水平ブロックベースのBDPCMモードを使用して、ピクチャーの第3のブロックをエンコードすることと、ピクチャーの第4のブロックを取得することとを含んでいる。このような例では、プロセス1100は、第3のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第4のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第4のブロックに対するイントラ予測モードリストに追加することとを含んでいる。
【0123】
[0135]
いくつかのインプリメンテーションでは、プロセス1000と1100とを含んでいる、本明細書で説明するプロセス(または、方法)は、図1中に示されているシステム100のような、コンピューティングデバイスまたは装置により実行することができる。例えば、プロセス1000は、図1および図13中に示されているデコーディングデバイス112により、ならびに/あるいは、プレーヤデバイス、ディスプレイ、または、他の何らかのクライアント側デバイスのような別のクライアント側デバイスにより実行することができる。別の例として、プロセス1100は、図1および図12中に示されているエンコーディングデバイス104により、ならびに/あるいは、別のビデオソース側デバイスまたはビデオ送信デバイスにより実行することができる。
【0124】
[0136]
いくつかのケースでは、コンピューティングデバイスまたは装置は、1つ以上の入力デバイス、1つ以上の出力デバイス、1つ以上のプロセッサ、1つ以上のマイクロプロセッサ、1つ以上のマイクロコンピュータ、および/または、本明細書で説明するプロセスのステップを実行するように構成されている他のコンポーネントを含んでいてもよい。いくつかの例では、コンピューティングデバイスは、移動体デバイス、デスクトップコンピュータ、サーバコンピュータおよび/またはサーバシステム、あるいは、他のタイプのコンピューティングデバイスであるか、あるいは、それらを含んでいてもよい。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(例えば、ビデオシーケンス)をキャプチャするように構成されているカメラを含んでいてもよい。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、そのケースでは、コンピューティングデバイスは、キャプチャされたビデオデータを受信または取得する。コンピューティングデバイスは、ビデオデータを通信するように構成されているネットワークインターフェースをさらに含んでいてもよい。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータをまたは他のタイプのデータを通信するように構成されていてもよい。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオビットストリームのピクチャーのサンプルのような、出力ビデオコンテンツを表示するディスプレイを含んでいてもよい。
【0125】
[0137]
コンピューティングデバイスのコンポーネント(例えば、1つ以上の入力デバイス、1つ以上の出力デバイス、1つ以上のプロセッサ、1つ以上のマイクロプロセッサ、1つ以上のマイクロコンピュータ、および/または、他のコンポーネント)は、回路中で実現することができる。例えば、コンポーネントは、本明細書で説明するさまざまな動作を実行するために、1つ以上のプログラマブル電子回路(例えば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、および/または、他の適切な電子回路)を含むことができる電子回路または他の電子ハードウェアを含むことができ、および/または、それらを使用して実現することができ、コンピュータソフトウェア、ファームウェア、または、これらの何らかの組み合わせを含むことができ、および/または、これらを使用して実現することができる。
【0126】
[0138]
プロセス1000および1100は、論理フロー図として図示されており、その動作は、ハードウェア、コンピュータ命令、または、それらの組み合わせで実現することができる動作のシーケンスを表している。コンピュータ命令のコンテキストでは、動作は、1つ以上のプロセッサにより実行されるときに、列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体上に記憶されているコンピュータ実行可能命令を表している。一般的に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および、これらに類するものを含んでいる。動作を説明する順序は、限定として解釈されることを意図しておらず、任意の数の説明する動作を、プロセスを実現するために、任意の順序でおよび/または並列に組み合わせることができる。
【0127】
[0139]
加えて、プロセス1000および1100を含む、本明細書で説明するプロセスは、実行可能命令で構成されている1つ以上のコンピュータシステムの制御下で実行してもよく、ハードウェアにより、または、それらの組み合わせにより、1つ以上のプロセッサ上で集合的に実行するコード(例えば、実行可能命令、1つ以上のコンピュータプログラム、または、1つ以上のアプリケーション)として実現してもよい。上述したように、コードは、例えば、1つ以上のプロセッサにより実行可能な複数の命令を含んでいるコンピュータプログラムの形態で、コンピュータ読取可能または機械読取可能記憶媒体上に記憶されていてもよい。
【0128】
[0140]
本明細書で説明するコーディング技法は、例示的なビデオエンコーディングおよびデコーディングシステム(例えば、システム100)において実現してもよい。いくつかの例では、システムは、宛先デバイスにより後にデコーディングされることになるエンコードされたビデオデータを提供する発信元デバイスを含んでいる。特に、発信元デバイスは、コンピュータ読取可能媒体を介して、ビデオデータを宛先デバイスに提供する。発信元デバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または、これらに類するものを含む、広範囲のデバイスのいずれかを備えていてもよい。いくつかのケースでは、発信元デバイスおよび宛先デバイスは、ワイヤレス通信のために装備されていてもよい。
【0129】
[0141]
宛先デバイスは、コンピュータ読取可能媒体を介して、デコードされることになるエンコードされたビデオデータを受信してもよい。コンピュータ読取可能媒体は、エンコードされたビデオデータを発信元デバイスから宛先デバイスに移動させることができる何らかのタイプの媒体またはデバイスを備えていてもよい。1つの例では、コンピュータ読取可能媒体は、発信元デバイスが、エンコードされたビデオデータを直接的に宛先デバイスにリアルタイムで送信できるようにする通信媒体を備えていてもよい。エンコードされたビデオデータは、ワイヤレス通信プロトコルのような、通信標準規格にしたがって変調され、宛先デバイスに送信されてもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つ以上の物理送信線のような、何らかのワイヤレスまたはワイヤード通信媒体を備えていてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、または、インターネットのようなグローバルネットワークのような、パケットベースネットワークの一部を形成していてもよい。通信媒体は、ルータ、スイッチ、基地局、または、発信元デバイスから宛先デバイスへの通信を容易にするのに有用であるかもしれない他の何らかの機器を含んでいてもよい。
【0130】
[0142]
いくつかの例では、エンコードされたデータは、出力インターフェースから記憶デバイスに出力されてもよい。同様に、エンコードされたデータは、入力インターフェースにより、記憶デバイスからアクセスされてもよい。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは、エンコードされたビデオデータを記憶する他の何らかの適切なデジタル記憶媒体のような、さまざまな分散またはローカルにアクセスされるデータ記憶媒体のいずれかを含んでいてもよい。さらなる例では、記憶デバイスは、ファイルサーバまたは発信元デバイスにより発生されたエンコードされたビデオを記憶するかもしれない別の中間記憶デバイスに対応していてもよい。宛先デバイスは、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスしてもよい。ファイルサーバは、エンコードされたビデオデータを記憶し、そのエンコードされたビデオデータを宛先デバイスに送信することができる何らかのタイプのサーバであってもよい。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、または、ローカルディスクドライブを含んでいる。宛先デバイスは、インターネット接続を含む何らかの標準的なデータ接続を介して、エンコードされたビデオデータにアクセスしてもよい。これは、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム等)、または、ファイルサーバ上に記憶されているエンコードされたビデオデータにアクセスするのに適した両方の組み合わせを含んでいてもよい。記憶デバイスからのエンコードされたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または、それらの組み合わせであってもよい。
【0131】
[0143]
本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。本技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTPを介した動的適応型ストリーミング(DASH)のようなインターネットストリーミングビデオ送信、データ記憶媒体上にエンコードされているデジタルビデオ、データ記憶媒体上に記憶されているデジタルビデオのデコーディング、または、他のアプリケーションのような、さまざまなマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用してもよい。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/または、ビデオテレフォニーのような、アプリケーションをサポートするために、一方向または双方向ビデオ送信をサポートするように構成されていてもよい。
【0132】
[0144]
1つの例では、発信元デバイスは、ビデオソースと、ビデオエンコーダと、出力インターフェースとを含んでいる。宛先デバイスは、入力インターフェースと、ビデオデコーダと、ディスプレイデバイスとを含んでいてもよい。発信元デバイスのビデオエンコーダは、本明細書で開示する技法を適用するように構成されていてもよい。他の例では、発信元デバイスおよび宛先デバイスは、他のコンポーネントまたは構成を含んでいてもよい。例えば、発信元デバイスは、外部カメラのような外部ビデオソースからビデオデータを受信してもよい。同様に、宛先デバイスは、一体型ディスプレイデバイスを含む以外に、外部ディスプレイデバイスとインターフェースしていてもよい。
【0133】
[0145]
上記の例示的なシステムは、1つの例にすぎない。ビデオデータを並列に処理する技法は、何らかのデジタルビデオエンコーディングおよび/またはデコーディングデバイスにより実行してもよい。一般的に、本開示の技法は、ビデオエンコーディングデバイスにより実行されるが、本開示の技法はまた、典型的に、「CODEC」として呼ばれるビデオエンコーダ/デコーダにより実行されてもよい。さらに、本開示の技法は、ビデオプリプロセッサにより実行されてもよい。発信元デバイスおよび宛先デバイスは、そのようなコーディングデバイスの単なる例にすぎず、発信元デバイスは、宛先デバイスに送信するためのコード化されたビデオデータを発生させる。いくつかの例では、発信元デバイスおよび宛先デバイスは、デバイスのそれぞれがビデオエンコーディングコンポーネントとビデオデコーディングコンポーネントとを含むように、実質的に対称的に動作してもよい。したがって、例示的なシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、または、ビデオテレフォニーのために、ビデオデバイス間で一方向または双方向のビデオ送信をサポートしてもよい。
【0134】
[0146]
ビデオソースは、ビデオカメラのようなビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/または、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含んでいてもよい。さらなる代替として、ビデオソースは、ソースビデオとしてコンピュータグラフィックスベースのデータを発生させるか、または、ライブビデオと、アーカイブビデオと、コンピュータ発生ビデオとの組み合わせを発生させてもよい。いくつかのケースでは、ビデオソースがビデオカメラである場合には、発信元デバイスおよび宛先デバイスは、いわゆるカメラフォンまたはビデオフォンを形成してもよい。しかしながら、上記で言及したように、本開示で説明する技法は、一般的にビデオコーディングに適用可能であってもよく、ワイヤレスおよび/またはワイヤードアプリケーションに適用してもよい。それぞれのケースにおいて、キャプチャされたビデオ、事前にキャプチャされたビデオ、または、コンピュータ発生ビデオは、ビデオエンコーダによりエンコードされてもよい。エンコードされたビデオ情報は、その後、出力インターフェースにより、コンピュータ読取可能媒体上に出力されてもよい。
【0135】
[0147]
上述のように、コンピュータ読取可能媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信のような一時的媒体を、あるいは、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク(登録商標)、または、他のコンピュータ読取可能媒体のような記憶媒体(すなわち、非一時的記憶媒体)を含んでいてもよい。いくつかの例では、(示されていない)ネットワークサーバは、例えば、ネットワーク送信を介して、発信元デバイスからエンコードされたビデオデータを受信し、エンコードされたビデオデータを宛先デバイスに提供してもよい。同様に、ディスクスタンピング設備のような媒体製造設備のコンピューティングデバイスは、発信元デバイスからエンコードされたビデオデータを受信し、エンコードされたビデオデータを含んでいるディスクを生成させてもよい。したがって、コンピュータ読取可能媒体は、さまざまな例において、さまざまな形態の1つ以上のコンピュータ読取可能媒体を含むと理解してもよい。
【0136】
[0148]
宛先デバイスの入力インターフェースは、コンピュータ読取可能媒体から情報を受信する。コンピュータ読取可能媒体の情報は、ブロックおよび他のコード化されたユニット、例えば、ピクチャーのグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダにより規定され、ビデオデコーダによっても使用されるシンタックス情報を含んでいてもよい。ディスプレイデバイスは、デコードされたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または、別のタイプのディスプレイデバイスのような、さまざまなディスプレイデバイスのいずれかを備えていてもよい。本出願のさまざまな実施形態について説明した。
【0137】
[0149]
エンコーディングデバイス104およびデコーディングデバイス112の具体的な詳細が、それぞれ図12および図13中に示されている。図12は、本開示で説明する技法のうちの1つ以上を実現してもよい例示的なエンコーディングデバイス104を図示するブロック図である。エンコーディングデバイス104は、例えば、本明細書で説明するシンタックス構造(例えば、VPS、SPS、PPS、または、他のシンタックス要素のシンタックス構造)を発生させてもよい。エンコーディングデバイス104は、ビデオスライス内のビデオブロックのイントラ予測およびインター予測コーディングを実行してもよい。前述のように、イントラコーディングは、少なくとも部分的に、空間的予測に依拠し、所定のビデオフレームまたはピクチャー内の空間的冗長性を低減または除去する。インターコーディングは、少なくとも部分的に、時間的予測に依拠し、ビデオシーケンスの隣接フレームまたは周辺フレーム内の時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指しているかもしれない。単方向予測(Pモード)または双予測(Bモード)のようなインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指しているかもしれない。
【0138】
[0150]
エンコーディングデバイス104は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャーメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーエンコーディングユニット56とを含んでいる。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含んでいる。ビデオブロック再構築のために、エンコーディングデバイス104はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含んでいる。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、および、サンプル適応オフセット(SAO)フィルタのような、1つ以上のループフィルタを表すことが意図されている。フィルタユニット63は、図12ではループ内フィルタとして示されているが、他のコンフィギュレーションでは、フィルタユニット63は、ループ後フィルタとして実現してもよい。後処理デバイス57は、エンコーディングデバイス104により発生されたエンコードされたビデオデータ上で追加の処理を実行してもよい。本開示の技法は、いくつかの実例において、エンコーディングデバイス104により実現してもよい。しかしながら、他の実例では、本開示の技法のうちの1つ以上は、後処理デバイス57により実現してもよい。
【0139】
[0151]
図12中に示されているように、エンコーディングデバイス104は、ビデオデータを受信し、区分ユニット35は、データをビデオブロックに区分する。区分はまた、スライス、スライスセグメント、タイル、または、他のより大きいユニットへの区分とともに、例えば、LCUおよびCUの4分ツリー構造にしたがったビデオブロック区分を含んでいてもよい。エンコーディングデバイス104は、一般的に、エンコードされることになるビデオスライス内のビデオブロックをエンコードするコンポーネントを示している。スライスは、複数のビデオブロックに(そして、場合によっては、タイルとして呼ばれるビデオブロックのセットに)分割されてもよい。予測処理ユニット41は、誤差結果(例えば、コーディングレートおよび歪みレベル、または、これらに類するもの)に基づいて、現在ビデオブロックに対して、複数のイントラ予測コーディングモードのうちの1つ、または、インター予測コーディングモードのうちの1つのような、複数の可能性あるコーディングモードのうちの1つを選択してもよい。予測処理ユニット41は、結果的に得られるイントラコード化されたブロックまたはインターコード化されたブロックを、残差ブロックデータを発生させるために加算器50に提供し、参照ピクチャーとして使用するためのエンコードされたブロックを再構築するために加算器62に提供してもよい。
【0140】
[0152]
予測処理ユニット41内のイントラ予測処理ユニット46は、コード化されることになる現在ブロックと同じフレームまたはスライス中の1つ以上の隣接ブロックに対する、現在ビデオブロックのイントラ予測コーディングを実行して、空間圧縮を実行してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、1つ以上の参照ピクチャー中の1つ以上の予測的ブロックに対する、現在ビデオブロックのインター予測的コーディングを実行して、時間圧縮を提供してもよい。
【0141】
[0153]
動き推定ユニット42は、ビデオシーケンスに対して予め決定されているパターンにしたがって、ビデオスライスに対するインター予測モードを決定するように構成されていてもよい。予め決定されているパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、または、GPBスライスとして指定してもよい。動き推定ユニット42および動き補償ユニット44は、高度に統合されてもよいが、概念的な目的のために、別々に図示されている。動き推定ユニット42により実行される動き推定は、動きベクトルを発生させるプロセスであり、動きベクトルは、ビデオブロックに対する動きを推定する。動きベクトルは、例えば、参照ピクチャー内の予測的ブロックに対する、現在ビデオフレームまたはピクチャー内のビデオブロックの予測ユニット(PU)の変位を示していてもよい。
【0142】
[0154]
予測的ブロックは、絶対差分和(SAD)、二乗差分和(SSD)、または、他の差分メトリックにより決定されてもよい、ピクセル差分に関してコード化されることになるビデオブロックのPUに密接に一致することが見出されるブロックである。いくつかの例では、エンコーディングデバイス104は、ピクチャーメモリ64中に記憶されている参照ピクチャーのサブ整数ピクセル位置に対する値を計算してもよい。例えば、エンコーディングデバイス104は、参照ピクチャーの1/4ピクセル位置、1/8ピクセル位置、または、他の分数ピクセル位置の値を補間してもよい。したがって、動き推定ユニット42は、完全ピクセル位置および分数ピクセル位置に対する動きサーチを実行し、分数ピクセル精度を有する動きベクトルを出力してもよい。
【0143】
[0155]
動き推定ユニット42は、PUの位置を参照ピクチャーの予測的ブロックの位置と比較することにより、インターコード化されたスライス中のビデオブロックのPUに対する動きベクトルを計算する。参照ピクチャーは、第1の参照ピクチャーリスト(リスト0)または第2の参照ピクチャーリスト(リスト1)から選択されてもよく、リストのそれぞれは、ピクチャーメモリ64中に記憶されている1つ以上の参照ピクチャーを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピーエンコーディングユニット56と動き補償ユニット44とに送る。
【0144】
[0156]
動き補償ユニット44により実行される動き補償は、動き推定により決定される動きベクトルに基づいて予測的ブロックをフェッチまたは発生させることと、場合によっては、サブピクセル精度への補間を実行することとを伴っていてもよい。現在ビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャーリスト中で動きベクトルが指す予測的ブロックの位置を特定してもよい。エンコーディングデバイス104は、コード化されている現在ビデオブロックのピクセル値から予測的ブロックのピクセル値を減算し、ピクセル差分値を形成することにより、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含んでいてもよい。加算器50は、この減算演算を実行するコンポーネントを表している。動き補償ユニット44はまた、ビデオスライスのビデオブロックをデコードする際にデコーディングデバイス112により使用するために、ビデオブロックとビデオスライスとに関係するシンタックス要素を発生させてもよい。
【0145】
[0157]
イントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とにより実行されるインター予測の代替として、現在ブロックをイントラ予測してもよい。特に、イントラ予測処理ユニット46は、現在ブロックをエンコードするのに使用するイントラ予測モードを決定してもよい。いくつかの例では、イントラ予測処理ユニット46は、例えば、別個のエンコーディングパス間に、さまざまなイントラ予測モードを使用して、現在ブロックをエンコードしてもよく、イントラ予測処理ユニット46は、テストされたモードから、使用する適切なイントラ予測モードを選択してもよい。例えば、イントラ予測処理ユニット46は、さまざまなテストされたイントラ予測モードに対するレート歪み解析を使用して、レート歪み値を計算してもよく、テストされたモードの中から最良のレート歪み特性を有するイントラ予測モードを選択してもよい。レート歪み解析は、一般的に、エンコードされたブロックと、エンコードされたブロックを生成させるためにエンコードされた元のエンコードされていないブロックとの間の歪み(または、誤差)の量とともに、エンコードされたブロックを生成させるために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、さまざまなエンコードされたブロックに対する歪みとレートとから比を計算し、どのイントラ予測モードが、ブロックに対して最良のレート歪みを示すかを決定してもよい。
【0146】
[0158]
いずれのケースでも、ブロックに対するイントラ予測モードを選択した後、イントラ予測処理ユニット46は、ブロックに対する選択されたイントラ予測モードを示す情報をエントロピーエンコーディングユニット56に提供してもよい。エントロピーエンコーディングユニット56は、選択されたイントラ予測モードを示す情報をエンコードしてもよい。エンコーディングデバイス104は、送信されるビットストリームコンフィギュレーションデータ中に、さまざまなブロックに対するエンコーディングコンテキストの定義とともに、コンテキストのそれぞれのために使用する、最確イントラ予測モードのインジケーションと、イントラ予測モードインデックス表と、修正イントラ予測モードインデックス表とを含めてもよい。ビットストリームコンフィギュレーションデータは、複数のイントラ予測モードインデックス表と、(コードワードマッピング表としても呼ばれる)複数の修正イントラ予測モードインデックス表とを含んでいてもよい。
【0147】
[0159]
予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックに対する予測的ブロックを発生させた後に、エンコーディングデバイス104は、現在ビデオブロックから予測的ブロックを減算することにより、残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つ以上のTU中に含まれていてもよく、変換処理ユニット52に適用されてもよい。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似する変換のような変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータを、ピクセルドメインから周波数ドメインのような変換ドメインに変換してもよい。
【0148】
[0160]
変換処理ユニット52は、結果的に得られる変換係数を量子化ユニット54に送ってもよい。量子化ユニット54は、変換係数を量子化して、ビットレートをさらに低減させる。量子化プロセスは、係数のいくつかまたはすべてに関係するビット深度を低減させてもよい。量子化の程度は、量子化パラメータを調節することにより修正してもよい。いくつかの例では、量子化ユニット54は、その後、量子化された変換係数を含む行列の走査を実行してもよい。代替的に、エントロピーエンコーディングユニット56が、走査を実行してもよい。
【0149】
[0161]
量子化に続いて、エントロピーエンコーディングユニット56は、量子化された変換係数をエントロピーエンコードする。例えば、エントロピーエンコーディングユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーエンコーディング技法を実行してもよい。エントロピーエンコーディングユニット56によるエントロピーエンコーディングに続いて、エンコードされたビットストリームは、デコーディングデバイス112に送信されてもよく、あるいは、デコーディングデバイス112による後の送信または取り出しのためにアーカイブされてもよい。エントロピーエンコーディングユニット56はまた、コード化されている現在ビデオスライスに対する、動きベクトルと他のシンタックス要素とをエントロピーエンコードしてもよい。
【0150】
[0162]
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャーの参照ブロックとして後で使用するために、ピクセルドメインにおいて、残差ブロックを再構築する。動き補償ユニット44はまた、残差ブロックを、参照ピクチャーリスト内の参照ピクチャーの1つの予測的ブロックに加算することにより、参照ブロックを計算してもよい。動き補償ユニット44はまた、1つ以上の補間フィルタを再構築された残差ブロックに適用して、動き推定で使用するためのサブ整数ピクセル値を計算してもよい。加算器62はまた、再構築された残差ブロックを、動き補償ユニット44により生成された動き補償された予測ブロックに加算して、ピクチャーメモリ64中に記憶するための参照ブロックを生成させる。参照ブロックは、後続のビデオフレームまたはピクチャー中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44により使用されてもよい。
【0151】
[0163]
エンコーディングデバイス104は、本明細書で説明する技法のいずれかを実行してもよい。本開示のいくつかの技法は、一般的に、エンコーディングデバイス104に関して説明したが、上記で言及したように、本開示の技法のいくつかはまた、後処理デバイス57により実現してもよい。
【0152】
[0164]
図12のエンコーディングデバイス104は、本明細書で説明する変換コーディング技法のうちの1つ以上を実行するように構成されているビデオエンコーダの例を表している。エンコーディングデバイス104は、図11に関して上記で説明したプロセスを含む、本明細書で説明する技法のいずれかを実行してもよい。
【0153】
[0165]
図13は、例示的なデコーディングデバイス112を図示するブロック図である。デコーディングデバイス112は、エントロピーデコーディングユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、ピクチャーメモリ92とを含んでいる。予測処理ユニット81は、動き補償ユニット82とイントラ予測処理ユニット84とを含んでいる。デコーディングデバイス112は、いくつかの例では、図12からのエンコーディングデバイス104に関して説明したエンコーディングパスとは一般的に逆のデコーディングパスを実行してもよい。
【0154】
[0166]
デコーディングプロセス間に、デコーディングデバイス112は、エンコーディングデバイス104により送られた、エンコードされたビデオスライスのビデオブロックと、関係するシンタックス要素とを表す、エンコードされたビデオビットストリームを受信する。いくつかの実施形態では、デコーディングデバイス112は、エンコーディングデバイス104から、エンコードされたビデオビットストリームを受信してもよい。いくつかの実施形態では、デコーディングデバイス112は、サーバ、メディアアウェアネットワーク要素(MANE)、ビデオエディタ/スプライサ、または、上記で説明した技法のうちの1つ以上を実現するように構成されている他のそのようなデバイスのような、ネットワークエンティティ79から、エンコードされたビデオビットストリームを受信してもよい。ネットワークエンティティ79は、エンコーディングデバイス104を含んでいても、または、含んでいなくてもよい。本開示で説明する技法のうちのいくつかは、ネットワークエンティティ79がエンコードされたビデオビットストリームをデコーディングデバイス112に送信する前に、ネットワークエンティティ79により実現してもよい。いくつかのビデオデコーディングシステムでは、ネットワークエンティティ79とデコーディングデバイス112は、別個のデバイスの一部であってもよいが、他の事例では、ネットワークエンティティ79に関して説明した機能性は、デコーディングデバイス112を備える同じデバイスにより実行してもよい。
【0155】
[0167]
デコーディングデバイス112のエントロピーデコーディングユニット80は、ビットストリームをエントロピーデコードして、量子化係数と、動きベクトルと、他のシンタックス要素とを発生させる。エントロピーデコーディングユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。デコーディングデバイス112は、ビデオスライスレベルおよび/またはビデオブロックレベルで、シンタックス要素を受信してもよい。エントロピーデコーディングユニット80は、VPS、SPSおよびPPSのような、1つ以上のパラメータセット中の、固定長シンタックス要素と可変長シンタックス要素の両方を処理およびパースしてもよい。
【0156】
[0168]
ビデオスライスが、イントラコード化(I)スライスとしてコード化されるときには、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャーの以前にデコードされたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックに対する予測データを発生させてもよい。ビデオフレームが、インターコード化(すなわち、B、PまたはGPB)スライスとしてコード化されているときには、予測処理ユニット81の動き補償ユニット82は、エントロピーデコーディングユニット80から受信された、動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックに対する予測的ブロックを生成させる。予測的ブロックは、参照ピクチャーリスト内の参照ピクチャーの1つから生成されてもよい。デコーディングデバイス112は、ピクチャーメモリ92中に記憶されている参照ピクチャーに基づいて、デフォルト構築技法を使用して、参照フレームリスト、リスト0およびリスト1を構築してもよい。
【0157】
[0169]
動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることにより、現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、デコードされている現在ビデオブロックに対する予測的ブロックを生成させる。例えば、動き補償ユニット82は、パラメータセット中の1つ以上のシンタックス要素を使用して、ビデオスライスのビデオブロックをコード化するのに使用される予測モード(例えば、イントラ予測またはインター予測)と、インター予測スライスタイプ(例えば、Bスライス、PスライスまたはGPBスライス)と、スライスに対する1つ以上の参照ピクチャーリストのための構築情報と、スライスのそれぞれインターエンコードされたビデオブロックに対する動きベクトルと、スライスのそれぞれインターコード化されたビデオブロックに対するインター予測ステータスと、現在ビデオスライス中のビデオブロックをデコードするための他の情報とを決定してもよい。
【0158】
[0170]
動き補償ユニット82はまた、補間フィルタに基づいて、補間を実行してもよい。動き補償ユニット82は、ビデオブロックのエンコーディングの間にエンコーディングデバイス104により使用されるように、補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間された値を計算してもよい。このケースでは、動き補償ユニット82は、受信されたシンタックス要素から、エンコーディングデバイス104により使用される補間フィルタを決定してもよく、補間フィルタを使用して、予測的ブロックを発生させてもよい。
【0159】
[0171]
逆量子化ユニット86は、ビットストリーム中に提供され、エントロピーデコーディングユニット80によりデコードされた、量子化された変換係数を逆量子化、すなわち量子化解除する。逆量子化プロセスは、ビデオスライス中の各ビデオブロックに対してエンコーディングデバイス104により計算された量子化パラメータを使用して、量子化の程度と、同様に、適用されるべき逆量子化の程度とを決定することを含んでいてもよい。逆変換処理ユニット88は、ピクセルドメインにおいて、残差ブロックを生成させるために、逆変換(例えば、逆DCTまたは他の適切な逆変換)、逆整数変換、または、概念的に類似する逆変換プロセスを、変換係数に適用する。
【0160】
[0172]
動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて、現在ビデオブロックに対する予測的ブロックを発生させた後に、デコーディングデバイス112は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82により発生された対応する予測的ブロックと加算することにより、デコードされたビデオブロックを形成する。加算器90は、この加算演算を実行するコンポーネントを表している。また、所望される場合には、(コーディングループ中またはコーディングループ後のいずれかの)ループフィルタを使用して、ピクセル遷移を平滑化するか、または、さもなければビデオ品質を改善させてもよい。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、および、サンプル適応オフセット(SAO)フィルタのような、1つ以上のループフィルタを表すことが意図されている。フィルタユニット91は、図13中ではループ内フィルタとして示されているが、他のコンフィギュレーションでは、フィルタユニット91は、ループ後フィルタとして実現してもよい。所定のフレームまたはピクチャー中のデコードされたビデオブロックは、その後、ピクチャーメモリ92中に記憶され、ピクチャーメモリ92は、後続の動き補償のために使用される参照ピクチャーを記憶する。ピクチャーメモリ92はまた、図1中に示されているビデオ宛先デバイス122のようなディスプレイデバイス上で後に提示するためのデコードされたビデオを記憶する。
【0161】
[0173]
フィルタユニット91は、再構築されたブロック(例えば、加算器90の出力)をフィルタリングし、参照ブロックとして使用するためにフィルタリングされた再構築ブロックをDPB94中に記憶させ、および/または、フィルタリングされた再構築ブロック(デコードされたビデオ)を出力する。参照ブロックは、後続のビデオフレームまたはピクチャー中のブロックをインター予測するための参照ブロックとして、動き補償ユニット82により使用されてもよい。フィルタユニット91は、デブロッキングフィルタリング、SAOフィルタリング、ピークSAOフィルタリング、ALF、および/または、GALF、および/または、他のタイプのループフィルタのような、何らかのタイプのフィルタリングを実行してもよい。デブロッキングフィルタは、例えば、デブロッキングフィルタリングを適用して、ブロック境界をフィルタリングし、再構築されたビデオからブロッキネスアーティファクトを除去してもよい。ピークSAOフィルタは、全体的なコーディング品質を改善するために、再構築されたピクセル値にオフセットを適用してもよい。追加のループフィルタ(ループ内またはループ後)も使用してもよい。
【0162】
[0174]
加えて、フィルタユニット91は、適応ループフィルタリングに関連する本開示における技法のいずれかを実行するように構成されていてもよい。例えば、上記で説明したように、フィルタユニット91は、現在ブロックと同じAPSに含まれていた以前のブロックをフィルタリングするためのパラメータ、異なるAPS、または、予め規定されているフィルタに基づいて、現在ブロックをフィルタリングするためのパラメータを決定するように構成されていてもよい。
【0163】
[0175]
図13のデコーディングデバイス112は、本明細書で説明する変換コーディング技法のうちの1つ以上を実行するように構成されているビデオデコーダの例を表している。デコーディングデバイス112は、図10に関して上記で説明したプロセスを含む、本明細書で説明する技法のいずれかを実行してもよい。
【0164】
[0176]
本明細書で使用される「コンピュータ読取可能媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに、命令および/またはデータを記憶、含有、または、搬送することが可能な他のさまざまな媒体を含んでいる。コンピュータ読取可能媒体は、非一時的媒体含んでいてもよく、非一時的媒体では、データを記憶させることができ、ワイヤレスにまたはワイヤード接続を通して伝搬する搬送波および/または一時的電子信号を含まない。非一時的媒体の例は、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタルバーサタイルディスク(DVD)のような光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含んでいてもよい。コンピュータ読取可能媒体は、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは、命令、データ構造、または、プログラムステートメントの何らかの組み合わせを表してもよい、コードおよび/または機械実行可能命令を記憶していてもよい。コードセグメントは、情報、データ、引数、パラメータ、または、メモリ内容を渡すおよび/または受信することにより、別のコードセグメントまたはハードウェア回路に結合されていてもよい。情報、引数、パラメータ、データ等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、または、これらに類するものを含む、何らかの適切な手段を介して、渡され、転送され、または、送信されてもよい。
【0165】
[0177]
いくつかの実施形態では、コンピュータ読取可能記憶デバイス、媒体およびメモリは、ビットストリームおよびこれらに類するものを含む、ケーブルまたはワイヤレス信号を含むことができる。しかしながら、言及されるときには、非一時的コンピュータ読取可能記憶媒体は、エネルギー、搬送波信号、電磁波および信号自体のような媒体を明示的に除外する。
【0166】
[0178]
本明細書に提供される実施形態および例の完全な理解を提供するために、具体的な詳細が、上記の説明において提供されている。しかしながら、これらの具体的な詳細なしに実施形態が実施されてもよいことが当業者により理解されるであろう。説明を明確にするために、いくつかの事例では、本技術は、デバイス、デバイスコンポーネント、ソフトウェアで具現化された方法におけるステップまたはルーチン、あるいは、ハードウェアとソフトウェアとの組み合わせを備える機能ブロックを含む個々の機能ブロックを含むものとして提示されているかもしれない。図面に示されているおよび/または本明細書で説明されているコンポーネント以外の追加のコンポーネントを使用してもよい。例えば、回路、システム、ネットワーク、プロセスおよび他のコンポーネントは、不必要な詳細で実施形態を不明瞭にしないように、ブロック図の形態のコンポーネントとして示されているかもしれない。他の実例では、実施形態を不明瞭にすることを避けるために、周知の回路、プロセス、アルゴリズム、構造および技術は、不必要な詳細なしで示されているかもしれない。
【0167】
[0179]
個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、または、ブロック図として示されているプロセスまたは方法として上記で説明しているかもしれない。フローチャートは、動作をシーケンシャルなプロセスとして説明しているかもしれないが、動作の多くは、並列または同時に実行することができる。加えて、動作の順序は、再構成してもよい。プロセスは、その動作が完了したときに終了するが、図に含まれていない追加のステップを有することができる。プロセスは、方法、関数、手順、サブルーチン、サブプログラム等に対応しているかもしれない。プロセスが関数に対応している場合には、その終了は、呼び出し関数またはメイン関数への関数のリターンに対応することができる。
【0168】
[0180]
上記で説明した例によるプロセスおよび方法は、コンピュータ読取可能媒体に記憶されているか、または、さもなければコンピュータ読取可能媒体から利用可能であるコンピュータ実行可能命令を使用して、実現することができる。このような命令は、例えば、汎用コンピュータに、特殊目的コンピュータに、あるいは、処理デバイスに、ある機能または機能のグループを実行させるか、あるいは、さもなければそれらを構成させる命令およびデータを含むことができる。使用されるコンピュータリソースの一部分は、ネットワークを通してアクセスすることができる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語のような中間フォーマット命令、ファームウェア、ソースコード等であってもよい。命令、使用される情報、および/または、説明された例による方法の間に作成される情報を記憶するために使用されてもよいコンピュータ読取可能媒体の例は、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えるUSBデバイス、ネットワーク化記憶デバイス等を含んでいる。
【0169】
[0181]
これらの開示によるプロセスおよび方法を実現するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または、これらの何らかの組み合わせを含むことができ、さまざまなフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、または、マイクロコードで実現されるときには、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ読取可能媒体または機械読取可能媒体に記憶されてもよい。プロセッサは、必要なタスクを実行してもよい。フォームファクタの典型的な例は、ラップトップ、スマートフォン、モバイルフォン、タブレットデバイスまたは他のスモールフォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタント、ラックマウントデバイス、スタンドアロンデバイス等を含んでいる。本明細書で説明する機能はまた、周辺機器またはアドインカードにおいて、具現化することができる。このような機能性はまた、さらなる例として、異なるチップ間の回路基板上でまたは単一のデバイス中で実行する異なるプロセスで、実現することができる。
【0170】
[0182]
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、および、そのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明する機能を提供するための例示的な手段である。
【0171】
[0183]
前述の説明では、本出願の態様は、その特定の実施形態を参照して説明しているが、本出願がそれらに限定されないことを当業者は認識するであろう。したがって、本出願の実例的な実施形態について詳細に説明したが、本発明の概念は、他の方法でさまざまに具現化および採用されてもよいこと、添付の特許請求の範囲は、従来技術により限定される場合を除き、そのような変形を含むものと解釈されるように意図されていることを理解されたい。上述の出願のさまざまな特徴および態様は、個別にまたは一緒に使用してもよい。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなく、本明細書に記載されたものを超える任意の数の環境および用途において利用することができる。したがって、明細書および図面は、限定的ではなく実例的であると見なされるべきである。実例の目的のために、方法は、特定の順序で説明した。代替の実施形態では、方法は、説明した順序とは異なる順序で実行してもよいことを理解すべきである。
【0172】
[0184]
当業者は、本明細書の範囲から逸脱することなく、本明細書で使用されるより小さい(「<」)およびより大きい(「>」)記号または用語が、それぞれ、より小さいまたは等しい(「≦」)およびより大きいまたは等しい(「≧」)記号で置き換えられてもよいことを認識するであろう。
【0173】
[0185]
コンポーネントがある動作を実行する「ように構成されている」として説明されている場合、このようなコンフィギュレーションは、例えば、動作を実行するように電子回路または他のハードウェアを設計することにより、動作を実行するようにプログラマブル電子回路(例えば、マイクロプロセッサ、または、他の適切な電子回路)をプログラミングすることにより、または、これらの任意の組み合わせにより達成することができる。
【0174】
[0186]
「に結合されている」という句は、直接的または間接的のいずれかで別のコンポーネントに物理的に接続されている何らかのコンポーネントを、および/または、別のコンポーネントと直接的または間接的のいずれかで通信している(例えば、ワイヤードまたはワイヤレス接続を介して、および/または、他の適切な通信インターフェースを介して、他のコンポーネントに接続されている)何らかのコンポーネントを指している。
【0175】
[0187]
セット「のうちの少なくとも1つ」および/またはセットの「1つ以上」を記載する請求項言語または他の言語は、セットの1つのメンバーまたはセットの複数のメンバー(任意の組み合わせで)が請求項を満たすことを示している。例えば、「AおよびBのうちの少なくとも1つ」を記載する請求項言語は、A、B、または、AおよびBを意味している。別の例では、「A、BおよびCのうちの少なくとも1つ」を記載する請求項言語は、A、B、C、または、AおよびB、または、AおよびC、または、BおよびC、または、AおよびBおよびCを意味している。セットの「うちの少なくとも1つ」および/またはセットのうちの「1つ以上」の言語は、セット中にリストアップされている項目にセットを限定しない。例えば、「AおよびBのうちの少なくとも1つ」を記載する請求項言語は、A、B、または、AおよびBを意味することがあり、付加的に、AおよびBのセットにリストアップされていない項目を含むことがある。
【0176】
[0188]
本明細書で開示した実施形態に関して説明したさまざまな実例的な論理ブロック、モジュール、回路およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組み合わせとして、実現してもよい。ハードウェアとソフトウェアのこの互換性を明確に示すために、さまざまな実例的なコンポーネント、ブロック、モジュール、回路およびステップを、それらの機能性に関して上記一般的に説明した。このような機能性が、ハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の適用および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能性をそれぞれの特定の適用に対してさまざまな方法で実現してもよいが、このようなインプリメンテーションの決定は、本出願の範囲からの逸脱を引き起こすものと解釈すべきでない。
【0177】
[0189]
本明細書で説明した技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの何らかの組み合わせで実現してもよい。このような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、または、ワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用を含む複数の用途を有する集積回路デバイスのような、さまざまなデバイスのいずれかにおいて実現してもよい。モジュールまたはコンポーネントとして説明した何らかの特徴は、集積論理デバイスにおいて一緒に実現してもよく、または、ディスクリートであるが相互運用可能な論理デバイスとして別個に実現してもよい。ソフトウェアで実現される場合には、本技法は、実行されるときに、上記で説明した方法のうちの1つ以上を実行する命令を含むプログラムコードを備えるコンピュータ読取可能データ記憶媒体により、少なくとも部分的に実現してもよい。コンピュータ読取可能データ記憶媒体は、パッケージング材料を含んでいてもよいコンピュータプログラム製品の一部を形成していてもよい。コンピュータ読取可能媒体は、同期ダイナミックランダムアクセスメモリ(RAM)(SDRAM)のようなRAM、リードオンリーメモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)(登録商標)、FLASH(登録商標)メモリ、磁気または光データ記憶媒体、および、これらに類するもののような、メモリまたはデータ記憶媒体を備えていてもよい。本技法は、追加的または代替的に、伝搬信号または波のような、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによりアクセス、読み取り、および/または、実行することができる、コンピュータ読取可能通信媒体により、少なくとも部分的に実現してもよい。
【0178】
[0190]
プログラムコードは、プロセッサにより実行されてもよく、このプロセッサは、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは、他の同等の集積またはディスクリート論理回路のような、1つ以上のプロセッサを含んでいてもよい。このようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成されていてもよい。汎用プロセッサは、マイクロプロセッサであってもよいが、代替では、プロセッサは、何らかの従来のプロセッサ、制御装置、マイクロ制御装置、または、状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つ以上のマイクロプロセッサ、または、他の何らかのそのようなコンフィギュレーションとして実現してもよい。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれか、前述の構造の何らかの組み合わせ、あるいは、明細書で説明した技法のインプリメンテーションに適切な他の何らかの構造または装置を指しているかもしれない。加えて、いくつかの態様では、本明細書で説明した機能性は、エンコーディングおよびデコーディングのために構成されている専用ソフトウェアモジュールまたはハードウェアモジュール内で提供されるか、あるいは、組み合わされたビデオエンコーダデコーダ(CODEC)中に組み込まれていてもよい。
【0179】
[0191]
本開示の例示的な例は、以下を含んでいる。
【0180】
[0192]
例1:ビデオデータを処理する方法において、方法は、エンコードされたビデオビットストリームを取得し、エンコードされたビデオビットストリームは、ビデオデータのブロックを含むことと、エンコードされたビデオビットストリームから、ブロックに対する残差差分パルスコード変調(RDPCM)モードのイントラ予測モードへのマッピングを示す情報をデコードすることとを含んでいる。
【0181】
[0193]
例2:マッピングを示す情報に基づいて、ブロックに対するイントラ予測モードを使用することを決定することをさらに含む例1の方法。
【0182】
[0194]
例3:イントラ予測モードに基づいて、エンコードされたビデオビットストリームの1つ以上のブロックに対する予測子リストを導出することをさらに含む例1または2のいずれか1例記載の方法。
【0183】
[0195]
例4:予測子リストが、最確モード(MPM)リストを含む例3の方法。
【0184】
[0196]
例5:イントラ予測モードが、イントラ予測方向に対応する例1から4のいずれか1例記載の方法。
【0185】
[0197]
例6:イントラ予測方向が、水平イントラ予測方向を含む例5記載の方法。
【0186】
[0198]
例7:イントラ予測方向が、垂直イントラ予測方向を含む例5記載の方法。
【0187】
[0199]
例8:ブロックに対するRDPCMモードが、水平RDPCMモードを含み、情報が、水平RDPCMモードの水平イントラ予測方向へのマッピングを示す例1から5のいずれか1例記載の方法。
【0188】
[0200]
例9:ブロックに対するRDPCMモードが、垂直RDPCMモードを含み、情報が、垂直RDPCMモードの垂直イントラ予測方向へのマッピングを示す例1から5のいずれか1例記載の方法。
【0189】
[0201]
例10:情報が、RDPCMモードのPLANARイントラ予測モードへのマッピングを示す例1から5のいずれか1例記載の方法。
【0190】
[0202]
例11:情報が、RDPCMモードのDCイントラ予測モードへのマッピングを示す例1から5のいずれか1例記載の方法。
【0191】
[0203]
例12:例1から11のいずれかにしたがって、ビデオデータを記憶するように構成されているメモリと、ビデオデータを処理するように構成されているプロセッサとを具備する装置。
【0192】
[0204]
例13:装置が、デコーダを含む例12記載の装置。
【0193】
[0205]
例14:装置が、移動体デバイスである例12~13のいずれか1例記載の装置。
【0194】
[0206]
例15:ビデオデータを表示するように構成されているディスプレイをさらに具備する例12~14のいずれか1例記載の装置。
【0195】
[0207]
例16:1つ以上のピクチャーをキャプチャするように構成されているカメラをさらに具備する例12~15のいずれか1例記載の装置。
【0196】
[0208]
例17:プロセッサにより実行されるときに、例1~11のいずれかの方法を実行する命令を記憶しているコンピュータ読取可能媒体。
【0197】
[0209]
例18:ビデオデータを処理する方法において、方法は、ビデオデータのブロックに残差差分パルスコード変調(RDPCM)モードを適用することと、RDPCMモードのイントラ予測モードへのマッピングを決定することと、エンコードされたビデオビットストリームを発生させ、エンコードされたビデオビットストリームは、RDPCMモードのイントラ予測モードへのマッピングを示す情報を含むこととを含んでいる。
【0198】
[0210]
例19:イントラ予測モードが、マッピングを示す情報に基づいて、ブロックのために使用される例18記載の方法。
【0199】
[0211]
例20:エンコードされたビデオビットストリームの1つ以上のブロックに対する予測子リストが、イントラ予測モードに基づいて導出される例18または19のいずれか1例記載の方法。
【0200】
[0212]
例21:予測子リストが、最確モード(MPM)リストを含む例20の方法。
【0201】
[0213]
例22:イントラ予測モードが、イントラ予測方向に対応する例18~21のいずれか1例記載の方法。
【0202】
[0214]
例23:イントラ予測方向が、水平イントラ予測方向を含む例22記載の方法。
【0203】
[0215]
例24:イントラ予測方向が、垂直イントラ予測方向を含む例22記載の方法。
【0204】
[0216]
例25:ブロックに対するRDPCMモードが、水平RDPCMモードを含み、情報が、水平RDPCMモードの水平イントラ予測方向へのマッピングを示す例18~22のいずれか1例記載の方法。
【0205】
[0217]
例26:ブロックに対するRDPCMモードが、垂直RDPCMモードを含み、情報が、垂直RDPCMモードの垂直イントラ予測方向へのマッピングを示している例18~22のいずれか1例記載の方法。
【0206】
[0218]
例27:情報が、RDPCMモードのPLANARイントラ予測モードへのマッピングを示している例18~22のいずれか1例記載の方法。
【0207】
[0219]
例28:情報が、RDPCMモードのDCイントラ予測モードへのマッピングを示している例18~22のいずれか1例記載の方法。
【0208】
[0220]
例29:例18~28のいずれかにしたがっている、ビデオデータを記憶するように構成されているメモリと、ビデオデータを処理するように構成されているプロセッサとを具備する装置。
【0209】
[0221]
例30:装置が、エンコーダを含む例29記載の装置。
【0210】
[0222]
例31:装置が、移動体デバイスである例29または30のいずれか1例記載の装置。
【0211】
[0223]
例32:ビデオデータを表示するように構成されているディスプレイをさらに具備する例29~31のいずれか1例記載の装置。
【0212】
[0224]
例33:1つ以上のピクチャーをキャプチャするように構成されているカメラをさらに具備する例29~32のいずれか1例記載の装置。
【0213】
[0225]
例34:プロセッサにより実行されるときに、例18~28のいずれかの方法を実行する命令を記憶しているコンピュータ読取可能媒体。
【0214】
[0226]
例35:ビデオデータをデコードする方法において、方法は、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得することと、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定することと、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することと、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加することとを含んでいる。
【0215】
[0227]
例36:イントラ予測モードリストが、最確モード(MPM)リストを含む例35記載の方法。
【0216】
[0228]
例37:第2のブロックが、ピクチャー中の第1のブロックの隣接ブロックである例35~36のいずれか1例記載の方法。
【0217】
[0229]
例38:エンコードされたビデオビットストリームからの情報に基づいて、かつ、イントラ予測モードリストに基づいて、第1のブロックをデコードするために使用する予測モードを決定することと、決定された予測モードを使用して、第1のブロックをデコードすることとをさらに含む例35~37のずれか1例記載の方法。
【0218】
[0230]
例39:エンコードされたビデオビットストリームからの情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む例38記載の方法。
【0219】
[0231]
例40:イントラ予測モードリストフラグの値に基づいて、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあることを決定することと、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定することとをさらに含む例39記載の方法。
【0220】
[0232]
例41:エンコードされたビデオビットストリーム中の情報が、イントラ予測モードリストに関係するインデックス値を含み、方法が、インデックス値を使用して、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定することをさらに含む例39~40のいずれか1例記載の方法。
【0221】
[0233]
例42:第1のブロックが、ルーマコーディングブロックである例35~41のいずれか1例記載の方法。
【0222】
[0234]
例43:エンコードされたビデオビットストリーム中に含まれているピクチャーの第3のブロックを取得することと、ピクチャーの第4のブロックが、水平ブロックベースBDPCMモードを使用してコード化されていることを決定することと、第4のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第3のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第3のブロックに対するイントラ予測モードリストに追加することとをさらに含む例35~42のいずれか1例記載の方法。
【0223】
[0235]
例44:ビデオデータをデコードする装置は、ビデオデータの少なくとも1つのブロックを記憶するように構成されているメモリと、固定機能回路とプログラマブル回路とのうちの少なくとも1つを備えるビデオデコーダとを具備する。ビデオデコーダは、エンコードされたビデオビットストリーム中に含まれているピクチャーの第1のブロックを取得するようにと、ピクチャーの第2のブロックが、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用してコード化されていることを決定するようにと、第2のブロックが垂直BDPCMモードを使用してコード化されていることに基づいて、第1のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定するようにと、垂直イントラ予測モードを第1のブロックに対するイントラ予測モードリストに追加するように構成されている。
【0224】
[0236]
例45:イントラ予測モードリストが、最確モード(MPM)リストを含む例44記載の装置。
【0225】
[0237]
例46:第2のブロックが、ピクチャー中の第1のブロックの隣接ブロックである例44~45のいずれか1例記載の装置。
【0226】
[0238]
例47:ビデオデコーダは、エンコードされたビデオビットストリームからの情報に基づいて、かつ、イントラ予測モードリストに基づいて、第1のブロックをデコードするために使用する予測モードを決定するようにと、決定された予測モードを使用して、第1のブロックをデコードするように構成されている例44~46のいずれか1例記載の装置。
【0227】
[0239]
例48:エンコードされたビデオビットストリームからの情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む例47記載の装置。
【0228】
[0240]
例49:ビデオデコーダは、イントラ予測モードリストフラグの値に基づいて、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあることを決定するようにと、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定するように構成されている例48記載の装置。
【0229】
[0241]
例50:エンコードされたビデオビットストリーム中の情報が、イントラ予測モードリストに関係するインデックス値を含み、ビデオデコーダは、インデックス値を使用して、イントラ予測モードリストから、第1のブロックをデコードするために使用する予測モードを決定するように構成されている例48~49のいずれか1例記載の装置。
【0230】
[0242]
例51:第1のブロックが、ルーマコーディングブロックである例44~50のいずれか1例記載の装置。
【0231】
[0243]
例52:ビデオデコーダは、エンコードされたビデオビットストリーム中に含まれているピクチャーの第3のブロックを取得するようにと、ピクチャーの第4のブロックが、水平ブロックベースのBDPCMモードを使用してコード化されていることを決定することと、第4のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第3のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第3のブロックに対するイントラ予測モードリストに追加するように構成されている例44~51のいずれか1例記載の装置。
【0232】
[0244]
例53:ビデオデータを表示するように構成されているディスプレイをさらに具備する例44~52のいずれか1例記載の装置。
【0233】
[0245]
例54:装置が、カメラと、コンピュータと、移動体デバイスと、ブロードキャスト受信機デバイスと、セットトップボックスとのうちの少なくとも1つを備える例44~53のいずれか1例記載の装置。
【0234】
[0246]
例55:ビデオデータをエンコードする方法において、方法は、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードすることと、ピクチャーの第2のブロックを取得することと、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定することと、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加することと、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させることとを含んでいる。
【0235】
[0247]
例56:イントラ予測モードリストが、最確モード(MPM)リストを含む例55記載の方法。
【0236】
[0248]
例57:第2のブロックが、ピクチャー中の第1のブロックの隣接ブロックである例55~56のいずれか1例記載の方法。
【0237】
[0249]
例58:エンコードされたビデオビットストリーム中に、第1のブロックをデコードするために使用する予測モードを示す情報を含めることをさらに含む例55~57のいずれか1例記載の方法。
【0238】
[0250]
例59:情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む例58記載の方法。
【0239】
[0251]
例60:情報が、第1のブロックをデコードするために使用するイントラ予測モードリストからの予測モードを示すインデックス値を含む例58~59のいずれか1例記載の方法。
【0240】
[0252]
例61:第1のブロックが、ルーマコーディングブロックである例55~60のいずれか1例記載の方法。
【0241】
[0253]
例62:水平ブロックベースのBDPCMモードを使用して、ピクチャーの第3のブロックをエンコードすることと、ピクチャーの第4のブロックを取得することと、第3のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第4のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定することと、水平イントラ予測モードを第4のブロックに対するイントラ予測モードリストに追加することとをさらに含む例55~61のいずれか1例記載の方法。
【0242】
[0254]
例63:ビデオデータをエンコードする装置が、ビデオデータの少なくとも1つのブロックを記憶するように構成されているメモリと、固定機能回路とプログラマブル回路とのうちの少なくとも1つを備えるビデオエンコーダとを具備する。ビデオエンコーダは、垂直ブロックベースの量子化された残差ドメインのパルスコード変調(BDPCM)モードを使用して、ピクチャーの第1のブロックをエンコードするようにと、ピクチャーの第2のブロックを取得するようにと、第1のブロックが垂直BDPCMモードを使用してエンコードされていることに基づいて、第2のブロックに対するイントラ予測モードリストのための垂直イントラ予測モードを決定するようにと、垂直イントラ予測モードを第2のブロックに対するイントラ予測モードリストに追加するようにと、第1のブロックと、第2のブロックと、イントラ予測モードリストとを含む、エンコードされたビデオビットストリームを発生させるように構成されている。
【0243】
[0255]
例64:イントラ予測モードリストが、最確モード(MPM)リストを含む例63記載の装置。
【0244】
[0256]
例65:第2のブロックが、ピクチャー中の第1のブロックの隣接ブロックである例63~64のいずれか1例記載の装置。
【0245】
[0257]
例66:ビデオエンコーダは、エンコードされたビデオビットストリーム中に、第1のブロックをデコードするために使用する予測モードを示す情報を含めるように構成されている例64~65のいずれか1例記載の装置。
【0246】
[0258]
例67:情報は、第1のブロックをデコードするために使用する予測モードが、イントラ予測モードリスト中に含まれている多数の予測モードの中にあるか否かを示すイントラ予測モードリストフラグを含む例66記載の装置。
【0247】
[0259]
例68:情報が、第1のブロックをデコードするために使用するイントラ予測モードリストからの予測モードを示すインデックス値を含む例66~67のいずれか1例記載の装置。
【0248】
[0260]
例69:第1のブロックが、ルーマコーディングブロックである例63~68のいずれか1例記載の装置。
【0249】
[0261]
例70:ビデオエンコーダは、水平ブロックベースBDPCMモードを使用して、ピクチャーの第3のブロックをエンコードするようにと、ピクチャーの第4のブロックを取得するようにと、第3のブロックが水平BDPCMモードを使用してコード化されていることに基づいて、第4のブロックに対するイントラ予測モードリストのための水平イントラ予測モードを決定するようにと、水平イントラ予測モードを第4のブロックに対するイントラ予測モードリストに追加するように構成されている例63~69のいずれか1例記載の装置。
【0250】
[0262]
例71:装置が、カメラと、コンピュータと、移動体デバイスと、ブロードキャスト受信機デバイスと、セットトップボックスとのうちの1つ以上を備える例63~70のいずれか1例記載の装置。

図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
【国際調査報告】