CN101272390A - 媒体文件的滤镜链路建立方法和装置 - Google Patents

媒体文件的滤镜链路建立方法和装置 Download PDF

Info

Publication number
CN101272390A
CN101272390A CNA2008100975449A CN200810097544A CN101272390A CN 101272390 A CN101272390 A CN 101272390A CN A2008100975449 A CNA2008100975449 A CN A2008100975449A CN 200810097544 A CN200810097544 A CN 200810097544A CN 101272390 A CN101272390 A CN 101272390A
Authority
CN
China
Prior art keywords
filter
node
link
local
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008100975449A
Other languages
English (en)
Other versions
CN101272390B (zh
Inventor
李世平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN2008100975449A priority Critical patent/CN101272390B/zh
Publication of CN101272390A publication Critical patent/CN101272390A/zh
Application granted granted Critical
Publication of CN101272390B publication Critical patent/CN101272390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种媒体文件的滤镜链路建立方法和装置。所述方法预先设置滤镜链路模型和本地滤镜;并在建立滤镜链路时,包括:A.选择滤镜链路模型,将滤镜链路模型的源节点作为当前节点;B.根据当前节点的滤镜类型及其关键属性值从本地滤镜中选择匹配的滤镜作为当前节点的滤镜;C.根据当前滤镜链路模型的节点关系判断下一节点是否存在,如果存在则将该下一节点作为当前节点,返回步骤B,否则结束滤镜链路建立过程。对应的所述装置包括:设置模块、模型选择模块、滤镜选择模块以及判断模块,分别执行上述方法的各个步骤。采用本发明,可以提高滤镜的连接速度,提高媒体播放的稳定性和播放效率。

Description

媒体文件的滤镜链路建立方法和装置技术领域本发明涉及媒体数据处理技术领域,尤其涉及一种媒体文件的滤镜链路 建立方法和装置。背景技术目前,媒体文件通常包含三部分格式,分别是文件容器格式、视频格式 和音频格式。但是纯视频的媒体文件不包括音频格式,同样,纯音频的媒体 文件不包括视频格式。文件容器格式的作用是规定媒体文件中视频数据和音频数据的存放规则,文件容器格式通常与媒体文件的扩展名相对应,常见的文件容器格式有: avi, asf, real, mpegl, mpeg2, mpeg4, mp3, mov, flv, mkv等。视频格式规定了视频数据的压缩标准,常见的视频格式有:H.26x系列 格式(例如h.261、 h.263、 h.264) 、 MPEG系列格式(例如mpegl video、 mpeg2 video 、 mpeg4 video ) 、 wmv、 real video 、 On2 vp系歹寸等。音频格式规定了音频数据的压縮标准,常见的音频格式有:Mpeglayer3 audio、 aac、 ac3、 wma、 real audio等等。媒体文件的文件容器格式、视频格式以及音频格式这三者之间的关系没 有规律可循。有些文件容器格式对应固定的视频格式和音频格式,如real文件格式只包含real video的视频格式及real audio的音频格式;但有些文件 容器格式对应任意的视频格式和音频格式,如avi文件格式可以包含任意的 视频格式和音频格式。但为了叙述方便,通常用文件容器格式表述媒体文件 的格式,如real文件、avi文件、flv文件等。目前计算机的媒体文件播放技术中通常采用了滤镜技术。滤镜是一个相对独立的功能模块。媒体文件播放常用到的滤镜有:源滤镜、分离滤镜、解 码滤镜及渲染滤镜,它们有各自的功能。源滤镜通常用来获取数据,数据源 可以是媒体文件、因特网媒体资源、以及媒体数据采集卡等;分离滤镜主要是将数据流进行视频和音频分离;解码滤镜主要用于解压缩视频或者音频数 据;渲染滤镜的作用是对视频内容进行显示以及对音频内容进行回放,音频 渲染滤镜也被称为音频回放滤镜。滤镜在计算机系统中的表现形式通常是一个动态链接库文件。目前操作 系统中的大部分滤镜都是系统滤镜,所谓系统滤镜是指其全局唯 一 标识符 (GUID)、优先级、媒体类型等信息被写入到操作系统注册表中的滤镜, 系统滤镜可供搡作系统上的各个媒体播放软件共享使用。在播放媒体文件前 需要根据媒体类型和滤镜优先级对各个节点的滤镜进行匹配选择,前后滤镜 之间以匹配的输出PIN和输入PIN连接,从而得到一个滤镜链路以对媒体 数据进行处理。图1为媒体播放软件调用系统滤镜的过程示意图。参见图l, 媒体播放软件需要给定GUID到操作系统组件对象模型(COM, Component Object Model)库,然后COM库通过GUID从注册表中搜索对应的系统滤 镜,注册表将滤镜文件所在路径返回给COM库,COM库再将该滤镜的接 口函数指针返回给媒体播放软件。但是,随着多媒体技术的发展,媒体文件的格式越来越多,相应地,计 算机搡作系统中的系统滤镜数目也越来越多,从而导致原有的滤镜连接处理 方法遇到滤镜连接速度慢、播放不稳定、播放效率低等问题,具体的问题如 下:1) 连接速度慢:操作系统默认的滤镜连接策略是通过滤镜优先级和媒 体类型进行匹配的,由于系统中的滤镜数目增加了,每次连接时待匹配的滤 镜必然也要增加,从而导致滤镜连接速度变慢,影响播放效果。2) 播放不稳定:目前操作系统中的滤镜是供各种媒体播放软件共享使 用的系统滤镜。系统滤镜的唯一标识是GUID,但是,同一个GUID标识的 系统滤镜可能存在多个版本号。很多媒体播放软件在安装时,会将系统滤镜安装到系统的注册表中,这样常常会使得系统滤镜覆盖已有系统滤镜和被其 它安装软件的滤镜覆盖的问题,覆盖已有系统滤镜会带来其它软件无法正常 工作的隐患,被其它安装软件覆盖会带来本软件无法正常工作的隐患。3)播放效率低:目前的连接策略在把一个滤镜加入到处理链路(即各 个匹配的滤镜连接组成的链路)中时,只考虑该滤镜能否与其它滤镜相连接, 而没有考虑该滤镜是否有实际作用,这样常常导致滤镜链路中加入了很多无 实际作用的滤镜,链路冗长,从而导致计算机运算负荷增加、以及内存消耗 增大的问题。为了提高媒体文件的播放效果和效率,中国专利公开号CN101034582A、名称为《一种提高媒体文件播放效果的系统及其方法》的 专利申请公布说明书中公开了一种通过解决滤镜优先级设置不合理的问题 来提高媒体文件的播放效果和效率的方案。图2为该中国专利公开号 CN101034582A所述方案的系统框图。参见图2,其系统包括:用于分析媒 体文件类型、并选择播放核心的播放核心选择器,用于根据分析输入数据和 媒体专家库选择合适的滤镜的滤镜选择器,用于保存滤镜的优先级设置的媒 体专家库。该方案的方法包括:首先媒体文件播放核心选择器选择合适的播 放核心,之后滤镜选择器根据输入的数据以及媒体专家库找到合适的源滤 镜,接下来选择分离滤镜、解码滤镜和渲染滤镜的原理与选择源滤镜的原理 相同,最后媒体专家库保存滤镜优先级设置。但是,上述提高媒体文件播放效果的系统及其方法还具有以下缺陷:1) 播放不稳定:该方案所用的滤镜还是操作系统中的系统滤镜,很多 媒体播放软件在安装时,会将系统滤镜安装到系统的注册表中,这样常常会 使得系统滤镜覆盖已有系统滤镜和被其它安装软件的滤镜覆盖的问题,覆盖 已有系统滤镜会带来其它软件无法正常工作的隐患,被其它安装软件覆盖会 带来本软件无法正常工作的隐患。2) 播放效率低:该方案是利用媒体专家库来确定滤镜的优先匹配关系, 而媒体专家库中的优先匹配关系一旦确定则系统是无法自适应修改的,因此该方案在滤镜选择上比较僵化,缺乏灵活性,在优先匹配关系设置不合理时 无法及时调整,从而影响播放效率。综上所述,现有媒体文件的滤镜链路建立技术的普遍缺陷是:滤镜的连接速度低、对媒体文件的播放不稳定以及播放效率低。 发明内容有鉴于此,本发明所要解决的技术问题在于提供一种媒体文件的滤镜链 路建立方法,以提高滤镜的连接速度,提高媒体播放的稳定性和播放效率。为了实现上述发明目的,本发明的主要技术方案为一种媒体文件的滤镜 链路建立装置,以提高滤镜的连接速度,提高媒体播放的稳定性和播放效率。一种媒体文件的滤镜链路建立方法,该方法预先设置滤镜链路模型和本地滤镜;并在建立滤镜链路时,包括:A、 选择滤镜链路模型,将滤镜链路模型的源节点作为当前节点;B、 根据当前节点的滤镜类型及其关键属性值从本地滤镜中选择匹配的 滤镜作为当前节点的滤镜;C、 根据当前滤镜链路模型的节点关系判断下一节点是否存在,如果存 在则将该下一节点作为当前节点,返回步骤B,否则结束滤镜链路建立过程。优选的,步骤B中,进一步包括:bl、当根据当前节点的滤镜类型及其关键属性值不能从本地滤镜中选择 出匹配的滤镜时,则根据当前滤镜链路模型的节点关系判断上一节点是否存在,如果不存在则滤镜链路创建失败;如果存在则将上一节点作为当前节点,执行步骤b2;b2、重新根据当前节点的滤镜类型及其关键属性值从本地滤镜中按次序 选择下一个匹配的滤镜,如果选择到匹配的滤镜则以该滤镜更新当前节点的 已有滤镜,执行步骤C;否则返回步骤bl。优选的,该方法为每一种滤镜类型中的本地滤镜设置优先级,步骤b2 中,根据当前节点的滤镜类型及其关键属性值从本地滤镜中按优先级次序选择下一个匹配的滤镜。优选的,所述本地滤镜按照滤镜类型主要包括:源滤镜、分离滤镜、解码滤镜、以及渲染滤镜;所述源滤镜的关键属性包括:文件扩展名、网络协 议以及文件头部信息;分离滤镜的关键属性包括:文件扩展名和输入的媒体 类型;解码滤镜的关键属性包括:输入的媒体类型;渲染滤镜的关键属性包 括:输入的媒体类型。优选的,步骤B中,所述滤镜类型的关键属性的取值根据媒体文件信息 和/或上一节点滤镜输出的媒体类型确定。优选的,所述滤镜链路模型有一个以上,每个滤镜链路模型中的滤镜节 点的数目以及每个节点的滤镜类型为确定值。优选的,步骤A中所选的滤镜链路模型为初始滤镜链路模型;步骤B之后、步骤C之前进一步包括:Bl、根据当前节点所选滤镜的输出信息、媒体文件信息、和/或播放软 件的特殊用途更新当前的滤镜链路模型。优选的,所述初始滤镜链路模型按照节点顺序包括:源滤镜节点,分离滤镜节点,之后是两个并列分支, 一个分支依次为视 频解码滤镜节点和视频渲染滤镜节点,另一个分支依次为音频解码滤镜节点 和音频渲染滤镜节点。优选的,步骤B1中,在当前节点为源滤镜节点时,所述更新滤镜链路 模型的方法具体包括:如果所选源滤镜的输出媒体类型为确定的视频和音频时,将所述分离滤 镜节点从当前滤镜链路模型中删除;进一步地,如果其输出的视频为未压缩 格式,则将所述视频解码滤镜节点从当前滤镜链路模型中删除,如果其输出 的音频为未压缩格式,则将所述音频解码滤镜节点从当前滤镜链路模型中删 除。优选的,所述本地滤镜中包括字幕滤镜;步骤B1中,所述更新滤镜链 路模型的方法具体包括:如果所选滤镜的输出为未压缩视频格式、并且媒体文件外挂字幕文件,则在视频渲染滤镜节点之前增加字幕滤镜节点。优选的,所述本地滤镜中包括对视频或音频的特殊处理滤镜;步骤Bl 中,所述更新滤镜链路模型的方法具体包括:如果所选滤镜的输出为未压缩 的视频或音频,且播放软件需要增加对视频或音频的特殊处理时,则在视频 渲染滤镜节点之前增加视频特殊处理滤镜节点,或者在音频渲染滤镜节点之 前增加音频特殊处理滤镜节点。优选的,所述本地滤镜设置在本地计算机的非注册表目录中。一种媒体文件的滤镜链路建立装置,该装置包括: 设置模块,用于设置滤镜链路模型和本地滤镜;模型选择模块,用于在建立滤镜链路时从设置模块中选择滤镜链路模型,将滤镜链路模型的源节点作为当前节点,触发滤镜选择模块;滤镜选择模块,用于根据当前节点的滤镜类型及其关键属性值从本地滤镜中选择匹配的滤镜作为当前节点的滤镜,触发第一判断模块;第一判断模块,用于根据当前滤镜链路模型的节点关系判断下一节点是否存在,如果存在则将该下一节点作为当前节点,返回滤镜选择模块,否则滤镜链路建立成功。优选的,所述装置进一步包括:第二判断模块,用于当根据当前节点的滤镜类型及其关键属性值不能从 本地滤镜中选择出匹配的滤镜时,根据当前滤镜链路模型的节点关系判断上一节点是否存在,如果不存在则滤镜链路创建失败;如果存在则将上一节点 作为当前节点,触发所述滤镜选择模块重新根据当前节点的滤镜类型及其关 键属性值从本地滤镜中按次序选择下一个匹配的滤镜,如果选择到匹配的滤 镜则以该滤镜更新当前节点的已有滤镜,触发第一判断模块;否则返回第二 判断模块。优选的,所述本地滤镜按照滤镜类型主要包括:源滤镜、分离滤镜、解 码滤镜、以及渲染滤镜;所述源滤镜的关键属性包括:文件扩展名、网络协 议以及文件头部信息;分离滤镜的关键属性包括:文件扩展名和输入的媒体类型;解码滤镜的关键属性包括:输入的媒体类型;渲染滤镜的关键属性包 括:输入的媒体类型。优选的,所述滤镜链路模型有一个以上,每个滤镜链路模型中的滤镜节 点的数目以及每个节点的滤镜类型为确定值。优选的,该装置在滤镜选择模块和第一判断模块之间进一步包括:滤镜链路模型更新模块,用于根据当前节点所选滤镜的输出信息、媒体 文件信息、和/或播放软件的特珠用途更新当前的滤镜链路模型。优选的,所述初始滤镜链路模型按照节点顺序包括:源滤镜节点,分离滤镜节点,之后是两个并列分支, 一个分支依次为视 频解码滤镜节点和视频渲染滤镜节点,另一个分支依次为音频解码滤镜节点 和音频渲染滤镜节点。本发明采用的是滤镜链路模型和本地滤镜相结合的方式建立滤镜链路, 播放软件根据建立好的滤镜链路播放媒体文件。采用滤镜链路模型,可以保 证链路中的滤镜节点数目是确定的,且每个滤镜节点的滤镜类型也是确定 的,因此可以避免无实际作用的滤镜被加入到滤镜链路中,提高了滤镜链路 的连接速度,同时也提高了媒体播放的效果和效率。同时,在滤镜链路模型 上的每个节点匹配滤镜时,是根据该节点的滤镜类型及其关键属性匹配本地目录中相应类型的本地滤镜,滤镜的关键属性用于描述滤镜选择时所需的信 息,滤镜的关键属性是节点遍历时滤镜是否被选择的先决要素,候选的本地 滤镜不一定匹配成功,但采用关键属性的策略可以大大减少待匹配的滤镜数 目,从而提高滤镜链路的连接速度,进而提高了滤镜连接速度以及播放效率 和效果。由于本发明所用的滤镜是供媒体播放软件专用的本地滤镜,可以直接通 过本地滤镜文件路径调用,不必访问注册表和操作系统COM库,因此可以 避免不同播放软件滤镜的相互覆盖导致无法正常播放的问题,提高了媒体播 放的稳定性。由于本发明将滤镜链路模型和具体的滤镜(即本地滤镜)分开,滤镜链路模型主要用于表示各种类型滤镜之间的节点关系,根据媒体类型输入输 出、媒体文件信息以及播放软件特定需求的不同,可以有多种不同的连接关 系由不同的滤镜链路模型体现,在建立滤镜链路的过程中可以自适应更新调 整滤镜链路模型,以选择最佳的连接关系;至于连接关系上每个节点具体使 用的滤镜,则是从对应类型的本地滤镜中选取,每种类型的本地滤镜都有自 身的选择关系,当某一节点上找不到匹配的滤镜时则返回到上一节点重新尝 试另一个匹配的滤镜。利用本发明所特有的自适应选择方式,其滤镜之间的 连接关系的变化相比现有技术非常丰富和灵活,可以自适应调整滤镜匹配方 案,提高了滤镜链路建立的成功率,从而提高播放效率。附图说明图l为媒体播放软件调用系统滤镜的过程示意图;图2为中囯专利公开号CN101034582A所述方案的系统框图;图3a为一种典型的滤镜链路模型示意图;图3b为 一种简化了分离滤镜节点的滤镜链路模型示意图;图3c为一种增加了外挂字幕滤镜节点的链路模型局部示意图;图3d为一种增加了视频后处理滤镜节点的链路模型局部示意图;图4为本发明所述方法在滤镜链路建立时的一种实施例流程图;图5为本发明所述滤镜链路建立装置的一种实施例的组成示意图。具体实施方式下面通过具体实施例和附图对本发明做进一步详细说明。 本发明的核心技术方案为:预先设置滤镜链路模型和本地滤镜;并在建 立滤镜链路时,包括:A、 选择滤镜链路模型,将滤镜链路模型的源节点作为当前节点。B、 根据当前节点的滤镜类型及其关键属性值从本地滤镜中选择匹配的 滤镜作为当前节点的滤镜。C、根据当前滤镜链路模型的节点关系判断下一节点是否存在,如果存 在则将该下一节点作为当前节点,返回步骤B,否则滤镜链路建立成功。本发明采用了滤镜链路模型和本地滤镜相结合的机制。所谓滤镜链路模 型是指按照规定连接顺序连接的一系列确定类型的滤镜的组合,所述滤镜链 路模型中滤镜节点的数目和每个滤镜节点的滤镜类型是确定的。例如音乐滤 镜链路模型按照节点顺序依次包括源滤镜节点、分离滤镜节点、音频解码滤 镜节点,音频渲染滤镜节点这四个滤镜节点。所谓本地滤镜,是指媒体播放 软件直接通过本地滤镜文件路径即可调用的滤镜,本地滤镜区别于系统滤镜 之处是:本地滤镜设置在本地计算机的非注册表目录下、不需要访问注册表和搡作系统COM库就可以调用的滤镜,每一播放软件都有专用的本地滤镜。本发明釆用滤镜链路模型,可以保证链路中的滤镜节点数目是确定的, 且每个滤镜节点的滤镜类型也是确定的,因此可以避免无实际作用的滤镜被 加入到滤镜链路中,提髙了滤镜链路的连接速度,同时也提高了媒体播放的 效果和效率。图3a为一种典型的滤镜链路模型示意图。如图3a所示,滤镜链路模型 上的节点数目和每个节点的滤镜类型是确定的。例如第一个节点310的滤镜 类型为源滤镜;第二个节点320的滤镜类型为分离滤镜,其输出两个分支, 其中视频输出给节点331,音频输出给节点332;节点331的滤镜类型为视 频解码滤镜,节点332的滤镜类型为音频解码滤镜;处于节点331之后的节 点341的滤镜类型为视频渲染滤镜,处于节点332之后的节点342的滤镜类 型为音频渲染滤镜。本发明的一种实施例中,在建立滤镜链路的过程中可以自适应更新调整 滤镜链路横型,以选择最佳的滤镜连接关系。具体方法是在所述步骤A中 首先选择一个滤镜链路模型作为初始滤镜链路模型,然后在所述步骤B之 后、步骤C之前进一步包括:Bl、根据当前节点所选滤镜的输出信息、媒 体文件信息、和/或播放软件的特珠用途更新当前的滤镜链路模型。在一种优选的实施方式中,可以将图3a所述的滤镜链路模型作为默认的初始滤镜链路模型。图3b~图3d为另外几种滤镜链路模型的示意图,在 建立滤镜链路的过程中,可以根据实际情况自适应地更新当前的滤镜链路模 型。图3b是一种简化了分离滤镜节点的滤镜链路模型示意图,由于某些源 滤镜本身包含了分离滤镜的功能,因此如果当前节点为源滤镜节点、且当前 选择了包含了分离滤镜功能的源滤镜时,该源滤镜的输出媒体类型为确定的 视频和音频格式,则表示链路中不需要加入分离滤镜,此时需要将当前的滤镜链路模型从图3a所示的滤镜链路模型更新为图3b的滤镜链路模型,即将 所述分离滤镜节点320删除。在一些特殊情况下,图3b的滤镜链路模型还 可以进一步简化,例如若源滤镜输出的视频格式是未压缩的,则不需要加入 视频解码滤镜,需要将所述视频解码滤镜节点331删除;或源滤镜输出的音 频格式是未压缩的,则不需要加入音频解码滤镜,此时需要将音频解码滤镜 删除。图3c为一种增加了外挂字幕滤镜节点的链路模型局部示意图。DVD、 AVI、 MKV等格式的媒体文件常带外挂的字幕文件,字幕文件需要字幕滤 镜进行解析并叠加到视频画面上。当播放软件检测到媒体文件外挂字幕文件 时,则在当前节点所选的滤镜输出为未压缩的视频时(例如在遍历视频解码 滤镜结東时或者由源滤镜或分离滤镜直接输出未压缩的视频时),更新其后 的滤镜链路模型,在视频渲染滤镜节点341之前增加字幕滤镜节点350。本发明支持的滤镜链路模型并不局限于以上三种模型,而是可以根据媒 体文件信息、播放软件的特殊用途、所选滤镜输出的特殊媒体类型制定更多 的滤镜链路模型以供更新,比如某些播放软件需要增加对视频或音频的特殊 处理功能(例如视频后处理功能),则在当前节点所选的滤镜输出为未压缩 的视频或音频时,在视频渲染滤镜节点之前增加视频特殊处理滤镜节点,或 者在音频渲染滤镜节点之前增加音频特殊处理滤镜节点。例如参见图3d, 对于视频后处理功能,可以在视频解码滤镜节点331之后,视频渲染滤镜节 点341之前增加视频后处理滤镜节点360。上述图3a-d中所示的是滤镜链路模型的节点滤镜类型和节点关系,本 领域一般的技术人员根据图3a〜d的描述可以编写出相应的数据格式以使计算机可以识别对应的滤镜链路模型,例如所述数据格式中可以包括每个节点 在链路中的位置信息以及每个节点的滤镜类型以及输入输出等信息。本发明的本地滤镜的类型包含:源滤镜、分离滤镜、解码滤镜、字幕滤 镜、后处理滤镜、渲染滤镜等,本发明的本地滤镜并不局限于以上的本地滤 镜类型,本发明的本地滤镜类型可以是任何包含关键属性的本地滤镜类型。 滤镜关键属性用于描述滤镜选择时所需的信息,滤镜的关键属性在从某种滤 镜类型的本地滤镜中遍历选择匹配滤镜的先决要素,候选的本地滤镜不一定 能成功匹配,但采用关键属性的策略可以大大减少待匹配的滤镜数目,从而 提高滤镜链路的连接速度。在本地,只要设置了一种本地滤镜,则需要对应 设置其关键属性,根据该本地滤镜的关键属性从本地滤镜中查找匹配的滤 镜。下面对在本地设置的各类基本的本地滤镜及其对应关键属性做详细的描 述。(1) 源滤镜及其关键属性:源滤镜通常用来获取媒体文件数据,由于 媒体文件可以是存储在计算机本地系统,也可以是网络上的媒体资源。因此 源滤镜的关键属性包括三个方面,分别是:文件扩展名、网络协议、文件头 部信息。所谓文件头部信息是指各类媒体文件头部特定的标志性数据,如avi 文件会以"RIFF,,开头,并在第8个字节处出现"AVr,三个字符。(2) 分离滤镜及其关键属性:分离滤镜的作用是将数据流的音视频数 据分离,通常不同的媒体文件格式存在不同的音视频数据的组织方式,因此 分离滤镜的关键属性包括:文件扩展名、输入媒体类型。(3) 解码滤镜及其关键属性:解码滤镜的作用是解压缩视频或音频数 据,其关键属性为输入的媒体类型。(4) 渲染滤镜及其关键属性:渲染滤镜的作用是对视频内容的显示或 是对音频内容的回放,渲染滤镜的关键属性为输入的媒体类型。当然,根据具体应用环境,上述各种滤镜的关键属性还可以包括滤镜的其它属性信息,总之关键属性信息越多,选择本地滤镜的依据越多,选择速 度越快,滤镜链路的建立时间越快。另外,由于本发明所述的本地滤镜不仅限于上述几种滤镜,对于其它的 滤镜,可以根据该滤镜的具体属性特征来决定其关键属性作为査找匹配的依 据。例如,字幕滤镜的关键属性可以是输入的媒体类型、媒体文件下是否存在外挂字幕文件(如.sub, .srt格式)以及媒体文件扩展名( 一般.avi, .mkv, .vob 等文件包含字幕)等;后处理滤镜的关键属性可以是输入媒体类型等。图4为本发明所述方法在滤镜链路建立时的一种实施例流程图。滤镜链 路建立过程首先选择初始的滤镜链路模型,确保链路中的各个节点是可控 的,然后从初始滤镜链路模型的第一个节点即源滤镜节点开始,顺序遍历每 个节点,根据本地滤镜类型及其关键属性,将最优的可用滤镜放入当前节点, 同时根据当前节点所用滤镜和媒体文件信息,更新滤镜链路模型;顺序遍历各个节点,如当前节点无可用的滤镜,则回退到前一个节点,否则往下遍历 至到渲染滤镜节点。参见图4,所述滤镜链路建立过程具体包括:步骤401、选择一个初始的滤镜链路模型,该初始滤镜链路模型中的各 个节点是可控的,也就是说该滤镜链路的滤镜节点数目是确定的,并且每个 节点的滤镜类型也是确定的。在本步骤的一种实施方式中可以根据媒体播放 软件应用层的具体要求从预设的滤镜链路模型中选择一个初始的滤镜链路 模型,在另一种实施方式中也可以直接确定一个默认的初始滤镜链路模型。 如可将图3a所示的滤镜链路模型作为播放系统中默认的初始滤镜链路模型。步骤402、选择所述初始滤镜链路模型的第一个节点即源滤镜节点作为 当前节点。步骤403、确定当前节点的滤镜类型及其关键属性,从本地滤镜中选择 匹配所述滤镜类型和关键属性的滤镜。例如,对于第一个节点来说其滤镜类型为源滤镜,源滤镜的关键属性主 要包括文件扩展名、网络协议、文件头信息等,可以通过分析待播放的媒体文件得到所述关键属性,例如通过分析媒体文件的路径信息得到文件扩展名 和网络协议,通过读取媒体文件头得到文件头信息。确定好滤镜类型及其关 键属性之后,就可以从本地的对应类型的滤镜中查找匹配所述关键属性的滤 镜。在选择时,可以在本类型的滤镜中轮询进行匹配,如果匹配成功则选择 该滤镜作为当前节点的滤镜,否则继续轮询匹配本滤镜类型中的下一个滤 镜,直到匹配成功。如果当前节点为分离滤镜节点,首先确定当前节点的滤镜类型为分离滤 镜,然后通过分析媒体文件的路径信息得到文件扩展名,由于本节点滤镜的 输入媒体类型需要与本链路上一节点所选滤镜的输出媒体类型相同,因此通过上一节点所选滤镜的输出媒体类型确定本节点滤镜的输入媒体类型;最后根据所确定的文件扩展名和输入媒体类型从本地的分离滤镜中选择一个匹 配的滤镜。如果当前节点为解码滤镜节点,首先确定当前节点的滤镜类型为解码滤 镜(更具体的可以确定是视频解码滤镜还是音频解码滤镜),然后根据上一 节点所选滤镜的输出媒体类型确定本节点滤镜的输入媒体类型,根据所确定 的输入媒体类型从本地的解码滤镜中选择一个匹配的滤镜。例如,如果上一 节点是分离滤镜节点,所选的分离滤镜输出了视频输出媒体类型和音频输出 媒体类型,那么将所述视频输出媒体类型作为输入媒体类型从本地的视频解 码滤镜中选择一个匹配的滤镜,将所述音频输出媒体类型作为输入媒体类型 从本地的音频解码滤镜中选择一个匹配的滤镜。同理,如果当前节点为渲染滤镜节点,首先确定当前节点的滤镜类型为 渲染滤镜,然后根据上一节点所选滤镜的输出媒体类型确定本节点滤镜的输 入媒体类型,根据所确定的输入媒体类型从本地的渲染滤镜中选择一个匹配的滤镜。步骤404、判断在本地滤镜中是否有与所述滤镜类型和关键属性匹配的 滤镜,如果有则执行步骤405;否则执行步骤410。步骤405~步骤406、根据当前节点所用滤镜和媒体文件信息判断是否需要更新当前的滤镜链路模型,如果是,则更新滤镜链路模型,执行步骤407;否则,直接执行步骤407。例如:对于第一个节点即源滤镜节点,如果源滤镜节点所选的源滤镜的 输出媒体类型为流式数据,则下一个节点的类型应该是分离滤镜节点,因此 不需要更新当前的滤镜链路模型。如果当前所选源滤镜的输出媒体类型为规 定的视频和音频格式时,则表示当前滤镜链路中不需要再加入分离滤镜,当 前滤镜链路模型需要更新为简化的模型,例如更新为图3b所示的滤镜链路 模型以适应所选源滤镜输出的媒体类型。在一些特殊情况下,如果源滤镜输 出的视频格式是未压缩的,则不需要加入视频解码滤镜,此时需要更新为更 为简化的模型,即从当前滤镜链路模型中将所述视频解码滤镜节点删除;如 果源滤镜输出的音频格式是未压缩的,则不需要加入音频解码滤镜,此时可 以从当前滤镜链路模型中将所述音频解码滤镜节点删除。如果在建立滤镜链路的过程中滤镜链路模型被更新成如图3c或图3d所示的模型,则在字幕滤镜节点,需要首先确定其关键属性的值,即:根据媒 体文件信息确定是否存在字幕文件以及文件扩展名,根据上一节点所选的视 频解码滤镜的输出媒体类型确定本节点的输入媒体类型,然后再以及所确定 的关键属性值查找本地滤镜中是否有匹配的字幕滤镜节点。在视频后处理滤 镜节点,则首先根据上一节点所选的视频解码滤镜的输出媒体类型确定本节 点的输入媒体类型,以该输入媒体类型作为关键属性从本地的视频后处理滤 镜中查找匹配的滤镜。步骤407~步骤409、判断当前滤镜链路模型的下一个节点是否存在, 如果存在则选择下一个节点作为当前节点,返回步骤403;否则,当前滤镜 链路创建成功,结東本流程。步骤410~步骤412、判断当前滤镜链路模型的上一个节点是否存在, 如果存在,则选择上一个节点作为当前节点,返回步骤403,在步骤403中 重新根据当前节点的滤镜类型及其关键属性值从本地滤镜中按次序选择下 一个匹配的滤镜,如果选择到匹配的滤镜则以该滤镜更新当前节点的已有滤镜,并继续执行后续的步骤404;如果上一个节点不存在,则滤镜链路创建 失败,结東本流程。上述步骤410和步骤411是一种自适应的选择方式,在本地滤镜中,针对每种滤镜类型都至少有一个滤镜供选择匹配,如果有多个滤镜,则存在选 择匹配的先后问题,可以按照存放次序轮询选择,也可以设置优先级按照优 先级依次选择匹配的滤镜。例如表1为一种在本地中设置的源滤镜的实例,表2为一种在本地设置的分离滤镜的实例:源滤镜编号 (或优先级) 源滤镜标识 源滤镜关键属性的取值1 源滤镜a 源滤镜关键属性a2 源滤镜b 源滤镜关键属性b3 源滤镜c 源滤镜关键属性c4 源滤镜d 源滤镜关键属性d5 源滤镜e 源滤镜关键属性e表1 分离滤镜编号 (或优先级) 分离滤镜标识 分离滤镜关键属性的取值 1 分离滤镜a 分离滤镜关键属性a 2 分离滤镜b 分离滤镜关键属性b 3 分离滤镜c 分离滤镜关键属性c 4 分离滤镜d 分离滤镜关键属性d 5 分离滤镜e 分离滤镜关键属性e 表2 在选择源滤镜时,按照所述源滤镜的编号依次进行,假设在源滤镜节点 根据源滤镜的关键属性进行匹配,首先选择了第一个匹配所述关键属性的源滤镜b,则将该源滤镜b作为当前节点的滤镜;然后进入下一个节点(此处假设下一个节点为分离滤镜节点),在选择分离滤镜时,根据上一个节点所 选的滤镜输出确定其关键属性,然后按照所述分离滤镜的编号依次进行匹 配,如果此时表2中所有的分离滤镜都不能匹配所确定的关键属性,则需要 返回上一个节点即源滤镜节点,从所述源滤镜b后面的源滤镜中继续依次选 择与所述源滤镜关键属性匹配的源滤镜,假设此时源滤镜d匹配所述关键属 性,则选择该源滤镜d更新本节点之前选择的源滤镜b,进入下一个节点即 分离滤镜节点,此时分离滤镜节点的输入媒体类型根据源滤镜d的输出媒体 类型确定,所以重新从本地滤镜中选择匹配的分离滤镜,从而又增加了一次 滤镜选择的机会,达到自适应选择滤镜的目的。图5为本发明所述滤镜链路建立装置的一种实施例的组成示意图。参见图5,该装置包括:设置模块501,用于设置滤镜链路模型和本地滤镜。所述滤镜链路模型 和本地滤镜具体参见上述方法中的描述,此处不再赘述。模型选择模块502,用于在建立滤镜链路时从设置模块中选择滤镜链路 模型,将滤镜链路模型的源节点作为当前节点,触发滤镜选择模块503。滤镜选择模块503,用于根据当前节点的滤镜类型及其关键属性值从本 地滤镜中选择匹配的滤镜作为当前节点的滤镜,触发第一判断模块504。滤镜链路模型更新模块504,用于根据当前节点所选滤镜的输出信息、 媒体文件信息、和/或播放软件的特珠用途更新当前的滤镜链路模型。该滤 镜链路模型更新模块504是一个可选模块,主要用于滤镜链路模型的自适应 调整,所述滤镜选择模块503的输出也可以直接输入到第一判断模块505。第 一 判断模块505 ,用于根据当前滤镜链路模型的节点关系判断下 一 节 点是否存在,如果存在则将该下一节点作为当前节点,返回滤镜选择模块 503,否则滤镜链路建立成功。为了实现更强的自适应调整功能,所述装置进一步包括:第二判断模块506,用于当根据当前节点的滤镜类型及其关键属性值不 能从本地滤镜中选择出匹配的滤镜时,根据当前滤镜链路模型的节点关系判断上一节点是否存在,如果不存在则滤镜链路创建失败;如果存在则将上一 节点作为当前节点,触发所述滤镜选择模块503重新根据当前节点的滤镜类 型及其关键属性值从本地滤镜中按次序选择下一个匹配的滤镜,如果选择到匹配的滤镜则以该滤镜更新当前节点的已有滤镜,触发第一判断模块505或 滤镜链路更新模块504;否则返回第二判断模块506。通过本发明所述的方法和装置建立成功滤镜链路后,播放软件就可以根 据所建立的滤镜链路对媒体文件进行播放处理,从而高效、稳定地输出媒体 信息。至于利用建好的滤镜链路具体如何播放媒体文件,可以采用现有公知 的播放技术,本文不再赘述。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (18)

