一种信息输出显示方法及装置与流程

文档序号:14410783阅读:142来源:国知局
一种信息输出显示方法及装置与流程

本发明涉及通信领域中的信息处理技术,尤其涉及一种信息输出显示方法及装置。



背景技术:

目前,多媒体视频播放的智能电视机顶盒已经逐步取代了传统的电视机,进入人类的日常生活,越来越多的用户选择通过机顶盒收看数字电视节目。用户通过机顶盒在电视终端屏幕上观看到的图像属于图像层,而收看的电视节目属于视频层,电视屏幕在内容显示过程中,机顶盒通常从服务器读取源数据、并将读取的源数据写入显存,再由机顶盒中的显示设备驱动每隔一段时间从该显存上读取目标数据并刷新到屏幕上,即可显示源数据代表的内容。

在现有的基于安卓android平台的多媒体视频播放系统中,作为智能电视机顶盒最核心的功能,输出显示方法主要有三种,然而这三种方法或者存在输出效率低的问题,或者存在cpu和gpu占用率高的问题,又或者存在无法将视频输出到指定位置的问题。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种信息输出显示方法及装置,解决了现有方法或者存在输出效率低的问题,或者存在中央处理器和图形处理器占用率高的问题,又或者存在无法将视频输出到指定位置的问题,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

本发明的技术方案是这样实现的:

一种信息输出显示方法,包括:

计算视频层和图像层的混合叠加显示参数;其中,所述视频层和所述图像层分别是填充数据后的所述视频层和填充数据后的所述图像层;

筛选出所述视频层和所述图像层中的第一部分图像层;

输出所述视频层和所述第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和所述第一处理器;其中,所述图像层包括所述第一部分图像层和所述第二部分图像层;所述第一处理器为视频和图像的混合叠加处理器,所述第二处理器为图像混合叠加处理器;

根据所述混合叠加显示参数显示经过所述第一处理器处理的所述视频层、所述第一部分图像层以及所述第二部分图像层。

如上所述的方法,还包括:

通过第一接口为待处理数据的视频层分配至少一个视频层缓冲区,通过第二接口为所述待处理数据的图像层分配至少一个图像层缓冲区。

如上所述的方法,还包括:

填充所述待处理数据的视频数据到所述视频层缓冲区中,并填充所述待处理数据的图像数据到所述图像层缓冲区中;

填充所述视频层缓冲区的视频数据到对应的所述视频层中,并填充所述图像层缓冲区的图像数据到对应的所述图像层中,得到填充数据后的所述视频层和填充数据后的所述图像层。

如上所述的方法,还包括:

通过所述第一接口对所述视频层缓冲区进行标记;

获取视频层和图像层叠加的z-order信息;

相应的,所述筛选出视频层和图像层中的第一部分图像层,包括:

根据所述视频层缓冲区的标记和所述z-order信息筛选出所述视频层和图像层中的第一部分图像层。

如上所述的方法,所述根据所述视频层缓冲区的标记和所述z-order信息筛选出所述视频层和图像层中的第一部分图像层,包括:

根据所述视频层缓冲区的标记筛选出所述视频层;

根据所述视频层缓冲区的标记和z-order信息,在所述视频层和所述图像层的混合区域内获取位于最上层视频层上面的图像层的个数和位于最下层视频层下面的图像层的个数;

比较所述位于最上层视频层上的图像层的个数和所述位于最下层视频层下的图像层的个数的大小;

将位于最上层视频层上的图像层的个数和所述位于最下层视频层下的图像层的个数中个数小的图像层作为所述第一部分图像层。

一种信息输出显示装置,包括:

计算模块,用于计算视频层和图像层的混合叠加显示参数;其中,所述视频层和所述图像层分别是填充数据后的所述视频层和填充数据后的所述图像层;

筛选模块,用于筛选出所述视频层和所述图像层中的第一部分图像层;

输出模块,用于输出所述视频层和所述第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和所述第一处理器;其中,所述图像层包括所述第一部分图像层和所述第二部分图像层;所述第一处理器为视频和图像的混合叠加处理器,所述第二处理器为图像混合叠加处理器;

显示模块,用于根据所述混合叠加显示参数显示经过所述第一处理器处理的所述视频层、所述第一部分图像层以及所述第二部分图像层。

如上所述的装置,还包括:

