一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

转换省略块的传讯编码技术的制作方法

2022-02-22 07:01:22 来源:中国专利 TAG:
转换省略块的传讯编码技术的制作方法

本发明是要求2019.6.28提交的申请号为62/868,830的美国临时专利申请优先权的非临时申请的一部分。上述专利申请的内容通过引用一并并入本说明书中。

【技术领域】

本公开总体上涉及视频处理。特别地,本公开涉及对视频数据块进行传讯译码(signaling coding)的方法。

【背景技术】

除非本文另外指出,否则本节中描述的方法不是权利要求的现有技术,并且不被包括在本节中而被承认为现有技术。

在实现高效视频译码(HEVC)的视频译码系统中,根据重建信号预测输入视频信号,该重建信号源自编码的图像区域(codedpicture region)。预测残差信号通过线性转换进行处理。将转换系数与比特流中的其他辅助信息一起进行量化和熵编码。在对去量化的转换系数进行逆转换之后,从预测信号和重建残差信号生成重建信号。通过环路滤波进一步处理重建的信号以去除编码伪像。解码的图像存储在帧缓冲区中,用于输出和预测输入视频信号中的将来图像。

在HEVC中,译码的图像被划分为由相关联的译码树单元(CTU)表示的非重迭正方形块区域。译码的图像可以由切片的集合表示,每个切片包含整数个CTU。切片中的各个CTU按光栅扫描顺序进行处理。可以使用帧内预测或帧间预测来解码双预测(B)切片,其中帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的采样值。使用帧内预测或帧间预测使用最多一个运动矢量和参考索引对预测(P)切片进行解码,以预测每个块的采样值。仅使用帧内预测对帧内(I)切片进行解码。

可使用递归四叉树(QT)结构将CTU划分为多个非重迭译码单元(CU),以适应各种局部运动和纹理特征。为每个CU指定一个或多个预测单元(PU)。预测单元与关联的CU语法一起,作为用于传讯预测子信息(predictorinformation)的基本单元。使用指定的预测过程来预测PU内相关像素采样的值。可以使用残差四叉树(RQT)结构来进一步划分CU,以用于表示相关联的预测残差信号。RQT的叶节点对应于转换单元(TU)。转换单元包括大小为8x8、16x16或32x32的亮度采样的转换区块(TB)或大小为4x4的四个亮度采样的转换区块,以及4:2:0颜色格式的图像的色度采样的两个相应转换区块。将整数转换应用于转换区块,并且将量化系数的位准值(level value)与其他辅助信息一起在比特流中进行熵编码。

术语译码树块(CTB)、译码块(CB)、预测块(PB)和转换块(TB)被定义为指定分别与CTU、CU、PU和TU相关联的一种颜色分量的2-D采样阵列。因此,CTU由一个亮度CTB、两个色度CTB和相关的语法元素组成。类似的关系对于CU、PU和TU有效。树分割通常同时应用于亮度和色度,但是当达到色度的某些最小大小时会例外。在一些其他译码标准中,每个CTU可以通过使用嵌套的多类型树的四叉树,使用二进制和三进位拆分(binary andternary split),划分为一个或多个较小尺寸的译码单元(CU)。所得的CU分区可以为正方形或矩形。



技术实现要素:

以下发明内容仅是说明性的,而无意于以任何方式进行限制。即,提供以下概述以介绍本文所述的新颖和非显而易见的技术的概念、重点、益处和优点。在下面的详细描述中将进一步描述选择而非全部实现。因此,以下概述并非旨在标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。

一些实施例提供了一种用于在视频解码器中执行转换省略模式(transform skip mode,简写为TSM)的方法。视频解码器从比特流接收数据,以将其解码为多个视频图像。视频解码器解析视频图像当前序列(current sequence ofvideo pictures)的序列参数集(sequence parameter set,简写为SPS)中第一语法元素的比特流。当第一语法元素指示视频图像当前序列的转换省略模式被允许时,以及当当前序列的当前图像中的当前区块使用转换省略模式时,视频解码器通过使用未转换的量化的残差信号(quantizedresidual signal)来重建当前区块。

当第一语法元素指示视频图像的当前序列允许转换省略模式时,视频解码器解析SPS中第二语法元素的比特流,以指示是否允许区块增量脉冲译码调制(Block Delta Pulse Code Modulation,简写为BDPCM)用于视频图像的当前序列。在一些实施例中,当第一语法元素指示当前视频图像序列允许转换省略模式时,视频解码器进一步解析第三语法元素的比特流,以指示当前区块的残差信号是否通过使用其他残差译码处理被熵译码。

【附图说明】

包括附图以提供对本公开的进一步理解,并且附图被并入本公开并构成本公开的一部分。附图示出了本公开的实施方式,并且与描述一起用于解释本公开的原理。可以理解的是,附图不一定按比例绘制,因为为了清楚地示出本公开的概念,某些组件可能被显示为与实际实现中的尺寸不成比例。

图1概念性地示出了高阶语法集(high-level syntax set)中与TSM相关的信号的传讯。

图2说明能够实施转换省略模式的实例视频编码器。

图3说明视频编码器的实施转换省略模式的部分。

