具有元效果的可配置媒体处理的制作方法

文档序号:10540941阅读:287来源:国知局
具有元效果的可配置媒体处理的制作方法
【专利摘要】公开了用于具有元效果的可配置媒体处理的系统、方法和计算机可读介质。在一些实施方式中,系统、方法和计算机可读介质可以基于一个或多个元效果(例如,经排序的效果列表及其对应的参数)来处理媒体文件。
【专利说明】具有元效果的可配置媒体处理
【背景技术】
[0001] 媒体(图像、视频和/或音频)处理系统往往可由多个单独的媒体处理例程组成,所 述多个单独的媒体处理例程被布置成产生层状、组合的或其它更复杂的媒体处理例程。这 些系统可能需要指定媒体处理参数、处理和资源管理的次序的配置。所述配置可能难以或 不可能容易地即时或是在运行时进行调整或改变。
[0002] 可能期望具有用于所述媒体处理配置的灵活的运行时间可配置的应用编程接口 (API)和机制。除其它事项外,还根据上述问题和限制构思一些实施方式。

【发明内容】

[0003] -些实施方式一般涉及媒体处理,更具体地涉及具有元效果的可配置媒体处理。 一些实施方式可以包括一种方法。在一些实施方式中,所述方法可以包括:在一个或多个处 理器处接收一个或多个效果标识符,并且在一个或多个处理器处基于一个或多个效果标识 符来生成元效果对象。所述方法还可以包括:在一个或多个处理器处接收媒体项。所述方法 可以进一步包括:在一个或多个处理器处基于所述元效果处理媒体项,包括将与一个或多 个效果标识符中的每一个对应的单独的效果操作应用到所述媒体项以生成经处理的媒体 文件,并且在一个或多个处理器处提供经处理的媒体文件作为输出。
[0004] 元效果对象可以包括:应用与一个或多个效果标识符对应的每个效果的次序的规 范。效果标识符可以引用另一个元效果。其它元效果可以引用由效果标识符中的一个所识 别的效果。
[0005] 所述方法还可以包括:在一个或多个处理器处提供资源管理器引用,用于访问存 储在与资源管理器相关联的高速缓存中的一个或多个媒体对象。资源管理器高速缓存中的 每个媒体对象可以经由密钥访问,并且密钥可在包括效果的子效果的效果之间被共享。
[0006] 生成可以包括:为每个效果生成参数并且将所述参数包括在所述元效果对象中。 元效果对象可以是JavaScript对象表示法(JS0N)对象。媒体文件包括静止图像、视频文件 和音频文件中的一个或多个。
[0007] -些实施方式可以包括:具有被配置成执行操作的一个或多个处理器的系统。所 述操作可以包括:接收一个或多个效果标识符,并且基于一个或多个效果标识符来生成元 效果对象。所述操作还可以包括:接收媒体项。所述操作可以进一步包括:基于元效果来处 理媒体项,包括将与一个或多个效果标识符中的每一个对应的单独的效果操作应用到媒体 项以生成经处理的媒体文件。所述操作还可以包括:提供经处理的媒体文件作为输出。
[0008] 元效果对象可以包括:应用与一个或多个效果标识符对应的每个效果的次序的规 范。效果标识符可以引用另一个元效果。其它元效果可以引用由效果标识符中的一个所识 别的效果。所述操作还可以包括:在一个或多个处理器处提供资源管理器引用,用于访问存 储在与资源管理器相关联的高速缓存中的一个或多个媒体对象。
[0009] 在资源管理器高速缓存中的每个媒体对象可以经由密钥访问,并且其中密钥可在 包括效果的子效果的效果之间被共享。生成包括为每个效果生成参数并且将所述参数包括 在所述元效果对象中,并且其中元效果对象是JSON对象。
[0010] -些实施方式可以包括:一种具有在其上存储的软件指令的非暂时性计算机可读 介质,所述软件指令在由处理器执行时使得处理器执行操作。所述操作可以包括:接收一个 或多个效果标识符。所述操作还可以包括:基于一个或多个效果标识符来生成元效果对象。 所述操作可以进一步包括:接收媒体项,并且基于元效果来处理媒体项,包括将与一个或多 个效果标识符中的每一个对应的单独的效果操作应用到媒体项以生成经处理的媒体文件。 所述操作还可以包括:提供所处理的媒体文件作为输出。
[0011] 元效果对象可以包括:应用与一个或多个效果标识符对应的每个效果的次序的规 范,并且效果标识符可以被配置成引用另一个元效果。此外,其它元效果可以被配置成引用 由效果标识符中的一个所识别的效果。
[0012] 所述操作还可以包括:在一个或多个处理器处提供资源管理器引用,用于访问存 储在与资源管理器相关联的高速缓存中的一个或多个媒体对象。在资源管理器高速缓存中 的每个媒体对象可经由密钥访问。密钥可以在包括效果的子效果的效果之间被共享。生成 可以包括为每个效果生成参数并且将所述参数包括在所述元效果对象中。元效果对象可以 包括JS0N对象。
【附图说明】
[0013] 图1示出根据一些实施方式的用于具有元效果的可配置媒体处理的示例系统。
[0014] 图2是根据一些实施方式的用于具有元效果处理的示例可配置媒体处理的流程 图。
[0015] 图3是根据一些实施方式的用于具有元效果的可配置媒体处理的计算系统图。
[0016] 图4是根据一些实施方式的示例元效果的图。
[0017] 图5是根据一些实施方式的示例元效果的图。
【具体实施方式】
[0018] 公开了用于具有元效果的可配置媒体处理的系统、方法和计算机可读介质。在一 些实施方式中,系统、方法和计算机可读介质可以基于一个或多个元效果(例如,效果的经 排序的列表及其对应的参数)来处理媒体文件。其效果可以包括在媒体文件上所执行的操 作,例如效果可能包括"播放音频采样A"或"模糊图像"。可以针对每个新媒体项输入以线性 方式逐个应用效果。例如,如果为操作选择"模糊"效果,对于每个视频帧,系统将模糊所述 视频帧。在另一个示例中,如果系统已经以所述次序将效果配置成"模糊"和"覆盖图标",对 于每个视频帧,系统将首先模糊帧,然后覆盖指定的图标。
[0019] 为了创建更复杂的媒体处理配置,可以使用"元效果"。元效果可以包括含有其它 效果(或"子效果")的效果。子效果可能是单独的效果,或者可能是元效果,在这种情况下元 效果可含有一个或多个其它元效果。元效果可以包含指定将在元效果内执行的效果的次序 的"流水线"。通常,通过将元效果定义为子效果,并且通过合成子效果以形成元效果,系统 可将多个简单的媒体处理例程注入并组成在其它随意复杂的媒体处理例程内。
[0020] 可以生成并从"工厂"发送元效果,所述"工厂"具有关于如何通过效果标识符(或 ID)的集合来创建效果的信息。例如,"模糊"可以是当被传递到工厂时工厂创建并返回模糊 效果时的效果ID。
[0021]单独的效果可以知道可以被用于配置每个效果的参数。每个效果可以负责解析它 自己的参数(例如,作为JavaScript对象表示法(JS0N)对象或其它合适的对象被发送)。因 此,可以经由简单的JS0N对象配置元效果。当解析元效果JS0N对象时,它可反过来创建其它 效果,这反过来递归解析包含在原始JS0N对象内的JS0N对象。通过执行JS0N中的可以被写 为常规文本串的配置,可以在运行时间配置系统以创建可以包括现有效果组合的新效果。 这可许可将新效果配置快速部署到大规模生产中。
[0022]此外,效果可以被通过充当媒体的公共高速缓存的公共"资源管理器"。资源管理 器中的每个媒体对象通过资源"密钥"访问,并且密钥可以在效果之间共享。这允许效果A执 行中间处理,并且然后用密钥K在高速缓存中存储结果,在这之后效果B可执行处理,并将其 结果与用密钥K存储的媒体组合。因此,元效果可与其子效果共享公共资源管理对象,其子 效果可以提供灵活而强大的效果协作。
[0023]图1示出包括客户端/用户设备102的示例媒体处理系统100的图,所述客户端/用 户设备102具有浏览器(或其它应用)104和插件106。系统100还包括用户接口代码108、效果 库110、资源管理器112、高速缓存对象114、输入媒体项116和经处理的媒体项118。
[0024]在操作中,客户端设备102经由浏览器104和插件106接收和处理用户接口代码 108。用户接口代码108为那些效果指定一个或多个效果(或过滤器)标识符(ID)和序列/参 数信息。浏览器1〇4(或其它脚本处理API)处理用户接口代码108,并将元效果的JS0N对象表 示输出到插件106。插件106处理JS0N命令,并使用参数调用元效果中的每个效果,所述参数 是在JS0N对象中以及在JS0N对象中所阐述的序列中供给的。插件106使用元效果处理输入 媒体116。在处理期间,插件106(以及效果中的一个或多个)可经由资源管理器112访问效果 库110和/或被高速缓存的媒体对象114。插件106生成经处理的媒体文件118。
[0025]图2示出用于具有元效果的可配置媒体处理的示例方法的流程图。处理开始于202 处,其中接收一个或多个效果ID。此外,可以接收每个效果的参数和应用效果的序列。效果 ID可以与单独的效果或其它元效果对应。处理继续到204。
[0026] 在204处,元效果对象由元效果工厂模块或系统生成,以产生元效果对象(例如, JS0N对象)。元效果对象可以被发送到另一个应用(例如,插件),用于执行。处理继续到206。 [0027]在206处,接收媒体项。媒体项可以包括静止图像、视频文件和/或音频文件中的全 部或一部分。处理继续到208。
[0028]在208处,根据元效果对象处理媒体项。例如,元效果对象可以被用于调用效果的 序列,以使用由元效果对象所供应的参数来在媒体项上执行(例如,媒体项可以由根据元效 果对象操作的插件来处理)。处理继续到210。
[0029] 在210处,经处理的媒体项由插件输出。输出可以包括:在存储器中存储、发送到另 一个系统、显示或播放经处理的媒体项等等中的一个或多个。应理解,可以整体或部分地重 复202-210,以便实现所预期的媒体处理任务。
[0030] 图3是根据一些实施方式的为具有元效果的可配置媒体处理所配置的示例计算设 备300的图。计算设备300包括处理器302、操作系统304、存储器306和I/O接口 308。存储器 306可以包括具有元效果的可配置媒体处理应用310以及数据库312(例如,用于存储媒体 项、效果、元效果等等)。
[0031]在操作中,处理器302可执行存储在存储器306中的具有元效果的可配置媒体处理 应用310。具有元效果的可配置媒体处理应用310可以包括软件指令,所述软件指令在由处 理器执行时,致使处理器根据本公开执行用于具有元效果的可配置媒体处理的操作(例如, 具有元效果的可配置媒体处理应用310可以执行如上所讨论的步骤202-210或者下面所讨 论的402-420和/或502-512中的一个或多个,并且可以联合访问数据库312)。具有元效果的 可配置媒体处理应用310还可以联合操作系统304操作。
[0032] 具有元效果的可配置媒体处理计算设备(例如,102和/或300)可以包括但不限于: 单个处理器系统、多处理器系统(共同定位或分布式的)、云计算系统或以上的组合。
[0033]客户端(或用户)设备可以包括但不限于:台式计算机、膝上型计算机、便携式计算 机、平板计算设备、智能电话、特征电话、个人数字助理、媒体播放器、电视、电子书籍阅读 器、车辆的娱乐系统等等。此外,用户设备可以包括可穿戴计算设备(例如,眼镜、手表等 等)、安装有计算设备的家具和/或安装有计算设备的建筑物。
[0034]用户设备可以经由网络(例如,120)被连接到可配置媒体处理服务器或系统。将用 户设备连接到可配置媒体处理服务器或系统的网络可以是有线或无线网络,并且可以包括 但不限于:WiFi网络、局域网、广域网、互联网或以上的组合。
[0035] 数据存储、存储器和/或计算机可读介质可以是非暂时性介质,诸如磁存储设备 (硬盘驱动器等等)、光存储设备(CD、DVD等等)或电子存储设备(RAM、R0M、闪存等等)。软件 指令还可以被包含在电子信号中并且被提供为电子信号,例如以从服务器(例如,分布式系 统和/或云计算系统)递送的软件即服务(SaaS)的形式。
[0036] 图4和5示出元效果的示例。图4示出示例"聚光灯效果"的元效果。示例聚光灯效果 包括将色温调节、沉重的背景模糊和渐晕应用到视频帧。输入视频帧402首先由元效果406 的色温效果404处理。接下来,应用替换背景效果408,并且然后将图像的前景复制到资源管 理器412中的被高速缓存的对象410。然后模糊帧414。重叠覆盖前景416。对帧进行渐晕418 并输出经处理的帧420。
[0037] 用于聚光灯元效果的示例JavaScript API代码如下: var metaEffect = gapi.hangout.av.effects.createMetaEffect(); var color-temp = metaEffect.createSubEffect(Mcolor_temp"5{ ,fscaleM:0.3}); var replace-bg = metaEffect.createSubEffect(,?replace_background"5{}); var copy = metaEffect.createSubEffect(,fcopy",{,fresource_key" 5MfgM}); var blur = metaEffect.createSubEffect("blurM,{"window_sizeM:9}); var overlay_bg = metaEffect.createSubEffect("overlay-background", {"foreground-resource": {"key'':"fgn}});
[0038] 一 var vignette = metaEffect. createSubEffect( Vignetting",{''size1': 0 _ 9 }); //Initialize metaEffect.initEffects([color-temp, replace-bg, copy, blur, overlay_bg, vignette]); //Enable metaEffect.pipelineEffects([color_temp? replacebg, copy, blur, overlay _bg, vignette])
[0039] 用于聚光灯元效果的示例JSON代码如下: {,,init'':[ {''identifier":ncolor_temp-r',''type":"color-temp',/'properties": {''seal en:0.3}}, {"identifier" :nreplace_bg,,5ntypeM:"replace_background'V fproperties,1:
[0040] {}}, {"identifier": "copy1',"typeff: "copy"/'properties": {nresource_key,f:"fgM ), {"identifier" : "blur_r',''type" :"blurn,"properties,': {"window-size" :9}} 5 {"identifier": "overlay _bg", "type": "overlay _background","properties" :{"foreground-resource": {"key" :"fg"}}}, {"identifi er":" vignette","type" :"vignetting","properties": {"size" :0.9} }], "pipeline":[ {"identifier": "color-temp 一 1"},
[0041] - - {"identifier": "replace-bg"}, {"identifier": "copy"}, {"identifier":"blur_l"}, {"identifier":" overlay _bg"}, {"identifier": "vignette"} ]}
[0042]图5是具有时间模糊去噪和渐晕的黑白效果的示例。输入视频帧502由元效果504 通过首先执行暂时模糊506来处理。接下来,执行简单的亮度、颜色、饱和度效果508。然后渐 晕帧510并且输出经处理的帧512。
[0043]用于黑白元效果的示例JavaScript API代码如下: var metaEffect = gapi.hangout.av.effects.createMetaEffect(); var temporalBlur = metaEffect.createSubEffect("temporal_blur", {" learning_rate": 0.9}); var simpleBcs = metaEffect.createSubEffect("simple_bcs", {"brightness":0.6, "contrast":0.3, "saturation" :-1.0});
[0044] var vignette = metaEffect.createSubEffect("vignetting",{"size" :0.9}); metaEffect.initEffects([temporalBlur, simpleBcs, vignette]); //Initialize metaEffect.pipelineEffects([temporalBlur, simpleBcs vignette]); //Enable
[0045]用于黑白元效果的示例JS0N代码如下: {MInitM:[ {"identifier":''temporal-blur-1 ","typen:''temporal-blur'V'properties": {"learning-rate" :0.9}}, {''identifier":''simple-bcs l",ntype", "simple bcs", "properties":{,,brightness,,:0.6, "contrast";0.3, Msaturation":-1.0}}, {"identifier":''vignette-1' ''type',: "vignetting",
[0046] " properties": {"size":0.9}} ] "pipeline":[ {"identifier": "temporal_blur_l"}, {"identifier": ''simple-bcs-1"}, {"identifier'1: "vignetting-ln } ]}
[0047] 公开的方法、系统和计算机可读介质的一些实施方式可以用软件来实现(例如,被 实现为计算机程序产品和/或非暂时性计算机可读介质,其具有如本文所述的用于具有元 效果的可配置媒体处理的所存储的指令)。可以在被编程的通用计算机、专用计算机、微处 理器等等上执行所存储的软件指令。
[0048]因此,显而易见的是:根据本文公开的各种示例实施方式,提供有用于具有元效果 的可配置媒体处理的系统、方法和计算机可读介质。
[0049]虽然已经结合许多实施方式描述了公开的主题,但很明显的是:许多替换、修改和 变型将是或对可适用领域的普通技术人员显而易见。因此,
【申请人】意愿包括在公开的主题 的精神和范围内的所有这样的替代、修改、等同物和变型。
【主权项】
1. 一种方法,包括: 在一个或多个处理器处接收一个或多个效果标识符; 在所述一个或多个处理器处基于所述一个或多个效果标识符生成元效果对象; 在所述一个或多个处理器处接收包括视频文件和音频文件中的一个或多个的媒体项; 在所述一个或多个处理器处基于所述元效果处理所述媒体项,包括将与所述一个或多 个效果标识符中的每一个相对应的单独的效果操作应用到所述媒体项以生成经处理的媒 体文件;以及 在所述一个或多个处理器处提供所述经处理的媒体文件作为输出。2. 根据权利要求1所述的方法,其中,所述元效果对象包括:应用与所述一个或多个效 果标识符相对应的每个效果的次序的规范。3. 根据权利要求1所述的方法,其中,效果标识符引用另一个元效果。4. 根据权利要求1所述的方法,其中,其它元效果引用由所述效果标识符中的一个所识 别的效果。5. 根据权利要求1所述的方法,进一步包括: 在所述一个或多个处理器处提供资源管理器引用,用于访问存储在与所述资源管理器 相关联的高速缓存中的一个或多个媒体对象。6. 根据权利要求5所述的方法,其中,在所述资源管理器高速缓存中的每个媒体对象可 经由密钥访问,并且其中,所述密钥可在包括效果的子效果的效果之间被共享。7. 根据权利要求1所述的方法,其中,所述生成包括为每个效果生成参数并且将所述参 数包括在所述元效果对象中。8. 根据权利要求1所述的方法,其中,元效果对象是JSON对象。9. 根据权利要求1所述的方法,其中,所述媒体文件包括静止图像、视频文件和音频文 件中的一个或多个。10. -种系统,包括: 被配置成执行操作的一个或多个处理器,所述操作包括: 接收一个或多个效果标识符; 基于所述一个或多个效果标识符生成元效果对象; 接收包括视频文件和音频文件中的一个或多个的媒体项; 基于所述元效果处理所述媒体项,包括将与所述一个或多个效果标识符中的每一个相 对应的单独的效果操作应用到所述媒体项以生成经处理的媒体文件;以及 提供所述经处理的媒体文件作为输出。11. 根据权利要求10所述的系统,其中,所述元效果对象包括:应用与所述一个或多个 效果标识符相对应的每个效果的次序的规范。12. 根据权利要求10所述的系统,其中,效果标识符引用另一个元效果。13. 根据权利要求10所述的系统,其中,其它元效果引用由所述效果标识符中的一个所 识别的效果。14. 根据权利要求10所述的系统,其中,所述操作进一步包括: 提供资源管理器引用,用于访问存储在与所述资源管理器相关联的高速缓存中的一个 或多个媒体对象。15. 根据权利要求14所述的系统,其中,在所述资源管理器高速缓存中的每个媒体对象 可经由密钥访问,并且其中,所述密钥可在包括效果的子效果的效果之间被共享。16. 根据权利要求10所述的系统,其中,所述生成包括为每个效果生成参数并且将所述 参数包括在所述元效果对象中,并且其中,所述元效果对象是JSON对象。17. -种具有在其上存储的软件指令的非暂时性计算机可读介质,所述软件指令在由 处理器执行时使得所述处理器执行操作,所述操作包括: 接收一个或多个效果标识符; 基于所述一个或多个效果标识符生成元效果对象; 接收包括视频文件和音频文件中的一个或多个的媒体项; 基于所述元效果处理所述媒体项,包括将与所述一个或多个效果标识符中的每一个相 对应的单独的效果操作应用到所述媒体项以生成经处理的媒体文件;以及 提供所述经处理的媒体文件作为输出。18. 根据权利要求17所述的非暂时性计算机可读介质,其中,所述元效果包括:应用与 所述一个或多个效果标识符相对应的每个效果的次序的规范,其中,效果标识符能够被配 置成引用另一个元效果,并且其中,其它元效果能够被配置成引用由所述效果标识符中的 一个所识别的效果。19. 根据权利要求17所述的非暂时性计算机可读介质,其中,所述操作进一步包括: 提供资源管理器引用,用于访问存储在与所述资源管理器相关联的高速缓存中的一个 或多个媒体对象, 其中,在所述资源管理器高速缓存中的每个媒体对象可经由密钥访问,以及 其中,所述密钥可在包括效果的子效果的效果之间被共享。20. 根据权利要求17所述的非暂时性计算机可读介质, 其中,所述生成包括为每个效果生成参数并且将所述参数包括在所述元效果对象中, 以及 其中,所述元效果对象是JSON对象。
【文档编号】G11B27/034GK105900175SQ201480069571
【公开日】2016年8月24日
【申请日】2014年11月18日
【发明人】托尔·卡朋特, 丁恺
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1