资源受限设备上的媒体分析和处理构架的制作方法

文档序号:12469694阅读:176来源:国知局
资源受限设备上的媒体分析和处理构架的制作方法与工艺

本申请受益于在2015年6月5日提交的名称为“Media Analysis and Processing Framework on a Resource Restricted Device”的美国专利申请系列s.n.62/171957的优先权,该美国申请的公开的全部内容通过引用并入这里。

技术领域

本公开涉及用于资源受限设备上的媒体分析和处理构架的系统和方法。



背景技术:

媒体分析和处理构架在设备内提供了用于计算由终端存储的媒体资产(asset)的描述符的工具套件。典型地,终端具有有限的资源,这会导致描述符计算由于资源约束而被拖延或中止。

因此,需要用于根据指示计算时间、预期复杂性和其它因素的处理预算标识符调度计算方法的系统和方法。

附图说明

图1示出根据本公开的一个方面的终端的框图。

图2示出根据本公开的一个方面的媒体分析和处理构架与客户机之间的交互。

图3示出根据本发明的实施例的系统,该系统包括通过网络相互通信的多个终端。

具体实施方式

本公开的实施例提供了用于资源受限设备上的媒体的处理的系统和方法。响应于来自识别要被处理的媒体资产的应用的调用、要对于媒体资产执行的标识符和与调用相关联的处理预算,可产生处理操作的分层调度。在逐个批次的基础上,可基于产生的分层调度执行一个批次的处理操作。另外,可确定下一批次的处理操作的可用资源。如果没有足够的资源可用于下一批次的处理操作,那么可中断分层调度。但是,如果存在可用于下一批次的处理操作的足够资源,那么可基于分层调度执行下一迭代。

