用于混合式变换代码化方案的实施方式设计的制作方法

文档序号:14688960发布日期:2018-06-15 12:17阅读:153来源:国知局
本申请要求2013年11月22日提交的美国非临时专利申请号14/087,568的优先权并且是该申请的继续申请,该申请的公开被整体地通过引用结合到本文中。
背景技术
:本公开涉及图像和视频压缩代码化。在图像或视频压缩代码化中,帧内代码化指的是在单个帧内,而不是相对于视频序列中的任何其它帧对视频或图像进行压缩的压缩技术。变换代码化是视频和图像压缩中的中心组成部分。可使用变换核的优化可用于为压缩增益而来利用信号相关性以实现压缩增益。然而,在硬件设计方面,变换模块可贡献大部分的编解码器计算复杂性。以你因此,需要用以解决当前技术的不足并改善代码化效率的系统、方法以及装置。技术实现要素:在一般方面,一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时致使处理器执行过程,所述指令包括用于以下的指令:使用视频编解码器来识别视频数据块,并在管线中对所述视频数据块应用蝴蝶不对称离散正弦变换(ADST)的变换核。实施方式可以包括以下特征中的一个或多个。例如,该变换核可以包括离散余弦变换(DCT)和具有不对称基础的蝴蝶ADST变换的组合。所述核可以是形式的,其中,N是块规模,并且其中,n和k分别表示时间索引和频率索引,其中,n和k两者都在从1至N范围内。所述蝴蝶ADST可以是以整数格式来执行的。所述处理器可以与单指令存储器和控制处理器通信。例如,所述指令还可以包括用于以下的指令:根据预测方向来选择一维变换集合。例如,该指令还可以包括用于以下的指令:使用所述一维变换集合来形成二维变换。所述蝴蝶ADST可以被应用于从所述视频数据块生成的残余像素块。该变换核可以经由单指令多数据操作来提供并行计算。在另一一般方面,一种装置包括视频编解码器,所述视频编解码器被配置成识别视频数据库数据块的视频编解码器;以及混合变换编码器,所述混合变换编码器被配置成使用离散余弦变换(DCT)与具有不对称基础的蝴蝶不对称离散正弦变换(ADST)变换的组合来提供用于视频数据块的帧内代码化方案,以及并使用蝴蝶ADST来产生所述帧内代码化的蝴蝶结构实施方式的混合变换编码器。实施方式可以包括以下特征中的一个或多个。例如,核可以是形式的,其中,N是块规模,并且其中,n和k分别表示范围从1至N的时间索引和频率索引。所述蝴蝶结构实施方式可以以整数格式来执行。处理器可以与单指令存储器和控制处理器通信。该装置还可以包括选择器,所述选择器被配置成根据预测方向来选择一维变换集合。该选择器可以进一步被配置成使用所述集合来形成二维变换。蝴蝶ADST可以被应用于从视频数据块生成的残余像素块。蝴蝶结构实施方式可以经由单指令多数据操作来提供并行计算。在另一一般方面中,一种存储指令的非暂时性计算机可读介质,所述指令在被执行时致使处理器执行过程,所述指令包括用于以下的指令:使用离散余弦变换(DCT)与具有近似具有以不对称为基础的近似原始ADST的核的蝴蝶不对称离散正弦变换(ADST)变换的组合来提供用于视频数据块的帧内代码化方案,以及使用蝴蝶ADST来产生所述帧内代码化的蝴蝶结构实施方式。例如,所述核可以是形式的,其中,N是块规模,并且其中,n和k分别表示范围从1至N的时间索引和频率索引。实施方式可以包括以下特征中的一个或多个。例如,所述指令还可以包括用于以下的指令:根据预测方向来选择一维变换集合。例如,所述指令还可以包括用以用于以下的指令:使用所述该组一维变换集合来形成二维变换的指令。这方面的其它实施方式包括被配置成执行在计算机存储设备上编码的方法的动作的对应系统、装置、方法、以及计算机程序。这里所述的系统和方法的优点包括例如高效的硬件利用和代码化加速。在以下附图和描述中阐述了一个或多个实施方式的细节其它特征将从本描述和附图以及权利要求而变得显而易见。附图说明图1是图示出可被用于混合变换代码化的示例系统的框图。图2A是图示出可被用于混合变换编码的示例成像设备的框图。图2B是图示出SIMD操作的示例的框图。图3A是图示出可在管线中用于混合变换代码化的示例过程的流程图。图3B是图示出可用于混合变换代码化的示例过程的流程图。图3C是图示出可用于混合变换代码化的硬件操作流程的示例的图。图4是图示出在这里根据CPU周期而描述的系统和方法的计算复杂性的框图。图5是图示出可与这里描述的系统一起使用的示例解码过程的流程图。图6是图示出根据本公开的各方面的可用来实现这里所述的一个或多个系统和方法的示例或代表性计算设备和关联元件的框图。具体实施方式根据本公开的各方面,在本文中提出了一种用以改善图像或视频压缩性能的方法和系统。所公开的方法和系统提供了用来实现在视频编解码器中使用的帧内(在单个帧内)代码化和预测的方式。采用块代码器的一个动机是将视频帧分离成不同的区域,其中的每一个区域可具有其自己的本地稳定信号统计。为了达到最大的压缩效率,帧内代码化经由在块边界处可用的来自先前编码相邻像素的每个块的空间预测而利用局部各向异性(例如,帧内的空间图案的发生)。混合变换代码化方案允许根据边界信息的质量和可用性从离散正弦变换(DST)和不对称DST中进行选择。混合变换代码化方案可以以相同的峰值信噪比(PSNR)实现位节省。总体帧内代码化方案可在称为不对称DST(ADST)的此DST变体与常规DCT之间切换,取决于预测方向和边界信息。也称为混合变换代码化方案的这种自适应预测变换方法可胜过基于DCT的帧内预测变换代码化。然而,在硬件设计方面,变换模块可贡献大部分的编解码器计算复杂性。快速傅立叶变换是用于计算一系列的N个数的离散傅立叶变换的高效算法。在快速傅立叶变换算法的场境中,蝴蝶是计算的一部分,其将较小离散傅立叶变换(DFT)的结果组合成较大的DFT,或者相反,例如将较大DFT分解成子变换。这里所述的方法和系统对不对称离散正弦变换和混合变换代码化进行改进来创建蝴蝶不对称离散正弦变换以预测帧内变换。描述了一种允许经由单指令多数据(SIMD)操作的并行计算的改善的蝴蝶结构实施方式。针对8×8或以上的变换规模,可能难以发现具有作为小整数的元素的正交矩阵和紧密地近似DCT的正交矩阵。较大块规模变换提供用于稳定信号的较高变换代码化增益,并且在实验上被证明对各种视频编解码器中的压缩效率有所贡献。在快速ADST和因此任何块规模的混合变换代码化方案的设计中出现挑战。原始ADST核被导出为其中,N是块规模,n和k分别地表示时间和频率索引,两者的范围从1至N。另一方面,DCT核是形式的。如果核自变量的分母、即针对ADST的(2N+1)和针对DCT的2N是复合数(且可以分解成小整数的乘积),则存在正弦变换的蝴蝶结构实施方式。因此,许多基于块的视频(和图像)编解码器被设计成使得块规模是二的幂,例如N=4、8、16等,以便实现DCT变换的高效计算。然而,其使得原始ADST不能进行快速的实现。例如,当N=8时,(2N+1)结果证明是17,其是排除了蝴蝶结构的可能性的素数。本文所述的方法和系统解决了DCT与原始ADST之间的此固有冲突,因为其包括了ADST的新变体,其核是形式的。核自变量的分母4N与DCT的一致,因为如果2N是二的幂,4N也是。因此,其可以在蝴蝶结构中实现,并且在本文中还可称为btf-ADST。btf-ADST具有与原始ADST具有相似的不对称性质的基础。系统可使用此btf-ADST来替换混合变换代码化方案中的原始ADST。总体方案根据预测方向而从btf-ADST和DCT之中选择适当的一维(1D)变换,以形成二维(2D)变换。例如,该系统可对矩阵的每个列矢量应用垂直方向上的变换。图1是图示出根据本公开的各方面的用于混合变换代码化的示例系统100的框图。在图1的示例中,系统100包括混合变换代码化系统,其可与设备104相关联,从而将设备104变换成被设计成实现混合变换代码化的专用机器。在这种意义上,设备104可包括各种元件,包括微处理器110、诸如非暂时性计算机可读存储介质的存储器112、电源、外围设备、以及图1中并未具体地示出的各种其它元件。存储器112可包括一个或多个区域,诸如第一区域112a和第二区域112b。设备104可包括可用来显示图像(例如,静态图像和/或视频图像)的显示器140(例如,监视器或某个其它显示器)。在某些情况下,在不脱离本公开的范围的情况下,可添加或包括可对实现设备104有用的设备104的各种其它元件。在某些实施方式中,系统100可包括成像器114,其被配置成捕获一个或多个图像并生成所捕获的一个或多个图像的未压缩图像数据。成像器114可以是将光学图像转换成电子信号的任何设备。在示例中,成像器114可以是视频相机,其被配置成捕获连续图像并生成连续捕获图像的未压缩图像数据。成像器114可包括用于捕获表示一个或多个图像的图像信号的一个或多个传感器(例如,任何类型的检测器,诸如焦平面阵列)。成像器114的传感器提供将一个或多个图像的捕获图像信号表示或转换为数字数据(例如,经由作为传感器的一部分被包括或作为成像系统100的一部分与传感器分离的模拟数字转换器)。在示例中,成像器114可包括静态相机,其被配置成捕获单个静态图像并生成所捕获图像的未压缩图像数据。在另一示例中,成像器114可包括视频相机,其被配置成捕获多个连续图像并生成连续捕获图像的未压缩图像数据。系统100可包括输入接口116,其被配置成从包括未压缩图像数据的外部源接收图像数据。输入接口116可被配置成接收从另一设备流式传输的图像数据(例如,静态图像或输入视频)。输入接口116可包括用于接收表示一个或多个图像的图像信号的一个或多个输入端。输入接口116的一个或多个输入端可提供接收一个或多个图像的图像信号作为数字数据(例如,经由作为输入接口116的一部分被包括或者作为设备104的一部分与输入接口116分离的模拟数字转换器)。系统100可包括编码器120,其被配置成接收未压缩图像数据,并执行未压缩图像数据的混合变换代码化。编码器120可包括混合变换代码器122,其被配置成提供帧内代码化,如下面相对于图2A—4更详细地讨论的。系统100还可包括被配置成将图像数据解码的解码器130。解码器130可通过将由编码器120进行的编码解码、使得例如可以检索原始图像或视频信息进行操作。在各种实施方式中,可将解码器130包括在单独系统中,诸如与设备104分开的另一计算设备(未示出)。在这种情况下,设备104可使用编码器120来执行编码,并且作为示例,单独设备可将由编码器120进行的编码解码,使得可由单独设备来检索原始图像。在设备104的实施方式中,成像器114可被配置成捕获一个或多个图像并生成所捕获的一个或多个图像的未压缩图像数据。在这种情况下,可将编码器120配置成从成像器114接收未压缩图像数据,并将未压缩图像数据存储在存储器112的第一区域112a中。在示例中,成像器114可包括静态相机,所述静态相机被配置成捕获单个静态图像并生成所捕获图像的未压缩图像数据。在另一示例中,成像器114可包括视频相机,所述视频相机被配置成捕获多个连续图像并生成连续捕获图像的未压缩图像数据。在设备104的实施方式中,成像器114可被配置成捕获一个或多个图像并生成所捕获的一个或多个图像的未压缩图像数据。在这种情况下,所述微处理器110可被配置成从成像器114接收未压缩图像数据并为编码器120提供未压缩图像数据。在设备104的实施方式中,输入接口116可被配置成接收一个或多个图像的图像数据。在这种情况下,编码器120可被配置成从输入接口116接收图像数据并将该图像数据存储在存储器112的第一区域112a中。显示器140可显示所捕获图像的未压缩图像数据。显示器140可包括图像显示设备(例如,液晶显示器(LCD))或某些各种其它类型的视频显示器或监视器。微处理器110可适配于在显示器140上显示图像数据。微处理器110可被配置成从存储器112检索并获得图像数据并在显示器140上显示任何所检索的图像数据。显示器140可包括显示电子装置,其可被微处理器110用来显示图像数据。显示器140可经由微处理器110直接地从成像器114接收图像数据,或者可经由微处理器110从存储器112转移图像数据。在图1的示例中,使用各种组件来图示出系统100。然而,提供此类图示是为了明了和方便起见,并且因此在某些情况下,各种组件可在所述块(多个块)或模块(多个模块)内重叠或者被组合,或者可由在图1的示例中并未具体地图示出的一个或多个块(多个块)或模块(多个模块)来实现。图2A是图示出根据本公开的各方面的可被用于混合变换编码的成像设备200的示例的框图。如图2A中所示,设备200可包括成像器210、包括单指令存储器和控制处理器212的编码器214、存储器216、解码器204、以及显示器202。在各种实施方式中,设备200可表示各种移动设备中的一个或多个,包括移动电话、智能电话、膝上型计算机、电视、或桌面型计算机。在各种实施方式中,成像器210可被远程地连接到设备200,并且成像器可表示各种移动设备,诸如移动电话、消费者视频相机(例如,紧凑式、DSLR视频等)、安全视频相机、或以数字方式记录和存储视频的任何成像器设备。成像器210可捕获图像并生成所捕获图像的未压缩图像数据。成像器210还可称为相机传感器或成像传感器。成像器210可包括视频成像器,其捕获多个连续图像并生成连续捕获图像的未压缩图像数据。在各种示例中,成像器210可捕获一个或多个图像并生成所捕获图像的未压缩图像数据。成像器210可以是将光学图像转换成电子信号的任何设备。例如,成像器210可以是视频相机,其捕获多个连续图像并生成连续捕获图像的未压缩图像数据。成像器210可将未压缩图像数据提供给编码器214。编码器可与单指令存储器和控制处理器212相结合地操作。单指令存储器和控制处理器212可允许编码器214采用蝴蝶结构实施方式的变换。允许经由单指令多数据(SIMD)操作的并行计算的蝴蝶结构实施方式的变换可以是有利的,并且下面相对于图3A—4来更详细地讨论。诸如设备200之类的SIMD计算机可通过并行地对数据的多个项目应用相同的操作而利用数据层级并行性,如下面相对于图2B更详细地描述的。单指令存储器和控制处理器212获取并分派指令。在实施方式中,参考图2A的示例,单指令存储器和控制处理器212可从成像器210接收未压缩图像数据或图像信号(例如,经由编码器214),并且单指令存储器和控制处理器212可处理接收到的图像信号(例如,以提供经处理的图像数据),并向存储器216提供已编码比特流。作为示例,这里所述的实施例可利用在64比特平台上运行的流式传输SIMD扩展2(SSE2)。编码器214可执行未压缩图像数据的混合变换代码化,如下面相对于图3A—4更详细地讨论的。在某些实施方式中,设备还可包括解码器204,其可对从存储器216检索的残余像素块数据应用逆变换。解码器204因此可将编码解码,并且然后将原始图像数据供应给显示器202。在图2的示例中,使用各种组件图示出系统200。然而,提供这样的图示是为了明了和方便起见,并且因此在某些情况下,各种组件可在所述块(多个块)或模块(多个模块)内重叠或者被组合,或者可由在图2的示例中并未具体地示出的一个或多个块(多个块)或模块(多个模块)来实现。图2B是图示出SIMD操作的示例的框图,其可例如由图2A中所述的单指令存储器和控制处理器212结合编码操作而执行。在单指令流多数据流(SIMD)处理器中,一个指令通过使用多个处理元件(PE)而同时地对若干数据项起作用,所有的处理元件可执行如图2B中所示的相同操作。单指令218通过使用PE222A至222n同时地对若干数据项220起作用。可例如用专用集成电路(ASIC)来实现PE222A至222n。SIMD处理器具有单控制单元,其读取单个程序计数器所指向的指令,将其解码并将控制信号发送到PE。可用与存在的PE一样多的数据路径向PE222A至222n供应并从其导出诸如数据项220的数据。图3A是图示出可在管线中被用于混合变换代码化的示例过程的流程图。可例如由系统100的成像设备104来执行图3A的操作,所述成像设备104包括由如图1中所示的编码器120或图2中所示的编码器214。该过程包括识别视频数据块(302)。该系统可实现块预测以生成残值(304)。例如,该系统可使用先前重构的像素来预测当前像素块。该系统可从当前像素块减去上述预测以生成残余像素块。该系统可在管线中应用混合变换(306),例如下面相对于图3B所讨论的。作为一个示例,该系统可对残余像素块应用DCT与蝴蝶ADST的组合,并且将变换系数量化并对量化水平代码化。该系统然后可生成压缩结果(308)以供解码器使用,例如图1中所示的解码器130。图3B是图示出可被用于混合变换代码化的示例过程的流程图。图3的操作可例如由如图1中所示的成像设备104或系统100执行。如图3B中所示,系统(例如,图1中所示的微处理器110)可使用视频编解码器来识别视频数据块(330)。系统可使用离散余弦变换(DCT)与不对称离散正弦变换(ADST)变换的变体的组合来提供用于视频数据块的帧内代码化方案,该不对称离散正弦变换(ADST)的核就基础而言与原始ADST近似(即其基础是不对称的),并且与DCT核一致(332)。该系统可使用ADST的变体(其可包括DCT)来产生帧内代码化的蝴蝶结构实施方式(334)。空间预测和变换代码化为了导出ADST变换的变体,在给定部分预测边界的情况下,在1D一阶高斯马尔可夫模型的场境中,检查导出原始ADST的数学理论。考虑零均值、单位方差、一阶高斯马尔可夫序列xk=ρxk-1+ek(1)其中,ρs是相关系数,并且ek是具有方差1-ρ2的白高斯噪声过程。使x=[x1,x2,…,xN]T表示将在给定x0作为可用(单侧)边界的情况下编码的随机矢量。上表标T表示矩阵转置。递归(1)转换转化成以下方程组x1=ρx0+e1x2-ρx1=e2...xN-ρx(N-1)=eN,---(2)]]>或者用紧凑形式:Qx=b+c(3)其中Q=1000...-ρ100...0-ρ10..................0...0-ρ1.---(4)]]>并且b=[ρx0,0,…,0]T和c=[c1,c2,…,eN]T分别捕获边界信息和创新过程。可以表明Q是可逆的,并且因此:x=Q-1b+Q-1e,(5)其中,上标-1指示矩阵求逆。如预期的,(5)中的“边界响应”或预测Q-1b,满足Q-1b=[ρx0,ρ2x0,…,ρNx0]T.(6)预测残数y=Q-1e(7)将被压缩或发射,这激发其KLT的求导。y的自相关矩阵由下式给定:Ryy=E{yyT}=Q-1E{eeT}(QT)-1=(1-ρ2)Q-1(QT)-1.(8)因此,用于y的KLT是以Q-1(QT)-1.为对角线的单位矩阵,并且因此还有更方便的:P1=QTQ=1+ρ2-ρ00...-ρ1+ρ2-ρ0...0-ρ1+ρ2-ρ..................0...-ρ1+ρ2-ρ0...0-ρ1.---(9)]]>虽然P1是Toeplitz,但右下角处的元素不同于主对角线上的所有其它元素,即其不是1+ρ2。此不规则性使P1的本征值和本征矢量的分析推导复杂化。作为规避,用下式来近似P1P^1=1+ρ2-ρ00...-ρ1+ρ2-ρ0...0-ρ1+ρ2-ρ..................0...-ρ1+ρ2-ρ0...0-ρ1+ρ2-ρ---(10)]]>其是通过用1-ρ2-ρ来替换右下角元素而获得的。该近似很明显适用于ρ→1,其事实上是描述视频/图像信号的空间相关性的近似值。可以将以为对角线且因此用于y的所需KLT的近似的单位矩阵Ts示为公共DST的以下关系式:[Ts]j,i=(22N+1sin(2j-1)iπ2N+1)---(11)]]>其中j,i∈{1,2,…,N}分别是变换核的频率和时间索引。ADST的蝴蝶结构变体以上导出的ADST的观察结果是各行的Ts(即,板换变换的基础函数)在开始时拥有较小的值(更接近于已知边界),并且朝向结尾具有较大的值。例如,考虑具有j=1的行(即,具有最低频率的基础函数)。在其中N>>1的情况下,第一样本(i=1)是而最后一个样本(i=N)取最大值这有效地利用了这样的事实,即更接近于已知边界的像素被更好地预测,并且因此与在远端处的那些相比具有统计上更小的方差。压缩性能与ADST类似的单位正弦变换可克服用于并行计算的ADST的蝴蝶设计和因此的混合变换代码化的复杂性。DST的新变体被呈现为:[Tbtf]j,i=(2Nsin(2j-1)(2i-1)π4N),---(12)]]>其中,j,i∈{1,2,...,N}分别表示频率和时间索引。其还拥有不对称基础函数的性质,但是具有与DCT一致的核自变量的分母,即4N,从而允许有蝴蝶结构实施方式。我们将其称为btf-ADST。实际上,可用整数格式来执行所有这些计算,其可招致通过每个阶段累积的凑整效应。为了使往返误差最小化或减小,修改该结构以使得初始阶段由更多的乘法组成,使得舍入误差被较少地放大。在保持在[6]中使用的惯例时,使和DN表示重新排序操作:I‾=1......1]]>DN=1-11...-1.---(13)]]>使Pj为将矢量条目的上半部移动至偶数位置并将下半条目移动至奇数位置但按照相反顺序的置换矩阵:PJ=10...0...0101...0...10.........,---(14)]]>其中,J是矩阵的高度。其将第二置换公式化:HN=PNPN/2PN/2...P4I‾4P4I‾4...P4I‾4P4I‾4.---(15)]]>同样地,置换算子Qj将奇数条目移动成按照相反顺序:QJ=10...0...01001...0...10.........010...0.---(16)]]>使J=log2NJ=log2N,。我们定义将蝴蝶结构公式化的以下构建块砌块。类型1转化算子:矩阵UN(j),j=1,2,…,J-1被定义为UN(j)=B(j)B(j)...B(j),---(17)]]>其中B(j)=I2jI2jI2j-I2j.---(18)]]>类型2旋转算子:VN(j),j=1,2,…,J-1,是块对角矩阵:VN(j)=I2jE(j)I2j...E(j),---(19)]]>其中并且Tr=cosrπsinrπsinrπ-cosrπ.---(20)]]>作为特殊情况,VN(J)=T1/4NT5/4N...T(2N-3)/4N.---(21)]]>给定以上建立的构建块,可以将btf-ADST分解为:Tbtf=DN·HNT·VN(1)·UN(1)·VN(2)...UN(J-1)·VN(J)·QN·I‾N,---(22)]]>其直接地转换转化成蝴蝶图表。btf-ADST使得能够使用并行计算而在管线中实现蝴蝶结构,其可以例如由各种处理元件、诸如上文相对于图2B所述的处理元件222A至222n的各种处理元件来执行。结合SIMD操作的此蝴蝶结构实施方式(例如,如上文相对于图2B所述)与经由矩阵乘法的原始ADST操作相比提供加速。图3C是图示出可被用于混合变换代码化的硬件操作流程的示例的图。作为示例,图3C中所示的示例示出了变体ADST的8×8蝴蝶结构数据流。图3C中所示的示例可充当这里所述的变换核的硬件实施方式的一个原型。通过将蝴蝶元件的顺序置换来创建同一变换核的不同实施方式是可能的。在图4中示出了就平均CPU循环周期而言与原始ADST/DCT混合变换方案相比的btf-ADST/DCT的运行时间。如图4中所示,y轴410描绘了许多CPU循环周期。x轴420描绘变换维度。本实施方式是使用流式传输SIMD扩展2(SSE2),并且实验正在64比特平台上运行实验。如图4中所示,线430描绘ADST/DCT混合变换方案运行时间,并且线440描绘btf-ADST/DCT混合变换方案运行时间。因此,btf-ADST实施方式允许高效的硬件利用和从而所引起的显著编解码器加速,同时与原始ADST的压缩增益非常相似。因此,其核就基础而言与原始ADST相似且与DCT核一致的ADST变换的此变体,从而适当能够实现蝴蝶结构实施方式。所述方案允许高效的硬件利用以用于显著的编解码器加速,同时保持混合变换代码化方案的压缩性能。图5是图示出可用于这里描述的系统的示例解码过程的流程图。图5中所示的过程可部分地由例如诸如图1中所示的解码器130的解码器执行。该过程包括识别残余像素块数据(510)。数据块可以是例如2D残余像素块。解码器可对残余像素块数据应用逆变换(520)。解码过程使用逆变换,其是等式(22)中所示的每个阶段(或矩阵)的以相反顺序的转置。解码器可基于逆变换而生成解码数据(530)。作为应用于2D残余像素块的变换的示例,系统可具有两个变换Ta和Tc以及残余块R。在R的垂直方向上应用Ta并在水平方向上应用Tc转化成:Ta*R*Tc^t,其中,^t表示矩阵转置。如上所述,可经由SIMD操作使用并行计算来实现在这里公开的蝴蝶结构的混合变换以实现比特流的更快压缩。图6是图示出根据本公开的各方面的可用来实现这里所述的一个或多个系统和方法的示例或典型计算设备和关联元件的框图。在实施方式中,图6示出了计算设备600和移动计算机设备650(例如,包括低功率移动通信设备的移动设备,诸如移动电话、蜂窝电话等)的示例,其可根据如本文所述和提供的各方面、方法以及技术来使用。计算设备600可表示各种形式的数字式计算机,诸如个人计算机、膝上计算机、平板电脑、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、主机、以及其它适当计算机。计算设备650可表示各种形式的移动设备,诸如个人数字助理、蜂窝式电话、智能电话、及其它类似计算设备。本文所述的组件、其连接和关系、以及其功能意图仅仅是示例性的,并不意图限制本文所述和/或在本公开中要求保护的实施方式。计算设备600可包括一个或多个处理器602、存储器604、存储设备606、连接到存储器604和高速扩展端口610的高速接口608以及连接到低速总线614和存储设备606的低速接口612。组件602、604、606、608、610、以及612中的一个或多个被使用各种总线互连,并且可在公共主板上或者适当地以其它方式互连。在实施方式中,处理器602可被配置成处理用于在计算设备600内执行的指令,所述指令包括存储在存储器604中或存储设备606上的指令以为诸如耦合到高速接口608的显示器616的外部输入/输出设备上的GUI显示图形信息。在其它实施方式中,可适当地利用多个处理器和/或多个总线连同多个存储器或多个类型的存储器。此外,可连接多个计算设备600,其中每个设备提供所需操作的各部分(例如,作为服务器组、一组刀片服务器、或多处理器系统)。存储器604可被配置成存储计算设备600内的信息。在实施方式中,存储器604可包括一个或多个易失性存储器单元。在另一实施方式中,存储器604可包括一个或多个非易失性存储器单元。存储器604可包括另一形式的非暂时性计算机可读介质,诸如磁盘或光盘。存储设备606可被配置成用于为计算设备600提供大容量存储。在实施方式中,存储设备606可包括非暂时性计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或带设备、闪存或其它类似固态存储器设备或设备阵列,包括被配置成供在存储区域网或各种其它配置中使用的设备。在某些实施方式中,可在信息载体中有形地体现计算机程序产品。该计算机程序产品可包括指令,所述指令在被执行时执行一个或多个方法,诸如本文所述的那些。在另一实施方式中,信息载体可包括非暂时性计算机可读介质或非暂时性机器可读介质,诸如存储器604、存储设备606、或处理器602上的存储器。高速控制器608可被配置成管理用于计算设备600的带宽密集操作,而低速控制器612可被配置成管理较低带宽密集操作。功能的此类分配可以仅仅是示例性的。在实施方式中,高速控制器608可被耦合到存储器604、显示器616(例如,通过图形处理器或加速器)和/或耦合到高速扩展端口610,其可被配置成接受各种扩展卡(未示出)。在本实施方式中,低速控制器612可被耦合到存储设备606和/或低速扩展端口614,其中,可包括各种通信端口(例如,USB、BLUETOOTH、ETHERNET、无线ETHERNET等)的低速扩展端口可例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪、或联网设备(诸如交换机或路由器)。可以如图6中所示的方式以许多不同形式来实现计算设备600。例如,可将计算设备600实现为标准服务器620或者很多时候以一组此类服务器来实现。可将计算设备600实现为机架服务器系统624的一部分。另外,可在诸如膝上型计算机622的个人计算机(PC)中实现计算设备600。在另一实施方式中,可将来自计算设备600的组件与移动设备(未示出)中诸如设备650中的其它组件组合。此类设备中的一个或多个可包括计算设备600、650中的一个或多个,整个系统可由相互通信的多个计算设备600、650构成。计算设备650可包括一个或多个处理器652、存储器664、输入/输出设备(诸如显示器654)、通信接口666、以及收发器668以及各种其它组件。设备650可提供有存储设备,诸如微型驱动或某种其它相关设备,以提供附加存储。可使用各种总线来将部件650、652、664、654、666和668中的一个或多个互连,可在公共主板上安装组件中的多个或适当地以其它方式互连。处理器652可被配置成执行计算设备650内的指令,包括存储在存储器664中的指令。可将处理器652实现为包括单独的多个模拟和数字处理器的芯片的芯片组。在实施方式中,处理器652可提供设备650的其它组件的协调,诸如用户接口的控制、由设备650运行的应用、以及设备650的无线通信。处理器652可被配置成通过控制接口658和可被耦合到显示器654的显示接口656与用户通信。显示器654可包括例如TFTLCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其它适当显示技术。显示接口656可包括用于驱动显示器654以向用户呈现图形及其它信息的适当电路。控制接口658可从用户接收命令并对其进行转换以便提交给处理器652。在实施方式中,可以提供外部接口662与处理器652通信以使得能够实现设备650与各种其它设备的近场通信。在示例中,外部接口662可在某些实施例中提供有线通信或者在其它实施例中提供无线通信,并且可利用多个接口。存储器664可被配置成存储在计算设备650内的信息。可将存储器664实现为非暂时性计算机可读介质或媒体、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元中的一个或多个。可提供扩展存储器674并通过扩展接口672连接到设备650,该扩展接口672可包括例如SIMM(单列直插式存储器模块)卡接口。此类扩展存储器674可以为设备650提供额外存储空间,或者还可存储用于设备650的应用程序或其它信息。具体地,在示例中,扩展存储器674可包括用以执行或补充上述过程的指令,并且可包括安全信息。因此,例如,可将扩展存储器674提供为用于设备650的安全模块,并且可用允许设备650的安全使用的指令对其进行编程。此外,可经由SIMM卡以及附加信息来提供安全应用,诸如以安全放置在SIMM卡上放置识别信息。存储器可包括例如闪存和/或NVRAM存储器,如下面所讨论的。在一个实施方式中,在信息载体中有形地体现计算机程序产品。该计算机程序产品包含指令,该指令在被执行时执行一个或多个方法,诸如上文所述的那些。该信息载体是计算机或机器可读介质,诸如存储器664、扩展存储器674或者可例如通过收发器668或外部接口662接收的处理器652上的存储器。设备650可被配置成通过通信接口666来无线地通信,通信接口666在必要时可包括数字信号处理电路。在实施方式中,通信接口666可提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息传递、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS及其它。在示例中,此类通信可例如通过射频收发器668发生。此外,近程通信可诸如使用蓝牙、WiFi或其它此类收发器(未示出)发生。此外,GPS(全球定位系统)接收器模块670可向设备650提供附加导航和/或位置相关无线数据,其可适当地被在设备650上运行的应用使用。设备650可被配置成使用音频编解码器660以可听方式通信,其可从用户接收说出的信息并将其转换成可用数字信息。在示例中,音频编解码器660可同样地诸如通过例如设备650中的听筒中的扬声器生成用于用户的可听声音。在各种实施方式中,此类声音可包括来自语音电话呼叫的声音,可包括记录的声音(例如,语音消息、音乐文件等),并且可包括由在设备650上操作的应用生成的声音。可用许多不同的形式以如图6中所示的方式实现计算设备650。例如,可将计算设备650实现为移动通信设备680,包括蜂窝式电话和/或某些其它低功率移动通信设备。在另一示例中,可将计算设备650实现为智能电话682、个人数字助理或某种其它类似移动设备的一部分。同样地,可用数字式电子电路、集成电路、专门设计ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现本文所述的系统、方法和技术的各种实施方式。这些不同实施方式可包括用一个或多个计算机程序来实现,其可在可编程系统上执行和/或解释,所述可编程系统包括可以是通用或专用的、被耦合以从存储系统接收数据指令以及向其发射数据和指令的至少一个可编程处理器、至少一个输入设备以及至少一个输出设备。这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级面向过程和/或面向对象程序设计语言和/或用汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”指的是被用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器以及可编程逻辑器件(PLD)),包括被配置成接收机器指令作为机器可读信号的非暂时性机器可读介质。在各种示例中,术语“机器可读信号”可指代被用来向可编程处理器提供机器指令和/或数据的任何信号。在实施方式中,为了提供与用户的交互,可在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户可用来向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现本文所述的系统、方法以及技术。也可使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、话音或触觉输入。在各种示例中,可用包括后端组件(例如,作为数据服务器)或者包括中间件组件(例如,应用服务器)或者包括前端组件(例如,具有用户可用来与这里所述的系统、方法以及技术的实施方式相交互的图形用户界面或web浏览器的客户端计算机)或者此类后端、中间件或前端组件的任何组合的计算系统来实现如本文所述的系统、方法以及技术。可以用数字数据通信的任何形式或介质(例如,通信网络)将系统的组件互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)以及互联网。计算系统可包括客户端和服务器。客户端和服务器一般地相互远离并通常通过通信网络进行交互。客户端和服务器的关系借助于在各计算机上运行且相互具有客户端-服务器关系的计算机程序发生。已特别详细地描述的上述实施例仅仅是示例或可能实施例,并且存在可包括的许多其它组合、添加或替选。组件、术语的大小写、属性、数据结构、或任何其它编程或结构方面的特定命名并不是强制性或重要的,并且可用来实现本公开的各方面或其特征的机构可具有不同的名称、格式或协议。此外,可用如所述的硬件和软件的组合或者完全用硬件元件来实现本系统。此外,本文所述的各种系统组件之间的功能的任何特定划分仅仅是示例性而非强制性的;由单个系统组件执行的功能可替代地由多个组件执行,并且由多个组件执行的功能可替代地由单个组件执行。此外,图中所描绘的逻辑流程不要求所示的特定顺序或连续顺序以实现期望的结果。另外,从所述流程,可提供其它步骤或者可消除步骤,并且还可向所述系统添加或从其移除其它组件。因此,其它实施例在以下权利要求的范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1