视频编解码的方法和装置与流程

文档序号:24390815发布日期:2021-03-23 11:25阅读:144来源:国知局
视频编解码的方法和装置与流程

本申请涉及图像处理领域,并且更为具体地,涉及一种视频编解码的方法和装置。



背景技术:

滤波是视频编码框架中的重要模块,滤波可以包括双边滤波、自适应环路滤波、自适应样值补偿滤波和去块滤波。目前,在对相邻的色度(chroma)块的边界进行去块滤波时,需要用到色度块的量化参数(quantizationparameter,qp),而色度块的量化参数是基于亮度块的量化参数来导出的。当前采用的方式是在亮度块导出的量化参数的基础上,增加一个量化参数偏移(offset)。在确定chromaqpoffset时,还存在可以改善的地方。



技术实现要素:

本申请实施例提供的视频编解码的方法和装置,可提高去块滤波的准确性,提高视频编解码效率。

第一方面,提供了一种视频编解码方法,包括:在对第一色度块和第二色度块的边界进行去块滤波时,若所述第一色度块的量化残差全为零,则将所述第一色度块的编码单元级的量化参数偏移设置为第一预设值;

根据第一量化参数和所述第一色度块的编码单元级的量化参数偏移确定所述第一色度块的第二量化参数,其中,所述第一量化参数是根据所述第一色度块对应的亮度块的量化参数导出的;

根据所述第二量化参数对所述第一色度块和所述第二色度块的边界进行去块滤波。

第二方面,提供了一种视频编解码装置,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序执行如下操作:

在对第一色度块和第二色度块的边界进行去块滤波时,若所述第一色度块的量化残差全为零,则将所述第一色度块的编码单元级的量化参数偏移设置为第一预设值;

根据第一量化参数和所述第一色度块的编码单元级的量化参数偏移确定所述第一色度块的第二量化参数,其中,所述第一量化参数是根据所述第一色度块对应的亮度块的量化参数导出的;

根据所述第二量化参数对所述第一色度块和所述第二色度块的边界进行去块滤波。

第三方面,提供一种芯片,用于实现上述第一方面或其各实现方式中的方法。

具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面或其各实现方式中的方法。

第四方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。

第五方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面或第一方面的各实现方式中的方法。

本申请实施例提供的视频编解码的方法,在对色度块的边界进行去块滤波时,如果当前色度块是全零块(即量化参数全为零),则可以将当前块的cu级量化参数偏移设置为预设值(例如0),从而避免色度分量的deblocking使用错误的qpoffset,改善现有流程中去块滤波的效果,提升视频编解码的效果和性能。

附图说明

图1是应用本申请实施例的技术方案的架构图;

图2是根据本申请实施例的视频编码框架2示意图;

图3是本申请一实施例提供的视频编解码方法的示意性流程图;

图4是本申请一实施例提供的视频编解码装置的示意性图;

图5是本申请实施例提供的芯片的示意性结构图。

具体实施方式

下面对本申请实施例中的技术方案进行描述。

除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。

图1是应用本申请实施例的技术方案的架构图。

如图1所示,系统100可以接收待处理数据102,对待处理数据102进行处理,产生处理后的数据108。例如,系统100可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统100可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统100中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是移动设备(例如无人机)中的处理器。该处理器可以为任意种类的处理器,本发明实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统100中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本发明实施例的技术方案的计算机可执行指令、待处理数据102、处理后的数据108等。该存储器可以为任意种类的存储器,本发明实施例对此也不做限定。

待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、dna采样等。

图2是根据本申请实施例的视频编码框架2示意图。如图2所示,在接收待编码视频后,从待编码视频的第一帧开始,依次对待编码视频中的每一帧进行编码。其中,当前编码帧主要经过:预测(prediction)、变换(transform)、量化(quantization)和熵编码(entropycoding)等处理,最终输出当前编码帧的码流。对应的,解码过程通常是按照上述过程的逆过程对接收到的码流进行解码,以恢复出解码前的视频帧信息。

