软件定义的视频处理系统和处理方法与流程

文档序号:17299667发布日期:2019-04-03 04:49阅读:241来源:国知局
软件定义的视频处理系统和处理方法与流程

本发明涉及多媒体技术领域,尤其涉及一种基于软件定义的视频处理系统和处理方法。



背景技术:

随着多媒体通信技术的日益发展,基于视频的各种应用得到了迅猛发展,但由于用户终端的多样性和网络的异构性,需要视频服务端提供差异化的服务,因此,希望能够获取实时的用户终端和网络信息并能够对视频信息进行编码控制。

然而,目前的视频编码器通常采用混合编码框架,通过调节编码参数,例如调节量化参数产生不同的码率输出,调节帧率产生不同的时域分辨率,而如果要产生标清、超清、高清视频时,将会需要多种编码器结构。而且基于目前的视频编码架构,只能依据事先设定好的编码参数或编码算法对数据包进行转发,控制面和数据面紧密耦合在一起,逻辑决策面和分布式的硬件设施结合过紧。因此,现有技术的混合编码结构缺乏灵活性,不能充分利用云计算等高效的计算资源,而且已经不适合目前用户的多样化需求以及各种类型的可视设备。

为解决上述问题,软件定义视频技术应运而生,其是一种与基础设施无关的实现灵活、可扩展和可容易升级的视频架构,这种方式允许视频提供商把软件部署于私有和公有数据中心内优化组合的定制和虚拟化资源,使视频提供商免除定制设备的局限,将最佳的架构和处理器组合用于特定的应用,即使该应用随时间变化。对新服务和视频格式的支持可通过简单的软件升级无缝集成。尽管目前人们提出了软件视频技术的概念,但对于具体的实现架构还没有成熟的方案。

因此,针对上述问题,本发明提供一种软件定义的视频处理系统或架构。



技术实现要素:

本发明为克服上述现有技术的缺陷,提供一种基于软件定义的视频处理系统和处理方法,以能够针对多种类型的视频终端和不同的用户需要提供差异化的视频服务。

根据本发明的第一方面,提供了一种基于软件定义的视频处理系统。该系统包括:

异构环境感知模块:用于获取视频终端的视频终端信息,其中所述视频终端信息包括视频终端类型、视频终端的属性信息、视频终端的资源状态信息、用户观看视频的偏好中的至少一项;

视频信息预处理模块:用于根据所述视频终端信息和/或视频处理过程中的信道状态信息为所述视频终端选择延时和/或带宽分配策略;

资源调度管理模块:用于基于所述视频终端信息和/或视频处理过程中的信道状态信息确定视频处理任务的分解策略,以将视频处理任务分解为由多个处理单元执行的多个子任务。

在一个实施例中,所述异构环境感知模块包括低空终端设备感知单元、地面固定终端感知单元、地面移动终端感知单元和用户感知单元中的至少一个,其中,

所述低空终端设备感知单元用于感知类型为低空设备的视频终端信息,所述地面固定终端感知单元用于感知类型为地面固定终端的视频终端信息,所述地面移动终端感知单元用于感知类型为地面移动终端的视频终端信息,所述用户感知单元用于获取用户观看视频的偏好。

在一个实施例中,所述视频信息预处理模块包括资源状态收集单元、视频信息识别和过滤单元、策略管理单元、异构视频信息感知融合计算单元、异构视频信息时序管理单元,其中:

所述资源状态收集单元用于获取视频处理过程中的信道状态信息和/或从所述异构环境感知模块接收所述视频终端信息;

所述视频信息识别和过滤单元用于对视频信息进行内容识别以及提取关键帧的图像特征;

所述策略管理单元用于根据来自于所述资源状态收集单元的视频终端信息和/或视频处理过程中的信道状态信息为每个视频信息选择合适的延时或带宽分配策略;

所述异构视频信息感知融合计算单元用于计算多个视频信息的融合方式;

所述异构视频信息时序管理单元用于管理多个视频信息的处理顺序。

在一个实施例中,所述资源调度管理模块包括任务分解计算单元、多任务决策单元、多栖设备拓扑管理单元、用户接口界面单元、多栖设备协同调度单元、性能分析和跟踪单元、性能预测单元和反馈单元,其中:

所述任务分解计算单元用于视频信息处理任务分解为多个子任务,以分发至多个处理单元执行;

所述多任务决策单元用于基于所述视频终端信息和/或视频处理过程中的信道状态信息决策出优化的视频终端调度策略;