图4概念性地示出了在视频编码期间使用转换省略模式的过程。

图5说明能够实施转换省略模式的实例视频解码器。

图6说明视频解码器的实施转换省略模式的部分。

图7概念性地示出了在视频解码期间使用转换省略模式的过程。

图8概念性地示出了用于实现本公开的一些实施例的电子系统。

【具体实施方式】

在下面的详细描述中,通过示例的方式阐述了许多具体细节,以提供对相关教导的透彻理解。基于本文描述的教导的任何变化、派生和/或扩展均在本公开的保护范围内。在一些情况下,可以以相对较高的水平而不详细地描述与在此公开的一个或多个示例实现有关的众所周知的方法、过程、组件和/或电路,以避免不必要地混淆本公开的教导的各方面。

I.像素块的熵编码

本公开的一些实施例提供了用于控制视频译码系统中的译码工具的使用的方法。一些视频译码系统(例如,通用视频译码(Versatile Video Coding,简写为VVC))被开发用于支持各种视频应用。用于诸如屏幕内容译码之类的新译码应用的某些译码工具可能不适用于译码传统的相机捕获的视频内容。根据本发明的一些方面,视频译码器可以传讯一个或多个高阶语法元素,以控制某些译码工具用于目标应用的使用。

在一些实施例中,译码区块标志(codedblock flag,简写为CBF)用于传讯转换区块中是否存在任何非零转换系数。当CBF等于0时,不对相关的转换区块进行进一步译码,并且推断当前转换区块中的所有系数都等于0。否则,相关的转换区块包含至少一个非零转换系数。非零转换区块被进一步划分为非重迭子区块。可以传讯语法元素coded_sub_block_flag以指示当前子区块是否包含任何非零系数。当coded_sub_block_flag等于0时,不对关联的转换子区块进行进一步编码,并且推断当前转换子区块中的所有系数都等于0。否则,关联的转换区块包含至少一个非零转换系数。使用多个子区块译码通道(subblock coding passes)对相关联的子区块中的转换系数字准(transform coefficient level)的值进行熵译码。在每个译码通道中,根据预定义的扫描顺序对单个转换系数进行一次访问。

在一些实施例中,在第一子区块译码通道中传讯语法元素sig_coeff_flag以指示当前转换系数字准的绝对值是否大于0。在第二译码处理中进一步为sig_coeff_flag等于1的当前系数传讯语法元素coeff_abs_level_greater1_flag,以指示相关转换系数字准的绝对值是否大于1。针对coeff_abs_level_greater1_flag等于1的当前系数在在第3译码通道中进一步传讯语法元素coeff_abs_level_greater2_flag,以指示相关的转换系数字准的最大值是否大于2。在第4译码和第5子区块译码通道中,通过语法元素coeff_sign_flag和coeff_abs_level_remaining进一步分别传讯正负号(sign)信息和剩余位准值。

在一些实施例中,可以通过从属标量量化(scalarquantization)来量化转换系数。由具有四个状态的状态机(state machine)确定两个量化器之一的选择。当前转换系数的状态由状态和扫描顺序中的前一转换系数的绝对位准值的奇偶校验(parity)确定。转换块被划分成非重迭的子块。使用多个子块译码通道对每个子块中的转换系数字准进行熵译码。语法元素sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag在第一子块译码通道中传讯。元素abs_level_gt1_flag和abs_level_gt3_flag分别指示当前系数字准的绝对值是否大于1和大于3。语法元素par_level_flag指示当前位准的绝对值的奇偶校验比特。来自第一通道的部分重建的(partiallyreconstructed)转换系数字准的绝对值由下式给出

AbsLevelPass1=sig_coeff_flag par_level_flag

abs_level_gt1_flag 2*abs_level_gt3_flag

用于熵译码sig_coeff_flag的上下文选择取决于当前系数的状态。因此,在第一译码通道中传讯par_level_flag,以导出下一个系数的状态。语法元素abs_remainder和coeff_sign_flag在随后的子块译码通道中进一步传讯,以分别指示剩余的系数字准值和正负号。完全重建的(fully reconstructed)转换系数字准的绝对值由下式给出

AbsLevel=AbsLevelPass1 2*abs_remainder

转换系数字准由下式给出

TransCoeffLevel=(2*AbsLevel-(QState>1?1:0))*(1-2*

coeff_sign_flag),

其中,QState指示当前转换系数的状态。

为了实现高压缩效率,采用基于上下文的自适应二进制算术译码(CABAC)模式或称为常规模式来对HEVC和VVC草案(Draft)中的语法元素的值进行熵译码。由于CABAC引擎中的算术译码器只能对二进制符号值进行编码,因此CABAC操作首先需要将语法元素的值转换为二进制字符串,该过程通常称为二进制化。在译码处理中,根据不同上下文的译码符号逐渐建立概率模型。可以通过译码信息来确定用于译码下一个二进制符号的建模上下文的选择。可以在没有上下文建模阶段的情况下对符号进行译码,并假定采用相等的概率分布(通常称为旁路模式(bypass mode))来提高比特流解析吞吐率。

