视频解码方法、装置、计算机可读介质及电子设备与流程

文档序号:24387784发布日期:2021-03-23 11:22阅读:63来源:国知局
视频解码方法、装置、计算机可读介质及电子设备与流程

本申请涉及计算机及通信技术领域,具体而言,涉及一种视频解码方法、装置、计算机可读介质及电子设备。



背景技术:

在视频编码过程中,编码端通常需要对原始视频数据与预测视频数据之间的残差数据进行变换、量化及熵编码处理之后发送给解码端。由于残差数据的多样性,单一的dct(discretecosinetransform,离散余弦变换)变换核无法适应所有的残差特性,因此对于一个残差块可能需要选择多个dct变换核或dst(discretesinetransform,离散正弦变换)变换核作为变换矩阵组合,在这种情况下,虽然提升了变换矩阵组合对残差块的适应性,但是由于需要针对每个编码单元(codingunit,简称cu)来编码变换核的索引,因此导致编码效率较低。



技术实现要素:

本申请的实施例提供了一种视频解码方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以有效提高视频编码效率。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的一个方面,提供了一种视频解码方法,包括:对视频图像帧的编码块进行熵解码处理,获得所述编码块对应的残差数据的量化系数块;对所述量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,分别计算所述各个区域的统计结果针对设定值的余数,得到所述各个区域的余数;根据所述各个区域的余数选择所述编码块对应的变换矩阵组合;基于选择的变换矩阵组合对所述量化系数块的反量化结果进行反变换处理。

根据本申请实施例的一个方面,提供了一种视频解码装置,包括:解码单元,配置为对视频图像帧的编码块进行熵解码处理,获得所述编码块对应的残差数据的量化系数块;统计单元,配置为对所述量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,分别计算所述各个区域的统计结果针对设定值的余数,得到所述各个区域的余数;选择单元,配置为根据所述各个区域的余数选择所述编码块对应的变换矩阵组合;处理单元,配置为基于选择的变换矩阵组合对所述量化系数块的反量化结果进行反变换处理。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第一确定单元,配置为根据指定的索引标识的取值,确定对应的编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,其中,所述指定的索引标识包括在以下至少之一中:视频图像帧序列对应的第一编码数据的序列头、视频图像帧对应的第二编码数据的图像头、视频图像帧的一个条带对应的第三编码数据的条带头、视频图像帧的一个lcu(largestcodingunit,最大编码单元)对应的第四编码数据的lcu头。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在一个视频图像帧序列对应的第一编码数据的序列头部包含的指定的索引标识的值为第一值时,确定所述第一编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在一个视频图像帧对应的第二编码数据的图像头部包含的指定的索引标识的值为第一值时,确定所述第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的指定的索引标识的值为第一值时,确定所述第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在视频图像帧的一个lcu对应的第四编码数据的lcu头部信息包含的指定的索引标识的值为第一值时,确定所述第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第二确定单元,配置为根据所述编码块的尺寸大小和预设阈值范围之间的关系,确定所述编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第三确定单元,配置为在一个视频图像帧序列对应的第一编码数据的序列头部包含的索引标识为第一值时,确定所述第一编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;并且配置为在所述序列头部包含的索引标识为第二值,且所述视频图像帧序列中的一个视频图像帧所对应的第二编码数据的图像头部包含的索引标识为第一值时,确定所述第二编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值,且所述图像头部包含的索引标识为第二值时,确定所述第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值,且所述视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的索引标识为第一值时,确定所述第三编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值时,确定所述第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值,且所述条带的一个lcu对应的第四编码数据的lcu头部信息包含的索引标识为第一值时,确定所述第四编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值,且所述lcu头部信息包含的索引标识为第二值时,确定所述第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值、所述lcu头部信息包含的索引标识为第二值,则根据所述第四编码数据中的各个编码块的尺寸大小和预设阈值范围之间的关系,确定所述各个编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述目标编码块为以下任一:采用帧内编码模式的编码块、采用帧间编码模式的编码块、相应编码数据中的所有编码块。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第四确定单元,配置为根据一个视频图像帧序列对应的第一编码数据的序列头部包含的第一指示位的值和第二指示位的值,分别确定所述第一编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;或

根据一个视频图像帧对应的第二编码数据的图像头部包含的第一指示位的值和第二指示位的值,分别确定所述第二编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;或

根据视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的第一指示位的值和第二指示位的值,分别确定所述第三编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;或

根据视频图像帧的一个lcu对应的第四编码数据的lcu头部信息包含的第一指示位的值和第二指示位的值,分别确定所述第四编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述统计单元配置为:对于所述至少两个区域中的任意一个目标区域,通过以下方式计算所述目标区域的统计结果:

计算所述目标区域内的量化系数的数值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内的量化系数的绝对值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为奇数的量化系数的数值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为奇数的量化系数的绝对值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为偶数或非零偶数的量化系数的数值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为偶数或非零偶数的量化系数的绝对值之和,将得到的和值作为所述目标区域的统计结果。

在本申请的一些实施例中,基于前述方案,所述统计单元配置为:对于所述至少两个区域中的任意一个目标区域,将所述目标区域内的量化系数的数值进行线性映射,计算所述目标区域内的量化系数在线性映射之后的数值或绝对值之和,将得到的和值作为所述目标区域的统计结果,其中,所述线性映射包括:

将所述目标区域内数值为奇数的量化系数的数值转换为第一数值,将数值为偶数的量化系数的数值转换为第二数值,其中,所述第一数值和所述第二数值中的一个为奇数,另一个为偶数;或

将所述目标区域内的非零量化系数的数值转换为第三数值,将数值为零的量化系数的数值转换为第四数值,其中,所述第三数值和所述第四数值中的一个为奇数,另一个为偶数;或

将所述目标区域内的量化系数的数值减少或增加第五数值;或

将所述目标区域内的量化系数的数值乘以或除以非零的第六数值;或

将所述目标区域内的量化系数的数值乘以或除以非零偶数。

在本申请的一些实施例中,基于前述方案,所述至少两个区域包括以下区域中的至少两个:

所述量化系数块中的全部区域;

所述量化系数块中指定的一个位置或多个位置;

所述量化系数块中指定的至少一行;

所述量化系数块中指定的至少一列;

所述量化系数块中指定的至少一行和指定的至少一列;

所述量化系数块中处于至少一条斜线上的位置;

所述量化系数块中的srcc(scanregioncoefficientcoding,扫描区域系数编码)区域;

所述srcc区域中指定的一个位置或多个位置;

所述srcc区域中指定的至少一行;

所述srcc区域中指定的至少一列;

所述srcc区域中指定的至少一行和指定的至少一列;

所述srcc区域中处于至少一条斜线上的位置。

在本申请的一些实施例中,基于前述方案,所述srcc区域中指定的一个位置或多个位置包括:按照扫描顺序的前n个位置或按照扫描顺序处于中间的n个位置,n为非0的自然数。

在本申请的一些实施例中,基于前述方案,所述选择单元配置为:根据所述各个区域的余数,生成所述至少两个区域对应的余数组合;根据余数组合与变换矩阵组合之间的对应关系,选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述余数组合与变换矩阵组合之间的对应关系是根据所述余数组合的取值,基于dct变换核和/或dst变换核之间的组合进行预先设定的。

在本申请的一些实施例中,基于前述方案,数值为指定值的余数组合用于表示所述编码块跳过了变换处理过程。

在本申请的一些实施例中,基于前述方案,所述变换矩阵组合包括dct2、dct5、dct8、dst1、dst7中任意至少一种的组合。

在本申请的一些实施例中,基于前述方案,所述统计单元对所述量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,分别计算所述各个区域的统计结果针对设定值的余数,得到所述各个区域的余数;以及所述选择单元根据所述各个区域的余数选择对应的变换矩阵组合的过程,包括:

按照设定顺序对所述至少两个区域中的第一区域内的量化系数进行统计得到所述第一区域的统计结果,并计算所述第一区域的余数;

