存储有效压缩域视频处理和快速逆运动补偿的方法和设备的制作方法

文档序号:7534925阅读:236来源:国知局
专利名称:存储有效压缩域视频处理和快速逆运动补偿的方法和设备的制作方法
技术领域
本发明一般涉及数字视频技术,具体来说,本发明涉及一种实施有效的存储压缩方法的方法和设备,并涉及一种用于压缩域视频解码器的实施有效的逆运动补偿方法的方法和设备。
背景技术
由于移动系统自身性质的限制,诸如蜂窝电话和个人数字助理这样的移动终端上的视频存取会有很多问题。例如,低功率手持设备受到了带宽、功率、存储器和成本等技术条件的限制。这些手持设备接收的视频数据由视频解码器解码。与这类终端相关的视频解码器在空间域,即在解压缩域中执行运动补偿。诸如H.263、H.261和MPEG1/2/4这样的视频压缩标准使用一种运动补偿离散余弦变换(DCT)方案来编码低比特率的视频。在此,低比特率指的是每秒大约低于64千比特的比特率。该DCT方案利用运动估计(ME)和运动补偿(MC)来消除时间冗余,并且该DCT还用于消除余下的空间冗余。
图1表示在空间域中解码视频数据并执行运动补偿的视频解码器的示意图。解码器100接收比特流102。解码器100包括可变长解码器(VLD)级104、行程长度解码器(RLD)级106、去量化(dequantization)(DQ)级108、逆离散余弦变换(IDCT)级110、运动补偿(MC)级112以及也被称作帧缓冲器的存储器(MEM)114。前四级(VLD104、RLD106、DQ108和IDCT110)将压缩比特流解码至像素域。对于帧内编码(intracoded)块来说,前四级104、106、108和110的输出直接用于重建当前帧中的块。对于帧间编码(intercoded)块来说,该输出表示预测误差并且被添加到通过前一帧形成的预测中,以重建当前帧中的块。因此,当前帧是以块为基础重建的。最后,当前帧被发送到解码器的输出端,即显示器116,另外还被存储到帧缓冲器(MEM)114中。
MEM114存储运动补偿112所需的先前解码的图像。MEM114的大小必须根据输入图像的格式而定。例如,H.263支持五种标准化图像格式(1)子四分之一公用中间格式(子QCIF),(2)四分之一公用中间格式(QCIF),(3)公用中间格式(CIF),(4)4CIF,以及(5)16CIF。每种格式均定义图像的宽度和高度及其高宽比。正如我们通常所知的,图像是被编码为一个单独的亮度分量和两个色差分量(Y,Cr,Cb)。这些分量是以4∶2∶0的配置被采样的,每个分量的分辨率为8比特/像素。例如,在解码CIF格式的H.263比特流时,图1的视频解码器必须为MEM114分配大约200千字节的存储空间。而且,当视频会议系统需要同时解码多个比特流时,对存储器的要求会非常大。
MEM114是视频解码器100中使用的最大的唯一存储源。为了减少对存储器的使用,可使用一种降低输入比特流的彩色分量的分辨率的方法。例如,如果移动终端上的彩色显示深度只能显示65,536个彩色,那么就可以把彩色分量(Y,Cr,Cb)的分辨率从24比特/像素减少到16比特/像素。尽管这种技术能够把存储器的使用率降低30%,但它是一种与显示器有关的解决方案,它在视频解码器中必须是硬连线的。另外,这种技术不能够很容易地随着变化的峰值信噪比(PSNR)的要求而定标,因此,这种方法不够灵活。
与压缩域的处理相比,在空间域中的数据运算需要增加存储容量。在空间域中,运动补偿很容易计算,并且可被应用到一个图像的连续帧中。但是,当在压缩域中运算时,由于在压缩域中运算时误差值不再是空间值,即误差值不是像素值,则运动补偿并不象指向前一帧的运动矢量那么简单。另外,也没有能够有效地处理压缩域数据的方法。已有技术的方法主要集中于对压缩域的应用进行代码转换、定标和锐化。另外,压缩域的逆补偿应用的峰值信噪比(PSNR)的性能往往较差,同时与每秒可显示的帧数相应的缓慢的响应时间也是不能接受的。
因此需要解决已有技术的这些问题,提供一种尽可能减小对解码低比特率视频数据的存储器的要求的方法和设备,并提供一种用于压缩域视频解码器的能够进行快速高效的逆运动补偿的方法和设备。

发明内容
一般说来,通过提供一种被配置使用混合数据结构来尽可能减少存储要求的视频解码器,本发明至少可以满足这些需求的一个方面。可以理解,本发明的这个方面可通过多种方式来实施,包括一种方法、一个系统、一个计算机可读介质或一种设备。下面将描述本发明的这个方面的几个实施例。
在一个实施例中,提供了一种减小对解码比特流的存储要求的方法。该方法首先接收视频比特流。随后,该比特流的一帧被解码为变换(如离散余弦变换(DCT))域表示。接着识别该变换域表示的非零系数。随后,一种混合数据结构被组装(assembled)。该混合数据结构包括一个固定尺寸阵列和一个可变尺寸的溢出矢量。接着,该变换域表示的非零系数被插入到该混合数据结构中。
在另一个实施例中,提供一种解码视频数据的方法。该方法首先接收压缩比特流内的视频数据的一帧。随后,该帧的一个块被解码为变换(如DCT)域表示。接着定义混合数据结构。之后,与该变换域表示有关的数据被存储到混合数据结构中。接着,在压缩域中,对与变换域表示有关的数据执行逆运动补偿。在对数据进行逆运动补偿之后,解压缩该数据以进行显示。
在又一个实施例中,提供一种计算机可读介质,该介质具有用于重排低速率比特流数据以便存储到混合数据结构中的程序指令。该计算机可读介质包括用于识别与一帧数据的编码块相关的非零变换(如DCT)系数的程序指令。还包括把非零变换系数排列为一个固定尺寸阵列的程序指令。还提供用于判断非零变换系数的数量是否超过该固定尺寸阵列的容量的程序指令。还包括把超过该固定尺寸阵列容量的非零变换系数存储到可变尺寸的溢出矢量中的程序指令,以及把非零变换系数从压缩域变换到空间域的程序指令。
在另一个实施例中,提供了一个电路。该电路包括视频解码器集成电路芯片。该视频解码器集成电路芯片包括用于接收与一帧视频数据相关的数据比特流的电路。该视频解码器中包括把数据比特流解码为变换(如DCT)域表示的电路。还提供把混合数据结构中的变换域表示的非零变换系数排列在与视频解码器相关的存储器中的电路。另外还提供解压缩变换域表示的非零变换系数以便于显示的电路。
在另一个实施例中,提供了一种用于显示图像的设备。该设备包括中央处理单元(CPU)、随机存取存储器(RAM)和用于呈现图像的显示屏。还包括把视频比特流变换为变换(如DCT)域表示的解码器电路。该解码器电路能够把混合数据结构中的变换域表示的非零变换系数排列到与该解码器电路相关的存储器中。该解码器电路包括在逆运动补偿期间有选择地应用混合因子分解/整数近似技术的电路。另外还包括与CPU、RAM、显示屏和解码器电路进行通信的总线。
一般说来,通过提供一种能够在压缩域中执行逆运动补偿并且同时降低存储要求并提供可接受的视频质量的视频解码器,本发明至少可以满足这些需求的另一个方面。应当理解,本发明的这个方面能够通过多种方式来实施,包括一种方法、一个系统、一个计算机可读介质或一种设备。下面将描述本发明的这个方面的几个实施例。
在一个实施例中,提供了一种执行逆存储器补偿的方法。该方法首先接收视频比特流。随后识别变换矩阵的类型。该变换矩阵类型可以是半像素矩阵,也可以是全像素矩阵。如果该变换矩阵的类型是半像素矩阵,则该方法应用因子分解技术来解码与该半像素矩阵对应的比特流。如果该变换矩阵的类型是全像素矩阵,则该方法应用整数近似技术来解码与该全像素矩阵相应的比特流。
在另一个实施例中,提供一种解码视频数据的方法。该方法首先接收压缩比特流内的视频数据的一帧。随后,在压缩域中,该帧的一个块被解码为变换(如离散余弦变换(DCT))域表示。接着,与该变换域表示相关的数据被存储到混合数据结构中。随后,在压缩域中,对与该变换域表示相关的数据执行逆运动补偿。在执行逆运动补偿时,包括确定与视频数据帧的一部分相关的变换矩阵的类型,并应用混合因子分解和整数近似技术来增强逆运动补偿。
在又一个实施例中,提供一种计算机可读介质,该介质具有用于在压缩域中执行逆运动补偿的程序指令。该计算机可读介质包括用于识别变换矩阵的程序指令。还包括用于判断变换矩阵是半像素矩阵还是全像素矩阵的程序指令。还包括应用因子分解技术解码与半像素矩阵相对应的比特流的块的程序指令,以及应用整数近似技术解码与全像素矩阵相对应的比特流的块的程序指令。
在另一个实施例中,提供了一个电路。该电路包括被配置来解码视频数据的集成电路芯片。该集成电路芯片包括用于接收与一帧视频数据相关的数据比特流的电路。该集成电路芯片上包括把数据比特流解码为变换(如DCT)域表示的电路。在该集成电路芯片上还提供识别变换矩阵类型的电路,以及利用混合因子分解和整数近似技术执行逆运动补偿的电路。
在另一个实施例中,提供了一种视频解码器。该视频解码器包括从输入比特流中提取系数值和运动矢量数据的可变长解码器(VLD)。另外还包括与VLD通信的去量化块。该去量化块用于对系数值重新定标。还包括与该去量化块通信的下支路。该下支路用于把误差系数解码至空间域。另外包括与该去量化块通信的上支路。该上支路用于保持内部变换(如DCT)域表示。该上支路还用于产生空间域输出,以能够添加到解码的误差系数中,从而重建当前块。
结合以实例形式表示本发明原理的附图,通过下面的详细描述,本发明的其它方面和优点将会显而易见。


