掌桥专利:专业的专利平台
掌桥专利
首页

编码方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:35:27


编码方法、装置、电子设备及存储介质

技术领域

本发明涉及编码领域,更具体地,本发明的实施方式涉及一种编码方法、装置、电子设备及存储介质。

背景技术

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

随着互联网络技术和通信技术的不断发展,视频编码技术在视频会议、视频网站、视频通信、在线教育等领域中获得了越来越广泛的应用。现有的视频编码技术通常修改相应模型或者基于率失真理论的基础上进行相应的优化,这类优化往往需要频繁计算前一已编码P帧的SSIM(Structural Similarity,结构相似性)值作为参考依据。但是,SSIM是一个基于亮度、对比度、结构三个要素综合评估的指标,针对SSIM的计算过程会带来很大的计算量且计算复杂度较高,如何在基本不增加计算复杂度的基础上优化视频帧的视频质量就成为需要解决的问题。

发明内容

本申请实施例提供一种编码方法、装置、电子设备及存储介质,以解决相关技术存在的问题,技术方案如下:

第一方面,本申请实施例提供了一种编码方法,包括:

确定待编码宏块,所述待编码宏块是对视频数据的目标视频帧进行宏块划分后所得到的;

获取所述待编码宏块对应的相关联宏块,所述相关联宏块是从所述视频数据中所述目标视频帧之前的至少一个已编码视频帧中所确定的;

获取所述相关联宏块所对应的宏块模式;

至少基于所述相关联宏块所对应的宏块模式确定所述待编码宏块的目标量化参数。

第二方面,本申请实施例提供了一种编码装置,包括:

宏块确定单元,用于确定待编码宏块,所述待编码宏块是对视频数据的目标视频帧进行宏块划分后所得到的;

信息获取单元,用于获取所述待编码宏块对应的相关联宏块,所述相关联宏块是从所述视频数据中所述目标视频帧之前的至少一个已编码视频帧中所确定的;

量化参数处理单元,用于获取所述相关联宏块所对应的宏块模式;至少基于所述相关联宏块所对应的宏块模式确定所述待编码宏块的目标量化参数。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器和处理器。其中,该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述各方面任一种实施方式中的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机程序,当计算机程序在计算机上运行时,上述各方面任一种实施方式中的方法被执行。

这样,由于本申请方案能够至少基于已编码视频帧中与该待编码宏块对应的相关联宏块的宏块模式,来对该待编码宏块的量化参数进行优化,如此,能够在在不增加计算复杂度的基础上,优化待编码宏块的质量,进而优化视频数据的视频质量。

上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。

图1示意性地示出了根据本发明实施例中的编码方法流程示意图;

图2示意性地示出了根据本发明一实施方式的已编码视频帧的示意图;

图3示意性地示出了根据本发明一实施方式的已编码视频帧中相关联宏块的示意图一;

图4示意性地示出了根据本发明一实施方式的已编码视频帧中相关联宏块的示意图二;

图5示意性地示出了根据本发明实施例编码方法在一具体示例中的流程示意图;

图6示意性的示出采用本发明实施例的方案进行视频图像处理前、后局部细节的对比图;

图7示意性地示出了根据本发明一实施方式的编码装置组成结构示意图;

图8示意性地示出了根据本发明一实施方式的电子设备结构示意图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

图1示意性地示出了根据本发明实施例中的编码方法流程示意图。如图1所示,该方法可以包括:

步骤S101:确定待编码宏块,所述待编码宏块是对视频数据的目标视频帧进行宏块划分后所得到的。

步骤S102:获取所述待编码宏块对应的相关联宏块,所述相关联宏块是从所述视频数据中所述目标视频帧之前的至少一个已编码视频帧中所确定的。

步骤S103:获取所述相关联宏块所对应的宏块模式。

步骤S104:至少基于所述相关联宏块所对应的宏块模式确定所述待编码宏块的目标量化参数。

这样,由于本申请方案能够至少基于已编码视频帧中与该待编码宏块对应的相关联宏块的宏块模式,来对该待编码宏块的量化参数进行优化,如此,能够在在不增加计算复杂度的基础上,优化待编码宏块的质量,进而优化视频数据的视频质量。