1. 一种媒体文件的滤镜链路建立方法,其特征在于,该方法预先设置滤镜链路模型和本地滤镜;并在建立滤镜链路时,包括: A、选择滤镜链路模型,将滤镜链路模型的源节点作为当前节点; B、根据当前节点的滤镜类型及其关键属性值从本地滤镜中选择匹配的滤镜作为当前节点的滤镜; C、根据当前滤镜链路模型的节点关系判断下一节点是否存在,如果存在则将该下一节点作为当前节点,返回步骤B,否则结束滤镜链路建立过程。
2、 根据权利要求1所述的方法,其特征在于,步骤B中,进一步包括:bl、当根据当前节点的滤镜类型及其关键属性值不能从本地滤镜中选择 出匹配的滤镜时,则根据当前滤镜链路模型的节点关系判断上一节点是否存在,如果不存在则滤镜链路创建失败;如果存在则将上一节点作为当前节点, 执行步骤b2;b2、重新根据当前节点的滤镜类型及其关键属性值从本地滤镜中按次序 选择下一个匹配的滤镜,如果选择到匹配的滤镜则以该滤镜更新当前节点的 已有滤镜,执行步骤C;否则返回步骤bl。
3、 根据权利要求2所述的方法,其特征在于,为每一种滤镜类型中的 本地滤镜设置优先级,步骤b2中,根据当前节点的滤镜类型及其关键属性 值从本地滤镜中按优先级次序选择下 一 个匹配的滤镜。
4、 根据权利要求l所述的方法,其特征在于,所述本地滤镜按照滤镜 类型主要包括:源滤镜、分离滤镜、解码滤镜、以及渲染滤镜;所述源滤镜 的关键属性包括:文件扩展名、网络协议以及文件头部信息;分离滤镜的关 键属性包括:文件扩展名和输入的媒体类型;解码滤镜的关键属性包括:输 入的媒体类型;渲染滤镜的关键属性包括:输入的媒体类型。
5、 根据权利要求1所述的方法,其特征在于,步骤B中,所述滤镜类 型的关键属性的取值根据媒体文件信息和/或上一 节点滤镜输出的媒体类型确定。
6、 根据权利要求1所述的方法,其特征在于,所述滤镜链路模型有一 个以上,每个滤镜链路模型中的滤镜节点的数目以及每个节点的滤镜类型为 确定值。
7、 根据权利要求l所述的方法,其特征在于,步骤A中所选的滤镜链路模型为初始滤镜链路模型; 步骤B之后、步骤C之前进一步包括:Bl、根据当前节点所选滤镜的输出信息、媒体文件信息、和/或播放软 件的特殊用途更新当前的滤镜链路模型。
8、 根据权利要求7所述的方法,其特征在于,所述初始滤镜链路模型按照节点顺序包括:源滤镜节点,分离滤镜节点,之后是两个并列分支, 一个分支依次为视 频解码滤镜节点和视频渲染滤镜节点,另一个分支依次为音频解码滤镜节点 和音频渲染滤镜节点。
9、 根据权利要求8所述的方法,其特征在于,步骤B1中,在当前节点 为源滤镜节点时,所述更新滤镜链路模型的方法具体包括:如果所选源滤镜的输出媒体类型为确定的视频和音频时,将所述分离滤 镜节点从当前滤镜链路模型中删除;进一步地,如果其输出的视频为未压缩 格式,则将所述视频解码滤镜节点从当前滤镜链路模型中删除,如果其输出 的音频为未压缩格式,则将所述音频解码滤镜节点从当前滤镜链路模型中删 除。
10、 根据权利要求8所述的方法,其特征在于,所述本地滤镜中包括字 幕滤镜;步骤B1中,所述更新滤镜链路模型的方法具体包括:如果所选滤 镜的输出为未压缩视频格式、并且媒体文件外挂字幕文件,则在视频渲染滤 镜节点之前增加字幕滤镜节点。
11、 根据权利要求8所述的方法,其特征在于,所述本地滤镜中包括对 视频或音频的特殊处理滤镜;步骤B1中,所述更新滤镜链路模型的方法具体包括:如果所选滤镜的输出为未压缩的视频或音频,且播放软件需要增加 对视频或音频的特殊处理时,则在视频渲染滤镜节点之前增加视频特殊处理 滤镜节点,或者在音频渲染滤镜节点之前增加音频特珠处理滤镜节点。
12、 根据权利要求1至12任一项所述的方法,其特征在于,所述本地滤镜设置在本地计算机的非注册表目录中。
13、 一种媒体文件的滤镜链路建立装置,其特征在于,该装置包括: 设置模块,用于设置滤镜链路模型和本地滤镜;模型选择模块,用于在建立滤镜链路时从设置模块中选择滤镜链路模 型,将滤镜链路模型的源节点作为当前节点,触发滤镜选择模块;滤镜选择模块,用于根据当前节点的滤镜类型及其关键属性值从本地滤 镜中选择匹配的滤镜作为当前节点的滤镜,触发第一判断模块;第一判断模块,用于根据当前滤镜链路模型的节点关系判断下一节点是 否存在,如果存在则将该下一节点作为当前节点,返回滤镜选择模块,否则 滤镜链路建立成功。
14、 根据权利要求13所述的装置,其特征在于,所述装置进一步包括: 第二判断模块,用于当根据当前节点的滤镜类型及其关键属性值不能从本地滤镜中选择出匹配的滤镜时,根据当前滤镜链路模型的节点关系判断上 一节点是否存在,如果不存在则滤镜链路创建失败;如果存在则将上一节点作为当前节点,触发所述滤镜选择模块重新根据当前节点的滤镜类型及其关 键属性值从本地滤镜中按次序选择下一个匹配的滤镜,如果选择到匹配的滤镜则以该滤镜更新当前节点的已有滤镜,触发第一判断模块;否则返回第二 判断模块。
15、 根据权利要求13所述的装置,其特征在于,所述本地滤镜按照滤 镜类型主要包括:源滤镜、分离滤镜、解码滤镜、以及渲染滤镜;所述源滤 镜的关键属性包括:文件扩展名、网络协议以及文件头部信息;分离滤镜的 关键属性包括:文件扩展名和输入的媒体类型;解码滤镜的关键属性包括: 输入的媒体类型;渲染滤镜的关键属性包括:输入的媒体类型。
16、 根据权利要求13所述的装置,其特征在于,所述滤镜链路模型有 一个以上,每个滤镜链路模型中的滤镜节点的数目以及每个节点的滤镜类型 为确定值。
17、 根据权利要求13所述的装置,其特征在于,该装置在滤镜选择模 块和第 一 判断模块之间进 一 步包括:滤镜链路模型更新模块,用于根据当前节点所选滤镜的输出信息、媒体 文件信息、和/或播放软件的特殊用途更新当前的滤镜链路模型。
18、 根据权利要求17所述的装置,其特征在于,所述初始滤镜链路模 型按照节点顺序包括:源滤镜节点,分离滤镜节点,之后是两个并列分支, 一个分支依次为视 频解码滤镜节点和视频渲染滤镜节点,另一个分支依次为音频解码滤镜节点 和音频渲染滤镜节点。
CN2008100975449A 2008-05-12 2008-05-12 媒体文件的滤镜链路建立方法和装置 Active CN101272390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100975449A CN101272390B (zh) 2008-05-12 2008-05-12 媒体文件的滤镜链路建立方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100975449A CN101272390B (zh) 2008-05-12 2008-05-12 媒体文件的滤镜链路建立方法和装置