在一些实施例中,以常规模式对转换子区块中的语法元素coded_sub_block_flag、sig_coeff_flag、coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag的值进行译码。转换子区块中语法元素coeff_sign_flag和coeff_abs_level_remaining的值在旁路模式下译码。为了在最坏的情况下限制子区块中熵译码转换系数字准的常规比特子(bin)的总数,每个子区块最多只能译码八个coeff_abs_level_greater1_flag值和一个coeff_abs_level_greater2_flag值。这样,每个子区块中的常规比特子(bin)的最大数量可以限制为25。

在一些实施例中,语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag和par_level_flag在第一子区块通道中传讯。语法元素abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag和abs_level_gt9_flag分别在子区块译码通道2、3、4和5中进行了熵译码。sig_coeff_flag的上下文建模以两个邻居(neighbor)的sig_coeff_flag值为条件。abs_level_gt1_flag和par_level_flag的上下文建模分别采用单个上下文。在一些实施例中,语法元素abs_level_gtx_flag[n][j],j=0..4,]指定转换系数字准的绝对值(在扫描位置n处)是否大于(j<<1) 1以及是否分别对应于语法元素abs_level_gt1_flag、abs_level_gt3_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag和abs_level_gt9_flag。语法元素par_level_flag和abs_level_gtx_flag[n][j],j=0..4,]均使用单个上下文变量进行译码。

II.跳过转换的块(Transform-SkippedBlocks)

在一些实施例中,提供了用于传讯转换省略(transform skip,简写为TS)模式、基于块的增量脉冲译码调制(BDPCM)模式以及其他与转换省略相关的工具的方法。当通过使用转换省略模式对块进行译码时,对量化的残差信号进行熵译码,而无需经历转换操作。当通过使用BDPCM模式对块进行译码时,对残差进行量化,并且对每个量化后的残差与其预测子(例如,先前译码的水平或垂直(取决于BDPCM预测方向)相邻位置的残差)之间的差进行译码。

在一些实施例中,视频译码器可传讯高阶语法(high-level syntax,简写为HLS)集中的多个语法元素,例如序列参数集(SPS)、图像参数集(PPS)和/或切片标头(header)用于控制转换省略模式和相关的译码工具的使用。在一些实施例中,高阶语法(HLS)集表示高于块位准的位准的语法集合,例如用于高于块位准的位准的序列参数集(SPS)、图像参数集(PPS)、切片标头或任何其他集。视频译码器可传讯一个或一个以上高阶语法元素以指示在当前比特流中是否启用了转换省略模式(TSM)。当启用转换省略模式时,视频译码器可进一步传讯一个或一个以上高阶语法元素以指示在当前比特流中是否启用了BDPCM。

在一些实施例中,当启用转换省略模式时,视频译码器可进一步传讯一个或一个以上高阶语法元素以指示是否采用替代性残差译码工具或过程来对TSM中的残差块进行译码。具体地,当以转换省略模式对CU进行译码时(换句话说,将转换省略模式用于CU),可以使用转换省略残差译码处理(也称为替代残差译码处理)对其预测残差进行量化和(熵)译码。在一些实施例中,替代残差译码处理是从常规转换系数译码处理中修改的。具体地,以大小为4x4的非重迭子块为单位对TU的残差进行译码,应用前向扫描顺序以扫描转换块内的子块以及子块内的位置;不传讯最后(x,y)位置(last(x,y)position);当所有前面的标志都等于0时,除最后一个子块外,每个子块都译码coded_sub_block_flag;sig_coeff_flag上下文建模使用简化的模板,而sig_coeff_flag的上下文模型取决于顶部和左侧的相邻值;abs_level_gt1标志的上下文模型还取决于左侧和顶部sig_coeff_flag上下文建模使用精简模板,而sig_coeff_flag的上下文模型取决于顶部和左侧相邻值;par_level_flag仅使用一种上下文模型;传讯另外的大于3、5、7、9的标志以指示系数字准,每个标志一个上下文;使用修正的参数推导对余数值(remaindervalue)进行二值化;以及根据左侧和上方的相邻值确定正负号标志的上下文模型,并在sig_coeff_flag之后解析符号标志,以将所有上下文译码的比特子保持在一起。

在一些实施例中,视频译码器可传讯SPS语法元素sps_transform_skip_enabled_flag和PPS语法元素pps_bdpcm_enabled_flag和pps_alternative_residual_coding_flag以用于传讯是否启用TSM、BDPCM和替代性残差译码工具。下面提供了SPS、PPS、转换单元的相关语法表:

在一些实施例中,视频译码器可传讯SPS语法元素sps_transform_skip_enabled_flag、sps_bdpcm_enabled_flag和sps_alternative_residual_coding_flag以用于传讯是否启用TSM、BDPCM和替代残差译码工具。SPS、PPS和转换单元的相关语法表如下:

图1在概念上示出了在诸如SPS的高阶语法集中的TSM相关信号的传讯。该图示出了三个SPS 110、120和130。SPS 110适用于视频图像序列115。SPS 120适用于视频图像序列125。SPS 130适用于视频图像序列135。

