一种自适应的二维4×4块的逆变换方法转让专利

申请号 : CN200810067075.6

文献号 : CN101272492B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梁立伟刘强杨巨前王宁

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种自适应的二维4×4块的逆变换方法,包括以下步骤:a、定义一组4×4块逆变换的简化算法,其中包括4×4块在包含不同数量及不同位置的有效数据时分别用以进行逆变换的简化算法;b、获取原始输入矩阵中的有效数据个数及位置,据此从所述简化算法组中选择相应的简化算法,再采用该简化算法对所述原始输入矩阵进行逆变换。本发明所提出的方法中,可根据当前变换块中的有效数据个数及位置采取相应的简化算法来实现二维4×4块的逆变换,这样在不影响视频的编、解码质量前提下显著地降低了逆变换的计算量,提高了视频编、解码的执行效率。

权利要求 :

1.一种自适应的二维4×4块的逆变换方法,其特征在于,包括以下步骤:a、定义一组4×4块逆变换的简化算法,其中包括4×4块在包含不同数量及不同位置的有效数据时分别用以进行逆变换的简化算法;

b、获取原始输入矩阵中的有效数据个数及位置,据此从所述简化算法组中选择相应的简化算法,再采用该简化算法对所述原始输入矩阵进行逆变换;

若在编码器端进行二维4×4块的逆变换,则通过使用系数扫描方法对原始输入矩阵扫描来得到其中的有效数据个数及位置;若在解码器端进行所述逆变换,则根据码流中的信息直接获取原始输入矩阵中的有效数据个数及位置。

2.如权利要求1所述的自适应的二维4×4块的逆变换方法,其特征在于,所述系数扫描方法为Z扫描方法。

说明书 :

一种自适应的二维4×4块的逆变换方法

技术领域

[0001] 本发明涉及视频信息压缩领域,尤其涉及该领域中的二维4×4块的逆变换方法。

背景技术

[0002] 目前的高级视频编码标准中,基本都包含了4×4块的变换和逆变换功能,4×4块变换和逆变换是整数操作而不是实数运算,其过程和8×8块的离散余弦变换(DCT)基本相似。这种4×4块变换方法的优点在于:在编码器中和解码器中允许精度相同的变换和逆变换,便于使用简单的整数运算方式,也就是说这里没有“逆变换误差”。
[0003] 变换的单位是4×4块,而不是以往常用的8×8块,由于用于变换块的尺寸缩小,运动物体的划分更精确,这样在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的16个4×4块的DC系数进行第二次4×4块的变换,对色度数据的4个4×4块的DC系数进行2×2块的变换。
[0004] 对于视频编、解码器来说,逆变换都是其中计算量较大的一部分,特别是在解码器中所占比例更大。一般的,类似于二维8×8块的逆离散余弦变换(IDCT),二维4×4块的逆变换也可以采用两次一维的蝶形变换来完成,这样就能降低逆变换的实现复杂度。但是这种方法并没有考虑逆变换输入数据的实际情况,对其中的很多零值元素也同样进行了计算,这就造成了计算浪费。
[0005] 为了消除这种计算浪费,从而进一步降低逆变换过程中的计算复杂度、提高执行效率,需要对逆变换的输入数据进行分析,根据分析结果对不同特性的输入数据采取不同的逆变换计算方法,以达到降低逆变换计算复杂度的目的。
[0006] 专利说明书CN03155451公开了一种减小视频解码器反离散余弦变换演算量的方法,该方法采用了按照矩阵特性进行不同演算:如果发现只有第一元素中存在DC值,则把矩阵整体的结果值填为DC元素的1/N(N:矩阵列或行的值);如果发现只有第一列中存在系数值,则分别将第一列的1维IDCT结果值填入剩余的列;如果发现只有第一行中存在系数值,则分别将第一行的1维IDCT结果值填入剩余的行;如果发现不属于上述情况,则利用IDCT算式求出全部元素的结果值并填入。
[0007] 在使用上述方法时,需要分别知道第一列和第一行中是否包含有效数据,同时也要知道其他行和列不包含有效数据,因而在工程实现中,这种方法的执行效率并不高;而且,在大多数情况下,行和列的低频部分会同时包含有效数据,那么该方法还是采用原来的计算过程,并不能提高效率。

发明内容

