音频编码装置、音频解码装置、音频编码方法、音频解码方法和信息记录介质的制作方法

文档序号:2830550阅读:454来源:国知局
专利名称:音频编码装置、音频解码装置、音频编码方法、音频解码方法和信息记录介质的制作方法
技术领域
本发明涉及一种音频编码装置、音频解码装置、音频编码方法、音频解码方法和信息记录介质,其能够以高质量和高速度编码和解码音频信号。
背景技术
在通信量受限制的条件下进行的音频通信中,必须创新性地使用音频信号编码和解码处理,以便在数据最少的情况下以可实现的最大音频质量
进行通信o
一个这种创新的方向包括有效的利用人听觉的特性。作为考虑了听觉的特性的一种音频编码方法,例如在日本未审日本专
利申请KOKAI (特开平)公幵No,H7-46137和JIS Std. No.JISX4323中所述的,已知了多种方法,在这些方法中,在将音频信号转换为频谱后,将频谱分为多个子带,同时考虑由听觉特性得到的关键区域。
作为结果,考虑了用于每一个上述子带的信号值、掩蔽电平、噪声等,在计算了编码所必需的比特数之后,进行编码。
然而,在这种方法中,用于计算编码所必需的比特数的过程是复杂的,并且需要许多计算步骤。另外,还存在问题是,计算例如掩蔽电平是重要的。
因此,在执行计算处理的编码装置上的负载变大,存在处理速度变慢的风险。例如,在如移动电话的装置中,有可能实时双向通信会变得困难。为了避免这种情况,不可避免地招致了成本提高,因为必须将特别高性能的计算设备包含在编码装置中等。
因此,需要这样的音频编码装置和解码装置其能够在考虑听觉特性的同时进行实时通信,而不存在任何实际音频质量问题,其使用了通常性能足够的计算设备。

发明内容
考虑到上述情况而设计的本发明的目的是提供一种音频编码装置、音 频解码装置、音频编码方法、音频解码方法和信息记录介质,其能够以高 质量和高速度编码和解码音频信号。
为了实现上述目的,根据本发明的第一方面的音频编码装置包括以下
存储单元(9123),其存储表示由多个第一频带组成的音频数据的每一 个频带的频率宽度的信息,所述多个第一频带分别与预定比特数相关联;
离散变换单元(9121),其获得所述音频数据,将所述音频数据从实时 域离散变换到频域,并且计算表示每一个频率的音频强度的量化值;
最大值计算单元(9121),其将离散变换得到的频域音频数据划分为具 有所述频率宽度的所述多个第一频带,并且计算每一个所划分的第一频带 的所计算的量化值之中的最大值;
确定单元(9121),其针对每一个所述第一频带,确定用于表示由所述 最大值计算单元计算的最大值所必需的比特数是否超过存储在所述存储单 元(9123)中的所述预定比特数;
调整单元(9121),其针对每一个所述第一频带,在由所述确定单元确 定所述必需的比特数超过了所述预定比特数的情况下,获得一个除数,并 且分别将在该第一频带内的量化值除以这个除数,从而调整所述音频强度, 其中这个除数(表示为2的幂的值)是这样的值中的最小值当用所述最 大值除以该值时,所述必需的比特数不超过所述预定比特数;
重新量化单元(9121),其针对具有预定带宽的多个第二频带中的每一 个,以预先确定的精度重新量化由所述离散变换单元计算的量化值,或者 可替换地,重新量化由所述调整单元调整后的量化值;以及
编码单元(9121),其编码、关联并输出由所述调整单元计算的所述除 数和由所述重新量化单元计算的所述量化值。
为了实现上述目的,根据本发明的第二方面的音频解码装置包括以下-
接收器(9161),其接收编码数据,该数据由预定编码方法编码,并由 量化的音频数据和数值参数组成,该量化的音频数据的信号强度由针对多 个第一频带中的每一个而被调整后的量化值表示,该数值参数表示为2的幂,并且与为音频数据配置的多个设定的第二频带中的每一个频带相关联;
解码单元(9121),其通过使用对应于所述预定编码方法的解码方法, 将所述编码数据解码为所述量化的音频数据和所述数值参数;
强度恢复单元(9121),其针对所述多个第二频带中的每一个,将该频 带内的已解码的所述量化值乘以与该频带相关联的已解码的所述数值参
数,从而恢复所述音频数据的音频强度;以及
离散逆变换单元(9121),其针对所述多个第一频带中的每一个,将恢 复强度后的所述音频数据从频域变换到时域。
作为本发明的结果,可以快速反应灵敏的编码/解码音频信号,同时保 持高音质。