若根据所述第一区域的余数不能选择出对应的变换矩阵组合,则继续对所述至少两个区域中的第二区域内的量化系数进行统计得到所述第二区域的统计结果,并计算所述第二区域的余数,以及根据所述第二区域的余数确定是否能够选择出对应的变换矩阵组合,直至根据所述至少两个区域的余数选择出对应的变换矩阵组合。

根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的视频解码方法。

根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的视频解码方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的视频解码方法。

在本申请的一些实施例所提供的技术方案中,通过对量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,然后分别计算各个区域的统计结果针对设定值的余数得到各个区域的余数,以根据各个区域的余数选择对应的变换矩阵组合,并基于选择的变换矩阵组合对量化系数块的反量化结果进行反变换处理,使得能够通过量化系数块中的量化系数来隐含指示编码块对应的变换矩阵组合,无需编码端针对每个编码单元都编码变换矩阵的索引,降低了变换矩阵索引所占用的比特位,进而可以有效提高视频编码效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;

图2示出视频编码装置和视频解码装置在流式传输系统中的放置方式示意图;

图3示出了一个视频编码器的基本流程图;

图4示出了通过srcc技术标记出的扫描区域;

图5示出了对标记出的扫描区域进行扫描的顺序示意图;

图6示出了根据本申请的一个实施例的视频解码方法的流程图;

图7示出了根据本申请的一个实施例的指定区域的划分方式示意图;

图8示出了根据本申请的一个实施例的指定区域的划分方式示意图;

图9示出了根据本申请的一个实施例的指定区域的划分方式示意图;

图10示出了根据本申请的一个实施例的视频解码装置的框图;

图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。

如图1所示,系统架构100包括多个终端装置,所述终端装置可通过例如网络150彼此通信。举例来说,系统架构100可以包括通过网络150互连的第一终端装置110和第二终端装置120。在图1的实施例中,第一终端装置110和第二终端装置120执行单向数据传输。

举例来说,第一终端装置110可对视频数据(例如由终端装置110采集的视频图片流)进行编码以通过网络150传输到第二终端装置120,已编码的视频数据以一个或多个已编码视频码流形式传输,第二终端装置120可从网络150接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。

在本申请的一个实施例中,系统架构100可以包括执行已编码视频数据的双向传输的第三终端装置130和第四终端装置140,所述双向传输比如可以发生在视频会议期间。对于双向数据传输,第三终端装置130和第四终端装置140中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络150传输到第三终端装置130和第四终端装置140中的另一终端装置。第三终端装置130和第四终端装置140中的每个终端装置还可接收由第三终端装置130和第四终端装置140中的另一终端装置传输的已编码视频数据,且可对已编码视频数据进行解码以恢复视频数据,并可根据恢复的视频数据在可访问的显示装置上显示视频图片。

在图1的实施例中,第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140可为服务器、个人计算机和智能电话,但本申请公开的原理可不限于此。本申请公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络150表示在第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。

在本申请的一个实施例中,图2示出视频编码装置和视频解码装置在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字tv(television,电视机)、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。

流式传输系统可包括采集子系统213,采集子系统213可包括数码相机等视频源201,视频源创建未压缩的视频图片流202。在实施例中,视频图片流202包括由数码相机拍摄的样本。相较于已编码的视频数据204(或已编码的视频码流204),视频图片流202被描绘为粗线以强调高数据量的视频图片流,视频图片流202可由电子装置220处理,电子装置220包括耦接到视频源201的视频编码装置203。视频编码装置203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流202,已编码的视频数据204(或已编码的视频码流204)被描绘为细线以强调较低数据量的已编码的视频数据204(或已编码的视频码流204),其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统206和客户端子系统208,可访问流式传输服务器205以检索已编码的视频数据204的副本207和副本209。客户端子系统206可包括例如电子装置230中的视频解码装置210。视频解码装置210对已编码的视频数据的传入副本207进行解码,且产生可在显示器212(例如显示屏)或另一呈现装置上呈现的输出视频图片流211。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据204、视频数据207和视频数据209(例如视频码流)进行编码。该些标准的实施例包括itu-th.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(versatilevideocoding,vvc),本申请可用于vvc标准的上下文中。

应注意,电子装置220和电子装置230可包括图中未示出的其它组件。举例来说,电子装置220可包括视频解码装置,且电子装置230还可包括视频编码装置。

在本申请的一个实施例中,以国际视频编码标准hevc(highefficiencyvideocoding,高效率视频编码)、vvc(versatilevideocoding,多功能视频编码),以及中国国家视频编码标准avs(audiovideocodingstandard,信源编码标准)为例,当输入一个视频帧图像之后,会根据一个块大小,将视频帧图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作ctu(codingtreeunit,编码树单元),或者称之为lcu。ctu再往下可以继续进行更加精细的划分,得到一个或多个基本的编码单元cu,cu是一个编码环节中最基本的元素。以下介绍对cu进行编码时的一些概念:

预测编码(predictivecoding):预测编码包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前cu决定选择哪一种预测编码模式,并告知解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域;帧间预测是指预测的信号来自已经编码过的、不同于当前图像的其它图像(称之为参考图像)。

变换及量化(transform&quantization):残差视频信号经过dft(discretefouriertransform,离散傅里叶变换)、dct等变换操作后,将信号转换到变换域中,称之为变换系数。变换系数进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此编码端也需要为当前cu选择其中的一种变换方式,并告知解码端。量化的精细程度通常由量化参数(quantizationparameter,简称qp)来决定,qp取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,qp取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。

熵编码(entropycoding)或统计编码:量化后的变换域信号将根据各个值出现的频率进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的编码模式、运动矢量数据等,也需要进行熵编码以降低码率。统计编码是一种无损的编码方式,可以有效的降低表达同样信号所需要的码率,常见的统计编码方式有变长编码(variablelengthcoding,简称vlc)或者基于上下文的二值化算术编码(contentadaptivebinaryarithmeticcoding,简称cabac)。

环路滤波(loopfiltering):经过变化及量化的信号会通过反量化、反变换及预测补偿的操作获得重建图像。重建图像与原始图像相比由于存在量化的影响,部分信息与原始图像有所不同,即重建图像会产生失真(distortion)。因此,可以对重建图像进行滤波操作,例如去块效应滤波(deblockingfilter,简称db)、sao(sampleadaptiveoffset,自适应像素补偿)或者alf(adaptiveloopfilter,自适应环路滤波)等滤波器,可以有效降低量化所产生的失真程度。由于这些经过滤波后的重建图像将作为后续编码图像的参考来对将来的图像信号进行预测,因此上述的滤波操作也被称为环路滤波,即在编码环路内的滤波操作。

在本申请的一个实施例中,图3示出了一个视频编码器的基本流程图,在该流程中以帧内预测为例进行说明。其中,原始图像信号sk[x,y]与预测图像信号做差值运算,得到残差信号uk[x,y],残差信号uk[x,y]经过变换及量化处理之后得到量化系数,量化系数一方面通过熵编码得到编码后的比特流,另一方面通过反量化及反变换处理得到重构残差信号u'k[x,y],预测图像信号与重构残差信号u'k[x,y]叠加生成图像信号图像信号一方面输入至帧内模式决策模块和帧内预测模块进行帧内预测处理,另一方面通过环路滤波输出重建图像信号s'k[x,y],重建图像信号s'k[x,y]可以作为下一帧的参考图像进行运动估计及运动补偿预测。然后基于运动补偿预测的结果s'r[x+mx,y+my]和帧内预测结果得到下一帧的预测图像信号并继续重复上述过程,直至编码完成。

此外,由于残差信号在经过变换和量化处理后的量化系数块中非零系数较大概率会集中在块的左边和上方区域,而块的右边和下方区域往往为0,因此引入了srcc技术中,通过srcc技术可以标记出每个量化系数块(尺寸为w×h)中包含的非零系数的左上区域的大小srx×sry,其中srx是量化系数块中最右面的非零系数的横坐标,sry是量化系数块中最下面的非零系数的纵坐标,且1≤srx≤w,1≤sry≤h,而该区域外的系数均为0。srcc技术利用(srx,sry)来确定一个量化系数块中需要扫描的量化系数区域,如图4所示,只有(srx,sry)标记的扫描区域内的量化系数需要编码,编码的扫描顺序如图5所示,可以是从右下角到左上角的反向z字型扫描。

