(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-15
(45)【発行日】2022-08-23
(54)【発明の名称】インデックスコーディング及びビットスケジューリングを備えた量子化器
(51)【国際特許分類】
G10L 19/038 20130101AFI20220816BHJP
G10L 19/00 20130101ALI20220816BHJP
【FI】
G10L19/038
G10L19/00 250
(21)【出願番号】P 2019512006
(86)(22)【出願日】2017-08-29
(86)【国際出願番号】 US2017049130
(87)【国際公開番号】W WO2018044897
(87)【国際公開日】2018-03-08
【審査請求日】2020-08-26
(32)【優先日】2016-08-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503206684
【氏名又は名称】ディーティーエス・インコーポレイテッド
【氏名又は名称原語表記】DTS,Inc.
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100151987
【氏名又は名称】谷口 信行
(72)【発明者】
【氏名】セルーシ ガディエル
(72)【発明者】
【氏名】マルティン アルヴァロ
【審査官】中村 天真
(56)【参考文献】
【文献】米国特許出願公開第2012/0166189(US,A1)
【文献】特表2017-516121(JP,A)
【文献】米国特許出願公開第2014/0358978(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/00-19/26
H03M 7/30- 7/50
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
オーディオ信号を処理する方法であって、
音源からの入力オーディオ信号にアクセスする段階と、
複数の符号化された値を決定することによって、前記入力オーディオ信号を符号化する段階であって、
前記複数の符号化された値のうちの符号化された値は、第1の部分及び第2の部分を含み、
前記第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、
前記第1の部分は、第1のビットシーケンスを更に含み、前記第1のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて1又は複数の値から選択され、前記第2の部分は、
前記符号なしピラミッドの
要素の各非ゼロ成分に対する対応する符号値を含
み、
前記第2の部分は、第2のビットシーケンスを更に含み、前記第2のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づく、段階と、
前記入力オーディオ信号の前記符号化に従って前記複数の符号化された値を復号して、出力オーディオ信号を生成する段階と、
前記出力オーディオ信号をオーディオプレーヤに供給する段階と、
を含む方法。
【請求項2】
前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル成分を有し、該非負の整数ベクトル成分の和が前記量子化パラメータに等しい、請求項1に記載の方法。
【請求項3】
前記複数の符号化された値のうちの前記符号化された値は、前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を識別し、前記符号なしピラミッド要素の非ゼロ成分は、大きさの値及び符号値を有し、該大きさの値は、前記符号化された値の前記第1の部分によってインデックスを付けられた前記符号付きピラミッド要素の対応する成分から識別され、該符号値は、前記符号化された値の前記第2の部分から識別される、請求項1に記載の方法。
【請求項4】
前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル要素を有し、該非負の整数ベクトル要素の和が前記量子化パラメータに等しく、
前記関連する符号付きピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号付きピラミッドの前記複数のベクトルの各々は、整数ベクトル要素を有し、該整数ベクトル要素の大きさの和が前記量子化パラメータに等しい、請求項1に記載の方法。
【請求項5】
前記複数の符号化された値のうちの前記符号化された値を決定する段階は、
前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を識別する段階と、
前記符号なしピラミッド要素の非ゼロ成分の大きさが、前記符号付きピラミッド要素の対応する成分の大きさに等しくなるように、前記符号化された値の前記第1の部分を決定して前記符号なしピラミッド要素を識別する段階と、
前記符号なしピラミッド要素の前記非ゼロ成分に関連する前記符号値が、前記符号付きピラミッド要素の前記対応する成分のための符号値に等しくなるように、前記符号化された値の前記第2の部分を決定する段階と、
を含む、請求項1に記載の方法。
【請求項6】
前記複数の符号化された値のうちの前記符号化された値を決定する段階は、
前記入力オーディオ信号を修正離散コサイン変換(MDCT)に適用することに基づいて周波数変換係数を計算する段階と、
前記周波数変換係数のベクトルを前記量子化パラメータで量子化して、前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を決定する段階と、
前記符号付きピラミッドの前記要素から、前記符号化された値の前記第1の部分及び前記第2の部分を決定する段階と、
を含み、前記第1の部分は、前記符号なしピラミッドの対応する要素を識別し、前記第2の部分は、前記符号付きピラミッドの前記要素の非ゼロ成分のための符号値の特性を示す、請求項1に記載の方法。
【請求項7】
前記複数の符号化された値を復号する段階は、
前記複数の符号化された値から量子化された周波数変換係数を決定する段階であって、対応する量子化された周波数変換係数は、前記符号化された値の前記第1の部分及び前記第2の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第2の部分から識別される符号値を含む、段階と、
前記量子化された周波数変換係数から前記出力オーディオ信号を生成する段階と、
を含む、請求項1に記載の方法。
【請求項8】
前記符号化に関連する第1の位置において、前記複数の符号化された値をビットストリームにパックする段階と、
前記符号化に関連する前記第1の位置から、前記復号に関連する第2の位置に前記ビットストリームを送信する段階と、
前記復号に関連する前記第2の位置において、前記ビットストリームから前記複数の符号化された値をアンパックする段階と、
を更に含む、請求項1に記載の方法。
【請求項9】
オーディオ信号を処理するためのシステムであって、前記システムは、
音源からの入力オーディオ信号にアクセスするように構成された入力ユニットと、
複数の符号化された値を決定することによって前記入力オーディオ信号を符号化することを含む動作を実行するように構成された1又は複数のプロセッサを含むエンコーダであって、
前記複数の符号化された値のうちの符号化された値は、第1の部分及び第2の部分を含み、
前記第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、
前記第1の部分は、第1のビットシーケンスを更に含み、前記第1のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて1又は複数の値から選択され、前記第2の部分は、
前記符号なしピラミッドの
要素の各非ゼロ成分に対する対応する符号値を含
み、
前記第2の部分は、第2のビットシーケンスを更に含み、前記第2のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づく、エンコーダと、
前記入力オーディオ信号の前記符号化に従って前記複数の符号化された値を復号して出力オーディオ信号を生成することを含む動作を実行するように構成された1又は複数のプロセッサを含むデコーダと、
前記出力オーディオ信号をオーディオプレーヤに供給するように構成された出力ユニットと、
を備えるシステム。
【請求項10】
前記複数の符号化された値を復号することは、
前記複数の符号化された値から量子化された周波数変換係数を決定することであって、対応する量子化された周波数変換係数は、前記符号化された値の前記第1の部分及び前記第2の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第2の部分から識別される符号値を含む、量子化された周波数変換係数を決定することと、
前記量子化された周波数変換係数から前記出力オーディオ信号を生成することと、
を含む、請求項
9に記載のシステム。
【請求項11】
オーディオ信号を処理する方法であって、前記方法は、
入力オーディオ信号の複数の符号化された値にアクセスする段階であって、前記複数の符号化された値のうちの符号化された値は、第1の部分及び第2の部分を含み、
前記第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、
前記第1の部分は、第1のビットシーケンスを更に含み、前記第1のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて1又は複数の値から選択され、前記第2の部分は、
前記符号なしピラミッドの
要素の各非ゼロ成分に対する対応する符号値を含
み、
前記第2の部分は、第2のビットシーケンスを更に含み、前記第2のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づく、段階と、
前記複数の符号化された値から量子化された周波数変換係数を決定する段階であって、対応する周波数変換係数は、前記符号化された値の前記第1の部分及び前記第2の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第2の部分から識別される符号値を含む、段階と、
前記量子化された周波数変換係数から出力オーディオ信号を生成する段階と、
を含む、方法。
【請求項12】
前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル成分を有し、該非負の整数ベクトル成分の和が前記量子化パラメータに等しい、請求項
11に記載の方法。
【請求項13】
前記複数の符号化された値のうちの前記符号化された値は、前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を識別し、前記符号なしピラミッド要素の非ゼロ成分は、大きさの値及び符号値を有し、該大きさの値は、前記符号化された値の前記第1の部分によってインデックスを付けられた前記符号付きピラミッド要素の対応する成分から識別され、該符号値は、前記符号化された値の前記第2の部分から識別される、請求項
11に記載の方法。
【請求項14】
前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル要素を有し、該非負の整数ベクトル要素の和が前記量子化パラメータに等しく、
前記関連する符号付きピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号付きピラミッドの前記複数のベクトルの各々は、整数ベクトル要素を有し、該整数ベクトル要素の大きさの和が前記量子化パラメータに等しい、請求項
11に記載の方法。
【請求項15】
変換ベースのエンコーダであって、
入力オーディオ信号から周波数変換係数を計算するように構成された周波数変換回路と、
前記周波数変換係数の複数の係数ブロックを決定するように構成された係数処理回路
であって、前記係数処理回路は、前記複数の係数ブロックに関して、個別の周波数バンドへの前記周波数変換係数の直交変換及び置換を実行するように更に構成される、係数処理回路と、
前記複数の係数ブロックのうちの係数ブロックに関して、符号化された値を決定するように構成された量子化器回路であって、該符号化された値は、第1の部分及び第2の部分を含み、該第1の部分は、前記係数ブロックのベクトルサイズ及び前記量子化器回路の解像度に対応する量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第2の部分は、前記符号なしピラミッドの
要素の各非ゼロ成分に対する対応する符号値を含む、量子化器回路と、
前記複数の係数ブロックに関して前記量子化器回路によって決定された複数の符号化された値から、符号化されたビットストリームを生成するように構成されたビットストリームパッキング回路と、
を備える、変換ベースのエンコーダ。
【請求項16】
変換ベースのデコーダであって、
符号化されたビットストリームから複数の符号化された値を決定するように構成されたビットストリームアンパッキング回路であって、前記複数の符号化された値のうちの符号化された値は、第1の部分及び第2の部分を含み、該第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第2の部分は、該符号なしピラミッドの
要素の各非ゼロ成分に対する対応する符号値を含む、ビットストリームアンパッキング回路と、
前記複数の符号化された値のうちの前記符号化された値から、前記量子化パラメータに対応する解像度についての前記ベクトルサイズに対応する係数ブロックを決定するように構成された逆量子化器回路であって、該係数ブロックは、前記符号化された値の前記第1の部分及び前記第2の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第2の部分から識別された符号値を含む、逆量子化器回路と、
前記複数の符号化された値に関して前記逆量子化器回路によって決定された複数の係数ブロックから、複数の周波数変換係数を決定するように構成された逆係数処理回路
であって、前記逆係数処理回路は、前記複数の係数ブロックの逆直交変換及び置換を実行して、前記複数の周波数変換係数を決定するように更に構成される、逆係数処理回路と、
前記複数の周波数変換係数からオーディオ信号を生成するように構成されたオーディオ回路と、
を備える変換ベースのデコーダ。
【発明の詳細な説明】
【背景技術】
【0001】
(優先権出願)
本出願は、引用により文書全体が本明細書に組み込まれる、2016年8月30日出願の米国仮出願第62/381,479号の利益を主張する。
【0002】
高解像度信号(high-resolution signals)の伝送には、通常、伝送の前後でデータストリームを符号化及び復号するためのコーデックデバイスを介したデータの圧縮及び回復を伴う。より高速でより高い解像度(例えば、リアルタイムオーディオ及びビデオ)の要件により、一般的にはデータ信号、特に高解像度信号の符号化及び復号を改善する必要が生じている。従来の手法では、多くの実施可能な応用においてこれらの要件に対応する能力が限定的であり、解像度の要件により許容可能でないほど低速となる可能性がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特定の実施形態は、符号付きピラミッド(signed pyramid)のベクトル要素を、第1の部分及び第2の部分を含む符号化された値(encoded value)に関連付けることによって、係数のベクトルの符号化及び復号の改善を可能にし、ここで第1の部分は、符号なしピラミッド(unsigned pyramid)の対応するベクトル要素を識別し、第2の部分は、符号付きピラミッドのベクトル要素の非ゼロ成分のための符号値(sign value)の特性を示す。結果として、ワードサイズ等の計算上の制約は、符号付きピラミッドにではなく、符号なしピラミッドに適用される。符号なしピラミッドのサイズがより小さくなることで、計算上の制約内で動作可能な符号付きピラミッドのパラメータの範囲を拡張することが可能になる。
【課題を解決するための手段】
【0005】
1つの実施形態は、オーディオ信号を処理する方法に関する。第1の動作は、音源からの入力オーディオ信号にアクセスする段階を含む。第2の動作は、複数の符号化された値を判断することによって、入力オーディオ信号を符号化する段階を含む。複数の符号化された値のうちの符号化された値は、第1の部分及び第2の部分を含み、第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、第2の部分は、符号なしピラミッドの要素の非ゼロ成分に対する対応する符号値を含む。第3の動作は、入力オーディオ信号の符号化に従って符号化された値を復号して、出力オーディオ信号を生成する段階を含む。第4の動作は、出力オーディオ信号をオーディオプレーヤに供給する段階を含む。符号化された値のデータ伝送に関連する付加的な動作は、符号化のための第2の動作と、復号のための第3の動作との間に含めることができる。
【0006】
別の実施形態は、上述の方法の何れか1つを実施するための装置に関し、装置は、この方法に関連する命令を実行するためのコンピュータを含む。例えば、コンピュータは、命令のうちの少なくとも一部分を実行するためのプロセッサを含むことができる。付加的又は代替的に、コンピュータは、命令のうちの少なくとも一部分を実行するための回路又は他の専用ハードウェアを含むことができる。一部の動作設定において、装置は、1又は複数のユニットを含むシステムとして構成することができ、その各々は、ソフトウェアで、ハードウェアで、又はこれらの何らかの組み合わせの何れかで、方法の一部の態様を実施するように構成される。方法の結果の少なくとも一部の値は、後で使用するために、メモリユニット及びストレージデバイスを含むコンピュータ可読媒体内に保存することができる。別の実施形態は、コンピュータで上述の方法の何れか1つを実施するためのコンピュータプログラムを格納(例えば、有形に具現化)するコンピュータ可読媒体に関する。このようにして、開示する実施形態の態様は、様々な動作設定において信号の符号化及び復号の改善を可能にし、より速い速度及びより高い解像度のための増大する要件に応答して、コンピュータ関連技術における改善をもたらす。
【0007】
特定の実施形態は、限定ではなく例証として添付図面の図に示される。
【図面の簡単な説明】
【0008】
【
図1】ベクトルサイズn=20及び量子化パラメータkの様々な値のための符号付き及び符号なしピラミッドのサイズを示す表である。
【
図2】ベクトルサイズn及び量子化パラメータkの選択された値に関する整数下界の例示的な値を示す表である。
【
図3】例示的な実施形態による、オーディオ信号を処理する方法を示すフローチャートである。
【
図4】
図3の方法に関連する例示的な実施形態による、符号化された値を判断することによって入力オーディオ信号を符号化する方法を示すフローチャートである。
【
図5】
図3の方法に関連する例示的な実施形態による、符号化された値を復号する方法を示すフローチャートである。
【
図6】例示的な実施形態による、
図3の符号化動作と復号動作との間にデータ伝送に関連する任意選択の動作を含む方法を示すフローチャートである。
【
図7】
図3の実施形態に関連する例示的な実施形態による、オーディオ信号を処理するためのシステムを示す図である。
【
図8】
図3の実施形態に関連する例示的な実施形態による、オーディオ信号を処理するための別のシステムを示す図である。
【
図9】
図8のエンコーダの実施形態の更なる詳細を示す図である。
【
図10】
図8のデコーダの実施形態の更なる詳細を示す図である。
【
図11】本明細書で議論する方法論の何れか1つをコンピュータに実行させるための命令セットをその内部で実行することができるコンピュータ処理システムを示すブロック図である。
【発明を実施するための形態】
【0009】
以下の説明は、本開示の実施形態を例証するシステム、方法、技術、命令シーケンス、及びコンピュータプログラム製品を含む。以下の記述には、説明目的において、開示された主題の種々の実施形態の理解をもたらすために、多くの具体的な詳細が記載されている。しかしながら、当業者であれば、開示される主題の実施形態は、これらの具体的な詳細を含まずとも実施可能であることは明らかであろう。一般に、周知の命令インスタンス、プロトコル、構造、及び技術については詳細には示していない。
【0010】
1.
ピラミッドベクトル量子化器(Pyramid Vector Quantizers)
正の整数n、kに関して、符号付きピラミッドS(n,k)は、
からのベクトルの部分集合を表し、L
1ノルムはkに等しく、式中
は整数の集合を表す:
式(1)
【0011】
ピラミッドベクトル量子化器(PVQ)は、何らかの正の整数k、量子化器の解像度の特性を示す量子化パラメータに関して、
が実数の集合を表す場合、
のベクトルをS(n,k)のベクトルにマッピングする。従来のコーディング用途では、ベクトル
がベクトル
に量子化され、この量子化されたベクトルが符号化されてデコーダに送られ、ここでプロセスが反転される。
【0012】
量子化されたベクトルyを符号化するための1つの方法は、集合S(n,k)を列挙すること、すなわち、この要素を順序付けて、各ベクトル
が一意のインデックスI
S(y), 0 ≦I
S(y) < |S(n, k)|を有するようにして、式中、|S|は集合Sの濃度(cardinality)を表す。次いで、yを符号化するために、このインデックスI
S(y)が送られる。受信側では、デコーダが、同じ列挙法を用いて、インデックスからyを復元する。実施可能な応用では、所与のベクトルyに対して、そのインデックスI
S(y)を効率的に計算することができ、逆に、所与のインデックスI
S(y)に対して、対応するベクトルyを効率的に計算できるように、列挙は、効率的に計算可能とすべきである。このようなS(n,k)の効率的な列挙は、PVQのコーディングの当業者には既知である。インデックス自体の符号化は、例えば、
ビット(すなわち、底を2とする対数の整数上界)においてI
S(y)の2進表現による固定長コードを用いることによって実現することができる。代替的に、幾らかより効率的な符号化は、最適な長さ2のコードを用いることによって実現することができ、幾つかのインデックスを
ビットにおいてコーディングして、残りのインデックスを
(すなわち、底を2とする対数の整数下界)ビットにおいてコーディングし、ここで、この手法は、S(n,k)におけるベクトル上の一様確率分布を前提とする。
【0013】
列挙アルゴリズムは、およそ
のサイズの整数に対する算術演算を含む。効率的なコンピュータ実装において、使用中のプロセッサの基本ワードサイズmにこれらの整数を当てはめさせることが好ましいことになる(例えば、m=32又はm=64ビット)。このことは、
となるように、PVQの実行パラメータn,kに制約を課す。実施可能な応用では、比較的長いベクトルを量子化して符号化する必要が多くあり、そのためビットの所与のバジェットBを有する。B>mの場合、サイズ2
Bのピラミッドは、単一符号化には大きすぎるので、これは、1回の符号化では行うことができない。一般的な解決策は、ベクトルを2等分に分けて、例えば、B=B1+B2
-Cのように、バジェットを2等分(必ずしも等分とは限らない)に分割することであり、ここでcは、デコーダに対するバジェット割当て又は区分の他の特性を記述することの考えられる損失を表す。次に、これら2等分の各々に対して量子化/符号化を試みることができ、プロセスは、符号化されるベクトルの各部分のバジェットbiが
を満たすまで再帰的に継続することができる。
【0014】
2.
可変長符号化
以下で詳細に議論するように、特定の実施形態は、n及びkに対する上記の制約を緩和して、これにより2
mよりも大きいサイズのピラミッドを可能にし、したがって、分割数を上述の再帰分割プロセスで低減できるようになる。正の整数n、kに関して、符号なしピラミッドP(n,k)は、S(n,k)内の全てが非負であるベクトルの部分集合を表す:
式(2)
【0015】
以下で説明するように、ベクトル
の符号化は、2段階で実行することができ、結果として2つの部分を生じる。
【0016】
第1の段階において、
として定義される対応するベクトル
を決定する。次に、P(n,k)の列挙内で対応するインデックスI
P(y’)を見つけて符号化する。P(n,k)におけるベクトルの一様分布を前提として、これは、
ビットを必要とし、式中、
は、
を満たす。符号化されたベクトルの第1の部分は、インデックスI
P(y’)である。
【0017】
第2の段階では、yの各非ゼロ成分(例えば、エントリ)の符号の特性は、1-ビットコードによって示すことができる。符号化されたベクトルの第2の部分は、これらの符号の特性を示し、場合によっては、符号ごとに1ビットを利用する単純な符号化である(例えば、「0」は「+」を表し、「1」は「-」を表す)。
【0018】
第1の段階を実行するために、P(n,k)の従来の列挙を使用することができ、これは、一般的にS(n,k)よりも遙かに小さい。演算される整数のサイズに関する制約は、
となり、制約
よりも厳しくない。
【0019】
第2の段階からの符号化の第2の部分は、比較的小さく、算術演算を必要とせず、どのような特定の制限も受けない。しかしながら、この部分の長さは、非ゼロであると仮定されるyの非ゼロ成分の数に応じて、1ビットからmin(n,k)ビットまで変わることができる。結果として、符号化のこの部分は、固定長符号化を利用する従来の方法と比較して、可変の長さを有することができる。
【0020】
図1の表は、ベクトルサイズn=20及び量子化パラメータkの様々な値に対して、|P(n,k)|及び|S(n,k)|の値を示している。表の値によって示されるように、S(n,k)の列挙に基づく従来の方法は、32ビットマシンではk=10に制限されるのに対し、上述の2段階法では、32ビットマシンでは、量子化パラメータkの値を最大16まで許容する。比較すると、従来の方法では、k=16の場合は42ビットの整数の演算を必要とし、そのため、ベクトルは、当該量子化レベルでのコーディングプロセスの一部として分割が必要となることを表が示している。
【0021】
PVQの実行パラメータの範囲を拡張といった上述の利点に加えて、P(n,k)はS(n,k)と比較して、より単純な組み合わせオブジェクトであり、したがって、対応する列挙アルゴリズムもより単純になることに留意されたい。以下で議論するように、P(n,k)の要素は、一度に(n-1)取り出される(n+k-1)個の要素の組み合わせで識別することができる。
【0022】
3.符号化のための量子化レベル
mビットマシンによる典型的な高解像度コーディング応用では、ビットのバジェットb及び長さnのベクトルxが与えられて、高レベルの量子化のために利用可能な最大の量子化パラメータkで量子化し符号化する。固定長符号化によるS(n,k)の列挙に基づく上述の従来の方法のケースでは、b≦mの場合、|S(n,k)| ≦ 2bを満たすkの最大値が求まる。b>mの場合には、ベクトルは、上述のように分割することができる。
【0023】
上述のような可変長符号化に基づく実施形態の場合、コードの長さは、xに強く依存し、したがって、所与のビットバジェットb及びxの様々な値に対して様々な量子化レベルが実施可能とすることができる。代替的に、(例えば、実施可能なベクトルxから均一にサンプリングされる多くのコーディング動作にわたって)平均して境界が得られるように、パラメータkに対応する量子化レベルを見出すことに重点を置くことができる。すなわち、実際のビット消費は、長期平均がバジェットを満たす限り、個々のケースに関して設定されたバジェットを上回ることも、又は下回ることもできる。
【0024】
特定の実施形態に関して、量子化パラメータkは、kの値が比較的(又は最適に)ビットバジェットbに近い期待コード長を生じるように、期待コード長を評価することによって所与のベクトル長nに関して決定することができる。S(n,k)内の全ベクトルが同程度であると仮定して、期待コード長は、次式で定義されるL
kによって上方で境界付けられる。
式(3)
式中、Z(n,k)は、P(n,k)からランダムに選択されたベクトル内のゼロ成分の期待数である。
【0025】
L
kに関するこの式の評価に関して、P(n,k)内のベクトル数は以下の通りである。
式(4)
【0026】
例えば、(n+k-1)個の要素が、ベクトル要素間の境界の位置及びベクトル要素への単一寄与度の位置を示し、1つのベクトル要素の境界が開始位置(例えば、最も左又は最も右)に固定される。次いで、ベクトル要素の(n-1)個の付加的な境界の位置を、(n+k-1)個の可能な位置から選択することができる。
【0027】
【0028】
Z(n,k)についての上記の式では、因数
は、j個のゼロ成分のための異なる選択肢の数であり、
は、成分の合計がkである次元(n-j)の真に正である整数の数である。
【0029】
上述の式を用いて、所与のベクトルサイズn及びビットバジェットbに対する、最適な(又はほぼ最適な)量子化パラメータkを決定する式を導出することができる。1を超える整数n,bに関して、関数K(n,b)は、
がbに最も近くなるようなkの値として定義され、同じ場合は、より大きなkの値が選ばれる。一部の動作設定において、この関数の所定の推定値は、アクセスを好都合にするために格納することができる。例えば、特定の実施形態は、kの最適値への近似のため以下の関数形式を含む。
式(6)
式中、係数C
0(n)及びC
1(n)は、関連する値の範囲にわたるK(n,b)への近似のための最小二乗適合を通じて取得することができる。この近似は、ベクトル長n及びビットバジェットbの所与の値のための量子化パラメータkの効率的な評価を可能にする。
図2は、n及びbの選択された値に対する整数下界
の例示的な値を含む表を示している。
図1の表に関して上述したように、これは、符号化の平均にわたって所与のビットバジェットのためのより高い量子化レベルを可能にする。
【0030】
4.
方法の実施形態
特定の実施形態について、本明細書ではオーディオ信号に関して説明しているが、データ処理の当業者であれば、代替のデータセット(例えばビデオ信号)への拡張は理解されるであろう。
図3は、例示的な実施形態による、オーディオ信号を処理する方法300を示している。第1の動作302は、音源(例えばマイクロフォン)からの入力オーディオ信号にアクセスする段階を含む。
【0031】
第2の動作304は、入力オーディオ信号を符号化して、符号化された値を決定する段階を含む。符号化された値は、第1の部分及び第2の部分を含み、第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、第2の部分は、符号なしピラミッドの要素の各非ゼロ成分に対する対応する符号値を含む。
【0032】
第3の動作306は、入力オーディオ信号の符号化に従って符号化された値を復号して、出力オーディオ信号を生成する段階を含む。第4の動作308は、出力オーディオ信号をオーディオプレーヤ(例えば、出力スピーカを含む)に供給する段階を含む。以下で議論するように、データ伝送に関連する任意選択の動作310は、通常、符号化動作304と復号動作306との間で実行される。
【0033】
符号なしピラミッドは、通常、式2のように定義される。すなわち、符号なしピラミッドは、ベクトルサイズの複数のベクトルを含み、符号なしピラミッドの複数のベクトルの各々は、非負の整数ベクトル要素(non-negative integral vector elements)を有し、非負の整数ベクトル要素の和が量子化パラメータに等しい。式2に関して上述したように、符号化された値の第1の部分は、第1のビットシーケンスを含むことができ、第1のシーケンスの長さは、符号なしピラミッドのサイズに基づいて1又は複数の値から選択される。上述のように、この長さは、符号なしピラミッドのサイズに基づいて固定長とすることができ、又は上述の2の長さの最適なコードのように、ビット数を最小限に又は低減するために幾らか変えることもできる。更に、符号化された係数の第2の部分は、第2のビットシーケンスを含むことができ、第2のシーケンスの可変長は、第1のシーケンスにおいて符号化されたベクトルの非ゼロ成分の数に基づく。すなわち、第1の部分から識別される符号なしピラミッド要素は、対応する符号付きピラミッド要素を回復するために、その符号値(プラス又はマイナス)が第2の部分から識別されるある数の非ゼロ成分を含む。
【0034】
関連する符号付きピラミッドは通常、式1のように定義される。すなわち、関連する符号付きピラミッドは、ベクトルサイズの複数のベクトルを含み、符号付きピラミッドの複数のベクトルの各々は、整数ベクトル要素を有し、整数ベクトル要素の大きさ(magnitudes)の和が量子化パラメータに等しい。
【0035】
式1及び式2により説明するように、符号なしピラミッドの各要素は、ベクトル要素の絶対値(すなわち大きさ)を取ることによって、符号付きピラミッドの要素で識別することができる。このようにして、符号付きピラミッドの要素は、符号なしピラミッドの対応する要素を識別する第1の部分、並びにベクトル要素の省略された符号値を構成する第2の部分によって符号化することができる。第1及び第2などの用語は、ラベル付けの目的のためだけに本明細書及びそれ以外で使用され、何らかの特定の空間的又は時間的順序を表すものではない。更に、第1の要素のラベル付けは、第2の要素の存在を示唆するものではない。
【0036】
図3の実施形態は、入力オーディオ信号から出力オーディオ信号までの動作を開示しているが、関連する実施形態では、符号化の動作304又は復号の動作306に特に重点を置くことができる。
【0037】
図4は、例示的な実施形態による、(例えば、
図3の動作304のような)符号化された値を決定することによって入力オーディオ信号を符号化する方法400を示している。第1の動作402は、入力オーディオ信号を修正離散コサイン変換(MDCT)に適用することに基づいて、周波数変換係数を計算する段階を含む。例えば、符号なしピラミッドのベクトルサイズは、MDCTの周波数次元又は周波数次元の一部分(例えば、一部の周波数成分が無視されるか又は他の周波数成分と組み合わされる場合、又はフルMDCTスペクトルが、より短いベクトルに分割される場合)に対応することができる。
【0038】
第2の動作404は、周波数変換係数のベクトルを量子化パラメータで量子化して、ベクトルサイズ及び量子化パラメータによって定義される符号付きピラミッド(例えば式1)の要素を決定する段階を含む。すなわち、周波数成分は、組み合わされ(例えば分割を介して)、変倍され、及び整数値にマッピングされて、整数ベクトル要素の合計が、同様に整数である量子化パラメータに等しくなるようにすることができる。例えば、実数値のベクトル(例えば、変倍された周波数成分のベクトル)に基づいて、マッピングは、最適に近い又は十分に近い整数値ベクトルを決定することができる。第3の動作406は、符号付きピラミッドの要素から符号化された値の第1の部分及び第2の部分を決定する段階を含み、第1の部分は、符号なしピラミッド(例えば式2)の対応する要素を識別し、第2の部分は、符号付きピラミッド(例えば式1)の要素の非ゼロ成分のための符号値の特性を示す。符号化動作304において符号化された各値を決定するために、同様の動作を実行することができ、例えば、周波数スペクトルの区分及び周波数スペクトルの一部分のための関連するビットバジェットに応じて、異なるピラミッドを使用することができる。
【0039】
図5は、例示的な実施形態による、(例えば、
図3の動作306のような)符号化された値を復号する方法500を示している。第1の動作502は、符号化された値から、量子化された周波数変換係数を決定する段階を含む。例えば、
図4に関して上述した符号化された値に関して、対応する量子化された周波数変換係数は、符号化された値の第1の部分及び第2の部分を用いてベクトルサイズ及び量子化パラメータのための符号なしピラミッド(例えば式2)に対応する符号付きピラミッド(例えば式1)の要素を識別することによって決定され、符号付きピラミッドの識別された要素は、符号化された値の第2の部分から識別された符号値を含む。第2の動作504は、量子化された周波数変換係数から出力オーディオ信号生成する段階を含む。この第2の動作504は、
図4の動作404に関して上述した変倍動作の逆の動作を含むので、関連する変倍係数(又は符号化されたベクトルのノルム)は一般に、この段階のためにアクセス可能にされる。
【0040】
一般に、復号動作306は、符号化動作304と整合するので、出力オーディオ信号は、入力オーディオ信号の量子化パラメータ及びベクトルサイズに対する近似となる。すなわち、復号に関連する動作は、ベクトルサイズ及び量子化パラメータに従って符号化に関連する動作の逆の動作を含む。
【0041】
上述のように、データ伝送に関連する動作310は通常、符号化動作304と復号動作306の間で実行される。
図6は、符号化動作304と復号動作306との間でデータ伝送に関連する任意選択の動作(例えば、
図3の動作310)を含む方法600を示している。第1の動作602は、符号化された値を、符号化に関連する第1の位置でビットストリームにパックする段階を含む。第2の動作604は、符号化に関連する第1の位置から、復号に関連する第2の位置にビットストリームを送信する段階を含む。第3の動作606は、復号に関連する第2の位置において、ビットストリームから符号化された値をアンパックする段階を含む。
【0042】
上述の方法の実施形態に関連するシステムの実施形態は、動作設定の要件に応じて、複雑度は様々とすることができる。
図7は、
図3の方法300による、オーディオ信号を処理するためのシステムを示している。入力ユニット702は、音源からの入力オーディオ信号にアクセスするように構成される。エンコーダ704は、入力オーディオ信号を符号化して、符号化された値を決定する段階を含む動作を実行するように構成された1又は複数のプロセッサを含み、符号化された値は各々、第1の部分及び第2の部分を含み、第1の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、第2の部分は、符号なしピラミッドの要素の各非ゼロ成分のための符号値の特性を示す。デコーダ706は、入力オーディオ信号の符号化に従って符号化された値を復号して、出力オーディオ信号を生成する段階を含む動作を実行するように構成された1又は複数のプロセッサを含む。出力ユニット708は、出力オーディオ信号をオーディオプレーヤに供給するように構成される。
【0043】
図6に関して上記で議論したのと同様に、データ伝送のための付加的なハードウェアユニット710は、符号化された値に関連するビットストリームをエンコーダ704に関連する第1の位置からデコーダ706に関連する第2の位置に伝送することに関連する動作のため、エンコーダ704とデコーダ706との間に含めることができる。同様に、付加的なハードウェア要素は、入力ユニット702によってアクセスされる入力オーディオ信号のための音源、並びに出力ユニット706によって出力オーディオ信号が供給されるオーディオプレーヤと関連付けることができる。
【0044】
図7の実施形態は、入力オーディオ信号と出力オーディオ信号との間の構造ユニットを開示しているが、関連する実施形態では、エンコーダ704又はデコーダ706に特に重点を置くことができる。
【0045】
図8は、エネルギー平滑化を備えた変換ベースのコーデックを含む例示的な実施形態による、オーディオ信号を処理するためのより詳細なシステム800を示している。以下で議論するように、
図8のシステム800は、
図7のシステム700のより具体的なバージョンとして理解することができる。
【0046】
最初に、コンテンツ生成環境802(例えば、
図7の入力ユニット702に対応する)において、オーディオコンテンツ(音楽トラック又はボーカルトラック)が作成される。この環境802は、音源を記録するための複数のマイクロフォン804(又は他のサウンドキャプチャデバイス)を含むことができる。代替的に、音源は、マイクロフォンを用いて音源を記録する必要がないように、既にデジタル信号であってもよい。音を生成する方法が何であれ、コンテンツ生成環境802の出力は、(例えば、何らかのアナログフォーマットで表される)オーディオ信号806である。
【0047】
次に、オーディオ信号806は、エネルギー平滑化を備えた変換ベースのエンコーダ(transform-based encoder)808(例えば、
図7のエンコーダ704に対応する)を介して符号化される。エンコーダ808は、通常、1又は複数の処理デバイスを有するコンピュータデバイス上に位置する。エンコーダ808は、オーディオ信号806を符号化して、符号化されたビットストリーム810を生成する。
【0048】
符号化されたビットストリーム810は、(配信環境812例えば、
図7のデータ伝送のためのハードウェアユニット710に対応する)を介して聞く人によって消費されるために配信される。ネットワーク814上でのストリーミング配信を含む複数の配信オプションが利用可能である。代替的に、符号化されたビットストリーム810は、聞く人によって消費されるために、媒体816(例えば光学ディスク)上に格納される。加えて、ここには列挙しないが、符号化されたビットストリーム810を配信するために使用できる他の多くの配信オプションが存在する。
【0049】
配信環境812の出力は、送信される符号化されたビットストリーム818であり、これが、エネルギー平滑化を備えた変換ベースのデコーダ820(例えば、
図7のデコーダ706に対応する)への入力である。デコーダ820は、送信されてきた符号化されたビットストリーム818を復号して、回復されたオーディオ信号822を取得する。デコーダ820の実施形態は、通常、1又は複数の処理デバイスを有するコンピュータデバイス上に位置する。回復されたオーディオ信号822は、(例えば、
図7の出力ユニット708に対応する)再生スピーカ(又はチャンネル)レイアウトを含む再生環境824で再生される。再生スピーカレイアウトは、コンテンツ生成スピーカレイアウトと同じであっても、又は同じでないこともある。
図8に示す再生スピーカレイアウトは、11.2レイアウトであり、環境824は、聞く人826を含む。他の実施形態では、再生スピーカレイアウトは、スピーカが、再生環境824において音の発信元に見える単なる仮想スピーカであるようなヘッドフォンを含むことができる。例えば、聞く人826は、ヘッドフォンを通じて回復されたオーディオ信号822を聴いていてもよい。この状況において、スピーカは、実際の物理的なスピーカではなく(ヘッドフォンを別にすれば)、音は、例えば11.2サラウンドサウンドスピーカ構成に対応する再生環境824において様々な空間的位置から発生するように見える。
【0050】
図9は、例示的な実施形態に関して、
図8のエネルギー平滑化を備えた変換ベースのエンコーダ808の更なる詳細を示している(エネルギー平滑化は、一部の実施形態では任意選択とすることができる点に留意されたい)。
図9に示すように、周波数変換係数のブロック902が、オーディオ信号806から(例えば、周波数変換回路を介して)抽出される。これらの係数902は、直交変換及び置換システム904に入力されて、このシステムが、処理された周波数変換係数906を(例えば、係数処理回路を介して)生成する。次に、処理された周波数変換係数906は、ベクトル量子化器908(例えば、量子化器回路)によって処理される。ベクトル量子化器908の出力(例えば、符号化された値)は、ビットストリームパッキングシステム910(例えば、ビットストリームパッキング回路)によって処理されて、符号化されたビットストリーム810を生成する。
【0051】
周波数変換係数のブロック902は、
図4を参照して上述したようなMDCT処理を介して、オーディオ信号806から抽出されるMDCT係数とすることができる。直交変換及び置換(permutation)システム904は、ベクトル量子化器908による個別の処理のために、個別周波数バンドからの係数を処理された周波数変換係数906のベクトルに組み合わせることができる。直交変換及び置換システム904はまた、米国特許出願第15/253,646号明細書に記載されるような周波数バンド内でエネルギー平滑化を利用することができ、これは、更に詳細に以下で説明する。
【0052】
このような状況では、ベクトル量子化器908による個別処理のために、周波数バンドを個別の周波数セグメントに分割することは、通常、オーディオ信号を表すのに必要なベクトル量子化の数によって決まる、全体の計算コストに多大な影響を及ぼす点に留意されたい。
図1に関連して上述したように、より大きな周波数セグメントを表すより大きいサイズのピラミッドの要素は、各段階で符号化することができるので、開示する実施形態では、より少ない量子化でオーディオ信号を表すことができる。すなわち、各量子化においてより多くの情報を符号化することができるので、オーディオ信号を表すのに必要な量子化が全体として少なくなる。例えば、典型的なオーディオ応用を表す計算の実施形態では、オーディオ信号を表すのに必要な量子化の数が、従来の方法と比較して5~25%の減少が見られた。通常、分割及び量子化の数は、符号化に利用可能なビットの総数に伴って増加し、したがって、復元される信号の品質に伴って増加する。典型的な組み込み用途(例えば、デジタルTVセット内に組み込まれたオーディオデコーダ)では、オーディオを復号するのに利用可能な計算バジェット(1秒あたりのCPUサイクル数)が厳しく制限される。そのため、開示される実施形態により、所与の計算バジェットに対してより高い品質の復元が可能になる。すなわち、開示される実施形態は、オーディオ処理の増加する要件に応答して、コンピュータ関連技術の改善を可能にし、速度要件を損なうことなく、より高い解像度の信号を処理することができる。
【0053】
次に、ベクトル量子化器908は、
図3の動作302に従って、処理された周波数変換係数906に対して符号化された値を決定することができる。次いで、ビットストリームパッキングシステム910は、
図6の第1の動作602に従って、符号化されたビットストリーム810を決定することができる。
【0054】
図10は、例示的な実施形態に関して、
図8のエネルギー平滑化を備えた変換ベースのデコーダ820の更なる詳細を示している(エネルギー平滑化は、一部の実施形態では任意選択とすることができる点に留意されたい)。デコーダ820は、ビットストリームパッキングシステム910の動作の逆の動作をする(例えば、ビットストリームアンパッキング回路を介した)ビットストリームアンパッキング1002と、ベクトル量子化器908の動作の逆の動作をする(例えば、逆量子化器回路を介した)逆ベクトル量子化器1004(
図3の第3の動作306が、
図3の第2の動作304の逆の動作をするのと同様)を含む。逆ベクトル量子化器1004は、受け取った周波数変換係数1006を出力して、これらの係数が直交逆変換及び置換システム1008に入力され、このシステムは、直交変換及び置換システム904の動作の逆の動作をして、周波数変換係数の回復されたブロック1010を(例えば、逆係数処理回路を介して)生成する。デコーダ820の出力は、(例えば、オーディオ回路を介して)回復されたオーディオ信号822である。
【0055】
直交変換及び置換システム904及び直交逆変換及び置換システム1008を含む、
図8~10の要素に関連する更なる詳細については、引用により文書全体が本明細書に組み込まれる、「サブバンドエネルギー平滑化を備えた変換ベースのオーディオコーデック及び方法(Transform-based Audio Codec and Method with Subband Energy Smoothing)」という名称で2016年8月31日に出願された関連の米国出願第15/253,646号に見出される。
【0056】
5.
付加的な実施形態
図11は、本明細書で議論する方法論の何れか1又は複数をマシンに実施させるための命令を実行することができるコンピュータシステム1000の例示的な形態のマシンを示している。代替の実施形態において、マシンは、スタンドアロンデバイスとして動作し、又は他のマシンに接続(例えば、ネットワーク接続)することができる。ネットワーク配置において、マシンは、サーバ-クライアントネットワーク環境ではサーバ又はクライアントマシンとして、或いはピアツーピア(又は分散)ネットワーク環境ではピアマシンとして動作することができる。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブアプライアンス、ネットワークルータ、スイッチ又はブリッジ、或いはそのマシンによって行われるべき動作を指定する命令(シーケンシャルに又は他の方法で)を実行することができる何れかのマシンとすることができる。更に、1つのマシンのみが図示されているが、「マシン」という用語は、本明細書で議論する方法論の何れか1又は複数を実行するための命令セット(又は複数のセット)を個別に又は共同で実行するあらゆるマシン集合も含むものと解釈するべきである。
【0057】
例示的なコンピュータシステム1100は、プロセッサ1102(例えば、中央処理ユニット(CPU))、グラフィックス処理ユニット(GPU)、又はその両方)と、メインメモリ1104と、スタティックメモリ1106と、を含み、これらはバス1108を介して相互に通信する。コンピュータシステム1100は更に、ビデオディスプレイユニット1110(例えば、液晶ディスプレイ(LCD)又はブラウン管(CRT))を含むことができる。コンピュータシステム1100はまた、英数字入力デバイス1112(例えばキーボード)と、ユーザインタフェース(UI)カーソル制御デバイス1114(例えばマウス)と、ストレージユニット1116(例えばディスクドライブ)と、信号発生装置1118(例えばスピーカ)と、ネットワークインタフェースデバイス1120と、を含むことができる。
【0058】
一部の状況において、コンピュータ可読媒体は、マシン可読媒体として説明することができる。ストレージユニット1116は、本明細書で説明する方法論又は機能の何れか1又は複数を具現化又は利用するデータ構造及び命令1124の1又は複数のセット(例えばソフトウェア)が格納されたマシン可読媒体1122を含む。命令1124はまた、コンピュータシステム1100によって命令の実行中に完全に又は少なくとも部分的にスタティックメモリ1106内、メインメモリ1104内、又はプロセッサ1102内に常駐することができ、スタティックメモリ1106、メインメモリ1104、及びプロセッサ1102がマシン可読媒体を構成することもできる。例えば、命令1124は、上述の方法の何れかの要素、又はこれらの方法の何れかを実施する制御システムに対応することができる。
【0059】
例示的な実施形態では、マシン可読媒体1122が単一の媒体であるように示されているが、「マシン可読媒体」及び「コンピュータ可読媒体」という用語は、データ構造及び命令1124の1又は複数のセットを格納する単一のストレージ媒体又は複数のストレージ媒体(例えば、集中又は分散データベース、及び/又は関連するキャッシュ及びサーバ)を含むことができる。これらの用語はまた、マシンによって実行するための命令を格納し、符号化し、又は搬送する能力があり、本明細書に開示する方法論の何れか1又は複数をマシンに実行させ、又はこのような命令によって利用され又はこれに関連するデータ構造を格納し、符号化し、又は搬送する能力がある何れかの有形又は非一時的媒体を含むと解釈すべきである。したがって、これらの用語は、限定ではないが、固体メモリ、光学媒体、及び磁気媒体を含むと解釈すべきである。マシン可読又はコンピュータ可読媒体の具体的な例は、不揮発性メモリを含み、例として半導体メモリデバイス、例えば、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、及びフラッシュメモリデバイス、内部ハードディスク及びリムーバブルディスク等の磁気ディスク、光磁気ディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、及びデジタル多用途ディスク読み取り専用メモリ(DVD-ROM)を含む。しかしながら、「マシン可読媒体」及び「コンピュータ可読媒体」という用語は、本質的に非法定の信号を明確に除外するよう意図している。
【0060】
命令1124は更に、伝送媒体を用いて通信ネットワーク1126上で送受信することができる。命令1124は、ネットワークインタフェースデバイス1120及び複数の既知の転送プロトコルの何れか1つ(例えば、ハイパーテキスト転送プロトコル(HTTP))を用いて伝送することができる。通信ネットワークの実施例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、モバイル電話ネットワーク、従来の電話サービス(plain old telephone;POTS)ネットワーク、及び無線データネットワーク(例えば、WiFi及びWiMaxネットワーク)を含む。「伝送媒体」という用語は、マシンによって実行するための命令を格納し、符号化し、又は搬送する能力がある何れかの無形媒体を含むと解釈すべきであり、このようなソフトウェアの通信を円滑にするためのデジタル又はアナログ通信信号又は他の無形媒体を含む。
【0061】
特定の実施形態について、本明細書ではロジック、又は多くの構成要素、モジュール、又は機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール又はハードウェアに実装されたモジュールの何れかを構成することができる。ハードウェアに実装されたモジュールとは、一定の動作を実行する能力がある有形のユニットで、特定の方法で構成又は配置することができる。例示的な実施形態において、1又は複数のコンピュータシステム(例えば、スタンドアロン、クライアント、又はサーバコンピュータシステム)、或いは1又は複数のプロセッサは、本明細書で説明するような一定の動作を実行するように動作するハードウェアに実装されたモジュールとして、ソフトウェア(例えば、アプリケーション又はアプリケーション部分)によって構成することができる。
【0062】
種々の実施形態において、ハードウェアに実装されたモジュール(例えばコンピュータに実装されたモジュール)は、機械的に又は電子的に実施することができる。例えば、ハードウェアに実装されたモジュールは、一定の動作を実行するように永続的に構成された(例えば、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)のような専用プロセッサとして)専用回路又はロジックを含むことができる。ハードウェアに実装されたモジュールはまた、一定の動作を実行するようにソフトウェアによって一時的に構成された(例えば、汎用プロセッサ又は他のプログラム可能プロセッサ内に包含されるものとして)プログラム可能ロジック又は回路も含むことができる。専用の永続的に構成された回路で、或いは一時的に構成された回路で(例えば、ソフトウェアによる構成)ハードウェアに実装されたモジュールを機械的に実施するという決定は、コスト及び時間を考慮することによって行うことができる点は理解されるであろう。
【0063】
したがって、「ハードウェアに実装されたモジュール(hardware-implemented module)」(例えば「コンピュータに実装されたモジュール」)という用語は、一定の方法で動作するために及び/又は本明細書で説明する一定の動作を実行するために、エンティティが物理的に構築された、永続的に構成された(例えば組み込まれた)、又は一時的に又は一過性で構成された(例えばプログラムされた)ものの何れであれ、有形のエンティティを包含すると理解されるべきである。ハードウェアに実装されたモジュールが一時的に構成された(例えばプログラムされた)実施形態を考慮すれば、ハードウェアモジュールの各々をどの時点においても構成又はインスタンス化する必要はない。例えば、ハードウェアに実装されたモジュールが、ソフトウェアを用いて構成された汎用プロセッサを備える場合、汎用プロセッサは、異なる時点で、それぞれ異なるハードウェアに実装されたモジュールとして構成することができる。したがって、ソフトウェアは、例えば、ある時点において特定のハードウェアに実装されたモジュールを構築するように、及び異なる時点において異なるハードウェアに実装されたモジュールを構築するようにプロセッサを構成することができる。
【0064】
ハードウェアに実装されたモジュールは、他のハードウェアに実装されたモジュールに情報を提供し、そこから情報を受信することができる。したがって、本明細書で述べるハードウェアに実装されたモジュールは、通信可能に結合されるとみなすことができる。複数のこのようなハードウェアに実装されたモジュールが同時に存在する場合、通信は、ハードウェアに実装されたモジュールを接続する信号伝送を通じて(例えば、適切な回路及びバス上で)実現することができる。複数のハードウェアに実装されたモジュールが異なる時点で構成又はインスタンス化される実施形態では、このようなハードウェアに実装されたモジュール間の通信は、例えば、複数のハードウェアに実装されたモジュールがアクセスを有するメモリ構造への情報の格納及び読み出しを通じて行うことができる。例えば、あるハードウェアに実装されたモジュールが動作を実行して、自己が通信可能に結合されたメモリデバイスにこの動作の出力を格納することができる。その後、更なるハードウェアに実装されたモジュールが、後の時点でメモリデバイスにアクセスして、格納された出力を読み出して処理することができる。ハードウェアに実装されたモジュールはまた、入力又は出力デバイスとの通信を開始することもでき、リソース(例えば情報の集合)に対して作用することができる。
【0065】
本明細書で説明する例示的な方法の種々の動作は、関連する動作を実行するように(例えばソフトウェアによって)一時的に構成された又は永続的に構成された、1又は複数のプロセッサによって少なくとも部分的に実行することができる。一時的に又は永続的に構成されたかにかかわらず、このようなプロセッサは、1又は複数の動作又は機能を実行するように動作するプロセッサ実施のモジュールを構築することができる。本明細書で言うモジュールとは、一部の例示的な実施形態において、プロセッサ実施のモジュールを含むことができる。
【0066】
同様に、本明細書で説明する方法は、少なくとも部分的にプロセッサ実施とすることができる。例えば、方法の動作の少なくとも一部は、1又は複数のプロセッサ又はプロセッサ実施のモジュールによって実行することができる。動作の一部の実行は、単一のマシン内に常駐するだけでなく、多くのマシンにわたって配備された1又は複数のプロセッサの間で分散させることができる。一部の例示的な実施形態において、1又は複数のプロセッサは、単一の位置(例えば、ホーム環境、オフィス環境内、又はサーバファームとして)に配置することができるが、別の実施形態では、多くの位置にわたってプロセッサを分散することができる。
【0067】
1又は複数のプロセッサはまた、「クラウドコンピューティング」環境で又は「software as a service(SaaS)」として、関連動作の実行をサポートするように動作することもできる。例えば、動作の少なくとも一部は、コンピュータ集合(プロセッサを含むマシンの例として)によって実行することができ、これらの動作には、ネットワーク(例えばインターネット)を介して、及び1又は複数の適切なインタフェース(例えばアプリケーションプログラムインタフェース(API))を介してアクセス可能である。
【0068】
6.結論
上記では、特定の実施形態のみについて詳細に説明したが、当業者であれば、本開示の新規の教示から著しく逸脱することなく、多くの修正が可能であることは容易に理解されるであろう。例えば、上記に開示する実施形態の態様を、他の組み合わせで結合して、付加的な実施形態を形成することができる。したがって、このような全ての修正が、本開示の範囲内に含まれるものとする。