处理模块,用于通过第一接口为待处理数据的视频层分配至少一个视频层缓冲区,通过第二接口为所述待处理数据的图像层分配至少一个图像层缓冲区。

如上所述的装置,还包括:

填充模块,用于填充所述待处理数据的视频数据到所述视频层缓冲区中,并填充所述待处理数据的图像数据到所述图像层缓冲区中;填充所述视频层缓冲区的视频数据到对应的所述视频层中,并填充所述图像层缓冲区的图像数据到对应的所述图像层中,得到填充数据后的所述视频层和填充数据后的所述图像层。

如上所述的装置,还包括:

获取模块,用于获取视频层和图像层叠加的z-order信息;

所述处理模块,还用于通过所述第一接口对所述视频层缓冲区进行标记;

所述筛选模块,具体用于根据所述视频层缓冲区的标记和所述z-order信息筛选出所述视频层和图像层中的第一部分图像层。

如上所述的装置,所述筛选模块包括:

筛选单元,用于根据所述视频层缓冲区的标记筛选出所述视频层;

获取单元,用于根据所述视频层缓冲区的标记和z-order信息,在所述视频层和所述图像层的混合区域内获取位于最上层视频层上面的图像层的个数和位于最下层视频层下面的图像层的个数;

比较单元,用于比较所述位于最上层视频层上的图像层的个数和所述位于最下层视频层下的图像层的个数的大小;

处理单元,用于将位于最上层视频层上的图像层的个数和所述位于最下层视频层下的图像层的个数中个数小的图像层作为所述第一部分图像层。

本发明实施例所提供的信息输出显示方法及装置,能够计算视频层和图像层的混合叠加显示参数,筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数对混合叠加过的视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

附图说明

图1为现有技术的一种信息输出显示方法的流程示意图;

图2为现有技术的另一种信息输出显示方法的流程示意图;

图3为现有技术的又一种信息输出显示方法的流程示意图;

图4为本发明实施例提供的一种信息输出显示方法的流程示意图;

图5为本发明实施例提供的另一种信息输出显示方法的流程示意图;

图6为本发明实施例提供的又一种信息输出显示方法的流程示意图;

图7为本发明实施例提供的又一种信息输出显示方法的流程示意图;

图8为本发明实施例提供的一种信息输出显示装置的结构示意图;

图9为本发明实施例提供的另一种信息输出显示装置的结构示意图;

图10为本发明实施例提供的又一种信息输出显示装置的结构示意图;

图11为本发明实施例提供的又一种信息输出显示装置的结构示意图。

具体实施方式

图1为现有技术的一种信息输出显示方法的流程示意图。如图1所示,这种输出显示方法是由播放器(mediaplayer)驱动多媒体服务(mediaserver),由mediaserver管理通过安卓(android)帧缓冲区硬件抽象层模块(gralloc模块)的接口为每个视频层分配一个或多个视频层缓冲区,为每个图像层分配一个或多个图像层缓冲区,mediaserver管理填充视频数据到相应的视频层缓冲区中,填充图像数据到相应的图像层缓冲区中,mediaserver再根据这一帧要显示的内容将视频层缓冲区中的数据填充到对应的视频层中,将图像层缓冲区中的数据填充到对应的图像层中,然后把填充数据后的视频层和图形层通过surfaceflinger(android系统中实现计算混叠图层参数的功能)并依照z-order(z轴次序)信息混合、叠加输出到图形处理硬件器(graphicprocessingunit,gpu)申请的帧缓冲中,再通过液晶显示屏(liquidcrystaldisplay,lcd)或硬件显示输出模块(onscreendisplay,osd)输出显示到屏幕上,这种方式的缺点是视频显示输出绝大部分的工作均由surfaceflinger和gpu完成,当视频源分辨率变大(1080p以上)时,所需申请的帧缓冲内存空间急剧增加,gpu和中央处理器(centralprocessingunit,cpu)占用率很高,导致帧率很难提上去。

图2为现有技术的另一种信息输出显示方法的流程示意图。如图2所示,这种输出显示方法的前面内容同上述方法,后面是把填充数据后的视频层和图形层通过surfaceflinger并依照z-order信息混合、叠加输出到hwcomposer(android系统中的显示框架)中,再通过显示的硬件模块,如osd进行混合、叠加输出到屏幕,这种方式相对于第一种方式,虽然能减轻gpu和cpu的负担且能提升帧率,但受制于硬件模块,当需要显示的层数超过hwcomposer硬件模块所能混合叠加的层数时,显示输出效率会急剧下降,且对部分特殊图层,如暗层(dimlayer)无法混合叠加。