[0008] 本发明所要解决的技术问题是提供一种自适应的二维4×4块的逆变换方法,对现有的逆变换方法进行优化,提高执行效率。
[0009] 为解决上述技术问题,本发明是通过以下技术方案实现的:
[0010] 一种自适应的二维4×4块的逆变换方法,包括以下步骤:
[0011] a、定义一组4×4块逆变换的简化算法,其中包括4×4块在包含不同数量及不同位置的有效数据时分别用以进行逆变换的简化算法;
[0012] b、获取原始输入矩阵中的有效数据个数及位置,据此从所述简化算法组中选择相应的简化算法,再采用该简化算法对所述原始输入矩阵进行逆变换。
[0013] 所述方法中,若在编码器端进行二维4×4块的逆变换,则通过使用系数扫描方法对原始输入矩阵扫描来得到其中的有效数据个数及位置;若在解码器端进行所述逆变换,则根据码流中的信息直接获取原始输入矩阵中的有效数据个数及位置。
[0014] 其中,所述系数扫描方法为Z扫描方法。
[0015] 本发明具有以下有益效果:
[0016] 本发明所提出的方法中,可根据当前变换块中的有效数据个数及位置采取相应的简化算法来实现二维4×4块的逆变换,这样在不影响视频的编、解码质量前提下显著地降低了逆变换的计算量,提高了视频编、解码的执行效率。

附图说明

[0017] 图1是本发明的方法流程图;
[0018] 图2是H.264标准中二维4×4块逆变换的算法示意图;
[0019] 图3是H.264标准中的4×4块逆变换系数矩阵示意图;
[0020] 图4是H.264标准中系数扫描方法示意图;
[0021] 图5是H.264标准中逆变换的横向变换过程示意图;
[0022] 图6是本发明实施例的二维4×4块逆变换方法流程图。

具体实施方式

[0023] 下面将结合附图及具体实施例对本发明作进一步详细的描述:
[0024] 如图1所示,本发明所提出的变换方法包括以下步骤:
[0025] 101、预先定义一组二维4×4块逆变换的简化算法,该简化算法中包括4×4块在包含不同数量及不同位置的有效数据时分别用以进行逆变换的简化算法;
[0026] 102、获取原始输入矩阵中的有效数据个数及位置;
[0027] 103、根据原始输入矩阵中的有效数据个数及位置,从所述简化算法组中选择相应的简化算法,再采用该简化算法对原始输入矩阵进行逆变换。
[0028] 上述方法中,通过两次一维碟形变换来实现逆变换,所述简化算法即为碟形变换的简化算法。该方法中,若在编码器端进行二维4×4块的逆变换,则通过使用系数扫描方法对原始输入矩阵进行扫描来得到其中的有效数据个数及位置;若在解码器端进行所述逆变换,则根据码流中的信息直接获取原始输入矩阵中的有效数据个数及位置。
[0029] 图2是H.264标准中4×4块逆变换的算法示意图,其中,Y是4×4的原始输入矩阵,X是Y经过逆变换的输出结果矩阵,C是逆变换系数矩阵(如图3所示),完成行变换,TC 是逆变换系数矩阵的转置矩阵,完成列变换。
[0030] 一般在进行行变换时,选择使用蝶形变换的方法,首先求出CTYT的结果,然后再进T T T T行转置,就可以得到YC(因为YC=(CY))的结果。对应输入数据Y的转置Y,其系数扫描顺序如图5所示。分别记a、e、i和m为第一行A,记b、f、j和n为第二行B,记c、g、k和o为第三行C,记d、h、l和p为第四行D。那么在现有方法中,在进行逆变换时蝶型变换的第一步是求出(A+C)、(A-C)、(B+(D>>1))和((B>>1)-D),第二步是根据第一步的结果求出((A+C)+(B+(D>>1)))、((A-C)+((B>>1)-D))、((A-C)-((B>>1)-D))和((A+C)-(B+(D>>1)))。
[0031] 本实施例以在编码端进行逆变换为例,逆变换方法流程如图6所示:
[0032] 首先定义一组4×4矩阵逆变换的简化算法:如果有效数据个数只有1个(可能是16个中的任意一个),则不必进行计算,直接得出逆变换结果;如果有效数据个数为2~5个,则只需计算(A+B)、(A+(B>>1))、(A-(B>>1))和(A-B),省掉其他多余的计算;如果有效系数个数为6~15个,则仍采用蝶型变换的原始算法。
[0033] 然后,使用系数扫描方法对原始输入矩阵进行扫描,获取其中的有效数据个数及位置,据此选择相应的简化算法,采用该简化算法实现原始输入矩阵的逆变换。
[0034] 在解码端进行逆变换时,可根据码流中的信息直接得到有效数据个数,特别是在只有一个非零系数时,可以根据码流中的信息得到该系数的具体位置,以采取相应的简化算法。
[0035] 在实际的H.264视频编、解码过程中,因为能量大多集中在低频部分,即有效系数个数只有1个或2~5个的情况占大多数,所以采用本发明的方法,可显著降低计算量,提高视频编、解码的执行效率。
[0036] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。