Osd画面保护方法及装置制造方法

文档序号:7817945阅读:170来源:国知局
Osd画面保护方法及装置制造方法
【专利摘要】本发明公开了一种OSD画面保护方法,包括:检测显示屏当前显示的图层层数;判断所述图层层数是否小于预设值;若是,则控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示;若否,则控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号直接传输给显示屏显示。本发明还公开了一种OSD画面保护装置。本发明提高了画面显示效果。
【专利说明】OSD画面保护方法及装置

【技术领域】
[0001]本发明涉及电视【技术领域】,尤其涉及0SD画面保护方法及装置。

【背景技术】
[0002]众所周知,现有电视系统上,通常采用MEMC功能实现对0SD画面的保护,在MEMC功能开启情况下,且第三方应用运行时,当存在0SD画面开启状态,将容易导致0SD画面产生变形、破碎和花掉等现象,导致画面显示效果较差。
[0003]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


【发明内容】

[0004]本发明的主要目的在于提高画面显示效果。
[0005]为实现上述目的,本发明提供的一种0SD画面保护方法包括以下步骤:
[0006]检测显示屏当前显示的图层层数;
[0007]判断所述图层层数是否小于预设值;
[0008]若是,则控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示;
[0009]若否,则控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号直接传输给显示屏显示。
[0010]优选地,所述检测显示屏当前显示的图层层数包括:
[0011]检测渲染显示图层数量;
[0012]将所述渲染显示图层数量赋值于用于数据传输的预置变量;
[0013]获取所述预置变量确定图层层数。
[0014]优选地,所述将渲染显示图层数量赋值于用于数据传输的预置变量之后还包括:
[0015]实时检测所述渲染显示图层是否存在新增或移除事件;
[0016]当存在新增或移除事件时,获取新增或移除的渲染显示图层的变化量;
[0017]根据所述变化量和检测渲染显示图层数量调整所述预置变量。
[0018]优选地,所述检测显示屏当前显示的图层层数包括:
[0019]检测G0P层输出的显示图层数量;
[0020]根据所述显示图层数量计算图层层数。
[0021]优选地,所述检测显示屏当前显示的图层层数之前还包括:
[0022]侦测是否接收到MEMC功能开启指令;
[0023]当接收到MEMC功能开启指令时,执行所述检测显示屏当前显示的图层层数的步骤。
[0024]此外,为实现上述目的,本发明还提供一种0SD画面保护装置包括:
[0025]检测模块,用于检测显示屏当前显示的图层层数;
[0026]判断模块,用于判断所述图层层数是否小于预设值;
[0027]控制模块用于,当所述图层层数小于预设值时,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示;当所述图层层数大于或等于预设值时,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号直接传输给显示屏显示。
[0028]优选地,所述检测模块包括:
[0029]第一检测单元,用于检测渲染显示图层数量;
[0030]赋值单元,用于将所述渲染显示图层数量赋值于用于数据传输的预置变量;
[0031]确定单元,用于获取所述预置变量确定图层层数。
[0032]优选地,所述检测模块还包括:
[0033]第二检测单元,用于实时检测所述渲染显示图层是否存在新增或移除事件;
[0034]获取单元,用于当存在新增或移除事件时,获取新增或移除的渲染显示图层的变化量;
[0035]调整单元,用于根据所述变化量和检测渲染显示图层数量调整所述预置变量。
[0036]优选地,所述检测模块包括:
[0037]第三检测单元,用于检测G0P层输出的显示图层数量;
[0038]计算单元,用于根据所述显示图层数量计算图层层数。
[0039]优选地,所述0SD画面保护装置还包括:
[0040]侦测模块,用于侦测是否接收到MEMC功能开启指令;
[0041]所述检测模块,具体用于当接收到MEMC功能开启指令时,执行所述检测显示屏当前显示的图层层数的操作。
[0042]本发明实施例通过检测显示屏当前显示的图层层数,在图层层数小于预设值时,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示,实现0SD保护;在图层层数大于或等于预设值时,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号直接传输给显示屏显示;从而在第三方应用运行时,防止0SD图像产生变形、破碎和花掉等情况的出现。因此本发明可以实现MEMC功能的开启和关闭,防止由于第三方应用的运行对0SD图像的影响,提高了画面显示的效果。