具体地,如图2所示,所述视频编码框架2中包括一个编码控制模块201,用于进行编码过程中的决策控制动作,以及参数的选择。例如,如图2所示,编码控制模块201控制变换、量化、反量化、反变换的中用到的参数,控制进行帧内或者帧间模式的选择,以及运动估计和滤波的参数控制,且编码控制模块201的控制参数也将输入至熵编码模块中,进行编码形成编码码流中的一部分。

对当前编码帧开始编码时,对编码帧进行划分202处理,具体地,首先对其进行条带(slice)划分,再进行块划分。可选地,在一个示例中,编码帧划分为多个互不重叠的最大的编码树单元(codingtreeunit,ctu),各ctu还可以分别按四叉树、或二叉树、或三叉树的方式迭代划分为一系列更小的编码单元(codingunit,cu),一些示例中,cu还可以包含与之相关联的预测单元(predictionunit,pu)和变换单元(transformunit,tu),其中pu为预测的基本单元,tu为变换和量化的基本单元。一些示例中,pu和tu分别是在cu的基础上划分成一个或多个块得到的,其中一个pu包含多个预测块(predictionblock,pb)以及相关语法元素。一些示例中,pu和tu可以是相同的,或者,是由cu通过不同的划分方法得到的。一些示例中,cu、pu和tu中的至少两种是相同的,例如,不区分cu、pu和tu,全部是以cu为单位进行预测、量化和变换。为方便描述,下丈中将ctu、cu或者其它形成的数据单元均称为编码块。

应理解,在本申请实施例中,视频编码针对的数据单元可以为帧,条带,编码树单元,编码单元,编码块或以上任一种的组。在不同的实施例中,数据单元的大小可以变化。

具体地,如图2所示,编码帧划分为多个编码块后,进行预测过程,用于去除当前编码帧的空域和时域冗余信息。当前比较常用的预测编码方法包括帧内预测和帧间预测两种方法。帧内预测仅利用本帧图像中己重建的信息对当前编码块进行预测,而帧间预测会利用到之前已经重建过的其它帧图像(也被称作参考帧)中的信息对当前编码块进行预测。具体地,在本申请实施例中,编码控制模块201用于决策选择帧内预测或者帧间预测。

当选择帧内预测模式时,帧内预测203的过程包括获取当前编码块周围已编码相邻块的重建块作为参考块,基于该参考块的像素值,采用预测模式方法计算预测值生成预测块,将当前编码块与预测块的相应像素值相减得到当前编码块的残差,当前编码块的残差经过变换204、量化205以及熵编码210后形成当前编码块的码流。进一步的,当前编码帧的全部编码块经过上述编码过程后,形成编码帧的编码码流中的一部分。此外,帧内预测203中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。

具体地,变换204用于去除图像块的残差的相关性,以便提高编码效率。对于当前编码块残差数据的变换通常采用二维离散余弦变换(discretecosinetransform,dct)变换和二维离散正弦变换(discretesinetransform,dst)变换,例如在编码端将编码块的残差信息分别与一个n×m的变换矩阵及其转置矩阵相乘,相乘之后得到当前编码块的变换系数。

在产生变换系数之后用量化205进一步提高压缩效率,变换系数经量化可以得到量化后的系数,然后将量化后的系数进行熵编码210得到当前编码块的残差码流,其中,熵编码方法包括但不限于内容自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)熵编码。最后将熵编码得到的比特流及进行编码后的编码模式信息进行存储或发送到解码端。在编码端,还会对量化的结果进行反量化206,对反量化结果进行反变换207。在反变换207之后,利用反变换结果以及运动补偿结果,得到重建像素。之后,对重建像素进行滤波(即环路滤波)211。在211之后,输出滤波后的重建图像(属于重建视频帧)。后续,重建图像可以作为其他帧图像的参考帧图像进行帧间预测。本申请实施例中,重建图像又可称为重建后的图像或重构图像。

