專利名稱:基于Direct3D技術的圖像處理方法及其裝置的制作方法
技術領域:
本發明涉及圖像處理技術領域,尤其涉及一種基于Direct3D技術的圖像處理方法和一種基于Direct3D技術的圖像處理裝置。
背景技術:
目前圖像采集卡一般采用Direct3D技術顯示捕捉到的圖像數據。為了采用Direct3D圖形流水線來處理采集卡捕獲的圖像數據,一般做法是先把圖像數據發送到系統內存,然后根據系統內存中的圖像數據創建動態紋理,再利用Direct3D圖形流水線完成對圖像數據的處理以及顯示。這種做法在對圖像數據進行處理之前,需要先將圖像數據從系統內存發送至顯存中,然后才能利用顯存中的圖形流水線進行處理。也即圖像數據需要在系統內存和顯存之間進行傳輸,存在著CPU占用率高和圖像顯示效率低等問題,特別是當 進行多窗口顯示時這種問題更加明顯。
發明內容
為解決上述存在的問題,本發明提供了一種基于Direct3D技術的圖像處理方法和一種基于Direct3D技術的圖像處理裝置。一種基于Direct3D技術的圖像處理方法,包括以下步驟通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線;將圖像數據發送至所述表面;將所述表面中的圖像數據發送至所述第一紋理;將所述第一紋理中的圖像數據發送至所述第二紋理;通過所述與第二紋理綁定的圖形流水線對圖像數據進行處理。與一般技術相比,本發明基于Direct3D技術的圖像處理方法通過Direct3D技術在顯存中創建表面,利用創建的表面直接接收獲取到的圖像數據。通過在顯存中創建紋理以接收表面中的圖像數據,并利用圖形流水線對圖像進行處理。由于在圖像數據的傳輸過程中無需經過系統內存,并且繞過了 CPU,因此很大程度上提高了圖像的處理速度和顯示效率。一種基于Direct3D技術的圖像處理裝置,包括創建模塊、圖像數據發送模塊和圖像數據處理模塊;所述創建模塊用于通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線;所述圖像數據發送模塊用于將圖像數據發送至所述表面,將所述表面中的圖像數據發送至所述第一紋理,以及將所述第一紋理中的圖像數據發送至所述第二紋理;所述圖像數據處理模塊用于通過所述與第二紋理綁定的圖形流水線對圖像數據進行處理。
與一般技術相比,本發明基于Direct3D技術的圖像處理裝置通過Direct3D技術在顯存中創建表面,利用創建的表面直接接收獲取到的圖像數據。通過在顯存中創建紋理以接收表面中的圖像數據,并利用圖形流水線對圖像進行處理。由于在圖像數據的傳輸過程中無需經過系統內存,并且繞過了 CPU,因此很大程度上提高了圖像的處理速度和顯示效率。
圖I是本發明基于Direct3D技術的圖像處理方法的示意流程圖;圖2是本發明基于Direct3D技術的圖像處理裝置的結構示意圖。
具體實施例方式為更進一步闡述本發明所采取的技術手段及取得的效果,下面結合附圖及較佳實施例,對本發明的技術方案,進行清楚和完整的描述。 請參閱圖1,為本發明基于Direct3D技術的圖像處理方法的示意流程圖。本發明基于Direct3D技術的圖像處理方法包括以下步驟SlOl通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線;通過Direct3D技術創建設備對象一,包括創建表面以及第一紋理;創建設備對象二,包括創建第二紋理以及與第二紋理綁定的圖形流水線。作為其中一個實施例,可通過D3D9技術,創建所述表面和所述第一紋理;通過D3D9技術、D3D10技術或者D3D11技術,創建所述第二紋理和所述與第二紋理綁定的圖形流水線。例如,可采用Direct3D技術中的D3D9EX創建表面,采用D3D10. I技術創建用于對圖像數據進行處理的圖形流水線。S102將圖像數據發送至所述表面;作為其中一個實施例,可通過圖像數據采集卡獲取圖像數據;向圖像數據采集卡發送控制指令,將其捕獲的圖像數據發送至所述表面。S103將所述表面中的圖像數據發送至所述第一紋理;可將表面中的圖像數據復制至第一紋理,第一紋理可將圖像數據采用共享的方式發送至第二紋理。S104將所述第一紋理中的圖像數據發送至所述第二紋理;作為其中一個實施例,可通過Direct3D技術中的共享機制,將所述第一紋理中的圖像數據發送至所述第二紋理。例如,可在D3D9EX與D3D10. I之間實現共享,利用Direct3D技術中的表面共享機制,實現兩個紋理中圖像數據的同步。其中,第二紋理已綁定預先創建的圖形流水線。S105通過所述與第二紋理綁定的圖形流水線對圖像數據進行處理。當圖像數據到達第二紋理之后,便可發送繪制指令控制圖形流水線開始處理圖像數據。例如,可通過D3D10. I中的圖形流水線進行圖像數據處理。另外,在步驟S105完成之后,還可再次利用表面獲取圖像數據,然后通過第一紋理共享至第二紋理,并進一步對圖像數據進行處理。如此可形成一個循環過程,這樣能適應多窗口和大容量圖像的數據處理與顯示。與一般技術相比,本發明基于Direct3D技術的圖像處理方法通過Direct3D技術在顯存中創建表面,利用創建的表面直接接收獲取到的圖像數據。通過在顯存中創建紋理以接收表面中的圖像數據,并利用圖形流水線對圖像進行處理。由于在圖像數據的傳輸過程中無需經過系統內存,并且繞過了 CPU,因此很大程度上提高了圖像的處理速度和顯示效率。本發明可將采集卡采集的圖像數據直接提供給D3D10. I可編程圖形流水線,便于可編程圖形流水線對圖像進行靈活處理,以克服圖像的放大或縮小中出現的質量問題,如劇齒現象和走樣等。通過本發明可把采集卡捕獲到的圖像數據發送(如采用DMA的方式)至D3D9EX創建的表面,能很大程度上降低CPU資源占用。通過利用圖形流水線 對圖像數據進行處理可明顯提高采集卡捕獲的圖像的處理效果,以及進一步的顯示質量。此外,還公布了一種基于Direct3D技術的圖像處理裝置。請參閱圖2,為本發明基于Direct3D技術的圖像處理裝置的結構示意圖。一種基于Direct3D技術的圖像處理裝置,包括創建模塊201、圖像數據發送模塊202和圖像數據處理模塊203 ;所述創建模塊201用于通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線;作為其中一個實施例,所述創建模塊可包括第一創建模塊和第二創建模塊;所述第一創建模塊用于通過D3D9技術,創建所述表面和所述第一紋理;所述第二創建模塊用于通過D3D9技術、D3D10技術或者D3D11技術,創建所述第二紋理和所述與第二紋理綁定的圖形流水線。例如,可采用Direct3D技術中的D3D9EX創建表面,采用D3D10. I技術創建用于對圖像數據進行處理的圖形流水線。所述圖像數據發送模塊202用于將圖像數據發送至所述表面,將所述表面中的圖像數據發送至所述第一紋理,以及將所述第一紋理中的圖像數據發送至所述第二紋理;作為其中一個實施例,所述圖像數據發送模塊可包括圖像數據獲取模塊和控制指令發送模塊;所述圖像數據獲取模塊用于通過圖像數據采集卡獲取圖像數據;所述控制指令發送模塊用于向圖像數據采集卡發送控制指令,將其捕獲的圖像數據發送至所述表面。作為其中一個實施例,所述圖像數據發送模塊可用于通過Direct3D技術中的共享機制,將所述第一紋理中的圖像數據發送至所述第二紋理。所述圖像數據處理模塊203用于通過所述與第二紋理綁定的圖形流水線對圖像數據進行處理。當圖像數據到達第二紋理之后,便可發送繪制指令控制圖形流水線開始處理圖像數據。例如,可通過D3D10. I中的圖形流水線進行圖像數據處理。與一般技術相比,本發明基于Direct3D技術的圖像處理裝置通過Direct3D技術在顯存中創建表面,利用創建的表面直接接收獲取到的圖像數據。通過在顯存中創建紋理以接收表面中的圖像數據,并利用圖形流水線對圖像進行處理。由于在圖像數據的傳輸過程中無需經過系統內存,并且繞過了 CPU,因此很大程度上提高了圖像的處理速度和顯示效率。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員 來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。
權利要求
1.一種基于Direct3D技術的圖像處理方法,其特征在于,包括以下步驟 通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線. 將圖像數據發送至所述表面; 將所述表面中的圖像數據發送至所述第一紋理; 將所述第一紋理中的圖像數據發送至所述第二紋理; 通過所述與第二紋理綁定的圖形流水線對圖像數據進行處理。
2.根據權利要求I所述的基于Direct3D技術的圖像處理方法,其特征在于,所述創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線的步驟,包括以下步驟 通過D3D9技術,創建所述表面和所述第一紋理; 通過D3D9技術、D3D10技術或者D3D11技術,創建所述第二紋理和所述與第二紋理綁定的圖形流水線。
3.根據權利要求I所述的基于Direct3D技術的圖像處理方法,其特征在于,所述將圖像數據發送至所述表面的步驟,包括以下步驟 通過圖像數據采集卡獲取圖像數據; 向圖像數據采集卡發送控制指令,將其捕獲的圖像數據發送至所述表面。
4.根據權利要求I所述的基于Direct3D技術的圖像處理方法,其特征在于,通過Direct3D技術中的共享機制,將所述第一紋理中的圖像數據發送至所述第二紋理。
5.一種基于Direct3D技術的圖像處理裝置,其特征在于,包括創建模塊、圖像數據發送模塊和圖像數據處理模塊; 所述創建模塊用于通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線; 所述圖像數據發送模塊用于將圖像數據發送至所述表面,將所述表面中的圖像數據發送至所述第一紋理,以及將所述第一紋理中的圖像數據發送至所述第二紋理; 所述圖像數據處理模塊用于通過所述與第二紋理綁定的圖形流水線對圖像數據進行處理。
6.根據權利要求5所述的基于Direct3D技術的圖像處理裝置,其特征在于,所述創建模塊包括第一創建模塊和第二創建模塊; 所述第一創建模塊用于通過D3D9技術,創建所述表面和所述第一紋理; 所述第二創建模塊用于通過D3D9技術、D3D10技術或者D3D11技術,創建所述第二紋理和所述與第二紋理綁定的圖形流水線。
7.根據權利要求5所述的基于Direct3D技術的圖像處理裝置,其特征在于,所述圖像數據發送模塊包括圖像數據獲取模塊和控制指令發送模塊; 所述圖像數據獲取模塊用于通過圖像數據采集卡獲取圖像數據; 所述控制指令發送模塊用于向圖像數據采集卡發送控制指令,將其捕獲的圖像數據發送至所述表面。
8.根據權利要求5所述的基于Direct3D技術的圖像處理裝置,其特征在于,所述圖像數據發送模塊用于通過Direct3D技術中的共享機制,將所述第一紋理中的圖像數據發送至所述第二紋理。
全文摘要
本發明公開了一種基于Direct3D技術的圖像處理方法,包括通過Direct3D技術創建表面、第一紋理、第二紋理以及與第二紋理綁定的圖形流水線;將圖像數據發送至表面;將表面中的圖像數據發送至第一紋理;將第一紋理中的圖像數據發送至第二紋理;通過圖形流水線對圖像數據進行處理。還公開了一種基于Direct3D技術的圖像處理裝置,包括創建模塊、圖像數據發送模塊和圖像數據處理模塊。本發明利用在顯存中創建的表面直接接收圖像數據,通過在顯存中創建紋理以接收表面中的圖像數據,并利用圖形流水線對圖像進行處理。由于在圖像數據的傳輸過程中無需經過系統內存,并且繞過了CPU,因此提高了圖像的處理速度和顯示效率。
文檔編號G06T15/04GK102800122SQ20121020606
公開日2012年11月28日 申請日期2012年6月20日 優先權日2012年6月20日
發明者蒙興柳 申請人:廣東威創視訊科技股份有限公司