【专利附图】

【附图说明】
[0043]图1为本发明0SD画面保护方法一实施例的流程示意图;
[0044]图2为图1中检测图层层数一实施例的细化流程示意图;
[0045]图3为图1中检测图层层数另一实施例的细化流程示意图;
[0046]图4为图1中检测图层层数又一实施例的细化流程示意图;
[0047]图5为本发明0SD画面保护方法另一实施例的流程示意图;
[0048]图6为本发明0SD画面保护控装置一实施例的功能模块示意图;
[0049]图7为图6中检测模块一实施例的细化功能模块示意图;
[0050]图8为图6中检测模块另一实施例的细化功能模块示意图;
[0051]图9为图6中检测模块又一实施例的细化功能模块示意图;
[0052]图10为本发明0SD画面保护控装置另一实施例的功能模块示意图。
[0053]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

【具体实施方式】
[0054]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0055]本发明提供一种0SD画面保护方法,参照图1,在一实施例中,该0SD画面保护方法包括:
[0056]步骤S10,检测显示屏当前显示的图层层数;
[0057]步骤S20,判断所述图层层数是否小于预设值;若是,则执行步骤S30,若否,则执行步骤S40 ;
[0058]步骤S30,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示;
[0059]步骤S40,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号直接传输给显示屏显示。
[0060]本实施实例提供的0SD(屏幕菜单式调节方式)画面保护方法主要应用于电视机中,用于对显示画面进行处理。具体地,该电视系统为安卓系统。上述MEMC(Mot1nEstimate and Mot1n Compensat1n)处理模块为运动估计和运动补偿处理芯片,是液晶电视中运用的画质补偿技术,该技术的应用可以解决运动画面抖动、运动拖尾等问题。上述预设值的大小根据实际需要进行设置,本实施例中,上述预设值为3。具体地,在安卓系统中,当未存在第三方应用运行时,液晶显示屏上显示的图层层数为两层,第一层(即最底层)为视频信号层,第二层为电视机区域透明层(即Android系统所运行的所带的层),用以圈定视频信号的显示区域,即第二层透明对应的区域才能显示第一层视频信号的内容,明显的,对这两层采用MEMC功能时,显示不会受影响。
[0061]应当说明的是,在电视系统中包括G0P层绘制并处理系统中的0SD信号(包括第三方应用),V0P层用于处理系统中的视频信号、混合层用于混合V0P和G0P的信号,将其混合后转为符合V-BY-0NE传输;而存储器用于存储系统运行进程、G0P和V0P等内容。当MEMC处理模块功能关闭时,经过处理后的视频信号和0SD信号采用V-BY-0NE标准传输信号混合后传输给MEMC处理模块,MEMC处理模块对将信号传输给显示屏显示。当MEMC处理模块功能开启时,经过处理后的视频信号和0SD信号采用V-BY-0NE标准传输信号混合后传输给MEMC处理模块,MEMC处理模块对该信号进行相应处理后传输给显示屏显示。具体地,该MEMC处理模块处理为采用MEMC技术对信号倍频后再进行合并处理。
[0062]在电视系统的MEMC功能处于打开状态的时候,系统即对图层层数进行检测判断。判断所述图层层数是否小于3,当图层层数小于3时,即为两层时,则确定没有运行第三方应用,此时可输出控制信号控制MEMC处理模块的MEMC功能关闭。当图层层数大于或等于3时,则判定存在第三应用,可输出控制信号控制MEMC处理模块的MEMC功能开启。
[0063]本发明实施例通过检测显示屏当前显示的图层层数,在图层层数小于预设值时,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示,实现0SD保护;在图层层数大于或等于预设值时,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号直接传输给显示屏显示;从而在第三方应用运行时,防止OSD图像产生变形、破碎和花掉等情况的出现。因此本发明可以实现MEMC功能的开启和关闭,防止由于第三方应用的运行对OSD图像的影响,提高了画面显示的效果。
[0064]具体地,在系统使用第三方应用的情况下,由于Π不是系统自身画出来的,所以无法通过顶层应用直接判断图层层数。检测是在android⑶I系统SurfaceFlinger的HWComposer里面中完成,在系统中,通过调用其中描述层特性的结构体中的描述层数变量的值,得到当前显示的层数。以下实施例中,将对图层层数的检测作出详细说明。
[0065]进一步地,参照图2,提供了本发明0SD画面保护方法第二实施例,本实施例中,上述步骤S10具体包括:
[0066]步骤S101,检测渲染显示图层数量;
[0067]步骤S102,将所述渲染显示图层数量赋值于用于数据传输的预置变量;
[0068]步骤S103,获取所述预置变量确定图层层数。
[0069]在Android系统中,根据其系统的特性机制,显示图层层数识别的核心服务是SurfaceFlinger, SurfaceFlinger为系统整个UI的管理者,负责渲染系统的UI (即各个应用程序的Π),并且负责管理系统的帧缓冲区设备。具体地,在Android图形系统中一个重要的概念和线索是surface。View及其子类(如TextView,Button等UI)要画在surface上。每个surface创建一个Canvas对象(但属性时常改变),用来管理view在surface上的绘图操作。每个Canvas对象对应一个bitmap(位图),存储画在surface上的内容。每个 surface 通常对应两个 buffer、一个 front buffer>一个 back buffer。每个 surface 又对应一个 layer, SurfaceFlinger 负责将各个 layer 的 front buffer 合成(composite)绘制到屏幕上。即各layer的front buffer中的内容即为需要显示在屏幕上的内容,backbuffer为不需要显示的内容。Android应用程序与SurfaceFlinger服务都有一个连接,这个连接都是通过一个类型为Client的Binder对象(进程之间传递的数据)来描述的。这些Client对象是Android应用程序连接到SurfaceFlinger服务的时候由SurfaceFlinger服务创建的,而当Android应用程序成功连接到SurfaceFlinger服务之后,就可以获得一个对应的Client对象的Binder代理接口了。有了这些Binder代理接口之后,Android应用程序就可以通知SurfaceFlinger服务来绘制自己的UI。
[0070]具体地,本实施例中,首先是创建一个到SurfaceFlinger服务的连接,接着再通过这个连接来创建一个Surface,最后请求SurfaceFlinger服务渲染该Surface。当Layer的绘制渲染完成后,将会通过预置变量的形式返回图层的数量值。
[0071]进一步地,参照图3,提供了本发明0SD画面保护方法第三实施例,基于上述第二实施例,本实施例中所述步骤S102之后还包括:
[0072]步骤S104,实时检测所述渲染显示图层是否存在新增或移除事件;
[0073]步骤S105,当存在新增或移除事件时,获取新增或移除的渲染显示图层的变化量;
[0074]步骤S106,根据所述变化量和检测渲染显示图层数量调整所述预置变量。
[0075]本实施例中,SurfaceFl inger对整个Layer的实时变更做相应的检测,包括新增Layer层的检测和移除Layer层的检测,并进一步的实时返回图层总层数值numHwLayers (即上述预置变量)。当获取到该numHwLayers产生变化时,将返回执行步骤S20。
[0076]具体地,新增layer检测为:在SurfaceFlinger类中设置两个成员变量mDrawingState 与 mCurrentState,这两种类型均为为 State, mDrawingState 是用来描述SufaceFlinger服务的上一次渲染状态的,mCurrentState指向了一个State对象,用来描述SufaceFlinger服务的当前状态。通过这两个成员变量的比较,我们就可以知道系统显示屏的哪一个属性发生了变化。SurfaceFlinger中设置一个描述Layer状态的的State类,State类的成员变量layersSortedByZ是一个类型LayerVector的向量,里面保存的是SurfaceFlinger服务在某一个状态下所拥有的应用程序窗口,因此,当SurfaceFlinger类的成员变量mCurrentState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量的大小值大于SurfaceFlinger类的成员变量mDrawingState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量的大小值时,就说明系统新增了应用程序窗口。在这种情况下,我们就需要将SurfaceFlinger类的成员变量mVisibleReg1nsDirty的值设置为true,以表示我们需要重新计算各个应用程序窗口的可见区域。
[0077]移除layer检测为:SurfaceFlinger类的成员变量mLayersRemoved用来描述是否有应用程序窗口被移除了。如果有有应用程序窗口被移除的话,那么这个成员变量的值就会等于true。在这种情况下,我们就需要是哪些应用程序窗口被移除了。计算的方法如下,如果一个应用程序窗口存在于SurfaceFlinger类的成员变量mDrawingState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量中,但是不存在于SurfaceFlinger类的成员变量mCurrentState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量中,那么就说明这个应用程序窗口被移除了,因此,就需要将它保存输出参数ditchedLayers所描述的一个向量中,以便可以返回给上一步来处理。SurfaceFlinger类的成员变量mDirtyReg1nRemovedLayer用来描述那些被移除了的应用程序窗口所占用的区域,因此,每当我们移除一个应用程序窗口的时候,都需要将它所占用的区域增加到SurfaceFlinger类的成员变量mDirtyReg1nRemovedLayer所描述的一个区域去。
[0078]当处理完成那些被移除的应用程序窗口之后,我们就需要将SurfaceFlinger类的成员变量mLayersRemoved的值设置为false,并且将SurfaceFlinger类的成员变量mVisibleReg1nsDirty的值设置为true,以表示我们需要重新计算现存的各个应用程序窗口的可见区域。
[0079]进一步地,参照图4,提供了本发明0SD画面保护方法第四实施例,本实施例中,上述步骤S10包括:
[0080]步骤S107,检测G0P层输出的显示图层数量;
[0081]步骤S108,根据所述显示图层数量计算图层层数。
[0082]本实施例中,如果当前电视通道为AV,那么V0P层中的内容为AV中视频的内容,如果为HDMI,即V0P层中的内容为HDMI中视频的内容。而G0P层在SurfaceFlinger管理下,将需要显示的层才传输给混合层进行混合。因此可以通过判断G0P层是否有层输出,如果有图层输出时,则上述图层的总数将大于或等于上述预设值,此时则可控制MEMC处理模块关闭MEMC功能。当无图层输出时,则上述图层的总数将小于上述预设值,此时则可控制MEMC处理模块开启MEMC功能。
[0083]进一步地,参照图5,提供了本发明0SD画面保护方法第五实施例,本实施例中,上述步骤S10之前还包括:
[0084]步骤S50,侦测是否接收到MEMC功能开启指令;
[0085]当接收到MEMC功能开启指令时,执行所述检测显示屏当前显示的图层层数的步骤。
[0086]本实施例中,可通过遥控器、键盘、智能手机等输入MEMC功能开启指令,在接收到该MEMC功能开启指令时,才对显示屏当前显示的图层层数进检测,从而可选择性控制,增加使用的灵活性。
[0087]本发明还提供一种0SD画面保护装置,参照图6,在一实施例中,本发明提供的0SD画面保护装置包括:
[0088]检测模块100,用于检测显示屏当前显示的图层层数;
[0089]判断模块200,用于判断所述图层层数是否小于预设值;
[0090]控制模块300用于,当所述图层层数小于预设值时,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示;当所述图层层数大于或等于预设值时,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的0SD信号与视频信号混合后的信号直接传输给显示屏显示。
[0091]本实施实例提供的0SD(屏幕菜单式调节方式)画面保护装置主要应用于电视机中,用于对显示画面进行处理。具体地,该电视系统为安卓系统。上述MEMC(Mot1nEstimate and Mot1n Compensat1n)处理模块为运动估计和运动补偿处理芯片,是液晶电视中运用的画质补偿技术,该技术的应用可以解决运动画面抖动、运动拖尾等问题。上述预设值的大小根据实际需要进行设置,本实施例中,上述预设值为3。具体地,在安卓系统中,当未存在第三方应用运行时,液晶显示屏上显示的图层层数为两层,第一层(即最底层)为视频信号层,第二层为电视机区域透明层(即Android系统所运行的所带的层),用以圈定视频信号的显示区域,即第二层透明对应的区域才能显示第一层视频信号的内容,明显的,对这两层采用MEMC功能时,显示不会受影响。
[0092]应当说明的是,在电视系统中包括G0P层绘制并处理系统中的0SD信号(包括第三方应用),V0P层用于处理系统中的视频信号、混合层用于混合V0P和G0P的信号,将其混合后转为符合V-BY-0NE传输;而存储器用于存储系统运行进程、G0P和V0P等内容。当MEMC处理模块功能关闭时,经过处理后的视频信号和0SD信号采用V-BY-0NE标准传输信号混合后传输给MEMC处理模块,MEMC处理模块对将信号传输给显示屏显示。当MEMC处理模块功能开启时,经过处理后的视频信号和0SD信号采用V-BY-0NE标准传输信号混合后传输给MEMC处理模块,MEMC处理模块对该信号进行相应处理后传输给显示屏显示。具体地,该MEMC处理模块处理为采用MEMC技术对信号倍频后再进行合并处理。
[0093]在电视系统的MEMC功能处于打开状态的时候,系统即对图层层数进行检测判断。判断所述图层层数是否小于3,当图层层数小于3时,即为两层时,则确定没有运行第三方应用,此时可输出控制信号控制MEMC处理模块的MEMC功能关闭。当图层层数大于或等于3时,则判定存在第三应用,可输出控制信号控制MEMC处理模块的MEMC功能开启。
[0094]本发明实施例通过检测显示屏当前显示的图层层数,在图层层数小于预设值时,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示,实现OSD保护;在图层层数大于或等于预设值时,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号直接传输给显示屏显示;从而在第三方应用运行时,防止OSD图像产生变形、破碎和花掉等情况的出现。因此本发明可以实现MEMC功能的开启和关闭,防止由于第三方应用的运行对OSD图像的影响,提高了画面显示的效果。
[0095]具体地,在系统使用第三方应用的情况下,由于Π不是系统自身画出来的,所以无法通过顶层应用直接判断图层层数。检测是在android⑶I系统SurfaceFlinger的HWComposer里面中完成,在系统中,通过调用其中描述层特性的结构体中的描述层数变量的值,得到当前显示的层数。以下实施例中,将对图层层数的检测作出详细说明。
[0096]进一步地,参照图7,提供了本发明0SD画面保护装置第二实施例,本实施例中,上述检测模块100包括:
[0097]第一检测单元101,用于检测渲染显示图层数量;
[0098]赋值单元102,用于将所述渲染显示图层数量赋值于用于数据传输的预置变量;
[0099]确定单元103,用于获取所述预置变量确定图层层数。
[0100]在Android系统中,根据其系统的特性机制,显示图层层数识别的核心服务是SurfaceFlinger, SurfaceFlinger为系统整个UI的管理者,负责渲染系统的UI (即各个应用程序的Π),并且负责管理系统的帧缓冲区设备。具体地,在Android图形系统中一个重要的概念和线索是surface。View及其子类(如TextView,Button等UI)要画在surface上。每个surface创建一个Canvas对象(但属性时常改变),用来管理view在surface上的绘图操作。每个Canvas对象对应一个bitmap (位图),存储画在surface上的内容。每个 surface 通常对应两个 buffer、一个 front buffer>一个 back buffer。每个 surface 又对应一个 layer, SurfaceFlinger 负责将各个 layer 的 front buffer 合成(composite)绘制到屏幕上。即各layer的front buffer中的内容即为需要显示在屏幕上的内容,backbuffer为不需要显示的内容。Android应用程序与SurfaceFlinger服务都有一个连接,这个连接都是通过一个类型为Client的Binder对象(进程之间传递的数据)来描述的。这些Client对象是Android应用程序连接到SurfaceFlinger服务的时候由SurfaceFlinger服务创建的,而当Android应用程序成功连接到SurfaceFlinger服务之后,就可以获得一个对应的Client对象的Binder代理接口了。有了这些Binder代理接口之后,Android应用程序就可以通知SurfaceFlinger服务来绘制自己的UI。
[0101]具体地,本实施例中,首先是创建一个到SurfaceFlinger服务的连接,接着再通过这个连接来创建一个Surface,最后请求SurfaceFlinger服务渲染该Surface。当Layer的绘制渲染完成后,将会通过预置变量的形式返回图层的数量值。
[0102]进一步地,参照图8,提供了本发明0SD画面保护装置第三实施例,基于上述第二实施例,本实施例中,上述检测模块100还包括:
[0103]第二检测单元104,用于实时检测所述渲染显示图层是否存在新增或移除事件;
[0104]获取单元105,用于当存在新增或移除事件时,获取新增或移除的渲染显示图层的变化量;
[0105]调整单元106,用于根据所述变化量和检测渲染显示图层数量调整所述预置变量。
[0106]本实施例中,SurfaceFl inger对整个Layer的实时变更做相应的检测,包括新增Layer层的检测和移除Layer层的检测,并进一步的实时返回图层总层数值numHwLayers (即上述预置变量)。当获取到该numHwLayers产生变化时,将由判断模块200判断所述图层层数是否小于预设值。
[0107]具体地,新增layer检测为:在SurfaceFlinger类中设置两个成员变量mDrawingState 与 mCurrentState,这两种类型均为为 State, mDrawingState 是用来描述SufaceFlinger服务的上一次渲染状态的,mCurrentState指向了一个State对象,用来描述SufaceFlinger服务的当前状态。通过这两个成员变量的比较,我们就可以知道系统显示屏的哪一个属性发生了变化。SurfaceFlinger中设置一个描述Layer状态的的State类,State类的成员变量layersSortedByZ是一个类型LayerVector的向量,里面保存的是SurfaceFlinger服务在某一个状态下所拥有的应用程序窗口,因此,当SurfaceFlinger类的成员变量mCurrentState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量的大小值大于SurfaceFlinger类的成员变量mDrawingState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量的大小值时,就说明系统新增了应用程序窗口。在这种情况下,我们就需要将SurfaceFlinger类的成员变量mVisibleReg1nsDirty的值设置为true,以表示我们需要重新计算各个应用程序窗口的可见区域。
[0108]移除layer检测为:SurfaceFlinger类的成员变量mLayersRemoved用来描述是否有应用程序窗口被移除了。如果有有应用程序窗口被移除的话,那么这个成员变量的值就会等于true。在这种情况下,我们就需要是哪些应用程序窗口被移除了。计算的方法如下,如果一个应用程序窗口存在于SurfaceFlinger类的成员变量mDrawingState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量中,但是不存在于SurfaceFlinger类的成员变量mCurrentState所描述的一个State对象的成员变量layersSortedByZ所指向的一个向量中,那么就说明这个应用程序窗口被移除了,因此,就需要将它保存输出参数ditchedLayers所描述的一个向量中,以便可以返回给上一步来处理。SurfaceFlinger类的成员变量mDirtyReg1nRemovedLayer用来描述那些被移除了的应用程序窗口所占用的区域,因此,每当我们移除一个应用程序窗口的时候,都需要将它所占用的区域增加到SurfaceFlinger类的成员变量mDirtyReg1nRemovedLayer所描述的一个区域去。
[0109]当处理完成那些被移除的应用程序窗口之后,我们就需要将SurfaceFlinger类的成员变量mLayersRemoved的值设置为false,并且将SurfaceFlinger类的成员变量mVisibleReg1nsDirty的值设置为true,以表示我们需要重新计算现存的各个应用程序窗口的可见区域。
[0110]进一步地,参照图9,提供了本发明0SD画面保护方法第四实施例,本实施例中,上述检测模块100包括:
[0111]第三检测单元107,用于检测G0P层输出的显示图层数量;
[0112]计算单元108,用于根据所述显示图层数量计算图层层数。
[0113]本实施例中,如果当前电视通道为AV,那么V0P层中的内容为AV中视频的内容,如果为HDMI,即V0P层中的内容为HDMI中视频的内容。而G0P层在SurfaceFlinger管理下,将需要显示的层才传输给混合层进行混合。因此可以通过判断GOP层是否有层输出,如果有图层输出时,则上述图层的总数将大于或等于上述预设值,此时则可控制MEMC处理模块关闭MEMC功能。当无图层输出时,则上述图层的总数将小于上述预设值,此时则可控制MEMC处理模块开启MEMC功能。
[0114]进一步地,参照图10,提供了本发明0SD画面保护装置第五实施例,本实施例中,上述0SD画面保护装置还包括:
[0115]侦测模块400,用于侦测是否接收到MEMC功能开启指令;
[0116]所述检测模块100,具体用于当接收到MEMC功能开启指令时,执行所述检测显示屏当前显示的图层层数的操作。
[0117]本实施例中,可通过遥控器、键盘、智能手机等输入MEMC功能开启指令,在接收到该MEMC功能开启指令时,才对显示屏当前显示的图层层数进检测,从而可选择性控制,增加使用的灵活性。
[0118]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种OSD画面保护方法,其特征在于,所述OSD画面保护方法包括以下步骤: 检测显示屏当前显示的图层层数; 判断所述图层层数是否小于预设值; 若是,则控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示; 若否,则控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号直接传输给显示屏显示。
2.如权利要求1所述的OSD画面保护方法,其特征在于,所述检测显示屏当前显示的图层层数包括: 检测渲染显示图层数量; 将所述渲染显示图层数量赋值于用于数据传输的预置变量; 获取所述预置变量确定图层层数。
3.如权利要求2所述的OSD画面保护方法,其特征在于,所述将渲染显示图层数量赋值于用于数据传输的预置变量之后还包括: 实时检测所述渲染显示图层是否存在新增或移除事件; 当存在新增或移除事件时,获取新增或移除的渲染显示图层的变化量; 根据所述变化量和检测渲染显示图层数量调整所述预置变量。
4.如权利要求1所述的OSD画面保护方法,其特征在于,所述检测显示屏当前显示的图层层数包括: 检测GOP层输出的显示图层数量; 根据所述显示图层数量计算图层层数。
5.如权利要求1所述的OSD画面保护方法,其特征在于,所述检测显示屏当前显示的图层层数之前还包括: 侦测是否接收到MEMC功能开启指令; 当接收到MEMC功能开启指令时,执行所述检测显示屏当前显示的图层层数的步骤。
6.一种OSD画面保护装置,其特征在于,所述OSD画面保护装置包括: 检测模块,用于检测显示屏当前显示的图层层数; 判断模块,用于判断所述图层层数是否小于预设值; 控制模块用于,当所述图层层数小于预设值时,控制MEMC处理模块MEMC功能开启,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号进行相应处理后传输给显示屏显示;当所述图层层数大于或等于预设值时,控制MEMC处理模块MEMC功能关闭,以将MEMC处理模块接收到的OSD信号与视频信号混合后的信号直接传输给显示屏显示。
7.如权利要求6所述的OSD画面保护装置,其特征在于,所述检测模块包括: 第一检测单元,用于检测渲染显示图层数量; 赋值单元,用于将所述渲染显示图层数量赋值于用于数据传输的预置变量; 确定单元,用于获取所述预置变量确定图层层数。
8.如权利要求7所述的OSD画面保护装置,其特征在于,所述检测模块还包括: 第二检测单元,用于实时检测所述渲染显示图层是否存在新增或移除事件; 获取单元,用于当存在新增或移除事件时,获取新增或移除的渲染显示图层的变化量; 调整单元,用于根据所述变化量和检测渲染显示图层数量调整所述预置变量。
9.如权利要求6所述的OSD画面保护装置,其特征在于,所述检测模块包括: 第三检测单元,用于检测GOP层输出的显示图层数量; 计算单元,用于根据所述显示图层数量计算图层层数。
10.如权利要求6所述的OSD画面保护装置,其特征在于,所述OSD画面保护装置还包括: 侦测模块,用于侦测是否接收到MEMC功能开启指令; 所述检测模块,具体用于当接收到MEMC功能开启指令时,执行所述检测显示屏当前显示的图层层数的操作。
【文档编号】H04N21/431GK104363502SQ201410588459
【公开日】2015年2月18日 申请日期:2014年10月28日 优先权日:2014年10月28日
【发明者】余明火, 梁理城, 洪文生, 代庚辛 申请人:深圳创维-Rgb电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1