具体地,帧内预测203过程中的已编码相邻块为:当前编码块编码之前,已进行编码的相邻块,该相邻块的编码过程中产生的残差经过变换204、量化205、反量化206、和反变换207后,与该相邻块的预测块相加得到的重建块。对应的,反量化206和反变换207为量化206和变换204的逆过程,用于恢复量化和变换前的残差数据。

如图2所示,当选择帧间预测模式时,帧间预测过程包括运动估计(motionestimation,me)208和运动补偿(motioncompensation,mc)209。具体地,根据重建视频帧中的参考帧图像进行运动估计208,在一张或多张参考帧图像中根据一定的匹配准则搜索到与当前编码块最相似的图像块为匹配块,该匹配块与当前编码块的相对位移即为当前编码块的运动矢量(motionvector,mv)。然后基于该运动矢量和参考帧对当前编码块进行运动补偿209,获得当前编码块的预测块。并将该编码块像素的原始值与对应的预测块像素值相减得到编码块的残差。当前编码块的残差经过变换204、量化205以及熵编码210后形成编码帧的编码码流中的一部分。此外,运动补偿209中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。

其中,如图2所示,重建视频帧为经过滤波211之后得到视频帧。重建视频帧包括一个或多个重建后的图像。滤波211用于减少编码过程中产生的块效应和振铃效应等压缩失真,重建视频帧在编码过程中用于为帧间预测提供参考帧,在解码过程中,重建视频帧经过后处理后输出为最终的解码视频。

具体地,帧间预测模式可以包括高级运动矢量预测(advancedmotionvectorprediction,amvp)模式、合并(merge)模式或跳过(skip)模式。

对于amvp模式而言,可以先确定运动矢量预测(motionvectorprediction,mvp),在得到mvp之后,可以根据mvp确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕之后得到最优的mv,由mv确定参考块在参考图像中的位置,参考块减去当前块得到残差块,mv减去mvp得到运动矢量差值(motionvectordifference,mvd),并将该mvd和mvp的索引通过码流传输给解码端。

对于merge模式而言,可以先确定mvp,并直接将mvp确定为当前块的mv。其中,为了得到mvp,可以先构建一个mvp候选列表(mergecandidatelist),在mvp候选列表中,可以包括至少一个候选mvp,每个候选mvp可以对应有一个索引,编码端在从mvp候选列表中选择mvp之后,可以将该mvp索引写入到码流中,则解码端可以按照该索引从mvp候选列表中找到该索引对应的mvp,以实现对图像块的解码。

应理解,以上过程只是merge模式的一种具体实现方式。merge模式还可以具有其他的实现方式。

例如,skip模式是merge模式的一种特例。按照merge模式得到mv之后,如果编码端确定当前块和参考块基本一样,那么不需要传输残差数据,只需要传递mvp的索引,以及进一步地可以传递一个标志,该标志可以表明当前块可以直接从参考块得到。

也就是说,merge模式特点为:mv=mvp(mvd=0);而skip模式还多一个特点,即:重构值rec=预测值pred(残差值resi=0)。

merge模式可以应用于几何预测技术中。在几何预测技术中,可以将待编码的图像块划分为多个形状为多边形的子图像块,可以从运动信息候选列表中,分别为每个子图像块确定运动矢量,并基于每个子图像块的运动矢量,确定每个子图像块对应的预测子块,基于每个子图像块对应的预测子块,构造当前图像块的预测块,从而实现对当前图像块的编码。

对于解码端,则进行与编码端相对应的操作。首先利用熵解码以及反量化和反变换得到残差信息,并根据解码码流确定当前图像块使用帧内预测还是帧间预测。如果是帧内预测,则利用当前帧中已重建图像块按照帧内预测方法构建预测信息;如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,得到预测信息;接下来,再将预测信息与残差信息进行叠加,并经过滤波操作便可以得到重建信息。

然而由于当前的视频编码框架以块为单位进行编码,若相邻块之间的编码方式不同,会导致在块边界存在不连续性,降低了视频压缩的主客观质量。