所述多栖设备拓扑管理单元用于提供视频终端的连接关系;

所述用户接口界面单元用于接收用户对视频信号的质量要求;

所述多栖设备协同调度单元用于基于所述多任务决策单元决策出优化的视频终端调度策略来调度视频信息;

所述性能分析和跟踪单元用于监测视频处理过程中各处理单元的性能,以获得监测性能结果;

所述性能预测单元用于对所述多任务决策单元和所述任务分解计算单元的决策进行预测,以获得预测性能结果。

所述反馈单元用于向所述多任务决策单元和所述任务分解计算单元反馈所述监测性能结果和所述预测性能结果。

在一个实施例中,所述多任务决策单元还用于根据用户要求的视频图像质量信息或所述监测性能结果或所述预测性能结果决策出优化的视频终端调度策略。

在一个实施例中,所述视频终端的属性信息包括移动速度、处理能力、当前电量、连接方式的至少一项。

在一个实施例中,所述视频终端类型包括低空终端设备、地面固定终端、地面移动终端中的至少一种。

根据本发明的第二方面,提供了一种基于软件定义的视频处理方法。该方法包括以下步骤:

步骤1:获取不同类型的视频终端信息,其中所述视频终端信息包括视频终端类型、视频终端的属性信息、视频终端的资源状态信息、用户观看视频的偏好中的至少一项;

步骤2:根据所述视频终端信息和/或视频处理过程中的信道状态信息为所述视频终端选择延时和/或带宽分配策略;

步骤3:基于所述视频终端信息和/或视频处理过程中的信道状态信息确定视频处理任务的分解策略,以将视频处理任务分解为由多个处理单元执行的多个子任务。

与现有技术相比,本发明的优点在于:通过软件定义的视频处理系统,能够将视频信息处理过程的控制面与数据面分离开,从而实现可视信息/视频信息从采集、预处理到编码等操作的灵活控制,产生任意分辨率、任意码流的视频;此外,本发明能够实现可视信息的灵活编解码和采集,充分调度云计算等资源,实现快速高效的可视信息处理。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1示出了根据本发明一个实施例的一种基于软件定义的视频处理系统的示意图;

图2示出了图1系统中的异构环境感知模块的结构示意图;

图3示出了图1系统中的视频信息预处理模块的结构示意图;

图4示出了图1系统中的资源调度管理模块的结构示意图;

图5示出了基于本发明的视频处理系统的视频信息处理过程的示意图。

具体实施方式

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

根据本发明的一个实施例,提供了一种基于软件定义的视频处理系统(或称软件控制器),该系统能够实现视频编码过程中的控制面功能,用于指导数据面实现的具体编码过程,本文将重点介绍处理系统的各个模块和单元的功能,而对通用的各种标准的编码过程不再进行介绍。

参见图1所示,该系统100包括异构环境感知模块110、视频信息预处理模块120和资源调度管理模块130。

异构环境感知模块110用于感知视频终端的相关信息,包括终端类型、视频终端的属性信息以及视频终端的资源状态信息等,其中,终端类型与终端所处的地理位置相关,例如包含低空终端设备、地面移动终端设备、地面固定终端设备等,属性信息包括移动速度、处理能力、当前电量、连接方式等,资源状态信息包括例如视频终端的可用资源情况等。异构环境感知模块110建立各视频终端设备的位置索引,并向视频信息预处理模块120和资源调度管理模块130提供所需的视频终端信息。

视频信息预处理模块120用于根据来自于异构环境感知模块110的视频终端信息和/或实时获取的视频处理过程中的信道状态信息对视频信息的延时、带宽以及时序等进行管理和预处理,从而根据视频终端的类型、资源状态信息或信道状态信息等提供差异化的延时、时序策略等。视频信息预处理模块120还可将所收集的信道状态信息等提供给资源调度管理模块130。

资源调度管理模块130用于根据来自于异构环境感知模块110的视频终端信息和/或来自于视频信息预处理模块120的信道状态信息对视频处理任务进行分解,形成最优的多任务决策。资源调度管理模块130能够融合各种可视信号资源和视频终端信息,最后建立最佳的可视任务分解策略或多种最优决策。

为进一步描述本发明的视频处理架构,图2示出了根据本发明一个实施例的异构环境感知模块110的结构示意图,其包括低空终端设备感知单元1101、地面固定终端感知单元1102、地面移动终端感知单元1103和用户感知单元1104。

