最初に、1つ以上の実施形態の例示的な実装が以下で提供されるが、開示されるシステム及び/又は方法は、現在知られ又は存在しているかに関わらず任意の数の手法を使用して実施され得ることを理解されたい。本開示は、本明細書で例示及び説明される例示的な設計及び実装を含む以下で例示される例示的な実装、図面、及び手法に決して限定されるべきでなく、添付の特許請求の範囲の範囲内でそれらの同等物の十分な範囲と共に修正され得る。
ハイレゾリューション(High-resolution)(ハイレゾ(hi-res))オーディオは、高精細度オーディオ又はHDオーディオとしても知られ、一部のレコーディングされた音楽の小売業者や高忠実度サウンド再生機器のベンダにより使用されるマーケティング用語である。ハイレゾオーディオは、ハイレゾ標準をサポートするより多くの製品、ストリーミングサービス、さらにはスマートフォンのリリースのおかげで、ゆっくりだが確実にメインストリームに至っている。しかしながら、高精細度ビデオと異なり、ハイレゾオーディオには単一のユニバーサルスタンダードが存在しない。Digital Entertainment Group、Consumer Electronics Association、及びThe Recording Academyはレコードレーベルと共に、ハイレゾオーディオを「CDより良好な品質の音楽ソースからマスタリングされたレコーディングからのサウンドのフルレンジを再生することができるロスレス(Lossless)オーディオ」として公式に定義している。その最も簡素な表現では、ハイレゾオーディオは、16ビット/44.1kHzで指定されるコンパクトディスク(CD)よりも高いサンプリング周波数及び/又はビット深度を有する音楽ファイルを指す傾向がある。サンプリング周波数(又は、サンプリングレート)は、アナログ-デジタル変換プロセスの間に信号のサンプルが1秒あたりに取られる回数を指す。ビットが多いほど、最初のインスタンス(instance)で信号をより正確に測定することができる。したがって、ビット深度を16ビットから24ビットに進めることで、品質の顕著な飛躍を果たすことができる。ハイレゾオーディオファイルは通常、24ビットで96kHz(又は、さらにはそれ以上)のサンプリング周波数を使用する。いくつかの場合、88.2kHzのサンプリング周波数もまたハイレゾオーディオファイルに使用することもできる。さらに、HDオーディオとラベル付けされた44.1kHz/24ビットのレコーディングも存在する。
いくつかの異なるハイレゾオーディオファイルフォーマットが、それら独自の互換性要件を有して存在する。ハイレゾリューションオーディオを記憶できるファイルフォーマットは、一般的なFLAC(フリーロスレスオーディオコーデック(Free Lossless Audio Codec))及びALAC(アップルロスレスオーディオコーデック(Apple Lossless Audio Codec))フォーマットを含み、これらの双方は、圧縮されているが、理論上で情報が失われないことを意味する方法において圧縮されている。他のフォーマットは、非圧縮のWAV及びAIFFフォーマット、DSD(スーパーオーディオCDに使用されるフォーマット)、並びにより最近のMQA(マスタクオリティ認証(Master Quality Authenticated))を含む。以下は、主なファイル形式の分類である。
WAV(ハイレゾ):全てのCDがエンコードされる標準フォーマット。優れた音質だがそれは非圧縮であり、巨大なファイルサイズ(特に、ハイレゾファイルの場合)を意味する。それは不十分なメタデータサポート(すなわち、アルバムアートワーク、アーティスト、及び曲名情報)を有する。
AIFF(ハイレゾ):WAVに対するアップルの代替物であり、より良好なメタデータサポートを有する。それはロスレスであり非圧縮である(ゆえに、大きいファイルサイズである)が、大いに一般的なわけではない。
FLAC(ハイレゾ):このロスレス圧縮フォーマットは、ハイレゾサンプルレートをサポートし、WAVの約半分のスペースを占め、メタデータを記憶する。それはロイヤリティフリーで広くサポートされており(しかしアップルではサポートされていない)、ハイレゾアルバムをダウンロード及び記憶するのに好適なフォーマットと考えられる。
ALAC(ハイレゾ):アップル独自ロスレス圧縮フォーマットもまた、ハイレゾを行い、メタデータを記憶し、WAVの半分のスペースを占める。FLACに対する、iTunes及びiOSフレンドリーの代替物である。
DSD(ハイレゾ):スーパーオーディオCDに使用されるシングルビットフォーマット。それは2.8MHz、5.6MHz、及び11.2MHzの種類があるが、広くサポートされているわけではない。
MQA(ハイレゾ):時間ドメインにより重点を置いてハイレゾファイルをパッケージ化するロスレス圧縮フォーマット。それはTidal Mastersハイレゾストリーミングに使用されるが、製品にわたり限られたサポートを有する。
MP3(ハイレゾでない):一般的なロッシー(lossy)圧縮フォーマットは、小さいファイルサイズを保証するが最良の音質からはほど遠い。スマートフォンやiPodに音楽を記憶するのに便利だが、ハイレゾをサポートしていない。
AAC(ハイレゾでない):MP3に対する代替物で、ロッシーであり圧縮されているが、より良好に聞こえる。iTunesダウンロード、Apple Musicストリーミング(256kbpsで)、及びYouTubeストリーミングに使用される。
ハイレゾオーディオファイルの主な主張される利点は、圧縮オーディオフォーマットより優れた音質である。AmazonやiTunesなどのサイトからのダウンロード、及びSpotifyなどのストリーミングサービスは、比較的低いビットレートを有する圧縮ファイルフォーマットを使用し、例えば、Apple Musicでは256kbpsのAACファイル、及びSpotifyでは320kbpsのOgg Vorbisストリームなどである。ロッシー圧縮の使用は、エンコーディングプロセスでデータが失われることを意味し、これは次いで、簡便さ及びより小さいファイルサイズのために解像度(resolution)が犠牲にされることを意味する。これは音質への影響を有する。例えば、最高品質のMP3は320kbpsのビットレートを有し、一方、24ビット/192kHzファイルは9216kbpsのデータレートを有する。音楽CDは1411kbpsである。したがって、ハイレゾの24ビット/96kHz又は24ビット/192kHzのファイルは、ミュージシャンやエンジニアがスタジオで作業していた音質をより厳密に再現するべきである。再生すべきファイル上により多くの情報があり、ハイレゾオーディオは、より多くのディテール及びテクスチャを誇る傾向があり、再生システムが十分透過的であれば、聴き手を元のパフォーマンスにより近づける。
ハイレゾオーディオはマイナス面、すなわちファイルサイズを伴う。ハイレゾファイルは、典型的にはサイズが数十メガバイトとなる可能性があり、少数のトラックが、デバイス上の記憶装置をすぐに使い尽くす可能性がある。記憶装置は従来よりもはるかに安価であるが、そのファイルのサイズは依然として、ハイレゾオーディオを圧縮なくWi-Fi又はモバイルネットワーク上でストリーミングするのに扱いにくくしている。
ハイレゾオーディオを再生及びサポートすることができるかなり様々な製品が存在する。それは全て、システムがどれほど大きく又は小さいか、予算はどれほどか、及び曲を聴くのにどんな方法が最も使用されるかに依存する。ハイレゾオーディオをサポートする製品のいくつかの例を以下に記載する。
スマートフォン
スマートフォンは、ハイレゾ再生をますますサポートしつつある。しかし、これはフラッグシップのAndroidモデルに限定され、例えば、現行のサムスンGalaxy S9及びS9+、及びNote9(これらは全てDSDファイルをサポートする)、並びにソニーのXperia XZ3などである。LGのV30及びV30S ThinQのハイレゾをサポートする電話機は現在、MQA互換を提供するものであり、一方、サムスンのS9電話機は、ドルビーアトモス(Dolby Atmos)さえサポートしている。アップルのiPhoneはこれまでのところ、すぐに使える(out of the box)ハイレゾオーディオをサポートしていないが、これを中心とした、適切なアプリを使用し、次いでデジタル-アナログコンバータ(DAC)をプラグ接続するか又はiPhoneのLightningコネクタを用いてLightningヘッドフォンを使用するかのいずれかによる方法がある。
タブレット
ハイレゾ再生タブレットも存在し、サムスンGalaxyタブS4のようなものを含む。MWC2018では、複数の新しい互換モデルが出されており、ファーウェイのM5シリーズやオンキョーの興味深いGranbeatタブレットが含まれる。
ポータブル音楽プレーヤ
あるいは、様々なソニーウォークマンやアステル&ケルンの受賞したポータブルプレーヤなどの、専用のポータブルハイレゾ音楽プレーヤがある。これらの音楽プレーヤは、マルチタスクのスマートフォンより多くのストレージ空間とはるかに良好な音質を提供する。そして、従来のポータブルからほど遠いが、驚くほど高価なソニーDMP-Z1のデジタル音楽プレーヤは、ハイレゾ及びダイレクトストリームデジタル(direct stream digital、DSD)の才能を詰め込まれている。
デスクトップ
デスクトップソリューションの場合、ラップトップ(Windows、Mac、Linux)が、ハイレゾ音楽を記憶及び再生するための主要ソースである(結局、これは、ハイレゾのダウンロードサイトからの曲がいずれにしてもダウンロードされる場所である)。
DAC
USB又はデスクトップDAC(Cyrus soundKey又はChord Mojoなど)は、コンピュータ又はスマートフォン(そのオーディオ回路は音質に関して最適化される傾向がない)に記憶されたハイレゾファイルから優れた音質を得るのに良い方法である。即時の音響強化のために、ソースとヘッドフォンの間に妥当なデジタル-アナログコンバータ(DAC)を単にプラグ接続する。
非圧縮オーディオファイルは、フルのオーディオ入力信号を、入ってくるデータのフルロードを記憶できるデジタルフォーマットにエンコードする。それらは、大きいファイルサイズを犠牲にして最高の品質及びアーカイブ機能を提供し、多くの場合、それらの広範な使用を妨げている。ロスレスエンコーディングは、非圧縮とロッシーとの間の中間の立場として存在する。それは、縮小されたサイズで、非圧縮オーディオファイルと同様又は同じオーディオ品質を与える。ロスレスコーデックは、デコードにおいて非圧縮情報を復元する前に、エンコードにおいて入ってくるオーディオを非破壊的な方法で圧縮することによりこれを達成する。ロスレスエンコードされたオーディオのファイルサイズは依然として、多くのアプリケーションに対して大きすぎる。ロッシーファイルは、非圧縮又はロスレスとは別様にエンコードされる。アナログ-デジタル変換の本質的な機能は、ロッシーエンコーディング手法において同じままである。ロッシーは、非圧縮から分化している。ロッシーコーデックは、元の音波に可能な限り近い主観的なオーディオ品質を保つよう試みると同時に、元の音波に含まれる情報のうち相当な量を捨てる。このため、ロッシーオーディオファイルは非圧縮オーディオファイルよりかなり小さく、ライブオーディオシナリオでの使用を可能にする。ロッシーオーディオファイルと非圧縮オーディオファイルの間に主観的な品質の差がない場合、ロッシーオーディオファイルの品質は「透過的(transparent)」と見なすことができる。近年、いくつかのハイレゾリューションロッシーオーディオコーデックが開発されており、その中で、LDAC(ソニー)及びAptX(クアルコム)は最も一般的なものである。LHDC(Savitech)もまた、それらの1つである。
消費者及びハイエンドオーディオ企業は、最近これまでになく、Bluetoothオーディオについて話題にしてきている。それがワイヤレスヘッドセット、ハンズフリーのイヤーピース、自動車、又はコネクテッドホームであれば、良質のBluetoothオーディオについてのますます多くのユースケースが存在する。複数の企業が、ほどほどのパフォーマンスのすぐに使えるBluetoothソリューションを超えるソリューションをカバーしている。クアルコムのaptXは、すでに多くのAndroidフォンにカバーされているが、マルチメディア大手のソニーは、「LDAC」と呼ばれるその独自のハイエンドソリューションを有する。この技術は、以前はソニーのXperiaシリーズのハンドセットでのみ利用可能であったが、Android8.0 Oreoの公開により、Bluetoothコーデックは、他のOEMSが希望する場合にそれらが実装するためのコアAOSPコードの一部として利用可能になる。最も基本的なレベルでは、LDACは、Bluetoothを介した無線での24ビット/96kHzの(ハイレゾ)オーディオファイルの転送をサポートする。最も近い競合コーデックはクアルコムのaptX HDであり、これは24ビット/48kHzのオーディオデータをサポートする。LDACには3つの異なるタイプの接続モードがあり、品質優先、標準、及び接続優先である。これらの各々は異なるビットレートを提供し、それぞれ、990kbps、660kbps、及び330kbpsで計量されている(weighing in)。したがって、利用可能な接続のタイプに依存して、様々な品質レベルがある。しかし、LDACの最低ビットレートは、LDACが誇るフルの24ビット/96kHzの品質を与えないことは明らかである。LDACは、ソニーにより開発されたオーディオ符号化技術であり、これは、24ビット/96kHzで最大990kbit/sまでのBluetooth接続を通じたオーディオのストリーミングを可能にする。それは、ヘッドフォン、スマートフォン、ポータブルメディアプレーヤ、アクティブスピーカ、及びホームシアターを含む様々なソニー製品で使用されている。LDACはロッシーコーデックであり、これは、より効率的なデータ圧縮を提供するためにMDCTに基づく符号化方式を採用している。LDACの主な競合相手は、クアルコムのaptX-HD技術である。高品質標準低複雑性サブバンドコーデック(subband codec、SBC)は最大328kbpsで記録し(clocks in)、クアルコムのaptXは352kbpsであり、aptX HDは576kbpsである。次いで理論上、990kbpsのLDACは、世の中のいずれの他のBluetoothコーデックよりも多くのさらなるデータを伝送する。そして、ローエンドの接続優先設定でさえSBC及びaptXと競合し、これは、最も一般的なサービスから音楽をストリーミングする者の要求を満たす。ソニーのLDACには、2つの主要な部分がある。第1の部分は、990kbpsに達するために十分高いBluetooth転送速度を達成することであり、第2の部分は、ハイレゾリューションオーディオデータを最小限の品質のロスでこの帯域幅に押し込むことである。LDACは、Bluetoothの任意の拡張データレート(Enhanced Data Rate、EDR)技術を使用して、通常のA2DP(アドバンストオーディオ配信プロファイル(Advanced Audio Distribution Profile)プロファイル制限を超えてデータ速度を強化する。しかし、これはハードウェア依存である。EDR速度は通常、A2DPオーディオプロファイルにより使用されるわけではない。
オリジナルのaptXアルゴリズムは、心理音響的聴覚マスキング手法なしに、時間ドメインの適応的差分パルス符号変調(adaptive differential pulse-code modulation、ADPCM)原理に基づいていた。クアルコムのaptXオーディオ符号化は最初、半導体製品として、部品名がAPTX100EDのカスタムプログラミングされたDSP集積回路として商業市場に導入されており、これは当初、放送自動化機器製造業者により採用された。該製造業者は、ラジオ番組中の自動的な再生のため、例えば、したがってディスクジョッキーのタスクを置き換えるために、CD品質のオーディオをコンピュータハードディスクドライブに記憶する手段を必要とした。1990年代初頭のその商業的な導入以来、リアルタイムオーディオデータ圧縮のためのaptXアルゴリズムの範囲は、専門的なオーディオ、テレビジョン及びラジオ放送、並びに家電製品、特に、ワイヤレスオーディオ、ゲーム及びビデオのための低レイテンシワイヤレスオーディオ、並びにオーディオオーバーIP(audio over IP)におけるアプリケーションのために、ソフトウェア、ファームウェア、及びプログラマブルハードウェアの形式で利用可能になっている知的財産と共に拡大し続けている。さらに、AptXコーデックは、SBC(サブバンド符号化)の代わりに使用することができ、サブバンド符号化方式は、短距離無線パーソナルエリアネットワーク標準であるBluetoothのA2DPのためにBluetooth SIGにより義務付けられたロッシーステレオ/モノオーディオストリーミングに関する。AptXは、高性能のBluetooth周辺機器でサポートされている。今日では、標準aptXと拡張aptX(E-aptX)の双方が、多くの放送機器メーカのISDN及びIP双方のオーディオコーデックハードウェアで使用されている。2007年には、aptXファミリーに対して、最大8:1までの圧縮を提供するaptX Liveの形式の追加が導入された。そして2009年4月には、aptX-HD、ロッシーだがスケーラブルな適応的オーディオコーデックが発表された。AptXは以前、2010年にCSR plcにより買収されるまでapt-Xと名付けられていた。CSRはその後、2015年8月にクアルコムにより買収された。aptXオーディオコーデックは、消費者及び自動車のワイヤレスオーディオアプリケーションに、とりわけ、「ソース」デバイス(スマートフォン、タブレット、又はラップトップなど)と「シンク」アクセサリ(例えば、Bluetoothステレオスピーカ、ヘッドセット、又はヘッドフォン)との間のBluetooth A2DP接続/ペアリングを通じたロッシーステレオオーディオのリアルタイムストリーミングに使用されている。この技術は、Bluetooth標準で義務付けられたデフォルトのサブバンド符号化(SBC)を超えるaptXオーディオ符号化の音響効果を導き出すために、送信機と受信機の双方に組み込まれなければならない。拡張aptXは、専門的なオーディオ放送アプリケーションに4:1の圧縮比での符号化を提供し、AM、FM、DAB、HDラジオに適する。
拡張aptXは、16、20、又は24ビットのビット深度をサポートする。48kHzでサンプリングされたオーディオの場合、E-aptXのビットレートは384kbit/s(デュアルチャネル)である。AptX-HDは、576kbit/sのビットレートを有する。それは、最大48kHzまでのサンプリングレートの高精細度オーディオと、最大24ビットまでのサンプル解像度をサポートする。名前が示唆するのと異なり、このコーデックは依然としてロッシーと考えられる。しかしながら、それは、平均又はピーク圧縮データレートが制約されたレベルに制限されなければならないアプリケーションについて「ハイブリッド」符号化方式を可能にする。これは、帯域幅制約に起因して完全ロスレス符号化が不可能であるオーディオのセクションについて、「ニアロスレス(near lossless)」符号化の動的な適用を伴う。「ニアロスレス」符号化は、高精細度オーディオ品質を維持し、最大20kHzまでのオーディオ周波数と少なくとも120dBのダイナミックレンジを保有する。その主な競合相手は、ソニーにより開発されたLDACコーデックである。aptX-HDにおける別のスケーラブルなパラメータは、符号化レイテンシである。それは、圧縮及び計算複雑性のレベルなどの他のパラメータに対して動的にトレードすることができる。
LHDCは、低レイテンシ及び高精細度オーディオコーデック(low latency and high-definition audio codec)の略であり、Savitech社により発表されている。Bluetooth SBCオーディオフォーマットと比較し、LHDCは、3倍を超えるデータを伝送できるようにして、最も現実的で高精細度のワイヤレスオーディオを提供し、無線オーディオデバイスと有線オーディオデバイスとの間にそれ以上オーディオ品質の不均衡のないことを達成することができる。伝送されるデータの増加により、ユーザは、より多くのディテールとより良い音場を体験し、音楽の情感に浸ることができる。しかしながら、多くの実際のアプリケーションでは、3倍を超えるSBCデータレートは高すぎる可能性がある。
図1は、いくつかの実装によるL2HC(低遅延及び低複雑性ハイレゾリューションコーデック(Low delay & Low complexity High resolution Codec))エンコーダ100の一例示的な構造を示す。図2は、いくつかの実装によるL2HCデコーダ200の一例示的な構造を示す。一般に、L2HCは、合理的に低いビットレートで「透過的な」品質を提供することができる。いくつかの場合、エンコーダ100及びデコーダ200は、信号コーデックデバイス内に実装されてもよい。いくつかの場合、エンコーダ100及びデコーダ200は、異なるデバイスに実装されてもよい。いくつかの場合、エンコーダ100及びデコーダ200は、任意の適切なデバイスに実装されてもよい。いくつかの場合、エンコーダ100及びデコーダ200は、同じアルゴリズム遅延(例えば、同じフレームサイズ、又は同数のサブフレーム)を有してもよい。いくつかの場合、サンプルにおけるサブフレームサイズは固定することができる。例えば、サンプリングレートが96kHz又は48kHzである場合、サブフレームサイズは192又は96サンプルとすることができる。各フレームは、1、2、3、4、又は5つのサブフレームを有することができ、これらは、異なるアルゴリズム遅延に対応する。いくつかの例において、エンコーダ100の入力サンプリングレートが96kHzであるとき、デコーダ200の出力サンプリングレートは96kHz又は48kHzでもよい。いくつかの例において、サンプリングレートの入力サンプリングレートが48kHzであるとき、デコーダ200の出力サンプリングレートはさらに96kHz又は48kHzでもよい。いくつかの場合、エンコーダ100の入力サンプリングレートが48kHzであり、デコーダ200の出力サンプリングレートが96kHzである場合に、ハイバンドが人工的に(artificially)追加される。
いくつかの例において、エンコーダ100の入力サンプリングレートが88.2kHzであるとき、デコーダ200の出力サンプリングレートは88.2kHz又は44.1kHzでもよい。いくつかの例において、エンコーダ100の入力サンプリングレートが44.1kHzであるとき、デコーダ200の出力サンプリングレートはさらに88.2kHz又は44.1kHzでもよい。同様に、エンコーダ100の入力サンプリングレートが44.1kHzであり、デコーダ200の出力サンプリングレートが88.2kHzであるとき、ハイバンドがさらに人工的に追加されてもよい。96kHz又は88.2kHzの入力信号をエンコードするのは同じエンコーダである。さらに、48kHz又は44.1kHzの入力信号をエンコードするのも同じエンコーダである。
いくつかの場合、L2HCエンコーダ100において、入力信号ビット深度は32b、24b、又は16bでもよい。L2HCデコーダ200において、出力信号ビット深度も32b、24b、又は16bでもよい。いくつかの場合、エンコーダ100におけるエンコーダビット深度とデコーダ200におけるデコーダビット深度は異なってもよい。
いくつかの場合、符号化モード(例えば、ABR_mode)はエンコーダ100において設定することができ、実行中にリアルタイムで修正することができる。いくつかの場合、ABR_mode=0は高ビットレートを示し、ABR_mode=1は中ビットレートを示し、ABR_mode=2は低ビットレートを示す。いくつかの場合、ABR_mode情報は、2ビットを費やすことによりビットストリームチャネルを通じてデコーダ200に送ることができる。デフォルトのチャネル数は、それがBluetoothイヤホンアプリケーションに関するとき、ステレオ(2つのチャネル)とすることができる。いくつかの例において、ABR_mode=2の平均ビットレートは370~400kbpsでもよく、ABR_mode=1の平均ビットレートは450~550kbpsでもよく、ABR_mode=0の平均ビットレートは550~710kbpsでもよい。いくつかの場合、全てのケース/モードの最大瞬間ビットレートが990kbps未満でもよい。
図1に示すように、エンコーダ100は、プリエンファシス(pre-emphasis)フィルタ104、直交ミラーフィルタ(quadrature mirror filter、QMF)分析フィルタバンク106、ローローバンド(low low band、LLB)エンコーダ118、ローハイバンド(low high band、LHB)エンコーダ120、ハイローバンド(high low band、HLB)エンコーダ122、ハイハイバンド(high high band、HHB)エンコーダ123、及びマルチプレクサ126を含む。元の入力デジタル信号102は、最初、プリエンファシスフィルタ104により予め強調される(pre-emphasized)。いくつかの場合、プリエンファシスフィルタ104は、定数ハイパスフィルタでもよい。プリエンファシスフィルタ104は、ほとんどの音楽信号が高周波数バンドエネルギーよりはるかに高い低周波数バンドエネルギーを含むため、ほとんどの音楽信号に有用である。高周波数バンドエネルギーの増加は、高周波数バンド信号の処理精度を高めることができる。
プリエンファシスフィルタ104の出力は、QMF分析フィルタバンク106を通過して、4つのサブバンド信号、LLB信号110、LHB信号112、HLB信号114、及びHHB信号116を生成する。一例において、元の入力信号は96kHzのサンプリングレートで生成される。この例において、LLB信号110は0~12kHzのサブバンドを含み、LHB信号112は12~24kHzのサブバンドを含み、HLB信号114は24~36kHzのサブバンドを含み、HHB信号116は36~48kHzのサブバンドを含む。図示のように、4つのサブバンド信号の各々は、LLBエンコーダ118、LHBエンコーダ120、HLBエンコーダ122、及びHHBエンコーダ124によりそれぞれエンコードされて、エンコードされたサブバンド信号を生成する。4つのエンコードされたこれらは、マルチプレクサ126により多重化されて、エンコードされたオーディオ信号を生成することができる。
図2に示すように、デコーダ200は、LLBデコーダ204、LHBデコーダ206、HLBデコーダ208、HHBデコーダ210、QMF合成フィルタバンク212、後処理コンポーネント214、及びデエンファシス(de-emphasis)フィルタ216を含む。いくつかの場合、LLBデコーダ204、LHBデコーダ206、HLBデコーダ208、及びHHBデコーダ210の各1つが、それぞれ、チャネル202からエンコードされたサブバンド信号を受信し、デコードされたサブバンド信号を生成することができる。4つのデコーダ204~210からのデコードされたサブバンド信号は、QMF合成フィルタバンク212を通じて再び加算されて、出力信号を生成することができる。出力信号は、必要に応じて後処理コンポーネント214により後処理され、次いでデエンファシスフィルタ216により強調解除され(de-emphasized)て、デコードされたオーディオ信号218を生成することができる。いくつかの場合、デエンファシスフィルタ216は定数フィルタでもよく、エンファシスフィルタ104の逆フィルタでもよい。一例において、デコードされたオーディオ信号218は、エンコーダ100の入力オーディオ信号(例えば、オーディオ信号102)と同じサンプリングレートでデコーダ200により生成されてもよい。この例において、デコードされたオーディオ信号218は、96kHzのサンプリングレートで生成される。
図3及び図4は、それぞれ、LLBエンコーダ300及びLLBデコーダ400の例示的な構造を示す。図3に示すように、LLBエンコーダ300は、高スペクトル傾き検出コンポーネント304、傾きフィルタ306、線形予測符号化(linear predictive coding、LPC)分析コンポーネント308、逆LPCフィルタ310、長期予測(long-term prediction、LTP)条件コンポーネント312、高ピッチ検出コンポーネント314、重み付けフィルタ316、高速LTP寄与(fast LTP contribution)コンポーネント318、加算機能ユニット320、ビットレート制御コンポーネント322、初期残差量子化(initial residual quantization)コンポーネント324、ビットレート調整コンポーネント326、及び高速量子化最適化(fast quantization optimization)コンポーネント328を含む。
図3に示すように、LLBサブバンド信号302は、最初、スペクトル傾き検出コンポーネント304により制御される傾きフィルタ306を通過する。いくつかの場合、傾きフィルタリングされたLLB信号が、傾きフィルタ306により生成される。次いで、傾きフィルタリングされたLLB信号は、LLBサブバンド内のLPCフィルタパラメータを生成するために、LPC分析コンポーネント308によりLPC分析され得る。いくつかの場合、LPCフィルタパラメータは、量子化され、LLBデコーダ400に送られてもよい。逆LPCフィルタ310を使用して、傾きフィルタリングされたLLB信号をフィルタリングし、LLB残差信号を生成することができる。この残差信号ドメインにおいて、重み付けフィルタ316は、高ピッチ信号のために加えられる。いくつかの場合、重み付けフィルタ316は、高ピッチ検出コンポーネント314による高ピッチ検出に依存してオン又はオフに切り替えることができ、その詳細は後でより詳細に説明される。いくつかの場合、重み付きLLB残差信号を、重み付けフィルタ316により生成することができる。
図3に示すように、重み付きLLB残差信号は、参照信号となる。いくつかの場合、元の信号に強い周期性が存在するとき、LTP(長期予測)寄与が、LTP条件312に基づいて高速LTP寄与コンポーネント318により導入され得る。エンコーダ300において、LTP寄与は、加算機能ユニット320により重み付きLLB残差信号から減算されて、第2の重み付きLLB残差信号を生成することができ、これは、初期LLB残差量子化コンポーネント324の入力信号となる。いくつかの場合、初期LLB残差量子化コンポーネント324の出力信号は、高速量子化最適化コンポーネント328により処理されて、量子化されたLLB残差信号330を生成することができる。いくつかの場合、量子化LLB残差信号330はLTPパラメータ(LTPが存在するとき)と共に、ビットストリームチャネルを通じてLLBデコーダ400に送られ得る。
図4は、LLBデコーダ400の一例示的な構造を示す。図示のように、LLBデコーダ400は、量子化残差コンポーネント406、高速LTP寄与コンポーネント408、LTP切り替えフラグコンポーネント410、加算機能ユニット414、逆重み付けフィルタ416、高ピッチフラグコンポーネント420、LPCフィルタ422、逆傾きフィルタ424、及び高スペクトル傾きフラグコンポーネント428を含む。いくつかの場合、量子化残差コンポーネント406からの量子化された残差信号と高速LTP寄与コンポーネント408からのLTP寄与信号は、加算機能ユニット414により一緒に加算されて、逆重み付けフィルタ416への入力信号としての重み付きLLB残差信号を生成することができる。
いくつかの場合、逆重み付けフィルタ416を使用して、重み付けを除去し、LLB量子化残差信号のスペクトル平坦性を回復することができる。いくつかの場合、回復されたLLB残差信号は、逆重み付けフィルタ416により生成され得る。回復されたLLB残差信号は、LPCフィルタ422により再度フィルタリングされて、信号ドメインにおけるLLB信号を生成することができる。いくつかの場合、傾きフィルタ(例えば、傾きフィルタ306)がLLBエンコーダ300に存在する場合、LLBデコーダ400内のLLB信号は、高スペクトル傾きフラグコンポーネント428により制御される逆傾きフィルタ424によりフィルタリングされてもよい。いくつかの場合、デコードされたLLB信号430は、逆傾きフィルタ424により生成され得る。
図5及び図6は、LHBエンコーダ500及びLHB600デコーダの例示的な構造を示す。図5に示すように、LHBエンコーダ500は、LPC分析コンポーネント504、逆LPCフィルタ506、ビットレート制御コンポーネント510、初期残差量子化コンポーネント512、及び高速量子化最適化コンポーネント514を含む。いくつかの場合、LHBサブバンド信号502は、LHBサブバンド内のLPCフィルタパラメータを生成するために、LPC分析コンポーネント504によりLPC分析され得る。いくつかの場合、LPCフィルタパラメータは、量子化し、LHBデコーダ600に送ることができる。LHBサブバンド信号502は、エンコーダ500内の逆LPCフィルタ506によりフィルタリングされ得る。いくつかの場合、LHB残差信号が、逆LPCフィルタ506により生成され得る。LHB残差信号は、LHB残差量子化の入力信号となり、初期残差量子化コンポーネント512及び高速量子化最適化コンポーネント514により処理されて、量子化されたLHB残差信号516を生成することができる。いくつかの場合、量子化LHB残差信号516は、その後、LHBデコーダ600に送られ得る。図6に示すように、ビット602から得られた量子化残差604は、LHBサブバンドのためのLPCフィルタ606により処理されて、デコードされたLHB信号608を生成することができる。
図7及び図8は、HLB及び/又はHHBサブバンドのためのエンコーダ700及びデコーダ800の例示的な構造を示す。図示のように、エンコーダ700は、LPC分析コンポーネント704、逆LPCフィルタ706、ビットレート切り替えコンポーネント708、ビットレート制御コンポーネント710、残差量子化コンポーネント712、及びエネルギーエンベロープ(energy envelope)量子化コンポーネント714を含む。一般に、HLBとHHBの双方が、比較的高い周波数領域に位置する。いくつかの場合、それらは2つの可能な方法でエンコード及びデコードされる。例えば、ビットレートが十分に高い(例えば、96kHz/24ビットステレオ符号化に対して700kbpsより高い)場合、それらはLHBのようにエンコード及びデコードされてもよい。一例において、HLB又はHHBサブバンド信号702は、HLB又はHHBサブバンド内のLPCフィルタパラメータを生成するために、LPC分析コンポーネント704によりLPC分析され得る。いくつかの場合、LPCフィルタパラメータは、量子化され、HLB又はHHBデコーダ800に送られてもよい。HLB又はHHBサブバンド信号702は、逆LPCフィルタ706によりフィルタリングされて、HLB又はHHB残差信号を生成することができる。HLB又はHHB残差信号は、残差量子化のターゲット信号となり、残差量子化コンポーネント712により処理されて、量子化されたHLB又はHHB残差信号716を生成することができる。量子化HLB又はHHB残差信号716は、その後、デコーダ側(例えば、デコーダ800)に送られ、残差デコーダ806及びLPCフィルタ812により処理されて、デコードされたHLB又はHHB信号814を生成することができる。
いくつかの場合、ビットレートが比較的低い(例えば、96kHz/24ビットステレオ符号化に対して500kbpsより低い)場合、HLB又はHHBサブバンドのためのLPC分析コンポーネント704により生成されたLPCフィルタのパラメータは依然として量子化され、デコーダ側(例えば、デコーダ800)に送られ得る。しかしながら、HLB又はHHB残差信号は、いかなるビットも費やすことなく生成されてもよく、残差信号の時間ドメインエネルギーエンベロープのみが量子化され、かなり低いビットレート(例えば、エネルギーエンベロープをエンコードするために3kbps未満)でデコーダに送られる。一例において、エネルギーエンベロープ量子化コンポーネント714は、逆LPCフィルタからHLB又はHHB残差信号を受信し、出力信号を生成し、これはその後、デコーダ800に送られ得る。次いで、エンコーダ700からの出力信号は、エネルギーエンベロープデコーダ808及び残差生成コンポーネント810により処理されて、LPCフィルタ812への入力信号を生成することができる。いくつかの場合、LPCフィルタ812は、残差生成コンポーネント810からHLB又はHHB残差信号を受信し、デコードされたHLB又はHHB信号814を生成することができる。
図9は、高ピッチ信号の一例示的なスペクトル構造900を示す。一般に、通常の発話信号は、比較的高いピッチのスペクトル構造を有することはまれである。しかしながら、音楽信号及び歌声信号は、高ピッチスペクトル構造をしばしば含む。図示のように、スペクトル構造900は、比較的高い第1のハーモニック周波数(harmonic frequency)F0(例えば、F0>500Hz)と、比較的低い背景スペクトルレベルを含む。この場合、スペクトル構造900を有するオーディオ信号は、高ピッチ信号とみなされてもよい。高ピッチ信号の場合、0HzとF0との間の符号化誤差は、聴覚マスキング効果のないことに起因して容易に聴取され得る。誤差(例えば、F1とF2との間の誤差)は、F1及びF2のピークエネルギーが正しい限り、F1及びF2によりマスクされ得る。しかしながら、ビットレートが十分に高くない場合、符号化誤差は回避されない可能性がある。
いくつかの場合、LTPにおける正しい短ピッチ(高ピッチ)ラグを見つけることは、信号品質を改善するのに役立つ可能性がある。しかしながら、「透過的な」品質を達成するには十分でない可能性がある。ロバストな方法で信号品質を改善するために、適応的重み付けフィルタを導入することができ、これは、かなり低い周波数を強化し、より高い周波数において符号化誤差を増加させることを犠牲にしてかなり低い周波数における符号化誤差を低減する。いくつかの場合、適応的重み付けフィルタ(例えば、重み付けフィルタ316)は、以下のように一次極フィルタ(one order pole filter)とすることができる。
そして、逆重み付けフィルタ(例えば、逆重み付けフィルタ416)は、以下のように一次ゼロフィルタ(one order zero filter)とすることができる。
いくつかの場合、適応的重み付けフィルタは、高ピッチケースを改善するために示され得る。しかしながら、それは、他のケースでは品質を低減する可能性がある。したがって、いくつかの場合、適応的重み付けフィルタは、高ピッチケースの検出に基づいて(例えば、図3の高ピッチ検出コンポーネント314を使用して)オン及びオフに切り替えることができる。高ピッチ信号を検出するための多くの方法が存在する。1つの方法が、図10を参照して以下で説明される。
図10に示すように、現在のピッチゲイン1002、平滑化ピッチゲイン1004、ピッチラグ長1006、及びスペクトル傾き1008を含む4つのパラメータを高ピッチ検出コンポーネント1010により使用して、高ピッチ信号が存在するか否かを判定することができる。いくつかの場合、ピッチゲイン1002は、信号の周期性を示す。いくつかの場合、平滑化ピッチゲイン1004は、ピッチゲイン1002の正規化された値を表す。一例において、正規化ピッチゲイン(例えば、平滑化ピッチゲイン1004)が0と1との間である場合、正規化ピッチゲインの高い値(例えば、正規化ピッチゲインが1に近いとき)は、スペクトルドメインにおける強いハーモニックの存在を示してもよい。平滑化ピッチゲイン1004は、周期性が(単に局所的でなく)安定していることを示し得る。いくつかの場合、ピッチラグ長1006が短い(例えば、3ms未満である)場合、それは第1のハーモニック周波数F0が大きい(高い)ことを意味する。スペクトル傾き1008は、LPCパラメータの第1の反射係数又は1サンプル距離におけるセグメント信号相関により測定され得る。いくつかの場合、スペクトル傾き1008は、かなり低い周波数領域が有意なエネルギーを含むか否かを示すために使用されてもよい。かなり低い周波数領域(例えば、F0より低い周波数)のエネルギーが比較的高い場合、高ピッチ信号は存在しない可能性がある。いくつかの場合、高ピッチ信号が検出されたとき、重み付けフィルタが適用されてもよい。そうでない場合、高ピッチ信号が検出されないとき、重み付けフィルタは適用されなくてもよい。
図11は、高ピッチ信号の知覚的重み付けを実行する一例示的な方法1100を示すフローチャートである。いくつかの場合、方法1100は、オーディオコーデックデバイス(例えば、LLBエンコーダ300)により実施されてもよい。いくつかの場合、方法1100は、任意の適切なデバイスにより実施することができる。
方法1100はブロック1102で開始でき、これにおいて、信号(例えば、図1の信号102)が受信される。いくつかの場合、信号はオーディオ信号であり得る。いくつかの場合、信号は1つ以上のサブバンド成分を含み得る。いくつかの場合、信号は、LLB成分、LHB成分、HLB成分、及びHHB成分を含んでもよい。一例において、信号は96kHzのサンプリングレートで生成され、48kHzの帯域幅を有し得る。この例において、信号のLLB成分は0~12kHzのサブバンドを含んでもよく、LHB成分は12~24kHzのサブバンドを含んでもよく、HLB成分は24~36kHzのサブバンドを含んでもよく、HHB成分は36~48kHzのサブバンドを含んでもよい。いくつかの場合、信号は、プリエンファシスフィルタ(例えば、プリエンファシスフィルタ104)及びQMF分析フィルタバンク(例えば、QMF分析フィルタバンク106)により処理されて、4つのサブバンド内のサブバンド信号を生成することができる。この例では、4つのサブバンドについて、それぞれ、LLBサブバンド信号、LHBサブバンド信号、HLBサブバンド信号、及びHHBサブバンド信号が生成され得る。
ブロック1104において、1つ以上のサブバンド信号のうち少なくとも1つの残差信号が、1つ以上のサブバンド信号のうち少なくとも1つに基づいて生成される。いくつかの場合、1つ以上のサブバンド信号のうち少なくとも1つは、傾きフィルタリングされて、傾きフィルタリングされた信号を生成することができる。一例において、1つ以上のサブバンド信号のうち少なくとも1つは、LLBサブバンド内のサブバンド信号(例えば、図3のLLBサブバンド信号302)を含んでもよい。いくつかの場合、傾きフィルタリングされた信号は、逆LPCフィルタ(例えば、逆LPCフィルタ310)によりさらに処理されて、残差信号を生成することができる。
ブロック1106において、1つ以上のサブバンド信号のうち少なくとも1つは高ピッチ信号であることが決定される。いくつかの場合、1つ以上のサブバンド信号のうち少なくとも1つは、1つ以上のサブバンド信号のうち少なくとも1つの現在のピッチゲイン、平滑化ピッチゲイン、ピッチラグ長、又はスペクトル傾きのうち少なくとも1つに基づいて、高ピッチ信号であると決定される。
いくつかの場合、ピッチゲインは信号の周期性を示し、平滑化ピッチゲインはピッチゲインの正規化された値を表す。いくつかの例において、正規化されたピッチゲインは、0と1との間でもよい。これらの例において、正規化ピッチゲインの高い値(例えば、正規化ピッチゲインが1に近いとき)は、スペクトルドメインにおける強いハーモニックの存在を示してもよい。いくつかの場合、短いピッチラグ長は、第1のハーモニック周波数(例えば、図9の周波数F0 906)が大きい(高い)ことを意味する。第1のハーモニック周波数F0が比較的高く(例えば、F0>500Hz)、背景スペクトルレベルが比較的低い(例えば、所定閾値を下回る)である場合、高ピッチ信号が検出され得る。いくつかの場合、スペクトル傾きは、LPCパラメータの第1の反射係数又は1つのサンプル距離におけるセグメント信号相関により測定され得る。いくつかの場合、スペクトル傾きは、かなり低い周波数領域が有意なエネルギーを含むか否かを示すために使用されてもよい。かなり低い周波数領域(例えば、F0より低い周波数)におけるエネルギーが比較的高い場合、高ピッチ信号は存在しない可能性がある。
ブロック1108において、1つ以上のサブバンド信号のうち少なくとも1つが高ピッチ信号であると決定したことに応答して、1つ以上のサブバンド信号のうち少なくとも1つの残差信号に対して重み付け演算が実行される。いくつかの場合、高ピッチ信号が検出されたとき、重み付けフィルタ(例えば、重み付けフィルタ316)が残差信号に適用され得る。いくつかの場合、重み付き残差信号が生成され得る。いくつかの場合、高ピッチ信号が検出されないとき、重み付け演算は実行されなくてもよい。
上述のように、高ピッチ信号の場合、低周波数領域における符号化誤差は、聴覚マスキング効果のないことに起因して知覚的に感知可能であり得る。ビットレートが十分に高くない場合、符号化誤差は回避されない可能性がある。適応的重み付けフィルタ(例えば、重み付けフィルタ316)及び本明細書に記載される重み付け方法は、低周波数領域において符号化誤差を低減し、信号品質を改善するために使用され得る。しかしながら、いくつかの場合、これは、より高い周波数における符号化誤差を増加させる可能性があり、これは、高ピッチ信号の知覚的品質に対して無意味な可能性がある。いくつかの場合、適応的重み付けフィルタは、高ピッチ信号の検出に基づいて条件付きでオン及びオフにされ得る。上述のように、重み付けフィルタは、高ピッチ信号が検出されたときオンにされてもよく、高ピッチ信号が検出されないときオフにされてもよい。このようにして、高ピッチでないケースの品質は損なわれない可能性があると同時に、高ピッチケースの品質は依然として改善され得る。
ブロック1110において、ブロック1108で生成された重み付き残差信号に基づいて量子化された残差信号が生成される。いくつかの場合、重み付き残差信号はLTP寄与と共に加算機能ユニットで処理されて、第2の重み付き残差信号を生成することができる。いくつかの場合、第2の重み付き残差信号は量子化されて、量子化残差信号を生成することができ、これは、デコーダ側(例えば、図4のLLBデコーダ400)にさらに送られ得る。
図12及び図13は、残差量子化エンコーダ1200及び残差量子化デコーダ1300の例示的な構造を示す。いくつかの例において、残差量子化エンコーダ1200及び残差量子化デコーダ1300は、LLBサブバンド内の信号を処理するために使用され得る。図示のように、残差量子化エンコーダ1200は、エネルギーエンベロープ符号化コンポーネント1204、残差正規化コンポーネント1206、第1の大ステップ(large step)符号化コンポーネント1210、第1の微細ステップ(fine step)コンポーネント1212、ターゲット最適化コンポーネント1214、ビットレート調整コンポーネント1216、第2の大ステップ符号化コンポーネント1218、及び第2の微細ステップ符号化コンポーネント1220を含む。
図示のように、LLBサブバンド信号1202は、最初、エネルギーエンベロープ符号化コンポーネント1204により処理され得る。いくつかの場合、LLB残差信号の時間ドメインエネルギーエンベロープが、エネルギーエンベロープ符号化コンポーネント1204により決定され、量子化され得る。いくつかの場合、量子化された時間ドメインエネルギーエンベロープは、デコーダ側(例えば、デコーダ1300)に送られ得る。いくつかの例において、決定されたエネルギーエンベロープは、残差ドメインにおいて12dB~132dBのダイナミックレンジを有することができ、かなり低いレベル及びかなり高いレベルをカバーする。いくつかの場合、1つのフレーム内のあらゆるサブフレームが、1つのエネルギーレベル量子化を有し、フレーム内のピークサブフレームエネルギーは、dBドメインにおいて直接符号化され得る。同じフレーム内の他のサブフレームエネルギーは、ピークエネルギーと現在のエネルギーとの間の差を符号化することにより、ハフマン符号化アプローチで符号化されてもよい。いくつかの場合、1つのサブフレーム継続時間が約2msほどに短い可能性があるため、エンベロープ精度は人間の耳のマスキング原理に基づいて許容できてもよい。
量子化時間ドメインエネルギーエンベロープを有した後、LLB残差信号は、次いで、残差正規化コンポーネント1206により正規化され得る。いくつかの場合、LLB残差信号は、量子化時間ドメインエネルギーエンベロープに基づいて正規化され得る。いくつかの例において、LLB残差信号は、正規化されたLLB残差信号を生成するために、量子化時間ドメインエネルギーエンベロープで除算され(divided)得る。いくつかの場合、正規化LLB残差信号は、初期量子化のための初期ターゲット信号1208として使用され得る。いくつかの場合、初期量子化は、符号化/量子化の2つの段階を含んでもよい。いくつかの場合、符号化/量子化の第1段階は大ステップハフマン符号化(large step Huffman coding)を含み、符号化/量子化の第2段階は微細ステップ一様符号化(fine step uniform coding)を含む。図示のように、正規化LLB残差信号である初期ターゲット信号1208は、最初、大ステップハフマン符号化コンポーネント1210により処理され得る。ハイレゾリューションオーディオコーデックでは、あらゆる残差サンプルが量子化され得る。ハフマン符号化は、特別な量子化インデックス確率分布を利用することによりビットを節約することができる。いくつかの場合、残差量子化ステップサイズが十分大きいとき、量子化インデックス確率分布はハフマン符号化に適切なものとなる。いくつかの場合、大ステップ量子化からの量子化結果は、準最適(sub-optimal)であり得る。ハフマン符号化の後、より小さい量子化ステップで一様量子化が加えられ得る。図示のように、微細ステップ一様符号化コンポーネント1212は、大ステップハフマン符号化コンポーネント1210からの出力信号を量子化するために使用され得る。したがって、正規化LLB残差信号の符号化/量子化の第1段階は、比較的大きい量子化ステップを選択し、なぜならば、量子化された符号化インデックスの特別な分布がより効率的なハフマン符号化をもたらすためであり、符号化/量子化の第2段階は、比較的小さい量子化ステップを用いて比較的簡素な一様符号化を使用して、第1段階の符号化/量子化からの量子化誤差をさらに低減する。
いくつかの場合、初期残差信号は、残差量子化が誤差を有さないか又は十分小さい誤差を有する場合、理想的なターゲット参照であり得る。符号化ビットレートが十分に高くない場合、符号化誤差は常に存在し、無意味でない可能性がある。したがって、この初期残差ターゲット参照信号1208は、量子化について知覚的に準最適であり得る。初期残差ターゲット参照信号1208は知覚的に準最適であるが、それは迅速な量子化誤差推定を提供することができ、これは、符号化ビットレートを(例えば、ビットレート調整コンポーネント1216により)調整するために使用され得るだけでなく、知覚的に最適化されたターゲット参照信号を構築するためにも使用され得る。いくつかの場合、知覚的に最適化されたターゲット参照信号は、初期残差ターゲット参照信号1208と初期量子化の出力信号(例えば、微細ステップ一様符号化コンポーネント1212の出力信号)に基づいて、ターゲット最適化コンポーネント1214により生成され得る。
いくつかの場合、最適化ターゲット参照信号は、現在のサンプルの誤差影響を最小化するだけでなく前のサンプル及び将来のサンプルの誤差影響も最小化する方法で構築されてもよい。さらに、それは、人間の耳の知覚的マスキング効果を考慮するためにスペクトルドメインにおける誤差分布を最適化することができる。
最適化ターゲット参照信号がターゲット最適化コンポーネント1214により構築された後、第1段階のハフマン符号化及び第2段階の一様符号化が再度実行されて、第1の(初期の)量子化結果を置き換え、より良好な知覚的品質を得ることができる。この例では、最適化ターゲット参照信号に対して第1の段階のハフマン符号化及び第2段階の一様符号化を実行するために、第2の大ステップハフマン符号化コンポーネント1218及び第2の微細ステップの一様符号化コンポーネント1220が使用され得る。初期ターゲット参照信号及び最適化ターゲット参照信号の量子化は、以下でより詳細に論じられる。
いくつかの例において、量子化されていない残差信号又は初期ターゲット残差信号は、r
i(n)により表されてもよい。ターゲットとしてr
i(n)を使用し、残差信号は初期量子化されて、
として示される第1の量子化残差信号を得ることができる。r
i(n)、
、及び知覚的重み付けフィルタのインパルス応答h
w(n)に基づいて、知覚的に最適化されたターゲット残差信号r
o(n)を評価することができる。r
o(n)を更新又は最適化ターゲットとして使用し、残差信号は再度量子化されて、
として示される第2の量子化残差信号を得ることができ、これは、第1の量子化残差信号
を置き換えるために知覚的に最適化されている。いくつかの場合、h
w(n)は、多くの可能な方法で、例えば、LPCフィルタに基づいてh
w(n)を推定することにより決定されてもよい。
いくつかの場合、LLBサブバンドのLPCフィルタは、以下のように表され得る。
知覚的重み付きフィルタW(z)は、次のように定義できる。
ここで、αは、定数係数であり、0<α<1である。γは、LPCフィルタの第1の反射係数、又は単に定数であり、-1<γ<1とすることができる。フィルタW(z)のインパルス応答は、hw(n)として定義され得る。いくつかの場合、hw(n)の長さはαとγの値に依存する。いくつかの場合、αとγがゼロに近いとき、hw(n)の長さは短くなり、急速にゼロに減衰する。計算複雑性の観点から、短いインパルス応答hw(n)を有することが最適である。hw(n)が十分に短くない場合、それはハーフハミング窓(half-hamming window)又はハーフハニング窓(half-hanning window)と乗算されて、hw(n)を急速にゼロに減衰させることができる。インパルス応答hw(n)を有した後、知覚的重み付き信号ドメインにおけるターゲットは、次のように表され得る。
これは、r
i(n)とh
w(n)の間の畳み込みである。知覚的重み付き信号ドメインにおける初期量子化された残差
の寄与は、次のように表すことができる。
残差ドメインにおける誤差は以下である。
これは、それが直接残差ドメインにおいて量子化されているとき最小化される。しかしながら、知覚的重み付き信号ドメインにおける誤差は以下である。
これは、最小化されない可能性がある。したがって、量子化誤差は、知覚的重み付き信号ドメインにおいて最小化される必要があり得る。いくつかの場合、全ての残差サンプルは連帯的に(jointly)量子化され得る。しかしながら、これは付加的な複雑さを引き起こす可能性がある。いくつかの場合、残差は、サンプルごと(sample by sample)の方法で量子化され得るが、知覚的に最適化され得る。例えば、現在のフレーム内の全てのサンプルについて、
が初期設定され得る。mでのサンプルが量子化されていないことを除き全てのサンプルが量子化されていると仮定し、今のmでの知覚的に最良の値は、r
i(m)でなく次のようになるはずである。
ここで、<Tg’(n),hw(n)>は、ベクトル{Tg’(n)}とベクトル{hw(n)}の間の相互相関を表し、ベクトル長は、インパルス応答hw(n)の長さに等しく、{Tg’(n)}のベクトル開始点はmである。||hw(n)||は、ベクトル{hw(n)}のエネルギーであり、これは、同じフレーム内で一定のエネルギーである。Tg’(n)は、次のように表すことができる。
知覚的に最適化された新しいターゲット値r
O(m)がひとたび決定されると、それは再度量子化されて、大ステップハフマン符号化及び微細ステップ一様符号化を含む初期量子化と同様の方法で
を生成することができる。次いで、mは次のサンプル位置に移動する。上記処理はサンプルごとに繰り返され、一方、式(7)及び(8)は、全てのサンプルが最適に量子化されるまで新しい結果で更新される。各mについての各更新の間、
内のほとんどのサンプルは変更されないため、式(8)は再計算される必要がない。式(7)の分母は定数であり、そのため、除算は定数乗算になり得る。
図13に示すように、デコーダ側では、大ステップハフマンデコーディング1302及び微細ステップ一様デコーディング1304からの量子化値が、加算機能ユニット1306により一緒に加算されて、正規化された残差信号を形成する。正規化残差信号は、時間ドメインにおいてエネルギエンベロープデコーディングコンポーネント1308により処理されて、デコードされた残差信号1310を生成することができる。
図14は、信号の残差量子化を実行する一例示的な方法1400を示すフローチャートである。いくつかの場合、方法1400は、オーディオコーデックデバイス(例えば、LLBエンコーダ300又は残差量子化エンコーダ1200)により実施されてもよい。いくつかの場合、方法1400は、任意の適切なデバイスにより実施することができる。
方法1400はブロック1402で開始し、これにおいて、入力残差信号の時間ドメインエネルギーエンベロープが決定される。いくつかの場合、入力残差信号は、LLBサブバンド内の残差信号(例えば、LLB残差信号1202)であり得る。
ブロック1404において、入力残差信号の時間ドメインエネルギーエンベロープが量子化されて、量子化された時間ドメインエネルギーエンベロープを生成する。いくつかの場合、量子化された時間ドメインエネルギーエンベロープは、デコーダ側(例えば、デコーダ1300)に送られ得る。
ブロック1406において、入力残差信号が、量子化された時間ドメインエネルギーエンベロープに基づいて正規化されて、第1のターゲット残差信号を生成する。いくつかの場合、LLB残差信号は、量子化された時間ドメインエネルギーエンベロープにより除算されて、正規化されたLLB残差信号を生成することができる。いくつかの場合、正規化されたLLB残差信号は、初期量子化のための初期ターゲット信号として使用され得る。
ブロック1408において、第1の量子化が第1のビットレート(bit rate)において第1のターゲット残差信号に対して実行されて、第1の量子化された残差信号を生成する。いくつかの場合、第1の残差量子化は、サブ量子化/符号化の2つの段階を含み得る。第1段階のサブ量子化は、第1の量子化ステップで第1のターゲット残差信号に対して実行されて、第1のサブ量子化出力信号を生成することができる。第2段階のサブ量子化は、第2の量子化ステップで第1のサブ量子化出力信号に対して実行されて、第1の量子化された残差信号を生成することができる。いくつかの場合、第1の量子化ステップは、サイズが第2の量子化ステップより大きい。いくつかの例において、第1段階のサブ量子化は大ステップハフマン符号化でもよく、第2段階のサブ量子化は微細ステップ一様符号化でもよい。
いくつかの場合、第1のターゲット残差信号は、複数のサンプルを含む。第1の量子化は、第1のターゲット残差信号に対してサンプルごとに実行されてもよい。いくつかの場合、これは量子化の複雑さを低減し得、それにより量子化効率を改善する。
ブロック1410において、第1の量子化された残差信号及び第1のターゲット残差信号に少なくとも基づいて、第2のターゲット残差信号が生成される。いくつかの場合、第2のターゲット残差信号は、第1のターゲット残差信号、第1の量子化された残差信号、及び知覚的重み付けフィルタのインパルス応答hw(n)に基づいて生成されてもよい。いくつかの場合、第2のターゲット残差信号である、知覚的に最適化されたターゲット残差信号が、第2の残差量子化のために生成され得る。
ブロック1412において、第2の残差量子化が、第2のビットレート(bit rate)において第2のターゲット残差信号に対して実行されて、第2の量子化された残差信号を生成する。いくつかの場合、第2のビットレートは、第1のビットレートと異なり得る。一例において、第2のビットレートは、第1のビットレートより高くてもよい。いくつかの場合、第1のビットレートにおける第1の残差量子化からの符号化誤差は、無意味でない可能性がある。いくつかの場合、符号化ビットレートは、符号化レートを低減するために、第2の残差量子化で調整(例えば、上昇)されてもよい。
いくつかの場合、第2の残差量子化は第1の残差量子化と同様である。いくつかの例において、第2の残差量子化もまた、サブ量子化/符号化の2つの段階を含んでもよい。これらの例において、第1段階のサブ量子化は、大きい量子化ステップで第2のターゲット残差信号に対して実行されて、サブ量子化出力信号を生成することができる。第2段階のサブ量子化は、小さい量子化ステップでサブ量子化出力信号に対して実行されて、第2の量子化された残差信号を生成することができる。いくつかの場合、第1段階のサブ量子化は大ステップハフマン符号化でもよく、第2段階のサブ量子化は微細ステップ一様符号化でもよい。いくつかの場合、第2の量子化された残差信号は、ビットストリームチャネルを通じてデコーダ側(例えば、デコーダ1300)に送られ得る。
図3~図4に示すように、LTPは、より良好なPLCのために条件付きでオン及びオフされてもよい。いくつかの場合、コーデックビットレートが透過的な品質を達成するほど十分に高くないとき、LTPは、周期的及びハーモニック信号に対してかなり有用である。ハイレゾリューションコーデックでは、LTP適用のために2つの問題が解決される必要があり得る。(1)従来のLTPは高サンプリングレート環境においてかなり高い計算複雑性のコストがかかる可能性があるため、計算複雑性を低減すべきである、及び(2)LTPはフレーム間相関を利用し、伝送チャネルでのパケットロスが発生したとき誤差伝搬を引き起こす可能性があるため、パケットロス隠蔽(packet loss concealment、PLC)の悪影響は制限されるべきである。
いくつかの場合、ピッチラグ探索は、LTPに付加的な計算複雑性を加える。符号化効率を改善するために、LTPにおいてより効率的であることが望ましい可能性がある。ピッチラグ探索の一例示的なプロセスが、図15~図16を参照して以下に記載される。
図15は、有声発話の一例を示し、ピッチラグ1502は、2つの隣接する周期サイクル間の距離(例えば、ピークP1とP2の間の距離)を表す。いくつかの音楽信号は、強い周期性を有するだけでなく、安定したピッチラグ(ほぼ一定のピッチラグ)も有することがある。
図16は、より良好なパケットロス隠蔽のためにLTP制御を実行する一例示的なプロセス1600を示す。いくつかの場合、プロセス1600は、コーデックデバイス(例えば、エンコーダ100、又はエンコーダ300)により実施されてもよい。いくつかの場合、プロセス1600は、任意の適切なデバイスにより実施されてもよい。プロセス1600は、ピッチラグ(これは、略称で「ピッチ」と後述される)探索と、LTP制御を含む。一般に、ピッチ探索は、多数のピッチ候補に起因して従来の方法では高サンプリングレートにおいて複雑になり得る。本明細書に記載されるプロセス1600は、3つのフェーズ/ステップを含み得る。第1のフェーズ/ステップの間、信号(例えば、LLB信号1602)は、周期性が主に低周波数領域にあるため、ローパスフィルリングされ得る(1604)。次いで、フィルタリングされた信号はダウンサンプリングされて、高速初期ラフピッチ探索(fast initial rough pitch searching)1608のための入力信号を生成することができる。一例において、ダウンサンプリングされた信号は、2kHzのサンプリングレートで生成される。低サンプリングレートにおけるピッチ候補の総数は高くないため、ラフピッチ探索結果は、低サンプリングレートでの全てのピッチ候補を探索することにより、高速な方法で得ることができる。いくつかの場合、初期ピッチ探索1608は、短い窓を用いた正規化相互相関(normalized cross-correlation)又は大きい窓を用いた自己相関(auto-correlation)を最大化する従来のアプローチを使用して行われてもよい。
初期ピッチ探索結果は比較的粗い可能性があるため、複数の初期ピッチの近傍(neighborhood)における相互相関アプローチによる微細(fine)探索は、高サンプリングレート(例えば、24kHz)において依然として複雑な可能性がある。したがって、第2のフェーズ/ステップ(例えば、高速微細ピッチ探索1610)の間、ピッチ精度は、単に低サンプリングレートでの波形ピーク位置を見ることにより波形ドメインにおいて増加され得る。次いで、第3のフェーズ/ステップ(例えば、最適化された微細ピッチ探索1612)の間、第2のフェーズ/ステップからの微細ピッチ探索結果は、高サンプリングレートで小さい探索範囲内で相互相関アプローチを用いて最適化され得る。
例えば、第1のフェーズ/ステップ(例えば、初期ピッチ探索1608)の間、初期ラフピッチ探索結果は、探索された全てのピッチ候補に基づいて得られてもよい。いくつかの場合、ピッチ候補近傍は、初期ラフピッチ探索結果に基づいて定義されてもよく、より精密なピッチ探索結果を得るために第2のフェーズ/ステップに使用されてもよい。第2のフェーズ/ステップ(例えば、高速微細ピッチ探索1610)の間、波形ピーク位置は、第1のフェーズ/ステップで決定されたとおりのピッチ候補に基づいて、及びピッチ候補近傍内で決定されてもよい。図15に示す一例において、図15の第1のピーク位置P1は、初期ピッチ探索結果から定義される限定された探索範囲(例えば、第1のフェーズ/ステップから約15%の変動と決定されたピッチ候補近傍)内で決定されてもよい。図15の第2のピーク位置P2は、同様の方法で決定されてもよい。P1とP2の間の位置差は、初期ピッチ推定よりはるかに精密なピッチ推定となる。いくつかの場合、第2のフェーズ/ステップから得られたより精密なピッチ推定値を使用して、最適化された微細ピッチラグを発見するために第3のフェーズ/ステップで使用できる第2のピッチ候補近傍、例えば、第2のフェーズ/ステップから約15%の変動と決定されたピッチ候補近傍を定義することができる。第3のフェーズ/ステップ(例えば、最適化された微細ピッチ探索1612)の間、最適化された微細ピッチラグは、かなり小さい探索範囲(例えば、第2のピッチ候補近傍)内で正規化相互相関アプローチを用いて探索することができる。
いくつかの場合、LTPが常にオンである場合、PLCは、ビットストリームパケットが失われたときの有りうる誤差伝搬に起因して準最適な可能性がある。いくつかの場合、LTPは、それがオーディオ品質を効率的に改善でき、PLCに有意に影響を与えないとき、オンにされてもよい。実際には、LTPは、ピッチゲインが高く安定しているとき効率的であり得、これは、高周期性が(1フレームについてだけでなく)少なくともいくつかのフレームについて存続することを意味する。いくつかの場合、高周期性信号領域において、PLCは、PLCが常に周期性を使用して前の情報を現在の失われたフレームにコピーするとき、比較的簡素で、効率的である。いくつかの場合、安定したピッチラグは、さらに、PLCへの悪影響を低減し得る。安定したピッチラグは、ピッチラグ値が少なくともいくつかのフレームについて有意に変化しないことを意味し、おそらく近い将来の安定したピッチを結果としてもたらす。いくつかの場合、ビットストリームパケットの現在のフレームが失われたとき、PLCは、現在のフレームを回復するために前のピッチ情報を使用してもよい。したがって、安定ピッチラグは、PLCのための現在のピッチ推定に役立ち得る。
図16を参照して例を続け、LTPをオン又はオフにすることを判断する前に、周期性検出1614及び安定性検出1616が実行される。いくつかの場合、ピッチゲインが安定して高く、ピッチラグが比較的安定しているとき、LTPがONにされてもよい。例えば、ブロック1618に示すように、ピッチゲインは、高度に周期的かつ安定したフレームに対して設定されてもよい(例えば、ピッチゲインは、0.8より安定して高い)。いくつかの場合、図3を参照し、LTP寄与信号が生成され、重み付き残差信号と組み合わせられて、残差量子化のための入力信号を生成することができる。一方、ピッチゲインが安定して高くなく、かつ/あるいはピッチラグが安定していない場合、LTPはOFFにされてもよい。
いくつかの場合、LTPは、さらに、ビットストリームパケットが失われたときの有りうる誤差伝搬を回避するために、LTPが前にいくつかのフレームについてオンにされていた場合、1つ又は2つのフレームについてオフにされてもよい。一例において、ブロック1620に示すように、ピッチゲインは、例えば、LTPが前にいくつかのフレームについてオンにされていたとき、より良好なPLCのために条件付きでゼロにリセットされ得る。いくつかの場合、LTPがオフにされているとき、可変ビットレート符号化システムにおいて、もう少し大きい符号化ビットレートが設定されてもよい。いくつかの場合、LTPがオンにされるよう判断されたとき、ブロック1622に示すように、ピッチゲイン及びピッチラグが量子化され、デコーダ側に送られ得る。
図17は、オーディオ信号の例示的なスペクトログラム(spectrograms)を示す。図示のように、スペクトログラム1702は、オーディオ信号の時間-周波数プロットを示す。スペクトログラム1702は、多くのハーモニックを含むように示されており、これは、オーディオ信号の高周期性を示している。スペクトログラム1704は、オーディオ信号の元のピッチゲインを示す。ピッチゲインは、時間のほとんどで安定して高いように示されており、これもまた、オーディオ信号の高周期性を示している。スペクトログラム1706は、オーディオ信号の平滑化されたピッチゲイン(ピッチ相関)を示す。この例において、平滑化ピッチゲインは、正規化されたピッチゲインを表す。スペクトログラム1708は、ピッチラグを示し、スペクトログラム1710は、量子化されたピッチゲインを示す。ピッチラグは、時間のほとんどで比較的安定しているように示されている。図示のように、ピッチゲインは周期的にゼロにリセットされており、これは、誤差伝搬を回避するために、LTPがオフにされていることを示す。量子化ピッチゲインもまた、LTPがオフにされているときゼロに設定される。
図18は、LTPを実行する一例示的な方法1800を示すフローチャートである。いくつかの場合、方法1800は、オーディオコーデックデバイス(例えば、LLBエンコーダ300)により実施されてもよい。いくつかの場合、方法1800は、任意の適切なデバイスにより実施することができる。
方法1800はブロック1802で開始し、これにおいて、入力オーディオ信号が第1のサンプリングレートで受信される。いくつかの場合、オーディオ信号は、複数の第1のサンプルを含むことができ、複数の第1のサンプルは、第1のサンプルレートで生成される。一例において、複数の第1のサンプルは、96kHzのサンプリングレートで生成されてもよい。
ブロック1804において、オーディオ信号がダウンサンプリングされる。いくつかの場合、オーディオ信号の複数の第1のサンプルがダウンサンプリングされて、第2のサンプリングレートで複数の第2のサンプルを生成することができる。いくつかの場合、第2のサンプリングレートは、第1のサンプリングレートより低い。この例において、複数の第2のサンプルは、2kHzのサンプリングレートで生成されてもよい。
ブロック1806において、第2のサンプリングレートにおいて第1のピッチラグが決定される。低サンプリングレートにおけるピッチ候補の総数は高くないため、ラフピッチ結果は、低サンプリングレートでの全てのピッチ候補を探索することにより高速な方法で得ることができる。いくつかの場合、第2のサンプリングレートにおける複数の第2のサンプルに基づいて、複数のピッチ候補が決定され得る。いくつかの場合、複数のピッチ候補に対して、第1のピッチラグが決定され得る。いくつかの場合、第1のピッチラグは、第1の窓を用いた正規化相互相関又は第2の窓を用いた自己相関を最大化することにより決定されてもよく、第2の窓は、第1の窓より大きい。
ブロック1808において、ブロック1806で決定された第1のピッチラグに基づいて、第2のピッチラグが決定される。いくつかの場合、第1のピッチラグに基づいて、第1の探索範囲が決定され得る。いくつかの場合、第1の探索範囲内で、第1のピーク位置と第2のピーク位置が決定され得る。いくつかの場合、第2のピッチラグは、第1のピーク位置及び第2のピーク位置に基づいて決定され得る。例えば、第1のピーク位置と第2のピーク位置との間の位置差を使用して、第2のピッチラグを決定してもよい。
ブロック1810において、ブロック1808で決定された第2のピッチラグに基づいて、第3のピッチラグが決定される。いくつかの場合、第2のピッチラグを使用して、ピッチ候補近傍を定義することができ、これは、最適化された微細ピッチラグの発見に使用できる。例えば、第2のピッチラグに基づいて、第2の探索範囲が決定されてもよい。いくつかの場合、第3のピッチラグは、第3のサンプリングレートで第2の探索範囲内で決定され得る。いくつかの場合、第3のサンプリングレートは、第2のサンプリングレートより高い。この例において、第3のサンプリングレートは24kHzでもよい。いくつかの場合、第3のピッチラグは、第3のサンプリングレートで第2の探索範囲内で正規化相互相関アプローチを使用して決定されてもよい。いくつかの場合、第3のピッチラグは、入力オーディオ信号のピッチラグとして決定され得る。
ブロック1812において、少なくとも所定数のフレームについて、入力オーディオ信号のピッチゲインが所定閾値を超えたこと、及び入力オーディオ信号のピッチラグの変化が所定範囲内であったことが決定される。LTPは、ピッチゲインが高く安定しているとき、より効率的であり得、これは、高周期性が(1フレームについてだけでなく)少なくともいくつかのフレームについて存続することを意味する。いくつかの場合、安定したピッチラグは、さらに、PLCへの悪影響を低減し得る。安定したピッチラグは、ピッチラグ値が少なくともいくつかのフレームについて有意に変化しないことを意味し、おそらく近い将来の安定したピッチを結果としてもたらす。
ブロック1814において、少なくとも所定数の前のフレームについて、入力オーディオ信号のピッチゲインが所定閾値を超えたこと、及び第3のピッチラグの変化が所定範囲内であったことを決定したことに応答して、入力オーディオ信号の現在のフレームに対してピッチゲインが設定される。したがって、ピッチゲインは、高度に周期的かつ安定したフレームに対して設定されて、PLCに影響を与えずに信号品質を改善する。
いくつかの場合、少なくとも所定数の前のフレームについて、入力オーディオ信号のピッチゲインが所定閾値を下回っていること、及び/又は第3のピッチラグの変化が所定範囲内でなかったことを決定したことに応答して、ピッチゲインは、入力オーディオ信号の現在のフレームに対してゼロに設定される。したがって、誤差伝搬が低減され得る。
上述のように、ハイレゾリューションオーディオコーデックでは、あらゆる残差サンプルが量子化される。これは、フレームサイズが10msから2msに変わるとき、残差サンプル量子化の計算複雑性及び符号化ビットレートは有意に変化しない可能性があることを意味する。しかしながら、LPCなどのいくつかのコーデックパラメータの計算複雑性と符号化ビットレートは、フレームサイズが10msから2msに変わるとき、劇的に増加する可能性がある。通常、LPCパラメータは、フレーム毎に量子化され、送信される必要がある。いくつかの場合、現在のフレームと前のフレームとの間のLPC差分符号化はビットを節約する可能性があるが、それはビットストリームパケットが伝送チャネルで失われたとき誤差伝搬を引き起こす可能性もある。したがって、低遅延コーデックを達成するために、短いフレームサイズが設定され得る。いくつかの場合、フレームサイズが2msのように短いとき、フレーム時間継続時間はビットレート又は複雑性の分母であるため、LPCパラメータの符号化ビットレートはかなり高くなり得、計算複雑性もまた高くなり得る。
図12に示す時間ドメインエネルギーエンベロープ量子化を参照する一例において、サブフレームサイズが2ミリ秒である場合、10ミリ秒のフレームは5つのサブフレームを含むべきである。通常、各サブフレームは、量子化される必要のあるエネルギーレベルを有する。1つのフレームが5つのサブフレームを含むので、5つのサブフレームのエネルギーレベルは、時間ドメインエネルギーエンベロープの符号化ビットレートが制限されるように連帯的に量子化されてもよい。いくつかの場合、フレームサイズがサブフレームサイズに等しく、あるいは1つのフレームが1つのサブフレームを含むとき、符号化ビットレートは、各エネルギーレベルが独立して量子化される場合、有意に増加する可能性がある。これらの場合、連続フレーム間のエネルギーレベルの差分符号化は、符号化ビットレートを低減し得る。しかしながら、そのようなアプローチは、ビットストリームパケットが伝送チャネルで失われたときそれが誤差伝搬を引き起こす可能性があるため、準最適であり得る。
いくつかの場合、LPCパラメータのベクトル量子化は、より低いビットレートをもたし得る。しかしながら、それは、さらなる計算負荷を要する可能性がある。LPCパラメータの簡素なスカラー量子化は、より低い複雑性を有し得るが、より高いビットレートを必要とし得る。いくつかの場合、ハフマン符号化から利益を得る特別なスカラー量子化が使用されてもよい。しかしながら、この方法は、かなり短いフレームサイズ又はかなり低い遅延符号化には十分でない可能性がある。LPCパラメータの新しい量子化方法が、図19~図20を参照して以下で説明される。
ブロック1902において、オーディオ信号の現在のフレームと前のフレームとの間の差分スペクトル傾き及びエネルギー差のうち少なくとも1つが決定される。図20を参照し、スペクトログラム2002は、オーディオ信号の時間-周波数プロットを示している。スペクトログラム2004は、オーディオ信号の現在のフレームと前のフレームとの間の差分スペクトル傾きの絶対値を示す。スペクトログラム2006は、オーディオ信号の現在のフレームと前のフレームとの間のエネルギー差の絶対値を示す。スペクトログラム2008は、コピー判断を示しており、1は、現在のフレームが前のフレームから量子化されたLPCパラメータをコピーすることを示し、0は、現在のフレームがLPCパラメータを再度量子化/送信することを意味する。この例において、差分スペクトル傾き及びエネルギー差の双方の絶対値は、ほとんどの時間の間、比較的かなり小さく、それらは、終わり(右側)で比較的大きくなる。
ブロック1904において、オーディオ信号の安定性が検出される。いくつかの場合、オーディオ信号のスペクトル安定性は、オーディオ信号の現在のフレームと前のフレームとの間の差分スペクトル傾き及び/又はエネルギー差に基づいて決定され得る。いくつかの場合、オーディオ信号のスペクトル安定性は、さらに、オーディオ信号の周波数に基づいて決定されてもよい。いくつかの場合、差分スペクトル傾きの絶対値は、オーディオ信号のスペクトルに基づいて決定され得る(例えば、スペクトログラム2004)。いくつかの場合、オーディオ信号の現在のフレームと前のフレームとの間のエネルギー差の絶対値もまた、オーディオ信号のスペクトルに基づいて決定されてもよい(例えば、スペクトログラム2006)。いくつかの場合、差分スペクトル傾きの絶対値の変化及び/又はエネルギー差の絶対値の変化が、少なくとも所定数のフレームについて所定範囲内であったと決定された場合、オーディオ信号のスペクトル安定性が検出されたと決定されてもよい。
ブロック1906において、オーディオ信号のスペクトル安定性を検出したことに応答して、前のフレームのための量子化されたLPCパラメータが、オーディオ信号の現在のフレームにコピーされる。いくつかの場合、オーディオ信号のスペクトルがかなり安定しており、それがあるフレームから次のフレームへ意味あるように変化しないとき、現在のフレームのための現在のLPCパラメータは、符号化/量子化されなくてもよい。その代わりに、前の量子化されたLPCパラメータが現在のフレームにコピーされてもよく、なぜならば、量子化されていないLPCパラメータは、前のフレームから現在のフレームへ、ほぼ同じ情報を保持するためである。このような場合、量子化されたLPCパラメータが前のフレームからコピーされていることをデコーダに伝えるために、1ビットのみが送られてもよく、現在のフレームに対してかなり低いビットレートとかなり低い複雑性を結果としてもたらす。
オーディオ信号のスペクトル安定性が検出されない場合、LPCパラメータは、再度量子化及び符号化されるように強制され得る。いくつかの場合、オーディオ信号の現在のフレームと前のフレームとの間の差分スペクトル傾きの絶対値の変化が、少なくとも所定数のフレームについて所定範囲内でなかったと決定された場合、オーディオ信号のスペクトル安定性が検出されないと決定されてもよい。いくつかの場合、エネルギー差の絶対値の変化が少なくとも所定数のフレームについて所定範囲内でなかったと決定された場合、オーディオ信号のスペクトル安定性が検出されないと決定されてもよい。
ブロック1908において、量子化されたLPCパラメータが現在のフレームの前の少なくとも所定数のフレームについてコピーされたことが決定される。いくつかの場合、量子化されたLPCパラメータがいくつかのフレームについてコピーされた場合、LPCパラメータは、再度量子化及び符号化されるように強制されてもよい。
ブロック1910において、量子化されたLPCパラメータが少なくとも所定数のフレームについてコピーされたと決定したことに応答して、現在のフレームのためのLPCパラメータに対して量子化が実行される。いくつかの場合、量子化されたLPCパラメータをコピーするための連続フレームの数は、ビットストリームパケットが伝送チャネルで失われたときの誤差伝搬を回避するために制限される。
いくつかの場合、LPCコピーの判断(スペクトログラム2008に示される)は、時間ドメインエネルギーエンベロープの量子化に役立ち得る。いくつかの場合、コピー判断が1であるとき、現在のフレームと前のフレームとの間の差分エネルギーレベルが符号化されて、ビットを節約してもよい。いくつかの場合、コピー判断が0であるとき、エネルギーレベルの直接量子化が実行されて、ビットストリームパケットが伝送チャネルで失われたときの誤差伝搬を回避してもよい。
図21は、一実装による、本開示に記載される電子デバイス2100の一例示的な構造を示す図である。電子デバイス2100は、1つ以上のプロセッサ2102、メモリ2104、エンコーディング回路2106、及びデコーディング回路2108を含む。いくつかの実装において、電子デバイス2100は、本開示に記載されるステップのうち任意の1つ又は組み合わせを実行するための1つ以上の回路をさらに含むことができる。
記載された主題事項の実装は、1つ以上の特徴を単独で又は組み合わせて含むことができる。
第1の実装において、長期予測(LTP)を実行する方法が、少なくとも所定数のフレームについての入力オーディオ信号のピッチゲイン及びピッチラグを決定するステップと、少なくとも上記所定数のフレームについて、上記入力オーディオ信号の上記ピッチゲインが所定閾値を超えたこと、及び上記入力オーディオ信号の上記ピッチラグの変化が所定範囲内であったことを決定するステップと、少なくとも上記所定数のフレームについて、上記入力オーディオ信号のピッチゲインが上記所定閾値を超えたこと、及び上記ピッチラグの上記変化が上記所定範囲内であったことを決定したことに応答して、上記入力オーディオ信号の現在のフレームに対してピッチゲインを設定してパッケージロス隠蔽(package loss concealment、PLC)を改善するステップと、を含む。
前述及び他の記載の実装は各々、任意で、以下の特徴の1つ以上を含むことができる。
第1の特徴は、以下の特徴のうち任意のものと組み合わせ可能であり、当該方法は、複数の第1のサンプルを含む上記入力オーディオ信号を受信するステップであり、上記複数の第1のサンプルは第1のサンプリングレートで生成される、ステップと、上記複数の第1のサンプルをダウンサンプリングして第2のサンプリングレートで複数の第2のサンプルを生成するステップであり、上記第2のサンプリングレートは上記第1のサンプリングレートより低い、ステップと、上記第2のサンプリングレートにおける上記複数の第2のサンプルに基づいて複数のピッチ候補を決定するステップと、上記複数のピッチ候補に基づいて第1のピッチラグを決定するステップと、をさらに含む。
第2の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記複数のピッチ候補に基づいて上記第1のピッチラグを決定するステップは、第1の窓を用いた正規化相互相関又は第2の窓を用いた自己相関を最大化することにより上記第1のピッチラグを決定するステップを含み、上記第2の窓は上記第1の窓より大きい。
第3の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、当該方法は、上記決定された第1のピッチラグに基づいて第1の探索範囲を決定するステップと、上記第1の探索範囲内で第1の波形ピーク位置及び第2の波形ピーク位置を決定するステップと、上記第1の波形ピーク位置及び上記第2の波形ピーク位置に基づいて第2のピッチラグを決定するステップと、をさらに含む。
第4の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、当該方法は、上記第2のピッチラグに基づいて第2の探索範囲を決定するステップと、第3のサンプリングレートで上記第2の探索範囲内で第3のピッチラグを決定するステップであり、上記第3のサンプリングレートは上記第2のサンプリングレートより高い、ステップと、上記入力オーディオ信号の上記ピッチラグを上記第3のピッチラグとして決定するステップと、をさらに含む。
第5の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記第3のサンプリングレートで上記第2の探索範囲内で上記第3のピッチラグを決定するステップは、上記第3のサンプリングレートで上記第2の探索範囲内で正規化相互相関アプローチを使用して上記第3のピッチラグを決定するステップを含む。
第6の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、当該方法は、少なくとも上記所定数のフレームについて、上記入力オーディオ信号の上記ピッチゲインが上記所定閾値を下回ること、又は上記ピッチラグの上記変化が上記所定範囲内でなかったことのうち少なくとも1つを決定したことに応答して、上記入力オーディオ信号の上記現在のフレームに対してピッチゲインをゼロに設定してPLCを改善するステップ、をさらに含む。
第7の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、当該方法は、上記入力オーディオ信号の上記ピッチゲインが少なくとも上記所定数のフレームについて上記所定閾値より連続的に高いこと、又は上記ピッチラグの上記変化が少なくとも上記所定数のフレームについて上記所定範囲内であったことのうち少なくとも1つを決定したことに応答して、上記入力オーディオ信号の上記現在のフレームに対してピッチゲインをゼロに人工的にリセットしてPLCを改善するステップ、をさらに含む。
第2の実装において、電子デバイスが、命令を含む非一時的メモリ記憶装置と、上記メモリ記憶装置と通信する1つ以上のハードウェアプロセッサと、を含み、上記1つ以上のハードウェアプロセッサは上記命令を実行して、少なくとも所定数のフレームについての入力オーディオ信号のピッチゲイン及びピッチラグを決定し、少なくとも上記所定数のフレームについて、上記入力オーディオ信号の上記ピッチゲインが所定閾値を超えたこと、及び上記入力オーディオ信号の上記ピッチラグの変化が所定範囲内であったことを決定し、少なくとも上記所定数のフレームについて、上記入力オーディオ信号のピッチゲインが上記所定閾値を超えたこと、及び上記ピッチラグの上記変化が上記所定範囲内であったことを決定したことに応答して、上記入力オーディオ信号の現在のフレームに対してピッチゲインを設定してPLCを改善する。
前述及び他の記載の実装は各々、任意で、以下の特徴の1つ以上を含むことができる。
第1の特徴は、以下の特徴のうち任意のものと組み合わせ可能であり、上記1つ以上のハードウェアプロセッサはさらに上記命令を実行して、複数の第1のサンプルを含む上記入力オーディオ信号を受信し、上記複数の第1のサンプルは第1のサンプリングレートで生成され、上記複数の第1のサンプルをダウンサンプリングして第2のサンプリングレートで複数の第2のサンプルを生成し、上記第2のサンプリングレートは上記第1のサンプリングレートより低く、上記第2のサンプリングレートにおける上記複数の第2のサンプルに基づいて複数のピッチ候補を決定し、上記複数のピッチ候補に基づいて第1のピッチラグを決定する。
第2の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記複数のピッチ候補に基づいて上記第1のピッチラグを決定することは、第1の窓を用いた正規化相互相関又は第2の窓を用いた自己相関を最大化することにより上記第1のピッチラグを決定することを含み、上記第2の窓は上記第1の窓より大きい。
第3の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記1つ以上のハードウェアプロセッサはさらに上記命令を実行して、上記決定された第1のピッチラグに基づいて第1の探索範囲を決定し、上記第1の探索範囲内で第1の波形ピーク位置及び第2の波形ピーク位置を決定し、上記第1の波形ピーク位置及び上記第2の波形ピーク位置に基づいて第2のピッチラグを決定する。
第4の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記1つ以上のハードウェアプロセッサはさらに上記命令を実行して、上記第2のピッチラグに基づいて第2の探索範囲を決定し、第3のサンプリングレートで上記第2の探索範囲内で第3のピッチラグを決定し、上記第3のサンプリングレートは上記第2のサンプリングレートより高く、上記入力オーディオ信号の上記ピッチラグを上記第3のピッチラグとして決定する。
第5の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記第3のサンプリングレートで上記第2の探索範囲内で上記第3のピッチラグを決定することは、上記第3のサンプリングレートで上記第2の探索範囲内で正規化相互相関アプローチを使用して上記第3のピッチラグを決定することを含む。
第6の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記1つ以上のハードウェアプロセッサはさらに上記命令を実行して、少なくとも上記所定数のフレームについて、上記入力オーディオ信号の上記ピッチゲインが上記所定閾値を下回ること、又は上記ピッチラグの上記変化が上記所定範囲内でなかったことのうち少なくとも1つを決定したことに応答して、上記入力オーディオ信号の上記現在のフレームに対してピッチゲインをゼロに設定してPLCを改善する。
第7の特徴は、前の特徴のうち任意のものと組み合わせ可能であり、上記1つ以上のハードウェアプロセッサはさらに上記命令を実行して、上記入力オーディオ信号の上記ピッチゲインが少なくとも上記所定数のフレームについて上記所定閾値より連続的に高いこと、又は上記ピッチラグの上記変化が少なくとも上記所定数のフレームについて上記所定範囲内であったことのうち少なくとも1つを決定したことに応答して、上記入力オーディオ信号の上記現在のフレームに対してピッチゲインをゼロに人工的にリセットしてPLCを改善する。
第3の実装において、非一時的コンピュータ読取可能媒体が、LTPを実行するコンピュータ命令を記憶し、上記コンピュータ命令は、1つ以上のハードウェアプロセッサにより実行されたときに上記1つ以上のハードウェアプロセッサに動作を実行させ、上記動作は、少なくとも所定数のフレームについての入力オーディオ信号のピッチゲイン及びピッチラグを決定することと、少なくとも上記所定数のフレームについて、上記入力オーディオ信号の上記ピッチゲインが所定閾値を超えたこと、及び上記入力オーディオ信号の上記ピッチラグの変化が所定範囲内であったことを決定することと、少なくとも上記所定数のフレームについて、上記入力オーディオ信号のピッチゲインが上記所定閾値を超えたこと、及び上記ピッチラグの上記変化が上記所定範囲内であったことを決定したことに応答して、上記入力オーディオ信号の現在のフレームに対してピッチゲインを設定してPLCを改善することと、を含む。
前述及び他の記載の実装は各々、任意で、以下の特徴の1つ以上を含むことができる。
第1の特徴は、以下の特徴のうち任意のものと組み合わせ可能であり、上記動作は、複数の第1のサンプルを含む上記入力オーディオ信号を受信することであり、上記複数の第1のサンプルは第1のサンプリングレートで生成される、ことと、上記複数の第1のサンプルをダウンサンプリングして第2のサンプリングレートで複数の第2のサンプルを生成することであり、上記第2のサンプリングレートは上記第1のサンプリングレートより低い、ことと、上記第2のサンプリングレートにおける上記複数の第2のサンプルに基づいて複数のピッチ候補を決定することと、上記複数のピッチ候補に基づいて第1のピッチラグを決定することと、をさらに含む。
第2の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記複数のピッチ候補に基づいて上記第1のピッチラグを決定することは、第1の窓を用いた正規化相互相関又は第2の窓を用いた自己相関を最大化することにより上記第1のピッチラグを決定することを含み、上記第2の窓は上記第1の窓より大きい。
第3の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記動作は、上記決定された第1のピッチラグに基づいて第1の探索範囲を決定することと、上記第1の探索範囲内で第1の波形ピーク位置及び第2の波形ピーク位置を決定することと、上記第1の波形ピーク位置及び上記第2の波形ピーク位置に基づいて第2のピッチラグを決定することと、をさらに含む。
第4の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記動作は、上記第2のピッチラグに基づいて第2の探索範囲を決定することと、第3のサンプリングレートで上記第2の探索範囲内で第3のピッチラグを決定することであり、上記第3のサンプリングレートは上記第2のサンプリングレートより高い、ことと、上記入力オーディオ信号の上記ピッチラグを上記第3のピッチラグとして決定することと、をさらに含む。
第5の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記第3のサンプリングレートで上記第2の探索範囲内で上記第3のピッチラグを決定することは、上記第3のサンプリングレートで上記第2の探索範囲内で正規化相互相関アプローチを使用して上記第3のピッチラグを決定することを含む。
第6の特徴は、前の又は以下の特徴のうち任意のものと組み合わせ可能であり、上記動作は、少なくとも上記所定数のフレームについて、上記入力オーディオ信号の上記ピッチゲインが上記所定閾値を下回ること、又は上記ピッチラグの上記変化が上記所定範囲内でなかったことのうち少なくとも1つを決定したことに応答して、上記入力オーディオ信号の上記現在のフレームに対してピッチゲインをゼロに設定してPLCを改善すること、をさらに含む。
第7の特徴は、前の特徴のうち任意のものと組み合わせ可能であり、上記動作は、上記入力オーディオ信号の上記ピッチゲインが少なくとも上記所定数のフレームについて上記所定閾値より連続的に高いこと、又は上記ピッチラグの上記変化が少なくとも上記所定数のフレームについて上記所定範囲内であったことのうち少なくとも1つを決定したことに応答して、上記入力オーディオ信号の上記現在のフレームに対してピッチゲインをゼロに人工的にリセットしてPLCを改善すること、をさらに含む。
本開示においていくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の主旨又は範囲から逸脱することなく多くの他の特定の形態で具現化され得ることが理解され得る。本例は、限定的なものでなく例示的なものとみなされるべきであり、その意図は、本明細書に与えられた詳細に限定されるものではない。例えば、様々な要素又はコンポーネントが別のシステムに組み合わせられ又は統合されてもよく、あるいは、特定の特徴が省略されてもよく、又は実装されなくてもよい。
さらに、様々な実施形態において個別又は別個として記載及び例示された手法、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく他のシステム、コンポーネント、手法、又は方法と組み合わせられ又は統合され得る。変更、置換、及び改変の他の例は当業者により確認可能であり、本明細書に開示された主旨及び範囲から逸脱することなく行われ得る。
本発明の実施形態及び本明細書に記載された機能動作の全ては、デジタル電子回路で、又は本明細書に開示された構造及びそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、若しくはハードウェアで、又はこれらの1つ以上の組み合わせで実施され得る。本発明の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のため又はデータ処理装置の動作を制御するためにコンピュータ読取可能媒体上にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実施されてもよい。コンピュータ読取可能媒体は、非一時的コンピュータ読取可能記憶媒体、マシン読取可能記憶デバイス、マシン読取可能記憶基板、メモリデバイス、マシン読取可能伝搬信号に影響を与える物質の組成、又はこれらの1つ以上の組み合わせでもよい。用語「データ処理装置」は、例えば、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及びマシンを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらの1つ以上の組み合わせを構成するコードを含んでもよい。伝搬信号は、人工的に生成された信号、例えば、適切な受信器装置への送信のために情報をエンコードするために生成されるマシン生成の電気、光、又は電磁信号である。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタプリタ型言語を含む任意の形式のプログラミング言語で書かれてよく、それは、スタンドアロンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとしてを含む、任意の形態でデプロイされてよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム又はデータを保持するファイルの一部分(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)に、問題のプログラム専用の単一ファイルに、又は複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を記憶するファイル)に記憶されてもよい。コンピュータプログラムは、1つのコンピュータ上で、又は複数のコンピュータ上で実行されるようにデプロイされてもよく、該複数のコンピュータは、1つのサイトに配置され、又は複数のサイトにわたり分散され、通信ネットワークにより相互接続される。
本明細書に記載されるプロセス及び論理フローは、入力データに対して動作し出力を生成することにより機能を実行するために1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサにより実行されてもよい。プロセス及び論理フローはさらに、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)により実行されてもよく、装置が、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)として実装されてもよい。
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び専用双方のマイクロプロセッサ、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読取専用メモリ若しくはランダムアクセスメモリ又は双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するプロセッサと、命令及びデータを記憶する1つ以上のメモリデバイスである。一般に、コンピュータはさらに、データを記憶する1つ以上の大容量記憶デバイス、例えば、磁気、磁気光ディスク、又は光ディスクを含み、あるいはこれらからデータを受信し又はこれらにデータを転送するために動作上結合され、あるいは双方をなす。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、いくつか例を挙げるとタブレットコンピュータ、携帯電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤ、グローバルポジショニングシステム(GPS)受信機に埋め込まれてもよい。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読取可能媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイス;磁気ディスク、例えば、内部ハードディスク又はリムーバブルディスク;光磁気ディスク;並びにCD ROM及びDVD-ROMディスクを含む、全ての形態の不揮発性メモリ、媒体、及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路により補足され、あるいはこれに組み込まれてもよい。
ユーザとの対話を提供するために、本発明の実施形態は、ユーザに情報を表示するディスプレイデバイス、例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供することができるキーボード及びポインティングデバイス、例えば、マウス又はトラックボールとを有するコンピュータ上で実施されてもよい。他の種類のデバイスを使用して、ユーザとの対話を同様に提供してもよく、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックでもよく、ユーザからの入力は、音響、発話、又は触覚入力を含む任意の形式で受けてもよい。
本発明の実施形態は、コンピューティングシステムにおいて実施されてもよく、該コンピューティングシステムは、バックエンドコンポーネント、例えば、データサーバを含み、あるいはミドルウェアコンポーネント、例えば、アプリケーションサーバを含み、あるいはフロントエンドコンポーネント、例えば、ユーザが本発明の実装と対話することができるグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含み、あるいは1つ以上のこのようなバックエンド、ミドルウェア、又はフロントエンドコンポーネントの任意の組み合わせである。システムのコンポーネントは、デジタルデータ通信の任意の形態又は媒体、例えば通信ネットワークにより相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)及びワイドエリアネットワーク(「WAN」)、例えばインターネットを含む。
コンピューティングシステムは、クライアント及びサーバを含んでもよい。クライアントとサーバは、一般に、互いに離れており、通常、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
いくつかの実装が上記で詳細に説明されたが、他の修正が可能である。例えば、クライアントアプリケーションは、デリゲートにアクセスするものとして説明されているが、他の実装において、デリゲートは、1つ以上のプロセッサにより実装される他のアプリケーション、例えば、1つ以上のサーバ上で実行されるアプリケーションなどにより用いられてもよい。さらに、図に示された論理フローは、所望の結果を達成するために、図示された特定の順序又は順番を必要としない。さらに、他のアクションが提供されてもよく、あるいはアクションが記述されたフローから消去されてもよく、他のコンポーネントが記述されたシステムに追加され、又は記述されたシステムから除去されてもよい。したがって、他の実装は、以下の特許請求の範囲の範囲内にある。
本明細書は多くの具体的な実装詳細を含むが、これらは、いずれかの発明の又は請求され得るものの範囲に対する限定とみなされるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明とみなされるべきである。別個の実施形態の文脈において本明細書に記載される特定の特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈において記載される様々な特徴は、複数の実施形態において別個に、又は任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され、さらには最初にそのようなものとして請求されることがあるが、請求された組み合わせからの1つ以上の特徴を、いくつかの場合に組み合わせから切り取ることができ、請求された組み合わせは、サブコンビネーション又はサブコンビネーションのバリエーションに向けられてもよい。
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作を図示された特定の順序で又は順番に実行すること、又は、例示された全ての動作を実行することを要求するものとして理解されるべきではない。特定の状況では、マルチタスキング及び並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムモジュール及びコンポーネントの分離は、全ての実施形態においてそのような分離を要求するものとして理解されるべきでなく、説明されたプログラムコンポーネント及びシステムは、一般に、単一のソフトウェア製品に一緒に統合でき、又は複数のソフトウェア製品にパッケージ化できることを理解されたい。
主題事項の特定の実施形態が説明された。他の実施形態が以下の特許請求の範囲の範囲内である。例えば、特許請求の範囲に記載されたアクションは異なる順序で実行され、依然として所望の結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、図示された特定の順序又は順番を必ずしも必要としない。特定の実装では、マルチタスキング及び並列処理が有利であり得る。