CN115988207A - 一种视频编码方法、装置、电子设备及介质 - Google Patents

一种视频编码方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN115988207A
CN115988207A CN202211607421.1A CN202211607421A CN115988207A CN 115988207 A CN115988207 A CN 115988207A CN 202211607421 A CN202211607421 A CN 202211607421A CN 115988207 A CN115988207 A CN 115988207A
Authority
CN
China
Prior art keywords
video frame
coded
frame
determining
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211607421.1A
Other languages
English (en)
Inventor
邹箭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202211607421.1A priority Critical patent/CN115988207A/zh
Publication of CN115988207A publication Critical patent/CN115988207A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了一种视频编码方法、装置、电子设备及介质,涉及人工智能领域,具体涉及云计算、视频编码、媒体云技术,可应用在智能云场景下。具体实现方案为:获取对待编码视频帧进行视频帧预测,得到的待编码残差帧。然后获取待编码视频帧的最大划分深度;其中,最大划分深度为待编码视频帧的复杂度等级对应的划分深度;复杂度等级基于相同对象在待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度。之后基于最大划分深度,将待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。实现了在保证视频编码质量基础上,减小视频编码的运算量。

Description

一种视频编码方法、装置、电子设备及介质
技术领域
本公开涉及人工智能领域,具体涉及云计算、视频编码、媒体云技术,可应用在智能云场景下。
背景技术
高效率视频编码(High Efficiency Video Coding,HEVC)是新一代的视频编码压缩标准,与前一代H.264高级视频编码(H.264/Advanced video coding,H.264/AVC)标准相比,HEVC在保证解码后的视频为同等清晰度的情况下,可节省将近50%的码率。HEVC可广泛应用于各种视频压缩相关的领域,如视频直播和视频点播等。
基于HEVC的视频编码过程中,需要对视频帧进行预测、变换、量化、环路滤波和熵编码等处理。其中,变换处理是一个重要的处理过程,变换单元(transform unit,TU)是变换处理的基本单元,变换处理的主要作用是将视频帧的信号从空域转换到频域,并将频域信号的能量集中到频域右上角,使其他频域区域的能量较少,甚至将能量较少的区域中的能量置为零。
发明内容
本公开提供了一种视频编码方法、装置、电子设备及介质。
本公开实施例的第一方面,提供了一种视频编码方法,包括:
获取对待编码视频帧进行视频帧预测,得到的待编码残差帧,所述待编码残差帧表示所述待编码视频帧与视频帧预测结果之间的误差;
获取所述待编码视频帧的最大划分深度;其中,所述最大划分深度用于表示最多允许划分的变换单元层级数,所述最大划分深度为所述待编码视频帧的复杂度等级对应的划分深度;所述复杂度等级基于相同对象在所述待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度;
基于所述最大划分深度,将所述待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。
本公开实施例的第二方面,提供了一种视频编码装置,包括:
获取模块,用于获取对待编码视频帧进行视频帧预测,得到的待编码残差帧,所述待编码残差帧表示所述待编码视频帧与视频帧预测结果之间的误差;
所述获取模块,还用于获取所述待编码视频帧的最大划分深度;其中,所述最大划分深度用于表示最多允许划分的变换单元层级数,所述最大划分深度为所述待编码视频帧的复杂度等级对应的划分深度;所述复杂度等级基于相同对象在所述待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度;
划分模块,用于基于所述获取模块获取的所述最大划分深度,将所述待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。
本公开实施例的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。
本公开实施例的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据第一方面中任一项所述的方法。
本公开实施例的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面中任一项所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种划分变换单元的示例性示意图;
图2是本公开实施例提供的一种视频编码方法的流程图;
图3是本公开实施例提供的一种视频帧预处理方法的流程图;
图4是本公开实施例提供的一种确定复杂度等级的方法流程图;
图5是本公开实施例提供的一种确定预设门限值的方法流程图;
图6是本公开实施例提供的另一种视频编码方法的流程图;
图7是本公开实施例提供的一种视频编码装置的结构示意图;
图8是用来实现本公开实施例的视频编码方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
离散余弦变换(Discrete Cosine Transform,DCT)处理以TU为基本单元进行变换,不同的TU尺寸对应着不同的变换结果,而变换结果直接影响了后续的量化、熵编码以及率失真优化(Rate–distortion optimization,RDO)等编码过程,因此变换处理中TU的尺寸选择十分重要。
目前,对于编码树单元(coding tree unit,CTU)中每个2N×2N的编码单元(coding unit,CU)而言,CU的标志位决定了CU是否可以划分为4个N×N的TU。在划分时还需要参考CU所属的视频帧对应的最大划分深度,其中最大划分深度表示从CU中划分出TU的最大划分层级。例如,最大划分深度为3,表示允许对CU最多划分三层得到TU。
同一个CTU包括的各CU的大小可以不同,且TU支持的尺寸为4×4、8×8、16×16以及32×32,因此实际从同一个CTU中划分得到的TU层级可能不同。
例如,参见图1,图1中左侧最外层正方形表示CTU,其余的实线正方形表示CU,虚线正方形表示TU;图1右侧四叉树表示各单元之间的关联关系。CTU中f是一个CU,假设该CU的标志位表示不可以划分,则不对f进行划分。CTU的左上角的a、b、c、d分别是一个CU,且仅有c的标志位表示可以划分,则对c进一步划分为4个TU,此次划分深度为1,不超过最大划分深度3,但假设此次划分得到的TU尺寸为4×4,达到最小TU尺寸,因此不允许继续划分。CTU的右上角e是一个CU,假设该CU的标志位表示可以划分,则按照最大划分深度和TU支持的尺寸,对e可以划分两层,得到16个4×4的TU。CTU的右下角的g、l、m、h、i、j、k分别是一个CU,且仅有m的标志位表示可以划分,则对m划分得到4个4×4的TU。
目前hevc编转码器在进行TU的划分时,使用写入序列参数集(SequenceParamater Set,SPS)的最大划分深度,例如,I帧的最大划分深度为3,B帧和P帧的最大划分深度为2。视频帧中TU的实际划分深度(TU-maxDepthReal)<=写入SPS的TU最大划分深度(TU-maxDepthSPS)。
如果最大划分深度设置得过大,则可能使得编码过程的运算量过大;反之,如果最大划分深度设置得过小,则可能使得编码的均方误差(Mean Square Error,MSE)过大,即编码前的原始图像与解码后的重建图像之间的误差过大,使编码质量达不到预期。
为了解决上述问题,本公开实施例提供了一种视频编码方法,该方法可以应用于电子设备,例如电子设备为服务器、电脑或者手机等具备编码能力的设备。如图2所示,该方法包括如下步骤:
S201、获取对待编码视频帧进行视频帧预测,得到的待编码残差帧。
其中,待编码残差帧表示待编码视频帧与视频帧预测结果之间的误差。
例如,若待编码视频帧为关键帧(intraframe frame,I帧),则对待编码视频帧进行帧内预测,得到帧内预测结果,并将待编码视频帧与帧内预测结果之间的误差,作为待编码残差帧。
若待编码视频帧为前向预测帧(forward Predicted frame,P帧)或双向预测帧(Bidirectionallly predicted frame,B帧),则对待编码视频帧进行帧间预测,得到帧间预测结果,并将待编码视频帧与帧间预测结果之间的误差,作为待编码残差帧。
S202、获取待编码视频帧的最大划分深度。
其中,最大划分深度用于表示最多允许划分的变换单元层级数,最大划分深度为待编码视频帧的复杂度等级对应的划分深度;复杂度等级基于相同对象在待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度。
S203、基于最大划分深度,将待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。
在进行划分时,针对待编码残差帧包括的每个CU,若该CU的标志位表示不可以划分,则不划分该CU。
若该CU的标志位表示可以划分,则将该CU划分为四个相同大小的TU。之后判断当前划分深度是否达到最大划分深度;若未达到,则继续将当前划分得到的每个TU划分为4个相同大小的TU,返回判断当前划分深度是否达到最大划分深度的步骤,直至当前划分深度达到最大划分深度时,停止继续划分。其中,当前划分深度表示当前对CU划分的层级数,例如对CU划分1次得到4个TU时,当前划分深度为1层,对划分得到的4个TU再分别划分为4个TU时,当前划分深度为2层,以此类推。
在变换处理之后,还可以对变换处理结果进行量化和熵编码等其他视频编码处理。
相同对象在视频帧与参考帧之间的位置偏移量,能够体现视频帧包括的信息量,因此能够表示视频帧的复杂度等级。在本公开实施例中,复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度,而由于复杂度等级越高,说明视频帧包括的信息量越多,因此确定的最大划分深度越深,能够保留更多的视频帧信息,保证了编码质量。反之,复杂度等级越低,说明视频帧包括的信息量越少,因此确定的最大划分深度越浅,能够减小视频编码的运算量。因此,本公开实施例基于视频帧的复杂度等级,灵活地确定视频帧的最大划分深度,能够在保证视频编码质量的基础上,减小视频编码的运算量。
在对视频帧进行编码之前,需要对视频帧进行预处理,从而得到视频帧的最大化分深度。如图3所示,预处理过程包括如下步骤:
S301、获取待编码视频帧。
待编码视频帧属于待编码视频。可选的,若待编码视频为允许被点播的视频,则可以预先在待编码视频被点播之前,预先将待编码视频帧的每个视频帧作为待编码视频帧,并确定最大划分深度,使得在待编码视频被点播时,避免实时确定最大划分深度,提高编码效率。
或者,在待编码视频为被点播的视频或直播视频时,可以实时地按照播放顺序,将待编码视频的每个视频帧作为待编码视频帧,并确定最大划分深度,以便根据最大划分深度,进行视频帧编码。
S302、根据各对象在待编码视频帧中与在参考帧中的位置偏移量,确定待编码视频帧的复杂度等级。
可选的,若待编码视频帧为I帧,则参考帧为I帧本身,此时位置偏移量可以为指定量,使得对应的复杂度等级为指定等级。其中,I帧可以是普通I帧,或即时解码刷新(Instantaneous Decoding Refresh,IDR)帧。
若待编码视频帧为P帧,则参考帧为在该P帧之前,且与该P帧距离最近的I帧,此时位置偏移量为相同对象在该P帧中与在该I帧中的位置偏移量。
在待编码视频帧为B帧的情况下,若该B帧与前一个I帧之间没有P帧,则确定参考帧包括前一个I帧;或者,若该B帧与前一个I帧之间存在P帧,则确定参考帧包括该P帧。同时,若该B帧与后一个I帧之间存在P帧,则确定参考帧还包括该P帧。
在本公开实施例中,还可以在S302之前,首先判断待编码视频帧是否为I帧;若是,则确定该帧的复杂度等级为最高级;若否,则执行S302根据待编码视频帧的活动度,确定待编码视频帧的复杂度等级的步骤。
S303、根据各复杂度等级与划分深度之间的预设对应关系,确定待编码视频帧的复杂度等级对应的最大划分深度。
通过上述方法,本公开实施例可以根据各对象在待编码视频帧中与在参考帧中的位置偏移量,确定待编码视频帧的复杂度等级,并以此确定待编码视频帧的最大划分深度。即最大划分深度根据待编码视频帧与参考帧之间的差异确定,该差异能够体现待编码视频帧包括的信息量,而视频帧包括的信息量与视频帧的最大划分深度息息相关,即视频帧包括的信息量越多,所需的划分深度也越深,因此本公开实施例基于该位置偏移量能够更准确地确定最大划分深度。
以下对视频帧的预处理过程进行具体说明:
参见图4,上述S302中确定待处理视频帧的复杂度等级的方式,包括如下步骤:
S401、将待编码视频帧划分为多个目标编码块。
其中,各目标编码块的并集为待编码视频帧,且各目标编码块之间没有交集。例如,可以将待编码视频帧划分为:相互没有交集的尺寸均为16像素(Pixel,px)×16px的目标编码块。
可选的,可以直接将待编码视频帧划分为多个目标编码块。
或者,对待编码视频帧进行下采样,得到下采样帧,然后将下采样帧划分为多个目标编码块。例如,下采样方式包括:取待编码视频帧的所有奇数行像素点的像素值;或者取待编码视频帧的所有奇数列像素点的像素值;或者对待编码视频帧的每两行,相同位置的像素点的像素值取加权值。
其中,对视频帧进行下采样,一般不影响视频帧的复杂度,或对视频帧复杂度的影响很小,可以忽略。因此在本公开实施例中,待编码视频帧的复杂度等级,即为下采样帧的复杂度等级。
对待编码视频帧进行下采样处理,对待编码视频帧的复杂度影响较小,而且能够减少待编码视频帧的尺寸,从而减少了得到的目标编码块数量,减少了后续确定目标编码块的运动向量(motion vector,mv),以及确定待编码视频帧的复杂度等级的运算量。从而实现了在不影响确定待编码视频帧的复杂度等级准确性的基础上,提高运算速度。
S402、确定每个目标编码块的运动向量。
其中,运动向量为目标编码块包括的各对象在待编码视频帧中与在参考帧中的位置偏移向量。单个目标编码块对应待编码视频帧的一块图像区域,一块图像区域可包括完整的对象或对象的一部分。例如,目标编码块对应的图像区域包括人脸的左边嘴角,则目标编码块的运动向量为,左边嘴角在待编码视频帧中的位置,与在参考帧中的位置之间的偏移向量。
S403、根据各目标编码块的运动向量,确定待编码视频帧的复杂度等级。
本公开实施例中,可以设置运动向量与复杂度正相关。即,各目标编码块的运动向量越大,说明待编码视频帧相对于参考帧的变化量越大,即活动度越高,因此包括的视频帧信息越多,因此确定待编码视频帧的复杂度等级越高。
反之,各目标编码块的运动向量越小,说明待编码视频帧相对于参考帧的活动度越低,因此包括的视频帧信息越少,因此确定待编码视频帧的复杂度等级越低。
通过上述方法,本公开实施例可以通过待编码视频帧包括的各目标编码块的运动向量,即能够分析出待编码视频帧相对于参考帧的活动度,也就得到了待编码视频帧包括的信息量。由于待编码视频帧包括的信息量越多,复杂度越高,待编码视频帧包括的信息量越少,复杂度越低。因此通过该方式能够更准确地获得待编码视频帧的复杂度等级。
在本公开实施例中,上述S403确定待编码视频帧的活跃度等级的方式包括以下两种:
方式一、确定各目标编码块的运动向量的绝对值的方差;若该方差大于预设阈值,则确定待编码视频帧的复杂度等级为高级;若该方差小于或等于预设阈值,则确定待编码视频帧的复杂度等级为低级。从而实现了将视频帧的复杂度划分为两个等级。
方式二、确定各目标编码块的运动向量的绝对值的方差。
若方差小于第一预设门限值,则确定待编码视频帧的复杂度等级为最低等级。
若方差大于或等于第一预设门限值,且小于或等于第二预设门限值,则确定待编码视频帧的复杂度等级为中间等级;
若方差大于第二预设门限值,则确定待编码视频帧的复杂度等级为最高等级。
其中,第二预设门限值大于第一预设门限值。
通过上述方法,本公开实施例可以将视频帧的复杂度划分为三个等级,与仅划分两个等级的方式相比,能够对视频帧的复杂度区分得更细,以便后续更细致的确定待编码视频帧的最大化分深度,提高确定最大划分深度的准确度。
或者,还可以通过其他方式确定待编码视频帧的活跃度等级,本公开实施例对此不作具体限定。例如,可以确定各目标编码块的运动向量的平均值,并利用平均值与门限值进行比较,得到待编码视频帧的活跃度等级。
本公开实施例中,第一预设门限值和第二预设门限值可以根据经验和需求预先人工设置。或者,参见图5,第一预设门限值和第二预设门限值可以通过以下方式确定。
S501、获取测试视频的测试视频帧。
可选的,测试视频可以是公开的测试序列,或者测试视频可以是其他视频,本公开实施例对此不作具体限定。
可以将测试视频的每个视频帧,均作为一个测试视频帧。
S502、分别将每个测试视频帧划分为多个测试编码块。
其中,各测试编码块的并集为测试视频帧,且各测试编码块之间没有交集。
S502划分测试编码块的方式与上述S401的划分方式相同,可参考上述描述,此处不在赘述。
S503、分别确定每个测试视频帧包括的各测试编码块的运动向量,并确定各测试编码块的运动向量的绝对值的方差。
可以分别针对每个测试视频帧,确定该测试视频帧包括的各测试编码块的运动向量,并确定各测试编码块的运动向量的绝对值的方差,从而得到每个测试视频帧对应的方差。
S504、按照预设比例,将测试视频的各测试视频帧对应的方差,划分为最小方差集合、中间方差集合和最大方差集合。
其中,中间方差集合的最大值小于最大方差集合的最小值,中间方差集合的最小值大于最小方差集合的最大值。
本公开实施例中,可以将测试视频的各测试视频帧对应的方差,按照从大到小的顺序进行排序。并根据测试视频包括的测试视频帧数量,以及预设比例,确定三个方差集合各自包括的方差数量。从而按照每个方差集合各自包括的方差数量,划分各测试视频帧对应的方差,得到三个方差集合。
例如,测试视频包括的测试视频帧数量为100,预设比例为20%:60%:20%。将测试视频包括的各测试视频帧对应的方差,按照从大到小的顺序进行排序,并将序号为1~20的方差组成最大方差集合,将序号为21~80的方差组成中间方差集合,将序号为81~100的方差组成最小方差集合。
S505、根据中间方差集合的最大值,确定第二预设门限值,并根据中间方差集合的最小值,确定第一预设门限值。
通过上述方法,本公开实施例可以预先依据测试视频,确定第一预设门限值和第二预设门限值,以便后续可以利用这两个门限值划分待编码视频的活跃度等级。而且由于这两个门限值是基于实际的测试视频得到的,因此确定的门限值的准确度较高。
本公开实施例中,上述S505确定第一预设门限值和第二预设门限值的方式,可以包括以下两种。
方式1、可以将S504确定的中间方差集合的最大值,作为第二预设门限值,并将该中间方差集合的最小值,作为第一预设门限值。
方式2、本公开实施例中,测试视频可以存在多个。此时,确定第二预设门限值的方式可以实现为:获取针对每个测试视频得到的中间方差集合的最大值,并将获取的各最大值的平均值,作为第二预设门限值。
相应的,确定第一预设门限值的方式可以实现为:获取针对每个测试视频得到的中间方差集合的最小值,将获取的各最小值的平均值,作为第一预设门限值。
通过上述方法,本公开实施例可以结合多个测试视频,得到第一预设门限值和第二预设门限值。与通过单一测试视频确定门限值的方式相比,多个测试视频的代表性更强,能够提高确定这两个门限值的准确性。
在本公开实施例中,确定上述S303中确定待编码视频帧的复杂度等级对应的最大划分深度的方式,可以实现为以下两种:
方式(1)、通过预先设置的各复杂度等级与划分深度之间的对应关系,将待编码视频帧的复杂度等级对应的划分深度,作为最大划分深度。
方式(2)、根据各复杂度等级、预测类型与最大划分深度三者之间的预设对应关系,确定待编码视频帧的复杂度等级和预测类型对应的最大划分深度。
即,将待编码视频帧的复杂度等级和预测类型对应的划分深度,作为最大划分深度。
例如,将视频帧的复杂度等级划分为三级的情况下,各复杂度等级、预测类型与最大划分深度三者之间的预设对应关系,如表一所示:
表一
预测类型 复杂 普通 简单
普通I帧或IDR帧 3 3 3
P帧 3 2 2
非参考B帧 2 1 1
0层参考B帧 3 2 2
1层参考B帧 3 1 2
2层参考B帧 2 1 2
3层参考B帧 2 1 2
其他帧 1 1 1
其中,“复杂”为最高的复杂度等级,“普通”为中间的复杂度等级,“简单”为最低的复杂度等级。表一中复杂度等级下的各数字表示划分深度。
可以理解的,普通I帧或IDR帧能够作为最多帧的参考帧,因此重要性较高,复杂度等级无论高低,都可以设置为最大的划分深度,即3。同理,P帧的重要性高于非参考B帧,因此相同复杂度等级下可对应的划分深度更高。
非参考B帧不作为任何视频帧的参考帧,参考B帧可以作为其他视频帧的参考帧。例如,0层参考B帧可以作为1层参考B帧的参考帧,1层参考B帧可以作为2层参考B帧的参考帧,以此类推。因此参考B帧层级小,重要性越高,重要性越高相同复杂度等级下可对应的划分深度越高。其他帧可以包括虚拟帧以及随视频编码技术发展出现的其他预测类型帧。
通过上述方法,在确定待编码视频帧的划分深度时,不仅可以考虑待编码视频帧的复杂度等级,还可以考虑待编码视频帧的预测类型,由于预测类型表示的视频帧的重要性,而重要性与编码质量密切相关。因此本公开实施例结合复杂度等级和预测类型,确定的划分深度更准确。
参见图6,以下结合实际应用场景,对本公开实施例中的视频编码的整体流程进行说明:
S601、获取多个测试视频,针对每个测试视频,将该测试视频的每个测试视频帧划分为多个测试编码块,确定每个测试编码块的运动向量,并确定各测试编码块的运动向量的绝对值的方差;按照预设比例,将测试视频的各测试视频帧对应的方差,划分为最小方差集合、中间方差集合和最大方差集合;将每个测试视频的中间方差集合的最大值的平均值,作为第二预设门限值,并将每个测试视频的中间方差集合的最小值的平均值,作为第一预设门限值。
S602、将待编码视频帧划分为多个目标编码块,确定每个目标编码块的运动向量,将各目标编码块的运动向量,与第一预设门限值和第二预设门限值进行对比,确定待编码视频帧的复杂度等级,并确定待编码视频帧的复杂度等级对应的最大划分深度。
S603、获取对待编码视频帧进行视频帧预测,得到的待编码残差帧,基于最大划分深度,将待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理,对变换处理结果进行其他编码处理。
图6中的各步骤的具体实现方式,可参考上述描述,此处不再赘述。
可见,本公开实施例实现了根据待编码视频帧的各编码块的运动向量,确定待编码视频帧的最大划分深度,实现了根据待编码视频帧包括的数据量,灵活地调整待编码视频帧的最大划分深度,从而在保障编码质量的基础上,减少编码的运算量。而且,本公开实施例在语法层面,不需要在编码器的头切片(slice header)中添加新的比特(bit)数,即不用添加新的语法元素,因此能够在不引入新的比特数消耗的情况下,节省编码的计算量。
基于相同的发明构思,对应于上述方法实施例,本公开实施例还提供了一种视频编码装置,如图7所示,该装置包括:获取模块701和划分模块702;
获取模块701,用于获取对待编码视频帧进行视频帧预测,得到的待编码残差帧,待编码残差帧表示待编码视频帧与视频帧预测结果之间的误差;
获取模块701,还用于获取待编码视频帧的最大划分深度;其中,最大划分深度用于表示最多允许划分的变换单元层级数,最大划分深度为待编码视频帧的复杂度等级对应的划分深度;复杂度等级基于相同对象在待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度;
划分模块702,用于基于获取模块获取的最大划分深度,将待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。
在本公开的一个实施例中,该装置还可以包括:
获取模块701,还用于在获取对待编码视频帧进行视频帧预测,得到的待编码残差帧之前,获取待编码视频帧;
确定模块,用于根据各对象在待编码视频帧中与在参考帧中的位置偏移量,确定待编码视频帧的复杂度等级;
确定模块,还用于根据各复杂度等级与划分深度之间的预设对应关系,确定待编码视频帧的复杂度等级对应的最大划分深度。
在本公开的一个实施例中,其中,确定模块,具体用于:
将待编码视频帧划分为多个目标编码块;其中,各目标编码块的并集为待编码视频帧,且各目标编码块之间没有交集;
确定每个目标编码块的运动向量,运动向量为目标编码块包括的各对象在待编码视频帧中与在参考帧中的位置偏移向量;
根据各目标编码块的运动向量,确定待编码视频帧的复杂度等级。
在本公开的一个实施例中,其中,确定模块,具体用于:
确定各目标编码块的运动向量的绝对值的方差;
若方差小于第一预设门限值,则确定待编码视频帧的复杂度等级为最低等级;
若方差大于或等于第一预设门限值,且小于或等于第二预设门限值,则确定待编码视频帧的复杂度等级为中间等级;其中,第二预设门限值大于第一预设门限值;
若方差大于第二预设门限值,则确定待编码视频帧的复杂度等级为最高等级。
在本公开的一个实施例中,其中,确定模块,具体用于:
对待编码视频帧进行下采样,得到下采样帧;
将下采样帧划分为多个目标编码块。
在本公开的一个实施例中,获取模块,还用于在根据各对象在待编码视频帧中与在参考帧中的位置偏移量,确定待编码视频帧的复杂度等级之前,获取测试视频的测试视频帧;
划分模块702,还用于分别将每个测试视频帧划分为多个测试编码块;其中,各测试编码块的并集为测试视频帧,且各测试编码块之间没有交集;
确定模块,还用于分别确定每个测试视频帧包括的各测试编码块的运动向量,并确定各测试编码块的运动向量的绝对值的方差;
划分模块702,还用于按照预设比例,将测试视频的各测试视频帧对应的方差,划分为最小方差集合、中间方差集合和最大方差集合;中间方差集合的最大值小于最大方差集合的最小值,中间方差集合的最小值大于最小方差集合的最大值;
确定模块,还用于根据中间方差集合的最大值,确定第二预设门限值,并根据中间方差集合的最小值,确定第一预设门限值。
在本公开的一个实施例中,其中,测试视频存在多个;
确定模块,具体用于:
获取针对每个测试视频得到的中间方差集合的最大值;
将获取的各最大值的平均值,作为第二预设门限值;
确定模块,具体用于:
获取针对每个测试视频得到的中间方差集合的最小值;
将获取的各最小值的平均值,作为第一预设门限值。
在本公开的一个实施例中,其中,确定模块,具体用于:
根据各复杂度等级、预测类型与最大划分深度三者之间的预设对应关系,确定待编码视频帧的复杂度等级和预测类型对应的最大划分深度。
本公开的技术方案中,所涉及的视频帧信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如视频编码方法。例如,在一些实施例中,视频编码方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的视频编码方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行视频编码方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (19)

