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

视频的编解码处理方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:53:33


视频的编解码处理方法、装置、计算机设备和存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种视频的编解码处理方法、装置、计算机设备和存储介质。

背景技术

视频数据通常具有较大的数据量,如果直接传输原始视频数据,将占用大量的网络带宽和存储空间。而视频编解码技术可以对视频数据进行压缩和解压缩,从而实现对视频数据的有效传输和存储。随着人工智能技术的不断发展,基于神经网络的深度学习视频编解码技术已经逐步应用于视频传输领域中。

然而现有的视频编解码模型在高清视频和超高清视频的编解码中,存在视频质量下降和码率增加等问题,导致现有的视频编解码模型的编解码效果不佳。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提升视频编解码效果的视频的编解码处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种视频的编解码处理方法。所述方法包括:

从样本视频中提取出视频帧序列,所述视频帧序列包括关键帧和估计帧;所述样本视频的各视频帧的清晰度满足清晰度条件;

通过视频编解码模型的预训练关键帧网络对所述关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;

通过所述视频编解码模型的预训练估计帧网络对所述估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;

基于所述第一编码帧、所述第一重建帧、所述第二编码帧和所述第二重建帧,对所述视频编解码模型进行模型优化,得到目标视频编解码模型;

在获得目标视频时,通过所述目标视频编解码模型对所述目标视频进行编解码处理。

第二方面,本申请还提供了一种视频的编解码处理装置。所述装置包括:

视频帧提取模块,用于从样本视频中提取出视频帧序列,所述视频帧序列包括关键帧和估计帧;所述样本视频的各视频帧的清晰度满足清晰度条件;

关键帧编码模块,用于通过视频编解码模型的预训练关键帧网络对所述关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;

估计帧编码模块,用于通过所述视频编解码模型的预训练估计帧网络对所述估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;

模型优化模块,用于基于所述第一编码帧、所述第一重建帧、所述第二编码帧和所述第二重建帧,对所述视频编解码模型进行模型优化,得到目标视频编解码模型;

模型应用模块,用于在获得目标视频时,通过所述目标视频编解码模型对所述目标视频进行编解码处理。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

从样本视频中提取出视频帧序列,所述视频帧序列包括关键帧和估计帧;所述样本视频的各视频帧的清晰度满足清晰度条件;

通过视频编解码模型的预训练关键帧网络对所述关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;

通过所述视频编解码模型的预训练估计帧网络对所述估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;

基于所述第一编码帧、所述第一重建帧、所述第二编码帧和所述第二重建帧,对所述视频编解码模型进行模型优化,得到目标视频编解码模型;

在获得目标视频时,通过所述目标视频编解码模型对所述目标视频进行编解码处理。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

从样本视频中提取出视频帧序列,所述视频帧序列包括关键帧和估计帧;所述样本视频的各视频帧的清晰度满足清晰度条件;

通过视频编解码模型的预训练关键帧网络对所述关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;

通过所述视频编解码模型的预训练估计帧网络对所述估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;

基于所述第一编码帧、所述第一重建帧、所述第二编码帧和所述第二重建帧,对所述视频编解码模型进行模型优化,得到目标视频编解码模型;

在获得目标视频时,通过所述目标视频编解码模型对所述目标视频进行编解码处理。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

从样本视频中提取出视频帧序列,所述视频帧序列包括关键帧和估计帧;所述样本视频的各视频帧的清晰度满足清晰度条件;

通过视频编解码模型的预训练关键帧网络对所述关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;

通过所述视频编解码模型的预训练估计帧网络对所述估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;

基于所述第一编码帧、所述第一重建帧、所述第二编码帧和所述第二重建帧,对所述视频编解码模型进行模型优化,得到目标视频编解码模型;

在获得目标视频时,通过所述目标视频编解码模型对所述目标视频进行编解码处理。

上述视频的编解码处理方法、装置、计算机设备、存储介质和计算机程序产品,在从满足清晰度的样本视频中提取出视频帧序列之后,通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧,以及通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧,从而基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,实现对视频编解码模型的预训练关键帧网络和预训练估计帧网络的联合训练,从而使得训练得到的目标视频编解码模型,在应用于高清视频和超高清视频的编解码时,可以同时提高视频的压缩质量和压缩率,从而提高了对视频的编解码效果。

附图说明

图1为一个实施例中视频的编解码处理方法的应用环境图;

图2为一个实施例中视频的编解码处理方法的流程示意图;

图3为一个实施例中样本视频示意图;

图4为一个实施例中关键帧网络训练步骤的流程示意图;

图5为一个实施例中估计帧网络训练步骤的流程示意图;

图6为一个实施例中模型参数优化步骤的流程示意图;

图7为一个实施例中损失值确定步骤的流程示意图;

图8为一个实施例中模型测试步骤的流程示意图;

图9为一个实施例中重建评估结果的示意图;

图10为一个实施例中对目标视频编解码步骤的流程示意图;

图11为另一个实施例中视频的编解码处理方法的流程示意图;

图12为另一个实施例中视频的编解码处理方法的流程示意图;

图13为一个实施例中对视频编解码模型训练步骤的法的流程示意图;

图14为另一个实施例中对视频编解码模型训练步骤的法的流程示意图;

图15为一个实施例中视频的编解码处理装置的结构框图;

图16为另一个实施例中视频的编解码处理装置的结构框图;

图17为一个实施例中计算机设备的内部结构图;

图18为另一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的视频去噪模型的处理方法,涉及人工智能的机器学习、计算机视觉等技术,其中:

人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

