编码器制造技术

技术编号:3423704 阅读:124 留言:0更新日期:2012-04-11 18:40
一种编码器,包括:G个存储部分,用于储存G组数据;一个霍夫曼代码簿选择部分,用于从H个霍夫曼代码簿中选择一个用于每组数据的霍夫曼代码簿。所述霍夫曼代码簿选择部分包括一个用于计算使用每个霍夫曼代码簿对G组数据中的每组数据执行霍夫曼编码操作得到的码长的计算部分。当所选择的霍夫曼代码簿是一个无符号代码簿时,符号信息所需的位数预先加到由所述码长计算部分计算的码长上。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种使用霍夫曼代码的编码器,具体地说,本专利技术涉及一种能够从多个霍夫曼代码簿中选择一个最佳代码簿从而使用最佳选择的霍夫曼代码簿对数字数据进行编码的编码器。近年来,高效音频信号压缩方法使用霍夫曼编码方案对量化音频信号的频数进行编码。下面将描述例如在MPEG2-AAC标准中描述的传统数据压缩方法(见ISO/IEC 13818-7)。首先,经过MDCT(改进的离散余弦变换)操作将输入PCM(脉冲码调制)信号转换成频谱数据的1024个元素。这个处理在“ISO/IEC 13818-7 ANNEX B2.3 FilterBank and block switching”进行了描述,这里不再讨论。“ISO/IEC13818-7ANNEX B 2.3 Filter Bank and block switching”的全部内容在这里作为参考。然后,使用一种非线性量化方法量化(转换成整数)所述频谱数据的1024个元素。这个处理在“ISO/IEC 13818-7 ANNEX B 2.7 Quantizing”做出了详细的描述,这里不再讨论。“ISO/IEC 13818-7 ANNEX B 2.7 Quantizing”的全部内容在这里作为参考。然后,量化频谱数据的1024个元素被分组成一定数量的比例因子频带(在本说明书中,比例因子频带(SFB)也可以被称之为“数据组”)。使用例如48KHz的取样频率,量化频谱数据的1024个元素将被分组成49个SFB。参看附图说明图14,频谱数据的分组如表450所示执行。例如,所述频谱数据被分组成多个SFB,以便使SFB0包括频谱数据的4个元素0-3(行451所示)、SFB1包括频谱数据的4个元素4-7(行452所示)和SFB2包括频谱数据的4个元素8-11(行453所示)(见“ISO/IEC 13818-73.8表”)。参看图15,表500示出了已经在上述处理中被量化和分组成一定数量SFB(SFB0-SFB(G-1))的频谱数据。在图15中,指定“SFB”的左列501示出了一定数量的SFB(SFB0-SFB(G-1)),指定“频谱”的中心列502示出了频谱数据量,和指定“值”的右列示出了每个频谱数据的绝对值。然后,对被量化和分组的频谱数据进行霍夫曼编码以用于每个SFB。所述霍夫曼编码操作是在从多个霍夫曼代码簿中选择的用于每个SFB的一个霍夫曼代码簿的基础上执行的。根据所述MPEG2-AAC标准,从11个霍夫曼代码簿(霍夫曼代码簿1-11)当中选择一个霍夫曼代码簿。但是,在下面的描述中,为简便起见,只使用4个霍夫曼代码簿(霍夫曼代码簿3-6)。图16-19分别示出了霍夫曼代码簿3-6。在图16-19分别示出的霍夫曼代码簿3-6中,指定“索引”的最左边的一列表示将被编码的每个数据的索引号,指定“长度”的第二列表示每个编码数据的码长,和指定“代码字(16进制)”的第三列表示每个编码数据(代码字)的16进制形式。在图16-19中示出的霍夫曼代码簿3-6的每一个都包含与索引号0-80相关的每个编码数据的码长(长度)和每个编码数据的16进制形式(代码字)。在图15所示的SFB0中,最大的绝对频谱数据值是4。根据MPEG2-AAC标准,利用输入信号的最大绝对值限制可以被选择用于输入信号的霍夫曼代码簿。这个限制是由图20所示的LAV(最大绝对值)确定的。一个霍夫曼代码簿的LAV表明可以使用特定霍夫曼代码簿进行编码的输入数据的最大绝对值。根据图20所示的表,当SFB0中的最大绝对频谱数据值是4时,霍夫曼代码簿5和6是候选的霍夫曼代码簿。当对数据编码时由所述候选霍夫曼代码簿5导致的码长与当对数据编码时由所述候选霍夫曼代码簿6导致的码长进行比较。从中选择给出比较小码长的霍夫曼代码簿。在这个例子中,在霍夫曼代码簿5和6是候选的情况下,当对数据进行霍夫曼编码时由所述候选霍夫曼代码簿导致的码长如下计算首先,根据下述等式(1)和(2)计算两个索引值“index0”和“index1”index0=(D0+LAV)*(2*LAV+1)+(D1+LAV)…(1)index1=(D2+LAV)*(2*LAV+1)+(D3+LAV)…(2)其中,D0、D1、D2和D3分别表示SFB0的4个频谱数据元素(值)。所计算的“index0”和“index1”的值被用做所述索引值。在所述索引值的基础上获得与候选霍夫曼代码簿5和6相关的码长“长度”。参看图15,将D0=4、D1=2、D2=0、D3=3和LAV=4代入等式(1)和(2),结果是index0=74和index1=43。参看图18所示的霍夫曼代码簿5,可以确定用于index0=74的长度=12和用于index1=43的长度=8,所以当使用霍夫曼代码簿5对数据进行霍夫曼编码时,所述码长将是20(12+8)位。参看图19所示的霍夫曼代码簿6,可以确定用于index0=74的长度是9和用于index1=43的长度是7,所以,当使用霍夫曼代码簿6对数据进行编码时所述编码长度将是16(9+7)。因此,选择候选霍夫曼代码簿6对SFB0中包括的每个频谱数据进行编码是特别有利的。因此选择霍夫曼代码簿6。类似的,对于SFB1来讲,当利用霍夫曼代码簿5对数据进行编码时,所述码长将是18,当利用霍夫曼代码簿6对数据进行编码时将是13。因此,也选择霍夫曼代码簿6对包括在SFB1中的每个频谱数据进行编码是有利的。对于图15所示的SFB2来讲,它的最大绝对频谱数据值是1,霍夫曼代码簿3-6是所述候选霍夫曼代码簿。对于霍夫曼代码簿5和6来讲,可以如上所述地确定被霍夫曼编码数据的码长;对一霍夫曼代码簿5的长度是9位,和对于霍夫曼代码簿6的长度是8位。对于霍夫曼代码簿3和4来讲,如下计算霍夫曼编码数据的码长。霍夫曼代码簿3和4是所谓的“无符号”代码簿,它被用于对没有符号的数据(无符号数据)进行编码。当使用无符号代码簿时,输入数据的绝对值被进行霍夫曼编码,而被忽略符号的数量被单独计数并加到霍夫曼编码操作的代码总合当中。被忽略符号的数量对应于将被编码数据的非零元素(需要符号的元素)的数量。在使用这种无符号霍夫曼代码簿对数据进行霍夫曼编码时导致的码长可以如下获得首先,根据等式(3)计算索引值“index0”index0=abs(D0)*(k^3)+abs(D1)*(K^2)+abs(D2)*k+abs(D3) …(3)其中,D0、D1、D2和D3分别表示SFB2的4个频谱数据元素(值),“abs(x)”表示x的绝对值,“^”表示取幂,和k=LAV+1。所计算的“index0”的值被用做所述索引值,以用于获得与霍夫曼代码簿3和4中的每一个相关的“长度”。例如对于图15所示的SFB2来讲,D0=1、D1=-1、D2=1、D3=0和LAV=2。参看图16所示的霍夫曼代码簿3,长度=6被确定用于index0=39。由于符号信息位没有包括在从霍夫曼代码簿3中获得的代码字中,所以需要符号信息以重新存储所述代码位。所需符号信息位的数量等于SFB2频谱数据4个元素当中非零元素的数量。图15所示的SFB2包括三个非零元素。因此,需要将三个符号信息位加到所述霍夫曼编码的代码字上。结果,所述霍夫曼编码数本文档来自技高网...