Publications (2)

Publication Number Publication Date
CN101272390A true CN101272390A (zh) 2008-09-24
CN101272390B CN101272390B (zh) 2012-03-21

Family

ID=40006076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100975449A Active CN101272390B (zh) 2008-05-12 2008-05-12 媒体文件的滤镜链路建立方法和装置

Country Status (1)

Country Link
CN (1) CN101272390B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101552791B (zh) * 2009-05-22 2012-09-19 腾讯科技(深圳)有限公司 播放多个媒体文件的方法和系统
WO2013152554A1 (zh) * 2012-04-10 2013-10-17 中兴通讯股份有限公司 自动设置音效参数的方法及装置
CN106060628A (zh) * 2016-06-28 2016-10-26 暴风集团股份有限公司 基于DirectShow支持可变编码的方法及系统
CN113630557A (zh) * 2021-10-09 2021-11-09 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、存储介质及计算机程序产品

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101552791B (zh) * 2009-05-22 2012-09-19 腾讯科技(深圳)有限公司 播放多个媒体文件的方法和系统
WO2013152554A1 (zh) * 2012-04-10 2013-10-17 中兴通讯股份有限公司 自动设置音效参数的方法及装置
CN103366779A (zh) * 2012-04-10 2013-10-23 中兴通讯股份有限公司 自动设置音效参数的方法及装置
CN106060628A (zh) * 2016-06-28 2016-10-26 暴风集团股份有限公司 基于DirectShow支持可变编码的方法及系统
CN113630557A (zh) * 2021-10-09 2021-11-09 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、存储介质及计算机程序产品

