(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-11
(54)【発明の名称】ストリーム適合ビットエラー耐性
(51)【国際特許分類】
G10L 19/005 20130101AFI20230704BHJP
G10L 19/035 20130101ALI20230704BHJP
【FI】
G10L19/005
G10L19/035 Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022574808
(86)(22)【出願日】2021-04-02
(85)【翻訳文提出日】2022-12-05
(86)【国際出願番号】 US2021025528
(87)【国際公開番号】W WO2021252051
(87)【国際公開日】2021-12-16
(32)【優先日】2020-06-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ターナー、リチャード
(72)【発明者】
【氏名】タッガート、メーガン・ルーシー
(72)【発明者】
【氏名】ウォシーズザック、ローラン
(72)【発明者】
【氏名】ハント、ジャスティン
(57)【要約】
オーディオデータを圧縮するための方法、デバイス、非一時的コンピュータ可読媒体、およびシステムについて説明される。本技法は、オーディオ信号のデジタル化サンプルのシーケンスを取得することと、複数のスペクトル線を生成するためにデジタル化サンプルのシーケンスを使用して変換を実行することと、複数のスペクトル線からスペクトル線のグループを取得することと、量子化値のグループを生成するためにスペクトル線のグループを量子化することとを含む。量子化値のグループを生成するためにスペクトル線のグループを量子化することは、スペクトル線のグループから選択されたスペクトル線に対する特殊な丸め演算を実行することと、量子化値のグループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、特殊な丸め演算を使用することとを備え得る。量子化値のグループに基づく1つまたは複数のデータフレームが出力され得る。
【特許請求の範囲】
【請求項1】
オーディオデータを圧縮するための方法であって、
オーディオ信号のデジタル化サンプルのシーケンスを取得することと、
複数のスペクトル線を生成するために、デジタル化サンプルの前記シーケンスを使用して変換を実行することと、
前記複数のスペクトル線からスペクトル線のグループを取得することと、
量子化値のグループを生成するためにスペクトル線の前記グループを量子化することと、
ここにおいて、量子化値の前記グループを生成するためにスペクトル線の前記グループを量子化することは、
スペクトル線の前記グループから選択されたスペクトル線に対する特殊な丸め演算を実行することと、
量子化値の前記グループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、前記特殊な丸め演算を使用することと、
量子化値の前記グループに基づいて1つまたは複数のデータフレームを出力することと
を備える、方法。
【請求項2】
前記特殊な丸め演算は、前記選択されたスペクトル線に関連する丸め前の値に対して実行され、
前記丸め前の値は、浮動小数点値または固定小数点値を備え、
量子化値の前記グループは、整数または固定小数点値のグループを備える、
請求項1に記載の方法。
【請求項3】
前記特殊な丸め演算は、量子化値の前記グループについて計算された前記グループパリティ値を強制的に前記所定のパリティ値にするために、前記選択されたスペクトル線に関連する前記丸め前の値を丸めるために使用される丸め方向を反転させる、請求項2に記載の方法。
【請求項4】
前記選択されたスペクトル線は、スペクトル線の前記グループ内の他のスペクトル線と比較して、2つの最も近い考えられる量子化値の間の中間点までの最小距離を有する丸め前の値に関連するという理由で選択される、請求項3に記載の方法。
【請求項5】
前記選択されたスペクトル線は、より高い周波数のスペクトル線を選ぶ選択バイアスに基づいて選択される、請求項4に記載の方法。
【請求項6】
2つの最も近い考えられる量子化値の間の中間点までの第1の距離を有する第1の丸め前の値に関連する第1のスペクトル線と、2つの最も近い考えられる量子化値の間の中間点までの第2の距離を有する第2の丸め前の値に関連する第2のスペクトル線とがタイであるとき、前記第1の距離は、前記第2の距離に等しく、前記第1のスペクトル線は、前記第2のスペクトル線よりも高い前記変換の周波数ビンに関連するという理由で選択される、請求項5に記載の方法。
【請求項7】
スペクトル線の前記グループは、第1の周波数ビンおよび第1の丸め前の値に関連する第1のスペクトル線と、第2の周波数ビンおよび第2の丸め前の値に関連する第2のスペクトル線とを含み、
前記第1の周波数ビンは、前記第2の周波数ビンよりも高い前記変換の周波数ビンに対応し、
前記第1の丸め前の値は、2つの最も近い考えられる量子化値の間の第1の距離に対応し、前記第2の丸め前の値は、2つの最も近い考えられる量子化値の間の第2の距離に対応し、前記第2の距離は、前記第1の距離よりも小さく、
前記第1のスペクトル線は、前記第2のスペクトル線よりも選択される、
請求項5に記載の方法。
【請求項8】
前記1つまたは複数のデータフレームは、量子化値の前記グループに基づく符号語のグループを備える、請求項1に記載の方法。
【請求項9】
符号語の前記グループは、算術符号化を使用して量子化値の前記グループから生成される、請求項8に記載の方法。
【請求項10】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の少なくとも1つの量子化値について、丸め残差値をさらに備える、請求項8に記載の方法。
【請求項11】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の前記少なくとも1つの量子化値について、パリティ残差値をさらに備える、請求項10に記載の方法。
【請求項12】
前記丸め残差値および前記パリティ残差値は、前記1つまたは複数のデータフレーム内のパディングビットの代わりに挿入される、請求項11に記載の方法。
【請求項13】
前記特殊な丸め演算は、前記複数のスペクトル線からのスペクトル線のグループのシーケンスから量子化された量子化値のグループのシーケンスを強制的に、所定のパリティ値のシーケンスを有するようにするために使用される、請求項1に記載の方法。
【請求項14】
所定のパリティ値の前記シーケンスは、ウォーターマークとして使用される、請求項13に記載の方法。
【請求項15】
前記ウォーターマークは、前記特殊な丸め演算の使用を示す、請求項14に記載の方法。
【請求項16】
前記ウォーターマークは、前記1つまたは複数のデータフレーム内の1つまたは複数のパリティ残差値の存在を示す、請求項15に記載の方法。
【請求項17】
前記ウォーターマークは、オーディオデータを圧縮するための前記方法を実装するデバイスの特定のプロバイダに関連付けられる、請求項14に記載の方法。
【請求項18】
前記1つまたは複数のデータフレームは、オーディオデータ圧縮のための既存の規格との互換性を維持する、請求項1に記載の方法。
【請求項19】
オーディオデータを復元するための方法であって、
1つまたは複数のデータフレームを取得することと、
前記1つまたは複数のデータフレームに基づいて量子化値のグループを取得することと、ここにおいて、量子化値の前記グループは、量子化値の前記グループについて計算されたパリティ値を強制的に所定のパリティ値にするために、スペクトル線に対して実行される特殊な丸め演算を含む圧縮側の量子化プロセスから生じる、
量子化値の前記グループについて、受信側パリティ値を計算することと、
前記計算された受信側パリティ値を、量子化値の前記グループについての前記所定のパリティ値と比較することと、
前記計算された受信側パリティ値と、量子化値の前記グループについての前記所定のパリティ値との間の差を検出したことに応答して、前記1つまたは複数のデータフレーム内の少なくとも1つのビットエラーを検出または訂正するために、ビットエラー演算を実行することと、
前記1つまたは複数のデータフレーム内の前記少なくとも1つのビットエラーの検出または訂正を考慮して、量子化値の前記グループに基づいて、スペクトル線のグループを推定することと、
デジタル化サンプルのシーケンスを生成するために、スペクトル線の前記グループを含む複数のスペクトル線を使用して逆変換を実行することと、
デジタル化サンプルの前記シーケンスを、オーディオ信号のデジタル表現として出力することと
を備える、方法。
【請求項20】
前記1つまたは複数のデータフレームは、符号語のグループを備え、
前記ビットエラー演算は、符号語の前記グループ内の少なくとも1つのビットエラーを検出または訂正するために実行される、
請求項19に記載の方法。
【請求項21】
符号語の前記グループ内の前記少なくとも1つのビットエラーは、
符号語の前記グループの複数の送信を取得することと、
符号語の前記グループの複数の再構成されたバージョンを生成することと、
(1)符号語の前記グループの1つの再構成されたバージョンに関連する前記計算された受信側パリティ値と、(2)前記所定のパリティ値との間の整合に基づいて、符号語の前記グループの前記複数の再構成されたバージョンから符号語の前記グループの前記1つの再構成されたバージョンを選択することと
によって訂正される、請求項20に記載の方法。
【請求項22】
考えられるビットエラーの位置を示す弱いビットマスクは、符号語の前記グループの前記複数の送信を比較することによって生成され、
符号語の前記グループの前記複数の再構成されたバージョンの各々は、前記弱いビットマスクによって示される前記ビット位置のうちの1つにおけるビットを変更することによって再構成される、
請求項21に記載の方法。
【請求項23】
符号語の前記グループの前記複数の送信は、(1)符号語の前記グループの元の送信と、(2)符号語の前記グループの1つまたは複数の再送信とを備える、
請求項22に記載の方法。
【請求項24】
符号語の前記グループの前記1つまたは複数の再送信の各々は、符号語の前記グループの以前の送信に関連する失敗したCRCによってトリガされる、請求項23に記載の方法。
【請求項25】
量子化値の前記グループは、算術復号を使用して符号語の前記グループから生成される、請求項20に記載の方法。
【請求項26】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の少なくとも1つの量子化値について、丸め残差値をさらに備える、請求項20に記載の方法。
【請求項27】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の前記少なくとも1つの量子化値について、パリティ残差値をさらに備える、請求項26に記載の方法。
【請求項28】
前記丸め残差値および前記パリティ残差値は、前記1つまたは複数のデータフレーム内のパディングビットの位置から抽出される、請求項27に記載の方法。
【請求項29】
前記丸め残差値および前記パリティ残差値を考慮することによって、スペクトル線の前記グループからのスペクトル線が、解像度が向上した状態で推定される、請求項27に記載の方法。
【請求項30】
前記丸め残差値は、前記スペクトル線の値の第1の推定範囲を示し、前記パリティ残差値は、前記第1の推定範囲に隣接する前記スペクトル線の値の第2の推定範囲を示し、
前記スペクトル線は、前記第2の推定値範囲に基づいて推定される、
請求項29に記載の方法。
【請求項31】
パリティ値のシーケンスは、前記1つまたは複数のデータフレームに基づいて取得された量子化値のグループのシーケンスから計算される、請求項19に記載の方法。
【請求項32】
所定のパリティ値の前記シーケンスは、ウォーターマークとして使用される、請求項31に記載の方法。
【請求項33】
前記ウォーターマークは、前記1つまたは複数のデータフレーム内の1つまたは複数のパリティ残差値の存在を示す、請求項32に記載の方法。
【請求項34】
オーディオデータを圧縮するためのエンコーダであって、
オーディオ信号のデジタル化サンプルのシーケンスを受け取り、複数のスペクトル線を生成するために前記オーディオ信号のデジタル化サンプルの前記シーケンスを使用して変換を計算するように構成された変換計算デバイスと、
前記複数のスペクトル線からスペクトル線のグループを取得し、量子化値のグループを生成するためにスペクトル線の前記グループを量子化するように構成された量子化器と
を備え、
ここにおいて、前記量子化器は、スペクトル線の前記グループから選択されたスペクトル線に対する特殊な丸め演算を実行することによって、量子化値の前記グループを生成するためにスペクトル線の前記グループを量子化するように構成され、
ここにおいて、前記量子化器は、量子化値の前記グループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、前記特殊な丸め演算を使用するように構成され、
ここにおいて、前記量子化器は、量子化値の前記グループに基づいて1つまたは複数のデータフレームを出力するようにさらに構成される、
エンコーダ。
【請求項35】
前記量子化器は、前記選択されたスペクトル線に関連する丸め前の値に対する前記特殊な丸め演算を実行するように構成され、
前記丸め前の値は、浮動小数点値または固定小数点値を備え、
量子化値の前記グループは、整数または固定小数点値のグループを備える、
請求項34に記載のエンコーダ。
【請求項36】
前記特殊な丸め演算は、量子化値の前記グループについて計算された前記グループパリティ値を強制的に前記所定のパリティ値にするために、前記選択されたスペクトル線に関連する前記丸め前の値を丸めるために使用される丸め方向を反転させる、請求項35に記載のエンコーダ。
【請求項37】
前記選択されたスペクトル線は、スペクトル線の前記グループ内の他のスペクトル線と比較して、2つの最も近い考えられる量子化値の間の中間点までの最小距離を有する丸め前の値に関連するという理由で選択される、請求項36に記載のエンコーダ。
【請求項38】
前記選択されたスペクトル線は、より高い周波数のスペクトル線を選ぶ選択バイアスに基づいて選択される、請求項37に記載のエンコーダ。
【請求項39】
2つの最も近い考えられる量子化値の間の中間点までの第1の距離を有する第1の丸め前の値に関連する第1のスペクトル線と、2つの最も近い考えられる量子化値の間の中間点までの第2の距離を有する第2の丸め前の値に関連する第2のスペクトル線とがタイであるとき、前記第1の距離は、前記第2の距離に等しく、前記第1のスペクトル線は、前記第2のスペクトル線よりも高い前記変換の周波数ビンに関連するという理由で選択される、請求項38に記載のエンコーダ。
【請求項40】
スペクトル線の前記グループは、第1の周波数ビンおよび第1の丸め前の値に関連する第1のスペクトル線と、第2の周波数ビンおよび第2の丸め前の値に関連する第2のスペクトル線とを含み、
前記第1の周波数ビンは、前記第2の周波数ビンよりも高い前記変換の周波数ビンに対応し、
前記第1の丸め前の値は、2つの最も近い考えられる量子化値の間の第1の距離に対応し、前記第2の丸め前の値は、2つの最も近い考えられる量子化値の間の第2の距離に対応し、前記第2の距離は、前記第1の距離よりも小さく、
前記第1のスペクトル線は、前記第2のスペクトル線よりも選択される、
請求項38に記載のエンコーダ。
【請求項41】
前記1つまたは複数のデータフレームは、量子化値の前記グループに基づく符号語のグループを備える、請求項34に記載のエンコーダ。
【請求項42】
前記量子化器は、算術符号化を使用して、量子化値の前記グループから符号語の前記グループを生成するように構成される、請求項41に記載のエンコーダ。
【請求項43】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の少なくとも1つの量子化値について、丸め残差値をさらに備える、請求項41に記載のエンコーダ。
【請求項44】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の前記少なくとも1つの量子化値について、パリティ残差値をさらに備える、請求項43に記載のエンコーダ。
【請求項45】
前記量子化器は、前記1つまたは複数のデータフレーム内のパディングビットの代わりに前記丸め残差値および前記パリティ残差値を挿入するように構成される、請求項44に記載のエンコーダ。
【請求項46】
前記量子化器は、前記複数のスペクトル線からのスペクトル線のグループのシーケンスから量子化された量子化値のグループのシーケンスを強制的に、所定のパリティ値のシーケンスを有するようにするために、前記特殊な丸め演算を使用するように構成される、請求項35に記載のエンコーダ。
【請求項47】
オーディオデータを復元するためのデコーダであって、
1つまたは複数のデータフレームを受信し、前記1つまたは複数のデータフレームに基づいて量子化値のグループを取得するように構成された逆量子化器と、ここにおいて、量子化値の前記グループは、量子化値の前記グループについて計算されたパリティ値を強制的に所定のパリティ値にするために、スペクトル線に対して実行される特殊な丸め演算を含む圧縮側の量子化プロセスから生じる、
ここにおいて、前記逆量子化器は、量子化値の前記グループについての受信側パリティ値を計算するようにさらに構成され、
ここにおいて、前記逆量子化器は、前記計算された受信側パリティ値を、量子化値の前記グループについての前記所定のパリティ値と比較するようにさらに構成され、
ここにおいて、前記逆量子化器は、前記計算された受信側パリティ値と、量子化値の前記グループについての前記所定のパリティ値との間の差を検出したことに応答して、前記1つまたは複数のデータフレーム内の少なくとも1つのビットエラーを検出または訂正するために、ビットエラー演算を実行するようにさらに構成され、
ここにおいて、前記逆量子化器は、前記1つまたは複数のデータフレーム内の前記少なくとも1つのビットエラーの検出または訂正を考慮して、量子化値の前記グループに基づいてスペクトル線のグループを推定するようにさらに構成され、
オーディオ信号のデジタル表現として、デジタル化サンプルのシーケンスを生成し出力するために、スペクトル線の前記グループを含む複数のスペクトル線を使用して逆変換を実行するように構成された逆変換計算デバイスと
を備える、デコーダ。
【請求項48】
前記1つまたは複数のデータフレームは、符号語のグループを備え、
前記ビットエラー演算は、符号語の前記グループ内の少なくとも1つのビットエラーを検出または訂正するために実行される、
請求項47に記載のデコーダ。
【請求項49】
前記逆量子化器は、
符号語の前記グループの複数の送信を取得することと、
符号語の前記グループの複数の再構成されたバージョンを生成することと、
(1)符号語の前記グループの1つの再構成されたバージョンに関連する前記計算された受信側パリティ値と、(2)前記所定のパリティ値との間の整合に基づいて、符号語の前記グループの前記複数の再構成されたバージョンから符号語の前記グループの前記1つの再構成されたバージョンを選択することと
によって、符号語の前記グループ内の前記少なくとも1つのビットエラーを訂正するように構成される、請求項48に記載のデコーダ。
【請求項50】
前記逆量子化器は、符号語の前記グループの前記複数の送信を比較することによって、考えられるビットエラーの位置を示す弱いビットマスクを生成するように構成され、
前記逆量子化器は、前記弱いビットマスクによって示される前記ビット位置のうちの1つにおけるビットを変更することによって、符号語の前記グループの前記複数の再構成されたバージョンの各々を再構成するように構成される、
請求項49に記載のデコーダ。
【請求項51】
前記逆量子化器は、算術復号を使用して符号語の前記グループから整数の前記グループを生成するように構成される、請求項48に記載のデコーダ。
【請求項52】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の少なくとも1つの量子化値について、丸め残差値をさらに備える、請求項48に記載のデコーダ。
【請求項53】
前記1つまたは複数のデータフレームは、量子化値の前記グループ内の前記少なくとも1つの量子化値について、パリティ残差値をさらに備える、請求項52に記載のデコーダ。
【請求項54】
前記逆量子化器は、前記1つまたは複数のデータフレーム内のパディングビットの位置から前記丸め残差値および前記パリティ残差値を抽出するように構成される、請求項53に記載のデコーダ。
【請求項55】
前記逆量子化器は、前記丸め残差値および前記パリティ残差値を考慮することによって、解像度が向上した状態でスペクトル線の前記グループからスペクトル線を推定するように構成される、請求項53に記載のデコーダ。
【請求項56】
前記丸め残差値は、前記スペクトル線の値の第1の推定範囲を示し、前記パリティ残差値は、前記第1の推定範囲に隣接する前記スペクトル線の値の第2の推定範囲を示し、
前記逆量子化器は、前記第2の推定値範囲に基づいて前記スペクトル線を推定するように構成される、
請求項55に記載のデコーダ。
【請求項57】
1つまたは複数の処理ユニットによる実行のための命令を記憶する非一時的コンピュータ可読媒体であって、
オーディオ信号のデジタル化サンプルのシーケンスを取得することと、
複数のスペクトル線を生成するために、デジタル化サンプルの前記シーケンスを使用して変換を実行することと、
前記複数のスペクトル線からスペクトル線のグループを取得することと、
量子化値のグループを生成するためにスペクトル線の前記グループを量子化することと
を行う命令を備え、
ここにおいて、量子化値の前記グループを生成するためにスペクトル線の前記グループを量子化する前記命令は、
スペクトル線の前記グループから選択されたスペクトル線に対する特殊な丸め演算を実行することと、
量子化値の前記グループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、前記特殊な丸め演算を使用することと、
量子化値の前記グループに基づいて1つまたは複数のデータフレームを出力することと
を行う命令を備える、非一時的コンピュータ可読媒体。
【請求項58】
1つまたは複数の処理ユニットによる実行のための命令を記憶する非一時的コンピュータ可読媒体であって、
1つまたは複数のデータフレームを取得することと、
前記1つまたは複数のデータフレームに基づいて量子化値のグループを取得することと、ここにおいて、量子化値の前記グループは、量子化値の前記グループについて計算されたパリティ値を強制的に所定のパリティ値にするために、スペクトル線に対して実行される特殊な丸め演算を含む圧縮側の量子化プロセスから生じる、
量子化値の前記グループについて、受信側パリティ値を計算することと、
前記計算された受信側パリティ値を、量子化値の前記グループについての前記所定のパリティ値と比較することと、
前記計算された受信側パリティ値と、量子化値の前記グループについての前記所定のパリティ値との間の差を検出したことに応答して、前記1つまたは複数のデータフレーム内の少なくとも1つのビットエラーを検出または訂正するために、ビットエラー演算を実行することと、
前記1つまたは複数のデータフレーム内の前記少なくとも1つのビットエラーの検出または訂正を考慮して、量子化値の前記グループに基づいて、スペクトル線のグループを推定することと、
デジタル化サンプルのシーケンスを生成するために、スペクトル線の前記グループを含む複数のスペクトル線を使用して逆変換を実行することと、
デジタル化サンプルの前記シーケンスを、オーディオ信号のデジタル表現として出力することと
を行う命令を備える、非一時的コンピュータ可読媒体。
【請求項59】
オーディオデータを圧縮するためのシステムであって、
オーディオ信号のデジタル化サンプルのシーケンスを取得するための手段と、
複数のスペクトル線を生成するために、デジタル化サンプルの前記シーケンスを使用して変換を実行するための手段と、
前記複数のスペクトル線からスペクトル線のグループを取得するための手段と、
量子化値のグループを生成するためにスペクトル線の前記グループを量子化するための手段と、
ここにおいて、量子化値の前記グループを生成するためにスペクトル線の前記グループを量子化するための前記手段は、
スペクトル線の前記グループから選択されたスペクトル線に対する特殊な丸め演算を実行するための手段と、
量子化値の前記グループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、前記特殊な丸め演算を使用するための手段と
を備え、
量子化値の前記グループに基づいて1つまたは複数のデータフレームを出力するための手段と
を備える、システム。
【請求項60】
オーディオデータを復元するためのシステムであって、
1つまたは複数のデータフレームを取得するための手段と、
前記1つまたは複数のデータフレームに基づいて量子化値のグループを取得するための手段と、ここにおいて、量子化値の前記グループは、量子化値の前記グループについて計算されたパリティ値を強制的に所定のパリティ値にするために、スペクトル線に対して実行される特殊な丸め演算を含む圧縮側の量子化プロセスから生じる、
量子化値の前記グループについて、受信側パリティ値を計算するための手段と、
前記計算された受信側パリティ値を、量子化値の前記グループについての前記所定のパリティ値と比較するための手段と、
前記計算された受信側パリティ値と、量子化値の前記グループについての前記所定のパリティ値との間の差を検出したことに応答して、前記1つまたは複数のデータフレーム内の少なくとも1つのビットエラーを検出または訂正するために、ビットエラー演算を実行するための手段と、
前記1つまたは複数のデータフレーム内の前記少なくとも1つのビットエラーの検出または訂正を考慮して、量子化値の前記グループに基づいて、スペクトル線のグループを推定するための手段と、
デジタル化サンプルのシーケンスを生成するために、スペクトル線の前記グループを含む複数のスペクトル線を使用して逆変換を実行するための手段と、
デジタル化サンプルの前記シーケンスを、オーディオ信号のデジタル表現として出力するための手段と
を備える、システム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] 本開示の態様は、オーディオデータ(audio data)の圧縮(compression)および復元(decompression)に関する。オーディオ信号(audio signal)用の現代のエンコーダ(encoder)およびデコーダ(decoder)は、概して、オーディオデータの不可逆圧縮/復元(lossy compression/decompression)のための効率的な変換ベースの技法を採用する。たとえば、いくつかのコーデックエンコーダ(codec encoder)およびデコーダは、修正離散コサイン変換(MDCT:modified discrete cosine transform)などの変換(transform)に基づいている。符号化された出力は、概して、送信チャネルまたは記憶チャネルなどのチャネルに提供される。チャネルの反対側では、元のオーディオ信号の再生を生成するために、符号化された出力が復号される。チャネルは、典型的には、ノイズに結合され、ビットエラー(bit error)をもたらす可能性があり、ビットエラーは、再生されたオーディオ信号の品質を低下させる可能性がある。そのようなビットエラーを除去するための1つの手法は、符号化された出力を再送信することである。しかしながら、再送信(re-transmission)は遅延(delay)に関連しており、遅延は、特に、ビデオ会議、マルチメディアストリーム、音声通話などのコンテキストにおけるライブオーディオ送信などのアプリケーションには望ましくない。さらに、オーディオデータの圧縮および復元のための規格がすでに存在する。既存の規格を組み込んだ多くのデバイス(device)が、すでにこの分野に展開されている。まったく新しい圧縮/復元方式を採用する新しいデバイスは、そのような既存のデバイスと相互動作することができない可能性があり、このことが、新しい圧縮/復元方式の有用性を低下させる。したがって、好ましくは、既存のオーディオデータ圧縮/復元規格を実装するデバイスに適合する方法で、オーディオデータの圧縮および復元におけるビットエラーおよびレイテンシ(latency)を低減させるための改善された技法が著しく必要とされている。
【発明の概要】
【0002】
[0002] いくつかの実施形態が、オーディオデータを圧縮するための技法に関して、詳細にはストリーム適合ビットエラー耐性(stream conformant bit error resilience)に関して説明される。ストリーム適合技法(stream conformant technique)は、ストリームの性質または構造を変化させることなく、符号化されたオーディオデータのストリームを変更することがあり、したがって、ストリームを決定する仕様に基づく任意のデコーダ実装形態がそのストリームを復号することを可能にする。ビットエラー耐性(Bit error resilience)とは、エラーを検出し、エラーを訂正する能力などの、ビットエラーに対する耐性がある能力を指す。様々な実施形態によれば、データ圧縮技法は、オーディオ信号のデジタル化サンプル(digitized sample)のシーケンス(sequence)を取得することと、複数のスペクトル線(spectral line)を生成するためにデジタル化サンプルのシーケンスを使用して変換を実行することと、複数のスペクトル線(a plurality of spectral lines)からスペクトル線のグループ(a group of spectral lines)を取得することと、量子化値(quantized value)のグループを生成するためにスペクトル線のグループを量子化することとを備え得る。量子化値のグループを生成するためにスペクトル線のグループを量子化することは、スペクトル線のグループから選択されたスペクトル線(spectral line)に対する特殊な丸め演算(specialized rounding operation)を実行することと、量子化値のグループについて計算されたグループパリティ値(group parity value)を強制的に所定のパリティ値(predetermined parity value)にするために、特殊な丸め演算を使用することとを備え得る。データ圧縮技法は、量子化値のグループに基づいて1つまたは複数のデータフレーム(data frame)を出力することをさらに備え得る。
【0003】
[0003] 特殊な丸め演算は、選択されたスペクトル線に関連する丸め前の値(pre-rounding value)に対して実行され得る。丸め前の値は、浮動小数点値(floating-point value)または固定小数点値(fixed-point value)を備え得る。量子化値のグループは、整数(integer)または固定小数点値のグループを備え得る。特殊な丸め演算は、量子化値のグループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、選択されたスペクトル線に関連する丸め前の値を丸めるために使用される丸め方向(rounding direction)を反転(flip)させ得る。
【0004】
[0004] 選択されるスペクトル線は、スペクトル線のグループ内の他のスペクトル線と比較して、2つの最も近い考えられる量子化値(two nearest possible quantized values)間の中間点(midpoint)までの最小距離(minimal distance)を有する丸め前の値に関連するという理由で選択され得る。選択されるスペクトル線は、より高い周波数のスペクトル線(higher frequency spectral line)を選ぶ選択バイアス(selection bias)に基づいて選択され得る。たとえば、2つの最も近い考えられる量子化値の間の中間点までの第1の距離(first distance)を有する第1の丸め前の値(first pre-rounding value)に関連する第1のスペクトル線(first spectral line)と、2つの最も近い考えられる量子化値の間の中間点までの第2の距離(second distance)を有する第2の丸め前の値(second pre-rounding value)に関連する第2のスペクトル線(second spectral line)とがタイ(tie)であるとき、第1の距離は、第2の距離に等しく、第1のスペクトル線は、第2のスペクトル線よりも高い変換の周波数ビン(frequency bin)に関連するという理由で選択され得る。
【0005】
[0005] 一実施形態では、スペクトル線のグループは、第1の周波数ビン(first frequency bin)および第1の丸め前の値に関連する第1のスペクトル線と、第2の周波数ビン(second frequency bin)および第2の丸め前の値に関連する第2のスペクトル線とを含み得る。第1の周波数ビンは、第2の周波数ビンよりも高い変換の周波数ビンに対応し得る。第1の丸め前の値は、2つの最も近い考えられる量子化値の間の第1の距離に対応することがあり、第2の丸め前の値は、2つの最も近い考えられる量子化値の間の第2の距離に対応することがあり、第2の距離は、第1の距離よりも小さい。とはいえ、第1のスペクトル線は、第2のスペクトル線よりも選択され得る。
【0006】
[0006] 1つまたは複数のデータフレームは、量子化値のグループに基づく符号語のグループ(a group of codewords)を備え得る。符号語のグループは、算術符号化(arithmetic encoding)を使用して量子化値のグループから生成され得る。1つまたは複数のデータフレームは、量子化値のグループ内の少なくとも1つの量子化値について、丸め残差値(rounding residual value)をさらに備え得る。1つまたは複数のデータフレームは、量子化値のグループ内の少なくとも1つの量子化値について、パリティ残差値(parity residual value)をさらに備え得る。丸め残差値およびパリティ残差値は、1つまたは複数のデータフレーム内のパディングビット(padding bit)の代わりに挿入され得る。
【0007】
[0007] 複数のスペクトル線からのスペクトル線のグループのシーケンスから量子化された量子化値のグループのシーケンスが、強制的に所定のパリティ値のシーケンスを有するようにするために、特殊な丸め演算が使用され得る。所定のパリティ値のシーケンスは、ウォーターマーク(watermark)として使用され得る。ウォーターマークは、特殊な丸め演算の使用を示し得る。ウォーターマークは、1つまたは複数のデータフレーム内の1つまたは複数のパリティ残差値の存在を示すこともある。さらに、ウォーターマークは、オーディオデータを圧縮するための方法を実装するデバイス(device)の特定のプロバイダ(specific provider)に関連付けられ得る。
【0008】
[0008] 1つまたは複数のデータフレームは、オーディオデータ圧縮(audio data compression)のための既存の規格(existing standard)との互換性(compatibility)を維持し得る。
【0009】
[0009] いくつかの実施形態はまた、オーディオデータを復元するための技法に関して説明される。データ復元技法は、1つまたは複数のデータフレームを取得することと、1つまたは複数のデータフレームに基づいて量子化値のグループを取得することと、ここにおいて、量子化値のグループは、量子化値のグループについて計算されたパリティ値を強制的に所定のパリティ値にするためにスペクトル線上で実行される特殊な丸め演算を含む圧縮側の量子化プロセス(compression-side quantization process)から生じる、量子化値のグループについての受信側パリティ値を計算することと、計算された受信側パリティ値(computed receive-side parity value)を量子化値のグループについての所定のパリティ値と比較することと、計算された受信側パリティ値と量子化値のグループについての所定のパリティ値との間の差を検出したことに応答して、1つまたは複数のデータフレーム内の少なくとも1つのビットエラーを検出または訂正するためのビットエラー演算(bit error operation)を実行することと、1つまたは複数のデータフレーム内の少なくとも1つのビットエラーの検出(detection)または訂正(correction)を考慮して、量子化値のグループに基づいてスペクトル線のグループを推定することと、デジタル化サンプルのシーケンスを生成するために、スペクトル線のグループを含む複数のスペクトル線を使用して逆変換(inverse transform)を実行することと、オーディオ信号のデジタル表現(digital representation)としてデジタル化サンプルのシーケンスを出力することと備え得る。1つまたは複数のデータフレームは、符号語のグループを備えることがあり、ビットエラー演算は、符号語のグループの複数の送信を利用することによって、符号語のグループ内の少なくとも1つのビットエラーを検出または訂正するために実行され得る。符号語のグループ内の少なくとも1つのビットエラーは、符号語のグループの複数の送信を取得し、符号語のグループの複数の再構成されたバージョン(reconstructed version)を生成し、(1)符号語のグループの1つの再構成されたバージョンに関連する計算された受信側パリティ値と、(2)所定のパリティ値との間の整合に基づいて、符号語のグループの複数の再構成されたバージョンから符号語のグループの1つの再構成されたバージョンを選択することによって訂正され得る。
【0010】
[0010] 考えられるビットエラー(possible bit error)の位置(position)を示す弱いビットマスク(weak bit mask)は、符号語のグループの複数の送信を比較することによって生成され得る。符号語のグループの複数の再構成されたバージョンの各々は、弱いビットマスクによって示されるビット位置(bit position)のうちの1つにおけるビットを変更することによって再構成され得る。符号語のグループの複数の送信は、(1)符号語のグループの元の送信と、(2)符号語のグループの1つまたは複数の再送信とを備え得る。1つまたは複数のデータフレームは、符号語のグループについての1つまたは複数の巡回冗長検査(CRC)値を含み得る。符号語のグループの1つまたは複数の再送信の各々は、符号語のグループの以前の送信に関連する失敗したCRCによってトリガされ得る。量子化値のグループは、算術復号(arithmetic decoding)を使用して符号語のグループから生成され得る。1つまたは複数のデータフレームは、量子化値のグループ内の少なくとも1つの量子化値について、丸め残差値をさらに備え得る。1つまたは複数のデータフレームは、量子化値のグループ内の少なくとも1つの量子化値について、パリティ残差値をさらに備え得る。丸め残差値およびパリティ残差値は、1つまたは複数のデータフレーム内のパディングビットの位置から抽出され得る。丸め残差値およびパリティ残差値を考慮することによって、スペクトル線のグループからのスペクトル線が、解像度(resolution)が向上した状態で推定され得る。丸め残差値は、スペクトル線の値の第1の推定範囲(first estimated range)を示すことがあり、パリティ残差値は、第1の推定範囲に隣接するスペクトル線の値の第2の推定範囲(second estimated range)を示すことがある。スペクトル線は、第2の推定値範囲(second estimated range of values)に基づいて推定され得る。
【0011】
[0011] 本開示の態様は、例として説明される。
【図面の簡単な説明】
【0012】
【
図1】[0012] 本開示の1つまたは複数の実施形態を組み込み得るシステム(system)の簡略図。
【
図2】[0013] 本開示の様々な実施形態によるコーデックエンコーダ(codec encoder)のブロック図。
【
図3】[0014] 本開示の一実施形態による量子化器ユニット(quantizer unit)のいくつかの内部構成要素の例を示す図。
【
図4】[0015] 標準的な丸めルールを使用して実行されるスペクトル線量子化から生じる量子化誤差の例を示す表。
【
図5】[0016] 本開示の一実施形態によるパリティ残差値の生成を示す表。
【
図6】[0017] 本開示の様々な実施形態によるコーデックデコーダのブロック図。
【
図7】[0018] 本開示の一実施形態による逆量子化器ユニット(de-quantizer unit)のいくつかの内部構成要素の例を示す図。
【
図8A】[0019] スペクトル線の考えられる量子化値を対応する符号語(codeword)にマッピングする例示的なコードブック(code book)を示す図。
【
図8B】[0020] チャネルの送信側が4つの異なる周波数ビンに対応する4つのスペクトル線をどのように量子化し得るかの詳細を示す表。
【
図9A】[0021] 本開示の一実施形態による、オーディオデータを圧縮するためのプロセスおよびサブプロセスを示すフローチャート。
【
図9B】[0022] 本開示の一実施形態による、オーディオデータを復元するためのプロセスを示すフローチャート。
【
図10】[0023]
図1~
図9に関連して本明細書で説明される実施形態において説明されるように利用され得る、ユーザ機器(「UE」)の一実施形態のブロック図。
【発明を実施するための形態】
【0013】
[0024] 次に、いくつかの例示的な実施形態が、本出願の一部を形成する添付の図面に関して説明される。本開示の1つまたは複数の態様が実装され得る特定の実施形態が以下で説明されるが、他の実施形態が使用されることがあり、本開示の範囲または添付の特許請求の範囲の趣旨から逸脱することなく、様々な修正が行われ得る。
【0014】
システム全体(Overall System)
[0025]
図1は、本開示の1つまたは複数の実施形態を組み込み得るシステム100の簡略図を示す。システム100は、送信側および受信側を備えるオーディオ信号伝搬の一方向経路を示す。一方向経路のみが示されているが、多くの適用例では、反対方向の別の経路が同時に実装され、その結果、双方向の構成になる。図示のように、システム100は、送信側に、マイクロフォン102と、サンプルおよびアナログデジタル(A/D)変換ユニット104と、コーデックエンコーダ106と、随意のチャネルエンコーダ108と、送信機110とを備える。送信機の出力は、送信チャネルまたは記憶チャネルを表し得るチャネル112に送られる。システム100は、受信側に、受信機114と、随意のチャネルデコーダ116と、コーデックデコーダ118と、デジタルアナログ(D/A)変換および信号再構成ユニット120と、スピーカー122とをさらに備える。
【0015】
[0026] 送信側で、マイクロフォン102は、環境からの音を捕捉し、音波をアナログ電気信号に変換する。アナログ電気信号は、サンプルおよびA/D変換ユニット104に送られ、このユニットは、サンプリング周波数に従ってアナログ電気信号をサンプリングし、パルスコード変調(PCM)などのサンプルおよび量子化方式を利用することによって各サンプルを量子化する。このことは、元のオーディオ信号を表すデジタル化サンプルをもたらす。サンプルおよびA/D変換ユニット104は、A/C変換の前および/または後に、信号にフィルタリングおよび他の信号調整技法を適用し得る。サンプルおよびA/D変換ユニット104は、デジタル化サンプルをコーデックエンコーダ106に送る。コーデックエンコーダ106は、圧縮されたデジタルデータを生成するために、デジタル化サンプルに対して不可逆圧縮を実行する。圧縮されたデジタルデータは、随意のチャネルエンコーダ108に送られ、チャネルエンコーダ108は、チャネルビットまたはシンボルを生成するために、圧縮されたデジタルデータを使用してチャネルコーディングを実行し得る。前方誤り訂正(FEC)コーディングを含む、様々なタイプのチャネルコーディング技法が実装され得る。随意のチャネルエンコーダ108は、チャネルビット/シンボルを送信機110に送る。代替的に、チャネルエンコーダが使用されない。その場合、圧縮されたデジタルデータは、いかなるチャネル符号化も実行することなく、送信機110に直接送られることがあり、圧縮されたデジタルデータは、チャネルビット/シンボルとして使用され得る。送信機110は、チャネル112に適した方法でチャネルビット/シンボルを処理する。たとえば、送信機110は、チャネルを介して変調されたキャリア信号を送る前に、チャネルビット/シンボルをキャリア信号に変調し得る。
【0016】
[0027] チャネル112は、送信チャネル、記憶チャネル、または他のチャネルを表すことがある。送信チャネルは、オーバージエアチャネルなどのワイヤードチャネルまたはワイヤレスチャネルであり得る。送信機110は、オーバージエアで変調されたキャリア信号を送るために、送信アンテナを使用し得る。記憶チャネルは、チャネルビット/シンボルが「書き込まれ」、後に取り出され得る記憶媒体を備え得る。たとえば、送信機110は、チャネルビット/シンボルを記憶媒体に書き込むために書込みデバイスを利用することがあり、ここで、チャネルビット/シンボルは保持され得る。チャネル112は、チャネルビット/シンボルを、ノイズ、干渉、および他の劣化にさらし、エラーをもたらすことがある。
【0017】
[0028] 受信側では、受信機114は、チャネル112からチャネルビット/シンボルを受信する。受信機114は、受信されたチャネルビット/シンボルを生成するために、チャネル112から受信された信号を復調するか、またはさもなければ処理する。たとえば、受信機114は、変調されたキャリア信号を受信するためにアンテナを利用し、受信されたチャネルビット/シンボルを生成するために復調を実行し得る。別の例では、受信機114は、記憶チャネルとしてのチャネル112からチャネルビット/シンボルを読み取るためのリーディングデバイスを利用し得る。受信されたチャネルビット/シンボルは、随意のチャネルデコーダ116に送られ、このデコーダは、受信されたチャネルビット/シンボルを圧縮されたデジタルデータに変換するために、チャネル復号、たとえばFEC復号を実行し得る。圧縮されたデジタルデータは、コーデックデコーダ118に送られる。代替的に、チャネルデコーダが使用されない。その場合、チャネルビット/シンボルは、いかなるチャネル復号も実行することなく、コーデックデコーダ118に直接送られ、チャネルビット/シンボルは、圧縮されたデジタルデータとして使用され得る。コーデックデコーダ118は、オーディオデータのデジタル化サンプルを生成するために、圧縮されたデジタルデータに対する復元を実行する。デジタル化サンプルは、D/Aおよび再構成ユニット120に送られ、このユニットは、アナログ電気信号を生成するために、フィルタリングおよび/またはインタプリトなどのデジタルアナログ変換および再構成を実行する。アナログ電気信号はスピーカー122に送られ、スピーカーは、アナログ電気信号に基づいて、音波を生成してそれを環境内に投射し得る。
【0018】
DCT/MDCT変換(DCT/MDCT Transform)
[0029]
図2は、本開示の様々な実施形態によるコーデックエンコーダ106のブロック図を示す。図示のように、コーデックエンコーダ106は、離散コサイン変換(DCT)エンコーダ202と、量子化器ユニット204とを備える。デジタル化サンプルは、たとえば、
図1に示されたサンプルおよびA/D変換ユニット104から取得され、DCTエンコーダ202に送られる。DCTエンコーダが示されているが、他の実施形態では、異なるタイプの変換に基づく変換エンコーダが使用され得る。DCTエンコーダ202は、デジタル化されたオーディオデータを時間領域から周波数領域に変換するために、デジタル化サンプルに対するDCT変換を実行する。DCT変換の出力は、本明細書では概して「スペクトル線(spectral line)」と呼ばれる変換係数(transform coefficient)を備える。各スペクトル線は、対応する周波数ビン内のデジタル化されたオーディオデータの大きさを反映する数値を備える。周波数ビンの数は、実装形態に応じて異なることがある。いくつかの実施形態では、DCTエンコーダ202は、各変換演算において最高400個のスペクトル線(すなわち、400個の異なる周波数ビンについて)を生成する。
【0019】
[0030] 実際には、DCTエンコーダ202は、デジタル化サンプルの時間制限されたブロックに対してそのような変換演算を実行する。いくつかの実施形態では、デジタル化サンプルの連続するブロックは、時間的に重複し得る。DCTエンコーダ202は、たとえば、デジタル化サンプルの各ブロックについて最高400個の(またはそれよりも多い)スペクトル線を生成するために、デジタル化サンプルの各ブロックに対して変換演算を実行し得る。DCTエンコーダ202は、スペクトル線の第1のセット、スペクトル線の第2のセット、スペクトル線の第3のセットなどを生成するために、デジタル化サンプルの第1のブロック、次いで、デジタル化サンプルの第2のブロック、次いで、デジタル化サンプルの第3のブロックなどについてそのような演算を実行し得る。
【0020】
[0031] ほんの一例として、修正離散コサイン変換(MDCT)の実装形態が以下で説明される。ここで、ブロックtについて、N個のスペクトル線Xt(m);m=0,...,N-1を計算するために、2N個の時間領域サンプルxt(k),k=0,...,2N-1が使用される。この例では、2つの後続のブロックが50%だけ重複しているので、各ブロックは、N個の新しい時間領域サンプルを処理する。デジタル化サンプルの重複ブロックを平滑化するために、窓かけ関数w(k),k=0,...,2N-1が使用され得る。この例におけるMDCTは、以下のように表され得る。
【0021】
【0022】
[0032] 本開示では、「スペクトル線」という用語は、概して、オーディオ信号に基づく変換出力を指し、上記の式1の例として提供される特定の定義に限定されない。DCT変換またはMDCT変換のために、スペクトル線の他の定義が採用されることがある。さらに、スペクトル線の他の定義が、非DCTタイプの変換に採用され得る。
【0023】
量子化およびデータフレームアセンブリ(Quantization and Data Frame Assembly)
[0033] 量子化器ユニット204は、DCTエンコーダ202からスペクトル線の各セットを取得し、圧縮されたオーディオデータを備えるデータフレームを生成する。量子化器ユニット204は、オーディオデータを圧縮するために、スペクトル線の各セットに対する量子化を実行する。量子化の程度が大きいほど、達成される圧縮は多い。「データフレーム」という用語は、本明細書では概して、圧縮されたオーディオデータの編成または構成を指すために使用される。データフレームは、圧縮されたオーディオデータがどのようにパケット化されるか、またはさもなければダウンストリーム搬送のためにどのように構成されるかに関係し得るが、必ずしも関係するとは限らない。本開示の特定の実施形態によるデータフレームの特定の例について説明されるが、データフレーム内の圧縮データの編成は、提示された実施形態に示されたフォーマットに制限される必要はない。量子化器ユニット204の例示的な演算は、以下でより詳細に説明される。
【0024】
[0034]
図3は、本開示の一実施形態による量子化器ユニット204のいくつかの内部構成要素の例を示す。量子化値を生成するために、スペクトル線を表す値を丸めることによって、量子化が実行される。丸める前の値は、「丸め前(pre-rounding)」の値と呼ばれることがある。いくつかの実施形態では、各丸め前の値は、浮動小数点値であってよい。他の実施形態では、各丸め前の値は、固定小数点値であってよい。丸めた後の値は、「量子化(quantized)」値と呼ばれることがある。いくつかの実施形態では、各量子化値は、整数であってよい。他の実施形態では、各量子化値は、固定小数点値であってよい。以下の例示的な例では、各丸め前の値は、浮動小数点値として示され、各量子化値は、整数として示される。しかしながら、パリティ要件を適用するのに丸めを活用するための本明細書に開示された技法は、固定小数点値として表される丸め前の値、および/または固定小数点値として表される量子化値に使用され得る。
図3に戻ると、量子化器ユニット204は、除算ユニット302と、丸めユニット304と、算術エンコーダ306とを備え得る。ここで、量子化器ユニット204は、量子化値を生成するために、グローバルゲインを使用して各スペクトル線をスケーリングし、次いで得られたゲイン調整後の値を丸めることによって量子化を実行するが、ゲイン調整後の値は、浮動小数点値として表され得る。ここで、各量子化値は整数である。たとえば、除算ユニット302にスペクトル線が送られ得る。グローバルゲイン値、たとえば10も、除算ユニット302に送られ得る。除算ユニット302は、除算演算を実行する。この例では、スペクトル線値が10で除算される。また、除算ユニット302は、ゲイン調整後のスペクトル線値を表す浮動小数点値を出力し得る。浮動小数点値は、丸めユニット304に送られ、丸めユニットは、整数値を生成するために、浮動小数点値に対して丸め演算を実行する。丸め演算は、標準的な丸めルールを使用して実行されることがあり、たとえば、浮動小数点値xを最も近い整数値yに丸める。浮動小数点値xが2つの整数値yとy+1との間のちょうど中間にある場合、タイの場合には常に切り上げ、すなわちy=x+0.5(または、タイの場合には常に切り捨て、すなわちy=x-0.5)などのタイブレークの規約が使用され得る。丸めユニット304は、浮動小数点値に対して丸め演算を実行することから生じる整数値を生成する。丸めユニット304はまた、丸め演算に関連する丸め残差値、およびパリティ残差値(後のセクションで説明される)を生成し得る。
【0025】
[0035]
図4は、標準的な丸めルールを使用して実行されるスペクトル線量子化から生じる量子化誤差の例を示す表400を示す。スペクトル線量子化の4つの例が示される。4つのスペクトル線は、それぞれ、値105、201、174、および139を有する。各スペクトル線値は、グローバルゲイン値10で除算される。除算は、10.5、20.1、17.4、および13.9の4つの浮動小数点値を生成する。4つの浮動小数点値は、それぞれ、値11、20、17、および14を有する4つの整数を生成するために、標準的な丸めルールを使用して丸めることを介して量子化される。各量子化は、それぞれ、0.5、0.1、0.4、および0.1である量子化誤差に関連付けられる。また、表400には、4つの丸め残差値が示されており、これらの丸め残差値は、それぞれ、-1、+1、+1、および-1である。-1または+1のいずれかの値として示される各丸め残差値は、丸め演算の結果として取得された整数値に対して、実際の浮動小数点値が実数線に沿って位置する方向を示す。言い換えれば、丸め残差値は、量子化値(すなわち、整数値)が実際の値(すなわち、浮動小数点値)よりも大きいかまたは小さいかを示す。各丸め残差値は、場合によっては、各整数値(または整数値を表す符号語)とともに、送信チャネルまたは記憶チャネルを通して送られ得る。そうすることは、量子化値に関する追加情報を提供し、これらの量子化値は、各スペクトル線がチャネルの反対側のコーデックデコーダにおいて再構成されるときに、各スペクトル線に余分の解像度を追加する。
【0026】
[0036]
図3に戻ると、スペクトル線を表す量子化値を生成するために量子化を実行した後、量子化ユニット204は、量子化値を符号化するためにソースコーディングを実行し得る。ソース符号化演算は、適切なソースコーディング方式に従って量子化値を符号語に変換し得る。本開示の一実施形態では、算術コードが、ソース符号化方式として使用される。算術コーディングとは、メッセージ全体を符号化して、小数値q(ここで、0.0≦q<1.0)を表すコード列にするコーディング方式のクラスを指す。コーディングアルゴリズムは、シンボルに関して再帰的であり、すなわち、反復または再帰ごとに1つのデータシンボルに対して演算し、それを符号化する(復号する)。再帰ごとに、このアルゴリズムは、数直線の間隔を0.0と1.0との間で連続的に分割し、分割部の1つを新しい間隔として保持する。シンボルのサブ間隔のサイズは、そのシンボルがメッセージ内の次のシンボルになる推定確率に比例する。
図3に示されているように、算術エンコーダ306は、丸めユニット304から、各々が量子化されたスペクトル線を表す量子化値を取得する。算術エンコーダ306は、量子化値に基づいて、符号化された符号語を出力する。各量子化値は、異なる発生確率を有し得るので、符号化された符号語(すなわち、コード列)の連結部の全長は可変である。固定長データフレームを形成するために(固定長データフレームが望まれる場合)、可変長算術コード列に、パディングビットが付加され得る。
【0027】
[0037]
図3は、量子化器ユニット204によるデータフレームの構成をさらに示す。図示の例では、データフレームは、各スペクトル線について、そのスペクトル線を表す量子化値に対応する算術的に符号化された符号語を備え得る。データフレームは、場合によっては、各スペクトル線について、スペクトル線上で実行される量子化に関連する丸め残差値を備え得る。丸め残差値は、+1または-1の値をとることがあり、これらの値は、それぞれ「1」ビットまたは「0」ビットを使用して表され得る。データフレーム内で余分のスペースが利用可能である場合(すなわち、パディングビットが存在する場合)、チャネルの受信側でスペクトル線の再構成に余分の解像度を提供するために、1つまたは複数のパディングビットの代わりに、丸め残差値が追加され得る。さらに、データフレームは、場合によっては、スペクトル線のグループについて、パリティ残差値を備え得る。以下のセクションは、そのようなパリティ残差値の生成についてより詳細に説明する。データフレームは、追加のパディングビットと、各スペクトル線についての正または負の符号を示す1つまたは複数の符号ビットと、データ圧縮演算において使用される様々な制御パラメータなどの情報を含み得るヘッダとをさらに備え得る。
【0028】
[0038]
図3に示された実施形態では、量子化器ユニット204は、量子化機能とデータフレーム構成機能の両方を実行する。他の実施形態では、データフレームを構成するために、量子化器ユニット以外の別のフレームアセンブリユニットが使用され得る。
【0029】
パリティを使用したエラー耐性(Error Resilience Using Parity)
[0039] 本開示の様々な実施形態に従って、量子化されたスペクトル線の各グループに低コストのパリティチェックを追加することによって、エラー耐性が提供される。低コストのパリティチェックは、スペクトル線のグループ内の1つのスペクトル線に対する特殊な丸め演算を利用することによって達成され得る。量子化されたスペクトル線のグループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、特殊な丸め演算が使用され得る。
【0030】
[0040] 再び
図4を参照すると、4つのスペクトル線の量子化が示されている。簡単な例では、スペクトル線のグループは、10.5、20.1、17.4、および13.9の浮動小数点値に対応するこれら4つのスペクトル線から成り得る。スペクトル線のグループから選択された1つの特定のスペクトル線を量子化するために、特殊な丸め演算が使用され得る。グループ内の残りのスペクトル線を量子化するために、標準的な丸め演算が使用され得る。選択されたスペクトル線に対する特殊な丸め演算のそのような使用は、量子化されたスペクトル線のグループ全体について計算されたパリティ値を強制的に所定の値にし得る。特殊な丸め演算は、浮動小数点数を丸めるために使用される丸め方向を反転させることによってこれを行う。すなわち、「切り捨てる」代わりに「切り上げる」(または「切り上げる」代わりに「切り捨てる」)ことを選択することによって、特殊な丸め演算は、得られた量子化値を、奇数整数の代わりに偶数整数(または偶数整数の代わりに奇数整数)となるように変更し、したがって、量子化されたスペクトル線のグループ全体について計算されたパリティ値の結果を反転させる。このようにして、グループパリティ値を強制的に所定の値(たとえば、「0」または「1」)にするために、特殊な丸め演算が使用され得る。
【0031】
[0041] たとえば、10.5の浮動小数点値を有するスペクトル線は、整数値11に丸められ(標準的な丸め演算に従って)、その結果、0.5の量子化誤差を生じ得る。グループパリティ値を強制的に特定の所定の値にするために、代わりに、10.5の浮動小数点値が(特別な丸め演算に従って)10に丸められた場合、量子化誤差は、依然として0.5である。したがって、10.5の浮動小数点値は、特殊な丸め演算を適用するための優れた候補である。この場合、標準的な丸め演算の代わりに特殊な丸め演算を使用することに関連する追加コストは0である。どちらにしても、丸め誤差は0.5である。
【0032】
[0042] 異なる例をとると、17.4の浮動小数点値を有するスペクトル線は、整数値17に丸められ(標準的な丸め演算に従って)、その結果、0.4の量子化誤差を生じ得る。グループパリティ値を強制的に特定の所定の値にするために、代わりに、浮動小数点値17.4が(特殊な丸め演算に従って)18に丸められた場合、量子化誤差は0.6となる。したがって、浮動小数点値17.4は、(10.5と比較して)特殊な丸め演算を適用するためのあまり望ましくない候補である。この場合、標準的な丸め演算の代わりに特殊な丸め演算を使用することに関連する余分のコストは、発生した量子化誤差の追加量、すなわち、0.4と0.6との間の差である0.2に対応する。
【0033】
[0043] 一実施形態によれば、2つの最も近い考えられる量子化値(この場合、2つの最も近い整数)間の中間点に浮動小数点値がグループ内の他のスペクトル線と比較して最も近いスペクトル線は、特殊な丸め演算が実行されるスペクトル線として選択される。言い換えれば、量子化が最大の量子化誤差につながるスペクトル線が、特殊な丸め演算を受けるために選択される。
図4に示された例示的なスペクトル線のグループでは、特殊な丸め演算を受けるために、最大の量子化誤差を有する浮動小数点値10.5を有するスペクトル線が選択され得る。
【0034】
[0044]
図4に示された4つのスペクトル線のグループについて、グループパリティ値は、4つの整数値11、20、17、14の合計のパリティ値として計算され得る。この合計は、「0」(すなわち、偶数パリティ)のグループパリティ値に対応する。グループパリティ値が強制的に「0」にされることが決定された場合、追加のステップは必要ない。しかしながら、グループパリティ値が強制的に「1」(すなわち奇数パリティ)にされることが決定された場合、最大の量子化誤差に関連する選択されたスペクトル線(この場合、浮動小数点値10.5を有するスペクトル線)に対して、特殊な丸め演算が実行され得る。ここでは、特殊な丸め演算は、浮動小数点値10.5を、整数値11の代わりに10に量子化する。これは、4つの量子化されたスペクトル線のグループ全体について計算されたグループパリティ値を「0」から「1」に反転させる。したがって、所望のグループパリティ値が達成される。
【0035】
[0045] 追加の実施形態によれば、特殊な丸め演算が実行される特定のスペクトル線の選択は、より高い周波数のスペクトル線を選ぶ選択バイアスを導入することによって、さらに洗練され得る。より高い周波数のスペクトル線に導入される丸め誤差は、より低い周波数のスペクトル線に導入される同じ大きさの丸め誤差と比較して、より良いオーディオ品質をもたらし得るので、このバイアスは、性能の改善につながり得る。特定の実施形態では、そのような周波数バイアスは、丸め誤差の大きさに基づく、前に説明したスペクトル線選択プロセスにおける「タイブレーカー」として機能することができる。
【0036】
[0046] スペクトル線のグループにおいて、第1のスペクトル線と第2のスペクトル線との間に、それらのそれぞれの丸め誤差の大きさに関してタイであると仮定されたい。たとえば、第1のスペクトル線は、10.6の浮動小数点値を有することがあり、第2のスペクトル線は、浮動小数点値8.6を有することがある。どちらの場合も、2つの最も近い考えられる量子化値(この場合は2つの最も近い整数)間の中間点(すなわち、それぞれ10.5と8.5)までの距離は0.1である。両スペクトル線は、2つの最も近い整数間の理想的な中間点に等しく近い。第1のスペクトル線および第2のスペクトル線は、同じ大きさの量子化誤差を有し、特殊な丸め演算が実行されるスペクトル線として選択されるためのより良い候補はどちらかに関してタイである。そのような状況では、タイブレークをするために、周波数バイアスが使用され得る。前述のように、MDCTなどの変換が実行されたとき、得られたスペクトル線は、周波数ビンに対応する。各スペクトル線は、変換の対応する周波数ビン内のデジタル化されたオーディオデータの大きさを反映する数値を備える。同じ例を続けると、第1のスペクトル線は、第1の周波数に対応するビンに関連付けられ、第2のスペクトル線は、第2の周波数に対応するビンに関連付けられる。周波数スペクトルに沿って第1の周波数が第2の周波数よりも高い場合、第1のスペクトル線は、特殊な丸め演算が実行される選択されるスペクトル線として、第2のスペクトル線よりも選択され得る。そのような技法は、グループパリティ値を強制するためのシステムをさらに改善し、より良いオーディオ性能をもたらすことができる。
【0037】
[0047] 他の例では、より高い周波数のスペクトル線を選ぶ選択バイアスが、より複雑な方法で導入され得る。いくつかの事例では、オーディオ性能全体を改善するために、より大きい丸め誤差に関連するがより高い周波数ビンに関連するスペクトル線が選択され得る。したがって、より高い周波数のスペクトル線を選択することに関連するオーディオ性能利得と、より低い丸め誤差の大きさのスペクトル線を選択することに関連する性能損失との間で、トレードオフが行われ得る。一実装形態では、そのような性能利得および性能損失は、具体的な値に定量化され、評価は、オーディオ性能のトレードオフを解決するために、そのような値に基づいて実行される。たとえば、第1のスペクトル線は、第1の周波数ビンと、2つの最も近い整数間の中間点から第1の距離にある第1の浮動小数点値とに関連付けられ得る。第2のスペクトル線は、第2の周波数ビンと、2つの最も近い考えられる量子化値間の中間点から第2の距離にある第2の浮動小数点値とに関連付けられ得る。周波数スペクトルにおいて、第1の周波数ビンは、第2の周波数ビンよりもΔfKHz高くてよい。しかしながら、第2の浮動小数点数は、第1の浮動小数点値と比較して、第1の浮動小数点数よりも、最も近い考えられる量子化値の間の理想的な中間値にΔM近くなることがある。たとえば、参照表を使用することによって、選択プロセスは、関連する周波数範囲において、ΔfKHzの周波数の差が、P1の丸めに関連するオーディオ性能の差に変換されることを決定し得る。同時に、別の参照表は、関連する周波数範囲において、ΔMの丸め誤差の差がP2のオーディオ性能の差に変換されることを明らかにし得る。P1>P2である場合、選択プロセスは、特殊な丸め演算が適用されるグループ内のスペクトル線として、第2のスペクトル線よりも第1のスペクトル線を選択し得る。そうでない場合、選択プロセスは、特殊な丸め演算が適用されるグループ内のスペクトル線として、第1のスペクトル線よりも第2のスペクトル線を選択し得る。
【0038】
[0048] 本開示のさらに追加の実施形態によれば、各グループのサイズ、すなわち各グループに含まれているスペクトル線の数は、競合する考慮事項のバランスに基づいてあらかじめ決定され選択され得る。一方では、グループサイズが小さいほど、提供されるビットエラー耐性保護はより大きい。これは、グループサイズが小さくなると生成される符号語が少なくなるためであり、このことは、グループパリティ値の知識を使用してビットエラーを検出または訂正するビット位置が少なくなることを意味する。したがって、グループパリティ値によってもたらされるビットエラー検出または訂正は、より大きいグループサイズを有するグループと比較して、より小さいグループサイズを有するグループについてはより強力であることが期待される。他方では、グループサイズが小さいほど、グループ内に大きい量子化誤差を見つける可能性が低くなる。したがって、より小さいグループサイズは、選択されたスペクトル線に対する特殊な丸め演算を使用することに関連する余分のコストがより大きくなり得ることを意味する。言い換えれば、グループサイズが小さいほど、ペナルティがほとんどまたはまったくない特殊な丸め演算を適用するための、
図4に示された浮動小数点値10.5を有するスペクトル線などの理想的な候補(または理想に近い候補)を見つける可能性が低くなる。
【0039】
[0049] 本明細書で開示されたビットエラー耐性技法を使用して生成されたデータフレームは、オーディオデータ圧縮(audio data compression)のための1つまたは複数の既存の規格(existing standard)との互換性を維持し得る。そのような既存の規格は、標準的な丸め演算のみを使用したスペクトル線の量子化に基づくことがある。たとえば、特定のグループパリティ値を強制するために特殊な丸め演算を使用して生成されたデータフレームは、「切り捨てる」代わりに「切り上げる」(または「切り上げる」代わりに「切り捨てる」)選択から生じる量子化値を有する1つの選択されたスペクトル線に関してのみ異なることがある。典型的には、これは、スペクトル線のグループ内の1つの選択されたスペクトル線についての量子化誤差の小さい差になる。標準的な丸め演算を使用する既存のオーディオデータ圧縮規格に従って構築されたコーデックデコーダは、本明細書で開示される強制されたグループパリティ値のための技法を組み込んだ送信機から発信されるデータフレームを受信し、それらを復元することができる。同様に、本明細書で開示される技法を組み込んだコーデックデコーダは、標準的な丸め演算を使用して、既存のオーディオデータ圧縮規格に従って構築された送信機から発信されたデータフレームを受信し、それを復元することがある。したがって、ビットエラー耐性のための本開示の技法は、既存のオーディオデータ圧縮規格に基づいて構築されたデバイスとの相互運用性を容易にし得る。
【0040】
[0050] 本明細書で開示されるビットエラー耐性技法の利益は、累積的なパリティに関係する。算術的に符号化されたストリームの特徴は、データが順番通りに読み込まれる必要があり得ることである。コーデックエンコーダにおいて使用される符号化方式は、エラーが発生したとき、符号化されたシンボル/符号語の長さの変化をもたらす可能性がある。これが起こったとき、エラー後のパリティチェックは、失敗する可能性がある。本明細書で開示されるパリティチェック方式は、スペクトル線の現在のグループの前のすべてのデータおよびそのグループを含むすべてのデータの完全性を保証し得る。したがって、パリティチェック方式は、最後のグループを除いて、スペクトル線の各グループにおける2つ以上のビットエラーを保護することができる。
【0041】
[0051] より一般的に言えば、パリティチェック方式は、スペクトル線以外の他のタイプの情報を含むデータのグループに適用され得る。データのグループが送られ、各グループ内に量子化される値が存在する限り、各グループにパリティ値を強制する特殊な丸めルールの使用が採用され得る。実際に、特殊な演算は、スペクトル線ではないが送られるデータのグループの一部であるデータに対して実行され得る。
【0042】
[0052] 上述の実施形態では、説明しやすいように、スペクトル線のスカラー量子化について説明された。他の実施形態では、より高度な量子化技法が利用され得る。たとえば、非線形量子化参照表、ベクトル量子化(たとえば、ピラミッドベクトル量子化)、合成による量子化、辞書ルックアップなどが、単純なスカラー量子化の代わりに使用され得る。より高度な量子化技法は、複雑さを追加することがあるが、たとえば、より良いオーディオ性能を提供するという点で、圧縮を改善することもある。ほんの一例として、ベクトル量子化の場合、k個のスペクトル線のシーケンスは、k次元のベクトル[x1,x2,...,xk]として見られ、n<kであるk次元のベクトル[y1,y2,...,yn]のセットから最も近いマッチングベクトルを選択することによって量子化され得る。開示されるパリティチェック方式は、そのような高度な量子化技法を使用して得られた量子化値に適用され得る。
【0043】
[0053] さらに、上述の実施形態では、説明しやすいように、スペクトル線量子化およびソースコーディング(すなわち、エントロピーコーディング)が、2つの別のステップとして説明された。他の実施形態では、スペクトル線量子化およびソース/エントロピーコーディングは、組み合わされたステップに併合され得る。たとえば、アルファベットを構成する有効な符号語のセットが作成され得る。スペクトル線値は、量子化値がアルファベットに反映されるように(たとえば、畳み込みコードの使用を通して)、符号語上に直接マッピングすることがある。符号語を構成しマッピングする際に、量子化誤差および周波数バイアスなどの量子化についての様々な考慮事項が考慮され得る。
【0044】
[0054] さらに、前述の実施形態では、偶数ビット値と奇数ビット値との間の選択に関してパリティが説明された。他の実施形態では、パリティは、複数の考えられるソース/エントロピー符号化シンボル(たとえば、符号語)の中から選択する選択肢として、より広く定義され得る。1つの特定のソース/エントロピー符号化シンボルを選択する選択肢は、強制されている「パリティ(parity)」を反映する。量子化誤差を最小化するソース/エントロピー符号化シンボルを選択し、周波数バイアスなどを達成し、さらに所望のパリティ値を維持するために、コスト関数が使用され得る。そのような技法は、ソース/エントロピーコーディング方式として、ハフマンコーディング、非対称数体系(ANS)コーディングなどを含む実装形態に好適であり得る。
【0045】
パリティ残差(Parity Residual)
[0055]
図5は、本開示の一実施形態によるパリティ残差値の生成を示す表500を示す。
図5に示された例は、グループパリティ値を強制するために、特殊な丸め演算を適用するための異なるスペクトル線が選択されるシナリオに基づく。たとえば、20.1、17.4、13.9、および12.3の浮動小数点値を有するスペクトル線の別のグループが考慮され得る。スペクトル線のこの別のグループでは、浮動小数点値を量子化することが、それぞれ、20、17、14、12の量子化値をもたらす。量子化誤差は、それぞれ、0.1、0.4、0.1、および0.3である。最も大きい量子化誤差を有するスペクトル線は、浮動小数点値17.4に対応するスペクトル線であり、これが特定の丸め演算が実行されるスペクトル線として選択される。量子化値20、17、14および12の合計は、「1」のグループパリティ値(すなわち、奇数パリティ)に対応する。グループパリティ値が「0」(すなわち、偶数パリティ)に強制されることが決定された場合、特殊な丸め演算は、浮動小数点値17.4に適用され得る。
【0046】
[0056]
図5を参照すると、標準的な丸め演算を使用して、浮動小数点値17.4は、量子化値17に丸められる。これは、0.4の量子化誤差と、+1の丸め残差値とに対応する。+1の丸め残差値は、実際の浮動小数点値が、量子化値17に対して、実数線に沿って正方向にあることを示す。具体的には、+1の丸め残差値は、そのスペクトル線についての推定範囲[17,17.5)を示す。チャネルの反対側のコーデックデコーダにおいて実行されるスペクトル線の再構成における追加の解像度をサポートするために、+1の丸め残差値がデータフレームに含まれ得る。
【0047】
[0057] しかしながら、グループパリティ値を強制的に「0」にするために、特殊な丸め演算が代わりに使用される。その結果、浮動小数点値17.4は、量子化値18に丸められる。これは、-1の丸め残差誤差を有する0.6の量子化誤差に対応する。-1の丸め残差値は、実際の浮動小数点値が、量子化値18に対して、実数線に沿って負方向にあることを示す。具体的には、-1の丸め残差値は、そのスペクトル線についての推定範囲[17.5,18)を示す。
【0048】
[0058]
図5には、パリティ残差値も示されている。0のパリティ残差値は、特殊な丸め演算が使用されていないことを示す。そのような場合、丸め残差によって示される推定範囲は有効なままである。対照的に、1のパリティ残差値は、特殊な丸め演算が使用されていることを示す。その場合、丸め残差によって示される推定範囲は、有効でなくなることがある。代わりに、1のパリティ残差値は、-1の丸め残差値とともに、スペクトル線についての新しい推定範囲[17,17.5)を示す。
【0049】
[0059] 新しい推定範囲の背後の論理は、次のように説明され得る。本実施形態によれば、-1の丸め残差値は、実際の浮動小数点値が、量子化値18に対して、実数線に沿って負方向にあることを示すにすぎない。言い換えれば、浮動小数点値は、量子化値18に達するように「切り上げられ」た。しかしながら、それ以上の情報がなければ、次に示すものの結果として、浮動小数点値が量子化値18に「切り上げられ」たかどうかは不明である。
【0050】
(1)標準的な丸め演算を使用した量子化。すなわち、この場合、浮動小数点数についての推定範囲は[17.5,18)になる。または、
(2)特殊な丸め演算を使用した量子化。すなわち、この場合、浮動小数点数についての推定範囲は[17,17.5)になる。
【0051】
[0060] パリティ残差値を知ることは、このあいまいさを解決する。具体的には、1のパリティ残差値は、特殊な丸め演算が使用されたことを示す。したがって、スペクトル線の値についての新しい推定範囲は、[17,17.5)であると決定される。上記は、スペクトル線の値の第1の推定範囲を示す丸め残差値、および第1の推定範囲に隣接するスペクトル線の値の第2の推定範囲を示すパリティ残差値の例を示した。
【0052】
[0061] 前に説明されたように、データフレームは、場合によっては、データフレームのパディングビット内に利用可能なスペースがあるかどうかに応じて、丸め残差値およびパリティ残差値の一方または両方を含み得る。
図5に示された例では、浮動小数点値17.4は、特殊な丸め演算を使用して量子化値18に丸められる。丸め残差値もパリティ残差値もデータフレームに含まれない場合、コーデックデコーダは、[17.5,18.5)の範囲に基づいてスペクトル線の値を推定することしかできないことがある。丸め残差値のみがデータフレームに含まれるが、パリティ残差値が含まれない場合、コーデックデコーダは、範囲[17.5,18)に基づいてスペクトル線の値を推定し得る。最後に、丸め残差値とパリティ残差値の両方がデータフレームに含まれる場合、コーデックデコーダは、[17,17.5)の範囲に基づいて、すなわち、より高い解像度でスペクトル線の値を推定し得る。
【0053】
ウォーターマーキング(Watermarking)
[0062] このようにして、量子化されたスペクトル線のグループのシーケンスは、所定のパリティ値のシーケンスを達成するためにパリティ調整され得る。たとえば、量子化されたスペクトル線のすべてのグループが、「0」のグループパリティ値(すなわち、偶数パリティ)を有するように強制されることが決定され得る。量子化されたスペクトル線のすべてのグループが「0」のグループパリティ値を有するように強制することによって、チャネルの送信側は、圧縮データ内のグループパリティ値(この例ではすべて「0」)の予想されるパターンを提供する。グループパリティ値の予想されるパターンの知識を有するチャネルの受信側は、以下のセクションにおいてより詳細に説明されるように、ビットエラーを検出または訂正するためにそのような知識を使用し得る。
【0054】
[0063] グループパリティ値の予想されるパターンは、ウォーターマークとして使用され得る。ウォーターマークは、様々な機能を果たし得る。一実施形態では、ウォーターマークは、特殊な丸め演算の使用を示す。そのようなウォーターマークを検出したことに応答して、チャネルの受信側は、ビットエラーを検出または訂正するためにグループパリティを利用し得る。追加または代替として、ウォーターマークは、データフレーム内の1つまたは複数のパリティ残差値の存在を示し得る。そのようなウォーターマークを検出したことに応答して、チャネルの受信側は、データフレームからパリティ残差値を取り出し、選択されたスペクトル線を追加の解像度で再構成するために、このパリティ残差値を使用し得る。追加または代替として、ウォーターマークは、オーディオデータ圧縮方法の特定のプロバイダに関連付けられ得る。そのようなウォーターマークの存在は、ウォーターマークを有する圧縮されたオーディオデータを生成するデバイスの製造元または設計元を示し得る。
【0055】
データフレームの逆アセンブルおよび逆量子化(Data Frame De-assembly and De-quantization)
[0064]
図6は、本開示の様々な実施形態によるコーデックデコーダ118のブロック図を示す。図示のように、コーデックデコーダ118は、逆量子化器ユニット602と、逆離散コサイン変換(逆DCT)ユニット604とを備える。データフレームは、たとえば、
図1に示された随意のチャネルデコーダ116から取得され、逆量子化器ユニット602に送られる。代替的に、チャネルデコーダが実装されない場合、データフレームは、
図1に示された受信機114から直接取得され得る。逆量子化器ユニット602は、圧縮されたオーディオデータを備えるデータフレームを取得し、スペクトル線のセットを生成する。逆量子化器ユニット602のより詳細な説明が以下に示される。
【0056】
[0065]
図7は、本開示の一実施形態による逆量子化器ユニット602のいくつかの内部構成要素の例を示す。図示のように、逆量子化器ユニット602は、算術デコーダ702と、スペクトル推定器704とを備え得る。逆量子化器ユニット602は、圧縮されたオーディオデータを表すスペクトル線のセットを推定するために、各データフレームからデータの様々な部分を抽出する。算術的に符号化された符号語は、データフレームから抽出され、算術デコーダ702に転送され得る。算術デコーダ702は、符号語を量子化値(たとえば、整数または固定小数点数)に変換する。各量子化値は、量子化されたスペクトル線を表し得る。
【0057】
[0066] 逆量子化を実行する前に、逆量子化器ユニット602は、ビットエラーを検出または訂正するために、量子化値の各グループについてのグループパリティ値の知識を利用し得る。具体的には、逆量子化器ユニット602は、データフレームから取得された量子化値のグループについて受信側パリティ値を計算し得る。逆量子化器ユニット602は、量子化値のグループについての受信側パリティ値を、量子化値のグループについての既知の所定のパリティ値と比較し得る。逆量子化器ユニット602は、量子化値のグループについての計算された受信側グループパリティ値と、量子化値のグループについての所定のグループパリティ値との間の差を検出したことに応答して、データフレーム内の少なくとも1つのビットエラーを検出または訂正するために、1つまたは複数のビットエラー演算を実行し得る。
【0058】
ビットエラーの検出および訂正(Bit Error Detection and Correction)
[0067]
図8Aおよび
図8Bは、本開示の一実施形態による、グループパリティ値を使用するエラー検出および訂正の簡略化された例を示す。ここでは、4つの量子化されたスペクトル線のグループが、所定のグループパリティ値とともに送られる。
図8Aは、スペクトル線の考えられる量子化値を対応する符号語にマッピングする例示的なコードブック800を示す。説明しやすいように、固定長符号語が示される。異なる実装形態では、算術コードの場合に前述したように、可変長符号語が使用され得る。特に、符号語の長さは、各符号語の発生確率に基づいて変化し得る。コードブック800は、4つの考えられる量子化されたスペクトル線値、すなわち、整数8、4、11、および14にそれぞれ対応する4つの符号語0x42、0x67、0xC3、および0xD3を含んでいる。
図8Bは、チャネルの送信側が4つの異なる周波数ビンに対応する4つのスペクトル線をどのように量子化するかの詳細を示す表810を示す。各スペクトル線は、コードブック800に見つけられる4つの考えられる量子化値8、4、11、または14のうちの1つに量子化される。各スペクトル線について、表810は、グローバルゲインと、グローバルゲインによる除算後の値と、量子化値と、パリティを強制するための新しい量子化値と、符号語と、符号語のバイナリバージョンとを示す。さらに、表810は、4つの量子化値(すなわち、整数)の列の合計が33であり、奇数パリティを有することを示す。また、表810は、グループパリティが34であることを強制する4つの新しい量子化値の列の合計を示しており、これは偶数パリティである。
【0059】
[0068] ここでは、所定のグループパリティ値が「0」(すなわち、偶数パリティ)であると仮定される。すなわち、チャネルの送信側では、グループパリティ値は、強制的に偶数パリティにされる。表810に見られるように、10.5の浮動小数点値を有するスペクトル線は、グループパリティ値を強制的に偶数パリティにするために、特殊な丸め演算用に選択される。浮動小数点値10.5を丸めて量子化値10にする代わりに、浮動小数点値は、新しい量子化値11に丸められる。これは、4つの新しい量子化値の合計を強制的に34にし、この合計は、偶数パリティを有し、所定のグループパリティ値の要件を満たす。
【0060】
[0069] 送信機において生成される単純なデータパケットは、次のようになり得る。
11000011110000110100001001100111+CRC
[0070] ここで、パケットは、スペクトル線のグループの量子化値に対応する、コードブック800からとられた様々な符号語の連結部を備える。さらに、巡回冗長検査(CRC)値も、パケットに付加され送信される。従来のコーデック手法では、データパケットは、3回、5回、または7回など、数回送られることがある。パケットの極めて多くの送信を有する利益により、(たとえば、
図1に示された受信機114内の)受信ハードウェアは、多数決を使用してパケットを修復することができ得る。すなわち、送信の大部分(たとえば、7つの送信のうちの4つ)が符号語の同じ列をもたらす場合、符号語の繰り返される列は、修復されたパケットとして選択され得る。対照的に、本開示の実施形態による所定のグループパリティ値の使用を通して、パケット修復は、より少ない送信で可能となり得る。以下で説明される例では、データパケットは、最初に送信され、一度だけ再送信され、このことは、受信ハードウェアが単独でパケットを修復することを可能にしない。しかしながら、受信ハードウェアは、「弱いビットマスク」を生成し、それをコーデックデコーダに転送する。弱いビットマスクと、量子化されたスペクトル線のグループについての所定のパリティ値の知識とを使用して、コーデックデコーダは、パケットを修復し、量子化されたスペクトル線についての正しい値を復元することができる。
【0061】
[0071] 説明のために、いくつかの基本的なシナリオが以下に示される。送信機において生成された単純なデータパケットは、チャネルを介して送られる。チャネルは、ノイズを有し、ビットエラーをもたらす可能性がある。ここで、データパケットの最初の送信は、ビットエラーを受ける。次のパケットが、受信機において見られる(下線付きのビットエラー)。
11000011110000110100001001101111+CRC
[0072] 受信側のハードウェアがこのパケットを復号したとき、CRCは失敗する。これは、パケットの再送信をトリガする。このとき、パケットの再送信は、異なるビット位置においてビットエラーをもたらす(下線付きのビットエラー)。
11010011110000110100001001100111+CRC
[0073] またしても、受信側のハードウェアがパケットを復号したとき、CRCは失敗する。それに応じて、受信側のハードウェアは、弱いビットマスクを生成する。弱いビットマスクは、パケットの2つの送信が異なるすべてのビット位置を示す。弱いビットマスクは、受信されたパケットの1つとともにコーデックデコーダに送られる。この例では、弱いビットマスクが以下に示される。
00010000000000000000000000001000
【0062】
修復例1:最後に受信されたパケットを使用する(Repair Example 1: Using Last Received Packet)
[0074] 第1の修復例では、元のパケットを再構成するために、最後に受信されたパケット(すなわち、第2の送信)が使用される。同じく、最後に受信されたパケットは、次の通りである。
11010011110000110100001001100111
[0075] これは、次の復号された符号語に対応する。
0xD3 0xC3 0x42 0x67
[0076] コードブック800を使用してこれらの復号された符号語を参照することは、次の量子化されたスペクトル値のグループをもたらす。
14、11、8、4(パリティ=奇数)→正しくない
[0077] 量子化されたスペクトル値のこのグループは、奇数パリティを有し、奇数パリティは、予想されるグループパリティ値ではない。最初のステップとして、コーデックデコーダは、弱いビットマスクの最初のビットを変更しようとし得る。そうすることは、新しいパケットをもたらす。
11000011110000110100001001100111
[0078] これは、次の復号された符号語に対応する。
0xC3 0xC3 0x42 0x67
[0079] コードブック800を使用してこれらの復号された符号語を参照することは、次の量子化されたスペクトル値のグループをもたらす。
11、11、8、4(パリティ=偶数)→正しい
[0080] 量子化されたスペクトル値のこのグループは、偶数パリティを有し、偶数パリティは、予想されるグループパリティ値である。これは、量子化されたスペクトル値のグループが正しいことを確認する。
【0063】
[0081] 例2:最初に受信されたパケットを使用する(Example 2:Using First Received Packet)
[0082] 第2の修復例では、元のパケットを再構成するために、最初に受信されたパケット(すなわち、最初の送信)が使用される。同じく、最初に受信されたパケットは、次の通りである。
11000011110000110100001001101111
[0083] これは、次の復号された符号語に対応する。
0xC3 0xC3 0x42 0x6F
[0084] 0x6Fは有効な符号語ではない(すなわち、0x6Fはコードブック800内に存在しない)ことに留意されたい。これは、エラーが存在することを示す。最初のステップとして、コーデックデコーダは、弱いビットマスクの最初のビットを変更しようとし得る。そうすることは、新しいパケットをもたらす。
11010011110000110100001001101111
[0085] これは、次の復号された符号語に対応する。
0xD3 0xC3 0x42 0x6F
[0086] 0x6Fはまだ有効な符号語ではなく、エラーが依然として存在することを示す。次に、コーデックデコーダは、弱いビットマスク内の次のビットを変更しようとし得る。そうすることは、異なる新しいパケットをもたらす。
11000011110000110100001001100111
[0087] これは、次の復号された符号語に対応する。
0xC3 0xC3 0x42 0x67
[0088] コードブック800を使用してこれらの復号された符号語を参照することは、次の量子化されたスペクトル値のグループをもたらす。
11、11、8、4(パリティ=偶数)→正しい
[0089] 量子化されたスペクトル値のこのグループは、偶数パリティを有し、偶数パリティは、予想されるグループパリティ値である。これは、量子化されたスペクトル値のグループが正しいことを確認する。
【0064】
[0090] 上記の例は、コーデックデコーダが、(1)符号語のグループの再構成されたバージョンに関連する計算された受信側パリティ値と、(2)所定のグループパリティ値との間の整合に基づいて、符号語のグループの複数の再構成されたバージョンを生成し、符号語のグループの再構成されたバージョンのうちの1つを選択することがあることを示す。ビットエラー検出および訂正技法は、複数の送信の比較から生成された弱いビットマスク、CRC結果、量子化されたスペクトル線を符号化するために使用されるコードブックの知識などの追加情報を活用し得る。再び
図7を参照すると、逆量子化器ユニット602は、量子化されたスペクトル線の各グループの訂正されたバージョンを生成するために、ビットエラーを検出または訂正するために上記で説明された技法などの技法を使用し得る。
【0065】
[0091] 上記で説明されたいくつかの実施形態では、エラーを識別し、および/またはさもなければエラーを処理するために、CRCが使用される。しかしながら、本開示の技法は、CRCの使用を採用する実装形態に限定されない。代替または追加として、リードソロモンコード、ターボコード、ビタビアルゴリズムなどを含む他のタイプのエラー訂正コーディング方式が使用され得る。
【0066】
[0092] 次に、逆量子化についてより詳細に説明される。本開示の一実施形態によれば、逆量子化器ユニット602内のスペクトル推定器704は、スペクトル線を表す量子化値、丸め残差値、およびパリティ残差値(それらが利用可能な場合)、ならびにグローバルゲイン値(たとえば、10)を受け取る。これらの値に基づいて、スペクトル推定器704は、スペクトル線のセットの逆量子化バージョンを推定する。逆量子化されたスペクトル線は、様々な実施形態に従って、浮動小数点値または固定小数点値として表され得る。スペクトル推定器704は、スペクトル線のセットを構成するために、補間、フィルタリングなどの演算を使用して、そうすることがある。基本的に、スペクトル推定器704は、チャネルの送信側で量子化器ユニット204によって実行された量子化ステップの逆を実行しようとする。
【0067】
逆DCT/MDCT変換(Inverse DCT/MDCT Transform)
[0093]
図6に戻ると、逆DCTユニット604は、逆量子化器ユニット602によって生成される逆量子化されたスペクトル線を受け取る。説明されるように、周波数ビンの全範囲を表すスペクトル線のセットは、最大400個の(またはそれよりも多い)スペクトル線を備え得る。各スペクトル線は、特定の周波数ビンに対応することがあり、対応する周波数ビン内のデジタル化されたオーディオデータの大きさを反映することがある。逆DCTユニット604は、オーディオデータのデジタル化サンプルの時間制限されたブロックを生成するために、スペクトル線の各セットに対する逆変換演算を実行し得る。たとえば、逆修正離散コサイン変換(逆MDCT)は、次のように表され得る。
【0068】
【0069】
[0094] 式2に示された逆MDCT演算は、前に説明された式1に示されたMDCT演算に対応する。逆DCTユニット604によって生成された復元オーディオデータのデジタル化サンプルは、
図1に示されたD/Aおよび再構成ユニット120に送られる。
【0070】
[0095]
図1を参照して前に説明されたように、D/Aおよび再構成ユニット120は、復元されたオーディオデータのデジタル化サンプルを受け取り、アナログ電気信号を生成するためにフィルタリングおよび/またはインタプリトなどのデジタルアナログ変換および再構成を実行する。アナログ電気信号はスピーカー122に送られ、スピーカーは、アナログ電気信号に基づいて、音波を生成してそれを環境内に投射し得る。
【0071】
[0096]
図9Aは、本開示の一実施形態による、オーディオデータを圧縮するためのプロセス900およびサブプロセス920を示すフローチャートを示す。プロセス900は、ステップ902、904、906、908、および910を含む。サブプロセス920は、ステップ922および924を含む。ステップ902では、オーディオ信号のデジタル化サンプルのシーケンスが取得される。デジタル化サンプルは、たとえば、
図1に示されたサンプルおよびA/Dユニット104から取得され得る。ステップ904では、複数のスペクトル線を生成するために、デジタル化サンプルのシーケンスを使用して、変換が実行される。この変換は、たとえば、
図2のDCTユニット202によって実行されるMDCTであってよい。ステップ906では、複数のスペクトル線から、スペクトル線のグループが取得される。例示的なグループは、
図4に示される。ステップ908では、量子化値のグループを生成するために、スペクトル線のグループが量子化される。ここで、量子化値のグループを生成するためにスペクトル線のグループを量子化することは、サブプロセス920内のステップを備え得る。より具体的には、ステップ922において、スペクトル線のグループから選択されたスペクトル線に対して、特殊な丸め演算が実行される。ステップ924では、量子化値のグループについて計算されたグループパリティ値を強制的に所定のパリティ値にするために、特殊な丸め演算が使用される。グループパリティ値を強制的に所定のパリティ値にするためのそのような特殊な丸め演算の使用は、たとえば、
図3および
図4に関する説明に示されている。プロセス900に戻ると、ステップ910において、量子化値のグループに基づく1つまたは複数のデータフレームが出力される。そのような出力データフレームの例は、
図3に示される。
【0072】
[0097]
図9Bは、本開示の一実施形態による、オーディオデータを復元するためのプロセス940を示すフローチャートを示す。プロセス940は、ステップ942、944、946、948、950、952、954、および956を含む。ステップ942では、1つまたは複数のデータフレームが取得される。データフレームは、たとえば、
図1のRXユニット114またはチャネルデコーダユニット116から取得され得る。ステップ944では、1つまたは複数のデータフレームに基づく量子化値のグループが取得される。量子化値は、たとえば、
図7に示された整数値として取得され得る。ステップ946では、量子化値のグループについて、受信側パリティ値が計算される。ステップ948では、計算された受信側パリティ値が、量子化値のグループについての所定のパリティ値と比較される。ステップ950では、計算された受信側パリティ値と、量子化値のグループについての所定のパリティ値との間の差を検出したことに応答して、1つまたは複数のデータフレーム内の少なくとも1つのビットエラーを検出または訂正するために、ビットエラー演算が実行される。そのようなパリティ値の計算、比較、およびビットエラー演算における使用の例は、
図8Aおよび
図8Bのコンテキストで説明される。ステップ952では、1つまたは複数のデータフレーム内の少なくとも1つのビットエラーの検出または訂正を考慮して、量子化値のグループに基づいて、スペクトル線のグループが推定される。スペクトル線のグループは、たとえば、
図7のスペクトル推定器ユニット704によって推定され得る。ステップ954では、デジタル化サンプルのシーケンスを生成するために、スペクトル線のグループを含む複数のスペクトル線を使用して、逆変換が実行され得る。逆変換は、たとえば、
図6の逆DCTユニット604によって実行され得る。ステップ956では、デジタル化サンプルのシーケンスが、オーディオ信号のデジタル表現として出力され得る。デジタル化サンプルのシーケンスは、たとえば、
図1のコーデックデコーダ118によって出力され得る。
【0073】
[0098]
図10は、
図1~
図9に関連して本明細書で説明される実施形態において説明されるように利用され得る、ユーザ機器(「UE」)1000の一実施形態のブロック図である。UE1000は、
図1のシステム100によって示されたオーディオパスの一部を実装し得る。特定のオーディオパスにおいて、UE1000の第1のインスタンスは、送信側として機能することがあり、UE1000の第2のインスタンスは、受信側として機能することがある。そのような例では、UE1000の第1のインスタンスは、
図1に示されたマイクロフォン102と、サンプルおよびA/Dユニット104と、コーデックエンコーダ106と、チャネルエンコーダ108と、送信ハードウェア110とを含む、システム100の送信側の構成要素を実装し得る。UE1000の第2のインスタンスは、
図1に示された受信機114と、チャネルデコーダ116と、コーデックデコーダ118と、D/Aおよび再構成ユニット120と、スピーカー122とを含む、システム100の受信側の構成要素を実装し得る。UE1000はまた、双方向通信をサポートする。したがって、第2のオーディオパスが逆方向に同時に確立され得る。第2のオーディオパスにおいて、US1000の第2のインスタンスは、送信側として機能することがあり、UE1000の第1のインスタンスは、受信側として機能することがあり、UE1000の2つのインスタンス内の構成要素を同様の鏡映された方法で利用する。
【0074】
[0099]
図10は、UE1000の様々な構成要素の一般化された図を提供することのみを意図しており、これらの構成要素のいずれかまたはすべてが、適宜利用され得ることに留意されたい。言い換えれば、UEは機能において大きく変化し得るので、UEは、
図10に示された構成要素の一部のみを含み得る。いくつかの事例では、
図10によって示された構成要素は、単一の物理デバイスに局所化され、および/または、異なる物理的ロケーションに配設され得る様々なネットワーク化されたデバイスの間で分散され得る。
【0075】
[00100] UE1000は、バス1005を介して電気的に結合され得る(または適宜他の方法で通信し得る)ハードウェア要素を備えるものとして示されている。ハードウェア要素は、限定はしないが、1つまたは複数の汎用プロセッサ、1つまたは複数の専用プロセッサ(デジタル信号処理(DSP)チップ、グラフィックス加速プロセッサ、特定用途向け集積回路(ASIC)など)、および/または他の処理構造もしくは手段を備え得る、処理ユニット(processing unit)1010を含むことがあり、これらは、本明細書で説明される方法のうちの1つまたは複数を実行するように構成され得る。
図10に示されているように、いくつかの実施形態は、所望の機能に応じて、別のDSP1020を有し得る。たとえば、処理ユニットおよび/またはDSP1020は、
図1に示されたコーデックエンコーダ106と、チャネルエンコーダ108と、チャネルデコーダ116と、コードデコーダ118とを実装し得る。
【0076】
[00101] UE1000は、1つまたは複数の入力デバイス1070を備えることもあり、入力デバイス1070は、限定はしないが、1つまたは複数のタッチスクリーン、タッチパッド、マイクロフォン、ボタン、ダイヤル、スイッチなどを備え得る。たとえば、入力デバイス1070は、
図1に示されたマイクロフォン102と、サンプルおよびA/Cユニット104とを含み得る。さらに、UE1000は、1つまたは複数の出力デバイス1015を備えることもあり、出力デバイス1015は、限定はしないが、1つまたは複数のディスプレイ、発光ダイオード(LED)、スピーカーなどを備え得る。たとえば、出力デバイス1015は、
図1に示されたD/Aおよび再構成ユニット120と、スピーカー122とを含み得る。
【0077】
[00102] UE1000は、ワイヤレス通信インターフェース1030を含むこともあり、ワイヤレス通信インターフェース1030は、限定はしないが、モデム、ネットワークカード、赤外線通信デバイス、ワイヤレス通信デバイス、および/またはチップセット(Bluetooth(登録商標)デバイス、IEEE802.11デバイス、IEEE802.15.4デバイス、Wi-Fi(登録商標)デバイス、WiMAX(登録商標)デバイス、セルラー通信設備など)などを備えることがあり、これらは、UE1000が
図1~
図9に関して本明細書で説明されるネットワークを介して通信することを可能にし得る。ワイヤレス通信インターフェース1030は、ネットワーク、eNB、ng-eNB、gNB、および/または他のネットワーク構成要素、コンピュータシステム、および/または本明細書で説明される任意の他の電子デバイスとデータを通信することを可能にし得る。通信は、ワイヤレス信号1034を送信および/または受信する1つまたは複数のワイヤレス通信アンテナ1032を介して実行され得る。いくつかの実施形態によれば、ワイヤレス通信アンテナ1032は、複数の個別のアンテナ、アンテナアレイ、またはそれらの任意の組合せを備え得る。
【0078】
[00103] 所望の機能に応じて、ワイヤレス通信インターフェース1030は、基地局(たとえば、eNB、ng-eNB、および/またはgNB)、ならびにワイヤレスデバイスおよびアクセスポイントなどの他の地上トランシーバと通信するために、別のトランシーバ、受信機、ならびに送信機、またはトランシーバ、送信機、および/もしくは受信機の任意の組合せを備え得る。たとえば、ワイヤレス通信インターフェース1030は、
図1に示された送信機110と受信機114とを実装し得る。UE1000は、様々なネットワークタイプを備え得る、様々なデータネットワークと通信し得る。たとえば、ワイヤレスワイドエリアネットワーク(WWAN)は、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、周波数分割多元接続(FDMA)ネットワーク、直交周波数分割多元接続(OFDMA)ネットワーク、シングルキャリア周波数分割多元接続(SC-FDMA)ネットワーク、WiMAX(IEEE802.16)などであり得る。CDMAネットワークは、cdma2000、ワイドバンドCDMA(WCDMA(登録商標))などの1つまたは複数の無線アクセス技術(RAT)を実装し得る。Cdma2000は、IS-95、IS-2000、および/またはIS-856規格を含む。TDMAネットワークは、モバイル通信用グローバルシステム(GSM(登録商標))、デジタルアドバンストモバイルフォンシステム(D-AMPS)、または何らかの他のRATを実装し得る。OFDMAネットワークは、LTE(登録商標)、LTEアドバンスト、新無線(NR)などを採用し得る。5G、LTE、LTEアドバンスト、NR、GSM、およびWCDMAは、3GPP(登録商標)の文書に記載されている。Cdma2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)と称する団体の文書に記載されている。3GPPおよび3GPP2の文書は、公開されている。ワイヤレスローカルエリアネットワーク(WLAN)はまた、IEEE802.11xネットワークであり得、ワイヤレスパーソナルエリアネットワーク(WPAN)は、Bluetoothネットワーク、IEEE802.15x、または何らかの他のタイプのネットワークであり得る。また、本明細書で説明される技法は、WWAN、WLANおよび/またはWPANの任意の組合せのために使用され得る。
【0079】
[00104] UE1000は、センサー1040をさらに含むことができる。そのようなセンサーは、限定はしないが、1つまたは複数の慣性センサー(たとえば、加速度計、ジャイロスコープ、および/または他の慣性測定ユニット(IMU))、カメラ、磁力計、コンパス、高度計、マイクロフォン、近接度センサー、光センサー、気圧計などを備えることがあり、そのうちのいくつかは、本明細書で説明された機能を補完し、および/または助長するために使用され得る。
【0080】
[00105] UE1000の実施形態は、GNSSアンテナ1082(いくつかの実装形態ではアンテナ1032と組み合わせられ得る)を使用して、1つまたは複数のGNSS衛星(たとえば、SV190)から信号1084を受信することが可能なGNSS受信機1080を含むこともある。そのような測位は、本明細書で説明される技法を補完し、および/または組み込むために利用され得る。GNSS受信機1080は、従来の技法を使用して、全地球測位システム(GPS)、Galileo、GLONASS、コンパス、日本上空の準天頂衛星システム(QZSS)、インド上空のインド地域航法衛星システム(IRNSS)、中国上空のBeidouなどのGNSSシステムのGNSS SV(たとえば、SV190)からUE1000の位置を抽出することができる。さらに、GNSS受信機1080は、1つまたは複数の全地球航法衛星システムおよび/または地域航法衛星システムと関連付けられるか、またはさもなければ、それらとともに使用することが可能にされ得る、様々なオーグメンテーションシステム(たとえば、衛星ベースオーグメンテーションシステム(SBAS))を使用し得る。限定ではなく例として、SBASは、たとえば、ワイドエリアオーグメンテーションシステム(WAAS)、欧州静止ナビゲーションオーバーレイサービス(EGNOS)、多機能衛星オーグメンテーションシステム(MSAS)、GPS支援ジオオーグメンテッドナビゲーション、またはGPSおよびジオオーグメンテッドナビゲーションシステム(GAGAN)などの、完全性情報、差分補正などを提供するオーグメンテーションシステムを含み得る。したがって、本明細書で使用されるGNSSは、1つもしくは複数の全地球航法衛星システムおよび/または地域航法衛星システム、および/またはオーグメンテーションシステムの任意の組合せを含むことがあり、GNSS信号は、そのような1つまたは複数のGNSSに関連するGNSS信号、GNSSと同様の信号、および/または他の信号を含み得る。
【0081】
[00106] UE1000は、メモリ1060をさらに含み、および/またはメモリ1060と通信し得る。メモリ1060は、限定はしないが、ローカルストレージおよび/またはネットワークアクセス可能ストレージ、ディスクドライブ、ドライブアレイ、光ストレージデバイス、ランダムアクセスメモリ(「RAM」)および/または読取り専用メモリ(「ROM」)などのソリッドステートストレージデバイスを備えることがあり、これらは、プログラム可能、フラッシュ更新可能などであり得る。そのようなストレージデバイスは、限定はしないが、様々なファイルシステム、データベース構造などを含む、任意の適切なデータストアを実装するように構成され得る。
【0082】
[00107] UE1000のメモリ1060は、オペレーティングシステム、デバイスドライバ、実行可能ライブラリ、および/または1つもしくは複数のアプリケーションプログラムなどの他のコードを含むソフトウェア要素(図示せず)を備えることもでき、ソフトウェア要素は、様々な実施形態によって提供されるコンピュータプログラムを備えることがあり、および/または本明細書で説明されるように、他の実施形態によって提供される方法を実装するように、および/またはシステムを構成するように設計され得る。単なる例として、上記で説明された機能に関して説明された1つまたは複数のプロシージャは、(たとえば、処理ユニット1010を使用して)UE1000によって実行可能なコードおよび/または命令(instruction)として実装され得る。一態様では、次いで、汎用コンピュータ(または他のデバイス)を、説明された方法に従って1つまたは複数の演算を実行するように構成し、および/または適応させるために、そのようなコードおよび/または命令が使用され得る。
【0083】
[00108] 特定の要件に従って実質的な変更が行われ得ることは、当業者には明らかである。たとえば、カスタマイズされたハードウェアが使用されることもあり、および/または、特定の要素が、ハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、またはその両方に実装されることがある。さらに、ネットワーク入出力デバイスなどの他のコンピューティングデバイスへの接続が採用され得る。
【0084】
[00109] 添付の図面を参照すると、メモリを含むことができる構成要素は、非一時的機械可読媒体(non-transitory machine-readable media)を含むことができる。本明細書で使用される「機械可読媒体(machine-readable medium)」および「コンピュータ可読媒体(computer-readable medium)」という用語は、特定の様式で機械を演算させるデータの提供に関与する任意の記憶媒体を指す。上記に与えられた実施形態では、様々な機械可読媒体は、実行のために処理ユニットおよび/または他のデバイスに命令/コードを提供することに関与し得る。追加または代替として、機械可読媒体は、そのような命令/コードを記憶および/または搬送するために使用され得る。多くの実装形態では、コンピュータ可読媒体は、物理および/または有形記憶媒体である。そのような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む、多くの形態をとり得る。コンピュータ可読媒体の一般的な形態は、たとえば、磁気および/または光媒体、パンチカード、紙テープ、穴のパターンをもつ任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップまたはカートリッジ、以下で説明される搬送波、あるいはコンピュータが命令および/またはコードを読み取ることができる任意の他の媒体を含む。
【0085】
[00110] 本明細書で説明される方法、システム、およびデバイスは例である。様々な実施形態は、様々なプロシージャまたは構成要素を適宜、省略、置換、または追加し得る。たとえば、特定の実施形態に関して説明された特徴は、様々な他の実施形態において組み合わせられ得る。実施形態の様々な態様および要素は、同様の方法で組み合わせられ得る。本明細書で提供される図の様々な構成要素は、ハードウェアおよび/またはソフトウェアにおいて実施され得る。また、技術は進化し、したがって、要素の多くは、本開示の範囲をこれらの具体的な例に限定しない例である。
【0086】
[00111] 主に一般的な用法という理由で、ビット、情報、値、要素、シンボル、文字、変数、項、数、数字などの信号を参照することは、時々好都合であることがわかっている。しかしながら、これらの用語または同様の用語のすべては、適切な物理量と関連付けられるべきであり、便利なラベルにすぎないことを理解されたい。別段に明記されていない限り、上記の説明から明らかなように、本明細書全体を通して、「処理」、「算出」、「計算」、「決定」、「確認」、「識別」、「関連付け」、「測定」、「実行」などの用語を利用する説明は、専用コンピュータまたは同様の専用電子コンピューティングデバイスなどの特定の装置の動作またはプロセスを指すことが諒解される。したがって、本明細書のコンテキストにおいて、専用コンピュータまたは同様の専用電子コンピューティングデバイスは、専用コンピュータまたは同様の専用電子コンピューティングデバイスのメモリ、レジスタ、または他の情報記憶デバイス、送信デバイス、またはディスプレイデバイス内の物理的、電子的、電気的、または磁気的な量として典型的に表される信号を操作または変換することができる。
【0087】
[00112] 本明細書で使用される「および」および「または」という用語は、そのような用語が使用されるコンテキストに少なくとも部分的に依存することも期待される様々な意味を含み得る。さらに、本明細書で使用される「1つまたは複数」という用語は、任意の特徴、構造、もしくは特性について単数形で説明するために使用されることがあり、または、特徴、構造、または特性の何らかの組合せについて説明するために使用されることがある。しかしながら、これは例示的な例にすぎず、特許請求される主題は、この例に限定されないことに留意されたい。さらに、「少なくとも1つの」という用語は、A、B、またはCなどのリストを関連付けるために使用される場合、A、AB、AA、AAB、AABBCCCなどのA、B、および/またはCの任意の組合せを意味するものと解釈され得る。
【0088】
[00113] いくつかの実施形態について説明してきたが、本開示の趣旨から逸脱することなく、様々な修正、代替構成、および均等物が使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素にすぎないことがあり、ここにおいて、他のルールが、本発明の適用よりも優先するか、またはさもなければ本発明の適用を変更することがある。また、上記の要素が考慮される前、考慮されている間、または考慮された後に、いくつかのステップが実施され得る。したがって、上記の説明は、本開示の範囲を限定するものではない。
【国際調査報告】