基于上述的编码过程,在解码端针对每一个cu,在获取到压缩码流(即比特流)之后,进行熵解码获得各种模式信息及量化系数。然后量化系数经过反量化及反变换处理得到残差信号。另一方面,根据已知的编码模式信息,可获得该cu对应的预测信号,然后将残差信号与预测信号相加之后即可得到重建信号,重建信号再经过环路滤波等操作,产生最终的输出信号。

在上述的编解码过程中,对残差信号的变换处理使得残差信号的能量集中在较少的低频系数,也就是多数系数值较小。然后经过后续的量化模块后,较小系数值将变为零值,极大降低了编码残差信号的代价。但是,由于残差分布的多样性,单一的dct变换无法适应所有的残差特性,因此,dst7和dct8这样的变换核被引入到变换处理过程中,并且对残差信号进行的水平变换和竖直变换可以采用不同的变换核。以amt(adaptivemultiplecoretransform,自适应多核变换)技术为例,对于一个残差信号进行变换处理可能选择的变换组合如下所示:(dct2,dct2)、(dct8,dct8)、(dct8,dst7)、(dst7,dct8)和(dst7,dst7)。

对于残差信号具体选择哪种变换组合,需要在编码端使用rdo(rate–distortionoptimization,率失真优化)进行决策,虽然采用多个变换核提升了变换矩阵组合对残差块的适应性,但是由于需要针对每个编码单元来编码变换核的索引,因此导致编码效率较低。

针对上述问题,本申请的实施例提出了通过量化系数块中的量化系数来隐含指示编码块对应的变换矩阵组合,进而可以降低变换矩阵索引所占用的比特位,有效提高了视频编码效率。

以下对本申请实施例的技术方案的实现细节进行详细阐述:

图6示出了根据本申请的一个实施例的视频解码方法的流程图,该视频解码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。参照图6所示,该视频解码方法至少包括步骤s610至步骤s640,详细介绍如下:

在步骤s610中,对视频图像帧的编码块进行熵解码处理,获得编码块对应的残差数据的量化系数块。

在本申请的一个实施例中,视频图像帧序列包括了一系列图像,每张图像可以被进一步划分为条带(slice),条带又可以划分为一系列的lcu(或ctu),lcu包含有若干cu。视频图像帧在编码时是以块为单位进行编码处理,在一些新的视频编码标准中,比如在h.264标准中有宏块(macroblock,mb),宏块可进一步划分成多个可用于预测编码的预测块(prediction)。在hevc标准中,采用编码单元cu、预测单元(predictionunit,pu)和变换单元(transformunit,tu)等基本概念,从功能上划分了多种块单元,并采用全新的基于树的结构进行描述。比如cu可以按照四叉树划分为更小的cu,而更小的cu还可以继续划分,从而形成一种四叉树结构。本申请实施例中的编码块可以是cu,或者是比cu更小的块,如对cu进行划分得到的更小的块。

在步骤s620中,对量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,分别计算各个区域的统计结果针对设定值的余数,得到各个区域的余数。

在本申请的一个实施例中,可以根据指定的索引标识的取值,确定对应的编码数据中的目标编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,其中,指定的索引标识可以包括在以下至少之一中:视频图像帧序列对应的第一编码数据的序列头、视频图像帧对应的第二编码数据的图像头、视频图像帧的一个条带对应的第三编码数据的条带头、视频图像帧的一个最大编码单元lcu对应的第四编码数据的lcu头。详细说明如下:

在本申请的一个实施例中,可以通过一个视频图像帧序列对应的第一编码数据的序列头部中包含的指定索引标识的值来指示第一编码数据中的目标编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,比如第一编码数据的序列头部中的指定索引标识的值为1,则表示第一编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。该实施例的技术方案使得通过视频图像帧序列对应的第一编码数据的序列头部中的一个索引标识实现了对整个视频图像帧序列对应的所有目标编码块的指示,进而可以有效降低索引标识所占用的比特位,提高了视频编码效率。需要说明的是:第一编码数据中的目标编码块可以是第一编码数据中的所有编码块,或者可以是第一编码数据中采用帧内编码模式的编码块,或者也可以是第一编码数据中采用帧间编码模式的编码块。

在本申请的一个实施例中,可以通过一个视频图像帧对应的第二编码数据的图像头部中包含的指定索引标识的值来指示第二编码数据中的目标编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,比如第二编码数据的图像头部中的指定索引标识的值为1,则表示第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。该实施例的技术方案使得通过视频图像帧对应的第二编码数据的图像头部中的一个索引标识实现了对整个视频图像帧对应的所有目标编码块的指示,同样可以降低索引标识所占用的比特位,提高了视频编码效率。需要说明的是:第二编码数据中的目标编码块可以是第二编码数据中的所有编码块,或者可以是第二编码数据中采用帧内编码模式的编码块,或者也可以是第二编码数据中采用帧间编码模式的编码块。

在本申请的一个实施例中,可以通过视频图像帧的一个条带对应的第三编码数据的条带头部中包含的指定索引标识的值来指示第三编码数据中的目标编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,比如第三编码数据的条带头部中的指定索引标识的值为1,则表示第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。该实施例的技术方案使得通过视频图像帧的一个条带对应的第三编码数据的条带头部中的一个索引标识实现了对整个条带对应的所有目标编码块的指示,同样可以降低索引标识所占用的比特位,提高了视频编码效率。需要说明的是:第三编码数据中的目标编码块可以是第三编码数据中的所有编码块,或者可以是第三编码数据中采用帧内编码模式的编码块,或者也可以是第三编码数据中采用帧间编码模式的编码块。

在本申请的一个实施例中,可以通过视频图像帧的一个lcu对应的第四编码数据的lcu头部中包含的指定索引标识的值来指示第四编码数据中的目标编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,比如第四编码数据的lcu头部中的指定索引标识的值为1,则表示第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。该实施例的技术方案使得通过视频图像帧的一个lcu对应的第四编码数据的lcu头部中的一个索引标识实现了对整个lcu对应的所有目标编码块的指示,同样可以降低索引标识所占用的比特位,提高了视频编码效率。需要说明的是:第四编码数据中的目标编码块可以是第四编码数据中的所有编码块,或者可以是第四编码数据中采用帧内编码模式的编码块,或者也可以是第四编码数据中采用帧间编码模式的编码块。

在本申请的一个实施例中,也可以根据编码块的尺寸大小和预设阈值范围之间的关系,确定编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。比如,若编码块的尺寸较小(如小于某个预设阈值),则可以确定该编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;相反地,若编码块的尺寸较大(如大于某个预设阈值),则可以确定该编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。该实施例的技术方案可以根据编码块的尺寸来隐含指示是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,无需额外的比特位,因此也可以提高视频编码效率。

在本申请的一个实施例中,如果一个视频图像帧序列对应的第一编码数据的序列头部包含的索引标识为第一值(比如可以为0),则确定第一编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。如果该序列头部包含的索引标识为第二值(比如可以为1),此时可以进一步根据视频图像帧序列中的视频图像帧所对应的第二编码数据的图像头部包含的索引标识来进行决策。需要说明的是:第一编码数据中的目标编码块可以是第一编码数据中的所有编码块,或者可以是第一编码数据中采用帧内编码模式的编码块,或者也可以是第一编码数据中采用帧间编码模式的编码块。

在本申请的一个实施例中,如果前述的序列头部包含的索引标识为第二值(比如可以为1),且前述的图像头部包含的索引标识为第一值(比如可以为0),则可以确定第二编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。如果前述的序列头部包含的索引标识和前述的图像头部包含的索引标识均为第二值(比如可以为1),那么可以确定第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,这种情况下,可以不再通过条带头、lcu头和编码块的大小进行决策。需要说明的是:第二编码数据中的目标编码块可以是第二编码数据中的所有编码块,或者可以是第二编码数据中采用帧内编码模式的编码块,或者也可以是第二编码数据中采用帧间编码模式的编码块。

当然,在本申请的一个实施例中,如果前述的序列头部包含的索引标识和前述的图像头部包含的索引标识均为第二值(比如可以为1),那么也可以进一步根据视频图像帧的条带所对应的第三编码数据的条带头部包含的索引标识来进行决策。比如,若前述序列头部包含的索引标识、前述图像头部包含的索引标识均为第二值,但一个条带对应的第三编码数据的条带头部信息包含的索引标识为第一值(比如可以为0),那么可以确定第三编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。如果前述的序列头部包含的索引标识、前述的图像头部包含的索引标识和前述条带头部包含的索引标识均为第二值(比如可以为1),那么可以确定第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,这种情况下,可以不再通过lcu头和编码块的大小进行决策。需要说明的是:第三编码数据中的目标编码块可以是第三编码数据中的所有编码块,或者可以是第三编码数据中采用帧内编码模式的编码块,或者也可以是第三编码数据中采用帧间编码模式的编码块。

当然,在本申请的一个实施例中,如果前述的序列头部包含的索引标识、前述的图像头部包含的索引标识和前述条带头部包含的索引标识均为第二值(比如可以为1),那么也可以进一步根据条带中的lcu所对应的第四编码数据的lcu头部包含的索引标识来进行决策。比如,若前述序列头部包含的索引标识、前述图像头部包含的索引标识和前述条带头部包含的索引标识均为第二值,但一个lcu对应的第四编码数据的lcu头部信息包含的索引标识为第一值(比如可以为0),那么可以确定第四编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。如果前述的序列头部包含的索引标识、前述的图像头部包含的索引标识、前述条带头部包含的索引标识和前述lcu头部信息包含的索引标识均为第二值(比如可以为1),那么可以确定第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,这种情况下,可以不再通过编码块的大小进行决策。需要说明的是:第四编码数据中的目标编码块可以是第四编码数据中的所有编码块,或者可以是第四编码数据中采用帧内编码模式的编码块,或者也可以是第四编码数据中采用帧间编码模式的编码块。

当然,在本申请的一个实施例中,如果前述的序列头部包含的索引标识、前述的图像头部包含的索引标识、前述条带头部包含的索引标识和前述lcu头部信息包含的索引标识均为第二值(比如可以为1),那么也可以进一步根据编码块的大小来进行决策。比如,若前述的序列头部包含的索引标识、前述的图像头部包含的索引标识、前述条带头部包含的索引标识和前述lcu头部信息包含的索引标识均为第二值,但一个编码块的尺寸较小(如小于某个预设阈值),则可以确定该编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;相反地,若编码块的尺寸较大(如大于某个预设阈值),则可以确定该编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一个实施例中,也可以通过指示位来对编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块分别指示是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。具体而言:

在本申请的一个实施例中,可以根据一个视频图像帧序列对应的第一编码数据的序列头部包含的第一指示位的值和第二指示位的值,分别确定第一编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。比如,第一编码数据的序列头部包含的第一指示位的值为0时,表示第一编码数据中采用帧内编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第一编码数据的序列头部包含的第一指示位的值为1时,表示第一编码数据中采用帧内编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第一编码数据的序列头部包含的第二指示位的值为0时,表示第一编码数据中采用帧间编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第一编码数据的序列头部包含的第二指示位的值为1时,表示第一编码数据中采用帧间编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一个实施例中,可以根据一个视频图像帧对应的第二编码数据的图像头部包含的第一指示位的值和第二指示位的值,分别确定第二编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。比如,第二编码数据的图像头部包含的第一指示位的值为0时,表示第二编码数据中采用帧内编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第二编码数据的图像头部包含的第一指示位的值为1时,表示第二编码数据中采用帧内编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第二编码数据的图像头部包含的第二指示位的值为0时,表示第二编码数据中采用帧间编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第二编码数据的图像头部包含的第二指示位的值为1时,表示第二编码数据中采用帧间编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一个实施例中,根据视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的第一指示位的值和第二指示位的值,分别确定第三编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。比如,第三编码数据的条带头部包含的第一指示位的值为0时,表示第三编码数据中采用帧内编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第三编码数据的条带头部包含的第一指示位的值为1时,表示第三编码数据中采用帧内编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第三编码数据的条带头部包含的第二指示位的值为0时,表示第三编码数据中采用帧间编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第三编码数据的条带头部包含的第二指示位的值为1时,表示第三编码数据中采用帧间编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一个实施例中,根据视频图像帧的一个lcu对应的第四编码数据的lcu头部信息包含的第一指示位的值和第二指示位的值,分别确定第四编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。比如,第四编码数据的lcu头部包含的第一指示位的值为0时,表示第四编码数据中采用帧内编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第四编码数据的lcu头部包含的第一指示位的值为1时,表示第四编码数据中采用帧内编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第四编码数据的lcu头部包含的第二指示位的值为0时,表示第四编码数据中采用帧间编码模式的编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;第四编码数据的lcu头部包含的第二指示位的值为1时,表示第四编码数据中采用帧间编码模式的编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

需要说明的是:在通过指示位对编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块分别指示是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合时,也可以采用类似于前述实施例中的方案,由序列头部和图像头部中的指示位来共同决策,或者由序列头部、图像头部和条带头部中的指示位来共同决策,或者由序列头部、图像头部、条带头部和lcu头部中的指示位来共同决策,或者由序列头部、图像头部、条带头部、lcu头部中的指示位,以及编码块的大小来共同决策。

综上,在确定是否需要根据量化系数块中的量化系数选择编码块对应的变换矩阵组合时,有以下方式:

1、仅通过前述序列头部中的索引标识来指示,不再通过图像头部、条带头部、lcu头部和编码块的大小来进行决策。此时,序列头部中的索引标识为1(数值仅为示例),就说明视频图像帧序列对应的第一编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第一编码数据中的目标编码块可以是第一编码数据中的所有编码块,或者可以是第一编码数据中采用帧内编码模式的编码块,或者也可以是第一编码数据中采用帧间编码模式的编码块。

另外,也可以仅通过序列头部中的指示位来对视频图像帧序列对应的第一编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块分别进行指示。即序列头部包含有两个指示位,一个指示位用于指示第一编码数据中采用帧内编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,另一个指示位用于指示第一编码数据中采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

2、仅通过前述图像头部中的索引标识来指示,不再通过序列头部、条带头部、lcu头部和编码块的大小来进行决策。此时,图像头部中的索引标识为1(数值仅为示例),就说明视频图像帧对应的第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第二编码数据中的目标编码块可以是第二编码数据中的所有编码块,或者可以是第二编码数据中采用帧内编码模式的编码块,或者也可以是第二编码数据中采用帧间编码模式的编码块。

另外,也可以仅通过图像头部中的指示位来对视频图像帧对应的第二编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块分别进行指示。即图像头部包含有两个指示位,一个指示位用于指示第二编码数据中采用帧内编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,另一个指示位用于指示第二编码数据中采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

3、仅通过前述条带头部中的索引标识来指示,不再通过序列头部、图像头部、lcu头部和编码块的大小来进行决策。此时,条带头部中的索引标识为1(数值仅为示例),就说明条带对应的第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第三编码数据中的目标编码块可以是第三编码数据中的所有编码块,或者可以是第三编码数据中采用帧内编码模式的编码块,或者也可以是第三编码数据中采用帧间编码模式的编码块。

另外,也可以仅通过条带头部中的指示位来对条带对应的第三编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块分别进行指示。即条带头部包含有两个指示位,一个指示位用于指示第三编码数据中采用帧内编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,另一个指示位用于指示第三编码数据中采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

4、仅通过前述lcu头部中的索引标识来指示,不再通过序列头部、图像头部、条带头部和编码块的大小来进行决策。此时,lcu头部中的索引标识为1(数值仅为示例),就说明lcu对应的第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第四编码数据中的目标编码块可以是第四编码数据中的所有编码块,或者可以是第四编码数据中采用帧内编码模式的编码块,或者也可以是第四编码数据中采用帧间编码模式的编码块。