Also Published As

Publication number Publication date
CN101272390B (zh) 2012-03-21

Similar Documents

Publication Publication Date Title
CN101091213B (zh) 处理来自信息存储介质的数据的设备和方法
KR100825898B1 (ko) 소형매체형식 파일들을 동기식 멀티미디어통합언어로변환하기 위한 시스템 및 방법
CN100501725C (zh) 存取元数据的简化方法和装置
CN1993755B (zh) 包括元数据的存储介质及其再现设备和方法
JP4252030B2 (ja) 記憶装置およびコンピュータ読取り可能な記録媒体
CN101866671B (zh) 使用信息存储介质通过标题搜索支持标题再现的再现设备
MXPA02001762A (es) Sistema de procesamiento y almacenamiento de video digital para datos de video, audio y auxiliares.
CN1379902A (zh) 视频、音频和辅助数据的数字视频处理和界面系统
CN101099208A (zh) 使用本地存储从记录介质再现数据的方法和装置
CN101849261A (zh) 内容发送方法及系统
KR20080024137A (ko) 대형 재생 리스트를 위한 재생 리스트 구조
CN100445962C (zh) 记录设备及其方法
CN101552791B (zh) 播放多个媒体文件的方法和系统
KR100366760B1 (ko) 멀티미디어 파일 결합방법
CN101272390B (zh) 媒体文件的滤镜链路建立方法和装置
CN101637029A (zh) 媒体内容的译码
CN100449535C (zh) 利用文件分段来保存关键数据的完整性的视频和音频记录
WO2005043901A1 (ja) レジューム再生システム
CN102215366A (zh) 一种多媒体文件的生成、播放方法和系统
CN101753579B (zh) 一种用于移动通讯设备的多媒体播放方法
CN101083114A (zh) 记录设备和方法、程序以及存储介质
CN101015012B (zh) 再现av数据的设备
JP4334545B2 (ja) 記憶装置およびコンピュータ読取り可能な記録媒体
JP4833346B2 (ja) 記憶装置およびコンピュータ読取り可能な記録媒体
CN101103405B (zh) 从多个信息存储介质执行应用的方法

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
C14 Grant of patent or utility model
TR01 Transfer of patent right

Effective date of registration: 20151231

Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone

Patentee after: Shenzhen Tencent Computer System Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

C41 Transfer of patent application or patent right or utility model