(57)【要約】  特定の実施形態は、符号付きピラミッドのベクトル要素を第１の部分及び第２の部分を含む符号化された値に関連付けることによって、係数のベクトルの符号化及び復号の改善を可能にし、ここでこの第１の部分は、符号なしピラミッドの対応するベクトル要素を識別し、第２の部分は、符号付きピラミッドのベクトル要素の非ゼロ成分のための符号値の特性を示す。結果として、ワードサイズ等の計算上の制約が、符号付きピラミッドではなく、符号なしピラミッドに適用される。符号なしピラミッドのサイズがより小さくなることで、計算上の制約内で動作可能な符号付きピラミッドのパラメータの範囲の拡張が可能になる。【選択図】図８
2019529979.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号を処理する方法であって、
音源からの入力オーディオ信号にアクセスする段階と、
複数の符号化された値を決定することによって、前記入力オーディオ信号を符号化する段階であって、該複数の符号化された値のうちの符号化された値は、第１の部分及び第２の部分を含み、該第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第２の部分は、該符号なしピラミッドの該要素の各非ゼロ成分に対する対応する符号値を含む、段階と、
前記入力オーディオ信号の前記符号化に従って前記複数の符号化された値を復号して、出力オーディオ信号を生成する段階と、
前記出力オーディオ信号をオーディオプレーヤに供給する段階と、
を含む方法。
【請求項２】
前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル成分を有し、該非負の整数ベクトル成分の和が前記量子化パラメータに等しい、請求項１に記載の方法。
【請求項３】
前記複数の符号化された値のうちの前記符号化された値は、前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を識別し、前記符号なしピラミッド要素の非ゼロ成分は、大きさの値及び符号値を有し、該大きさの値は、前記符号化された値の前記第１の部分によってインデックスを付けられた前記符号付きピラミッド要素の対応する成分から識別され、該符号値は、前記符号化された値の前記第２の部分から識別される、請求項１に記載の方法。
【請求項４】
前記第１の部分は、第１のビットシーケンスを含み、該第１のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて１又は複数の値から選択され、
前記第２の部分は、第２のビットシーケンスを含み、該第２のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づく、請求項１に記載の方法。
【請求項５】
前記第１の部分は、第１のビットシーケンスを含み、該第１のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて１又は複数の値から選択され、前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル要素を有し、該非負の整数ベクトル要素の和が前記量子化パラメータに等しく、
前記第２の部分は、第２のビットシーケンスを含み、該第２のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づき、該関連する符号付きピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号付きピラミッドの前記複数のベクトルの各々は、整数ベクトル要素を有し、該整数ベクトル要素の大きさの和が前記量子化パラメータに等しい、請求項１に記載の方法。
【請求項６】
前記複数の符号化された値のうちの前記符号化された値を決定する段階は、
前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を識別する段階と、
前記符号なしピラミッド要素の非ゼロ成分の大きさが、前記符号付きピラミッド要素の対応する成分の大きさに等しくなるように、前記符号化された値の前記第１の部分を決定して前記符号なしピラミッド要素を識別する段階と、
前記符号なしピラミッド要素の前記非ゼロ成分に関連する前記符号値が、前記符号付きピラミッド要素の前記対応する成分のための符号値に等しくなるように、前記符号化された値の前記第２の部分を決定する段階と、
を含む、請求項１に記載の方法。
【請求項７】
前記複数の符号化された値のうちの前記符号化された値を決定する段階は、
前記入力オーディオ信号を修正離散コサイン変換（ＭＤＣＴ)に適用することに基づいて周波数変換係数を計算する段階と、
前記周波数変換係数のベクトルを前記量子化パラメータで量子化して、前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を決定する段階と、
前記符号付きピラミッドの前記要素から、前記符号化された値の前記第１の部分及び前記第２の部分を決定する段階と、
を含み、前記第１の部分は、前記符号なしピラミッドの対応する要素を識別し、前記第２の部分は、前記符号付きピラミッドの前記要素の非ゼロ成分のための符号値の特性を示す、請求項１に記載の方法。
【請求項８】
前記複数の符号化された値を復号する段階は、
前記複数の符号化された値から量子化された周波数変換係数を決定する段階であって、対応する量子化された周波数変換係数は、前記符号化された値の前記第１の部分及び前記第２の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第２の部分から識別される符号値を含む、段階と、
前記量子化された周波数変換係数から前記出力オーディオ信号を生成する段階と、
を含む、請求項１に記載の方法。
【請求項９】
前記符号化に関連する第１の位置において、前記複数の符号化された値をビットストリームにパックする段階と、
前記符号化に関連する前記第１の位置から、前記復号に関連する第２の位置に前記ビットストリームを送信する段階と、
前記復号に関連する前記第２の位置において、前記ビットストリームから前記複数の符号化された値をアンパックする段階と、
を更に含む、請求項１に記載の方法。
【請求項１０】
オーディオ信号を処理するためのシステムであって、前記システムは、
音源からの入力オーディオ信号にアクセスするように構成された入力ユニットと、
複数の符号化された値を決定することによって前記入力オーディオ信号を符号化することを含む動作を実行するように構成された１又は複数のプロセッサを含むエンコーダであって、該複数の符号化された値のうちの符号化された値は、第１の部分及び第２の部分を含み、該第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第２の部分は、該符号なしピラミッドの該要素の各非ゼロ成分に対する対応する符号値を含む、エンコーダと、
前記入力オーディオ信号の前記符号化に従って前記複数の符号化された値を復号して出力オーディオ信号を生成することを含む動作を実行するように構成された１又は複数のプロセッサを含むデコーダと、
前記出力オーディオ信号をオーディオプレーヤに供給するように構成された出力ユニットと、
を備えるシステム。
【請求項１１】
前記複数の符号化された値を復号することは、
前記複数の符号化された値から量子化された周波数変換係数を決定することであって、対応する量子化された周波数変換係数は、前記符号化された値の前記第１の部分及び前記第２の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第２の部分から識別される符号値を含む、量子化された周波数変換係数を決定することと、
前記量子化された周波数変換係数から前記出力オーディオ信号を生成することと、
を含む、請求項１０に記載のシステム。
【請求項１２】
オーディオ信号を処理する方法であって、前記方法は、
入力オーディオ信号の複数の符号化された値にアクセスする段階であって、前記複数の符号化された値のうちの符号化された値は、第１の部分及び第２の部分を含み、該第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第２の部分は、該符号なしピラミッドの該要素の各非ゼロ成分に対する対応する符号値を含む、段階と、
前記複数の符号化された値から量子化された周波数変換係数を決定する段階であって、対応する周波数変換係数は、前記符号化された値の前記第１の部分及び前記第２の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第２の部分から識別される符号値を含む、段階と、
前記量子化された周波数変換係数から出力オーディオ信号を生成する段階と、
を含む、方法。
【請求項１３】
前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル成分を有し、該非負の整数ベクトル成分の和が前記量子化パラメータに等しい、請求項１２に記載の方法。
【請求項１４】
前記複数の符号化された値のうちの前記符号化された値は、前記ベクトルサイズ及び前記量子化パラメータによって定義される符号付きピラミッドの要素を識別し、前記符号なしピラミッド要素の非ゼロ成分は、大きさの値及び符号値を有し、該大きさの値は、前記符号化された値の前記第１の部分によってインデックスを付けられた前記符号付きピラミッド要素の対応する成分から識別され、該符号値は、前記符号化された値の前記第２の部分から識別される、請求項１２に記載の方法。
【請求項１５】
前記第１の部分は、第１のビットシーケンスを含み、該第１のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて１又は複数の値から選択され、
前記第２の部分は、第２のビットシーケンスを含み、該第２のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づく、請求項１２に記載の方法。
【請求項１６】
前記第１の部分は、第１のビットシーケンスを含み、該第１のシーケンスの長さは、前記符号なしピラミッドのサイズに基づいて１又は複数の値から選択され、前記符号なしピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号なしピラミッドの前記複数のベクトルの各々は、非負の整数ベクトル要素を有し、該非負の整数ベクトル要素の和が前記量子化パラメータに等しく、
前記第２の部分は、第２のビットシーケンスを含み、該第２のシーケンスの可変長は、前記ベクトルサイズ及び前記量子化パラメータによって定義される関連する符号付きピラミッドの対応する要素の非ゼロ成分の数に基づき、該関連する符号付きピラミッドは、前記ベクトルサイズの複数のベクトルを含み、前記符号付きピラミッドの前記複数のベクトルの各々は、整数ベクトル要素を有し、該整数ベクトル要素の大きさの和が前記量子化パラメータに等しい、請求項１２に記載の方法。
【請求項１７】
変換ベースのエンコーダであって、
入力オーディオ信号から周波数変換係数を計算するように構成された周波数変換回路と、
前記周波数変換係数の複数の係数ブロックを決定するように構成された係数処理回路と、
前記複数の係数ブロックのうちの係数ブロックに関して、符号化された値を決定するように構成された量子化器回路であって、該符号化された値は、第１の部分及び第２の部分を含み、該第１の部分は、前記係数ブロックのベクトルサイズ及び前記量子化器回路の解像度に対応する量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第２の部分は、前記符号なしピラミッドの前記要素の各非ゼロ成分に対する対応する符号値を含む、量子化器回路と、
前記複数の係数ブロックに関して前記量子化器回路によって決定された複数の符号化された値から、符号化されたビットストリームを生成するように構成されたビットストリームパッキング回路と、
を備える、変換ベースのエンコーダ。
【請求項１８】
前記係数処理回路は、前記複数の係数ブロックに関して、個別の周波数バンドへの前記周波数変換係数の直交変換及び置換を実行するように更に構成される、請求項１７に記載の変換ベースのエンコーダ。
【請求項１９】
変換ベースのデコーダであって、
符号化されたビットストリームから複数の符号化された値を決定するように構成されたビットストリームアンパッキング回路であって、前記複数の符号化された値のうちの符号化された値は、第１の部分及び第２の部分を含み、該第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、該第２の部分は、該符号なしピラミッドの該要素の各非ゼロ成分に対する対応する符号値を含む、ビットストリームアンパッキング回路と、
前記複数の符号化された値のうちの前記符号化された値から、前記量子化パラメータに対応する解像度についての前記ベクトルサイズに対応する係数ブロックを決定するように構成された逆量子化器回路であって、該係数ブロックは、前記符号化された値の前記第１の部分及び前記第２の部分を用いることによって、前記複数の符号化された値のうちの前記符号化された値から決定されて、前記ベクトルサイズ及び量子化パラメータのための前記符号なしピラミッドに対応する符号付きピラミッドの要素を識別し、該符号付きピラミッドの該識別された要素は、前記符号化された値の前記第２の部分から識別された符号値を含む、逆量子化器回路と、
前記複数の符号化された値に関して前記逆量子化器回路によって決定された複数の係数ブロックから、複数の周波数変換係数を決定するように構成された逆係数処理回路と、
前記複数の周波数変換係数からオーディオ信号を生成するように構成されたオーディオ回路と、
を備える変換ベースのデコーダ。
【請求項２０】
前記逆係数処理回路は、前記複数の係数ブロックの逆直交変換及び置換を実行して、前記複数の周波数変換係数を決定するように更に構成される、請求項１９に記載の変換ベースのデコーダ。
【発明の詳細な説明】
【背景技術】
【０００１】
（優先権出願）
本出願は、引用により文書全体が本明細書に組み込まれる、２０１６年８月３０日出願の米国仮出願第６２／３８１，４７９号の利益を主張する。
【０００２】
高解像度信号(high-resolution signals)の伝送には、通常、伝送の前後でデータストリームを符号化及び復号するためのコーデックデバイスを介したデータの圧縮及び回復を伴う。より高速でより高い解像度（例えば、リアルタイムオーディオ及びビデオ）の要件により、一般的にはデータ信号、特に高解像度信号の符号化及び復号を改善する必要が生じている。従来の手法では、多くの実施可能な応用においてこれらの要件に対応する能力が限定的であり、解像度の要件により許容可能でないほど低速となる可能性がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国出願第１５／２５３，６４６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特定の実施形態は、符号付きピラミッド(signed pyramid)のベクトル要素を、第１の部分及び第２の部分を含む符号化された値(encoded value)に関連付けることによって、係数のベクトルの符号化及び復号の改善を可能にし、ここで第１の部分は、符号なしピラミッド(unsigned pyramid)の対応するベクトル要素を識別し、第２の部分は、符号付きピラミッドのベクトル要素の非ゼロ成分のための符号値(sign value)の特性を示す。結果として、ワードサイズ等の計算上の制約は、符号付きピラミッドにではなく、符号なしピラミッドに適用される。符号なしピラミッドのサイズがより小さくなることで、計算上の制約内で動作可能な符号付きピラミッドのパラメータの範囲を拡張することが可能になる。
【課題を解決するための手段】
【０００５】
１つの実施形態は、オーディオ信号を処理する方法に関する。第１の動作は、音源からの入力オーディオ信号にアクセスする段階を含む。第２の動作は、複数の符号化された値を判断することによって、入力オーディオ信号を符号化する段階を含む。複数の符号化された値のうちの符号化された値は、第１の部分及び第２の部分を含み、第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、第２の部分は、符号なしピラミッドの要素の非ゼロ成分に対する対応する符号値を含む。第３の動作は、入力オーディオ信号の符号化に従って符号化された値を復号して、出力オーディオ信号を生成する段階を含む。第４の動作は、出力オーディオ信号をオーディオプレーヤに供給する段階を含む。符号化された値のデータ伝送に関連する付加的な動作は、符号化のための第２の動作と、復号のための第３の動作との間に含めることができる。
【０００６】
別の実施形態は、上述の方法の何れか１つを実施するための装置に関し、装置は、この方法に関連する命令を実行するためのコンピュータを含む。例えば、コンピュータは、命令のうちの少なくとも一部分を実行するためのプロセッサを含むことができる。付加的又は代替的に、コンピュータは、命令のうちの少なくとも一部分を実行するための回路又は他の専用ハードウェアを含むことができる。一部の動作設定において、装置は、１又は複数のユニットを含むシステムとして構成することができ、その各々は、ソフトウェアで、ハードウェアで、又はこれらの何らかの組み合わせの何れかで、方法の一部の態様を実施するように構成される。方法の結果の少なくとも一部の値は、後で使用するために、メモリユニット及びストレージデバイスを含むコンピュータ可読媒体内に保存することができる。別の実施形態は、コンピュータで上述の方法の何れか１つを実施するためのコンピュータプログラムを格納（例えば、有形に具現化）するコンピュータ可読媒体に関する。このようにして、開示する実施形態の態様は、様々な動作設定において信号の符号化及び復号の改善を可能にし、より速い速度及びより高い解像度のための増大する要件に応答して、コンピュータ関連技術における改善をもたらす。
【０００７】
特定の実施形態は、限定ではなく例証として添付図面の図に示される。
【図面の簡単な説明】
【０００８】
【図１】ベクトルサイズｎ＝２０及び量子化パラメータｋの様々な値のための符号付き及び符号なしピラミッドのサイズを示す表である。
【図２】ベクトルサイズｎ及び量子化パラメータｋの選択された値に関する整数下界の例示的な値を示す表である。
【図３】例示的な実施形態による、オーディオ信号を処理する方法を示すフローチャートである。
【図４】図３の方法に関連する例示的な実施形態による、符号化された値を判断することによって入力オーディオ信号を符号化する方法を示すフローチャートである。
【図５】図３の方法に関連する例示的な実施形態による、符号化された値を復号する方法を示すフローチャートである。
【図６】例示的な実施形態による、図３の符号化動作と復号動作との間にデータ伝送に関連する任意選択の動作を含む方法を示すフローチャートである。
【図７】図３の実施形態に関連する例示的な実施形態による、オーディオ信号を処理するためのシステムを示す図である。
【図８】図３の実施形態に関連する例示的な実施形態による、オーディオ信号を処理するための別のシステムを示す図である。
【図９】図８のエンコーダの実施形態の更なる詳細を示す図である。
【図１０】図８のデコーダの実施形態の更なる詳細を示す図である。
【図１１】本明細書で議論する方法論の何れか１つをコンピュータに実行させるための命令セットをその内部で実行することができるコンピュータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００９】
以下の説明は、本開示の実施形態を例証するシステム、方法、技術、命令シーケンス、及びコンピュータプログラム製品を含む。以下の記述には、説明目的において、開示された主題の種々の実施形態の理解をもたらすために、多くの具体的な詳細が記載されている。しかしながら、当業者であれば、開示される主題の実施形態は、これらの具体的な詳細を含まずとも実施可能であることは明らかであろう。一般に、周知の命令インスタンス、プロトコル、構造、及び技術については詳細には示していない。
【００１０】
１．ピラミッドベクトル量子化器(Pyramid Vector Quantizers)
正の整数ｎ、ｋに関して、符号付きピラミッドＳ（ｎ,ｋ）は、
2019529979.tif 000003
からのベクトルの部分集合を表し、Ｌ1ノルムはｋに等しく、式中
2019529979.tif 000004
は整数の集合を表す：
2019529979.tif 000005
式（１）
【００１１】
ピラミッドベクトル量子化器（ＰＶＱ）は、何らかの正の整数ｋ、量子化器の解像度の特性を示す量子化パラメータに関して、
2019529979.tif 000006
が実数の集合を表す場合、
2019529979.tif 000007
のベクトルをＳ（ｎ,ｋ）のベクトルにマッピングする。従来のコーディング用途では、ベクトル
2019529979.tif 000008
がベクトル
2019529979.tif 000009
に量子化され、この量子化されたベクトルが符号化されてデコーダに送られ、ここでプロセスが反転される。
【００１２】
量子化されたベクトルｙを符号化するための１つの方法は、集合Ｓ（ｎ,ｋ）を列挙すること、すなわち、この要素を順序付けて、各ベクトル
2019529979.tif 000010
が一意のインデックスＩS（ｙ）, ０ ≦ＩS（ｙ） < |Ｓ（ｎ, ｋ）|を有するようにして、式中、|Ｓ|は集合Ｓの濃度(cardinality)を表す。次いで、ｙを符号化するために、このインデックスＩS（ｙ）が送られる。受信側では、デコーダが、同じ列挙法を用いて、インデックスからｙを復元する。実施可能な応用では、所与のベクトルｙに対して、そのインデックスＩS（ｙ）を効率的に計算することができ、逆に、所与のインデックスＩS（ｙ）に対して、対応するベクトルｙを効率的に計算できるように、列挙は、効率的に計算可能とすべきである。このようなＳ（ｎ,ｋ）の効率的な列挙は、ＰＶＱのコーディングの当業者には既知である。インデックス自体の符号化は、例えば、
2019529979.tif 000011
ビット（すなわち、底を２とする対数の整数上界）においてＩS（ｙ）の２進表現による固定長コードを用いることによって実現することができる。代替的に、幾らかより効率的な符号化は、最適な長さ２のコードを用いることによって実現することができ、幾つかのインデックスを
2019529979.tif 000012
ビットにおいてコーディングして、残りのインデックスを
2019529979.tif 000013
（すなわち、底を２とする対数の整数下界）ビットにおいてコーディングし、ここで、この手法は、Ｓ（ｎ,ｋ）におけるベクトル上の一様確率分布を前提とする。
【００１３】
列挙アルゴリズムは、およそ
2019529979.tif 000014
のサイズの整数に対する算術演算を含む。効率的なコンピュータ実装において、使用中のプロセッサの基本ワードサイズｍにこれらの整数を当てはめさせることが好ましいことになる（例えば、ｍ＝３２又はｍ＝６４ビット）。このことは、
2019529979.tif 000015
となるように、ＰＶＱの実行パラメータｎ，ｋに制約を課す。実施可能な応用では、比較的長いベクトルを量子化して符号化する必要が多くあり、そのためビットの所与のバジェットＢを有する。Ｂ＞ｍの場合、サイズ２Bのピラミッドは、単一符号化には大きすぎるので、これは、１回の符号化では行うことができない。一般的な解決策は、ベクトルを２等分に分けて、例えば、Ｂ＝Ｂ１＋Ｂ２-Cのように、バジェットを２等分（必ずしも等分とは限らない）に分割することであり、ここでｃは、デコーダに対するバジェット割当て又は区分の他の特性を記述することの考えられる損失を表す。次に、これら２等分の各々に対して量子化／符号化を試みることができ、プロセスは、符号化されるベクトルの各部分のバジェットｂｉが
2019529979.tif 000016
を満たすまで再帰的に継続することができる。
【００１４】
２．可変長符号化
以下で詳細に議論するように、特定の実施形態は、ｎ及びｋに対する上記の制約を緩和して、これにより２mよりも大きいサイズのピラミッドを可能にし、したがって、分割数を上述の再帰分割プロセスで低減できるようになる。正の整数ｎ、ｋに関して、符号なしピラミッドＰ（ｎ，ｋ）は、Ｓ（ｎ，ｋ）内の全てが非負であるベクトルの部分集合を表す：
2019529979.tif 000017
式（２）
【００１５】
以下で説明するように、ベクトル
2019529979.tif 000018
の符号化は、２段階で実行することができ、結果として２つの部分を生じる。
【００１６】
第１の段階において、
2019529979.tif 000019
として定義される対応するベクトル
2019529979.tif 000020
を決定する。次に、Ｐ（ｎ，ｋ）の列挙内で対応するインデックスＩP（ｙ’）を見つけて符号化する。Ｐ（ｎ，ｋ）におけるベクトルの一様分布を前提として、これは、
2019529979.tif 000021
ビットを必要とし、式中、
2019529979.tif 000022
は、
2019529979.tif 000023
を満たす。符号化されたベクトルの第１の部分は、インデックスＩP（ｙ’）である。
【００１７】
第２の段階では、ｙの各非ゼロ成分（例えば、エントリ）の符号の特性は、１−ビットコードによって示すことができる。符号化されたベクトルの第２の部分は、これらの符号の特性を示し、場合によっては、符号ごとに１ビットを利用する単純な符号化である（例えば、「０」は「＋」を表し、「１」は「−」を表す）。
【００１８】
第１の段階を実行するために、Ｐ（ｎ，ｋ）の従来の列挙を使用することができ、これは、一般的にＳ（ｎ，ｋ）よりも遙かに小さい。演算される整数のサイズに関する制約は、
2019529979.tif 000024
となり、制約
2019529979.tif 000025
よりも厳しくない。
【００１９】
第２の段階からの符号化の第２の部分は、比較的小さく、算術演算を必要とせず、どのような特定の制限も受けない。しかしながら、この部分の長さは、非ゼロであると仮定されるｙの非ゼロ成分の数に応じて、１ビットからｍｉｎ（ｎ，ｋ）ビットまで変わることができる。結果として、符号化のこの部分は、固定長符号化を利用する従来の方法と比較して、可変の長さを有することができる。
【００２０】
図１の表は、ベクトルサイズｎ＝２０及び量子化パラメータｋの様々な値に対して、|Ｐ（ｎ，ｋ）|及び|Ｓ（ｎ，ｋ）|の値を示している。表の値によって示されるように、Ｓ（ｎ，ｋ）の列挙に基づく従来の方法は、３２ビットマシンではｋ＝１０に制限されるのに対し、上述の２段階法では、３２ビットマシンでは、量子化パラメータｋの値を最大１６まで許容する。比較すると、従来の方法では、ｋ＝１６の場合は４２ビットの整数の演算を必要とし、そのため、ベクトルは、当該量子化レベルでのコーディングプロセスの一部として分割が必要となることを表が示している。
【００２１】
ＰＶＱの実行パラメータの範囲を拡張といった上述の利点に加えて、Ｐ（ｎ，ｋ）はＳ（ｎ，ｋ）と比較して、より単純な組み合わせオブジェクトであり、したがって、対応する列挙アルゴリズムもより単純になることに留意されたい。以下で議論するように、Ｐ（ｎ，ｋ）の要素は、一度に（ｎ−１）取り出される（ｎ＋ｋ−１）個の要素の組み合わせで識別することができる。
【００２２】
３．符号化のための量子化レベル
ｍビットマシンによる典型的な高解像度コーディング応用では、ビットのバジェットｂ及び長さｎのベクトルｘが与えられて、高レベルの量子化のために利用可能な最大の量子化パラメータｋで量子化し符号化する。固定長符号化によるＳ（ｎ，ｋ）の列挙に基づく上述の従来の方法のケースでは、ｂ≦ｍの場合、|Ｓ（ｎ，ｋ）| ≦ ２bを満たすｋの最大値が求まる。ｂ>ｍの場合には、ベクトルは、上述のように分割することができる。
【００２３】
上述のような可変長符号化に基づく実施形態の場合、コードの長さは、ｘに強く依存し、したがって、所与のビットバジェットｂ及びｘの様々な値に対して様々な量子化レベルが実施可能とすることができる。代替的に、（例えば、実施可能なベクトルｘから均一にサンプリングされる多くのコーディング動作にわたって）平均して境界が得られるように、パラメータｋに対応する量子化レベルを見出すことに重点を置くことができる。すなわち、実際のビット消費は、長期平均がバジェットを満たす限り、個々のケースに関して設定されたバジェットを上回ることも、又は下回ることもできる。
【００２４】
特定の実施形態に関して、量子化パラメータｋは、ｋの値が比較的（又は最適に）ビットバジェットｂに近い期待コード長を生じるように、期待コード長を評価することによって所与のベクトル長ｎに関して決定することができる。Ｓ（ｎ，ｋ）内の全ベクトルが同程度であると仮定して、期待コード長は、次式で定義されるＬkによって上方で境界付けられる。
2019529979.tif 000026
式（３）
式中、Ｚ（ｎ，ｋ）は、Ｐ（ｎ，ｋ）からランダムに選択されたベクトル内のゼロ成分の期待数である。
【００２５】
Ｌkに関するこの式の評価に関して、Ｐ（ｎ，ｋ）内のベクトル数は以下の通りである。
2019529979.tif 000027
式（４）
【００２６】
例えば、（ｎ＋ｋ−１）個の要素が、ベクトル要素間の境界の位置及びベクトル要素への単一寄与度の位置を示し、１つのベクトル要素の境界が開始位置（例えば、最も左又は最も右）に固定される。次いで、ベクトル要素の（ｎ−１）個の付加的な境界の位置を、（ｎ＋ｋ−１）個の可能な位置から選択することができる。
【００２７】
Ｚ（ｎ，ｋ）の値は、以下の通りである：
2019529979.tif 000028
式（５）
【００２８】
Ｚ（ｎ，ｋ）についての上記の式では、因数
2019529979.tif 000029
は、ｊ個のゼロ成分のための異なる選択肢の数であり、
2019529979.tif 000030
は、成分の合計がｋである次元（ｎ−ｊ）の真に正である整数の数である。
【００２９】
上述の式を用いて、所与のベクトルサイズｎ及びビットバジェットｂに対する、最適な（又はほぼ最適な）量子化パラメータｋを決定する式を導出することができる。１を超える整数ｎ，ｂに関して、関数Ｋ（ｎ，ｂ）は、
2019529979.tif 000031
がｂに最も近くなるようなｋの値として定義され、同じ場合は、より大きなｋの値が選ばれる。一部の動作設定において、この関数の所定の推定値は、アクセスを好都合にするために格納することができる。例えば、特定の実施形態は、ｋの最適値への近似のため以下の関数形式を含む。
2019529979.tif 000032
式（６）
式中、係数Ｃ0（ｎ）及びＣ1（ｎ）は、関連する値の範囲にわたるＫ（ｎ，ｂ）への近似のための最小二乗適合を通じて取得することができる。この近似は、ベクトル長ｎ及びビットバジェットｂの所与の値のための量子化パラメータｋの効率的な評価を可能にする。図２は、ｎ及びｂの選択された値に対する整数下界
2019529979.tif 000033
の例示的な値を含む表を示している。図１の表に関して上述したように、これは、符号化の平均にわたって所与のビットバジェットのためのより高い量子化レベルを可能にする。
【００３０】
４．方法の実施形態
特定の実施形態について、本明細書ではオーディオ信号に関して説明しているが、データ処理の当業者であれば、代替のデータセット（例えばビデオ信号）への拡張は理解されるであろう。図３は、例示的な実施形態による、オーディオ信号を処理する方法３００を示している。第１の動作３０２は、音源（例えばマイクロフォン）からの入力オーディオ信号にアクセスする段階を含む。
【００３１】
第２の動作３０４は、入力オーディオ信号を符号化して、符号化された値を決定する段階を含む。符号化された値は、第１の部分及び第２の部分を含み、第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、第２の部分は、符号なしピラミッドの要素の各非ゼロ成分に対する対応する符号値を含む。
【００３２】
第３の動作３０６は、入力オーディオ信号の符号化に従って符号化された値を復号して、出力オーディオ信号を生成する段階を含む。第４の動作３０８は、出力オーディオ信号をオーディオプレーヤ（例えば、出力スピーカを含む）に供給する段階を含む。以下で議論するように、データ伝送に関連する任意選択の動作３１０は、通常、符号化動作３０４と復号動作３０６との間で実行される。
【００３３】
符号なしピラミッドは、通常、式２のように定義される。すなわち、符号なしピラミッドは、ベクトルサイズの複数のベクトルを含み、符号なしピラミッドの複数のベクトルの各々は、非負の整数ベクトル要素(non-negative integral vector elements)を有し、非負の整数ベクトル要素の和が量子化パラメータに等しい。式２に関して上述したように、符号化された値の第１の部分は、第１のビットシーケンスを含むことができ、第１のシーケンスの長さは、符号なしピラミッドのサイズに基づいて１又は複数の値から選択される。上述のように、この長さは、符号なしピラミッドのサイズに基づいて固定長とすることができ、又は上述の２の長さの最適なコードのように、ビット数を最小限に又は低減するために幾らか変えることもできる。更に、符号化された係数の第２の部分は、第２のビットシーケンスを含むことができ、第２のシーケンスの可変長は、第１のシーケンスにおいて符号化されたベクトルの非ゼロ成分の数に基づく。すなわち、第１の部分から識別される符号なしピラミッド要素は、対応する符号付きピラミッド要素を回復するために、その符号値（プラス又はマイナス）が第２の部分から識別されるある数の非ゼロ成分を含む。
【００３４】
関連する符号付きピラミッドは通常、式１のように定義される。すなわち、関連する符号付きピラミッドは、ベクトルサイズの複数のベクトルを含み、符号付きピラミッドの複数のベクトルの各々は、整数ベクトル要素を有し、整数ベクトル要素の大きさ(magnitudes)の和が量子化パラメータに等しい。
【００３５】
式１及び式２により説明するように、符号なしピラミッドの各要素は、ベクトル要素の絶対値（すなわち大きさ）を取ることによって、符号付きピラミッドの要素で識別することができる。このようにして、符号付きピラミッドの要素は、符号なしピラミッドの対応する要素を識別する第１の部分、並びにベクトル要素の省略された符号値を構成する第２の部分によって符号化することができる。第１及び第２などの用語は、ラベル付けの目的のためだけに本明細書及びそれ以外で使用され、何らかの特定の空間的又は時間的順序を表すものではない。更に、第１の要素のラベル付けは、第２の要素の存在を示唆するものではない。
【００３６】
図３の実施形態は、入力オーディオ信号から出力オーディオ信号までの動作を開示しているが、関連する実施形態では、符号化の動作３０４又は復号の動作３０６に特に重点を置くことができる。
【００３７】
図４は、例示的な実施形態による、（例えば、図３の動作３０４のような）符号化された値を決定することによって入力オーディオ信号を符号化する方法４００を示している。第１の動作４０２は、入力オーディオ信号を修正離散コサイン変換（ＭＤＣＴ)に適用することに基づいて、周波数変換係数を計算する段階を含む。例えば、符号なしピラミッドのベクトルサイズは、ＭＤＣＴの周波数次元又は周波数次元の一部分（例えば、一部の周波数成分が無視されるか又は他の周波数成分と組み合わされる場合、又はフルＭＤＣＴスペクトルが、より短いベクトルに分割される場合）に対応することができる。
【００３８】
第２の動作４０４は、周波数変換係数のベクトルを量子化パラメータで量子化して、ベクトルサイズ及び量子化パラメータによって定義される符号付きピラミッド（例えば式１）の要素を決定する段階を含む。すなわち、周波数成分は、組み合わされ（例えば分割を介して）、変倍され、及び整数値にマッピングされて、整数ベクトル要素の合計が、同様に整数である量子化パラメータに等しくなるようにすることができる。例えば、実数値のベクトル（例えば、変倍された周波数成分のベクトル）に基づいて、マッピングは、最適に近い又は十分に近い整数値ベクトルを決定することができる。第３の動作４０６は、符号付きピラミッドの要素から符号化された値の第１の部分及び第２の部分を決定する段階を含み、第１の部分は、符号なしピラミッド（例えば式２）の対応する要素を識別し、第２の部分は、符号付きピラミッド（例えば式１）の要素の非ゼロ成分のための符号値の特性を示す。符号化動作３０４において符号化された各値を決定するために、同様の動作を実行することができ、例えば、周波数スペクトルの区分及び周波数スペクトルの一部分のための関連するビットバジェットに応じて、異なるピラミッドを使用することができる。
【００３９】
図５は、例示的な実施形態による、（例えば、図３の動作３０６のような）符号化された値を復号する方法５００を示している。第１の動作５０２は、符号化された値から、量子化された周波数変換係数を決定する段階を含む。例えば、図４に関して上述した符号化された値に関して、対応する量子化された周波数変換係数は、符号化された値の第１の部分及び第２の部分を用いてベクトルサイズ及び量子化パラメータのための符号なしピラミッド（例えば式２）に対応する符号付きピラミッド（例えば式１）の要素を識別することによって決定され、符号付きピラミッドの識別された要素は、符号化された値の第２の部分から識別された符号値を含む。第２の動作５０４は、量子化された周波数変換係数から出力オーディオ信号生成する段階を含む。この第２の動作５０４は、図４の動作４０４に関して上述した変倍動作の逆の動作を含むので、関連する変倍係数（又は符号化されたベクトルのノルム）は一般に、この段階のためにアクセス可能にされる。
【００４０】
一般に、復号動作３０６は、符号化動作３０４と整合するので、出力オーディオ信号は、入力オーディオ信号の量子化パラメータ及びベクトルサイズに対する近似となる。すなわち、復号に関連する動作は、ベクトルサイズ及び量子化パラメータに従って符号化に関連する動作の逆の動作を含む。
【００４１】
上述のように、データ伝送に関連する動作３１０は通常、符号化動作３０４と復号動作３０６の間で実行される。図６は、符号化動作３０４と復号動作３０６との間でデータ伝送に関連する任意選択の動作（例えば、図３の動作３１０）を含む方法６００を示している。第１の動作６０２は、符号化された値を、符号化に関連する第１の位置でビットストリームにパックする段階を含む。第２の動作６０４は、符号化に関連する第１の位置から、復号に関連する第２の位置にビットストリームを送信する段階を含む。第３の動作６０６は、復号に関連する第２の位置において、ビットストリームから符号化された値をアンパックする段階を含む。
【００４２】
上述の方法の実施形態に関連するシステムの実施形態は、動作設定の要件に応じて、複雑度は様々とすることができる。図７は、図３の方法３００による、オーディオ信号を処理するためのシステムを示している。入力ユニット７０２は、音源からの入力オーディオ信号にアクセスするように構成される。エンコーダ７０４は、入力オーディオ信号を符号化して、符号化された値を決定する段階を含む動作を実行するように構成された１又は複数のプロセッサを含み、符号化された値は各々、第１の部分及び第２の部分を含み、第１の部分は、ベクトルサイズ及び量子化パラメータによって定義される符号なしピラミッドの要素のインデックスを含み、第２の部分は、符号なしピラミッドの要素の各非ゼロ成分のための符号値の特性を示す。デコーダ７０６は、入力オーディオ信号の符号化に従って符号化された値を復号して、出力オーディオ信号を生成する段階を含む動作を実行するように構成された１又は複数のプロセッサを含む。出力ユニット７０８は、出力オーディオ信号をオーディオプレーヤに供給するように構成される。
【００４３】
図６に関して上記で議論したのと同様に、データ伝送のための付加的なハードウェアユニット７１０は、符号化された値に関連するビットストリームをエンコーダ７０４に関連する第１の位置からデコーダ７０６に関連する第２の位置に伝送することに関連する動作のため、エンコーダ７０４とデコーダ７０６との間に含めることができる。同様に、付加的なハードウェア要素は、入力ユニット７０２によってアクセスされる入力オーディオ信号のための音源、並びに出力ユニット７０６によって出力オーディオ信号が供給されるオーディオプレーヤと関連付けることができる。
【００４４】
図７の実施形態は、入力オーディオ信号と出力オーディオ信号との間の構造ユニットを開示しているが、関連する実施形態では、エンコーダ７０４又はデコーダ７０６に特に重点を置くことができる。
【００４５】
図８は、エネルギー平滑化を備えた変換ベースのコーデックを含む例示的な実施形態による、オーディオ信号を処理するためのより詳細なシステム８００を示している。以下で議論するように、図８のシステム８００は、図７のシステム７００のより具体的なバージョンとして理解することができる。
【００４６】
最初に、コンテンツ生成環境８０２（例えば、図７の入力ユニット７０２に対応する）において、オーディオコンテンツ（音楽トラック又はボーカルトラック）が作成される。この環境８０２は、音源を記録するための複数のマイクロフォン８０４（又は他のサウンドキャプチャデバイス）を含むことができる。代替的に、音源は、マイクロフォンを用いて音源を記録する必要がないように、既にデジタル信号であってもよい。音を生成する方法が何であれ、コンテンツ生成環境８０２の出力は、（例えば、何らかのアナログフォーマットで表される）オーディオ信号８０６である。
【００４７】
次に、オーディオ信号８０６は、エネルギー平滑化を備えた変換ベースのエンコーダ(transform-based encoder)８０８（例えば、図７のエンコーダ７０４に対応する）を介して符号化される。エンコーダ８０８は、通常、１又は複数の処理デバイスを有するコンピュータデバイス上に位置する。エンコーダ８０８は、オーディオ信号８０６を符号化して、符号化されたビットストリーム８１０を生成する。
【００４８】
符号化されたビットストリーム８１０は、（配信環境８１２例えば、図７のデータ伝送のためのハードウェアユニット７１０に対応する）を介して聞く人によって消費されるために配信される。ネットワーク８１４上でのストリーミング配信を含む複数の配信オプションが利用可能である。代替的に、符号化されたビットストリーム８１０は、聞く人によって消費されるために、媒体８１６（例えば光学ディスク）上に格納される。加えて、ここには列挙しないが、符号化されたビットストリーム８１０を配信するために使用できる他の多くの配信オプションが存在する。
【００４９】
配信環境８１２の出力は、送信される符号化されたビットストリーム８１８であり、これが、エネルギー平滑化を備えた変換ベースのデコーダ８２０（例えば、図７のデコーダ７０６に対応する）への入力である。デコーダ８２０は、送信されてきた符号化されたビットストリーム８１８を復号して、回復されたオーディオ信号８２２を取得する。デコーダ８２０の実施形態は、通常、１又は複数の処理デバイスを有するコンピュータデバイス上に位置する。回復されたオーディオ信号８２２は、（例えば、図７の出力ユニット７０８に対応する）再生スピーカ（又はチャンネル）レイアウトを含む再生環境８２４で再生される。再生スピーカレイアウトは、コンテンツ生成スピーカレイアウトと同じであっても、又は同じでないこともある。図８に示す再生スピーカレイアウトは、１１．２レイアウトであり、環境８２４は、聞く人８２６を含む。他の実施形態では、再生スピーカレイアウトは、スピーカが、再生環境８２４において音の発信元に見える単なる仮想スピーカであるようなヘッドフォンを含むことができる。例えば、聞く人８２６は、ヘッドフォンを通じて回復されたオーディオ信号８２２を聴いていてもよい。この状況において、スピーカは、実際の物理的なスピーカではなく（ヘッドフォンを別にすれば）、音は、例えば１１．２サラウンドサウンドスピーカ構成に対応する再生環境８２４において様々な空間的位置から発生するように見える。
【００５０】
図９は、例示的な実施形態に関して、図８のエネルギー平滑化を備えた変換ベースのエンコーダ８０８の更なる詳細を示している（エネルギー平滑化は、一部の実施形態では任意選択とすることができる点に留意されたい）。図９に示すように、周波数変換係数のブロック９０２が、オーディオ信号８０６から（例えば、周波数変換回路を介して）抽出される。これらの係数９０２は、直交変換及び置換システム９０４に入力されて、このシステムが、処理された周波数変換係数９０６を（例えば、係数処理回路を介して）生成する。次に、処理された周波数変換係数９０６は、ベクトル量子化器９０８（例えば、量子化器回路）によって処理される。ベクトル量子化器９０８の出力（例えば、符号化された値）は、ビットストリームパッキングシステム９１０（例えば、ビットストリームパッキング回路）によって処理されて、符号化されたビットストリーム８１０を生成する。
【００５１】
周波数変換係数のブロック９０２は、図４を参照して上述したようなＭＤＣＴ処理を介して、オーディオ信号８０６から抽出されるＭＤＣＴ係数とすることができる。直交変換及び置換(permutation)システム９０４は、ベクトル量子化器９０８による個別の処理のために、個別周波数バンドからの係数を処理された周波数変換係数９０６のベクトルに組み合わせることができる。直交変換及び置換システム９０４はまた、米国特許出願第１５／２５３，６４６号明細書に記載されるような周波数バンド内でエネルギー平滑化を利用することができ、これは、更に詳細に以下で説明する。
【００５２】
このような状況では、ベクトル量子化器９０８による個別処理のために、周波数バンドを個別の周波数セグメントに分割することは、通常、オーディオ信号を表すのに必要なベクトル量子化の数によって決まる、全体の計算コストに多大な影響を及ぼす点に留意されたい。図１に関連して上述したように、より大きな周波数セグメントを表すより大きいサイズのピラミッドの要素は、各段階で符号化することができるので、開示する実施形態では、より少ない量子化でオーディオ信号を表すことができる。すなわち、各量子化においてより多くの情報を符号化することができるので、オーディオ信号を表すのに必要な量子化が全体として少なくなる。例えば、典型的なオーディオ応用を表す計算の実施形態では、オーディオ信号を表すのに必要な量子化の数が、従来の方法と比較して５〜２５％の減少が見られた。通常、分割及び量子化の数は、符号化に利用可能なビットの総数に伴って増加し、したがって、復元される信号の品質に伴って増加する。典型的な組み込み用途（例えば、デジタルＴＶセット内に組み込まれたオーディオデコーダ）では、オーディオを復号するのに利用可能な計算バジェット（１秒あたりのＣＰＵサイクル数）が厳しく制限される。そのため、開示される実施形態により、所与の計算バジェットに対してより高い品質の復元が可能になる。すなわち、開示される実施形態は、オーディオ処理の増加する要件に応答して、コンピュータ関連技術の改善を可能にし、速度要件を損なうことなく、より高い解像度の信号を処理することができる。
【００５３】
次に、ベクトル量子化器９０８は、図３の動作３０２に従って、処理された周波数変換係数９０６に対して符号化された値を決定することができる。次いで、ビットストリームパッキングシステム９１０は、図６の第１の動作６０２に従って、符号化されたビットストリーム８１０を決定することができる。
【００５４】
図１０は、例示的な実施形態に関して、図８のエネルギー平滑化を備えた変換ベースのデコーダ８２０の更なる詳細を示している（エネルギー平滑化は、一部の実施形態では任意選択とすることができる点に留意されたい）。デコーダ８２０は、ビットストリームパッキングシステム９１０の動作の逆の動作をする（例えば、ビットストリームアンパッキング回路を介した）ビットストリームアンパッキング１００２と、ベクトル量子化器９０８の動作の逆の動作をする（例えば、逆量子化器回路を介した）逆ベクトル量子化器１００４（図３の第３の動作３０６が、図３の第２の動作３０４の逆の動作をするのと同様）を含む。逆ベクトル量子化器１００４は、受け取った周波数変換係数１００６を出力して、これらの係数が直交逆変換及び置換システム１００８に入力され、このシステムは、直交変換及び置換システム９０４の動作の逆の動作をして、周波数変換係数の回復されたブロック１０１０を（例えば、逆係数処理回路を介して）生成する。デコーダ８２０の出力は、（例えば、オーディオ回路を介して）回復されたオーディオ信号８２２である。
【００５５】
直交変換及び置換システム９０４及び直交逆変換及び置換システム１００８を含む、図８〜１０の要素に関連する更なる詳細については、引用により文書全体が本明細書に組み込まれる、「サブバンドエネルギー平滑化を備えた変換ベースのオーディオコーデック及び方法（Ｔｒａｎｓｆｏｒｍ−ｂａｓｅｄ  Ａｕｄｉｏ  Ｃｏｄｅｃ  ａｎｄ  Ｍｅｔｈｏｄ  ｗｉｔｈ  Ｓｕｂｂａｎｄ  Ｅｎｅｒｇｙ  Ｓｍｏｏｔｈｉｎｇ）」という名称で２０１６年８月３１日に出願された関連の米国出願第１５／２５３，６４６号に見出される。
【００５６】
５．付加的な実施形態
図１１は、本明細書で議論する方法論の何れか１又は複数をマシンに実施させるための命令を実行することができるコンピュータシステム１０００の例示的な形態のマシンを示している。代替の実施形態において、マシンは、スタンドアロンデバイスとして動作し、又は他のマシンに接続（例えば、ネットワーク接続）することができる。ネットワーク配置において、マシンは、サーバ−クライアントネットワーク環境ではサーバ又はクライアントマシンとして、或いはピアツーピア（又は分散）ネットワーク環境ではピアマシンとして動作することができる。マシンは、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ウェブアプライアンス、ネットワークルータ、スイッチ又はブリッジ、或いはそのマシンによって行われるべき動作を指定する命令（シーケンシャルに又は他の方法で）を実行することができる何れかのマシンとすることができる。更に、１つのマシンのみが図示されているが、「マシン」という用語は、本明細書で議論する方法論の何れか１又は複数を実行するための命令セット（又は複数のセット）を個別に又は共同で実行するあらゆるマシン集合も含むものと解釈するべきである。
【００５７】
例示的なコンピュータシステム１１００は、プロセッサ１１０２（例えば、中央処理ユニット（ＣＰＵ））、グラフィックス処理ユニット（ＧＰＵ）、又はその両方）と、メインメモリ１１０４と、スタティックメモリ１１０６と、を含み、これらはバス１１０８を介して相互に通信する。コンピュータシステム１１００は更に、ビデオディスプレイユニット１１１０（例えば、液晶ディスプレイ（ＬＣＤ）又はブラウン管（ＣＲＴ））を含むことができる。コンピュータシステム１１００はまた、英数字入力デバイス１１１２（例えばキーボード）と、ユーザインタフェース（ＵＩ）カーソル制御デバイス１１１４（例えばマウス）と、ストレージユニット１１１６（例えばディスクドライブ）と、信号発生装置１１１８（例えばスピーカ）と、ネットワークインタフェースデバイス１１２０と、を含むことができる。
【００５８】
一部の状況において、コンピュータ可読媒体は、マシン可読媒体として説明することができる。ストレージユニット１１１６は、本明細書で説明する方法論又は機能の何れか１又は複数を具現化又は利用するデータ構造及び命令１１２４の１又は複数のセット（例えばソフトウェア）が格納されたマシン可読媒体１１２２を含む。命令１１２４はまた、コンピュータシステム１１００によって命令の実行中に完全に又は少なくとも部分的にスタティックメモリ１１０６内、メインメモリ１１０４内、又はプロセッサ１１０２内に常駐することができ、スタティックメモリ１１０６、メインメモリ１１０４、及びプロセッサ１１０２がマシン可読媒体を構成することもできる。例えば、命令１１２４は、上述の方法の何れかの要素、又はこれらの方法の何れかを実施する制御システムに対応することができる。
【００５９】
例示的な実施形態では、マシン可読媒体１１２２が単一の媒体であるように示されているが、「マシン可読媒体」及び「コンピュータ可読媒体」という用語は、データ構造及び命令１１２４の１又は複数のセットを格納する単一のストレージ媒体又は複数のストレージ媒体（例えば、集中又は分散データベース、及び／又は関連するキャッシュ及びサーバ）を含むことができる。これらの用語はまた、マシンによって実行するための命令を格納し、符号化し、又は搬送する能力があり、本明細書に開示する方法論の何れか１又は複数をマシンに実行させ、又はこのような命令によって利用され又はこれに関連するデータ構造を格納し、符号化し、又は搬送する能力がある何れかの有形又は非一時的媒体を含むと解釈すべきである。したがって、これらの用語は、限定ではないが、固体メモリ、光学媒体、及び磁気媒体を含むと解釈すべきである。マシン可読又はコンピュータ可読媒体の具体的な例は、不揮発性メモリを含み、例として半導体メモリデバイス、例えば、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、及びフラッシュメモリデバイス、内部ハードディスク及びリムーバブルディスク等の磁気ディスク、光磁気ディスク、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、及びデジタル多用途ディスク読み取り専用メモリ（ＤＶＤ−ＲＯＭ）を含む。しかしながら、「マシン可読媒体」及び「コンピュータ可読媒体」という用語は、本質的に非法定の信号を明確に除外するよう意図している。
【００６０】
命令１１２４は更に、伝送媒体を用いて通信ネットワーク１１２６上で送受信することができる。命令１１２４は、ネットワークインタフェースデバイス１１２０及び複数の既知の転送プロトコルの何れか１つ（例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ））を用いて伝送することができる。通信ネットワークの実施例は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、モバイル電話ネットワーク、従来の電話サービス（ｐｌａｉｎ  ｏｌｄ  ｔｅｌｅｐｈｏｎｅ；ＰＯＴＳ）ネットワーク、及び無線データネットワーク（例えば、ＷｉＦｉ及びＷｉＭａｘネットワーク）を含む。「伝送媒体」という用語は、マシンによって実行するための命令を格納し、符号化し、又は搬送する能力がある何れかの無形媒体を含むと解釈すべきであり、このようなソフトウェアの通信を円滑にするためのデジタル又はアナログ通信信号又は他の無形媒体を含む。
【００６１】
特定の実施形態について、本明細書ではロジック、又は多くの構成要素、モジュール、又は機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール又はハードウェアに実装されたモジュールの何れかを構成することができる。ハードウェアに実装されたモジュールとは、一定の動作を実行する能力がある有形のユニットで、特定の方法で構成又は配置することができる。例示的な実施形態において、１又は複数のコンピュータシステム（例えば、スタンドアロン、クライアント、又はサーバコンピュータシステム）、或いは１又は複数のプロセッサは、本明細書で説明するような一定の動作を実行するように動作するハードウェアに実装されたモジュールとして、ソフトウェア（例えば、アプリケーション又はアプリケーション部分）によって構成することができる。
【００６２】
種々の実施形態において、ハードウェアに実装されたモジュール（例えばコンピュータに実装されたモジュール）は、機械的に又は電子的に実施することができる。例えば、ハードウェアに実装されたモジュールは、一定の動作を実行するように永続的に構成された（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は特定用途向け集積回路（ＡＳＩＣ）のような専用プロセッサとして）専用回路又はロジックを含むことができる。ハードウェアに実装されたモジュールはまた、一定の動作を実行するようにソフトウェアによって一時的に構成された（例えば、汎用プロセッサ又は他のプログラム可能プロセッサ内に包含されるものとして）プログラム可能ロジック又は回路も含むことができる。専用の永続的に構成された回路で、或いは一時的に構成された回路で（例えば、ソフトウェアによる構成）ハードウェアに実装されたモジュールを機械的に実施するという決定は、コスト及び時間を考慮することによって行うことができる点は理解されるであろう。
【００６３】
したがって、「ハードウェアに実装されたモジュール(hardware-implemented module)」（例えば「コンピュータに実装されたモジュール」）という用語は、一定の方法で動作するために及び／又は本明細書で説明する一定の動作を実行するために、エンティティが物理的に構築された、永続的に構成された（例えば組み込まれた）、又は一時的に又は一過性で構成された（例えばプログラムされた）ものの何れであれ、有形のエンティティを包含すると理解されるべきである。ハードウェアに実装されたモジュールが一時的に構成された（例えばプログラムされた）実施形態を考慮すれば、ハードウェアモジュールの各々をどの時点においても構成又はインスタンス化する必要はない。例えば、ハードウェアに実装されたモジュールが、ソフトウェアを用いて構成された汎用プロセッサを備える場合、汎用プロセッサは、異なる時点で、それぞれ異なるハードウェアに実装されたモジュールとして構成することができる。したがって、ソフトウェアは、例えば、ある時点において特定のハードウェアに実装されたモジュールを構築するように、及び異なる時点において異なるハードウェアに実装されたモジュールを構築するようにプロセッサを構成することができる。
【００６４】
ハードウェアに実装されたモジュールは、他のハードウェアに実装されたモジュールに情報を提供し、そこから情報を受信することができる。したがって、本明細書で述べるハードウェアに実装されたモジュールは、通信可能に結合されるとみなすことができる。複数のこのようなハードウェアに実装されたモジュールが同時に存在する場合、通信は、ハードウェアに実装されたモジュールを接続する信号伝送を通じて（例えば、適切な回路及びバス上で）実現することができる。複数のハードウェアに実装されたモジュールが異なる時点で構成又はインスタンス化される実施形態では、このようなハードウェアに実装されたモジュール間の通信は、例えば、複数のハードウェアに実装されたモジュールがアクセスを有するメモリ構造への情報の格納及び読み出しを通じて行うことができる。例えば、あるハードウェアに実装されたモジュールが動作を実行して、自己が通信可能に結合されたメモリデバイスにこの動作の出力を格納することができる。その後、更なるハードウェアに実装されたモジュールが、後の時点でメモリデバイスにアクセスして、格納された出力を読み出して処理することができる。ハードウェアに実装されたモジュールはまた、入力又は出力デバイスとの通信を開始することもでき、リソース（例えば情報の集合）に対して作用することができる。
【００６５】
本明細書で説明する例示的な方法の種々の動作は、関連する動作を実行するように（例えばソフトウェアによって）一時的に構成された又は永続的に構成された、１又は複数のプロセッサによって少なくとも部分的に実行することができる。一時的に又は永続的に構成されたかにかかわらず、このようなプロセッサは、１又は複数の動作又は機能を実行するように動作するプロセッサ実施のモジュールを構築することができる。本明細書で言うモジュールとは、一部の例示的な実施形態において、プロセッサ実施のモジュールを含むことができる。
【００６６】
同様に、本明細書で説明する方法は、少なくとも部分的にプロセッサ実施とすることができる。例えば、方法の動作の少なくとも一部は、１又は複数のプロセッサ又はプロセッサ実施のモジュールによって実行することができる。動作の一部の実行は、単一のマシン内に常駐するだけでなく、多くのマシンにわたって配備された１又は複数のプロセッサの間で分散させることができる。一部の例示的な実施形態において、１又は複数のプロセッサは、単一の位置（例えば、ホーム環境、オフィス環境内、又はサーバファームとして）に配置することができるが、別の実施形態では、多くの位置にわたってプロセッサを分散することができる。
【００６７】
１又は複数のプロセッサはまた、「クラウドコンピューティング」環境で又は「ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ（ＳａａＳ）」として、関連動作の実行をサポートするように動作することもできる。例えば、動作の少なくとも一部は、コンピュータ集合（プロセッサを含むマシンの例として）によって実行することができ、これらの動作には、ネットワーク（例えばインターネット）を介して、及び１又は複数の適切なインタフェース（例えばアプリケーションプログラムインタフェース（ＡＰＩ））を介してアクセス可能である。
【００６８】
６．結論
上記では、特定の実施形態のみについて詳細に説明したが、当業者であれば、本開示の新規の教示から著しく逸脱することなく、多くの修正が可能であることは容易に理解されるであろう。例えば、上記に開示する実施形態の態様を、他の組み合わせで結合して、付加的な実施形態を形成することができる。したがって、このような全ての修正が、本開示の範囲内に含まれるものとする。
【図１】
2019529979.tif 000034
【図２】
2019529979.tif 000035
【図３】
2019529979.tif 000036
【図４】
2019529979.tif 000037
【図５】
2019529979.tif 000038
【図６】
2019529979.tif 000039
【図７】
2019529979.tif 000040
【図８】
2019529979.tif 000041
【図９】
2019529979.tif 000042
【図１０】
2019529979.tif 000043
【図１１】
2019529979.tif 000044
【国際調査報告】
2019529979.tif 000045