在阅读了以下详细说明和附图后,本发明的这些目的及其它目的和优
点会变得更显而易见,其中
图1显示了根据本发明实施例的音频编码/解码装置的结构;
图2A显示了在MDCT系数和频率之间的关系;图2B是图2A —部分
的放大视图;图2C是用于解释中间段(medium-segment)频带的图示;图
2D是图2C —部分的放大视图3是显示MDCT系数的比特移位计算过程的流程图4A显示了划分到中间段频带中的音频信号;图4B是用于解释分配
给每一个中间段频带的比特数的图示;图4C显示了比特移位的MDCT系
数;
图5A显示了划分为三大段频带的整个频域;图5B显示了在重新量化 前的比特移位的MDCT系数的对数;图5C显示了重新量化后的比特移位 的MDCT系数的对数;
图6A显示了第一实施例中的音频信号编码过程;图6B显示了音频信 号解码过程;
图7A显示了第二实施例中的实时域音频信号;图7B显示了动态范围 调整前的音频信号;图7C显示了动态范围调整后的音频信号; 图8是显示第二实施例中的动态范围调整过程的流程图;图9A显示了第二实施例中的编码频带和优先级;图9B和9C显示了 基于优先级而编码的MDCT系数熵;
图IO是显示第二实施例中的优先级决定过程的流程图; 图11是显示第二实施例中熵编码过程的流程图; 图12A显示了第二实施例中的音频信号处理。图12B显示了音频信号 解码过程;
图13是显示第二实施例中音频信号解码过程的流程图;及
图14是显示第二实施例中解码过程的流程图(继续的)。
具体实施例方式
(实施例1)
图l显示了根据本发明的音频编码/解码装置9111。例如,移动电话可 以用于该装置。音频编码/解码装置9111起到音频数据编码装置的作用,并 还起到编码音频数据解码装置的作用。
音频编码装置9111包括CPU (中央处理单元)9121、 ROM (只读存 储器)9123、存储单元9125、音频处理单元9141、无线通信单元9161和 输入接收单元9171。由系统总线9181相互连接它们。系统总线9181是用 于发送指令和数据的发送通路。
在ROM 9123中存储了用于音频编码/解码的程序,其使用了下文所述 的处理。
存储单元9125包括RAM(随机存取存储器)9131和硬盘驱动器9133。 存储单元9125存储数字音频信号、MDCT系数、移位比特数、代码,以及 下文中将会说明的小段各自的特性、中间段和大段。
音频编码/解码装置9111还包括麦克风9151、扬声器9153、天线9163 以及操作键9173。
麦克风9151拾取发送方用户的音频(语声等),并将其输入音频处理 单元9141。扬声器9153输出由音频处理单元9141解码的音频。天线9163 将从无线通信单元9161输入的无线信号发送到通信中的另一方的装置,并 且还接收从另一方终端发送的无线信号,并将其输入到无线通信单元9161。 例如使用了操作键9173来从用户接收用于改变音频信号频带的边界频率的
12初始配置值的指令输入以及用于指定另一方的指令输入。
作为来自CPU 9121的控制的结果,音频处理单元9141、无线通信单 元9161和输入接收单元9171执行各种处理。
借助于在音频处理单元9141中的A/D转换器(图中未示出)将输入到 麦克风9151中的音频转换为数字音频信号,例如使用了 16KHz采样和16-比特量化。
将获取的数字音频信号时分到多个部分(帧)中,以进行压縮处理, 随后由音频处理单元9141发送到存储单元9125。
如下所述,在存储单元9125中将一帧的信号存储为段(segment),由 CPU 9121从实时域变换到频域,传输到无线通信单元9161,并由天线9163 以无线方式发射。
例如,当存储在存储单元9125中的帧信号由CPU 9121进行了如下所 述的处理之后传输到无线通信单元9161时,从存储单元9125中删除这个 帧信号数据。此外,将来自音频处理单元9141的下一帧信号存储在存储单 元9125中,并且CPU 9121重复这个处理序列。以此方式,通过连续输入音频信号,CPU 9121逐步地处理多个连续的 帧部分。
作为这个处理链的结果,可以实时地处理信号。
下文中,为了理解的简单,将假定跨度仅有一帧时间值的音频输入到 麦克风9151中来说明本发明。
例如,由M个信号值组成的音频信号的一个帧被输入到麦克风9151, 由音频处理单元9141变换为数字信号x。,…,Xm,p并存储在存储单元9125 中。依据预先存储在ROM9123中的程序,CPU9121执行随后的处理。
就是说,CPU 9121将存储在存储单元9125中的信号Xo,'",Xm.,装入CPU 9121的通用寄存器(图中未示出)中。将实时域信号Xo,…,xm-,分别变换为 频域信号Xo,…,Xm/m,并存储在通用寄存器中。变换方法可以是用于将实 时域信号变换为频域信号的任意方法。然而,实施MDCT (改进的离散余 弦变换)是理想的,其易于信号的处理,因为没有产生变换后的数值的虚 数部。
这些M个实时域信号值对应于上述频域中的M/2个频率系数值。这是因为使用了MDCT来进行频率变换。在其它方法中,在实时域数据值与频 域数据值之间的比值不限于2:1。在这些情况下,可以适当地替换以下说明 中的添加到频率系数最终值后面的数字。
图2A示意性地示出了在以这个方式产生的MDCT系数与频率之间的 关系。图2B是图2A—部分的放大。由于MDCT是一类离散频率变换,因 此将一个信号值分配给分割频段的M/2个小段频带的每一个。如图所示, 从低频侧开始计数,将数字k指定给k+l小段频带,并将信号值Xk分配于 此(其中0《k《M/2-l)。这个信号值Xk称为MDCT系数。
为具有有限时间长度的单一时间段进行一次MDCT。单个时间段称为 MDCT块。另外,包含在一个MDCT块中的信号值的数量称为MDCT级 数。例如数值512作为MDCT级数是理想的。
由于帧是用于进行音频压縮处理的部分,因此MDCT块的时间长度必 须不超过一帧的时间长度。一帧可以包含多个MDCT块。例如一帧包含3 到4个MDCT块的情况是理想的。
然而,在这一点上,为了易于理解本发明, 一帧和一个MDCT块会采 用一一对应的方式。换句话说, 一帧会仅对应于一个MDCT块。在本实施 例中,MDCT级数是M。
根据前面的图2A,全部MDCT系数都示为正值,但应该意识到这仅是 为了易于理解本发明。实际的MDCT系数也可以是负值。与MDCT系数有
关的附图最终仅是为了解释目的的示意图。
对于存储在通用寄存器中的每一个MDCT系数Xk( 0《k《M/2-l) , CPU 9121重新附加参考数字,以便与MDCT系数相区别。具体而言,CPU9121 以以下方式用两个参考数字重新区分每一个MDCT系数。
首先,如图2C所示,将整个频域划分为" MaxRANGE 个中间段频带, 借
助从低频开始附加区别数字l, 2,…"MaxRANGE来将每一个频带相区分。
CPU9121这样来划分频域使得每一个中间段频带中的中心频率的对
数与区别数字线性相关。作为这个划分的结果,中间段频带越靠近高频侧,
其频带宽度就越宽。在图2C中示意性的示出了它。
以此方式基于对数进行分割的原因在于,人听力相对于频率差的敏感
度随着频率变高呈对数方式减弱。这是这种情况为了发射由人感知的最高音质并且有可能给出有限的通信量,最好是对音频进行处理以便对具有 人听力敏感的低频成分的音频信号进行细致划分,并且对音频进行处理以 便对于具有高频成分的音频信号进行宽泛的划分。结果,可以减小总体发 送/接收信息量。
例如,在音频处理单元9141以采样频率16kHz将输入到麦克风9151 中的音频变换为数字信号时,理想的是提供ll个中间段频带,这些中间段 频带分别具有187.5Hz、 437.5Hz、 687.5Hz、 937.5Hz、 1312.5Hz、 1687.5Hz、 2312.5Hz、 3250Hz、 4625Hz和6500Hz的边界。
接下来,CPU 9121决定每一个MDCT系数所属的从低频侧开始计数的 中间段频带号。在具有附加编号co
RANGE MaxRANGE )的
中间段频带中,包括了q("RA恥E)个MDCT系数。
如此进行,由以下来区分全部MDCT系数(1)用于指示它们所属的 是哪一个中间段频带的数字"RANCE,和(2)用于指示从低频侧开始计数的 系数的顺序位置的数字q。在下文中,如图2D所示,将各个MDCT系数表 示为X(co
RANGE, 1),,X( W RANGE,q( 00 RANGE))。
CPU 9121将获得的MDCT系数X("画ge,I), ,X("画ge,q("
存储在存储单元9125中。 (比特移位计算过程)
如图3的流程图所示,CPU 9121随后获得MDCT系数的最大值,确定 要移位的比特数,进行比特移位,并仅用确定的比特数重新计算MDCT系 数。而且,为了易于理解,在图4中显示了MDCT系数的一个示意性实例。
更具体的,CPU9121将用于区分中间段频带的变量0)RANC5E存储在内部
计数器寄存器(图中未示出)中。
CPU 9121将"range设定初始值l (步骤S9311)。 CPU 9121从存储单 元9125将MDCT系数X(。麵ge,l), ,X("画ge,q("画ge))装入到通用
寄存器(步骤S9313)。接下来,CPU 9121搜索装入的MDCT系数之中的
最大的系数(步骤S9315)。换句话说,在具有从低频侧计数的编号"RAN(JE
的中间段频带中获得其中的MDCT系数的最大值。这个最大值应表示为
Xmax(" range)。
例如在图4A的情况下,将整个频域分为7个中间端频带,每一个频带的MDCT系数的最大值Xmax(1)到XMAx(7)是用水平虚线显示的值。
在存储于ROM 9123中的程序中,为每一个中间段频带配置了用于表 示MDCT系数的预定比特数。换句话说,在ROM9123中,预先存储了用 于指定每一个中间段频带的比特数的信息。这个信息也可以存储在硬盘驱 动器9133中。
由编号"rawe区分的中间段频带的预先配置的比特数表示为 GivenBit(co画ge)。
将GivenBit(co RA^E)配置为随着各个中间段频带中的中心频率的变小
而增大的一个数值。为了对其进行区分,将其数值配置为在"RA^E较大时
较小。这是因为通常人听力的灵敏度在高频变弱。换句话说,为了在不降 低音质的情况下尽可能的压縮音频信号信息量,尽管在人对于音量变化敏 感的低频域中提高MDCT系数的精度是更好的,但在人不敏感的高频域中 降低MDCT系数的相对精度时的质量下降较低。
例如,如由图4B中的粗水平线所示的,对于在高频侧的第5到第7个 中间段频带,所分配的比特数比分配给低频侧的第1到第4个中间段频带 的比特数小1。
而且,将所分配的比特数减小1意味着可表示的数值范围减半。这对 应于以下事实即在图4B的情况下,长度LA和长度LB相等。如果将比 特数增大l, 2,…等,则可表示的数值范围就增大2的一次幂、2的2次
^P、 4 o
CPU 9121在与存储"ra^e的计数器寄存器不同的计数器寄存器中存 储临时变量TmpBit。作为初始值,CPU 9121设定TmpBit=GivenBit( co目证) (步骤S93H)。
变量TmpBit用于确定Xmax( co ,^)是否可以用GivenBit( co range)来表
示,其中XMAX("謹GE)是在具有编号CO画GE的中间段频带中的MDCT系
数的最大值,GivenBit("RANCjE)是该中间段频带的预先配置的比特数。在不 可表示Xmax("rance)的情况下,TmpBit就用于确定需要多少比特来使得
Xmax( w range)可表不o
具体的,CPU 9121确定XMAX("RAMjE)是否大于2TmPBit (步骤S9319)。
使用2的幂来进行在二进制数之间的比较。严格说来,还需要一个比特来表示MDCT系数的符号。然而,这个事 实与本发明的基本特征无关。为了易于理解本发明,以下说明中假定MDCT 系数不会变为负数。
如果XMAX("range)大于2TmpBit (步骤S9319;是),就不能用TmpBit 数量个比特表示Xmax("ranot),因此将TmpBit增大l (步骤S9321)。在 此情况下,过程返回到步骤S9319。
此外,TmpBit每次迭代都增大1 ,直到Xmax( " range)变为可以用TmpBit 数量个比特来表示(步骤S9319;否)。
在XMAX("RA恥E)不大于2TmPBit的情况下(步骤S9319;否),CPU 9121
通过用TmpBit减去GivenBit( co RA恥E)来计算ShiftBit( co步骤S9323 )。
ShiftBit("RAN(jE)是縮短后仍能表示具有编号"RANGE的中间段频带的全部
MDCT系数的比特数。
例如在图4B的情况下,对于",证=1到4和"圃ge-7中的毎一个 频带,MDCT系数的最大值小于可以由所设定的比特数GivenBit("RAKGE) 表示的最大值。换句话说,在这些频带中,由于MDCT系数可以用 GivenBit(co,ge)数量个比特来表示,该过程到达步骤S9323,不必经过步 骤S9321 。由于TmpBit的值仍然是在步骤S9317中设定的初始值 GivenBit("range),在步骤S9323中实际上ShiftBit("raNGE)=0。换句话说, 不縮短用于MDCT系数的比特数。
另一方面,对于图4B中具有"RANGE-5和6的各个频带,MDCT系数 的最大偟大于可以由所设定比特数GivenBit("ra^e)表示的最大值。因此, 在步骤S9319的第一次迭代中的判断结果为"是",过程前进到步骤S9321。 在本附图的情况下,如果在步骤S9321中将TmpBit增大l,那么就可以表 示在这些频带中的所有MDCT系数。因此,在步骤S9319的第二次迭代中 的判断结果变为"否",过程前进到步骤S9323。由于TmpBit仅在初始值 上增加了l,因此实际上ShiftBit(
CPU 9121将以此方式获得的ShiftBit("RAMjE)存储在存储单元9125中 (步骤S9325)。这些ShiftBit("RA^E)值对于解码装置中的解码过程是必要 的。
CPU 9121使用在步骤S9313中装入的MDCT系数X("rance,I), ,X( " range,q( " range)),以及在步骤S9323计算的移位比特数ShiftBit( " range) 计算经比特移位的MDCT系数XBS(" RANGE, 1),, XBS( w RANGE,q( W RANGE))
(步骤S9327)。换句话说,
XBS(" raNGE,1)=X("隱e,l)/(2八ShiftBit( w謹ge)),
XBS( " range, q( " range))=X( " ra恥e, q( " raNGE))/{2AShiftBit( " range)}
符号A表示指数。
例如,如图4B和4C所示,在中间段频带1到4和7中,MDCT系数
在此可用所设定的比特数来表示,比特数Shi旭it("range)是0,因此,通
过除以2的0次幂来计算比特移位的MDCT系数。然而,由于2的0次幂 是1,实际上可以将MDCT系数的值按原样设定为经比特移位的MDCT系 数。
另一方面,在中间段频带5和6中,比特数ShiftBit("画ge)是1,因 此将在这种中间段频带中的MDCT系数除以2的1次幂(即2),来计算经 比特移位的MDCT系数。如图4C所示,将MDCT系数除以2的结果是经 比特移位的MDCT系数值减半。
因此,尽管在图4B中存在其MDCT系数不能用所设定的比特数表示 的频带,但在图4C中可以用所设定的比特数来表示整个频域的MDCT系 数。
附带地,由于在步骤S9327的相除是除以2的幂,因此CPU9121就仅 需进行右移位操作(基数2 (二进制)计算)。
为了通过除法减小特定数值以便可以用所设定的比特数表示它,除数 的数值可以是任意参数。然而,在本实施例中,将除数限于2的幂。因此, 由于CPU 9121仅需进行右移位操作,因此能够加速计算,并能够减轻处理 量。结果,提高了音频编码/解码装置9111的总操作性能。
CPU 9121将经比特移位的MDCT系数XBS("廳^, 1 ), ,XBS(" range,
q("ran(5e))存储在存储单元9125中(步骤S9329)。
CPU 9121确定是否已经对所有频带计算了经比特移位的MDCT系数 (步骤S9331)。如果已经对所有频带都进行了计算(步骤S9331;是),这 个计算过程结束。如果还有未被计算的频带(步骤S9331;否),就将"rancje
18递增l (步骤S9333),并且过程返回到步骤S9313。 (重新量化过程)
在上述过程中,麦克风9151如实地拾取作为通过空气传播的波的声音, 并且声波振幅的量值正比于音频的响度。
然而,通常人听力灵敏度的特性倾向于在某种可变程度上,相对于所 有音频频率上的声响度以对数方式变化。换句话说,人听力尽管对于柔和 声音的音量中轻微的差别是敏感的,但对于响亮声音的音量中的差别不是 非常敏感的。
考虑到这种特性,以统一的精度量化柔和声音和响亮声音随后压縮音 频信号未必是高效的。
这是这样的情况在编码音频信号之前,音频编码/解码装置9111可以 量化音频信号。例如,可以用相应的高精度来量化低音量音频,可以用相 应的低精度来量化高音量音频。在此的量化指的是用设定的离散值近似要 量化的量。
然而,在音频处理单元9141的A/D转换期间,音频信号已经被量化了 一次。为了区分这些量化,将在此所述的量化成为重新量化。
在下文中,会参考图5A、 5B和5C中的示意图来说明重新量化过程。
图5A显示了在步骤S9329存储于存储单元9125中的经比特移位的 MDCT系数的对数与频率之间的关系。
依据预先存储在ROM9123中的程序,CPU9121在其内部寄存器与存 储单元9125之间发送/接收数据,通过对存储在寄存器中的数值执行适当的 计算来重新量化该数据。
如上所述,通常的人听力的特性是这样的尽管对于柔和声音的音量 中的轻微差别敏感,但人对于响亮声音的音量中的差别不是非常敏感。这 对于全部频域都是一样。然而,根据频带,在上述敏感性/不敏感性的程度 中存在差别。换句话说,人听力的敏感性在较高频率减弱,即使在相同的 音量上也是如此。基于这个事实,为了减小音频信号中的信息量同时避免 人感知的音质降低,优选的对于低频域以高精度进行重新量化,而对于高 频域可以以低精度也进行重新量化。如此进行时,为了抑制信息量,优选 地将音频信号分为多个具有特定带宽的频带,在每一个单独的频带内使重新量化的精度统一。如果重新量化精度变化得过于精细,则处理就变得复 杂,并且要处理的信息量实际上就有可能增大。
而且,已知听力灵敏度随着频率的增加以对数方式减弱。换句话说, 如果将灵敏度作为纵轴,频率对数作为横轴来绘制曲线图,则灵敏度就会 与较高频率成正比地线性降低。
这是这样的情况优选地在频率轴上对数性地分布指定频带的边界的 频率,这些频率是用于改变重新量化精度的一个参数。
附带地,在上述比特移位计算过程中,配置中间段频带的边界,以便 将它们对数性地分布在频率轴上。因此,这些中间段频带可以用作重新量 化过程的处理单元。
为了提高要在以下说明的熵编码的压縮比,优选地以与中间段频带相 同的方式划分频带,g卩,使其具有对数性变化的带宽,其充当用于重新量 化过程的处理单元,但其中比中间段频带更宽泛地划分频带。如此进行时, 充当用于重新量化过程的处理单元的频带在下文中称为大段频带,其是用 于改变重新量化精度的一个参数。方便的是将一个中间段频带,或者可替 换地多个连续的中间段频带,设定为一个大段频带。
例如,优选地将整个频域划分为约5个大段频带。
然而,与配置了较大数量的大段频带的情况下相比,即使在仅配置了 约3个大段频带的情况下,也并不意味着人感知的音质会变得极差。因此,
本实施例被配置为包含3个大段频带,称为低范围大段、中范围大段、和
高范围大段。
就是说,是上限值频率一半的频率充当中范围大段与高范围大段之间
的边界。所述上限值是一个有限值,其是基于在音频处理单元9141中使用 的采样频率来确定的;例如,尼奎斯特频率。换句话说,整个频域分为两 半由合并的低范围大段和中范围大段组成的一个部分,以及由高范围大 段组成的一个部分。
另外,低范围大段采用了从低范围侧计数的第一中间段频带。可替换 地,低范围大段可以采用第一和第二,或者最多第一到第三中间段频带。 如此进行时,确定这三个大段频带各自的边界。
出于以下原因,低范围大段由小编号的(l到3)中间段频带组成。就是说,尽管由于音频信号的特性在低频部分是显著的,从而优选地以高精 度重新量化低频部分,但过度加宽低范围大段与减小音频信号的信息量的 要求相矛盾。
图5A, 5B和5C是用于解释用以将全部频带划分为多个大段频带并进 行重新量化的处理。在图5A中,将频域划分为总共7个中间段频带,编号 1到7。
首先,如上所述,CPU9121设定在中范围大段与高范围大段之间的边 界,以便将整个频域等分为两半。在这一点上,CPU9121设定一个中间段 频带,或者可替换地设定多个连续的中间段频带,等同于设定一个大段频 带。换句话说,单一中间段频带不会属于多个大段频带。因此,CPU 9121 将在第五中间段频带与第六中间段频带之间的边界设定为在中范围大段与 高范围大段之间的边界。如此进行时,高范围大段由第六和第七中间段频 带组成。
接下来,CPU9121将在低范围大段与中范围大段之间的边界设定为在 第一中间段频带与第二中间段频带之间的边界。在这一点上,CPU9121作 为替代,可以采用在第二中间段频带与第三中间段频带之间的边界。
另外,还可以采用在第三中间段频带与第四中间段频带之间的边界。 然而,在此情况下,低范围大段的宽度和中范围大段的宽度变为近似相等, 因此与对于低频部分以更高精度重新量化的目的是不相容的。
因此,低范围大段仅由第一中间段频带组成,中范围大段由第二到第 五中间段频带组成。
具体而言,重新量化精度取决于分配给每一个大段频带的比特数。例 如,中范围大段的重新量化精度比高范围大段的重新量化精度高相当于1 比特的系数,低范围大段的重新量化精度比中范围大段的重新量化精度高 相当于另一 1比特的系数,将比特数增大1是以双倍精度表示相同的量。 图5B中的每一条水平虚线都说明了这个事实,其是显示用于重新量化的标 准MDCT系数值的线(刻度线)。因此中范围大段的精度比高范围大段的精 度高两倍,低范围大段的精度比中范围大段的精度高两倍。
在重新量化期间,CPU 9121将经比特移位的MDCT系数的对数与其中 一条刻度线相匹配,例如通过丢弃其小数部分。图5B是在重新量化之前;
21图5C是在重新量化之后。在高范围大段中,在刻度线之间的间隔较大;就 是说,由于重新量化精度低,数据是相当平坦的。另一方面,在低范围大 段和中范围大段中,由于重新量化精度比较高,在重新量化之后仍存在许 多数据变化。
在由CPU 9121从ROM 9123读出的程序中,指定了用于划分这些大段 频带的过程和用于重新量化的比特数。依据该程序,CPU9121读取存储在 存储单元9125中的经比特移位的MDCT系数,取其对数,使用为每一个大 段频带所设定的精度进行重新量化,并将结果(频谱信息)存储在存储单 元9125中。
CPU 9121用预定编码方法编码如上所述获得的频谱信息,将其输入到 无线通信单元9161。无线通信单元9161将编码数据加载到无线信号上,并 经由天线9163发射它。 (编码过程)
图6A是解释音频编码/解码装置9111的编码过程的流程图。 由麦克风9151收集人产生的声音,其被输入到音频处理单元9141作 为音频数据。音频处理单元9141A/D转换该音频数据,结果产生数字音频 信号(步骤S9611)。 CPU9121通过计算MDCT系数,将数字音频信号(实 时域信号)变换为频域信号,结果产生频谱数据(步骤S9613)。 CPU9121 将频谱数据划分为多个中间段频带(步骤S9615)。 CPU9121获取每一个中 间段频带的MDCT系数的最大值(步骤S9617)。
CPU9121按照人听力的特性将预定比特数分配给每一个中间段频带。 对于每一个中间段频带,CPU 9121将所分配的比特数与在步骤S9617获得 的MDCT系数的最大值相比较,并用所分配的比特数确定用于表示该最大 值所必需的移位比特数(步骤S9619)。
在存储于ROM 9123的程序中指定了所述预定比特数。 然而,还可以配置为使得例如用户能够使用操作键9173来改变这个比 特数。在此情况下,CPU9121从用户接收指令输入以改变该比特数,并用 由接收到的指令输入指示的值来更新从存储单元9125读出的值。
而且,中间段频带边界、大段频带边界和重新量化精度也可以由用户 指令进行重写。CPU 9121基于在步骤S9619中确定的移位比特数来计算经比特移位的 MDCT系数(步骤S9621)。 CPU 9121执行除法运算,但由于除数限于2 的幂,因此进行右比特移位操作就足够了。这就实现了更快速的编码过程 和CPU9121上较轻的工作负担的优点。
CPU 9121计算所获得的经比特移位的MDCT系数的对数(步骤 S9623),将整个频域划分为预定大段频带(步骤S9625),并以预定精度重 新量化MDCT系数(步骤S9627 )。
CPU 9121编码经比特移位和重新量化的MDCT系数和移位比特数(步 骤S9629)。经编码的信息经由无线通信或其它方式发送到接收装置。 (解码过程)
接下来,将说明例如上述的由接收到编码信息的装置执行的解码过程。 在本实施例中,接收装置也是音频编码/解码装置9111。总的说来,当作为 接收装置运行时,音频编码/解码装置9111用与上述编码和发送过程相反的 一个过程恢复音频信号。
音频编码/解码装置9111收集经由无线通信或其它方式以天线9163发 射的信息。无线通信单元9161将收集的信息存储在存储单元9125中。
换句话说,将经编码的数据,例如上述的经比特移位和重新量化的 MDCT系数和移位比特数,存储在存储单元9125中。
现在将用图6B所示的流程图来说明由音频编码/解码装置9111执行的 操作。CPU 9121依据存储在ROM 9123中的程序执行解码过程。
使用对应于编码过程中所用的编码方法的解码方法。CPU 9121解码经 比特移位和重新量化的MDCT系数和移位比特数(步骤S9641 )。
CPU 9121将整个频域划分为所设定的大段频带(步骤S9643)。 CPU 9121以预定精度为每一个大段频带恢复经比特移位的MDCT系数的对数 (步骤S9645)。依据该对数,CPU 9121恢复经比特移位的MDCT系数(步 骤S9647)。
CPU9121将整个频域划分为多个所设定的中间段频带(步骤S9649)。 在步骤S9641获得对应于每一个中间段频带的移位比特数。CPU9121用这 些移位比特数恢复MDCT系数(步骤S9651)。使用乘法运算进行恢复,但 由于乘数限于2的幂,CPU9121仅需执行左移位操作。由于用单一左移位
23操作实现了单一乘法运算,其优点是更快的解码过程和CPU 9121上较轻的 工作负担。
在以此方式恢复了频域的MDCT系数之后,CPU 9121使用反MDCT 变换将数字音频信号从频域变换到实时域(步骤S9653)。音频处理单元9141 A/D转换所获得的数字音频信号(步骤S9655),并从扬声器9153输出模拟 音频信号。如此完成了音频信号恢复。 (第二实施例)
接下来,将说明根据本发明第二实施例的音频编码/解码装置9111。本 实施例的存储单元9125额外存储用于实时域中振幅抑制的移位比特数、用 于编码的各频带特征量、以及码长度。
首先,将说明音频编码过程。以与第一实施例相同的方式,由麦克风 9151收集的模拟音频信号经由音频处理单元9141的A/D转换,变为数字 音频信号,如图7A所示。例如,该数字音频信号是具有16kHz采样频率和 16-比特量化的信号。数字音频信号存储在存储单元9125中。由于麦克风 9151的特性,存储在存储单元9125中的数字音頻信号包括直流成分Xdc, 其对于音频回放而言不是必需的,如图7A所示。通过使用公知的高通滤波
器或其它技术,消除这种直流成分XDC。
将已经从中消除了直流成分的数字音频信号划分为帧,作为压縮过程 的单元。理想的是在单一帧中包含3到4个MDCT块。在这一点,为了易 于理解,将假定在一帧中仅包含一个MDCT块,如同第一实施例的情况。
CPU 9121为存储在存储单元9125中的每一个单个数字输入信号分配 信号所属的帧号,以及用于指示信号值在该帧内的顺序位置的编号。
CPU 9121读取存储在ROM 9123中的程序,并基于其进行以下处理。
每一帧都包含M个输入信号样本。如图7B所示,区分各个输入信号 样本属于第0帧的第一个样本是xAC(fm=0,0),属于第0帧的第二个样本 是XAc(fm-O,l),…,属于第0帧的最后一个样本是XAc(fo^0,M-l);属于第 1帧的第一个样本是xAC(fm=l,0),,属于第1帧的最后一个样本是 xAC(fm=l,M-l),等等。在图7B中,作为实例写出了样本XAc(fn^0,0)。
此外,经过直流成分xzx:的垂直方向上位移的图7A所示的输入信号是 图7B所示的输入信号。为了确定是否有必要调整每一帧的动态范围,CPU9121为每一帧获得 包含在相应帧中的每一帧的输入信号的最大振幅。换句话说,求第0帧中 的最大振幅lxMAx(fm-O)l,第l帧中的最大振幅lxMAx(fm-l)l,第2帧中的最 大振幅lxMAx(fm-2)1,…的值。
如图7B所示,允许的振幅是在由箭头Y1所示的区域内的那些。换句 话说,将上述设定的比特数作为GivenBitAC,允许输入信号达到具有在
士2GivenBitA"内的振幅的那些信号。添加了指数中的(-l)项,因为必须使用一
个比特来区分正/负。例如10比特的GivenBitAC值是理想的。
每一帧各自的最大振幅由图7B中的箭头Y2、 Y3和Y4指示。在该附 图中,由于在第0帧和第2帧中的最大振幅小于可允许的振幅,就不必调 整到此的输入信号的动态范围。另一方面,由于第1帧中的最大振幅超过 了可允许的振幅,就必须调整在此的输入信号的动态范围。
作为动态范围调整的一个实例,通过将包含在帧中的输入信号除以2 的幂,将最大振幅带入可允许的振幅内。CPU9121能够以高速容易地进行 除以2的幂的运算。然而,如果使得输入信号变得不必要的小,就降低了 稍后由解码装置恢复的音频的音质。因此,将在上述除法运算中用作除数 的、是2的幂的数(数值参数)取允许最大振幅在可允许振幅内的数之中 的最小值。
例如在图7B的情况下,在第1帧中的输入信号的振幅被减半,如图 7C所示。这意味着除以2的1次幂就足够了。换句话说,用于第1帧的振 幅调整的移位比特数是l。
即使对于未经过比特移位的第0帧和第2帧,进行除以2^卩1也会带 来便利,将用于振幅调整的移位比特数视为0。如此进行时,以如下方式区 分消除了直流成分并且调整了振幅的输入信号属于第0帧的第一个样本 是xBS,AC(fm=0,0),属于第0帧的第二个样本是XBs,Ac(fn^0,1)…,属于第0 帧的最后一个样本是xBS,AC(fm=0,M-l);属于第1帧的第一个样本是 xBS,AC(fm=l,0),…,属于第1帧的最后一个样本是XBs,Ac(fin-l,M-l)。 (动态范围调整过程)
接下来,将用图8所示的流程图说明这个动态范围调整的详细过程。 通过使原始输入信号通过公知的高通滤波器,相当大地消除了直流成分,将已经相当大地消除了直流成分的输入信号存储在存储单元9125中。
CPU 9121准备好其计数器寄存器,用于存储帧判别变量fm,并设定
611=0作为初始值(步骤S9811)。
CPU 9121将消除了直流成分的输入信号XAc(fm,0),…,Xac(&i,M-1)从
存储单元9125装入通用寄存器(步骤9813)。 CPU 9121比较这些值的绝对
值(换句话说lxAc(fm-O,O)卜…,|xAC(fm=0,M-l)|),并获得该帧中的样本的
绝对值的最大衝XMAx(fm)l (步骤S9815)。
在与用于存储该帧判别变量的计数器寄存器不同的计数器寄存器中, CPU 9121存储临时变量TmpBit。 CPU 9121设定TmpBit=GivenBitAC-1作 为初始值(步骤S9817)。该初始值对应于在以二进制数表示振幅调整目标 值时所给出的比特数。
接下来,在步骤S9819, CPU 9121确定lxMAx(fin)l是否大于2TmpBit (步 骤S9819)。如果大于(步骤S9819;是),TmpBit就增大l,过程再次返回 到步骤S9819。以此方式进行,IxMAx(fin)l最终会变得低于2T—it(步骤S9819; 否)。CPU 9121通过计算ShiftBit(fin)=TmpBit-GivenBitAC+l,来计算比特 移位数ShiftBit(fm)(步骤S9823),并将结果存储在存储单元9125中(步 骤S9825)。
例如在图7B的第0帧或第2帧的情况下,如果帧中的输入信号的振幅
从开始就在容限内(如果IXMAx(fm)l《2GivenBi""),步骤S9819变为"否",
ShiftBit(ftn)-O。
另一方面,在图7B的第1帧的情况下,对于TmpBit的初始值 GivenBitAC-l,步骤S9819变为"是"。由于当在步骤S9821的第一次迭代 中TmpBit增大1时lx駆(foi)l《2GivenBi1^,步骤S9819的第二次迭代变为 "否",过程前进到步骤S9823。在步骤S9823中,执行以下计算,移位比 特数变为1: ShiftBit(fin)
=TmpBit-GivenBitAC+l
={ TmpBit初始值+1}- GivenBitAC+l
={ (GivenBitAC-1)+1} - GivenBitAC+1
=1接下来,CPU9121按照以下等式计算经过比特移位并消除了直流成分 的输入信号(步骤S9827): xBS'AC(fm,0)=xAC(fm,0)/2shiftBit(fm),
xBS,AC(fm,M-1 )= XAc(fm,M-1 )/2Shi,(fm)
由于除数限于2的幂,因此CPU 9121每一次除法运算就只需进行一个右移 位操作。
CPU9121将以此方式获得的计算结果XBs,Ac(fm,O),…,xBS,AC(fm,M-l) 存储在存储单元9125中(步骤S9829)。每一个值使用一个比特来区分正/ 负。
CPU9121确定是否已经完成了对于所有帧的处理(步骤S9831)。在确 定完成了对于所有帧的处理的情况下(步骤S9831;是),动态范围调整过 程结束。在确定尚未完成对于所有帧的处理的情况下(步骤S9831;否), 帧区分变量fin增大l,用于下一帧的处理(步骤S9833),并且动态范围调 整过程返回到步骤S9813。
随后CPU 9121对于每一个帧,用MDCT将信号从实时域变换到频域, 确定用于每一个中间段频带的移位比特数,为重新量化每一个大段频带的 数据,如同第一实施例中一样。
随后,在第一实施例中,编码并传输整个频域的音频频谱。与此相对 照,在本实施例的情况下,新引入了编码频带。而且,CPU9121将整个频 域分为几个编码频带,并且仅编码并传输属于推断其重要性为高的编码频 带的MDCT系数。既不编码也不传输属于推断其重要性为低的编码频带的 MDCT系数。而且,将在接收侧没有接收到的编码频带的MDCT系数视为 0。换句话说,在音频频谱中,仅发送/接收被推断为重要的部分。
图9A显示了在MDCT系数的对数与频率之间的关系。换句话说,图 9A是从将特定帧中的输入信号从实时域变换到频域的结果获得的频谱。
以下说明将假定上述重新量化过程已经执行了 。
首先,CPU 9121将整个频域划分为多个编码频带。从低频侧将频带编 号1, 2, 3等连续地添加给这些编码频带。尽管每一个编码频带的宽度都 需要比小段频带的宽度大,但每一个编码频带的宽度都不需要与中间段频
27带或大段频带有任何特定关联。
作为一个实例,图9A中将频域划分为7个编码频带。对于这7个编码 频带,CPU9121按照预定标准分别获得重要性级别,并且按照重要性降低 的顺序分配优先级。以下说明获得重要性级别的方式的一个具体实例。
在图9A中,借助于带圆圈的数表示优先级。例如,第2号编码频带的 优先级是第一。这表示在全部编码频带之中CPU 9121会以最高优先级编码 第2号频带。以相同的方式向下继续,具有第2优先级的频带是第1号编 码频带,具有第3优先级的频带是第7号编码频带,…具有最低优先级的 频带是第3号编码频带。
引入编码频带并以此方式确定优先级的原因在于,因为在本实施例中, 采用熵编码方法作为编码方法。熵编码方法的一个特点是,即使信息压縮 精度是固定的,压縮比也是不固定的。换句话说,如果对多个相同长度的 不同数据进行熵编码,存在这样的情况其中编码后的码长度全都不同, 这是因于原始数据中数据元素出现频率中的偏移差。就是说,当与在信息 压縮精度中不呈现偏移的其它编码方法相比时,熵编码方法会具有更高的 压縮比,或者相反地具有更低的比率。通常难以预先预测压縮比,不知道 是否可以实现高压縮比,直到实际执行了熵编码。
在本实施例中,最大程度上利用了熵编码方法的优点,同时考虑到只 要有可能其缺点就不会造成影响。例如,存在这样的情况其中,由于例 如通信速率之类的条件,码长度是有限的。音频编码/解码装置9111对尽可 能多的编码频带的MDCT系数进行熵编码。如果码长度处于该限度内,就 能够传输大部分信息,且可以以高音质对音频进行解码。在熵编码后的码 长度超过了该限度的情况下,以优先级降序选择编码频带,不选择低优先 级的频带。结果,总的码长度在该限度内。由于将音频信号中对应于具有 高优先级的编码频带的部分发送到接收装置,因此即使是为编码去除了一 些频带,音质的降低也能够保持为最小。
例如在图9B中,CPU9121对具有第1到第3优先级的频带,即第l、 第2和第7编码频带,的MDCT系数进行熵编码。在总的码长度小于设定 的码长度的情况下,此时所选择的编码频带的全部MDCT系数都能够发送 到接收装置。即使在此条件下,接收装置也能够恢复相对高音质的音频。然而,如果还能够包括第5号编码频带(具有第4优先级的频带),且其 MDCT系数被发送到接收装置,则接收装置应能够获得更高音质的音频。
因此,如果在码长度中存在空间(通信容量),则CPU 9121就对具有 第4优先级的编码频带的MDCT系数进行熵编码,如图9C所示。结果, 在码长度超过了设定的码长度(通信量)的情况下,CPU9121发送包含最 大到具有第3优先级的编码频带的MDCT系数的熵编码的数据,而不发送 具有第4优先级的频带的数据。另一方面,在码长度并未超过设定的码长 度的情况下,CPU 9121发送包含第1到第4编码频带的MDCT系数的熵编 码的数据。而且,CPU9121还可以对具有下一优先级的编码频带的MDCT 系数进行熵编码,重复这些步骤。
然而,即使为包含在熵编码的数据中并对应于特定单一帧(或MDCT 块)的编码频带确定了优先级,也并不遵循应对于不同的帧(或MDCT块) 以相同的优先级对编码频带进行熵编码。如前文所述,熵编码方法取决于 要编码的数据的本质(例如频谱形状等),存在获得了高压縮比的情况,和 没有获得高压縮比的情况。例如,如果对于特定帧或MDCT块,对一直到 具有第2优先级的编码频带的编码未超过设定的码长度,则对于不同的帧 或MDCT块, 一直到具有第4优先级的编码频带的编码就有可能超过通信 量限制。因此,通常熵编码优先级对于每一帧都是不同的。
如果接收装置恢复能够实现高压縮比的帧,则通过接收装置回放的该 帧的音频会具有高音质。如果接收装置恢复不能实现高压縮比的帧,则原 始信息量就会较低;换句话说,仅会接收一小部分频谱,因此音质会相对 降低。然而,因为从整个频谱中优先选择了对于音频回放而言具有较高重 要性的部分,因此音质的降低保持在最小限度。
作为代表性的熵编码方法的实例,在此引用了霍夫曼编码和距离编码 器(Rangecoder)o (优先级确定过程)
接下来,将用图10所示的流程图说明用于确定优先级的过程。而且, 在以下说明中,采用音频编码/解码装置9111作为发送装置和接收装置。
在存储在ROM 9123的程序中预先指定了关于将频域划分为多少编码 频带的决定,以及关于边界频率设定为多高的决定。关于这些决定的信息由发送侧和接收侧共享。因此,基本上不需要从发送装置向接收装置发送 与这些决定有关的信息。
然而,还可以配置为允许发送装置的用户通过操作键9173进行与编码 频带有关的配置。在此情况下,可以配置为从发送装置发送与编码频带数 量及其边界频率有关的信息,来通知接收装置。可替换地,可以配置为用 户通过操作键9173改变该配置,以使得接收装置的配置变为与发送装置的 配置相同。另外,在发送装置或接收装置允许例如上述的用户配置的情况 下,配置为将由用户决定的各种配置值存储在存储单元9125中,并且存储 在ROM 9123中的程序从存储单元9125读取所述各种配置值。
依据预先决定的每一频带的编码频带数以及边界频率的缺省值,可以 配置为缺省值被按照原样采用,或者其可以根据帧而变化。另一方面,对 于与将哪一个优先级号分配给哪一个编码频带有关的信息,必须在对应于 每一帧或MDCT块的每一个时间期间,或者换句话说,为每一个单一频谱, 通过优先级确定过程来作出决定。
如上所述,CPU 9121已经连续地从低频侧为各个编码频带分配了频带 号。在这一点上,CPU 9121将频带号与优先级号相关联。
将区分用于处理的编码频带的变量(频带判别变量)表示为"CRNC。
CPU 9121依据存储在ROM9123中的程序,准备好用于存储"crncj的计数 器寄存器,并设定初始值"crn(^1 (步骤S1011)。换句话说,从低频侧连 续地进行这个处理。
接下来,CPU 9121从存储单元9123将属于具有编号coo^ci的编码频带 的全部MDCT系数X(" crng,1)…X( " CRNG,r(" crng))装入通用寄存器(步骤 S1013)。
在此,r(cocR^)表示在具有编号cocRNCJ的编码频带内的MDCT系数的 总数。但如果采用使编码频带与中间段频带相同的实施例,则实际上就是
f( w CRNG)=q( 00 CRNG)。
在本实施例中,作为一个实例,将属于特定编码频带的MDCT系数的 总和作为该编码频带中的总能量,并且总能量越高,则重要性级别就越高。 而且,由于在MDCT系数中有可能包括负数,因此优选地取MDCT系数的 平方和。然而,在本实施例中假定MDCT系数都是正数,因此简单地求和。因为频谱特性定性地出现在大能量部分中,诸如例如频谱峰值部分, 因此这个重要性级别确定方法是适当的。
CPU 9121计算具有编号COcRNG的编码频带的总能量g(0)CRNG)(步骤
S1015):
g( " CRNG)= X( " CRNG,l) +".+X( " CRNG,q( W C画))
CPU 9121将计算结果存储在存储单元9125中(步骤S1017)。
还可以配置为将通过向计算的g("cR恥)添加设定的加权系数而获得的
值作为总能量。在此情况下,考虑这样的事实是有益的人听力对于低频
声音是敏感的,添加随低频而增大的加权系数。例如,将小于500Hz的编 码频带的总能量乘以加权系数1.3,将等于或大于500Hz但小于3500Hz的 编码频带乘以加权系数U,将等于或大于3500Hz的编码频带乘以加权系 数1.0。即使在低频侧的最低编码频带的能量和在高频侧的最高编码频带的 能量恰好具有完全相等的数值,在考虑到人听力感觉的特性时,低频侧的 重要性级别是较高的。换句话说,如果码长度具有限度,通过增加低频侧 的加权,并随后进行编码,提高了在接收装置回放的音频的质量。
而且,改变加权系数的边界频率与编码频带的边界频率不是必须严格 匹配的。在多个加权系数存在于同一编码频带中的情况下,属于中间段频 带的各个MDCT系数根据频率来乘以加权系数,随后可以计算总能量。
接下来,CPU9121确定是否对所有编码频带的处理都已完成,换句话 说,是否已完成对于高频侧上最高编码频带的处理(步骤S1019)。如果仍 未完成(步骤S1019;否),就将cocR^增大1,以处理高频侧上的下一个 编码频带(步骤S1021),且过程返回到步骤S1013。
如果已完成对于全部编码频带的处理(步骤S1019;是),就将所有编
码频带的总能量g(l)到g("MaxCRNC)存储到存储单元9125中。"MaxCRNC是 "CRNG的最大值。CPU9121将全部总能量g(l)到g("MaxCRNG)都装入通用寄 存器,以降序对其它们进行排列,并以总能量降低的顺序配置高优先级(步
骤S1023)。优先级P的频带号表示为"cRMj(P)。
CPU 9121将计算结果cocRM3 (P)分别存储在存储单元9125中(步骤 S1025)。
而且,还可以对要发送到接收装置的一个帧中的编码频带的总数设定
31一个上限值,仅将优先级分配给不超过该上限值的程度。例如,如果在1
帧中有10个编码频带,且上限值是5,就可以分配第1到第5优先级,并 省略第6和以后的优先级。 (熵编码过程)
接下来,会用图ll所示的流程图来详细说明熵编码过程。 首先,CPU9121依据图IO所示的过程分别向编码频带分配优先级(步 骤Sllll)。
接下来,CPU 9121依据存储在ROM 9123中的程序,设定计数器PMAX, 其表示可以对高达哪一个优先级的编码频带进行编码,并设定初始值1 (Pmax=1)(步骤S1113)。
接下来,CPU 9121从存储单元9125装入对应于第1到第PMAX优先级 的编码频带的经过重新量化和比特移位的MDCT系数(步骤S1115)。分别 按如下表示MDCT系数X:
Xqbs( " crng (1), 1),…,Xqbs( " crng (1 ),q( " crng( 1 ))),
XqbS( " crng (PmAX), 1 ),…,Xqbs( " crng (PMAX),q( " CRNG(PmAX)))
下标QBS表示MDCT系数已经被重新量化并进行了比特移位。
为了在接收装置上恢复音频,移位比特数也是必需的。与编码频带无 关地决定在其中使用比特移位的中间段频带。因此,CPU9121就必须评估 要编码的编码频带与中间段频带重叠的方式,并为每一个中间段频带获得
移位比特数。因此,CPU 9121装入全部中间段频带"RAM3E的移位比特数 ShiftBit(" range),其中这些中间段频带与对应于第1到第pmax优先级的编
码频带重叠。另外,CPU9121装入在动态范围调整过程期间所用的移位比 特数(步骤S1117)。
接下来,CPU9121对以下进行熵编码(1)经过重新量化和比特移位 的MDCT系数Xqbs, (2)通过比特移位过程获得的移位比特数,以及(3) 通过动态范围调整过程获得的移位比特数,并计算获得的熵编码数据的码 长度(步骤S1119)。
接下来,CPU 9121确定在步骤S1119所计算的码长度是否比预定码长 度长(歩骤S1121)。所设定的码长度是根据通信量的限制等等而确定的一
32个长度。由于溢出等原因,超过该设定的码长度的代码不能被正确发送到 接收装置,因此传输码长度必须是或低于设定的码长度。
在所计算的码长度并未超过设定的码长度的情况下(步骤S1121;否), 通信量仍有空间,因此有可能编码按照优先级方式的下一个编码频带。因
此,将Pmax増大1 (步骤S1123),并且过程返回到步骤S1115。
在所计算的码长度超过了设定的码长度的情况下(步骤S1121;是),
此时不能正确发送最大到具有第PMAX优先级的编码频带的信息。然而如果 信息是最大到具有PMAX前一个优先级的编码频带的,它就应是或小于设定
的码长度。因此,CPU 9121将Pmax減小1 (步骤S1125),将以下作为熵
编码数据(1)对应于第1到第PMAX优先级的编码频带的经过重新量化和
比特移位的MDCT系数,(2)通过比特移位处理获得的比特数,以及(3) 通过动态范围调整过程获得的移位比特数,并将其存储在存储单元9125中
(步骤S1127)。
以此方式产生的熵编码数据变为可以发送到接收装置。
(编码过程)
图12A是在根据本实施例的音频编码/解码装置9111作为发送装置的 情况下,概括了用于音频信号编码处理的过程的概要的图示。
音频处理单元9141 A/D转换由麦克风9151收集的音频信号(步骤 S1211),并去除其直流成分(步骤S1213)。
接下来,CPU 9121为每一帧(音频压缩的部分)调整动态范围(步骤 S1215)。在原始动态范围大于一个预定限度值的情况下,用信号值除以2 的幂,即执行右比特移位操作,以减小数据量。 一直到这一点的处理都是 在实时域中进行的。
对于每一帧或MDCT块,CPU9121都进行到频域的变换(步骤S1217)。
存在离散频率变换的许多技术,但在本实施例的情况下,采用了 MDCT。 以与第一实施例相同的方式,CPU 9121计算经过重新量化和比特移位的 MDCT系数和移位比特数。
COU9121确定要进行熵编码的编码频带(步骤S1219)。 CPU9121进 行熵编码(步骤S1221)。 (解码过程)
33当起到接收装置的作用时,音频编码/解码装置9111遵循图12B所示的 过程。这基本上是图12A中用于编码处理的过程的反向。
实际音频信号是一系列的多个帧。通过在连续链中执行上述的各种步 骤,可以实时地回放音频。这个技术自身是已知的,且不是本发明的要点; 因此,在此将说明对1个帧的处理。
稍后将用图13和14说明更详细的过程;首先,在此将说明解码过程 的概要。
无线通信单元9161在天线9163接收从发送装置发送的无线电磁波, CPU 9121获得熵编码数据。
CPU 9121将获得的熵编码数据存储在存储单元9125中。依据存储在 ROM9123中的程序,CPU9121解码所述熵编码数据(步骤S1241)。对于 熵编码方法有几种是已知的,例如霍夫曼码和距离编码器等,但会认识到 每一种方法都与解码方法构成一对。因此,会使用与用于在发送侧的编码 中及装置9111中的熵编码公式构成一对的解码方法。CPU 9121获得用于音 频恢复的必要数据,例如MDCT系数和移位比特数(步骤S1243)。
如上所述,在音频频谱的编码期间,优先对被推断为具有高度重要性 级别的频带进行编码。因此,并不总是将频谱的所有部分都发送到接收装 置的情况。CPU9121将音频频谱中没有被发送的频带(换句话说,没有由 发送装置编码的频带的MDCT系数)视为0。
CPU 9121将音频频谱从频域变换到实时域(步骤S1245)。将单一频谱 变换为单一 MDCT块的实时信号。
如上所述,对于实时域中的帧(音频压縮的部分),优选地包括大约3-4 个块。然而,为了易于理解本发明,假定单一帧仅包括单一MDCT块。
作为由发送装置在步骤S1215中执行的动态范围调整的结果,有可能 在步骤S1245中获得的实时域音频信号与原始音频信号不同。因此,CPU 9121基于来自在步骤S1243中获得的动态范围调整过程的移位比特数,恢 复动态范围(步骤S1247)。此时,由于是通过限于2的幂的除法来进行该 动态范围调整过程(右比特移位操作)的,因此CPU 9121仅需执行右比特 移位操作。因此,加速了 CPU 9121的处理,并减轻了处理负担。
音频处理单元9141 A/D转换获得的数字音频信号,将其转换为模拟音
34频信号(步骤S1251)。这个模拟音频信号由扬声器9153输出,接收装置的 用户能够收听到音频。
接下来,用图13和14所示的流程图更详细的说明步骤S1243到S1247 的处理。
在步骤S1241, CPU9121熵解码对应于帧fm的以下数据,并将其存储 在存储单元9125中
(1) 对应于第1到第pmax优先级的频带号"CRNG(p) (1《P《PmaX),
(2) 经过重新量化和比特移位的MDCT系数Xqbs("crng(P),I),…, Xqbs( " ,(P),q("薩(P))) (1《P《P匿),
(3) 所有中间段频带"RANGE的移位比特数ShiftBit("RANGE),其中这 些中间段频带与对应于第1到第PMAX优先级的编码频带重叠,
(4) 来自动态范围调整的移位比特数ShiftBit(fin)。
CPU9121依据存储在ROM9123中的程序,将用于区分编码频带的计 数器"CRN(5存储在计数器寄存器中,并设定初始值1 (步骤S1311)。换句 话说,从低频侧连续地恢复频谱。
接下来,CPU9121确定具有编号cocR^的编码频带是否是发送装置中
编码的目标(步骤S1313)。具体而言,给是编码目标的编码频带分配优先 级P (1《P《Pmax)。因此,CPU 9121根据是否为单个编码频带分配了优先 级来作出所述确定。
而且,发送装置还可以将表示决定不对其编码的频带号的信息,或者 大意是可以将一些MDCT系数视为0的信息发送到接收装置。
在确定具有编号C0CRM1的编码频带不是编码目标的情况下(步骤 S1313;否),CPU9121将其MDCT系数设定为0 (步骤S1321):
X ( w c腦,1 )=0,…,X (" c薩,q( w Crng))=0 换句话说,将这个频带的频谱成分视为0。
发送装置优先编码整个频谱中被推断为重要的部分,并发送它们。不 是编码目标的特定频带意味着该频带的频谱的重要性级别相对较低。而且,
如果将这一频带的频谱成分设定为除o以外的适合的设定值对于频谱中具
有高优先级的频带不会有较大影响的话,则就可以如此进行。
另一方面,在步骤S1313,在确定具有编号"cRNc的编码频带是编码的目标的情况下(步骤S1313;是),CPU9121将以下装入通用寄存器中(1) 经过重新量化和比特移位的MDCT系数XQBS(coCRNG,l),…,XQBS("CRNG, q("CRNC)),以及(2)与具有编号"crno的编码频带重叠的全部中间段频带
的移位比特数ShiftBit( " range)(步骤S1315)。
CPU9121去量化所述经过重新量化和比特移位的MDCT系数,解出经 过比特移位的MDCT系数XBS("CRNG,1),, XBS("CRNG,q("CRNG))(步骤 S1317)。
CPU 9121基于在步骤S1315装入的移位比特数,对经过比特移位的 MDCT系数执行逆比特移位转换,解出MDCT系数X( " crng,1),…,X( " CRNG, q("CRNC))(步骤S1319)。由于发送装置为编码过程执行右移位操作,相反 的,接收装置在该步骤执行左移位操作。以此方式,由于除数和乘数都限 于2的幂,因此可以分别仅仅用单一右移位和左移位来执行单一除法和乘 法,因此可以加速编码过程和解码过程。
步骤S1317和步骤S1319的处理总体上与第一实施例的步骤S9643到 步骤S9651的处理相等。
CPU9121确定是否已经计算了整个频域的MDCT系数(步骤S1323)。 在确定仍有具有未计算的MDCT系数的频带的情况下(步骤S1323;否), 将"CRMi的值增大1,以获得用于下一个(相邻于高频侧)编码频带的MDCT 系数(步骤S1325),过程返回到步骤S1313。在确定已经计算了所有频带 的MDCT系数的情况下(步骤S1323;是),过程前进到图14的S1411 。
在下文中,为了简洁,用以下下标代替编号
X(l,l):Xo,
X(l,q(l)):…,
X( w crngmax,q( 03 CRNGMAX)):Xm/2-1 "crncmax是编码频带频带编号的最大值;换句话说,添加到高频侧的最高
编码频带的编号。
CPU 9121用逆MDCT从MDCT系数Xo,…,Xw2-1中恢复经过动态范 围调整并去除直流成分的音频信号xBS,AC(fm,0),, XBs,Ac(fin,M-l)(步骤S14U)。换句话说,将频谱从频谱变换到实时域。fm是用于区分帧的变量。 结果,恢复了如图7C所示的信号。
CPU 9121从存储单元9125装入移位比特数ShiftBit(fm),用于动态范 围调整(步骤S1413)。
接下来,CPU9121通过执行数量为ShiftBit(fin)的左移位操作,恢复经 过去除直流成分的输入信号XAC(fm,O),…,XAc(fm,M-l)(步骤S1415)。换句 话说,将由于动态范围调整过程而改变的振幅恢复到原始振幅。
结果,将信号恢复为类似于图7B所示的信号。音频处理单元9141 D/A 转换获得的数字信号(步骤S1251),并从扬声器9153输出音频。
应意识到,本发明并不限于上述实施例,各种变化例和应用都是可能 的。会理解,前文中作为说明性实例的硬件结构、块结构和流程图并不限 制本实施例。
例如,尽管将音频编码/解码装置9111假定地描述为移动电话,但本发 明能够容易地用于PHS (个人手持电话系统)、PDA (个人数字助理)或者 通常的个人计算机。为了解释目的的上述实施例不是意图限制本发明的范 围。
在不脱离本发明的广泛精神与范围的情况下,可以在此得到各种实施 例和改变。上述实施例意图说明本发明,而不是限制本发明的范围。本发 明的范围由附属的权利要求而不是实施例来显示。
将在本发明权利要求的等价意义内及权利要求内作出的各种修改认为 是在本发明的范围内。
权利要求
1、一种音频编码装置,包括存储单元(9123),其存储表示由多个第一频带组成的音频数据的每一个频带的频率宽度的信息,所述多个第一频带分别与预定比特数相关联;离散变换单元(9121),其通过获得所述音频数据并计算表示每一个频率的音频强度的量化值,将所述音频数据从实时域离散变换到频域;最大值计算单元(9121),其将离散变换得到的频域音频数据划分为具有所述频率宽度的所述多个第一频带,并且计算每一个所划分的第一频带的所计算的量化值之中的最大值;确定单元(9121),其针对每一个所述第一频带,确定用于表示由所述最大值计算单元(1921)计算的最大值所必需的比特数是否超过存储在所述存储单元(9123)中的所述预定比特数;调整单元(9121),其针对每一个所述第一频带,在由所述确定单元(9121)确定所述必需的比特数超过了所述预定比特数的情况下,获得一个除数,并且分别将在该第一频带内的量化值除以这个除数,从而调整所述音频强度,其中这个除数(表示为2的幂的值)是这样的值中的最小值当用所述最大值除以该值时,所述必需的比特数不超过所述预定比特数;重新量化单元(9121),其针对具有预定带宽的多个第二频带中的每一个,以预先确定的精度重新量化由所述离散变换单元(9121)计算的量化值,或者可替换地,重新量化由所述调整单元(9121)调整后的量化值;以及编码单元(9121),其编码、关联并输出由所述调整单元(9121)计算的所述除数和由所述重新量化单元(9121)计算的所述量化值。
2、 如权利要求1所述的音频编码装置,其中所述存储单元(9123)所关联的比特数随着所述频率宽度的中心频率 变小而变大。
3、 如权利要求1所述的音频编码装置,其中所述最大值计算单元(9121)将所述音频数据划分为所述多个第一频带,以使得每一个带宽的对数从低频侧连续地线性增大。
4、 如权利要求1所述的音频编码装置,其中所述重新量化单元(9121)进行重新量化,以使得重新量化精度随着所述多个第二频带之一靠近低频侧而增大。
5、 如权利要求1所述的音频编码装置,其中所述重新量化单元(9121)分别计算由所述调整单元(9121)调整后的量化值的对数,并重新量化所述对数。
6、 如权利要求1所述的音频编码装置,其中所述重新量化单元(9121)划分并重新量化所述音频数据,所述划分是划分为具有所述预定带宽的所述多个第二频带,并且其中,每一个频带的对数从低频侧连续地线性增大。
7、 如权利要求1所述的音频编码装置,其中-所述重新量化单元(9121)将所述音频数据划分为至少三个所述第二频带,即低频频带、中频频带和高频频带,并且所述划分使得在所述中频频带与所述高频频带之间的边界频率是所述音频数据的上限频率的一半。
8、 如权利要求1所述的音频编码装置,其中所述编码单元(9121)针对多个由一个或多个所述第一频带组成的第三频带中的每一个,计算包含在该频带中的量化值的平方值的总和值,从计算得到的最大总和开始以降序确定优先级,并且以优先级的降序方式对在所述多个第三频带内的量化值进行熵编码。
9、 如权利要求8所述的音频编码装置,其中所述编码单元(9121)计算每一个总和值乘以一个预定值的数值,该预定值随着所述总和值靠近低频侧而增大,并且从计算得到的最大总和开始以降序方式确定优先级。
10、 如权利要求1所述的音频编码装置,其中所述离散变换单元(9121)通过使用MDCT (改进的离散余弦变换) 来计算所述量化值。
11、 一种音频解码装置,包括接收单元(9161),其接收编码数据,该数据由预定编码方法编码,并包括以下内容量化的音频数据,该量化的音频数据的信号强度由针对多个第一频带中的每一个而被调整后的量化值表示;以及数值参数,其表示为2的幂,并且与为所述音频数据配置的多个 设定的第二频带中的每一个频带相关联;解码单元(9121),其通过使用对应于所述预定编码方法的解码方法, 将所述编码数据解码为所述量化的音频数据和所述数值参数;强度恢复单元(9121),其针对所述多个第二频带中的每一个,将该频 带内的已解码的所述量化值乘以与该频带相关联的已解码的所述数值参 数,从而恢复所述音频数据的音频强度;以及离散逆变换单元(9121),其针对所述多个第一频带中的每一个,将恢 复强度后的所述音频数据从频域变换到时域。
12、 一种在音频编码装置中执行的音频编码方法,该音频编码装置具 有存储单元(9123),所述存储单元(9123)存储表示由多个第一频带组成 的音频数据中的每一个频带的频率宽度的信息,所述多个第一频带分别与 预定比特数相关联,所述音频编码方法包括以下步骤获得所述音频数据,并通过计算表示每一个频率的音频强度的量化值, 将所述音频数据从时域离散变换到频域;将离散变换得到的频域音频数据划分为具有所述频率宽度的所述多个 第一频带,并且计算每一个所划分的第一频带的所计算的量化值之中的最 大值;针对每一个所述第一频带,确定用于表示在最大值计算步骤中计算的最大值所必需的比特数是否超过存储在所述存储单元(9123)中的所述预定比特数;针对每一个所述第一频带,在确定步骤中确定所述必需的比特数超过所述预定比特数的情况下,通过求得一个除数并将在该第一频带内的量化值除以这个除数来调整所述音频强度,这个除数(表示为2的幂的值)是这样的值中的最小值当用所述最大值除以该值时,所述必需的比特数不超过所述预定比特数;针对具有预定带宽的多个第二频带中的每一个,以预先确定的精度重新量化在离散变换步骤中计算的所述量化值,或者可替换地,重新量化在调整步骤中调整后的所述量化值;以及编码、关联并输出在调整步骤中计算的所述除数以及在重新量化步骤中)计算的所述量化值。
13、 一种音频解码方法,包括步骤接收编码数据,该数据由预定编码方法编码,并包括以下内容-量化的音频数据,该量化的音频数据的信号强度由针对多个第一频带中的每一个而被调整后的量化值表示;以及数值参数,其表示为2的幂,并且与为所述音频数据配置的多个设定的第二频带中的每一个频带相关联;通过使用对应于所述预定编码方法的解码方法,将所述编码数据解码为所述量化的音频数据和所述数值参数;针对所述多个第二频带中的每一个,通过将该频带内的已解码的所述量化值乘以与该频带相关联的己解码的所述数值参数,恢复所述音频数据的音频强度;以及针对所述多个第一频带中的每一个,将恢复强度后的所述音频数据从频域离散逆变换到时域。
14、 一种计算机可读信息记录介质,包含记录在其上的程序,该程序使得计算机充当-存储单元(9123),其存储表示由多个第一频带组成的音频数据的每一个频带的频率宽度的信息,所述多个第一频带分别与预定比特数相关联;离散变换单元(9121),其获得所述音频数据,并通过计算表示每一个 频率的音频强度的量化值,将所述音频数据从时域离散变换到频域;最大值计算单元(9121),其将离散变换得到的频域音频数据划分为具 有所述频率宽度的所述多个第一频带,并且计算每一个所划分的第一频带 的所计算的量化值之中的最大值;确定单元(9121),其针对每一个所述第一频带,确定用于表示由所述 最大值计算单元计算的最大值所必需的比特数是否超过存储在所述存储单 元(9123)中的所述预定比特数;调整单元(9121),其针对每一个所述第一频带,在由所述确定单元 (9121)确定所述必需的比特数超过所述预定比特数的情况下,获得一个 除数,并且分别将在该第一频带内的量化值除以这个除数,从而调整所述 音频强度,其中,这个除数(表示为2的幂的值)是这样的值中的最小值 当用所述最大值除以该值时,所述必需的比特数不超过所述预定比特数;重新量化单元(9121),其针对具有预定带宽的多个第二频带中的每一 个,以预先确定的精度重新量化由所述离散变换单元(9121)计算的所述 量化值,或者可替换地,重新量化由所述调整单元(9121)调整后的所述 量化值;以及编码单元(9121),其编码、关联并输出由所述调整单元(9121)计算 的所述除数和由所述重新量化单元(9121)计算的所述量化值。
15、 一种计算机可读信息记录介质,包含记录在其上的程序,该程序 使得计算机充当接收单元(9161),其接收编码数据,该数据由预定编码方法编码,并 包括以下内容量化的音频数据,该量化的音频数据的信号强度由针对多个第一 频带中的每一个而被调整后的量化值表示;以及数值参数,其表示为2的幂,并且与为所述音频数据配置的多个 设定的第二频带中的每一个频带相关联;解码单元(9121),其通过使用对应于所述预定编码方法的解码方法,将所述编码数据解码为所述量化的音频数据和所述数值参数;强度恢复单元(9121),其针对所述多个第二频带中的每一个,将该频带内的已解码的量化值乘以与该频带相关联的己解码的数值参数,从而恢复所述音频数据的音频强度;以及离散逆变换单元(9121),其针对所述多个第一频带中的每一个,将恢复强度后的所述音频数据从频域变换到时域。
16、 一种程序,用于控制计算机充当-存储单元(9123),其存储表示由多个第一频带组成的音频数据的每一个频带的频率宽度的信息,所述多个第一频带分别与预定比特数相关联;离散变换单元(9121),其获得所述音频数据,并通过计算表示每一个频率的音频强度的量化值,将所述音频数据从时域离散变换到频域;最大值计算单元(9121),其将离散变换得到的频域音频数据划分为具有所述频率宽度的所述多个第一频带,并且计算每一个所划分的第一频带的所计算的量化值之中的最大值;确定单元(9121),其针对每一个所述第一频带,确定用于表示由所述最大值计算单元计算的最大值所必需的比特数是否超过存储在所述存储单元(9123)中的所述预定比特数;调整单元(9121),其针对每一个所述第一频带,在由所述确定单元(9121)确定所述必需的比特数超过所述预定比特数的情况下,获得一个除数,并且分别将在该第一频带内的量化值除以这个除数,从而调整所述音频强度,其中,这个除数(表示为2的幂的值)是这样的值中的最小值:当用所述最大值除以该值时,所述必需的比特数不超过所述预定比特数;重新量化单元(9121),其针对具有预定带宽的多个第二频带中的每一个频带,以预先确定的精度重新量化由所述离散变换单元(9121)计算的所述量化值,或者可替换地,重新量化由所述调整单元(9121)调整后的所述量化值;以及编码单元(9121),其编码、关联并输出由所述调整单元(9121)计算的所述除数和由所述重新量化单元(9121)计算的所述量化值。
17、 一种程序,用于控制计算机充当接收单元(9161),其接收编码数据,该数据由预定的编码方法编码,并包括以下内容-量化的音频数据,该量化的音频数据的信号强度由针对多个第一频带中的每一个而被调整后的量化值表示;以及数值参数,其表示为2的幂,并且与为所述音频数据配置的多个设定的第二频带中的每一个频带相关联;解码单元(9121),其通过使用对应于所述预定的编码方法的解码方法,将所述编码数据解码为所述量化的音频数据和所述数值参数;强度恢复单元(9121),其针对所述多个第二频带中的每一个,将该频带内的已解码的量化值乘以与该频带相关联的已解码的数值参数,从而恢复所述音频数据的音频强度;以及离散逆变换单元(9121),其针对所述多个第一频带中的每一个,将恢复强度后的所述音频数据从频域变换到时域。
全文摘要
在编码过程中,CPU(9121)将音频信号从实时域变换为频域,并将该信号变换为由多个MDCT系数组成的频谱。CPU(9121)将音频信号划分为几个频带,在每一个频带内执行比特移位,以便可以用预先配置的比特数表示MDCT系数。CPU(9121)针对各个频带以不同的精度重新量化MDCT系数,将由此获得的数值和移位比特数作为编码数据发送。同时,在解码过程中,CPU(9121)接收编码数据,逆重新量化和逆比特移位该数据,从而恢复MDCT系数。而且,CPU(9121)通过使用逆MDCT,将数据从频域变换为实时域,恢复并输出音频信号。
文档编号G10L19/02GK101523485SQ20078003661
公开日2009年9月2日 申请日期2007年9月19日 优先权日2006年10月2日
发明者井手博康 申请人:卡西欧计算机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1