本申请方案中,该目标视频帧即为视频数据中的当前编码帧,进一步地,在确定出当前编码帧中待编码宏块的目标量化参数后,即可基于该目标量化参数后完成对当前编码帧的编码过程。

这里,需要说明的是,实际应用中,如图2所示,所述已编码视频帧为视频数据中该目标视频帧(也即当前编码帧)的临近已编码帧,举例来说,目标视频帧的编号为n,即第n帧,此时,已编码视频帧可以具体为该目标视频帧的前n-k帧中的任意一帧,其中,n和k均为大于等于1的正整数;当前,实际应用中,还可以将该目标视频帧的前n-k帧中的任意多种作为该已编码视频帧,如此,基于该待编码宏块在多个已编码视频帧中相关联宏块的宏块模式来预测该待编码宏块的目标量化参数。当然,在一示例中,考虑到相邻视频帧之间的关联度最高,在一具体方案中,该已编码视频帧为该目标视频帧的前1帧,即第n-1帧。

需要说明的是,本申请方案中所述的目标视频帧,以及已编码视频帧均为P帧。

在本申请方案的一具体示例中,可以采用如下方式来确定目标量化参数,具体地,确定所述目标视频帧对应的量化参数;基于所述目标编码帧的量化参数为所述待编码宏块设置初始量化参数;相应地,所述至少基于所述相关联宏块所对应的宏块模式确定所述待编码宏块的目标量化参数,包括:至少基于所述相关联宏块所对应的宏块模式对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。也就是说,所述目标量化参数是对初始量化参数进行优化后得到的,即以初始量化参数为基准,进行相应调整后而得到的,如此,为准确预测待编码宏块的量化参数,提升待编码宏块的质量、进而提升目标视频帧、视频数据的视频质量奠定了基础。

在本申请方案的一具体示例中,所述相关联宏块至少包括:所述已编码视频帧中与所述待编码宏块对应的映射宏块,以及所述映射宏块周围所对应的临近宏块。也就是说,该相关联宏块是从已经编码完成的已编码视频帧的宏块中所选取的,如此,进一步为准确预测待编码宏块的量化参数,提升待编码宏块的质量、进而提升目标视频帧、视频数据的视频质量奠定了基础。比如,如图3所示,在已编码视频帧中编号4对应的宏块(以下称为4号宏块)为该待编码宏块的映射宏块,这里,在已编码视频帧中与该待编码宏块对应位置处的宏块可称为该待编码宏块的映射宏块;此时,编号0-3,以及5-8对应的宏块即可作为该已编码视频帧中该映射宏块对应的临近宏块,即为4号宏块的临近宏块,如此,基于周边宏块相似度高的推论,利用相似度高的相关联宏块来对该待编码宏块的量化参数进行预测,如此,为提升预测结果的准确性奠定了基础,同时,也为提升待编码宏块的质量、提升目标视频帧、进而视频数据的视频质量奠定了基础。

在本申请方案的一具体示例中,所述临近宏块至少包括:所述已编码视频帧中所述映射宏块的正上方、左上方面、右上方、正下方、左下方、右下方、左方和右方对应的八个宏块。如图4所示,编号为0-1-2-3-5-6-7-8对应的八个宏块作为所述映射宏块(即4号宏块的)的临近宏块;如此基于映射宏块以及所述映射宏块对应的临近宏块来形成宏块信息集合,进而基于宏块信息集合中宏块的相关信息,比如量化参数、宏块模式等信息对待编码模块进行预测,为提升预测结果的准确性奠定了基础,同时,也为提升待编码宏块的质量、提升目标视频帧、进而视频数据的视频质量奠定了基础。

当然,实际应用中,所述临近宏块还可以包含映射宏块周边的其他宏块,本申请方案对此不作限制,只要基于预测出的待编码宏块的量化参数进行编码后,能够提升待编码宏块的质量,进而提升目标视频帧、视频数据的视频质量即可。

在本申请方案的一具体示例中,可以采用如下方式来确定目标量化参数;具体地:

