欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种反变换方法及装置独创技术56759字

一种反变换方法及装置

2021-03-18 03:18:36

一种反变换方法及装置

  技术领域

  本发明涉及视频编解码技术领域,特别是涉及一种反变换方法及装置。

  背景技术

  视频编解码过程中,在对视频帧中图像块依次进行预测、DCT(Discrete CosineTransform,离散余弦变换)、量化、熵编码与反量化后得到频域变换系数矩阵。得到频域变换系数矩阵后,还需要对频域变换系数矩阵进行IDCT(Inverse Discrete CosineTransform,离散余弦反变换)。频域变换系数矩阵中的系数被划分为CG(CoeffcientGroup,系数块),在进行IDCT后得到频域变换系数矩阵中每一CG中包含的系数对应的反变换结果。当图像块较大时,频域变换系数矩阵中的系数较多,CG的数量也较多,IDCT过程中消耗的计算量较大。例如,若图像块为32×32图像块,则频域变换系数矩阵中包含1024个系数,若每一CG中包含4×4个系数,则上述图像块中包含64个CG;若图像块为64×64图像块,则频域变换矩阵中包含4096个系数,若每一CG中包含2×2个系数,则上述图像块中包含1024个CG。

  由于上述频域变换系数矩阵中存在较多包含的系数均为0的全零CG,这些全零CG中包含的系数对应的反变换结果往往也为0。因此,现有技术中,一般仅对频域变换系数矩阵中预设的固定区域内的CG进行IDCT,而将其他区域内的CG中包含的系数对应的反变换结果直接设置为0。例如,上述频域变换矩阵为64×64矩阵,其中包含16×16个CG,可以将上述频域变换矩阵中左上角8×8个CG的区域作为上述固定区域。

  但频域变换系数矩阵中包含取值不为0的系数的非零CG的位置不固定,这样上述固定区域中可能包含全零CG,也可能难以包含所有非零CG,因此,应用上述方式对频域变换系数矩阵进行IDCT的过程中确定的非零CG的准确率低。

  发明内容

  本发明实施例的目的在于提供一种反变换方法及装置,以提高IDCT过程中确定的非零CG的准确率。具体技术方案如下:

  在本发明实施的第一方面,首先提供了一种反变换方法,所述方法包括:

  确定视频帧中图像块的频域变换系数矩阵内非零系数块CG的最大纵坐标值和最大横坐标值;

  根据所述最大纵坐标值和所述最大横坐标值之间的大小关系确定目标反变换方式,其中,所述目标反变换方式为:表征离散余弦反变换IDCT过程中一维水平IDCT和一维垂直IDCT执行顺序的反变换方式;

  按照所述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果,其中,所述目标反变换单元为:所述目标反变换方式表征的优先进行IDCT的CG行或CG列,在目标反变换单元为CG行的情况下,所述目标坐标值为:所述目标反变换单元内非零CG的最大纵坐标值,所述第一系数为:所述目标反变换单元中纵坐标值小于等于所述目标坐标值的CG包含的系数,在目标反变换单元为CG列的情况下,所述目标坐标值为:所述目标反变换单元内非零CG的最大横坐标值,所述第一系数为:所述目标反变换单元中横坐标值小于等于所述目标坐标值的CG包含的系数;

  将第二系数对应的反变换结果设置为0,其中,所述第二系数为:所述频域变换系数矩阵中除第一系数外的系数。

  本发明的一个实施例中,在所述最大纵坐标值大于等于所述最大横坐标值的情况下,所述目标反变换方式为:表征IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的反变换方式;

  所述按照所述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果,包括:

  对各个目标纵坐标值不为0的CG行中的第一系数进行一维水平IDCT,得到中间值矩阵,其中,所述目标纵坐标值为:CG行内非零CG的最大的纵坐标值,所述中间值矩阵为:包含的CG行的数量与所述频域变换系数矩阵相同、包含的CG列的数量与所述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且所述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维水平反变换结果;

  对所述中间值矩阵内、各个CG列中横坐标值小于等于所述最大横坐标值的CG中包含的系数进行一维垂直IDCT,得到各个第一系数对应的反变换结果。

  本发明的一个实施例中,在所述最大纵坐标值小于所述最大横坐标值的情况下,所述目标反变换方式为:表征IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT的反变换方式;

  所述按照所述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果,包括:

  对各个目标横坐标值不为0的CG列中的第一系数进行一维垂直IDCT,得到中间值矩阵,其中,所述目标横坐标值为:CG列内非零CG的最大的横坐标值,所述中间值矩阵为:包含的CG行的数量与所述频域变换系数矩阵相同、包含的CG列的数量与所述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且所述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维垂直反变换结果;

  对所述中间值矩阵内、各个CG行中纵坐标值小于等于所述最大纵坐标值的CG中包含的系数进行一维水平IDCT,得到各个第一系数对应的反变换结果。

  本发明的一个实施例中,所述CG的大小为以下大小中的一种:

  1×1、2×2、4×4、8×8、16×16、32×32、64×64。

  在本发明实施的第二方面,还提供了一种反变换装置,所述装置包括:

  坐标值确定模块,用于确定视频帧中图像块的频域变换系数矩阵内非零系数块CG的最大纵坐标值和最大横坐标值;

  方式确定模块,用于根据所述最大纵坐标值和所述最大横坐标值之间的大小关系确定目标反变换方式,其中,所述目标反变换方式为:表征离散余弦反变换IDCT过程中一维水平IDCT和一维垂直IDCT执行顺序的反变换方式;

  结果获得模块,用于按照所述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果,其中,所述目标反变换单元为:所述目标反变换方式表征的优先进行IDCT的CG行或CG列,在目标反变换单元为CG行的情况下,所述目标坐标值为:所述目标反变换单元内非零CG的最大纵坐标值,所述第一系数为:所述目标反变换单元中纵坐标值小于等于所述目标坐标值的CG包含的系数,在目标反变换单元为CG列的情况下,所述目标坐标值为:所述目标反变换单元内非零CG的最大横坐标值,所述第一系数为:所述目标反变换单元中横坐标值小于等于所述目标坐标值的CG包含的系数;

  结果设置模块,用于将第二系数对应的反变换结果设置为0,其中,所述第二系数为:所述频域变换系数矩阵中除第一系数外的系数。

  本发明的一个实施例中,在所述最大纵坐标值大于等于所述最大横坐标值的情况下,所述目标反变换方式为:表征IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的反变换方式;

  所述结果获得模块,包括:

  第一矩阵获得子模块,用于对各个目标纵坐标值不为0的CG行中的第一系数进行一维水平IDCT,得到中间值矩阵,其中,所述目标纵坐标值为:CG行内非零CG的最大的纵坐标值,所述中间值矩阵为:包含的CG行的数量与所述频域变换系数矩阵相同、包含的CG列的数量与所述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且所述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维水平反变换结果;

  第一结果获得子模块,用于对所述中间值矩阵内、各个CG列中横坐标小于等于所述最大横坐标值的CG中包含的系数进行一维垂直IDCT,得到各个第一系数对应的反变换结果。

  本发明的一个实施例中,在所述最大纵坐标值小于所述最大横坐标值的情况下,所述目标反变换方式为:表征IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT的反变换方式;

  所述结果获得模块,包括:

  第二矩阵获得子模块,用于对各个目标横坐标值不为0的CG列中第一系数进行一维垂直IDCT,得到中间值矩阵,其中,所述目标横坐标值为:CG列内非零CG的最大的横坐标值,所述中间值矩阵为:包含的CG行的数量与所述频域变换系数矩阵相同、包含的CG列的数量与所述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且所述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维垂直反变换结果;

  第二结果获得子模块,用于对所述中间值矩阵内、各个CG行中纵坐标值小于等于所述最大纵坐标值的CG中包含的系数进行一维水平IDCT,得到各个第一系数对应的反变换结果。

  本发明的一个实施例中,所述CG的大小为以下大小中的一种:

  1×1、2×2、4×4、8×8、16×16、32×32、64×64。

  在本发明实施的第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

  存储器,用于存放计算机程序;

  处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。

  在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。

  在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。

  由以上可见,应用本发明实施例提供的方案进行反变换时,通过确定视频帧中图像块的频域变换系数矩阵内非零CG的最大纵坐标值和最大横坐标值,并根据最大纵坐标值与最大横坐标值之间的大小关系确定表征IDCT过程中一维水平IDCT和一维垂直IDCT的执行顺序的目标反变换方式,根据目标反变换方式表征的优先进行IDCT的CG行或CG列作为目标反变换单元,确定目标反变换单元内的非零CG,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  附图说明

  为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

  图1为本发明实施例提供的第一种反变换方法的流程示意图;

  图2为本发明实施例提供的第一种频域变换系数矩阵的示意图;

  图3为本发明实施例提供的第二种反变换方法的流程示意图;

  图4A为本发明实施例提供的第一种中间值矩阵的示意图;

  图4B为本发明实施例提供的第一种反变换过程中矩阵变化过程的示意图;

  图5为本发明实施例提供的第二种频域变换系数矩阵的示意图;

  图6为本发明实施例提供的第二种中间值矩阵的示意图;

  图7为本发明实施例提供的第三种反变换方法的流程示意图;

  图8为本发明实施例提供的第三种频域变换系数矩阵的示意图;

  图9A为本发明实施例提供的第三种中间值矩阵的示意图;

  图9B为本发明实施例提供的第二种反变换过程中矩阵变化过程的示意图;

  图9C为本发明实施例提供的第四种反变换方法的流程示意图;

  图10为本发明实施例提供的第一种反变换装置的结构示意图;

  图11为本发明实施例提供的第二种反变换装置的结构示意图;

  图12为本发明实施例提供的第三种反变换装置的结构示意图;

  图13为本发明实施例提供的一种电子设备的结构示意图。

  具体实施方式

  下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

  由于当前对频域变换系数矩阵进行IDCT的过程中确定的非零CG的准确率较低,因此为解决这一问题,本发明实施例提供了一种反变换方法及装置。

  本发明的一个实施例中,提供了一种反变换方法,包括:

  确定视频帧中图像块的频域变换系数矩阵内非零系数块CG的最大纵坐标值和最大横坐标值。

  根据上述最大纵坐标值和上述最大横坐标值之间的大小关系确定目标反变换方式,其中,上述目标反变换方式为:表征离散余弦反变换IDCT过程中一维水平IDCT和一维垂直IDCT执行顺序的反变换方式。

  按照所述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果,其中,上述目标反变换单元为:上述目标反变换方式表征的优先进行IDCT的CG行或CG列,在目标反变换单元为CG行的情况下,上述目标坐标值为:上述目标反变换单元内非零CG的最大纵坐标值,上述第一系数为:上述目标反变换单元中纵坐标值小于等于上述目标坐标值的CG包含的系数,在目标反变换单元为CG列的情况下,上述目标坐标值为:上述目标反变换单元内非零CG的最大横坐标值,上述第一系数为:上述目标反变换单元中横坐标值小于等于上述目标坐标值的CG包含的系数。

  将第二系数对应的反变换结果设置为0,其中,上述第二系数为:上述频域变换系数矩阵中除第一系数外的系数。

  由以上可见,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  下面通过具体的实施例对本发明实施例提供的反变换方法及装置进行说明。

  参见图1,本发明实施例提供了第一种反变换方法的流程示意图,具体的,上述方法包括以下步骤S101-S104。

  S101:确定视频帧中图像块的频域变换系数矩阵内CG的最大纵坐标值和最大横坐标值。

  具体的,在对视频帧中的图像块依次进行预测、变换、量化、熵编码、反量化处理之后,可以得到视频帧中图像块的频域变换系数矩阵,上述频域变换系数矩阵的大小与上述视频帧中图像块的大小相同,例如,上述图像块为64×64图像块,则上述频域变换系数矩阵为64×64矩阵,上述图像块为32×32图像块,则上述频域变换系数矩阵为32×32矩阵。

  其中,在进行熵编码操作之前,还需要将量化得到的视频帧的变换系数进行扫描,将二维的变换系数转换为一维的变换系数,具体的,可以采用对角扫描、垂直扫描或水平扫描等方式对视频帧的变换系数进行扫描。

  本发明的一个实施例中,CG(Coefficient Group,系数块)的大小可以为以下大小中的一种:1×1、2×2、4×4、8×8、16×16、32×32、64×64。

  例如,在上述频域变换系数矩阵为32×32矩阵,CG的大小为4×4的情况下,上述频域变换系数矩阵中包含8×8个CG,在CG的大小为2×2的情况下,上述频域变换系数矩阵中包含16×16个CG。

  具体的,可以确定各个CG行中非零CG的最大的纵坐标值,然后确定各CG行的最大的纵坐标值中的最大值,作为上述最大纵坐标值。如,各个CG行中非零CG的最大的纵坐标值可以分别为5、3、1、0、0、0、0、0,其中,最大纵坐标值为5。

  可以确定各个CG列中非零CG的最大的横坐标值,然后确定各CG列的最大的横坐标值中的最大值,作为上述最大横坐标值。如,各个CG行中非零CG的最大的横坐标值可以分别为3、2、2、1、1、0、0、0,其中,最大横坐标值为3。

  另外,上述各CG行的最大的纵坐标值可以存储在一个包含元素的数量与CG行的数量相同的纵坐标数列中,其中,上述纵坐标数列中的第一个元素中可以存储上述第一CG行的最大的纵坐标值,第二个元素中可以存储上述第二CG行的最大的纵坐标值,以此类推,将每一CG行的最大的纵坐标值存储到该纵坐标数列中。

  上述各CG列的最大的横坐标值可以存储在一个包含元素的数量与CG列的数量相同的横坐标数列中,其中,上述横坐标数列中的第一个元素中可以存储上述第一CG列的最大的横坐标值,第二个元素中可以存储上述第二CG列的最大的横坐标值,以此类推,将每一CG列的最大的横坐标值存储到该横坐标数列中。

  参见图2,提供了第一种频域变换系数矩阵的示意图。

  上述图2以上述频域变换系数矩阵中包含8×8个CG为例,其中,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  则图2所示的频域变换系数矩阵每一CG行内非零CG最大的纵坐标值分别为5、3、1、0、0、0、0、0,因此该频域变换系数矩阵的最大纵坐标值为5,该频域变换系数矩阵每一CG列内非零CG最大的横坐标值分别为3、2、2、1、1、0、0、0,因此该频域变换系数矩阵的最大横坐标值为3。

  S102:根据上述最大纵坐标值和上述最大横坐标值之间的大小关系确定目标反变换方式。

  其中,上述目标反变换方式为:表征IDCT(Inverse Discrete Cosine Transform,离散余弦反变换)过程中一维水平IDCT和一维垂直IDCT执行顺序的反变换方式。

  具体的,无论先进行一维水平IDCT、再进行一维垂直IDCT,还是先进行一维垂直IDCT、再进行一维水平IDCT,最终得到的反变换结果相同。但由于不同频域变换系数矩阵中非零CG的位置不同,CG行与CG列中包含的非零CG的数量不同。因此根据非零CG进行IDCT的过程中,按照IDCT过程中的矩阵相乘计算的规律,反变换过程中一维水平IDCT与一维水平IDCT的执行顺序不同,IDCT过程中的计算量不同。

  其中,在上述最大纵坐标值大于等于最大横坐标值的情况下,目标反变换方式为:表征IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的反变换方式。

  上述最大纵坐标值大于等于最大横坐标值的情况下,在进行一维水平IDCT的过程中,由于非零CG位于上述频域变换系数矩阵中横坐标值小于等于最大横坐标值的CG行中,因此需要对上述横坐标值小于等于最大横坐标值的CG行中的非零CG进行IDCT。

  反之,在进行一维垂直IDCT的过程中,由于非零CG位于上述频域变换系数矩阵中纵坐标值小于等于最大纵坐标值的CG列中,因此需要对上述横坐标值小于等于最大纵坐标值的CG列中的非零CG进行IDCT。

  由于上述最大横坐标值小于等于上述最大纵坐标值,因此先进行一维水平IDCT,再进行一维垂直IDCT的计算量较低。

  在上述最大纵坐标值小于最大横坐标值的情况下,目标反变换方式为:表征IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的反变换方式。

  上述最大纵坐标值小于最大横坐标值的情况下,在进行一维垂直IDCT的过程中,由于非零CG位于上述频域变换系数矩阵中纵坐标值小于等于最大纵坐标值的CG列中,因此需要对上述纵坐标值小于等于最大纵坐标值的CG列中的非零CG进行IDCT。

  反之,在进行一维水平IDCT的过程中,由于非零CG位于上述频域变换系数矩阵中横坐标值小于等于最大横坐标值的CG行中,因此需要对上述横坐标值小于等于最大横坐标值的CG行中的非零CG进行IDCT。

  由于上述最大纵坐标值小于上述最大横坐标值,因此先进行一维垂直IDCT,再进行一维水平IDCT的计算量较低。

  具体的IDCT方式通过以下步骤S103进行详细描述,在此暂不详述。

  S103:按照上述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果。

  其中,上述目标反变换单元为:上述目标反变换方式表征的优先进行IDCT的CG行或CG列。

  具体的,由于频域变换系数矩阵中的每一个元素可以表示一个CG,因此频域变换系数矩阵中的每一行可以被称之为一个CG行,频域变换系数矩阵中的每一列可以被称为一个CG列。若先进行一维水平IDCT,则优先对每一CG行进行IDCT,则目标反变换单元为CG行,若先进行一维垂直IDCT,则优先对每一CG列进行IDCT,则目标反变换单元为CG列。

  在目标反变换单元为CG行的情况下,上述目标坐标值为:上述目标反变换单元内非零CG的最大纵坐标值,上述第一系数为:上述目标反变换单元中纵坐标值小于等于上述目标坐标值的CG包含的系数。

  在目标反变换单元为CG列的情况下,上述目标坐标值为:上述目标反变换单元内非零CG的最大横坐标值,上述第一系数为:上述目标反变换单元中横坐标值小于等于上述目标坐标值的CG包含的系数。

  具体的,以图2所示的频域变换系数矩阵为例,其中,第一CG行中包含的第一系数为:纵坐标值小于等于5的CG中包含的系数,第二CG行中包含的第一系数为:纵坐标值小于等于3的CG中包含的系数,第三CG行中包含的第一系数为:纵坐标值小于等于1的CG中包含的系数。

  本发明的一个实施例中,可以按照目标反变换方式,根据上述频域变换系数矩阵中的各个第一系数、预设变换矩阵与预设变换矩阵的转置矩阵进行IDCT。

  其中,上述预设变换矩阵包含的CG行的数量与上述频域变换系数矩阵相同、包含的CG列的数量与上述频域变换系数矩阵相同。

  具体的,针对不同的最大横坐标值与最大纵坐标值之间的大小关系,可以分别通过步骤S103A-S103B或S103C-S103D实现上述步骤S103,在此暂不详述。

  S104:将第二系数对应的反变换结果设置为0。

  其中,上述第二系数为:上述频域变换系数矩阵中除第一系数外的系数。

  具体的,由于第二系数为上述频域变换系数矩阵中除第一系数外的系数,而第一系数为上述频域变换系数矩阵中各个非零CG内包含的系数,因此上述第二系数为各个全零CG中包含的系数,第二系数为0。对第二系数进行IDCT之后得到的反变换结果为0,因此不对第二系数进行IDCT,直接将第二系数对应的反变换结果设置为0。从而降低了IDCT过程的计算量。

  至此上述IDCT过程结束。

  由以上可见,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  在最大纵坐标值大于等于最大横坐标值的情况下,参见图3,提供了第二种反变换方法的流程示意图。在上述情况下,上述目标反变换方式为:表征IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的反变换方式。与前述图1所示的实施例相比,上述步骤S103可以通过以下步骤S103A-S103B实现。

  S103A:对各个目标纵坐标值不为0的CG行中的第一系数进行一维水平IDCT,得到中间值矩阵。

  其中,上述目标纵坐标值为:CG行内非零CG的最大的纵坐标值。

  上述中间值矩阵为:包含的CG行的数量与上述频域变换系数矩阵相同、包含的CG列的数量与上述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且上述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数对应的一维水平反变换结果。

  本发明的一个实施例中,可以将上述频域变换系数矩阵与预设变换矩阵相乘,对上述第一系数进行一维水平IDCT。

  具体的,针对每一目标纵坐标值不为0的CG行,将该CG行中的第一系数与上述预设变换矩阵的各个CG列中横坐标值小于等于上述目标纵坐标值个CG中包含的元素分别进行矩阵相乘计算,得到该CG行中的各个第一系数的第一维反变换结果。

  图2所示的频域变换系数矩阵的最大纵坐标值大于最大横坐标值,因此可以以图2为例,可以针对第一CG行中纵坐标值小于等于5的CG中包含的第一系数与上述预设变换矩阵的各个CG列中横坐标值小于等于5的CG中包含的元素分别进行矩阵相乘计算。

  针对第二CG行中纵坐标值小于等于3的CG中包含的第一系数与上述预设变换矩阵的各个CG列中横坐标值小于等于3的CG中包含的元素分别进行矩阵相乘计算。

  针对第三CG行中纵坐标值小于等于1的CG中包含的第一系数与上述预设变换矩阵的各个CG列中横坐标值小于等于1的CG中包含的元素分别进行矩阵相乘计算。

  由于第一系数位于上述频域变换系数矩阵中横坐标值小于等于最大横坐标值的CG行中,根据矩阵相乘计算方式的规律,根据上述第一系数进行一维水平IDCT,得到的中间值矩阵中仅有横坐标值小于等于最大横坐标值的CG行中的各个CG为非零CG。

  参见图4A,提供了第一种中间值矩阵的示意图。

  具体的,图4A为对图2所示的频域变换系数矩阵中的第一系数进行一维水平IDCT后得到的中间值矩阵,其中,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  由图4A可见,图中所示的中间值矩阵中横坐标值小于等于3的CG行中包含的CG为非零CG,其他CG行中包含的CG为全零CG。

  参见图4B,本发明实施例提供了第一种反变换过程中矩阵变化过程的示意图。

  其中,每一正方形表示矩阵中的一个元素,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  每一由多个正方形组成的集合,表示一个矩阵,其中矩阵U为频域变换系数矩阵,矩阵U与图2所示的频域变换系数矩阵相同,矩阵V为预设变换矩阵,矩阵VT为预设变换矩阵的转置矩阵。

  具体的,IDCT的过程通过公式P=VT*U*V实现,其中,U为频域变换系数矩阵,V为预设变换矩阵,VT为频域变换矩阵的转置矩阵,P为对频域变换系数矩阵进行反变换之后得到的结果。

  由于频域变换系数矩阵U的最大纵坐标值为5,最大横坐标值为3,因此频域变换系数矩阵U的最大纵坐标值大于最大横坐标值,因此先对频域变换系数矩阵U进行一维水平IDCT。即先计算U*V得到中间值矩阵W,中间值矩阵W与图4A所示的中间值矩阵相同。再计算VT*W,得到频域变换系数矩阵U的反变换结果。

  参见图5,提供了第二种频域变换系数矩阵的示意图。

  上述图5以上述频域变换系数矩阵中包含8×8个CG为例,其中,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  图5所示的频域变换系数矩阵每一CG行内非零CG最大的纵坐标值分别为4、4、2、1、0、0、0、0,因此该频域变换系数矩阵的最大纵坐标值为4,该频域变换系数矩阵每一CG列内非零CG最大的横坐标值分别为4、3、2、2、0、0、0、0,因此该频域变换系数矩阵最大横坐标值为4,最大纵坐标值与最大横坐标值相同。

  参见图6,提供了第二种中间值矩阵的示意图。

  具体的,图6为对图5所示的频域变换系数矩阵中的第一系数进行一维水平IDCT后得到的中间值矩阵,其中,灰色正方形为非零CG,白色正方形为零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  由图6可见,图中所示的中间值矩阵中横坐标值小于等于4的CG行中包含的CG为非零CG,其他CG行中包含的CG为全零CG。

  S103B:对上述中间值矩阵内、各个CG列中横坐标值小于等于上述最大横坐标值的CG中包含的系数进行一维垂直IDCT,得到各个第一系数对应的反变换结果。

  由于中间值矩阵中仅有横坐标值小于等于最大横坐标值的CG行中的各个CG为非零CG,因此进行一维垂直IDCT的过程中,仅对上述中间值矩阵内、各个CG列中横坐标值小于等于最大横坐标值的CG内包含的系数进行一维垂直IDCT,不对其他CG内包含的系数进行一维垂直IDCT,从而降低了IDCT过程中的计算量。

  具体的,将上述预设变换矩阵的转置矩阵与上述中间值矩阵相乘,对上述中间值矩阵进行一维垂直IDCT。

  其中,针对中间值矩阵的每一CG列,将该CG列中横坐标值小于等于最大横坐标值的CG中包含的系数与上述预设变换矩阵的转置矩阵中各个CG行中纵坐标值小于等于最大横坐标值的CG中包含的元素分别进行矩阵相乘计算,得到该CG列中横坐标值小于等于最大横坐标值的CG中包含的系数的反变换结果。

  由于上述CG列中横坐标值小于等于最大横坐标值的CG中包含的系数由上述第一系数计算得到,因此上述CG列中横坐标值小于等于最大横坐标值的CG中包含的系数的反变换结果为第一系数对应的一维垂直反变换结果。

  以图4A所示的中间值矩阵为例,对第一CG列中横坐标值小于等于3的CG中包含的系数与预设变换矩阵的转置矩阵的各个CG行中纵坐标值小于等于3的CG中包含的元素分别进行矩阵相乘计算,并对第二CG列中横坐标值小于等于3的CG中包含的系数与预设变换矩阵的转置矩阵的各个CG行中纵坐标值小于等于3的CG中包含的系数分别进行矩阵相乘计算,以此类推。

  在本实施例中,在最大纵坐标值大于等于最大横坐标值的情况下,在IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT,因此在进行一维水平IDCT之后得到的中间值矩阵中只有横坐标值小于等于最大横坐标值的CG行中包含的CG为非零CG,因此只对中间值矩阵内每一列中横坐标值小于等于最大横坐标值的CG中包含的系数进行第二维列向IDCT。

  与之相反,若在IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT,则在进行一维垂直IDCT之后得到的中间值矩阵中只有纵坐标值小于等于最大纵坐标值的CG列中包含的CG为非零CG,因此只对中间值矩阵内每一行中纵坐标值小于等于最大纵坐标值的CG中包含的系数进行一维水平IDCT。

  但由于最大纵坐标值大于等于最大横坐标值,因此与先进行一维垂直IDCT、再进行一维水平IDCT相比,先进行一维水平IDCT、再进行一维垂直IDCT,中间值矩阵中非零CG的个数较少,从而使得进行一维垂直IDCT的过程中需要计算的系数的个数较少,因此在上述最大纵坐标值大于等于最大横坐标值的情况下,先进行一维水平IDCT再进行一维垂直IDCT计算可以降低IDCT过程的计算量。

  另外,在上述最大横坐标值等于上述最大纵坐标值的情况下,无论是先进行一维水平IDCT、再进行一维垂直IDCT,还是先进行一维水平IDCT,再进行一维垂直IDCT,中间值矩阵中非零CG的个数相同,因此进行IDCT的过程中需要计算的系数的个数相同。因此在上述最大横坐标值等于上述最大纵坐标值的情况下,上述目标反变换方式也可以为:表征IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT的反变换方式。

  由以上可见,在进行一维水平IDCT与一维垂直IDCT的过程中均只对非零CG中包含的系数进行计算,因此进行IDCT的过程中的计算量较低。

  在最大纵坐标值小于最大横坐标值的情况下,参见图7,提供了第三种反变换方法的流程示意图。在上述情况下,上述目标反变换方式为:表征IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT的反变换方式。与前述图1所示的实施例相比,上述步骤S103可以通过以下步骤S103C-S103D实现。

  S103C:对各个目标横坐标值不为0的CG列中的第一系数进行一维垂直IDCT,得到中间值矩阵。

  其中,上述目标横坐标值为:CG列内非零CG的最大的横坐标值。

  上述中间值矩阵为:包含的CG行的数量与上述频域变换系数矩阵相同、包含的CG列的数量与上述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且上述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维垂直反变换结果。

  本发明的一个实施例中,可以将上述预设变换矩阵的转置矩阵与上述频域变换系数矩阵相乘,对上述第一系数进行一维垂直IDCT。

  具体的,针对每一目标坐标值不为0的CG列,将上述预设变换矩阵的转置矩阵的各个CG行中纵坐标值小于等于目标横坐标值个CG中包含的元素与该CG列中的第一系数分别进行矩阵相乘计算,得到该CG列中的各个第一系数的一维垂直反变换结果。

  参见图8,提供了第三种频域变换系数矩阵的示意图。

  上述图8以上述频域变换系数矩阵中包含8×8个CG为例,其中,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  图8所示的频域变换系数矩阵每一行内非零CG的最大的纵坐标值分别为3、2、2、1、0、0、0、0,则该频域变换系数矩阵的最大纵坐标值为3,每一列内非零CG的最大的横坐标值分别为4、3、1、0、0、0、0、0,则该频域变换系数矩阵的最大横坐标值为4,即最大横坐标值大于最大纵坐标值。

  以图8为例,可以对上述预设变换矩阵的转置矩阵的各个CG行中纵坐标值小于等于4的CG中包含的元素与频域变换系数矩阵的第一CG列中横坐标值小于等于4的CG中包含的第一系数进行矩阵相乘计算。

  对上述预设变换矩阵的转置矩阵的各个CG行中纵坐标值小于等于3的CG中包含的元素与频域变换系数矩阵的第二CG列中横坐标值小于等于3的CG中包含的第一系数进行矩阵相乘计算。

  对上述预设变换矩阵的转置矩阵的各个CG行中纵坐标值小于等于1的CG中包含的元素与频域变换系数矩阵的第三CG列中横坐标值小于等于1的CG中包含的第一系数进行矩阵相乘计算。

  由于第一系数位于上述频域变换系数矩阵中纵坐标值小于等于最大纵坐标值的CG列中,根据矩阵相乘计算方式的规律,根据上述第一系数进行一维垂直IDCT,得到的中间值矩阵中仅有纵坐标值小于等于最大纵坐标值的CG列中的各个CG为非零CG。

  参见图9A,提供了第三种中间值矩阵的示意图。

  具体的,图9A为对图8所示的频域变换系数矩阵中的第一系数进行一维垂直IDCT后得到的中间值矩阵,其中,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  由图9A可见,图中所示的中间值矩阵中纵坐标值小于等于3的CG列中包含的CG为非零CG,其他CG列中包含的CG为全零CG。

  S103D:对上述中间值矩阵内、各个CG行中纵坐标值小于等于上述最大纵坐标值的CG中包含的系数进行一维水平IDCT,得到各个第一系数对应的反变换结果。

  由于中间值矩阵中仅有纵坐标值小于等于最大纵坐标值的CG列中的各个CG为非零CG,因此进行一维水平IDCT的过程中,仅对上述中间值矩阵内、各个CG行中纵坐标值小于等于最大纵坐标值的CG内包含的系数进行一维水平IDCT,不对其他CG内包含的系数进行一维水平IDCT,从而降低了IDCT过程中的计算量。

  具体的,将上述中间值矩阵与上述预设变换矩阵相乘,对上述中间值矩阵进行一维水平IDCT。

  其中,针对中间值矩阵的每一CG行,将该CG行中纵坐标值小于等于最大纵坐标值的CG中包含的系数与上述预设变换矩阵中各个CG列中横坐标值小于等于最大纵坐标值个CG中包含的元素分别进行矩阵相乘计算,得到该CG行中纵坐标值小于等于最大纵坐标值的CG中包含的系数的反变换结果。

  由于上述CG行中纵坐标值小于等于最大纵坐标值的CG中包含的系数由上述第一系数计算得到,因此上述CG行中纵坐标值小于等于最大纵坐标值的CG中包含的系数的反变换结果为第一系数对应的反变换结果。

  以图9A所示的中间值矩阵为例,对第一CG行中纵坐标值小于等于3的CG中包含的系数与预设变换矩阵的各个CG列中横坐标值小于等于3的CG中包含的元素分别进行矩阵相乘计算,并对第二CG行中纵坐标值小于等于3的CG中包含的系数与预设变换矩阵的各个CG列中横坐标值小于等于3的CG中包含的系数分别进行矩阵相乘计算,以此类推。

  在本实施例中,在最大纵坐标值小于最大横坐标值的情况下,在IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT的优先级,因此在进行一维垂直IDCT之后得到的中间值矩阵中只有纵坐标值小于等于最大纵坐标值的CG列中包含的CG为非零CG,因此只对中间值矩阵内每一行中纵坐标值小于等于最大纵坐标值的CG中包含的系数进行一维水平IDCT。

  与之相反,若在IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的优先级,则在进行一维水平IDCT之后得到的中间值矩阵中只有横坐标值小于等于最大横坐标值的CG行中包含的CG为非零CG,因此只对中间值矩阵内每一列中横坐标值小于等于最大横坐标值的CG中包含的系数进行一维垂直IDCT。

  但由于最大纵坐标值小于最大横坐标值,因此与先进行一维水平IDCT、再进行一维垂直IDCT相比,先进行一维垂直IDCT、再进行一维水平IDCT,中间值矩阵中非零CG的个数较少,从而使得进行IDCT的过程中需要计算的系数的个数较少,因此在上述最大纵坐标值小于最大横坐标值的情况下,先进行一维垂直IDCT再进行一维水平IDCT计算可以降低IDCT过程的计算量。

  由以上可见,在进行第一维IDCT与第二维IDCT的过程中均只对非零CG中包含的系数进行计算,因此使得进行IDCT的过程中的计算量较低。

  参见图9B,本发明实施例提供了第二种反变换过程中矩阵变化过程的示意图。

  其中,每一正方形表示矩阵中的一个元素,灰色正方形为非零CG,白色正方形为全零CG。此处仅是以正方形表示矩阵中的各个元素,同样也可以使用其他形状,如长方形等表示矩阵中的各个元素。

  每一由多个正方形组成的集合,表示一个矩阵,其中矩阵X为频域变换系数矩阵,矩阵X与图8所示的频域变换系数矩阵相同,矩阵Y为预设变换矩阵,矩阵YT为预设变换矩阵的转置矩阵。

  具体的,IDCT的过程通过公式P=YT*X*Y实现,其中,X为频域变换系数矩阵,Y为预设变换矩阵,YT为频域变换矩阵的转置矩阵,P为对频域变换系数矩阵进行反变换之后得到的结果。

  由于频域变换系数矩阵X的最大纵坐标值为3,最大横坐标值为4,因此频域变换系数矩阵X的最大横坐标值大于最大纵坐标值,因此先对频域变换系数矩阵X进行一维垂直IDC再进行一维水平IDCT。即先计算YT*X得到中间值矩阵Z,中间值矩阵Z与图9A所示的中间值矩阵相同。再计算Z*Y,得到频域变换系数矩阵X的反变换结果。

  参见图9C,本发明实施例提供了第四种反变换方法的流程示意图。

  S901:确定频域变换系数矩阵中每一CG行中包含的非零CG的最大的纵坐标值,作为各个目标纵坐标值,并确定各个目标纵坐标值的最大值,作为上述频域变换系数矩阵的最大纵坐标值。

  S902:确定频域变换系数矩阵中每一CG列中包含的非零CG的最大的横坐标值,作为各个目标横坐标值,并确定各个目标横坐标值的最大值,作为上述频域变换系数矩阵的最大横坐标值。

  S903:在最大纵坐标值大于等于最大横坐标值的情况下,根据各个CG行的目标纵坐标值,对每一CG行中包含的非零CG进行一维水平IDCT,得到中间值矩阵,再对上述中间值矩阵中纵坐标值小于等于上述最大纵坐标值的CG列进行一维垂直IDCT。

  S904:在最大纵坐标值小于最大横坐标值的情况下,根据各个CG列的目标横坐标值,对每一CG列中包含的非零CG进行一维垂直IDCT,得到中间值矩阵,再对上述中间值矩阵中横坐标值小于等于上述最大横坐标值的CG行进行一维水平IDCT。

  与前述反变换方法相对应,本发明实施例还提供了一种反变换装置。

  参见图10,本发明实施例提供了第一种反变换装置的结构示意图,上述装置包括:

  坐标值确定模块1001,用于确定视频帧中图像块的频域变换系数矩阵内非零系数块CG的最大纵坐标值和最大横坐标值;

  方式确定模块1002,用于根据所述最大纵坐标值和所述最大横坐标值之间的大小关系确定目标反变换方式,其中,所述目标反变换方式为:表征离散余弦反变换IDCT过程中一维水平IDCT和一维垂直IDCT执行顺序的反变换方式;

  结果获得模块1003,用于按照所述目标反变换方式,对目标坐标值不为0的目标反变换单元中、各个第一系数进行IDCT,得到各个第一系数对应的反变换结果,其中,所述目标反变换单元为:所述目标反变换方式表征的优先进行IDCT的CG行或CG列,在目标反变换单元为CG行的情况下,所述目标坐标值为:所述目标反变换单元内非零CG的最大纵坐标值,所述第一系数为:所述目标反变换单元中纵坐标值小于等于所述目标坐标值的CG包含的系数,在目标反变换单元为CG列的情况下,所述目标坐标值为:所述目标反变换单元内非零CG的最大横坐标值,所述第一系数为:所述目标反变换单元中横坐标值小于等于所述目标坐标值的CG包含的系数;

  结果设置模块1004,用于将第二系数对应的反变换结果设置为0,其中,所述第二系数为:所述频域变换系数矩阵中除第一系数外的系数。

  由以上可见,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  本发明的一个实施例中,在上述最大纵坐标值大于等于上述最大横坐标值的情况下,所述目标反变换方式为:表征IDCT过程中先进行一维水平IDCT再进行一维垂直IDCT的反变换方式,参见图11,提供了第二种反变换装置的结构示意图。

  与前述图10所示的实施例相比,上述结果获得模块1003,包括:

  第一矩阵获得子模块1003A,用于对各个目标纵坐标值不为0的CG行中的第一系数进行一维水平IDCT,得到中间值矩阵,其中,所述目标纵坐标值为:CG行内非零CG的最大的纵坐标值,所述中间值矩阵为:包含的CG行的数量与所述频域变换系数矩阵相同、包含的CG列的数量与所述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且所述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维水平反变换结果;

  第一结果获得子模块1003B,用于对所述中间值矩阵内、各个CG列中横坐标小于等于上述最大横坐标值的CG中包含的系数进行一维垂直IDCT,得到各个第一系数对应的反变换结果。

  由以上可见,在进行第一维IDCT与第二维IDCT的过程中均只对非零CG中包含的系数进行计算,因此使得进行IDCT的过程中的计算量较低。

  本发明的一个实施例中,在上述最大纵坐标值小于上述最大横坐标值的情况下,所述目标反变换方式为:表征IDCT过程中先进行一维垂直IDCT再进行一维水平IDCT的反变换方式,参见图12,提供了第三种反变换装置的结构示意图。

  与前述图10所示的实施例相比,上述结果获得模块1003,包括:

  第二矩阵获得子模块1003C,用于对各个目标横坐标值不为0的CG列中第一系数进行一维垂直IDCT,得到中间值矩阵,其中,所述目标横坐标值为:CG列内非零CG的最大的横坐标值,所述中间值矩阵为:包含的CG行的数量与所述频域变换系数矩阵相同、包含的CG列的数量与所述频域变换系数矩阵相同、各个元素的初始元素值为0的矩阵,且所述中间值矩阵中与各个第一系数对应的元素的元素值为:各个第一系数的一维垂直反变换结果;

  第二结果获得子模块1003D,用于对所述中间值矩阵内、各个CG行中纵坐标值小于等于上述最大纵坐标值的CG中包含的系数进行一维水平IDCT,得到各个第一系数对应的反变换结果。

  由以上可见,在进行第一维IDCT与第二维IDCT的过程中均只对非零CG中包含的系数进行计算,因此使得进行IDCT的过程中的计算量较低。

  本发明的一个实施例中,上述CG的大小为以下大小中的一种:

  1×1、2×2、4×4、8×8、16×16、32×32、64×64。

  本发明实施例还提供了一种电子设备,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,

  存储器1303,用于存放计算机程序;

  处理器1301,用于执行存储器1303上所存放的程序时,实现任一反变换方法实施例所述的方法步骤。

  应用本发明实施例提供的电子设备进行反变换时,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

  通信接口用于上述终端与其他设备之间的通信。

  存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

  上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

  在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的反变换方法。

  应用本实施例提供的计算机可读存储介质中存储的计算机程序进行反变换时,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的反变换方法。

  执行本实施例提供的计算机程序产品进行反变换时,根据各个目标坐标值不为0的目标反变换单元中的非零CG包含的系数进行IDCT,而不是对固定区域内的CG中包含的系数进行IDCT。实际进行IDCT的系数根据不同频域变换系数矩阵中非零CG的具体位置而改变,从而准确地只对各个非零CG中包含的系数进行IDCT,其他全零CG中包含的系数对应的反变换结果直接设置为0,从而提高了IDCT过程中确定的非零CG的准确率,进而降低了IDCT过程的计算量。

  在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

  需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

  本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

  以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

《一种反变换方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)