通过结合附图的以下描述,将会很容易地理解本发明,而且,相似的参考数字表示相似的结构元件。
图1是用于解码视频数据并在空间域中执行运动补偿的视频解码器的示意图。
图2表示根据本发明一个实施例的用于在压缩域中执行逆运动补偿的视频解码器的示意图。
图3表示在空间域中执行的逆运动补偿的示意图。
图4是表示与H.263标准有关的强制更新机制的效率的多帧的峰值信噪比(PSNR)的示意图。
图5所示为在H.263标准中确定半像素值的示意图。
图6A所示为基线空间视频解码器的示意图。
图6B是根据本发明一个实施例的压缩域视频解码器的示意图。
图7所示为根据本发明一个实施例的视频编码和解码处理过程中的块变换框图。
图8表示在行程长度表示中使用分离指数寻找每个8x8块的开始位置的示意图。
图9A和9B分别表示基于阵列的数据结构和表数据结构中把预测误差增加到预测中时所需的分类(sort)和合并运算。
图10所示为根据本发明一个实施例的包括阵列结构和矢量结构以考虑存储压缩和计算效率的混合数据结构的示意图。
图11A至11C是根据本发明的一个实施例在确定混合数据结构的溢出矢量和固定尺寸阵列的固定尺寸块的容量时所估计的因数的示意图。
图12所示为根据本发明的一个实施例用于降低解码比特流的存储要求的方法操作的流程图。
图13所示为减少矩阵乘法的块对准的三个例子的示意图。
图14所示为完全对准的DCT块的半像素内插的示意图。
图15所示为根据本发明的一个实施例用以增强视频数据处理的压缩域视频解码器的功能块的重新排列的示意图。
图16是根据本发明的一个实施例在压缩域中执行逆运动补偿的方法操作的流程图。
图17是根据本发明的一个实施例有选择地应用混合因子分解/整数近似技术的示意图。
图18所示为根据本发明的一个实施例的便携式电子设备的简化示意图,该电子设备所具有的解码器电路能够使用混合数据结构来最小化存储要求并应用混合因子分解/整数近似技术来有效地解码比特流数据。
图19所示为根据本发明一个实施例的图18所示解码器电路的更为详细的示意图。
具体实施例方式
本发明描述了用于尽可能减小压缩域视频解码的存储容量的系统、设备和方法。然而,根据下面的描述,显然,本领域技术人员不必知道其中的一些或者全部的特定细节就可以实施本发明。在其它情况下,为了不对本发明造成不必要的混淆,一些熟知的处理操作步骤将不再详细描述。图1已在“背景技术”中进行了描述。在此使用的术语“大约”指的是参考值的+/-10%。
在此描述的实施例所提供的数据结构能够减少在压缩域中解码视频数据时所使用的存储器。在一个实施例中,视频解码流水线被重新安排以使当前帧被存储,并且逆运动补偿被在频域中,即在压缩域中执行。混合数据结构利于压缩域中的数据处理,而不需要计算成本,也不会有任何明显的数据丢失。在一个实施例中,混合数据结构利用了在一个编码块中只有少量的非零离散余弦变换(DCT)系数这样的一个事实。因而只存储整个帧的非零DCT系数,从而可以降低存储要求。正如在下面将要详细解释的一样,混合数据结构包括一个固定尺寸阵列和一个可变尺寸溢出矢量。该可变尺寸溢出矢量存储超过该固定尺寸阵列容量的编码块的非零DCT系数。
图2表示根据本发明一个实施例的用于在压缩域中执行逆运动补偿的视频解码器的示意图。在此,视频解码器120接收比特流122。前两级,即可变长解码器(VLD)级124和去量化(DQ)级126把压缩比特流解码为DCT域表示。该DCT域表示被存储到也被称作帧缓冲器的存储器(MEM)130中,以便用在运动补偿(MC)级128中。行程长度解码器(RLD)级132和逆DCT(IDCT)级134在包含了MC128和MEM130的运动补偿反馈回路之后执行。因此,正在被解码的块的内部表示保留在压缩域中。在一个编码块中只有少量的非零DCT系数,因此,这个特性可在研究只存储帧中的每个块的非零DCT系数的MEM130的数据结构时使用。正如在下面将要详细描述的一样,通过混合数据结构执行的存储压缩可以在不损失视频质量的情况下将存储器使用率降低50%。由于人的视觉系统对低阶DCT系数的敏感程度要高于对高阶DCT系数的敏感程度,因此,下面将研究的阈值方案是滤出高阶DCT系数并在存储器使用率与变化功率或峰值信噪比(PSNR)的要求之间折衷。
因而,在此将描述为了快速的和存储器有效解码而优化的完整的压缩域视频解码流水线。在一个实施例中,作为符合公共域H.263的解码器的TELENOR视频解码器被用于此处所涉及的检验。可以理解,尽管下面描述的一些实施例涉及的是H.263比特流,但这些实施例并不限于针对H.263比特流的运算。也就是说,具有诸如运动图像专家组(MPEG)1/2/4,H.261等视频数据的任何基于DCT的压缩比特流都可以适用。用于离散余弦变换(DCT)域表示的一些快速逆运动补偿算法能够在压缩域中执行有效的处理。可以理解,由于压缩域处理的原因,在一个编码块中存储非零DCT系数的存储压缩方法有利于降低存储要求。另外,利用逆运动补偿技术和这里所描述的存储压缩进行压缩域处理的视频解码器的性能按照三个维度来估计计算复杂性、存储效率和PSNR,以便在针对速度和存储空间这二者进行优化时显示各种性能的折衷。
图3表示在空间域中执行的逆运动补偿的示意图。在此,当前块的预测通过参考帧中的运动补偿块来执行。当前帧140的当前8x8空间块fk142通过参考帧146中的四个参考块f1′、f2′、f3′和f4′144-1至144-4产生。通过计算fk由运动矢量的位移(Δx,Δy)并选择运动矢量在参考帧中相交的那些块来选择所述参考块。对于(Δx>0,Δy>0),fk向右下方移动。通过fk与f1′的重叠,可以确定与相邻块的重叠参数(w,h)以及参数(8-w,h)、(w,8-h)和(8-w,8-h)。fk=Σi=14ci1fi′ci2---(2)]]>由于每个块可表示为一个8x8矩阵,因此矩阵fk的重建可被描述为开窗口和移位的矩阵f1′,…,f4′的求和。在公式(Eq.)(2)中,矩阵cij,i=1,…,4,j=1,2对fi′执行开窗口和移位运算。矩阵cij是零和一的稀疏8x8矩阵。另外,cij是重叠参数(w,h)的函数,它被定义为c11=c21=Uh=0Ih00,---(3)]]>c12=c32=Lw=00Iw0,---(4)]]>式中Ih和Iw分别是hxh和wxw维的单位矩阵。
类似地c31=c41=L8-h, (5)c22=c42=L8-w.(6)在DCT域中的逆运动补偿通过运动补偿帧间编码块来重建帧内编码块。此概念类似于空间域,除了所有的系数保留在DCT域中之外,即直接通过f1′,...,f4′的DCT,即F1′,...,F4′重建fk的DCT,即Fk。
S被定义为包含二维DCT的8x8基本矢量的矩阵。通过使用DCT变换的单一性质S’S=I,可以证明Eq(2)等同于fk=Σi=14c11StSfi′StSci2.---(7)]]>以S自左乘公式(7)的两侧,并以S’自右乘,得到Fk=Σi=14Ci1F′iCi2,---(8)]]>式中Cij是cij的DCT。公式(8)计算自左和自右乘的各项F1′,...,F4′的求和为Fk。矩阵Cij是一个包含变换序列的复合矩阵逆DCT、开窗口、移位和前向DCT。因此,公式(8)描述的方法仅仅使用矩阵相乘就可以通过F1′,...,F4′直接计算Fk。这些矩阵相乘是在DCT域中进行的,不必明显地在空间域和频域之间变换。但是,所描述的矩阵相乘的速度慢得难以接受。由此,每秒钟只能显示大约5帧,从而导致显示质量很差。由于矩阵相乘是造成难以接受的延迟的瓶颈,因此下面描述的DCT域逆运动补偿算法的集中在降低这些矩阵相乘的计算复杂性。
低比特率视频,即比特率低于每秒大约64千比特的视频数据被用于诸如蜂窝电话、个人数字助理PDA和其它手持或电池式设备上的无线视频的应用中,并且还用于视频会议应用中。H.263标准是一个典型的标准,它规定低比特率下进行视频编码的比特流语法和算法。这些算法包括变换编码、运动估计/补偿、系数量化和行程长度编码。除了基线技术要求外,该标准的第2版还支持十六个可协商选项,从而提高了编码性能并提供误差恢复能力。
在低比特率下编码的视频会有明显的失真,特别是那些被分类为具有高级动作的视频,即活动运动块。如上所述,在此描述的实施例所涉及的是H.263标准,但这些实施例也可以采用其它任意适当的视频编解码器标准。H.263的特征中的一些特性在下文中进行描述只是为了提供信息的目的,而并不意味着本发明只能使用H.263标准。H.263标准的一个特性是在H.263标准中不存在图像组(GOP)和较高层。在由单个一个帧内(I帧)以及其后的一个帧间(P帧)长序列构成的基线编码序列的位置,由于在连续帧之间消除了时间冗余,因此该P帧长序列提供较大的压缩比。但是,运动估计/运动补偿(ME/MC)也产生时间相关性,使得在有损编码处理过程中产生的误差将在解码处理过程中累积。I帧的缺乏会防止解码器破坏这种误差累积。H.263标准具有一种强制更新机制,这样,在编码处理过程中,编码器必须每132次至少一次把一个宏块编码为帧内块。图4所示为强制更新机制的效率示意图。如图4所示,该视频的PSNR随机波动,但对于在该序列后面的帧来说却不会在任何一个方向上漂移。
图5所示为在H.263标准中确定半像素值的示意图。众所周知,对于运动补偿来说,H.263标准使用半像素内插法。在该标准中,半像素内插由0.5分辨率(即<7.5,4.5>)的运动矢量表示。编码器可以仅仅规定水平方向上或垂直方向上的内插,也可以规定水平和垂直两个方向的内插。如图5所示,通过在半像素位置周围的整数像素位置的双线性内插可以得到半像素值。像素位置A150-1、像素位置B150-2、像素位置C150-3和像素位置D150-4表示整数像素位置,而位置e152-1、位置f152-2、位置g152-3表示半像素位置。水平方向上的内插可表示为e=(A+B+1)>>1,而垂直方向上的内插可表示为f=(A+C+1)>>1。在水平及垂直方向上的内插可表示为g=(A+B+C+D+2)>>2。
图6A和6B分别是基线空间视频解码器和压缩域视频解码器的示意图。图6B的框图重新排列了图6A中所示的空间域视频解码器中的一些功能块。特别是把RLD132和IDCT134移动到MC128反馈回路之后。这种排列可以在压缩域中保持视频的内部表示。图6B的配置便于紧接在MC128反馈回路之后插入压缩域后处理模块。可以理解,某些视频处理,如合成、定标和数据分块等在压缩域中比它们在空间域中的对等情况下要快。但是,从视频编解码器的角度来说,空间编码器与压缩域解码器并不能恰当地匹配。如图6B所示,在沿着解码流水线的几个点上,压缩域视频解码器不同于图6A的空间域视频解码器。不仅仅是块的重新排列,不同的点表示非线性运算,如剪裁和修圆(rounding)。这些非线性点在两个域之间产生具有不同PSNR测量结果的视频。
非线性点被标记为(i)、(ii)、(iii)、(iv)和(v)。在图6A的空间解码器中,IDCT块134把输入的8x8块从频域变换至空间域。空间域值表示彩色信道(Y,Cr,Cb)的像素值或预测误差值。在图6A的点(i),空间值被剪裁至范围(-255≤x≤256)。需要指出,在图6B中,对于DCT系数来说,在这一级并没有等效的剪裁运算。第二个不同点出现在运动补偿期间。图6A中的MC块128回送来自MEM130的当前运动矢量所涉及的像素值。在图6A的点(ii),半像素(HP)内插160如果被规定的话,则求出相邻像素值的平均值并将其结果四舍五入为最接近的正整数。在图6B的点(iv),半像素(HP)内插160对DCT系数直接进行运算并将其结果四舍五入为最接近的正或负整数。另一个不同点出现在把预测误差添加到预测值之后。在图6A的点(iii),该求和值表示在块162b被裁剪至范围(0≤x≤255)的像素值。需要指出,在图6B中,像素值的类似裁剪从运动补偿反馈回路移动到在块162(点v)的解码流水线的最后一级。
本领域技术人员可以理解,MEM130是一个帧缓冲器,它存储运动补偿的前一帧。对于空间域解码器来说,该帧缓冲器分配足够的存储器来存储输入帧尺寸的(Y,Cr,Cb)值。例如,以4∶2∶0采样的CIF视频需要大约200千字节的存储器。由于MEM130是在视频解码器中使用的最大的唯一存储源,因而,在此定义的混合数据结构的逆运动补偿方法有利于在压缩域解码流水线中减少对MEM的使用。在一个实施例中,可以实现两到三倍的存储压缩,同时不会显著影响解码视频的质量。
图7所示为根据本发明的一个实施例在编码和解码处理过程中的块变换框图。虚线170以上的变换序列描述了在运动补偿/运动估计之后用于I帧中的一个块或P帧中的一个块的视频编码器使用的空间压缩方法。像素块172是一个全8x8矩阵。此时,在空间域中的任何压缩或截断都会直接影响所感觉到的重建块的质量。然而,在DCT变换之后,变换矩阵174在低频下以较大的项进行压缩。在块176中,量化步骤还通过在高频处把较小的项减小为零来压缩该块。在块176中强调的锯齿状扫描把DCT系数从低频向高频排序。行程长度编码则去除了零系数,而且在二值单元的紧致列表中只表示非零DCT系数,如在行程长度表示178中的行程和等级。因此,在DCT域中的存储压缩可通过研究存储和存取非零DCT系数的行程长度表示的有效数据结构和方法来实现。
在一个实施例中,半压缩(SC)表示是一种存储器有效行程长度表示。非零DCT系数的行程长度表示类似于图7的行程长度表示178和180。但是,还有两种形式的改进。每个二值单元(行程、等级)以一种复合16比特值的形式来描述RL=二进制‘rrrr111111111111’(9)12个最低有效位(‘111111111111’)通过块184定义去量化DCT系数的值,块184通过量化块182得到。可以理解,块184是DCT域表示的一个例子。本领域技术人员可以理解,DCT系数值的范围是从-2048-2047。图7的块186是在块184执行IDCT运算之后的块172的重建块。四个最高有效位(‘rrrr’)定义行程的值。根据8x8块中的锯齿状扫描,该行程表示相对于最后的非零DCT系数的位置的非零DCT系数的位置。由于一个非零系数的行程可能超过15,因此定义一个转义序列来把该行程分成较小的单元。转义序列RL=‘F0’被定义为表示15个零系数的行程之后是一个零幅度的系数。
为了降低存储需求,必须研究用以存储和存取SC表示的数据结构。可以考虑下面的数据结构阵列、链接表、矢量及混合。在研究这些结构时,必须考虑存储压缩的要求与保持低的计算复杂性的要求之间的平衡,这将在下文中参考表1作进一步讨论。尽管SC表示提供了目标存储压缩,但某些数据结构在以下三个方面将极大地增加解码器的计算复杂性。首先,采用二字节表示不能立即获得(行程,等级)的值。每次存取和修改这些值都需要紧缩和拆开比特的功能。其次,紧致行程长度表示使得运动补偿变复杂。第三,为了把预测误差增加到预测值中,需要进行分类和合并运算。
图8表示在行程长度表示中使用分离索引寻找每个8x8块的开始位置的示意图。如果也被称作矢量的单一表190被用于存储一帧中的所有8x8块192-1到192-4,则在运动补偿期间存取一个特定DCT块需要一个分离索引来查找它们的开始位置,这将使运动补偿变得复杂。
图9A和9B分别表示基于阵列的数据结构和表数据结构中把预测误差增加到预测值中时所需的分类和合并运算。在图9A中,基于阵列的数据结构只需要在相应阵列索引的数值相加。但是,基于阵列的数据结构不能提供存储压缩优点。在图9B中,表(或矢量)数据结构需要额外的分类和合并运算。也就是说,合并算法需要插入和删除功能,从诸如矢量这样的数据结构的计算复杂性的角度来考虑,这是非常昂贵的。特别是,如果索引相等,则DCT系数可被加或减,如(0,20)+(0,620)=(0,640)。如果误差索引在预测索引之前,则可以插入DCT系数,如插入(0,-3)。如果DCT值的相加等于0,如(1,13)+(4,-13)=(1,0),则删除DCT系数。
表1比较各种数据结构的存储压缩比和计算成本。尽管基于阵列的数据结构除了预测更新所需的64个加法运算之外不会带来额外的计算成本,但DCT系数阵列提供的存储压缩不会高于像素阵列的存储压缩,这是因为每个DCT系数需要存储两个字节而不是一个字节。半压缩(SC)表示的链接表或矢量提供的存储压缩是像素阵列所提供的2.5倍。但是,任何一种解决方案都不是优化方案,这是因为矢量的插入/删除成本很贵,特别是在矢量中间的插入和删除,并且链接表的存储开销也很贵,这是因为在该表中的每个单元都要产生内部指针。
表1

