自适应变换类型的空间变化变换的制作方法

文档序号:23068563发布日期:2020-11-25 17:56阅读:97来源:国知局
自适应变换类型的空间变化变换的制作方法
本申请要求2018年5月31日提交的第62678738号美国临时专利申请的优先权,其全部内容特此以全文引用的方式并入。本发明涉及视频解码技术,具体地,涉及采用自适应变换类型的空间变化变换的视频解码方法和相关装置。
背景技术
:如h.265等视频编码是基于预测加变换的框架。在编码器处,图像块(包括多个像素)可分解为预测块和残差块,并将预测信息(例如,预测模式和运动矢量信息)和残差信息(例如,变换模式、变换系数和量化参数)编码到码流中。在解码器处,解析预测信息和残差信息。根据所述预测信息,进行帧内预测或帧间预测以生成预测像素点。根据所述残差信息,依次进行反量化和逆变换以生成残差像素点。将所述预测像素点和所述残差像素点相结合以获得重建像素点。为了提高视频编码效率,开发了空间变化变换(svt)。对于宽度为w,高度为h(即,w×h)的矩形残差块,使用小于残差块的变换块对残差块的一部分进行变换,而不对残差块的其余部分进行编码。svt的基本原理是,残差在残差块中可能并非均匀分布。使用具有自适应位置的较小变换块可以捕获残差块中的主要残差,从而相比对变换残差块中的所有残差进行变换,可以获得更高的编码效率。当对大小为w×h的残差块应用svt时,将变换块的大小和位置信息编码到视频码流中,因此解码器可以重建变换块并将其编排到与残差块相关联的预测块的正确位置。在一个示例中,有三种类型的svt块可用于残差块,如图1所示。(1)svt-i:w_t=w/2,h_t=h/2,其中,w_t和h_t分别表示变换块的宽度和高度,w和h分别表示残差块的宽度和高度。换句话说,变换块的宽度和高度均为残差块的宽度和高度的一半。(2)svt-ii:w_t=w/4,h_t=h;(3)svt-iii:w_t=w,h_t=h/4;将svt块的类型信息编码到码流中。变换块的位置由到残差块的左上顶点的位置偏移(x,y)表示,其中,x表示变换块的左上顶点与残差块的左上顶点之间以像素为单位的水平距离,y表示变换块的左上顶点与残差块的左上顶点之间以像素为单位的垂直距离。使变换块位于残差块内部的每个位置都是一个候选位置。对于残差块,一种类型的svt的候选位置的数量为(w-w_t+1)×(h-h_t+1)。更具体地,对于16×16残差块,当使用svt-i时,有81个候选位置;当使用svt-ii或svt-iii时,有13个候选位置。将x值和y值编码到码流中。为了降低svt-i的复杂度,从81个候选位置中选择32个位置的子集作为svt-i的允许候选位置。该svt方案的一个缺点是位置信息的信令开销大。此外,编码器复杂度可能随着率失真优化(rate-distortionoptimization,rdo)中测试的位置数量的增加而明显增加。由于候选位置的数量随着残差块大小的增加而增加,因此,对于较大的(如32×32或64×128)残差块,开销甚至可能会更大。该svt方案的另一个缺点是变换块的大小是残差块的四分之一。变换块可能不足以大到覆盖残差块中的主要残差。因此,开发了简化的svt。使用两种类型的svt块进行残差编码,其表示为svt-h和svt-v,如图2所示。(1)svt-v:w_t=w/2且h_t=h。(2)svt-h:w_t=w且h_t=h/2。svt-v与svt-ii类似,svt-h与svt-iii类似。与svt-ii和svt-iii相比,svt-v和svt-h中的变换块放大到残差块的一半,使得变换块可以覆盖残差块中的更多残差。通过候选位置步长(candidatepositionstepsize,cpss)确定候选位置。因此,各候选位置以cpss指定的等间距分隔开。候选位置的数量减少到不超过5个,这减少了位置信息的开销,同时降低了决定最佳变换块位置的编码器复杂度。技术实现要素:本发明公开了一种采用自适应变换类型的空间变化变换的视频解码方法和相关装置,以提高解码质量。前述和其他目的通过独立权利要求的主题实现。进一步的实现方式在从属权利要求、说明书和附图中显而易见。根据第一方面,本发明涉及一种视频解码方法。所述方法由视频解码装置执行。所述方法包括:确定对残差块使用空间变化变换(svt);当对所述残差块使用svt时,确定所述残差块的svt类型,其中,所述残差块的所述svt类型为svt-v或svt-h;确定所述残差块的变换块的变换块位置;确定所述变换块的变换类型,其中,所述变换类型指示所述变换块的水平变换和垂直变换,其中,所述水平变换和所述垂直变换中的至少一个为dst-7;基于所述变换块的所述变换类型、所述变换块位置和变换系数重建所述残差块。在根据所述第一方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-v,且所述变换块的所述变换块位置为覆盖所述残差块的左上顶点的位置时,所述水平变换为dct-8,所述垂直变换为dst-7。在根据所述第一方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-v,且所述变换块的所述变换块位置为覆盖所述残差块的右下顶点的位置时,所述水平变换为dst-7,所述垂直变换为dst-7。在根据所述第一方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-h,且所述变换块的所述变换块位置为覆盖所述残差块的所述左上顶点的位置时,所述水平变换为dst-7,所述垂直变换为dct-8。在根据所述第一方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-h,且所述变换块的所述变换块位置为覆盖所述残差块的所述右下顶点的位置时,所述水平变换为dst-7,所述垂直变换为dst-7。根据第二方面,本发明涉及一种视频解码装置,包括:用于确定对残差块使用空间变化变换(svt)的单元;用于当对所述残差块使用svt时,确定所述残差块的svt类型的单元,其中,所述残差块的所述svt类型为svt-v或svt-h;用于确定所述残差块的变换块的变换块位置的单元;用于确定所述变换块的变换类型的单元,其中,所述变换类型指示所述变换块的水平变换和垂直变换,其中,所述水平变换和所述垂直变换中的至少一个为dst-7;用于基于所述变换块的所述变换类型、所述变换块位置和变换系数重建所述残差块的单元。在根据所述第二方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-v,且所述变换块的所述变换块位置为覆盖所述残差块的左上顶点的位置时,所述水平变换为dct-8,所述垂直变换为dst-7。在根据所述第二方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-v,且所述变换块的所述变换块位置为覆盖所述残差块的右下顶点的位置时,所述水平变换为dst-7,所述垂直变换为dst-7。在根据所述第二方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-h,且所述变换块的所述变换块位置为覆盖所述残差块的所述左上顶点的位置时,所述水平变换为dst-7,所述垂直变换为dct-8。在根据所述第二方面的方法的一种可能实现方式中,当所述残差块的所述svt类型为svt-h,且所述变换块的所述变换块位置为覆盖所述残差块的所述右下顶点的位置时,所述水平变换为dst-7,所述垂直变换为dst-7。根据第三方面,本发明涉及一种视频解码装置,包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,配置所述解码器以执行根据所述第一方面的方法。根据第四方面,本发明涉及一种存储计算机指令的非易失性计算机可读存储介质,其中,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据所述第一方面的方法的步骤。由此可见,本发明基于所述svt类型和位置信息自适应地对变换块使用多种变换类型,从而能够提高解码质量和解码效率。此外,在一些实施例中,通过限制变换算法的数量,可以简化解码装置的实现。附图说明图1是svt-i、svt-ii和svt-iii的图示;图2是svt-v和svt-h的图示;图3是svt-v和svt-h块的候选位置的图示;图4是具有3个候选位置的svt-v和svt-h的图示;图5是本发明的一个实施例提供的视频解码方法的流程图;图6是本发明的一个实施例提供的视频解码装置的结构示意图。具体实施方式本发明提出了一种改进的svt方案。改进之处在于,基于svt类型和svt块位置来确定svt块的水平变换类型和垂直变换类型。所述水平变换可以与所述垂直变换不同。第一实施例描述了对残差块进行解码的过程。对包括视频数据的至少一个图像的码流进行解码。将图像划分成多个矩形图像区域,每个区域对应一个编码树单元(codingtreeunit,ctu)。根据码流中包括的块分割信息,将ctu分割成多个块,如hevc中的编码单元。从码流中解析块的编码信息,并基于该编码信息重建块的像素。在一个实施例中,svt只用于帧间预测块。在另一个实施例中,svt还可以用于帧内预测块。在一个示例中,可以使用特定帧间预测方法(例如,基于平移模型的运动补偿)对块进行svt,但是不能使用某些其他帧间预测方法(例如,基于仿射模型的运动补偿)对块进行svt。在另一个示例中,可以使用融合模式或运动矢量差值精度为1/4像素的先进的运动矢量预测(advancedmotionvectorprediction,amvp)模式对预测块进行svt,但是不能使用仿射融合模式、仿射帧间模式或运动矢量差值精度为1个像素或4个像素的amvp模式对预测块使用svt。在另一个示例中,可以使用融合指数小于2的融合模式对预测块进行svt,但是不能使用融合指数不小于2的融合模式对预测块进行svt。在h.265/hevc标准中都可以参考融合模式和amvp模式。在联合视频探索团队(jointvideoexplorationteam,jvet)的联合探索模型(jointexplorationmodel,jem)编解码器中可以参考仿射融合模式和仿射帧间模式。在一个示例中,块可以指编码单元,其中,编码单元可以包括一个预测块和一个残差块。预测块可以包括编码单元的所有预测像素点,残差块可以包括编码单元的所有残差像素点,预测块的大小与残差块相同。在另一个示例中,块可以指编码单元,其中,编码单元可以包括两个预测块和一个残差块,其中,每个预测块可以包括编码单元的一部分预测像素点,残差块可以包括编码单元的所有残差像素点。在另一个示例中,块可以指编码单元,其中,编码单元可以包括两个预测块和四个残差块。可以在码流中信号发送编码单元中残差块的分割模式,如hevc中的残差四叉树(residualquad-tree,rqt)。块可以仅包括图像像素点(或像素)的y分量(亮度分量),也可以包括图像像素点的y分量、u(色度)分量和v(色度)分量。可以通过以下步骤重建大小为w×h的残差块ro。步骤1:确定残差块ro的变换块大小。步骤1.1:根据语法元素确定svt的使用。对于允许使用svt的残差块,如果残差块具有y分量的非零变换系数(或具有任何颜色分量的非零变换系数),则从码流中解析标志(即svt_flag)。该标志指示是使用大小与残差块相同的变换块对残差块进行编码(例如,svt_flag=0)还是使用大小比残差块大小更小的变换块对残差块进行编码(例如,svt_flag=1)。块是否具有颜色分量的非零变换系数可以通过颜色分量的编码块标志(codedblockflag,cbf)来指示,如hevc中使用的。块是否具有任何颜色分量的非零变换系数可以通过根编码块标志(根cbf)来指示,如hevc中使用的。在一个示例中,如果满足以下条件,则允许对块使用svt:(1)使用帧间预测来预测块;(2)块宽度或块高度在预定范围[a1,a2]内,例如,a1=16且a2=64,或a1=8且a2=64,或a1=16且a2=128。a1和a2的值可以是固定值。该值还可以从序列参数集(sequenceparameterset,sps)或条带头导出。在另一个示例中,如果满足以下条件,则允许对块使用svt:(1)使用融合指数小于阈值(例如,1或2或3)的融合模式或使用运动矢量差值精度为1/4像素的amvp模式预测块;(2)所述块的一个维度在预定范围[a1,a2]内,所述块的另一个维度不大于阈值a3,例如a1=8,a2=32,a3=32。参数a1可以设置为最小变换大小的两倍,a2和a3可以都设置为最大变换大小。a1、a2和a3的值可以是固定值。该值还可以从序列参数集(sps)或条带头导出。如果块不使用svt,则变换块大小设置为w×h。否则,将应用步骤1.2来确定变换大小。步骤1.2:根据语法元素确定svt的类型,并根据svt类型推导出变换块大小。基于残差块的宽度和高度决定残差块的所允许svt类型。当w在[a1,a2]范围内且h不大于a3时,允许使用svt-v;当h在[a1,a2]范围内且w不大于a3时,允许使用svt-h。svt可以仅用于y分量,也可以用于全部三个分量,即y分量、u分量和v分量。当svt仅用于y分量时,通过svt变换y分量残差,根据残差块的大小变换u分量和v分量。当svt-v和svt-h都允许使用时,从码流中解析出一个标志(即svt_type_flag),该标志指示是对残差块使用svt-v(例如,svt_type_flag=0)还是使用svt-h(例如,svt_type_flag=1),并根据信号发送的svt类型设置变换块大小(即,对于svt-v,w_t=w/2且h_t=h;对于svt-h,w_t=w且h_t=h/2)。当只允许使用svt-v或只允许使用svt-h时,不从码流中解析svt_type_flag,并根据允许的svt类型设置变换块大小。步骤2:根据语法元素确定变换块位置,并基于svt的类型和变换块位置信息确定变换块的变换类型。步骤2.1:根据语法元素确定变换块位置。从码流中解析出位置索引p,确定变换块左上顶点到残差块左上顶点的位置偏移z为z=s×p,其中s为候选位置步长(cpss)。如果使用svt-v,则p值为如果使用svt-h,则p值为更具体地,令(0,0)表示残差块左上顶点的坐标,对于svt-v,变换块左上顶点的坐标为(z,0),对于svt-h,变换块左上顶点的坐标为(0,z)。在一个示例中,对于svt-v,cpss计算为s=w/m1,或对于svt-h,cpss计算为s=h/m2,其中,w和h分别为残差块的宽度和高度,m1和m2是在2到8范围内的预定整数。m1或m2值越大,所允许的候选位置越多。在该示例中,m1和m2都设置为8。因此,p值在0到4之间。候选位置如图3所示。在另一个示例中,对于svt-v,cpss计算为s=max(w/m1,th1),对于svt-h,cpss计算为s=max(h/m2,th2),其中th1和th2是指定最小步长的预定义整数。th1和th2是不小于2的整数。在该示例中,th1和th2设置为4,m1和m2设置为8。在该示例中,不同的块大小可以具有不同数量的候选位置。例如,当w=8时,有2个候选位置(如图5(a)和图5(e)所示)可供选择;当w=16时,有3个候选位置(如图5(a)、图5(c)和图5(e)所示)可供选择;当w>16时,有5个位置可供选择。在另一个示例中,对于svt-v,cpss计算为s=w/m1,或对于svt-h,s=h/m2,其中m1和m2设置为4。因此,有3个候选位置可用。在另一个示例中,对于svt-v,cpss计算为s=w/m1,或对于svt-h,s=h/m2,其中m1和m2设置为2。因此,有2个候选位置可用。在另一个示例中,对于svt-v,cpss计算为s=max(w/m1,th1),对于svt-h,cpss计算为s=max(h/m2,th2),其中,t1和t2设置为2,当w≥h时,m1设置为8,当w<h时,m1设置为4;当h≥w时,m2设置为8,当h<w时,m2设置为4。在这种情况下,svt-h或svt-v的候选位置数量还取决于残差块的长宽比。在另一个示例中,对于svt-v,cpss计算为s=max(w/m1,th1),或者对于svt-h,cpss计算为s=max(h/m2,th2),其中m1、m2、th1和th2的值是从码流中的高阶语法结构(例如,序列参数集)推导出的。m1和m2可以共用从语法元素解析出来的相同值,th1和th2可以共用从另一个语法元素解析出来的相同值。位置索引p可以使用截断一元码二值化为一个或多个位元。例如,如果p值在0到4的范围内,则p值0、4、2、3和1分别被二值化为0、01、001、0001和0000;如果p值在0到1的范围内,则p值0和1分别被二值化为0和1。位置索引p可以使用一个最可能位置和若干剩余位置来二值化为一个或多个位元。当左相邻位置和上相邻位置可用时,最可能位置可以设置为覆盖残差块的右下顶点的位置。在一个示例中,如果p值在0到4的范围内且位置4设置为最可能位置,则p值4、0、1、2和3分别二值化为1、000、001、010和011;如果p值在0到2的范围内且位置2设置为最可能位置,则p值2、0和1分别二值化为1、01和00。步骤2.2:基于svt的类型和变换块位置信息,确定变换块的变换类型。变换类型包括二维可分变换的水平变换和垂直变换。以允许有3个候选位置为例,如图4所示。位置0覆盖左上顶点,位置2覆盖右下顶点。位置1在残差块的中间。如图4所示,svt-v和svt-h都有三个位置。在另一个示例中,允许有2个候选位置。位置0覆盖左上顶点,位置1覆盖右下顶点(与图4中的位置2相同)。也就是说,svt-v和svt-h都有两个位置。二维变换可以分为一维水平变换和垂直变换。将残差转换为变换系数的正二维变换可以通过以下方式实现:首先对残差块应用水平变换以生成块ta,然后对块ta应用垂直变换以生成变换系数块,如jem编解码器中实现的那样。相应地,将变换系数转换回残差的逆二维变换可以通过以下方式实现:首先对变换系数块应用逆垂直变换以生成块tb,然后对块tb应用逆水平变换以生成残差块,如jem编解码器中实现的那样。在一个示例中,svt-v位置0的水平变换和垂直变换是dct-8和dst-7;svt-v位置1的水平变换和垂直变换是dst-1和dst-7;svt-v位置2的水平变换和垂直变换为dst-7和dst-7;svt-h位置0的水平变换和垂直变换为dst-7和dct-8;svt-h位置1的水平变换和垂直变换为dst-7和dst-1;svt-h位置2的水平变换和垂直变换为dst-7和dst-7,如表i所示。在该示例中,svt-v的垂直变换和svt-h的水平变换设置为dst-7,而其他变换是基于svt位置。表i.不同svt类型和位置的一维水平变换和垂直变换的示例svt类型,位置水平变换垂直变换svt-v,位置0dct-8dst-7svt-v,位置1dst-1dst-7svt-v,位置2dst-7dst-7svt-h,位置0dst-7dct-8svt-h,位置1dst-7dst-1svt-h,位置2dst-7dst-7在另一个示例中,在表ii中列出了不同svt类型和位置的水平变换和垂直变换。在该示例中,svt-v的垂直变换和svt-h的水平变换设置为dct-2,而其他变换是基于svt位置。表ii.不同svt类型和位置的一维水平变换和垂直变换的示例svt类型,位置水平变换垂直变换svt-v,位置0dct-8dct-2svt-v,位置1dst-1dct-2svt-v,位置2dst-7dct-2svt-h,位置0dct-2dct-8svt-h,位置1dct-2dst-1svt-h,位置2dct-2dst-7在另一个示例中,在表iii中列出了不同svt类型和位置的水平变换和垂直变换。在该示例中,仅通过svt位置决定水平变换和垂直变换。表iii.不同svt类型和位置的一维水平变换和垂直变换的示例svt类型,位置水平变换垂直变换svt-v,位置0dct-8dct-8svt-v,位置1dst-1dst-1svt-v,位置2dst-7dst-7svt-h,位置0dct-8dct-8svt-h,位置1dst-1dst-1svt-h,位置2dst-7dst-7在另一个示例中,在表iv中列出了不同svt类型和位置的水平变换和垂直变换。表iv.不同svt类型和位置的一维水平变换和垂直变换的示例svt类型,位置水平变换垂直变换svt-v,位置0dst-7dct-8svt-v,位置1dst-7dst-1svt-v,位置2dst-7dst-7svt-h,位置0dct-8dst-7svt-h,位置1dst-1dst-7svt-h,位置2dst-7dst-7在另一个示例中,在表v中列出了不同svt类型和位置的水平变换和垂直变换。表v.不同svt类型和位置的一维水平变换和垂直变换的示例svt类型,位置水平变换垂直变换svt-v,位置0dct-8dst-7svt-v,位置1dct-2dst-7svt-v,位置2dst-7dst-7svt-h,位置0dst-7dct-8svt-h,位置1dst-7dct-2svt-h,位置2dst-7dst-7在另一个示例中,在表vi中列出了不同svt类型和位置的水平变换和垂直变换。表vi.不同svt类型和位置的一维水平变换和垂直变换的示例svt类型,位置水平变换垂直变换svt-v,位置0dct-8dct-2svt-v,位置1dct-2dct-2svt-v,位置2dst-7dct-2svt-h,位置0dct-2dct-8svt-h,位置1dct-2dct-2svt-h,位置2dct-2dst-7位置相关的多种变换可以仅应用于亮度变换块,相应的色度变换块在逆变换过程中总是使用逆dct-2。步骤3:基于变换块大小解析变换块的变换系数。这是视频解码中常用的过程,如hevc或h.264/avc中的变换系数解析。变换系数可以使用游程编码进行编码,或更复杂地编码为变换系数群(coefficientgroup,cg)的集合。步骤3可以在步骤2之前进行。步骤4:基于变换系数、变换块位置和逆变换类型重建残差块ro。对变换系数应用大小w_t×h_t的反量化和逆变换来恢复残差像素点。残差像素点的大小为w_t×h_t,与变换块大小相同。逆变换是二维可分变换。首先通过垂直逆变换对解量化的变换系数块进行变换以生成块tc,然后通过逆水平变换对块tc进行变换,其中,在步骤2.2中基于变换块位置或者基于变换块的变换块位置和svt类型共同确定水平逆变换和垂直逆变换。根据变换块位置,将残差像素点分配到残差块ro内的对应区域,并将残差块内的剩余像素点设置为零。例如,如果使用svt-v,候选位置数量为5且位置索引为4,则将重建残差像素点分配到图3(e)中的区域a,而区域a左侧、大小为(w/2)×h的区域具有零残差。在执行步骤1到步骤4之后,重建残差块可以与预测块组合以在编码单元中生成重建像素点。之后可以对重建像素点应用滤波过程,如hevc中的去块滤波器和像素点自适应偏移(sampleadaptiveoffset,sao)处理。与现有解决方案不同,本发明基于svt类型和位置信息自适应地对变换块使用多种变换类型。图5是采用自适应变换类型的空间变化变换的视频解码的示例性方法的流程图。在接收到码流时,可以在解码器处启动该方法。该方法利用码流确定预测块和变换残差块。该方法还可以确定变换块,利用该变换块确定残差块。然后,利用残差块和预测块重建图像块。应注意,虽然从解码器的角度对方法进行了描述,但可以采用类似方法(例如,逆过程)通过svt对视频进行编码。其中,该方法包括:步骤501:确定对残差块使用svt。具体确定过程与步骤1.1类似。步骤502:当对所述残差块使用svt时,确定所述残差块的svt类型,其中,所述残差块的所述svt类型为svt-v类型或svt-h类型;其中,所述svt-v类型指示所述残差块的变换块的宽度为所述残差块的宽度的一半,所述变换块的高度与所述残差块的高度相同(如图4所示);所述svt-h类型指示所述变换块的宽度与所述残差块的宽度相同,所述变换块的高度为所述残差块的高度的一半(如图4所示)。具体确定过程与步骤1.2类似。步骤503:根据所述svt类型推导出所述变换块的变换块大小。具体推导过程与步骤1.2类似。步骤504:确定所述变换块的变换块位置。具体确定过程可与步骤2.1类似。或者,当svt类型有两个候选位置时,可以采用一个位标志来指示残差块的变换块的变换块位置。例如,当仅图4的位置0和位置2用于svt-v时,一个位标志足以指示变换块位置是位置0还是位置2。当仅图4的位置0和位置2用于svt-h时,一个位标志足以指示变换块位置是位置0还是位置2。步骤505:根据所述变换块的所述svt类型和所述变换块位置确定所述变换块的变换类型,其中,所述变换类型指示所述变换块的水平变换和垂直变换,其中,所述水平变换和所述垂直变换中的至少一个为dst-7。具体确定过程可与步骤2.2类似。具体的变换类型可以是如上文所述的表i、表iv和表v中的任一个表中的任何变换类型,也可以是包括如上文所述的表ii、表iii和表vi中的任一个表的dst-7的任何变换类型。例如,当所述残差块的所述svt类型为所述svt-v类型,并且所述变换块的所述变换块位置为覆盖所述残差块的左上顶点的位置(即,图4的位置0)时,所述水平变换为dct-8,所述垂直变换为dst-7。例如,当所述残差块的所述svt类型为所述svt-v类型,并且所述变换块的所述变换块位置为覆盖所述残差块的右下顶点的位置(即,图4的位置2)时,所述水平变换为dst-7,所述垂直变换为dst-7。例如,当所述残差块的所述svt类型为所述svt-h类型,并且所述变换块的所述变换块位置为覆盖所述残差块的左上顶点的位置(即,图4的位置0)时,所述水平变换为dst-7,所述垂直变换为dct-8。例如,当所述残差块的所述svt类型为所述svt-h类型,并且所述变换块的所述变换块位置为覆盖所述残差块的右下顶点的位置(即,图4的位置2)时,所述水平变换为dst-7,所述垂直变换为dst-7。步骤506:根据所述变换块大小解析所述变换块的变换系数。具体解析过程可与步骤3类似。步骤507:基于所述变换块的所述变换类型、所述变换块位置和变换系数重建所述残差块。具体确定过程可与步骤4类似。由此可见,本发明基于所述svt类型和位置信息自适应地对变换块使用多种变换类型,从而能够提高解码质量和解码效率;此外,在一些实施例中,变换算法的数量受到限制,从而可以简化解码装置的实现。本发明公开了一种用于实现本申请技术的视频解码装置,其中,所述视频解码装置包括:用于确定对残差块使用空间变化变换(svt)的单元。具体确定过程与步骤1.1类似。用于当对所述残差块使用svt时,确定所述残差块的svt类型的单元,其中,所述残差块的所述svt类型为svt-v类型或svt-h类型;其中,所述svt-v类型指示所述残差块的变换块的宽度为所述残差块的宽度的一半,所述变换块的高度与所述残差块的高度相同;所述svt-h类型指示所述变换块的宽度与所述残差块的宽度相同,所述变换块的高度为所述残差块的高度的一半。具体确定过程与步骤1.2类似。用于根据所述svt类型推导出所述变换块的变换块大小的单元。具体推导过程与步骤1.2类似。用于确定所述变换块的变换块位置的单元。具体确定过程可与步骤2.1类似。或者,当svt类型有两个候选位置时,可以采用一个位标志来指示残差块的变换块的变换块位置。例如,当仅图4的位置0和位置2用于svt-v时,一个位标志足以指示变换块位置是位置0还是位置2。当仅图4的位置0和位置2用于svt-h时,一个位标志足以指示变换块位置是位置0还是位置2。用于根据所述变换块的所述svt类型和所述变换块位置确定所述变换块的变换类型的单元,其中,所述变换类型指示所述变换块的水平变换和垂直变换,其中,所述水平变换和所述垂直变换中的至少一个为dst-7。具体确定过程可与步骤2.2类似。用于根据所述变换块大小解析所述变换块的变换系数的单元。具体解析过程可与步骤3类似。用于基于所述变换块的所述变换类型、所述变换块位置和变换系数重建所述残差块的单元。具体确定过程可与步骤4类似。具体的变换类型可以是如上文所述的表i、表iv和表v中的任一个表中的任何变换类型,也可以是包括如上文所述的表ii、表iii和表vi中的任一个表的dst-7的任何变换类型。例如,当所述残差块的所述svt类型为所述svt-v类型,并且所述变换块的所述变换块位置为覆盖所述残差块的左上顶点的位置(即,图4的位置0)时,所述水平变换为dct-8,所述垂直变换为dst-7。例如,当所述残差块的所述svt类型为所述svt-v类型,并且所述变换块的所述变换块位置为覆盖所述残差块的右下顶点的位置(即,图4的位置2)时,所述水平变换为dst-7,所述垂直变换为dst-7。例如,当所述残差块的所述svt类型为所述svt-h类型,并且所述变换块的所述变换块位置为覆盖所述残差块的左上顶点的位置(即,图4的位置0)时,所述水平变换为dst-7,所述垂直变换为dct-8。例如,当所述残差块的所述svt类型为所述svt-h类型,并且所述变换块的所述变换块位置为覆盖所述残差块的右下顶点的位置(即,图4的位置2)时,所述水平变换为dst-7,所述垂直变换为dst-7。本发明公开了另一种用于实现本申请技术的视频解码装置,其中,所述视频解码装置包括:一个或多个处理器;非易失性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,将所述解码装置配置成执行如上所述的任一种方法。本发明公开了一种存储计算机指令的非易失性计算机可读存储介质,其中,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行如上所述的任一种方法的步骤。图6为本发明实施例提供的编码设备900的示意图。编码设备900适用于实现本文描述的公开实施例。编码设备900包括:入端口910和接收器单元(rx)920,用于接收数据;处理器、逻辑单元或中央处理单元(centralprocessingunit,cpu)930,用于处理数据;发射器单元(tx)940和出端口950,用于传输数据;存储器960,用于存储数据。编码设备900还可以包括耦合到入端口910的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件、接收器单元920、发射器单元940,以及用于光信号或电信号出或入的出端口950。处理器930通过硬件和软件实现。处理器930可以实现为一个或多个cpu芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmablegatearray,fpga)、专用集成电路(applicationspecificintegratedcircuit,asic)和数字信号处理器(digitalsignalprocessor,dsp)。处理器930与入端口910、接收器单元920、发射器单元940、出端口950和存储器960通信。处理器930包括编码模块970。编码模块970实施上述实施例。例如,编码模块970实施、处理、解析、准备或提供各种图形处理和计算。因此,包括编码模块970为设备900的功能提供了显著改进,实现了设备900到不同状态的转换。或者,以存储在存储器960中并由处理器930执行的指令来实现编码模块970。存储器960包括一个或多个磁盘、磁带驱动器和固态硬盘,可用作溢出数据存储设备,以在选择执行程序时存储这类程序,并存储在程序执行期间读取的指令和数据。存储器960可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)和/或静态随机存取存储器(staticrandom-accessmemory,sram)。下文参考文献以引用的方式并入本文本中,如同全文再现一般:虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其他特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实施某些特征。另外,在不偏离本发明范围的情况下,各种实施例中描述及图示的独立或分离的技术、系统、子系统和方法可与其他系统、模块、技术或方法结合或集成。所示或讨论为彼此耦合、或直接耦合、或相互通信的其他项目可通过某种接口、设备或中间组件以电方式、机械方式等间接耦合或通信。变化、替换和变更的其他示例可由本领域技术人员确定,并可在不偏离本文公开的精神和范围的情况下举例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1