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

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

▶ インターデジタル マディソン パテント ホールディングスの特許一覧

特許7088917符号化方法、復号方法、および対応するデバイス
<>
  • 特許-符号化方法、復号方法、および対応するデバイス 図1
  • 特許-符号化方法、復号方法、および対応するデバイス 図2
  • 特許-符号化方法、復号方法、および対応するデバイス 図3
  • 特許-符号化方法、復号方法、および対応するデバイス 図4
  • 特許-符号化方法、復号方法、および対応するデバイス 図5
  • 特許-符号化方法、復号方法、および対応するデバイス 図6
  • 特許-符号化方法、復号方法、および対応するデバイス 図7
  • 特許-符号化方法、復号方法、および対応するデバイス 図8
  • 特許-符号化方法、復号方法、および対応するデバイス 図9
  • 特許-符号化方法、復号方法、および対応するデバイス 図10
  • 特許-符号化方法、復号方法、および対応するデバイス 図11
  • 特許-符号化方法、復号方法、および対応するデバイス 図12
  • 特許-符号化方法、復号方法、および対応するデバイス 図13
  • 特許-符号化方法、復号方法、および対応するデバイス 図14
  • 特許-符号化方法、復号方法、および対応するデバイス 図15
  • 特許-符号化方法、復号方法、および対応するデバイス 図16
  • 特許-符号化方法、復号方法、および対応するデバイス 図17
  • 特許-符号化方法、復号方法、および対応するデバイス 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-13
(45)【発行日】2022-06-21
(54)【発明の名称】符号化方法、復号方法、および対応するデバイス
(51)【国際特許分類】
   H04N 19/70 20140101AFI20220614BHJP
   H04N 19/119 20140101ALI20220614BHJP
   H04N 19/176 20140101ALI20220614BHJP
   H04N 19/13 20140101ALI20220614BHJP
   H04N 19/157 20140101ALI20220614BHJP
