计算装置与方法、量化装置与方法以及程序.pdf

上传人:小** 文档编号:974837 上传时间:2018-03-22 格式:PDF 页数:56 大小:2.23MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910177105.3

申请日:

2009.09.25

公开号:

CN101685437A

公开日:

2010.03.31

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/14申请公布日:20100331|||实质审查的生效IPC(主分类):G06F 17/14申请日:20090925|||公开

IPC分类号:

G06F17/14; G06F17/30; G10L19/02

主分类号:

G06F17/14

申请人:

索尼株式会社

发明人:

茂木幸彦; 鎌田征人

地址:

日本东京

优先权:

2008.9.26 JP 2008-247682

专利代理机构:

北京信慧永光知识产权代理有限责任公司

代理人:

褚海英;武玉琴

PDF下载: PDF下载
内容摘要

本发明提供了一种计算装置,该装置包括:逆变换表创建单元,其配置用于创建逆变换表,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对离散值进行与预定变换相逆的变换得到的逆变换值;范围确定单元,其配置用于当输入预定数据时,在以逆变换表中的相邻的逆变换值为边界值的范围中,确定预定数据包括于哪个范围中;以及离散值确定单元,其配置用于在用作由范围确定单元确定的范围的边界值的逆变换值中,确定对应于接近预定数据的逆变换值的离散值。根据本发明的实施方式,可以减少用于处理的存储容量。

权利要求书

1.  一种计算装置,其包括:
逆变换表创建装置,其配置用于创建逆变换表,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对该离散值进行与所述预定变换相逆的变换得到的逆变换值;
范围确定装置,其配置用于当输入所述预定数据时,在以所述逆变换表中的相邻的所述逆变换值为边界值的范围中,确定包括所述预定数据的范围;以及
离散值确定装置,其配置用于在用作由所述范围确定装置确定的范围的边界值的所述逆变换值中,确定接近于所述预定数据的所述逆变换值所对应的所述离散值。

2.
  如权利要求1所述的计算装置,还包括:
哈希表创建装置,其配置用于基于所述逆变换表创建哈希表,
其中,所述范围确定装置基于所述哈希表,为至少一个所述范围在所述逆变换表中确定所述范围的初始搜索值,并基于该初始搜索值在所述逆变换表中确定包括所述预定数据的范围。

3.
  如权利要求2所述的计算装置,
其中,所述哈希表创建装置通过使用用作所述逆变换表中的所述范围的所述边界值的所述逆变换值的指数部分与有效数字部分中的至少一个,来创建所述哈希表。

4.
  如权利要求1所述的计算装置,
其中,当输入所述预定数据时,所述范围确定装置在所述逆变换表中对包括所述预定数据的范围进行二分查找。

5.
  一种计算方法,其包括以下步骤:
创建逆变换表的步骤,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对该离散值进行与所述预定变换相逆的变换得到的逆变换值;
确定范围的步骤,当输入所述预定数据时,在以所述逆变换表中的相邻的所述逆变换值为边界值的多个范围中,确定包括所述预定数据的范围;以及
确定离散值的步骤,在用作在所述范围确定步骤中确定的范围的所述边界值的所述逆变换值中,确定接近于所述预定数据的所述逆变换值所对应的离散值。

6.
  一种程序,其用于指令计算机执行包括以下步骤的处理:
创建逆变换表的步骤,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对该离散值进行与所述预定变换相逆的变换得到的逆变换值;
确定范围的步骤,当输入所述预定数据时,在以所述逆变换表中的相邻的所述逆变换值为边界值的多个范围中,确定包括所述预定数据的范围;以及
确定离散值的步骤,在用作在所述范围确定步骤中确定的范围的所述边界值的逆变换值中,确定接近于所述预定数据的所述逆变换值所对应的离散值。

7.
  一种量化装置,其包括:
逆量化表创建装置,其配置用于创建逆量化表,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对该量化值进行逆量化得到的逆量化值;
范围确定装置,其配置用于当输入所述预定数据时,在以所述逆量化表中的相邻的所述逆量化值为边界值的多个范围中,确定包括所述预定数据的范围;以及
量化值确定装置,其配置用于在用作由所述范围确定装置确定的范围的所述边界值的所述逆量化值中,确定接近于所述预定数据的所述逆量化值所对应的量化值。

8.
  一种量化方法,其包括以下步骤:
创建逆量化表的步骤,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对该量化值进行逆量化得到的逆量化值;
确定范围的步骤,当输入所述预定数据时,在以所述逆量化表中的相邻的所述逆量化值为边界值的多个范围中,确定包括所述预定数据的范围;以及
确定量化值的步骤,在用作由所述范围确定步骤确定的范围的所述边界值的所述逆量化值中,确定接近于所述预定数据的所述逆量化值所对应的量化值。

9.
  一种程序,其用于指令计算机执行包括以下步骤的处理:
创建逆量化表的步骤,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对该量化值进行逆量化得到的逆量化值;
确定范围的步骤,当输入所述预定数据时,在以所述逆量化表中的相邻的所述逆量化值为边界值的范围中,确定包括所述预定数据的范围;以及
确定量化值的步骤,在用作由所述范围确定步骤确定的范围的所述边界值的所述逆量化值中,确定接近于所述预定数据的所述逆量化值所对应的量化值。

10.
  一种计算装置,其包括:
变换表创建装置,其配置用于创建变换表,在该变换表中,通过对预定数据进行预定变换得到的离散值对应于该离散值取值的所述预定数据的范围;以及
计算装置,其配置用于当输入所述离散值时,在所述变换表中,从所述变换表中的对应于所述输入的离散值的数据中,计算出通过对所述离散值进行与所述预定变换相反的变换得到的逆变换值。

11.
  一种计算方法,其包括以下步骤:
创建变换表的步骤,在该变换表中,通过对预定数据进行预定变换得到的离散值对应于该离散值取值的所述预定数据的范围;以及
计算步骤,当输入所述离散值时,在所述变换表中,从所述变换表中的对应于所述输入的离散值的数据中,计算出通过对所述离散值进行与所述预定变换相反的变换得到的逆变换值。

12.
  一种程序,其用于指令计算机执行包括以下步骤的处理:
创建变换表的步骤,该变换表中,通过对预定数据进行预定变换得到的离散值对应于该离散值取值的所述预定数据的范围;以及
计算步骤,当输入所述离散值时,在所述变换表中,从所述变换表中的对应于所述输入的离散值的数据中,计算出通过对所述离散值进行与所述预定变换相反的变换得到的逆变换值。

13.
  一种逆量化装置,其包括:
量化表创建装置,其配置用于创建量化表,在该量化表中,通过对预定数据进行量化得到的量化值对应于该量化值取值的所述预定数据的范围;以及
计算装置,其配置用于当输入所述量化值时,在所述量化表中,从所述量化表中的对应于所述输入的量化值的数据中,计算出通过对所述量化值进行逆量化得到的逆量化值。

14.
  一种逆量化方法,其包括以下步骤:
创建量化表的步骤,在该量化表中,通过对预定数据进行量化得到的量化值对应于该量化值取值的所述预定数据的范围;以及
计算步骤,当输入所述量化值时,在所述量化表中,从所述量化表中的对应于所述输入的量化值的数据中,计算出通过对所述量化值进行逆量化得到的逆量化值。

15.
  一种程序,其用于指令计算机执行包括以下步骤的处理:
创建量化表的步骤,在该量化表中,通过对预定数据进行量化得到的量化值对应于该量化值取值的所述预定数据的范围;以及
计算步骤,当输入所述量化值时,在所述量化表中,从所述量化表中的对应于所述输入的量化值的数据中,计算出通过对所述量化值进行逆量化得到的逆量化值。

16.
  一种计算装置,包括:
逆变换表创建单元,其配置用于创建逆变换表,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对该离散值进行与所述预定变换相逆的变换得到的逆变换值;
范围确定单元,其配置用于当输入所述预定数据时,在以所述逆变换表中的相邻的所述逆变换值为边界值的多个范围中,确定包括所述预定数据的范围;以及
离散值确定单元,其配置用于在用作由所述范围确定单元确定的范围的边界值的所述逆变换值中,确定接近于所述预定数据的所述逆变换值所对应的离散值。

17.
  一种量化装置,包括:
逆量化表创建单元,其配置用于创建逆量化表,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对该量化值进行逆量化得到的逆量化值;
范围确定单元,其配置用于当输入所述预定数据时,在以所述逆量化表中的相邻的逆量化值为边界值的多个范围中,确定包括所述预定数据的范围;以及
量化值确定单元,其配置用于在用作由所述范围确定单元确定的范围的边界值的所述逆量化值中,确定接近于所述预定数据的逆量化值所对应的量化值。