方式1:获取所述待编码宏块的特征值;

相应地,所述至少基于所述相关联宏块所对应的宏块模式对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数,包括:

基于所述待编码宏块的特征值、所述相关联宏块中所述待编码宏块对应的映射宏块的宏块模式,以及所有所述相关联宏块的宏块模式,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

举例来说,在IS_N_NINE为真的情况下,即宏块信息集合中的0-8号对应的九个宏块的宏块模式相同,此时,若4号宏块的宏块模式为LOCK_16x16或BLOCK16x8或BLOCK_8x16或BLOCK_8x8,且待编码宏块的特征值,如SAD(Sum of Absolute Differences)值<50,则将初始量化参数调大,比如,调大2后,得到目标量化参数,即iLumaQp= iLumaQp+ 2。

这里,所述IS_N_NINE表征宏块信息集合中的0-8号对应的九个宏块的宏块模式是否相同,若相同,则IS_N_NINE为真,否则,为假。

方式2:

在所述相关联宏块的宏块模式均满足预设宏块模式的条件下,获取所述相关联宏块对应的第一参考宏块中运动矢量特征满足预设条件的第一参考宏块的总数量;其中,所述第一参考宏块是从所述相关联宏块对应的第一参考帧中所确定出的,所述第一参考帧是从所述已编码视频帧中所确定出的;

获取所述待编码宏块对应的第二参考宏块的量化参数,其中,所述第二参考宏块是从所述待编码宏块对应的第二参考帧中所确定出的,所述第二参考帧是从所述已编码视频帧中所确定出的;以及,

获取所述待编码宏块的特征值和所述相关联宏块所对应的量化参数;

其中,所述至少基于所述相关联宏块所对应的宏块模式对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数,包括:

基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所有所述相关联宏块所对应的量化参数的平均值、以及所述待编码宏块对应的第二参考宏块的量化参数,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

举例来说,在MV_CAL_COUNT>4,待编码宏块的SAD值=0,且BGD_BLOCK_ALL为真,即所述宏块信息集合中0-8号宏块的宏块类型均相同,并且均为背景块,同时,当前编码帧的参考帧存在的情况下,此时,若iLumaQp

这里,所述MV_CAL_COUNT表征在IS_INTER_NINE为真的情况下,0-8号宏块对应的参考宏块中,参考宏块的运动矢量的坐标标量长度不超过√13(根号13)的参考宏块的总个数。所述IS_INTER_NINE表征宏块信息集合中0-8号对应的九个宏块的宏块模式的宏块模式是否为BLOCK_16x16或BLOCK16x8或BLOCK_8x16或BLOCK_8x8,若是,则IS_INTER_NINE为真。所述BGD_BLOCK_ALL,表征所述宏块信息集合中0-8号宏块的宏块模式是否相同,且均为背景块,若是,则BGD_BLOCK_ALL为真。所述AVG_REF_Q表征所述宏块信息集合中宏块对应的量化参数的平均值,比如,0-8号宏块对应九个宏块的量化参数的平均值。所述REF_MB_QP表征当前编码帧的参考帧(从临近已编码帧中确定出的)中与该待编码宏块对应的参考宏块的量化参数。

方式3:

在所述相关联宏块的宏块模式均满足预设宏块模式的条件下,获取所述相关联宏块对应的第一参考宏块中运动矢量特征满足预设条件的第一参考宏块的总数量;其中,所述第一参考宏块是从所述相关联宏块对应的第一参考帧中所确定出的,所述第一参考帧是从所述已编码视频帧中所确定出的;

获取所述待编码宏块的特征值;

其中,所述至少基于所述相关联宏块所对应的宏块模式对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数,包括:

至少基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

在方式3的基础上,还可以进一步细化,即:

方式3-1:获取所述相关联宏块所对应的量化参数;

相应地,所述至少基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数,包括:

基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值与所有所述相关联宏块所对应的量化参数的平均值之间的差值,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

