具有自适应的文件处理的分布式视频转码系统的制作方法

文档序号:7915700阅读:175来源:国知局
专利名称:具有自适应的文件处理的分布式视频转码系统的制作方法
技术领域
本发明涉及包含数字信息的文件的转码。
背景技术
随着数字技术的迅速增长,不同的数字文件格式的数量也迅速增长。很多数字装置仅仅具有接受ー种格式的数字文件的能力。由此,为了调节使用不同格式的装置,分发数字文件的系统使用一个或多个转码器,其中转码器包括将数字文件从ー种格式转换至其他 格式的操作机构。标准的转码数字文件的方法使用“轮叫(Round-robin) ”方法,其中文件经历传输到达转码网络中的交替节点。每个节点典型地具有将数字文件如数字视频文件从ー种格式转码成其他格式的能力。轮叫方法已经被证明为无效的,因为它无法在节点之间实现真正的负载均衡。当执行部分文件的转码时,渲染集群(render farm)可以处理单个的巾贞或者数据块,从而适当地均衡每个节点之间的负载。对于整个文件的转码,将数据块分别分发至单个的节点已经被证明为困难的。每个节点必须完整地处理文件。传统的“渲染集群”不适用于这种形式的负载均衡。

发明内容
简要地,根据本原理的优选实施方案,提出一种改进的用于转码数字文件的技术以提高效率。本原理的转码技术基于数字文件的转码配置、所要转码的源数字文件的特征、所要转码的数字文件的优先级和转码节点的转码历史的比较从多个转码节点中选择ー个转码节点用于转码数字文件。作为实例,数字视频文件的转码配置可包括关于大小、输入媒体格式、输出媒体格式、压缩类型和持续时间的信息。比较发生在各个转码的转码历史和转码配置之间以确定节点中哪些节点具有使用相似的配置处理文件的历史,哪个节点提供更好的性能,例如更快地处理具有相似的转码配置的文件。


