一种基于自由组件的多媒体数据处理方法

文档序号:7554341阅读:184来源:国知局
专利名称:一种基于自由组件的多媒体数据处理方法
技术领域
本发明涉及多媒体数据处理领域,具体涉及一种基于自由组件的多媒体数据处理方法。
背景技术
随着计算机技术的不断发展,多媒体计算机的应用也日益广泛,成为信息技术的重要发展方向之一。运用多媒体信息处理技术,计算机能综合处理视频、图像、文字、声音、数据等多种媒体信息,使它们集成为一个系统并具有良好的交互性。通过多种信息媒体的获取、交换、传递和再现,使计算机能较好地再现人的自然世界,开拓了诱人的应用前景。目前,多媒体信息处理技术的应用已涉及各个领域,并对人们的工作和生活方式产生了极大的影响。
授权公告号为CN102196268B的发明提供了一种多媒体数据处理方法、装置和系统,其中方法包括:接收编码端发送的码流,码流包括按照多媒体容器格式存放的多个多媒体数据帧,多个多媒体数据帧是对源数据进行压缩编码获得的;根据码流探测特征库识别码流中各个多媒体数据帧所用的压缩编码格式并从码流中提取各个多媒体数据帧,其中,码流探测特征库包括用于识别多媒体数据帧所用的压缩编码格式的特征信息;根据提取出的各个多媒体数据帧及其所用的压缩编码格式获取源数据。
随着多媒体技术的飞速发展,人们对于多媒体数据处理的需求也随之增加,传统的固定功能的多媒体数据处理软件无法满足用户多样化的需求。发明内容
本发明公开了一种基于自由组件的多媒体数据处理方法,能够依据用户的需要,将具有不同功能的组件组装构成一个完整的多媒体数据处理管道,用于处理多媒体数据,配置灵活,处理效率高。
一种基于自由组件的多媒体数据处理方法,包括以下步骤:
(I)按照不同的功能构建各个用于多媒体数据处理的组件,包括:
网络接收组件,用于从网络上接收基于网络协议传输的多媒体数据流以及接收通过网络协议命令请求传输的多媒体数据流;
数据解析组件,用于依据网络数据封装协议解析多媒体数据流,获取原始的多媒体数据;
数据读取组件,用于依据各文件的标准格式读取多媒体数据包,并依据各文件的标准格式解析数据包,获 得原始的多媒体数据;
数据解码组件,用于将压缩编码后的多媒体数据包进行解码,并将解码后的数据转换为用户所需要的数据类型;
数据存储组件,用于将多媒体数据存储成用户所需要的文件格式;
数据输出组件,用于进行多媒体数据的输出。多媒体数据的输出可以输出至用户的显示设备,用户指定的存储设备以及用户指定的文件等。构建的各个用于多媒体数据处理的组件都具有以下特征:a、每个组件都维护一个上行组件链表和一个下行组件链表,上行组件链表中列举所有能够与该组件链接的上行组件,下行组件链表中列举所有能够与该组件链接的下行组件;b、每个组件都具有上行组件增删接口和下行组件增删接口,上行组件增删接口用于在上行组件链表中增加上行组件,下行组件增删接口用于在下行组件链表中增加下行组件;c、每个组件都具有多媒体数据的推送接口和提取接口,推送接口用于将该组件处理后的多媒体数据推送至相应的下行组件,提取接口用于从该组件的上行组件中提取多媒体数据;
d、每个组件都具有命令传递接口,当前组件完成上行组件传递过来的命令后将此命令传递至相应的下行组件。构建的各个用于多媒体数据处理的组件都维护各自的运行状态,并且依据不同的运行状态进行不同的数据处理操作。不同的运行状态包括初始化、开启、运行、暂停、回退等状态,这些运行状态可以由用户控制,改变不同组件进行的多媒体数据处理方式。(2)用户针对待处理的多媒体数据输入命令。用户针对待处理的多媒体数据输入命令,如:打开文件、打开网络流、请求多媒体流等。(3)将输入命令涉及的所有组件构建成一个多媒体管道,同时相应创建一个事件管道和一个参考时钟。根据用户输入的命令,将各组件采用链接的方法构建成多媒体管道,并配合事件管道以及命令协同处理多媒体数据。多媒体管道链接时,上行组件的输出的多媒体数据类型与下行组件的输入的多媒体数据类型相同时才可以链接,以便保证每个组件接收到的上行组件的数据是该组件可以处理的数据类型。用户输入的命令可以分为三种类型,分别如下:(a)必须传递命令,即必须传递至多媒体管道中各个组件的命令,例如运行、暂停、停止等命令,每个组件接收到这种命令后传递至相应的所有下行组件;(b)可传递命令,只需传递至多媒体管道中的部分组件,传递至最后一个需要处理该命令的组件即可停止传递,如果传递至不需要处理该命令的组件,则该组件可以不受理该命令;(c)不可传递命令,只有传递至某个组件的命令,由用户根据需要进行调用。(4)利用所述多媒体管道中的组件依次对待处理的多媒体数据进行处理;各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点;当组件需要触发事件时,构造相应类型的事件,并将此事件推送至所述事件管道中,事件管道查询到有事件到来时,通过先进先处理的原则处理每个事件。事件管道中的事件需要通知用户时,将事件由用户界面进行显示,事件管道中的事件需要组件完成的传递至相应的组件。
针对用户的一个命令,各组件运行时触发的事件统一由事件管道进行处理,采用先进先处理的方法可以使所有事件能够有序地被处理而不会产生各组件之间的冲突。
针对用户的一个命令,构建一个多媒体管道,并相应构建一个事件管道,将此事件管道的对象指针传递至构成多媒体管道的每个组件中,使多媒体管道中的每个组件都可以访问该事件管道。
针对用户的一个命令,构建一个多媒体管道,并相应构建一个参考时钟,参考时钟的对象指针传递至多媒体管道的每个组件,使多媒体管道中的每个组件都具有统一的参考时钟。
参考时钟保证多媒体管道中的各个组件在处理多媒体数据时实现时间的同步性,保证多媒体数据的处理过程中不会出现时间混乱,各组件暂停处理多媒体数据时,参考时钟将处于暂停状态。
所述各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点,具体操作为:各组件需要依据参考时钟处理多媒体数据时,主动获取当前的参考时间,并将获取的参考时间与多媒体数据的时间戳进行对比,若当前的参考时间早于多媒体数据的时间戳且超过设定阈值,则放弃处理;若当前的参考时间晚于多媒体数据的时间戳且超过设定阈值,则延时处理。所述阈值为250 300ms。
阈值可以依据需要进行设置,当前参考时间远早于多媒体数据的时间戳,则已经没有处理的必要,若当前参考时间远晚于多媒体数据的时间戳,则等待多媒体数据的时间戳与参考时间一致时,再进行处理。
各个组件之间进行多媒体数据传输时,采用统一格式进行。
统一的格式包括以下内容:
1)数据类型,用于标识处于多媒体管道中的多媒体数据格式;
2)数据时间戳,用于控制多媒体数据处理的时间,以及同一命令构建的多媒体管道中数据的同步;
3)数据序列号,用于判断当前多媒体数据是否连续;
4)多媒体数据的具体信息,包括多媒体视频相关数据,音频相关数据等。
本发明一种基于自由组件的多媒体数据处理方法,可扩展性强,配置灵活,能够应对不同用户的多样化需求,处理效率高。


