TW201843651A - 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法 - Google Patents
紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法 Download PDFInfo
- Publication number
- TW201843651A TW201843651A TW106140077A TW106140077A TW201843651A TW 201843651 A TW201843651 A TW 201843651A TW 106140077 A TW106140077 A TW 106140077A TW 106140077 A TW106140077 A TW 106140077A TW 201843651 A TW201843651 A TW 201843651A
- Authority
- TW
- Taiwan
- Prior art keywords
- pixel
- texture map
- pixel row
- value
- row
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 title claims description 61
- 230000006835 compression Effects 0.000 claims abstract description 77
- 238000007906 compression Methods 0.000 claims abstract description 77
- 238000013507 mapping Methods 0.000 claims description 21
- 238000005070 sampling Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/265—Mixing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/261—Image signal generators with monoscopic-to-stereoscopic image conversion
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
一種紋理貼圖之壓縮方法,用於產生一360度全景視頻。紋理貼圖之壓縮方法包括下列步驟:接收用於一球體模型之一原始紋理貼圖,其中該原始紋理貼圖為一矩形圖像且包括複數像素行且每一像素行於球體模型上有一對應球體位置;依據每一像素行之對應球體位置,決定每一像素行之一壓縮比;以及以各像素行之各壓縮比,壓縮各像素行,以產生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖係映射至球體模型以產生360度全景視頻。
Description
本發明係有關於圖像處理,尤指有關於處理全景視頻的紋理貼圖(texture image)的圖像資料處理系統以及相關紋理貼圖之壓縮方法與產生360度全景視頻之方法。
隨著電腦技術之發展與圖像繪圖技術的不斷進步,全景圖像(panorama images)與360全景視頻(panoramic videos)之應用越來越普及。全景圖像為具有特別的大視野(field-of-view,FOV)、誇張的尺寸比(aspect ratio)、或其組合之圖像,其將複數個圖像組合或拼接(stitch)在一起以增加視野。全景圖像有時也被稱為“全景”,它能提供360度的場景圖。360度全景視頻為一個水平和縱向都是360°的視頻集合,觀者的觀看視角在中心位置上,是一種主動視角的觀看,同時想看哪裡就看哪裡,這種觀感是一種環境所包圍的浸入式體驗,讓觀者體會到一種身臨其境的感受。現有應用中,主要可經由是球體、圓柱狀或立方體等三種模型構建不同紋理貼圖(texture image)。其中,因球體模型的表面積比圓柱狀模型與立方體模型更小,因而球體模型常被用來創建不同紋理貼圖。
一般而言,紋理貼圖為矩形並且具有一座標為(U,V)之座標空間的一數位圖像。紋理貼圖可根據其位置分配至一座標值(U,V)。於一紋理映射運算(texture mapping)中,當對一3D圖像模型進行渲染(render)以產生一目的圖像時,一紋理將被映射至此模型的表面上。先前技術採用的球體紋理貼圖是經過特殊處理後的圖像,係通過多台視頻(video)攝影機的同時拍攝,例如由多個攝像機同時拍攝房間的多個角度的圖片將所有方向的圖像動態記錄下來,再通過後期專業縫合軟件進行縫合,經過特殊處理後得到的適合應用於球體表面的紋理貼圖。傳輸過程中的平面視頻是一幀一幀的2維圖像,2維圖像再一幀一幀貼到球體模型上,將視頻流中傳輸的一幀一幀的紋理貼圖作為球體模型的紋理貼圖使用,達到從2維圖像到3維空間的一個轉換操作,實時渲染出3維空間中的場景變化,形成3維空間中的動態效果,從而形成360度全景視頻,得到所謂的360全景視頻播放效果。
一般而言,藉由紋理映射進行貼圖常會消耗大量傳輸頻寬。因此,先前技術中,通常會將紋理貼圖進行壓縮,以降低所需之頻寬。先前技術中以矩形圖像作為球體模型的紋理貼圖,所使用的紋理貼圖是一個寬高比為2:1的圖像,其寬度映射為球體的赤道周長,高度映射為球體上連接南北兩極經線的長度。在紋理採樣階段,球體上緯度為0°的赤道在矩形紋理的寬度範圍內採樣顏色值,緯度為90°的南北極同樣在紋理 的寬度範圍內進行顏色採樣(即:0°緯度的圓周和90°緯度的圓周都映射到紋理貼圖的相同區域大小上)。因此,以這種紋理貼圖所建立出來的球體,在球體上靠近赤道的視口所對應紋理貼圖上的採樣區域面積會比南北兩極視口所對應的紋理貼圖上採樣區域面積小,從而出現南北極點映射到紋理貼圖上的紋理圖像寬度範圍內的顏色值。如果以球體上靠近赤道區域的紋理解析度為基準,可以認為球體上南北兩極位置上的紋理值存在資訊的冗餘。因此,紋理貼圖在球體模型上南北兩極出現的冗餘資訊過多的問題,這些冗餘的資料也會佔用不必要的傳輸頻寬。
有鑑於此,本發明提供一種紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法。
本發明的一實施例提供一種紋理貼圖之壓縮方法,用於產生一360度全景視頻。紋理貼圖之壓縮方法包括下列步驟:接收用於一球體模型之一原始紋理貼圖,其中該原始紋理貼圖為一矩形圖像且包括複數像素行且每一像素行於球體模型上有一對應球體位置;依據每一像素行之對應球體位置,決定每一像素行之一壓縮比;以及以各像素行之各壓縮比,壓縮各像素行,以產生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖係映射至球體模型以產生360度全景視頻。
本發明另一實施例提供一種圖像資料處理系統,至少包括一儲存單元以及一處理器。儲存單元用以儲存用於一球體模型之至少一原始紋理貼圖,其中原始紋理貼圖為一矩形 圖像且包括複數像素行且每一像素行於球體模型上有一對應球體位置。處理器耦接於儲存單元,用於接收原始紋理貼圖,依據每一像素行之對應球體位置,決定每一像素行之一壓縮比,以各像素行之壓縮比,壓縮各像素行,以產生一非矩形的一壓縮紋理貼圖並儲存壓縮紋理貼圖至儲存單元。
本發明另一實施例提供一種產生360度全景視頻之方法,包括下列步驟:接收一壓縮紋理貼圖,其中壓縮紋理圖像具有複數像素行i,各像素行i包括一第一數量之像素且各像素行i包括複數參數值,其中參數值包括對應於像素行i之一取樣像素數量、一第一索引值、以及一第二索引值;依據各像素行i之參數值,執行一紋理座標映射,得到各像素行i之一映射紋理座標;依據參數值,設置球體模型上各細分三角形的紋理座標屬性;以及將壓縮紋理貼圖依據參數值與映射紋理座標,映射於球體模型之一對應位置上以產生360度全景視頻。
本發明之上述方法可經由本發明之裝置或系統來實作,其為可執行特定功能之硬體或韌體,亦可以透過程式碼方式收錄於一紀錄媒體中,並結合特定硬體來實作。當程式碼被電子裝置、處理器、電腦或機器載入且執行時,電子裝置、處理器、電腦或機器變成用以實行本發明之裝置或系統。
100‧‧‧圖像資料處理系統
110‧‧‧處理器
120‧‧‧介面
130‧‧‧圖形處理單元
140‧‧‧儲存單元
141‧‧‧揮發性記憶體
142‧‧‧非揮發性記憶體
150‧‧‧顯示裝置
200‧‧‧原始紋理貼圖
S402、S404、S406‧‧‧步驟
510、520‧‧‧像素行
S602、S604、...、S618‧‧‧步驟
700‧‧‧壓縮紋理貼圖
S902、S904、S906、S908‧‧‧步驟
S1002、S1004、S1006、S1008‧‧‧步驟
第1圖為依據本發明實施例之圖像資料處理系統的示意圖。
第2圖為依據本發明實施例之原始紋理貼圖的示意圖。
第3圖為依據本發明實施例之紋理貼圖像素行至球體的映 射示意圖。
第4圖顯示本發明一實施例之紋理貼圖壓縮方法之流程圖。
第5圖為依據本發明實施例之原始紋理貼圖分組的結果的示意圖。
第6圖顯示本發明另一實施例之紋理貼圖壓縮方法之流程圖。
第7圖為依據本發明實施例之壓縮紋理貼圖的示意圖。
第8A圖、第8B圖以及第8C圖為依據本發明實施例之球體模型建構示意圖。
第9圖顯示本發明一實施例之產生360度全景視頻之方法流程圖。
第10圖顯示本發明一實施例之360度全景視頻之播放方法流程圖。
為讓本發明之目的、特徵、和優點能更明顯易懂,特舉出下文實施例,並配合所附圖式,作詳細說明如下。注意的是,本章節所敘述的實施例目的在於說明本發明之實施方式而非用以限定本發明之保護範圍,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。應理解下列實施例可經由軟體,硬體,韌體,或上述任意組合來實現。
本發明實施例提供一種紋理貼圖的壓縮方法及其相關圖像資料處理系統與產生360度全景視頻的方法,可以根 據球體上不同緯度圓周的大小決定紋理貼圖像素行上的壓縮比,將先前技術中所使用的矩形紋理貼圖壓縮成非矩形紋理貼圖(例如:近似橢圓狀的紋理貼圖),以達到球體上解析度的各向同性,因而可有效解決先前技術中紋理貼圖在球體模型上南北兩極出現的冗餘資訊過多的問題。
第1圖為依據本發明實施例之圖像資料處理系統的示意圖。圖像資料處理系統100可為能夠處理圖像或資料的桌上型電腦、一體成型(All-In-One,AIO)電腦、一般筆電、觸控筆電、或一可攜式裝置或手持裝置,例如是數位個人助理(PDA)、智慧型手機(smartphone)、平板電腦(tablet)、行動電話、行動上網裝置(Mobile Internet Device,MID)、筆記型電腦、車用電腦、數位相機、數位媒體播放器、遊戲裝置或任何類型的行動計算裝置、或者圖像資料處理系統100可以由複數個設備來提供。然而,本領域熟習技藝者應可理解本發明並不限於此。於一些實施例中,圖像資料處理系統100也可由複數個晶片或單晶片來實現,例如,片上系統(SOC)或在行動設備中放置的行動處理器。舉例來說,圖像資料處理系統100包含處理器110、介面(interface)120、圖形處理單元(graphics processing unit,GPU)130、儲存單元140以及顯示裝置150。處理器110、圖形處理單元130、儲存單元140以及顯示裝置150可透過介面120而彼此耦接。舉例來說,於一實施例中,介面120可為一系統匯流排,此系統匯流排耦接各種系統元件如圖形處理單元130、儲存單元140以及顯示裝置150等到處理器110。
處理器110可為中央處理單元(central processing unit,CPU)、通用處理器、微處理器(Micro-Control Unit,MCU)數位訊號處理器(Digital Signal Processor,DSP)、或任意等效電路等,用以提供資料分析、處理及運算之功能,但是本發明並非限於此。儲存單元140可以包含揮發性記憶體(volatile memory)141、以及非揮發性記憶體142,用以儲存相關資料,例如運算過程中的中間資料及執行結果資料等。揮發性記憶體141可為動態隨機存取記憶體(Dynamic Radom Access Memory,DRAM)、或靜態隨機存取記憶體(SRAM),以及非揮發性記憶體142可為唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體(Flash memory)、硬碟、固態硬碟等。儲存單元140也可用以儲存可供處理器110與圖形處理單元130執行之指令集及/或程式碼程式模組。一般而言,程式模組包含常序(routines)、程式(program)、物件(object)、元件(component)等。舉例來說,在圖像資料處理系統100上使用的應用的程式碼可預先儲存於非揮發性記憶體142中。處理器110可自非揮發性記憶體142下載程式至揮發性記憶體141,並執行應用的程式碼。處理器110也可傳輸圖形資料至圖形處理單元130,以及圖形處理單元130可確定將呈現在顯示裝置150上的圖形資料。需要注意的是,揮發性記憶體141以及非揮發性記憶體142可描述為儲存單元,並且可分別作為不同的儲存單元。
顯示裝置150可為顯示電路或被耦接以用於控制顯示裝置(圖未示)的硬體。顯示裝置150可包含驅動電路、顯示面板中的一個或組合,以及顯示裝置150可置於圖像資料處理系統100中或之外。顯示裝置150可顯示相關資料,例如是文 字、圖形、介面及/或各種資訊如顯示或呈現結果等。舉例來說,顯示裝置150可用以呈現結果之畫面,例如:液晶顯示器(LCD)。應理解的是,於一些實施例中,顯示裝置150係結合觸碰感應裝置(未顯示)之螢幕。觸控感應裝置係具有一觸控表面,其包括至少一維度的感測器以偵測靠近或在觸控表面上的一輸入工具如手指或觸控筆等在其表面上的接觸及動作。因此,使用者可透過顯示裝置150來進行觸控輸入命令或訊號。
於一些實施例中,圖像資料處理系統100可更包括一圖像輸入介面(圖未示),用以接收源圖像,例如原始紋理貼圖圖像資料或視訊資料。在一個實施例中,圖像輸入介面可具有圖像擷取裝置以用於擷取源圖像。圖像擷取裝置可包含圖像感測器,該圖像感測器可為單一感測器,或包含複數個獨立的或分開的感測單元的感測陣列。舉例來說,圖像擷取裝置可為具有魚眼鏡頭(fisheye lens)的複數個攝像頭。在其他實施例中,圖像輸入介面可自外部圖像擷取裝置接收源圖像。此圖像輸入介面可獲得源圖像(例如,魚眼圖)並提供源圖像至處理器110。
在一些實施例中,處理器110可進一步包含編碼器(圖未示)以獲得源圖像並編碼該源圖像以在與當前視訊標準(例如標準H.264(MPEG-4 AVC)或標準H.265)相容的任何合適的媒體格式中產生已編碼的圖像,例如,已編碼的視訊位元流。舉例來說,編碼器可以為標準圖像/視訊轉碼器或具有預扭曲(pre-warping)功能的圖像/視訊轉碼器,但是本發明並非以此為限。當編碼器為具有預扭曲功能的圖像/視訊轉碼器時, 編碼器可進一步在編碼期間對已編碼的視訊位元流執行重新映射(remapping)或扭曲操作,以移除原始源圖像或視訊資料中的失真。在一些實施例中,處理器110可進一步包含解碼器(圖未示)以解碼已編碼的視訊位元流,以利用由已編碼的視訊位元流使用的視訊標準(例如,標準H.264(MPEG-4 AVC)或標準H.265)相容的合適的媒體格式而獲得源圖像。
在一些實施例中,儘管圖未示,圖像資料處理系統100可包含其他功能單元,例如鍵盤、滑鼠、觸控板、或通訊單元(例如,乙太網卡或晶片組)、無線網卡或晶片組、基頻晶片組以及射頻晶片組以用於蜂窩通訊。
處理器110可從儲存單元140中載入並執行指令集及/或程式碼,以控制儲存單元140與顯示裝置150之運作來執行本發明所述之紋理貼圖之壓縮方法。上述方法包括以下步驟:接收用於一球體模型之一原始紋理貼圖,其中原始紋理貼圖為一矩形圖像且包括複數像素行且每一像素行於球體模型上有一對應球體位置;依據每一像素行之對應球體位置,決定每一像素行之一壓縮比;以及以各像素行之各壓縮比,壓縮各像素行,以產生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖係映射至球體模型以產生360度全景視頻,其細節將於後進行說明。
具體來說,每個原始紋理貼圖為一具有一高度以及一寬度的矩形圖像且此原始紋理貼圖可隨後用以產生一360度全景視頻,如第2圖所示。第2圖為依據本發明實施例之原始紋理貼圖200的示意圖。如第2圖所示,原始紋理貼圖200可為 寬高比為2:1的矩形圖像,其為一個經過特殊處理後得到的適合應用於球體表面的紋理貼圖且其寬度映射為球體的赤道周長,高度映射為球體模型上連接南北兩極經線的長度。每個原始紋理貼圖可以以相同的方式劃分。此外,原始紋理貼圖圖像可以儲存在記憶體單元140中,例如,儲存在揮發性記憶體141中。揮發性記憶體141可儲存原始紋理貼圖200的每個像素的相應資訊,例如:各像素之像素值及此像素在哪一像素行與在此像素行的哪一對應像素位置等資訊。
在此實施例的紋理採樣階段,原始紋理貼圖200可依緯度劃分為多個像素行且每一像素行於球體模型上有一對應球體位置。例如,球體上緯度為0°的赤道在原始紋理貼圖200的一第一像素行的寬度範圍內採樣顏色值,緯度為90°的南北極同樣在原始紋理貼圖200的第二像素行的寬度範圍內進行顏色採樣(即:0°緯度的圓周和90°緯度的圓周都映射到原始紋理貼圖200的相同區域大小上)。因此,原始紋理貼圖200被應用在球體模型上以產生360度全景視頻時會有南北兩極的冗餘資訊過多的問題。如前述,360度全景視頻為一個水平和縱向都是360°的視頻集合,觀者的觀看視角在中心位置上,是一種主動視角的觀看,同時想看哪裡就看哪裡,這種觀感是一種環境所包圍的浸入式體驗,可讓觀者體會到一種身臨其境的感受。在此實施例中,原始紋理貼圖係映射至一球體模型以產生該360度全景視頻。因此,為解決前述問題,本案之處理器110可以從揮發性記憶體141獲得原始紋理貼圖的每個像素的相應資訊,並根據各像素球體上不同緯度圓周大小決定紋理貼圖上各 像素行的壓縮比,以產生一壓縮紋理貼圖。藉此將矩形的原始貼圖壓縮成非矩形紋理貼圖(例如:近似橢圓狀的紋理貼圖),以有效解決先前技術中紋理貼圖在球體模型上南北兩極出現的冗餘資訊過多的問題。
第3圖為依據本發明實施例之紋理貼圖像素行至球體的映射示意圖。如第3圖所示,假設原始紋理貼圖上的寬度值為width,高度值為height且原始紋理貼圖上的每個像素行(於圖中表示為i)映射到球面上的緯線圓周上,其中,原始紋理貼圖最中間像素行(於圖中表示為j)映射到球體的赤道圓周上。接著,處理器110根據緯線圓周大小來確定壓縮紋理貼圖上各像素行的像素數,緯線圓周的大小與緯線的高度線性相關,如第3圖中的δ角的大小直接決定緯線圓周大小。因此,利用δ角的大小與原始紋理貼圖的寬度width,處理器110可透過如下公式(1)、公式(2)以及公式(3)計算得到壓縮紋理貼圖第i行像素行的像素數PixelOfLine[i]:
δ=i*θ (2)
PixelOfLine[i]=min((sin(δ)+offset)*width,width) (3)
其中,width與height分別為原始紋理貼圖的寬度和高度值,offset是為了保留南北極資訊所設置的一偏移量,此偏移量的取值範圍在0~1之間(例如:設置為0.05),偏移量的取值決定著壓縮效果。
接著,處理器110利用公式(3)所計算得到的壓縮紋理貼圖第i行像素行的像素數PixelOfLine[i],可以分別透過以 下公式(4)與公式(5)計算得到壓縮紋理貼圖第i行像素行中有效像素儲存的開始索引值StartPixel[i]和結束索引值EndPixel[i]:
EndPixel[i]=StartPixel[i]+PixelOfLine[i]-1 (5)
其中,各像素行之開始索引值StartPixel[i]以及結束索引值EndPixel[i]分別表示該對應像素行中有效像素儲存之開始像素位置以及結束像素位置。也就是說,開始索引值StartPixel[i]與結束索引值EndPixel[i]分別表示第i行像素行之有效像素採樣範圍。
之後,處理器110便可利用公式(3)所計算得到的壓縮紋理貼圖第i行像素行的像素數PixelOfLine[i]與寬度width,透過以下公式(6)計算得到各像素行的壓縮比ratio[i]為:
第4圖顯示本發明一實施例之紋理貼圖壓縮方法之流程圖。請同時參照第1圖、第2圖、第3圖與第4圖。依據本發明實施例之紋理貼圖壓縮方法可以適用於一圖像資料處理系統,舉例來說,可適用於第1圖的圖像資料處理系統100並由處理器110加以執行。
首先,如步驟S402,處理器110接收用於一球體模型之一原始紋理貼圖,其中原始紋理貼圖(如第2圖所示的原始紋理貼圖200)為一矩形圖像且包括複數像素行並且每一像素 行於球體模型上有一對應球體位置。
接著,如步驟S404,處理器110依據每一像素行之對應球體位置,決定每一像素行之一壓縮比。其中壓縮比表示原始紋理貼圖與壓縮紋理貼圖之間的像素數量差異,壓縮比愈大則兩者的像素數量差異愈大。具體來說,處理器110可透過前述公式(1)至公式(6)來決定壓縮紋理貼圖的各像素行的參數值,例如第i行像素行的像素數PixelOfLine[i]、原始紋理貼圖第i行像素行中壓縮紋理貼圖第i行像素行中有效像素儲存的開始索引值StartPixel[i]和結束索引值EndPixel[i],從而據此決定每一像素行之一壓縮比ratio[i]。
於一些實施例中,原始紋理貼圖可具有一高度值與一寬度值,球體模型可沿緯線方向分為複數緯線圓周,其中,同一像素行的所有像素對應於這些緯線圓周中的其中一緯線圓周的位置。其中,處理器110可更對各像素行,依據各像素行的對應球體位置,由這些緯線圓周中決定一對應緯線圓周,依據高度值、寬度值以及各像素行之對應緯線圓周之一圓周長,決定一像素數,以及依據各像素行之像素數以及寬度值,決定各像素行之壓縮比,以便依據每一像素行的對應球體位置,決定每一像素行的壓縮比,其中各像素行之壓縮比係反比於像素數。舉例來說,處理器110可經由公式(1)至公式(3)決定壓縮紋理貼圖第i行像素行中的像素數PixelOfLine[i],經由公式(4)至公式(5)得到原始紋理貼圖第i行像素行中有效像素儲存的開始索引值StartPixel[i]和結束索引值EndPixel[i],再經由公式(6)決定像素行i的壓縮比。
於一些實施例中,像素行中至少包括其對應球體位置靠近球體模型的兩極的一第一像素行以及其對應球體位置遠離球體模型的兩極的一第二像素行且靠近球體模型的兩極的第一像素行的壓縮比係大於其對應球體位置遠離球體模型的兩極該第二像素行之壓縮比。舉例來說,於一實施例中,球體上緯度為0°的赤道在原始紋理貼圖200的第一像素行的寬度範圍內採樣顏色值,緯度為90°的南北極會在原始紋理貼圖200的第二像素行的少數寬度範圍內進行顏色採樣。
於一些實施例中,原始紋理貼圖的各像素行於壓縮紋理貼圖中有一對應像素行,並且各像素行之開始索引值以及結束索引值分別表示對應像素行中有效像素儲存的開始像素位置以及結束像素位置。於一些實施例中,其中原始紋理貼圖的各像素行於壓縮紋理貼圖中的對應像素行中包括複數像素以及各像素具有一像素位置,且處理器110可更依據各像素行之開始索引值以及結束索引值以及各像素之像素位置,決定對應像素行中各像素位置之像素值。
關於如何依據前述公式(1)至公式(6)來決定壓縮紋理貼圖的各像素行的參數值,例如第i行像素行的像素數PixelOfLine[i]、原始紋理貼圖第i行像素行中壓縮紋理貼圖第i行像素行中有效像素儲存的開始索引值StartPixel[i]和結束索引值EndPixel[i],從而據此決定每一像素行的壓縮比ratio[i]的步驟可參閱前述公式(1)至公式(6)的產生各項參數的相關說明,其細節不在此贅述。
於決定每一像素行的壓縮比之後,接著,如步驟 S406,處理器110以各像素行之各壓縮比,壓縮各像素行,以產生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖係映射至球體模型以產生360度全景視頻。舉例來說,假設原始紋理貼圖具有N個像素行且第1像素行具有第一壓縮比,第2像素行具有第二壓縮比,第3像素行具有第三壓縮比,則處理器110將依據第一壓縮比與前述對應參數值採樣原始紋理貼圖的第一行像素行,以產生壓縮紋理貼圖的第1像素行。類似地,處理器110將分別依據第二壓縮比與第三壓縮比與對應參數值採樣原始紋理貼圖的第2像素行以及第3像素行,以產生壓縮紋理貼圖的第2像素行與第3像素行,依此類推,直到原始紋理貼圖的N個像素行都依其對應壓縮比採樣後得到壓縮紋理貼圖的對應像素行,產生一非矩形的一壓縮紋理貼圖,最後新壓縮紋理貼圖係映射至球體模型以產生360度全景視頻。
具體來說,於決定用於壓縮紋理貼圖各像素行的對應參數值之後,處理器110從左到右依序遍歷原始紋理貼圖的各像素行的各像素位置,並依據各像素行的對應參數值及其所對應像素位置,決定第i行的第j個像素位置New[i][j]的像素值。其中,依據各像素行的對應參數值及其所對應像素位置,決定第i行的第j個像素位置New[i][j]的像素值之步驟包括:當j<StartPixel[i]或j>EndPixel[i]時,處理器110將New[i][j]的像素值設置為黑色像素值;以及當StartPixel[i] j EndPixel[i]時,處理器110更執行一分組程序,依據原始紋理貼圖像素行的壓縮比,將原始紋理貼圖第i行分為複數群組並將New[i][j]的像素值設置為原始紋理貼圖第i行中第(j-Start[i])個群組的指定像素位置的 像素值。其中,群組的劃分係根據該像素行的壓縮比確定的,每ratio[i]個像素設置為一個群組,如第5圖所示。
第5圖為依據本發明實施例之原始紋理貼圖分組的結果的示意圖。如第5圖所示,假設原始紋理貼圖的第i行像素行510有100個像素且其壓縮比為5,則原始紋理貼圖的第i行可以每5個像素為一群組,分成20個群組,而原始紋理貼圖的第i行像素行510對應的壓縮紋理貼圖第i行像素行520可以根據分組結果產生,其中,壓縮紋理貼圖第i行520的像素位置StartPixel[i]的像素值設為第0個群組(如圖所示的群組0)的第1個像素值,像素位置StartPixel[i]+1的像素值設為第1個群組(如圖所示的群組1)的第1個像素值,像素位置StartPixel[i]+2的像素值設為第2個群組(如圖所示的群組2)的第1個像素值,依此類推。其中,i、j、StartPixel[i]、EndPixel[i]以及(j-Start[i])均從0開始計數。詳細的紋理貼圖壓縮方法細節參見第6圖。
第6圖顯示本發明另一實施例之紋理貼圖壓縮方法之流程圖。請同時參照第1圖、第2圖、第3圖與第6圖。依據本發明實施例之紋理貼圖壓縮方法可以適用於一圖像資料處理系統,舉例來說,可適用於第1圖的圖像資料處理系統100並由處理器110加以執行。於此實施例中,處理器110可從左到右依序遍歷各像素行的各像素位置,並依據原始紋理貼圖各像素行的對應參數值及其所對應像素位置,決定壓縮紋理貼圖第i行的第j個像素位置New[i][j]的像素值。
首先,處理器110準備開始對原始紋理貼圖進行壓縮,於是如步驟S602,建立壓縮紋理貼圖New的儲存空間 New[height][width]。接著,如步驟S604,處理器110計算壓縮紋理貼圖各像素行的參數,這些參數至少包括像素數PixelOfLine[i]、開始索引值StartPixel[i]、以及結束索引值EndPixel[i]。於一些實施例中,各像素行i的像素數PixelOfLine[i]可依據各像素行之高度值、寬度值以及對應緯線圓周之一圓周長所決定,如公式(3)所示。於一些實施例中,開始索引值StartPixel[i]可依據各像素行之像素數以及寬度值決定,結束索引值EndPixel[i]可依據各像素行之像素數以及開始索引值,如公式(4)以及公式(5)所示。
於決定用於壓縮紋理貼圖各像素行的對應參數值之後,處理器110開始從左到右依序遍歷各像素行的各像素位置,並依據各像素行的對應參數值及其所對應像素位置,決定第i行的第j個像素位置New[i][j]的像素值。如步驟S606,處理器110判斷是否已遍歷完各像素行i。若是,表示已經壓縮完原始紋理貼圖的所有像素,因此處理器110繼續執行步驟S612,將壓縮紋理圖像New儲存至一儲存裝置(如儲存單元140)上。若尚未遍歷完各像素行i(步驟S604的否),處理器110繼續執行步驟S608,計算目前像素行i所對應的壓縮比ratio[i],其中ratio[i]=width/PixelOfLine[i](如公式6所示),且每ratio[i]個像素組成一群組,如第5圖所示。
於算出目前像素行i所對應的壓縮比ratio[i]之後,處理器110接著判斷是否遍歷完各像素位置j(步驟S610)。若目前像素行i的所有像素位置j均已遍歷(步驟S610的是),表示目前像素行i已全部壓縮處理完畢,因此處理器110回到步驟S606 繼續判斷是否還有其他待處理的像素行i。若目前像素行i仍有至少一像素位置j尚未遍歷(步驟S610的否),表示目前像素行i尚有未被壓縮的像素位置j,處理器110接著執行步驟S614至S618,以依據各像素行i的開始索引值StartPixel[i]以及結束索引值EndPixel[i]以及各像素之像素位置j,決定對應像素行中各像素位置j之像素值。
如步驟S614,處理器110判斷像素位置j之值是否小於開始索引值StartPixel[i]對應的像素位置值或像素位置j之值是否大於結束索引值EndPixel[i]對應的像素位置值。若判定符合步驟S614的條件(即:”j<StartPixel[i]∥j>EndPixel[i]”)則處理器110執行步驟S618,若判定為不符合步驟S614的條件則處理器110執行步驟S616。於像素位置j之值小於開始索引值StartPixel[i]對應的像素位置值或像素位置j之值大於結束索引值EndPixel[i]時(即:j<StartPixel[i]或j>EndPixel[i])(步驟S614的否),如步驟S618,處理器110設定New[i][j]的像素值為黑色像素值。於像素位置j之值之值介於開始索引值StartPixel[i]與結束索引值EndPixel[i]之間時(步驟S614的否),如步驟S616,處理器110執行如第5圖所示的分組程序以依據開始索引值StartPixel[i]對應之像素行i之壓縮比,將像素行分為複數群組並將New[i][j]的像素值設為這些群組中對應一者的指定像素位置的像素值,例如設定New[i][j]的像素值為原始紋理貼圖第i行像素行中第j個群組的第一個像素值。重覆步驟S614、S616以及S618,直到像素行i的所有像素位置j均已全部遍歷完成。
舉例來說,假設原始紋理貼圖的寬度width為360 且公式(3)所計算得到的壓縮紋理貼圖第i行像素行的像素數PixelOfLine[i]的值為180時,則可藉由公式(4)、公式(5)與公式(6),分別計算出其開始索引值StartPixel[i]為90、結束索引值EndPixel[i]為269、以及壓縮比ratio[i]為2。也就是說,於此實施例中,原始紋理貼圖第i行中的360個像素以2個像素為一組進行分組,分為180個群組,其中原始紋理貼圖第i行對應的壓縮紋理貼圖第i行的數目為180個像素並且壓縮紋理貼圖第i行的開始索引值所表示的像素位置(即第90個像素位置)的像素值為原始紋理貼圖第i行中的第0個群組的第一個像素值,第91個像素位置的像素值為原始紋理貼圖第i行中的第1個群組的第一個像素值,第92個像素位置的像素值為原始紋理貼圖第i行中的第2個群組的第一個像素值,依此類推。第89個像素位置以前的像素值設為黑色像素值以及第270個像素位置以後的像素值亦設為黑色像素值。如此一來,壓縮紋理貼圖第i行所需儲存的有效像素數僅為原始紋理貼圖第i行的有效像素數的一半,可有效減少有效紋理範圍的像素數。
第7圖為依據本發明實施例之壓縮紋理貼圖700的示意圖,其中壓縮紋理貼圖700表示原始紋理貼圖200的壓縮結果。請同時參閱第2圖與第7圖。如第7圖所示,壓縮紋理貼圖700係根據紋理貼圖像素行在球體上對應球體位置的不同緯度圓周的大小決定紋理貼圖像素行上的壓縮比,其中對應球體位置靠近球體模型的南北兩極的一第一像素行的壓縮比係大於對應球體位置遠離球體模型的兩極的一第二像素行的壓縮比,因而將原先使用的矩形紋理貼圖壓縮成近似橢圓狀的紋理 貼圖。比較第2圖與第7圖可知,將原始紋理貼圖200壓縮後的壓縮紋理貼圖700中的有效紋理範圍的像素數約為原始紋理貼圖200的68%。因此,本案之紋理貼圖之壓縮方法可根據緯線圓周大小來確定非矩形的一壓縮紋理貼圖上各像素行的像素數,使得對應於球體模型上南北兩極附近只會儲存少數必要的資訊,可有效解決先前技術中紋理貼圖在球體模型上南北兩極出現的冗餘資訊過多的問題。
本發明另一實施例更提供應用前述壓縮紋理貼圖以產生360度全景視頻之方法。於此實施例中,壓縮紋理貼圖係映射至一球體模型的對應位置,以便應用壓縮後的非矩形紋理貼圖創建球體模型,產生360度全景視頻,從而進行360度全景視頻的播放。
由於應用壓縮後的非矩形紋理貼圖創建球體模型以產生360度全景視頻時需要先行計算出來的各像素行的參數值進行紋理坐標的映射,因此必須先建構球體模型。參見第8A圖、第8B圖以及第8C圖。第8A圖、第8B圖以及第8C圖為依據本發明實施例之球體模型建構示意圖。其中,第8A圖為球體模型的座標系統示意圖,第8B圖為第8A圖的球體模型從y軸正方向俯視結果示意圖,第8C圖則為球體模型上經緯線交點生成的細分三角形頂點示意圖。
如第8A圖所示,為了創建球體模型,圖形處理單元130先將球體沿緯線方向分為iRings份以及沿經線方向分為iSectors份,因此球面上有iRings條緯線與iSectors條經線相交。假設pVertices[i][j]表示第i條緯線與第j條經線的交點,則 可應用如下公式計算球體模型參數,其包括交點坐標(x,y,z)與交點紋理坐標(u,v),用於球體模型的創建以及紋理貼圖的採樣。其中,PixelLineOfRing[i]表示第i條緯線所對應紋理貼圖的像素行,fRadius為球體半徑,frRing[i]為第i條緯線圈的半徑,如第8A圖與第8B圖所示。每一iRing與iSector相交於一細分三角形,此細分三角形之頂點座標為兩者之交點座標pVertices[i][j],再利用交點坐標構建如第8C圖所示的球體模型,並根據先行計算出來的壓縮紋理貼圖上的各像素行的參數值StartPixel[i]、PixelOfLine[i],設置球體上各細分三角形的紋理坐標屬性。
首先,處理器110依據所分的經線數iSector與緯線數,以下面公式(7)計算如第8A圖所示的第一角度θ:
處理器110再依據高度height與所分的緯線數iRings,經由以下公式(8)決定第i條緯線對應的紋理貼圖上的像素行PixelLineOfiRing[i],第i條緯線上的點的像素值採樣自該行:
處理器110再依據第i條緯線對應的紋理貼圖像素行PixelLineOfiRing[i]與高度height,經由以下公式(9)計算出第二角度δ:
處理器110可再依據第二角度δ與球體半徑,計算 出第i條緯線圈的半徑frRing[i]:frRing[i]=fRadius*sin(δ) (10)
接著,處理器110依據第i條緯線圈的半徑、第一角度、第二角度與球體半徑,透過以下公式(11)-(13)計算出交點pVertices[i][j]的三維球體座標(x,y,z):pVertices[i][j].x=frRing*sin(θ) (11)
pVertices[i][j].y=fRadius*cos(δ) (12)
pVertices[i][j].z=frRing*cos(θ) (13)
之後,處理器110再依據該對應行的開始索引值(StartPixel[i])、第i條緯線對應的紋理貼圖像素行的像素數(PixelOfLine[i]),透過以下公式(14)計算交點pVertices[i][j]在第i條緯線對應的紋理貼圖像素行中的像素索引值(PixelIndexInLine[j]):
其中,PixelLineOfiRing[i]為該點的行號(行索引值);PixelOfLine[PixelLineOfiRing[i]]是壓縮紋理貼圖第PixelLineOfiRing[i]行的像 素數(有效像素數量);表示該行有效像素 數分成(iSectors-1)份;先計算得到該對應 點在有效像素中的索引值(第一個有效像素值的索引值為0);再根據該行第一個有效像素的坐標StartPixel[PixelLineOfiRing[i]],計算該對應點在所在像素行(包含無效像素)中的坐標索引值PixelIndexInLine[j],並且交點pVertices[i][j]會對應到紋理貼圖上的一個 點。以上公式僅為計算紋理貼圖上該對應點坐標的一個示例方法,但本發明不限於此。
最後,處理器110便可依據交點pVertices[i][j]在第i條緯線對應的紋理貼圖像素行中的像素索引值(PixelIndexInLine[j])與寬度值width,透過以下公式(15)計算對應的紋理座標u值,同時依據交點pVertices[i][j]在第i條緯線對應的紋理貼圖像素行(PixelLineOfiRing[i])與高度值height,透過以下公式(16)計算對應的紋理座標v值:
之後,圖形處理單元(GPU)130可應用前述公式(11)-(13)所算出的各交點的球體座標(x,y,z)與前述公式(15)-(16)所算出映射紋理座標(u,v)之間的對應關係,將壓縮紋理貼圖作為球體模型的紋理圖,將壓縮紋理貼圖的各點映射於球體模型之一對應位置上,進而產生360度全景視頻。
第9圖顯示本發明一實施例之產生360度全景視頻之方法流程圖。請同時參照第1圖、第7圖、第8A-8C圖以及第9圖。依據本發明實施例之產生360度全景視頻方法可以適用於一圖像資料處理系統,舉例來說,可適用於第1圖的圖像資料處理系統100並由處理器110或圖形處理單元(GPU)130加以執行。可理解的是,第1圖的圖像資料處理系統100用於解釋流程圖,但本發明並非僅應用於圖像資料處理系統100。於此實施例中,處理器110或圖形處理單元130可自一儲存單元(如儲存 單元140)中取出一非矩形的壓縮紋理貼圖(如第7圖所示的壓縮紋理貼圖700)並將此壓縮紋理貼圖映射至球體模型以產生一360度全景視頻。
首先,如步驟S902,圖形處理單元130可接收壓縮紋理貼圖,其中壓縮紋理圖像具有複數像素行i,各像素行i包括一第一數量的像素且各像素行i包括複數參數值,其中參數值包括對應於像素行i的一取樣像素數量、一第一索引值、以及一第二索引值。具體來說,於此實施例中,壓縮紋理圖像為非矩形的紋理貼圖(例如:第7圖所示的壓縮紋理貼圖700),壓縮紋理圖像的各像素行i具有不同的像素數且其有效像素的儲存位置也有所不同,因此各像素行i有對應的一取樣像素數量、開始索引值(第一索引值)以及結束索引值(第二索引值),其中各像素行之開始索引值以及結束索引值分別表示該對應像素行中有效像素儲存之開始像素位置以及結束像素位置。也就是說,開始索引值與結束索引值分別表示第i行像素行之有效像素採樣範圍。這些參數值可於產生壓縮紋理貼圖時一起記錄於儲存單元140中,因此處理器110可由儲存單元140讀取壓縮紋理貼圖以接收壓縮紋理貼圖時並直接讀取這些相關記錄以取得前述參數值。於另一實施例中,處理器110可分析所接收的壓縮紋理貼圖的各像素行的參數值,過濾掉預設的固定值(例如:黑色像素值)的像素,以取得前述參數值。
接著,如步驟S904,處理器110依據各像素行i的上述參數值,執行一紋理座標映射,得到各像素行i的一映射紋理座標。得到各像素行i的映射紋理座標之後,如步驟S906, 處理器110依據參數值,設置球體模型上各細分三角形的紋理座標屬性。於此步驟中,處理器110可透過前述公式(7)-(14),依據交點pVertices[i][j]在第i條緯線對應的紋理貼圖像素行中的像素索引值PixelIndexInLine[j]與高度值height,計算對應的映射紋理座標u值,同時依據交點pVertices[i][j]在第i條緯線對應的紋理貼圖像素行的值(PixelLineOfiRing[i])與寬度值width,計算對應的映射紋理座標v值。舉例來說,處理器110可透過公式(15)-(16)得到映射紋理座標(u,v),但本發明並不限於此。
設置完球體模型上各細分三角形的紋理座標屬性之後,如步驟S908,圖形處理單元130將壓縮紋理貼圖依據各參數值與映射紋理座標,映射於球體模型之一對應位置上以產生360度全景視頻。於此步驟中,圖形處理單元130可依據各交點的球體座標(x,y,z)與映射紋理座標(u,v)之間的對應關係,將壓縮紋理貼圖作為球體模型的紋理圖,將壓縮紋理貼圖的各點映射於球體模型之一對應位置上,進而產生360度全景視頻。
第10圖顯示本發明一實施例之360度全景視頻之播放方法流程圖。依據本發明實施例之360度全景視頻之播放方法可以適用於一圖像資料處理系統,舉例來說,可適用於第1圖的圖像資料處理系統100並由一GPU如圖形處理單元130加以執行。可理解的是,第1圖的圖像資料處理系統100用於解釋流程圖,但本發明並非僅應用於圖像資料處理系統100。於此實施例中,假設儲存單元140可包括一系統記憶體(圖未示)且系統記憶體中儲存有處理器110所產生的非矩形的壓縮紋理貼圖 (如第7圖所示的壓縮紋理貼圖700)以及對應的球體模型參數,GPU可自系統記憶體中取出此非矩形的壓縮紋理貼圖至GPU內建的本地記憶體中並將此壓縮紋理貼圖映射至對應球體參數的球體模型以產生一360度全景視頻,之後再依據一使用者觀看的視角選擇,決定360度全景視頻的當前視口圖像並將當前視口圖像在顯示裝置150上顯示。
首先,如步驟S1002,GPU加載系統記憶體中之壓縮紋理貼圖圖像至其本地記憶體中。
於加載壓縮紋理貼圖影像至本地記憶體之後,如步驟S1004,GPU加載系統記憶體中的相應的球體模型參數並依據球體模型參數建立一球體模型(如第8C圖所示)。
如步驟S1006,GPU將一幀幀的壓縮紋理貼圖映射到球體模型上,產生一360°視頻流作為360度全景視頻,此360°視頻流為一個水平和縱向都是360°的視頻集合。
於產生360°視頻流之後,此時使用者的觀看視角預設在中心位置且當前視口圖像為中心位置所對應的預設圖像。當使用者觀者的觀看視角改變時,會產生一個使用者的視角選擇。當GPU接收使用者的視角選擇之後,表示使用者欲改變觀看的圖像,於是如步驟S1008,GPU根據使用者的視角選擇,決定360°視頻流的一當前視口圖像並將當前視口圖像在顯示裝置150上顯示。藉此,GPU便可利用本案之紋理貼圖之壓縮方法所產生的壓縮紋理貼圖與球體模型之間映射產生360°視頻流並隨著使用者的視角選擇的變化改變所顯示的當前視口圖像,從而實現360度全景視頻的播放。
因此,依據本發明之紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法可根據球體上不同緯度圓周的大小決定紋理貼圖像素行上的壓縮比,將先前技術中所使用的矩形紋理貼圖壓縮成非矩形紋理貼圖,使得壓縮紋理貼圖所需儲存的有效像素數可大幅減少,因而可有效解決先前技術中紋理貼圖在球體模型上南北兩極出現的冗餘資訊過多的問題,實現球面上紋理像素解析度的統一,可達到降低紋理貼圖上的資料冗餘度與降低傳輸所需的頻寬的目的。此外,依據本發明之產生360度全景視頻之方法可進一步應用壓縮後的非矩形紋理貼圖創建球體模型,並據此產生一360度全景視頻,再隨著使用者的視角選擇的變化改變所顯示的當前視口圖像,從而實現360度全景視頻的播放。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可以包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途圖像處理器實作時,程式碼結合圖像處理器提供一操作類似於應用特定邏輯電路之獨特裝置。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中包括通常知識者,在不 脫離本發明之精神和範圍內,當可作些許之更動與潤飾。舉例來說,本發明實施例所述之系統以及方法可以硬體、軟體或硬體以及軟體的組合的實體實施例加以實現。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (17)
- 一種紋理貼圖(texture image)之壓縮方法,用於產生一360度全景視頻,該方法包括下列步驟:接收用於一球體模型之一原始紋理貼圖,其中該原始紋理貼圖為一矩形圖像且包括複數像素行且每一該等像素行於該球體模型上有一對應球體位置;依據每一該等像素行之該對應球體位置,決定每一該等像素行之一壓縮比;以及以該等像素行之該等壓縮比,壓縮該等像素行,以產生一非矩形的一壓縮紋理貼圖,其中該壓縮紋理貼圖係映射至該球體模型以產生該360度全景視頻。
- 如申請專利範圍第1項所述之紋理貼圖之壓縮方法,其中該等像素行至少包括該對應球體位置靠近該球體模型之兩極之一第一像素行以及該對應球體位置遠離該球體模型之兩極之一第二像素行且該第一像素行之該壓縮比係大於該第二像素行之該壓縮比。
- 如申請專利範圍第1項所述之紋理貼圖之壓縮方法,其中該原始紋理貼圖具有一高度值與一寬度值以及該球體模型沿緯線方向分為複數緯線圓周,且該依據每一該等像素行之該對應球體位置,決定每一該等像素行之該壓縮比之步驟更包括,對各該像素行:依據各該像素行之該對應球體位置,由該等緯線圓周中決定一對應緯線圓周; 依據各該像素行之該高度值、該寬度值以及該對應緯線圓周之一圓周長,決定一像素數;以及依據各該像素行之該像素數以及該寬度值,決定各該像素行之該壓縮比,其中各該像素行之該壓縮比係反比於該像素數。
- 如申請專利範圍第3項所述之紋理貼圖之壓縮方法,更包括:依據各該像素行之該像素數以及該寬度值,決定一開始索引值;依據各該像素行之該像素數以及該開始索引值,決定一結束索引值,其中各該像素行於該壓縮紋理貼圖中有一對應像素行,並且各該像素行之該開始索引值以及該結束索引值分別表示該對應像素行中有效像素儲存之開始像素位置以及結束像素位置。
- 如申請專利範圍第4項所述之紋理貼圖之壓縮方法,其中該對應像素行中包括複數像素以及各該像素具有一像素位置,且該方法更包括:依據各該像素行之該開始索引值以及該結束索引值以及各該像素之該像素位置,決定該對應像素行中該等像素位置之像素值。
- 如申請專利範圍第5項所述之紋理貼圖之壓縮方法,其中該依據各該像素行之該開始索引值以及該結束索引值以及各該像素之該像素位置,決定該對應像素行中各該像素位置之 該像素值之步驟更包括,對各該像素位置:於該像素位置之值小於該開始索引值或該像素位置之值大於該結束索引值時,將該像素值設為黑色像素值。
- 如申請專利範圍第6項所述之紋理貼圖之壓縮方法,更包括:於該像素位置之值介於該開始索引值以及該結束索引值之間時,執行一分組程序以依據該開始索引值對應之該像素行之該壓縮比,將該像素行分為複數群組並將該像素值設為該等群組中對應一者之的指定像素位置的像素值。
- 一種圖像資料處理系統,至少包括:一儲存單元,用以儲存用於一球體模型之至少一原始紋理貼圖,其中該原始紋理貼圖為一矩形圖像且包括複數像素行且每一該等像素行於該球體模型上有一對應球體位置;以及一處理器,耦接於該儲存單元,用於接收該原始紋理貼圖,依據每一該等像素行之該對應球體位置,決定每一該等像素行之一壓縮比,以該等像素行之該等壓縮比,壓縮該等像素行,以產生一非矩形的一壓縮紋理貼圖並儲存該壓縮紋理貼圖至該儲存單元。
- 如申請專利範圍第8項所述之圖像資料處理系統,更包括一圖形處理單元,其耦接於該儲存單元,用以自該儲存單元取出該壓縮紋理貼圖並將該壓縮紋理貼圖映射至該球體模型以產生一360度全景視頻。
- 如申請專利範圍第9項所述之圖像資料處理系統,更包括一顯示裝置,其係耦接於該圖形處理單元,其中該圖形處理單元更依據一使用者的視角選擇,決定該360度全景視頻的一 當前視口圖像並將該當前視口圖像在顯示裝置上顯示。
- 如申請專利範圍第8項所述之圖像資料處理系統,其中該等像素行至少包括該對應球體位置靠近該球體模型之兩極之一第一像素行以及該對應球體位置遠離該球體模型之兩極之一第二像素行且該第一像素行之該壓縮比係大於該第二像素行之該壓縮比。
- 如申請專利範圍第8項所述之圖像資料處理系統,其中該原始紋理貼圖具有一高度值與一寬度值以及該球體模型沿緯線方向分為複數緯線圓周,且該處理器依據每一該等像素行之該對應球體位置,決定每一該等像素行之該壓縮比係對各該像素行:依據各該像素行之該對應球體位置,由該等緯線圓周中決定一對應緯線圓周;依據各該像素行之該高度值、該寬度值以及該對應緯線圓周之一圓周長,決定一像素數;以及依據各該像素行之該像素數以及該寬度值,決定各該像素行之該壓縮比,其中各該像素行之該壓縮比係反比於該像素數。
- 如申請專利範圍第12項所述之圖像資料處理系統,其中該處理器更依據各該像素行之該像素數以及該寬度值,決定一開始索引值,依據各該像素行之該像素數以及該開始索引值,決定一結束索引值,其中各該像素行於該壓縮紋理貼圖中有一對應像素行,並且各該像素行之該開始索引值以及該結束索引值分別表示該對應像素行中有效像素儲存之開始像素位置以及結束像素位置。
- 如申請專利範圍第13項所述之圖像資料處理系統,其中該 對應像素行中包括複數像素以及各該像素具有一像素位置,並且該處理器更依據各該像素行之該開始索引值以及該結束索引值以及各該像素之該像素位置,決定該對應像素行中該等像素位置之像素值。
- 如申請專利範圍第14項所述之圖像資料處理系統,其中該處理器依據各該像素行之該開始索引值以及該結束索引值以及各該像素之該像素位置,決定該對應像素行中各該像素位置之該像素值之步驟更包括,對各該像素位置:於該像素位置之值小於該開始索引值或該像素位置之值大於該結束索引值時,將該像素值設為黑色像素值。
- 如申請專利範圍第15項所述之圖像資料處理系統,其中該處理器更於該像素位置之值介於該開始索引值以及該結束索引值之間時,執行一分組程序以依據該開始索引值對應之該像素行之該壓縮比,將該像素行分為複數群組並將該像素值設為該等群組中對應一者之的指定像素位置的像素值。
- 一種產生360度全景視頻之方法,包括下列步驟:接收一壓縮紋理貼圖,其中該壓縮紋理圖像具有複數像素行i,各該像素行i包括一第一數量之像素且各該像素行i包括複數參數值,其中該等參數值包括對應於該像素行i之一取樣像素數量、一第一索引值、以及一第二索引值;依據各該像素行i之該等參數值,執行一紋理座標映射,得到各該像素行i之一映射紋理座標;依據該等參數值,設置一球體模型上各細分三角形的紋理座標屬性;以及 將該壓縮紋理貼圖依據該等參數值與該映射紋理座標,映射於該球體模型之一對應位置上以產生該360度全景視頻。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201710311245.X | 2017-05-05 | ||
CN201710311245.XA CN107146274B (zh) | 2017-05-05 | 2017-05-05 | 图像数据处理***、纹理贴图压缩和产生全景视频的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI637355B TWI637355B (zh) | 2018-10-01 |
TW201843651A true TW201843651A (zh) | 2018-12-16 |
Family
ID=59776859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140077A TWI637355B (zh) | 2017-05-05 | 2017-11-20 | 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10235795B2 (zh) |
CN (1) | CN107146274B (zh) |
TW (1) | TWI637355B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106651764B (zh) * | 2016-12-29 | 2019-10-15 | 北京奇艺世纪科技有限公司 | 一种全景图压缩方法及装置 |
US11397511B1 (en) * | 2017-10-18 | 2022-07-26 | Nationwide Mutual Insurance Company | System and method for implementing improved user interface |
CA3028794A1 (en) * | 2018-01-04 | 2019-07-04 | 8259402 Canada Inc. | Immersive environment with digital environment to enhance depth sensation |
CN110505470B (zh) * | 2018-05-18 | 2021-04-09 | 深圳裸眼威阿科技有限公司 | 一种基于球形显示屏的图像播放***及方法 |
CN108921778B (zh) * | 2018-07-06 | 2022-12-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
TWI735237B (zh) | 2020-05-22 | 2021-08-01 | 茂傑國際股份有限公司 | 360度全景影像選擇顯示之攝影機及方法 |
US11210840B1 (en) * | 2020-08-27 | 2021-12-28 | Aspeed Technology Inc. | Transform method for rendering post-rotation panoramic images |
CN112406706B (zh) * | 2020-11-20 | 2022-07-22 | 上海华兴数字科技有限公司 | 车辆景象的显示方法、装置、可读存储介质及电子设备 |
CN112675545B (zh) * | 2021-01-07 | 2022-12-13 | 腾讯科技(深圳)有限公司 | 地表仿真画面的显示方法和装置、存储介质及电子设备 |
CN115482147B (zh) * | 2022-09-14 | 2023-04-28 | 中国人民大学 | 基于压缩数据直接计算的高效并行图处理方法和*** |
CN116721196B (zh) * | 2023-06-26 | 2023-11-07 | 北京麟卓信息科技有限公司 | 一种压缩纹理的动态转换方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2827680B1 (fr) | 2001-07-20 | 2003-10-10 | Immervision Internat Pte Ltd | Procede de capture d'une image panoramique au moyen d'un capteur d'image de forme rectangulaire |
JP2003141562A (ja) * | 2001-10-29 | 2003-05-16 | Sony Corp | 非平面画像の画像処理装置及び画像処理方法、記憶媒体、並びにコンピュータ・プログラム |
WO2003041011A2 (en) * | 2001-11-08 | 2003-05-15 | Eyesee360, Inc. | Method and apparatus for the computation of panoramic views and _perspective projections from omnidirectional images |
WO2007108412A1 (ja) * | 2006-03-17 | 2007-09-27 | Nec Corporation | 3次元データ処理システム |
WO2008147561A2 (en) | 2007-05-25 | 2008-12-04 | Google Inc. | Rendering, viewing and annotating panoramic images, and applications thereof |
US9007432B2 (en) * | 2010-12-16 | 2015-04-14 | The Massachusetts Institute Of Technology | Imaging systems and methods for immersive surveillance |
JP5896424B2 (ja) | 2011-04-25 | 2016-03-30 | 光雄 林 | 全方位画像編集プログラム及び全方位画像編集装置 |
CN102426703B (zh) | 2011-08-11 | 2014-04-09 | 重庆市勘测院 | 车载全景影像采集平台的航向和俯仰角速度获取方法 |
WO2014043814A1 (en) * | 2012-09-21 | 2014-03-27 | Tamaggo Inc. | Methods and apparatus for displaying and manipulating a panoramic image by tiles |
CN102982516B (zh) | 2012-10-25 | 2015-07-29 | 西安理工大学 | 一种基于半球环形全景镜头实现全景图像的方法 |
JP6044328B2 (ja) | 2012-12-26 | 2016-12-14 | 株式会社リコー | 画像処理システム、画像処理方法およびプログラム |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
CN105245838A (zh) * | 2015-09-29 | 2016-01-13 | 成都虚拟世界科技有限公司 | 一种全景视频播放方法及播放器 |
CN105872353A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 一种在移动设备上实现播放全景视频的***和方法 |
CN105631809B (zh) * | 2015-12-31 | 2018-11-06 | 北京理工大学 | 一种非均匀分辨率球面全景图生成方法 |
CN105761296B (zh) * | 2016-01-15 | 2018-09-18 | 网易(杭州)网络有限公司 | 一种压缩纹理的拼装***及方法、终端 |
CN105915907B (zh) * | 2016-06-07 | 2019-07-26 | 北京圣威特科技有限公司 | 全景图的压缩方法、装置及*** |
CN105933707B (zh) * | 2016-06-30 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种全景视频的压缩方法及装置 |
CN106131540B (zh) * | 2016-07-29 | 2017-11-03 | 暴风集团股份有限公司 | 基于d3d播放全景视频的方法及*** |
CN106527857A (zh) * | 2016-10-10 | 2017-03-22 | 成都斯斐德科技有限公司 | 一种基于虚拟现实的全景视频交互方法 |
CN106412582B (zh) * | 2016-10-21 | 2019-01-29 | 北京大学深圳研究生院 | 全景视频感兴趣区域的描述方法和编码方法 |
-
2017
- 2017-05-05 CN CN201710311245.XA patent/CN107146274B/zh active Active
- 2017-05-19 US US15/599,838 patent/US10235795B2/en active Active
- 2017-11-20 TW TW106140077A patent/TWI637355B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI637355B (zh) | 2018-10-01 |
CN107146274B (zh) | 2021-06-22 |
CN107146274A (zh) | 2017-09-08 |
US20180322685A1 (en) | 2018-11-08 |
US10235795B2 (en) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI637355B (zh) | 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法 | |
US11756152B2 (en) | Apparatus and methods for the optimal stitch zone calculation of a generated projection of a spherical image | |
TWI619088B (zh) | 圖像資料處理系統和相關方法以及相關圖像融合方法 | |
US10595004B2 (en) | Electronic device for generating 360-degree three-dimensional image and method therefor | |
KR102208773B1 (ko) | 파노라마 영상 압축 방법 및 장치 | |
CN109997167B (zh) | 用于球面图像内容的定向图像拼接 | |
US20140321771A1 (en) | Techniques for real-time clearing and replacement of objects | |
CN108282694B (zh) | 全景视频渲染方法、装置及电子设备 | |
US10063792B1 (en) | Formatting stitched panoramic frames for transmission | |
US10650592B2 (en) | Methods and apparatus for providing rotated spherical viewpoints | |
KR20180107271A (ko) | 전방향 미디어 텍스처 매핑 메타데이터를 생성하는 방법 및 장치 | |
TWI635461B (zh) | 投影圖構建方法及裝置 | |
US11922568B2 (en) | Finite aperture omni-directional stereo light transport | |
CN116109765A (zh) | 标注对象的三维渲染方法、装置、计算机设备、存储介质 | |
CN112927163A (zh) | 图像数据增强方法、装置、电子设备及存储介质 | |
WO2023280266A1 (zh) | 鱼眼图像压缩、鱼眼视频流压缩以及全景视频生成方法 | |
CN113763530B (zh) | 图像处理方法、装置、计算设备及存储介质 | |
US20240257297A1 (en) | Apparatus and methods for the optimal stitch zone calculation of a generated projection of a spherical image | |
JP2021170271A (ja) | プログラム | |
CN114157867A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN115511717A (zh) | 图像校正方法、装置、计算机设备和存储介质 | |
CN115134604A (zh) | 全景视频压缩方法、装置、计算机设备和存储介质 |