信息编码方法、解码方法、共用乘数估计方法、利用这些方法的装置、程序以及记录介质的制作方法

文档序号:2829213阅读:326来源:国知局
专利名称:信息编码方法、解码方法、共用乘数估计方法、利用这些方法的装置、程序以及记录介质的制作方法
技术领域
本发明涉及用于通过通信路径传输声音、音乐等音响信号或图像信号(以下包含这些在内称为信息信号)的多个采样值,或者在记录在信息记录介质的情况下提高传输效率,或者用于减少记录容量等使用的信息压缩编码方法、其解压缩解码方法、估计对用于所述信息压缩编码的多个信息集合的共用的乘数的方法、利用这些方法的装置、程序以及记录介质。
背景技术
作为对于音响信号数据(采样值)允许失真的压缩编码方式,有MP3、AAC、TwinVQ等。另外,作为图像信息数据(采样值)的压缩编码方式,有JPEG等。另外,有不允许失真的可逆的编码(无损编码)技术(例如参照非专利文献1)。另外,容易编辑加工的浮点(floating-point)形式的数据的可逆压缩也重要(例如参照非专利文献2)。另外,以往对于多个数值,作为求共用的最大公约数、即共用的乘数的方法已知欧几里德辗转相除法(Euclidean algorithm)。
在音响信号的情况下,对由麦克风等集音的音响信号以采样频率f、量化位数q进行采样,作为将各个采样值变换成数字值的数字采样输入。此时,对各个模拟的采样乘以共用的常数,从而进行增益调整的情况多。在进行模拟-数字变换之前,在模拟区域乘以常数,之后,在进行模拟-数字变换的情况下,有时在模拟信号区域包含误差。
同样地,在对图像信息信号压缩编码时,在将2维的图像信号进行光栅扫描作为1维的采样序列获得的情况下,有时在取得原来的图像信号时也对各个采样乘以共用的常数从而完成增益调整。
对原来的采样序列的各个采样s0(i),共同地乘以作为增益的实数G而获得的采样s1(i)为s1(i)=s0(i)×G。
将乘以该实数G而获得的采样s1(i)以2进制表现或者IEEE754形式的2进制浮点表现来表现,并将这些数字采样序列编码的情况多。作为IEEE-754被规格化的浮点方式如图1所示为32位。从高位的位起由极性1位、指数部8位、尾数部23位构成。将极性设为S,将以指数部8位表示的值以10进制数方式设为E,将尾数部的2进制数设为M时,该浮点形式的数值以绝对值表现2进制数来表示时,为式(1)。
(-1)s×1.M×2E-E0(1)根据IEEE-754,决定为E0=27-1=127,由此,式(1)中的E-E0能够取-127≤E-E0≤128的范围的任意的值。但是在E-E0=127的情况下,all(都)定义为“0”,在E-E0=128的情况下,all定义为“1”。E-E0=n表示从以式(1)表示的值的整数部分的位数(bit数)中减去1的值、即从最高位的“1”起表示低位的位数。
以往的压缩编码方法例如文献1所示的方法主要是尽量除去输入采样序列的原输入波形(例如音乐信号波形)的冗长性,使信息量减少。另外,在编码装置能够编码的输入波形的振幅(位长度)例如规定为16位。所以,例如位长度为24位的情况下,对高位16位编码,低位的8位原封不动输出或者压缩编码成其它形式来输出。
非专利文献1Hans M.and Schafer R.W.Lossless Compression of DigitalAudio,IEEE Signal Processing Magazine,Vol.18,No.4,pp.21-32(2001).
非专利文献2Dai Yang and Takehiro MoriyaLssless Compression forAudio Data in the IEEE Floating-point Format,AES Convention Paper 5987,AES115th Convention,New York,NY,USA,2003 OCTOBER 10-13.

发明内容
发明要解决的课题在以往的编码方法(装置)中,比预先决定的振幅(位长度)大的输入采样序列不能编码。在变换成能够编码的振幅(位长度)而编码的情况下,编码质量恶化。另外,将不能编码的部分进而作为其它信息(码)的情况下,有信息量增加这样的课题。
例如,作为在将该采样序列以不允许失真的通用(universal)编码方法编码,将采样序列的各采样视为位序列。这里,采样序列x(1)~x(3)如x(1)=10100000(10进制数160),x(2)=100000(10进制数32),x(3)=111000000(10进制数224)这样0连续存在的情况下,能以高压缩率编码。与之相反,如x(1)=11111010(10进制数250),x(2)=110010(10进制数50),x(3)=101011110(10进制数350)这样0和1混合存在的复杂的情况下,难以以高的压缩率编码。
进而,以往的欧几里德辗转相除法的比较处理简单,但是在数值四舍五入的情况下,或者包含误差的情况下,考虑该误差,不能求最大公约数。
本发明的目的在于,即使输入波形的振幅(位长度)比能够进行压缩编码法的振幅(位长度)大的情况下也不增加信息量地编码。而且,提供一种如下技术,即与构成输入采样的位的0和1的混合存在程度无关,能够高效地压缩采样序列的编码技术、解码技术、求利用于所述编码技术的共用乘数的技术。
用于解决问题的手段在本发明中,根据采样序列估计各采样共用的数(共用的乘数A)。将各采样分别除以共用乘数A,并对该除法运算结果进行压缩编码,并至少输出该压缩编码码CY、上述估计乘数A。乘数A可以压缩编码也可以不压缩编码。
解码中,将码CY和乘数A分离,并利用与该编码对应的解码方法对码CY解码,对该解码结果乘以共用乘数A,求原采样。
另外,在所述压缩编码中求共用乘数的处理中,首先从数值集合中决定代表数值。在由该代表数值对各数值进行除法运算后的值中,在正侧误差的最大和负侧误差的最大之间,利用有理近似以正确的值的代表值(不包含误差)除各数值的正确的值后的不可约分数。并且,求该求得的不可约分数值中的分母对于各数值共用的最小的值,利用所述代表值修正该公分母,作为共用乘数。
发明效果例如,在以模拟电平乘以共用的增益的压缩编码处理对象的采样序列的情况下,该共用的增益被估计为共用的乘数,利用该乘法运算,各采样序列被进行除法运算。所以,振幅变小,多数情况下能够原封不动地利用以往的编码法(例如非专利文献1)所示的方法,且品质恶化少,信息量几乎也不增加。
另外,所述除法运算的结果,因为能够除去原来的采样序列共有的冗长性,所以能够大大地减少商的集合的熵(entropy)。所以作为结果能够提高整体的信息压缩率。
例如,在对浮点表现的音响信号应用本发明的情况下,与以往方式比较,能够将信息量平均压缩到1/2~1/3。
进而,在求共用乘数的处理中,对于包含误差的数值的集合,能够求考虑了误差的共用乘数。


图1是IEEE-754标准的浮点表现说明图。
图2是表示编码装置的实施例1的功能结构例的图。
图3是表示该处理步骤的例子的流程图。
图4是表示解码装置的实施例1的功能结构例的图。
图5是表示该处理步骤的例子的流程图。
图6A是表示用于说明本发明的效果的具体的数值例的图,表示采样序列的例子的图。图6B是用于说明本发明的效果的具体的数值例的图,表示将采样序列除以共用乘数的例子。图6C是表示用于说明本发明的效果的具体的数值例的图,是表示除法运算后采样序列的例子。
图7是表示用于说明本发明的效果的其它的具体的数值例的图,是表示采样序列的例子的图。图7B是表示用于说明本发明的效果的其它的具体的数值例子的图,是表示除法运算后的采样序列的例子的图。
图8是表示编码装置的实施例2的主要单元功能结构例的图。
图9是表示其处理步骤的例子的图。
图10是表示解码装置的实施例2的主要单元功能结构例的图。
图11是表示解码装置的实施例3的主要单元功能结构例的图。
图12是表示其处理步骤的例子的流程图。
图13是表示编码装置的实施例4的主要单元功能结构例的图。
图14是表示其处理步骤的流程图。
图15是表示编码装置的实施例5的主要单元功能结构例的图。
图16是表示编码装置的实施例6的主要单元功能结构例的图。
图17是表示编码装置的实施例7的主要单元功能结构例的图。
图18是表示解码装置的实施例7的主要单元功能结构例的图。
图19是表示表示编码装置的实施例7的变形例子主要单元功能结构例的图。
图20是表示与图19对应的解码装置的实施例的功能结构例子的图。
图21是表示编码装置的实施例8的功能结构例的图。
图22是表示编码装置的实施例9的功能结构例的图。
图23是表示编码装置的实施例10的处理步骤的例子的流程图。
图24是表示解码装置的实施例11的功能结构例的图。
图25是表示解码装置的实施例12的处理步骤的例子的流程图。
图26A是表示编码装置的实施例13的功能结构例的图。图26B是表示其解码装置的实施例的功能结构例的图。
图27是表示编码装置的实施例14的主要单元功能结构例的图。
图28是表示编码装置的实施例15的功能结构例的图。
图29是表示解码装置的实施例16的功能结构例的图。
图30是表示编码装置的实施例17的功能结构例的图。
图31是表示解码装置的实施例18的功能结构例的图。
图32是表示实施例19中共用乘数的探索步骤的例子的流程图。
图33是表示其共用乘数检查和商信号的变形例的流程图。
图34是表示对浮点形式进行商信号变形的例子的流程图。
图35是表示将浮点形式变换成整数形式的处理例的流程图。
图36是表示商信号为正的情况下的变形步骤的处理例子的流程图。
图37是表示商信号为负的情况下的变形步骤的处理例子的流程图。
图38是表示利用有理近似求共用乘数的功能结构例的图。
图39是表示其它的例子的图。
图40是进一步表示其它例子的图。
图41是表示利用有理近似求共用乘数的功能结构的其它的例子的图。
图42A是表示利用自相关求共用乘数的数值例的图,是表示移位1位的自相关结果的图。图42B是表示利用自相关求共用乘数的数值例的图,是表示自相关的位数为1的数的例子。
具体实施例方式
以下,参照附图来说明本发明的实施方式。在各图中,对与与其它的图对应的部分赋予相同参照编号而省略重复说明。另外,以应用在以32位的浮点数表现的音响信号序列的情况为例。
实施例1编码处理图2表示本发明的编码装置实施例1的功能性结构例,图3表示其处理步骤例。
来自输入端子11的输入信号序列X=(x(0),x(1),...)为数字变换后的采样序列,其被输入时(步骤S1),由区间(帧)分割单元12分割成规定数N个(例如1024个)的采样序列,虽未图示,但暂时存储在存储单元(步骤S2)。采样序列在音响信号的情况下,考虑以24位的量化位数量化后的整数采样序列或者32bit单精度浮点形式采样序列等。在彩色图像信号的情况下,有分解成各色信息要素而进行光栅扫描后的像素信息的数字化后的采样序列。
作为每个分割区间的输入信号的采样x(i)(i=0,1...,N-1)的集合,至少由余数(remainder)分离处理单元100分离成乘数A和x(i)除以乘数A后的商(quotient)y(i)。在本例中,也分离出x(i)除以A后的余数(误差)z(i)。
例如,输入信号序列X在分割后的每一帧都对乘数估计单元110发送。在乘数估计单元110,对于所有的采样x(i)(i=0,1...,N-1),估计共同的乘数A(步骤S3)。例如,在所有的采样x(i)被共同的值99.0除尽的情况下,共用的乘数A=99.0。关于估计该共用的乘数A的方法,考虑了多种方法,但是,例如使用近似共用因数(ACFApproximate Common Factor)的有理近似(Rational Approximation)。这里,假设提供适当的乘数A。
由乘数估计单元110决定的乘数A发送到除法运算处理单元120、乘法运算单元130、A编码单元15。
在除法运算处理单元120,将由乘数估计单元发送来的乘数A和N个采样x(i)作为输入,计算n个商信号y(i)=x(i)/A(步骤S4)。此时,y(i)可以是整数形式、浮点形式、固定小数点形式的任意一个。在变换成其决定的表现形式时,可以进行舍去、进位、四舍五入、nearest tie to even(舍入成偶数)等舍入处理。
例如,将x(i)变换成双精度的浮点数(这里是64位的浮点数),再利用乘数A进行除法运算。将得到的双精度的商舍入成最接近的单精度(32位)的浮点数后作为商信号y(i)。
由在除法运算处理单元120得到的N个商信号y(i)构成的商信号序列Y=(y(0),y(1),...y(N-1))发送到Y编码单元13和在本例中的乘法运算单元130。
在乘法运算单元130,对从除法运算处理单元120发送来的商信号序列Y的N个信号y(i)的每一个分别乘以从乘数估计单元110发送来的乘数A,从而得到复原后的N个采样x’(i)(步骤S5)。
此时,复原采样x’(i)被舍入成以32位的浮点表现方式能够表现的值的范围。例如,将y(i)和A相乘的结果作为双精度(64位)的浮点数保持,并将得到的双精度的乘法运算结果舍入成最接近的单精度(32位)的浮点数来作为x’(i)。得到的采样序列X’=(x’(0),x’(1),...,x’(N-1))被发送到误差计算单元140。
误差计算单元140将从输入信号取出的N个采样x(i)的每一个中减去从乘法运算单元130发送的N个复原采样x’(i),从而得到由N个误差信号z(i)构成的误差信号序列Z=(z(0),z(1),...,z(N-1))(步骤S6)。该误差信号的计算可以取代使用减法运算而原封不动地将x(i)和x’(i)的32位进行比特单位的异或逻辑运算(xor)。总之,进行x(i)和x’(i)的差分运算即可。
得到的误差信号序列Z在本例中发送到Z编码单元14。
来自乘数估计单元110的乘数A也被输入到A编码单元15。
Y编码单元13、Z编码单元14、A编码单元15将使用已有的信息压缩方法将各个输入信号序列Y、Z、A进行压缩编码后得到的码作为码CY、码CZ、码CA输出(步骤S7)。这些码CY、CZ、CA在合成单元16作为每一帧的位序列被合成,并作为编码数据CX输出(步骤S8)。在Y编码单元13也可以使用如下方法,即利用了波形值的相关的高压缩率的编码方法,例如非专利文献1所示的各种可逆压缩编码,或者MPEG4、AAC、TwinVQ等非可逆的压缩编码法。A编码单元15使用可逆的压缩编码方式。
乘数A在与商信号序列Y或者误差信号序列Z相比小到信息量能够忽略的程度的情况下,如虚线21所示,不设置A编码单元15而原封不动地将乘数A输入到合成单元16也可以。
误差信号序列Z根据输入信号x(i)的性质,有时得不到足够的压缩增益而运算量增加的影响变大。此时,省略Z编码单元14而如虚线22所示,将误差信号序列Z原封不动地输入到合成单元16。
Z编码单元14例如使用熵(entropy)编码法,但是也可以仅使用误差信号z(i)中的高位的位进行熵编码并进行非可逆压缩编码。进而,根据输入信号x(i)的性质,在判断为一定能够使误差信号z(i)变成0的情况下,或者判断为z(i)非常小,即小到实际上不影响再现质量的程度的情况下,如虚线的乘法符号×23所示,可以废弃误差信号序列Z。此时,Z编码单元14被省略,编码数据CX中不包含码CZ。
解码处理图4表示实施方式1的编码装置功能结构例,图5表示解码方法(处理步骤)的例子。
来自输入端子51的编码数据CX将与编码装置相同的采样数作为1帧,并对每一帧进行处理。在编码数据CX输入时(步骤S11),分离单元52将编码数据CX在每一帧分离成码CY、码CZ和码CA,并发送到对应的Y解码单元53、Z解码单元54、A解码单元55(步骤S12)。在Y解码单元53、Z解码单元54、A解码单元55,分别使用与Y编码单元13、Z编码单元14、A编码单元15的各压缩编码方法对应的解压缩解码方法。
各解码单元53~55对分别输入的码进行解码处理,从而求与编码单元13~15的各输入对应的商信号序列Y、误差信号序列Z、共同的乘数A(步骤S13)。另外,在本例中,各编码单元13~15使用可逆编码方法。
余数结合处理单元200对那些解码信号进行结合处理。
乘法运算单元210将从A解码单元55发送来的乘数A以与在解码装置的乘法运算单元130进行的相同的方法,乘以从Y解码单元53发送来的N个商信号y(i),从而得到N个信号x’(i)(步骤S14)。此时,x’(i)被舍入成能够以32位的浮点表现方式表现的值的范围。例如,将与y(i)和A相乘的结果作为双精度(64位)的浮点数保持,并将得到的双精度的乘法运算结果舍入成最接近的单精度(32位)的浮点数,作为x’(i)。该舍入的处理以与在编码装置的乘法运算单元130进行的处理同样的方法来进行。这样,求出到规定的有效位为止的x’(i)。
误差校正单元220通过各个来自Z解码单元54的误差信号z(i)来对来自乘法运算单元210的N个采样x’(i)进行校正处理,从而将原来的信号x’(i)复原。也就是说,在编码装置从x(i)减去x’(i)的情况下,加上与各x’(i)对应的误差信号z(i)。在编码装置进行了x(i)和x’(i)的位单位的异或逻辑运算(xor)的情况下,参照对应的误差信号z(i)的各位,将位于z(i)为1的位置的x’(i)的位反转,得到x(i)。
帧连接单元56使来自误差校正单元220的复原后的N个采样x(i)(i=0,1,...,N-1)连接并输出(步骤S16)。
在编码装置未对乘数A编码的情况下,在分离单元52分离后的乘数A如图4中虚线61所示,直接输入到乘法运算单元210。同样地,在编码装置未对误差信号z(i)编码的情况下,在分离单元52分离后的z(i)如虚线62所示直接输入到误差校正单元220。在编码装置废弃z(i)的情况下,在分离单元52得不到与码CZ对应的码,在误差校正单元220没有什么输入。换而言之,被输入0。
另外,编码装置的乘数A如果与在前帧中得到的乘数A相同,则进而能够减少信息量。具体地说,如图2的A编码单元15所示,在编码装置设置寄存器15a和判定单元15b。寄存器15a中预先保存前帧的乘数A,在判定单元156比较当前帧的乘数A和前帧的乘数A。并且,如果相同,仅将表示该信息的1位作为码CA输出。由此,能够减少编码数据CX的信息量。在解码装置,设置保存图4中的A解码单元55内的前帧的乘数A的寄存器55a、和判定码CA是否与前帧表示相同的乘数的位,如果相同,则不进行码CA的解码处理而将寄存器55a内的乘数A输出到乘法运算单元210的判定单元55b即可。此时,码CA为表示乘数A是否与前帧相同的1位即可,比起不对乘数A编码的情况,能够减少信息量。
参照图6说明如果应用本发明能够提高压缩效率。图6为输入信号x(i)为2进制数表现的情况下的一例。输入信号采样序列x(1)、x(2)、x(3)如图6A所示,在x(1)=250、x(2)=50、x(3)=350的情况下,它们的2进制数表现分别为‘0’和‘1’比较随机地排列着。
将这些采样x(1)、x(2)、x(3)除以共同的乘数A=1.5625时,其商信号y(1)、y(2)、y(3)如图6B所示,分别在10进制数表现方式下为y(1)=160、y(2)=32、y(3)=224。
这些商信号y(1)、y(2)、y(3)的2进制数表现分别如图6C所示,为‘0’连续存在的部分多的‘0’和‘1’的排列。该y(1)、y(2)、y(3)能够进行高压缩编码。也需要发送乘数A,但是采样数多且其大部分为能够高压缩的商信号的情况下,能够大大减少作为整体的压缩编码量。
图7表示应用于IEEE-754浮点数的采样序列的例子。10进制数表现的数值478.4、95.68、669.76的浮点表现分别如图7A所示,其尾数部的23位的‘1’和‘0’的排列相当随机。但是,将它们除以共用乘数2.99时,其商信号如图7B所示,10进制数表现成160、32、224。将这些变成浮点表现时,尾数部的23位的‘1’和‘0’的排列,第一个仅仅高位的第2位为‘1’,第2个所有都为‘0’,第3个仅仅高位的第1位和第2位‘1’。所以,比起图7的原封不动压缩,能够显著地进行高压缩。
实施例2(有效位/舍入选择)根据输入信号如何通过有效位/舍入方法而生成,x(i)的性质不同。作为通常进行浮点的运算的情况的舍入处理,能够按照单精度进行运算,或者能够将以双精度进行乘法运算的结果舍入成单精度。
作为舍入的处理,在规定的有效位,进行舍去,或者进行四舍五入,或者进行舍入成偶数(nearest tie to even)或进位。因此,对商信号y(i)乘以乘数A后生成x’(i)时,估计与输入信号x(i)生成时所使用的相同的方法来使用,从而将误差z(i)最小化。具体地讲,试验了作为运算精度(有效位)、舍入的方法考虑的方法,选择误差z(i)最小的方法。以下说明其具体例子。
说明在图2中的乘法运算单元130中选择商信号y(i)的有效位(运算精度)以及舍入方法的例子。图8表示其主要单元的功能结构例,图9表示其处理步骤例。余数分离处理单元100的乘法运算单元130设置位设定单元130a和舍入设定单元130b。有效位/舍入控制单元150将有效位数和舍入方法设定在位设定单元130a和舍入设定单元130b(步骤L1)。在乘法运算单元130,商信号y(i)和乘数A的乘法运算以设定的有效位数的双精度下进行,对于该乘法运算结果,通过设定的舍入方式来进行单精度的舍入(步骤L2)。其结果x’(i)和输入信号x(i)的差分在误差计算单元140取得,该误差信号z(i)被保存在有效位/舍入控制单元150内的存储单元150a(步骤L3)。
接着,有效位/舍入控制单元150关于所有预先设想的有效位数,以及关于预先设想的各种舍入方法,调查乘法运算单元130的处理是否已经进行了(步骤L4)。如果“否”,则返回步骤L1。如果“是”,有效位/舍入控制单元150将与存储单元150a内的误差信号z(i)中的最小的值对应的有效位数和舍入方法设定在乘法运算单元130内(步骤L5)。并且,进行求关于帧的所有的采样的误差信号z(i)的处理。另外,表示其设定的有效位数和舍入方法的信息的辅助码CB输入到合成单元16(步骤L6)。
此时的解码装置的余数结合处理单元200如图10所简单示出,包括乘法运算单元210和解码单元58,该乘法运算单元210具有位设定单元210a和舍入设定单元210b。B解码单元58将由分离单元52分离后的码CB解码。其有效位数和舍入方法分别在乘法运算单元210内的位设定单元210a、舍入设定单元210b设定。基于这些设定信息,进行解码商信号y(i)和解码乘数A的乘法运算。
实施例3(变形商信号)接着,说明通过将商信号y(i)进行变形处理,减少误差信号z(i)的信息量的其它例子。图11表示其主要单元的功能结构例,图12表示处理步骤例子。
本实施例为了从编码侧的误差计算单元140输出的误差信号z(i)最小,对在除法运算处理单元120得到的商信号y(i)进行变形处理的部分与实施例1(图2)不同。
例如,在除法运算处理单元120,将y(i)计算到规定的有效位的情况下,在从有效位起的低位的位舍去,或者进行四舍五入等的情况下,y(i)包含舍入误差。同样地,在解码装置(图4)的解码步骤中,在乘法运算单元210,在将解码后的y(i)和解码乘数A相乘时,也有时会产生舍入误差。通过这两次的舍入处理,有时误差被累积,误差信号z(i)变大。
在本实施例中,预先考虑通过解码时的乘法运算处理产生的误差,将y(i)变形为y’(i),由此能够降低误差信号z(i)的信息量。
对各输入采样x(i),将独立地将商信号y(i)变形,并将误差信号z(i)最小的变形误差信号作为y’(i)。由此,在乘数估计单元110中估计的乘数A包含误差的情况下,也能够降低乘数A的估计误差的影响。例如,1帧的1024采样x(i)的大部分,在有效位的范围内被乘数A除尽,仅一部分的采样x(i)未被乘数A除尽的情况下,通过进行对y(i)的所述变形操作,能够降低误差信号z(i)的信息量。
除法运算处理单元120将x(i)除以A,并将舍入处理后的商信号y(i)发送到变形处理单元160。
变形处理单元160将从除法运算处理单元120发送来的y(i)变形,决定z(i)为最小的变形后的y’(i)。利用图12简单地说明用于决定y’(i)的步骤。(详细内容如后所示。)调查输入信号采样x(i)的绝对值是否比乘法运算单元130的乘法运算结果的绝对值|Ay’(i)|大(步骤L11)。如果大,则在y’(i)的最低位的位加上1(步骤L12)。例如,y’(i)在2进制数表现方式下为+1.00000000000000000111111×2^0的情况下,通过在最低位的位加上1,y’(i)的值为+1.00000000000000001000000×2^0。在步骤L11,如果|x(i)|不比|Ay’(i)|大,则从y’(i)的最低位的位中减去1(步骤L13)。在步骤L12或者L13之后,将变更后的y’(i)和乘数A在乘法运算单元130进行乘法运算处理(步骤L14)。调查乘法运算处理结果的绝对值|Ay’(i)|是否与输入采样的绝对值|x(i)|相等(步骤L15)。如果不相等,调查步骤L11的判定是否有变化(步骤L16)。例如,前次的判定为|x(i)|>|Ay’(i)|,但是本次变化成|x(i)|<|Ay’(i)|的情况下,将前次的误差信号z(i)和本次的误差信号z(i)小的一方输出到Z编码单元14,并且,将对应的y’(i)输出到Y编码单元13(步骤L17)。所以,来自误差计算单元140的误差信号z(i)为了能够在步骤L17进行比较并输出,通常预先保持前次的量。另外,y’(i)的初始值使用y(i)。
在步骤L16中,如果在步骤L11的判定没有变化,则返回到步骤L11。另外,在步骤L15中,两者如果相等,则为误差信号z(i)=0,结束对于该输入采样x(i)的y(i)的变形处理。在变形处理单元160中,设置判定单元160a、增减单元160b以及在步骤L17所需要的误差信号的存储单元160c,其中,判定单元160a进行步骤L11、L15、L16、L17的判定,增减单元160b进行对于步骤L12、L13中的前次的y’(i)的变形和保持。
另外,将z(i)反馈到变形处理单元160,使得基于来自误差计算单元140的输出z(i)的极性(符号),进行与步骤L12或者L13同样的变形处理,从而决定误差信号z(i)最小的y’(i)也可以。主要是作为变形处理单元140的处理,将y(i)的有效位的最小位以最小单位一点一点增减,使得误差信号z(i)最小来决定y’(i)。
这里,误差信号z(i)为最小的y’(i)的候选存在多个的情况下,选择y’(i)的最LSB(最低位)侧的不为0的位处于最MSB(最高位)的值(有时通过减少y’(i)的构成位当中不为‘0’的位的数,能够提高编码装置的压缩效率。)。
这里,在误差为最小的y’(i)存在多个的情况下,选择在构成要素的位1最少的y’(i)也可以。
如以上那样,y(i)变形后的y’(i)被输入到Y编码单元13。另外,在除法运算处理单元120不进行舍入,预先以比y(i)的所希望的有效位多的有效位的精度计算除法运算结果,也可以求将y(i)变形后的y’(i),使得包含基于对乘法运算单元130的乘法运算结果的舍入的误差的所有的误差信号z(i)最小。也就是说,编码装置中的乘法运算单元130的乘法运算处理如果为与在解码装置中进行的乘法运算单元210的乘法运算处理相同的结果,则既可以在除法运算处理单元120进行舍入处理,也可以在变形处理单元160与变形同时进行。
实施例4(变形商信号)本实施例4也对商信号y(i)进行变形处理,但是决定y’(i)时的评价尺度与实施例3不同。作为变形处理单元170的处理,在Y编码单元13、Z编码单元14使用可逆编码的情况下,对y(i)进行变形来作为y’(i),使得码CY和码CZ的合计的码量最小。例如,使y’(i)的有效位在规定的范围内变化,并探索输出码大小的总和最小的y’(i)。
具体地说,图13表示其主要单元的功能结构例,图14表示处理步骤例。来自除法运算处理单元120的商信号y(i)被输入到变形处理单元170。首先,将与y(i)对应的误差信号z(i)分别编码(步骤L21)。求码CY的码量VY和码CZ的码量VZ的加法运算码量(位数)VY+VZ(步骤L22)。接着,对于y(i)的有效位的最低位的位,仅以最小单位进行预先决定的变形,例如进行加1的运算(步骤L23)。将该变形商信号y’(i)和基于该y’(i)求出的误差信号z(i)分别在Y编码单元13、Z编码单元14编码(步骤L24)。求码CY、CZ的码量的和(位数)(步骤L25)。
调查该码量是否比前次增加(步骤L26)。如果增加,使对于y(i)的变形相反,也就是说,在步骤L23对最低位的位加了1的情况下,进行从最低位的位减去1的运算。对该变形y’(i)和对应z(i)编码(步骤L28),并求这些加法运算码量(步骤L29),调查码量变化成减少了还是增加了(步骤L30)。
如果未增加,将y’(i)在与到此为止相同方向上进一步变形,返回步骤L28(步骤L31)。在步骤L26如果码量没有增加,则转移到步骤L31。如果在步骤L30判定为码量的变化变化成了增加,则将与之前的码量和本次的码量当中少的一方对应的码CY、CZ输出到合成单元16(步骤L32)。
在变形处理单元170内,设置码量加法运算单元170a、判定单元170b、增减单元170c、存储单元170d等,其中,码量加法运算单元170a在步骤L22、L25、L29中将码CY和CZ的码量相加,判定单元170b进行步骤L26、L30的判定、步骤L32内的大小判定等,增减单元170c进行对于步骤L24、L27、L31的y(i)的变形,存储单元170d利用与步骤L32的码量的判定和用于输出前次的CY、CZ等。
例如,在y(i)的位序列中,1连续的情况下,强加上1时,通过按顺序进位,能够变换成0的连续。此时,将加上的1仅增加A倍,误差信号z(i)增加,但是y’(i)的编码效率变好,作为整体,码量减少。
实施例5(商信号变形)在本实施例中,如图15表示主要单元那样,在变形处理单元180内的压缩判定单元180a观测将x(i)除以A后的商信号y(i),例如判定在Y编码单元13中,是否能够良好地、即有效地压缩或者是否符合条件,对于不符合条件的采样设为Y’(i)=0。也就是说,如果不符合条件,根据压缩判定单元180a的输出,开关180b切换到0信号源180c侧,变形为y’(i)=0。在y’(i)=0的情况下,乘法运算单元130的输出为0,从误差计算单元140输出z(i)=x(i)。在压缩判定单元180a判定为y(i)符合条件时,开关180b被切换到除法运算处理单元120而连接,y(i)原封不动地作为y’(i)从变形处理单元180输出。
这样,对于某采样,比起压缩y(i),能够更高效地压缩x(i)的情况下,能够提高整个压缩率。
另外,实施例4、5都可以说是,将y(i)变形,使得从x(i)减去x’(i)后的误差最小。

实施例6(非可逆编码)实施例6为对商信号y(i)通过非可逆编码方法编码的例子。图16表示该功能结构例。来自除法运算处理单元120的商信号y(i)在非可逆压缩编码方法下的非可逆Y编码单元31中被编码。将该编码后的码CY在解码单元32中进行解码,对于该解码后的信号y(i),乘以乘数A进行乘法运算处理,并得到其结果的x’(i)和x(i)的误差信号z(i)。
在解码装置的处理与图4所示的处理同样地进行即可。但是,Y解码单元53使用与非可逆Y编码单元31的非可逆压缩编码方法对应的非可逆解压缩解码方法的方法。
这样,作为非可逆Y编码单元31、Y解码单元,在使用已知的非可逆编码方式的情况下,也在编码单元14、15、解码单元54、55的处理中分别使用可逆编码方法和与之对应的可逆解压缩解码,由此,作为整体能够进行可逆编码。在Z编码单元14、Z解码单元54中也使用了非可逆编码的情况下,作为整体也为非可逆编码。
如图16中虚线所示,在除法运算处理单元120和非可逆Y编码单元31之间插入变形处理单元35,并将来自误差计算单元34的误差信号z(i)输入到变形处理单元35,并将y(i)变形,使得误差信号z(i)最小,从而输入到非可逆Y编码单元31即可。同样地,在变形处理单元将y(i)根据编码数据CX的大小来变形,使得整个的码大小、即编码数据CX的码量最小,提供给非可逆Y编码单元31也可以。
实施例7如前所述,分离成商信号y(i)、误差信号z(i)以及乘数A,从而将它们分别编码,与将x(i)原样地进行压缩编码的情况相比压缩效率高的情况下,分离编码;在将x(i)原封不动地编码的压缩效率高的情况下,将x(i)原封不动地进行压缩编码的例子作为实施方式4,图17表示其一例的编码装置,图18表示解码装置。
图17的分离编码单元300具备余数分离处理单元310、可逆编码方式的Y编码单元320、可逆编码方式的Z编码单元330、根据需要而设置的A编码单元340、合成单元350,这一组是与实施例1~5所示的其中一个对应的。直接编码单元360用于直接对输入信号x(i)编码。在分离编码单元300编码后的编码数据CSX的数据量(信息量、位数)VS和在直接编码单元360编码后的编码数据CDX的数据量VD在压缩率比较单元370进行比较。并且,选择单元380选择数据量少的一方的编码数据。合成单元390将选择的编码数据和用于表示选择了哪一个的选择码(1位)进行合成,作为编码数据CX输出。
在解码装置中,如图18所示,编码数据CX在分离单元400被分离成编码数据和选择码CC。如果码CC表示为分离编码数据CSX,则切换单元410被控制,编码数据CSX被输入到分离解码单元420。如果码CC表示为直接编码数据CDX,则切换单元410被控制,直接编码数据CDX被输入到直接解码单元430。
分离解码单元420内的分离单元440、可逆解码方式的Y解码单元450、可逆解码方式的Z解码单元460、根据需要而设置的A解码单元470、乘法运算单元480、误差校正单元490的组与实施例1~5的解码装置的某一个是对应的。切换单元510对应于选择码CC,输出来自分离解码单元420的解码信号或者来自直接解码单元430的解码信号。另外,切换单元510省略,并连接两解码单元420、430的两输出端,完成了解码处理的信号被输出也可以。
不独立地设置直接编码单元360且省略选择码CC也可以。例如,如图19所示,在Y编码单元321中不仅来自余数分离处理单元310的商信号y(i),也输入乘数A。此时,Y编码单元321的判定单元321a判定乘数A是否为1.0。如果乘数A不为1.0,则切换单元321b被控制,商信号y(i)被输入到商编码单元322,并进行应用于商信号y(i)的编码。判定单元321a判定为乘数A=1.0时,切换单元321b被控制,商信号y(i)、即输入信号x(i)被输入到直接编码单元323。此时的商信号y(i)、即除法运算处理单元120的处理输出因A为1.0,所以为y(i)=x(i),应用于x(i)的编码的编码在直接编码单元323中进行。选择码CC不被输出。另外,选择单元380、合成单元390也被省略,比图17所示的结构简单。
图20表示对应的解码装置。在分离单元440分离后的码CY,被输入到Y解码单元451,同时分离后的乘数A(或者码CA)也被输入到Y解码单元451。在判定单元451a判定乘数A不为1.0时,切换单元451b将码CY输入到商解码单元452。并且,商解码单元452进行应用于码CY的解码。判定单元451a判定为A=1.0时,切换单元451b将码CY输入到直接解码单元453。
并且,直接解码单元453进行应用于码CY的解码。来自Y解码单元451的解码输出y(i)被输入到乘法运算单元480,进行与乘数A的乘法运算处理。比起图18所示的结构变得简单。
实施例8实施例8为分离编码和直接编码的其它例,在图21表示其概略。这里使用的分离编码单元301为作为非可逆Y编码单元31使用非可逆压缩编码的情况。此时,从解码侧考虑时,比起编码大小(码量),重要的是编码波形失真小。
由来自分离编码单元301的Y码CY、误差码CZ以及乘数A(或者其码CA)构成的编码数据CSX,在局部解码单元302解码,并得到解码信号序列X’。来自直接编码单元360的编码数据CDX在局部解码单元303被解码,并得到解码信号序列X”。失真计算单元304计算局部解码信号序列X’与原输入信号序列X的波形失真。失真计算单元305计算局部解码信号序列X”与原输入信号序列X的波形失真。这些计算后的失真当中最小的失真在判定单元306判定。选择单元380基于该判定结果,选择失真小的编码数据。合成单元390将来自选择单元380的编码数据和用于表示选择了来自判定单元306的某一个的选择码CC进行合成,并输出编码数据CX。
实施方式5将由余数分离处理得到的商信号序列Y和/或误差信号序列Z递归式地进行余数分离处理。
实施例9(编码1)图22表示其功能结构例。输入信号序列X被输入到余数分离处理单元100,从而被分离成商信号序列Y1、误差信号序列Z1、乘数A1。该商信号序列Y1在余数分离处理单元101Y进而被分离成商信号序列Y2、误差信号序列Z2、乘数A2。该商信号序列Y2在余数分离处理单元102Y被分离成商信号序列Y3、误差信号序列Z3、乘数A3。
在本例中,进行了3次递归式的分离。最后的商信号序列Y3在Y编码单元103Y被进行可逆压缩编码,并作为CY3输出。误差信号序列Z1、Z2、Z3分别在Z编码单元103Z1、103Z2、103Z3进行可逆压缩编码,并作为码CZ1、CZ2、CZ3分别输出。乘数A1、A2、A3原封不动或者被进行可逆编码,作为CA1、CA2、CA3输出。合成单元16将码CY3、CZ1、CZ2、CZ3、A1(或者CA1)、A2(或者CA2)、A3(或者CA3)合成,并作为编码数据CX输出。
对于误差信号序列Z1,也可以同样地进行递归式的编码。在图22中以虚线表示该例。误差信号序列Z1在余数分离处理单元101Z被分离成商信号Y(Z1)、误差信号序列Z(Z1)、乘数A(Z1)。该误差信号序列Z(Z1)在余数分离处理单元102ZZ1被分离成商信号序列Y(ZZ1)、误差信号序列Z(ZZ1)、乘数A(ZZ1)。此时,合成单元16将商信号Y1的可逆编码码CY1、由商信号序列Y(ZZ1)的可逆编码单元104Y编码后的码CYZZ1、误差信号序列Z(Z1)、Z(ZZ1)与分别由编码单元104Z1、104Z2进行可逆编码后的码CZZ1、CZZZ1、以及乘数A(Z1)(或者其码CAZ1)、A(ZZ1)(或者其码CAZZ1)进行合成,并作为编码数据CX输出。
进而,也可以将在余数分离单元处理分离后的商信号和误差信号两者进行递归式的分离编码。此时,在图22的例子中如虚线所示,误差信号Z2在余数分离处理单元102Z被分离成商信号序列Y(Z2)、误差信号序列Z(Z2)、乘数A(Z2)。Y(Z2)、Z(Z2)分别在编码单元105Y、105Z进行可逆编码,并输出码CYZ2、CZZ2。另外,在余数分离处理单元101Z分离后的商信号序列Y(Z1)在余数分离处理单元102YZ1被分离成商信号序列Y(YZ1)、误差信号序列Z(YZ1)、乘数A(YZ1)。商信号序列Y(YZ1)、误差信号序列Z(YZ1)分别在编码单元106Y、106Z被编码,输出可逆码CYYZ1、CZYZ1。
结果,合成单元16除了码CY3、CZ3、CYZ2、CZZ2、CZ2、CYYZ1、CZYZ1、CYZZ1、CZZZ1、CZZ1之外,将乘数A3、A(Z1)、A2、A(YZ1)、A(ZZ1)、A(Z1)、A1或它们的码合成,作为编码数据CX。
实施例10(编码2)这样递归式分离编码进行到作为对象的商信号或者误差信号不能分割为止。或者进行到得不到分割的码的大小(编码数据CX的位数)减少的效果为止。
在实施例10中,表示将商信号序列Y递归式地分割的情况。图23表示该处理步骤。首先,对于输入信号序列X,进行余数分离处理,从而进行分离编码,求由CY、CZ、A(或者CA)构成的编码数据CSX。并且,对输入信号X序列直接编码,求编码数据CDX(步骤s1)。比较编码数据CSX和CDX的大小,从而判定是否选择分离编码(步骤S2)。CSX数据量少且分离编码被选择时,对于该分离的商信号序列Y进行余数分离处理,从而进行分离编码,并求由商码CYi、误差码CZi、乘数Ai(或者其码CAi)构成的编码数据CXi(步骤s3)。
作为该方式下的输出编码数据CX的数据量,计算在当前的处理中求出的CYi、和之前的处理中求出的所有的误差码CZi和所有的乘数Ai的合计的位数VSi(编码数据的数据量)(步骤s4)。比较数据量VSi和直接编码的编码数据CDX的数据量VD,调查数据量VSi小且比起前次的分离编码数据量VSi-1小的情况(步骤s5)。如果满足该条件,将在当前的处理中求出的CZi和Ai存储在存储单元,返回步骤s3(步骤s6)。
在步骤s5中,是否比VD小但比VSi-1大呢?如果不比VD小,将在刚刚处理中得到的CYi和刚刚处理为止得到的所有的CZi和Ai作为编码数据CX输出(步骤s7)。如果在步骤s2,数据量VD小,则将直接编码数据CDX作为编码数据CX输出(步骤s8)。
实施例11(解码1)图24表示将对图22中所示的商信号序列Y递归编码后的编码数据CX解码的例子。来自分离单元52的码CY3在商解码单元71被解码,并输出Y3。乘法运算单元2101对该Y3进行乘以来自分离单元52的乘数A3的乘法运算处理。误差解码单元721误差码CZ3进行解码,得到误差信号序列Z3。校正单元2201利用解码后的误差信号序列Z3对乘法运算单元2101的输出进行校正,得到商信号序列Y2。
乘法运算单元2102进行Y2和来自分离单元52的乘数A2的乘法运算处理。误差解码单元722对来自分离单元52的误差码CZ2解码,并得到误差信号序列Z2。校正单元2202利用误差信号Z2对来自乘法运算单元2102的输出进行校正,得到商信号序列Y1。在乘法运算单元2103对该Y1进行乘以来自分离单元52的乘数A1的处理。误差解码单元723对来自分离单元52的误差码CZ1解码,并得到误差信号序列Z1。校正单元2203利用误差信号序列Z1对乘法运算单元2103的输出进行校正,并输出原信号序列X。
实施例12(解码)参照图25说明对与该递归码的通常的解码处理步骤的例子。首先,将输入编码数据CX分离成各个码,存储在存储单元(步骤s11)。接着,选择在该存储单元中的未解码当中的编码中的最后级得到的各个码(步骤s12)。对这些各个码进行解码(步骤s13)。最初得到商信号、误差信号和乘数,从下一次开始,得到例如在图24所示的例子中的误差信号和乘数。
使用这些解码后的信号进行余数结合处理(步骤s14)。也就是说,解码后的商信号(或者在前次的处理中得到的商信号)被进行乘法运算处理。并且,其结果被解码后的误差信号校正。
接着,调查存储单元中是否有未选择的码,如果有,返回步骤s12,如果没有,则结束处理(步骤s15)。这样,原输入信号序列X被解码。
实施例13在先前表示的各个实施例子中,以帧单位输入到余数分离处理单元100。在本实施例中,在输入到余数分离处理单元100之前,如图26A所示,在输入判定单元41检查x(i),并判定是否输入到余数分离处理单元100。例如,在输入采样以单精度的浮点数表示的情况下,有无限大的值或者不能作为数值表示的NaN这样的值的情况。在输入判定单元41,该判断单元41a判断为x(i)=NaN时,控制切换单元41b,从而从0源41c对余数处理单元100输出0来取代x(i),并将x(i)输出到X编码单元42。
输入判定单元41在采样x(i)为0的情况下,将0输出到余数分离处理单元100,同时也对X编码单元42输出0。
X编码单元42将对x(i)编码得到的码输出到合成单元16。
解码装置如图26B所示在Y解码单元57将y(i)复原。判定单元57a判断为y(i)=0时,通知给X解码单元58。X解码单元58对应于该y(i),对从分离单元52分离出来的码解码,从而输出x(i)。该x(i)被输入到误差校正单元220。误差校正单元220对与输入的y(i)=0对应的x’(i)=0加上所述解码后的x(i)。
实施例14在该实施例13(图11)中,表示了求y(i)的变形y’(i),使得误差z(i)变得最小的例子。
所输入的采样x(i)原本为不能进行除法运算的值,被乘数A除时,有时误差会变得过大。例如,输入采样以单精度的浮点数表现的情况下,有时为无限大的值或者不能作为数值表现的NaN的值。
输入信号x(i)为NaN的情况下,x(i)除以乘数A的结果而得到的y(i)也为NaN。在本实施例中,编码装置取代图11中的变形处理单元160,在图27中具有变形处理单元161。变形处理单元161在判定单元161a判定为从除法运算处理单元120发送来的y(i)为NaN时,控制切换单元161b,将来自0源161c的y’(i)=0输出到Y编码单元13以及乘法运算单元130。
在乘法运算单元130,对y’(i)乘以乘数A,计算x’(i)。由此,因为y’(i)=0,所以乘法运算单元130的输出为x’(i)=0,误差计算单元140的输出z(i)为x(i)=NaN。此时,在误差计算单元140中计算误差。在实施例3中,在进行误差计算时,进行了x(i)和x’(i)的减法运算处理,但是在x(i)=NaN的情况下,减法运算未定义,所以不能正确地进行减法运算。
因此,在本实施例中,在y’(i)=0的情况下,原封不动地设定x(i)作为误差信号z(i)。另外,图27的变形处理单元161中的处理单元161d具有与图11中的变形处理单元160同样的功能。
在解码处理装置的误差校正单元220中,需要进行与上述相反的处理。即,为复原后的y’(i)=0的情况下,对y’(i)乘以乘数A而得到的x’(i)也为0。误差校正单元220因x’(i)=0,所以将在Z解码单元54解码后的z(i)=x(i)原封不动地输出。
此时也如图26B所示,判定单元57a判定为y(i)=0时,控制开关261,设定成来自Z解码单元54的解码输出z(i)=x(i)作为x(i)输出。此时,没必要进行乘法运算单元130以及误差计算单元140中的处理,处理变得简单。
另外,在图27中,判定单元161a判定y(a)为NaN时,为y’(i)=0。并且,开关271接通,X编码单元272对输入信号x(i)编码。其编码输出CZ通过开关273输入到合成单元16也可以。此时,解码装置如图26B所示,将在分离单元52分离后的码CZ输入到X解码单元58。并且,判定单元57a判定解码后的y(i)为0时,控制开关262,将X解码单元58的解码结果作为解码后的x(i)输出也可以。
作为Z编码单元14,例如应用Rice编码法、代数编码法等。作为X编码单元272,哈夫曼编码法、LZ编码法等。Z解码单元54、X解码单元26B1是对应于对应的编码单元的编码法的。
在浮点表现下,规格化(normalize)为1.......,该小数点以下的23位被作为尾数部。而且,指数的最小值为-127,在指数为-127的情况下,表示为0或者非规格化数。指数为-126,且仅尾数部的最低位的位为1的情况下,为以浮点能够规格化表现的绝对值的最小值。绝对值为该值以下的数值不能进行用于浮点表现的规格化。输入信号x(i)为浮点表现的采样序列的情况下,除了NaN之外,有时x(i)为非规格化数。也就是说,存在指数为-127且尾数部的最高位的位的一个高位的位不是1的情况(在IEEE-754形式的2进制浮点表现方式下,比利用规格化的形式表现的最小值小的情况)。x(i)为非规格化数的情况下,进而将x(i)除以乘数A时,由于下溢(underflow)而损失信息。所以,在作为y(i)编码时,有时不能高效率地进行压缩编码。
为了避免该问题,有作为变形处理单元161中的判定单元161a也能够判定x(i)为非规格化数的方法。在该方法中,判定为x(i)为非规格化数时,变形处理单元161将y(i)变形成y’(i)=0,输出到Y编码单元13以及乘法运算单元130。
乘法运算单元130对y’(i)乘以乘数A来计算x’(i)。所以,变为x’(i)=0,解码后的z(i)=x(i)被输入到Z编码单元14。与先前的情况一样,在判定为是非规格化数且使y’(i)=0的情况下,控制开关271、273,将解码后的z(i)=x(i)原封不动地设定为解码x(i)也可以。此时的解码装置的处理与参照图26B叙述的一样。
另外,输入信号x(i)为整数,且乘数A<1的情况下,x(i)除以乘数A得到的商信号y(i)有时会超过能够表现的范围,成为溢出(overflow)状态。所以,例如图27中的变形处理单元161的判定单元161a检测到y(i)的溢出的情况下也为y’(i)=0。此时,在解码装置解码后的商信号y’(i)如果为0,则与前述一样,将码CZ的解码信号z(i)原封不动地作为解码信号x(i)。
说明将本发明和非专利文献2所示的技术组合后的实施方式7。
实施例15(编码处理)图28表示实施例15的编码装置的功能结构例。在该实施例15中,来自除法运算处理单元120的输出y(i)被输入到整数化单元281。整数化单元281将y(i)变换成整数形式的信号y1(i)。另外,并不是将y(i)原封不动地变换成整数形式,而是在变形处理单元进行变形处理之后进行变换也可以。整数形式信号y1(i)有时被规定为输出的最大振幅的位数为24位或者16位。该整数形式信号y1(i)对最小位位进行舍入处理。
该进行舍入处理后的整数形式信号y1(i)与如前述的各种实施例一样,被输出到Y编码单元13。
在该实施例中,浮点化单元282将y1(i)变换成浮点表现,并输出到乘法运算单元130。并且,对于该浮点表现的整数,乘以乘数A。误差计算单元140根据该乘法运算结果,与前述同样进行误差信号生成处理。
在本实施例中,乘数判定单元283进行乘数A是否为1.0的判定。如果A=1.0,则开关284被切换,输入信号x(i)不被输入到误差计算单元140而被输入到差分生成单元285。设置在整数化单元281内的位数计算单元281b对整数形式信号的位数n计数。该位数n也被输入到差分生成单元285。差分生成单元285生成输出信号z’(i),该输出信号z’(i)为将浮点输入信号x(i)的极性S和指数部E、尾数部M的低位(23-n)位保持原样,而将尾数部中的高位n位量都作为0。另外,尾数部的整数部分的位数n=E-E0与整数形式信号y1(i)的最高位的“1”的更低位的位数相等。
该差分信号z’(i)在Z’编码单元286被可逆编码。
所以,合成单元16中输入码CY、码CA(或者A)、码CZ(如果是A=1.0,则为Z’编码单元286的输出,如果不是A=1.0,则为Z编码单元14的输出)。
实施例16(解码处理)图29表示与图28所示的编码装置对应的解码装置。在分离单元52分离的码CY在Y解码单元291被解码,得到整数形式信号y1(i)。整数形式信号y1(i)在浮点化单元292被视为浮点信号。来自A解码单元55的乘数A在乘数判定单元293判定是否为A=1.0。如果A不是1.0,则开关294被切换到Z解码单元54侧,在该Z解码单元54中解码后的误差信号z(i)被提供给校正单元220。
在A为1.0的情况下,开关294被切换到Z’解码单元295侧,码CZ被解码。Z’解码单元295中也被输入在Y解码单元291内的位数计算单元291a计算后的整数形式信号的位数n。Z’解码单元295在浮点表现中的23位的尾数部的高位n位填充“0”,在低位23-n位设定码CZ的解码信号。组合单元295a根据所述尾数部、解码后的编码位S和解码后的指数部E-E0组合浮点形式的差分信号(误差信号)z(i)。该差分信号z(i)被输入到校正处理单元220。
另外,也可以将开关294、Z解码单元54、Z’解码单元一体作为Z解码单元54’。此时,乘数判定单元293既可以为如图29所示独立的构成单元,也可以作为Y解码单元291的一部分,与整数形式信号的位数n一起将乘数A的值提供给Z解码单元54’。
通过图28的变形处理单元281a变形处理成y(i)=0的情况下,如图28虚线所示,在y变形判定单元283判定变形成y1(i)=0时,控制开关288,在X编码单元272对输入信号x(i)直接编码,并将该编码结果作为CZ提供给合成单元16也可以。
如图29中的虚线所示,变形判定单元296判定解码后的y1(i)是否为0。在判定为y1(i)=0的情况下,开关297从校正处理单元220侧切换到X’解码单元26B1侧。并且,在X’解码单元26B1解码后的编码z(i)作为解码信号x(i)输出。
实施例17(编码处理)该实施例是对余数分离处理单元600的输出应用非专利文献2所示的方法的例子。图30表示该实施例的编码装置的功能结构例。在余数分离处理单元600内的(输入判定)乘数估计单元301估计乘数A。乘法运算处理单元120对输入信号进行除法运算处理。变形处理单元302对除法运算结果y(i)进行变形处理,并输出处理结果y’(i)。乘法运算单元130将y’(i)和乘数A进行乘法运算。进而,误差计算单元140进行该乘法运算结果和输入信号的误差计算处理,并输出误差信号z(i)。
整数误差分离单元303内的整数化单元303a将变形处理后的y’(i)根据需要变换成最大振幅被预先决定的整数形式信号y1(i)。另外,y’(i)中的不足整数值(小数点以下)的部分作为浮点误差信号y2(i)输出。Y编码单元13将整数形式信号y1(i)编码成码CY。误差编码单元304对浮点误差信号y2(i)进行可逆编码,并作为码C2Z输出。来自余数分离处理单元600的误差信号序列Z被输入到Z编码单元14。另外,乘数A根据需要被编码输入到合成单元16。
实施例18(解码处理)图31表示对应于实施例17的编码装置的解码装置的功能结构例。Y解码单元53将作为整数形式信号的解码信号y1(i)输出到浮点化单元312。误差解码单元311将来自分离单元52的码C2Z解码成浮点形式的解码信号y2(i),并输出到浮点化单元312。浮点化单元312将y1(i)和y2(i)组合,生成最大振幅被所述预先决定的浮点信号y’(i)。余数结合处理单元200对y’(i)乘以乘数A,并加上在Z解码单元54解码后的误差信号。其它的处理与先前的实施例相同。
图30的误差信号y2(i)和误差信号z(i)都是小振幅的信号,有比较相似的性质,所以,误差编码单元304和Z编码单元14如虚线包围所示,在一个熵编码器中编码也可以。例如,有将帧中的y2(i)都编码之后,将z(i)编码的方法。这样,在使用1个编码器的情况下,即使在解码装置中也可以如图31中虚线包围所示,在一个对应的解码器解码。
作为图28的变形处理单元281a或图30的变形处理单元302,同时使用实施例2~7、9~14说明的各种变形方法当中任意一个或其中某几个也可以。进而,在(输入判定)乘数估计单元301中,与实施例13(图26A)的输入判定单元41同样,输入信号x(i)为无限大的值或者NaN的情况下,判定该值,作为x(i)=0进行乘数估计。也就是说,从余数分离处理单元600输出y’(i)=0。另外,接通开关305,将此时的x(i)在X编码单元42中进行直接编码,并输出到合成单元16。在解码装置中,与图26B一样,在判定单元57a判定为解码后的y(i)为0时,接通开关313。X解码单元58对来自分离单元52的分离码进行解码,输出x(i)。另外,在余数分离处理单元600内的变形处理单元302中也进行与实施例2~7、9~14说明的处理同样的处理,与此对应的处理即使在解码装置中也与图29所示同样地进行。
在实施例15~18中,说明了可逆编码。对于在实施例6(图16)、8(图21)中说明的非可逆编码,也能够应用于实施例15~18。另外,实施例9~12(图22~图25)的递归处理也能够应用于实施例15~18。码Z’、码Z未被分别编码而将上述差分信号、误差信号原封不动地输出也可以。也就是说,即使编码有时也几乎得不到压缩效果。
以下说明以有理近似决定乘数A的方法的实施方式。
实施例19图32表示求多个数值的集合的共同乘数的处理步骤。首先,对每一帧决定是否重新估计乘数A。输入当前帧的所有输入信号x(i)(步骤32-1)。调查当前帧的乘数A是否为1.0(步骤32-2)。如果不是1.0,则作为该当前帧的乘数A的候选(步骤32-3)。对所有的输入信号x(i)调查该乘数A是否妥当,如果不妥当,将该乘数变更成A=1.0(步骤32-4)。调查乘数A是否为1.0(步骤32-5)。如果不是1.0,则将该帧的乘数候选作为当前帧的乘数A(步骤32-6)。
如果在步骤32-2,当前帧的乘数A为1.0,或者在步骤32-5,乘数A为1.0,则使用各输入信号以有理近似估计乘数A(步骤32-7)。调查该乘数A是否为1.0,如果不是1.0,则转移到步骤32-4(步骤32-8)。
接着,参照图33说明调查在图32中的步骤32-7中估计的乘数A,且对除法运算处理结果y(i)变形的步骤的例子。调查所有的x(i)的检查是否结束(步骤33-1)。如果存在未调查的x(i),则调查该输入信号x(i)是否为NaN,是否无限大,是否为0,是否为非规格化数(步骤33-2)。如果为Yes,则使y(i)为0,返回步骤33-1(步骤33-3)。
在步骤33-2中,如果为所述条件之外(如果不是例外的值),该信号x(i)除以估计的乘数A作为y1(步骤33-4)。将y1的尾数部的最低位的位(LSB)用0屏蔽,作为y2(步骤33-5)。对y2乘以乘数A,并将该结果作为x1(步骤33-6)。将信号x(i)减去x1,并将该结果作为z(步骤33-7)。
调查该减法运算的余数z是否为0(步骤33-8)。如果不是0,则调查x1的绝对值是否比信号x(i)的绝对值小(步骤33-9)。如果x1的绝对值小,则对y1的尾数部最低位的位(LSB)加1,将该值设置为y1(步骤33-10)。将该y1的尾数部最低位的位比特用0屏蔽,作为y2(步骤33-11)。对该y2乘以乘数A,将该结果作为x1,返回到步骤33-9(步骤33-12)。
在步骤33-9中,如果x1的绝对值不小,则调查x1的绝对值是否比x(i)的绝对值大(步骤33-13)。如果x1的绝对值大,则从y1的尾数部最低位的位减去1,将其结果作为y1(步骤33-14)。将该y1的最低位的位用0屏蔽后的值作为y2(步骤33-15)。对该y2乘以乘数A,将其结果作为x1(步骤33-16)。接着,从信号x(i)减去x1,将结果作为z(步骤33-17)。确认该减法运算的结果是否为0(步骤33-18)。如果z≠0,则将此时的乘数A作为1.0结束(步骤33-19)。在步骤33-13,如果x1的绝对值不大,则转移到步骤33-17。
如果在步骤33-8以及步骤33-18的任意一个中,z=0,则转移到步骤33-20。如果在步骤33-20中,调查信号x(i)的尾数部的最低位的位的8位是否都为0且y1的最低位的位不为0(步骤33-20)。如果满足这两个条件,则调查y1的最低位的位不为0的采样(信号x(i))的数是否超过了阈值(例如10)(步骤33-21)。如果超过阈值,转移到步骤33-19,如果未超过,则转移到步骤33-22。在骤33-22中,调查信号x(i)的尾数部的最低位的位是否都为0且y1的最低位的位不为0(步骤33-22)。
如果满足步骤33-22的两条件,则调查y1的最低位的位不为0的采样(信号x(i))的数是否超过阈值(例如100)(步骤33-23)。如果超过阈值,则移至步骤33-19。
在步骤33-22中,如果不满足任意的条件,则将y(i)作为y1,转移到步骤33-1(步骤33-24)。在步骤33-8中,如果z为0,则转移到步骤33-20。在步骤33-1中,如果结束对于所有的信号x(i)的乘数的检查,则将该乘数A决定为正确的(步骤33-25)。此时,y(i)也成为所求。步骤33-9至步骤33-16为对y的变形处理。步骤33-9~33-12、步骤33-13~33-16为各个y(i)的动态范围尽量变小的处理。
图34表示y的变形的基本处理。仅说明与图33不同之处。在步骤33-8中,如果z为0,则直接转移到步骤33-24。同样地,在步骤33-18中,如果z为0,则直接转移到步骤33-24。在步骤33-18中,如果z不为0,则调查z是否能够以规定位数(例如32位)以下来表现(步骤34-1)。如果能够表现,则直接转移到步骤33-24,如果不能够表现,则转移到步骤34-2。在步骤34-2中,将y(i)作为0,转移到步骤33-1(步骤34-2)。在步骤33-1中,如果对所有的信号x(i)结束处理,则对该y(i)变形的处理结束。
接着,参照图35说明将浮点变换成整数的处理步骤的例子。该处理能够应用于实施例15(图28)的整数化单元281或实施例17(图30)的整数化单元303a。
对乘数A、信号x(i)、除法运算处理结果y(i),输入在图34中变形处理后的结果(这也记载为y(i))(步骤35-1)。从y(i)的绝对值的最大值当中求移位系数(shift coefficient)Sc(步骤35-2)。编码装置将假想的量化位数作为BMA,利用下式求比例(scale)系数SF(步骤35-3)。
SF=2(BMA-1+Sc)调查是否对所有的x(i)完成了处理(步骤35-4)。如果未完成,调查y(i)是否为0(步骤35-5)。如果为0,则作为y’(i)=0,返回步骤35-4(步骤35-6)。在步骤35-5中,如果y(i)不为0,则调查y(i)是否为正(步骤35-7)。如果y(i)为正,则进行y(i)为正的情况的整数化处理,求y’(i),并返回到步骤35-4(步骤35-8)。在步骤35-7中,如果y(i)不为正,则进行y(i)为负的情况下的整数化处理,求y’(i),并返回步骤35-4(步骤35-9)。在步骤35-4中,如果对所有的x(i)结束处理,则求y’(i)的处理结束。
参照图36说明图35的步骤35-8的y(i)为正的情况下的整数化处理的步骤。对于y(i)乘以了比例SF后的值,舍弃小数点以下,求y’(i)(步骤36-1)。另外,[公式2] 表示A的小数点以下的舍弃。将y’(i)除以比例SF,并将其结果作为y1(步骤36-2)。对y1乘以乘数A,将其结果作为1(步骤36-3)。从信号x(i)减去x1,并求z(步骤36-4)。调查z是否为0(步骤36-5)。如果z不为0,则调查x1是否比x(i)小(步骤36-6)。如果x1小,则对y’(i)加1作为y’(i)(步骤36-7)。将该y’(i)除以比例SF,作为y1(步骤36-8)。对该y1乘以乘数A,作为x1返回步骤36-6(步骤36-9)。
在步骤36-6中,如果x1不小,则调查x1是否比x(i)大(步骤36-10)。如果x1大,则从y’(i)减去1,将其结果作为y’(i)(步骤36-11)。将该y’(i)除以比例SF,并将其结果作为y1(步骤36-12)。对该y1乘以乘数A,并将该结果作为x1(步骤36-13)。从信号x(i)中减去该x1,并将其结果作为z(步骤36-14)。调查该z是否不为0(步骤36-15)。如果z不为0,则调查z是否能够以规定位数(例如23位)以下来表现(步骤36-16)。如果不能够表现,则将y’(i)作为0转移到步骤36-18(步骤36-17)。如果在步骤36-5中,z为0,则此时的y’(i)为求的y’(i)。在步骤36-10中,如果x1不大,则转移到步骤36-18。在步骤36-15中,如果z为0,则转移到步骤36-18。在步骤36-16中,如果能够将z以规定位N以下来表现,则转移到步骤36-18。
另外,在步骤36-16中,在z不能以N位(在本例中为23位)以下表现的情况下,取代y’(i)为0,将乘数A为1.0也可以。此时,y’(i)利用实施例16或者实施例17中进行的方法再次从x(i)中重新求。
接着,参照图37说明y(i)为负的情况下的y(i)的变形步骤的例子。将对y(i)乘以了比例SF后的值的小数点以上进位,作为整数y’(i)(步骤37-1)。这里[公式3] 表示将A的小数点以下进位。将y’(i)除以比例SF,作为y1(步骤37-2)。对该y1乘以乘数A作为x1(步骤37-3)。从信号x(i)减去x1,将结果作为z(步骤37-4)。调查z是否不为0(步骤37-5)。如果z不为0,则调查x1是否比x(i)大(步骤37-6)。如果x1大,则从y’(i)中减去1,将其结果作为y’(i)(步骤37-7)。将该y’(i)除以比例SF,并将其结果作为y1(步骤37-8)。对该y1乘以乘数A,并将该结果作为x1,返回步骤37-6(步骤37-9)。
在步骤37-6中,如果x1不大,则调查x1是否比x(i)小(步骤37-10)。如果x1小,则对y’(i)加上1,作为y’(i)(步骤37-11)。将该y’(i)除以比例SF,求除法运算结果y1(步骤37-12)。对该y1乘以乘数A,并将结果作为x1(步骤37-13)。从x(i)中减去x1,并将结果作为z(步骤37-14)。调查z是否不为0(步骤37-15)。如果z不为0,则调查该z是否能够以规定值(例如23位)位以下来表现(步骤37-16)。如果不能够表现,则将y’(i)作为0转移到步骤37-18(步骤37-17)。如果在步骤37-5中,z为0,则转移到步骤37-18。同样地,如果在步骤37-5中,z为0,则转移到步骤37-18。将各个此时得到的y’(i)作为要求的y’(i)。在步骤37-10中,如果x1不小,则转移到步骤37-18。在步骤37-16中,如果z能够以N位以下来表现,则转移到步骤37-18。这样,对y’(i)变形的处理结束。
另外在步骤37-16中,如果z不能够以N位以下来表现的情况下,取代使y’(i)为0而可以为A=1.0。此时,y’(i)利用实施例15或者实施例17中说明的方法再次重新求。
在输入信号x(i)不以小数点形式而以整数形式表现的情况下,要求共同的乘数,要首先判断该输入信号x(i)的极性。如果为正,则以图36所示的方法进行对y(i)的变形处理,如果为负,则x(i)对y(i)的变形处理以图37所示的方法进行即可。
以下说明前述的乘数估计单元110的乘数A的决定。
实施例20(有理近似)参照图38说明估计通过有理近似产生的乘数A的方法。尾数部变换单元381对所输入的浮点数x(i)的各尾数部的最高位的位(MSB)的1位高位配置1,作为无编码24位整数mx(i)(i=0,1,...,N)。但是,x(i)在为NaN或非规格化数的情况下变换成mx(i)=0。此时,不输入所有输入信号,而例如将x(i)排列成在绝对值表现方式下小的顺序,在分类单元380选出1帧(2048采样)中的0以外的多个(例如512个),输入到尾数部变换单元381也可以。
在GCD计算单元382,根据需要,使用通常采用的欧几里德辗转相除法,计算最大公约数gcd。gcd如果比判定单元382的基准值大,则将该值作为乘数输出也可以。但是,在该例中,将该gcd作为A0,分母选定单元383将例外值(mx(i)=0)以外的mx(i)除以A0,并输出该结果my(i)。并且,使用以下的算法(algorithm)来计算乘数A的估计值。此时,有时也加上A0的调整。
这样的乘数A的估计方法考虑几个。
第一方法(最初的方法.基本)如前所述,求将例外值作为mx(i)的mx(i)一样。
(1)分母选定单元383选择mx(i)中的最大值,并将该值作为X。
(2)一个一个取出例外值(mx(i)=0)以外的mx(i),并在有理近似计算单元384计算下述式(2)。
(mx(i)-1/2)/(X+1/2)<my(i)/Y(i)<(mx(i)+1/2)/(X-1/2) (2)求满足该式(2)的分母最小的不可约分数my(i)/Y(i)。
这里,利用连分数展开。
以下表示有理近似计算单元384的处理步骤。
步骤1以不可约分数写为(mx(i)-1/2(X+1/2))=nlow/dlow,(mx(i)+1/2)/(X-1/2)=nhigh/dhigh。
步骤2如果nlow/dlow<1<nhigh/dhigh,则输出1/1。
步骤3作为dn=max{dlow,dhigh},将与dn对应的分子作为nm。
步骤4设n0=d1=0,n1=d0=1,i=0。
步骤5设k=[nm/dn](不超过nm/dn的最大的整数),r=(将nm除以dn后的余数),nm=dn,dn=r。
步骤6设s=n0+n1×k,t=d0+d1×k,n0=n1,d0=d1。
步骤7设nm(i)=n1=s,dn(i)=d1=t。如果dn>0,则将i增加1返回步骤5,如果dn=0,则转移到步骤8。
步骤8求成为nlow/dlow<nm(i)<nhigh/dhigh的最小的i(在dn=dlow的情况下,仅调查奇数,在dn=dhigh的情况下,仅调查2以上的偶数就足够)。
步骤9在i=1时,求满足(1+k×nm(0))/k<nhigh/dhigh的最小的整数k,并输出(1+k×nm(0))。
在i为比1大的奇数时,求满足(nm(i-2)+k×nm(i-1))/(dn(i-2)+k×dn(i-1))<nhigh/dhigh的最小的整数k,并返回(nm(i-2)+k×nm(i-1))/(dn(i-2)+k×dn(i-1))。
在i为偶数时,求满足(nm(i-2)+k×nm(i-1))/(dn(i-2)+k×dn(i-1))>nlow/dlow的最小的整数k,并返回(nm(i-2)+k×nm(i-1))/(dn(i-2)+k×dn(i-1))。
能够进行以上的处理根据参照高木贞治著“初等整数論理講義”第2版,2003年9月15日共立出版株式会社发行、124~145页(以下称为非专利文献3),如下来理解。根据该非专利文献3的140页的定理2.7以下成立。
对实数ω,指定了误差范围ε>0时,成为ω-ε<a/b<ω(或者ω<a/b<ω+ε)的分母最小的分数a/b为ω的第奇数个(或者第偶数个)主或者中间近似分数。这是将紧接着定理2.7之下的证明(全部4行)的从“并且”开始的后半3行换种说法的。
上述提出的ω为所述有理近似计算单元384的nm/dn,ε为nm/dn-nlow/dlow(或者nhigh/dhigh-nm/dn)。
在有定理2.7的第2章中,将ω作为无理数,但是如140页中间的“注意”中所示,如果注意到分情况等,结论对于有理数的情况也成立。现在这种情况下,有理近似计算单元384的步骤3的‘设为dn=max{dlow,dhigh},将与dn对应的分子作为nm。处于该注意当中(将分母大的作为ω进行连分数展开)。
(3)在公分母确认单元385仅对例外值以外的mx(i)的数求得到的Yi的最大值Y,(4)作为该Y的约数的Yi的数N如果满足预先设定的条件(下述所示),则在共用因数计算单元386作为乘数A的估计值,将Y移位,输出将以浮点表现方式计算使得1≤X/Y<2时的X/Y的结果。
如果不满足条件,则作为乘数A输出1。
所述预先决定的条件的具体例,将除了例外值(mx(i)=0)的数据数作为m,则如下述这样。
N≥C(预先决定的数)N≥cm(0<c<1被预先决定)根据输入信号,已知产生进位的概率,例如在1帧中20%左右为进位的情况下,N为70%的值。另外,尽量利用乘数A从减少码量这一点来看,N为20%左右也可以。另外,在希望使A的精度变好的情况下,为80%左右。另外,A的合理性在后面调查。
变形在上述(4)中,满足条件时,对于成为Y的约数的Yi,将mxi/Yi(在进行移位的基础上Yi满足条件)的平均作为A输出。根据该平均,能够期待A的误差减少。不满足条件时,与上述一样输出A=1.0。
在上述(4)中,求Yi的最小公倍数Y,如果其为X以下,则输出以浮点表现方式计算X/Y(在将Y移位的基础上)的值。也就是说,不清楚Yi是否一定成为最大公约数,但是,如果求Yi的最小公倍数,则一定成为对于整体的最大公约数。或者,使用根据成为Y的约数的Yi计算出的结果的平均。不满足条件时,与上述同样输出A=1.0。
这样,比起以前,能够从更宽的范围选择Yi。
在上述(1)中,代替最大值X,从大的当中取M个(预先决定数,为2以上,理想的是为3~50内的数),对每一个估计A,输出以多数表决而胜出的结果、即mxi中能够最多地共用的结果。
此时,仅以一个来求,则屡屡回避不适当的数据(例如,对于进位的数据和不进位的混合存在的情况下的X)。
在所述(1)中,随机取M个(预先决定的数),以下同样地估计各A,以多数表决来决定。
该理由与从大的当中取M个的理由一样。
在所述(1)中,代替最大值,从大的开始按顺序取,对每一个估计A。
在1以外的估计值A汇集了M个(预先决定的数)时,输出它们。在汇集M个之前,如果没有数据,不足的量作为A=1输出。至于这些多个候选当中,哪一个好呢,最好交给检查计算例程(routine)。例如,对各乘数A进行所述实施例3(图11、图12)说明的变形处理、或者实施例4(图13、图14)说明的变形处理,选择最理想的A。
如图39所示,可以如下变更图38所示的处理。在分母选定单元391,以GCD计算单元282得到的gcdA0对各mx(i)进行除法运算。这是因为,在后面的处理中不在分母选定单元391中求由GCD计算单元382得到的gcd,也就是说因为减少无用的处理。有理近似计算单元392对mx(i)/A0进行与在有理近似计算单元384中的mx(i)同样执行的处理。另外,因为作为mx(i)/A0进行处理,所以共用因数计算单元386对得到的乘数候选扩大A0倍,作为乘数A。
也可以如图40所示,如下变更图38所示的处理。公分母确认单元402在判定单元402a判定为未发现Yi时,在分母选定单元401中,选定其它的一个分母X。该选定按照mx(i)大的顺序或者随机地进行。在预先决定了分母X的选定的次数、例如即使5次也未发现Yi的情况下,输出A=1.0。
图39中,如虚线394所示,在公分母确认单元385中未求Yi的情况下,与如图40说明一样,可以在分母选定单元391中选择其它的分母X。在分母选定单元391中,不是选定M个X,而是一个一个地选定。
在图41的变形例中,有理近似计算单元411求与各mx(i)对应的my(i)/Yi。这里,乘数A使除法运算处理结果y(i)尽量小的为好。所以,在公分母确认单元412中,选择分母Y最小的一个,并确认是否能够作为公分母。在不能作为公分母的情况下,有理近似计算单元411选择下一个大的Y和y(i)的组。公分母确认单元412对该组确认是否能够成为公分母。反复进行该操作,决定最理想的y(i)、Y(i)的组。如图41中虚线所示,如果得不到最大的公分母,则将最初输入的Yi、yi分别增加一个单位,从而求公分母也可以。
第二方法(加入某些数做成组)该方法为对x0,...,xn分别加上预先决定的数来相对减少误差的方法。
最初,将尾数部变换成无编码的24位整数形式mx(i),例外值为mx(i)=0。并且,(1)按大的顺序排列mx(i),从大的当中对每M个分别加上的结果作为Xi(在尾数部变换单元381中)。
(2)取Xi的最大值作为X(在分母选定单元383)。
(3)将Xi一个一个取出,求满足(Xi-/(2M))/(X+1/(2M)<yi/Yi]]><(Xi+1/(2M))/(X-1/(2M))]]>的分母最小的不可约分数yi/Yi(在有理近似计算单元384)。
以下进行第一方法的(4)以下的处理和其变形处理。
这样,比起第一方法相对地减少数据的误差,所以求正确的Y的概率提高。
第三方法(全探索之一.基于y)该方法与求mx(i)的处理相同。
(1)取mx(i)的最大值,作为X。
(2)使用不是成为mx(i)<X的i最小的例外值(mx(i)=0)的xi,求满足(xi-1/2)/(X+1/2)<yi/Yi<(xi+1/2)/(X-1/2)的分母最小的不可约分数yi/Y。
(3)对于例外值(mx(i)=0)以外的所有的xj,调查满足(xi-1/2)/(X+1/2)<yi/Y<(xi+1/2)/(X-1/2)的分母为Y的分数yj/Y是否存在。
(4)如果在所有的情况下都存在,则作为A的估计值输出X/Y。或者输出xj/yj的平均。
如果有不存在的j,则作为满足(xi-1/2)/(X+1/2)<yi/Yi<(xi+1/2)/(X-1/2)的分母,求Y的下一个小的分数,修改该分母作为Y。
如果Y<X,则返回(3),如果Y=X,则输出1。
第四方法(全探索之2.基于A)在该方法中对A进行全探索。
首先参照图38说明使用了所述的有理近似的共用乘数的想法。如前所述,在GCD计算单元382中,如果输入信号x(i)中包含误差,则不能求正确的值。在分母选定单元383中,将1帧中的mx(i)=0以外的适当的代表值作为X(分母)。此时,从最大公约数这一点来说尽量优选信息量多的信号(在前述中为最大值)。
在有理近似计算单元384中,如代表值X和将其帧中的所有的mx(i)(如前所述,从处理中除去mx(i)=0的情况在以后的说明中省略)作为分子的分数mx(i)/X中,考虑mx(i)中包含的误差时,mx(i)/X相对于正确的值,包括负的误差或者正的误差,但是,求该最大误差范围内的yi/Y。在前述中,为四舍五入产生的误差,所以±了1/2,但是如果误差为±α,则求满足下式的分母最小的不可约分数yi/Yi。
(mx(i)-α)/(X+α)<yi/Yi<(mx(i)+α)/(X-α)例如,在mx(i)中有±2的误差,则为α=2。正负的误差非对称的情况下可以使用+α、-β。
该不可约分数yi/Yi一定根据是利用前面所示的非专利文献3中的连分数展开的定理来求。
这样求出的yi/Yi仅有帧当中的mx(i)的数。所以,在公分母确认单元385中,对Yi中的各mx(i)求共用的值。此时,相同的Yi的数如果为预先决定的数以上,则将该Yi作为共用的Y,在共用因数计算单元386中,利用该Yi对X进行除法运算,作为共用乘数A输出。
实施例21(利用自相关)参照图42说明求乘数A的其它的例子。
在各信号x(i)的尾数部的最高位的位(MSB)的1位高位,配值“1”,将24位的值作为mx(i)。求该值和将mx(i)移位成j位(j=1,2,...,23)低位的值的自相关。图42A表示mx(i)和将该值移位一位后的结果mx(i)(1)的、它们的自相关的结果的例子。图42A举出z(i)为12位构成的例子。
对该自相关值中的1的位数进行计数。对j=1,2,...,23进行该操作。对每个j,合计所有的z(i)的相关值当中的1的位数。将对于该合计值超过了阈值的j的合计值作为1,将阈值以下的情况作为0。该判定结果的位序列即为求的乘数A。
作为例子,图42B表示对于z(i)的位数为8的情况下的信号x(0)~x(4),在j=1,2,...,9中的各自相关的位为“1”的数。在图42B中,作为j=1的情况下的自相关值中的位为“1”的数,x(0)为5,x(1)为3,x(2)为2...。在j=2的情况下,x(0)~x(4)的自相关的值的位为“1”的数都为0。在j=3的情况下,对于x(0),x(1),x(2)...的自相关的位为“1”的数,为2,4,1...。对各j=1,2,3,...合计这些自相关值的位为“1”的数的值为23、0、15...。使阈值为10的情况下,是否超过了阈值的判定结果对于j=1,2,3,...,为1,0,1。该判定结果被作为相对于x(0)~x(4)的共用乘数A。另外,随着j变大,在相关值中,为1的位数减少,所以j越大,使阈值越小。
实施例22作为音频信号,将对例如以24位整数形式信号化的信号素材进行变形、振幅调整、效果附加、混合等编辑处理的结果,变换成浮点形式的结果作为输入信号x(i)输入。此时,对原来的24位整数形式信号进行的加减乘除处理被记录,有时能够获知该加减乘除处理。此时,与该输入信号x(i)一起,将加减乘除的运算顺序和系数提供给编码装置。在乘数估计单元,基于该输入的加减乘除信息,决定乘数A。例如,对原信号乘以常数A的情况下,输出该所输入的常数A作为乘数A即可。
上述的编码装置、解码装置、有理近似共用乘数计算装置能够分别利用计算机起作用。此时,用于作为使计算机作为目的的装置(在各种实施例中,具有图示的功能结构的装置)起作用的程序、或者用于使计算机执行该处理步骤(在各个实施例中表示的步骤)的各过程的的程序,从CD-ROM、磁盘、半导体记录装置等记录介质中或者经由通信线路下载到该计算机中,并执行该程序即可。
权利要求
1.一种信息编码方法,具有分解步骤,将在每个规定区间中汇集了多个输入信号的序列分解为共用的乘数、利用该乘数对各输入信号进行除法运算处理后的商信号的序列、以及该剩余的误差信号的序列;商编码步骤,对所述商信号的序列进行压缩编码,从而求商码;以及输出步骤,输出所述商码、所述乘数以及所述误差信号的序列。
2.如权利要求1所述的信息编码方法,其特征在于所述分解步骤为分解为整数形式的所述商信号的序列和浮点形式的所述误差信号的序列的步骤,该信息编码方法还具有误差编码步骤,该步骤对所述误差信号的序列进行压缩编码,从而求误差码,所述输出步骤为输出所述商码、所述乘数、所述误差码的步骤。
3.如权利要求1所述的信息编码方法,其特征在于所述分解步骤为分解为浮点形式的所述商信号的序列和浮点形式的所述误差信号的序列的步骤,该信息编码方法还具有商信号分离步骤,将所述浮点形式的各商信号分离为整数形式的商信号和浮点形式的差分信号,并求整数形式的商信号的序列和浮点形式的差分信号的序列,所述商编码步骤为对所述整数形式的商信号的序列进行压缩编码的步骤,该信息编码方法还具有差分编码步骤,对所述差分信号的序列进行压缩编码,从而求差分码,该信息编码方法还具有误差编码步骤,对所述误差信号的序列进行压缩编码,从而求误差码,所述输出步骤为输出所述商码、所述差分码、所述乘数和所述误差码的步骤。
4.一种信息编码方法,对每个规定的区间中汇集了多个浮点形式的输入信号的序列进行编码,具有共用乘数估计步骤,在共用乘数估计单元估计对构成所述输入信号序列的输入信号所共用的乘数(共用乘数);除法运算处理步骤,在除法运算处理单元利用该乘数对构成所述输入信号序列的各输入信号进行除法运算处理而求商信号的序列;变形处理步骤,在变形处理单元求对构成所述商信号的序列的各商信号进行舍入处理后的整数形式的序列(整数形式商信号序列);商编码步骤,在商信号编码单元对所述整数形式商信号序列进行商编码;乘法运算步骤,在乘法运算单元对所述整数形式商信号序列的各信号乘以所述共用乘数来求浮点形式的信号的序列(浮点形式信号序列);以及误差编码步骤,在误差编码单元对作为所述浮点形式信号序列的各信号和输入信号序列的各信号的差、即误差信号的序列进行编码。
5.一种信息编码方法,对每个规定的区间将汇集了多个浮点形式的输入信号的序列(输入信号序列)编码,具有共用乘数估计步骤,在共用乘数估计单元估计构成所述输入信号序列的输入信号所共用的乘数(共用乘数);除法运算处理步骤,在除法运算处理单元对利用该乘数对构成所述输入信号序列的各输入信号进行除法运算处理而求商信号的序列;整数化步骤,在整数化单元将构成所述商信号的序列的各商信号变换为已变换为整数形式的商信号的序列(整数形式商信号序列);商编码步骤,在商信号编码单元对所述整数形式商信号序列编码;浮点化步骤,在浮点化单元求基于构成所述整数形式商信号序列的各商信号的浮点形式的商信号的序列(浮点形式商信号序列);乘法运算步骤,在乘法运算单元对所述浮点形式商信号序列的各信号乘以所述共用乘数而求浮点形式的信号的序列(浮点形式信号序列);以及误差编码步骤,在误差编码单元对作为所述浮点形式信号序列的各信号和输入信号序列的各信号的差、即误差信号的序列进行编码。
6.如权利要求4所述的信息编码方法,其特征在于所述共用乘数估计步骤从构成所述输入信号序列的输入信号的值当中选定代表值,将该代表值作为分母,将构成所述输入信号序列的各输入信号的值作为分子,通过有理近似计算求这些分数当中的、基于所述各数值的误差的正侧误差和负侧误差间存在的分母最小的不可约分数,求这些求出的不可约分数中的公分母,根据该公分母和所述代表值求对于构成所述输入信号序列的各输入信号的值的共用的乘数。
7.如权利要求4或6所述的信息编码方法,其特征在于所述变形处理步骤包括以下步骤探索副步骤,对于所述各商信号进行了舍入处理后的各商信号,在预先规定的范围内,对最低位的位进行每次加1或减1的加法运算或者减法运算,探索从输入信号中减去所述加法运算或者减法运算后的商信号与所述共用乘数的积后的结果为0的商信号;以及商信号变更副步骤,所述探索副步骤的结果,在对于所有的商信号,所述探索成功的情况下,将所述商信号的集合作为所述整数形式商信号序列,在所述探索的一部分失败的情况下,使共用乘数为1,将所述输入信号本身作为商信号。
8.一种信息解码方法,包括分离步骤,从输入码中分离商码、乘数和误差信号序列;商信号序列解码步骤,对所述商码进行解码,生成商信号序列;乘法运算步骤,对构成所述商信号序列的各商信号乘以所述乘数;校正步骤,以构成所述误差信号序列的各误差信号校正在所述乘法运算步骤生成的信号序列的各信号,从而得到解码信号的序列。
9.如权利要求8所述的信息解码方法,其特征在于所述分离步骤为从输入码中分离商码、乘数和误差码的步骤,所述商信号序列解码步骤为生成整数形式的商信号序列的步骤,该信息解码方法还具有误差信号序列解码步骤,对所述误差码进行解码,从而生成浮点形式的误差信号序列;所述乘法运算步骤对所述整数形式的商信号序列的各商信号乘以所述乘数,从而生成浮点形式的信号序列。
10.如权利要求8所述的信息解码方法,其特征在于所述分离步骤为从输入码中分离商码、差分码、乘数和误差码的步骤,所述商信号序列解码步骤为生成整数形式的商信号序列的步骤,该信息解码方法还具有差分信号序列解码步骤,对所述差分码解码,从而生成浮点形式的差分信号序列,该信息解码方法还具有加法运算步骤,将所述整数形式的商信号序列的各商信号和所述差分信号序列的对应的差分信号相加,从而求浮点形式的商信号的序列,该信息解码方法还具有误差信号序列解码步骤,对所述误差码进行解码,从而生成浮点形式的误差信号序列,所述乘法运算步骤为对所述浮点形式的商信号的序列的各商信号乘以所述乘数,从而生成浮点形式的信号序列的步骤。
11.一种信息解码方法,包括商解码步骤,在商解码单元,将商码解码为整数形式的商信号序列(整数形式商信号序列);误差解码步骤,在误差解码单元,基于误差码得到误差信号序列;乘法运算步骤,在乘法运算单元对构成所述整数形式商信号序列的各信号乘以共用乘数,从而得到浮点形式的信号序列;以及加法运算步骤,对在所述乘法运算步骤生成的信号序列的各信号加上构成所述误差信号序列的各信号。
12.一种信息解码方法,包括以下步骤商解码步骤,在商解码单元将商码解码为整数形式的商信号序列(整数形式商信号序列);误差解码步骤,在误差解码单元,基于误差码得到误差信号序列;浮点化步骤,在浮点化单元生成基于构成所述整数形式商信号序列的各信号的浮点形式的商信号的序列(浮点形式商信号序列);乘法运算步骤,在乘法运算单元,对构成所述浮点形式商信号序列的各信号乘以共用乘数,从而得到浮点形式的信号序列;以及加法运算步骤,对在所述乘法运算步骤生成的信号序列的各信号加上构成所述误差信号序列的各信号。
13.如权利要求11或12所述的信息解码方法,其特征在于所述误差解码步骤包括以下处理在共用乘数为1的情况下,作为各误差信号的尾数部,对从尾数部的总位数当中减去所述整数形式商信号序列的对应的商信号的位数的数的低位侧的位,设定对误差码解码而得到的信号,并对剩余的高位侧的位设定“0”,从而求浮点数表现的误差信号序列,在共用乘数为1以外的情况下,将从误差码中求出的各信号作为浮点表现的各误差信号的尾数部,从而求浮点表现的误差信号序列。
14.一种信息编码装置,具备分割单元,对每个规定区间生成汇集了多个输入信号的输入信号序列;余数分离处理单元,所述输入信号序列被输入,并分解为该输入信号序列的各输入信号所共用的乘数、利用该乘数对各输入信号进行除法运算处理后的商信号的序列、该余数的误差信号的序列;商编码单元,将所述商信号的序列进行压缩编码,从而求商码;以及输出单元,输出所述商码、所述乘数以及所述误差信号的序列。
15.如权利要求14所述的信息编码装置,其特征在于所述余数分离处理单元为分解为整数形式的所述商信号的序列和浮点形式的所述误差信号的序列的结构单元;还具有误差编码单元,对所述误差信号的序列进行压缩编码,从而求误差码;所述输出单元为输出所述商码、所述乘数、所述误差码的结构单元。
16,如权利要求14所述的信息编码装置,其特征在于所述余数分离处理单元为分解为浮点形式的所述商信号的序列和浮点形式的所述误差信号的序列的结构单元,该信息编码装置还具有整数化单元,将所述浮点形式的各商信号分离为整数形式的商信号和浮点形式的差分信号,并求整数形式的商信号的序列和浮点形式的差分信号的序列,所述商编码单元为对所述整数形式的商信号的序列进行压缩编码的结构单元,该信息编码装置还具有差分编码单元,对所述差分信号的序列进行压缩编码,从而求差分码,该信息编码装置还具有误差编码单元,对所述误差信号的序列进行压缩编码,从而求误差码,所述输出单元为输出所述商码、所述差分码、所述乘数和所述误差码的结构单元。
17.一种信息编码装置,在每个规定的区间,对汇集了多个浮点形式的输入信号的序列进行编码,该信息编码装置具备共用乘数估计单元,估计构成所述输入信号序列的输入信号所共用的乘数(共用乘数),除法运算处理单元,对利用该乘数对构成所述输入信号序列的各输入信号进行除法运算处理而求商信号的序列;变形处理单元,求对构成所述商信号的序列的各商信号进行舍入处理的整数形式的序列(整数形式商信号序列);商编码单元,对所述整数形式商信号序列进行编码;乘法运算单元,对所述整数形式商信号序列的各信号乘以所述共用乘数而求浮点形式的信号的序列(浮点形式信号序列);误差编码单元,对作为所述浮点形式信号序列的各信号和输入信号序列的各信号的差、即误差信号的序列进行编码。
18.一种信息编码装置,在每个规定的区间,对汇集了多个浮点形式的输入信号的序列(输入信号序列)进行编码,该信息编码装置包括共用乘数估计单元,估计构成所述输入信号序列的输入信号所共用的乘数(共用乘数);除法运算处理单元,对利用该乘数对构成所述输入信号序列的各输入信号进行除法运算处理而求商信号的序列;整数化单元,将构成所述商信号的序列的各商信号变换为已变换成整数形式的商信号的序列(整数形式商信号序列);商编码单元,对所述整数形式商信号序列进行编码;浮点化单元,基于构成所述整数形式商信号序列的各商信号而求浮点形式的商信号的序列(浮点形式商信号序列);乘法运算单元,对所述浮点形式商信号序列的各信号乘以所述共用乘数而求浮点形式的信号的序列(浮点形式信号序列);以及误差编码单元,对作为所述浮点形式信号序列的各信号和输入信号序列的各信号的差、即误差信号的序列进行编码。
19.如权利要求17所述的信息编码装置,其特征在于所述共用乘数估计单元从构成所述输入信号序列的输入信号的值当中选定代表值,将该代表值作为分母,将构成所述输入信号序列的各输入信号的值作为分子,通过有理近似计算求这些分数当中的、基于所述各数值的误差的正侧误差和负侧误差间存在的分母最小的不可约分数,求这些求出的不可约分数中的公分母,根据该公分母和所述代表值求对于构成所述输入信号序列的各输入信号的值的共用的乘数。
20.如权利要求17或19所述的信息编码装置,其特征在于所述变形处理单元具有探索部件,对于所述各商信号进行了舍入处理后的各商信号,在预先规定的范围内,对最低位的位进行每次加1或减1的加法运算或者减法运算,探索从输入信号中减去所述加法运算或者减法运算后的商信号与所述共用乘数的积之后的结果为0的商信号;以及商信号变更部件,所述探索副步骤的结果,在对于所有的商信号,所述探索成功的情况下,将该商信号的集合作为所述整数形式商信号序列,在所述探索的一部分失败的情况下,使共用乘数为1,将所述输入信号本身作为商信号。
21.一种信息解码装置,包括分离单元,从输入码中分离商码、乘数和误差信号序列;商解码单元,对所述商码进行解码,生成商信号序列;乘法运算单元,对构成所述商信号序列的各商信号乘以所述乘数;校正处理单元,以构成误差信号序列的各误差信号校正在所述乘法运算单元生成的信号序列的各信号,从而得到解码信号的序列。
22.如权利要求21所述的信息解码装置,其特征在于所述分离单元为从输入码中分离商码、乘数和误差码的结构单元,所述商解码单元为生成整数形式的商信号序列的结构单元,该信息解码装置还具有误差解码单元,对所述误差码进行解码,从而生成浮点形式的误差信号序列;所述乘法运算单元为对所述整数形式的商信号序列的各商信号乘以所述乘数,从而生成浮点形式的信号序列的结构单元。
23.如权利要求21所述的信息解码装置,其特征在于所述分离单元为从输入码中分离商码、差分码、乘数和误差码的结构单元,所述商解码单元为生成整数形式的商信号序列的结构单元,该信息解码装置还具有差分解码单元,对所述差分码进行解码,从而生成浮点形式的差分信号序列,该信息解码装置还具有加法运算单元,将所述整数形式的商信号序列的各商信号和所述差分信号序列的对应的差分信号相加,从而求浮点形式的商信号的序列,该信息解码装置还具有误差解码单元,对所述误差码进行解码,从而生成浮点形式的误差信号序列,所述乘法运算单元为对所述浮点形式的商信号的序列的各商信号乘以所述乘数,从而生成浮点形式的信号序列的结构单元。
24.一种信息解码装置,包括商解码单元,将商码解码成整数形式的商信号序列(整数形式商信号序列);误差解码单元,基于误差码得到误差信号序列;乘法运算单元,对构成所述整数形式商信号序列的各信号乘以共用乘数,从而得到浮点形式的信号序列;以及加法运算单元,对在所述乘法运算单元生成的信号序列的各信号加上构成所述误差信号序列的各信号。
25.一种信息解码装置,包括以下单元商解码单元,将商码解码为整数形式的商信号序列(整数形式商信号序列);误差解码单元,基于误差码得到误差信号序列;浮点化单元,基于构成所述整数形式商信号序列的各信号生成浮点形式的商信号的序列(浮点形式商信号序列);乘法运算单元,对构成所述浮点形式商信号序列的各信号乘以共用乘数,从而得到浮点形式的信号序列;以及加法运算单元,对在所述乘法运算单元生成的信号序列的各信号加上构成所述误差信号序列的各信号。
26.如权利要求24或25所述的信息解码装置,其特征在于所述误差解码单元包括在共用乘数为1的情况下,作为各误差信号的尾数部,对从尾数部的总位数当中减去所述整数形式商信号序列的对应的商信号的位数的数的低位侧的位,设定对误差码解码而得到的信号,并对余数的高位侧的位设定“0”,从而求浮点数表现的误差信号序列的部件;以及在共用乘数为1以外的情况下,将从误差码中求出的各信号作为浮点表现的各误差信号的尾数部,从而求浮点表现的误差信号序列的部件。
27.一种共用乘数估计方法,其特征在于从多个数值的组当中选定代表值,将该代表值作为分母,将构成所述组的各数值作为分子,通过有理近似计算求这些分数当中的、基于所述各数值的误差的正侧误差和负侧误差间存在的分母最小的不可约分数,求这些求出的不可约分数中的公分母,根据该公分母和所述代表值对所述多个数值求共用的乘数。
28.一种共用乘数估计装置,包括分母选定单元,从多个数值的组当中选定代表值;有理近似计算单元,所述代表值、所述数值的组、所述数值的误差被输入,并将所述代表值作为分母,将所述各数值作为分子,通过有理近似计算求这些分数当中的、基于所述误差的正侧误差和负侧误差之间存在的分母最小的不可约分数;公分母确认单元,所述各不可约分数被输入,并求公分母;以及共用因数计算单元,被输入所述公分母和所述代表值,对公分母进行校正,输出对所述数值的组的共用乘数。
29.一种程序,使计算机执行权利要求1~13、27中任意一项所述的方法的各过程。
30.一种计算机可读取的记录介质,记录权利要求29所述的程序。
全文摘要
本发明目的在于提供为了提高音频信号的压缩效率,而使用共用的乘数对信号进行分离从而编码的方法、以及对包含误差的数值组求共用的乘数的方法。在每一帧,对各采样估计输入信号采样(x(i))的共用的乘数(A)。利用(A)对各采样(x(i))进行除法运算,以有效位数进行舍入处理,并对商信号(y(i))编码,对(y(i))乘以(A),并从(x(i))中减去该乘法运算结果,求误差信号(z(i)),并对(z(i))编码。对(A)编码,将(y(i))的码、(z(i))的码、(A)的码进行合成并输出。在共用乘数的估计中,利用决定的代表数值对各数值进行除法运算。在最大正侧误差和最大负侧误差之间,利用有理近似求各数值除以正确的值的代表值后的不可约分数。求该求出的不可约分数值中的分母相对各数值为共用的最小的值,利用所述代表值修正该公分母,作为共用乘数。
文档编号G10L19/00GK101036113SQ20058003352
公开日2007年9月12日 申请日期2005年10月14日 优先权日2004年10月15日
发明者原田登, 关川浩, 守谷健弘, 白柳洁 申请人:日本电信电话株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1