流媒体数据处理方法及装置、流媒体数据再现设备的制作方法

文档序号:8002125阅读:275来源:国知局
专利名称:流媒体数据处理方法及装置、流媒体数据再现设备的制作方法
技术领域
本发明涉及移动通信领域,更为具体地,涉及一种流媒体数据处理方法、流媒体数据处理装置以及具有该装置的流媒体数据再现设备。
背景技术
目前,流媒体的应用越来越广泛。所谓流媒体是指采用流式传输的方式在互联网上播放的媒体格式。流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。
通常,流媒体数据包括音频数据和视频数据。所述音频数据和视频数据是两条独立的数据流。在进行流媒体数据播放时,需要将音频数据和视频数据分离开来分别进行解码并呈现。在进行解码和呈现时,音频数据和视频数据中的每帧都具有明确的解码时间帧、显示时间戳。然而,由于存在播放系统中的音频输出设备(例如,声卡)的播放回调(例如,声卡回调)不及时,音频帧和视频帧的解码时间消耗不均匀以及由I帧解码时间长等引起的视频显示卡顿现象,从而会导致音频数据和视频数据不同步,由此使得用户观看流媒体数据时的体验不佳。这里,所述播放回调(例如,声卡回调)指的是音频信号播放设备(例如,声卡)被设置为每隔一定时间,就回调一次,以指示已经播放完一小段音频数据。此时的时间戳也被称为播放回调时间戳。发明内容
鉴于上述,本发明提供了一种流媒体数据处理方法,在该方法中,利用解码后的音频数据的播放回调时间戳来更新流媒体处理设备的系统时间,并且在进行音频数据和视频数据解码后,基于更新后的系统时间来确定视频帧的显示处理方式。利用该方法,可以避免在播放过程中由于音频时间和系统时间不对应但视频时间和系统时间同步而造成的音视频不同步,从而可以大大减少用户观看视频时的卡顿现象。此外,由于在解码后再进行音视频同步,从而可以避免在播放的视频出现非常严重的卡顿时,不会显示黑屏。
根据本发明的一个方面,提供了一种流媒体数据处理方法,包括:根据流媒体数据中的流索引,将流媒体数据分离为音频流数据和视频流数据并分别缓存在音频流数据队列和视频流数据队列中;分别对缓存在所述音频流数据队列和视频流数据队列中的音频流数据和视频流数据进行解码;基于解码后的音频数据的播放回调时间戳以及流媒体再现设备的系统时间,确定音视频同步时间;以及对于解码后的视频流数据中的每一帧,基于该视频帧的时间戳与所确定出的音视频同步时间和视频刷屏时间之和的比较结果,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理。
此外,在本发明的上述实施例的一个或多个示例中,在确定该视频帧是关键数据帧或者该视频帧的时间戳大于等于所确定出的音视频同步时间和该视频帧解码时间之和时,对该视频帧进行解码。此外,在确定该视频帧不是关键数据帧且该视频帧的时间戳小于所确定出的音视频同步时间和该视频帧解码时间之和时,丢弃该视频帧。
此外,在本发明的上述实施例的一个或多个示例中,当所述解码后的音频数据的播放回调时间戳与流媒体再现设备的系统时间不一致时,所述音视频同步时间被确定为等于所述播放回调时间戳与所述系统时间之和的一半。
此外,在本发明的上述实施例的一个或多个示例中,在该视频帧的时间戳大于所确定出的音视频同步时间和该视频刷屏时间之和时,等待该视频帧的显示;在该视频帧的时间戳等于所确定出的音视频同步时间和该视频刷屏时间之和时,显示该视频帧;或者在该视频帧的时间戳小于所确定出的音视频同步时间和该视频刷屏时间之和时,丢弃该视频帧。
此外,在本发明的上述实施例的一个或多个示例中,在进行播放之前,判断音频播放模块数据缓存队列是否已经写满音频流数据,其中在音频播放模块数据缓存队列已经写满或者所有音频数据都完成解码时,进行音频流数据播放,否则,继续对音频流数据缓存队列中的音频流数据进行解码。
此外,在本发明的上述实施例的一个或多个示例中,在显示所述视频帧时,采用指针重指向来直接对存储所述视频帧的内存执行引用操作。
根据本发明的另一方面,提供了一种流媒体数据处理装置,包括:分离单元,用于根据流媒体数据中的流索引,将流媒体数据分离为音频流数据和视频流数据;缓存单元,用于将所述分离出的音频流数据和视频流数据分别缓存在音频流数据队列和视频流数据队列中;音频数据解码单元,用于对缓存在所述音频流数据队列中的音频流数据进行解码;视频数据解码单元,用于对缓存在所述视频流数据队列中的视频流数据进行解码;音视频同步时间确定单元,用于基于解码后的音频数据的播放回调时间戳以及流媒体再现设备的系统时间,确定音视频同步时间;视频帧处理单元,用于对于解码后的视频流数据中的每一帧,基于该视频帧的时间戳与所确定出的音视频同步时间和视频刷屏时间之和的比较结果,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理。
此外,在本发明的上述实施例的一个或多个示例中,当所述解码后的音频数据的播放回调时间戳与流媒体再现设备的系统时间不一致时,所述更新单元将所述音视频同步时间确定为等于所述播放回调时间戳与所述系统时间之和的一半。
此外,在本发明的上述实施例的一个或多个示例中,所述流媒体数据处理装置还可以包括:时间判断单元,用于在对视频帧进行解码之前,判断该视频帧是否是关键数据帧或者该视频帧的时间戳是否大于等于所确定出的音视频同步时间和该视频帧解码时间之和,其中,在该视频帧是关键数据帧或者该视频帧的时间戳大于等于所确定出的音视频同步时间和该视频帧解码时间之和时,所述视频数据解码单元对该视频帧进行解码,以及在判断该视频帧不是关键数据帧且该视频帧的时间戳小于所确定出的音视频同步时间和该视频帧解码时间之和时,所述视频帧处理单元丢弃该视频帧。
此外,在本发明的上述实施例的一个或多个示例中,在该视频帧的时间戳大于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元等待该视频帧的显示;在该视频帧的时间戳等于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元显示该视频帧;或者在该视频帧的时间戳小于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元丢弃该视频帧。
此外,在本发明的上述实施例的一个或多个示例中,所述流媒体数据处理装置还可以包括音频流数据播放判断单元,用于在进行音频流数据播放之前,判断判断音频播放模块数据缓存队列是否已经写满音频流数据,其中,在判断为音频播放模块数据缓存队列已经写满或者所有音频数据都完成解码时,所述音频播放模块进行音频流数据播放,否则,所述音频数据解码单元继续对音频流数据缓存队列中的音频流数据进行解码。
此外,在本发明的上述实施例的一个或多个示例中,所述流媒体数据处理装置还可以包括内存引用单元,用于在显示所述视频帧时,采用指针重指向来直接对存储所述视频帧的内存执行引用操作。
根据本发明的另一方面,提供了一种流媒体数据再现设备,包括如上所述的流媒体数据处理装置。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。


根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中:
图1示出了根据本发明的一个实施例的流媒体数据处理方法的流程图2示出了根据本发明的一个实施例的流媒体数据处理装置的方框示意图3示出了具有根据本发明的流媒体数据处理装置的流媒体再现设备;和
图4示出了具有根据本发明的流媒体数据处理装置的移动终端。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
下面将参照附图描述本发明的各个实施例。
图1示出了示出了根据本发明的一个实施例的流媒体数据处理方法的流程图。
根据本发明的一个实施例,在进行流媒体数据播放处理时,如图1所示,首先,在步骤SllO中,根据流媒体数据中包含的流索引(例如,流媒体数据包packet中的streamindex),将要播放的流媒体数据分离为音频流数据和视频流数据,这里,所述流索引用于指示流数据的类型,例如音频流或视频流。然后,将分离出的音频流数据缓存在音频流数据队列中(步骤S115),以及将分离出的视频流数据缓存在视频流数据队列中(步骤S140)。
然后,在步骤S120中,针对缓存在音频流数据队列中的音频流数据,判断是否满足音频解码条件。所述音频解码条件例如是在进行播放之前,判断音频播放模块数据缓存队列是否已经写满音频流数据。这里,所述音频播放模块例如可以是声卡。所述音频播放模块数据缓存队列是否已经写满已经解码的音频流数据。所述声卡数据缓存队列大小等于视频帧率。在这种情况下,在进行播放之前,首先判断声卡(即是Is的音频数据)是否已经写满。如果没有写满,则认为满足音频解码条件,否则,认为不满足音频解码条件。当满足音频解码条件(例如,当声卡数据缓存队列没有写满)时,即步骤S120的判断结果为是时,进行到步骤S125。在步骤S125中,对音频流数据进行解码,以输出PCM(Pulse-codemodulation,脉冲编码调制)数据流。然后,返回到步骤S120继续等待,直到不满足音频解码条件。如果存在播放回调,就说明已经进行了音频数据播放,而进行音频数据播放,就说明音频播放模块数据缓存队列中的数据被消耗,从而说明该缓存队列不满,由此可以重新进行解码。从这点上看,如果存在播放回调,就说明可以进行解码。这里,步骤120中的过程实质是根据帧率对解码后的音频流数据进行重新分割。利用这种方式,可以使得返回的播放回调(例如,声卡回调)更均匀。
在步骤120中的判断结果为否时,即不满足音频解码条件时,流程进行到步骤S130,在步骤S130中,通过流媒体再现设备中的音频播放模块播放音频播放模块数据缓存队列中的已解码音频流数据,并且返回播放回调时间戳。这里,所述音频播放模块可以例如是声卡设备。然后,在步骤S135中,基于所返回的播放回调时间戳与流媒体再现设备的系统时间,确定音视频同步时间SysTime。例如,在本发明的一个示例中,可以将所述播放回调时间戳与流媒体再现设备的系统时间进行比较。如果所述播放回调时间戳与流媒体再现设备的系统时间一致,则将所述流媒体再现设备的系统时间确定为音视频同步时间SysTime。如果所述播放回调时间戳与流媒体再现设备的系统时间不一致,将所述音视频同步时间SysTime确定为等于所述系统时间与所述播放回调时间戳之和的一半。显然,上述仅仅是本发明的一个示例,如何基于所述播放回调时间戳以及流媒体再现设备的系统时间来确定音视频同步时间,还可以采用以所述播放回调时间戳以及流媒体再现设备的系统时间为参数的其它函数表达式来进行确定。
在确定出音视频同步时间后,在步骤S145,针对缓存在视频流数据队列中的视频流数据的每一视频帧,判断该视频帧是否是关键数据帧或者该视频帧的时间戳VPktTime是否大于等于所确定出的音视频同步时间SysTime和该视频巾贞解码时间DeTime之和。这里,所述关键数据帧指视频I帧,该视频I帧包含有可被视频P帧或B帧参考的视频完整信息。如果丢失视频I帧,则依赖该关键帧的P帧或B帧解码之后都出现马赛克,从而使得所显示的图像质量非常差,以至于用户难以看到完整的图片画面。所述视频帧解码时间DeTime是指用于对该视频帧成功进行解码所消耗的时间。
如果该视频帧是关键数据帧或者该视频帧的时间戳大于等于所确定出的音视频同步时间和该视频帧解码时间之和,则在步骤S150,对该视频帧进行解码。如果判断该视频帧不是关键数据帧且该视频帧的时间戳小于所确定出的音视频同步时间和该视频帧解码时间之和,则在步骤S175中,丢弃该视频帧。
在对该视频帧进行解码后,在步骤S155,将该视频帧的时间戳VPktTime与所确定出的音视频同步时间SysTime和视频刷屏时间DrTime之和进行比较。这里,所述视频刷屏时间DrTime是指进行刷屏操作所需要的时间。
在该视频帧的时间戳大于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元等待该视频帧的显示;在该视频帧的时间戳等于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元显示该视频帧;或者在该视频帧的时间戳小于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元丢弃该视频帧。由此,完成对该视频帧的处理操作。在完成对该视频帧的处理操作后,返回到步骤S145,按照相同的方式,针对下一视频帧进行处理,如此循环直到播放结束。
在根据本发明的方法中,通过利用解码后的音频数据的播放回调时间戳来更新流媒体处理设备的系统时间,可以避免在播放过程中由于音频时间和系统时间不对应但视频时间和系统时间同步而造成的音视频不同步,从而可以大大减少用户观看视频时的卡顿现象。
此外,通过在进行音频数据和视频数据解码后,基于更新后的系统时间来确定视频帧的显示处理方式,从而可以避免在播放的视频出现非常严重的卡顿时,不会显示黑屏。
此外,通过在进行音频流数据解码之前,判断是否满足音频解码条件,例如,在进行播放之前,判断音频播放模块数据缓存队列是否已经写满音频流数据。如果没有写满,则认为满足音频解码条件,从而进行音频流数据解码。如果已经写满,则认为不满足音频解码条件,从而允许音频播放设备进行音频数据播放。这里,所述音频播放模块数据缓存队列的大小可以被设置为帧率。利用这种方式,可以根据帧率对解码后的音频流数据进行重新分害I]。从而使得返回的播放回调(例如,声卡回调)更均匀。
此外,在上述实施例中,由于在进行视频数据解码之前,先根据视频帧时间戳与同步时间和视频帧解码时间之和进行一次判断。如果判断视频帧延迟,则直接丢弃,从而避免针对该不同步的视频帧进行解码操作,由此可以减少数据处理量以及数据处理时间。
以上参照图1对根据本发明的流媒体数据处理方法进行了说明,但是本领域技术人员要理解的是,上述仅仅是示例。本领域技术人员还可以在不背离本发明的范围的情况下,对上述实施例进行各种修改。
例如,在本发明的另一实施例中,可以省略图1的步骤S145中的关于是否对视频帧的解码进行解码的判断过程。也就是说,在该实施例中,可以对缓存在视频流数据队列中的所有数据都进行解码,然后针对解码后的每一帧,基于所确定出的同步时间来执行显示处理方式确定过程。
此外,在本发明的另一实施例中,也可以省略上述步骤120中的音频解码条件判断过程。
此外,在本发明的另一实施例中,在显示所述视频帧时,还可以采用指针重指向来直接对存储所述视频帧的内存执行引用操作。通常,在解码器内部解码之后会分配一块内存存放解码后的数据(例如,YUV数据),然后在显示时,从该内存中拷贝出该数据来进行显示。在该另一实施例中,在显示时,采用指针重指向技术,直接对存储解码数据的内存执行引用操作,从而使得在解码之后,不必再进行YUV视频队列缓存。由此,可以减少一次视频内存拷贝操作。
如上参照图1描述了根据本发明的流媒体数据处理方法。本发明的上述流媒体时间处理方法,可以采用软件实现,也可以采用硬件实现,或采用软件和硬件组合的方式实现。
图2示出了根据本发明的流媒体数据处理装置200的方框示意图。
如图2所示,所述流媒体数据处理装置200包括分离单元210、缓存单元220、音频数据解码单元230、音视频同步时间确定单元240、视频数据解码单元250以及视频帧处理单元260。
所述分离单元210用于根据流媒体数据中的流索引,将流媒体数据分离为音频流数据和视频流数据。然后,缓存单元220将所述分离出的音频流数据和视频流数据分别缓存在音频流数据队列和视频流数据队列中。
音频数据解码单元230对缓存在所述音频流数据队列中的音频流数据进行解码。视频数据解码单元250对缓存在所述视频流数据队列中的视频流数据进行解码。
音频数据解码单元230所解码出的音频流数据被发送给流媒体数据再现设备的音频再现模块进行播放,并从该音频再现模块返回播放回调时间戳。在接收到播放回调时间戳后,音视频同步时间确定单元240基于解码后的音频数据的播放回调时间戳以及流媒体再现设备的系统时间,确定音视频同步时间。例如,在本发明的上述实施例的一个或多个示例中,当所述解码后的音频数据的播放回调时间戳与流媒体再现设备的系统时间不一致时,所述音视频同步时间确定单元240将所述音视频同步时间确定为等于所述播放回调时间戳与所述系统时间之和的一半。在所述播放回调时间戳与流媒体再现设备的系统时间一致时,所述音视频同步时间确定单元将所述流媒体再现设备的系统时间确定为音视频同步时间。
在确定出音视频同步时间后,对于解码后的视频流数据中的每一帧,视频帧处理单元260基于该视频帧的时间戳与所确定出的音视频同步时间和视频刷屏时间之和的比较结果,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理。例如,在本发明的一个或多个实施例中,所述预定处理方式包括:在该视频帧的时间戳大于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元等待该视频帧的显示;在该视频帧的时间戳等于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元显示该视频帧;或者在该视频帧的时间戳小于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频帧处理单元丢弃该视频帧。很显然,这里,所述预定处理方式也可以根据具体情形进行修改。
此外,在本发明的上述实施例的一个或多个示例中,所述流媒体数据处理装置还可以包括时间判断单元(未示出),用于在对视频帧进行解码之前,判断该视频帧是否是关键数据帧或者该视频帧的时间戳是否大于等于所确定出的音视频同步时间和该视频帧解码时间之和。如果该视频帧是关键数据帧或者该视频帧的时间戳大于等于所确定出的音视频同步时间和该视频帧解码时间之和,则所述视频数据解码单元对该视频帧进行解码。如果该视频帧不是关键数据帧且该视频帧的时间戳小于所确定出的音视频同步时间和该视频帧解码时间之和,则所述视频帧处理单元丢弃该视频帧。
此外,在本发明的上述实施例的一个或多个示例中,所述流媒体数据处理装置还可以包括音频流数据播放判断单元(未示出),用于在进行音频流数据播放之前,判断判断音频播放模块数据缓存队列是否已经写满音频流数据,其中,在判断为音频播放模块数据缓存队列已经写满时,所述音频播放模块进行音频流数据播放,否则,所述音频数据解码单元继续对音频流数据缓存队列中的音频流数据进行解码。
此外,在本发明的上述实施例的一个或多个示例中,所述流媒体数据处理装置还可以包括内存引用单元(未示出),用于在显示所述视频帧时,采用指针重指向来直接对存储所述视频帧的内存执行引用操作。
图3示出了具有根据本发明的流媒体数据处理装置200的流媒体数据再现设备10的方框示意图。所述流媒体数据再现设备10可以是移动终端,图4示出了具有根据本发明的流媒体数据处理装置200的移动终端。此外,在本发明的一个示例中,该流媒体数据处理装置也可以位于移动终端的浏览器中。
此外,典型地,本发明所述的移动终端可为各种手持终端设备,例如手机、个人数字助理(PDA)等,因此本发明的保护范围不应限定为某种特定类型的移动终端。
此外,根据本发明的方法还可以被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明的方法中限定的上述功能。
此外,上述方法步骤以及系统单元也可以利用控制器(例如,处理器)以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储设备实现。
在根据本发明的一个实施例中,通过利用解码后的音频数据的播放回调时间戳来更新流媒体处理设备的系统时间,可以避免在播放过程中由于音频时间和系统时间不对应但视频时间和系统时间同步而造成的音视频不同步,从而可以大大减少用户观看视频时的卡顿现象。
此外,在根据本发明的一个实施例中,通过在进行音频数据和视频数据解码后,基于更新后的系统时间来确定视频帧的显示处理方式,从而可以避免在播放的视频出现非常严重的卡顿时,不会显示黑屏。
此外,在根据本发明的一个实施例中,由于在进行视频数据解码之前,先根据视频帧时间戳与同步时间和视频帧解码时间之和进行一次判断。如果判断视频帧延迟,则直接丢弃,从而避免针对该不同步的视频帧进行解码操作,由此可以减少数据处理量以及数据处理时间。
此外,在本发明的另一实施例中,在对音频流数据解码后,还可以根据帧率对解码后的音频流数据进行重新分割。利用这种方式,可以使得返回的播放回调(例如,声卡回调)更均匀。
此外,在本发明的另一实施例中,在显示所述视频帧时,还可以采用指针重指向来直接对存储所述视频帧的内存执行引用操作。利用这种方式,在显示时,可以直接对存储解码数据的内存执行引用操作,从而使得在解码之后,不必再进行YUV视频队列缓存。由此,可以减少一次视频内存拷贝操作。
此外,应该明白的是,本文所述的计算机可读存储设备(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM (DRAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、双数据速率 SDRAM (DDR SDRAM)、增强 SDRAM (ESDRAM)、同步链路 DRAM (SLDRAM)以及直接 RambusRAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里所述功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。
在一个或多个示例性设计中,所述功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外先、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
权利要求
1.一种流媒体数据处理方法,包括: 根据流媒体数据中的流索引,将流媒体数据分离为音频流数据和视频流数据并分别缓存在音频流数据队列和视频流数据队列中; 分别对缓存在所述音频流数据队列和视频流数据队列中的音频流数据和视频流数据进行解码; 基于解码后的音频数据的播放回调时间戳以及流媒体再现设备的系统时间,确定音视频同步时间;以及 对于解码后的视频流数据中的每一帧,基于该视频帧的时间戳与所确定出的音视频同步时间和视频刷屏时间之和的比较结果,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理。
2.如权利要求1所述的流媒体数据处理方法,其中,在对所述视频流数据队列中的视频流数据进行解码的步骤包括: 在确定该视频帧是关键数据帧或者该视频帧的时间戳大于或等于所确定出的音视频同步时间和该视频帧解码时间之和时,对该视频帧进行解码;以及 在确定该视频帧不是关键数据帧且该视频帧的时间戳小于所确定的音视频同步时间和该视频帧解码时间之和时,丢弃该视频帧。
3.如权利要求1或2所述的流媒体数据处理方法,其中,当所述解码后的音频数据的播放回调时间戳与流媒体再现设备的系统时间不一致时,所述音视频同步时间被确定为等于所述播放回调时间戳与所述系统时间之和的一半。
4.如权利要求1或2所述的流媒体数据处理方法,其中,基于该视频帧的时间戳与所确定出的音视频同步时间和该视频刷屏时间之和的比较结果,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理包括: 在该视频帧的时间戳大于所确定出的音视频同步时间和该视频刷屏时间之和时,等待该视频巾贞的显示; 在该视频帧的时间戳等于所确定出的音视频同步时间和该视频刷屏时间之和时,显示该视频巾贞;或者 在该视频帧的时间戳小于所确定出的音视频同步时间和该视频刷屏时间之和时,丢弃该视频帧。
5.如权利要求1或2所述的流媒体数据处理方法,还包括: 在进行音频数据解码之前, 判断音频播放模块数据缓存队列是否已经写满音频流数据, 在音频播放模块数据缓存队列已经写满或者所有音频数据都完成解码时,进行音频流数据播放, 否则,继续对音频流数据缓存队列中的音频流数据进行解码。
6.如权利要求4所述的流媒体数据处理方法,其中,在显示所述视频帧时,采用指针重指向来直接对存储所述视频帧的内存执行引用操作。
7.一种流媒体数据处理装置,包括: 分离单元,用于根据流媒体数据中的流索引,将流媒体数据分离为音频流数据和视频流数据;缓存单元,用于将所述分离出的音频流数据和视频流数据分别缓存在音频流数据队列和视频流数据队列中; 音频数据解码单元,用于对缓存在所述音频流数据队列中的音频流数据进行解码;视频数据解码单元,用于对缓存在所述视频流数据队列中的视频流数据进行解码;音视频同步时间确定单元,用于基于解码后的音频数据的播放回调时间戳以及流媒体再现设备的系统时间,确定音视频同步时间; 视频帧处理单元,用于对于解码后的视频流数据中的每一帧,基于该视频帧的时间戳与所确定出的音视频同步时间和视频刷屏时间之和的比较结果,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理。
8.如权利要求7所述的流媒体数据处理装置,其中,当所述解码后的音频数据的播放回调时间戳与流媒体再现设备的系统时间不一致时,所述音视频同步时间确定单元将所述音视频同步时间确定为等于所述播放回调时间戳与所述系统时间之和的一半。
9.如权利要求7所述的流媒体数据处理装置,还包括: 时间判断单元,用于在对视频帧进行解码之前,判断该视频帧是否是关键数据帧或者该视频帧的时间戳是否大于等于所确定出的音视频同步时间和该视频帧解码时间之和,其中,在该视频帧是关键数据帧或者该视频帧的时间戳大于等于所确定出的音视频同步时间和该视频帧解码时间之和时,所述视频数据解码单元对该视频帧进行解码,以及所述视频帧处理单元还用于在判断该视频帧不是关键数据帧且该视频帧的时间戳小于所确定出的音视频同步时间和该视频帧解码时间之和时,丢弃该视频帧。
10.如权利要求7或9所述的流媒体数据处理装置,其中,按照与所述比较结果对应的预定处理方式对该视频帧进行显示处理包括: 在该视频帧的时间戳大于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频巾贞处理单元等待该视频巾贞的显示; 在该视频帧的时间戳等于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频巾贞处理单元显示该视频巾贞;或者 在该视频帧的时间戳小于所确定出的音视频同步时间和该视频刷屏时间之和时,所述视频巾贞处理单元丢弃该视频中贞。
11.如权利要求7所述的流媒体数据处理装置,还包括: 音频流数据播放判断单元,用于在进行音频流数据播放之前,判断判断音频播放模块数据缓存队列是否已经写满音频流数据, 其中,在音频播放模块数据缓存队列已经写满或者所有音频数据都完成解码时,所述音频播放模块进行音频流数据播放, 否则,所述音频数据解码单元继续对音频流数据缓存队列中的音频流数据进行解码。
12.如权利要求10所述的流媒体数据处理装置,还包括: 内存引用单元,用于在显示所述视频帧时,采用指针重指向来直接对存储所述视频帧的内存执行引用操作。
13.一种流媒体数据再现设备,包括如权利要求7到12中任何一个所述的流媒体数据处理装置。
全文摘要
本发明提供了一种流媒体数据处理方法,在该方法中,根据流媒体数据中的流索引,将流媒体数据分离为音频流数据和视频流数据并进行解码;基于解码后的音频数据的播放时间以及流媒体再现设备的系统时间,确定视频帧的处理方式并按照所确定的处理方式进行显示处理。利用该方法,可以大大减少用户观看视频时的卡顿现象。
文档编号H04N21/43GK103139636SQ20111040017
公开日2013年6月5日 申请日期2011年12月5日 优先权日2011年12月5日
发明者梁捷, 吴娇, 王建忠 申请人:优视科技有限公司, 广州市动景计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1