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

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

▶ アリス エンタープライジズ インコーポレイテッドの特許一覧

特許7350757テンプレートマッチングのための可変テンプレートサイズ
<>
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図1
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図2a
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図2b
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図2c
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図3
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図4
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図5
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図6
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図7
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図8
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図9
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図10
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図11
  • 特許-テンプレートマッチングのための可変テンプレートサイズ 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-15
(45)【発行日】2023-09-26
(54)【発明の名称】テンプレートマッチングのための可変テンプレートサイズ
(51)【国際特許分類】
   H04N 19/51 20140101AFI20230919BHJP
【FI】
H04N19/51
【請求項の数】 10
(21)【出願番号】P 2020543510
(86)(22)【出願日】2019-02-15
(65)【公表番号】
(43)【公表日】2021-06-03
(86)【国際出願番号】 US2019018279
(87)【国際公開番号】W WO2019161248
(87)【国際公開日】2019-08-22
【審査請求日】2021-09-27
(31)【優先権主張番号】62/631,047
(32)【優先日】2018-02-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/277,532
(32)【優先日】2019-02-15
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】514188564
【氏名又は名称】アリス エンタープライジズ エルエルシー
【氏名又は名称原語表記】ARRIS ENTERPRISES LLC
【住所又は居所原語表記】3871 Lakefield Drive, Suwanee, GA 30024, U.S.A.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】パヌソポーン、クリット
(72)【発明者】
【氏名】ワン、リミン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2015/166639(WO,A1)
【文献】国際公開第2011/071514(WO,A2)
【文献】国際公開第2010/095560(WO,A1)
【文献】特開2007-043651(JP,A)
【文献】Wen Yang, et al.,Efficient Motion Vector Coding Algorithms Based on Adaptive Template Matching Techniques,ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG),VCEG-AM16,39th Meeting: Kyoto, Japan,2010年01月,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサを用いてビデオをエンコードする方法であって、
ビデオフレームの再構成画素領域内に複数のコーディングユニット(CU)テンプレートを画定することであって、前記複数のCUテンプレートは、コーディングユニットの現在のデコード位置の上側に位置する画素から構成される上側テンプレートと、前記コーディングユニットの現在のデコード位置の左側に位置する画素から構成される左側テンプレートと、前記コーディングユニットの現在のデコード位置の上側及び左側に位置する画素から構成される左上テンプレートとを含み、前記複数のCUテンプレートの各々は、前記コーディングユニットと同じ前記ビデオのビデオフレーム内における前記コーディングユニットに隣接して位置する、前記複数のCUテンプレートを画定すること、
前記ビデオの第1ビデオフレーム内にあり前記ビデオの異なるビデオフレーム内にない前記コーディングユニットの前記デコード位置に対して前記ビデオの第1ビデオフレーム内における前記再構成画素領域内に前記複数のCUテンプレートのうちの一つを選択的に適用すること、
前記複数のCUテンプレートのうちの前記適用された一つに少なくとも部分的に基づいて前記コーディングユニットをエンコードすること、
を備え、
前記複数のCUテンプレートのうちの一つを選択的に適用することは、前記適用されたCUテンプレートのサイズを前記コーディングユニットのサイズに基づいて決定することを含み
前記適用されたCUテンプレートが前記上側テンプレートの場合、前記上側テンプレートの高さを前記コーディングユニットの高さ以下に制限した前記上側テンプレートのみが使用され
前記適用されたCUテンプレートが前記左側テンプレートの場合、前記左側テンプレートの幅を前記コーディングユニットの幅以下に制限した前記左側テンプレートのみが使用され
前記適用されたCUテンプレートが前記左上テンプレートの場合、前記左上テンプレートの厚さを前記コーディングユニットの高さ以下に制限するとともに前記コーディングユニットの幅以下に制限した前記左上テンプレートのみが使用される、ビデオをエンコードする方法。
【請求項2】
前記左側テンプレートが前記コーディングユニットの高さに等しい高さを有する、請求項1に記載のビデオをエンコードする方法。
【請求項3】
前記左側テンプレートの幅が可変である、請求項1に記載のビデオをエンコードする方法。
【請求項4】
前記上側テンプレートが前記コーディングユニットの幅に等しい幅を有する、請求項1に記載のビデオをエンコードする方法。
【請求項5】
前記上側テンプレートの高さが可変である、請求項1に記載のビデオをエンコードする方法。
【請求項6】
前記左上テンプレートの厚さが可変である、請求項1に記載のビデオをエンコードする方法。
【請求項7】
ビデオをエンコードするシステムであって、
ビデオフレームの再構成画素領域内の複数のコーディングユニット(CU)テンプレートをメモリに受信することであって、前記複数のCUテンプレートは、コーディングユニットの現在のデコード位置の上側に位置する画素から構成される上側テンプレートと、前記コーディングユニットの現在のデコード位置の左側に位置する画素から構成される左側テンプレートと、前記コーディングユニットの現在のデコード位置の上側及び左側に位置する画素から構成される左上テンプレートとを含み、前記複数のCUテンプレートの各々は、前記コーディングユニットと同じ前記ビデオのビデオフレーム内における前記コーディングユニットに隣接して位置する、前記複数のCUテンプレートをメモリに受信すること、
プロセッサにより、前記ビデオの第1ビデオフレーム内にあり前記ビデオの異なるビデオフレーム内にない前記コーディングユニットの前記デコード位置に対して前記ビデオの第1ビデオフレーム内における前記再構成画素領域内に前記複数のCUテンプレートのうちの一つを選択的に適用すること、
前記プロセッサにより、前記複数のCUテンプレートのうちの前記適用された一つに少なくとも部分的に基づいて前記コーディングユニットをエンコードすること、
を備え、
前記複数のCUテンプレートのうちの一つを選択的に適用することは、前記適用されたCUテンプレートのサイズを前記コーディングユニットのサイズに基づいて決定することを含み
前記適用されたCUテンプレートが前記上側テンプレートの場合、前記上側テンプレートの高さを前記コーディングユニットの高さ以下に制限した前記上側テンプレートのみが使用され
前記適用されたCUテンプレートが前記左側テンプレートの場合、前記左側テンプレートの幅を前記コーディングユニットの幅以下に制限した前記左側テンプレートのみが使用され
前記適用されたCUテンプレートが前記左上テンプレートの場合、前記左上テンプレートの厚さを前記コーディングユニットの高さ以下に制限するとともに前記コーディングユニットの幅以下に制限した前記左上テンプレートのみが使用される、ビデオをエンコードするシステム。
【請求項8】
前記左側テンプレートが前記コーディングユニットの高さに等しい高さを有する、請求項7に記載のビデオをエンコードするシステム。
【請求項9】
前記上側テンプレートが前記コーディングユニットの幅に等しい幅を有する、請求項7に記載のビデオをエンコードするシステム。
【請求項10】
前記左上テンプレートの厚さが可変である、請求項7に記載のビデオをエンコードするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオコーディングの分野に関し、特に、テンプレートサイズを変化させ得るテンプレートマッチングの利用に関連したコーディング効率の向上に関する。本出願は、2018年2月15日付けで提出された先の出願をなす米国仮出願番号第62/631,047号の優先権を主張するものであり、この出願の全体が参照によって本明細書に援用される。
【背景技術】
【0002】
進化するビデオコーディング規格の技術的改良は、コーディング効率の向上の傾向を示しており、これにより、より高いビットレート、より高い解像度、及びより良好なビデオ品質が可能とされている。共同ビデオ調査チーム(Joint Video Exploration Team)は、JVETと称される新たなビデオコーディング方式を開発し、VVC(Versatile Video Coding)と称される新たなビデオコーディング方式を開発中であり、2018年10月1日付けで刊行されたJVETによるVersatile Video Coding(Draft 2)と題する規格のドラフト2におけるVVC第7版の完全な内容は参照により本明細書に援用される。HEVC(High Efficiency Video Coding)などの他のビデオコーディング方式と同様に、JVET及びVVCの双方は、ブロックベースのハイブリッド型空間的時間的予測コーディング方式である。しかしながら、HEVCと比較して、JVET及びVVCは、ビットストリーム構造、構文、制約、及びデコードされたピクチャの生成のためのマッピングに対する多くの変更を含む。JVETは、JEM(Joint Exploration Model)のエンコーダ及びデコーダに実装されたが、VVCは、2020年初頭までは実装されないと予想されている。
【発明の概要】
【0003】
一つ又は複数のコンピュータのシステムは、動作時にはシステムに行為を実行させるソフトウェア、ファームウェア、ハードウェア、又はそれらの組合せが、システムにインストールされていることにより、特定の操作又は行為を実行し得るように構成することができる。一つ又は複数のコンピュータプログラムは、データ処理装置によって実行された時には装置に行為を実行させる命令を含むことにより、特定の操作又は行為を実行し得るように構成することができる。一つの一般的な態様は、コーディングユニットを識別することと、コーディングユニットに関連する情報を決定することと、前記コーディングユニットに隣接した画素からなるコーディングテンプレートを規定することを含み、前記コーディングテンプレートは、前記コーディングユニットの幅及び高さのうちの少なくとも一方に少なくとも部分的に基づく。この方法は、前記コーディングテンプレートに少なくとも部分的に基づいて前記コーディングユニットをエンコードすることをさらに含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、及びそれぞれが方法のためのアクションを実行するように構成された、一つ又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラム、を含む。
【0004】
様々な実施形態は、以下の特徴のうちの一つ又は複数を含むことができる。前記コーディングテンプレートが、コーディングユニットの左側に位置する画素から構成されるインターコーディングの方法。前記コーディングテンプレートが、前記コーディングユニットの高さに等しい高さを有するインターコーディングの方法。前記コーディングテンプレートが、前記コーディングユニットの幅以下の幅を有するインターコーディングの方法。前記コーディングテンプレートの幅が可変であるインターコーディングの方法。前記コーディングテンプレートが、コーディングユニットの上側に位置する画素から構成されるインターコーディングの方法。前記コーディングテンプレートが、コーディングユニットの上側及び左側に位置する画素から構成されるインターコーディングの方法。本明細書に記載する技術の実装は、コンピュータアクセス可能な媒体上における、ハードウェア、方法又はプロセス、あるいはコンピュータソフトウェアを含むことができる。
【0005】
一つの一般的な態様は、インターコーディングのシステムであって、メモリ内にコーディングユニットを受けることと、コーディングユニットに関連する情報を決定して、メモリ内に格納することと、前記コーディングユニットに隣接した画素からなり、前記コーディングユニットの幅及び高さのうちの少なくとも一方に少なくとも部分的に基づくコーディングテンプレートを規定してメモリ内に格納することと、前記コーディングテンプレートに少なくとも部分的に基づいて、前記コーディングユニットを、フレームレートアップコンバージョンを利用した信号でエンコードすることと、を含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、及びそれぞれが方法のアクションを実行するように構成された、一つ又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラムを含む。
【0006】
追加的な又は代替的な実施形態は、以下の特徴のうちの一つ又は複数を含むことができる。前記コーディングテンプレートが、コーディングユニットの左側に位置する画素から構成されるインターコーディングのシステム。システムは、また、前記コーディングテンプレートが前記コーディングユニットの高さに等しい高さを有しているという状況を含むことができる。システムは、また、前記コーディングテンプレートが前記コーディングユニットの幅以下の幅を有するという条件を含むことができる。インターコーディングのシステムは、また、前記コーディングテンプレートがコーディングユニットの上側に位置する画素から構成され得るという条件、あるいは、前記コーディングテンプレートが前記コーディングユニットの幅に等しい幅を有するという条件を含むことができる。本明細書に記載する技術の実施形態は、コンピュータアクセス可能な媒体上における、ハードウェア、方法又はプロセス、あるいはコンピュータソフトウェアを含むことができる。
【0007】
本発明のさらなる詳細は、添付図面を活用して説明する。
【図面の簡単な説明】
【0008】
図1】フレームを複数のコーディングツリーユニット(CTU)に分割することを示す図。
図2図2a~図2cはCTUをコーディングユニット(CU)に区分することを例示的に示す図。
図3図2のCU区分に関しての四分木及び二分木(QTBT)表現を示す図。
図4】JVET又はVVCエンコーダにおけるCUコーディングを簡略化して示すブロック図。
図5】VVCのJVETにおける輝度成分に関する可能なイントラ予測モードを示す図。
図6】VVCデコーダのJVETにおけるCUコーディングを簡略化して示すブロック図。
図7】コーディングユニットと、可変の高さ/幅を有した関連する上側テンプレート及び左側テンプレートの実施形態を示す図。
図8】可変の幅/高さを有した関連する上側テンプレート及び左側テンプレートを備えたコーディングユニットの代替的な実施形態を示す図。
図9】可変の幅/高さを有した関連する上側テンプレート及び左側テンプレートを備えたコーディングユニットの代替的な実施形態を示す図。
図10】コーディングにおいて可変テンプレートサイズを利用する方法の実施形態を示す図。
図11】テンプレートマッチングのための可変テンプレートサイズを提供し得るように適合して構成されたコンピュータシステムの実施形態を示す図。
図12】テンプレートマッチングのための可変テンプレートサイズを提供し得るように適合して構成されたビデオエンコーダ/デコーダの実施形態を示す図。
【発明を実施するための形態】
【0009】
図1は、フレームを、複数のコーディングツリーユニット(CTU)100へと分割することを示している。フレームは、ビデオシーケンス内の画像とすることができる。フレームは、マトリクス、あるいは、一組をなす複数のマトリクスを含むことができ、画素値は、画像内の強度測定値を表す。よって、一組をなすこれら複数のマトリクスは、ビデオシーケンスを生成することができる。画素値は、画素を三つのチャネルへと分割したフルカラービデオコーディングにおいて、色と輝度とを表すように規定することができる。例えば、YCbCr色空間においては、画素は、画像のグレーレベルの強度を表す輝度値Yと、グレーから青及び赤へと色がどの程度相違しているかを表す二つの色差値Cb及びCrとを有することができる。他の実施形態においては、画素値は、異なる色空間又は色モデルにおける値によって表すことができる。ビデオの解像度は、フレーム内の画素数を決定することができる。より大きな解像度は、画素がより多いこと、及び、画像の精細度がより良好であることを意味し得るが、帯域幅、ストレージ、及び伝送要件も、より大きなものとなり得る。
【0010】
ビデオシーケンスのフレームは、JVETを使用して、エンコード及びデコードすることができる。JVETは、共同ビデオ調査チームが開発しているビデオコーディング方式である。JVETのバージョンは、JEM(Joint Exploration Model)のエンコーダ及びデコーダに実装されている。HEVC(High Efficiency Video Coding)などの他のビデオコーディング方式と同様に、JVETは、ブロックベースのハイブリッド型空間的時間的予測コーディング方式である。JVETを使用したコーディング時には、フレームは、図1に示すように、最初に、CTU100と称される正方形のブロックへと分割される。例えば、CTU100は、128×128画素のブロックとすることができる。
【0011】
図2は、CTU100を、CU102へと例示的に区分することを示している。フレーム内の各CTU100は、一つ又は複数のCU(コーディングユニット)102へと区分することができる。CU102は、以下において説明するように、予測及び変換のために使用することができる。HEVCとは異なり、JVETにおいては、CU102は、長方形又は正方形とすることができ、予測ユニット又は変換ユニットへとさらに区分することなく、コード化することができる。CU102は、それらのルートCTU100と同じ大きさのものとすることができる、あるいは、4×4ブロックといったように、ルートCTU100よりも小さく細分化したものとすることができる。
【0012】
JVETにおいては、CTU100を、四分木及び二分木(QTBT)方式に従ってCU102へと区分することができ、CTU100は、四分木に従って再帰的に正方形ブロックへと分割することができ、その後、それらの正方形ブロックは、二分木に従って水平方向に又は鉛直方向に再帰的に分割することができる。CTUサイズ、四分木リーフノード及び二分木リーフノードに関する最小サイズ、二分木ルートノードに関する最大サイズ、及び二分木に関する最大深度など、QTBTに従って分割を制御するように、パラメータを設定することができる。VVCにおいては、CTU100は、3値分割を利用することによっても、CUへと区分することができる。
【0013】
非限定的な例として、図2aは、CU102へと区分されたCTU100を図示しており、実線は、四分木分割を示し、破線は、二分木分割を示している。図示のように、二本木分割は、水平方向分割及び鉛直方向分割を可能とし、これにより、CTUの構造及びCUへの細分化を規定することができる。図2b及び図2cは、CUの三分割という、代替的な非限定的な例を図示しており、この場合、CUへの細分化は均等なものではない。
【0014】
図3は、図2の区分に関するQTBT表現を示している。四分木ルートノードは、CTU100を表し、四分木部分内の各子ノードは、親正方形ブロックから分割された四つの正方形ブロックのうちの一つを表している。四分木リーフノードによって表された正方形ブロックは、その後、二分木を使用して、ゼロ回以上にわたって分割することができ、四分木リーフノードは、二分木のルートノードである。二本木部分の各レベルにおいては、ブロックは、鉛直方向又は水平方向のいずれかへと分割することができる。「0」に設定されたフラグは、ブロックが水平方向に分割されることを示し、「1」に設定されたフラグは、ブロックが鉛直方向に分割されることを示す。
【0015】
四分木分割及び二分木分割の後に、QTBTのリーフノードによって表されるブロックは、インター予測又はイントラ予測を使用したコーディングなど、コード化されるべき最終的なCU102を表す。インター予測によってコード化されたスライス又はフルフレームの場合には、異なる区分構造を、輝度成分及び色差成分に関して使用することができる。例えば、インタースライスの場合には、CU102は、一つの輝度CB及び二つの色差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によってコード化されたスライスは、一つ又は複数の参照ピクチャに基づいてデコードされ得る予測(P)スライス又は双予測(B)スライスとすることができる。Pスライスは、以前にコード化されたスライスを使用したイントラ予測及びインター予測を使用することができる。例えば、Pスライスは、インター予測を使用することによって、Iスライスよりもさらに圧縮し得るが、それらをコード化するためには、以前にコード化されたスライスのコーディングを必要とする。Bスライスは、二つの異なるフレームからの補間予測を使用したイントラ予測又はインター予測を使用して、そのコーディングのために、以前のスライス及び/又は後続のスライスからのデータを使用することができ、これにより、動き推定プロセスの精度が向上する。いくつかの場合においては、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に関しての一組をなす六個の最も可能性の高いモード(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】
アフィン動き補償予測を使用することにより、ブロックの上側コーナーに関して見出された二つの制御動きベクトルに基づいて、ブロック内の各サブCUに関する動きベクトルのフィールドを予測することができる。例えば、サブCUに関する動きベクトルは、CU102内における各4×4ブロックに関して見出された上側コーナー動きベクトルに基づいて導出することができる。
【0032】
PMMVDは、バイラテラルマッチング又はテンプレートマッチングを使用して、現在のCU102の初期的動きベクトルを見出すことができる。バイラテラルマッチングにおいては、現在のCU102と、動きの軌跡に沿った二つの異なる参照ピクチャ内の参照ブロックと、を確認することができ、他方、テンプレートマッチングにおいては、現在のCU102内における対応するブロックと、テンプレートによって識別された参照ピクチャと、を確認することができる。その後、CU102に関して見出された初期的動きベクトルは、各サブCUに関して個別に精緻化することができる。
【0033】
BIOは、以前の参照ピクチャと後続の参照ピクチャとに基づいて双方向性予測によってインター予測を実行する時に使用することができ、二つの参照ピクチャ間の差の勾配に基づいてサブCUに関する動きベクトルを見出すことができる。
【0034】
いくつかの場合、CUレベルにおいて局所的照明補償(LIC)を使用することができ、これにより、現在のCU102に隣接したサンプルに基づいて、また、候補動きベクトルによって識別された参照ブロックに隣接した対応サンプルに基づいて、スケーリング因子パラメータとオフセットパラメータとの値を見出すことができる。JVETにおいては、LICパラメータを変更し、CUレベルにおいて通知することができる。
【0035】
上記の方法のいくつかに関しては、CUのサブCUのそれぞれに関して見出された動きベクトルを、CUレベルでデコーダに対して通知することができる。PMMVD及びBIOなどの他の方法に関しては、オーバーヘッドを節約するためにビットストリーム内において動き情報は通知されず、デコーダは、同じプロセスを通して動きベクトルを導出することができる。
【0036】
CU102に関する動きベクトルが見出された後には、エンコーダは、それらの動きベクトルを使用して、予測CU402を生成することができる。いくつかの場合においては、個々のサブCUに関する動きベクトルが見出された時に、それらの動きベクトルを、一つ又は複数の隣接サブCUに関して以前に見出された動きベクトルと組み合わせることによって予測CU402を生成する際に、オーバーラップブロック動き補償(OBMC)を使用することができる。
【0037】
双方向性予測を使用する場合には、JVETは、デコーダ側動きベクトル精緻化(DMVR)を使用することにより、動きベクトルを見出すことができる。DMVRにより、双方向性テンプレートマッチングプロセスを使用して、双方向性予測に関して見出された二つの動きベクトルに基づいて、動きベクトルを見出すことができる。DMVRにおいては、二つの動きベクトルのそれぞれによって生成された予測CU402の重み付き組合せを見出すことができ、二つの動きベクトルを、組み合わされた予測CU402を最適に指す新たな動きベクトルへと置き換えることにより、精緻化することができる。二つの精緻化された動きベクトルを使用することにより、最終的な予測CU402を生成することができる。
【0038】
408においては、予測CU402が、上述したように、404におけるイントラ予測によってあるいは406におけるインター予測によって見出された後に、エンコーダは、現在のCU102から予測CU402を減算して残差CU410を見出すことができる。
【0039】
エンコーダは、412において一つ又は複数の変換操作を使用することにより、残差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は、三つの領域へと分割することができ、各領域は、その領域内の画素に対して使用するための独自の一組をなす複数のコンテキストモデルを有している。
【0044】
複数のスキャンパスを実行して、ビンをエンコードすることができる。最初の三つのビン(bin0、bin1、及びbin2)をエンコードするパス時には、ビンに対してどのコンテキストモデルを使用するかを示すインデックス値は、テンプレートによって識別された最大で五つの以前にコード化された隣接した量子化変換係数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においては、一つ又は複数のフィルタを、(エンコーダ内における、あるいは以下において説明するようにデコーダ内における)デコードプロセス時に、ピクチャレベル又は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においては、一つ又は複数のフィルタを、ピクチャレベル又はCUレベルのいずれかにおいて、再構成されたデータに対して適用することができる。例えば、デコーダは、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、及び/又は、適応型ループフィルタ(ALF)を適用することができる。上述したように、エンコーダのデコードループ内に配置されたループ内フィルタを使用することにより、フレームの客観的及び主観的な品質を向上させるための最適なフィルタパラメータを推定することができる。これらのパラメータは、エンコーダ内でフィルタリングされて再構成されたフレームと一致するように620において再構成フレームをフィルタリングするために、デコーダに対して送信される。
【0057】
再構成されたCU618を見出して、通知されたフィルタを適用することによって、再構成されたピクチャが生成された後に、デコーダは、再構成されたピクチャを出力ビデオ628として出力することができる。再構成されたピクチャが参照ピクチャとして使用される場合には、それらは、624における将来のCU102のインター予測のために、参照バッファ630内に格納することができる。
【0058】
フレームレートアップコンバージョン(FRUC)は、インターコーディングツールである。CUがFRUCモードを使用してコード化される場合には、その動きベクトルはデコーダ側で導出される。通知は、導出プロセスを示すために、ビットストリーム内に含まれている。HEVCのマージモードにおいては、導出される動きベクトル(MV)が候補MVのリスト内のMVに限定されているのに対し、FRUCは、明確なMV通知を回避することによりコード化効率を向上させる。より具体的には、FRUCは、検索ウィンドウ内のMV候補からのマッチングコストに基づいてMVを決定し得るパターンマッチング動きベクトル導出方法を利用する。いくつかの実施形態においては、マッチングパターンは、FRUCモードに基づいて、及び、事前に決定し得る検索パターンに基づいて、指定することができる。よって、デコーダは、同じプロセスに従ってFRUCMVを導出することができる。
【0059】
いくつかの実施形態においては、FRUCには3つの可能なモード、すなわち、AMVP(高度な動きベクトル予測子)テンプレートマッチングと、マージテンプレートマッチングと、マージバイラテラルマッチングとがある。テンプレートマッチングモードは、CUのMVを決定するためのAMVPモードに関するオプションとして使用することができる、あるいは、CUのMVを決定するためのマージモードに関するオプションとして使用することができる。テンプレートマッチングに関し、テンプレートはCUの代表として使用することができ、テンプレートは、コーディングフレーム内の隣接ブロックから再構成された画素を使用して形成することができる。いくつかの実施形態においては、エンコーダとデコーダの双方が、同じ検索パターンを使用して参照フレーム内の検索ウィンドウ内において候補テンプレートを検索する。その後、最良に一致した候補テンプレートのオフセットをMVとして使用することができる。
【0060】
バイラテラルマッチングは、CUのMVを決定するためにマージモードに関して使用し得る他のFRUCモードである。MVを導出するに際し、テンプレートマッチングの場合のようにコーディングフレームから再構成された画素に依存することに代えて、バイラテラルマッチングは、二つの参照フレームから再構成された画素を使用することによりMVを決定することができる。バイラテラルマッチングのいくつかの実施形態においては、連続的な動きの軌跡を想定することができ、最良に一致したブロックのペアを指す二つのMV(軌跡制約の下で)をマージされたMVとして使用することができる。
【0061】
図7は、コーディングユニット700、ならびに、可変の高さ/幅を有した関連する上側テンプレート702及び左側テンプレート704の実施形態を示している。テンプレート構成は、テンプレートマッチングを使用したコーディング性能において重要な役割を果たす。図7は、いくつかのエンコード実施形態において使用される、W706×H708というサイズのCU700に関するテンプレート構成を示している。いくつかの実施形態においては、テンプレートは、上側テンプレート702及び左側テンプレート704という、二つの部分を含むことができる。上側テンプレート702は、コーディングブロック又はコーディングユニット700の最上行に隣接した隣接ブロックから再構成された画素からなる四つの行を使用して形成することができる。図7に示す実施形態においては、上側テンプレート702は、コーディングブロック/コーディングユニット(CU)と同じ幅706を有することができる。これに加えて、図7に示す実施形態においては、左側テンプレート704は、左側テンプレート704がコーディングブロック(CU)と同じ高さを有し得るように、コーディングブロック(CU)の最左列に隣接した隣接ブロックから再構成された画素からなる四つの列を使用して形成することができる。図7は、4つの行を有した上側テンプレート702と、4つの列を有した左側テンプレート704とを図示しているが、その代替的な実施形態においては、任意の既知の、便利な数の及び/又は所望の数の行列を、上側テンプレート702及び左側テンプレート704に関連して使用することができる。
【0062】
図7に示す実施形態においては、テンプレートマッチングにおけるCUの代表としてテンプレート構成が使用されることのために、CUと相関するテンプレート構成が使用される。いくつかの実施形態においては、テンプレートは、高い予測精度を達成するために、CUと同様の特性を有することができる。テンプレートのサイズが小さすぎる実施形態においては、テンプレートは、CUに関する重要な詳細を提供し得ない場合がある。逆に、テンプレートサイズが大きいと、CUとは関係のない余分な情報が含まれることができ、システムに不要な負荷がかかったり、余分な情報/不要な情報からの「ノイズ」のために結果が悪化したりする場合がある。このことを考えると、JEM7において使用されているような、固定テンプレートサイズ(上側テンプレート702に関する4つの行、及び、左側テンプレート704に関する4つの列)は、相関性の観点から最適ではない。よって、必要とされているのは、CUの特性と一致する可変テンプレートサイズを利用し得るシステム及び方法である。いくつかの実施形態においては、テンプレート(上側テンプレート702及び/又は左側テンプレート704)のサイズは、完全にフレキシブルなものとすることができる。しかしながら、サイズに関する完全なフレキシブルさが、かなりのオーバーヘッドを必要とし得ること、また、システムの運用にコストがかかりすぎる可能性があることが理解され得る。いくつかの実施形態においては、いくつかのコーディング情報を使用することにより、テンプレートサイズを決定することができる。しかしながら、いくつかの実施形態においては、サイズ決定ステップの複雑さを管理及び/又は低減することによって、システムの負担を最小化することができる。いくつかの実施形態においては、テンプレートサイズは、コーディングブロック(CU)サイズに少なくとも部分的に基づくことができる。すなわち、コーディングブロック(CU)サイズが小さい場合には、テンプレートサイズ702、704も小さなものとすることができ、これにより、誤った情報又は不要な情報を含んでしまう可能性を低減することができる。逆に、いくつかの実施形態においては、コーディングブロック(CU)サイズが大きい場合には、テンプレートサイズ702、704をより大きなものとすることができ、これにより、テンプレートが局所的な最小値に拘束されることを回避することができる。
【0063】
CUがW×Hというサイズを有し、Wがコーディングブロック706の幅であり、Hがコーディングブロック708の高さであるという場合の、システム及び方法のいくつかの実施形態においては、上側テンプレート702のサイズはW×Xとして規定することができ、左側テンプレート704のサイズはY×Hとして規定することができる。しかしながら、代替的な実施形態は、以下の式によって示されるように、複数のテンプレートサイズを含んで支持することができ、ここで、上側テンプレートの高さをなすXと、左側テンプレートの幅をなすYとは、以下のようにして計算される。
【0064】
H<VerThreshold(1)の場合、X=VerSize1
H<VerThreshold(2)の場合、X=VerSize2
H<VerThreshold(3)の場合、X=VerSize3
...
H≧VerThreshold(N-1)の場合、X=VerSizeN
および
W<HorThreshold(1)の場合、Y=HorSize1
W<HorThreshold(2)の場合、Y=HorSize2
W<HorThreshold(3)の場合、Y=HorSize3
...
W≧HorThreshold(N-1)の場合、Y=HorSizeN
式中、VerSizeは、行に関するテンプレートサイズパラメータであり、HorSizeは、列に関するテンプレートサイズパラメータであり、VerThresholdは、行に関してコーディングブロックサイズパラメータのためのしきい値であり、HorThresholdは、列に関してコーディングブロックサイズパラメータのためのしきい値である。
【0065】
いくつかの実施形態においては、HorSize1及びVerSize1を、1に設定することができ、HorSize2及びVerSize2を、2に設定することができ、HorSize3及びVerSize3を、3に設定することができる。このような構成においては、HorThreshold(1)及びVerThreshold(1)を、8に設定することができ、HorThreshold(2)及びVerThreshold(2)を、16に設定することができ、HorThreshold(3)及びVerThreshold(3)を、32に設定することができる。しかしながら、代替的な実施形態においては、32よりも大きな又は32よりも小さな、任意の既知の、便利な及び/又は所望の値を使用することができる。
【0066】
図8および図9は、関連する左上テンプレート802を有したコーディングユニット700の代替的な実施形態を示している。図8は、コーディングブロックの左上の隣接ブロックから再構成された画素を含むテンプレート構成の一例を示しており、ここで、Tは、テンプレートの厚さ804である。図8に示す実施形態においては、テンプレートの幅はW+Tであり、テンプレートの高さは、H+Tであり、テンプレートサイズは、便利に及び/又は所望に境界を設定し得るW、H、及びTの値に応じて適用され得るフレキシブルさを有することができる。
【0067】
図9に示す非限定的な例においては、テンプレートサイズのフレキシブルさは、幅及び高さに関して異なる厚さパラメータを使用することによって影響を受けることができ、パラメータは、コーディングブロックサイズに少なくとも部分的に基づいて決定することができる。図9は、そのようなテンプレートサイズのフレキシブルさを可能としたテンプレートの実施形態を示している。図9に示す実施形態においては、T_Wは、テンプレート802の厚さパラメータ902を表し、T_Hは、テンプレート802の高さパラメータ904を表している。よって、パラメータを有した構造は、以下のようにして、異なるコーディングブロックサイズのために、T_W及びT_Hによって規定することができる。
【0068】
H<VerThreshold(1)の場合、T_H=VerSize1
H<VerThreshold(2)の場合、T_H=VerSize2
H<VerThreshold(3)の場合、T_H=VerSize3
...
H≧VerThreshold(N-1)の場合、T_H=VerSizeN
および
W<HorThreshold(1)の場合、T_W=HorSize1
W<HorThreshold(2)の場合、T_W=HorSize2
W<HorThreshold(3)の場合、T_W=HorSize3
...
W≧HorThreshold(N-1)の場合、T_W=HorSizeN
式中、VerSizeは、行に関するテンプレートサイズパラメータであり、HorSizeは、列に関するテンプレートサイズパラメータであり、VerThresholdは、行に関してコーディングブロックサイズパラメータのためのしきい値であり、HorThresholdは、列に関してコーディングブロックサイズパラメータのためのしきい値である。
【0069】
非限定的な例として、図9に示すシステム及び方法を実装する一つの可能な構成においては、HorSize1及びVerSize1を、1に設定することができ、HorSize2及びVerSize2を、2に設定することができ、HorSize3及びVerSize3を、3に設定することができる。このような構成においては、HorThreshold(1)及びVerThreshold(1)を、8に設定することができ、HorThreshold(2)及びVerThreshold(2)を、16に設定することができ、HorThreshold(3)及びVerThreshold(3)を、32に設定することができる。しかしながら、代替的な実施形態においては、32よりも大きな又は32よりも小さな、任意の既知の、便利な及び/又は所望の値を使用することができる。
【0070】
いくつかの実施形態においては、テンプレート702、704、802の最小サイズ及び最大サイズは、コーディングブロック(CU)のサイズ、実装ハードウェアに関連する制約、利用可能な帯域幅又は送信制約に関連する制約、及び/又は、任意の他の既知の便利な条件や所望の条件に少なくとも部分的に基づくことができる。非限定的な例として、いくつかの実施形態においては、テンプレート702、704、802のテンプレート最大サイズは、ブロックサイズの1/4に固定することができる。しかしながら、代替的な実施形態においては、任意の既知の、便利な値及び/又は所望の値を使用することができる。
【0071】
図10は、コーディング1000において可変テンプレートサイズを利用する方法の実施形態を示している。図10に示す実施形態においては、ステップ1002において、コーディングユニット情報を取得する。次に、ステップ1004において、使用されるべきテンプレートが、左側テンプレート1006であるか、上側テンプレート1008であるか、及び/又は、左上テンプレート1010であるかを決定する。いくつかの実施形態においては、どのテンプレート1006、1008、1010を使用するかの決定は、現在のコーディングブロック(CU)と、上側テンプレート1006及び/又は左側テンプレート1008及び/又は左上テンプレート1010との間における基準の最良一致に基づくことができる。左側テンプレートを使用する場合には、ステップ1012においてテンプレートの幅を決定することができ、ブロックをFRUCステップ1014へと進めることができる。上側テンプレートを使用する場合には、ステップ1016においてテンプレートの高さを決定することができ、ブロックをFRUCステップ1014へと進めることができる。左上テンプレートを使用することが決定された場合には、ステップ1018において、左上テンプレートが一様な深さTを有するかどうかを決定することができる。使用される左上テンプレートが一様な深さを有する場合には、ステップ1020において、テンプレートを規定することができ、ブロックをFRUCステップ1014へと進めることができる。ステップ1018において、左上テンプレートが一様な深さを有さないことが決定された場合には、テンプレートの寸法T_H及びT_Wをステップ1022において規定することができ、ブロックをFRUCステップ1014へと進めることができる。
【0072】
実施形態を実施するために必要な命令シーケンスの実行は、図11に示すように、コンピュータシステム1100によって実行することができる。一実施形態においては、命令シーケンスの実行は、単一のコンピュータシステム1100によって実行される。他の実施形態によれば、通信リンク1115によって結合された二つ以上のコンピュータシステム1100が、互いに協調して命令シーケンスを実行することができる。一つのコンピュータシステム1100のみの説明を以下において提示するが、実施形態を実施するために、任意の数のコンピュータシステム1100を使用し得ることが理解され得る。
【0073】
ここで、一実施形態によるコンピュータシステム1100について、コンピュータシステム1100の機能的構成要素のブロック図である図11を参照して説明する。本明細書で使用する場合には、コンピュータシステム1100という用語は、一つ又は複数のプログラムを格納し、かつ独立して実行し得る任意のコンピューティングデバイスを説明するために広義に使用される。
【0074】
各コンピュータシステム1100は、バス1106に対して結合された通信インターフェース1114を含むことができる。通信インターフェース1114は、コンピュータシステム1100どうしの間の双方向通信を提供する。それぞれのコンピュータシステム1100の通信インターフェース1114は、例えば命令やメッセージやデータなどの様々なタイプの信号情報を表すデータストリームを含む電気信号又は電磁信号又は光信号を送受信する。通信リンク1115は、一つのコンピュータシステム1100を他のコンピュータシステム1100に対してリンクする。例えば、通信リンク1115はLANとすることができ、その場合、通信インターフェース1114はLANカードとすることができる、あるいは、通信リンク1115はPSTNとすることができ、その場合、通信インターフェース1114は統合サービスデジタルネットワーク(ISDN)カード又はモデムとすることができる、もしくは、通信リンク1115はインターネットとすることができ、その場合、通信インターフェース1114は、ダイヤルアップ、ケーブル、又は無線モデムとすることができる。
【0075】
コンピュータシステム1100は、それぞれの通信リンク1115及び通信インターフェース1114を介して、プログラムすなわちアプリケーションやコードを含む、メッセージ、データ、及び命令を送受信することができる。受信したプログラムコードは、受信時にそれぞれのプロセッサ1107によって実行することができる、及び/又は、後で実行するために、ストレージデバイス1110又は他の関連する不揮発性媒体内に格納することができる。
【0076】
一実施形態においては、コンピュータシステム1100は、データストレージシステム1131、例えば、コンピュータシステム1100によって容易にアクセス可能なデータベース1132を含むデータストレージシステム1131と連携して動作する。コンピュータシステム1100は、データインターフェース1133を介してデータストレージシステム1131と通信する。バス1106に対して結合されたデータインターフェース1133は、例えば命令やメッセージやデータなどの様々なタイプの信号情報を表すデータストリームを含む電気信号又は電磁信号又は光信号を送受信する。実施形態においては、データインターフェース1133の機能は、通信インターフェース1114によって実行することができる。
【0077】
コンピュータシステム1100は、命令やメッセージやデータを集合的には情報を通信するためのバス1106又は他の通信機構と、情報を処理するためにバス1106に対して結合された一つ又は複数のプロセッサ1107とを含む。コンピュータシステム1100はまた、バス1106に対して結合されていて、一つ又は複数のプロセッサ1107によって実行され得る動的データ及び命令を格納するための、ランダムアクセスメモリ(RAM)又は他の動的ストレージデバイスなどのメインメモリ1108も含む。メインメモリ1108はまた、一つ又は複数のプロセッサ1107による命令の実行時に、一時データすなわち変数を、又は他の中間情報を格納するために使用することもできる。
【0078】
コンピュータシステム1100は、バス1106に対して結合されていて、一つ又は複数のプロセッサ1107のための静的データ及び命令を格納するための、読み取り専用メモリ(ROM)1109又は他の静的ストレージデバイスをさらに含むことができる。磁気ディスク又は光ディスクなどのストレージデバイス1110を提供することもでき、一つ又は複数のプロセッサ1107のためのデータ及び命令を格納するためにバス1106に対して結合することができる。
【0079】
コンピュータシステム1100は、ユーザに対して情報を表示するために、バス1106を介して、限定するものではないが陰極線管(CRT)又は液晶ディスプレイ(LCD)モニタなどのディスプレイデバイス1111に結合することができる。例えば英数字のキー及び他のキーなどの入力デバイス1112が、情報選択及び命令選択を一つ又は複数のプロセッサ1107に対して通信するために、バス1106に対して結合される。
【0080】
一実施形態によれば、個々のコンピュータシステム1100は、メインメモリ1108に含まれる一つ又は複数の命令からなる一つ又は複数のシーケンスを実行するそれぞれの一つ又は複数のプロセッサ1107によって特定の操作を実行する。そのような命令は、ROM1109又はストレージデバイス1110などの他のコンピュータ使用可能媒体から、メインメモリ1108内へと読み込むことができる。メインメモリ1108内に含まれる命令シーケンス実行は、一つ又は複数のプロセッサ1107に、本明細書に記載するプロセスを実行させる。代替的な実施形態においては、ハードワイヤード回路を、ソフトウェア命令に代えてあるいはソフトウェア命令と組み合わせて使用することができる。よって、実施形態は、ハードウェア回路及び/又はソフトウェアの任意の特定の組合せに限定されるものではない。
【0081】
本明細書で使用する「コンピュータ使用可能媒体」という用語は、情報を提供する任意の媒体、あるいは、一つ又は複数のプロセッサ1107によって使用可能な任意の媒体、を指す。そのような媒体は、限定するものではないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含めて、多くの形態をとることができる。不揮発性媒体、すなわち電力がなくても情報を保持し得る媒体は、ROM1109、CDROM、磁気テープ、及び磁気ディスクを含む。揮発性媒体、すなわち電力がないと情報を保持し得ない媒体は、メインメモリ1108を含む。伝送媒体は、バス1106を構成するワイヤを含めて、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体はまた、搬送波の形態をとることもできる、すなわち、情報信号を送信するために、周波数、振幅、又は位相などが変調され得る電磁波の形態をとることもできる。これに加えて、伝送媒体は、電波及び赤外線データ通信時に生成されるような音響波又は光波の形態をとることができる。
【0082】
上記のように、本明細書において、実施形態について、その特定の構成要素を参照して説明した。しかしながら、実施形態のより広範な思想及び範囲から逸脱することなく、様々な変形及び変更が可能であることは明らかである。例えば、当業者は、本明細書において説明するプロセスフロー図に示すプロセス動作の特定の順序及び組合せが単なる例示であること、また、異なるプロセス動作又は追加的なプロセス動作を使用することにより、あるいは、プロセス動作どうしの異なる組合せ又は異なる順序を使用することにより、実施形態を実施し得ることを理解し得る。したがって、明細書及び図面は、限定的なものではなく、例示的なものと見なされるべきである。
【0083】
また、本発明は、様々なコンピュータシステムにおいて実施し得ることにも留意すべきである。本明細書において説明する様々な技術は、ハードウェア又はソフトウェア、あるいは双方の組合せにおいて実装することができる。好ましくは、技術は、それぞれが、プロセッサ、プロセッサによって読み取り可能なストレージ媒体(揮発性メモリ、不揮発性メモリ、及び/又は、ストレージ要素、を含む)、少なくとも一つの入力デバイス、及び、少なくとも一つの出力デバイス、を含むプログラム可能なコンピュータ上で実行されるコンピュータプログラム内に実装される。入力デバイスを使用して入力されたデータに対してプログラムコードが適用され、これにより、上述した機能が実行されて出力情報が生成される。出力情報は、一つ又は複数の出力デバイスに対して適用される。各プログラムは、好ましくは、コンピュータシステムと通信するために、高レベルの手続き型の又はオブジェクト指向型のプログラミング言語で実装される。しかしながら、プログラムは、必要に応じて、アセンブリ言語又は機械語で実装することができる。いずれの場合においても、言語は、コンパイルされた言語又はインタープリタ言語とすることができる。そのような各コンピュータプログラムは、好ましくは、ストレージ媒体又はストレージデバイス(例えば、ROM又は磁気ディスク)上に格納されており、このストレージ媒体又はストレージデバイスが、上述した手順を実行するためにコンピュータによって読み取られる時に、コンピュータを構成して動作させるために、汎用コンピュータによって又は専用目的のプログラム可能なコンピュータによって読み取り可能とされている。システムはまた、コンピュータプログラムで構成されたコンピュータ可読ストレージ媒体として実装されると考えることができ、ここで、そのように構成されたストレージ媒体は、コンピュータを特定の事前規定された態様で動作させる。さらに、例示的なコンピューティングアプリケーションのストレージ要素は、様々な組合せ及び様々な構成においてデータを格納し得るリレーショナルタイプの又はシーケンシャル(フラットファイル)タイプのコンピューティングデータベースとすることができる。
【0084】
図12は、本明細書において説明するシステム及びデバイスの特徴を組み込み得るソースデバイス1212及び宛先デバイス1210の概略図である。図12に示すように、例示的なビデオコーディングシステム1210は、ソースデバイス1212及び宛先デバイス1214を含み、この例においては、ソースデバイス1212は、エンコードされたビデオデータを生成する。したがって、ソースデバイス1212は、ビデオエンコードデバイスと称されてもよい。宛先デバイス1214は、ソースデバイス1212によって生成されたエンコードされたビデオデータをデコードすることができる。したがって、宛先デバイス1214は、ビデオデコードデバイスと称されてもよい。ソースデバイス1212及び宛先デバイス1214は、ビデオコーディングデバイスの例であり得る。
【0085】
宛先デバイス1214は、チャネル1216を介してソースデバイス1212からエンコードされたビデオデータを受信することができる。チャネル1216は、ソースデバイス1212から宛先デバイス1214へと、エンコードされたビデオデータを移動させ得るあるタイプの媒体又はデバイスを含むことができる。一例においては、チャネル1216は、エンコードされたビデオデータをソースデバイス1212が宛先デバイス1214へとリアルタイムで直接的に送信することを可能とする通信媒体を含むことができる。
【0086】
この例においては、ソースデバイス1212は、無線通信プロトコルなどの通信規格に従ってエンコードされたビデオデータを変調し、変調したビデオデータを宛先デバイス1214に対して送信することができる。通信媒体は、無線周波数(RF)スペクトルあるいは一つ又は複数の物理的伝送線路などの、無線又は有線の通信媒体を含むことができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又は、インターネットのようなグローバルネットワークなどの、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、あるいは、ソースデバイス1212から宛先デバイス1214に対しての通信を容易とする他の機器、を含むことができる。他の例においては、チャネル1216は、ソースデバイス1212によって生成されエンコードされたビデオデータを格納するストレージ媒体に対応することができる。
【0087】
図12の例においては、ソースデバイス1212は、ビデオソース1218と、ビデオエンコーダ1220と、出力インターフェース1222と、を含む。いくつかの場合においては、出力インターフェース1228は、変調器/復調器(モデム)、及び/又は、送信機を含むことができる。ソースデバイス1212においては、ビデオソース1218は、例えばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、及び/又は、ビデオデータを生成するためのコンピュータグラフィックスシステム、あるいは、これらソースの組合せなどのソースを含むことができる。
【0088】
ビデオエンコーダ1220は、キャプチャされた、プリキャプチャされた、又はコンピュータ生成されたビデオデータを、エンコードすることができる。入力画像は、ビデオエンコーダ1220によって受信することができ、入力フレームメモリ1221内に格納することができる。汎用目的プロセッサ1223は、ここから情報を読み込むことができ、エンコードを実行することができる。汎用目的プロセッサを駆動するためのプログラムは、図12に示す例示的なメモリモジュールなどのストレージデバイスから読み込むことができる。汎用目的プロセッサは、プロセッシングメモリ1222を使用することにより、エンコードを実行することができ、汎用プロセッサによってエンコードされた情報の出力は、出力バッファ1226などのバッファ内に格納することができる。
【0089】
ビデオエンコーダ1220は、少なくとも一つのベース層及び少なくとも一つのエンハンスメント層を規定するスケーラブルビデオコーディング方式でビデオデータをコード化(例えば、エンコード)し得るように構成され得るリサンプリングモジュール1225を含むことができる。リサンプリングモジュール1225は、エンコードプロセスの一部として少なくともいくつかのビデオデータをリサンプリングすることができ、リサンプリングは、リサンプリングフィルタを使用して適応的な方法で実行することができる。
【0090】
例えばコード化されたビットストリームなどのエンコードされたビデオデータは、ソースデバイス1212の出力インターフェース1228を介して、宛先デバイス1214に対して直接的に送信することができる。図12の例においては、宛先デバイス1214は、入力インターフェース1238と、ビデオデコーダ1230と、ディスプレイデバイス1232とを含む。いくつかの場合においては、入力インターフェース1228は、受信機及び/又はモデムを含むことができる。宛先デバイス1214の入力インターフェース1238は、チャネル1216を介して、エンコードされたビデオデータを受信する。エンコードされたビデオデータは、ビデオエンコーダ1220によって生成された様々な構文要素であって、ビデオデータを表す様々な構文要素を含むことができる。そのような構文要素は、通信媒体上で送信された又はストレージ媒体上に格納された又はファイルサーバに格納されたエンコードされたビデオデータに含まれることができる。
【0091】
また、エンコードされたビデオデータは、デコード及び/又は再生のために宛先デバイス1214によって後でアクセスし得るよう、ストレージ媒体又はファイルサーバに格納することができる。例えば、コード化されたビットストリームは、一時的に入力バッファ1231内に格納することができ、その後、汎用目的プロセッサ1233内に読み込むことができる。汎用目的プロセッサを駆動するためのプログラムは、ストレージデバイス又はメモリから読み込むことができる。汎用目的プロセッサは、プロセッシングメモリ1232を使用することにより、デコードを実行することができる。ビデオデコーダ1230はまた、ビデオエンコーダ1220において使用されるリサンプリングモジュール1225と同様のリサンプリングモジュール1235を含むことができる。
【0092】
図12は、汎用目的プロセッサ1233とは別個にリサンプリングモジュール1235を図示しているが、リサンプリング機能が、汎用目的プロセッサによって実行されるプログラムによって実行され得ること、また、ビデオエンコーダにおける処理が一つ又は複数のプロセッサを使用して達成され得ることが当業者には理解され得る。デコードされた一つ又は複数の画像は、出力フレームバッファ1236内に格納することができ、その後、入力インターフェース1238に対して送信することができる。
【0093】
ディスプレイデバイス1238は、宛先デバイス1214に対して一体化することができる、あるいは、宛先デバイス1214の外部に配置することができる。いくつかの例においては、宛先デバイス1214は、一体化されたディスプレイデバイスを含むことができ、また、外部ディスプレイデバイスに対してインターフェースし得るように構成することができる。他の例においては、宛先デバイス1214は、ディスプレイデバイスとすることができる。一般に、ディスプレイデバイス1238は、デコードされたビデオデータを、ユーザに対して表示する。
【0094】
ビデオエンコーダ1220及びビデオデコーダ1230は、ビデオ圧縮規格に従って動作することができる。ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在の高効率ビデオコーディング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に記載されている。
【0095】
これに加えてあるいはこれに代えて、ビデオエンコーダ1220及びビデオデコーダ1230は、開示されたJVET機能で機能する他の独自規格又は業界規格に従って動作することができる。よって、代替的にはMPEG-4と称されるITU-TH.264規格、パート10、AVC(Advanced Video Coding)、あるいは、それら規格の拡張などの他の規格が挙げられる。よって、JVETのために新たに開発されたが、本開示の技術は、特定のコーディング規格又は特定のコーディング技術に限定されるものではない。ビデオ圧縮に関する規格及び技術の他の例としては、MPEG-2、ITU-TH.263、ならびに、独自規格の又はオープンソースの圧縮形式及び関連形式が挙げられる。
【0096】
ビデオエンコーダ1220及びビデオデコーダ1230は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装することができる。例えば、ビデオエンコーダ1220及びデコーダ1230は、一つ又は複数のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、あるいは、これらの任意の組合せを使用することができる。ビデオエンコーダ1220及びデコーダ1230が、部分的にソフトウェアで実装される場合には、デバイスは、ソフトウェアのための命令を、適切な非一過性のコンピュータ可読ストレージ媒体内に格納することができ、本開示の技術を実行するために、一つ又は複数のプロセッサを使用してハードウェアで命令を実行することができる。ビデオエンコーダ1220及びビデオデコーダ1230のそれぞれは、一つ又は複数のエンコーダ又はデコーダ内に含まれることができ、これらのいずれかは、それぞれのデバイス内の複合エンコーダ/デコーダ(CODEC)の一部として一体化することができる。
【0097】
本明細書において説明する主題の態様は、上述した汎用目的プロセッサ1223及び1233などのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能な命令の一般的なコンテキストにおいて説明することができる。一般に、プログラムモジュールは、特定のタスクを実行したりあるいは特定の抽象データ型を実装したりする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本明細書において説明する主題の態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型コンピューティング環境で実施することもできる。分散型コンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含めてローカルとリモートとの双方のコンピュータストレージ媒体内に配置することができる。
【0098】
メモリの例は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、又はこれらの双方を含む。メモリは、上述した技術を実行するために、ソースコード又はバイナリコードなどの命令を格納することができる。また、メモリは、プロセッサ1223及び1233などのプロセッサによって実行される命令の実行時に、変数又は他の中間情報を格納するために使用することができる。
【0099】
また、ストレージデバイスは、例えばソースコード又はバイナリコードなどの、上述した技術を実行するための命令を格納することができる。ストレージデバイスは、さらに、コンピュータプロセッサによって使用されて操作されるデータを格納することができる。例えば、ビデオエンコーダ1220又はビデオデコーダ1230内のストレージデバイスは、コンピュータシステム1223又は1233によってアクセスされるデータベースとすることができる。ストレージデバイスの他の例は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、磁気ディスク、光ディスク、CD-ROM、DVD、フラッシュメモリ、USBメモリカード、あるいは、コンピュータが読み取り得る任意の他の媒体を含む。
【0100】
メモリ又はストレージデバイスは、ビデオエンコーダ及び/又はデコーダによって使用するための、あるいはそれに関連して使用するための、非一過性のコンピュータ可読ストレージ媒体の一例とすることができる。非一過性のコンピュータ可読ストレージ媒体は、特定の実施形態によって説明する機能を実行し得るように構成され得るようコンピュータシステムを制御するための命令を含む。命令は、一つ又は複数のコンピュータプロセッサによって実行される時には、特定の実施形態において説明することを実行し得るように構成することができる。
【0101】
また、いくつかの実施形態は、フロー図又はブロック図として図示し得るプロセスとして説明されている。それぞれは、操作を順次的なプロセスとして説明し得るが、操作の多くは、並列的に実行することができる、あるいは、同時的に実行することができる。加えて、操作の順序を入れ替えることもできる。プロセスは、図に含まれていない追加的なステップを有することができる。
【0102】
特定の実施形態は、命令実行システム、装置、システム、又は機械によって使用するための、あるいはそれに関連して使用するための、非一過性のコンピュータ可読ストレージ媒体内に実装することができる。コンピュータ可読ストレージ媒体は、特定の実施形態によって説明する方法を実行するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、一つ又は複数のコンピューティングデバイスを含むことができる。命令は、一つ又は複数のコンピュータプロセッサによって実行される時には、特定の実施形態で説明することを実行し得るように構成することができる。
【0103】
本明細書における説明においてならびにそれに続く特許請求の範囲にわたって使用される「1つ」は、文脈が明確に他のことを指示していない限りにおいて、複数の参照を含む。また、明細書における説明においてならびにそれに続く特許請求の範囲にわたって使用される「~内に」の意味は、文脈が明確に他のことを指示していない限りにおいて、「~内に」及び「~上」を含む。
【0104】
本発明の例示的な実施形態について、上記の構造的特徴及び/又は方法的行為に固有の言語において詳細に説明したが、当業者であれば、本発明の新規な教示及び利点から実質的に逸脱することなく、例示的な実施形態において多くの追加的な変形が可能であることを容易に理解し得る。さらに、特許請求の範囲において定義される主題が、必ずしも上述した特定の特徴又は行為に限定されないことが理解され得る。したがって、これらの変形及びすべてのそのような変形が、特許請求の範囲に従って広範な範囲で解釈される本発明の範囲内に含まれることが意図されている。
図1
図2a
図2b
図2c
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12