專利名稱:一種使用osd加速實現(xiàn)硬件鼠標的方法
技術領域:
本發(fā)明涉及需要支持鼠標和具有OSD功能單元的系統(tǒng),更具體的是在沒有硬件鼠標的設備上利用OSD加速實現(xiàn)硬件鼠標的方法。
背景技術:
當前在嵌入式系統(tǒng)中,一般都會受到系統(tǒng)資源的限制,比如CPU運行頻率較低以及總線帶寬不足等的影響,這時候要求系統(tǒng)中的多任務保持高效運行,特別是在實時系統(tǒng)中保證任務穩(wěn)定實時的完成,就有必要充分利用系統(tǒng)資源和優(yōu)化設計,以減少不必要的系統(tǒng)消耗。當今多媒體應用在嵌入式系統(tǒng)的廣泛應用,如手機多媒體應用、mp4播放器、手持電視播放器、平板電腦等都要求多媒體芯片能夠支持Overlay的功能,以支持視頻的快速高效的繪制。Overlay功能的基本特點是擁有獨立的顯存,這塊顯存會和系統(tǒng)顯存通過硬件混合(OSD)生成最終的圖像交給顯示控制器輸出。許多芯片產(chǎn)商都提供了多Overlay圖層系統(tǒng)的芯片。其中OSD是完成Overlay圖層混合的功能單元,圖層位置的移動和根據(jù)像素透明度合成上下圖層是其基本的兩個功能。鼠標是嵌入式系統(tǒng)中常見和必要的設備之一。利用軟件算法實現(xiàn)鼠標的移動繪制過程實際上是一個很耗資源的動作。據(jù)測試,鼠標在頻繁的移動過程中需要占用60%以上的CPU,這樣會嚴重影響其他任務的運行效率。而硬件鼠標是指以硬件的方式實現(xiàn)鼠標光標的顯示,移動,隱藏等功能。使用硬件鼠標可使鼠標光標在移動過程中更加流暢。在不存在硬件鼠標資源的情況下,如何實現(xiàn)鼠標顯示,移動,隱藏的流暢性就成為非常重要的一個環(huán)節(jié)。常規(guī)實現(xiàn)鼠標光標移動的做法為,鼠標光標內(nèi)容和其他顯示內(nèi)容均在Overlay同一層顯示,但此時需要通過軟件算法將鼠標光標內(nèi)容和其他內(nèi)容進行混合, 然后才能在Overlay上顯示。在采用軟件算法混合的過程中,需要保存混合區(qū)域的顯示內(nèi)容;在鼠標光標發(fā)生變化時,還需要恢復移動前混合區(qū)域的顯示內(nèi)容,然后再在新位置進行混合。由此可見,當鼠標顯示、移動時,上述做法需要不停的保存恢復要顯示的數(shù)據(jù),不僅占用了額外的內(nèi)存,而且混合、恢復操作消耗了大量的時間,占用了大量的CPU資源,處理速度緩慢,嚴重影響了鼠標移動的視覺效果。
發(fā)明內(nèi)容
本發(fā)明的目的是提供了一種利用OSD特性實現(xiàn)硬件鼠標的方法,在沒有硬件鼠標的系統(tǒng)中實現(xiàn)鼠標顯示、移動、隱藏的快速響應?!N使用OSD加速實現(xiàn)硬件鼠標的方法,其特征在于包含以下幾個步驟第一步驟,利用Overlay分層顯示的特性,將鼠標光標內(nèi)容和其他要顯示的內(nèi)容分層顯示。其中鼠標光標顯示層處于Overlay的最上層。第二步驟,由于鼠標光標內(nèi)容存儲于指定內(nèi)存區(qū)域中,需先將此內(nèi)存數(shù)據(jù)輸出格式轉(zhuǎn)換為ARGB8888格式。轉(zhuǎn)換過程必須根據(jù)鼠標的形狀特點來設置合適的alpha位。其他顯示內(nèi)容的數(shù)據(jù)格式則無需關心。第三步驟,將鼠標光標內(nèi)容和其他需要顯示的內(nèi)容分別送往Overlay指定層的顯存中,并指定要顯示的坐標區(qū)域。第四步驟,OSD硬件資源會利用alphablending特性,將各層數(shù)據(jù)進行混合顯示。 在混合顯示的過程中,鼠標光標具有有效alpha值像素點不會被遮擋。所有不被遮擋像素點就組成了鼠標光標形狀。當鼠標發(fā)生移動時,混合顯示的坐標區(qū)域發(fā)生變化,原位置不再需要回合顯示,其他圖層此刻就會顯示在Overlay上,而在新位置區(qū)域,則通過alpha特性將鼠標光標顯示到Overlay上。當需要隱藏鼠標時只需把鼠標顯示層關閉即可。
圖1為鼠標移動示意圖。圖 2 為 ARGB8888 格式。
具體實施例方式下面將結合附圖進一步闡述本發(fā)明圖1是典型鼠標移動示例,從屏幕A點移動到屏幕B點。圖2為ARGB8888格式。A是指alpha即透明度值,R是red即紅色像素值,G是 green即綠色像素值,B是blue即藍色像素值。然后將鼠標像素轉(zhuǎn)換為該格式像素,設置合適的alpha值,這樣就可以實現(xiàn)鼠標透明的效果。利用OSD加速實現(xiàn)硬件鼠標的流程包括首先鼠標要使用一層Overlay圖層,然后將鼠標內(nèi)容格式設置為ARGB8888,再利用OSD通過合適的alpha值將各圖層混合實現(xiàn)鼠標透明的效果從而實現(xiàn)硬件鼠標的功能。這種實現(xiàn)方式可以支持任意樣式的鼠標,比如單色鼠標,彩色鼠標和動畫鼠標等。OSD要將被鼠標遮擋的區(qū)域的圖像進行混合,計算公式如下設鼠標圖層像素為Fore,被鼠標遮擋圖層為Back,合成后的圖層為Result。Result = Fore*alpha/255+Back*(l-alpha/255)上述操作過程是本發(fā)明的一種典型的實施應用,對于本領域的一般技術人員,在上述實施例的基礎上,可以做出多種變化,同樣能實現(xiàn)本發(fā)明的目的。但是,這種變化顯然是在本發(fā)明的權利要求書的保護范圍內(nèi)。
權利要求
1.一種使用OSD加速實現(xiàn)硬件鼠標的方法,其特征在于包含以下幾個步驟第一步驟,利用Overlay分層顯示的特性,將鼠標光標內(nèi)容和其他要顯示的內(nèi)容分層顯不。第二步驟,由于鼠標光標內(nèi)容的存儲格式轉(zhuǎn)換為ARGB8888格式。 第三步驟,將鼠標光標內(nèi)容和其他需要顯示的內(nèi)容分別送往Overlay指定層的顯存中,并指定要顯示的坐標區(qū)域。第四步驟,OSD硬件資源利用alphablending特性,將各層數(shù)據(jù)進行混合顯示。
2.如權利要求1所述的使用OSD加速實現(xiàn)硬件鼠標的方法,其特征在于所述第一步驟中,將鼠標光標內(nèi)容和其他要顯示的內(nèi)容分層顯示時,鼠標光標顯示層處于Overlay的最上層。
3.如權利要求1所述的使用OSD加速實現(xiàn)硬件鼠標的方法,其特征在于所述第二步驟中,將存儲光標的內(nèi)存數(shù)據(jù)輸出格式轉(zhuǎn)換為ARGB8888格式時,轉(zhuǎn)換過程必須根據(jù)鼠標的形狀特點來設置合適的alpha位。其他顯示內(nèi)容的數(shù)據(jù)格式則無需關心。
4.如權利要求1所述的使用OSD加速實現(xiàn)硬件鼠標的方法,其特征在于所述第四步驟中,OSD硬件資源會利用alphablending特性,將各層數(shù)據(jù)進行混合顯示。在混合顯示的過程中,鼠標光標具有有效alpha值像素點不會被遮擋。所有不被遮擋像素點就組成了鼠標光標形狀。當鼠標發(fā)生移動時,混合顯示的坐標區(qū)域發(fā)生變化,原位置不再需要回合顯示,其他圖層此刻就會顯示在Overlay上,而在新位置區(qū)域,則通過alpha 特性將鼠標光標顯示到Overlay上。當需要隱藏鼠標時只需把鼠標顯示層關閉即可。
5.OSD要將被鼠標遮擋的區(qū)域的圖像進行混合,計算公式如下設鼠標圖層像素為i^ore,被鼠標遮擋圖層為Back,合成后的圖層為Result。Result = Fore*alpha/255+Back*(l-alpha/255)。
全文摘要
一種使用OSD加速實現(xiàn)硬件鼠標的方法。是在沒有硬件鼠標的設備上利用OSD加速實現(xiàn)硬件鼠標。解決途徑如下利用Overlay分層顯示的特性,將鼠標光標內(nèi)容和其他要顯示的內(nèi)容分層顯示;先將此內(nèi)存數(shù)據(jù)輸出格式轉(zhuǎn)換為ARGB8888格式;將鼠標光標內(nèi)容和其他需要顯示的內(nèi)容分別送往Overlay指定層的顯存中,并指定要顯示的坐標區(qū)域;OSD硬件資源會利用alphablending特性,將各層數(shù)據(jù)進行混合顯示。在此過程中,鼠標光標具有有效alpha值像素點不會被遮擋,組成了鼠標光標形狀。本發(fā)明無需額外的內(nèi)存及軟件混合的開銷,使得在無硬件鼠標資源的系統(tǒng)上實現(xiàn)了硬件鼠標的功能,提高了鼠標的性能。
文檔編號G06F9/44GK102368211SQ20111017966
公開日2012年3月7日 申請日期2011年6月28日 優(yōu)先權日2011年6月28日
發(fā)明者丁強, 張昕, 李興仁, 王勝, 章志剛 申請人:上海盈方微電子有限公司