流媒体文件的解码处理方法与装置、播放设备的制作方法

文档序号:7931104阅读:270来源:国知局
专利名称:流媒体文件的解码处理方法与装置、播放设备的制作方法
技术领域
本发明涉及多媒体技术,尤其是流媒体文件的解码处理方法与装置、播放设备。
背景技术
现有技术中,通常通过如下方式制作流媒体文件通过视频编码器对视频数据与字幕进行压缩编码,形成视频的连续码流,也称为视频基本码流(Elementary Stream,以下简称ES),同时,通过音频编码器对音频数据进行压缩编码,形成音频的连续码流,也称为音频ES ;通过打包器,分别根据需要将音、视频ES分成长度不等的数据段,并加上包头后按照一定的格式进行打包封装,形成音、视频打包基本码流(Packet Elementary Stream,以下简称PES),每个PES包头携带了流标识(Stream Identifiers,以下简称SID)、显示时间戮(presentation time stamp,以下简称PTS)与解码时间戮(Decode Time Stamp,以下简称DTS);通过复用器,将音频PES与视频PES复用在一起,按照预设规则进行排序并建立索引,再加上系统时钟后打包形成流媒体文件的封装码流,具体的封装格式包括RealNetworks公司开发的流媒体视频文件格式(Real Media,以下简称RM)、音频视频交错格式(Audio Video Interleaved,以下简称AVI)、Apple公司开发的一种音频和视频文件格式(QuickTime)影片格式(MOV)、动态图像专家组(Moving Pictures Experts Group,以下简称MPG或MPEG)等。如图1所示,为现有技术流媒体文件的一个制作流程示意图。图2为现有技术流媒体文件的一个播放流程示意图。如图2所示,通过如下方式对通过图1所示流程制作的多媒体文件进行播放通过文件读取单元获取流媒体文件的封装码流;通过解复用单元根据封装码流包头中的索引信息对封装码流进行解复用,分离出音频PES与视频PES,分别根据PES包头对音频PES与视频PES进行拆包、解封装,产生独立的音频ES与视频ES,并按照帧顺序分别送往音频解码器与视频解码器;音频解码器与视频解码器分别对音频ES与视频ES进行解码,还原成原始的音频数据与视频数据后输出,以便播放单元进行播放。 在实现本发明的过程中,发明人发现,上述现有技术流媒体文件的制作与播放方法至少存在以下问题对于只包含音频或视频的连续码流,通常不进行打包封装操作,而是以ES的形式形成流媒体文件后直接提供给接收端,例如,动态影像专家压缩标准音频层面3 (MovingPicture Experts Group Audio Layer-3,以下简称MP3)、音频数据传输流(Audio DataTransport Stream,以下简称ADTS)、高级音频编码(Advanced Audio Coding,以下简称AAC)等格式的流媒体文件。由于未经过打包封装,在接收端,便无法通过解复用单元提供的码流信息,包括封装码流包头与PES包头中的相关信息,对ES进行索引播放,因此,在封装码流的播放设备中无法实现对以ES形式形成的流媒体文件的播放。

发明内容
本发明实施例所要解决的一个技术问题是提供一种流媒体文件的解码处理方法与装置、播放设备,以在封装码流的播放设备中,实现对以ES形式形成的流媒体文件播放。为解决上述技术问题,根据本发明实施例的一个方面,提供一种流媒体文件的解码处理方法,包括读取流媒体文件码流,并识别读取到的流媒体文件码流为基本码流或封装码流,所述流媒体文件码流包括音频文件码流和/或视频文件码流;响应于流媒体文件码流为基本码流,基于当前帧的相关信息而非解复用单元提供的码流信息,对当前帧数据进行解码,得到流媒体数据,所述流媒体数据包括音频数据或者视频数据。根据本发明实施例的另一个方面,提供一种流媒体文件的解码处理装置,包括文件读取单元,用于读取流媒体文件码流,并识别读取到流媒体文件码流为基本码流或封装码流,所述流媒体文件码流包括音频文件码流和/或视频文件码流;帧检测单元,用于响应于流媒体文件码流为基本码流,从基本码流中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据;帧解码单元,用于对帧检测单元确定的当前帧数据进行解码,得到流媒体数据,所述流媒体数据包括音频数据或者视频数据。根据本发明实施例的又一个方面,提供一种播放设备,包括外部存储单元与文件存储单元,还包括本发明上述实施例的流媒体文件的解码处理装置,以及播放单元; 所述解码处理装置中的控制单元,还用于响应于帧解码单元发送的解码结果消息,向播放单元发送播放命令;所述播放单元,用于根据所述播放命令,对外部存储单元的缓冲区中的流媒体数据进行输出播放,或者对外部存储单元的缓冲区中的音频数据与视频数据进行输出播放。根据本发明实施例的再一个方面,提供另一种播放设备,包括外部存储单元与文件存储单元,还包括本发明上述实施例的流媒体文件的解码处理装置,以及播放单元;所述解码处理装置中的控制单元,还用于响应于帧解码单元发送的解码结果消息,将交互存储单元中的流媒体数据,或者交互存储单元中的音频数据与视频数据,搬移到外部存储单元的缓冲区中,并向播放单元发送播放命令;所述播放单元,用于根据所述播放命令,对所述缓冲区中的流媒体数据,或者所述缓冲区中的音频数据与视频数据,进行输出播放。基于本发明上述实施例提供的流媒体文件的解码处理方法与装置、播放设备,可以识别当前读取到的流媒体文件码流为基本码流或封装码流,若流媒体文件码流为基本码流,基于当前帧的相关信息代替解复用单元提供的码流信息,对当前帧数据进行解码,以得到用于输出播放的流媒体数据,从而使在封装码流的播放设备中可以实现对基本码流的解码、播放,与现有技术相比,在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术流媒体文件的一个制作流程示意图。图2为现有技术流媒体文件的一个播放流程示意图。图3为本发明流媒体文件的解码处理方法一个实施例的流程图。图4为本发明流媒体文件的解码处理方法另一个实施例的流程图。图5为MPEG音频ES的一个帧结构示意图。图6为本发明流媒体文件的解码处理方法又一个实施例的流程图。图7为本发明流媒体文件的解码处理方法再一个实施例的流程图。图8为本发明流媒体文件的解码处理装置一个实施例的结构示意图。图9为本发明流媒体文件的解码处理装置另一个实施例的结构示意图。图10为本发明流媒体文件的解码处理装置又一个实施例的结构示意图。图11为本发明流媒体文件的解码处理装置再一个实施例的结构示意图。图12为本发明流媒体文件的解码处理装置还一个实施例的结构示意图。

图13为本发明播放设备一个实施例的结构示意图。图14为本发明播放设备另一个实施例的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图3为本发明流媒体文件的解码处理方法一个实施例的流程图。如图3所示,该实施例的解码处理方法包括101,读取流媒体文件码流,并识别读取到流媒体文件码流为ES或封装码流。其中的流媒体文件码流具体可以是音频文件码流,也可以是视频文件码流,还可以同时包括音频文件码流与视频文件码流。示例性地,可以通过流媒体文件码流的扩展名来识别流媒体文件码流为ES或封装码流。102,响应于流媒体文件码流为ES,基于当前帧的相关信息而非解复用单元提供的码流信息,对当前帧数据进行解码,得到流媒体数据。对应于流媒体文件码流为音频ES或者视频ES,得到的流媒体数据具体可以是音频数据或者视频数据,也称为脉冲编码调制(Pulse Code Modulation,以下简称PCM)数据。本发明上述实施例提供的流媒体文件的解码处理方法中,可以识别当前读取到的流媒体文件码流为ES或封装码流,若流媒体文件码流为ES,基于当前帧的相关信息代替解复用单元提供的码流信息,对当前帧数据进行解码,以得到用于输出播放的流媒体数据,从而使在封装码流的播放设备中可以实现对ES的解码、播放,ES在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件。根据本发明的一个具体实施例,在图3所示的实施例中,响应于读取到的流流媒体文件码流为封装码流,可以对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,并提取音频帧与视频帧的特征信息;然后分别根据音频帧与视频帧的特征信息,对音频帧与视频帧进行解码,得到音频数据与视频数据。根据本发明的另一个具体实施例,在图3所示实施例的102中,可以从ES中检测当前帧的相关信息,例如,当前帧的同步头起始位置、帧长与特征信息,并基于当前帧的相关信息确定当前帧数据,对当前帧数据进行解码,得到流媒体数据。如果现有技术要在同一个播放设备中实现对封装码流与以ES形式形成的流媒体文件的播放,便需要在同一个播放设备中设置两套相互独立的播放系统,通过两种不同的、相互独立的播放流程来分别播放封装码流与以ES形式形成的流媒体文件,这就增加了播放系统的设计难度,导致播放设备的结构复杂。本发明实施例中,若读取到的流媒体文件码流为封装码流,可以对封装码流进行解复用、解码;若读取到的流媒体文件码流为ES,从ES中检测当前帧的相关信息,包括当前帧的同步头起始位置、帧长与特征信息,并基于当前帧的相关信息确定当前帧数据,再对当前帧数据进行解码,从而实现ES的解码,使得以ES形式形成的流媒体文件的播放流程与封装码流的播放流程一致,这样,在同一个播放设备中,采用同一个播放系统便可以播放封装码流与以ES形式形成的流媒体文件,与在现有技术的基础上实现在同一个播放设备中播放封装码流与以ES形式形成的流媒体文件相比,大大简化了播放系统的设计难度与播放设备的结构复杂性。根据本发明解码处理方法的一个示例而非限制,具体可以利用帧检测单元,通过如下方式,从ES中检测当前帧的相关信息从ES的当前位置进行同 步头检测,获取当前帧在比特流中的同步头起始位置;由同步头起始位置确定当前帧的帧头并进行解析,获取当前帧的特征信息;基于当前帧的特征信息对当前帧进行合法性检测;响应于当前帧通过合法性检测,根据当前帧的特征信息确定当前帧的帧长。根据本发明解码处理方法的一个示例而非限制,从ES中检测当前帧的相关信息之后,还可以利用帧检测单元,执行如下操作基于当前帧与下一帧的特征信息对当前帧进行完整性检测;响应于当前帧通过完整性检测,基于当前帧的相关信息确定当前帧数据。根据本发明的又一个具体实施例,从ES中检测当前帧的相关信息之后,还可以将帧检测单元确定的当前帧数据,与检测得到的当前帧的相关信息或相关信息中的同步头起始位置信息发送给帧解码单元。根据本发明解码处理方法的一个示例而非限制,具体可以利用帧解码单元,通过如下方式,对当前帧数据进行解码接收当前帧的特征信息;根据当前巾贞的特征信息中的循环冗余码校验(Cyclic Redundancy Check,以下简称CRC)标识,对当前帧数据进行错误校验;分别根据音频帧与视频帧的特征信息对当前帧数据进行解码。另外,作为本发明解码处理方法的另一个示例而非限制,也可以利用帧解码单元,通过如下方式,对当前帧数据进行解码接收当前帧的同步头起始位置信息;根据当前帧的同步头起始位置检测当前帧的特征信息;根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验;分别根据音频帧与视频帧的特征信息对当前帧数据进行解码。图4为本发明流媒体文件的解码处理方法另一个实施例的流程图,该实施例适用于ES为音频ES或视频ES的情况,尤其适用于ES为音频ES的情况。如图4所示,该实施例的解码处理方法包括201,读取流媒体文件码流,并识别读取到流媒体文件码流为ES或封装码流。响应于流媒体文件码流为ES,执行202。响应于读取到的流媒体文件码流为封装码流,执行211。示例性地,该操作可以通过文件读取单元执行。其中的流媒体文件码流可以是音频文件码流,也可以是视频文件码流,还可以同时包括音频文件码流与视频文件码流。202,从ES的当前位置进行同步头检测,获取同步头在比特流中的起始位置,也即帧头在比特流中的位置。从ES的当前位置获取到的第一个帧头即为当前帧的帧头,其包括同步头与特征信息,同步头检测即是,从ES中查找构成同步头的同步字。例如,根据ISO1172-3标准规定,MPEGl 帧的同步头为12比特的同步字OxFFE,同步头检测为从ES的当前位置开始搜索12比特的同步字“1111 1111 1111”。如图5所示,为MPEG音频ES的一个帧结构示意图。203,由检测到的同步头确定当前帧的帧头并进行解析,获取当前帧的特征信息,例如,采样率、声道、比特率、是否采用填充位、是否受保护等。204,基于当前帧的特征信息对当前帧进行合法性检测。具体地,在相应的音频或视频压缩标准中,对各特征信息都规定了特定的取值范围,例如,规定MP3格式帧采样率的取值范围是8khz 48khz,可以检测当前帧的特征信息中采样率的值是否位于Skhz 48khz范围内,若当前帧的特征信息中采样率的值位于8khz 48khz范围内,则采样率合法。在当前巾贞的各项特征信息均合法时,当前巾贞通过合法性检测。205,响应于当前帧通过合法性检测,根据当前帧的特征信息确定当前帧的帧长。当前帧的帧长即为当前帧与相邻下一帧帧头之间的间隔字节数。例如,可以通过特征信息中的比特率与采样率参数来计算MPEGl帧的帧长,计算公式为N= [1+]144 *比特率/采样率。根据特征信息中的采用填充位标识信息,如果未采用填充位,则当前帧的帧长为N= 144 *比特率/采样率;否则,如果采用了填充位,则当前帧的帧长为N= 1+144*比特率/采样率。根据本发明的另一个实施例,205的操作也可以先于204的操作执行,该实施例中,根据当前帧的特征信息确定当前帧的帧长,然后再对当前帧进行合法性检测,响应于当前帧通过合法性检测,执行206,即基于当前帧与下一帧的特征信息对当前帧进行完整性检测。示例性地,若当前帧未通过合法性检测,不执行本实施例的后续流程,可以丢弃当前帧,将流媒体文件码流下移一个字节,返回执行201的操作,以处理流媒体文件码流的下一帧。
206,基于当前帧与下一帧的特征信息对当前帧进行完整性检测。示例性地,可以通过如下方式对当前帧进行完整性检测通过当前帧的帧头与帧长即可获知下一帧的帧头位置,确认下一帧的帧头位置是否存在相应的同步头,例如,对于MPEGl帧,确认下一帧的帧头位置是否存在12比特的同步字OxFFE ;若下一帧的帧头位置存在相应的同步头,基于下一帧的特征信息对下一帧进行合法性检测;并在下一帧通过合法性检测后,比较下一帧的特征信息与当前帧的特征信息是否一致,例如,下一帧与当前帧的采样率是否一致。若下一帧的特征信息与当前帧的特征信息一致,则当前帧通过完整性检测。207,响应于当前帧通过完整性检测,基于当前帧的相关信息确定当前帧数据。示例性地,若当前帧未通过完整性检测,不执行本实施例的后续流程,可以丢弃当前帧,将流媒体文件码流下移一个字节,返回执行201的操作,以处理流媒体文件码流的下
一中贞。208,将当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息发送给帧解码单元。示例性地,202 208的操作可以通过帧检测单元执行。209,根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验。若208中发送的是当前帧的相关信息,则209中,直接根据相关信息中特征信息中的CRC标识,对当前帧数据进行错误校验。若208中发送的是相关信息中的同步头起始位置信息,则209中,先根据当前帧的同步头起始位置检测当前帧的特征信息,然后再根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验。210,对当前帧数据进行解码,得到流媒体数据,该流媒体数据具体可以是音频数据或者视频数据。示例性地,209 210的操作可以通过帧解码单元执行。具体地,该帧解码单元可以包括音频解码单元与视频解码单元,若当前帧为音频帧,则由音频解码单元执行209 210的操作,相应得到音频数据;若当前帧为视频帧,则由视频解码单元执行209 210的操作,相应得到视频数据。之后,不再执行本实施例的后续流程。211,对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,并提取音频帧与视频帧的特征信息。示例性地,该211的操作可以通过解复用单元执行。212,分别根据音频帧与视频帧的特征信息对音频帧与视频帧进行解码,得到音频数据与视频数据。 示例性地,该212的操作可以通过帧解码单元执行。另外,212中,也可以先根据音频帧与视频帧的特征信息中的CRC标识,对音频帧与视频帧进行错误校验,然后再对经过错误校验的音频帧与视频帧进行解码。具体地,该帧解码单元可以包括音频解码单元与视频解码单元,相应对音频帧与视频帧进行错误校验、解码,相应得到音频数据与视频数据。图6为本发明流媒体文件的解码处理方法又一个实施例的流程图,该实施例适用于ES为音频ES或视频ES的情况,尤其适用于ES为音频ES的情况。如图6所示,该实施例的解码处理方法包括
301,响应于控制单元的读取控制命令,对外部存储单元的输入空间进行监控。302,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内。具体地,该302的操作为条件触发操作,只要满足外部存储单元的输入空间有空余这一触发条件,便从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内,而不受其它操作的执行顺序限制。303,识别读取到流媒体文件码流为ES或封装码流,并向控制单元返回识别结果消息。示例性地,301 303的操作可以通过文件读取单元执行。304,识别结果消息,响应于流媒体文件码流为ES,执行305。否则,响应于流媒体文件码流为封装码流,执行314。305,向帧检测单元发送检测命令。示例性地,304 305的操作可以通过控制单元执行。306,根据检测命令,从ES中检测当前帧的相关信息。示例性地,可以通过图4所示实施例中202 205的操作,从ES中检测当前帧的
相关信息。307,基于当前帧的相关信息确定当前帧数据。示例性地,也可以基于当前帧与下一帧的特征信息对当前帧进行完整性检测,响应于当前帧通过完整性检测,执行307的操作。308,将当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息发送给控制单元。示例性地,306 308的操作可以通过帧检测单元执行。309,向帧解码单元发送解码命令与当前帧数据,解码命令中包括当前帧的相关信息或相关信息中的同步字起始位置信息。示例性地,该309的操作可以通过控制单元执行。310,根据解码命令,对当前帧数据进行解码,得到流媒体数据,该流媒体数据具体可以是音频数据或者视频数据。示例性地,也可以响应于解码命令,根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验,之后再对经过错误校验的当前帧数据进行解码。若309中解码命令包括的是当前帧的相关信息,则310中直接根据相关信息中特征信息中的CRC标识,对当前帧数据进行错误校验。若309中解码命令包括的是相关信息中的同步头起始位置信息,则310中先根据当前帧的同步头起始位置检测当前帧的特征信息,然后再根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验。311,将解码得到的流媒体数据存储在外部存储单元的缓冲区中,并向控制单元返回正确解码的解码结果消息。示例性地,310 311的操作可以通过帧解码单元执行。具体地,该帧解码单元可以包括音频解码单元与视频解码单元,若当前帧为音频帧,则由音频解码单元执行310 311的操作,对应解码得到的是音频数据;若当前帧为视频帧,则由视频解码单元执行310 311的操作,对应解码得到的是视频数据。
312,响应于解码结果消息,向播放单元发送播放命令。示例性地,该312的操作可以通过控制单元执行。其中的播放命令中可以包括播放控制信息,例如,声道信息,该播放控制信息具体可以从当前帧的相关信息中获取得到,针对同一个流媒体文件码流获取一次即可。313,根据播放命令,对外部存储单元的缓冲区中的流媒体数据进行输出播放。示例性地,该313的操作可以通过播放单元执行。具体地,该播放单元可以包括音频播放单元与视频播放单元,相应对音频数据、视频数据进行播放。之后,不再执行本实施例的后续流程。314,向解复用单元发送解复用命令。示例性地,该314的操作可以通过控制单元执行。315,根据解复用命令对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,提取音频帧与视频帧的特征信息,并将音频帧与视频帧及其特征信息发送给控制单元。示例性地,该315的操作可以通过解复用单元执行。316,向帧解码单元发送解码命令、音频帧与视频帧,解码命令中包括音频帧与视频帧的特征信息。示例性地,该316的操作可以通过控制单元执行。

317,根据解码命令对音频帧与视频帧进行解码,得到音频数据与视频数据并存储在外部存储单元的缓冲区中,向控制单元返回正确解码的解码结果消息。示例性地,该317的操作可以通过帧解码单元执行。另外,317中,也可以先根据音频帧与视频帧的特征信息中的CRC标识,对音频帧与视频帧进行错误校验,然后再对经过错误校验的音频帧与视频帧进行解码。具体地,该帧解码单元可以包括音频解码单元与视频解码单元,相应对音频帧与视频帧进行错误校验、解码,相应得到音频数据与视频数据。318,响应于解码结果消息,向播放单元发送播放命令。示例性地,该318的操作具体可以通过控制单元执行。其中的播放命令中可以包括播放控制信息,例如,声道信息,该播放控制信息具体可以从音频帧与视频帧的特征信息中获取得到,针对同一个流媒体文件码流获取一次即可。319,根据播放命令,对外部存储单元的缓冲区中的音频数据与视频数据进行输出播放。示例性地,该319的操作可以通过播放单元执行。具体地,该播放单元可以包括音频播放单元与视频播放单元,相应对音频数据、视频数据进行播放。图7为本发明流媒体文件的解码处理方法再一个实施例的流程图,该实施例适用于ES为音频ES或视频ES的情况,尤其适用于ES为音频ES的情况。如图7所示,该实施例的解码处理方法包括401,响应于控制单元的读取控制命令,对外部存储单元的输入空间进行监控。402,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内。403,识别读取到流媒体文件码流为ES或封装码流,并向控制单元返回识别结果消息。
示例性地,401 403的操作可以通过文件读取单元执行。404,根据识别结果消息,响应于流媒体文件码流为ES,执行405。否则,响应于流媒体文件码流为封装码流,执行414。405,向帧检测单元发送检测命令。示例性地,404 405的操作可以通过控制单元执行。406,根据检测命令,从ES中检测当前帧的相关信息。示例性地,可以通过图4所示实施例中202 205的操作,从ES中检测当前帧的
相关信息。407,基于当前帧的相关信息确定当前帧数据。示例性地,也可以基于当前帧与下一帧的特征信息对当前帧进行完整性检测,响应于当前帧通过完整性检测,执行407的操作。408,将当前帧数据存储在交互存储单元中,并向控制单元发送检测完成消息,该检测完成消息中包括当前帧的相关信息或相关信息中的同步头起始位置信息。示例性地,406 408的操作可以通过帧检测单元执行。409,响应于检测完成消息,向帧解码单元发送解码命令,该解码命令中包括当前帧的相关信息或相关信息中的同步头起始位置信息。

示例性地,该409的操作可以通过控制单元执行。410,根据解码命令,对交互存储单元中的当前帧数据进行解码,得到流媒体数据,该流媒体数据具体可以是音频数据或者视频数据。示例性地,也可以响应于解码命令,根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验,之后再对经过错误校验的当前帧数据进行解码。若409中发送的是当前帧的相关信息,则410中,直接根据相关信息中特征信息中的CRC标识,对当前帧数据进行错误校验。若409中发送的是相关信息中的同步头起始位置信息,则410中,先根据当前帧的同步头起始位置检测当前帧的特征信息,然后再根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验。411,将解码得到的流媒体数据存储在交互存储单元中,并向控制单元返回正确解码的解码结果消息。示例性地,410 411的操作可以通过帧解码单元执行。具体地,该帧解码单元可以包括音频解码单元与视频解码单元,若当前帧为音频帧,则由音频解码单元执行410 411的操作,对应解码得到的是音频数据;若当前帧为视频帧,则由视频解码单元执行410 411的操作,对应解码得到的是视频数据。412,响应于解码结果消息,将交互存储单元中的流媒体数据搬移到外部存储单元的缓冲区中,并向播放单元发送播放命令。示例性地,该412的操作可以通过控制单元执行。具体地,控制单元可以直接将交互存储单元中的流媒体数据搬移到外部存储单元的缓冲区中,也可以通过直接存储器存取(Direct Memory Access,以下简称DMA)单元,将交互存储单元中的流媒体数据搬移到外部存储单元的缓冲区中。其中的播放命令中可以包括播放控制信息,例如,声道信息,该播放控制信息具体可以从当前帧的相关信息中获取得到,针对同一个流媒体文件码流获取一次即可。
413,根据播放命令,对外部存储单元的缓冲区中的流媒体数据进行输出播放。示例性地,该413的操作可以通过播放单元执行。具体地,该播放单元可以包括音频播放单元与视频播放单元,相应对音频数据、视频数据进行播放。之后,不再执行本实施例的后续流程。414,向解复用单元发送解复用命令。示例性地,该414的操作可以通过控制单元执行。415,根据解复用命令对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧并存储在交互存储单元中,提取音频帧与视频帧的特征信息。416,向控制单元发送解复用完成消息,该解复用完成消息中包括音频帧与视频帧的特征信息。示例性地,415 416的操作可以通过解复用单元执行。417,向帧解码单元发送解码命令,该解码命令中包括音频帧与视频帧的特征信
肩、O示例性地,该417的操作可以通过控制单元执行。418,根据解码命令,对交互存储单元中的音频帧与视频帧进行解码,得到音频数据与视频数据并存储在交互存储单元中,向控制单元返回正确解码的解码结果消息。示例性地,该418的操作可以通过帧解码单元执行。另外,418中,也可以先根据音频帧与视频帧的特征信息中的CRC标识,对音频帧与视频帧进行错误校验,然后再对经过错误校验的音频帧与视频帧进行解码。具体地,该帧解码单元可以包括音频解码单元与视频解码单元,相应对音频帧与视频帧进行错误校验、解码,相应得到音频数据与视频数据。419,响应于解码结果消息,将交互存储单元中的音频数据与视频数据搬移到外部存储单元的缓冲区中,并向播放单元发送播放命令。示例性地,该419的操作具体可以通过控制单元执行。具体地,控制单元可以直接将交互存储单元中的音频数据与视频数据搬移到外部存储单元的缓冲区中,也可以通过DMA单元,将交互存储单元中的音频数据与视频数据搬移到外部存储单元的缓冲区中。其中的播放命令中可以包括播放控制信息,例如,声道信息,该播放控制信息具体可以从当前帧的相关信息中获取得到,针对同一个流媒体文件码流获取一次即可。420,根据播放命令,对外部存储单元的缓冲区中的音频数据与视频数据进行输出播放。示例性地,该420的操作可以通过播放单元执行。具体地,该播放单元可以包括音频播放单元与视频播放单元,相应对音频数据、视频数据进行播放。现有技术中,专用的多媒体播放器,例如,MP3音频播放器、MP4视频播放器等,均采用单一处理器对相应的音频、视频等多媒体文件进行解码、播放。但是,随着通信技术的迅速发展,现有的专用多媒体播放器之外的电子产品,例如通信产品,大多支持对音频、视频等多媒体文件的解码与播放。在这类电子产品中,多媒体文件的解码、播放功能附加在其它功能之上实现,例如,在移动终端中,音频文件的解码、播放功能附加在通信、视频、图像处理功能之上实现。在这类电子产品中,通常包含多个处理器单元,例如,高级精简指令集机器(Advanced RISC Machines,以下简称ARM)处理器单元与数字信号处理器(DigitalSignal Processor,以下简称DSP)单元。不同处理器单元具有不同的处理特点,根据分工不同负责完成不同任务。例如,移动终端中的DSP单元主要负责完成通信系统的核心算法,而ARM处理器单元主要负责完成控制及文件操作。在具有多个处理器单元的多处理器系统中,通常需要实现的功能多且复杂,而系统资源有限,这就需要对系统资源进行优化配置及复用,以达到对有限资源的最优配置,最大程度的降低产品成本。例如,由于ARM处理器单元中的ARM7系列处理器单元具有较灵活的存储访问功能及较丰富的流程控制指令,但缺乏强大的数据运算能力,使用ARM7系列处理器单元进行控制操作;由于DSP单元具有较强大的数据处理能力,但其流程控制及存储访问功能受限,如无法访问外部存储空间,因此DSP单元会有部分专属内部存储器,使用DSP单元实现需要大量运算的运算功能。多处理器系统中,仍然使用单一处理器单元,例如,仅使用ARM处理器单元或DSP单元,来对多媒体文件进行解码、播放,由于各处理器单元在不同功能方面的性能优劣不同,仅使用单一处理器单元对多媒体文件进行解码、播放,影响了多媒体文件的播放效果;并且,由于未充分利用多个处理器单元,无法充分发挥多个处理器单元的性能优势,造成多个处理器单元的性能损失与系统资源浪费。上述图7所示实施例的流媒体文件的解码处理方法具体可以通过一个解码处理装置来实现,该解码处理装置具有多处理器系统,包括第一处理器单元与第二处理器单元。其中,控制单元、帧检测单元、解复用单元与播放单元设置在第一处理器单元中,帧解码单元设置在第二处理器单元中。示例性地,可以利用具有较灵活的存储访问功能及较丰富的流程控制指令的处理器,如ARM处理器单元,作为第一处理器单元;利用具有较强大的数据处理能力的处理器,如DSP单元,作为第二处理器单元,来实现解码流程中的算术运算及解码流程。由于多处理器系统中的每个处理器单元在不同功能方面的性能优劣不同,本发明实施例利用具有多处理器系统的解码处理装置对流媒体文件进行解码处理时,充分发挥每个处理器单元的性能优势,利用多个处理器单元配合实现对流媒体文件码流的解码、播放流程,例如,可以利用具有较灵活的存储访问功能及较丰富的流程控制指令的处理器单元,如ARM7系列处理器单元,作为第一处理器单元,从外部存储单元的输入空间读取流媒体文件码流并进行解复用或者帧 检测,并将得到的音频帧与视频帧、或者当前帧数据存储在第二处理器单元可访问的交互存储单元中,利用具有较强大的数据处理能力的处理器,如DSP单元,作为第二处理器单元,对交互存储单元中的音频帧与视频帧、或者当前帧数据进行解码,并将解码得到的音频数据或者视频数据存储在可访问的交互存储单元中,然后由第一处理器单元进行播放,充分发挥了第一处理器单元的灵活存储访问功能及丰富流程控制指令功能与第二处理器单元的强大数据处理能力,提高了流媒体文件的播放效果;充分发挥了多个处理器单元的性能优势,充分利用了多处理器系统的系统资源,实现了对系统资源的优化配置及复用,达到对有限资源的最优配置,最大程度的降低产品成本,且提高了多处理器系统的工作性能。另外,解码处理装置还可以包括作为解码加速单元的第三处理器单元,帧解码单元在对交互存储单元中的音频数据与视频数据进行解码的过程中,还可以进一步调用第三处理器单元进行加速,以提高解码速度,实现更高的解码性能。图8为本发明流媒体文件的解码处理装置一个实施例的结构示意图。该实施例的解码处理装置可用于执行本发明上述各解码处理方法流程的相应操作。如图8所示,其包括文件读取单元501、帧检测单元502与帧解码单元503。其中,文件读取单元501,用于读取流媒体文件码流,并识别读取到流媒体文件码流为ES或封装码流,其中的流媒体文件码流具体可以是音频文件码流,也可以是视频文件码流,还可以同时包括音频文件码流与视频文件码流。帧检测单元502,用于根据文件读取单元501的识别结果,响应于流媒体文件码流为ES,从ES中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据。帧解码单元503,用于对帧检测单元502确定的当前帧数据进行解码,得到流媒体数据,该流媒体数据具体可以包括音频数据或者视频数据。具体地,该帧解码单元503可以包括音频解码单元与视频解码单元,若当前帧为音频帧,则由音频解码单元对当前帧数据进行解码,得到音频数据;若当前帧为视频帧,则由视频解码单元对当前帧数据进行解码,得到视频数据。本发明上述实施例提供的流媒体文件的解码处理装置中,可以通过文件读取单元识别读取到的流媒体文件码流为ES或封装码流,若流媒体文件码流为ES,可以由检测单元从ES中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据,而无需使用解复用单元提供的码流信息,对当前 帧数据进行解码,从而实现基本码流的解码,以得到用于输出播放的流媒体数据,从而使在封装码流的播放设备中可以实现对ES的解码、播放,在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件。图9为本发明流媒体文件的解码处理装置另一个实施例的结构示意图。该实施例的解码处理装置可用于执行本发明图4所示解码处理方法流程的相应操作,与图8所示的实施例相比,该实施例的解码处理装置还包括解复用单元504,用于根据文件读取单元501的识别结果,响应于流媒体文件码流为封装码流,对封装码流进行解复用,分离出音频打包PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,并提取音频帧与视频的特征信息。相应的,帧解码单元503,还用于分别根据音频帧与视频帧的特征信息,对解复用单元504得到的音频帧与视频帧进行解码,具体分别通过音频解码单元与视频解码单元分别对音频帧与视频帧进行解码,相应得到音频数据与视频数据。另外,作为解码处理装置的又一个实施例,当前帧的相关信息可以包括当前帧的同步头起始位置、帧长与特征信息。与本发明解码处理方法实施例相应的,图9所示实施例中,帧检测单元502,还可用于基于当前帧与下一帧的特征信息对当前帧进行完整性检测,以及响应于当前帧通过完整性检测,基于当前帧的相关信息确定当前帧数据。本发明实施例中,若读取到的流媒体文件码流为封装码流,可以由解复用单元、帧解码单元分别对封装码流进行解复用、解码;若读取到的流媒体文件码流为ES,由帧检测单元从ES中检测当前帧的相关信息,包括当前帧的同步头起始位置、帧长与特征信息,并基于当前帧的相关信息确定当前帧数据,再通过帧解码单元对当前帧数据进行解码,从而实现ES的解码,使得以ES形式形成的流媒体文件的播放流程与封装码流的播放流程一致,这样,在同一个播放设备中,采用同一个播放系统便可以播放封装码流与以ES形式形成的流媒体文件,与在现有技术的基础上实现在同一个播放设备中播放封装码流与以ES形式形成的流媒体文件相比,大大简化了播放系统的设计难度与播放设备的结构复杂性。
作为本发明解码处理装置的一个示例而非限制,本发明上述实施例的解码处理装置中,帧解码单元503,还可用于接收当前帧的特征信息,或者接收当前帧的同步头起始位置信息,并根据当前帧的同步头起始位置检测当前帧的特征信息;根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验;对当前帧数据进行解码时,具体对经过错误校验的当前帧进行解码。作为本发明解码处理装置的一个示例而非限制,本发明上述实施例的解码处理装置中,帧检测单元502,还可用于将当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息发送给帧解码单元。图10为本发明流媒体文件的解码处理装置又一个实施例的结构示意图。该实施例的解码处理装置可用于执行本发明图6所示解码处理方法流程的相应操作。与本发明上述各实施例的解码处理装置相比,该实施例的解码处理装置还包括控制单元505,用于向文件读取单元501发送读取控制命令;根据文件读取单元501返回的识别结果消息,响应于文件读取单元501读取到的流媒体文件码流为ES,向帧检测单元502发送检测命令;接收帧检测单元502返回的当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息,并向帧解码单元503发送解码命令与当前帧数据,其中的解码命令包括当前帧的相关信息或相关信息中的同步头起始位置信息。由于当前帧可以是音频帧或视频帧,控制单元505根据ES为音频ES或者视频ES,分别向音频解码单元或视频解码单元发送解码命令,后续相应由音频解码单元或视频解码单元进行解码处理操作,本发明后续各实施例中的帧解码单元503均指对应解码音频、视频帧的音频解码单元或视频解码单元,不再特别说明。相应的,文件读取单元501具体响应于控制单元505的读取控制命令,对外部存储单元的输入空间进行监控,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内,识别读取到流媒体文件码流为ES或封装码流,并向控制单元505返回识别结果消息。帧检测单元502具体根据控制单元505发送的检测命令,从外部存储单元的输入空间内的ES中检测当前帧的相关信息,并基于当前帧的相关信息确定当 前帧数据,将当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息发送给控制单元505。帧解码单元503具体根据解码命令对当前帧数据进行解码。作为图10所示解码处理装置实施例的一个示例而非限制,帧解码单元503,还可用于将解码得到的流媒体数据存储在外部存储单元的缓冲区中,并向控制单元505返回正确解码的解码结果消息。作为图10所示解码处理装置实施例的另一个示例而非限制,控制单元505,还可用于根据文件读取单元501返回的识别结果消息,响应于流媒体文件码流为封装码流,向解复用单元504发送解复用命令;以及接收解复用单元504返回的音频帧与视频帧及其特征信息,并向帧解码单元503发送解码命令、音频帧与视频帧,该解码命令中包括音频帧与视频帧的特征信息。相应的,解复用单元504具体根据控制单元505发送的解复用命令,对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,提取音频帧与视频帧的特征信息;并将音频帧与视频帧及其特征信息发送给控制单元505。帧解码单元503具体根据控制单元505发送的解码命令,对音频帧与视频帧进行解码,得到音频数据与视频数据。
进一步示例性地,帧解码单元503,还可用于将解码得到的音频数据与视频数据存储在外部存储单元的缓冲区中,并向控制单元505返回正确解码的解码结果消息。图11为本发明流媒体文件的解码处理装置再一个实施例的结构示意图。该实施例的解码处理装置可用于执行本发明图7所示解码处理方法流程的相应操作。与本发明图8及图9所示各实施例的解码处理装置相比,该实施例的解码处理装置还包括控制单元601与交互存储单元602。其中,控制单元601,用于向文件读取单元501发送读取控制命令;根据文件读取单元501返回的识别结果消息,响应于流媒体文件码流为ES,向帧检测单元502发送检测命令;接收帧检测单元502返回的检测完成消息,该检测完成消息中包括当前帧的相关信息或相关信息中的同步头起始位置信息,并向帧解码单元503发送解码命令,其中的解码命令包括当前帧的相关信息或相关信息中的同步头起始位置信息。交互存储单元602,用于存储由帧检测单元502确定的当前帧数据。相应的,文件读取单元501,具体响应于控制单元601的读取控制命令,对外部存储单元的输入空间进行监控,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内,识别读取到流媒体文件码流为ES或封装码流,并向控制单元601返回识别结果消息。帧检测单元502,具体根据控制单元601发送的检测命令,从外部存储单元的输入空间中的ES中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据,将当前帧数据存储在交互存储单元602中,并向控制单元601发送检测完成消息,该检测完成消息中包括当前帧的相关信息或相关信息中的同步头起始位置信息。帧解码单元503,具体根据控制单元601发送的解码命令对交互存储单元602中的当前帧数据进行解码。根据图11所示解码处理装置实施例的一个示例而非限制,帧解码单元503,还可用于将解码得到的流媒体数据存储在交互存储单元602中,并向控制单元601返回正确解码的解码结果消息。相应的 ,交互存储单元602,还可用于存储帧解码单元503解码得到的流媒体数据。 根据图11所示解码处理装置实施例的另一个示例而非限制,控制单元601,还可用于根据文件读取单元501返回的识别结果消息,响应于流媒体文件码流为封装码流,向解复用单元504发送解复用命令;以及接收解复用单元504返回的解复用完成消息,该解复用完成消息中包括音频帧与视频帧的特征信息,并向帧解码单元503发送解码命令,其中的解码命令包括音频帧与视频帧的特征信息。相应的,解复用单元504具体根据控制单元601发送的解复用命令,对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧并存储在交互存储单元602中,提取音频帧与视频帧的特征信息,并向控制单元601发送解复用完成消息。帧解码单元503,具体根据解码命令,对交互存储单元602中的音频帧与视频帧进行解码,得到音频数据与视频数据。进一步示例性地,帧解码单元503,还可用于将解码得到的音频数据与视频数据存储在交互存储单元602中,并向控制单元601返回正确解码的解码结果消息。相应的,交互存储单元602,还可用于存储帧解码单元503解码得到的音频数据与视频数据。另外,再参见图11,作为本发明的解码处理装置的又一个实施例,还可以包括DMA单元603,用于根据控制单元601的搬移命令,将交互存储单元602中的音频数据和/或视频数据搬移到外部存储单元的缓冲区中。相应的,控制单元601还用于响应于接收到正确解码的解码结果消息,向DMA单元603发送搬移命令。作为本发明解码处理装置的还一个实施例,图11所示各实施例提供的解码处理装置具有多处理器系统,其包括第一处理器单元与第二处理器单元。其中,控制单元505、帧检测单元502 与解复用单元504设置在第一处理器单元中,帧解码单元503设置在第二处理器单元中。如图12所示,为本发明流媒体文件的解码处理装置还一个实施例的结构示意图。示例性地,可以利用具有较灵活的存储访问功能及较丰富的流程控制指令的处理器,如ARM处理器单元,作为第一处理器单元;利用具有较强大的数据处理能力的处理器,如DSP单元,作为第二处理器单元,来实现解码流程中的算术运算及解码流程。由于具有较灵活的存储访问功能及丰富的流程控制指令,采用ARM处理器单元作为第一处理器单元,可以提高多处理器系统的工作性能;由于DSP单元具有较强大的数据处理能力,采用DSP单元作为第二处理器单元,可以提高解码速度与效率,提高解码正确率。本发明实施例利用具有多处理器系统的解码处理装置对流媒体文件进行解码处理时,充分发挥每个处理器单元的性能优势,利用多个处理器单元配合实现对流媒体文件码流的解码、播放流程,例如,可以利用具有较灵活的存储访问功能及较丰富的流程控制指令的处理器单元,如ARM7系列处理器单元,作为第一处理器单元,从外部存储单元的输入空间读取流媒体文件码流并进行解复用或者帧检测,并将得到的音频帧与视频帧、或者当前帧数据存储在第二处理器单元可访问的交互存储单元中,利用具有较强大的数据处理能力的处理器,如DSP单元,作为第二处理器单元,对交互存储单元中的音频帧与视频帧、或者当前帧数据进行解码,并将解码得到的音频数据或者视频数据存储在可访问的交互存储单元中,然后由第一处理器单元进行播放,充分发挥了第一处理器单元的灵活存储访问功能及丰富流程控制指令功能与第二处理器单元的强大数据处理能力,提高了流媒体文件的播放效果;充分发挥了多个处理器单元的性能优势,充分利用了多处理器系统的系统资源,实现了对系统资源的优化配置及复用,达到对有限资源的最优配置,最大程度的降低产品成本,且提高了多处理器系统的工作性能。进一步地,再参见图12,作为本发明解码处理装置的另一个具体实施例,还包括第三处理器单元604,用于作为解码加速单元,对帧解码单元503的解码进行加速,以提高解码速度,实现更高的解码性能。相应的,该实施例中,帧解码单元503,还用于在对交互存储单元中的音频数据与视频数据进行解码的过程中,调用第三处理器单元604进行加速。图13为本发明播放设备一个实施例的结构示意图。该实施例的播放设备可用于实现本发明图6所示各实施例的解码处理方法流程。如图13所示,该实施例的播放设备包括外部存储单元I与文件存储单元2,还包括图10所示各实施例的解码处理装置,以及播放单元3。其中,外部存储单元I包括输入空间与缓冲区,输入空间可以用于存储流媒体文件码流,缓冲区可以用于存储音频数据与视频数据。文件存储单元2用于存储流媒体文件码流。解码处理装置中的控制单元505,还用于响应于帧解码单元503发送的解码结果消息,向播放单元3发送播放命令。相应的,播放单元3,用于根据控制单元505发送的播放命令,对外部存储单元I的缓冲区中的流媒体数据进行输出播放,或者对外部存储单元I的缓冲区中的音频数据与视频数据进行输出播放。具体地,该播放单元3可以包括音频播放单元与视频播放单元,分别对应播放音频数据与视频数据。本发明上述实施例提供的播放设备包括了上述实施例的流媒体文件的解码处理装置中,可以通过文件读取单元识别读取到的流媒体文件码流为ES或封装码流,若流媒体文件码流为ES,可以由检测单元从ES中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据,而无需使用解复用单元提供的码流信息,对当前帧数据进行解码,从而实现基本码流的解码,以得到用于输出播放的流媒体数据,从而使在封装码流的播放设备中可以实现对ES的解码、播放,在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件。根据本发明实施例提供的另一种播放设备,可用于实现本发明图7所示各实施例的解码处理方法流程。该实施例的播放设备包括外部存储单元I与文件存储单元2,还包括图11或图12所示各实施例的解码处理装置,以及播放单元3。其中,外部存储单元I包括输入空间与缓冲区,输入空间可以用于存储流媒体文件码流,缓冲区可以用于存储音频数据与视频数据。文件存储单元2用于存储流媒体文件码流。解码处理装置中的控制单元601,还用于响应于帧解码单元503发送的解码结果消息,将交互存储单元602中的流媒体数据,或者交互存储单元602中的音频数据与视频数据,搬移到外部存储单元I的缓冲区中,并向播放单元3发送播放命令。相应的,播放单元3,用于根据控制单元601发送的播放命令,对外部存储单元I的缓冲区中的流媒体数据进行输出播放,或者对外部存储 单元I的缓冲区中的音频数据与视频数据进行输出播放。具体地,该播放单元3可以包括音频播放单元与视频播放单元,分别对应播放音频数据与视频数据。根据播放设备的一个示例而非限制,播放单元3具体可以设置在第一处理器中。如图14所示,为本发明播放设备另一实施例的结构示意图,该图14作为一个具体示例,仅示出了包括图12所示实施例的解码处理装置的结构。对于播放设备包括图11所示各实施例的解码处理装置的情况,各单元的功能及其之间的连接关系与图14相同,不再赘述。本发明上述实施例提供的播放设备包括了上述实施例的流媒体文件的解码处理装置,可以通过文件读取单元识别读取到的流媒体文件码流为ES或封装码流,若流媒体文件码流为ES,可以由检测单元从ES中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据,而无需使用解复用单元提供的码流信息,对当前帧数据进行解码,从而实现基本码流的解码,以得到用于输出播放的流媒体数据,从而使在封装码流的播放设备中可以实现对ES的解码、播放,在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件。另外,本发明上述实施例提供的播放设备,具有多处理器系统,充分发挥每个处理器单元的性能优势,利用多个处理器单元配合实现对流媒体文件码流的解码、播放流程,充分发挥了第一处理器单元的灵活存储访问功能及丰富流程控制指令功能与第二处理器单元的强大数据处理能力,提高了流媒体文件的播放效果;充分发挥了多个处理器单元的性能优势,充分利用了系统资源,提高了多处理器系统的工作性能。本领域普通技术人员可以理解本发明上述各实施例本发明上述各实施例解码处理装置与播放设备的各构成单元可以通过软件实现,也可以通过硬件实现。并且,本发明上述各实施例解码处理装置与播放设备的构成单元并不一定是实现本发明实施例所必须或仅限的,例如,播放设备还可以根据实际需求设置显示器、键盘与其它外设等。另外,解码处理装置的构成单元还可以根据实际需求分布于播放设备的其它构成单元中,解码处理装置的构成单元中,可以多个构成单元合并为一个单元实现,也可以一个构成单元拆分为多个子单元实现。另外,解码处理装置的构成单元之间、以及解码处理装置的构成单元与播放设备的其它构成单元之间的连接关系,仅表示基于本发明的一个信息流向关系示例,不限制为物理连接关系,并且也不一定是实现本发明实施例所必须或仅限的。本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于解码处理装置、播放设备实施例而言,由于其与方法实施例相应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括RoM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。本发明实施例在封装码流的播放设备中可以实现对基本码流的解码、播放,在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件;可以理利用多处理器系统中的多个处理器单元配合实现对流媒体文件码流的解码、播放流程,提高了流媒体文件的播放效果;充分发挥了多个处理器单元的性能优势,充分利用了多处理器系统的系统资源,实现了对系统资源的优化配置及复用,达到对有限资源的最优配置,最大程度的降低产品成本,且提高了多处理器系统的工作性能。 本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
权利要求
1.一种流媒体文件的解码处理方法,其特征在于,包括 读取流媒体文件码流,并识别读取到的流媒体文件码流为基本码流或封装码流,所述流媒体文件码流包括音频文件码流和/或视频文件码流; 响应于流媒体文件码流为基本码流,基于当前帧的相关信息而非解复用单元提供的码流信息,对当前帧数据进行解码,得到流媒体数据,所述流媒体数据包括音频数据或者视频数据。
2.根据权利要求1所述的方法,其特征在于,响应于流媒体文件码流为封装码流,对封装码流进行解复用,分离出音频打包基本码流PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,并提取音频帧与视频帧的特征信息; 分别根据音频帧与视频帧的特征信息对音频帧与视频帧进行解码,得到音频数据与视频数据。
3.根据权利要求2所述的方法,其特征在于,基于当前帧的相关信息而非解复用单元提供的码流信息,对当前帧数据进行解码包括 从基本码流中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据; 对当前帧数据进行解码。
4.根据权利要求3所述的方法,其特征在于,当前帧的相关信息包括当前帧的同步头起始位置、帧长与特征信息; 从基本码流中检测当如巾贞的相关彳目息包括 利用帧检测单元,从基本码流的当前位置进行同步头检测,获取当前帧的同步头在比特流中的起始位置; 由所述同步头起始位置确定当前帧的帧头并进行解析,获取当前帧的特征信息; 基于当前帧的特征信息对当前帧进行合法性检测; 响应于当前帧通过合法性检测,根据当前帧的特征信息确定当前帧的帧长。
5.根据权利要求3所述的方法,其特征在于,从基本码流中检测当前帧的相关信息之后,还包括 利用帧检测单元,基于当前帧与下一帧的特征信息对当前帧进行完整性检测; 响应于当前帧通过完整性检测,基于当前帧的相关信息确定当前帧数据。
6.根据权利要求4所述的方法,其特征在于,对当前帧数据进行解码包括 利用帧解码单元,接收当前帧的特征信息; 根据当前帧的特征信息中的循环冗余码校验CRC标识,对当前帧数据进行错误校验; 对当前帧数据进行解码。
7.根据权利要求4所述的方法,其特征在于,对当前帧数据进行解码包括 利用帧解码单元,接收当前帧的同步头起始位置信息; 根据当前帧的同步头起始位置检测当前帧的特征信息; 根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验; 对当前帧数据进行解码。
8.根据权利要求6或7所述的方法,其特征在于,基于当前帧的相关信息确定当前帧数据之后,还包括 将帧检测单元确定的当前帧数据,与检测得到的当前帧的相关信息或相关信息中的同步头起始位置信息发送给帧解码单元。
9.根据权利要求1至7任意一项所述的方法,其特征在于,读取流媒体文件码流,并识别读取到流媒体文件码流为基本码流或封装码流包括 利用文件读取单元,响应于控制单元的读取控制命令,对外部存储单元的输入空间进行监控,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内,识别读取到流媒体文件码流为基本码流或封装码流,并向控制单元返回识别结果消息; 利用控制单元,根据所述识别结果消息,响应于流媒体文件码流为基本码流,向帧检测单元发送检测命令; 具体利用帧检测单元,根据所述检测命令从基本码流中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据。
10.根据权利要求9所述的方法,其特征在于,利用控制单元,根据所述识别结果消息,响应于流媒体文件码流为封装码流,向解复用单元发送解复用命令; 具体利用解复用单元,根据所述解复用命令对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,并提取音频帧与视频帧的特征信息;将音频帧与视频帧及其特征信息发送给控制单元; 利用控制单元,向帧解码单元发送解码命令、音频帧与视频帧,所述解码命令中包括音频帧与视频帧的特征信息; 具体利用帧解码单元,根据解码命令对音频帧与视频帧进行解码,得到音频数据与视频数据。
11.根据权利要求10所述的方法,其特征在于,还包括 利用帧解码单元,将解码得到的音频数据与视频数据存储在外部存储单元的缓冲区中,并向控制单元返回正确解码的解码结果消息; 利用控制单元,响应于所述解码结果消息,向播放单元发送播放命令; 利用播放单元,根据所述播放命令,对缓冲区中的音频数据与视频数据进行输出播放。
12.根据权利要求9所述的方法,其特征在于,基于当前帧的相关信息确定当前帧数据之后,还包括 利用帧检测单元,将确定的当前帧数据,与检测得到的当前帧的相关信息或相关信息中的同步头起始位置信息发送给控制单元; 利用控制单元,向帧解码单元发送解码命令与当前帧数据,所述解码命令包括当前帧的相关信息或相关信息中的同步头起始位置信息; 具体利用帧解码单元,根据解码命令对当前帧数据进行解码。
13.根据权利要求12所述的方法,其特征在于,还包括 利用帧解码单元,将解码得到的流媒体数据存储在外部存储单元的缓冲区中,并向控制单元返回正确解码的解码结果消息; 利用控制单元,响应于解码结果消息,向播放单元发送播放命令; 利用播放单元,根据所述播放命令,对缓冲区中的流媒体数据进行输出播放。
14.根据权利要求9所述的方法,其特征在于,基于当前帧的相关信息确定当前帧数据之后,还包括利用帧检测单元,将当前帧数据存储在交互存储单元中,并向控制单元发送检测完成消息,所述检测完成消息中包括当前帧的相关信息或相关信息中的同步头起始位置信息;利用控制单元,响应于检测完成消息,向帧解码单元发送解码命令,所述解码命令中包括当前帧的相关信息或相关信息中的同步头起始位置信息; 具体利用帧解码单元,根据解码命令,对交互存储单元中的当前帧数据进行解码。
15.根据权利要求14所述的方法,其特征在于,还包括 利用帧解码单元,将解码得到的流媒体数据存储在所述交互存储单元中,并向控制单元返回正确解码的解码结果消息; 利用控制单元,响应于解码结果消息,将交互存储单元中的流媒体数据搬移到所述外部存储单元的缓冲区中,并向播放单元发送播放命令; 利用播放单元,根据所述播放命令,对缓冲区中的流媒体数据进行输出播放。
16.根据权利要求14所述的方法,其特征在于,利用控制单元,根据所述识别结果消息,响应于流媒体文件码流为封装码流,向解复用单元发送解复用命令; 具体利用解复用单元,根据所述解复用命令对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧并存储在交互存储单元中,并提取音频帧与视频帧的特征信息;向控制单元发送解复用完成消息,所述解复用完成消息中包括音频帧与视频帧的特征信息; 利用控制单元,向帧解码单元发送解码命令,所述解码命令中包括音频帧与视频帧的特征信息; 具体利用帧解码单元,根据解码命令,对交互存储单元中的音频帧与视频帧进行解码,得到音频数据与视频数据。
17.根据权利要求16所述的方法,其特征在于,还包括 利用帧解码单元,将音频数据与视频数据存储在所述交互存储单元中,并向控制单元返回正确解码的解码结果消息; 利用控制单元,响应于所述解码结果消息,将交互存储单元中的音频数据与视频数据搬移到所述外部存储单元的缓冲区中,并向播放单元发送播放命令; 利用播放单元,根据所述播放命令,对缓冲区中的音频数据与视频数据进行输出播放。
18.一种流媒体文件的解码处理装置,其特征在于,包括 文件读取单元,用于读取流媒体文件码流,并识别读取到流媒体文件码流为基本码流或封装码流,所述流媒体文件码流包括音频文件码流和/或视频文件码流; 帧检测单元,用于响应于流媒体文件码流为基本码流,从基本码流中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据; 帧解码单元,用于对帧检测单元确定的当前帧数据进行解码,得到流媒体数据,所述流媒体数据包括音频数据或者视频数据。
19.根据权利要求18所述的装置,其特征在于,还包括 解复用单元,用于响应于流媒体文件码流为封装码流,对封装码流进行解复用,分离出音频打包PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,并提取音频帧与视频的特征信息; 帧解码单元,还用于分别根据音频帧与视频帧的特征信息,对解复用单元得到的音频帧与视频帧进行解码,得到音频数据与视频数据。
20.根据权利要求19所述的装置,其特征在于,当前帧的相关信息包括当前帧的同步头起始位置、帧长与特征信息; 所述帧检测单元,还用于基于当前帧与下一帧的特征信息对当前帧进行完整性检测;以及响应于当前帧通过完整性检测,基于当前帧的相关信息确定当前帧数据。
21.根据权利要求20所述的装置,其特征在于,所述帧解码单元,还用于接收当前帧的特征信息,或者接收当前帧的同步头起始位置信息,并根据当前帧的同步头起始位置检测当前帧的特征信息;根据当前帧的特征信息中的CRC标识,对当前帧数据进行错误校验;具体对经过错误校验的当前帧进行解码。
22.根据权利要求21所述的解码处理装置,其特征在于,所述帧检测单元,还用于将当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息发送给帧解码单元。
23.根据权利要求19至21任意一项所述的装置,其特征在于,还包括 控制单元,用于向文件读取单元发送读取控制命令;根据文件读取单元返回的识别结果消息,响应于流媒体文件码流为基本码流,向帧检测单元发送检测命令;接收帧检测单元返回的当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息,并向帧解码单元发送解码命令与当前帧数据,所述解码命令包括当前帧的相关信息或相关信息中的同步头起始位置信息; 所述文件读取单元,具体响应于控制单元的读取控制命令,对外部存储单元的输入空间进行监控,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内,识别读取到流媒体文件码流为基本码流或封装码流,并向控制单元返回识别结果消息; 所述帧检测单元,具体根据所述检测命令从基本码流中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据,将当前帧数据,与当前帧的相关信息或相关信息中的同步头起始位置信息发送给控制单元; 所述帧解码单元,具体根据解码命令对当前帧数据进行解码。
24.根据权利要求23所述的装置,其特征在于,所述帧解码单元,还用于将解码得到的流媒体数据存储在外部存储单元的缓冲区中,并向控制单元返回正确解码的解码结果消息
25.根据权利要求23所述的装置,其特征在于,所述控制单元,还用于根据所述识别结果消息,响应于流媒体文件码流为封装码流,向解复用单元发送解复用命令;以及接收解复用单元返回的音频帧与视频帧及其特征信息,并向帧解码单元发送解码命令、音频帧与视频帧,所述解码命令包括音频帧与视频帧的特征信息; 所述解复用单元,具体根据所述解复用命令对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧,提取音频帧与视频帧的特征信息;并将音频帧与视频帧及其特征信息发送给控制单元; 所述帧解码单元,具体根据解码命令对音频帧与视频帧进行解码,得到音频数据与视频数据。
26.根据权利要求25所述的装置,其特征在于,所述帧解码单元,还用于将解码得到的音频数据与视频数据存储在外部存储单元的缓冲区中,并向控制单元返回正确解码的解码结果消息。
27.根据权利要求19至21任意一项所述的装置,其特征在于,还包括 控制单元,用于向文件读取单元发送读取控制命令;根据文件读取单元返回的识别结果消息,响应于流媒体文件码流为基本码流,向帧检测单元发送检测命令;接收帧检测单元返回的检测完成消息,所述检测完成消息中包括当前帧的相关信息或相关信息中的同步头起始位置信息,并向解码处理装置中的帧解码单元发送解码命令,所述解码命令包括当前帧的相关信息或相关信息中的同步头起始位置信息; 交互存储单元,用于存储帧检测单元确定的当前帧数据; 所述文件读取单元,具体响应于控制单元的读取控制命令,对外部存储单元的输入空间进行监控,响应于外部存储单元的输入空间有空余,从文件存储单元读取流媒体文件码流并存储在外部存储单元的输入空间内,识别读取到流媒体文件码流为基本码流或封装码流,并向控制单元返回识别结果消息; 所述帧检测单元,具体根据所述检测命令从基本码流中检测当前帧的相关信息,并基于当前帧的相关信息确定当前帧数据,将当前帧数据存储在交互存储单元中,并向控制单元发送检测完成消息,所述检测完成消息中包括当前帧的相关信息或相关信息中的同步头起始位置信息; 所述帧解码单元,具体根据解码命令对交互存储单元中的当前帧数据进行解码。
28.根据权利要求27所述的装置,其特征在于,所述帧解码单元,还用于将解码得到的流媒体数据存储在所述交互存储单元中,并向控制单元返回正确解码的解码结果消息; 所述交互存储单元,还用于存储帧解码单元解码得到的流媒体数据。
29.根据权利要求28所述的装置,其特征在于,所述控制单元,还用于根据所述识别结果消息,响应于流媒体文件码流为封装码流,向解复用单元发送解复用命令;以及接收解复用单元返回的解复用完成消息,所述解复用完成消息中包括音频帧与视频帧的特征信息,并向帧解码单元发送解码命令,所述解码命令包括音频帧与视频帧的特征信息; 所述解复用单元,具体根据所述解复用命令对封装码流进行解复用,分离出音频PES与视频PES,分别对音频PES与视频PES进行拆包、解封装,得到音频帧与视频帧并存储在交互存储单元中,提取音频帧与视频帧的特征信息,并向控制单元发送所述解复用完成消息; 所述帧解码单元,具体根据解码命令,对交互存储单元中的音频帧与视频帧进行解码,得到音频数据与视频数据。
30.根据权利要求29所述的装置,其特征在于,所述帧解码单元,还用于将解码得到的音频数据与视频数据存储在所述交互存储单元中,并向控制单元返回正确解码的解码结果消息; 所述交互存储单元,还用于存储帧解码单元解码得到的音频数据与视频数据。
31.根据权利要求30所述的装置,其特征在于,所述解码处理装置包括第一处理器单元与第二处理器单元; 控制单元、帧检测单元与解复用单元设置在第一处理器单元中; 帧解码单元设置在第二处理器单元中。
32.根据权利要求31所述的装置,其特征在于,还包括第三处理器单元,用于作为解码加速单元,对所述帧解码单元的解码进行加速; 所述帧解码单元,还用于在对交互存储单元中的音频数据与视频数据进行解码的过程中,调用第三处理器单元进行加速。
33.一种播放设备,包括外部存储单元与文件存储单元,其特征在于,还包括权利要求23至26任意一项所述的流媒体文件的解码处理装置,以及播放单元; 所述解码处理装置中的控制单元,还用于响应于帧解码单元发送的解码结果消息,向播放单元发送播放命令; 所述播放单元,用于根据所述播放命令,对外部存储单元的缓冲区中的音频数据与视频数据进行输出播放。
34.一种播放设备,包括外部存储单元与文件存储单元,其特征在于,还包括权利要求27至32任意一项所述的流媒体文件的解码处理装置,以及播放单元; 所述解码处理装置中的控制单元,还用于响应于帧解码单元发送的解码结果消息,将交互存储单元中的音频数据与视频数据,搬移到外部存储单元的缓冲区中,并向播放单元发送播放命令; 所述播放单元,用于根据所述播放命令,对外部存储单元的缓冲区中的音频数据与视频数据,进行输出播放。
35.根据权利要求34所述的播放设备,其特征在于,所述播放单元设置在第一处理器中。
全文摘要
本发明实施例公开了一种流媒体文件的解码处理方法与装置、播放设备,其中,方法包括读取流媒体文件码流,并识别读取到的流媒体文件码流为ES或封装码流,所述流媒体文件码流包括音频文件码流和/或视频文件码流;响应于流媒体文件码流为ES,基于当前帧的相关信息而非解复用单元提供的码流信息,对当前帧数据进行解码,得到流媒体数据,所述流媒体数据包括音频数据或者视频数据。本发明实施例使在封装码流的播放设备中可以实现对ES的解码、播放,在同一个播放设备中实现了,采用同一个播放系统来播放封装码流与以ES形式形成的流媒体文件。
文档编号H04N7/26GK103037211SQ20111030116
公开日2013年4月10日 申请日期2011年9月29日 优先权日2011年9月29日
发明者李昙, 张本好, 徐晶明, 吴晟, 林福辉 申请人:展讯通信(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1