本发明的详细描述
本发明现在参考附图描述,其中附图中相同的符号具有相同的标识。在以下描述中,为了解释方便,提出许多特定细节为了提供对本发明彻底的理解。但是本发明可能在没有这些特定细节的情况下应用。在其它实例中,以方框图形式中示出了已知的结构和设备以方便对本发明的描述。
如在该申请中应用的,术语“计算机元件”指与计算机相关的实体,或是硬件,或是软硬件组合、软件或执行中软件。例如,计算机元件可能是,但不限于,在处理器上运行的进程、处理器、对象、可执行的、执行线程、程序和/或计算机。例如,在服务器上运行的应用和服务器可以是计算机元件。一个或多个计算机组件能留在处理和/或执行线程内,且元件可能位于一个计算机和/或分布在两个或更多计算机上。
参考图1,说明了根据本发明的一方面的无损数据编码器系统100。系统包括多个因式分解可逆变换元件110和熵编码器120。
系统100能无损地对数据编码(例如对图像、图片和/或音频)。系统100接收例如与音频波形相关的数字输入(例如从模拟到数字变换器)。系统100可以用于例如音频和/或文档图像应用的大阵列包括但不限于数字音频系统、分段分层图像系统、复印机、文档扫描仪、光学特性识别系统、个人数字辅助、传真机、数字照相机、数字摄像机和/或视频游戏。
多个因式分解可逆变换元件110接收输入信号并提供对应输入信号的经量化系数的输出。多个因式分解可逆变换元件110还使用例如可逆已调制重叠变换、可逆DCT、可逆DST和/或可逆FFT。
例如,经量化系数的输出可以至少部分基于可逆已调制重叠变换(MLT)。无损压缩效率受到可逆MLT和它的非可逆对等部分的类似性的影响。因此,可逆MLT设计成使得其变换结果模仿非可逆MLT的结果(例如尽可能)。在传统系统中,可逆MLT参考线性非可逆MLT通过使得将非可逆MLT的每个分量实质上变得可逆而建立。
旋转操作是非可逆MLT的关键步骤,连同其它通常用于压缩内的非可逆变换,诸如DCT、DST和/或FFT。为建立可逆的MLT,建立可逆旋转:
矩阵 用于表示可逆旋转操作。可逆旋转一般有以下特性:
a.对整数输入 可逆旋转的输出 应为经量化系数,即也是整数值。
b.用合适的反操作,可以从 准确地恢复
c.输出 应与线性旋转的相似。整数输出 和线性旋转结果间的差定义为量化误差。
一般,旋转可以被分解为三部非线性操作:
其中c
0=(cosθ-1)/sinθ且c
1=sinθ是操作的参数;
代表取整操作,其中浮点操作数被变换成整数值。旋转很明显是可逆的,使得中间整数变量z可以在步骤2从x’和y’(例如准确)恢复,然后在步骤1从x’和z’恢复整数输入y,最后在步骤0处从x和z恢复整数输入x。
同样为了标注简单性,上三角矩阵
用于表示非线性操作
而下三角矩阵
用于表示非线性操作
(2)的可逆旋转因式分解因此可表示为:
由于基本可逆旋转操作符合可逆旋转,最好等式(2)内使用因式分解的可逆变换产生紧凑的数据表示的可逆变换。然而,对一定旋转角度θ,量化噪声可以很大,导致较差的信号表示。
重要的是,根据本发明的一方面,取代乘以线性变换例如线性旋转成单个可逆因式分解形式,如(3)式,可使用多个因式分解形式。在一实施例中,可逆因式分解的合适形式是根据一个或多个变换参数而被选择的。对多个因式分解,可取得的量化噪声可能要小得多,且因此使得可逆变换尽可能逼近其线性变换对应部分。该方法在被称为“多个因式分解可逆变换”。
例如可逆旋转能以三种附加形式因式分解。
因式分解的核心仍是等式(3)提出的三步非线性操作。然而,输入/输出变量对可以在非线性操作前(如在等式(5)内)和后(如在等式(4)内)被交换。输入/输出的符号也可以被交换,如同在一些其它情况下。因式分解的附加形式导致对同一旋转角度θ不同的非线性参数c0和c1,且因此使得可逆变换能(例如尽可能)逼近线性非可逆变换。
令Δx′和Δy′代表量化噪声。量化噪声是可逆变换结果和线性非可逆变换的结果之差。根据本发明的一方面,期望最小化量化噪声的平均能量E[Δx′2]+E[Δy′2]的可逆变换。取整操作(例如根据截取和/或四舍五入)在可逆变换内引入了量化噪声。等式(4)到(6)的系数交换以及符号改变操作不引入附加的量化噪声。令Δ代表单一取整操作的量化噪声:
可逆变换内的量化噪声可以被建模为:
其中Δ0到Δ2是在非线性步骤0到2的量化噪声。假设在每步的量化噪声是独立且是相同分布的随机变量,E[Δ2]代表单一取整操作的量化噪声的平均能量。量化噪声的平均能量可以计算为:
图2内说明根据本发明一方面的等式(3)到(6)提出的不同因式分解形式的量化噪声对旋转角度的说明图表200。用“0”标注的线210对应等式(3),用“x”标注的线220对应等式(4)。用“+”标注的线对应等式(5),用“◇”标注的线240对应等式(6)。
可以观察到,用任何单一因式分解,量化噪声可能在一些旋转角度很大。通过在不同因式分解间切换,更具体地,通过对旋转角度(-0.25π,0.25π)、(-0.75π,-0.25π)、(0.25π,0.75π)以及(0.75π,1.25π)分别使用因式分解形式(3)、(4)、(5)和(6),量化噪声可以被控制在最多3.2E[Δ2]。在一例中,例如,为减少复杂性,虽然有较大的量化噪声,但使用因式分解形式(3)-(6)的子集。例如,因式分解形式(3)可用于旋转角度(-0.5π,0.5π),形式(6)用于(0.5π,1.5π)。在该情况下,量化噪声最大为4E[Δ2]。
为获得减少的量化噪声,在一例中,可以使用取最近整数作为取整操作。在另一实施例中,可以使用截取作为取整操作。然而,取最近整数可能显著减较小的量化噪声获得较好无损压缩性能,由于它有较小的单一步长量化噪声E[Δ2]。
可逆操作内的一般操作是非线性操作内乘法+的取整操作,其形式为以C/C++的可逆变换实现,该操作一般实现为:
floor(ldexp(cf,2*SHIFT_INT)*y+0.5);
其中y一般是32比特整数,cf是由32比特整数c表出的浮点数,数cf与32比特整数的相关是通过:
cf=c*2^(-SHIFT_INT),
其中,SHIFT_INT是系统常量,在一例中为24。这可能是整个可逆变换计算量最多的操作。在x86系统上,这可以在内嵌汇编内实现为:
_asm
{
MOV eax,y;
IMUL c; //edx:eax=x*y;
SHL edx,SHIFT_REST;
SHR eax,SHIFT_INT;
ADC eax,edx;
};
其中SHIFT_REST=32-SHIFT_INT。该操作单独能加快该实现10多倍。
在一例中,多个因式分解可逆变换元件110可以使用可逆MLT,它被分解成窗口调制和类型IV离散余弦变换(DCT),后者可能还被分解为预快速傅立叶变换(FFT)旋转、复数FFT以及后FFT旋转操作;这些中的每个都建立在多个经因式分解的可逆旋转。
参考图3,根据本发明的一方面说明了使用8点MLT的多个因式分解可逆变换元件300。MLT 300包括调制阶段310、预FFT旋转阶段320、复数FFT阶段330以及后FFT旋转阶段340。多个因式分解可逆变换元件300是能为多个因式分解可逆变换元件110使用的多个因式分解可逆变换元件的一例。
调制阶段310和预FFT旋转阶段320包括可以可逆实现的等式(1)内的旋转操作。复数FFT阶段330的核心是蝶形变换计算:
其中x
c(i)和y
c(i)是复数。第一矩阵是能可逆实现的复数旋转。第二矩阵是复多路复用器。在该例中,实现了x
c(i)和y
c(i)的实虚部的0.25π的旋转。对0.25π的旋转,有
的增益因子,因此实现的可逆蝶形变换为:
与行列式绝对值为2的等式(10)的蝶形变换对比,等式(11)的蝶形变换的行列式绝对值为1,它并不对数据扩展,因此更适合无损压缩目的。在蝶形变换中(等式(11))中,输出系数yc(i)和yc(j)是同等加权的,所以可以在FFT操作中级联。
后FFT旋转阶段340的核心是共轭旋转操作,这可以通过在标准旋转后改变虚部的符号而实现:
最好等式(12)的变换能可逆实现。
可逆旋转的行列式值为1,交换系数和改变符号的操作行列式值为-1。整个可逆MLT的绝对行列式值因此为1。由于行列式值1变换保留信号能量,所以可逆MLT的量化噪声大致与变换内的旋转数目成正比,该数目对N点MLT为O(Nlog2N)E[Δ2](注意在复数FFT每个蝶形变换有两个旋转)。该实现通过N点LU变换比起对可逆MLT(或类型IV DCT)因式分解来的更好,其中由非线性操作的长链引起的量化噪声可能更大。
参考回图1,熵编码器120对经量化系数实现数字熵编码。熵编码器120可能使用任何合适的熵编码技术。相应地,任何与本发明一起使用的合适的熵编码技术会在所附的权利要求书范围内。
图1是说明是说明使用多个因式分解可逆变换元件的无损数据编码器系统100元件的方框图。最好无损数据编码器系统100、多个因式分解可逆变换分量110和/或熵编码器120可能实现为一个或多个计算机组件,如前面的术语定义的。因此,最好计算机可执行组件用于实现无损数据编码器系统100、多个因式分解可逆变换元件110和/或熵编码器120能存储在计算机可读介质包括但不限于此的根据本发明的ASIC(应用专用集成电路)、CD(光盘)、DVD(数字视频光盘)、ROM(只读存储器)、软盘、硬盘、EEPROM(电可擦除只读存储器)以及记忆条。
接着,参考图4,说明本发明一方面的无损数据解码器系统400。系统400包括熵解码器410和反变换元件420。
熵解码器410接收比特流(例如由对应的熵编码器生成)并对比特流解码。因此,熵解码器410对输入比特流熵解码并提供经解码信息给反变换元件420。
反变换元件420接收从熵解码器420输出的值。反变换元件420将从熵解码器420来的输出值进行变换并提供输出值。在一例中,反变换元件420利用反可逆MLT,主要以反转在多个因式分解可逆变换元件110内的计算。
最好无损数据解码器系统400、熵解码器410和/或反变换元件420是在此定义的计算机元件。
再看图5,说明了根据本发明一方面的逐次浮现无损数据编码器系统500。系统500包括多个因式分解可逆变换元件110以及嵌入式熵编码器510。
可以使用逐次浮现无损数据编码器系统500以对音频和/或图像编码。在一例中,系统500是基于可逆变换的,它用于在标准音质音频编码器内(例如尽可能)逼近非可逆变换。多个因式分解可逆变换元件110与嵌入式熵编码器510耦合(例如高性能嵌入式熵编解码器)使得系统具有无损能力和精细颗粒并可测量性逐次浮现性。系统500生成比特流,如果经充分解码,则实质上能无损地恢复原始(音频)波形且方便无损压缩。如果需要更高的压缩比,则应用可能抽取压缩的比特流的一子集并形成具有损性质的更高压缩比比特流。该种调节可以在很大的比特速率范围内实现,颗粒度可能细到一位。以系统500的逐次浮现无损功能性,应用可能简单地在需要的压缩和期望的质量间选择,从很高的压缩比直到无损(例如,根据可用带宽和/或用户偏好)。
嵌入式熵编码器510可能使用任何合适的嵌入式熵编码技术。相应地,任何连同本发明使用的合适的嵌入式熵编码技术在所附的权利要求书的范围内。
在一例中,嵌入式熵编码器510使用充分可变尺度音质音频编码器,它从先前经编码系数导出听觉掩蔽阈值,并使用导出的阈值优化编码的顺序。声学或听觉掩蔽背后的基本理论在此作一般描述。
一般,听觉掩蔽的基本理论是人不能分别频率上的细小差别。例如,很难区别1000Hz信号和1001Hz信号间的差别。如果两个信号同时播出更难区别。而且,研究标明1000Hz的信号也会影响人听1010Hz或1100Hz或990Hz的信号的能力。该概念称为掩蔽。如果1000Hz信号很强,则它会掩蔽在其频率附近的信号,使得听者听不见。另外,有两种其它影响人听觉的声学掩蔽类型。特别是,如下所述,时间掩蔽和噪声掩蔽还影响人音频理解。这些概念用于改善音频压缩,由于人不能感觉到,所以可丢弃音频文件内任何落在掩蔽阈值下的任何频率分量。
在本例中,嵌入式熵编码器510是充分可变尺度类通用音频编码器,它使用与可变尺度熵编码处理混合的隐式听觉掩蔽。而且听觉掩蔽阈值不被送到解码器,而是从已编码的系数导出。而且,不是根据听觉掩蔽阈值对音频系数实行量化,掩蔽阈值用于控制系数被编码的顺序。特别是,在可变尺度编码时,较大的音频系数先被编码,这是因为较大的分量时对音频能量电平贡献最多的系数,且导致较高的听觉掩蔽阈值。
例如,从多个因式分解可逆变换元件110接收到的MLT变换系数被分为多个部分。该分部操作使得音频采样速率可变尺度。该可变尺度性在期望经解码音频文件有不同频率响应时特别有用。例如,当与解码器相关的一个或多个播放扬声器没有高频响应时,或当需要解码器节省计算功率和时间一者或两者时特别有用,可以丢弃一个或多个对应MLT变换系数的特定高频分量。
MLT变换系数的每个部分然后经熵编码成为嵌入式比特流,这能在以后的阶段被截短并重组。另外,为改善熵编码器的效率,MLT系数被组合到许多称为时隙的连续窗口内。在一例中,时隙包括16长MLT窗口或128端MLT窗口。然而,对领域内的技术人员很清楚窗口的数目可以轻易改变。
特别是,首先,用听觉掩蔽确定变换系数被编码的顺序,而不是通过量化而改变变换系数。不是对任何听觉不敏感系数粗编码,在本例中,嵌入式熵编码器510在以后阶段对这些系数编码。通过使用听觉掩蔽而不是编码内容以管理编码顺序,由于所有内容最终均经编码,嵌入式熵编码器510获得达到并包括音频输入的无损编码的嵌入式编码。而且,音频的质量变得对听觉掩蔽不那么敏感了,在听觉掩蔽内的细微不准确可能引起一些音频系数在以后被编码。
第二,在本例中,听觉掩蔽阈值是从已编码的系数导出的,且逐渐由嵌入式编码器细化(例如“隐式听觉掩蔽”)。在实现隐式听觉掩蔽时,变换系数的最重要部分(例如,最上面位面)首先经编码。初步听觉掩蔽阈值根据已编码的变换系数而被计算。由于解码器自动从经编码的转换系数导出同样的听觉掩蔽阈值,听觉掩蔽阈值不需要被送回解码器。而且,经计算的听觉掩蔽阈值用于管理变换系数的哪个部分被细化。
在变换系数的下一部分已被编码后,计算新一组的听觉掩蔽阈值。重复该过程直到达到期望标准,例如,所有变换系数均被编码,已达到期望的编码比特率或达到期望编码质量。通过从已编码的系数导出听觉编码阈值,节省了通常对听觉掩蔽阈值编码需要的比特。结果是改善了编码质量,特别是当编码比特率很低时。
在另一例中,嵌入式熵编码器510使用传统编码器,它带有作为比特流头部的听觉掩蔽阈值。
因此,在多个因式分解可逆变换元件110实现了可逆变换后,多个窗口的MLT系数被组成一个时隙。每个时隙的系数然后由嵌入式熵编码器510熵编码,这不仅有效地压缩了系数,还使得输出比特流带有嵌入式(例如逐次浮现)性质,使得(例如每个信道的)比特流能在任何点被截断。
最好系统500和/或嵌入式熵编码器510能是如上定义的计算机元件。
参考图6,说明了根据本发明的一个方面的逐次浮现无损数据解码器系统600。系统包括嵌入式熵解码器610和反变换元件420。
嵌入式熵解码器610接收比特流(例如由对应的熵编码器生成的)并对比特流解码。因此,嵌入式熵解码器对输入比特流实现数字熵解码并提供经解码信息给反变换元件420。
反变换元件420从嵌入式熵解码器610接收输出值。反变换元件420将从嵌入式熵解码器610来的输出值作变换并提供输出值。在一例中,反变换元件420利用可逆反MLT,实质上反转多个因式分解可逆变换元件110内的计算。
最好逐次浮现无损数据解码器系统600和/或嵌入式熵解码器610能是上述的计算机元件。
接着看图7,说明了根据本发明的一方面的无损立体声音频编码系统700。系统700包括可逆多路复用器710,多个因式分解可逆变换元件1101,1102,嵌入式熵编码器5101,5102以及比特流汇编器720。
系统700接收输入音频波形,它首先通过可逆多路复用器710。如果输入音频为立体声的,它将被分为L+R和L-R分量。每个音频分量的波形然后由多个因式分解可逆变换元件1101,1102变换(例如,用切换窗口)。在一例中,窗口的大小或为2048或为256采样。在多个因式分解可逆变换元件1101,1102后,多个相继窗口的MLT系数被分组成一个时隙。
例如,时隙可以包括16个长MLT窗口或128个短窗口。时隙因此包括32768个采样,如果输入音频以44.1kHz采样则是0.74秒。时隙内的系数然后由嵌入式熵编码器5101,5102进行熵编码,其输出比特流以后可在任何点被截短。
可逆多路复用器710接收,例如立体声音频输入。可逆多路复用器710使用传统技术将立体声音频输入分为L+R和L-R分量,其中L和R相应代表左右音频信道。如果输入音频是单声道,则可逆多路复用器让音频通过。然后每个分量经分开编码。
假设x和y是左右信道,x’和y‘是经多路复用的信道L+R和L-R,可逆多路复用器可以非线性形式实现为:
或者写为:
其中
再次表示取整操作。等式(13)从整数输出生成整数输入且能被准确反转。忽略取整操作内的非线性,输入/输出对间的关系可以通过线性形式表示:
等式(15)的变换的行列式值为-1,意味着输入/输出空间的音量大小相同。
有另一种可逆多路复用器的实现,例如带有0.25π的旋转操作,或通过:
然而,等式(16)形式的可逆多路复用器有绝对行列式值为2,它将数据扩展且对无损压缩不是很有效。使用0.25π的可逆多路复用器需要3次取整操作,且量化噪声为3.2E[Δ2],等式(13)的可逆多路复用器只有一次取整操作,量化噪声为E[Δ2]。因此是更优的实现。用等式(13)的可逆多路复用器,L-R和L+R信道不是相同加权的,L-R信道携带比L+R信道重四倍的加权。不相等加权在无损编码内不是问题,由于所有的L-R和L+R的量化系数被简单地编码。在无损比特流被截短的情况下,能通过多用一个位面而对L+R信道比编码而补偿不相等加权。
比特流汇编器720接收从嵌入式熵编码器5101,5102来的L+R和L-R信道的嵌入式比特流。比特流汇编器形成系统700的最终比特流。
图8说明了根据本发明的一方面的示范比特流800。比特流800包括全局头部810,跟着是第一时隙8201到第N个时隙820N,N是大于等于一的整数。每个时隙820包括时隙头部830,它记录在L+R和L-R信道内的经压缩的比特流的长度,且接着是信道840、850的实际嵌入式比特流。如果需要准确的波形重建,则整个比特流会被解码。在需要高压缩比的情况下,抽取从经无损编码的比特流来的以形成更高压缩比的比特流的子集。由于这可以通过对单个时隙的L+R和L-R信道的嵌入式比特流截短而获得,操作可以很快实现。还可能通过去除与L-R信道相关的经压缩比特流将经压缩的音频从立体声转化为单声道。
回到图7,比特流汇编器720在多个时隙和信道间分配可用编码比特率,根据分配的比特率截断每个时隙和信道的嵌入式比特流并生成经压缩的比特流。
最好系统700、可逆多路复用器710和/或比特流汇编器720是如上定义的计算机元件。
参考图9,说明了根据本发明的一方面的逐次浮现的无损音频解码器系统900。系统900包括比特流解汇编器910、嵌入式熵解码器6101,6102,反变换元件4201,4202以及可逆解多路复用器920。
比特流解汇编器910接收输入比特流(例如从对应的比特流汇编器720来的)。比特流解汇编器将L+R和L-R信道分开并将分开的信道提供给嵌入式熵解码器6101,6102。
嵌入式熵解码器6101,6102的每个接收从比特流解汇编器910来的信息的信道并对比特流解码。因此,嵌入式熵解码器6101,6102对输入比特流数字熵解码并将解码信息提供给反变换元件4201,4202。
反变换元件4201,4202接收从嵌入式熵解码器6101,6102来的输出值。反变换元件4201,4202对从嵌入式熵解码器6101,6102来的输出值进行变换并提供输出值。在一例中,反变换元件4201,4202利用可逆反MLT,本质上反转在多个因式分解可逆变换元件110内的计算。
可逆解多路复用器920接收反变换元件4201,4202的反变换的输出并将输出解多路复用为立体声音频波形。
最好系统900、比特流解汇编器910和/或可逆解多路复用器920是以上定义的计算机元件。
简单地看图10、11、12、13和14,说明了根据本发明可能实现的方法论。为简洁起见,方法用一系列方框示出并描述,要理解且最好是本发明不限于方框的顺序,一些方框根据本发明可能有不同的顺序和/或与在此示出和描述的其它模块同时出现。而且,根据本发明为实现方法不一定需要所有说明的方框。
本发明是在一般计算机可执行指令环境中描述的,诸如由一个或多个元件执行的程序模块。一般,程序模块包括例程、程序、对象、数据结构等,即执行特定任务或实现特定抽象数据类型的。一般程序模块的功能在各种实施例中可能经组合或分散。
参考图10,说明了根据本发明的一方面的无损数据编码1000的方法。在1010处,接收输入信号(例如音频和/或图像)。在1020处,至少部分根据多个因式分解可逆变换(例如可逆已调制重叠变换)提供对应输入信号的经量化的系数。例如,可逆已调制重叠变换可以基于等式(3)、(4)、(5)、(6)、(9)、(10)和/或(11)。多个因式分解可逆变换可能包括调制阶段、预FFT旋转阶段、复数FFT阶段和/或后FFT旋转阶段。在1030处,经量化系数经熵编码。
接着参考图11,说明了根据本发明的一方面的无损数据解码1100的方法。在1110,接收经数字熵编码的输入比特流。在1120,比特流经熵解码且提供变换系数。在1130,提供根据变换系数的反变换的输出值。反变换可以根据可逆已调制重叠变换。
参考图12,说明了根据本发明的一方面的逐次浮现无损数据编码1200。在1210处,接收输入信号(例如音频和/或图像)。在1220,至少部分根据多个因式分解可逆变换(例,可逆已调制重叠变换)提供对应输入信号的经量化系数。例如,多个因式分解可逆变换可以基于等式(3)、(4)、(5)、(6)、(9)、(10)和/或(11)。多个因式分解可逆变换可能包括调制阶段、预FFT旋转阶段、复数FFT阶段和/或后FFT旋转阶段。在1230处,提供基于经量化系数的嵌入式编码的逐次浮现比特流。
再看图13,说明了根据本发明的一方面的无损音频编码1300顺序。在1310处,接收输入信号。在1320处,输入信号被分为第一分量(L+R)以及第二分量(L-R)(例如通过可逆多路复用器710)。
在1330处,至少部分根据多个因式分解可逆变换(例如可逆已调制重叠变换)提供对应第一分量的经量化系数。例如,多个因式分解可逆变换可以基于等式(3)、(4)、(5)、(6)、(9)、(10)和/或(11)。多个因式分解可逆变换可能包括调制阶段、预FFT旋转阶段、复数FFT阶段和/或后FFT旋转阶段。在1340处,提供根据与第一分量相关的经量化系数的嵌入式编码的逐次浮现比特流。
在1350处,至少部分基于多个因式分解可逆变换(例如可逆已调制重叠变换)提供对应第二分量的经量化系数。例如,多个因式分解可逆变换可以基于等式(3)、(4)、(5)、(6)、(9)、(10)和/或(11)。多个因式分解可逆变换可能包括调制阶段、预FFT旋转阶段、复数FFT阶段和/或后FFT旋转阶段。在1360处,提供根据与第二分量相关的经量化系数的嵌入式编码的逐次浮现比特流。
在1370处,与第一和第二分量相关的经嵌入式熵编码量化系数的逐次浮现比特流被汇编成输出比特流(例如通过比特流汇编器720)。
参考图14,说明了根据本发明一方面的多个因式分解可逆变换1400的方法。在1410处,至少实现多个因式分解可逆变换的一个因式分解。在1420处,至少根据变换的一个参数选择产生最小量化噪声量的因式分解。例如,因式分解可能是基于等式(3)、(4)、(5)、(6)、(9)、(10)和/或(11)。因式分解可能包括上文提出的调制阶段、预FFT旋转阶段、复数FFT阶段和/或后FFT旋转阶段,如上所述。
为了提供本发明各方面的附加环境。图15和以下的讨论用于给出本发明的各方面可能实现的合适的操作环境1510的简短的一般的描述。本发明是在计算机可执行指令的一般环境下描述的,诸如由一个或多个计算机或其它设备执行的程序模块,本领域内的技术人员仍能认识到本发明还能与其它程序模块和/或硬件和软件的组合而实现。然而一般而言,程序模块包括例行程序、程序、对象、元件、数据结构等,即实现特定任务或实现特定数据类型的。操作环境1510只是合适的操作环境的一例,并不用于指明本发明的功能或使用的范围的任何限制。其它已知的适合本发明使用的计算系统、环境和/或配置包括但不限于个人计算机、手持或移动计算机设备、微处理器系统、基于微处理器的系统、可编程用户电子器件、网络PCs、微型计算机、大型机计算机、包括上述系统或设备的分布式计算机环境,等等。
参考图15,实现本发明的各方面的示范环境1510包括计算机1512。计算机1512包括处理单元1514,系统存储器1516以及系统总线1518。系统总线1518耦合系统元件包括但不限于例如将系统存储器1516耦合到处理单元1514。处理单元1514可以是各种可用处理器的一种。双微处理器和其它微处理器结构还可能作为处理单元1514使用。
系统总线1518可能是几种类型的总线结构的任何一种,包括存储器总线或存储器控制器,外设总线或外部总线和/或本地总线,它们使用可用总线结构的任何一种包括但不限于16比特总线、Industrial StandardArchitecture(ISA)、Micro-Channel Architecture(MSA)、ExtendedISA(EISA)、Intelligent Drive Electronics(IDE),VESA LocalBus(VLB),Peripheral Component Interconnect(PCI),Universal SerialBus(USB),Advanced Graphics Prt(AGP),Personal Comupter Memory CardInternational Association bus(PCMCIA)以及Small Computer SystemsInterface(SCSI).
系统存储器1516包括易失存储器1520以及非易失存储器1522。基本输入/输出系统(BIOS),包括在计算机1512内诸如在启动时在元件间传递信息的基本例行程序,存储在非易失存储器1522内。为说明用而不是为了限制,非易失存储器1522能包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失存储器1520包括随机访问存储器(RAM),它作为外部缓冲存储器。为说明用而不是为了限制,RAM有许多可用形式,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链接(SLDRAM)以及直接RambusRAM(DRRAM)。
计算机1512还包括可移动/不可移动、易失/非易失计算机存储介质。例如图15说明盘存储器1524。盘存储器1524包括但不限于诸如磁盘驱动、软盘驱动、磁带驱动、Jaz驱动、Zip驱动、LS-100驱动、闪存卡或记忆条的设备。另外,盘存储器1524还包括与其它存储介质分开或组合在一起的存储介质,包括但不限于光盘驱动诸如小型光盘ROM设备(CD-ROM)、CD可录驱动(CD-RDrive)、CD可重写驱动(CD-RW Drive)或数字视频光盘ROM驱动(DVD-ROM)。为方便盘存储设备1524到系统总线1518的连接,一般使用诸如接口1526之类的可移动或不可移动接口。
值得一提的是图15描述作为用户和在合适操作环境1510内描述的基本计算机资源间的中介的软件。该种软件包括操作系统1528。操作系统1528可以存储在盘存储介质1524上,用于控制和分配计算机系统1512的资源。系统应用1530通过程序模块1532利用操作系统1528的资源以及或存储在系统存储器1516或在盘存储器1524上的程序数据1534。最好本发明能用各种操作系统或操作系统的组合而实现。
用户通过输入设备1536将指令或信息输入到计算机1512。输入设备1536包括但不限于,指点设备诸如鼠标、跟踪球、笔尖、触摸板、键盘、麦克风、操纵杆、游戏盘、卫星式转盘、扫描仪、TV频道选择器卡、数字照相机、数字摄像机、Web照相机等。这些和其它输入设备通过系统总线通过接口端口1538连到处理单元1514。接口端口1538包括,例如,串行端口、并行端口、游戏端口以及通用串行总线(USB)。输出设备1540使用一些如输入设备1536的同样类型端口。因此,例如USB端口可能用于提供输入到计算机1512,并从计算机1512输出信息到输出设备1540。输出适配器1542用于说明有类似于显示屏、扬声器和打印机等需要特殊适配器的其它输出设备1540外的一些输出设备1540。输出适配器1542包括用于说明而不是限制,提供输出设备1540和系统总线1518间的连接方法的视频和声卡。值得注意的是设备的其它设备和/或系统提供诸如远程计算机1544的输入和输出容量。
计算机1512能使用到一个或多个远程计算机的逻辑连接在网络环境中操作,诸如远程计算机1544。远程计算机1544可以是个人计算机、服务器、路由器、网络PC、工作站、基于器件的微处理器、对等设备或其它一般网络节点等、且一般包括与计算机相关描述的许多或所有元件。为简洁缘故,只说明了存储器存储设备1546与远程计算机1544。远程计算机1544通过网络接口1548逻辑连到计算机1512上且通过通信连接实现物理连接。网络接口1548包括通信网络诸如本地局域网络(LAN)以及广域网(WAN)。LAN技术包括光纤分布数据接口(FDDI)、铜线分布数据接口(CDDI)、以太网/IEEE 802.3、令牌环/IEEE802.5等。WAN技术包括但不限于点到点链接、线路交换网络如综合服务数字网络(ISDN)以及其变体、分组交换网络以及数字用户线路(DSL)。
通信连接1550指用于将网络接口连到总线1518的硬件/软件。通信连接1550在计算机1512内示出为说明简洁性,它还可以在计算机1512外部。连接到网络接口1548必须的硬件/软件包括,仅作示范用,内部和外部技术诸如包括常规的电话级调制解调器、电缆调制器以及DSL调制器、ISDN适配器以及以太卡的调制解调器。
以上描述的包括本发明的例子。当然,为描述发明不可能描述每个可以考虑到的元件或方法的组合,但本技术领域的普通人员可以认识到本发明的组合和排列的可能。相应地,本发明用于包括所有的变化、修改和变体,这都在附的权利要求书的精神和范围内。另外,在详细描述或要求书内都用了“包括”,该术语用于与“包含”类似的包括的意义,由于“包含”在要求书内作为过渡的词使用。