图3为现有技术的又一种信息输出显示方法的流程示意图。如图3所示,这种输出显示方法的前面内容同第一种方法,后面则是将视频层单独输出显示的硬件模块,比如osd,而不通过android标准的surfaceflinger;图形层依然会通过surfaceflinger输出到gpu,再输出到显示的硬件模块上,这种方法能很大程度地提高视频输出和显示效率,但由于视频层未能和图形层一起经过surfaceflinger的计算,无法将视频层显示到屏幕上想要的位置。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

图4为本发明实施例提供的一种信息输出显示方法的流程示意图。如图4所示,该方法包括以下步骤:

步骤101、计算视频层和图像层的混合叠加显示参数。其中,视频层和图像层分别是填充数据后的视频层和填充数据后的图像层。

具体的,步骤101计算视频层和图像层的混合叠加显示参数可以是由信息输出显示装置来实现的;视频层可以是一个或多个,图像层也可以是一个或多个,当视频层为多个时,最终输出到屏幕上的内容是画中画的显示形式。

需要说明的是,混合叠加显示参数包括视频层、图像层的显示位置参数,以及视频层、图像层的可视区域、透明区域的显示参数等。

步骤102、筛选出视频层和图像层中的第一部分图像层。

具体的,步骤102筛选出视频层和图像层中的第一部分图像层可以是由信息输出显示装置来实现的;步骤102要实现在视频层和图像层叠加的区域中筛选出填充数据后的视频层可以预先将视频层缓冲区进行处理,处理的方法可以是标记的方法,也可以通过其他方法;而由于视频层和图像层是叠加在一起的,无法将所有的图像层与视频层分离开,因此,在筛选过程中,一部分图像层无法避免地被筛选出来了,将这一部分的图像层记为第一部分图像层,将除了第一部分图像层的图像层记为第二部分图像层,而为了尽可能减少无法避免被筛选出来的图像层,第一部分图像层的数量越少越好。

步骤103、输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器。其中,图像层包括第一部分图像层和第二部分图像层;第一处理器为视频和图像的混合叠加处理器,第二处理器为图像混合叠加处理器。

具体的,步骤103输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器可以是由信息输出显示装置来实现的;将筛选出来的视频层和第一部分图像层输出至视频和图像的混合叠加处理器,而将第二部分图像层先输出至图像混合叠加处理器,经过混合叠加处理器对第二部分的图像层进行预先的叠加混合,再输出至视频和图像的混合叠加处理器,与之前输出的视频层和第一部分图像层进行最终的混合叠加。

需要说明的是,第一处理器可以是gpu,第二处理器可以是osd模块。

步骤104、根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层。

具体的,步骤104根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层可以是由信息输出显示装置来实现的。

本发明实施例所提供的信息输出显示方法,能够计算视频层和图像层的混合叠加显示参数,筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

图5为本发明实施例提供的另一种信息输出显示方法的流程示意图。如图5所示,该方法包括以下步骤:

步骤201、信息输出显示装置通过第一接口为待处理数据的视频层分配至少一个视频层缓冲区,通过第二接口为待处理数据的图像层分配至少一个图像层缓冲区。

需要说明的是,步骤201为待处理数据的视频层分配至少一个视频层缓冲区,为待处理数据的图像层至少一个图像层缓冲区时,视频层和图像层中还并没填充具体数据。

还需要说明的,由于后续步骤要将视频层筛选出来,从而需要对视频缓冲区进行某些预先处理以保证根据处理后的结果就能将视频层筛选出来,因此第一接口在设计时要能够支持对视频缓冲区进行的预先处理,而在不对图像层缓冲区进行处理的情况下,第二接口就是原生接口。

步骤202、信息输出显示装置填充待处理数据的视频数据到视频层缓冲区中,并填充待处理数据的图像数据到图像层缓冲区中。

具体的,若待处理数据的视频层为一个,则填充待处理数据的视频数据到该视频层的一个或多个视频层缓冲区内;若待处理数据的视频层为多个,则填充待处理数据的视频数据到对应视频层的一个或多个视频层缓冲区内。

步骤203、信息输出显示装置填充视频层缓冲区的视频数据到对应的视频层中,并填充图像层缓冲区的图像数据到对应的图像层中,得到填充数据后的视频层和填充数据后的图像层。