【FI】
H04N19/70
H04N19/119
H04N19/176
H04N19/13
H04N19/157
【請求項の数】 22
(21)【出願番号】P 2019516440
(86)(22)【出願日】2017-09-25
(65)【公表番号】
(43)【公表日】2019-12-19
(86)【国際出願番号】 EP2017074224
(87)【国際公開番号】W WO2018065250
(87)【国際公開日】2018-04-12
【審査請求日】2020-09-24
(31)【優先権主張番号】16306308.4
(32)【優先日】2016-10-05
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】319002876
【氏名又は名称】インターデジタル マディソン パテント ホールディングス, エスアーエス
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】ルリアネック,ファブリス
(72)【発明者】
【氏名】ロベール,アントワーヌ
(72)【発明者】
【氏名】ポワリエ,タンギ
【審査官】古市 徹
(56)【参考文献】
【文献】特開2013-118424(JP,A)
【文献】米国特許出願公開第2013/0188704(US,A1)
【文献】Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer Ohm, Jill Boyce,Algorithm Description of Joint Exploration Test Model 4 [online], JVET-D JVET-C1001_v3,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/4_Chengdu/wg11/JVET-D0002-v1.zip>,2016年07月06日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/70
H04N 19/119
H04N 19/176
H04N 19/13
H04N 19/157
(57)【特許請求の範囲】
【請求項1】
イメージのブロックを復号する復号方法であって、
-分割モードのセット内で前記ブロックの分割モードを判定することであって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定することと、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割することと、
-前記少なくとも2つのサブブロックのそれぞれを復号することと
を含み、前記分割モードの判定は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素を復号することと、
少なくとも第3の構文要素値に依存する値から前記ブロックに関して非対称分割が許容されるかどうかを判定し、この値に応答して前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素を復号することと、
前記分割の位置を指定する分割モード構文要素を復号することと
を含む、復号方法。
【請求項2】
イメージのブロックを復号するように構成された復号デバイスであって、
-分割モードのセット内で前記ブロックの分割モードを判定する手段であって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定する手段と、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割する手段と、
-前記少なくとも2つのサブブロックのそれぞれを復号する手段と
を含み、前記分割モードを判定する前記手段は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素を復号し、
少なくとも第3の構文要素値に依存する値から前記ブロックに関して非対称分割が許容されるかどうかを判定し、この値に応答して前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素を復号し、
前記分割の位置を指定する分割モード構文要素を復号する
ように構成される、復号デバイス。
【請求項3】
前記第2の構文要素の復号は、
-前記第2の構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、現在のブロックのサイズに対する相対的な隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記第2の構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項1に記載の方法。
【請求項4】
前記コンテキストは、前記ブロックのサイズの1/4未満のサイズを有する隣接ブロック内のサブブロックの個数の関数であり、前記サイズは、幅または高さである、請求項3に記載の方法。
【請求項5】
前記ブロックが水平に分割される場合に、前記第2の構文要素の復号に関する前記コンテキストの判定は、
-前記ブロックの高さの1/4未満の高さを有する前記ブロックの左に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、そうでない場合には第2のコンテキストを入手することと
を含む、請求項4に記載の方法。
【請求項6】
前記ブロックが垂直に分割される場合に、前記第2の構文要素の復号に関する前記コンテキストの判定は、
-前記ブロックの幅の1/4未満の幅を有する前記ブロックの上に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、そうでない場合には第2のコンテキストを入手することと
を含む、請求項4または5のいずれか1項に記載の方法。
【請求項7】
前記コンテキストは、前記ブロックのサイズの1/2を超えるサイズを有する隣接ブロックの存在の関数であり、前記サイズは、幅または高さである、請求項3に記載の方法。
【請求項8】
前記分割モード構文要素の復号は、
-前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベース算術復号を行うことと
を含む、請求項1に記載の方法。
【請求項9】
前記ブロックが水平に分割される場合に、前記分割モード構文要素の復号は、
-前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項1に記載の方法。
【請求項10】
前記ブロックが垂直に分割される場合に、前記分割モード構文要素の復号は、
-前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素を復号するためのコンテキストを判定することであって、前記コンテキストは、前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項1に記載の方法。
【請求項11】
前記分割モード構文要素の復号は、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの第2の隣接ブロックのサイズに対する相対的な前記ブロックの第1の隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項1に記載の方法。
【請求項12】
イメージのブロックを符号化するコーディング方法であって、
-分割モードのセット内で前記ブロックの分割モードを判定することであって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定することと、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割することと、
-前記少なくとも2つのサブブロックのそれぞれを符号化することと
を含み、前記分割モードの判定は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素を判定し、符号化することと、
非対称分割を許容する条件が前記ブロックに関して満たされるかどうかを判定し、前記条件が満たされること応答して前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素を判定し、符号化することと、
前記分割の位置を指定する分割モード構文要素を判定し、符号化することと
を含む、コーディング方法。
【請求項13】
イメージのブロックを符号化するように構成されたコーディング・デバイスであって、
-分割モードのセット内で前記ブロックの分割モードを判定する手段であって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定する手段と、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割する手段と、
-前記少なくとも2つのサブブロックのそれぞれを符号化する手段と
を含み、分割モードを判定する前記手段は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素を判定し、符号化し、
非対称分割を許容する条件が前記ブロックに関して満たされるかどうかを判定し、前記条件が満たされること応答して前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素を判定し、符号化し、
前記分割の位置を指定する分割モード構文要素を判定し、符号化する
ように構成される、コーディング・デバイス。
【請求項14】
前記第2の構文要素の復号は、
-前記第2の構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、現在のブロックのサイズに対する相対的な隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記第2の構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項2に記載のデバイス。
【請求項15】
前記コンテキストは、前記ブロックのサイズの1/4未満のサイズを有する隣接ブロック内のサブブロックの個数の関数であり、前記サイズは、幅または高さである、請求項14に記載のデバイス。
【請求項16】
前記ブロックが水平に分割される場合に、前記第2の構文要素の復号に関する前記コンテキストの判定は、
-前記ブロックの高さの1/4未満の高さを有する前記ブロックの左に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、そうでない場合には第2のコンテキストを入手することと
を含む、請求項15に記載のデバイス。
【請求項17】
前記ブロックが垂直に分割される場合に、前記第2の構文要素の復号に関する前記コンテキストの判定は、
-前記ブロックの幅の1/4未満の幅を有する前記ブロックの上に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、そうでない場合には第2のコンテキストを入手することと
を含む、請求項15または16のいずれか1項に記載のデバイス。
【請求項18】
前記コンテキストは、前記ブロックのサイズの1/2を超えるサイズを有する隣接ブロックの存在の関数であり、前記サイズは、幅または高さである、請求項14に記載のデバイス。
【請求項19】
前記分割モード構文要素の復号は、
-前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベース算術復号を行うことと
を含む、請求項2に記載のデバイス。
【請求項20】
前記ブロックが水平に分割される場合に、前記分割モード構文要素の復号は、
-前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項2に記載のデバイス。
【請求項21】
前記ブロックが垂直に分割される場合に、前記分割モード構文要素の復号は、
-前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素を復号するためのコンテキストを判定することであって、前記コンテキストは、前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項2に記載のデバイス。
【請求項22】
前記分割モード構文要素の復号は、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの第2の隣接ブロックのサイズに対する相対的な前記ブロックの第1の隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、請求項2に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 以下では、ピクチャを符号化する方法およびデバイスを開示する。対応する復号方法および復号デバイスをさらに開示する。
【背景技術】
【0002】
[0002] 高い圧縮効率を達成するために、ビデオ・コーディング方式は、通常、ビデオ・コンテンツ内の空間的冗長性および時間的冗長性を活用するために予測および変換を使用する。一般に、イントラ予測またはインター予測が、イントラフレーム相関またはインターフレーム相関を活用するのに使用され、その後、しばしば残差と示される元のイメージと予測されたイメージとの間の差が、変換され、量子化され、エントロピ・コーディングされる。ビデオを再構成するために、圧縮されたデータは、予測、変換、量子化、およびエントロピ・コーディングに対応する逆プロセスによって復号される。
【0003】
[0003] HEVCコーディング(「ITU-T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265」)では、ピクチャは、通常は64×64、128×128、または256×256の構成可能なサイズを有する正方形形状のコーディング・ツリー・ユニット(CTU)に区分される。CTUは、コーディング・ユニット(CU)への四分木分割のルートである。CUごとに、そのCUがイントラ予測またはインター予測のどちらを使用してコーディングされるのかを示す予測モードがシグナリングされる。コーディング・ユニットは、1つまたは複数の予測ユニット(PU)に区分され、変換ユニット(TU)への四分木(変換木とも称する)区分のルートを形成する。PUは、正方形または長方形の形状を有することができるが、TUは、正方形の形状を有する。PUへのCUの非対称副分割は、インター予測でも可能である、すなわち、CUがサイズN×Nを有する場合に、PUは、図1に示されているように、サイズN/4×N、3N/4×M、N×N/4、N×3N/4を有することができる。各PUは、なんらかの予測情報、たとえば動き情報、空間イントラ予測などを割り当てられる。
【0004】
[0004] Quad-Tree plus Binary-Tree(QTBT)コーディング・ツール(「Algorithm Description of Joint Exploration Test Model 3」、Document JVET-C1001_v3、Joint Video Exploration Team of ISO/IEC JTC1/SC29/WG11、3rd meeting、2015年5月26日~6月1日、スイス国ジュネーブ)は、HEVC標準規格のCU/PU/TU配置より柔軟なCTU表現を提供する新しいビデオ・コーディング・ツールである。Quad-Tree plus Binary-Tree(QTBT)コーディング・ツールは、コーディング・ユニットを四分木と二分木との両方の形で分割できるコーディング・ツリーを定義する。コーディング・ツリー・ユニットのそのようなコーディング・ツリー表現が、図2に示されており、図では、実線が四分木区分を示し、破線がCUの二分木区分を示す。
【0005】
[0005] コーディング・ユニットへのCTUの分割は、符号器側で、たとえば、最小のレートひずみコストを有するCTUのQTBT表現を判定することに存するレートひずみ最適化手順を介して決定される。QTBT表現では、CUは、正方形または長方形のいずれかの形状を有する。コーディング・ユニットのサイズは、必ず2のべきであり、通常は4から128までになる。図3に示されているように、CTUのQTBT分解は、2つのステージを含み、CTUは、まず四分木の形で4つのCUに分割され、その後、各四分木葉は、二項の形で2つのCUに、または四分木の形で4つのCUにさらに分割され得る。図3では、実線は四分木分割を表し、破線は、四分木葉内で空間的に実施される二項分割を表す。
【0006】
[0006] QTBT表現を用いると、CUは、PUまたはTUにさらには分割されない。言い換えると、CTUの区分が決定されたならば、各CUは、単一の予測ユニットおよび単一の変換ユニットと考えられる。しかし、そのようなQTBT表現は、図4によって示されるCUの対称分割のみを可能にする。図4は、QTBTによって許容される4つの分割モードを示す。モードNO_SPLITは、CUがさらには分割されないことを示し、モードQT_SPLITは、CUが四分木に従って4つの象限に分割されることを示し、モードHORは、CUが等しいサイズの2つのCUに水平に分割されることを示し、VERは、CUが等しいサイズの2つのCUに垂直に分割されることを示す。
【発明の概要】
【0007】
[0007] イメージのブロックを復号する復号方法であって、
-分割モードのセット内でブロックの分割モードを判定することと、
-分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することと、
-少なくとも2つのサブブロックのそれぞれを復号することと
を含み、分割モードのセットは、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、復号方法。
【0008】
[0008] イメージのブロックを復号するように構成された復号デバイスであって、
-分割モードのセット内でブロックの分割モードを判定する手段と、
-分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割する手段と、
-少なくとも2つのサブブロックのそれぞれを復号する手段と
を含み、分割モードのセットは、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、復号デバイスを開示する。
【0009】
[0009] 少なくともストリームにアクセスするように構成された通信インターフェースと少なくとも1つのプロセッサとを含む復号デバイスであって、少なくとも1つのプロセッサは、
-分割モードのセット内でイメージのブロックの分割モードを判定し、
-分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割し、
-アクセスされたストリームからの少なくとも2つのサブブロックのそれぞれを復号する
ように構成され、分割モードのセットは、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、復号デバイスを開示する。
【0010】
以下の実施形態は、上で開示された復号方法および復号デバイスにあてはまる。
【0011】
[0010] 有利なことに、分割モードの判定は、
-ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)を復号することと、
-ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)を復号することと、
-第2の構文要素が、ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical/horizontal_asymmetric_type)を復号することと
を含む。
【0012】
[0011] 特定の特性に従って、第2の構文要素すなわちhorAsymmetricSplitFlagまたはverAsymmetricSplitFlagのいずれかは、単一のビットから復号される。
【0013】
[0012] 変形形態では、第2の構文要素(horAsymmetricSplitFlagまたはverAsymmetricSplitFlag)は、復号順で現在のブロックに先行するブロックを復号する時に第2の構文要素のとる値に依存する単一のコンテキストを使用するコンテキストベースの算術コーディングによって復号される。
【0014】
[0013] 変形形態では、第2の構文要素horAsymmetricSplitFlagは、現在のブロックの高さの1/4以下の高さを有する左隣接ブロック内に配置されたサブブロックの個数に依存する2つのコンテキストを使用するコンテキストベースの算術コーディングによって復号される。同一の形で、第2の構文要素verAsymmetricSplitFlagは、現在のブロックの幅の1/4以下の幅を有する上隣接ブロック内に配置されたサブブロックの個数に依存する2つのコンテキストを使用するコンテキストベースの算術コーディングによって復号される。
【0015】
[0014] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、現在のブロックに関連する四分木+二分木の深さ値の関数またはブロックの幅および高さの関数のいずれかとしてインデクシングされる。
【0016】
[0015] 特定の特性によれば、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)は、単一のビットから復号される。
【0017】
[0016] 変形形態では、分割モード構文要素(vertical_asymmetric_typeまたはhorizontal_asymmetric_typeのいずれか)は、復号順で現在のブロックに先行するブロックを復号する時に分割モード構文要素のとる値に依存する単一のコンテキストを使用するコンテキストベースの算術コーディングによって復号される。
【0018】
[0017] 変形形態では、分割モード構文要素horizontal_asymmetric_typeは、現在のブロックの水平非対称分割の選択を介して入手される現在のブロックの水平フロンティアと空間的に一致するフロンティアの現在のブロックの左に配置されたブロック内での存在に依存する3つのコンテキストを使用するコンテキストベースの算術コーディングによって復号される。
【0019】
[0018] 同一の形で、分割モード構文要素vertical_asymmetric_typeは、現在のブロックの垂直非対称分割の選択を介して入手される現在のブロックの垂直フロンティアと空間的に一致するフロンティアの現在のブロックの上に配置されたブロック内での存在に依存する3つのコンテキストを使用するコンテキストベースの算術コーディングによって復号される。
【0020】
[0019] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、現在のブロックに関連する四分木+二分木の深さ値の関数またはブロックの幅および高さの関数のいずれかとしてインデクシングされる。
【0021】
[0020] 変形形態では、分割モードの判定は、
ブロックが、復号順で次のブロックと合併されることを示す構文要素(merge_with_next_CU_flag)を復号すること
を含む。
【0022】
[0021] 特定の実施形態では、ブロックは、ルマ・サンプルのブロック、クロマ・サンプルのブロック、またはルマ・サンプルの1ブロックおよびクロマ・サンプルの2ブロックによって形成されるコーディング・ユニットのうちの1つである。
【0023】
[0022] 特定の実施形態では、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することは、ブロックを高さh/4の1つのサブブロックおよび高さ3h/4の1つのサブブロックに水平に分割することであって、hはブロックの高さである、分割することを含む。
【0024】
[0023] 特定の実施形態では、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することは、ブロックを幅w/4の1つのサブブロックおよび幅3w/4の1つのサブブロックに垂直に分割することであって、wはブロックの幅である、分割することを含む。
【0025】
[0024] イメージのブロックを符号化するコーディング方法であって、
-分割モードのセット内でブロックの分割モードを判定することと、
-分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することと、
-少なくとも2つのサブブロックのそれぞれを符号化することと
を含み、分割モードのセットは、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、コーディング方法も開示される。
【0026】
[0025] イメージのブロックを符号化するように構成されたコーディング・デバイスであって、
-分割モードのセット内でブロックの分割モードを判定する手段と、
-分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割する手段と、
-少なくとも2つのサブブロックのそれぞれを符号化する手段と
を含み、分割モードのセットは、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、コーディング・デバイスも開示される。
【0027】
[0026] 少なくとも、現在のブロックと命名される、イメージのブロックにアクセスするように構成された通信インターフェースと、少なくとも1つのプロセッサとを含むコーディング・デバイスが開示される。少なくとも1つのプロセッサは、
-分割モードのセット内でブロックの分割モードを判定し、
-分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割し、
-少なくとも2つのサブブロックのそれぞれを符号化する
ように構成され、分割モードのセットは、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む。
【0028】
[0027] 以下の実施形態は、上で開示されたコーディング方法およびコーディング・デバイスにあてはまる。
【0029】
[0028] 有利なことに、分割モードの判定は、
-ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)を判定し、符号化することと、
-ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)を判定し、符号化することと、
-第2の構文要素が、ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)判定し、符号化することと
を含む。
【0030】
[0029] 特定の特性によれば、第2の構文要素すなわちhorAsymmetricSplitFlagまたはverAsymmetricSplitFlagのいずれかは、単一のビットを用いて符号化される。
【0031】
[0030] 変形形態では、第2の構文要素は、符号化順で現在のブロックに先行するブロックを符号化する時に第2の構文要素のとる値に依存する単一のコンテキストを使用するコンテキストベースの算術コーディングによって符号化される。
【0032】
[0031] 変形形態では、第2の構文要素horAsymmetricSplitFlagは、現在のブロックの高さの1/4以下の高さを有する左隣接ブロック内に配置されたサブブロックの個数に依存する2つのコンテキストを使用するコンテキストベースの算術コーディングによって符号化される。同一の形で、第2の構文要素verAsymmetricSplitFlagは、現在のブロックの幅の1/4以下の幅を有する上隣接ブロック内に配置されたサブブロックの個数に依存する2つのコンテキストを使用するコンテキストベースの算術コーディングによって符号化される。
【0033】
[0032] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、現在のブロックに関連する四分木+二分木の深さ値の関数またはブロックの幅および高さの関数のいずれかとしてインデクシングされる。
【0034】
[0033] 特定の特性によれば、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)は、単一のビットを用いて符号化される。
【0035】
[0034] 変形形態では、分割モード構文要素は、符号化順で現在のブロックに先行するブロックを符号化する時に分割モード構文要素のとる値に依存する単一のコンテキストを使用するコンテキストベースの算術コーディングによって符号化される。
【0036】
[0035] 変形形態では、分割モード構文要素horizontal_asymmetric_typeは、現在のブロックの水平非対称分割の選択を介して入手される現在のブロックの水平フロンティアと空間的に一致するフロンティアの現在のブロックの左に配置されたブロック内での存在に依存する3つのコンテキストを使用するコンテキストベースの算術コーディングによって符号化される。
【0037】
[0036] 同一の形で、分割モード構文要素vertical_asymmetric_typeは、現在のブロックの垂直非対称分割の選択を介して入手される現在のブロックの垂直フロンティアと空間的に一致するフロンティアの現在のブロックの上に配置されたブロック内での存在に依存する3つのコンテキストを使用するコンテキストベースの算術コーディングによって符号化される。
【0038】
[0037] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、現在のブロックに関連する四分木+二分木の深さ値の関数またはブロックの幅および高さの関数のいずれかとしてインデクシングされる。
【0039】
[0038] 別の実施形態では、分割モードの判定は、
ブロックが、符号化順で次のブロックと合併されることを示す構文要素(merge_with_next_CU_flag)を判定し、符号化すること
を含む。
【0040】
[0039] 例示的な実施形態として、ブロックは、ルマ・サンプルのブロック、クロマ・サンプルのブロック、またはルマ・サンプルの1ブロックおよびクロマ・サンプルの2ブロックによって形成されるコーディング・ユニットのうちの1つである。
【0041】
[0040] 一実施形態では、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することは、ブロックを高さh/4の1つのサブブロックおよび高さ3h/4の1つのサブブロックに水平に分割することであって、hはブロックの高さである、分割することを含む。
【0042】
[0041] 一実施形態では、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することは、ブロックを幅w/4の1つのサブブロックおよび幅3w/4の1つのサブブロックに垂直に分割することであって、wはブロックの幅である、分割することを含む。
【0043】
[0042] コーディングされたデータが、分割モードのセット内でブロックの分割モードを判定することと、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することと、少なくとも2つのサブブロックのそれぞれをコーディングされたデータに符号化することとによって入手され、分割モードのセットが、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、ブロックを表すコーディングされたデータを含むストリームも開示される。
【0044】
[0043] ストリームが、ブロックを表すコーディングされたデータを含み、コーディングされたデータが、分割モードのセット内でブロックの分割モードを判定することと、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することと、少なくとも2つのサブブロックのそれぞれをコーディングされたデータに符号化することとによって入手され、分割モードのセットが、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、その上にストリームを記憶された非一時的プロセッサ可読媒体が開示される。
【0045】
[0044] コーディングされたデータが、分割モードのセット内でブロックの分割モードを判定することと、分割モードに応答して、ブロックを少なくとも2つのサブブロックに分割することと、少なくとも2つのサブブロックのそれぞれをコーディングされたデータに符号化することとによって入手され、分割モードのセットが、ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、ブロックを表すコーディングされたデータを送信することを含む送信方法が開示される。
【0046】
[0045] 有利なことに、コーディングされたデータは、
-ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)と、
-ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)と、
-第2の構文要素が、ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical/horizontal_asymmetric_type)と
を含む。
【0047】
[0046] 変形形態では、コーディングされたデータは、ブロックが、符号化順で次のブロックと合併されることを示す構文要素(merge_with_next_CU_flag)を含む。
【図面の簡単な説明】
【0048】
図1】[0047]従来技術による予測ユニットへのコーディング・ユニットの非対称副分割を示す図である。
図2】[0048]技術的現状によるコーディング・ユニットへのコーディング・ツリー・ユニットの分割を示す図である。
図3】[0048]技術的現状によるコーディング・ユニットへのコーディング・ツリー・ユニットの分割を示す図である。
図4】[0049]Quad-Tree plus Binary-Treeコーディング・ツールによって定義されるコーディング・ユニットの分割モードを示す図である。
図5】[0050]非限定的な実施形態による、ビットストリーム内でイメージ・ブロックを符号化するように構成された送信器の例示的なアーキテクチャを表す図である。
図6】[0051]図7および/または図11の符号化方法を実行するように適合された例示的なビデオ符号器を示す図である。
図7】[0052]特定の非限定的な実施形態による、ビットストリーム内でイメージのブロックを符号化する方法を示す流れ図である。
図8】[0053]本原理による非対称分割モードの例を示す図である。
図9】[0054]本原理によるCUへのCTUの区分の例を示す図である。
図10】[0055]符号化構文のグラフ表現を示す図である。
図11】[0056]特定の非限定的な実施形態による、現在のブロックの二項分割情報を符号化する方法を示す流れ図である。
図12】[0057]非限定的な実施形態による、復号されたイメージ・ブロックを入手するためにビットストリームからイメージ・ブロックを復号するように構成された受信器の例示的なアーキテクチャを表す図である。
図13】[0058]図14および/または図15の復号方法を実行するように適合された例示的なビデオ復号器を示すブロック図である。
図14】[0059]特定の非限定的な実施形態による、ビットストリームからイメージのブロックを復号する方法を示す流れ図である。
図15】[0060]特定の非限定的な実施形態による、二項分割の場合の現在のブロックの分割モードを復号する方法を示す流れ図である。
図16】[0061]本原理による、非対称分割モードを表す構文要素のエントロピ・コーディング・プロセスを示す図である。
図17】[0061]本原理による、非対称分割モードを表す構文要素のエントロピ・コーディング・プロセスを示す図である。
図18】[0062]符号化構文の変形形態を示す図である。
【発明を実施するための形態】
【0049】
[0063] 図面および説明が、明瞭さのために通常の符号化デバイスおよび/または復号デバイスに見られる多数の他の要素を除去しながら、本原理の明瞭な理解に関係する要素を示すために単純化されていることを理解されたい。用語「第1」および「第2」が、本明細書で様々な要素を記述するのに使用される場合があるが、これらの要素が、これらの用語によって限定されてはならないことを理解されたい。これらの用語は、ある要素を別の要素から区別するためにのみ使用される。様々な方法が、上で説明され、方法のそれぞれが、説明される方法を達成するために1つまたは複数のステップまたはアクションを含む。ステップまたはアクションの特定の順序が、方法の正しい動作のために要求されない限り、特定のステップおよび/またはアクションの順序および/または使用を、変更しまたは組み合わせることができる。
【0050】
[0064] ピクチャは、モノクローム・フォーマットのルマ・サンプルの配列または4:2:0、4:2:2、および4:4:4カラー・フォーマットのルマ・サンプルの1つの配列およびクロマ・サンプルの2つの対応する配列である。一般に「ブロック」は、サンプル配列(たとえば、ルマY)内の特定の区域をアドレッシングし、「ユニット」は、すべての符号化された色成分(ルマYとおそらくはクロマCbおよびクロマCr)の同一位置に配置されたブロックを含む。しかし、用語「ブロック」は、本明細書ではブロック(たとえば、CB)またはユニット(たとえば、CU)を指すのに使用される。
【0051】
[0065] 以下のセクションでは、用語「再構成された」および「復号された」が、交換可能に使用され得る。必ずではないが通常、「再構成された」は符号器側で使用され、「復号された」は復号器側で使用される。
【0052】
符号化装置
[0066] 図5は、非限定的な実施形態による、ビットストリーム内でイメージ・ブロックを符号化するように構成された送信器200の例示的なアーキテクチャを表す。
【0053】
[0067] 送信器200は、内部メモリ2030(たとえば、RAM、ROM、および/またはEPROM)と共に、1つまたは複数のプロセッサ2000を含み、プロセッサ2000は、たとえば、CPU、GPU、および/またはDSP(デジタル信号プロセッサの英語頭字語)を含むことができる。送信器200は、それぞれが出力情報を表示し、かつ/またはユーザがコマンドおよび/もしくはデータ(たとえば、ストリーム)を入力することを可能にするように適合された1つまたは複数の通信インターフェース2010(たとえば、キーボード、マウス、タッチパッド、ウェブカム)と、送信器200の外部とすることができる電源2020とを含む。送信器200は、1つまたは複数のネットワーク・インターフェース(図示せず)をも含むことができる。符号器モジュール2040は、コーディング機能を実行するためにデバイス内に含めることのできるモジュールを表す。さらに、符号器モジュール2040は、送信器200の別々の要素として実施され得、あるいは、当業者に既知のようにハードウェアとソフトウェアとの組合せとしてプロセッサ(1つまたは複数)2000内に組み込まれ得る。
【0054】
[0068] イメージ・ブロックは、ソースから入手され得る。異なる実施形態によれば、ソースは、
-ローカル・メモリ、たとえば、ビデオ・メモリ、RAM、フラッシュ・メモリ、ハード・ディスクと、
-ストレージ・インターフェース、たとえば、マス・ストレージ、ROM、光ディスク、または磁気サポートとのインターフェースと、
-通信インターフェース、たとえば、有線インターフェース(たとえば、バス・インターフェース、広域ネットワーク・インターフェース、ローカル・エリア・ネットワーク・インターフェース)または無線インターフェース(IEEE 802.11インターフェースまたはBluetoothインターフェースなど)と、
-イメージ取込回路(たとえば、たとえばCCD(すなわち電荷結合素子)またはCMOS(すなわち相補型金属酸化膜半導体)などのセンサ)
とすることができるが、これに限定されない。
【0055】
[0069] 異なる実施形態によれば、ビットストリームは、宛先に送られ得る。一例として、ビットストリームは、リモート・メモリまたはローカル・メモリ、たとえばビデオ・メモリまたはRAM、ハード・ディスク内に記憶される。変形形態では、ビットストリームは、ストレージ・インターフェース、たとえば、マス・ストレージ、ROM、フラッシュ・メモリ、光ディスク、または磁気サポートとのインターフェースに送られ、かつ/または通信インターフェース、たとえば、ポイント・ツー・ポイト・リンク、通信バス、ポイント・ツー・マルチポイント・リンク、またはブロードキャスト・ネットワークへのインターフェースを介して伝送される。
【0056】
[0070] 例示的で非限定的な実施形態によれば、送信器200は、メモリ2030内に記憶されたコンピュータ・プログラムをさらに含む。コンピュータ・プログラムは、送信器200、具体的にはプロセッサ2000によって実行される時に、送信器200が図7および/または図11を参照して説明される符号化方法を実行することを可能にする命令を含む。変形形態によれば、コンピュータ・プログラムは、送信器200の外部で非一時的デジタル・データ・サポート上、たとえば、すべて当技術分野で既知の、HDD、CD-ROM、DVD、読取専用および/もしくはDVDドライブ、ならびに/またはDVD Read/Writeドライブなどの外部記憶媒体上に記憶される。したがって、送信器200は、コンピュータ・プログラムを読み取る機構を含む。さらに、送信器200は、対応するUniversal Serial Bus(USB)ポート(図示せず)を介して、1つまたは複数のUSBタイプのストレージ・デバイス(たとえば、「メモリ・スティック」)にアクセスすることができる。
【0057】
[0071] 例示的で非限定的な実施形態によれば、送信器200は、
-モバイル・デバイスと、
-通信デバイスと、
-ゲーム・デバイスと、
-タブレット(またはタブレット・コンピュータ)と、
-ラップトップと、
-静止画カメラと、
-ビデオ・カメラと、
-符号化チップまたは符号化デバイス/装置と、
-静止画サーバと、
-ビデオ・サーバ(たとえば、ブロードキャスト・サーバ、ビデオオンデマンド・サーバ、またはウェブ・サーバ)と
とすることができるが、これに限定されない。
【0058】
[0072] 図6は、図7および/または図11の符号化方法を実行するように適合された例示的なビデオ符号器400を示す。符号器400は、送信器200の例であり、あるいは、そのような送信器200の一部とすることができる。1つまたは複数のピクチャを有するビデオ・シーケンスを符号化するために、ピクチャは、構成可能なサイズを有する正方形形状のコーディング・ツリー・ユニット(CTU)に区分され得る。コーディング・ツリー・ユニットの連続するセットは、スライスにグループ化され得る。CTUは、コーディング・ユニットへのQTBT区分のルートである。例示的な符号器400では、ピクチャは、下で説明する符号器モジュールによって符号化される。各ブロックは、イントラ・モードまたはインター・モードのいずれかを使用して符号化される。ブロックがイントラ・モードで符号化される時には、符号器400は、イントラ予測(モジュール460)を実行する。インター・モードでは、動き推定(モジュール475)および動き補償(モジュール470)が実行される。符号器は、イントラ・モードまたはインター・モードのどちらをブロックの符号化に使用すべきかを決定し(モジュール405)、予測モード・フラグによってイントラ/インター決定を示す。残差が、元の画像ブロックから予測されたサンプル・ブロック(プレディクタとも称する)を減算する(モジュール410)ことによって計算される。
【0059】
[0073] 一例として、ブロックは、イントラ・モードでは再構成された隣接サンプルから予測される。インター予測は、参照ピクチャ・バッファ480内に記憶された参照ブロックを動き補償することによって実行される。
【0060】
[0074] 残差は、変換され(モジュール425)、量子化される(モジュール430)。量子化された変換係数ならびに動きベクトルおよび他の構文要素が、ビットストリームを出力するためにエントロピ・コーディングされる(モジュール445)。符号器は、変換をスキップし、変換されていない残差信号に直接に量子化を適用することもできる。符号器は、変換と量子化との両方を迂回することもできる、すなわち、残差は、変換プロセスまたは量子化プロセスを適用せずに直接にコーディングされる。直接PCMコーディングでは、予測が適用されず、ブロック・サンプルは、直接にビットストリームにコーディングされる。
【0061】
[0075] 符号器は、復号ループを含み、したがって、さらなる予測のための参照を提供するために、符号化されたブロックを復号する。量子化された変換係数は、残差を復号するために、逆量子化され(モジュール440)、逆変換される(モジュール450)。イメージ・ブロックは、復号された残差と予測されたサンプル・ブロックとを組み合わせる(モジュール455)ことによって再構成される。ループ内フィルタ(465)が、たとえばコーディング・アーティファクトを減らすためにデブロッキング/SAO(サンプル・アダプティブ・オフセット)フィルタリングを実行するために、再構成されたピクチャに適用され得る。フィルタリングされたイメージは、参照ピクチャ・バッファ480内に記憶される。
【0062】
符号化方法
[0076] 図7は、特定の非限定的な実施形態による、ビットストリーム内でイメージのブロックを符号化する方法の流れ図を表す。
【0063】
[0077] この方法は、ステップS200で開始する。ステップS210では、たとえば符号器400などの送信器が、イメージのブロックにアクセスする。ブロックは、サイズw×hであり、wはその幅(画素単位)であり、hはその高さ(画素単位)である。ブロックは、ルマ・サンプルのコーディング・ブロック、クロマ・サンプルのコーディング・ブロック、またはルマ・サンプルの1つのコーディング・ブロックとクロマ・サンプルの2つのコーディング・ブロックとによって形成されるコーディング・ユニットのうちの1つである。ステップS220では、送信器が、分割モードのセット内でアクセスされたブロックの分割モードを判定する。特定の実施形態では、判定された分割モードは、分割モードのセット内で最小限のレートひずみコストを実現する分割モードである。本原理によれば、分割モードのセットは、少なくとも1つの非対称分割モードを含む。図8は、そのような非対称分割モードの例を示す。第1の実施形態では、少なくとも1つの非対称分割モードは、ブロックを高さh/4の1つのサブブロックと高さ3h/4の1つのサブブロックとに水平に分割することを示す。高さh/4のサブブロックは、高さ3h/4のサブブロックの上(モードHOR_UP)または下(モードHOR_DOWN)のいずれかにある。別の実施形態では、少なくとも1つの非対称分割モードは、ブロックを幅w/4の1つのサブブロックと幅3w/4の1つのサブブロックとに垂直に分割することを示す。幅w/4のサブブロックは、幅3w/4のサブブロックの左(モードVER_LEFT)または右(モードVER_RIGHT)のいずれかにある。特定の実施形態では、分割モードのセットは、図8に示された分割モードのすべてを含む。変形実施形態では、少なくとも1つの非対称分割モードは、ブロックを、そのサイズが2のべきではないサブブロックに水平または垂直のいずれかに分割することを示し、たとえば、幅wまたは高さhにおけるサイズは、3・2n画素と等しく、nは整数である。
【0064】
[0078] 変形形態では、分割モードのセットは、少なくとも1つの非対称分割モードに加えて、QTBTによって定義される、図4に示された分割モードを含む。分割モードが、ブロックがさらには分割されないことを示す(たとえば、分割モード=NO_SPLIT)場合には、そのブロックは、ステップS250で符号化される。
【0065】
[0079] そうではない場合には、ステップS230で、送信器が、判定された分割モードに応答して、アクセスされたブロックを少なくとも2つのサブブロックに分割する。
【0066】
[0080] ステップS240では、送信器が、ビットストリーム内で少なくとも2つのサブブロックを符号化する。少なくとも2つのサブブロックの符号化は、少なくとも2つのサブブロックのそれぞれに対してステップS220~S250を再帰的に適用することを含み得る。再帰的分割は、たとえば分割モードNO_SPLITがステップS220で判定されるので、ブロックがさらには分割されない時に終了する。この場合には、ブロックは、以下のステップを適用することによってステップS250で符号化される。
-予測されたブロックを入手するために前記ブロックのサンプルに対して同一の予測を適用するステップ
-前記予測されたブロックおよび前記ブロックから残差ブロックを判定するステップ
-変換されたブロックを入手するために前記残差ブロックのサンプルに対して同一の変換を適用するステップ
-ビットストリーム内で前記変換されたブロックを符号化する、たとえば、量子化し、エントロピ・コーディングするステップ
ブロックをどのように分割するのかを示す分割情報も、ビットストリーム内で符号化される。
【0067】
[0081] この方法は、ステップS260で終了する。
【0068】
[0082] 有利なことに、3・2nと等しい幅または高さを有するコーディング・ユニットが、本原理に従って符号器によって選択され得る。その場合に、3の倍数のサイズを有する長方形ブロックのイントラ予測および/またはインター予測が実行され得る。さらに、幅または高さにおいてサイズ3・2nを有する2D変換および後続の変換係数エントロピ・コーディング・プロセスも実行され得る。
【0069】
[0083] これらの追加のコーディング・ユニット・トポロジは、元の信号に含まれる構造および不連続性と空間的に一致するコーディング構造を有するのを手伝う。本原理によるCUへのCTUの区分の例が、図9に表されている。この図では、四分木区分が実線によって表され、二項区分(対称および非対称)が破線によって表されている。そのような区分(特に灰色のCU)を、HEVCまたはQTBTで定義される区分を用いて得ることはできない。二項分割の場合の非対称分割モードの追加は、元の信号に含まれる構造および不連続性によりよく一致することによってコーディング効率を改善する。
【0070】
[0084] ビットストリーム内で二項分割情報を符号化するための例示的な構文が、表1および表2で定義される。この構文は、情報の様々な項目がどのようにコーディングされるのかを定義する。QTBTで定義された二項分割モードを符号化するのに使用される構文要素btSplitFlagおよびbtSplitOrientationは、未変更のままである。第1の構文要素btSplitFlagは、ブロック(CUまたはCB)が分割されるかどうかを示し、そうである場合には、第2の構文要素btSplitOrientationが、ブロックが水平または垂直のどちらで分割されるのかを示す。QTBT構文は、図8の新しい分割モードを示す新しい構文要素を追加することによって変更される。表1および表2は、本原理による構文の例であり、QTBT構文に対する修正は、斜体で示されている。図10は、表1および表2で定義された構文のグラフ表現である。追加された構文要素は、図10では破線で示されている。QTBTからの構文要素は、図10では実線によって示されている。
【0071】
[0085] 新しい構文要素は、二項分割が非対称であるかどうかを示し、そうである場合には、どの非対称二項分割モードが使用されるのかを示す。より正確には、horAsysmmetricFlag構文要素およびverAsysmmetricFlag構文要素は、それぞれ水平分割および垂直分割の場合に、二項分割されるブロックについて、分割モードが非対称であるか否かを示す。
【数1】
構文要素は、水平に非対称に分割されるブロックについて、HORUP非対称二項分割モードまたはHORDOWN非対称二項分割モードのどちらに従ってそのブロックが分割されるのかを示す。
【数2】
構文要素は、垂直に非対称に分割されるブロックについて、VERLEFT非対称二項分割モードまたはVERRIGHT非対称二項分割モードのどちらに従ってそのブロックが分割されるのかを示す。
【0072】
特定の実施形態では、構文要素horAsysmmetricFlagおよび
【数3】
(それぞれverAsysmmetricFlagおよび
【数4】
)は、非対称水平分割(それぞれ、非対称垂直分割)が許容されない場合には存在しない。
【表1-1】
【表1-2】
表1
【表2】
表2
【0073】
[0086] 図11は、表1および表2で定義された修正された構文を使用する特定の非限定的な実施形態による、現在のブロックの二項分割情報を符号化する方法の流れ図を表す。
【0074】
[0087] 図11では、現在のブロックの二項分割モード符号化に関するステップだけが表されている。この方法は、ステップS2000で開始する。ステップS2010では、符号器400などの送信器200が、現在のブロックにアクセスする。
【0075】
[0088] ステップS2020では、送信器200が、二項分割が現在のブロックに関して許容されるかどうかをチェックする。これは、通常は、現在のブロックの幅(w)または現在のブロックの高さ(h)が第1のしきい値(minBTSize)より大きいかどうかをチェックすることに存する。幅または高さにおける最小長方形ブロック・サイズの典型的な はminBTSize=4である。そうでない場合には、ブロックは分割されず、分割に関する他の構文要素はコーディングされない。
【0076】
[0089] そうではない(二項分割が許容される)場合には、ステップS2030で、現在のブロックが分割されるか否かを示すために、第1のフラグ(btSplitFlag)を符号化する。例のbtSplitFlagは、現在のブロックが分割されることを示すために値1またはTrueをとり、現在のブロックが分割されないことを示すために値Falseまたは0をとることができる。ステップS2040では、送信器200が、現在のブロックが分割されまたはされないのどちらを第1のフラグが示すのかをチェックする。
【0077】
[0090] ステップS2040で、第1のフラグが、現在のブロックが分割されないことを示す(たとえば、btSplitFlag=Falseなので)場合には、分割に関する他の構文要素はコーディングされない。
【0078】
[0091] そうではなく、ステップS2040で、第1のフラグが、現在のブロックが分割されることを示す(たとえば、btSplitFlag=Trueなので)場合には、ステップS2050で、送信器200が、水平、垂直、非対称水平、および非対称垂直の分割モードが現在のブロックに関して許容されるかどうかを判定する。
【0079】
[0092] 一例として、垂直分割モードは、条件(w>minBTSize && w%3≠0)が真である場合に許容され、%は、モジュロ演算子である。w%3は、3によるwの除算の後の剰余を返す。通常、minBTSizeは4と等しい可能性があり、垂直分割モードは、wが8、16、または32と等しい場合に許容される。
【0080】
[0093] この場合には、vertical_allowedパラメータに、値1または真をセットすることができる。一例として、水平分割モードは、条件(h>minBTSize && h%3≠0)が真である場合に許容される。この場合には、horizontal_allowedパラメータに、値1または真をセットすることができる。一例として、垂直非対称分割モードは、条件verticalallowed && w>8が真である場合に許容される。一例として、水平非対称分割モードは、条件horizontalallowed && h>8が真である場合に許容される。したがって、非対称水平分割または非対称垂直分割から生じる通常の許容されるブロックの幅または高さは、16/4=4、16*3/4=12、32/4=8、32*3/4=24である。
【0081】
[0094] この実施形態では、ブロックが既に非対称な形で分割されている場合に、我々は、ブロックが3の倍数のサイズを有する方向でのブロックのさらなる分割を許容しない。さらに、ブロック・サイズに対するなんらかの制限が、ブロックの非対称分割を許容するために課される。通常、ブロック・サイズは8を超えなければならない。この場合に、3の倍数である最小ブロックのサイズは、12である。
【0082】
[0095] 特定の実施形態では、そのサイズが1つの方向で3・2n、n≧1と等しいブロックの二項分割は、分割すべきブロックが2の倍数のサイズを有するならば、その方向に沿って許容される。これは、ブロックの分割が、3のブロック・サイズにつながり得ることを意味する。たとえば、ブロック12×4は、それぞれがサイズ6×4を有する2つのサブブロックに分割され得る。
【0083】
[0096] 別の特定の実施形態では、ブロックの非対称分割は、そのサイズが8を超え、2のべきであるならば許容される。たとえば、これは、サイズ8×4を有するブロックの、サイズ6×4および2×4を有する2つのサブ・コーディング・ユニットへの非対称分割を許容する。これは、具体的には、QTBTツールが下がって2までのブロック・サイズを許容する場合のクロマ成分で可能である可能性がある。その場合に、条件verticalallowed && w>8は、条件verticalallowed && w≧8に置換される。同様に、その場合に、条件horizontalallowed && w>8は、条件horizontalallowed && w≧8に置換される。
【0084】
[0097] ステップS2060では、送信器200が、水平分割モードと垂直分割モードとの両方が許容されるかどうかをチェックする。そうである場合には、ステップS2070で、二項分割方位(水平または垂直)を示すために、構文要素(btSplitOrientation)をコーディングする。水平分割または垂直分割のいずれかが許容されない場合には、この構文要素(btSplitOrientation)はコーディングされない。この後者の場合には、二項分割方位は、次のように復号器側で推論される。水平分割が許容されない場合には、btSplitOrientationは、VERと等しいと推論される。そうではなく、垂直分割が許容されない場合には、btSplitOrientationは、HORと等しいと推論される。
【0085】
[0098] その後、ステップS2080(水平分割の場合)またはステップS2090(垂直分割の場合)で、送信器200は、非対称分割モードがこの方位に沿って許容されるかどうかをチェックする。そうではない場合には、分割に関するさらなる構文要素は、コーディングされない。この後者の場合には、二項分割モードは、btSplitOrientation値に依存して、復号器側でHORまたはVERであると推論される。
【0086】
[0099] そうではない場合には、構文要素(horAsymmetricSplitFlagまたはverAsymmetricSplitFlag)は、(ステップS2082またはS2092で)非対称分割が現在のブロックに関して使用されるか否かを示すために符号化される。
【0087】
[0100] 一例として、horAsymmetricSplitFlag(それぞれ、verAsymmetricSplitFlag)は、現在のブロックが非対称に分割されることを示すために値1またはTrueをとることができ、現在のブロックが非対称に分割されないことを示すために値Falseまたは0をとることができる。ステップS2084(それぞれ、S2094)で、送信器200は、現在のブロックが非対称に水平に(それぞれ、垂直に)分割されるかどうかをチェックする。
【0088】
[0101] 非対称分割が使用されない(たとえば、ステップS2084でhorAsymmetricSplitFlagが偽であるか、ステップS2094でverAsymmetricSplitFlagがFalseである)場合には、分割に関するさらなる構文要素は、コーディングされない。非対称分割が使用される(ステップS2084でhorAsymmetricSplitFlagが真であるか、ステップS2094でverAsymmetricSplitFlagがTrueである)場合には、現在のブロックの非対称分割モードを示すために、別の構文要素(horizontal_asymmetric_typeまたはvertical_asymmetric_type)が符号化される(ステップS2086またはS2096で)。
【0089】
[0102] horizontal_asymmetric_typeは、値HOR_UPまたはHOR_DOWNをとることができ、vertical_asymmetric_typeは、値VER_LEFTまたはVER_RIGHTをとることができる。
【0090】
[0103] この方法は、ステップS2100で終了する。
【0091】
復号装置
[0104] 図12は、非限定的な実施形態による、復号されたイメージ・ブロックを入手するためにビットストリームからイメージ・ブロックを復号するように構成された受信器100の例示的なアーキテクチャを表す。
【0092】
[0105] 受信器100は、内部メモリ1030(たとえば、RAM、ROM、および/またはEPROM)と共に、1つまたは複数のプロセッサ1000を含み、プロセッサ1000は、たとえばCPU、GPU、および/またはDSP(デジタル信号プロセッサの英語頭字語)を含むことができる。受信器100は、それぞれが出力情報を表示し、かつ/またはユーザがコマンドおよび/もしくはデータ(たとえば、復号されたイメージ・ブロック)を入力することを可能にするように適合された1つまたは複数の通信インターフェース1010(たとえば、キーボード、マウス、タッチパッド、ウェブカム)と、受信器100の外部とすることができる電源1020とを含む。受信器100は、1つまたは複数のネットワーク・インターフェース(図示せず)をも含むことができる。復号器モジュール1040は、復号機能を実行するためにデバイス内に含めることのできるモジュールを表す。さらに、復号器モジュール1040は、受信器100の別々の要素として実施され得、あるいは、当業者に既知のようにハードウェアとソフトウェアとの組合せとしてプロセッサ(1つまたは複数)1000内に組み込まれ得る。
【0093】
[0106] ビットストリームは、ソースから入手され得る。異なる実施形態によれば、ソースは、
-ローカル・メモリ、たとえば、ビデオ・メモリ、RAM、フラッシュ・メモリ、ハード・ディスクと、
-ストレージ・インターフェース、たとえば、マス・ストレージ、ROM、光ディスク、または磁気サポートとのインターフェースと、
-通信インターフェース、たとえば、有線インターフェース(たとえば、バス・インターフェース、広域ネットワーク・インターフェース、ローカル・エリア・ネットワーク・インターフェース)または無線インターフェース(IEEE 802.11インターフェースまたはBluetoothインターフェースなど)と、
-ピクチャ取込回路(たとえば、たとえばCCD(すなわち電荷結合素子)またはCMOS(すなわち相補型金属酸化膜半導体)などのセンサ)
とすることができるが、これに限定されない。
【0094】
[0107] 異なる実施形態によれば、復号されたイメージ・ブロックは、宛先、たとえばディスプレイ・デバイスに送られ得る。一例として、復号されたイメージ・ブロックは、リモート・メモリまたはローカル・メモリ、たとえばビデオ・メモリまたはRAM、ハード・ディスク内に記憶される。変形形態では、復号されたイメージ・ブロックは、ストレージ・インターフェース、たとえば、マス・ストレージ、ROM、フラッシュ・メモリ、光ディスク、または磁気サポートとのインターフェースに送られ、かつ/または通信インターフェース、たとえば、ポイント・ツー・ポイト・リンク、通信バス、ポイント・ツー・マルチポイント・リンク、またはブロードキャスト・ネットワークへのインターフェースを介して伝送される。
【0095】
[0108] 特定の非限定的な実施形態によれば、受信器100は、メモリ1030内に記憶されたコンピュータ・プログラムをさらに含む。コンピュータ・プログラムは、受信器100、具体的にはプロセッサ1000によって実行される時に、受信器が図14および/または図15を参照して説明される復号方法を実行することを可能にする命令を含む。変形形態によれば、コンピュータ・プログラムは、受信器100の外部で非一時的デジタル・データ・サポート上、たとえば、すべて当技術分野で既知の、HDD、CD-ROM、DVD、読取専用および/もしくはDVDドライブ、ならびに/またはDVD Read/Writeドライブなどの外部記憶媒体上に記憶される。したがって、受信器100は、コンピュータ・プログラムを読み取る機構を含む。さらに、受信器100は、対応するUniversal Serial Bus(USB)ポート(図示せず)を介して1つまたは複数のUSBタイプのストレージ・デバイス(たとえば、「メモリ・スティック」)にアクセスすることができる。
【0096】
[0109] 例示的で非限定的な実施形態によれば、受信器100は、
-モバイル・デバイスと、
-通信デバイスと、
-ゲーム・デバイスと、
-セット・トップ・ボックスと、
-TVセットと、
-タブレット(またはタブレット・コンピュータ)と、
-ラップトップと、
-ビデオ・プレイヤ、たとえば、ブルーレイ・プレイヤ、DVDプレイヤと、
-ディスプレイと、
-復号チップまたは復号デバイス/装置と
とすることができるが、これに限定されない。
【0097】
[0110] 図13は、図14および/または図15の復号方法を実行するように適合された例示的なビデオ復号器300のブロック図を示す。ビデオ復号器300は、受信器100の例であり、あるいは、そのような受信器100の一部とすることができる。例示的な復号器300では、ビットストリームが、下で説明するように復号器モジュールによって復号される。ビデオ復号器300は、一般に、図6で説明したビデオ符号器400によって実行される符号化パスと相反する復号パスを実行する。
【0098】
[0111] 具体的には、復号器の入力は、ビデオ符号器400によって生成され得るビデオ・ビットストリームを含む。ビットストリームは、まず、変換係数、動きベクトル、および他のコーディングされた情報を入手するためにエントロピ復号される(モジュール330)。変換係数が、残差を復号するために逆量子化され(モジュール340)、逆変換される(モジュール350)。その後、復号された残差は、復号され/再構成されたイメージ・ブロックを入手するために、予測されたサンプル・ブロック(プレディクタとも称する)と組み合わされる(モジュール355)。予測されたサンプル・ブロックは、イントラ予測(モジュール360)または動き補償された予測(すなわち、インター予測)(モジュール375)から入手され得る(モジュール370)。ループ内フィルタ(モジュール365)が、再構成されたイメージに適用され得る。ループ内フィルタは、デブロッキング・フィルタおよびSAOフィルタを含むことができる。フィルタリングされたイメージは、参照ピクチャ・バッファ380内に記憶される。
【0099】
復号方法
[0112] 図14は、特定の非限定的な実施形態による、ビットストリームからイメージのブロックを復号する方法の流れ図を表す。ブロックは、サイズw×hであり、wは画素単位のその幅であり、hは画素単位のその高さである。ブロックは、ルマ・サンプルのブロック、クロマ・サンプルのブロック、またはルマ・サンプルの1つのブロックとクロマ・サンプルの2つのブロックとによって形成されるコーディング・ユニットのうちの1つである。
【0100】
[0113] この方法は、ステップS100で開始する。ステップS110では、復号器300などの受信器100が、復号されるブロックを表すビットストリームまたはその一部にアクセスする。
【0101】
[0114] ステップS120では、受信器が、分割モードのセット内でブロックの分割モードを判定する。分割モードは、たとえばビットストリームから復号される。本原理によれば、分割モードのセットは、少なくとも1つの非対称分割モードを含む。図8は、そのような非対称分割モードの例を示す。第1の実施形態では、少なくとも1つの非対称分割モードは、ブロックを高さh/4の1つのサブブロックと高さ3h/4の1つのサブブロックとに水平に分割することを示す。高さh/4のサブブロックは、高さ3h/4のサブブロックの上(モードHOR_UP)または下(モードHOR_DOWN)のいずれかにある。別の実施形態では、少なくとも1つの非対称分割モードは、ブロックを幅w/4の1つのサブブロックと幅3w/4の1つのサブブロックとに垂直に分割することを示す。幅w/4のサブブロックは、幅3w/4のサブブロックの左(モードVER_LEFT)または右(モードVER_RIGHT)のいずれかにある。特定の実施形態では、分割モードのセットは、図8に示された分割モードのすべてを含む。変形実施形態では、少なくとも1つの非対称分割モードは、ブロックを、そのサイズが2のべきではないサブブロックに水平または垂直のいずれかに分割することを示し、たとえば、幅または高さにおけるサイズは、3・2nと等しく、nは整数である。
【0102】
[0115] 変形形態では、分割モードのセットは、少なくとも1つの非対称分割モードに加えて、QTBTによって定義される、図4に示された分割モードを含む。分割モードが、ブロックがさらには分割されないことを示す(NO_SPLIT)場合には、そのブロックは、ステップS150で復号される。
【0103】
[0116] そうではない場合には、ステップS130で、受信器が、判定された分割モードに応答して、アクセスされたブロックを少なくとも2つのサブブロックに分割する。
【0104】
[0117] ステップS140では、送信器が、少なくとも2つのサブブロックのそれぞれを復号する。少なくとも2つのサブブロックの復号は、少なくとも2つのサブブロックのそれぞれにステップS120~S140を再帰的に適用することを含むことができる。再帰的な分割は、ブロックが、たとえば分割モードNO_SPLITがステップS120で判定されるので、さらには分割されない時に終了する。この場合に、ブロックは、以下のステップを適用することによってステップS150で復号される。
-前記サブブロックの変換されたブロックを復号する、たとえばエントロピ復号し、逆量子化するステップ
-残差ブロックを入手するために前記復号された変換されたブロックのサンプルに対して同一の変換(符号器側で使用されたものの逆)を適用するステップ
-予測されたブロックを入手するために前記サブブロックのサンプルに対して同一の予測を適用するステップ
-前記予測されたブロックおよび前記残差ブロックから前記サブブロックを再構成するステップ。
【0105】
[0118] この方法は、ステップS160で終了する。
【0106】
[0119] ブロックがどのように分割されるのかを示す分割情報もビットストリームから復号される。
【0107】
[0120] 図15は、表1および表2で定義された修正された構文を使用する特定の非限定的な実施形態による、二項分割の場合の現在のブロックの分割モードを復号する方法の流れ図を表す。
【0108】
[0121] 図15では、現在のブロックの二項分割モード復号に関するステップだけが表されている。この方法は、ステップS1000で開始する。ステップS1010では、復号器300などの受信器100が、復号される現在のブロックを表すビットストリームまたはその一部にアクセスする。
【0109】
[0122] ステップS1020では、受信器100が、二項分割が、復号される現在のブロックに関して許容されるかどうかをチェックする。これは、通常、現在のブロックの幅(w)または現在のブロックの高さ(h)が第1のしきい値(minBTSize)より大きいかどうかをチェックすることに存する。幅または高さにおける最小長方形ブロック・サイズの典型的な はminBTSize=4である。二項分割が許容されない場合には、ブロックは分割されず(ステップS1045で、btSplitModeにNO_SPLITをセットする)、分割に関する他の構文要素は復号されない。
【0110】
[0123] そうではない(二項分割が許容される)場合には、ステップS1030で、現在のブロックが分割されるか否かを示す第1のフラグ(btSplitFlag)をビットストリームから復号する。
【0111】
[0124] ステップS1040では、受信器100が、現在のブロックが分割されるか否かをチェックする。現在のブロックが分割されない(たとえば、ステップS1040でbtSplitFlagがFalseである)場合には、分割に関する他の構文要素は復号されない。ステップS1045で、btSplitModeにNO_SPLITをセットする。
【0112】
[0125] 現在のブロックが分割される(ステップS1040でbtSplitFlagがTrueである)場合には、ステップS1050で、受信器100が、現在のブロックに関して水平、垂直、非対称水平、および非対称垂直の分割モードが許容されるかどうかを判定する。ステップS1050は、図11のステップS2050と同一である。
【0113】
[0126] ステップS1060では、受信器100が、水平分割モードと垂直分割モードとの両方が許容されるかどうかをチェックする。そうである場合には、ステップS1070で、二項分割方位(水平または垂直)を示すために、構文要素(btSplitOrientation)を復号する。水平分割または垂直分割のいずれかが許容されない場合には、この構文要素(btSplitOrientation)は復号されない。この後者の場合には、ステップS1065で、二項分割方位を推論する。水平分割が許容されない場合には、btSplitOrientationはVERと等しいと推論される。そうではなく、垂直分割が許容されない場合には、btSplitOrientationはHORと等しいと推論される。
【0114】
[0127] その後、受信器100は、ステップS1080(水平分割の場合)またはステップS1090(垂直分割の場合)で、非対称分割がこの方位に沿って許容されるかどうかをチェックする。そうではない場合には、分割に関するさらなる構文要素は、復号されない。この後者の場合には、二項分割モードは、btSplitOrientation値に依存してHORまたはVERであると推論される(btSplitModeには、ステップS1085でbtSplitOrientationがセットされる)。
【0115】
[0128] そうではない場合には、非対称分割が現在のブロックに関して使用されるか否かを示す構文要素(horAsymmetricSplitFlagまたはverAsymmetricSplitFlag)が復号される(ステップS1082またはS1092で)。ステップS1084(それぞれ、S1094)では、受信器100が、現在のブロックが非対称に水平に(それぞれ、垂直に)分割されるかどうかをチェックする。
【0116】
[0129] 非対称分割が使用されない(horAsymmetricSplitFlagまたはverAsymmetricSplitFlagがTrueではない)場合には、分割に関するさらなる構文要素は、復号されない。非対称分割が使用される(horAsymmetricSplitFlagまたはverAsymmetricSplitFlagがTrueである)場合には、現在のブロックの非対称分割モードを示す構文要素(horizontal_asymmetric_typeまたはvertical_asymmetric_type)が復号される(ステップS1086またはS1096で)。
【0117】
[0130] horizontal_asymmetric_typeは、値HOR_UPまたはHOR_DOWNをとることができ、vertical_asymmetric_typeは、値VER_LEFTまたはVER_RIGHTをとることができる。
【0118】
[0131] horizontal_asymmetric_typeが値HOR_UPをとる場合には、二項分割モード(btSplitMode)は、HOR_UPと等しくなるようにセットされる。
【0119】
[0132] horizontal_asymmetric_typeが値HOR_DOWNをとる場合には、二項分割モードは、HOR_DOWNと等しくなるようにセットされる。
【0120】
[0133] vertical_asymmetric_typeが値VER_LEFTをとる場合には、二項分割モードは、VER_LEFTと等しくなるようにセットされる。
【0121】
[0134] horizontal_asymmetric_typeが値VER_LEFTをとる場合には、二項分割モードは、VER_LEFTと等しくなるようにセットされる。
【0122】
[0135] この方法は、ステップS1100で終了する。
【0123】
構文要素のエントロピ・コーディングおよびエントロピ復号
[0136] 新しい構文要素verAsymmetricSplitFlagおよびhorAsymmetricSplitFlagは、異なる形で符号化され得る。第1の実施形態では、verAsymmetricSplitFlag(それぞれ、horAsymmetricSplitFlag)は、ビットストリーム内の単一のビットを用いてコーディングされる。これは、対称分割モードおよび非対称分割モードが等しい確率を有する、すなわち、verAsymmetricSplitFlag(それぞれ、horAsymmetricSplitFlag)が、真と等しくなる0.5の確率を有する場合に限って最適である。 その場合に、これらの構文要素によってそれぞれもたらされる情報の平均量は、1ビットと等しく、1ビットを用いる固定長コーディングが最適である。
【0124】
[0137] 最も実用的な場合には、対称分割モードおよび非対称分割モードは、等確率ではない可能性が高い。したがって、別の実施形態によれば、コンテキストベースの算術コーディングが、構文要素verAsymmetricSplitFlagおよびhorAsymmetricSplitFlagを符号化するのに使用される。コンテキストベースの算術コーディングは、コンテキスト・モデル化および算術コーディングを含む。特定の実施形態では、コンテキストベースの算術コーディングは、コンテキスト・モデル化の前に、構文要素の2進化を含むことができる。2進化および算術コーディングは、過去の符号化方式(たとえば、H.264およびHEVC)から周知である。コンテキスト・モデル化は、なんらかのコンテキストに基づいて各構文要素の確率を推定し、符号器側および復号器側に対称に適用する。エントロピ・コーディングに関して開示される以下の実施形態はエントロピ復号にもあてはまる。したがって、新しいコンテキストが、新しい構文要素horAsymmetricFlagおよびverAsymmetricFlagのために定義される。
【0125】
[0138] この実施形態では、それぞれ各構文要素horAsymmetricFlagおよびverAsymmetricFlagに関連する2つの単純なコンテキストが使用される。これらのコンテキストのそれぞれは、関係する構文要素自体によって過去(すなわち、コーディング順で現在のブロックに先行するブロックを符号化する時)にとられた値だけに依存する。したがって、考慮される構文要素によって表されるランダム変数の一次エントロピに近い情報の平均量にわたってこの非対称分割モード情報を符号化することができる。したがって、これらの構文要素は、これらのフラグの統計的分布が均一ではない場合に、平均して1ビット未満にわたって符号化される。このコンテキストベースのコーディングの変形形態では、horAsymmetricFlagおよびverAsymmetricFlagに使用されるコンテキストが、同一である。実際に、この2つの構文要素のコーディングは、同一のコンテキストを共有することができる。これは、horAsymmetricFlagがTRUEまたはFALSEになり、現在のブロックが水平方位で二項分割されることを知る確率が、verAsymmetricFlagがTRUEまたはFALSEになり、現在のブロックが垂直方位で二項分割されることを知る確率に近いと仮定するならば、効率的であるはずである。
【0126】
[0139] 第3の実施形態では、これらの構文要素verAsymmetricSplitFlagおよびhorAsymmetricSplitFlagは、先行する隣接ブロック内で既に決定された分割構成に関するなんらかのコンテキスト情報の関数としてエントロピ・コーディングされる。非対称分割が、現在のブロックに関して使用される時に、2サブブロックの1つのサブブロックは、幅または高さにおいて現在のブロックのサイズの1/4と等しいサイズを有する。これは、現在のブロックの元の信号が、ある空間アクティビティまたは不連続性を含むことと、コーディング効率に関して現在のブロックを分割することが価値を有することとを意味する。そのような高い空間アクティビティまたは不連続性は、コーディング順で現在のブロックに先行する隣接ブロック内にも存在する可能性が高い。
【0127】
[0140] コンテキストは、考慮される分割方位に沿って現在のブロックのサイズの1/4以下のサイズを有するサブブロックの個数の関数として非対称分割構文要素を符号化するように定義される。これは、それぞれ水平および垂直の非対称分割コンテキストに関して、以下の形をとる。
-nbQuarterHeightSubCU=左隣接ブロック内の
【数5】
以下の高さを有するサブブロックの個数を判定する。ここで、height=現在のブロックの高さである。
-horAsymmetricSplitCtxt=(nbQuarterHeightSubCU>0?1:0) (1)を判定する。
【0128】
[0141] 式(1)によれば、2つの異なるコンテキストが、horAsymmetricSplitFlag構文要素のコーディングに使用される。値nbQuarterHeightSubCUが、厳密に0を超える場合には、第1のコンテキスト(インデックス0を有する)が、horAsymmetricSplitFlagに対応する2進シンボルを符号化するのに使用される。反対の場合では、値nbQuarterHeightSubCUが0と等しい場合には、第2のコンテキスト(インデックス1を有する)が、horAsymmetricSplitFlagに対応する2進シンボルを符号化するのに使用される。
【0129】
[0142] 左隣接ブロックは、現在のブロックの高さ以上の高さを有し、その右境界が現在のブロックの左境界のx座標から1を減じたものと等しいx座標を有するブロックに対応する。左隣接ブロックは、高さ方向で1つまたは複数のサブブロックに分割され得る。
-nbQuarterWidthSubCU=上隣接ブロック内の
【数6】
以下の幅を有するサブブロックの個数 を判定する。ここで、width=現在のブロックの幅である。
-verAsymmetricSplitCtxt=(nbQuarterWidthSubC>0?1:0) (2)を判定する。
【0130】
[0143] 式(2)によれば、2つの異なるコンテキストが、verAsymmetricSplitFlag構文要素をコーディングするのに使用される。値nbQuarterWidthSubCUが厳密に0を超える場合には、第1のコンテキスト(インデックス0を有する)が、verAsymmetricSplitFlagに対応する2進シンボルを符号化するのに使用される。反対の場合において、値nbQuarterWidthSubCUが0と等しい場合には、第2のコンテキスト(インデックス1を有する)が、verAsymmetricSplitFlagに対応する2進シンボルを符号化するのに使用される。
【0131】
[0144] 上隣接ブロックは、現在のブロックの幅以上の幅を有し、その下境界が現在のブロックの上境界のy座標から1を減じたものと等しいy座標を有するブロックに対応する。上隣接ブロックは、幅方向で1つまたは複数のサブブロックに分割され得る。
【0132】
[0145] 別の実施形態によれば、非対称分割フラグverAsymmetricSplitFlagおよびhorAsymmetricSplitFlagをコーディングするのに使用されるコンテキストは、それぞれ幅および高さにおいて現在のブロックのサイズの1/2以上のサイズを有する隣接ブロックの存在の関数として判定される。これは、以下の形をとる。第1に、要素horAsymmetricSplitFlagのコーディングをコーディングするのに使用されるコンテキストは、次のように判定される。
-現在のCUの左上角の左に配置されたブロックが、現在のブロックの高さの1/2を超える高さを有するかどうかを判定する。
-現在のCUの左下角の左側に配置されたブロックが、現在のブロックの高さの1/2を超える高さを有するかどうかを判定する。
-上記テストのうちの1つが肯定である場合には、horAsymmetricSplitCtxtに値0を与える。
-そうではない場合には、horAsymmetricSplitCtxtに値1を与える。
【0133】
[0146] 同様に、要素verAsymmetricSplitFlagのコーディングをコーディングするのに使用されるコンテキストは、次のように判定される。
-現在のCUの左上角の上に配置されたブロックが、現在のブロックの幅の1/2を超える幅を有するかどうかを判定する。
-現在のCUの右上角の上に配置されたブロックが、現在のブロックの幅の1/2を超える幅を有するかどうかを判定する。
-上記テストのうちの1つが肯定である場合には、verAsymmetricSplitCtxtに値0を与える。
-そうではない場合には、verAsymmetricSplitCtxtに値1を与える。
【0134】
[0147] さらなる実施形態によれば、いくつかの別々のコンテキストが、スライス・タイプ(INTRAまたはINTER)に従って、horAsymmetricSplitFlagおよびverAsymmetricSplitFlagをコーディング/復号するのに使用される。INTERスライス内では、上記のコンテキスト判定方法が使用される。INTRAスライス内では、それぞれhorAsymmetricSplitFlagおよびverAsymmetricSplitFlagに関して、これらのフラグをコーディング/復号する時に使用可能なコンテキスト的ブロック・サイズ情報にかかわりなく、単一のコンテキストが、これらの2つのフラグの統計的挙動を取り込むのに使用される。
【0135】
[0148] この実施形態の利点は、特にINTERスライスにおいて、コーディングされるフラグと隣接ブロック情報との間の統計的依存性をよりよくモデル化することであり、これは、これらのフラグのコーディングに関連するレート・コストを下げる。
【0136】
[0149] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、現在のブロックに関連する四分木+二分木の深さ値の関数としてインデクシングされる。したがって、コンテキストの別々のセットが、CTUの四分木+二分木表現内の深さレベルごとに使用される。有利なことに、より正確なコンテキストが、コーディング/復号される構文要素の統計的挙動をモデル化するのに使用される。
【0137】
[0150] 第3の実施形態では、2つの異なるコンテキストのセットが、構文要素horAsymmetricSplitFlagおよびverAsymmetricSplitFlagのコンテキスト適応コーディングを実行するのに使用される。したがって、コンテキストのセットは、次のように示される。
・horAsymmetricSplitFlagCtx[0..1]
・verAsymmetricSplitFlagCtx[0..1]
【0138】
[0151] この実施形態では、コンテキストは、四分木+二分木CTU表現内の処理されるブロックの深さによってインデクシングされる。したがって、コンテキストの上記2つのセットは、深さレベルに基づいてさらにインデクシングされる。
・horAsymmetricSplitFlagCtx[0...maxDepth][0..1]
・verAsymmetricSplitFlagCtx[0...maxDepth][0..1]
ここで、maxDepthは、ブロックの最大深さを表す。ここで、深さは、現在のブロックの四分木深さと二分木深さとの和を意味する。
【0139】
[0152] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、ブロックの形状すなわち幅および高さの関数としてインデクシングされる。これは、コンテキストの別々のセットが、可能なコーディング・サイズのタプル(w,h)ごとに使用されることを意味する。この実施形態の利点は、コーディング/復号される構文要素の統計的挙動をモデル化するためのさらに改善されたコンテキストである。有利なことに、より正確なコンテキストが、コーディング/復号される構文要素の統計的挙動をモデル化するのに使用される。
【0140】
[0153] この実施形態では、コンテキストは、ブロックの幅のlog2および高さのlog2によってインデクシングされる。
・horAsymmetricSplitFlagCtx[0...maxLog2CUHeight][0..1]
・verAsymmetricSplitFlagCtx[0...maxLog2CUWidth][0..1]
ここで、maxLog2CUWidthおよびmaxLog2CUHeightは、2のべきと等しい最大の可能なブロック幅およびブロック高さのlog2を表す。
【0141】
[0154] 非対称分割が、2のべきと等しいブロック・サイズだけに適用され得るので、コンテキストは、2のべきと等しいブロック・サイズに関連付けられる。
【0142】
[0155] 新しい構文要素horizontal_asymmetric_typeまたはvertical_asymmetric_typeは、異なる形で符号化され得る。第1の実施形態では、horizontal_asymmetric_type(それぞれ、vertical_asymmetric_type)は、ビットストリーム内の単一のビットを用いてコーディングされる。
【0143】
[0156] これは、horizontal_asymmetric_typeまたはvertical_asymmetric_type構文要素が等しい確率を有する場合に限って最適である。
【0144】
[0157] 別の実施形態によれば、コンテキストベースの算術コーディングが、構文要素horizontal_asymmetric_typeまたはvertical_asymmetric_typeを符号化するのに使用される。この実施形態では、それぞれ各構文要素horizontal_asymmetric_typeまたはvertical_asymmetric_typeに関連する2つの単純なコンテキストが使用される。これらのコンテキストのそれぞれは、関係する構文要素自体によって過去(たとえば、コーディング順で先行するブロックを符号化する時)にとられた値だけに依存する。このコンテキストベースのコーディングの変形形態では、horizontal_asymmetric_typeおよびvertical_asymmetric_typeに使用されるコンテキストを、同一とすることができる。したがって、この2つの構文要素のコーディングは、同一のコンテキストを共有することができる。これは、horizontal_asymmetric_typeがTRUEまたはFALSEになり、現在のブロックが水平方位で非対称に二項分割されることを知る確率が、vertical_asymmetric_typeがTRUEまたはFALSEになり、現在のブロックが垂直方位で非対称に二項分割されることを知る確率に近いと仮定するならば、効率的であるはずである。
【0145】
[0158] 第3の実施形態では、これらの構文要素horizontal_asymmetric_typeまたはvertical_asymmetric_typeは、図16および図17に示されているように、先行する隣接ブロック内で既に決定された分割構成に関するなんらかのコンテキスト情報の関数としてエントロピ・コーディングされる。水平非対称分割では、現在のブロックの左の以前のブロック内の分割フロンティア(図16のF1)が、存在し、水平非対称分割の選択を介して現在のブロック内に現れるはずの水平フロンティアと空間的に一致する場合には、現在のブロック内でこの非対称分割を使用する確率が、高められる。
【0146】
[0159] この原理が、図16に示されている。この図の左側では、候補HOR_UP分割モードが、現在のブロック内で評価されつつあり、左の隣接ブロックは、分割されなかった。その場合の現在のブロックに関するHOR_UP分割モードの使用の確率は、図16の右側に示された場合より低い。実際に、この後者の場合には、隣接ブロックは、HOR_UP分割モードの選択によって現在のブロック内に伝搬されるはずの水平フロンティアを含む分割構成を用いて符号化された。現在のブロックでのHOR_UP分割モードの選択は、図16の左側に示された以前の場合より、この場合に発生する可能性がより高い。
【0147】
[0160] この原理は、垂直非対称分割の場合において図17にも示されている。VER_RIGHT分割モードは、図17の左の場合よりも図17の右に示された場合に現在のブロックを符号化するのに使用されることのより高い確率を有する。というのは、右の場合が、垂直フロンティアF2を、現在のブロックの上に配置された隣接ブロックから現在のブロックに伝搬させるからである。
【0148】
[0161] この原理に基づいて、以下のコンテキストが、構文要素
【数7】
をコーディングし、復号するのに使用される。
・HOR_UP非対称タイプから生じるフロンティアに整列された左隣接ブロック内のフロンティアがあるかどうかを判定する。結果に応じて、
【数8】
に真または偽をセットする。
・HOR_DOWN非対称タイプから生じるフロンティアに整列された左隣接ブロック内のフロンティアがあるかどうかを判定する。結果に応じて、
【数9】
に真または偽をセットする。
・以下のように、値(0、1、2)の中でコンテキスト・インデックスを判定する。
【数10】
(3)
【0149】
式(3)によれば、3つの異なるコンテキストが、
【数11】
構文要素をコーディングするのに使用される。値
【数12】
がTRUEと等しい場合には、第1のコンテキスト(インデックス1を有する)が、
【数13】
に対応する2進シンボルを符号化するのに使用される。反対の場合において、値
【数14】
がTRUEと等しい場合には、第2のコンテキスト(インデックス2を有する)が、
【数15】
に対応する2進シンボルを符号化するのに使用される。最後に、値
【数16】

