编码方法、解码方法、编码装置、解码装置、程序及记录介质 |
|||||||
申请号 | CN201180031632.9 | 申请日 | 2011-07-04 | 公开(公告)号 | CN102959623B | 公开(公告)日 | 2014-08-13 |
申请人 | 日本电信电话株式会社; | 发明人 | 福井胜宏; 佐佐木茂明; 日和崎佑介; 小山翔一; 堤公孝; | ||||
摘要 | 将多个样本进行矢量量化,求得矢量量化索引和量化值,从被分配用于与矢量量化索引对应的码的比特数减去与矢量量化索引对应的码所使用的比特数,将得到的数以下的比特数按照基于听觉特性的规定的优先顺序分配给分别由多个样本 位置 构成且被赋予了基于听觉特性的优先顺序的多个样本位置集合中的1个以上的样本位置集合,对于被分配了比特数的样本位置集合的每个,输出表示使属于该样本位置集合的样本的值、与将属于该样本位置集合的样本的量化值和与每个样本的位置对应的系数相乘的值之间的误差的有关属于该样本位置集合的全部样本位置之和最小的系数的组的索引信息。 | ||||||
权利要求 | 1.一种编码方法,其具有: |
||||||
说明书全文 | 编码方法、解码方法、编码装置、解码装置、程序及记录介质技术领域背景技术[0002] 在专利文献1记载的编码装置中,输入信号首先除以归一化值进行归一化。归一化值进行量化,生成量化索引。归一化的输入信号进行矢量量化,生成量化代表矢量的索引。生成的量化索引及量化代表矢量输出至解码装置中。在解码装置中,解码量化索引,生成归一化值。另外,解码量化代表矢量的索引,生成样本列。生成的样本列的每个样本乘以归一化值而得到的值的列成为解码信号样本列。 [0003] 另一方面,作为量化噪声少的高效率的矢量量化方法,广泛利用例如SVQ法(Spherical Vector Quantization,例如参照非专利文献1)等,在预先设定的量化比特数的范围内,汇总多个输入信号进行量化的矢量量化方法。 [0004] 在SVQ 法 中,使 用 量 化 归 一 化 值 归 一 化 MDCT(Modified DisCrete CosineTransform)系数等输入信号的各样本,归一化的各样本按每个子带进行汇总量化。此时,根据每个子带的听觉的重要性,动态地分配与各子带对应的码比特数(量化比特数)。 另外,在SVQ法中,假定输入信号的稀疏性,优先量化输入信号的主要分量。因此,可高精度量化高次谐波及元音那样频域中的仅存在少量能量的输入信号(稀疏信号)。 [0005] 但是,在以SVQ法量化能量分布于许多频率的输入信号的各样本的情况下,在应存在于输入信号的频率分量不存在于从量化值恢复的解码信号中的(频率分量从解码信号缺损)频率变高。这样,在频率分量从解码信号中缺损的情况下,解码信号的某个频率分量的有无随着时间不连续变化的频率变高。人们对这种频率分量的有无随着时间不连续的变化是敏感的。在输入信号为例如音响信号的情况下,这种变化有时作为称为音乐噪声的噪声而被察觉。另外,在输入信号为视频信号的情况下,有时产生相当于音响信号中的 音乐噪声那样的块状噪声。下面,将音乐噪声及块状噪声统称为“音乐噪声等”。 [0006] 与此相对,与SVQ法相比,具有频率分量从解码信号缺损的频率较低的AVQ法(Algebraic Vector Quantization,例如参照非专利文献2)的矢量量化方法。与SVQ法一样,AVQ法是假定信号的稀疏性的方法,但能够得到可恢复比SVQ法更多的频率分量的量化值。 [0007] 现有技术文献 [0008] 专利文献 [0009] 专利文献1:日本特开平7-261800 [0010] 非专利文献 [0011] 非专利文献1:Recommendation ITU-T G.729.1,SERIES G:TRANSMISSION SYSTEMS AND MEDIA,DIGITAL SYSTEMS ANDNETWORKS,Digital terminal equipments-Coding of analogue signals bymethods other than PCM,G.729-based embedded variable bit-rate coder:An 8-32kbit/s scalable wideband coder bitstream interoperable with G.729. [0012] 非专利文献2:Recommendation ITU-T G.718,SERIES G:TRANSMISSION SYSTEMS AND MEDIA,DIGITAL SYSTEMS ANDNETWORKS,Digital terminal equipments-Coding of voice and audiosignals,Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32kbit/s. 发明内容[0013] 发明要解决的课题 [0014] 但是,AVQ法幅度的量化精度比SVQ法粗糙。例如,即使频率分量从解码信号缺损的频率低,如果幅度的量化精度粗糙,则也会发生音乐噪声等。这种问题不限于AVQ法,与基于量化精度发生音乐噪声等的情况相同。另外,这种问题不仅可以在输入信号为频域的信号的情况下产生,而且,也可以在输入信号为时域的信号的情况下产生。 [0015] 本发明中,提供一种基于降低量化精度发生的音乐噪声等的技术。 [0016] 用于解决课题的手段 [0017] 在编码时,汇总多个样本进行矢量量化,求得矢量量化索引和多个样本 各自的量化值,从被分配用于与矢量量化索引对应的码的比特数减去与矢量量化索引对应的码所使用的比特数,将得到的数以下的比特数根据基于听觉特性的规定的优先顺序分配给分别由多个样本位置构成且被赋予了基于听觉特性的优先顺序的多个样本位置集合中的1个以上的样本位置集合,对于被分配了比特数的样本位置集合分别输出索引信息,该索引信息表示多组的与每个样本的位置对应的预定的系数的组中、使属于该样本位置集合的样本的值、与将属于该样本位置集合的样本的量化值和与每个样本的位置对应的系数相乘的值之间的误差的有关属于该样本位置集合的全部样本位置之和最小的系数的组。 [0018] 在解码时,求与输入的矢量量化索引对应的多个值作为与多个样本位置分别对应的解码值,在构成样本位置的多个样本位置集合中,将根据基于听觉特性的规定的优先顺序而被分配了比特数的样本位置的集合作为处理对象,使用输入的索引信息所表示的与多个样本位置对应的预定的系数的组,输出将与处理对象的样本位置集合所包含的各样本位置对应的解码值和系数相乘的值。 [0019] 发明效果 [0020] 在编码中,为了修正多个样本各自的量化值,输出表示多个斜率系数的组的索引信息,因此,能够降低解码时的量化误差,并降低音乐噪声等。 [0022] 图1是编码装置及解码装置的例子的功能方块图; [0023] 图2是编码方法的例子的流程图; [0024] 图3是步骤E4的例子的流程图; [0025] 图4是步骤E4的例子的流程图; [0026] 图5是解码方法的例子的流程图; [0027] 图6是步骤D3的例子的流程图; [0028] 图7是步骤D3的例子的流程图; [0029] 图8是示例输入信号、量化值和斜率系数(倾斜校正增益)的关系的图。 具体实施方式[0030] 下面,详细说明本发明的一个实施方式。 [0031] (构成) [0032] 如图1中所示例,实施方式的编码装置11包含例如归一化值计算部112、归一化值量化部113、矢量量化部115及斜率计算部116。斜率计算部116相当于“比特分配部”及“系数组选择部”。 [0033] 如图1中所示例,实施方式的解码装置12包含例如归一化值解码部121、矢量解码部122及斜率修正部124。根据需要,编码装置11也可以包含例如频域变换部111。解码装置12也可以包含例如时域变换部125、平滑化部126。 [0034] (编码处理) [0035] 编码装置11执行图2中示例的编码方法的各步骤。 [0036] 输入信号X(k)输入于归一化值计算部112、矢量量化部115及斜率计算部116。该例子的输入信号X(k)是将音响信号等时间序列信号即时域信号x(n)变换为频域而得到的频域信号。频域的输入信号X(k)也可以直接输入编码装置11,也可以由频域变换部 111将时域的输入信号x(n)变换为频域而生成频域的输入信号X(k)。在频域变换部111生成频域的输入信号X(k)的情况下,频域变换部111将输入的时域的输入信号x(n)通过例如MDCT(Modified Discrete Cosine Transform)变换成频域的输入信号X(k)进行输出。n是时域中的信号编号(离散时间编号),k是频域中的信号(样本)的编号(离散频率编号)。n的值越大,对应越晚的时间。k的值越大,对应越高的频率。作为1帧由L个样本构成,时域信号x(n)在频域中每帧进行变换,生成L个构成频率分量的频域的输入信号X(k)(k=0、1、…、L-1)。L是规定的正数,例如为64或80等比1更大的整数。另外,在使用MDCT的情况下,作为输入的时序信号的由L个样本构成的帧逐一向频域变换,成为该变换对象的帧每1/2帧即每L/2个样本进行移位。 [0037] 归一化值计算部112在每帧计算代表输入的输入信号X(k)的L个样本中的规定- -个数C0的样本的值即归一化值τX0(步骤E1)。τX0 是指τX0的上标横杠。在此,τ设为对利用1帧中L个样本中的规定个数C0样本构成的各子带唯一分配的0以上的整数。 [0038] C0是L或1及L以外的L的公约数。另外,将C0设为L是指对每L个样本求得归一化值。使C0设为1及L以外的L的公约数是指将L个样本分割 为子带(相当于“样本位置集合”),对构成各子带的每C0个样本求得归一化值。例如,在L=64、以8个频率分量构成子带的情况下,构成8个子带,计算各子带的归一化值。另外,在C0为L的情况下,τ=-0,归一化值τX0 是代表L个样本的值。即,在C0为L的情况下,对每帧计算1个归一化值- τX0 。另一方面,在C0为1及L以外的L的公约数的情况下,τ是与1帧中的各子带对应- 的整数τ=0、…、(L/C0)-1,归一化值τX0 是代表属于与τ对应的子帧的C0个样本的- 值。即,在C0为1及L以外的L的公约数的情况下,每帧计算(L/C0)个归一化值τX0 (τ=0、…、(L/C0)-1)。另外,不管C0的值如何,都是k=τ·C0、…、(τ+1)·C0-1。 - 在归一化值计算部112计算的τX0 发送至归一化值量化部113。 [0039] [归一化值τX0-的具体例] [0040] 归一化值τX0-是代表C0个样本的值。换言之,归一化值τX0-是与C0个样本对应-的值。归一化值τX0 的例子是相对于下面那样的C0个样本的幂平均值的平方根。 [0041] [数1] [0042] [0043] 归一化值τX0-的另一例子是相对于下面那样的C0个样本的幂合计值的平方根除以C0的值。 [0044] [数2] [0045] [0046] 归一化值τX0-的另一例子是下面那样的C0个样本的平均幅度值。 [0047] [数3] [0048]- - [0049] 归一化值τX0 不限定于上述的例子([归一化值τX0 的具体例]的说明结束)。- - [0050] 归一化值量化部113求得将归一化值τX0 进行量化的量化归一化值τX 及与该- -量化归一化值τX 对应的归一化值量化索引(步骤E2)。τX 是指τX的上标横杠。量化归- 一化值τX 发送至矢量量化部115,与归一化值量化索引对应的码(比特流)发送至解码装置12。 [0051] 矢量量化部115在每帧汇总输入的输入信号X(k)的L个样本中的多个样本X(k)进行矢量量化,生成矢量量化索引。矢量量化索引是表示量化代表矢量的索引。该例子的-矢量量化部115使用量化归一化值τX 归一化多个X(k),求得归一化的多个样本X(k)’。 - - 例如,矢量量化部115通过用X(k)除以τX 或用X(k)乘以τX 的倒数,求得X(k)’。矢量量化部115从例如存储于未图示的矢量码本存储部的多个量化代表矢量中,选择与以多个X(k)’为分量的矢量最接近的量化代表矢量,并输出表示选择的量化代表矢量的矢量量化索引,由此,进行矢量量化。矢量量化部115汇总例如C0个X(k)’进行矢量量化。矢量量化部115使用例如AVQ法(例如参照非专利文献2等)等矢量量化方法进行矢量量化,但也可以采用除此之外的矢量量化方法。另外,在C0为子带的样本数的情况下,也可以对考虑了人们的听觉特性的优先顺序较低的子带不进行矢量量化。例如,越是与易于人们察觉- 的频率对应的子带,优先顺序越高。例如,量化归一化值τX 越大的自带,赋予越高的优先顺序。 [0052] 另外,通过矢量量化得到的码的比特数根据输入信号而变化。根据输入信号不同,有时通过矢量量化得到的码(矢量量化索引等)的比特数小于矢量量化用所分配的比特数,矢量量化用所分配的比特的一部分剩余。另外,“矢量量化用所分配的比特”是指,在从编码装置11发送至解码装置12的码中,被分配用于通过矢量量化得到的码(与矢量量化索引对应的码)的比特。“被分配用于矢量量化的比特数”表示被分配用于矢量量化的比特的比特数。“被分配用于矢量量化的比特数”也可以是每帧决定的比特数,也可以是每子带决定的比特数。另外,“被分配用于矢量量化的比特数”也可以根据输入信号进行变动,也可以不管输入信号而固定。矢量量化部115将被分配用于矢量量化的比特中的在实际的矢量量化中未使用的比特的比特数作为未使用比特数U进行计算。在本方式的例子中,在每1帧(每L个样本)计算未使用比特数U。例如,矢量量化部115将从被分配用于处理对象的帧中的矢量量化的 比特数减去通过实际属于该帧的L个样本的矢量量化而得到的矢量量化索引的比特数的总数的值设为未使用比特数U。U为0以上的整数。 [0053] 另外,矢量量化部115求得将矢量量化索引进行本地解码的值即多个量化值X^-(k)进行输出。例如,矢量量化部115将使用量化归一化值τX 对通过矢量量化索引表示的量化代表矢量的各分量X(k)’进行逆归一化所得的值作为X(k)的量化值X^(k)输出。 - 例如,矢量量化部115将X(k)’和τX 的相乘值作为量化值X^(k)进行输出。该例子的量化值X^(k)与在解码装置12中得到的解码值X^(k)相等。未进行矢量量化的子带的量化值X^(k)成为0。另外,X^是指X的上标帽。 [0054] 矢量量化部115将矢量量化索引、未使用比特数U及量化值X^(k)发送至斜率计算部116(步骤E3)。 [0055] 斜率计算部116将MMAX组的由C0个斜率系数(倾斜校正增益)构成的组保持在例如未图示的存储部。MMAX为2以上的整数。例如,斜率计算部116保持将以C0个斜率系数(倾斜校正增益)γm(k’)(k’=0、…、C0-1)为要素的斜率系数矢量γm=[γm(0)、…、γm(C0-1)](多个斜率系数产生的组)设为第m(m=0、…、MMAX-1)行的行矢量的式(1)所示的斜率矩阵γ。 [0056] [数4] [0057] [0058] 斜率计算部116求得以与输入的C0个样本X(k)(k=τ·C0、...、(τ+1)·C0-1)对应的值为要素的第一矢量和以与输入的C0个量化值X^(k)(k=τ·C0、…、(τ+ 1)·C0-1)的各自乘以斜率系数矢量γm的各要素γm(k’)(k’=0、…、C0-1)而得到的C0个修正值对应的值为要素的第二矢量的误差最小化的(例如设为最小的)斜率系数矢量的行编号m’,并将表示行编号m’的索引信息idx写入在矢量量化用所分配的比特中未使用的比特区域(称为“未使用比特区域”)。 [0059] 换言之,斜率计算部116从将以多个斜率系数γ(m k’)为要素的斜率系数矢量γm设为行矢量的斜率矩阵γ中,输出表示将以与多个样本X(k)对应的值为要素的第一矢量和以与多个量化值X^(k)的各自乘以斜率系数矢量 γm的各要素而得到的修正值对应的值为要素的第二矢量之间的误差进行最小化的斜率系数矢量的行编号m’的索引信息idx,并配置在与矢量量化索引对应的码(比特流)的未使用比特区域(步骤E4)。 [0060] 由此,编码装置11能够有效利用未使用比特区域,将用于修正幅度的量化误差的信息发送至解码装置12,能够降低基于量化精度发生的音乐噪声等。 [0061] 作为斜率系数矢量γm的要素的C0个斜率系数γm(0)、…、γm(C0-1)保持互相相关。换言之,各斜率系数矢量γm是以互相保持相关的多个斜率系数γm(0)、…、γm(C0-1)为要素的矢量。X(τ·C0)、…、X((τ+1)·C0-1)偏向以k为第一轴、以X(k)为第二轴的(k,X(k))平面上的直线或曲线而分布的情况较多。通过使用以考虑这种X(τ·C0)、...、X((τ+1)·C0-1)特性的斜率系数γm(0)、…、γm(C0-1)为要素的斜率系数矢量γm,可高精度修正量化误差。例如,与同一行编号m对应的各斜率系数γm(0)、...、γm(C0-1)偏向以k’(与斜率系数γm(k’)对应的频率对应的值)为第一轴、以γm(k’)(斜率系数的值)为第二轴的(k’,γm(k’))平面上的直线或特定曲线进行分布。换言之,例如将以偏向以与矢量要素的顺序对应的值k’为第一轴、以矢量要素的值γm(k’)为第二轴的(k’,γm(k’))平面上的直线或特定曲线而分布的多个斜率系数γm(0)、…、γm(C0-1)为要素的矢量设为斜率系数矢量γm。更具体而言,例如与同一行编号m对应的各斜率系数γm(0)、…、γm(C0-1)位于(k’,γm(k’))平面上的直线上或特定曲线上。换言之,将以(k’,γm(k’))平面上的直线或特定曲线上的各斜率系数γm(0)、…、γm(C0-1)为要素的矢量设为斜率系数矢量γm。(k’,γm(k’))平面上的直线上或特定曲线,例如每个行编号m均不同。下面,对斜率矩阵γ进行示例。该例子是C0=8、MMAX=3的情况。在该例子中,各斜率系数γm(0)、…、γm(7)配置于对每个行编号m(m=0、1、2)决定的直线上。 [0062] [数5] [0063] [0064] 第一矢量的例子是以C0个X(k)为要素的矢量、以C0个X(k)的大小|X(k)|为要素的矢量、以C0个X(k)或|X(k)|乘以常数或变数的值为要素的矢量等。第二矢量的例子是以C0个修正值为要素的矢量、以C0个修 正值的大小为要素的矢量、以C0个的修正值或大小乘以常数或变数的值为要素的矢量等。修正值的例子是表示X^(k)和γm(k’)的积、X^(k)的大小|X^(k)|和γm(k’)的积、X^(k)和γm(k’)的积的大小、X^(k)和γm(k’)的积的大小的值、与其它X^(k)和γm(k’)的积对应的值等。 [0065] 第一矢量和第二矢量之间的误差的例子是第一矢量和第二矢量之间的距离。对距离的定义没有限定,也可以是曼哈顿距离、欧几里得距离、它们的变形等任一种距离。使第一矢量和第二矢量的误差最小化的斜率系数矢量的例子是使第一矢量和第二矢量的误差最小的斜率系数矢量、或在某个搜索条件及搜索范围内使第一矢量和第二矢量的误差最小的斜率系数矢量等。 [0066] 未使用比特区域可以根据例如决定的未使用比特区域的基准位置(例如初始地址)和输入的未使用比特数U确定。但是,可写入未使用比特区域的索引信息idx的比特数上限是未使用比特数U。因此,不一定能够在未使用比特区域写入所有的与行编号对应的索引信息idx。因此,斜率计算部116只将例如利用可写入未使用比特区域的索引信息idx可识别的行编号的范围的行编号设为搜索范围。换言之,斜率计算部116只选择可写入未使用比特区域的索引信息idx表示的行编号。例如,斜率计算部116由利用可写入未使用比特区域的索引信息idx可识别的mMAX种类的行编号m=0、…、mMAX-1,特定下面那样的行编号m’,并在未使用比特区域写入与行编号m’对应的索引信息idx。 [0067] [数6] [0068] [0069] 另外,∥·∥是·的模,argminm∥·∥是指将使∥·∥最小的m设为m’,argminm是指argmin下标的m,χ=[X(τ·C0)、…、X((τ+1)·C0-1)]、χ^=[X^(τ·C0)、…、X^((τ+1)·C0-1)],Am是指对角分量中具有与下面那样的行编号m对应的斜率系数矢量γm=[γm(0)、…、γm(C0-1)](m=0、…、mMAX-1)的对角矩阵。 [0070] [数7] [0071] [0072] 的C0为子带的样本数的情况(τ>0的情况)下,斜率计算部116在未使用比特区域配置例如对每个子带表示斜率系数矢量的行编号m’的索引信息idx。在该情况下,为了分别存储与各子带对应的索引信息idx,必须向各子带分配未使用比特区域。斜率计算部116根据考虑了例如人们的听觉特性的规定的优先顺序,决定配置各子带的索引信息idx的未使用比特区域中的比特区域。 [0073] 例如斜率计算部116根据分别赋予子带(相当于“样本位置集合”)的优先顺序,确定配置与其子带对应的索引信息idx的比特区域的大小。例如,越是与易于人们察觉的频率对应的子带,优先顺序越高。例如斜率计算部116优先在未使用比特区域配置优先顺序高的子带的索引信息idx。具体而言,例如,斜率计算部116使配置与优先顺序高的子带对应的索引信息idx的比特区域更大于配置与优先顺序低的子带对应的索引信息idx的比特区域。换言之,向作为子带的其中一个的第一子带分配的比特数为向优先顺序比该第一子带更低的第二子带分配的比特数以上。另外,例如,斜率计算部116不分配用于配置与在矢量量化部115未矢量量化的子带对应的索引信息idx的比特区域。例如,未进行矢量量化的子带的X^(k)全部为0,因此,斜率计算部116对所属的X^(k)的幅度及能量之和成为0的子带不分配用于配置索引信息idx的比特区域。在该情况下,不需要对未进行矢量量化的子带进行例如用于确定索引信息idx的处理。 [0074] 如以上,斜率计算部116根据基于听觉特性的规定的优先顺序,向多个样本分配与矢量量化索引对应的码用所分配的比特数中实际与矢量量化索引对应的码中未使用的比特数的至少一部分,并输出向该多个样本分配的比特数的索引信息idx。 [0075] 换言之,斜率计算部116从与矢量量化索引对应的码用所分配的比特数减去与矢量量化索引对应的码所使用的比特数,将得到的数以下的比特数按照基于听觉特性的规定的优先顺序分配到分别由多个样本位置构成且被赋予了基于听觉特性的优先顺序的多个样本位置集合中的1个以上的样本位置集合,对于被分配了比特数的样本位置集合分别输出索引信息idx,该索引信息idx表示多组的与每个样本的位置对应的预先设定的系数的组中、使属于该样本位置集合的样本的值、与将属于该样本位置集合的样本的量化值和与每个样本的位置对应的系数相乘的值之间的误差的有关属于该样本位置集合的全部样本位置之和最小的系数的组。另外,本方式的“每个样本的位置”是与各 离散频率编号k对应的频率轴上的位置。 [0076] 由此,只使用未使用比特区域就可传送索引信息idx。 [0077] [步骤E4的具体例1] [0078] 该例子的斜率计算部116进行图3及图4记载的各处理并在未使用比特区域写入表示选择的斜率系数矢量的行编号的索引信息idx。 [0079] 斜率计算部116通过设为i=0、h=H、u=U,将i、h及u的值进行初始化,进入步骤E42(步骤E41)。在C0表示子带的样本数的情况下,H表示在矢量量化部未矢量量化的1帧中的子带数。在C0表示1帧中的样本数L的情况下,H成为1。 [0080] 斜率计算部116比较i和G(G=L/C0)(步骤E42),如果i<G,则进入步骤E43,如果不是i<G,则结束步骤E4的处理。另外,在C0表示子带的样本数的情况下,G表示1帧中的子带的总数。在C0表示1帧中的样本数L的情况下,G=1。另外,对“比较δ和η”时的比较方法没有限定,只要可判定δ和η的大小关系,就可以使用任何比较方法。例如,为了了解是否满足δ<η而比较δ和η的处理也可以是判定是否满足δ<η的处理,也可以是判定是否满足0<η-δ的处理,也可以是判定是否满足δ≧η的处理,也可以是判定是否满足0≧η-δ的处理。 [0081] 在步骤E43中,斜率计算部116比较u和0(步骤E43),如果不是u>0,则结束步骤E4的处理,如果u>0,则设为b=o(i)(步骤E44)。在C0表示子带的样本数的情况下,o(i)表示分别识别1帧中的各子带的0以上的整数的索引按照优先顺序高到低的顺序排列的集合S的第i个(i=0、...、(L/C0)-1)的要素(索引)。例如,在1帧中的子带总数L/C0为8、用0、…、7识别各子带、集合S={1、0、3、2、5、4、6、7}的情况下,o(i)表示从集合S={1、0、3、2、5、4、6、7}的初始起第i个的要素。另外,将初始要素表现为第0个要素。在该例子中,以0识别的子带的优先顺序最高,以7识别的子带的优先顺序最低。1帧中的各子带的优先顺序也可以根据输入信号X(k)进行动态地决定,也可以固定地决- 定。动态地决定优先顺序的方法的一个例子是量化归一化值τX 越大的子带,越提高优先顺序的方法。固定地决定优先顺序的方法的一个例子是考虑人们的听觉特性而决定各子带的优先顺序的方法(例如与越低频率对应的子带,越提高优先顺序等)。在C0表示1帧中的样本数L的情况下,o(i)=0。 [0082] 斜率计算部116比较flg(b)和0(步骤E45),如果不是flg(b)>0(如果flg(b)=0),则i增加1(通过将i+1设为新的i的值,更新i的值)(步骤E421),进入步骤E42。另外,flg(b)是表示是否在矢量量化部115进行以b识别的子带(处理对象的样本集合)的矢量量化的量化有无标志。相对于识别进行了矢量量化的子带的b,flg(b)=η(η>0,例如η=1),相对于识别未进行矢量量化的子带的b,flg(b)=0。例如,在以b识别的子带的量化值X^(k)的能量总和为0的情况下,flg(b)=0,在除此之外的情况下,flg(b)=1。 [0083] 在步骤E45中,如果flg(b)>0(如果flg(b)=η),则斜率计算部116比较u-h和0(与比较u和h等效)(步骤E46),如果u-h>0,则设为mMAX=3,a=2(步骤E47),如果不是u-h>0,则设为mMAX=1,a=1(步骤E48)。即,在与矢量量化索引对应的码未使用的比特数中任一子带均未分配的剩余的比特数u不大于未进行比特数分配的子带的个数h的情况下,斜率计算部116对未进行比特数分配的子带中优先顺序最高的子带分配第一比特数(a=1),在剩余的比特数u比未进行比特数的分配的子带的个数h更大的情况下,斜率计算部116对未进行比特数分配的前子带中上述优先顺序最高的子带分配比上述第一比特数(a=1)更大的第二比特数(a=2)。另外,mMAX决定斜率矩阵γ的搜索范围。即,从斜率矩阵γ的行编号m=0到mMAX-1为止的斜率系数矢量γm成为搜索范围。在该例子中,斜率矩阵γ的行编号的最大值MMAX(式(1))为2以上。a是表示该搜索范围的斜率系数矢量γm的行编号m的索引信息idx的比特数的上限。另外,利用a比a a特可传送2 个值,但2 个值中1个分配于表示不进行校正的idx=0。 [0084] 斜率计算部116减少h(通过将h-1设为新的h的值,来更新h的值)(步骤E49),进行下面公式中表示的的计算(步骤E410)。 [0085] [数8] [0086] [0087] 斜率计算部116通过设为m=0、idx=0,将m及idx的值进行初始化,进入步骤E412(步骤E411)。 [0088] 在步骤E412中,斜率计算部116比较m和mMAX(步骤E412),如果m<mMAX,则进行下面公式表示的计算(步骤E413),比较eMIN和e(步骤E414), 如果不是eMIN>e,则将m增加1(步骤E416),进入步骤E412。如果eMIN>e,则斜率计算部116更新idx及eMIN作为idx=m+1及eMIN=e(步骤E415),将m增加1(步骤E416),进入步骤E412。 [0089] [数9] [0090] [0091] 另一方面,在步骤E412中,在不是m<mMAX的情况下,斜率计算部116通过在未使用比特区域写入idx并将u-a设为新的u,来更新u的值(步骤E417),进入步骤E418。该例子的斜率计算部116在未使用比特区域的未使用的a比特的区域写入idx。此时,解码装置12基于a可确定需要的idx被配置于未使用比特区域的哪个位置。例如,预定以哪种顺序分配未使用比特区域的未使用区域,斜率计算部116根据该顺序确定存储idx的区域。 [0092] 在步骤E418中,斜率计算部116判定是否idx>0(是否为idx=0)(步骤E418),如果idx>0(如果不是idx=0),则将多个量化值X^(b·C0)、…、X^((b+1)·C0-1)以如下方式更新(步骤E419),且将i增加1(步骤E421),并进入步骤E42。 [0093] [数10] [0094] [0095] [0096] 如果不是idx>0(如果idx=0),则如下所示,斜率计算部116不更新作为本地解码值的多个量化值X^(b·C0)、…、X^((b+1)·C0-1)(步骤E420),将i增加1(步骤E421),进入步骤E42。 [0097] [数11] [0098] [0099] [0100] 如以上,斜率计算部116输出可用分配于处理对象的子带(处理对象的样本集合)的比特数表示的索引信息idx。 [0101] [步骤E4的具体例2] [0102] 如图3及图4所示,步骤E4也可以例如如下执行。 [0103] 执行步骤E41~E45,在步骤E45中,如果判定为不是flg(b)>0(flg(b)=0),则斜率计算部116将i增加1(步骤E421),进入步骤E42。在步 骤E45中,如果判定为flg(b)>0(flg(b)=η),斜率计算部116设为mMAX=1、a=1(步骤E48’),进入步骤E46。 [0104] 在步骤E46中,斜率计算部116比较u-h和0(与比较u和h等效)(步骤E46),如果u-h>0,则设为mMAX=3、a=2(步骤E47),并进入步骤E49,如果不是u-h>0,则不变更mMAX及a,进入步骤E49。其它与[步骤E4的具体例1]相同。在该情况下,斜率计算部116输出可用分配于处理对象的子带(处理对象的样本集合)的比特数表示的索引信息idx。 [0105] [步骤E4的具体例3] [0106] 在步骤E4的具体例1、2中,也可以代替公式(2),进行下面那样的计算。 [0107] [数12] [0108] [0109] 另外,在步骤E4的具体例1、2中,也可以代替公式(3),进行下面那样的计算。 [0110] [数13] [0111] [0112] 在此,结束[步骤E4的具体例]的说明。 [0113] 与包含矢量量化索引和写入未使用比特区域的索引信息idx的修正后矢量量化索引对应的码(比特流)发送至解码装置12。 [0114] (解码处理) [0115] 解码装置12执行图5所示例的解码方法的各步骤。 [0116] 归一化值解码部121求得与输入解码装置12的归一化值量化索引对应的解码归- -一化值τX(步骤D1)。解码归一化值τX 发送至矢量解码部122。 [0117] 在未图示的码本存储部中存储有与多个归一化值量化索引分别对应的归一化值。归一化值解码部121以输入的归一化量化索引为关键,参照该码本存储部,取得与该归一- 化量化索引对应的归一化值,并设为解码归一化值τX 。 [0118] 矢量解码部122求得与输入解码装置12的修正后矢量量化索引包含的矢量量化索引对应的多个值并设为多个解码值X^(k)。另外,矢量解码部122使用矢量量化索引计算未使用比特数U(步骤D2)。 [0119] 在本方式中,在未图示的矢量码本存储部存储有分别与多个矢量量化索引对应的量化代表矢量。矢量解码部122以与输入的矢量量化索引对应的量化代表矢量为关键,参照该矢量码本存储部,取得与该矢量量化索引对应的量化代表矢量。矢量解码部122输出-用量化归一化值τX 逆归一化量化代表矢量的分量X(k)’的解码值X^(k)。例如,矢量- 解码部122将X(k)’和τX 的相乘值作为解码值X^(k)进行输出。 [0120] 另外,矢量解码部122将矢量量化用所分配的比特中实际的矢量量化中未使用的比特的比特数作为未使用比特数U进行计算。在本方式的例子中,矢量解码部122每1帧(每L个样本)计算未使用比特数U。例如,矢量解码部122将从处理对象的帧中的矢量量化用所分配的比特数减去与该帧对应的矢量量化索引的比特数的总数的值设为未使用比特数U。 [0121] 解码值X^(k)及未使用比特数U发送至斜率修正部124。 [0122] 斜率修正部124在例如未图示的存储部保持与编码装置11中使用的斜率矩阵γ相同的斜率矩阵γ(参照式(1))。斜率修正部124从输入解码装置12的修正后矢量量化索引包含的未使用比特区域读出索引信息idx,使用idx表示的行编号m’的斜率系数矢量γm’的各要素γm’(k’)(k’=0、…、C0-1),修正C0个解码值X^(k)(k=τ·C0、…、(τ+1)·C0-1)。换言之,斜率修正部124使用将以多个斜率系数γm(k’)为要素的斜率系数矢量γm设为行矢量的斜率矩阵γ中的索引信息idx表示的行编号m’的斜率系数矢量γm’的各要素γm(’k’),修正多个解码值X^(k)(步骤D3)。例如,斜率修正部124将索引信息idx表示的行编号m’的斜率系数矢量γm’的要素γm’(k’)和解码值X^(k)的相乘值设为解码值X^(k)的修正值X^UD(k)。斜率修正部124输出修正值X^UD(k)。即,斜率修正部124,在构成多个样本位置的多个样本位置集合中,将根据基于听觉特性的规定的优先顺序而被分配了比特数的样本位置的集合设为处理对象,使用输入的索引信息idx表示的与多个样本位置对应的预定的系数的组,输出将与处理对象的样本位置集合所包含的各样本位置对应的解码值和系数相乘的值。 [0123] [步骤D3的具体例1] [0124] 该例子的斜率修正部124进行图6及图7记载的各处理并修正解码值X^(k)。 [0125] 斜率修正部124通过设为i=0、h=H、u=U,将i、h及u的值进行初始化,进入步骤D32(步骤D31)。 [0126] 斜率修正部124比较i和G(G=L/C0)(步骤D32),如果i<G,则进入步骤D33,如果不是i<G,则结束步骤D3的处理。 [0127] 在步骤D33中,斜率修正部124比较u和0(步骤D33),如果不是u>0,则结束步骤D3的处理,如果u>0,则设为b=o(i)(步骤D34)。编码装置11的o(i)和解码装置12的o(i)相同。 [0128] 斜率修正部124比较flg(b)和0(步骤D35),如果不是flg(b)>0(如果flg(b)=0),则斜率修正部124将i增加1(步骤D315),并进入步骤D32。另外,flg(b)是表示是否在矢量量化部115进行了以b识别的子带的矢量量化的量化有无标志。相对于识别进行了矢量量化的子带的b,flg(b)=η(η>0,例如η=1),相对于识别未进行矢量量化的子带的b,flg(b)=0。例如,在以b识别的子带的量化值X^(k)的能量总和为0的情况下,flg(b)=0,在除此之外的情况下,flg(b)=1。 [0129] 在步骤D35中,如果flg(b)>0(如果flg(b)=η),则斜率修正部124比较u-h和0(与比较u和h等效)(步骤D36),如果u-h>0,则设为mMAX=3、a=2(步骤D37),如果不是u-h>0,则设为mMAX=1、a=1(步骤D38)。 [0130] 斜率修正部124减少h(步骤D39),基于a,从修正后矢量量化索引包含的未使用比特区域读入索引信息idx(步骤D310)。斜率修正部124通过将u-a设为新的u,来更新u的值(步骤D311)。斜率修正部124判定是否idx>0(是否idx=0)(步骤D312),如果idx>0(如果不是idx=0),则如下更新多个解码值X^(b·C0)、…、X^((b+1)·C0-1)(步骤D313),将i增加1(步骤D315),进入步骤D32。 [0131] [数14] [0132] [0133] [0134] 如果不是idx>0(如果idx=0),则如下所示,斜率修正部124不更新多个解码值X^(b·C0)、…、X^((b+1)·C0-1)(步骤D314),将i增加1(步骤D315),进入步骤D32。 [0135] [数15] [0136] [0137] [0138] [步骤D3的具体例2] [0139] 如图6及图7所示,步骤D3也可以例如如下执行。 [0140] 执行步骤D31~D35,在步骤D35中,如果判定为不是flg(b)>0(flg(b)=0),则斜率修正部124将增加1(步骤D315),进入步骤D32。在步骤D35中,如果判定为flg(b)>0(flg(b)=η),则斜率修正部124设为mMAX=1、a=1(步骤D38’),进入步骤D36。 [0141] 在步骤D36中,斜率修正部124比较u-h和0(与比较u和h等效)(步骤D36),如果u-h>0,则设为mMAX=3、a=2(步骤D37),进入步骤D39,如果不是u-h>0,则不变更mMAX及a,进入步骤D39。其它与[步骤D3的具体例1]相同([步骤D3的具体例]的说明结束)。 [0142] 在需要时域中的解码信号的情况下,从斜率修正部124输出的修正值X^UD(k)输入时域变换部125,时域变换部125将X^UD(k)通过例如傅立叶反变换,变换成时域信号z(n)进行输出。 [0143] (本方式的特征) [0144] 这样,在本方式中,解码装置12使用由编码装置11选择的斜率系数矢量修正多个解码值X^(k),因此,可降低基于量化误差的音乐噪声等。 [0145] 另外,在本方式中,将以具有互相相关的斜率系数γm(0)、…、γm(C0-1)为要素的矢量设为斜率系数矢量γm。例如,将以偏向(k,γm(k))平面上的直线或特定曲线而分布的多个斜率系数γm(0)、…、γm(C0-1)为要素的矢量设为斜率系数矢量γm。语音信号及音响信号等输入信号的包络形成直线或曲线的情况较多,通过使用反映了这种输入信号特性的斜率系数矢量γm,可抑制索引信息idx的信息量且高精度修正量化误差。在图8例子的情况下,k=0、…、7的子带中的输入信号的大小|X(k)|随着k越大而越小。因此,通过使用以偏向(k,γm(k))平面上的倾斜成负值的直线进行分布的斜率系数γm(0)、…、γm(7)为要素的斜率系数矢量γm,修正|X(0)|、…、|X(7)|,可缩小与量化值大小|X^(0)|、…、|X^(7)|的误差。这样,通过每个子带使用适合于输入信号特性的斜率系数矢量γm,能够有效降低量化误差。 [0146] 另外,用于确定由编码装置11选择的斜率系数矢量γm’的索引信息idx有 效利用未使用比特区域进行传送,因此,不需要用于传送索引信息idx的附加区域。 [0147] 但是,可写入未使用比特区域的比特数的上限为未使用比特数U,不一定在未使用比特区域写入对于所有子带的索引信息idx。因此,在本方式中,优先在未使用比特区域写入与优先顺序较高的子带对应的索引信息idx。由此,例如,能够减少人们听觉特性上重要的子带中的量化误差,并降低音乐噪声等。 [0148] (实验结果) [0149] 对表示本方式效果的实验结果进行表示。 [0150] 在本实验中,对于下面两个条件,求得输入信号和解码信号之间的SNR(Signal to Noise Ratio)。 [0151] 条件1:现有技术(如专利文献1,解码进行输入信号的矢量量化而得到的码,得到解码信号) [0152] 条件2:实施方式技术(如上述的实施方式,解码进行输入信号的矢量量化和斜率计算而得到的码,得到解码信号) [0153] SNR只利用矢量量化的未使用比特数U为1比特以上的帧算出。输入信号使用了语音、日本音乐、西洋音乐的三种。下面表示结果。 [0154] [表1] [0155]语音 日本音乐 西洋音乐 现有技术 6.253dB 5.42dB 5.5384dB 实施方式技术 6.7041dB 5.7976dB 5.7341dB [0156] 这样,在实施方式技术中,与现有技术相比,对于语音、日本音乐、西洋音乐的三种输入信号,平均可将SNR改善约0.35dB。 [0157] 变形例: [0158] 另外,本发明不限定于上述实施方式。例如,在解码装置12包含平滑化部126的情况下,平滑化部126以步骤D3(图5)中得到的修正值X^UD(k)为输入,在比修正值X^UD(k)更之前的修正值X^UD(k)’不为0的情况下,将之前的修正值X^UD(k)’和修正值X^UD(k)加权相加的值作为平滑化值X^POST(k)进行输出。在X^UD(k)’为0的情况下,平滑化部126不进行修正值的加权相加即修正值的平滑化,将X^UD(k)作为X^POST(k)输出(图5/步骤D4’)。之前的修正值X^UD(k)’的例子是与修正值X^UD (k)对应的帧的1帧之前的步骤D3中得到的修正值或与修正值X^UD(k)对应的帧的1帧之前的步骤D4’中得到的平滑化值等。 [0159] X^POST(k)如下式表示。α和β为调节系数,根据求得的性能及规格适宜确定。例如,α=0.85、β=0.15。 表示·的正负码。 [0160] [数16] [0161] [0162] 由此,能够降低由于X^UD(k)的幅度特性在时间轴方向的不连续性而产生的音乐噪声等。在需要时域中的解码信号的情况下,从平滑化部126输出的X^POST(k)输入时域变换部125,时域变换部125通过例如傅立叶反变换将X^POST(k)变换为时域信号z(n)进行输出。 [0163] 除此之外,α、β也可以根据求得的性能及规格适宜变更。 [0164] 另外,输入信号X(k)没有必要是频域信号,也可以是时域信号等任意信号。即,该发明能够用于相对于频域信号以外的任意信号的编码、解码。在该情况下,与同一行编号m对应的各斜率系数γm(0)、…、γm(C0-1),偏向例如以k’(与斜率系数γm(k’)对应的时间所对应的值)为第一轴、以γm(k’)(斜率系数的值)为第二轴的(k’,γm(k’))平面上的直线或特定曲线进行分布。更具体而言,例如与同一行编号m对应的各斜率系数γm(0)、…、γm(C0-1)位于(k’,γm(k’))平面上的直线上或特定曲线上。另外,在该变形例中,k、k’是与离散时间对应的离散时间编号,“样本各自的位置”是与离散时间编号k对应的时间轴上的位置。在k、k’为离散时间编号的情况下,k、k’的值越大,对应越晚的时间。 [0165] 另外,每帧决定相对于输入信号X(k)的归一化化值FGAIN,代替输入信号的各样本的值X(k),矢量量化部115也可以使用由归一化值FGAIN归一化X(k)的值,代替量化归一化值τX-,也可以使用由归一化化值FGAIN归一化τX-的值,并执行步骤E3的处理。例如,X(k)也可以置换为X(k)/FGAIN,τX-也可以置换为τX-/FGAIN,并执行步骤E3的处理。另外,在该情况下,也可以不存在归一化值计算部112,代替量化归一化值τX-,向归一化值量化部113输入由归一化值FGAIN归一化X(k)的值。在该情况下,代替量化归一化值τX-,矢量量化部115也可以使用由归一化值FGAIN归一化X(k)的值的量化值进行步骤E3的处理。归一化值量化索引也可以与由归一化值FGAIN归一化的值的量化值对应。 [0166] 另外,在上述实施方式中,编码装置11的斜率计算部116判定是否idx>0,如果idx>0,则更新多个量化值X^(b·C0)、…、X^((b+1)·C0-1),如果不是idx>0,则不更新(图4/步骤E418~E421)。另外,解码装置12的斜率修正部124判定是否idx>0,如果idx>0,则更新多个量化值X^(b·C0)、…、X^((b+1)·C0-1),如果不是idx>0,则不更新(图7/步骤D312~D314)。作为它们的变形,也可以对公式(1)所示的斜率矩阵γ附加只由1个要素构成的行编号m=-1的行矢量(斜率系数矢量)γ-1=[γ-1(0)、…、γ-1(C0-1)]=[1、…、1],不管是否idx>0,斜率计算部116及斜率修正部124均进行下面那样的运算。 [0167] [数17] [0168] [0169] [0170] 另外,示例的行编号m及索引信息idx的具体的数值不限定本发明,示例的m及idx的编号也可以提前,也可以退后,也可以不使用一部分编号。 [0171] 另外,在上述的实施方式中,示例了将索引信息idx存储于未使用比特数U的未使用比特区域的例子,但也可以是索引信息idx不存储于未使用比特区域的方式。 [0172] 另外,也可以是索引信息idx存储于码所包含的比特数U的其它有限比特区域的方式。在该情况下,也可以执行上述的“未使用比特区域”置换成“有限比特区域”、“未使用比特数U”置换成“有限比特区域的比特数U”的处理。 [0173] 另外,上述的各种处理不仅按照记载时序性地执行,也根据执行处理的装置的处理能力或需要,并联地或个别地执行。另外,也可以在不脱离本发明的宗旨的范围内进行适当变更。 [0175] 上述的编码装置11及解码装置12由例如由CPU(central processing unit)及RAM(random-access memory)等构成的公知或专用的计算机和记述上述处理内容的特殊的程序构成。在该情况下,特殊的程序读入于CPU,CPU通过执行特殊的程序,实现各功能。另外,特殊的程序也可以通过单一的程序列构成,也可以读出其它程序及文库实现目的的功能。 [0176] 这种程序能够记录于可利用计算机读取的记录介质中。作为可利用计算机读取的记录介质,也可以是例如,磁记录装置、光盘、光磁记录介质、半导体存储器等任一种记录介质。可利用计算机读取的记录介质的例子为非暂时性的(non-transitory)记录介质。程序的运行通过市售、转让、贷款等例如记录该程序的DVD、CD-ROM等便携式记录介质等进行。另外,也可以通过将程序存储在计算机服务器的存储装置,经由网络从计算机服务器向其它的计算机传送该程序,由此,运行程序。 [0177] 例如,首先,执行这种程序的计算机将记录于便携式记录介质的程序或从计算机服务器传送的程序暂时存储在本身的存储装置。而且,在执行处理时,该计算机读取存储于本身的记录介质的程序,执行根据读取的程序的处理。另外,作为该程序的其它的执行方式,计算机也可以从便携式记录介质直接读取程序,执行根据该程序的处理,另外,也可以每当从计算机服务器向该计算机传送程序,依次执行根据接收的程序的处理。 [0178] 另外,编码装置11及解码装置12的处理部的至少一部分也可以通过特殊的集成电路构成。 [0179] 标记说明 [0180] 11 编码装置 [0181] 111 频域变换部 [0182] 112 归一化值计算部 [0183] 113 归一化值量化部 [0184] 115 矢量量化部 [0185] 116 斜率计算部 [0186] 12 解码装置 [0187] 121 归一化值解码部 [0188] 122 矢量解码部 [0189] 124 斜率修正部 [0190] 125 时域变换部 [0191] 126 平滑化部 |