需要说明的是,在实际应用中,信息输出显示装置会根据每一帧要显示的内容将视频层缓冲区中的数据填充到对应的视频层中,将图像层缓冲区中的数据填充到对应的图像层中。

具体的,若待处理数据的视频层为一个,则在视频层缓冲区中选择一个视频层缓冲区,将该视频层缓冲区中的数据填充到该视频层中;若待处理数据的视频层为多个,则在每类视频层缓冲区中各选择一个视频层缓冲区,将这些视频层缓冲区中的数据分别填充到对应的视频层中,其中,一类视频层缓冲区对应一个视频层,一类视频层缓冲区中由一个或多个视频层缓冲区组成。

步骤204、信息输出显示装置计算视频层和图像层的混合叠加显示参数。其中,视频层和图像层分别是填充数据后的视频层和填充数据后的图像层。

步骤205、信息输出显示装置筛选出视频层和图像层中的第一部分图像层。

步骤206、信息输出显示装置输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器。其中,图像层包括第一部分图像层和第二部分图像层;第一处理器为视频和图像的混合叠加处理器,第二处理器为图像混合叠加处理器。

步骤207、信息输出显示装置根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层。

需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参照其它实施例中的描述,此处不再赘述。

本发明实施例所提供的信息输出显示方法,能够通过不同接口分别为待处理数据的视频层和图像层分配视频层缓冲区和图像层缓冲区,分别填充视频数据和图像数据到视频层缓冲区和图像层缓冲区中,再填充视频层缓冲区中的数据和图像层缓冲区中的数据到相应的视频层和图像层中,然后计算视频层和图像层的混合叠加显示参数,筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

图6为本发明实施例提供的又一种信息输出显示方法的流程示意图。如图6所示,该方法包括以下步骤:

步骤301、信息输出显示装置通过第一接口为待处理数据的视频层分配至少一个视频层缓冲区,通过第二接口为待处理数据的图像层分配至少一个图像层缓冲区。

步骤302、信息输出显示装置通过第一接口对视频层缓冲区进行标记。

步骤303、信息输出显示装置填充待处理数据的视频数据到视频层缓冲区中,并填充待处理数据的图像数据到图像层缓冲区中。

步骤304、信息输出显示装置填充视频层缓冲区的视频数据到对应的视频层中,并填充图像层缓冲区的图像数据到对应的图像层中,得到填充数据后的视频层和填充数据后的图像层。

需要说明的是,在填充视频层缓冲区的视频数据到对应的视频层中,视频层缓冲区的标记会随之标记到视频层中。

步骤305、信息输出显示装置计算视频层和图像层的混合叠加显示参数。

步骤306、信息输出显示装置获取视频层和图像层叠加的z-order信息。

步骤307、信息输出显示装置根据视频层缓冲区的标记和z-order信息筛选出视频层和图像层中的第一部分图像层。

具体的,步骤304在填充视频层缓冲区的视频数据到对应的视频层中,视频层缓冲区的标记会随之标记到视频层中,相应的,视频层就会带有标记,也就是说在对应的视频层中填充的是那个视频层缓冲区的视频数据,视频层就会带有被用来填充的视频层缓冲区的标记,因此,根据一个或多个标记,就能筛选出一个或多个填充数据后的视频层。

步骤308、信息输出显示装置输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器。其中,图像层包括第一部分图像层和第二部分图像层;第一处理器为视频和图像的混合叠加处理器,第二处理器为图像混合叠加处理器。

步骤309、信息输出显示装置根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层。

本发明实施例所提供的信息输出显示方法,能够通过不同接口分别为待处理数据的视频层和图像层分配视频层缓冲区和图像层缓冲区并且为视频层缓冲区进行标记,分别填充视频数据和图像数据到视频层缓冲区和图像层缓冲区中,再填充视频层缓冲区中的数据和图像层缓冲区中的数据到相应的视频层和图像层中,然后计算视频层和图像层的混合叠加显示参数,根据视频层缓冲区的标记和z-order信息筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

图7为本发明实施例提供的又一种信息输出显示方法的流程示意图。如图7所示,该方法包括以下步骤:

步骤401、信息输出显示装置通过第一接口为待处理数据的视频层分配至少一个视频层缓冲区,通过第二接口为待处理数据的图像层分配至少一个图像层缓冲区。

