(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-15
(45)【発行日】2023-09-26
(54)【発明の名称】HDRコンテンツをデブロックするためのシステムおよび方法
(51)【国際特許分類】
H04N 19/86 20140101AFI20230919BHJP
H04N 19/80 20140101ALI20230919BHJP
【FI】
H04N19/86
H04N19/80
(21)【出願番号】P 2020552786
(86)(22)【出願日】2019-03-29
(86)【国際出願番号】 US2019024936
(87)【国際公開番号】W WO2019191646
(87)【国際公開日】2019-10-03
【審査請求日】2022-02-14
(32)【優先日】2018-03-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】514188564
【氏名又は名称】アリス エンタープライジズ エルエルシー
【氏名又は名称原語表記】ARRIS ENTERPRISES LLC
【住所又は居所原語表記】3871 Lakefield Drive, Suwanee, GA 30024, U.S.A.
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】バイロン、デイビッド エム.
(72)【発明者】
【氏名】ルトラ、アジェイ
【審査官】田中 純一
(56)【参考文献】
【文献】国際公開第2018/097299(WO,A1)
【文献】特表2014-531169(JP,A)
【文献】特開2013-058935(JP,A)
【文献】特開2010-288079(JP,A)
【文献】米国特許出願公開第2018/0352264(US,A1)
【文献】大久保 榮, et al.,6.1 デブロッキングフィルタ,H.265/HEVC教科書,初版,株式会社インプレスジャパン,2013年10月21日,pp, 114,150-157,CSDB
【文献】Xiang Li, et al.,Multi-Type-Tree,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 4th Meeting: Chengdu, CN, 15-21 October 2016,JVET-D0117r1,URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/4_Chengdu/wg11/JVET-D0117-v3.zip,2016年10月20日,pp. 1~3,学術文献等DB
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオをデコードする方法であって、
(a)エンコードされたビデオのビットストリームを受信することと、
(b)前記エンコードされたビデオの前記ビットストリームをデコードすることと、
(c)エンコードされた前記ビットストリーム内の量子化によりコーディングされた長方形のコーディングユニットを決定することであって、前記長方形のコーディングユニットは、四分木の区分構造のリーフノードであり、ノードは、四分木の区分により区分されて4つの同一のサイズを有する四分木リーフノードを規定し、得られた前記四分木リーフノードのうちの1つは、二分木区分によりさらに区分されて、前記長方形のコーディングユニットとして長方形のリーフノードを規定し、前記長方形のコーディングユニットでは、輝度成分のブロックおよび色差成分のブロックがコーディングされ、前記長方形のコーディングユニットは幅および高さを有し、前記幅と前記高さとは互いに異なり、前記長方形のコーディングユニットは予測ユニットでも変換ユニットでもない、決定することと、
(d)前記長方形のコーディングユニットについて、前記高さの全体または前記幅の全体に沿って前記長方形のコーディングユニットの鉛直方向の境界または水平方向の境界に関連付けられた画素の強度情報を決定することと、
(e)前記長方形のコーディングユニットに関連付けられた前記強度情報に少なくとも部分的に基づいて、前記長方形のコーディングユニットにデブロッキングフィルタリングを適用することであって、適用された前記デブロッキングフィルタリングは、量子化パラメータのオフセットに基づいて選択的に修正され境界フィルタリングを指定するフィルタリングパラメータβおよびtcに基づいており、前記オフセットは、前記境界に関連付けられた画素の決定された前記強度情報に少なくとも部分的に基づいている、適用することと、を含み、
(f)より大きな前記オフセットによって、当該より大きな前記オフセットがない場合と比較して、より強いフィルタリングが得られ、
(g)前記オフセットは、互いに異なる3つ以上の量子化パラメータの前記オフセットを含み、
(h)前記デブロッキングフィルタリングは、クリッピングにさらに基づいており、
(i)前記クリッピングは、前記量子化パラメータに基づいている、ビデオをデコードする方法。
【請求項2】
プロセッサがビットストリームを提供することを含む方法であって、
(a)ビデオをビットストリームとしてエンコードすることと、
(b)前記ビットストリーム内に長方形のコーディングユニットを含むことと、を含み、
(c)前記エンコードすることは、エンコードされた前記ビットストリーム内の量子化によりコーディングされた前記長方形のコーディングユニットを決定することであって、前記長方形のコーディングユニットは、四分木の区分構造のリーフノードであり、ノードは、四分木の区分により区分されて4つの同一のサイズを有する四分木リーフノードを規定し、得られた前記四分木リーフノードのうちの1つは、二分木区分によりさらに区分されて、前記長方形のコーディングユニットとして長方形のリーフノードを規定し、前記長方形のコーディングユニットでは、輝度成分のブロックおよび色差成分のブロックがコーディングされ、前記長方形のコーディングユニットは幅および高さを有し、前記幅と前記高さとは互いに異なり、前記長方形のコーディングユニットは予測ユニットでも変換ユニットでもない、決定することに基づいており、
(d)前記エンコードすることは、前記長方形のコーディングユニットについて、前記高さの全体または前記幅の全体に沿って前記長方形のコーディングユニットの鉛直方向の境界または水平方向の境界に関連付けられた画素の強度情報を決定することに基づいており、
(e)前記エンコードすることは、前記コーディングユニットに関連付けられた前記強度情報に少なくとも部分的に基づいて、前記コーディングユニットにデブロッキングフィルタリングを適用することであって、適用された前記デブロッキングフィルタリングは、量子化パラメータのオフセットに基づいて選択的に修正され境界フィルタリングを指定するフィルタリングパラメータβおよびtcに基づいており、前記オフセットは、前記境界に関連付けられた画素の決定された前記強度情報に少なくとも部分的に基づいている、適用することに基づいており、
(f)前記エンコードすることは、より大きな前記オフセットによって、当該より大きな前記オフセットがない場合と比較して、より強いフィルタリングが得られることに基づいており、
(g)前記エンコードすることは、前記オフセットが互いに異なる3つ以上の量子化パラメータの前記オフセットを含むことに基づいており、
(h)前記エンコードすることは、前記デブロッキングフィルタリングがクリッピングにさらに基づいていることに基づいており、
(i)前記エンコードすることは、前記クリッピングが前記量子化パラメータに基づいていることに基づいている、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオコーディングの分野、特にHDRコンテンツを効率的かつ効果的にデブロッキングおよびフィルタリングするためのシステムおよび方法に関する。
【背景技術】
【0002】
本出願は、米国特許法§119(e)に基づき、2018年3月29日付けで提出された、先の出願をなす米国仮出願番号第62/650,252号の優先権を主張するものであり、この出願の全体が参照によって本明細書に援用される。
【0003】
進化するビデオコーディング規格の技術的改良は、コーディング効率の向上の傾向を示しており、これにより、より高いビットレート、より高い解像度、およびより良好なビデオ品質が可能とされている。共同ビデオ調査チーム(Joint Video Exploration Team)は、JVETと称される新たなビデオコーディング方式を開発し、Versatile Video Coding(VVC)と称されるより新たなビデオコーディング方式を開発中であり、ここで、2018年10月1日付けで刊行されたJVETによるVersatile Video Coding(Draft2)と題する規格のドラフト2におけるVVC第7版の完全な内容は、参照により本明細書に援用される。HEVC(High Efficiency Video Coding)などの他のビデオコーディング方式と同様に、JVETおよびVVCの両方は、ブロックベースのハイブリッド型空間的時間的予測コーディング方式である。しかしながら、HEVCと比較して、JVETおよびVVCは、ビットストリーム構造、構文、制約、およびデコードされたピクチャの生成のためのマッピングに対する多くの変更を含む。JVETは、Joint Exploration Model(JEM)のエンコーダおよびデコーダに実装されたが、VVCは、2020年初頭までは実装されないと予想されている。
【0004】
現在のビデオコーディング方式は、画像強度を考慮に入れずに、デブロッキングおよびフィルタリングを実装し、結果として、すべてのコンテンツにわたって均一な方法でコンテンツのフィルタリングを実装する。しかしながら、データは、コンテンツの強度が、表示の問題を減少させるために望ましいか、または必要なフィルタリングの程度もしくはレベルに影響を与え得ることを明らかにする。したがって、必要なものは、コーディングユニットの画素強度に少なくとも部分的に基づくデブロッキングのシステムおよび方法である。
【図面の簡単な説明】
【0005】
【
図1】フレームを、複数のコーディングツリーユニット(CTU)に配分することを示す。
【
図2a】CTUを、コーディングユニット(CU)へと例示的に区分することを示す。
【
図2b】CTUを、コーディングユニット(CU)へと例示的に区分することを示す。
【
図2c】CTUを、コーディングユニット(CU)へと例示的に区分することを示す。
【
図3】
図2のCU区分に関しての四分木および二分木(QTBT)表現を示す。
【
図4】JVETまたはVVCエンコーダにおけるCUコーディングに関する簡略化されたブロック図を示す。
【
図5】VVCのJVETにおける輝度成分に関する可能なイントラ予測モードを示す。
【
図6】VVCデコーダのJVETにおけるCUコーディングに関する簡略化されたブロック図を示す。
【
図7】HDRエンコーダ/デコーダシステムのブロック図を示す。
【
図8】正規化されたPQ対正規化された強度曲線の一実施形態を示す。
【
図9】JND対正規化された強度曲線の一実施形態を示す。
【
図10】強度に少なくとも部分的に基づく、エンコードシステムのブロック図の実施形態を示す。
【
図11】強度に少なくとも部分的に基づく、デコードシステムのブロック図の一実施形態を示す。
【
図12a】
図10および
図11において説明され、示されているシステムをグラフィカルに表す一連の例示的なβ対QPの曲線およびtc対QPの曲線を示す。
【
図12b】
図10および
図11において説明され、示されているシステムをグラフィカルに表す一連の例示的なβ対QPの曲線およびtc対QPの曲線を示す。
【
図12c】
図10および
図11において説明され、示されているシステムをグラフィカルに表す一連の例示的なβ対QPの曲線およびtc対QPの曲線を示す。
【
図13】テンプレートマッチングのための可変テンプレートサイズを提供するように適合して構成されたコンピュータシステムの一実施形態を示す。
【
図14】テンプレートマッチングのための可変テンプレートサイズを提供するように適合して構成されたビデオエンコーダ/デコーダの一実施形態を示す。
【発明を実施するための形態】
【0006】
1つ以上のコンピュータのシステムは、動作時にはシステムに行為を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせが、システムにインストールされていることにより、特定の操作または行為を実行するように構成することができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されたときには装置に行為を実行させる命令を含むことにより、特定の操作または行為を実行するように構成することができる。かかる概括的な態様は、コーディングユニットを決定することと、上記コーディングユニットの境界に関連付けられた画素の強度情報を決定することと、エンコードする前に、上記コーディングユニットに関連付けられた強度情報に少なくとも部分的に基づいて、上記コーディングユニットにデブロッキングフィルタリングを適用することと、伝送用に上記コーディングユニットをエンコードすることと、を含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、および各々が方法の行為を実行するように構成された、1つ以上のコンピュータストレージデバイスに記録されたコンピュータプログラムを含む。
【0007】
実装例はまた、以下の特徴のうちの1つ以上を含み得る。ビデオをエンコードする方法であって、より強いデブロッキングフィルタリングが、閾値の値よりも大きい値を有する強度情報に関連付けられたコーディングユニットに適用される、ビデオをエンコードする方法。ビデオをエンコードする方法であって、上記閾値の値が、所定の値である、ビデオをエンコードする方法。ビデオをデコードする方法であって、上記コーディングユニットに近接した隣接するコーディングユニットを識別することと、上記隣接するコーディングユニットの境界に関連付けられた画素の強度情報を決定することと、上記コーディングユニットの境界に関連付けられた画素の上記強度情報と、上記隣接するコーディングユニットに関連付けられた画素の上記強度情報とを比較することと、をさらに含み、上記フィルタリングが、上記コーディングユニットの境界に関連付けられた画素の上記強度情報と、上記隣接するコーディングユニットに関連付けられた画素の上記強度情報との上記比較に少なくとも部分的に基づく、ビデオをデコードする方法。ビデオをエンコードする方法であって、より強いデブロッキングフィルタリングが、閾値の値よりも大きい値を有する強度情報に関連付けられたコーディングユニットに適用される、ビデオをエンコードする方法。ビデオをエンコードする方法であって、上記閾値の値が、所定の値である、ビデオをエンコードする方法。記載される技術の実装例としては、コンピュータアクセス可能な媒体についての、ハードウェア、方法もしくはプロセス、またはコンピュータソフトウェアを挙げることができる。
【0008】
概括的な態様の1つは、ビデオをデコードする方法であって、エンコードされたビデオのビットストリームを受信することと、上記ビットストリームをデコードすることと、コーディングユニットを決定することと、上記コーディングユニットの境界に関連付けられた画素の強度情報を決定することと、エンコードする前に、上記コーディングユニットに関連付けられた強度情報に少なくとも部分的に基づいて、上記コーディングユニットにデブロッキングフィルタリングを適用することと、伝送用に上記コーディングユニットをエンコードすることと、を含み得る。この態様の他の実施形態は、対応するコンピュータシステム、装置、および各々が方法の行為を実行するように構成された、1つ以上のコンピュータストレージデバイスに記録されたコンピュータプログラムを含む。
【0009】
実装例はまた、デコードプロセスに対して同じまたは類似の特徴を含み得る。さらに、記載される技術の実装例としては、コンピュータアクセス可能な媒体についての、ハードウェア、方法もしくはプロセス、またはコンピュータソフトウェアを挙げることができる。
【0010】
本発明のさらなる詳細は、添付図面を活用して説明する。
図1は、フレームを、複数のコーディングツリーユニット(CTU)100に配分することを示す。フレームは、ビデオシーケンス内の画像とすることができる。フレームは、マトリクス、あるいは一組のマトリクスを含むことができ、画素値は、画像内の強度測定値を表す。したがって、一組のこれらのマトリクスは、ビデオシーケンスを生成することができる。画素値は、画素を3つのチャネルに配分したフルカラービデオコーディングにおいて、色と輝度とを表すように規定することができる。例えば、YCbCr色空間においては、画素は、画像のグレーレベルの強度を表す輝度値Yと、グレーから青および赤へと色がどの程度相違しているかを表す2つの色差値CbおよびCrと、を有することができる。他の実施形態においては、画素値は、異なる色空間または色モデルにおける値によって表すことができる。ビデオの解像度は、フレーム内の画素数を決定することができる。より高い解像度は、画素がより多いこと、および、画像の精細度がより良好であることを意味し得るが、帯域幅、ストレージ、および伝送要件も、より高いものとなり得る。
【0011】
ビデオシーケンスのフレームは、JVETを使用して、エンコードおよびデコードすることができる。JVETは、共同ビデオ調査チームが開発しているビデオコーディング方式である。JVETのバージョンは、JEM(Joint Exploration Model)のエンコーダおよびデコーダに実装されている。HEVC(High Efficiency Video Coding)などの他のビデオコーディング方式と同様に、JVETは、ブロックベースのハイブリッド型空間的時間的予測コーディング方式である。JVETを使用したコーディング時には、フレームは、
図1に示すように、最初に、CTU100と称される正方形のブロックに配分される。例えば、CTU100は、128×128画素のブロックとすることができる。
【0012】
図2aは、CTU100を、CU102へと例示的に区分することを示す。フレーム内の各CTU100は、1つ以上のCU(コーディングユニット)102へと区分することができる。CU102は、以下において説明するように、予測および変換のために使用することができる。HEVCとは異なり、JVETにおいては、CU102は、長方形または正方形とすることができ、予測ユニットまたは変換ユニットへとさらに区分することなく、コード化することができる。CU102は、それらのルートCTU100と同じ大きさのものとすることができるか、あるいは、4×4ブロックといったように、ルートCTU100よりも小さく細分化したものとすることができる。
【0013】
JVETにおいては、CTU100を、四分木および二分木(QTBT)方式に従ってCU102へと区分することができ、CTU100は、四分木に従って再帰的に正方形ブロックへと分割することができ、その後、それらの正方形ブロックは、二分木に従って水平方向に、または鉛直方向に再帰的に分割することができる。CTUサイズ、四分木リーフノードおよび二分木リーフノードに関する最小サイズ、二分木ルートノードに関する最大サイズ、および二分木に関する最大深度など、QTBTに従って分割を制御するように、パラメータを設定することができる。VVCにおいては、CTU100は、三値分割を利用することによっても、CUへと区分することができる。
非限定的な例として、
図2aは、CU102へと区分されたCTU100を示しており、実線は、四分木分割を示し、破線は、二分木分割を示している。図示のように、二本木分割は、水平方向分割および鉛直方向分割を可能とし、これにより、CTUの構造およびCUへの細分化を規定することができる。
図2bおよび
図2cは、CUの三分割という、代替的な非限定的な例を示しており、この場合、CUの細分化は均等なものではない。
【0014】
図3は、
図2の区分に関するQTBT表現を示す。四分木ルートノードは、CTU100を表し、四分木部分内の各子ノードは、親正方形ブロックから分割された4つの正方形ブロックのうちの1つを表している。四分木リーフノードによって表された正方形ブロックは、その後、二分木を使用して、ゼロ回以上にわたって配分することができ、四分木リーフノードは、二分木のルートノードである。二本木部分の各レベルにおいては、ブロックは、鉛直方向または水平方向のいずれかに配分することができる。「0」に設定されたフラグは、ブロックが水平方向に分割されることを示し、「1」に設定されたフラグは、ブロックが鉛直方向に分割されることを示す。
【0015】
四分木分割および二分木分割の後に、QTBTのリーフノードによって表されるブロックは、インター予測またはイントラ予測を使用したコーディングなど、コード化されるべき最終的なCU102を表す。インター予測によってコード化されたスライスまたはフルフレームの場合には、異なる区分構造を、輝度成分および色差成分に関して使用することができる。例えば、インタースライスの場合には、CU102は、1つの輝度CBおよび2つの色差CBなどの、異なる色成分のためのコーディングブロック(CB)を有することができる。イントラ予測によってコード化されたスライスまたはフルフレームの場合には、区分構造は、輝度成分と色差成分とに関して同じものとすることができる。
【0016】
図4は、JVETエンコーダにおけるCUコーディングに関する簡略化されたブロック図を示す。ビデオコーディングの主要なステージは、上述したようなCU102を識別するための区分と、それに続く404または406における予測を使用したCU102のエンコードと、408における残差CU410の生成と、412における変換と、416における量子化と、420におけるエントロピーコーディングと、を含む。
図4に示すエンコーダおよびエンコードプロセスは、また、以下においてより詳細に説明するデコードプロセスを含む。
【0017】
現在のCU102が与えられると、エンコーダは、404におけるイントラ予測を使用して空間的に、または406におけるインター予測を使用して時間的に、のいずれかで、予測CU402を取得することができる。予測コーディングの基本的な考え方は、元の信号と元の信号に対する予測との間の差分信号または残差信号を送信することである。受信側においては、以下において説明するように、残差と予測とを加算することによって、元の信号を再構成することができる。差分信号が元の信号よりも相関が小さいため、送信のために必要なビットは少なくなる。
【0018】
ピクチャ全体またはピクチャの一部など、イントラ予測されたCUによって全体的にコード化されたスライスは、他のスライスを参照することなくデコードされ得るIスライスとすることができ、そのため、デコードを開始し得る可能ポイントとすることができる。少なくともいくつかのインター予測されたCUによってコード化されたスライスは、1つ以上の参照ピクチャに基づいてデコードされ得る予測(P)スライスまたは双予測(B)スライスとすることができる。Pスライスは、以前にコード化されたスライスを使用したイントラ予測およびインター予測を使用することができる。例えば、Pスライスは、インター予測を使用することによって、Iスライスよりもさらに圧縮し得るが、それらをコード化するためには、以前にコード化されたスライスのコーディングを必要とする。Bスライスは、2つの異なるフレームからの補間予測を使用したイントラ予測またはインター予測を使用して、そのコーディングのために、以前のスライスおよび/または後続のスライスからのデータを使用することができ、これにより、動き推定プロセスの精度が向上する。いくつかの場合においては、PスライスおよびBスライスは、同じスライスの他の部分からのデータが使用されているブロック内コピーを使用して、一緒にあるいは交互的に、エンコードすることができる。
【0019】
以下において説明するように、イントラ予測またはインター予測は、隣接するCU102または参照ピクチャ内のCU102などの以前にコード化されたCU102からの再構成されたCU434に基づいて、実行することができる。
【0020】
CU102が404においてイントラ予測を使用して空間的にコード化されるときには、ピクチャ内の隣接するCU102からのサンプルに基づいてCU102の画素値を最良に予測するイントラ予測モードを見出すことができる。
【0021】
CUの輝度成分をコーディングするときには、エンコーダは、候補となるイントラ予測モードのリストを生成することができる。HEVCは、輝度成分に関して35個の可能なイントラ予測モードを有していたが、JVETにおいては、輝度成分に関して67個の可能なイントラ予測モードがあり、VVCにおいては、85個の予測モードがある。これらは、隣接画素から生成された値からなる三次元平面を使用する平面モードと、隣接画素から平均化された値を使用するDCモードと、
図5に示すような、実線で示す方向に沿って隣接画素からコピーされた値を使用する65個の指向性モードと、非正方形ブロックで使用され得る18個の広角予測モードと、を含む。
【0022】
CUの輝度成分に関する候補イントラ予測モードのリストを生成するときには、リスト上の候補モードの数は、CUのサイズに依存することができる。候補リストは、最も低いSATD(絶対変換差の合計)コストを有したHEVCの35個のモードからなる部分集合と、HEVCモードから見出された候補に隣接したJVETに関して追加された新たな指向性モードと、以前にコード化された隣接ブロックに関して使用されたイントラ予測モードに基づいてならびにデフォルトモードのリストに基づいて識別された、CU102に関しての一組をなす6個の最も可能性の高いモード(MPM)と、を含むことができる。
【0023】
CUの色差成分をコーディングするときにもまた、候補イントラ予測モードのリストを生成することができる。候補モードのリストは、輝度サンプルからの交差成分線形モデル投影を使用して生成されたモードと、色差ブロックの特定の配列された位置における輝度CBに関して見出されたイントラ予測モードと、隣接ブロックに関して以前に見出された色差予測モードと、を含むことができる。エンコーダは、最も小さなレート歪みコストを有したリスト上において候補モードを見出し、CUの輝度成分および色差成分をコーディングするときにこれらのイントラ予測モードを使用することができる。構文は、各CU102をコード化するために使用されたイントラ予測モードを示すビットストリーム内においてコード化することができる。
【0024】
CU102に関する最良のイントラ予測モードが選択された後に、エンコーダは、それらのモードを使用して予測CU402を生成することができる。選択したモードが指向性モードであるときには、4タップフィルタを使用することにより、指向性の精度を向上させることができる。予測ブロックの上側または左側における列または行は、2タップフィルタまたは3タップフィルタなどの境界予測フィルタを使用して調整することができる。
【0025】
予測CU402は、隣接するブロックのフィルタリング済みサンプルに基づいて生成された予測CU402を、隣接するブロックの未フィルタリングサンプルを使用して調整する位置依存性イントラ予測組み合わせ(PDPC)プロセスによって、あるいは参照サンプルを処理するための3タップまたは5タップのローパスフィルタを使用した適応型参照サンプル平滑化によって、さらに平滑化することができる。
【0026】
CU102が406においてインター予測を使用して時間的にコード化されるときには、CU102の画素値を最良に予測する参照ピクチャ内のサンプルを指す一組の動きベクトル(MV)を見出すことができる。インター予測は、スライス内の画素ブロックの変位を表すことにより、スライス間の時間的冗長性を利用する。変位は、動き補償と称されるプロセスを通じて、以前のスライスまたは後続のスライスの画素値に従って決定される。特定の参照ピクチャに対しての画素変位を示す動きベクトルおよび関連する参照インデックスは、元の画素と動き補償された画素との間の残差とともに、ビットストリーム内においてデコーダに対して提供することができる。デコーダは、残差と、通知された動きベクトルと、参照インデックスと、を使用することにより、再構成されたスライス内において画素ブロックを再構成することができる。
【0027】
JVETにおいては、動きベクトルの精度は、1/16画素で格納することができ、動きベクトルとCUの予測動きベクトルとの間の差は、4分の1画素解像度または整数画素解像度のいずれかでコード化することができる。
【0028】
JVETにおいては、高度な時間的動きベクトル予測(ATMVP)、空間的時間的動きベクトル予測(STMVP)、アフィン動き補償予測、パターン一致動きベクトル導出(PMMVD)、および/または、双方向オプティカルフロー(BIO)などの技術を使用して、CU102内における複数のサブCUに関する動きベクトルを見出すことができる。
【0029】
ATMVPを使用して、エンコーダは、参照ピクチャ内の対応するブロックを指すCU102に関する時間的ベクトルを見出すことができる。時間的ベクトルは、以前にコード化された隣接するCU102に関して見出された動きベクトルおよび参照ピクチャに基づいて見出すことができる。CU102全体の時間的ベクトルによって指された参照ブロックを使用して、CU102内における各サブCUに関して動きベクトルを見出すことができる。
【0030】
STMVPは、インター予測を使用して以前にコード化された隣接するブロックに関して見出された動きベクトルを時間的ベクトルとともにスケーリングして平均化することにより、サブCUの動きベクトルを見出すことができる。
【0031】
アフィン動き補償予測を使用することにより、ブロックの上側コーナーに関して見出された2つの制御動きベクトルに基づいて、ブロック内の各サブCUに関する動きベクトルのフィールドを予測することができる。例えば、サブCUに関する動きベクトルは、CU102内における各4×4ブロックに関して見出された上側コーナー動きベクトルに基づいて、導出することができる。
【0032】
PMMVDは、バイラテラルマッチングまたはテンプレートマッチングを使用して、現在のCU102の初期的動きベクトルを見出すことができる。バイラテラルマッチングにおいては、現在のCU102と、動きの軌跡に沿った2つの異なる参照ピクチャ内の参照ブロックと、を確認することができ、一方、テンプレートマッチングにおいては、現在のCU102内における対応するブロックと、テンプレートによって識別された参照ピクチャと、を確認することができる。その後、CU102に関して見出された初期的動きベクトルは、各サブCUに関して個別に精緻化することができる。
【0033】
BIOは、以前の参照ピクチャと後続の参照ピクチャとに基づいて双方向性予測によってインター予測を実行するときに使用することができ、2つの参照ピクチャ間の差の勾配に基づいてサブCUに関する動きベクトルを見出すことができる。
【0034】
いくつかの場合、CUレベルにおいて局所的な照明補償(LIC)を使用することができ、これにより、現在のCU102に隣接したサンプルに基づいて、また候補動きベクトルによって識別された参照ブロックに隣接した対応サンプルに基づいて、スケーリング因子パラメータとオフセットパラメータとの値を見出すことができる。JVETにおいては、LICパラメータを変更し、CUレベルにおいて通知することができる。
【0035】
上記の方法のいくつかに関しては、CUのサブCUの各々に関して見出された動きベクトルを、CUレベルでデコーダに対して通知することができる。PMMVDおよびBIOなどの他の方法に関しては、オーバーヘッドを節約するためにビットストリーム内において動き情報は通知されず、デコーダは、同じプロセスを通して動きベクトルを導出することができる。
【0036】
CU102に関する動きベクトルが見出された後には、エンコーダは、それらの動きベクトルを使用して、予測CU402を生成することができる。いくつかの場合においては、個々のサブCUに関する動きベクトルが見出されたときに、それらの動きベクトルを、1つ以上の隣接サブCUに関して以前に見出された動きベクトルと組み合わせることによって予測CU402を生成する際に、オーバーラップブロック動き補償(OBMC)を使用することができる。
【0037】
双方向性予測を使用する場合には、JVETは、デコーダ側動きベクトル精緻化(DMVR)を使用することにより、動きベクトルを見出すことができる。DMVRにより、双方向性テンプレートマッチングプロセスを使用して、双方向性予測に関して見出された2つの動きベクトルに基づいて、動きベクトルを見出すことができる。DMVRにおいては、2つの動きベクトルのそれぞれによって生成された予測CU402の重み付き組み合わせを見出すことができ、2つの動きベクトルを、組み合わされた予測CU402を最適に指す新たな動きベクトルへと置き換えることにより、精緻化することができる。2つの精緻化された動きベクトルを使用することにより、最終的な予測CU402を生成することができる。
【0038】
408においては、予測CU402が、上述したように、404におけるイントラ予測によって、あるいは406におけるインター予測によって見出された後に、エンコーダは、現在のCU102から予測CU402を減算して、残差CU410を見出すことができる。
【0039】
エンコーダは、412において1つ以上の変換操作を使用することにより、残差CU410を、変換ドメイン内において残差CU410を表現する変換係数414へと変換することができ、例えば、離散コサインブロック変換(DCT変換)を使用することにより、データを変換ドメインへと変換することができる。JVETは、DCT-II、DST-VII、DST-VII、DCT-VIII、DST-I、DCT-V操作を含めて、HEVCよりも多くのタイプの変換操作を可能とする。許容された変換操作は、部分集合へとグループ化することができ、どの部分集合が使用されたか、およびそれらの部分集合内におけるどの特定の操作が使用されたか、に関する指標を、エンコーダによって通知することができる。いくつかの場合においては、大きなブロックサイズの変換を使用することにより、特定のサイズよりも大きなCU102内の高周波変換係数をゼロとすることができ、これにより、それらのCU102に関しては、低い周波数の変換係数だけを維持することができる。
【0040】
いくつかの場合においては、モード依存性の非分離型二次変換(MDNSST)を、順方向コア変換後の低周波数変換係数414に対して適用することができる。MDNSST操作は、回転データに基づくハイパーキューブ-ギブンス変換(HyGT)を使用することができる。使用時には、特定のMDNSST操作を識別するインデックス値を、エンコーダによって通知することができる。
【0041】
416においては、エンコーダは、変換係数414を、量子化変換係数416へと、量子化することができる。各係数の量子化は、係数の値を、量子化パラメータ(QP)から導出された量子化ステップによって、除算することによって、計算されてもよい。いくつかの実施形態においては、Qstepは、2(QP-4)/6として規定される。高精度変換係数414を、有限数の可能な値を有した量子化変換係数416へと変換し得るため、量子化は、データ圧縮を支援することができる。したがって、変換係数の量子化は、変換プロセスによって生成されて送信されるビットの量を制限することができる。しかしながら、量子化は、損失の多い操作であり、量子化による損失を回復することはできないが、量子化プロセスは、再構成されたシーケンスの品質と、シーケンスを表現するのに必要な情報量と、の間にトレードオフを提示する。例えば、QP値が低いほど、表現および送信に関して、より多くのデータ量を必要とし得るが、より良好な品質のデコードされたビデオをもたらすことができる。対照的に、QP値が高いと、再構成されたビデオシーケンスの品質が低下し得るが、必要とされるデータ量および帯域幅はより小さい。
【0042】
JVETは、分散ベースの適応型量子化技術を利用することができ、この場合、すべてのCU102が、(フレームのすべてのCU102のコーディングにおいて同じフレームQPを使用することに代えて)そのコーディングプロセスに関して異なる量子化パラメータを使用することができる。分散ベースの適応型量子化技術は、特定のブロックの量子化パラメータを適応的に小さくし、他のブロックでは量子化パラメータを大きくする。あるCU102に関する特定のQPを選択するために、CUの分散を計算する。簡単に言えば、CUの分散がフレームの平均分散よりも大きい場合には、そのCU102に関しては、フレームのQPよりも大きなQPが設定されてもよい。そのCU102が、フレームの平均分散よりも低い分散を提示する場合には、より小さなQPが割り当てられてもよい。
【0043】
420においては、エンコーダは、量子化変換係数418をエントロピーコーディングすることによって、最終的な圧縮ビット422を見出すことができる。エントロピーコーディングは、送信されるべき情報の統計的冗長性を除去することを目的としている。JVETにおいては、統計的冗長性を除去するために確率測定を使用するCABAC(Context Adaptive Binary Arithmetic Coding)を使用することにより、量子化変換係数418をコード化することができる。非ゼロという量子化変換係数418を有したCU102に関しては、量子化変換係数418を、バイナリに変換することができる。バイナリ表現の各ビット(「ビン」)は、その後、コンテキストモデルを使用してエンコードすることができる。CU102は、3つの領域へと分割することができ、各領域は、その領域内の画素に対して使用するための独自の一組のコンテキストモデルを有している。
【0044】
複数のスキャンパスを実行して、ビンをエンコードすることができる。最初の3つのビン(bin0、bin1、およびbin2)をエンコードするパス時には、ビンに対してどのコンテキストモデルを使用するかを示すインデックス値は、テンプレートによって識別された最大で5つの以前にコード化された隣接した量子化変換係数418におけるそのビン位置の合計を見出すことによって、見出すことができる。
【0045】
コンテキストモデルは、ビンの値が「0」または「1」であるという確率に基づくことができる。値がコード化されるにつれて、コンテキストモデル内の確率は、遭遇した「0」値および「1」値の実際の数に基づいて、更新することができる。HEVCは、固定テーブルを使用することにより、新たな各ピクチャに関するコンテキストモデルを再初期化したが、JVETにおいては、新たなインター予測ピクチャに関するコンテキストモデルの確率を、以前にコード化されたインター予測ピクチャのために開発されたコンテキストモデルに基づいて初期化することができる。
【0046】
エンコーダは、残差CU410のエントロピーエンコードされたビット422、選択されたイントラ予測モードまたは動きベクトルなどの予測情報、CU102がQTBT構造に従ってCTU100からどのように区分されたかの指標、および/または、エンコードされたビデオに関する他の情報を含む、ビットストリームを生み出すことができる。以下において説明するように、ビットストリームは、デコーダによってデコードすることができる。
【0047】
最終的な圧縮ビット422を見出すために量子化変換係数418を使用することに加えて、エンコーダはまた、量子化変換係数418を使用することにより、デコーダが再構成されたCU434を生成するために使用するのと同じデコードプロセスに従うことによって、再構成されたCU434を生成することもできる。したがって、変換係数がエンコーダによって計算されて量子化された後には、量子化された変換係数418を、エンコーダのデコードループに対して送信することができる。CUの変換係数の量子化後には、デコードループは、デコードプロセスにおいてデコーダが生成するものと同じ再構成されたCU434を、エンコーダが生成することを可能とする。したがって、エンコーダは、新たなCU102に関するイントラ予測またはインター予測を実行するときに、デコーダが隣接CU102または参照ピクチャに関して使用するのと同じ再構成されたCU434を使用することができる。再構成されたCU102、再構成されたスライス、または完全に再構成されたフレームは、さらなる予測ステージのための参照として機能することができる。
【0048】
再構成された画像に関する画素値を取得するためのエンコーダのデコードループにおいては(また、デコーダにおける同じ操作については、以下を参照されたい)、逆量子化プロセスを実行することができる。フレームを逆量子化するためには、例えば、フレームの各画素に関する量子化値に対して、上述したQstepなどの量子化ステップを乗算することにより、再構成された逆量子化変換係数426を取得することができる。例えば、エンコーダにおける
図4に示すデコードプロセスにおいては、残差CU410の量子化変換係数418は、424において逆量子化することにより、逆量子化変換係数426を見出すことができる。エンコード時にMDNSST操作が実行された場合には、その操作は、逆量子化後に反転させることができる。
【0049】
428においては、逆量子化変換係数426を逆変換することにより、再構成された残差CU430を見出すことができ、例えば、値に対してDCTを適用することにより、再構成された画像を取得することができる。432においては、再構成された残差CU430を、404におけるイントラ予測または406におけるインター予測によって見出された対応する予測CU402に対して、加算することができ、これにより、再構成されたCU434を見出すことができる。
【0050】
436においては、1つ以上のフィルタを、(エンコーダ内における、あるいは以下において説明するようにデコーダ内における)デコーディングプロセス時に、ピクチャレベルまたはCUレベルのいずれかにおいて、再構成されたデータに対して適用することができる。例えば、エンコーダは、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、および/または、適応型ループフィルタ(ALF)、を適用することができる。エンコーダのデコーディングプロセスにおいては、再構成された画像内の潜在的なアーチファクトに対処し得る最適なフィルタパラメータを推定してデコーダに対して送信するためのフィルタを実装することができる。このような改良は、再構成されたビデオの客観的および主観的な品質を向上させる。デブロッキングフィルタリングにおいては、サブCU境界付近の画素を修正することができ、一方、SAOにおいては、CTU100内の画素を、エッジオフセットまたはバンドオフセット分類のいずれかを使用して修正することができる。JVETのALFは、各2×2ブロックに対して、円形対称形状のフィルタを使用することができる。各2×2ブロックに対して使用されるフィルタのサイズおよび同一性の指標を通知することができる。
【0051】
再構成されたピクチャが参照ピクチャである場合には、それらを、406における将来のCU102のインター予測のために、参照バッファ438内に格納することができる。
上記のステップ時に、JVETは、コンテンツ適応型クリッピング操作を使用して、下側クリッピング境界と上側クリッピング境界との間に収まるように色値を調整することができる。クリッピング境界は、スライスごとに変更することができ、境界を識別するパラメータは、ビットストリーム内において通知することができる。
【0052】
図6は、JVETデコーダにおけるCUコーディングに関する簡略化されたブロック図を示す。JVETデコーダは、エンコードされたCU102に関する情報を含むビットストリームを受けることができる。ビットストリームは、QTBT構造に従ってCTU100からピクチャのCU102がどのようにして区分されたかを、イントラ予測モードまたは動きベクトルなどのCU102に関する予測情報を、またエントロピーエンコードされた残差CUを表すビット602を示すことができる。
【0053】
604においては、デコーダは、エンコーダによってビットストリーム内に通知されたCABACコンテキストモデルを使用して、エントロピーエンコードされたビット602をデコードすることができる。デコーダは、エンコーダによって通知されたパラメータを使用することにより、エンコード時に更新されたのと同じ方法で、コンテキストモデルの確率を更新することができる。
【0054】
量子化変換係数606を見出すために604におけるエントロピーエンコーディングを反転させた後に、デコーダは、それらを608において逆量子化して、逆量子化変換係数610を見出すことができる。エンコーディング時にMDNSST操作が実行された場合には、その操作は、逆量子化後にデコーダによって反転させることができる。
【0055】
612においては、逆量子化変換係数610を逆変換することにより、再構成された残差CU614を見出すことができる。616においては、再構成された残差CU614を、622におけるイントラ予測または624におけるインター予測によって見出された対応する予測CU626に対して加算することができ、これにより、再構成されたCU618を見出すことができる。
【0056】
620においては、1つ以上のフィルタを、ピクチャレベルまたはCUレベルのいずれかにおいて、再構成されたデータに対して適用することができる。例えば、デコーダは、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、および/または、適応型ループフィルタ(ALF)を適用することができる。上述したように、エンコーダのデコードループ内に配置されたループ内フィルタを使用することにより、フレームの客観的および主観的な品質を向上させるための最適なフィルタパラメータを推定することができる。これらのパラメータは、エンコーダ内でフィルタリングされて再構成されたフレームと一致するように620において再構成フレームをフィルタリングするために、デコーダに対して送信される。
【0057】
再構成されたCU618を見出して、通知されたフィルタを適用することによって、再構成されたピクチャが生成された後に、デコーダは、再構成されたピクチャを、出力ビデオ628として出力することができる。再構成されたピクチャが参照ピクチャとして使用される場合には、それらは、624における将来のCU102のインター予測のために、参照バッファ630内に格納することができる。
【0058】
図7は、HDRのエンコーディング702およびデコード704のブロック
図700を示す。1つの一般的なHDRビデオ形式は、線形光RGBドメインを使用し、各チャネルは、高ビット深度形式で指定され、非限定的な例として、EXRファイル形式の半精度浮動小数点形式(half-float format)で指定される。現在のビデオ圧縮アルゴリズムはHDRビデオ形式を直接取り扱うことができないため、HDRビデオをエンコードする1つのアプローチはまず、ビデオエンコーダが受け入れ可能な形式に変換することである。次いで、デコーダビデオをHDR形式に再度変換することができる。かかるシステムの一例が
図7に示されており、ここで、エンコード702およびデコード704モジュールは、SDRコンテンツのJVETコーディングについて本明細書に記載のプロセスに対応する。
【0059】
図7の上側のシステムは、入力HDRビデオ形式の、JVETエンコーダ(またはMain10 HEVCエンコーダなど)を使用してエンコードされ得る10ビット4:2:0ビデオ形式への変換例を示す。高ビット深度入力のより低いビット深度への変換を準備するために、入力HDRビデオ内の各RGBチャネルはまず、コーディング伝達関数(TF)706を通過する。次いで、出力R’G’B’が、ビデオコーディングにより好適な色空間Y’CbCr708に変換される。次いで、知覚マッピングがステップ710で実行され、次いで、各チャネルがステップ712で10ビットに量子化される。ステップ712において各チャネルを10ビットへと均一に量子化した後、ステップ714において色差CbおよびCrチャネルが4:2:0形式にサブサンプリングされる。次いで、エンコーダは、例えば、ステップ716においてMain10 HEVCエンコーダを使用して、10ビット4:2:0ビデオを圧縮する。
【0060】
図7の下側のシステムは、入力ビットストリームからの出力HDRビデオを再構成する。1つの実施例では、ビットストリームは、ステップ817でデコードされ、JVETデコーダ(あるいはMain10 HEVCデコーダ、または他の既知の、便利な、および/もしくは所望のデコーダ)は、10ビット4:2:0ビデオを再構成し、再構成されたビデオは、ステップ720で4:4:4形式にアップサンプリングされる。ステップ722での10ビットデータの逆量子化再マッピング後、ステップ724において逆知覚マッピングを適用して、Y’CbCr値を生成する。次いで、Y’CbCrデータをステップ726でR’G’B’色空間に変換することができ、チャネルは、HDRビデオデータが出力される前に、ステップ728で逆コーディングTF操作を受け得る。
【0061】
ブロッキングアーチファクトは、主にブロックベースのビデオコーディングにおける隣接するユニットの独立したコーディングの結果である。それらは、隣接するブロックのイントラコーディングタイプ/インターコーディングタイプが異なる場合、および空間的活動が低い面積では、低いビットレートで発生し、視認可能である傾向がある。その結果、人工的な不連続性または境界が導入されることにより、視覚的なアーチファクトが生じる。
【0062】
HEVC[1]および現在のJVETのものなどのデブロッキングフィルタは、PU/TUまたはCU境界にわたって平滑化またはローパスフィルタリングすることによって視覚的なアーチファクトを減少させることを試みる。いくつかの実施形態では、鉛直方向の境界が最初にフィルタリングされ、次に水平方向の境界がフィルタリングされる。境界の両側の4×4領域で再構成された最大4つの輝度画素値を使用して、境界の両側の最大3つの画素をフィルタリングすることができる。通常のまたは弱いフィルタリングでは、両側の最大2つの画素をフィルタリングすることができ、強いフィルタリングでは、両側の3つの画素がフィルタリングされる。画素をフィルタリングするかどうかの決定は、0、1、または2の境界強度値Bsを生成するために、隣接ブロックのイントラ/インターモードの決定、動き情報、および残差情報に基づいていてもよい。Bs>0の場合、鉛直方向(または水平方向)の境界の両側の4×4領域の最初の行と最後の行(または列)で平滑条件を調べることができる。これらの条件は、所与の境界にわたる傾斜からの偏差がどの程度あるかを決定することができる。概して、偏差が、パラメータβによって指定された閾値よりも小さい場合、デブロッキングフィルタリングを4×4領域全体に適用することができ、大きな偏差は真の境界または意図された境界の存在を示し得るため、デブロッキングフィルタリングは実行されない可能性がある。ベータパラメータは、より大きなQP値がより大きな閾値に対応するように、ブロックQP値の非減少関数である。いくつかの実施形態では、Bs>0および平滑条件が満たされている場合、強いフィルタリングと弱いフィルタリングとの間の決定を、追加の平滑条件、およびQPの非減少関数でもある別のパラメータtcに基づいて行うことができる。概して、かかる領域では不連続性がより視覚的に現れるため、強いフィルタリングがより滑らかな領域に適用される。
【0063】
いくつかの実施形態では、デブロッキングフィルタ操作は、効果的には4タップまたは5タップのフィルタリング操作でるが、入力とフィルタリングされた出力との間の差は最初にクリッピングされ、次いで、入力に再び加算される(または入力から減算される)。クリッピングは過平滑化を制限することを試み、クリッピングレベルはtcおよびQPによって決定され得る。色差デブロッキングについては、ブロックのうちの少なくとも1つがイントラコード化されている場合、4タップフィルタを境界の両側の1つの画素に適用することができる。
【0064】
デブロッキングアーチファクトは、ブロック境界(例えば、CU、予測、変換境界、および/または他のセグメンテーション境界)における不一致から生じる場合がある。これらの差異は、DCレベル、位置合わせ、位相、および/または他のデータにある場合がある。そのため、境界差は、信号に追加されるノイズと考慮され得る。
図7に示されるように、元の入力HDR信号は、コーディングTFおよび逆コーディングTFの両方を通り抜けるが、デブロッキングノイズは逆コーディングTFのみを通り抜ける。従来のSDRデブロッキングアーチファクトは、この追加のTFを考慮せずに開発されており、
図7のデコーダの出力が視認される。HDRの場合、デブロッキングノイズは逆コーディングTFを通り抜け、アーチファクトの可視性を変更することができる。したがって、明るい面積または暗い面積の両方における同じ不連続なジャンプは、逆コーディングTF操作後に、より大きな不連続なジャンプまたはより小さな不連続なジャンプをもたらす可能性がある。
【0065】
PQ、HLG、およびGammaなどの典型的な逆コーディングTF(しばしばEOTFとして知られる)は、それらが単調に強度の関数を増加させるという特性を有し、
図8は、正規化されたPQ EOTFのプロットされた曲線800対強度(I)802を示している。例えば、正規化されたPQ EOTF曲線800が
図8に示されている。PQ EOTF曲線800の勾配は増加しているため、不連続なジャンプは、より明るい面積対より暗い面積においてEOTFによって拡大され、それによって、潜在的にデブロッキングアーチファクトがより視認可能になる。ウェーバーの法則によれば、JND(丁度可知差異)が大きいほど、より明るい面積でのより大きな差異を視認者が許容し得ることが理解される。しかしながら、強度802に対してプロットされたJND902の正規化されたプロット900を示す
図9は、ウェーバーの法則を考慮に入れるだけでも、JNDがPQ EOTFについて高い強度で減少することを示している。
図9は、α=ウェーバーの法則のJND閾値の8%に基づいて計算されており、ピークJNDがPQの広い範囲の閾値に対してあまり敏感ではないと考えられることを示している。実際に、PQのピークJNDは
図8のPQ EOTFの単一勾配の周りで発生すると考えられ、これは、約I=(正規化された)ピーク強度の78%で発生する。代替試験により、HLG EOTFの場合、ピークJND強度はおよそI=(正規化された)強度の50%で発生し、単一勾配はおよそ(正規化された)強度の70%で発生すると考えられることが示されている。
【0066】
この分析および関連する視覚的観察に基づいて、強度に依存するデブロッキングフィルタ操作は性能の向上をもたらすことが明らかになる。すなわち、非限定的な例として、デブロッキングフィルタ係数、適用されたフィルタリングの強度(通常のフィルタリング対弱いフィルタリング)、使用されるかまたは影響を受ける入力画素および出力画素の数、フィルタリングのオン/オフの決定、ならびに他のフィルタリングの基準は、強度によって影響を受け、ひいては、強度に基づいている場合がある。強度は、輝度および/または色差に対するものであってもよいし、非線形または線形の強度のいずれかに基づいていてもよい。いくつかの実施形態では、強度は、CU強度またはブロック境界の周りの隣接する画素などに基づく、局所的な強度に基づいて計算され得る。いくつかの実施形態では、強度は、最大値、最小値、平均値、または隣接する画素の輝度/色差に基づく一部の他の統計値もしくはメトリック値とすることができる。代替の実施形態では、デブロッキングフィルタリングは、シーン、シーケンス、または他のユニット間もしくはユニット内の値ごとの、フレームまたはフレーム群の強度に基づいていてもよい。
【0067】
いくつかの実施形態では、デブロッキング操作を、エンコーダおよび/もしくはデコーダで計算された強度操作に基づいて決定することができるか、またはパラメータ(複数可)をビットストリームでデコーダに送信して、デブロッキング決定またはフィルタリング操作を行う際に使用することができる。パラメータは、CU、スライス、ピクチャ、PPS、SPSレベル、ならびに/または任意の他の既知の、便利な、および/もしくは所望のレベルで送信され得る。
【0068】
強度ベースのデブロッキングをSDRコンテンツに適用することもできるが、強度ベースのデブロッキングは、HDRに適用される逆コーディングTFのために、HDRコンテンツでより大きな影響を受けると予想される。いくつかの実施形態では、デブロッキングは、逆コーディングTF(またはコーディングTF)に基づいていてもよい。TF情報はビットストリームで通知され、デブロッキング操作によって使用され得る。非限定的な例として、(局所的または集合的な)強度がいくつかの閾値よりも大きいかまたは小さいかに基づいて、異なるデブロッキングストラテジーを使用することができ、この閾値はTFに基づいていてもよい。追加的に、いくつかの実施形態では、2つ以上の閾値を識別し、複数のレベルのフィルタリング操作と関連付けることができる。いくつかの実施形態では、例示的なデブロッキングストラテジーとしては、フィルタリング対フィルタリングなし、強いフィルタリング対弱いフィルタリング、および/または様々な強度レベルのトリガー値に基づく様々なレベルのフィルタリングを挙げることができる。いくつかの実施形態では、アーチファクトが見えにくくなり(または見えなくなり)、それに伴って、計算要求が減少することがあるため、逆コーディングTFの後にデブロッキングフィルタリングは不要であると決定される場合がある。I*の値(正規化された強度値)は、TFに基づいて通知、計算、または指定することができ、フィルタリングを決定する際の閾値として使用することができる。いくつかの実施形態では、デブロッキングフィルタ操作を修正するために2つ以上の閾値を使用することができる。
【0069】
修正は、HDRに対する強度ベースのデブロッキングを組み込むために、HEVCまたはJVETにおける既存のSDRデブロッキングに対して行うことができる。非限定的な例として、HEVCでは、強度に基づいてデブロッキングパラメータβ(およびtc)を修正して、強いフィルタリング/通常のフィルタリングもしくはフィルタリングのオン/オフを増加または低下させることができ、強度値または強度値の範囲に基づいて、異なるβ(およびtc)パラメータ曲線をHDRに対して定義することができる。代替的に、境界、CU、領域、またはフレーム群の隣接の強度に基づいて、シフトまたはオフセットをパラメータおよび曲線に適用することができる。非限定的な例として、より強いフィルタリングがより明るい面積に適用されるように、シフトを適用することができる。
【0070】
図10は、フィルタリングを決定する目的で強度が考慮に入れられる、エンコードシステム1000のブロック図を示す。ステップ1002では、コーディングユニットおよび近接した/隣接するコーディングユニットに関する情報を取得することができる。次いで、ステップ1004において、フィルタリングを適用するかどうかに関する決定を行うことができる。ステップ1004において、フィルタリングを適用すると決定されると、ステップ1006において、コーディングユニットおよび/または近接した/隣接するコーディングユニット(複数可)に関連付けられた強度値を評価することができる。ステップ1006の強度値の評価に基づいて、所望のレベルのフィルタリングを、ステップ1008a~1008cのうちの1つでコーディングユニットに適用することができる。いくつかの実施形態では、フィルタリングのレベルの選択は、コーディングユニットの強度値、ならびに/またはコーディングユニットに関連付けられた強度値と、1つ以上の近接したコーディングユニットに関連付けられた強度値との比較に基づいていてもよい。いくつかの実施形態では、これは、1つ以上の確立された閾値強度値に基づいていてもよい。ステップ1008a~1008cのうちの1つでフィルタリングを適用した後、ステップ1010において、伝送用にコーディングユニットをエンコードすることができる。しかしながら、ステップ1004においてフィルタリングを適用すべきではないと決定された場合、1006~1008cをバイパスすることができ、これにより、未フィルタリングのコーディングユニットは、ステップ1010でのエンコードに直接進むことができる。
【0071】
代替の実施形態では、ステップ1006はステップ1004に先行してもよく、強度の評価はステップ1006のフィルタリングの決定に使用されてもよく、ステップ1004の後に直接、フィルタリングが望ましくない場合にはステップ1010のエンコード、またはフィルタリングが望ましい場合にはステップ1008a~1008cのうちの1つのいずれかを続けることができる。
【0072】
図11は、強度が表示のためのフィルタリングで考慮に入れられる因子である、デコードシステムのブロック図を示す。
図11に示される実施形態では、ビットストリームは、ステップ1102で受信され、デコードされ得る。いくつかの実施形態では、ステップ1104において、適切なおよび/または所望のレベルのデブロッキングを決定することができる。しかしながら、いくつかの代替の実施形態では、ステップ1104において、フィルタリングが位相のエンコーディング中に適用されたかどうかを決定することができる。ステップ1104において、フィルタリングが望ましいと決定された場合(またはいくつかの実施形態では、位相のエンコード中にフィルタリングが適応された場合)、ステップ1106において、フィルタリングのレベルが決定される。いくつかの実施形態では、これは、フィルタリングに関連付けられた1つ以上の因子を確立する際に使用するためのオフセット値であってもよいし、かつ/または位相のエンコード中に適用されるフィルタリングのレベルの指標であってもよい。ステップ1106の決定に少なくとも部分的に基づいて、ステップ1110での表示用に画像をレンダリングするために適用されるフィルタリングのレベル1108a~1108c。ステップ1104において、位相のエンコード中にフィルタリングが適用されなかった場合、画像は、ステップ1110での表示用にレンダリングされ得る。
【0073】
図12a~
図12cは、
図10および
図11において説明され、示されているシステムをグラフィカルに表す一連の例示的なβ対QPの曲線およびtc対QPの曲線1200を示す。
図12aに示される実施形態では、例示的な一対のβ対QPの曲線1202およびtc対QPの曲線1204が提示され、これらは、強度が所望の閾値xよりも低い場合1206に用いられ得る。したがって、強度値が所望の値xを下回る場合1202、βおよびtcの通常値または標準値を使用して、適用されるデブロッキングレベルを決定することができる。
図12bおよび
図12cは、β対QPの曲線1212、1222、およびtc対QPの曲線1214、1224を示しており、これらは、強度が所望の値x以上であると決定された場合1208に用いられ得る。
図12bは、
図12aに示されるのと同じであるが、左にシフトされた曲線1212、1214のセットを表しており、
図12cは、
図12aに示されるのと同じであるが、上にシフトされた曲線1222、1224のセットを表している。したがって、強度値が所望の値xを満たすか、またはそれを超える(もしくは超えた)場合、βおよびtcのオフセット値、非標準値、修正値を使用して、適用されるデブロッキングレベルを決定することができる。それに応じて、強度値が増加すると、βおよびtcの増加した値が選択され、適用されるフィルタリングのレベルが増加する。
図12bおよび
図12cは、強度(I)が単一の値xよりも大きいか、またはそれ以上であるバリアント型を示しているが、本システムは、各々が様々な境界に関連付けられたβ対QPの曲線およびtc対QPの曲線の複数のセットが存在するシステムを包含するように拡張され得ることをよく理解されたい。すなわち、I<x、x≦I≦y、およびI>yなどの条件、ならびに/または複数の境界もしくは領域を用いるシステムが存在し得る条件が想定される。追加的に、<、>、≦、および≧の使用は任意であること、ならびに任意の論理的な境界条件を用いることができることを留意されたい。最後に、
図12a~
図12cに表される曲線は本質的に例示的なものであること、ならびに同じまたは類似の技術、方法、および論理は任意の既知の、便利な、および/または所望の曲線のセットに適用され得ることをよく理解されたい。
【0074】
実施形態を実施するために必要な命令シーケンスの実行は、
図13に示すように、コンピュータシステム1300によって実行することができる。一実施形態においては、命令シーケンスの実行は、単一のコンピュータシステム1300によって実行される。他の実施形態によれば、通信リンク1315によって結合された2つ以上のコンピュータシステム1300が、互いに協調して命令シーケンスを実行することができる。1つのコンピュータシステム1300のみの説明を以下において提示するが、実施形態を実施するために、任意の数のコンピュータシステム1300を使用し得ることは、理解されるべきである。
【0075】
ここで、一実施形態によるコンピュータシステム1300について、コンピュータシステム1300の機能的構成要素のブロック図である
図13を参照して説明する。本明細書で使用する場合には、コンピュータシステム1300という用語は、1つ以上のプログラムを格納し、かつ独立して実行し得る任意のコンピューティングデバイスを説明するために広義に使用される。
【0076】
各コンピュータシステム1300は、バス1306に対して結合された通信インターフェース1314を含むことができる。通信インターフェース1314は、コンピュータシステム1300間の双方向通信を提供する。それぞれのコンピュータシステム1300の通信インターフェース1314は、例えば命令やメッセージやデータなどの様々なタイプの信号情報を表すデータストリームを含む電気信号または電磁信号または光信号を送受信する。通信リンク1315は、1つのコンピュータシステム1300を別のコンピュータシステム1300に対してリンクする。例えば、通信リンク1315は、LANとすることができ、その場合、通信インターフェース1314は、LANカードとすることができる、あるいは、通信リンク1315は、PSTNとすることができ、その場合、通信インターフェース1314は、統合サービスデジタルネットワーク(ISDN)カードまたはモデムとすることができるか、もしくは、通信リンク1315は、インターネットとすることができ、その場合、通信インターフェース1314は、ダイヤルアップ、ケーブル、または無線モデムとすることができる。
【0077】
コンピュータシステム1300は、それぞれの通信リンク1315および通信インターフェース1314を介して、プログラムすなわちアプリケーションやコードを含む、メッセージ、データ、および命令を送受信することができる。受信したプログラムコードは、受信時にそれぞれのプロセッサ1307によって実行することができるか、および/または後で実行するために、ストレージデバイス1310または他の関連する不揮発性媒体内に格納することができる。
【0078】
一実施形態においては、コンピュータシステム1300は、データストレージシステム1331、例えば、コンピュータシステム1300によって容易にアクセス可能なデータベース1332を含むデータストレージシステム1331と連携して動作する。コンピュータシステム1300は、データインターフェース1333を介してデータストレージシステム1331と通信する。バス1306に対して結合されたデータインターフェース1333は、例えば命令やメッセージやデータなどの様々なタイプの信号情報を表すデータストリームを含む電気信号または電磁信号または光信号を送受信する。実施形態においては、データインターフェース1333の機能は、通信インターフェース1314によって実行することができる。
【0079】
コンピュータシステム1300は、命令やメッセージやデータを集合的には情報を通信するためのバス1306または他の通信機構と、情報を処理するためにバス1306に対して結合された1つ以上のプロセッサ1307と、を含む。コンピュータシステム1300は、また、バス1306に対して結合されていて、プロセッサ(複数可)1307によって実行され得る動的データおよび命令を格納するための、ランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどの、メインメモリ1308も含む。メインメモリ1308は、また、プロセッサ(複数可)1307による命令の実行時に、一時データすなわち変数を、または他の中間情報を格納するために使用することもできる。
【0080】
コンピュータシステム1300は、バス1306に対して結合されていて、プロセッサ(複数可)1307のための静的データおよび命令を格納するための、読み取り専用メモリ(ROM)1309または他の静的ストレージデバイスを、さらに含むことができる。磁気ディスクまたは光ディスクなどのストレージデバイス1310を提供することもでき、プロセッサ(複数可)1307のためのデータおよび命令を格納するためにバス1306に対して結合することができる。
【0081】
コンピュータシステム1300は、ユーザに対して情報を表示するために、バス1306を介して、限定するものではないが陰極線管(CRT)または液晶ディスプレイ(LCD)モニタなどのディスプレイデバイス1311に結合することができる。例えば英数字のキーおよび他のキーなどの入力デバイス1312が、情報選択および命令選択をプロセッサ(複数可)1307に対して通信するために、バス1306に対して結合される。
【0082】
1つの実施形態によれば、個々のコンピュータシステム1300は、メインメモリ1308に含まれる1つ以上の命令からなる1つ以上のシーケンスを実行するそれぞれのプロセッサ(複数可)1307によって、特定の操作を実行する。そのような命令は、ROM1309またはストレージデバイス1310などの別のコンピュータ使用可能媒体から、メインメモリ1308内へと、読み込むことができる。メインメモリ1308内に含まれる命令シーケンスの実行により、プロセッサ(複数可)1307に、本明細書において説明するプロセスを実行させる。代替的な実施形態においては、ハードワイヤード回路を、ソフトウェア命令に代えてあるいはソフトウェア命令と組み合わせて、使用することができる。よって、実施形態は、ハードウェア回路および/またはソフトウェアの任意の特定の組み合わせに限定されるものではない。
【0083】
本明細書で使用する場合には、「コンピュータ使用可能媒体」という用語は、情報を提供する任意の媒体、あるいは、プロセッサ(複数可)1307によって使用可能な任意の媒体、を指す。そのような媒体は、限定するものではないが、不揮発性媒体、揮発性媒体、および伝送媒体を含めて、多くの形態をとることができる。不揮発性媒体、すなわち電力がなくても情報を保持し得る媒体は、ROM1309、CDROM、磁気テープ、および磁気ディスクを含む。揮発性媒体、すなわち、電力がないと情報を保持し得ない媒体は、メインメモリ1308を含む。伝送媒体は、バス1306を構成するワイヤを含めて、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体はまた、搬送波の形態をとることもでき、すなわち、情報信号を送信するために、周波数、振幅、または位相などが変調され得る電磁波の形態をとることもできる。追加的に、伝送媒体は、電波および赤外線データ通信時に生成されるような、音響波または光波の形態をとることができる。
【0084】
上記の明細書においては、実施形態について、その特定の構成要素を参照して説明した。しかしながら、実施形態のより広範な精神および範囲から逸脱することなく、様々な修正および変更が可能であることは明らかであろう。例えば、読者は、本明細書において説明するプロセスフロー図に示すプロセス動作の特定の順序および組み合わせが単なる例示であること、また、異なるプロセス動作または追加的なプロセス動作を使用することにより、あるいは、プロセス動作どうしの異なる組み合わせまたは異なる順序を使用することにより、実施形態を実施し得ることは理解されるであろう。したがって、明細書および図面は、限定的なものではなく、例示的なものと見なされるべきである。
【0085】
また、本発明は、様々なコンピュータシステムにおいて実装し得ることにも留意すべきである。本明細書において説明する様々な技術は、ハードウェアまたはソフトウェア、あるいは双方の組み合わせにおいて実装することができる。好ましくは、技術は、各々が、プロセッサ、プロセッサによって読み取り可能なストレージ媒体(揮発性メモリ、不揮発性メモリ、および/または、ストレージ要素を含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むプログラム可能なコンピュータ上で実行されるコンピュータプログラム内に実装される。入力デバイスを使用して入力されたデータに対してプログラムコードが適用され、これにより、上述した機能が実行されて、出力情報が生成される。出力情報は、1つ以上の出力デバイスに対して適用される。各プログラムは、好ましくは、コンピュータシステムと通信するために、高レベルの手続き型のまたはオブジェクト指向型のプログラミング言語で実装される。しかしながら、プログラムは、必要に応じて、アセンブリ言語または機械語で実装することができる。いずれの場合においても、言語は、コンパイルされた言語またはインタープリタ言語とすることができる。そのような各コンピュータプログラムは、好ましくは、ストレージ媒体またはストレージデバイス(例えば、ROMまたは磁気ディスク)上に格納されており、このストレージ媒体またはストレージデバイスが、上述した手順を実行するためにコンピュータによって読み取られるときに、コンピュータを構成して動作させるために、汎用コンピュータによってまたは専用目的のプログラム可能なコンピュータによって読み取り可能とされている。システムはまた、コンピュータプログラムで構成されたコンピュータ可読ストレージ媒体として実装されると考えることができ、ここで、そのように構成されたストレージ媒体は、コンピュータを特定の事前規定された態様で動作させる。さらに、例示的なコンピューティングアプリケーションのストレージ要素は、様々な組み合わせおよび様々な構成においてデータを格納し得るリレーショナルタイプのまたはシーケンシャル(フラットファイル)タイプのコンピューティングデータベースとすることができる。
【0086】
図14は、本明細書において説明するシステムおよびデバイスの特徴を組み込み得るソースデバイス1412および宛先デバイス1410の概略図である。
図14に示すように、例示的なビデオコーディングシステム1410は、ソースデバイス1412および宛先デバイス1414を含み、この例においては、ソースデバイス1412は、エンコードされたビデオデータを生成する。したがって、ソースデバイス1412は、ビデオエンコーディングデバイスと称されてもよい。宛先デバイス1414は、ソースデバイス1412によって生成されたエンコードされたビデオデータをデコードすることができる。したがって、宛先デバイス1414は、ビデオデコーディングデバイスと称されてもよい。ソースデバイス1412および宛先デバイス1414は、ビデオコーディングデバイスの例であり得る。
【0087】
宛先デバイス1414は、チャネル1416を介してソースデバイス1412からエンコードされたビデオデータを受信することができる。チャネル1416は、ソースデバイス1412から宛先デバイス1414へと、エンコードされたビデオデータを移動させ得るあるタイプの媒体またはデバイスを含むことができる。一例においては、チャネル1416は、エンコードされたビデオデータをソースデバイス1412が宛先デバイス1414へとリアルタイムで直接的に送信することを可能とする通信媒体を含むことができる。
【0088】
この例においては、ソースデバイス1412は、無線通信プロトコルなどの通信規格に従ってエンコードされたビデオデータを変調し、変調したビデオデータを宛先デバイス1414に対して送信することができる。通信媒体は、無線周波数(RF)スペクトルあるいは1つ以上の物理的伝送線路などの、無線または有線の通信媒体を含むことができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、あるいはソースデバイス1412から宛先デバイス1414に対しての通信を容易とする他の機器を含むことができる。別の例においては、チャネル1416は、ソースデバイス1412によって生成されエンコードされたビデオデータを格納するストレージ媒体に対応することができる。
【0089】
図14の例においては、ソースデバイス1412は、ビデオソース1418と、ビデオエンコーダ1420と、出力インターフェース1422と、を含む。いくつかの場合においては、出力インターフェース1428は、変調器/復調器(モデム)、および/または、送信機を含むことができる。ソースデバイス1412においては、ビデオソース1418は、例えばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/または、ビデオデータを生成するためのコンピュータグラフィックスシステム、あるいはこれらソースの組み合わせなどのソースを含むことができる。
【0090】
ビデオエンコーダ1420は、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオデータを、エンコードすることができる。入力画像は、ビデオエンコーダ1420によって受信することができ、入力フレームメモリ1421内に格納することができる。汎用目的プロセッサ1423は、ここから情報を読み込むことができ、エンコードを実行することができる。汎用目的プロセッサを駆動するためのプログラムは、
図14に示す例示的なメモリモジュールなどのストレージデバイスから読み込むことができる。汎用目的プロセッサは、プロセッシングメモリ1422を使用することにより、エンコードを実行することができ、汎用プロセッサによってエンコードされた情報の出力は、出力バッファ1426などのバッファ内に格納することができる。
【0091】
ビデオエンコーダ1420は、少なくとも1つのベース層および少なくとも1つのエンハンスメント層を規定するスケーラブルビデオコーディング方式でビデオデータをコード化(例えば、エンコード)し得るように構成され得るリサンプリングモジュール1425を含むことができる。リサンプリングモジュール1425は、エンコードプロセスの一部として少なくともいくつかのビデオデータをリサンプリングすることができ、リサンプリングは、リサンプリングフィルタを使用して適応的な方法で実行することができる。
【0092】
例えばコード化されたビットストリームなどのエンコードされたビデオデータは、ソースデバイス1412の出力インターフェース1428を介して、宛先デバイス1414に対して直接的に送信することができる。
図14の例においては、宛先デバイス1414は、入力インターフェース1438と、ビデオデコーダ1430と、ディスプレイデバイス1432と、を含む。いくつかの場合においては、入力インターフェース1428は、受信機および/またはモデムを含むことができる。宛先デバイス1414の入力インターフェース1438は、チャネル1416を介して、エンコードされたビデオデータを受信する。エンコードされたビデオデータは、ビデオエンコーダ1420によって生成された様々な構文要素であって、ビデオデータを表す様々な構文要素を含むことができる。そのような構文要素は、通信媒体上で送信されたまたはストレージ媒体上に格納されたまたはファイルサーバに格納されたエンコードされたビデオデータに含まれることができる。
【0093】
エンコードされたビデオデータはまた、デコードおよび/または再生のために宛先デバイス1414によって後でアクセスし得るよう、ストレージ媒体またはファイルサーバに格納することができる。例えば、コード化されたビットストリームは、一時的に入力バッファ1431内に格納することができ、その後、汎用目的プロセッサ1433内に読み込むことができる。汎用目的プロセッサを駆動するためのプログラムは、ストレージデバイスまたはメモリから読み込むことができる。汎用目的プロセッサは、プロセッシングメモリ1432を使用することにより、デコードを実行することができる。ビデオデコーダ1430はまた、ビデオエンコーダ1420において使用されるリサンプリングモジュール1435と同様のリサンプリングモジュール1425を含むことができる。
【0094】
図14は、汎用目的プロセッサ1433とは別個にリサンプリングモジュール1435を示しているが、リサンプリング機能が、汎用目的プロセッサによって実行されるプログラムによって実行され得ること、また、ビデオエンコーダにおける処理が、1つ以上のプロセッサを使用して達成され得ることは、当業者であれば理解されよう。デコードされた画像(複数可)は、出力フレームバッファ1436内に格納することができ、その後、入力インターフェース1438に対して送信することができる。
【0095】
ディスプレイデバイス1438は、宛先デバイス1414に対して一体化することができるか、あるいは、宛先デバイス1414の外部に配置することができる。いくつかの例においては、宛先デバイス1414は、一体化されたディスプレイデバイスを含むことができ、また、外部ディスプレイデバイスに対してインターフェースし得るように構成することができる。他の例においては、宛先デバイス1414は、ディスプレイデバイスとすることができる。一般に、ディスプレイデバイス1438は、デコードされたビデオデータを、ユーザに対して表示する。
【0096】
ビデオエンコーダ1420およびビデオデコーダ1430は、ビデオ圧縮規格に従って動作することができる。ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、現在の高効率ビデオコーディングHEVC規格(画面コンテンツコーディングと高ダイナミックレンジコーディングに関する現在の拡張と短期的な拡張とを含む)の圧縮能力を大幅に上回る圧縮能力を有した将来のビデオコーディング技術の標準化の潜在的な必要性を研究している。両グループは、この分野の専門家によって提案された圧縮技術設計を評価するために、共同ビデオ調査チーム(JVET)として知られる共同作業でこの調査活動に取り組んでいる。JVET開発の最近のキャプチャは、J.Chen、E.Alshina、G.Sullivan、J.Ohm、J.Boyceが執筆した「Algorithm Description of Joint Exploration Test Model 5(JEM 5)」、JVET-E1001-V2に記載されている。
【0097】
追加的にまたは代替的に、ビデオエンコーダ1420およびビデオデコーダ1430は、開示されたJVET機能で機能する他の独自規格または業界規格に従って動作することができる。したがって、代替的にはMPEG-4と称されるITU-T H.264規格、パート10、Advanced Video Coding(AVC)、あるいはそれら規格の拡張などの他の規格が挙げられる。したがって、JVETのために新たに開発されたが、本開示の技術は、特定のコーディング規格または特定のコーディング技術に限定されるものではない。ビデオ圧縮に関する規格および技術の他の例としては、MPEG-2、ITU-T H.263、ならびに独自規格のまたはオープンソースの圧縮形式および関連形式が挙げられる。
【0098】
ビデオエンコーダ1420およびビデオデコーダ1430は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。例えば、ビデオエンコーダ1420およびデコーダ1430は、1つ以上のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、あるいはこれらの任意の組み合わせを使用することができる。ビデオエンコーダ1420およびデコーダ1430が、部分的にソフトウェアで実装される場合には、デバイスは、ソフトウェアのための命令を、好適な非一過性のコンピュータ可読ストレージ媒体内に格納することができ、本開示の技術を実行するために、1つ以上のプロセッサを使用してハードウェアで命令を実行することができる。ビデオエンコーダ1420およびビデオデコーダ1430の各々は、1つ以上のエンコーダまたはデコーダ内に含まれることができ、これらのいずれかは、それぞれのデバイス内の複合エンコーダ/デコーダ(CODEC)の一部として一体化することができる。
【0099】
本明細書において説明する主題の態様は、上述した汎用目的プロセッサ1423および1433などのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能な命令の一般的なコンテキストにおいて説明することができる。一般に、プログラムモジュールは、特定のタスクを実行したりあるいは特定の抽象データ型を実装したりする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本明細書において説明する主題の態様はまた、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型コンピューティング環境で実施することもできる。分散型コンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含めてローカルとリモートとの両方のコンピュータストレージ媒体内に配置することができる。
【0100】
メモリの例は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、またはこれらの双方を含む。メモリは、上述した技術を実行するために、ソースコードまたはバイナリコードなどの命令を格納することができる。メモリはまた、プロセッサ1423および1433などのプロセッサによって実行される命令の実行時に、変数または他の中間情報を格納するために使用することができる。
【0101】
ストレージデバイスはまた、例えばソースコードまたはバイナリコードなどの、上述した技術を実行するための命令を格納することができる。ストレージデバイスは、追加的に、コンピュータプロセッサによって使用されて操作されるデータを格納することができる。例えば、ビデオエンコーダ1420またはビデオデコーダ1430内のストレージデバイスは、コンピュータシステム1423または1433によってアクセスされるデータベースとすることができる。ストレージデバイスの他の例は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、磁気ディスク、光ディスク、CD-ROM、DVD、フラッシュメモリ、USBメモリカード、あるいはコンピュータが読み取り得る任意の他の媒体を含む。
【0102】
メモリまたはストレージデバイスは、ビデオエンコーダおよび/またはデコーダによって使用するための、あるいはそれに関連して使用するための、非一過性のコンピュータ可読ストレージ媒体の一例とすることができる。非一過性のコンピュータ可読ストレージ媒体は、特定の実施形態によって説明する機能を実行し得るように構成され得るようコンピュータシステムを制御するための命令を含む。命令は、1つ以上のコンピュータプロセッサによって実行されるときには、特定の実施形態において説明することを実行し得るように構成することができる。
【0103】
また、いくつかの実施形態は、フロー図またはブロック図として図示し得るプロセスとして説明されていることに留意されたい。各々は、操作を順次的なプロセスとして説明し得るが、操作の多くは、並列的に実行することができるか、あるいは、同時的に実行することができる。加えて、操作の順序を入れ替えることもできる。プロセスは、図に含まれていない追加的なステップを有することができる。
【0104】
特定の実施形態は、命令実行システム、装置、システム、または機械によって使用するための、あるいはそれに関連して使用するための、非一過性のコンピュータ可読ストレージ媒体内に実装することができる。コンピュータ可読ストレージ媒体は、特定の実施形態によって説明する方法を実行するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、1つ以上のコンピューティングデバイスを含むことができる。命令は、1つ以上のコンピュータプロセッサによって実行されるときには、特定の実施形態で説明することを実行し得るように構成することができる。
【0105】
明細書における説明においてならびにそれに続く特許請求の範囲にわたって使用された場合には、「a」、「an」、および「the」は、文脈が明確に他のことを指示していない限りにおいて、複数の参照を含む。また、明細書における説明においてならびにそれに続く特許請求の範囲にわたって使用された場合には、「in」の意味は、文脈が明確に他のことを指示していない限りにおいて、「in」および「on」を含む。
【0106】
本発明の例示的な実施形態について、上記の構造的特徴および/または方法論的行為に固有の言語において詳細に説明したが、当業者であれば、本発明の新規な教示および利点から実質的に逸脱することなく、例示的な実施形態において多くの追加的な修正が可能であることを容易に理解するであろうことを理解されたい。さらに、添付の特許請求の範囲において定義される主題が、必ずしも上述した特定の特徴または行為に限定されないことを、理解されたい。したがって、これらの修正およびすべてのそのような修正が、添付の特許請求の範囲に従って広範な範囲で解釈される本発明の範囲内に含まれることが意図されている。