一种视频转码方法、装置、设备和介质与流程

    专利2022-07-07  179


    本申请涉及视频编码技术领域,尤其涉及一种视频转码方法、装置、设备和介质。



    背景技术:

    视频转码技术用于将视频数据从一种格式转换成另一种格式,是实现传统设备和新兴设备之间视频通信的重要技术。例如,许多现有的视频会议系统是基于旧的视频编码标准h.264而建立,而最新的视频会议系统采用了h.265基线规范。因此,在采用不同视频编码标准的设备之间进行视频通信时,需要对视频数据进行转码。

    现有技术下,通常采用统一的转码配置信息,对视频编码数据进行转码。但是,对不同的视频编码数据均采用相同的转码配置信息进行编码,使得视频质量无法保证。



    技术实现要素:

    本申请实施例提供一种视频转码方法、装置、设备和介质,用以在进行视频转码时,针对不同编码复杂度的视频编码数据,自适应调整转码配置信息,实现对不同编码复杂度的视频编码数据的差异化转码,保证了视频质量。

    一方面,提供一种视频转码方法,包括:

    接收待转码的视频编码数据;

    对视频编码数据进行解码,获得视频图像数据以及编码参数信息;

    根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度;

    根据编码复杂度对应的转码策略,对视频图像数据进行重新编码,获得视频转码数据。

    一方面,提供一种视频转码装置,包括:

    接收单元,用于接收待转码的视频编码数据;

    解码单元,用于对视频编码数据进行解码,获得视频图像数据以及编码参数信息;

    确定单元,用于根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度;

    转码单元,用于根据编码复杂度对应的转码策略,对视频图像数据进行重新编码,获得视频转码数据。

    较佳的,编码参数信息至少包括以下参数中的任意一种或任意组合:

    视频图像数据的视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度;

    其中,运动矢量分数值是根据视频编码数据的各帧间编码块的运动矢量确定的;场景复杂度是根据视频编码数据的各帧内编码块的面积以及视频帧面积确定的。

    较佳的,解码单元用于:

    对视频编码数据进行解码,分别获得每一帧间编码块的运动矢量,运动矢量包括两个运动矢量分量;

    分别根据每一运动矢量对应的各运动矢量分量,确定相应的运动距离;

    根据各运动距离中的最大运动距离与最小运动距离之间的差值,获得运动矢量分数值。

    较佳的,解码单元用于:

    对视频编码数据进行解码,获得各帧内编码块的面积以及视频帧面积;

    根据视频帧面积,以及视频图像数据对应的视频帧数量,确定视频图像数据的视频帧总面积;

    根据各帧内编码块的面积的和,确定视频图像数据的帧内预测图像面积;

    根据帧内预测图像面积与视频帧总面积之间的比值,获得视频图像数据的场景复杂度。

    较佳的,确定单元用于:

    若编码参数信息中仅包含一个参数,则根据一个参数所属的区间,预估视频图像数据重新编码的编码复杂度;

    若编码参数信息中包含至少两个参数,则根据至少两个参数所属的区间的组合,预估视频图像数据重新编码的编码复杂度;

    其中,每个编码复杂度对应一种转码策略。

    较佳的,转码单元用于:

    获取编码复杂度对应设置的转码设备;

    将视频图像数据进行划分,获得多个视频图像子数据;

    将划分好的各视频图像子数据,发送至不同的转码设备,使得转码设备按照配置的转码配置信息对接收的视频图像子数据进行重新编码,获得相应的视频转码子数据,不同编码复杂度对应的转码设备的转码配置信息不同;

    接收各转码设备返回的视频转码子数据;

    根据各视频转码子数据,获得视频图像数据对应的视频转码数据。

    较佳的,转码单元用于:

    获取编码复杂度对应设置的转码配置信息,不同编码复杂度对应的转码配置信息不同;

    将视频图像数据进行划分,获得多个视频图像子数据;

    将转码配置信息,分别添加到每一视频图像子数据中;

    将包含转码配置信息的各视频图像子数据,分别发送至不同的转码设备,使得转码设备根据接收的视频图像子数据中的转码配置信息对相应视频图像子数据进行重新编码,获得相应的视频转码子数据;

    接收各转码设备返回的视频转码子数据;

    根据各视频转码子数据,获得视频图像数据对应的视频转码数据。

    较佳的,转码配置信息包括转码参数信息和并行转码进程数量。

    较佳的,解码单元用于:

    对视频编码数据进行解码,获得解码后的视频解码数据和相应的视频编码参数信息;

    将视频解码数据进行划分,获得多个视频图像数据;

    根据视频解码数据对应的视频编码参数,分别确定每一视频图像数据对应的编码参数信息。

    一方面,提供一种控制设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时执行上述任一种视频转码方法的步骤。

    一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一种视频转码方法的步骤。

    一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种视频转码各种可选实现方式中提供的方法。

    本申请实施例提供的一种视频转码方法、装置、设备和介质中,接收待转码的视频编码数据,并对视频编码数据进行解码,获得相应的视频图像数据和编码参数信息,以及根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度,并根据编码复杂度对应设置的转码策略,对视频图像数据进行重新编码,获得视频转码数据。这样,可以预估视频编码数据重新编码的编码复杂度,并根据预估的编码复杂度,自适应调整转码配置信息,实现对不同编码复杂度的视频编码数据的差异化转码,保证了视频质量,减少了耗费的系统资源以及视频卡顿问题。

    本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

    附图说明

    此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

    图1为本申请实施方式中一种视频转码系统的架构示意图;

    图2为本申请实施方式中一种视频转码方法的实施流程图;

    图3为本申请实施方式中一种hevc编码的流程示意图;

    图4为本申请实施方式中一种编码复杂度规则的示例表;

    图5为本申请实施方式中一种视频转码的应用场景示意图;

    图6为本申请实施方式中一种视频转码装置的结构示意图;

    图7为本申请实施方式中一种控制设备的结构示意图。

    具体实施方式

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

    首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。

    终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。

    服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。

    云存储:是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。

    目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。应用程序在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当应用程序请求访问数据时,文件系统能够根据每个对象的存储位置信息让应用程序对数据进行访问。

    存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量通常相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(redundantarrayofindependentdisk,raid)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。

    数据库(database):简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

    数据库管理系统:是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、可扩展标记语言或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如,结构化查询语言(structuredquerylanguage,sql)、xquery;或依据性能冲量重点来作分类,例如,最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些数据库管理系统能够跨类别,例如,同时支持多种查询语言。

    云计算(cloudcomputing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(gridcomputing)、分布式计算(distributedcomputing)、并行计算(parallelcomputing)、效用计算(utilitycomputing)、网络存储(networkstoragetechnologies)、虚拟化(virtualization)、负载均衡(loadbalance)等传统计算机和网络技术发展融合的产物。

    随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。

    帧间预测:从参考帧中找出与当前块最匹配的位置,参考的是时域上信息,包括:运动估计(motionestimation,me)和运动补偿(motioncompensation,mc)。

    帧内预测:参考周围像素来插值出预测像素,参考的是空域上信息。

    运动估计:确定当前待编码的cu在已编码的图像(参考帧)中的最佳对应图像块,并且计算出对应块的偏移(运动矢量)。

    i帧:是帧内编码帧,为视频编码的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。i帧可以看成是一个图像经过压缩后的产物。i帧画面完整保留,解码时只需要本帧数据就可以完成(因为包含完整画面)。

    p帧:是前向预测编码帧,通过充分将图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;表示的是这一帧跟之前的一个关键帧(或p帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,p帧没有完整画面数据,只有与前一帧的画面差别的数据)。

    b帧:是双向差别帧,也就是b帧记录的是本帧与前后帧的差别,换言之,要解码b帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的数据与本帧数据的叠加取得最终的画面。b帧压缩率高,但是解码时cpu会比较累。

    下面介绍本申请实施例的设计思想。

    在采用不同视频编码标准的设备之间进行视频通信时,通常需要采用视频转码技术对视频数据进行转码,以将视频数据从一种格式转换成另一种格式。

    传统技术中,转码服务器接收其它设备发送的视频编码信息,并对视频编码信息进行解码,获得视频,以及通过多个转码设备采用统一的转码配置信息,对视频进行转码,获得视频转码信息。

    但是,由于不同视频的编码复杂度不同,因此,采用相同的编码参数信息对不同编码复杂度的视频进行编码,使得不同视频的质量差异较大,不能保证视频质量。再者,不同编码复杂度的视频对转码设备的cpu使用率的影响不同,转码设备的cpu使用率不均衡,会造成计算机资源的浪费。以及若转码任务过大,可能会引起视频卡顿问题。

    因此,需要一种在视频转码时可以针对不同视频自适应调整转码配置信息,合理分配系统资源,提高视频质量以及避免视频卡顿问题的技术方案。

    考虑到可以根据视频的编码复杂度,自适应调整视频的转码配置信息以及对转码设备的系统资源进行合理分配,本申请实施例中提供了一种数据处理的方案,该方案中,接收待转码的视频编码数据,并对视频编码数据进行解码,获得相应的视频图像数据和编码参数信息,以及根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度,并根据编码复杂度,进行转码配置信息的调整以及转码设备的分配,以及通过分配的各转码设备采用调整后的转码配置信息,对视频图像数据进行重新编码,获得视频转码数据。

    为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。方法在实际的处理过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。

    本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

    参阅图1所示,为一种视频转码系统的架构示意图。该系统中,包括视频发送设备110、视频接收设备120、控制设备130、以及多个转码设备140。发送设备110、视频接收设备120、控制设备130、以及多个转码设备140均可以为终端设备,也可以为服务器。发送设备110、视频接收设备120、控制设备130、以及多个转码设备140中的视频编解码的相关数据(如,视频编码数据、视频解码数据、视频转码数据、编码参数信息以及转码配置信息等)均可以采用数据库或云存储的方式进行存储,并可以采用云计算的方式进行数据处理。例如,控制设备130为视频编解码服务器,视频发送设备110和视频接收设备120均为手机,转码设备140为工作机。

    视频发送设备110和视频接收设备120均可以为一个,也可以为多个,本申请实施例中,仅以一个视频发送设备110和一个视频接收设备120为例进行说明,实际应用中,视频发送设备110和视频接收设备120的数量,不作限制。视频发送设备110中安装有视频客户端111,视频接收设备120中安装有视频客户端121。本申请实施例涉及的视频客户端可以是预安装的客户端,也可以是嵌入在某个应用中的客户端,也可以是网页版的客户端,不限制客户端的具体类型。

    视频发送设备110:用于对获取的视频进行编码,获得编码后的视频编码数据,并将视频编码数据发送至控制设备130。

    控制设备130:用于接收视频发送设备110发送的视频编码数据,并对视频编码数据进行解码,获得视频解码数据以及编码参数信息,以及根据编码参数信息,确定视频图像数据重新编码的编码复杂度,再者,根据视频编码数据的编码复杂度,进行转码配置信息的选择以及转码设备140的分配。

    转码设备140:用于根据视频图像数据对应的转码配置信息,确定转码参数信息以及并行编码进程数量,并通过并行编码进程数量的编码进程,按照转码参数信息,并行对视频图像数据进行编码,以及将获得的视频转码数据返回至控制设备130。

    视频接收设备120:用于接收控制设备130发送的视频转码数据,并对接收的视频转码数据进行解码和播放。

    本申请实施例中,视频发送设备110将视频编码后发送至控制设备130,控制设备130根据视频编码数据重新编码的编码复杂度,调用相应的转码设备140,采用相应的转码配置信息,对视频编码数据进行重新编码,并将获得的视频转码数据发送至视频接收设备120。视频接收设备120对视频转码数据进行解码和播放。

    这样,根据视频发送设备110和视频接收设备120传输的视频转码的编码复杂度,自适应调整转码配置信息和转码设备140的分配,从而可以保证视频质量以及系统资源的合理分配,以及避免视频卡顿问题。

    参阅图2所示,为本申请提供的一种视频转码方法的实施流程图。该方法的具体流程如下:

    步骤200:控制设备接收视频发送设备发送的待转码的视频编码数据。

    具体的,视频发送设备获取视频,并对该视频进行编码,获得视频编码数据,并将该视频编码数据发送至控制设备。控制设备接收视频发送设备发送的视频编码数据。

    其中,视频发送设备获取的视频可以是本地拍摄获取的,也可以是从其他设备获取的。视频编码数据中包括视频头信息。视频头信息包括:视频参数信息(videoparameterset,vps)、序列头信息(sequenceparameterset,sps)以及图像头信息(pictureparameterset,pps)。

    vps主要用于传输视频分级信息,有利于兼容标准在可分级视频编码或多视点视频的扩展。sps包含多个编码图像的共享编码参数。

    需要说明的是,视频发送设备对视频进行编码后上传时,可以针对一个完整的视频(如,电影),也可以针对视频中的片段,即视频片段,在此不作限制。

    例如,用户a和用户b在通过手机进行视频会议时,用户a通过手机a,将实时拍摄的视频片段进行编码,并将编码后的视频编码数据发送至视频编解码服务器。

    由于现在是信息爆炸时代,图像数据量特别大,故此在传输或者存储时都需要对数据进行有效的压缩。视频编码就是对图像数据按照一定的规则进行变换和组合,去除多余数据,减少表示数字图像时需要的数据量,以便于图像的存储和传输。即以较少的数据量有损或无损地表示原来的像素矩阵的技术,也称图像编码。

    本申请实施例中,仅以高效视频编码(highefficiencyvideocoding,hevc)进行视频编码为例进行说明,实际应用中,视频编码技术可以根据实际应用场景进行设置,在此不作限制。

    参阅图3所示,为一种hevc编码的流程示意图。在hevc的编码过程中,通常将一帧图像送入到编码器,先根据预设最大编码单元(codeunit,cu)大小,分割成多个ctu块,然后每个ctu块再采用四叉树的循环分层结构进行多次划分,直到预设的最小cu大小。然后,对各个深度级别的cu的进行帧间预测或帧内预测,帧内或帧间预测之后得到预测值。在得到预测值之后,将预测值与输入数据相减,得到残差,然后进行离散余弦变换(discretecosinetransform,dct)变化和量化,得到残差系数,然后送入熵编码模块输出码流,同时,残差系数经反量化反变换之后,得到重构图像的残差值,再和帧内或者帧间的预测值相加,从而得到了重构图像,重构图像再经环内滤波之后,进入参考帧队列,作为下一帧的参考图像,从而一帧向后编码。其中,环内滤波可包括去块滤波(deblockingfilter,dbf)和自适应像素补偿(sampleadaptiveoffset,sao)。

    这样,就可以获取待转码的视频编码数据。

    步骤201:控制设备对视频编码数据进行解码,获得视频图像数据以及编码参数信息。

    具体的,视频图像数据为多个视频帧组成的视频帧序列。编码参数信息至少包括:以下参数中的任意一种或任意组合:

    视频图像数据的视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度。

    其中,运动矢量分数值是根据视频编码数据的各帧间编码块的运动矢量确定的。场景复杂度是根据视频编码数据的各帧内编码块的面积以及视频帧面积确定的。

    其中,控制设备对视频编码数据进行解码,获得编码参数信息时,可以采用以下方式中的任意一种或任意组合:

    第一种方式为:控制设备对视频编码数据进行解码,获得视频编码数据的sps,并从sps中获得视频分辨率,以及将视频分辨率作为编码参数信息中的参数。

    第二种方式为:控制设备获取编码出流码率,并将编码出流码率作为编码参数信息中的参数。

    可选的,编码出流码率可以从视频编码数据中的视频参数信息中获得,也可以为控制设备预先设置的,在此不作限制。

    第三种方式为:控制设备对视频编码数据进行解码,获得各帧间编码块的运动矢量,并根据各帧间编码块的运动矢量,确定运动矢量分数值,以及将运动矢量分数值作为编码参数信息中的参数。

    具体的,确定运动矢量分数值时,可以采用以下步骤:

    s2011:控制设备对视频编码数据进行解码,分别获得每一帧间编码块的运动矢量。

    具体的,控制设备对视频编码数据进行解码,获得编码类型为p帧和b帧的视频帧,以及分别确定编码类型为p帧和b帧的视频帧中的每一帧间编码块的运动矢量。

    其中,视频帧的编码类型包括:i帧、p帧和b帧。帧间编码块是采用帧间预测的方式进行编码的编码块。帧间预测是指从参考帧中找出与当前块最匹配的位置,参考的是时域上信息。运动矢量是指帧间预测时当前块与参考帧中的最佳匹配块之间的偏移。运动矢量包括两个运动矢量分量,即第一运动矢量分量和第二运动矢量分量。

    一种实施方式中,运动矢量包括:水平运动矢量分量和垂直运动矢量分量。

    s2012:控制设备分别根据每一运动矢量对应的各运动矢量分量,确定相应的运动距离。

    一种实施方式中,确定运动距离时,控制设备分别针对每一运动矢量,执行以下步骤:

    确定一个运动矢量对应的第一运动矢量分量的绝对值,获得第一绝对值,并确定该运动矢量对应的第二运动矢量分量的绝对值,获得第二绝对值,以及将第一绝对值和第二绝对值的和,作为相应的运动距离。

    也就是说,确定第一运动矢量分量的绝对值,与第二运动矢量分量的绝对值之间的和,获得运动距离。

    一种实施方式中,确定运动距离时,控制设备分别每一运动矢量,执行以下步骤:

    确定该运动矢量对应的第一运动矢量分量的平方,获得第一平方,并确定该运动矢量对应第二运动矢量分量的平方,获得第二平方,以及根据第一平方和第二平方,确定运动距离。

    也就是说,确定运动矢量对应的距离。

    s2013:控制设备根据各运动距离中的最大运动距离与最小运动距离之间的差值,获得运动矢量分数值。

    具体的,控制设备确定各运动距离中的最大运动距离,并确定各运动距离中的最小运动距离,以及将最大运动距离和最小运动距离之间的差值,确定为运动矢量分数值。

    一种实施方式中,确定最小运动距离时,可以采用以下公式表示:

    lmin=min(|mv0| |mv1|);

    其中,lmin表示最小运动距离,mv0和mv1表示运动矢量对应的第一运动矢量分量和第二运动矢量分量。

    一种实施方式中,确定最大运动距离时,可以采用以下公式表示:

    lmax=max(|mv0| |mv1|);

    其中,lmax表示最小运动距离,mv0和mv1表示运动矢量对应的第一运动矢量分量和第二运动矢量分量。

    需要说明的是,运动矢量分数值越高,说明帧间编码块的运动距离之间的差距越大,编码过程中耗费的系统资源以及时长就会越大。

    第四种方式为:控制设备对视频编码数据进行解码,获得各帧内编码块的面积以及视频帧面积,并根据各帧内编码块的面积以及视频帧面积,确定场景复杂度。

    具体的,确定场景复杂度时,可以采用以下步骤:

    s201a:控制设备对视频编码数据进行解码,获得各帧内编码块的面积以及视频帧面积。

    具体的,控制设备对视频编码数据进行编码,获得编码类型为p帧和b帧的视频帧,以及确定编码类型为p帧和b帧的视频帧中各帧内编码块的面积以及任一视频帧面积。

    其中,帧内编码块是采用帧内预测的方式编码的编码块。各视频帧面积相同。各帧内编码块的面积可以相同,也可以不同。

    s201b:控制设备根据视频帧面积,以及视频图像数据对应的视频帧数量,确定视频图像数据的视频帧总面积。

    具体的,控制设备确定视频帧数量与视频帧面积之间的乘积,获得视频帧总面积。

    也就是说,确定视频图像数据中各视频帧的总面积。

    s201c:控制设备根据各帧内编码块的面积的和,确定视频图像数据的帧内预测图像面积。

    具体的,控制设备确定各帧内编码块的面积的和,获得帧内预测图像面积。

    s201d:控制设备根据帧内预测图像面积与视频帧总面积之间的比值,获得视频图像数据的场景复杂度。

    具体的,帧内预测图像面积与视频帧总面积之间的比值越大,说明采用帧内预测编码方式的编码块就越多,编码时耗费的系统资源以及时长等都会越高,反之,越小。

    需要说明的是,帧内编码块和帧间编码块均为编码类型为p帧和b帧的视频帧中的编码块。

    进一步地,执行步骤201时,控制设备还可以采用以下方式:

    对视频编码数据进行解码,获得解码后的视频解码数据和相应的视频编码参数信息,并将视频解码数据进行划分,获得多个视频图像数据,以及根据视频解码数据对应的视频编码参数,分别确定每一视频图像数据对应的编码参数信息。

    这样,就可以在视频较大时,将视频(即视频图像数据),划分为多个视频片段,进而可以在后续步骤中,分别对每一视频片段进行重新编码。

    步骤202:控制设备根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度。

    具体的,执行步骤202时,可以采用以下两种方式:

    第一种方式为:若编码参数信息中仅包含一个参数,则控制设备根据一个参数所属的区间,预估视频图像数据重新编码的编码复杂度。

    具体的,控制设备预先将该参数对应的参数值进行划分,获得相应的多个区间,并设置该参数对应的区间和编码复杂度之间的对应关系。

    其中,编码复杂度用于表示编码复杂度的等级。实际应用中,编码复杂度的等级数量可以根据实际应用场景进行设置,在此不作限制。

    一种实施方式中,编码复杂度包括:平缓编码复杂度、中等编码复杂度以及高等编码复杂度。

    第二种方式为:若编码参数信息中包含至少两个参数,则根据至少两个参数所属的区间的组合,预估视频图像数据重新编码的编码复杂度。

    具体的,控制设备预先分别针对每一参数的参数值划分相应的区间,并建立各参数对应的区间组合与编码复杂度之间的对应关系。

    其中,区间组合表示多个参数分别对应的区间的组合。

    例如,参阅图4所示,为一种编码复杂度规则的示例表。编码复杂度包括:平缓编码复杂度、中等编码复杂度以及高等编码复杂度。编码参数信息至少包括:视频图像数据的视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度。

    若视频分辨率低于1280*720,则编码复杂度为高等复杂度等级。

    若视频分辨率为1920*1080,编码出流码率不低于500kbps(千比特每秒),运动矢量分数值位于区间[90,120],且场景复杂度位于区间[0,20%],则编码复杂度为中等复杂度等级。

    若视频分辨率为1920*1080,编码出流码率不低于500kbps(千比特每秒),运动矢量分数值高于120或场景复杂度高于20%,则编码复杂度为高等复杂度等级。

    实际应用中,区间或区间组合与编码复杂度之间的对应关系,可以根据实际应用场景进行设置,在此不作限制。编码参数信息也可以包含其它参数,以及还可以采用其它方式,确定相应的编码复杂度,在此不作限制。

    这样,就可以根据视频图像数据的视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度中的任意一个参数或任意多个参数,预估视频图像数据重新编码的编码复杂度,从而可以在后续的步骤中,根据预估的编码复杂度,选择相应的转码配置信息进行重新编码。

    步骤203:控制设备根据编码复杂度对应的转码策略,对视频图像数据进行重新编码,获得视频转码数据。

    具体的,控制设备根据编码复杂度,确定转码配置信息和/或各转码终端,并根据转码配置信息和/或各转码终端,对视频图像数据进行重新编码,获得视频转码数据。

    也就是说,控制设备根据不同视频图像数据的编码复杂度,选择不同的转码方式(即不同的转码设备,不同的转码配置信息),对不同的视频图像数据进行重新编码。

    一种实施方式中,对视频图像数据进行重新编码时,控制设备可以采用以下几种方式:

    第一种方式为:控制设备获取编码复杂度对应设置的转码设备,并通过确定出的转码设备采用配置的转码配置信息,对视频图像数据进行重新编码,获得视频转码数据。

    也就是说,在不同编码复杂度对应的转码设备中配置有不同的转码配置信息,这样,根据不同的编码复杂度,选择不同的转码设备进行重新编码即可。

    第二种方式为:控制设备获取编码复杂度对应设置的转码配置信息,并将包含转码配置信息的视频图像数据,分配至不同的转码设备,并通过个转码设备根据接收的转码配置信息对视频图像数据进行重新编码,获得视频转码数据。

    这样,通过控制指令,控制转码设备按照相应的转码配置信息进行重新编码。

    具体的,执行第一种方式时,可以采用以下步骤:

    s2031:控制设备获取编码复杂度对应设置的转码设备。

    具体的,控制设备预先建立编码复杂度与转码设备之间的对应关系,也就是说,分别针对每一编码复杂度,设置有一个或多个转码设备。

    s2032:控制设备将视频图像数据进行划分,获得多个视频图像子数据。

    具体的,执行s2032时,可以采用以下几种方式中的任意一种:

    方式a为:控制设备确定转码设备的设备数量,并根据该设备数量,对视频图像数据进行划分,获得该设备数量的视频图像子数据。

    其中,视频图像子数据可以为将视频切分后的视频片段,视频片段的数量为设备数量。

    方式b为:控制设备按照预设视频帧数量,将视频图像数据进行划分,获得多个视频图像子数据。

    其中,每一视频图像子数据包含的视频帧的数量为预设视频帧数量。

    例如,预设视频帧数量可以为5,划分后的一个视频片段中包含5张视频帧。

    实际应用中,预设视频帧数量可以根据实际应用场景进行设置,在此不作限制。

    方式c为:控制设备按照预设视频片段数量,将视频图像数据进行划分,获得预设视频片段数量的视频图像子数据。

    也就是说,划分后获得的视频片段的数量为预设视频片段数量。

    例如,预设视频片段数量为7,则划分后获得7个视频片段。实际应用中,预设视频片段数量可以根据实际应用场景进行设置,在此不作限制。

    方式d为:控制设备获取编码复杂度对应设置的转码配置信息,并获取转码配置信息中的并行转码进程数量,以及根据并行转码进程数量对应设置的视频帧数量,将视频图像数据进行划分,获得多个视频图像子数据。

    在执行s2032之前,控制设备预先设置编码复杂度与转码配置信息之间的对应关系,以及并行转码进程数量与视频帧数量之间的对应关系,转码配置信息中包括转码参数信息和并行转码进程数量。

    其中,并行转码进程数量是指设备在进行重新编码时并行执行的进程数量。转码参数信息是指在编码过程中的编码参数,针对同一视频图像数据进,采用不同转码参数信息进行编码时,对应的编码压缩效率、编码时长以及cpu使用率等均不同。

    可选的,若视频图像数据的数据量较小,则不需要视频图像数据划分,即可以不执行s2032。

    s2033:控制设备将划分好的各视频图像子数据,发送至不同的转码设备。

    具体的,控制设备获取各转码设备的运行状态,将划分好的各视频图像子数据,发送至运行状态为空闲状态的转码设备。

    可选的,在为各视频图像子数据分配相应的转码设备时,视频图像子数据和转码设备可以为一对一的关系,也可以为多对一的关系。

    当转码设备的数量较少时,可以将多个视频图像子数据分配至同一转码设备。

    s2034:转码设备按照配置的转码配置信息对接收的视频图像子数据进行重新编码,获得相应的视频转码子数据。

    具体的,在执行s2034之前,每一转码设备预先配置有相应的转码配置信息,且不同编码复杂度对应的转码设备的转码配置信息不同。

    一种实施方式中,按照编码的复杂度的等级,各编码复杂度依次为:编码复杂度1、编码复杂度2…编码复杂度ai…编码复杂度ak,对应设置的各转码配置信息依次为:转码配置信息1、转码配置信息2…转码配置信息bi…转码配置信息bk。其中,转码配置信息bi包括:转码参数信息mi和并行转码进程数量ni。a表示编码复杂度,i表示序号,k表示编码复杂度的等级数量,i和k均为正整数,b表示转码配置信息,m表示转码参数信息,n表示并行编码进程数量。

    需要说明的是,转码复杂度的等级越高,解码时,编码压缩效率越高,视频质量越高,编码耗时越长,并行转码进程数量越效。

    本申请实施例中,仅以序号越大,等级越低为例进行说明。实际应用中,编码复杂度的等级与编码复杂度的序号可以呈正相关,也可以呈负相关,也可以随机,在此不作限制。

    例如,i越小(即编码复杂度的等级越高),则ni越小(并行编码进程数量越小),n1<n2<n3。

    s2035:控制设备接收各转码设备返回的视频转码子数据,并根据各视频转码子数据,获得视频图像数据对应的视频转码数据。

    具体的,控制设备获取各视频转码子数据对应的视频时序,并根据视频时序,将接收的各视频转码子数据进行合并,获得视频转码数据。

    其中,视频时序用于表示视频片段之间的视频播放时间的先后顺序。

    这样,采用第一种方式,可以预先采用不同的转码配置信息配置不同的转码设备,进而可以按照视频图像数据的编码复杂度,将视频图像数据分配至配置有相应转码配置信息的转码设备中。

    具体的,执行上述第二种方式时,可以采用以下步骤:

    s203a:控制设备获取编码复杂度对应设置的转码配置信息。

    具体的,执行s203a之前,控制设备预先设置编码复杂度与转码配置信息之间的对应关系,不同编码复杂度对应的转码配置信息不同。

    s203b:控制设备将视频图像数据进行划分,获得多个视频图像子数据。

    具体的,执行s203b时,具体步骤参见上述s2032。

    s203c:控制设备将转码配置信息,分别添加到每一视频图像子数据中,并将包含转码配置信息的各视频图像子数据,分别发送至不同的转码设备。

    具体的,在将各视频图像子数据发送至不同转码设备时,具体步骤参见上述2033,在此不再赘述。

    s203d:转码设备根据接收的视频图像子数据中的转码配置信息对相应视频图像子数据进行重新编码,获得相应的视频转码子数据。

    s203e:控制设备接收各转码设备返回的视频转码子数据,并根据各视频转码子数据,获得视频图像数据对应的视频转码数据。

    这样,不需要预先配置转码设备,不需要将视频图像子数据分配至特定的转码设备,控制设备将转码配置信息和视频图像子数据发送至转码设备,使得转码设备可以按照接收的转码配置信息对视频图像子数据进行重新编码。

    进一步地,控制设备将获得的视频转码数据发送至视频接收设备。视频接收设备将接收的视频转码数据进行解码后播放。

    参阅图5所示,为一种视频转码的应用场景示意图。该应用场景中,包括视频发送设备、控制服务器1(即控制设备)、多个工作机,控制服务器2以及视频接收设备。

    其中,控制服务器1和控制服务器2可以为同一设备,也可以为不同设备。高等编码复杂度对应的工作机包括:工作机1、工作机2……工作机j1。中等编码复杂度对应的工作机包括:工作机1、工作机2……工作机j2,平缓编码复杂度对应的工作机包括:工作机1、工作机2……工作机j3。其中,j1、j2和j3,均为工作机的数量,均为正整数,可以相同也可以不同。

    视频发送设备采集用户a的视频,并将采集的视频进行编码,以及将编码后的视频编码数据发送至控制服务器1。

    控制服务器1对接收的视频编码数据进行解码,并根据解码获得的编码参数信息,预估解码获得的视频图像信息重新编码的编码复杂度,以及根据编码复杂度,将视频图像数据划分成多个视频片段(如,视频片段1、视频片段2……),并将划分后的各视频片段分配至该编码复杂度对应的各工作机。

    各工作机根据配置的转码配置信息,对接收的视频片段进行重新编码,并将获得的视频转码子数据发送至控制服务器2。控制服务器2按照视频时序将接收的各视频转码子数据合并后,将合并后获得的视频转码数据发送至视频接收设备。

    视频接收设备基于用户b的播放指令,通过安装的视频客户端对视频转码数据进行解码和播放。用户b可以通过视频接收设备中的视频客户端观看播放的视频。

    下面采用一个具体的应用场景进行举例说明。

    用户a和用户b通过各自的手机进行视频会议。用户a通过手机a(视频发送设备),采用h.263将拍摄的视频进行编码,并将编码后的视频编码数据发送至视频编解码服务器(控制设备)。

    控制设备采用h.263对接收的视频编码数据进行解码,获得视频图像序列(即视频图像数据)以及编码参数信息,并根据编码参数信息,预估视频图像序列的编码复杂度为高等编码复杂度。视频编解码服务器确定处于空闲状态的高等编码复杂度对应的转码设备为工作机5和工作机6,则将视频图像序列划分为两个视频图像子序列后,分别发送至工作机5和工作机6。

    工作机5和工作机根据配置好的转码配置信息,分别分配10个并行编码进程。每一并行编码进程采用h.264,按照转码配置信息中的转码参数信息,对接收的视频图像子序列进行重新编码,并将编码后的视频转码子数据返回至视频编解码服务器。

    视频编解码服务器将接收的视频转码子数据合并后,发送至用户b的手机b(视频接收设备)。用户b通过手机b的视频客户端,采用h.264对视频转码数据进行解码和播放,实现与用户a之间的视频会议。

    本申请实施例中,可以根据视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度,预判视频图像数据重新编码的复杂度的等级,进而可以根据编码复杂度,对转码参数信息、并行编码进程数量以及转码设备的分配自适应调整,保证了视频质量以及转码设备的cpu使用率的均衡,避免了系统资源的浪费,减少了视频卡顿问题。

    基于同一发明构思,本申请实施例中还提供了一种视频转码装置,由于上述装置及设备解决问题的原理与一种视频转码方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。

    如图6示,其为本申请实施例提供的一种视频转码装置的结构示意图。一种视频转码装置包括:

    接收单元601,用于接收待转码的视频编码数据;

    解码单元602,用于对视频编码数据进行解码,获得视频图像数据以及编码参数信息;

    确定单元603,用于根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度;

    转码单元604,用于根据编码复杂度对应的转码策略,对视频图像数据进行重新编码,获得视频转码数据。

    较佳的,编码参数信息至少包括以下参数中的任意一种或任意组合:

    视频图像数据的视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度;

    其中,运动矢量分数值是根据视频编码数据的各帧间编码块的运动矢量确定的;场景复杂度是根据视频编码数据的各帧内编码块的面积以及视频帧面积确定的。

    较佳的,解码单元602用于:

    对视频编码数据进行解码,分别获得每一帧间编码块的运动矢量,运动矢量包括两个运动矢量分量;

    分别根据每一运动矢量对应的各运动矢量分量,确定相应的运动距离;

    根据各运动距离中的最大运动距离与最小运动距离之间的差值,获得运动矢量分数值。

    较佳的,解码单元602用于:

    对视频编码数据进行解码,获得各帧内编码块的面积以及视频帧面积;

    根据视频帧面积,以及视频图像数据对应的视频帧数量,确定视频图像数据的视频帧总面积;

    根据各帧内编码块的面积的和,确定视频图像数据的帧内预测图像面积;

    根据帧内预测图像面积与视频帧总面积之间的比值,获得视频图像数据的场景复杂度。

    较佳的,确定单元603用于:

    若编码参数信息中仅包含一个参数,则根据一个参数所属的区间,预估视频图像数据重新编码的编码复杂度;

    若编码参数信息中包含至少两个参数,则根据至少两个参数所属的区间的组合,预估视频图像数据重新编码的编码复杂度;

    其中,每个编码复杂度对应一种转码策略。

    较佳的,转码单元604用于:

    获取编码复杂度对应设置的转码设备;

    将视频图像数据进行划分,获得多个视频图像子数据;

    将划分好的各视频图像子数据,发送至不同的转码设备,使得转码设备按照配置的转码配置信息对接收的视频图像子数据进行重新编码,获得相应的视频转码子数据,不同编码复杂度对应的转码设备的转码配置信息不同;

    接收各转码设备返回的视频转码子数据;

    根据各视频转码子数据,获得视频图像数据对应的视频转码数据。

    较佳的,转码单元604用于:

    获取编码复杂度对应设置的转码配置信息,不同编码复杂度对应的转码配置信息不同;

    将视频图像数据进行划分,获得多个视频图像子数据;

    将转码配置信息,分别添加到每一视频图像子数据中;

    将包含转码配置信息的各视频图像子数据,分别发送至不同的转码设备,使得转码设备根据接收的视频图像子数据中的转码配置信息对相应视频图像子数据进行重新编码,获得相应的视频转码子数据;

    接收各转码设备返回的视频转码子数据;

    根据各视频转码子数据,获得视频图像数据对应的视频转码数据。

    较佳的,转码配置信息包括转码参数信息和并行转码进程数量。

    较佳的,解码单元602用于:

    对视频编码数据进行解码,获得解码后的视频解码数据和相应的视频编码参数信息;

    将视频解码数据进行划分,获得多个视频图像数据;

    根据视频解码数据对应的视频编码参数,分别确定每一视频图像数据对应的编码参数信息。

    本申请实施例提供的一种视频转码方法、装置、设备和介质中,接收待转码的视频编码数据,并对视频编码数据进行解码,获得相应的视频图像数据和编码参数信息,以及根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度,并根据编码复杂度对应设置的转码策略,对视频图像数据进行重新编码,获得视频转码数据。这样,可以预估视频编码数据重新编码的编码复杂度,并根据预估的编码复杂度,自适应调整转码配置信息,实现对不同编码复杂度的视频编码数据的差异化转码,保证了视频质量,减少了耗费的系统资源以及视频卡顿问题。

    图7示出了一种控制设备7000的结构示意图。参阅图7所示,控制设备7000包括:处理器7010、存储器7020、电源7030、显示单元7040、输入单元7050。

    处理器7010是控制设备7000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器7020内的软件程序和/或数据,执行控制设备7000的各种功能,从而对控制设备7000进行整体监控。

    本申请实施例中,处理器7010调用存储器7020中存储的计算机程序时执行如图2中所示的实施例提供的视频转码方法。

    可选的,处理器7010可包括一个或多个处理单元;优选的,处理器7010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器7010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

    存储器7020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据控制设备7000的使用所创建的数据等。此外,存储器7020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。

    控制设备7000还包括给各个部件供电的电源7030(比如电池),电源可以通过电源管理系统与处理器7010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。

    显示单元7040可用于显示由用户输入的信息或提供给用户的信息以及控制设备7000的各种菜单等,本发明实施例中主要用于显示控制设备7000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元7040可以包括显示面板7041。显示面板7041可以采用液晶显示屏(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置。

    输入单元7050可用于接收用户输入的数字或字符等信息。输入单元7050可包括触控面板7051以及其他输入设备7052。其中,触控面板7051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板7051上或在触控面板7051附近的操作)。

    具体的,触控面板7051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器7010,并接收处理器7010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7051。其他输入设备7052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

    当然,触控面板7051可覆盖显示面板7041,当触控面板7051检测到在其上或附近的触摸操作后,传送给处理器7010以确定触摸事件的类型,随后处理器7010根据触摸事件的类型在显示面板7041上提供相应的视觉输出。虽然在图7中,触控面板7051与显示面板7041是作为两个独立的部件来实现控制设备7000的输入和输出功能,但是在某些实施例中,可以将触控面板7051与显示面板7041集成而实现控制设备7000的输入和输出功能。

    控制设备7000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述控制设备7000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图7中没有示出,且不再详述。

    本领域技术人员可以理解,图7仅仅是控制设备的举例,并不构成对控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

    本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以采用软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

    本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意方法实施例中的视频转码控制方法。

    通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台控制设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

    最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。


    技术特征:

    1.一种视频转码的方法,其特征在于,包括:

    接收待转码的视频编码数据;

    对所述视频编码数据进行解码,获得视频图像数据以及编码参数信息;

    根据所述视频图像数据的编码参数信息,预估所述视频图像数据重新编码的编码复杂度;

    根据所述编码复杂度对应的转码策略,对所述视频图像数据进行重新编码,获得视频转码数据。

    2.如权利要求1所述的方法,其特征在于,所述编码参数信息至少包括以下参数中的任意一种或任意组合:

    所述视频图像数据的视频分辨率、编码出流码率、运动矢量分数值以及场景复杂度;

    其中,所述运动矢量分数值是根据所述视频编码数据的各帧间编码块的运动矢量确定的;所述场景复杂度是根据所述视频编码数据的各帧内编码块的面积以及视频帧面积确定的。

    3.如权利要求2所述的方法,其特征在于,若所述编码参数信息包括运动矢量分数值,则对所述视频编码数据进行解码,获得编码参数信息,包括:

    对所述视频编码数据进行解码,分别获得每一帧间编码块的运动矢量,所述运动矢量包括两个运动矢量分量;

    分别根据每一运动矢量对应的各运动矢量分量,确定相应的运动距离;

    根据各运动距离中的最大运动距离与最小运动距离之间的差值,获得运动矢量分数值。

    4.如权利要求2所述的方法,其特征在于,若所述编码参数信息包括场景复杂度,则对所述视频编码数据进行解码,获得编码参数信息,包括:

    对所述视频编码数据进行解码,获得各帧内编码块的面积以及视频帧面积;

    根据所述视频帧面积,以及所述视频图像数据对应的视频帧数量,确定所述视频图像数据的视频帧总面积;

    根据各帧内编码块的面积的和,确定所述视频图像数据的帧内预测图像面积;

    根据所述帧内预测图像面积与所述视频帧总面积之间的比值,获得所述视频图像数据的场景复杂度。

    5.如权利要求1-4任一项所述的方法,其特征在于,根据所述视频图像数据的编码参数信息,预估所述视频图像数据重新编码的编码复杂度,包括:

    若所述编码参数信息中仅包含一个参数,则根据所述一个参数所属的区间,预估所述视频图像数据重新编码的编码复杂度;

    若所述编码参数信息中包含至少两个参数,则根据所述至少两个参数所属的区间的组合,预估所述视频图像数据重新编码的编码复杂度;

    其中,每个编码复杂度对应一种转码策略。

    6.如权利要求1所述的方法,其特征在于,根据所述编码复杂度对应的转码策略,对所述视频图像数据进行重新编码,获得视频转码数据,包括:

    获取所述编码复杂度对应设置的转码设备;

    将所述视频图像数据进行划分,获得多个视频图像子数据;

    将划分好的各视频图像子数据,发送至不同的转码设备,使得所述转码设备按照配置的转码配置信息对接收的视频图像子数据进行重新编码,获得相应的视频转码子数据,不同编码复杂度对应的转码设备的转码配置信息不同;

    接收各转码设备返回的视频转码子数据;

    根据各视频转码子数据,获得所述视频图像数据对应的视频转码数据。

    7.如权利要求1所述的方法,其特征在于,根据所述编码复杂度对应的转码策略,对所述视频图像数据进行重新编码,获得视频转码数据,包括:

    获取所述编码复杂度对应设置的转码配置信息,不同编码复杂度对应的转码配置信息不同;

    将所述视频图像数据进行划分,获得多个视频图像子数据;

    将所述转码配置信息,分别添加到每一视频图像子数据中;

    将包含所述转码配置信息的各视频图像子数据,分别发送至不同的转码设备,使得所述转码设备根据接收的视频图像子数据中的转码配置信息对相应视频图像子数据进行重新编码,获得相应的视频转码子数据;

    接收各转码设备返回的视频转码子数据;

    根据各视频转码子数据,获得所述视频图像数据对应的视频转码数据。

    8.如权利要求6或7所述的方法,其特征在于,所述转码配置信息包括转码参数信息和并行转码进程数量。

    9.如权利要求1-4任一项所述的方法,其特征在于,对所述视频编码数据进行解码,获得视频图像数据以及编码参数信息,包括:

    对所述视频编码数据进行解码,获得解码后的视频解码数据和相应的视频编码参数信息;

    将所述视频解码数据进行划分,获得多个视频图像数据;

    根据所述视频解码数据对应的视频编码参数,分别确定每一视频图像数据对应的编码参数信息。

    10.一种视频转码的装置,其特征在于,包括:

    接收单元,用于接收待转码的视频编码数据;

    解码单元,用于对所述视频编码数据进行解码,获得视频图像数据以及编码参数信息;

    确定单元,用于根据所述视频图像数据的编码参数信息,预估所述视频图像数据重新编码的编码复杂度;

    转码单元,用于根据所述编码复杂度对应的转码策略,对所述视频图像数据进行重新编码,获得视频转码数据。

    11.一种控制设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-9任一项所述的方法的步骤。

    12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-9任一项所述方法的步骤。

    技术总结
    本申请属于视频编码技术领域,公开了一种视频转码方法、装置、设备和介质,本申请公开的一种视频转码方法包括,接收待转码的视频编码数据,并对视频编码数据进行解码,获得相应的视频图像数据和编码参数信息,以及根据视频图像数据的编码参数信息,预估视频图像数据重新编码的编码复杂度,并根据编码复杂度对应设置的转码策略,对视频图像数据进行重新编码,获得视频转码数据。这样,根据视频图像数据转码的编码复杂度,自适应调整转码配置信息,从而对不同的视频图像数据进行差异化编码,保证了视频质量。

    技术研发人员:林四新
    受保护的技术使用者:腾讯科技(深圳)有限公司
    技术研发日:2020.11.18
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-6419.html

    最新回复(0)