步骤402、信息输出显示装置通过第一接口对视频层缓冲区进行标记。

步骤403、信息输出显示装置填充待处理数据的视频数据到视频层缓冲区中,并填充待处理数据的图像数据到图像层缓冲区中。

步骤404、信息输出显示装置填充视频层缓冲区的视频数据到对应的视频层中,并填充图像层缓冲区的图像数据到对应的图像层中,得到填充数据后的视频层和填充数据后的图像层。

步骤405、信息输出显示装置计算视频层和图像层的混合叠加显示参数。

步骤406、信息输出显示装置获取视频层和图像层叠加的z-order信息。

步骤407、信息输出显示装置根据视频层缓冲区的标记筛选出视频层。

步骤408、信息输出显示装置根据视频层缓冲区的标记和z-order信息,在视频层和图像层的混合区域内获取位于最上层视频层上面的图像层的个数和位于最下层视频层下面的图像层的个数。

具体的,在视频层和图像层的混合区域内,根据视频层的标记和z-order信息找到视频层中最上层的视频层,获取位于该视频层上面的图像层个数,根据视频层的标记和z-order信息找到视频层中最下层的视频层,获取位于该视频层下面的图像层个数。

步骤409、信息输出显示装置比较位于最上层视频层上的图像层的个数和位于最下层视频层下的图像层的个数的大小。

步骤410、信息输出显示装置将位于最上层视频层上的图像层的个数和位于最下层视频层下的图像层的个数中个数小的图像层作为第一部分图像层。

步骤411、信息输出显示装置输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器。其中,图像层包括第一部分图像层和第二部分图像层;第一处理器为视频和图像的混合叠加处理器,第二处理器为图像混合叠加处理器。

步骤412、信息输出显示装置根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层。

需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参照其它实施例中的描述,此处不再赘述。

本发明实施例所提供的信息输出显示方法,能够通过不同接口分别为待处理数据的视频层和图像层分配视频层缓冲区和图像层缓冲区并且为视频层缓冲区进行标记,分别填充视频数据和图像数据到视频层缓冲区和图像层缓冲区中,再填充视频层缓冲区中的数据和图像层缓冲区中的数据到相应的视频层和图像层中,然后计算视频层和图像层的混合叠加显示参数,根据视频层缓冲区的标记和z-order信息筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

本发明实施例提供一种信息输出显示装置,该装置可以应用于图4对应的方法实施中,图8为本发明实施例提供的一种信息输出显示装置的结构示意图,如图8所示,该装置5包括:

计算模块51,用于计算视频层和图像层的混合叠加显示参数;其中,视频层和图像层分别是填充数据后的视频层和填充数据后的图像层。

筛选模块52,用于筛选出视频层和图像层中的第一部分图像层。

输出模块53,用于输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器。其中,图像层包括第一部分图像层和第二部分图像层;第一处理器为视频和图像的混合叠加处理器,第二处理器为图像混合叠加处理器。

显示模块54,用于根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层。

本发明实施例所提供的信息输出显示装置,能够计算视频层和图像层的混合叠加显示参数,筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

进一步,图9为本发明实施例提供的另一种信息输出显示装置的结构示意图,如图9所示,该装置5还包括:

处理模块55,用于通过第一接口为待处理数据的视频层分配至少一个视频层缓冲区,通过第二接口为待处理数据的图像层分配至少一个图像层缓冲区,通过第一接口对视频层缓冲区进行标记。

填充模块56,用于填充待处理数据的视频数据到视频层缓冲区中,并填充待处理数据的图像数据到图像层缓冲区中;填充视频层缓冲区的视频数据到对应的视频层中,并填充图像层缓冲区的图像数据到对应的图像层中,得到填充数据后的视频层和填充数据后的图像层。

进一步,图10为本发明实施例提供的又一种信息输出显示装置的结构示意图,如图10所示,该装置5还包括:

获取模块57,用于获取视频层和图像层叠加的z-order信息。

处理模块55,还用于通过第一接口对视频层缓冲区进行标记。

筛选模块52,具体用于根据视频层缓冲区的标记和z-order信息筛选出视频层和图像层中的第一部分图像层。

进一步,图11为本发明实施例提供的又一种信息输出显示装置的结构示意图,如图11所示,该装置5的筛选模块52包括:

筛选单元521,用于根据视频层缓冲区的标记筛选出视频层;

