应用于Android平台的多媒体视频播放系统及方法

文档序号:8434276阅读:358来源:国知局
应用于Android平台的多媒体视频播放系统及方法
【技术领域】
[0001]本发明涉及多媒体视频播放技术领域,特别涉及一种应用于Android平台的多媒体视频播放系统及方法。
【背景技术】
[0002]在智能手机终端领域中,多媒体视频播放功能已经成为一项必不可少的需求,同时用户对于手机终端画质的需求也在逐渐提高。目前1080P分辨率(1920X 1080)的高清视频已经非常普遍,这对于手机终端的多媒体视频播放能力又提出了更高的要求。
[0003]具体的,请参考图1,其为现有的应用于Android平台的多媒体视频播放系统的框结构示意图。如图1所示,现有的应用于Android平台的多媒体视频播放系统包括:文件解析器10、OMXCodecl1、视频解码器12、显示图层模块13、Stagefrightl4、图像输出器15、Surfaceflingerl6、GPU17及LCD18。具体的,所述文件解析器10对视频文件格式进行解析,分离出每一帧的视频数据;所述OMXCodecll将视频解码器封装成OMX IL标准接口,进行统一管理;所述视频解码器12对视频数据进行解码;所述显示图层模块13提供显示图层;所述StagefrightH对整个播放链路的播放进行控制和调度;所述图像输出器15提供视频数据;所述Surfaceflingerl6控制各个显示图层的叠加;所述GPU17进行图像数据的合成叠加;所述LCD18显示视频。
[0004]在上述的整个数据流程中一共涉及到5个buffer (缓存)组,具体的如下:
[0005]inbufferO,其是由OMXCodecll直接从系统分配buffer组,该buffer组在物理空间上不连续。具体的,文件解析器10从OMXCodecll获取到该buffer组后,将视频文件中当前需要解码的视频巾贞数据读取到该buffer组中(从而形成inbufferO)并送还给OMXCodec11 ο
[0006]inbuffer I,其是由视频解码器12分配buffer组,该buffer组在物理空间上连续。具体的,OMXCodecll将inbufferO中的数据拷贝到该buffer组中(从而形成inbufferl),并送给视频解码器12进行解码。
[0007]outbufferO,其是由视频解码器12分配buffer组,该buffer组在物理空间上连续。具体的,该buffer组用于存放视频解码器12的输出图像数据(从而形成outbufferO)。
[0008]outbufferl,其是由显示图层模块13从系统内存分配的buffer组,该buffer组在物理空间上不连续。具体的,OMXCodecll向显示图层模块13获取到该buffer组后,把视频解码器12输出的图像数据拷贝到这个buffer组里(从而形成outbufferl ),再由图像输出器15送给Surfaceflinger 16进行统一管理。所有的outbufferl最终交由GPU17进行混叠运算,GPU17带有MMU模块,因此不需要物理连续的内存空间。
[0009]Framebuffer,其是由IXD18的驱动在开机时就分配好的buffer组,该buffer组在物理空间上连续。GPU17将outbufferl中的数据与其他图层进行叠加,最终输出到该buffer组中(从而形成Framebuffer), IXD18从该Framebuffer获取数据进行刷新显示。
[0010]以上所述的buffer组实际都由2个buffer组成,进行乒乓切换。
[0011]对于现有的这种应用于Android平台的多媒体视频播放系统其存在如下多个缺占-
^ \\\.
[0012]1、不同的buffer (缓存)组之间存在大量的数据拷贝,占用CPU资源,影响整体播放性能;
[0013]2、buffer (缓存)组数量比较多,播放时对内存大小的需求比较高;
[0014]3、输出的视频数据必须通过GPU进行合成才能显示到IXD上,增加时间与功耗方面的开销;
[0015]4、IXD的Framebuffer采用兵兵buffer的机制,在切换时必须保证前一个buffer已经刷新完,也就是说只有在每个刷新的sync点才能进行切换buffer的操作,这样会造成阻塞和延迟。

【发明内容】

[0016]本发明的目的在于提供一种应用于Android平台的多媒体视频播放系统及方法,以解决现有技术中存在的一个或者多个问题。
[0017]为解决上述技术问题,本发明提供一种应用于Android平台的多媒体视频播放系统,所述应用于Android平台的多媒体视频播放系统包括:文件解析器、与所述文件解析器连接的OMXCodec、与所述OMXCodec连接的视频解码器、与所述OMXCodec连接的显示图层模块、与所述OMXCodec连接的Stagefright、与所述Stagefright连接的图像合成模块及与所述OMXCodec及显示图层模块连接的内存分配器;其中,
[0018]所述文件解析器用以对视频文件格式进行解析,分离出每一帧的视频数据;
[0019]所述OMXCodec用以将视频解码器封装成OMX IL标准接口,进行统一管理;
[0020]所述视频解码器用以对视频数据进行解码;
[0021]所述显示图层模块用以提供显示图层;
[0022]所述Stagefright用以对整个播放链路的播放进行控制和调度;
[0023]所述图像合成模块用以对视频图层数据和用户界面图层数据进行合成叠加;
[0024]所述内存分配器用以提供两个buffer组以供文件解析器、OMXCodec、视频解码器、显示图层模块、Stagefright及图像合成模块使用。
[0025]可选的,在所述的应用于Andrο i d平台的多媒体视频播放系统中,所述内存分配器提供inbufferO及outbufferO,其中,inbufferO由文件解析器和视频解码器使用;outbufferO由视频解码器、OMXCodec、显示图层模块、Stagefright和图像合成模块使用。
[0026]可选的,在所述的应用于Android平台的多媒体视频播放系统中,inbufferO由OMXCodec负责从内存分配器分配;outbufferO由显示图层模块负责从内存分配器分配。
[0027]可选的,在所述的应用于Android平台的多媒体视频播放系统中,outbufferO由3个buffer组成。
[0028]可选的,在所述的应用于Android平台的多媒体视频播放系统中,所述内存分配器提供的两个buffer组在物理空间上均为连续。
[0029]可选的,在所述的应用于Android平台的多媒体视频播放系统中,还包括图像后处理模块,所述图像后处理模块用以对视频解码器输出的视频数据进行格式处理及缩放处理后提供给OMXCodec。
[0030]可选的,在所述的应用于Android平台的多媒体视频播放系统中,所述图像合成模块包括:图像输出器、Surfaceflinger及LCD,其中,
[0031]所述图像输出器用以提供视频数据;
[0032]所述Surfaceflinger用以控制各个显示图层的叠加;
[0033]所述LCD用以通过overlay功能进行视频数据所在图层与用户界面图层的合成叠加及显示合成后的视频。
[0034]本发明还提供一种上述应用于Android平台的多媒体视频播放系统的多媒体视频播放方法,所述应用于Android平台的多媒体视频播放方法包括:
[0035]文件解析器对视频文件格式进行解析,分离出每一帧的视频数据;
[0036]视频解码器对视频数据进行解码;
[0037]OMXCodec将视频解码器封装成OMX IL标准接口,进行统一管理;
[0038]显示图层模块提供显示图层;
[0039]Stagefright对整个播放链路的播放进行控制和调度;
[0040]图像合成模块对视频图层数据和用户界面图层数据进行合成叠加;其中,
[0041]内存分配器提供两个buffer组以供文件解析器、OMXCodec、视频解码器、显示图层模块、Stagefright及图像合成模块使用。
[0042]可选的,在所述的应用于Android平台的多媒体视频播放方法中,内存分配器提供inbufferO及outbufferO,其中,inbufferO由文件解析器和视频解码器使用;outbufferO由视频解码器、OMXCodec、显示图层模块、Stagefright和图像合成模块使用。
[0043]可选的,在所述的应用于Android平台的多媒体视频播放方法中,inbufferO由OMXCodec负责从内存分配器分配;outbufferO由显示图层模块负责从内存分配器分配。
[0044]可选的,在所述的应用于An droi
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1