专利名称:基于视频图像组分割的分布式转码任务调度系统及方法
技术领域:
本发明涉及视频码流转码技术,尤其涉及一种基于视频图像组分割的分布式转码任务调度系统及方法。
背景技术:
目前我国有5亿部移动电话,3.5亿台家庭电视机和1.22亿台接入互联网的个人计算机,这些电子设备构成了一个巨大的终端群体,也形成一个覆盖多种消费人群的巨大市场。面向这一市场,广播电视网、电信网和互联网的业务融合不仅会带动6至7千亿元的投资和消费,还有增加20万个左右的就业岗位。从扩大内需和应对全球金融危机的角度来看,“三网融合”的意义十分重大。对于视频服务领域,三网融合将在体制、机制、模式等层面引发一系列变革。传统意义上,广电和电信在我国是两个相对封闭的业务体系,分别拥有各自的内容服务体系,包括内容服务头端、分发网络和用户终端体系。广电的视频业务主要是基于广电分发网络的广播电视业务,电信的视频业务则包括基于电信网的IPTV服务和基于互联网到网络视频服务。从内容来源看,三网融合前广电体系视频业务完全使用自制内容,即由电视台集成和生产的节目;在电信体系中,视频业务的内容来源包括广电提供的内容(如电视频道、IPTV视频点播节目)、互联网媒体生产的内容(如新浪宽频、凤凰宽频等宽频网站)和用户创造的内容(如优酷、土豆等内容分享平台)。三网融合前,上述两大类视频业务有一个共同特点,即:每一类业务都有明确的服务对象,如广电针对有线网络机顶盒生产内容,电信针对IPTV机顶盒和手机生产内容,互联网媒体则针对PC等自由终端生产内容,对于每项业务,音视频编码和元数据组织的需求都非常明确,而终端计算能力、网络带宽等条件的差异导致各种视频业务都有私有的音视频编码格式和元数据格式,例如:目前广电视频点播标清节目的视频编码格式为MPEG-2,码率为3.75Mbps,而电信IPTV视频点播标清节目的视频编码格式通常为H.264或M PEG-4,码率低于3Mpbs。这些编码格式和元数据的差异造成内容文件不能直接跨业务使用。三网融合后,广电和电信将实现业务的相互准入。就视频业务而言,传统的两大纵向业务体系将不复存在,取而代之的是跨网络、跨终端的多层次业务体系结构。三网融合的视频业务体系将分为4个主要层次,即内容层、播控层、网络层和终端层。内容层:包括传统的电视台、互联网电视台、互联网内容提供商以及其他内容提供商,内容层的职能是内容生产和集成。播控层:播控层的职能是对内容层的视频业务进行集成、审查与播出控制,确保内容本身以及内容播出过程的安全性,并向内容层和网络层提供共性服务。网络层:包括广电网络运营商、电信网络运营商以及相应的广电网络和电信网络基础设施,网络层的职能是面向用户终端分发内容
终端层:包括运营商派发的终端(如机顶盒、手机)和自由终端(如PC),终端层呈现多屏特征(包括计算机、电视机(机顶盒)、手机以及其他接收终端)。可见,为了面向异构网络中的多屏终端提供内容服务,内容层必须解决音视频转码和元数据匹配等内容适配问题,具体需求可以归纳为:I)对海量视频内容的转码支持;2)对多格式视频内容的转码支持;3)对高时效性节目的转码支持;4)对异构元数据的支持。也就是说,每个内容提供商都必须具备一套内容适配系统,以便将不同编码格式和不同元数据结构的内容源进行转码和元数据适配,输出为多种目标格式。而为了满足上面所列的四点需求,这一系统的规模将非常庞大,对于大部分内容提供商而言,这一系统的建设和运维成本相当可观,甚至难以承受。
发明内容
本发明旨在提出一种利用分布式技术来实现视频码流转码的转码任务调度系统和方法。根据本发明的一实施例,提出一种基于视频图像组分割的分布式转码任务调度系统,该分布式转码任务调度系统连接到广电网、电信网和互联网并接收内容提供商提供的内容数据,所述分布式转码任务调度系统包括:内容接收接口,连接到广电网、电信网和互联网,从广电网、电信网和互联网接收由内容提供商提供的内容数据,内容数据是含有视音频码流的原始文件;存储系统,连接到内容接收接口,存储含有视音频码流的原始文件;码流预处理模块,连接到存储系统,从存储系统接收原始文件,解析文件容器,按照内容提供商定制的转码参数进行码流解复用,实现视频码流和音频码流的分离;码流分割模块,连接到码流预处理模块,码流分割模块将由码流预处理模块分离出的视频码流分割成具有先后顺序的视频码流段;数个转码节点,连接到码流分割模块,每一个转码节点从码流分割模块读取分割后的一个视频码流段,根据内容提供商定制的转码参数完成转码;码流合并模块,连接到数个转码节点,码流合并模块将转码后的视频码流段按照先后顺序组合成转码后的视频码流;码流后处理模块,连接到码流合并模块和存储系统,码流后处理模块对转码后的视频码流按照内容提供商定制的文件格式进行复用,并入音频码流并生成成品文件,码流后处理模块将成品文件存储在存储系统中;内容发送接口,连接到广电网、电信网和互联网,还连接到存储系统,内容发送接口从存储系统中提取成品文件并对外发送;任务调度模块,连接到内容接收接口、存储系统、码流预处理模块、码流分割模块、数个转码节点、码流合并模块、码流后处理模块和内容发送接口,任务调度模块在接收到内容数据后,将内容数据设置成任务,并向上述各个组件发送控制指令,指示组件工作。在一个实施例中,每一个转码节点包括编解码库,编解码库以插件的形式部署在转码节点中。在一个实施例中,码流分割模块基于图像组对视频码流进行分割。在一个实施例中,任务调度模块为任务分配优先级标记,并根据优先级标记的高低安排执行任务的顺序。根据本发明的一实施例,提出一种基于视频图像组分割的分布式转码任务调度方法,包括:从广电网、电信网和互联网接收由内容提供商提供的内容数据,内容数据是含有视音频码流的原始文件;接收到内容数据后,将内容数据设置成任务并执行;存储含有视音频码流的原始文件;提取原始文件,解析文件容器,按照内容提供商定制的转码参数进行码流解复用,实现视频码流和音频码流的分离;将分离出的视频码流分割成具有先后顺序的视频码流段;由数个转码节点同时进行转码,每一个转码节点读取分割后的一个视频码流段,根据内容提供商定制的转码参数完成转码;将转码后的视频码流段按照先后顺序组合成转码后的视频码流;对转码后的视频码流按照内容提供商定制的文件格式进行复用,并入音频码流并生成成品文件,存储成品文件;提取成品文件并对外发送。在一个实施例中,每一个转码节点包括编解码库,编解码库以插件的形式部署在转码节点中。在一个实施例中,基于图像组对视频码流进行分割。在一个实施例中,为任务分配优先级标记,并根据优先级标记的高低安排执行任务的顺序。本发明提出的基于视频图像组分割的分布式转码任务调度系统和方法,是一种多格式细粒度的视频转码系统,通过搭建分布式集群转码系统,将一个高复杂度的转码任务拆分为若干个低复杂度的子任务后在集群内统一调度,由单个计算节点完成子任务后再统一合并,达到快速转码的目的。同时,对于较难采用拆分合并机制的实时视频流,系统将集成高性能的硬件转码板卡设备,实现实时转码。
图1揭示了根据本发明的一实施例的基于视频图像组分割的分布式转码任务调度系统的结构图。图2揭示了根据本发明的一实施例的码流分割的过程。图3揭示了根据本发明的一实施例的任务调度的过程。图4揭示了 “全解全编”结构的转码系统的结构。图5揭示了根据本发明的一实施例的并行转码架构。图6揭示了根据本发明的一实施例的基于视频图像组分割的分布式转码任务调度方法的流程图。
具体实施例方式首先参考图1所示,本发明揭示了一种基于视频图像组分割的分布式转码任务调度系统100,该分布式转码任务调度系统100连接到广电网202、电信网204和互联网206并通过广电网202、电信网204和互联网206接收内容提供商200提供的内容数据。如图1所示,该分布式转码任务调度系统100包括:内容接收接口 102,连接到广电网202、电信网204和互联网206。内容接收接口102从广电网202、电信网204和互联网206接收由内容提供商200提供的内容数据。内容数据是含有视音频码流的原始文件。存储系统104连接到内容接收接口 102,存储系统104存储含有视音频码流的原始文件。该视音频码流是待转码的视频和音频的混合码流。存储系统104同时还存储转码后的视频和音频的混合码流,并以成品文件的形式保存,供内容发送接口 116提取使用。码流预处理模块106连接到存储系统104,码流预处理模块106从存储系统104接收原始文件,解析文件容器,按照内容提供商定制的转码参数进行码流解复用,实现视频码流和音频码流的分离。码流分割模块108连接到码流预处理模块106,码流分割模块108将由码流预处理模块106分离出的视频码流分割成具有先后顺序的视频码流段。码流分割模块108将视频码流分割成视频码流段,在分割时需要考虑转码后合并码流的图像连续性,避免产生跳帧或重帧等现象。对于音频码流,由于音频转码的复杂度远远低于视频,因此音频码流不做分害I],直接转码。数个转码节点110连接到码流分割模块108,每一个转码节点110从码流分割模块读取分割后的一个视频码流段,根据内容提供商定制的转码参数完成转码。或者,一个转码节点110也可以用于进行音频码流的转码,这样的话,该转码节点110获取完整的音频码流,对整个音频码流进行转码。在一个实施例中,每一个转码节点110包括编解码库,编解码库以插件的形式部署在转码节点中,使得每个转码节点支持的码流格式具有可扩展性。码流合并模块112连接到数个转码节点110,码流合并模块112将转码后的视频码流段按照先后顺序组合成转码后的视频码流。码流合并是码流分割的逆操作,主要目的是将转码后的视频码流段重新组合到一起,形成完整的视频码流并保持原始的码流先后顺序。码流后处理模块114连接到码流合并模块112和存储系统104,码流后处理模块114对转码后的视频码流按照内容提供商定制的文件格式进行复用,并入音频码流并生成成品文件,码流后处理模块114将成品文件存储在存储系统104中。内容发送接口 116,连接到广电网202、电信网204和互联网206,还连接到存储系统104,内容发送接口 116从存储系统104中提取成品文件并对外发送。任务调度模块118,连接到内容接收接口 102、存储系统104、码流预处理模块106、码流分割模块108、数个转码节点110、码流合并模块112、码流后处理模块114和内容发送接口 116。任务调度模块118在接收到内容数据后将内容数据设置成任务,并向上述各个组件发送控制指令,指示上述的各个组件工作。任务调度模块118的任务调度是整个分布式转码任务调度系统的核心,负责管理系统内的所有计算资源,当发现有新的任务到达时,它首先根据改任务的优先级以及当前系统的可用资源,分配适当的计算资源依次去完成码流预处理、码流分割、转码、码流合并、码流后处理这几个步骤。在一个实施例中,码流分割模块108基于图像组对视频码流进行分割。图2揭示了根据本发明的一实施例的码流分割的过程。视频码流中的图像组(Group Of Pictures,GOP)是由一系列连续的图像组成的,每段视频码流包含了若干个连续的图像组。每个图像组至少有一个I帧,并且I帧处于图像组的开头。I帧可以独立解码而无需依赖其他帧,因此一般说来,一个图像组内出现的错误最多延续至下一个I帧。在视频文件分割的过程中,图像组级别的粒度比较适中,相比单帧的粒度而言,有更好的解码独立性;相比一整段完整的视频粒度,有更好的转码并发性。因此,在视频文件分割的过程中,需要对码流的图像组结构进行判断,分别针对Open GOP和Close GOP的情况采取不同的分割策略,即Open GOP时需要对每一段分割码流片断的前部增加一个GOP的冗余,保证解码器能够解出这个片断中的所有帧。同时在进行分割时还要记录下分割策略的选择情况,供合并程序参考使用。在一个实施例中,任务调度模块118为任务分配优先级标记,并根据优先级标记的高低安排执行任务的顺序。图3揭示了根据本发明的一实施例的任务调度的过程。如图3所示,当任务请求到达后,任务分析根据任务的属性将任务分为“非紧急任务”与“紧急任务”。非紧急任务带有可量化的优先级标记,进入任务队列后依据优先级进行排队,在任务队列中的任务优先级会随着在队列中的时间的增长而提高,这样可以防止“饿死”的问题出现,即某个较低优先级的任务由于一直排在较高优先级任务后面而一直无法得到转码服务。紧急任务具有非常高的优先级,可以绕过一般的任务队列,直接请求计算资源以完成转码。在可用计算资源不足的情况下,可以通过调度将其他正在进行的非紧急转码任务暂停,腾出足够的计算资源服务于该紧急转码任务,保证紧急转码任务在较低的时间内完成。资源调度一方面通过节点监控传达的信息,得到集群的负载分布,再根据节点计算能力库中存储的信息,得到实时的集群可用计算资源分布情况;另一方面根据任务情况(紧急任务和非紧急任务队列),调配可用的计算资源。最终形成一系列的控制命令发给节点控制模块。节点控制执行由资源调度模块发来的节点控制命令,使计算节点执行、暂停或恢复某个特定任务,包括码流预处理、码流分割、转码、码流合并和码流后处理,控制命令除了执行、暂停和恢复基本操作外,还指定了任务的输入和输出,以及相关的参数设置。节点监控接受从所有计算节点发来的心跳信号,心跳信号包含节点当前负载、当前执行的任务优先级和进度或结果,将这些信息汇总后形成集群负载分布报告,提供给资源调度模块。数个转码节点110用于执行转码任务。在一个实施例中,转码节点为内容提供商提供统一的服务接口,内容提供商不必建设自己的转码系统,而只需将内容(待转码的视频码流与元数据)和转码需求通过服务接口输入转码节点即可,转码节点将按需进行转码计算,输出目标格式的内容(包括转码后的视频码流和元数据)。目前最广泛使用的转码系统的最基本结构是“全解全编”结构,图4揭示了目前广泛使用的“全解全编”结构的转码系统的结构。该种结构的转码系统直接由解码器和编码器串联而成。该转码系统先对输入的视频码流进行完全解码,然后再按新的视频格式要求进行编码。然而,“全解全编”转码的计算复杂度较高,一般适合离线应用场合。一些快速的转码系统结构一般是在上述结构的基础上采取了许多优化措施,如在解码环路中利用输入码流中如视频序列头信息、宏块编码模式信息、运动矢量信息、频域的压缩系数等压缩域信息,在保持视频质量下降不大的条件下,尽可能降低编码计算的复杂度,提高转码速度。视频转码器的类型多种多样,按照结构主要分为两大类:像素域转码(Pixel-Domain Transcoding, PDT)和压缩域转石马(Compressed-Domain Transcoding,⑶T),后者也可以称为变换域转码。PDT是指对输入流进行完全解码得到像素域图像,在像素域进行转码;CDT则不需要完全解码,而是在变换域中进行转码。PDT有着实现灵活的特点,可以满足多种不同的转码需要,输出图像质量较高,但在转码时需要做IDCT和DCT计算,复杂度较高;CDT则是直接处理压缩域系数,减少重新编码的计算量,但其实现框架不够灵活,转码质量下降较大。从视频转码器所依赖的计算平台来看,视频转码软件的实现从最初单纯简单依靠单个CPU的通用计算能力,发展到利用CPU的多功能指令集(如MMX、3D Now,SSE等)。但在经历了 CPU核心的计算能力快速提高的阶段后,单个核心的计算能力已经接近瓶颈,而人们对视频质量的需求却与日俱增,从最早的V⑶(分辨率352 X 288,码率约1.5Mbps),到标清DVD (分辨率720 X 576,码率约4.5Mbps),再到高清蓝光(分辨率1920 X 1080,码率约25Mbps),使得相应的转码复杂度也大大增加。随着多核计算机和并行计算思想的普及,视频转码的并行化成为大势所趋。本发明的数个转码节点110采用的是并行转码的系统架构,使得多个转码节点可以以多核并行转码的方式同时进行转码,以提升转码效率。图5揭示了根据本发明的一实施例中数个转码节点采用的并行转码架构。该架构包括了如下的几个主要部件或者处理步骤:501.流量监控模块监测图像帧到达时间间隔,得到流量到达速率并检测出速率变化点。502.电源管理模块维护操作表,根据当前活跃的核心数和所需的核心频率改变操作级别。503.核心配置模块根据操作中的操作级别调整单个核心的频率级别。504.任务调度模块基于当前的核心频率配置信息作出调度决定,根据每个核心的转码速率分配负载。每一个单核的转码节点可以采用上述的具有“全解全编”结构的转码系统。多核并行转码技术极大地提高了转码系统的转码速度。本发明还揭示了一种基于视频图像组分割的分布式转码任务调度方法,如图6所示,图6揭示了根据本发明的一实施例的基于视频图像组分割的分布式转码任务调度方法的流程图。该方法600包括:601.从广电网、电信网和互联网接收由内容提供商提供的内容数据,内容数据是含有视音频码流的原始文件。602.接收到内容数据后,将内容数据设置成任务并执行。在一个实施例中,为任务分配优先级标记,并根据优先级标记的高低安排执行任务的顺序。603.存储所述含有视音频码流的原始文件。604.提取原始文件,解析文件容器,按照内容提供商定制的转码参数进行码流解复用,实现视频码流和音频码流的分离。605.将分离出的视频码流分割成具有先后顺序的视频码流段。在一个实施例中,基于图像组对视频码流进行分割。606.由数个转码节点同时进行转码,每一个转码节点读取分割后的一个视频码流段,根据内容提供商定制的转码参数完成转码。一个转码节点也可以用于进行音频码流的转换,因为音频码流的复杂度较低,进行音频码流的转换时,可以读入完整的音频码流进行整体转换。在一个实施例中,每一个转码节点包括编解码库,编解码库以插件的形式部署在转码节点中。607.将转码后的视频码流段按照先后顺序组合成转码后的视频码流。608.对转码后的视频码流按照内容提供商定制的文件格式进行复用,并入音频码流并生成成品文件,存储成品文件。609.提取成品文件并对外发送。上述的方法600中的执行细节与前述分布式转码任务调度系统100中的实现细节相对应,此处不再赘述。综合而言,本发明的基于视频图像组分割的分布式转码任务调度系统和方法具有如下的特点:可扩展性强,通过增加计算节点就可以增强集群的转码能力,而集群对单个计算节点的计算能力没有过多限制,从而提高单机的利用率,避免资源浪费;任务调度灵活,可以根据单个转码任务的优先级、当前空余的计算节点数和剩余计算能力进行任务的拆分和计算资源的调配;系统鲁棒性高,集群中计算节点的冗余使得即便单个或少数几个节点出现故障,系统仅损失相应的一小部分计算能力,仍可以正常运转。本发明提出的基于视频图像组分割的分布式转码任务调度系统和方法,是一种多格式细粒度的视频转码系统,通过搭建分布式集群转码系统,将一个高复杂度的转码任务拆分为若干个低复杂度的子任务后在集群内统一调度,由单个计算节点完成子任务后再统一合并,达到快速转码的目的。同时,对于较难采用拆分合并机制的实时视频流,系统将集成高性能的硬件转码板卡设备,实现实时转码。
权利要求
1.一种基于视频图像组分割的分布式转码任务调度系统,其特征在于,该分布式转码任务调度系统连接到广电网、电信网和互联网并接收内容提供商提供的内容数据,所述分布式转码任务调度系统包括: 内容接收接口,连接到所述广电网、电信网和互联网,从广电网、电信网和互联网接收由内容提供商提供的内容数据,所述内容数据是含有视音频码流的原始文件; 存储系统,连接到所述内容接收接口,存储所述含有视音频码流的原始文件; 码流预处理模块,连接到所述存储系统,从存储系统接收所述原始文件,解析文件容器,按照内容提供商定制的转码参数进行码流解复用,实现视频码流和音频码流的分离;码流分割模块,连接到所述码流预处理模块,码流分割模块将由码流预处理模块分离出的视频码流分割成具有先后顺序的视频码流段; 数个转码节点,连接到所述码流分割模块,每一个转码节点从码流分割模块读取分割后的一个视频码流段,根据内容提供商定制的转码参数完成转码; 码流合并模块,连接到所述数个转码节点,码流合并模块将转码后的视频码流段按照先后顺序组合成转码后的视频码流; 码流后处理模块,连接到所述码流合并模块和存储系统,码流后处理模块对转码后的视频码流按照内容提供商定制的文件格式进行复用,并入音频码流并生成成品文件,码流后处理模块将成品文件存储在存储系统中; 内容发送接口,连接到所述广电网、电信网和互联网,还连接到所述存储系统,内容发送接口从存储系统中提取成品文件并对外发送; 任务调度模块,连接到所述内容接收接口、存储系统、码流预处理模块、码流分割模块、数个转码节点、码流合并 模块、码流后处理模块和内容发送接口,任务调度模块在接收到内容数据后,将内容数据设置成任务,并向上述各个组件发送控制指令,指示所述组件工作。
2.如权利要求1所述的基于视频图像组分割的分布式转码任务调度系统,其特征在于,每一个转码节点包括编解码库,编解码库以插件的形式部署在转码节点中。
3.如权利要求1所述的基于视频图像组分割的分布式转码任务调度系统,其特征在于,所述码流分割模块基于图像组对视频码流进行分割。
4.如权利要求1所述的基于视频图像组分割的分布式转码任务调度系统,其特征在于,所述任务调度模块为任务分配优先级标记,并根据优先级标记的高低安排执行任务的顺序。
5.一种基于视频图像组分割的分布式转码任务调度方法,其特征在于,包括: 从广电网、电信网和互联网接收由内容提供商提供的内容数据,所述内容数据是含有视音频码流的原始文件; 接收到内容数据后,将内容数据设置成任务并执行; 存储所述含有视音频码流的原始文件; 提取原始文件,解析文件容器,按照内容提供商定制的转码参数进行码流解复用,实现视频码流和音频码流的分离; 将分离出的视频码流分割成具有先后顺序的视频码流段; 由数个转码节点同时进行转码,每一个转码节点读取分割后的一个视频码流段,根据内容提供商定制的转码参数完成转码;将转码后的视频码流段按照先后顺序组合成转码后的视频码流; 对转码后的视频码流按照内容提供商定制的文件格式进行复用,并入音频码流并生成成品文件,存储成品文件; 提取成品文件并对外发送。
6.如权利要求5所述的基于视频图像组分割的分布式转码任务调度方法,其特征在于,每一个转码节点包括编解码库,编解码库以插件的形式部署在转码节点中。
7.如权利要求5所述的基于视频图像组分割的分布式转码任务调度方法,其特征在于,基于图像组对视频码流进行分割。
8.如权利要求5所述的基于视频图像组分割的分布式转码任务调度方法,其特征在于,为任务分配优先级标 记,并根据优先级标记的高低安排执行任务的顺序。
全文摘要
本发明揭示了一种基于视频图像组分割的分布式转码任务调度系统,该分布式转码任务调度系统连接到广电网、电信网和互联网并接收内容提供商提供的内容数据,包括内容接收接口、存储系统、码流预处理模块、码流分割模块、数个转码节点、码流合并模块、码流后处理模块、内容发送接口和任务调度模块。任务调度模块连接到上述的各个组件,任务调度模块在接收到内容数据后,将内容数据设置成任务,并向上述各个组件发送控制指令,指示组件工作。本发明还揭示了一种基于视频图像组分割的分布式转码任务调度方法。
文档编号H04N7/26GK103152613SQ20111040013
公开日2013年6月12日 申请日期2011年12月6日 优先权日2011年12月6日
发明者张世乐, 王嶺, 卢宝丰, 陆伟 申请人:上海文广互动电视有限公司