图I示出现有技术的使用传统的“轮叫”方法的转码系统;图2示出根据本原理的第一实施方案的作出明智的转码决定以改进转码效率的转码系统;以及图3示出根据本原理的第二实施方案的作出明智的转码决定以通过自适应地配置额外的转码节点改进转码效率的转码系统。
具体实施例方式图I示出现有技术的转码系统10的结构示意图,用于将数字文件,包括但不限于数字视频,从ー种格式转码成其他格式。例如,图I的转码系统10可以将MicrosoftWindows Media 格式的数字视频文件转换成a 264格式。还可进行其他格式之间的文件转码。特别地,图I的现有技术的转码系统包括多个转码节点,以节点12和14表示,每个节点典型地由接收命令和数字文件的机器(例如,使用软件程序化的数字计算机)组成。响应于上述命令,转码节点12和14将接收到的数字文件从ー种格式转码成其他格式。用于转码数字文件的操作机构为本领域现有的,为了简要,此处省略转码节点12和14的详细描述。节点管理器16用于将进入的数字文件分发至转码节点12和14以转码。如 图I的示例性实施例所示,节点管理器16接收到三个文件,命名为文件I、文件2和文件3,用于分发至转码节点12和14。为了讨论,文件I的大小远比文件I和文件2大。现有技术的转码系统10的节点管理器16典型地包括处理器(未示出)和其他可能的硬件,用于在“轮叫”基础上将文件I、文件2和文件3分发至转码节点12和14。换句话说,节点管理器16将分发第一文件(S卩,文件I)至转码节点12,然后分发第二文件(即,文件2)至转码节点14,然后分发第三文件(即,文件3)至转码节点12。由此,在两个节点的系统的情况下,如图I所示,节点管理器16将交替地发送文件至转码节点12和14。对于具有多个节点的转码系统,节点管理器16将连续地发送文件至每个转码节点并重复该过程直至所有文件都被分发完。采用轮叫方法将转码文件分发至转码节点通常不能实现高效。下面的示例将说明轮叫方法的效率。假设文件I、文件2和文件3的每个包括具有以下特征的视频文件文件I一十分钟长的Windows Media文件转换成H. 264文件需要的处理能力高文件2-2分钟长的Windows Media文件转换成更高压缩的Windows Media文件需要的处理能力低文件3-2分钟长的Windows Media文件转换成闪存文件需要的处理能力中等使用传统的轮叫转码方法,图I的节点管理器16将基于节点管理器接收到文件的时间以交替的次序将文件I、文件2和文件3呈送至转码节点12和14。因此,转码节点12将接收文件I和文件3,而转码节点14将仅接收文件2。另外,传统的方法既不考虑输入媒体特征(例如,长度、类型、分辨率、比特率),也不考虑输出媒体特征(例如,类型、分辨率、比特率)。根据本原理,改进的转码方法根据文件的转码配置明智地在转码节点之间分发文件从而实现更高的效率,并且处理文件的节点的经验具有相似配置。文件的转码配置包括与转码所需的工作(例如,计算工作量)相关的信息。例如,文件的特征(在这个示例中称作“太”、“中等”或“小”,但是在实际中可以为更粒状的)构成处理能力的数量和完成转码任务所需的时间的測量。另外,转码文件的复杂度也依赖于其他因素,包括但不限于输入文件格式、输出文件格式、文件持续时间、压缩类型和比特率。图2示出根据本原理的用于明智地分发文件至转码节点以实现改进的效率的转码系统100的示意图。图2的转码系统100包括多个转码节点,以节点120和140示例性地表示;每个节点典型地与图I的转码节点12和14的配置相同。为了在下文中变得更好理解,转码节点120和140的精确的性质不在本原理的明智的转码技术中发挥作用。重要的是,节点管理器160记录和分析每个节点的处理“历史”的能力,例如,节点执行转码的可用性以及转码节点转码具有已知配置的文件所花费的时间。转码节点可具有同时处理ー个或多个任务的能力。额外的任务可放置在处理它的节点的工作队列中。图2的转码系统包括用于分发文件至转码节点120和140的节点管理器160。为此,节点管理器160包括处理器(未示出)和其他可能的硬件用于分发文件。与图I的节点管理器16相反,图2的节点管理器160不使用传统的先进先出,轮叫方法。相反地,图2的节点管理器160通过考虑转码节点120和140的转码历史而应用明智的转码方法从而在转码节点之间分发文件。为此,节点管理器160享有到数据库170的链接,其中数据库170 典型地利用服务器程序,如微软的SQL数据库服务器,用于存储和访问转码节点120和140的转码历史。虽然图2示出的数据库170与节点管理器160相分离,但是数据库也可作为节点管理器自身的一部分存在。与图2示出的链接至节点管理器160的数据库170相同,数据库也连接至转码节点120和140中的每个。根据本原理,节点管理器160基于节点对具有相似配置的文件的转码历史和经历呈送至转码节点的文件的比较,在转码节点120和140之间分发文件。以下的示例将说明图2的节点管理器160如何通过明智地分发文件至转码节点120和140而有利地完成转码。假设节点管理器160同时接收三个文件,文件I、文件2和文件3,分别为大、小和中等。进一步假设最初转码节点120和140当前都没有其他文件需转码,且每个转码节点具有相同的转码能力。首先,由于每个转码节点都是空闲的,节点管理器160将选择ー个转码节点,比如转码节点120来接收第一个文件,例如文件I。对于下ー个文件,例如,文件2,节点管理器160将检查转码节点的转码历史以与要经历转码的文件的转码配置相比较。通过每个转码节点的转码历史与要经历转码的文件的转码配置的比较,节点管理器160可以选择能够提供最快性能的转码节点。此外,节点管理器160可选择没被使用(例如,当前不在处理文件)的转码节点或者提供最小误差率的转码节点,而不选择提供最快性能的转码节点。由于转码节点120忙于文件I的转码,节点管理器160将基于节点的转码历史和文件的转码配置的比较以及节点140当前不在处理任何文件的事实,将文件2发送至节点140。基于这些信息,节点管理器160将发送文件2至转码节点140。已经为文件I和文件2做出转码节点的选择,接着节点管理器160确定文件3的目的地。使用传统的“轮叫”方法,节点管理器160将选择转码节点120来接收文件3,而不管转码节点120依然需要一段较长的时间来忙于转码文件I的事实。但是,使用本原理的明智的转码方法,节点管理器160将比较节点转码历史和文件3的转码配置以及每个节点的当前工作负载。基于这种做法,节点管理器160将可能发现转码节点140当前正在处理小文件并将可在节点120之前被利用来执行文件3的转码,假设文件2比处理文件I所需的工作量小。根据那些发送至转码节点120和140的文件大小之间的相对差异,节点管理器160可以连续地发送ー些文件至相同的转码节点,而不是交替地发送文件至转码节点,如现有技术的轮叫方法所执行的。如前所述,每个转码节点的转码历史表示节点的当前活动(S卩,当前是否执行指定文件的转码)以及过去的活动(即,转码文件以及文件的转码配置所花费的时间)。使用指定转码节点的转码历史,图2的节点管理器160可确定该节点的转码參数(例如,执行时间或比特误差率),从而对干与具有相似配置的文件的转码相关的转码节点,通过已知的转码參数转码具有指定配置的数字文件。本原理的明智的转码技术不要求标准的轮叫技术的任何牺牲。事实上,如上所讨论的,本原理的明智的转码技术为现存的转码节点提供改进的效率。进ー步地,该明智的转码技术也能够容易地调节额外的转码,通过“学习”新转码节点的转码能力。当増加ー个或多个新转码节点,节点管理器160将典型地呈送文件至新配置的转码节点,通过首先假设基准性能然后适应于具有更多任务历史的实际节点性能。由此,本原理的明智的转码技术有利地允许节点管理器160増加新转码节点至网络,而不必否决老的转码节点。每个额外的转码节点,不管处理能力如何,都为整个处理能力提供增长。 为了更好地理解本原理的明智的转码技术如何容易地调节额外的转码节点,參考图3,其描述了第二优选实施方案的转码系统1000,转码系统1000与图2的转码系统100具有相同的特征。为此,相似的參考数字描述相似的元件。由此,类似于图2的转码系统100,图3的转码系统1000包括转码节点120和140,以及节点管理器160和数据库170。但是,转码系统1000具有额外的转码节点190,为了讨论,转码节点190具有更大的计算力,因此可比转码节点120和140更快地处理给定特征的文件。使用本原理的明智的转码技木,图3的转码系统1000的节点管理器160将利用转码节点190提供的増大的能力来分发文件。假设为了讨论,图3的转码系统1000的节点管理器160同时接收文件I、文件2和文件3,分别为大、小和中等。同时假设转码节点120、140和190都没有要处理的挂起文件。即使节点120典型地首先出现在通过节点管理器160保存的转码节点的列表上,图3的节点管理器将选择转码节点190来接收文件I。如前所讨论的,转码节点190相比于转码节点120具有更大的计算力。由此,转码节点190的转码历史和文件I的转码配置的比较将比节点120的转码历史与文件I的转码配置之间的比较产生更好的結果。只要转码节点190的转码历史和文件I的转码配置的比较比节点120的转码历史与文件I的转码配置之间的比较产生更好的结果,节点管理器160将选择转码节点190,如果节点190还具有更可用的转码能力(例如,基于队列的当前工作负载)。最后,转码节点190将接收工作负载队列中的足够多的文件直至节点190的工作负载和性能与其他节点的工作负载和性能相比不能产生更好的結果。那时,节点管理器160将发送文件至转码节点120和/或140。本原理的明智的转码技术进ー步考虑每个转码节点的当前工作负载以及节点的执行能力,可以分配任务以提供系统的最佳呑吐量。例如,使用图3的转码系统1000,提交额外的文件4的处理请求。节点管理器160可分配文件4至节点120,因为它将很快完成小文件2的处理从而具有最低的工作负载,而190将花费最长的时间忙于文件1,节点140将花费中等数量的时间忙于文件3。本原理的明智的转码技术进ー步允许为经历转码的文件分配优先级。例如,每个文件可具有一定数值的分配的点数,分配的点数的数值越高表明文件的优先级越高。当选择用于接收文件的转码节点时,节点管理器160可考虑文件优先级。这种文件优先级与文件的转码优先级独立存在。由此,可存在具有相同配置的两个文件,但是具有不同的优先化。节点管理器160可基于文件的优先级分配任务,可能取代在节点的工作队列中的其他任务。例如,如果节点120当前正在处理优先级为100的文件2且在队列中有优先级为20的文件4,那么节点管理器160可在节点120工作队列中于文件4前插入优先级为90的文件5。由此,节点120将处理文件2、文件5,然后文件4。 节点管理器160可以保存优先化基础上的转码节点。由此,节点管理器160可以保存一个或多个转码节点用于更高优先级的任务。利用这种方法,所有较低优先级的任务将自动地前往较低级的节点。上面描述了ー种改进效率的明智的转码技木。
权利要求
1.一种转码方法,包括以下步骤 基于源数字文件的特征、用于数字文件的转码配置和转码节点的转码历史的比较,选择多个所述转码节点中的ー个用于转码所述数字文件。
2.根据权利要求I所述的方法,其中基于用于所述数字文件的转码配置和各个转码节点的所述转码历史的比较选择所述转码节点以获取最快的性能。
3.根据权利要求I所述的方法,其中基于用于所述数字文件的转码配置和各个转码节点的转码历史的比较选择所述转码节点以获取最小误差。
4.根据权利要求I所述的方法,其中所述转码配置包括表明转码所需的计算工作量的信息。
5.根据权利要求4所述的方法,其中所述转码文件配置包括表明文件大小的信息。
6.根据权利要求4所述的方法,其中所述转码文件配置包括输入文件格式、输出文件格式、文件持续时间、压缩类型和比特率中的至少ー个。
7.一种转码数字文件的方法 为每个数字文件分配优先级; 为多个转码节点分配不同的优先级; 基于所述数字文件的转码配置和所述转码节点的转码历史的比较,从具有不超过所述文件优先级的优先级的所述转码节点中选择转码节点用于执行文件转码。
8.根据权利要求7所述的方法,其中基于用于所述数字文件的转码配置和所述转码节点的转码历史的比较选择所述转码节点以获取最快的性能。
9.根据权利要求7所述的方法,其中基于用于所述数字文件的转码配置和所述转码节点的转码历史的比较选择所述转码节点以获取最小误差。
10.根据权利要求7所述的方法,其中所述转码配置包括表明转码所需的计算工作量的信息。
11.根据权利要求10所述的方法,其中所述转码文件配置包括表明文件大小的信息。
12.根据权利要求11所述的方法,其中所述转码文件配置包括输入文件格式、输出文件格式、文件持续时间、压缩类型和比特率中的至少ー个。
13.一种转码数字文件的方法 为每个数字文件分配优先级;以及 基于用于所述数字文件的转码配置、所述转码节点的转码历史、所述节点的当前工作负载的比较,从所述转码节点中选择转码节点用于执行文件转码。
14.根据权利要求13所述的方法,其中在多个转码节点中分配优先级;基于所述数字文件的转码配置和所述转码节点的转码历史的比较从具有不超过所述文件优先级的优先级的所述转码节点中选择转码节点用于执行文件转码。
15.—种转码系统,包括 多个转码节点;以及 节点管理器,用于基于所述数字文件的转码配置和所述转码节点的转码历史的比较,从所述多个转码节点中选择转码节点用于转码数字文件。
16.根据权利要求15所述的转码系统,其中所述节点管理器基于所述数字文件的转码配置和各个转码节点的转码历史的比较选择所述转码节点以获取最快的性能。
17.根据权利要求15所述的转码系统,其中所述节点管理器基于所述数字文件的转码配置和所述转码节点的转码历史的比较选择所述转码节点以获取最小误差。
18.根据权利要求15所述的转码系统,其中所述转码配置表明转码所需的计算工作量的信息。
19.根据权利要求18所述的转码系统,其中所述转码文件配置包括表明文件大小的信 息O
20.根据权利要求19所述的转码系统,其中所述转码文件配置包括输入文件格式、输出文件格式、文件持续时间、压缩类型和比特率中的至少ー个。
全文摘要
为了获取更高的转码效率,节点管理器(160)基于每个数字文件的转码配置和转码节点的转码历史的比较在转码节点(120,140和190)之间分发数字文件。用这种方法,节点管理器(160)将考虑所要转码的文件的特征选择最能进行转码的转码节点。
文档编号H04L29/08GK102859961SQ201080062944
公开日2013年1月2日 申请日期2010年9月22日 优先权日2009年12月22日
发明者大卫·亚历山大·英格利许, 班杰明·杰·麦寇力斯特, 马克·罗柏特·毕侠 申请人:Gvbb控股股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1