本申请提出了一种视频编解码的方法,该方法可以提升视频编解码的主客观质量。

本申请实施例中的主客观质量可以包括主观质量和客观质量。其中,主观质量可以基于人的感官进行评价,客观质量可以基于特定的模型进行评价。采用本申请实施例中的方法,可以提升对视频编解码的性能,改善视频质量。

为了更加理解本申请的方案,下文先对滤波技术进行简单的介绍。

基于块的环路滤波技术可以包括双边滤波、自适应环路滤波、自适应样值补偿滤波和去块滤波(deblock)。双边滤波的基本思想是当前像素由它自身和相邻四个点像素值的加权平均来计算,实现保边去噪。

自适应环路滤波是一种维纳滤波器,主要用于最小化原始图像和重构图像之间的均方误差。

自适应样值补偿滤波通过对图像块内像素进行分类,进而为每类像素加上相同补偿值的方式使得重构图像更接近原始图像,从而起到抑制振铃效应的作用。

去块滤波用于预测单元和变换单元的边界,利用训练得到的低通滤波器进行边界像素的非线性加权,从而减少块效应;其中,块效应是指:当前的视频编码框架以块为单位进行编码,由于相邻块之间编码方式的不同而导致的在块边界可能存在不连续性。

去块滤波(deblocking)可以包括以下三个步骤:判断边界、计算边界滤波强度和进行去块滤波操作。

(1)判断边界

亮度分量可以是以4x4的网格进行滤波(高效率视频编码(highefficiencyvideocoding,hevc)时期是8x8的网格),色度分量可以是以8x8的网格进行滤波。边界的判断可以包括以下两个过程,首先,对于当前cu中每一个4x4的亮度块,需要判断其上下左右四个边界是否为tu的边界,并将其标记为“边界”/“非边界”。其次,对于每一个4x4亮度块,判断当前cu是否选用了放射运动模型(affine)模式或子块时间运动矢量预测(sub-blocktemporalmotionvectorprediction,sbtmvp)模式,如果选中了这两种模式中的任何一种,则将当前cu内部的每一个4x4网格的边界标记为“边界“。对于标记为“边界”的块,可以进行后续操作;对于标记为“非边界”的块,可以不进行去块滤波操作。

其中,affine模式或sbtmvp模式,可以将一个cu进一步划分为多个4x4的子cu(sub-cu),每一个sub-cu可以有各自的运动矢量。

(2)计算边界滤波强度(boundarystrength,bs)

在介绍计算边界滤波强度之前,先对图像帧的像素包括的分量进行简单说明。图像帧中的像素通常可以包括多个分量,例如,可以包括亮度(luma)分量和色度(chroma)分量。

以垂直边界为例,将边界左侧的4x4块用p(或blockp)表示,右侧的4x4块用q(或blockq)表示,则可以按照规则一来进行计算边界滤波强度。

规则一:

1)、如果是亮度分量,p、q所属cu都是基于块的脉冲编码调制(block-baseddeltapulsecodemodulation,bdpcm)模式,bs=0;

2)、否则,如果p或q是帧内预测的cu,bs=2;

3)、否则,如果p、q之间的边界是tu边界,而且p或q是组合帧间帧内预测(combineintrainterprediction,ciip)模式,bs=2;

4)、否则,如果p、q之间的边界是tu边界,而且p或q所在变换块包含至少一个非零变换系数,bs=1;

5)、否则,如果p、q之间的边界是tu边界,而且是色度分量,而且p或q所在cu使用色度联合编码方式,bs=1;

6)、否则,如果p、q所在cu使用不同的编码模式(比如p使用帧间预测模式,q使用帧内块拷贝(intrablockcopy,ibc)模式),bs=1;

7)、否则,对于亮度分量,如果以下条件中,至少一个符合,bs=1;

①、p、q都是用ibc模式,而且p、q的mv的差值,在水平方向、或竖直方向上大于等于8;

②、p、q参考不同的参考帧或者mv的数量不同(比如p为双mv,q为单mv);