SPS 110包括被设置为“假(false)”的TSM启用语法元素。因此,视频序列115不允许TSM,并且序列115中的所有块在没有TSM的情况下被译码。在一些实施例中,这意味着通过将空间域信号(例如,预测残差)转换成转换域信号(例如,转换系数)来对视频序列125的每个块进行译码,然后对它们进行量化和熵译码。此外,由于SPS中的TSM启用语法元素被设置为假,因此没有其他与TSM相关的语法元素,例如BDPCM或其他残差译码。

SPS 120包括被设置为真的TSM启用语法元素。因此,对于视频序列125允许TSM,并且通过使用TSM对序列125中的一些图像中的一些块进行译码。对于TSM译码的块,空间域残差信号直接进行量化和熵译码,而无需进行转换。由于TSM使能语法元素被设置为真(true),因此SPS可以包括其他与TSM相关的语法元素,诸如BDPCM使能语法元素。在这种情况下,将BDPCM使能语法元素设置为假,并且不使用BDPCMD对序列125中的任何块进行译码。尽管未示出,但是可能存在语法元素(例如,alternate_residual_coding_flag),其为序列125中的某些块启用或禁用替代残差译码。

SPS 130包括被设置为真的TSM使能语法元素和被设置为真的BDPCM使能标志。因此,通过使用TSM和BDPCM对序列135中的一些块进行译码。对于那些块,时域残差信号在被量化之前通过使用BDPCM被译码,并且被熵译码而不被转换。尽管未示出,但是可能存在语法元素(例如,alternate_residual_coding_flag),其为序列135中的一些块启用或禁用替代残差译码。

可以在编码器和/或解码器中实现任何前述提出的方法。例如,可以在编码器的熵译码模块和/或解码器的熵译码模块中实现任何所提出的方法。可替代地,任何提出的方法可以被实现为集成到编码器的熵译码模块和/或解码器的熵译码模块的电路。

III.视频译码器示例

图2说明能够实施转换省略模式的示例视频编码器200。如图所示,视频编码器200从视频源205接收输入视频信号,并将该信号编码为比特流295。视频编码器200具有若干组件或模块,用于对来自视频源205的信号进行编码,至少包括选自以下的一些组件:转换模块210、量化模块211、逆量化模块214、逆转换模块215、图像内估计模块220、帧内预测模块225、运动补偿模块230、运动估计模块235、环路滤波器245、重建图像缓冲器250、MV缓冲器265和MV预测模块275,以及熵编码器290。运动补偿模块230和运动估计模块235是帧间预测模块240的一部分。

在一些实施例中,模块210-290是由计算设备或电子装置的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块210-290是由电子装置的一个或多个集成电路(IC)实现的硬件电路的模块。尽管将模块210–290图示为单独的模块,但是某些模块可以组合为单个模块。

视频源205提供原始视频信号,该原始视频信号无需压缩即可呈现每个视频帧的像素数据。减法器208计算视频源205的原始视频像素数据与来自运动补偿模块230或帧内预测模块225的预测像素数据213之间的差。转换模块210将该差(或残差像素数据或残差信号209)转换成转换系数(例如,通过执行离散余弦转换或DCT)。量化模块211将转换系数量化为量化数据(或量化系数)212,其由熵编码器290编码成比特流295。

逆量化模块214对量化数据(或量化系数)212进行去量化以获得转换系数,并且逆转换模块215对转换系数执行逆转换以产生重建残差219。将重建残差219添加预测像素数据213与预测像素数据213一起产生重建像素数据217。在一些实施例中,重建像素数据217被临时存储在行缓冲器(line buffer)(未示出)中,以用于图像内预测和空间MV预测。重建像素由环路滤波器245滤波并存储在重建图像缓冲器250中。在一些实施例中,重建图像缓冲器250是视频编码器200外部的存储器。在一些实施例中,重建图像缓冲器250是视频编码器200内部的存储器。

图像内(intra-picture)估计模块220基于重建的像素数据217执行帧内预测以产生帧内预测数据。帧内预测数据被提供给熵编码器290以被编码为比特流295。帧内预测数据还被帧内预测模块225使用以产生预测像素数据213。

运动估计模块235通过产生MV来执行帧间预测,以参考存储在重建图像缓冲器250中的先前解码帧的参考像素数据。这些MV被提供给运动补偿模块230以产生预测像素数据。

代替对比特流中的完整的实际MV进行编码,视频编码器200使用MV预测来生成预测的MV,并且将用于运动补偿的MV与预测的MV之间的差编码为残差运动数据并存储在比特流295中。

MV预测模块275基于为了对先前的视频帧进行编码而生成的参考MV,即,用于执行运动补偿的运动补偿MV,来生成预测的MV。MV预测模块275从MV缓冲器265中的先前视频帧中检索参考MV。视频编码器200将针对当前视频帧生成的MV存储在MV缓冲器265中,作为用于生成预测MV的参考MV。

MV预测模块275使用参考MV来创建预测的MV。可以通过空间MV预测或时间MV预测来计算预测的MV。熵编码器290将当前帧的预测MV和运动补偿MV(MC MV)之间的差(残差运动数据)编码到比特流295中。