【数17】
との両方がFALSEと等しい場合には、第3のコンテキスト(インデックス0を有する)が、
【数18】
に対応する2進シンボルを符号化するのに使用される。
【0150】
以下のコンテキストが、構文要素
【数19】
をコーディングし、復号するのに使用される。
・VER_LEFT非対称タイプから生じるフロンティアに整列された上隣接ブロック内のフロンティアがあるかどうかを判定する。結果に応じて、
【数20】
に真または偽をセットする。
・VER_RIGHT非対称タイプから生じるフロンティアに整列された上隣接ブロック内のフロンティアがあるかどうかを判定する。結果に応じて、
【数21】
に真または偽をセットする。
・以下のように、値(0、1、2)の中でコンテキスト・インデックスを計算する。
【数22】
(4)
【0151】
式(3)によれば、3つの異なるコンテキストが、
【数23】
構文要素のコーディングに使用される。値
【数24】
がTRUEと等しい場合には、第1のコンテキスト(インデックス1を有する)が、
【数25】
に対応する2進シンボルを符号化するのに使用される。反対の場合において、値
【数26】

がTRUEと等しい場合には、第2のコンテキスト(インデックス2を有する)が、
【数27】
に対応する2進シンボルを符号化するのに使用される。最後に、値
【数28】