方式3-2:获取所述待编码宏块对应的第二参考宏块的量化参数,其中,所述第二参考宏块是从所述待编码宏块对应的第二参考帧中所确定出的,所述第二参考帧是从所述已编码视频帧中所确定出的;以及获取所述相关联宏块中映射宏块的量化参数;

相应地,所述至少基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数,包括:

基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值、以及所述待编码宏块对应的第二参考宏块的量化参数、以及所述相关联宏块中映射宏块的量化参数,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

举例来说,在IS_INTER_NINE为真,且MV_CAL_COUNT<=2的情况下,此时,

若待编码宏块的SAD值>1000,iLumaQp - AVG_REF_Q< -2时,则将初始量化参数调小,比如,调小1后,得到目标量化参数,即iLumaQp =iLumaQp-1;

若待编码宏块的SAD值>1800,则将初始量化参数调小,比如,调小1后,得到目标量化参数,即iLumaQp=iLumaQp-1;

若待编码宏块的SAD值>3000,则将初始量化参数调小,比如,调小2后,得到目标量化参数,即iLumaQp=iLumaQp- 2。

否则,即待编码宏块的SAD值sad值<1000,且待编码宏块的SAD值=0,待编码宏块的参考宏块存在的情况下,若iLumaQp

这样,在满足上述三个方式中任一方式对应的预设条件时,即可完成对该待编码宏块的量化参数的预测,进而为提升待编码宏块的质量、提升目标视频帧、视频数据的视频质量奠定了基础。

这样,由于本申请方案能够基于已编码视频帧中与该待编码宏块对应的相关联宏块的量化参数,来对该待编码宏块的量化参数进行优化,如此,能够在在不增加计算复杂度的基础上,优化待编码宏块的质量,进而优化视频数据的视频质量。

以下结合具体示例对本申请方案做进一步详细说明,具体地,本示例能够在视频通信过程中在不同的带宽条件下来调整码率,进而降低码率,同时,在确保视频质量的情况下,复杂度基本无明显增加。

实际应用中,关于视频编码解码的处理,结合图5进行说明,如图5所示,获取视频源,得到视频帧,通过编码器对每一个视频帧进行分块编码,在接收端,实时接收编码后的视频帧,利用解码器对编码后的视频帧进行解码,以得到并显示视频帧所对应的视频图像。在上述编码过程中,本示例中基于视频帧之间时域上的关系,来动态调整宏块的量化参数,进而实现去除空间冗余,同时,保证视频质量。

具体地,在一个连续播放的视频,比如直播视频中,临近帧之间的联系紧密且相似度极高,但对于不同视频场景而言,临近帧的相似程度也有所差异,比如,对于相对静止的画面中,前后两帧可能只有部分物体的相对位移的变化,对于运动剧烈的场景中,可能存在基本无变化的背景块,因此,对于不同视频场景下的序列,在H264编码中存在的最大差别为:宏块划分方式和宏块模式,基于此,本示例通过在编码过程中动态分析当前待编码宏块的映射宏块及其在映射宏块的周围的其他宏块的宏块信息,来调整该待编码宏块的量化参数,以提升宏块的质量。

具体流程包括:

第一步:预处理操作;确定视频数据中当前编码帧(也即以上所述的目标视频帧),对该当前编码帧的临近已编码帧(即以上所述的已编码视频帧)进行信息搜集;具体地,假设当前编码帧编号为n,此时,如图2所示,可采集的临近已编码帧的编号为n-k,其中,k=(1,n-1)之间的任意整数,包括k=1,或k=n-1,n为正整数。进一步地,在确定出临近已编码帧之后,采集该已编码帧的相关信息,比如,采集临近已编码帧的量化参数、宏块划分方式、宏块模式、视频分辨率、场景信息以及临近已编码帧中已编码宏块的量化参考等相关信息。

第二步:数据分析,确定优化方向和调控经验值;具体地,基于第一步采集的数据进行数据分析,从而为后续具体算法提供数据支撑,比如,第三步中所使用的阈值或经验值,均可以基于该步骤中的数据分析过程而得到。

这里,需要说明的是,以上所有的数值均为实验验证后的经验值,实际应用中,可基于实际场景的实际需求而调整,本申请方案对此不作限制。