熵编码器290通过使用诸如上下文自适应二进制算术译码(CABAC)或霍夫曼编码的熵译码技术将各种参数和数据编码到比特流295中。熵编码器290将各种报头元素、标志以及量化的转换系数212和残差运动数据作为语法元素编码到比特流295中。比特流295又被存储在存储设备中或通过例如网络的通信介质被发送到解码器。

环路滤波器245对重建的像素数据217执行滤波或平滑操作以减少译码的伪像,特别是在像素区块的边界处。在一些实施例中,执行的滤波操作包括采样自适应偏移(SAO)。在一些实施例中,滤波操作包括自适应环路滤波(adaptive loop filter,简写为ALF)。

图3说明视频编码器200的实施转换省略模式的部分。具体地,编码器200基于是否为当前图像或包括当前图像的当前序列启用了那些工具来确定对每个像素区块是否使用跳过转换操作以及是否使用诸如BDPCM和/或替代残差译码之类的与转换省略相关的操作。

如所说明,转换模块210对残差信号209执行转换操作,且逆转换模块215执行对应的逆转换操作。如果针对正在译码的当前区块激活了TSM,则编码器200可以跳过转换和逆转换操作。当使用转换省略模式时,残差信号209不由转换模块210处理,而是由量化模块211直接量化。而且,当使用TSM时,逆量化模块214的输出被直接用作重建残差,而非由逆转换模块215处理。

当针对当前区块启用BDPCM时,BDPCM模块311在熵编码之前对量化模块211的输出执行BDPCM处理,并且逆BDPCM模块314在逆量化模块214的输入处执行相应的BDPCM处理。熵编码器290可以基于是否使用替代残差译码来执行常规残差译码(regularresidual coding,简写为RRC)处理311或转换省略残差译码(TSRC)处理312。

译码控制模块300可以控制在转换模块210和逆转换模块215处的转换和逆转换操作的跳过。译码控制模块300还可以在BDPCM模块311和逆BDPCM模块314处启用或禁用相应地BDPCM操作。译码控制模块还可通过在熵编码器290中选择TSRC或RRC之一来启用或禁用替代残差译码。

取决于是否将TSM、BDPCM和/或替代残差译码用于视频图像的当前序列、当前图像或当前区块,译码控制模块300可以将相应的语法元素,例如sps_transform_skip_enable_flag、sps_bdpcm_enable_flag和/或alternative_residual_coding_flag(用于PPS或SPS或切片标头)编码到比特流295中。

图4概念性地示出了用于在视频编码期间使用转换省略模式的过程400。在一些实施例中,实现编码器200的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程400。在一些实施例中,实现编码器200的电子装置执行过程400。

编码器接收(在框410处)要在比特流中编码为一个或多个视频图像的数据。编码器在比特流中传讯(在框420处)当前视频图像序列(current sequence ofvideo pictures)的SPS中的TSM语法元素(例如,sps_transform_skip_enable_flag)。编码器确定(在框425处)当前视频图像序列是否允许TSM。如果当前序列允许TSM,则过程进行到440。如果当前序列不允许TSM,则过程进行到430。

在框430处,编码器在不使用TSM的情况下对当前序列的图像进行编码。在一些实施例中,当TSM语法元素指示针对视频图像的当前序列未启用转换省略模式时,通过使用量化的转换系数来对视频图像的当前序列中的所有区块进行编码。

在框440处,编码器在比特流中传讯SPS中的BDPCM语法元素(例如,sps_bdpcm_enable_flag),以指示当前序列中的图像是否允许使用BDPCM。编码器还在比特流中传讯(在框450处)替代的残差译码语法元素(例如,用于PPS或SPS的替代_residual_coding_flag或切片报头)。然后,过程进行到框460。

如果视频图片序列允许使用TSM,并且如果当前块启用了TSM,则编码器通过使用TSM编码(在框460)视频图像的当前序列中的当前块。例如,如果比特流中的标志指示TSM对于当前块是活动的,则编码器通过使用未转换并保留在空间域中的量化残差信号对当前块进行编码。

当通过使用TSM对当前区块进行译码时,如果当前区块启用了BDPCM和/或替代残差译码,则当前区块的编码还可以使用BDPCM和/或替代残差译码模式。具体地,当视频图像的当前序列允许BDPCM且当前区块使能BDPCM时(例如,比特流中指示BDPCM对于当前区块有效的标志),则BDPCM用于对当前区块进行编码(通过使用残差信号与相邻位置的先前译码残差信号之间的差来译码当前区块中某个位置的残差信号)。当为当前区块启用替代残差译码时(例如,比特流中没有禁用当前切片的替代残差译码的标志),使用替代残差译码(例如TSRC)对当前区块的残差信号进行熵编码,否則使用常規殘差譯碼(RRC)。

IV.视频解码器示例

图5说明能够实施转换省略模式的示例视频解码器500。如图所示,视频解码器500是图像解码或视频解码电路,其接收比特流595并将比特流的内容解码为视频帧的像素数据以供显示。视频解码器500具有用于解码比特流595的若干组件或模块,包括选自逆量化模块505、逆转换模块510、帧内预测模块525、运动补偿模块530、环路滤波器545、解码图像缓冲器550、MV缓冲器565、MV预测模块575和解析器590中的一些组件。运动补偿模块530是帧间预测模块540的一部分。

