一种高效率富媒体展现系统和方法

文档序号:7871327阅读:266来源:国知局
专利名称:一种高效率富媒体展现系统和方法
技术领域
本发明涉及计算机和通信技术领域,具体涉及富媒体的网络传输和显示,特别是一种能够提高富媒体展现效率、优化富媒体展现过程的高效率富媒体展现系统和方法。
背景技术
随着互联网技术的发展,包含文字、图片、声音、视频、动画和交互脚本中的一种或多种形式组合的富媒体内容广泛存在于互联网。富媒体有良好的互动性,具有丰富的表现力,因此,各大媒体都在选择使用富媒体来对其作品进行展现。与此同时,随着富媒体应用的增多,对富媒体展现系统的性能要求也越来越高,富媒体展现系统的响应时间、反应速度、流畅度、内存占用量、执行效率等成为评价富媒体展现系统好坏的重要指标。虽然随着硬件的不断发展和升级,一般的应用程序不用刻意优化内存等硬件资源的使用情况,但是,在硬件更新换代的情况下,用户的需求也不断增加。如果运行于用户计算机上的程序都不考虑硬件资源的消耗,用户的硬件资源就得不到最好的发挥,并且会使得用户体验变差。另一方面,虽然硬件更新换代迅速,但不代表所有用户的硬件都会按照最先进的水平进行更新,适当优化应用程序硬件资源占用可以兼顾大多数用户的硬件条件。如前所述,富媒体资源内容包含的种类较多,要完整展现一个富媒体文件,可能需要调用不同的文件解析内核,这些不同的内核实现了不同的功能,如:实现文字渲染的文字处理展现内核、解析图片资源的图片展现内核、实现音频播放的音频处理内核、实现视频播放的视频处理内核、实现flash展现的相关内核等。可想而知,完整展现包含较多种类的富媒体内容时所占用的系统资源变得很大,因此,寻找一种可以高效率加载、展现富媒体的方法变得很有必要。

发明内容
(一 )要解决的技术问题本发明要解决的技术问题在于提出一种高效率展现富媒体的系统和方法,以减少富媒体展现系统的内存开销,加快富媒体展现系统的响应速度,从而使得富媒体应用能够更加流畅的运行。( 二 )技术方案为解决上述技术问题,本发明提出一种富媒体展现系统,包括数据接收模块、数据解码模块、富媒体展现模块、接收数据缓存模块和解码数据缓存模块,所述数据接收模块用于从富媒体系统外部接收富媒体数据,并将接收到的富媒体数据写入所述接收数据缓存模块;所述接收数据缓存模块用 于暂存来自数据接收模块的富媒体数据;所述数据解码模块用于读取所述接收数据缓存模块中暂存的富媒体数据;所述解码数据缓存模块用于暂存来自所述数据解码模块的解码的富媒体数据;所述富媒体展现模块用于读取所述解码数据缓存模块中暂存的解码的富媒体数据,并对该解码的富媒体数据的内容进行展现。本发明还提出一种富媒体展现方法,应用于富媒体展现系统中,其特征在于,所述富媒体展现系统还包括接收数据缓存模块和解码数据缓存模块,所述方法包括如下步骤:从富媒体系统外部接收富媒体数据,并将接收到的富媒体数据写入所述接收数据缓存模块;从所述接收数据缓存模块中读取富媒体数据后进行解码,并写入解码数据缓存模块;从所述解码数据缓存模块中读取解码的富媒体数据,并对该解码的富媒体数据的内容进行展现。(三)有益效果本发明的富媒体展现系统和方法采用了数据缓存队列机制和解码阻塞机制,能够有效的提高富媒体展现效率,更少地占用系统内存,加快了系统响应速度。