③、p、q都使用了单mv,且这两个单mv差值大于等于8;

④、p、q都使用了双mv,且p的双mv来自不同参考帧(mv1来自参考帧1,mv2来自参考帧2),q的双mv也来自两个不同参考帧(mv3来自参考帧1,mv4来自参考帧2),p、q参考的参考帧是相同的。那么mv1-mv3的绝对值、mv2-mv4的绝对值,在水平或竖直方向的差值,大于等于8;

⑤、如果p、q都使用了双mv,且双mv来自同一个参考帧,如下两个条件需要同时成立(假设p(mv0来自list0,mv1来自list1),q(mv2来自list0,mv3来自list1));

list0中的mv0和mv2作差绝对值在水平或竖直方向上大于等于8,或者list1中mv1和mv3的作差绝对值在水平或数值方向大于等于8;

mv0和mv3作差绝对值在水平或竖直方向上大于等于8,或者mv1和mv2的作差绝对值在水平或数值方向大于等于8;

8)、否则,bs=0。

(3)、进行去块滤波操作

对于bs=0的情况,不进行滤波;

对于bs=1的情况,进行弱滤波;

对于bs=2的情况,进行强滤波。

其中,上述提及的list0和list1是指参考帧列表。

双向预测中的cu由一帧或者两帧参考图像预测得到,这些参考图像存储在参考帧列表中。设置了两个参考帧列表,也就是list0和list1,这两个列表中都可以包含前向或后向已编码的参考帧。

举例说明,如果当前帧(编号100)有三个前向参考帧和三个后向参考帧,按照自然图像的顺序标号为97、98、99、100、101、102、103.这些帧在list0和list1中的索引不同,在list0中,最靠近当前帧的前面的一帧标志为index0,再前一帧为index1....前向帧之后是按照顺序的后向帧。

list1中和当前帧最靠近的后向帧为index0,再后一帧为index1...后向帧排完之后是前向帧。

其中,滤波过程需要使用量化参数(quantizationparameter,qp),用于去块滤波的qp通过以下方式导出,

亮度(luma)qp:

blockp所在cu的量化参数(假设用qpp表示),blockq所在cu的qpq(假设用qpq表示),最终的qp为

qpl=(qpp+qpq+1)>>1,即对qpp和qpq求均值得到最终的量化参数qpl。该qpl即为对p和q的边界进行去块滤波时使用的量化参数。

blockp和q对应的qp,首先由其临近块qp导出得到一个预测量化参数(假设用qp_prev表示),再对qp_prev加上一个量化参数偏移(假设用lumaqpoffset),得到最终的qp。

色度(chroma)qp:

chromaqp由lumaqp导出,从lumaqp导出chromaqp有一个固定的导出方式,并在lumaqp导出的qp基础上,加上一个qpoffset。chromaqpoffset由三个分量相加得到,分别是图像级的chromaqpoffset,slice级qpoffset,以及cu级qpoffset。

在得到p和q对应的chromaqp后,采用相同方式进行平均,如下,得到用于deblocking过程的chromaqp。

qpc=(qpp+qpq+1)>>1

qp在deblocking过程中的作用如下:由于去块滤波是去除块效应,块效应与量化参数有一定的关系,量化参数越大失真越明显,对应的去块滤波器的参数选择会不同。去块滤波器的参数与qp有一个映射关系,因此需要先确定qp,再进行去块滤波。

在一个块为全零块(量化残差全部为零)的情况下,这个块的qp应该等于预测得到的qp_prev,也就是说没有cu级qpoffset,在已有的设计中,lumaqp在一个块为全零块时,将lumaqpoffset设置为了0,也就是lumaqp设置为了qp_prev。chromaqp在一个块为全零块的时候,没有把cu级chromaqpoffset设置为0。这将影响后续chroma分量的deblocking过程,也就是说chroma分量的deblocking有可能使用了错误的qpoffset。本申请旨在解决当前deblocking设计的问题,以提高去块滤波的效果和性能,从而提高视频编解码的性能。

