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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

<>
  • 特表-修正された量子化器 図1
  • 特表-修正された量子化器 図2A
  • 特表-修正された量子化器 図2B
  • 特表-修正された量子化器 図3A
  • 特表-修正された量子化器 図3B
  • 特表-修正された量子化器 図4
  • 特表-修正された量子化器 図5
  • 特表-修正された量子化器 図6
  • 特表-修正された量子化器 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-14
(54)【発明の名称】修正された量子化器
(51)【国際特許分類】
   H04N 19/126 20140101AFI20230207BHJP
   H04N 19/46 20140101ALI20230207BHJP
【FI】
H04N19/126
H04N19/46
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022529283
(86)(22)【出願日】2020-11-16
(85)【翻訳文提出日】2022-06-10
(86)【国際出願番号】 US2020060743
(87)【国際公開番号】W WO2021252010
(87)【国際公開日】2021-12-16
(31)【優先権主張番号】63/038,010
(32)【優先日】2020-06-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/077,471
(32)【優先日】2020-10-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】クリシュナン,マドゥー ペリンガーサリー
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159RC12
5C159TA47
5C159TB08
5C159TC04
5C159TC18
(57)【要約】
方法、コンピュータプログラム、およびコンピュータシステムは、ビデオデータを符号化および/または復号する。ビデオデータには、量子化インデックスを示す構文要素が含まれ、ここで、量子化インデックスの範囲はオフセット値によって拡張される。構文要素は、量子化インデックスを決定するために解析され得、量子化ステップサイズは、量子化インデックスおよびオフセット値に基づいてルックアップテーブルから取得され得、ビデオデータは、量子化ステップサイズに基づいて符号化および/または復号され得る。
【選択図】図4
【特許請求の範囲】
【請求項1】
ビデオデータを符号化および/または復号するための方法であって、当該方法は、デバイスの少なくとも1つのプロセッサによって実行され、
量子化インデックスを示す構文要素を含むビデオデータを取得するステップであって、前記量子化インデックスの範囲が、オフセット値によって拡張されるステップと、
前記構文要素を解析して前記量子化インデックスを決定するステップと、
前記量子化インデックスおよび前記オフセット値に基づいて、ルックアップテーブルから量子化ステップサイズを取得するステップと、
前記量子化ステップサイズに基づいて、前記ビデオデータを符号化および/または復号するステップと、
を含むことを特徴とする方法。
【請求項2】
前記オフセット値は、前記ビデオデータの内部ビット深度値に基づいて決定される、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記量子化インデックスが閾値より大きい場合、前記量子化ステップサイズは、前記量子化インデックスに前記オフセット値を加算した結果に基づいて前記ルックアップテーブルから取得される、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記オフセット値は、負の整数である、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記閾値は、255である、
ことを特徴とする請求項3に記載の方法。
【請求項6】
前記構文要素には、9ビット整数が含まれる、
ことを特徴とする請求項1に記載の方法。
【請求項7】
前記9ビット整数の値は、前記量子化インデックスに前記オフセット値を加算した結果に等しい、
ことを特徴とする請求項6に記載の方法。
【請求項8】
前記ルックアップテーブルのサイズは、前記量子化ステップサイズの255個の値とする、ことを特徴とする請求項1に記載の方法。
【請求項9】
ビデオデータを符号化および/または復号するためのデバイスであって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取って前記プログラムコードによって指示されるように動作するよう構成された少なくとも1つのプロセッサと、を含み、
前記プログラムコードは、
量子化インデックスを示す構文要素を含むビデオデータを取得することを、前記少なくとも1つのプロセッサに実行させるように構成された第1取得コードであって、前記量子化インデックスの範囲が、オフセット値によって拡張される第1取得コードと、
前記構文要素を解析して前記量子化インデックスを決定することを、前記少なくとも1つのプロセッサに実行させるように構成された解析コードと、
前記量子化インデックスおよび前記オフセット値に基づいて、ルックアップテーブルから量子化ステップサイズを取得することを、前記少なくとも1つのプロセッサに実行させるように構成された第2取得コードと、
前記量子化ステップサイズに基づいて、前記ビデオデータを符号化および/または復号することを、前記少なくとも1つのプロセッサに実行させるように構成されたコーディングコードと、を含む、
ことを特徴とするデバイス。
【請求項10】
前記オフセット値は、前記ビデオデータの内部ビット深度値に基づいて決定される、
ことを特徴とする請求項9に記載のデバイス。
【請求項11】
前記量子化インデックスが閾値より大きい場合、前記量子化ステップサイズは、前記量子化インデックスに前記オフセット値を加算した結果に基づいて前記ルックアップテーブルから取得される、
ことを特徴とする請求項10に記載のデバイス。
【請求項12】
前記オフセット値は、負の整数である、
ことを特徴とする請求項11に記載のデバイス。
【請求項13】
前記閾値は、255である、
ことを特徴とする請求項11に記載のデバイス。
【請求項14】
前記構文要素には、9ビット整数が含まれる、
ことを特徴とする請求項9に記載のデバイス。
【請求項15】
前記9ビット整数の値は、前記量子化インデックスに前記オフセット値を加算した結果に等しい、
ことを特徴とする請求項14に記載のデバイス。
【請求項16】
前記ルックアップテーブルのサイズは、前記量子化ステップサイズの255個の値とする、
ことを特徴とする請求項9に記載のデバイス。
【請求項17】
コンピュータプログラムであって、ビデオデータを符号化および/または復号するためのデバイスの1つまたは複数のプロセッサに、請求項1乃至8のいずれか一項に記載の方法を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
この出願は、2020年6月11日に出願された米国特許仮特許出願第63/038,010号、および2020年10月22日に出願された米国特許出願第17/077,471号からの優先権を主張し、その全体が、本願に組み込まれる。
【0002】
[技術分野]
本開示は、一般に、データ処理の分野、より具体的には、ビデオの符号化および/または復号に関する。
【背景技術】
【0003】
AOMedia Video 1(AV1)は、インターネット上のビデオ伝送のために設計されたオープンビデオコーディングフォーマットである。それは、2015年に設立されたコンソーシアム(consortium)であるAlliance for Open Media(AOMedia)によって、VP9の後継として開発されたものである。このコンソーシアムには、半導体企業、ビデオオンデマンドプロバイダー(video on demand providers)、ビデオコンテンツ制作者(video content producers)、ソフトウェア開発会社(software development companies)、およびWebブラウザーベンダー(web browser vendors)が含まれる。AV1プロジェクトの多くの構成部分は、Allianceメンバーによる以前の研究活動から由来している。個人貢献者は、数年前から実験的な技術プラットフォームを開始している。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日に、仕様訂正表1(Errata1)を含む検証済みバージョン1.0.0がリリースされた。AV1ビットストリーム仕様には、参照ビデオコーデックが含まれる。AOMedia Video 2(AV2)は、現在開発中である。AV1において、量子化ステップサイズは、限られた解像度(resolution)を有する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態は、ビデオデータを符号化および/または復号するための方法、システム、およびコンピュータ読み取り可能な媒体に関する。
【課題を解決するための手段】
【0005】
一態様によれば、ビデオデータを符号化および/または復号する方法が提供される。この方法は、量子化インデックスを示す構文要素を含むビデオデータを取得するステップであって、前記量子化インデックスの範囲が、オフセット値によって拡張されるステップと、前記構文要素を解析して前記量子化インデックスを決定するステップと、前記量子化インデックスおよび前記オフセット値に基づいて、ルックアップテーブルから量子化ステップサイズを取得するステップと、前記量子化ステップサイズに基づいて、前記ビデオデータを符号化および/または復号するステップと、を含む。
【0006】
別の態様によれば、ビデオデータを符号化および/または復号するためのデバイスが提供される。このデバイスは、プログラムコードを記憶するように構成された少なくとも1つのメモリと、前記プログラムコードを読み取って前記プログラムコードによって指示された通り動作するように構成された少なくとも1つのプロセッサと、を含み、前記プログラムコードは、量子化インデックスを示す構文要素を含むビデオデータを取得することを、前記少なくとも1つのプロセッサに実行させるように構成された第1取得コードであって、前記量子化インデックスの範囲が、オフセット値によって拡張される第1取得コードと、前記構文要素を解析して前記量子化インデックスを決定することを、前記少なくとも1つのプロセッサに実行させるように構成された解析コードと、前記量子化インデックスおよび前記オフセット値に基づいて、ルックアップテーブルから量子化ステップサイズを取得することを、前記少なくとも1つのプロセッサに実行させるように構成された第2取得コードと、前記量子化ステップサイズに基づいて、前記ビデオデータを符号化および/または復号することを、前記少なくとも1つのプロセッサに実行させるように構成されたコーディングコードと、を含む。
【0007】
別の態様によれば、ビデオデータを符号化および/または復号するための非一時的コンピュータ読み取り可能な媒体が提供される。この非一時的なコンピュータ読み取り可能な媒体は、1つまたは複数の命令を含み、前記1つまたは複数の命令が、ビデオデータを符号化および/または復号するためのデバイスの1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、量子化インデックスを示す構文要素を含むビデオデータを取得することであって、前記量子化インデックスの範囲が、オフセット値によって拡張されることと、前記構文要素を解析して前記量子化インデックスを決定することと、前記量子化インデックスおよび前記オフセット値に基づいて、ルックアップテーブルから量子化ステップサイズを取得することと、前記量子化ステップサイズに基づいて、前記ビデオデータを符号化および/または復号することとを、実行させる。
【図面の簡単な説明】
【0008】
これらの、および他の目的、特徴および利点は、添付図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになる。添付図面は、当業者が容易に詳細な説明と組み合わせて理解を行う場合の明確性のために使用されるものであるため、図面の様々な特徴は、スケーリングして描かれていない。
【0009】
図1】少なくとも1つの実施形態による、ネットワーク化されたコンピュータ環境を示す図である。
【0010】
図2A】少なくとも1つの実施形態による、AC係数のためのQ_indexからQstepへのマッピングの例を示す図である。
【0011】
図2B】少なくとも1つの実施形態による、DC係数のためのQ_indexからQstepへのマッピングの例を示す図である。
【0012】
図3A】少なくとも1つの実施形態による、AV2に対して提案された、統合された、Q_indexからQstepへの線形マッピングの例を示す図である。
【0013】
図3B】少なくとも1つの実施形態による、AV2に対して提案された、統合された、Q_indexからQstepへのLog2マッピングの例を示す図である。
【0014】
図4】少なくとも1つの実施形態による、ビデオデータをコード化するプログラムによって実行されるステップを示す動作フローチャートである。
【0015】
図5】少なくとも1つの実施形態による、図1に示されるコンピュータおよびサーバの内部および外部のコンポーネントのブロック図である。
【0016】
図6】少なくとも1つの実施形態による、図1に示されるコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【0017】
図7】少なくとも1つの実施形態による、図6の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0018】
特許請求に係る構造および方法の詳細な実施形態は、本明細書に開示されている。しかしながら、開示された実施形態は、様々な形態で具体化され得る、特許請求に係る構造および方法の単なる例示である、ということを理解されたい。しかしながら、これらの構造および方法は、多くの異なる形態で具体化され得、本明細書に記載の例示的な実施形態に限定されると解釈されるべきではない。むしろ、本開示を徹底的かつ完全にし、および本開示の範囲を当業者に十分に伝えるために、これらの例示的な実施形態は提供される。説明では、提示された実施形態を不必要に曖昧にすることを回避するために、周知の特徴および技術の詳細は省略されてもよい。
【0019】
実施形態は、一般に、データ処理の分野に関し、具体的には、ビデオの符号化および復号に関する。以下に説明される例示的な実施形態は、他の中でも特に、ビデオデータを効率的に圧縮するために、拡張された量子化器を使用してビデオデータを符号化および/または復号するためのシステム、方法、およびコンピュータプログラムを提供する。したがって、いくつかの実施形態は、拡張された量子化器をAV2において提供することによって、コンピューティング分野を改善する能力を有する。
【0020】
前述のように、AOMedia Video 1(AV1)は、インターネット上のビデオ伝送のために設計されたオープンビデオコーディングフォーマットである。それは、2015年に設立されたコンソーシアム(consortium)であるAlliance for Open Media(AOMedia)によって、VP9の後継として開発されたものである。このコンソーシアムには、半導体企業、ビデオオンデマンドプロバイダー(video on demand providers)、ビデオコンテンツ制作者(video content producers)、ソフトウェア開発会社(software development companies)、およびWebブラウザーベンダー(web browser vendors)が含まれる。現在、AV1の量子化ステップサイズは、限られた解像度を有する。前記ステップサイズの範囲は増加しているが、Q_indexの有効範囲は同じである。量子化ステップサイズの解像度におけるこの制限は、10ビットおよび12ビットの内部ビット深度に対してより顕著になり、ここで、対応する8ビットステップサイズ(q_idxを使用して得られる)は、それぞれ、4および16でスケーリングされる。これは、コーデックによって達成できるビットレートの粒度に影響を与える可能性がある。したがって、量子化インデックスの範囲を拡張することによって量子化ステップサイズの解像度を向上させることは有利であり得る。
【0021】
各態様は、様々な実施形態による方法、装置(システム)、およびコンピュータ読み取り可能な媒体のフローチャート図および/またはブロック図を参照して本明細書に記載されている。フローチャート図および/またはブロック図の各ブロック、およびフローチャート図および/またはブロック図の各ブロックの組み合わせは、コンピュータ読み取り可能なプログラム命令によって実現され得る、ということを理解されたい。
【0022】
本明細書に記載のもののような例示的な実施形態による、ビデオデータを符号化および/または復号するためのビデオコーディングシステム100(以下、「システム」という)を示す、ネットワーク化されたコンピュータ環境の機能ブロック図である図1を参照する。図1は、1つの実装の説明のみを提供し、異なる実施形態が実現され得る環境に関するいかなる制限を意味するものではない、ということを理解されたい。示されている環境に対する多くの変更は、設計および実装の要件に基づいて行われ得る。
【0023】
システム100は、コンピュータ102およびサーバコンピュータ114を含み得る。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」という)を介して、サーバコンピュータ114と通信することができる。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶され、ユーザとインターフェースをとり、サーバコンピュータ114と通信することが可能であるソフトウェアプログラム108とを含み得る。図5を参照して以下で説明するように、コンピュータ102は、それぞれ、内部コンポーネント800Aおよび外部コンポーネント900Aを含み得、サーバコンピュータ114は、それぞれ、内部コンポーネント800Bおよび外部コンポーネント900Bを含み得る。コンピュータ102は、例えば、モバイルデバイス、パーソナルデジタルアシスタント、インターネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意のタイプのコンピューティングデバイスであり得る。
【0024】
サーバコンピュータ114は、また、図6および図7に関連して以下で説明するように、ソフトウェアアズアサービス(SaaS:Software as a Service)、プラットフォームアズアサービス(PaaS:Platform as a Service)、またはインフラストラクチャアズアサービス(laaS:Infrastructure as a Service)などのクラウドコンピューティングサービスモデルで動作し得る。サーバコンピュータ114は、また、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置され得る。
【0025】
ビデオデータを符号化するために使用され得るサーバコンピュータ114は、データベース112とインタラクションすることができるビデオコーディングプログラム116(以下、「プログラム」という)を実行することが可能である。ビデオコーディングプログラムの方法は、図4に関して以下でより詳細に説明される。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作してもよく、一方、プログラム116は、主に、サーバコンピュータ114上で実行されてもよい。代替の実施形態では、プログラム116は、主に、1つ以上のコンピュータ102上で実行されてよく、一方、サーバコンピュータ114は、プログラム116によって使用されるデータを処理および記憶するために使用されてもよい。注意すべきものとして、プログラム116は、スタンドアロンプログラムであってもよく、より大きなビデオコーディングプログラムに統合されてもよい。
【0026】
しかしながら、注意すべきものとして、プログラム116の処理は、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよい。別の実施形態では、プログラム116は、複数のコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータのいくつかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で実行されてもよい。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で実行されてもよい。あるいは、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で実行されてもよい。
【0027】
ネットワーク110には、有線接続、無線接続、光ファイバー接続、またはそれらのいくつかの組み合わせが含まれてもよい。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続とプロトコルとの間の任意の組み合わせであり得る。ネットワーク110には、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、長期進化(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体網(PLMN)、都市圏ネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバーベースのネットワークなど、および/またはこれらまたは他のタイプのネットワークの組み合わせなどの、様々な種類のネットワークが含まれてもよい。
【0028】
図1に示されるデバイスおよびネットワークの数および配置は、例示的なものとして提供される。実際には、図1に示されるものよりも、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、または異なる配置のデバイスおよび/またはネットワークが存在してもよい。さらに、図1に示される2つ以上のデバイスが、単一のデバイス内に実現されてもよく、図1に示される単一のデバイスが、複数の分散デバイスとして実現されてもよい。追加的にまたは代替的には、システム100の1セットのデバイス(例えば、1つ以上のデバイス)は、システム100の別のセットのデバイスによって実行されるものとして説明される1つ以上の機能を実行することができる。
【0029】
AV1において、変換係数の量子化には、DCおよびACの変換係数のための異なる量子化ステップサイズ、および、輝度および彩度の変換係数のための異なる量子化ステップサイズが適用され得る。量子化ステップサイズを特定するために、フレームヘッダにおいて、まず、base_q_idxという構文要素が信号で通知され得、それは、輝度AC係数のための量子化ステップサイズを指定する8ビットの固定長コードであり得る。base_q_idxの有効範囲は[0,255]である。その後、輝度DC係数のためのbase_q_idxに対するデルタ値(delta value)(DeltaQYDcとして示される)がさらに信号で通知される。また、複数のカラープレーンがある場合、diff_uv_deltaというフラグが、CbおよびCr色成分に異なる量子化インデックス値が適用されているかどうかを示すように、信号で通知され得る。diff_uv_deltaが0として信号で通知された場合、彩度DC係数のためのbase_q_idxに対するデルタ値(DeltaQUDcとして示される)および彩度AC係数のbase_q_idxに対するデルタ値(DeltaQUAcとして示される)のみが信号で通知され得る。そうではない場合、CbおよびCrの両方のDC係数のためのbase_q_idxに対するデルタ値(DeltaQUDcおよびDeltaQVDcとして示される)と、CbおよびCrの両方のAC係数のためのbase_q_idxに対するデルタ値(DeltaQUAcおよびDeltaQVAcとして示される)とが信号で通知される。
【0030】
量子化インデックスQ_indexは、上記の復号されたDeltaQYDc、DeltaQUAc、DeltaQUDc、DeltaQVAc、およびDeltaQVDcをbase_q_idxに追加して導出され得る。そして、これらのQ_indexは、さらに、2つのテーブルに従って量子化ステップサイズにマッピングされ得る。DC係数については、8ビット、10ビットおよび12ビットの内部ビット深度のための量子化インデックスから量子化ステップサイズへのマッピングは、ルックアップテーブルDc_Qlookup[3][256]により特定され得、AC係数については、8ビット、10ビットおよび12ビットの内部ビット深度のための量子化インデックスから量子化ステップサイズへのマッピングは、ルックアップテーブルAc_Qlookup[3][256]により特定され得る。図2Aは、AC係数のためのこのようなマッピングの例を示し、図2Bは、DC係数のためのこのようなマッピングの例を示す。
【0031】
進行中のAV2開発プロセスでは、いくつかのツールが、量子化器の設計において使用され得る。
【0032】
例えば、第1方法は、別個のルックアップテーブルDc_Qlookup[3][256]およびAc_Qlookup[3][256]を削除することを含み得る。この例では、図3Aに示されているAc_Qlookup[3][256]のみが保持され、DC量子化ステップサイズがそれからのオフセットを使用して得られる。デフォルトのオフセットは8に設定されている。
【0033】
実施形態では、別個のルックアップテーブルは、8ビット、10ビット、および/または12ビットの内部ビット深度のための量子化器ステップサイズを取得するために使用され得、また、ステップサイズは、いかなる数学的関係も示さない。別の例として、第2方法は、別個のルックアップテーブルを、8ビットの内部ビット深度のための修正されたルックアップテーブルに置き換えることを含み得る。この例では、量子化ステップサイズの生成プロセスは、下記のように統合されている、即ち、10ビットおよび12ビットの内部ビット深度に対して、対応する8ビットステップサイズ(Q_indexを使用して得られる)がそれぞれ4および16でスケーリングされる。
【0034】
別の例として、第2方法は、Q_indexの範囲を増加させることなく、サポートされているステップサイズの範囲を増加させることを含み得る。
【0035】
上述したように、現在、AV1量子化ステップサイズは、限られた解像度を有する。ステップサイズ範囲は増加しているが、Q_indexの有効範囲は同じである。図3Aに示されるように、Q_indexの有効範囲は[0,255]であり、これらは、ステップサイズの範囲[4,6879](上述の変更後)にマッピングされる。量子化ステップサイズの解像度におけるこの制限は、10ビットおよび12ビットの内部ビット深度に対してより顕著になり、ここで、対応する8ビットステップサイズ(q_idxを使用して得られる)は、それぞれ、4および16でスケーリングされる。これは、コーデックによって達成できるビットレートの粒度に影響を与える可能性がある。
【0036】
Q_indexから量子化ステップサイズへのマッピングは、一貫した数学的関係を示さない。図3Bに示されるように、ステップサイズの初期エントリは、Q_indexとの線形関係を示し、一方、マッピングの残りの部分は、主に指数関数的である。線形マッピングから指数関数的マッピングへの変換はスムーズではない。さらに、下位Q_indexでは、ステップサイズに突然のジャンプが存在し、これは、10ビットと12ビットの内部ビット深度コーディングに対して、それぞれ4および16でスケールアップされるため、より顕著になる。
【0037】
例示的な実施形態は、別々に使用されてもよく、または任意の順序で組み合わせて使用されてもよい。1つまたは複数の実施形態では、Q_indexからQstepへの指数関数的マッピングは、以下の式1として表され得る。
【数1】
【0038】
1つまたは複数の実施形態では、Q_indexからQstepへの線形マッピングは、以下の式2として表され得る。
【数2】
【0039】
式1および式2において、a、b&cは、ある範囲のQ_indexのための定数であり得る。
【0040】
1つまたは複数の実施形態では、オフセットがQ_indexに追加されてもよく、ここで、このオフセットは、内部ビット深度値に依存する。
【0041】
1つまたは複数の実施形態では、オフセット値は下記の方式で追加されてよい、即ち、オフセット値が追加された後、量子化ステップサイズはpower(2,bitdepth―8)でスケーリングされ得る。例えば、内部ビット深度が8に等しい場合、量子化ステップサイズは修正されなくてもよい。別の例では、内部ビット深度が8に等しくない場合、量子化ステップサイズは、power(2,bitdepth―8)でスケーリングされ得る。
【0042】
1つまたは複数の実施形態では、オフセット値は、m*(bitdepth―8)であり得て、ここで、mの例示的な値は、1、2、...、30、32を含むが、これらに限定されない。
【0043】
1つまたは複数の実施形態では、より小さい量子化ステップサイズ(Q_indexまたはQstepが所定の閾値Q0より小さい)については、線形マッピングが適用され得、より大きい量子化ステップサイズ(Q_indexまたはQstepが所定の閾値Q0より大きい)については、前記オフセット値がcに比例する。
【0044】
1つまたは複数の実施形態では、Q_indexが所定の閾値(例えば、256)以上である場合、オフセットは、対応する量子化ステップサイズを導出するためにQ_indexに追加され得、次いで量子化ステップサイズは、power(2、bitdepth―8)でスケーリングされ得る。例えば、オフセットは、上記で適用されたオフセット値と同じであり得るが、負の符号が付けられている。オフセットの絶対値の例示的な値は、6と65の間の整数、例えば、内部ビット深度が10である場合の60、64、および内部ビット深度が12である場合の120、128を含むが、これらに限定されない。
【0045】
1つまたは複数の実施形態では、Q_indexは、9ビット整数として信号で通知され得る。
【0046】
1つまたは複数の実施形態では、Q_indexの値は、内部ビット深度値によって制限される。例えば、Q_indexは、[0,255+m*(bitdepth―8)]になると制限され得、mの例示的な値は、1、2、...、30、32を含むが、これらに限定されない。
【0047】
1つまたは複数の実施形態では、Q_indexの値が直接に信号で通知されることの代わりに、Q_indexプラスオフセットが、信号で通知され得、例えば、Q_index_minus_Nである。また、Q_index_minus_Nは、符号付けられた構文要素として信号で通知され得る。一例では、オフセット値Nは、-128であってもよい。
【0048】
次に、図4を参照すると、図4において、ビデオデータを符号化および/または復号するための方法400のステップを示す動作フローチャートが示されている。いくつかの実装では、図4の1つまたは複数のプロセスブロックは、コンピュータ102(図1)およびサーバコンピュータ114(図1)によって実行され得る。
【0049】
402において、方法400は、量子化インデックスを示す構文要素を含むビデオデータを取得することを含む。量子化インデックスの範囲は、オフセット値によって拡張される。
【0050】
404において、方法400は、構文要素を解析して量子化インデックスを決定することを含む。
【0051】
406において、方法400は、量子化インデックスおよびオフセット値に基づいてルックアップテーブルから量子化ステップサイズを取得することを含む。
【0052】
408において、方法400は、量子化ステップサイズに基づいてビデオデータを符号化および/または復号することを含む。
【0053】
1つまたは複数の実施形態では、オフセット値は、ビデオデータの内部ビット深度値に基づいて決定され得る。
【0054】
1つまたは複数の実施形態では、量子化インデックスが閾値より大きい場合、量子化ステップサイズは、量子化インデックスにオフセット値を加算した結果に基づいてルックアップテーブルから取得され得る。
【0055】
1つまたは複数の実施形態では、オフセット値は、負の整数であり得る。
【0056】
1つまたは複数の実施形態では、閾値は、255であり得る。
【0057】
1つまたは複数の実施形態では、構文要素には、9ビット整数が含まれ得る。
【0058】
1つまたは複数の実施形態では、9ビット整数の値は、量子化インデックスにオフセット値を加算した結果に等しくてもよい。
【0059】
1つまたは複数の実施形態では、ルックアップテーブルのサイズは、量子化ステップサイズの255個の値としてもよい。
【0060】
図4は、1つの実装の説明のみを提供し、異なる実施形態をどのように実現できるかに関するいかなる制限を意味するものではない、ということを理解されたい。示されている環境に対する多くの変更は、設計および実現の要件に基づいて行われ得る。
【0061】
図5は、例示的な実施形態による、図1に示されるコンピュータおよびサーバの内部および外部のコンポーネントのブロック図500である。図5は、1つの実現の説明のみを提供し、異なる実施形態が実現され得る環境に関するいかなる制限を意味するものではない、ということを理解されたい。示されている環境に対する多くの変更は、設計および実現の要件に基づいて行われ得る。
【0062】
コンピュータ102(図1)およびサーバコンピュータ114(図1)は、図5に示される内部コンポーネント800A、Bおよび外部コンポーネント900A、Bの異なるセットを含み得る。内部コンポーネント800の各セットには、1つ以上のプロセッサ820と、1つ以上のバス826上の1つ以上のコンピュータ読み取り可能なRAM822および1つ以上のコンピュータ読み取り可能なROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ読み取り可能な有形記憶デバイス830と、が含まれる。
【0063】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実現される。プロセッサ820は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理コンポーネントである。いくつかの実現では、プロセッサ820は、機能を実行するようにプログラム化することができる1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、B間の通信を可能にするコンポーネントを含む。
【0064】
サーバコンピュータ114(図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(図1)、およびビデオコーディングプログラム116(図1)は、それぞれのRAM822(一般的には、キャッシュメモリが含まれる)のうちの1つ以上を介して、それぞれのプロセッサ820のうちの1つ以上によって実行されるために、それぞれのコンピュータ読み取り可能な有形記憶デバイス830のうちの1つ以上に記憶される。図5に示される実施形態では、コンピュータ読み取り可能な有形記憶デバイス830のそれぞれは、内蔵ハードドライブの磁気ディスク記憶デバイスである。あるいは、コンピュータ読み取り可能な有形記憶デバイス830のそれぞれは、ROM824、EPROM、フラッシュメモリ、光ディスク、磁気光学ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープなどの半導体記憶デバイス、および/またはコンピュータプログラムとデジタル情報を記憶することができる別のタイプの非一時的なコンピュータ読み取り可能な有形記憶デバイスなどの半導体記憶装置である。
【0065】
内部コンポーネント800A、Bの各セットには、また、例えばCD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶デバイスなどのような、1つ以上の携帯型コンピュータ読み取り可能な有形記憶デバイス936からの読み取りおよび書き込むのためのR/Wドライブまたはインターフェース832が含まれる。例えばソフトウェアプログラム108(図1)およびビデオコーディングプログラム116(図1)などのようなソフトウェアプログラムは、それぞれの携帯型コンピュータ読み取り可能な有形記憶デバイス936のうちの1つ以上に記憶され、それぞれのR/Wドライブまたはインターフェース832を介して読み取られ、それぞれのハードドライブ830にロードされ得る。
【0066】
内部コンポーネント800A、Bの各セットには、例えばTCP/IPアダプタカードなどのようなネットワークアダプタまたはインターフェース836、無線Wi-Fiインターフェースカード、あるいは3G、4Gまたは5G無線インターフェースカードまたはその他の有線または無線通信リンクも含まれる。サーバコンピュータ114(図1)上のソフトウェアプログラム108(図1)およびビデオコーディングプログラム116(図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたはその他のネットワーク、ワイドエリアネットワーク)およびそれぞれのネットワークアダプタまたはインターフェース836を介して、外部コンピュータから、コンピュータ102(図1)およびサーバコンピュータ114にダウンロードされる。ネットワークアダプタまたはインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108およびビデオコーディングプログラム116が、それぞれのハードドライブ830にロードされる。ネットワークには、銅線、光ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバが含まれる。
【0067】
外部コンポーネント900A、Bの各セットには、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934が含まれる。外部コンポーネント900A、Bには、また、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスが含まれる。内部コンポーネント800A、Bの各セットには、また、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934とインターフェースをとるためのデバイスドライバ840含まれる。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプタまたはインターフェース836には、ハードウェア、および(記憶デバイス830および/またはROM824に記憶されている)ソフトウェアが含まれる。
【0068】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示の実現は、クラウドコンピューティング環境に限定されない、ということを事前に理解されたい。むしろ、いくつかの実施形態は、現在知られている、または後で開発される他のタイプのコンピューティング環境と組み合わせて実現され得る。
【0069】
クラウドコンピューティングは、配置可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、プロセシング、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの、便利でかつオンデマンドのネットワークアクセスを可能にするための、サービス配布モデルであり、最小限の管理作業またはサービスのプロバイダーとのインタラクションで、迅速にプロビジョニングおよびリリースされ得る。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含み得る。
【0070】
特徴は、以下の通りである。
オンデマンドセルフサービス(On-demand self-service):クラウド消費者は、サービスのプロバイダーとの間の人工的なインタラクションを必要とせず、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
広範囲のネットワークアクセス:この能力は、ネットワーク経由で利用可能になり、標準的なメカニズムを介してアクセスされ得、これにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDAなど)による使用が促進される。
リソースプーリング:プロバイダーのコンピューティングリソースは、マルチテナントモデル(multi-tenant model)を使用して複数の消費者にサービスを提供するためにプールされ、さまざまな物理リソースおよび仮想リソースが、需要に応じて動的に割り当てられ、および再割り当てられる。消費者は、通常、提供されたリソースの正確な場所に対する制御も知識も有しないため、場所に依存しないという感覚があるが、より高い抽象的なレベル(例えば、国、州、またはデータセンタ)で場所を指定することができる。
迅速的弾性:この能力は、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングされ得、これにより素早くスケールアウトされて迅速にリリースされ、これによって素早くスケールインされ得る。消費者にとっては、プロビジョニングに利用可能な能力は、一般的に無制限のように見えられ、いつでも任意の数量で購入され得る。
測定可能なサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、プロセシング、帯域幅、およびアクティブなユーザアカウントなど)に適したある抽象的なレベルでの計量能力を活用することにより、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告され得、これにより、使用されたサービスのプロバイダーおよび消費者の両方に対して透明性が提供される。
【0071】
サービスモデルは、以下の通りである。
ソフトウェアアズアサービス(Software as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダーのアプリケーションを使用することである。これらのアプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを介して、様々なクライアントデバイスからアクセスされ得る。消費者は、限られたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティングシステム、ストレージ、さらには個別のアプリケーション能力を含む基盤となるクラウドインフラストラクチャを、管理または制御しない。
プラットフォームアズアサービス(PaaS:Platform as a Service):消費者に提供される能力は、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することであり、これらのアプリケーションは、プロバイダーによってサポートされているプログラミング言語およびツールを使用して作成されたものである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基盤となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および可能なアプリケーションホスティング環境構成を制御することができる。
インフラストラクチャアズアサービス(Infrastructure as a Service):消費者に提供される能力は、プロセシング、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースをプロビジョニングすることであり、消費者が、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアをその中で展開および実行することができる。消費者は、基盤となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御することができ、選定されたネットワークコンポーネント(例えば、ホストのファイアウォール)を有限に制御することもできる。
【0072】
展開モデルは、以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、ある組織のためだけに運用される。それは、該組織またはサードパーティによって管理され得、オンプレミス(on-premises)またはオフプレミス(off-premises)に存在することができる。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を有する特定のコミュニティをサポートする。これは、これらの組織またはサードパーティによって管理され得、オンプレミスまたはオフプレミスに存在することができる。
パブリッククラウド:クラウドインフラストラクチャは、公衆または大手業界グループに提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)によって構成され、これらは、依然として唯一のエンティティであるが、標準的または専有の技術によって一緒に結合され、これにより、データおよびアプリケーションの移植性が可能になる(例えば、クラウド間の負荷バランスのためのクラウドバースト)。
【0073】
クラウドコンピューティング環境は、サービス指向であり、無状態、低結合、モジュール化、およびセマンティック相互操作性に焦点を合わせている。クラウドコンピューティングの中心は、相互接続されたノードのネットワークで構成されるインフラストラクチャである。
【0074】
開示された主題の特定の実施形態を実施するのに適している例示的なクラウドコンピューティング環境600が示されている図6を参照する。示されているように、クラウドコンピューティング環境600は、1つ以上のクラウドコンピューティングノード10を含み、例えばパーソナルデジタルアシスタント(PDA)またはセルラー電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/または自動車コンピュータシステム54Nなどの、クラウド消費者によって使用されるローカルコンピューティングデバイスは、それと通信することができる。クラウドコンピューティングノード10は、互いに通信することができる。それらは、例えば上記のプライベート、コミュニティ、パブリックまたはハイブリッドクラウド、あるいはそれらの組み合わせなどの、1つ以上のネットワークにおいて、物理的にまたは仮想的にグループ化され得る(図示せず)。これは、クラウドコンピューティング環境600が、インフラストラクチャ、プラットフォーム、および/またはソフトウェアをサービスとして提供することを可能にし、これらのサービスに対しては、クラウド消費者はローカルのコンピューティングデバイスでリソースを維持する必要がない。図6に示されるコンピューティングデバイス54A~54Nのタイプは、例示だけを意図しており、コンピューティングノード10およびクラウドコンピューティング環境600は、任意のタイプのネットワークおよび/またはネットワークアドレス可能な接続を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化されたデバイスと通信することができる、ということを理解されたい。
【0075】
図6の)クラウドコンピューティング環境600によって提供される1セットの機能的抽象化層700が示されている図7を参照する。図7に示されているコンポーネント、層、および機能は、例示だけを意図しており、実施形態はこれらに限定されない、ということを事前に理解されたい。示されているように、以下の層および対応する機能が提供される。
【0076】
ハードウェアおよびソフトウェア層60には、ハードウェアおよびソフトウェアコンポーネントが含まれる。ハードウェアコンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、およびネットワークとネットワーキングコンポーネント66が含まれる。いくつかの実施形態では、ソフトウェアコンポーネントには、ネットワークアプリケーションサーバソフトウェア67、およびデータベースソフトウェア68が含まれる。
【0077】
仮想化層70は、仮想エンティティの以下の例、即ち、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、および仮想クライアント75が提供され得る抽象化層を提供する。
【0078】
一例では、管理層80は、下記の機能を提供することができる。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために使用されるコンピューティングリソースおよび他のリソースへの動的な調達を提供する。計測および価格設定82は、リソースがクラウドコンピューティング環境内で使用されるときのコスト追跡、およびそれらのリソースの消費に対する課金(billing)または請求(invoicing)を提供する。一例では、これらのリソースは、アプリケーションソフトウェアのライセンスを含み得る。セキュリティは、クラウド消費者およびタスクに対するアイデンティティ認証確認、およびデータや他のリソースに対する保護を提供する。ユーザポータル83は、消費者およびシステム管理者に対して、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を提供する。サービスレベル合意(SLA:Service Level Agreement)の計画および履行(planning and fulfillment)85は、SLAに従って将来の需要が予測されるクラウドコンピューティングリソースに対する事前手配および調達を提供する。
【0079】
作業負荷層90は、クラウドコンピューティング環境が使用され得る機能の例を提供する。この層から提供され得る作業負荷および機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室での授業93、データ分析処理94、トランザクション処理95、ビデオコーディング96が含まれる。ビデオコーディング96は、公称角度から導出されたデルタ角度を使用してビデオデータを符号化/復号することができる。
【0080】
いくつかの実施形態は、任意の可能な技術的詳細の統合レベルでのシステム、方法、および/またはコンピュータ読み取り可能な媒体に関する。コンピュータ読み取り可能な媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能なプログラム命令をその上に有するコンピュータ読み取り可能な非一時的記憶媒体(または複数の媒体)を含み得る。
【0081】
コンピュータ読み取り可能な媒体は、命令実行デバイスによって使用されるために命令を保持および記憶することができる有形デバイスであり得る。コンピュータ読み取り可能な媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組み合わせであり得るが、これらに限定されない。コンピュータ読み取り可能な媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、例えば、命令が書き込まれたパンチカードまたは溝部における突起構造などの機械的に符号化されたデバイス、および前述の任意の適切な組み合わせが含まれる。本明細書で使用されているコンピュータ読み取り可能な媒体は、それ自体が、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を介して伝播する電磁波(例えば光ファイバケーブルを通過する光パルス)、または、ワイヤを介して送信される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0082】
本明細書に記載されているコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な媒体から、それぞれの計算/処理デバイスに、または、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または無線ネットワークなどのネットワークを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅線伝送ケーブル、光伝送ケーブルファイバ、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含み得る。各計算/処理デバイスにおけるネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受信し、それぞれの計算/処理デバイス内のコンピュータ読み取り可能な媒体に記憶するために、そのコンピュータ読み取り可能なプログラム命令を転送する。
【0083】
動作を実行するためのコンピュータ読み取り可能なプログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン関連命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の配置データ、または、例えばSmalltalk、C++などのオブジェクト指向型プログラミング言語および例えば「C」プログラミング言語または類似なプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードであり得る。コンピュータ読み取り可能なプログラム命令は、完全にユーザのコンピュータで実行されてもよく、部分的にユーザのコンピュータで実行されてもよいし、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で実行され、部分的にリモートコンピュータで実行されてもよく、または完全にリモートコンピュータまたはサーバで実行されてもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されるか、または(例えば、インターネットサービスプロバイダーが使用されているインターネットを介して)外部のコンピュータに接続され得る。いくつかの実施形態では、例えばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、各態様または動作を実行するために、コンピュータ読み取り可能なプログラム命令の状態情報を利用することで電子回路をパーソナライズすることにより、コンピュータ読み取り可能なプログラム命令を実行することができる。
【0084】
これらのコンピュータ読み取り可能なプログラム命令は、マシンを製造するために、汎用コンピュータ、特殊用途コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供され、これにより、マシンは製造され得、これによって、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令は、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定されている機能/動作を実現するための方法を作成することができる。これらのコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な媒体に記憶され得、当該コンピュータ読み取り可能な媒体は、特定の方式で動作するようにコンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに指示することができ、これにより、その中に記憶されている命令を有するコンピュータ読み取り可能な媒体は、製造品を含み、当該製造品には、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定されている機能/動作の態様を実現する命令が含まれる。
【0085】
コンピュータ読み取り可能なプログラム命令は、また、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにロードされ得、これにより、一連のオペレーションステップは、コンピュータによって実現されるプロセスを作成するめに、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行され得、これによって、コンピュータ、または他のプログラマブル装置、または他のデバイス上で実行される命令は、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定されている機能/動作を実現する。
【0086】
図面のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ読み取り可能な媒体の可能な実現のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、これは、指定された論理機能(複数)を実現するための1つ以上の実行可能な命令を含む。この方法、コンピュータシステム、およびコンピュータ読み取り可能な媒体は、図に示されているものよりも追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含み得る。いくつかの代替の実現では、ブロックに示されている機能は、図に示されている以外の順序で発生する場合がある。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよく、または、関連する機能に従って、それらのブロックは、逆の順序で実行されてもよい場合がある。注意すべきものとして、ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図のブロックの組み合わせは、特定用途ハードウェアベースのシステムによって実現され得、当該特定用途ハードウェアベースのシステムは、指定された機能または動作を実行するか、または、特定用途ハードウェアとコンピュータ命令の組み合わせを実行する。
【0087】
本明細書で説明されたシステムおよび/または方法は、異なる形式のハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実現され得る、ということが明らかにされている。これらのシステムおよび/または方法を実現するために使用される実際の専用制御ハードウェアまたはソフトウェアコードは、実現を制限するものではない。したがって、システムおよび/または方法の動作および行為は、特定のソフトウェアコードを参照せずに本明細書で説明される。ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実現するように設計され得る、ということを理解されたい。
【0088】
本明細書で使用される任意の要素、動作または命令は、そのように明示的に説明されていない限り、重要または不可欠であると解釈されるべきではない。また、本明細書では使用される冠詞「a」および「an」は、1つ以上の項目を含むことを意図しており、「1つ以上」と交換可能に使用され得る。さらに、本明細書で使用される用語「セット」は、1つ以上の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど)を含むことを意図しており、「1つ以上」と交換可能に使用され得る。1つの項目のみが意図されている場合、用語「1つ」または類似語が使用される。また、本明細書で使用される用語「有する」、「備える」、「含む」などは、オープンアイテムとなることを意図している。さらに、「に基づく」という語句は、特に明記しない限り、「少なくとも部分的に、に基づく」を意味することを意図している。
【0089】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示された実施形態に限定されることを意図するものでもない。機能の組み合わせが特許請求の範囲に記載されている、および/または明細書に開示されているとしても、これらの組み合わせは、可能な実現の開示を制限することを意図するものではない。実際には、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または明細書に開示されていない方法で組み合わせることができる。以下にリストされた各従属請求項は、直接に1つの請求項のみに依存する場合があるが、可能な実現の開示には、各従属請求項と請求項セット内の他のすべての請求項との組み合わせが含まれる。説明された実施形態の範囲から逸脱しない場合、多くの修正および変形は、当業者にとって明らかにある。本明細書で使用された用語は、実施形態の原理、市場で発見された技術に対する実際の適用または技術的改善を最良に説明するために、または当業者が本明細書に開示された実施形態を理解できるようにするために選択されたものである。
図1
図2A
図2B
図3A
図3B
図4
図5
図6
図7
【国際調査報告】