CN115314716A - 视频编码方法、装置、计算机可读介质及电子设备 - Google Patents
视频编码方法、装置、计算机可读介质及电子设备 Download PDFInfo
- Publication number
- CN115314716A CN115314716A CN202111608906.8A CN202111608906A CN115314716A CN 115314716 A CN115314716 A CN 115314716A CN 202111608906 A CN202111608906 A CN 202111608906A CN 115314716 A CN115314716 A CN 115314716A
- Authority
- CN
- China
- Prior art keywords
- mvp
- current
- related information
- reference frame
- motion vector
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请的实施例提供了一种视频编码方法、装置、计算机可读介质及电子设备。该视频编码方法包括:将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果;若根据所述比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对所述当前MVP的第二相关信息的获取,并依次获取当前MVP之后的其它MVP的第一相关信息和第二相关信息;根据获取到的当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP;基于最优MVP对所述当前编码块进行编码处理。本申请实施例的技术方案可以提高视频编码的效率,降低对机器的性能要求。
Description
本申请基于并要求2021年05月06日申请的、申请号为2021104907766、发明名称为“视频编码方法、装置、计算机可读介质及电子设备”的中国专利申请的优先权,其全部内容在此并入作为参考。
技术领域
本申请涉视频编码技术领域,具体而言,涉及一种视频编码方法、装置、计算机可读介质及电子设备。
背景技术
未来视频的发展趋势是高清晰度、高帧率、高压缩率,这要求视频压缩标准不断升级,相关的视频压缩标准已经在压缩率等方面达到了较高的水平。但是,目前的编码协议太复杂,编码效率较低,对机器性能要求比较高,普通机器还不能达到实时编码的能力,这也限制了这些编码协议的应用。
发明内容
本申请的实施例提供了一种视频编码方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以提高视频编码的效率,降低对机器的性能要求,并可以使压缩性能无损。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种视频编码方法,包括:将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果,所述当前运动向量预测值和所述已收集的MVP是与当前编码块对应的MVP;若根据所述比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对所述当前MVP的第二相关信息的获取,并依次获取所述当前MVP之后的其它MVP的第一相关信息和第二相关信息;根据获取到的所述当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP;基于所述最优MVP对所述当前编码块进行编码处理。
根据本申请实施例的一个方面,提供了一种视频编码装置,包括:比较单元,用于将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果,所述当前运动向量预测值和所述已收集的MVP是与当前编码块对应的MVP;跳过单元,用于若根据所述比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对所述当前MVP的第二相关信息的获取,并依次获取所述当前MVP之后的其它MVP的第一相关信息和第二相关信息;选择单元,用于根据获取到的所述当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP;编码单元,用于基于所述最优MVP对所述当前编码块进行编码处理。
在本申请的一些实施例中,基于前述方案,所述选择单元还用于:根据与当前编码块对应的各MVP的相关信息,确定与帧间预测模式和参考帧组成的各个组合所对应的最优MVP,作为候选MVP;根据各所述候选MVP的相关信息,确定与各帧间预测模式对应的最优参考帧;根据各所述最优参考帧对应的候选MVP的相关信息,确定所述当前编码块对应的最优帧间预测模式;根据所述最优帧间预测模式对应的候选MVP确定所述当前编码块对应的最优MVP。
在本申请的一些实施例中,基于前述方案,所述跳过单元还用于:若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取,则继续收集所述当前MVP的第一相关信息;在收集所述当前MVP的第一相关信息之后,获取所述当前MVP的第二相关信息。
在本申请的一些实施例中,基于前述方案,所述跳过单元配置为:如果当前帧间预测模式为组合参考帧模式,则获取所述当前MVP对应的最优组合模式类型、最优插值方式和最优运动模式。
在本申请的一些实施例中,基于前述方案,所述跳过单元还用于:如果已获得与当前帧间预测模式的所有MVP对应的相关信息,则获取其它帧间预测模式所对应的MVP作为当前MVP,并继续获取与所述当前MVP对应的相关信息。
在本申请的一些实施例中,基于前述方案,所述当前运动向量预测值MVP对应的第一相关信息包括:与所述当前MVP对应的运动向量、与所述当前MVP对应的当前参考帧以及与所述当前MVP对应的部分比特数。
在本申请的一些实施例中,基于前述方案,所述当前MVP对应的帧间预测模式包含NEWMV,所述跳过单元还用于:基于所述当前MVP进行运动估计,得到与所述当前MVP对应的最优运动向量;将所述最优运动向量确定为与所述当前MVP对应的运动向量。
在本申请的一些实施例中,基于前述方案,所述当前MVP对应的帧间预测模式不包含NEWMV,所述跳过单元还用于:将所述当前MVP确定为与所述当前MVP对应的运动向量。
在本申请的一些实施例中,基于前述方案,所述跳过单元配置为:若根据所述比较结果确定所述当前MVP的运动向量与已收集的MVP的运动向量相同、所述当前MVP的参考帧与所述已收集的MVP的参考帧相同,且所述当前MVP的部分比特数大于所述已收集的MVP的部分比特数,则确定需要提前退出对所述当前MVP的相关信息的获取。
在本申请的一些实施例中,基于前述方案,所述跳过单元配置为:若根据所述比较结果确定所述当前MVP的前向参考帧与已收集的MVP的前向参考帧相同、所述当前MVP的后向参考帧与所述已收集的MVP的后向参考帧相同、所述当前MVP的前向参考帧对应的运动向量与所述已收集的MVP的前向参考帧对应的运动向量相同、所述当前MVP的后向参考帧对应的运动向量与所述已收集的MVP的后向参考帧对应的运动向量相同,且所述当前MVP的部分比特数大于所述已收集的MVP的部分比特数,则确定需要提前退出对所述当前MVP的相关信息的获取。
在本申请的一些实施例中,基于前述方案,所述比较单元还用于:判断当前帧间预测模式是否满足预定条件,其中,所述预定条件是根据GLOBALMV和GLOBAL_GLOBALMV的帧间预测模式而生成的;在当前帧间预测模式满足预定条件的情况下,执行将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比的过程。
在本申请的一些实施例中,基于前述方案,所述跳过单元配置为:若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取且当前帧间预测模式满足所述预定条件,则继续收集所述当前MVP的第一相关信息。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的视频编码方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的视频编码方法。
在本申请的一些实施例所提供的技术方案中,在预测模式的选择阶段,先根据获取到的当前运动向量预测值MVP的第一相关信息判断是否能够提前退出对当前MVP的相关信息的获取,如果提前退出,则跳过对当前MVP的第二相关信息的获取。因此,对一部分MVP无需获取对应的第二相关信息,并且在不获取这些MVP对应的第二相关信息的情况下,也不影响最优MVP和最优帧间预测模式的选择结果,又由于获取第二相关信息需要巨大的计算量,因此大大减少了视频编码的计算量,没有增加新计算,且准确率非常高,在保证压缩性能无损的同时,可以显著提高视频编码的效率,整体上节约了计算资源的开销,降低对机器的性能要求,使性能较低的机器也能快速进行视频编码,因而还拓展了编码协议的应用范围。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示出视频编码装置和视频解码装置在流式传输系统中的放置方式示意图;
图3A示出了根据本申请的一个实施例的标准编码框架的示意图;
图3B示出了根据本申请的一个实施例的AV1编码协议下编码单元分割的类型示意图;
图4示出了根据本申请的一个实施例的AV1编码协议下不同单参考帧模式的运动向量预测值对应位置的示意图;
图5示出了相关技术中与任一预测模式和参考帧的组合对应的最优结果抉择过程的流程示意图;
图6示出了根据本申请的一个实施例的视频编码方法的流程图;
图7示出了根据本申请的一个实施例的选择当前编码块对应的最优MVP的流程图;
图8示出了根据本申请的一个实施例的图6中步骤610之后步骤的流程图;
图9示出了根据本申请的一个实施例的与任一预测模式和参考帧的组合对应的最优结果抉择过程的流程示意图;
图10示出了根据本申请的一个实施例的菱形搜索模板的示意图;
图11示出了根据本申请的一个实施例的两点搜索的示意图;
图12示出了根据本申请的一个实施例的以光栅扫描方式搜索位置点的局部示意图;
图13示出了根据本申请的一个实施例的大菱形搜索模板的示意图;
图14示出了根据本申请的一个实施例的小菱形搜索模板的示意图;
图15示出了根据本申请的一个实施例的单参考帧模式下提前退出条件的确定流程示意图;
图16示出了根据本申请的一个实施例的组合参考帧模式下提前退出条件的确定流程示意图;
图17示出了根据本申请的一个实施例的视频编码装置的框图;
图18示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面先对本申请中涉及的部分专有名词进行解释。
ME:Motion Estimation,运动估计,HEVC(High Efficiency Video Coding,高效视频编码)等协议中有相关规定。
MV:motion vector,运动向量,它是在进行帧间预测时标记当前块和参考块位置关系的一个向量。
MVP:Motion Vector Prediction,运动向量预测值,即根据相邻块推导出来的mv初始位置。
MVD:Motion Vector Difference,运动向量偏差,MVD=MV-MVP,通过将MV的预测值和实际值的差编码,可以减少比特数的消耗。
rdcost:Rate Distortion Cost,率失真代价,用于多种选项中的择优。
SAD:Sum of Absolute Difference,绝对误差和,仅反映残差时域差异,不能有效反映码流的大小。
SATD:Sum of Absolute Transformed Difference,hadamard变换后再绝对值求和,是计算失真的一种方式,是将残差信号进行hadamard变换后,再求各元素绝对值之和,与SAD相比,计算量要复杂一些,但精度也高些。
SSE:表示原始像素与重构像素误差的平方和,需要对残差信号做变换、量化、逆量化、逆变换的过程,估算出的码子和真实编码出来的一样,选出的模式最节省码子,但计算复杂度也最大。
视频编码是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100包括多个终端装置,所述终端装置可通过例如网络150彼此通信。举例来说,系统架构100可以包括通过网络150互连的第一终端装置110和第二终端装置120。在图1的实施例中,第一终端装置110和第二终端装置120执行单向数据传输。在实际应用时,第一终端装置110和第二终端装置120可以以区块链中节点的形式存在,数据传输可以在区块链中进行。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
举例来说,第一终端装置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-T H.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC),本申请可用于VVC标准的上下文中。
应注意,电子装置220和电子装置230可包括图中未示出的其它组件。举例来说,电子装置220可包括视频解码装置,且电子装置230还可包括视频编码装置。
在本申请的一个实施例中,以国际视频编码标准HEVC(High Efficiency VideoCoding,高效率视频编码)、VVC(Versatile Video Coding,多功能视频编码),以及中国国家视频编码标准AVS(Audio Video coding Standard,信源编码标准)为例,当输入一个视频帧图像之后,会根据一个块大小,将视频帧图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU(Coding Tree Unit,编码树单元),或者称之为LCU(Largest Coding Unit,最大编码单元)。CTU再往下可以继续进行更加精细的划分,得到一个或多个基本的编码单元CU,CU是一个编码环节中最基本的元素,CU与CB(Coding Block,编码块)相对应。
图3A示出了根据本申请的一个实施例的标准编码框架的示意图。在该标准编码框架下的编码过程如下:当前帧Fn的图像信号与根据参考帧Fn-1进行预测得到的预测图像信号(帧间或帧内)做差值运算,得到残差信号,残差信号经过变换及量化处理之后得到量化系数,量化系数一方面通过熵编码得到编码后的比特流,另一方面通过逆量化及逆变换处理得到重构残差信号,预测图像信号与重构残差信号叠加生成图像信号,图像信号一方面输入至帧内预测选择模块和帧内预测模块进行帧内预测处理,另一方面通过滤波(通常是环路滤波)输出重建帧F'n的图像信号,重建帧F'n的图像信号可以作为下一帧的参考图像进行运动估计(Motion Estimation,简称ME)及运动补偿(Motion Compensation,简称MC)预测。然后基于运动补偿预测的结果和预测结果得到下一帧的预测图像信号,并继续重复上述过程,直至编码完成。
图3B示出了AV1(Alliance for Open Media Video 1,开放媒体视频联盟1)编码协议中编码单元分割的类型示意图。主要有以下10种类型,分别为不分割(NONE)、四等分(SPLIT)、水平二等分(HORZ)、垂直二等分(VERT)、水平四等分(HORZ_4)、第一水平三分(HORZ_A)、第二水平三分(HORZ_B)、第一垂直三分(VERT_A)、第二垂直三分(VERT_B)、垂直四等分(VERT_4)。
图3B所示实施例中编码单元的分割类型对应着22种编码块大小,分别为:4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、128×128、4×16、16×4、8×32、32×8、16×64、64×16。
其中,每个编码单元均包含了帧内预测模式和帧间预测模式共两种预测类型。先在相同预测类型内,不同预测模式间进行比较,找到最优的分割模式;再对帧内帧间预测模式比较,找到当前编码单元下的最优预测模式;同时对编码单元做变换单元的变换,每个编码单元对应着多种变换类型,从中找到最优的变换类型。最后将一帧图像分成一个个编码单元。
帧内预测模式包括以下几种:基于上方和左方的参考像素的均值预测(DC_PRED)、水平与垂直插值结合预测(SMOOTH_PRED)、垂直插值预测(SMOOTH_V_PRED)、水平插值预测(SMOOTH_H_PRED)、梯度最小方向预测(PEATH_PRED)以及8个不同主方向的预测,分别为:垂直方向预测(V_PRED)、水平方向预测(H_PRED)、45度角方向预测(D45_PRED)、67度角方向预测(D67_PRED)、113度角方向预测(D113_PRED)、135度角方向预测(D135_PRED)、157度角方向预测(D157_PRED)、203度角方向预测(D203_PRED)。每个主方向又包括了6个角度偏移,分别为加减3度、加减6度、加减9度。在一些情况中,帧内预测模式还可以包括调色板预测模式和帧内(intra)块拷贝预测。
帧间预测模式包括单参考帧模式和组合参考帧模式。单参考帧模式包括4种,分别为NEARESTMV、NEARMV、GLOBALMV和NEWMV;组合参考帧模式包括8种,分别为NEAREST_NEARESTMV、NEAR_NEARMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV、GLOBAL_GLOBALMV和NEW_NEWMV。其中,NEARESTMV和NEARMV是指预测块的mv根据周围块信息推导得到,不需要传输mvd;而NEWMV意味着需要传输mvd,GLOBALMV是指块的mv信息根据全局运动推导得到。可见,包含NEARESTMV、NEARMV及NEWMV的帧间预测模式都依赖于MVP推导。比如模式NEWMV、NEW_NEWMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV均包含有NEWMV,这些模式都依赖于MVP推导。
对于给定的参考帧,AV1标准会按照规则计算出4个mvp。
AV1编码协议下mvp推导流程可以是这样的:按一定方式跳跃式扫描左边1/3/5列和上方1/3/5行的块信息,先选出使用相同参考帧的块,对mv进行去重;如果不重复的mv数目不足8个,则放宽要求为同方向的参考帧,并继续添加mv;如果还是不足8个,则用全局运动矢量来填充;选出8个mv后,按照重要性进行排序,选出最重要的4个mv。
图4示出了根据本申请的一个实施例的AV1编码协议下不同单参考帧模式的运动向量预测值对应位置的示意图。请参见图4,其示出了一个动态参考帧列表,Ref1、Ref2、Ref3分别为参考帧,每一参考帧对应的mv记录在对应列中。比如,Ref1所在列对应的4个MV1为根据Ref1这一参考帧选出的4个mv。通过图4可以看到,在选出最重要的4个mv中,将第0个mv作为NEARESTMV这一预测模式对应的mvp,将第1~3个mv作为NEARMV这一预测模式对应的mvp,将第0~2个mv作为NEWMV这一预测模式对应的mvp。
参考帧类型 | 值 | 含义 |
INTRA_FRAME | 0 | Intra预测,inter_intra |
LAST_FRAME | 1 | Poc小于当前帧中最接近当前帧的参考帧,前向参考 |
LAST2_FRAME | 2 | Poc小于当前帧中第2接近当前帧的参考帧,前向参考 |
LAST3_FRAME | 3 | Poc小于当前帧中第3接近当前帧的参考帧,前向参考 |
GOLDEN_FRAME | 4 | Poc小于当前帧所对应的I帧或GPB帧,类似长期参考帧 |
BWDREF_FRAME | 5 | Poc大于当前帧中最接近当前帧的参考帧,后向参考 |
ALTREF2_FRAME | 6 | Poc大于当前帧中第2接近当前帧的参考帧,后向参考 |
ALTREF_FRAME | 7 | Poc大于当前帧中第3接近当前帧的参考帧,后向参考 |
表1
每种预测模式对应着不同的参考帧,AV1编码协议下各参考帧及对应的含义如表1所示,其中,Poc(picture order count)为图像顺序号,INTRA_FRAME代表帧内预测模式不使用参考帧,值1~7为帧间预测模式对应的7个参考帧。
对于前面所说的4种单参考帧模式,每种单参考帧模式分别对应的7个参考帧,分别为LAST_FRAME、LAST2_FRAME、LAST3_FRAME、GOLDEN_FRAME、BWDREF_FRAME、ALTREF2_FRAME和ALTREF_FRAME。因此,单参考帧模式和参考帧的组合共有4×7=28种。
对于前面所说的8种组合参考帧模式,每种组合参考帧模式分别对应的16个参考帧组合,分别为{LAST_FRAME,ALTREF_FRAME},{LAST2_FRAME,ALTREF_FRAME},{LAST3_FRAME,ALTREF_FRAME},{GOLDEN_FRAME,ALTREF_FRAME},{LAST_FRAME,BWDREF_FRAME},{LAST2_FRAME,BWDREF_FRAME},{LAST3_FRAME,BWDREF_FRAME},{GOLDEN_FRAME,BWDREF_FRAME},{LAST_FRAME,ALTREF2_FRAME},{LAST2_FRAME,ALTREF2_FRAME},{LAST3_FRAME,ALTREF2_FRAME},{GOLDEN_FRAME,ALTREF2_FRAME},{LAST_FRAME,LAST2_FRAME},{LAST_FRAME,LAST3_FRAME},{LAST_FRAME,GOLDEN_FRAME},{BWDREF_FRAME,ALTREF_FRAME}。因此,组合参考帧模式和参考帧的组合共有8×16=128种。
因此,帧间预测模式与参考帧的组合共有156(4×7+8×16)种。对于任一帧间预测模式与参考帧的组合,当前组合会对应最多3个mvp。通过对当前mvp做运动估计(说明:只有预测模式含有NEWMV,才会做运动估计)、组合模式类型择优、插值方式择优及运动模式择优这4个过程来寻找编码模块的预测信息。
图5示出了相关技术中与任一预测模式和参考帧的组合对应的最优结果抉择过程的流程示意图。上述过程具体如图5所示,包括以下步骤:
步骤310,N=0,获取mvp个数ref_set。
其中,N用于计数,ref_set为与当前帧间预测模式及当前参考帧对应的mvp的数量。
步骤320,判断N<ref_set是否成立,如果是,则执行步骤330,否则执行步骤340。
步骤330,获取mvp,N+1。
即获取mvp作为当前mvp,并对N加1。
步骤340,针对下一个预测模式进行运动向量预测值MVP对应的相关信息的获取。
步骤350,判断当前预测模式是否包含有NEWMV,如果是,则先执行步骤360,再执行步骤390;否则,直接执行步骤390。
步骤360,进行运动估计,即搜寻得到当前mvp对应的最优运动向量。
步骤390,判断当前预测模式是否为组合参考帧模式,如果是,则先执行步骤3100,再执行步骤3110;否则,直接执行步骤3110。
步骤3100,类型择优。
组合参考帧模式有4种类型,分别为AVERAGE、DISTWTD,WEDGE与DIFFWTD,本步骤即从这4种类型中选出一种最优的,作为最优组合模式类型。将2个参考帧的预测像素融合到一起,每种组合模式类型对应着一种预测像素融合方法,该部分属于AV1协议规定,不再详述。
步骤3110,BestMv下插值方式择优。
插值共有9种方式,本步骤即从9种方式中选出最优的一种插值方式。对于每种插值方式的具体实现方式,该部分属于AV1协议规定,暂不详述。
步骤3120,运动模式择优。
在执行完步骤3120之后重新执行步骤320。
单参考帧模式和组合参考帧模式对应的运动模式不同。单参考帧模式对应着4种运动模式,分别为SIMPLE、OBMC、WARPED、SIMPLE(inter_intra);组合参考帧模式只对应着SIMPLE这1种运动模式。具体每种运动模式如何实现,该部分属于AV1协议规定,暂不详述。运动模式择优需要对残差信号做变换、量化、逆量化、逆变换,并进行完整率失真代价的计算,因此,计算复杂度最大。
由此可知,一个编码单元预测过程的计算复杂度非常大。一个编码单元最多有376个MVP,其中,单参考帧模式最多有56个MVP(7×3+7×3+7+7,其中,NEARESTMV和GLOBALMV为7个MVP、NEWMV和NEARMV均为7×3个MVP),组合参考帧模式最多有320个MVP,(除了NEAREST_NEARESTMV和GLOBAL_GLOBALMV为16个MVP外,其余6种组合参考帧模式均为16×3个MVP)。
在相关技术中,仅针对NEARMV的一个参考帧的多个MVP进行了优化,通过估算每个MVP的率失真代价,根据阈值来剔除MVP。在该相关技术下,通过估算每个MVP的率失真代价,因为做的简单,率失真代价可能不准确,只有当率失真代价之间差异比较大才有用;另外,如果率失真代价之间差异比较小,则无法剔除,反而增加了计算。因此,该相关技术的视频编码所需计算量较大、视频编码效率较低,且准确率不高。
本申请的发明人发现,无论单参考帧模式还是组合参考帧模式,一旦送给插值的预测值(运动向量和参考帧)相同,则插值方式择优过程中从9种插值方式中择优得到的结果也相同;进一步,对几种运动模式做完整率失真代价过程,生成的失真和残差系数消耗比特数、变换类型消耗比特数、TU分割类型消耗比特数也相同。因此,一旦预测像素相同,在所有影响当前mvp的率失真代价的因素之中,插值前消耗的比特数就尤为关键,因此可以通过判断预测值和插值前消耗的比特数来提前退出对插值和运动模式的判断。
为此,本申请首先提供了一种视频编码方法。本申请实施例提供的视频编码方法可以应用于直播平台、在线会议平台、短视频平台等任何需要进行视频编码的场景。
比如,在直播场景中,当网络主播为游戏主播时,通过执行本申请实施例提供的视频编码方法生成的编码后视频数据可以包含游戏主播的现场画面以及游戏画面;当网络主播为娱乐主播或购物主播时,通过执行本申请实施例提供的视频编码方法生成的编码后视频数据可以包含主播的现场画面。
在本申请的一个实施例中,视频编码方法应用于短视频平台,短视频上传用户利用其终端设备采集得到原始视频数据后,通过执行本申请实施例提供的视频编码方法对该原始视频数据进行编码,生成编码后视频数据,然后将编码后视频数据通过网络传输至短视频平台;随后,当某一观看短视频的用户请求观看由该短视频上传用户上传的短视频时,短视频平台通过网络将对应的编码后视频数据发送至该观看短视频的用户所在的终端设备;最后,由该终端设备进行解码和渲染实现短视频的播放,从而实现了短视频分享的整个流程。
由此可见,由于本申请实施例可以提高视频编码的效率,因此,节约了计算资源的开销,能够降低视频传输的延迟,提高用户的体验;并且可以降低对机器的性能要求,使更多性能较低的机器能够快速进行视频编码,拓展了编码协议的应用范围。
需要说明的是,虽然本申请实施例中视频编码方法是由终端设备执行的,相应地,视频解码装置一般设置于终端设备中,但在本申请的其它实施例中,视频编码方法也可以由服务器或服务器的集群执行,比如可以由直播平台或短视频平台执行。本申请实施例对此不作任何限定,本申请的保护范围也不应因此而受到任何限制。
本申请实施例所提供的视频编码方法可应用于云游戏、云教育、云会议等云技术领域。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
云教育(Cloud Computing Education,简称CCEDU),是指基于云计算商业模式应用的教育平台服务。在云平台上,所有的教育机构,培训机构,招生服务机构,宣传机构,行业协会,管理机构,行业媒体,法律结构等都集中云整合成资源池,各个资源相互展示和互动,按需交流,达成意向,从而降低教育成本,提高效率。
云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。
目前国内云会议主要集中在以SaaS(Software as a Service,软件即服务)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。
在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。
云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图6示出了根据本申请的一个实施例的视频编码方法的流程图,该视频编码方法可以由具有计算功能的设备来执行,比如可以是服务器或者智能手机等终端设备。参照图6所示,该视频编码方法至少包括以下步骤:
在步骤610中,将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果。
当前运动向量预测值和已收集的MVP是与当前编码块对应的MVP。
在本申请的一个实施例中,在将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比之前,所述方法还包括:
获取当前MVP;
获取当前MVP对应的第一相关信息。
在本申请的一个实施例中,当前运动向量预测值MVP对应的第一相关信息包括:与当前MVP对应的运动向量、与当前MVP对应的当前参考帧以及与当前MVP对应的部分比特数。
具体来说,与当前MVP对应的部分比特数包括当前MVP对应的MVD(运动向量偏差)消耗比特数、当前MVP对应的参考帧消耗比特数以及mvp索引消耗比特数,即,部分比特数为MVD消耗比特数、参考帧消耗比特数及mvp索引消耗比特数之和,其中,MVD消耗比特数在不进行运动估计的情况下为0。
请继续参照图5,MVD以及MVD消耗比特数通过运动估计生成的,当不进行运动估计时,MVD消耗比特数为0,并且,此时,当前MVP以及当前MVP对应的当前参考帧也已经确定。因此,MVD消耗比特数、当前MVP对应的参考帧消耗比特数以及MVP索引消耗比特数都是在进行插值方式择优之前能够获得的消耗比特数。
已收集的MVP的第一相关信息所对应的MVP是在当前MVP之前进行相关信息获取的其他MVP,已收集的MVP的第一相关信息也包括其他MVP对应的运动向量、当前参考帧以及部分比特数,对其他MVP与当前MVP采用同样的方式进行第一相关信息的获取。
步骤610能够在图5中BestMv下插值方式择优这一步骤之前执行,具体执行方式将在后续内容进行介绍。
在本申请的一个实施例中,当前MVP对应的帧间预测模式包含NEWMV,与当前MVP对应的运动向量通过如下过程获得:
基于当前MVP进行运动估计,得到与当前MVP对应的最优运动向量;
将最优运动向量确定为与当前MVP对应的运动向量。
如前所述,模式NEWMV、NEW_NEWMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV均包含有NEWMV,这些模式都依赖于MVP推导,即需要进行运动估计。
在本申请的一个实施例中,当前MVP对应的帧间预测模式不包含NEWMV,与当前MVP对应的运动向量通过如下过程获得:
将当前MVP确定为与当前MVP对应的运动向量。
如果帧间预测模式不包含NEWMV,则不需要进行运动估计,将当前MVP作为运动向量。
在本申请的一个实施例中,在将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比之前,所述方法还包括:
判断当前帧间预测模式是否满足预定条件,其中,预定条件是根据GLOBALMV和GLOBAL_GLOBALMV的帧间预测模式而生成的;
在当前帧间预测模式满足预定条件的情况下,执行将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比的过程。
具体来说,如果当前帧间预测模式非GLOBALMV或者非GLOBAL_GLOBALMV,则满足预定条件;
其他,当前帧间预测模式为GLOBALMV或者GLOBAL_GLOBALMV,且当前模式warpmotion type非rotation,非zoom,非affine,则满足预定条件。
本申请实施例中,为本申请的方案的使用设置了预定条件,考虑到了特殊的帧间预测模式,从而使视频编码的过程更为准确。
在步骤620中,若根据比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对当前MVP的第二相关信息的获取,并依次获取当前MVP之后的其它MVP的第一相关信息和第二相关信息。
当前MVP的相关信息包括第一相关信息和第二相关信息,如果提前退出对当前MVP的相关信息的获取,说明在获取到当前MVP的全部相关信息之前就退出,具体来说,此时只获取了第一相关信息,未获取第二相关信息。
对于一个MVP而言,该MVP对应的第二相关信息是在获取了该MVP对应的第一相关信息之后再获取的该MVP对应的其他相关信息。
具体地,在图5实施例中,BestMv下插值方式择优和运动模式择优的过程都能够获取第二相关信息,但这些过程计算复杂度高,比如运动模式择优需要对残差信号做变换、量化、逆量化、逆变换,并进行完整率失真代价的计算。因此,这些过程是导致视频编码效率较低、机器性能要求高的重要原因之一。在步骤620中通过跳过对当前MVP的第二相关信息的获取,就能够大大提升视频编码效率。
对于当前MVP之后的其它MVP,也要像当前MVP一样,根据比较结果确定是否跳过对第二相关信息的获取。
在本申请的一个实施例中,所述视频编码方法还包括:
若根据比较结果确定当前MVP的运动向量与已收集的MVP的运动向量相同、当前MVP的参考帧与已收集的MVP的参考帧相同,且当前MVP的部分比特数大于已收集的MVP的部分比特数,则确定需要提前退出对当前MVP的相关信息的获取。
对于当前帧间预测模式为单参考帧模式的情形,将当前MVP的运动向量、参考帧、部分比特数和与单参考帧模式对应的已收集mvp信息进行对比。
MVP的择优是通过计算率失真代价进行的,率失真代价越低,对应的MVP越可能被最终选中,而率失真代价是由失真以及MVP消耗的所有比特数之和决定的。如前所述,如果两个MVP的运动向量及参考帧分别相同,那么两个MVP对应的失真、插值方式消耗比特数、残差系数消耗比特数、变换类型消耗比特数、TU分割类型消耗比特数也相同,因而决定MVP的择优结果的是两个MVP在插值前消耗的比特数,即部分比特数。因此,在当前MVP的运动向量及参考帧分别与已收集的MVP的运动向量及参考帧相同的情况下,若当前MVP的部分比特数大于已收集的MVP的部分比特数,说明当前MVP一定不是最优MVP,在这种情况下,便退出对当前MVP的相关信息的获取,即跳过对当前MVP的第二相关信息的获取。
在本申请的一个实施例中,所述视频编码方法还包括:
若根据比较结果确定当前MVP的前向参考帧与已收集的MVP的前向参考帧相同、当前MVP的后向参考帧与已收集的MVP的后向参考帧相同、当前MVP的前向参考帧对应的运动向量与已收集的MVP的前向参考帧对应的运动向量相同、当前MVP的后向参考帧对应的运动向量与已收集的MVP的后向参考帧对应的运动向量相同,且当前MVP的部分比特数大于已收集的MVP的部分比特数,则确定需要提前退出对当前MVP的相关信息的获取。
对于当前帧间预测模式为组合参考帧模式的情形,由于编码方式的不同,除了需要比对当前MVP和已收集的MVP的部分比特数之外,还需要分别比对两者的前向参考帧、后向参考帧、前向参考帧对应的运动向量以及后向参考帧对应的运动向量。
图8示出了根据本申请的一个实施例的图6中步骤610之后步骤的流程图。请参见图8,在将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比之后,还包括以下步骤:
在步骤810中,若根据比较结果确定不提前退出对当前MVP的相关信息的获取,则继续收集当前MVP的第一相关信息。
在根据比较结果确定不提前退出对当前MVP的相关信息的获取的情况下,对当前MVP的第一相关信息进行收集,使当前MVP的第一相关信息能够在后续用于与其他MVP的第一相关信息进行比较,步骤610中已收集的MVP的第一相关信息便是通过这样的方式进行收集的。
在本申请的一个实施例中,所述若根据比较结果确定不提前退出对当前MVP的相关信息的获取,则继续收集当前MVP的第一相关信息,包括:
若根据比较结果确定不提前退出对当前MVP的相关信息的获取且当前帧间预测模式满足预定条件,则继续收集当前MVP的第一相关信息。
此处的预定条件与前面实施例中所说的预定条件是一致的,即如果当前帧间预测模式非GLOBALMV或者非GLOBAL_GLOBALMV,则满足预定条件;其他,若当前帧间预测模式为GLOBALMV或者GLOBAL_GLOBALMV,且当前模式warp motion type非rotation,非zoom,非affine,则满足预定条件。
需要指出的是,虽然上述实施例中,在收集当前MVP的第一相关信息之前进行了条件的判断,只有满足对应的条件时,才收集当前MVP的第一相关信息。但易于理解,在不进行条件判断的情况下,也可以对当前MVP的第一相关信息进行收集,只不过此时需要对更多的第一相关信息进行判断。因此,采用上述实施例的好处还包括:减少收集和用于对比的第一相关信息的数量,进而节约计算开销,也可以提高视频编码效率。
在步骤820中,在收集当前MVP的第一相关信息之后,获取当前MVP的第二相关信息。
若根据比较结果确定不提前退出对当前MVP的相关信息的获取,说明当前MVP有可能被选择为最优MVP,因而需要继续获取当前MVP的第二相关信息,以为最优MVP的选择提供数据支撑。
在本申请的一个实施例中,所述获取当前MVP的第二相关信息,包括:
如果当前帧间预测模式为组合参考帧模式,则获取当前MVP对应的最优组合模式类型、最优插值方式和最优运动模式。
如前所述,若当前预测模式是否为组合参考帧模式,则需要从组合参考帧模式的4种类型中选出一种最优的,作为最优组合模式类型,最优插值方式可以通过图5实施例中BestMv下插值方式择优的步骤获得,最优运动模式可以通过图5实施例中运动模式择优的步骤获得。
在本申请的一个实施例中,所述获取当前MVP的第二相关信息,包括:
如果当前帧间预测模式为单参考帧模式,则获取当前MVP对应的最优插值方式和最优运动模式。
值得一提的是,第二相关信息除了可以包括最优组合模式类型、最优插值方式和最优运动模式之外,还可以包括通过获取最优插值方式、最优运动模式而计算得到的信息,还可以包括失真、残差系数消耗比特数、变换类型消耗比特数、TU分割类型消耗比特数、插值方式消耗比特数、运动模式消耗比特数等。
在本申请的一个实施例中,在获取当前MVP的第二相关信息之后,所述方法还包括:
如果已获得与当前帧间预测模式的所有MVP对应的相关信息,则获取其它帧间预测模式所对应的MVP作为当前MVP,并继续获取与当前MVP对应的相关信息。
视频编码需要进行预测模式以及MVP的择优,因此,对各帧间预测模式都要获取MVP以及与MVP对应的相关信息。
下面,请继续参考图6,在步骤630中,根据获取到的当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择当前编码块对应的最优MVP。
图7示出了根据本申请的一个实施例的选择当前编码块对应的最优MVP的流程图。请参照图7所示,选择当前编码块对应的最优MVP的过程可以包括以下步骤:
步骤710,根据与当前编码块对应的各MVP的相关信息,确定与帧间预测模式和参考帧组成的各个组合所对应的最优MVP,作为候选MVP。
帧间预测模式和参考帧的每一组合都对应一个最优MVP。
比如,当前帧间预测模式和当前参考帧的组合对应若干MVP,在若干MVP中选择出最优MVP。
最优MVP的选择可以通过计算各MVP对应的率失真代价进行。
步骤720,根据各候选MVP的相关信息,确定与各帧间预测模式对应的最优参考帧。
根据与一个帧间预测模式和不同参考帧对应的候选MVP的相关信息,确定与该帧间预测模式对应的最优参考帧。
最优参考帧的选择可以通过计算各参考帧的率失真代价进行,参考帧的率失真代价需要根据对应的候选MVP的相关信息计算得到,比如参考帧对应的候选MVP的相关信息可以包括参考帧消耗比特数等。
步骤730,根据各最优参考帧对应的候选MVP的相关信息,确定当前编码块对应的最优帧间预测模式。
最优帧间预测模式的选择可以通过计算各帧间预测模式的率失真代价进行,帧间预测模式的率失真代价需要根据最优参考帧对应的候选MVP的相关信息计算得到。
步骤740,根据最优帧间预测模式对应的候选MVP确定当前编码块对应的最优MVP。
需要指出的是,图7仅为本申请的一个实施例。最优MVP的选择可以不仅包括图7所示实施例中示出的步骤,还可以包括其他过程,比如还可以包括CU分割类型的择优以及帧内预测模式和帧间预测模式的择优等。最终选择出的当前编码块对应的最优MVP是与最优的运动向量、参考帧及预测模式的组合对应的MVP。
下面,请继续参考图6,在步骤640中,基于最优MVP对当前编码块进行编码处理。
对当前编码块进行编码处理是基于最优MVP和与最优MVP对应的预测模式、运动向量、参考帧、插值方式、运动模式等相关信息进行的,这样能够实现较好的压缩性能,降低视频中的信息冗余。
下面,结合图9进一步介绍本申请实施例的方案。图9示出了根据本申请的一个实施例的与任一预测模式和参考帧的组合对应的最优结果抉择过程的流程示意图。请参见图9,具体包括以下步骤:
在步骤310中,N=0,获取mvp个数ref_set。
其中,N用于计数,ref_set为与当前帧间预测模式及当前参考帧对应的mvp的数量。
在步骤320中,判断N<ref_set是否成立,如果是,则执行步骤330,否则执行步骤340。
在步骤330中,获取mvp,N+1。
即获取mvp作为当前mvp,并对N加1。
在步骤340中,针对下一个预测模式进行运动向量预测值对应的相关信息的获取。
在步骤350中,判断当前预测模式是否包含有NEWMV,如果是,则先执行步骤360,再执行步骤370;否则,直接执行步骤370。
模式NEWMV、NEW_NEWMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV均包含有NEWMV。比如NEW_NEWMV表示双向均包含NEWMV,NEAREST_NEWMV表示后向包含NEWMV,其他以此类推。
在步骤360中,进行运动估计。
如果当前预测模式包含有NEWMV,则需要进行运动估计,以搜寻得到当前mvp对应的最优运动向量。
运动估计方法有很多种,分为整像素运动估计和分像素运动估计两个部分。比如,整像素运动估计可以采用TZ搜索、nstep、菱形、六边形等方式,分像素可以采用菱形、全搜索等方式。
图10示出了根据本申请的一个实施例的菱形搜索模板的示意图;图11示出了根据本申请的一个实施例的两点搜索的示意图;图12示出了根据本申请的一个实施例的以光栅扫描方式搜索位置点的局部示意图。
请参见图10-图12,TZ搜索的一个具体过程可以是这样的:
(1)确定搜索起始点。
采用当前MVP作为搜索起始点,同时还有(0,0)位置,比较二者对应运动向量下的率失真代价,将对应的代价小的运动向量作为最终的搜索起始点。
(2)以步长1开始,按照图10所示的菱形搜索模板,在搜索窗范围内进行搜索,其中步长以2的整数次幂递增,选出率失真代价最小的点作为本步骤的搜索结果。
(3)若步骤(2)中得到的最优点对应的步长为1,则开始2点搜索,按照图11补充该点周围尚未搜索的点,即:在1位置补做AC两点,在3位置补做BD两点,在6位置补做EG两点,在8位置补做FH两点。而其他位置,如2、4、5、7的左右上下四个正方向的位置点均计算过,不需要再补点。
(4)若步骤(3)中得到的最优点对应的步长大于5,则开始以光栅扫描的方式,针对隔5行5列的所有点进行搜索,如图12所示。
(5)以步骤(4)中得到的最优点为新的搜索起始点,重复步骤(2)到(3),每次以新的最优点为搜索起始点,直到起始点和搜索得到最优点不再发生变化为止。此时得到的MV记为整像素运动估计的最优运动向量。
菱形搜索算法也被称为钻石搜索,有大菱形和小菱形两种不同的匹配模板。
图13示出了根据本申请的一个实施例的大菱形搜索模板的示意图;图14示出了根据本申请的一个实施例的小菱形搜索模板的示意图。
请参见图13和图14,可以看到,大菱形有9个搜索点,而小菱形只有5个搜索点。菱形搜索首先使用步长较大的大菱形搜索模板进行粗搜索,然后使用小菱形搜索模板进行细搜索,搜索步骤如下:
第一步:首先以搜索窗口的中心点为中心,以大菱形搜索模板为模板,计算中心点和其周围八个点共九个点的率失真代价值,比较得到率失真代价值最小的点;
第二步:如果搜索的中心点就是率失真代价值最小的点,则跳到第三步使用小菱形搜索模板,否则依旧回到第一步的搜索;
第三步:利用搜索点数只有5个点的小菱形搜索模板,计算这5个点的率失真代价值,取率失真代价值最小的点为最佳匹配点,即最优运动向量。
在步骤360中具体采用的运动估计可以是任意的,本申请实施例对此不作任何限制。
在本申请的一个实施例中,所述方法还包括:
根据编码速度档位指令,确定对应的运动估计方法;
按照确定出的运动估计方法进行运动估计。
编码速度档位指令可以是用户实时提交的指令,也可以是在程序中预先设置的指令。
本申请实施例中,实现了根据编码速度档位指令自由调节编码速度,提高了用户体验。
比如,编码速度档位指令中可以包含慢速档和快速档,在慢速档编码时使用tz搜索或者nstep方法,在快速档编码时使用菱形搜索或者六边形搜索。
在本申请的一个实施例中,在根据编码速度档位指令,确定对应的运动估计方法之前,所述方法还包括:
获取当前设备的CPU利用率或设备型号;
根据获取的CPU利用率或者设备型号确定对应的编码速度档位,并根据编码速度档位对应生成编码速度档位指令。
比如,当前设备的CPU利用率过高或者根据设备型号判断当前设备编码性能较差时,可以设置较低的编码速度档位,以减轻当前设备的负担。
本申请实施例中,编码速度档位是根据当前设备的CPU利用率或设备型号,因此,可以使编码速度档位可以与当前设备的状态相匹配。
请继续参照图9,在步骤370中,判断提前跳出的条件是否成立,如果是,则提前跳出,并重新执行步骤320,否则执行步骤380。
本步骤中单参考帧模式和组合参考帧模式对应的判断条件不同,需要分开处理,具体实施过程如下:
Step1:进入条件确定。
如果当前模式非GLOBALMV或者非GLOBAL_GLOBALMV,则条件成立;
其他情况,若当前模式为GLOBALMV或者GLOBAL_GLOBALMV,且当前模式warpmotion type非rotation,非zoom,非affine,则条件成立。
否则,条件不成立。
如果Step1中条件成立,则执行Step2。
Step2:确定当前MVP的比对信息。
mv[0]表示当前MVP的前向参考帧对应的运动向量,mv[1]表示当前MVP的后向参考帧对应的运动向量,ref_frame[0]表示当前MVP的前向参考帧,ref_frame[1]表示当前MVP的后向参考帧。
rate_mv表示当前MVP的mvd消耗比特数,如果不做运动估计,mvd消耗比特数为0;head_rate表示当前MVP的参考帧消耗比特数。
Step3:提前退出条件确定。
本步骤针对单参考帧模式和组合参考帧模式进行了区分,其中,组合参考帧模式需要比对2个参考帧和2个运动向量。具体介绍如下:
如果当前模式是单参考帧模式,则遍历单参考帧模式已收集mvp信息,将当前mvp信息与每个mvp信息比对,如果运动向量和参考帧分别相同,且当前mvp的rate值更大,则提前退出条件成立,具体如图15所示。
图15示出了根据本申请的一个实施例的单参考帧模式下提前退出条件的确定流程示意图。请参见图15,单参考帧模式下提前退出条件的确定流程包括以下步骤:
步骤1510,初始t=0,skip=0。
将t和skip初始化为0。
步骤1520,获取当前mvp的信息。
步骤1530,t<single_mode_mvp_num。
即判断t<single_mode_mvp_num是否成立。如果是,则执行步骤1540,否则,执行步骤1550。
single_mode_mvp_num表示当前编码单元已收集单参考帧模式的mvp个数。
步骤1550,结束判断。
如果提前退出条件成立或者t的值达到single_mode_mvp_num,则结束判断。
步骤1540,mv[0].as_int==single_mode_mvp_info[t].mv.as_int&&ref_frame[0]==single_mode_mvp_info[t].ref&&rate_mv+head_rate>=single_mode_mvp_info[t].rate。
即,判断mv[0].as_int==single_mode_mvp_info[t].mv.as_int&&ref_frame[0]==single_mode_mvp_info[t].ref&&rate_mv+head_rate>=single_mode_mvp_info[t].rate是否成立。如果是,则执行步骤1560,否则执行步骤1570。
本步骤中,将当前MVP的运动向量、参考帧及部分比特数与已收集的MVP的相应信息进行了比对。
步骤1560,skip=1。
将skip赋值为1。skip=1代表提前退出条件成立。在执行完步骤1560之后,再执行步骤1550。
步骤1570,t=t+1。
将t自增1。
在步骤1570之后,重新执行步骤1530。
如果当前模式是组合参考帧模式,则遍历组合模式已收集mvp信息,当前mvp信息与每个mvp信息比对,如果2个运动向量和2个参考帧均分别相同,且当前mvp的rate值更大,则提前退出条件成立,具体如图16所示。
图16示出了根据本申请的一个实施例的组合参考帧模式下提前退出条件的确定流程示意图。请参见图16,组合参考帧模式下提前退出条件的确定流程包括以下步骤:
步骤1610,初始t=0,skip=0。
将t和skip初始化为0。
步骤1620,获取当前mvp的信息。
步骤1630,t<comp_mode_mvp_num。
即判断t<comp_mode_mvp_num是否成立。如果是,则执行步骤1640,否则,执行步骤1650。
comp_mode_mvp_num表示当前编码单元已收集组合参考帧模式的mvp个数。
步骤1650,结束判断。
如果提前退出条件成立或者t的值达到comp_mode_mvp_num,则结束判断。
步骤1640,mv[0].as_int==comp_mode_mvp_info[t].mv[0].as_int&&ref_frame[0]==comp_mode_mvp_info[t].ref[0]&&mv[1].as_int==comp_mode_mvp_info[t].mv[1].as_int&&ref_frame[1]==comp_mode_mvp_info[t].ref[1]&&rate_mv+head_rate>comp_mode_mvp_info[t].rate。
即,判断mv[0].as_int==comp_mode_mvp_info[t].mv[0].as_int&&ref_frame[0]==comp_mode_mvp_info[t].ref[0]&&mv[1].as_int==comp_mode_mvp_info[t].mv[1].as_int&&ref_frame[1]==comp_mode_mvp_info[t].ref[1]&&rate_mv+head_rate>comp_mode_mvp_info[t].rate是否成立。如果是,则执行步骤1660,否则执行步骤1670。
本步骤中,将当前MVP的前向参考帧、前向参考帧对应的运动向量、后向参考帧、后向参考帧对应的运动向量及部分比特数与已收集的MVP的相应信息进行了比对。
步骤1660,skip=1。
将skip赋值为1。skip=1代表提前退出条件成立。在执行完步骤1660之后,再执行步骤1650。
步骤1670,t=t+1。
将t自增1。
在步骤1670之后,重新执行步骤1630。
需要指出的是,虽然图15和图16中部分比特数包括mvd消耗比特数和当前MVP的参考帧消耗比特数,但易于理解的是,部分比特数还可以包括MVP索引消耗比特数。
Step4:提前退出。
如果图15和图16中skip等于1,则提前退出。
对于单参考帧模式,提前退出会跳过插值方式择优和运动模式择优;
对于组合参考帧模式,提前退出会跳过组合模式类型择优、插值方式择优和运动模式择优。
请继续参照图9,在步骤380中,信息收集。
本步骤即收集当前MVP的第一相关信息,具体用于存放当前编码单元内每个MVP对应的运动向量、参考帧及比特数。
一个编码单元内,单参考帧模式的MVP最多有56个(7x3+7x3+7+7),组合参考帧模式的MVP最多有320个,二者要分开存放。
具体而言,对于运动向量:如果当前模式包含了NEWMV,需要做运动估计,存放的运动向量为运动估计后最优运动向量,如果当前模式不包含NEWMV,存放的运动向量为当前MVP。
对于参考帧:如果当前模式为单参考帧模式,只需存放前向参考帧,如果当前模式是组合参考帧模式,则存放前向后向两个参考帧。
对于比特数:为插值前消耗的所有比特数,包含参考帧消耗比特数,MVP索引消耗比特数,mvd消耗比特数。如果不做运动估计,mvd消耗比特数为0。
本步骤的具体实施过程如下:
Step1:定义用来存放数据的数据结构。
定义结构体MV,用来存在运动向量的x方向及y方向坐标。
其中,int16_t定义x,y的数据类型为16位无符号短整型,uint32_t定义as_int的数据类型为32位无符号整型。
定义结构体single_mode_mv_ref,用来存放单参考帧模式的运动向量、参考帧及比特数的数据结构。
其中,int用于定义ref,rate的数据类型为整型。
定义结构体comp_mode_mv_ref,用来存放组合参考帧模式的运动向量、参考帧及比特数的数据结构。
其中,int用于定义ref[2],rate的数据类型为整型。
定义数组,用于存放数据和记录已收集数据的个数。
int single_mode_mvp_num;
single_mode_mv_ref single_mode_mvp_info[56];
int comp_mode_mvp_num;
comp_mode_mv_ref comp_mode_mvp_info[320];
其中,int用于定义single_mode_mvp_num和comp_mode_mvp_num的数据类型为整型,single_mode_mvp_num表示当前编码单元已收集单参考帧模式的MVP个数;single_mode_mvp_info用于存放单参考帧模式的运动向量、参考帧及比特数,单参考模式对应的MVP最多56个,即nearestmv(7)+nearmv(7*3)+globalmv(7)+newmv(7*3);comp_mode_mvp_num表示当前编码单元已收集组合参考帧模式的MVP个数;comp_mode_mvp_info用于存放组合参考帧模式的运动向量、参考帧及比特数,MVP最多320个,具体为:
nearest_nearestmv(16)+global_globalmv(16)+near_nearmv(16*3)+new_newmv(16*3)+nearest_newmv(16*3)+new_nearestmv(16*3)+near_newmv(16*3)+new_nearmv(16*3)。
初始化计数从0开始:
single_mode_mvp_num=0;
comp_mode_mvp_num=0。
Step2:收集信息条件确认。
如果当前MVP未提前退出,且模式非GLOBALMV或者非GLOBAL_GLOBALMV,则条件成立;
其他,如果当前MVP未提前退出,且模式为GLOBALMV或者GLOBAL_GLOBALMV,且当前模式warp motion type非rotation,非zoom,非affine,则条件成立;
否则,条件不成立。
Step3:如果条件成立,则保存数据。
如果是单参考帧模式,则通过如下方式保存数据:
single_mode_mvp_info[single_mode_mvp_num].mv.as_int=mv[0].as_int;
single_mode_mvp_info[single_mode_mvp_num].ref=ref_frame[0];
single_mode_mvp_info[single_mode_mvp_num].rate=head_rate+rate_mv;
single_mode_mvp_num++;
否则,即如果是组合参考帧模式,则通过如下方式保存数据:
comp_mode_mvp_info[comp_mode_mvp_num].mv[0].as_int=mv[0].as_int;
comp_mode_mvp_info[comp_mode_mvp_num].mv[1].as_int=mv[1].as_int;
comp_mode_mvp_info[comp_mode_mvp_num].ref[0]=ref_frame[0];
comp_mode_mvp_info[comp_mode_mvp_num].ref[1]=ref_frame[1];
comp_mode_mvp_info[comp_mode_mvp_num].rate=rate_mv+head_rate+1;
comp_mode_mvp_num++;
其中,single_mode_mvp_num和comp_mode_mvp_num都是从0开始计数,每添加一个新的MVP的第一相关信息,个数就增加1,因此,通过该值可以知道已经存放了多少个MVP的第一相关信息。
同前述内容类似,mv[0]表示当前MVP的前向参考帧对应的运动向量,mv[1]表示当前MVP的后向参考帧对应的运动向量,ref_frame[0]表示当前MVP的前向参考帧,ref_frame[1]表示当前MVP的后向参考帧,rate_mv表示当前MVP的mvd消耗比特数,如果不做运动估计,mvd消耗比特数为0;head_rate表示当前MVP的参考帧消耗比特数。此外,还需要收集MVP索引消耗比特数。
比特数估算与熵编码的上下文模型有关,由编码协议约定。不同的编码协议标准,可能熵编码模型不同,但都会估算出相应的比特数。
请继续参照图9,在步骤390中,判断当前预测模式是否为组合参考帧模式,如果是,则先执行步骤3100,再执行步骤3110;否则,直接执行步骤3110。
在步骤3100中,类型择优。
组合参考帧模式有4种类型,分别为AVERAGE、DISTWTD,WEDGE与DIFFWTD,本步骤即从这4种类型中选出一种最优的,作为最优组合模式类型。将2个参考帧的预测像素融合到一起,每种组合模式类型对应着一种预测像素融合方法,该部分属于AV1协议规定,不再详述。
在步骤3110中,BestMv下插值方式择优。
插值的目的是因为如果最优运动向量包含有分像素,则预测像素不能直接取到,需要先取最优运动整像素位置对应参考数据,然后根据分像素坐标来插值,最终拿到预测像素。
插值的计算过程,先进行水平方向插值,再进行竖直方向插值,AV1为分像素的插值设计了REG、SMOOTH、SHARP三种插值方法,所有滤波核都是8抽头,3种插值方式区别主要是滤波核的系数不同。
因为水平和垂直可以任意组合,共得到9种插值方式,即:REG_REG、REG_SMOOTH、REG_SHARP、SMOOTH_REG、SMOOTH_SMOOTH、SMOOTH_SHARP、SHARP_REG、SHARP_SMOOTH、SHARP_SHARP。
本步骤遍历9种插值方式,并估算率失真代价,率失真代价最小值对应的插值方式即为最优插值方式,本步骤从9种方式中选出最优的一种插值方式。
在步骤3120中,运动模式择优。
在执行完步骤3120之后重新执行步骤320。
单参考帧模式和组合参考帧模式对应的运动模式不同。单参考帧模式对应着4种运动模式,分别为SIMPLE、OBMC、WARPED、SIMPLE(inter_intra);组合参考帧模式只对应着SIMPLE这1种运动模式。
最优运动模式会写入码流,告诉解码器解码时使用哪种运动模式恢复重建数据,inter_intra跟SIMPLE同为SIMPLE模式,但区别很大,解码时可以通过语法中参考帧信息知道是第一种SIMPLE模式还是inter_intra,由于使用同一个标记,因此可以节省一个bit。
4种运动模式均要做完整率失真代价,即做变换、量化、逆量化、逆变换的整个重建过程,4种运动模式的区别在于预测像素的获取方法不同,本步骤的具体过程介绍如下:
(1)获取预测像素。
对于SIMPLE模式:对预测像素进行插值后得到的预测值。
对于OBMC模式:对插值后得到的预测像素二次加工。根据相邻块mv获取相邻块的预测像素,然后按照一定规则跟当前块插值后预测值融合,得到新预测值。
对于WARPED模式:参考左边、上边、右上角3个可用位置,构造仿射变换mv,然后做小范围运动搜索。最后做插值获得预测像素。
对于SIMPLE(inter_intra)模式:对插值后得到的预测像素二次加工。先进行DC、V、H、SMOOTH 4种帧内模式的帧内预测,得到最优帧内预测像素,然后帧内帧间预测像素融合,得到新预测值。
(2)完整率失真计算。
根据输入像素和预测像素,得到残差像素,然后进行变换和TU深度划分,得到失真、残差消耗比特数、变换类型消耗比特数、TU分割类型消耗比特数,再结合之前获得的参考帧消耗比特数、MVP索引消耗比特数、mvd消耗比特数、插值方式消耗比特数、运动模式消耗比特数等,得到率失真代价,具体通过如下公式进行计算:
rdcost=dist+rate×λ,
其中,dist表示失真,rate为当前MVP消耗的所有比特数之和,λ为拉格朗日常数。
通过执行图9实施例所示步骤,即可得到当前预测模式及当前参考帧对应的最优MVP索引、最优运动向量、最优插值方式、最优运动模式、最优变换类型及最优TU划分类型;然后通过比较不同参考帧的率失真代价rdcost,找到最优的参考帧;进而不同模式组合之间比较,找到当前编码块的最优预测信息。
根据本申请实施例提供的视频编码方法,通过收集每个MVP对应的运动向量、参考帧信息以及消耗比特数,在进行预测时,提前判断当前MVP是否有用,进而跳过插值方式择优和运动模式择优,因此大大降低了视频编码的计算量。该方案没有增加新计算,且准确率非常高,可以加速6%以上,且压缩性能无损。因而,可以显著提高视频编码的效率,整体上节约了计算资源的开销,降低对机器的性能要求,使性能较低的机器也能快速进行视频编码,因而还拓展了编码协议的应用范围。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的实体风险识别方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的视频编码方法的实施例。
图17示出了根据本申请的一个实施例的视频编码装置的框图。
参照图17所示,根据本申请的一个实施例的视频编码装置1700,包括:比较单元1710、跳过单元1720、选择单元1730和编码单元1740。
其中,比较单元1710用于将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果,所述当前运动向量预测值和所述已收集的MVP是与当前编码块对应的MVP;跳过单元1720用于若根据所述比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对所述当前MVP的第二相关信息的获取,并依次获取所述当前MVP之后的其它MVP的第一相关信息和第二相关信息;选择单元1730用于根据获取到的所述当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP;编码单元1740用于基于所述最优MVP对所述当前编码块进行编码处理。
在本申请的一些实施例中,基于前述方案,选择单元1730还用于:根据与当前编码块对应的各MVP的相关信息,确定与帧间预测模式和参考帧组成的各个组合所对应的最优MVP,作为候选MVP;根据各所述候选MVP的相关信息,确定与各帧间预测模式对应的最优参考帧;根据各所述最优参考帧对应的候选MVP的相关信息,确定所述当前编码块对应的最优帧间预测模式;根据所述最优帧间预测模式对应的候选MVP确定所述当前编码块对应的最优MVP。
在本申请的一些实施例中,基于前述方案,跳过单元1720还用于:若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取,则继续收集所述当前MVP的第一相关信息;在收集所述当前MVP的第一相关信息之后,获取所述当前MVP的第二相关信息。
在本申请的一些实施例中,基于前述方案,跳过单元1720配置为:如果当前帧间预测模式为组合参考帧模式,则获取所述当前MVP对应的最优组合模式类型、最优插值方式和最优运动模式。
在本申请的一些实施例中,基于前述方案,跳过单元1720还用于:如果已获得与当前帧间预测模式的所有MVP对应的相关信息,则获取其它帧间预测模式所对应的MVP作为当前MVP,并继续获取与所述当前MVP对应的相关信息。
在本申请的一些实施例中,基于前述方案,所述当前运动向量预测值MVP对应的第一相关信息包括:与所述当前MVP对应的运动向量、与所述当前MVP对应的当前参考帧以及与所述当前MVP对应的部分比特数。
在本申请的一些实施例中,基于前述方案,所述当前MVP对应的帧间预测模式包含NEWMV,跳过单元1720还用于:基于所述当前MVP进行运动估计,得到与所述当前MVP对应的最优运动向量;将所述最优运动向量确定为与所述当前MVP对应的运动向量。
在本申请的一些实施例中,基于前述方案,所述当前MVP对应的帧间预测模式不包含NEWMV,跳过单元1720还用于:将所述当前MVP确定为与所述当前MVP对应的运动向量。
在本申请的一些实施例中,基于前述方案,跳过单元1720配置为:若根据所述比较结果确定所述当前MVP的运动向量与已收集的MVP的运动向量相同、所述当前MVP的参考帧与所述已收集的MVP的参考帧相同,且所述当前MVP的部分比特数大于所述已收集的MVP的部分比特数,则确定需要提前退出对所述当前MVP的相关信息的获取。
在本申请的一些实施例中,基于前述方案,跳过单元1720配置为:若根据所述比较结果确定所述当前MVP的前向参考帧与已收集的MVP的前向参考帧相同、所述当前MVP的后向参考帧与所述已收集的MVP的后向参考帧相同、所述当前MVP的前向参考帧对应的运动向量与所述已收集的MVP的前向参考帧对应的运动向量相同、所述当前MVP的后向参考帧对应的运动向量与所述已收集的MVP的后向参考帧对应的运动向量相同,且所述当前MVP的部分比特数大于所述已收集的MVP的部分比特数,则确定需要提前退出对所述当前MVP的相关信息的获取。
在本申请的一些实施例中,基于前述方案,比较单元1710还用于:判断当前帧间预测模式是否满足预定条件,其中,所述预定条件是根据GLOBALMV和GLOBAL_GLOBALMV的帧间预测模式而生成的;在当前帧间预测模式满足预定条件的情况下,执行将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比的过程。
在本申请的一些实施例中,基于前述方案,跳过单元1720配置为:若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取且当前帧间预测模式满足所述预定条件,则继续收集所述当前MVP的第一相关信息。
图18示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图18示出的电子设备的计算机系统1800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图18所示,计算机系统1800包括中央处理单元(Central Processing Unit,CPU)1801,其可以根据存储在只读存储器(Read-Only Memory,ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(Random Access Memory,RAM)1803中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1803中,还存储有系统操作所需的各种程序和数据。CPU 1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(Input/Output,I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种视频编码方法,其特征在于,包括:
将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果,所述当前运动向量预测值和所述已收集的MVP是与当前编码块对应的MVP;
若根据所述比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对所述当前MVP的第二相关信息的获取,并依次获取所述当前MVP之后的其它MVP的第一相关信息和第二相关信息;
根据获取到的所述当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP;
基于所述最优MVP对所述当前编码块进行编码处理。
2.根据权利要求1所述的视频编码方法,其特征在于,所述根据获取到的所述当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP,包括:
根据与当前编码块对应的各MVP的相关信息,确定与帧间预测模式和参考帧组成的各个组合所对应的最优MVP,作为候选MVP;
根据各所述候选MVP的相关信息,确定与各帧间预测模式对应的最优参考帧;
根据各所述最优参考帧对应的候选MVP的相关信息,确定所述当前编码块对应的最优帧间预测模式;
根据所述最优帧间预测模式对应的候选MVP确定所述当前编码块对应的最优MVP。
3.根据权利要求2所述的视频编码方法,其特征在于,在将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比之后,所述方法还包括:
若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取,则继续收集所述当前MVP的第一相关信息;
在收集所述当前MVP的第一相关信息之后,获取所述当前MVP的第二相关信息。
4.根据权利要求3所述的视频编码方法,其特征在于,所述获取所述当前MVP的第二相关信息,包括:
如果当前帧间预测模式为组合参考帧模式,则获取所述当前MVP对应的最优组合模式类型、最优插值方式和最优运动模式。
5.根据权利要求3所述的视频编码方法,其特征在于,在获取所述当前MVP的第二相关信息之后,所述方法还包括:
如果已获得与当前帧间预测模式的所有MVP对应的相关信息,则获取其它帧间预测模式所对应的MVP作为当前MVP,并继续获取与所述当前MVP对应的相关信息。
6.根据权利要求1所述的视频编码方法,其特征在于,所述当前运动向量预测值MVP对应的第一相关信息包括:与所述当前MVP对应的运动向量、与所述当前MVP对应的当前参考帧以及与所述当前MVP对应的部分比特数。
7.根据权利要求6所述的视频编码方法,其特征在于,所述当前MVP对应的帧间预测模式包含NEWMV,所述与所述当前MVP对应的运动向量通过如下过程获得:
基于所述当前MVP进行运动估计,得到与所述当前MVP对应的最优运动向量;
将所述最优运动向量确定为与所述当前MVP对应的运动向量。
8.根据权利要求6所述的视频编码方法,其特征在于,所述当前MVP对应的帧间预测模式不包含NEWMV,所述与所述当前MVP对应的运动向量通过如下过程获得:
将所述当前MVP确定为与所述当前MVP对应的运动向量。
9.根据权利要求1所述的视频编码方法,其特征在于,所述视频编码方法还包括:
若根据所述比较结果确定所述当前MVP的运动向量与已收集的MVP的运动向量相同、所述当前MVP的参考帧与所述已收集的MVP的参考帧相同,且所述当前MVP的部分比特数大于所述已收集的MVP的部分比特数,则确定需要提前退出对所述当前MVP的相关信息的获取。
10.根据权利要求1所述的视频编码方法,其特征在于,所述视频编码方法还包括:
若根据所述比较结果确定所述当前MVP的前向参考帧与已收集的MVP的前向参考帧相同、所述当前MVP的后向参考帧与所述已收集的MVP的后向参考帧相同、所述当前MVP的前向参考帧对应的运动向量与所述已收集的MVP的前向参考帧对应的运动向量相同、所述当前MVP的后向参考帧对应的运动向量与所述已收集的MVP的后向参考帧对应的运动向量相同,且所述当前MVP的部分比特数大于所述已收集的MVP的部分比特数,则确定需要提前退出对所述当前MVP的相关信息的获取。
11.根据权利要求3所述的视频编码方法,其特征在于,在将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比之前,所述方法还包括:
判断当前帧间预测模式是否满足预定条件,其中,所述预定条件是根据GLOBALMV和GLOBAL_GLOBALMV的帧间预测模式而生成的;
在当前帧间预测模式满足预定条件的情况下,执行将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比的过程。
12.根据权利要求11所述的视频编码方法,其特征在于,所述若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取,则继续收集所述当前MVP的第一相关信息,包括:
若根据所述比较结果确定不提前退出对所述当前MVP的相关信息的获取且当前帧间预测模式满足所述预定条件,则继续收集所述当前MVP的第一相关信息。
13.一种视频编码装置,其特征在于,包括:
比较单元,用于将获取到的当前运动向量预测值MVP的第一相关信息和已收集的MVP的第一相关信息进行对比,得到比较结果,所述当前运动向量预测值和所述已收集的MVP是与当前编码块对应的MVP;
跳过单元,用于若根据所述比较结果确定能够提前退出对当前MVP的相关信息的获取,则跳过对所述当前MVP的第二相关信息的获取,并依次获取所述当前MVP之后的其它MVP的第一相关信息和第二相关信息;
选择单元,用于根据获取到的所述当前编码块对应的多个MVP的第一相关信息和第二相关信息,选择所述当前编码块对应的最优MVP;
编码单元,用于基于所述最优MVP对所述当前编码块进行编码处理。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的视频编码方法。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至12中任一项所述的视频编码方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021104907766 | 2021-05-06 | ||
CN202110490776 | 2021-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115314716A true CN115314716A (zh) | 2022-11-08 |
Family
ID=83853496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111608906.8A Pending CN115314716A (zh) | 2021-05-06 | 2021-12-24 | 视频编码方法、装置、计算机可读介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314716A (zh) |
-
2021
- 2021-12-24 CN CN202111608906.8A patent/CN115314716A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | An overview of coding tools in AV1: the first video codec from the alliance for open media | |
CN111630859B (zh) | 根据图像编码系统中的帧间预测进行图像解码的方法和装置 | |
US20130022116A1 (en) | Camera tap transcoder architecture with feed forward encode data | |
US10506249B2 (en) | Segmentation-based parameterized motion models | |
US11115678B2 (en) | Diversified motion using multiple global motion models | |
CN112235582B (zh) | 一种视频数据处理方法、装置、计算机设备及存储介质 | |
US20170180745A1 (en) | Prediction method and Electronic Apparatus of encoding mode of variable resolution | |
CN113259671B (zh) | 视频编解码中的环路滤波方法、装置、设备及存储介质 | |
CN108810549B (zh) | 一种面向低功耗的流媒体播放方法 | |
JP2019118101A (ja) | ビデオコーディング方法及びその画像処理装置 | |
CN111836046A (zh) | 视频编码方法及装置、电子设备和计算机可读存储介质 | |
CN110944211B (zh) | 用于帧内预测的插值滤波方法、装置、介质及电子设备 | |
CN107534765B (zh) | 视频编码系统和方法中的运动矢量选择和预测 | |
JP2021527362A (ja) | イントラ予測のための方法及び装置 | |
CN115314716A (zh) | 视频编码方法、装置、计算机可读介质及电子设备 | |
KR20230081711A (ko) | 비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩 | |
CN115550652A (zh) | 基于上下文的图像编解码 | |
CN113824960B (zh) | 视频编码方法、装置、计算机可读介质及电子设备 | |
Kim et al. | Exploiting pseudo-quadtree structure for accelerating HEVC spatial resolution downscaling transcoder | |
SHEKHAR et al. | Signal transmission optimization moving-vector classification Mpeg standard video coding | |
CN115767103A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN115733988A (zh) | 一种视频数据处理方法、装置、计算机设备以及存储介质 | |
JP2024510433A (ja) | ビデオ圧縮のための時間的構造ベースの条件付き畳み込みニューラルネットワーク | |
WO2023034640A1 (en) | Candidate derivation for affine merge mode in video coding | |
Yu et al. | Efficient multiple-reference temporal error concealment algorithm based on H. 264/AVC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40075005 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |