当前位置:网站首页>专利 >正文

多通道声码器的制作方法

专利名称:多通道声码器的制作方法
技术领域
本发明涉及高质量多通道声信号的编码和解码,更确切地说,涉及一种子带编码器,其在整个时间内利用完全/不完全重构滤波器、预测/非预测子带编码、瞬态分析、和心理声学/最小均方差(mmse)的位分配、频率和多声道产生限定解码计算载荷的数据流。
背景技术
可以将公知的高质量声音和音乐编码器分成两大类模式。第一类是,用于高频分辨子带的媒体/变换编码器,该编码器能根据心理声学的掩蔽计算结果在分析窗内自适应地量化子带或系数样本。第二类是,低频分辨子带编码器,这种编码器通过用ADPCM对子带样本进行处理来补偿其低下的频率分辨率。
第一类编码器通过使位分配适应于信号的谱能从而利用了普通音乐信号中的大量短程频谱变化。借助这些编码器的高分辨率可以把频率转换信号直接应用到心理声学模型上,这主要基于听觉的临界频带理论。托德(Todd)等人的Dolby的AC-3声学编码器“AC-3声音传播和存储的柔感编码”声学工程协会大会,1994年2月一般性地计算了各个PCM信号上的1024-ffts并在每个通道中建立了针对1024个频率系数的心理声学模型以便确定每个系数的位速率。Dolby系统使用了瞬态分析,这样能把窗口尺寸减小到256个样本从而达到隔离这些瞬态的目的。AC-3编码器采用了专用的反向自适应算法以便对位分配进行解码。这样便减少了沿编码声数据一侧发射的位分配信息量。结果,在正向自适应系统的范围内增加了适合声学要求的频带宽度从而改善了音质。
在第二类编码器中,在不明显涉及任何心理声学掩蔽理论的情况下,差值子带信号的量化或者是固定的或者可用于最大限度地减小穿越所有或部分子带的量化噪声能量。由于很难估计位分配处理之前的预测特性,所以通常不能把心理声学的失真直接加到预测/差值子带信号上。由于量化噪声在预测量处理时的相互作用而使问题进一步复杂化。
由于感性临界声信号通常是周期性的,所以这些编码器可在较长的时间周期内工作。这种周期性是通过预测差分量化而得到的。把信号分成少量子带的结果降低了噪声调制的听觉效果并且可利用声信号的长程频谱变化。如果子带的数量增加,那么每个子带中的预测增益将降低而且在某些点上的预测增益将趋于零。
数字式影院系统,L.P.(DTS)采用了一种声码器,其中将每个PCM声道滤成四个子带而且用反向ADPCM编码器对每个子带进行编码,所述反向ADPCM编码器使预测系数适应于子带数据。使位分配固定且使每个通道也同样固定,赋予低频子带的位多于高频子带。位分配提供了固定的压缩率,例如4∶1。迈克·史密斯(MikeSmyth)和斯蒂芬·史密斯(Stephen Smyth)在“APT-X100广播中使用的低滞后、低位速率、子带ADPCM声码器”第十次国际AES会议汇编,1991年,第41-56页中描述了DTS编码器。
两种声码器还具有其它共同的局限性。首先,公知的声码器用固定的帧尺寸进行编码/解码,即,样本的数量或用帧表示的时间周期是固定的。结果,当编码的传输率相对于样本率增加时,帧内的数据量也增加。因此,必须把解码器中缓冲器的尺寸设计得能适应最糟的情况以避免数据溢出。这样将会增加作为解码器主要成本因素的RAM之数量。其次,公知的声码器不易扩大到使采样频率大于48kHz。由此使得现有解码器与新解码器所需的格式不兼容。对未来的产品不能兼容导致了严重的局限性。此外,对PCM进行编码所用的公知格式要求在播放之前启动由解码器读入的全部帧。这就需要把缓冲器的尺寸限制在接近100ms数据块从而使滞后或等待时间不会干扰听者。
此外,虽然这些编码器的编码能力达24kHz,但却常常丢失更高频的子带。这样会降低高频保真度或重构信号的背景。公知编码器通常使用两种误差检测系统中的一种。最常用的是读所罗门编码(Read Solomon coding),其中编码器把误差检测位加到数据流中的边(side)信息上。这有利于检测和校正边信息中的任何误差。然而,无法测出声数据中的误差。另一种方法是检验无效码状态的帧和声标题。例如,个别的3位参数可能只具有3种有效状态。如果只鉴别出其它五种状态中的一种那么肯定出现了误差。这只是显示了检测能力而并不检测声数据中的误差。

发明内容
从上述问题出发,本发明提供了一种具有柔性的多通道声码器,其在高位速率下以比CD更好的质量灵活调整压缩能级的宽度范围和通过降低播放等待时间、简化误差检测改善了低位速率的感性质量、改善了前回波的失真以及对较高采样率的进一步扩展性。
这是用子带编码器实现的,子带编码器把每个声道划为声帧序列,把帧滤成基带和高频区,把每个基带信号分解成多个子带。子带编码器在位速率较低时一般选择非完全滤波器以便分解基带信号,而在位速率足够高时选择完全滤波器。高频编码层对与基带信号无关的高频信号进行编码。基带编码层包括分别对高频和低频子带进行编码的VQ和ADPCM编码器。每个子带帧包括至少一个子帧,每个子帧进一步细分为多个子子帧。对每个子帧进行分析以便估计ADPCM编码器的预测增益和检测瞬变状态以调节前后瞬变状态SFs,在所述ADPCM编码器中,当预测增益较低时其预测能力将丧失。
全位管理(GBM)系统利用多个声道、多个子带和当前帧中的子帧之间的差把各位分配到每个子帧。GBM系统最初通过计算被预测增益改变的SMR而将各位分配到每个子帧以满足心理声学模型。然后,GBM系统按照MMSE分配的瞬间转换、降低所有噪声或MMSE的渐变变换等方法分配所有剩余位。
多路转换器产生包括同步字、帧标题、声标题和至少一个子帧的输出帧并以传输速率把输出帧多路转换成数据流。帧标题包括窗口尺寸和当前输出帧的尺寸。声标题表示声帧的压缩装置和编码格式。每个声频子帧包括在与任何其它子帧无关的情况下对声频子帧进行解码的边信息、高频VQ编码、多个用于压缩各通道低频子带声数据并将其与其它通道进行多路转换的基带声频子子帧、在每个通道的高频范围内将声频数据压缩并将其与其它通道进行多路转换从而在多种解码采样速率下对多通道声信号进行解码和解压缩同步确定子帧端部的高频声信息块。
选择窗口尺寸作为传输速率与编码采样速率之比的函数从而把输出帧的尺寸限制在要求的范围内。当压缩量较低时,窗口尺寸减小从而使帧尺寸不会超过上限最大值。结果,解码器可以采用具有固定和较少RAM数量的输入缓冲器。当压缩量相对高时,窗口尺寸增加。结果,GBM系统需将各位分布到大的时间窗内由此改善编码特性。
通过以下结合附图对优选实施例所作的详细说明将更有助于熟悉本领域的技术人员理解本发明的这些和其它特征和优点,其中


图1是按照本发明所述5通道声码器的方框图;图2是多通道编码器的方框图;图3是基带编码器和解码器的方框图;图4a和图4b分别是高采样速率编码器和解码器的方框图;图5是单通道编码器的方框图;图6是相对于可变传输速率的每帧字节与帧尺寸之间关系的曲线图;图7是NPR和PR重构滤波器的幅值响应曲线图;图8是重构滤波器的子带混叠曲线图;
图9是NPR和PR滤波器的失真曲线图;图10是单个子带碥码器的示意图;图11A和11B分别表示子帧的瞬态检测和比例因数计算;图12表示对量化TMODES的熵(entropy)编码过程;图13表示比例因数量化过程;图14表示信号掩蔽响应所产生的SMRs随信号频率产生的旋转;图15是人的听觉响应的曲线图;图16是子带的SMRs曲线图;图17是心理声学和mmse位分配的误差信号曲线图;图18A和图18B分别是子带能层的曲线图和反向曲线图,其表示mmse“注水”位分配过程;图19是数据流中的单帧方框图;图20是解码器的示意图;图21是构成编码器硬件的方框图;和图22是构成解码器硬件的方框图。
附表说明表1是最大帧尺寸与采样速率和传输速率之间关系的表格;表2是允许的最大帧尺寸(字节)与采样速率和传输速率之间关系的表格;表3表示ABIT指数值、量化层的数量和最终子带SNR之间的关系。
具体实施例方式
多通道声码系统如图1所示,本发明把两个公知编码系统的特征与单个多通道声码器10的附加特征相结合。把编码算法设计成能进行演播室质量水平即“好于CD”质量水平的演播和使其能在改变压缩量、采样速率、字长、通道数和感性质量方面获得广泛应用。
编码器12把通常在48kHz下以16-24位字长采样的多通道PCM声数据14编译成公知传输率的数据流16,合适的传输率范围为32-4096kbps。与公知的声码器不同,在不会使已有编码器出现不兼容的情况下,本结构能达到更高的采样速率(48-192kHz),所述已有编码器是为基带采样速率或任何中间采样速率而设计的。此外,当优选将每个帧分成1-4个子帧时将PCM数据14框住并编成一个帧。声频窗口的尺寸即PCM样本数量与采样速率和传输速率的相对值有关,因此把输出帧的尺寸即由解码器18读出的每帧字节的数量限制在5.3-8个字节之间。
结果,为缓冲进入的数据流而需要在解码器中设置的RAM的数量可保持较低水平,这将降低解码器的成本。在低速率下可以使用较大的窗口尺寸来构成PCM数据,这样便改善了编码效能。在高位速率下,必须使用较小的窗口尺寸以便满足限定数据的需要。这必然会使编码效能降低,但这对高速率是无意义的。而且,PCM数据构成的方式使得解码器18在将全部输出帧读入缓冲器之前就能激发演播。这样可减少声码器的滞后或等待时间。
编码器12使用了高分辨率滤波带,其根据位速率优选在不完全(NPR)和完全(PR)重构滤波器之间转换以便把每个声道14分成多个子带信号。用预测和矢量量化(VQ)编码器分别对低频和高频子带进行编码。可以将起始VQ子带固定或动态确定为交流信号特性的函数。在低位速率下可以在采用综合频率编码的同时对高频子带中的多个通道进行编码。
预测编码器根据子带预测增益优选在APCM和ADPCM模式之间转换。瞬态分析器把每个子带的子帧分成前后回波信号(子子帧)并计算与前后回波子子帧相应的各比例因数从而降低前回波失真。编码器根据它们各自的需要(心理声学或mse)自适应地分配穿过所有PCM通道和当前帧子带的有效位速率以便达到量佳编码效率。通过把预测编码和心理声学模型彼此结合可提高低位速率编码效率从而降低获得主观透明度的位速率。把计算机或键盘等可编程控制器19与编码器12相连以使声模式信息滞后,这些信息包括理想位速率、通道数量、PR或NPR重构、采样速率和传输速率等参数。
将编码信号和边带信息压缩并多路转换成数据流16由此将编码计算负荷限制在所需的范围内。将数据流16编译到传输媒体20例如CD、数字式视盘(DVD)或直播卫星上并通过该媒体进行演播。解码器18对各子带信号进行解码并完成相反的滤波操作以产生多通道声信号22,该信号主观上相当于原始多通道声信号14。可用声系统24例如家庭影院或多媒体计算机为用户播放声信号。
多通道编码器如图2所示,编码器12包括多个独立的通道编码器26,合适的是五个(左前、中、右前、左后和右后),其产生各组编码子带信号28,合适的是每个通道32个子带信号。编码器12采用全位管理(GBM)系统30,其动态地把各位从通道中的共用位池(commonbit-pool)分配到通道内的子带之间和给定子带中的各帧内。编码器12还采用了综合频率编码技术,该技术利用的是高频子带中的通道间关系。此外,编码器12可以在不易感觉到的高频子带上使用VQ以便在非常低的位速率下形成基本的高频保真度或背景。用这种方式,编码器利用了不同的信号要求,例如,多个通道的子带rms值和心理声学掩蔽等级以及在每个通道的频率范围内和给定的帧时间内信号能量的非均匀分布。
位分配概述GBM系统30首先确定将对哪个通道的子带进行综合频率编码和进行数据平均,然后确定将用VQ对哪个子带进行编码并从得到的位速率中减去那些位速率。可以在当阈值频率之上的所有子带都是VQ时预先决定用VQ编码的子带或根据每帧中各子带的心理声学掩蔽效应作出上述决定。因此,GBM系统30利用心理声学掩蔽将各位(ABIT)分配到剩余的子带上从而达到优化解码声信号的主观质量之目的。如果得到了附加位,编码器可以转换到纯mmse图,即“注水(waterfilling)”,并根据子带相对rms的值对所有的位进行再分配从而使误差信号的rms值降至最小。这可在极高位速率的情况下应用。优选的方法是保持心理声学位分配和根据mmse图只分配附加位。这样可保持因心理声学掩蔽而产生的噪声信号的形状,但将使噪音最低值均匀地向下偏移。
此外,可以对优选的方法进行改进使其根据rms和心理声学能级之间的差来分配附加位。结果,当位速率增大时心理声学分配的转换与mmse分配相当,所以在两种技术之间形成了平滑转换。上述技术特别适用于固定的位速率系统。此外,编码器12可以设定失真等级、主观条件或mse,并允许改变所有位速率以保持失真等级。多路转换器32按照特定的数据格式把子带信号和边信息多路转换成数据流16。具体的数据格式将在下面的图20中讨论。
基带编码相对于8-48kHz范围的采样速率而言,如图3中所示的通道编码器26采用了均匀的512-抽头32-带的分析滤波器组34,其以48kHz的采样速率工作并把每个通道0-24kHz的声频谱分成32个子带,每个子带的带宽为750Hz。编码级36对每个子带信号进行编码并通过多路转换器38将它们多路转换成压缩数据流16。解码器18接收压缩的数据流,利用拆分器40分出每个子带的编码数据,并对每个子带信号42进行解码和用512-抽头32-带的均匀内插滤波器组44重构每个通道的PCM数字式声信号(Psamp=48kHz)。
在本结构中,所有编码策略,例如48KHz、96KHz或192kHz的采样速率都使用了在最低(基带)声频例如0-24kHz基础上的32带编码/解码方法。因此,目前根据48kHz采样速率设计和制成的解码器能与将来设计成利用高频分量的编码器兼容。目前的解码器能读取基带信号(0-24kHz)和忽略高频编码数据。
高采样速率编码相对于48-96kHz范围的采样速率而言,通道编码器26优选把声频谱分成两部分并采用了下半部为均匀32-带的分析滤波器组而上半部为8-带的分析滤波器组。如图4a和图4b所示,开始时用256-抽头2-带抽选预滤波器组46拆分0-48kHz的声频谱形成每带24kHz的声带宽度。将低频带(0-24kHz)分离并以上述图3的方式编入32个均匀带。然而把高频带(24-48kHz)分离并编入8个均匀带。如果8-带抽选/内插滤波器组48的滞后与32-带滤波器组的滞后不相等则必须在24-48kHz信号通路中的某处采用滞后补偿级50,以便确保解码时两个时间波形在进入2-带重构滤波器组之前对齐。在96kHz采样编码系统中,使24-48kHz声频带滞后384个样本,然后用128-抽头的内插滤波器组将其分成8个均匀带。用0-24kHz带的编码数据对每个3kHz的子带进行编码52和压缩54以形成压缩数据流16。
当到达解码器18时,将压缩数据流16解压缩56并把相对于32-带解码器(0-24kHz区)和8-带解码器(24-48kHz)的编码分出并分别送到它们各自的解码级42和58中。用128-抽头和512-抽头的均匀内插滤波器组60和44分别重构8和32解码子带。用256-抽头2-带均匀内插滤波器组62顺序重组解码子带以便产生采样速率为96kHz的单一PCM数字式声信号。在需要解码器以压缩数据流一半的采样速率工作的情况下,通过放弃高频带编码数据(24-48kHz)和只将0-24kHz声域内的32-子带解码便可以方便地进行上述操作。
通道编码器在上述所有的编码层中,32-带编码/解码过程是针对声带宽度为0-24kHz间的基带部分进行的。如图5所示,取帧器64划定PCM声道将其分成连续的数据帧66。PCM声频窗确定了连续输入的样本数量,相对该数量将在编码过程中产生数据流形式的输出帧。根据压缩量,即传输速率与采样速率之比来设定窗口尺寸,从而构成每帧内的编码数据量。通过32-带512-抽头的FIR抽选滤波器组34把每个连续的数据帧66分成32个均匀频带68。缓冲每个子带的样本输出并将其送到32-带编码级36。
分析级70(将在图10-19中详细描述)产生最佳预测系数、差分量化位分配和缓冲子带样本的最佳量化比例因数。分析级70还可以决定将对哪个子带进行矢量量化和在这些决定不确定时可以决定对谁进行综合频率编码。把该数据或边信息向前送到选定的ADPCM级72、VQ级73或综合频率编码(JFC)级74并送到数据多路转换器32(压缩器)。然后通过ADPCM或VQ步骤对子带样本进行编码并将量化编码输入到多路转换器。JFC级74实际上并不对子带样本进行编码而是产生指示连接哪个通道的子带和在何处将它们放入数据流中的编码。将来自每个子带的量化编码和边信息压缩成数据流16并将其送入解码器。
到达解码器18时,将数据流多路分配40或解压缩使之回到各自的子带。首先把比例因数和位分配与每个子带的预测系数一起装入逆量化器75中。然后直接利用ADPCM过程76或反向VQ过程77或指定子带的反向JFC过程78重构不同的编码。最后用32-带内插滤波器组44把子带合并成单一的PCM声信号22。
PCM信号构成的帧如图6所示,当传输速率相对于给定采样速率发生变化时,图5中所示的取帧器64将改变窗口79的尺寸从而使构成每个输出帧的字节数量处于例如5.3K个字节和8K个字节之间。表1和表2分别是允许设计者选择最佳窗口尺寸和解码缓冲器尺寸(帧尺寸)以便给出采样速率和传输速率的设计表。在低传输速率下,帧尺寸可以相对较大。这可以使编码器能利用声频信号在整个时间内的不平滑变化分布和改善声码器的特性。在高速率下,需减小帧尺寸以便使字节的总量不会溢出解码缓冲器。结果,设计者可以提供具有8K字节RAM的解码器以满足所有传输速率。这将降低解码器的成本。通常,声频窗口的尺寸由下式得出
其中帧尺寸是解码缓冲器的尺寸,Fsamp是采样速率,而Trate是传输速率。声频窗口的尺寸依声道的数量而定。然而,随着通道数的增加,压缩量也必须增加以保持所需的传输速率。
表1Fsamp(kHz)Trate8-1216-2432-4864-96128-192≤512kbps10242048 4096 ★ ★≤1024kbps★ 1024 2048 ★ ★≤2048kbps★ ★ 1024 2048 ★≤4096kbps★ ★ ★ 1024 2048表2Fsamp(kHz)Trate8-1216-2432-4864-96128-192<512kbps 8-5.3k 8-5.3k 8-5.3k ★ ★<1024kbps★ 8-5.3k 8-5.3k ★ ★<2048kbps★ ★ 8-5.3k 8-5.3k ★<4096kbps★ ★ ★ 8-5.3k 8-5.3k子带滤波从两个多相滤波器组中选择32-带521-抽头的均匀抽选滤波器组34把数据帧66分成图5所示的32个均匀子带68。两个滤波器组具有以不同相对重构精度交换使用子带编码增益的重构特性。将一类滤波器称为完全重构(PR)滤波器。当将PR抽选(编码)滤波器和它的内插(解码)滤波器背对背放置时,重构信号是“完全”的,其中将完全定义为在24位时分辨率在0.5 Isb内。另一类滤波器被称为不完全重构(NPR)滤波器,因为其重构信号具有与滤波过程中的不完全混叠抵消特性有关的非零噪声底值。
图7中分别示出了单个子带的滤波器NPR和PR之传输函数82和84。由于NPR滤波器并不强制提供完全重构,所以它们具有比PR滤波器更大的近似带阻抑制(NSBR)比,即,通带与第一侧波瓣之比(110d B比85dB)。如图8所示,滤波器的侧瓣使实际上处于第三子带中的信号86混叠到相邻的子带上。子带增益可检测相邻子带中的信号抑制情况,并由此表明滤波器对声信号的抗相关能力。由于NPR滤波器比PR滤波器具有更大的NSBR比,所以它们还将具有更大的子带增益。结果,NPR滤波器提供了更好的编码效果。
如图9所示,随着PR和NPR滤波器所有位速率的增加,压缩数据流中的所有失真都将减小。然而,在低速率下,两种滤波器之间子带增益特性的差异大于与NPR滤波器有关的噪声底值。因此,NPR滤波器的相关失真曲线90位于PR滤波器的相关失真曲线92之下。所以,在低速率下声码器选择NPR滤波器组。从某些点94开始,编码器的量化误差降至NPR滤波器的噪声底值之下,这时向ADPCM编码器添加附加位并不会带来更多好处。在这一点上,将声码器转到PR滤波器组。
ADPCM编码ADPCM编码器72根据H预测重构样本产生预测样本p(n)。然后从输入的x(n)中减去该预测样本,从而给出差分样本d(n)。通过用RMS(或PEAK)比例因数除以这些差分样本便可以对其进行换算使得差分样本的RMS幅值相与量化器特性曲线Q的RMS幅值相匹配。当用为当前样本分配的位数ABIT进行测定时,把换算后的差分样本ud(n)加到具有L层步长SZ的量化器特性曲线上。量化器相对于每个经换算的差分样本ud(n)产生分层码(levelcode)QL(n)。最后将这些分层码传送到解码器ADPCM级。为了更新预测器历史,用特性曲线与Q相一致的逆量化器1/Q对量化器的分层码QL(n)进行就地解码以产生量化的换算差分样本ud(n)。通过把样本ud(n)与RMS(或PEAK)比例因数相乘可得到d(n)。通过把起始预测样本p(n)与量化差分样本d(n)相加便可重构初始输入样本x(n)的量化类型x(n)。然后用该样本更新预测器历史。
矢量量化用矢量量化器(VQ)对预测系数和高频子带样本进行编码。预测器VQ具有4个样本的矢量值和每样本三位的位速率。因此最终的代码本由4096个4值代码矢量构成。对匹配矢量的搜索构成两层树,树中的每个节点具有64个分枝。顶层存储64个只在编码器中需要并能帮助完成搜索过程的节点代码矢量。底层触发4096个在编码器和解码器中都需要的最终代码矢量。就每次搜索而言,需要进行128次4值MSE计算。利用LBG方法并借助于超过5百万个预测系数训练(training)矢量对顶层的代码本和节点矢量进行训练。相对于在对大量声学材料进行编码时显示出正向预测增益的所有子带累积训练矢量。为了测试训练组中的矢量,需得到近似30dB的平均SNRs。
高频VQ具有32个样本的矢量值(子帧的长度)其位速率为每个样本0.3125位。因此最终的代码本由1024个32值代码矢量构成。匹配矢量的搜索构成两层树,树中的每个节点具有32个分枝。顶层存储32个只在编码器中需要的节点代码矢量。底层包含1024个在编码器和解码器中都需要的最终代码矢量。就每次搜索而言,需要进行64次32值MSE计算。利用LBG方法并借助于超过7百万个高频子带样本训练矢量对顶层的代码本和节点矢量进行训练。相对于对大量采样速率为48kHz的声学材料来说,根据子带16-32的输出来累积构成矢量的样本。在48kHz的采样速率下,训练样本代表12-24kHz范围的声频。为了测量训练组中矢量,希望的是约3dB的平均SNR。虽然3dB是很小的SNR,但是其足以提供高频保真度或高频下的背景。这在感观上要比简单降低高频子带的公知技术好得多。
综合频率编码在应用极低的位速率时,通过只对来自两个或多个声道的高频子带信号之和进行编码,而不是对它们进行独立编码可以改善重构的保真度。由于高频子带通常具有相似的能量分布,而且由于人的听觉系统主要对高频分量的“强度”而不是对它们的细微构成敏感,所以可以进行综合编码。因此,由于在任何位速率下都可以得到更多的位数以对感观上很重要的低频进行编码所以重构的平均信号能提供很好的综合保真度。
将综合频率编码指数(JOINX)直接传送到解码器中以指出哪个通道和子带已经联合以及将编码信号定位在数据流中的何处。解码器重构指定通道中的信号并将其复制到其它每个通道中。然后根据其特定的RMS比例因数对每个通道进行转换。由于综合频率编码根据其相似的能量分布而平均了时间信号,所以会降低重构保真度。因此它的应用通常限于低位速率场合和主要是针对10-20kHz的信号。在用于高位速率的媒体中,通常不可能实现综合频率编码。
子带编码器在图10中详细地示出了利用ADPCM/APCM方法特别是通过图5中所示分析级70和ADPCM编码器72以及图2中所示全位管理系统30的相互作用对单个子带进行编码的编码过程。图11-19详细描述了图13中所述的各组成过程。滤波器组34把PCM声信号14分成32个写入各子带采样缓冲器96中的子带信号x(n)。假设声频窗的尺寸为4096个样本,每个子带样本缓冲器96存储128个样本的完整帧,把完整帧分成432个样本子帧。1024个样本的窗口尺寸产生单一的32个样本子帧。把样本x(n)送到分析级70以便确定每个子帧的预测系数、预测模式(PMODE)、瞬态模式(TMODE)和比例因数(SF)。另外还把样本x(n)送到GBM系统30,其确定每个声道中每个子带的每个子帧的位分配(ABIT)。此后,使样本x(n)转入ADPCM编码器72得到某一时刻的子帧。
对最佳预测系数的估计用对子带样本x(n)程序块进行优化处理的标准自动相关方法98,即根据Weiner-Hopf或Yule-Walker公式分别产生适合每个子帧的H,合适的是第四序列预测系数。
对最佳预测系数的量化优选用上述的4-元素树-搜索12-位矢量代码本(每个系数3位)对每组四个预测系数进行量化。12-位矢量代码本包括4096个系数矢量,为了达到可能的理想分布而用标准群算法对这些系数矢量进行优化处理。矢量量化(VQ)搜索100选择在系数矢量自身和最佳系数之间显示出最低加权均方差的系数矢量。然后用这些“量化矢量”代替每个子帧的最佳系数。起反向作用的VQ LUT101向ADPCM编码器72提供量化的预测系数。
对预测差值信号d(n)的估计对ADPCM来说一个很大的难题是在实际的递归程序72之前不能容易地预测差分样本序列d(n)。对正向自适应子带ADPCM的基本要求是在进行ADPCM编码之前知道差分信号的能量,以便为将在重构样本时产生已知量化误差或噪声级的量化器计算出合适的位分配。还需要了解不同的信号能量以便在编码之前确定最佳差分比例因数。
遗憾的是,差分信号能量不仅取决于输入信号的特性而且还取决于预测器的性能。除了已知的限制例如预测器种类和预测系数最优性之外,预测器性能还受在重构样本时引入的量化误差程度或噪声的影响。由于量化噪声可通过最终的位分配ABIT和差分比例因数RMS(或PEAK)值本身来确定,所以估计差分信号的能量必须被迭代地抵达102。
步骤1.假设量化误差为零通过使缓冲的子带样本x(n)经历不进行差分信号量化的ADPCM程序而对第一差分信号进行估计。这是在ADPCM编码循环中通过不进行量化而进行RMS转换来实现的。通过用这种方式估计差分信号d(n),可以从计算中消除比例因数和位分配值的影响。然而,由于使用了矢量量化的预测系数,所以在程序中需考虑量化误差对预测系数的影响。用反向VQ LUT104可以提供量化预测系数。为了进一步提高评估预测器的精度,应在计算之前把从现在的ADPCM预测器输出的在前一程序块结束时累积的历史样本复制到预测器中。由此可确保预测器在前一个输入缓冲器的动作结束时从现在的ADPCM预测器开始启动。
该估计过程ed(n)和实际程序d(n)之间的主要差别是忽略了量化噪声对重构样本x(n)和对降低预测精度的影响。为了进行多层次量化,通常要使噪声较小(假设通过合适的转换),因此实际的差分信号能量将与在估计时计算出的结果密切匹配。然而,当量化层的数量较少时,即当进行通常的低位速率声码时,实际的预测信号和由其得出的差分信号能量将与估计信号明显不同。这样便产生了编码噪声底值,其与早先在自适应位分配程序中预测的那些值不同。
尽管如此,预测特性的变化在应用时或对位速率的影响并不明显。因此,在不迭代的情况下可以用估计结果直接计算位分配和比例因数。如果存在这种可能性,即为子带分配的是层数很少的量化器,则可以进行附加改进通过对差分信号能量作出仔细地全面估计来补偿特性的损失。还可以根据量化层数的变化将全面估计分成不同层次以提高精度。
步骤2.用估计的位分配和比例因数进行再计算一旦用第一估计差分信号得出了位分配(ABIT)和比例因数(SF),就可以通过用在ADPCM循环72中估计出的ABIT和RMS(或PEAK)值使下一个ADPCM估计程序运行来测试它们的最佳性。当进行第一次估计时,在开始计算之前从实际的ADPCM预测器上复制估计的预测历史从而确保从相同的点上启动两个预测器。在缓冲的输入样本全部经过第二估计循环之后,把得到的每个子带中的噪声底值与在自适应位分配程序中假设的噪声底值进行比较。通过修正位分配和/或比例因数可以补偿任何明显的差异。
每当用最当前的差分信号估计计算下一组位分配和比例因数时,可以重复步骤2以便适当地改善穿越子带分布的噪声底值。通常,如果比例因数的变化大于近似值2-3dB,则需重新计算。此外,如果位分配违反了由心理声学掩蔽程序或换言之mmse程序产生的信号-掩蔽比将会很危险。一般说来,一次重复就足够了。
子带预测模型(PMODE)的计算为了提高编码效率,在当前子帧中的预测增益降到通过设定PMODE特征位而得到的阈值以下时,控制器106可以独立关掉预测程序。当在对输入样本组进行估计的阶段测得的预测增益(输入信号的能量与估计的差分信号能量之比)超出正阈值时,PMODE特征位将置1。相反,如果测得的预测增益小于正阈值,ADPCM预测系数将在与所述子带相应的编码器和解码器中置0,而且各PMODE也置0。把预测增益阈值设定成使其等于传输预测系数矢量的总失真率。这是通过努力确保当PMODE=1时,使ADPCM程序的编码增益总是大于或等于正向自适应PCM(APCM)编码程序的编码增益来实现的。此外,通过把PMODE设定为零和预置预测系数,就可以简便地将ADPCM程序恢复到APCM。
如果ADPCM编码增益的变化对使用来说不是很重要,则可以在任何或所有子带中使PMODEs置于高电平。相反,如果例如某些子带不会马上编码,所用的位速率高得不需要用预测增益保持声音的主观质量,信号的瞬态信息很多,或者在对声音进行剪辑时ADPCM编码声音的叠接特性曲线不能令人满意,则将PMODES置于低电平。
在编码器和解码器的ADPCM程序中以等于线性预测器更新速率的速率传送适合每个子带的各预测模式。如果个别子带具有任何与其编码声数据块有关的预测系数矢量地址,则PMODE参数的用途是向解码器传送指示。当在任何子带中PMODE=1时,数据流中将总是包含预测系数矢量地址。当在任何子带中PMODE=0时,数据流中决不会包含预测系数矢量地址,而且在编码器和解码器的ADPCM级预测系数将置0。
PMODEs的计算始于根据第一估计级,即假设没有量化误差时,用得到的相应缓冲估计差分信号能量分析缓冲子带输入信号能量。对输入样本x(n)和估计的差分样本ed(n)分别进行适合每个子带的缓冲处理。缓冲器的尺寸等于包含在每个预测更新期内的样本数,例如子帧的尺寸。然后按下列公式计算预测增益Pgain(dB)=20.0*Log10(RMSx(n)/RMSed(n))其中RMSx(n)=缓冲输入样本x(n)的均方根值,RMSed(n)=缓冲估计差分样本ed(n)的均方根值。
就正的预测增益而言,差分信号是平均小于输入信号的信号,所以在相同的位速率下,用APCM中的ADPCM程序便可得到减小的重构噪声底值。就负增益而言,ADPCM编码器使得差分信号平均大于输入信号,这使得在相同的位速率下ADPCM比APCM具有更高的噪声底值。通常,能接通PMODE的预测增益阈值是正的,而且其将是一个考虑了因传输预测系数矢量地址而消耗的额外通道容量的值。
子带瞬态变化模式(TMODE)的计算控制器106计算适合每个子带中每个子帧的瞬态变化模式(TMODE)。TMODEs表示当PMODE=1时估计差分信号ed(n)的缓冲器中或当PMODE=0时输入子带信号x(n)的缓冲器中的比例因数和样本数量。可以用与预测矢量地址相同的速率对TMODEs进行更新和将其传送到解码器。瞬态变化模式的用处是降低信号瞬态变化时听觉上的编码“前回波”伪象。
将瞬态变化定义成在低幅值信号和高幅值信号之间的快速转换。由于在子带差分样本块的范围内进行比例因数的平均,所以如果信号幅值的快速变化发生在程序块内,即瞬间发生,那么算出的比例因数将比瞬态变化发生前低幅采样时的最佳值大得多。因此在瞬态变化前的采样中出现的量化误差可能会很大。该噪声可以前回波失真的形式被查出。
在实际中,用瞬态变化模式来改变平均块长度的子带比例因数以抑制瞬态变化对在瞬态变化前进行的差分采样转换的影响。这样做的动机是因为在人的听觉系统中存在固有预掩蔽现象,为此建议在出现瞬态变化时,如果它的保持周期很短的话则应在瞬态变化发生前对噪声进行掩蔽。
根据PMODE的值,把子带样本缓冲器x(n)的子帧等内容或估计的差分缓冲器ed(n)的内容复制到瞬态变化分析缓冲器中。在此,根据分析缓冲器的采样尺寸把缓冲器的内容均匀地分成2、3或4个子子帧。例如,如果分析缓冲器包括32个子带样本([email protected]),则把缓冲器隔成每8个样本中4个子子帧,在子带采样速率为1500Hz的情况下,时间分辨率为5.3ms。此外,如果分析窗由16个子带样本构成,那么只需将缓冲器分成两个具有相同时间分辨率的子子帧。
对每个子子帧内的信号进行分析并确定每个而不是第一个瞬变状态。如果发现任何子子帧出现瞬变,则将相对于分析缓冲器即当前子帧产生两个独立的比例因数。根据瞬变子子帧前面的子子帧中存在的样本计算第一比例因数。根据同时存在于在前子子帧和瞬变子子帧中的样本计算第二比例因数。
由于通过分析窗自身的启动可自动抑制量化噪声所以不计算第一子子帧的瞬变状态。如果出现瞬变的子子帧多于一个,则只考虑首先出现的那个子子帧。如果根据没有检测到瞬变子缓冲器,则只用分析缓冲器中的所有样本计算一个比例因数。用这种方式,可以不采用包括瞬变样本的比例因数值来转换在时间上多于一个子子帧返回周期的早期采样。由此,把预瞬变量化噪声限制在子子帧周期。
瞬变声明如果前一子缓冲器中的瞬变能量比超过瞬变阈值(TT),而且前一子子帧中的能量低于预瞬变阈值(PTT)则表明在子子帧中有瞬变。TT和PTT的值取决于位速率和所需的预回波的抑制程度。在查出的预回波失真与其它编码伪象(如果有的话)的能级匹配之前,这些值通常是变化的。增加TT和/或减小PTT的值都将减小存在瞬变的子子帧的相似性,并由此降低与比例因数传输有关的位速率。相反,减小TT和/或增加PTT的值将使存在瞬变的子子帧的相似性增加,并由此增加与比例因数传输相关的位速率。
由于TT和PTT是相对于每个子带分别设定的,所以在编码器中瞬态检测的灵敏度可以相对所有子带独立设定。例如,如果发现在高频子带中的预回波在感性上小于低频子带中的预回波,那么可以设定阈值来减小高频子带中出现的瞬变相似性。由于将TMODEs嵌入压缩的数据流中,所以解码器不必知道在编码器中使用的瞬变检测算法既可对TMODE信息进行合适地解码。
四种子缓冲器的结构如图11a所示,如果子带分析缓冲器109中的第一子子帧108出现瞬变,或如果没有检测到瞬变子子帧,则TMODE=0。如果第二子子帧而不是第一子子帧出现瞬变,则TMODE=1。如果第三子子帧而不是第一或第二子子帧出现瞬变,则TMODE=2。如果只有第四子子帧出现瞬变则TMODE=3。
比例因数的计算如图11b所示,当TMODE=0时,在所有子子帧上计算比例因数110。当TMODE=1时,在第一子子帧上计算第一比例因数和在所有在先的子子帧上计算第二比例因数。当TMODE=2时,在第一和第二子子帧上计算第一比例因数和在所有在先子子帧上计算第二比例因数。当TMODE=3时,在第一、第二和第三子子帧上计算第一比例因数而在第四子子帧上计算第二比例因数。
用TMODE进行ADPCM编码和解码当TMODE=0时,在所有分析缓冲器即子帧工作期间用一个比例因数转换子带差分样本,并将该比例因数传送到解码器以便进行反向转换。当TMODE>0时,用两个比例因数转换子带差分样本并将两个比例因数传送到解码器。对于任何TMODE来说,用每个比例因数对在第一位置上产生的差分样本进行转换。
子带比例因数(RMS或PEAK)的计算根据相应子带的PMODE值,用估计的差分样本ed(n)或输入的子带样本x(n)来计算合适的比例因数(s)。在该计算中用TMODEs确定比例因数的数量并在缓冲器中识别相应的子子帧。
RMS比例因数计算对第j个子带而言,按下列公式计算rms比例因数当TMODE=0时,单个rms的值是RMSj=(Σn=1Led(n)2/L)0.5]]>其中L是子帧中的样本数量。
当TMODE>0时,两个rms值为RMS1j=(Σn=1ked(n)2/L)0.5]]>RMS2j=(Σn=1k+1ed(n)2/L)0.5]]>其中k=(TMODE*L/NSB),NSB是均匀子子帧的数量。
如果PMODE=0,则用输入样本xj(n)替换样本edj(n)。
PEAK比例因数的计算就第j个子带而言,按下列公式计算峰值比例因数当TMODE=0时,一个峰值是PEAKj=MAX(ABS(edj(n))),n=1,L当TMODE>0时,两个峰值是PEAK1j=MAX(ABS(edj(n))),n=1,(TMODE*L/NSB)PEAK2j=MAX(ABS(edj(n))),n=(1+TMODE*L/NSB),L如果PMODE=0则用输入样本xj(n)替换样本edj(n)。
PMODE、TMODE和比例因数的量化PMODEs的量化预测模式特征只有两个值,通或断,将其直接送到解码器中作为1-位编码。
TMODEs的量化瞬变模式特征最多具有4个值0、1、2和3,使用2-位无符号整数代码字或在努力把TMODEs的平均字长减到2位以下并选择性地通过4-层熵表把上述值直接传送到解码器中。通常在采用低位率时为了节约位数而使用选择性的熵编码。
图12中详细示出的熵编码程序112如下把j子带的瞬变模式编码TMODE(j)变换成多个(p)中度增加的4-层可变长度代码本,其中针对不同输入的统计特性对每个代码本进行优化。把TMODE的值转换成4-层表114并计算116与每个表(NBp)有关的所有位的应用。利用THUFF变址(index)选择118在整个转换过程中构成最低位应用的表格。从该表格中抽取转换代码VTMODE(j),并将其与THUFF变址字一道压缩和送到解码器。保持同组4-层反向表的解码器利用THUFF变址使到来的可变长度编码VTMODE(j)进入合适的表格进行解码使之回到TMODE变址。
子带比例因数的量化为了将比例因数传送到解码器必须将它们量化成已知的编码格式。在该系统中,利用均匀64-层对数特性、均匀128-层对数特性或可变速编码的均匀64-层对数特性对比例因数进行量化120。在两种情况下,64-层量化器显示的步长为2.25dB,而128-层的步长为1.25dB。64-层量化用于低的媒体位速率,附加的可变速率编码用于使用低位速率的场合,而128-层通常用于高位速率。
图13中示出了量化过程120。把从缓冲器121中读出的比例因数、RMS或PEAK转换成对数域122,然后根据编码模式控制器128的判断将其送到64-层或128-层均匀量化器124、126。然后把对数量化的比例因数写入缓冲器130中。128-层和64-层量化器的范围不同以便分别用近似为160dB和144dB的动态范围覆盖比例因数。把128-层的上限设定为能覆盖24-位输入PCM数字式声信号的动态范围。把64-层的上限设定为能覆盖20-位输入PCM数字式声信号的动态范围。
把对数比例因数转换到量化器并用最接近的量化层代码RMSQL(或PEAKQL)代替比例因数。在使用64-层量化器的情况下,这些编码为6-位长,其范围为0-63。在使用128-层量化器的情况下,编码长度为7-位,其范围为0-127。
通过把层代码转回到各逆量化特性并给出RMSq(或PEAKq)值便可简便地实现逆量化131。就ADPCM(或当PMODE=0时为APCM)差分样本的转换而言,既在编码器又在解码器中使用量化比例因数,由此可确保转换和反向转换过程相一致。
如果需要降低64-层量化器编码的位速率,则要进行附加熵或可变长度的编码。64-层编码是从第二子带(j=2)开始到最高现用子带穿越j个子带的第一阶不同编码132。该程序带可以用于对PEAK比例因数进行编码。有符号的不同编码DRMSQL(j)(或DPEAKQL(j))的最大范围为+/-63而且将这些编码存储在缓冲器134中。为了在原始的6-位编码上降低它们的位速率,把不同的编码转换成多个(p)127-层中度增加的可变长度代码本。相对于不同的输入统计特性对每个代码本进行优化。
除了使用p127-层可变长度编码表之外,对有符号的不同编码进行熵编码的程序与图12中所示瞬变模式中使用的熵编码程序相同。利用SHUFF变址选择在转换过程中提供最低位应用的表格。从该表格中抽出转换的编码VDRMSQL(j),将其与SHUFF变址字一道压缩和传送到解码器。保持了同组(p)127-位反向表的解码器,利用SHUFF变址把到来的可变长度编码送入合适的表中,以便对其进行解码使之回到不同的量化器编码层。用下列程序使不同的编码层再现成绝对值RMSQL(1)=DRMSQL(1)RMSQL(j)=DRMSQL(j)+RMSQL(j-1)j=2,…K而用下列程序使PEAK的不同编码层再现成绝对值PEAKQL(1)=DPEAKQL(1)PEAKQL(j)=DPEAKQL(j)+PEAKQL(j-1)j=2,…K其中在两种情况下K=现用子带的数量。
全位分配如图10所示的全位管理系统30管理位分配(ABIT),并确定适合多通道声码器的有源子带(SUBS)和综合频率策略(JOINX)以及VQ策略,以便以较低的位速率提供主观透明编码。由此可在保持或提高声音保真度的同时增加已被编码并存储在固定媒体上的声道数量和/或演播时间。通常,GBM系统30首先根据用编码器的预测增益修正的心理声学分析结果将各位分配到每个子带。然后根据mmse图分配各剩余位以便降低所有噪声底值。为了提高编码效率,GBM系统同时在所有声道、所有子带上并穿越全部帧进行位分配。此外,可以利用综合频率的编码策略。用这种方式,系统可以利用在声道、交叉频率和整个时间之间非均匀分布的信号能量。
心理声学分析用心理声学测量法确定声信号中与感性不相关的信息。把与感性不相关的信息定义为不能够被人的听觉听到和能够在时间域、频率域或在其它一些背景下测量到的那部分声信号。J.D.约翰斯顿(J.D.Johnston)“采用感性噪声标准的声信号转换编码”见《地方通信选编》中的IEEE刊物,第JSAC-6期,第2号,第314~323页,1988年2月,其中描述了心理声学编码的一般原理。
两个主要因素将影响心理声学测量。一个是适合于人的听力且与频率有关的绝对阈值。另一个是掩蔽效应,即人所能听到的盖位与其同时演奏或在其之后演奏的第二种声音的一种声音。换句话说,第一种声音能阻止我们听到第二种声音,也就是说将其掩蔽掉。
在子带编码器中,心理声学计算的最终结果是一组表示在某瞬间相对于每个子带无声量级的数码。该计算方法是公知的而且在此将其与MPEG1压缩标准ISO/IEC DIS 11172“信息技术-高达1.5Mbits/s数字式存储媒体的运动图象和相关声音的编码”1992相结合。这些数码随声信号产生动态变化。编码器借助位分配程序调节子带中的量化噪声底值以便使这些子带中的量化噪声小于可听范围。
精确的心理声学计算通常需要在时间与频率的转换中具备高频率分辨率。这意味着需要较大的分析窗以便进行时间频率转换。标准的分析窗尺寸是与压缩声数据的帧相应的1024个样本。长度1024fft的频率分辨率大致与人耳的瞬时分辨率匹配。
心理声学模型的输出是32个子带中每一个子带的信号-掩蔽(SMR)比。SMR表示个别子带所承受的量化噪声量,其还表示使子带中的样本量化所需的位数。具体地说,大的SMR(>>1)表示需要的位数很多,而小SMR(>0)则表示需要的位数很少。如果SMR<0,则声信号处于噪声掩蔽阈值之下,这时不需要量化位数。
如图14所示,通常通过1)根据PCM声样本计算fft,优选长度为1024,得出一系列频率系数142,2)根据与频率有关的音质和噪声心理掩蔽针144对每个子带进行频率系数卷积处理,3)对得到的每个子带系数进行平均得出SMR的量级,和4)根据图15中所示人的听觉响应146对SMRs进行选择性的归一化处理。
当频率接近4KHz时人耳的灵敏度最高而随着频率的升高或降低灵敏度将下降。因此,要想感受相同的量级,20kHz的信号显然比4kHz的信号显得过强。所以,通常,近似4kHz频率的SMRs比远离该区域的频率重要得多。然而,曲线的精确形状与传送给听者的信号的平均功率有关。随着电压的增加,听觉响应146受到压制。因此,在其它电压下将对特定电压的优化系统进行次优化。结果是,或者选择标准功率级以便对SMR进行归一化处理或者是不进行归一化处理。图16中示出了得到的32个子带的SMRs148。
位分配程序不管JFC是否能实现,GBM系统30首先选择用VQ和ADPCM算法对子带进行编码时应采用的合适编码策略。因此,GBM系统将选择心理声学或者是MMSE位分配方法。例如,在高位速率下,系统可能无法使用心理声学模式而使用有效的mmse分配系统。这样可以在当重构声信号中没有任何感性变化的情况下降低计算的复杂性。相反,在低速率下,系统能够激活上述综合频率编码系统从而提高在低频下的重构保真度。GBM系统能够根据逐帧基础上信号的瞬变信息在正常的心理声学分配和mmse分配之间转换。当瞬变信息量较大时,在计算SMRs时使用的稳态假设就不再是真实的,因此mmse图可以提供较好的特性。
就心理声学分配而言,GBM系统首先分配有效位以满足达到心理声学效果的条件,然后对剩余位进行分配以便降低所有的噪声底值。第一步是确定上述当前帧的每个子带之SMRs。下一步是调节各子带中预期增益(Pgain)的SMRs从而形成掩蔽-噪声定量比(MNRs)。原则上ADPCM编码器将提供一部分所需的SMR。所以用极少的位数便可得到听不到的心理声学噪声级。
假设PMODE=1,则第j个子带的MNR由下式给出MNR(j)=SMR(j)-Pgain(j)*PEF(ABIT)其中PEF(ABIT)是量化器的预测有效因数。为了计算MNR(j),设计者必须估计位分配(ABIT)情况,这可以通过只在SMR(j)的基础上进行位分配或通过假设PEF(ABIT)=1而完成。在高位速率的媒体上,有效预测增益近似等于计算的预测增益。然而,在低位速率下,有效预测增益将降低。用例如5-层量化器得到的有效预测增益近似为估计预测增益的0.7倍,而65-层量化器则使有效预测增益近似等于估计的预测增益,PEF=1.0。在此范围内,当位速率为零时,实际上无法进行预测编码而且有效预测增益为零。
在下一步骤中,GBM系统30生成满足每个子带之MNR的位分配系统。这是利用1位等于6dB信号失真的近似值而实现的。为了确保编码失真小于心理声学听觉阈值,而使位速率是用6dB除以MNR得到的最大整数。其由下式给出 通过用这种方式进行位分配,重构信号中的噪声级156将如图17所示随信号本身157而变化。因此,在信号很强的频率下,噪声级将比较高,但仍将保持在听力范围之外。在信号比较弱的频率下,噪声底值将很小且不会被听到。与这种心理声学模式相关的平均误差总是大于mmse噪声级158,但是其音响特性较好,特别是在低位速率下更是如此。
在所有声道每个子带上分配的位数总和大于或小于目标位速率的情况下,GBM程序将迭代减小或增加各子带的位分配。此外,可计算每个声道的目标位速率。这虽然是亚最佳的但极易于用硬件实现。例如,有效位可以在声道中均匀地分布或是与每个通道的平均SMR或RMS均衡分布。
在包含VQ码位和边信息的局部位分配总和超过目标位速率的情况下,全位管理程序将逐渐降低局部子带的位分配。有多种技术可用于降低平均位速率。首先,可以通过最大整数运算对入位的位速率进行舍位。然后从具有最小MNRs的子带中取出一位。此外,可以截断高频子带或进行综合频率编码。所有位速率降低策略均遵循用合适的方式逐渐降低编码分辨率的基本原则,所述方式首先引入感觉上最少唐突(offensive)感的策略和最后使用最唐突的策略。
在目标位速率大于包含VQ编码位和边信息之局部位分配总和的情况下,全位管理程序将逐渐地和迭代地增加局部子带位分配,以便降低重构信号的全部噪声底值。这样可以对已经预先分配了零位的子带进行编码。如果能够采用PMODE的话,可能需要用这种方式得到在‘接通’的子带中的总位数以便反映出在传输任何预测系数时的成本。
GBM程序能够选择三个不同系统中的一个以便分配剩余位。一种选择是用对所有位进行再分配以便使噪声底值近似平坦的mmse方法。这等于不能使用最初的心理声学模型。为了得到mmse噪声底值,在用完所有位之前应使图18a中示出的子带RMS值的图160的上边如图18b所示向下转并“注水(waterfilled)”。将这种公知技术称为注水是因为随着分配位数量的增加失真度均匀降低。在图中所示的例子中,把第一位分配给子带1,把第二和第三位分配给子带1和2,把第四至第七位分配给子带1、2、4和7,等等。此外,还在每个子带上分配一位以保证对每个子带进行编码,此后将剩余位注水。
其次,优选的选择是按照上述mmse方法和RMS图来分配剩余位。这种方法的效果是能在保持与心理声学掩蔽有关的形状的同时均匀降低图17中所示的噪声底值157。在心理声学和mse失真之间提供了一种很好的折衷方案。
第三种方法是在适用于子带的RMS和MNR值之间的差值图的情况下用mmse方法分配剩余位。这种方法的效果是可以在位速率增加时将噪声底值的形状平滑地从最佳心理声学形状157变为最佳(平缓的)mmse形状158。在这些系统的任何一种系统中,如果相对于源PCM来说任何子带中的编码误差低于0.5LSB,就不会将更多的位分配到该子带中。可以用选择性固定的子带位分配的最大值来限定分配到特定子带的最大位数。
在上面讨论的编码系统中,我们已经假设每个采样的平均位速率是固定的而且形成了重构声信号最大保真度的位分配。此外,失真度、mse或感觉是固定的而且允许位速率变到满足失真度的条件。在mmse方法中,在满足失真度条件之前将RMS图简单地注水。将根据子带的RMS层改变所需的位速率。在心理声学方法中,进行位分配以满足各MNRs。结果,将根据各SMRs和预测增益改变位速率。这种分配目前不是最有用的,因为现代的解码器均以固定的速率工作。然而,实际上在不久的将来可以用交替传递系统例如ATM或随机存取存储媒体进行可变速率编码。
位分配变址(ABIT)的量化在全位管理过程中,通过自适应位分配程序可以相对于每个子带和每个声道产生位分配变址(bit allocation indexes)(ABIT)。在编码器中变址的目的在于指示图10中所示量化差值信号以便在解码的声音中得到主观最佳重构噪声底值所需层(levels)162的数量。在解码器中解码的目的是指示逆量化所需的层数。相对于每个分析缓冲器产生变址而且变址值的范围为0-27。变址值、量化层的数目和近似的最终差分子带SNQR之间的关系示于表3中。
表3ABIT变址量化层的数目编码长度(位)SNQR(dB)0 0 0 -1 3 可变的 82 5 可变的 123 7(或8) 可变的(或3) 164 9 可变的 195 13 可变的 216 17(或16) 可变的(或4) 247 25 可变的 278 33(或32) 可变的(或5) 309 65(或64) 可变的(或6) 3610 129(或128) 可变的(或7) 4211256 8 4812512 9 5413102410 6014204811 6615409612 7216819213 781716384 14 841832768 15 901965536 16 9620131072 17 10221262144 18 10822524268 19 114231048576 20 120242097152 21 126254194304 22 132268388608 23 138271677721624 144
可以用4-位不带符号的整数编码字、5-位不带符号的整数编码字或12-层熵表将位分配变址(ABIT)直接传输到解码器。通常,可以在低位速率场合下使用熵编码以进行位的保存。ABIT编码的方法是通过在编码器中进行模式控制而设定的并将编码送到解码器。熵编码166把ABIT变址标到特定的代码本上,所述代码本是用图12所示的程序并借助于12-层ABIT表通过BHUFF变址和代码本中的特定码VABIT进行识别的。
全位速率控制由于可以用熵的可变长度代码本选择性地对边信息和差分子带样本进行编码,所以当以固定的速率传输压缩的比特流时必须用某些机构来调节编码器最终的位速率。由于一旦开始计算通常就不再需要改变边信息,所以在满足速率抑制条件之前最好通过迭代改变ADPCM编码器中的差分子带样本量化程序来实现位速率的调节。
在上述系统中,图10中的全速率控制(GRC)系统178调节位速率,其通过改变分层码值的统计学分布而形成把量化层码转换成熵表的程序。熵表显示了层码值越大码长越长的相似趋势。在这种情况下,平均位速率随低值编码层的增加而降低,反之亦然。在ADPCM(或APCM)量化程序中,比例因数的大小确定了分层编码值的分布或使用。例如,随着比例因数大小的增加差分采样将在较低层上量化,因此编码值将逐渐变小。这样,将转而产生较小的商编码字长和较低的位速率。
这种方法的优点是通过增加比例因数的大小把子带采样中的重构噪声也提高到相同的水平。然而实际上,对比例因数的调节通常不大于1dB-3dB。如果需要进行较大的调整,则最好是返回到位分配和减少所有的位分配而不要冒因使用升高的比例因数可能在子带中出现可听到量化噪声的危险。
在重复ADPCM编码循环的情况下,为了调节熵编码的ADPCM位分配,将每个子带的预测历史样本存储在临时缓冲器中。此外,利用从子带LPC分析推出的预测系数AH以及比例因数RMS(或PEAK)、量化位分配ABIT、瞬变模式TMODE、和从估计的差分信号中推出的预测模式PMODE通过完整的ADPCM程序对所有子带采样缓冲器进行编码。将最终的量化层编码缓冲并转换到熵的可变长度代码本上,这显示出再次使用位分配变址确定代码本大小的最低位应用。
随后,GRC系统利用在所有变址上的相同位分配变址分析每个子带使用的位数。例如,当ABIT=1时,全位管理中位分配计算假设的平均速率是每个子带样本为1.4(即,假设在最佳层码幅值分布的情况下熵编码本的平均速率)。如果在ABIT=1时所有子带使用的全部位数大于1.4/(子带采样的总数),那么所有这些子带的比例因数都将增加从而使位速率受影响而下降。在存取所有ABIT变址速率之前,最好是不作出调节子带比例因数的决定。由此,用低于位分配程序中假设的位速率进行变址可以补偿用高于位分配程序的位速率进行的变址。这种估计可扩展到所有合适的声道中。
为降低所有位速率而建议的程序是以超过阈值的最低ABIT变址位速率开始并增加具有这种位分配的每个子带中的比例因数。实际位的应用减少了当这些子带最初处于分配的正常速率之上时的位数。如果变化后使用的位数仍然超出允许的最大值,那么下一个使用位数超出正常值的最高ABIT变址的子带比例因数将会增加。这个程序连续进行直到使用的位数变到最大值以下为止。
一旦达到这一目的,就将旧的历史数据装入预测器中并且重复已经改变了其比例因数的那些子带的ADPCM编码程序72。此后,将层编码再次转换成最佳熵代码本并重新计算使用的位数。如果使用的所有位中仍有超过正常速率的,那么要进一步增大比例因数并且重复进行上述循环。
改变比例因数的方式有两种。第一种是向解码器传输每个ABIT变址的调整系数。例如2-位的字能够发出调整范围约为0、1、2和3dB的信号。由于采用ABIT变址的所有子带都使用相同的调整系数,所以只有变址1-10可以使用熵碥码,对于所有子带来说需要传输的调整系数的最大数目是10。此外,通过选择高量化层可以改变每个子带中的比例因数。然而,由于比例因数量化器的步长分别为1.25和2.5dB,所以比例因数的调节限于这些步内。然而,当使用这些技术时,如果能够进行熵编码的话,则需要重新计算比例因数的差分编码和最终使用的位数。
一般说来,例如当位速率低于所需的位速率时,可以使用同样的程序来增加位速率。在这种情况下,将减小比例因数以强制进行差分采样从而大量地使用更外侧的量化层,并因此而使用熵表中更长的代码字。
如果在合适的迭代数内或在传输比例因数调节系数的情况下不能减少位分配变址使用的位数,则调节的步数就已经达到极限,随后可进行二次修正。首先,可以增加正常速率范围内的子带比例因数,由此降低整体位速率。此外,可以中止所有ADPCM编码程序并重新计算穿越子带的自适应位分配,这时使用极少的位数。
数据流格式化图10所示的多路转换器32压缩每个通道的数据然后把每个通道的压缩数据多路转换成输出帧以形成数据流16。设计压缩和多路转换数据的方法,即图19所示的帧格式使得声码器可以在较宽范围内使用并能扩展到更高的采样频率,限制每帧内的数据量可以在每个子子帧独立地开始播放从而减少等待时间和降低解码误差。
如图所示,单个帧186(4096 PCM采样/ch)确定了有足够信息驻留以对声频块进行适当解码的比特流边界,该单个帧由4个子帧188(1024 PCM采样/ch)构成,而每个子帧又由4个子子帧190(256 PCM采样/ch)构成。在每个声频帧开始时置入帧同步字192。帧标题信息194主要形成与帧186的结构和编码器的结构有关的信息,所述编码器产生比特流和各种选择操作特征,例如嵌入的动态范围控制和时间码。如果需要下行混合、如果进行了动态距离补偿和如果在数据流中包含辅助数据字节的话,选择的标题信息196将通知解码器。声码标题198表示在编码器中使用以便对编码的‘边信息’即位分配、比例因数、PMODES、TMODES、代码本等进行组合的压缩装置和编码格式。剩余的帧由SUBFS串行声频子帧188构成。
每个子帧均以声码边信息开始,该信息使得与用于把声频压缩到解码器的多个键盘编码系统相关的信息滞后。这些信息包括瞬变检测、预测编码、自适应位分配、高频矢量量化、强度编码和自适应转换。可以用上述编码标题信息从数据流中对这些数据中的很多数据进行解压缩。高频VQ编码阵列202包括用VQSUB变址表示的每个高频子带中的10-位变址。也可以选择低频效应阵列204,其表示可用于驱动例如次低音扬声器的极低频数据。
用霍夫曼/固定逆量化器对声频阵列206进行解码并将其分成多个子子帧(SSC),每次解码达到每个声道256 PCM个样本。只有当采样频率大于48kHz时才会出现过采样208。为了保持兼容,在采样速率高于48kHz时不能工作的解码器应当跳过该声数据阵列。用DSYNC210来改变声帧中子帧的结束位置。如果该位置无法改变,则表明子帧中的声解码不可靠。结果,要么对帧进行噪声抑制要么重复前一帧。
子带解码器图20是子带采样编码器18的方框图。解码器与编码器相比相当简单而且并不包括对重构声频例如位分配的质量来说很重要的计算。在用解压器40对压缩的声数据流16进行同步解压之后,进行检测和如果需要的话校正因传输而引入的误差,并且把数据多路分配到各声道中。把子带差分信号量化成PCM信号和对每个声道进行反向滤波以便把信号转回到时间域。
接收声帧和标题解压在编码器中将编码数据流压缩(或帧)而且在每帧中包括可与真实声码本身分离且用于使解码器同步、进行误差检测和校正、声码状态标记和对边信息进行编码的附加数据流。解压器40检测SYNC字并抽取帧尺寸FSIZE。编码的比特流构成串行的声帧,每个帧都以32-位(0x7ffe8001)同步字(SYNC)开始。从下列同步字的字节中抽取声帧的实际尺寸FSIZE。这样便允许编程员设定‘帧结束’定时器以便减少软件的辅助操作。接着抽取NBlks使解码器计算声频窗口尺寸(32(Nblks+1))。由此通知解码器抽取了什么样的边信息和产生了多少重构样本。只要接收到帧标题字节(sync,ftype,surp,nblks,fsize,amode,sfreq,rate,mixt,dynf,dynct,time,auxcnt,Iff,hflag),就可以用Reed Solomon检验字节HCRC检验第一个12字节的真实性。这些程序将校正14字节之外的1个错误字节或标出2个错误字节。在完成了误差检验之后,用标题信息更新解码器标记。
可以抽取下列选择信息标题(filts,vernum,chist,pcmr,unspec)内的HCRC并用其来更新解码器标记。由于该信息将不会逐帧改变,所以可以用多数表决系统来补偿位误差。可以使用选择ReedSolomon检验字节OCRC改变选择数据。
只需要在每帧中传输声码帧标题(shbfs,subs,chs,vqsub,joinx,thuff,shuff,bhuff,sel5,sel7,sel9,sel13,sel17,sel25,sel33,sel65,sel129,ahcrc)。可以使用声Reed Solomon检验字节AHCRC改变这些标题。相对于由CHS确定的每个声道重复大多数标题。
解压缩子帧编码边信息将声码帧分成多个子帧(SUBFS)。所述子帧包括所需要的所有边信息(pmode,pvq,tmode,scales,abits,hfreq)以便在与任何其它子帧无关的情况下对每个声子帧进行编码。通过首先对其边信息进行解码对每个连续的子帧进行解码。
相对于每一个有源子带和穿过所有声道传输1-位预测模式(PMODE)标记。PMODE标记对当前子帧有效。 PMODE=0意味着预测系数不包含在该子带的声帧中。在这种情况下,在该子帧期间使这个频带中的预测系数置零。PMODE=1意味着边信息包含该子带的预测系数。在这种情况下,在子帧期间抽取预测系数并将其安装在它的预测器中。
相对于pmode阵列中的每个PMODE=1而言,相应的预测系数VQ寻址变址(address index)位于阵列PVQ中。变址固定于不带符号的12-位整数字上并且通过把12-位整数转换成矢量表266可以从查寻表中抽取4个预测系数。
位分配变址(ABIT)表示在逆量化器中的层数,逆量化器把子带声码转回到绝对值。解压缩格式不同于每个声道中的ABITs,其与BHUFF变址和特定的VABIT码256相关。
用瞬变模式边信息(TMODE)238表示在每个子带中相对于子帧的瞬变位置。将每个子帧分成1-4个子子帧。就子带样本而言,每个子子帧由8个样本构成。最大子帧尺寸是32个子带样本。如果瞬变发生在每一个子子帧内,则tmode=0。当tmode=1时表示瞬变出现在第二子子帧内,以此类推。为了控制例如前回波等瞬变失真,在TMODE大于零的情况下向子帧子带传输两个比例因数。从声标题中抽取THUFF变址以确定对TMODEs进行解码所需的方法。当THUFF=3时,将TMODEs解压缩成不带符号的2-位整数。
传输比例因数变址以便在每个子帧内对子带声码进行适当转换。如果TMODE等于零,则传输一个比例因数。如果对于所有子带来说TMODE都大于零,那么同时传输两个比例因数。通过从声标题中抽取SHUFF变址240可确定对每个独立声道进行SCALES解码所需的方法。VDRMSQL变址确定RMS比例因数的值。
在特定模式下,选用五个129层带符号的霍夫曼逆量化器对SCALES变址进行解压缩。然而,要对最终的逆量化变址进行不同的编码并将其转换成下列绝对值ABS_SCALE(n+1)=SCALES(n)-SCALES(n+1),其中n是在声道中从第一子带开始的第n个差分比例因数。
在低位速率声码模式下,声码器利用矢量量化直接对高频子带声样本进行有效编码。在这些子带中使用非差分编码和必须使所有与正常ADPCM程序有关的阵列保持复位。用VQSUB表示利用VQ编码的第一子带并用这种方式对SUBS以内的所有子带进行编码。
借助固定的10-位不带符号整数对高频变址(HFREQ)进行解压缩248。通过应用合适的变址从Q4二进制小数(fractionalbinary)LUT中抽取每个子带子帧所需的32个样本。在启动高频VQ模式的每个通道中重复这一过程。
有效通道的十中抽一采样因数总是X128。当PSC=0时由SSC*2或当PSC不等于零时由(SSC+1)*2给出LFE中存在的8-位有效采样数。在LFE阵列的端部包含有附加的7-位比例因数(不带符号的整数)而且用7-位LUT将其转换成rms。
解压缩子子帧声码阵列通过ABIT变址和在ABIT<11的情况下通过SEL变址来驱动子带声码的抽取过程。使用可变长度的霍夫曼码或固定的线性编码将声码格式化。通常ABIT变址为10或小于10意味着采用霍夫曼可变长度编码,其由编码VQL(n)258选定,而当ABIT大于10时总是预示采用固定码。所有量化器都具有中性的均匀特性。对于固定码(Y2)量化器而言,降低了最大的反向层。将声码压缩成子子帧,每个子子帧代表8个子带样本中的最大值,在当前子帧中使这些子子帧重复4次。
如果采样速率标记(SFREQ)表示的速率高于48kH,那么将在声帧中存在过声(over_audio)数据阵列。在该阵列中首先出现的两个字节将表示过声的字节尺寸。此外,应将解码器硬件的采样速率设定成使其在与高频采样速率有关的SFREQ/2或SFREQ/4下工作。
解压缩同步检验在每个子帧结束时对数据解压缩检验字DSYNC=0xffff进行检测以便验证解压缩的完好性。在低声位速率下,如果标题、边信息或声阵列出现位误差的毛病,则在边信息和声码中使用的各种码字就可能引起解压缩偏移。如果解压缩的指示字没有指向DSYNC的始端,则认为前一个子帧的声音是不可靠的。只要对所有的边信息和声数据都进行了解压缩,解码器将把多通道声信号同时重构成一个子帧。图20表示在单个通道中相对于一个子带的基带解码器部分。
重构RMS比例因数解码器重构造合AD PCM、VQ和JFC算法的RMS比例因数(SCALES)。特别是,把VTMODE和THUFF变址反向转换成与当前子帧的瞬变模式(TMOD)相一致。此后,SHUFF变址、VDRMSQL码和TMODE反向转换成重构差分RMS编码。将差分RMS编码进行反向差分编码242以便选择RMS码,将码逆量化244以形成RMS比例因数。
逆量化的高频矢量解码器对高频矢量进行逆量化以重构子带声信号。特别是,当用起始VQ子带(VQSUBS)识别时,把抽取的标有8-位小数(Q4)二进制数的高频样本(HFREQ)变换成反向VQ Iut248。将选定的表格值逆量化250,并通过RMS比例因数进行转换252。
逆量化声码在进入ADPCM循环之前,对声码进行逆量化并对其进行转换以形成重构的子带差值样本。逆量化是首先通过对VABIT和BHUFF变址进行反向转换以给出可确定步长和量化层数量的ABIT变址和进一步通过反向转换能产生量化器层编码QL(n)的SEL变址和VQL(n)声码来实现的。随后,把码字QL(n)转换到由ABIT和SEL变址指定的逆量化器查寻表260。虽然ABIT对这些编码进行了排序,但是每个独立的声道都将具有独立的SEL指定器。查寻过程产生带符号的量化层数,通过与量化器的步长相乘可以将其转换成单位rms。通过将单位rms值乘以指定的RMS比例因数(SCALES)262可以将该单位值转换成完全差值样本。
1.QL[n]=1/Q[码[n]],其中1/Q是逆量化器查寻表2.Y[n]=Q L[n]*步长[abits]3.Rd[n]=Y[n]*比例因数,其中Rd=重构的差值样本逆ADPCM按照下列方式对每个子带差值样本执行ADPCM解码程序1.从逆VQ Iut268输入预测系数。
2.通过用保持在预测器历史阵列268中的前4个重构子带样本对当前的预测系数进行卷积处理得到预测的样本。
p[n]=sum(Coeff[i]*R[n-i]),在n=当前采样周期的情况下,i=1,43.将预测样本与重构的差值样本相加产生重构的子带样本270。
R[n]=Rd[n]+P[n]4.更新预测器的历史,即把当前的重构子带样本复制到历史表的顶部。
R[n-i]=R[n-i+1],i=4,1在PMODE=0的情况下,预测系数将为零,预测样本也为零,而且重构的子带样本等于差值子带样本。虽然在这种情况下不需要进行预测计算,但是在PMODE应在下一个子帧中激活的情况下,则需要将预测历史更新。此外,如果HFLAG在当前声帧中激活,则应在对帧中首先出现的子子帧进行解码之前清除预测历史。通常将从此点开始更新历史。
在高频VQ子带或未选择(即上述SUBS限制)子带的情况下,预测历史将保持清除直到子带预测器激活为止。
ADPCM、VQ和JFC解码的选择控制第一“开关”控制ADPCM或VQ输出的选择。VQSUBS变址与VQ编码的起始子带相对应。因此,如果当前子带低于VQSUBS,开关将选择ADPCM输出。否则选择VQ输出。第二“开关”278控制直流通道输出或JFC编码输出。JOINX变址确定连接哪一个通道和重构信号是在哪一个通道中产生的。重构的JFC信号形成其它通道中JFC输入的强度源。因此,如果当前子带是JFC的一部分并且没有指定通道,则开关将选择JFC输出。一般情况下开关选择通道输出。
下行矩阵用AMODE表示数据流的声码模式。然后把解码的声道改成动态范围控制数据使之与解码器硬件280上的实际输出通道装置相匹配。
动态范围控制数据在编码阶段282可以选择性地将动态范围系数DCOEFF嵌入声帧中。这个特征的目的是便于在解码器的输出中实现声频动态范围的压缩。当在高音通道中不存在损坏扬声器的危险时在背景噪声级较高以致无法鉴别低能级信号的收听环境中动态范围的压缩是特别重要的。由于更多地采用展现动态范围高达110dB的20-位PCM声记录而使该问题进一步复杂化。
根据帧的窗口尺寸(NBLKS),对任何编码模式(DYNF)来说每个声道可传输一、二或四个系数。如果传输单个系数,则可用于全帧。如果传输两个系数,则第一个系数相对于帧的第一半而第二个系数相对于帧的第二半。传输四个系数时,四个系数分布在每个帧的四分之一上。通过在传输值之间进行局部内插可以达到较高的时间分辨率。
每个系数是8-位带符号的小数Q2二进制数,而且代表表(53)中示出的算法增益值,该表给出的范围是在0.25dB步中的增益值为+/-31.75dB。按通道数对系数进行排序。用解码声样本乘以线性系数可以影响动态范围。
通过对解码器的系数值进行适当调节或通过忽略系数而将其完全截断可以改变压缩的程度。
32-带内插滤波器组32-带内插滤波器组44将每个声道的32个子带转换成单个PCM时间域信号。当FILTS=0时使用非完全重构系数(512-抽头FIR滤波器)。当FILTS=1时使用完全重构系数。通常预先计算余弦调制系数并将其存储在ROM中。可以将内插程序扩展到重构更大的数据块以减少额外循环。然而,在终止帧的情况下,可以被称之为最小分辨率的是32个PCM样本。内插算法如下建立余弦调制系数,读入32个新子带样本以便排出XIN,乘以余弦调制系数和建立临时阵列SUM和DIFF,存储历史,乘以滤波器系数,建立32个PCM输出样本,更新工作阵列,和输出32个新PCM样本。
根据工作中的位速率和编码系统,比特流既可以指定非完全又可以指定完全重构内插滤波器组系数(FILTS)。由于可用40-位可变精度计算编码器抽选滤波器组,所以编码器能够获得最大理论重构精度的能力取决于源PCM字长和用于计算卷积的DSP磁芯的精度以及转换操作的方式。
低频有效PCM内插与低频有效通道有关的声数据与主声道无关。用8-位APCM程序对通道进行编码,所述程序是在X128十中抽一(120Hz带宽)的20-位PCM输入基础上工作的。十中抽一的有效声频是在主声道中与当前子帧声频一致的时间。在此,由于推迟穿越32-带的内插滤波器组是256个样本(512个抽头),所以必须注意确保内插的低频有效通道也与输出前的其它声道相一致。如果有效内插FIR也是512个抽头,则不需要进行补偿。
LFT算法使用了如下512个抽头的128X内插FIR把7-位比例因数转换成rms,乘以7-位量化器的步长,由标准值产生子样本值,利用例如为每个子样本设置的低通滤波器进行128倍内插。
硬件执行器件图21和22描述了以32、44.1和48kHz采样速率工作的6通道式编码器和解码器之硬件执行器件的基本功能结构。参照图22,用八个模拟装置ADSP21020 40-位浮点数字信号处理器(DSP)芯片296构成6通道数字子声码器298。用6个DSPs对每个通道进行编码同时分别用第七个和第八个来实现“全位分配和管理”以及“数据流格式化和误差编码”功能。以33MHz记录每个ADSP21020并利用外部的48位X32k程序ram(PRAM)300,40位X32k数据ram(SRAM)302来运行算法。在编码器工作的情况下,还用8位X512k EPROM304来存储固定内容例如可变长度的熵代码本。数据流格式化DSP利用Reed Solomon CRC芯片306进行误差检测和在解码器中进行保护。用双端口静态RAM308可以实现编码器DSPs和全位分配及管理之间的通信。
编码过程的流程如下。从三个AES/EBU数字式声接收器的每个输出中抽取2-通道数字声频PCM数据流310。把每一对中的第一通道分别引向CH1、3和5编码器DPSs同时把每一对中的第二通道分别引向CH2、4和6。通过把串行PCM字转换成并行(s/p)而将PCM样本读入DSPs。如上所述,每个编码器存放一帧PCM样本并对帧数据进行编码。把与每个通道中的估计差值信号(ed(n))和子带样本(x(n))有关的信息通过双端口RAM传输到全位分配和管理DSP中。然后用同样的方式读回每个编码器的分配策略。编码过程完成之后,通过全位分配和管理DSP把6个通道的编码数据和边信息传输到数据流格式化器DSP中。在该阶段选择性地产生CRC检验字节并将其加到编码数据中以便在解码器中提供误差保护。最后,将所有数据包16相互组合并输出。
在图22中示出了6通道硬件解码器的实现过程。用单个模拟装置ADSP21020 40-位浮点数字信号处理器(DSP)芯片324构成6通道数字式声解码器。以33MHz记录ADSP21020并用外部48位X32k程序ram(PRAM)326,40位X32k数据ram(SRAM)328运行解码算法。此外还用附加的8位X512k EPROM330来存储可变长度熵和预测系数矢量代码本等固定常数。
解码处理的流程如下。通过串/并行转换器(s/p)332把压缩数据流16输入到DSP。按前面所述对数据进行解压缩和解码。把子带样本重构成每个通道的单个PCM数据流22并通过三个并行/串行转换器(p/s)335输出到三个AES/EBU数字声频传输器芯片334中。
以上显示和描述了本发明的几个说明性实施例,但是对于那些熟悉本领域的技术人员来说可以做出大量不同的和变换的实施例。例如,随着处理速度的增加和存储器成本的降低,采样频率、传输速率和缓冲器尺寸不会增加。在不脱离本发明的构思和范围的情况下可以预想和实现这些不同的和变换的实施例。
权利要求
1.多通道声码器,包括取帧器(64),其向以某一采样速率采样的多通道声信号的每个通道提供声频窗口以产生各个声帧序列;多个滤波器(34),其在基带频率范围内把通道的声帧分成多个独立的频率子带,所说的频率子带中的每一个子带包括子带帧序列,在每个子带帧中具有至少一个声数据子帧;多个子带编码器(26),其以一次一个子帧的形式对各频率子带中的声数据进行编码使之成为编码的子带信号;多路转换器(32),其把编码的子带信号压缩和多路转换成适合每个序列数据帧的输出帧由此形成具有某一传输速率的数据流;和控制器(19),其根据采样速率和传输速率设定声窗的尺寸以便将所说输出帧的尺寸限定在所需的范围内。
2.根据权利要求1所述的多通道声码器,其中控制器按照两个小于 值的最大乘积设定声窗尺寸,其中帧尺寸是输出帧的最大尺寸,Fsamp是采样速率,和Trate是传输速率。
3.根据权利要求1所述的多通道声码器,其中在目标位速率下对多通道声信号进行编码并且子带编码器包括预测编码器,所述多通道声码器进一步包括全位管理器(GBM)(30),其计算心理声学信号与掩蔽比(SMR)和每个子帧的估计预测增益(Pgain),通过把SMRs减小到与其相关之预测增益的各比值来计算掩蔽与噪声比(MNRs),分配各位使之满足每个MNR,计算所有子带上的分配位速率,和调节各次分配使得实际位速率近似等于目标位速率。
4.根据权利要求1或3所述的多通道声码器,其中子带编码器把每个子帧分成多个子子帧,每个子带编码器包括产生和量化每个子帧之误差信号的预测编码器(72),所述多通道声码器进一步包括分析器(98,100,102,104,106),其在每个子帧编码之前产生估计误差信号,检测在估计误差信号的每个子子帧中的瞬变,产生瞬变编码,该瞬变编码表示在任何子子帧而不是在已有瞬变出现的第一子子帧内是否存在瞬变,而且当检测瞬变时,在瞬变前产生适合那些子子帧的前瞬变比例因数,在瞬变后产生适合那些子子帧的后瞬变比例因数,否则产生适合于子帧的均匀比例因数,所说的预测编码器利用所说前瞬变、后瞬变和均匀比例因数对编码前的误差信号进行转换以减小与前瞬变比例因数相应的子子帧内的编码误差。
5.根据权利要求1所述的多通道声码器,其中所说的基带频率范围构成最大频率,所说多通道声码器进一步包括预滤波器(46),其在基带频率范围和上述最大频率的频率下把每个所说的声帧分别分成基带信号和高采样速率信号;和高采样速率编码器(48,50,52),其对声道的高采样速率信号进行编码使之成为独立编码的高采样速率信号;所说的多路转换器把通道中编码的高采样速率信号压缩成独立的输出帧从而可对多通道声信号的基带和高采样速率部分进行独立解码。
全文摘要
一种子带声编码器(12)采用了完全/非完全重构滤波器(34)、预测/非预测子带编码(72)、瞬变分析器(106)、和心理声学/最小均方差(mmse)相对时间的位分配(30)、频率以及多声道对数据流进行编码/解码以产生高保真度的重构声音。声编码器(64)对多通道声信号进行划分以便把帧尺寸即字节数量限制在所需的范围内,并对编码数据进行格式化处理以便当接收到各子帧时能进行播放从而减少伪象。此外,声编码器处理声频带宽的基带部分0-24kHz以便用相同的编码/解码算法对48kHz或更高的频率进行采样从而使声编码器的结构在未来具有兼容性。
文档编号G10L19/12GK1495705SQ0315692
公开日2004年5月12日 申请日期1996年11月21日 优先权日1995年12月1日
发明者斯蒂芬·M·史密斯, 斯蒂芬 M 史密斯, H 史密斯, 迈克尔·H·史密斯, 保罗 史密斯, 威廉·保罗·史密斯 申请人:数字剧场系统股份有限公司

喜欢就赞一下

上一篇
下一篇

相关推荐

    专利名称:一种卡拉ok电视机的制作方法一种卡拉OK电视机技术领域:本发明涉及电视机技术领域,特别涉及一种具有录音、重播功能的卡拉0K电视机。背景技术:随着电视机成为家庭文化娱乐的重要工具,电视节目、VCD、 DVD、 RD等设备的节目 播放

    专利发布时间:2025-05-15阅读:(80)

    专利名称:一种驱动板外置式手写显示装置的制作方法技术领域:本实用新型属于显示设备领域,涉及一种具有电^f兹式手写输入功能的 液晶显示屏,特别是涉及一种液晶显示屏驱动板外置于液晶显示屏的显示 装置。背景技术:目前大部分计算机的主显示屏都是采用

    专利发布时间:2025-05-15阅读:(77)

    专利名称:参数立体声编码方法、装置和参数立体声解码方法、装置的制作方法技术领域:本发明涉及语音编解码技术,尤其涉及一种参数立体声编解码的方法和装置。背景技术:现有的立体声编解码方法可以分为两类, 一类是基于波形的立体声编解 码,第二类是参数

    专利发布时间:2025-05-15阅读:(112)

    用于捆扎物体的缠绕物的制作方法【专利摘要】一种扎带装置,具有形状保持可变形材料的细长件。覆盖物沿细长件的长度覆盖形状保持可变形材料。覆盖物具有在细长件与覆盖物之间的联结。在覆盖物与细长件之间的联结是沿覆盖物的整个内表面。外覆盖物可以联结至覆

    专利发布时间:2025-05-15阅读:(71)

    专利名称:连续镜度渐变的镜片的制作方法连续镜度渐变的镜片背景技术:校正人类视力的眼镜片已经使用了几个世纪。尽管如此,在材料和光学设计方面的新开发继续给镜片佩戴者提供更多选择和各种改进。作为一个例子,考虑与年龄相关的、降低对焦适应性的开发历史

    专利发布时间:2025-05-15阅读:(103)

    专利名称:产生用于处理基底的光束的光学系统的制作方法技术领域:本发明涉及一种产生用于处理布置在基底平面中的基底的光束的光学系统,其中该光束在垂直于光束传播方向的第一维度上具有束长度并且在垂直于第一维度和光传播方向的第二维度上具有束宽度,其中

    专利发布时间:2025-05-15阅读:(78)