【数29】
との両方がFALSEと等しい場合には、第3のコンテキスト(インデックス0を有する)が、
【数30】
に対応する2進シンボルを符号化するのに使用される。
【0152】
別の実施形態によれば、構文要素
【数31】
または
【数32】
のコーディングは、それぞれ以下のように判定されるコンテキストを使用する。まず、フラグ
【数33】
をコーディングするのに使用されるコンテキスト
【数34】
は、以下のように判定される。
-現在のブロックの左上角の左側に配置されたブロックの高さを入手する。これは、値topLeftHeightを与える。
-現在のブロックの左下角の左側に配置されたブロックの高さを入手する。これは、値bottomLeftHeightを与える。
-topLeftHeightがbottomLeftHeightと等しい場合には、
【数35】
に値0を与える。
-そうではなく、topLeftHeight<bottomLeftHeightである場合には、
【数36】
に値1を与える。
-そうではない場合(topLeftHeight>bottomLeftHeightの場合)には、
【数37】
に値2を与える。
したがって、3つのコンテキストが、フラグ
【数38】
をコーディング/復号するのに使用される。
【0153】
第2に、フラグ
【数39】
をコーディングするのに使用されるコンテキスト
【数40】
は、以下のように判定される。
-現在のブロックの左上角の上に配置されたブロックの幅を入手する。これは、値topLeftWidthを与える。
-現在のブロックの右上角の上に配置されたブロックの幅を入手する。これは、値topRightWidthを与える。
-topLeftWidthがtopRightWidthと等しい場合には、
【数41】
に値0を与える。
-そうではなく、topLeftWidth>topRightWidthである場合には、
【数42】
に値1を与える。
-そうではない場合(topLeftWidth<topRightWidthの場合)には、
【数43】
に値2を与える。
したがって、3つのコンテキストが、フラグ
【数44】
をコーディング/復号するのに使用される。
【0154】
さらなる実施形態によれば、いくつかの別々のコンテキストが、スライス・タイプ(INTRAまたはINTER)に従って
【数45】
および
【数46】
をコーディング/復号するのに使用される。INTERスライス内では、上記のコンテキスト判定方法が使用される。INTRAスライス内では、それぞれフラグ
【数47】
および
【数48】
に関して、これらのフラグをコーディング/復号する時に使用可能なコンテキスト的ブロック・サイズ情報にかかわりなく、単一のコンテキストが、これらの2つのフラグの統計的挙動を取り込むのに使用される。
【0155】
[0162] この実施形態の利点は、特にINTERスライスにおいて、コーディングされるフラグと隣接ブロック情報との間の統計的依存性をよりよくモデル化することであり、これは、これらのフラグのコーディングに関連するレート・コストを下げる。
【0156】
[0163] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、現在のブロックに関連する四分木+二分木の深さ値の関数としてインデクシングされる。これは、コンテキストの別々のセットが、CTUの四分木+二分木表現内の深さレベルごとに使用されることを意味する。verAsymmetricSplitFlagおよびhorAsymmetricSplitFlag構文要素に関して定義されたものと同一の原理があてはまる。この実施形態の利点は、コーディング/復号される構文要素の統計的挙動をモデル化するのに使用される、より正確なコンテキストである。
【0157】
[0164] さらなる実施形態によれば、先行する実施形態のうちの1つで提案されるコンテキストは、コーディング・ユニットの形状すなわち幅および高さの関数としてインデクシングされる。これは、コンテキストの別々のセットが、可能なコーディング・サイズのタプル(w,h)ごとに使用されることを意味する。verAsymmetricSplitFlagおよびhorAsymmetricSplitFlag構文要素に関して定義されたものと同一の原理があてはまる。この実施形態の利点は、コーディング/復号される構文要素の統計的挙動をモデル化するためのさらに改善されたコンテキストである。
【0158】
表1および表2の構文の変形形態
[0165] 表1および表2で定義された構文の変形形態が、表3に示されている。これは、以下を含む。
-現在のブロックに関して、これを親ブロックの非対称サブブロックを形成するために隣接ブロックと空間的に合併できるかどうかを識別すること。親ブロックは、現在のブロックの親ブロック(ケース1)または現在のブロックの親の親ブロック(ケース2)とすることができる。このステップは、符号器側および復号器側で同一の形で実行される。
【0159】
[0166] ケース1の例を、図18の最上部に示す。この図では、灰色で塗り潰された上サブブロックは、現在のブロックの親の非対称部分を形成するために、次のサブブロックと合併され得る。
【0160】
[0167] ケース2の例を、図18の底部に示す。現在のブロックは、灰色で塗り潰されたブロックである。この図では、現在のブロックは、図18でCU’と呼ばれるブロックの非対称部分を形成するために次のサブブロック(図18ではnextSubCUと命名される)と合併され得る。
-サイズ3・2nを有する非対称ブロックを形成するために、現在のブロックに関して、これが処理順で次のブロックと合併されるかどうかを示す、merge_with_next_CUと呼ばれる構文要素をコーディングする。
【0161】
[0168] 初期QTBTコーディング構文に対する最小限の変更を伴ってこの実施形態をサポートするために、QTBT構文は、二分木および二項分割モードのコーディングに関して変更されない。
【表3】
表3
【0162】
[0169] 「merge_with_next_CU_flag」と呼ばれる新しい構文要素が、ブロックが分割されない時にブロック・コーディングの前に導入される。このフラグは、関係するブロックが、ビットストリームのこの段階ではまだ符号化されていないが、スキャン順で次のブロックと合併されることを示す。これは、現在の二項分割方位に応じて
【数49】
または
【数50】
と等しいサイズを有する非対称ブロックを形成することを可能にする。
【0163】
[0170] この実施形態の利点は、非対称コーディング・ユニットをサポートするのに必要なQTBT構文変更の量を大幅に減らすことである。
【0164】
[0171] 図18に関して開示されるこの実施形態は、復号器側にもあてはまる。この場合には、構文要素merge_with_next_CU_flagが、非対称ブロックを回復するために復号される。
【0165】
[0172] 本明細書で説明される実施態様は、たとえば、方法もしくはプロセス、装置、ソフトウェア・プログラム、データ・ストリーム、または信号内で実施され得る。単一の形の実施態様の文脈でのみ議論される(たとえば、方法またはデバイスとしてのみ議論される)場合であっても、議論される特徴の実施態様は、他の形(たとえば、プログラム)でも実施され得る。装置は、たとえば、適当なハードウェア、ソフトウェア、およびファームウェアで実施され得る。方法は、たとえば、たとえばコンピュータ、マイクロプロセッサ、集積回路、またはプログラマブル論理デバイスを含む処理デバイス全般を指す、たとえばプロセッサなどの装置内で実施され得る。プロセッサは、たとえば、コンピュータ、セル電話機、ポータブル/携帯情報端末(「PDA」)、およびエンドユーザの間の情報の通信を容易にする他のデバイスなどの通信デバイスをも含む。
【0166】
[0173] 本明細書で説明される様々なプロセスおよび特徴の実施態様は、様々な異なる機器またはアプリケーション、特に、たとえば機器またはアプリケーション内で実施され得る。そのような機器の例は、符号器、復号器、復号器からの出力を処理するポストプロセッサ、符号器への入力を供給するプリプロセッサ、ビデオ・コーダ、ビデオ復号器、ビデオ・コーダ、ウェブ・サーバ、セット・トップ・ボックス、ラップトップ、パーソナル・コンピュータ、セル電話機、PDA、および他の通信デバイスを含む。明瞭であるとおり、機器は、モバイルとすることができ、移動車両内に設置されることすら可能である。
【0167】
[0174] さらに、方法は、プロセッサによって実行される命令によって実施され得、そのような命令(および/または実施態様によって作られるデータ値)は、たとえば、集積回路、ソフトウェア担体、またはたとえばハード・ディスク、コンパクト・ディスケット(「CD」)、光ディスク(たとえば、しばしばデジタル多用途ディスクまたはデジタル・ビデオ・ディスクと呼ばれるDVD)、ランダム・アクセス・メモリ(「RAM」)、または読取専用メモリ(「ROM」)などの他のストレージ・デバイスなどのプロセッサ可読媒体上に記憶され得る。命令は、プロセッサ可読媒体上で有形に実施されるアプリケーション・プログラムを形成することができる。命令は、たとえば、ハードウェア内、ファームウェア内、ソフトウェア内、またはその組合せ内にあるものとすることができる。命令は、たとえば、オペレーティング・システム内、別々のアプリケーション内、またはこの2つの組合せ内に見出され得る。したがって、プロセッサは、たとえば、プロセスを実行するように構成されたデバイスと、プロセスを実行するための命令を有するプロセッサ可読媒体(ストレージ・デバイスなど)を含むデバイスとの両方として特徴を表され得る。さらに、プロセッサ可読媒体は、命令に加えてまたはその代わりに、実施態様によって作られたデータ値を記憶することができる。
【0168】
[0175] 当業者に明白であるとおり、実施態様は、たとえば記憶されまたは伝送され得る情報を担持するようにフォーマットされた様々な信号を作ることができる。情報は、たとえば、方法を実行するための命令または説明された実施態様のうちの1つによって作られるデータを含むことができる。たとえば、信号は、説明される実施形態の構文を書き込みまたは読み取るためのルールをデータとして担持し、または説明される実施形態によって書き込まれる実際の構文値をデータとして担持するようにフォーマットされ得る。そのような信号は、たとえば、電磁波(たとえば、スペクトルのラジオ周波数部分を使用する)またはベースバンド信号としてフォーマットされ得る。フォーマッティングは、たとえば、データ・ストリームを符号化することと、符号化されたデータ・ストリームを用いて搬送波を変調することとを含むことができる。信号が担持する情報は、たとえば、アナログ情報またはデジタル情報とすることができる。信号は、既知のとおり、様々な異なる有線リンクまたは無線リンクを介して伝送され得る。信号は、プロセッサ可読媒体上に記憶され得る。
【0169】
[0176] 複数の実施態様を説明した。それでも、様々な変更を行うことができることを理解されたい。たとえば、他の実施態様を作るために、異なる実施態様の要素を組み合わせ、補足し、変更し、または除去することができる。さらに、当業者は、他の構造およびプロセスを開示された構造およびプロセスと置換することができ、結果の実施態様が、少なくとも実質的に開示される実施態様と同一の結果(1つまたは複数)を達成するために、少なくとも実質的に同一の形(1つまたは複数)で、少なくとも実質的に同一の機能(1つまたは複数)を実行することを理解するであろう。したがって、上記および他の実施態様が、本願によって企図されている。
[付記1]
イメージのブロックを復号する復号方法であって、
-分割モードのセット内で前記ブロックの分割モードを判定することであって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定することと、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割することと、
-前記少なくとも2つのサブブロックのそれぞれを復号することと
を含み、前記分割モードの判定は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)を復号することと、
-前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)を復号することと、
-前記第2の構文要素が、前記ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)を復号することと
を含む、復号方法。
[付記2]
イメージのブロックを復号するように構成された復号デバイスであって、
-分割モードのセット内で前記ブロックの分割モードを判定する手段であって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定する手段と、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割する手段と、
-前記少なくとも2つのサブブロックのそれぞれを復号する手段と
を含み、前記分割モードを判定する前記手段は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)を復号し、
-前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)を復号し、
-前記第2の構文要素が、前記ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)を復号する
ように構成される、復号デバイス。
[付記3]
前記第2の構文要素の復号は、
-前記第2の構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、現在のブロックのサイズに対する相対的な隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記第2の構文要素のコンテキストベースの算術復号を行うことと
を含む、付記1に記載の方法または付記2に記載のデバイス。
[付記4]
前記コンテキストは、前記ブロックのサイズの1/4未満のサイズを有する隣接ブロック内のサブブロックの個数の関数であり、前記サイズは、幅または高さである、付記3に記載の方法または付記3に記載のデバイス。
[付記5]
前記ブロックが水平に分割される場合に、前記第2の構文要素の復号に関する前記コンテキストの判定は、
-前記ブロックの高さの1/4未満の高さを有する前記ブロックの左に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、そうでない場合には第2のコンテキストを入手することと
を含む、付記4に記載の方法または付記4に記載のデバイス。
[付記6]
前記ブロックが垂直に分割される場合に、前記第2の構文要素の復号に関する前記コンテキストの判定は、
-前記ブロックの幅の1/4未満の幅を有する前記ブロックの上に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、そうでない場合には第2のコンテキストを入手することと
を含む、付記4から5のいずれか1つに記載の方法または付記4から5のいずれか1つに記載のデバイス。
[付記7]
前記コンテキストは、前記ブロックのサイズの1/2を超えるサイズを有する隣接ブロックの存在の関数であり、前記サイズは、幅または高さである、付記3に記載の方法または付記3に記載のデバイス。
[付記8]
前記分割モード構文要素の復号は、
-前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベース算術復号を行うことと
を含む、付記1もしくは3から7のいずれか1つに記載の方法または付記2から7のいずれか1つに記載のデバイス。
[付記9]
前記ブロックが水平に分割される場合に、前記分割モード構文要素の復号は、
-前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、付記1もしくは3から7のいずれか1つに記載の方法または付記2から7のいずれか1つに記載のデバイス。
[付記10]
前記ブロックが垂直に分割される場合に、前記分割モード構文要素の復号は、
-前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素を復号するためのコンテキストを判定することであって、前記コンテキストは、前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、付記1もしくは3から7のいずれか1つに記載の方法または付記2から7のいずれか1つに記載のデバイス。
[付記11]
前記分割モード構文要素の復号は、
-前記分割モード構文要素の復号に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの第2の隣接ブロックのサイズに対する相対的な前記ブロックの第1の隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術復号を行うことと
を含む、付記1もしくは3から7のいずれか1つに記載の方法または付記2から7のいずれか1つに記載のデバイス。
[付記12]
イメージのブロックを符号化するコーディング方法であって、
-分割モードのセット内で前記ブロックの分割モードを判定することであって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定することと、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割することと、
-前記少なくとも2つのサブブロックのそれぞれを符号化することと
を含み、前記分割モードの判定は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)を判定し、符号化することと、
-前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)を判定し、符号化することと、
-前記第2の構文要素が、前記ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)を判定し、符号化することと
を含む、コーディング方法。
[付記13]
イメージのブロックを符号化するように構成されたコーディング・デバイスであって、
-分割モードのセット内で前記ブロックの分割モードを判定する手段であって、分割モードの前記セットは、前記ブロックを少なくとも2つのサブブロックに非対称に分割する少なくとも1つの分割モードを含む、判定する手段と、
-前記分割モードに応答して、前記ブロックを少なくとも2つのサブブロックに分割する手段と、
-前記少なくとも2つのサブブロックのそれぞれを符号化する手段と
を含み、分割モードを判定する前記手段は、
-前記ブロックが垂直または水平のどちらに分割されるのかを指定する第1の構文要素(btSplitOrientation)を判定し、符号化し、
-前記ブロックが対称または非対称のどちらで分割されるのかを指定する第2の構文要素(horAsymmetricSplitFlag、verAsymmetricSplitFlag)を判定し、符号化し、
-前記第2の構文要素が、前記ブロックが非対称に分割されることを指定する場合に、分割モード構文要素(vertical_asymmetric_type/horizontal_asymmetric_type)を判定し、符号化する
ように構成される、コーディング・デバイス。
[付記14]
前記第2の構文要素の符号化は、
-前記第2の構文要素の符号化に関するコンテキストを判定することであって、前記コンテキストは、現在のブロックのサイズに対する相対的な隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記第2の構文要素のコンテキストベースの算術符号化を行うことと
を含む、付記12に記載の方法または付記13に記載のデバイス。
[付記15]
前記コンテキストは、前記ブロックのサイズの1/4未満のサイズを有する隣接ブロック内のサブブロックの個数の関数であり、前記サイズは、幅または高さである、付記14に記載の方法または付記14に記載のデバイス。
[付記16]
前記ブロックが水平に分割される場合に、前記第2の構文要素の符号化に関する前記コンテキストの判定は、
-前記ブロックの高さの1/4未満の高さを有する前記ブロックの左に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、それ以外の場合には第2のコンテキストを入手することと
を含む、付記15に記載の方法または付記15に記載のデバイス。
[付記17]
前記ブロックが垂直に分割される場合に、前記第2の構文要素の符号化に関する前記コンテキストの判定は、
-前記ブロックの幅の1/4未満の幅を有する前記ブロックの上に配置された隣接ブロック内のサブブロックの個数を判定することと、
-前記個数が0と等しい場合には第1のコンテキストを、それ以外の場合には第2のコンテキストを入手することと
を含む、付記15から16のいずれか1つに記載の方法または付記15から16のいずれか1つに記載のデバイス。
[付記18]
前記コンテキストは、前記ブロックのサイズの1/2を超えるサイズを有する隣接ブロックの存在の関数であり、前記サイズは、幅または高さである、付記14に記載の方法または付記14に記載のデバイス。
[付記19]
前記分割モード構文要素の符号化は、
-前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の符号化に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの隣接ブロック内のフロンティアが、前記ブロックを非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術符号化を行うことと
を含む、付記12もしくは14から18のいずれか1つに記載の方法または付記13から18のいずれか1つに記載のデバイス。
[付記20]
前記ブロックが水平に分割される場合に、前記分割モード構文要素の符号化は、
-前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の符号化に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの左に配置された隣接ブロック内のフロンティアが、前記ブロックを水平に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術符号化を行うことと
を含む、付記12もしくは14から18のいずれか1つに記載の方法または付記13から18のいずれか1つに記載のデバイス。
[付記21]
前記ブロックが垂直に分割される場合に、前記分割モード構文要素の符号化は、
-前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかを判定することと、
-前記分割モード構文要素の符号化に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの上に配置された隣接ブロック内のフロンティアが、前記ブロックを垂直に非対称に分割することから生じるフロンティアに整列されているかどうかの前記判定の関数である、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術符号化を行うことと
を含む、付記12もしくは14から18のいずれか1つに記載の方法または付記13から18のいずれか1つに記載のデバイス。
[付記22]
前記分割モード構文要素の符号化は、
-前記分割モード構文要素の符号化に関するコンテキストを判定することであって、前記コンテキストは、前記ブロックの第2の隣接ブロックのサイズに対する相対的な前記ブロックの第1の隣接ブロックのサイズの関数であり、前記サイズは、幅または高さである、判定することと、
-前記判定されたコンテキストに応答して、前記分割モード構文要素のコンテキストベースの算術符号化を行うことと
を含む、付記12もしくは14から18のいずれか1つに記載の方法または付記13から18のいずれか1つに記載のデバイス。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18