下面将结合图3详细描述本申请实施例提供的视频编解码的方法300。

如图3所示为本申请一实施例提供的视频编解码的方法300,该方法300可以包括步骤s310-s330。

s310,在对第一色度块和第二色度块的边界进行去块滤波时,若第一色度块的量化残差全为零,则将第一色度块的编码单元级的量化参数偏移设置为第一预设值。

s320,根据第一量化参数和第一色度块的编码单元级的量化参数偏移确定第一色度块的第二量化参数,其中,第一量化参数是根据第一色度块对应的亮度块的量化参数导出的。

s330,根据第二量化参数对第一色度块和第二色度块的边界进行去块滤波。

本申请实施例中的第一色度块和第二色度块可以是经过反量化、反变换后的图形块。对于编码端而言,其步骤可以是对当前图像块进行预测、变换、量化,再对其进行编码,其中,当前图像块的参考图像块可以是经过反量化、反变换以及滤波后的图像块;对于解码端而言,可以先对码流中的残差对应的比特进行反量化、反变换得到残差,根据参考图像和残差得到重建图像,再对反重建图像进行滤波。

在一些实施例中,本申请中的第一色度块和第二色度块也可以称为第一滤波块和第二滤波块。

上述第一量化参数是根据第一色度块(假设为chromap)对应的亮度块(假设为lumap)的量化参数(假设为lumaqp)导出的,由亮度的量化参数(假设为lumaqp)导出色度块的量化参数(假设为chromaqp)有一个固定的导出方式。例如,可以通过查表或者公式导出的方式,通过亮度分量的qp导出色度分量的qp。

示例性的,色度块与亮度块的对应规则根据视频压缩格式确定。例如,对于编码压缩格式为4∶2∶0的视频,每个色度块对应着4个亮度块,或者可以理解为每个色度像素(chromapixel)对应四个亮度像素(lumapixel)。对于编码压缩格式为4∶2∶2的视频,每个色度块对应着2个亮度块,或者可以理解为每个色度像素对应2个亮度像素。对于编码压缩格式为4∶4∶4的视频,每个色度块对应着1个亮度块,或者可以理解为每个色度像素对应1个亮度像素。对于编码压缩格式为4∶1∶1的视频,每个色度块对应着4个亮度块。或者可以理解为每个色度像素对应4个亮度像素。这种情况下,色度块的量化参数可以根据其对应的亮度块的量化参数来导出。其中,如果色度块对应多个亮度块,则可以根据这多个亮度块(或亮度像素)的量化参数求均值或加权均值来导出该色度块的量化参数。

可选的,第一色度块对应的亮度块还可以是第一色度块对应的一个或多个亮度块(或亮度像素)中位于预设位置的目标亮度块(或目标亮度像素)。例如,视频压缩格式为4∶2∶0,目标亮度块是位于所述第一色度块对应的多个亮度块(或者多个亮度像素)中左上角、左下角、右上角或右下角的亮度块(或者左上角的亮度像素)。又例如,视频压缩格式为4∶2∶2,目标亮度块在所述第一色度块对应水平的两个亮度块的情况下,所述目标亮度块是位于所述第一色度块对应的两个亮度块中左边或右边的亮度块(或者亮度像素);或在所述第一色度块对应竖直的两个亮度块的情况下,所述目标亮度块是位于所述第一色度块对应的两个亮度块中上边或下边的亮度块(或者亮度像素)。又例如,视频压缩格式为4∶1∶1,所述目标亮度块是位于所述第一色度块对应的多个亮度块中最左侧、左侧第二个、左侧第三个或者左侧第四个的亮度块(或者亮度像素)。又例如,视频压缩格式为4∶4∶4,所述目标亮度块是所述第一色度块对应的一个亮度块(或者亮度像素)。这种情况下,色度块的量化参数可以根据其对应的一个亮度块的量化参数来导出。

