首页> 中国专利> 浮点格式的数字信号的无损编码方法、解码方法及其装置和程序

浮点格式的数字信号的无损编码方法、解码方法及其装置和程序

摘要

由整数格式化部分12通过截断来将浮点格式的信号样本X转换成24位整数格式的信号样本Y,其中每个信号样本X由1位符号S、8位指数E和23位尾数M构成,由压缩部分13将整数值信号样本Y编码成码序列Ca,并且输出码序列Ca。根据在整数值信号样本Y中跟随在最高有效的“1”后的数字位数n,差生成部分14从输入信号样本X的尾数M中提取最低有效的(23-n)位来形成差信号,并且压缩部分17对差信号Z执行加密熵编码来生成码序列Cb并且输出码序列Cb。或者,可以按照原样输出差信号Z而不经压缩。

著录项

  • 公开/公告号CN1781253A

    专利类型发明专利

  • 公开/公告日2006-05-31

    原文格式PDF

  • 申请/专利权人 日本电信电话株式会社;

    申请/专利号CN200480011695.8

  • 发明设计人 守谷健弘;杨戴;

    申请日2004-06-21

  • 分类号H03M7/30(20060101);G10L19/00(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人郭定辉;黄小临

  • 地址 日本东京都

  • 入库时间 2023-12-17 17:16:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-01-25

    授权

    授权

  • 2006-07-26

    实质审查的生效

    实质审查的生效

  • 2006-05-31

    公开

    公开

说明书

技术领域

本发明涉及用于将数字声音、音乐或图像信号压缩成较小信息量的码的编码方法及其装置、相应的解码方法、及其编码装置、解码装置以及程序。

背景技术

作为压缩声音或图像信息的方法,已知的有不引入失真的无损编码方法。

高压缩的无损数据压缩可以通过合并高压缩的有损编码和在从高压缩有损编码的结果再现的信号与原始信号之间的差的无损压缩来实现。在专利文献1中提出了这种合并的压缩方法。下面将对在专利无线中详细描述的该方法进行简要描述。

在编码器中,帧形成部分接连不断地将数字输入信号(又称为输入信号样本序列)分成帧,每帧由例如1024个输入信号样本构成,并且以帧为基础有损地压缩编码这些数字信号。该编码可以基于任何适于输入数字信号的格式,并且可以通过解码再现具有一定保真度(fidelity)的原始数字输入信号。例如,如果数字输入信号是声音信号,则可以使用根据ITU-T推荐标准G.729所推荐的话音编码。如果数字输入信号是音乐信号,则可以使用用在MPEG-4中的变换域加权交织矢量量化(transform-domain weighted interleaved vectorquantization,TwinVQ)编码。从有损压缩编码产生的码进行局部解码,并且生成表示局部解码的信号和原始数字信号之间的差的差信号。然而,实际上并不需要局部解码,相反,可以获得原始数字信号和在有损压缩编码期间生成的量化信号之间的差。差信号的幅度典型地大大小于原始数字信号的幅度。因此,与原始数据信号的无损压缩编码相比,通过差信号的无损压缩编码可以减少信息量。

为了提高无损压缩编码的效率,对于帧中的差信号的所有样本的序列,(每个样本由符号和量值表示(符号和量值的二进制数)表示),在每个位置上的位,即,在MSB、第二MSB、...、和LSB中的每个上的位沿着样本序列(即,时间序列)链接在一起,形成相应的位序列。换句话说,变换了位排列。为了方便起见,将由相等位位置上所链接的1024位组成的位序列称为“并列位序列”(coordinate bit sequence)。另一方面,为了方便起见,将表示包含其符号的每个样本的幅度值的1-字位序列(one-word bit sequence)称为“幅度位序列”。差信号具有小的幅度,因此,最高有效位或者最高有效位和后面的多个位常常全是“0”。通过链接这样的位位置上的位形成的并列位序列是位序列“0”。因此,并列位序列可以由预定的短码表示,这样,可以提高无损压缩编码的效率。

无损地压缩编码并列位序列。作为无损压缩编码,可以使用诸如霍夫曼编码(Huffman coding)和算术编码之类的熵编码,其可以利用相同符号(1或0)连续出现的位序列的出现或频繁出现。

当解码时,解码从无损压缩编码产生的码,并且对解码后的信号执行位排列的逆变换。即,对于每帧,将并列位序列转换成幅度位序列,并且顺序地再现产生的差信号。此外,对由有损压缩编码产生的码进行解码,将解码后的信号和再现的差信号加到一起,然后,将每个帧的和信号顺序地链接到在一起,从而再现原始数字信号序列。

此外,已知的还有多种用于音频或视频信息的、允许无失真的无损编码方法。例如,在非专利文献1中公开了用于音乐信息的无损编码方法。任何现有的方法都是对直接从信号波形得到的PCM信号执行压缩编码的方法。

然而,在音乐记录工作室中,有时以浮点的格式记录和存储波形。浮点格式的任何值被分离成符号、指数和尾数。例如,在图1所示的IEEE 754标准浮点格式中,任何值由32位构成,包括以有效位的降序排列的1位符号、8位指数和23位尾数。用S表示符号,十进制数E表示8位指数值,M表示尾数的二进制数,这样可以以如下的符号和量值二进制表示法来表示浮点格式的值。

>>>>(>->1>)>>S>>×>1>.>M>×>>2>>E>->>E>0>>>>->->->>(>1>)>>>s>

根据IEEE 754标准,E0被定义为E0=27-1=127,从而表达式(1)中的“E-E0”可以是落入下面范围的任何值:

-127≤E-E0≤128这里,定义当E-E0=-127时所有位被设为“0”,而当E-E0=128时所有位被设为“1”。

在声音、音乐或图像信息由浮点格式的数字信号序列表示的情况下,由“0”和“1”组成的位序列由于浮点格式的特性可能是随机的。因此,即使执行上述的位排列变换,熵压缩编码等也难以预期能提供高的压缩比。此外,浮点格式的样本序列与原始的模拟波形大大不同,从而没有由于样本之间的相关性而产生的冗余。因此,即使应用上述非专利文献1中公开的无损预测编码方法,也无法期望更高的压缩比。

专利文献1:日本申请特许公开No.2001-44847

非专利文献1:“Lossless Compression of Digital Audio”by Mat Hans,Ronald W.Schafer et al.,IEEE SIGNAL PROCESSING MAGAZINE,July 2001,pp.21-32

发明内容

本发明的目标是提供用于浮点格式的数字信号的、允许无失真并且具有高的压缩比的无损编码方法、相应的解码方法、其装置和程序。

根据本发明的编码方法和编码器包括:将浮点格式的第一信号样本通过截断转换成整数格式的第二信号样本以便减少其绝对值;无损地压缩所述整数格式的第二信号样本以输出第一码序列并且输出第一码序列;生成与所述整数格式的第二信号样本和所述浮点格式的第一信号样本之间的差对应的、浮点格式的差信号;和生成并输出与所述浮点格式的差信号中能够是非零的位的范围对应的第二码序列,所述位的范围由整数格式的所述第二信号样本中跟随在最高有效的“1”后的数字位数确定。

这样,通过转换成接近原始模拟信号的波形的、整数格式的第一信号,可以通过消除由于样本之间的相关性而产生的冗余的压缩方法来实现高效压缩,并且可以有效地只将在差信号中能够是非零的位作为差信号输出。

根据本发明的解码方法和解码器包括:解码并且展开第一码序列来生成整数格式的第一信号样本;根据由所述第一信号样本中跟随在最高有效的“1”后的位数确定的、能够是非零的数字位数从第二码序列生成浮点格式的差信号;将所述整数格式的第一信号样本转换成所述浮点格式的第二信号样本;和合并所述浮点格式的第二信号样本和所述浮点格式的差信号来生成浮点格式的第三信号样本。

根据本发明,可以有效地压缩浮点格式的数字信号样本序列。此外,可以使用为整数格式的信号样本序列设计的典型的压缩编码模块,并且可以处理整数格式和浮点格式这两者,而不必显著增加处理装置和程序的规模。

附图说明

图1示出根据IEEE-754的32位浮点表示的格式;

图2是根据本发明第一实施例的编码器的功能图;

图3是图解图2所示的整数格式化部分12的操作的图;

图4是示出图2所示的整数格式化部分12中执行的过程的流程图;

图5示出整数值的绝对值和表示该整数值的浮点的尾数的位序列之间的对应关系;

图6示出数字差信号的整数值、符号、指数和尾数之间的关系;

图7是示出数字差信号的序列的要压缩编码的部分的图;

图8是根据本发明第一实施例的解码器的功能图;

图9是根据本发明第二实施例的编码器的功能图;

图10是示出数字调整过程的流程图;

图11是根据本发明第二实施例的解码器的功能图;

图12是根据本发明第二实施例的编码器的变型的功能图;

图13是根据本发明第二实施例的解码器的变型的功能图;

图14A是图解将从浮点信号得到的、浮点格式的输入信号X转换成16位整数值信号的过程的图;

图14B是图解将从24位整数值信号得到的、浮点格式的输入信号X转换成16位整数值信号的过程的图;

图14C是图解将从16位整数值信号得到的、浮点格式的输入信号X转换成16位整数值信号的过程的图;

图15A是示出图9A所示的情况下可以是非零的尾数的位的范围的图;

图15B是示出图9B所示的情况下可以是非零的尾数的位的范围的图;

图16是根据本发明第三实施例的编码器的功能图;

图17是根据本发明第三实施例的解码器的功能图;

图18是图解通过扫描在帧方向上的位来编码尾数的过程的图;

图19示出执行图18所示的编码的压缩部分17的配置;

图20示出对应于图19所示的编码的解码器中的展开部分23的配置;

图21是图解另一种扫描在帧方向上的位的方式的图;

图22是图解另一种扫描在帧方向上的位的方式的图;

图23是图解另一种扫描在帧方向上的位的方式的图;

图24是根据第五实施例的编码器的功能图;

图25是根据第五实施例的解码器的功能图;以及

图26示出实施本发明的计算机的配置。

具体实施方式

[第一实施例]

图2示出了根据本发明实施例的编码器的功能配置。根据该实施例的编码器100包括整数格式化部分12、压缩部分13、差生成部分14和压缩部分17。整数格式化部分12具有数字位数计算部分12A,而差生成部分14包括浮点格式化部分15和减法部分16。例如,信号资源11输出音乐信号样本序列,作为32位浮点格式的输入数字信号样本X(以后也简称为输入信号样本X)的序列。通过对以24位整数格式记录的原始信号执行诸如变换、幅度调整、效果添加和混合之类的处理、以及将作为处理结果的具有小数部分的所得信号转换成浮点格式,从而产生每个数字信号样本X,或者通过将以24位整数格式记录的原始信号转换成32位浮点格式、并且对所得信号执行如上所述的处理,从而产生每个数字信号样本X。

浮点格式的输入样本X输入到整数格式化部分12,并且将每个样本转换成整数格式的数字信号样本Y(下面也简称为整数值信号样本)。如上所述,在上述例子中,常常通过诸如变换、幅度调整、效果添加之类的处理从24位整数格式的原始信号得到数字信号样本X,因而信号的幅度典型地不会大幅度变化。因此,下面将参照图3描述整数格式化部分12截断小数部分的情况。尽管整数格式的数字位数可以是16位、20位等,但在下面描述中假设整数格式的数字位数是24位。

为了表示浮点格式的波形,可以执行标准化使得将整数值32768(=215)标准化为1.0,或者将整数值223标准化为1.0。然而,这些情况与下面描述的情况的不同之处仅仅在于指数值,并没有本质差别。

如果指数值E是例如147,则在其高位侧与小数点相邻的位是从尾数M的MSB起的第20(147-127)位。如图3A所示,在23位尾数M中的最高有效的20位(MI)构成跟随以符号和量值二进制表示法表示的数的整数部分的最高有效的“1”的部分,而尾数M中余下的三个最低有效位(M2)构成以符号和量值二进制表示法表示的数的小数点后的小数部分。下面,MI部分将称为尾数M的整数部分。因此,如图3B所示,如果尾数M向最低有效位位置移位3位使得尾数的整数部分(MI)中的最低有效位位于整个23位尾数的最低有效位,则小数点后的三位(M2)发生溢出,从而截断这三位。这样,在由这样的移位导致的最高有效的三个未占用位(在这个例子中为“000”)中的最低有效位(即,从最低有效位起第21位)被设置为1,其对应于表达式(1)中“1.M”的“1”,从而提供截断的整数值(见图3C)。或者,可以在移位前在23位中的最高有效位MSB的前面添加“1”,可以将得到的24位移位3位。

此外,将得到的整数值转换成2的补码(complement)表示。即,每个浮点格式的数字信号样本X的符号位用作最高有效位,而对于其他23位,如果符号S是“0”(正),则按原样使用图3C所示的23位,而如果符号S是“1”(负),则如图3D所示逻辑反转这23位,即,相互交换值“0”和“1”,然后,将“1”加到最低有效位上。作为最高有效位,按原样使用符号位S。这样,如图3E所示,获得以补码表示法表示的24位整数格式的信号样本Y。

上面描述通常是根据下面假设进行的:尾数M包含对应于小数部分的0或更多位,并且将32位浮点格式的数字信号样本转换成24位整数格式的数字信号样本。然而,例如在多个24位整数格式的原始信号混合在一起来处理的情况下,一个样本可能具有比24位可以表示的最大值大得多的幅度值。在E≥150的情况下,作为例外处理,在上述例子中将指数值E固定为150(E=127+23=150),提供例外信号y给差生成部分14,并且将“1M”(尾数M其前面加有“1”)的最高有效的23位转换成2的补码表示,来产生24位整数格式的信号样本Y。或者,如稍后将参照另一实施例所述的,为了每个帧都落入适当的整数值范围,可以使用调整值ΔE调整浮点数的指数,并且调整值ΔE可以被编码为辅助信息。

整数格式化部分12执行例如图4所示的处理。首先,确定指数E是否等于或大于150,即,整数部分是否由23或更多位组成(S1)。如果整数部分由少于23位组成,则数字位数计算部分12A确定尾数的整数部分的数字位数n(n=E-E0)并且输出结果(S2)。然后,尾数M向最低有效的位置移位(23-n)位以使小数部分发生溢出,并且在从由n位组成的所得的整数部分的最低有效位看的第(n+1)位的位置上放置“1”(S3)。然后,在第(n+1)位前的其余位的位置上放置“0”,使得整个尾数由233位组成,并且根据符号位S,将得到的23位转换成以2的补码表示法表示的24位整数格式,从而生成整数格式的信号样本Y(S5)。更具体地说,按原样使用符号S作为最高有效位,而对于其余的23位,如果符号S是“0”(正),则按原样使用由在步骤S3中移位和对从最低有效位起的第(n+1)位加“1”而得到的整数部分中的、从最低有效位到第23位的位,而如果符号S是“1”(负),则反转由移位和加“1”得到的整数部分中的、从最低有效位到第23位的位,并且将“1”加到得到的23位的最低有效位上,以提供补码表示的值。如果在步骤S1中指数等于或大于150,则在步骤S4中设置指数值E为150,然后,在步骤S5中由“1M”的最高有效的23位生成整数格式的信号样本Y。

在上面描述中,将尾数M移位(23-n)位以提供以符号和量值二进制表示的24位整数值样本。或者,可以提取如图3A中MI所示的尾数M的最高有效的n位(n=E-E0),在n位的前面加“1”以形成图3C所示的位数(n+1),在这(n+1)位的前面加上(22-n)位“0”来形成位数23,然后在这23位的前面加上符号位S来形成位数24。

如上所述由整数格式化部分12产生的、整数格式的数字信号样本Y的序列作为整数值,在压缩部分13中由使用与波形等的相关性的有效的无损压缩方法进行压缩编码,然后作为码序列Ca输出。例如,如在上述非专利文献1中所披露的,可以通过计算每个样本值和预测值(整数值)之间的差、如在“背景技术”部分中所述的那样变换这些差的序列的位排列、然后对得到的序列(即,并列位序列)执行熵编码来实现压缩部分13中的无损压缩。即,整数值信号样本Y的序列接近原始模拟信号波形,来自信号源11的输入数字信号样本X是从后者得到的。因此,可以通过预测或变换来消除由于信号样本之间的相关性而导致的冗余,高效地无损压缩编码输入样本X的序列。

差生成部分14生成差信号(误差)Z,其指示整数值信号样本Y和来自信号源11的、相应的浮点格式的输入信号样本X之间的差。在该例子中,浮点格式化部分15再次将整数值信号样本Y转换成浮点格式的信号样本Y’,减法部分16从浮点格式的原始输入信号样本X中减去得到的浮点格式的信号样本Y’,从而生成浮点格式的差数字信号Z。

在整数格式的数字信号样本由24位组成的情况下,浮点格式化部分15可以将数字信号没有歧义或例外地转换成32位浮点格式的输入信号。如上所述,浮点格式的原始数字信号样本X的指数E容易等于或小于149,而在这种情况下,指示数字信号样本Y’和浮点格式的原始输入信号样本X之间的差的差信号Z等于原始输入信号样本X的小数部分的值。

上述关于差生成部分14的描述仅仅意图帮助理解本发明,而实际上并不需要将整数值信号样本Y转换成浮点格式。输入样本X及其位数的整数部分的数字位数n输入到差生成部分14,如果没有提供例外信号y,则分别使用每个浮点格式的输入样本X的符号S、指数E和尾数M的最低有效的(23-n)位作为每个差信号样本Z的符号S、指数E和尾数的最低有效的(23-n)位,并且将尾数其余的最高有效的n位全部设置为“0”。尾数的整数部分的数字位数n(n=E-E0)等于整数值信号样本Y中的最高有效的“1”后的数字位数。如果提供例外信号y,则差信号样本Z的符号由输入信号的符号S构成,差信号样本Z的指数被设为E-150,而差信号样本Z的尾数由输入样本X和信号样本Y’之间的差构成。

压缩部分17对每个整数值信号样本Y和相应的浮点格式的输入样本X的差信号Z(即,来自差生成部分14的浮点格式的差信号Z)执行无损压缩编码,并且输出码序列Cb。压缩部分17使用从整数格式化部分12输出的尾数的整数部分的数字位数,仅对浮点格式的差信号Z中这些可以对每个样本假设“0”之外的值的数字执行无损压缩编码。每个浮点格式的输入样本X如下表示:

X=1.M×2n=Xw.XF假设Xw=1MI(MI在其前面加有“1”)表示二进制表示的整数部分,而XF=MF表示小数部分,对应于尾数M中整数部分MI的位和对应于小数部分(十进制值)MF的位如图5所示相互关联。在该图中,尾数M被示为包括在表达式(1)中加在M前面的一位的24位的值,并且为了方便起见示出以符号和量值二进制表示的小数点PD的位置。

当整数绝对值Xw是0时,表达式(1)可以被分成两种情况:E-E0=-127的情况和-126≤E=E0≤-1的情况。前一情况是E=0的特殊情况,其中尾数M的所有23位“x23…x1”构成小数部分MF,而输入信号样本X的23位尾数M按照定义为全“0”。在-126≤E=E0≤-1的情况中,尾数构成小数部分,但不是其所有位都是“0”。在任何情况中,在E-E0假设是负值的情况下,整数值信号样本Y的所有位是“0”,并且差信号Z与输入样本X相同,从而浮点格式的信号样本X的所有32位将被编码。

当整数绝对值Xw为1时,在比尾数M的第23位高一位的位置上的位“1”(下面称为第24位)表示整数部分Xw,而尾数M的23位“x23…x1”表示小数部分MF

当整数绝对值Xw是2到3时,由第24位“1”和第23位x23组成的两位“1x23”表示整数值Xw,其中位x23表示尾数M中的整数部分MI,而其余的22位“x22…x1”表示小数部分MF

当整数绝对值Xw是4到7时,由第24位“1”、第23位x23和第22位x22组成的三位“1x23x22”表示整数值Xw,其中位“x23x22”表示尾数M中的整数部分MI,而其余的21位“x21…x1”表示小数部分MF

当整数绝对值Xw是2k-1到2k-1时,由第24位“1”和位“x23x22…x23-(k-2)”组成的k位表示整数值Xw,其中位“x23x22…x23-(k-2)”表示尾数M中的整数部分MI,而其余的(23-k)位“x23-(k-1)…x1”表示小数部分MF

由于差信号Z是通过从32位浮点格式的输入样本X中减去由整数值信号样本Y转换来的32位浮点格式的样本Y’而生成的,因此差信号Z如图6所示。在整数绝对值Xw是0的情况(对应于上述E-E0假设为负值的情况)下,差信号Z的符号S、指数E和尾数M全部与输入样本X的相同。

在整数绝对值Xw是1的情况下,样本Y’的符号S和指数E与样本X的相同,而样本Y’的尾数M是0。在这种情况下,同样执行指数的减法。这样,由于样本Y’的符号和指数与样本X的相同,因此差信号Z的符号S和指数E总是为0,并且差信号Z的尾数M与样本X的尾数M相同。

在整数值Xw是2到3的情况下,样本Y’的符号S和指数E与样本X的相同,而对于样本Y’的尾数M,其第23位x23与样本X的尾数M相同,而其构成小数部分“x22…x1”的位为全零。因此,差信号Z的符号S和指数E总是为0,尾数M中的最高有效位(第23位)总是为0,而构成小数部分“x22…x1”的其余位与样本X的各自对应的位相同,并且随着样本X而变化。

类似地,在样本X的整数值Xw是2k-1到2k-1的情况下,差信号Z的符号S和指数E总是为0,而对于其尾数M,对应于样本X的尾数M的整数部分的最高有效的(k-1)位(第23位)“x23…x23-(k-2)”总是为0,而其余23-(k-1)位“x23-(k-1)…x1”与样本X的尾数M的各自对应的位相同,并且随着样本X而变化。差信号Z的可以是非零的数字位数h(h=23-n)是根据整数格式的数字信号样本Y的整数值的范围(即,整数值的数字位数n)确定的。

由于这种关系,压缩部分17使用从整数格式化部分12输入的尾数的整数部分的数字位数n,仅对浮点格式的差信号Z中可以是非零的最低有效的h(h=23-n)位执行无损压缩编码。即,如果尾数的整数部分的数字位数n是0,则指数E和尾数M的所有位被无损地压缩编码,而如果数字位数n不是0(n≠0),则仅无损地压缩编码尾数M的最低有效的h(h=23-n)位。通过上述描述,应当理解,可以通过向差生成部分14输入输入信号样本X和尾数的整数部分的数字位数n来生成差信号Z。

如上所述,当输入信号样本X的表达式(1)中的E-E0的值是从-127到0时,差信号Z与输入信号样本X相同。因此,压缩部分17与差信号Z一样编码输入信号样本的32位。当E-E0的值是1到22时,在例如图7所示的差信号样本序列Z(=z1,z2,z3…)的情况下,仅编码由可以是非零的位构成的部分MD,n≠0的情况除外。可以通过对可以是非零的h位进行熵编码(例如霍夫曼编码),或者通过全体位的通用编码来实现对可以是非零的位的编码。即,只有图7中阴影部分可以被恰当地分组成样本或帧并且简单地以样本或帧为基础进行无损压缩编码(例如熵编码)。符号包含在作为编码整数格式的数字信号样本Y的结果的码Ca中,因而,当编码差信号Z时不需要编码和发送符号S。此外,由于在接收方侧可以由整数值信号样本Y的、除了符号位之外跟随在最高有效的“1”后面的位数n来确定n=E-E0,因此不需要发送位数n。

差信号Z有时在小数点后有大量的数位,在这种情况下,可能降低编码效率。因此,可以将差信号Z中可以是非零的位作为码序列Cb不经编码地输出。或者,比较在执行编码的情况和不执行编码的情况之间的差信号Z的信息量,并且可以选择信息量较小的差信号Z。

如上所述,在浮点格式的数字信号样本X的指数E保持E≥150的例外情况下,整数格式化部分12提供用于指示指数E固定为150的例外信号y给差生成部分14,并且差生成部分14生成浮点格式的差信号Z,其指数由固定的指数值150和数字信号样本X的指数E之间的差(E-150)构成,而其尾数由尾数M的差构成。压缩部分17无损地压缩编码差信号Z并且输出得到的码序列Cb。

图8示出根据本发明的该实施例的、与图2所示的编码器100相关的解码器200。

在展开部分21中无损地展开解码输入码序列Ca。该无损展开解码对应于在图2所示的压缩部分13中执行的无损压缩编码,并且将执行无损压缩编码的逆处理。因此,该无损展开解码生成24位整数格式的数字信号样本Y。此外,展开部分21中的数字位数输出部分21A确定在每个展开解码后的样本中跟随在最高有效的“1”后的数字位数n,作为相应浮点格式的样本的尾数的整数部分的数字位数,并且将数字位数n提供给展开部分23。

展开部分23无损地展开解码输入码序列Cb。该无损展开解码对应于在图2所示的压缩部分17中执行的无损压缩编码。因此,在展开部分23中,组装部分23A对每个样本,根据数字位数n,将展开解码后的位的序列组装成32位浮点格式的差(误差)信号Z,并且输出得到的差信号Z。在差信号Z从图2所述的编码器100的压缩部分17未经编码地输出的情况下,在解码器200中的展开部分23处接收的码序列Cb按原样用作差信号Z。

根据对从展开部分21提供的第一样本的数字位数n,如果对第一样本的数字位数n,n=0不成立,则组装部分23A从由展开部分23展开解码的位序列的23位尾数M中提取最低有效的(h=23-n)位,并且将提取处的h位组装成32位浮点格式的差信号z1,其由图7所示的第一样本z1的阴影部分构成。1位符号S和8位指数E全部被设置为0,并且将构成对应于图7所示的整数部分的尾数M的部分MI的所有位被设置为0。对于下一样本,根据数字位数n(n≠0),从展开解码后的位序列中提取h(h=23-n)位来形成32位浮点格式的差信号Z。类似地,连续组装并输出图7所示的样本序列z2,z3…。如果n=0成立,则从展开解码后的位序列中提取8位指数E和23位尾数M,并且将其组装成浮点格式的数字信号。解码后的差信号Z的符号位S总是为0,除了n=0的情况外其指数E的位总是为0,其尾数M的最低有效的h(h=23-n)位可以是非零,而其尾数M的其余位总是为0。因此,要注意的是,尽管差信号严格意义上说不是浮点的表示法,但还是将差信号称为浮点格式的差信号。

由浮点格式化部分22将来自展开部分21的24位整数格式的数字信号样本Y转换成32位浮点格式的数字信号样本Y’。合并部分24合并数字信号样本Y’与来自展开部分23的浮点格式的相应差信号Z,来再现浮点格式的数字信号样本X。每个再现的数字样本X的符号与数字信号样本Y’的相同,即,与解码后的整数格式的数字信号样本Y的符号相同。除了n=0的情况外,样本X的指数E与信号样本Y’的相同,尾数M的最高有效的n(n=23-h)位与信号样本Y’的尾数的最高有效的n位相同,而其其余的最低有效的h(h=23-n)位与差信号Z的最低有效的h位相同。

[改进实施例]

有时会出现这样的情况,即为了方便的目的将原始24位或16位整数值PCM信号转换成浮点数来形成要编码的序列,而不是使用普通的浮点数信号生成要编码的序列。在这种特殊的浮点序列的情况中,不出现参照第一实施例的、如上所述的可以是非零的位。因此,来自差生成部分14的浮点格式的差(误差)信号Z的符号S、指数E和尾数M全是零,因而不需要发送差信号Z。例如,这意味着两个位被用作辅助信息,如果这两个位是“00”,则意味着原始数据信号是16位整数值信号样本,如果这两个位是“01”,则意味着原始数据信号是24位整数值信号样本,这两个位是“10”,则意味着原始数据信号是与上面所述的不同的信号样本。通过在从压缩部分13输出的码序列Ca前面加上这两位辅助信息、在前两种情况中禁止码序列Cb、并且在后一情况下允许码序列Cb,可以实现有效压缩。

[第二实施例]

在上面对图2所示的实施例的描述中,对指数E有E≥150的例子执行例外处理。然而,如前面简要描述,可以以帧为基础执行数字调整来避免E≥150的情况。下面将参照图9描述一个实施例,其中执行数字调整以便在帧中的样本的指数E的最大值落入150>E≥150-K的范围中。

图9是根据本发明的第二实施例的编码器100的功能图,与图2中对应的部分用与图2相同的附图标记表示。根据第二实施例,样本序列划分部分31将浮点格式的数字信号样本X的序列划分成预定样本数量的块,或者划分成帧,而数字调整部分32对每个划分出的单元的指数E执行数字调整,使得整数格式的数字信号样本Y的数字位数落入适当的范围,即,如下所述,从数字信号样本X转换的整数格式的数字信号样本的数字位数变得等于或小于24。

(a)如果具有大的幅度和大于150的指数E的浮点格式的数字信号样本X被转换成整数格式的24位数字信号样本Y,则丢失由数字信号样本X的尾数M的一个或多个最低有效位表示的信息。另外,如果具有大的幅度和接近150的指数E的浮点格式的数字信号样本X被转换成整数格式的数字信号样本Y,则样本的数值常常超过24位整数值。为了避免这些,对于每个划分出的单元,数字调整部分32从数字信号样本X的指数E中减去调整信息ΔE以使得指数E的值等于或小于150。

(b)如果具有小的幅度的浮点格式的数字信号样本X被转换成整数格式的24位数字信号样本Y,并且24位数字信号样本Y中的除去符号位S的最高有效的21到23位(最高有效位)全是“0”,幅度仅可以用大约2位表示。这样,整数格式的数字信号样本Y的序列的波形与模拟波形不接近,因而不能获得转换成整数格式的数字信号样本Y的优点,即,以高压缩比无损压缩编码的优点。此外,在整数格式的数字信号样本Y的幅度值由大约两个其最低有效位表示的情况下,如果信号样本Y被转换成浮点格式的数字信号,则得到的数字信号的尾数M的几乎所有位都可能为“0”。例如,它们全部为“0”,或者除了最高有效位为“1”之外全部为“0”。另一方面,即使信号样本X的幅度小,浮点格式的输入数字信号样本X的尾数M也可以假设为大值。因此,浮点格式的差信号的尾数M(其对应于与浮点格式的数字信号样本X的尾数的误差(差))可能有大的幅度。即,对所有样本减少了为“0”的位数,从而不能提高压缩效率。

为了避免这种问题,数字调整部分32将调整信息ΔE加到每个划分出的单元的每个指数E上,使得整数格式的数字信号样本Y中包含尽可能多的由尾数M表示的信息。在这种情况下,由转换成整数格式而产生的一个样本的尾数应当不大于24。

可以对每个划分出的单元改变数字调整部分32中的调整信息ΔE(任何符号的整数)。数字调整部分32找到每个划分出的单元中的最大一个指数E,并且为该划分出的单元确定调整信息ΔE,使得在保持整数格式的一个样本的位数等于或小于24的同时可以尽可能多地利用由尾数M表示的信息。

图10示出由数字调整部分32对每帧执行的数字调整的过程。该图示出了样本序列划分部分31以NF个样本划分样本序列、并且以NF个样本为单元执行数字调整。

在步骤S1中,接收NF个输入样本,并且在步骤S2中,值i最初被设为1(i=1),值ΔE0最初被设为一个不可能的、足够小的值,例如-150(ΔE0=-150)。

在步骤S3中,从第i个样本的指数Ei减去150来生成差ΔEi

在步骤S4中,确定差ΔEi是否大于前面的第(i-1)个样本的差ΔEi-1。如果差ΔEi不大于差ΔEi-1,则处理继续到步骤S6。

如果在步骤S5中差ΔEi大于差ΔEi-1,将差ΔEi当作最大差△Emax并且将其临时存储。

在步骤S6中,确定是否i=NF。如果确定i不等于NF,在步骤S7中i的数量加1,然后,处理返回步骤S3。

如果在步骤S6中确定i=NF,则在步骤S8中读出最大差ΔEmax,并且确定差ΔEmax是否等于或大于1。如果差ΔEmax等于或大于1,则处理继续到步骤S10。

如果在步骤S8中差ΔEmax小于1,则在步骤S9中确定差ΔEmax是否等于或小于-K,其中K是等于或大于1的预定的整数。如果差ΔEmax等于或小于-K,则处理继续到步骤S10。

在步骤S10中,使用最大差ΔEmax作为校正信息ΔE,根据关系Ei’=Ei-ΔE调整NF样本的每个的数字,将调整数字后得到的NF个样本提供给整数格式化部分12,该样本包含得到的Ei’替代原始的E’,然后结束处理。如果在步骤S9中差ΔEmax大于-K,则结束处理。

这样,如果在步骤S8中差ΔEmax等于或大于1,则意味着数字信号样本X的幅度大,并且指数E大于150。如果在步骤S9中差ΔEmax等于或小于-K,则意味着数字信号样本X的幅度小,并且波形近似的程度很差。例如,K可以被设为从20到22的值。

与第一实施例中一样,经过这样的数字调整后的浮点格式的数字信号样本在整数格式化部分12中被转换成整数格式的数字信号样本Y,并且在压缩部分13中无损压缩编码该信号样本Y的序列以产生码序列Ca。此外,对于差信号Z,与第一实施例中一样,在压缩编码部分17中编码可以是非零的尾数M的位,并且输出码序列Cb。

为了使解码可以无损地再现编码前浮点格式的原始数字信号样本X,辅助编码部分33对包括用于指示加或减的符号的调整信息ΔE进行编码,来生成辅助码序列Cc。

在图9所示的实施例中,差生成部分14中的反数字调整部分34通过相应划分出的单元的调整信息ΔE对整数格式的数字信号序列Y执行反数字调整。即,如果数字调整部分32添加了负调整信息ΔE(如果在步骤S10中ΔE为负),则反数字调整部分34将相应的数字信号样本除了最高有效位之外的23位向最低有效的位置移位ΔE位,并且用“0”填充由于移位而产生的未占用的位位置。如果数字调整部分32添加了正调整信息ΔE(如果在步骤S10中ΔE为正),则反数字调整部分34将相应的数字信号样本除了最高有效位之外的23位向最高有效的位置移位ΔE位,换句话说,使得发生ΔE位的溢出,并且用“1”填充由于移位而产生的未占用的最低有效的位位置,使得位数为23+ΔE。

由浮点格式化部分15将经过反数字调整的整数格式的数字信号样本Y转换成浮点格式的数字信号样本Y’。减法部分16获得浮点格式的数字信号样本Y’和浮点格式的原始数字信号样本X之间的差Z。由压缩部分17无损地压缩编码差信号Z,并且输出得到的码序列Cb。在该实施例中,可以只按原样输出作为差信息的差信号Z的小数部分,而不是压缩编码差信号Z。如图9中的虚线所示,可以提供样本序列划分部分31,以便将划分的浮点格式的数字信号样本X的序列提供给数字调整部分32和减法部分16。

图11示出与图9所示的编码器100相关的解码器200的功能图,其对应于图8所示的解码器200的部分用相同的附图标记表示。展开部分21对每个划分出的单元无损地展开解码码序列Ca,从而产生整数格式的数字信号样本Y的序列。在该实施例中,辅助解码部分41解码辅助码Cc来生成调整信息ΔE。根据调整信息ΔE,数字纠正部分42以ΔEi+ΔE对整数格式的数字信号样本Y执行数字纠正。如果调整信息ΔE为正,则每个数字信号样本Y的位向最高有效位位置移位ΔE位。如果调整信息ΔE为负,则每个数字信号样本Y的位向最低有效位位置移位ΔE位。在该处理中,与图9所示的反数字调整部分34一样,将由于移位产生的未占用的位位置用“1”或“0”填充。

由浮点格式化部分22将来自数字纠正部分42的整数格式的数字信号样本转换成浮点格式的数字信号样本Y’。将每个信号样本Y’和通过由展开部分23反展开解码从差信息Cb得到的浮点格式的差信号Z合并在一起。按照要求,连接部分43将所合并的数字信号连接进样本序列中,从而再现浮点格式的数字信号样本X的序列。

[改进实施例]

如图12所示(其中与图9中对应的部分用相同的附图标记表示),不执行数字信号样本Y的反数字调整,浮点格式化部分15可以将整数格式的数字信号样本Y转换成浮点格式的数字信号样本,并且确定得到的浮点格式的数字信号样本和经由数字调整部分32数字调整后的浮点格式的数字信号样本之间的差,从而生成浮点格式的差信号Z。即,对于差生成部分14确定浮点格式的原始数字信号样本X和整数格式的数字信号样本Y之间的浮点格式的差信号,可以使用图2、9和12所示的任何配置。

图13中所示的、与图12所示的编码器相关的解码器200可以通过下列步骤再现浮点格式的数字信号样本X:首先,由浮点格式化部分22将经过展开部分21无损地展开解码的、整数格式的数字信号样本Y转换成浮点格式的数字信号样本;由合并部分24将得到的数字信号样本和由展开部分23无损地展开解码后的浮点格式的差信号Z合并在一起;然后,数字校正部分42使用由辅助解码部分41解码的调整信息ΔE校正合并数字信号的指数E的数字。

[第三实施例]

在上述实施例中,通过利用这样的事实来提高压缩效率,即,如果通过截断小数点后的小数部分将浮点格式的输入信号样本X转换成整数值信号样本,则所有构成差信号Z的尾数的整数部分的位是“0”。根据第三实施例,除了截断小数点后的位,还截断整数部分的预定数量的位来生成整数值信号样本Y。下面将示出这样的情况,即,在通过截断小数点后的位转换成16位整数值时,还截断了8位。然而,本发明可以应用到任何转换成由17位到23位组成的整数值的情况。

根据第三实施例,不管输入信号样本X所源自的原始信号是浮点信号、24位整数值信号还是16位整数值信号,都可以通过相同的处理来编码浮点格式的输入信号样本X。然而,为了方便说明操作原理起见,将依次描述从浮点信号得到输入信号样本X的情况、从包含一个符号位的24位整数值信号得到输入信号X样本的情况以及从包含一个符号位的16位整数值信号得到输入信号X样本的情况。

将参照图14A描述源自浮点信号的输入信号样本X到16位整数值的转换和差信号Z的生成。在该图中,值“x”可以是“0”或“1”(即,值“x”可以是非零)。“MX”表示浮点格式的输入信号样本X的23位尾数,而“PD”表示小数点的位置,用于指示最高有效的n(n=E-E0)位构成的整数部分与小数部分之间的边界。通过将样本X的指数E减少到E-8,尾数MX的小数点位置PD向最高有效位位置移动了8位。结果,在图14A所示的例子中,尾数MX的最高有效的2(n-8=2)位“xx”构成移位后尾数的整数部分。然后,在构成整数部分的2位的前面加上位“1”,并且使用得到的位序列“1xx”作为16位整数值信号样本Y的最低有效的位。

将16位整数值信号样本Y向最高有效位位置移位8位,即,在16位整数值信号样本Y的后面添加8位“0”,然后,将得到的信号样本转换成浮点格式的信号样本Y’。这样,得到的浮点格式的信号样本Y’的指数E被加8,因而等于输入信号样本X的指数E。通过设置跟随在向最高有效位位置移位了8位的整数值信号样本Y中的最高有效的“1”后的整数部分的位作为最高有效的位,即,在该例中的2位“xx”,并且设置所有后面的位为“0”,形成信号样本Y’的尾数MY’。为了方便起见,图14A示出了在要移位8位的样本Y中跟随在最高有效的“1”后的整数部分和由转换得到的浮点格式的信号样本Y’的尾数MY’之间的关系。差信号Z的尾数MZ是尾数MX和尾数MY’之间的差。差信号Z的尾数MZ的最高有效的(n-8)位,或者在该例中最高有效的2位是“00”,并且后面的位(小数部分)等于尾数MX各自对应的位。即,跟随在构成尾数MZ的整数部分的最高有效的位“00”后的所有位可以是非零。

对于差信号Z,只需要编码可以是非零的、尾数M的最低有效的23-(n-8)位。总是设为0的、尾数MZ的最高有效的(n-8)位的数量与在接收方解码后的整数值信号样本Y中跟随在最高有效的“1”后的位的总数相同。如图15A所示,随着整数部分的位数(n-8)增加,尾数M的、由可以是非零的位构成的部分减少。

图14B示出从24位整数值信号样本得到浮点格式的输入信号样本X的情况。因此,样本X的尾数MX与图14A所示的尾数MX不同之处在于,图14B所示的跟随在小数点PD后的所有位是“0”。在图14B中,输入信号样本X的指数被减少为E-8,从而将小数点PD的位置向最高有效位位置移位8位。然后,得到的16位整数值信号样本Y与图14A所示的情况相同。因此,从整数值信号样本Y转换的浮点格式的信号样本的尾数MY’也与图14A中所示的情况相同。

然而,差信号的尾数MZ是尾数MX和尾数MY’之间的差,而如图14B所示,差信号Z的尾数MZ的整数部分是“00”,随后的8位表示可以是非零的位的范围,而跟随这8位之后的位全是“0”。如图15B所示,可以是非零的位的范围向最低有效位位置移位,作为构成整数部分的位数。

图14C示出从包含一个符号位的16位整数值信号样本得到浮点格式的输入信号样本的情况。因此,在23位尾数MX中,跟随在小数点PD后的8位全是“0”,跟随在这8位后的位也全是“0”。在跟随在小数点后的数字位数h随着n的值按照h=23-n而变化的同时,图14C所示的情况与图14B所示的情况不同之处在于数字位数h不会变得小于8。

在图14C中,输入信号样本X的指数再次被减少到E-8,从而将小数点PD的位置向最高有效位位置移位8位,并且以与图14A和14B相同的方式,使用移位后的尾数的整数部分“xx”生成16位整数值信号样本Y。因此,从Y转换的浮点格式的样本的尾数MY’也与图14A和14B中所示的情况相同。此外,与如图14B所示的情况一样,差信号Z的尾数MZ的整数部分的最高有效的(n-8)位全是“0”,随后8位表示可以是非零的位的范围,而紧跟这8位的位也全是“0”。在这种情况下,也与图14所示相同,随着整数部分的数字位数(n-8)增加,紧跟这可以是非零的8位的、数字“0”的数量减少,尽管数字位数不小于8。

通过上述描述可以清楚,在无论是从24位整数值信号、16位整数值信号还是浮点信号之一得到浮点格式的输入信号样本的情况下,可以通过8位截断来生成16位整数值信号样本Y,即将输入信号样本的指数E减少到E-8、将小数点向最高有效位位置移位8位、在构成尾数MX的整数部分的最高有效的(n-8)位或者图中所示例子中的位“xx”前面加“1”、并且采用得到的整数值“1xx”作为16位整数信号样本Y的最低有效的位。此外,可以通过设置输入信号样本X的尾数MX的最高有效的(n-8)位为“0”来生成差信号Z的尾数MZ

由此获得的16位整数值信号样本Y可以以与图2所示的实施例相同的方式进行压缩编码。另一方面,对于差信号Z,不对总是为“0”的、尾数MZ的最高有效的(n-8)位进行编码,对紧跟的可以是非零的8位和紧跟这8位的其余(23-n)位分别进行压缩编码。

在上述例子中,通过将23位尾数中的小数点向最高有效位位置移位8位并且截断在移位后的小数点后跟随的位,生成16位整数值。通常,可以通过将输入信号样本的指数E减少到E-m并且采用得到的尾数MX的最高有效的(n-m)位作为整数部分来截断m位(m:任何落入范围22≥m≥8内的整数)。此外,如果不对总是为“0”的最高有效的(n-m)位进行编码,并且对紧跟的、可以是非零的m位和紧跟这m位的其余(23-n)位分别进行压缩编码,则可以有效地编码差信号Z的尾数。

图16示出一编码器,其中与图2所示的对应的部分用相同的附图标记表示。如上参照图14A、图14B和14C所述,数字调整部分31将浮点格式的输入信号样本X的指数E减少到E-8,从而将小数点向最高有效位位置移位8位。整数格式化部分12截断移位了8位后的小数点后跟随的小数部分,并且在得到的整数部分前面加“1”来形成整数格式的16位(=24-8)信号样本Y。压缩部分13无损地压缩信号样本Y并输出码序列Ca。

反数字调整部分32将16位整数格式的信号样本Y在与数字调整部分31的移位相反的方向上移位8位,即,在16位信号样本Y的后面插入8位“0”来将整个信号样本Y向最高有效位位置移动8位,从而形成整数格式的24位信号样本。浮点格式化部分15将得到的24位整数格式的信号样本转换成浮点格式的信号样本Y’。减法部分16计算浮点格式的信号样本Y’和输入信号样本X之间的差,从而生成浮点格式的差信号Z。实际上,反数字调整部分32、浮点格式化部分15和减法部分16不执行这些处理,差生成部分14可以仅仅使用从整数格式化部分12接收的尾数的整数部分的数字位数n,来提取每个输入信号样本X的尾数MX的最低有效的8+h(h=15-n)位(在n≠0的情况下)或者提取指数E和尾数MX(在n=0的情况下)。

压缩部分17包括划分器33和两个压缩部分17h和17c。差信号Z输入到划分器33。划分器33还从整数格式化部分12接收移位后每个样本X的尾数的整数部分的数字位数n。在n≠0的情况下,每个差信号样本Z被划分成:数字子集Zh,包含由数字位数n确定的、能够是非零的位,即,包含最低有效的h位(h=15-n);和数字子集Zc,包含由信号样本Y从24位整数格式到16位整数格式的转换确定的、或者由整数格式的信号样本Y的位数确定的、能够是非零的位,即包含第(h+1)到第(h+8)最低有效的位。在n=0的情况下,每个差信号样本Z被划分成由指数E的8位和尾数的最低有效的(23-8)位组成的数字子集Zh以及由尾数的最高有效的8位组成的数字子集Zc。压缩部分17h和17c分别通过熵编码等无损地压缩编码数字子集Zh和Zc,并输出码序列Cb1和Cb2。

因此,压缩部分17h主要是接收和无损压缩编码可以是非零的、尾数M的最低有效位。如果原始数字信号是24位或16整数值,则除了图14B和14C所示的n=0的情况外,输入到压缩部分17h的数字子集Zh中最高有效的h位全是“0”,从而可以实现对其高效压缩。

如图14A、14B和14C所示,压缩部分17c不管输入信号样本X是从一般的浮点信号、24位整数值信号还是16位整数值信号得到的,都无损地压缩编码可以是非零的8个最低有效位,即,从第(h+1)到第(h+8)最低有效的位。与由压缩部分17对差信号Z中所有可以是非零的位进行全体压缩编码的情况相比,这允许提高总的压缩效率。

图17示出根据本实施例的、与图16所示的编码器相关的解码器,其与图8所示的解码器相对应的部分用相同的附图标记表示。展开部分21无损地展开解码码序列Ca来再现16位整数格式的信号样本Y。展开部分23包括两个展开器23h和23c以及合并器41、码序列Cb1和Cb2分别由展开器23h和23c无损地展开解码,并且将产生的位序列Bh和Bc输入到合并器41。合并器41还接收由展开部分21解码的每个样本的整数部分中跟随在最高有效的“1”后的位数n。在n≠0的情况下,从由展开器23c输出的位序列Bh中提取h(h=15-n)位,从由展开器23c输出的位序列Bc中提取8位,并且合并这h位和8位来分别组成位数M的最低有效的h位和最高有效的8位。类似地对于随后的样本,取决于数字位数n,从位序列Bh中提取h位,从位序列Bc中提取8位,并且合并所提取的位。在n=0的情况下,从位序列Bh中提取作为指数E的8位和15(=23-8)位,并且从位序列Bc中提取8位。将从位序列Bc中提取出的8位插入在位序列Bh的15位的前面,从而形成23位尾数。

数字调整部分42将8位“0”插入解码后的16位整数格式的信号样本Y后面,来将信号样本Y向最高有效位位置移位8位,从而生成24位整数格式的信号样本。然后,浮点格式化部分15将信号样本转换成32位浮点格式的信号样本Y’。合并部分24合并信号样本Y’和差信号Z来再现浮点格式的信号样本X。

在上面描述中,整数格式的信号样本Y是16位或24位样本。然而,信号样本Y中包含的位数可以是任何等于或小于24的数m,并且取决于m的值,可以确定每个整数格式的信号样本Y中能够是非零的数字位数。此外,在上述例子中,浮点格式的输入信号样本X的序列可以被划分成例如1024个样本的帧,或者划分成连续样本的块,并且可以对每个这样划分出的单元执行压缩编码。在对每个划分出的单元执行压缩编码的情况下,可以位每个划分出的单元适当地确定转换成整数格式的位数,并且可以输出指定位数的辅助码。

可以使用根据图2所示的第一实施例的压缩部分17作为图16所示的编码器中的压缩部分17,并可以使用图8所示的展开部分作为图17所示的解码器的展开部分23。在这种情况下,编码器执行参照第二实施例所述的16位整数格式化。然而,差信号Z不被划分成具有可以是非零的位的两部分,而是编码尾数的最低有效的h(h=23-n)位。这样,解码器中的展开部分23解码码序列Cb来再现这h位,并且将n位“0”插入这h位的前面来生成尾数。

[第四实施例]

在上面所述的第一实施例中,无损地压缩编码每个差信号样本中可以是非零的、最低有效的h(=23-n)位。然而,差信号Z可以例如被分组成帧,可以从差信号Z沿着帧方向提取位序列,并且对其无损地压缩编码。下面将参照图18描述该编码方法。

图18示出一帧由1024个样本组成的情况。此外,对于每个样本号i(i=0到1023),示出输入信号样本X的尾数的n位整数部分的整数值(n=E-E0)及其h位小数部分的位序列(h=23-n)。如在参照图7的第一实施例中所描述的那样,每个差信号样本Z的尾数M的整数部分的最高有效的n位全是“0”,并且小数部分的最低有效的h(=23-n)位是可以是非零的位。在图18所示的编码方法中,差信号样本的尾数的整数部分的最高有效的n位与它们各自的相互对齐的最高有效位MSB一起排列,从每个样本中提取沿着幅度方向的位位置j上的位,提取在各个样本中沿着幅度方向的位位置j上的位并排列在帧方向上,来形成位序列Ei,并且编码位序列Ei

小数部分的位长度h(=23-n)随样本变化。这样,在扫描幅度中的位位置j上帧方向的位时(j=0到hmax-1;hmax表示在相关帧中的样本的小数部分的最大位长度),如果遇到在位位置i上没有位的样本,则跳过该样本。可以如下确定是否跳过样本i:在样本i的幅度中的位位置j上,将样本的小数部分的位长度h与值j比较,如果h≥j,则提取位位置上的位,而如果h<j,则跳过该样本,并且同样地确定关于下一样本(i+1)。

例如,当在帧方向上扫描从MSB起的位位置j=17上的位时,样本i=0(其小数部分的位长度是23-6=17)在位位置j上具有最低有效位。然而,样本i=1(其小数部分的位长度是23-8=15)在第15个MSB(或位位置j=14)后没有位。因此,跳过样本i=1。提取出的15位对帧分组,来形成位序列E16,并且熵编码位序列E16。对每个其他位位置j执行同样的处理。作为熵编码,由于算术编码和Golomb编码可以提供分层,因而更有优势。

在解码器方,可以由在每个解码后的整数值信号样本Y中跟随在最高有效的“1”后的位数n来确定整数部分的数字位数n,因此,可以确定帧中的每个差信号Z的尾数的小数部分的位长度h(=23-n)。因而,对于每解码后的位序列Ej,顺序地扫描帧中的样本i的位,并且将沿着幅度方向的位位置j与每个帧的位长度h进行比较。如果j≤h,则可以通过将位序列Ej中的位的值分配到位位置(i,j)来再现图18所示的尾数的小数部分。然后,在每个样本的小数部分的前面,可以添加与样本相关的n位“0”,从而再现差信号的23位尾数M。

图19示出应用图18所示的编码方法的、图2所示的压缩编码部分17的功能配置。压缩编码部分17从差生成部分(见图2)接收一帧差信号Z的样本z0…z1023,并且将其各自的整数部分的数字位数n0-n1023存储在存储部分17B中。根据每个样本i的数字位数ni,控制部分17C将输入差信号Zi的尾数除了最高有效的n位之外的h位整数部分(h=23-n)置入缓冲器17A。因此,获得图18所示的尾数的整数部分的阵列。然后,控制部分17在帧方向上扫描在幅度上的位位置j(=0到hmax-1)上的样本,提取满足关系h≥j的位来形成位序列Ej,并且将位序列Ej提供给压缩器17D。缓冲器17A、存储部分17B和控制部分17C构成了位序列生成装置。压缩器17D无损地压缩编码位序列Ej并且输出码Cb。

图20示出用作于图19所示的压缩编码部分17相关的、图7中的差信号解码装置的展开部分23的功能配置。解码部分23D解码接收到的Cb来再现位序列Ej。另一方面,将从数字位数计算部分21(图7)接收的、一帧的整数部分的数字位数n0-n1023存储在存储部分23B中,而控制部分23C将从位序列Ej中提取的一位分配到(满足关于每个样本i的小数部分的数字位数hi(=23-ni)的关系hi≥j的)每个位位置(i,j),并且将得到的位排列存储在缓冲器23A中,并且对所有样本重复相同处理,从而再现图18所示的小数部分位阵列。一旦完成一帧的所有位序列Ej(j=0-hmax-1)的位排列,控制部分23C就在缓冲器23A中的每个样本i的小数部分的前面添加ni位“0”,来再现差信号的尾数,并且将差信号Z提供给合并部分24(图7)。缓冲器23A、存储部分23B和控制部分23C构成再现装置。

在编码图18所示的差信号的尾数时,沿着帧方向将在位位置j上的位分组成位序列Ej,并且编码位序列Ej。下面将描述扫描位位置的另一方法。在图21中,以这样的方式在帧方向上、连续在幅度方向上预定数量的多个位的宽度上扫描和收集位,即,在位位置j+1上的第一个位跟随在位位置j上的最后一位后面,从而生成多个位序列E2’、E18’等。因此,位序列Ej的数量小于小数部分的最大位数hmax。此外,在该位扫描时,跳过任何满足关系hi<j的位位置。此外,在该位扫描方法的情况中,可以根据hi=23-ni确定每个样本的小数部分的数字位数。因此,在解码器方,可以以与上述相同的方式,通过分配位序列Ej中的位来再现小数部分的位排列。

图22示出另一位扫描方法。根据图21所示的方法,以这样的方式在帧方向上、连续在幅度方向上多个位的宽度上执行位扫描,即,在位位置j+1上的第一个位跟随在位位置j上的最后一位后面。然而,根据图22所示的方法,从其MSB开始、在幅度方向上多个预定数量的位的宽度上扫描样本i的位,使得在样本i中的位的宽度中的最后一位后面跟随着样本i+1中的多个位的宽度中的第一位。重复该扫描直到达到帧中的最后一个样本为止。在该例子中,同样跳过满足条件hi<j的任何位位置。

图23是图解图18所示的位扫描时的例外操作的图。在截断使得整数部分为0的情况下,即,在E-E0为负的情况下,需要编码并发送包括指数在内的所有32位。因此如图23所示,在样本i=3的整数部分是0(即,n=0)的情况下,压缩部分17省去对样本i=3的尾数位扫描,并且分别地编码样本i=3。

在输入信号样本X是从整数值转换来的浮点格式的信号样本、并且原始整数值的数字位数与截断的整数值的数字位数不同的情况下,即,在从24位整数值信号直接转换来的浮点格式的信号样本通过参照图9B和10B所述的截断被编码成16位整数值信号时,差信号的尾数的小数部分的最高有效的8位可以是非零,尽管其余的位是0。如果例如用图13所示的方法编码该输入信号样本X,则位序列E0到E7可以是非零,尽管随后的位序列E8到E21全是“0”,从而可以实现有效的编码。容易理解的是,如果使用图21和22所示的方法,则也可以类似地实现有效的编码。

按照要求在音频信号处理中所执行的,例如,如果24位整数值信号样本增加1.5倍,产生的信号样本被转换成浮点格式的信号,并且将通过截断得到的信号编码成16位整数值信号,增加24位整数值信号样本1.5倍使得至少第一个小数位称为可以是非零的位。具体地说,跟随在图14B所示的样本X的尾数MX中的小数点PD后的第一位可以是非零。因此,差信号的尾数MZ的可以是非零的位向最低有效位位置增加1位到9位。在这种情况下,跟随在这9位后的位同样全是“0”,从而可以使用图18、21、22和23所示的方法实现有效的编码。另外,如果所有的位不是0,则非零(即“1”)的出现频率可以随着数字位而变化,在这种情况下,可以应用适于该变型的无损压缩。

在任何情况下,从MSB侧数起、差信号的尾数的小数部分中能够是非零的数字位数是相等的,从而可以实现有效的压缩编码。

图18到23所示的尾数编码方法是根据该方法应用到图2所示的第一实施例的假设进行描述的。然而,该方法也可以应用到参照图14A到17所述的、通过截断形成16位整数值的情况。在这种情况下,图16所示的压缩部分17被如图19所示重新配置,并且图17所示的展开部分23被如图20所示重新配置。

此外,可以根据小数部分的数字位数重新排列样本以便扫描。例如,将其小数部分由23位组成的样本分组在一起,然后将其小数部分由22位组成的样本分组在一起,同样将具有由更少数字位数组成的小数部分的样本分组在一起。可以以唯一的方式实现样本的反排列,而不需要任何额外的信息,从而可以容易地管理要扫描的样本的数量。

[第五实施例]

在上述第四实施例中,沿着样本序列方向从(在每帧中与其相互对齐的MSB排列的)差信号Z的尾数M的小数部分中提取位序列,并且编码提取出的位序列。根据第五实施例,通过排列包含有能够是非零的位与其相互对其的LSB的小数部分,形成整数值样本序列,并且通过消除样本序列方向上的冗余来执行压缩编码。图24示出第五实施例所应用的、图2所示的编码器100的配置。

图24所示的编码器100与图2所示的编码器100在压缩编码部分17的配置上不同。如图24所示,压缩编码部分17包括小数部分提取部分17E、帧内平均部分17F、减法器17G和编码部分17D1和17D2。小数部分提取部分17E提取从差生成部分14接收的每个差信号样本Z的尾数M的最低有效的h位(h=23-n)组成的小数部分作为一个整数值样本F。帧内平均部分17F对每帧计算提取的整数值样本的平均值Fave,而编码部分17D1编码平均值Fave并且输出得到的码序列Cb1。减法器17G确定平均值Fave和每个整数值样本F之间的差作为误差样本ΔF,而编码部分17D2对误差样本ΔF进行预测编码,无损地压缩编码预测误差并且输出得到的码序列Cb2。预测参数可以作为辅助信息分别地发送,或者可以适应地更新来与编码器和解码器之间保持一致。

图25示出与图24所示的编码器相关的解码器。该配置除了修改了展开部分23外,与图8所示的解码器相同。根据本实施例,展开部分23包括展开器23B和23C、加法器23D和组装部分23A。展开器23B展开解码接收到的码序列Cb1并且输出每帧的平均值Fave。展开器23C展开解码接收到的码序列Cb2来确定预测误差,执行预测解码并且输出误差样本ΔF。加法器23D将平均值Fave和误差样本ΔF相加来再现整数值样本F。组装部分23A使用来自位数数字计算部分21A的数字位数n从整数值样本F组装差信号Z。如图8所示,将得到的差信号Z和由整数值信号样本Y转换来的浮点格式的信号样本Y’合并成的信号样本X。

仅仅通过用图24中的压缩编码部分17和图25中的展开部分25分别替代图16中的压缩编码部分17和图17中的展开部分23,该第四实施例就可以应用到第三实施例。

[计算机实现]

如图26所示,图2、9、12、16和24所示的编码器100可以由计算机600实现,计算机600包括通过总线68相互连接的RAM 61、CPU 62、硬盘63、ROM 64、发射机/接收机65、输入/输出部分66和音频/视频输入/输出部分67。

ROM 64存储用于引导计算机的程序,而硬盘63存储计算机的操作系统程序。用于执行根据本发明的编码器100的功能的程序被预先从诸如CD-ROM和DVD之类的记录介质71、经由CD/DVD驱动器66读入硬盘63,或者通过通信线路和发射机/接收机65预先下载到硬盘63。

在例如音频/视频输入/输出部分67外部地接收要编码的浮点格式的数字信号样本X的序列,并且将其临时存储在用作缓冲器的硬盘63上。为了开始编码,将用于执行编码的程序从硬盘63读入RAM 61,并且由CPU 62执行程序。编码的结果,例如码Ca、Cb(或Z)和Cc可以从发射机/接收机65通过通信线路发送到外部,或者可以存储在CD/DVD驱动器66中的诸如CD-ROM和DVD之类的记录介质71中。

类似地,为了由图26所示的计算机实现图8、11、13、17和25所示的解码器200,将用于执行解码器功能的程序存储在硬盘63中,并且对通过通信线路在发射机/接收机65接收到的码Ca、Cb(或Z)和Cc执行解码程序。编码的结果输出到显示单元73和扬声器74来再现。

本发明不仅可以应用于音乐信号,还可以应用于声音信号、图像信号等。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号