计算机视觉技术(Computer Vision, CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。

本申请实施例提供的视频的编解码处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。该视频的编解码处理方法由终端102或服务器104单独执行,或者由终端102和服务器104协同执行。在一些实施例中,该视频的编解码处理方法由终端102执行,终端102从样本视频中提取出视频帧序列,视频帧序列包括关键帧和估计帧;样本视频的各视频帧的清晰度满足清晰度条件;通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,对视频编解码模型进行模型优化,得到目标视频编解码模型;在获得目标视频时,通过目标视频编解码模型对目标视频进行编解码处理。

其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

在一个实施例中,如图2所示,提供了一种视频的编解码处理方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:

S202,从样本视频中提取出视频帧序列,视频帧序列包括关键帧和估计帧。

其中,样本视频是用于对机器学习模型进行训练的视频数据,样本视频通常由多个视频帧组成,并且每个视频帧都包含有关视频内容的信息,例如颜色、形状、动作等,样本视频可以来自于各种来源,例如现实生活中的录像、模拟生成的视频、互联网上的视频等。样本视频的各视频帧的清晰度满足清晰度条件,清晰度条件是指视频帧图像的清晰度达到一定的标准或要求。

此外,本申请实施例的样本视频中的场景可以是连续场景,连续场景指的是视频中连续的、相似的场景内容,例如同一房间内的多个摄像头的拍摄内容、某一段时间内的自然风景、一个演讲者的讲台演讲内容等,连续场景可以帮助分析场景内容的变化、识别场景的转换、提取场景信息等,对于视频分析和应用具有重要意义。

可以理解的是,视频帧序列中包含多个连续的视频帧,其中关键帧是指该视频帧序列中的第一个视频帧,估计帧是指该视频帧序列中第一个视频帧之后的其他视频帧,视频帧序列可以称为GOP(Group of Pictures,即一组图像)关键帧也可以称为I帧,估计帧也可以称为P帧,在视频编解码中,通常会采用I帧和P帧相间的方式进行编码,一个GOP可以包含一个I帧和若干个P帧,其中第一个P帧是相对于I帧进行编码的,后面的P帧是相对于前一帧进行编码的,这种编码方式可以有效地减小视频的码率,同时保证视频的质量和流畅度。

具体的,终端在获取到样本视频之后,从样本视频中按照一定的时间间隔抽取出视频帧序列,并将该视频帧序列中的第1帧确定为关键帧,将视频帧序列中第1帧之外的其他视频帧确定为估计帧。

S204,通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧。

其中,视频编解码模型是基于深度学习的神经网络模型,用于对视频进行压缩、解压缩、重建等,在深度学习编解码模型中,通常采用卷积神经网络(Convolutional NeuralNetwork,CNN)或循环神经网络(Recurrent NeuralNetwork,RNN)等模型。

预训练关键帧网络是视频编解码模型的一个分支,用于对视频帧序列中的关键帧进行编解码处理,在视频编解码中,关键帧是视频序列中的重要帧,因为它们能够独立地表示视频内容,不需要依赖于其他帧,对关键帧进行高效的编解码处理能够显著提高视频压缩的效率和质量。预训练关键帧网络是采用深度学习技术对关键帧网络预先进行训练所得到的。

具体的,终端在得到视频帧序列之后,将视频帧序列中的关键帧输入视频编解码模型的预训练关键帧网络,通过预训练关键帧网络对关键帧进行编码、解码处理,从而得到关键帧对应的第一编码帧,以及第一编码帧对应的第一重建帧。

S206,通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧。

预训练估计帧网络是视频编解码模型的另一个分支,用于对视频帧序列中的非关键帧进行编解码处理,预训练估计帧网络是采用深度学习技术对估计帧网络预先进行训练所得到的。

具体的,终端在得到视频帧序列之后,将视频帧序列中的估计帧输入视频编解码模型的预训练估计帧网络,通过预训练估计帧网络对估计帧进行编码、解码处理,从而得到估计帧对应的第二编码帧,以及第二编码帧对应的第二重建帧。

S208,基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,对视频编解码模型进行模型优化,得到目标视频编解码模型。

具体的,终端在得到基于第一编码帧、第一重建帧、第二编码帧和第二重建帧之后,基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,对视频编解码模型的参数进行优化,直至达到收敛条件时停止训练,得到目标视频编解码模型。

其中,收敛是指模型的训练过程已经趋于稳定,即视频编解码模型已经学到了数据的特征,并且不再有显著的改善,收敛条件包括固定的训练轮数、固定损失函数的阈值等,当模型在达到该条件时停止训练,以避免过度拟合。

S210,在获得目标视频时,通过目标视频编解码模型对目标视频进行编解码处理。

其中,目标视频是指待进行编解码的视频,标视频可以是来自不同来源、不同场景的视频。

具体的,终端可以是发送端也可以是接收端,发送端在获得目标视频后,通过目标视频编解码模型对目标视频进行编码处理,得到编码后字节流,并将编码后字节流传输到接收端,接收端在接收到编码后字节流后,通过目标视频编解码模型对编码后字节流进行视频重建,得到重建后目标视频。

在一个实施例中,发送端通过目标视频编解码模型对目标视频进行编码处理,得到编码后字节流的过程包括以下步骤:从目标视频中提取各视频帧序列,通过目标视频编解码模型的预训练关键帧网络的编码器对各视频帧序列中的关键帧进行编码处理,得到第一编码后字节流,通过目标视频编解码模型的预训练估计帧网络的编码器对多个视频帧序列中的估计帧进行编码处理得到第二编码后字节流,将第一编码后字节流和第二编码后字节流合并为编码后字节流。

在一个实施例中,接收端通过目标视频编解码模型对编码后字节流进行视频重建,得到重建后目标视频的过程包括以下步骤:通过目标视频编解码模型的预训练关键帧网络的解码器对编码后字节流中的第一编码后字节流进行解码处理,得到重建关键帧;通过目标视频编解码模型的预训练估计帧网络的解码器对编码后字节流中的第二编码后字节流进行解码处理,得到重建估计帧,基于重建关键帧和重建估计帧生成重建后目标视频。

上述实施例中,终端在从样本视频中提取出视频帧序列之后,通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧,以及通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧,从而基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,实现对视频编解码模型的预训练关键帧网络和预训练估计帧网络的联合训练,从而使得训练得到的目标视频编解码模型,在应用于高清视频和超高清视频的编解码时,可以同时提高视频的压缩质量和压缩率,从而提高了对视频的编解码效果。

在一个实施例中,上述视频的编解码处理方法还包括获取样本视频的过程,该获取样本视频的过程具体包括以下步骤:获取满足清晰度条件的原始视频;对原始视频进行边界检测,得到原始视频中的场景边界;基于场景边界,从原始视频中提取出包含连续场景的视频片段作为样本视频。

其中,清晰度条件,清晰度条件是指原始视频的清晰度达到一定的标准或要求,例如原始视频为高清视频;边界检测是指对视频中不同场景之间的边界进行检测和定位的过程,通常用于检测和分割出连续场景的边界位置,场景边界即视频中连续场景的边界位置,也就是场景切换的位置,在视频播放过程中,当视频画面出现明显的变化和跳转时,此处即为场景边界的位置。

具体的,终端获取授权且可靠的视频网站或视频分享平台,确定视频网站或视频分享平台中满足清晰度条件的原始视频,并获取原始视频的视频链接,并通过视频下载工具基于所获取的视频链接从视频网站或视频分享平台下载满足清晰度条件的原始视频,终端在得到原始视频之后,基于预设的边界检测算法对原始视频进行边界检测,从而得到原始视频中的场景边界;终端在得到场景边界之后,基于场景边界确定每个连续场景的起始时间和结束时间,并基于起始时间和结束时间,从原始视频中提取出包含连续场景的视频片段,并从各连续场景的视频片段中提取出目标长度的子视频,将各子视频作为样本视频。其中,目标长度为预设长度,例如为10帧或30帧。

其中,所使用的下载工具可以是Internet Download Manager、Free DownloadManager等,具体可将所获取的视频链接复制粘贴到下载工具中,通过下载工具下载视频链接对应的原始视频;所采用的边界检测算法可以是帧间差分法、帧间相似度法、机器学习的方法、光流法等,帧间差分法通过比较相邻帧之间的像素差异,检测出视频中的动态物体和场景变化,从而确定场景边界;帧间相似度法通过计算相邻帧之间的相似度和差异度,确定视频中的变化点和场景边界;机器学习的方法通过使用机器学习算法,如神经网络、支持向量机等,对视频帧进行分类和分割,从而实现场景边界检测;光流法通过计算相邻帧之间的像素位移和变化,检测出视频中的物体运动和场景变化,从而确定场景边界。

在一个实施例中,终端采用场景检测工具检测原始视频中的场景边界,并得到每个场景的起始时间和结束时间,根据场景边界和场景时间信息,从原始视频中提取出包含连续场景的视频片段,作为样本视频。其中场景检测工具具体可以是Scene detect工具,Scene detect是一个基于Python的视频处理工具,主要用于检测和分割视频中的场景边界。它能够自动识别视频中的场景切换点,包括切换特效、场景改变、画面变暗等,将视频切割成连续的场景片段。

图3示出了某个视频片段的连续9帧的画面,其中,视频帧0至视频帧4为赛马场景的画面,视频帧5至视频帧8为运动场景的画面,通过Scene detect工具可以检测出,该视频片段的场景边界为视频帧4结束和视频帧5开始的时间点,通过在该时间点对该视频片段进行切割,可以得到样本视频1和样本视频2,其中,样本视频1为视频帧0至视频帧4所组成的连续场景片段,样本视频2为视频帧5至视频帧8所组成的连续场景片段。

上述实施例中,终端通过获取满足清晰度条件的原始视频,对原始视频进行边界检测,得到原始视频中的场景边界,基于场景边界,从原始视频中提取出包含连续场景的视频片段作为样本视频,从而使得样本视频在清晰度、连续性和稳定性方面的质量更高,进而在使用该样本视频训练视频编解码模型时,可以提高模型的训练效果。

在一个实施例中,终端基于场景边界,从原始视频中提取出包含连续场景的视频片段作为样本视频的过程具体包括以下步骤:基于场景边界从原始视频中提取出包含连续场景的视频片段;对视频片段进行伪影清洗处理,得到样本视频。

其中,伪影清洗处理是指通过调整视频色彩、对比度、锐度等参数,去除视频中的伪影和噪点,提高视频的质量和清晰度的过程。

具体的,终端在得到视频片段之后,从各连续场景的视频片段中提取出目标长度的子视频,并采用预设的伪影清洗算法对子视频中的各视频帧进行伪影清洗处理,得到样本视频。

其中预设的伪影清洗算法可以是Artifacts清洗,Artifacts清洗是一种视频处理技术,旨在去除视频中的伪影、噪点、失真等影响视频质量的因素,提高视频的清晰度和质量。

上述实施例中,终端基于场景边界从原始视频中提取出包含连续场景的视频片段;对视频片段进行伪影清洗处理,可以得到具有清晰度和质量保障的样本视频,避免使用低质量的视频样本对模型进行训练,从而提高视频编解码模型的准确性和鲁棒性,进而提升视频编解码效率和视觉质量。

在一个实施例中,视频编解码模型的预训练关键帧网络是对初始关键帧网络进行训练所得的,终端在训练视频编解码模型之前,还可以单独对视频编解码模型的关键帧网络进行预先训练,得到视频编解码模型的预训练关键帧网络,也即终端在通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理之前,单独对视频编解码模型的关键帧网络进行预先训练,得到视频编解码模型的预训练关键帧网络,参考图4,该对初始关键帧网络进行训练的过程具体包括以下步骤:

S402,通过初始关键帧网络对视频帧序列中的视频帧进行编解码处理,得到第三编码帧和对应的第三重建帧。

具体的,终端可以从样本视频中提取出视频帧序列,并将视频帧序列中的各个视频帧依次输入初始关键帧网络,通过初始关键帧网络的编码器对输入的视频帧进行编码处理,得到第三编码帧,并通过初始关键帧网络的解码器对第三编码帧进行重建,得到输入的视频帧对应的第三重建帧。

S404,基于第三编码帧和第三重建帧对初始关键帧网络进行参数优化,得到预训练关键帧网络。

在一个实施例中,S404具体包括以下步骤:基于第三编码帧和第三重建帧确定第一预训练损失值;基于第一预训练损失值对初始关键帧网络的参数进行优化,得到预训练关键帧网络。

其中,第一预训练损失值用于衡量视频帧的压缩码率、以及第三重建帧和原始的视频帧之间的差异的指标,用于评估初始关键帧网络对视频帧的压缩效果,进而调整初始关键帧网络的参数,使得初始关键帧网络对视频帧的压缩效果更好。

具体的,终端在得到第三编码帧和第三重建帧之后,还可以确定第三重建帧的字节流大小,并基于第三编码帧的字节流大小确定第一视频帧压缩损失值,并基于第三重建帧和原始视频帧确定第一视频帧重建损失值,然后基于第一视频帧压缩损失值和第一视频帧重建损失值确定第一预训练损失值,并基于第一预训练损失值采用反向传播算法调整初始关键帧网络的网络参数,得到调整后初始关键帧网络,并重新执行步骤S402,直至训练满足收敛条件时停止训练,得到与训练关键帧网络。

在一个实施例中,终端在得到第一视频帧压缩损失值和第一视频帧重建损失值之后,将第一视频帧压缩损失值和第一视频帧重建损失值输入以下公式所表示的损失函数中,通过下式确定第一预训练损失值:

/>

其中,

上述实施例中,终端通过初始关键帧网络对视频帧序列中的视频帧进行编解码处理,得到第三编码帧和对应的第三重建帧,基于第三编码帧和第三重建帧对初始关键帧网络进行参数优化,使得网络的参数更加准确地捕捉到视频中的关键信息,得到预训练关键帧网络,预训练关键帧网络可以作为后续任务的基础模型,加速后续任务的训练过程并提高模型性能。

在一个实施例中,视频编解码模型的预训练估计帧网络是对初始估计帧网络进行训练所得的;终端在训练视频编解码模型之前,还可以单独对视频编解码模型的估计帧网络进行预先训练,得到视频编解码模型的预训练估计帧网络,也即终端在通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理之前,单独对视频编解码模型的估计帧网络进行预先训练,得到视频编解码模型的预训练估计帧网络,参考图5,该对初始估计帧网络进行训练的过程具体包括以下步骤:

S502,通过初始估计帧网络对视频帧序列进行编解码处理,得到第四编码帧和对应的第四重建帧。

其中,具体的,终端可以从样本视频中提取出视频帧序列,并将视频帧序列中的各个视频帧依次输入初始估计帧网络,通过初始估计帧网络的编码器对输入的视频帧进行编码处理,得到第四编码帧,并通过初始估计帧网络的解码器对第四编码帧进行重建,得到输入的视频帧对应的第四重建帧。

S504,基于第四编码帧和第四重建帧,对视频编解码模型的初始估计帧网络进行优化,得到预训练估计帧网络。

在一个实施例中,S504具体包括以下步骤:基于第四编码帧和第四重建帧确定第二预训练损失值;基于第二预训练损失值对初始估计帧网络的参数进行优化,得到预训练估计帧网络。

其中,第二预训练损失值用于衡量视频帧的压缩码率、以及第四重建帧和原始的视频帧之间的差异的指标,用于评估初始估计帧网络对视频帧的压缩效果,进而调整初始估计帧网络的参数,使得初始估计帧网络对视频帧的压缩效果更好。

具体的,终端在得到第四编码帧和第四重建帧之后,还可以确定第四重建帧的字节流大小,并基于第四编码帧的字节流大小确定第二视频帧压缩损失值,并基于第四重建帧和原始视频帧确定第二视频帧重建损失值,然后基于第二视频帧压缩损失值和第二视频帧重建损失值确定第二预训练损失值,并基于第二预训练损失值采用反向传播算法调整初始估计帧网络的网络参数,得到调整后初始估计帧网络,并重新执行步骤S502,直至训练满足收敛条件时停止训练,得到预训练估计帧网络。

在一个实施例中,终端在得到第二视频帧压缩损失值和第二视频帧重建损失值之后,将第二视频帧压缩损失值和第二视频帧重建损失值输入以下公式所表示的损失函数中,通过下式确定第二预训练损失值:

/>

其中,

上述实施例中,终端通过初始估计帧网络对视频帧序列进行编解码处理,得到第四编码帧和对应的第四重建帧,基于第四编码帧和第四重建帧对初始估计帧网络进行参数优化,使得网络的参数更加准确地捕捉到视频中的关键信息,得到预训练估计帧网络,预训练估计帧网络可以作为后续任务的基础模型,加速后续任务的训练过程并提高模型性能。

在一个实施例中,视频编解码模型的预训练关键帧网络包括编码器和解码器;终端通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧的过程具体包括以下步骤:通过编码器对关键帧进行编码处理,得到第一编码帧;通过解码器对第一编码帧进行解码处理,得到第一重建帧。

其中,编码是一种将视频信号压缩为更小的数据量以便于存储、传输和处理的过程,编码器将原始视频帧进行处理和压缩,生成一系列编码后的数据,这些数据可以被传输或存储,以便在需要时可以解码成原始视频。

解码器用于将压缩后得到码流解码还原成图像帧,还原所得的图像帧的图像质量与原始帧的图像质量可能存在一定的差异,这是因为在压缩编码的过程中,原始帧的信息被压缩掉了一部分,而解码器在解码的过程中需要通过估算等技术来还原出这部分信息,因此,还原所得的图像帧的图像质量通常会低于原始帧,但是通过适当的压缩比例,可以在保证视频质量的前提下,减小视频的传输和存储成本。

具体的,终端将视频帧序列中的关键帧输入预训练关键帧网络的编码器,通过预训练关键帧网络的编码器对关键帧进行分块处理,得到各个关键帧图像块,并对各个关键帧图像块进行压缩处理,得到第一编码帧,该第一编码帧为一个压缩的码流;然后将第一编码帧输入预训练关键帧网络的解码器,通过解码器对第一编码帧即码流进行解码,得到解码结果,并基于解码结果还原出各图像块,得到各还原图像块,并对各还原图像块进行拼接,得到关键帧对应的还原图像,该还原图像即为第一重建帧。

上述实施例中,终端通过编码器对关键帧进行编码处理,得到第一编码帧,通过解码器对第一编码帧进行解码处理,得到第一重建帧,从而可以基于第一编码帧和第一重建帧确定模型损失值,通过优化模型参数来最小化损失值,从而提高视频编解码模型的编解码效果。

在一个实施例中,视频编解码模型的预训练估计帧网络包括编码器和解码器,终端通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧的过程具体包括以下步骤:通过编码器对估计帧进行编码处理,得到第二编码帧;通过解码器对第二编码帧进行解码处理,得到第二重建帧。

具体的,终端将视频帧序列中的待处理的估计帧和该估计帧对应的参考帧输入预训练估计帧网络的编码器,通过预训练估计帧网络的编码器对参考帧和估计帧进行运动估计和运动补偿,得到差值帧,并对差值帧进行压缩编码,得到第二编码帧,该第二编码帧为一个压缩的码流;然后将第二编码帧输入预训练估计帧网络的解码器,通过解码器对第二编码帧即码流进行解码,得到解码结果,并基于解码结果还原出差值帧的像素信息,并对基于之前对参考帧还原得到的还原图像对差值帧进行运动补偿,到估计帧对应的还原图像,该还原图像即为第二重建帧。

其中,参考帧可以是当前待处理的估计帧的前一视频帧对应的重建帧,例如,若待处理的估计帧是视频帧序列中的第1个估计帧(即视频帧序列的第2个视频帧),那么该待处理的估计帧的参考帧即为关键帧对应的重建帧(即视频帧序列的第1个视频帧);若待处理的估计帧是视频帧序列中的第2个估计帧(即视频帧序列的第3个视频帧),那么该待处理的估计帧的参考帧即为视频帧序列中的第1个关键帧对应的重建帧(即视频帧序列的第2个视频帧)。

上述实施例中,终端通过编码器对关键帧进行编码处理,得到第二编码帧,通过解码器对第二编码帧进行解码处理,得到第二重建帧,从而可以基于第二编码帧和第二重建帧确定模型损失值,通过优化模型参数来最小化损失值,从而提高视频编解码模型的编解码效果。

在一个实施例中,如图6所示,终端基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,对视频编解码模型进行模型优化,得到目标视频编解码模型的过程包括以下步骤:

S602,基于第一编码帧、第一重建帧、第二编码帧和第二重建帧确定模型损失值。

其中,模型损失值是衡量视频帧的压缩码率、以及重建帧和原始帧之间的差异的指标,用于评估视频编解码模型的对视频帧压缩效果,进而调整视频编解码模型的参数,使得编解码模型对视频帧的压缩效果更好。

具体的,终端在得到第一编码帧、第一重建帧、第二编码帧和第二重建帧之后,基于第一编码帧的字节流大小、第一重建帧、第二编码帧的字节流大小和第二重建帧确定模型损失值。

其中,第一编码帧的字节流大小用于表征第一编码帧的压缩码率,第二编码帧的字节流大小用于表征第二编码帧的压缩码率。

S604,基于模型损失值对视频编解码模型的参数进行优化,直至达到收敛条件时停止训练,得到目标视频编解码模型。

其中,收敛是指模型的训练过程已经趋于稳定,即视频编解码模型已经学到了数据的特征,并且不再有显著的改善,收敛条件包括固定的训练轮数、固定损失函数的阈值等,当模型在达到该条件时停止训练,以避免过度拟合。

具体的,终端在得到模型损失值之后,采用反向传播算法调整视频编解码模型的权重参数和偏置参数的值,得到调整后视频编解码模型,并重新执行步骤S202,直至训练满足收敛条件时停止训练,得到目标视频编解码模型。

上述实施例中,终端基于第一编码帧、第一重建帧、第二编码帧和第二重建帧确定模型损失值,基于模型损失值对视频编解码模型的参数进行优化,直至达到收敛条件时停止训练,通过不断地优化模型参数,使得训练得到的目标视频编解码模型能够更加准确地对视频数据进行编解码,提高了目标视频编解码模型的编解码效果。

在一个实施例中,如图7所示,终端基于第一编码帧、第一重建帧、第二编码帧和第二重建帧确定模型损失值的过程具体包括以下步骤:

S702,基于第一编码帧和第一重建帧确定关键帧损失值。

其中,关键帧损失值是衡量关键帧的压缩码率、以及第一重建帧和原始的关键帧之间的差异的指标,用于评估视频编解码模型的预训练关键帧网络对关键帧压缩效果,进而调整视频编解码模型的参数,使得编解码模型对视频帧的压缩效果更好。

具体的,终端在得到第一编码帧和第一重建帧之后,还可以确定第一编码帧的字节流大小,并基于第一编码帧的字节流大小确定关键帧压缩损失值,并基于第一重建帧和关键帧确定关键帧重建损失值,然后基于关键帧压缩损失值和关键帧重建损失值确定关键帧损失值。

在一个实施例中,终端在得到关键帧压缩损失值和关键帧重建损失值之后,将关键帧压缩损失值和关键帧重建损失值输入以下公式所表示的损失函数中,通过下式确定关键帧损失值:

其中,

S704,基于第二编码帧和第二重建帧估计帧确定估计帧损失值。

其中,估计帧损失值是衡量估计帧的压缩码率、以及第一重建帧和原始的估计帧之间的差异的指标,用于评估视频编解码模型的预训练估计帧网络对估计帧压缩效果,进而调整视频编解码模型的参数,使得编解码模型对视频帧的压缩效果更好。

具体的,终端在得到第二编码帧和第二重建帧之后,还可以确定第二编码帧的字节流大小,并基于第二编码帧的字节流大小确定估计帧压缩损失值,并基于第二重建帧和估计帧确定估计帧重建损失值,然后基于估计帧压缩损失值和估计帧重建损失值确定估计帧损失值。

在一个实施例中,终端在得到估计帧压缩损失值和估计帧重建损失值之后,将估计帧压缩损失值和估计帧重建损失值输入以下公式所表示的损失函数中,通过下式确定估计帧损失值:

其中,

S706,基于关键帧损失值和估计帧损失值确定模型损失值。

具体的,终端在得到关键帧损失值和估计帧损失值之后,获取预设的损失函数,并将关键帧损失值和估计帧损失值输入预设的损失函数中,基于该预设的损失函数确定模型损失值。

在一个实施例中,终端在得到关键帧损失值和估计损失值之后,将关键帧损失值和估计帧损失值输入以下公式所表示的损失函数中,通过下式确定模型损失值:

其中,

在一个实施例中,终端在得到关键帧损失值和估计帧损失值之后,还可以获取关键帧损失值对应的第一损失权重,以及估计帧损失值对应的第二损失权重,并基于第一损失权重、关键帧损失值、第二损失权重和估计帧损失值确定模型损失值。

上述实施例中,终端基于第一编码帧和第一重建帧确定关键帧损失值,基于第二编码帧和第二重建帧确定估计帧损失值,基于关键帧损失值和估计帧损失值确定模型损失值,从而可以基于模型损失值对视频编解码模型的预训练关键帧网络和预训练估计帧网络进行联合训练,通过不断地优化模型参数,使得训练得到的目标视频编解码模型能够更加准确地对视频数据进行编解码,提高了目标视频编解码模型的编解码效果。

在一个实施例中,如图8所示,上述视频的编解码处理方法,还包括对训练好的目标视频编解码模型进行测试的测试过程,该测试过程具体包括以下步骤:

S802,从测试视频中提取出测试视频帧序列,测试视频帧序列包括测试关键帧和测试估计帧。

其中,测试视频是用于测试目标视频编解码模型性能的视频数据,测试视频中,包含不同分辨率、不同编码质量、不同场景等多种类型的视频帧序列,以全面评估模型在不同情况下的编解码效果。

具体的,终端在获取到测试视频之后,从测试视频中按照一定的时间间隔抽取出测试视频帧序列,并将该测试视频帧序列中的第1帧确定为测试关键帧,将测试视频帧序列中第1帧之外的其他视频帧确定为测试估计帧。

S804,通过目标视频编解码模型的预训练关键帧网络对测试关键帧进行编解码处理,得到第一测试编码帧和对应的第一测试重建帧。

具体的,终端在得到测试视频帧序列之后,将测试视频帧序列中的测试关键帧输入目标视频编解码模型的预训练关键帧网络,通过预训练关键帧网络对测试关键帧进行编码、解码处理,从而得到测试关键帧对应的第一测试编码帧,以及第一测试编码帧对应的第一测试重建帧。

S806,通过目标视频编解码模型的预训练估计帧网络对测试估计帧进行编解码处理,得到第二测试编码帧和对应的第二测试重建帧。

具体的,终端在得到测试视频帧序列之后,将测试视频帧序列中的测试估计帧输入目标视频编解码模型的预训练估计帧网络,通过预训练估计帧网络对测试估计帧进行编码、解码处理,从而得到测试估计帧对应的第二编码测试帧,以及第二编码测试帧对应的第二重建测试帧。

S808,基于第一测试编码帧、第二测试编码帧、第一测试重建帧和第二测试重建帧确定目标视频编解码模型的编解码效果。

具体的,终端在得到第一测试编码帧、第二测试编码帧、第一测试重建帧和第二测试重建帧之后,基于第一测试编码帧和第二测试编码帧,确定目标视频编解码模型的压缩评估结果,基于第一测试重建帧和第二测试重建帧确定目标视频编解码模型的重建评估结果,基于压缩评估结果和重建评估结果确定目标视频编解码模型的编解码效果。

压缩评估结果包括压缩字节流的大小(bpp),bpp(bits per pixel)是一种视频编码效率指标,表示每个像素所需的比特数,可以理解的是bpp值越低,说明视频编码效率越高,即在相同视觉质量下,所需的比特数越少。

在一个实施例中,终端在得到第一编码帧和第二编码帧之后,分别确定第一编码帧的压缩字节流的大小和第二编码帧的压缩字节流的大小,并基于第一编码帧的压缩字节流的大小和第二编码帧的压缩字节流的大小,确定对测试视频帧序列的压缩字节流的大小,将对测试视频帧序列的压缩字节流的大小确定为目标视频编解码模型的压缩评估结果。

重建评估结果包括重建图像的质量(PNSR),PSNR(Peak Signal-to-Noise Ratio)是视频质量评估指标,用于比较原始视频帧图像和编解码后的视频帧图像之间的相似度,可以理解的是,PSNR值越高,说明重建的视频质量越好,即编解码效果越好。

具体的,终端在得到第一测试重建帧和第二测试重建帧之后,基于第一测试重建帧和测试关键帧确定第一测试重建帧的重建图像的质量,基于第二测试重建帧和测试估计帧确定第二测试重建帧的重建图像的质量,并根据第一测试重建帧的重建图像的质量和第二测试重建帧的重建图像的质量,确定对测试视频帧序列的重建图像的质量,将对测试视频帧序列的重建图像的质量确定为目标视频编解码模型的重建评估结果。

在一个实施例中,终端在得到目标视频编解码模型压缩评估结果和重建评估结果,基于压缩评估结果重建评估结果生成重建评估分数,该重建评估分数即为重建评估结果。

如下表1所示,为使用传统方案训练出的传统视频编解码模型的重建评估结果和使用本申请方案训练出的目标视频编解码模型的重建评估结果,从表中可以看出,针对I帧、P0帧、P1帧和P2帧的编解码,传统视频编解码模型的重建评估分数分别为80分、70分、70分和70分,整体而言重建评估分数为72.5分,而目标视频编解码模型的重建评估分数分别为75分、75分、75分和75分,整体而言重建评估分数为75分,因此整体而言目标视频编解码模型的重建评估结果更好。

表1

在一个实施例中,终端在得到压缩评估结果和重建评估结果之后,基于压缩评估结果和重建评估结果生成重建评估图,基于重建评估图确定所述目标视频编解码模型的重建评估结果。

参考图9,图9示出了采用不同的视频编解码模型对测试视频进行处理得到重建评估结果,测试视频为UVG dataset,UVG dataset是一个视频质量评估数据集,由Universityof Texas at Austin提供。该数据集包括20个不同主题和内容的720p视频,每个视频包含5个不同压缩级别的版本,总共有100个视频。其中图9中横坐标为bpp,纵坐标为PSNR,H264、H265、H266代表三代典型的传统编解码技术,以作参考,A、B、C分别代表一种传统视频编解码模型,A-ours、B-ours、C-ours分别代表A、B、C模型采用本申请方案训练所得的目标视频编解码模型,从图中可以看出采用本申请方案训练所得的目标视频编解码模型所得到的重建评估结果优于对应的传统视频编解码模型、以及对应的传统编解码技术。

上述实施例中,终端从测试视频中提取出测试视频帧序列,测试视频帧序列包括测试关键帧和测试估计帧,通过目标视频编解码模型的预训练关键帧网络对测试关键帧进行编解码处理,得到第一测试编码帧和对应的第一测试重建帧,通过目标视频编解码模型的预训练估计帧网络对测试估计帧进行编解码处理,得到第二测试编码帧和对应的第二测试重建帧,基于第一测试编码帧、第二测试编码帧、第一测试重建帧和第二测试重建帧确定目标视频编解码模型在新数据上的编解码效果,从而可以评估模型在实际应用场景下的表现,及时发现模型的问题并进行调整和优化,提高模型的泛化能力和实用性,同时,通过测试可以为模型的应用提供可靠的支持,提高其应用的可信度。

在一个实施例中,如图10所示,终端通过目标视频编解码模型对目标视频进行编解码处理的过程具体包括以下步骤:

S1002,从目标视频中提取出待处理视频帧序列,待处理视频帧序列包括待处理关键帧和待处理估计帧。

具体的,终端可以是发送端也可以是接收端,发送端在获得目标视频之后,从目标视频中按照一定的时间间隔抽取出待处理视频帧序列,并将该待处理视频帧序列中的第1帧确定为待处理关键帧,将待处理视频帧序列中第1帧之外的其他视频帧确定为待处理估计帧。

S1004,通过目标视频编解码模型的预训练关键帧网络和预训练估计帧网络,分别对待处理关键帧和待处理估计帧进行编处理,得到第一处理后编码帧和第二处理后编码帧。

具体的,终端在得到待处理视频帧序列之后,将待处理视频帧序列中的待处理关键帧输入目标视频编解码模型的预训练关键帧网络,通过预训练关键帧网络的编码器对待处理关键帧进行编码处理,从而得到待处理关键帧对应的第一处理后编码帧;将待处理视频帧序列中的待处理估计帧输入目标视频编解码模型的预训练估计帧网络,通过预训练估计帧网络的编码器对待处理估计帧进行编码处理,从而得到待处理估计帧对应的第二处理后编码帧。

在一个实施例中,终端通将待处理视频帧序列中的待处理估计帧输入目标视频编解码模型的预训练估计帧网络,通过预训练估计帧网络的编码器对待处理估计帧进行编码处理的过程具体包括以下步骤:将待处理是屁帧序列中待处理估计帧和其对应的待处理参考帧输入视频编解码模型的预训练估计帧网络,通过预训练估计帧网络的编码器对待处理参考帧和待处理估计帧进行运动估计和运动补偿,得到差值帧,并对差值帧进行压缩编码,得到第二处理后编码帧。

其中,待处理参考帧可以是待处理估计帧的前一视频帧对应的重建帧,例如,例如,若待处理估计帧是待处理视频帧序列中的第1个估计帧(即待处理视频帧序列的第2个视频帧),那么该待处理估计帧的待处理参考帧即为关键帧对应的重建帧(即待处理视频帧序列的第1个视频帧);若待处理估计帧是视频帧序列中的第2个估计帧(即视频帧序列的第3个视频帧),那么该待处理估计帧的参考帧即为待处理视频帧序列中的第1个关键帧对应的重建帧(即待处理视频帧序列的第2个视频帧)。

可以理解的是,终端在得到第一处理后编码帧之后,还可以将该第一处理后编码帧输入预训练关键帧网络的解码器,通过解码器对第一处理后编码帧进行解码处理,得到第一处理后重建帧,并将该第一处理后重建帧作为待处理视频帧序列中第1个估计帧的参考帧,将其与第1个估计帧共同输入预训练估计帧网络的编码器,通过编码器对参考帧和第1个估计帧进行运动估计和运动补偿,得到差值帧,并对差值帧进行压缩编码,得到第1个估计帧对应的第二编码帧,并将第1个估计帧的参考帧和其对应的第二编码帧输入预训练估计帧网络的解码器,通过解码器对第1个估计帧对应的第二编码帧进行解码,得到解码结果,基于解码结果和第1个估计帧的参考帧还原得到第1个估计帧对应的第二重建帧,并将第1个估计帧对应的第二重建帧作为待处理视频帧序列中第2个估计帧的参考帧,以此类推,直至得到待处理视频帧序列中每个视频帧所对应的编码帧。

需要说明的是,在对待处理视频帧序列进行编码,得到第一处理后编码帧和第二处理后编码帧之后,将第一处理后编码帧和第二处理后编码帧传输给接收端以使接收端在接收到第一处理后编码帧和第二处理后编码帧之后,对其进行解码处理,得到还原后的目标视频。

S1006,通过目标视频编解码模型的预训练关键帧网络和预训练估计帧网络,分别对第一处理后编码帧和第二处理后编码帧进行解码处理,得到第一处理后重建帧和第二处理后重建帧。

具体的,终端在得到第一处理后编码帧和第二处理后编码帧之后,将第一处理后编码帧输入目标视频编解码模型的预训练关键帧网络,通过预训练关键帧网络的解码器对第一处理后编码帧进行解码处理,得到第一处理后重建帧;将第二处理后编码帧输入目标视频编解码模型的预训练估计帧网络,通过预训练估计帧网络的解码器对第二处理后编码帧进行解码处理,得到第二处理后重建帧。

上述实施例中,终端通过预训练关键帧网络和估计帧网络对待处理关键帧和待处理估计帧进行编码处理,可以将视频数据进行压缩;通过对编码后的数据进行解码处理,可以将压缩的视频数据恢复为原始的视频数据,实现视频解压缩,从而可以有效地减少视频数据的存储和传输成本,提高视频数据的传输效率,同时保持视频的高清晰度和良好的视觉质量。

在一个实施例中,如图11所示,还提供了一种视频的编解码处理方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:

S1102,获取满足清晰度条件的原始视频;对原始视频进行边界检测,得到原始视频中的场景边界;基于场景边界从原始视频中提取出包含连续场景的视频片段;对视频片段进行伪影清洗处理,得到样本视频。

S1104,从样本视频中提取出视频帧序列,视频帧序列包括关键帧和估计帧;样本视频的各视频帧的清晰度满足清晰度条件。

S1106,通过视频编解码模型的预训练关键帧网络的编码器对关键帧进行编码处理,得到第一编码帧;通过预训练关键帧网络的解码器对第一编码帧进行解码处理,得到第一重建帧。

S1108,通过视频编解码模型的预训练估计帧网络的编码器对估计帧进行编码处理,得到第二编码帧;通过预训练估计帧网络的解码器对第二编码帧进行解码处理,得到第二重建帧。

S1110,基于第一编码帧和第一重建帧确定关键帧损失值;基于第二编码帧和第二重建帧确定估计帧损失值;基于关键帧损失值和估计帧损失值确定模型损失值。

S1112,基于模型损失值对视频编解码模型的参数进行优化,直至达到收敛条件时停止训练,得到目标视频编解码模型。

S1114,在获得目标视频时,通过目标视频编解码模型对目标视频进行编解码处理。

本申请还提供一种应用场景,该应用场景应用上述视频的编解码处理方法,具体的,可以将该视频的编解码处理方法集成到软件系统中,并提供相应的接口,通过调用该接口,可以实现应用上述视频的编解码处理方法对视频数据的编解码处理。

参考图12,上述视频的编解码处理方法可以应用于编码端和解码端,编码端输入为待编码视频流,输出为编码的字节流,解码端输入为编码字节流,输出为解码的视频,编码端通常为服务端,解码端通常为客户端,从而实现传输视频的数据量最小,以节省成本。

本申请还提供一种应用场景,该应用场景应用上述视频的编解码处理方法,该视频的编解码方法具体包括以下步骤:

1、训练数据获取

收集数据集主要包括以下几个步骤:获取网络公开的高清视频链接;利用工具下载所有高清视频链接对应的高清视频数据;利用工具scene detect得到所有高清视频中的连续场景;将连续场景提取出固定长度(10-30)的视频帧,每个固定长度的连续帧称为一个clip;将视频帧图像(H, W)进行artifacts清洗,如将视频帧图像resize为(Hx2/3, Wx2/3)。

本实施例中通过上述策略共收集220000多个高清视频场景clip,为模型的训练提供更好的训练数据。

2、模型训练

参考图13,模型训练阶段首选单独训练I帧模型和P帧模型,使I帧模型和P帧模型分别达到最优状态,然后将I帧模型和P帧模型进行联合优化,使得I帧模型和P帧模型联合所得到的目标视频编解码模型的视频编解码指标最优。其中:

a、单独训练I帧模型

对于已经初步训练好的I帧模型,使用已收集的高清训练数据收集训练I帧模型,输入为单帧原始图像,输出为单帧重建图像和压缩的字节流,基于单帧原始图像、单帧重建图像和压缩的字节流确定I帧模型损失值,基于I帧模型损失值对初步训练好的I帧模型的参数进行调整,直至满足收敛条件时停止训练,得到预训练I帧模型。

b、单独训练P帧模型

对于已经初步训练好的P帧模型,我们使用更大尺寸的输入图像进行训练,并增加输入的连续帧数量n-1,如输入尺寸512*512(传统训练时使用的图像尺寸为256*256),单次训练帧数6(传统训练时使用的单次训练帧数为5),针对每一个P帧,选择其前一帧的重建帧作该P帧的参考帧,输入为连续的p帧,输出为每一个P帧的重建图像和压缩的字节流,基于每一个P帧、每一个P帧的重建图像和压缩的字节流确定P帧模型损失值,基于P帧模型损失值对初步训练好的P帧模型的参数进行调整,直至满足收敛条件时停止训练,得到预训练P帧模型。

c、I帧模型和P帧模型联合训练

参考图14,将I帧模型和P帧模型作为一个整体,输入为一个完整的原始GOP视频帧(共n帧),输出为n个视频帧经过I帧模型和P帧模型编解码后的结果,包括1个I帧模型重建图像和对应的压缩字节流,以及n-1个P帧模型重建图像和对应的压缩字节流,训练时考虑n帧输入,并将I帧模型和P帧模型作为整体,进行联合训练,基于1个I帧模型重建图像和对应的压缩字节流(bits),以及n-1个P帧模型重建图像和对应的压缩字节流(bits),确定I帧模型和P帧模型联合所得到的视频编解码模型的模型损失值,基于模型损失值对I帧模型和P帧模型联合所得到的视频编解码模型的参数进行优化,直至达到收敛条件,得到I帧模型和P帧模型联合的目标视频编解码模型。

3、模型测试

为了避免已有方案在训练P帧时使用无损的I帧(原始的I帧)作为参考帧,而测试过程使用有损的I帧(重建的I帧)作为参考帧,造成效果评估指标的损失,本申请实施例通过将I帧模型和P帧模型作为整体,训练时第一个P帧使用上一个I帧的重建有损图像作为参考帧,而测试时的逻辑与训练时完全一致,可以避免效果评估指标的损失,针对后续的所有P帧,在训练时和测试时使用参考帧的逻辑也是完全一致的。

4、模型应用阶段

在得到目标视频编解码模型之后,目标视频编解码模型广泛应用于需要进行视频编解码处理的场景中,比如对视频进行传输、存储或展示的场景中,例如视频会议、视频直播、视频监测、在线教育、数字娱乐等领域,具体还可以将目标视频编解码模型以视频的编解码处理方法集成到软件系统中,通过执行视频的编解码处理方法提高视频传输和存储的效率,降低数据传输成本和存储成本,并提高视频的展示质量,提供相应的接口以方便软件系统的开发人员进行集成开发,并且可以根据实际需求进行个性化定制,满足不同客户的需求。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的视频的编解码处理方法的视频的编解码处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视频的编解码处理装置实施例中的具体限定可以参见上文中对于视频的编解码处理方法的限定,在此不再赘述。

在一个实施例中,如图15所示,提供了一种视频的编解码处理装置,包括:视频帧提取模块1502、关键帧编码模块1504、估计帧编码模块1506、模型优化模块1508和模型应用模块1510,其中:

视频帧提取模块1502,用于从样本视频中提取出视频帧序列,视频帧序列包括关键帧和估计帧;样本视频的各视频帧的清晰度满足清晰度条件;

关键帧编码模块1504,用于通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧;

估计帧编码模块1506,用于通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧;

模型优化模块1508,用于基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,对视频编解码模型进行模型优化,得到目标视频编解码模型;

模型应用模块1510,用于在获得目标视频时,通过目标视频编解码模型对目标视频进行编解码处理。

上述实施例中,在从样本视频中提取出视频帧序列之后,通过视频编解码模型的预训练关键帧网络对关键帧进行编解码处理,得到第一编码帧和对应的第一重建帧,以及通过视频编解码模型的预训练估计帧网络对估计帧进行编解码处理,得到第二编码帧和对应的第二重建帧,从而基于第一编码帧、第一重建帧、第二编码帧和第二重建帧,实现对视频编解码模型的预训练关键帧网络和预训练估计帧网络的联合训练,从而使得训练得到的目标视频编解码模型,在应用于高清视频和超高清视频的编解码时,可以同时提高视频的压缩质量和压缩率,从而提高了对视频的编解码效果。

在一个实施例中,如图16所示,装置还包括样本获取模块1512,用于:获取满足清晰度条件的原始视频;对原始视频进行边界检测,得到原始视频中的场景边界;基于场景边界,从原始视频中提取出包含连续场景的视频片段作为样本视频。

在一个实施例中,样本获取模块1512,还用于:基于场景边界从原始视频中提取出包含连续场景的视频片段;对视频片段进行伪影清洗处理,得到样本视频。

在一个实施例中,如图16所示,视频编解码模型的预训练关键帧网络是对初始关键帧网络进行训练所得的;装置还包括第一预训练模块1514,用于:通过初始关键帧网络对视频帧序列中的视频帧进行编解码处理,得到第三编码帧和对应的第三重建帧;基于第三编码帧和第三重建帧对初始关键帧网络进行参数优化,得到预训练关键帧网络。

在一个实施例中,如图16所示,视频编解码模型的预训练估计帧网络是对初始估计帧网络进行训练所得的;装置还包括第二预训练模块1516,用于:通过初始估计帧网络对视频帧序列进行编解码处理,得到第四编码帧和对应的第四重建帧;基于第四编码帧和第四重建帧对初始估计帧网络进行参数优化,得到预训练估计帧网络。

在一个实施例中,视频编解码模型的预训练关键帧网络包括编码器和解码器:关键帧编码模块1504,还用于:通过编码器对关键帧进行编码处理,得到第一编码帧;通过解码器对第一编码帧进行解码处理,得到第一重建帧。

在一个实施例中,视频编解码模型的预训练估计帧网络包括编码器和解码器;估计帧编码模块1506,还用于:通过编码器对估计帧进行编码处理,得到第二编码帧;通过解码器对第二编码帧进行解码处理,得到第二重建帧。

在一个实施例中,模型优化模块1508,还用于:基于第一编码帧、第一重建帧、第二编码帧和第二重建帧确定模型损失值;基于模型损失值对视频编解码模型的参数进行优化,直至达到收敛条件时停止训练,得到目标视频编解码模型。

在一个实施例中,模型优化模块1508,还用于:基于第一编码帧和第一重建帧确定关键帧损失值;基于第二编码帧和第二重建帧确定估计帧损失值;基于关键帧损失值和估计帧损失值确定模型损失值。

在一个实施例中,如图16所示,装置还包括测试模块1518,用于:从测试视频中提取出测试视频帧序列,测试视频帧序列包括测试关键帧和测试估计帧;通过目标视频编解码模型的预训练关键帧网络对测试关键帧进行编解码处理,得到第一测试编码帧和对应的第一测试重建帧;通过目标视频编解码模型的预训练估计帧网络对测试估计帧进行编解码处理,得到第二测试编码帧和对应的第二测试重建帧;基于第一测试编码帧、第二测试编码帧、第一测试重建帧和第二测试重建帧确定目标视频编解码模型的编解码效果。

在一个实施例中,模型应用模块1510,还用于:从目标视频中提取出待处理视频帧序列,待处理视频帧序列包括待处理关键帧和待处理估计帧;通过目标视频编解码模型的预训练关键帧网络和预训练估计帧网络,分别对待处理关键帧和待处理估计帧进行编处理,得到第一处理后编码帧和第二处理后编码帧;通过目标视频编解码模型的预训练关键帧网络和预训练估计帧网络,分别对第一处理后编码帧和第二处理后编码帧进行解码处理,得到第一处理后重建帧和第二处理后重建帧。

上述视频的编解码处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视频数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频的编解码处理方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图18所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频的编解码处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图17或图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,这些都属于本申请的保护范围。本申请的保护范围应以所附权利要求为准。

相关技术
  • 视频处理方法、装置、计算机设备和存储介质
  • 基于视频处理方法及装置、视频设备及存储介质
  • 文本处理方法、装置、计算机可读存储介质和计算机设备
  • 数据处理方法、装置、计算机设备及计算机可读存储介质
  • 文本处理方法、装置、设备、计算机设备和存储介质
  • 视频编解码的方法、装置、计算机设备及计算机可读存储介质
  • 视频编解码的方法、装置、计算机设备及计算机可读存储介质
技术分类

06120116337471