一种使用OSD加速实现硬件鼠标的方法技术

技术编号:7205493 阅读:531 留言:0更新日期:2012-04-11 18:40
一种使用OSD加速实现硬件鼠标的方法。是在没有硬件鼠标的设备上利用OSD加速实现硬件鼠标。解决途径如下:利用Overlay分层显示的特性,将鼠标光标内容和其他要显示的内容分层显示;先将此内存数据输出格式转换为ARGB8888格式;将鼠标光标内容和其他需要显示的内容分别送往Overlay指定层的显存中,并指定要显示的坐标区域;OSD硬件资源会利用alphablending特性,将各层数据进行混合显示。在此过程中,鼠标光标具有有效alpha值像素点不会被遮挡,组成了鼠标光标形状。本发明专利技术无需额外的内存及软件混合的开销,使得在无硬件鼠标资源的系统上实现了硬件鼠标的功能,提高了鼠标的性能。

【技术实现步骤摘要】

本专利技术涉及需要支持鼠标和具有OSD功能单元的系统,更具体的是在没有硬件鼠标的设备上利用OSD加速实现硬件鼠标的方法。
技术介绍
当前在嵌入式系统中,一般都会受到系统资源的限制,比如CPU运行频率较低以及总线带宽不足等的影响,这时候要求系统中的多任务保持高效运行,特别是在实时系统中保证任务稳定实时的完成,就有必要充分利用系统资源和优化设计,以减少不必要的系统消耗。当今多媒体应用在嵌入式系统的广泛应用,如手机多媒体应用、mp4播放器、手持电视播放器、平板电脑等都要求多媒体芯片能够支持Overlay的功能,以支持视频的快速高效的绘制。Overlay功能的基本特点是拥有独立的显存,这块显存会和系统显存通过硬件混合(OSD)生成最终的图像交给显示控制器输出。许多芯片产商都提供了多Overlay图层系统的芯片。其中OSD是完成Overlay图层混合的功能单元,图层位置的移动和根据像素透明度合成上下图层是其基本的两个功能。鼠标是嵌入式系统中常见和必要的设备之一。利用软件算法实现鼠标的移动绘制过程实际上是一个很耗资源的动作。据测试,鼠标在频繁的移动过程中需要占用60%以上的CPU,这样会严重影响其他任务的运行效率。而硬件鼠标是指以硬件的方式实现鼠标光标的显示,移动,隐藏等功能。使用硬件鼠标可使鼠标光标在移动过程中更加流畅。在不存在硬件鼠标资源的情况下,如何实现鼠标显示,移动,隐藏的流畅性就成为非常重要的一个环节。常规实现鼠标光标移动的做法为,鼠标光标内容和其他显示内容均在Overlay同一层显示,但此时需要通过软件算法将鼠标光标内容和其他内容进行混合, 然后才能在Overlay上显示。在采用软件算法混合的过程中,需要保存混合区域的显示内容;在鼠标光标发生变化时,还需要恢复移动前混合区域的显示内容,然后再在新位置进行混合。由此可见,当鼠标显示、移动时,上述做法需要不停的保存恢复要显示的数据,不仅占用了额外的内存,而且混合、恢复操作消耗了大量的时间,占用了大量的CPU资源,处理速度缓慢,严重影响了鼠标移动的视觉效果。
技术实现思路
本专利技术的目的是提供了一种利用OSD特性实现硬件鼠标的方法,在没有硬件鼠标的系统中实现鼠标显示、移动、隐藏的快速响应。—种使用OSD加速实现硬件鼠标的方法,其特征在于包含以下几个步骤第一步骤,利用Overlay分层显示的特性,将鼠标光标内容和其他要显示的内容分层显示。其中鼠标光标显示层处于Overlay的最上层。第二步骤,由于鼠标光标内容存储于指定内存区域中,需先将此内存数据输出格式转换为ARGB8888格式。转换过程必须根据鼠标的形状特点来设置合适的alpha位。其他显示内容的数据格式则无需关心。第三步骤,将鼠标光标内容和其他需要显示的内容分别送往Overlay指定层的显存中,并指定要显示的坐标区域。第四步骤,OSD硬件资源会利用alphablending特性,将各层数据进行混合显示。 在混合显示的过程中,鼠标光标具有有效alpha值像素点不会被遮挡。所有不被遮挡像素点就组成了鼠标光标形状。当鼠标发生移动时,混合显示的坐标区域发生变化,原位置不再需要回合显示,其他图层此刻就会显示在Overlay上,而在新位置区域,则通过alpha特性将鼠标光标显示到Overlay上。当需要隐藏鼠标时只需把鼠标显示层关闭即可。附图说明图1为鼠标移动示意图。图 2 为 ARGB8888 格式。具体实施例方式下面将结合附图进一步阐述本专利技术图1是典型鼠标移动示例,从屏幕A点移动到屏幕B点。图2为ARGB8888格式。A是指alpha即透明度值,R是red即红色像素值,G是 green即绿色像素值,B是blue即蓝色像素值。然后将鼠标像素转换为该格式像素,设置合适的alpha值,这样就可以实现鼠标透明的效果。利用OSD加速实现硬件鼠标的流程包括首先鼠标要使用一层Overlay图层,然后将鼠标内容格式设置为ARGB8888,再利用OSD通过合适的alpha值将各图层混合实现鼠标透明的效果从而实现硬件鼠标的功能。这种实现方式可以支持任意样式的鼠标,比如单色鼠标,彩色鼠标和动画鼠标等。OSD要将被鼠标遮挡的区域的图像进行混合,计算公式如下设鼠标图层像素为Fore,被鼠标遮挡图层为Back,合成后的图层为Result。Result = Fore*alpha/255+Back*(l-alpha/255)上述操作过程是本专利技术的一种典型的实施应用,对于本领域的一般技术人员,在上述实施例的基础上,可以做出多种变化,同样能实现本专利技术的目的。但是,这种变化显然是在本专利技术的权利要求书的保护范围内。权利要求1.一种使用OSD加速实现硬件鼠标的方法,其特征在于包含以下几个步骤第一步骤,利用Overlay分层显示的特性,将鼠标光标内容和其他要显示的内容分层显不。第二步骤,由于鼠标光标内容的存储格式转换为ARGB8888格式。 第三步骤,将鼠标光标内容和其他需要显示的内容分别送往Overlay指定层的显存中,并指定要显示的坐标区域。第四步骤,OSD硬件资源利用alphablending特性,将各层数据进行混合显示。2.如权利要求1所述的使用OSD加速实现硬件鼠标的方法,其特征在于所述第一步骤中,将鼠标光标内容和其他要显示的内容分层显示时,鼠标光标显示层处于Overlay的最上层。3.如权利要求1所述的使用OSD加速实现硬件鼠标的方法,其特征在于所述第二步骤中,将存储光标的内存数据输出格式转换为ARGB8888格式时,转换过程必须根据鼠标的形状特点来设置合适的alpha位。其他显示内容的数据格式则无需关心。4.如权利要求1所述的使用OSD加速实现硬件鼠标的方法,其特征在于所述第四步骤中,OSD硬件资源会利用alphablending特性,将各层数据进行混合显示。在混合显示的过程中,鼠标光标具有有效alpha值像素点不会被遮挡。所有不被遮挡像素点就组成了鼠标光标形状。当鼠标发生移动时,混合显示的坐标区域发生变化,原位置不再需要回合显示,其他图层此刻就会显示在Overlay上,而在新位置区域,则通过alpha 特性将鼠标光标显示到Overlay上。当需要隐藏鼠标时只需把鼠标显示层关闭即可。5.OSD要将被鼠标遮挡的区域的图像进行混合,计算公式如下设鼠标图层像素为i^ore,被鼠标遮挡图层为Back,合成后的图层为Result。Result = Fore*alpha/255+Back*(l-alpha/255)。全文摘要一种使用OSD加速实现硬件鼠标的方法。是在没有硬件鼠标的设备上利用OSD加速实现硬件鼠标。解决途径如下利用Overlay分层显示的特性,将鼠标光标内容和其他要显示的内容分层显示;先将此内存数据输出格式转换为ARGB8888格式;将鼠标光标内容和其他需要显示的内容分别送往Overlay指定层的显存中,并指定要显示的坐标区域;OSD硬件资源会利用alphablending特性,将各层数据进行混合显示。在此过程中,鼠标光标具有有效alpha值像素点不会被遮挡,组成了鼠标光标形状。本专利技术无需额外的内存及软件混合的开销,使得在无硬件鼠标资源的系统上实现了硬件鼠标的功能,提高了鼠标的性能。文档编号G06F9/44GK102368211SQ2本文档来自技高网
...

【技术保护点】
1.一种使用OSD加速实现硬件鼠标的方法,其特征在于包含以下几个步骤:第一步骤,利用Overlay分层显示的特性,将鼠标光标内容和其他要显示的内容分层显示。第二步骤,由于鼠标光标内容的存储格式转换为ARGB8888格式。第三步骤,将鼠标光标内容和其他需要显示的内容分别送往Overlay指定层的显存中,并指定要显示的坐标区域。第四步骤,OSD硬件资源利用alphablending特性,将各层数据进行混合显示。

【技术特征摘要】

【专利技术属性】
技术研发人员:章志刚
申请(专利权)人:上海盈方微电子有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1