图1为本发明基于自由组件的多媒体数据处理方法中每个组件的结构示意图2为本发明基于自由组件的多媒体数据处理方法中各组件数据处理的流程示意图3是本发明基于自由组件的多媒体数据处理方法中命令与事件管道处理流程示意图4是本发明基于自由组件的多媒体数据处理方法中的命令处理流程图5是本发明基于自由组件的多媒体数据处理方法的具体实施流程示意图6是本发明基于自由组件的多媒体数据处理方法中构建的多媒体管道、事件管道以及参考时钟的关系示意图。
具体实施例方式下面结合附图,对本发明基于自由组件的多媒体数据处理方法做详细描述。如图5所示,一种基于自由组件的多媒体数据处理方法,包括以下步骤:(I)按照不同的功能构建各个用于多媒体数据处理的组件,包括:网络接收组件,用于从网络上接收基于网络协议传输的多媒体数据流以及接收通过网络协议命令请求传输的多媒体数据流;数据解析组件,用于依据网络数据封装协议解析多媒体数据流,获取原始的多媒体数据;数据读取组件,用于依据各文件的标准格式读取多媒体数据包,并依据各文件的标准格式解析数据包,获得原始的多媒体数据;数据解码组件,用于将压缩编码后的多媒体数据包进行解码,并将解码后的数据转换为用户所需要的数据类型;数据存储组件,用于将多媒体数据存储成用户所需要的文件格式;数据输出组件,用于进行多媒体数据的输出。构建的各个用于多媒体数据处理的组件都具有以下特征:a、每个组件都维护一个上行组件链表和一个下行组件链表,上行组件链表中列举所有能够与该组件链接的上行 组件,下行组件链表中列举所有能够与该组件链接的下行组件;b、每个组件都具有上行组件增删接口和下行组件增删接口,上行组件增删接口用于在上行组件链表中增加上行组件,下行组件增删接口用于在下行组件链表中增加下行组件;C、每个组件都具有多媒体数据的推送接口和提取接口,推送接口用于将该组件处理后的多媒体数据推送至相应的下行组件,提取接口用于从该组件的上行组件中提取多媒体数据;d、每个组件都具有命令传递接口,当前组件完成上行组件传递过来的命令后将此命令传递至相应的下行组件。如图1所示,每个组件都具有:数据输入格式接口、数据输出格式接口、多媒体数据传输接口(包括推送数据接口和提取数据接口)、用于命令传输接口、上行组件链接接口、下行组件链接接口、运行状态维护接口、参考时钟接口、事件管道接口。各个用于多媒体数据处理的组件都维护各自的运行状态,并且依据不同的运行状态进行不同的数据处理操作。(2)用户针对待处理的多媒体数据输入命令。如:播放多媒体文件时,首先传入待处理的文件路径,其次发送播放命令,即可播放。命令的传输过程如图3所示,命令在不同的组件中的传递(如图4所示),同时事件管道中依据命令选择相应的操作。(3)将输入命令涉及的所有组件构建成一个多媒体管道,同时相应创建一个事件管道和一个参考时钟,并注册事件处理函数,用于处理不同时间的事件,如图6所示。
播放多媒体文件时,涉及的组件有:文件预分析组件,用于分析文件类型、对应文件类型的解析组件,用于将文件中的原始多媒体数据解析出来的解码组件,用于将多媒体原始数据解码成相应的可播放格式、缓冲队列组件、码流平滑组件,用于控制播放的平滑度、音频播放组件、视频播放组件。
构建多媒体管道时,只有上行组件的数据输出格式接口和当前组件的数据输入格式接口相同,方可链接,每个组件可以连接一个或者多个上行组件和下行组件。
上行组件和下行组件的定义为:如果多媒体数据的处理需要依次经过相互链接的ABC四个组件,则对于组件B来说,组件A为组件B的上行组件,组件C为组件B的下行组件。
创建参考时钟时,将多媒体管道中各个组件的参考时钟接口依次连接,参考时钟记录多媒体数据开始处理到当前的时间,并通过参考时钟接口将参考时钟传递至多媒体管道中的每个组件。
创建事件管道时,将多媒体管道中各个组件的事件管道接口依次连接,事件管道内包含一个事件队列以及处理各种类型事件的独立模块,根据事件的不同类型,调用相应的事件处理模块处理事件。
(4)利用多媒体管道中的组件依次对待处理的多媒体数据进行处理;
各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点;当组件需要触发事件时,构造相应类型的事件,并将此事件推送至事件管道中,事件管道查询到有事件到来时,通过先进先处理的原则处理每个事件,处理时利用事件处理函数进行处理。
各个组件之间进行多媒体数据传输时,采用统一格式进行。
各个组件之间进行多媒体数据处理如图2所示,当前组件完成多媒体数据处理后,将多媒体数据直接传 输至下行组件或者经下行组件请求后,将数据传输至下行组件,依据下行组件数据传输接口类型的不同进行选择。
各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点,具体操作为:各组件需要依据参考时钟处理多媒体数据时,主动获取当前的参考时间,并将获取的参考时间与多媒体数据的时间戳进行对比,若当前的参考时间早于多媒体数据的时间戳且超过设定阈值,则放弃处理;若当前的参考时间晚于多媒体数据的时间戳且超过设定阈值,则延时处理。由于音视频的不同步偏移量按照经验值最大为300ms,所以在此处将阈值设定为150ms,即音频与视频偏移最大时为300ms。
权利要求
1.一种基于自由组件的多媒体数据处理方法,其特征在于,包括以下步骤: (1)按照不同的功能构建各个用于多媒体数据处理的组件; (2)用户针对待处理的多媒体数据输入命令; (3)将输入命令涉及的所有组件构建成一个多媒体管道,同时相应创建一个事件管道和一个参考时钟; (4)利用所述多媒体管道中的组件依次对待处理的多媒体数据进行处理; 各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点;当组件需要触发事件时,构造相应类型的事件,并将此事件推送至所述事件管道中,事件管道查询到有事件到来时,通过先进先处理的原则处理每个事件。
2.如权利要求1所述的基于自由组件的多媒体数据处理方法,其特征在于,步骤(I)中构建的各个用于多媒体数据处理的组件包括: 网络接收组件,用于从网络上接收基于网络协议传输的多媒体数据流以及接收通过网络协议命令请求传输的多媒体数据流; 数据解析组件,用于依据网络数据封装协议解析多媒体数据流,获取原始的多媒体数据; 数据读取组件,用于依据各文件的标准格式读取多媒体数据包,并依据各文件的标准格式解析数据包,获得原始的多媒体数据; 数据解码组件,用于将压缩编码后的多媒体数据包进行解码,并将解码后的数据转换为用户所需要的数据类型; 数据存储组件,用于将多媒体数据存储成用户所需要的文件格式; 数据输出组件,用于进行多媒体数据的输出。
3.如权利要求1所述的基于自由组件的多媒体数据处理方法,其特征在于,步骤(I)中构建的各个用于多媒体数据处理的组件都具有以下特征: a、每个组件都维护一个上行组件链表和一个下行组件链表,上行组件链表中列举所有能够与该组件链接的上行组件,下行组件链表中列举所有能够与该组件链接的下行组件; b、每个组件都具有 上行组件增删接口和下行组件增删接口,上行组件增删接口用于在上行组件链表中增加上行组件,下行组件增删接口用于在下行组件链表中增加下行组件; C、每个组件都具有多媒体数据的推送接口和提取接口,推送接口用于将该组件处理后的多媒体数据推送至相应的下行组件,提取接口用于从该组件的上行组件中提取多媒体数据; d、每个组件都具有命令传递接口,当前组件完成上行组件传递过来的命令后将此命令传递至相应的下行组件。
4.如权利要求1所述的基于自由组件的多媒体数据处理方法,其特征在于,步骤(I)中构建的各个用于多媒体数据处理的组件都维护各自的运行状态,并且依据不同的运行状态进行不同的数据处理操作。
5.如权利要求1所述的基于自由组件的多媒体数据处理方法,其特征在于,所述各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点,具体操作为:各组件需要依据参考时钟处理多媒体数据时,主动获取当前的参考时间,并将获取的参考时间与多媒体数据的时间戳进行对比,若当前的参考时间早于多媒体数据的时间戳且超过设定阈值,则放弃处理;若当前的参考时间晚于多媒体数据的时间戳且超过设定阈值,则延时处理。
6.如权利要求5所述的基于自由组件的多媒体数据处理方法,其特征在于,所述阈值为 250 300ms ο
7.如权利要求1所述的基于自由组件的多媒体数据处理方法,其特征在于,各个组件之间进行多媒体数据传输时,采用统一格式进行。
8.如权利要求7所述的基于自由组件的多媒体数据处理方法,其特征在于,统一格式包括: [ 1)数据类型,用于标识处于多媒体管道中的多媒体数据格式; [2)数据时间戳,用于控制多媒体数据处理的时间,以及同一命令构建的多媒体管道中数据的同步; [3)数据序列号,用于判断当前多媒体数据是否连续; [ 4)多媒体数据的具体 信息,包括多媒体视频相关数据,音频相关数据。
全文摘要
本发明公开了一种基于自由组件的多媒体数据处理方法,包括以下步骤按照不同的功能构建各个用于多媒体数据处理的组件;用户针对待处理的多媒体数据输入命令;将输入命令涉及的所有组件构建成一个多媒体管道,同时相应创建一个事件管道和一个参考时钟;利用所述多媒体管道中的组件依次对待处理的多媒体数据进行处理;各组件进行数据处理时,按照统一的参考时钟来控制多媒体数据处理的时间点;当组件需要触发事件时,构造相应类型的事件,并将此事件推送至所述事件管道中,事件管道查询到有事件到来时,通过先进先处理的原则处理每个事件。本发明用于处理多媒体数据,配置灵活,处理效率高。
文档编号H04L29/06GK103237012SQ201310105778
公开日2013年8月7日 申请日期2013年3月29日 优先权日2013年3月29日
发明者赵健军 申请人:苏州皓泰视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1