降低视频编码器中计算复杂性的方法和设备的制作方法

文档序号:7864991阅读:197来源:国知局
专利名称:降低视频编码器中计算复杂性的方法和设备的制作方法
技术领域
本发明涉及视频编码领域。更具体的,本发明涉及视频数据块的编码。
背景技术
目前,在国际视频压缩标准,例如H.263,MPEG-2和MPEG-4中,帧由宏块组成。宏块由块组成,而块由64个元素组成。集中在特定数据块的编码,图5说明了编码处理。在由DCT模块产生的离散余弦变换(DCT)系数量化器量化之后,即使到量化器的输入是非零,也可能产生零输出。此时,可变长度代码(VLC)编码器可能没有要编码的量化系数。对于各个数据块有一个称为编码块模式(CBP)的标记。如果没有要编码的系数,对于该特定块该标记设为零,并不执行任何量化。否则将其设为1,并执行量化,由扫描器以之字形方式扫描量化的DCT系数,然后由VLC编码器编码,并和运动矢量一起在压缩视频比特流中传输。
在低比特速率的应用中,以零系数结尾的要编码的块(即CBP=0)具有较高百分比。因此,不幸的是,这意味着量化操作通常是多余的。
量化操作中存在的另一问题是计算量非常大。在通常最常使用的量化算法中,特定的DCT系数如下量化假定DCT系数用COEF[i]表示,i=0,1,...63;量化步长用Q表示,量化器块的输出用QCOEF[i]表示对于下标“i”的每个值,量化由以下操作执行
SGN=Sign(COEF[i])ABSVAL=Abs(COEF[i])QCOEF[i]=SGN*(ABSVAL/(2*Q))函数Sign()根据输入是等于零、大于零或小于零返回值0,1,-1。函数Abs()返回输入的绝对值(量值)。
从该等式中很明显,在量化处理中对于每个系数有若干操作要执行。在该等式中,能使用乘法消除计算量很大的“除”操作。不幸的是,操作的数目仍然非常多,在编码器中至少消耗10%的计算资源。

发明内容
提供一种降低视频编码器系统中计算复杂性的方法和设备。该方法包括接收变换的视频块数据系数;设定阈值;确定是否至少一个变换的视频块数据系数大于该阈值;如果至少一个变换的视频块数据系数大于该阈值,则执行随后的压缩功能;如果没有任何一个变换的视频块数据系数大于该阈值,则绕过随后的压缩功能。