可选的,上述第一预设值为0。即,在第一色度块为全零块(量化残差全部为零)的情况下,将该色度块的chromaqpoffset设置为0。

可选的,上述根据第一色度块对应的亮度块的第一量化参数和第一色度块的编码单元级的量化参数偏移确定第一色度块的第二量化参数,包括:

根据第一量化参数、第一色度块的编码单元级的量化参数偏移以及第一偏移得到第二量化参数,其中,第一偏移包括第一色度块的图像级的色度量化参数偏移和/或第一色度块的条带级的色度量化参数偏移。

示例性的,可以根据第一量化参数、第一色度块的编码单元(cu)级的量化参数偏移、第一色度块的图像级的色度量化参数偏移以及第一色度块的条带(slice)级的色度量化参数偏移来确定第一色度块的第二量化参数。用公式表示为:qp_chromap=qp_lumap+图像级的chromaqpoffset+slice级qpoffse+cu级qpoffset。

可选的,根据第二量化参数对第一色度块和第二色度块的边界进行去块滤波,包括:根据第二量化参数和第三量化参数得到第四量化参数,第三量化参数是第二色度块对应的量化参数;根据第四量化参数对第一色度块和第二色度块的边界进行去块滤波。

也即是说,在对第一色度块和第二色度块的边界进行去块滤波时,采用第一色度块(假设为chromap)的量化参数和第二色度块(假设为chromaq)的量化参数来计算得到用于去块滤波的量化参数。

一种示例中,根据第二量化参数和第三量化参数得到第四量化参数,包括:根据第二量化参数和第三量化参数的均值得到第四量化参数。比如,采用如下公式计算得到:qpc=(qpp+qpq+1)>>1,其中,qpc是最终计算得到的量化参数,qpp是chromap的量化参数,qpq是chromaq的量化参数。

可选的,第二色度块对应的量化参数是根据第二色度块对应的亮度块的量化参数、第二色度块的编码单元级的量化参数偏移以及第二偏移得到的,其中,第二偏移包括第二色度块的图像级的色度量化参数偏移和/或第二色度块的条带级的色度量化参数偏移。

示例性的,可以根据第二色度块对应的亮度块的量化参数、第二色度块的编码单元(cu)级的量化参数偏移、第二色度块的图像级的色度量化参数偏移以及第二色度块的条带(slice)级的色度量化参数偏移来确定第二色度块的量化参数。关于计算第二色度块的量化参数的计算方式可以参考上述关于计算第一色度块的量化参数的计算方式,此处不再赘述。

可选的,根据第四量化参数对第一色度块和第二色度块的边界进行去块滤波,包括:根据第四量化参数以及映射关系,确定第四量化参数对应的去块滤波器的参数,映射关系包括至少一个量化参数与至少一个去块滤波器的参数的映射关系;根据第四量化参数对应的去块滤波器的参数对第一色度块和第二色度块的边界进行去块滤波。其中,去块滤波器的参数与qp有一个映射关系,因此需要先确定qp,再结合映射关系确定该qp对应的去块滤波器的参数,然后再利用去块滤波器的参数进行去块滤波。

可选的,第一色度块对应的亮度块的量化参数是根据第一色度块对应的亮度块的预测量化参数和第一色度块对应的亮度块的量化参数偏移确定的。用公式表示为:qp_lumap=qp_prev+lumaqpoffset。

可选的,第一色度块对应的亮度块的预测量化参数是由第一色度块对应的亮度块的相邻块的量化参数确定的。该相邻块例如可以是第一色度块对应的亮度块的左边、上边、左上边、左下边或右上的相邻块。

可选的,若第一色度块对应的亮度块的量化残差全为零(即第一色度块对应的亮度块为全零块),则将第一色度块对应的亮度块的量化参数偏移设置为第二预设值。可选的,第二预设值为0。以p块为例,即上述lumaqpoffset为0。

可选的,第二色度块对应的亮度块的量化参数是根据第二色度块对应的亮度块的预测量化参数和第二色度块对应的亮度块的量化参数偏移确定的。