SC表示的混合数据结构提供了表1中的各个竞争的利害关系之间的优化平衡。研究该混合数据结构以便利用图9A的阵列结构的低计算成本和图9B的矢量结构的高压缩比。该混合数据结构由一个固定尺寸阵列和一个可变尺寸溢出矢量组成,其中该固定尺寸阵列的每个块保存固定数目的DCT系数,而该可变尺寸溢出矢量则存储超过固定尺寸阵列分配的那些块的DCT系数。可以理解,该固定尺寸阵列可以被配置成每个块保存任意适当数目的DCT系数,其中DCT系数的数目少于64个。当然,随着固定尺寸阵列的增大,存储压缩量则会降低。在一个实施例中,该固定尺寸阵列被配置成每个块保存8个DCT系数。
图10所示为根据本发明一个实施例的包括阵列结构和矢量结构以利于存储压缩和计算效率的混合数据结构的示意图。DCT块200-1、200-2和200-n包括零DCT系数和非零DCT系数。可以理解,DCT块200-1至200-n表示上述参考图2所讨论的DCT域表示。另外,块200-1至200-n与视频数据的一帧中的块有关,如图7的块184。DCT块200-1至200-n中的每个块的非零DCT系数被识别并被插入固定尺寸阵列202的数据结构中。固定尺寸阵列202包括固定尺寸块204-1至204-n。在一个实施例中,每个块204-1至204-n被测定尺寸以存储一个8x1数据结构中的8个DCT系数。可以理解,本发明并不限于存储8个DCT系数的块,而是可以使用任意适当的尺寸。如上所述,存储压缩量随着块容量的增加而下降。
再次参考图10,在DCT块200-1至200-n的任意一个块中有多于8个非零系数的情况下,超过相应固定尺寸块204-1至204-n的容量的非零DCT系数被放置在溢出矢量206中。溢出矢量206被配置为一个可变尺寸溢出矢量,即该溢出矢量是动态的。例如,块200-1包括9个非零DCT系数A1-A9。在此,DCT系数A1-A8被复制到固定尺寸块204-1,而DCT系数A9则被复制到溢出矢量206中。块200-2包括10个非零DCT系数B1-B10。在此,DCT系数B1-B8被复制到固定尺寸块204-2,而DCT系数B9和B10则被复制到溢出矢量206中,对于一帧中的每个块来说均是如此类推。索引表208包括用于识别在溢出矢量206中的表目的相应固定尺寸块204-1至204-n的表目。由于每个表目是1个字节,因此索引表的大小可以忽略不计。因此,对于对应于DCT块200-1至200-n的数据帧来说,来自固定尺寸阵列202和溢出矢量206的数据组合形成图像210。可以看出,这可以明显节省存储空间。也就是说,大部分情况下,DCT块200-1至200-n是从64个零和非零系数减少为可存储到固定尺寸块204-1至204-n中的8个或者更少的非零系数。当然,也可以提供更多或更少的非零系数,其中超过8个的非零系数被存储到溢出矢量206中。
图11A至11C是根据本发明的一个实施例在确定混合数据结构的溢出矢量和固定尺寸阵列的固定尺寸块的容量时所估计的因数的示意图。在图11A中,两个典型CIF序列的每个亮度块的平均非零DCT系数的数目由线条220和222表示。每个块的非零DCT系数的数目范围是三到七。也就是说,在64个系数当中,平均只有2-7个系数是非零系数。使用图11A的信息作为参考,从图11B可以看出,溢出矢量的尺寸随着固定尺寸阵列的增加而下降,从而最小化了该矢量的插入和删除成本。这里的线条220-1对应于图11A的线条220的CIF序列,而线条222-1对应于图11A的线条222的CIF序列。本领域技术人员可以理解,存储压缩随着固定尺寸阵列容量的增加而下降。另外,图11C还显示了该阵列的负载因数同样也下降,这表明许多阵列是空的。在一个实施例中,选择每个块保存8个DCT系数的固定尺寸阵列。同样,线条220-2对应于图11A的线条220的CIF序列,而线条222-2对应于图11A的线条222的CIF序列。这种选择把溢出矢量的尺寸减少到大约200个DCT系数,并把负载因数保持在大约9%到大约15%之间。对于本领域技术人员来说,显然,固定阵列的大小并不限于每个块8个系数,而是可以选择每个块任意适当的系数数目。另外,固定尺寸阵列的各个块可具有任意适当的配置。例如,能够保存8个系数的块可被排列为8x1块、4x2块等,而能够保存9个系数的块可被排列为9x1块、3x3块等。
图12所示为根据本发明的一个实施例用于降低解码比特流的存储要求的方法操作的流程图。该方法开始于操作230,其中视频比特流被接收。在一个实施例中,该比特流是低速比特流。例如,视频流可与一种视频编码标准相关,如H.263、运动图像专家组(MPEG-1/2/4)、H.261、联合图像专家组(JPEG)等。该方法随后进行到操作232,其中该比特流的帧被解码为与该帧相关的每个数据块的离散余弦变换(DCT)域表示。在此,视频由解码器的前两级处理,解码器可以是图2、6B和15所示的解码器。也就是说,视频数据经过可变长解码器级和去量化级的处理,以把压缩比特流解码为DCT域表示。可以看出,DCT域表示是压缩态格式的。该帧是一次解码一个块的。该方法随后前进到操作234,其中识别DCT域表示的非零系数。这里,在与数据块的DCT域表示相关的64个DCT系数当中,64个DCT系数中的较少一部分一般是非零系数。
依然参考图12,该方法随后前进到操作236,其中混合数据结构被组装。该混合数据结构包括一个固定尺寸阵列和一个可变尺寸溢出矢量。一个典型的混合数据结构是参考图10所示的包括了多个固定尺寸块的固定尺寸阵列和可变尺寸溢出矢量。该方法随后前进到操作238,其中DCT域表示的非零系数被插入到混合数据结构中。正如参考图10所描述的,一个视频数据块的DCT域表示的非零系数与固定尺寸阵列中的一个固定尺寸块相关。如果非零系数的数目超过与视频数据块相关的固定尺寸块的容量,则剩余的非零系数被存储到可变尺寸溢出矢量中。在一个实施例中,一个索引表把溢出矢量中的数据映射到固定尺寸阵列的适当的固定尺寸块中。因此,通过混合数据结构和非零系数的存储可以降低存储要求。特别是,在不损失任何视频质量的情况下可以把存储需求降低50%。
可以看出,与一帧数据相关的每个DCT域表示的非零系数被存储到混合数据结构中。该帧的存储数据随后被组合和解压缩以用于显示。在一个实施例中,一旦下一帧被解码为DCT域表示而存储到混合数据结构中,则与前一帧相关的混合数据结构中的数据被清除。正如下文将作进一步解释的,在压缩域中要对所存数据执行逆运动补偿。对于全像素逆运动补偿来说。逆运动补偿使用整数近似,而对于半像素逆运动补偿来说则使用因子分解。
空间H.263视频解码器的主要部分包括行程长度解码、逆DCT和逆运动补偿。对于基线数据来说,通过使用定时剖面测量仪(profiler),可以测量1.1GHz奔腾4处理器上的TELENOR’S H.263视频解码器的性能。通过解码基线视频并忽略系统调用,该剖面测量仪可测量其解码144帧所需的总时间,并详述每个部分的定时特性。表2是空间H.263视频解码器的定时概况,并且强调选择功能的定时结果。
表2