图1是根据优选实施例的和本发明一起使用的视频压缩系统的示范框图;图2是用于根据优选实施例的视频压缩系统的块编码系统的示范框图;图3是概述根据一个实施例的校验量化要求模块(check quantizerequired module)的操作的示范流程图;图4是根据一个实施例的校验量化要求模块210的示范框图;以及图5说明编码处理。
具体实施例方式
在低比特速率下(例如在64kbps的QCIF),多达75%的视频压缩块无需编码(即CBP=0)。因此,如果存在较简单的方式预先确定是否需要量化,则能较大程度的节省计算。除了其他益处,根据一个实施例,在此公开的发明可以通过消除所有多余的块量化操作而降低编码器进行的计算总数。除了其他益处,根据一个相关实施例,视频编码器设备的降低的复杂性也有助于系统成本的降低。
根据相关实施例,编码器中多余的量化操作可通过在量化之前引入新的功能块来消除,该功能块执行快速和有效的检验,验证量化器是否产生非零系数。计算上的节省可从新的功能块比量化器功能的复杂性大大降低体现出来。
图1是根据一个实施例的和本发明一起使用的视频压缩系统100的示范框图。视频压缩系统100可包括运动估计模块110,运动补偿模块115,加法器120,离散余弦变换模块(DCT)125,量化器130,扫描模块或扫描器135,可变长度代码(VLC)编码器140,逆量化器145,逆离散余弦变换电路(IDCT)150,另一个加法器155,以及前帧电路160。
在操作中,为来自当前图像帧的图像数据块使用一个或多个先前处理的图像帧计算运动估计。运动估计电路110输出对应处理块的运动矢量。运动补偿电路115使用计算的运动矢量从前一帧中形成预测块。加法器120通过从当前图像帧中减去预测的图像数据计算差别图像。使用DCT 125变换该差别图像。DCT系数随后经历量化器130的降低的精度。量化器130增加压缩,引入数字损失。扫描器135以之字形方式扫描量化的DCT系数。扫描后的DCT系数由VLC编码器140编码并和运动矢量在压缩视频比特流中一起传输。本地重建环包括逆量化器145,IDCT 150以及加法器155。逆量化器145重建DCT系数。IDCT 150将DCT系数变换回空间域以形成量化的差别图像。得到的重建帧由加法器155通过将运动补偿数据加到量化的差别图像上而计算。然后在前帧模块160中存储该重建数据,用于处理随后的图像帧。
图2是用于根据优选实施例的视频压缩系统100的块编码系统200的示范框图。块编码系统200包括位于量化器130、扫描器135以及VLC编码器140之前的校验量化要求模块210。块编码系统200可被结合到视频压缩系统100的量化器130、扫描器135以及VLC编码器140内。操作中,校验量化要求模块210执行快速检查,以确定DCT 125的输出是否会产生非零系数。
有若干用于实现校验量化要求模块210的可能实施例。更有效的一个是基于编码器运行的实际平台的。在所有的实施例中,校验量化要求模块210确定是否存在其量值大于阈值THRESH的DCT系数。
THRESH的值可以是量化步长以及量化算法的函数。在优选实施例中,至少有两种类型的量化算法常规的以及恒域的量化算法。
常规量化算法可以对每个DCT系数执行以下操作步骤SGN=Sign(COEF[i])ABSVAL=Abs(COEF[i])QCOEF[i]=SGN*(ABSVAL/(2*Q))其中DCT系数用COEF[i]表示,i=0,1,...63;Q表示量化步长;量化器块130的输出用QCOEF[i]表示;函数Sign()根据输入是等于零、大于零或小于零返回值0,1或-1。
恒域量化算法可用以下操作执行SGN=Sign(COEF[i])ABSVAL=Abs(Abs(COEF[i])-Q/4)QCOEF[i]=SGN*(ABSVAL/(2*Q))
对于常规量化,THRESH=(2*Q-1),其中Q是量化步长。对于恒域量化,THRESH=(2*Q+Q/4-1)。
对于检查是否至少一个系数等于或超过THRESH的值,有多种可能实施例。例如实施例1<pre listing-type="program-listing">  MAXCOEF=0  For i=0 to 63  If(Abs(COEF[i])>MAXCOEF)   MAXCOEF=COEF[i]   Endif  End  If(MAXCOEF>THRESH)   CBP=1  Else   CBP=0  Endif</pre>实施例2CBP=0For i=0 to 63If(Abs(COEF[i])>THRESH)CBP=1Break out of the FOR loopEndifEnd还可以有其他不同实施例,但原理相同确定是否至少存在一个系数,其量值大于阈值。
图3是概述根据一个实施例的校验量化要求模块210的操作的示范流程图300。在步骤310,流程开始。在步骤320,校验量化要求模块210接收变换的视频块数据系数。在步骤330,校验量化要求模块210确定阈值。例如,校验量化要求模块210可以通过检索存储的阈值、计算阈值、接收阈值输入或通过任何其他有用方式确定阈值。在步骤340,校验量化要求模块210确定是否至少一个变换的视频块数据系数的量值大于该阈值。如果为真,校验量化要求模块210前进到步骤350。如果为假,校验量化要求模块210进行到步骤360。在步骤350,校验量化要求模块210发送变换的视频块数据到进一步压缩电路。在步骤360,校验量化要求模块210绕过诸如量化器130的进一步压缩电路。在步骤370,流程结束。
因此,根据一个实施例,本发明提供一种降低诸如视频压缩系统100的视频编码系统内的计算复杂性的方法。该方法可以包括接收变换的视频块数据系数,设定阈值,确定是否至少一个变换的视频块数据系数的量值大于该阈值,并且如果没有变换的视频块数据系数的量值大于该阈值则绕过随后的压缩功能。该方法还包括对视频块数据执行离散余弦变换,以产生视频块数据系数。
确定是否至少一个变换的视频块数据系数的量值大于阈值的步骤可以包括迭代比较系数的量值和先前系数量值的最大值,如果该系数量值大于先前系数量值的最大值,则设定该系数量值为最大值,并确定该最大值是否大于阈值。确定是否至少一个变换的视频块数据系数的量值大于阈值的步骤进一步包括开始执行变换的视频块数据系数的量值中每一个和阈值的迭代比较,并当一个变换的视频块数据系数的量值超过该阈值时结束该迭代比较。如果至少一个变换的视频块数据系数的量值大于阈值则执行随后的压缩功能的步骤进一步包括量化该变换的视频块数据系数。如果至少一个变换的视频块数据系数的量值大于阈值则执行随后的压缩功能的步骤进一步包括扫描该变换的视频数据块系数。
如果至少一个变换的视频块数据系数的量值大于阈值则执行随后的压缩功能的步骤进一步包括量化该变换的视频块数据系数以产生量化的变换视频块数据系数,扫描该量化的变换视频块数据系数以产生扫描后的已量化变换视频块数据系数,并对该扫描后的已量化变换视频块数据系数进行可变长度代码编码。设定阈值的步骤可基于使用常规量化算法,将阈值设定为近似量化步长两倍减一,基于使用恒域量化算法,将阈值设定为近似两倍的量化步长加上近似四分之一量化步长减一,或设定为任何其他有用阈值。
图4是根据一个实施例的校验量化要求模块210的示范框图。校验量化要求模块210可包括阈值模块410,变换视频块数据与阈值的比较模块420,量化旁路确定模块430。阈值模块410可存储阈值、计算阈值、接收阈值输入或以任何其他有用方式获得阈值。
变换视频块数据与阈值比较模块420可配置用于迭代比较系数量值和先前系数量值的最大值,如果该系数量值大于先前系数量值的最大值,则将该系数量值设为最大值,并确定最大系数量值是否大于阈值。变换视频块数据与阈值比较模块420还可被配置用于开始执行变换的视频块数据系数的量值中每一个和阈值的迭代比较,并当一个变换视频块数据系数的绝对值超过阈值时结束该迭代比较。
根据一个实施例,计算上的节省非常显著。例如,在校验量化要求模块210内的操作的数量可以低于量化器130的若干倍。例如,考虑具有以下参数的情况75%的块未编码(CBP=0)。
校验量化要求模块每块进行N次操作。
量化器每块进行4N次操作(4倍)。
每秒需要处理的块有10000块。
如果没有校验量化要求模块210,每秒所需操作数目是40000*N。而有校验量化要求模块210,所需操作是10000*N+0.25*4*N*10000=20000*N。
因此该例中节约了50%。
根据另一个实施例,可将本应用结合到移动通信装置、手持装置等的实时视频编码器中。因此,本实施例可提供包括用于降低视频编码器系统100内的计算复杂性的设备的移动通信装置。该设备可包括视频数据块系数变换器125,配置用于产生变换的视频数据块系数;校验量化要求模块210,连接到视频数据块系数变换器125,该校验量化要求模块包括量化旁路电路;以及连接到校验量化要求模块210的量化器130。校验量化要求模块210可包括阈值模块510,变换视频块数据与阈值比较模块520,以及量化器旁路确定模块530。校验量化要求模块210可配置用于确定是否至少一个变换的视频数据块系数是等于或大于阈值的。
本发明的方法优选的在编程处理器上实施。然而,可在通用或专用计算机、编程微处理器或微控制器以及外围集成电路元件、ASIC或其他集成电路、诸如离散元件电路的硬件电子或逻辑电路、以及诸如PLD、PLA、FPGA或PAL的可编程逻辑装置等上实施视频压缩系统100、校验量化要求模块210以及其他元件。通常,任何驻留有有限态机器能实施附图中所示流程图和所述方法的装置都可用于实现本发明的处理器功能。
虽然本发明参考特定实施例进行说明,很明显,本领域技术人员能作出多种替换、修改以及改变。例如,在其他实施例中可以互换、添加或删去实施例中的不同组件。因此,在此说明的本发明的优选实施例是说明性而非限制性的。可以作出不同的改变而不背离本发明的精神和范围。
权利要求
1.一种用于降低视频编码器系统内的计算复杂性的方法,包括接收变换的视频块数据系数;设定阈值;确定是否至少一个变换的视频块数据系数的量值大于所述阈值;如果所述至少一个变换的视频块数据系数的量值大于所述阈值,则执行随后的压缩功能;以及如果没有变换的视频块数据系数的量值大于所述阈值,则绕过随后的压缩功能。
2.根据权利要求1的方法,进一步包括对视频块数据执行离散余弦变换以产生视频块数据系数。
3.根据权利要求1的方法,其中,所述确定是否至少一个变换的视频块数据系数的量值大于所述阈值的步骤进一步包括迭代比较系数量值和先前系数量值的最大值;如果系数量值大于先前系数量值的最大值,则将该系数量值设为最大值;以及确定该最大系数量值是否大于所述阈值。
4.根据权利要求1的方法,其中,所述确定是否至少一个变换的视频块数据系数的量值大于所述阈值的步骤进一步包括开始执行所述变换的视频块数据系数量值中每一个和阈值的迭代比较;以及当一个变换的视频块数据系数的绝对值超过所述阈值时结束所述迭代比较。
5.根据权利要求1的方法,其中,所述如果至少一个变换的视频块数据系数的量值大于所述阈值,则执行随后的压缩功能的步骤进一步包括量化所述变换的视频块数据系数。
6.根据权利要求1的方法,其中,所述如果至少一个变换的视频块数据系数的量值大于所述阈值,则执行随后的压缩功能的步骤进一步包括扫描所述变换的视频块数据系数。
7.根据权利要求1的方法,其中,所述如果至少一个变换的视频块数据系数的量值大于所述阈值,则执行随后的压缩功能的步骤进一步包括量化所述变换的视频块数据系数以产生量化的变换视频块数据系数;扫描所述量化的变换视频块数据系数,以产生扫描后的已量化变换视频块数据系数;以及对所述扫描后的已量化变换视频块数据系数进行可变长度代码编码。
8.根据权利要求1的方法,其中,所述设定阈值的步骤是将阈值设定为近似量化步长两倍减一。
9.根据权利要求8的方法,其中,所述设定阈值的步骤是基于常规量化算法的使用,将阈值设定为近似量化步长两倍减一。
10.根据权利要求1的方法,其中,所述设定阈值的步骤是将阈值设定为近似量化步长两倍加上近似量化步长四分之一减一。
11.根据权利要求10的方法,其中,所述设定阈值的步骤是基于恒域量化算法的使用,将阈值设定为近似量化步长两倍加上近似量化步长四分之一减一。
12.根据权利要求1的方法,其中,所述如果至少一个变换的视频块数据系数的量值大于所述阈值,则执行随后的压缩功能的步骤进一步包括扫描所述变换的视频块数据系数以产生扫描的量化变换视频块数据系数;量化所述扫描的变换视频块数据系数,以产生量化的变换视频块数据系数;以及对所述量化的已扫描变换视频块数据系数进行可变长度代码编码。
13.一种视频编码器设备,包括视频数据块系数变换器;校验量化要求模块,其连接到所述视频数据块系数变换器;以及量化器,其连接到所述校验量化要求模块。
14.根据权利要求13的设备,其中,所述校验量化要求模块包括量化器旁路模块。
15.根据权利要求13的设备,其中,所述校验量化要求模块包括阈值模块;变换视频块数据与阈值比较模块;以及量化器旁路确定模块。
16.根据权利要求15的设备,其中,所述变换视频块数据与阈值比较模块被配置用于迭代比较系数量值和先前系数量值的最大值,如果系数量值大于先前系数量值的最大值,则将该系数量值设定为最大值,以及确定该最大系数量值是否大于阈值。
17.根据权利要求15的设备,其中,所述变换视频块数据与阈值比较模块被配置用于开始执行所述变换视频块数据的系数量值中每一个和阈值的迭代比较;以及当一个变换视频块数据系数的量值超过所述阈值时,结束所述迭代比较。
18.根据权利要求13的设备,其中,所述视频数据块系数变换器包括离散余弦变换模块。
19.根据权利要求13的设备,进一步包括连接在所述校验量化要求模块和量化器之间的扫描器。
20.根据权利要求13的设备,进一步包括连接到所述量化器的扫描器;以及连接到所述扫描器的可变长度代码编码器。
21.根据权利要求13的设备,进一步包括具有当前图像块输入的运动估计模块;连接在所述运动估计模块和视频数据块系数变换器之间的运动补偿模块。
22.根据权利要求21的设备,进一步包括连接在所述量化器和运动估计模块之间的本地重建环。
全文摘要
一种降低视频编码器系统中计算复杂性的方法和设备。该方法包括接收变换的视频块数据系数;设定阈值;确定是否至少一个变换的视频块数据系数的量值大于该阈值;如果至少一个变换视频块数据系数的量值大于该阈值则执行随后的压缩功能;并且如果没有变换视频块数据系数的量值大于该阈值,则绕过随后的压缩功能。
文档编号H04N7/50GK1675929SQ03818955
公开日2005年9月28日 申请日期2003年7月25日 优先权日2002年8月6日
发明者拉加万·苏布拉马尼亚恩 申请人:摩托罗拉公司(在特拉华州注册的公司)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1