(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-31
(45)【発行日】2025-04-08
(54)【発明の名称】周波数解像度の向上した低遅延オーディオフィルタバンク
(51)【国際特許分類】
H04R 3/04 20060101AFI20250401BHJP
H03H 17/02 20060101ALI20250401BHJP
【FI】
H04R3/04
H03H17/02 601J
H03H17/02 613C
(21)【出願番号】P 2021572017
(86)(22)【出願日】2020-06-25
(86)【国際出願番号】 US2020039472
(87)【国際公開番号】W WO2020264064
(87)【国際公開日】2020-12-30
【審査請求日】2023-06-22
(32)【優先日】2019-06-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507236292
【氏名又は名称】ドルビー ラボラトリーズ ライセンシング コーポレイション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マグラス,デイヴィッド エス.
【審査官】川▲崎▼ 博章
(56)【参考文献】
【文献】特表2011-517908(JP,A)
【文献】特開2001-007769(JP,A)
【文献】特開2014-049972(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04R 3/04
H03H 17/02
(57)【特許請求の範囲】
【請求項1】
オーディオ処理の方法であって、前記方法は、
複数の
元のインパルス応答から複数の変更インパルス応答を生成するステップであって、前記複数の
元のインパルス応答は、それぞれ複数の周波数に対応し、前記複数の変更インパルス応答を生成するステップは、前記複数の
元のインパルス応答のうちの少なくとも1つに対してフェード動作及び時間反転動作を実行することを含む、ステップと、
前記複数の変更インパルス応答を有する
複数のフィルタを用いて入力信号をフィルタリングして、出力信号を生成するステップと、
を含
み、
前記複数の変更インパルス応答を生成するステップは、
第1元のインパルス応答に基づき、プレリップル応答を生成するステップと、
前記プレリップル応答に基づき、ポストリップル応答を生成するステップと、
前記第1元のインパルス応答を加算し、前記プレリップル応答を減算し、及び前記ポストリップル応答を加算して、第1変更インパルス応答を生成するステップと、
を含む、方法。
【請求項2】
前記プレリップル応答を生成するステップは、
前記第1
元のインパルス応答に対して前記フェード動作を実行して、前記プレリップル応答を生成するステップを含む、請求項
1に記載の方法。
【請求項3】
前記ポストリップル応答を生成するステップは、
前記プレリップル応答に対して前記時間反転動作を実行して、前記ポストリップル応答を生成するステップを含む、請求項
1~2のいずれか一項に記載の方法。
【請求項4】
オーディオ処理の方法であって、前記方法は、
複数の元のインパルス応答から複数の変更インパルス応答を生成するステップであって、前記複数の元のインパルス応答は、それぞれ複数の周波数に対応し、前記複数の変更インパルス応答を生成するステップは、前記複数の元のインパルス応答のうちの少なくとも1つに対してフェード動作及び時間反転動作を実行することを含む、ステップと、
前記複数の変更インパルス応答を有する複数のフィルタを用いて入力信号をフィルタリングして、出力信号を生成するステップと、
を含み、
前記複数の変更インパルス応答を生成するステップは、
第1
元のインパルス応答に基づき、第1フィルタ応答を生成するステップと、
前記第1フィルタ応答に基づき、プレリップル応答を生成するステップと、
前記プレリップル応答に基づき、中間応答を生成するステップと、
前記中間応答に基づき、第2フィルタ応答を生成するステップと、
前記第2フィルタ応答に基づき、ポストリップル応答を生成するステップと、
前記第1フィルタ応答を加算し、前記ポストリップル応答を加算し、及び前記プレリップル応答を減算して、第1変更インパルス応答を生成するステップと、
を含む
、方法。
【請求項5】
前記第1フィルタ応答を生成するステップは、
前記第1
元のインパルス応答に対して第1全域通過フィルタ動作を実行して、前記第1フィルタ応答を生成するステップを含む、請求項
4に記載の方法。
【請求項6】
前記第1全域通過フィルタ動作は、前記第1
元のインパルス応答に伝達関数G
ap:
【数46】
を適用する、請求項
5に記載の方法。
【請求項7】
前記第1全域通過フィルタ動作は、10Hzと200Hzとの間の単一の実数の極を有する1次フィルタである、請求項
5~6のいずれか一項に記載の方法。
【請求項8】
前記第1全域通過フィルタ動作は、F
sサンプル毎秒のレートでサンプリングされたオーディオ信号のL個のサンプルの遅延を有し、前記
第1全域通過フィルタ動作の極の周波数fは、次式:
【数47】
に従い計算される、請求項
5~7のいずれか一項に記載の方法。
【請求項9】
前記プレリップル応答を生成するステップは、
前記第1フィルタ応答に対して前記フェード動作を実行して、前記プレリップル応答を生成するステップを含む、請求項
4~8のいずれか一項に記載の方法。
【請求項10】
前記中間応答を生成するステップは、
前記プレリップル応答に対して前記時間反転動作を実行して、前記中間応答を生成するステップを含む、請求項
4~9のいずれか一項に記載の方法。
【請求項11】
前記第2フィルタ応答を生成するステップは、
前記中間応答に対して第2全域通過フィルタ動作を実行して、前記第2フィルタ応答を生成するステップを含む、請求項
4~10のいずれか一項に記載の方法。
【請求項12】
前記ポストリップル応答を生成するステップは、
前記第2フィルタ応答に対して第3全域通過フィルタ動作を実行して、前記ポストリップル応答を生成するステップを含む、請求項
4~11のいずれか一項に記載の方法。
【請求項13】
複数の変更インパルス応答に複数の重みを適用することにより、複数の加重変更インパルス応答を生成するステップ、を更に含み、
前記入力信号をフィルタリングするステップは、前記複数の加重変更インパルス応答を有する
複数のフィルタを用いて前記入力信号をフィルタリングして、前記出力信号を生成するステップを含む、請求項1~
12のいずれか一項に記載の方法。
【請求項14】
再構成インパルス応答は、前記加重変更インパルス応答の和に対応し、500Hzより上の周波数範囲に渡りほぼ一定であり、500Hzより下では増大する、請求項
13に記載の方法。
【請求項15】
前記複数の加重変更インパルス応答のうちの少なくとも1つの帯域幅は、前記再構成インパルス応答のグループ遅延が増大するのに従い、狭くなる、請求項
14に記載の方法。
【請求項16】
前記複数
の重みは時間と共に変化する、請求項
13~15のいずれか一項-記載の方法。
【請求項17】
前記入力信号は、複数の入力信号のうちの1つであり、前記複数の変更インパルス応答は、複数のフィルタバンクにより適用され、前記出力信号は、
複数の出力信号のうちの1つであり、所与のフィルタバンクは所与の入力信号をフィルタリングして所与の出力信号を生成する、請求項1~
16のいずれか一項に記載の方法。
【請求項18】
プロセッサにより実行されると請求項1~
17のいずれか一項に記載の方法
を実行するよう機器を制御するコンピュータプログラム
。
【請求項19】
オーディオ処理のための機器であって、前記機器は、
プロセッサと、
メモリと、を含み、
前記プロセッサは、
前記メモリに格納されたコンピュータプログラムを実行すると、請求項1~17のいずれか一項に記載の方法を実行するよう前記機器を制御するよう構成される、機器。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、米国仮特許出願番号第63/028,966号、2020年5月22日出願、及び米国仮特許出願番号第62/866,823号、2019年6月26日出願の優先権を主張する。両出願は、参照によりその全体がここに組み込まれる。
【0002】
[技術分野]
本開示は、オーディオ処理、特に動的オーディオフィルタに関する。
【背景技術】
【0003】
特に断りの無い限り、本章に記載されるアプローチは、本願の請求の範囲に対する従来技術ではなく、本章に含まれることにより従来技術として認められるものではない。
【0004】
入力オーディオ信号が処理されているとき、多くの場合、種々の周波数における利得が動的係数のセットにより指定されるように、オーディオ信号を変更するためにフィルタバンクを使用することが望ましい。動的オーディオフィルタは、オーディオフィルタ応答が帯域通過フィルタ応答の加重和から形成される、多数の予め計算された帯域通過フィルタを使用することにより実装できる。重みは、動的に変更されてよい。
【0005】
一般に、周波数帯域は、同じ帯域幅を有しない。むしろ、低い周波数フィルタは、高い周波数フィルタより狭い(及びより近い間隔を有する)。結果として、高周波数フィルタ(それらのエネルギの大部分はより少数のサンプルに渡り広がる)のインパルス応答は、低周波数フィルタ(それらのエネルギはより多数のサンプルに渡り広がる)のインパルス応答よりも、よりコンパクトになる。
【発明の概要】
【0006】
既存のフィルタバンクに伴う1つの問題は遅延である。低周波数フィルタでは、インパルス応答を正確に表現するために、定められた数のサンプルが使用されなければならず、これはフィルタの遅延に対応する。高周波数フィルタは、低周波数フィルタほど多数のサンプルを使用する必要がないので、より低い遅延を有する。しかしながら、フィルタリング済み帯域を再結合するために低周波数フィルタ及び高周波数フィルタの両方を含むフィルタバンクでは、高周波数フィルタは、低周波数フィルタの遅延に一致するよう遅延される必要がある。低周波数フィルタの遅延は、フィルタバンクの全体の遅延を含む。
【0007】
以上を鑑みると、フィルタのインパルス応答を保存しながら、低周波数における遅延を低減する必要がある。本願明細書には、低遅延フィルタ設計に関する技術が記載される。
【0008】
実施形態によると、オーディオ処理の方法は、
複数の理想インパルス応答から複数の変更インパルス応答を生成するステップであって、前記複数の理想インパルス応答は、それぞれ複数の周波数に対応し、前記複数の変更インパルス応答を生成するステップは、前記複数の理想インパルス応答のうちの少なくとも1つに対してフェード動作及び時間反転動作を実行することを含む、ステップと、
前記複数の変更インパルス応答を有する入力信号をフィルタリングして、出力信号を生成するステップと、
を含む。前記方法は、前記複数の変更インパルス応答を有する入力信号をフィルタリングして、出力信号を生成するステップを更に含む。
【0009】
前記複数の変更インパルス応答を生成するステップは、
理想インパルス応答に基づき、プレリップル応答を生成するステップと、
前記プレリップル応答に基づき、ポストリップル応答を生成するステップと、
前記第1理想インパルス応答を加算し、前記プレリップル応答を減算し、及び前記ポストリップル応答を加算して、第1変更インパルス応答を生成するステップと、
を含んでよい。
【0010】
前記複数の変更インパルス応答を生成するステップは、
第1理想インパルス応答に基づき、第1フィルタ応答を生成するステップと、
前記第1フィルタ応答に基づき、プレリップル応答を生成するステップと、
前記プレリップル応答に基づき、中間応答を生成するステップと、
前記中間応答に基づき、第2フィルタ応答を生成するステップと、
前記第2フィルタ応答に基づき、ポストリップル応答を生成するステップと、
前記フィルタ応答を加算し、前記ポストリップル応答を加算し、及び前記プレリップル応答を減算して、第1変更インパルス応答を生成するステップと、
を含んでよい。
【0011】
別の実施形態によると、機器は、プロセッサとメモリとを含む。前記プロセッサは、
複数の理想インパルス応答から複数の変更インパルス応答を生成するよう前記機器を制御するよう構成され、前記複数の理想インパルス応答は、それぞれ複数の周波数に対応し、前記複数の変更インパルス応答を生成することは、前記複数の理想インパルス応答のうちの少なくとも1つに対してフェード動作及び時間反転動作を実行することを含む。前記プロセッサは、前記複数の変更インパルス応答を有する入力信号をフィルタリングして、出力信号を生成するよう前記機器を制御するよう更に構成される。前記機器は、更に、本願明細書に記載され得方法のうちの1つ以上と同様の詳細を含んでよい。
【0012】
別の実施形態によると、非一時的コンピュータ可読媒体は、プロセッサにより実行されると本願明細書に記載の方法を含む処理を実行するよう機器を制御するコンピュータプログラムを格納している。
【0013】
以下の詳細な説明及び添付の図面は、種々の実装の特性及び利点の更なる理解を提供する。
【図面の簡単な説明】
【0014】
【0015】
【
図2】フィルタバンク周波数応答のセットを示すグラフ200である。
【0016】
【
図3】例示的な結合フィルタ応答を示すグラフ300である。
【0017】
【0018】
【0019】
【0020】
【0021】
【
図8】時間ドメインフィルタバンクインパルス応答の例示的なセットを示すグラフ800である。
【0022】
【
図9】インパルス応答を変更する改良された方法を示す信号のグラフ900である。
【0023】
【
図10】フィルタ応答を生成する方法1000のブロック図である。
【0024】
【
図11】
図10に関連する種々の信号を示すグラフ1100である。
【0025】
【
図12】位相歪み1202及びグループ遅延1204を示すグラフのセットである。
【0026】
【
図13】種々のインパルス応答を示すグラフ1300である。
【0027】
【
図14】フィルタ応答を生成する方法1400のブロック図である。
【0028】
【
図15】
図14に関連する種々の信号を示すグラフ1500である。
【0029】
【
図16】オーディオ処理の方法1600のフロー図である。
【0030】
【
図17】オーディオ処理の方法1700のフロー図である。
【0031】
【
図18】オーディオ処理の方法1800のフロー図である。
【発明を実施するための形態】
【0032】
本願明細書には、オーディオフィルタに関する技術が記載される。以下の詳細な説明を通じて、説明を目的として、本発明の完全な理解を提供するために、多数の例及び特定の詳細が説明される。しかしながら、当業者には、請求の範囲により定められるような本開示が、これらの例における特徴の一部又は全部を、単独で又は以下に記載される他の特徴と組み合わせて含んでよく、更に本願明細書に記載され得特徴及び概念の変更及び均等物を含んでよいことが明らかである。
【0033】
以下の説明では、種々の方法、処理、及び手順が詳述される。特定のステップが特定の順序で記載されることがあるが、そのような順序は主に便宜上、及び明確さのためである。特定のステップは、1回より多く繰り返されてよく、他のステップの前又は後に生じてよく(それらのステップが別の順序で記載される場合でも)、他のステップと並行して生じてよい。第1ステップが第2ステップが開始される前に完了していなければならない場合にのみ、第2ステップは、第1ステップの後に続く必要がある。そのような状況は、文脈から明確でないときに、具体的に指摘される。
【0034】
本願明細書では、用語「及び」、「又は」、「及び/又は」が使用される。そのような用語は、包含的意味を有するとして解釈されるべきである。例えば、「A及びB」は、少なくとも以下:「A及びBの両方」、「少なくともA及びBの両方」を意味してよい。例えば、「A又はB」は、少なくとも以下:「少なくともA」、「少なくともB」、「A及びBの両方」、「少なくともA及びBの両方」を意味してよい。例えば、「A及び/又はB」は、少なくとも以下:「A及びB」、「A又はB」を意味してよい。排他的論理和が意図されるとき、そのようなことに特に留意すべきである(例えば、「A又はBのいずれか」、「A及びBのうちの多くても1つ」)。
【0035】
本願明細書は、ブロック、要素、コンポーネント、回路、等のような構造に関連付けられる種々の処理関数を記載する。一般に、これらの構造は、1つ以上のコンピュータプログラムにより制御されるプロセッサにより実装されてよい。
【0036】
図1は、フィルタバンク100のブロック図である。フィルタバンク100は、個々に示されない多数のフィルタを含む。フィルタバンク100は、多数の重み102(重み付け係数とも呼ばれる)により構成される。重み102の各々は、特定の周波数帯域の利得に対応する。フィルタバンク100は、入力信号104を受信し、入力信号104に重み102を適用し、出力信号106を生成する。重み102は時間と共に変化してよい。
【0037】
入力信号104(及び出力信号106)は、単一チャネル信号であってよい。この場合、フィルタバンク100は、多数のフィルタを含み、各フィルタは重み102のうちの1つ、及び特定の周波数帯域に対応する。入力信号104(及び出力信号106)は、マルチチャネル信号であってよい。この場合、フィルタバンク100は、多数のフィルタアレイを含み、各フィルタアレイはチャネルのうちの1つに対応し、所与のアレイの中の各フィルタは重み102のうちの1つ、及び特定の周波数帯域に対応する。入力信号104及び出力信号106は、異なる数のチャネルを有するマルチチャネル信号であってよい。各フィルタアレイは、入力チャネルのうちの1つ及び出力チャネルのうちの1つに対応する。
【0038】
一般に、本願明細書に記載されるフィルタリング技術は、フィルタアレイ内の各々の個別フィルタに適用されてよい。
【0039】
図2は、フィルタバンク周波数応答のセットを示すグラフ200である。グラフ200で、x軸は周波数であり、y軸は利得である。例として、B個の帯域通過フィルタ応答のセットh
1(n)、h
2(n)、...、h
B(n)は、予め計算されてよく、帯域通過中心周波数fc
1、fc
2、...、fc
Bを有する。理想的には、フィルタh
b(n)は、以下を(ほぼ)満たす周波数応答H
b(f)を有する:
【数1】
【0040】
フィルタH2(f)の周波数応答202は、f=fc2で1の利得、及びf=fcb、b≠2の全ての他の値で0の利得を有するとして示される。他のフィルタHb(f)は、他の周波数fcbで1の利得を有する。周波数fs/2は、サンプリングレート(ナイキスト(Nyquist)レート)の半分の周波数である。
【0041】
重み付け係数のセットw
1、w
2、...、w
Bは、次に、結合フィルタ応答を形成するために使用されてよい。時間ドメイン及び周波数ドメインバージョンの式は、以下の通りである:
【数2】
【数3】
【0042】
図3は、例示的な結合フィルタ応答を示すグラフ300である。x軸は周波数であり(5個の周波数値が示される)、y軸は利得である(5個の対応する重みが示される)。f=fc
2における利得304は、例としてw
2に等しい。他の周波数fc
bは、それらそれぞれの重みw
bに対応する利得を有する。実際の適用では、この結合フィルタ応答は、
図4~5に示されるように、種々の方法で実装されてよい。
【0043】
図4は、フィルタバンク400のブロック図である。フィルタバンク400は、多数の畳み込みブロック402、多数の乗算ブロック404、及び加算ブロック406を含む。フィルタバンク400は、入力信号410(Xとして示され、x(n)とも呼ばれ、これは所与のサンプルnの入力信号を参照する)を受信し、出力信号412(Yとして示され、y(n)とも呼ばれる)を生成する。
【0044】
畳み込みブロック402の各々は、通常、インパルス応答420(hbとして示される)に関連付けられる所与の周波数、周波数帯域、又は周波数範囲に対応する。所与の畳み込みブロック402は、入力信号410(例えばx(n))をインパルス応答420(例えばhb(n))により畳み込み、フィルタリング済み信号422(例えばxb(n))を生成する。
【0045】
乗算ブロック404の各々は、重み430(wbとして示される)に関連付けられ、畳み込みブロック402のうちの1つに関連付けられる(従って、同様に周波数帯域に関連付けられる)。所与の乗算ブロック404は、フィルタリング済み信号422(例えばxb(n))を重み430(例えばwb)により乗算し、加重信号432を生成する。
【0046】
加算ブロック406は、乗算ブロック404の各々からの加重信号432を加算して、出力信号412を生成する。
【0047】
これらの動作を表す式は以下の通りである:
【数4】
【数5】
【数6】
【0048】
式(4)で使用される演算子:
【数7】
は、x(n)によるh(n)の畳み込み(convolution)を示す。
【0049】
式(5)は、畳み込み演算の詳細を示し、結果としてサブ帯域信号x1(n)、x2(n)、...、xB(n)、を生成する。次に、それぞれの重みにより乗算されたこれらのサブ帯域信号の和として、式(6)に示されるように、出力信号412(例えば、y(n))が形成される。
【0050】
この方法によると、重みは時間と共に変化してよく、従って、wbは、式(6)においてwb(n)により置き換えられてもよい。
【0051】
図5は、フィルタバンク500のブロック図である。フィルタバンク500は、多数の乗算ブロック502、加算ブロック504、及び畳み込みブロック506、を含む。フィルタバンク500は、入力信号510(Xとして示され、x(n)とも呼ばれ、これは所与のサンプルnの入力信号を参照する)を受信し、出力信号512(Yとして示され、y(n)とも呼ばれる)を生成する。
【0052】
乗算ブロック502の各々は、通常、インパルス応答520(hbとして示される)に関連付けられる所与の周波数、周波数帯域、又は周波数範囲に対応し、重み530(wbとして示される)にも関連付けられる。所与の乗算ブロック502は、インパルス応答520(例えばhb(n))と重み付け係数530(例えばwb(n))とを乗算し、加重応答532のうちの1つを生成する。
【0053】
加算ブロック504は、乗算ブロック502の各々からの加重応答532を加算して、結合フィルタ応答540を生成する。
【0054】
畳み込みブロック506は、入力信号510(例えばx(n))を結合フィルタ応答540により畳み込み、出力信号512(例えばy(n))を生成する。
【0055】
通常、フィルタバンク500は、フィルタ応答の周期的計算を実行する動的フィルタを実装する。例えば、入力オーディオは、(重なり合う)オーディオブロックで処理されてよく、ブロック#kの時間に、(周波数ドメインにおける)フィルタ応答は、式(3)に従い計算されてよい。
【0056】
一実施形態では、オーディオブロック間の円滑化されたクロスフェードを有する重なり合うオーディオブロックを用いて、周波数ドメインにおいて実際の畳み込み演算を実装する。これは、フィルタ応答をブロック毎に変化させることを可能にする。
【0057】
1つの一般的な適用では、フィルタバンク応答は、因果的フィルタ(causal filter)であり、フィルタ出力が過去及び現在の入力にのみ依存する(従って、次の通りである):
【数8】
フィルタバンク応答が因果的である場合、結合応答(h(n)、式(2)による)も因果的である。
【0058】
図6は、インパルス応答600のグラフである。インパルス応答600は、フィルタを適用することにより生じ、その結果:
【数9】
ここで、Lは正整数である。この特性を有するフィルタは、実際に、フィルタ実装にL個のサンプルの追加遅延を加算することにより、実装できる(その結果、インパルス応答が、時間的にL個のサンプルだけシフトされ、それらを因果的フィルタとして実装することを可能にする)。
【0059】
図7は、フィルタアレイ700のブロック図である。フィルタアレイ700は、多数のフィルタ702(Filter
ny,nxとして示される)及び多数の追加ブロック704を含む。フィルタアレイ700は、多数の入力信号710(X
1~X
nxとして示される)を受信し、多数の出力信号712(Y
1~Y
nyとして示される)を生成する。通常、フィルタアレイ700は、マルチチャネル入力、マルチチャネル出力システムの動作を示し、フィルタは全ての入力を全ての出力に結合する。フィルタ700は、マルチチャネルフィルタバンクとしても概念化でき、周波数帯域毎に、出力を形成するために入力のミキシングを定義する[nybynx]2次元アレイが存在する。
【0060】
フィルタ702は、バンク内に配置され、各フィルタバンクは入力信号710(例えば、チャネル)のうちの1つに関連付けられる。フィルタ702の各々は、通常、本願明細書で議論される他のフィルタと同様の周波数帯域、フィルタ応答、及び重みに関連付けられる。例えば、フィルタ702の各々はフィルタバンク400(
図4を参照)、フィルタバンク500(
図5を参照)、等のようなフィルタであってよい。
【0061】
周波数ドメインフィルタ応答の観点で、フィルタアレイ700の処理を次式で説明できる:
【数10】
【0062】
本願明細書に記載される実施形態は、フィルタ702のうちの1つ以上を実装するために使用される方法に関する。明らかに、実施形態は、
図7に示されるフィルタのアレイに等しく適用可能である。
【0063】
図3に戻ると、例示的なフィルタの所望の周波数応答が示され、周波数の関数としてのフィルタ応答302の利得は、制御周波数fc
1、fc
2、...及び対応する利得値w
1、w
2、...の予め定められたセットに従い定義される。
【0064】
図3の例では、周波数fc
2におけるフィルタの利得は、利得304として示されるように、w
2により設定される。
【0065】
実施形態では、
図3の周波数応答は、多数の所定のフィルタバンク応答の加重和により達成される。例示的な応答は
図2に示され、帯域2の周波数応答が示されている。
【0066】
これらの所定のフィルタバンク応答の各々の応答を、(周波数ドメインで)Hb(f)又は代替として(時間ドメインで)hb(n)と表す。
【0067】
(
図3の302のような)所望のフィルタ応答は、所定のフィルタバンク応答の加重和から形成されてよい。これは、時間ドメイン又は周波数ドメインの和として表現できる:
【数11】
【数12】
【0068】
私たちは、所定のフィルタバンク応答の各々が因果的フィルタを表すべきであると主張することを選択できる(従って、次式):
【数13】
しかしながら、便宜上、私たちは代わりに次式を主張し:
【数14】
従って、私たちのフィルタの実装にL個のサンプルの遅延を追加する必要がある。その結果、最終的な(実現可能な)フィルタ出力y'(n)は、理想的応答y(n)の遅延バージョンとして、次式に従い計算される:
【数15】
【数16】
【数17】
【0069】
理想信号y(n)の出力サンプルnの計算は、(L個の将来の入力サンプルを含む)最大でx(n+L)までの入力サンプルを用いて計算される。これに対して、遅延信号y'(n)の出力サンプルnの計算は、最大でx(n)までの入力サンプルのみを用いて計算される。
【0070】
図6に、以下の特性を有する例示的なインパルス応答が示される:
【数18】
【0071】
実施形態では、フィルタバンクの周波数解像度(隣接するフィルタバンクの中心周波数の間の間隔、例えば、fcb+1-fcb)は小さく、遅延Lも小さい。
【0072】
1つの特定の実施形態では、低遅延L及び高解像度を提供するために、低遅延フィルタバンクが使用される。更なる実施形態では、低知覚遅延L及び高解像度を提供するために、全域通過低遅延フィルタバンクが使用される。
【0073】
理想的フィルタバンク応答
【0074】
フィルタバンクは、
図2に示されるように理想周波数応答が生成され及び次に線形位相理想時間ドメインインパルス応答に変換される方法を含む様々な手段により構成できる。
【0075】
図8は、時間ドメインフィルタバンクインパルス応答の例示的なセットを示すグラフ800である。グラフ800で、x軸は時間(サンプル数)であり、y軸は周波数である。多数のフィルタ応答がグラフ800に示され、各フィルタ応答は、F
1、F
2、...、F
Bと命名された所与の周波数に対応し、フィルタバンク内のフィルタの数は本例ではB=10である。最大の番号(例えば10)は最高の周波数に対応し、最小の番号(例えば1)は最低の周波数に対応する。フィルタFbの理想インパルス応答は、(b∈{1,2,..
.,B}について)h'
b(n)である。以下で更に議論するために、2つのフィルタ応答802及び804が示される。フィルタ応答802は第3フィルタ(h'
3(n))に対応し、フィルタ応答804は最低周波数のフィルタ(h'
1(n))に対応する。
【0076】
一般的には、理想フィルタバンク応答は、次のような完全な和の特性を示す:
【数19】
【数20】
【0077】
望ましくは、私たちは、フィルタバンクを利用でき、(
図2に示されるように)低い周波数のフィルタは、高い周波数のフィルタより狭く(及びより近い間隔)、例えば、fc
1とfc
2との間の間隔はfc
4とfc
5との間の間隔より狭い。結果として、
図8に見られるように、高周波数フィルタ(それらのエネルギの大部分はより少数のサンプルに渡り広がる)のインパルス応答は、低周波数フィルタのインパルス応答よりも、よりコンパクトになる。
【0078】
理論的には、理想フィルタバンクのインパルス応答は、長さが無限であってよく、特に、
図8で、フィルタF
3のインパルス応答802は、以下のように所望の遅延特性を満たさないことが分かる:
【数21】
従って、
図8に示されるフィルタは、低遅延フィルタバンクを実装するのに適さない。
【0079】
低遅延フィルタ応答のための技術
【0080】
1つの方法によると、低遅延フィルタバンク(遅延Lを有する)は、単に理想インパルス応答をトランケートすることにより、以下のように生成できる:
【数22】
【0081】
しかしながら、そのようなトランケーションは、低周波数で結果として生じる応答に影響を与え、現実のシステムで使用された場合に可聴アーチファクトを生じ得る。
【0082】
図9は、インパルス応答を変更する改良された方法を示す信号のグラフ900である。グラフ900で、x軸は時間(サンプル数)である。y軸は大きさである。各信号はy軸上で互いに独立であることに留意する(例えば、y軸は各信号の大きさ範囲を独立に示し、相対的な大きさ又は信号間の比較ではない)。信号802は、フィルタF3(例えば、h'
3(n))の理想インパルス応答に対応し、
図8にも示される。信号904は、フェード関数に対応する。信号906は、低遅延フィルタ応答を生成するために、信号802を信号904により乗算したものに対応し、以下の通りである:
【数23】
【数24】
【0083】
当業者に理解されるように、両方の技術(式(15)及び式(16))により、結果として生じるインパルス応答hb(n)は所望の特性hb(0)=h’b(0)を有し、これは、完全な再構成基準(式(13))が満たされることを保証する。
【0084】
しかしながら、(式(15)又は式(16)により生成されるような)これらのフィルタの周波数応答は、必ずしも元の(理想)応答と一致せず、後述のように改良された技術により可能になり得る。
【0085】
低遅延フィルタ応答のための改良された方法
【0086】
図10は、フィルタ応答を生成する方法1000のブロック図である。方法1000は、本願明細書で議論されるフィルタバンクのうちのいずれか(例えば、
図4のフィルタバンク400、
図5のフィルタバンク500、
図7のフィルタアレイ内のフィルタ702、等)の中のフィルタのうちの1つ以上のフィルタ応答を生成するために使用されてよい。方法1000は、フェードブロック1002、時間反転ブロック1004、及び加算ブロック1006を含む。方法1000のブロックは、様々な方法で、例えば、回路素子により、1つ以上のコンピュータプログラムを実行するプロセッサ等により、実装されてよい。
【0087】
フェードブロック1002は、理想インパルス応答1010を受信し、フェード関数を適用し、プレリップル応答1012を生成する。理想インパルス応答1010は、上述の理想インパルス応答のうちの1つ以上に対応する(例えば、信号802のように、
図8又は
図9で議論されたようなh'
b(n))。フェード関数の例は
図11に示される。
【0088】
時間反転ブロック1004は、プレリップル応答1012に対して時間反転動作を実行し、ポストリップル応答1014を生成する。時間反転動作は、通常、プレリップル応答1012を信号のゼロサンプルに関してミラーリングすることに対応する。時間反転動作の例は
図11に示される。
【0089】
加算ブロック1006は、理想インパルス応答1010を加算し、プレリップル応答1012を減算し、ポストリップル応答1014を加算して、フィルタ応答1016を生成する。
【0090】
図11は、
図10に関連する種々の信号を示すグラフ1100である。グラフ1100で、x軸は時間(サンプル数)であり、y軸は大きさである。
図9と同様に、各信号の大きさは互いの信号と独立であることに留意する。信号802は、フィルタF
3(例えば、h'
3(n))の理想インパルス応答に対応し、
図8~9にも示される。
図10の理想インパルス応答1010も参照する。
【0091】
信号1102は、フェード関数に対応する。
図9の信号904も参照する。信号1104は、プレリップル応答を生成するために、信号802を信号1102により乗算したものに対応する。
図10のプレリップル応答1012も参照する。
【0092】
信号1106は、信号1104の時間反転に対応し、ポストリップル応答と呼ばれる。
図10のポストリップル応答1014も参照する。
【0093】
信号1108は、フィルタバンク応答に対応し、信号802(理想インパルス応答1010)を加算し、信号1104(プレリップル応答1012)を減算し、信号1106(ポストリップル応答1014)を加算することにより、生成される。
図10のフィルタ応答1016も参照する。
【0094】
以下の式はこの処理を示す:
【数25】
【数26】
【数27】
【数28】
【0095】
式(20)によると、
【数29】
従って、(式(21)により)低遅延インパルス応答h
b(n)は、所望の特性h
b(0)=h'
b(0)を有し、これは、完全な再構成基準(式(13))が満たされることを保証する。
【0096】
低遅延全域通過フィルタ応答
【0097】
フィルタリングのグループ遅延が聴者に知覚されることなく、オーディオ信号を変更するために、様々な種類のオーディオフィルタリングが使用できる。例として、録音された音から不要な低周波数ノイズを除去するために使用されるような標準的な高域通過フィルタは、聴者により有害であると考えられない低周波数における位相歪みを導入する。聴者に知覚できない別の一般的な種類のフィルタリングは、全域通過フィルタである。
【0098】
図12は、位相歪み1202及びグループ遅延1204を示すグラフのセットである。位相歪み1202及びグループ遅延1204は、48kHzでサンプリングされたオーディオ信号を処理するために、式(22)に示されるような伝達関数を用いることで生じる。
【数30】
【0099】
式(22)の定数0.994986は、48000サンプル毎秒のサンプリングレートで動作するフィルタの(1次全域通過フィルタの位相シフトが90度である)約37Hzの遷移周波数に対応する標準的な値である。この定数の代替の値が選択されてよく、48000サンプル毎秒のサンプリングレートで動作するフィルタでは、定数は0.9490~0.9993の間で変化してよい。これらの値は、それぞれ400Hz及び5Hzの遷移周波数に対応する。
【0100】
この位相歪み1202が、出力オーディオ信号の中に、聴者にとって許容可能なアーチファクトを生成するならば、
図13に示されるように全域通過フィルタ応答の新しいセットを生成するために、理想インパルス応答に同じ位相歪みを適用することが許容可能である。
【0101】
図13は、種々のインパルス応答を示すグラフ1300である。グラフ1300で、x軸は時間(サンプル数)であり、y軸は種々の周波数F
nにおけるインパルス応答を構成する。フィルタF
3のインパルス応答1302は、
図8のフィルタF
3の元の(理想)インパルス応答802と同様に現れる。これに対して、フィルタF
1のインパルス応答1304は、
図8のフィルタF
1の元の(理想)インパルス応答804と異なるように現れる。この相違は、低周波数フィルタに影響を与えるが高周波数フィルタに対しては無視できる影響しか有しない全域通過フィルタの効果によるものである。全域通過フィルタは、以下に更に詳細に議論される。
【0102】
フィルタF
1のインパルス応答1304は、領域1308(時間0より後のサンプル数100より多い)と比べて、領域1306(時間0より前のサンプル数100より多い)で低い振幅を有することが分かる。インパルス応答のエネルギをインパルス応答の後の時間へとシフトすることは、遅延制約(
図13の例ではL=100である)をより厳密に近似するフィルタバンクを生成するので、全域通過フィルタの望ましい属性である。
【0103】
図14は、フィルタ応答を生成する方法1400のブロック図である。方法1400は、本願明細書で議論されるフィルタバンクのうちのいずれか(例えば、
図4のフィルタバンク400、
図5のフィルタバンク500、
図7のフィルタアレイ内のフィルタ702、等)の中のフィルタのうちの1つ以上のフィルタ応答を生成するために使用されてよい。方法1400は、全域通過フィルタ1402、フェードブロック1404、時間反転ブロック1406、全域通過フィルタ1408、全域通過フィルタ1410、及び加算ブロック1412を含む。方法1400のブロックは、様々な方法で、例えば、回路素子により、1つ以上のコンピュータプログラムを実行するプロセッサ等により、実装されてよい。
【0104】
全域通過フィルタ1402は、理想インパルス応答1420を受信し、全域通過フィルタリングを実行し、フィルタ応答1422を生成する。理想インパルス応答1420は、上述の理想インパルス応答のうちの1つ以上に対応する(例えば、信号802のように、
図8又は
図9で議論されたようなh'
b(n))。全域通過フィルタのインパルス応答は、以下の式で更に詳細に議論される。
【0105】
フェードブロック1404は、フェード関数をフィルタ応答1422に適用して、プレリップル応答1424を生成する。フェード関数の例は
図15に示される。
【0106】
時間反転ブロック1406は、プレリップル応答1424に対して時間反転動作を実行し、中間応答1426を生成する。時間反転動作の例は
図15に示される。
【0107】
全域通過フィルタ1408は、中間応答1426に全域通過フィルタリングを実行して、フィルタ応答1428を生成する。
【0108】
全域通過フィルタ1410は、フィルタ応答1428に対して全域通過フィルタリングを実行して、ポストリップル応答1430を生成する。
【0109】
加算ブロック1412は、フィルタ応答1422を加算し、ポストリップル応答1430を加算し、プレリップル応答1424を減算して、フィルタ応答1432を生成する。
【0110】
実施形態では、遅延制約をより適正に満たすために、私たちは、全域通過フィルタの導入を可能にするために、計算を適応して、式(21)の処理を適用する。以下の式では、表記:
【数31】
はインパルス応答a(n)及びb(n)の畳み込みを示すために使用される。低遅延全域通過フィルタ応答の生成は、以下のように実行される:
【数32】
【数33】
【数34】
【数35】
【数36】
【0111】
上記の式で、g(n)は全域通過フィルタのインパルス応答である(式(22)も参照)。
【0112】
実施形態では、全域通過フィルタは、10Hzと200Hzの間の周波数で単一の実数の極を有する1次フィルタである。遅延Lを有し、F
sサンプル毎秒のレートでサンプリングされるオーディオに対して動作するフィルタバンクでは、全域通過極の周波数はおおよそ以下に設定されてよい:
【数37】
【0113】
式(28)に示されるような極周波数の計算は、例である。他の極周波数も、フィルタバンクの設計において改善された遅延/精度のトレードオフの利益を提供することが理解される。
【0114】
低周波数全域通過フィルタバンクの中のB個のフィルタのセットのインパルス応答が一緒に加算されるとき、最終的な結果(再構成インパルス応答)は、以下の全域通過応答にほぼ等しい:
【数38】
【数39】
【0115】
図14の手順は、フィルタバンク内の各フィルタに、例えばb∈{1,2,...,B}について、適用されてよく、理想インパルス応答h'
b(n)は、低遅延全域通過フィルタh
b(n)を生成するために、
図14に従い処理されてよい。
【0116】
図15は、
図14に関連する種々の信号を示すグラフ1500である。グラフ1500で、x軸は時間(サンプル数)であり、y軸は大きさである。
図9及び11と同様に、各信号の大きさは互いの信号と独立であることに留意する。信号1304は、フィルタF
1(例えば、h'
1(n))の全域通過フィルタリング済みインパルス応答に対応し、
図13にも示される。
図14及び式(23)のフィルタ応答1422も参照する。
【0117】
信号1502は、フェード関数に対応する。
図9の信号904及び
図11の信号1102、及び式(25)も参照する。信号1504は、プレリップル応答を生成するために、信号1304を信号1502により乗算したものに対応する。
図14のプレリップル応答1424及び式(24)も参照する。
【0118】
信号1506は、信号1504の時間反転に対応し、中間応答と呼ばれる。
図14の中間応答1426も参照する。信号1508は、信号1506に全域通過フィルタを2回適用することに対応し、ポストリップル応答と呼ばれる。
図14のポストリップル応答1430及び式(26)も参照する。
【0119】
信号1510は、フィルタバンク応答に対応し、信号1304(フィルタ応答1422)を加算し、信号1508(ポストリップル応答1430)を追加し、信号1504(プレリップル応答1424)を減算することにより、生成される。式(27)を参照する。
【0120】
図10の方法1000と
図14の方法1400との間の差は、以下のように概念化できる。第1に、方法1000はフィルタ応答h'
b(n)に対して作用し、方法1400は以下の全域通過フィルタリング済みバージョンに対して作用する:
【数40】
方法1000の処理は、プレリップル及びポストリップルコンポーネントがt=0に関するミラーリングにより生成されるという事実に依存する。これに関連して、私たちは、理想インパルス応答1010が時間0に関して対照的であることを知っている。
【0121】
この知識を方法1400に拡張して、私たちは新しいフィルタコンポーネントを生成できると推測する。
【数41】
これは、元のpre_ripple(例えば、中間応答1426又は信号1506)を取り入れ、全域通過関数gの反転を提供することを意味する。
【0122】
次に、別の新しいコンポーネント:postA(t)=preA(-t)を生成する。これは、単にpreAのミラーリングバージョンである。
【0123】
ここで、別の新しいフィルタコンポーネントを生成できる:
【数42】
このステップは、
図10で使用された処理と非常に似ている。最も重要なことに、このステップは、私たちの真言に従うことである。つまり、プレリップル及びポストリップルコンポーネントは、t=0に関するミラーリングにより生成されることであり、これに関連して、私たちは元のフィルタが時間0に関して対照的であることを知っている。
【0124】
私たちは、次に、最終的なフィルタを構築できる。
【数43】
【0125】
ここで、私たちは以下を知っている:
【数44】
(これは、全域通過フィルタの時間ミラーリングが全域通過フィルタの反転と同じなので、真である。)
【0126】
【0127】
図16は、オーディオ処理の方法1600のフロー図である。方法1600は、例えば1つ以上のコンピュータプログラムに従い命令を実行するプロセッサにより実施されてよい。
【0128】
1602で、変更インパルス応答が、理想インパルス応答から生成される。理想インパルス応答は、それぞれ多数の周波数に対応する。変更インパルス応答を生成することは、理想インパルス応答のうちの少なくとも1つに対して、フェード動作及び時間反転動作を実行することを含む。例えば、方法1000(
図10を参照)は、フェードブロック1002を用いてフェード動作を、時間反転ブロック1004を用いて時間反転動作を、理想インパルス応答1010に対して実行してよい。別の例として、方法1400(
図14を参照)は、フェードブロック1404を用いてフェード動作を、時間反転ブロック1406を用いて時間反転動作を、理想インパルス応答1420に対して実行してよい。
【0129】
1604で、入力信号は、変更インパルス応答(1602を参照)によりフィルタリングされ、出力信号を生成する。例えば、フィルタバンク100(
図1を参照)は、1602で生成された変更インパルス応答を有する多数のフィルタを含んでよく、入力信号104から出力信号106を生成してよい。
【0130】
方法1600の全体的なステップは、
図17~18で更に詳述される。
【0131】
図17は、オーディオ処理の方法1700のフロー図である。方法1700は、例えば1つ以上のコンピュータプログラムに従い命令を実行するプロセッサにより実施されてよい。方法1700は、方法1600(
図6を参照)と同様であり、方法1000(
図10を参照)の動作に固有の更なる詳細を有する。
【0132】
1702で、変更インパルス応答が、理想インパルス応答から生成される。これは、サブステップ1704~1708を含む。
【0133】
1704で、プレリップル応答は、第1理想インパルス応答に基づき生成される。例えば、フェードブロック1002(
図10を参照)は、プレリップル応答1012を生成するために、理想インパルス応答1010に対してフェード動作を実行してよい。式(18)も参照する。
【0134】
1706で、ポストリップル応答は、プレリップル応答に基づき生成される。例えば、時間反転ブロック1004(
図10を参照)は、ポストプレリップル応答1014を生成するために、プレリップル応答1012に対して時間反転動作を実行してよい。式(20)も参照する。
【0135】
1708で、第1変更インパルス応答は、第1理想インパルス応答を加算し、プレリップル応答を減算し、ポストリップル応答を加算することにより、生成される。例えば、加算ブロック1006(
図10を参照)は、理想インパルス応答1010を加算し、プレリップル応答1012を減算し、ポストリップル応答1014を加算して、フィルタ応答1016を生成する。式(21)も参照する。
【0136】
1710で、入力信号は、変更インパルス応答(1702~1708を参照)によりフィルタリングされ、出力信号を生成する。例えば、フィルタバンク100(
図1を参照)は、1702で生成された変更インパルス応答を有する多数のフィルタを含んでよく、入力信号104から出力信号106を生成してよい。
【0137】
図18は、オーディオ処理の方法1800のフロー図である。方法1800は、例えば1つ以上のコンピュータプログラムに従い命令を実行するプロセッサにより実施されてよい。方法1800は、方法1600(
図6を参照)と同様であり、方法1400(
図14を参照)の動作に固有の更なる詳細を有する。
【0138】
1802で、変更インパルス応答が、理想インパルス応答から生成される。これは、サブステップ1804~1814を含む。
【0139】
1804で、第1フィルタ応答は、第1理想インパルス応答に基づき生成される。例えば、全域通過フィルタ1402(
図14を参照)は、フィルタ応答1422を生成するために、理想インパルス応答1420に対して全域通過フィルタ動作を実行してよい。式(23)も参照する。
【0140】
1806で、プレリップル応答は、第1フィルタ応答に基づき生成される。例えば、フェードブロック1404(
図14を参照)は、プレリップル応答1424を生成するために、フィルタ応答1422に対してフェード動作を実行してよい。式(24)も参照する。
【0141】
1808で、中間応答は、プレリップル応答に基づき生成される。例えば、時間反転ブロック1406(
図14を参照)は、中間応答1426を生成するために、プレリップル応答1424に対して時間反転動作を実行してよい。式(26)も参照する。
【0142】
1810で、第2フィルタ応答は、中間応答に基づき生成される。例えば、全域通過フィルタ1408(
図14を参照)は、フィルタ応答1428を生成するために、中間応答1426に対して全域通過フィルタ動作を実行してよい。式(27)も参照する。
【0143】
1812で、ポストリップル応答は、第2フィルタ応答に基づき生成される。例えば、全域通過フィルタ1410(
図14を参照)は、ポストリップル応答1430を生成するために、フィルタ応答1428に対して全域通過フィルタ動作を実行してよい。式(27)も参照する。
【0144】
1814で、第1変更インパルス応答は、第1フィルタ応答を加算し、ポストリップル応答を加算し、プレリップル応答を減算することにより、生成される。例えば、加算ブロック1412(
図14を参照)は、フィルタ応答1422を加算し、ポストリップル応答1430を加算し、プレリップル応答1424を減算して、フィルタ応答1432を生成する。式(27)も参照する。
【0145】
1816で、入力信号は、変更インパルス応答(1802~1814を参照)によりフィルタリングされ、出力信号を生成する。例えば、フィルタバンク100(
図1を参照)は、1802で生成された変更インパルス応答を有する多数のフィルタを含んでよく、入力信号104から出力信号106を生成してよい。
【0146】
実施形態では、入力オーディオ信号は、出力信号を生成するために処理されてよい。ここで、所定の周波数の番号における処理の利得は、利得係数の対応するセットにほぼ等しい。処理は、対応する数の低遅延全域通過フィルタ応答の加重和であるフィルタ応答に従い実施されてよく、重み付けは対応する利得係数により決定される。低遅延全域通過フィルタ応答は、
図18の方法に従い決定される。
【0147】
代替の実施形態では、入力オーディオ信号は、出力オーディオ信号を生成するために処理される。ここで、該出力オーディオ信号は、該入力オーディオ信号を、フィルタバンクインパルス応答の加重和である全インパルス応答によりフィルタリングすることにより形成される。該フィルタバンクインパルス応答の和は、全域通過フィルタである。全域通過フィルタは、約500Hzより上のほぼ一定の位相応答、及びより低い周波数で上昇するグループ遅延を有し得る。
【0148】
代替の実施形態では、入力オーディオ信号は、出力オーディオ信号を生成するために処理される。ここで、該出力オーディオ信号は、該入力オーディオ信号を、フィルタバンクインパルス応答の加重和である全インパルス応答によりフィルタリングすることにより形成される。再構成インパルス応答は、フィルタバンクインパルス応答の和により形成されてよい。その結果、再構成インパルス応答のグループ遅延は、500Hzより上の周波数範囲に渡りほぼ一定であり、500Hzより下で増大する。例えば、グループ遅延は、500Hzより上で知覚的に一定であってよく(0.1msより大きく変動しない)、低周波数では、例えば500Hzより小さく、0.5/f秒より小さく変動し得る。フィルタバンクインパルス応答の該セットからの1つ以上のインパルス応答の帯域幅は、再構成インパルス応答のグループ遅延が増大するのに従い、狭くなってよい。
【0149】
実装の詳細
【0150】
実施形態は、ハードウェア、コンピュータ可読媒体に格納された実行可能モジュール、又は両者の組合せ(例えば、プログラマブルロジックアレイ)で実装されてよい。特に指定されない限り、実施形態により実行されるステップは、特定の実施形態に本来存在し得るが、任意の特定のコンピュータ又は他の機器に関連してよい。特に、種々の汎用メカニズムは、本願明細書の教示に従い記述されたプログラムと共に使用されてよく、或いは、所要の方法のステップを実行するために、より特化した機器(例えば、集積回路)を構成するためにより便利であってよい。従って、実施形態は、それぞれ少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性及び不揮発性メモリ及び/又は記憶素子を含む)、少なくとも1つの入力装置又はポート、及び少なくとも1つの出力装置又はポートを含む、1つ以上のプログラマブルコンピュータシステムを実行する1つ以上のコンピュータプログラムで実装されてよい。プログラムコードは、本願明細書に記載の機能を実行し出力情報を生成するために入力データに適用される。出力情報は、知られている方法で1つ以上の出力装置に適用される。
【0151】
それぞれのそのようなコンピュータプログラムは、望ましくは、記憶媒体又は装置がコンピュータシステムにより読み取られると本願明細書に記載された手順を実行するようコンピュータを構成し及び動作させるために、汎用又は専用プログラマブルコンピュータにより読み取り可能な記憶媒体又は装置(例えば、固体メモリ若しくは媒体、又は磁気若しくは光媒体)に格納され又はダウンロードされる。本発明のシステムは、コンピュータ可読記憶媒体として実装され、コンピュータプログラムにより構成されることも考えられ、ここで、記憶媒体は、特定の及び所定の方法で本願明細書に記載の機能を実行するようコンピュータシステムを動作させるよう構成される。(ソフトウェア自体、及び無形又は一時的信号は、それらが非特許対象物である限り排除される。)
【0152】
以上の説明は、本開示の態様がどのように実施されるかの例と共に本開示の種々の実施形態を説明した。上述の例及び実施形態は、唯一の実施形態であると見なされるべきではなく、以下の請求の範囲により定められるような本開示の柔軟性及び利点を説明するために提示された。上述の開示及び以下の請求の範囲に基づき、他の構成、実施形態、実装及び均等物が当業者に明らかであり、請求の範囲により定められるような本開示の精神及び範囲から逸脱することなく利用されてよい。