可选的,若第二色度块对应的亮度块的量化残差全为零,则将第二色度块对应的亮度块的量化参数偏移设置为第三预设值。可选的,第三预设值为0。

需要说明的是,本申请提供的方案可以应用于编码端,也可以应用于解码端。针对编码端来说,在通过上述方式对第一色度块和第二色度块进行去块滤波后,即可以得到当前编码块/编码帧的重建图像,重建图像可以供后续需要进行编码的其他块进行参考。针对解码端来说,在通过上述方式对第一色度块和第二色度块进行去块滤波后,即可得到当前图像块/图像帧恢复后的图像。

实施本申请所描述的实施例,在对色度块的边界进行去块滤波时,如果当前色度块是全零块(即量化参数全为零),则可以将当前块的cu级量化参数偏移设置为预设值(例如0),从而避免色度分量的deblocking使用错误的qpoffset,改善现有流程中去块滤波的效果,提升视频编解码的效果和性能。

图4是本申请再一实施例提供的视频编解码装置的示意性结构图。图4所示的视频编解码装置400包括处理器410和存储器420,处理器410可以从存储器420中调用并运行计算机程序,以实现本申请实施例中图3所述的方法。

其中,处理器410可以从存储器420中调用并运行计算机程序,以实现本申请实施例中的方法。

其中,存储器420可以是独立于处理器410的一个单独的器件,也可以集成在处理器410中。

可选地,如图4所示,视频编解码装置400还可以包括收发器430,处理器410可以控制该收发器430与其他装置进行通信,具体地,可以向其他装置发送信息或数据,或接收其他装置发送的信息或数据。

可选地,该视频编解码装置例如可以是编码器、解码器、终端(包括但不限于手机、相机、无人机等),并且该编解码装置可以实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。

图5是本申请实施例的芯片的示意性结构图。图5所示的芯片500包括处理器510,处理器510可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。

可选地,如图5所示,芯片500还可以包括存储器520。其中,处理器510可以从存储器520中调用并运行计算机程序,以实现本申请实施例中的方法。

其中,存储器520可以是独立于处理器510的一个单独的器件,也可以集成在处理器510中。

可选地,该芯片500还可以包括输入接口530。其中,处理器510可以控制该输入接口530与其他装置或芯片进行通信,具体地,可以获取其他装置或芯片发送的信息或数据。

可选地,该芯片500还可以包括输出接口540。其中,处理器510可以控制该输出接口540与其他装置或芯片进行通信,具体地,可以向其他装置或芯片输出信息或数据。

应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。

应理解,本申请实施例的处理器可能是一种集成电路图像处理系统,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)以及直接内存总线随机存取存储器(directrambusram,drram)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本申请实施例中的存储器可以向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与终端设备对应的各个步骤。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

还应理解,在本申请实施例中,图像中的像素点可以位于不同的行和/或列,其中,a的长度可以对应于a包括的位于同一行的像素点个数,a的高度可以对应于a包括的位于同一列的像素点个数。此外,a的长度和高度也可以分别称为a的宽度和深度,本申请实施例对此不做限定。

还应理解,在本申请实施例中,“与a的边界间隔分布”可以指与a的边界间隔至少一个像素点,也可以称为“不与a的边界相邻”或者“不位于a的边界”,本申请实施例对此不做限定,其中,a可以是图像、矩形区域或子图像,等等。

还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。

本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。

可选的,该计算机可读存储介质可应用于本申请实施例中的编解码装置,并且该计算机程序使得计算机执行本申请实施例的各个方法中由编解码装置实现的相应流程,为了简洁,在此不再赘述。

本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。

可选的,该计算机程序产品可应用于本申请实施例中的编解码装置,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由编解码装置实现的相应流程,为了简洁,在此不再赘述。

本申请实施例还提供了一种计算机程序。

可选的,该计算机程序可应用于本申请实施例中的编解码装置,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由编解码装置实现的相应流程,为了简洁,在此不再赘述。

应理解,在本申请实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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