1.一种视频编码方法,包括:
获取对待编码视频帧进行视频帧预测,得到的待编码残差帧,所述待编码残差帧表示所述待编码视频帧与视频帧预测结果之间的误差;
获取所述待编码视频帧的最大划分深度;其中,所述最大划分深度用于表示最多允许划分的变换单元层级数,所述最大划分深度为所述待编码视频帧的复杂度等级对应的划分深度;所述复杂度等级基于相同对象在所述待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度;
基于所述最大划分深度,将所述待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。
2.根据权利要求1所述的方法,在所述获取对待编码视频帧进行视频帧预测,得到的待编码残差帧之前,所述方法还包括:
获取待编码视频帧;
根据各对象在所述待编码视频帧中与在所述参考帧中的位置偏移量,确定所述待编码视频帧的复杂度等级;
根据各复杂度等级与划分深度之间的预设对应关系,确定所述待编码视频帧的复杂度等级对应的最大划分深度。
3.根据权利要求2所述的方法,其中,所述根据各对象在所述待编码视频帧中与在所述参考帧中的位置偏移量,确定所述待编码视频帧的复杂度等级,包括:
将所述待编码视频帧划分为多个目标编码块;其中,各目标编码块的并集为所述待编码视频帧,且各目标编码块之间没有交集;
确定每个目标编码块的运动向量,所述运动向量为目标编码块包括的各对象在所述待编码视频帧中与在所述参考帧中的位置偏移向量;
根据各目标编码块的运动向量,确定所述待编码视频帧的复杂度等级。
4.根据权利要求3所述的方法,其中,所述根据各目标编码块的运动向量,确定所述待编码视频帧的复杂度等级,包括:
确定各目标编码块的运动向量的绝对值的方差;
若所述方差小于第一预设门限值,则确定所述待编码视频帧的复杂度等级为最低等级;
若所述方差大于或等于所述第一预设门限值,且小于或等于第二预设门限值,则确定所述待编码视频帧的复杂度等级为中间等级;其中,所述第二预设门限值大于所述第一预设门限值;
若所述方差大于所述第二预设门限值,则确定所述待编码视频帧的复杂度等级为最高等级。
5.根据权利要求3所述的方法,其中,所述将所述待编码视频帧划分为多个目标编码块,包括:
对所述待编码视频帧进行下采样,得到下采样帧;
将所述下采样帧划分为多个目标编码块。
6.根据权利要求4所述的方法,在所述根据各对象在所述待编码视频帧中与在所述参考帧中的位置偏移量,确定所述待编码视频帧的复杂度等级之前,所述方法还包括:
获取测试视频的测试视频帧;
分别将每个测试视频帧划分为多个测试编码块;其中,各测试编码块的并集为所述测试视频帧,且各测试编码块之间没有交集;
分别确定每个测试视频帧包括的各测试编码块的运动向量,并确定所述各测试编码块的运动向量的绝对值的方差;
按照预设比例,将所述测试视频的各测试视频帧对应的方差,划分为最小方差集合、中间方差集合和最大方差集合;所述中间方差集合的最大值小于所述最大方差集合的最小值,所述中间方差集合的最小值大于所述最小方差集合的最大值;
根据所述中间方差集合的最大值,确定所述第二预设门限值,并根据所述中间方差集合的最小值,确定所述第一预设门限值。
7.根据权利要求6所述的方法,其中,所述测试视频存在多个;
所述根据所述中间方差集合的最大值,确定所述第二预设门限值,包括:
获取针对每个测试视频得到的中间方差集合的最大值;
将获取的各最大值的平均值,作为所述第二预设门限值;
所述根据所述中间方差集合的最小值,确定所述第一预设门限值,包括:
获取针对每个测试视频得到的中间方差集合的最小值;
将获取的各最小值的平均值,作为所述第一预设门限值。
8.根据权利要求2-7任一项所述的方法,其中,所述根据各复杂度等级与划分深度之间的预设对应关系,确定所述待编码视频帧的复杂度等级对应的最大划分深度,包括:
根据各复杂度等级、预测类型与最大划分深度三者之间的预设对应关系,确定所述待编码视频帧的复杂度等级和预测类型对应的最大划分深度。
9.一种视频编码装置,包括:
获取模块,用于获取对待编码视频帧进行视频帧预测,得到的待编码残差帧,所述待编码残差帧表示所述待编码视频帧与视频帧预测结果之间的误差;
所述获取模块,还用于获取所述待编码视频帧的最大划分深度;其中,所述最大划分深度用于表示最多允许划分的变换单元层级数,所述最大划分深度为所述待编码视频帧的复杂度等级对应的划分深度;所述复杂度等级基于相同对象在所述待编码视频帧与参考帧之间的位置偏移量确定;复杂度最高等级对应的划分深度大于或等于复杂度最低等级对应的划分深度;
划分模块,用于基于所述获取模块获取的所述最大划分深度,将所述待编码残差帧划分为多个变换单元,并对每个变换单元进行变换处理。
10.根据权利要求9所述的装置,所述装置还包括:
所述获取模块,还用于在所述获取对待编码视频帧进行视频帧预测,得到的待编码残差帧之前,获取待编码视频帧;
确定模块,用于根据各对象在所述待编码视频帧中与在所述参考帧中的位置偏移量,确定所述待编码视频帧的复杂度等级;
所述确定模块,还用于根据各复杂度等级与划分深度之间的预设对应关系,确定所述待编码视频帧的复杂度等级对应的最大划分深度。
11.根据权利要求10所述的装置,其中,所述确定模块,具体用于:
将所述待编码视频帧划分为多个目标编码块;其中,各目标编码块的并集为所述待编码视频帧,且各目标编码块之间没有交集;
确定每个目标编码块的运动向量,所述运动向量为目标编码块包括的各对象在所述待编码视频帧中与在所述参考帧中的位置偏移向量;
根据各目标编码块的运动向量,确定所述待编码视频帧的复杂度等级。
12.根据权利要求11所述的装置,其中,所述确定模块,具体用于:
确定各目标编码块的运动向量的绝对值的方差;
若所述方差小于第一预设门限值,则确定所述待编码视频帧的复杂度等级为最低等级;
若所述方差大于或等于所述第一预设门限值,且小于或等于第二预设门限值,则确定所述待编码视频帧的复杂度等级为中间等级;其中,所述第二预设门限值大于所述第一预设门限值;
若所述方差大于所述第二预设门限值,则确定所述待编码视频帧的复杂度等级为最高等级。
13.根据权利要求11所述的装置,其中,所述确定模块,具体用于:
对所述待编码视频帧进行下采样,得到下采样帧;
将所述下采样帧划分为多个目标编码块。
14.根据权利要求12所述的装置,
所述获取模块,还用于在所述根据各对象在所述待编码视频帧中与在所述参考帧中的位置偏移量,确定所述待编码视频帧的复杂度等级之前,获取测试视频的测试视频帧;
所述划分模块,还用于分别将每个测试视频帧划分为多个测试编码块;其中,各测试编码块的并集为所述测试视频帧,且各测试编码块之间没有交集;
所述确定模块,还用于分别确定每个测试视频帧包括的各测试编码块的运动向量,并确定所述各测试编码块的运动向量的绝对值的方差;
所述划分模块,还用于按照预设比例,将所述测试视频的各测试视频帧对应的方差,划分为最小方差集合、中间方差集合和最大方差集合;所述中间方差集合的最大值小于所述最大方差集合的最小值,所述中间方差集合的最小值大于所述最小方差集合的最大值;
所述确定模块,还用于根据所述中间方差集合的最大值,确定所述第二预设门限值,并根据所述中间方差集合的最小值,确定所述第一预设门限值。
15.根据权利要求14所述的装置,其中,所述测试视频存在多个;
所述确定模块,具体用于:
获取针对每个测试视频得到的中间方差集合的最大值;
将获取的各最大值的平均值,作为所述第二预设门限值;
所述确定模块,具体用于:
获取针对每个测试视频得到的中间方差集合的最小值;
将获取的各最小值的平均值,作为所述第一预设门限值。
16.根据权利要求10-15任一项所述的装置,其中,所述确定模块,具体用于:
根据各复杂度等级、预测类型与最大划分深度三者之间的预设对应关系,确定所述待编码视频帧的复杂度等级和预测类型对应的最大划分深度。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
CN202211607421.1A 2022-12-14 2022-12-14 一种视频编码方法、装置、电子设备及介质 Pending CN115988207A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211607421.1A CN115988207A (zh) 2022-12-14 2022-12-14 一种视频编码方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211607421.1A CN115988207A (zh) 2022-12-14 2022-12-14 一种视频编码方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN115988207A true CN115988207A (zh) 2023-04-18