低空终端设备感知单元1101可感知多栖网络中所存在的所有低空终端设备,记录其id,并存储终端id、终端属性信息和终端资源状态信息等,终端属性信息例如包括移动速度、处理能力以及电量等。在本发明中。低空终端设备包括但不限于低空无人飞行器等。

地面固定终端感知单元1102可感知多栖网络中所存在的所有地面固定终端,并存储终端id、终端属性信息和终端资源状态信息等,终端属性例如包括位置、连接方式、处理能力以及电量等。在本发明中,地面固定终端包括但不限于智能电视、会议电视终端等。

地面移动终端感知单元1103可感知多栖网络中所存在的所有地面移动终端,并存储终端id、终端属性信息和终端资源状态信息等,终端属性例如包括连接方式(例如,wifi,移动网络等)、移动速度、处理能力以及电量等。在本发明中,地面移动设备包括但不限于平板电脑、智能手机等。

用户感知单元1104可感知多栖网络中所存在的所有用户,并记录用户的属性,所述用户属性例如包括使用的终端类型、连接方式、处理能力以及电量、用户偏好等,用户感知单元1104通常用特定的数据结构的方式存储用户属性信息。为了获取用户偏好,用户感知单元1104还存储用户的历史行为信息(例如观看视频的类型、观看时间等),并通过例如机器学习的方法获取用户偏好分析。

需要说明的是,低空终端设备感知单元1101、地面固定终端感知单元1102、地面移动终端感知单元1103和用户感知单元1104通常用特定的数据结构的方式存储相关信息(存储终端id和终端属性信息等),例如,可采用知识图谱、表格或树形结构等,只要能够清楚地存储终端设备信息,使得视频处理系统100能够获取即可。

综上,异构环境感知模块110能够感知多种类型的视频终端、各终端的属性信息和资源状态信息等,并将这些信息提供给视频信息预处理模块120和资源调度管理模块130以供其决策视频编码的策略或编码参数等。

图3示出了根据本发明一个实施例的视频信息预处理模块120的结构示意图,其包括资源状态收集单元1201、视频信息识别和过滤单元1202、策略管理单元1203、异构视频信息感知融合计算单元1204和异构视频信息时序管理单元1205。

资源状态收集单元1201用于获取来自于异构环境感知模块110的视频终端信息或者自身实时收集视频处理过程中其他模块或处理单元的反馈信息、信道状态信息等。

视频信息识别与过滤单元1202用于对视频信息进行内容识别,提取关键帧的图像特征,然后,分析与用户需求的视频信息的相关性,并进一步过滤一些与用户需求相关性较低的信号。

策略管理单元1203用于根据视频终端信息和/或信道状态信息等,为每个可视信息选择合适的延时或带宽分配策略。视频终端信息可来自于异构环境感知模块110,也可来自于资源状态收集单元1201,信道状态信息可来自于资源状态收集单元1201。

异构视频信息感知融合计算单元1204用于计算多个异构视频信息的最优可视信号融合方式。

异构视频信息时序管理单元1205用于根据策略管理单元1203提供的可视信息的延时策略,管理视频信号的处理顺序等。

图4示出了根据本发明一个实施例的资源调度管理模块130的结构示意图,其包括任务分解计算单元1301、多任务决策单元1302、多栖设备拓扑管理单元1303、用户接口界面单元1304、多栖设备协同调度单元1305、性能分析和跟踪单元1306、性能预测单元1307和反馈单元1308。

任务分解计算单元1301用于将复杂的可视信息处理任务根据系统资源条件分解为合适的多个任务,然后分配到各处理单元进行处理,例如,对于典型的视频编码,任务分解计算单元1301可将这些视频编码任务按块进行划分然后分发到不同类型的处理单元,划分后的块可独立解码,这些处理单元可以是位于云端的处理单元或者终端的处理单元。

多栖设备拓扑管理单元1303用于提供视频终端的连接关系,例如(连接到vlan或移动网络等)。

用户接口(ui)界面单元1304用于接收用户指定的需要产生的视频信号质量,例如分辨率要求等。

多任务决策单元1302用于决策出最优的视频终端调度策略并反馈到多栖设备协同调度单元1305,例如,根据多栖设备拓扑管理单元1303提供的可视终端的连接关系以及从用户接口(ui)界面单元1304接收的用户要求、以及来自于异构环境感知模块110的视频终端信息和/或来自于资源状态收集单元1201的视频处理过程中的信道状态信息等决策出优先处理哪些视频终端的视频信号。