18.
  一种计算装置,其包括:
变换表创建单元,其配置用于创建变换表,在该变换表中,通过对预定数据进行预定变换得到的离散值对应于该离散值取值的所述预定数据的范围;以及
计算单元,其配置用于当输入所述离散值时,在所述变换表中,从所述变换表中的对应于所述输入的离散值的数据中,计算出通过对所述离散值进行与所述预定变换相反的变换得到的逆变换值。

19.
  一种逆量化装置,其包括:
量化表创建单元,其配置用于创建量化表,在该量化表中,通过对预定数据进行量化得到的量化值对应于该量化值取值的所述预定数据的范围;以及
计算单元,其配置用于当输入所述量化值时,在所述量化表中,从所述量化表中的对应于所述输入的量化值的数据中,计算通过对所述量化值进行逆量化得到的逆量化值。

说明书

计算装置与方法、量化装置与方法以及程序
相关文件的交叉引用
本申请包含与2008年9月26日向日本专利局提交的日本专利申请JP2008-247682中公开的相关主题并要求其优先权,将其全部内容通过引用并入此处。
技术领域
本发明涉及一种计算装置与方法、量化装置与方法以及程序。具体地,本发明涉及一种计算装置与方法、量化装置与方法以及程序,其中用于进行处理的存储容量可以减少。
背景技术
为了在数字信号处理中处理模拟信号,不仅要对信号的定义域进行离散化以实现采样处理,还要对信号的值域进行离散化以实现量化处理。而且,在已经过值域的离散化的数字信号以更少的数据量进行处理的情况下,有时进行更粗糙的离散化,且量化处理中也包括该处理。在量化处理中,离散化后的值称为量化值,且分配了量化值的编码称为量化编码。而且,相邻量化值之间的间隔称为量化步长,且值域中包括的量化值的数目称为量化步骤的数目。
另一方面,在由数字信号处理的结果得到的数字信号作为模拟信号输出的情况下,就需要执行例如从量化编码重构初始连续值或重构经过小量化步长的离散化的值的处理。该处理称为逆量化处理。在逆量化处理中,对应于量化编码的量化值通过逆量化变换进行变换,以重构初始值。
此时,在量化处理中得到量化值,同时连续值接近离散值,且因此,通过逆量化处理得到的重构的值(逆量化值)与初始值之间产生误差。因此,在逆量化处理中,进行量化处理之前的值(量化前的值)被不完全地重构,且重构的逆量化值是包括量化误差的近似值。
通常,在量化步长大的情况下,量化误差变大,但量化步骤的数目变少。从而,用于表示量化编码的数据量变少。另一方面,在量化步长小的情况下,量化误差变小,但量化步骤的数目变大。从而,用于表示量化编码的数据量变大。
量化步长恒定的量化称为线性量化处理。相比之下,量化步长不恒定的量化称为非线性量化处理。与线性量化处理相比,非线性量化处理具有以下特点。
首先,在信号的出现概率有偏差的情况下,通过进行非线性量化处理,可以将量化误差的平均值设置为比线性量化处理小,在所述非线性量化处理中,在出现概率高的值(信号)的附近量化步长设置得较小,而在出现概率低的值(信号)的附近量化步长设置得较大。而且,通过类似方法,通过根据信号的出现概率调整量化步骤的数目,与线性量化处理相比,可以减少数据量而不使平均量化误差恶化。
而且,具体地,在音频信号或图像信号的情况下,根据听觉和视觉的特征,通过在人感觉上灵敏的值的附近将量化步长设置得较小并在人感觉上不灵敏的值的附近将量化步长设置得较大,与线性量化处理相比,人们变得难以查觉量化误差。此外,通过类似方法,通过根据人的知觉特征调整量化步骤的数目,与线性量化处理相比,可以减少数据量而不会使人们可以查觉到的误差恶化。
因此,各种领域中利用非线性量化处理来处理符合人的知觉特性的信号等,这些信号例如是信号的出现概率有偏差的信号、音频信号或图像信号。
顺便提及,对于用于对音频信号进行编码的系统,已经提出了MPEG(运动图像专家组)音频标准。MPEG音频标准包括多个编码系统。在ISO/IEC(国际标准化组织/国际电工委员会)13818-7中,对MPEG-2音频标准AAC(高级音频编码)的编码系统进行了标准化。
而且,在进一步扩展的ISO/IEC14496-3中,对MPEG-4音频标准AAC的编码系统进行了标准化。以下应当注意,MPEG-2音频标准AAC与MPEG-4音频标准AAC统称为AAC标准。
在相关技术中,符合AAC标准的音频编码装置设有听觉心理模型保持单元、增益控制单元、波谱处理单元、量化/编码单元以及多路复用单元。
在听觉心理模型保持单元中,输入到音频编码装置的音频信号转化成沿时间轴的块,并根据对每个分割的频带中的人的听觉特性进行分析,从而计算出各个分割的频带的容许误差强度。
而且,在增益控制单元中,输入的音频信号被分割成具有等间隔的四个频带,并对预定频带进行增益调节。
此外,增益调节之后的音频信号在波谱处理单元中被转化成频域的波谱数据,并基于由听觉心理模型保持单元计算出的容许误差强度进行预定的处理。随后,进行了预定处理的波谱数据(音频信号)在量化/编码单元中转化成编码串,且各种信息在多路复用单元中被多路复用以输出为位流。
在上述量化/编码单元中,对音频信号进行非线性量化处理。
而且,在对音频信号的量化处理中,量化/编码单元针对所有的输入值对量化值进行逆量化,以检查量化误差是否处于预定范围中。量化误差可以通过计算逆量化值与输入值之间的差异得到,且在量化/编码单元中判断该差异的取值是否在预定范围中。
在上述的量化处理或逆量化处理中,已经提出了一种方法,即准备一个预先保持有变换表达式的值的表,然后通过参照该表得到关于输入值的变换值(例如参见日本专利3877683号)。
根据日本专利3877683号的方法,在非线性逆量化处理中,由于作为输入值的量化值是整数值,通过将作为输入值的量化值与逆量化值之间的关系预先创建为逆量化表,在执行逆量化处理的时候,可以基于该逆量化表唯一地确定逆量化值。
类似地,在非线性量化处理中,也可通过将量化值Z与作为输入值的量化前的值可取值的范围之间的关系预先创建为量化表,在执行量化处理的时候,可以基于该量化表唯一地确定量化值。
发明内容
然而,根据上述方法,应当准备量化表中的表值与逆量化表中的表值的总数,这导致使用大量的存储容量。
本发明就是针对上述问题作出的,且本发明期望进一步减少用于处理的存储容量。
根据本发明的实施例,提供了一种计算装置,其包括:逆变换表创建装置,其配置用于创建逆变换表,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对该离散值进行与该预定变换相逆的变换得到的逆变换值;范围确定装置,其配置为用于当输入预定数据时,在以逆变换表中相邻的逆变换值为边界值的多个范围中,确定预定数据包括于哪个范围中;以及离散值确定装置,其配置用于在作为由范围确定装置确定的范围的边界值的逆变换值中,确定接近于预定数据的逆变换值所对应的离散值。
计算装置还包括哈希(hash)表创建装置,其配置用于基于逆变换表创建哈希表,且所述范围确定装置基于所述哈希表,为所述多个范围中的至少一个范围在所述逆变换表中确定所述一个范围的初始搜索值,并基于该初始搜索值在所述逆变换表中确定所述预定数据包括于哪个范围中。
哈希表创建装置可以通过使用逆变换值的指数部分与有效数字部分中的至少一个来创建哈希表,所述逆变换值用作逆变换表中的范围的边界值。
当输入预定数据时,范围确定装置可以在逆变换表中对包括预定数据的范围进行二分查找(binary search)。
根据本发明的实施例,提供了一种计算方法,其包括以下步骤:创建逆变换表,在逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对离散值进行与预定变换相逆的变换得到的逆变换值;当输入预定数据时,在以逆变换表中相邻的逆变换值为边界值的范围中,确定预定数据包括于哪个范围中;以及在作为在范围确定步骤中确定的范围的边界值的逆变换值中,确定接近预定数据的逆变换值所对应的离散值。
根据本发明的实施例,提供了一种用于指令计算机执行包括以下步骤的处理的程序:创建逆变换表,在逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对离散值进行与预定变换相逆的变换得到的逆变换值;当输入预定数据时,在以逆变换表中相邻的逆变换值为边界值的范围中,确定预定数据包括于哪个范围中;以及在作为在范围确定步骤中确定的范围的边界值的逆变换值中,确定接近预定数据的逆变换值所对应的离散值。
根据本发明的另一实施例,提供了一种量化装置,其包括:逆量化表创建装置,其配置用于创建逆量化表,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对量化值进行逆量化得到的逆量化值;范围确定装置,其配置为当输入预定数据时,在以逆量化表中相邻的逆量化值为边界值的范围中,确定预定数据包括于哪个范围中;以及量化值确定装置,其配置用于在作为由范围确定装置确定的范围的边界值的逆量化值中,确定接近预定数据的逆量化值所对应的量化值。
根据本发明的另一实施例,提供了一种量化方法,其包括以下步骤:创建逆量化表,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对量化值进行逆量化得到的逆量化值;当输入预定数据时,在以逆量化表中相邻的逆量化值为边界值的范围中,确定预定数据包括于哪个范围中;以及在作为在范围确定步骤中确定的范围的边界值的逆量化值中,确定接近预定数据的逆量化值所对应的量化值。
根据本发明的另一实施例,提供了一种用于指令计算机执行包括以下步骤的处理的程序:创建逆量化表,在逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对量化值进行逆量化得到的逆量化值;当输入预定数据时,在以逆量化表中相邻的逆量化值为边界值的范围中,确定预定数据包括于哪个范围中;以及在作为在范围确定步骤中确定的范围的边界值的逆量化值中,确定接近预定数据的逆量化值所对应的量化值。
根据本发明的再一实施例,提供了一种计算装置,其包括:变换表创建装置,其配置用于创建变换表,在该变换表中,通过对预定数据进行预定变换得到的离散值对应于预定数据的范围,所述离散值可在所述预定数据的范围中取值;以及计算装置,其配置用于当输入离散值时,在变换表中,从变换表中的对应于所输入的离散值的数据中,计算出通过对离散值进行与预定变换相反的变换得到的逆变换值。
根据本发明的再一实施例,提供了一种计算方法,其包括以下步骤:创建变换表,在变换表中,通过对预定数据进行预定变换得到的离散值对应于预定数据的范围,所述离散值可在所述预定数据的范围中取值;以及当输入离散值时,在变换表中,从变换表中的对应于所输入的离散值的数据中,计算出通过对离散值进行与预定变换相反的变换得到的逆变换值。
根据本发明的再一实施例,提供了一种用于指令计算机执行包括以下步骤的处理的程序:创建变换表,在该变换表中,通过对预定数据进行预定变换得到的离散值对应于预定数据的范围,所述离散值可在所述预定数据的范围中取值;以及当输入离散值时,在变换表中,从变换表中的对应于所输入的离散值的数据中,计算出通过对离散值进行与预定变换相反的变换得到的逆变换值。
根据本发明的另一实施例,提供了一种逆量化装置,其包括:量化表创建装置,其配置用于创建量化表,在该量化表中,通过对预定数据进行量化得到的量化值对应于预定数据的范围,所述量化值可在该预定数据的范围中取值;以及计算装置,其配置用于当输入量化值时,在量化表中,从量化表中的对应于输入量化值的数据中,计算出通过对量化值进行逆量化得到的逆量化值。
根据本发明的另一实施例,提供了一种逆量化方法,其包括以下步骤:创建量化表,在量化表中,通过对预定数据进行量化得到的量化值对应于预定数据的范围,所述量化值可在该预定数据的范围中取值;以及当输入量化值时,在量化表中,从量化表中的对应于输入量化值的数据中,计算通过对量化值进行逆量化得到的逆量化值。
根据本发明的另一实施例,提供了一种用于指令计算机执行包括以下步骤的处理的程序:创建量化表,在量化表中,通过对预定数据进行量化得到的量化值对应于预定数据的范围,所述量化值可在该预定数据的范围中取值;以及当输入量化值时,在量化表中,从量化表中的对应于输入量化值的数据中,计算通过对量化值进行逆量化得到的逆量化值。
根据本发明的实施例,创建了逆变换表,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对离散值进行与预定变换相反的变换得到的逆变换值;当输入预定数据时,在以逆变换表中的相邻逆变换值为边界值的范围中,确定预定数据包括于哪个范围中;并在作为已确定的范围的边界值的逆变换值中,确定接近预定数据的逆变换值所对应的离散值。
根据本发明的实施例,创建了逆量化表,在该逆量化表中,通过对预定数据进行量化得到的量化值对应于通过对量化值进行逆量化得到的逆量化值;当输入预定数据时,在以逆量化表中相邻的逆量化值为边界值的范围中,确定预定数据包括于哪个范围中;并在作为已确定的范围的边界值的逆量化值中,确定接近预定数据的逆量化值所对应的量化值。
根据本发明的实施例,创建了变换表,在该变换表中,通过对预定数据进行预定变换得到的离散值对应于预定数据的范围,所述离散值可在所述预定数据的范围中取值;且当输入离散值时,在变换表中,从变换表中对应于所输入的离散值的数据中,计算通过对离散值进行与预定变换相反的变换得到的逆变换值。
根据本发明的实施例,创建了量化表,在该量化表中,通过对预定数据进行量化得到的量化值对应于预定数据的范围,所述量化值可在该预定数据的范围中取值;且当输入量化值时,在量化表中,从量化表中对应于输入量化值的数据中,计算出通过对量化值进行逆量化得到的逆量化值。
根据本发明的实施例,可以减少用于处理的存储容量。
附图说明
图1是根据应用了本发明的实施例的音频编码装置的配置示例的框图;
图2表示量化表的示例;
图3表示逆量化表的示例;
图4是用于描述量化前的值、量化值以及逆量化值之间的关系的示意图;
图5是图1的音频编码装置中的量化单元的配置示例的框图;
图6是用于描述由图5的量化单元进行的逆量化表创建处理的流程图;
图7是用于描述由图5的量化单元进行的量化处理的流程图;
图8表示以C语言描述图7的流程图中的步骤S62与S63中的处理的程序的示例;
图9是用于表示用于获得量化值的量化处理的频率的示意图;
图10是量化单元的另一配置示例的框图;
图11是用于描述由图10的量化单元进行的哈希表创建处理的流程图;
图12是用于表示浮点型数据的示意图;
图13表示以C语言表示哈希表的示例;
图14是用于表示由图10的量化单元进行的量化处理的流程图;
图15表示以C语言表示图14的流程图中的步骤S161~S167中的处理的程序的示例;
图16表示在图15的程序中的条件语句中使用逆量化值的中间值的情况下,以C语言描述的处理的程序的示例;
图17表示在图16的程序示例中浮点数是定点数的情况下,以C语言描述的程序的示例;
图18是用于表示当进行量化处理时循环数的示意图;
图19是通过使用量化表进行逆量化处理的逆量化单元的配置示例的框图;
图20是用于表示由图19的逆量化单元进行的量化表创建处理的流程图;
图21是用于表示图19的逆量化单元进行的逆量化处理的流程图;
图22是根据本发明的实施例的计算装置的配置示例的框图;
图23是用于表示由图22的计算装置进行的逆变换表创建处理的流程图;
图24是用于表示由图22的计算装置进行的离散值搜索处理的流程图;以及
图25是个人计算机的配置示例的框图。
具体实施方式
以下,参照本发明的实施例描述本发明。
1.第一实施例
音频编码装置的配置示例
图1表示根据应用了本发明的实施例的音频编码装置的配置示例。
图1的音频编码装置包括听觉心理模型保持单元11、增益控制单元12、波谱处理单元13、量化/编码单元14以及多路复用单元15。
将输入到音频编码装置的音频信号提供给听觉心理模型保持单元11与增益控制单元12。听觉心理模型保持单元11将输入的音频信号转换为沿时间轴的块,并根据每个分割的频带中的人的听觉特性来分析被转化成块的音频信号,从而计算各个分割的频带的容许误差强度。听觉心理模型保持单元11将计算出的容许误差强度提供给波谱处理单元13与量化/编码单元14。
在作为AAC标准的编码算法而提供的包括主要规范、LC(低复杂性)以及SSR(可缩放采样率)三个规范中,增益控制单元12仅用于SSR规范。增益控制单元12将输入的音频信号分割成四个等间隔的频带,并例如对除了最低频带以外的频带进行增益调节,然后将经过增益调节的音频信号提供给波谱处理单元13。
波谱处理单元13将在增益控制单元12中经过增益调节的音频信号转换为频域的波谱数据。而且,波谱处理单元13基于从听觉心理模型保持单元11提供的容许误差强度,控制波谱处理单元13的各个单元,并对波谱数据进行预定的处理。
波谱处理单元13设有MDCT(改进的离散余弦变换)单元21、TNS(时域噪音修整)处理单元22、强度/耦合单元23、预测单元24以及M/S立体声(中/侧立体声)单元25。
MDCT单元21将由增益控制单元12提供的时域中的音频信号转换为待提供给TNS处理单元22的频域中的波谱数据(MDCT系数)。TNS处理单元22将来自MDCT单元21的波谱数据看作时域中的信号,以进行线性预测,并对该波谱数据进行预测滤波,然后以位流提供给强度/耦合单元23。强度/耦合单元23利用不同声道的相关性,对作为来自TNS处理单元22的波谱数据的音频信号进行压缩处理(立体声相关性编码处理)。
预测单元24仅用于上述三个规范中的主要规范。预测单元24使用在强度/耦合单元23中进行立体声相关性编码的音频信号以及从量化/编码单元14提供的音频信号进行预测编码,并将由此得到的音频信号提供给M/S立体声单元25。M/S立体声单元25对来自预测单元24的音频信号进行立体声相关性编码以提供给量化/编码单元14。
量化/编码单元14设有规范化系数单元31、量化单元32以及霍夫曼(Huffman)编码单元33。量化/编码单元14将来自波谱处理单元13的M/S立体声单元25的音频信号转换为编码串以提供给多路复用单元15。
规范化系数单元31将来自M/S立体声单元25的音频信号提供给量化单元32,并基于待提供给量化单元32与霍夫曼编码单元33的音频信号计算用于音频信号的量化的规范化系数。在图1的量化装置中,例如,使用来自听觉心理模型保持单元11的容许误差强度,作为每个分割的频带的规范化系数,来计算量化步骤参数。
量化单元32使用来自规范化系数单元31的规范化系数,对从规范化系数单元31提供的音频信号进行非线性量化,并将由此得到的音频信号(量化值)提供给霍夫曼编码单元33与预测单元24。基于预先确定的霍夫曼编码表,霍夫曼编码单元33对来自规范化系数单元31的规范化系数与来自量化单元32的量化值进行霍夫曼编码以提供给多路复用单元15。
多路复用单元15将在对音频信号进行编码处理中产生的各种信息与来自霍夫曼编码单元33的霍夫曼编码多路复用,所述音频信号分别来自于增益控制单元12以及从MDCT单元21直到规范化系数单元31的多个元件。因此,多路复用单元15产生音频信号的位流,并输出所产生的音频信号的位流。
由一般音频编码装置的量化单元进行的非线性量化处理通过计算表达式(1)实现,其中,来自波谱处理单元的音频信号的值设置为输入值X,且表示量化步长的量化步骤参数设置为q。即,通过计算表达式(1),从作为音频信号的输入值X求出量化值Z。
[表达式1]
Z=(int)((X2q/4)3/4-0.0946+0.5)···(1)]]>
应当注意在表达式(1)中,(int)(A)表示用于通过舍去浮点数A的小数部分而求出整数部分的计算。
在AAC标准的编码中,当量化值Z调整为14位且确定量化前的值Y=X/2q/4时,量化前的值Y通过逆运算在0≤Y<8191.5943(4/3)的范围中取值。因此,量化值Z在0≤Z≤8191的范围中取整数,且为了使量化值Z在该范围中取值,要确定表示量化步长的量化参数q。
而且,在量化单元中,对关于所有输入值X的量化值Z进行逆量化,以检查量化误差是否包含在预定范围中。例如,通过计算表达式(2)进行逆量化,并得到逆量化值W。
[表达式2]
W=(Z)4/3    …(2)
随后,通过计算逆量化值W与输入值X之间的差值得到量化误差,并判断该差值是否在预定范围中取值。
量化前的值、量化值以及逆量化值之间的关系
以下,参照图2到4,描述量化前的值Y、量化值Z以及逆量化值W之间的关系。
图2表示在Y=X/2q/4的时候,通过表达式(1)计算出的量化前的值Y的范围关于表达式(1)中的量化值Z(=0~8191)的量化表。
从图2中可见,当量化前的值Y处于0≤Y<4.9999600e-01F的范围时,量化值Z为0,当量化前的值Y处于4.9999600e-01F≤Y<1.8629548e+00F的范围时,量化值Z为1,…,当量化前的值Y处于1.6510260e+05F≤Y<1.6512946e+05F的范围时,量化值Z为8191。
图3表示通过表达式(2)计算的逆量化值W关于量化值(=0~8192)的逆量化表。
在图3中,可见当量化值Z为0时,逆量化值W为0.0000000e+00F,当量化值Z是1时,逆量化值W是1.0000000e+00F,…,当量化值Z是8192时,逆量化值W是1.6514032e+05F。
图4是用于表示量化前的值Y、量化值Z以及逆量化值W的范围之间的关系的示意图。
图4表示基于图2的量化表分配有并取得各个量化值Z=0~6的量化前的值Y的范围,以及基于图3中的逆量化表分别对应于分配的量化值Z的逆量化值W的范围。
应当注意,在图4中,数值标记为具有多达两位小数。
此时,当对应于量化值Z的逆量化值W的中间值设置为V时,逆量化值W的中间值V与取量化值Z的量化前的值Y的范围的边界值之间几乎不存在差异,且可以看作彼此大致相等。
例如在图4中,对应于量化值Z=0与1的逆量化值W=0.00与1.00的中间值V是0.50,且分别取量化值Z=0与1的量化前的值Y的边界值是0.50。而且,对应于量化值Z=1与2的逆量化值W=1.00与2.52的中间值V是1.76,且分别取量化值Z=1与2的量化前的值Y的边界值是1.86。对应于量化值Z=2与3的逆量化值W=2.52与4.33的中间值V是3.43,且分别取量化值Z=2与3的量化前的值Y的边界值是3.57。然后,类似地,得到的逆量化值W的中间值V与取量化值Z的量化前的值Y的范围的边界值大致为相同值。
即,在图4中所示的关系的情况下,对应于量化值Z的量化前的值Y的范围可以由对应于量化值Z的逆量化值W的中间值V表示。
量化单元的配置示例
接下来,参照图5的框图,描述量化单元32的配置示例。
图5的量化单元32包括逆量化表创建单元71与搜索量化单元72,并基于来自规范化系数单元31的作为音频信号的输入数据X输出量化值Z。
逆量化表创建单元71计算对应于量化值Z的逆量化值W,并创建量化值Z对应于逆量化值W的逆量化表,该逆量化表将提供给搜索量化单元72。更具体地,逆量化表创建单元71进行由上述的表达式(2)所表示的计算以计算逆量化值W,逆量化值W是对应于量化值Z(整数值)的离散值。即,逆量化表创建单元71计算分别对应于范围0≤Z≤8192中的整数的逆量化值W。
基于从逆量化表创建单元71提供的逆量化表,搜索量化单元72在以逆量化表中相邻的逆量化值W设为边界值的范围中,确定量化前的值Y包括于哪个范围中,并将对应于相关范围的量化值Z提供给霍夫曼编码单元33,所述量化前的值Y对应于从规范化系数单元31提供的输入数据X。
搜索量化单元72设有范围确定单元91与量化值确定单元92。
当输入来自规范化系数单元31的输入数据X时,范围确定单元91在以逆量化表中相邻的逆量化值W设为边界值的范围中,确定量化前的值Y包括于哪个范围中,所述量化前的值Y对应于输入数据X。
量化值确定单元92在用作由范围确定单元91所确定的范围的边界值的逆量化值W中,确定对应于接近量化前的值Y的逆量化值W的量化值Z。
以上述配置,基于预先创建的逆量化表中的逆量化值,量化单元32搜索对应于由输入数据得到的量化前的值的量化值,并输出该量化值。
接下来,参照图6的流程图,描述由图5的量化单元32进行的逆量化表创建处理。在量化单元32中,在进行量化处理之前进行逆量化表创建处理。
在步骤S31中,逆量化表创建单元71计算对应于量化值Z的逆量化值W,并创建量化值Z对应于逆量化值W的逆量化表,并提供给搜索量化单元72。更具体地,逆量化表创建单元71进行由表达式(2)表示的计算,以计算对应于量化值Z=0,…,8192的逆量化值W[s](s=0,…,8192),并创建图3所示的逆量化表。
作为上述处理的结果,在进行量化处理之前,可以创建逆量化值W对应于量化值Z的逆量化表。
由量化单元进行的量化处理
接下来,参考图7的流程图,描述由图5的量化单元32进行的量化处理。
在步骤S61中,当输入来自规范化系数单元31的输入数据X时,范围确定单元91在以逆量化表中相邻的逆量化值设为边界值的范围中,确定对应于输入数据X的量化前的值Y包括于哪个范围中。更具体地,范围确定单元91确定范围W[k-1]≤Y[m]<W[k],该范围以包括量化前的值Y[m]的逆量化值设为边界值。此时,m表示输入数据的个数(标识符),取值为0到data_size。而且,k-1与k相当于量化值Z,取值为1≤k≤8192。例如,当量化前的值Y为0.80时,基于图3的逆量化表,范围确定单元91确定0.00≤Y[m]<1.00的范围。此外,当量化前的值Y为8.26时,基于图3的逆量化表,范围确定单元91确定6.35≤Y[m]<8.55的范围。
在步骤S62中,量化值确定单元92在用作由范围确定单元91确定的范围的边界值的逆量化值中,确定对应于接近量化前的值Y的逆量化值W的量化值Z,以提供给霍夫曼编码单元33,且该处理前进到步骤S63。即,在由范围确定单元91确定的包括量化前的值Y[m]的范围W[k-1]≤Y[m]<W[k]中,当满足Y[m]-W[k-1]≤W[k]-Y[m]时,量化值确定单元92设置量化值Z[m]=k-1,且当不满足Y[m]-W[k-1]≤W[k]-Y[m]时(当满足Y[m]-W[k-1]>W[k]-Y[m]时),量化值确定单元92设置量化值Z[m]=k。例如,当量化前的值Y为0.80且由范围确定单元91确定的范围为0.00≤Y[m]<1.00时,基于图4,量化值确定单元92确定对应于逆量化值W=1.00的量化值Z=1。而且,当量化前的值Y为8.26且由范围确定单元91确定的范围为6.35≤Y[m]<8.55时,基于图4,量化值确定单元92确定对应于逆量化值W=8.55的量化值Z=5。
图8表示以C语言表示在图7的流程图的步骤S61与S62中的处理的程序示例。
在图8的程序81中,各行的左边的数字表示各行的行号,这些行号是为了描述方便而提供的。即,对于实际的描述,该数字没有实质意义。以下,在其它程序示例中亦是如此。
程序81中的行1限定了代表输入数据的标识符的m从0到data_size每次增一,并重复进行以下处理。
在程序81中的行2和3中,基于图3的逆量化表,判断第m次输入的量化前的值Y[m]是否小于逆量化值W[1]。在量化前的值Y[m]小于逆量化值W[1]的情况下,则将参数k指定为k=1。
另一方面,在行5和6中,在量化前的值Y[m]不小于逆量化值W[1]的情况下,判断第m次输入的量化前的值Y[m]是否小于逆量化值W[2]。在量化前的值Y[m]小于逆量化值W[2]的情况下,则将参数k指定为k=2。
然后,以类似的方式,直到行N-8,基于逆量化表中的逆量化值,确定包括量化前的值Y[m]的范围(步骤S61中的处理)。
随后,在包括量化前的值Y[m]的范围W[k-1]≤Y[m]<W[k]中,该范围是在行2~N-8的处理中确定的,在Y[m]-W[k-1]≤W[k]-Y[m]的情况下,确定量化值Z[m]=k-1,而在Y[m]-W[k-1]>W[k]-Y[m]的情况下,确定量化值Z[m]=k(步骤S62中的处理)。
应当注意,在参数k确定为k=8192的情况下,由于对应于W[8192]的量化值Z[m]不存在(如上所述,由于量化值Z的范围为0≤Z≤8191),确定量化值Z[m]=8191。
回顾图7的流程图,在步骤S63中,搜索量化单元72判断针对所有data_size个输入数据的搜索量化值Z的处理是否结束。在针对所有输入数据的搜索量化值Z的处理未结束的情况下,处理返回到步骤S61,重复进行步骤S61到S63中的处理,直到针对所有data_size个输入数据的所述处理结束。
作为上述处理的结果,通过使用表示量化值Z与逆量化值W之间的关系的逆量化表,可以确定对应于量化前的值Y的量化值Z,所述量化前的值Y从输入数据X计算得出。因此,不需创建基于由表达式(1)表示的计算的量化表,仅得到具有8193个表值的逆量化表便已足够,所述8193的表值的数目大约为量化表(图2)与逆量化表(图3)的表值的总数(16385)的一半。从而,可以减少用于处理的存储容量。
而且,量化前的值Y指定为Y=X/2q/4。从而,不需进行由表达式(1)表示的3/4次的幂函数的非线性函数的计算便可以确定量化值Z,并可以更高效地进行非线性计算。
上面,描述了通过在8193种情况中依次搜索确定量化值的示例,但是,如果使用例如二分查找,进行13次判断便可以确定量化值。
顺便提及,如图9的关于量化值Z的柱状图所示,对于量化值Z,用于获得大约Z<10的量化值的量化处理的频率高,且用于获得量化值Z=0的量化处理的频率最高。而且,随着量化值Z变大,获得量化值Z的量化处理的频率变低。即,图9表示随着量化值Z越小,获得量化值Z的量化处理的次数越多。应当注意,图9中横轴表示量化值Z,纵轴表示量化处理的频率(次数)。
以下,描述利用关于量化处理的频率的趋势的量化单元的示例。
2.第二实施例
量化单元的配置示例
图10表示利用量化处理的频率的趋势的量化单元的配置示例。应当注意,在图10的量化单元151中,与图5的量化单元32具有类似功能的配置被指定了相同的名称及相同的附图标记,并适当省略其描述。
即,在图10的量化单元151中,与图5的量化单元32的不同之处在于新提供了哈希表创建单元171,且作为使用搜索量化单元72的替代,提供了搜索量化单元172。
在图10的量化单元151中,逆量化表创建单元71将创建的逆量化表提供给哈希表创建单元171与搜索量化单元172。
哈希表创建单元171基于来自逆量化表创建单元71的逆量化表来创建哈希表,并将哈希表提供给搜索量化单元172。
这里,哈希表指这样的表,即在该表中,由逆量化值所确定的范围根据量化前的值被分成组,并将表示相关的组的信息设置为表值,所述逆量化值是逆量化表中的表值。即,根据该哈希表,当输入量化前的值时,就确定了对应于该量化前的值的组,且在所述组中开始搜索初始搜索值,所述初始搜索值是应当首先搜索的表值。因此,与针对由逆量化表确定的所有表值进行的顺序搜索相比,可以更快地搜索表值。应当注意,下面详细描述哈希表的创建。
搜索量化单元172设有初始搜索值确定单元191、范围确定单元192以及量化值确定单元193。初始搜索值确定单元191使用从哈希表创建单元171提供的哈希表来确定逆量化表中的搜索开始的值(初始搜索值)。基于从哈希表创建单元171提供的哈希表和从逆量化表创建单元71提供的逆量化表,范围确定单元192在以逆量化表中的相邻的逆量化值W为边界值的范围中,从由初始搜索值确定单元191确定的初始搜索值开始,搜索量化前的值Y包括在哪个范围中,所述量化前的值Y是从来自规范化系数单元31的输入数据X计算得出的。量化值确定单元193在用作由范围确定单元192确定的范围的边界值的逆量化值W中,确定对应于接近量化前的值Y的逆量化值W的量化值Z,并将该量化值Z提供给霍夫曼编码单元33。
以上述配置,基于预先创建的逆量化表与哈希表,量化单元151搜索从输入数据得到的量化前的值所对应的量化值,并输出该量化值。
由量化单元进行的哈希表创建处理
接下来,参考图11的流程图,描述由图10的量化单元151进行的哈希表创建处理。在量化单元151中,在进行量化处理之前进行哈希表创建处理。应当注意,在图11的流程图中,步骤S 131中的处理类似于参考图6的流程图描述的逆量化表创建处理,且省略对其的描述。
即,在步骤S132中,哈希表创建单元171基于来自逆量化表创建单元71的逆量化表创建哈希表,并将该哈希表提供给搜索量化单元172。
更具体地,例如,哈希表创建单元171使用基于IEEE(电气和电子工程师协会)754标准的浮点数的指数部分与有效数字部分创建哈希表。
表示基于IEEE754标准的单精度浮点数的浮点型数据由图12所示的32位的位串构成。即,将作为浮点数数据的最低有效位的从第0位到第22位的部分设置为有效数字部分的有效数字F,将从第23位到第30位的部分设置为指数部分的指数E,且将作为最高位的第31位设置为编码位S。
此时,在有效数字部分为正的情况下,编码位S为“0”,且在有效数字部分为负的情况下,编码位S为“1”。而且,指数部分的位配置为“指数+偏差”。例如,根据IEEE754标准,127用作单精度偏差。从而,当指数的数值为“0”时,指数部分的值为“127”(=0+127),且指数部分具有127(0x7f)的位配置(“0x”表示“7f”为十六进制)。
应当注意,指数部分为0和255的情况具有特殊值的意思,但是省略其描述。
当由上述浮点型数据表示的值用数值表示格式表示时,该值如表达式(3)所示。
[表达式3]
(-1)S×2(E-B)×(1+.F)    …(3)
应当注意在表达式(3)中,由于小数点存在于有效数字F的有效位之前,“.F”表示对有效数字部分进行小数表示。而且,表达式(3)中的“B”表示偏差部分,且“S”表示编码位。
接下来,描述使用上述的浮点数的指数部分与有效数字部分创建哈希表的步骤的示例。
针对指数部分,哈希表创建单元171从8位的指数部分的值中减去125,并将结果设置为index1。这种情况下,确定量化值Z=0时的范围为0≤Y<0.4999600,满足0.25≤0.4999600<0.5,且在0.25~0.5的区间内,指数部分的值为125。从而,指数部分的减去值设置为125。而且,满足量化值Z=8191的范围为1.6512946×105≤Y,当1.6512946×105由单精度浮点数表示时,指数部分为144。该index1取值为0~19。
而且,针对有效数字部分,哈希表创建单元171将23位的有效数字部分的四个有效位设置为index2。该index2取值为0~15。
对于其中将index1与index2设置为元素数的二维数组的哈希表,哈希表创建单元171从逆变换表中的8193个值中取出指数部分与有效数字部分,同时将index1与index2之一的值发生变化的逆量化表的下标设置为元素,从而排列成该哈希表(二维数组)。
下面,使用下面描述的图15的逆量化表W[8193]描述哈希表创建的步骤。下标为1的W[1]=1.0000000取index1=2且index2=0,下标为2的W[2]=2.5198421取index1=3且index2=4。因此,满足量化值Z=1或2时的范围为1.0000000≤Y<2.5198421,且因此用于该区间中的量化前的值Y的index1与index2的组合为index1=2且index2=0~15,或index1=3且index2=0~3。在所述index1与index2的哈希表中,排列有逆量化表的下标1。类似地,下标为2的W[2]=2.5198421取index1=3且index2=4,且下标为3的W[3]=4.3267488取index1=4且index2=1。因此,满足量化值Z=2或3时的范围为2.5198421≤Y<4.3267488,且因此用于量化前的值Y的index1与index2的组合为index1=3且index2=4~15,或index1=4且index2=0。在所述index1与index2的哈希表中,排列有逆量化表的下标2。
图13表示基于图15的逆量化表W[8193],按以C语言描述的上述步骤创建的哈希表dequantize_hash[index1][index2]的示例,这在下面进行叙述。
在图13的程序201中,行1~N中描述的dequantize_hash[20][16]表示20×16的二维数组。
例如,在行3与4中,描述了index1=0且index2=0~16的表值。行6与7中,描述了index1=1且index2=0~16的表值。然后,以类似的方式描述表值,且在行N-3与N-2上,描述了index1=19且index2=0~16的表值。
如图13的程序201所示,当指数部分与有效数字部分用于哈希表时,许多具有小量化值的值被分配为哈希表中的表值(元素)。
具体地,在行3~28上满足index1=8或更低的情况下,与相邻值的差异仅为1。从而,在下面描述的量化处理中,通过对具有index1=8或更低的量化前的值Y仅进行一次搜索便可以确定量化值Z。
而且,在使用上述哈希表的情况下,例如,当确定index1=18且index2=0时,此时表值4096与下一表值4287(量化前的值的范围)的差异为191,且搜索需进行191次。然而,如图9所示,由于几乎不产生该表值附近的量化值,故即使当搜索的次数变大时也不会有问题。
作为上述处理的结果,进行量化处理之前,可以创建能对逆量化表中的表值迅速进行搜索的哈希表。
由量化单元进行的量化处理
接下来,参考图14的流程图,描述图10的由量化单元151进行的量化处理。
在步骤S161中,当输入来自规范化系数单元31的输入数据X时,范围确定单元192在以逆变换表中相邻的逆量化值W为边界值的预定范围中,确定对应于该输入数据X的量化前的值Y包括于哪个范围中。更具体地,范围确定单元192从来自规范化系数单元31的输入数据X,计算量化前的值Y=X/2q/4,并在以逆变换表中的相邻的逆量化值W为边界值的范围中,通过使用条件语句,以预定的次数搜索包括量化前的值Y的范围。
在步骤S162中,范围确定单元192判断在步骤S161的处理中,是否求出了包括量化前的值Y的逆量化值的范围。即,范围确定单元192通过使用条件语句以预定的次数进行搜索,以判断包括量化前的值Y的范围是否确定。
在步骤S162中,在通过使用条件语句以预定的次数进行搜索确定了包括量化前的值Y的范围的情况下,该处理前进到步骤S163。
在步骤S163中,量化值确定单元193在用作由范围确定单元192确定的范围的边界值的逆量化值中,确定对应于接近量化前的值Y的逆量化值W的量化值Z,并将该量化值Z提供给霍夫曼编码单元33,然后处理前进到步骤S167。
另一方面,在步骤S162中,在通过进行预定次数的搜索未确定包括量化前的值Y的范围的情况下,处理前进到步骤S164。
在步骤S164中,初始搜索值确定单元191使用从哈希表创建单元171提供的哈希表确定逆量化表中的初始搜索值。更具体地,搜索量化单元172从来自规范化系数单元31的输入数据X计算量化前的值Y=X/2q/4,并基于由此计算的量化前的值Y的指数部分与有效数字部分计算index1与index2,以从哈希表中求出逆量化表中的初始搜索值。
在步骤S165中,基于初始搜索值与从逆量化表创建单元71提供的逆量化表,范围确定单元192搜索并确定包括对应于输入数据X的量化前的值Y的范围W[k-1]≤Y[m]<W[k],该范围以逆量化值W为边界值。
在步骤S166中,量化值确定单元193在用作由范围确定单元192确定的范围的边界值的逆量化值W中,确定对应于接近量化前的值Y的逆量化值W的量化值Z。更具体地,在由范围确定单元192确定的包括量化前的值Y[m]的范围W[k-1]≤Y[m]<W[k]中,当满足Y[m]-W[k-1]≤W[k]-Y[m]时,量化值确定单元193设置量化值Z[m]=k-1,且当不满足Y[m]-W[k-1]≤W[k]-Y[m]时,量化值确定单元193设置量化值Z[m]=k。量化值确定单元193将所确定的量化值Z提供给霍夫曼编码单元33。
在步骤S167中,搜索量化单元172判断针对所有data_size个输入数据的搜索包括量化前的值Y的范围的处理是否结束。在确定针对所有输入数据的搜索包括量化前的值Y的范围的处理未结束的情况下,处理返回步骤S161,且重复进行步骤S161~S167中的处理,直到针对所有data_size个输入数据的处理结束。
图15表示以C语言表示图14的流程图中的步骤S161~S167中的处理的程序的示例。
在图15的程序211中,行1~8195中的W[8193]表示逆量化表。
行8197~8200定义了值uni0用作不同类型的数据。而且,程序211中的行8201定义了表示输入数据的标识符的m从0到data_size每次加一,并重复进行以下处理。
在行8203~8213中,基于条件语句,依次四次搜索包括量化前的值Y[m](=uni0.f)的范围,然后确定参数k(步骤S161中的处理)。
而且,在行8216~8218中,通过使用图13中描述的哈希表dequantize_hash[index1][index2],确定量化前的值Y[m](=uni0.f)的初始搜索值(步骤S164中的处理)。
此外,在行8219与8220上,基于初始搜索值k与逆量化表W[k],搜索(确定)包括量化前的值Y[m](=uni0.f)的范围,并确定参数k(步骤S165中的处理)。
随后,在行8228中,在通过行8216~8220上的处理确定的包括量化前的值Y[m]的范围W[k-1]≤Y[m]<W[k]中,当满足Y[m]-W[k-1]≤W[k]-Y[m]时,确定量化值Z[m]=k-1,并当不满足Y[m]-W[k-1]≤W[k]-Y[m]时,确定量化值Z[m]=k(步骤S163与S166中的处理)。
以此方式,在量化前的值大的情况下,基于哈希表确定初始搜索值。于是,与图8的从较小值顺序搜索的程序相比,搜索包括量化前的值的范围会更迅速。
作为上述处理的结果,通过使用表示量化值Z与逆量化值W之间的关系的逆量化表,可以确定对应于从输入数据X计算的量化前的值Y的量化值Z。因此,不需创建基于由表达式(1)表示的计算的量化表,仅得出具有8193个表值的逆量化表便已足够,所述8193个表值的数目大约为量化表与逆量化表的总表值数(16385)的一半。因此,可以减少用于处理的存储容量。
而且,由于量化前的值Y由Y=X/2q/4给定,不需计算如表达式(1)所示的非线性函数的3/4的幂函数便可以确定量化值Z,且还基于哈希表可以更少的次数进行搜索。从而,可以更高效并更迅速地输出非线性计算的计算结果。
应当注意在上面描述中,通过结合使用基于逆量化表的条件语句的判断以及基于哈希表的初始搜索值的确定,可以得到量化值Z,但是可以仅通过使用基于哈希表的初始搜索值的确定来得到量化值Z。
而且,在结合使用基于逆量化表的条件语句的判断与基于哈希表的初始搜索值的确定的上述方法中,逆量化表中的逆量化值用于条件语句,但也可使用逆量化值的中间值。
图16以C语言表示以逆量化值的中间值作为图15的程序211中的条件语句的情况下进行处理的程序的示例。
在图16的程序221中,省略了图15的程序211中的行1~8195中的逆量化表W[8193]。
而且,图16的程序221与图15的程序211在行7~23中的处理上的差异在于:一旦确定包括量化前的值Y[m](=uni0.f)的范围,也就确定了量化值Z[m]。这是因为在参照图4描述的关系中,量化前的值Y的范围的边界值与逆量化值W的中间值V的范围大致相同。
以此方式,对于通过高频率的量化处理得到的量化值,通过将逆量化值的中间值用于条件语句,可以确定从输入数据X计算出的量化前的值Y所对应的量化值Z。因此,对于通过高频率的量化处理得到的量化值,由于未判断包括量化前的值Y[m]的范围是否满足Y[m]-W[k-1]≤W[k]-Y[m],且因此可以更高效地并更迅速地进行非线性计算。
定点数的应用示例
在上面的描述中,将量化前的值与逆量化表中的值当作浮点数处理,但是还可以将这些值当作定点数处理。更具体地,通过浮点数计算对应于量化值的逆量化值的范围,并可基于浮点数计算出定点数的整数部分。
以下,描述上述情况中结合使用逆量化表与哈希表的示例,其中对于以浮点数表示的逆量化表W[8193],小数点的位置设于32位中的第8位,所述32位将被设置为定点数。当小数点的位置处于第8位时,通过乘以256并仅取整数部分,可创建范围表值。
首先,通过以下步骤,由初始搜索值确定单元191进行哈希表中的index1与index2的计算。
即,在量化前的值Y中,搜索呈现1的最高位的位置cnt,且index1由表达式(4)计算。
[表达式4]
index1=cnt-P+2    …(4)
在表达式(4)中,P表示小数点的位置,且这种情况下,满足P=8。而且,表达式(4)中的“2”是125与由IEEE754标准限定的偏差127之间的差值,125是在创建浮点数的哈希表时的指数部分的基准。
而且,如表达式(5)以及表达式(6)所示,在量化前的值Y中,当呈现1的最高位转为0时且向右移位cnt-4,从而计算index2。
[表达式5]
Y=Y-mask    …(5)
index2=Y>>(cnt-P)    …(6)
应当注意表达式(5)中的“mask”为十六进制,从“0x40000000”(用二进制数字(32位)表示为“100 0000 0000 0000 0000 0000 0000 0000”)开始,相对于量化前的值Y,进行每次一位的右移计算,一直到呈现1的最高位为止。最终,“mask”成为表示相对于量化前的值Y的呈现1的最高位的值。即,通过表达式(5)中的减法,将呈现1的最高位设置为0。表达式(6)中的“>>”表示右移计算。
图17以C语言表示将参照图16解释的逆量化表W[8193]中的浮点数的值设置为定点数的情况的程序的示例,所述定点数中小数点的位置处于32位中的第8位。
在图17的程序231中,行1~8195中的Wint[8193]表示转化成定点数的逆量化表。
行8197定义了整数型值yin。而且,程序81中的行8198定义了表示输入数据的标识符的m从0到data_size每次增一,并重复进行以下处理。
行8200~8216中的处理对应于图14的流程图中的步骤S162中的处理。包括被转化成定点数的量化前的值Y[m](=yin)的中间值V的范围被搜索六次,然后确定量化值Z[m],所述定点数中小数点的位置处于32位中的第8位。
行8219~8226中的处理等同于上述的表达式(4)~(6)中的计算。
而且,在行8227~8229中,通过使用参照图13描述的哈希表dequantize_hash[index1][index2],确定量化前的值Y[m](=yin)的初始搜索值(步骤S164中的处理)。
此外,在行8230与8231上,基于初始搜索值k与逆量化表Wint[k],搜索(确定)包括量化前的值Y[m](=yin)的范围,并确定参数k(步骤S165中的处理)。
随后,在行8239上,在行8227~8231的处理中确定的包括量化前的值Y[m]的范围W[k-1]≤Y[m]<W[k]中,当满足Y[m]-W[k-1]≤W[k]-Y[m]时,确定量化值Z[m]=k-1,且当不满足Y[m]-W[k-1]≤W[k]-Y[m]时,确定量化值Z[m]=k(步骤S166中的处理)。
以此方式,不需创建量化表,通过使用包括定点数的逆量化表与哈希表进行搜索便可以确定量化值,且因此可以减少用于处理的存储容量。
执行结果
以下,参考图18,描述当进行上述量化处理时的循环次数。图18表示当通过使用美普思科技公司(MIPS Technologies,Inc.)的作为RISC(精简指令集计算机)CPU的R4000执行上述量化处理时的循环次数。
如图18中所示,当通过使用逆量化表(条件语句)执行量化处理时的循环次数设置为1.00,而当结合使用条件语句与哈希表执行量化处理(图14)时的循环次数为0.70,这使得根据本发明的实施例可将效率提高30%。而且,在结合使用条件语句与哈希表的量化处理(图16的程序221)中,当逆量化值的中间值用于条件语句时的循环次数为0.45,这使得效率提高55%。
3.第三实施例
上面,描述了使用进行逆量化处理的逆量化表的量化处理,但是基于图中4描述的关系,还可以通过使用进行量化处理的量化表进行逆量化处理。
逆量化单元的配置示例
图19表示通过使用进行量化处理的量化表进行逆量化处理的逆量化单元的配置示例。
图19的逆量化单元251例如进行逆量化处理,以用于评估图1的量化单元32进行的量化处理中的量化误差。
图19的逆量化单元251包括量化表创建单元271与逆量化值计算单元272。
量化表创建单元271计算对应于量化值Z的量化前的值Y的范围,以及创建量化值Z对应于量化前的值Y的范围的量化表(图2),并提供给逆量化值计算单元272。根据求出量化前的值Y的范围的更具体的方法,表达式(7)中的量化前的值Y从小值增加,并可以求出作为离散值的量化值Z的值改变时的量化前的值Y,即求出用作边界的值。
[表达式6]
Z=(int)(Y3/4-0.0946+0.5)    …(7)
基于从量化表创建单元271提供的量化表,逆量化值计算单元272计算对应于从量化单元32提供的量化值Z的逆量化值W,并输出该逆量化值W。
以上述配置,基于逆量化表,逆量化单元251计算对应于从量化单元(未图示)输入的量化值的逆量化值,并输出该逆量化值。
由逆量化单元进行的量化表创建处理
接下来,参考图20的流程图,描述由图19的逆量化单元251进行的量化表创建处理。在逆量化单元251中,在进行逆量化处理之前进行量化表创建处理。
在步骤S231中,量化表创建单元271计算对应于量化值Z的量化前的值Y的范围,以及创建量化值Z对应于量化前的值Y的范围的量化表,以提供给逆量化值计算单元272。更具体地,量化表创建单元271使表达式(7)中的量化前的值Y从小值增加,并求出作为离散值的量化值Z的值改变时的量化前的值Y,即求出用作边界的值。即,量化表创建单元271求出对应于8193个量化值Z[m](m=0,…,8192)的量化前的值Y[Z[m]]的范围。
作为上述处理的结果,在进行逆量化处理之前,可以创建量化值Z对应于量化前的值Y(边界值)的范围的量化表。
由逆量化单元进行的逆量化处理
接下来,参考图21的流程图,描述由图19的逆量化单元251进行的逆量化处理。
在步骤S261中,逆量化值计算单元272使用从量化表创建单元271提供的量化表,以计算对应于从量化单元(未图示)提供的量化值Z的逆量化值W,并输出该逆量化值W。
此时,在图4中,中间值V[m-1]与V[m]之间的中间值大致与逆量化值W[m]相同。因此,逆量化值W[m]大致与量化前的值Y[m-1]与Y[m]之间的中间值相同。例如,在图4中,中间值V[0]=0.50与V[1]=1.76之间的中间值为1.13,该中间值接近逆量化值W[1]=1。而且,在图4中,中间值V[1]=1.76与V[2]=3.43之间的中间值为2.59,该中间值接近逆量化值W[2]=2.52。
鉴于以上所述,逆量化值计算单元272进行由表达式(8)表示的计算,以计算对应于量化值Z[m]的逆量化值W[m]。
[表达式7]
W[m]=(Y[Z[m]-1]+Y[Z[m]])/2    …(8)
在步骤S262中,逆量化值计算单元272判断针对所有data_size个量化值Z的计算逆量化值W的处理是否结束。在判断出针对所有量化值Z的计算逆量化值W的处理未结束的情况下,处理返回步骤S261,并重复进行步骤S261与S262中的处理,直到针对所有data_size个量化值Z的所述处理结束。
作为上述处理的结果,通过使用表示量化值Z与量化前的值Y的范围之间的关系的量化表,可以确定对应于输入的量化值Z的逆量化值W。因此,不需创建逆量化表,仅求出具有8193个表值的量化表便已足够,所述8193个表值的数目大约是量化表与逆量化表的表值的总数(16385)的一半,且因此可以减少用于处理的存储容量。
4.第四实施例
上面,描述了根据AAC标准的量化处理,但是在由ISO/IEC11172-3标准化的MPEG-1音频层3(MP3)中的量化处理中,也会进行类似于表达式(1)与表达式(2)的量化与逆量化处理。从而,在MP3中的量化与逆量化处理中,也可以应用本发明的实施例。
而且,上面作为示例,描述了符合AAC标准的量化处理中用作非线性函数的幂函数。然而,如表达式(9)与表达式(10)所示,关于输入值X的预定函数func(X)与其逆函数inv_func(Y)之间的对应关系显而易见,且在一个输入值为离散值的情况下,可以应用本发明的实施例。
[表达式8]
Y=(int)func(X)    …(9)
W=inv_func(Y)    …(10)
此外,在上面描述中,预先计算逆量化表。然而,例如,在处理期间,在逆量化表中的表值发生变化的情况下,可以适当地再次计算表值。
计算装置的配置示例
以下,参考图22的框图,提供了一个计算装置,其配置用于基于预定函数func(X)对输入值X进行计算,并输出离散值Y。
图22的计算装置351包括逆变换表创建单元371与搜索变换单元372。
逆变换表创建单元371例如基于上述表达式(10),计算对应于离散值Y的逆变换值W,以创建其中的离散值Y对应于逆变换值W的逆变换表,并将该逆变换表提供给搜索变换单元372。
基于从逆变换表创建单元371提供的逆变换表,搜索变换单元372在以逆变换表中相邻的逆变换值W为边界值的范围中,确定由此输入的输入值X包括于哪个范围中,并输出对应于相关范围的离散值Y。
搜索变换单元372设有范围确定单元391与离散值确定单元392。
当输入值X被输入时,范围确定单元391在以逆变换表中相邻的逆变换值W为边界值的范围中,确定输入值X包括在哪个范围中。
离散值确定单元392在用作由范围确定单元391确定的范围的边界值的逆量化值W中,确定对应于接近输入值X的逆变换值W的离散值Y,并将该离散值Y输出到外部装置。
以上述配置,基于预先创建的逆变换表中的逆变换值,计算装置351搜索对应于由此输入的输入值的离散值并输出该离散值。
由计算装置进行的逆变换表创建处理
接下来,参考图23的流程图,描述由图22的计算装置351进行的逆变换表创建处理。在计算装置351中,在进行离散值搜索处理之前进行逆变换表创建处理。
在步骤S331中,逆变换表创建单元371例如基于上述的表达式(10)计算对应于离散值Y的逆变换值W,以创建其中离散值Y对应于逆变换值W的逆变换表,并将逆变换表提供给搜索变换单元372。
作为上述处理的结果,进行离散值变换处理之前,可以创建其中逆变换值对应于离散值的逆变换表。
由计算装置进行的离散值搜索处理
接下来,参考图24的流程图,描述由图22的计算装置351进行的离散值搜索处理。
在步骤S361中,范围确定单元391在以逆变换表中相邻的逆变换值W为边界值的范围中,确定输入值X包括在哪个范围中。
在步骤S362中,离散值确定单元392在用作由范围确定单元391确定的范围的边界值的逆量化值W中,确定对应于接近输入值X的逆变换值W的离散值Y,并将该离散值Y输出到外部装置。
在步骤S363中,搜索变换单元372判断针对所有输入值X的确定离散值Y的处理是否结束。在确定关于所有输入值X的确定离散值Y的处理未结束的情况下,处理返回到步骤S361,且重复进行步骤S361~S363中的处理,直到针对所有输入值X的所述处理结束。
作为上述处理的结果,通过使用逆变换表表示离散值Y与逆变换值W之间的关系,可以确定对应于由此输入的输入值X的离散值Y。即,不需创建表示输入值X与离散值Y之间的关系的变换表,仅得出逆变换表便已足够,且从而可以减少用于处理的存储容量。
应当注意,图22的计算装置351具有一个逆变换表,在该逆变换表中,对于一个输入值X,对应于相关输入值X的离散值Y对应于逆变换值W。然而,计算装置351可具有多个逆变换表,在各个逆变换表中,对于每种类型的输入值,相应的离散值对应于该离散值的逆变换值。即,计算装置351根据表示输入值的类型、地址等的信息,读取相应的逆变换表,并使用读取的逆变换表,从而可以输出对应于输入值的离散值。
因此,对于多种类型的输入值,即使在输出各个离散值的情况下,通过根据输入值的类型读取逆变换表,仅使用一个计算装置便可以输出多种类型的离散值。
上述一系列的处理包括可以通过使用硬件执行且也可通过使用软件执行的一系列显示处理。在通过使用软件执行上述一系列处理的情况下,构成软件的程序例如从记录介质安装到属于专用硬件的计算机或通用个人计算机等,所述计算机通过安装各种程序等可以执行各种函数。
图25是表示通过程序执行上述一系列处理的计算机硬件的配置示例的框图。
在计算机中,CPU(中央处理单元)901、ROM(只读存储器)902以及RAM(随机存取存储器)903由总线904互相连接。
此外,输入与输出接口905连接于总线904。包括键盘、鼠标等的输入单元906、包括显示器、扬声器等的输出单元907、包括硬盘、非易失性存储器等的存储单元908、包括网络接口的通信单元909以及配置用于驱动包括磁盘、光盘、光磁盘、半导体存储器等的可移除介质911的驱动器910连接于输入与输出接口905。
在以上述方式配置的计算机中,CPU901将例如存储于存储单元908上的程序经由输入与输出接口905以及总线904加载到RAM903上,并执行该程序,从而进行上述一系列处理。
由计算机(CPU901)执行的程序例如以记录于可移除介质911上的方式提供,所述可移除介质911是包括磁盘(包括软盘)、光盘(包括CD-ROM(压缩盘只读存储器)、DVD(数字多用盘)等)、光磁盘、半导体存储器等的封装介质,或经由诸如局域网、互联网或数字卫星广播等有线或无线传输介质提供。
随后,通过将可移除介质911安装到驱动910,程序可以经由输入与输出接口905安装到存储单元908。而且,程序可以经由有线或无线传输介质由通信单元909接收并安装到存储单元908。此外,程序可以预先安装到ROM902或存储单元908。
应当注意,由计算机执行的程序可以是按本说明书中陈述的顺序以时间顺序方式执行处理的程序,也可以是以并行方式或在恰当的时间、例如当进行调用时执行处理的程序。
本领域的技术人员应当明白,在不脱离所附权利要求及其等同物的范围内,根据设计需要和其它因素可出现各种变化、组合、子组合和替代。

计算装置与方法、量化装置与方法以及程序.pdf_第1页
第1页 / 共56页
计算装置与方法、量化装置与方法以及程序.pdf_第2页
第2页 / 共56页
计算装置与方法、量化装置与方法以及程序.pdf_第3页
第3页 / 共56页
点击查看更多>>
资源描述

《计算装置与方法、量化装置与方法以及程序.pdf》由会员分享,可在线阅读,更多相关《计算装置与方法、量化装置与方法以及程序.pdf(56页珍藏版)》请在专利查询网上搜索。

本发明提供了一种计算装置,该装置包括:逆变换表创建单元,其配置用于创建逆变换表,在该逆变换表中,通过对预定数据进行预定变换得到的离散值对应于通过对离散值进行与预定变换相逆的变换得到的逆变换值;范围确定单元,其配置用于当输入预定数据时,在以逆变换表中的相邻的逆变换值为边界值的范围中,确定预定数据包括于哪个范围中;以及离散值确定单元,其配置用于在用作由范围确定单元确定的范围的边界值的逆变换值中,确定对。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1