表3是非优化压缩域H.263视频解码器的定时概况。一个典型的解码器流水线配置是参考图2所示的解码器。
表3

如表2所示,空间域视频解码器大约用1.2秒的时间解码144帧。其大部分时间用在了图像显示功能上,该功能把每帧的彩色值从YUV转换为RGB,以便在诸如WINDOWSTM这样的合适的操作系统上显示。诸如行程长度编码、逆DCT和逆运动补偿这样的功能所用的时间是解码视频所需的总时间的大约25%。在空间域中,逆运动补偿特别快。在此,全像素运动补偿只设置指向存储器或帧缓冲器中的一个位置的指针并复制数据块,而半像素运动补偿在存储器中设置指针并使用移位算子内插数值。相反,表3强调非优化压缩域视频解码器的一些定时结果。非优化压缩域解码器解码同样的144个帧大约需要13.67秒。
压缩域解码器的主要瓶颈是逆运动补偿功能。如前面的公式(8)所示,在压缩域中的全像素逆运动补偿要求四个(TMi)项之和,其中TMi被定义为以变换矩阵Cij左乘和右乘8x8矩阵块F’i。
Fk=TM1+TM2+TM3+TM4(10)式中TMi=Ci1F’iCi2(11)表4定义全像素变换矩阵Cij。这里,S表示8x8DCT矩阵,而Uk和Lk在上面的公式3-6中定义。
表4