获取单元522,用于根据视频层缓冲区的标记和z-order信息,在视频层和图像层的混合区域内获取位于最上层视频层上面的图像层的个数和位于最下层视频层下面的图像层的个数;

比较单元523,用于比较位于最上层视频层上的图像层的个数和位于最下层视频层下的图像层的个数的大小;

处理单元524,用于将位于最上层视频层上的图像层的个数和位于最下层视频层下的图像层的个数中个数小的图像层作为第一部分图像层。

需要说明的是,本实施例中各个模块和单元之间的交互过程,可以参照图4~7对应的实施例提供的一种信息输出显示方法,此处不再赘述。

本发明实施例所提供的信息输出显示装置,能够通过不同接口分别为待处理数据的视频层和图像层分配视频层缓冲区和图像层缓冲区并且为视频层缓冲区进行标记,分别填充视频数据和图像数据到视频层缓冲区和图像层缓冲区中,再填充视频层缓冲区中的数据和图像层缓冲区中的数据到相应的视频层和图像层中,然后计算视频层和图像层的混合叠加显示参数,根据视频层缓冲区的标记和z-order信息筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

在实际应用中,所述计算模块51、筛选模块52、筛选单元521、获取单元522、比较单元523、处理单元524、输出模块53、显示模块54、处理模块55、填充模块56和获取模块57均可由位于信息输出显示装置中的cpu、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

本发明提供的信息输出显示方法,应用于android平台,具体包括以下步骤:

步骤一、在gralloc模块添加一接口,命名这一接口为gralloc_alloc_vpu,通过接口gralloc_alloc_vpu为视频层分配视频层缓冲区,并为每个视频缓冲区创建一个buffer_handle_t的结构体;通过android系统的原生接口gralloc_alloc_buffer为图像层分配图像层缓冲区,并为每个图像层缓冲区创建一个buffer_handle_t的结构体。

步骤二、由mediaserver管理填充视频数据到相应的视频层缓冲区中,填充图像数据到相应的图像层缓冲区中,同时用一变量标记视频层缓冲区,在本实施例中,将这个变量命名为usage,然后将变量usage存储在对应的视频层缓冲区结构体的buffer_handle_t中,最后将填充数据后的视频层缓冲区和填充数据后的图像层缓冲区一起输出到surfaceflinger。

步骤三、surfaceflinger计算视频层和图像层的混合叠加参数以及z-order信息,然后调用hwcomposer的prepare接口。

步骤四、在prepare接口中,根据视频层缓冲区结构体的buffer_handle_t中的变量usage,和视频层、图像层的z-order信息,筛选出视频层,将视频层的结构体中的compositiontype成员变量置位成hwc_overlay(宏定义),然后统计位置位于最上层视频层上面的图像层的个数和位于最下层视频层下面的图像层的个数,将个数小的图形层部分的结构体中的compositiontype成员变量也置位成hwc_overlay(宏定义),且将视频层和这部分图像层打成封包;将其余的图形层的结构体中的compositiontype成员变量则置成hwc_framebuffer(宏定义)。

步骤五、在surfaceflinger中调用hwcomposer的commit接口,将打成封包的视频层和图像层输出到osd模块,然后调用gpu对其余图像层进行混合叠加再输出到osd模块。

步骤六、osd模块将各层的buffer数据进行混合叠加,输出到显示装置。

本发明实施例所提供的信息输出显示方法,能够通过不同接口分别为待处理数据的视频层和图像层分配视频层缓冲区和图像层缓冲区并且为视频层缓冲区进行标记,分别填充视频数据和图像数据到视频层缓冲区和图像层缓冲区中,再填充视频层缓冲区中的数据和图像层缓冲区中的数据到相应的视频层和图像层中,然后计算视频层和图像层的混合叠加显示参数,根据视频层缓冲区的标记和z-order信息筛选出视频层和图像层中的第一部分图像层,输出视频层和第一部分图像层至第一处理器,依次输出第二部分图像层至第二处理器和第一处理器,根据混合叠加显示参数显示经过第一处理器处理的视频层、第一部分图像层以及第二部分图像层;这样,实现了对视频层以及位置不同的图形层加以筛选区别,送至不同的处理器进行混合叠加,再根据计算的混合叠加显示参数将视频层和图像层显示到屏幕的指定位置,从而节省了总线带宽,提高了系统播放视频时的帧率,实现了视频位置的任意输出,同时,显著减少了设备的耗电量、也提升了用户体验。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1