图1是本发明的一个实施例的富媒体系统的模块构成图;图2是本发明所采用的数据缓存队列的数据结构示意图;图3是本发明的一个实现解码及阻塞机制流程示意图。
具体实施例方式本发明的一个方面是提出一种数据缓存机制来暂存富媒体系统所接收到的未解码富媒体数据,以及暂存解码后的富媒体数据。所述数据缓存队列机制为:利用数据缓存队列来写入和读出数据,数据缓存队列通过数据节点来存储数据,每个数据节点保存预定长度的富媒体数据的数据内容,同时保存该数据节点的数据长度信息、下一数据节点信息(指向下一数据节点的指针)和该节点已读取数据长度信息。本发明的数据缓存机制既可用于缓存富媒体系统从外部读取的未解码富媒体数据,也可以用于在展现富媒体时缓存解码的富媒体数据。在此,将前者建立的数据缓存队列称为接收数据缓存队列,将后者建立的数据缓存队列称为解码数据缓存队列。本发明的另一个方面是提出一种数据阻塞机制,以避免解码的富媒体数据量过多的点用系统内容。所述数据阻塞机制如下:为解码数据缓存队列设定一个解码数据量的上限阈值,当展现富媒体时,判断解码数据缓存队列的总数据量是否超过所述阈值:如果超过,则富媒体展现系统的解码模块暂停解码一个预定时长,否则继续解码步骤。为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明,以便本领域的技术人员更好地理解本发明。图1为本发明的一个实施例的富媒体系统的模块构成图。在本实施例中,如图1所示,该系统101包括数据接收模块102、数据解码模块103、富媒体展现模块104、接收数据缓存模块105和解码数据缓存模块106。数据接收模块102用于从富媒体系统101外部接收富媒体数据,并将接收到的富媒体数据写入接收数据缓存模块105。本发明既可以用于网络富媒体资源的在线阅览,又可以用于本地富媒体资源文件的阅览。因此,所述数据接收模块102根据富媒体资源是网络资源还是本地资源调用不同的处理接口来接收富媒体数据。对于网络富媒体资源,所述数据接收模块102例如可以使用网络数据流接收接口接收数据,每当接收接口接收到的富媒体数据达到可以处理的数据量之后,就将所接收到的富媒体数据传递到数据接收模块102的相关功能模块中进行处理;对于本地富媒体资源,所述数据接收模块102可通过文件读取API来实现,在需要的时候读取本地富媒体文件数据。接收数据缓存模块105用于暂存来自数据接收模块102的富媒体数据。根据本发明,所述接收数据缓存模块105具有一种数据缓存队列结构,所述数据缓存队列由数据节点构成,每个数据节点用于存储预定长度的富媒体数据。来自数据接收模块102的富媒体数据通过构建新的数据节点添加到所述接收数据缓存模块105的数据缓存队列中。数据缓存队列的具体结构将在下面详细描述。数据解码模块103用于读取接收数据缓存模块105中暂存的富媒体数据,并对所读取的富媒体数据进行解码,将解码的富媒体数据写入解码数据缓存模块106。解码数据缓存模块106用于暂存来自数据解码模块103的解码的富媒体数据。根据本发明,所述解码数据缓存模块106与所述接收数据缓存模块105 —样,也具有一种数据缓存队列结构。来自数据解码模块103的解码的富媒体数据也通过构建新的数据节点添加到该解码数据缓存模块106的数据缓存队列中。同样,数据缓存队列的具体结构将在下面详细描述。
·
富媒体展现模块104用于读取解码数据缓存模块103中暂存的解码的富媒体数据,并对该解码的富媒体数据的内容进行展现。所述富媒体展现模块104可以调用API接口或使用开源第三方库来实现,本领域技术人员可以在不付出任何创造性劳动情况下即可实现对解码的富媒体数据的展现,因此在此不加详述。下面参照图2来详细描述数据缓存队列的结构,以及向该数据缓存队列写入和读出数据的方法。图2是本发明所采用的数据缓存队列的数据结构示意图,如图所示,所述数据缓存队列201通过数据节点来暂存数据,如前所述,数据缓存队列中首先创建的数据节点称为头节点,最后创建的数据节点称为尾节点。图2中示出了具有η个普通数据节点的示例,其中自然数或O。图2中的附图标记202是其中的第k个数据节点(k为整数且O ^ k ^ η)的数据结构图,如图所示,每个数据节点保存预定长度的富媒体数据的数据内容,同时保存该数据节点的数据长度信息、下一数据节点信息和已读取数据长度信息。其中,所述一个数据节点的下一数据节点是指的是该数据缓存队列中存储了与该数据节点中的数据内容相街接的数据内容的数据节点。下一数据节点信息即为用于指示下一数据节点的信息。在具体实施方式
中,通常通过实体的存储器和存储单元(如计算机的内存)来实现数据缓存模块,此时,下一数据节点信息即为指下一数据节点的存储器地址,或称为数据指针。向所述数据缓存队列写入数据的方式为:当数据缓存队列刚创建或者其中没有暂存任何数据时,其中不包括任何数据节点;当数据缓存队列开始写入要暂存的数据时,其形成第一个数据节点,在此也称为头节点,头节点在刚形成时,其中的数据内容为空,下一数据节点信息也为空;当数据缓存队列继续接收要暂存的数据并达到头节点的预定数据长度时,新建一个数据节点来继续暂存新接收到的数据,同时,使头节点的下一数据节点信息用于指示该新建的数据节点;当数据缓存队列继续接收数据时,其不断创建新的数据节点;最后被创建的数据节点在此也称为尾节点。由上可知,尾节点中的下一数据节点信息为空。从所述数据缓存队列中读取数据有两种方式,具体为:
(I)每次读取一个数据节点的数据内容,每次都读取队列的头节点的数据内容,并在读取完头节点的数据内容之后删除该头节点,使所述头节点的下一节点信息指示的数据节点成为所述数据缓存队列的头节点;(2)每次读取指定数据长度的富媒体数据,且每次从头节点开始依次读取各节点的数据内容,直到读取到的数据内容的长度达到一个指定值,或者直到数据缓冲队列中的所有数据读取完毕为止;每读取完毕一个数据节点,则删除所读取完毕的数据节点,并使该数据节点的下一节点成为所述数据缓存队列的头节点;若读取到指定长度的富媒体数据之后,当前读取的数据节点的数据内容还没有读取完毕时,则将该数据节点作为头节点,并在该头节点中记录已读取数据长度;在下次读取该数据缓冲队列时,通过读取该头节点的已读取数据长度,跳过该头节点的数据内容的该已读取长度的部分再进行数据内容的读取。下表是所述数据缓存队列的一种软件实现的一个具体示例,其中显示了数据缓存队列的属性及方法:
权利要求
1.一种富媒体展现系统,包括数据接收模块、数据解码模块、富媒体展现模块,其特征在于,还包括接收数据缓存模块和解码数据缓存模块, 所述数据接收模块用于从富媒体系统外部接收富媒体数据,并将接收到的富媒体数据写入所述接收数据缓存模块; 所述接收数据缓存模块用于暂存来自数据接收模块的富媒体数据; 所述数据解码模块用于读取所述接收数据缓存模块中暂存的富媒体数据; 所述解码数据缓存模块用于暂存来自所述数据解码模块的解码的富媒体数据; 所述富媒体展现模块用于读取所述解码数据缓存模块中暂存的解码的富媒体数据,并对该解码的富媒体数据的内容进行展现。
2.如权利要求1所述的富媒体展现系统,其特征在于, 所述接收数据缓存模块和解码数据缓存模块通过一种数据缓存队列机制来暂存数据,所述数据缓存队列机制为:利用数据缓存队列来写入和读出数据,数据缓存队列通过数据节点来存储数据,每个数据节点保存预定长度的富媒体数据的数据内容,同时保存该数据节点的数据长度信息、下一数据节点信息和已读取数据长度信息。
3.如权利要求2所述的富媒体展现系统,其特征在于,所述解码数据缓存模块为解码数据缓存队列设定一个解码数据量的上限阈值,当展现富媒体时,判断解码数据缓存队列的总数据量是否超过所述阈值:如果超过,则富媒体展现系统的解码模块暂停解码一个预定时长,否则继续解码步骤。
4.一种富媒体展现方法,应用于富媒体展现系统中,其特征在于,所述富媒体展现系统还包括接收数据缓存模块和解码数据缓存模块,所述方法包括如下步骤: 从富媒体系统外部接收富媒体数据,并将接收到的富媒体数据写入所述接收数据缓存模块; 从所述接收数据缓存模块中读取富媒体数据后进行解码,并写入解码数据缓存模块; 从所述解码数据缓存模块中读取解码的富媒体数据,并对该解码的富媒体数据的内容进行展现。
5.如权利要求4所述的富媒体展现方法,其特征在于,所述接收数据缓存模块和解码数据缓存模块利用数据缓存队列来写入和读出数据,数据缓存队列通过数据节点来存储数据,每个数据节点保存预定长度的富媒体数据的数据内容,同时保存该数据节点的数据长度信息、下一数据节点信息和已读取数据长度信息。
6.如权利要求5所述的富媒体展现方法,其特征在于,当所述数据缓存队列刚创建或者其中没有暂存任何数据时,其中不包括任何数据节点;当数据缓存队列开始写入要暂存的数据时,其形成第一个数据节点,即头节点,头节点在刚形成时,其中的数据内容为空,下一数据节点信息也为空;当数据缓存队列继续接收要暂存的数据并达到头节点的预定数据长度时,新建一个数据节点来继续暂存新接收到的数据,同时,使头节点的下一数据节点信息用于指示该新建的数据节点;当数据缓存队列继续接收数据时,其不断创建新的数据节点。
7.如权利要求6所述的富媒体展现方法,其特征在于,当读取所述数据缓存队列时,每次读取一个数据节点的数据内容,每次都读取队列的头节点的数据内容,并在读取完头节点的数据内容之后删除该头节 点,使所述头节点的下一节点信息指示的数据节点成为所述数据缓存队列的头节点。
8.如权利要求6所述的富媒体展现方法,其特征在于,当读取所述数据缓存队列时,每次读取指定数据长度的富媒体数据,且每次从头节点开始依次读取各节点的数据内容,直到读取到的数据内容的长度达到一个指定值,或者直到数据缓冲队列中的所有数据读取完毕为止;每读取完毕一个数据节点,则删除所读取完毕的数据节点,并使该数据节点的下一节点成为所述数据缓存队列的头节点;若读取到指定长度的富媒体数据之后,当前读取的数据节点的数据内容还没有读取完毕时,则将该数据节点作为头节点,并在该头节点中记录已读取数据长度;在下次读取该数据缓冲队列时,通过读取该头节点的已读取数据长度,跳过该头节点的数据内容的该已读取长度的部分再进行数据内容的读取。
9.如权利要求4所述的富媒体展现方法,其特征在于,所述从所述解码数据缓存模块中读取解码的富媒体数据,并对该解码的富媒体数据的内容进行展现的步骤包括: 步骤301、在富媒体数据解码开始后,判断所述解码数据缓存模块中存储的解码的富媒体数据的数据长度是否超过一个阈值:若超过,则执行步骤302 ;若不超过,则执行步骤303 ; 步骤302、暂停富媒体数据的解码一个预定时间段,然后返回步骤301 ; 步骤303、读取不超过预定数据长度的待解码的富媒体数据; 步骤304、对步骤303所读取得到的待解码富媒体数据的进行解码; 步骤305,将步骤304得到的解码的富媒体数据写入到解码数据缓存模块中; 步骤306,判断待解码富媒体数据是否已经全部解码完毕,若没有全部解码完毕,则返回执行步骤301,若全部解码完毕则结束解码过程结束。
10.如权利要求9所述的富媒体展现方法,其特征在于,所述阈值与所述预定时间段是相互限制的。
全文摘要
本发明公开了一种高效率富媒体展现系统和方法,所述系统包括数据接收模块、数据解码模块、富媒体展现模块、接收数据缓存模块和解码数据缓存模块,其中,接收数据缓存模块用于暂存数据接收模块接收的富媒体数据;解码数据缓存模块用于暂存通过数据解码模块解码的富媒体数据。本发明的两个数据缓存模块具有数据缓存队列结构,用来缓冲数据的接收和解码过程,以使富媒体数据的解析更流畅;同时,解码数据缓存模块还具有数据阻塞机制,使得解码数据缓存模块中的富媒体数据量不超过一个阈值,因此能有效地降低内存的占有量,为进一步提高富媒体展现系统的执行效率提供了可靠保证。
文档编号H04L12/861GK103078810SQ20121059387
公开日2013年5月1日 申请日期2012年12月31日 优先权日2012年12月31日
发明者杜清秀, 周传锋 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1