CN115643410A - 一种视频转码方法、装置、设备及计算机可读存储介质 - Google Patents
一种视频转码方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115643410A CN115643410A CN202110813902.7A CN202110813902A CN115643410A CN 115643410 A CN115643410 A CN 115643410A CN 202110813902 A CN202110813902 A CN 202110813902A CN 115643410 A CN115643410 A CN 115643410A
- Authority
- CN
- China
- Prior art keywords
- coding
- historical
- code rate
- video
- target
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频转码方法、装置、设备及计算机可读存储介质;涉及视频处理技术和区块链技术;该方法包括:获取视频帧图像的编码块在已编码码率所对应的历史模式信息,历史编码模式信息表征编码块在基于已编码码率编码时所选择的编码模式;基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素,其中,候选编码要素是等待计算编码代价的编码要素;依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素;采用目标编码要素和目标码率,对编码块进行编码,实现视频转码。通过本申请,能够提高视频转码的效率。
Description
技术领域
本申请涉及视频处理技术,尤其涉及一种视频转码方法、装置、设备及计算机可读存储介质。
背景技术
在视频业务中,需要根据用户的网络条件,即带宽来下发不同码率的视频,例如,当用户带宽较低时,为用户下发低码率的转码视频,以保证视频的流畅性;当用户带宽较高时,为用户下发高码率的转码视频,以提高视频的观看体验。相关技术中,需要花费较多的时间才能得到不同码率的转码视频,从而,视频的转码效率较低。
发明内容
本申请实施例提供一种视频转码方法、装置、设备及计算机可读存储介质,能够提高视频转码的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频转码方法,包括:
获取视频帧图像的编码块在已编码码率所对应的历史模式信息,所述历史模式信息表征所述编码块在基于已编码码率编码时所选择的编码模式;
基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,其中,所述候选编码要素是等待计算编码代价的编码要素;
依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素;
采用所述目标编码要素和所述目标码率,对所述编码块进行编码,实现视频转码。
本申请实施例提供一种视频转码装置,包括:。
信息获取模块,用于获取视频帧图像的编码块在已编码码率所对应的历史模式信息,所述历史模式信息表征所述编码块在基于已编码码率编码时所选择的编码模式;
要素初筛模块,用于基于所述历史模式信息,针对所述编码块筛选出所述目标码率对应的候选编码要素,其中,所述候选编码要素是等待计算编码代价的编码要素;
要素确定模块,用于依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素;
图像编码模块,用于采用所述目标编码要素和所述目标码率,对所述编码块进行编码,实现视频转码。
在本申请的一些实施例中,所述候选编码要素包括:候选编码模式;所述要素初筛模块,还用于当所述历史模式信息表征在所述已编码码率下选择帧内预测对所述编码块编码时,将所述帧内预测的每个第一预测模式确定为所述候选编码模式,其中,所述每个第一预测模式至少在分割规则、预测方式和偏移角度中的一个或多个上存在不同。
在本申请的一些实施例中,所述目标编码要素包括:目标编码模式;所述要素确定模块,还用于对所述候选编码模式中的所述每个第一预测模式进行编码代价的计算,得到所述每个第一预测模式对应的第一编码代价;将最小的第一编码代价所对应的第一预测模式,确定为所述编码块在所述目标码率的所述目标编码模式。
在本申请的一些实施例中,所述候选编码要素包括:候选参考帧;所述要素初筛模块,还用于当所述历史模式信息表征在所述已编码码率下选择帧间预测对所述编码块进行编码时,依据所述已编码码率对应的历史参考帧集合,确定出所述候选参考帧。
在本申请的一些实施例中,所述要素初筛模块,还用于从所述历史参考帧集合中的每个历史参考帧所对应的历史编码代价中,挑选出最小的N个历史编码代价;其中,N为大于等于2的正整数;基于所述最小的N个历史编码代价,确定出所述编码块的所述候选参考帧。
在本申请的一些实施例中,N=2时,所述最小的N个历史编码代价包括最小历史编码代价和次小历史编码代价;所述要素初筛模块,还用于对所述最小历史编码代价进行增大处理,得到增大后的最小历史编码代价;当所述次小历史编码代价大于所述增大后的最小历史编码代价时,将所述最小历史编码代价对应的历史参考帧,确定为所述候选参考帧;当所述次小历史编码代价小于等于所述增大后的最小历史编码代价时,将所述最小历史编码代价和所述次小历史编码代价各自对应的历史参考帧,确定为所述候选参考帧。
在本申请的一些实施例中,所述要素初筛模块,还用于将所述最小历史编码代价按照扩增倍数进行增大,得到所述增大后的最小历史编码代价,其中,所述扩增倍数大于等于1;或者,将所述最小历史编码代价上叠加预设数值,得到所述增大后的最小历史编码代价。
在本申请的一些实施例中,所述候选参考帧包括:多个参考帧;所述目标编码要素包括:目标参考帧;所述要素确定模块,还用于针对所述多个参考帧分别进行编码代价的计算,得到所述多个参考帧对应的多个第二编码代价;将所述多个第二编码代价中最小的第二编码代价对应的参考帧,确定为所述编码块在所述目标码率的所述目标参考帧。
在本申请的一些实施例中,所述候选编码要素包括:候选编码模式;所述要素初筛模块,还用于当所述历史模式信息表征在所述已编码码率下选择帧间预测对所述编码块进行编码时,将所述帧间预测的每个第二预测模式确定为所述候选编码模式。
在本申请的一些实施例中,所述目标编码要素包括:目标编码模式;所述要素确定模块,还用于对所述候选编码模式中的所述每个第二预测模式进行编码代价的计算,得到所述每个第二预测模式对应的第三编码代价,其中,所述每个第二预测模式至少在分割规则和运动向量估计方式中的一个或多个存在不同;将最小的第三编码代价所对应的第二预测模式,确定为所述编码块在所述目标码率的所述目标编码模式。
在本申请的一些实施例中,所述视频转码装置,还包括:视频解码模块;
所述视频解码模块,用于对原始视频进行解码,得到视频帧图像;
所述图像编码模块,还用于按照所述已编码码率对所述视频帧图像的编码块进行编码,得到所述编码块在所述已编码码率对应的所述历史模式信息,其中,所述已编码码率包括一个或多个设置好的码率。
在本申请的一些实施例中,所述视频转码装置,还包括:视频分析模块;
所述视频分析模块,用于对所述视频帧图像进行分析,确定出辅助编码参数;所述辅助编码参数至少包括:视频帧图像的类型、感兴趣区域以及质量量化参数中的一个或多个;依据所述辅助编码参数,针对所述视频帧图像的编码块分配实际码率,所述已编码码率是所述视频帧图像的编码块的实际码率的均值;
所述图像编码模块,还用于按照所述实际码率对所述视频帧图像的编码块进行编码,得到所述已编码码率对应的所述历史模式信息。
本申请实施例提供一种视频转码设备,包括:
存储器,用于存储可执行视频转码指令;
处理器,用于执行所述存储器中存储的可执行视频转码指令时,实现本申请实施例提供的视频转码方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行视频转码指令,用于引起处理器执行时,实现本申请实施例提供的视频转码方法。
本申请实施例具有以下有益效果:视频转码设备能够选获取视频帧图像的编码块的历史模式信息,以明确编码块在基于已编码码率进行编码时的编码模式,基于历史模式信息,筛选出等待计算编码代价的候选编码要素,从而减少需要计算编码代价的编码要素的数量,接着依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素,最后采用目标编码要素和目标码率,对视频帧图像的编码块进行编码。如此,视频转码设备能够减少选择编码要素的耗时,从而实现利用已编码码率时的编码要素,来对目标码率的编码要素的选择过程进行加速,最终提高视频转码的效率。
附图说明
图1是针对不同用户下发视频的示意图;
图2是针对不同码率进行视频压缩编码的示意图;
图3A是本申请实施例提供的视频转码系统的一个可选的架构示意图;
图3B是本申请实施例提供的视频转码系统的另一个可选的架构示意图;
图4是本申请实施例提供的视频转码设备的结构示意图;
图5是本申请实施例提供的视频转码方法的一个可选的流程示意图一;
图6是本申请实施例提供的从多个参考帧中选择目标参考帧的示意图;
图7是本申请实施例提供的视频转码方法的一个可选的流程示意图二;
图8是本申请实施例提供的按照已编码码率对视频进行转码的过程示意图;
图9是本申请实施例提供的对视频进行转码的过程示意图;
图10是本申请实施例提供的已编码码率的一种可选范围的示意图;
图11是本申请实施例提供的已编码码率的另一种可选范围的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)视频压缩,是在尽可能保证视频的视觉效果的前提下减少视频数据率。数字视频在压缩之前的存储空间相当大,视频压缩将人类的视觉无法感受到的部分压缩,从而,压缩后的视频并不影响视频的最终视觉效果,并且易于存储。
2)码率,是指编码器每秒编码出的数据大小,单位是kbps,例如,800kbps代表编码器每秒产生800kb的数据。在分辨率固定的情况下,码率越高,视频画面越清晰,码率越低,视频画面越不清晰。
3)视频分析,是指在对视频进行编码之前所要进行的基础工作,可以包括对主观质量自适应量化、对视频帧的码率分配、帧类型选择、感兴趣区域确定等。
4)编码要素,即编码时每个块所使用的编码模式、参考帧等信息。
5)帧内预测,是利用视频空间域的相关性,使用同一视频帧内邻近已编码的像素预测当前的像素,以达到在编码时去除空间冗余的目的。
6)帧间预测,是利用视频时间域的相关性,是从过去编码后重构的相邻帧的样本,预测当前帧样本的过程,以达到在编码时去除时间冗余的目的。
7)参考帧,是在帧间编码作为基准的视频帧。
8)云计算(Cloud Computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务))平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
在视频业务中,需要根据用户的网络条件,即带宽来下发不同码率的视频,例如,当用户带宽较低时,为用户下发低码率的转码视频,以保证视频的流畅性;当用户带宽较高时,为用户下发高码率的转码视频,以提高视频的观看体验。为了针对不同的带宽都能够下发视频,需要提前将原始视频在不同码率下进行转码,以得到不同码率的视频。示例性的,图1是针对不同用户下发视频的示意图。参见图1,原始视频1-1需要在不同码率下进行转码1-2,以分别得到原始视频在码率1-3、码率1-4、码率1-5以及码率1-6下的转码视频,从而能够根据不同用户的带宽,将不同码率的转码视频下发给不同的用户。
相关技术中,在对原始视频进行不同码率的转码时,需要针对每一个码率,独立完成视频压缩编码,即针对每一个码率,独立地进行视频解码、视频分析和视频编码等操作。示例性的,图2是针对不同码率进行视频压缩编码的示意图。参见图2,针对码率2-1,需要对原始视频进行解码2-11、视频分析2-12,以及进行基于码率2-1编码2-13,才能得到对应的转码视频2-14;针对码率2-2,需要对原始视频进行解码2-21、视频分析2-22、以及进行基于码率2-2编码2-23,从而得到对应的转码视频2-24;针对码率2-n,也是要先对原始视频进行解码2-n1、视频分析2-n2,以及进行基于码率2-n编码2-n3,以得到对应的转码视频2-n4。
然而,通过对每一个码率独立地进行视频压缩编码,需要花费较多的时间才能得到不同码率的转码视频,从而,视频的转码效率较低。
本申请实施例提供一种视频转码方法、装置、设备和计算机可读存储介质,能够提高视频转码的效率。下面说明本申请实施例提供的视频转码设备的示例性应用,本申请实施例提供的视频转码设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器,还可以实施为由服务器和终端组成的设备集群。下面,将说明视频转码设备实施为服务器时的示例性应用。
参见图3A,图3A是本申请实施例提供的视频转码系统的一个可选的架构示意图,为实现支撑一个视频转码应用,在视频转码系统100中,终端400(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400-1用于响应用户在图形界面400-11的操作,进行视频采集,得到原始视频,并将原始视频通过网络300发送给服务器200,以使服务器200将原始视频转换成不同码率的视频。
服务器200用于获取原始视频帧的视频帧图像的编码块在已编码码率所对应的历史模式信息,历史模式信息表征编码块在基于已编码码率编码时所选择的编码模式;基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素,候选编码要素是指等待计算编码代价的编码要素;依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素;采样目标编码要素和目标码率,对编码块进行编码,实现视频转码,从而得到目标码率的转码视频。
服务器200在终端400-2请求视频时,将转码视频通过网络300下发给终端400-2。
终端400-2用于在图形界面400-21上展示转码视频。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
本申请实施例还可以通过区块链技术来实现,参见图3B,图3B是本申请实施例提供的视频转码系统的另一个可选的架构示意图。图3B中,在视频转码系统100中,通过服务器200将已编码码率的历史模式信息,以及针对目标码率所确定出的目标编码要素上链,以保证历史模式信息和目标编码要素都能够被记录,且记录不可篡改。
在一些实施例中,服务器200可以加入区块链网络500而成为其中的一个节点。区块链网络700的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备,都可以在不需要授权的情况下接入区块链网络700,以作为区块链网络700的共识节点,例如,将终端600映射为区块链网络700中的共识节点700-1,以在将元数据上链时进行共识。
以区块链网络700为联盟链为例,终端600在获得授权后可以接入区块链网络700而成为节点。服务器200获取视频帧图像的编码块在已编码码率所对应的历史模式信息,基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素,依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素,采用目标编码要素和目标码率,对编码块进行编码,实现视频转码,同时将已编码码率和其对应的历史模式信息,目标码率和其对应的目标编码要素发送至区块链网络700中进行共识。当共识通过时,区块链网络700会为已编码码率、历史模式信息、目标码率和目标编码要素分配新区块,将已编码码率、历史模式信息、目标码率和目标编码要素写入至新区块,并将新区块添加在区块链的末端。
参见图4,图4是本申请实施例提供的视频转码设备的结构示意图,图4所示的视频转码设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。视频转码设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的视频转码装置可以采用软件方式实现,图4示出了存储在存储器550中的视频转码装置555,其可以是程序和插件等形式的软件,包括以下软件模块:信息获取模块5551、要素初筛模块5552、要素确定模块5553、图像编码模块5554、视频解码模块5555和视频分析模块5556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的视频转码装置可以采用硬件方式实现,作为示例,本申请实施例提供的视频转码装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的视频转码方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
示例性的,本申请实施例提供一种视频转码设备,包括:
存储器,用于存储可执行视频转码指令;
处理器,用于执行所述存储器中存储的可执行视频转码指令时,实现本申请实施例提供的视频转码方法。
下面,将结合本申请实施例提供的视频转码设备的示例性应用和实施,说明本申请实施例提供的视频转码设备方法。需要说明的是,当视频转码设备实施为由服务器和终端所组成的设备集群时,可以通过云计算技术来实现本申请实施例提供的视频转码方法。
参见图5,图5是本申请实施例提供的视频转码方法的一个可选的流程示意图一,将结合图5示出的步骤进行说明。
S101、获取视频帧图像的编码块在已编码码率所对应的历史模式信息。
本申请实施例是在针对视频进行不同码率下转码的场景下实现的,从而得到不同码率的转码视频。将视频在不同码率下转码,实质上就是将视频流在不同的码率下进行压缩编码,而视频帧图像在编码时都是以编码块为单位进行编码的,从而,视频转码设备在对视频进行转码时,首先得明确编码块的编码模式。本申请实施例中,视频转码设备会对视频帧图像中的编码块在利用已编码码率进行编码时所选择的预测模式的信息进行获取,得到编码块的历史模式信息。也就是说,历史模式信息表征编码块在基于已编码码率编码时所选择的编码模式。
需要说明的是,已编码码率是可以设置好的码率,也可以是视频转码设备自动为视频所确定出的码率。本申请实施例中,编码块在进行目标码率的编码之前,已经利用已编码码率进行了编码,从而,在利用目标码率对编码块编码之后,就会得到编码块在多个码率下的编码结果,利用这种方式对每个视频帧图像的所有编码块都完成编码,就会得到不同码率的转码视频。
可以理解的是,历史模式信息可以表征编码块基于已编码码率编码时所选择的预测方式为帧内预测,也可以表征编码块基于已编码码率编码时所选择的预测方式为帧间预测,本申请在此不作限定。
本申请实施例中,视频帧图像并不是特征视频的某个帧的图像数据,而是泛指视频的所有帧的图像数据。视频帧图像可以是对视频的编码数据进行解码得到的,也可以是实时录制得到的。视频可以包括用户录制的视频,例如用户自行录制并发布的舞蹈视频、搞怪视频等,也可以包括制作方所发行的视频,例如,电视剧、电影、综艺等。
编码块可以是指宏块,也可以是指编码树单元(Coding Tree Unit,CTU)、编码单元(Coding Unit,CU)等,本申请在此不作限定。
需要说明的是,已编码码率中可以仅包括一个指定的码率,也可以包括多个指定的码率。
S102、基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素。
同一编码块在不同的码率时,编码模式不会相差太大,因此,视频转码设备在得到编码块的历史模式信息之后,就会依据历史模式信息,从各种不同的编码要素中,挑选出候选编码要素。其中,候选编码要素是针对编码块有可能使用的编码要素,从而,所述候选编码要素是等待计算编码代价的编码要素。
也就是说,本申请实施例中,视频转码设备基于历史模式信息为编码块初步选择出了一些编码要素,在后续只针对这些编码要素进行编码代价计算,以挑选出最终的目标编码要素,从而不需要针对所有的编码要素都进行编码代价的计算,减少了需要计算编码代价的编码要素的数量。
需要说明的是,目标码率是当前等待编码的码率,是由用户设置好的,或者是由视频转码设备对视频进行分析之后指定好的。进一步的,目标码率和已编码码率都是指视频的整体码率,这个整体码率可以是视频的各个视频帧图像的码率的均值,也可以是不同编码块的码率的均值。
可以理解的是,候选编码要素可以包括候选编码模式,还可以包括候选参考帧,本申请在此不作限定。
在一些实施例中,由于已编码码率只包括了一个指定的码率,此时,视频转码设备只能获得一个指定的码率对应的历史模式信息,从而会仅利用该历史模式信息来确定目标码率对应的候选编码要素,以实现视频转码时的加速。
在另一些实施例中,已编码码率中包括了多个指定的码率,此时,视频转码设备可以从多个指定的码率对应的历史模式信息中,任意选择一个或多个历史模式信息,然后利用这些选择出的历史模式信息来确定目标码率对应的候选编码要素,以实现视频转码时的加速。
S103、依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素。
视频转码设备首先针对候选编码要素计算出编码代价,然而依据编码代价,从候选编码要素中选择编码块在依据目标码率进行编码时所要使用的编码要素,得到目标编码要素。
需要说明的是,视频转码设备可以将最小的编码代价所对应的编码要素确定为目标编码模式,也可以选择次小的编码代价所对应的编码要素确定为目标编码模式,本申请在此不作限定。
本申请实施例中,视频转码设备可以利用常用的帧间预测的代价计算方式和帧内预测的代价计算方式,来计算出候选编码要素的编码代价,也可以利用自行设计的代价计算方式来计算出候选编码要素的编码代价,本申请在此不作限定。
可以理解的是,目标编码要素中可以包括目标编码模式,还可以包括目标参考帧。
S104、采用目标编码要素和目标码率,对编码块进行编码,实现视频转码。
视频转码设备在得到目标编码要素之后,就会利用目标编码要素和目标码率来对编码块进行编码,当视频转码设备对所有的视频帧图像中的所有编码块都完成编码之后,就能够实现视频转码,得到目标码率的转码视频。
本申请实施例中,视频转码设备能够选获取视频帧图像的编码块的历史模式信息,以明确编码块在基于已编码码率进行编码时的编码模式,基于历史模式信息,筛选出等待计算编码代价的候选编码要素,从而减少需要计算编码代价的编码要素的数量,接着依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素,最后采用目标编码要素和目标码率,对视频帧图像的编码块进行编码。如此,视频转码设备能够减少选择编码要素的耗时,从而实现利用已编码码率时的编码要素,来对目标码率的编码要素的选择过程进行加速,最终提高视频转码的效率。
在本申请的一些实施例中,候选编码要素包括:候选编码模式,此时,基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素,即S102的具体实现过程,可以包括:S1021,如下:
S1021、当历史模式信息表征在已编码码率下选择帧内预测对编码块编码时,将帧内预测的每个第一预测模式确定为候选编码模式。
视频转码设在读取历史模式信息,发现其表征的是编码块在基于已编码码率进行编码时,所选择的编码模式为帧内预测时,视频转码设备就会排除帧间预测的各种预测模式和参考帧,将帧内预测的每个第一预测模式确定为候选编码模式。
需要说明的是,每个第一预测模式至少在分割规则、预测方式和偏移角度中的一个或多个上存在不同。
其中,分割规则是指将编码块细分成子块时的规则,可以包括不分割、四等分、水平二等分、垂直二等分、水平四等分、第一水平三分、第二水平三分、第一垂直三分、第二垂直三分、垂直四等分等。
预测方式可以包括基于上方和左方的参考像素的均值预测、水平与垂直差值结合预测、垂直插值预测、水平插值预测、梯度最小方向预测以及8个不同主方向的预测,分别为:垂直方向预测、水平方向预测、45度角方向预测、67度角方向预测、113度角方向预测、135度角方向预测、157度角方向预测、203度角方向预测等,还可以包括调色板预测和帧内(intra)块拷贝预测等。
偏移角度是指主方向的偏移角度,分别为加减3度、加减6度、加减9度等。
目标编码要素包括:目标编码模式;在视频转码设备将帧内预测的每个第一预测模式确定为候选编码模式的情况下,依据候选编码要素的编码代价,确定编码块在所述目标码率的目标编码要素,即S103的具体实现过程,可以包括:S1031-S1032,如下:
S1301、对候选编码模式中的每个第一预测模式进行编码代价的计算,得到每个第一预测模式对应的第一编码代价。
S1032、将最小的第一编码代价所对应的第一预测模式,确定为编码块在目标码率的目标编码模式。
视频转码设备计算利用每个第一预测模式对编码块进行编码时的编码代价,从而得到与每个第一预测模式一一对应的第一编码代价。接着,视频转码设备从所有的第一编码代价中,将最小的第一编码代价挑选出来,最后再结合第一编码代价与第一预测模式之间的对应关系,从帧内预测的每个第一预测模式中,筛选出与最小的第一编码代价所对应的目标编码模式。
本申请实施例中,视频转码设备在明确历史模式信息表征编码块在基于已编码码率编码时选择了帧内预测时,就会将帧内预测的每个第一预测模式确定为候选编码模式,从而使得后续无需在对帧间预测的各个预测模式和参考帧进行编码代价的计算,减少计算编码代价的编码要素的数量,提高视频转码的效率。
在本申请的一些实施例中,候选编码要素包括:候选参考帧;基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素,即S102的具体实现过程,可以包括:S1022,如下:
S1022、当历史模式信息表征在已编码码率下选择帧间预测对编码块进行编码时,依据已编码码率对应的历史参考帧集合,确定出候选参考帧。
当视频转码设备对历史模式信息进行读取,明确针对编码块在已编码码率时所选择的编码模式为帧间预测时,视频转码设备可以直接将已编码码率时的历史参考帧集合中的所有历史参考帧确定为候选编码参考帧,也可以从历史参考帧集合中挑选出一些历史参考帧,作为候选参考帧。
可以理解的是,历史参考帧集合是指在基于已编码码率对编码块编码时的参考帧范围,并不是指编码块在基于已编码码率进行编码时最终的参考帧。
在本申请的一些实施例中,目标编码要素包括:目标参考帧。在视频转码设备依据已编码码率对应的历史参考帧集合,确定出候选参考帧,且候选参考帧包括:多个参考帧的情况下,依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素,即S103的具体实现过程,可以包括S1033-S1034,如下:
S1033、针对多个参考帧分别进行编码代价的计算,得到多个参考帧对应的多个第二编码代价。
S1034、将多个第二编码代价中最小的第二编码代价对应的参考帧,确定为编码块在目标码率的目标参考帧。
视频转码设备针对多个参考帧,分别对编码块进行编码代价的计算,得到每个参考帧对应的第二编码代价。接着,视频转码设备从多个第二编码代价中,筛选出最小的第二编码代价,然后将最小的第二编码代价所对应的参考帧,确定为目标参考帧。
需要说明的是,在已编码码率中仅包含一个码率时,候选参考帧中的参考帧的数量一般不会太多(这是由于从最小的N个历史编码代价所对应的历史参考帧中选择出一个或多个作为候选参考帧);在已编码码率中包含多个码率时,候选参考帧就会是由已编码码率中的每个码率所对应的从最小的N个历史编码代价所对应的历史参考帧选择出的参考帧组成,从而参考帧的数量可能较多,从而需要逐个来计算这些参考帧的编码代价,以选择目标参考帧。
示例性的,图6是本申请实施例提供的从多个参考帧中选择目标参考帧的示意图。参见图6,视频转码设备要分别对参考帧f1,计算编码代价C1、对参考帧f2计算编码代价C2,……,直至对参考帧fk计算编码代价Ck,然后挑选最小的编码代价Ci对应的参考帧,作为目标参考帧。
本申请实施例中,视频转码设备针对候选参考帧中的多个参考帧进行编码代价的计算,从而相比于与所有的参考帧进行编码代价的计算,无疑能够减少计算编码代价的耗时,提高视频转码的效率。
在本申请的一些实施例中,候选参考帧中只有一个参考帧,视频转码设备可以直接将该参考帧确定为目标参考帧,也可以是计算在利用目标码率编码时,该参考帧所对应的编码代价大于一定数值时,将该参考帧确定为目标参考帧。
在本申请的一些实施例中,依据已编码码率对应的历史参考帧集合,确定出候选参考帧,即S1022的具体实现过程,可以包括:S1022a-S1022b,如下:
S1022a、从历史参考帧集合中的每个历史参考帧所对应的历史编码代价中,挑选出最小的N个历史编码代价;其中,N为大于等于2的正整数;。
编码块在基于已编码码率进行编码时,已经针对历史参考帧集合中的历史参考帧计算过了编码代价,此时,视频转码设备将历史参考帧集合的每个历史参考帧所对应的历史编码代价进行大小排序,确定出最小的N个历史编码代价。
示例性的,假设已编码码率为n-1,那么候选参考帧中所包括的历史参考帧分别为fn-1,1、fn-1,2、……、fn-1,k,每个历史参考帧对应的历史编码代价为Cn-1,1、Cn-1,2、……、Cn-1,k。视频转码设备从这些历史编码代价中,选择出最小的2个历史编码代价,即最小值Cn-1,i和次小值Cn-1,j。
S1022b、基于最小的N个历史编码代价,确定出编码块的候选参考帧。
视频转码设备可以直接将最小的N个历史编码代价各自所对应的历史参考帧作为候选参考帧,也可以在判断最小的N个历史编码代价中的最小历史编码代价,是否远小于剩余的历史编码代价,在远小于剩余的历史编码代价时,将最小的历史编码代价对应的历史参考帧作为候选参考帧。
例如,当N=2时,从而最小的N个历史编码代价包括:最小历史编码代价Cn-1,i远小于剩余的历史编码代价Cn-1,j,视频转码设备可以将对应的这两个编码代价对应的历史参考帧fn-1,i和fn-1,j共同确定为目标码率时的候选参考帧,也可以从中选择一个历史参考帧作为候选参考帧。
本申请实施例中,视频转码设备先挑选出最小的N个历史编码代价,然后依据最小的N个历史编码代价对应的历史参考帧中确定出编码块的候选参考帧,从而减少需要计算编码代价的参考帧的数量,得到候选参考帧。
在本申请的一些实施例中,N=2时,最小的N个历史编码代价包括最小历史编码代价和次小历史编码代价;基于最小的N个历史编码代价,确定出编码块的候选参考帧,即S1022b的具体实现过程,可以包括:S201,以及S202和S203中的任意一个,如下:
S201、对最小历史编码代价进行增大处理,得到增大后的最小历史编码代价。
本申请实施例中,视频转码设备先将最小历史编码代价进行增大,以便于后续利用增大后的最小历史编码与次小历史编码进行比较,以判断最小历史编码代价是否远小于次小历史编码代价。
S202、当次小历史编码代价大于增大后的最小历史编码代价时,将最小历史编码代价对应的历史参考帧,确定为候选参考帧。
当次小历史编码代价大于增大后的最小历史编码代价时,说明最小历史编码代价远远小于次小历史编码代价,从而,视频转码设备就会将最小历史编码代价对应的历史参考帧,作为候选参考帧。
S203、当次小历史编码代价小于等于增大后的最小历史编码代价时,将最小历史编码代价和次小历史编码代价各自对应的历史参考帧,确定为候选参考帧。
当次小历史编码代价小于或者等于增大后的最小历史编码代价时,说明最小历史编码代价与次小历史编码代价大小相近,从而无法决断哪个是针对目标码率更加优秀的参考帧,因此,视频转码设备会将最小历史编码代价和次小历史编码代价各自所对应的历史参考帧,均作为候选参考帧,以在后续进一步计算编码块在目标码率下的编码代价。
本申请实施例中,视频转码设备可以先将最小历史编码代价增大,然后将次小历史编码代价与增大后的最小历史编码代价相比较,从而判断出最小历史编码代价是否远小于次小历史编码代价,以决定将哪些历史参考帧作为候选参考帧,以减少需要计算编码代价的参考帧的数量。
在本申请的一些实施例中,对最小历史编码代价进行增大处理,得到增大后的最小历史编码代价,即S201的具体实现过程,可以包括:S2011或S2012,如下:
S2011、将最小历史编码代价按照扩增倍数进行增大,得到增大后的最小历史编码代价。
视频转码设备将最小历史编码代价,与扩增倍数相乘,所得到的乘积就是增大后的最小历史编码代价。需要说明的是,扩增倍数大于等于1。
在一些实施例中,扩增倍数可以是设置好的固定倍数,例如3倍,10倍等。在另一些实施例中,扩增倍数可以是随机倍数,只要满足大于等于1即可,本申请在此不作限定。
S2012、将最小历史编码代价上叠加预设数值,得到增大后的最小历史编码代价。
视频转码设备除了将最小历史编码代价按倍数扩大之外,还可以在最小历史编码代价的基础上叠加预设数值,叠加之后的结果就是增大后的最小历史编码代价。
可以理解的是,预设数值可以根据实际情况进行设置,例如设置为2,设置为0.5等,本申请在此不作限定。
本申请实施例中,视频转码设备可以通过将最小历史编码代价扩大扩增倍数的方式,或者是在最小历史编码代价的基础上叠加预设数值的方式,对最小历史编码代价进行扩大,以便于后续判断最小历史编码代价是否远小于次小历史编码代价。
在本申请的一些实施例中,候选编码要素包括:候选编码模式;基于历史模式信息,针对编码块筛选出目标码率对应的候选编码要素,即S102的具体实现过程,可以包括:S1023,如下:
S1023、当历史模式信息表征在已编码码率下选择帧间预测对编码块进行编码时,将帧间预测的每个第二预测模式确定为候选编码模式。
视频转换设备在读取历史模式信息,明确针对编码块在已编码码率所选择的编码模式为帧间预测时,就会将帧间预测的每个第二预测模式确定为候选编码模式,从而在后续无需再对帧内预测的每个第一预测模式计算编码代价,减少了需要计算编码代价的编码模式的数量。
目标编码要素包括:目标编码模式;在视频转码设备将帧间预测的每个第二预测模式确定为候选编码模式的情况下,依据候选编码要素的编码代价,确定编码块在目标码率的目标编码要素,即S103的具体实现过程,可以包括:S1035-S1036,如下:
S1035、对候选编码模式中的每个第二预测模式进行编码代价的计算,得到每个第二预测模式对应的第三编码代价。
视频转码设备计算编码块在帧间预测的每个第二预测模式时的编码代价,得到与每个第二预测模式一一对应的第三编码代价。
需要说明的是,每个第二预测模式至少在分割规则和运动向量估计方式中的一个或多个存在不同。其中,运动向量估计方式是指在估计运动向量的过程,可以包括基于周围块推导得到,基于传输的运动矢量差(Motion Vector Differ ence,MVD)得到,以及基于全局运动推导得到等。
S1036、将最小的第三编码代价所对应的第二预测模式,确定为编码块在目标码率的目标编码模式。
视频转码设备在得到帧间预测的每个第二预测模式所对应的第三编码代价之后,就会对这些第三编码代价进行大小比较,从中确定出最小的第三编码代价,然后将最小的第三编码所对应的第二预测模式,确定为编码块在基于目标码率进行编码时所使用的目标编码模式。
本申请实施例中,视频转码设备仅对帧间预测的每个第二预测模式进行编码代价的计算,以针对编码块挑选出目标码率时的目标编码模式。如此,能够减少需要计算编码代价的编码模式的数量,提高视频转码的效率。
参见图7,图7是本申请实施例提供的视频转码方法的一个可选的流程示意图二。在本申请的一些实施例中,在获取视频帧图像的编码块在已编码码率所对应的历史模式信息之前,即在S101之前,该方法还可以包括:S105-S106,如下:
S105、对原始视频进行解码,得到视频帧图像。
需要说明的是,原始视频是经过编码的视频文件,例如,已经制作好的电影文件、电视剧文件等,其所有的视频帧图像均是以编码数据存储在存储空间的。因此,在本申请实施例中,视频转码设备会对原始视频进行解码,得到视频帧图像,以便于后续将视频帧图像重新按照已编码码率进行编码。
S106、按照已编码码率对视频帧图像的编码块进行编码,得到编码块在已编码码率对应的历史模式信息。
需要说明的是,已编码码率包括一个或多个设置好的码率。在已编码码率仅包括一个设置好的码率时,本申请实施例中,就是先对原始视频进行解码,然后只基于这一个码率进行编码。在已编码码率包括多个设置好的码率时,本申请实施例中,就是先针对不同的码率统一进行解码,得到视频帧图像,然后再利用统一解码所得到的视频帧图像按照不同码率进行编码,如此,就能够在依据不同码率进行视频转码时,将解码过程进行合并,减少了解码时的重复操作。
示例性的,图8是本申请实施例提供的按照已编码码率对视频进行转码的过程示意图。参见图8,视频转码设备是先统一对原始视频进行解码8-A,然后再针对视频帧图像分别基于已编码码率中的不同码率进行编码,例如,基于码率1进行编码,基于码率2进行编码,……,基于码率n进行编码等,从而分别得到码率1对应的视频8-1、码率2对应的视频8-2,直至码率n对应的视频8-n等。如此,只需要一次解码,就能够得到不同码率的视频,减少了解码时的重复操作。
本申请实施例中,视频转码设备统一对原始视频进行解码,然后按照已编码码率所包括的一个或多个码率对视频帧图像进编码,在编码过程中,确定出视频帧图像的编码块在已编码码率对应的历史模式信息。如此,能够将不同码率的解码过程合并,减少解码时由于重复操作所导致的耗时,进一步提升视频转码的效率。
在本申请的一些实施例中,对原始视频进行解码,得到视频帧图像之后,按照已编码码率对视频帧图像的编码块进行编码,得到编码块在已编码码率对应的历史模式信息之前,该方法还可以包括:S107-S108,如下:
S107、对视频帧图像进行分析,确定出辅助编码参数。
针对视频所指定的码率,并不一定是指视频的每个视频帧图像的码率,而是视频在整体概念上的码率,不同视频帧图像,乃至不同的编码块的码率都可能不同。例如,有些视频帧图像的码率高,而有些视频帧图像的码率较低,从而不同视频帧图像的码率的均值,达到所指定的码率。本申请实施例中,正是在指定的已编码码率的基础上,为不同的视频帧图像,乃至视频帧图像的不同编码块都确定出其自身所对应的码率。
首先,视频转码设备会对视频帧图像进行分析,以确定出视频帧图像的类型、感兴趣区域以及质量的量化参数中等参数,并将这些参数作为辅助编码参数。也就是说,本申请实施例中,辅助编码参数至少包括:视频帧图像的类型、感兴趣区域以及质量量化参数中的一个或多个。
其中,视频帧图像的类型可以是指视频帧图像是否属于参考帧,以及所属的参考帧类型,还可以是视频帧图像是否包含视频的关键内容的帧图像等。感兴趣区域是指视频帧图像中的需要重点展示的区域,例如,电影画面中包括主要角色、主要道具的区域。质量量化参数则反映了空间细节的压缩情况。
S108、依据辅助编码参数,针对视频帧图像的编码块分配实际码率。
视频转码设备在得到辅助编码参数之后,就会依据辅助编码参数,对不同视频帧图像中的不同编码块分配其所对应的实际码率。需要说明的是,已编码码率是视频帧图像的编码块的实际码率的均值,即不同视频帧图像的不同编码块的实际码率在整体上进行均衡之后,就能够达到所要求的已编码码率。
在此情况下,按照已编码码率对视频帧图像的编码块进行编码,得到编码块在已编码码率对应的历史模式信息,即S106的具体实现过程,就可以包括:S1061,如下:
S1061、按照实际码率对视频帧图像的编码块进行编码,得到已编码码率对应的历史模式信息。
可以理解的是,视频转码设备会针对参考帧、包含关键内容的视频帧分配较高的码率,针对不包含关键内容的视频帧分配较低的码率;针对视频帧图像中处于感兴趣区域的编码块分配较高的码率,针对不处于感兴趣区域的编码块分配较低的码率;针对质量量化参数较高的视频帧图像或编码块分配较高的码率,针对质量量化参数较低的视频帧图像或编码块分配较低的码率。
需要说明的是,视频转码设备在本申请实施例中,是在统一对不同的视频帧图像、不同的编码块进行码率的确定之后,即对不同视频帧图像统一进行分析之后,才会分别开始在不同的码率下对视频帧图像的编码块进行编码。如此,可以减少视频分析时的重复操作。
示例性的,基于图8,参见图9,图9是本申请实施例提供的对视频进行转码的过程示意图。视频转码设备在得到视频帧图像之后,会统一对视频帧图像进行分析9-1,然后再针对视频帧图像分别基于已编码码率中的不同码率进行编码,从而实现了将不同码率的视频分析的合并。
本申请实施例中,视频转码设备能够针对视频帧图像确定辅助编码参数,以对视频帧图像的编码块分配实际码率,然后在按照实际码率对编码块进行编码,无需针对不同码率均进行视频分析的过程,实现了将不同码率的视频分析的合并,减少了视频分析时由于重复所带来的耗时。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例是在服务器(视频转码设备)对用户的小视频进行多码率转码的场景下实现的。
本申请实施例中,由于在进行多码率转码时,原始视频,即用户录制的小视频是相同的,因此可以将多码率转码过程中的解码、视频分析过程进行合并,从而降低多码率转码的复杂度。例如,可以通过图9所示出的方式进行合并。
相关技术中,不同码率的视频压缩编码过程相互独立。本申请实施例中,则是利用已编码码率的编码信息,加速目标码率的编码过程。
首先,对加速目标码率的编码过程时已编码码率的可选范围进行介绍。
一种可能的方式是,利用目标码率1的编码模式选择信息,加速目标码率2的编码模式选择过程,即利目标码率n-1(已编码码率)的模式选择信息(历史模式信息),加速目标码率n(目标码率)的模式选择过程。参见图10,图10是本申请实施例提供的已编码码率的一种可选范围的示意图。服务器利用目标码率n-1的编码模式10-1,来对解码出的图像基于目标码率n-1进行压缩编码10-2,得到目标码率n-1对应码流10-3,同时利用目标码率n-1的编码模式10-1,加速10-4目标码率n的编码模式10-5的选择过程,从而利用选择出的目标码率n的编码模式10-5,对解码出的图像进行基于目标码率n进行压缩编码10-6,得到目标码率n对应的码流10-7。
另一种可能的方式是,当n大于等于3时,利用目标码率1的编码模式选择信息,加速目标码率2的编码模式选择过程;从目标码率1、目标码率2、……、目标码率n-1中选择一个或多个编码目标码率(已编码码率包括一个或多个指定的码率),用这些目标码率对应的编码模式选择信息(历史模式信息),目标加速码率n的编码模式选择过程。示例性的,基于图10,图11是本申请实施例提供的已编码码率的另一种可选范围的示意图。服务器利用目标码率n-2的编码模式11-1,来加速11-2目标码率n-1的编码模式10-1的选择过程,同时利用目标码率n-2的编码模式11-1对解码出的图像数据进行在目标码率n-2进行压缩编码11-3,得到目标码率n-2对应的码流11-4。在对目标码率n的编码模式选择过程加速时,服务器同时使用了目标码率n-2的编码模式11-1和目标码率n-1的编码模式10-1,以得到目标码率n的编码模式10-5。
在介绍完已编码码率可选的范围之后,继续介绍每个块(视频帧图像的编码块)的编码模式的具体选择方式。
基于块的视频压缩编码技术,对每个块可以选择多种编码模式,例如可以选择帧内预测模式、帧间预测模式等。在模式选择中,需要计算多种不同的编码模式的编码代价,并从中选择编码代价最小的模式来进行编码。例如,帧内预测模式的编码代价小于帧间预测模式的编码代价,则当前编码块选择帧内预测模式进行编码。
本申请实施例中,当前编码块(编码块在目标码率)属于目标码率n,对应的已编码块(编码块在已编码码率)属于目标码率n-1,且对应的已编码块是目标码率n-1的码流中相同帧相同位置的编码块,码率n可以大于或小于码率n-1。如果对应的已编码块选择了帧内预测模式(编码块在已编码码率所对应的历史模式信息表征选择的编码模式为帧内预测时),则服务器针对当前编码块只计算帧内预测的各个模式(将帧内预测的每个第一预测模式确定为候选编码模式),从帧内预测的各个模式中选择出编码代价最小的模式(最小的第一编码代价所对应的第一预测模式,确定为编码块在目标码率的目标编码模式),无需再计算帧间预测的各个模式的编码代价。
视频压缩编码中的帧间预测,需要针对每个块从一个或多个已编码的帧中选择一个块,作为当前编码块的编码预测值。帧间预测中的参考帧选择是帧间编码模式选择中的一个部分,需要从多个参考帧中选择编码代价最小的参考帧。
本申请实施例中,当前编码块属于目标码率n,对应的已编码块属于目标码率n-1,对应的已编码块属于目标码率n-1,对应的已编码块是目标码率n-1的码流中相同帧相同位置的编码块,目标码率n可以大于或小于目标码率n-1。服务器先确定出已编码块可选的参考帧范围(已编码码率对应的候选参考帧),即fn-1,1、fn-1,2、……、fn-1,k,对应的编码代价为Cn-1,1、Cn-1,2、……、Cn-1,k。对这些编码代价进行排序,其中最小值为Cn-1,i(最小历史编码代价),次小值为Cn-1,j(次小历史编码代价),对应的参考帧是fn-1,i、fn-1,j,对应的当前编码块的参考帧是fn,i、fn,j(参考帧)。那么,对于当前编码块进行参考帧选择时,可以参考已编码块的编码代价排序,选择一个或多个参考帧(候选编码代价包括多个参考帧),计算编码代价,无需计算每个参考帧的编码代价。具体过程可以如下:
当Cn-1,j>αCn-1,i时,则当前编码块只需要计算参考帧fn,i的编码代价,其中,α是大于或等于1的数值,可以是固定数值也可以是非固定数值。
否则,当前编码块需要计算参考帧fn,i、fn,j的编码代价,并从中选择出编码代价较小的参考帧(目标参考帧)。
通过上述方式,不仅能够通过减少视频压缩编码时的重复操作,对转码过程进行提速,还能够通过借鉴其他码率的已编码信息,提高当前的模式选择过程,从而提高编码速度,最终提高转码效率。
下面继续说明本申请实施例提供的视频转码装置555的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器550的视频转码装置555中的软件模块可以包括:
信息获取模块5551,用于获取视频帧图像的编码块在已编码码率所对应的历史模式信息,所述历史模式信息表征所述编码块在基于已编码码率编码时所选择的编码模式;
要素初筛模块5552,用于基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,其中,所述候选编码要素是等待计算编码代价的编码要素;
要素确定模块5553,用于依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素;
图像编码模块5554,用于采用所述目标编码要素和所述目标码率,对所述编码块进行编码,实现视频转码。
在本申请的一些实施例中,所述候选编码要素包括:候选编码模式;所述要素初筛模块5552,还用于当所述历史模式信息表征在所述已编码码率下选择帧内预测对所述编码块编码时,将所述帧内预测的每个第一预测模式确定为所述候选编码模式,其中,所述每个第一预测模式至少在分割规则、预测方式和偏移角度中的一个或多个上存在不同。
在本申请的一些实施例中,所述目标编码要素包括:目标编码模式;所述要素确定模块5553,还用于对所述候选编码模式中的所述每个第一预测模式进行编码代价的计算,得到所述每个第一预测模式对应的第一编码代价;将最小的第一编码代价所对应的第一预测模式,确定为所述编码块在所述目标码率的所述目标编码模式。
在本申请的一些实施例中,所述候选编码要素包括:候选参考帧;所述要素初筛模块5552,还用于当所述历史模式信息表征在所述已编码码率下选择帧间预测对所述编码块进行编码时,依据所述已编码码率对应的历史参考帧集合,确定出所述候选参考帧。
在本申请的一些实施例中,所述要素初筛模块5552,还用于从所述历史参考帧集合中的每个历史参考帧所对应的历史编码代价中,挑选出最小的N个历史编码代价;其中,N为大于等于2的正整数;基于所述最小的N个历史编码代价,确定出所述编码块的所述候选参考帧。
在本申请的一些实施例中,N=2时,所述最小的N个历史编码代价包括最小历史编码代价和次小历史编码代价;所述要素初筛模块5552,还用于对所述最小历史编码代价进行增大处理,得到增大后的最小历史编码代价;当所述次小历史编码代价大于所述增大后的最小历史编码代价时,将所述最小历史编码代价对应的历史参考帧,确定为所述候选参考帧;当所述次小历史编码代价小于等于所述增大后的最小历史编码代价时,将所述最小历史编码代价和所述次小历史编码代价各自对应的历史参考帧,确定为所述候选参考帧。
在本申请的一些实施例中,所述要素初筛模块5552,还用于将所述最小历史编码代价按照扩增倍数进行增大,得到所述增大后的最小历史编码代价,其中,所述扩增倍数大于等于1;或者,将所述最小历史编码代价上叠加预设数值,得到所述增大后的最小历史编码代价。
在本申请的一些实施例中,所述候选参考帧包括:多个参考帧;所述目标编码要素包括:目标参考帧;所述要素确定模块5553,还用于针对所述多个参考帧分别进行编码代价的计算,得到所述多个参考帧对应的多个第二编码代价;将所述多个第二编码代价中最小的第二编码代价对应的参考帧,确定为所述编码块在所述目标码率的所述目标参考帧。
在本申请的一些实施例中,所述候选编码要素包括:候选编码模式;所述要素初筛模块5552,还用于当所述历史模式信息表征在所述已编码码率下选择帧间预测对所述编码块进行编码时,将所述帧间预测的每个第二预测模式确定为所述候选编码模式。
在本申请的一些实施例中,所述要素确定模块5553,还用于对所述候选编码模式中的所述每个第二预测模式进行编码代价的计算,得到所述每个第二预测模式对应的第三编码代价,其中,所述每个第二预测模式至少在分割规则和运动向量估计方式中的一个或多个存在不同;将最小的第三编码代价所对应的第二预测模式,确定为所述编码块在所述目标码率的所述目标编码模式。
在本申请的一些实施例中,所述视频转码装置555,还包括:视频解码模块5555;
所述视频解码模块5555,用于对原始视频进行解码,得到视频帧图像;
所述图像编码模块5554,还用于按照所述已编码码率对所述视频帧图像的编码块进行编码,得到所述编码块在所述已编码码率对应的所述历史模式信息,其中,所述已编码码率包括一个或多个设置好的码率。
在本申请的一些实施例中,所述视频转码装置555,还包括:视频分析模块5556;
所述视频分析模块5556,用于对所述视频帧图像进行分析,确定出辅助编码参数;所述辅助编码参数至少包括:视频帧图像的类型、感兴趣区域以及质量量化参数中的一个或多个;依据所述辅助编码参数,针对所述视频帧图像的编码块分配实际码率,所述已编码码率是所述视频帧图像的编码块的实际码率的均值;
所述图像编码模块5554,还用于按照所述实际码率对所述视频帧图像的编码块进行编码,得到所述已编码码率对应的所述历史模式信息。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的视频转码方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行视频转码指令,当可执行视频转码指令被处理器执行时,将引起处理器执行本申请实施例提供的视频转码方法,例如,如图5示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行视频转码指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行视频转码指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行视频转码指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种视频转码方法,其特征在于,包括:
获取视频帧图像的编码块在已编码码率所对应的历史模式信息,所述历史模式信息表征所述编码块在基于已编码码率编码时所选择的编码模式;
基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,其中,所述候选编码要素是等待计算编码代价的编码要素;
依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素;
采用所述目标编码要素和所述目标码率,对所述编码块进行编码,实现视频转码。
2.根据权利要求1所述的方法,其特征在于,所述候选编码要素包括:候选编码模式;所述基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,包括:
当所述历史模式信息表征在所述已编码码率下选择帧内预测对所述编码块编码时,将所述帧内预测的每个第一预测模式确定为所述候选编码模式,其中,所述每个第一预测模式至少在分割规则、预测方式和偏移角度中的一个或多个上存在不同。
3.根据权利要求2所述的方法,其特征在于,所述目标编码要素包括:目标编码模式;所述依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素,包括:
对所述候选编码模式中的所述每个第一预测模式进行编码代价的计算,得到所述每个第一预测模式对应的第一编码代价;
将最小的第一编码代价所对应的第一预测模式,确定为所述编码块在所述目标码率的所述目标编码模式。
4.根据权利要求1所述的方法,其特征在于,所述候选编码要素包括:候选参考帧;所述基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,包括:
当所述历史模式信息表征在所述已编码码率下选择帧间预测对所述编码块进行编码时,依据所述已编码码率对应的历史参考帧集合,确定出所述候选参考帧。
5.根据权利要求4所述的方法,其特征在于,所述依据所述已编码码率对应的历史参考帧集合,确定出所述候选参考帧,包括:
从所述历史参考帧集合中的每个历史参考帧所对应的历史编码代价中,挑选出最小的N个历史编码代价;其中,N为大于等于2的正整数;
基于所述最小的N个历史编码代价,确定出所述编码块的所述候选参考帧。
6.根据权利要求5所述的方法,其特征在于,N=2时,所述最小的N个历史编码代价包括最小历史编码代价和次小历史编码代价;
所述基于所述最小的N个历史编码代价,确定出所述编码块的所述候选参考帧,包括:
对所述最小历史编码代价进行增大处理,得到增大后的最小历史编码代价;
当所述次小历史编码代价大于所述增大后的最小历史编码代价时,将所述最小历史编码代价对应的历史参考帧,确定为所述候选参考帧;
当所述次小历史编码代价小于等于所述增大后的最小历史编码代价时,将所述最小历史编码代价和所述次小历史编码代价各自对应的历史参考帧,确定为所述候选参考帧。
7.根据权利要求6所述的方法,其特征在于,所述对所述最小历史编码代价进行增大处理,得到增大后的最小历史编码代价,包括:
将所述最小历史编码代价按照扩增倍数进行增大,得到所述增大后的最小历史编码代价,其中,所述扩增倍数大于等于1;或者,
将所述最小历史编码代价上叠加预设数值,得到所述增大后的最小历史编码代价。
8.根据权利要求4至7任一项所述的方法,其特征在于,所述候选参考帧包括:多个参考帧;所述目标编码要素包括:目标参考帧;所述依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素,包括:
针对所述多个参考帧分别进行编码代价的计算,得到所述多个参考帧对应的多个第二编码代价;
将所述多个第二编码代价中最小的第二编码代价对应的参考帧,确定为所述编码块在所述目标码率的所述目标参考帧。
9.根据权利要求1所述的方法,其特征在于,所述候选编码要素包括:候选编码模式;所述基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,包括:
当所述历史模式信息表征在所述已编码码率下选择帧间预测对所述编码块进行编码时,将所述帧间预测的每个第二预测模式确定为所述候选编码模式。
10.根据权利要求9所述的方法,其特征在于,所述目标编码要素包括:目标编码模式;所述依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素,包括:
对所述候选编码模式中的所述每个第二预测模式进行编码代价的计算,得到所述每个第二预测模式对应的第三编码代价,其中,所述每个第二预测模式至少在分割规则和运动向量估计方式中的一个或多个存在不同;
将最小的第三编码代价所对应的第二预测模式,确定为所述编码块在所述目标码率的所述目标编码模式。
11.根据权利要求1至7、9、10任一项所述的方法,其特征在于,在所述获取视频帧图像的编码块在已编码码率所对应的历史模式信息之前,所述方法还包括:
对原始视频进行解码,得到视频帧图像;
按照所述已编码码率对所述视频帧图像的编码块进行编码,得到所述编码块在所述已编码码率对应的所述历史模式信息,其中,所述已编码码率包括一个或多个设置好的码率。
12.根据权利要求11所述的方法,其特征在于,所述对原始视频进行解码,得到视频帧图像之后,所述按照所述已编码码率对所述视频帧图像的编码块进行编码,得到所述编码块在所述已编码码率对应的所述历史模式信息之前,所述方法还包括:
对所述视频帧图像进行分析,确定出辅助编码参数;所述辅助编码参数至少包括:视频帧图像的类型、感兴趣区域以及质量量化参数中的一个或多个;
依据所述辅助编码参数,针对所述视频帧图像的编码块分配实际码率,所述已编码码率是所述视频帧图像的编码块的实际码率的均值;
所述按照所述已编码码率对所述视频帧图像的编码块进行编码,得到所述编码块在所述已编码码率对应的所述历史模式信息,包括:
按照所述实际码率对所述视频帧图像的编码块进行编码,得到所述已编码码率对应的所述历史模式信息。
13.一种视频转码装置,其特征在于,包括:
信息获取模块,用于获取视频帧图像的编码块在已编码码率所对应的历史模式信息,所述历史模式信息表征所述编码块在基于已编码码率编码时所选择的编码模式;
要素初筛模块,用于基于所述历史模式信息,针对所述编码块筛选出目标码率对应的候选编码要素,其中,所述候选编码要素是等待计算编码代价的编码要素;
要素确定模块,用于依据所述候选编码要素的编码代价,确定所述编码块在所述目标码率的目标编码要素;
图像编码模块,用于采用所述目标编码要素和所述目标码率,对所述编码块进行编码,实现视频转码。
14.一种视频转码设备,其特征在于,包括:
存储器,用于存储可执行视频转码指令;
处理器,用于执行所述存储器中存储的可执行视频转码指令时,实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行视频转码指令,用于被处理器执行时,实现权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813902.7A CN115643410A (zh) | 2021-07-19 | 2021-07-19 | 一种视频转码方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813902.7A CN115643410A (zh) | 2021-07-19 | 2021-07-19 | 一种视频转码方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115643410A true CN115643410A (zh) | 2023-01-24 |
Family
ID=84940660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110813902.7A Pending CN115643410A (zh) | 2021-07-19 | 2021-07-19 | 一种视频转码方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643410A (zh) |
-
2021
- 2021-07-19 CN CN202110813902.7A patent/CN115643410A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7273217B2 (ja) | ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム | |
CN110198492B (zh) | 一种视频的水印添加方法、装置、设备及存储介质 | |
US20140119456A1 (en) | Encoding video into lower resolution streams | |
CN112533059B (zh) | 图像渲染方法、装置、电子设备以及存储介质 | |
CN111669589B (zh) | 图像编码方法、装置、计算机设备以及存储介质 | |
CN112035081A (zh) | 投屏方法、装置、计算机设备及存储介质 | |
US11758182B2 (en) | Video encoding through non-saliency compression for live streaming of high definition videos in low-bandwidth transmission | |
KR101805550B1 (ko) | 프리젠테이션 가상화를 위한 화면 부호화 방법 및 서버 | |
CN111327921A (zh) | 视频数据处理方法及设备 | |
CN111294591B (zh) | 视频信息处理方法、多媒体信息处理方法、装置 | |
CN113965751A (zh) | 屏幕内容编码方法、装置、设备及存储介质 | |
Song et al. | Remote display solution for video surveillance in multimedia cloud | |
US20210383574A1 (en) | Method and apparatus for enhanced patch boundary identification for point cloud compression | |
CN112235582A (zh) | 一种视频数据处理方法、装置、计算机设备及存储介质 | |
KR102296987B1 (ko) | 기계 학습 모델에 기초한 블록 체인을 이용한 hevc 분산형 복호화 방법, 장치 및 시스템 | |
CN116866591A (zh) | 一种图像编码方法、装置及计算机设备、介质 | |
CN116193197A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN116170582A (zh) | 一种视频数据处理方法、装置、计算机设备以及存储介质 | |
CN115643410A (zh) | 一种视频转码方法、装置、设备及计算机可读存储介质 | |
CN111885378B (zh) | 多媒体数据编码方法、装置、设备以及介质 | |
CN114640849B (zh) | 直播视频编码方法、装置、计算机设备及可读存储介质 | |
CN117014659B (zh) | 一种视频转码方法、装置、电子设备和存储介质 | |
CN116708793B (zh) | 视频的传输方法、装置、设备及存储介质 | |
CN114374843B (zh) | 基于预测模式选择的直播视频编码方法及计算机设备 | |
US11606556B2 (en) | Fast patch generation for video based point cloud coding |
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 |