在一些实施例中,模块510-590是由计算设备的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块510-590是由电子装置的一个或多个IC实现的硬件电路的模块。尽管模块510-590被示为单独的模块,但是一些模块可以组合成单个模块。

解析器590(或熵解码器)接收比特流595,并根据由视频译码或图像译码标准定义的语法执行初始解析。解析的语法元素包括各种报头元素、标志以及量化的数据(或量化的系数)512。解析器590通过使用诸如上下文自适应二进制算术译码(CABAC)或霍夫曼编码的熵译码技术解析各种语法元素。

逆量化模块505对量化数据(或量化系数)512进行去量化以获得转换系数,并且逆转换模块510对转换系数516执行逆转换以产生重建残差信号519。重建残差信号519与来自帧内预测模块525或运动补偿模块530的预测像素数据513相加,以产生解码像素数据517。解码像素数据由环路滤波器545滤波并存储在解码图像缓冲器550中。在一些实施例中,解码图像缓冲器550是视频解码器500外部的存储器。在一些实施例中,解码图像缓冲器550是视频解码器500内部的存储器。

帧内预测模块525从比特流595接收帧内预测数据,并据此从存储在解码图像缓冲器550中的解码像素数据517中生成预测像素数据513。在一些实施例中,解码像素数据517也被存储在用于图像内预测和空间MV预测的行缓冲器(未示出)中。

在一些实施例中,解码图像缓冲器550的内容用于显示。显示设备555或者检索解码图像缓冲器550的内容以直接显示,或者将解码图像缓冲器的内容检索到显示缓冲器。在一些实施例中,显示设备通过像素传输从解码图像缓冲器550接收像素值。

运动补偿模块530根据运动补偿MV(MC MV)从存储在解码图像缓冲器550中的解码像素数据517中生成预测像素数据513。通过将从比特流595接收到的残差运动数据与从MV预测模块575接收到的预测MV相加来对这些运动补偿MV进行解码。

MV预测模块575基于为解码先前的视频帧而生成的参考MV(例如,用于执行运动补偿的运动补偿MV)来生成预测的MV。MV预测模块575从MV缓冲器565中检索先前视频帧的参考MV。视频解码器500将为解码当前视频帧而生成的运动补偿MV存储在MV缓冲器565中,作为用于产生预测MV的参考MV。

环路滤波器545对解码的像素数据517执行滤波或平滑操作,以减少译码的伪像,特别是在像素区块的边界处。在一些实施例中,执行的滤波操作包括采样自适应偏移(SAO)。在一些实施例中,滤波操作包括自适应环路滤波(ALF)。

图6说明视频解码器500的实施转换省略模式的部分。具体地,解码器500基于是否为当前图像或包含当前图像的当前序列启用了那些工具来确定是否跳过(逆)转换操作,以及是否对每个像素区块使用诸如BDPCM和/或替代残差译码之类的与转换省略相关的操作。

如图所示,逆量化器514对由熵解码器590解析的量化系数512执行逆量化操作。逆量化器514的输出被提供给逆转换模块516以被逆转换为残差信号。当使用TSM时,逆量化模块514的输出直接用作重建残差,而非由逆转换模块515处理。

当针对当前区块启用BDPCM时,逆BDPCM模块614在逆量化模块514的输入处执行BDPCM处理。熵解码器590可以基于是否使用替代残差译码执行常规残差译码(RRC)处理611或转换省略残差译码(TSRC)处理612。

译码控制模块600可以控制逆转换模块515处的逆转换操作的跳过。译码控制模块600还可以在逆BDPCM模块614处启用或禁用BDPCM操作。译码控制模块也可以通过在熵解码器590中选择TSRC或RRC之一来启用或禁用替代残差译码。译码控制模块600可以基于语法元素生成对应这些TSM相关操作的控制,语法元素诸如由熵解码器590字比特流595解析的sps_transform_skip_enable_flag、sps_bdpcm_enable_flag和/或alternate_residual_coding_flag(用于PPS或SPS或切片报头)。

图7概念性地示出了用于在视频编码期间使用转换省略模式的过程700。在一些实施例中,实现解码器500的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程700。在一些实施例中,实现解码器500的电子装置执行过程700。

解码器从比特流接收(在框710处)要解码为一个或多个视频图像的数据。解码器解析(在框720处)比特流,得到当前视频图像序列的SPS中的TSM语法元素(例如,sps_transform_skip_enable_flag)。解码器确定(在框725)当前视频图像序列是否允许TSM。如果当前序列允许TSM,则过程进行到740。如果当前序列不允许TSM,则过程进行到730。

在框730,解码器在不使用TSM的情况下重建当前序列的图像。在一些实施例中,当TSM语法元素指示对于视频图像的当前序列不允许转换省略模式时,通过使用量化的转换系数来对视频图像的当前序列中的所有区块进行译码。

在框740,解码器解析比特流,获取SPS中的BDPCM语法元素(例如,sps_bdpcm_enable_flag),以指示当前序列中的图像是否允许使用BDPCM。解码器还解析(在框750处)比特流,得到替代残差译码语法元素(例如,用于PPS或SPS或切片报头的alternate_residual_coding_flag)。然后该过程进行到框760。