另外,也可以仅通过lcu头部中的指示位来对lcu对应的第四编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块分别进行指示。即lcu头部包含有两个指示位,一个指示位用于指示第四编码数据中采用帧内编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,另一个指示位用于指示第四编码数据中采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

5、仅通过编码块的尺寸大小来隐含指示,不再通过序列头部、图像头部、条带头部和lcu头部来进行决策。此时,若编码块的尺寸较小(如小于某个预设阈值),则可以确定该编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;相反地,若编码块的尺寸较大(如大于某个预设阈值),则可以确定该编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

6、通过前述序列头部中的索引标识和图像头部中的索引标识来指示,不再通过条带头部、lcu头部和编码块的大小来进行决策。此时,若序列头部中的索引标识和图像头部中的索引标识均为1(数值仅为示例),则说明视频图像帧对应的第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若序列头部中的索引标识为1,而图像头部中的索引标识为0(数值仅为示例),则说明该视频图像帧对应的第二编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第二编码数据中的目标编码块可以是第二编码数据中的所有编码块,或者可以是第二编码数据中采用帧内编码模式的编码块,或者也可以是第二编码数据中采用帧间编码模式的编码块。

7、通过前述序列头部中的索引标识、图像头部中的索引标识和条带头部中的索引标识来指示,不再通过lcu头部和编码块的大小来进行决策。此时,若序列头部中的索引标识、图像头部中的索引标识和条带头部的索引标识均为1(数值仅为示例),则说明条带对应的第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若序列头部中的索引标识和图像头部中的索引标识为1,而条带头部中的索引标识为0(数值仅为示例),则说明该条带对应的第三编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第三编码数据中的目标编码块可以是第三编码数据中的所有编码块,或者可以是第三编码数据中采用帧内编码模式的编码块,或者也可以是第三编码数据中采用帧间编码模式的编码块。

8、通过前述序列头部中的索引标识、图像头部中的索引标识、条带头部中的索引标识和lcu头部中的索引标识来指示,不再通过编码块的大小来进行决策。此时,若序列头部中的索引标识、图像头部中的索引标识、条带头部的索引标识和lcu头部中的索引标识均为1(数值仅为示例),则说明lcu对应的第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若序列头部中的索引标识、图像头部中的索引标识和条带头部中的索引标识为1,而lcu头部中的索引标识为0(数值仅为示例),则说明该lcu对应的第四编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第四编码数据中的目标编码块可以是第四编码数据中的所有编码块,或者可以是第四编码数据中采用帧内编码模式的编码块,或者也可以是第四编码数据中采用帧间编码模式的编码块。

9、通过前述序列头部中的索引标识、图像头部中的索引标识、条带头部中的索引标识、lcu头部中的索引标识和编码块的大小来进行决策。此时,若序列头部中的索引标识、图像头部中的索引标识、条带头部的索引标识、lcu头部中的索引标识均为1(数值仅为示例),且编码块的尺寸小于设定阈值,则说明该编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若序列头部中的索引标识、图像头部中的索引标识、条带头部中的索引标识和lcu头部中的索引标识均为1,但是编码块的尺寸大于设定阈值,则说明该编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

当然,还可以有如下方式:

10、通过前述图像头部中的索引标识和条带头部中的索引标识来指示,不再通过序列头部、lcu头部和编码块的大小来进行决策。此时,若图像头部中的索引标识和条带头部的索引标识均为1(数值仅为示例),则说明条带对应的第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若图像头部中的索引标识为1,而条带头部中的索引标识为0(数值仅为示例),则说明该条带对应的第三编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第三编码数据中的目标编码块可以是第三编码数据中的所有编码块,或者可以是第三编码数据中采用帧内编码模式的编码块,或者也可以是第三编码数据中采用帧间编码模式的编码块。

11、通过前述图像头部中的索引标识、条带头部中的索引标识和lcu头部中的索引标识来指示,不再通过序列头部、编码块的大小来进行决策。此时,若图像头部中的索引标识、条带头部的索引标识和lcu头部中的索引标识均为1(数值仅为示例),则说明lcu对应的第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若图像头部中的索引标识和条带头部中的索引标识为1,而lcu头部中的索引标识为0(数值仅为示例),则说明该lcu对应的第四编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。需要说明的是:第四编码数据中的目标编码块可以是第四编码数据中的所有编码块,或者可以是第四编码数据中采用帧内编码模式的编码块,或者也可以是第四编码数据中采用帧间编码模式的编码块。

12、通过前述图像头部中的索引标识、条带头部中的索引标识、lcu头部中的索引标识和编码块的大小来进行决策,不再通过序列头部来进行决策。此时,若图像头部中的索引标识、条带头部的索引标识、lcu头部中的索引标识均为1(数值仅为示例),且编码块的尺寸小于设定阈值,则说明该编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;若图像头部中的索引标识、条带头部中的索引标识和lcu头部中的索引标识均为1,但是编码块的尺寸大于设定阈值,则说明该编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

此外,在本申请的实施例中,还有其它更多种指示方式,不再详述。

在本申请的一个实施例中,对量化系数块中的至少两个区域内的量化系数分别进行统计时,可以针对该至少两个区域中的任意一个区域(为便于描述,将其称为目标区域)采用如下的方式计算该目标区域对应的统计结果:可以计算该目标区域内的量化系数的数值之和,将得到的和值作为统计结果;或者可以计算该目标区域内的量化系数的绝对值之和,将得到的和值作为统计结果;或者可以计算该目标区域内数值为奇数的量化系数的数值之和,将得到的和值作为统计结果;或者可以计算该目标区域内数值为奇数的量化系数的绝对值之和,将得到的和值作为统计结果;或者可以计算该目标区域内数值为偶数或非零偶数的量化系数的数值之和,将得到的和值作为统计结果;或者可以计算该目标区域内数值为偶数或非零偶数的量化系数的绝对值之和,将得到的和值作为统计结果。

在本申请的一个实施例中,对前述至少两个区域中的任意一个目标区域内的量化系数进行统计时,可以将该目标区域内的量化系数的数值进行线性映射,然后计算该目标区域内的量化系数在线性映射之后的数值或绝对值之和,将得到的和值作为统计结果。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内数值为奇数的量化系数的数值转换为第一数值,将数值为偶数的量化系数的数值转换为第二数值,其中,该第一数值和该第二数值中的一个为奇数,另一个为偶数。比如,将该目标区域内数值为奇数的量化系数的数值转换为1,将数值为偶数的量化系数的数值转换为0;或者将该目标区域内数值为奇数的量化系数的数值转换为0,将数值为偶数的量化系数的数值转换为1;或者将该目标区域内数值为奇数的量化系数的数值转换为3,将数值为偶数的量化系数的数值转换为2;或者将该目标区域内数值为奇数的量化系数的数值转换为2,将数值为偶数的量化系数的数值转换为3。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内的非零量化系数的数值转换为第三数值,将数值为零的量化系数的数值转换为第四数值,其中,该第三数值和该第四数值中的一个为奇数,另一个为偶数。比如,将该目标区域内的非零量化系数的数值转换为1,将数值为零的量化系数的数值转换为0;或者将该目标区域内的非零量化系数的数值转换为0,将数值为零的量化系数的数值转换为1;或者将该目标区域内的非零量化系数的数值转换为3,将数值为零的量化系数的数值转换为2;或者将该目标区域内的非零量化系数的数值转换为2,将数值为零的量化系数的数值转换为3。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内的量化系数的数值减少第五数值。比如将该目标区域内的量化系数的数值都减少1,或者减少2。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内的量化系数的数值增加一个数值。比如将该目标区域内的量化系数的数值都增加1,或者增加2。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内的量化系数的数值乘以非零的第六数值。比如将该目标区域内的量化系数的数值都乘以1,或者乘以2。可选地,该第六数值可以为非零偶数,比如2、4、6等。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内的量化系数的数值除以非零的一个数值。比如将该目标区域内的量化系数的数值都除以1,或者除以2。可选地,该数值可以为非零偶数,比如2、4、6等。

在本申请的一个实施例中,上述的线性映射可以是将该目标区域内的量化系数的数值转换为相反数。

需要说明的是,在对前述至少两个区域内的量化系数分别进行统计时,可以针对不同的区域采用相同的统计方式;或者也可以针对不同的区域分别采用不同的统计方式;还可以针对部分区域采用相同的统计方式,而针对其它区域采用另外的统计方式。

在本申请的一个实施例中,在对量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果之后,可以分别计算各个区域的统计结果针对设定值的余数,该设定值可以是任意非零的数,比如可以是2、3、4等。需要说明的是:不同区域的统计结果所对应的设定值可以是相同的,也可以是不相同的。比如共有两个区域,区域1的统计结果可以对2取余数,区域2的统计结果既可以对2取余数,也可以对3或对4等其它值取余数。

综上,本申请的实施例在对前述至少两个区域中的各个区域内的量化系数进行统计时可以有如下方式,为便于描述,以对任意一个区域(将其称之为目标区域)内的量化系数进行统计为例进行说明:

1、对目标区域内的量化系数的数值直接求和;

2、对目标区域内的量化系数求数值的绝对值之和;

3、对目标区域内数值为奇数的量化系数的数值直接求和;

4、对目标区域内数值为奇数的量化系数求数值的绝对值之和;

5、对目标区域内数值为偶数或非零偶数的量化系数的数值直接求和;

6、对目标区域内数值为偶数或非零偶数的量化系数求数值的绝对值之和;

7、先根据目标区域内的量化系数的奇偶性对奇数和偶数进行数值转换,然后对目标区域内转换后的所有数值求和;

8、先根据目标区域内的量化系数的奇偶性对奇数和偶数进行数值转换,然后对目标区域内转换后的所有数值的绝对值求和;

9、先根据目标区域内的非零量化系数和数值为零的量化系数进行数值转换,然后对目标区域内转换后的所有数值求和;

10、先根据目标区域内的非零量化系数和数值为零的量化系数进行数值转换,然后对目标区域内转换后的所有数值的绝对值求和;

11、先对目标区域内的所有量化系数进行增加、减少、乘以非零倍数、除以非零倍数或者求相反数等数值转换操作,然后对目标区域内转换后的所有数值求和;

12、先对目标区域内的所有量化系数进行增加、减少、乘以非零倍数、除以非零倍数或者求相反数等数值转换操作,然后对目标区域内转换后的所有数值的绝对值求和。

当然,还可以有其它方式,比如先通过前述7至12中的转换方式对目标区域内的量化系数进行数值转换,然后只对转换后的奇数或者偶数进行求和等。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中的全部区域。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中指定的一个位置或多个位置。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中指定的至少一行。如图7所示,假设量化系数块是4×4的系数块,每个方块表示一个量化系数,那么可以如图7中(a)所示,将灰色区域的1行作为一个区域;或者可以如图7中(b)所示,将灰色区域的2行作为一个区域。可选地,这至少一行可以是量化系数块中靠上边的行。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中指定的至少一列。如图7所示,假设量化系数块是4×4的系数块,每个方块表示一个量化系数,那么可以如图7中(c)所示,将灰色区域的1列作为一个区域;或者可以如图7中(d)所示,将灰色区域的2列作为一个区域。可选地,这至少一列可以是量化系数块中靠左边的列。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中指定的至少一行和指定的至少一列。如图8所示,假设量化系数块是4×4的系数块,每个方块表示一个量化系数,那么可以如图8中(a)所示,将下方的1行和右边的1列(即其中的灰色区域)作为一个区域;或者可以如图8中(b)所示,将下方的2行和右边的2列(即其中的灰色区域)作为一个区域;或者可以如图8中(c)所示,将上方的1行和左边的1列(即其中的灰色区域)作为一个区域;或者可以如图8中(d)所示,将上方的2行和左边的2列(即其中的灰色区域)作为一个区域。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中处于至少一条斜线上的位置。如图9所示,假设量化系数块是4×4的系数块,每个方块表示一个量化系数,那么可以如9中的(a)和(b)所示,将一条斜线上的位置作为一个区域;或者如9中的(c)和(d)所示,将两条斜线上的位置作为一个区域。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是量化系数块中的srcc区域。其中,srcc区域即为通过srcc技术标记出的扫描区域。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是srcc区域中指定的一个位置或多个位置。可选地,srcc区域中指定的一个位置或多个位置可以包括:按照扫描顺序的前n个位置或者按照扫描顺序处于中间的n个位置,当然也可以是按照扫描顺序处于最后的n个位置等,n为非0的自然数。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是srcc区域中指定的至少一行。如图7所示,假设srcc区域是4×4的系数块,每个方块表示一个量化系数,那么可以如图7中(a)所示,将灰色区域的1行作为一个区域;或者可以如图7中(b)所示,将灰色区域的2行作为一个区域。可选地,这至少一行可以是量化系数块中靠上边的行。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是srcc区域中指定的至少一列。如图7所示,假设srcc区域是4×4的系数块,每个方块表示一个量化系数,那么可以如图7中(c)所示,将灰色区域的1列作为一个区域;或者可以如图7中(d)所示,将灰色区域的2列作为一个区域。可选地,这至少一列可以是量化系数块中靠左边的列。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是srcc区域中指定的至少一行和指定的至少一列。如图8所示,假设srcc区域是4×4的系数块,每个方块表示一个量化系数,那么可以如图8中(a)所示,将下方的1行和右边的1列(即其中的灰色区域)作为一个区域;或者可以如图8中(b)所示,将下方的2行和右边的2列(即其中的灰色区域)作为一个区域;或者可以如图8中(c)所示,将上方的1行和左边的1列(即其中的灰色区域)作为一个区域;或者可以如图8中(d)所示,将上方的2行和左边的2列(即其中的灰色区域)作为一个区域。

在本申请的一个实施例中,上述至少两个区域中的一个区域可以是srcc区域中处于至少一条斜线上的位置。如图9所示,假设srcc区域是4×4的系数块,每个方块表示一个量化系数,那么可以如9中的(a)和(b)所示,将一条斜线上的位置作为一个区域;或者如9中的(c)和(d)所示,将两条斜线上的位置作为一个区域。

在本申请的其它实施例中,也可以将上述实施例中的区域划分方式进行组合,以将组合后的区域作为一个区域,然后从中选择至少两个区域。

继续参照图6所示,在步骤s630中,根据各个区域的余数选择编码块对应的变换矩阵组合。

在本申请的一个实施例中,可以根据各个区域的余数,生成至少两个区域对应的余数组合,然后根据余数组合与变换矩阵组合之间的对应关系,选择对应的变换矩阵组合。比如有2个区域,且在计算余数时,将设定值设置为2,那么这两个区域的余数都可以是0或者1,进而得到的余数组合可以为(0,0)、(0,1)、(1,0)、(1,1),在这种情况下可以指示四种不同的变换矩阵组合;再如有3个区域,且在计算余数时,将设定值设置为2,那么这三个区域的余数都可以是0或者1,进而得到的余数组合可以为(0,0,0)、(0,0,1)、(0,1,0)、(0,1,1)、(1,0,0)、(1,0,1)、(1,1,0)、(1,1,1),在这种情况下可以指示八种不同的变换矩阵组合。可见,本申请实施例的技术方案能够实现多种变换矩阵组合的索引指示,并且可以有效降低变换矩阵索引所占用的比特位。

需要说明的是,在本申请的实施例中,不同余数组合对应的变换矩阵组合可以是不同的。当然,不同余数组合对应的变换矩阵组合也可以是相同的,但是对于可能的余数组合,不能都对应相同的变换矩阵组合。

可选地,变换矩阵组合所采用的变换核可以是已知的离散变换核(8种dct变换核和8种dst变换核)的任意组合。比如可选的变换核可以包括:dct2、dct5、dct8、dst1、dst7等。

