CN104272593B - 多级iir滤波器和利用其对数据进行并行化滤波的方法 - Google Patents

多级iir滤波器和利用其对数据进行并行化滤波的方法 Download PDF

Info

Publication number
CN104272593B
CN104272593B CN201380024378.9A CN201380024378A CN104272593B CN 104272593 B CN104272593 B CN 104272593B CN 201380024378 A CN201380024378 A CN 201380024378A CN 104272593 B CN104272593 B CN 104272593B
Authority
CN
China
Prior art keywords
filter
level
sample
value
biquadratic
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
CN201380024378.9A
Other languages
English (en)
Other versions
CN104272593A (zh
Inventor
K·P·拉蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dolby Laboratories Licensing Corp
Original Assignee
Dolby Laboratories Licensing Corp
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 Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Publication of CN104272593A publication Critical patent/CN104272593A/zh
Application granted granted Critical
Publication of CN104272593B publication Critical patent/CN104272593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H03H17/02Frequency selective networks
    • H03H17/04Recursive filters
    • 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)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (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)

Abstract

在一些实施例中,其双二阶滤波器级与级之间等待时间的结合的多级滤波器、包括此类滤波器的系统(例如,音频编码器或解码器)、和用于多级双二阶滤波的方法。在典型的实施例中,滤波器的所有双二阶滤波器级可独立地操作以对数据执行完全并行化的处理。在一些实施例中,本发明的多级滤波器包括缓冲存储器、至少两个双二阶滤波器级、和被耦接并被配置为将单个指令流断言到滤波级的控制器。通常,多级滤波器被配置为利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个处理环路中对输入样本的块执行多级滤波。

Description

