用于视频帧缓冲压缩的系统和方法

文档序号:6569629阅读:380来源:国知局

专利名称::用于视频帧缓冲压缩的系统和方法
技术领域
:本发明涉及在诸如在动态随机存取存储器(DRAM)、或者DVD播放器或其它相关的视频产品中使用的其它外部存储器的存储器内的帧緩冲器中压缩视频数据的新颖的系统和方法。
背景技术
:当对MPEG标准1、2或4、或者其它视频编码方案的视频帧解码时,一些当前的输入帧或者先前的解码帧需要被写入到外部存储器内的存储空间、或者从外部存储器内的存储空间读出。这些存储空间充当了存储输入帧和先前的来自用于运动补偿或视觉显示的不同模块的解码帧的帧緩冲器。这些帧缓冲器在外部存储器中占用了大量的存储空间,并且在视频数据的传输中也占据了大量的带宽。因此,为了减少存储器成本,希望采用帧緩冲压缩处理。在传统的系统中,运动补偿处理需要随机访问帧数据。结果,不能使用传统的一见频编码方案,例如,MPEG方案。对于一些4吏用一维或二维转换:技术的方案,实际的组件实现或者昂贵,或者处理延迟长。在任一情况中,传统方法都需要复杂的算法。因此,在本技术中存在更为有效的缓冲方案,以克服现有技术中的缺点。正如将看到的那样,本发明以一种新颖的方式完成。
发明内容本发明针对于解码和压缩视频数据的系统和方法。该系统包括存储器装置,其被配置用来存储视频数据;以及对应的存储器控制器,其被配置用来控制在存储器装置中的视频数据的存储。该系统还包括帧緩冲压缩模块,其被配置用来压缩从视频模块接收的帧数据,以根据存储器控制器而存储在存储器装置中,并且被配置用来解压缩根据存储器控制而从存储器装置接收的压缩帧数据,以便由视频模块使用。在一个实施例中,帧緩冲压缩模块包括帧緩冲压缩编码器,其被配置用来编码和压缩从视频模块接收的帧数据,9以便根据存储器控制器而在存储器中存储。帧緩冲器还包括对应的帧緩沖压缩解码器,其被配置用来解码和解压缩根据存储器控制器而乂人存储器接收的帧数据,以由视频模块使用。1、本发明本发明针对于一种新颖的緩冲压缩系统,其中以下描述了两个实施例。然而,本领域的技术人员将理解,本发明的精神和范围并不局限于此处描述的实施,而是在附带的权利要求及它们的等同体以及在随后的申请和它们的等同体中的将来的权利要求中定义。在一个优选实施例中,以段为单位压缩帧数据,并且,帧緩冲器编码器还包括量化器,其被配置用来量化输入帧的段,以产生量化的输出;DPCM,其被配置用来调制量化的输出,以产生调制的输出;赖斯映射(ricemapping)模块,其被配置用来对调制的输出执行赖斯映射,以产生映射的输出;以及可变长度编码模块(VLC),其被配置用来编码映射的输出。本发明还可包括比特预算模块,其被配置用来测试压缩段是否处于预定的限制内;以及反馈环,其被配置用来选择用于量化器和VLC的模式参数。本发明还可包括打包模块,其被配置为如果在预定的限制内压缩该段,则准备包括压缩的数据段的包;以及反馈环,其被配置为如果没有在预定的限制内压缩该段,则选择用于量化器和VLC的模式参数。本发明还可以包括最坏情况模式模块,其被配置为如果没有在预定的限制内,则压缩所述段,其中,配置打包单元,以准备和产生具有最坏情况压缩段和;模式信息的包。帧緩冲器编码器还包括平滑模块,其被配置为对输入像素段执行平滑操作;在赖斯模块内的修改的赖斯映射组件,其被配置为对调制的输出执行修改的赖斯映射,以产生映射的输出;比特借用模块,其被配置用来在要被传输的压缩段之间共享比特空间;以及切换(toggle)模块,其被配置用来执行切换操作,以通过切换代表该段的比特而改变输入像素段的一部分。可以配置切换模块,以切换相同位置的每一个其它帧的比特。在本系统的解码器一端,以段为单位解码和解压缩带有识别压缩和编码所述段的模式的模式信息的帧数据。解码器可以包括逆可变长度解码模块,其被配置用来解码映射的输出;逆赖斯映射模块,其被配置用来对逆调制的输出执行逆赖斯映射以产生映射的输出;逆DPCM,其被配置用来逆调制逆量化的输出,以产生逆调制的输出;以及逆量化器,其^^皮配置用来逆量化输入帧的段,以产生逆量化的输出。配置解包模块,以对接收到的包括压缩的数据段和模式信息的分组解包,并且,配置前馈环,以发送用于量化器和VLC的模式参数。帧緩冲器解码器还可包括逆比特借用模块,其被配置用来在被传输的压缩段之间共享比特空间;在赖斯模块内的逆修改赖斯映射组件,其被配置用来对调制的输出执行修改的赖斯映射,以产生映射的输出;以及逆平滑模块,其被配置用来对输入像素段执行平滑操作。在一个实施例中,可以配置解包模块,以对接收到的包括压缩的数据段和模式信息的分组解包,并且,配置前馈环,以发送用于量化器和VLC的压缩模式参数。在另一个实施例中,将其配置为为平滑模块、量化器和VLC解包并前馈模式信息。在任一情况中,将其配置为解包最坏情况模式参数,所述最坏情况模式参数被配置用来解码根据最坏情况模式打包的任何接收的压缩数据。可以配置比特借用模块,以根据先前压缩的段而保持可用的比特空间池,用以存储代表随后的段的比特,并且可能地,直到先前的段所需的比特空间的限制为止,用以存储代表随后的段的比特。可以配置赖斯模块,以对调制的输出执行修改的赖斯映射,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。最初,可以^f吏用以中心点开始直到l殳的结束为止的的赖斯正常赖斯映射,而映射段,然后,以连续方式映射段的剩余部分,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。可以配置平滑模块,以通过在压缩和解码多个段之前平均多个段的值,而对输出像素段执行平滑操作。平滑处理可以包括发送根据平滑模式压缩和编码多个段的信息给解码器,使得可以精确地解码该段。平滑处理包括发送根据平滑模式压缩和编码多个段的信息给解码器使得可以精确地解码该段。可以配置切换模块,以执行切换操作,以通过切换代表所述段的比特而改变输入像素段部分。可以配置切换模块,以切换相同位置的每一个其它帧的所述比特。在^t栗作中,根据本发明配置的系统可以以首先从视频冲莫块接收写请求和视频帧数据、以存储视频数据到存储器中开始。作为响应,该系统压缩和编码帧段、或者从视频模块接收的数据,并且,根据存储器控制器在存储器装置中存储压缩并编码的段。在解码器一端,该系统可以从视频模块接收读请求,然后解压缩并且解码根据来自视频模块的读请求从存储器装置接收的帧数据段,然后发送解压缩的帧数据段给所述模块。压缩所述段可以包括利用帧緩沖压缩编码器编码并压缩从视频模块接收的帧数据的段,以根据帧存储器控制器在存储器中存储。解压缩可以包括根据帧存储器控制器,利用帧緩沖压缩编码器解码并解压缩从存储器接收的帧凄t据的段。在一个实施例中,系统可以通过以下步骤来执行编码方法量化输入帧段、以产生量化的输出;执行量化的输出的差分脉冲编码调制(DPCM),以产生调制的输出;对调制的输出执行赖斯映射,以产生映射的输出;以及执行被配置用来编码映射的输出的可变长度编码模块(VLC)。在发送打包的段之模块来测试压缩段是否在预定比特限制内;以及为量化器和VLC选择带有反馈环的^^式参数。如果所述段没有在比特限制内,则可以改变在编码处理中一个或多个组件的模式,如果所述段没有在预定的限制内被压缩,则选择用于量化器和VLC的模式参数。如果没有处于预定的限制内,并且如果其它才莫式不能带来在所述比特限制之下的比特数,则可以在最坏情况模式中压缩所述段,并且,打包单元可以准备并产生具有最坏情况压缩段和由解码器使用的模式信息的包。在另一个实施例中,根据本发明配置的编码器可以进一步通过以下操作来增强系统对输入像素段执行平滑操作;对调制的输出执^f亍修改的赖斯映射,以产生映射的输出;以及在要被传输的压缩段之间共享比特空间。在这个系统中,随后,如果该段是在预定的限制内,则可以配置打包^^莫块,以产生包括压缩的数据段和模式信息的分组,其中,包括用于平滑模块、量化器以及VLC的模式参数。如果不在预定限制内,则可以利用在最坏情况模式下压缩的段来配置相同的包,并且,该包包括用以解码的最坏情况参数。一旦由解码器接收到打包的段,便可以配置该系统,以通过以逆可变长度解码方法解码映射的输出而处理所述段;对逆调制的输出执行逆赖斯映射,以产生映射的输出;对逆量化的输出执行逆DPCM调制,以产生逆调制的输出;以及对输入帧段执行逆量化,以产生逆量化的输出。解码器可以包括被配置用来对接收的包括压缩的数据段和模式信息的分组解包的解包模块,并且,如果发送用于量化器、VLC、平滑模块(在前馈环中存在平滑模块的话)的模式参数。解包模块还可包括最坏情况解码器模块,用于解码在最坏情况模式中编码的段(如果在这样的模式中编码的话)。在解码器,解包包括压缩的数据段和模式信息的分组,并且,为解码处理而前馈用于平滑模块、量化器以及VLC的压缩模式参数。解码模块还可包括解包最坏情况模式参数,所述最坏情况模式参数被配置用来解码任何接收的根据最坏情况4莫式打包的压缩数据。在所打包的不同段之间,打包的段可以在被传输的压缩段之间共享比特空间。比特空间的共享包括根据先前压缩的段保持可用比特空间池,以用于存储代表随后的段的比特。比特空间的共享还包括从先前压缩的段直至先前的段所需的比特空间为止,保持可变比特空间池,用以存储代表随后的段的比特。赖斯映射还可包括对调制的输出执行修改的赖斯映射,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。可以执行其,直至到达所述段的结束为止,并且然后,以连续方式映射所述段的其余部分,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。可以通过在压缩和编码多个段之前平均多个段的值,对像素段执行该方法。具体实施例方式图l(a)是被配置为向存储器(在该图中是DRAM102)写入或者从存储器读取帧数据的传统的系统100的示意图。存储器控制器(在该图中是DRAM控制器104)处理来自模块106、108的多个读或者写请求。它利用优先级方法,在使用合适的方案的队列中调度这些请求,并且,一次处理一个请求。它根据该请求计算在DRAM中的存储器位置的某个物理地址,以存储或者检索帧数据,然后,它接收或者递交帧数据给各自的模块。图l(b)是根据本发明配置的提供帧緩冲压缩的系统100的示意图。该系统包括存储器,在该图中是DRAM112,其接收来自存储器控制器(在此处是DRAM控制器114)的读以及写操作的请求。该系统还包括帧緩冲压缩器(FBC)116和118,其被配置用来提供当处理来自才莫块120和122的读和写请求时的压缩和解压缩功能。FBC可以被集成在单个模块中,但是,它们在存储器112中根据存储器控制器114而执行关于使读和写操作有效的分离的功能。配置FBC编码器116,以接收并编码来自模块120、122的帧数据,当接收到写揭:作时,压缩帧数据,然后,经由存储器控制器114传输压缩和编码的帧数据给存储器112。当从所述模块接收到从存储器读取帧数据的请求时,配置FBC解码器118,以经由存储器控制器114从存储器112读取压缩并编码的帧数据,以解压缩并且解码帧数据,以便由这些模块使用。依然参考图l(b),在操作中,当向存储器(在该图中是DRAM)写帧数据时,通过帧缓冲压缩(FBC)编码器压缩数据,并写入到较小的存储器空间。当检索帧数据时,从DRAM读出这个压缩数据,并且由FBC解码器以相反的处理来解压缩。然后传递解压缩数据给请求帧数据的模块。根据本发明,通过FBC编码器和解码器,自动计算写和读压缩数据的新地址,并且,相应地修改对DRAM控制器的请求。因此,从模块的观点来看,在操作中对于请求没有变化。为了简化和示例,没有在图1或其它图中示出除了帧数据之外的数据。以下的描述说明了视频数据的亮度分量的处理。然而,本发明并不如此局限,并且其意欲应用于视频数据的其它分量,如色度。更进一步,本领域的技术人员将理解,可以配置该系统,以在不脱离本发明的精神和范围的条件下处理其它视频组件,例如,相似的方式中的色度分量。在更具体的实施例中,可以配置系统为16像素数据的段的2:1的压缩比,其中每个像素为一个字节。这个实施例的目的是作为本发明的具体实施例的示例,并且并不意欲在任何方面限制本发明。图2(a)示出在存储器位置202中,以光栅顺序(rasterorder)扫描的具有MxN像素大小以及段(Sk,kel》的多个段,此处I={0,l,...,MxN/16-l}。FBC编码器将这些段压缩为存储器位置204中的压缩数据(Ck,kel》,在这个例子中每个为8字节。图3(a)和3(b)图解了在编码器300和解码器320中包括FBC系统的根据本发明的系统的框图。配置编码器300,以接收视频帧输入(在这个例子中为16像素帧段)进入量化器302。假设输入段是16像素数据为Sk={Si,ieI},此处I广{0,1,...,15},并且输出压缩数据为Ck,每个像素Si是8比特数据段。对于2:1的压缩率,对于Q的比特数来说,比特预算是16x8/2=64比特。在图3(a)描述的实施例中,编码器利用一些为量化和GR编码的选择参数来对Sk执行量化、DPCM、赖斯映射以及Golomb-Rice(GR)编码的处理。令Xk、Yk、Zk以及Bk为对应的输出。如果编码比特数不大于比特预算,则适当地打包每个Si的编码比特,并且存储到DRAM。否则,使用另一个模式以其它的参数编码Sk。如果即使最后模式也无法满足比特预算,则使用最坏情况模式来编码Sk,以满足比特预算约束。当解码压缩数据Ck时,如在图3b中那样,解码器执行逆操作,以重建对应值Xk,、Yk,、Zk,以及Bk,。以下,详细描述每个处理。依旧参考图3(a),才艮据本发明来量化所述段,并且发送输出Xk给差分脉冲编码调制器304。发送调制的输出Yk给其中执行赖斯映射的赖斯映射模块306。发送输出Zk给GR编码模块308,用于GR编码。以下更详细地讨论这些模块的分离的功能。发送输出Bk给确定模块310以确定比特预算是否已经满足。如在以下更详细描述的那样,本发明的压缩操作的目的在于产生处于预定比特数、比特阈值之内的视频段。一旦其被满足,打包单元312便打包数据,并输出压缩的数据段Ck时。然而,如果没有满足预算,则处理转向步骤314,其中,确定处理是否已处理了在多个模式的最后一个中的帧,或者每个是否已经被执行。根据本发明,为了更好地压缩段数据、使得输出处于比特预算之内,编码处理可以在多个模式中操作。具体地,可以在多种模式中执行量化和GR编码,以产生不同的输出,最终尝试产生在步骤310中测试的预定的比特预算内的压缩的视频段。如果所有的模式已经被执行,并且尚未满足比特预算,那么,在步骤316(回退(fallback)位置)中,执行最坏情况模式,其中执行可替换的压缩操作,并且,发送输出给打包模块312,以产生压缩数据。然而,如果尚未在所有的模式中执行处理,则处理进行到步骤318,其中,选择新的模式参数,并且,在另一尝试中重复处理以压缩数据。再次,如果满足比特预算,处理进行到打包(312),并且,结果,产生压缩的输出CK,其包括压缩的数据段和相关的模式数据。如果没有满足比特预算,并且,一旦在最后的可用模式中执行了操作,则执行最坏情况模式,并且,从打包模块312输出压缩的数据段。参考图3(b),描述对应的解码器系统320的示意图。在解包模块334接收压缩的段数据Qc,其中,解包模式参数,并发送给模式参数模块336。在步骤330,确定编码器330是否在模块316中的最坏情况模式下压缩视频段。如果回答为"是,,,则解码器在最差编码解码模式下解码压缩数据,以输出解码段,此处是16像素段Sk。如果不是在最坏情况模式下处理的,则处理进行到步骤328,此处执行GR解码。然而,在这个处理开始之前,编码参数将已经被分发给逆量化模块322和GR解码模块328。因此,处理可以在模块326中执行逆赖斯映射操作,然后是^t块324中的逆DPCM,并且最后是在步骤322中的、在编码器/压缩器系统300中压缩以输出段(在这种情况中是16像素的段Sk)的模式中的逆量化。根据本发明,提供了一种量化方法,以量化视频数据段。因此,在量化级别上可以调整动态范围,并且可以以较小数目的比特代表量化值。为了减少编码像素数据Sk的Si的数目,可以用以下定义的量化步骤Qs量化它。<formula>formulaseeoriginaldocumentpage16</formula>(1)此处,Xk=(Xi,ieW是量化输出,并且,函数int(x)代表以合适的取整来建立x的整数表示。由于数据的动态范围变小,所以,可以使用较小数目的比特来代表量化值。减少动态范围具有潜在的增加量化误差的结果,但是好处在于量化器的减少的比特率输出、减少传输所需要的带宽、以及进一步增进数据的压缩能力。例如,如果量化步骤Q,4,则Xi的值变为具有动态范围64的6比特数据代表。在解码处理中,重建的像素值Sk,=(Si,,iel^可以由如下的逆量化处理而计算<formula>formulaseeoriginaldocumentpage16</formula>(2)重要的是注意到,如果Qs=l,则不存在损失。为了简化实现,幂值2可以用于Qs,使得可以由比特偏移而方便地计算在上述等式(1)和(2)中的除与乘。根据本发明,已经观察到在相邻的像素值之间存在相关性。因此,通过使用考虑到当前像素值和先前的像素值之间的差的差分脉冲编码调制码,可以进一步减小大多数值的动态范围。例如,根据本发明的一个实施例,y的值的公式可以如下表述<formula>formulaseeoriginaldocumentpage16</formula>(3)此处,Yk={yi,ielj。重建值Xk,={Xi,,iel^可以由如下的DPCM解码计算<formula>formulaseeoriginaldocumentpage16</formula>(4)注意,对于这个步骤,不存在损失。对于动态范围,假设Xie[O,L-l]。使用等式(3),可以看到DPCM输出yie[-(L-1),L-1]的范围。这意味着,动态范围变为几乎两倍。然而,已经观察到多数的yi的值集中在值0的附近区域。对于典型的数据集,yi的分布遵循拉普拉斯分布。这个特性导致以下讨论的对码yi的可变长度编码的使用十分有效。对于DPCM的输出值,当编码yi时,该值可以是正的、或者负的。已经观察到,数据值的主体存在于0点附近。根据本发明,不同于对它的幅度和符号的分离的编码,使用赖斯映射以增进编码性能。这是因为,结果值集中在0值附近的区域。参考图5,描述了赖斯映射的拉普拉斯分布,此处,交替地选择值。如在该描述中显示的,以z「0开始,然后是l(y,-1),然后是2(y「1),然后是3(y,-2),等等,直到z「14,此处L=8。赖斯映射处理将力的值编码为Zk={Zi,iel2},此处12={0,1,...2(L-1)}此处Zi=2iyi|对于y^O;并且Zi=2|yi|-1对于所有的其它值。(5)yi的重建值可以由逆赖斯映射计算yi,=Zi/2对于Zi是偶数yi,=-(Zi+l)/2对于所有其它值。(6)由于赖斯映射的DPCM的值集中在小值区域,所以,可以使用可变长度编码(VLC)以有效地压缩数据。为了4斤衷编码效率和实现成本,由于GR编码的简单、且不需要码表,所以,采用GR编码用于VLC编码。令"m"为GR编码参数,其为2的幂,m=2k。Zi的GR编码包括一元部分和二元部分。一元部分由带有分隔比特(commabit)"1"的连续的D个零组成,此处,D是Zl除以m的商。二元部分正是在二进制表示法中的Zi的最后的k比特。例如,如果z「22且m-4,这意味着k-2,并且0=5。那么,一元部分是带有5个连续零的"000001",指示D-5。由于&(22)的二进制表示="10110",所以,二元部分变为"10",此处使用Zi的最后两比特作为数字表示的二元部分。合并一元和二元部分,对于该例子的Zi的GR编码为"00000110"。为了解码GR编码,可以通过除以m而恢复Zi的商。这通过对直到^5並上分隔比特"1"为止的0的数目计数而完成。接下来,从分隔比特提取k比特作为二元部分。通过由m乘以商、并且将结果与二元部分相加,形成最终的解码值。为了筒化解码的实现,本发明提供了在编码期间避免使用长的一元的处理。这是通过在编码处理将退出FBC系统并且选择另一个编码模式处设置阈值级别而完成的。该值可以被预设为FBC处理停止的默认限制。因此,如果上述讨论的任何一元的长度超过用户定义的阈值,例如15,则GR编码退出,并且选择另外的模式。例如,因此,较大的要编码的数目(例如,35)将具有较大的用于表示的比特的数目。如果设置15作为默认的FBC系统失败的阈值,则35将超过阈值级别。在实现中,可以为不同的模式选择两个或者多个参数,并且,总是在编码失真和效率之间存在折衷。模式存在于量化步骤Qs和GR编码参数m。对于这些选择,存在多种组合。理论上,系统具有的模式越多,就可以越好地发现适当的模式,以对输入的16像素值编码。然而,要在系统中利用的模式的数目存在限制。这是因为,压缩数据与关于用于编码和压缩数据的模式的类型和数目的模式信息一起被传输给解码器系统。例如,在用于实践中的一个实施例中,最多使用3比特作为模式信息,因此,最多可以使用8种模式。本领域的技术人员将理解,在不同的实现之间存在这种折衷,并且,本发明的目的在于,用于编码和解码处理的^f莫式的任意这种组合和排列。在操作中,识别压缩和编码的段的模式,并且与这些模式相关的信息与压缩和编码的段一起被发送给解码和解压缩处理,以便精确地解码并且解压缩所述段。对于一些情况,即使尝试了所有的模式,输出比特数依然不能满足比特预算。在这种情况中,使用最坏情况;漠式。以最小Qs值量化输入像素值,使得总的比特数目满足比特预算约束。由于应当为计算而包括指示模式选择的比特,所以,更多地量化一些像素值,以覆盖模式选择比特。为了分散量化误差,以在输入像素之间的均匀分布的方式选择这些像素。例如,对于具有3比特模式选择的2:1的压缩,由32量化像素3、7和11,以变为3比特数据,并且由16量化剩余的像素值,以变为4比特数据。总比特数为(3x3+13x4+3)=64,其等于比特预算。为了进一步增进编码性能,本发明提供了另一个实施例,即,用于执行帧缓冲压缩的增强的系统,并且在FBC编码和解码的图4(a)和4(b)中描绘一个实现。与以上讨论的实施例相比,有四个重要的变化。添加了平滑和借用比特控制这两个模块,使用新颖的赖斯映射操作,并且,提出了切换输入段值的方案。以下详细讨论这些变化。首先,参考图4(a),描述根据本发明而配置的可替换的并且增强的系统的实施例。解码器400接收输入信号,在这个例子中是16像素段Sk,进入平滑模块402,其输出平滑的段Fk。在量化器模块404中量化该输出,其输出Xk给DPCM406。DPCM406输出Yk给修改的赖斯映射模块408,其输出赖斯映射的输出Zk给GR编码模块410。类似于以上描述,GR编码模块输出Bk给查询模块414,其确定是否满足比特预算。如果满足,则打包模块416打包压缩的数据段,并与在包Ck中的由解码器使用的对应的模式数据一起输出压缩的数据段。然而,如果未满足比特预算,则处理从步骤414转到步骤418,此处,确定最终的可能的几个模式是否已经执行。如果回答为"是,,,则在步骤420中设置最坏情况模式,并且,根据该模式压缩段,在步骤416中打包并且作为压缩输出Ck而输出该段。根据本发明,可以实现压缩和编码操作的一个或多个^f莫式,并且,选裤r模式参数模块412确定平滑模块402、量化模块404以及GR编码模块410操作哪个模式。以下更详细讨论这些分离的模块和它们操作的模式。该反馈系统持续进行,直到满足比特预算或者处理已经在每个模式中编码并压缩了所述段为止,并得到压缩的输出Ck。接下来,参考图4(b),描述对应的解码器430。系统430接收压缩的数据输入Ck,并且在解包单元432中对其解包。发送模式参数给模式参数模块434,以建立编码解包的压缩段的模式。然后,在步骤436中确定是否实现了最坏情况模式。如果是,则在最坏模式模块438中解码该段,并且输出段Sk,,在该说明中,产生16像素的段。如果该段是根据另一个模式而被编码的,则处理进行步骤440,其中执行逆比特借用,从而给出输出Bk,。发送这个输出给GR解码模块442,以进行GR解码,产生被发送给逆修改的赖斯映射才莫块444的Zk,,从而产出输出Yk,。逆DPCM模块446对Yk,执行逆DPCM处理,从而给出Xk,。逆量化模块448执行逆量化处理以产出Fk,,并且,逆平滑模块执行逆平滑,以产生输出段,在这个情况中是16像素段Sk,。再次,根据本发明,处理可以在一个或者数个模式中操作,并且,解码处理包括采用在解包模块432中从压缩数据Ck中解包的模式的模式参数模块434。逆平滑模块450、逆量化模块448以及GR解码模块442各自根据不同的模式执行它们的解码处理的一部分。结果是解码并且解压缩的输出#殳Sk,。对于在高频区域的像素,像素间的差可能很大。这意味着像素间的相关性小。使用传统方法,这导致大的编码失真。根据本发明的另一个实施例,为了减小这种情况下的像素之间的差,使用新颖的平滑滤波器c令Fk-{fUeW为平滑^f莫块的输出。平滑处理如下。fo=Sof\=(So+sQ/2fHsw+Sw+SxSi)/4对于i>2(7)Si的重建值可以由逆平滑滤波器计算,如下s,o=fos,产2xf0—s,os,i=(4xf;—s'w-s'i—0/2对于i》2(8)根据本发明,打包压缩段的打包模块将与任何平滑模式操作的信息一起发送压缩段,使得当响应于来自视频模块的读请求而从存储器读取时,可以适当地对该段进行解码。如上在部分2.2中所讨"^仑的,相比于输入的量化值Xi的动态范围,DPCM输出yi的动态范围变为几乎两倍。更具体地,如果xie,则yie[-(L-l),L-l]。该处理需要用以进行赖斯映射处理加倍的索引(index)。然而,当从yi解码Xi时,x",的值已知。这减少了潜在的Xi值的数量。给定XiM,可以看到yie[-Xw,(L-l)-xw]。因此,对于Xi,动态范围变为与L的动态范围相同。这意味着,通过适当映射到属于范围的索引,可以增进编码效率。对于典型的数据值,由于力集中在0附近的区域,其满足拉普拉斯分布,所以,根据本发明配置的系统针对于修改赖斯映射。参考图6,并且根据本发明的另一个实施例,可以实现修改的赖斯映射处理。不同于在从-7的值到+7的值的所有的完整谱上交替改变,赖斯映射交替改变,.直到实际存在的位置的结束为止。这通过保持原始的如同在等式(5)中计数的索引、直到到达对于可能的yi的间隔的一个结束而^l行。然后,在到达一个结束后,索引计数从所述谱的另一端继续,在图6中的例子中,回到值=_5,直到完全处理了数据为止。为了说明其,在图6中为以下情况给出了例子L=8并且Xi—产5。图5示出了正常的赖斯映射,其中,Zi的索引计数遵循等式(5),其中,对于yr0、-1、1以及-2,zi分别等于0、1、2以及3,等等。图6示出修改的赖斯映射。由于xh-5并且L二8,所以,y^[-5,2]。该计数遵循正常的赖斯映射,直到到达yi=2的值为止。然后,对于y「-3、-4以及-5,Zi分别等于5、6以及7。注意,如上所讨论总的索引数目等于1^=8。为了更好的实现,将DPCM处理与修改的赖斯映射合并。图7(a)和7(b)示出了这个合并的处理的编码和解码的伪码。总体上,本领域的技术人员将在数学上和主观上理解所述伪码的功能。图7(a)的伪码DPCM—ModifiedRiceMapping(x,z,L)是根据本发明配置的编码器操作,此处,Z()=x。。在操作中,如同图5中描绘的和以上讨论的那样,处理如同正常的和传统的赖斯映射那样开始。计数在谱的任意一边交替改变,直到到达段的结束为止。在第一个才栗作中,操作针对于更多的向正x象限偏差的视频段。此处,在条件"if((dl>min)and(dl<-min)),,下,操作执行正常的赖斯映射直到所述段的短结束(shortend)为止,在负x象限上到达在这个例子中的段。然后,一旦在负x象限上到达该结束,则映射切换到正x象限,以映射位于正x象限的段的剩余部分。类似地,如果所述段向负象限偏差,此处条件是"if((dl>-max)and(dl《max))",则执行正常赖斯映射直到到达在正x象限的短结束为止。然后,在该点之后,修改的赖斯映射程序引导映射进行到在负x象限中的所述段的剩余部分。参考图7(b),图解了操作的解码器端的逆操作Inverse—DPCM—ModifiedRiceMapping(z,x,L),it匕处x。zo。在jt匕,以逆向方式解码被编码的段,在围绕z轴的位置放置段数据,而不需要传输所有的x值。由于帧的一些段易于压缩,而一些则不是,所以,如果一部分比特可以从其它的具有剩余的比特空间的賴:借用,则可以增进编码效率,并且^f吏用这些剩余对需要更多的比特空间并且因此难以压缩的段进行编码。为了简单起见,当编码第k个段Sk时,以下的借用比特控制由下式代表BWk=BitsSavek-BitsKeepk(9)BGk=BGo+BWk(10)此处,BitsSavek是在池中保存的来自先前的段中的直到Sk的比特的数目。因此,保留来自先前的段的比特空间,以在难以压缩并且因此需要额外的比特空间的将来的段中使用。BitsKeepk是以备将来使用的保留比特的数目,使得所有的保存比特不一次性使用完。其值是BitsSavek的函数。这可以以查询表的方式实现。当BGk是Sk的比特预算时,BWk是借用比特的数目。BGo是段的正常比特预算。例如,对于2:1压缩,BG0=64比特。根据等式(9)和(10),编码Sk的比特的可用数目通过从比特保存池中借用一些比特而增加,同时,比特池中的剩余比特保留以备将来使用。在编码给定的Sk之后,按照下式更新BitsSave"BitsSave(k+^=BitsKeepk+BGk-Bitsk(11)此处,Bitsk是用于编码Sk的比特数。为了简化实现,假设当前的段Sk将不借用超出先前的段Sk-!的比特,并且,在DRAM中置于Sk-i的数据片段(dataslot)的Sk的压缩数据附加在该片段的结束。这意味着,如果BitsSavek大于BGO,则将其截为BGO。此外,需要一些比特以指示Sk的借用比特的数目,使得解码处理知道如何从Sk-i的数据片段得到压缩数据。在一个实施例中,为了与借用比特的效率折衷这个开销,使用四比特来代表具有4比特分辨率的BWk的值,使得可以识别先前的数据片段的完整的64比特范围。对于2:1的压缩比,第k个16像素段Sk的压缩数据格式在图8中示出。每个压缩槽是64比特的CK[63...0]。模式和借用比特的字段分别是3和4比特。该模式指示使用哪个模式压缩Sk。借用比特字段是4比特单元的数目,其中,压缩数据在先前的压缩数据片段Cn[63…0]中。对于模式=7的最坏情况模式,不存在借用比特字段。B[i]和U[i]是Zk-(Zi,iel^的GR编码的第i个元素Zj的二元和一元部分,其在图中的阴影区域中连续地被存储。注意,对于第一个元素z0,不存在一元部分U[O]。对于模式、借用比特、二元和一元部分的字段,以MSB作为开头的规则顺序来存储所述比特。例如,模式比特"100"意味着所述模式为4。B="000101"意味着GR编码的第0个数据的值等于5。U[l]="001"意味着GR编码的第一个数据的一元部分等于2。这些压缩数据在DRAM中作为32比特的带有增加的DRAM地址的字而被存储。Ck[63…32]首先作为第j个字存储,而Ck[31.,.0]在第j+l个字中被存储。如上所述,使用包括最坏情况模式的8个模式来压缩段。对于一个实现,根据下面的表1选4奪模式参数。注意,通常,按照使用最少比特压缩,同时具有较大的编码失真的顺序排列模式。<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>1.其为比特数目等于包括3个模式比特的64的最坏情况模式。2.用32来量化^f象素3、7和11,并且用16来量化其它的像素。表1对于2:1的压缩率的不同压缩模式的参数设置根据本发明,在FBC系统中,除了使用模式0之外,编码输入段存在损失。当使用具有帧预测的方案编码视频时,将积累该损失。幸运的是,多数方案在较短的周期中刷新该帧预测,例如,每隔15个帧具有一个无预测的帧。这停止了误差的积累,并且使系统健壮。在刷新率不小的情形中,这种积累的误差导致大的编码失真。由于误差具有相同的符号,所以,对于段不随时间改变的情形,这种问题变得更加严重。否则,则可以消除误差。根据本发明,为了减少误差积累问题,建议通过从可能的最大值减去输入段Sk={Si,iel山每隔一帧改变输入段S广{Si,ieW。因此,对于8比特像素数据段Si"=255-Sj(12)这种相减等同'于在0和1之间切换Si的比特。根据这种新颖的方法,通过该途径,可以显示,这种积累误差显著减少。对于理想的情形,误差可以完全消除。在优选实施例中,对于解码,需要具有相同的切换,以恢复段值。并且,对于相同位置的段,每隔一帧执行切换比特。在帧内,可以以不同的遵循固定模式的方式改变切换。最简单的模式是帧的所有段以相同的方式切换。参考图9,并且根据本发明的另外一个实施例,为了节约计算时间,该新颖的系统可以在不同的模式中作为在用以编码的模块902、904、906中的并行系统900而同时操作。在该实施例中,输入段可以由不同的模式同时被编码,并且系统以预定的顺序选裤^莫式,例如,在选4奪模块908中。然后,可以利用模式数据在打包模块910中对编码和压缩数据打包,从而给出压缩数据Ck。如果计算足够快,则可以共享一些编码模块。已经在用于在例如DRAM中的存储器中存储、以段为单位压缩、编码视频帧,以及对应地根据所述段压缩和编码的模式而以段为单位解压和解码视频帧的系统和方法的上下文中,描述了本发明。然而,本领域的技术人员将理解,该系统和方法可以在多种其它的应用中使用,并且,本发明的范围或者描述于此的发明并不由此处描述的实施例所限制,而是由所附带的和将来的权利要求以及它们的等同体所定义。权利要求1、一种用于压缩视频数据的系统,包括存储器装置,其被配置用来存储视频数据;存储器控制器,其被配置用来控制在该存储器装置中的视频数据的存储;以及帧缓冲压缩模块,其被配置用来压缩从视频模块接收的帧数据,以根据存储器控制器而存储在该存储器装置中,并且被配置用来解压缩根据存储器控制器而从该存储器装置接收的压缩的帧数据段,以便由视频模块使用。2、根据权利要求1所述的系统,其中,该帧緩冲压缩模块包括帧緩冲压缩编码器,其被配置用来编码和压缩从视频模块接收的帧数据,以便根据存储器控制器而在存储器中存储;以及帧緩冲压缩解码器,其被配置用来解码和解压缩根据存储器控制器而从存储器接收的帧数据,以由视频模块使用。3、根据权利要求2所述的系统,其中,以段为单位压缩帧数据。4、根据权利要求3所述的系统,其中,以段为单位压缩帧数据,并且其中,帧缓冲器编码器还包括量化器,其被配置用来量化输入帧的段,以产生量化的输出;DPCM,其^f皮配置用来调制量化的输出,以产生调制的输出;赖斯映射模块,其被配置用来对调制的输出执行赖斯映射,以产生映射的输出;以及可变长度编码模块(VLC),其被配置用来编码所述映射的输出。5、根据权利要求4所述的系统,还包括比特预算模块,其被配置用来测试压缩段是否处于预定的限制内;以及反馈环,其被配置用来选择用于量化器和VLC的模式参数。6、根据权利要求4所述的系统,还包括比特预算模块,其被配置为测试压缩段是否处于预定的限制内;打包模块,其被配置用来如果在预定的限制内压缩了该段,则准备包括压缩的数据段的包;以及反馈环,其被配置为如果未在预定的限制内压缩该段,则选择用于量化器和VLC的模式参数。7、根据权利要求6所述的系统,还包括最坏情况模式模块,其被配置为如果不在预定的限制内,则压缩所述段,其中,打包单元被配置为准备和产生具有最坏情况压缩段和4莫式信息的包。8、根据权利要求4所述的系统,其中以段为单位压缩帧数据,并且,其中,该帧緩冲器编码器还包括平滑模块,其被配置用来对输入像素段执行平滑操作;在赖斯模块内的修改的赖斯映射组件,其被配置用来对调制的输出执行修改的赖斯映射,以产生映射的输出;比特借用模块,其被配置用来在要被传输的压缩段之间共享比特空间;以及切换模块,其被配置用来执行切换操作,以通过切换代表输入像素段段的比特而改变该输入像素段的一部分。9、根据权利要求4所述的系统,还包括比特预算才莫块,其^皮配置用来测试压缩段是否处于预定的限制内;打包模块,其被配置为如果该段在预定的限制内,则准备和产生包括压缩的数据段和模式信息的分组;以及反馈环,其被配置为如果所述分组没有在预定的限制内,则选择用于平滑模块、量化器和VLC的模式参数。10、根据权利要求6所述的系统,还包括最坏情况模式模块,其被配置为如果不在预定的限制内,则压缩所述l史,其中,打包单元被配置为准备和产生具有最坏情况压缩段和才莫式信息的包。11、根据权利要求3所述的系统,其中,以段为单位解压缩帧凝:据,并且,其中,该帧緩冲器解码器还包括逆可变长度解码模块,其被配置用来解码映射的输出;逆赖斯映射模块,其被配置用来对逆调制的输出执行逆赖斯映射,以产生映射的输出;逆DPCM,其被配置用来对逆量化的^T出进行逆调制,以产生逆调制的输出;以及逆量化器,其被配置用来对输入帧段进行逆量化,以产生逆量化的输出。12、根据权利要求11所述的系统,解包模块被配置用来对接收到的包括压缩的数据段和模式信息的分组解包,并且,前馈环被配置为发送用于量化器和VLC的模式参数。13、根据权利要求11所述的系统,其中,该帧緩冲器解码器还包括逆比特借用模块,其被配置用来在要被传输的压缩段之间共享比特空间;在赖斯模块内的逆修改赖斯映射组件,其被配置用来对调制的输出执行修改的赖斯映射,以产生映射的输出;以及逆平滑模块,其被配置用来对输入像素段执行平滑操作。14、根据权利要求13所述的系统,还包括解包模块,其被配置用来对接收到的包括压缩的数据段和模式信息的分组解包;以及前馈环,其被配置为发送用于平滑模块、量化器和VLC的压缩模式参数。15、根据权利要求13所述的系统,其中,配置解包模块以解包最坏情况模式参数,所述最坏情况模式参数被配置用来解码4艮据最坏情况模式打包的任何接收的压缩数据。16、根据权利要求14所述的系统,其中,配置解包模块以解包最坏情况模式参数,所述最坏情况模式参数被配置用来解码根据最坏情况模式打包的任何接收的压缩数据。17、根据权利要求4所述的系统,其中,帧緩冲器编码器还包括比特借用模块,其被配置用来在要被传输的压缩段之间共享比特空间。18、才艮据权利要求17所述的系统,其中,配置比特借用才莫块,以才艮据先前压缩的段而保持可用的比特空间池,用以存储代表随后的段的比特。19、根据权利要求17所述的系统,其中,配置比特借用沖莫块,以根据直到先前的段所需的比特空间为止的先前压缩的段而保持可用的比特空间池,用以存储代表随后的段的比特。20、根据权利要求4所述的系统,其中,配置赖斯模块,以对调制的输出执行修改的赖斯映射,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。21、根据权利要求4所述的系统,其中,配置赖斯模块,以对调制的输出执行修改的赖斯映射,其中,最初,从段的中心点开始直到段的结束为止,使用赖斯正常赖斯映射来映射该l殳,然后,以连续的方式映射段的剩余部分,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。22、根据权利要求4所述的系统,其中,帧缓冲器编码器还包括平滑才莫块,其^f皮配置用来通过在压缩和解码多个l史之前对多个^1的值进行平均,而对输入像素段执行平滑操作。23、根据权利要求22所述的系统,其中,平滑处理包括发送根据平滑模式压缩和编码多个段的信息给解码器,以便可以精确地解码该段。24、根据权利要求4所述的系统,其中,帧缓冲器编码器还包括切换才莫块,其被配置用来执行切换操作,以通过切换代表输入像素,殳的比特而改变该输入像素段的一部分。25、根据权利要求24所述的系统,其中,配置切换模块,以切换相同位置的每一个其它帧的比特。26、一种用于压缩视频数据的方法,包括从视频模块接收写请求和视频帧数据,以将视频数据存储到存储器中;压缩从视频模块接收的数据的帧段;以及根据存储器控制器,在存储器装置中存储压缩段。27、才艮据权利要求26所述的方法,还包括从视频模块接收读请求;根据来自视频模块的读请求,解压缩从存储器装置接收的压缩的帧数据段;发送解压缩的帧数据段给所述模块。28、根据权利要求26所述的方法,其中,压缩的步骤包括利用帧緩冲压缩编码器编码并压缩从视频模块接收的帧数据段,以根据帧存储器控制器而在存储器中存储。29、根据权利要求27所述的方法,其中,解压缩的步骤包括根据帧存储器控制器,利用帧緩冲压缩编码器解码并解压缩从存储器接收的帧数据段。30、根据权利要求28所述的方法,其中编码段的步骤还包括量化输入帧段,以产生量化的输出;执行量化的输出的差分脉冲编码调制(DPCM),以产生调制的输出;对调制的输出执行赖斯映射,以产生映射的输出;以及执行被配置用来编码映射的输出的可变长度编码模块(VLC)。31、根据权利要求30所述的方法,还包括利用比特预算模块测试压缩段是否处于预定限制内;以及利用反馈环,选择用于量化器和VLC的模式参数。32、根据权利要求30所述的方法,还包括测试压缩段是否处于预定限制内,如果在预定的限制内压缩了所述段,则准备包括压缩的数据段的包;以及如果没有在预定限制内压缩所述段,则选择用于量化器和VLC的模式参数。33、根据权利要求32所述的方法,还包括如果所述段不在预定的限制内,则压缩所述段;以及准备并产生具有最坏情况压缩段和模式信息的包。34、根据权利要求30所述的方法,其中,以段为单位压缩帧数据,所述方法还包括对输入像素段执行平滑操作;对调制的输出执行修改的赖斯映射,以产生映射的输出;以及在要被传输的压缩段之间共享比特空间。35、根据权利要求30所述的方法,还包括测试压缩段是否处于预定限制内;如果所述段处于预定限制之内,则准备并产生包括压缩的数据段和模式信息的分组;以及如果所述分组不在预定限制内,则选择用于平滑模块、量化器以及VLC的模式参数。36、根据权利要求32所述的方法,还包括如果所述段不在预定限制之内,则压缩所述段;以及准备并产生具有最坏情况压缩段和模式信息的包。37、根据权利要求28所述的方法,其中,以段为单位解压缩帧数据,所述方法还包括利用逆可变长度解码方法,解码映射的输出;对逆调制的输出执行逆赖斯映射,以产生映射的输出;对逆量化的输出执行逆DPCM调制,以产生逆调制的输出;以及执行输入帧段的逆量化,以产生逆量化的输出。38、根据权利要求37所述的方法,还包括对接收的包括压缩的数据段和模式信息的分组解包,以及在前馈环中发送用于量化器和VLC的模式参数。39、根据权利要求37所述的方法,还包括使用比特借用操作,在要被传输的压缩段之间共享比特空间;对调制的输出执行修改的赖斯映射,以产生映射的输出;以及对输入^f象素段执行平滑操作。40、根据权利要求39所述的方法,还包括对接收的包括压缩的数据段和模式信息的分组解包,并且,在前馈环中,发送用于平滑模块、量化器和VLC的压缩模式参数。41、根据权利要求39所述的方法,其中,解包还包括对最坏情况模式参数解包,所述最坏情况模式参数被配置用来解码任何接收到的根据最坏情况模式而被打包的压缩数据。42、根据权利要求40所述的方法,其中,解包包括对最坏情况模式参数解包,所述最坏情况才莫式参数被配置用来解码任何接收到的根据最坏情况模式而被打包的压缩数据。43、根据权利要求30所述的方法,还包括在要被传输的压缩段之间共享比特空间。44、根据权利要求43所述的方法,其中,共享比特空间包括根据先前压缩的段而保持可用的比特空间池,用以存储代表随后的段的比特。45、根据权利要求43所述的方法,其中,共享比特空间还包括根据直到先前的段所需的比特空间为止的先前压缩的段而保持可用的比特空间池,用以存储代表随后的段的比特。46、根据权利要求30所述的方法,其中赖斯映射还包括对调制的输出执行修改的赖斯映射,以产生代表从赖斯映射中心点偏差的段的值的映射的输出。47、根据权利要求30所述的方法,其中赖斯映射包括对调制的输出执行修改的赖斯映射,其中,最初,从段的中心点开始直到段的结束为止,使用赖斯正常赖斯映射来映射该段,然后,以连续的方式映射段的剩余部分,以产生代表从赖斯映射中'"、点偏差的段的值的映射的输出。48、根据权利要求30所述的方法,还包括通过在压缩和解码多个段之前对多个段的值进行平均,而对输入像素段执行平滑操作。49、根据权利要求48所述的操作,其中平滑处理包括发送根据平滑模式压缩和编码的多个段的信息给解码器,以便可以精确地解码该段。50、根据权利要求30所述的系统,其中帧緩冲器编码器还包括切换模块,其被配置用来执行切换操作,以通过切换代表输入像素段的比特而改变该输入像素段的一部分。51、4艮据权利要求50所述的系统,其中配置切换^^莫块,以切换相同位置的每一个其它帧的所述比特。全文摘要提供了编码并压缩视频数据的系统和方法。配置存储器装置以存储视频数据,并且,对应的存储器控制器控制在存储器装置中的视频数据的存储。帧缓冲压缩模块压缩从视频模块接收的根据存储器控制器而被存储在存储器装置中的帧数据,并且解压缩根据存储器控制而从存储器装置获得的压缩帧数据而由视频模块使用。帧缓冲压缩模块包括被配置用来编码和压缩从根据存储器控制器而在存储器中存储的视频模块接收的帧数据的帧缓冲压缩编码器。帧缓冲器还包括被配置用来解码和解压缩从根据存储器控制器的存储器获得的帧数据的对应的帧缓冲压缩解码器以由视频模块使用。文档编号G06K9/36GK101310291SQ200680042410公开日2008年11月19日申请日期2006年11月14日优先权日2005年11月14日发明者俞秀良,克里斯托斯·克莱萨菲斯,吴旭辉,王年肃,邹寇湖申请人:Ess技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1