专利名称:浮点数字信号的可逆编码方法、解码方法及其装置和程序的制作方法
技术领域:
本发明涉及一种编码方法,用于将数字声音、音乐或图像信号压缩成信息量较少的代码、一种相应的解码方法及其编码装置、解码装置和程序。
背景技术:
作为压缩声音或图像信息的方法,已知一种无损编码方法,其不包含失真。
高压缩的无损数据压缩可通过将高压缩的有损编码和对该有损编码中出现的再生信号与原始信号之间的差的无损压缩加以组合来实现。这种组合压缩方法已在日本专利申请Kokai公布号2001-44847中提出。下面将简要描述在该专利文献中详细描述的该方法。
在编码器中,帧形成部分连续地将数字输入信号(也称为一输入信号采样序列)分成帧,例如,每帧由1024个输入信号采样组成,且按帧将该数字信号进行有损压缩编码。该编码可根据适合于输入数字信号的任何格式,且通过解码能以一定保真度再生原始数字输入信号。例如,若该数字输入信号为声音信号,可使用ITU-T所建议的G.729语音编码。若该数字输入信号为音乐信号,可使用MPEG-4中使用的变换域加权交错矢量量化(Twin VQ)编码。将该有损压缩编码所得代码在本地进行解码,并产生表示该本地解码信号与该原始数字信号之间的差的差信号。可是,实际上,不需要作本地解码,且可确定该原始数字信号与有损压缩编码期间所得量化信号之间的差。该差信号的幅度通常比该原始数字信号的幅度小得多。因此,与对该原始数字信号作无损压缩编码相比,对该差信号作无损压缩编码可减少信息量。
为提高该无损压缩编码的效率,从以符号和数值(含符号和数值的二进制数)表示的该差信号的采样序列帧中的每个采样中,提取MSB、第二MSB、...以及LSB,且按采样顺序(即,时序)将每个采样的MSB、第二MSB、...以及LSB连接起来,由此形成各个位序列。换言之,改变了位排列。为方便起见,将由相等位位置处的1024个位相连所组成的位序列称为“等位序列”。另一方面,为方便起见,将表示包含每个采样符号的幅度值的1字长位序列称为“幅位序列”。该差信号的幅度小,因此,最高有效位或最高有效位和其后的多个位通常全为″0″。连接这种位位置处的位所形成的等位序列为″0″位序列。因此,可用预定短码来表示该等位序列,从而可提高多该差信号的无损压缩编码的效率。
对该等位序列进行无损压缩编码。作为该无损压缩编码,可使用熵编码如Huffman编码和算术编码,其利其中相同符号(1或0)连续出现的序列发生和频繁发生的情况。
在解码时,将从该无损压缩编码所得代码进行解码,且对该解码信号执行逆向的位排列变换。即,针对每帧,等位序列被转换为幅位序列,且按顺序再生所得差信号。此外,将该有损压缩编码所得编码进行解码,将解码信号和再生差信号相加在一起,之后,按顺序将针对每帧的和信号连接在一起,从而再生原始数字信号序列。
除此之外,已知有多种不容许失真的音频或视频信息的无损编码方法。例如,在IEEE SIGNAL PROCESSING MAGAZINE,July 2001,pp.21-32“Lossless Compression of Digital Audio”中,Mat Hans、Ronald W.Schafer等公开音乐信息的无损编码方法。任何传统方法为使用直接作为PCM信号的信号波形的压缩编码方法。
可是,在音乐记录场合中,有时以浮点格式记录和保存波形。将任何浮点格式的值分为符号(sign)、指数和尾数。例如,在图1所示IEEE 754标准的浮点格式中,任何值由32位组成,包括按有效位下降的次序用1位表示符号、用8位表示指数以及用23位表示尾数。以S表示符号,以十进制数E表示8位指数所表示的值,且以M表示尾数的二进制数,将浮点格式的值以符号和幅度二进制记数法表示为(-1)S×1.M×2E-E0(1)根据IEEE 754标准,将E0定义为E0=27-1=127,因此表示式(1)中的″E-E0″可取下列范围内的任何值-127≤E-E0≤128在以浮点格式的数字信号序列表示声音、音乐或图像信息的情况下,由于浮点格式的特征,由″0″和″1″组成的位序列很可能是随机的。因此,即使执行上述的位排列变换,不能期望熵压缩编码等能提供高压缩比。此外,浮点格式的采样序列与原始模拟波形有极大不同,因此没有因采样之间的相关性所带来的冗余性。因此,即使应用上述文献中Mat Hans、Ronald W.Schafer等公开的无损预测编码方法,不能期望有较高的压缩比。
专利文献1日本专利申请Kokai发布号2001-44847。
发明内容
本发明所解决的问题本发明的目的是提供不容许失真且有高压缩比的浮点格式的数字信号的无损编码方法、相应的解码方法及其装置和程序。
解决该问题的方法根据本发明的用于浮点格式的数字信号的无损编码方法及其无损编码装置包括将浮点格式的第一数字信号采样转换成整数格式的第二数字信号采样,对整数格式的第二数字信号采样作无损压缩以产生代码序列,产生对应于整数格式的第二数字信号采样与浮点格式的第一数字信号序列之间的差的差信号,以及将该代码序列和对应于该差信号的差信息作为编码结果输出。
这样,通过将浮点格式的数字信号采样转换成整数格式的数字信号采样,其近似于原始模拟信号的波形,以可消除因信号采样之间的相关性所带来冗余性的压缩方法可获得高效率的压缩。
根据本发明的浮点格式的数字信号的解码方法及其解码器包括将代码序列解码并扩展以产生整数格式的第一数字信号采样,根据差信息产生差信号,将整数格式的第一数字信号采样转换成浮点格式的第二数字信号采样,以及将浮点格式的第一数字信号采样与该差信号组合以产生浮点格式的第三数字信号采样。
本发明的效果根据本发明,可对一浮点格式的数字信号采样序列进行有效地无损压缩。此外,可使用为整数格式的采样序列设计的典型压缩编码模块来处理整数格式和浮点格式,而不需要明显增加处理装置和程序的规模。
图1示出根据IEEE-754的32位浮点表示的格式;图2是根据本发明第一实施例的编码器功能图;
图3是图解说明图2所示的整数格式化部分12的操作的图;图4是示出图2所示的整数格式化部分12中的程序的流程图;图5是根据本发明第一实施例的解码器的功能图;图6是根据本发明第二实施例的编码器的功能图;图7是示出数位调整程序的流程图;图8是根据本发明第二实施例的解码器功能图;图9是根据本发明第二实施例的变化编码器功能图;图10是根据本发明第二实施例的变化解码器功能图;图11是图解说明针对浮点格式的值中的指数和尾数单独执行的浮点格式的值的减法(加法);图12是根据本发明另一实施例的用于说明编码方法的编码器的功能图;图13是根据本发明另一实施例的用于说明解码方法的解码器的功能图;以及图14是实现根据本发明的编码器和解码器的计算机的图。
具体实施例方式图2示出了根据本发明实施例的编码器功能结构图。根据该实施例的编码器100包括整数格式化部分12、压缩部分13、差产生部分14、以及压缩部分17。整数格式化部分12有数位计算部分12A,且差产生部分14包括浮点格式化部分15以及相减部分16。信号源11输出音乐信号采样序列作为32位浮点格式的数字信号采样序列X。通过对以24位整数格式记录的原始信号执行某种处理,如变换、幅度调整、添加效果和混合,并将所得的作为处理结果的含小数部分(fractional part)的信号转换成浮点格式,或通过将以24位整数格式记录的原始信号转换成32位浮点格式,再对所得信号执行上述这种处理,以产生每个数字信号采样X。这里,可将该整数值直接转换成浮点值,或可进行归一化,从而将整数32768归一化为1.0。下面的描述假定是先前的情况。可是,两种情况只在指数部分的值上有差别,且可将本发明应用于这两种情况。
将浮点格式的数字信号采样X输入到整数格式化部分12,且将每个采样转换成整数格式的数字信号采样Y。如上所述,在上述例子中,数字信号采样X通常从24位整数格式的原始信号通过如变换、幅度调整、添加效果的处理得到,因此该信号的幅度通常不会变化很大。因此,整数格式化部分12只要通过舍入小数部分就可将浮点数转换成整数。下面,将参照图3描述以截断执行舍入的情况。尽管整数格式的数位数可为16位、20位等,下面的描述中将假定整数格式的数位数为24位。
例如,若指数值E为147,靠近小数点高位侧的位为从尾数M的MSB始的第20位(=147-127)。如图3A所示,在符号和数值二进制记数法中,23位尾数M中的20个最高有效位(M1)构成该整数部分,且剩余3个最低有效位(M2)构成小数点之后的小数部分。因此,如图3B中所示,若将尾数M向最低有效位位置移动3位,以便将整数部分(M1)的最低有效位置于整个23位尾数的最低有效位处,小数点之后的3位(M2)发生溢出,因此,将该3位截断。之后,将通过这种移位而空出的3个最高有效位(该例中为″000″)中的最低有效位(即,从最低有效位始的第21位)设置为1,其对应于表示式(1)中″1.M″的″1″,从而提供截断的整数值(参见图3C)。或者,可在移位前将″1″加在该23位中的最高有效位前,并将所得24位移位3位。
此外,将所得整数值转换为2的补码表示(two’s complement notation)。即,将浮点格式的每个数字采样X的符号位S按现在这样用作最高有效位。对其他23位而言,若符号S为″0″(正数),将图3C所示23位按现在这样使用,且若符号S为″1″(负数),则如图3D所示,将该23位的逻辑值取反,即,将值″0″和″1″互换,之后,将″1″加到最低有效位。这里,将符号位S用作补码的最高有效位。这样,获得以补码表示的24位整数,如图3E中所示。
上面的描述通常假设尾数M包含小数部分所对应的0或更多位,且将32位浮点格式的数字信号采样转换成24位整数格式的数字信号采样。然而,例如在将多个24位整数格式的原始信号混合进行处理的情况下,一采样的幅度值可大大于24位所能表示的最大值。在这种情况下,作为异常处理,在上述例子中,将指数E的值限制为150(=127+23),且将尾数M的23位直接转换成2的补码表示,并用作24位整数格式的数字信号。
例如,整数格式化部分12执行图4所示处理。首先,确定指数E是否大于150,即整数部分是否由23或更多位组成(S1)。若整数部分由少于23位组成,数位计算部分12A确定整数值的数位数(n=E-E0),并输出该结果(S2)。之后,将尾数M向最低有效位位置移位(23-n)位,以使小数部分发生溢出,且将″1″置于从所得由n位组成的整数部分的最低有效位开始的第(n+1)位的位置上。之后,将″0″补充到剩下的第(n+1)位之前的位位置处,以便整个尾数由23位组成,且根据符号位S,将所得23位转换成以2的补码表示的24位整数,从而提供整数格式的数字值采样(S5)。具体而言,将符号位S按现在这样用作最高有效位。对剩余23位而言,若符号S为″0″(正数),则使用从步骤S3中移位所得整数部分的最低有效位开始的23位,且若符号S为″1″(负数),将除最高有效位之外的从该移位所得整数部分的最低有效位开始的23位取反并使用。若在步骤S1中指数E等于或大于150,则在步骤S4中将指数E限制为150,之后,该过程继续至步骤S5。在上面的描述中,将尾数M移位(23-n)位,以提供以符号和数值二进制表示的24位整数值采样。另一做法是,从尾数M中提取最高有效n(=E-E0)位,将″1″加在该n位的顶端以使位数变成(n+1),将(22-n)个″0″加到该(n+1)位的顶端以使位数变为23,之后将符号位S加到该23位的顶端以使位数变为24。
在上面的描述中,在图4的步骤S3中,整数格式化部分12通过截断执行小数点之后的小数部分舍入(round)。可是,也可执行上舍入(round-up),或可根据第一个小数位置是否为″1″或″0″,有选择性地执行截断或上舍入。若由于舍入发生进位,将″1″加到移位(23-n)位后整数部分的最低有效位上。此外,若由于相加使整数部分的最高有效位发生进位,如图2中虚线所示,对表明发生进位的1位信息进行编码,且将该编码信息作为辅助信息Cd传输。
在压缩部分13中,通过使用波形等关联信息的有效无损压缩方法,将整数格式化部分12产生的整数格式数字信号采样序列Y作为整数值作压缩编码,之后作为代码序列Ca输出。例如,象上述Mat Hans等的文献中公开的那样,压缩部分13中的无损压缩可通过确定每个采样值与预测值(整数值)之间的差,如“背景技术”中描述的那样改变该差序列的位排列,之后对所得序列即等位序列执行熵编码来实现。即,整数格式的数字信号采样序列Y近似于原始模拟信号波形,从中得到信号源11输出的数字信号采样序列X。因此,可通过预测或变换以消除因信号采样之间相关性所带来的冗余性,来对数字信号采样序列X作高效无损压缩编码。
此外,在差产生部分14中,产生表示整数格式的数字信号采样Y与相应的从信号源11输出的浮点格式数字信号采样X之间的差的差信号(误差)ΔX。在该例子中,在浮点格式化部分15中,再将整数格式的数字信号采样Y转换成浮点格式数字信号采样X′,并在相减部分16中,从浮点格式的原始数字信号采样X中减去所得浮点格式数字信号采样X′,由此产生浮点格式的差数字信号ΔX。
在整数格式的数字信号采样由24位组成的情况下,浮点格式化部分15可将该数字信号转换成由32位组成的浮点格式数字信号,而不出现歧义或异常。如上所述,浮点格式的原始数字信号采样X的指数E很可能等于或小于149,在这种情况下,表示数字信号采样X’与浮点格式的原始数字信号采样X之间的差的差数字信号ΔX等于原始数字信号采样X的小数部分的值。
在压缩部分17中,对来自差产生部分14的差信号ΔX作无损压缩编码,之后,从那里作为差信息Cb输出。如上所述,差信号ΔX等于原始数字信号采样的小数部分的值,且若该差信号的尾数的小数点之后的数位数小,则可用熵编码等对该差信号作高效无损压缩编码。为提高压缩效率,压缩部分17可将指数E和尾数M的差分开,分别对每个差执行适当的无损压缩编码,并将结果作为各自的代码序列Cb1和Cb2分开输出。在该情况下,指数E与采样X′的指数相同,且可通过将接收端对代码Ca解码所得信号采样Y转换成浮点格式的信号采样X′来获得,从而不需传输指数E。换言之,只需对尾数M的差作编码,并作为差信息Cb2输出。
差信号ΔX的小数点之后的数位数有时大。在这种情况下,会下降编码效率。因此,可将该差信号ΔX按现在这样作为差信息输出,而不需编码。另一做法是,将该差信号ΔX与编码后的差信号按信息量进行比较,且选择较少信息量的那个。
如上所述,在浮点格式的数字信号采样X的尾数等于或大于150(E≥150)的异常情况下,整数格式化部分12将表示将指数E限制为150的异常信号y传输给差产生部分14,且差产生部分14产生指数差(E-150),其为指数值150与数字信号采样X的指数E的值之间的差、以及尾数M的差(其中所有位被设置为″0″),以作为差信号ΔX。压缩部分17对差信号ΔX执行无损压缩编码,并将所得代码作为差信息Cb输出。在该情况下,由于尾数差的所有位都为″0″,可不传输尾数差,且只对指数差进行编码,并将所得代码作为差信息Cb输出。
图5示出了根据本发明实施例的解码器200,其与图2所示编码器100相关联。
在扩展部分21中,对输入代码序列Ca作无损扩展解码。该无损扩展解码与图2所示的压缩部分13中执行的无损压缩编码相对应,且执行逆向无损压缩编码处理。因此,该无损扩展解码产生24位整数格式的数字信号采样序列Y。
通过浮点格式化部分22将整数格式的数字信号采样Y转换成32位浮点格式的数字信号采样X′。另一方面,在扩展部分23中对输入差信息Cb作无损扩展解码。该无损扩展解码对应于图2所示的压缩部分17中执行的无损压缩。因此,该无损扩展解码产生差信号ΔX。
由于差信号等于最低有效位位置处的小数部分的值,在组合部分24中将其插入浮点格式的数字信号采样X′的尾数的相应最低有效位位置,因此再生浮点格式的数字信号采样X。在图2所示的编码器100不执行压缩编码就输出差信号ΔX的情况下,将解码器200所接收的差信号ΔX按现在这样传输给组合部分24,并执行同样的组合过程。
图6是根据本发明第二实施例的编码器100的功能图,其中以与图2中相同的附图标记表示与图2中相对应的那些部分。根据第二实施例,采样序列划分部分31将浮点格式的数字信号采样序列X划分成预定采样数的块或帧,且数位调整部分32按划分单位对指数E执行数位调整,以便使整数格式的数字信号采样Y的数位数落在适当范围内,即,自数字信号采样序列X转换的整数格式的数字信号采样的数位数等于或小于24,如下所述(a)若将幅度大到其指数E大于150的浮点格式数字信号采样X转换成24位整数格式的数字信号采样Y,数字信号采样X的尾数M的一或更多个最低有效位所表示的信息将会丢失。除此之外,若将幅度大到其指数E近似但小于150的浮点格式数字信号采样X转换成整数格式的数字信号采样Y,则该采样的数字值通常会超过24位整数值。为避免这些情况,数位调整部分32针对每个划分单位,从数字信号采样X的指数E中减去调整信息ΔE,以使该指数E的值等于或小于150。
(b)若将小幅度的浮点格式数字信号采样X转换成24位整数格式的数字信号采样Y,且该整数格式的数字信号采样Y的24位中除最高有效位即符号位S之外的最高有效21至23位都为″0″,则只用大约2位就可表示该幅度。因此,整数格式的数字信号采样序列Y的波形不近似等于模拟波形,从而不提供转换成整数格式的数字信号采样Y的优点,即,高压缩比无损压缩编码的优点。此外,在整数格式数字信号采样Y的幅度值可用其中的大约两个最低有效位表示的情况下,若将信号采样Y转换成浮点格式的数字信号,所得数字信号的尾数M的所有位几乎都为″0″。例如,它们全部为″0″,或除最高有效位为″1″之外,它们全部为″0″。另一方面,浮点格式的输入数字信号采样X的尾数M可取大的值,即使该信号采样X的幅度小。因此,根据浮点格式的数字信号采样X,对应于误差(差)的浮点格式的差信号ΔX的尾数M有一大幅度。即,所有采样中为″0″的位数减少,从而不能提高压缩效率。
为避免这种问题,数位调整部分32按划分单位将调整信息ΔE加到每个指数E中,从而整数格式的数字信号采样Y中包含尽可能多的由尾数M表示的信息。在该情况下,转换成整数格式所得的一个采样的位数不应大于24。
可针对每个划分单位改变数位调整部分32中的调整信息ΔE(任何符号的整数)。数位调整部分32找到每个划分单位中的指数E的最大值,并确定该划分单位的调整信息ΔE,以便在保持一个整数格式的采样位数等于或小于24的同时,利用尽可能多的由尾数M表示的信息。
图7示出了数位调整部分32所执行的数位调整程序。该图示出了采样序列划分部分31按NF个采样划分采样序列的情况,且对NF个采样按单位进行数位调整。
在步骤S1中,接收NF个输入采样,且在步骤S2中,初始地设置i=1和ΔE0=0。
在步骤S3中,从第i个采样的指数Ei中减去150,以产生差ΔEi。
在步骤S4中,确定差ΔEi是否大于现前的差ΔEi。若差Δ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,之后该过程返回到步骤S1。若在步骤S9中差ΔEmax大于-K,则该过程返回到步骤S1。
因此,若在步骤S8中差ΔEmax等于或大于1,这意味着数字信号采样X的幅度大,且指数E大于150。若在步骤S9中差ΔEmax等于或小于-K,这意味着数字信号采样X的幅度小,且波形近似度差。例如,可将K设置为从20至22的值。
如在第一实施例中那样,在整数格式化部分12中,将已用该方式作数位调整的浮点格式的数字信号采样转换成整数格式的数字信号采样Y,且在压缩部分13中对该信号采样序列Y作无损压缩编码,以产生代码序列Ca。
为使解码能无损再生编码之前的浮点格式的原始数字信号采样X,辅助代码部分33将包含指示加或减的符号的调整信息ΔE编码以产生辅助代码序列Cc。
在图6所示实施例中,差产生部分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转换成浮点格式的数字信号采样X′。由相减部分16确定浮点格式的数字信号采样X′与浮点格式的原始数字信号采样X之间的差。由压缩部分17对差信号ΔX作无损压缩编码,且输出所得代码序列Cb。再在该实施例中,仅将差信号ΔX的小数部分按现在的样子作为差信息输出,而不是对差信号ΔX作压缩编码。如图6中的虚线所示,可提供采样序列划分部分31以将浮点格式的数字信号采样X的等分序列提供给数位调整部分32和相减部分16。
图8示出了与图6所示的编码器100相关联的解码器200的功能图,用相烃的附图标记表示其与图5所示的解码器200中的相对应部分。扩展部分21按划分单位对代码序列Ca作无损扩展解码,由此产生整数格式的数字信号采样序列Y。在该实施例中,辅助解码部分41将辅助代码Cc解码,以产生调整信息ΔE。根据调整信息ΔE,数位调整部分42按Ei+ΔE对整数格式的数字信号采样Y执行数位调整。若调整信息ΔE为正,则将每个数字信号采样Y的位向最高有效位位置移位ΔE位。若调整信息ΔE为负,则将每个数字信号采样Y的位向最低有效位位置移位ΔE位。在该过程中,如图6所示逆向数位调整部分34那样,以″1″或″0″填充移位后空着的位位置。
通过浮点格式化部分22将来自数位调整部分42的整数格式数字信号采样转换成浮点格式的数字信号采样X′。通过组合部分24,将每个数字信号采样X′与从差信息Cb经扩展部分23逆向扩展解码得出的浮点格式的差信号ΔX组合在一起。如所需的那样,耦合43将连续数字信号转换成采样序列,由此再生浮点格式的数字信号采样序列X。
如图9中所示,其中用相同的附图标记表示对应于图6中的那些部分,通过浮点格式化部分15,可将整数格式的数字信号采样Y转换成浮点格式的数字信号采样,而不执行数字信号采样Y的逆向数位调整,且确定所得浮点格式的数字信号采样与已通过数位调整部分32作数位调整的浮点格式数字信号采样之间的差,由此产生浮点格式的差信号ΔX。即,直到差产生部分14确定了浮点格式的原始数字信号采样X与整数格式的数字信号采样Y之间的浮点格式差信号,才可使用图2、6和9中所示的任何排列。
与图9所示编码器相关联,图10所示解码器200可首先通过浮点格式化部分22,将已通过扩展部分21作无损扩展解码的整数格式数字信号采样Y转换成浮点格式数字信号采样,通过组合部分24,将所得数字信号采样与通过扩展部分23作无损扩展解码所得浮点格式差信号ΔX组合在一起,之后,使用辅助解码部分41解码所得调整信息ΔE、通过数位调整部分42调整组合数字信号的指数E的数位,以再生浮点格式数字信号采样X。
上面描述时假定编码器中的相减部分16执行典型浮点减法,即,若相关的2个值的指数E不同,通过将较小指数的数位调整到较大指数的数位来进行尾数相减。在该情况下,有可能丢失较小指数E的值的尾数的低数位,从而解码器不能精确再生浮点格式的原始数字信号采样X。因此,需作特殊处理。且同样适用于解码器中的组合部分24所作的加法操作。
为解决该问题,单独计算指数E和尾数M,而不进行数位调整。如图11所示,由指数相减部分16E确定数字信号采样X与数字信号采样X′的指数E之间的差,由尾数相减部分16M确定数字信号采样X的尾数与数字信号采样X′的尾数E之间的差,且将指数相减部分16E所得相减结果用作差信号ΔX的指数E,以及将尾数相减部分16M所得相减结果用作差信号ΔX的尾数M。
如图11中的括号所示,解码器中组合部分24执行相同方式的加法操作。即,指数相加部分24E将差信号ΔX的指数E与数字信号采样X′的指数E相加,尾数相加部分24M将差信号ΔX的尾数M与数字信号采样X′的尾数M相加,且将指数相加部分24E所得相加结果用作数字信号采样X的指数E,以及将尾数相加部分24M所得相加结果用作数字信号采样X的尾数M。
在该情况下,即使浮点值的绝对值大于整数格式的最大值,可通过将其绝对值限制为整数最大值,以将该浮点值转换成整数格式。由于单独保留尾数信息和指数信息,所以可再生该浮点值的所有位,从而不需要任何异常处理。
因此,图2、6和9所示相减部分16可执行包含数位调整的典型浮点减法,或单独执行指数相减和尾数相减。类似地,图5、8和10所示组合部分24可执行包含数位调整的典型浮点加法,或单独执行指数相加和尾数相加。
如图12所示,可通过下降采样部分36将浮点格式数字信号采样X的采样频率下转换到较低频率,可通过整数格式化部分12将所得较低采样频率的浮点格式的数字信号采样转换成整数格式的数字信号采样Y,可将数字信号采样Y提供给压缩部分13和上升采样部分37,其中执行上升采样以将数字信号采样Y转换成与浮点格式的数字信号采样X相同采样频率的整数格式数字信号采样,且将所得整数格式的数字信号采样提供给浮点格式化部分15并转换成浮点格式数字信号采样X′。
可不对整数格式化部分12的输入,而对整数格式化部分12输出的整数格式数字信号采样执行这种下降采样操作。即,如图12中虚线框36所示,可将下降采样部分36插在整数格式化部分12的输出侧。在任何情况下,在解码器侧,如图13所示,通过上升采样部分45,对扩展部分21解码所得整数格式的数字信号采样Y作上升采样,以便将其采样频率转换成与输入到图12所示解码器中的下降采样部分36的数字信号采样相同的采样频率上,之后提供给浮点格式化部分22。
在可提高整个系统的压缩效率的情况下,提供这种下降采样部分41。若之前能从信号源11输出的数字信号采样Y中知道会提高压缩比这一事实,可固定下降采样部分41中的下降采样率。然而,若一序列中只有某些块中的数字信号采样X需要下降采样,或若改变每个块的下降采样率更好,如图12中虚线所示,则提供采样序列划分部分31,以将浮点格式的数字信号采样X划分成预定采样数的块。对每个划分块而言,评估部分38根据划分块的压缩效率评估执行下降采样的情况以及不执行下降采样的情况,即,根据压缩部分13输出的代码Ca的位数与压缩部分17输出的代码Cb的位数之和,来确定两种情况下哪种提供的和较小,确定是否在下降采样部分36中执行下降采样或是否增加或下降采样频率以提供更高压缩效率,即,求代码Ca的位数与代码Cb的位数之和,并输出更好或最好情况所对应的代码Ca和Cb。除此之外,辅助代码部分39将表示待输出代码Ca是否已被下降采样的编码、或表示下降采样率的辅助信息作为辅助代码Cd输出。
另一方面,在解码器中,如图13所示,辅助解码部分46将辅助代码Cd解码。根据解码的辅助信息,通过上升采样部分45,以预定速率执行上升采样或不执行。另一做法是,上升采样部分45以解码的辅助信息所指定上升采样速率执行上升采样。
类似地,为提高整个压缩效率,当在编码器中将浮点格式的数字信号采样X转换成整数格式的数字信号采样Y时,可故意下降转换精度。例如,可将数字信号采样X转换成16位整数格式的数字信号采样。即,如图12中的括号所示,通过精度调整部分36,下降浮点格式数字信号采样X中每个采样的量化精度(表示其幅度的位数)。具体而言,例如,当指数E为150时,若符号S为″0″(正),将指数E下降为142,且若符号S为″1″(负),则将指数E上升至158。可通过整数格式化部分12将已转换精度的浮点格式数字信号采样转换成整数格式的数字信号采样Y。将数字信号采样Y提供给压缩部分13和逆向精度调整部分37,其中将数字信号采样Y转换成整数格式的数字信号采样,其量化精度(表示幅度的位数)与浮点格式数字信号采样X的量化精度相同,且将已作精度调整的整数格式数字信号采样提供给浮点格式化部分15,并转换成浮点格式的数字信号采样X′。
在解码器侧,通过精度调整部分45、按与编码器中逆向精度调整部分37所执行的精度调整相等的量、调整已通过扩展部分21作扩展解码后的整数格式数字信号采样Y的精度,之后提供给浮点格式化部分22。尽管可按固定方式执行精度调整,如调整采样频率时那样,评估38可确定是否按划分块执行精度调整,或执行多大程度的精度调整,以提高压缩效率。在这种情况下,输出与精度调整有关的辅助代码Cd。在解码器侧,若辅助解码部分46解码出的辅助信息只表示是否执行精度调整,且若要执行精度调整,则精度调整部分45执行精度调整,或若解码的辅助信息指定调整量,精度调整部分45按所指定调整量调整量化精度。
在编码器侧,可使用上述数位调整、采样频率调整和量化精度调整中的两种或全部。相应地,在解码器侧,使用数位调整、采样频率调整和量化精度调整中的两种或三种。
如图14所示,可用计算机600实现图2、6、9和12中的编码器100,其包括RAM 61、CPU 62、硬盘63、ROM 64、发射机/接收机65、CD/DVD驱动66和音频/视频输入/输出部分67,它们通过总线68相互连接。
ROM 64存储启动该计算机的程序,且硬盘63存储该计算机的操作系统程序。将根据本发明的将执行编码器100的功能的程序先通过CD/DVD驱动66、从诸如CD-ROM和DVD等记录介质71中读入硬盘63,或先通过通信线路和发射机/接收机65下载到硬盘63中。
例如,在音频/视频输入/输出部分67,从外部接收待编码的浮点格式的数字信号采样序列X,并临时存储在充当缓冲器的硬盘63中。为启动编码,将执行编码的程序从硬盘63读入RAM 61中,并由CPU 62执行该程序。可通过通信线路将编码结果,如代码Ca、Cb(或Z)、Cc和Cd从发射机/接收机65传输到外部,或可存储在记录介质65,如CD/DVD驱动66中的CD和DVD之中。
类似地,为通过图14所示计算机实现图5、8、10和13所示解码器200,将执行该解码器功能的程序存储在硬盘63中,且对在发射机/接收机65通过通信线路接收的代码Ca、Cb(或Z)、Cc和Cd执行解码程序。将编码结果输出给显示单元73和扬声器74以再现。
本发明不仅可应用于音乐信号,而且可应用于声音信号和图像信号等。
权利要求
1.一种浮点格式的数字信号的无损编码方法,包括以下步骤(a)将浮点格式的第一数字信号采样转换成整数格式的第二数字信号采样;(b)将所述整数格式的第二数字信号采样序列作无损压缩以产生第一代码序列;(c)产生差信号,其对应于所述整数格式的第二数字信号采样与所述浮点格式的第一数字信号序列之间的差;以及(d)将所述第一代码序列和与所述差信号对应的差信息作为编码结果输出。
2.根据权利要求1所述的浮点格式的数字信号的无损编码方法,其中所述步骤(d)包括对所述差信号作无损压缩以产生第二代码序列的步骤,以及将所述第二代码序列作为与所述差信号对应的差信息输出的步骤。
3.根据权利要求1或2所述的浮点格式的数字信号的无损编码方法,其中所述步骤(c)包括将所述第二数字信号采样转换成浮点格式的第三数字信号采样的步骤,以及产生所述第一数字信号采样与所述第三数字信号采样之间的差以作为所述差信息的步骤。
4.根据权利要求1所述的浮点格式的数字信号的无损编码方法,其中所述步骤(a)包括以下步骤(a-1)针对每个包含多个浮点格式的第一数字信号采样的每个块,检测第一数字信号采样的指数最大值;(a-2)按根据所检测的最大值确定的调整值,调整有关块中第一数字信号采样的指数值,以便从有关块中第一数字信号采样转换的整数值的最大数位数为预定值;(a-3)将有关块中已作指数调整的浮点格式的第一数字信号采样转换成整数格式;以及(a-4)将与所述调整值对应的调整信息编码以产生辅助代码,以及在所述步骤(d)中也输出所述辅助代码。
5.根据权利要求1或4所述的浮点格式的数字信号的无损编码方法,还包括以下步骤对所述第一数字信号采样或所述第二数字信号采样进行下降采样,以使得用于产生所述第一代码序列的数字信号采样的采样频率低于所述第一数字信号采样的采样频率;以及对用于产生所述第一代码序列的数字信号采样作上升采样,以将其采样频率转换成与所述第一数字信号采样相同的采样频率,由此产生用于产生所述差信号的数字信号采样。
6.根据权利要求1或4所述的浮点格式的数字信号的无损编码方法,还包括以下步骤转换每个第一数字信号采样或每个第二数字信号采样的量化精度,以使得用于产生所述第一代码序列的数字信号采样的量化精度低于所述第一数字信号采样的量化精度;以及将用于产生所述第一代码序列的数字信号采样的量化精度提高到所述第一数字信号采样的量化精度,由此产生用于产生所述差信号的数字信号采样。
7.一种浮点格式的数字信号的解码方法,包括以下步骤(a)将第一代码序列解码并扩展以产生整数格式的第一数字信号采样;(b)根据差信息产生差信号;(c)将所述整数格式的第一数字信号采样转换成所述浮点格式的第二数字信号采样;以及(d)组合所述浮点格式的第一数字信号采样与所述差信号,以产生一浮点格式的第三数字信号采样。
8.根据权利要求7所述的浮点格式的数字信号的解码方法,其中所述步骤(b)包括将所述差信息解码并扩展以产生所述浮点格式的差信号的步骤。
9.根据权利要求7或8所述的浮点格式的数字信号的解码方法,还包括以下步骤将辅助代码解码以产生调整信息;以及根据所述调整信息调整所述整数格式的第一数字信号采样或所述组合信号的数位。
10.根据权利要求7或8所述的浮点格式的数字信号的解码方法,还包括步骤在将所述第一数字采样转换成所述浮点格式的第二数字信号采样之前,对所述整数格式的第一数字信号采样进行上升采样,以使其采样频率等于所述差信号的采样频率。
11.根据权利要求7或10所述的浮点格式的数字信号的解码方法,还包括步骤在将所述第一数字采样转换成所述浮点格式的第二数字信号采样之前,将每个整数格式的第一数字采样的量化精度转换为所述差信号的量化精度。
12.一种用于浮点格式的数字信号的无损编码器,包括整数格式化部分,其将浮点格式的输入第一数字信号采样转换成整数格式的第二数字信号采样;第一压缩部分,其对整数格式的第二数字信号采样序列作无损压缩以产生第一代码序列;以及差产生部分,其产生差信号,该差信号对应于所述整数格式的第二数字信号采样与所述浮点格式的第一数字信号采样之间的差,其中将所述第一代码序列和与所述差信号对应的差信息作为编码结果输出。
13.根据权利要求12所述的用于浮点格式的数字信号的无损编码器,还包括第二压缩部分,其对所述差信号作无损压缩以产生第二代码序列,并将该第二代码序列作为与所述差信号对应的所述差信息输出。
14.根据权利要求12所述的用于浮点格式的数字信号的无损编码器,其中所述差产生部分包括浮点格式化部分,其将所述第二数字信号采样转换成浮点格式的第三数字信号采样,以及包括减法器,其产生所述浮点格式的第一数字信号采样与所述第三数字信号采样之间的差,以作为所述差信号。
15.根据权利要求12所述的用于浮点格式的数字信号的无损编码器,还包括数位调整部分,其针对每个包含多个浮点格式的第一数字信号采样的每个块,检测第一数字信号采样的指数最大值,并按根据所检测最大值确定的调整值调整有关块中第一数字信号采样的指数值,以便从有关块中第一数字信号采样转换的整数值的最大数位数为预定值;以及辅助代码部分,其将与所述调整值对应的调整信息编码以产生辅助代码,并输出该辅助代码。
16.根据权利要求12所述的用于浮点格式的数字信号的无损编码器,还包括下降采样部分,其对所述第一数字信号采样或所述第二数字信号采样作下降采样,以使得用于产生所述第一代码序列的数字信号采样的采样频率低于所述第一数字信号采样的采样频率;以及上升采样部分,其对用于产生所述第一代码序列的数字信号采样作上升采样,以将其采样频率转换成与所述第一数字信号采样相同的采样频率,由此产生用于产生所述浮点格式的差信号的数字信号采样。
17.根据权利要求12所述的用于浮点格式的数字信号的无损编码器,还包括精度调整部分,其转换每个第一数字信号采样或每个第二数字信号采样的量化精度,以使得用于产生所述第一代码序列的数字信号采样的量化精度低于所述第一数字信号采样的量化精度;以及逆向精度调整部分,其将用于产生所述第一代码序列的数字信号采样的量化精度提高到所述第一数字信号采样的量化精度,由此产生用于产生所述差信号的数字信号采样。
18.一种用于浮点格式的数字信号的解码器,包括第一扩展部分,其接收第一代码序列,以及将该第一代码序列解码并扩展以产生整数格式的第一数字信号采样;浮点格式化部分,其接收所述整数格式的第一数字信号采样,并将该第一数字信号采样转换成浮点格式的第二数字信号采样;组合部分,其接收基于差信息的差信号,并组合所述差信号与所述浮点格式的第一数字信号采样以产生浮点格式的第三数字信号采样。
19.根据权利要求18所述的用于浮点格式的数字信号的解码器,还包括第二扩展部分,其将所述差信息解码并扩展以产生所述差信号。
20.根据权利要求18或19所述的用于浮点格式的数字信号的解码器,还包括辅助代码部分,其将辅助代码解码以产生调整信息;以及数位调整部分,其根据所述调整信息调整所述整数格式的第一数字信号采样或所述组合信号的数位。
21.根据权利要求18或19所述的用于浮点格式的数字信号的解码器,还包括上升采样部分,其在将所述第一数字采样转换成所述浮点格式的第二数字信号采样之前,对所述整数格式的第一数字采样作上升采样,以使其采样频率等于所述差信号的采样频率。
22.根据权利要求18或19所述的用于浮点格式的数字信号的解码器,还包括精度调整部分,其在将所述第一数字信号采样转换成所述浮点格式的第二数字信号采样之前,将每个整数格式的第一数字采样的量化精度转换为所述差信号的量化精度。
23.一种编码程序,其使计算机按权利要求1至6中的任何一个执行用于浮点格式的数字信号的无损编码方法中的每个步骤。
24.一种解码程序,其使计算机按权利要求7至11中的任何一个执行用于浮点格式的数字信号的解码方法中的每个步骤。
全文摘要
每个采样通过整数转换器(12)将由极性(polarity)、8位指数部分E以及23位尾数部分M组成的浮点型数字信号采样X舍入,以获得整数型数字信号采样Y,并通过压缩部分(13)对数字信号采样序列Y作逆向压缩/编码以输出代码串Ca。通过浮点转换器(15)将数字信号采样Y转换成浮点型的数字信号采样X′。通过减法器(16)计算数字信号采样X′与数字信号采样X之间的差信号ΔX。对差信号ΔX作逆向编码,并输出代码串Cb。
文档编号G10L19/00GK1762099SQ20048000754
公开日2006年4月19日 申请日期2004年4月27日 优先权日2003年4月28日
发明者守谷健弘, 杨戴, 神明夫, 池田和永 申请人:日本电信电话株式会社