多级IIR滤波器和利用其对数据进行并行化滤波的方法
对相关申请的交叉引用
本申请要求2012年5月10日提出的美国临时专利申请No.61/645,291的优先权,其全部通过引用而被合并于此。
技术领域
本发明有关于包括双二阶滤波器级的多级滤波器,并且有关于利用此类滤波器对数据(例如,音频数据)进行并行化的滤波。本发明的某些实施例是根据被称为杜比数字(AC-3)、杜比数字加(E-AC-3)、和杜比E中的一个格式、或根据另一个编码格式在编码或解码数据期间用于对音频数据进行滤波(利用包括双二阶滤波器级的多级滤波器)的方法、系统、和处理器。杜比、杜比数字、和杜比数字加和杜比E是杜比实验室许可公司的商标。
背景技术
贯穿包括在权利要求中的本公开,“对”信号或数据执行操作(例如,滤波或缩放信号或数据)的表达被广义上使用以表示对信号或数据、或对信号或数据的处理的版本(例如,对在对其执行操作之前已经经历初步滤波或其它处理的信号的版本)直接执行操作。
在信号处理中,数字双二阶滤波器是二阶的递归线性滤波器,包含两极和两个零。这里将使用缩写“双二阶”(或“双二阶”)滤波器以表示数字双二阶滤波器。在Z域中,双二阶滤波器的转移函数是两个二次函数的比率:
高阶递归滤波器(无限脉冲响应或大于二阶的阶数的“IIR”滤波器)可以对它们的系数的量化是高度敏感的,并且可以容易变得不稳定的。第一和第二阶数递归滤波器也可以具有此类型的不稳定性问题但是不稳定性问题不严重得多。因此,高阶递归滤波器通常被实施为包括双二阶部分的串联级联的串联级联的滤波器(并且可选地也是一阶滤波器)。此类串联级联的滤波器这里有时被称为多级双二阶滤波器,并且包括双二阶滤波器的序列(有时这里称为双二阶级或双二阶部分)。
例如,被配置为根据公知的AC-3(杜比数字)格式、或公知的杜比数字加和杜比E格式的任何一个编码音频数据的传统的编码器,实施许多多级双二阶滤波器。例如,杜比数字加编码器通常采用两级双二阶滤波器(即,包括两个级联的双二阶滤波器的滤波器)以在瞬态检测器子系统中实施高通滤波、四级双二阶滤波器(即,包括四个级联的双二阶滤波器的滤波器)以在低频效果(“LFE”)子系统中实施低通滤波、和三级的双二阶滤波器以实施带宽限制的低通滤波。杜比E编码器通常采用两级双二阶滤波器(即,包括两个级联的双二阶滤波器的滤波器)以在瞬态检测器子系统中实施高通滤波、以及四级双二阶滤波器(即,包括四个级联的双二阶滤波器的滤波器)以在低频效果(“LFE”)子系统中实施低通滤波。杜比E解码器通常采用三级的双二阶滤波器(即,包括三个级联的双二阶滤波器的滤波器)以在低频效果(“LFE”)子系统中实施低通滤波。
例如,图1是包括如图所示连接的元件1、2、3、4、5、b0、b1、b2、-a1、和-a2的双二阶滤波器的图(有时被称为直接形式II-转置结构的类型)。元件1、2、和3是加法元件,元件4和5是延迟元件,并且增益元件b0、b1、b2、-a1、和-a2的每一个将增益b0、b1、b2、-a1、和-a2中对应的一个施加到断言到它的输入的信号。虽然这里未示出或描述,本领域技术人员所公知的是,其它等效的双二阶滤波器结构存在,例如直接形式I、直接形式I-转置的、和直接形式II。任何此类等效双二阶滤波器结构在本发明的范围之内。
如图1A所示,如果图1的双二阶滤波器(在图1A中标签为双二阶1)与具有相等结构的双二阶滤波器(在图1A中标签为双二阶2) 级联,但是它的增益元件可以施加与图1滤波器的增益相比较不同的增益,产生的多级双二阶滤波器是可以被采用的两级双二阶滤波器的示例(例如,以在如上所述的音频编码器的瞬态检测器子系统中实施高通滤波)。在图1A的多级双二阶滤波器中,第一级的输出信号x1(n)是到第二级的输入信号。
对于多级双二阶滤波器(和一些其它的多级IIR滤波器),响应于在时刻“n”和先前时刻的时域信号x(n)的值(输入信号或在多级滤波器的另一个级中生成的信号)在每个级中在时刻“n”处(即,级的输出信号y(n))的输出样本计算取决于先前的输出(即,在时刻n-1和n-2的输出y(n-1)和y(n-2))。此外,对于在多级双二阶滤波器中的每个两个连续级(双二阶滤波器),每个前一级的输出被输入到后续级,以使得后续级的输出直到在前一级的输出已被确定之后可以被确定。这些是关于为什么完全并行化的处理没有被采用(在本发明之前)以实施多级双二阶滤波器的主要原因。
在许多现代核处理器架构(例如,数字信号处理器结构)中存在SIMD(单指令、多数据)单元和/或多个ALU(算术逻辑单元)或AMU(算术操作单元),其可以用于并行化许多算法并且改善性能。但是,用于编程处理器以实施多级双二阶滤波器的传统算法不使用SIMD指令并且不被并行化。
例如,杜比数字加编码器(其根据杜比数字加格式编码音频数据)已被实施为编程的ARM氖处理器(每个是具有允许并行处理的氖SIMD引擎的ARM Cortex处理器),并且作为编程的德州仪器公司C64数字信号处理器。许多音频数据编码器(例如,根据AC-3、杜比数字加、杜比E、和/或其它编码格式编码音频数据的编码器)已被或可以被实施为具有各种架构、具有SIMD(单指令、多数据)单元和/或多个ALU(算术逻辑单元)或AMU(算术操作单元)中的任何一个的编程的处理器。此类处理器可以被编程来利用并行处理实施各种算法(包括在音频数据编码中)。但是,在此类处理器中已被采用以实施多级双二阶滤波器的传统编程没有实施并行处理。
本发明的典型实施例采用并行处理以实施多级双二阶滤波器。某些实施例采用并行处理以实施在根据AC-3(杜比数字)格式、杜比数字加格式、或杜比E格式编码音频数据中使用的类型的多级双二阶滤波器。
虽然本发明不局限于根据AC-3、杜比数字加、或杜比E格式在编码音频数据中使用,但是某些实施例是采用实施本发明的实施例(或根据本发明的实施例设计)的至少一个多级双二阶滤波器的音频编码方法、系统、和处理器(例如,根据AC-3、杜比数字加、或杜比E格式编码音频数据)。
AC-3编码的比特流包括音频内容的一个到六个信道、和指示音频内容的至少一个特性的元数据。音频内容是已利用感知音频编码压缩的音频数据。
AC-3(也称为杜比数字)编码的细节是公知的并且在许多公开的参考文献中阐述,包括以下:
ATSC Standard A52/A:Digital Audio Compression Standard(AC-3),RevisionA,Advanced Television Systems Committee,2001年8月20日;
Flexible Perceptual Coding for Audio Transmission and Storage,”CraigC.Todd,et al,96th Convention of the Audio Engineering Society,February 26,1994,Preprint 3796;
“Design and Implementation of AC-3Coders”,Steve Vernon,IEEETrans.Consumer Electronics,Vol.41,No.3,August 1995;
“Dolby Digital Audio Coding Standardss”一章,Robert L.Andersen和GrantA.Davidson在The Digital Signal Processing Handbook,Second Edition,VijayK.Madisetti,Editor-in-Chief,CRC Press,2009;
“High Quality,Low-Rate Audio Transform Coding for Transmission andMultimedia Applications”,Bosi et al,Audio Engineering Society Preprint 3365,93rd AES Convention,October, 1992;以及
美国专利5,583,962;5,632,005;5,633,981;5,727,119;和6,021,386。
杜比数字(AC-3)和杜比数字加(有时被称为增强的AC-3或“E-AC-3)编码的细节在“Introduction to Dolby Digital Plus,an Enhancement to the Dolby DigitalCoding System”AES Convention Paper 6196,117th AES Convention,October 28,2004、和在http://www.atsc.org/cms/index.php/standards/published-standards可访问的the Dolby Digital/Dolby Digital Plus Specification(ATSC A/52:2010)中阐述。
发明内容
在一类实施例中,本发明是包括至少两级(每级是双二阶滤波器)的多级滤波器,其中级与所述级之间的等待组合,以使得所有级响应于单个公共的指令流可独立地操作,以在所述级中执行完全并行化的数据处理。通常,多级滤波器也包括被耦接以将公共的指令流断言到所有级的控制器、和耦接到所有级的数据存储器,并且所有级可并行操作以响应公共的指令流滤波输入数据值的块,但是每个级对不同的数据值操作,并且至少一个级对包括缓冲的值、由另一个级响应于输入数据值的子集生成并且在被取回以用于在所述一个级中处理之前利用不同的等待存储在存储器中的数据值操作。因此,在这些实施例中的多级滤波器具有SIMD(单指令、多数据)架构,其中各个双二阶滤波器级响应于单个指令流独立地并且并行操作。例如,多级滤波器可以包括N级(其中N是大于一的数),并且级中的一个(在序列中的第“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级的多级滤波器中执行滤波,在步骤(b)中取回以生成与输入样本中的第“j”个对应的输出值的缓冲的值,其中j是从M-1到N-1范围的索引,包括在步骤(a)中生成的输入样本中的第“j”个样本的滤波的版本、在步骤(a)中生成的输入样本中的第“j-1”个样本的滤波的版本、以及 在步骤(a)中生成的输入样本中的第“j-2”个样本的滤波的版本。
在另一类实施例中,本发明是被配置为响应于输入音频数据生成编码的音频数据的音频编码器,所述编码器包括至少一个多级滤波器(其是发明的多级滤波器的任何实施例),被耦接并且被配置为对音频数据进行滤波(例如,对音频数据进行滤波的初步处理的版本)。在另一类实施例中,本发明是用于编码音频数据以生成编码的音频数据的方法,包括通过对音频数据(例如,对音频数据的初步处理的版本)执行发明的多级双二阶滤波方法的任何实施例。例如,本发明的实施例是音频编码器,包括预处理级(用于初步处理要被编码器编码的输入音频数据),其中预处理级包括至少一个多级滤波器(其是发明的多级滤波器的任何实施例),被耦接并且被配置为对音频数据进行滤波(例如,输入数据或输入数据的初步处理的版本)。本发明的另一个实施例是预处理器(用于初步处理要被编码器编码的音频数据),其中预处理器包括至少一个多级滤波器(其是发明的多级滤波器的任何实施例),被耦接并且被配置为对音频数据进行滤波(例如,输入到预处理器的数据或此类输入数据的初步处理的版本)。
在另一类实施例中,本发明是被配置为响应于编码的音频数据生成解码的音频数据的音频解码器。在这一类中的某些实施例中,解码器包括至少一个多级滤波器(其是发明的多级滤波器的任何实施例),被耦接并且被配置为滤波编码的音频数据(例如,对音频数据进行滤波的初步处理的编码的版本)。在另一类实施例中,本发明是用于解码编码的音频数据以生成解码的音频数据的方法。在某些此类实施例中,解码包括对编码的音频数据(例如,对编码的音频数据的初步处理的版本)执行发明的多级双二阶滤波方法的任何实施例。例如,本发明的实施例是包括后处理阶段(用于已被解码器解码的解码音频数据的后处理)的音频解码器,其中后处理阶段包括至少一个多级滤波器(其是发明的多级滤波器的任何实施例),被耦接并且被配置为对音频数据进行滤波(例如,解码的数据或解码数据的处理的版本)。本发明的另一个实施例是后处理器(例如,用于执行已被解码器解码 的解码音频数据的后处理),其中后处理器包括至少一个多级滤波器(其是发明的多级滤波器的任何实施例),被耦接并且被配置为对音频数据进行滤波(例如,输入到后处理器的解码数据或此类输入数据的处理的版本)。
根据本发明的典型实施例,SIMD指令(或用于由多个ALU或AMU并行处理的指令)用于编程处理器(例如,数字信号处理器或通用处理器)以实施多级滤波器。多级滤波器可以实施带宽滤波、低通滤波(例如,在音频编码器的LFE子系统中),高通滤波(例如,在音频编码器的瞬态检测器子系统中),或其它滤波。
本发明的其它方面包括被配置(例如编程)以执行发明的方法的任何实施例的系统或设备(例如,编码器、解码器或处理器),和存储用于实施发明的方法或它的步骤的任何实施例的代码的计算机可读媒介(例如,盘)。例如,发明的系统可以是或包括可编程的通用处理器、数字信号处理器、或微处理器,利用软件或固件编程的和/或否则被配置为对数据执行各种操作中的任何一个,包括发明的方法或它的步骤的实施例。此类通用处理器可以是或包括计算机系统,包括输入设备、存储器、和处理电路,被编程(和/或否则配置)以响应于对其断言的数据执行发明的方法(或它的步骤)的实施例。
本发明的某些实施例是编码器(例如,根据杜比数字加、AC-3、或杜比E格式编码音频数据的编码器)或解码器,被实施为编程的处理器(例如,ARM氖处理器,每个是具有允许并行处理的氖SIMD引擎的ARM Cortex处理器、或具有SIMD(单指令、多数据)单元和/或多个ALU(算术逻辑算术器)或AMU(算术操作单元)的其它处理器或被编程(和/或否则配置)的数字信号处理器(例如,具有SIMD单元和/或多个ALU或AMU的DSP)。
附图说明
图1是传统的双二阶滤波器的方框图。
图1A是传统的多级双二阶滤波器的方框图。
图2是用于在被实施为串联级联的双二阶滤波器(“级联的双二阶部分”)的滤波器中执行滤波的传统方法的流程图。
图3是用于在包括响应于单个指令流并行操作的级联的双二阶滤波器(“级联的双二阶部分”)的多级双二阶滤波器中执行滤波的发明方法的实施例的流程图。
图4是包括级联的双二阶滤波器并且可以参考图3执行描述的类型的方法的多级滤波器(例如,通过根据本发明的实施例编程DSP或其它处理器实施)的方框图。在图4中,存储器10包括存储器位置,其存储输入数据x(n)的每个块,和缓冲存储器位置,其存储由双二阶滤波器生成的所有需要的中间值x1(n),…,xN-1(n)。
图5是包括编码器(包括发明的多级滤波器的实施例)和解码器(也包括发明的多级滤波器的实施例)的系统的方框图。
图6是用于在包括响应于单个指令流并行操作的级联的双二阶滤波器(“级联的双二阶部分”)的多级双二阶滤波器中执行滤波的发明方法的另一个实施例的流程图。
图7是发明的方法的实施例的图6所述的步骤40、41、和42的实施例的流程图。
图8是发明的方法的实施例的图6所述的步骤47、48、和49的实施例的流程图。
图9是在其中适当地执行计算的图4系统的实施方式中生成的值的图。
图10是包括编码器(包括发明的多级滤波器的实施例)和作为发明的解码器的实施例的解码器的系统的方框图。
具体实施方式
将参考图3、4、5、6、7、和8描述发明的方法和被配置为实施发明方法的系统(例如,编码器和解码器)的实施例。
首先,参考图2,我们描述用于利用包括M个双二阶滤波器(其中M是在下面和在图2中被称为“nsections”的数目)的级联的多级 滤波器滤波数据样本(例如,音频数据样本块)的传统方法。此类传统的多级双二阶滤波器的示例是以上描述的图1A的滤波器。
在图2的方法中,要被滤波的每个新的N个样本的块初始被缓冲(在步骤20中)。块中的每个样本由索引j标识,其中0≤j≤N-1。在多级滤波器中的每个级(部分)由索引i标识,其中0≤i≤M-1。
在步骤21中,索引i被初始化为零,并且在步骤22中,索引j被初始化为零。
在步骤23中,在第“i”个双二阶滤波器中滤波第“j”个输入样本,并且然后在步骤24中,索引j递增。步骤25确定递增的索引j(等于j+1)是否小于N。如果在步骤25中确定递增的索引j小于N,则再一次执行步骤23以在第“i”个双二阶滤波器中滤波下一个(第“(j+1)”)样本。
如果在步骤25中确定递增的索引j等于N,以使得在当前块中的所有样本已在当前双二阶滤波器中被滤波,则在步骤26中,索引i递增。
步骤27确定最近递增的索引i(等于i+1)是否小于数目“nsections”(其等于M)。如果在步骤27中确定最近递增的索引i小于M,则执行步骤22-26的另一个迭代以滤波在下一个((第“(i+1)”个)双二阶滤波器中的中间值的最新块(在步骤22-25的先前迭代中在先前的双二阶滤波器中生成的先前(第“i”个)双二阶滤波器的输出)。
如果在步骤27中确定最近递增的索引i等于M,以使得在所有双二阶滤波器中在当前块中的所有样本的处理完成,然后执行步骤28。在步骤28中,通过在多级滤波器中滤波输入样本的当前块生成的N个滤波的样本被输出。在这一点上,要被滤波的N个样本的任何附加块被缓冲(在步骤20的新执行中)并且图2方法被重复以在多级滤波器中滤波新的样本块。
对于图2处理,在M=2的情况中(即,在多级滤波器仅仅包括两个级联的双二阶滤波器的情况中),也通过以下伪代码描述在多级 滤波器的每个级中执行的处理,其中N=通过在多级滤波器中滤波N个样本块生成的输出样本的数目:
在传统的图2方法的执行期间,因为用于每个样本(“output[j])的多级滤波器的每个级的输出一般取决于用于两个先前的样本(output[j-1]和[j-2])的级的输出,并且取决于到级的当前输入(“input[j]”)和到级的两个先前输入(input[j-1]和input[j-2]),因此用于在级内实施的环路(图2的步骤23、24、和25)的操作不被并行化。同样,因为第一级(i=0)的输出被输入到第二级(i=1),在传统图2方法的执行中不并行化跨级的操作。这导致对多级滤波器的高指令计数(有时被称为MIPS或每秒数百万指令数)需要,甚至当它由其架构包括多个ALU(或AMU)或SIMD单元的处理器实施时。
接下来,参考图3,我们描述用于利用包括级联的两个双二阶滤波器的多级滤波器滤波数据样本块(例如,音频数据样本块)的发明方法的实施例。开始,在步骤30中,要被滤波的N个样本的每个新块被缓冲(例如,在图4的存储器10中)以便在后面的步骤(包括步骤31、33、和34)可以加以应用。
块中的每个样本由索引j标识,其中0≤j≤N-1。在多级滤波器中的每个级(部分)由索引i标识,其中0≤i≤1。
在步骤31中,在第一(i=0)双二阶滤波器中滤波第一输入样本 (j=0)。由此步骤生成的值被缓冲(例如,在图4的存储器10中)以便后续使用(例如,在步骤33和/或34的后续执行中)。
在步骤32中,索引j被设置为1。
然后,并行执行步骤33和34。在步骤33中,在第一(i=0)双二阶滤波器中滤波第“j”个输入样本,并且由此步骤生成的至少一个(例如,每个)值(“中间”值)被缓冲(例如,在图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)。由此步骤生成的值被缓冲(例如,在图4的存储器10中)以便在后面的使用(例如,用于在步骤38中输出)可以加以应用。
然后,在步骤38中,由第二双二阶滤波器生成的N个滤波的样本被输出(响应于N个输入样本的当前块作为多级滤波器的输出)。在这一点上,要被滤波的N个样本的任何附加块被缓冲(在步骤30的新执行中)并且图3方法被重复以在多级滤波器中滤波新的样本块。
由以下伪代码也描述在多级滤波器的每个级中执行的处理(在图3方法的执行期间),其中N=通过在多级滤波器中滤波N个样本块生成的输出样本的数目,outputstage1[k]是响应于第k个输入样本的多级滤波器的第一级的输出,outputstage2[k]是对应于第k个输入样本的多级滤波器的第二级的输出,以及input[k]是到多级滤波器的第一级的第k个输入样本:
{第一级的第一样本处理}
{第二级的最后(第“N-1”)样本处理。}
如从图3和对应的伪代码中可见,在多级滤波器的两个级中的处理合并成单个样本环路(图3的步骤33、34、35、和36)。一般地通过在两级或多个之间引入一个样本等待,如下面关于图6、图7、和图8描述的,在具有两个或更多个双二阶滤波器级的多级滤波器的每个级之间引入一个样本等待,在多级滤波器的所有级中的处理可以根据本发明被完全并行化。根据本发明的描述的实施例,在多级滤波器的所有双二阶滤波器级中的样本块的处理可以因此在单个样本环 路(对于所有级被组合)中被并行化。
利用包括M个双二阶滤波器(其中M大于2)的级联的多级滤波器滤波数据样本块(例如,音频数据样本块)的本发明的方法的图3实施例的变化被预期。此类变化通常以参考图6、7、和8描述的方式实施。
开始,在图6流程图的步骤40中,要被滤波的N个样本的每个新块被缓冲(例如,在图4的存储器10中)以便在后面的步骤(包括步骤41、43-45、和48)可以加以应用。
块中的每个样本由索引j标识,其中0≤j≤N-1。在多级滤波器中的每个双二阶级(部分)由索引i标识,其中0≤i≤M-1。
在步骤41中,在双二阶滤波器级i=0至i=M-2(例如,以参考图7描述的方式)中对第一M-1个输入样本(j=0至j=M-2)执行预环路滤波。应当指出,如图7所示,对于某些双二阶滤波器级,预环路滤波对应于仅仅第一M-1个输入样本的子集出现。由此步骤生成的值被缓冲(例如,在图4的存储器10中)以便在后面的步骤可以加以应用(例如,在步骤43-45的后续执行)。
在步骤42中,索引j被设置为M-1。
然后,并行执行步骤43-45(一个步骤用于M级的每个)。在步骤43中,到第一(i=0)双二阶滤波器的第“j”个输入样本被滤波,并且由此步骤生成的至少一个(例如,每个)值(“中间”值)被缓冲(例如,在图4的存储器10中)以便在后面的步骤可以加以应用。在步骤44中,到第二(i=1)双二阶滤波器的第“j-1”个输入样本被滤波,并且由此步骤生成的至少一个(例如,每个)值(“中间”值)被缓冲(例如,在图4的存储器10中)以便在后面的步骤可以加以应用。类似地(在与步骤43和44并行执行的至少一个步骤中,假定M大于2),到第三(i=2)双二阶滤波器的第“j-2”个输入样本被滤波,到第四(i=3)双二阶滤波器的第“j-3”个输入样本被滤波(假定M大于或等于4),等等对于双二阶滤波器i=4至i=M-2中的每个附加一个、和由每个这样步骤生成的至少一个(例如,每个)值(“中 间”值)被缓冲以便在后面的步骤可以加以应用。在步骤45(与步骤43和44并行执行,如果M大于2)中,到最后(i=M-1)个双二阶滤波器的第“j-M+1”输入样本被滤波,并且由此步骤生成的至少一个(例如,每个)值(“中间”值)被缓冲(例如,在图4的存储器10中)以便在后面的步骤可以加以应用。
然后,在步骤46中,索引j递增,并且步骤47确定递增的索引j(等于j+1)是否小于N。如果在步骤47中确定递增的索引j小于N,则43-45(和与步骤43-45并行执行的任何其它步骤)被再一次执行以在第一双二阶滤波器中滤波下一个样本(在步骤43中),在第二双二阶滤波器中滤波下一个样本(在步骤44中),等等对于每个附加双二阶滤波器级。由步骤43-45的每一个的每个迭代生成的至少一个(例如,每个)值(“中间”值)被缓冲(例如,在图4的存储器10)以便在后面的步骤中可以加以应用。例如,在步骤43的一个或多个先前的迭代中生成的一个或多个中间值可以从缓冲器取回以用于步骤44的执行。
如果在步骤47中确定递增的索引j等于N,以使得在当前块中的所有输入样本已在双二阶滤波器的一个(i=0的滤波器)中被滤波,则执行后环路滤波步骤48。
在步骤48中,对到双二阶滤波器级i=1至i=M-1的任何其余未滤波的输入样本执行后环路滤波(例如,以参考图8描述的方式)。由此步骤生成的值被缓冲(例如,在图4的存储器10中)以便在后面的步骤(例如,在步骤49中的输出)可以加以应用。
在步骤48之后,在步骤49中,由最终(i=M-1)双二阶滤波器生成的N个滤波的样本被输出(作为响应于N个输入样本的当前块的多级滤波器的输出)。在这一点上,要被滤波的N个样本的任何附加块被缓冲(在步骤40的新执行中)并且图6方法被重复以在多级滤波器中滤波新的样本块。
图7是步骤40和42、以及发明的方法的图6实施例的步骤41的实施例的细节的流程图。图7的步骤50-58是图6的预环路滤波步 骤41的实施方式,在步骤50中,在第一双二阶滤波器级(i=0)中滤波当前块的第一样本(j=0),并且由此步骤生成的滤波的样本值被缓冲(例如,在图4的存储器10中)以便可用于后续步骤使用(例如,在步骤51和52)。在步骤51中,在第一双二阶滤波器级(i=0)中滤波块的第二样本(j=1),并且由此步骤生成的滤波的样本值被缓冲(例如,在图4的存储器10中)以便可用于后续步骤使用(例如,在步骤53中)。在步骤52中,到第二双二阶滤波器级(i=1)的块的第一样本(j=0)被滤波,并且由此步骤生成的滤波的样本值被优选地缓冲(例如,在图4的存储器10中)以便后续使用可用(例如,在步骤54中)。步骤51和52被优选并行执行(响应于相同的指令或断言到第一和第二阶段的指令序列)。
在图7中的步骤51垂直下方示出的步骤(包括步骤53和56)中,在第一双二阶滤波器级(i=0)中滤波当前块的第三样本(j=2)至第“M-1”样本(j=M-2)的每一个,并且由每个此类步骤生成的滤波的样本值被缓冲以便后续使用可用。在步骤53中,在第一双二阶滤波器级(i=0)中滤波块的第三样本(j=2),并且由此类步骤生成的滤波的样本值被缓冲以便可用于后续使用。在步骤56中,在第一双二阶滤波器级(i=0)中滤波当前块的第“M-1”个样本(j=M-2),并且由此类步骤生成的滤波的样本值被缓冲以便可用于后续使用。
在图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”双二阶滤波器级,其中k是从0到M-2范 围的索引,步骤的序列(在图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=0)的第一输入样本(j=0)被滤波,并且由此步骤生成的滤波的样本值被缓冲。
类似地,如果M>5,则(优选地并行)执行包括步骤53-55(如同在图7指示的)的行以下的步骤行的步骤,并且然后(优选地并行)执行包括图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的实施方式。
一般地,如图8所示,对于第“k”个双二阶滤波器级,其中k是从1到M-1范围的索引,步骤的序列(图8的一列步骤)被执行以 滤波到第“k”个双二阶滤波器级的第“N-k+1”个输入样本(j=N-k)至到第“k”个双二阶滤波器级的最后一个输入样本(j=N-1)的每一个,并且由每个此类步骤生成的滤波的样本值被缓冲(例如,在图4的存储器10中)以便后续使用可用。
例如,在步骤60中,在第二双二阶滤波器级(i=1)中滤波当前块的最后一个样本(j=N-1),并且由此类步骤生成的滤波的样本值被缓冲(例如,在图4的存储器10中)以便可用于后续使用。在步骤61中,在第三双二阶滤波器级(i=2)中滤波块的第二最后样本(j=N-2),并且由此步骤生成的滤波的样本值被缓冲(例如,在图4的存储器10中)以便后续步骤使用(例如,在步骤63中)。例如,在步骤63中,在第三双二阶滤波器级(i=2)中滤波块的最后一个样本(j=N-1),并且由此类步骤生成的滤波的样本值被优选地缓冲(例如,在图4的存储器10中)以便可用于后续使用。
在步骤64中,在第二最后一个双二阶滤波器级(i=M-2)中滤波块的最后一个样本(j=N-1),并且由此类步骤生成的滤波的样本值被优选地缓冲(例如,在图4的存储器10中)以便可用于后续使用。
在步骤62中,在最后一个双二阶滤波器级(i=M-1)中滤波块的第“N-M+1”样本,并且由此步骤生成的滤波的样本值被优选地缓冲(例如,在图4的存储器10中)以便后续使用可用(例如,图8中的步骤62垂直下方的步骤)。在步骤65中,在最后一个双二阶滤波器级(i=M-1)中滤波块的第二最后一个(j=N-2)样本,并且由此步骤生成的滤波的样本值被优选缓冲(例如,在图4的存储器10中)以便后续使用可用(例如,在图8中的步骤66)。在步骤66中,在最后一个双二阶滤波器级(i=M-1)中滤波块的最后一个样本(j=N-1),并且由此类步骤生成的滤波的样本值被优选地缓冲(例如,在图4的存储器10中)以便可用于后续使用。
图8中的每个步骤行的步骤(例如,步骤64和65、或包括步骤60、61、和62的行的步骤)被优选地并行执行(响应于相同的指令 或断言到相关级的指令序列)。
图3方法(用于利用包括大于两个双二阶滤波器的级联的多级滤波器滤波数据样本块的对其的变化)利用对样本索引(图3的索引j)的迭代而不利用对双二阶滤波级索引的迭代在单个环路中执行对N个输入样本块的多级滤波。相反,图2的传统方法利用对样本索引(图2的索引j)的迭代和对双二阶滤波级索引(图2的索引i)的迭代二者在两个嵌套的环路中处理数据样本块。
在典型实施例(例如,下面描述的图4实施例)中,发明的多级滤波器的级(每个级是双二阶滤波器)与级之间的等待组合,以使得所有级可以独立地操作,允许不同级的处理并行化。所有级可以响应于来自于控制器的单个、公共的指令流并行操作(以滤波输入数据值的块),但是每个级对不同的数据值操作,级的至少一个对包括缓冲的值(由另一个级响应于输入数据值的子集生成的、并且在被取回以用于在级中的所述一个中处理之前以不同的等待存储在缓冲存储器中)的数据值操作。因此,多级滤波器具有SIMD(单指令、多数据)架构,其中各个双二阶滤波器级响应于单个指令流独立地并且并行操作。例如,多级滤波器可以包括N级,并且级中的一个(在序列中的第“M+1”级)可以对由级中先前的一个(在序列中的第“M”级)在不同的时间(例如,响应于块的不同输入数据值的序列)生成的、(在不同的时间)存储在缓冲存储器中的、并且在驻留在缓冲存储器中不同的等待时间之后从缓冲存储器(由第“(M+1)”级)读取的数据值操作。
接下来,参考图4,我们描述发明的多级滤波器的一类实施例。图4的多级滤波器包括多个双二阶滤波器(M个双二阶滤波器,其中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从存储器10中取回需要的中间值x1(n),响应于其生成中间(双二阶滤波的)值x2(n),并且将它生成的中间值断言到存储器10中的缓冲存储器位置。类似地,在操作中,双二阶滤波器中的彼此一个(滤波器Bi,其中i是从3到M范围的索引)从存储器10中取回中间值xi-1(n),响应于其生成双二阶滤波的值xi(n),并且将它生成的值断言到存储器10中的缓冲存储器位置。在最终双二阶滤波器(BM)中生成的双二阶滤波的值xM(n)=y(n)包括响应于输入数据值x(n)的块生成的N个完全滤波的输出数据值的块。
存储器10包括存储器位置,其存储每个输入数据x(n)的块,和缓冲存储器位置,其存储由双二阶滤波器B1、B2、…,BM-1生成的中间值x1(n),…,xM-1(n)(例如,存储对于每个输入数据块生成的中间值x1(n),…,xM-1(n)的缓冲器位置)。在为其适当地执行计算的某些实施方式中,用于存储输入数据x(n)的相同的存储器位置可以用来存储中间值x1(n),…,xM-1(n),只要特定输入数据样本不再由多级滤波器需要。以此类实施方式,存储器10与传统存储器(用于实施多级滤波器的传统、非并行化的版本)相比较,通常不需要包括更多的(或显著地更多的)存储器位置,因为此类传统存储器将通常包括用于存储要被滤波的输入数据x(n)的每个块的存储器位置,和由多级滤波器的每一个级生成的每个输出值,每个输出值是级本身的操作和/或滤波器的每个后续级的操作所需的。
例如,图9是在图4系统的实施方式中生成的值的图,其中在N=4并且M=2的情况中(即,两级双二阶每次对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)代替)。反而,由滤波器B1从x1(1)和x1(0)得出的样本(即,对应于图1中的s1(n)和s2(n)的样本)被包含在与滤波器B1相关联的2个状态的变量中。
在图9示例中,每个滤波器(例如,滤波器B0和B1的每一个)需要访问存储两个样本(对应于图1中的s1(n)和s2(n))的存储器位置,每个滤波器生成这两个样本(响应于N个输入样本的当前块的第“j-1”个和第“j-2”个输入样本)以用于滤波当前块的第“j”个输入样本。这些存储器位置可以在图4系统的存储器10之内(或可以是其它缓冲存储器位置)。
对于每个滤波器,每次新的输入样本(具有递增的索引j)被断言到滤波器,由滤波器已经生成的每对存储的样本(对应于图1中的s1(n)和s2(n))被更新。存储的样本(对应于图1中的s1(n)和s2(n)) 是“中间值”的示例(如同这里其它地方使用的短语),所述中间值根据本发明由滤波器(其是多级滤波器的一个级)生成并且被缓冲用于后续使用,但是它们随后由生成它们的滤波器级(不由多级滤波器的不同滤波器级)使用。
虽然图9示出利用适当的滤波的本发明的方法的具体示例,其中块大小(n)等于4并且在发明的滤波器中双二阶滤波器级(M)的数目等于2,但是利用适当的滤波的本发明的方法的实施例预期M和N的任何值,服从条件M>1和N>M。在图9实施方式中(并且使用适当的滤波的其它实施例,其中块大小不同于4和/或双二阶级的数目不同于2),用于存储输入数据x(n)的相同的存储器位置(例如,在图4的存储器10中)可以用来存储中间值x1(n),…,xM-1(n),只要特定输入数据样本不再由多级滤波器需要。
图4滤波器可以通过编程数字信号处理器(DSP)或其它处理器实施,所述处理器包括存储器(用作存储器10)、控制器(用作控制器11)、和ALU(算术逻辑单元)或AMU(算术操作单元),每个双二阶滤波器B1,B2,…,BM被实施为适当地配置的ALU或AMU中的一个。
因此,图4滤波器包括:
缓冲存储器(存储器10中的缓冲位置);
至少两个双二阶滤波器级(双二阶滤波器B1,B2,…,BM),包括第一双二阶滤波器级(例如,双二阶滤波器B1)和后续的双二阶滤波器级(例如,双二阶滤波器B2);以及
控制器(控制器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)被配置为响应于从存储器取回的缓冲的值的不同子集生成与每个输入样本x(n)对应的输出值(x2(n)),每个所述子集包括在第一双二阶滤波器级中生成并且在驻留在所述存储器中不同的等待时间之后从存储器取回的至少两个(例如,三个)中间值(例如,值x1(n),x1(n-1),和x1(n-2),在图4指示的)。更具体地,在其中多级滤波器具有M级的实施例中,由滤波器B2取回以生成与输入样本中的第“j”个样本对应的输出值的缓冲的值的子集包括响应于输入样本中的第“j”个样本在第一双二阶滤波器级中生成的至少一个值、响应于输入样本中的第“j-1”个样本在第一双二阶滤波器级中生成的至少一个值、以及响应于输入样本中的第“j-2”个样本在第一双二阶滤波器级中生成的至少一个值,其中j是从M-1到N-1范围的索引。
图4滤波器被配置为对N个输入样本(数据值x(n))的块执行多级滤波,包括执行以下步骤:
(a)对N个输入样本的块执行第一双二阶滤波操作以生成中间值(例如,在图4指示的值x1(n),x1(n-1),和x1(n-2)),并且将中间 值断言到缓冲存储器(用于存储在所述存储器中),其中中间值包括输入样本的至少子集的每一个的滤波的版本;以及
(b)对从存储器取回的缓冲的值执行第二双二阶滤波操作,以生成输出值的块(例如,在图4指示的值x2(n)),其中输出值包括与N个输入样本的块中的每个输入样本对应的输出值,所述缓冲的值的不同子集被取回和滤波以生成与块中每个输入样本对应的输出值,并且缓冲的值的每个所述子集包括在执行步骤(a)期间生成的至少两个(例如,三个)中间值(例如,值x1(n),x1(n-1),和x1(n-2),在图4指示的),所述中间值在驻留在所述存储器不同的等待时间之后从存储器取回,
其中步骤(a)和(b)响应于单个指令流被执行,以使得步骤(a)和(b)响应于单个指令流被独立地并且并行执行。
在具有M级的多级滤波器中执行滤波的实施例中,在步骤(b)中被取回以生成与输入样本中的第“j”个样本对应的输出值的缓冲的值包括在步骤(a)中生成的输入样本中的第“j”个样本的滤波的版本、在步骤(a)中生成的输入样本中第“j-1”个样本的滤波的版本、和在步骤(a)中生成的输入样本中第“j-2”个样本的滤波的版本,其中j是从M-1到N-1范围的索引。
图5是包括本发明的多级滤波器(“M B滤波器”153)的实施例的编码器(编码器150)的系统的方框图。例如,滤波器153可以是图4所示并且参考图4描述的类型的。编码器150可选地包括两个或更多个多级滤波器,每个是本发明的多级滤波器的实施例。响应于输入音频数据样本,编码器150生成编码的音频数据并且将编码的音频数据断言到传递子系统151。
传递子系统151被配置为存储编码的音频数据和/或发送指示编码的音频数据的信号。解码器152被耦接并且配置(例如,编程)以从子系统151接收编码的音频数据(例如,通过从子系统151中的存储器读取或取回编码的音频数据,或接收已被子系统151发送的指示编码的音频数据的信号)。
解码器152包括本发明的多级滤波器(“M B滤波器”154)的实施例。例如,滤波器154可以是图4所示并且参考图4描述的类型。解码器152可选地包括两个或更多个多级滤波器,每个是本发明的多级滤波器的实施例。解码器152操作以解码编码的音频数据,从而生成解码的音频数据。
图5系统也包括音频预处理子系统(“预处理器”)155,被配置为对要被编码器150编码的音频数据执行初步处理。预处理器155包括本发明的多级滤波器(“M B滤波器”157)的实施例。例如,滤波器157可以是图4所示并且参考图4描述的类型。
图5系统也包括音频后处理子系统(“后处理器”)156,被配置为对已被解码器154解码的解码的音频数据执行后处理。后处理器156包括本发明的多级滤波器(“M B滤波器”158)的实施例。例如,滤波器158可以是图4所示并且参考图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子系统中)、高通滤波(例如,在音频编码器的瞬态检测器子系统)、或其它滤波。
本发明的其它方面包括被配置(例如编程)以执行本发明的方法的任何实施例的系统或设备(例如,编码器、解码器或处理器),和存储用于实施本发明的方法或它的步骤的任何实施例的代码的计算机可读媒介(例如,盘)。例如,本发明的系统可以是或包括可编程的通用处理器、数字信号处理器、或微处理器,利用软件或固件编程和/或否则被配置为对数据执行各种操作中的任何一个,包括发明的方法或它的步骤的实施例。此类通用处理器可以是或包括计算机系统,包括输入设备、存储器、和处理电路,被编程(和/或否则配置)以响应于对其断言的数据执行发明的方法(或它的步骤)的实施例。
本发明的某些实施例是编码器(例如,根据杜比数字加、AC-3、或杜比E格式编码音频数据的编码器)或解码器,被实施为编程的处理器(例如,ARM氖处理器,每个是具有允许并行处理的氖SIMD引擎的ARM Cortex处理器、或具有SIMD(单指令、多数据)单元和/或多个ALU(算术逻辑单元)或AMU(算术操作单元)的其它处理器)或被编程(和/或否则配置)的数字信号处理器(例如,具有SIMD单元和/或多个ALU或AMU的DSP)。
根据本发明的典型实施例组合多级双二阶滤波器的所有双二阶滤波器级的操作(在单个样本环路中)通过使能并行化来改善性能。具有SIMD单元和多个ALU(或AMU)的处理器可以通过实施发明方法的实施例而有效地使用它们的资源。
用于实施多级双二阶滤波器的本发明的方法的典型实施例不影响输出的精度或滤波器的稳定性(相对于由滤波器的传统实施方式可 得到的精度和稳定性)。
由发明人执行的测试已经表明,与当编码器被传统上编程以包括两级滤波器的传统的(非并行化的)实施方式时滤波块所需的平均循环数(4141)相反,被配置为根据杜比数字加格式编码音频数据、并且被实施为被编程以包括本发明的两级双二阶滤波器(在编码器的瞬态检测器子系统中实施高通滤波)的实施例的德州仪器公司C64数字信号处理器的编码器仅仅需要平均1846个循环来对典型的音频数据块进行滤波。
由发明人执行的测试也已经表明,与当编码器被传统上编程以包括四级滤波器的传统的(非并行化的)实施方式时滤波块所需的平均循环数(10375)相反,被配置为根据杜比数字加格式编码音频数据、并且被实施为被编程以包括本发明的四级的双二阶滤波器(在编码器的低频效果(“LFE”)子系统中实施低通滤波)的实施例的德州仪器公司C64数字信号处理器的编码器仅仅需要平均5802个循环来对典型的音频数据块进行滤波。
预期当通过适当地编程其它处理器(具有其它核处理器架构)实施发明的滤波器时,本发明也可以提供类似的性能益处。也预期性能改善程度将取决于处理器架构、滤波器的级的数目、和在滤波器中的极的数目。
本发明可以在硬件、固件、或软件、或两者组合(例如,作为可编程逻辑阵列)中实施。除非另作说明,包括为本发明的一部分的算法或处理不固有地与任何特定计算机或其它装置相关。具体地,各种通用机器可以与根据这里的教导编写的程序一起使用,或构建更专门化的装置(例如,集成电路)执行需要的方法步骤可能更方便。因此,本发明可以在一个或多个可编程的计算机系统(例如,实施图5的编码器的计算机系统)上运行的一个或多个计算机程序中实施,每个计算机系统包括至少一个处理器、至少一个数据存储系统(包括易失性的和非易失性存储器和/或存储元件)、至少一个输入设备或端口、和至少一个输出设备或端口。程序代码应用于输入数据以执行这里描述 的功能并且生成输出信息。输出信息被以公知的方式应用于一个或多个输出设备。
每个此类程序可以以任何期望的计算机语言(包括机器、汇编、或高级程序、逻辑、或面向对象的编程语言)实施以与计算机系统通信。在任何情况下,语言可以是编译或解释的语言。
例如,当由计算机软件指令序列实施时,本发明的实施例的各种功能和步骤可以由在适当的数字信号处理硬件中运行的多线程软件指令序列实施,在这种情况下实施例的各种设备、步骤、和功能可以对应于软件指令的部分。
每个这样的计算机程序优选地存储在或下载到由通用或专用可编程计算机可读的存储介质或设备(例如,固态存储器或介质、或磁或光学介质)上,用于在存储介质或设备由计算机系统读取时配置和操作该计算机以执行这里描述的过程。本发明系统也可以被实施为配置有(即存储)计算机程序的计算机可读存储介质,其中这样配置的存储介质使得计算机系统以特定和预定义的方式工作以执行这里描述的功能。
预期各个级是IIR滤波器而不是双二阶滤波器(如同它们在这里描述的具体实施例中)的多级滤波器可以被根据本发明实施以使得它的各个级的处理是并行化的(例如,以使得所有它的级可响应于单个、公共的指令流独立地操作以在所述级中对数据执行完全并行化的处理)。例如,在2012年1月26日公开的、美国专利申请公开No.2012/0019723A1中描述的类型的多级滤波器可以根据本发明的实施例修改,以使得它的各个级的处理是并行化的(例如,以使得所有它的级响应于单个、公共的指令流可独立地操作以在所述级中对数据执行完全并行化的处理)。
在发明的方法的一些实施例中,这里描述的某些或所有步骤被同时或以与在这里描述的示例中指定顺序不同的顺序执行。虽然步骤在发明的方法的一些实施例中以特定的顺序执行,但是某些步骤在其它实施例中可以被同时或以不同的顺序执行。
已经描述了本发明的大量实施例。然而,应当理解,在不脱离本发明的精神和范围的情况下可以做出各种修改。根据以上教导,本发明的许多修改和变化是可能的。因此要理解,在附加权利要求书的范围内,本发明可以被除这里具体地描述的之外实践。

Claims (53)

1.一种多级滤波器,包括:
缓冲存储器;
至少两个双二阶滤波器级,包括第一双二阶滤波器级和后续的双二阶滤波器级;以及
控制器,耦接到双二阶滤波器级并且被配置为将单个指令流断言到第一双二阶滤波器级和后续的双二阶滤波器级二者,其中所述第一双二阶滤波器级和所述后续的双二阶滤波器级响应于指令流独立地并且并行操作,
其中第一双二阶滤波器级被耦接到所述存储器并且被配置为响应于指令流对N个输入样本的块执行双二阶滤波以生成中间值,并且将中间值断言到存储器,其中所述中间值包括输入样本的至少一个子集的每一个的滤波的版本,以及
其中后续的双二阶滤波器级被耦接到所述存储器并且被配置为响应于指令流对从存储器取回的缓冲的值执行双二阶滤波以生成输出值的块,其中输出值包括与N个输入样本的块中的每一个输入样本对应的输出值,并且所述缓冲的值包括响应于N个输入样本的块在第一双二阶滤波器级中生成的中间值中的至少一些。
2.如权利要求1所述的多级滤波器,其中所述多级滤波器被配置为利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个处理环路中执行N个输入样本的块的多级滤波。
3.如权利要求1所述的多级滤波器,其中所述多级滤波器具有M个双二阶滤波器级,所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的子集生成与输入样本中的第“j”个样本对应的输出值,其中j是从M-1到N-1范围的索引,所述子集包括输入样本中的第“j”个样本的滤波的版本、输入样本中的第“j-1”个样本的滤波的版本、以及输入样本中的第“j-2”个样本的滤波的版本。
4.如权利要求1所述的多级滤波器,其中所述多级滤波器具有M个双二阶滤波器级,所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的子集生成与输入样本中的第“j”个样本对应的输出值,其中j是从M-1到N-1范围的索引,所述子集包括由第一双二阶滤波器级生成的输入样本中的第“j”个样本的滤波的版本、响应于输入样本中的第“j-1”个样本由后续的双二阶滤波器级生成的值、以及响应于输入样本中的第“j-2”个样本由后续的双二阶滤波器级生成的值。
5.如权利要求1所述的多级滤波器,其中所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的不同子集生成与输入样本的每一个对应的输出值,每个所述子集包括在第一双二阶滤波器级中生成并且在驻留在所述存储器中不同的等待时间之后从存储器取回的中间值中的至少三个。
6.一种多级滤波器,包括:
至少两个双二阶滤波器级,其中所述级与所述级之间的等待时间组合,以使得所有级响应于单个、公共的指令流可独立地操作以在所述级中对数据执行完全并行化的处理;
被耦接以将公共的指令流断言到所有级的控制器;和
耦接到所有级的数据存储器,
其中所有级可并行操作以响应于公共的指令流对输入数据值的块进行滤波,但是每个级对不同的数据值操作,并且至少一个级对包括缓冲的值的数据值操作,所述缓冲的值由另一个级响应于输入数据值的子集生成并且在被取回以用于在所述一个级中处理之前存储在存储器中不同的等待时间。
7.如权利要求6所述的多级滤波器,其中所述多级滤波器具有单指令、多数据架构。
8.如权利要求7所述的多级滤波器,其中所述多级滤波器包括M个双二阶滤波器级,其中M是大于一的数,并且所述级中的一个级可对数据值操作,所述数据值由所述级中的前一个级在不同的时间生成、在不同的时间存储在缓冲存储器中、并且在驻留在缓冲存储器中不同的等待时间之后由所述级中的所述一个级从缓冲存储器读取。
9.一种用于对N个输入样本的块执行多级滤波的方法,所述方法包括以下步骤:
(a)对N个输入样本的块执行第一双二阶滤波操作以生成中间值,并且将中间值断言到缓冲存储器,其中所述中间值包括输入样本的至少一个子集的每一个的滤波的版本;以及
(b)对从存储器取回的缓冲的值执行第二双二阶滤波操作以生成输出值的块,其中输出值包括与N个输入样本的块中的每个输入样本对应的输出值,缓冲的值的不同子集被取回和滤波以生成与块中每个输入样本对应的输出值,并且缓冲的值的每个所述子集包括在执行步骤(a)期间生成的中间值中的至少两个,所述中间值在驻留在所述存储器中不同的等待时间之后被从存储器取回,
其中步骤(a)和(b)响应于单个指令流被执行,以使得步骤(a)和(b)响应于单个指令流被独立地并且并行执行。
10.如权利要求9所述的方法,其中输入样本的块的多级滤波被利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个环路中执行。
11.如权利要求9所述的方法,其中所述多级滤波被在具有M级的多级滤波器中执行,在步骤(b)中取回以生成与输入样本中的第“j”个样本对应的输出值的缓冲的值包括在步骤(a)中生成的输入样本中的第“j”个样本的滤波的版本、在步骤(a)中生成的输入样本中的第“j-1”个样本的滤波的版本、和在步骤(a)中生成的输入样本中的第“j-2”个样本的滤波的版本,其中j是从M-1到N-1范围的索引。
12.一种音频编码器,被配置为响应于输入音频数据生成编码的音频数据,所述编码器包括被耦接并且被配置为对音频数据进行滤波的至少一个多级滤波器,其中所述多级滤波器包括:
缓冲存储器;
至少两个双二阶滤波器级,包括第一双二阶滤波器级和后续的双二阶滤波器级;以及
控制器,耦接到双二阶滤波器级并且被配置为将单个指令流断言到第一双二阶滤波器级和后续的双二阶滤波器级二者,其中所述第一双二阶滤波器级和所述后续的双二阶滤波器级响应于指令流独立地并且并行操作,
其中第一双二阶滤波器级被耦接到所述存储器并且被配置为响应于指令流对N个输入样本的块执行双二阶滤波以生成中间值,并且将中间值断言到存储器,其中所述中间值包括输入样本的至少一个子集的每一个的滤波的版本,以及
其中后续的双二阶滤波器级被耦接到所述存储器并且被配置为响应于指令流对从存储器取回的缓冲的值执行双二阶滤波以生成输出值的块,其中输出值包括与N个输入样本的块中的每一个输入样本对应的输出值,并且所述缓冲的值包括响应于N个输入样本的块在第一双二阶滤波器级中生成的中间值中的至少一些。
13.如权利要求12所述的编码器,其中所述多级滤波器被配置为利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个处理环路中执行N个输入样本的块的多级滤波。
14.如权利要求12所述的编码器,其中所述多级滤波器具有M个双二阶滤波器级,所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的子集生成与输入样本中的第“j”个样本对应的输出值,其中j是从M-1到N-1范围的索引,所述子集包括输入样本中的第“j”个样本的滤波的版本、输入样本中的第“j-1”个样本的滤波的版本、以及输入样本中的第“j-2”个样本的滤波的版本。
15.如权利要求12所述的编码器,其中所述多级滤波器具有M个双二阶滤波器级,所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的子集生成与输入样本中的第“j”个样本对应的输出值,其中j是从M-1到N-1范围的索引,所述子集包括由第一双二阶滤波器级生成的输入样本中的第“j”个样本的滤波的版本、响应于输入样本中的第“j-1”个样本由后续的双二阶滤波器级生成的值、以及响应于输入样本中的第“j-2”个样本由后续的双二阶滤波器级生成的值。
16.如权利要求12所述的编码器,其中所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的不同子集生成与输入样本的每一个对应的输出值,每个所述子集包括在第一双二阶滤波器级中生成并且在驻留在所述存储器中不同的等待时间之后从存储器取回的中间值中的至少三个。
17.如权利要求12所述的编码器,其中所述编码器是包括至少一个被编程以实施所述多级滤波器的单指令、多数据单元的处理器。
18.如权利要求12所述的编码器,其中所述编码器是包括被编程以实施所述双二阶滤波器级的多个算术逻辑单元的处理器。
19.如权利要求12所述的编码器,其中所述编码器是包括被编程以实施所述双二阶滤波器级的多个算术操作单元的处理器。
20.一种音频编码器,被配置为响应于输入音频数据生成编码的音频数据,所述编码器包括至少一个被耦接并且被配置为对音频数据进行滤波的多级滤波器,其中所述多级滤波器包括:
至少两个双二阶滤波器级,其中所述级与所述级之间的等待时间组合,以使得所有级响应于单个、公共的指令流可独立地操作以在所述级中对数据执行完全并行化的处理;
被耦接以将公共的指令流断言到所有级的控制器;和
耦接到所有级的数据存储器,
其中所有级可并行操作以响应于公共的指令流对输入数据值的块进行滤波,但是每个级对不同的数据值操作,并且至少一个级对包括缓冲的值的数据值操作,所述缓冲的值由另一个级响应于输入数据值的子集生成并且在被取回以用于在所述一个级中处理之前存储在存储器中不同的等待时间。
21.如权利要求20所述的编码器,其中所述多级滤波器具有单指令、多数据架构。
22.如权利要求21所述的编码器,其中所述多级滤波器包括M个双二阶滤波器级,其中M是大于一的数,并且所述级中的一个级可对数据值操作,所述数据值由所述级中的前一个级在不同的时间生成、在不同的时间存储在缓冲存储器中、并且在驻留在缓冲存储器中不同的等待时间之后由所述级中的所述一个级从缓冲存储器读取。
23.如权利要求20所述的编码器,其中所述编码器是包括至少一个被编程以实施所述多级滤波器的单指令、多数据单元的处理器。
24.如权利要求20所述的编码器,其中所述编码器是包括被编程以实施所述双二阶滤波器级的多个算术逻辑单元的处理器。
25.如权利要求20所述的编码器,其中所述编码器是包括被编程以实施所述双二阶滤波器级的多个算术操作单元的处理器。
26.一种用于编码音频数据以生成编码的音频数据的方法,包括对N个音频数据样本的块执行多级滤波,其中所述多级滤波包括以下步骤:
(a)对N个样本的块执行第一双二阶滤波操作以生成中间值,并且将中间值断言到缓冲存储器,其中所述中间值包括N个样本的至少一个子集的每一个的滤波的版本;以及
(b)对从存储器取回的缓冲的值执行第二双二阶滤波操作以生成输出值的块,其中输出值包括与N个样本的块中的每个样本对应的输出值,缓冲的值的不同子集被取回和滤波以生成与块中每个样本对应的输出值,并且缓冲的值的每个所述子集包括在执行步骤(a)期间生成的中间值中的至少两个,所述中间值在驻留在所述存储器中不同的等待时间之后被从存储器取回,
其中步骤(a)和(b)响应于单个指令流被执行,以使得步骤(a)和(b)响应于单个指令流被独立地并且并行执行。
27.如权利要求26所述的方法,其中样本的块的多级滤波被利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个环路中执行。
28.如权利要求26所述的方法,其中所述多级滤波被在具有M级的多级滤波器中执行,在步骤(b)中取回以生成与样本中的第“j”个样本对应的输出值的缓冲的值包括在步骤(a)中生成的样本中的第“j”个样本的滤波的版本、在步骤(a)中生成的样本中的第“j-1”个样本的滤波的版本、和在步骤(a)中生成的样本中的第“j-2”个样本的滤波的版本,其中j是从M-1到N-1范围的索引。
29.一种音频解码器,被配置为响应于编码的音频数据生成解码的音频数据,所述解码器包括被耦接并且被配置为对编码的音频数据进行滤波的至少一个多级滤波器,其中所述多级滤波器包括:
缓冲存储器;
至少两个双二阶滤波器级,包括第一双二阶滤波器级和后续的双二阶滤波器级;以及
控制器,耦接到双二阶滤波器级并且被配置为将单个指令流断言到第一双二阶滤波器级和后续的双二阶滤波器级二者,其中所述第一双二阶滤波器级和所述后续的双二阶滤波器级响应于指令流独立地并且并行操作,
其中第一双二阶滤波器级被耦接到所述存储器并且被配置为响应于指令流对N个输入样本的块执行双二阶滤波以生成中间值,并且将中间值断言到存储器,其中所述中间值包括输入样本的至少一个子集的每一个的滤波的版本,以及
其中后续的双二阶滤波器级被耦接到所述存储器并且被配置为响应于指令流对从存储器取回的缓冲的值执行双二阶滤波以生成输出值的块,其中输出值包括与N个输入样本的块中的每一个输入样本对应的输出值,并且所述缓冲的值包括响应于N个输入样本的块在第一双二阶滤波器级中生成的中间值中的至少一些。
30.如权利要求29所述的解码器,其中所述多级滤波器被配置为利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个处理环路中执行N个输入样本的块的多级滤波。
31.如权利要求29所述的解码器,其中所述多级滤波器具有M个双二阶滤波器级,所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的子集生成与输入样本中的第“j”个样本对应的输出值,其中j是从M-1到N-1范围的索引,所述子集包括输入样本中的第“j”个样本的滤波的版本、输入样本中的第“j-1”个样本的滤波的版本、以及输入样本中的第“j-2”个样本的滤波的版本。
32.如权利要求29所述的解码器,其中所述多级滤波器具有M个双二阶滤波器级,所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的子集生成与输入样本中的第“j”个样本对应的输出值,其中j是从M-1到N-1范围的索引,所述子集包括由第一双二阶滤波器级生成的输入样本中的第“j”个样本的滤波的版本、响应于输入样本中的第“j-1”个样本由后续的双二阶滤波器级生成的值、以及响应于输入样本中的第“j-2”个样本由后续的双二阶滤波器级生成的值。
33.如权利要求29所述的解码器,其中所述后续的双二阶滤波器级被配置为响应于从存储器取回的缓冲的值的不同子集生成与输入样本的每一个对应的输出值,每个所述子集包括在第一双二阶滤波器级中生成并且在驻留在所述存储器中不同的等待时间之后从存储器取回的中间值中的至少三个。
34.如权利要求29所述的解码器,其中所述解码器是包括至少一个被编程以实施所述多级滤波器的单指令、多数据单元的处理器。
35.如权利要求29所述的解码器,其中所述解码器是包括被编程以实施所述双二阶滤波器级的多个算术逻辑单元的处理器。
36.如权利要求29所述的解码器,其中所述解码器是包括被编程以实施所述双二阶滤波器级的多个算术操作单元的处理器。
37.一种音频解码器,被配置为响应于编码的音频数据生成解码的音频数据,所述解码器包括至少一个被耦接并且被配置为对编码的音频数据进行滤波的多级滤波器,其中所述多级滤波器包括:
至少两个双二阶滤波器级,其中所述级与所述级之间的等待时间组合,以使得所有级响应于单个、公共的指令流可独立地操作以在所述级中对数据执行完全并行化的处理;
被耦接以将公共的指令流断言到所有级的控制器;和
耦接到所有级的数据存储器,
其中所有级可并行操作以响应于公共的指令流对输入数据值的块进行滤波,但是每个级对不同的数据值操作,并且至少一个级对包括缓冲的值的数据值操作,所述缓冲的值由另一个级响应于输入数据值的子集生成并且在被取回以用于在所述一个级中处理之前存储在存储器中不同的等待时间。
38.如权利要求37所述的解码器,其中所述多级滤波器具有单指令、多数据架构。
39.如权利要求38所述的解码器,其中所述多级滤波器包括M个双二阶滤波器级,其中M是大于一的数,并且所述级中的一个级可对数据值操作,所述数据值由所述级中的前一个级在不同的时间生成、在不同的时间存储在缓冲存储器中、并且在驻留在缓冲存储器中不同的等待时间之后由所述级中的所述一个级从缓冲存储器读取。
40.如权利要求37所述的解码器,其中所述解码器是包括至少一个被编程以实施所述多级滤波器的单指令、多数据单元的处理器。
41.如权利要求37所述的解码器,其中所述解码器是包括被编程以实施所述双二阶滤波器级的多个算术逻辑单元的处理器。
42.如权利要求37所述的解码器,其中所述解码器是包括被编程以实施所述双二阶滤波器级的多个算术操作单元的处理器。
43.一种用于对编码的音频数据进行解码以生成解码的音频数据的方法,包括对N个音频数据样本的块执行多级滤波,其中所述多级滤波包括以下步骤:
(a)对N个样本的块执行第一双二阶滤波操作以生成中间值,并且将中间值断言到缓冲存储器,其中所述中间值包括N个样本的至少一个子集的每一个的滤波的版本;以及
(b)对从存储器取回的缓冲的值执行第二双二阶滤波操作以生成输出值的块,其中输出值包括与N个样本的块中的每个样本对应的输出值,缓冲的值的不同子集被取回和滤波以生成与块中每个样本对应的输出值,并且缓冲的值的每个所述子集包括在执行步骤(a)期间生成的中间值中的至少两个,所述中间值在驻留在所述存储器中不同的等待时间之后被从存储器取回,
其中步骤(a)和(b)响应于单个指令流被执行,以使得步骤(a)和(b)响应于单个指令流被独立地并且并行执行。
44.如权利要求43所述的方法,其中样本的块的多级滤波被利用对样本索引的迭代而不利用对双二阶滤波器级索引的迭代在单个环路中执行。
45.如权利要求43所述的方法,其中所述多级滤波被在具有M级的多级滤波器中执行,在步骤(b)中取回以生成与样本中的第“j”个样本对应的输出值的缓冲的值包括在步骤(a)中生成的样本中的第“j”个样本的滤波的版本、在步骤(a)中生成的样本中的第“j-1”个样本的滤波的版本、和在步骤(a)中生成的样本中的第“j-2”个样本的滤波的版本,其中j是从M-1到N-1范围的索引。
46.一种用于处理编码的比特流的方法,包括:
接收编码的比特流并且从其中提取表示由多级滤波器处理的音频信息的一个或多个信道的编码的数据,所述多级滤波器包括:至少两个双二阶滤波器级,所述至少两个双二阶滤波器级与所述级之间的等待时间组合,以使得所有级响应于单个、公共的指令流可独立地操作以在所述级中对数据执行完全并行化的处理;被耦接以将公共的指令流断言到所有级的控制器;和耦接到所有级的数据存储器,其中所有级可并行操作以响应于公共的指令流对输入数据值的块进行滤波,但是每个级对不同的数据值操作,并且至少一个级对包括缓冲的值的数据值操作,所述缓冲的值由另一个级响应于输入数据值的子集生成并且在被取回以用于在所述一个级中处理之前存储在存储器中不同的等待时间;以及
对编码的数据进行解码以提供由多级滤波器处理的音频信息的所述一个或多个信道的解码的表示。
47.一种用于处理编码的比特流的方法,包括:
接收编码的比特流并且从其中提取表示由多级滤波器处理的音频信息的一个或多个信道的编码的数据;以及
对编码的数据进行解码以提供由多级滤波器处理的音频信息的所述一个或多个信道的解码的表示,其中多级滤波器响应于单个指令流操作以独立地并且并行执行以下步骤:
(a)对N个样本的块执行第一双二阶滤波操作以生成中间值以断言到缓冲存储器,其中所述中间值包括N个样本的至少一个子集的每一个的滤波的版本;以及
(b)对从存储器取回的缓冲的值执行第二双二阶滤波操作以生成输出值的块,其中输出值包括与N个样本的块中的每个样本对应的输出值,缓冲的值的不同子集被取回和滤波以生成与块中每个样本对应的输出值,并且缓冲的值的每个所述子集包括在执行步骤(a)期间生成的中间值中的至少两个,所述中间值在驻留在所述存储器中不同的等待时间之后被从存储器取回。
48.如权利要求46或者权利要求47所述的方法,其中所述多级滤波器是用于执行带宽限制的低通滤波的三级的双二阶滤波器。
49.如权利要求46或者权利要求47所述的方法,其中所述一个或多个信道中的一个信道是LFE信道并且所述多级滤波器是用于对LFE信道执行低通滤波的四级的双二阶滤波器。
50.一种用于处理编码的比特流的装置,包括:
输入端,被耦接以接收编码的比特流;和
解码器,被耦接到所述输入端,并且被配置为从编码的比特流中提取表示由多级滤波器处理的音频信息的一个或多个信道的编码的数据,并且对编码的数据进行解码以提供由多级滤波器处理的音频信息的所述一个或多个信道的解码的表示,所述多级滤波器包括:
至少两个双二阶滤波器级,所述至少两个双二阶滤波器级与所述级之间的等待时间组合,以使得所有级响应于单个、公共的指令流可独立地操作以在所述级中对数据执行完全并行化的处理;
被耦接以将公共的指令流断言到所有级的控制器;和
耦接到所有级的数据存储器,
其中所有级可并行操作以响应于公共的指令流对输入数据值的块进行滤波,但是每个级对不同的数据值操作,并且至少一个级对包括缓冲的值的数据值操作,所述缓冲的值由另一个级响应于输入数据值的子集生成并且在被取回以用于在所述一个级中处理之前存储在存储器中不同的等待时间。
51.一种用于处理编码的比特流的装置,包括:
输入端,被耦接以接收编码的比特流;和
解码器,被耦接到所述输入端,并且被配置为从编码的比特流中提取表示由多级滤波器处理的音频信息的一个或多个信道的编码的数据,并且对编码的数据进行解码以提供由多级滤波器处理的音频信息的所述一个或多个信道的解码的表示,其中所述多级滤波器响应于单个指令流操作以独立地并且并行执行以下步骤:
(a)对N个样本的块执行第一双二阶滤波操作以生成中间值以断言到缓冲存储器,其中所述中间值包括N个样本的至少一个子集的每一个的滤波的版本;以及
(b)对从存储器取回的缓冲的值执行第二双二阶滤波操作以生成输出值的块,其中输出值包括与N个样本的块中的每个样本对应的输出值,缓冲的值的不同子集被取回和滤波以生成与块中每个样本对应的输出值,并且缓冲的值的每个所述子集包括在执行步骤(a)期间生成的中间值中的至少两个,所述中间值在驻留在所述存储器中不同的等待时间之后被从存储器取回。
52.如权利要求50或者权利要求51所述的装置,其中所述多级滤波器是用于执行带宽限制的低通滤波的三级的双二阶滤波。
53.如权利要求50或者权利要求51所述的装置,其中所述一个或多个信道中的一个是LFE信道并且所述多级滤波器是用于对LFE信道执行低通滤波的四级的双二阶滤波器。
CN201380024378.9A 2012-05-10 2013-04-17 多级iir滤波器和利用其对数据进行并行化滤波的方法 Active CN104272593B (zh)

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
CN104272593A CN104272593A (zh) 2015-01-07
CN104272593B true CN104272593B (zh) 2017-02-08

Family

ID=48430922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380024378.9A Active CN104272593B (zh) 2012-05-10 2013-04-17 多级iir滤波器和利用其对数据进行并行化滤波的方法

Country Status (22)

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

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
SG11201908276SA (en) * 2017-03-09 2019-10-30 Avnera Corp 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 多重信号処理装置
EP0520068B1 (en) 1991-01-08 1996-05-15 Dolby Laboratories Licensing Corporation 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
TW201411673A (zh) 2014-03-16
EP2847860A1 (en) 2015-03-18
SG11201407338SA (en) 2014-12-30
US20140046673A1 (en) 2014-02-13
EP2847860B1 (en) 2021-03-03
MX2014013481A (es) 2015-05-07
IL235271B (en) 2019-12-31
KR101707127B1 (ko) 2017-02-15
JP5866062B2 (ja) 2016-02-17
US20160254006A1 (en) 2016-09-01
US20150310872A1 (en) 2015-10-29
UA112001C2 (uk) 2016-07-11
US9076449B2 (en) 2015-07-07
CA2872262C (en) 2017-01-03
US9324335B2 (en) 2016-04-26
AU2013260023A1 (en) 2014-10-30
CA2872262A1 (en) 2013-11-14
PL2847860T3 (pl) 2021-07-05
AU2013260023B2 (en) 2015-11-05
RU2599970C2 (ru) 2016-10-20
HK1208568A1 (zh) 2016-03-04
MY167846A (en) 2018-09-26
BR112014027685A2 (pt) 2017-06-27
ES2862999T3 (es) 2021-10-08
CN104272593A (zh) 2015-01-07
JP2015520974A (ja) 2015-07-23
IN2014DN09176A (zh) 2015-07-10
RU2014144746A (ru) 2016-06-10
MX338857B (es) 2016-05-03
KR20140139601A (ko) 2014-12-05
DK2847860T3 (da) 2021-03-29
HUE053514T2 (hu) 2021-07-28
TWI538000B (zh) 2016-06-11
BR112014027685B1 (pt) 2021-10-05
IL235271A0 (en) 2014-12-31
WO2013169450A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
CN104272593B (zh) 多级iir滤波器和利用其对数据进行并行化滤波的方法
CN105074818B (zh) 音频编码系统、用于产生比特流的方法以及音频解码器
US7873227B2 (en) Device and method for processing at least two input values
US7917564B2 (en) Device and method for processing a signal having a sequence of discrete values
EP2676263B1 (en) Method for configuring filters
WO2018107579A1 (zh) 一种程序计数器压缩方法及其硬件电路
CN101025919B (zh) 音频解码中的合成子带滤波方法和合成子带滤波器
KR20070015789A (ko) 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
GB2373661A (en) An adaptive filter operation
CN107222215A (zh) 用于语音识别的模数转换器的设计方法、装置及系统
CN113096673B (zh) 基于生成对抗网络的语音处理方法及系统
Derpich et al. Optimal AD-Conversion via Sampled-Data Receding Horizon Control Theory
Yao et al. A design flow for linear-phase fixed-point FIR filters: from the NPRM specifications to a VHDL code
Gao et al. Acceleration of MELP Algorithm Using DSP Coprocessor with Extended Registers
Zhang et al. A Multi-Channel AC-3 Encoder Architecture Design and Optimization
MXPA06003309A (en) Device and method for processing at least two input values

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20150107

Assignee: Qingdao Haier Electric Appliance Co., Ltd.

Assignor: Dolby Laboratories Licensing Corp,|Dolby International AB

Contract record no.: 2017990000387

Denomination of invention: Multistage iir filter and method for conducting parallelized filtering on data with same

Granted publication date: 20170208

License type: Common License

Record date: 20170926