JP5866062B2 - 多段iirフィルタおよび多段iirフィルタを用いたデータの並列化フィルタリング - Google Patents

多段iirフィルタおよび多段iirフィルタを用いたデータの並列化フィルタリング Download PDF

Info

Publication number
JP5866062B2
JP5866062B2 JP2015510305A JP2015510305A JP5866062B2 JP 5866062 B2 JP5866062 B2 JP 5866062B2 JP 2015510305 A JP2015510305 A JP 2015510305A JP 2015510305 A JP2015510305 A JP 2015510305A JP 5866062 B2 JP5866062 B2 JP 5866062B2
Authority
JP
Japan
Prior art keywords
stage
filter
biquadratic
memory
sample
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015510305A
Other languages
English (en)
Other versions
JP2015520974A (ja
Inventor
ピー ラティ,クシュブ
ピー ラティ,クシュブ
Original Assignee
ドルビー ラボラトリーズ ライセンシング コーポレイション
ドルビー ラボラトリーズ ライセンシング コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ドルビー ラボラトリーズ ライセンシング コーポレイション, ドルビー ラボラトリーズ ライセンシング コーポレイション filed Critical ドルビー ラボラトリーズ ライセンシング コーポレイション
Publication of JP2015520974A publication Critical patent/JP2015520974A/ja
Application granted granted Critical
Publication of JP5866062B2 publication Critical patent/JP5866062B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/04Recursive filters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design
    • H03H2017/009Theoretical filter design of IIR filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Description

関連出願への相互参照
本願は2012年5月10日に出願された米国仮特許出願第61/645,291号への優先権を主張するものである。同出願の内容はここに参照によってその全体において組み込まれる。
1.発明の分野
本発明は、双二次フィルタ段を有する多段フィルタおよびそのようなフィルタを使うデータ(たとえばオーディオ・データ)の並列化されたフィルタリングに関する。本発明のいくつかの実施形態は、ドルビー・デジタル(AC-3)、ドルビー・デジタル・プラス(E-AC-3)およびドルビーEとして知られるフォーマットの一つに基づくまたは他のエンコード・フォーマットに基づくオーディオ・データのエンコードまたはデコードの際に、(双二次フィルタ段を有する多段フィルタを使って)該オーディオ・データをフィルタリングするための方法、システムおよびプロセッサである。ドルビー、ドルビー・デジタル、ドルビー・デジタル・プラスおよびドルビーEはドルビー・ラボラトリーズ・ライセンシング・コーポレーションの商標である。
2.発明の背景
請求項を含む本開示を通じて、信号またはデータ「に対して」動作を実行する(たとえば信号またはデータをフィルタリングするまたはスケーリングする)という表現は、信号またはデータに対して直接的に、または信号またはデータの処理されたバージョンに対して(たとえば、予備的なフィルタリングまたは他の処理を該動作の実行に先立って受けている前記信号のバージョンに対して)該動作を実行することを表わすために広義で使用される。
信号処理において、デジタル双二次フィルタは、二つの極および二つの零点を含む二次の再帰的な線形フィルタである。デジタル双二次フィルタを表わすのに、本稿では、略称「双二次」(または「バイクワッド」)フィルタが使われる。Z領域では、双二次フィルタの伝達関数は二つの二次関数の比である。
Figure 0005866062
高次の再帰フィルタ(二次より大きな次数の無限インパルス応答(infinite impulse response)すなわちIIRフィルタ)は、その係数の量子化にきわめて敏感であることがあり、簡単に不安定化しうる。一次および二次の再帰フィルタもこの型の不安定性問題をもつことがあるが、該不安定性問題の深刻さはずっと低い。よって、高次再帰フィルタは典型的には、一連の双二次セクションを(および任意的には一次フィルタも)有する直列縦続されたフィルタとして実装される。そのような直列縦続されたフィルタは本稿では時に多段双二次フィルタと称され、双二次フィルタ(本稿では時に双二次段または双二次セクションと称される)のシーケンスをなす。
たとえば、よく知られたAC-3(ドルビー・デジタル)フォーマットまたはよく知られたドルビー・デジタル・プラスおよびドルビーEフォーマットのいずれかに基づくオーディオ・データをエンコードするよう構成された通常のエンコーダは、いくつかの多段双二次フィルタを実装する。たとえば、ドルビー・デジタル・プラス・エンコーダは典型的には、過渡検出器サブシステムにおける高域通過フィルタリングを実装するための二段の双二次フィルタ(すなわち、二つの縦続した双二次フィルタを含むフィルタ)、低域効果(LFE: low frequency effects)サブシステムにおいて低域通過フィルタリングを実装するための四段の双二次フィルタ(すなわち、四つの縦続した双二次フィルタを含むフィルタ)および帯域幅制限低域通過フィルタリングを実装するための三段の双二次フィルタを用いる。ドルビーEエンコーダは典型的には、過渡検出器サブシステムにおける高域通過フィルタリングを実装するための二段の双二次フィルタ(すなわち、二つの縦続した双二次フィルタを含むフィルタ)および低域効果(LFE)サブシステムにおいて低域通過フィルタリングを実装するための四段の双二次フィルタ(すなわち、四つの縦続した双二次フィルタを含むフィルタ)を用いる。ドルビーEデコーダは典型的には、低域効果(LFE)サブシステムにおいて低域通過フィルタリングを実装するための三段の双二次フィルタ(すなわち、三つの縦続した双二次フィルタを含むフィルタ)を用いる。
たとえば、図1は(時に直接形式II‐転置(Direct Form II-Transposed)構造と称される型の)双二次フィルタの図であり、図のように接続された要素1、2、3、4、5、b0、b1、b2、-a1、-a2を含んでいる。要素1、2、3は加算要素であり、要素4および5は遅延要素であり、利得要素b0、b1、b2、-a1、-a2のそれぞれは、利得b0、b1、b2、-a1、-a2のうちの対応するものをその入力に呈される信号に適用する。本稿では図示や説明はしないが、当業者には、他の等価な双二次フィルタ構造が存在することがよく知られている。たとえば、直接形式I、直接形式I‐転置および直接形式IIである。そのようないかなる等価な双二次フィルタ構造も本発明の範囲内である。
図1のAに示されるように、図1の双二次フィルタ(図1のAではBiquad 1とラベル付けされている)が、同一の構造をもつ(図1のAではBiquad 2とラベル付けされている)がその利得要素は図1のフィルタとは利得とは異なる利得を適用してもよい双二次フィルタと縦続させられる場合、結果的に得られる多段双二次フィルタは、(たとえば上述したようなオーディオ・エンコーダの過渡検出器サブシステムにおいて高域通過フィルタリングを実装するために)用いることのできる二段双二次フィルタの例である。図1のAの多段双二次フィルタでは、第一段の出力信号x1(n)が第二段への入力信号である。
多段双二次フィルタ(およびいくつかの他の多段IIRフィルタ)について、時点「n」および先行する諸時点における時間領域信号x(n)(入力信号または多段フィルタの別の段で生成された信号)の値に応答しての時点「n」における各段での出力サンプル計算(すなわち、その段の出力信号y(n))は、先行する出力(すなわち、時点n−1およびn−2における出力y(n−1)およびy(n−2))に依存する。また、多段双二次フィルタにおけるそれぞれの二つの連続する段(双二次フィルタ)について、各前の段の出力はその後の段に入力され、よって、その後の段の出力は、前の段の出力が決定されるまで決定できない。これらが、(本発明の前には)多段双二次フィルタを実装するために完全に並列化された処理が用いられてこなかった主たる理由である。
多くの今日のコア・プロセッサ・アーキテクチャ(たとえば、デジタル信号プロセッサ・アーキテクチャ)では、多くのアルゴリズムを並列化し、パフォーマンスを改善するために使用されることができるSIMD(single instruction, multiple data[単一命令多重データ])ユニットおよび/または複数のALU(arithmetic logic unit[算術論理ユニット])またはAMU(arithmetic manipulation unit[算術操作ユニット])がある。しかしながら、多段双二次フィルタを実装するようプロセッサをプログラミングするための通常のアルゴリズムは、SIMD命令を使わず、並列化されていない。
米国特許第5,583,962号 米国特許第5,632,005号 米国特許第5,633,981号 米国特許第5,727,119号 米国特許第6,021,386号
ATSC Standard A52/A: Digital Audio Compression Standard (AC-3), Revision A, Advanced Television Systems Committee, 20 Aug. 2001 Craig C. Todd et al.、"Flexible Perceptual Coding for Audio Transmission and Storage", 96th Convention of the Audio Engineering Society, February 26, 1994, Preprint 3796 Steve Vernon、"Design and Implementation of AC-3 Coders," , IEEE Trans. Consumer Electronics, Vol.41, No.3, August 1995 Robert L. Andersen and Grant A. Davidson、"Dolby Digital Audio Coding Standards," 書籍The Digital Signal Processing Handbook, Second Edition, Vijay K. Madisetti, Editor-in-Chief, CRC Press, 2009の一章 Bosi et al.、"High Quality, Low-Rate Audio Transform Coding for Transmission and Multimedia Applications," Audio Engineering Society Preprint 3365, 93rd AES Convention, October 1992 "Introduction to Dolby Digital Plus, an Enhancement to the Dolby Digital Coding System," AES Convention Paper 6196, 117th AES Convention, October 28, 2004 Dolby Digital/Dolby Digital Plus Specification (ATSC A/52:2010)、http://www.atsc.org/cms/index.php/standards/published-standardsで入手可能
たとえば、ドルビー・デジタル・プラス・エンコーダ(これはドルビー・デジタル・プラス・フォーマットに従ってオーディオ・データをエンコードする)はプログラムされたARMネオン・プロセッサ(そのそれぞれは、並列処理を許容するネオンSIMDエンジンをもつARM Cortexプロセッサである)としておよびプログラムされたテキサスインスツルメンツC64デジタル信号プロセッサとして実装されてきた。多くのオーディオ・データ・エンコーダ(たとえば、AC-3、ドルビー・デジタル・プラス、ドルビーEおよび/または他のエンコード・フォーマット)は、SIMD(single instruction, multiple data[単一命令多重データ])ユニットおよび/または複数のALU(arithmetic logic unit[算術論理ユニット])またはAMU(arithmetic manipulation unit[算術操作ユニット])を有する多様なアーキテクチャのうちの任意のものを有するプログラムされたプロセッサとして実装されてきたまたは実装されることができる。そのようなプロセッサは、並列処理を使って(オーディオ・データ・エンコードに含まれる)さまざまなアルゴリズムを実装するようプログラムされることができる。しかしながら、そのようなプロセッサにおいて多段双二次フィルタを実装するために用いられてきた通常のプログラミングは、並列処理を実装してこなかった。
本発明の典型的な実施形態は、多段双二次フィルタを実装するために並列処理を用いる。いくつかの実施形態は、AC-3(ドルビー・デジタル)フォーマット、ドルビー・デジタル・プラス・フォーマットまたはドルビーEフォーマットに従ってオーディオ・データをエンコードすることにおいて使用される型の多段双二次フィルタを実装するために並列処理を用いる。
本発明は、AC-3、ドルビー・デジタル・プラスまたはドルビーEフォーマットに従ってオーディオ・データをエンコードすることにおける使用に限定されないが、いくつかの実施形態は、本発明のある実施形態を実装する(またはかかる実施形態に基づいて設計された)少なくとも一つの多段双二次フィルタを用いる(たとえば、AC-3、ドルビー・デジタル・プラスまたはドルビーEフォーマットに従ってオーディオ・データをエンコードするための)オーディオ・エンコード方法、システムおよびプロセッサである。
AC-3エンコードされたビットストリームは、オーディオ・コンテンツの一ないし六つのチャネルおよび該オーディオ・コンテンツの少なくとも一つの特性を示すメタデータを含む。オーディオ・コンテンツは、知覚的オーディオ符号化を使って圧縮されたオーディオ・データである。
AC-3(ドルビー・デジタルとしても知られる)符号化の詳細はよく知られており、非特許文献1〜5および特許文献1〜5を含む多くの交換された文献に記載されている。
ドルビー・デジタル(AC-3)およびドルビー・デジタル・プラス(時に向上AC-3または「E-AC-3」と称される)符号化の詳細は、非特許文献6〜7に記載されている。
あるクラスの実施形態では、本発明は、少なくとも二つの段(そのそれぞれは双二次フィルタ)を有する多段フィルタであって、前記段は前記段の間のレイテンシーをもって組み合わされており、それによりすべての段が、該段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能である、多段フィルタである。典型的には、本多段フィルタは、前記共通の命令ストリームをすべての段に呈するよう結合されたコントローラと、すべての段に結合されたデータ・メモリとをも含み、すべての段は、前記共通の命令ストリームに応答して、入力データ値のブロックをフィルタリングするよう並列に動作可能であるが、各段は異なるデータ値に対して作用し、前記段の少なくとも一つがバッファリングされた値を含むデータ値に対して作用し、前記バッファリングされた値は、前記入力データ値の部分集合に応答して前記段の別のものによって生成され、前記段の前記一つにおける処理のために取り出される前に前記メモリに異なるレイテンシーをもって記憶される。このように、これらの実施形態における多段フィルタは、個々の双二次フィルタ段が単一の命令ストリームに応答して独立して並列に動作するSIMD(単一命令多重データ)アーキテクチャをもつ。たとえば、本多段フィルタはN段を含んでいてもよく(Nは1より大きい数)、前記段の一つ(シーケンス中の第「M+1」段)は、種々の時点において(前記ブロックの異なる入力データ値のシーケンスに応答して)前記段のうち前のもの(シーケンス中の第「M」段)によって生成されたデータ値に対して作用してもよい。前の段によって生成された該データ値は、(種々の時点に)バッファ・メモリに記憶され、異なるレイテンシー時間をもって前記バッファ・メモリに存在したのちに前記バッファ・メモリから(第「M+1」段によって)読み出される。
いくつかの実施形態では、本発明は:
バッファ・メモリと;
第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
前記双二次フィルタ段に結合され、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを有する多段フィルタであって、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに(該メモリにおける記憶のために)呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
多段フィルタである。
典型的な実施形態では、多段フィルタは、N個の入力サンプルのブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成される。
多段フィルタがM個の段を有する本発明の多段フィルタのいくつかの実施形態では、前記その後の双二次フィルタ段は、メモリから取り出されるバッファリングされている値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成される。ここで、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む。
本発明の多段フィルタのいくつかの実施形態では、前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、メモリから取り出されるバッファリングされている値の異なる部分集合に応答して生成するよう構成される。それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む。たとえば、多段フィルタがM個の双二次フィルタ段を有する典型的な実施形態では、前記入力サンプルの第「j」のものに対応する出力値を生成するために取り出されるバッファリングされている値の前記部分集合であって、jはM−1からN−1までの範囲のインデックスである、部分集合は、前記入力サンプルの第「j」のものに応答して前記第一の双二次フィルタ段において生成された少なくとも一つの値、前記入力サンプルの第「j−1」のものに応答して前記第一の双二次フィルタ段において生成された少なくとも一つの値および前記入力サンプルの第「j−2」のものに応答して前記第一の双二次フィルタ段において生成された少なくとも一つの値を含む。
別のクラスの実施形態では、本発明は、N個の入力サンプルのブロックに対して多段フィルタリングを実行する方法であって:
(a)N個の入力サンプルのブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに(該メモリにおける記憶のために)呈する段階であって、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
(b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記ブロック中の各入力サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つ(たとえば三つ)を含む、段階とを含み、
段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、方法である。典型的な実施形態では、入力サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される。
多段フィルタがM個の段を有する本発明の方法のいくつかの実施形態では、前記入力サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は(jはM−1からN−1までの範囲のインデックス)、段階(a)において生成された前記入力サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む。
別のクラスの実施形態では、本発明は、入力オーディオ・データに応答して、エンコードされたオーディオ・データを生成するよう構成されているオーディオ・エンコーダである。前記エンコーダは、前記オーディオ・データをフィルタリングする(たとえば、前記オーディオ・データの予備的な処理をされたバージョンをフィルタリングする)よう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む。別のクラスの実施形態では、本発明は、オーディオ・データに対して本発明の多段双二次フィルタリング方法の任意の実施形態を実行することによることを含め、エンコードされたオーディオ・データを生成するようオーディオ・データをエンコードする方法である。たとえば、本発明のある実施形態は、(エンコーダによってエンコードされるべき入力オーディオ・データの予備的な処理のための)前処理段を含むオーディオ・エンコーダであって、前記前処理段は、前記オーディオ・データ(たとえば、前記入力データまたは前記入力データの予備的に処理されたバージョン)をフィルタリングするよう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む、オーディオ・エンコーダである。本発明のもう一つの実施形態は、(エンコーダによってエンコードされるべきオーディオ・データの予備的な処理を実行するための)前処理器であって、前記前処理器は、前記オーディオ・データ(たとえば、前記前処理器に入力されたデータまたはそのような入力データの予備的に処理されたバージョン)をフィルタリングするよう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む、前処理器である。
別のクラスの実施形態では、本発明は、エンコードされたオーディオ・データに応答して、デコードされたオーディオ・データを生成するよう構成されているオーディオ・デコーダである。このクラスのいくつかの実施形態では、前記デコーダは、前記エンコードされたオーディオ・データをフィルタリングする(たとえば、前記エンコードされたオーディオ・データの予備的な処理をされたバージョンをフィルタリングする)よう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む。別のクラスの実施形態では、本発明は、デコードされたオーディオ・データを生成するよう、エンコードされたオーディオ・データをデコードする方法である。いくつかのそのような実施形態では、デコードは、エンコードされたオーディオ・データに対して(たとえば、エンコードされたオーディオ・データの予備的に処理されたバージョンに対して)、本発明の多段双二次フィルタリング方法の任意の実施形態を実行することを含む。たとえば、本発明のある実施形態は、(デコーダによってデコードされたデコード済みオーディオ・データの後処理のための)後処理段を含むオーディオ・デコーダであって、前記後処理段は、オーディオ・データ(たとえば、前記デコードされたデータまたは前記デコードされたデータの処理されたバージョン)をフィルタリングするよう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む、オーディオ・デコーダである。本発明のもう一つの実施形態は、(デコーダによってデコードされた、デコードされたオーディオ・データの後処理を実行するための)後処理器であって、前記後処理器は、オーディオ・データ(たとえば、前記後処理器に入力されたデコードされたデータまたはそのような入力データの処理されたバージョン)をフィルタリングするよう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む、後処理器である。
本発明の典型的な実施形態によれば、SIMD命令(または複数のALUまたはAMUによる並列処理のための命令)が、多段フィルタを実装するようプロセッサ(たとえばデジタル信号プロセッサまたは汎用プロセッサ)をプログラムするために使用される。多段フィルタは、帯域幅フィルタリング、低域通過フィルタリング(たとえばオーディオ・エンコーダのLFEサブシステムにおける)、高域通過フィルタリング(たとえばオーディオ・エンコーダの過渡検出器サブシステムにおける)または他のフィルタリングを実装してもよい。
本発明の他の側面は、本発明の方法の任意の実施形態を実行するよう構成された(たとえばプログラムされた)システムまたは装置(たとえばエンコーダ、デコーダまたはプロセッサ)および本発明の方法の任意の実施形態またはその段階を実装するためのコードを記憶するコンピュータ可読媒体(たとえばディスク)を含む。たとえば、本発明のシステムは、本発明の方法の任意の実施形態またはその段階を含む多様な動作の任意のものをデータに対して実行するようソフトウェアまたはファームウェアでプログラムされたおよび/または他の仕方で構成された、プログラム可能な汎用プロセッサ、デジタル信号プロセッサまたはマイクロプロセッサであるまたはそれを含むことができる。そのような汎用プロセッサは、入力装置と、メモリと、それに対して呈されるデータに応答して本発明の方法の実施形態(またはその段階)を実行するようプログラムされた(および/または他の仕方で構成された)処理回路とを含むコンピュータ・システムであるまたはそのようなコンピュータ・システムを含むのでもよい。
本発明のいくつかの実施形態は、プログラムされたプロセッサ(たとえばARMネオン・プロセッサ(そのそれぞれは、並列処理を許容するネオンSIMDエンジンをもつARM Cortexプロセッサである)またはSIMD(単一命令多重データ)ユニットおよび/または複数のALU(算術論理ユニット)またはAMU(算術操作ユニット)を有する他のプロセッサ)として、あるいはプログラムされた(および/または他の仕方で構成された)デジタル信号プロセッサ(たとえばSIMDユニットおよび/または複数のALUまたはAMUを有するDSP)として実装された、エンコーダ(たとえば、ドルビー・デジタル・プラス、AC-3またはドルビーEフォーマットに従ってオーディオ・データをエンコードするエンコーダ)またはデコーダである。
通常の双二次フィルタのブロック図である。Aは通常の多段双二次フィルタのブロック図である。 直列縦続した双二次フィルタ(「縦続した双二次セクション」)として実装されたフィルタにおいてフィルタリングを実行する通常の方法のフローチャートである。 単一の命令ストリームに応答して並列に動作する縦続した双二次フィルタ(「縦続した双二次セクション」)を有する多段双二次フィルタにおいてフィルタリングを実行する本発明の方法のある実施形態のフローチャートである。 縦続した双二次フィルタを有し、図3を参照して記載される型の方法を実行できる多段フィルタ(たとえば、本発明の実施形態に基づいてDSPまたは他のプロセッサをプログラムすることによって実装される)のブロック図である。図4では、メモリ10は、入力データx(n)の各ブロックを記憶するメモリ位置と、双二次フィルタによって生成される中間的な値x1(n),…,xN-1(n)のうち必要とされるものすべてを記憶するバッファ・メモリ位置とを含む。 エンコーダ(本発明の多段フィルタの実施形態を含む)およびデコーダ(やはり本発明の多段フィルタの実施形態を含む)を含むシステムのブロック図である。 単一の命令ストリームに応答して並列に動作する縦続した双二次フィルタ(「縦続した双二次セクション」)を有する多段双二次フィルタにおいてフィルタリングを実行する本発明の方法のもう一つの実施形態のフローチャートである。 本発明の方法の図6の実施形態の段階40、41および42の実施形態のフローチャートである。 本発明の方法の図6の実施形態の段階47、48および49の実施形態のフローチャートである。 計算がその場で実行される図4のシステムのある実装において生成される値の図である。 エンコーダ(本発明の多段フィルタの実施形態を含む)および本発明の実施形態であるデコーダを含むシステムのブロック図である。
本発明の方法および本発明の方法を実装するよう構成されたシステム(たとえばエンコーダおよびデコーダ)の実施形態について、図3、図4、図5、図6、図7および図8を参照して記述する。
まず、図2を参照して、M個の双二次フィルタ(Mは、以下および図2において「nsections」と称される数)の縦続を有する多段フィルタを用いてデータ・サンプル(たとえばオーディオ・データ・サンプルのブロック)をフィルタリングする通常の方法を記述する。そのような通常の多段双二次フィルタの例は、図1のAの上述したフィルタである。
図2の方法では、フィルタリングされるべきN個のサンプルの新しいブロックそれぞれは、最初にバッファリングされる(段階20)。ブロック中の各サンプルはインデックスjによって特定される。ここで、0≦j≦N−1である。多段フィルタにおける各段(セクション)は、インデックスiによって特定される。ここで、0≦i≦M−1である。
段階21では、インデックスiは0に初期化され、段階22ではインデックスjは0に初期化される。
段階23では、「j」番目の入力サンプルが「i」番目の双二次フィルタにおいてフィルタリングされ、次いで、段階24において、インデックスjがインクリメントされる。段階25は、インクリメントされたインデックスj(j+1に等しい)がN未満であるかどうかを判定する。段階25において、インクリメントされたインデックスjがN未満であると判定されたら、次の(「j+1」番目の)サンプルを「i」番目の双二次フィルタにおいてフィルタリングするために、段階23が再び実行される。
段階25において、インクリメントされたインデックスjがNに等しい(よって、現在のブロックにおけるすべてのサンプルが現在の双二次フィルタにおいてフィルタリングされた)と判定されたら、段階26において、インデックスiがインクリメントされる。
段階27は、最も最近インクリメントされたインデックスi(i+1に等しい)が数「nsections」(これはMに等しい)未満であるかどうかを判定する。段階27において、最も最近インクリメントされたインデックスiがM未満であると判定されたら、中間的な値(段階22〜25の前回の逐次反復において前の双二次フィルタにおいて生成された、前の(「i」番目の)双二次フィルタの出力)の最新のブロックを次の(「i+1」番目の)双二次フィルタにおいてフィルタリングするために、段階22〜26の逐次反復がもう一度実行される。
段階27において、最も最近インクリメントされたインデックスiがMに等しく、よってすべての双二次フィルタにおける現在ブロックのすべてのサンプルの処理が完了していると判定されたら、段階28が実行される。段階28では、入力サンプルの現在ブロックを多段フィルタにおいてフィルタリングすることによって生成された、N個のフィルタリングされたサンプルが出力される。この時点において、フィルタリングされるべきN個のサンプルからなる追加的なブロックがあれば、それは(段階20の新たな実行において)バッファリングされ、多段フィルタにおけるサンプルのその新しいブロックをフィルタリングするために、図2の方法が繰り返される。
図2のプロセスのために、M=2の場合(すなわち、多段フィルタが二つの縦続した双二次フィルタしか有さない場合)、多段フィルタの各段において実行される処理は、下記の擬似コードによっても記述される。ここで、N=多段フィルタにおいてN個のサンプルのブロックをフィルタリングすることによって生成されるべき出力サンプルの数である:
for(i=0; i<2; i++)
{
for(j=0; j<N; j++)
{
Output[j]=function(output[j-l], output[j-2], input[j], input[j-1], input[j-2]);
}
}。
通常の図2の方法の実行中、各サンプルについての多段フィルタの各段の出力(「output[j]」)は一般に二つの先行するサンプル(output[j-1]およびoutput[j-2])についての当該段の出力と、当該段への現在の入力(「input[j]」)および当該段への二つの先行する入力(input[j-1]およびinput[j-2])とに依存するので、当該段内で実装されるループ(図2の段階23、24および25)のための動作は並列化されない。また、第一の段(i=0)の出力が第二の段(i=1)に入力されるので、通常の図2の方法の実行においては、段を横断した動作は並列化されない。これは、たとえ複数のALU(またはAMU)またはSIMDユニットを含むアーキテクチャをもつプロセッサによって実装されるときでも、当該多段フィルタのための高い命令カウント(時にMPISまたは毎秒百万命令[Millions of Instructions Per Second]と称される)要件につながる。
次に、図3を参照して、二つの双二次フィルタの縦続を有する多段フィルタを用いてデータ・サンプル(たとえばオーディオ・データ・サンプルのブロック)をフィルタリングする本発明の方法の実施形態を記述する。最初に、段階30において、フィルタリングされるべきN個のサンプルの新しいブロックそれぞれが、その後の段階(段階31、33および34を含む)において使うために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
ブロック中の各サンプルはインデックスjによって特定される。ここで、0≦j≦N−1である。多段フィルタにおける各段(セクション)は、インデックスiによって特定される。ここで、0≦i≦M−1である。
段階31では、第一の入力サンプル(j=0)が第一の(i=0)双二次フィルタにおいてフィルタリングされる。この段階によって生成される値は、(たとえば段階33および/または34のその後の実行における)その後の使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
段階32では、インデックスjは1に設定される。
次いで、段階33および34が並列に実行される。段階33では、「j」番目の入力サンプルが第一の(i=0)双二次フィルタにおいてフィルタリングされ、この段階において生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階34では、第二の(i=1)双二次フィルタへの「j−1」番目の入力サンプルがフィルタリングされ、この段階において生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
次いで、段階35において、インデックスjがインクリメントされる。段階36は、インクリメントされたインデックスj(j+1に等しい)がN未満であるかどうかを判定する。段階36において、インクリメントされたインデックスjがN未満であると判定されたら、(段階33において)第一の双二次フィルタへの次の入力サンプルおよび(段階34において)第二の双二次フィルタへの次の入力サンプルをフィルタリングするために、段階33および34は再び実行される。段階33および34のそれぞれの各反復工程によって生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。たとえば、段階33の一つまたは複数の先行する反復工程において生成された一つまたは複数の中間的な値が、段階34の実行において使うためにバッファから取り出されてもよい。
段階36において、インクリメントされたインデックスjがNに等しい(よって、現在のブロックにおけるすべての入力サンプルが第一の双二次フィルタにおいてフィルタリングされた)と判定されたら、段階37が実行される。
段階37では、第二の(i=1)双二次フィルタへの最後の入力サンプル(j=N−1)がフィルタリングされる。この段階によって生成される値は、その後の使用のために(たとえば段階38における出力のために)利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
次いで、段階38において、第二の双二次フィルタによって生成されたN個のフィルタリングされたサンプルが(N個の入力サンプルの現在ブロックに応答しての当該多段フィルタの出力として)出力される。この時点において、フィルタリングされるべきN個のサンプルからなる追加的なブロックがあれば、それは(段階30の新たな実行において)バッファリングされ、多段フィルタにおけるサンプルのその新しいブロックをフィルタリングするために、図3の方法が繰り返される。
多段フィルタの各段において(図3の方法の実行中に)実行される処理は、下記の擬似コードによっても記述される。ここで、N=多段フィルタにおいてN個のサンプルのブロックをフィルタリングすることによって生成されるべき出力サンプルの数であり、outputstage1[k]はk番目の入力サンプルに応答しての多段フィルタの第一の段の出力であり、outputstage2[k]はk番目の入力サンプルに対応する多段フィルタの第二の段の出力であり、input[k]は多段フィルタの第一の段へのk番目の入力サンプルである:
{第一の段の第一のサンプル処理}
for(j=1; j<N ;j++)
{
Outputstage1[j]=function(outputstage1[j-1],
outputstage1[j-2], input[j], input[j-l], input[j-2]);
Outputstage2[j-1]=function(outputstage2[j-2], outputstage2[j-3],
outputstage1[j-1], outputstage1[j-2], outputstage1[j-3]);
}
{第二の段の最後の(「N−1」番目の)サンプル処理}。
図3および対応する擬似コードから明らかなように、多段フィルタの両方の段における処理は単一のサンプル・ループ(図3の段階33、34、35および36)に組み合わされる。(二段双二次フィルタの場合)二つの段の間に一サンプルのレイテンシーを導入することによって、あるいはより一般的には、図6、図7および図8との関連で後述するように、二つ以上の双二次フィルタ段を有する多段フィルタの各段の間に一サンプルのレイテンシーを導入することによって、本発明によれば、多段フィルタのすべての段における処理が完全に並列化されうる。このように、多段フィルタのすべての双二次フィルタ段におけるサンプルのブロックの処理は、本発明の記述される実施形態によれば、(すべての段について組み合わされた)単一のサンプル・ループにおいて並列化されうる。
M個の双二次フィルタ(Mは2より大きい)の縦続を有する多段フィルタを用いてデータ・サンプルのブロック(たとえばオーディオ・データ・サンプルのブロック)をフィルタリングするための、本発明の方法の図3の実施形態に対する変形が考えられる。そのような変形は典型的には、図6、図7および図8を参照して記述される仕方で実装される。
最初に、図6のフローチャートの段階40において、フィルタリングされるべきN個のサンプルの新しいブロックそれぞれが、その後の段階(段階41、43〜45および48を含む)において使うために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
ブロック中の各サンプルはインデックスjによって特定される。ここで、0≦j≦N−1である。多段フィルタにおける各双二次段(セクション)は、インデックスiによって特定される。ここで、0≦i≦M−1である。
段階41では、最初のM−1個の入力サンプル(j=0ないしj=M−2)に対して双二次フィルタ段i=0ないしi=M−2においてループ前フィルタリングが実行される(たとえば、図7を参照して記述される仕方で)。図7に示されるように、いくつかの双二次フィルタ段については、ループ前フィルタリングは最初のM−1個の入力サンプルの部分集合のみに対応して生起することを注意しておくべきである。この段階によって生成される値は、(たとえば段階43〜45のその後の実行における)その後の使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
段階42では、インデックスjはM−1に設定される。
次いで、段階43〜45(M段のそれぞれについて一つの段階)が並列に実行される。段階43では、第一の(i=0)双二次フィルタへの「j」番目の入力サンプルがフィルタリングされ、この段階によって生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階44では、第二の(i=1)双二次フィルタへの「j−1」番目の入力サンプルがフィルタリングされ、この段階によって生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。同様に(Mが2より大きいとして、段階43および44と並列に実行される少なくとも一つの段階において)、第三の(i=2)双二次フィルタへの「j−2」番目の入力サンプルがフィルタリングされ、(Mが4以上であるとして)第四の(i=3)双二次フィルタへの「j−3」番目の入力サンプルがフィルタリングされ、など、双二次フィルタi=4ないしi=M−2の追加的なそれぞれについて同様となる。そのような各段階によって生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる。(Mが2より大きい場合、段階43および44と並列に実行される)段階45では、最後の(i=M−1)双二次フィルタへの「j−M+1」番目の入力サンプルがフィルタリングされ、この段階によって生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
次いで、段階46において、インデックスjがインクリメントされる。段階47は、インクリメントされたインデックスj(j+1に等しい)がN未満であるかどうかを判定する。段階47において、インクリメントされたインデックスjがN未満であると判定されたら、(段階43において)第一の双二次フィルタにおける次のサンプルを、(段階44において)第二の双二次フィルタにおける次のサンプルを、さらなる双二次フィルタ段それぞれについて同様に、フィルタリングするために、段階43〜45(および段階43〜45と並列に実行される一つまたは複数の他の段階があれば該段階)は再び実行される。段階43〜45のそれぞれの各反復工程によって生成される少なくとも一つの(たとえばそれぞれの)値(「中間」的な値)が、その後の段階における使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。たとえば、段階43の一つまたは複数の先行する反復工程において生成された一つまたは複数の中間的な値が、段階44の実行において使うためにバッファから取り出されてもよい。
段階47において、インクリメントされたインデックスjがNに等しい(よって、現在のブロックにおけるすべての入力サンプルが双二次フィルタの一つ(i=0であるフィルタ)においてフィルタリングされた)と判定されたら、ループ後フィルタリング段階48が実行される。
段階48では、双二次フィルタ段i=1ないしi=M−1への残っているフィルタリングされていない入力サンプルがあればそれに対してループ後フィルタリングが実行される(たとえば図8を参照して記述されるようにして)。この段階によって生成される値(単数または複数)は、その後の使用のために(たとえば段階49における出力のために)利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
段階48のあと、段階49において、最後の(i=M−1)双二次フィルタによって生成されたN個のフィルタリングされたサンプルが(N個の入力サンプルの現在ブロックに応答しての当該多段フィルタの出力として)出力される。この時点において、フィルタリングされるべきN個のサンプルからなる追加的なブロックがあれば、それは(段階40の新たな実行において)バッファリングされ、多段フィルタにおけるサンプルのその新しいブロックをフィルタリングするために、図6の方法が繰り返される。
図7は、本発明の方法の図6の実施形態の、段階40および42ならびに段階41のある実施形態の詳細のフローチャートである。図7の段階50〜58は、図6のループ前フィルタリング段階41のある実装である。段階50において、現在ブロックの第一のサンプル(j=0)が第一の双二次フィルタ段(i=0)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために(たとえば段階51および52において)利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階51では、前記ブロックの第二のサンプル(j=1)が第一の双二次フィルタ段(i=0)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために(たとえば段階53において)利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階52では、前記ブロックの第一のサンプル(j=0)が第二の双二次フィルタ段(i=1)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために(たとえば段階54において)利用可能であるよう、好ましくはバッファリングされる(たとえば図4のメモリ10に)。段階51および52は好ましくは(第一および第二の段に対して呈される同じ命令または命令シーケンスに応答して)並列に実行される。
図7において段階51の垂直下方に示される諸段階(段階53および56を含む)では、現在ブロックの第三のサンプル(j=2)ないし「M−1」番目のサンプル(j=M−2)のそれぞれが第一の双二次フィルタ段(i=0)においてフィルタリングされ、そのような各段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、バッファリングされる。段階53では、前記ブロックの第三のサンプル(j=2)が第一の双二次フィルタ段(i=0)においてフィルタリングされ、そのような段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、バッファリングされる。段階56では、現在ブロックの「M−1」番目のサンプル(j=M−2)が第一の双二次フィルタ段(i=0)においてフィルタリングされ、そのような段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるようバッファリングされる。
図7において段階52の垂直下方に示される諸段階(段階54および57を含む)では、第二の双二次フィルタ段(i=1)への第二の入力サンプル(j=1)ないし「M−2」番目の入力サンプル(j=M−3)のそれぞれがフィルタリングされ、そのような各段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、バッファリングされる。段階54では、第二の双二次フィルタ段への第二の入力サンプル(j=1)がフィルタリングされ、そのような段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階57では、第二の双二次フィルタ段への「M−2」番目の入力サンプル(j=M−3)がフィルタリングされ、そのような段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるようバッファリングされる(たとえば図4のメモリ10に)。
一般に、kが0ないしM−2の範囲のインデックスであるとして「k」番目の双二次フィルタ段について、段階のシーケンス(図7における諸段階の縦の列)は、「k」番目の双二次フィルタ段への第一の入力サンプル(j=0)ないし「k」番目の双二次フィルタ段への「M−1−k」番目の入力サンプル(j=M−2−k)のそれぞれをフィルタリングするために実行され、そのような各段階によって生成されるフィルタリングされたサンプル値(単数または複数)は、その後の使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
よって、M=3であれば、図7の段階53,54および55が(好ましくは並列に)実行される。段階53では、第一の双二次フィルタ段(i=0)への第三の入力サンプル(j=2)がフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値がバッファリングされる。段階54では、第二の双二次フィルタ段(i=1)への第二の入力サンプル(j=1)がフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値がバッファリングされる。段階55では、第三の双二次フィルタ段(i=2)への第一の入力サンプル(j=0)がフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値がバッファリングされる。
同様に、M>5の場合、(図7に示される)段階53〜55を含む行の下の段階行の段階が次いで(好ましくは並列に)実行され、次いで図7の段階56、57および58を含む段階行の段階が(好ましくは並列に)実行される。段階56では、第一の双二次フィルタ段(i=0)への第「M−1」の入力サンプル(j=M−2)がフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値がバッファリングされる。段階57では、第二の双二次フィルタ段(i=1)への「M−2」の入力サンプル(j=M−3)がフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値がバッファリングされる。段階58では、「M−1」番目の双二次フィルタ段(i=M−2)への第一の入力サンプル(j=0)がフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値がバッファリングされる。
図7における各段階行の段階(たとえば、段階51および52または段階53、54および55)は好ましくは(関連する段に対して呈される同じ命令または命令シーケンスに応答して)並列に実行される。
図8は、本発明の方法の図6の実施形態の、段階47および49ならびに段階48のある実施形態の詳細のフローチャートである。図8の段階60〜66は、図6のループ後フィルタリング段階48のある実装である。
一般に、kが0ないしM−1の範囲のインデックスであるとして「k」番目の双二次フィルタ段について、段階のシーケンス(図8における諸段階の縦の列)は、「k」番目の双二次フィルタ段への「N−k+1」番目の入力サンプル(j=N−k)ないし「k」番目の双二次フィルタ段への最後の入力サンプル(j=N−1)のそれぞれをフィルタリングするために実行され、そのような各段階によって生成されるフィルタリングされたサンプル値(単数または複数)は、その後の使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。
たとえば、段階60において、現在ブロックの最後のサンプル(j=N−1)が第二の双二次フィルタ段(i=1)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階61では、前記ブロックの最後から二番目のサンプル(j=N−2)が第三の双二次フィルタ段(i=2)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために(たとえば段階63において)利用可能であるよう、バッファリングされる(たとえば図4のメモリ10に)。段階63では、前記ブロックの最後の(j=N−1)サンプルが第三の双二次フィルタ段(i=2)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、好ましくはバッファリングされる(たとえば図4のメモリ10に)。
段階64では、前記ブロックの最後のサンプル(j=N−1)が最後から二番目の双二次フィルタ段(i=M−2)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、好ましくはバッファリングされる(たとえば図4のメモリ10に)。
段階62では、前記ブロックの「N−M+1」番目のサンプルが最後の双二次フィルタ段(i=M−1)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために(たとえば図8における段階62の垂直下方の諸段階において)利用可能であるよう、好ましくはバッファリングされる(たとえば図4のメモリ10に)。段階65では、前記ブロックの最後から二番目のサンプル(j=N−2)が最後の双二次フィルタ段(i=M−1)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために(たとえば図8の段階66において)利用可能であるよう、好ましくはバッファリングされる(たとえば図4のメモリ10に)。段階66では、前記ブロックの最後の(j=N−1)サンプルが最後の双二次フィルタ段(i=M−1)においてフィルタリングされ、この段階によって生成されるフィルタリングされたサンプル値が、その後の使用のために利用可能であるよう、好ましくはバッファリングされる(たとえば図4のメモリ10に)。
図8における各段階行の段階(たとえば、段階64および65または段階60、61および62を含む行中の諸段階)は好ましくは(関連する段に対して呈される同じ命令または命令シーケンスに応答して)並列に実行される。
図3の方法(および二つより多くの双二次フィルタの縦続を有する多段フィルタを用いてデータ・サンプルのブロックをフィルタリングするための、それに対する変形)は、N個の入力サンプルのブロックの多段フィルタリングを、サンプル・インデックス(図3のインデックスj)についての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行する。対照的に、図2の通常の方法は、サンプル・インデックス(図2のインデックスj)についての逐次反復および双二次フィルタ段のインデックス(図2のインデックスi)についての逐次反復の両方がある二つのネストされたループにおいてデータ・サンプルのブロックを処理する。
典型的な実施形態(たとえば、後述する図4の実施形態)では、本発明の多段フィルタの段(その各段は双二次フィルタ)は、すべての段が独立して動作でき、異なる段の処理の並列化を許容するよう、段間のレイテンシーと組み合わされる。すべての段は(入力データ値のブロックをフィルタリングするために)コントローラからの単一の共通の命令ストリームに応答して並列に動作でき、ただし各段は異なるデータ値に作用し、それらの段の少なくとも一つは(入力データ値の部分集合に応答してそれらの段の別のものによって生成され、それらの段の前記一つにおける処理のために取り出される前にバッファ・メモリに異なるレイテンシーをもって記憶された)バッファリングされた値を含むデータ値に対して作用する。こうして、多段フィルタは、個々の双二次フィルタ段が単一の命令ストリームに応答して独立にかつ並列に動作するSIMD(単一命令多重データ)アーキテクチャをもつ。たとえば、多段フィルタはN個の段を含んでいてもよく、それらの段の一つ(シーケンス中で「M+1」番目の段)はそれらの段の前のもの(シーケンス中の「M」番目の段)によって異なる時刻に(たとえば前記ブロックの異なる入力データ値のシーケンスに応答して)生成され、(異なる時刻に)バッファ・メモリに記憶され、異なるレイテンシー時間をもって前記バッファ・メモリに存在したのちに前記バッファ・メモリから(「M+1」番目の段によって)読み出されたデータ値に対して作用してもよい。
次に、図4を参照して、本発明の多段フィルタのあるクラスの実施形態を記述する。図4の多段フィルタは、複数の双二次フィルタ(Mは1より大きい整数であるとして、M個の双二次フィルタ)を含み、図3を参照して述べた型の方法(または図6に示したような、そのような方法に対する変形)を実行するよう構成されている。図4のフィルタはメモリ10、コントローラ11および双二次フィルタB1、B2、……、BMを図のような接続で含んでおり、コントローラ11によってそれらの双二次フィルタに呈される単一の命令ストリームに応答して、N個の入力データ値x(n)をフィルタリングするよう構成されている。ここで、「n」は1ないしNの範囲のインデックスである。入力データ値のそれぞれx(n)はオーディオ・データ・サンプルであってもよい。
「単一の命令ストリーム」が多段フィルタの個々の段(たとえばそのそれぞれは双二次フィルタ)に呈されるという表現は、本稿では:単一の命令ストリームがそれらすべての段に対して(たとえばすべての段が結合されている単一のバスまたは導体上で)呈される場合および命令の同一の(または実質的に同一の)ストリームがそれらの段に同時に呈される(たとえば、各ストリームがそれらの段の異なるものに結合されている異なるバスまたは導体上でアサートされる)場合の両方を含む広義の意味で使われていることは理解しておくべきである。
入力データ値x(n)のブロックに応答して、フィルタB1はN個の中間的な(双二次フィルタリングされた)値x1(n)を生成し、それらの値をメモリ10内のバッファ・メモリ位置に対して呈する。動作において、フィルタB2は必要とされる中間的な値x1(n)をメモリ10から取り出し、それに応答して中間的な(双二次フィルタリングされた)値x2(n)を生成し、生成した中間的な値をメモリ10内のバッファ・メモリ位置に対して呈する。同様に、動作において、双二次フィルタのそれぞれの他のもの(iは3ないしMの範囲のインデックスであるとしてフィルタBi)は中間的な値xi-1(n)をメモリ10から取り出し、それに応答して中間的な双二次フィルタリングされた値xi(n)を生成し、生成した値をメモリ10内のバッファ・メモリ位置に対して呈する。最後の双二次フィルタ(BM)において生成された、双二次フィルタリングされた値xM(n)=y(n)は、入力データ値x(n)のブロックに応答して生成された、N個の完全にフィルタリングされた出力データ値のブロックを有する。
メモリ10は、入力データx(n)の各ブロックを記憶するメモリ位置と、双二次フィルタB1、B2、……、BMによって生成された中間的な値x1(n),……,xM-1(n)を記憶するバッファ・メモリ位置(たとえば、入力データの各ブロックについて生成される中間的な値x1(n),……,xM-1(n)を記憶するバッファ位置)とを含む。計算がその場で実行されるいくつかの実装では、ひとたび特定の入力データ・サンプルがもはや多段フィルタによって必要とされなくなったら、入力データx(n)を記憶するために使われる同じメモリ位置が中間的な値x1(n),……,xM-1(n)を記憶するために使われてもよい。そのような実装では、メモリ10は典型的には、(通常の、並列化されない多段フィルタのバージョンを実装するための)通常のメモリより多くの(または著しく多くの)メモリ位置を含む必要はない。そのような通常のメモリが典型的には、フィルタリングされるべき入力データx(n)の各ブロックと、多段フィルタの各段によって生成される、その段自身の動作のためおよび/またはフィルタのその後の各段の動作のために必要とされる各出力値とを記憶するためのメモリ位置を含むからである。
たとえば、図9は、N=4かつM=2(すなわち、二段の双二次が同時に4サンプルのブロックに対して作用する)の場合における、図4のシステムの、計算がその場で実行されるある実装において生成される値の図である。
図9の例では、入力バッファ中の四つのサンプルx(0),……,x(3)をもって始まる。
第一の段階では、サンプルx(0)がフィルタB0(第一段の双二次)を通じてフィルタリングされて、サンプルx1(0)を生成する。サンプルx1(0)は、前にサンプルx(0)によって占められていた位置においてメモリに記憶される。他のすべてのメモリ位置は変化しない。
第二の段階では、サンプルx1(0)がフィルタB1(第二段の双二次)を通じてフィルタリングされて、サンプルy(0)を生成する。サンプルy(0)は、前にサンプルx1(0)によって占められていた位置においてメモリに記憶される。他のすべてのメモリ位置は変化しない。
並列に、サンプルx(1)はフィルタB0を通じてフィルタリングされて、サンプルx1(1)を生成する。サンプルx1(1)は、前にサンプルx(1)によって占められていた位置においてメモリに記憶される。他のすべてのメモリ位置は変化しない。
その後の諸段階では、すべての入力サンプルx(0),……,x(3)が出力サンプルy(0),……,y(3)で置き換えられるまで、処理が続けられる。
図9の例では、フィルタB1がサンプルx1(2)に適用されるとき、サンプルx1(1)およびx1(0)はもはやバッファには存在しない(y(0)およびy(1)によって置き換えられている)。その代わり、x1(1)およびx1(0)(すなわち、図1のs1(n)およびs2(n)に対応するサンプル)からフィルタB1によって導出されたサンプルがフィルタB1に関連付けられた二つの状態変数に含まれる。
図9の例では、各フィルタ(たとえばフィルタB0およびB1のそれぞれ)は、(N個の入力サンプルからなる現在ブロックの「j−1」番目および「j−2」番目の入力サンプルに応答して)自分が生成する二つのサンプル(図1のs1(n)およびs2(n)に対応)を、現在ブロックの「j」番目の入力サンプルをフィルタリングする際に使うために記憶するメモリ位置へのアクセスを要求する。これらのメモリ位置は、図4のシステムのメモリ10内であることができる(あるいは他のバッファ・メモリ位置であることができる)。
各フィルタについて、そのフィルタによって生成された記憶されたサンプル(図1のs1(n)およびs2(n)に対応)の各対は、(インクリメントされたインデックスjをもつ)新しい入力サンプルがそのフィルタに呈されるたびに更新される。記憶されたサンプル(図1のs1(n)およびs2(n)に対応)は、本発明に基づいて(多段フィルタの一つの段である)フィルタによって生成され、その後の使用のためにバッファリングされる「中間的な値」(本稿の他所でこの句が使われるような)の例であるが、これらのサンプルは(多段フィルタの異なるフィルタ段によってではなく)それらを生成したフィルタ段によってその後使用される。
図9は、その場(in place)フィルタリングを使う本発明の方法の、ブロック・サイズ(N)が4に等しく、本発明のフィルタにおける双二次フィルタ段の数(M)が2に等しい個別的な例を示しているが、その場フィルタリングを使う本発明の方法の実施形態は、M>1かつN>Mという制約条件のもとでMおよびNの任意の値について考えられる。図9の実装(およびブロック・サイズが4と異なるおよび/または双二次段の数が2と異なるその場フィルタリングを使う他の実施形態)では、ひとたび特定の入力データ・サンプルがもはや多段フィルタによって必要とされなくなったら、入力データx(n)を記憶するために使用される(たとえば図4のメモリ10内の)同じメモリ位置が、中間的な値x1(n),……,xM-1(n)を記憶するために使われてもよい。
図4のフィルタは、(メモリ10として機能する)メモリと、(コントローラ11として機能する)コントローラと、ALU(算術論理ユニット)またはAMU(算術操作ユニット)とを含み、各双二次フィルタB1、B2、……、BMが前記ALUまたはAMUの適切に構成されたものとして実装されるデジタル信号プロセッサ(DSP)または他のプロセッサをプログラムすることによって実装できる。
このように、図4のフィルタは:
バッファ・メモリ(メモリ10内のバッファ位置)と;
第一の双二次フィルタ段(たとえば双二次フィルタB1)およびその後の双二次フィルタ段(たとえば双二次フィルタB2)を含む少なくとも二つの双二次フィルタ段(双二次フィルタB1、B2、……、BM)と;
前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラ(コントローラ11)とを含む。前記第一の双二次フィルタ段および前記その後の双二次フィルタ段(および図4のフィルタのそれぞれの他の双二次フィルタ段)は前記命令ストリームに応答して独立してかつ並列に動作する。
前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値(たとえば値x1(n))を生成し、該中間的な値を前記メモリに(該メモリにおける記憶のために)呈するよう構成されている。これらの中間的な値は、前記入力サンプルの各サンプルのフィルタリングされたバージョンを含む。本発明のある種の実施形態では、中間的な値x1(n)はどの時点においてもメモリ10内に一つしか存在する必要がない。前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値(たとえば、値x2(n))のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む。
多段フィルタがM個の段を有する実施形態における、前記その後の双二次フィルタ段(たとえば図4のフィルタB2)は、メモリから取り出されるバッファリングされている値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成される。ここで、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む。
前記その後の双二次フィルタ段(たとえば図4のフィルタB2)は、前記入力サンプルのそれぞれに対応する出力値(x2(n))を、メモリから取り出されるバッファリングされている値の異なる部分集合に応答して生成するよう構成される。それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値(たとえば図4に示される値x1(n)、x1(n−1)およびx1(n−2))のうちの少なくとも二つ(たとえば三つ)を含む。より特定的には、多段フィルタがM個の段を有するある実施形態では、前記入力サンプルの第「j」のものに対応する出力値を生成するためにフィルタB2によって取り出されるバッファリングされている値の前記部分集合であって、jはM−1からN−1までの範囲のインデックスである、部分集合は、前記入力サンプルの第「j」のものに応答して前記第一の双二次フィルタ段において生成された少なくとも一つの値、前記入力サンプルの第「j−1」のものに応答して前記第一の双二次フィルタ段において生成された少なくとも一つの値および前記入力サンプルの第「j−2」のものに応答して前記第一の双二次フィルタ段において生成された少なくとも一つの値を含む。
図4のフィルタは、N個の入力サンプル(たとえばデータ値x(n))のブロックに対して多段フィルタリングを実行するよう構成されており、それは以下の段階を実行することによることを含む:
(a)N個の入力サンプルのブロックに対して第一の双二次フィルタリング動作を実行して中間的な値(たとえば図4に示される値x1(n)、x1(n−1)およびx1(n−2))を生成し、該中間的な値をバッファ・メモリに(該メモリにおける記憶のために)呈する段階であって、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
(b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値(たとえば図4に示される値x2(n))のブロックを生成する段階であって、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記ブロック中の各入力サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値(たとえば図4に示される値x1(n)、x1(n−1)およびx1(n−2))のうちの少なくとも二つ(たとえば三つ)を含む、段階。
段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される。
前記フィルタリングがM個の段を有する多段フィルタにおいて実行されるある実施形態における、前記入力サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は(jはM−1からN−1までの範囲のインデックス)、段階(a)において生成された前記入力サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む。
図5は、本発明の多段フィルタのある実施形態(「M B フィルタ」153)を含むエンコーダ(エンコーダ150)を含むシステムのブロック図である。たとえば、フィルタ153は、図4を参照して図示し、説明した型のものであってもよい。エンコーダ150は任意的には、二つ以上の多段フィルタを含み、そのそれぞれが本発明の多段フィルタの実施形態である。入力オーディオ・データ・サンプルに応答して、エンコーダ150はエンコードされたオーディオ・データを生成しエンコードされたオーディオ・データを送達サブシステム151に対して呈する。
送達サブシステム151は、エンコードされたオーディオ・データを記憶し、および/またはエンコードされたオーディオ・データを示す信号を送信するよう構成される。デコーダ152が(たとえば前記エンコードされたオーディオ・データをサブシステム151中の記憶から読み出すまたは取り出すことによってまたはサブシステム151によって送信された前記エンコードされたオーディオ・データを示す信号を受信することによって)サブシステム151からエンコードされたオーディオ・データを受領するよう結合され、構成されている(たとえばプログラムされている)。
デコーダ152は、本発明の多段フィルタのある実施形態(「M Bフィルタ」154)を含む。たとえば、フィルタ154は図4を参照して図示し、説明した型のものであってもよい。デコーダ152は任意的には、二つ以上の多段フィルタを含み、そのそれぞれが本発明の多段フィルタの実施形態である。デコーダ152は、エンコードされたオーディオ・データをデコードし、それによりデコードされたオーディオ・データを生成するよう動作する。
図5のシステムは、エンコーダ150によってエンコードされるべきオーディオ・データの予備的な処理を実行するよう構成されたオーディオ前処理サブシステム(「前処理器」)155をも含んでいる。前処理器155は、本発明の多段フィルタのある実施形態(「M Bフィルタ」157)を含む。たとえば、フィルタ157は図4を参照して図示し、説明した型のものであってもよい。
図5のシステムは、デコーダ154によってデコードされたデコード済みオーディオ・データの後処理を実行するよう構成されたオーディオ後処理サブシステム(「後処理器」)156をも含んでいる。後処理器156は、本発明の多段フィルタのある実施形態(「M Bフィルタ」158)を含む。たとえば、フィルタ158は図4を参照して図示し、説明した型のものであってもよい。
いくつかの実装では、エンコーダ150は、時間領域の入力オーディオ・データに応答してAC-3(または向上AC-3またはドルビーE)エンコードされたオーディオ・ビットストリームを生成するよう構成されているAC-3(または向上AC-3またはドルビーE)エンコーダであり、デコーダ52はAC-3(または向上AC-3またはドルビーE)デコーダである。
あるクラスの実施形態では、本発明は、入力オーディオ・データ・サンプルに応答して、エンコードされたオーディオ・データを生成するよう構成されたオーディオ・エンコーダ(たとえば図5のエンコーダ150)であり、該エンコーダは、前記オーディオ・データをフィルタリングする(たとえば、前記オーディオ・データの予備的な処理をされたバージョンをフィルタリングする)よう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む。エンコーダ150は、オーディオ・データに対して(たとえば前記オーディオ・データの予備的に処理されたバージョンに対して)本発明の多段双二次フィルタリング方法の実施形態を実行することによることを含め、エンコードされたオーディオ・データを生成するようオーディオ・データをエンコードするよう構成されている。
あるクラスの実施形態では、本発明は、エンコードされたオーディオ・データに応答して、デコードされたオーディオ・データを生成するよう構成されているオーディオ・デコーダ(たとえば図5のデコーダ152)である。前記デコーダは、前記エンコードされたオーディオ・データをフィルタリングする(たとえば、前記エンコードされたオーディオ・データの予備的な処理をされたバージョンをフィルタリングする)よう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む。デコーダ152は、エンコードされたオーディオ・データに対して(たとえば、エンコードされたオーディオ・データの予備的に処理されたバージョンに対して)本発明の多段フィルタリングの実施形態を実行することによるものも含め、デコードされたオーディオ・データを生成するよう、エンコードされたオーディオ・データをデコードするよう構成される。
本発明のもう一つの実施形態は、オーディオ・データ(たとえばエンコーダによってエンコードされるべきオーディオ・データ)の予備的な処理を実行するための前処理器(たとえば図5の前処理器155)である。前記前処理器は、前記オーディオ・データ(たとえば、前記前処理器に入力されるデータまたはそのような入力データの予備的に処理されたバージョン)をフィルタリングするよう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む。
本発明のもう一つの実施形態は、デコーダによってデコードされたデコードされたオーディオ・データの後処理を実行するための後処理器(たとえば図5の後処理器156)である。前記後処理器は、オーディオ・データ(たとえば、前記後処理器に入力されるデコード済みデータまたはそのような入力データの処理されたバージョン)をフィルタリングするよう結合され、構成されている少なくとも一つの多段フィルタ(これは本発明の多段フィルタの任意の実施形態である)を含む。
図10は、本発明の多段フィルタのある実施形態(「M Bフィルタ」153)を含むエンコーダ(エンコーダ150)を含むシステムのブロック図である。図10のエンコーダ150は図5のエンコーダ150と同一であり、図5のエンコーダ150が実装されうる仕方のいずれで実装されてもよい。多段フィルタ153は、本発明の多段フィルタの任意の実施形態を実装しうる。入力オーディオ・データ・サンプルに応答して、エンコーダ150は(一つまたは複数の入力オーディオ・チャネルを表わす)エンコードされたオーディオ・データを生成し、該エンコードされたオーディオ・データを送達サブシステム151に呈する。
送達サブシステム151は、エンコードされたオーディオ・データを記憶し、および/またはエンコードされたオーディオ・データを示す信号を送信するよう構成される。図10のサブシステム151は図5のサブシステム151と同一であり、図5のサブシステム151が実装されうる仕方のいずれで実装されてもよい。
図10のデコーダ252は(たとえば前記エンコードされたオーディオ・データをサブシステム151中の記憶から読み出すまたは取り出すことによってまたはサブシステム151によって送信された前記エンコードされたオーディオ・データを示す信号を受信することによって)サブシステム151からエンコードされたオーディオ・データを受領するよう結合された入力をもつ。
デコーダ252は、多段フィルタ153によって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを(受領されたエンコードされたビットストリームから)抽出し、該エンコードされたデータをデコードして、オーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供するよう構成されている(たとえば、プログラムされている)。
本発明の典型的な実施形態によれば、SIMD命令(または複数のALUまたはAMUによる並列処理のための命令)が、多段フィルタを実装するようプロセッサ(たとえばデジタル信号プロセッサまたは汎用プロセッサ)をプログラムするために使用される。多段フィルタは、帯域幅制限低域通過フィルタリング、低域通過フィルタリング(たとえばオーディオ・エンコーダのLFEサブシステムにおける)、高域通過フィルタリング(たとえばオーディオ・エンコーダの過渡検出器サブシステムにおける)または他のフィルタリングを実装してもよい。
本発明の他の側面は、本発明の方法の任意の実施形態を実行するよう構成された(たとえばプログラムされた)システムまたは装置(たとえばエンコーダ、デコーダまたはプロセッサ)および本発明の方法の任意の実施形態またはその段階を実装するためのコードを記憶するコンピュータ可読媒体(たとえばディスク)を含む。たとえば、本発明のシステムは、本発明の方法の実施形態またはその段階を含む多様な動作の任意のものをデータに対して実行するようソフトウェアまたはファームウェアでプログラムされたおよび/または他の仕方で構成された、プログラム可能な汎用プロセッサ、デジタル信号プロセッサまたはマイクロプロセッサであるまたはそれを含むことができる。そのような汎用プロセッサは、入力装置と、メモリと、それに対して呈されるデータに応答して本発明の方法の実施形態(またはその段階)を実行するようプログラムされた(および/または他の仕方で構成された)処理回路とを含むコンピュータ・システムであるまたはそのようなコンピュータ・システムを含むのでもよい。
本発明のいくつかの実施形態は、プログラムされたプロセッサ(たとえばARMネオン・プロセッサ(そのそれぞれは、並列処理を許容するネオンSIMDエンジンをもつARM Cortexプロセッサである)またはSIMD(単一命令多重データ)ユニットおよび/または複数のALU(算術論理ユニット)またはAMU(算術操作ユニット)を有する他のプロセッサ)として、あるいはプログラムされた(および/または他の仕方で構成された)デジタル信号プロセッサ(たとえばSIMDユニットおよび/または複数のALUまたはAMUを有するDSP)として実装された、エンコーダ(たとえば、ドルビー・デジタル・プラス、AC-3またはドルビーEフォーマットに従ってオーディオ・データをエンコードするエンコーダ)またはデコーダである。
本発明の典型的な実施形態に従って、多段双二次フィルタのすべての双二次フィルタ段の動作を(単一のサンプル・ループに)組み合わせることは、並列を可能にすることによってパフォーマンスを改善する。SIMDユニットおよび複数のALU(またはAMU)をもつプロセッサは、本発明の方法の実施形態を実装することによってその資源を効率的に活用できる。
多段双二次フィルタを実装するための本発明の方法の典型的な実施形態は、(フィルタの通常の実装によって達成可能な精度および安定性に比して)フィルタの出力精度や安定性に影響しない。
発明者が実行した試験は、ドルビー・デジタル・プラス・フォーマットに従ってオーディオ・データをエンコードするよう構成されたエンコーダであって、(該エンコーダの過渡検出器サブシステムにおける高域通過フィルタリングを実装する)本発明の二段双二次フィルタの実施形態を含むようプログラムされたテキサスインスツルメンツC64デジタル信号プロセッサとして実装されたエンコーダが、オーディオ・データの典型的なブロックをフィルタリングするために平均1846サイクルしか必要としないことを示した。これは、その代わりにエンコーダが二段フィルタの通常の(並列化されない)実装を含むよう通常式にプログラムされている場合に前記ブロックをフィルタリングするために必要とされた平均サイクル数(4141)はと対照的である。
発明者が実行した試験はまた、ドルビー・デジタル・プラス・フォーマットに従ってオーディオ・データをエンコードするよう構成されたエンコーダであって、(該エンコーダの低域効果(「LFE」)サブシステムにおける低域通過フィルタリングを実装する)本発明の四段双二次フィルタの実施形態を含むようプログラムされたテキサスインスツルメンツC64デジタル信号プロセッサとして実装されたエンコーダが、オーディオ・データの典型的なブロックをフィルタリングするために平均5802サイクルしか必要としないことを示した。これは、その代わりにエンコーダが四段フィルタの通常の(並列化されない)実装を含むよう通常式にプログラムされている場合に前記ブロックをフィルタリングするために必要とされた平均サイクル数(10375)はと対照的である。
本発明のフィルタが(他のコア・プロセッサ・アーキテクチャを有する)他のプロセッサを適切にプログラムすることによって実装されるときにも同様のパフォーマンス上の利益を提供できることが予期される。また、パフォーマンス改善の度合いがプロセッサ・アーキテクチャ、フィルタの段数およびフィルタにおける極の数に依存することも予期される。
本発明は、ハードウェア、ファームウェアまたはソフトウェアまたは両者の組み合わせにおいて(たとえばプログラム可能な論理アレイとして)実装されうる。特に断わりのない限り、本発明の一部として含まれるアルゴリズムまたはプロセスは、いかなる特定のコンピュータまたは他の装置にも本来的に関係していない。特に、さまざまな汎用機械が本願の教示に従って書かれたプログラムとともに使用されうる。あるいは、必要とされる方法段階を実行するためにより特化した装置(たとえば集積回路)を構築することがより便利であることもある。このように、本発明は、一つまたは複数のプログラム可能なコンピュータ・システム(たとえば、図5のエンコーダを実装するコンピュータ・システム)上で実行される一つまたは複数のコンピュータ・プログラムにおいて実装されうる。該コンピュータ・システムはそれぞれ、少なくとも一つのプロセッサ、少なくとも一つのデータ記憶システム(揮発性および不揮発性メモリおよび/または記憶要素を含む)、少なくとも一つの入力装置またはポートおよび少なくと一つの出力装置またはポートを有する。プログラム・コードは、入力データに適用されて、本稿に記載された機能を実行し、出力情報を生成する。出力情報は、既知の仕方で一つまたは複数の出力装置に加えられる。
そのようなそれぞれのプログラムは、コンピュータ・システムと連絡するよう任意の所望されるコンピュータ言語(機械、アセンブリまたは高レベルの手続き型、論理的またはオブジェクト指向型のプログラミング言語を含む)において実装されてもよい。いずれにせよ、言語はコンパイルされるまたはインタープリットされる言語であってよい。
たとえば、コンピュータ・ソフトウェア命令シーケンスによって実装されるとき、本発明の実施形態のさまざまな機能および段階は、好適なデジタル信号処理ハードウェアにおいて走るマルチスレッドのソフトウェア命令シーケンスによって実装されてもよい。この場合、実施形態のさまざまな装置、段階および機能は、ソフトウェア命令の諸部分に対応しうる。
そのような各コンピュータ・プログラムは好ましくは、汎用または特殊目的のプログラム可能なコンピュータによって可読な記憶媒体またはデバイス(たとえば半導体メモリもしくは媒体または磁気式もしくは光学式媒体)に記憶されるまたはダウンロードされる。前記記憶媒体もしくはデバイスが前記コンピュータ・システムによって読まれるときに、本稿に記載される手順を実行するよう前記コンピュータを構成するおよび動作させるためである。本発明のシステムは、コンピュータ・プログラムをもつよう構成された(すなわち記憶している)コンピュータ可読記憶媒体として実装されてもよい。ここで、そのように構成された該記憶媒体は、コンピュータ・システムに、本稿に記載される機能を実行するよう特定の、所定の仕方で動作させる。
個々の段がIIRフィルタであって(本稿に記載した個別的な実施形態におけるような)双二次フィルタではない多段フィルタが、その個々の段の処理が並列化されるよう(たとえば、その段すべてが、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう)、本発明に従って実装されてもよいことが考えられている。たとえば、2012年1月26日に公開された米国特許出願公開第2012/0019723号において記述されている型の多段フィルタが、その個々の段の処理が並列化されるよう(たとえば、その段すべてが、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう)本発明のある実施形態に基づいて修正されてもよい。
本発明の方法のいくつかの実施形態では、本稿に記載される段階の一部または全部が同時に、あるいは本稿に記載される例で指定されるのとは異なる順序で実行される。段階は本発明の方法のいくつかの実施形態では特定の順序で実行されるが、いくつかの段階は、他の実施形態では、同時にまたは異なる順序で実行されてもよい。
本発明のいくつかの実施形態について記述してきた。にもかかわらず、本発明の精神および範囲から外れることなくさまざまな修正がなされてもよい。上記の教示に照らして、本発明の数多くの修正および変形が可能である。付属の請求項の範囲内で、本発明は、本稿で具体的に記述したのとは異なる仕方で実施されることがありうることは理解しておくものとする。
いくつかの付番実施例を記載しておく。
〔付番実施例1〕
多段フィルタであって:
バッファ・メモリと;
第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを含んでおり、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
多段フィルタ。
〔付番実施例2〕
当該多段フィルタは、N個の入力サンプルの前記ブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成されている、付番実施例1記載の多段フィルタ。
〔付番実施例3〕
当該多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、付番実施例1記載の多段フィルタ。
〔付番実施例4〕
当該多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は、前記第一の双二次フィルタ段によって生成された、前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のものに応答して前記その後の双二次フィルタによって生成された値および前記入力サンプルの第「j−2」のものに応答して前記その後の双二次フィルタによって生成された値を含む、付番実施例1記載の多段フィルタ。
〔付番実施例5〕
前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、前記メモリから取り出される前記バッファリングされた値の異なる部分集合に応答して生成するよう構成されており、それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む、付番実施例1記載の多段フィルタ。
〔付番実施例6〕
少なくとも二つの双二次フィルタ段を有する多段フィルタであって、すべての段が、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう、前記段は前記段の間のレイテンシーをもって組み合わされている、多段フィルタ。
〔付番実施例7〕
付番実施例6記載の多段フィルタであって、前記共通の命令ストリームをすべての段に呈するよう結合されたコントローラと、すべての段に結合されたデータ・メモリとをさらに含み、すべての段は、前記共通の命令ストリームに応答して、入力データ値のブロックをフィルタリングするよう並列に動作可能であるが、各段は異なるデータ値に対して作用し、前記段の少なくとも一つがバッファリングされた値を含むデータ値に対して作用し、前記バッファリングされた値は、前記入力データ値の部分集合に応答して前記段の別のものによって生成され、前記段の前記一つにおける処理のために取り出される前に前記メモリに異なるレイテンシーをもって記憶される、多段フィルタ。
〔付番実施例8〕
当該多段フィルタが単一命令多重データ・アーキテクチャを有する、付番実施例6記載の多段フィルタ。
〔付番実施例9〕
当該多段フィルタはM個の双二次フィルタ段を含み、Mは1より大きい数であり、前記段の一つは、種々の時点において前記段のうち前のものによって生成され、種々の時点にバッファ・メモリに記憶され、異なるレイテンシー時間をもって前記バッファ・メモリに存在したのちに前記バッファ・メモリから前記段の前記一つによって読み出されたデータ値に対して作用できる、付番実施例8記載の多段フィルタ。
〔付番実施例10〕
N個の入力サンプルのブロックに対して多段フィルタリングを実行する方法であって:
(a)N個の入力サンプルの前記ブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに呈する段階であって、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
(b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記ブロック中の各入力サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、段階とを含み、
段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、
方法。
〔付番実施例11〕
入力サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される、付番実施例10記載の方法。
〔付番実施例12〕
前記多段フィルタリングがM個の段を有する多段フィルタにおいて実行され、jはM−1からN−1までの範囲のインデックスとして、前記入力サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は、段階(a)において生成された前記入力サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、付番実施例10記載の方法。
〔付番実施例13〕
入力オーディオ・データに応答して、エンコードされたオーディオ・データを生成するよう構成されたオーディオ・エンコーダであって、当該エンコーダは、前記オーディオ・データをフィルタリングするよう結合され、構成された少なくとも一つの多段フィルタを含み、前記多段フィルタは:
バッファ・メモリと;
第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを含んでおり、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
エンコーダ。
〔付番実施例14〕
前記多段フィルタは、N個の入力サンプルの前記ブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成されている、付番実施例13記載のエンコーダ。
〔付番実施例15〕
前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、付番実施例13記載のエンコーダ。
〔付番実施例16〕
前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は、前記第一の双二次フィルタ段によって生成された、前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のものに応答して前記その後の双二次フィルタによって生成された値および前記入力サンプルの第「j−2」のものに応答して前記その後の双二次フィルタによって生成された値を含む、付番実施例13記載のエンコーダ。
〔付番実施例17〕
前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、前記メモリから取り出される前記バッファリングされた値の異なる部分集合に応答して生成するよう構成されており、それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む、付番実施例13記載のエンコーダ。
〔付番実施例18〕
当該エンコーダが、前記多段フィルタを実装するようプログラムされた少なくとも一つの単一命令多重データ・ユニットを含むプロセッサである、付番実施例13記載のエンコーダ。
〔付番実施例19〕
当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術論理ユニットを含むプロセッサである、付番実施例13記載のエンコーダ。
〔付番実施例20〕
当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術操作ユニットを含むプロセッサである、付番実施例13記載のエンコーダ。
〔付番実施例21〕
入力オーディオ・データに応答して、エンコードされたオーディオ・データを生成するよう構成されたオーディオ・エンコーダであって、当該エンコーダは、前記オーディオ・データをフィルタリングするよう結合され、構成された少なくとも一つの多段フィルタを含み、前記多段フィルタは、少なくとも二つの双二次フィルタ段を含み、すべての段が、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう、前記段は前記段の間のレイテンシーをもって組み合わされている、エンコーダ。
〔付番実施例22〕
付番実施例21記載のエンコーダであって、前記多段フィルタが、前記共通の命令ストリームをすべての段に呈するよう結合されたコントローラと、すべての段に結合されたデータ・メモリとをさらに含み、すべての段は、前記共通の命令ストリームに応答して、入力データ値のブロックをフィルタリングするよう並列に動作可能であるが、各段は異なるデータ値に対して作用し、前記段の少なくとも一つがバッファリングされた値を含むデータ値に対して作用し、前記バッファリングされた値は、前記入力データ値の部分集合に応答して前記段の別のものによって生成され、前記段の前記一つにおける処理のために取り出される前に前記メモリに異なるレイテンシーをもって記憶される、エンコーダ。
〔付番実施例23〕
前記多段フィルタが単一命令多重データ・アーキテクチャを有する、付番実施例21記載のエンコーダ。
〔付番実施例24〕
当該多段フィルタはM個の双二次フィルタ段を含み、Mは1より大きい数であり、前記段の一つは、種々の時点において前記段のうち前のものによって生成され、種々の時点にバッファ・メモリに記憶され、異なるレイテンシー時間をもって前記バッファ・メモリに存在したのちに前記バッファ・メモリから前記段の前記一つによって読み出されたデータ値に対して作用できる、付番実施例23記載のエンコーダ。
〔付番実施例25〕
当該エンコーダが、前記多段フィルタを実装するようプログラムされた少なくとも一つの単一命令多重データ・ユニットを含むプロセッサである、付番実施例21記載のエンコーダ。
〔付番実施例26〕
当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術論理ユニットを含むプロセッサである、付番実施例21記載のエンコーダ。
〔付番実施例27〕
当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術操作ユニットを含むプロセッサである、付番実施例21記載のエンコーダ。
〔付番実施例28〕
オーディオ・データをエンコードしてエンコードされたオーディオ・データを生成する方法であって、当該方法は、N個のオーディオ・サンプルのブロックに対して多段フィルタリングを実行することによることを含み、前記多段フィルタリングは:
(a)N個のサンプルの前記ブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに呈する段階であって、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
(b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、段階とを含み、
段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、
方法。
〔付番実施例29〕
サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される、付番実施例28記載の方法。
〔付番実施例30〕
前記多段フィルタリングがM個の段を有する多段フィルタにおいて実行され、jはM−1からN−1までの範囲のインデックスとして、前記サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は、段階(a)において生成された前記サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、付番実施例28記載の方法。
〔付番実施例31〕
エンコードされたオーディオ・データに応答して、デコードされたオーディオ・データを生成するよう構成されたオーディオ・デコーダであって、当該デコーダは、前記エンコードされたオーディオ・データをフィルタリングするよう結合され、構成された少なくとも一つの多段フィルタを含み、前記多段フィルタは:
バッファ・メモリと;
第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを含んでおり、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
デコーダ。
〔付番実施例32〕
前記多段フィルタは、N個の入力サンプルの前記ブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成されている、付番実施例31記載のデコーダ。
〔付番実施例33〕
前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、付番実施例31記載のデコーダ。
〔付番実施例34〕
前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は、前記第一の双二次フィルタ段によって生成された、前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のものに応答して前記その後の双二次フィルタによって生成された値および前記入力サンプルの第「j−2」のものに応答して前記その後の双二次フィルタによって生成された値を含む、付番実施例31記載のデコーダ。
〔付番実施例35〕
前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、前記メモリから取り出される前記バッファリングされた値の異なる部分集合に応答して生成するよう構成されており、それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む、付番実施例31記載のデコーダ。
〔付番実施例36〕
当該エンコーダが、前記多段フィルタを実装するようプログラムされた少なくとも一つの単一命令多重データ・ユニットを含むプロセッサである、付番実施例31記載のデコーダ。
〔付番実施例37〕
当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術論理ユニットを含むプロセッサである、付番実施例31記載のデコーダ。
〔付番実施例38〕
当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術操作ユニットを含むプロセッサである、付番実施例31記載のデコーダ。
〔付番実施例39〕
エンコードされたオーディオ・データに応答して、デコードされたオーディオ・データを生成するよう構成されたオーディオ・デコーダであって、当該デコーダは、前記エンコードされたオーディオ・データをフィルタリングするよう結合され、構成された少なくとも一つの多段フィルタを含み、前記多段フィルタは、少なくとも二つの双二次フィルタ段を含み、すべての段が、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう、前記段は前記段の間のレイテンシーをもって組み合わされている、デコーダ。
〔付番実施例40〕
付番実施例39記載のデコーダであって、前記多段フィルタが、前記共通の命令ストリームをすべての段に呈するよう結合されたコントローラと、すべての段に結合されたデータ・メモリとをさらに含み、すべての段は、前記共通の命令ストリームに応答して、入力データ値のブロックをフィルタリングするよう並列に動作可能であるが、各段は異なるデータ値に対して作用し、前記段の少なくとも一つがバッファリングされた値を含むデータ値に対して作用し、前記バッファリングされた値は、前記入力データ値の部分集合に応答して前記段の別のものによって生成され、前記段の前記一つにおける処理のために取り出される前に前記メモリに異なるレイテンシーをもって記憶される、エンコーダ。
〔付番実施例41〕
前記多段フィルタが単一命令多重データ・アーキテクチャを有する、付番実施例39記載のデコーダ。
〔付番実施例42〕
当該多段フィルタはM個の双二次フィルタ段を含み、Mは1より大きい数であり、前記段の一つは、種々の時点において前記段のうち前のものによって生成され、種々の時点にバッファ・メモリに記憶され、異なるレイテンシー時間をもって前記バッファ・メモリに存在したのちに前記バッファ・メモリから前記段の前記一つによって読み出されたデータ値に対して作用できる、付番実施例41記載のデコーダ。
〔付番実施例43〕
当該デコーダが、前記多段フィルタを実装するようプログラムされた少なくとも一つの単一命令多重データ・ユニットを含むプロセッサである、付番実施例39記載のデコーダ。
〔付番実施例44〕
当該デコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術論理ユニットを含むプロセッサである、付番実施例39記載のデコーダ。
〔付番実施例45〕
当該デコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術操作ユニットを含むプロセッサである、付番実施例39記載のデコーダ。
〔付番実施例46〕
エンコードされたオーディオ・データをデコードしてデコードされたオーディオ・データを生成する方法であって、当該方法は、N個のオーディオ・サンプルのブロックに対して多段フィルタリングを実行することによることを含み、前記多段フィルタリングは:
(a)N個のサンプルの前記ブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに呈する段階であって、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
(b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、段階とを含み、
段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、
方法。
〔付番実施例47〕
サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される、付番実施例46記載の方法。
〔付番実施例48〕
前記多段フィルタリングがM個の段を有する多段フィルタにおいて実行され、jはM−1からN−1までの範囲のインデックスとして、前記サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は、段階(a)において生成された前記サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、付番実施例46記載の方法。
〔付番実施例49〕
エンコードされたビットストリームを処理する方法であって:
前記エンコードされたビットストリームを受領し、該エンコードされたビットストリームから、少なくとも二つの双二次フィルタ段を有する多段フィルタによって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを抽出する段階であって、すべての段が、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう、前記段は、前記段の間のレイテンシーをもって組み合わされている、段階と;
前記エンコードされたデータをデコードして、前記多段フィルタによって処理されたオーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供する段階とを含む、
方法。
〔付番実施例50〕
エンコードされたビットストリームを処理する方法であって:
前記エンコードされたビットストリームを受領し、該エンコードされたビットストリームから、多段フィルタによって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを抽出する段階と;
前記エンコードされたデータをデコードして、前記多段フィルタによって処理されたオーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供する段階とを含み、
前記多段フィルタは、単一の命令ストリームに応答して、独立かつ並列に:
(a)N個のサンプルのブロックに対する第一の双二次フィルタリング動作であって、バッファ・メモリに呈する中間的な値を生成し、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、動作と;
(b)前記メモリから取り出されたバッファリングされた値に対する第二の双二次フィルタリング動作であって、出力値のブロックを生成し、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、動作とを実行するよう動作する、
方法。
〔付番実施例51〕
前記多段フィルタが、帯域幅制限低域通過フィルタリングを実行するための三段の双二次フィルタである、付番実施例49または50記載の方法。
〔付番実施例52〕
前記一つまたは複数のチャネルのうちの一つがLFEチャネルであり、前記多段フィルタが、前記LFEチャネルチャネルに対して低域通過フィルタリングを実行するための四段の双二次フィルタである、付番実施例49または50記載の方法。
〔付番実施例53〕
エンコードされたビットストリームを処理する装置であって:
前記エンコードされたビットストリームを受領するよう結合される入力と;
前記エンコードされたビットストリームから、少なくとも二つの双二次フィルタ段を含む多段フィルタによって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを抽出する段階であって、すべての段が、それらの段におけるデータの完全に並列化された処理を実行するよう、単一の共通の命令ストリームに応答して独立して動作可能であるよう、前記段は、前記段の間のレイテンシーをもって組み合わされている、段階と、前記エンコードされたデータをデコードして、前記多段フィルタによって処理されたオーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供する段階とを実行するよう構成されている、前記入力に結合されたデコーダとを有する、
装置。
〔付番実施例54〕
エンコードされたビットストリームを処理する装置であって:
前記エンコードされたビットストリームを受領するよう結合される入力と;
前記エンコードされたビットストリームから、多段フィルタによって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを抽出する段階と、前記エンコードされたデータをデコードして、前記多段フィルタによって処理されたオーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供する段階とを実行するよう構成された、前記入力に結合されたデコーダとを有しており、
前記多段フィルタは、単一の命令ストリームに応答して、独立かつ並列に:
(a)N個のサンプルのブロックに対する第一の双二次フィルタリング動作であって、バッファ・メモリに呈する中間的な値を生成し、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、動作と;
(b)前記メモリから取り出されたバッファリングされた値に対する第二の双二次フィルタリング動作であって、出力値のブロックを生成し、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、動作とを実行するよう動作する、
装置。
〔付番実施例55〕
前記多段フィルタが、帯域幅制限低域通過フィルタリングを実行するための三段の双二次フィルタである、付番実施例53または54記載の装置。
〔付番実施例56〕
前記一つまたは複数のチャネルのうちの一つがLFEチャネルであり、前記多段フィルタが、前記LFEチャネルチャネルに対して低域通過フィルタリングを実行するための四段の双二次フィルタである、付番実施例53または54記載の装置。

Claims (36)

  1. 多段フィルタであって:
    バッファ・メモリと;
    第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
    前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを含んでおり、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
    前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
    前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
    多段フィルタ。
  2. 当該多段フィルタは、N個の入力サンプルの前記ブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成されている、請求項1記載の多段フィルタ。
  3. 当該多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、請求項1記載の多段フィルタ。
  4. 当該多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は、前記第一の双二次フィルタ段によって生成された、前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のものに応答して前記その後の双二次フィルタによって生成された値および前記入力サンプルの第「j−2」のものに応答して前記その後の双二次フィルタによって生成された値を含む、請求項1記載の多段フィルタ。
  5. 前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、前記メモリから取り出される前記バッファリングされた値の異なる部分集合に応答して生成するよう構成されており、それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む、請求項1記載の多段フィルタ。
  6. N個の入力サンプルのブロックに対して多段フィルタリングを実行する方法であって:
    (a)N個の入力サンプルの前記ブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに呈する段階であって、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
    (b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記ブロック中の各入力サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、段階とを含み、
    段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、
    方法。
  7. 入力サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される、請求項記載の方法。
  8. 前記多段フィルタリングがM個の段を有する多段フィルタにおいて実行され、jはM−1からN−1までの範囲のインデックスとして、前記入力サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は、段階(a)において生成された前記入力サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、請求項記載の方法。
  9. 入力オーディオ・データに応答して、エンコードされたオーディオ・データを生成するよう構成されたオーディオ・エンコーダであって、当該エンコーダは、前記オーディオ・データをフィルタリングするよう結合され、構成された少なくとも一つの多段フィルタを含み、前記多段フィルタは:
    バッファ・メモリと;
    第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
    前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを含んでおり、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
    前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
    前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
    エンコーダ。
  10. 前記多段フィルタは、N個の入力サンプルの前記ブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成されている、請求項記載のエンコーダ。
  11. 前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、請求項記載のエンコーダ。
  12. 前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は、前記第一の双二次フィルタ段によって生成された、前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のものに応答して前記その後の双二次フィルタによって生成された値および前記入力サンプルの第「j−2」のものに応答して前記その後の双二次フィルタによって生成された値を含む、請求項記載のエンコーダ。
  13. 前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、前記メモリから取り出される前記バッファリングされた値の異なる部分集合に応答して生成するよう構成されており、それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む、請求項記載のエンコーダ。
  14. 当該エンコーダが、前記多段フィルタを実装するようプログラムされた少なくとも一つの単一命令多重データ・ユニットを含むプロセッサである、請求項記載のエンコーダ。
  15. 当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術論理ユニットを含むプロセッサである、請求項記載のエンコーダ。
  16. 当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術操作ユニットを含むプロセッサである、請求項記載のエンコーダ。
  17. オーディオ・データをエンコードしてエンコードされたオーディオ・データを生成する方法であって、当該方法は、N個のオーディオ・サンプルのブロックに対して多段フィルタリングを実行することによることを含み、前記多段フィルタリングは:
    (a)N個のサンプルの前記ブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに呈する段階であって、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
    (b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、段階とを含み、
    段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、
    方法。
  18. サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される、請求項17記載の方法。
  19. 前記多段フィルタリングがM個の段を有する多段フィルタにおいて実行され、jはM−1からN−1までの範囲のインデックスとして、前記サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は、段階(a)において生成された前記サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、請求項17記載の方法。
  20. エンコードされたオーディオ・データに応答して、デコードされたオーディオ・データを生成するよう構成されたオーディオ・デコーダであって、当該デコーダは、前記エンコードされたオーディオ・データをフィルタリングするよう結合され、構成された少なくとも一つの多段フィルタを含み、前記多段フィルタは:
    バッファ・メモリと;
    第一の双二次フィルタ段およびその後の双二次フィルタ段を含む少なくとも二つの双二次フィルタ段と;
    前記双二次フィルタ段に結合されており、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段の両方に単一の命令ストリームを呈するよう構成されているコントローラとを含んでおり、前記第一の双二次フィルタ段および前記その後の双二次フィルタ段は前記命令ストリームに応答して独立してかつ並列に動作し、
    前記第一の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答してN個の入力サンプルのブロックに対して双二次フィルタリングを実行して中間的な値を生成し、該中間的な値を前記メモリに呈するよう構成されており、前記中間的な値は、前記入力サンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含み、
    前記その後の双二次フィルタ段は前記メモリに結合されており、前記命令ストリームに応答して前記メモリから取り出されたバッファリングされた値に対して双二次フィルタリングを実行して出力値のブロックを生成するよう構成されており、前記出力値は、N個の入力サンプルの前記ブロック中の各入力サンプルに対応する出力値を含み、前記バッファリングされた値は、N個の入力サンプルの前記ブロックに応答して前記第一の双二次フィルタ段において生成された前記中間的な値の少なくともいくつかを含む、
    デコーダ。
  21. 前記多段フィルタは、N個の入力サンプルの前記ブロックの多段フィルタリングを、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一の処理ループにおいて実行するよう構成されている、請求項20記載のデコーダ。
  22. 前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のもののフィルタリングされたバージョンおよび前記入力サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、請求項20記載のデコーダ。
  23. 前記多段フィルタがM個の双二次フィルタ段を有し、前記その後の双二次フィルタ段は、前記メモリから取り出される前記バッファリングされた値の部分集合に応答して、前記入力サンプルの第「j」のものに対応する出力値を生成するよう構成されており、jはM−1からN−1までの範囲のインデックスであり、前記部分集合は、前記第一の双二次フィルタ段によって生成された、前記入力サンプルの第「j」のもののフィルタリングされたバージョン、前記入力サンプルの第「j−1」のものに応答して前記その後の双二次フィルタによって生成された値および前記入力サンプルの第「j−2」のものに応答して前記その後の双二次フィルタによって生成された値を含む、請求項20記載のデコーダ。
  24. 前記その後の双二次フィルタ段は、前記入力サンプルのそれぞれに対応する出力値を、前記メモリから取り出される前記バッファリングされた値の異なる部分集合に応答して生成するよう構成されており、それぞれの前記部分集合は、前記第一の双二次フィルタ段において生成され、異なるレイテンシー時間にわたって前記メモリに存在したあと前記メモリから取り出された前記中間的な値のうちの少なくとも三つを含む、請求項20記載のデコーダ。
  25. 当該エンコーダが、前記多段フィルタを実装するようプログラムされた少なくとも一つの単一命令多重データ・ユニットを含むプロセッサである、請求項20記載のデコーダ。
  26. 当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術論理ユニットを含むプロセッサである、請求項20記載のデコーダ。
  27. 当該エンコーダが、前記双二次フィルタ段を実装するようプログラムされた複数の算術操作ユニットを含むプロセッサである、請求項20記載のデコーダ。
  28. エンコードされたオーディオ・データをデコードしてデコードされたオーディオ・データを生成する方法であって、当該方法は、N個のオーディオ・サンプルのブロックに対して多段フィルタリングを実行することによることを含み、前記多段フィルタリングは:
    (a)N個のサンプルの前記ブロックに対して第一の双二次フィルタリング動作を実行して中間的な値を生成し、該中間的な値をバッファ・メモリに呈する段階であって、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、段階と;
    (b)前記メモリから取り出されたバッファリングされた値に対して第二の双二次フィルタリング動作を実行して出力値のブロックを生成する段階であって、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、段階とを含み、
    段階(a)および(b)は単一の命令ストリームに応答して実行され、段階(a)および(b)は該単一の命令ストリームに応答して独立して並列に実行される、
    方法。
  29. サンプルの前記ブロックの前記多段フィルタリングは、サンプル・インデックスについての逐次反復があるが双二次フィルタ段インデックスについての逐次反復はない単一のループにおいて実行される、請求項28記載の方法。
  30. 前記多段フィルタリングがM個の段を有する多段フィルタにおいて実行され、jはM−1からN−1までの範囲のインデックスとして、前記サンプルの第「j」のものに対応する出力値を生成するよう段階(b)において取り出されるバッファリングされた値は、段階(a)において生成された前記サンプルの第「j」のもののフィルタリングされたバージョン、段階(a)において生成された前記サンプルの第「j−1」のもののフィルタリングされたバージョンおよび段階(a)において生成された前記サンプルの第「j−2」のもののフィルタリングされたバージョンを含む、請求項28記載の方法。
  31. エンコードされたビットストリームを処理する方法であって:
    前記エンコードされたビットストリームを受領し、該エンコードされたビットストリームから、多段フィルタによって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを抽出する段階と;
    前記エンコードされたデータをデコードして、前記多段フィルタによって処理されたオーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供する段階とを含み、
    前記多段フィルタは、単一の命令ストリームに応答して、独立かつ並列に:
    (a)N個のサンプルのブロックに対する第一の双二次フィルタリング動作であって、バッファ・メモリに呈する中間的な値を生成し、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、動作と;
    (b)前記メモリから取り出されたバッファリングされた値に対する第二の双二次フィルタリング動作であって、出力値のブロックを生成し、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、動作とを実行するよう動作する、
    方法。
  32. 前記多段フィルタが、帯域幅制限低域通過フィルタリングを実行するための三段の双二次フィルタである、請求項31記載の方法。
  33. 前記一つまたは複数のチャネルのうちの一つがLFEチャネルであり、前記多段フィルタが、前記LFEチャネルチャネルに対して低域通過フィルタリングを実行するための四段の双二次フィルタである、請求項31記載の方法。
  34. エンコードされたビットストリームを処理する装置であって:
    前記エンコードされたビットストリームを受領するよう結合される入力と;
    前記エンコードされたビットストリームから、多段フィルタによって処理されたオーディオ情報の一つまたは複数のチャネルを表わすエンコードされたデータを抽出する段階と、前記エンコードされたデータをデコードして、前記多段フィルタによって処理されたオーディオ情報の前記一つまたは複数のチャネルのデコードされた表現を提供する段階とを実行するよう構成された、前記入力に結合されたデコーダとを有しており、
    前記多段フィルタは、単一の命令ストリームに応答して、独立かつ並列に:
    (a)N個のサンプルのブロックに対する第一の双二次フィルタリング動作であって、バッファ・メモリに呈する中間的な値を生成し、前記中間的な値は、前記N個のサンプルの少なくとも部分集合の各サンプルのフィルタリングされたバージョンを含む、動作と;
    (b)前記メモリから取り出されたバッファリングされた値に対する第二の双二次フィルタリング動作であって、出力値のブロックを生成し、前記出力値は、N個のサンプルの前記ブロック中の各サンプルに対応する出力値を含み、前記ブロック中の各サンプルに対応する前記出力値を生成するために、前記バッファリングされた値の異なる部分集合が取り出されてフィルタリングされ、前記バッファリングされた値の各前記部分集合は、異なるレイテンシー時間にわたって前記メモリに存在したあとで前記メモリから取り出される、段階(a)の実行中に生成された前記中間的な値のうちの少なくとも二つを含む、動作とを実行するよう動作する、
    装置。
  35. 前記多段フィルタが、帯域幅制限低域通過フィルタリングを実行するための三段の双二次フィルタである、請求項34記載の装置。
  36. 前記一つまたは複数のチャネルのうちの一つがLFEチャネルであり、前記多段フィルタが、前記LFEチャネルチャネルに対して低域通過フィルタリングを実行するための四段の双二次フィルタである、請求項34記載の装置。
JP2015510305A 2012-05-10 2013-04-17 多段iirフィルタおよび多段iirフィルタを用いたデータの並列化フィルタリング Active JP5866062B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261645291P 2012-05-10 2012-05-10
US61/645,291 2012-05-10
PCT/US2013/036932 WO2013169450A1 (en) 2012-05-10 2013-04-17 Multistage iir filter and parallelized filtering of data with same

Publications (2)

Publication Number Publication Date
JP2015520974A JP2015520974A (ja) 2015-07-23
JP5866062B2 true JP5866062B2 (ja) 2016-02-17

Family

ID=48430922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015510305A Active JP5866062B2 (ja) 2012-05-10 2013-04-17 多段iirフィルタおよび多段iirフィルタを用いたデータの並列化フィルタリング

Country Status (22)

Country Link
US (3) US20160254006A1 (ja)
EP (1) EP2847860B1 (ja)
JP (1) JP5866062B2 (ja)
KR (1) KR101707127B1 (ja)
CN (1) CN104272593B (ja)
AU (1) AU2013260023B2 (ja)
BR (1) BR112014027685B1 (ja)
CA (1) CA2872262C (ja)
DK (1) DK2847860T3 (ja)
ES (1) ES2862999T3 (ja)
HK (1) HK1208568A1 (ja)
HU (1) HUE053514T2 (ja)
IL (1) IL235271B (ja)
IN (1) IN2014DN09176A (ja)
MX (1) MX338857B (ja)
MY (1) MY167846A (ja)
PL (1) PL2847860T3 (ja)
RU (1) RU2599970C2 (ja)
SG (1) SG11201407338SA (ja)
TW (1) TWI538000B (ja)
UA (1) UA112001C2 (ja)
WO (1) WO2013169450A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US10283103B2 (en) * 2017-03-09 2019-05-07 Avnera Corporation Real-time acoustic processor
RU2716902C1 (ru) * 2019-07-22 2020-03-17 Федеральное государственное бюджетное образовательное учреждение высшего образования "Омский государственный технический университет" (ОмГТУ) Многокаскадный биквадратный фильтр
US11388670B2 (en) * 2019-09-16 2022-07-12 TriSpace Technologies (OPC) Pvt. Ltd. System and method for optimizing power consumption in voice communications in mobile devices
US11165414B2 (en) 2019-12-20 2021-11-02 Infineon Technologies Ag Reconfigurable filter network with shortened settling time
CN113258902B (zh) * 2021-04-29 2022-02-22 睿思芯科(深圳)技术有限公司 一种处理器、滤波方法及相关设备
CN113741972B (zh) * 2021-08-20 2023-08-25 深圳市风云实业有限公司 一种sm3算法的并行处理方法及电子设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63222510A (ja) * 1987-03-12 1988-09-16 Oki Electric Ind Co Ltd 多重信号処理装置
SG49883A1 (en) 1991-01-08 1998-06-15 Dolby Lab Licensing Corp Encoder/decoder for multidimensional sound fields
US5632005A (en) 1991-01-08 1997-05-20 Ray Milton Dolby Encoder/decoder for multidimensional sound fields
US5727119A (en) 1995-03-27 1998-03-10 Dolby Laboratories Licensing Corporation Method and apparatus for efficient implementation of single-sideband filter banks providing accurate measures of spectral magnitude and phase
US6175849B1 (en) * 1998-02-10 2001-01-16 Lucent Technologies, Inc. System for digital filtering in a fixed number of clock cycles
US7933341B2 (en) 2000-02-28 2011-04-26 Broadcom Corporation System and method for high speed communications using digital signal processing
US20020049799A1 (en) 2000-10-24 2002-04-25 Minsheng Wang Parallel implementation for digital infinite impulse response filter
US6836839B2 (en) * 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7290021B2 (en) 2001-04-24 2007-10-30 California Institute Of Technology Method and apparatus for parallel signal processing
JP4446883B2 (ja) * 2002-05-30 2010-04-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オーディオ符号化
CA2389969A1 (en) 2002-06-25 2003-12-25 John W. Bogdan Digital signal processing of multi-sampled phase
US7152084B2 (en) 2002-11-08 2006-12-19 Socovar, S.E.C. Parallelized infinite impulse response (IIR) and integrator filters
US6873280B2 (en) 2003-06-12 2005-03-29 Northrop Grumman Corporation Conversion employing delta-sigma modulation
US7159002B2 (en) * 2003-08-29 2007-01-02 Texas Instruments Incorporated Biquad digital filter operating at maximum efficiency
US7411444B2 (en) 2003-11-13 2008-08-12 Texas Instruments Incorporated Technique for improving antialiasing and adjacent channel interference filtering using cascaded passive IIR filter stages combined with direct sampling and mixing
US7747666B2 (en) 2004-08-09 2010-06-29 L-3 Communications Corporation Parallel filter realization for wideband programmable digital radios
US7421050B2 (en) 2004-10-14 2008-09-02 Agere Systems Inc. Parallel sampled multi-stage decimated digital loop filter for clock/data recovery
US7319580B2 (en) 2005-03-29 2008-01-15 Intel Corporation Collapsing zipper varactor with inter-digit actuation electrodes for tunable filters
US20110113082A1 (en) * 2007-02-07 2011-05-12 Amirhossein Alimohammad Signal filtering and filter design techniques
JP5059508B2 (ja) * 2007-07-26 2012-10-24 ルネサスエレクトロニクス株式会社 マイクロプロセッサ
TW200919521A (en) 2007-10-16 2009-05-01 Inpaq Technology Co Ltd Chip-type feedthrough filter with over-voltage protection function
TWI538394B (zh) 2009-04-10 2016-06-11 杜比實驗室特許公司 利用順逆向濾波方式獲取所欲非零相移之技術
JP5540211B2 (ja) * 2010-04-06 2014-07-02 株式会社コルグ 1ビットオーディオ信号用イコライズ装置
RU2436228C1 (ru) * 2010-04-21 2011-12-10 Андрей Александрович Костоглотов Цифровой интеллектуальный многокаскадный фильтр

Also Published As

Publication number Publication date
MX2014013481A (es) 2015-05-07
EP2847860B1 (en) 2021-03-03
AU2013260023A1 (en) 2014-10-30
CA2872262A1 (en) 2013-11-14
BR112014027685B1 (pt) 2021-10-05
US9076449B2 (en) 2015-07-07
SG11201407338SA (en) 2014-12-30
IL235271A0 (en) 2014-12-31
MY167846A (en) 2018-09-26
BR112014027685A2 (pt) 2017-06-27
HUE053514T2 (hu) 2021-07-28
HK1208568A1 (en) 2016-03-04
RU2599970C2 (ru) 2016-10-20
PL2847860T3 (pl) 2021-07-05
KR20140139601A (ko) 2014-12-05
EP2847860A1 (en) 2015-03-18
AU2013260023B2 (en) 2015-11-05
TW201411673A (zh) 2014-03-16
JP2015520974A (ja) 2015-07-23
IL235271B (en) 2019-12-31
CN104272593B (zh) 2017-02-08
WO2013169450A1 (en) 2013-11-14
MX338857B (es) 2016-05-03
CA2872262C (en) 2017-01-03
UA112001C2 (uk) 2016-07-11
TWI538000B (zh) 2016-06-11
KR101707127B1 (ko) 2017-02-15
US20140046673A1 (en) 2014-02-13
IN2014DN09176A (ja) 2015-07-10
US9324335B2 (en) 2016-04-26
RU2014144746A (ru) 2016-06-10
US20160254006A1 (en) 2016-09-01
DK2847860T3 (da) 2021-03-29
US20150310872A1 (en) 2015-10-29
ES2862999T3 (es) 2021-10-08
CN104272593A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
JP5866062B2 (ja) 多段iirフィルタおよび多段iirフィルタを用いたデータの並列化フィルタリング
JP6472863B2 (ja) パラメトリック・マルチチャネル・エンコードのための方法
US20090055005A1 (en) Audio Processor
KR100778349B1 (ko) 이산값의 시퀀스를 갖는 신호 처리 장치 및 방법
US20130019029A1 (en) Lossless compression of a predictive data stream having mixed data types
RU2323469C2 (ru) Устройство и способ для обработки, по меньшей мере, двух входных значений
US11581000B2 (en) Apparatus and method for encoding/decoding audio signal using information of previous frame
KR100771401B1 (ko) 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
US8200730B2 (en) Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors
CN101626242B (zh) 改进的霍夫曼解码方法及装置
US8819093B2 (en) Systems and methods to reduce I/O and/or speed up out-of-core linear solvers
US20060069739A1 (en) Method and apparatus for encoding design description in reconfigurable multi-processor system
AU2022418124A1 (en) Ivas spar filter bank in qmf domain
JP2002094387A (ja) 符号処理方法及び装置
KR100853690B1 (ko) 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151228

R150 Certificate of patent or registration of utility model

Ref document number: 5866062

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250