每个8x8矩阵乘法需要512次乘法运算和448次加法运算。众所周知,矩阵乘法在计算上是非常贵的。表5比较了用于如图2、6B和15所示流水线的压缩域视频流水线的优化方案,如矩阵近似、矩阵因子分解、宏块的共享块以及混合方案。压缩域视频解码流水线应当以每秒约15-25帧(fps)的速率解码,以向手持设备提供可接受的质量,其中该手持设备支持诸如每个数据帧352行且每行288个像素的共用中间格式这样的视频格式。
表5

增强压缩域视频解码流水线的一种方案是利用块对准来减少公式(10)中的TMi运算数。例如,解码一个序列的144帧,并以所有这些块的36.7%来测量块对准率。图13所示为减少矩阵乘法的块对准的三个例子的示意图。图中分别示出了块对准实例240,其中(w=8,h=4)、块对准实例242,其中(w=4,h=8)和块对准实例244,其中(w=8,h=8)。在这些实例240、242和244的每个实例中,当与相应块的重叠为零时,则去除TMi运算。但是可以看出,在DCT域(压缩域)中,当规定半像素内插时,块对准并不会节省存储空间。下面给出在压缩域中的半像素逆运动补偿的公式。对于(w=8,h=8)的例子来说,如公式12和13所示,半像素内插仍然需要四个TMi运算。表6提供了定义半像素变换矩阵Chpij的信息。
Fhpk=TMhp1+TMhp2+TMhp3+TMhp4(12)TMhpi=Chpi1F′iChpi2(13)表6

应当指出,即使对于完全对准的DCT块来说,半像素内插也会产生一个块与相邻块的重叠。图14所示为完全对准的DCT块的半像素内插的示意图。半像素内插与相邻块重叠一个像素的宽度和一个像素的高度。
通过重新排列图2所示解码器的功能块可以提高压缩域解码流水线中的处理速率。参考表2和3,在空间域中的逆DCT块的处理时间(3ms)远远小于在压缩域中的处理时间(652ms)。在空间域中,在反馈回路之前把逆DCT应用于帧内编码块和误差系数。特别是,帧内编码块和误差系数在视频的所有块中所占的比例小于15%。逆DCT函数的其它85%的时间就被跳过了。在压缩域中,逆DCT在流水线的最后一级被应用到视频的每一帧的100%的块中。
图15所示为根据本发明的一个实施例用以增强视频数据处理的压缩域视频解码器的功能块的重新排列的示意图。在此,这些功能块被重新安排,并且压缩域流水线在两个点被分开。第一个分开点出现在VLD124和DQ126之后的点(i)252。在上支路中,流水线保持存储压缩128的内部DCT域表示。在下支路中,流水线把RLD和IDCT向上移到前面,以便把误差系数解码至空间域。第二个分开点出现在运动补偿(MC)期间的点(ii)254。在运动补偿期间,空间域输出可根据公式(7)得到。该输出可直接添加到误差系数中,以在点(iii)256重建将在显示器136上显示的当前块。DCT块250被插入到反馈回路中,用以保持内部DCT表示。在点(i)252的RLD132和IDCT134与在点(ii)254的DCT的组合所需的计算少于在图2中的流水线的最后一级的IDCT块所需的计算。表7表示与图15相关的重新排列,它把速度提高20%,可以与这里所述的其它优化方案组合。
表7

<p>表1

