(57)【要約】  オーディオ信号を複数の周波数帯域成分にろ波し、各帯域の量子化データコンポーネントを生成し、量子化されたデジタルコンポーネントのプリエコーイベントの可能性を識別し、逆パルス符号変調を用いてデジタルコンポーネントを復号化して近似信号を生成し、近似信号とサンプリングされたオーディオ信号を比較してエラー信号を生成し、エラー信号と量子化デジタルコンポーネントを処理するエンコーダが開示される。エンコーダは、遅延されたオーディオ信号とＱバンド値を処理してエラー信号を処理し、Ｑバンド値からプリエコーイベントの可能性を判断し、プリエコーイベントの可能性のためのスケール係数及びＭＤＣＴブロックサイズを決定し、ＭＤＣＴブロックサイズを用いてエラー信号を高解像度周波数成分に変換し、スケール係数と周波数成分を量子化し、ビットストリームの含有のために量子化ライン、ブロックサイズ、量子化スケール係数を符号化する。
2020512587.tif 000002
【特許請求の範囲】
【請求項１】
オーディオデータを処理するためのエンコーダであって、
前記エンコーダは、
コンピュータで使用可能な非一時的ストレージリソースと、
前記ストレージリソースに通信可能に結合された１つ以上のプロセッサとを備え、
前記プロセッサは、前記ストレージリソースに格納されたアプリケーションコード命令を実行することで、前記エンコーダに対して、
サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングし、
周波数帯域成分を適応パルス符号変調することにより、複数の帯域の各帯域に対して量子化されたデータコンポーネントを生成し、
生成された量子化されたデジタルコンポーネント内で、しきい値を超える少なくとも１つの帯域のプリエコーイベントの可能性を識別し、
フィルタリングされたオーディオサンプルの近似信号を生成し、
逆適応パルス符号変調を用いて、量子化されたデジタルコンポーネントの０個以上を復号化し、
近似信号とサンプリングされたオーディオ信号を比較することによりエラー信号を生成し、
エラー信号と量子化されたデジタルコンポーネントを処理することを、
実行させるように構成されるオーディオデータを処理するためのエンコーダ。
【請求項２】
前記エラー信号及び前記量子化されたデジタルコンポーネントを処理する前記アプリケーションコード命令は、前記エンコーダに対して、
遅延されたオーディオ信号及び前記量子化されたデジタルコンポーネントのＱバンド値を処理し、
前記Ｑバンド値からプリエコーイベントの可能性を判断し、
前記プリエコーイベントの可能性に対するスケール係数とＭＤＣＴブロックサイズを決定することを、
実行させるアプリケーションコードをさらに含む、
請求項１に記載のオーディオデータを処理するためのエンコーダ。
【請求項３】
前記アプリケーションコード命令は、前記エンコーダに対して、
前記Ｑバンド値の絶対値が所定のしきい値を超えるか否かを判断し、
前記Ｑバンド値の大きさと、前記Ｑバンド値を含む帯域に基づいて、ＭＤＣＴブロックサイズを決定し、
前記ＭＤＣＴブロックサイズと遅延されたオーディオ信号に基づいて、スケール係数を決定することを、
実行させるアプリケーションコードをさらに含む、
請求項２のオーディオデータを処理するためのエンコーダ。
【請求項４】
前記エラー信号及び前記量子化されたデジタルコンポーネントを処理する前記アプリケーションコード命令は、前記エンコーダに対して、
修正離散コサイン変換（ＭＤＣＴ）を使用して、ＭＤＣＴブロックサイズを用いて、エラー信号をより高い解像度の周波数成分に変換し、
スケール係数と周波数成分を量子化し、
ビットストリームに含めるために、量子化された周波数成分、ブロックサイズ、及び量子化されたスケール係数を符号化する
ことを実行させるアプリケーションコードをさらに含む、
請求項２のオーディオデータを処理するためのエンコーダ。
【請求項５】
前記生成された量子化デジタルコンポーネントからプリエコーイベントを識別するアプリケーションコード命令は、システムに対して、
量子化されたＰＱＭＦ出力からプリエコーイベントを検出する
ことを実行させるアプリケーションコード命令をさらに含む、
請求項１に記載のオーディオデータを処理するためのエンコーダ。
【請求項６】
量子化されたオーディオ信号をフィルタリングし、量子化されたデジタルコンポーネントを生成し、生成された量子化されたデジタルコンポーネントからプリエコーイベントを識別するアプリケーションコード命令は、前記エンコーダに対して、
少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を用いて、前記複数の周波数帯域成分を複数の量子化バンド値に変調し、
逆適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦを）を用いて、量子化された複数のバンド値を近似信号に復号化する
ことを実行させるアプリケーションコード命令をさらに含む、
請求項１に記載のオーディオデータを処理するためのエンコーダ。
【請求項７】
前記サンプリングされたオーディオ信号をフィルタリングし、前記量子化されたデジタルコンポーネントを生成し、前記生成された量子化デジタルコンポーネントからプリエコーイベントを識別するアプリケーションコード命令は、前記エンコーダに対して、
前記量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出する
ことを実行させるアプリケーションコード命令をさらに含む、
請求項１に記載のオーディオデータを処理するためのエンコーダ。
【請求項８】
オーディオデータを符号化するようにコンピュータに命令するためのプロセッサによって実行可能なコンピュータ命令のセットを含む非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、
サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングし、
周波数帯域成分を適応パルス符号変調することにより、複数の帯域の各帯域に対して量子化されたデータコンポーネントを生成し、
前記生成された量子化されたデジタルコンポーネント内で、しきい値を超える少なくとも１つの帯域のプリエコーイベントの可能性を識別し、
逆適応パルス符号変調を用いて、量子化されたデジタルコンポーネントの０個以上を復号化することにより、フィルタリングされたオーディオサンプルの近似信号を生成し、
近似信号とサンプリングされたオーディオ信号を比較することによりエラー信号を生成し、
前記エラー信号と量子化されたデジタルコンポーネントを処理するように構成される、
非一時的なコンピュータ可読記憶媒体。
【請求項９】
遅延されたオーディオ信号と量子化デジタルコンポーネントのＱバンド値を処理し、
前記Ｑバンド値からプリエコーイベントの可能性を判断し、
前記プリエコーイベントの可能性に対するスケール係数とＭＤＣＴブロックサイズを決定する
ように構成されたコンピュータ命令をさらに含む、
請求項８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０】
Ｑバンド値の絶対値が所定のしきい値を超えるか否かを判断し、
前記Ｑバンド値の大きさと、Ｑバンド値を含む帯域に基づいて、ＭＤＣＴブロックサイズを決定し、
前記ＭＤＣＴブロックサイズと遅延されたオーディオ信号に基づいて、スケール係数を決定する
ように構成されたコンピュータ命令をさらに含む、
請求項９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１１】
修正離散コサイン変換（ＭＤＣＴ）を使用して、ＭＤＣＴブロックサイズを用いて、エラー信号をより高い解像度の周波数成分に変換し、
スケール係数と周波数成分を量子化し、
ビットストリームに含めるために、量子化されたライン、ブロックサイズ、及び量子化されたスケール係数を符号化する
ように構成されたコンピュータ命令をさらに含む、
請求項９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１２】
前記生成された量子化デジタルコンポーネントからプリエコーイベントを識別するためのアプリケーションコード命令は、システムに対して、
量子化されたＰＱＭＦ出力からプリエコーイベントを検出する
ことを実行させるアプリケーションコード命令をさらに含む、
請求項８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１３】
前記サンプリングされたオーディオ信号をフィルタリングし、量子化されたデジタルコンポーネントを生成し、生成された量子化デジタルコンポーネントからプリエコーイベントを識別するためのアプリケーションコード命令は、システムに対して、
少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、周波数帯域成分を複数のオーディオサンプルをサンプリングし、
適応パルス符号変調技術を用いて、量子化されたバンド値を複数の周波数帯域の複数の成分を変調し、
逆適応パルス符号変調技術と少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦ）を用いて、複数の量子化バンド値を近似信号に復号化する
ことを実行させるアプリケーションコード命令をさらに含む、
請求項８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１４】
前記サンプリングされたオーディオ信号をフィルタリングし、量子化されたデジタルコンポーネントを生成し、生成された量子化デジタルコンポーネントからプリエコーイベントを識別するためのアプリケーションコード命令は、システムに対して、
量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出する
ことを実行させるアプリケーションコード命令をさらに含む、
請求項８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１５】
データを符号化するコンピュータ支援方法であって、
前記コンピュータ支援方法は、
サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングし、
周波数帯域成分を適応パルス符号変調することにより、複数の帯域の各帯域に対して量子化されたデータコンポーネントを生成し、
生成された量子化デジタルコンポーネント内のしきい値を超える少なくとも１つの帯域のプリエコーイベントの可能性を識別し、
フィルタリングされたオーディオサンプルの近似信号を生成し、
逆適応パルス符号変調を用いて量子化されたデジタルコンポーネントの０個以上を復号化し、
前記近似信号とサンプリングされたオーディオ信号を比較することによりエラー信号を生成し、
前記エラー信号と量子化されたデジタルコンポーネントを処理することを含む、
データを符号化するコンピュータ支援方法。
【請求項１６】
前記エラー信号を処理するステップは、
前記量子化されたデジタルコンポーネントの遅延されたオーディオ信号とＱバンド値を処理し、
前記Ｑバンド値からプリエコーイベントの可能性を判断し、
前記プリエコーイベントの可能性のためのスケール係数及びＭＤＣＴブロックサイズを決定することをさらに含む、
請求項１５に記載の方法。
【請求項１７】
前記Ｑバンド値の絶対値が所定のしきい値を超えたか否かを決定し、
前記Ｑバンド値の大きさと、Ｑバンド値を含む帯域に基づいて、ＭＤＣＴブロックサイズを決定し、
前記ＭＤＣＴブロックサイズと遅延されたオーディオ信号に基づいて、スケール係数を決定することをさらに含む、
請求項１６に記載の方法。
【請求項１８】
前記エラー信号及び量子化されたデジタルコンポーネントを処理するステップは、
修正離散コサイン変換（ＭＤＣＴ）を使用して、ＭＤＣＴブロックサイズを用いて、前記エラー信号をより高解像度の周波数成分に変換し、
前記スケール係数と周波数成分を量子化し、
ビットストリームに含めるために、量子化されたライン、ブロックサイズ、及び量子化されたスケール係数を符号化することをさらに含む、
請求項１６に記載の方法。
【請求項１９】
サンプリングされたオーディオ信号をフィルタリングし、量子化されたデジタルコンポーネントを生成し、生成された量子化されたデジタルコンポーネントからプリエコーイベントを識別するステップは、
少なくとも１つのＰＱＭＦ（Ｐｓｅｕｄｏ−ＱｕａｄｒａｔｕｒｅＭｉｒｒｏｒＦｉｌｔｅｒ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を用いて、量子化されたバンド値を複数の周波数帯域の複数の成分に変調し、
適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦ）を用いて、複数の量子化バンド値を近似信号に復号化することをさらに含む、
請求項１５に記載の方法。
【請求項２０】
プリエコーイベントの可能性を識別するステップは、
量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出することをさらに含む、
請求項１５に記載の方法。
【請求項２１】
ビットストリームを復号化するためのデコーダであって、
前記デコーダは、
コンピュータで使用可能な非一時的ストレージリソースと、
前記ストレージリソースに通信可能に結合されたプロセッサとを備え、
前記プロセッサは、デコーダに対して、前記ストレージリソースに格納されたアプリケーションコード命令を実行させることにより、前記デコーダに対して、
ビットストリーム同期コマンドデータとプログラムコマンドデータを含む符号化されたビットストリームを受信し、
前記符号化されたビットストリームを処理し、ビットストリーム内で同期コマンドデータを識別し、
同期コマンドデータで提供される情報を用いて、プログラムコマンドパケットと少なくとも１つのプログラム関連チャネルデータを復号化し、プログラムコマンドデータで提供される情報を用いてプログラム関連チャネルデータを復号化させる、
ビットストリームを復号化するためのデコーダ。
【請求項２２】
前記プロセッサは、前記ストレージリソースに格納されたアプリケーションコード命令を実行することで、前記デコーダに対して、
前記符号化された量子化帯域と符号化されたＭＤＣＴデータを受信し、
前記受信した符号化された量子化帯域と符号化されたＭＤＣＴデータを復号化する
ことを実行させる、
請求項２１に記載のデジタルオーディオを処理するためのデコーダ。
【請求項２３】
前記受信された符号化された量子化帯域と符号化されたＭＤＣＴデータは、ハフマン復号化技術と他のロスレス復号化技術の少なくとも１つを使用して復号化される、
請求項２２に記載のデジタルオーディオを処理するためのデコーダ。
【請求項２４】
前記プロセッサは、前記ストレージリソースに格納されたアプリケーションコード命令を実行することで、前記デコーダに対して、
ＭＤＣＴデータを復号化し、
前記復号化されたＭＤＣＴデータからライン値に修正離散コサイン逆変換して、前記符号化されたエラー信号を生成することを実行させ、
前記符号化されたエラー信号はエンコーダによって生成された、
請求項２２に記載のデジタルオーディオを処理するためのデコーダ。
【請求項２５】
前記復号化されたＭＤＣＴデータは、量子化されたＭＤＣＴライン値及び量子化されたスケール係数値を含む、
請求項２４に記載のデジタルオーディオを処理するためのデコーダ。
【請求項２６】
前記プロセッサは、前記ストレージリソースに格納されたアプリケーションコード命令を実行することで、前記デコーダに対して、
個々の量子化帯域を、逆適応パルス符号変調し、
各逆変調帯域を逆擬似直交ミラーフィルタリングし、
各逆ミラーフィルタリングされた帯域をともに加算して、近似信号を生成することを実行させる、
請求項２４に記載のデジタルオーディオを処理するためのデコーダ。
【請求項２７】
前記プロセッサはさらに、前記ストレージリソースに格納されたアプリケーションコード命令を実行することで、前記デコーダに対して、前記近似信号と前記エラー信号をともに加算させる、
請求項２６に記載のデジタルオーディオを処理するためのデコーダ。
【請求項２８】
オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを備えた非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、
ビットストリーム同期コマンドデータとプログラムコマンドデータを含む符号化されたビットストリームを受信し、
符号化されたビットストリームを処理し、ビットストリーム内で同期コマンドデータを識別し、
同期コマンドデータで提供される情報を用いて、プログラムコマンドパケットと少なくとも１つのプログラム関連チャネルデータを復号化し、プログラムコマンドデータで提供される情報を用いて、プログラム関連チャンネルデータを復号化することを含むように構成された、
非一時的なコンピュータ可読記憶媒体。
【請求項２９】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを備え、前記コンピュータ命令は、
符号化された量子化帯域と符号化されたＭＤＣＴデータを受信し、
前記受信した符号化された量子化帯域と符号化されたＭＤＣＴデータを復号化する
ことを含むように構成された、
請求項２８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３０】
前記受信して符号化された量子化帯域と符号化されたＭＤＣＴデータは、ハフマン符号化技術及び他の可逆復号化技術の少なくとも１つを用いて復号化される、
請求項２９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３１】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを備え、前記コンピュータ命令は、
ＭＤＣＴデータを復号化し、
復号化されたＭＤＣＴデータからライン値に修正離散コサイン逆変換して符号化されたエラー信号を生成することを含むように構成され、
前記符号化されたエラー信号はエンコーダによって生成された、
請求項２９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３２】
前記復号化されたＭＤＣＴデータは、量子化されたＭＤＣＴライン値及び量子化されたスケール係数値を含む、
請求項３１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３３】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含み、前記コンピュータ命令は、
個々の量子化帯域を逆適応パルス符号変調し、
各逆変調帯域を逆擬似直交ミラーフィルタリングし、
各逆ミラーフィルタリングされた帯域をともに加算して近似信号を生成することを含むように構成された、
請求項３１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３４】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含み、前記コンピュータ命令は、デコーダに対して、前記近似信号と前記エラー信号をともに加算するように構成された、
請求項３３に記載の非一時的なコンピュータ可読記憶媒体。
【請求項３５】
オーディオデータを復号化するコンピュータ支援方法であって、
前記コンピュータ支援方法は、
ビットストリーム同期コマンドデータとプログラムコマンドデータを含む符号化されたビットストリームを受信し、
符号化されたビットストリームを処理してビットストリーム内で同期コマンドデータを識別し、
同期コマンドデータで提供される情報を用いて、復号プログラムコマンドパケット及び少なくとも１つのプログラム関連チャネルデータを復号化し、
プログラムコマンドデータで提供される情報を用いて、プログラム関連チャネルデータを復号化することをさらに含む、
オーディオデータを復号化するコンピュータ支援方法。
【請求項３６】
前記コンピュータ支援方法は、
符号化された量子化帯域と符号化されたＭＤＣＴデータを受信し、
前記受信した符号化された量子化帯域と符号化されたＭＤＣＴデータを復号化することを含む、
請求項３５に記載の方法。
【請求項３７】
前記コンピュータ支援方法は、
前記符号化されたＭＤＣＴデータを復号化し、
前記復号化されたセクションからのライン値を修正離散コサイン逆変換して、前記符号化されたエラー信号を生成することをさらに含み、
前記符号化されたエラー信号はエンコーダによって生成された、
請求項３６に記載の方法。
【請求項３８】
前記復号化されたＭＤＣＴデータは、量子化されたＭＤＣＴライン値及び量子化されたスケール係数値を含む、
請求項３７に記載のデジタルオーディオを処理するためのデコーダ。
【請求項３９】
前記コンピュータ支援方法は、
個々の量子化帯域を逆適応パルス符号変調し、
各逆変調帯域を逆擬似直交ミラーフィルタリングし、
各逆ミラーフィルタリングされた帯域をともに加算して近似信号を生成することをさらに含む、
請求項３７に記載の方法。
【請求項４０】
前記近似信号と前記エラー信号をともに加算することをさらに含む、
請求項３９に記載の方法。
【請求項４１】
オーディオデータを処理するためのコーデックであって、
前記コーデックは、
コンピュータで使用可能な非一時的ストレージリソースと、
前記ストレージリソースに通信可能に結合されたプロセッサとを備え、
前記プロセッサは、前記ストレージリソースに格納されたアプリケーションコード命令を実行することにより、前記コーデックに対して、
プログラムソースから、単一チャンネルオーディオ及びマルチチャンネルオーディオ信号を含むオーディオ信号と、空間及び動きデータと環境特性を含むオーディオ補助信号と、プログラム構成信号と、プログラム関連データを含むデータ信号とを受信し、
非一時的符号化ビットストリームを生成することを含み、
前記ビットストリームは、同期コマンドデータと、ゼロ個以上のプログラムのコマンドデータと、オーディオチャンネルデータと、オーディオ補助データと、プログラムコンテンツデータと、ストリームデータの終了とを含み、
符号化されたビットストリームは、各データコンポーネントのためのパケットタイプを定義するための識別子を含み、
前記同期コマンドデータは、ブロック内の最初のサンプリング位置におけるビットストリーム及び情報を復号化するためのエントリポイントを定義するストリーム開始フラグを含み、前記符号化されたビットストリームのためのサンプリングレートをさらに提供する、
オーディオデータを処理するためのコーデック。
【請求項４２】
前記オーディオ補助データは、空間オーディオ情報と環境特性及び効果を含む、
請求項４１に記載のオーディオデータを処理するためのコーデック。
【請求項４３】
前記符号化されたビットストリームを生成するアプリケーションコード命令は、前記コーデックに対して、
サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングし、
周波数帯域成分を適応パルス符号変調することにより、複数の帯域の各帯域に対して量子化されたデータコンポーネントを生成し、
前記生成された量子化されたデジタルコンポーネント内で、しきい値を超える少なくとも１つの帯域のプリエコーイベントの可能性を識別し、
逆適応パルス符号変調を用いて、０個以上の量子化されたデジタルコンポーネントを復号化することにより、フィルタリングされたオーディオサンプルの近似信号を生成し、
前記近似信号と前記サンプリングされたオーディオ信号を比較することによりエラー信号を生成し、
前記エラー信号と前記量子化されたデジタルコンポーネントを処理することを実行させる、
アプリケーションコード命令をさらに含む、
請求項４１に記載のオーディオデータを処理するためのコーデック。
【請求項４４】
前記エラー信号及び量子化されたデジタルコンポーネントを処理するアプリケーションコード命令はさらに、コーデックに対して、
遅延されたオーディオ信号とＱバンド値を処理し、
前記Ｑバンド値からプリエコーイベントの可能性を判断し、
スケール係数とＭＤＣＴブロックサイズを決定することを
実行させるアプリケーションコード命令をさらに含む、
請求項４３に記載のオーディオデータを処理するためのコーデック。
【請求項４５】
前記アプリケーションコード命令は、エンコーダに対して、
Ｑバンド値の絶対値が所定のしきい値を超えるか否かを判断し、
前記Ｑバンド値の大きさと、Ｑバンド値を含む帯域に基づいて、ＭＤＣＴブロックサイズを決定し、
前記ＭＤＣＴブロックサイズと遅延されたオーディオ信号に基づいて、スケール係数を決定することを実行させる、
アプリケーションコード命令をさらに含む、
請求項４４に記載のオーディオデータを処理するためのコーデック。
【請求項４６】
前記エラー信号と量子化されたデジタルコンポーネントを処理するアプリケーションコード命令は、前記コーデックに対して、
修正離散コサイン変換（ＭＤＣＴ）を用いて、以前に決定されたブロックサイズのＭＤＣＴを用いて、前記エラー信号をより高解像度の周波数成分に変換し、
前記スケール係数と前記周波数成分を量子化し、
前記ビットストリームに含めるために、量子化された周波数成分、ブロックサイズ、及び量子化されたスケール係数を符号化することを
実行させるアプリケーションコードをさらに含む、
請求項４４に記載のオーディオデータを処理するためのコーデック。
【請求項４７】
サンプリングイングされたオーディオ信号をフィルタリングし、量子化されたデジタルコンポーネントを生成し、生成された量子化されたデジタルコンポーネントからプリエコーイベントを識別するアプリケーションコード命令は、前記コーデックに対して、
少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を使用して、複数の周波数帯域成分を複数の量子化バンド値に変調し、
逆適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦを）を用いて、量子化された複数のバンド値を近似信号に復号化することを
実行させるアプリケーションコード命令をさらに含む、
請求項４３に記載のオーディオデータを処理するためのコーデック。
【請求項４８】
オーディオデータを符号化及び復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含む非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、
プログラムソースから、単一チャンネルオーディオ及びマルチチャンネルオーディオ信号を含むオーディオ信号と、空間及び動きデータと環境特性を含むオーディオ補助信号と、プログラム構成信号と、プログラム関連データを含むデータ信号とを受信し、
非一時符号化されたビットストリームを生成することを含み、
前記ビットストリームは、同期コマンドデータと、０個以上のプログラムコマンドデータと、オーディオチャネルデータと、オーディオ補助データと、プログラムコンテンツデータと、ストリーム終了データとを含み、
前記符号化されたビットストリームは、各データコンポーネントのためのパケットタイプを定義するための識別子を含み、
前記同期コマンドデータは、ブロック内の最初のサンプル位置でビットストリームと情報を復号化するためのエントリポイントを定義するストリーム開始フラグを含み、符号化するためのサンプルレートを提供する、
非一時的なコンピュータ可読記憶媒体。
【請求項４９】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを符号化及び復号化することをコンピュータに指示するプロセッサによって実行可能なコンピュータ命令のセットのセットを含み、
前記コンピュータ命令は、
ビットストリーム同期コマンドデータとプログラムコマンドデータを含む符号化されたビットストリームを受信し、
符号化されたビットストリームを処理し、ビットストリーム内で同期コマンドデータを識別し、
同期コマンドデータで提供される情報を用いて、プログラムコマンドパケットと少なくとも１つのプログラム関連チャネルデータを復号化し、プログラムコマンドデータで提供される情報を用いて、プログラム関連チャンネルデータを復号化することを
実行させるように構成された、
請求項４８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５０】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを符号化及び復号化することをコンピュータに指示するプロセッサによって実行可能なコンピュータ命令のセットを含み、
前記コンピュータ命令は、
符号化された量子化帯域と符号化されたＭＤＣＴデータを受信し、
前記受信した符号化された量子化帯域と符号化されたＭＤＣＴデータを復号化することを含むように構成された、
請求項４９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５１】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを符号化及び復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含み、
前記コンピュータ命令は、
ＭＤＣＴデータを復号化し、
前記復号化されたＭＤＣＴデータからライン値に修正離散コサイン逆変換して符号化されたエラー信号を生成し、
前記符号化されたエラー信号はエンコーダによって生成された、
請求項５０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５２】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含み、
前記コンピュータ命令は、
個々の量子化帯域を逆適応パルス符号変調し、
各逆変調帯域を逆擬似直交ミラーフィルタリングし、
各逆ミラーフィルタリングされた帯域をともに加算して近似信号を生成することを含むように構成された、
請求項５１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５３】
前記非一時的なコンピュータ可読記憶媒体は、オーディオデータを復号化することをコンピュータに指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含み、
前記コンピュータ命令は、デコーダに対して、近似信号とエラー信号をともに加算するように構成された、
請求項５２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５４】
オーディオデータを符号化及び復号化するコンピュータ支援方法であって、
前記コンピュータ支援方法は、
プログラムソースから、信号チャネルオーディオ及びマルチチャンネルオーディオ信号を含むオーディオ信号と、プログラム構成信号と、空間及び動きデータと環境特性を含むオーディオ補助信号と、プログラム関連データを含むデータ信号とを受信し、
非一時的な符号化されたビットストリームを生成することを含み、
前記ビットストリームは、同期コマンドデータと、０個以上のプログラムコマンドデータと、オーディオチャンネルデータと、オーディオ補助データと、プログラムコンテンツデータと、ストリームデータの終了とを含み、
前記符号化されたビットストリームは、各データコンポーネントのためのパケットタイプを定義するための識別子を含み、
前記同期コマンドデータは、ブロック内の最初のサンプル位置でのビットストリーム及び情報を復号化するためのエントリポイントを定義するストリーム開始フラグビットストリームを含み、符号化するためのサンプルレートをさらに提供する、
オーディオデータを符号化及び復号化するコンピュータ支援方法。
【請求項５５】
前記生成するステップは、
サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングし、
前記周波数帯域成分を適応パルス符号変調することにより、複数の帯域の各帯域に対して量子化されたデータコンポーネントを生成し、
前記生成された量子化デジタルコンポーネント内でしきい値を超える少なくとも１つの帯域のプリエコーイベントの可能性を識別し、
逆適応パルス符号変調を用いて、０個以上の量子化されたデジタルコンポーネントを復号化することにより、前記フィルタリングされたオーディオサンプルの近似信号を生成し、
前記近似信号と前記サンプリングされたオーディオ信号を比較することにより、エラー信号を生成し、
前記エラー信号と前記量子化されたデジタルコンポーネントを処理することをさらに含む、
請求項５４に記載のコンピュータ支援方法。
【請求項５６】
前記エラー信号及び前記量子化されたデジタルコンポーネントを処理するステップは、
遅延されたオーディオ信号とＱバンド値を処理し、
前記Ｑバンド値からプリエコーイベントの可能性を判断し、
スケール係数とＭＤＣＴブロックサイズを決定することをさらに含む、
請求項５５に記載のコンピュータ支援方法。
【請求項５７】
前記コンピュータ支援方法は、
Ｑバンド値の絶対値が所定のしきい値を超えたか否かを決定し、
前記Ｑバンド値の大きさと、Ｑバンド値を含む帯域に基づいて、ＭＤＣＴブロックサイズを決定し、
前記ＭＤＣＴブロックサイズと前記遅延されたオーディオ信号に基づいて、スケール係数を決定することをさらに含む、
請求項５６に記載のコンピュータ支援方法。
【請求項５８】
前記エラー信号を処理するステップは、
変形離散コサイン変換（ＭＤＣＴ）を使用して、ＭＤＣＴブロックサイズを用いて、エラー信号をより高い解像度の周波数成分に変換し、
前記スケール係数と周波数成分を量子化し、
ビットストリームに含めるために、量子化された周波数成分、ブロックサイズ、及び量子化されたスケール係数を符号化することをさらに含む、
請求項５６に記載のコンピュータ支援方法。
【請求項５９】
前記サンプリングされたオーディオ信号をフィルタリングし、量子化されたデータコンポーネントを生成し、生成された量子化されたデジタルコンポーネントからプリエコーイベントを識別するステップは、
少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を用いて、複数の周波数帯域成分を複数の量子化バンド値に変調し、
逆適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦを）を用いて、量子化された複数のバンド値を近似信号に復号化することをさらに含む、
請求項５５に記載のコンピュータ支援方法。
【請求項６０】
前記コンピュータ支援方法は、
ビットストリーム同期コマンドデータとプログラムコマンドデータを含む符号化されたビットストリームを受信し、
符号化されたビットストリームを処理し、ビットストリーム内でビットストリーム同期コマンドデータを識別し、
前記同期コマンドデータに提供されたプログラムコマンドパケット及び情報を用いて少なくとも１つの番組に関連するチャネルデータを復号化し、プログラムコマンドデータで提供される情報を用いてプログラム関連チャネルデータを復号化することをさらに含む、
請求項５４に記載のコンピュータ支援方法。
【請求項６１】
前記コンピュータ支援方法は、
符号化された量子化帯域と符号化されたＭＤＣＴデータを受信し、
前記受信した符号化された量子化帯域と符号化されたＭＤＣＴデータを復号化し、
前記ＭＤＣＴデータを復号化し
前記復号化されたＭＤＣＴデータからライン値を修正離散コサイン逆変換することにより、符号化されたエラー信号を生成して、符号化されたエラー信号を生成し、
個々の量子化帯域を逆適応パルス符号変調し、
各逆変調帯域を逆擬似直交ミラーフィルタリングし、
各逆ミラーフィルタリングされた帯域を加算して近似信号を生成し、
前記近似信号と前記エラー信号をともに加算することをさらに含み、
前記符号化されたエラー信号はエンコーダによって生成された、
請求項６０に記載のコンピュータ支援方法。
【請求項６２】
デジタルエンコーダで使用するためにオーディオサンプルを処理するためのサブバンドコーダであって、
前記サブバンドコーダは、
コンピュータで使用可能な非一時的ストレージリソースと、
前記ストレージリソースに通信可能に結合された１つ以上のプロセッサとを備え、
前記プロセッサは、前記ストレージリソースに格納されたアプリケーションコード命令を実行して、前記コーダに対して、
少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を用いて、複数の周波数帯域成分を複数の量子化バンド値に変調し、
逆適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦ）を用いて、量子化された複数のバンド値の０個以上を近似信号に復号化することを実行させるように構成され、
前記サブバンドコーダは、複数の量子化バンド値と、近似信号と、ロスレスエンコーダによって符号化された複数の符号化された量子化バンド値とを含む出力を生成する、
サブバンドコーダ。
【請求項６３】
前記プロセッサはさらに、前記ストレージリソースに格納されたアプリケーションコード命令を実行して、前記コーダに対して、
前記量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出することを実行させる、
請求項６２に記載のサブバンドコーダ。
【請求項６４】
前記複数の量子化バンド値は、プリエコーイベントを含む、
請求項６２に記載のサブバンドコーダ。
【請求項６５】
前記周波数帯域成分は、適応パルス符号変調（ＡＰＣＭ）技術と、適応差分パルス符号変調（ＡＤＰＣＭ）技術とのいずれかを用いて変調される、
請求項６２に記載のサブバンドコーダ。
【請求項６６】
前記複数の量子化バンド値の少なくとも１つは、絶対値がしきい値を超える１つの値を有し、逆ＡＰＣＭ技術と逆ＡＤＰＣＭ技術のいずれかを用いて近似信号に復号化される、
請求項６２に記載のサブバンドコーダ。
【請求項６７】
前記オーディオサンプルは１６個の周波数帯域にフィルタリングされる、
請求項６２に記載のサブバンドコーダ。
【請求項６８】
最高周波数帯域は変調されず、
聴覚範囲外ではない１６個の周波数帯域の他の周波数帯域のみが変調される、
請求項６７に記載のサブバンドコーダ。
【請求項６９】
前記符号化された量子化された複数のバンド値は、ハフマン符号化技術を用いて符号化され、
前記複数からの符号化された量子化バンド値は、ハフマン符号化されたコード（ワード）として符号化される、
請求項６２に記載のサブバンドコーダ。
【請求項７０】
サブバンドコーディングデータのコンピュータ支援方法であって、
前記コンピュータ支援方法は、
少なくとも１つの擬似直交ミラーフィルタリング（ＰＱＭＦ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を用いて、複数の周波数帯域成分を複数の量子化バンド値に変調し、
逆適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦ）を用いて、０個以上の複数の量子化バンド値を近似信号に復号化し、
複数の量子化バンド値と、近似信号と、複数の符号化された量子化バンド値とを含む出力を提供することを含む、
サブバンドコーディングデータのコンピュータ支援方法。
【請求項７１】
前記方法は、
量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出することをさらに含む、
請求項７０に記載の方法。
【請求項７２】
前記複数の量子化バンド値は、プリエコーイベントを含む、
請求項７０に記載の方法。
【請求項７３】
前記周波数帯域成分は、適応パルス符号変調（ＡＰＣＭ）技術と、適応差分パルス符号変調（ＡＤＰＣＭ）技術のいずれかを用いて変調される、
請求項７０に記載の方法。
【請求項７４】
量子化された複数のバンド値は、逆ＡＰＣＭ技術又は逆ＡＤＰＣＭ技術のいずれかを用いて、近似信号に復号化される、
請求項７０に記載の方法。
【請求項７５】
前記オーディオサンプルは１６個の周波数帯域にフィルタリングされる、
請求項７０に記載の方法。
【請求項７６】
最高周波数帯域は変調されず、
聴覚範囲外ではない１６個の周波数帯域の他の周波数帯域のみが変調される、
請求項７０に記載の方法。
【請求項７７】
コンピュータにサブバンドコードデータを指示するためのプロセッサによって実行可能なコンピュータ命令のセットを含む非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、
少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、オーディオサンプルを複数の周波数帯域成分にフィルタリングし、
適応パルス符号変調技術を用いて、複数の周波数帯域成分を複数の量子化バンド値に変調し、
逆適応パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦ）を用いて、量子化された複数のバンド値の０個以上を近似信号に復号化することを含むように構成され、
サブバンドコーダは、複数の量子化バンド値と、近似信号と、ロスレスエンコーダによって符号化された複数の符号化された量子化バンド値とを含む出力を生成する、
非一時的なコンピュータ可読記憶媒体。
【請求項７８】
前記非一時的なコンピュータ可読記憶媒体は、
量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出するように構成されたコンピュータ命令をさらに含む、
請求項７７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項７９】
前記複数の量子化バンド値はプリエコーイベントを含む、
請求項７７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項８０】
前記周波数帯域成分は、適応パルス符号変調（ＡＰＣＭ）技術と、適応差分パルス符号変調（ＡＤＰＣＭ）技術のいずれかを用いて変調される、
請求項７７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項８１】
前記量子化された複数のバンド値は、逆ＡＰＣＭ技術又は逆ＡＤＰＣＭ技術のいずれかを用いて、近似信号に復号化される、
請求項７７に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コーデック及びデジタルデータフォーマットに関し、特に、デジタルオーディオの符号化及び復号化のハイブリッド形式に関する。
【背景技術】
【０００２】
ＩＰベースのマルチメディアの使用が、従来のブロードキャストサービスに代わるものとしてより顕著になるにつれて、より動的で、堅牢で、品質の高いアプリケーションが必要である。一例として、送信又は格納のためにデジタルオーディオを符号化すると、復号化及びレンダリング時に音質に影響する可能性のある不要なアーチファクトが発生する可能性がある。アーチファクトの一例はプリエコーと呼ばれる。プリエコーは、オーディオのエコーが発生するオーディオコーデックアーチファクトであり、実際の音の前に復号化された信号で聞くことができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ISO/IEC 11172-3:1993, Information technology -- Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbit/s -- Part3: Audio, August, 1993
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プリエコーは、例えばＭＤＣＴを用いて時間領域信号を周波数領域に変換した後、時間領域に戻すように逆変換する逆ＭＤＣＴを使用するなど、時間領域から周波数領域に変換してから時間領域に戻すときに発生する可能性がある、量子化及びその他の不正確さによって発生する可能性がある。この効果は、変換のブロックサイズ全体にエラーが広がるためであり、オーディオコンテンツのエコーの発生と低下の両方をもたらす。この効果は、例えばカスタネットなどの打楽器など、特に鋭いインパルスとトランジェント信号のあるオーディオで顕著である。既存のコーデック技術では、これらのアーチファクトを目的のビットレートで効果的に制御又は除去できない。さらに、メディア配信は、配信専用で、制御され、高価である従来のネットワークブロードキャストサービスから、専用の制御及び高価ではなく、動的で安価であり、固定ビットレートを必要とされていない分散型のＩＰネットワークにすでに移行し始めているが、分散型ネットワークの固有の遅延とサービス品質の問題により、ストリーミングサービスは完全には進化していない。しかし、それらが進化するにつれて、コンテンツの配布及び管理方法も進化する必要がある。
【課題を解決するための手段】
【０００５】
本願発明の技法は、サンプリングされたオーディオ信号を符号化するための以下のコンピュータ実装システム及び方法を提供する。当該コンピュータ実装システム及び方法は、
サンプリングされたオーディオ信号を符号化しかつ復号化し、
符号化されたオーディオサンプルの潜在的なプリエコーイベントを識別し、
サンプリングされたオーディオ信号及び復号化されてサンプリングされたオーディオ信号からのエラー信号を生成し、
潜在的なプリエコーイベント及びエラー信号から生成されたデータを、符号化サンプリングされたオーディオ信号ととともに、ビットストリームに符号化し、
これにより、エラー信号を再現し、下流で復号化する際に潜在的プリエコーイベントを除去することができる。
【０００６】
一態様では、オーディオデータを処理するためのエンコーダが提供される。前記エンコーダは、コンピュータ使用可能な非一時的ストレージリソースと、前記ストレージリソースに通信可能に接続された１つ又は複数のプロセッサとを備え、前記プロセッサはストレージリソースに格納されたアプリケーションコード命令を実行するように構成される。前記エンコーダは、サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングし、周波数帯域成分をパルス符号変調することにより、複数の帯域（バンド）のうちの各帯域の量子化データコンポーネントを生成できる。前記エンコーダは、生成された量子化されたデジタルコンポーネント内のプリエコーイベントの可能性を識別しマーキングでき、さらに逆パルス符号変調を用いて量子化されたデジタルコンポーネントを復号化することにより、フィルタリングされたオーディオサンプルの近似信号を生成する。前記エンコーダは、近似信号をサンプリングされたオーディオ信号と比較することによりエラー信号を生成し、エラー信号と量子化されたデジタルコンポーネントを処理する。
【０００７】
別の態様では、前記エンコーダは、遅延されたオーディオ信号と量子化デジタルコンポーネントのＱバンド値を処理することにより、エラー信号及び量子化されたデジタルコンポーネントを処理し、Ｑバンド値からプリエコーイベントの可能性を判断し、遅延されたオーディオ信号とＱバンド値を用いてエラー信号のスケール係数とＭＤＣＴブロックサイズを決定する。Ｑバンド値の大きさと、Ｑバンド値を含むバンドに基づいて、ＭＤＣＴブロックサイズが決定される。ＭＤＣＴブロックサイズと遅延されたオーディオ信号に基づいて、スケール係数が決定される。エラー信号は、ＭＤＣＴブロックサイズを用いて、より高い解像度の周波数成分に変換できる。スケール係数と周波数成分は量子化され、量子化されたライン、ブロックサイズ、及び量子化されたスケール係数は、ビットストリームに含めるために符号化される。
【０００８】
別の態様では、前記エンコーダは、少なくとも１つの擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、周波数帯域成分を複数のオーディオサンプルをフィルタリングすることにより、オーディオ信号をサンプリングフィルタリングすることができる。前記エンコーダは、パルス符号変調技術を用いて量子化されたバンド値を複数の周波数帯域成分に変調することにより、量子化されたデジタルコンポーネントを生成できる。前記エンコーダは、逆パルス符号変調技術及び少なくとも１つの逆擬似直交ミラーフィルタ（ＩＰＱＭＦ）を用いて、複数の量子化バンド値を近似信号に復号化できる。前記エンコーダは、量子化された複数のバンド値においてオーディオベアリングデータに隣接するプリエコーイベントを検出できる。
【０００９】
さらに別の態様では、前記エンコーダは、擬似直交ミラーフィルタ（ＰＱＭＦ）を用いて、サンプリングされたオーディオ信号を複数の周波数帯域成分にフィルタリングすることができる。前記エンコーダは、適応パルス符号変調（ＡＰＣＭ）を用いて、量子化されたデジタルコンポーネントを生成することもできる。前記エンコーダは、適応差動パルスコード変調（ＡＤＰＣＭ）を用いて、量子化されたデジタルコンポーネントを生成することもできる。
【００１０】
別の態様では、前記エンコーダは、オーディオデータとＰＱＭＦ出力しきい値に関連するタイミング情報を用いて、生成された量子化されたデジタルコンポーネントからプリエコーイベントを識別することができる。前記エンコーダはまた、変換及び量子化されたエラー信号と量子化されたスケール係数を符号化する。
【図面の簡単な説明】
【００１１】
【図１Ａ】ある例示的な実施形態によるエンコーダを示すブロック図である。
【図１Ｂ】ある例示的な実施形態によるデコーダを示すブロック図である。
【図２】ある例示的な実施形態による、オーディオエンコーダの要素を示すブロック図である。
【図３】ある例示的な実施形態による、サブバンドコーダを示すブロック図である。
【図４】ある例示的な実施形態による、ＡＰＣＭ量子化器を示すブロック図である。
【図５】ある例示的な実施形態による、ステップサイズコントローラを示すブロック図である。
【図６】ある例示的な実施形態による、コーダコントローラを示すブロック図である。
【図７】ある例示的な実施形態による、ＭＤＣＴコーダを示すブロック図である。
【図８】ある例示的な実施形態による、それぞれが８のブロック長を有する２つのＭＤＣＴを示すデータブロックである。
【図９】ある例示的な実施形態による、２及び８のブロック長を有する２つのＭＤＣＴを示すデータブロックである。
【図１０】ある例示的な実施形態による、２、８、及び２のブロック長を有する３つのＭＤＣＴを示すデータブロックである。
【図１１】ある例示的な実施形態による、ビットストリームの符号化されたプロパティ値を示すデータバイトである。
【図１２】ある例示的な実施形態による、可変数のバイトに符号なし整数値を格納する例である。
【図１３】ある例示的な実施形態による、符号付き整数値を可変数のバイトに格納する例である。
【図１４】ある例示的な実施形態による、ビットストリームパケット構成を示すパケット図である。
【図１５】ある例示的な実施形態による、オーディオパケットの復号可能なサンプルデータが固定された時間間隔で整列しない場合がある様子を示す図である。
【図１６】ある例示的な実施形態による、デコーダアルゴリズム論理フローを示すアルゴリズムである。
【図１７】ある例示的な実施形態による、符号化されたオーディオサンプルデータからのオーディオサンプルの再構築を示すブロック図である。
【図１８】ある例示的な実施形態による、符号化されたサブバンドデータを復号化するためのサブバンドデコーダを示すブロック図である。
【図１９】ある例示的な実施形態による、サブバンドデコーダ逆ＡＰＣＭを示すブロック図である。
【図２０】ある例示的な実施形態による、ＭＤＣＴデコーダを示すブロック図である。
【図２１】ある例示的な実施形態による、計算機及びシステムアプリケーションを示すブロック図である。
【発明を実施するための形態】
【００１２】
本明細書で提示される例示的な実施形態は、入力信号をビットストリームパケットデータに符号化し、知覚的にロスレス又は近似知覚的ロスレスでビットストリームのパケットデータを復号化し、プログラムデータをレンダリングでより効果的にすることができるパケット化されたビットストリームの構造とコンテンツを提供する、システム、方法、及びコンピュータプログラム製品を対象とする。
【００１３】
ここで、異なる図において同様の数字が同様の（しかし必ずしも同一ではない）要素を表す図面を参照して、例示的な実施形態を詳細に説明する。
【００１４】
図１Ａ及び図１Ｂは、一般的に１０として示される、例示的な実施形態によるオーディオ信号及び補助データを符号化及び復号化するためのシステムを示す。システム１０は、図１Ａ及び図１Ｂにそれぞれ示されるエンコーダ１２及びデコーダ１８を含む。エンコーダ１２は、異なるタイプの複数の信号を符号化し、符号化された情報を単一の符号化されたビットストリーム１６に結合することができる。種々の種類の信号は、プログラム構成データ１４Ａ、オーディオ信号１４Ｂ、データ信号１４Ｃ、空間及び動きデータ１４Ｄ、及び環境特性データ１４Ｅを含む。信号の各タイプはエンコーダに関連付けられる。図１Ａに示すように、プログラムエンコーダ１２Ａは、プログラム構成データ１４Ａを符号化することができ、オーディオエンコーダ１２Ｂはオーディオ信号を符号化でき、データ信号エンコーダ１２Ｃはデータ信号１４Ｃを符号化でき、空間エンコーダ１２Ｄは空間及び動きデータ１４Ｄを符号化でき、環境エンコーダ１２Ｅは、環境特性データ１４Ｅを符号化することができる。ビットストリームによって生成されたデータエンコーダ１２Ａ−１２Ｅはマルチプレクサ（ＭＵＸ）２２を用いて多重化され、単一の符号化ビットストリーム１６を形成する。システム１０は、図１Ｂに示されるように、デコーダ１８も含む。デコーダ１８は、単一の符号化されたビットストリーム１６を復号化し、復号化されたプログラム構成データ２０Ａ、復号化されたオーディオ信号２０Ｂ、復号化されたデータ信号２０Ｃ、復号化された空間及び動きデータ２０Ｄ、及び復号化された環境特性データ２０Ｅを生成する。デマルチプレクサ（デマルチプレクサ）２４は単一の符号化ビットストリームを多重分離し、多重分離されたビットストリームを抽出して対応するデコーダ１８Ａ〜１８Ｅに入力する。
【００１５】
プログラム構成データ１４Ａは、特定のプログラムで実際に復号化するチャネルを定義するために使用されるビットストリームのサイドデータを含む。例えば、同じビットストリーム内の異なる言語にローカライズされたオーディオの複数のチャンネルが存在する可能性があり、プログラム構成データ１４Ａは、スペイン語プログラムとイタリア語プログラムの復号化など、復号化するためにどのチャネルを識別することができる。復号化する目的のプログラムと一致しないチャネルデータはスキップできる。単一のビットストリームには、適切な数のチャネル構成を含めることができる。任意のプログラムは、特定のタイプのオーディオ信号又はデータ信号パケット用に復号化するチャネルを選択できる。
【００１６】
オーディオ信号１４Ｂは、必要に応じてサブカテゴリに分割されてもよい。動作の一例として、オーディオ信号１４Ｂは、５つのカテゴリ、すなわち、単一チャンネル、低周波チャンネル、ダイアログチャンネル、チャンネルペア、動きチャンネルに分割できる。単一のチャネルを用いて、単一のオーディオチャネルを表すことができる。低周波チャンネルは、単一のオーディオチャンネルを表すために使用できるが、典型的には、低周波オーディオコンテンツ用である。対話チャンネルは、例えば俳優の公演などの、オーディオ対話の単一のチャンネルを表すために使用できる。チャネルペアを用いて、通常はステレオペアであるオーディオの２つのチャネル、例えば、左チャネルと右チャネルを表すことができる。動きチャネルを用いて、単一のオーディオチャネルを表すことができるが、アニメーション化された空間情報を含めることができ、これにより、オーディオコンテンツをアニメーション化して、時間とともに移動できるようにできる。単一のビットストリームには、上記のカテゴリのいずれかの０個以上のオーディオチャネルの組み合わせを含めることができる。上記の例のようなオーディオデータのカテゴリ化（分類）は、オーディオ及び関連する空間情報を符号化、最適化、又はその他の方法で使用する方法の意図を表現するために使用できる。例えば、チャンネルペアの２つのオーディオチャンネルを一緒に符号化して、望ましくないアーチファクトを減らすことができ、そうでなければ、例えば左右のチャンネルなどの２つの類似のオーディオチャネルの符号化の間に発生する可能性がある。別の例では、チャネルペアの空間表現は、１つのオーディオチャネルを他のオーディオチャネルから空間的に固定オフセットすることで最適化でき、従って、空間情報の表現のデータサイズを潜在的に縮小できる。さらに別の例では、空間表現は、例えばほとんどのカテゴリでは静的な位置データのみを使用し、動きチャネルではアニメーション動きを使用するなど、異なるカテゴリ間で異なることができる。オーディオ信号１４Ｂは、例えばＡ／Ｄコンバータ（ＡＤＣ）の出力から、一定のサンプリングレートで経時的にサンプリングできる。エンコーダ１２Ｂでサポートされているサンプリングレートは、必要条件及び必要な品質に応じて、一例として、４４．１ｋＨｚ、４８ｋＨｚ、８８．２ｋＨｚ、及び９６ｋＨｚを含む。
【００１７】
データ信号１４Ｃは、例えば字幕、アルバムアート、スタジオ情報、俳優の伝記、ビデオなど、データビットストリーム種々の目的のためのサイドデータを含む。コーデック１０は、古いタイプのデコーダ１８との下位互換性を維持しながら、新しいタイプのデータをビットストリームに追加できることをサポートする。動作の実施形態では、データチャネルを用いて、あらゆる種類のデータを表すことができる。０個以上のデータチャネルをビットストリームに含めることができる。オーディオチャネルと同様に、データチャネルはチャネルごとに選択的に復号化できる。例えば、さまざまな言語の字幕をさまざまなデータチャネルに分離でき、これにより、プログラムが目的のデータチャネルを選択して、目的のローカライズ用に復号化できる。
【００１８】
空間環境に関する環境特性データ１４Ｅをビットストリームに含めることができる。この情報は、例えば小会場又は小さなトンネル対コンサートホールなど、環境の特性をシミュレーションするために使用される。環境情報は時間とともに変化する可能性があり、例えば、映画の中で、環境の変化を反映させることができ、そしてデコーダにおいて新しい環境エンジンを注文することができる。
【００１９】
図２は、ある例示的な実施形態によるオーディオエンコーダ１２Ｂのブロック図を示す。オーディオエンコーダ１２Ｂは一般に、ローパスの有限インパルス応答（ＦＩＲ）フィルタ５２と、サブバンドコーダ５４と、Ｚ−ｎ遅延コンポーネント５６と、コーダコントローラ５８と、加算器６０と、ＭＤＣＴコーダ６２と、オーディオパケットアセンブラ６４とを備える。オーディオエンコーダ１２Ｂは、サンプリングされたオーディオ信号を処理し、サンプルの収集のために、例えばビットストリームのストリーミングメディアプレーヤーで使用するために、符号化されたビットストリームを生成する。サブバンドコーダ５４は、オーディオサンプルを複数の周波数帯域成分に処理し、適応パルス符号変調（ＡＰＣＭ）又は適応差分パルス符号変調（ＡＤＰＣＭ）を用いて、これらの帯域成分を量子化されたバンド値に量子化する。例示的な実施形態では、サブバンドコーダ５４は３つの出力を生成し、すなわち、量子化された複数のバンド値（複数のＱバンド値）、符号化された量子化バンド値（符号化されたＱバンド値）、及び近似信号を生成する。Ｑバンド値は、プリエコーイベントを検出するためにコーダコントローラ５８に入力される。符号化されたＱバンド値は、ビットストリームにさらに追加される。最初に、逆ＡＰＣＭ又は逆ＡＤＰＣＭを用いて複数のＱバンド値を複数の周波数帯域成分に逆変換し、複数の周波数帯域成分をオーディオサンプルに変換することにより、近似信号が作成される。元のオーディオ入力と近似信号の差であるエラー信号が生成されて、ＭＤＣＴコーダ６２に提供される。コーダコントローラ５８は、エラー信号を符号化するために使用されるスケール係数及び修正離散コサイン変換（ＭＤＣＴ）ブロックサイズを決定する。ＭＤＣＴコーダ６２は、決定されたＭＤＣＴブロックサイズを用いて、エラー信号を周波数成分ライン値（ＭＤＣＴライン値）に変換する。次に、ＭＤＣＴブロックサイズ、スケール係数、及びＭＤＣＴライン値が量子化され、ビットストリームに含めるために符号化される。
【００２０】
一実施形態では、ローパスＦＩＲ５２は、オーディオ信号１４Ｂを受信して、例えば人間の能力の困難又はその能力を超えているナイキスト周波数に近いコンテンツとコンテンツなど、望ましくない高周波成分を除去する。例えば、８８．２ｋＨｚと９６ｋＨｚのオーディオサンプルレートのナイキストレートはそれぞれ４４．１ｋＨｚと４８ｋＨｚであり、これらの周波数は人間の耳の−２０ｋＨｚ上限感度をはるかに超えている。遅延コンポーネント５６は、サンプリングされた信号の遅延バージョンを加算器６０及びコーダコントローラ５８に供給する。サブバンドコーダ５４から生成された近似信号は、遅延された元の信号から差し引かれて、エラー信号を生成することができる。エラー信号は、元のオーディオ信号と近似信号との差である。
【００２１】
コーダコントローラ５８は、フィルタリングされ遅延されたオーディオ信号とＱバンド値を受信して処理し、ＭＤＣＴブロックサイズとスケール係数を生成し、これらは、プリエコー効果が最小化又は除去されるように、エラー信号を符号化するためにＭＤＣＴコーダ６２によって使用されることができる。これに応答して、ＭＤＣＴコーダ６２は、ＭＤＣＴブロックサイズ値及びスケール係数を用いてエラー信号を符号化する。符号化されたＭＤＣＴデータは、その後、関連するオーディオチャネルパケットへの出力として単一の符号化されたビットストリーム１６に後で含めるために、オーディオパケットアセンブラ６４に提供され得る。サブバンドコーダ５４、コーダコントローラ５８、及びＭＤＣＴコーダ６２のさらなる詳細は以下に説明される。
【００２２】
図３は、ある例示的な実施形態によるサブバンドコーダ５４のブロック図を示す。一実施形態では、サブバンドコーダ５４は、サブバンドコーダ７０及びサブバンドデコーダ７２を含む。サブバンドコーダ７０は例えばより高いサンプルレートのためにデシメータ７４を使用することができ、擬似直交ミラーフィルタ（ＰＱＭＦ）バンク７６、サブバンドの量子化器７８、及び可逆データエンコーダ８０を、フィルタリングされたオーディオ信号１４Ｂを量子化及び符号化するために使用することができる。サブバンド量子化器７８は、ＡＰＣＭ又はＡＤＰＣＭシステムを使用できる。本質的に、サブバンドコーダ５４は、サンプリングされたオーディオデータの帯域をフィルタリング及びパルスコード変調し、ＡＰＣＭ又はＡＤＰＣＭ量子化出力を生成するために、ＰＱＭＦバンク７６及びサブバンド量子化器７８を含む。量子化された出力は、量子化の一部として生成されるもの、又は、信号のエイリアシングがダウンストリームオーディオ処理に導入される結果として。アーチファクトを含む。量子化されたサブバンドによって生成された量子化されたバンド値は、常にプリエコー情報を決定するために使用され、これについては後述する。しかしながら、サブバンドデコーダ７２は、ビットストリームのフラグを立てることにより、必要に応じて、オプショナルでＡＰＣＭ又はＡＤＰＣＭの量子化出力のいずれも使用せず、一部又はすべてを使用する。データエンコーダ８０は、ビットストリーム内のフラグによって必要とされる送信のために、量子化された出力を符号化することができ、ここで、データエンコーダ８０は、ハフマン符号化又は他の可逆符号化であってもよい。
【００２３】
量子化された出力をサブバンドデコーダ７２に送信して、元の入力サンプルの近似値を生成できる。サブバンドデコーダ７２の復号化機能の特定の詳細は、図１７から図１９を参照して説明される。明確なはずであるが、サブバンド符号化処理について説明する場合、デコーダ７２は、オーディオ信号エンコーダ１２Ｂのコンテキスト内で実施される。しかしながら、一般に、そして前述のように、復号化されたデジタルオーディオサンプル、すなわち近似信号は、遅延入力オーディオ信号１４Ｂから差し引かれて、エラー信号を生成する。オプションで、近似信号を生成するために、量子化された出力のいずれも使用されず、一部又はすべてが使用される。従って、近似信号には帯域データが含まれている場合と含まれていない場合がある。近似信号が０の場合、エラー信号は信号全体になる。Ｑバンド値及び元のサンプリングされたオーディオ信号の遅延バージョンは、ＭＤＣＴブロックサイズ及びスケール係数を計算するためにコーダコントローラ５４に提供され、これらはエラー信号とともにＭＤＣＴコーダ６２に提供される。加えて、量子化された出力は、データエンコーダ８０に提供され、例えばハフマン符号化又は算術符号化などのロスレスデータ符号化を使用してロスレスに符号化される。
【００２４】
例えば８８．２ｋＨｚと９６ｋＨｚなどのより高いサンプルレートのために、オーディオ信号１４Ｂはデシメータ７４を通過することができるが、例えば４４．１ｋＨｚと４８ｋＨｚなどのより低いサンプリングレートでは、間引きせずに直接使用できる。デシメータ７４が処理されたオーディオ信号１４Ｂを提供するか、オーディオ信号１４Ｂが直接提供されるかに応じて、ＰＱＭＦバンク７６は、元の信号に見出される周波数情報の範囲を生成する。例示の構成として、ＰＱＭＦバンク７６は、１６個のＰＱＭＦを含むことができ、また、各ＰＱＭＦは複数の有限インパルス応答（ＦＩＲ）フィルタの収集物にすることができる。オーディオ入力サンプルのブロックをＰＱＭＦバンク７６に提供し、フィルタごとの応答値−バンクを決定できる。各フィルタ値をサブバンド量子化器７８に入力して、フィルタごとに量子化値を生成することができる。
【００２５】
一例として、サブバンド量子化器７８は、フィルタリングされたサンプリングデータを１５個の帯域（バンド）に分割するが、それよりも多くのバンドに分割し、もしくはそれよりも少ない帯域に使用されてもよい。加えて、サブバンド量子化器７８は、機能的には、例えば２０〜４０ｄＢの各バンドの検出しきい値を用いて、ＰＱＭＦでフィルタリングされた複数のオーディオ信号から複数の帯域信号（バンド信号）を処理することができる。オーディオベアリング信号に隣接するノイズの多いアーチファクトはマーキングすることができ、つまり、信号がノイズアーチファクトであることを示す方法で量子化される。
【００２６】
図４は、例示的実施形態による、サブバンド量子化器７８からの実施例として単一のＡＰＣＭ量子化器９０のブロック図を示す。ＡＰＣＭ量子化器９０は、加算器９２、適応量子化器９４、逆適応量子化器９６、及びステップサイズコントローラ９８を含む。本質的には、ＡＰＣＭ量子化器９０は入力値を、より少ないセットの値にマッピングされ、ここで、マッピングは、ステップサイズコントローラ９８を用いて適応的に変更される。図３に戻ると、量子化された出力は複数のデジタル表現を生成する。オプショナルで、ＡＰＣＭ量子化器の代わりに適応差分パルス符号変調（ＡＤＰＣＭ）量子化器を使用する場合、予測器は、場合により、差信号値を減少させるために使用されてもよい。
【００２７】
一実施形態の動作において、符号化される入力オーディオ信号は、加算器９２の正の入力で受信される。加算器９２の負の入力は、逆適応量子化器９６によって生成された近似信号をフィードバック信号として受信する。加算器９２は、適応量子化器９４に提供される差信号を生成する。適応量子化器９４は差信号を受信し、差信号レベルを表す一連の量子化信号として差信号を表す出力信号を生成する。適応量子化器９４によって出力される量子化信号は、エンコーダ９０の出力量子化信号である。ステップサイズコントローラ９８は、下記の図５を参照すれば、過渡信号を検出して、適応量子化器９４及び逆適応量子化器９６によって使用されるステップサイズを決定する。逆適応量子化器９６は、適応量子化器９４によって出力された量子化信号と、ステップサイズコントローラ９８によって設定された現在のステップサイズ値に基づいて、近似信号を生成する。
【００２８】
図５は、一般的に９８として示されるステップサイズコントローラの実施形態のブロック図を示し、これは、例えば適応量子化器９４の実施形態において又は逆適応量子化器９６の実施形態において用いてもよい。図示されるように、ステップサイズコントローラ９８は、現在の量子化信号に基づいて対数乗数を選択する対数乗数セレクタ１００を備える。対数乗数セレクタ１００は、例えば以前の量子化された信号などの履歴データに基づいて対数乗数を選択することができ、例えば過去のデータに基づいて、又は更新のダウンロードで等で更新可能とすることができるルックアップテーブル（ＬＵＴ）を含むことができる。対数乗数セレクタ１００は、現在及び以前の量子化された信号に基づいた統計的確率に基づいて、対数乗数を選択することができる。ステップサイズコントローラ９８は、選択された対数乗算器から第１の正の入力で受信する加算器１１０をさらに備え、ステップサイズリミッタ１１２に出力を提供する。ステップサイズリミッタ１１２は、すべての帯域にわたるステップサイズを調べ、値が最小値を下回る場合、最小値を設定する。最小値には、固定値又は可変値を含めることができ、このことは使用中の帯域（バンド）とその統計に依存する。ステップサイズリミッタ１１２の出力は、遅延回路１１４に供給される。遅延回路１１４の出力は、乗算器１１６及び指数回路１１８に提供される。乗算器１１６は、遅延回路１１４の出力にスケーリング係数又は漏れ係数βを乗算し、この係数は通常、１に近く１未満であり、加算器１１０の２番目の正の入力に結果を提供する。漏れ係数は通常一定である場合があるが、一部の実施形態では、例えば前のステップサイズ制御信号又は他の過去のデータに基づいて可変である場合がある。１に近い１未満のスケーリング係数βを選択すると、例えば伝送エラーに起因する場合において導入されたエラーが離れて減衰するので、誤ったステップサイズの選択の影響を軽減しやすくなる。
【００２９】
動作中、指数回路１１８は、遅延回路１０６の出力に基づいてステップサイズ制御信号を生成する。図示のように、ステップサイズ制御信号は、適応量子化器９４及び逆適応量子化器９６に提供される。図示のように、量子化器のステップサイズコントローラ９８は対数的に動作し、計算を単純化することができる。いくつかの実施形態は、より高速であるが精度の低い結果のためにルックアップテーブルを用いてもよい。他の実施形態は線形に動作してもよく、例えば加算器１１０の代わりに乗算器を使用し、乗算器１１６の代わりに指数回路を用いてもよい。図示されるステップサイズコントローラ９８は、対数的に動作する。また、ステップサイズ制御信号に基づいて選択されたステップサイズは、指数関数的に変化する。
【００３０】
一実施形態では、量子化器ステップサイズコントローラ９８は、以下の式１に従って動作し得る。
【００３１】
ｄｎ＋ｉ＝βｄｎ＋ｍ（ｃｎ）      式１
【００３２】
ここで、ｄｎはログドメインのステップサイズ、ｍ（ｃｎ）は、現在の量子化信号に基づいて選択された対数乗数であり、βは、スケーリング係数又は漏れ係数である。
【００３３】
図６は、ある例示的な実施形態によるコーダコントローラ５８のブロック図を示す。コーダコントローラ５８は、プリエコー検出器１３０と心理音響モデルユニット１３２を含む。本質的には、コーダコントローラ５８は、遅延されたオーディオ信号とＱバンド値を収集し、ＭＤＣＴコーダ６２によるさらなる処理のためにＭＤＣＴブロックサイズ及びスケール係数を決定する。特に図６を参照すると、プリエコー検出器１３０はプリエコーを検出し、入力オーディオ信号の特性に基づいて、ＭＤＣＴブロックサイズを決定し、さらなる処理のために、決定されたＭＤＣＴブロックサイズ情報を心理音響モデルユニット１３２及びＭＤＣＴコーダ６２に入力する。プリエコー検出器１３０は、常にオンになるように動作する。他の実施形態では、選択的にオンになるように動作することができるが、定常的に又はゆっくり変化する信号で動作する場合、サブバンドコーダ５４はＱバンド値の小さな絶対値を提供する。特にプリエコーは特に顕著である打楽器などの鋭いインパルス信号と過渡信号とを有するオーディオにおいてプリエコーを引き起こす可能性のあるオーディオ信号が処理されている場合、適応パルス符号変調の適応性により、Ｑバンド値の１つ以上の大きな絶対値が一時的に発生する場合がある。Ｑバンド値の絶対値が所定のしきい値を超えると、プリエコー検出器１３０はそのような変化を検出し、プリエコーイベントが存在することを示すことができる。次に、特定のブロック長（サイズ）以下でブロック長（サイズ）を切り替える要件がトリガーされる。より短いブロック長を選択することでプリエコーを抑制できる。より短いブロック長は、Ｑ値の大きさ及びＱ値がどのバンドに含まれているかなどのいくつかの原因に基づいて選択することでできる。しきい値とブロック長の要件は、帯域ごとに異なる。例えば、低い帯域でしきい値を超えるには、ブロック長を２５６以下にする必要があるが、高い帯域で同様のしきい値を超えると、ブロック長が６４以下になることが必要になる場合がある。複数のしきい値を超えると、最も制限のある（最小の）ブロック長が使用される。さらに、大きなブロック長から小さなブロック長に直接移行すると、望ましくない歪みが発生する可能性がある。プリエコー検出器１３０は、ブロック長が時間とともに上下に遷移するようにオーディオコンテンツをプリフェッチすることにより、先読みすることができる。例えば、４０９６のブロック長から１２８のブロック長に直接切り替える代わりに、プリエコー検出器１３０は、４０９６から、１０２４に、２５６に、１２８へ移行するブロック長を生成することができる。従って、単一の大きな遷移からの望ましくない歪みを減らす一方、まだそのブロック長を必要とするオーディオ用ターゲット１２８のブロック長を達成する。
【００３４】
心理音響モデルユニット１３２は、プリエコー検出器１３０によって示されるＭＤＣＴブロックサイズ情報を利用することができ、スケール係数をＭＤＣＴコーダ６２に出力する。一実施形態では、心理音響モデルユニット１３２は、人間の聴覚の特性を反映しオーディオ信号の知覚的な冗長性を低減する、ムービングピクチャエキスパートグループ（ＭＰＥＧ）によって標準化されたＭＰＥＧ−１を採用することができる。ＭＰＥＧ−１  Ｐｓｙｃｈｏａｃｏｕｓｔｉｃ  Ｍｏｄｅｌ  ２の詳細については、非特許文献１において開示されている。
【００３５】
図７は、例示的な実施形態によるＭＤＣＴコーダ６２のブロック図を示す。ＭＤＣＴコーダ６２は、ＭＤＣＴプロセッサ１４０、量子化器１４２、及びセクションビルダ及びデータエンコーダ１４４を含む。本質的に、ＭＤＣＴコーダ６２は、ＭＤＣＴを用いてエラー信号を周波数領域に変換し、結果のＭＤＣＴライン値とスケール係数値を量子化し、量子化されたＭＤＣＴラインと量子化されたスケール係数値の両方を符号化し、単一の符号化ビットストリーム１６に含めるためにパケット化することができる、符号化されたＭＤＣＴデータとして結果を提供する。一実施形態では、ＭＤＣＴプロセッサ１４０は、前のＭＤＣＴブロック長、現在のＭＤＣＴブロック長、及び次のＭＤＣＴブロック長と共にエラー信号からのサンプルを使用する。ＭＤＣＴは、時間領域から短時間の周波数領域へのエラー信号の変換を行い、ＭＤＣＴライン値のセットを生成する。ライン値の計数値は、ＭＤＣＴブロック長又はＭＤＣＴブロックサイズと呼ばれる。数学的には、２の累乗であるブロック長を使用することは有利である。例えば、サンプリングレートが４８ｋＨｚ以下の場合、６４、１２８、２５６、５１２、１０２４、２０４８、４０９６のブロック長を使用するのが妥当である。９６ｋＨｚ以下などの高いサンプリングレートでは、１２８、２５６、５１２、１０２４、２０４８、４０９６、及び８１９２のブロック長を使用するのが妥当である。１９２ｋＨｚ以下などのさらに高いサンプリングレートでは、２５６、５１２、１０２４、２０４８、４０９６、８１９２、及び１６３８４などのブロック長を使用するのが妥当である。すべての入力サンプルは、２つの重複したＭＤＣＴを用いて２回符号化される。同様に、デコーダ１８は、元の入力サンプルを再生するために複数の逆ＭＤＣＴを用いて、２つのＭＤＣＴの結果を復号化する。当該データは、例えばサインウィンドウ（正弦窓）の使用などを用いて、周波数領域に変換するときにウィンドウ化（窓処理）される。しかし、ＭＤＣＴブロックの長さが一致しない場合、異なるサイズ間の遷移を考慮してウィンドウを歪めることができる。各サンプルは２回符号化されるため、ウィンドウは、元のサンプルは、２つの逆ＭＤＣＴを行った結果を合計することによって、デコーダで再生することができる方法で行う必要がある。基本的には、新しいＭＤＣＴは、前のＭＤＣＴの入力サンプルの第２の半分と、新たな入力サンプルの他の半分の価値（Ｗｏｒｔｈ）を用いて実行することができる。両方のＭＤＣＴのブロック長が同じ場合、半分はブロック長に等しくなる。この例では、各ＭＤＣＴへの入力はＭＤＣＴブロック長の２倍である。次のＭＤＣＴのブロック長が前のブロックから変更されると、オーバーラップのサンプル数が異なる。図８〜図１０において、いくつかの簡単な例を説明する。
【００３６】
ビットストリームでこれらの値を表すために必要なビット数を減らすために、スケール係数値を整数ｄＢ表示に量子化できる。
【００３７】
スケール係数ｄＢ＝ｆｌｏｏｒ（２０＊ｌｏｇｌ０（スケール係数／２−２４））
【００３８】
結果のスケール係数ｄＢ値は、例えば［０，２５５］のようにある範囲に固定できる。スケール係数値がビットストリームに対して量子化及び／又はクランプされている場合、ＭＤＣＴコーダ６２は、ＭＤＣＴデコーダ２５６（後述）によって実行された数学的演算と一致させるために、量子化スケール係数ｄＢ値に基づいて新しいスケール係数値を計算する必要がある。ＭＤＣＴライン値は、各ラインを関連するスケール係数値で除算し、結果を整数値に丸めることで量子化できる。一実施形態では、ＭＤＣＴラインはスケール係数バンドに分離でき、ここで、同一のスケール係数バンド内のすべての行は、共通スケール係数ｄＢ値を共有する。従って、ラインＱ（量子化された）値と、スケール係数バンド当たりのスケール係数ｄＢは、ＭＤＣＴデコーダ２５６は逆ＭＤＣＴを行うことができるようにＭＤＣＴの結果を符号化するため、格納される。聞き取りにくい、又は聞き取りにくい高周波を表すＭＤＣＴライン値は省略でき、つまり、ゼロとして扱われる。
【００３９】
セクションビルダ及びデータエンコーダ１４４は、量子化されたスケール係数ｄＢ及びＭＤＣＴライン値をロスレス方式でビットストリームに格納するために使用される。その意図は、符号化された情報を表すためにできるだけ少ないビットを使用することである。一例の実施形態として、情報を１つのセクションに分離し、ある特定のセクションのニーズに基づいて、異なるハフマンコードブックを使用することができる。各セクションは、１つ以上の連続するスケール係数バンドを含む。セクションの量子化（Ｑ）ＭＤＣＴライン値を符号化するために使用するハフマンコードブックは、そのセクションで見つかった最大絶対Ｑ値（Ｑ値の最大絶対値）に基づいて選択でき、従って、より小さい絶対Ｑ値に対してより小さいハフマン表現を使用する。追加の改善として、複数のＱ値を単一の値に結合してハフマン符号化することができる。例えば０、０、０、０の４個のＱ値は、単一のハフマンシンボルを形成するために組み合わせることができ、符号化Ｑ値を別々に４つのＱ値の各々を符号化するより少ないビットで表現できる。別の潜在的な改善として、ワイドバンドオーディオコンテンツとナローバンドオーディオコンテンツの異なるハフマンコードブックを調整することができ、その結果、広帯域のコンテンツは、広帯域コンテンツに対して調整されたハフマンコードブックを用いて少ないビットで表現する傾向があり、狭帯域コンテンツは、狭帯域コンテンツ用に調整されたハフマンコードブックを使用することで、より少ないビットで表現できる傾向がある。実装例としては、最初に各スケール係数バンドのセクションを作成し、もしマージされたセクションを表すビットのサイズがマージされていないセクションを表すビットでサイズよりも小さいときは隣接するセクションを一緒にマージする。複数のハフマンコードブックの使用例として、以下の表１を参照ください。表１には、１５個の実際のハフマンコードブックとともに、１６個の可能なハフマンコードブック値と、セクション内のすべてのＱ値が０である一般的な場合に使用されるときの０のコードブック値がある。表１の最初の列は、コードブックの値を示す。表１の２列目は、そのコードブックで表現可能な最大の絶対Ｑ値である。３番目の列は、コードブックのタイプを示す（例えば、広帯域のために調整されたものに対する、狭帯域のために調整されたもの）。４列目は、関連するコードブックのハフマンシンボルを形成するためにパックするＱ値の数を示す。
【００４０】
【表１】
2020512587.tif 000003
【００４１】
従って、例えばセクションにおいて最大ａｂｓ（Ｑ）の値が４であるとき、ハフマン１５を介してコードブック７を使用することができる。コードブック０は、すべてのＱ値がゼロの場合に使用されることに注意ください。この場合、問題のスケール係数バンドのＱ値は、これらのスケール係数帯域のスケール係数ｄＢ値とともに、すべて省略される。通常、使用することができる最小の最大絶対Ｑ値の制限を持つコードブックは、ビットの最小量セクションのＱ値を表現することができるであろう。例えば、最大ａｂｓ（Ｑ）の値が４であるときは、典型的にはハフマンコードブック７又は８のいずれかがそのセクションに使用するのに最適なコードブックであろう。しかし、これは常にそうとは限りません。例えば、２つ以上のセクションをマージすることにより、たとえそれがより大きな最大ａｂｓ（Ｑ）値を持つコードブックをマージされたセクション全体で使用する必要があることを意味しても、より良い全体的な結果が得られる可能性がある。このことは通常、複数のセクションを指定した場合と単一のマージされたセクションを指定した場合のサイドデータのオーバーヘッドによるものである。データエンコーダの実施形態では、使用可能なコードブックを試行してセクションをマージするさまざまな組み合わせを試行し、ビットストリーム内の全体的に最小のビットサイズになる組み合わせを選択できる。
【００４２】
上記の例におけるａｂｓ（Ｑ）値はハフマンコードを作成するために使用することができるので、非ゼロであるＱ値について、Ｑ値ごとに追加の符号ビットは、ビットストリームに格納される。上記の例では、エスケープコードブックには０〜６３のａｂｓ（Ｑ）値のハフマンシンボルしかないことに注意する必要がある。追加のハフマン値をハフマンテーブルに追加して、例えば値６４のエスケープコードを表すことができ、このことは、ａｂｓ（Ｑ）値が大きすぎてハフマン記号で直接表現できないことを意味し、ビットストリームにおけるエスケープコードに続いて、Ｑ値が代わりに直接に書き込まれることを意味する。簡単な例は、必要な最悪の場合の表現のために、１６ビットなどの固定ビット数を用いてＱ値自体を書き込むことである。しかし、最悪の場合の固定ビット長を使用するよりも平均が少ない場合がある値６４以上のための他の表現が存在する。スケール係数ｄＢ値は、デルタスケール係数ｄＢ値専用に調整された異なるハフマンコードブックを用いて個別に符号化できる。一例として、データエンコーダ１４は、例えば８ビットを使用するなど、最初の意味のあるスケール係数のｄＢ値全体を符号化することができ、ハフマンエンコーディングを用いて、残りのスケール係数ｄＢ値のために、各スケール係数ｄＢ値と前のスケール係数ｄＢ値との差を符号化する。
【００４３】
図８は、それぞれが８のブロックサイズを有する、第１のＭＤＣＴウィンドウ１４６及び第２のＭＤＣＴウィンドウ１４８が計算されてオーバーラップするサンプル、すなわちＭＤＣＴブロック１５０を有するサインウィンドウを使用した簡略化された例である。第１のＭＤＣＴウィンドウ１４６は、１６個のサンプルで計算される。２番目のＭＤＣＴウィンドウ１４８は１６サンプルで計算される。しかし、ＭＤＣＴウィンドウ１４８の第１の半分は、第１のＭＤＣＴのウィンドウ１４６の第２の半分をカバーし、重複した８個のサンプル又はむしろＭＤＣＴブロック１５０を生成する。これらのオーバーラップした８つのサンプルは、第１のＭＤＣＴウィンドウ１４６及び第２のＭＤＣＴウィンドウ１４８によって変換され得る。これらの８つのサンプルのいずれかが選択された場合、最初のＭＤＣＴ１４６は、ＭＤＣＴウィンドウ１４６のサインウィンドウ（正弦窓）を乗算したサンプルを用いて計算し、また、ＭＤＣＴウィンドウ１４８のサインウィンドウを乗算したサンプルを用いて、２番目のＭＤＣＴが計算されたということができる。このように、逆ＭＤＣＴが計算されるとき、サンプルの各ＩＭＤＣＴの結果を追加して、サンプルの元の値を復元できる。計算された各ＭＤＣＴからのサンプルの寄与は、特定のサンプルのサインウィンドウ値の２乗でスケーリングできる。この例では、両方のウィンドウがサインウィンドウであり、それらはお互いのミラーである。ＭＤＣＴウィンドウ１４６とＭＤＣＴウィンドウ１４８の各二乗値、すなわち、ＭＤＣＴウィンドウ１４６の値を乗算したＭＤＣＴウィンドウ１４６の値は、ＭＤＣＴウィンドウ１４８の値を乗算したＭＤＣＴウィンドウ１４８の値に加算され、その結果の値は１．０である。この例では、両方のウィンドウが交差しかつ正確に同じ値を有する値が、約０．７０７１である４５度の正弦値に等しい。各ウィンドウに対して値が２乗され、寄与が合計される場合、その結果のウィンドウの和は１．０である。ウィンドウ内の各サンプルに対して、その結果のウィンドウの合計はｓｉｎ２（θ）＋ｃｏｓ２（θ）になり、これは常に１である。
【００４４】
図９は、サインウィンドウを使用した別の例を示し、２のブロックサイズを有する第１のＭＤＣＴウィンドウ１５２と、８のブロックサイズを有する第２のＭＤＣＴウィンドウ１５４と、ＭＤＣＴブロック１５６とを用いた場合である。前の例のように、重なり合う領域を定義するＭＤＣＴブロック１５６は、望ましい値を生成できるようにウィンドウをどのように歪めるかを決定する上で重要である。サインウィンドウも使用されるが、２番目のＭＤＣＴウィンドウ１５４はひずませられ、その結果、第１のＭＤＣＴウィンドウの第２の半分によって乗算されたサンプル１５２は、１．０の平方根から第２のＭＤＣＴウィンドウ１５４の値を引いた値で乗算することもできる。これらの２つのサンプルについて、第２のＭＤＣＴウィンドウ１５４の値に加えられた第１のＭＤＣＴウィンドウ１５２の値は、合計が１．０でなければならない。従って、次の問題は、第２のＭＤＣＴウィンドウ１５４の第１の半分が第１のＭＤＣＴウィンドウ１５２の第２の半分よりも長いことである。その問題は、オーバーラップ後のサンプルの第２のＭＤＣＴウィンドウ１５４をオーバーラップし１．０に平坦化する前に、サンプルに対して第２のＭＤＣＴウィンドウ１５４を０．０に平坦化することにより対処される。さらに、前のウィンドウの新しい半分は現在のウィンドウの古い半分と一致し、現在のウィンドウの新しい半分は、次のウィンドウの次の半分と一致するように、ウィンドウが計算され、歪ませられる。ＭＤＣＴサイズが一致しない場合、サインウィンドウは２つのサイズの短い方で行われ、１又は０が長いウィンドウの応答の部分に行われます。これらの２つのＭＤＣＴウィンドウは、サイズが異なるウィンドウの場合、値の合計が１．０になるように正規化する必要がある。ゲイン（利得）への影響は、上記の例を単純にするために取り扱われていない。
【００４５】
図１０は、サインウィンドウを使用した別の例を示し、２のブロックサイズを有する第１のＭＤＣＴウィンドウ１５８と、８のブロックサイズを有する第２のＭＤＣＴウィンドウ１６０と、２のブロックサイズを有する第３のＭＤＣＴウィンドウ１６２と、ＭＤＣＴブロック１６４Ａと、ＭＤＣＴブロック１６４Ｂとを有する場合である。前の例のように、第２のＭＤＣＴウィンドウ１６０の第１の半分は、ＭＤＣＴブロック１６４Ａが第１のＭＤＣＴウィンドウ１５８と重複する場所にあり２つのウィンドウ値の合計は１．０になるように歪ませられる。同様に、以降、第３のＭＤＣＴウィンドウ１６２より小さいブロックサイズを含むので、第２のＭＤＣＴウィンドウ１６０の第２の半分は、第３のＭＤＣＴ１６２でそれを合計すると、１．０となるように歪ませられる。オーバーラップのＭＤＣＴブロック１６４Ｂの前の第２のＭＤＣＴウィンドウ１６０の部分は１．０に平坦化され、オーバーラップのＭＤＣＴブロック１６４Ｂの後の第２のＭＤＣＴウィンドウ１６０の部分は０．０に平坦化される。ここでも、例を単純にするために、ゲインへの影響は無視されていることに注意ください。また、上記の簡単な例はすべてサインウィンドウを用いていることに注意ください。ただし、ウィンドウ処理の効果がデコーダで打ち消され、元のサンプルが適切に再生成される限り、他のウィンドウを使用できる。
【００４６】
ＭＤＣＴは重複しているため、複数のサンプルは、逆ＭＤＣＴを用いて２つのＭＤＣＴからデータを復号化することなく、オーディオデコーダ１８Ｂで完全に復号化されない場合がある。２つのＭＤＣＴからのデータを復号化しないと、サンプルがオーディオデコーダ１８Ｂで完全に復号化されないという問題により、ＭＤＣＴプライマーブロックが必要になる。起動状態では、ＭＤＣＴを実行するために必要な２つのＭＤＣＴブロック長のサンプルを満たすために、１つのＭＤＣＴブロック長のサンプルのみが利用可能である。この起動状態では、ゼロに相当するＭＤＣＴブロック長と、それに続く実際の入力サンプルのＭＤＣＴブロック長を使用できる。この最初のＭＤＣＴを実行した結果は、プライマーブロックと呼ばれる。一実施形態では、オーディオデコーダ１８Ｂは、特別なケースとしてプライマーブロックを識別することができ、このことはプライマーブロックの復号化は、サンプルの実際の完全な復号化ではなく、むしろ単に従うＭＤＣＴブロックの復号が実際のサンプルを復号化することができるようにチャネルをプライミング（準備）する。
【００４７】
図１１は、プロパティ（特性）の最小ビットストリーム表現の例示的な実施形態である。データ信号エンコーダ１２Ｃは、プロパティの使用によりほとんどのデータ信号１４Ｃを符号化する。単一のプロパティを用いて、下位互換性と拡張可能な形式で任意の種類の目的のデータを表すことができる。ほとんどのタイプのデータ信号１４Ｃは、データチャネルパケットの一部であるプロパティとして符号化されることに注意ください。ただし、プロパティの柔軟性のため、他のパケットタイプ内でも使用できる。プロパティの本質は、タイプ（型）の値によって識別でき、プロパティのデータが実際に何を表しているかを知らなくても復号化する場合そのデータをスキップできることである。これを実現するために、プロパティはプロパティタイプとデータサイズによって最小限に表され、該当するなどの追加データを含み、つまり、データサイズがゼロでない場合である。この例では、６ビットはプロパティタイプ１６６を定義し、２ビットはプロパティデータサイズ１６８を定義する。６ビットは６４の可能なプロパティタイプ値［０，６３］を提供する。これらの値のいずれか（例えば、６３）プロパティの種類が残り［０，６２］の値の範囲で表すことができないことを示すために予約することができ、そのため、実際のプロパティタイプは、代わりに、バイトのパック整数として（後述）ビットストリームの６２より大きい表現で格納される。プロパティのデータのサイズを定義するために使用される２ビットは、４つの可能な値［０，３］を表すことができる。０、１、及び２の値は、データのサイズをバイト単位（０バイト、１バイト、又は２バイト）で表すことができ、３の値は、データのサイズが、バイトのパック整数として（後述）次の格納されたビットストリーム２バイトより大きいサイズを指定することができる表現で示すことができる。この例の表現では、単一のプロパティタイプ１６６とデータサイズ１６８をわずか８ビットで記述できるが、必要に応じて、より大きなプロパティタイプ及び／又はデータサイズの値を表すために追加のビットを使用することができる。この形式を使用すると、デコーダは、任意のプロパティのタイプとデータサイズを復号化することができ、プロパティのデータが既知のプロパティタイプで関連性がある場合、そのデータを復号化でき、もしくは、プロパティのタイプが不明な場合や関連性がない場合は、単にプロパティのデータをスキップできる。
【００４８】
プロパティタイプは、標準の一部としてグローバルに定義でき、未知のプロパティタイプは単純にスキップできるため古いデコーダとの下位互換性を維持しながら新しいプロパティが標準に追加することができる。
【００４９】
図１２は、符号なし整数値を可変バイト数で格納する例を示し、図１３は、符号付き整数値を可変数のバイトに格納する例を示す。エンコーダ１２はビットストリームに整数値を格納する必要があるかもしれないが、この値は、典型的には非常に小さいであるが、ときどき大きくなることがある。ビットの全体の計数値を最小化するために、より一般的に存在する整数値に対してより少ないビットを使用する形式の整数を表すのに有用である。この一例は、バイトでパックされた整数であり、ここで、より小さな整数値は、整数値未満のバイトにパックされる。符号なし３２ビット値の場合、最大７ビットの整数値をバイトに符号化して拡張フラグとして残りの８番目のビット（ビット７）を用いることで行うことができる。拡張フラグがクリアされている場合、整数のすべてのビットが復号化され、復号化を停止できる。拡張フラグが設定されている場合、整数は次のバイトに続く。例えば、４０９４（２進数表示で００００００００  ００００００００  ００００１１１１  １１１１１１１０）の３２ビットの符号なし整数値が符号化されるならば、図１２に示すように格納することができる。ビット１７０は、最上位の設定ビットまでの４０９４の整数値のビットである。ビット１７２は拡張フラグである。従って、値を４バイト（３２ビット／８＝４バイト）として格納する代わりに、２バイトとして格納できる。符号付き３２ビット整数値は、わずかに異なる方法で格納できる。値が負の場合、すべてのビットが反転され、反転フラグビットが設定される。反転フラグは、最初のバイトにビット０として格納できる。最初のバイトについては、反転フラグビット０と、反転された整数値の最大６ビットと、（ビット７）の拡張フラグを有する。最初のバイトにのみ反転フラグがある。他のすべてのバイトは、反転整数値に７ビットを使用し、拡張フラグに１ビットを使用する。例えば、−４０９４の３２ビット符号付き整数値が符号化されて２の補数のビッグエンディアンの２進数表示（１１１１１１１１  １１１１１１１１  １１１１００００  ００００００１０）で示されるとき、値が負であるため、最初に値を反転する。これは、次の値を与える：００００００００  ００００００００  ００００１１１１  １１１１１１０１。そして、図１３に示すように、これらのビットを記憶することができる。ビット１７４は、最上位セットビットまでの反転された−４０９４整数値のビットである。ビット１７６は拡張フラグである。ビット１７８は反転ビットである。
【００５０】
プログラム構成データ１４Ａは、例えば英語対スペイン語、無監督の解説対監督の解説など、特定のプログラムで復号化するビットストリーム内のデータのタイプを記述する。各プログラム構成に関する情報を符号化し、プログラム構成パケットに挿入でき、当該プログラム構成パケットは、後に、単一の符号化に書き込まれたビットストリーム１６に書き込まれる。ビットストリームのフォーマットは、すべてのプログラムをサポートし、ストリーム内の同期点の後に変化する情報をプログラミングできる。
【００５１】
エンコーダ１２は、複数のタイプの入力（１４Ａ、１４Ｂ、１４Ｃ、１４Ｄ、１４Ｅ）を入力して、データをパケットの単一ビットストリームに符号化することができる。パケットは本質的にパケットタイプとペイロード（データ）で構成され、また、パケットにチャネル固有のデータがある場合、関連するチャネルを指定する方法もある。デコーダ１８は、パケットタイプを識別し、必要に応じて復号化されるサブシステムにパケットを発送する。最も一般的なパケットタイプはチャネル関連のパケットタイプ（オーディオパケットとデータパケット）であるため、表２に示すように、単純な一例の実施形態は、すべてのパケットのための最初のヘッダとしてバイト（８ビット）を使用することができる。その例では、上位３ビットは、８つの異なるパケットタイプを表すために使用され、そして、下位５ビットは、例えばチャネル関連パケット（オーディオ及びデータパケット）のチャネル番号などの追加情報を表すために使用される。そのヘッダーバイトに続くのは、パケットの残りのペイロードである。パケットを常にバイト（８ビット）境界で開始するように整列させることは、デジタルエンコーディング／デコーディングにとって望ましい場合があることに注意ください。しかし、このことは、パケットがバイト境界で開始されるように、最大７ビットのパディングを追加する必要がある場合があることを意味する。表３は、実施形態におけるパケットタイプの例を示す。
【００５２】
【表２】
2020512587.tif 000004
【００５３】
【表３】
2020512587.tif 000005
【００５４】
図１４は、一般的に１８０として示されるある例示的な実施形態によるビットストリームパケット構成を示す。一般に、ビットストリームパケット構成１８０は、セットに構成された一連のパケットを含む。一実施形態では、ビットストリームのパケット構成は、例えばストリームコマンドパケット１８８の０．５秒（ハーフセカンド）及び終了などの時間期間において、同期コマンドパケット１８２（Ａ，Ｂ）、プログラムコマンドパケット１８４（Ａ，Ｂ）、チャネルパケット１８６（Ａ，Ｂ，Ｃ，Ｄ）を含む。チャネルパケット１８６（Ａ，Ｂ，Ｃ，Ｄ）は、例えばオーディオパケット及び／又はデータパケットなど、チャネル関連のパケットタイプのいずれか、又はそれらの任意の組み合わせである。シリーズ内のセットには、より多くのチャンネルに関連するパケット又は可能性なしを持っている可能性があり、セット内の複数のプログラムコマンドパケットが存在することができることがまた理解されるべきである。
【００５５】
コマンドパケットは、ビットストリームを復号化するためにデコーダ１８が必要とするデータを伝送する。同期コマンドパケットは、ビットストリームを復号化するためのエントリポイントを定義する。デコーダが既に進行中のビットストリームに参加している場合、ビットストリーム内の前のバイトは不明であり、デコーダは、同期コマンドパケットが見つかるまで、ビットストリームをスキャンすることができる。パケットの最初のバイトの直後に続くバイトは、ビットストリームでランダムに発生する可能性が低い特定のバイトパターンである。デコーダが、正しいバイトパターンが続く同期コマンドパケットバイトを発見したときに、デコーダは同期コマンドパケットを発見したと判断して、ビットストリームのコテンツについて復号化を開始することができる。同期コマンドパケットは、そのようなサンプルレートで復号化する特定のプログラムに固有ではない情報を含む場合もあり、このような流れの開始時にプライムオーディオの復号化に必要な情報をプライミングする。
【００５６】
１つ以上のプログラムコマンドパケット１８４（Ａ，Ｂ）は、同期コマンドパケット１８２（Ａ，Ｂ）に続くことができる。プログラムコマンドパケット１８４（Ａ，Ｂ）は、復号化する特定のプログラムに関する情報を定義する。例えば、場合、単一の符号化されたビットストリーム１６は、以下の２つの利用可能なプログラムを含む：１つは英語、もう１つはスペイン語、各言語に１つずつ、２つのプログラムコマンドパケットが存在する可能性がある。プログラムコマンドパケット１８４（Ａ，Ｂ）は、ビットストリーム１６でそのプログラムを参照するために使用できる一意の整数プログラムＩＤを含むことができる。プログラムコマンドパケット１８４（Ａ、Ｂ）は、チャネル関連のパケットタイプについてどのチャネルを復号化するかを指定する。例えば、プログラムコマンドパケット１８４（Ａ，Ｂ）は、例えば、特定のチャネルのパケットタイプの３２個の可能なチャネルを表現するための３２ビットなど、目的のチャネルのチャネルビットマスクを用いて復号化できる。チャネルビットマスクの各セットビットは、関連するチャネルを復号化する必要があることを示すことができる。一方、チャネルビットマスクのクリアビットは、関連するチャネルをスキップする必要があることを示すことができる。プログラムコマンドパケット１８４（Ａ，Ｂ）には、例えば言語ローカリゼーション（局所化）情報などの追加情報のオプションプロパティも含まれる場合がある。そして、下位互換性を維持しながら、後に新しいプロパティを追加することができる。
【００５７】
ストリーム終了コマンドパケット１８８は、単一の符号化されたビットストリーム１６を終了する。このパケット１８８は、デコーダ１８が復号化するためのビットストリームにデータが残っていないことを意味する。ストリーム終了コマンドパケット１８８は、例えば復号化プロセスを終了するためにデコーダ１８によって使用されるなど、ストリームの終了に関する情報も含む場合がある。
【００５８】
例えば表４に示されるシングルチャネル、低周波、対話チャンネル、チャンネル対の動きチャンネルタイプなどのオーディオ関連のチャネルパケットタイプは、主に符号化されたオーディオデータを含む。データチャネルパケットは、あらゆるタイプのデータを保持できるが、より典型的には、例えば字幕、歌詞、アルバムアート、カスタムスタジオデータなどのチャネルの選択データの他の形態のために使用される。チャネルパケットのコンテンツを固定期間に関連付けると便利である。例えば、理想的には、チャネルの各パケットに正確に１秒間そのチャネルの状態が含まれていた場合、全体的なタイムラインに、各チャネルのコンテンツを関連付けるために簡単にすることができ、例えば第１のパケットがコテンツの第１の秒であり、第２のパケットはコンテンツの第２の秒であり、第３のパケットはコンテンツの第３の秒であるなどである。一例の実施形態として、与えられたサンプルレートでオーディオサンプルの数に基づいて継続時間を選択することができ、オーディオブロックなどのサンプル数を参照してください。表４に、オーディオブロックに使用するサンプル計数値の例と、特定のサンプルレートでそれらのサンプルによって表される期間を示す。オーディオブロックのサンプル計数値は、オーディオブロックごとに約１０分の１秒になる２のべき乗値になるように選択されていることに注意ください。他のサンプル計数値を使用することもでき、非累乗の２つの長さを含む。しかし、一般的にＭＤＣＴ計算の固有の数学とレイテンシーを考えると、合理的なアプローチは、サンプルレートのオーディオブロック長として、サンプルレートの最大サポートＭＤＣＴブロック長を使用することである。
【００５９】
【表４】
2020512587.tif 000006
【００６０】
この明細書で説明されているように、特に指定がない限り、オーディオブロックの長さはサンプル計数値を指す。一実施形態では、エンコーダ１２及びデコーダ１８は、オーディオブロックの単位で概念的に機能し得る。例えば、エンコーダ１２は入力データを一度に１個のオーディオブロック消費し、デコーダは復号化されたデータを一度に１個のオーディオブロック出力することができる。ストリーム内のすべてのオーディオブロックは、概念的には同じ時間であり、従って、例えばストリームの終了、又は、オーディオチャネルが開始又は停止したときなどのいくつかの注目すべき例外を除いて、同一のサンプル計数値となる。その場合、オーディオブロックは、依然として時間の同じ固定長を表すが、例えば１個のチャネル又は複数のチャネルのためにより少ないサンプル数など、不完全なデータがあるかもしれない。
【００６１】
通常、オーディオサンプルは、オーディオパケットのタイプに関係なく、同じ方法でオーディオパケットに符号化されるが、ここで注目すべき例外は、チャンネルペアのパケットタイプであり、これは、例えば左右のチャンネルなど一緒に符号化される２つの関連するチャネルを有する。オーディオサンプルは、通常、サブバンドコーダ５４によって符号化される。元のサンプルとサブバンドで符号化されたデータの復号化結果との差がエラー信号として使用され、ＭＤＣＴコーダ６２によって符号化される。その場合、通常、サブバンドコーダの符号化データと変換コーダの符号化データの両方が同じオーディオパケットに格納される。ただし、サブバンドコーダ５４の一部又はすべてのバンドを省略することもできる。本質的には、オーディオパケットは、サブバンドコーダの符号化バンド値及び変換符号化の符号化されたＭＤＣＴデータの組み合わせとして表されるオーディオサンプルの範囲の符号化バージョンを有すると考えることができる。符号化されたデータの組み合わせは、オーディオデコーダ１８Ｂがこれらのオーディオサンプルを復号化及び再生成するために使用するものである。理想的には、単一パケット内の符号化されたオーディオサンプルの数は、オーディオブロックとして定義されたサンプル数と一致し、その結果、パケットを復号化するオーディオデコーダ１８Ｂは、サンプルのオーディオブロック長の価値を復号化する。しかし、ＭＤＣＴデータの重複する性質と、使用された可能性のある異なるＭＤＣＴブロックサイズのため単一のパケット内のサンプルのセットは、概念的に次のオーディオブロックに属するサンプルに拡張できる。同様に、現在のパケットに概念的に属するサンプルは、以前のオーディオパケットを介してすでに送信されている可能性がある。
【００６２】
図１５は、オーディオブロック０用とオーディオブロック１用の２つのオーディオパケットの視覚化に役立つ簡単な例を示し、ここで、オーディオブロック０を表すパケットは、オーディオブロック１に拡張される符号化されたサンプルデータを含む。図示の例では、パケット０の最後の２０４８個の復号化可能なサンプルには、オーディオブロック０の最後の５１２個のサンプルが含まれているだけでなく、また始まる１５３６個のサンプルに拡張し、それは概念的にオーディオブロック１（５１２＝２０４８＋１５３６）を示す。実施形態が、オーディオブロックのこの概念を使用して、全体的に固定された持続時間を確立する場合次に、パケットとオーディオブロックの関係を説明する別の方法として、関連するオーディオブロックのパケットがデコードされると、デコーダ１８には少なくとも１つのオーディオブロックに相当する出力コンテンツが必要である。
【００６３】
ＭＤＣＴ復号化とサブバンド復号化の両方に対して、最初の起動状況があり、ここで、サブバンドデコーダ２５４とＭＤＣＴデコーダ２５６は、復号化されたオーディオサンプルにすぐに変換されないデータを復号化する必要がある。このデータは、実際にオーディオサンプルを完全に復号化せずにデコーダをプライミングするという点で、プライマー情報として格納される。この情報は、例えばストリームの開始時など起動中のチャネルの最初のオーディオパケットにある。最初のプライマー情報が復号化された後、将来のすべてのＭＤＣＴ及びサブバンド復号化では、サンプルが完全に復号化される。
【００６４】
データチャネルパケットは、下位互換性と拡張性のある形式でさまざまなタイプのデータを保持するように設計され、従って、データパケットの内容は、必ずしも直接オーディオサンプルに関連していない。ただし、一部の実施形態では、オーディオブロック概念として。データパケットが標準の継続時間に関連している場合に役立つ。そのような実施形態では、単一のデータチャネル用の単一のデータパケットは、ストリーム内の時間に相当する各オーディオブロックに対してオプションで存在することができる。この暗黙の期間は、例えばストリーム内の適切な時間に表示される字幕など、データパケットで見つかったコンテンツの一部を解釈するためのベースタイムラインを確立するのに役立つ。しかし、データチャネルパケットは任意のタイプのデータを表すのに非常に柔軟性があるため、実施形態は、任意の解像度でタイミング情報をデータパケットに追加して、必要に応じて解釈することができることに注意する必要がある。
【００６５】
種々のオーディオ関連のチャネルタイプには、例えば空間内のオーディオエミッターの位置、スピーカの位置、又は環境の特性などの物事を識別することができる、空間情報をオプションで含めることができる。空間情報は静的なものと動的なものがあり、空間情報の表現はさまざまである。静的な、つまり移動しない空間情報は、通常、時間に対して移動する何かの動的な空間情報を表すのに必要なデータよりも少ない頻度で表すことができる。例えば、通常、静的情報は、同期ポイントでビットストリームに含める必要があるだけであり、同期ポイントで起動デコーダは、静的なものの空間的な情報を知ることができる。動的な空間情報は、時間に関して変化するというまさにその性質により、ある時間の解決で問い合わせることができる空間情報を必要とする。一実施形態がオーディオブロックの概念を用いて時間の長さを表す場合、動的な空間情報の表現を分割することは、サンプルがオーディオブロックに相対する方法と同様に、オーディオブロックに関連する情報を作成するために便利である。ただし、これは要件ではなく、動的な空間情報のタイプ又は望ましい解像度を考えると不利な場合もある。一般性として、オーディオサンプルを完全に復号化してレンダリングするためには、オーディオサンプルの動的な空間情報を復号化する必要があり、エンコーダ１２とデコーダ１８の全体的なレイテンシーは、両方のデータセットの符号化と復号化の影響を受ける。実際には、このことは単に、サンプルと動的空間情報の両方を、アプリケーションの望ましい符号化及び復号化のレイテンシー要件を満たす時間の割合で分割する必要がある。静的な空間情報は、同期コマンドパケット又はその直後にパケット内に含めることができ、動的な空間情報は、同期コマンドパケット又はその直後に含めることもできる。ただし、通常はストリームの後の他のパケットにおいて符号化された追加情報が典型的には含まれる。空間情報の表現は、ニーズに応じて異なる。例えば、オーディオを発する物体の場所など、平坦な地面に対する単位円の周りの単一の角度で十分な場合が多くあるが、この場合では、オブザーバから物体トまでの距離と、物体とオブザーバの高さの相対的な違いは重要ではない。そのような例では、必要な空間情報は、潜在的に、単一のバイト（８ビット）のように単純であってもよく、ここで、バイトの範囲［０，２５６）は、単位円［０，３６０）の周りの角度に線形にマッピングでき、中心にいる観測者は約１．４度の精度を提供し、これは多くのアプリケーションに十分な可能性がある。相対的な高さが重要だった場合、［−９０，９０）度の傾斜角にマッピングされた７ビット［−６４，６４］を追加すると、同じ解像度１．４度が垂直方向に提供される。これらの例の数値は、解像度の単位を固定することが目的であると仮定しており、ここで、どの角度にも他の角度と同じ精度が与えられる。実際には、非線形表現を用いて、より重要なことに対してより高い精度を提供できる。一例として、前述の角度とともに物体までの距離を含める場合、その距離は非線形曲線として表すことができ、ここで、物体が遠くにあるときに対して観測者に対して物体が近い場合において、非常に高い精度がある。別の例は舞台や映画での俳優の位置であり、ここで、まれな例外から離れて、すべての対話は観察者の目の前にし、距離の比較的狭い範囲内から来ているように見える。このような場合、観測者の周りの総スペースと比較して、かなり制限されたスペースのスライスにすべて又はほぼすべてのビットを割り当てることができる。動的な空間情報の場合、情報は、一時的であるので、時間をかけて位置／向きのデルタ変化を活用することができ、観察者に対して知覚的に遅い移動物体の場合、空間内の同等の絶対位置／方向よりも平均で劇的に小さい値になる可能性がある。また、実際には、物体を移動すると、加速度がわずかに変化するだけの期間が長いことがよくあるが、これは、線形又は非線形キーを持つスプラインを使用するなど動きを近似するために、少ないビット数に符号化することができる。
【００６６】
リバーブの影響などの環境特性データ１４Ｅは、例えば、潜水艦の内部には、コンサートホールの内部は非常に異なる特性を有する種々のタイプの環境のオーディオ特性を表すためにビットストリームに符号化できる。環境特性は空間表現でもあり、これはリスナーに対して、環境内の物体についての手がかりに加えて、そのような環境のサイズ、形状、間隔、方向及びテクスチャ／組成物など、多くのことについて知覚的な手がかりを与えることができる。必要なパラメータの量とタイプは、シミュレートする環境のタイプによって大きく異なり、一部のタイプの環境ではシミュレートする情報がほとんどなく、他の環境ではより広範な情報が必要である。コーデックの実施形態は、広範囲の環境及び環境効果を表すようにカスタマイズでき、事前に定義された基本タイプの環境の選択を可能にすることができる。これらの調整可能な基本環境タイプと適切なデフォルトのパラメータ値を提供することにより、関連する環境データをビットストリームに効率的に符号化できる。このことは、環境の特定のタイプをサポートするために必要なデータのみを最小符号化される必要があるためである。新しい基本環境タイプを後で追加でき、ビットストリームは、プロパティ（前述）やその他の同様の拡張機能を使用して、古い既存の基本環境タイプと下位互換性を保持する。実施形態は、事前定義された基本環境タイプに限定されず、データチャネルパケットのプロパティを使用して完全に新しい情報を記述したり、ストリームで見つかった既存の情報を拡張したりするなど、他の手段でカスタム環境効果を作成できる。データチャネルパケットのプロパティを用いて、まったく新しい情報を記述したり、ストリームで見つかった既存の情報を拡張したりするなどがある。一実施形態では、環境情報は、他のタイプの空間情報と同様に、通常、同期コマンドパケット又はその直後にパケット内に含まれ、これにより、同期点から復号化を開始して復号ビットストリームは、環境情報を復号化することができ、それによって影響を受けるオーディオサンプルを適切にレンダリングすることができる。また、他のタイプの空間情報と同様に、環境の変化は、例えば映画の中でカットされたカメラなど環境の変化をシミュレーションするために、必要に応じてビットストリーム内の後続のパケットに符号化できる。通常は望ましくありませんが、オーディオサンプルを影響する環境データを復号化せずに復号化することも可能である。そのような場合、最初のオーディオサンプルは、環境効果が最小限、デフォルト、または存在しない「ドライ」な環境にあるものとして扱うことができ、環境データがビットストリームで検出されて符号化されると、オーディオは後で実際の環境効果に移行する。この手法は、すべての同期ポイントですべての環境情報を指定しないなど、ビットストリーム内の環境情報の全体的な冗長性を削減するのに役立つ。
【００６７】
図１６は、ある例示的な実施形態によるデコーダ１８のアルゴリズムのフローチャートを示す。デコーダ１８はビットストリームを復号化し、エンコーダ１２に入力された元の信号の近似値又は場合によっては正確な再現を返す。デコーダアルゴリズムフローは、ブロック２０２において、例えば、デバイスのアクティブ化、もしくはコーデックを用いたアプリケーションが起動されるなどで開始される。開始時において、デコーダアルゴリズムは、ブロック２０４で、結合されているビットストリームが現在進行中か否かを判断する。ビットストリーム内の以前のデータが不明である進行中のビットストリームに参加する場合、デコーダアルゴリズム２００は、ブロック２０６で同期コマンドパケットを検索することができ、その時点でデコードを開始することができる。結合されているビットストリームが開始し、すなわち最初のパケットが同期パケットであると判断された場合、ブロック２０８でビットストリーム内の同期コマンドパケットが復号化される。同期コマンドパケットには、復号化されるプログラムに関係なく、後続のデータに対してグローバルな情報が含まれる。例えば、サンプルレートがプログラム間で異なっていなかった場合、同期コマンドパケットはサンプルレートを指定できる。同期コマンドパケットに続いて、ブロック２１０で復号化される１つ以上のプログラム構成パケットがある。他のコマンドパケットは、図では省略されるが、プログラム構成パケットと混在する場合がある。事実上、同期コマンドパケットを見つけた後の段階は、ストリーム内のプログラムに関する情報を見つけて、復号化する適切なプログラムを選択できるようにすることである。次いで、デコーダアルゴリズム２００は、ストリーム内の他のパケットの検査を開始し、ブロック２１４で各パケットに対してアクションをとることができる。復号化する目的のプログラムに関連付けられたチャネルを持つパケットが復号化され、このとき、目的のプログラムに関連していないパケットがスキップされる。次いで、同期コマンドパケットが見つかった場合、論理は、ブロック２０８の同期コマンドパケットの処理に戻る。ブロック２１８で決定されたように、ストリーム終了コマンドパケットが見つかった場合、復号化するために、それ以上のパケットが存在せず、デコーダは、復号化プロセスを完了し、ブロック２２０で、ビットストリームの復号化が終了したことを知らせることができる。ブロック２１８で決定されるように、ストリームの終了コマンドが見つからない場合、次のパケットは、ブロック２２２、復号化され、そして、アルゴリズム２００は次のパケット２１４を検査するために戻る。
【００６８】
ほとんどの場合において、ビットストリームについての事前の知識を必要とせずに、ビットストリームのコンテンツの復号化を開始するために、ビットストリーム１６内の同期ポイントに続く十分な情報がある。これにより、デコーダ１８は、すでに進行中であり、同期ポイントが見つかった後に復号化を開始するビットストリームに参加できるようになる。また、ビットストリーム内の別のポイントをシークし、同期ポイントが見つかったら復号化を再開することもできる。また、複数のビットストリームを、ラジオコンテンツへのコマーシャルの挿入など、簡単につなぎ合わせることができ、ここで、元のソースビットストリームの内容は、相互依存関係がなくても大きく異なる場合がある。このことは、プログラム情報などの何らかの情報が、その情報は前回の同期ポイント以降に変更されていない場合でも、同期ポイントに続くストリームに重複して存在する可能性があることを意味する。一部の重要でない情報について、この冗長性は望ましくないか不必要な場合があり、この場合において、非重要情報が分割及び／又はあまり頻繁に繰り返すことができなかった。一例として、アルバムのアートワークでは、全体を表現するために多くのビットが必要になる場合がある。各同期ポイントの後にアルバムアートワークを冗長に埋め込むと、ビットストリームのサイズが非常に大きくなる可能性がある。冗長データの影響を軽減するには、アルバムアートワークを分割することができ、全体的なデータの一部のみが各同期ポイントの後に格納することができる。アルバムのアートワークを表示できるプレーヤーは、実際に完全な画像を表示す前に、すべてのピースが復号化されるまで待つことができる。最終的な結果は、アルバムアートワークデータ全体が同期ポイントの直後に利用できなくなることであるが、ビットストリームに冗長なアートワークデータを含めることの影響は軽減される。別の懸念は、ＭＤＣＴデータなどのあるタイプのデータを復号化するためにデコーダ１８が必要とするプライミングである。オーディオサンプルは２つのＭＤＣＴによって符号化される。従って、オーディオサンプルを完全に復号化するには、逆に２つのＭＤＣＴを復号化する必要がある。ストリームの開始時、又は新しいチャンネルが開始されたとき、このケースを処理するための、追加のプライマー情報であるビットストリームが存在する。そのプライマー情報は、各同期ポイントの後に含めることができる。しかし、より安価なソリューションは、最初のＭＤＣＴから得られた復号化サンプルを単に破棄することであり、その後、変換デコーダが準備され、その結果それぞれの新しいＭＤＣＴが有効に復号化されたオーディオサンプルをもたらす。
【００６９】
前述したように、プログラム構成は、プログラム構成コマンドパケット内の情報で表すことができる。そのパケットは、そのプログラムのために復号化するためにどのチャンネルともに、特定のプログラムを識別するために使用されるプログラムＩＤで構成される。デコーダ１８を実行するアプリケーションは、復号化する所望のプログラムのプログラムＩＤを選択することができる。復号化するためのプログラムのプログラムＩＤは、最初のチャネル関連パケットが復号化される前にいつでも設定でき、このことは、いくつかの実施形態では、プログラムコマンドパケットからの情報をプログラミングする際にビットストリームで見つかった場合にデコーダでできるコールバック又は別のタイプのシグナリングからのものを含む。このような場合には、制御アプリケーションは、その後で利用可能なプログラムに関する情報を調べることができビットストリーム及び復号化する所望の番組を選択する。
【００７０】
図１７は、ある実施形態によるオーディオデコーダ１８Ｂのブロック図を示す。オーディオデコーダ１８は、オーディオパケット逆アセンブラ２５２、サブバンドデコーダ２５４、ＭＤＣＴデコーダ２５６、及び加算器２５８を含む。ここで、オーディオパケット逆アセンブラ２５２は、データタイプを識別し、符号化されたサブバンドデータをサブバンドデコーダ２５４にディスパッチし、符号化されたＭＤＣＴデータをＭＤＣＴデコーダ２５６にディスパッチする。サブバンドデコーダ２５４は、符号化されたサブバンドデータを復号化して近似信号を生成し、これについては、図１８で詳しく説明する。ＭＤＣＴデコーダ２５６は、図２０を参照して以下に示すように、符号化されたＭＤＣＴデータを復号化し、符号化されたエラー信号を出力することができる。次に、サブバンドデコーダ２５４及びＭＤＣＴデコーダ２５６の出力が一緒に加算されて、復号化されたオーディオサンプルを取得する。
【００７１】
図１８は、ある例示的な実施形態による、符号化されたサブバンドデータ入力を復号化するためのサブバンドデコーダ２５４のブロック図を示す。サブバンドデコーダ２５４は、データデコーダ２６２、逆サブバンド量子化器２６４、逆ＰＱＭＦバンク２６６、加算器２６８、及び補間器２７０を含む。本質的には、サブバンドデコーダ２５４は、逆に復号化された信号を量子化し、近似信号を生成し、入力されたデータを復号化する。データデコーダ２６２は、ハフマンデコーディング又は算術デコーディングを用いてもよい。逆サブバンド量子化器は、逆ＡＰＣＭ（ＩＡＰＣＭ）又は逆ＡＤＰＣＭ（ＩＡＤＰＣＭ）システムを使用できる。例えば８８．２ｋＨｚと９６ｋＨｚなどのより高いサンプリングレートのためには、オーディオサンプルは補間器２７０を通過することができる。一部のサンプリングレートでは補間器は必要ではないかもしれないが、図３のサブバンドデコーダ７２は、サブバンドデコーダ２５４と同じ復号化機能を用いていることを理解されたい。
【００７２】
図１９は、２８０として全体的に示される、ある例示的な実施形態による、逆ＡＰＣＭ量子化器のブロック図を示す。逆ＡＰＣＭデコーダ２８０は、逆適応量子化器２８２及びステップサイズコントローラ２８４を含む。逆ＡＰＣＭ量子化器の使用は、逆サブバンド量子化器２６４の実装の一例であることを理解されたい。これは、必要に応じて、サブバンド量子化器７８が採用しているものに依存して、逆ＡＤＰＣＭ量子化器を使用してもよい。逆適応量子化器２８２は、データデコーダ２６２からの復号信号（量子化信号）に基づいて近似信号を生成し、ステップサイズコントローラ２８４によって設定された現在のステップサイズ値を生成する。ステップサイズコントローラ２８４に関するより詳細な情報は、図５に戻ることができる。図３のサブバンド量子化器７８がＡＤＰＣＭ量子化器を代わりに使用する場合、ここでは、逆ＡＤＰＣＭ量子化器を対応して使用する必要があり、ここで、予測子を用いて、逆適応量子化器からの出力を受け取り、近似信号を出力できる。
【００７３】
図２０に、ある例示的な実施形態によれば、一般的に２５６として示されるＭＤＣＴデコーダのブロック図を示す。ＭＤＣＴデコーダ２５６は、データデコーダ３０２、逆量子化器３０４、及び逆ＭＤＣＴプロセッサ３０６を含む。データデコーダ３０２は、符号化されたＭＤＣＴデータを復号化するために、例えばハフマン復号化又は算術復号などのロスレスデコーディングを使用することができ、ここで復号されたＭＤＣＴデータは、量子化ＭＤＣＴライン値は、量子化スケール係数値を含む。次に、量子化されたＭＤＣＴライン値は、関連するスケール係数値によってＱ値をスケーリングすることにより、逆量子化器３０４によって計算される。次に、符号化されたＭＤＣＴライン値は、逆ＭＤＣＴプロセッサ３０６を介して処理され、符号化されたエラー信号を再生成する。次に、符号化されたエラー信号は、サブバンドデコーダ２５４からの近似信号がともに、最終の復号化オーディオサンプルに追加されてユーザーに返される。
【００７４】
図２１は、例示的実施形態による計算機４００及びシステムアプリケーションモジュール５００を示す。計算機（コンピューティングマシン）４００は、本明細書で提示される様々なコンピュータ、モバイルデバイス、ラップトップコンピュータ、サーバ、組み込みシステム、又はコンピューティングシステムのいずれかに対応することができる。モジュール５００は、本明細書に提示される様々な方法及び処理機能を実行することを計算機４００に対して容易化するように設計された１つ又は複数のハードウェア又はソフトウェア要素を含むことができる。計算機４００は、例えば、プロセッサ４１０、システムバス４２０、システムメモリ４３０、記憶媒体４４０、入力／出力インターフェース４５０、及びネットワーク４７０と通信するためのネットワークインタフェース４６０などの、様々な内部コンポーネント又は付属コンポーネントを含むことができる。
【００７５】
計算機４００は、従来のコンピュータシステム、組み込みコントローラ、ラップトップ、サーバ、モバイルデバイス、スマートフォン、ウェアラブルコンピュータ、カスタマイズされたマシン、その他のハードウェアプラットフォーム、又はそれらの組み合わせ又は多様性として実装することができる。計算機４００は、データネットワーク又はバスシステムを介して相互接続された複数の計算機を使用して、機能するように構成された分散システムとすることができる。
【００７６】
プロセッサ４１０は、本明細書に記載の動作及び機能を実行し、計算を実行し、コマンドを生成するために、コード命令を実行するように設計し、要求フローとアドレスのマッピングを管理することができる。プロセッサ４１０は、計算機４００内のコンポーネントの動作を監視及び制御するように構成することができる。プロセッサ４１０は、汎用プロセッサ、プロセッサコアラー、マルチプロセッサ、再構成可能プロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ（「ＤＳＰ」）、識別用途向け集積回路（「ＡＳＩＣ」）、コントローラ、ステートマシン、ゲーテッドロジック、ディスクリートハードウェアコンポーネント、その他の処理ユニット、又はそれらの組み合わせ又はそれらの複数であることができる。プロセッサ４１０は、単一の処理ユニット、複数の処理ユニット、単一の処理コア、複数の処理コア、専用プロセッサコア、コプロセッサ、又はそれらの任意の組み合わせであり得る。ある実施形態によれば、計算機４００の他の構成要素と共にプロセッサ４１０は、１つ又は複数の他の計算機内で実行される仮想計算機であり得る。
【００７７】
システムメモリ４２０は、例えば、読み出し専用メモリ（「ＲＯＭ」）、プログラマブル読み出し専用メモリ（「ＰＲＯＭ」）、消去可能プログラマブル読み出し専用メモリ（「ＥＰＲＯＭ」）、フラッシュメモリ、もしくは、プログラム命令やデータを格納することができ、又は供給電源なしの任意の他の装置などの、不揮発性メモリを含むことができる。システムメモリ４２０は、例えば、ランダムアクセスメモリ（「ＲＡＭ」）、スタティックランダムアクセスメモリ（「ＳＲＡＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、同期ダイナミックランダムアクセスメモリ（「ＳＤＲＡＭ」）などの、揮発性メモリも含むことができる。他のタイプのＲＡＭもシステムメモリ４２０を実装するために使用することができる。システムメモリ４３０は、単一のメモリモジュール又は複数のメモリモジュールを使用して実装することができる。システムメモリ４３０は計算機４００の一部として示されているときに、当業者は、システムメモリ４３０が主題の技術の範囲から逸脱することなく、計算機４００から分離することができることを認識であろう。また、システムメモリ４３０は、記憶媒体４４０のような不揮発性記憶装置と連動して含み、又は動作することができる。
【００７８】
記憶媒体４４０は、ハードディスク、フロッピーディスク、コンパクトディスク読み取り専用メモリ（「ＣＤ−ＲＯＭ」）、デジタル多用途ディスク（「ＤＶＤ」）、Ｂｌｕ−ｒａｙ（登録商標）ディスク、磁気テープ、フラッシュメモリ、その他の非揮発性メモリデバイス、ソリッドステートドライブ（「ＳＳＤ」）、磁気ストレージデバイス、光学ストレージデバイス、電気ストレージデバイス、半導体ストレージデバイス、物理ベースのストレージデバイス、その他のデータストレージデバイス、もしくはそれらの組み合わせ又はそれらの複数などを含むことができる。記憶媒体４４０は、例えば、１つ以上のオペレーティングシステム、モジュール２０５０などのアプリケーションプログラム及びプログラムモジュール、データ又はその他の情報を格納することができる。記憶媒体４４０は、計算機４００の一部であるか、それに接続することができる。記憶媒体４４０は、例えばサーバ、データベースサーバ、クラウドストレージ、ネットワーク接続ストレージなどの計算機４００と通信する１つ又は複数の他の計算機の一部とすることもできる。
【００７９】
システムアプリケーションモジュール５００は、本明細書に提示される様々な方法及び処理機能を実行することで計算機４００を促進するように構成された１つ又は複数のハードウェア又はソフトウェア要素を備えることができる。モジュール５００は、システムメモリ４３０、記憶媒体４４０、又はその両方に関連してソフトウェア又はファームウェアとして格納された１つ又は複数の命令シーケンスを含むことができる。従って、記憶媒体４４０は、命令又はコードはプロセッサ４１０による実行のために記憶することができる機械可読媒体又はコンピュータ可読媒体の例を表すことができる。機械又はコンピュータ可読媒体は、一般に、プロセッサ４１０に命令を提供するために使用される任意の媒体を指すことができる。モジュール５００に関連付けられたそのような機械又はコンピュータ可読媒体は、コンピュータソフトウェア製品を含むことができる。モジュール５００を含むコンピュータソフトウェア製品は、１つ以上のプロセス、又は、ネットワーク４７０を介してモジュール５００を計算機４００に配信する方法、任意の信号担持媒体、又はその他の通信又は配信技術に関連付けることができることが理解されるべきである。モジュール５００は、例えば、ＦＰＧＡやその他のＰＬＤのマイクロコードや構成情報など、ハードウェア回路又はハードウェア回路を構成するための情報も含むことができる。
【００８０】
入出力（「Ｉ／Ｏ」）インターフェース４５０は、１つ又は複数の外部デバイスに結合し、１つ又は複数の外部デバイスからデータを受信し、及び１つ又は複数の外部デバイスにデータを送信するように構成することができる。このような外部デバイスは、さまざまな内部デバイスとともに周辺機器とも呼ばれる。Ｉ／Ｏインターフェース４５０は、様々な周辺機器を計算機４００又はプロセッサ４１０に結合するために、電気的接続と物理的接続の両方を含むことができる。Ｉ／Ｏインターフェース４５０は、周辺機器、計算機４００、又はプロセッサ４１０間でデータ、アドレス、及び制御信号を通信するように構成することができる。Ｉ／Ｏインターフェース４５０は、例えば、スモールコンピュータシステムインターフェイス（「ＳＣＳＩ」）、シリアル接続ＳＣＳＩ（「ＳＡＳ」）、ファイバーチャネル、周辺機器相互接続（「ＰＣＩ」）、ＰＣＩエクスプレス（ＰＣＩｅ）、シリアルバス、パラレルバス、高度な技術（「ＡＴＡ」）、シリアルＡＴＡ（「ＳＡＴＡ」）、ユニバーサルシリアルバス（「ＵＳＢ」）、Ｔｈｕｎｄｅｒｂｏｌｔ、ＦｉｒｅＷｉｒｅ、さまざまなビデオバスなど、任意の標準インターフェースを実装するように構成できる。Ｉ／Ｏインターフェース４５０は、１つのインターフェース又はバス技術のみを実装するように構成することができる。あるいは、Ｉ／Ｏインターフェース４５０は、複数のインターフェース又はバス技術を実装するように構成することができる。Ｉ／Ｏインターフェース４５０は、システムバス４２０の一部又はすべて、又はシステムバス４２０と連動して動作するように構成できる。Ｉ／Ｏインターフェース４５０は、１つ又は複数の外部デバイス、内部デバイス、計算機４００、又はプロセッサ４１０間の送信をバッファリングするために、１つ以上のバッファを含むことができる。
【００８１】
Ｉ／Ｏインターフェース４５０は、例えばマウス、タッチスクリーン、スキャナ、電子デジタイザ、センサ、受信機、タッチパッド、トラックボール、カメラ、マイク、キーボード、他のポインティングデバイス、又はそれらの任意の組み合わせなどの、計算機４００を様々な入力装置に結合することができる。Ｉ／Ｏインターフェース４５０は、例えば、ビデオディスプレイ、スピーカ、プリンタ、プロジェクタ、触覚フィードバック装置、自動制御、ロボット部品、アクチュエータ、モータ、ファン、ソレノイド、バルブ、ポンプ、送信機、信号エミッタ（放射器、送信器）、照明などの計算機４００を様々な出力装置に結合することができる。
【００８２】
計算機４００は、ネットワーク４７０を横切って一の以上の他のシステム又は計算機にネットワークインタフェース４６０を介して、論理接続を用いてネットワーク環境で動作することができる。ネットワーク４７０は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、イントラネット、インターネット、無線アクセスネットワーク、有線ネットワーク、モバイルネットワーク、電話ネットワーク、光ネットワーク、又はそれらの組み合わせを含むことができる。ネットワーク４７０は、任意のトポロジーのパケット交換、回線交換が可能であり、任意の通信プロトコルを使用できる。ネットワーク４７０内の通信リンクは、例えば、光ファイバケーブル、自由空間光学部品、導波路、電気導体、無線リンク、アンテナ、無線周波数通信などの、様々なデジタル又はアナログ通信媒体を含むことができる。
【００８３】
プロセッサ４１０は、システムバス４２０を介して、計算機４００の他の要素又は本明細書で説明する様々な周辺機器に接続することができる。システムバス４２０は、プロセッサ４１０内、プロセッサ４１０外、又はその両方にあり得ることを理解されたい。いくつかの実施形態によれば、プロセッサ４１０、計算機４００の他の要素、又は本明細書で説明する又は様々な周辺機器は、システムオンパッケージ（「ＳＯＰ」）又はＡＳＩＣデバイス上で、システムオンチップ（「ＳＯＣ」）などの単一のデバイスに統合できる。
【００８４】
実施形態は、本明細書で説明及び図示される機能を具現化するコンピュータプログラムを含み得る。ここで、コンピュータプログラムは、機械可読媒体に格納された命令と命令を実行するプロセッサを含むコンピュータシステムに実装される。しかし、コンピュータプログラミングで実施形態を実装する多くの異なる方法が存在する可能性があることは明らかである。また、実施形態は、コンピュータプログラム命令のいずれか１つのセットに限定されると解釈されるべきではない。さらに、熟練したプログラマは、開示された実施形態の実施形態を実装するために、添付のフローチャート、アルゴリズム、及びアプリケーションテキストの関連説明に基づいてそのようなコンピュータプログラムを書くことができる可能性がある。従って、プログラムコード命令の特定のセットの開示は、実施形態を作成及び使用する方法を適切に理解するために必要であるとは見なされない。さらに、本明細書で説明される実施形態の１つ又は複数の態様は、１つ又は複数のコンピューティングシステムで具現化され得るように、ハードウェア、ソフトウェア、又はそれらの組み合わせによって実行され得ることは当業者が理解するであろう。さらに、コンピュータによって実行される動作への言及は、複数のコンピュータがその動作を実行する可能性があるため、単一のコンピュータによって実行されると解釈されるべきではない。
【００８５】
本明細書で説明される例示的な実施形態は、前述の方法及び処理機能を実行するコンピュータハードウェア及びソフトウェアとともに使用することができる。本明細書で説明されるシステム、方法、及び手順は、プログラム可能なコンピュータ、コンピュータ実行可能ソフトウェア、又はデジタル回路で具体化することができる。ソフトウェアは、コンピュータで読み取り可能なメディアに格納できる。例えば、コンピュータで読み取り可能なメディアには、フロッピーディスク、ＲＡＭ、ＲＯＭ、ハードディスク、リムーバブルメディア、フラッシュメモリ、メモリスティック、光学メディア、光磁気メディア、ＣＤ−ＲＯＭなどを含む。デジタル回路は、集積回路、ゲートアレイ、ビルディングブロックロジック、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを含む。
【００８６】
前述の実施形態で説明したシステム、方法、及び動作の例は例示であり、代替実施形態では、様々な実施形態の範囲及び精神から逸脱することなく。ある動作は、異なる順序で、互いに並行して、完全に省略して、及び／又は異なる例示的実施形態間で組み合わされて、及び／又はある追加の動作を実行できる。従って、そのような代替実施形態は、本明細書の説明に含まれる。
【００８７】
本明細書で使用される単数形「ａ」、「ａｎ」及び「ｔｈｅ」は、文脈がそうでないことを明確に示していない限り、複数形も含むことを意図している。用語「含む」及び／又は「含む」は、この明細書で使用する場合、記載されている機能、整数、ステップ、操作、要素、コンポーネントの存在を指定することがさらに理解されるだろう。ただし、１つ以上の他の機能、整数、ステップ、操作、要素、コンポーネント、及び／又はグループの存在又は追加を排除しない。ここで使用されているように、用語「及び／又は」は、列挙された関連項目の１つ又は複数の任意及び全ての組み合わせを含む。ここで使用されているように、「ＸとＹの間」や「ＸとＹの間」などのフレーズはＸとＹを含むと解釈する必要がある。ここで使用されているように、「ＸとＹの間」などのフレーズは、「ＸとＹの間」を意味する。ここで使用されているように、「約ＸからＹまで」などのフレーズは、「約Ｘから約Ｙまで」を意味する。
【００８８】
ここで使用されているように、「ハードウェア」は、ディスクリート部品の組み合わせ、集積回路、識別用途向け集積回路、フィールドプログラマブルゲートアレイ、又は他の適切なハードウェアなどを含む。ここで使用されているように、「ソフトウェア」は、１つ以上のプロセッサにより実行される、１つ以上のオブジェクト、エージェント、スレッド、コード行、サブルーチン、個別のソフトウェアアプリケーション、２行以上のコード又は２つ以上のソフトウェアアプリケーションで動作する他の適切なソフトウェア構造（ここでは、プロセッサは、１つ又は複数のマイクロコンピュータ又は他の適切なデータ処理ユニット、メモリデバイス、入出力デバイス、ディスプレイ、キーボードやマウスなどのデータ入力デバイス、プリンタやスピーカなどの周辺機器、関連するドライバー、コントロールカード、電源、ネットワークデバイス、ドッキングステーションデバイス、又はプロセッサ又は他のデバイスと連動してソフトウェアシステムの制御下で動作する他の適切なデバイス）、又は他の適切なソフトウェア構造を含む。例示的な一実施形態では、ソフトウェアには、例えばオペレーティングシステムなどの、汎用ソフトウェアアプリケーションで動作する１行以上のコード又は他の適切なソフトウェア構造、又は１つ以上のコード行又は識別目的のソフトウェアアプリケーションで動作する他の適切なソフトウェア構造を含めることができる。ここで使用されているように、用語「カップル又は結合物」と、例えば「複数のカップル」などと「結合された」などの同族用語は、物理的な接続（例えば銅線、銅導体など）、仮想接続（例えばデータ記憶装置のランダムに割り当てられたメモリ位置を介して）、論理的な接続（そのような半導体装置の論理ゲートを介して）、他の適切な接続、又はそのような接続の適切な組み合わせを含めることができる。「データ」という用語は、例えば、データフィールド、データバッファ、データ値と送信／受信アドレスデータを有するデータメッセージ、受信側システム又はコンポーネントは、データを用いて機能を実行させ、もしくはデータの電子処理のための他の適切なハードウェア又はソフトウェアコンポーネントに対して実行させる、データ値及び１つ以上の演算子を有する制御メッセージなどのデータの使用、伝達、又は格納に適した構造を指す。
【００８９】
一般に、ソフトウェアシステムは、所定のデータフィールドに応じて所定の機能を実行するためにプロセッサ上で動作するシステムである。例えば、システムは、それが実行する機能と、それが上の関数を実行するデータフィールドによって定義することができる。ここで使用されているように、ＮＡＭＥは、典型的には、システムによって実行される一般的な関数の名前であるＮＡＭＥシステムであり、ここで、プロセッサ上で動作し、開示されたデータフィールドに対して開示された機能を実行するように構成されたソフトウェアシステムを指す。あるアルゴリズムが開示されていない限り、関連するデータフィールドを用いて機能を実行するための、当業者に知られる任意の適切なアルゴリズムは本開示の範囲内に入ると考えられる。例えば送信者アドレスフィールド、受信者のアドレスフィールド、メッセージフィールドを含むメッセージを生成するメッセージシステムは、送信者アドレスフィールド、受信者アドレスフィールド、及びメッセージフィールドを取得できるプロセッサで動作するプロセッサ上で動作するソフトウェアに出会うであろう。例えばバッファデバイス又はバッファシステムなどの、適切なシステム又はデバイスからのメッセージは、送信者アドレスフィールド、受信者アドレスフィールド、及びメッセージフィールドを適切な電子メッセージ形式（電子メールメッセージ、ＴＣＰ／ＩＰメッセージ、又は送信者アドレスフィールド、受信者アドレスフィールド、メッセージフィールドを持つその他の適切なメッセージ形式など）に組み立てることができ、例えばネットワークなどの通信媒体を介して電子メッセージングシステム及びプロセッサのデバイスを使用して電子メッセージを送信することができる。当業者は、前述の開示に基づいてあるアプリケーションにあるコーディングを提供することができるだろう。これは、本開示の例示的な実施形態を記載することが意図される、このよう適切なプログラミング言語でのプログラミング又はプロセッサに不慣れな誰かのように当技術分野の当業者ではない人にはチュートリアルを提供する意図はない。機能を実行するためのあるアルゴリズムは、フローチャート形式又は他の適切な形式で提供できる。ここで、データフィールドと関連する機能は、操作の例示的な順序で説明できる。ここで、順序は適切に並べ替えることができ、明示的に限定することが述べられていない限り、限定することは意図されていない。
【００９０】
ある実施形態が上記で詳細に説明されたが、説明は単に例示の目的のためである。従って、以下のことを理解する必要がある。上記の多くの態様は、特に明記しない限り、必須又は必須の要素として意図されていません。上記のものに加えて、例示的な実施形態の開示された態様の修正、及びそれに対応する同等のコンポーネント又は動作は本開示の利益を有する当業者によって作成することができ、添付の特許請求の範囲で定義される実施形態の精神及び範囲から逸脱することなく、そのような修正及び同等の構造を包含するように、その範囲に最も広い解釈が与えられるべきである。
【図１Ａ】
2020512587.tif 000007
【図１Ｂ】
2020512587.tif 000008
【図２】
2020512587.tif 000009
【図３】
2020512587.tif 000010
【図４】
2020512587.tif 000011
【図５】
2020512587.tif 000012
【図６】
2020512587.tif 000013
【図７】
2020512587.tif 000014
【図８】
2020512587.tif 000015
【図９】
2020512587.tif 000016
【図１０】
2020512587.tif 000017
【図１１】
2020512587.tif 000018
【図１２】
2020512587.tif 000019
【図１３】
2020512587.tif 000020
【図１４】
2020512587.tif 000021
【図１５】
2020512587.tif 000022
【図１６】
2020512587.tif 000023
【図１７】
2020512587.tif 000024
【図１８】
2020512587.tif 000025
【図１９】
2020512587.tif 000026
【図２０】
2020512587.tif 000027
【図２１】
2020512587.tif 000028
【国際調査報告】
2020512587.tif 000029
2020512587.tif 000030
2020512587.tif 000031
2020512587.tif 000032
2020512587.tif 000033
2020512587.tif 000034