TW201933046A - 基於擴增實境的圖像處理方法、裝置及電子設備 - Google Patents
基於擴增實境的圖像處理方法、裝置及電子設備 Download PDFInfo
- Publication number
- TW201933046A TW201933046A TW107144780A TW107144780A TW201933046A TW 201933046 A TW201933046 A TW 201933046A TW 107144780 A TW107144780 A TW 107144780A TW 107144780 A TW107144780 A TW 107144780A TW 201933046 A TW201933046 A TW 201933046A
- Authority
- TW
- Taiwan
- Prior art keywords
- yuv
- rgba
- format
- value
- image
- Prior art date
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 22
- 239000000463 material Substances 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 17
- 239000012634 fragment Substances 0.000 claims description 16
- 230000001133 acceleration Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/67—Circuits for processing colour signals for matrixing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Color Image Communication Systems (AREA)
- Facsimile Image Signal Circuits (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本說明書提供一種基於擴增實境的圖像處理方法、裝置及電子設備,針對RGBA格式圖像,透過在圖形處理器中讀取RGBA格式圖像中像素點的RGBA值,圖形處理器可以根據所述像素點的RGBA值快速計算得到YUV分量值,之後讀取出所述圖像處理器計算出的YUV分量值,可以獲得YUV格式圖像。本說明書實施例利用GPU的硬體加速能力,可以快速地進行RGBA格式與YUV格式的轉換,圖像處理速度較快,從而可以滿足AR場景中對速度的要求。
Description
本說明書係有關圖像處理技術領域,尤其有關基於擴增實境的圖像處理方法、裝置及電子設備。
AR是一種在設備攝像模組所拍攝畫面上添加虛擬模型的技術,這種技術可以將真實的環境和虛擬的模型疊加到了同一個畫面而同時存在,從而給與用戶超越現實的感官體驗。在AR場景中,需要將AR素材進行處理後渲染顯示在電子設備螢幕上,因此對處理速度的要求較高。
為克服相關技術中存在的問題,本說明書提供了基於擴增實境的圖像處理、圖像處理方法、裝置及電子設備。
根據本說明書實施例的第一態樣,提供一種基於擴增實境的圖像處理方法,所述方法包括:
獲取AR素材,所述AR素材包括RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
可選地,所述根據所述像素點的RGBA值計算得到YUV分量值,包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
根據本說明書實施例的第二態樣,提供一種圖像處理方法,所述方法包括:
獲取待轉換的RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
可選地,所述根據所述像素點的RGBA值計算得到YUV分量值,包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
根據本說明書實施例的協力廠商側,提供一種基於擴增實境的圖像處理裝置,所述裝置包括:
獲取模組,用以:獲取AR素材,所述AR素材包括RGBA格式圖像;
計算模組,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
可選地,所述計算模組,具體用以:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述計算模組,具體用以:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
根據本說明書實施例的第四態樣,提供一種圖像處理裝置,所述裝置包括:
獲取模組,用以:獲取待轉換的RGBA格式圖像;
計算模組,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
根據本說明書實施例的第五態樣,提供一種電子設備,包括:
處理器;
用以儲存處理器可執行指令的記憶體;
其中,所述處理器被配置成:
獲取AR素材,所述AR素材包括RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
本說明書的實施例提供的技術方案可以包括以下有益效果:
本說明書中,針對RGBA格式圖像,透過在圖形處理器(GPU,Graphics Processing Unit)中讀取RGBA格式圖像中像素點的RGBA值,圖形處理器可以根據所述像素點的RGBA值快速計算得到YUV分量值,之後讀取出所述圖像處理器計算出的YUV分量值,可以獲得YUV格式圖像。本說明書實施例利用GPU的硬體加速能力,可以快速地進行RGBA格式與YUV格式的轉換,圖像處理速度較快,從而可以滿足AR場景中對速度的要求。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書。
根據本說明書實施例的第一態樣,提供一種基於擴增實境的圖像處理方法,所述方法包括:
獲取AR素材,所述AR素材包括RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
可選地,所述根據所述像素點的RGBA值計算得到YUV分量值,包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
根據本說明書實施例的第二態樣,提供一種圖像處理方法,所述方法包括:
獲取待轉換的RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
可選地,所述根據所述像素點的RGBA值計算得到YUV分量值,包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
根據本說明書實施例的協力廠商側,提供一種基於擴增實境的圖像處理裝置,所述裝置包括:
獲取模組,用以:獲取AR素材,所述AR素材包括RGBA格式圖像;
計算模組,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
可選地,所述計算模組,具體用以:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述計算模組,具體用以:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
根據本說明書實施例的第四態樣,提供一種圖像處理裝置,所述裝置包括:
獲取模組,用以:獲取待轉換的RGBA格式圖像;
計算模組,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
根據本說明書實施例的第五態樣,提供一種電子設備,包括:
處理器;
用以儲存處理器可執行指令的記憶體;
其中,所述處理器被配置成:
獲取AR素材,所述AR素材包括RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
本說明書的實施例提供的技術方案可以包括以下有益效果:
本說明書中,針對RGBA格式圖像,透過在圖形處理器(GPU,Graphics Processing Unit)中讀取RGBA格式圖像中像素點的RGBA值,圖形處理器可以根據所述像素點的RGBA值快速計算得到YUV分量值,之後讀取出所述圖像處理器計算出的YUV分量值,可以獲得YUV格式圖像。本說明書實施例利用GPU的硬體加速能力,可以快速地進行RGBA格式與YUV格式的轉換,圖像處理速度較快,從而可以滿足AR場景中對速度的要求。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書。
這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書相一致的所有實施方式。相反地,它們僅是與如所附申請專利範圍中所詳述的、本說明書的一些態樣相一致的裝置和方法的例子。
在本說明書使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書。在本說明書和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出專案的任何或所有可能組合。
應當理解,儘管在本說明書可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。
擴增實境(Augmented Reality,簡稱AR)技術,是一種將真實世界資訊和虛擬世界資訊無縫整合的新技術,該技術可以將虛擬的資訊應用到真實世界,真實環境和虛擬物體即時地疊加到了同一個畫面或空間而同時存在。
如圖1A所示,是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理方法的應用場景圖,圖1A中用戶所持有的智慧型手機內置有攝像模組,用戶可以持該智慧型手機拍攝真實環境畫面,智慧型手機可以根據所拍攝的真實環境畫面中疊加渲染有AR素材。AR素材中可以包括有圖像,在某些電子設備的顯示模組中,需要獲取YUV格式圖像進行AR處理。然而,電子設備獲取到的圖像素材有可能是以其他格式進行儲存,例如RGBA等。因此,在進行AR處理前,需要對圖像的格式進行轉換。
AR場景中對資料處理速度的要求通常較高,因此,本說明書實施例提供一種基於擴增實境的圖像處理方案,針對RGBA格式圖像,透過在圖形處理器(GPU,Graphics Processing Unit)中讀取RGBA格式圖像中像素點的RGBA值,圖形處理器可以根據所述像素點的RGBA值快速計算得到YUV分量值,之後讀取出所述圖像處理器計算出的YUV分量值,可以獲得YUV格式圖像。本說明書實施例利用GPU的硬體加速能力,可以快速地進行RGBA格式與YUV格式的轉換,從而可以滿足AR場景中對速度的要求。接下來對本說明書實施例進行詳細說明。
如圖1B所示,圖1B是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理方法的流程圖,可應用於電子設備中,包括以下步驟:
在步驟102中,獲取AR素材,所述AR素材包括RGBA格式圖像;
在步驟104中,利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
在步驟106中,讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
其中,RGBA是代表Red(紅色)、Green(綠色)、Blue (藍色)和Alpha的色彩空間。如圖1C所示,是本說明書根據一示例性實施例示出的一種RGBA格式圖像的示意圖,該圖像的長為w、寬為h,每個像素點的像素值佔用4個位元組,分別是該像素的R、G、B和A四個分量值。
而YUV格式圖像包括Y、U和V三個分量,“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V”表示的則是色度(Chrominance或Chroma),作用是描述圖像色彩及飽和度,用以指定像素的顏色。
圖形處理器可以利用RGBA格式與YUV格式的轉換演算法,將所述像素點的RGBA值進行轉換計算得到YUV分量值。具體轉換時,RGBA格式圖像被輸入至圖形處理器,圖像資料被儲存於圖形處理器記憶體中,圖形處理器讀取記憶體中的圖像資料後進行格式轉換。
其中,對於RGBA格式圖像,圖像資料儲存時像素點的R、G、B和A四個分量值是連續儲存的;而YUV格式圖像,YUV格式的Y分量和U、V分量是分離的。YUV格式圖像中,根據圖像儲存方式的不同,還細分有多種類型,例如:YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411或YUV420等。其中,不同類型對應不同的Y、U和V分量的排列順序。
舉例來說,如圖1D所示,是本說明書根據一示例性實施例示出的一種YUV格式圖像的示意圖,圖1D所示圖像的YUV格式以NV12為例,前w*h個位元組是Y分量,每個分量佔用一個位元組,分別表示第(i,j)個像素的Y分量。而後續的w*h/2個位元組表示UV分量,每一列是以UVUVUV交替的形式來進行儲存的。
以720×488大小的圖像為例,按照儲存方式分為如下三個部分:
Y分量:(720×480)個位元組
U分量:(720×480/2)個位元組
V分量:(720×480/2)個位元組
三個部分內部均是列優先儲存,三個部分之間的排列順序是Y分量排列在前,之後由U和V交替順序儲存。也就是,YUV資料的0至720×480位元組是Y分量值,後續的位元組是U和V交替儲存。
再以其他儲存格式儲存的YUV格式圖像為例,例如,Y41P(和Y411)的儲存格式中,YUV分量排列順序如下:U0 Y0 V0 Y1 U4 Y2 V4 Y3 Y4 Y5 Y6 Y8 …。
基於此,圖形處理器可以根據所述像素點的RGBA值計算得到YUV分量值,考慮到RGBA格式與YUV格式的儲存方式不同,在一個可選的實現方式中,可以包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
其中,作為示例,所述RGBA格式轉換YUV格式的轉換演算法具體可以採用如下公式表示:
Y = 0.299×R + 0.587×G + 0.114×B + 0
U = -0.169×R-0.331×G + 0.499×B + 0.5
V = 0.499×R-0.418×G-0.0813×B + 0.5
透過上述方式,針對YUV格式圖像中像素點YUV分量排列順序,圖形處理器可以讀取RGBA圖像中像素點的RGBA值,並按照轉換演算法計算得到YUV分量值。計算完成後,圖形處理器中記憶體區域所儲存的計算結果即是YUV格式圖像中像素點YUV分量值,也就是YUV格式圖像。
實際應用中,GPU通用計算方面的標準包括有OpenCL、CUDA、ATI STREAM等,這些標準可以理解為GPU底層所提供的應用程式設計發展介面,因此,可以根據不同GPU所提供的程式設計介面類別型靈活地實現本說明書方案。
接下來以OpenCL(全稱Open Computing Language,開放運算語言)介面為例進行說明,OpenCL是第一個面向異構系統通用目的並行程式設計的開放式、免費標準,也是一個統一的程式設計環境,便於軟體發展人員為高性能計算伺服器、桌上型計算系統、手持設備編寫高效輕便的代碼。
OpenGL採用片段作為基本儲存單元,在一些例子中,OpenGL在處理RGBA格式圖像時,一個片段對應一個像素的RGBA值。仍以圖1C所示的RGBA格式圖像轉換為圖1D所示的YUV格式圖像為例,圖1E示出了計算Y分量的過程示意圖,圖1E中左邊是RGBA格式,右邊是YUV格式。本說明書實施例中以一個片段對應一個像素的RGBA值為例,轉換前,記憶體區域中儲存的RGBA值可以透過如下表格所示,其中,為了示例方便,以下表格僅以3個像素點(像素點(0,0)、像素點(0,1)和像素點(0,2))為例進行說明:
而相應的YUV格式圖像,其記憶體區域中儲存的YUV分量值可以透過如下表格所示:
透過上述對比可知,根據YUV分量排列順序,我們期望轉換後的YUV格式圖像中片段1是4個像素點的Y分量,而這一個片段(4個像素點)的Y分量,需要讀取RGBA格式圖像中四個片段(4個像素點)的像素值而計算得到。
基於此,為了實現快速的轉換,在一個可選的實現方式中,所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格式的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,可以包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
作為例子,針對圖1E再次進行說明。GPU在轉換時,將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中,並且,需要配置用以儲存YUV格式圖像的儲存區域。
圖1E中,以圖像的長為w、寬為h為例,對於Y分量的計算,Y分量需要儲存於前w*h個位元組的記憶體區域中,本實施例將四個像素點的Y分量看成一個片段,也就是這四個Y分量佔據了一個目標片段。而這個目標片段,涉及到四個像素點,因此需要讀取RGBA格式圖像中相應的四個片段(4個像素點)進行計算得到。具體地,因為寬度是w,所以一列有w/4個片段。對於每一列,將左邊的w個像素點繪製到右邊的w/4個片段中。所以對於(i,j)位置的片段(Ya,Yb,Yc,Yd),其對應著座標中的(Pa,Pb,Pc,Pd),Pa對應著(m,n-1.5)位置的像素點,Pb對應(m,n-0.5)位置的像素點,其它依此類推。這裡的兩個相鄰像素距離為1,是以總寬度來計算的。若OpenGL中需要歸一化,像素間距可以歸一化為1/w,所以Pa即對應著(m, n-1.5*1/w)。因此,根據YUV格式可以確定儲存區域中的目標片段,之後根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量,接著再獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中。
根據RGBA格式轉換YUV格式的轉換演算法,因此對於YUV格式圖像中的片段(i,j),可以求出其需要儲存為Y分量為:
Ya = 0.299 × Ra + 0.587 × Ga + 0.114 × Ba + 0
Yb = 0.299 × Rb + 0.587 × Gb + 0.114 × Bb + 0
Yc = 0.299 × Rc + 0.587 × Gc + 0.114 × Bc + 0
Yd = 0.299 × Rd + 0.587 × Gd + 0.114 × Bd + 0
根據YUV分量排列順序,儲存YUV格式圖像的儲存區域中,Y分量的起始點為儲存區域的起點,寬度為w/4,高度為h,作為一個可選的實現方式,可以由OpenGL集中進行Y分量的轉換計算,根據OpenGL介面函數,可以設定視埠為glViewport(0,0,w/4,h),再利用上述轉換公式在該儲存區域內集中轉換儲存得到Y分量。
針對UV分量的計算,如圖1F所示,UV分量是緊接著Y分量後面大小為w*h/2的儲存區域,這裡將兩個UV,即UVUV看成一個片段,也分別對應著片段中的RGBA。同樣每一列有w/4個片段,但與Y分量不同的是,它的高度只有一半,因為是4個像素才有一個UV。所以可以理解為對於RGBA圖像中兩列2w個像素點,映射到了YUV格式圖像中的一列w/4個片段中。所以對於(i,j)位置的片段(Ua, Va, Uc, Vc),其需要RGBA格式圖像中八個像素點才可計算得到,也就是八個片段,例如Pa對應著(m-0.5, n-1.5)位置的像素點,Pc對應(m-0.5, n+0.5)位置的像素點。為簡化理解和計算,這裡可以將a和c的橫坐標都取m。若需要歸一化,可以得到Pa為像素點(m, n-1.5*1/w),Pb為像素點(m, n+0.5*1/w)。根據轉換公式得到:
Ua = - 0.169 × Ra - 0.331 × Ga + 0.499 × Ba + 0.5
Va = 0.499 × Ra - 0.418 × Ga - 0.0813 × Ba + 0.5
Ub = - 0.169 × Rb - 0.331 × Gb + 0.499 × Bb + 0.5
Vb = 0.499 × Rb - 0.418 × Gb - 0.0813 × Bb + 0.5
根據YUV分量排列順序,儲存YUV格式圖像的儲存區域中,UV分量的起始點為Y分量後的位置,寬度也為w/4,高度為h/2,作為一個可選的實現方式,可以由OpenGL集中進行Y分量的轉換計算,根據OpenGL介面函數,可以設定視埠為glViewport(0, h, w/4, h/2),再利用上述轉換公式在該儲存區域內集中轉換儲存得到UV分量。
如圖2所示,是本說明書根據一示例性實施例示出的另一種圖像處理方法,所述方法包括:
在步驟202中,獲取待轉換的RGBA格式圖像;
在步驟204中,利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
在步驟206中,讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
可選地,所述根據所述像素點的RGBA值計算得到YUV分量值,包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
本實施例的具體細節可參考圖1A至圖1F所示的實施例,在此不再贅述。
與前述圖像處理方法、基於擴增實境的圖像處理的實施例相對應,本說明書還提供了圖像處理裝置、基於擴增實境的圖像處理裝置及其所應用的電子設備的實施例。
本說明書圖像處理裝置/基於擴增實境的圖像處理裝置的實施例可以應用在電子設備上。裝置實施例可以透過軟體來實現,也可以透過硬體或者軟硬體結合的方式來實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在檔處理的處理器將非易失性記憶體中對應的電腦程式指令讀取到記憶體中運行而形成的。從硬體層面而言,如圖3所示,為本說明書圖像處理裝置/基於擴增實境的圖像處理裝置所在電子設備的一種硬體結構圖,除了圖3所示的處理器310、記憶體330、網路介面320、以及非易失性記憶體340之外,實施例中裝置331所在的電子設備,通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
如圖4所示,圖4是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理裝置的方塊圖,所述裝置包括:
獲取模組41,用以:獲取AR素材,所述AR素材包括RGBA格式圖像;
計算模組42,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組43,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
可選地,所述計算模組42,具體用以:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述計算模組42,具體用以:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
如圖5所示,圖5是本說明書根據一示例性實施例示出的一種圖像處理裝置的方塊圖,
獲取模組51,用以:獲取待轉換的RGBA格式圖像;
計算模組52,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組53,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
可選地,所述計算模組52,具體用以:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述計算模組52,具體用以:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
相應地,本說明書還提供一種電子設備,包括:
處理器;
用以儲存處理器可執行指令的記憶體;
其中,所述處理器被配置成:
獲取AR素材,所述AR素材包括RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
本說明書還提供另一種電子設備,包括:
處理器;
用以儲存處理器可執行指令的記憶體;
其中,所述處理器被配置成:
獲取待轉換的RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
上述圖像處理裝置/基於擴增實境的圖像處理裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中,所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範疇內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和並行處理也是可以的或者可能是有利的。
本領域技術人員在考慮說明書及實踐這裡說明書的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未說明書的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍來指出。
應當理解的是,本說明書並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
在本說明書使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書。在本說明書和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出專案的任何或所有可能組合。
應當理解,儘管在本說明書可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。
擴增實境(Augmented Reality,簡稱AR)技術,是一種將真實世界資訊和虛擬世界資訊無縫整合的新技術,該技術可以將虛擬的資訊應用到真實世界,真實環境和虛擬物體即時地疊加到了同一個畫面或空間而同時存在。
如圖1A所示,是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理方法的應用場景圖,圖1A中用戶所持有的智慧型手機內置有攝像模組,用戶可以持該智慧型手機拍攝真實環境畫面,智慧型手機可以根據所拍攝的真實環境畫面中疊加渲染有AR素材。AR素材中可以包括有圖像,在某些電子設備的顯示模組中,需要獲取YUV格式圖像進行AR處理。然而,電子設備獲取到的圖像素材有可能是以其他格式進行儲存,例如RGBA等。因此,在進行AR處理前,需要對圖像的格式進行轉換。
AR場景中對資料處理速度的要求通常較高,因此,本說明書實施例提供一種基於擴增實境的圖像處理方案,針對RGBA格式圖像,透過在圖形處理器(GPU,Graphics Processing Unit)中讀取RGBA格式圖像中像素點的RGBA值,圖形處理器可以根據所述像素點的RGBA值快速計算得到YUV分量值,之後讀取出所述圖像處理器計算出的YUV分量值,可以獲得YUV格式圖像。本說明書實施例利用GPU的硬體加速能力,可以快速地進行RGBA格式與YUV格式的轉換,從而可以滿足AR場景中對速度的要求。接下來對本說明書實施例進行詳細說明。
如圖1B所示,圖1B是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理方法的流程圖,可應用於電子設備中,包括以下步驟:
在步驟102中,獲取AR素材,所述AR素材包括RGBA格式圖像;
在步驟104中,利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
在步驟106中,讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
其中,RGBA是代表Red(紅色)、Green(綠色)、Blue (藍色)和Alpha的色彩空間。如圖1C所示,是本說明書根據一示例性實施例示出的一種RGBA格式圖像的示意圖,該圖像的長為w、寬為h,每個像素點的像素值佔用4個位元組,分別是該像素的R、G、B和A四個分量值。
而YUV格式圖像包括Y、U和V三個分量,“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V”表示的則是色度(Chrominance或Chroma),作用是描述圖像色彩及飽和度,用以指定像素的顏色。
圖形處理器可以利用RGBA格式與YUV格式的轉換演算法,將所述像素點的RGBA值進行轉換計算得到YUV分量值。具體轉換時,RGBA格式圖像被輸入至圖形處理器,圖像資料被儲存於圖形處理器記憶體中,圖形處理器讀取記憶體中的圖像資料後進行格式轉換。
其中,對於RGBA格式圖像,圖像資料儲存時像素點的R、G、B和A四個分量值是連續儲存的;而YUV格式圖像,YUV格式的Y分量和U、V分量是分離的。YUV格式圖像中,根據圖像儲存方式的不同,還細分有多種類型,例如:YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411或YUV420等。其中,不同類型對應不同的Y、U和V分量的排列順序。
舉例來說,如圖1D所示,是本說明書根據一示例性實施例示出的一種YUV格式圖像的示意圖,圖1D所示圖像的YUV格式以NV12為例,前w*h個位元組是Y分量,每個分量佔用一個位元組,分別表示第(i,j)個像素的Y分量。而後續的w*h/2個位元組表示UV分量,每一列是以UVUVUV交替的形式來進行儲存的。
以720×488大小的圖像為例,按照儲存方式分為如下三個部分:
Y分量:(720×480)個位元組
U分量:(720×480/2)個位元組
V分量:(720×480/2)個位元組
三個部分內部均是列優先儲存,三個部分之間的排列順序是Y分量排列在前,之後由U和V交替順序儲存。也就是,YUV資料的0至720×480位元組是Y分量值,後續的位元組是U和V交替儲存。
再以其他儲存格式儲存的YUV格式圖像為例,例如,Y41P(和Y411)的儲存格式中,YUV分量排列順序如下:U0 Y0 V0 Y1 U4 Y2 V4 Y3 Y4 Y5 Y6 Y8 …。
基於此,圖形處理器可以根據所述像素點的RGBA值計算得到YUV分量值,考慮到RGBA格式與YUV格式的儲存方式不同,在一個可選的實現方式中,可以包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
其中,作為示例,所述RGBA格式轉換YUV格式的轉換演算法具體可以採用如下公式表示:
Y = 0.299×R + 0.587×G + 0.114×B + 0
U = -0.169×R-0.331×G + 0.499×B + 0.5
V = 0.499×R-0.418×G-0.0813×B + 0.5
透過上述方式,針對YUV格式圖像中像素點YUV分量排列順序,圖形處理器可以讀取RGBA圖像中像素點的RGBA值,並按照轉換演算法計算得到YUV分量值。計算完成後,圖形處理器中記憶體區域所儲存的計算結果即是YUV格式圖像中像素點YUV分量值,也就是YUV格式圖像。
實際應用中,GPU通用計算方面的標準包括有OpenCL、CUDA、ATI STREAM等,這些標準可以理解為GPU底層所提供的應用程式設計發展介面,因此,可以根據不同GPU所提供的程式設計介面類別型靈活地實現本說明書方案。
接下來以OpenCL(全稱Open Computing Language,開放運算語言)介面為例進行說明,OpenCL是第一個面向異構系統通用目的並行程式設計的開放式、免費標準,也是一個統一的程式設計環境,便於軟體發展人員為高性能計算伺服器、桌上型計算系統、手持設備編寫高效輕便的代碼。
OpenGL採用片段作為基本儲存單元,在一些例子中,OpenGL在處理RGBA格式圖像時,一個片段對應一個像素的RGBA值。仍以圖1C所示的RGBA格式圖像轉換為圖1D所示的YUV格式圖像為例,圖1E示出了計算Y分量的過程示意圖,圖1E中左邊是RGBA格式,右邊是YUV格式。本說明書實施例中以一個片段對應一個像素的RGBA值為例,轉換前,記憶體區域中儲存的RGBA值可以透過如下表格所示,其中,為了示例方便,以下表格僅以3個像素點(像素點(0,0)、像素點(0,1)和像素點(0,2))為例進行說明:
而相應的YUV格式圖像,其記憶體區域中儲存的YUV分量值可以透過如下表格所示:
透過上述對比可知,根據YUV分量排列順序,我們期望轉換後的YUV格式圖像中片段1是4個像素點的Y分量,而這一個片段(4個像素點)的Y分量,需要讀取RGBA格式圖像中四個片段(4個像素點)的像素值而計算得到。
基於此,為了實現快速的轉換,在一個可選的實現方式中,所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格式的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,可以包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
作為例子,針對圖1E再次進行說明。GPU在轉換時,將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中,並且,需要配置用以儲存YUV格式圖像的儲存區域。
圖1E中,以圖像的長為w、寬為h為例,對於Y分量的計算,Y分量需要儲存於前w*h個位元組的記憶體區域中,本實施例將四個像素點的Y分量看成一個片段,也就是這四個Y分量佔據了一個目標片段。而這個目標片段,涉及到四個像素點,因此需要讀取RGBA格式圖像中相應的四個片段(4個像素點)進行計算得到。具體地,因為寬度是w,所以一列有w/4個片段。對於每一列,將左邊的w個像素點繪製到右邊的w/4個片段中。所以對於(i,j)位置的片段(Ya,Yb,Yc,Yd),其對應著座標中的(Pa,Pb,Pc,Pd),Pa對應著(m,n-1.5)位置的像素點,Pb對應(m,n-0.5)位置的像素點,其它依此類推。這裡的兩個相鄰像素距離為1,是以總寬度來計算的。若OpenGL中需要歸一化,像素間距可以歸一化為1/w,所以Pa即對應著(m, n-1.5*1/w)。因此,根據YUV格式可以確定儲存區域中的目標片段,之後根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量,接著再獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中。
根據RGBA格式轉換YUV格式的轉換演算法,因此對於YUV格式圖像中的片段(i,j),可以求出其需要儲存為Y分量為:
Ya = 0.299 × Ra + 0.587 × Ga + 0.114 × Ba + 0
Yb = 0.299 × Rb + 0.587 × Gb + 0.114 × Bb + 0
Yc = 0.299 × Rc + 0.587 × Gc + 0.114 × Bc + 0
Yd = 0.299 × Rd + 0.587 × Gd + 0.114 × Bd + 0
根據YUV分量排列順序,儲存YUV格式圖像的儲存區域中,Y分量的起始點為儲存區域的起點,寬度為w/4,高度為h,作為一個可選的實現方式,可以由OpenGL集中進行Y分量的轉換計算,根據OpenGL介面函數,可以設定視埠為glViewport(0,0,w/4,h),再利用上述轉換公式在該儲存區域內集中轉換儲存得到Y分量。
針對UV分量的計算,如圖1F所示,UV分量是緊接著Y分量後面大小為w*h/2的儲存區域,這裡將兩個UV,即UVUV看成一個片段,也分別對應著片段中的RGBA。同樣每一列有w/4個片段,但與Y分量不同的是,它的高度只有一半,因為是4個像素才有一個UV。所以可以理解為對於RGBA圖像中兩列2w個像素點,映射到了YUV格式圖像中的一列w/4個片段中。所以對於(i,j)位置的片段(Ua, Va, Uc, Vc),其需要RGBA格式圖像中八個像素點才可計算得到,也就是八個片段,例如Pa對應著(m-0.5, n-1.5)位置的像素點,Pc對應(m-0.5, n+0.5)位置的像素點。為簡化理解和計算,這裡可以將a和c的橫坐標都取m。若需要歸一化,可以得到Pa為像素點(m, n-1.5*1/w),Pb為像素點(m, n+0.5*1/w)。根據轉換公式得到:
Ua = - 0.169 × Ra - 0.331 × Ga + 0.499 × Ba + 0.5
Va = 0.499 × Ra - 0.418 × Ga - 0.0813 × Ba + 0.5
Ub = - 0.169 × Rb - 0.331 × Gb + 0.499 × Bb + 0.5
Vb = 0.499 × Rb - 0.418 × Gb - 0.0813 × Bb + 0.5
根據YUV分量排列順序,儲存YUV格式圖像的儲存區域中,UV分量的起始點為Y分量後的位置,寬度也為w/4,高度為h/2,作為一個可選的實現方式,可以由OpenGL集中進行Y分量的轉換計算,根據OpenGL介面函數,可以設定視埠為glViewport(0, h, w/4, h/2),再利用上述轉換公式在該儲存區域內集中轉換儲存得到UV分量。
如圖2所示,是本說明書根據一示例性實施例示出的另一種圖像處理方法,所述方法包括:
在步驟202中,獲取待轉換的RGBA格式圖像;
在步驟204中,利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
在步驟206中,讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
可選地,所述根據所述像素點的RGBA值計算得到YUV分量值,包括:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值,包括:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
本實施例的具體細節可參考圖1A至圖1F所示的實施例,在此不再贅述。
與前述圖像處理方法、基於擴增實境的圖像處理的實施例相對應,本說明書還提供了圖像處理裝置、基於擴增實境的圖像處理裝置及其所應用的電子設備的實施例。
本說明書圖像處理裝置/基於擴增實境的圖像處理裝置的實施例可以應用在電子設備上。裝置實施例可以透過軟體來實現,也可以透過硬體或者軟硬體結合的方式來實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在檔處理的處理器將非易失性記憶體中對應的電腦程式指令讀取到記憶體中運行而形成的。從硬體層面而言,如圖3所示,為本說明書圖像處理裝置/基於擴增實境的圖像處理裝置所在電子設備的一種硬體結構圖,除了圖3所示的處理器310、記憶體330、網路介面320、以及非易失性記憶體340之外,實施例中裝置331所在的電子設備,通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
如圖4所示,圖4是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理裝置的方塊圖,所述裝置包括:
獲取模組41,用以:獲取AR素材,所述AR素材包括RGBA格式圖像;
計算模組42,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組43,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
可選地,所述計算模組42,具體用以:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述計算模組42,具體用以:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
如圖5所示,圖5是本說明書根據一示例性實施例示出的一種圖像處理裝置的方塊圖,
獲取模組51,用以:獲取待轉換的RGBA格式圖像;
計算模組52,用以:利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取模組53,用以:讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
可選地,所述計算模組52,具體用以:
根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據所述像素點的RGBA值計算得到YUV分量值。
可選地,所述圖像處理器提供有OpenGL介面,所述OpenGL介面採用片段作為基本儲存單元;
所述計算模組52,具體用以:
將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中;
配置用以儲存YUV格式圖像的儲存區域;
根據YUV格式確定所述儲存區域中的目標片段後,根據所述YUV分量排列順序確定所述目標片段需儲存YUV分量;
針對目標片段需儲存YUV分量,獲取所述原始片段中的RGBA值,根據所述轉換演算法計算得到YUV分量後儲存於所述目標片段中;
輸出所述儲存區域中各所述目標片段儲存的資料量,獲得所述YUV格式圖像。
相應地,本說明書還提供一種電子設備,包括:
處理器;
用以儲存處理器可執行指令的記憶體;
其中,所述處理器被配置成:
獲取AR素材,所述AR素材包括RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用所述YUV格式圖像進行AR處理。
本說明書還提供另一種電子設備,包括:
處理器;
用以儲存處理器可執行指令的記憶體;
其中,所述處理器被配置成:
獲取待轉換的RGBA格式圖像;
利用圖形處理器讀取所述RGBA格式圖像中像素點的RGBA值,根據所述像素點的RGBA值計算得到YUV分量值;
讀取出所述圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
上述圖像處理裝置/基於擴增實境的圖像處理裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中,所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範疇內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和並行處理也是可以的或者可能是有利的。
本領域技術人員在考慮說明書及實踐這裡說明書的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未說明書的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍來指出。
應當理解的是,本說明書並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
310‧‧‧處理器
320‧‧‧網路介面
330‧‧‧記憶體
331‧‧‧圖像處理裝置/基於擴增實境的圖像處理裝置
340‧‧‧非易失性記憶體
41‧‧‧獲取模組
42‧‧‧計算模組
43‧‧‧讀取模組
51‧‧‧獲取模組
52‧‧‧計算模組
53‧‧‧讀取模組
此處的附圖被併入說明書中並構成本說明書的一部分,示出了符合本說明書的實施例,並與說明書一起用來解釋本說明書的原理。
圖1A是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理方法的應用場景圖。
圖1B是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理方法的流程圖。
圖1C是本說明書根據一示例性實施例示出的一種RGBA格式圖像的示意圖。
圖1D是本說明書根據一示例性實施例示出的一種YUV格式圖像的示意圖。
圖1E是本說明書根據一示例性實施例示出的一種示出了計算Y分量的過程示意圖。
圖1F是本說明書根據一示例性實施例示出的一種示出了計算UV分量的過程示意圖。
圖2是本說明書根據一示例性實施例示出的一種圖像處理方法的流程圖。
圖3是本說明書圖像處理裝置/基於擴增實境的圖像處理裝置所在電子設備的一種硬體結構圖。
圖4是本說明書根據一示例性實施例示出的一種基於擴增實境的圖像處理裝置的方塊圖。
圖5是本說明書根據一示例性實施例示出的一種圖像處理裝置的方塊圖。
Claims (11)
- 一種基於擴增實境的圖像處理方法,該方法包括: 獲取AR素材,該AR素材包括RGBA格式圖像; 利用圖形處理器讀取該RGBA格式圖像中像素點的RGBA值,根據該像素點的RGBA值計算得到YUV分量值;以及 讀取出該圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用該YUV格式圖像進行AR處理。
- 根據請求項1所述的方法,該根據該像素點的RGBA值計算得到YUV分量值,包括: 根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據該像素點的RGBA值計算得到YUV分量值。
- 根據請求項2所述的方法,該圖像處理器提供有OpenGL介面,該OpenGL介面採用片段作為基本儲存單元; 該根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據該像素點的RGBA值計算得到YUV分量值,包括: 將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中; 配置用以儲存YUV格式圖像的儲存區域; 根據YUV格式確定該儲存區域中的目標片段後,根據該YUV分量排列順序確定該目標片段需儲存YV分量; 針對目標片段需儲存YUV分量,獲取該原始片段中的RGBA值,根據該轉換演算法計算得到YUV分量後儲存於該目標片段中;以及 輸出該儲存區域中各該目標片段儲存的資料量,獲得該YUV格式圖像。
- 一種圖像處理方法,該方法包括: 獲取待轉換的RGBA格式圖像; 利用圖形處理器讀取該RGBA格式圖像中像素點的RGBA值,根據該像素點的RGBA值計算得到YUV分量值;以及 讀取出該圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
- 根據請求項4所述的方法,該根據該像素點的RGBA值計算得到YUV分量值,包括: 根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據該像素點的RGBA值計算得到YUV分量值。
- 根據請求項4所述的方法,該圖像處理器提供有OpenGL介面,該OpenGL介面採用片段作為基本儲存單元; 該根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據該像素點的RGBA值計算得到YUV分量值,包括: 將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中; 配置用以儲存YUV格式圖像的儲存區域; 根據YUV格式確定該儲存區域中的目標片段後,根據該YUV分量排列順序確定該目標片段需儲存YUV分量; 針對目標片段需儲存YUV分量,獲取該原始片段中的RGBA值,根據該轉換演算法計算得到YUV分量後儲存於該目標片段中;以及 輸出該儲存區域中各該目標片段儲存的資料量,獲得該YUV格式圖像。
- 一種基於擴增實境的圖像處理裝置,該裝置包括: 獲取模組,用以:獲取AR素材,該AR素材包括RGBA格式圖像; 計算模組,用以:利用圖形處理器讀取該RGBA格式圖像中像素點的RGBA值,根據該像素點的RGBA值計算得到YUV分量值;以及 讀取模組,用以:讀取出該圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用該YUV格式圖像進行AR處理。
- 根據請求項7所述的裝置,該計算模組,具體用以: 根據YUV格式所指定的YUV分量排列順序、以及RGBA格式轉換YUV格的轉換演算法,根據該像素點的RGBA值計算得到YUV分量值。
- 根據請求項7所述的裝置,該圖像處理器提供有OpenGL介面,該OpenGL介面採用片段作為基本儲存單元; 該計算模組,具體用以: 將RGBA格式圖像中每個像素點的RGBA值儲存於每個原始片段中; 配置用以儲存YUV格式圖像的儲存區域; 根據YUV格式確定該儲存區域中的目標片段後,根據該YUV分量排列順序確定該目標片段需儲存YUV分量; 針對目標片段需儲存YUV分量,獲取該原始片段中的RGBA值,根據該轉換演算法計算得到YUV分量後儲存於該目標片段中;以及 輸出該儲存區域中各該目標片段儲存的資料量,獲得該YUV格式圖像。
- 一種圖像處理裝置,該裝置包括: 獲取模組,用以:獲取待轉換的RGBA格式圖像; 計算模組,用以:利用圖形處理器讀取該RGBA格式圖像中像素點的RGBA值,根據該像素點的RGBA值計算得到YUV分量值;以及 讀取模組,用以:讀取出該圖像處理器計算出的YUV分量值,獲得YUV格式圖像。
- 一種電子設備,包括: 處理器; 用以儲存處理器可執行指令的記憶體; 其中,該處理器被配置成: 獲取AR素材,該AR素材包括RGBA格式圖像; 利用圖形處理器讀取該RGBA格式圖像中像素點的RGBA值,根據該像素點的RGBA值計算得到YUV分量值;以及 讀取出該圖像處理器計算出的YUV分量值,獲得YUV格式圖像,利用該YUV格式圖像進行AR處理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810068563.2 | 2018-01-24 | ||
??201810068563.2 | 2018-01-24 | ||
CN201810068563.2A CN108322722B (zh) | 2018-01-24 | 2018-01-24 | 基于增强现实的图像处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201933046A true TW201933046A (zh) | 2019-08-16 |
TWI695295B TWI695295B (zh) | 2020-06-01 |
Family
ID=62887604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107144780A TWI695295B (zh) | 2018-01-24 | 2018-12-12 | 基於擴增實境的圖像處理方法、裝置及電子設備 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN108322722B (zh) |
TW (1) | TWI695295B (zh) |
WO (1) | WO2019144744A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322722B (zh) * | 2018-01-24 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 基于增强现实的图像处理方法、装置及电子设备 |
CN109410308A (zh) * | 2018-09-29 | 2019-03-01 | Oppo广东移动通信有限公司 | 图像处理方法和装置、电子设备、计算机可读存储介质 |
CN111093096A (zh) * | 2019-12-25 | 2020-05-01 | 广州酷狗计算机科技有限公司 | 视频编码方法及装置、存储介质 |
CN111858022A (zh) * | 2020-02-27 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 图像识别方法、嵌入式终端、电子设备及可读存储介质 |
CN113554721B (zh) * | 2021-07-23 | 2023-11-14 | 北京百度网讯科技有限公司 | 图像数据格式转换方法和装置 |
CN114040246A (zh) * | 2021-11-08 | 2022-02-11 | 网易(杭州)网络有限公司 | 图形处理器的图像格式转换方法、装置、设备及存储介质 |
CN118175157B (zh) * | 2024-05-09 | 2024-08-02 | 江苏北弓智能科技有限公司 | 一种远程移动云桌面采集方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6927783B1 (en) * | 1998-11-09 | 2005-08-09 | Broadcom Corporation | Graphics display system with anti-aliased text and graphics feature |
JP4568120B2 (ja) * | 2005-01-04 | 2010-10-27 | 株式会社東芝 | 再生装置 |
US8014615B2 (en) * | 2005-09-02 | 2011-09-06 | Adobe Systems Incorporated | System and method for decompressing video data and alpha channel data using a single stream |
CN102103463B (zh) * | 2011-02-17 | 2013-03-13 | 浙江宇视科技有限公司 | 一种带透明度用户界面信息的处理方法和设备 |
US9582847B2 (en) * | 2013-04-22 | 2017-02-28 | Intel Corporation | Color buffer compression |
CN106228581B (zh) * | 2016-08-01 | 2019-06-21 | 武汉斗鱼网络科技有限公司 | 通过gpu将像素格式由argb转换为nv12的方法及系统 |
CN106231205B (zh) * | 2016-08-10 | 2019-07-30 | 苏州黑盒子智能科技有限公司 | 增强现实移动终端 |
CN107071514B (zh) * | 2017-04-08 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种图片文件处理方法及智能终端 |
CN107071516B (zh) * | 2017-04-08 | 2018-12-21 | 腾讯科技(深圳)有限公司 | 一种图片文件处理方法 |
CN107274346A (zh) * | 2017-06-23 | 2017-10-20 | 中国科学技术大学 | 实时全景视频拼接系统 |
CN108322722B (zh) * | 2018-01-24 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 基于增强现实的图像处理方法、装置及电子设备 |
-
2018
- 2018-01-24 CN CN201810068563.2A patent/CN108322722B/zh active Active
- 2018-12-12 TW TW107144780A patent/TWI695295B/zh active
- 2018-12-25 WO PCT/CN2018/123332 patent/WO2019144744A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
TWI695295B (zh) | 2020-06-01 |
WO2019144744A1 (zh) | 2019-08-01 |
CN108322722A (zh) | 2018-07-24 |
CN108322722B (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI695295B (zh) | 基於擴增實境的圖像處理方法、裝置及電子設備 | |
RU2677584C1 (ru) | Использование межкадровой когерентности в архитектуре построения изображений с сортировкой примитивов на промежуточном этапе | |
WO2016155382A1 (zh) | 生成马赛克图像的方法和装置 | |
CN103440674B (zh) | 一种数字图像蜡笔特效的快速生成方法 | |
CN112241933A (zh) | 人脸图像处理方法、装置、存储介质及电子设备 | |
CN110782387B (zh) | 图像处理方法、装置、图像处理器及电子设备 | |
CN103139478A (zh) | 一种主副画面实时渲染的拍照方法 | |
CN111080806B (zh) | 贴图处理方法及装置、电子设备、存储介质 | |
US10237563B2 (en) | System and method for controlling video encoding using content information | |
CN114040246A (zh) | 图形处理器的图像格式转换方法、装置、设备及存储介质 | |
WO2022022260A1 (zh) | 图像风格迁移方法及其装置 | |
CN108256072B (zh) | 相册显示方法、装置、存储介质以及电子设备 | |
US10212406B2 (en) | Image generation of a three-dimensional scene using multiple focal lengths | |
US11748911B2 (en) | Shader function based pixel count determination | |
CN114693894A (zh) | 一种虚拟世界中图片转换为积木块的方法、系统及装置 | |
CN103795925A (zh) | 一种可交互的主副画面实时渲染的拍照方法 | |
CN111726566B (zh) | 一种实时校正拼接防抖的实现方法 | |
US9681064B1 (en) | Lookup table interpolation in a film emulation camera system | |
WO2016187769A1 (zh) | 在视频中实现多层蒸汽特效的方法和装置 | |
TWI828575B (zh) | 環景佈景生成系統及其控制方法 | |
JPWO2019224947A1 (ja) | 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム | |
CN112995539B (zh) | 一种移动终端及图像处理方法 | |
CN116091572B (zh) | 获取图像深度信息的方法、电子设备及存储介质 | |
CN112053277B (zh) | 一种图像换肤的方法、装置、设备及存储介质 | |
WO2024187862A1 (zh) | 图像处理方法、装置、计算机设备和存储介质 |