如果对于视频图像序列允许TSM,并且如果对于当前区块使能TSM,则解码器通过使用TSM重建(在块760)视频图像的当前序列的当前图像中的当前区块。例如,如果比特流中的标志指示TSM对于当前区块是有效的(active),则解码器将通过使用未转换并保留在空间域中的量化残差信号来重建当前区块。

当通过使用TSM对当前区块进行译码时,如果对当前区块启用了BDPCM和/或替代残差译码,则当前区块的解码还可以使用BDPCM和/或替代残差译码。具体而言,当视频图像的当前序列允许BDPCM且当前区块启用BDPCM时(例如,比特流中指示BDPCM对于当前区块有效的标志),则BDPCM用于解码当前区块(通过使用残差信号与相邻位置的先前译码残差信号之间的差来译码当前区块中某个位置的残差信号。)当为当前区块启用替代残差译码时(例如,比特流中没有标志禁用当前切片的替代残差译码),使用替代残差译码(例如TSRC)对当前区块的残差信号进行熵解码,否则使用常规残差译码(RRC)。

V.示例的电子系统

许多上述特征和应用被实现为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件过程。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的核心或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。

在本说明书中,术语“软件”旨在包括驻留在只读存储器中的固件或存储在磁性存储器中的应用,其可以被读取到存储器中以由处理器进行处理。同样,在一些实施例中,可以将多个软件发明实现为较大程序的子部分,同时保留不同的软件发明。在一些实施例中,多种软件发明也可以被实现为单独的程序。最后,一起实现这里描述的软件发明的单独程序的任何组合都在本公开的范围内。在一些实施例中,软件程序在安装以在一个或多个电子系统上运行时,定义了一种或多种实现和执行软件程序的操作的特定机器实现。

图8概念性地示出了实现本公开的一些实施例的电子系统800。电子系统800可以是计算机(例如,台式计算机、个人计算机、平板计算机等)、电话、PDA或任何其他种类的电子设备。这样的电子系统包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的介面。电子系统800包括总线805、(一个或多个)处理单元810、图形处理单元(GPU)815、系统存储器820、网络825、只读存储器830、永久存储设备835、输入设备840以及输出设备845。

总线805共同代表通信地连接电子系统800的众多内部设备的所有系统总线、外围设备总线和芯片组总线。例如,总线805将(一个或多个)处理单元810、只读存储器830、系统存储器820和永久存储设备835与GPU 815通信地连接。

处理单元810从这些各种存储单元中检索要执行的指令和要处理的数据,以便执行本公开的处理。在不同的实施例中,处理单元可以是单个处理器或多核处理器。一些指令被传递到GPU 815并由其执行。GPU 815可以卸载各种计算或补充由处理单元810提供的图像处理。

只读存储器(ROM)830存储由处理单元810和电子系统的其他模块使用的静态数据和指令。另一方面,永久存储设备835是读写存储设备。该设备是即使在电子系统800关闭时也存储指令和数据的非易失性存储单元。本公开的一些实施例使用大容量存储设备(诸如磁盘或光盘及其对应的磁盘驱动器)作为永久存储设备835。

其他实施例使用可移动存储设备(例如软盘、闪存设备等,及其对应的磁盘驱动器)作为永久存储设备。像永久存储设备835一样,系统存储器820是读写存储设备。然而,与存储设备835不同,系统存储器820是易失性读写存储器,例如随机存取存储器。系统存储器820存储处理器在运行时使用的一些指令和数据。在一些实施例中,根据本公开的处理被存储在系统存储器820、永久存储设备835和/或只读存储器830中。例如,各种存储单元包括用于根据一些实施例处理多媒体剪辑的指令。处理单元810从这些各种存储单元中检索要执行的指令和要处理的数据,以便执行一些实施例的处理。

总线805还连接到输入和输出设备840和845。输入设备840使用户能够向电子系统传达信息并选择命令。输入设备840包括字母数字键盘和指示设备(也称为“鼠标控制设备”)、照相机(例如,网络摄像头)、麦克风或用于接收语音命令的类似设备等。输出设备845显示由电子系统生成的图像或其他输出数据。输出设备845包括打印机和显示设备,例如阴极射线管(CRT)或液晶显示器(LCD),以及扬声器或类似的音频输出设备。一些实施例包括既充当输入设备又充当输出设备的设备,例如触摸屏。