在本申请的一个实施例中,余数组合与变换矩阵组合之间的对应关系可以是根据余数组合的取值,基于dct变换核和/或dst变换核之间的组合进行预先设定的。可选地,变换矩阵组合包括dct2、dct5、dct8、dst1、dst7中任意至少一种的组合。更具体地,比如,有2个区域,前述的设定值为2,那么可以设定如下的对应关系:余数组合为(0,0)时对应的变换矩阵组合可以是(dct2,dct2);余数组合为(0,1)时对应的变换矩阵组合可以是(dct8,dct8);余数组合为(1,0)时对应的变换矩阵组合可以是(dct8,dst7);余数组合为(1,1)时对应的变换矩阵组合可以是(dst7,dst7)。

在本申请的一个实施例中,也可以通过余数组合来指示编码块跳过了变换处理过程。例如可以通过余数组合来指示对应的变换矩阵组合为空值(或者为ts),该空值(或ts)表示编码块跳过了变换处理过程。比如,有2个区域,前述的设定值为2,那么余数组合为(0,0)时对应的变换矩阵组合可以是(dct2,dct2);余数组合为(0,1)时对应的变换矩阵组合可以是(dct8,dct8);余数组合为(1,0)时对应的变换矩阵组合可以是(dct8,dst7);余数组合为(1,1)时对应的变换矩阵组合可以是空值(或者为ts),以指示编码块跳过了变换处理过程,在这种情况下,可以直接对量化系数块进行反量化处理,然后将反量化处理的结果作为重建的残差数据,而不需要对反量化处理的结果进行反变换处理。需要说明的是,指示编码块跳过了变换处理过程的区域与余数的组合可以根据实际需要进行设定,该实施例中的(1,1)仅为示例。

在本申请的一个实施例中,还可以通过各个区域之间的关联指示方案来选择变换矩阵组合,具体而言:

可以按照设定顺序对前述至少两个区域中的第一区域内的量化系数进行统计得到第一区域的统计结果,然后计算第一区域的余数。如果根据第一区域的余数不能选择出对应的变换矩阵组合,则继续对前述至少两个区域中的第二区域内的量化系数进行统计得到第二区域的统计结果,并计算第二区域的余数,以及根据第二区域的余数确定是否能够选择出对应的变换矩阵组合,直至根据至少两个区域的余数选择出对应的变换矩阵组合。

比如,有2个区域,记为区域1和区域2,区域1的统计结果对2取余,区域2的统计结果对4取余。那么可以先统计区域1内的量化系数得到区域1的统计结果,然后对区域1的统计结果取余,如果根据区域1的统计结果求得的余数能够确定使用某个变换矩阵组合,则不需要对区域2内的量化系数进行统计;如果根据区域1的统计结果求得的余数不能确定出一个变换矩阵组合,则需要对区域2内的量化系数进行统计,然后对区域2的统计结果取余,进而根据区域2的统计结果求得的余数确定出一个变换矩阵组合。更具体地,若区域1的统计结果的余数为0,则选择变换矩阵组合(dct2,dct2),此时不需要对区域2内的量化系数进行统计;如果区域1的统计结果的余数1,则表示根据区域1的统计结果的余数不能确定出一个变换矩阵组合,此时需要对区域2内的量化系数进行统计,然后对区域2的统计结果取余。如果区域2的统计结果的余数为0,则选择变换组合(dct8,dct8);如果区域2的统计结果的余数为1,则选择变换矩阵组合(dct8,dst7);如果区域2的统计结果的余数为2,则选择变换矩阵组合(dst7,dct8);如果区域2的统计结果的余数为3,则选择变换矩阵组合(dst7,dst7)。

再如,有3个区域,记为区域1、区域2和区域3,区域1的统计结果对2取余,区域2的统计结果对2取余,区域3的统计结果对4取余。那么可以先统计区域1内的量化系数得到区域1的统计结果,然后对区域1的统计结果取余,如果根据区域1的统计结果求得的余数能够确定使用某个变换矩阵组合,则不需要对区域2和区域3内的量化系数进行统计;如果根据区域1的统计结果求得的余数不能确定出一个变换矩阵组合,则可以对区域2内的量化系数进行统计,然后对区域2的统计结果取余,进而根据区域2的统计结果求得的余数确定出一个变换矩阵组合。如果根据区域2的统计结果求得的余数不能确定出一个变换矩阵组合,则可以对区域3内的量化系数进行统计,然后对区域3的统计结果取余,进而根据区域3的统计结果求得的余数确定出一个变换矩阵组合。更具体地,若区域1的统计结果的余数为0,则选择变换矩阵组合(dct2,dct2),此时不需要对区域2和区域3内的量化系数进行统计;如果区域1的统计结果的余数1,则表示根据区域1的统计结果的余数不能确定出一个变换矩阵组合,此时需要对区域2内的量化系数进行统计,然后对区域2的统计结果取余。如果区域2的统计结果的余数为0,则选择变换组合(dct8,dct8);如果区域2的统计结果的余数为1,则表示根据区域2的统计结果的余数不能确定出一个变换矩阵组合,此时需要对区域3内的量化系数进行统计,然后对区域3的统计结果取余。如果区域3的统计结果的余数为0,则选择变换组合(dct8,dst7);如果区域3的统计结果的余数为1,则选择变换组合(dst7,dct8);如果区域3的统计结果的余数为2,则选择变换矩阵组合(dst7,dst7);如果区域3的统计结果的余数为3,则可以表示编码块跳过了变换处理过程。

又如,有3个区域,记为区域1、区域2和区域3,区域1的统计结果对2取余,区域2的统计结果对2取余,区域3的统计结果对4取余。那么可以先统计区域1内的量化系数得到区域1的统计结果,然后对区域1的统计结果取余,其中区域1的统计结果的余数为一个值时,可以表示需要根据区域2内的量化系数来确定变换矩阵组合;区域1的统计结果的余数为另一个值时,可以表示需要根据区域3内的量化系数来确定变换矩阵组合。在这种情况下,需要根据区域1的统计结果的余数来确定是对区域2内的量化系数进行统计还是对区域3内的量化系数进行统计,如果需要对区域2内的量化系数进行统计,则在统计之后对区域2的统计结果取余,进而根据区域2的统计结果求得的余数确定出一个变换矩阵组合;如果需要对区域3内的量化系数进行统计,则在统计之后对区域3的统计结果取余,进而根据区域3的统计结果求得的余数确定出一个变换矩阵组合。更具体地,如果区域1的统计结果的余数为0,则表示需要根据区域2内的量化系数来确定变换矩阵组合;如果区域1的统计结果的余数为1,则表示需要根据区域3内的量化系数来确定变换矩阵组合。如果区域2的统计结果的余数为0,则选择变换组合(dct8,dct8);如果区域2的统计结果的余数为1,则选择变换组合(dct2,dct2)。如果区域3的统计结果的余数为0,则选择变换组合(dct8,dst7);如果区域3的统计结果的余数为1,则选择变换组合(dst7,dct8);如果区域3的统计结果的余数为2,则选择变换矩阵组合(dst7,dst7);如果区域3的统计结果的余数为3,则可以表示编码块跳过了变换处理过程。

当然,在本申请的其它实施例中,也可以先计算出各个区域的统计结果的余数,然后按照各个区域之间的关联指示方案来选择变换矩阵组合。

继续参照图6所示,在步骤s640中,基于选择的变换矩阵组合对量化系数块的反量化结果进行反变换处理。该过程可以参照前述实施例中的相关描述,不再赘述。

本申请上述实施例的技术方案使得能够通过量化系数块中的量化系数来隐含指示编码块对应的变换矩阵组合,无需编码端针对每个编码单元都编码变换矩阵的索引,降低了变换矩阵索引所占用的比特位,进而可以有效提高视频编码效率。

以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的视频解码方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的视频解码方法的实施例。

图10示出了根据本申请的一个实施例的视频解码装置的框图,该视频解码装置可以设置在具有计算处理功能的设备内,比如可以设置在终端设备或服务器内。

参照图10所示,根据本申请的一个实施例的视频解码装置1000,包括:解码单元1002、统计单元1004、选择单元1006和处理单元1008。

其中,解码单元1002配置为对视频图像帧的编码块进行熵解码处理,获得所述编码块对应的残差数据的量化系数块;统计单元1004配置为对所述量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,分别计算所述各个区域的统计结果针对设定值的余数,得到所述各个区域的余数;选择单元1006配置为根据所述各个区域的余数选择所述编码块对应的变换矩阵组合;处理单元1008配置为基于选择的变换矩阵组合对所述量化系数块的反量化结果进行反变换处理。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置1000还包括:第一确定单元,配置为根据指定的索引标识的取值,确定对应的编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合,其中,所述指定的索引标识包括在以下至少之一中:视频图像帧序列对应的第一编码数据的序列头、视频图像帧对应的第二编码数据的图像头、视频图像帧的一个条带对应的第三编码数据的条带头、视频图像帧的一个lcu对应的第四编码数据的lcu头。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在一个视频图像帧序列对应的第一编码数据的序列头部包含的指定的索引标识的值为第一值时,确定所述第一编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在一个视频图像帧对应的第二编码数据的图像头部包含的指定的索引标识的值为第一值时,确定所述第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的指定的索引标识的值为第一值时,确定所述第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第一确定单元配置为在视频图像帧的一个lcu对应的第四编码数据的lcu头部信息包含的指定的索引标识的值为第一值时,确定所述第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第二确定单元,配置为根据所述编码块的尺寸大小和预设阈值范围之间的关系,确定所述编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第三确定单元,配置为在一个视频图像帧序列对应的第一编码数据的序列头部包含的索引标识为第一值时,确定所述第一编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;并且配置为在所述序列头部包含的索引标识为第二值,且所述视频图像帧序列中的一个视频图像帧所对应的第二编码数据的图像头部包含的索引标识为第一值时,确定所述第二编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值,且所述图像头部包含的索引标识为第二值时,确定所述第二编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值,且所述视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的索引标识为第一值时,确定所述第三编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值时,确定所述第三编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值,且所述条带的一个lcu对应的第四编码数据的lcu头部信息包含的索引标识为第一值时,确定所述第四编码数据中的目标编码块不需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值,且所述lcu头部信息包含的索引标识为第二值时,确定所述第四编码数据中的目标编码块需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述第三确定单元还配置为在所述序列头部包含的索引标识为第二值、所述图像头部包含的索引标识为第二值、所述条带头部信息包含的索引标识为第二值、所述lcu头部信息包含的索引标识为第二值,则根据所述第四编码数据中的各个编码块的尺寸大小和预设阈值范围之间的关系,确定所述各个编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述目标编码块为以下任一:采用帧内编码模式的编码块、采用帧间编码模式的编码块、相应编码数据中的所有编码块。

在本申请的一些实施例中,基于前述方案,所述的视频解码装置还包括:第四确定单元,配置为根据一个视频图像帧序列对应的第一编码数据的序列头部包含的第一指示位的值和第二指示位的值,分别确定所述第一编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;或

根据一个视频图像帧对应的第二编码数据的图像头部包含的第一指示位的值和第二指示位的值,分别确定所述第二编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;或

根据视频图像帧的一个条带对应的第三编码数据的条带头部信息包含的第一指示位的值和第二指示位的值,分别确定所述第三编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合;或

根据视频图像帧的一个lcu对应的第四编码数据的lcu头部信息包含的第一指示位的值和第二指示位的值,分别确定所述第四编码数据中采用帧内编码模式的编码块和采用帧间编码模式的编码块是否需要根据熵解码得到的量化系数块中的量化系数选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,统计单元1004配置为:对于所述至少两个区域中的任意一个目标区域,通过以下方式计算所述目标区域的统计结果:

计算所述目标区域内的量化系数的数值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内的量化系数的绝对值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为奇数的量化系数的数值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为奇数的量化系数的绝对值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为偶数或非零偶数的量化系数的数值之和,将得到的和值作为所述目标区域的统计结果;或

计算所述目标区域内数值为偶数或非零偶数的量化系数的绝对值之和,将得到的和值作为所述目标区域的统计结果。

在本申请的一些实施例中,基于前述方案,统计单元1004配置为:对于所述至少两个区域中的任意一个目标区域,将所述目标区域内的量化系数的数值进行线性映射,计算所述指定区域内的量化系数在线性映射之后的数值或绝对值之和,将得到的和值作为所述目标区域的统计结果,其中,所述线性映射包括:

将所述目标区域内数值为奇数的量化系数的数值转换为第一数值,将数值为偶数的量化系数的数值转换为第二数值,其中,所述第一数值和所述第二数值中的一个为奇数,另一个为偶数;或

将所述目标区域内的非零量化系数的数值转换为第三数值,将数值为零的量化系数的数值转换为第四数值,其中,所述第三数值和所述第四数值中的一个为奇数,另一个为偶数;或

将所述目标区域内的量化系数的数值减少或增加第五数值;或

将所述目标区域内的量化系数的数值乘以或除以非零的第六数值;或

将所述目标区域内的量化系数的数值乘以或除以非零偶数。

在本申请的一些实施例中,基于前述方案,所述至少两个区域包括以下区域中的至少两个:

所述量化系数块中的全部区域;

所述量化系数块中指定的一个位置或多个位置;

所述量化系数块中指定的至少一行;

所述量化系数块中指定的至少一列;

所述量化系数块中指定的至少一行和指定的至少一列;

所述量化系数块中处于至少一条斜线上的位置;

所述量化系数块中的srcc区域;

所述srcc区域中指定的一个位置或多个位置;

所述srcc区域中指定的至少一行;

所述srcc区域中指定的至少一列;

所述srcc区域中指定的至少一行和指定的至少一列;

所述srcc区域中处于至少一条斜线上的位置。

在本申请的一些实施例中,基于前述方案,所述srcc区域中指定的一个位置或多个位置包括:按照扫描顺序的前n个位置或按照扫描顺序处于中间的n个位置,n为非0的自然数。

在本申请的一些实施例中,基于前述方案,所述选择单元配置为:根据所述各个区域的余数,生成所述至少两个区域对应的余数组合;根据余数组合与变换矩阵组合之间的对应关系,选择对应的变换矩阵组合。

在本申请的一些实施例中,基于前述方案,所述余数组合与变换矩阵组合之间的对应关系是根据所述余数组合的取值,基于dct变换核和/或dst变换核之间的组合进行预先设定的。

在本申请的一些实施例中,基于前述方案,数值为指定值的余数组合用于表示所述编码块跳过了变换处理过程。

在本申请的一些实施例中,基于前述方案,所述变换矩阵组合包括dct2、dct5、dct8、dst1、dst7中任意至少一种的组合。

在本申请的一些实施例中,基于前述方案,所述统计单元1004对所述量化系数块中的至少两个区域内的量化系数分别进行统计得到各个区域的统计结果,分别计算所述各个区域的统计结果针对设定值的余数,得到所述各个区域的余数;以及所述选择单元1006根据所述各个区域的余数选择对应的变换矩阵组合的过程,包括:

按照设定顺序对所述至少两个区域中的第一区域内的量化系数进行统计得到所述第一区域的统计结果,并计算所述第一区域的余数;

若根据所述第一区域的余数不能选择出对应的变换矩阵组合,则继续对所述至少两个区域中的第二区域内的量化系数进行统计得到所述第二区域的统计结果,并计算所述第二区域的余数,以及根据所述第二区域的余数确定是否能够选择出对应的变换矩阵组合,直至根据所述至少两个区域的余数选择出对应的变换矩阵组合。

图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图11所示,计算机系统1100包括中央处理单元(centralprocessingunit,cpu)1101,其可以根据存储在只读存储器(read-onlymemory,rom)1102中的程序或者从存储部分1108加载到随机访问存储器(randomaccessmemory,ram)1103中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram1103中,还存储有系统操作所需的各种程序和数据。cpu1101、rom1102以及ram1103通过总线1104彼此相连。输入/输出(input/output,i/o)接口1105也连接至总线1104。

以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan(localareanetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(cpu)1101执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1