性能预测单元1307用于对多任务决策单元1302和任务分解计算单元1301的结果进行预测,并可将预测结果进一步反馈给多任务决策单元1302和任务分解计算单元1301,以便后续对多任务最优管理进行优化。

性能分析与跟踪单元1306用于对多任务决策单元1302和任务分解计算单元1301的结果进行跟踪和分析,并通过反馈单元1308反馈到多任务决策单元1302和任务分解计算单元1301,以便后续对多任务最优管理进行优化。

综上,多任务决策单元1302和任务分解计算单元1301与资源调度管理模块130中的其它单元都可具有连接,以根据用户需要、视频终端的信息以及视频处理过程的性能监测等各方面的情况进行合适的策略性调整,以指导实际的视频编码过程,例如,设置帧间隔、帧率、关键帧的周期、码率类型(如,动态码率和固定码率)以及各子任务调度的处理单元等。

采用本发明的视频处理系统,能够根据移动终端的类型和所处的场景等,决策适当的编码策略,以能够满足移动终端计算能力与传输环境情况。

例如,面向移动终端的视频服务包括在线短小视频点播、各种即时通信的视频聊天等,当监测到网络带宽发生变化而导致不能传输整个码流时,可以会降低视频帧率以适应带宽。

又如,根据视频终端的移动速度来设置合适的码率,但移动速度快时,设置较低的码率。

本发明的视频处理系统实现的是视频处理过程中的控制面,例如,资源调度、选择最优策略等,而实际的数据面,即具体的编码过程可采用现有技术的专用或通用处理单元实现,通过这种方式能够将控制面和数据面分离开,从而实现可视信息的灵活编码和采集,并且能够充分调度云计算、边缘计算等节点的计算和通信资源,并且处理系统采用模块化的设计,各模块或单元各司其职,能够实现快速高效的可视信息处理。

为了进一步清楚的理解本发明,以一个实际的编码任务为例,说明资源调度管理模块130的功能。

假定有一帧视频序列,分辨率为4k(3840*2160),为快速完成编码任务,本发明将该任务分解为多个子任务,然后送到终端中并行处理,这时,根据终端的n个编码节点,各编码节点参数为:处理器速度:a={a1,a2,…,an},下行传输速度:ul={ul1,ul2,…,uln},上行传输速度,dl={dl1,dl2,…,dln},每个子任务为一个块,具有独立解码能力,数据长度为:block={block1,block2,…,blockn},编码后的数据长度为h={h1,h2,…,hn},则以任务完成时间将该编码任务分解为多个子任务为例,子任务i在相应编码节点的执行时间为:

其中,ti为子任务处理时间,通过并行处理该多个子任务时,所需的时间为:

则以处理时间为目标的编码任务优化函数可表示为:

其中,fr为一帧编码任务的总长度。

为了进一步降低优化目标的计算复杂度,减少延时,可选地,资源调度管理模块130可通过将性能分析与跟踪单元1306和反馈单元1308与性能预测单元1307的结果进行对比,然后对修正子任务划分策略,以使得系统性能更优。

例如,利用反馈时间进行修正,假定feedback={feedback1,feedback2,…,feedbackn}为反馈的完成子任务所需的时间,则性能预测单元1307可估算每个节点所需的处理能力为:计算为使各子任务在最小时间完成,可将子任务分解长度优化为:

当子任务分解完成后,可直接传输到所需终端的编码节点,发送时,应在数据加上分块id,以标识对应的子任务。

图5示例了根据本发明的视频处理过程,其中,实线为数据面,虚线为控制面,当终端请求视频内容时,视频序列被传输到本发明的视频处理系统100,根据异构环境感知模块110获取的异构终端的位置以及类型等信息、视频信息预处理模块120获取的需求信息,由资源调度管理模块130根据融合的信息产生匹配的多个子任务,然后将多个子任务信息形成流向表传输到交换机,交换机根据流向表为多个终端(终端1、终端2、终端3和终端4)发送匹配的子任务。

综上所述,本发明的软件定义的视频处理系统能够使视频提供商免除定制设备的局限,针对特定应用提供最佳的资源调度和处理器组合,即使该应用随时间变化,对新服务和视频格式的支持可通过简单的软件升级无缝集成。利用本发明的系统能够对消费者需求变化即时做出反应。此外,由于本发明的视频处理系统实现了控制面功能,软件定义视频依赖通用处理器,特定的视频处理功能可被虚拟化或驻留于基于云的设施内,因此可利用地上和基于云的资源。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1