最后,如图8所示,总线805还通过网络适配器(未示出)将电子系统800耦合到网络825。以这种方式,计算机可以是计算机网络的一部分(例如局域网(“LAN”)、广域网(“WAN”)或内联网,或网络网(例如因特网)。电子系统800的任何或所有组件可以与本公开结合使用。

一些实施例包括电子组件,例如微处理器,将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质,机器可读介质或机器可读存储介质)中的存储和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字多功能光盘(例如,,DVD-ROM、双层DVD-ROM)、各种可记录/可重写DVD(例如DVD-RAM、DVD-RW、DVD RW等)、闪存(例如SD卡、mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可记录的光盘、超密度光盘、任何其他光学或磁性介质以及软盘。该计算机可读介质可以存储可由至少一个处理单元执行的计算机程序,并且该计算机程序包括用于执行各种操作的指令集。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子部件或使用解释器(interpreter)的微处理器执行的高级代码的文档。

尽管以上讨论主要是指执行软件的微处理器或多核处理器,但是许多上述特征和应用是由一个或多个集成电路执行的,例如专用集成电路(ASIC)或现场可编程控制器门阵列(FPGA)。在一些实施例中,这样的集成电路执行存储在电路本身上的指令。另外,一些实施例执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。

如在本说明书和本申请的任何权利要求中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”均指电子或其他技术设备。这些术语不包括一个人或一群人。为了说明的目的,术语“显示”或“正在显示”表示在电子装置上显示。如本说明书和本申请的任何权利要求中所使用的,术语“计算机可读介质”,“计算机可读媒体”和“机器可读介质”完全限于有形的物理对象,该有形的物理对像以可被计算机读取的形式存储信息。这些术语不包括任何无线信号、有线下载信号和任何其他临时信号。

尽管已经参考许多具体细节描述了本公开,但是本领域技术人员将认识到,在不脱离本公开的精神的情况下,本公开可以以其他特定形式来体现。此外,许多附图(包括图4和图7)在概念上说明了过程。这些过程的特定操作可能无法按照所示和所述的确切顺序执行。可以不在一个连续的一系列操作中执行特定操作,并且可以在不同的实施例中执行不同的特定操作。此外,该过程可以使用几个子过程来实现,或者作为更大的宏过程的一部分来实现。因此,本领域技术人员将理解,本公开内容不受前述说明性细节的限制,而是由所附权利要求限定。

附加声明

文中描述的主题有时示出了包含在其它不同部件内的或与其它不同部件连接的不同部件。应当理解:这样描绘的架构仅仅是示例性的,并且,实际上可以实施实现相同功能的许多其它架构。在概念意义上,实现相同功能的部件的任何布置是有效地“相关联的”,以使得实现期望的功能。因此,文中被组合以获得特定功能的任意两个部件可以被视为彼此“相关联的”,以实现期望的功能,而不管架构或中间部件如何。类似地,这样相关联的任意两个部件还可以被视为彼此“可操作地连接的”或“可操作地耦接的”,以实现期望的功能,并且,能够这样相关联的任意两个部件还可以被视为彼此“操作上可耦接的”,以实现期望的功能。“操作上可耦接的”的具体示例包含但不限于:实体地可联结和/或实体地相互、作用的部件、和/或无线地可相互作用和/或无线地相互作用的部件、和/或逻辑地相互作用的和/或逻辑地可相互作用的部件。

此外,关于文中基本上任何复数和/或单数术语的使用,只要对于上下文和/或应用是合适的,本领域技术人员可以将复数转换成单数,和/或将单数转换成复数。为清楚起见,这里可以明确地阐述各种单数/复数排列。

本领域技术人员将会理解,通常,文中所使用的术语,特别是在所附权利要求(例如,所附权利要求中的主体)中所使用的术语通常意在作为“开放性”术语(例如,术语“包含”应当被解释为“包含但不限干”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限干”等)。本领域技术人员还将理解,如果意在所介绍的权利要求陈述对象的具体数目,则这样的意图将会明确地陈述在权利要求中,在缺乏这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,所附权利要求可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述对象。然而,这样的短语的使用不应当被解释为:用不定冠词“一个(a或an)”的权利要求陈述对象的介绍将包含这样介绍的权利要求陈述对象的任何权利要求限制为只包含一个这样的陈述对象的发明,即使在同一权利要求包含介绍性短语“一个或更多个”或“至少一个”以及诸如“一个(a)”或“一个(an)”之类的不定冠词的情况下(例如,“一个(a)”和/或“一个(an)”应当通常被解释为意味着“至少一个”或“一个或更多个”)也如此;上述对以定冠词来介绍权利要求陈述对象的情况同样适用。另外,即使明确地陈述了介绍的权利要求陈述对象的具体数目,但本领域技术人员也会认识到:这样的陈述通常应当被解释为意味着至少所陈述的数目(例如,仅有“两个陈述对象”而没有其他修饰语的陈述通常意味着至少两个陈述对象,或两个或更多个陈述对象)。此外,在使用类似于“A、B和C中的至少一个等”的惯用语的情况下,通常这样的结构意在所属技术领域具有通常知识者所理解的该惯用语的含义(例如,“具有A、B和C中的至少一个的系统”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。在使用类似于“A、B或C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域技术人员所理解的该惯用语的含义(例如,“具有A、B或C中的至少一个的系统”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。本领域技术人员将进一歩理解,不管在说明书、权利要求中还是在附图中,表示两个或更多个可替换的术语的几乎任意析取词和/或短语应当理解成考虑包含术语中的一个、术语中的任一个或所有两个术语的可能性。例如,短语“A或B”应当被理解成包含“A”、“B”、或“A和B”的可能性。

从前述内容可以理解,本文已经出于说明的目的描述了本公开的各种实施方式,并且在不脱离本公开的范围和精神的情况下可以进行各种修改。因此,本文公开的各种实施方式不旨在是限制性的,真正的范围和精神由所附权利要求指示。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献