Family

ID=85975093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211607421.1A Pending CN115988207A (zh) 2022-12-14 2022-12-14 一种视频编码方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115988207A (zh)

Similar Documents

Publication Publication Date Title
US11695967B2 (en) Block level geometric partitioning
KR102447241B1 (ko) 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
US10158864B2 (en) Method, apparatus and coder for selecting optimal reference frame in HEVC coding
CN111182303A (zh) 共享屏幕的编码方法、装置、计算机可读介质及电子设备
US20210218977A1 (en) Methods and systems of exponential partitioning
WO2022000298A1 (en) Reinforcement learning based rate control
WO2022095871A1 (zh) 一种视频处理方法、视频处理装置、智能设备及存储介质
CN117459733A (zh) 视频编码方法、装置、设备、可读存储介质及程序产品
CN116567246A (zh) Avc编码方法和装置
CN115988207A (zh) 一种视频编码方法、装置、电子设备及介质
CN113099241B (zh) 参考帧列表更新方法、装置、设备以及存储介质
CN112738529A (zh) 帧间预测方法、装置、设备、存储介质以及程序产品
US11234004B2 (en) Block type prediction leveraging block-based pixel activities
US20240137502A1 (en) Systems and methods for encoding and decoding video with memory-efficient prediction mode selection
US10332277B2 (en) Low complexity optimal decimation grid selection in encoding applications
CN114513659B (zh) 确定图片预测模式的方法、装置、电子设备和介质
CN117061753A (zh) 预测帧间编码的运动矢量的方法和装置
CN111885378B (zh) 多媒体数据编码方法、装置、设备以及介质
CN110784719B (zh) 在视频注释的存在下视频数据的高效编码
CN118138767A (zh) 一种视频编码方法、装置、计算机设备及介质
CN118042142A (zh) 一种视频编码方法、装置、计算机设备及介质
CN118055240A (zh) 一种视频编码方法、装置、计算机设备及介质
CN112738522A (zh) 视频编码方法、装置
CN115037947A (zh) 视频编码方法、装置、电子设备和存储介质
WO2020078230A1 (zh) 图像块的划分方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination