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

文档序号:8434276阅读:来源:国知局
的操作,这样会造成阻塞和延迟的问题。具体的,请参考图3,其为输出buffer组由2个buffer组成和由3个buffer组成时错过刷新点的比对示意图。如图3所示,LCD以固定的帧率进行数据刷新,在输出buffer组由2个buffer组成的模式下,如果视频解码器22某一帧处理的时间稍长,错过了刷新点,那么下面一整个周期都会处于阻塞的状态,直到下一个刷新点才能进行buffer切换。在输出buffer组(outbufferO)由3个buffer组成的模式下,即使视频解码器22处理时间稍长错过刷新点,也有空余的buffer可以进行输出,不会影响下一巾贞的处理。
[0086]在本实施例中,主要通过IXD27的overlay功能进行视频数据所在图层与用户界面图层的合成叠加及显示合成后的视频。具体的,将outbufferO直接输出到LCD副图层上,由LCD进行主图层和副图层的混叠。LCD副图层独立于主图层,所以可动态指定获取刷新数据的内存空间。因此,整个输出链路中只需要一组输出buffer (即outbufferO),由显示图层模块23进行分配,物理连续。视频解码器22往该buffer组中输出视频数据,IXD副图层则从该buffer组获取刷新数据。由此,GPU无需再针对显示图层进行合成操作,GPU可处于睡眠状态,仅由LCD副图层来更新需要的显示数据,从而可以大大降低功耗和资源占用。
[0087]进一步的,本申请实施例中的应用于Android平台的多媒体视频播放系统还包括:图像后处理模块29,所述图像后处理模块29用以对视频解码器22输出的视频数据进行格式处理及缩放处理后提供给0MXCOdec21,以满足对IXD27显示要求。进一步的,图像后处理模块39与视频解码器22可形成流水线输出,即图像后处理模块29在处理上一帧数据的同时,视频解码器22就可以开始下一帧数据的解码。
[0088]综上可见,在本发明实施例提供的应用于Android平台的多媒体视频播放系统及方法中,通过内存分配器提供两个buffer组(输入和输出)以供文件解析器、OMXCodec、视频解码器、显示图层模块、Stagefright及图像合成模块使用,由此能够避免现有技术中buffer (缓存)组数量比较多,播放时对内存大小的需求比较高以及不同的buffer (缓存)组之间存在大量的数据拷贝,占用CPU资源,影响整体播放性能的问题。进一步的,内存分配器提供的outbufferO采用3个buffer,由此能够避免现有技术中采用兵兵buffer的机制,在切换时必须保证前一个buffer已经刷新完,也就是说只有在每个刷新的sync点才能进行切换buffer的操作,这样会造成阻塞和延迟的问题。更进一步的,通过overlay功能进行视频数据的合成叠加,由此能够避免现有技术中输出的视频数据必须通过GPU进行合成才能显示到LCD上,增加时间与功耗方面的开销的问题。
[0089]上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
【主权项】
1.一种应用于Android平台的多媒体视频播放系统,其特征在于,包括:文件解析器、与所述文件解析器连接的OMXCodec、与所述OMXCodec连接的视频解码器、与所述OMXCodec连接的显示图层模块、与所述OMXCodec连接的Stagefright、与所述Stagefright连接的图像合成模块及与所述OMXCodec及显示图层模块连接的内存分配器;其中, 所述文件解析器用以对视频文件格式进行解析,分离出每一帧的视频数据; 所述OMXCodec用以将视频解码器封装成OMX IL标准接口,进行统一管理; 所述视频解码器用以对视频数据进行解码; 所述显示图层模块用以提供显示图层; 所述Stagefright用以对整个播放链路的播放进行控制和调度; 所述图像合成模块用以对视频图层数据和用户界面图层数据进行合成叠加; 所述内存分配器用以提供两个buffer组以供文件解析器、OMXCodec、视频解码器、显示图层模块、Stagefright及图像合成模块使用。
2.如权利要求1所述的应用于Android平台的多媒体视频播放系统,其特征在于,所述内存分配器提供inbufferO及outbufferO,其中,inbufferO由文件解析器和视频解码器使用;outbufferO由视频解码器、OMXCodec、显示图层模块、Stagefright和图像合成模块使用。
3.如权利要求2所述的应用于Android平台的多媒体视频播放系统,其特征在于,inbufferO由OMXCodec负责从内存分配器分配;outbufferO由显示图层模块负责从内存分配器分配。
4.如权利要求2所述的应用于Android平台的多媒体视频播放系统,其特征在于,outbufferO 由 3 个 buffer 组成。
5.如权利要求1所述的应用于Android平台的多媒体视频播放系统,其特征在于,所述内存分配器提供的两个buffer组在物理空间上均为连续。
6.如权利要求1?5中任一项所述的应用于Android平台的多媒体视频播放系统,其特征在于,还包括图像后处理模块,所述图像后处理模块用以对视频解码器输出的视频数据进行格式处理及缩放处理后提供给OMXCodec。
7.如权利要求1?5中任一项所述的应用于Android平台的多媒体视频播放系统,其特征在于,所述图像合成模块包括:图像输出器、Surfaceflinger及IXD,其中, 所述图像输出器用以提供视频数据; 所述Surfaceflinger用以控制各个显示图层的叠加; 所述LCD用以通过overlay功能进行视频数据所在图层与用户界面图层的合成叠加及显示合成后的视频。
8.—种如权利要求1?7中任一项所述的应用于Android平台的多媒体视频播放系统的多媒体视频播放方法,其特征在于,包括: 文件解析器对视频文件格式进行解析,分离出每一帧的视频数据; 视频解码器对视频数据进行解码; OMXCodec将视频解码器封装成OMX IL标准接口,进行统一管理; 显示图层模块提供显示图层; Stagefright对整个播放链路的播放进行控制和调度; 图像合成模块对视频图层数据和用户界面图层数据进行合成叠加;其中, 内存分配器提供两个buffer组以供文件解析器、OMXCodec、视频解码器、显示图层模块、Stagefright及图像合成模块使用。
9.如权利要求8所述的应用于Android平台的多媒体视频播放方法,其特征在于,内存分配器提供inbufferO及outbufferO,其中,inbufferO由文件解析器和视频解码器使用;outbufferO由视频解码器、OMXCodec、显示图层模块、Stagefright和图像合成模块使用。
10.如权利要求9所述的应用于Android平台的多媒体视频播放方法,其特征在于,inbufferO由OMXCodec负责从内存分配器分配;outbufferO由显示图层模块负责从内存分配器分配。
11.如权利要求9所述的应用于Android平台的多媒体视频播放方法,其特征在于,outbufferO 由 3 个 buffer 组成。
12.如权利要求8所述的应用于Android平台的多媒体视频播放方法,其特征在于,内存分配器提供的两个buffer组在物理空间上均为连续。
13.如权利要求8?12中任一项所述的应用于Android平台的多媒体视频播放方法,其特征在于,在视频解码器对视频数据进行解码之后,还包括: 图像后处理模块对视频解码器输出的视频数据进行格式处理及缩放处理。
14.如权利要求8?12中任一项所述的应用于Android平台的多媒体视频播放方法,其特征在于,图像合成模块对视频图层数据和用户界面图层数据进行合成叠加,包括: 图像输出器提供视频数据; Surfaceflinger控制各个显示图层的叠加; LCD通过overlay功能进行视频数据所在图层与用户界面图层的合成叠加及显示合成后的视频。
【专利摘要】本发明提供了一种应用于Android平台的多媒体视频播放系统及方法,通过内存分配器提供两个buffer组(输入和输出)以供文件解析器、OMXCodec、视频解码器、显示图层模块、Stagefright及图像合成模块使用,由此能够避免现有技术中buffer(缓存)组数量比较多,播放时对内存大小的需求比较高以及不同的buffer(缓存)组之间存在大量的数据拷贝,占用CPU资源,影响整体播放性能的问题。
【IPC分类】H04N21-431, H04N21-4402, H04N21-443
【公开号】CN104754409
【申请号】CN201310742914
【发明人】祝晓平, 林惠春, 傅海东
【申请人】联芯科技有限公司
【公开日】2015年7月1日
【申请日】2013年12月27日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1