第三步:算法部分;

本示例采用九点检索形式来对当前编码帧中的待编码宏块的量化参数进行优化,具体地,确定当前编码帧所对应的待编码宏块,以及确定该待编码宏块在各临近已编码帧中的映射宏块,这里,在临近已编码帧中与该待编码宏块对应位置处的宏块可称为该待编码宏块的映射宏块;以及,确定各临近已编码帧中与该待编码宏块对应的映射宏块相邻的临近宏块。

这里,需要说明的是,实际应用中,可基于确定出的该待编码宏块在多个临近已编码帧中的映射宏块和与映射宏块相邻的临近宏块,来形成宏块信息集合;本示例中,为简化起见,仅以一个临近已编码帧,比如,以该当前编码帧对应的前一已编码帧(也即如图2所示的第n-1帧)所形成的宏块信息集合为例进行说明。

具体地,如图3所示,编号4对应的宏块(以下称为4号宏块)为在临近已编码帧中该待编码宏块的映射宏块,此时,编号0-3,以及5-8对应的宏块即可作为该临近已编码帧中该映射宏块对应的临近宏块,即为4号宏块的临近宏块。这里,如图4所示,本示例以编号为0-1-2-3-4-5-6-7-8对应的九个宏块来形成宏块信息集合。其中,该宏块信息集合中包含有各宏块(比如该当前编码宏块的映射宏块(对应4号宏块),以及该映射宏块对应的临近宏块(对应0号、1号、2号、3号、5号、6号、7号和8号宏块))的宏块模式、量化参数、运动估计矢量特征等相关信息。

具体实现过程如下:

(1)在选取出临近已编码帧之后,确定该临近已编码帧中与待编码宏块对应的映射宏块的位置,以及临近宏块的位置,得到如图4所示的0-1-2-3-4-5-6-7-8对应的九个宏块。进一步地,获取0-1-2-3-4-5-6-7-8对应的九个宏块中各宏块的量化参数、宏块模块以及是否为背景块等相关信息,得到宏块信息集合。以及,确定该待编码宏块的初始量化参数,记为iLumaQp,这里,实际应用中,在确定出待编码宏块的量化参数之前,已确定出当前编码帧的量化参数,此时,基于该当前编码帧的量化参数为待编码宏块设置初始量化参数,比如,该初始量化参数即为当前编码帧的量化参数,进而基于本示例方式对该初始量化参数进行优化,换言之,本示例是在当前编码帧的量化参数的基准上对待编码宏块的量化参数进行优化。

(2)计算出所述宏块信息集合中宏块对应的量化参数的平均值,记为AVG_REF_Q。

(3)确定出所述宏块信息集合中0-1-2-3-4-5-6-7-8对应的九个宏块的宏块模式是否相同,比如,通过标记位FLAG1(用于记录宏块模式)来确定九个宏块的宏块模式是否相同,进一步地,设置参考标记IS_N_NINE,表征宏块信息集合中的0-8号对应的九个宏块的宏块模式是否相同,若相同,则IS_N_NINE为真,否则,为假;以及,将当前编码帧的参考帧(从临近已编码帧中确定出的)中与该待编码宏块对应的参考宏块的量化参数,记为REF-MB_QP。

(4)设置参加标记IS_INTER_NINE,表示宏块信息集合中0-8号对应的九个宏块的宏块模式的宏块模式是否为BLOCK_16x16或BLOCK16x8或BLOCK_8x16或BLOCK_8x8,若是,则IS_INTER_NINE为真。

(5)在IS_INTER_NINE为真的情况下,将0-8号宏块对应的参考宏块中,参考宏块的运动矢量的坐标标量长度不超过√13(根号13)的参考宏块的个数,记为MV_CAL_COUNT。

(6)设置参考标记BGD_BLOCK_ALL,表征所述宏块信息集合中0-8号宏块的宏块模式是否相同,且均为背景块。

在上述数据确定处理完成,以及标记记录完成之后,则从下述三个方面对初始量化参数进行调控,具体地,

第一种情况:

在IS_N_NINE为真的情况下,即宏块信息集合中的0-8号对应的九个宏块的宏块模式相同,此时,若4号宏块的宏块模式为LOCK_16x16或BLOCK16x8或BLOCK_8x16或BLOCK_8x8,且待编码宏块的SAD(Sum of Absolute Differences)值<50,则将初始量化参数调大,比如,调大2后,得到目标量化参数,即iLumaQp= iLumaQp+ 2。

否则,在上述条件均不满足的情况下,选择现有量化参数调整方式,或者,直接将初始量化参数作为目标量化参数。

第二种情况:

在MV_CAL_COUNT>4,待编码宏块的SAD值=0,且BGD_BLOCK_ALL为真,即所述宏块信息集合中0-8号宏块的宏块类型均相同,并且均为背景块,同时,当前编码帧的参考帧存在的情况下,此时,若iLumaQp

否则,在上述条件均不满足的情况下,选择现有量化参数调整方式,或者,直接将初始量化参数作为目标量化参数。

第三种情况:

在IS_INTER_NINE为真,且MV_CAL_COUNT<=2的情况下,此时,

若待编码宏块的SAD值>1000,iLumaQp - AVG_REF_Q< -2时,则将初始量化参数调小,比如,调小1后,得到目标量化参数,即iLumaQp =iLumaQp-1;

若待编码宏块的SAD值>1800,则将初始量化参数调小,比如,调小1后,得到目标量化参数,即iLumaQp=iLumaQp-1;

若待编码宏块的SAD值>3000,则将初始量化参数调小,比如,调小2后,得到目标量化参数,即iLumaQp=iLumaQp- 2。

否则,即待编码宏块的SAD值sad值<1000,且待编码宏块的SAD值=0,待编码宏块的参考宏块存在的情况下,若iLumaQp

否则,在上述条件均不满足的情况下,选择现有量化参数调整方式,或者,直接将初始量化参数作为目标量化参数。

这样,由于本申请方案能够基于已编码视频帧中与该待编码宏块对应的相关联宏块的量化参数,来对该待编码宏块的量化参数进行优化,如此,能够在在不增加计算复杂度的基础上,优化待编码宏块的质量,进而优化视频数据的视频质量。

最后,结合表1对本示例的客观效果进行说明,如表1所示,可以看出基于本示例对视频数据流进行实时处理之后,可以使得SSIM趋向于1;这里,所述SSIM是一种衡量两幅图像相似度的指标,结构相似性的范围为0到1。当两张图像完全相同时,SSIM的值等于1。SSIM值越趋向于1表示两张图像的相似度越高。根据本申请方案进行量化参数的调整后,可以看出SSIM值比原有图像更接近于1,即本申请方案能够使调整后的图像与原始图像的相似度更高、性能更好。

表1

进一步地,结合图6对本示例进行视频处理后的主观效果进行说明,如图6所示,本申请方案能够使得处理后的视频帧中的图像相对于原始图像的线条更加清晰平滑,比如图6中示意出的原始处理方式得到的视频帧的图像中的局部细节61、以及处理后的视频帧的图像中的局部细节62来看,明显处理后的视频帧的图像中的局部细节62的边缘线条更加清晰平滑。

图7示意性地示出了根据本发明一实施方式的编码装置组成结构示意图。如图7所示,该装置可以包括:

宏块确定单元710,用于确定待编码宏块,所述待编码宏块是对视频数据的目标视频帧进行宏块划分后所得到的;

信息获取单元720,用于获取所述待编码宏块对应的相关联宏块,所述相关联宏块是从所述视频数据中所述目标视频帧之前的至少一个已编码视频帧中所确定的;

量化参数处理单元730,用于获取所述相关联宏块所对应的宏块模式;至少基于所述相关联宏块所对应的宏块模式确定所述待编码宏块的目标量化参数。

在本申请方案的一具体示例中,所述信息获取单元,还用于确定所述目标视频帧对应的量化参数;基于所述目标编码帧的量化参数为所述待编码宏块设置初始量化参数;

所述量化参数处理单元,还用于至少基于所述相关联宏块所对应的宏块模式对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

在本申请方案的一具体示例中,所述相关联宏块至少包括:

所述已编码视频帧中与所述待编码宏块对应的映射宏块,以及所述映射宏块周围所对应的临近宏块。

在本申请方案的一具体示例中,所述临近宏块至少包括:

所述已编码视频帧中所述映射宏块的正上方、左上方面、右上方、正下方、左下方、右下方、左方和右方对应的八个宏块。

在本申请方案的一具体示例中,所述信息获取单元,还用于获取所述待编码宏块的特征值;

所述量化参数处理单元,还用于基于所述待编码宏块的特征值、所述相关联宏块中所述待编码宏块对应的映射宏块的宏块模式,以及所有所述相关联宏块的宏块模式,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

在本申请方案的一具体示例中,所述信息获取单元,还用于在所述相关联宏块的宏块模式均满足预设宏块模式的条件下,获取所述相关联宏块对应的第一参考宏块中运动矢量特征满足预设条件的第一参考宏块的总数量;其中,所述第一参考宏块是从所述相关联宏块对应的第一参考帧中所确定出的,所述第一参考帧是从所述已编码视频帧中所确定出的;获取所述待编码宏块对应的第二参考宏块的量化参数,其中,所述第二参考宏块是从所述待编码宏块对应的第二参考帧中所确定出的,所述第二参考帧是从所述已编码视频帧中所确定出的;以及,获取所述待编码宏块的特征值和所述相关联宏块所对应的量化参数;

所述量化参数处理单元,还用于基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所有所述相关联宏块所对应的量化参数的平均值、以及所述待编码宏块对应的第二参考宏块的量化参数,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

在本申请方案的一具体示例中,所述信息获取单元,还用于在所述相关联宏块的宏块模式均满足预设宏块模式的条件下,获取所述相关联宏块对应的第一参考宏块中运动矢量特征满足预设条件的第一参考宏块的总数量;其中,所述第一参考宏块是从所述相关联宏块对应的第一参考帧中所确定出的,所述第一参考帧是从所述已编码视频帧中所确定出的;获取所述待编码宏块的特征值;

所述量化参数处理单元,还用于至少基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

在本申请方案的一具体示例中,所述信息获取单元,还用于获取所述相关联宏块所对应的量化参数;

所述量化参数处理单元,还用于基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值与所有所述相关联宏块所对应的量化参数的平均值之间的差值,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

在本申请方案的一具体示例中,所述信息获取单元,还用于获取所述待编码宏块对应的第二参考宏块的量化参数,其中,所述第二参考宏块是从所述待编码宏块对应的第二参考帧中所确定出的,所述第二参考帧是从所述已编码视频帧中所确定出的;获取所述相关联宏块中映射宏块的量化参数;

所述量化参数处理单元,还用于基于所述总数量、所述待编码宏块的特征值、所有所述相关联宏块的宏块模式、所述待编码宏块的特征值、以及所述待编码宏块对应的第二参考宏块的量化参数、以及所述相关联宏块中映射宏块的量化参数,确定所满足的预设条件,以对所述初始量化参数进行调整,得到所述待编码宏块的目标量化参数。

本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。

图8示意性地示出了根据本发明一实施方式的电子设备结构示意图。如图8所示,该电子设备包括:存储器810和处理器820,存储器810内存储有可在处理器820上运行的计算机程序。处理器820执行该计算机程序时实现上述实施例中的编码方法。存储器810和处理器820的数量可以为一个或多个。

该电子设备还包括:

通信接口830,用于与外界设备进行通信,进行数据交互传输。

如果存储器810、处理器820和通信接口830独立实现,则存储器810、处理器820和通信接口830可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(PeripheralComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器810、处理器820及通信接口830集成在一块芯片上,则存储器810、处理器820及通信接口830可以通过内部接口完成相互间的通信。

本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。

本申请实施例还提供了一种芯片,该芯片包括,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。

本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。

应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammablegate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。

进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM) 、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。

应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。

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

相关技术
  • 视频编码方法、装置、电子设备和存储介质
  • 视频编码方法、装置、电子设备及存储介质
技术分类

06120112226620