本發明涉及計算機應用技術領域,特別涉及一種基于Android系統的電視終端中增強現實的實現方法及裝置。
背景技術:
隨著計算機應用技術的發展,增強現實技術被越來越普遍的應用于各種便攜移動終端,以實現各種虛擬場景的交互。
增強現實技術在移動終端的實現,是移動終端將自身攝像頭錄制的圖像數據,傳輸給增強現實引擎。增強現實引擎對攝像頭錄制的圖像數據進行識別和跟蹤,從而對攝像頭錄制的圖像進行增強現實顯示,實現虛擬場景與現實場景相結合。
現如今市場上的增強現實引擎大多數僅能支持基于移動終端的攝像頭錄制的圖像數據格式,而不支持電視終端輸出的圖像數據格式。因此,增強現實技術的應用,不得不局限于具有攝像頭的移動終端,并無法應用于不具備攝像頭的其它終端。
也就是說,增強現實技術的應用,由于增強現實引擎支持的圖像數據格式的限制,而使得其無法在不具備攝像頭的終端,如電視終端中實現。
技術實現要素:
為了解決相關技術中存在的增強現實技術的應用由于增強現實引擎支持的圖像數據格式的限制而無法在電視終端中實現增強現實技術的技術問題,本發明提供了一種基于Android系統的電視終端中增強現實的實現方法及裝置。
一種基于Android系統的電視終端中增強現實的實現方法,所述方法包括:
調用所述Android系統HAL層的攝像頭接口截取屏幕待顯示的圖像數據;
按照攝像頭默認格式對所述待顯示的圖像數據進行格式轉換;
將完成所述格式轉換的圖像數據傳送至所述電視終端配置的增強現實引擎,以觸發所述增強現實引擎為所述圖像數據進行增強現實顯示。
一種基于Android系統的電視終端中增強現實的實現裝置,所述裝置包括:
獲取模塊,用于調用所述Android系統HAL層的攝像頭接口截取屏幕待顯示的圖像數據;
轉換模塊,用于按照攝像頭默認格式對所述待顯示的圖像數據進行格式轉換;
增強現實模塊,用于將完成所述格式轉換的圖像數據傳送至所述電視終端配置的增強現實引擎,以觸發所述增強現實引擎為所述圖像數據進行增強現實顯示。
本發明的實施例提供的技術方案可以包括以下有益效果:
調用Android系統HAL層的攝像頭接口截取屏幕待顯示的圖像數據,按照攝像頭默認格式對待顯示的圖像數據進行格式轉換,將完成格式轉換的圖像數據傳送至電視終端配置的增強現實引擎,以觸發增強現實引擎為圖像數據進行增強現實顯示。由上述方法可知,該方法可通過調用Android系統HAL層的攝像頭接口獲得屏幕待顯示的圖像數據,并按照攝像頭默認格式對待顯示的圖像數據進行格式轉換,將完成格式轉換的圖像數據傳送至增強現實引擎,從而觸發增強現實引擎在電視終端上實現增強現實顯示,解決了由于增強現實引擎支持的圖像數據格式的限制而無法在電視終端中實現增強現實技術的技術問題。
應當理解的是,以上的一般描述和后文的細節描述僅是示例性的,并不能限制本發明。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發明的實施例,并于說明書一起用于解釋本發明的原理。
圖1是根據一示例性實施例示出的一種基于Android系統的電視終端中增強現實的實現方法的流程圖;
圖2是將圖像數據通過NEON指令進行多媒體格式轉換,獲得與攝像頭默認格式相符的圖像數據在一個實施例的流程圖;
圖3是圖1對應實施例的將完成格式轉換的圖像數據傳送至電視終端配置的增強現實引擎在一個實施例的流程圖;
圖4是根據一示例性實施例示出的一種基于Android系統的電視終端中增強現實的實現裝置框圖;
圖5是圖4對應實施例的轉換模塊在一個實施例的框圖;
圖6是圖4對應實施例的增強現實模塊在一個實施例的框圖。
具體實施方式
這里將詳細地對示例性實施例執行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發明的一些方面相一致的裝置和方法的例子。
圖1是根據一示例性實施例示出的一種基于Android系統的電視終端中增強現實的實現方法的流程圖。如圖1所示,該基于Android系統的電視終端中增強現實的實現方法可以包括以下步驟。
在步驟110中,調用Android系統HAL層的攝像頭接口截取屏幕待顯示的圖像數據。
其中,待顯示的圖像數據是指電視終端自身運行過程中將要在自身屏幕上顯示的圖像畫面。圖像畫面的顯示是在電視終端的運行過程中持續進行的。
Android系統HAL層為硬件抽象層,用于將硬件抽象化,從而調用該硬件。通過HAL層的攝像頭接口調用攝像頭進行屏幕錄制,從而截取屏幕待顯示的圖像數據。
電視終端底層配置有實現電視屏幕顯示圖像畫面的顯示模塊,在顯示模塊中生成將要在電視終端的屏幕上顯示的圖像畫面,進而將圖像畫面顯示在電視終端的屏幕上。通過攝像頭對顯示模塊中的將要在電視終端的屏幕上顯示的圖像畫面進行屏幕錄制,完成電視終端中圖像畫面捕獲,進而通過所持續進行的屏幕錄制而獲得圖像數據。可以理解的,對于持續進行的屏幕錄制,所分別錄制下來的若干個圖像畫面便形成了電視終端中圖像畫面顯示的圖像數據。圖像數據攜帶著所進行屏幕錄制的每一圖像畫面的圖像數據。屏幕錄制動作在電視終端的運行中,是隨著增強現實的觸發而執行的。
具體而言,為電視終端配置了增強現實顯示功能。在觸發此增強現實顯示功能時,便觸發電視終端中獲取圖像數據的進行,進而方能夠隨著電視終端中圖像畫面的顯示而持續獲得與之相對應的圖像數據。
在此應當說明的是,借助于電視終端中獲取圖像數據的進行,而獲得圖像數據,經由圖像數據來獲知電視終端中所播放圖像畫面的內容,為后續所進行的增強實現的最終實現提供觸發基礎。
獲取圖像數據的過程,實質為虛擬攝像頭的過程。因此,可對獲取圖像數據的過程進行各種參數的設置,例如,設置獲取圖像的分辨率,幀率等參數,由于電視終端中顯示的圖像畫面將用于作為后續增強現實顯示中的現實畫面,因此,對獲取圖像數據的過程進行參數設置后,電視終端中顯示的圖像畫面的實際效果應當是與增強現實顯示所需的圖像畫面效果相適應的。
在步驟130中,按照攝像頭默認格式對待顯示的圖像數據進行格式轉換。
其中,在一個實施例中,圖像數據格式(即顏色編碼方法)采用YUV格式,其中Y表示灰階值,只存在Y分量時表示為黑白灰度圖像,因此Y分量可以單獨表示畫面的基本信息。由于Y分量可以單獨表示畫面的基本信息,所以圖像識別算法對圖像數據識別時通過處理Y通道來實現,從而減少識別時產生的性能損失。
其中,攝像頭默認格式YUV420SP格式的Y通道是單獨存放的,利于增強現實引擎對Y通道進行識別,YUV420SP格式也支持大多數增強現實引擎對其進行識別。但目前實施例中的電視終端經過屏幕錄制得到的圖像數據的數據格式為YUV422格式,因此需要將YUV422格式轉換為YUV420SP格式來支持增強現實引擎進行識別。
將獲得的YUV422格式待顯示的圖像數據按照攝像頭默認格式YUV420SP進行轉換,獲得YUV420SP格式的圖像數據。
在步驟150中,將完成格式轉換的圖像數據傳送至電視終端配置的增強現實引擎,以觸發增強現實引擎為圖像數據進行增強現實顯示。
增強現實引擎,用于為所在終端實現增強現實顯示。增強現實引擎將以輸入的圖像畫面為現實畫面,進行現實畫面和虛擬畫面的疊加,以此來實現所在終端中的虛擬現實顯示,即電視終端的增強現實功能。增強現實引擎被配置于電視終端,將隨著電視終端的運行觸發增強現實引擎開始運行。
增強現實引擎通過識別和跟蹤圖像數據中的增強現實標志實現圖像數據的增強現實顯示。增強現實標志為電視終端上顯示的任意區域的圖像畫面,預先將增強現實標志制成模板添加到增強現實引擎中,增強現實引擎根據模板通過圖像識別算法將拿到的圖像數據進行計算,識別圖像數據中是否有能與模板中數據相符合的數據,圖像數據中相符合的數據即為獲取的增強現實標志的數據。識別到增強現實標志后,對增強現實標志中的位置信息進行跟蹤,從而通過圖像識別算法計算增強現實標志的位置信息,增強現實引擎根據增強現實標志的圖像數據識別圖像數據中的增強現實標志。增強現實標志可以是完整的一幅畫面,也可以是畫面中的一部分。
根據圖像位置信息,通過對增強現實標志所在的圖像畫面疊加畫面,在現實畫面上顯示疊加的虛擬畫面,電視終端在屏幕顯示現實畫面的同時顯示虛擬畫面,實現增強現實顯示。
疊加的虛擬畫面預先配置于增強現實引擎,虛擬畫面可以是用繪圖工具制成的圖像,也可以直接疊加現成的圖。
在一個示例性實施例中,電視終端中所使用的增強現實引擎可實現圖像的旋轉功能,但電視終端中顯示的圖像不適于進行旋轉操作,因此為使增強現實引擎適配于電視終端的應用環境中,去除增強現實引擎的旋轉操作功能。
此實施例實現了電視終端上的增強現實技術,解決了由于增強現實引擎支持的圖像數據格式的限制而無法在電視終端中實現增強現實技術的技術問題。
在一個示例性實施例中,圖1所示實施例的按照攝像頭默認格式對圖像數據進行格式轉換可以包括以下步驟。
將圖像數據通過NEON指令進行多媒體格式轉換,獲得與攝像頭默認格式相符的圖像數據。
其中NEON是ARM架構處理器的擴展結構,用于處理傳送至NEON引擎的圖像數據。多媒體格式轉換是指將圖像數據按照攝像頭默認格式進行轉換的過程。NEON引擎將獲得的YUV422格式的圖像數據進行轉換,從而獲得用與攝像頭默認格式相符YUV420SP相符的圖像數據。
此實施例實現了獲得與攝像頭默認格式相符的圖像數據。
圖2是將圖像數據通過NEON指令進行多媒體格式轉換,獲得與攝像頭默認格式相符的圖像數據在一個實施例的流程圖。
在步驟210中,將從顯示模塊獲得的圖像數據傳送至NEON引擎。
其中,從電視終端中的顯示模塊獲得的圖像數據需傳送至NEON引擎進行格式轉換處理,從而使圖像數據能夠適配于增強現實引擎。
將從顯示模塊獲得的圖像數據,在電視終端中傳送給NEON引擎進行轉換處理。
在步驟230中,觸發NEON引擎將圖像數據進行多媒體格式轉換獲得與攝像頭默認格式相符的圖像數據。
在一個示例性實施例的具體實現中,多媒體格式轉換包括以下步驟。
NEON引擎電視終端通過獲取將要顯示至屏幕的圖像數據。對于獲得的圖像數據,其圖像數據格式為YUV422格式,通過格式轉換,將YUV422格式轉換為YUV420SP格式,使該圖像數據的數據格式適配于增強現實引擎,從而在增強現實引擎識別圖像數據過程中,保證增強現實引擎的識別性能,使得增強現實引擎可以更高效地對圖像數據進行增強現實顯示的處理。
虛擬攝像頭客戶端為電視終端中配置的模塊,用于將圖像數據傳送給增強現實引擎。將進行多媒體格式轉換后的圖像數據傳送給虛擬攝像頭客戶端,從而實現將圖像數據傳送給增強現實引擎,實現增強現實的顯示。
此實施例實現了圖像數據的多媒體格式轉換。
在一個示例性實施例中,圖2對應實施例的觸發NEON引擎將圖像數據進行多媒體格式轉換而獲得與攝像頭默認格式相符的圖像數據可以包括以下步驟。
觸發NEON引擎通過將圖像數據的數據排列方式轉換成與攝像頭默認格式相同的數據排列方式,進行圖像數據的多媒體格式轉換。
其中,傳送至NEON引擎的圖像數據的數據格式為YUV422格式,YUV422 格式中包含Y,U,V三個通道。攝像頭默認格式YUV420SP格式中也包含Y,U,V三個通道,但三個通道的數據排列方式與YUV422格式的數據排列方式不同。
因此,通過更改圖像數據的數據排列方式,即將圖像數據YUV422格式的數據排列方式轉換成攝像頭默認格式YUV420SP格式的數據排列方式,實現圖像數據的多媒體轉換。得到與攝像頭默認格式相同的圖像數據。
此實施例通過轉換圖像數據的數據排列方式,實現圖像數據的多媒體轉換。
圖3是根據一示例性實施例示出的對步驟150的細節進行描述。如圖3所示,該步驟150可以包括以下步驟。
在步驟151中,虛擬攝像頭客戶端接收與攝像頭默認格式相符的圖像數據。
其中,虛擬攝像頭客戶端接收到經過多媒體格式轉換的,與攝像頭默認格式相符的圖像數據,并準備將圖像數據傳送至增強現實引擎,從而實現增強現實的顯示。
在步驟153中,將接收的圖像數據通過電視終端中的本地框架層傳送至電視終端配置的增強現實引擎。
其中,首先應當說明的是,獲得的圖像數據需要傳輸到增強現實引擎進行識別跟蹤,因此需要通過本地框架層和應用框架層之間的通信,將圖像數據填充至應用框架層配置的緩沖區,并觸發增強現實引擎從緩沖區讀取圖像數據的方法,實現圖像數據傳輸到增強現實引擎的過程。
本地框架層用于獲取圖像數據,應用框架層用于實現圖像數據的傳輸過程。通過本地框架層和應用框架層進行通信,實現傳輸圖像數據到增強現實引擎的功能。
在電視終端初始化時,應用框架層會配置緩沖區,圖像數據需通過緩沖區傳輸到增強現實引擎。其中,應用框架層可以改變設置的緩沖區的數據容量大小。
當獲得圖像數據之后,本地框架層通過上層設置的回調函數,將存儲圖像數據的共享內存地址傳輸到JNI層。應用框架層通過回調函數,獲取JNI層中存儲圖像數據的共享內存地址,并將本地框架層存儲的圖像數據流填充至因共用框架層配置的緩沖區。對于本發明,此方法僅供參考,實際實現方法并不局限于此。
當圖像數據傳輸到應用架構層配置的緩沖區后,應用框架層利用增強現實引擎中設置的傳輸接口,將圖像數據傳輸給增強現實引擎,從而完成將圖像數據傳輸到增強現實引擎的功能,對于本發明,此方法僅供參考,實際實現方法并不局限于此。
此實施例實現將圖像數據傳送至增強現實引擎。
圖4是根據一示例性實施例示出的一種基于Android系統的電視終端中增強現實的實現裝置框圖。該裝置執行圖1任一所示的基于Android系統的電視終端中增強現實的實現方法的全部或者部分步驟。如圖4所示,該裝置包括但不限于:獲取模塊310,轉換模塊330和增強現實模塊350。
獲取模塊310用于調用Android系統HAL層的攝像頭接口截取屏幕待顯示的圖像數據。
轉換模塊330用于按照攝像頭默認格式對待顯示的圖像數據進行格式轉換。
增強現實模塊350用于將完成格式轉換的圖像數據傳送至電視終端配置的增強現實引擎,以觸發增強現實引擎為圖像數據進行增強現實顯示。
在一個示例性實施例中,圖4對應實施例的轉換模塊還用于將圖像數據通過NEON指令進行多媒體格式轉換,獲得與攝像頭默認格式相符的圖像數據。
圖5是圖4對應實施例的轉換模塊在一個實施例的框圖。如圖5所示,轉換模塊330包括但不限于:傳送單元331和轉換觸發單元333。
傳送單元331用于將從顯示模塊獲得的圖像數據傳送至NEON引擎。
轉換觸發單元333用于觸發NEON引擎將圖像數據進行多媒體格式轉換以獲得與攝像頭默認格式相符的圖像數據。
在一個示例性實施例中,圖5對應實施例的轉換觸發單元333還用于觸發NEON引擎通過將圖像數據的數據排列方式轉換成與攝像頭默認格式相同的數據排列方式,進行圖像數據的多媒體格式轉換。
圖6是圖4對應實施例的增強現實模塊在一個實施例的框圖。如圖6所示,增強現實模塊350但不限于:接收單元351和本地調用單元353。
接收單元351用于接收與攝像頭默認格式相符的圖像數據。
本地調用單元353用于將接收的圖像數據通過電視終端中的本地框架層傳送至電視終端配置的增強現實引擎。
上述裝置中各個模塊的功能和作用的實現過程詳見上述基于Android系統的電視終端中增強現實的實現方法中對應步驟的實現過程,在此不再贅述。
應當理解的是,本發明并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍執行各種修改和改變。本發明的范圍僅由所附的權利要求來限制。