从表1可以看到,与比较样品C及D相比,本发明的样品A及样品B,其过充电时内部压力的上升得到了抑制。此外,与比较样品C及D比较,样品A及B在大电流放电时的放电容量及放电电压高。
样品A及B的特性高,是由于在实施形态中说明的本发明的效果。与此相对,由于比较样品C只在极板的最外表面形成了石墨粉末层,因此负极表面的导电性提高,但除此以外部分的导电性并没有提高。因此,在比较样品C中,氧气消耗能力及大电流充放电特性均不足。此外,在比较样品D中,由于结合在氢吸藏合金表面的石墨粒子比合金的导电性低,因此由于妨碍了氢吸藏合金之间的接触,电极的导电性降低。其结果是在比较样品D中,氧气消耗能力及大电流充放电特性均不足。
因此,矩阵-向量相乘已经变成了一系列公式。上述的公式序列需要5个乘法运算和21个加法运算。在公式(24)中的矩阵乘法JhG’0F’需要104个乘法运算和164个加法运算。因此,这就实现了比公式(8)中的矩阵乘法CijF’所需的乘法运算数少5倍的运算。另外,在这个矩阵运算期间并不会丧失精确度,该矩阵运算使用了32比特浮点算法。但是,参考表5可以看出,因子分解对压缩域流水线的加速作用只比矩阵-矩阵快9%。因此,额外的存储器存取会把帧速率减慢到低于大约15到25fps的目标速率,因此,仅仅有因子分解是不够的。
为了进一步提高逆运动补偿的速度,可以去掉公式(11,13)中的基本TM运算所需的乘法运算。全像素和半像素矩阵Cij和Chpij被近似处理为最接近的2-5次方的二进制数字。通过以二进制数字来近似处理这些矩阵,可以使用基本整数运算来进行矩阵乘法运算,基本整数运算可以是右移位和加法,从而求解公式(10,12)中的逆运动补偿。例如,下面将检验全像素矩阵C11,其中h=1。应当理解,也可以利用类似的方式来近似处理其它矩阵。 其中,矩阵中的每个元素被四舍五入为最接近的2的乘方,矩阵(47)为 由于DCT元在[-2048到2047]的范围之内,因此DCT系数的直接漂移将会使得大部分值为零。为了保持中间结果的精确度,我们在整个解码流水线中以28定标每个DCT系数。这个定标因数是在量化和去量化步骤期间引入的,这样就不会带来额外的运算。
而且,根据乘积之和的法则(见公式(48-50)),通过组合各项,我们可以执行快速矩阵乘法运算。
u1=0.1250v1-0.1875v2+0.1875v3-0.1250v4+0.1250v5-0.1250v6+0.0625v7-0.0625v8(48)u1=(v1>>3)-(v2>>3)-(v2>>4)+(v2>>3)+(v3>>4)-(v4>>3)+(v5>>3)-(v6>>3)+(v7>>4)-(v8>>4)(49)u1=(v1-v2+v3-v4+v5-v6)>>3+(-v2+v3+v7-v8)>>4 (50)u=C^11v]]>(其中u={u1,....u8},而v={v1,....v8})的运算可以计算如下u1=(v1-v2+v3-v4+v5-v6)>>3+(-v2+v3+v7-v8)>>4(51)u2=(v3-v2)>>2+(v1-v4+v5-v6+v7)>>3+(v1-v4+v5-v8)>>4 (52)u3=(v1+v3-v4+v5-v6)>>3-(v2>>2)+(v1+v3-v4+v5+v7-v8)>>4 (53)u4=(v1-v2+v3-v4+v5-v6)>>3+(v3-v2-v4+v7-v8)>>4 (54)u5=(v1-v2+v3-v4+v5-v6)>>3+(-v2+v3+v7-v8)>>4(55)u6=(v1-v2+v3-v4+v5)>>3+(v7-v6)>>4 (56)u7=(v1+v3-v4+v5-v6+v7)>>4+(v2)>>3 (57)u8=(v1-v2+v3-v4+v5)>>4 (58)该矩阵近似总共需要17个右移和57个加法运算。公式(8)中的矩阵近似 需要136个右移和456个加法运算。因此,与矩阵乘法相比,可以在保证浮点精确度的情况下明显的降低计算的复杂性。实际上,从表5可以看出,近似技术把压缩域流水线的速度提高了31%,这是足以能够实现大约15fps的目标帧速率的。但是,采样视频的PSNR会降低,并且会在中等运动区中表现出明显的漂移。
根据视频运动选择应用的变换矩阵TM的混合因子分解/整数近似技术可以提供大约15到25fps的理想帧速率,同时保持可接受的质量。如上所述,整数近似技术降低了解码器的复杂性,但也降低了解码视频的PSNR。同时,因子分解法能够保持良好的PSNR,但不能降低解码器的复杂性来满足希望的帧速率。通过把整数近似的低复杂性与因子分解法的高精确度结合在一起,可以获得支持低速视频比特流的压缩域视频解码流水线。
这里已经讨论了两种类型的变换矩阵TMi,在公式(11)中所示的全像素运动补偿;以及TMhpi,在公式(13)中所示的半像素运动补偿。使用TMi的近似矩阵的全像素运动补偿的计算复杂性只有使用8x8浮点矩阵的计算复杂性的28%。但是,当把近似技术直接应用到半像素变换矩阵TMhpi上时,可以看出,使用TMhpi的近似矩阵的半像素运动补偿降低了PSNR(见表8)并在解码视频中产生可见的失真。产生这些误差有两个原因。首先,半像素变换矩阵TMhpi对近似技术更为敏感。参考表8,TMhpi是由许多比TMi多的项构成的复合矩阵。其次,正如上文中参考图6A和6B所描述的,在半像素内插期间的非线性处理与近似技术产生的误差相结合会导致误差的累积,而这尤其可见于中到高度运动的区域中。
把因子分解法有选择地应用于半像素矩阵可以消除这些误差。如上所述,因子分解法能够保持浮点的精确度,这样就可以最小化所述的误差。例如,因子分解法把与TMhpi的矩阵乘法减少为类似于公式(25-45)中所示的一系列公式。这些公式可保持32比特的浮点精确度,这样就不会产生近似误差。而且,在运动补偿期间,因子分解法把DCT块解码至空间域,这样,参考图15所述的优化方案就可以与此处所述的优化方案组合在一起。表5表示混合法满足15fps的目标帧速率,而表8显示出混合法的PSNR提供了可以接受的PSNR。
表8