图1是根据本公开的实施例的终端100的框图。终端100可包含处理器110、存储器系统120和输入/输出系统130。处理器110可执行代表操作系统112和一个或更多个应用114的程序指令。程序指令可由存储器系统120存储并且被读取到处理器110以供执行。处理器110可以为例如中央处理单元、微处理器、可编程逻辑阵列(PLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或执行程序指令并且有利于数据传输的任何其它可编程逻辑器件(PLD)。

存储器系统120代表存储设备的等级系统,该等级系统可包含驻留于处理器110上的随机存取存储器、短期存储设备和长期存档存储器。在可能方便的情况下,存储器系统120可包含电、磁和/或光学存储设备。存储器系统120可包含数据库系统(未示出)。与本讨论有关的是,存储器系统120可包含媒体资产121~125,这些媒体资产可包含数字图像、视频和/或图形文件(在可能方便情况下,具有伴随的音频)。除了代表媒体资产121~125和相关的blob描述符的数据以外,存储器系统120可存储代表操作系统112、应用114以及媒体分析和处理构架116的程序指令。存储器系统120可以是内部存储器或诸如存储器芯片的可拆装类型的存储器。存储器系统120可存储关于终端100的信息。

输入/输出系统130可包含接收来自终端操作员的命令并且向其输出数据的输入/输出设备。常用的输入设备包括用于捕获视频和/或静止图像的照相机系统132、用于与照相机输出相结合地或无关地捕获环境音频的麦克风系统134。其它的输入设备可包括用于接受用户命令的按钮、键盘、鼠标和/或触摸屏。它们还可包含用于确定终端100的位置和/或取向的加速度计和陀螺仪等。常用的输出设备(未示出)包括向操作员呈现视频输出的显示设备和用于向操作员输出音频的扬声器。

操作系统112可包含限定媒体分析和处理构架116的指令。媒体分析和处理构架116可以是由处理器110执行的软件单元,该软件单元可在终端100内提供用于计算由终端100存储的媒体资产121~125的二进制大对象描述符(简写为“blob描述符”)的工具套件。Blob可以是用于存储在数据库中存储的二进制数据的并且作为单个实体被传送的大文件。例如,作为字符串和数字存储和传送效率低下的大量数据可使用类似于blob的大数据类型。Blob可被用于存储和传送诸如图像、视频和音频等的大文件。Blob也可以是多个类型的文件的混合。在一个方面,存储于blob中的数据可以半结构化或者非结构化。例如,XML文件可使用半结构化数据,并且,多媒体文件可使用非结构化数据。由于blob可存储较大的文件类型的数据,因此它们可能需要大量的存储和处理能力。

在终端100处可用的处理资源常常基于将应用这里讨论的实施例的终端的类型改变。也可跨着多个终端和/或设备分配Blob的处理。可根据哪些资源可用来执行不同版本的给定分析。例如,硬件辅助可在可用时被使用。在另一方面,较高优先级资产可被赋予更多的资源并且/或者在较低优先级资产之前被处理,该较低优先级资产可能由于低优先级和/或受限的资源而被调节。此外,输入/输出设备的类型也可基于正使用的终端100的类型改变。对于本讨论,除非这里指出,否则终端之间的差异是无关紧要的。

如上所述,媒体分析和处理构架116可在终端100内提供用于计算由终端100存储的媒体资产的blob描述符的工具套件。具体而言,媒体分析和处理构架116可提供如下服务,即对于一组媒体资产计算各种blob类(blobClass)(描述符、元数据、经处理的输出等)并且在数据库中存储blob。服务可分层(tier),使得根据由请求的应用(客户端)识别的处理预算依次产生blob。类似于blobClass的类也可代表可对于资产或资产的子集执行的一组分析。

对于诸如暂停/恢复功能的回放功能,blob的使用也可能是有用的。即使blob还没有完成或者至少部分地被列入黑名单,blob的部分呈现也可能是可用的。

图2示出媒体分析和处理构架210与客户端220之间的交互作用200。客户端220可识别要处理的一组资产(msg.230)、每个资产的处理预算(msg.235)和要对于资产产生的一组blobClass(msg.240)。资产可以是视频、音频或图像等,并且,资产中的每一个的blobClass可包含资产的相关二进制数据。每个资产的处理预算可依赖于终端100上的处理器110的特性或终端100和/或无线网络的其它特性。

媒体分析和处理构架210可响应来自应用114的调用基于处理预算配置层级(tier)的调度(框245)。媒体分析和处理构架210可确定是否存在可用于根据调度在逐个层级的基础上依次执行各层级的足够资源(框250)。如果不是,那么处理可等待直到存在足够的资源以执行层级的调度,或者可等待直到检测到所需要的或可用的资源的变化(框252)。如果资源的变化是所需要的或被检测到,那么处理可调整层级的调度。当足够的资源可用时,由于资源在终端中可用,因此处理可根据调度依次执行层级(框255)。资源可用性可基于设备用途而改变。例如,执行视频blob可需要足够的资源,因为层级的调度需要被调整以执行其它层级。作为替代方案,媒体资产可改变和需要不同的资源量,这也可影响层级的调度和执行资产的次序。

该处理也可确定是否出现超时(框257)。如果是,那么层级的调度可被调整。如果不是,那么处理可继续。blob结果可在回叫中返回到客户端(msg.260)。例如,如果处理预算对于与视频数据对应的blob来说太低,那么层级的调度可使与具有较小尺寸的音频数据对应的blob优先,并且在视频blob之前执行音频blob。

在一个方面,处理预算235可表达为blobPriority和expectedDelay,blobPriority是描述对于客户端220的blob的优先级的值,expectedDelay代表应在其之后产生blob描述符的时间延迟。Blob描述符(msg.240)可按资产类型从由媒体分析和处理构架210支持的blobClass的列表识别要计算的一组blobClass。例如,blobClass可基于类似于音频、图像和视频等的各种资产类型而不同。

调度可收集要对于资产执行的多个层级。层级可基于资产的类型而不同。一般地,调度可通过可依赖于诸如expectedDelay的时间延迟和诸如blobPriority的blob优先级的完成优先级(诸如,CompletionPriority)、以及代表计算blob描述符的复杂性、主机设备的资源限制的识别、blob描述符之间的任何依赖性和在计算blob时使用的一般运算的值被组织。在一个方面,视频blob描述符可比图像blob描述符更复杂,因此,各类型的描述符的时间延迟可不同,并且,各类型的描述符的完成优先级可不同并且取决于描述符的类型。

在另一方面,当客户端220请求不存在的blob或者还没有存在的blob时,如果expectedDelay短,那么媒体分析和处理构架210可配置一组层级以对给定的blobPriority最佳地匹配expectedDelay,并且立即调度层级。否则,如果延迟计算是可允许的,那么媒体分析和处理构架210可(1)调度层级以在资源条件更好(更多资源可用、设备通电等)时操作并且可在那时运行层级。

在另一方面,可基于设备条件(例如,设备温度和资源竞争)动态调整任务调度,并且,将其状态报告给客户端220。例如,当终端100上的可用资源改变时,如果更多的资源在终端100上变得可用,那么任务调度可被重新组织,以使视频blob优先于图像或音频blob。在这种例子中,如果视频blob减少终端100上的可用资源量,那么调度可被调整以使音频和图像blob优先,直到更多的资源变得可用。基于各种资源因素设想其它的调整。

在另一方面,每一层级可代表落入CompletionPriority值的范围内的blobClass计算的集合。一般地,层级内的计算分担诸如取得、解码、缩放和其它类型的预处理的资产上的工作的开销。

每一blobClass计算可具有计算blob的数种方法。这些方法可在结果精度和计算复杂性上相互不同。媒体分析和处理构架210可通过使用不同的方法跨着数个层级计算blob,每个层级完善/改善blob结果。当对于blob操作时,媒体分析和处理构架210可能不需要调用先前调用的方法,除非blob在以前方法可操作的时间和当前方法进行时的时间之间改变。对于一些blob,一种方法的结果可提供用于下一方法的起始点。

在一种实现中,不同的资产类型可具有不同的blobPriority值,并且,媒体分析和处理构架210可调度层级以对于这些不同的资产基于它们的blobPriority值在不同的时间对它们进行操作。例如,数字照片可具有比视频或音频记录高的blobPriority值,并且,媒体分析和处理构架210可调度层级,以专门在调度的第一部分对它们进行操作。blobPriority值可依赖于不同的资产类型有多大以及什么资源可用。例如,媒体分析和处理构架210可在稍后的时间或者当资源竞争处于低的状态时调度视频和/或音频记录。

在一个方面,媒体分析和处理构架210可调度层级以在资产的较低空间或时间分辨率呈现上计算视频的blob。当资源允许时,稍后调度的层级可在较高的分辨率呈现上操作。因而,层级可基于资产类型内的各单独blob的特性在资产类型内被组织。在这样的方面,调度可不仅仅基于资产类型被组织,而且可基于资源可用性等在资产类型内被组织。

在另一方面,当在单个设备(未示出)内存在多个客户端时,各客户端可用上述的参数通过媒体分析和处理构架210登记(将来)服务请求。基于客户端的优先级、这些参数和资源可用性,媒体分析和处理构架210可配置排序的一组层级以运行。

在另一方面,如果在调度层级之后资产被修改(例如,编辑),那么媒体分析和处理构架210可修订调度以应对要执行的新处理。

在一个例子中,可在智能电话上出现交互200。在这种例子中,智能电话可具有比平板或计算机少的可用资源。因而,智能电话可具有不同的层级的调度,并且可基于具有更少的可用资源与平板或计算机上不同地执行交互200。

在另一例子中,可在计算机上出现交互200。在这种例子中,计算机可具有比智能电话多的资源,并因此与智能电话相比,可能能够运行需要更多的资源的资产和/或更多的资产。因而,层级的调度和资产的运行可与相同资产可在智能电话或具有不同的资源能力和约束的另一设备上执行的方式不同。

本公开的原理也可应用于分散系统300,在该分散系统中,构架与客户端2020分开地运行,并且多个终端可能访问共用的一组媒体项目。

图3示出根据本公开的一个方面的系统300,该系统300包括通过网络340相互通信的多个终端310~330。终端310~330可通过这里限定的通信信道350访问网络340。终端310~330可分别访问共用的一组资产。

在一个方面,媒体分析和处理构架332可在与在其中驻留请求客户端312的终端310分开的一个终端330上运行。媒体分析和处理构架332可在其终端330具有足够的可用资源时对资产进行操作。在这种情况下,媒体分析和处理构架332可对blobPriority和expectedDelay使用预先限定的值,但仍配置排序的一组层级以运行,使得blob可及时地变得可用。

在另一方面,媒体分析和处理构架可基于网络中的其它共同计算设备的可用性、它们的能力和网络条件跨可访问共用的一组资产的数个设备(被示出为处理构架314、332)分布。层级调度可在支持构架的不同终端310、330之中分配层级和/或方法的操作。此外,层级可从一个终端310传送到另一终端330,使得在终端310与网络340断开时可保持构架操作。

在请求时,要被处理的资产可能在本地不可用。基于网络条件和预算,媒体分析和处理构架332可调度并通过网络340从服务器或从另一终端取得资产。作为替代方案,可向已包含所关注的资产的另一终端分配处理并在其上调度处理。在系统或资源压力下,分析可暂停,并且中间结果被串行化。分析可在系统条件允许时继续进行,或者被传送到另一终端以完成。

对于某些资产,构架可能崩溃或者不能产生结果。为了避免在相同的资产上一次又一次地处理和失败,构架可计数处理各资产时的尝试次数。如果给定资产的计数值达到阈值尝试次数,那么为了避免再次处理该资产,构架可标记资产或者在“黑名单”中列出它,或者降低处理资产的尝试频率。黑名单资产可在一定的时间量之后被赦免,使得它可重新变得合适。

当跨数个设备管理处理时,各设备状态可被周期性监视,并且,在失败的情况下,层级调度可将失败的任务重新路由到其它的设备。

在本公开中,并且,在权利要求中,应当理解,提到终端或无线设备是要涵盖诸如移动电话、控制器、平板计算机、个人计算机和PDA等的电子设备。“终端”或“无线设备”要涵盖可与无线通信网络连接的任何兼容的移动技术计算设备。无线设备还包括移动电话、移动设备、移动基站、用户设备、蜂窝电话、智能电话或手机等(例如,Apple的iPhone、其他类型的PDA或智能电话)、无线加密狗、远程报警设备或无线网络可支持的其他的移动计算设备。术语“无线设备”可以互换使用,并且在这里称为“无线手机”、“手机”、“移动设备”、“设备”、“移动电话”、“移动装置”、“移动站”、“用户设备”、“蜂窝电话”、“智能电话”、“监视设备”或“电话”。

无线设备可与“无线网络”或“网络”连接,并且要涵盖通过使用无线设备获得或提供移动电话或消息服务的任意类型的无线网络,诸如可利用本申请的教导以传送和处理短消息数据服务的全球移动通信系统(GSM)网络、码分多址(CDMA)网络、长期演进(LTE)网络和5G(第五代)等。

在本公开中提到“一个方面”、“方面”、“其它方面”或“一个或更多个方面”等意味着关于该方面描述的特定的特征、结构或特性被包括在本公开的至少一个方面中。在本公开的各位置出现例如短语“在一个方面”未必都指的是同一方面,也不是与其它方面相互排斥的单独或替代性方面。此外,描述了可通过一些方面表现而不通过其它方面表现的各种特征。类似地,描述了可作为一些方面的要求而不作为其它方面的要求的各种要求。

此外,根据本公开的各种方面,在这里描述的方法要通过专用硬件实现操作,这些硬件实现包括但不限于处理器、微处理器、PC、PDA、SIM卡、半导体、专用集成电路(ASIC)、可编程逻辑阵列、云计算设备和被构建为实现这里描述的方法的其它硬件设备。

本公开的多个方面可包括可以是使用已知协议的有线或无线电子通信网络的通信信道,该有线或无线电子通信网络诸如是例如,有线/无线局域网络(LAN)、有线/无线个人区域网络(PAN)、有线/无线家庭区域网络(HAN)、有线/无线广域网络(WAN)、校园网、城域网、企业专用网络、虚拟专用网(VPN)、互联网络、骨干网络(BBN)、全球区域网络(GAN)、互联网、内联网、外联网、覆盖网络、近场通信(NFC)、蜂窝电话网络、个人通信服务(PCS),该已知协议为诸如全球移动通信系统(GSM)、CDMA(码分多址)、GSM/EDGE和UMTS/HSPA网络技术、长期演进(LTE)、5G(第五代移动网络或第五代无线系统)、WiMAX、HSPA+、W-CDMA(宽带码分多址)、CDMA2000(也称为C2K或IMT Multi-Carrier(IMT-MC))、无线保真(Wi-Fi)和/或蓝牙等和/或其两种或更多种的组合。NFC标准覆盖通信协议和数据交换格式,并且基于包括ISO/IEC 14443和FeliCa的现有的射频识别(RFID)标准。该标准包括ISO/IEC 18092[3]和由NFC Forum定义的那些。

本公开中的多个方面可在通过通信信道350具有有线/无线通信能力的任意类型的计算设备中被实现,这些计算设备诸如例如为台式计算机、个人计算机、膝上型/移动计算机、个人数据助理(PDA)、移动电话、平板计算机和云计算设备等。

本公开中的多个方面可在通过诸如例如AppleTMiOSTM操作系统等的任意类型的先进移动数据处理和通信操作系统操作的任意类型的移动智能电话上被实现。

还应注意,这里描述的本公开的软件实现任选地存储于可触知存储介质上,这些触知存储介质诸如为:诸如盘或带的磁介质;诸如盘的磁光或光学介质;或诸如存储卡或容纳一个或更多个只读(非易失性)存储器、随机存取存储器或其它可重写(易失性)存储器的其它封装的固态介质。电子邮件的数字文件附件或其它自含信息的档案或一组档案被视为与可触知存储介质等同的分布介质。因此,本公开被视为包括其中存储这里的软件实现的在这里列出的可触知存储介质或分布介质,包括公认的等同介质和后继介质。

另外,本公开的各种方面可在非一般的计算机实现中被实现。而且,从其公开可以明显地看出,在这里阐述的本公开的各种方面改善系统的功能。此外,本公开的各种方面包括被具体编程以解决本公开所针对的复杂问题的计算机硬件。因此,本公开的各种方面在其特定实现中改善了系统总体功能,以执行通过本公开阐述以及由权利要求限定的处理。

本公开的多个方面可以是基于网络的。例如,服务器可与数据库结合操作网络应用。网络应用可在浏览器受控环境(例如,Java程序等)中被托管,通过支持浏览器的语言(例如,与呈现浏览器的标记语言(例如,超文本标记语言(HTML)等)组合的JavaScript)被编码等等,使得运行通常的网络浏览器(例如,SafariTM等)的任何计算机可使得应用可执行。由于网络浏览器的普遍性和使用网络浏览器作为客户端(即,瘦客户端)的方便性,基于网络的服务可更有益。此外,通过固有地支持交叉平台兼容性,可在不干扰和安装软件的情况下保持和更新网络应用。

本公开的多个方面可包括执行被配置为从客户端接收请求并相应地给出响应的应用或软件的实例的服务器。服务器可在包括专用计算机的任何计算机上运行。计算机可包括至少一个一般为中央处理单元(CPU)的处理元件和一些形式的存储器。处理元件可实施运算和逻辑操作,并且,排序和控制单元可响应存储的信息改变操作的次序。服务器可包括可允许从外部源检索信息的外设设备,并且,操作的结果被保存和检索。服务器可在客户端-服务器结构内操作。服务器可代表客户端执行一些任务。客户端可在这里限定的通信信道上通过网络与服务器连接。服务器可使用具有误差检测和校正的存储器、冗余盘和冗余电源等。

虽然关于当前被视为特定方面的内容描述了系统和方法,但本公开不限于公开的方面。它意图覆盖包含于权利要求的精神和范围内的各种修改和类似的配置,其范围应被赋予最宽的解释,以涵盖所有这些修改和类似的结构。本公开包括以下权利要求的任何和所有方面。

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