【技术保护点】
一种编码器,包括: G个存储部分(G是一个等于或大于1的整数),用于存储G组数据; 一个霍夫曼代码簿选择部分,用于选择与存储在各存储部分中的每组数据相关的H(H是等于或大于1的整数)个霍夫曼代码簿中的一个,每个霍夫曼代码簿都具有一个代码簿号; G个霍夫曼编码部分,所述霍夫曼编码部分中的每一个使用由与一组数据相关的所述霍夫曼代码簿选择部分选择的一个霍夫曼代码簿对G组数据中相应的一个进行霍夫曼编码;和 一个代码簿号编码部分,用于对由所述霍夫曼代码簿选择部分选择的每个霍夫曼代码簿的代码簿号进行编码,其中, 所述霍夫曼代码簿选择部分包括一个用于计算由使用每个霍夫曼代码簿对G组数据中的每一个进行霍夫曼编码操作导致的码长的码长计算部分,和一个用于在由所述码长计算部分计算的所述码长的基础上选择适用于所述组数据的一个霍夫曼代码簿的控制部分;和 当所选择的霍夫曼代码簿是一个无符号代码簿时,符号信息所需的位数被预先加到由所述码长计算部分计算的码长上。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:宫阪修二则松武志津岛峰生石川智一泽田庆昭
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1