(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024054392
(43)【公開日】2024-04-16
(54)【発明の名称】映像データをコーディングするための方法、コンピュータシステム、及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/12 20140101AFI20240409BHJP
H04N 19/176 20140101ALI20240409BHJP
H04N 19/159 20140101ALI20240409BHJP
【FI】
H04N19/12
H04N19/176
H04N19/159
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024025597
(22)【出願日】2024-02-22
(62)【分割の表示】P 2022526721の分割
【原出願日】2021-02-02
(31)【優先権主張番号】63/032,216
(32)【優先日】2020-05-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/066,791
(32)【優先日】2020-10-09
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】クリシュナン,マドゥー ペリンガーサリー
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リィウ,シャン
(57)【要約】
【課題】 映像データをコーディングするための方法、コンピュータプログラム、及びコンピュータシステムを提供する。
【解決手段】 映像データが受信され、映像データに対応するハイブリッド変換カーネルのセットが特定される。ハイブリッド変換カーネルのセットの中から、明示的に、又は黙示的に、のいずれかで、ハイブリッド変換カーネルのサブセットが選択される。選択されたハイブリッド変換カーネルのサブセットに基づいて映像データが復号される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
プロセッサが実行する、映像データをコーディングするための方法であって、
映像データを受信するステップと、
前記映像データに対応するハイブリッド変換カーネルのセットを特定するステップと、
ハイブリッド変換カーネルの前記セットの中からハイブリッド変換カーネルのサブセットを選択するステップと、
選択されたハイブリッド変換カーネルの前記サブセットに基づいて前記映像データを復号するステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年5月29日に出願された米国仮特許出願第63/032,216号、及び2020年10月9日に出願された米国特許出願第17/066,791号からの優先権を主張するものであり、それらの全体をここに援用する。
【0002】
この開示は、概してデータ処理の分野に関し、より具体的には映像符号化及び復号に関する。
【背景技術】
【0003】
AOMedia Video 1(AV1)は、インターネット上での映像伝送向けに設計されたオープンな映像コーディングフォーマットである。これは、半導体企業、ビデオ・オン・デマンドプロバイダ、ビデオコンテンツ制作者、ソフトウェア開発企業、ウェブブラウザベンダを含んで2015年に設立されたコンソーシアムであるAlliance for Open Media(AOMedia)によって、VP9の後継として開発されたものである。AV1プロジェクトのコンポーネントの多くは、アライアンスメンバによるそれまでの研究努力をもとにしたものである。個々の寄稿者は何年も前から試験的な技術プラットフォームを開始しており、Xiph/MozillaのDaalaは2010年に既にコードを公開し、Googleの試験的なVP9進化プロジェクトVP10が2014年9月12日に発表され、CiscoのThorが2015年8月11日に発表している。VP9のコードベースに基づいて、AV1は追加の技術を組み込んでおり、それらの一部はこれらの試験的なフォーマットで開発されたものである。AV1リファレンスコーデックの最初のバージョン0.1.0が2016年4月7日に公表された。当該アライアンスは、2018年3月28日に、AV1ビットストリーム仕様のリリースを、リファレンスのソフトウェアベースのエンコーダ及びデコーダと共に発表した。2018年6月25日に、検証済みのバージョン1.0.0の仕様がリリースされた。2019年1月8日に、Errata 1の仕様を備えた検証済みバージョン1.0.0がリリースされた。AV1ビットストリーム仕様は、リファレンスビデオコーデックを含んでいる。
【発明の概要】
【0004】
実施形態は、映像データをコーディングするための方法、システム、及びコンピュータ読み取り可能媒体に関する。一態様によれば、映像データをコーディングするための方法が提供される。当該方法は、映像データを受信することを含み得る。映像データに対応するハイブリッド変換カーネルのセットが特定される。ハイブリッド変換カーネルのセットの中から、明示的に、又は黙示的に、のいずれかで、ハイブリッド変換カーネルのサブセットが選択される。選択されたハイブリッド変換カーネルのサブセットに基づいて映像データが復号される。
【0005】
他の一態様によれば、映像データをコーディングするためのコンピュータシステムが提供される。当該コンピュータシステムは、1つ以上のプロセッサ、1つ以上のコンピュータ読み取り可能メモリ、1つ以上のコンピュータ読み取り可能な有形ストレージ装置、及び上記1つ以上のメモリのうちの少なくとも1つを介した上記1つ以上のプロセッサのうちの少なくとも1つによる実行するために上記1つ以上のストレージ装置のうちの少なくとも1つに格納されたプログラム命令と、を含むことができ、それにより当該コンピュータシステムは方法を実行することができる。当該方法は、映像データを受信することを含み得る。映像データに対応するハイブリッド変換カーネルのセットが特定される。ハイブリッド変換カーネルのセットの中から、明示的に、又は黙示的に、のいずれかで、ハイブリッド変換カーネルのサブセットが選択される。選択されたハイブリッド変換カーネルのサブセットに基づいて映像データが復号される。
【0006】
他の一態様によれば、映像データをコーディングするためのコンピュータ読み取り可能媒体が提供される。当該コンピュータ読み取り可能媒体は、1つ以上のコンピュータ読み取り可能ストレージ装置と、該1つ以上の有形のストレージ装置のうちの少なくとも1つに格納された、プロセッサによって実行可能なプログラム命令と、を含み得る。当該プログラム命令は、それに従って映像データを受信することを含み得る方法を実行するようにプロセッサによって実行可能である。映像データに対応するハイブリッド変換カーネルのセットが特定される。ハイブリッド変換カーネルのセットの中から、明示的に、又は黙示的に、のいずれかで、ハイブリッド変換カーネルのサブセットが選択される。選択されたハイブリッド変換カーネルのサブセットに基づいて映像データが復号される。
【図面の簡単な説明】
【0007】
これらの及び他の目的、特徴及び利点が、添付の図面との関連で読まれるものである以下の例示的実施形態の詳細な説明から明らかになる。これらの図示は、詳細な説明とともに当業者の理解を容易にする上での明瞭さのためのものであり、図面の様々なフィーチャは縮尺通りではない。
【
図1】少なくとも1つの実施形態に従ったネットワーク化コンピュータ環境を示している。
【
図2】少なくとも1つの実施形態に従った、例示的な線グラフ変換である。
【
図3】少なくとも1つの実施形態に従った、黙示的又は明示的にハイブリッド変換カーネルを選択することに基づいて映像データをコーディングするプログラムによって実行されるステップを示す動作フローチャートである。
【
図4】少なくとも1つの実施形態に従った、
図1に示したコンピュータ及びサーバの内部及び外部コンポーネントのブロック図である。
【
図5】少なくとも1つの実施形態に従った、
図1に示したコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも1つの実施形態に従った、
図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0008】
特許請求される構造及び方法の詳細な実施形態がここに記載されるが、理解され得ることには、開示される実施形態は、単に、様々な形態で具現化され得る特許請求される構造及び方法を例示するものに過ぎない。これらの構造及び方法は、数多くの異なる形態で具体化されることができ、ここに記載される例示的な実施形態に限定されるものとして解釈されるべきでない。むしろ、これら例示的な実施形態は、この開示が徹底的であり且つ完成したものであって範囲を当業者に十分に伝えることになるように提供されるものである。説明において、周知の機構及び技術の詳細は、提示する実施形態をいたずらに不明瞭にすることがないよう、省略されることがある。
【0009】
実施形態は、概してデータ処理の分野に関し、より具体的には映像符号化及び復号に関する。以下に記載される例示的な実施形態は、とりわけ、黙示的に又は明示的に、のいずれかでハイブリッド変換カーネルを選択することに基づいて映像データを符号化及び復号するためのシステム、方法、及びコンピュータプログラムを提供する。従って、一部の実施形態は、映像データからコンピュータによって黙示され得るハイブリッド変換カーネルの使用を通じて、高められたコーディング効率を可能にすることによって、コンピューティングの分野を改善する能力を持つ。
【0010】
前述のように、AOMedia Video 1(AV1)は、インターネット上での映像伝送向けに設計されたオープンな映像コーディングフォーマットである。これは、半導体企業、ビデオ・オン・デマンドプロバイダ、ビデオコンテンツ制作者、ソフトウェア開発企業、ウェブブラウザベンダを含んで2015年に設立されたコンソーシアムであるAlliance for Open Media(AOMedia)によって、VP9の後継として開発されたものである。AV1プロジェクトのコンポーネントの多くは、アライアンスメンバによるそれまでの研究努力をもとにしたものである。個々の寄稿者は何年も前から試験的な技術プラットフォームを開始しており、Xiph/MozillaのDaalaは2010年に既にコードを公開し、Googleの試験的なVP9進化プロジェクトVP10が2014年9月12日に発表され、CiscoのThorが2015年8月11日に発表している。VP9のコードベースに基づいて、AV1は追加の技術を組み込んでおり、それらの一部はこれらの試験的なフォーマットで開発されたものである。AV1リファレンスコーデックの最初のバージョン0.1.0が2016年4月7日に公表された。当該アライアンスは、2018年3月28日に、AV1ビットストリーム仕様のリリースを、リファレンスのソフトウェアベースのエンコーダ及びデコーダと共に発表した。2018年6月25日に、検証済みのバージョン1.0.0の仕様がリリースされた。2019年1月8日に、Errata 1の仕様を備えた検証済みバージョン1.0.0がリリースされた。AV1ビットストリーム仕様は、リファレンスビデオコーデックを含んでいる。
【0011】
各コーディングブロックが1つの変換タイプしか持たないVP9とは異なり、AV1は各変換ブロックが独立してそれ自身の変換カーネルを選択することを可能にする。AV1は、イントラ予測残差をコーディングするためにハイブリッド変換カーネルのセットを利用する。ハイブリッド変換カーネルは、一般に、例えばDCT、ADST、逆ADST(FLIPADDST)及びアイデンティティ変換(IDTX)などの、様々な1Dカーネルの組み合わせに拡張される2D分離可能変換カーネルを指す。ハイブリッド変換カーネルのセット、及びルマイントラ予測残差に対するそれらの利用可能性は、残差ブロックのサイズに依存する。クロマイントラ予測残差に対して、変換タイプ選択は、イントラ予測モードに依存して黙示的なやり方で行われる。しかしながら、AV2開発プロセスにおけるLGT(及びその逆バージョン)及びKLTの導入に伴い、ルマ及びクロマイントラ予測残差をコーディングするのに利用可能なハイブリッド変換カーネルのセットが拡張している。この拡張セットから特定のハイブリッド変換タイプを選択し、それらを残留コーディングブロック各々に対してビットストリーム内でシグナリングすることは、追加の計算複雑性及びビットレートオーバヘッドを招く。従って、コーディング性能を改善しながら、計算複雑性及びビットレートオーバヘッドも低減させるために、残差の大きさにおける変化の方向性を利用すべく、イントラモード依存且つ残差ブロックサイズ依存のLGT及びKLTを使用することが有利であり得る。
【0012】
ここでは態様を、様々な実施形態に従った方法、装置(システム)、及びコンピュータ読み取り可能媒体のフローチャート図及び/又はブロック図を参照して説明する。理解されることには、フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ読み取り可能プログラム命令によって実装されることができる。
【0013】
次に、黙示的又は明示的にハイブリッド変換カーネルを選択することに基づいて映像データを符号化及び復号するための映像コーディングシステム100(以下、“システム”)を示すネットワーク化コンピュータ環境の機能ブロック図である
図1を参照する。理解されるべきことには、
図1は、単に一実装の例示を提供するにすぎず、複数の異なる実施形態が実装され得る環境に関する如何なる限定も意味しない。図示された環境に対する数多くの変更が、設計及び実装要件に基づいて為され得る。
【0014】
システム100は、コンピュータ102及びサーバコンピュータ114を含み得る。コンピュータ102は、通信ネットワーク110(以下、“ネットワーク”)を介してサーバコンピュータ114と通信し得る。コンピュータ102は、プロセッサ104と、データストレージ装置106に格納されたソフトウェアプログラム108とを含むことができ、ユーザとインタフェースし、サーバコンピュータ114と通信することを可能にされる。
図4を参照して後述するように、コンピュータ102は、内部コンポーネント800A及び外部コンポーネント900Aをそれぞれ含むことができ、サーバコンピュータ114は、内部コンポーネント800B及び外部コンポーネント900Bをそれぞれ含むことができる。コンピュータ102は、例えば、モバイル装置、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又は、プログラムを実行し、ネットワークにアクセスし、及びデータベースにアクセスすることが可能な任意のタイプのコンピューティング装置とし得る。
【0015】
サーバコンピュータ114はまた、
図5及び
図6に関して後述するように、例えばソフトウェア・アズ・ア・サービス(SaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、又はインフラストラクチャ・アズ・ア・サービス(IaaS)などの、クラウドコンピューティングサービスモデルにて動作してもよい。サーバコンピュータ114はまた、例えばプライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウドなどの、クラウドコンピューティング展開モデル内に置かれてもよい。
【0016】
黙示的又は明示的にハイブリッド変換カーネルを選択することに基づいて映像データをコーディングするために使用され得るものであるサーバコンピュータ114は、データベース112とインタラクトし得る映像コーディングプログラム116(以下、“プログラム”という)を実行することを可能にされている。映像コーディングプログラム方法については、後で
図3に関して更に詳細に説明する。一実施形態において、コンピュータ102は、ユーザインタフェースを含む入力装置として動作することができ、一方、プログラム116は、主としてサーバコンピュータ114上で走り得る。代わりの一実施形態において、プログラム116は主として1つ以上のコンピュータ102上で走ってもよく、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及びストレージのために使用されてもよい。なお、プログラム116は、スタンドアローンのプログラムであってもよいし、より大きい映像コーディングプログラムに統合されてもよい。
【0017】
しかしながら、留意されたいことには、プログラム116のための処理は、一部の例において、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよい。他の一実施形態において、プログラム116は、2つ以上のコンピュータ、サーバコンピュータ、又はコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110を横切って単一のサーバコンピュータ114と通信する複数のコンピュータ102、の上で動作し得る。他の一実施形態において、例えば、プログラム116は、ネットワーク110を横切って複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作し得る。あるいは、プログラムは、ネットワークを横切ってサーバ及び複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0018】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、又はこれらの何らかの組み合わせを含み得る。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間での通信をサポートする接続及びプロトコルの任意の組み合わせとすることができる。ネットワーク110は、例えばローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)などの遠隔通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多重アクセス(CDMA)ネットワークなど)、公衆陸上モバイルネットワーク(PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワーク、若しくはこれらに類するもの、及び/又はこれらの若しくは他のタイプのネットワークの組合せなどの、様々なタイプのネットワークを含み得る。
【0019】
図1に示す装置及びネットワークの数及び構成は、一例として提供されている。実際には、
図1に示すものに対して、追加の装置及び/又はネットワーク、より少ない装置及び/又はネットワーク、異なる装置及び/又はネットワーク、又は異なるように構成された装置及び/又はネットワークが存在し得る。さらに、
図1に示す2つ以上の装置が単一の装置内に実装されてもよいし、あるいは
図1に示す単一の装置が複数の分散された装置として実装されてもよい。加えて、あるいは代わりに、システム100の一組の装置(例えば、1つ以上の装置)が、システム100の別の一組の装置によって実行されるものとして説明される1つ以上の機能を実行してもよい。
【0020】
次に
図2を参照するに、例示的な線グラフ変換(line graph transform;LGT)200が示されている。グラフは、関心オブジェクト間の親和(アフィニティ)関係をモデル化するのに使用される頂点及びエッジのセットで構成される一般的な数学的構造とし得る。実際には、重み付きグラフ(それに対して、重みのセットがエッジ及び場合により頂点に割り当てられる)が、信号/データのロバストなモデル化のためのスパース表現を提供し得る。LGTは、多様なブロック統計量に対するより良い適応を提供することによってコーディング効率を改善することができる。分離可能なLGTは、ブロック残差信号の、内在する行及び列的な統計量をモデル化するために、データから線グラフを学習することによって設計及び最適化されることができ、関連する一般化グラフラプラシアン(generalized graph Laplacian;GGL)行列がLGTを導出するために使用される。
【0021】
例えば、重み付きグラフG(W,V)を所与として、GGL行列が、L
c=D-W+Vとして定義され得る。ここで、Wは、非負のエッジ重みwcで構成される隣接行列とすることができ、Dは、対角次数行列とすることができ、Vは、重み付き自己ループv
c1、v
c2を示す対角行列とすることができる。行列L
cは:
【数1】
として表されることができる。
【0022】
そして、LGTを、GGL Lc:UΦUTの固有分解によって導出することができ、ここで、直交行列Uの列はLGTの基底ベクトルであり、Φは対角固有値行列である。実際、DCT-2、DCT-8及びDST-7を含め、離散コサイン変換(DCT)及び離散サイン変換(DST)は、ある特定の形態のGGLから導出されるLGTである。DCT-2は、vc1=0に設定することによって導出される。DST-7は、vc1=wcに設定することによって導出される。DCT-8は、vc2=wcに設定することによって導出される。DST-4は、vc1=2wcに設定することによって導出される。DCT-4は、vc2=2wcに設定することによって導出される。
【0023】
LGTは、変換サイズ4、8、及び16での行列乗法を用いて実装される。4点LGTコアは、Lcにおいてvc1=2wcに設定することによって導出され、これは、それがDST-4であることを意味する。8点LGTコアは、Lcにおいてvc1=1.5wcに設定することによって導出され、16点LGTコアは、Lcにおいてvc1=wcに設定することによって導出され、これは、それがDST-7であることを意味する。
【0024】
ハイブリッド変換カーネルの拡張セットを、セットAと称し得る。セットAは、離散コサイン変換(DCT)、アイデンティティ変換(IDTX、これは特定方向において変換コーディングをスキップする)、非対称(asymmetric)離散サイン変換(ADST)、逆(flipped)非対称離散サイン変換(FLIPADST、これは逆順にADSTを適用する)、線グラフ変換(LGT)、逆(flipped)線グラフ変換(FLIPLGT)、カヌーレン・レーベ変換(Karhunen-Loeve Transform;KLT)などの全ての組み合わせを網羅的に含む。変換タイプの縮小セットとし得るものであるAの要素のサブセットをxと称することができ、それ故に、x∈Aである。サブセットxは、1つ以上の変換タイプ(例えば、DCT、ADST、LGT、KLT)及び/又は垂直変換タイプと水平変換タイプとの1つ以上の組み合わせ(例えば、DCT_DCT、LGT_LGT、DCT_LGT、LGT_DCT)を含み得る。
【0025】
1つ以上の実施形態によれば、エンコーダ及びデコーダの双方に利用可能なコーディングされた情報に基づいてハイブリッド変換タイプが選択され得るように、xの要素を選択するために黙示的な方法が使用され得る。従って、デコーダにおける変換タイプを指定するための追加のシグナリングは必要とされないとし得る。一実施形態において、この選択は、イントラ予測モード及び/又はブロックサイズに依存して行われ得る。一実施形態において、8つの公称モード、5つの非角度平滑モード、及び角度デルタ値(例えば、-3から+3)のうちの1つ以上が選択プロセス中に考慮され得る。一実施形態において、方向イントラ予測モードに対しては、公称モードのみが、変換タイプを選択するのに用いられてもよい(すなわち、異なる角度デルタ値であるが同じ公称モードを共有する方向イントラ予測モードは、同じ黙示の変換タイプを適用し得る)。
【0026】
一実施形態において、再帰フィルタリングモード及びDCモードでは、同じハイブリッド変換タイプを選択する。一実施形態において、再帰フィルタリングモード及びSMOOTHモードは、同じハイブリッド変換タイプを選択する。一実施形態において、SMOOTH、SMOOTH_H、SMOOTH_Vモードは、同じハイブリッド変換タイプを選択する。一実施形態において、SMOOTH、SMOOTH_H、SMOOTH_V及びPaeth予測モードは、同じハイブリッド変換タイプを選択する。一実施形態において、再帰フィルタリングモード、SMOOTH及びPaeth予測モードは、同じハイブリッド変換タイプを選択する。一実施形態において、垂直モード(V_PRED)及びSMOOTH_V予測モードは、同じハイブリッド変換タイプを選択する。一実施形態において、水平モード(H_PRED)及びSMOOTH_H予測モードは同じハイブリッド変換タイプを選択する。一実施形態において、CfLモード及びDCモードは、同じハイブリッド変換タイプを選択する。一実施形態において、CfLモード及びSMOOTHモードは、同じハイブリッド変換タイプを選択する。一実施形態において、CfLモード及びPaethモードは、同じハイブリッド変換タイプを選択する。
【0027】
一実施形態において、8つの公称モード、5つの非角度平滑モード、及び角度デルタ値(例えば、-3から+3)、並びにブロックサイズのうちの1つ以上に依存して、異なる自己ループ重み(vc1、vc2)を有するLGTが使用され得る。一実施形態において、8つの公称モード、5つの非角度平滑、及び角度デルタ値(例えば、-3から+3)、並びにブロックサイズのうちの1つ以上に依存して、異なる統計特性を有するKLTが使用され得る。一実施形態において、ルマ成分及びクロマ成分の両方に対して有効にされ得る同じイントラ予測モードに対して、黙示のハイブリッド変換選択は同じとし得る。
【0028】
1つ以上の実施形態によれば、ビットストリーム内でシグナリングされるシンタックスによって選択が特定される必要があり得る(すなわち、エンコーダがブロックレベルで変換タイプを明示的に選択及びシグナリングする必要がある)ように、xの要素を選択するための明示的方法が提案され得る。ブロックレベルは、スーパーブロックレベル、コーディングブロックレベル、予測ブロックレベル、又は変換ブロックレベルを含み得る。一実施形態において、明示的な変換方式(少なくとも2つの変換タイプ候補)を、全てのイントラ予測モードに適用することができるが、ハイブリッド変換候補の数は、異なるイントラ予測モードに対して異なることができる。他の一実施形態において、一部のイントラ予測モードでは、黙示的又は明示的のいずれかの変換方式を使用することができる一方で、他のイントラ予測モードは、黙示的な変換方式(利用可能な変換タイプが1つのみ)を適用する。一実施形態において、明示的な変換方式がLGTの使用を伴うとき、LGT候補を規定する自己ループ重みの識別子をブロックレベルでビットストリームにてシグナリングすることができ、該識別子は、関連する自己ループレート値のインデックス又は自己ループレート値のいずれかとすることができる。一実施形態において、明示的な変換方式がKLTの使用を伴うとき、KLTカーネルの識別子をブロックレベルでビットストリームにてシグナリングすることができ、該識別子は、KLTのインデックス又はKLT行列要素値のいずれかとすることができる。
【0029】
明示的な方法と黙示的な方法との間の切り換えは、ハイレベルシンタックス又はブロックレベルのいずれかで指し示されることができる。選択がHLSで指し示され得る場合、それは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダを含み得る。ブロックレベルで切り換えが指し示され得る場合、それはスーパーブロックレベル、コーディングブロックレベル、予測ブロックレベル、及び/又は変換ブロックレベルを含み得る。
【0030】
次に
図3を参照するに、映像データをコーディングするための方法300のステップを示す動作フローチャートが示されている。一部の実装において、
図3の1つ以上のプロセスブロックは、コンピュータ102(
図1)及びサーバコンピュータ114(
図1)によって実行され得る。一部の実装では、
図3の1つ以上のプロセスブロックは、コンピュータ102及びサーバコンピュータ114とは別個の、又はそれらを含んだ、別の装置又は装置群によって実行されてもよい。
【0031】
302にて、方法300は、映像データを受信することを含む。
【0032】
304にて、方法300は、映像データに対応するハイブリッド変換カーネルのセットを特定することを含む。
【0033】
306にて、方法300は、ハイブリッド変換カーネルのセットの中から、明示的に又は黙示的に、のいずれかでハイブリッド変換カーネルのサブセットを選択することを含む。
【0034】
308にて、方法300は、選択されたハイブリッド変換カーネルのサブセットに基づいて映像データを復号することを含む。
【0035】
理解され得ることには、
図3は、単に1つの実装の例示を提供するものであり、異なる実施形態がどのように実装され得るかに関して如何なる限定も意味するものではない。図示された環境に対する数多くの変更が、設計及び実装要件に基づいて為され得る。
【0036】
図4は、例示的な一実施形態に従った、
図1に示したコンピュータの内部及び外部コンポーネントのブロック
図400である。理解されるべきことには、
図4は、単に1つの実装の例示を提供するものであり、異なる実施形態が実装され得る環境に関して如何なる限定も意味するものではない。図示された環境に対する数多くの変更が、設計及び実装要件に基づいて為され得る。
【0037】
コンピュータ102(
図1)及びサーバコンピュータ114(
図1)は、
図4に示すそれぞれの内部コンポーネントのセット800A、B及び外部コンポーネントのセット900A、Bを含み得る。内部コンポーネントのセット800の各々は、1つ以上のバス826上の、1つ以上のプロセッサ820、1つ以上のコンピュータ読み取り可能RAM822、及び1つ以上のコンピュータ読み取り可能ROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ読み取り可能な有形ストレージ装置830とを含んでいる。
【0038】
プロセッサ820は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ820は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理コンポーネントである。一部の実装において、プロセッサ820は、機能を実行するようにプログラムされることが可能な1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、B間の通信を可能にするコンポーネントを含む。
【0039】
サーバコンピュータ114(
図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、及び映像コーディングプログラム116(
図1)は、それぞれのRAM822(典型的にキャッシュメモリを含む)のうちの1つ以上を介したそれぞれのプロセッサ820のうちの1つ以上による実行のために、それぞれのコンピュータ読み取り可能な有形ストレージ装置830のうちの1つ以上に格納される。
図4に示す実施形態において、コンピュータ読み取り可能な有形ストレージ装置830の各々は、内部ハードドライブの磁気ディスクストレージ装置である。あるいは、コンピュータ読み取り可能な有形ストレージ装置830の各々は、例えばROM824、EPROM、フラッシュメモリなどの半導体ストレージ装置、光ディスク、磁気光ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク(登録商標)、カートリッジ、磁気テープ、及び/又は、コンピュータプログラム及びデジタル情報を格納することができる別タイプの非一時的コンピュータ読み取り可能有形ストレージ装置である。
【0040】
内部コンポーネントの各セット800A、Bはまた、例えばCD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、又は半導体ストレージ装置などの、1つ以上のポータブルコンピュータ読み取り可能有形ストレージ装置936から読み出す及びそれに書き込むための、R/Wドライブ又はインタフェース832を含んでいる。例えばソフトウェアプログラム108(
図1)及び映像コーディングプログラム116(
図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ読み取り可能有形ストレージ装置936のうちの1つ以上に格納され、それぞれのR/Wドライブ又はインタフェース832を介して読み出され、そして、それぞれのハードドライブ830にロードされることができる。
【0041】
内部コンポーネントの各セット800A、Bはまた、例えばTCP/IPアダプタカード、無線Wi-Fiインタフェースカード、又は3G、4G、若しくは5G無線インタフェースカード、又は他の有線若しくは無線通信リンクなどの、ネットワークアダプタ又はインタフェース836を含んでいる。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)及び映像コーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又はその他、ワイドエリアネットワーク)及びそれぞれのネットワークアダプタ又はインタフェース836を介して、外部コンピュータからコンピュータ102(
図1)及びサーバコンピュータ114にダウンロードされることができる。ネットワークアダプタ又はインタフェース836から、サーバコンピュータ114上のソフトウェアプログラム108及び映像コーディングプログラム116がそれぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイコンピュータ、及び/又はエッジサーバを有し得る。
【0042】
外部コンポーネントのセット900A、Bの各々は、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934を含むことができる。外部コンポーネント900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティング装置、及び他のヒューマンインタフェース装置を含むことができる。内部コンポーネントのセット800A、Bの各々はまた、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934にインタフェースするためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブ又はインタフェース832、及びネットワークアダプタ又はインタフェース836は、ハードウェア及び(ストレージ装置830及び/又はROM824に格納された)ソフトウェアを有する。
【0043】
予め理解されることには、この開示はクラウドコンピューティングに関する詳細な説明を含むが、ここに記載される教示の実装はクラウドコンピューティング環境に限定されるものではない。むしろ、一部の実施形態は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と共に実装されることが可能である。
【0044】
クラウドコンピューティングは、コンフィギュラブルなコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの簡便でオンデマンドなネットワークアクセスを可能にするためのサービス提供の一モデルであり、該共有プールは、最小限の、管理努力又はサービスプロバイダとのやりとりで、迅速に、使えるようにされる及び解放されることができる。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0045】
特徴は以下の通りである:
オンデマンドセルフサービス: クラウド利用者は、サービスプロバイダとの人的やりとりを必要とせずに、一方的に、例えばサーバ時間及びネットワークストレージなどのコンピューティング能力を必要なままに自動的に使えるようにすることができる;
ブロードネットワークアクセス: 機能は、ネットワーク上で利用可能であり、異種のシン・クライアント又はシック・クライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準機構を通じてアクセスされる;
リソースプーリング: プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の利用者にサービス提供するためにプールされ、異なる物理リソース及び仮想リソースが、要求に従って動的に割り当てられ、そして割り当て直される。利用者は一般に、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)で位置を指定することができ得るが、提供されるリソースの正確な位置についての制御又は知識を持たないという点で、位置独立という感覚がある;
迅速な順応性: 機能は、迅速にスケールアウトするように、一部ケースでは自動的に、迅速且つ弾力的に使えるようにされることができ、そして、迅速にスケールインするように迅速に解放されることができる。利用者にとって、プロビジョニングに利用可能な能力はしばしば無制限であるように見え、いつでもどんな量でも購入することができる;
測定されるサービス: クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適したレベルの抽象化で計測機能を利用することにより、自動的にリソース利用を制御及び最適化する。リソースの使用をモニタし、制御し、報告して、利用されるサービスのプロバイダ及び利用者の双方に透明性を提供することができる。
【0046】
サービスモデルは以下の通りである:
ソフトウェア・アズ・ア・サービス(SaaS): 利用者に提供される機能は、クラウドインフラストラクチャ上で走るプロバイダのアプリケーションを使用することである。アプリケーションは、例えばウェブブラウザなどのシン・クライアントインタフェース(例えば、ウェブベースの電子メール)を介して、様々なクライアント装置からアクセス可能である。利用者は、限られたユーザ固有のアプリケーションコンフィギュレーション設定を例外とし得るが、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は更には個々のアプリケーション機能を含め、基礎となるクラウドインフラストラクチャを管理したり制御したりはしない;
プラットフォーム・アズ・ア・サービス(PaaS): 利用者に提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成された、利用者が作成又は取得したアプリケーションを、クラウドインフラストラクチャ上に展開することである。利用者は、展開したアプリケーション及び場合によりアプリケーションホスティング環境設定についての制御を有するが、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含め、基礎となるクラウドインフラストラクチャを管理したり制御したりはしない;
インフラストラクチャ・アズ・ア・サービス(IaaS): 利用者に提供される機能は、オペレーティングシステム及びアプリケーションを含み得るものである任意のソフトウェアを利用者が展開して走らせることができる処理リソース、ストレージリソース、ネットワークリソース、及びその他の基本的なコンピューティングリソースを使えるようにすることである。利用者は、オペレーティングシステム、ストレージ、展開したアプリケーションについての制御、及び場合によりネットワークコンポーネント(例えば、ホストファイアウォール)を選択することについての限られた制御を有するが、基礎となるクラウドインフラストラクチャを管理したり制御したりはしない。
【0047】
展開モデルは以下の通りである:
プライベートクラウド: クラウドインフラストラクチャが、ある組織のためだけに運用される。これは、その組織又は第三者によって管理されることができ、敷地内に存在してもよいし敷地外に存在してもよい;
コミュニティクラウド: クラウドインフラストラクチャが、幾つかの組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要求、ポリシー、及びコンプライアンス考慮)を持つ特定のコミュニティをサポートする。これは、それらの組織又は第三者によって管理されることができ、敷地内に存在してもよいし敷地外に存在してもよい;
パブリッククラウド: クラウドインフラストラクチャが、一般人又は大規模な業界団体に利用可能にされるとともに、クラウドサービスを販売する組織によって所有される;
ハイブリッドクラウド: クラウドインフラストラクチャが、2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)を合成したものであり、それら2つ以上のクラウドは、固有のエンティティのままではあるが、データ及びアプリケーションの移植性(クラウド間での負荷バランシングのためのクラウドバースティングなど)を可能にする標準化技術又は独自技術によって共に結合される。
【0048】
クラウドコンピューティング環境は、ステートレス性、疎結合性、モジュール性、及び意味論的相互運用性に焦点を当てたサービス指向のものである。クラウドコンピューティングの中心にあるのでは、相互接続されたノードのネットワークを有するインフラストラクチャである。
【0049】
図5を参照するに、例示的なクラウドコンピューティング環境500が示されている。図示のように、クラウドコンピューティング環境500は、1つ以上のクラウドコンピューティングノード10を有し、それを用いて、例えば携帯情報端末(PDA)若しくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなどの、クラウド利用者によって使用されるローカルなコンピューティング装置が通信し得る。クラウドコンピューティングノード10は互いに通信し得る。それらは、例えばここで上述したプライベート、コミュニティ、パブリック、若しくはハイブリッドクラウド、又はこれらの組み合わせなどの、1つ以上のネットワーク内で物理的又は仮想的にグループ化(図示せず)されてもよい。これは、クラウド利用者がローカルなコンピューティング装置上でリソースを維持管理する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアをクラウドコンピューティング環境500が提供することを可能にする。理解されることには、
図4に示すコンピューティング装置54A-54Nのタイプは単に例示であることを意図しており、クラウドコンピューティングノード10及びクラウドコンピューティング環境500は、任意のタイプのネットワーク及び/又はネットワークアドレッサブル接続(例えば、ウェブブラウザを使用する)上で任意のタイプのコンピュータ化装置と通信することができる。
【0050】
図6を参照するに、クラウドコンピューティング環境500(
図5)によって提供される機能抽象化層のセット600が示されている。予め理解されるべきことには、
図6に示すコンポーネント、層、及び機能は単に例示であることを意図したものであり、実施形態はこれに限定されるものではない。図示のように、以下の層及び対応する機能が提供される。
【0051】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、ストレージ装置65、並びにネットワーク及びネットワーキングコンポーネント66を含む。一部の実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68を含む。
【0052】
仮想化層70は抽象化層を提供し、そこから、仮想エンティティの以下の例:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75が提供され得る。
【0053】
一例において、管理層80は、後述する機能を提供し得る。リソースプロビジョニング81が、クラウドコンピューティング環境内でタスクを実行するのに利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格決定82が、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡と、これらのリソースの消費に対する請求書作成又はインボイス作成とを提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを有し得る。セキュリティが、クラウド利用者及びタスクに対する身元確認と、データ及び他のリソースの保護とを提供する。ユーザポータル83が、利用者及びシステム管理者に対してクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84が、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービス内容合意書(SLA)立案及び充足85が、SLAに従って、将来の要求が予測されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0054】
ワークロード層90は、それらに対してクラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例は、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室授業配信93、データ分析処理94、トランザクション処理95、及び映像コーディング96を含む。映像コーディング96は、黙示的又は明示的にハイブリッド変換カーネルを選択することに基づいて映像データを符号化及び復号し得る。
【0055】
一部の実施形態は、任意の可能な技術的詳細レベルのインテグレーションでのシステム、方法、及び/又はコンピュータ読み取り可能媒体に関し得る。コンピュータ読み取り可能媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能プログラム命令を有するコンピュータ読み取り可能な非一時的記憶媒体(又は複数媒体)を含み得る。
【0056】
コンピュータ読み取り可能記憶媒体は、命令実行装置による使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ読み取り可能記憶媒体は、例えば、以下に限られないが、電子ストレージ装置、磁気ストレージ装置、光ストレージ装置、電磁ストレージ装置、半導体ストレージ装置、又はこれらの任意の好適な組み合わせとし得る。コンピュータ読み取り可能記憶媒体のいっそう具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク(登録商標)、命令を記録した例えばパンチカード若しくは溝内の隆起構造などの機械的に符号化されたデバイス、及びこれらの任意の好適な組み合わせを含む。コンピュータ読み取り可能記憶媒体は、ここで使用されるとき、例えば電波若しくは他の自由伝播する電磁波、導波路若しくは他の伝送媒体中を伝播する電磁波(例えば、光ファイバケーブル中を通る光パルス)、又はワイヤ中を伝送される電気信号などの、一時的な信号それ自体であると解釈されるものではない。
【0057】
ここに記載されるコンピュータ読み取り可能プログラム命令は、コンピュータ読み取り可能記憶媒体からそれぞれのコンピューティング/プロセッシング装置にダウンロードされることができ、あるいは、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又は無線ネットワークといった、ネットワークを介して、外部コンピュータ又は外部ストレージ装置にダウンロードされることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイコンピュータ、及び/又はエッジサーバを有し得る。各コンピューティング/プロセッシング装置内のネットワークアダプタカード又はネットワークインタフェースが、ネットワークからコンピュータ読み取り可能プログラム命令を受信し、該コンピュータ読み取り可能プログラム命令を、それぞれのコンピューティング/プロセッシング装置内のコンピュータ読み取り可能記憶媒体に記憶するために転送する。
【0058】
動作を実行するためのコンピュータ読み取り可能プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用のコンフィグレーションデータ、又は例えばSmalltalk、C++、若しくはこれらに類するものなどのオブジェクト指向プログラミング言語、及び“C”プログラミング言語若しくは類似のプログラミング言語などの手続き型プログラミング言語を含め、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかとし得る。コンピュータ読み取り可能プログラム命令は、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアローンのソフトウェアパッケージとして、部分的にユーザのコンピュータ上で且つ部分的に遠隔コンピュータ上で、又は完全に遠隔コンピュータ若しくはサーバ上で実行され得る。後者のシナリオにおいて、遠隔コンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含め、任意のタイプのネットワークを介してユーザのコンピュータに接続されることができ、あるいは、(例えば、インターネットサービスプロバイダを用いてインターネットを介して)外部コンピュータに対して接続が為されてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路が、態様又は動作を実行するために、コンピュータ読み取り可能プログラム命令の状態情報を利用して当該電子回路をパーソナライズすることによって、コンピュータ読み取り可能プログラム命令を実行し得る。
【0059】
これらのコンピュータ読み取り可能プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されてマシンを生成することで、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックに規定された機能/行為を実行するための手段を作り出すようにし得る。これらのコンピュータ読み取り可能プログラム命令はまた、特定の方法で機能するようにコンピュータ、プログラマブルデータ処理装置、及び/又は他の装置に指示することができるコンピュータ読み取り可能記憶媒体に格納されることで、命令を格納した該コンピュータ読み取り可能記憶媒体が、フローチャート及び/又はブロック図の1つ以上のブロックに規定された機能/行為の態様を実行する命令を含む製造物品を有するようにし得る。
【0060】
コンピュータ読み取り可能プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置にロードされて、一連の動作ステップが該コンピュータ、他のプログラマブル装置、又は他の装置上で実行されてコンピュータ実装プロセスを生成することで、該コンピュータ、他のプログラマブル装置、又は他の装置上で実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックに規定された機能/行為を実行するようにし得る。
【0061】
図におけるフローチャート及びブロック図は、様々な実施形態に従ったシステム、方法、及びコンピュータ読み取り可能媒体の取り得る実装のアーキテクチャ、機能、及び動作を示している。これに関し、フローチャート又はブロック図の各ブロックは、特定の(1つ以上の)論理機能を実装するための1つ以上の実行可能命令を有するモジュール、セグメント、又は命令部分を表し得る。当該方法、コンピュータシステム、及びコンピュータ読み取り可能媒体は、図に示したものに対して、追加のブロック、より少ないブロック、異なるブロック、又は異なるように構成されたブロックを含み得る。代わりの一部の実装では、ブロックにて言及された機能は、図で言及された順序とは順不同で行われてもよい。例えば、相次いで示された2つのブロックが実際には同時に又は実質的に同時に実行されてもよく、あるいは、関与する機能に応じて、ブロックが逆の順序で実行されてもよいことがある。これまた留意されたいことには、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフロー図のブロックの組み合わせは、規定された機能又は行為を実行する、あるいは専用ハードウェア及びコンピュータ命令の組み合わせを実行する、専用ハードウェアベースのシステムによって実装されることができる。
【0062】
理解されることには、ここに記載されたシステム及び/又は方法は、様々な形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせにて実装され得る。これらのシステム及び/又は方法を実装するのに使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。従って、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなくここに記載されており、理解されることには、ここでの説明に基づいてシステム及び/又は方法を実装するようにソフトウェア及びハードウェアが設計され得る。
【0063】
ここで使用されるいずれの要素、行為、又は命令も、そのように明示的に記載されてい
ない限り、重要又は必須として解釈されるべきでない。また、ここで使用されるとき、冠詞“a”及び“an”は、1つ以上のアイテムを含むことを意図しており、“1つ以上”と相互に入れ替え可能に使用され得る。さらに、ここで使用されるとき、用語“セット”は、1つ以上のアイテム(例えば、関連したアイテム、関連しないアイテム、関連したアイテムと関連しないアイテムとの組み合わせなど)を含むことを意図しており、“1つ以上”と相互に入れ替え可能に使用され得る。1つのアイテムのみが意図される場合、用語“1つ”又は類似の言葉が使用される。また、ここで使用されるとき、用語“有する”、“持つ”、“持っている”、又はこれらに類するものは、オープンエンドの用語であることを意図している。さらに、“に基づく”というフレーズは、明示的に別段の断りがない限り、“少なくとも部分的に基づく”を意味することを意図している。
【0064】
様々な態様及び実施形態のこれらの説明は、例示の目的で提示されており、網羅的であること又は開示された実施形態に限定されることを意図したものではない。特徴の組み合わせが請求項に記載され且つ/或いは明細書に開示されているとしても、それらの組み合わせは、取り得る実施の開示を限定することを意図したものではない。実際、これらの特徴の多くは、請求項に具体的に記載されていない及び/又は明細書に具体的に開示されていないやり方で組み合わせされ得る。以下に列記される各従属クレームは、直接的には1のクレームのみに従属していることがあるが、取り得る実装の開示は、各従属クレームを、クレームセット中の他の全てのクレームとの組み合わせで含む。説明した実施形態の範囲から逸脱することなく、数多くの変更及び変形が当業者に明らかになる。ここで使用された用語は、実施形態の原理、実際的な応用、又は市場で見出される技術に対する技術的改善を最もよく説明するため、又はここに開示された実施形態を当業者が理解することを可能にするために選択されたものである。
【外国語明細書】