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

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

▶ ノキア テクノロジーズ オサケユイチアの特許一覧

特許7390477ビデオコーディングおよびデコーディングのための装置、方法、およびコンピュータプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-22
(45)【発行日】2023-12-01
(54)【発明の名称】ビデオコーディングおよびデコーディングのための装置、方法、およびコンピュータプログラム
(51)【国際特許分類】
   H04N 19/70 20140101AFI20231124BHJP
   H04N 19/12 20140101ALI20231124BHJP
   H04N 19/136 20140101ALI20231124BHJP
   H04N 19/154 20140101ALI20231124BHJP
   H04N 19/167 20140101ALI20231124BHJP
   H04N 19/176 20140101ALI20231124BHJP
【FI】
H04N19/70
H04N19/12
H04N19/136
H04N19/154
H04N19/167
H04N19/176
【請求項の数】 15
(21)【出願番号】P 2022518224
(86)(22)【出願日】2020-09-09
(65)【公表番号】
(43)【公表日】2022-11-25
(86)【国際出願番号】 EP2020075191
(87)【国際公開番号】W WO2021052832
(87)【国際公開日】2021-03-25
【審査請求日】2022-05-20
(31)【優先権主張番号】62/903,116
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515076873
【氏名又は名称】ノキア テクノロジーズ オサケユイチア
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ライネマ ジャニ
【審査官】田中 純一
(56)【参考文献】
【文献】特開2021-002814(JP,A)
【文献】特表2022-538160(JP,A)
【文献】国際公開第2020/260313(WO,A1)
【文献】特表2022-537767(JP,A)
【文献】米国特許出願公開第2021/0250584(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
変換係数のブロックを取得する手段と、
前記変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置を探索する手段と、
前記最後の非ゼロ係数の前記位置に基づいて二次変換モードを選択し、前記選択された二次変換モードを示す第1のシンタックス要素をエンコードする手段と、
前記選択された二次変換モードに基づいて一次変換モードを選択し、前記選択された一次変換モードを示す第2のシンタックス要素をエンコードする手段と、
前記ブロック内の前記変換係数を定義する第3のシンタックス要素をエンコードする手段と
を含む、装置。
【請求項2】
前記最後の非ゼロ係数の前記位置が前記ブロック内のスキャン順序の特定の範囲内にある場合、前記二次変換モードを示す前記第1のシンタックス要素をエンコードする手段、をさらに含む、請求項1に記載の装置。
【請求項3】
異なる変換モードをテストし、
前記テストされた異なる変換モードのコスト関数を評価し、
前記選択されたコスト関数を最小にする前記変換モードを選択すること
によって前記一次または二次変換モードを選択する手段、をさらに含む、請求項1または2に記載の装置。
【請求項4】
非ゼロ二次変換モードがビットストリームに含まれている場合、前記一次変換モードに関連する一部またはすべてのシンタックス要素の信号通知を省略する手段、をさらに含む、請求項1~3のいずれかに記載の装置。
【請求項5】
一次変換と二次変換の両方が、前記変換係数のブロック内の前記最後の非ゼロ係数の前記位置を信号通知する前にバイパスされる場合、変換スキップモードを信号通知する手段、をさらに含む、請求項1~4のいずれかに記載の装置。
【請求項6】
前記最後の非ゼロ係数の前記位置を信号通知する手段と、
前記最後の非ゼロ係数の前記位置を信号通知した後に前記選択された二次変換モードを示す前記第1のシンタックス要素を信号通知する手段と
をさらに含む、請求項1~5のいずれかに記載の装置。
【請求項7】
前記二次変換モードが前記変換係数のブロックに対してオフであると信号通知する手段と、
前記選択された二次変換モードを示す前記第1のシンタックス要素を信号通知した後に前記選択された一次変換モードを示す前記第2のシンタックス要素を信号通知する手段と
をさらに含む、請求項1~6のいずれかに記載の装置。
【請求項8】
前記選択された一次変換モードを示す前記第2のシンタックス要素を信号通知した後に前記変換係数のブロックの前記係数を定義するシンタックス要素を信号通知する手段
をさらに含む、請求項1~7のいずれかに記載の装置。
【請求項9】
変換係数のブロックを取得することと、
前記変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置を探索することと、
前記最後の非ゼロ係数の前記位置に基づいて二次変換モードを選択し、前記選択された二次変換モードを示す第1のシンタックス要素をエンコードすることと、
前記選択された二次変換モードに基づいて一次変換モードを選択し、前記選択された一次変換モードを示す第2のシンタックス要素をエンコードすることと、
前記ブロック内の前記変換係数を定義する第3のシンタックス要素をエンコードすることと
を含む方法。
【請求項10】
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取る手段と、
前記変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置の指示を前記ビットストリームからデコードする手段と、
二次変換モードの指示が前記ビットストリームに存在するかどうかを決定するために前記最後の係数の前記位置を使用する手段と、
二次変換モードの指示が前記ビットストリームに存在する場合、前記二次変換モードを示す第1のシンタックス要素をデコードすることによって前記二次変換モードを決定する手段と、
一次変換モードの指示が前記ビットストリームに存在するかどうかを決定するために前記決定された二次変換モードを使用する手段と、
一次変換モードの指示が前記ビットストリームに存在する場合、前記一次変換モードを示す第2のシンタックス要素をデコードすることによって前記一次変換モードを決定する手段と、
前記変換係数をデコードする手段と、
変換を選択するために、前記決定された変換モードを適用し、前記変換があれば、前記変換を前記変換係数に適用する手段と
を含む装置。
【請求項11】
前記決定された一次変換または前記決定された一次-二次変換ペアに適用可能でない係数区域のデコーディングを省略する手段、をさらに含む、請求項10に記載の装置。
【請求項12】
前記一次変換モードおよび前記二次変換モードのうちの少なくとも1つを示す指示を含んでいる前記変換係数のブロックに続く1つまたは複数の変換係数のブロックに前記一次変換モードおよび前記二次変換モードのうちの前記少なくとも1つを適用する手段、をさらに含む、請求項10または11に記載の装置。
【請求項13】
所定の条件が満たされる場合のみ前記ビットストリームから前記一次変換モードの指示をデコードする手段、をさらに含む請求項10、11、または12に記載の装置。
【請求項14】
前記所定の条件が、
前記変換係数のブロックの最小次元、
前記変換係数のブロックの最大次元
のうちの1つを含む、請求項13に記載の装置。
【請求項15】
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取ることと、
前記変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置の指示を前記ビットストリームからデコードすることと、
二次変換モードの指示が前記ビットストリームに存在するかどうかを決定するために前記最後の係数の前記位置を使用することと、
二次変換モードの指示が前記ビットストリームに存在する場合、前記二次変換モードを示す第1のシンタックス要素をデコードすることによって前記二次変換モードを決定することと、
一次変換モードの指示が前記ビットストリームに存在するかどうかを決定するために前記決定された二次変換モードを使用することと、
一次変換モードの指示が前記ビットストリームに存在する場合、前記一次変換モードを示す第2のシンタックス要素をデコードすることによって前記一次変換モードを決定することと、
前記変換係数をデコードすることと、
変換を選択するために、前記決定された変換モードを適用し、前記変換があれば、前記変換を前記変換係数に適用することと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオコーディングおよびデコーディングのための装置、方法、およびコンピュータプログラムに関する。
【背景技術】
【0002】
ビデオコーディングにおいて、静止ピクチャと、ビデオシーケンスのピクチャとは、一般に、これらを所望のファイルサイズ、ビットレート、または目標品質レベルに圧縮するために、サンプルのより小さいブロックに分割される。次いで、ブロックの各々は、空間的手段または時間的手段のいずれかによって予測され、予測ブロックと、オリジナル画像内の対応するブロックとの間の残った誤差が、残差コーディング手段(residual coding means)によりコード化される。エンコーディングおよびデコーディングでは、画像は、一般に、予測および残差コーディングのための共通セグメンテーションを定義するコーディングユニットに分割される。コーディングユニットは、さらに、全部のコーディングユニットまたはコーディングユニットの異なる部分のサンプル予測関連情報を含む1つまたは複数の予測ユニットに分割することができる。同様に、コーディングユニットは、コーディングユニットの特定の区域またはコンポーネントの残差(または変換)コーディング関連情報を含む1つまたは複数の変換ユニットまたは変換ブロックに分割することができる。
【0003】
残差コーディング手段は、一般に、残差ブロックの周波数ドメインへの変換、結果として生じる変換係数の量子化、および量子化係数のエントロピーコーディングを含む。一次変換として、例えば、DCT(離散コサイン変換)またはその派生物を使用することができる。
【0004】
その上に、コーディング効率をさらに改善するために、いわゆる二次変換を適用することができる。二次変換は、一般に、一次変換(例えば、DCT)の出力の一部を利用し、一次変換の低周波係数に追加の変換を実行する。この場合、変換係数の最終セットは、二重変換(double transform)された低周波係数と、単一変換で変換された高周波係数とからなる。実施態様によっては、高周波係数を省略することができ、二次変換が変換ブロックに対して有効にされている場合には二重変換された係数のみを信号通知することができる。二次変換として、例えば、LFNST(低周波非分離変換,Low-Frequency Non-Separable Transform)またはその派生物を使用することができる。
【0005】
一次変換の選択および信号通知は、一般に、変換ユニットまたは変換ブロックごとに行われ、一方、二次変換の選択および信号通知は、一般に、全部のコーディングユニットに行われる。コーディングユニットの二次変換の有用性は、さらに、一般に、低いアクティビティのコーディングユニットへの一般に不必要な二次変換信号通知を避けるために、あるレベルの周波数に達するコーディングユニット全体の中の変換係数に依存する。そのような手法は、コーディングユニット内の異なる変換ブロック間に制限および依存性を課し、エンコーダ側およびデコーダ側の待ち時間の増加ならびに次善のコーディング効率をもたらす可能性がある。
【発明の概要】
【0006】
次に、上述の問題を少なくとも緩和するために、エンコーダおよびデコーダにおける変換モードを表示および決定するための強化された方法が本明細書で導入される。
【0007】
二次変換の使用に基づいて一次変換の信号通知を実行することができる変換信号通知機構が提供される。信号通知は、最後の変換係数位置が変換ブロックで信号通知された後で、およびその変換ブロック内の係数の信号通知の前に行うことができる。この設定により、ビデオデコーダは、変換ブロック内の係数をデコードする前に一次変換のタイプと二次変換のタイプの両方を決定し、選択された一次変換または選択された一次-二次変換ペアに適用可能でない係数区域のデコーディングをスキップすることを可能にすることができる。
【0008】
第1の態様による装置は、少なくとも1つのプロセッサと少なくとも1つのメモリとを含み、前記少なくとも1つのメモリにコードが格納され、このコードが前記少なくとも1つのプロセッサによって実行されると、このコードにより、装置が、少なくとも、
変換係数のブロックを取得すること、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置を探索することと、
最後の非ゼロ係数の位置に基づいて二次変換モードを選択し、選択された二次変換モードを示す第1のシンタックス要素をエンコードすることと、
選択された二次変換モードに基づいて一次変換モードを選択し、選択された一次変換モードを示す第2のシンタックス要素をエンコードすることと、
ブロック内の変換係数を定義する第3のシンタックス要素をエンコードすることと
を実行する。
【0009】
第2の態様による方法は、
変換係数のブロックを取得することと、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置を探索することと、
最後の非ゼロ係数の位置に基づいて二次変換モードを選択し、選択された二次変換モードを示す第1のシンタックス要素をエンコードすることと、
選択された二次変換モードに基づいて一次変換モードを選択し、選択された一次変換モードを示す第2のシンタックス要素をエンコードすることと、
ブロック内の変換係数を定義する第3のシンタックス要素をエンコードすることと
を含む。
【0010】
第3の態様による装置は、少なくとも1つのプロセッサと少なくとも1つのメモリとを含み、前記少なくとも1つのメモリにコードが格納され、このコードが、前記少なくとも1つのプロセッサによって実行されると、このコードにより、装置が、少なくとも、
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取ることと、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置の表示(指示,indication)をビットストリームからデコードすることと、
二次変換モードの表示がビットストリームに存在するかどうかを決定するために最後の係数の位置を使用することと、
二次変換モードの表示がビットストリームに存在する場合、二次変換モードを示す第1のシンタックス要素をデコードすることによって二次変換モードを決定することと、
一次変換モードの表示がビットストリームに存在するかどうかを決定するために、決定された二次変換モードを使用することと、
一次変換モードの表示がビットストリームに存在する場合、一次変換モードを示す第2のシンタックス要素をデコードすることによって一次変換モードを決定することと、
変換係数をデコードすることと、
変換を選択するために、決定された変換モードを適用し、変換があれば、変換を変換係数に適用することと
を実行する。
【0011】
第4の態様による方法は、
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取ることと、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置の表示をビットストリームからデコードすることと、
探索の結果を使用して、ビットストリーム内のエンコードされたブロックの係数が二次変換によって変換されているかどうかを決定し、そうならば、二次変換モードを決定することと、
一次変換モードの表示をビットストリームから探索することと、
二次変換モードの表示がビットストリームに存在するかどうかを決定するために最後の係数の位置を使用することと、
二次変換モードの表示がビットストリームに存在する場合、二次変換モードを示す第1のシンタックス要素をデコードすることによって二次変換モードを決定することと、
一次変換モードの表示がビットストリームに存在するかどうかを決定するために決定された二次変換モードを使用することと、
一次変換モードの表示がビットストリームに存在する場合、一次変換モードを示す第2のシンタックス要素をデコードすることによって一次変換モードを決定することと、
変換係数をデコードすることと、
変換を選択するために、決定された変換モードを適用し、変換があれば、変換を変換係数に適用することと
を含む。
【0012】
第5の態様による装置は、
変換係数のブロックを取得するための手段と、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置を探索するための手段と、
最後の非ゼロ係数の位置に基づいて二次変換モードを選択し、選択された二次変換モードを示す第1のシンタックス要素をエンコードするための手段と、
選択された二次変換モードに基づいて一次変換モードを選択し、選択された一次変換モードを示す第2のシンタックス要素をエンコードするための手段と、
ブロック内の変換係数を定義する第3のシンタックス要素をエンコードするための手段と
を含む。
【0013】
第6の態様による装置は、
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取るための手段と、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置の表示をビットストリームからデコードするための手段と、
二次変換モードの表示がビットストリームに存在するかどうかを決定するために最後の係数の位置を使用するための手段と、
二次変換モードの表示がビットストリームに存在する場合、二次変換モードを示す第1のシンタックス要素をデコードすることによって二次変換モードを決定するための手段と、
一次変換モードの表示がビットストリームに存在するかどうかを決定するために決定された二次変換モードを使用するための手段と、
一次変換モードの表示がビットストリームに存在する場合、一次変換モードを示す第2のシンタックス要素をデコードすることによって一次変換モードを決定するための手段と、
変換係数をデコードするための手段と、
変換を選択するために、決定された変換モードを適用し、変換があれば、変換を変換係数に適用する手段と
を含む。
【0014】
第7の態様によるコンピュータ可読ストレージ媒体は、
装置により使用されるコードであり、そのコードがプロセッサによって実行されると、そのコードにより、装置が、
変換係数のブロックを取得すること、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置を探索することと、
最後の非ゼロ係数の位置に基づいて二次変換モードを選択し、選択された二次変換モードを示す第1のシンタックス要素をエンコードすることと、
選択された二次変換モードに基づいて一次変換モードを選択し、選択された一次変換モードを示す第2のシンタックス要素をエンコードすることと、
ブロック内の変換係数を定義する第3のシンタックス要素をエンコードすることと
を実行する、コード
を含む。
【0015】
第8の態様によるコンピュータ可読ストレージ媒体は、
装置により使用されるコードであり、そのコードがプロセッサによって実行されると、そのコードにより、装置が、
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取ることと、
変換係数のブロック内のスキャン順序での最後の非ゼロ係数の位置の表示をビットストリームからデコードすることと、
二次変換モードの表示がビットストリームに存在するかどうかを決定するために最後の係数の位置を使用することと、
二次変換モードの表示がビットストリームに存在する場合、二次変換モードを示す第1のシンタックス要素をデコードすることによって二次変換モードを決定することと、
一次変換モードの表示がビットストリームに存在するかどうかを決定するために、決定された二次変換モードを使用することと、
一次変換モードの表示がビットストリームに存在する場合、一次変換モードを示す第2のシンタックス要素をデコードすることによって一次変換モードを決定することと、
変換係数をデコードすることと、
変換を選択するために、決定された変換モードを適用し、変換があれば、変換を変換係数に適用することと
を実行する、コード
を含む。
【0016】
第9の態様による方法は、
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取ることと、
変換係数のブロックがコーディングユニット内の変換係数の第1のブロックであるかどうかを決定することと、
変換係数のブロックがコーディングユニット内の変換係数の第1のブロックであることに応じて、二次変換モードをビットストリームからデコードすることと、
コーディングユニット内の変換係数のすべてのブロックの変換を選択するために、決定された二次変換モードを適用することと
を含む。
【0017】
第10の態様による方法は、
変換係数のブロックに関連するエンコード化情報を含むビットストリームを受け取ることと、
変換係数のブロックがコーディングユニット内の1つまたは複数の非ゼロ変換係数をもつ第1のブロックであるかどうかを決定することと、
変換係数のブロックがコーディングユニット内の1つまたは複数の非ゼロ変換係数をもつ第1のブロックであることに応じて、ビットストリームから二次変換モードをデコードすることと、
コーディングユニット内の1つまたは複数の非ゼロ変換係数をもつすべてのブロックの変換を選択するために、決定された二次変換モードを適用することと
を含む。
【0018】
したがって、上述のように、コードが格納された装置およびコンピュータ可読ストレージ媒体は、上述の方法、およびそれに関連する実施形態のうちの1つまたは複数を実行するように構成される。
【0019】
本発明のよりよい理解のために、次に、添付の図面が例として参照される。
【図面の簡単な説明】
【0020】
図1】本発明の実施形態を利用する電子デバイスを概略的に示す図である。
図2】本発明の実施形態を利用するのに適するユーザ機器を概略的に示す図である。
図3】無線および有線ネットワークの接続を使用して接続された本発明の実施形態を利用する電子デバイスを概略的にさらに示す図である。
図4】本発明の実施形態を実施するのに適するエンコーダを概略的に示す図である。
図5】一実施形態による、一次および二次変換を使用してビデオおよび画像をエンコードおよびデコードするために使用することができるエンコーダおよびデコーダの構造の一例を示す図である。
図6】エンコーディング方向とデコーディング方向の両方でのデュアル変換プロセスを示す図である。
図7】不完全な二次変換または部分的な二次変換によるデュアル変換プロセスを示す図である。
図8】本発明の一実施形態によるエンコーディング方法の流れ図である。
図9】本発明の一実施形態によるデコーディング方法の流れ図である。
図10】サイズ8×8の変換ブロックおよび例示的なスキャニング順序の一例を示す図である。
図11】本発明の実施形態を実施するのに適するデコーダの概略図である。
図12】様々な実施形態を実施することができる例示のマルチメディア通信システムの概略図である。
【発明を実施するための形態】
【0021】
以下は、デュアル変換および逆デュアル変換のための適切な装置および可能な機構をさらに詳細に説明する。これに関して、図1および図2が最初に参照され、図1は、例示の実施形態によるビデオコーディングシステムのブロック図を、本発明の一実施形態に従ってコーデックを組み込むことができる例示的な装置または電子デバイス50の概略ブロック図として示す。図2は、例示の実施形態による装置のレイアウトを示す。図1および図2の要素が、次に説明される。
【0022】
電子デバイス50は、例えば、無線通信システムの携帯端末またはユーザ機器であり得る。しかしながら、本発明の実施形態は、ビデオ画像のエンコーディングおよびデコーディング、あるいはエンコーディングまたはデコーディングを必要とし得る電子デバイスまたは装置内に実装することができることを理解されよう。
【0023】
装置50は、デバイスの組込みおよび保護のためにハウジング30を含むことができる。装置50は、さらに、液晶ディスプレイの形態のディスプレイ32を含むことができる。本発明の他の実施形態では、ディスプレイは、画像またはビデオを表示するのに適する任意の好適なディスプレイ技術とすることができる。装置50は、キーパッド34をさらに含むことができる。本発明の他の実施形態では、任意の好適なデータまたはユーザインタフェース機構を利用することができる。例えば、ユーザインタフェースは、タッチセンシティブディスプレイの一部としてバーチャルキーボードまたはデータエントリシステムとして実装することができる。
【0024】
装置は、マイクロホン36、またはデジタルもしくはアナログ信号入力部とすることができる任意の適切なオーディオ入力部を含むことができる。装置50は、本発明の実施形態では、イヤホン38、スピーカ、またはアナログオーディオもしくはデジタルオーディオ出力接続部のうちの任意の1つとすることができるオーディオ出力デバイスをさらに含むことができる。装置50は、バッテリをさらに含むことができる(または本発明の他の実施形態では、デバイスは、太陽電池、燃料電池、またはクロックワーク発電機などの任意の適切な携帯エネルギーデバイスによって電力供給されてもよい)。装置は、画像および/またはビデオを記録または捕捉することができるカメラをさらに含むことができる。装置50は、他のデバイスとの短距離見通し線通信のための赤外線ポートをさらに含むことができる。他の実施形態では、装置50は、任意の適切な短距離通信ソリューション、例えば、ブルートゥース無線接続、USB/ファイヤワイヤ有線接続などをさらに含むことができる。
【0025】
装置50は、装置50を制御するためのコントローラ56、プロセッサ、またはプロセッサ回路を含むことができる。コントローラ56は、本発明の実施形態では、画像およびオーディオデータの形態の両方のデータを格納することができる、および/またはさらにコントローラ56での実施のための命令を格納することができるメモリ58に接続することができる。コントローラ56は、さらに、オーディオおよび/またはビデオデータのコーディングおよびデコーディングを実行する、またはコントローラによって実行されるコーディングおよびデコーディングを支援するのに適するコーデック回路54に接続することができる。
【0026】
装置50は、カードリーダ48およびスマートカード46、例えば、ユーザ情報を提供し、ネットワークでのユーザの認証および認定のための認証情報を提供するのに適するUICCおよびUICCリーダをさらに含むことができる。
【0027】
装置50は、コントローラに接続され、例えば、セルラ通信ネットワーク、無線通信システム、または無線ローカルエリアネットワークとの通信のための無線通信信号を生成するのに適する無線インタフェース回路52を含むことができる。装置50は、無線インタフェース回路52で生成された無線周波数信号を他の装置に送信し、他の装置からの無線周波数信号を受信するために無線インタフェース回路52に接続されたアンテナ44をさらに含むことができる。
【0028】
装置50は、個々のフレームを記録または検出することができるカメラを含むことができ、個々のフレームは、次いで、処理のためにコーデック54またはコントローラに渡される。装置は、送信および/または格納の前に、別のデバイスからの処理のためのビデオ画像データを受信することができる。装置50は、さらに、無線でまたは有線接続によって、コーディング/デコーディングのための画像を受信することができる。上述の装置50の構造要素は、対応する機能を実行するための手段の例を示す。
【0029】
図3に関して、本発明の実施形態を利用することができるシステムの一例が示される。システム10は、1つまたは複数のネットワークを通して通信することができる多数の通信デバイスを含む。システム10は、限定はしないが無線セルラ電話ネットワーク(GSM、UMTS、CDMAネットワークなどのような)、IEEE 802.x規格のうちのいずれかによって定義されているものなどの無線ローカルエリアネットワーク(WLAN)、ブルートゥースパーソナルエリアネットワーク、イーサネットローカルエリアネットワーク、トークンリングローカルエリアネットワーク、ワイドエリアネットワーク、およびインターネットを含む有線ネットワークまたは無線ネットワークの任意の組合せを含むことができる。
【0030】
システム10は、本発明の実施形態を実施するのに適する有線および無線の通信デバイスおよび/または装置50の両方を含むことができる。
【0031】
例えば、図3に示されるシステムは、携帯電話ネットワーク11と、インターネット28の表現とを示す。インターネット28への接続は、限定はしないが、長距離無線接続と、短距離無線接続と、限定はしないが、電話線、ケーブル線、電力線、および同様の通信経路を含む様々な有線接続とを含むことができる。
【0032】
システム10に示された例示の通信デバイスは、限定はしないが、電子デバイスまたは装置50、携帯情報端末(PDA)と携帯電話14の組合せ、PDA16、統合メッセージングデバイス(IMD)18、デスクトップコンピュータ20、ノートブックコンピュータ22を含むことができる。装置50は、固定式であってもよく、または移動している人によって携帯される携帯式であってもよい。装置50はまた、限定はしないが、自動車、トラック、タクシー、バス、列車、船、飛行機、自転車、オートバイまたは同様の適切な輸送手段を含む輸送手段に配置することができる。
【0033】
実施形態はまた、セットトップボックス、すなわち、ディスプレイまたは無線機能があることもあり/ないこともあるデジタルTVレシーバに、エンコーダ/デコーダ実装のハードウェア、ソフトウェア、または組合せを有するタブレットまたは(ラップトップ)パーソナルコンピュータ(PC)に、様々なオペレーティングシステムに、およびハードウェア/ソフトウェアベースコーディングを提供するチップセット、プロセッサ、DSP、および/または組込みシステムに実装することができる。
【0034】
いくつかのまたはさらなる装置は、通話およびメッセージを送受信し、基地局24への無線接続25を介してサービスプロバイダと通信することができる。基地局24は、携帯電話ネットワーク11とインターネット28との間の通信を可能にするネットワークサーバ26に接続され得る。システムは、追加の通信デバイスと、様々なタイプの通信デバイスとを含むことができる。
【0035】
通信デバイスは、限定はしないが、符号分割多元接続(CDMA)、移動通信用グローバルシステム(GSM)、ユニバーサル移動通信システム(UMTS)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、送信制御プロトコル-インターネットプロトコル(TCP-IP)、ショートメッセージサービス(SMS)、マルチメディアメッセージサービス(MMS)、電子メール、インスタントメッセージサービス(IMS)、ブルートゥース(登録商標)、IEEE802.11および同様の無線通信技術を含む様々な送信技術を使用して通信することができる。本発明の様々な実施形態の実施に関わる通信デバイスは、限定はしないが、無線、赤外線、レーザ、ケーブル接続、および任意の適切な接続を含む様々な媒体を使用して通信することができる。
【0036】
電気通信およびデータネットワークにおいて、チャネルは、物理チャネルまたは論理チャネルのいずれかを参照することができる。物理チャネルは、ワイヤなどの物理的伝送媒体を参照することができ、一方、論理チャネルは、いくつかの論理チャネルを搬送することができる多重媒体を介した論理的接続を参照することができる。チャネルは、1つまたはいくつかのセンダ(または送信器)から1つまたはいくつかの受信器に情報信号、例えば、ビットストリームを搬送するために使用することができる。
【0037】
ISO/IEC 13818-1または同等のITU-T勧告H.222.0で指定されたMPEG-2トランスポートストリーム(TS)は、オーディオ、ビデオ、および他のメディア、ならびにプログラムメタデータまたは他のメタデータを多重化ストリームで搬送するためのフォーマットである。パケット識別子(PID)が、TS内のエレメンタリストリーム(別名、パケット化エレメンタリストリーム)を識別するために使用される。したがって、MPEG-2 TS内の論理チャネルは、特定のPID値に対応すると考えることができる。
【0038】
利用可能なメディアファイルフォーマット標準は、ISOベースメディアファイルフォーマット(ISO/IEC 14496-12、ISOBMFFと省略されることがある)、およびISOBMFFから派生したNALユニット構造化ビデオのファイルフォーマット(ISO/IEC14496-15)を含む。
【0039】
ビデオコーデックは、入力ビデオをストレージ/伝送に適した圧縮表現に変換するエンコーダと、圧縮されたビデオ表現を解凍して表示可能形式に戻すデコーダとからなる。ビデオエンコーダおよび/またはビデオデコーダはまた、互いに別個であってもよく、すなわち、コーデックを形成する必要はない。一般に、エンコーダは、ビデオをよりコンパクトな形式で(すなわち、より低いビットレートで)表すために、オリジナルビデオシーケンスの一部の情報を廃棄する。
【0040】
典型的なハイブリッドビデオエンコーダ、例えば、ITU-T H.263およびH.264の多くのエンコーダ実施態様は、ビデオ情報を2つのフェーズでエンコードする。第1に、特定のピクチャ区域(または「ブロック」)のピクセル値が、例えば、動き補償手段(以前にコード化されたビデオフレームのうちの1つにおいて、コード化されているブロックに密接に対応する区域を見いだし示すこと)によって、または空間的手段(指定された方法でコード化されているブロックのまわりのピクセル値を使用すること)によって予測される。第2に、予測誤差、すなわち、ピクセルの予測されたブロックとピクセルのオリジナルのブロックとの間の差がコード化される。これは、一般に、指定された変換(例えば、離散コサイン変換(DCT)またはその変形)を使用してピクセル値の差を変換し、係数を量子化し、量子化係数をエントロピーコード化することによって行われる。量子化プロセスの忠実度を変更することによって、エンコーダは、ピクセル表現の精度(ピクチャ品質)と、結果として生じるコード化ビデオ表現のサイズ(ファイルサイズまたは送信ビットレート)との間のバランスを制御することができる。
【0041】
時間予測では、予測のソースは、以前にデコードされたピクチャ(別名、参照ピクチャ)である。イントラブロックコピー(IBC;別名、イントラブロックコピー予測)では、予測は、時間予測と同様に適用されるが、参照ピクチャは、現在のピクチャであり、以前にデコードされたサンプルのみが予測プロセスおいて参照され得る。インターレイヤまたはインタービュー予測が、時間予測と同様に適用され得るが、参照ピクチャは、それぞれ、別のスケーラブルレイヤまたは別のビューからのデコードされたピクチャである。ある場合には、インター予測は、時間予測のみを参照することができるが、他の場合には、インター予測は、時間予測と、時間予測と同じまたは同様のプロセスで実行されるという条件でイントラブロックコピー、インターレイヤ予測、およびインタービュー予測のうちのいずれかとをまとめて参照することができる。インター予測または時間予測は、時には、動き補償または動き補償予測と呼ばれることがある。
【0042】
動き補償は、フルサンプル精度またはサブサンプル精度のいずれかで実行することができる。フルサンプルの正確な動き補償の場合、動きは、水平および垂直変位に対して整数値の動きベクトルとして表すことができ、動き補償プロセスは、それらの変位を使用して、参照ピクチャからサンプルを効果的にコピーする。サブサンプルの正確な動き補償の場合、動きベクトルは、動きベクトルの水平および垂直成分に対して小数値または10進数値(fractional or decimal values)で表される。動きベクトルが参照ピクチャ内で非整数位置を指している場合、一般に、サブサンプル補間プロセスを呼び出して、参照サンプルと選択されたサブサンプル位置とに基づいて予測サンプル値を計算する。サブサンプル補間プロセスは、一般に、フルサンプル位置に対する水平オフセットを補償する水平フィルタリングと、それに続く、フルサンプル位置に対する垂直オフセットを補償する垂直フィルタリングとからなる。しかしながら、垂直処理は、環境によっては、水平処理の前に行うこともできる。
【0043】
時間予測、動き補償、または動き補償予測と呼ばれることもあるインター予測は、時間的冗長性を低減する。インター予測では、予測のソースは、以前にデコードされたピクチャである。イントラ予測は、同じピクチャ内の隣接するピクセルが相関している可能性が高いことを利用する。イントラ予測は空間ドメインまたは変換ドメインで実行することができる、すなわち、サンプル値または変換係数のいずれかが予測され得る。イントラ予測は、一般に、インター予測が適用されないイントラコーディングで利用される。
【0044】
コーディング手順の1つの結果は、動きベクトルおよび量子化された変換係数などのコーディングパラメータのセットである。多くのパラメータは、最初に空間的にまたは時間的に隣接するパラメータから予測される場合、より効率的にエントロピーコード化することができる。例えば、動きベクトルを空間的に隣接する動きベクトルから予測することができ、動きベクトル予測子に対する差のみをコード化することができる。コーディングパラメータの予測と、イントラ予測とは、まとめて、インピクチャ予測と呼ばれることがある。
【0045】
図4は、本発明の実施形態を利用するのに適するビデオエンコーダのブロック図を示す。図4は、2つのレイヤのエンコーダを示しているが、提示されたエンコーダは、3つ以上のレイヤをエンコードするように同様に拡張できることを理解されよう。図4は、ベースレイヤの第1のエンコーダセクション500とエンハンスメントレイヤの第2のエンコーダセクション502とを含むビデオエンコーダの一実施形態を示す。第1のエンコーダセクション500および第2のエンコーダセクション502の各々は、入来ピクチャをエンコードするための類似の要素を含むことができる。エンコーダセクション500、502は、ピクセル予測器302、402、予測誤差エンコーダ303、403、および予測誤差デコーダ304、404を含むことができる。図4は、さらに、インター予測器306、406、イントラ予測器308、408、モードセレクタ310、410、フィルタ316、416、および参照フレームメモリ318、418を含むとしてピクセル予測器302、402の一実施形態を示す。第1のエンコーダセクション500のピクセル予測器302は、インター予測器306(画像と、動き補償された参照フレーム318との間の差を決定する)と、イントラ予測器308(現在のフレームまたはピクチャの既に処理された部分にのみ基づいて画像ブロックの予測を決定する)の両方でエンコードされるべきビデオストリームのベースレイヤ画像300を受け取る。インター予測器とイントラ予測器の両方の出力は、モードセレクタ310に渡される。イントラ予測器308は、2つ以上のイントラ予測モードを有することができる。したがって、各モードは、イントラ予測を実行し、予測された信号をモードセレクタ310に提供することができる。モードセレクタ310は、さらに、ベースレイヤピクチャ300のコピーを受け取る。対応して、第2のエンコーダセクション502のピクセル予測器402は、インター予測器406(画像と、動き補償された参照フレーム418との間の差を決定する)と、イントラ予測器408(現在のフレームまたはピクチャの既に処理された部分にのみ基づいて画像ブロックの予測を決定する)の両方でエンコードされるべきビデオストリームのエンハンスメントレイヤ画像400を受け取る。インター予測器とイントラ予測器の両方の出力は、モードセレクタ410に渡される。イントラ予測器408は、2つ以上のイントラ予測モードを有することができる。したがって、各モードは、イントラ予測を実行し、予測された信号をモードセレクタ410に提供することができる。モードセレクタ410は、さらに、エンハンスメントレイヤピクチャ400のコピーを受け取る。
【0046】
現在のブロックをエンコードするためにどのエンコーディングモードが選択されるかに応じて、インター予測器306、406の出力、またはオプションのイントラ予測器モードのうちの1つの出力、またはモードセレクタ内の表面エンコーダの出力が、モードセレクタ310、410の出力部に渡される。モードセレクタの出力は、第1の加算デバイス321、421に渡される。第1の加算デバイスは、ベースレイヤピクチャ300/エンハンスメントレイヤピクチャ400からピクセル予測器302、402の出力を減じて、第1の予測誤差信号320、420を生成することができ、第1の予測誤差信号320、420は、予測誤差エンコーダ303、403に入力される。
【0047】
ピクセル予測器302、402は、さらに、予備再構成器339、439から、画像ブロック312、412の予測表現と予測誤差デコーダ304、404の出力338、438の組合せを受け取る。予備再構成画像314、414は、イントラ予測器308、408およびフィルタ316、416に渡され得る。予備表現を受け取るフィルタ316、416は予備表現をフィルタリングし、最終再構成画像340、440を出力することができ、最終再構成画像340、440は、参照フレームメモリ318、418にセーブされ得る。参照フレームメモリ318は、参照画像として使用されるようにインター予測器306に接続することができ、参照画像に対して、将来のベースレイヤピクチャ300が、インター予測操作で比較される。ベースレイヤが、いくつかの実施形態によるエンハンスメントレイヤのインターレイヤサンプル予測および/またはインターレイヤ動き情報予測のためのソースとなるように選択および表示されることを条件として、参照フレームメモリ318はまた、参照画像として使用されるようにインター予測器406に接続することができ、参照画像に対して、将来のエンハンスメントレイヤピクチャ400が、インター予測操作で比較される。その上、参照フレームメモリ418は、参照画像として使用されるようにインター予測器406に接続することができ、参照画像に対して、将来のエンハンスメントレイヤピクチャ400が、インター予測操作で比較される。
【0048】
第1のエンコーダセクション500のフィルタ316からのフィルタリングパラメータは、ベースレイヤが、いくつかの実施形態によるエンハンスメントレイヤのフィルタリングパラメータを予測するためのソースとなるように選択および指示されることを条件として、第2のエンコーダセクション502に提供され得る。
【0049】
予測誤差エンコーダ303、403は、変換ユニット342、442と、量子化器344、444とを含む。変換ユニット342、442は、第1の予測誤差信号320、420を変換ドメインに変換する。この変換は、例えば、DCT変換である。量子化器344、444は、変換ドメイン信号、例えば、DCT係数を量子化して、量子化係数を形成する。
【0050】
予測誤差デコーダ304、404は、予測誤差エンコーダ303、403から出力を受け取り、予測誤差エンコーダ303、403とは反対のプロセスを実行して、デコードされた予測誤差信号338、438を生成し、その信号は、第2の加算デバイス339、439で画像ブロック312、412の予測表現と組み合わされたとき、予備再構成画像314、414を生成する。予測誤差デコーダは、変換信号を再構築するために量子化係数値、例えば、DCT係数を逆量子化する逆量子化器361、461と、再構築済み変換信号に逆変換を実行する逆変換ユニット363、463とを含むと考えることができ、ここで、逆変換ユニット363、463の出力は再構築済みブロックを含む。予測誤差デコーダは、さらなるデコード化情報およびフィルタパラメータに従って再構築済みブロックをフィルタリングすることができるブロッキングフィルタをさらに含むことができる。
【0051】
エントロピーエンコーダ330、430は、予測誤差エンコーダ303、403の出力を受け取り、適切なエントロピーエンコーディング/可変長エンコーディングを信号に実行して、誤差検出および訂正機能を提供することができる。エントロピーエンコーダ330、430の出力は、例えば、マルチプレクサ508によってビットストリームに挿入され得る。
【0052】
エントロピーコーディング/デコーディングは、多くの方法で実行することができる。例えば、コンテキストベースコーディング/デコーディングを適用することができ、エンコーダとデコーダの両方は、前にコード化/デコード化されたコーディングパラメータに基づいてコーディングパラメータのコンテキスト状態を変更する。コンテキストベースコーディングは、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)またはコンテキストベース可変長コーディング(CAVLC)または任意の類似のエントロピーコーディングとすることができる。エントロピーコーディング/デコーディングは、代替としてまたは追加として、ハフマンコーディング/デコーディングまたは指数ゴロムコーディング/デコーディングなどの可変長コーディングスキームを使用して実行され得る。エントロピーコード化ビットストリームまたはコードワードからのコーディングパラメータのデコーディングは、構文解析と呼ばれることがある。
【0053】
H.264/AVC規格は、国際電気通信連合(ITU-T)の電気通信標準化部門のビデオコーディングエキスパートグループ(VCEG)と国際標準化機構(ISO)/国際電気標準会議(IEC)のムービングピクチャエクスパーツグループ(MPEG)の合同ビデオチーム(JVT)によって開発された。H.264/AVC規格は、両方の標準化母体によって公開されており、ITU-T勧告H.264およびISO/IECの国際規格14496-10と呼ばれ、MPEG-4パート10アドバンスドビデオコーディング(AVC)としても知られている。本仕様の新しい拡張または特徴を統合したH.264/AVC規格の多数のバージョンが存在している。これらの拡張は、スケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)を含む。
【0054】
高効率ビデオコーディング(H.265/HEVC、別名、HEVC)規格のバージョン1は、VCEGおよびMPEGの合同協力チーム-ビデオコーディング(JCT-VC)によって開発された。この規格は、両方の標準化母体によって公開されており、ITU-T勧告H.265およびISO/IEC国際規格23008-2と呼ばれ、MPEG-Hパート2高効率ビデオコーディング(HEVC)としても知られている。H.265/HEVCのそれ以降のバージョンには、それぞれ、SHVC、MV-HEVC、REXT、3D-HEVC、およびSCCと略記されることがあるスケーラブル、マルチビュー、忠実度範囲、3次元、およびスクリーンコンテンツコーディングの拡張が含まれている。
【0055】
SHVC、MV-HEVC、および3D-HEVCは、HEVC規格のバージョン2の付録Fに指定されている共通基本仕様を使用する。この共通基本は、例えば、インターレイヤ依存性などのビットストリームのレイヤの特性のうちのいくつかを指定するハイレベルシンタックスおよびセマンティクス、ならびにマルチレイヤビットストリームのインターレイヤ参照ピクチャおよびピクチャ順序カウント導出を含む参照ピクチャリスト構築などのデコーディングプロセスを含む。付録Fは、さらに、HEVCの潜在的な後のマルチレイヤ拡張で使用することができる。SHVCおよび/またはMV-HEVCなどの特定の拡張を参照して、ビデオエンコーダ、ビデオデコーダ、エンコーディング方法、デコーディング方法、ビットストリーム構造、および/または実施形態を以下で説明することができるとしても、それらは、一般に、HEVCのマルチレイヤ拡張に適用可能であり、さらにより一般には、任意のマルチレイヤビデオコーディングスキームに適用可能であることを理解されたい。
【0056】
バーサタイルビデオコーディング(VVC)(MPEG-Iパート3)、別名ITU-T H.266は、ムービングピクチャエクスパーツグループ(MPEG)のジョイントビデオエキスパートチーム(JVET)(正式にはISO/IEC JTC1 SC29 WG11)と、国際電気通信連合(ITU)のビデオコーディングエキスパートグループ(VCEG)とによって開発されたビデオ圧縮標準であり、HEVC/H.265の後継である。
【0057】
H.264/AVCのいくつかの重要な定義、ビットストリームおよびコーディング構造、概念、ならびにHEVCが、この節において、実施形態を実施できるビデオエンコーダ、デコーダ、エンコーディング方法、デコーディング方法、およびビットストリーム構造の一例として説明される。H.264/AVCの重要な定義、ビットストリームおよびコーディング構造、ならびに概念の一部は、HEVCのものと同じであり、したがって、それらは、以下でまとめて説明される。本発明の態様は、H.264/AVCまたはHEVCに限定されず、むしろ、本発明を部分的にまたは完全に実現することができる1つの可能な基礎の説明が与えられる。
【0058】
多くの初期のビデオコーディング標準と同様に、ビットストリームシンタックスおよびセマンティクスならびにエラーのないビットストリームのデコーディングプロセスは、H.264/AVCおよびHEVCで指定されている。エンコーディングプロセスは、指定されていないが、エンコーダは、準拠するビットストリームを生成しなければならない。ビットストリームおよびデコーダの適合性は、仮想参照デコーダ(HRD)を用いて検証することができる。標準は、伝送エラーおよび損失に対処するのに役立つコーディングツールを含むが、エンコーディングでのツールの使用はオプションであり、デコーディングプロセスは、誤ったビットストリームについては指定されていない。
【0059】
H.264/AVCまたはHEVCエンコーダへの入力およびH.264/AVCまたはHEVCデコーダの出力の基本ユニットは、それぞれ、ピクチャである。エンコーダへの入力として与えられるピクチャは、ソースピクチャと呼ばれることもあり、デコーダによってデコードされたピクチャは、デコードされたピクチャと呼ばれることがある。
【0060】
ソースピクチャおよびデコードされたピクチャは、各々、1つまたは複数のサンプルアレイ、例えば、サンプルアレイの以下のセットのうちの1つなどで構成される。
- ルマ(Y)のみ(単色)。
- ルマおよび2つの彩度(YCbCrまたはYCgCo)。
- 緑、青、および赤(GBR、RGBとしても知られる)。
- 他の指定されていない単色または三刺激色サンプリング(例えば、YZX、XYZとしても知られる)を表すアレイ。
【0061】
H.264/AVCおよびHEVCでは、ピクチャは、フレームまたはフィールドのいずれかとすることができる。フレームは、ルマサンプルと、場合によっては対応する彩度サンプルとのマトリクスを含む。フィールドは、ソース信号がインターレースされる場合、フレームの交互のサンプル行のセットであり、エンコーダ入力として使用することができる。彩度サンプルアレイはなくてもよく、(したがって、単色のサンプリングが使用されてもよく)、または彩度サンプルアレイは、ルマサンプルアレイと比較される場合、サブサンプリングされてもよい。彩度フォーマットは、以下のように要約することができる。
- 単色サンプリングでは、1つのサンプルアレイのみが存在し、それは名目上ルマアレイと考えることができる。
- 4:2:0サンプリングでは、2つの彩度アレイの各々が、ルマアレイの半分の高さおよび半分の幅を有する。
- 4:2:2サンプリングでは、2つの彩度アレイの各々が、ルマアレイと同じの高さおよびルマアレイの半分の幅を有する。
- 4:4:4サンプリングでは、別個の色平面が使用されない場合、2つの彩度アレイの各々が、ルマアレイと同じ高さおよび幅を有する。
【0062】
H.264/AVCおよびHEVCでは、サンプルアレイを別個の色平面としてビットストリームにコード化し、別個にコード化された色平面をビットストリームからそれぞれデコードすることが可能である。別個の色平面が使用される場合、それらの各々は、単色サンプリングによるピクチャとして別々に処理される(エンコーダおよび/またはデコーダによって)。
【0063】
パーティショニングは、セットの各要素がサブセットのうちの正確に1つに存在するように、セットをサブセットに分割することとして定義することができる。
【0064】
HEVCエンコーディングおよび/またはデコーディングの動作を説明するとき、以下の用語を使用することができる。コーディングブロックは、コーディングツリーブロックのコーディングブロックへの分割がパーティショニングとなるように、ある値のNについてサンプルのN×Nブロックとして定義することができる。コーディングツリーブロック(CTB)は、成分のコーディングツリーブロックへの分割がパーティショニングとなるように、ある値のNに対するサンプルのN×Nブロックとして定義することができる。コーディングツリーユニット(CTU)は、ルマサンプルのコーディングツリーブロック、3つのサンプルアレイを有するピクチャの彩度サンプルの2つの対応するコーディングツリーブロック、または単色ピクチャ、もしくはサンプルをコード化するために使用される3つの別個の色平面およびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングツリーブロックとして定義することができる。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有するピクチャの彩度サンプルの2つの対応するコーディングブロック、または単色ピクチャ、もしくはサンプルをコード化するために使用される3つの別個の色平面およびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングブロックとして定義することができる。最大許容サイズのCUは、LCU(最大コーディングユニット)またはコーディングツリーユニット(CTU)と名前をつけることができ、ビデオピクチャはオーバーラップしないLCUに分割される。
【0065】
CUは、CU内のサンプルの予測プロセスを定義する1つまたは複数の予測ユニット(PU)と、前記CU内のサンプルの予測誤差コーディングプロセスを定義する1つまたは複数の変換ユニット(TU)とからなる。一般に、CUは、可能なCUサイズの事前定義されたセットから選択可能なサイズをもつサンプルの正方形ブロックからなる。各PUおよびTUは、それぞれ、予測プロセスおよび予測誤差コーディングプロセスの粒度を高めるために、より小さいPUおよびTUにさらにスプリットされ得る。各PUは、そのPU内のピクセルにどの種類の予測が適用されるべきかを定義する、各PUに関連する予測情報(例えば、インター予測PUでは動きベクトル情報、およびイントラ予測PUではイントラ予測方向情報)を有する。
【0066】
各TUは、前記TU内のサンプルに対する予測誤差デコーディングプロセスを記述する情報(例えば、DCT係数情報を含む)に関連づけることができる。CUごとに予測誤差コーディングが適用されるか否かが、一般に、CUレベルで信号通知される。CUに関連する予測誤差残差がない場合には、前記CUにはTUがないと考えることができる。画像のCUへの分割と、CUのPUおよびTUへの分割とは、一般に、ビットストリームで信号通知され、それにより、デコーダは、これらのユニットの意図された構造を再現することができる。
【0067】
HEVCにおいて、ピクチャは、タイルにパーティションすることができ、タイルは長方形であり、整数のLCUを含む。HEVCにおいて、タイルへのパーティショニングは、規則的なグリッドを形成し、タイルの高さおよび幅は、最大で1LCUだけ互いに異なる。HEVCにおいて、スライスは1つの独立スライスセグメントと、同じアクセスユニット内の次の独立スライスセグメント(もしあれば)に先行するすべての後続の従属スライスセグメント(もしあれば)とに含まれる整数のコーディングツリーユニットであると定義される。HEVCにおいて、スライスセグメントは、タイルスキャンで連続的に順序づけられ、単一のNALユニットに含まれる整数のコーディングツリーユニットであると定義される。各ピクチャのスライスセグメントへの分割は、パーティショニングである。HEVCにおいて、独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が前のスライスセグメントの値から推測されないスライスセグメントであると定義され、従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値がデコーディング順序での先行する独立スライスセグメントの値から推測されるスライスセグメントであると定義される。HEVCにおいて、スライスヘッダは、現在のスライスセグメントであるか、または現在の従属スライスセグメントに先行する独立スライスセグメントである独立スライスセグメントのスライスセグメントヘッダであると定義され、スライスセグメントヘッダは、スライスセグメント内で表される最初のまたはすべてのコーディングツリーユニットに関連するデータ要素を含むコード化スライスセグメントの一部であると定義される。CUは、タイル内で、またはタイルが使用されない場合にはピクチャ内でLCUのラスタスキャン順序でスキャンされる。LCU内では、CUは、特定のスキャン順序を有する。
【0068】
デコーダは、ピクセルブロックの予測表現を形成する(エンコーダによって作り出され、圧縮表現で格納された動きまたは空間情報を使用して)するためのエンコーダと同様の予測手段と、予測誤差デコーディング(空間ピクセルドメインにおける量子化された予測誤差信号を回復する予測誤差コーディングの逆操作)とを適用することによって出力ビデオを再構築する。予測および予測誤差復号化手段を適用した後、デコーダは、予測および予測誤差信号(ピクセル値)を合計して、出力ビデオフレームを形成する。デコーダ(およびエンコーダ)は、さらに、追加のフィルタリング手段を適用して出力ビデオの品質を改善し、その後、それを表示のために送り、および/またはそれをビデオシーケンスの来たるフレームの予測参照として格納することができる。
【0069】
フィルタリングは、例えば、以下のデブロッキング、サンプル適応オフセット(SAO)、および/または適応ループフィルタリング(ALF)のうちの1つまたは複数を含むことができる。H.264/AVCはデブロッキングを含み、一方、HEVCはデブロッキングとSAOの両方を含む。
【0070】
一般的なビデオコーデックでは、動き情報は、予測ユニットなどの各動き補償済み画像ブロックに関連する動きベクトルで示される。これらの動きベクトルの各々は、コード化されるべき(エンコーダ側で)またはデコードされるべき(デコーダ側で)ピクチャの画像ブロックと以前にコード化またはデコードされたピクチャのうちの1つの予測ソースブロックとの変位を表す。動きベクトルを効率的に表すために、それらは、一般に、ブロック特有の予測動きベクトルに対して差分的にコード化される。一般的なビデオコーデックでは、予測動きベクトルは、事前定義された方法で、例えば、隣接するブロックのエンコードまたはデコードされた動きベクトルの中央値を計算することで作り出される。動きベクトル予測を作り出す別の方法は、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックから候補予測のリストの生成し、選ばれた候補を動きベクトル予測量として信号通知することである。動ベクトル値の予測に加えて、どの参照ピクチャが動き補償予測に使用されるかを予測することができ、この予測情報は、例えば、以前にコード化/デコードされたピクチャの参照インデクスで表すことができる。参照インデクスは、一般に、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックから予測される。その上、一般的な高効率ビデオコーデックは、多くの場合、マージングモード/マージモードと呼ばれる追加の動き情報コーディング/デコーディング機構を利用し、利用可能な参照ピクチャリストごとに動きベクトルおよび対応する参照ピクチャインデクスを含むすべての動きフィールド情報が予測され、いかなる変形/修正もなしに使用される。同様に、動きフィールド情報の予測は、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックの動きフィールド情報を使用して実行され、使用された動きフィールド情報は、利用可能な隣接するブロック/同じ場所に配置されたブロックの動きフィールド情報で満たされた動きフィールド候補リストのリスト間で信号通知される。
【0071】
一般的なビデオコーデックでは、動き補償の後の予測残差は、最初に、変換カーネル(DCTのような)で変換され、次いで、コード化される。この理由は、多くの場合、残差間に依然として若干の相関が存在しており、変換が、多くの場合、この相関を低減し、より効率的なコーディングを行うのに役立つことができるからである。
【0072】
一般的なビデオエンコーダは、最適なコーディングモード、例えば、ブロックおよび関連する動きベクトルのための所望のコーディングモードを見いだすためにラグランジュコスト関数を利用する。この種類のコスト関数は、非可逆コーディング法による(正確なまたは推定された)画像歪と、画像区域内のピクセル値を表すために必要とされる(正確なまたは推定された)情報量とを結びつけるために、重み付け係数λを使用する。
C=D+λR (1)
ここで、Cは、最小化されるべきラグランジュコストであり、Dは、モードおよび動きベクトルを考慮した画像歪(例えば、平均二乗誤差)であり、Rは、デコーダで画像ブロックを再構築するのに必要とされるデータ(候補の動きベクトルを表すためのデータ量を含む)を表すために必要なビット数である。
【0073】
ビデオコーディング標準および仕様は、エンコーダがコード化ピクチャをコード化スライスなどに分割することを可能にすることができる。インピクチャ予測は、一般に、スライス境界を越えては無効にされる。したがって、スライスは、コード化ピクチャを独立にデコード可能なピースにスプリットする方法と見なすことができる。H.264/AVCおよびHEVCでは、インピクチャ予測はスライス境界を越えては無効にされ得る。したがって、スライスは、コード化ピクチャを独立にデコード可能なピースにスプリットする方法と見なすことができ、それゆえに、スライスは、しばしば、送信の基本ユニットと見なされる。多くの場合、エンコーダは、どのタイプのインピクチャ予測がスライス境界を越えて停止されたかをビットストリーム内で示すことができ、デコーダ動作は、例えば、どの予測ソースが利用可能であるかを結論するとき、この情報を考慮する。例えば、隣接するCUが異なるスライスに存在する場合、隣接するCUからのサンプルは、イントラ予測には利用不可能であると見なすことができる。
【0074】
H.264/AVCまたはHEVCエンコーダの出力およびH.264/AVCまたはHEVCデコーダの入力の基本ユニットは、それぞれ、ネットワーク抽象化レイヤ(NAL)ユニットである。パケット指向ネットワークによる移送または構造化ファイルへの格納では、NALユニットは、パケットまたは同様の構造にカプセル化され得る。バイトストリームフォーマットが、フレーミング構造を提供しない送信またはストレージ環境のためにH.264/AVCおよびHEVCで指定されている。バイトストリームフォーマットは、各NALユニットの前に開始コードを付けることによってNALユニットを互いに分離する。NALユニット境界の誤検出を避けるために、エンコーダは、開始コードが違ったふうに発生した場合にエミュレーション防止バイトをNALユニットペイロードに追加するバイト指向開始コードエミュレーション防止アルゴリズムを実行する。パケット指向システムとストリーム指向システムと間の直接のゲートウェイ操作を可能にするために、開始コードエミュレーション防止は、バイトストリームフォーマットが使用されているか否かにかかわらず常に実行され得る。NALユニットは、後に続くデータのタイプの表示と、必要に応じてエミュレーション防止バイトを割り込ませたRBSPの形態でそのデータを含むバイトを含むシンタックス構造として定義することができる。生のバイトシーケンスペイロード(RBSP)は、NALユニットにカプセル化された整数のバイトを含むシンタックス構造として定義することができる。RBSPは、空であるか、またはシンタックス要素を含むデータビットと、それに続くRBSPストップビットと、さらにそれに続く0に等しい0個以上の後続のビットのストリングの形式を有する。
【0075】
NALユニットは、ヘッダとペイロードとからなる。H.264/AVCおよびHEVCでは、NALユニットヘッダは、NALユニットのタイプを示す。
【0076】
HEVCでは、2バイトNALユニットヘッダが、すべての指定されたNALユニットタイプに使用される。NALユニットヘッダは、1つの予約ビット、6ビットのNALユニットタイプ表示、時間レベルでの3ビットのnuh_temporal_id_plus1(1以上であることが必要とされることがある)、および6ビットのnuh_layer_idシンタックス要素を含む。temporal_id_plus1シンタックス要素は、NALユニットの時間識別子と見なすことができ、ゼロベースのTemporalId変数は、以下のように導出することができ、TemporalId=temporal_id_plus1 - 1である。略語TIDは、TemporalId変数と交換可能に使用することができる。0に等しいTemporalIdは、最も低い時間レベルに対応する。temporal_id_plus1の値は、2つのNALユニットヘッダバイトを含む開始コードエミュレーションを避けるために非ゼロであることが必要とされる。選択された値以上のTemporalIdを有するすべてのVCL NALユニットを排除し、すべての他のVCL NALユニットを含めることによって作り出されたビットストリームは、適合したままである。その結果、tid_valueに等しいTemporalIdを有するピクチャは、tid_valueよりも大きいTemporalIdを有するピクチャをインター予測参照として使用しない。サブレイヤまたは時間サブレイヤは、TemporalId変数の特定の値をもつVCL NALユニットと、関連する非VCL NALユニットとからなる時間スケーラブルビットストリームの時間スケーラブル層(または時間層、TL)であると定義することができる。nuh_layer_idは、スケーラビリティ層識別子として理解することができる。
【0077】
NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと、非VCL NALユニットとに分類することができる。VCL NALユニットは、一般に、コード化されたスライスNALユニットである。HEVCでは、VCL NALユニットは、1つまたは複数のCUを表すシンタックス要素を含む。
【0078】
非VCL NALユニットは、例えば、以下のタイプのシーケンスパラメータセット、ピクチャパラメータセット、補足エンハンスメント情報(SEI)NALユニット、アクセスユニットデリミタ、シーケンス終了NALユニット、ビットストリーム終了NALユニット、またはフィラーデータNALユニットのうちの1つとすることができる。パラメータセットが、デコードされたピクチャの再構築に必要とされることがあるが、他の非VCL NALユニットの多くは、デコードされたサンプル値の再構築に必要ではない。
【0079】
コード化ビデオシーケンスを通して変更されないままのパラメータは、シーケンスパラメータセットに含まれ得る。デコーディングプロセスによって必要とされることがあるパラメータに加えて、シーケンスパラメータセットは、オプションとして、ビデオユーザビリティ情報(VUI)を含むことができ、ビデオユーザビリティ情報(VUI)は、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース予約に重要であり得るパラメータを含む。HEVCでは、シーケンスパラメータセットRBSPは、1つまたは複数のピクチャパラメータセットRBSP、またはバッファリング期間SEIのメッセージを含む1つまたは複数のSEI NALユニットによって参照され得るパラメータを含む。ピクチャパラメータセットは、いくつかのコード化ピクチャでは変更されない可能性が高いそのようなパラメータを含む。ピクチャパラメータセットRBSPは、1つまたは複数のコード化ピクチャのコード化スライスNALユニットによって参照され得るパラメータを含むことができる。
【0080】
HEVCでは、ビデオパラメータセット(VPS)は、各スライスセグメントヘッダにおいて見いだされるシンタックス要素によって参照されるPPSにおいて見いだされるシンタックス要素によって参照されるSPSにおいて見いだされるシンタックス要素のコンテンツによって決定される0個以上のコード化ビデオシーケンス全体に適用されるシンタックス要素を含むシンタックス構造として定義することができる。
【0081】
ビデオパラメータセットRBSPは、1つまたは複数のシーケンスパラメータセットRBSPによって参照され得るパラメータを含むことができる。
【0082】
ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)の間の関係および階層は、以下のように記述することができる。VPSは、パラメータセット階層において、およびスケーラビリティおよび/または3Dビデオのコンテキストにおいて、SPSより1レベル上に存在する。VPSは、すべての(スケーラビリティまたはビュー)レイヤにわたるすべてのスライスに共通のパラメータを、コード化ビデオシーケンス全体に、含むことができる。SPSは、特定の(スケーラビリティまたはビュー)レイヤのすべてのスライスに共通のパラメータを、コード化ビデオシーケンス全体に、含み、多数の(スケーラビリティまたはビュー)レイヤによって共有され得る。PPSは、特定のレイヤ表現(1つのアクセスユニットの1つのスケーラビリティまたはビューレイヤの表現)でのすべてのスライスに共通であり、多数のレイヤ表現でのすべてのスライスによって共有される可能性があるパラメータを含む。
【0083】
VPSは、ビットストリームにおけるレイヤの依存性関係に関する情報を、ならびにコード化ビデオシーケンス全体におけるすべての(スケーラビリティまたはビュー)レイヤにわたるすべてのスライスに適用可能な多くの他の情報を提供することができる。VPSは、2つの部分、すなわち、基本VPSおよびVPS拡張を含むと考えることができ、VPS拡張は、オプションとして存在することができる。
【0084】
帯域外送信、信号通知、またはストレージは、追加としてまたは代替として、送信エラーに対する耐性以外の目的、例えば、アクセスまたはセッションネゴシエーションをしやすくすることなどに使用することができる。例えば、ISOベースメディアファイルフォーマットに準拠するファイル内のトラックのサンプルエントリは、パラメータセットを含むことができ、一方、ビットストリーム内のコード化データは、ファイルまたは別のファイルの他のところに格納される。ビットストリームに沿ったというフレーズ(例えば、ビットストリームに沿ったという表示)またはビットストリームのコード化ユニットに沿ったというフレーズ(例えば、コード化タイルに沿ったという表示)は、特許請求の範囲および記載の実施形態において、帯域外データが、それぞれ、ビットストリームまたはコード化ユニットに関連づけられるように、帯域外送信、信号通知、またはストレージを参照するために使用され得る。ビットストリームに沿ったデコーディングまたはビットストリームのコード化ユニットに沿ったデコーディングなどのフレーズは、ビットストリームまたはコード化ユニットにそれぞれ関連づけられた、言及した帯域外データ(帯域外送信、信号通知、またはストレージから取得され得る)のデコーディングを参照することができる。
【0085】
SEI NALユニットは、1つまたは複数のSEIメッセージを含むことができ、
それは、出力ピクチャのデコーディングには必要とされないが、
ピクチャ出力タイミング、レンダリング、エラー検出、エラー隠蔽、およびリソース予約などの関連プロセスを支援することができる。
【0086】
コード化ピクチャは、ピクチャのコード化表現である。
【0087】
HEVCでは、コード化ピクチャは、ピクチャのコーディングツリーユニットのすべてを含むピクチャのコード化表現として定義することができる。HEVCでは、アクセスユニット(AU)は、NALユニットのセットとして定義することができ、NALユニットのセットは、指定された分類ルールに従って互いに関連づけられ、デコーディング順序で連続しており、nuh_layer_idの特定の値をもつ多くても1つのピクチャを含む。コード化ピクチャのVCL NALユニットを含むことに加えて、アクセスユニットは、さらに、非VCL NALユニットを含むことができる。前記指定された分類ルールは、例えば、同じ出力時間またはピクチャ出力カウント値をもつピクチャを同じアクセスユニットに関連づけることができる。
【0088】
ビットストリームは、1つまたは複数のコード化ビデオシーケンスを形成するコード化ピクチャおよび関連データの表現を形成するNALユニットストリームまたはバイトストリームの形態のビットのシーケンスとして定義することができる。同じファイル内、または通信プロトコルの同じ接続内などの同じ論理チャネル内で、第1のビットストリームは、その後に、第2のビットストリームが続くことができる。エレメンタリストリーム(ビデオコーディングのコンテキストの)は、1つまたは複数のビットストリームのシーケンスとして定義することができる。第1のビットストリームの終了は、特定のNALユニットで示すことができそれは、ビットストリーム終了(EOB)NALユニットと呼ばれることがあり、ビットストリームの最後のNALユニットである。HEVCおよびその最新のドラフト拡張では、EOB NALユニットは、0に等しいnuh_layer_idを有することが必要とされる。
【0089】
H.264/AVCでは、コード化ビデオシーケンスは、IDRアクセスユニット(それ自体を含む)から、次のIDRアクセスユニットまでまたはビットストリームの終了(それ自体を含まない)までのどちらか早く現れる方まで、デコーディング順序で連続するアクセスユニットのシーケンスであると定義される。
【0090】
HEVCでは、コード化ビデオシーケンス(CVS)は、例えば、デコーディング順序で、NoRaslOutputFlagが1に等しいIRAPアクセスユニットと、その後に続く、NoRaslOutputFlagが1に等しいIRAPアクセスユニットである後続のアクセスユニットまでの(しかしそれを含まない)すべての後続のアクセスユニットを含む、NoRaslOutputFlagが1に等しいIRAPアクセスユニットではない0個以上のアクセスユニットとからなるアクセスユニットのシーケンスとして定義することができる。IRAPアクセスユニットは、ベースレイヤピクチャがIRAPピクチャであるアクセスユニットとして定義することができる。NoRaslOutputFlagの値は、デコーディング順序のビットストリームにおけるその特定のレイヤの第1のピクチャである各IDRピクチャ、各BLAピクチャ、および各IRAPピクチャに対して1に等しく、デコーディング順序においてnuh_layer_idの同じ値を有するシーケンス終了NALユニットに続く第1のIRAPピクチャに対して1に等しい。デコーダを制御するすることができるプレーヤまたはレシーバなどの外部エンティティからデコーダにHandleCraAsBlaFlagの値を提供するための手段があってもよい。HandleCraAsBlaFlagは、例えば、ビットストリーム内の新しい位置をシークするかまたはブロードキャストにチューニングし、デコーディングを開始し、次いで、CRAピクチャからデコーディングを開始するプレーヤによって、1に設定され得る。HandleCraAsBlaFlagがCRAのピクチャに対して1に等しい場合、CRAのピクチャは、BLAピクチャであるかのように扱われデコードされる。
【0091】
HEVCでは、コード化ビデオシーケンスは、追加としてまたは代替として(上述の仕様に対して)、シーケンス終了(EOS)NALユニットと呼ぶことができる特定のNALユニットがビットストリームに現れ、0に等しいnuh_layer_idを有するときに終了するように規定されてもよい。
【0092】
ピクチャのグループ(GOP)およびその特性は、以下のように定義することができる。GOPは、以前のピクチャがデコードされたかどうかにかかわらずデコードすることができる。オープンGOPは、デコーディングがオープンGOPの最初のイントラピクチャから始まる場合、出力順序が最初のイントラピクチャより前のピクチャを正しくデコードできないことがあるそのようなピクチャのグループである。言い換えれば、オープンGOPのピクチャは、前のGOPに属するピクチャを参照する(インター予測において)場合がある。特定のNALユニットタイプのCRA NALユニットタイプはコード化スライスに使用することができるので、HEVCデコーダはオープンGOPを開始するイントラピクチャを認識することができる。クローズドGOPは、デコーディングがクローズドGOPの最初のイントラピクチャから始まる場合、すべてのピクチャを正しくデコードすることができるそのようなピクチャのグループである。言い換えれば、クローズドGOPのピクチャは、前のGOPのピクチャを参照しない。H.264/AVCおよびHEVCでは、クローズドGOPは、IDRピクチャから開始することができる。HEVCでは、クローズドGOPは、BLA_W_RADLまたはBLA_N_LPピクチャから開始することもできる。オープンGOPコーディング構造は、潜在的に、参照ピクチャの選択のより大きい柔軟性のために、クローズドGOPコーディング構造と比較して圧縮がより効率的である。
【0093】
デコード化ピクチャバッファ(DPB)が、エンコーダおよび/またはデコーダで使用されてもよい。デコードされたピクチャをバッファするのには、インター予測での参照のため、およびデコード化ピクチャを出力順序に並べ替えるためという2つの理由がある。H.264/AVCおよびHEVCは、参照ピクチャマーキングと出力順序並べ替えの両方に多くの柔軟性を提供するので、参照ピクチャバッファリングおよび出力ピクチャバッファリングのための別個のバッファは、メモリリソースを無駄にする可能性がある。したがって、DPBは、参照ピクチャと出力順序並べ替えとのための統一されたデコード化ピクチャバッファリングプロセスを含むことができる。デコード化ピクチャがもはや参照として使用されず、出力に必要とされない場合、デコード化ピクチャはDPBから取り除くことができる。
【0094】
H.264/AVCおよびHEVCの多くのコーディングモードでは、インター予測のための参照ピクチャは、参照ピクチャリストへのインデクスで示される。インデクスは、可変長コーディングでコード化することができ、それにより、通常、インデクスが小さいほど、対応するシンタックス要素の値が短くなる。H.264/AVCおよびHEVCでは、2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)が、各双予測(B)スライスに対して生成され、1つの参照ピクチャリスト(参照ピクチャリスト0)が、各インターコード化(P)スライスに対して形成される。
【0095】
H.264/AVCおよびHEVCを含む多くのコーディング標準は、参照ピクチャリストへの参照ピクチャインデクスを導出するためのデコーディングプロセスを有することができ、それを使用して、多数の参照ピクチャのうちのどれが特定のブロックに対するインター予測に使用されるかを示すことができる。参照ピクチャインデクスは、エンコーダによって、いくつかのインターコーディングモードでビットストリームにコード化されてもよく、または、例えば、いくつかの他のインターコーディングモードで隣接するブロックを使用して導出されてもよい(エンコーダおよびデコーダによって)。
【0096】
動きパラメータタイプまたは動き情報は、限定はしないが、以下のタイプのうちの1つまたは複数を含むことができる。
- 予測タイプ(例えば、イントラ予測、片予測、双予測)および/またはいくつかの参照ピクチャの表示、
- インター(別名、時間)予測、インターレイヤ予測、インタービュー予測、ビュー合成予測(VSP)、および成分間予測(inter-component prediction)などの予測方向の表示(それらは、参照ピクチャごとにおよび/または予測タイプごとに示すことができ、実施形態によっては、インタービュー予測およびビュー合成予測は、一緒に、1つの予測方向として考えることができる)、および/または
- 短期参照ピクチャおよび/または長期参照ピクチャおよび/またはインターレイヤ参照ピクチャなどの参照ピクチャタイプの表示(それらは、例えば、参照ピクチャごとに表示することができる)、
- 参照ピクチャリストへの参照インデクスおよび/または参照ピクチャの他の識別子
(それは、例えば、参照ピクチャごとに示すことができ、そのタイプは、予測方向および/または参照ピクチャタイプに依存することができ、それは、参照インデクスが適用される参照ピクチャリストなどのような他の関連する情報が付随してもよい)、
- 水平動きベクトル成分(それは、例えば、予測ブロックごとにまたは参照インデクスごとになどで示すことができる)、
- 垂直動きベクトル成分(それは、例えば、予測ブロックごとにまたは参照インデクスごとになどで示すことができる)、
- 1つまたは複数の動きベクトル予測プロセスにおける水平動きベクトル成分および/または垂直動きベクトル成分のスケーリングのために使用することができる、動きパラメータを含むかまたは動きパラメータに関連するピクチャと、その参照ピクチャと間のピクチャ順序カウント差(picture order count difference)および/または相対的カメラ離隔などの1つまたは複数のパラメータ(前記1つまたは複数のパラメータは、例えば、各参照ピクチャごともまたは参照インデクスごとになどで示すことができる)、
- 動きパラメータおよび/または動き情報が適用されるブロックの座標、例えば、ルマサンプルユニットでのブロックの左上サンプルの座標、
- 動きパラメータおよび/または動き情報が適用されるブロックの範囲(例えば、幅および高さ)。
【0097】
スケーラブルビデオコーディングは、1つのビットストリームが、例えば、様々なビットレート、解像度、またはフレームレートのコンテンツの多数の表現を含むことができるコーディング構造を指すことができる。これらの場合、レシーバは、その特性に応じて所望の表現(例えば、ディスプレイデバイスに最もよく整合する解像度)を抽出することができる。代替として、サーバまたはネットワーク要素が、例えば、ネットワーク特性またはレシーバの処理能力に応じて、レシーバに送信されるべきビットストリームの一部を抽出することができる。意味のあるデコード化表現は、スケーラブルビットストリームの特定の部分のみをデコードすることによって作成することができる。スケーラブルビットストリームは、一般に、利用可能な最も低い品質のビデオを提供する「ベースレイヤ」と、下位レイヤと一緒に受け取られデコードされたときビデオ品質を強化する1つまたは複数のエンハンスメントレイヤとからなる。エンハンスメントレイヤのコーディング効率を改善するには、そのレイヤのコード化表現は、一般に、下位レイヤに依存する。例えば、エンハンスメントレイヤの動きおよびモード情報は、下位レイヤから予測することができる。同様に、下位レイヤのピクセルデータを使用して、エンハンスメントレイヤの予測を作り出すことができる。
【0098】
いくつかのスケーラブルビデオコーディングスキームでは、ビデオ信号は、ベースレイヤおよび1つまたは複数のエンハンスメントレイヤにエンコードすることができる。エンハンスメントレイヤは、例えば、時間分解能(すなわち、フレームレート)、空間解像度、または単に別のレイヤもしくはその一部によって表されるビデオコンテンツの品質を強化することができる。各レイヤは、そのすべての従属レイヤと一緒に、例えば、特定の空間解像度、時間分解能、および品質水準でのビデオ信号の1つの表現である。本明細書では、スケーラブルレイヤをその従属レイヤのすべてと一緒に「スケーラブルレイヤ表現」と呼ぶ。スケーラブルレイヤ表現に対応するスケーラブルビットストリームの一部を抽出およびデコードして、特定の忠実度でオリジナル信号の表現を作成することができる。
【0099】
スケーラビリティモードまたはスケーラビリティ次元は、限定はしないが、以下のものを含むことができる。
- 品質スケーラビリティ: ベースレイヤピクチャは、エンハンスメントレイヤピクチャよりも低い品質でコード化され、それは、例えば、エンハンスメントレイヤよりもベースレイヤでは大きい量子化パラメータ値(すなわち、変換係数量子化に関して大きい量子化ステップサイズ)を使用して達成され得る。品質スケーラビリティは、さらに、以下で説明するように、微粒または細粒度スケーラビリティ(FGS)、中粒または中粒度スケーラビリティ(MGS)、および/または粗粒または粗粒度スケーラビリティ(CGS)に分類することができる。
- 空間スケーラビリティ: ベースレイヤピクチャは、エンハンスメントレイヤピクチャよりも低い解像度でコード化される(すなわち、より少ないサンプルを有する)。空間スケーラビリティおよび品質スケーラビリティ、特に、その粗粒スケーラビリティタイプは、時には、同じタイプのスケーラビリティと考えることができる。
- ビット深度スケーラビリティ: ベースレイヤピクチャは、エンハンスメントレイヤピクチャ(例えば、10または12ビット)よりも低いビット深度(例えば、8ビット)でコード化される。
- ダイナミックレンジスケーラビリティ: スケーラブルレイヤは、異なるトーンマッピング関数および/または異なる光学伝達関数を使用して取得された異なるダイナミックレンジおよび/または画像を表す。
- 彩度フォーマットスケーラビリティ: ベースレイヤピクチャは、彩度サンプルアレイ(例えば、4:2:0彩度フォーマットでコード化された)において、エンハンスメントレイヤピクチャ(例えば、4:4:4フォーマット)よりも低い空間解像度を提供する。
- 色域スケーラビリティ: エンハンスメントレイヤピクチャは、ベースレイヤピクチャよりも豊富な/広い色彩表現範囲を有する、例えば、エンハンスメントレイヤはUHDTV(ITU-R BT.2020)色域を有することができ、ベースレイヤはITU-R BT.709色域を有することができる。
- ビュースケーラビリティ、それは、マルチビューコーディングと呼ぶこともできる。ベースレイヤは第1のビューを表し、一方、エンハンスメントレイヤは第2のビューを表す。ビューは、1つのカメラまたは視点を表すピクチャのシーケンスとして定義することができる。立体ビデオまたは2ビュービデオでは、1つのビデオシーケンスまたはビューは左眼に提示され、一方、パラレルビューは右眼に提示されると考えることができる。
- 深度スケーラビリティ、それは、深度強化コーディングと呼ぶこともできる。
ビットストリームの1つまたは複数のレイヤは、テクスチャビューを表すことができ、一方、他の1つまたは複数のレイヤは、深度ビューを表すことができる。
- 関心領域スケーラビリティ(以下で説明する)。
- インターレース・ツー・プログレッシブスケーラビリティ(フィールド・ツー・フレーム・スケーラビリティとしても知られている): ベースレイヤのコード化インターレースソースコンテンツ材料をエンハンスメントレイヤで強化して、プログレシブソースコンテンツを表す。ベースレイヤにおけるコード化インターレースソースコンテンツは、コード化フィールド、フィールドペアを表すコード化フレーム、またはそれらの混合物を含むことができる。インターレース・ツー・プログレッシブスケーラビリティでは、ベースレイヤピクチャは、1つまたは複数のエンハンスメントレイヤピクチャの好適な参照ピクチャになるように再サンプリングすることができる。
- ハイブリッドコーデックスケーラビリティ(コーディング標準スケーラビリティとしても知られている): ハイブリッドコーデックスケーラビリティでは、ベースレイヤおよびエンハンスメントレイヤのビットストリームシンタックス、セマンティクス、およびデコーディングプロセスは、異なるビデオコーディング標準で規定される。したがって、ベースレイヤピクチャは、エンハンスメントレイヤピクチャとは異なるコーディング標準またはフォーマットに従ってコード化される。例えば、ベースレイヤはH.264/AVCでコード化することができ、エンハンスメントレイヤはHEVC多層拡張でコード化することができる。
【0100】
スケーラビリティタイプの多くは一緒に組み合わされて適用されてもよいことを理解されたい。例えば、色域スケーラビリティおよびビット深度スケーラビリティを組み合わせることができる。
【0101】
レイヤという用語は、ビュースケーラビリティおよび深度エンハンスメントを含む任意のタイプのスケーラビリティのコンテキストで使用され得る。エンハンスメントレイヤは、SNR、空間、マルチビュー、深度、ビット深度、彩度フォーマット、および/または色域エンハンスメントなどの任意のタイプのエンハンスメントを指すことができる。ベースレイヤは、ベースビュー、SNR/空間スケーラビリティのベースレイヤ、または深度エンハンストビデオコーディングのテクスチャベースビューなどの任意のタイプのベースビデオシーケンスを指すことができる。
【0102】
上述のように、静止ピクチャと、ビデオシーケンスにおけるピクチャとは、一般に、サンプルのより小さいブロックに分割され、それは、空間的手段または時間的手段のいずれかによって予測され、予測ブロックと、オリジナル画像内の対応するブロックとの間の残った誤差が、残差コーディング手段によりコード化される。残差コーディング手段は、一般に、残差ブロックの周波数ドメインへの変換(例えば、DCT(離散コサイン変換)またはその派生物を一次変換として使用する)、結果として生じる変換係数の量子化、および量子化係数のエントロピーコーディングを含む。
【0103】
その上に、コーディング効率をさらに改善するために、いわゆる二次変換を適用することができる。二次変換は、一般に、一次変換(例えば、DCT)の出力の一部を利用し、一次変換の低周波係数に追加の変換を実行する。図5は、一次および二次変換を使用してビデオおよび画像をエンコードおよびデコードするために使用することができるエンコーダ530およびデコーダ540の構造の一例を示す。エンコーダ530は、一次変換のための所望の変換モードmts_idxと、二次変換のためのlfnst_idxとを選択するための論理を実装することができる。これらのモードは、ビットストリームにエンコードされる。次いで、デコーダ540は、ビットストリーム表現から同じ変換モードをデコードし、選択された二次変換および一次変換をデコード化変換係数に適用することができる。ゼロに等しい二次変換モードlfnst_idxは、二次変換をバイパスすることと、変換係数に一次変換のみを実行することとを表すことができる。一次変換はまた、ビデオコーデックではバイパスされることもある。それは、そのような変換スキップモードを有効にするために別個のフラグを送ることによって示すことができ、またはその表示は、その値のうちの1つを変換バイパスモードの表示として使用して一次変換インデクスmts_idxの信号通知に埋め込むことができる。
【0104】
図4に戻って参照すると、そこの変換ユニット342、442は、図5のデュアル変換エンコーダ530の一次変換ユニット531および二次変換ユニット532を含むと考えることができる。同様に、図4の逆変換ユニット362、462は、図5のデュアル変換デコーダ540の逆二次変換ユニット543および逆の一次変換ユニット544を含むと考えることができる。
【0105】
デュアル変換エンコーダ530への入力は、一般に、ビデオまたは画像エンコーダにおける予測されたサンプル値とオリジナルサンプル値との間の差を定義する残差サンプル値からなる。これらの値は、一次変換531および二次変換532と呼ばれる2つの変換プロセスを経る。結果として生じる変換係数は、所望の精度に量子化され533、エントロピーエンコードされ534、ビットストリーム536またはファイルに出力され得る。デュアル変換デコーダ540は、一般に、エンコード化シンボルをビットストリームから読み取り、エントロピーデコードし541、これらを変換係数に逆量子化し542,二次変換543の逆543および一次変換の逆544を実行する。一次変換は、例えば、2次元DCTまたはDSTとすることができ、二次変換は、例えば、非分離2次元変換とすることができる。
【0106】
変換セレクタ535は、一次変換モード選択および二次変換モード選択を実行し、デコーダへの信号通知のために、選択された変換モードの表示を準備することができる。いくつかの実施形態による変換セレクタ535の動作は、本明細書において後で説明される。
【0107】
次に、デュアル変換プロセスおよび逆デュアル変換プロセスの改善された方法が導入される。
【0108】
図8は、一実施形態によるエンコーダ530の動作の一例を示す。エンコーディング方法は、残差サンプルのブロックを入力する(800)ことと、スキャン順序における最後の非ゼロ係数の位置を決定する(801)ことと、最後の非ゼロ係数の位置に基づいて二次変換モードを決定する(802)ことと、二次変換モードに基づいて一次変換モードを決定する(803)ことと、変換係数を決定する(804)ことと、一次および二次変換を実行する(805)こととを含む。
【0109】
図9は、一実施形態によるデコーダ540の動作の一例を示す。デコーディング方法は、ビットストリームを受け取る(900)ことと、変換ブロック内の最後の係数の位置を決定するためにlast_posシンタックス要素をデコードする(901)こととを含む。変換ブロック内の決定された最後の係数位置を使用して、lfnst_idxシンタックス要素がビットストリームで信号通知されていることを最後の位置が示しているかどうかを調査する(902)。last_posが、決定された範囲内にある場合、lfnst_idxシンタックス要素はデコードされ(903)、二次変換モードが、デコードされたlfnst_idxシンタックス要素に基づいて決定される。last_posが、決定された範囲内にない場合、lfnst_idxシンタックス要素は、ゼロに、またはlfnst_idxシンタックス要素がビットストリームで信号通知されていないことを示す別の所定の値に設定され(904)、二次変換モードが存在していないと決定される。lfnst_idxシンタックス要素のデコードされた(903)値または設定された(904)値がさらに調査されて(905)、lfnst_idxシンタックス要素がmts_idxの信号通知を示しているかどうかが決定される。lfnst_idxシンタックス要素がmts_idxの信号通知を示していることを調査が明らかにした場合、mts_idxシンタックス要素がデコードされ(906)、一次変換モードが、二次変換モードに基づいて決定される。lfnst_idxが、決定された範囲内にない場合、lfnst_idxは、0に、または一次変換モードが存在していないと決定されたことを示す別の所定の値に設定される(907)。次いで、変換係数はデコードされ(908)、選択された(既存の)一次および二次変換が実行される(909)。
【0110】
以下では、ビデオもしくは画像コーデック、エンコーダ、またはデコーダに関連する一次および二次変換モードの信号通知に関連するいくつかの実施形態が、より詳細に説明される。
【0111】
エンコーダ530は、処理のために残差サンプルを含む変換ブロックを取得する。変換セレクタ535は、変換ブロック内の最後の係数の位置を決定する(探索する)。最後の変換係数の位置の決定は、エンコーダで、所定の順序で係数をスキャンし、何が、そのスキャン順序での変換ブロック内の最後の非ゼロ係数または特定のアクティビティ基準を満たす別の係数の位置であるかをチェックすることによって、行うことができる。決定は、例えば、変換ブロックのサンプル値が、例えば、変換ブロック内の最後の係数から開始して調査されるように実行することができ、サンプル値がゼロである場合、逆スキャニング順序で前の係数のサンプル値が調査されて、ゼロか否かが決定される。第1の非ゼロ係数が見いだされるまで、これが繰り返される。変換ブロック内のその係数の場所が、最後の非ゼロ係数の表示として使用される。その場所は、例えば、最後の係数の場所の座標(行および列)として、またはスキャニング順序における係数の順序番号として、または他の方法で示すことができる。対角線スキャンの異なる変形が、画像およびビデオコーディングアプリケーションで使用されてもよく、その理由は、それをブロック内の最後の非ゼロ係数の信号通知と組み合わせることが、変換ブロック内の一般的な係数分布を効率的に表すことができるからであり、ここで、係数は、多くの場合、変換ブロックのスキャンの先頭および左上コーナにパックされる。そのようなスキャンの一例が、図10に提供されている。その例では、スキャンは、4×4係数グループに基づく変換係数の8×8ブロック1200について定義され、グループのスキャン順序は、右上から左下の対角線として定義され、係数グループの内部のスキャン順序も同じ一般的な方向に定義される。この例では、変換ブロック1200内の数は、サンプルがスキャンされる順序を示し、0から開始して63まで進む。この例では、スキャニング順序は、ブロックの右上から左下への対角線スキャニング順序に従い、矢印1201で示されている。ブロック内では、図10の例から分かるように、および矢印1202で示されているように、同様のスキャニング順序に従うことができる。言い換えれば、最初に、左上ブロック内の係数が、右上から左下への対角線スキャニング順序でスキャンされ、次に、右上ブロック内の係数が、右上から左下への対角線スキャニング順序でスキャンされ、その後に、左下ブロックの係数のスキャニング、そして最後に右下ブロックの係数のスキャニングが続く。上記の逆スキャニング順序は、名前が示唆するように、上述のスキャニング順序とは逆になっている。図10の例を使用すると、最後の係数は63と番号づけされ、その前は62と番号づけされ、などである。
【0112】
係数の非ゼロ値の代わりに、上記のアクティビティ基準は、任意の種類のアクティビティ尺度とすることもできる。例えば、それは閾値とすることができ、上記のように第1の非ゼロ値を探索する代わりに、探索は、閾値を超える値(または負数が存在することがある場合は絶対値)を有する第1の係数を見いだすことを含むことができる。アクティビティ尺度は、例えば、非ゼロ係数の総数または係数の絶対値の合計とすることもできる。
【0113】
エンコーダは、最後の非ゼロ係数の場所を決定した後、その位置の座標を記述するシンタックス要素をエンコードし、それをビットストリームに出力することができる。次いで、対応するデコーダは、その座標をデコードし、スキャンの先頭に向かって逆スキャン順序でその場所から変換ブロックの非ゼロ係数をデコードし始めることができる。言い換えれば、デコーダは、最後の非ゼロ係数と、最後の非ゼロ係数に先立つ変換ブロックの他の係数の値とをデコードすることができる。
【0114】
変換ブロック内の最後の非ゼロ係数の位置が決定されると、その位置を使用して、二次変換モードを決定することができる。その位置がどのように二次変換モードに影響するかにはいくつかの選択肢があり得る。いくつかの例が、本明細書において後で提供される。
【0115】
次いで、決定された二次変換モードを使用して、一次変換モードを選択することができる。二次変換モードがどのように一次変換モードに影響するかにはいくつかの選択肢があり得る。いくつかの例が、本明細書において後で提供される。
【0116】
二次変換モードおよび第1の変換モードが選択されると、変換ブロックの変換係数を決定することができ、前記変換係数、前記一次変換モード、および前記二次変換モードに基づく変換操作を実行することができる。
【0117】
ビデオまたは画像エンコーダでは、二次変換モードの決定は、例えば、様々な変換候補を予測残差に適用し、所与のコスト関数を最小にする変換候補を選択することによって行うことができる。そのようなコスト関数は、変換ブロック、変換ユニット、またはコーディングユニットを候補を用いて表すために必要とされるビットの正確なまたは推定のビット数に依存する項と、サンプルのブロックの正確なまたは推定の再構築誤差の程度に依存する項とを含むことができる。
【0118】
ビデオまたは画像デコーダでは、二次変換モードの決定は、二次変換モードを示すシンタックス要素を解析することによって行うことができる。
【0119】
二次変換モードの決定は、エンコーダとデコーダの両方での異なる有用性チェックを含むことができ、二次変換モードの信号通知および解析は、ある条件下では省略することができる。例えば、二次変換信号通知がビットストリーム内に存在するには、変換ブロック内の最後の係数がスキャン順序の特定の範囲にある必要があると定義することができる。信号通知が省略される場合には、二次変換モードは、例えばゼロまたは別の表示であると決定することができ、それを使用して、二次変換が、変換ブロック、変換ユニット、またはコーディングユニットに対してオフに切り替えられていることを示すことができる。
【0120】
ビデオまたは画像エンコーダでの一次変換モードの選択は、様々な一次変換モードのテスト、コスト関数の評価、および選択されたコスト関数を最小にするモードの選択を含む、二次変換モードの選択と同様の手法に従って行うことができる。
【0121】
一実施形態では、一次変換モードの決定は、決定された二次変換モードに基づいて行われる。これは、例えば、非ゼロ二次変換モードがビットストリームに含まれている場合、一次変換モードに関連する一部またはすべてのシンタックス要素の信号通知を省略することを含むことができる。一次変換モードの信号通知は、ビットストリーム内で2つ以上の部分に分割することもできる。例えば、一次変換と二次変換の両方がバイパスされる、いわゆる変換スキップモードの信号通知は、変換ブロック内の最後の係数の位置を信号通知する前に行うことができ、一方、二次変換モードの信号通知は、最後の係数位置の信号通知の後に行われ、その後に、二次変換が変換ブロックに対してオフであると信号通知された場合には、一次変換の信号通知が続くことができる。
【0122】
変換ブロックの変換係数の決定は、様々な方法で行うことができる。それらは、例えば、量子化係数の値のコンテキストベース算術コーディングを使用して、特定のスキャン順序または逆スキャン順序で信号通知することができる。ビットストリームで信号通知された量子化係数は、逆一次および/または二次変換操作を実行する前に、様々な方法で逆量子化およびスケーリングすることができる。
【0123】
変換操作の実行はまた、様々な方法で行うことができる。変換または逆変換は、例えば、行列乗算演算、積算および加算演算、またはシフトおよび加算演算、あるいはそれらの組合せを使用して実行することができる。変換マトリクスの選択は、二次変換モードおよび一次変換モードの解析に加えて、例えば、変換ブロックの次元、変換ブロックのルマ/彩度チャネル、または変換ブロック、変換ユニット、予測ユニット、もしくはコーディングユニットに関連するイントラ予測モードをチェックする操作および条件を含むことができる。
【0124】
一次変換は、デコード化変換係数、またはデコーダにおいて二次変換から出力される変換係数のセットに適用される変換を指すことができる。二次変換は、デコード化変換係数に適用され、さらに、二次変換の出力が一次変換への入力として供給される変換を指すことができる。一次変換の例には、例えばドラフトVVC標準で使用され、tu_mts_idxシンタックス要素を使用して信号通知される変換の離散コサイン変換(DCT)および離散サイン変換(DST)ファミリが含まれる。ドラフトVVC標準には、低周波非分離変換またはLFNSTと呼ばれる二次変換も含まれる。LFNST二次変換モードの有効化および信号通知は、そのドラフト基準に従って実装されたコードのlfnst_idxシンタックス要素を使用して行われる。
【0125】
一実施形態では、一次変換の信号通知またはデコーディングは、二次変換の使用に基づいて実行される。信号通知またはデコーディングは、有利には、最後の変換係数位置が変換ブロックで信号通知またはデコードされた後で、およびその変換ブロック内の係数の信号通知またはデコーディングの前に行われる。この設定により、ビデオデコーダは、変換ブロック内の係数をデコードする前に一次変換のタイプと二次変換のタイプの両方を決定し、選択された一次変換または選択された一次-二次変換ペアに適用可能でない係数区域のデコーディングをスキップすることができる。
【0126】
一次変換信号通知と二次変換信号通知の両方を実行し、変換ブロックレベルでデコードし、選択された二次変換モードの知見に応じて一次変換モードを決定することにはいくつかの利点があり得る。第1に、コーディングユニット全体をエンコードまたはデコードした後にコーディングユニットレベルで二次変換モードを信号通知すると、実施に待ち時間を追加する可能性がある。例えば、エンコーダでは、ルマ成分の二次変換の有用性基準は、コーディングユニットの彩度コンポーネントもエンコードした後でしか満たすことができない。それにより、エンコーダ設計が複雑になることがあり、関連性がなくなる可能性がある情報をエンコーダがバッファさせられることがある。同様に、デコーダでは、同じコーディングユニット内のすべての彩度変換ブロックのシンタックス要素がデコードされた後でしかルマ変換を決定することができない。第2に、使用方法の取り組みでは、特に、二次変換の使用が一次変換のサブセットに制限される場合、最初に二次変換モードを表し、一次変換モードの信号通知を省略することができると、コーディング効率面でより効率的であり得る。
【0127】
特定のシンタックス要素がビットストリームに存在するか否かを決定する際に、シンタックス要素値の様々な閾値および範囲を使用することができる。さらに、コーディングユニット、予測ユニット、変換ユニットまたはブロックのための特定のイントラまたはインター予測モードの使用などの他のパラメータが、二次変換モードまたは一次変換モードをデコードまたはエンコードするための決定に含まれてもよい。一例として、以下のシンタックス構造を使用して、ビットストリームシンタックスを表すことができる。
【0128】
【表1】
【0129】
二次変換表示lfnstGenericConditionsの一般的な条件は、例えば、変換ブロックの次元を閾値と比較することを含むことができる。例えば、それは、変換ブロックの幅および高さの最小値を4または2の値と比較することを含むことができる。一般的な条件に加えて、二次変換モードlfnst_idxを解析するための条件は、変換ブロック内の最後の係数の位置をチェックすることを含むことができる。それの一例は、変換ブロックの最後のスキャン位置lastScanPosに基づいて計算されるlfnstLastPosConditions変数を定義することによってシンタックス表でも提供される。これらの条件は、別個にまたは一緒に、二次変換有用性条件と呼ぶことができる。
【0130】
同様に、一次変換モードmts_idxをデコードするための条件は、変換ブロックの最小または最大次元などの一般的な条件mtsGenericConditionsを含むことができる。一般的な条件に加えて、表示されたlfnst_idxは、mts_idxシンタックス要素の有用性チェックに含まれ得る。上述の例では、lfnst_idxは、mts_idxの解析を可能にするためにゼロに等しい必要がある。
【0131】
これらの条件は、別個にまたは一緒に、一次変換表示条件と呼ぶことができる。
【0132】
二次変換モードlfnst_idxの表示は、1つの変換ブロック内で行うことができるが、表示の効果は多数の変換ブロックをカバーすることができる。例えば、輝度変換ブロックとクロミナンス変換ブロックの両方を含む単一のツリーコーディングユニットの場合、lfnst_idxは、そのルマ変換ブロックの二次変換有用性条件を使用して、ルマ変換ブロックに対して決定することができる。次いで、表示されたlfnst_idxは、同じコーディングユニットまたは変換ユニット内の彩度変換ブロックに対しても二次変換モードとして使用することができる。
【0133】
ルマ成分がそれ自体のコーディング構造に分離され、彩度成分が別のコーディング構造に分離されるデュアルツリーコーディングの場合、ルマ変換ブロックのlfnst_idxは、そのルマブロックの二次変換有用性条件に基づいて決定することができる。彩度変換ブロックに関して言えば、非ゼロ変換係数をもつ第1の彩度変換ブロックに二次変換有用性条件を含めることによって、2つの彩度ブロックに対して合同lfnst_idxを表示することができる。これは、例えば、一般的な二次変換有用性条件lfnstGenericConditionsに以下の追加の条件を使用して実施することができる。
【0134】
【表2】
【0135】
ここで、ゼロに等しいcIdxは、ルマ変換ブロックを指し、1に等しいcIdxは、第1の彩度変換ブロックを指し、DUAL_TREE_CHROMAに等しいtreeTypeは、別個のルマおよび彩度ツリーと、彩度ツリーに属する変換ブロックをもつデュアルツリーコーディングを指し、ゼロに等しいtu_cbf_cbは、0値の係数のみを有する第1の彩度変換ブロックを指す。
【0136】
二次変換モードlfnst_idxおよび一次変換モードmts_idxはまた、コーディングユニットレベルで表示することができる。その場合、二次変換表示の有用性条件は、そのコーディングユニット内のルマ変換ブロックまたはルマブロックの最後の係数位置表示lastScanPosのみを使用し、単一のツリーコーディングの場合およびデュアルツリールマコーディングの場合、彩度変換ブロックの最後の係数位置表示を省略することができる。デュアルツリー彩度コーディングの場合、二次変換有用性条件は、非ゼロ係数をもつ第1の彩度変換ブロックの最後の係数位置表示lastScanPosを含むことができる。
【0137】
様々なシンタックス要素をエンコードおよびデコードする順序は、ビットストリーム内のより高いレベルの信号通知に依存することができる。そのような信号通知は、例えば、ビデオビットストリーム内またはビットストリーム外の様々なパラメータセットまたはヘッダで行うことができ、一次変換モードおよび二次変換モードのすべてまたは一部を無効化または有効化することを含むことができる。例えば、そのような信号通知に応じて、一次変換指標は、二次変換がビットストリームのすべてまたは一部に対して無効にされている場合には最後の係数指標の前に、二次変換がビットストリームのすべてまたは一部に対して有効にされている場合には二次変換指標の後にデコードされ得る。
【0138】
図6は、一手法によるデュアル変換プロセスを示す。ブロックAは、残差サンプルブロックを示す。ブロックBは、一次変換ベースの変換係数ブロックを示す(エンコーディング方向では一次変換の後、デコーディング方向では一次変換の前)。ブロックCは、二次変換ベースの変換係数ブロックを示す(エンコーディング方向では二次変換の後、デコーディング方向では二次変換の前)。二次変換は、一般に、入力信号の低周波コンテンツに一般に対応する変換係数の左上コーナに適用される。ブロックCの区域Dは、そのような二重またはデュアル変換された区域を示す。一方、ブロックCの区域Sは、単一変換段階を経験した区域を示す。一次変換および二次変換は、ここでは、処理の方向に応じて、変換の順方向または逆方向バリアントを指すことができる。
【0139】
図7は、不完全二次変換または部分的二次変換によるデュアル変換プロセスを示す。この場合、二次変換は、順方向で適用される場合、D、Z0、およびZ1でマークされた区域では一次変換係数を取り入れ、Dの区域では非ゼロ値を出力する。そのような二次変換が逆方向で適用される場合、区域Dの係数は入力として使用され、逆二次変換はすべての区域D、Z0、およびZ1の係数を出力し、それにより、一次変換の区域を占めることができる。
【0140】
二次変換は、残差コーディングで、例えば、JEM探索モデル(モード依存非分離二次変換、MDNSST)で使用され、それは、JVET-G1001, "Algorithm Description of Joint Exploration Test Model 7 (JEM 7)", Turin, IT, July 2017およびVTM reference implementation of the draft VVC standard (Low Frequency Non-Separable Transform, LFNST), disclosed in JVET-N1001, "Versatile Video Coding (Draft 5)", Geneva, CH, April 2019に開示されている。
【0141】
これらの場合、二次変換は、エンコーダでの一次変換の後に、および同様にデコーダでの一次変換の前に、4×4または8×8低周波区域内に適用される。両方の場合、変換係数の最終セットは、二重変換された低周波係数と、単一変換で変換された高周波係数とからなる。そのような選択は、すべてのシナリオで理想的であるとは限らない。
【0142】
この方法および関連する実施形態は、様々な方法で実施することができる。例えば、上述の操作の順序は変更することができ、または操作は様々な方法でインターリーブすることができる。さらに、様々な追加の操作が、処理の様々な段階に適用されてもよい。例えば、記載された操作の最終結果または中間結果に適用される追加のフィルタリング、スケーリング、マッピング、または他の処理があってもよい。上述の操作の最終結果または中間結果はまた、他の操作の結果とさらに組み合わされてもよい。
【0143】
図11は、本発明の実施形態を使用するのに適するビデオデコーダのブロック図を示す。図11は、2レイヤデコーダの構造を示しているが、デコーディング動作は単一レイヤデコーダで同様に使用することができることが理解されるであろう。
【0144】
ビデオデコーダ550は、ベースレイヤの第1のデコーダセクション552と、予測レイヤの第2のデコーダセクション554とを含む。ブロック556は、ベースレイヤピクチャに関する情報を第1のデコーダセクション552に送り出し、予測レイヤピクチャに関する情報を第2のデコーダセクション554に送り出すためのデマルチプレクサを示す。参照P’nは、画像ブロックの予測表現を表す。参照D’nは、再構築予測誤差信号を表す。ブロック704、804は、予備再構成画像(I’n)を示す。参照R’nは、最終再構成画像を表す。ブロック703、803は、逆変換(T-1)を示す。ブロック702、802は、逆量子化(Q-1)を示す。ブロック701、801は、エントロピーデコーディング(E-1)を示す。ブロック705、805は、参照フレームメモリ(RFM)を示す。ブロック706、806は、予測(P)(インター予測またはイントラ予測のいずれか)を示す。ブロック707、807は、フィルタリング(F)を示す。ブロック708、808は、デコード化予測誤差情報を予測ベースレイヤ/予測レイヤ画像と組み合わせて、予備再構成画像(I’n)を取得するために使用することができる。予備再構築およびフィルタ処理されたベースレイヤ画像は、第1のデコーダセクション552からの出力709であり得、予備再構築およびフィルタ処理されたベースレイヤ画像は、第1のデコーダセクション554からの出力809であり得る。
【0145】
本明細書において、デコーダは、プレーヤ、レシーバ、ゲートウェイ、デマルチプレクサ、および/またはデコーダなどの、デコーディング動作を実行することができるオペレーショナルユニットを包含すると解釈されるべきである、
【0146】
さらなる態様として、少なくとも1つのプロセッサと少なくとも1つのメモリとを含む装置が提供され、前記少なくとも1つのメモリにコードが格納され、コードが前記少なくとも1つのプロセッサによって実行されると、コードにより、装置は、少なくとも、変換ブロックに関連する変換係数のセットをデコードすることと、デュアル変換が前記変換ブロックに適用されるかどうかを決定することと、肯定である場合、第1の変換をデコード化変換係数のセットに実行し、出力値の第1のセットを生成することと、前記出力値の第1のセットを前記第2の変換への入力として使用して第2の変換を実行し、出力値の第2のセットを生成することと、第2のセットの出力値をデュアル変換の出力として使用することとを実行する。
【0147】
そのような装置は、前記少なくとも1つのメモリに格納されたコードをさらに含み、コードが前記少なくとも1つのプロセッサによって実行されると、コードにより、装置は、本明細書で開示される実施形態のうちの1つまたは複数を実行する。
【0148】
図12は、様々な実施形態を実施することができる例示のマルチメディア通信システムのグラフィカル表示である。データソース1510は、アナログ、非圧縮デジタル、または圧縮デジタルフォーマット、またはこれらのフォーマットの任意の組合せのソース信号を提供する。エンコーダ1520は、ソース信号のデータフォーマット変換および/またはフィルタリングなどの前処理を含むかまたはそれに関連することができる。エンコーダ1520は、ソース信号をコード化メディアビットストリームにエンコードする。デコードされるべきビットストリームは、事実上任意のタイプのネットワーク内に配置されたリモートデバイスから直接または間接的に受け取ることができることに留意されたい。追加として、ビットストリームは、ローカルハードウェアまたはソフトウェアから受け取ることができる。エンコーダ1520は、オーディオおよびビデオなどの2つ以上のメディアタイプをエンコードすることができる可能性があり、または2つ以上のエンコーダ1520は、異なるメディアタイプのソース信号をコード化するのに必要とされることがある。エンコーダ1520はまた、グラフィックスおよびテキストなどの合成的に作成された入力を得ることができ、合成媒体のコード化されたビットストリームを生成することができる可能性がある。以下では、1つのメディアタイプの1つのコード化メディアビットストリームの処理のみが、説明を簡単にするために考慮される。しかしながら、一般に、実時間ブロードキャストサービスは、いくつかのストリーム(一般に、少なくとも1つのオーディオ、ビデオ、およびテキストサブタイトル付きストリーム)を含むことに留意されたい。システムは多くのエンコーダを含むことができるが、図では、一般性を失うことなく説明を簡単にするために1つのエンコーダ1520のみが示されていることにも留意されたい。本明細書に含まれるテキストおよび例はエンコーディングプロセスを具体的に説明し得るが、当業者は同じ概念および原理が、対応するデコーディングプロセスにも適用され、逆の場合も同じであることを理解するであろうことをさらに理解されたい。
【0149】
コード化メディアビットストリームは、ストレージ1530に転送され得る。ストレージ1530は、コード化メディアビットストリームを格納するための任意のタイプのマスメモリを含むことができる。ストレージ1530内のコード化メディアビットストリームのフォーマットは、基本的な自己完結型ビットストリームフォーマットとすることができ、または1つまたは複数のコード化メディアビットストリームは、コンテナファイルにカプセル化することができ、またはコード化メディアビットストリームは、DASH(または同様のストリーミングシステム)に適し、セグメントのシーケンスとして格納されるセグメントフォーマットにカプセル化することができる。1つまたは複数のメディアビットストリームがコンテナファイルにカプセル化される場合、ファイル発生器(図に示されていない)を使用して、1つまたは複数のメディアビットストリームをファイルに格納し、ファイルフォーマットメタデータを作り出すことができ、ファイルフォーマットメタデータは、さらに、ファイルに格納され得る。エンコーダ1520またはストレージ1530は、ファイル発生器を含むことができ、またはファイル発生器は、エンコーダ1520またはストレージ1530のいずれかに動作可能に取り付けられる。いくつかのシステムは、「ライブで」動作し、すなわち、ストレージを省略し、エンコーダ1520からのコード化メディアビットストリームをセンダ1540に直接転送する。次いで、コード化メディアビットストリームは、必要に応じて、サーバとも呼ばれるセンダ1540に転送され得る。送信に使用されるフォーマットは、基本的な自己完結型ビットストリームフォーマット、パケットストリームフォーマット、DASH(または同様のストリーミングシステム)に適するセグメントフォーマットとすることができ、または1つまたは複数のコード化メディアビットストリームは、コンテナファイルにカプセル化され得る。エンコーダ1520、ストレージ1530、およびサーバ1540は、同じ物理デバイスに存在してもよく、または別個のデバイスに含まれてもよい。エンコーダ1520およびサーバ1540は、ライブ実時間コンテンツで動作することができ、その場合、コード化メディアビットストリームは、一般に、恒久的に格納されるのではなく、むしろ、コンテンツエンコーダ1520および/またはサーバ1540に短期間バッファされて、処理遅延、転送遅延、およびコード化メディアビットレートにおける変動を平滑化する。
【0150】
サーバ1540は、通信プロトコルスタックを使用してコード化メディアビットストリームを送る。スタックは、限定はしないが、リアルタイムトランスポートプロトコル(RTP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)、伝送制御プロトコル(TCP)、およびインターネットプロトコル(IP)のうちの1つまたは複数を含むことができる。通信プロトコルスタックがパケット指向である場合、サーバ1540は、コード化メディアビットストリームをパケットにカプセル化する。例えば、RTPが使用される場合、サーバ1540は、コード化メディアビットストリームを、RTPペイロードフォーマットに従ってRTPパケットにカプセル化する。一般に、各メディアタイプは、専用のRTPペイロードフォーマットを有する。システムは2つ以上のサーバ1540を含むことができるが、簡単さのために、以下の説明は1つのサーバ1540のみを考慮することに再度留意されたい。
【0151】
メディアコンテンツが、ストレージ1530のためにまたはデータをセンダ1540に入力するためにコンテナファイルにカプセル化される場合、センダ1540は、「送信ファイルパーサ」(図に示されていない)を含むことができ、またはそれに動作可能に取り付けられ得る。特に、コンテナファイルがそのように送信されるのではなく、含まれるコード化メディアビットストリームのうちの少なくとも1つが、通信プロトコルを介した移送のためにカプセル化される場合、送信ファイルパーサは、通信プロトコルを介して搬送されるべきコード化メディアビットストリームの適切な部分を捜し出す。送信ファイルパーサはまた、パケットヘッダおよびペイロードなどの通信プロトコルの正しいフォーマットを作り出す際に役立つことができる。マルチメディアコンテナファイルは、含まれているメディアビットストリームのうちの少なくとも1つを通信プロトコルに基づいてカプセル化するために、ISOBMFFにおけるヒントトラックなどのカプセル化命令を含むことができる。
【0152】
サーバ1540は、例えば、CDN、インターネット、および/または1つまたは複数のアクセスネットワークの組合せとすることができる通信ネットワークを通してゲートウェイ1550に接続される場合もされない場合もある。ゲートウェイは、さらにまたは代替として、ミドルボックスと呼ばれることがある。DASHでは、ゲートウェイは、エッジサーバ(CDNの)またはウェブプロキシとすることができる。システムは、一般に、任意の数のゲートウェイなどを含むことができるが、簡単のために、以下の説明は、1つのゲートウェイ1550のみを考慮することに留意されたい。ゲートウェイ1550は、ある通信プロトコルスタックによるパケットストリームの別の通信プロトコルスタックへの変換、データストリームのマージングおよびフォーキング、および現行のダウンリンクネットワーク状態に応じた転送ストリームのビットレートの制御などのダウンリンクおよび/またはレシーバ能力に応じたデータストリームの操作などの様々なタイプの機能を実行することができる。ゲートウェイ1550は、様々な実施形態のサーバエンティティとすることができる。
【0153】
システムは、一般に、送信された信号を受信し、復調し、コード化メディアビットストリームにカプセル開放することができる1つまたは複数のレシーバ1560を含む。コード化メディアビットストリームは、記録ストレージ1570に転送され得る。記録ストレージ1570は、コード化メディアビットストリームを格納するために任意のタイプのマスメモリを含むことができる。記録ストレージ1570は、代替としてまたは付加的に、ランダムアクセスメモリなどの計算メモリを含むことができる。記録ストレージ1570内のコード化メディアビットストリームのフォーマットは、基本的な自己完結型ビットストリームフォーマットとすることができ、または1つまたは複数のコード化メディアビットストリームは、コンテナファイルにカプセル化され得る。互いに関連するオーディオストリームおよびビデオストリームなどの多数のコード化メディアビットストリームがある場合、コンテナファイルが、一般に、使用され、レシーバ1560は、入力ストリームからコンテナファイルを生成するコンテナファイル発生器を含むかまたはそれに取り付けられる。いくつかのシステムは、「ライブで」動作し、すなわち、記録ストレージ1570を省略し、レシーバ1560からのコード化メディアビットストリームをデコーダ1580に直接転送する。いくつかのシステムでは、記録されたストリームのうちの最新の部分のみ、例えば、記録されたストリームの最新の10分の抜粋のみが、記録ストレージ1570に維持され、一方、前の記録データは、記録ストレージ1570から廃棄される。
【0154】
コード化メディアビットストリームは、記録ストレージ1570からデコーダ1580に転送され得る。互いに関連し、コンテナファイルにカプセル化されたオーディオストリームおよびビデオストリームなどの多くのコード化メディアビットストリームがあるか、または単一のメディアビットストリームが、例えば、より容易なアクセスのためにコンテナファイルにカプセル化される場合、ファイルパーサ(図に示されていない)を使用して、コンテナファイルからの各コード化メディアビットストリームをカプセル開放する。記録ストレージ1570またはデコーダ1580は、ファイルパーサを含むことができ、またはファイルパーサは、記録ストレージ1570またはデコーダ1580のいずれかに取り付けられる。システムは多くのデコーダを含むことができるが、ここでは、1つのデコーダ1570のみが、一般性を欠くことなく説明を簡単にするために論じられることにも留意されたい。
【0155】
コード化メディアビットストリームは、デコーダ1570によってさらに処理することができ、デコーダの出力は、1つまたは複数の非圧縮メディアストリームである。最後に、レンダラ1590は、例えば、ラウドスピーカまたはディスプレイにより非圧縮メディアストリームを再生することができる。レシーバ1560、記録ストレージ1570、デコーダ1570、およびレンダラ1590は、同じ物理デバイスに存在してもよく、または別個のデバイスに含まれてもよい。
【0156】
センダ1540および/またはゲートウェイ1550は、例えば、360度のビデオコンテンツの異なるビューポート間の切替え、ビュー切替え、ビットレート適合、および/または高速起動のために異なる表現間の切替えを実行するように構成することができ、および/またはセンダ1540および/またはゲートウェイ1550は、送信される表現を選択するように構成することができる。異なる表現間の切替えは、レシーバ1560の要求にまたはビットストリームが搬送されるネットワークのスループットなどの一般の条件に応答することなどの多くの理由で行うことができる。言い換えれば、レシーバ1560は、表現間の切替えを開始することができる。レシーバからの要求は、例えば、以前と違う表現によるセグメントまたはサブセグメントの要求、送信されたスケーラビリティレイヤおよび/またはサブレイヤの変更の要求、または以前のものと比較して異なる機能を有するレンダリングデバイスへの変更であり得る。セグメントの要求は、HTTP GET要求であり得る。サブセグメントの要求は、バイト範囲をもつHTTP GET要求であり得る。追加としてまたは代替として、ビットレート調節またはビットレート適合は、例えば、ストリーミングサービスにおいていわゆる高速起動を提供するために使用することができ、送信されるストリームのビットレートは、再生を直ちに開始するために、および時折のパケット遅延および/または再送信を許容するバッファ占有レベルを達成するために、ストリーミングの開始またはランダムアクセスの後のチャネルビットレートよりも低い。ビットレート適合は、多数の表現またはレイヤアップ切替えと表現またはレイヤダウン切替え操作とが様々な順序で行われることを含むことができる。
【0157】
デコーダ1580は、例えば、360度のビデオコンテンツの異なるビューポート間の切替え、ビュー切替え、ビットレート適合、および/または高速起動のために異なる表現間の切替えを実行するように構成することができ、および/またはデコーダ1580は、送信された表現を選択するように構成することができる。異なる表現間の切替えは、より高速のデコーディング動作を達成すること、または送信されたビットストリームを、例えばビットレートに関して、ビットストリームが搬送されるネットワークのスループットなどの一般の条件に適合させることなどの多くの理由で行うことができる。例えば、デコーダ1580を含むデバイスがマルチタスキングであり、ビデオビットストリームのデコーディング以外の目的でコンピューティングリソースを使用する場合、より速いデコーディング動作が必要とされることがある。別の例では、コンテンツが通常の再生速度よりも速いペースで、例えば、従来の実時間再生レートの2倍または3倍の速さで再生されるとき、より速いデコーディング動作が必要とされることがある。
【0158】
上述では、いくつかの実施形態は、HEVCの用語を参照しておよび/またはそれを使用して説明された。実施形態は、同様に、任意のビデオエンコーダおよび/またはビデオデコーダを用いて実現され得ることを理解する必要がある。
【0159】
上述では、例示の実施形態がエンコーダを参照して説明された場合、結果として生じるビットストリームおよびデコーダは、対応する要素をそれら中に有することができることを理解する必要がある。同様に、例示の実施形態がデコーダを参照して説明された場合、エンコーダが、デコーダによってデコードされるべきビットストリームを生成するための構造および/またはコンピュータプログラムを有することができることを理解する必要がある。例えば、いくつかの実施形態は、エンコーディングの一部として予測ブロックを生成することに関連して説明された。実施形態は、水平オフセットおよび垂直オフセットなどのコーディングパラメータがエンコーダによって決定されたよりもビットストリームからデコードされるという差を伴って、デコーディングの一部として予測ブロックを生成することによって同様に実現することができる。
【0160】
上述の本発明の実施形態は、必要とされるプロセスの理解を助けるために別個のエンコーダ装置およびデコーダ装置の点からコーデックを説明している。しかしながら、装置、構造、および動作は、単一のエンコーダ-デコーダ装置/構造/動作として実施されてもよいことを理解されよう。さらに、コーダーおよびデコーダは、一部またはすべての共通要素を共有することができることが可能である。
【0161】
上述の例は、本発明の実施形態が電子デバイス内のコーデック内で動作することを説明しているが、特許請求の範囲に定義されるような本発明は任意のビデオコーデックの一部として実施されてもよいことを理解されよう。したがって、例えば、本発明の実施形態は、固定または有線通信経路を介してビデオコーディングを実施することができるビデオコーデックで実施され得る。
【0162】
したがって、ユーザ機器は、上述の本発明の実施形態で説明されたものなどのビデオコーデックを含むことができる。ユーザ機器という用語は、携帯電話、ポータブルデータ処理デバイス、または携帯ウェブブラウザなどの任意の適切なタイプの無線ユーザ機器を包含するように意図されることを理解されたい
【0163】
さらに、公衆陸上移動通信網(PLMN)の要素は、上述のようなビデオコーデックを含むことができる。
【0164】
一般に、本発明の様々な実施形態は、ハードウェアまたは専用回路、ソフトウェア、論理、またはそれらの任意の組合せで実施することができる。例えば、ある態様は、ハードウェアで実施することができ、一方、他の態様は、コントローラ、マイクロプロセッサ、または他のコンピューティングデバイスによって実行され得るファームウェアまたはソフトウェアで実施することができるが、本発明はそれらに限定されない。本発明の様々な態様がブロック図、流れ図、または他の図形表現の使用として図示および説明され得るが、本明細書に記載されたこれらのブロック、装置、システム、技法、または方法は、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、専用回路もしくは論理、汎用ハードウェアもしくはコントローラもしくは他のコンピューティングデバイス、またはそれらの組合せで実施することができることをよく理解されよう。
【0165】
本発明の実施形態は、プロセッサエンティティ内などの携帯デバイスのデータプロセッサによって実行可能なコンピュータソフトウェアによって、またはハードウェアによって、またはソフトウェアとハードウェアの組合せによって実施され得る。さらに、これに関して、図におけるような論理フローの任意のブロックが、プログラムステップ、または相互接続されたロジック回路、ブロック、および機能、またはプログラムステップとロジック回路、ブロック、および機能との組合せを表すことができることに留意されたい。ソフトウェアは、メモリチップ、またはプロセッサ内に実装されたメモリブロックなどの物理媒体、ハードディスクまたはフロッピーディスクなどの磁気媒体、および例えばDVD、およびそのデータ変形のCDなどの光学媒体に格納され得る。
【0166】
メモリは、ローカル技術環境に適する任意のタイプのものとすることができ、半導体ベースメモリデバイス、磁気メモリデバイスおよびシステム、光メモリデバイスおよびシステム、固定メモリおよびリムーバブルメモリなどの任意の適切なデータストレージ技術を使用して実装されてもよい。データプロセッサは、ローカル技術環境に適する任意のタイプのものとすることができ、非限定の例として、汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、およびマルチコアプロセッサアーキテクチャに基づくプロセッサのうちの1つまたは複数を含むことができる。
【0167】
本発明の実施形態は、集積回路モジュールなどの様々な構成要素で実践することができる。集積回路の設計は、概して、高度に自動化されたプロセスである。論理レベル設計を、半導体基板にエッチングおよび形成される準備ができた半導体回路設計に変換するために利用可能な複雑で強力なソフトウェアツールが利用可能である。
【0168】
カリフォルニア州マウンテンビューのSynopsys, Inc.およびカリフォルニア州サンノゼのCadence Designによって提供されるプログラムは、よく確立された設計ルールならびに事前格納された設計モジュールのライブラリを使用して、半導体チップ上で自動的に導体をルーティングし構成要素を配置する。半導体回路の設計が完了した後、標準電子フォーマット(例えば、Opus、GDSIIなど)の結果として生じた設計は、製造のために半導体製造設備または「fab」に送られ得る。
【0169】
前述の説明は、例示的および非限定的な例として、本発明の例示的な実施形態の完全で有益な説明を提供した。しかしながら、前述の説明に鑑みて、添付の図面および添付の特許請求の範囲とともに読むとき、様々な変更および改変が当業者には明らかになるであろう。しかしながら、本発明の教示のすべてのそのようなおよび類似する変更は、依然として、本発明の範囲内にあることになる。
図1
図3
図4
図5
図6
図7
図8
図9
図10
図12
【図 】
【図 】
【図 】