图16是根据本发明的一个实施例在压缩域中执行逆运动补偿的方法操作的流程图。该方法开始于操作260,其中接收压缩比特流中的视频数据帧。在一个实施例中,该比特流是低速比特流。例如,该比特流可以与一个已知的视频编码标准相关,如MPEG4、H.263、H.261等。该方法随后前进到操作262,其中,该比特流的帧中的一个块被解码为离散余弦变换(DCT)域表示。在此,视频经过了解码器前两级的处理,解码器可以是图2、6B和15所示的解码器。也就是说,视频数据经过可变长解码器级和去量化级的处理,以把压缩比特流解码为DCT域表示。可以看出,DCT域表示是压缩态格式的。该方法随后前进到操作264,其中,与DCT域表示相关的数据被存储到混合数据结构中。参考图10和12所示的混合数据结构是一种合适的混合数据结构。在一个实施例中,该混合数据结构降低了对于诸如蜂窝电话、PDA、web输入板、便携式个人计算机等等这些具有显示视频数据的显示屏的便携式电子设备的存储要求。
依然参考图16,该方法前进到操作266,其中,在压缩域中对与DCT域表示有关的数据执行逆运动补偿。在此,逆运动补偿包括有选择地应用上文中参考表5和8所述的混合因子分解/整数近似技术。该方法随后前进到判断操作268,其中,混合因子分解/整数近似方法识别与正在被处理的视频数据的块相关的变换矩阵的类型。在一个实施例中,变换矩阵的类型被通过正在被解码的比特流的比特组中的信息进行检测。如果变换矩阵是半像素矩阵,则该方法前进到操作步骤270,其中,使用因子分解技术来解码比特流。在一个实施例中,如上文中参考公式25-45所示的,因子分解技术把矩阵乘法减少为一系列公式。也就是说,矩阵相乘被矩阵置换所取代。如果在判断操作268中确定变换矩阵是全像素矩阵,则该方法前进到操作272,其中,使用整数近似技术来解码比特流。在此,矩阵乘法可使用基本整数运算来执行,以求解逆运动补偿,这正如上文中参考公式46-58所述的情况一样。因此,通过有选择地使用混合因子分解/整数近似技术,可执行压缩域中的处理,从而提供质量可以接受的足够的帧速率,以便能够降低存储要求,而这可利用上述的混合数据结构来实现。
图17是根据本发明的一个实施例有选择地应用混合因子分解/整数近似技术的示意图。显示屏280用于呈现由低比特率视频所确定的图像。例如,显示屏280可以与诸如PDA、蜂窝电话、便携式个人计算机、web输入板等的便携式电子设备有关联。球282在视频的垂直方向上移动。块284围绕在该移动物体的圆周上,并且被认为属于中或高度运动区,而且是逐帧变化的。块286表示背景,而且每一帧之间基本保持相同。因此,在压缩比特流的解码期间,一帧数据的块284将与逐帧变化的高度运动区相关,而块286则在每帧之间基本上保持不变。与高度运动区相关的块284在应用解码技术即因子分解技术期间需要较高的精确度,而块286基本不变,因此可以允许较低复杂性的内插方法,即整数近似。因而,因子分解技术被应用到了中和高度运动区的块284中,而整数近似技术被应用到了背景块286。如上所述,嵌入比特流中的信息被检测,以用于判断一个块是否与高度运动有关,即通过因子分解技术应用半像素运动补偿,或者该块是否是背景数据,即通过整数近似技术应用全像素运动补偿。在一个实施例中,参考图2、6B和15的运动矢量规定运动补偿是半像素还是全像素运动补偿。
可以理解,上述实施例可以用软件或硬件来实施。本领域技术人员可以理解,该解码器可以体现为一个包括用以提供上述功能的逻辑门的半导体芯片。例如,可采用硬件描述语言(HDL),如VERILOG来综合固件和逻辑门的布局,以提供这里所述的必须功能,从而提供视频解码器的一个硬件实施方案。
图18所示为根据本发明的一个实施例的便携式电子设备的简化示意图,该电子设备的解码器电路能够使用混合数据结构来降低存储要求并应用混合因子分解/整数近似技术来有效地解码比特流数据。便携式电子设备290包括中央处理单元(CPU)294、存储器292、显示屏136和解码器电路298,所有这些都通过总线296彼此通信。如上所述,解码器电路298包括用以提供降低在压缩域中的视频处理和执行逆运动补偿的存储要求的功能的逻辑门。本领域技术人员可以理解,解码器电路298可以包括在包含解码器电路的芯片内的存储器,也可以包括在芯片之外的存储器。
图19所示为根据本发明的一个实施例的图18所示解码器电路的更为详细的示意图。输入比特流122由解码器298的可变长解码器(VLD)电路300接收。本领域技术人员可以理解,解码器电路298可以位于印制电路板的半导体芯片上。VLD电路300与去量化电路302通信。VLD电路300向运动补偿电路306提供运动矢量信号。视频处理存储器308存储来自去量化电路302的处于压缩域中的视频的内部表示。DCT电路304保存来自运动补偿电路306的视频的内部DCT表示。行程长度解码(RLD)电路310和逆离散余弦变换(IDCT)电路312解压缩视频数据以便在显示屏136上显示。可以看出,在此描述的电路块提供的功能类似于参考图2、6B和15所述的块/级的功能。
总之,上文所述的本发明提供了一种压缩域视频解码器,它能够降低视频存储量,并在压缩域中执行逆运动补偿。存储量降低是通过混合数据结构来实现的,该混合数据结构能够存储和处理参考帧的非零DCT系数,从而定义当前帧。该混合数据结构包括一个固定尺寸阵列,该阵列具有与视频数据的一帧中的每个块相关的固定尺寸块。该混合数据结构中包括一个可变尺寸溢出矢量,用以容纳超过固定尺寸块的容量的非零系数。通过该压缩域视频解码器实现的存储压缩量是空间域视频解码器的两倍。压缩域视频解码器的逆运动补偿已被优化,从而提供质量可以接受的视频的每秒大约15-25帧。一种混合因子分解/整数近似法被有选择地应用到正在被解码的块中。确定应用内插因子分解/整数近似技术中的哪一个的标准是根据变换矩阵而定的,即因子分解应用于半像素矩阵,而整数近似应用于全像素矩阵。可以理解,在一个实施例中,这里描述的压缩域流水线可被结合到MPEG-4简化(simple profile)视频解码器中。而且,这些实施例能够进行各种应用,如电池式(CPU限制的)设备上的可定标功率解码,以及视频会议系统的合成。
考虑到上面的实施例,可以理解,本发明可采用各种计算机实施的涉及存储到计算机系统中的数据的运算。这些运算包括要求物理量的物理处理的运算。尽管并不是必须的,但通常这些量的形式是能够被存储、传送、组合、比较和处理的电或磁信号。另外,所执行的处理通常指的是产生、识别、确定或比较。
上述的本发明可以利用其它计算机系统配置来实施,这些计算机系统配置包括手持设备、微处理器系统、基于微处理器或可编程的消费电子产品、迷你计算机以及大型计算机等。本发明也可以在分布式计算环境下实施,在这种环境下,任务是由通过通信网络链接的远程处理设备来执行的。
本发明也可以体现为计算机可读介质上的计算机可读代码。该计算机可读介质是能够存储之后可由计算机系统读出的数据的任何一种数据存储设备。该计算机可读介质的例子包括硬驱、网络连接的存储器(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其它光及非光数据存储设备。该计算机可读介质也可分布于网络耦合的计算机系统当中,这样,就能够以分布式来存储和执行该计算机可读代码。该计算机可读介质也可以是在其中体现计算机代码的电磁载波。
尽管为了充分地理解本发明已经在前面对其进行了详细描述,但显然,在所附权利要求的范围内也可以进行某些变化和改进。因此,本发明的这些实施例只是示意性的,它们并不能限制本发明,并且本发明并不限于这里所给出的细节,在所附权利要求的范围和等效情况下可以对其进行改进。在权利要求中,除非是明确指出,否则那些元件和/或步骤并不表示任何特定的操作顺序。
权利要求
1.一种减小对解码比特流的存储要求的方法,包括接收视频比特流;把比特流的一帧解码为变换域表示;识别该变换域表示的非零系数;组装包括一个固定尺寸阵列和一个可变尺寸溢出矢量的混合数据结构;并且把该变换域表示的非零系数插入到该混合数据结构中。
2.如权利要求1的方法,其中该视频比特流是低速视频比特流。
3.如权利要求1的方法,其中该方法中把比特流的一帧解码为变换域表示的操作包括利用一个可变长解码器和一个去量化块处理该比特流。
4.如权利要求1的方法,其中该固定尺寸阵列包括固定尺寸块。
5.如权利要求4的方法,其中该固定尺寸块用于存储变换域表示的8个非零系数。
6.如权利要求1的方法,其中该方法中把变换域表示的非零系数插入到混合数据结构中的操作包括针对该帧的每个块,把固定尺寸阵列中的系数映射到可变尺寸溢出矢量中的相应系数上。
7.一种解码视频数据的方法,包括接收压缩比特流内的视频数据的一帧;在压缩域中把该帧的一个块解码为变换域表示;定义一种混合数据结构;把与该变换域表示有关的数据存储到该混合数据结构中;在压缩域中对与变换域表示有关的数据执行逆运动补偿;并且在对数据进行逆运动补偿之后,解压缩该数据以便于显示。
8.如权利要求7的方法,其中该混合数据结构包括一个固定尺寸块的固定尺寸阵列和一个可变尺寸溢出矢量。
9.如权利要求7的方法,其中该方法中把与变换域表示相关的数据存储到混合数据结构中的操作包括识别该变换域表示的非零系数;把非零系数存储到该混合数据结构的固定尺寸阵列的一个固定尺寸块中,直到达到该固定尺寸块的容量为止;以及在达到固定尺寸块的容量之后,把超过固定尺寸块容量的非零系数存储到溢出矢量中。
10.如权利要求7的方法,其中压缩比特流是低速比特流。
11.如权利要求7的方法,其中该方法中在压缩域中对与变换域表示相关的数据执行逆运动补偿的操作包括把一种混合因子分解和整数近似技术应用到与变换域表示相关的数据中。
12.一种具有用于重排低速比特流数据以便存储到混合数据结构中的程序指令的计算机可读介质,包括识别与一帧数据的编码块相关的非零变换系数的程序指令;把非零变换系数排列为一个固定尺寸阵列的程序指令;判断非零变换系数的数量是否超过该固定尺寸阵列的容量的程序指令;把超过该固定尺寸阵列容量的非零变换系数存储到可变尺寸的溢出矢量中的程序指令,以及把非零变换系数从压缩域变换到空间域的程序指令。
13.如权利要求12的计算机可读介质,其中该固定尺寸阵列包括多个固定尺寸块。
14.如权利要求13的计算机可读介质,其中每个固定尺寸块被配置来存储最多八个非零变换系数。
15.如权利要求12的计算机可读介质,还包括程序指令,用于针对该帧数据的每个块,把固定尺寸阵列中的系数映射到可变尺寸溢出矢量中的相应系数上。
16.如权利要求12的计算机可读介质,还包括利用一种混合因子分解和整数近似技术对非零变换系数执行逆运动补偿的程序指令。
17.一种电路,包括视频解码器集成电路芯片,该视频解码器集成电路芯片包括接收与一帧视频数据相关的数据比特流的电路;把数据比特流解码为变换域表示的电路;把混合数据结构中的变换域表示的非零变换系数排列在与视频解码器相关的存储器中的电路;以及解压缩变换域表示的非零变换系数以便于显示的电路。
18.如权利要求17的电路,其中该比特流是H.263比特流。
19.如权利要求17的电路,其中该存储器与视频解码器集成电路芯片分离。
20.如权利要求17的电路,还包括利用一种混合因子分解和整数近似技术执行逆运动补偿的电路。
21.如权利要求17的电路,其中该存储器是静态随机存取存储器。
22.一种显示视频图像的设备,包括中央处理单元(CPU);随机存取存储器(RAM);用于呈现图像的显示屏;把视频比特流变换为变换域表示的解码器电路,解码器电路能够把混合数据结构中的变换域表示的非零变换系数排列到与该解码器电路相关的存储器中,解码器电路包括在逆运动补偿期间有选择地应用混合因子分解/整数近似技术的电路;以及与CPU、RAM、显示屏和解码器电路进行通信的总线。
23.如权利要求22的设备,其中该设备是便携式电子设备。
24.如权利要求23的设备,其中该便携式电子设备从个人数字助理、蜂窝电话、web输入板和便携式个人计算机所构成的组中选择。
25.如权利要求22的设备,其中该混合数据结构包括一个具有多个固定尺寸块的固定尺寸阵列和一个可变尺寸溢出矢量。
26.如权利要求25的设备,其中多个固定尺寸块中的每个块均存储8个非零变换系数。
27.如权利要求26的设备,其中超过8个的非零变换系数被存储到可变尺寸溢出矢量中。
28.如权利要求22的设备,其中该解码器电路包括用于存储与混合数据结构相关的数据的芯片内存储器。
29.如权利要求22的设备,其中用于在逆运动补偿期间有选择地使用混合因子分解/整数近似技术的电路包括把视频图像帧中的块标识为与活动运动区或不活动运动区之一相关的电路;以及通过把因子分解技术应用于与活动运动区相关的块并把整数近似技术应用于与不活动运动区相关的块来执行逆运动补偿的电路。
30.如权利要求22的设备,其中该视频比特流是低速视频比特流。
31.一种执行逆运动补偿的方法,包括接收视频比特流;识别从半像素矩阵和全像素矩阵所组成的组中所选的变换矩阵类型;如果该变换矩阵的类型是半像素矩阵,则该方法包括应用因子分解技术来解码与该半像素矩阵对应的比特流;并且如果该变换矩阵的类型是全像素矩阵,则该方法包括应用整数近似技术来解码与该全像素矩阵相应的比特流。
32.如权利要求31的方法,其中该视频比特流是低速视频比特流。
33.如权利要求31的方法,其中该方法中应用因子分解技术来解码与该半像素矩阵对应的比特流的操作包括对半像素矩阵执行因子分解,得到一个稀疏矩阵序列,这些稀疏矩阵包括置换矩阵和对角矩阵。
34.如权利要求31的方法,其中该方法中应用整数近似技术来解码与该全像素矩阵相应的比特流的操作包括以二进制数来近似全像素矩阵中的每个元素。
35.如权利要求34的方法,其中每个元素被四舍五入为最接近的2的乘方。
36.一种解码视频数据的方法,包括接收压缩比特流内的视频数据的一帧;在压缩域中把该帧的一个块解码为变换域表示;把与该变换域表示相关的数据存储到混合数据结构中;在压缩域中对与该变换域表示相关的数据执行逆运动补偿;该执行逆运动补偿包括确定与视频数据帧的一部分相关的变换矩阵的类型;以及应用混合因子分解和整数近似技术来增强逆运动补偿。
37.如权利要求36的方法,其中压缩比特流与从H263、H.261和运动图像专家组所组成的组中选择的一种标准有关。
38.如权利要求36的方法,其中该混合数据结构包括一个固定尺寸阵列和一个可变尺寸溢出矢量。
39.如权利要求36的方法,其中变换矩阵的类型从半像素矩阵和全像素矩阵所构成的组中进行选择。
40.如权利要求39的方法,其中半像素矩阵与图像的高度运动区有关,而全像素矩阵与图像的最小运动区有关。
41.如权利要求36的方法,其中该方法中应用混合因子分解和整数近似技术来增强逆运动补偿的操作包括把因子分解技术应用于与对应该帧的高度运动区的块相关的矩阵中;并且把整数近似技术应用于该帧剩余的块中。
42.如权利要求36的方法,其中压缩比特流是低速比特流。
43.一种具有在压缩域中执行逆运动补偿的程序指令的计算机可读介质,包括识别变换矩阵的程序指令;判断变换矩阵是否是半像素矩阵和全像素矩阵之一的程序指令;应用因子分解技术解码与半像素矩阵相对应的比特流的块的程序指令;以及应用整数近似技术解码与全像素矩阵相对应的比特流的块的程序指令。
44.如权利要求43的计算机可读介质,其中用于执行逆运动补偿的程序指令被在压缩域中执行。
45.如权利要求43的计算机可读介质,还包括提取运动矢量数据的程序指令,该运动矢量数据用于把变换矩阵标识为半像素矩阵和全像素矩阵之一。
46.如权利要求43的计算机可读介质,还包括用于把与一帧数据的编码块相关的非零变换系数排列到混合数据结构中的程序指令。
47.如权利要求43的计算机可读介质,其中应用整数近似技术解码与全像素矩阵相对应的比特流的块的程序指令包括以二进制数来近似全像素矩阵中的每个元素的程序指令。
48.如权利要求43的计算机可读介质,其中应用因子分解技术解码与半像素矩阵相对应的比特流的块的程序指令包括对半像素矩阵执行因子分解以得到一个稀疏矩阵序列的程序指令,其中这些稀疏矩阵包括置换矩阵和对角矩阵。
49.一种电路,包括用于解码视频数据的集成电路芯片,该集成电路芯片包括用于接收与一帧视频数据相关的数据比特流的电路;把数据比特流解码为变换域表示的电路;识别变换矩阵类型的电路;以及利用混合因子分解和整数近似技术执行逆运动补偿的电路。
50.如权利要求49的电路,其中该集成电路芯片还包括用于把变换域表示的非零变换系数排列到混合数据结构中的电路。
51.如权利要求49的电路,其中该比特流是低速比特流。
52.如权利要求49的电路,其中利用混合因子分解和整数近似技术执行逆运动补偿的电路把因子分解技术应用于半像素变换矩阵,而把整数近似技术应用于全像素变换矩阵。
53.如权利要求49的电路,还包括与该集成电路芯片通信的存储器。
54.如权利要求49的电路,其中该混合因子分解和整数近似技术应用于压缩域中的数据。
55.一种视频解码器,包括可变长解码器(VLD),用于从输入比特流中提取系数值和运动矢量数据;与VLD通信的去量化块,该去量化块用于对系数值重新定标;与该去量化块通信的下支路,该下支路用于把误差系数解码至空间域;以及与该去量化块通信的上支路,该上支路用于保持内部变换域表示,该上支路还用于产生空间域输出,以能够添加到解码的误差系数中,从而重建当前块。
56.如权利要求55的视频解码器,其中该视频解码器以软件来实施。
57.如权利要求55的视频解码器,其中该视频解码器以硬件来实施。
58.如权利要求55的视频解码器,其中该输入比特流是低速比特流。
59.如权利要求55的视频解码器,其中该上支路包括反馈回路、该反馈回路包括帧缓冲器、运动补偿块和离散余弦变换块。
60.如权利要求55的视频解码器,其中该下支路包括行程长度解码块和逆变换块。
61.如权利要求55的视频解码器,其中逆运动补偿操作在压缩域中被执行。
62.如权利要求55的视频解码器,其中变换域表示的非零系数被排列在与视频解码器相关的存储器中的混合数据结构中,以降低存储要求。
63.如权利要求62的视频解码器,其中该混合数据结构包括一个固定尺寸阵列和一个可变尺寸溢出矢量。
64.如权利要求61的视频解码器,其中该逆运动补偿包括一种混合因子分解和整数近似技术。
65.如权利要求64的视频解码器,其中该混合因子分解和整数近似技术用于把因子分解技术应用于半像素变换矩阵,而把整数近似技术应用于全像素变换矩阵。
全文摘要
提供了减小对解码比特流存储要求的方法。该方法先接收视频比特流。随后该比特流的一帧被解码为离散余弦变换(DCT)域表示。接着识别该DCT域表示的非零系数。随后,混合数据结构被组装。该混合数据结构包括固定尺寸阵列和可变尺寸的溢出矢量。接着该DCT域表示的非零系数被插入到该混合数据结构中。提供了执行逆运动补偿的方法。该方法先接收视频比特流。随后识别变换矩阵的类型。若该变换矩阵的类型是半像素矩阵,则该方法应用因子分解技术解码与该半像素矩阵对应的比特流。若该变换矩阵的类型是全像素矩阵,则该方法应用整数近似技术来解码与该全像素矩阵相应的比特流。还提供解码视频数据和/或执行逆运动补偿的计算机可读介质、印制电路板和设备。
文档编号H03M7/36GK1452396SQ0311059
公开日2003年10月29日 申请日期2003年4月11日 优先权日2002年4月12日
发明者W·陈, V·布哈斯卡兰 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1