本發(fā)明有關(guān)于圖像處理,尤指有關(guān)于處理全景視頻的紋理貼圖(textureimage)的圖像數(shù)據(jù)處理系統(tǒng)以及相關(guān)紋理貼圖的壓縮方法與產(chǎn)生360度全景視頻的方法。
背景技術(shù):
::隨著計(jì)算機(jī)技術(shù)的發(fā)展與圖像繪圖技術(shù)的不斷進(jìn)步,全景圖像(panoramaimages)與360全景視頻(panoramicvideos)的應(yīng)用越來越普及。全景圖像為具有特別的大視野(field-of-view,fov)、夸張的尺寸比(aspectratio)、或其組合的圖像,其將多個(gè)圖像組合或拼接(stitch)在一起以增加視野。全景圖像有時(shí)也被稱為“全景”,它能提供360度的場景圖。360度全景視頻為一個(gè)水平和縱向都是360°的視頻集合,觀者的觀看視角在中心位置上,是一種主動(dòng)視角的觀看,同時(shí)想看哪里就看哪里,這種觀感是一種環(huán)境所包圍的浸入式體驗(yàn),讓觀者體會到一種身臨其境的感受。現(xiàn)有應(yīng)用中,主要可經(jīng)由是球體、圓柱狀或立方體等三種模型構(gòu)建不同紋理貼圖(textureimage)。其中,因球體模型的表面積比圓柱狀模型與立方體模型更小,因而球體模型常被用來創(chuàng)建不同紋理貼圖。一般而言,紋理貼圖為矩形并且具有一坐標(biāo)為(u,v)的坐標(biāo)空間的一數(shù)字圖像。紋理貼圖可根據(jù)其位置分配至一坐標(biāo)值(u,v)。于一紋理映射運(yùn)算(texturemapping)中,當(dāng)對一3d圖像模型進(jìn)行渲染(render)以產(chǎn)生一目的圖像時(shí),一紋理將被映射至此模型的表面上?,F(xiàn)有技術(shù)采用的球體紋理貼圖是經(jīng)過特殊處理后的圖像,是通過多臺視頻(video)攝影機(jī)的同時(shí)拍攝,例如由多個(gè)攝像機(jī)同時(shí)拍攝房間的多個(gè)角度的圖片將所有方向的圖像動(dòng)態(tài)記錄下來,再通過后期專業(yè)縫合軟件進(jìn)行縫合,經(jīng)過特殊處理后得到的適合應(yīng)用于球體表面的紋理貼圖。傳輸過程中的平面視頻是一幀一幀的2維圖像,2維圖像再一幀一幀貼到球體模型上,將視頻流中傳輸?shù)囊粠粠募y理貼圖作為球體模型的紋理貼圖使用,達(dá)到從2維圖像到3維空間的一個(gè)轉(zhuǎn)換操作,實(shí)時(shí)渲染出3維空間中的場景變化,形成3維空間中的動(dòng)態(tài)效果,從而形成360度全景視頻,得到所謂的360全景視頻播放效果。一般而言,藉由紋理映射進(jìn)行貼圖常會消耗大量傳輸帶寬。因此,現(xiàn)有技術(shù)中,通常會將紋理貼圖進(jìn)行壓縮,以降低所需的帶寬。現(xiàn)有技術(shù)中以矩形圖像作為球體模型的紋理貼圖,所使用的紋理貼圖是一個(gè)寬高比為2:1的圖像,其寬度映射為球體的赤道周長,高度映射為球體上連接南北兩極經(jīng)線的長度。在紋理采樣階段,球體上緯度為0°的赤道在矩形紋理的寬度范圍內(nèi)采樣顏色值,緯度為90°的南北極同樣在紋理的寬度范圍內(nèi)進(jìn)行顏色采樣(即:0°緯度的圓周和90°緯度的圓周都映射到紋理貼圖的相同區(qū)域大小上)。因此,以這種紋理貼圖所建立出來的球體,在球體上靠近赤道的視口所對應(yīng)紋理貼圖上的采樣區(qū)域面積會比南北兩極視口所對應(yīng)的紋理貼圖上采樣區(qū)域面積小,從而出現(xiàn)南北極點(diǎn)映射到紋理貼圖上的紋理圖像寬度范圍內(nèi)的顏色值。如果以球體上靠近赤道區(qū)域的紋理分辨率為基準(zhǔn),可以認(rèn)為球體上南北兩極位置上的紋理值存在信息的冗余。因此,紋理貼圖在球體模型上南北兩極出現(xiàn)的冗余信息過多的問題,這些冗余的數(shù)據(jù)也會占用不必要的傳輸帶寬。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供一種紋理貼圖的壓縮方法及其相關(guān)圖像數(shù)據(jù)處理系統(tǒng)與產(chǎn)生360度全景視頻的方法。本發(fā)明的一實(shí)施例提供一種紋理貼圖的壓縮方法,用于產(chǎn)生一360度全景視頻。紋理貼圖的壓縮方法包括下列步驟:接收用于一球體模型的一原始紋理貼圖,其中該原始紋理貼圖為一矩形圖像且包括多個(gè)像素行且每一像素行于球體模型上有一對應(yīng)球體位置;依據(jù)每一像素行的對應(yīng)球體位置,決定每一像素行的一壓縮比;以及以各像素行的各壓縮比,壓縮各像素行,以產(chǎn)生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖系映射至球體模型以產(chǎn)生360度全景視頻。本發(fā)明另一實(shí)施例提供一種圖像數(shù)據(jù)處理系統(tǒng),至少包括一儲存單元以及一處理器。儲存單元用以儲存用于一球體模型的至少一原始紋理貼圖,其中原始紋理貼圖為一矩形圖像且包括多個(gè)像素行且每一像素行于球體模型上有一對應(yīng)球體位置。處理器耦接于儲存單元,用于接收原始紋理貼圖,依據(jù)每一像素行的對應(yīng)球體位置,決定每一像素行的一壓縮比,以各像素行的壓縮比,壓縮各像素行,以產(chǎn)生一非矩形的一壓縮紋理貼圖并儲存壓縮紋理貼圖至儲存單元。本發(fā)明另一實(shí)施例提供一種產(chǎn)生360度全景視頻的方法,包括下列步驟:接收一壓縮紋理貼圖,其中壓縮紋理圖像具有多個(gè)像素行i,各像素行i包括一第一數(shù)量的像素且各像素行i包括多個(gè)參數(shù)值,其中參數(shù)值包括對應(yīng)于像素行i的一取樣像素?cái)?shù)量、一第一索引值、以及一第二索引值;依據(jù)各像素行i的參數(shù)值,執(zhí)行一紋理坐標(biāo)映射,得到各像素行i的一映射紋理坐標(biāo);依據(jù)參數(shù)值,設(shè)置球體模型上各細(xì)分三角形的紋理坐標(biāo)屬性;以及將壓縮紋理貼圖依據(jù)參數(shù)值與映射紋理坐標(biāo),映射于球體模型的一對應(yīng)位置上以產(chǎn)生360度全景視頻。本發(fā)明的上述方法可經(jīng)由本發(fā)明的裝置或系統(tǒng)來實(shí)作,其為可執(zhí)行特定功能的硬件或固件,亦可以通過程序代碼方式收錄于一記錄媒體中,并結(jié)合特定硬件來實(shí)作。當(dāng)程序代碼被電子裝置、處理器、計(jì)算機(jī)或機(jī)器載入且執(zhí)行時(shí),電子裝置、處理器、計(jì)算機(jī)或機(jī)器變成用以實(shí)行本發(fā)明的裝置或系統(tǒng)。附圖說明圖1為依據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)處理系統(tǒng)的示意圖。圖2為依據(jù)本發(fā)明實(shí)施例的原始紋理貼圖的示意圖。圖3為依據(jù)本發(fā)明實(shí)施例的紋理貼圖像素行至球體的映射示意圖。圖4顯示本發(fā)明一實(shí)施例的紋理貼圖壓縮方法的流程圖。圖5為依據(jù)本發(fā)明實(shí)施例的原始紋理貼圖分組的結(jié)果的示意圖。圖6顯示本發(fā)明另一實(shí)施例的紋理貼圖壓縮方法的流程圖。圖7為依據(jù)本發(fā)明實(shí)施例的壓縮紋理貼圖的示意圖。圖8a、圖8b以及圖8c為依據(jù)本發(fā)明實(shí)施例的球體模型建構(gòu)示意圖。圖9顯示本發(fā)明一實(shí)施例的產(chǎn)生360度全景視頻的方法流程圖。圖10顯示本發(fā)明一實(shí)施例的360度全景視頻的播放方法流程圖。符號說明:100~圖像數(shù)據(jù)處理系統(tǒng);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~步驟。具體實(shí)施方式為讓本發(fā)明的目的、特征、和優(yōu)點(diǎn)能更明顯易懂,特舉出下文實(shí)施例,并配合附圖,作詳細(xì)說明如下。注意的是,本章節(jié)所敘述的實(shí)施例目的在于說明本發(fā)明的實(shí)施方式而非用以限定本發(fā)明的保護(hù)范圍,任何熟悉此項(xiàng)技術(shù)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求所界定者為準(zhǔn)。應(yīng)理解下列實(shí)施例可經(jīng)由軟件、硬件、固件、或上述任意組合來實(shí)現(xiàn)。本發(fā)明實(shí)施例提供一種紋理貼圖的壓縮方法及其相關(guān)圖像數(shù)據(jù)處理系統(tǒng)與產(chǎn)生360度全景視頻的方法,可以根據(jù)球體上不同緯度圓周的大小決定紋理貼圖像素行上的壓縮比,將現(xiàn)有技術(shù)中所使用的矩形紋理貼圖壓縮成非矩形紋理貼圖(例如:近似橢圓狀的紋理貼圖),以達(dá)到球體上分辨率的各向同性,因而可有效解決現(xiàn)有技術(shù)中紋理貼圖在球體模型上南北兩極出現(xiàn)的冗余信息過多的問題。圖1為依據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)處理系統(tǒng)的示意圖。圖像數(shù)據(jù)處理系統(tǒng)100可為能夠處理圖像或數(shù)據(jù)的桌上型計(jì)算機(jī)、一體成型(all-in-one,aio)計(jì)算機(jī)、一般筆電、觸控筆電、或一便攜式裝置或手持裝置,例如是數(shù)字個(gè)人助理(pda)、智能型手機(jī)(smartphone)、平板電腦(tablet)、移動(dòng)電話、移動(dòng)上網(wǎng)裝置(mobileinternetdevice,mid)、筆記本電腦、車用計(jì)算機(jī)、數(shù)字相機(jī)、數(shù)字媒體播放器、游戲裝置或任何類型的移動(dòng)計(jì)算裝置、或者圖像數(shù)據(jù)處理系統(tǒng)100可以由多個(gè)設(shè)備來提供。然而,本領(lǐng)域熟習(xí)技術(shù)人員應(yīng)可理解本發(fā)明并不限于此。于一些實(shí)施例中,圖像數(shù)據(jù)處理系統(tǒng)100也可由多個(gè)芯片或單芯片來實(shí)現(xiàn),例如,片上系統(tǒng)(soc)或在移動(dòng)設(shè)備中放置的移動(dòng)處理器。舉例來說,圖像數(shù)據(jù)處理系統(tǒng)100包含處理器110、接口(interface)120、圖形處理單元(graphicsprocessingunit,gpu)130、儲存單元140以及顯示裝置150。處理器110、圖形處理單元130、儲存單元140以及顯示裝置150可通過接口120而彼此耦接。舉例來說,于一實(shí)施例中,接口120可為一系統(tǒng)總線,此系統(tǒng)總線耦接各種系統(tǒng)元件如圖形處理單元130、儲存單元140以及顯示裝置150等到處理器110。處理器110可為中央處理單元(centralprocessingunit,cpu)、通用處理器、微處理器(micro-controlunit,mcu)、數(shù)字信號處理器(digitalsignalprocessor,dsp)、或任意等效電路等,用以提供數(shù)據(jù)分析、處理及運(yùn)算的功能,但是本發(fā)明并非限于此。儲存單元140可以包含易失性存儲器(volatilememory)141、以及非易失性存儲器142,用以儲存相關(guān)數(shù)據(jù),例如運(yùn)算過程中的中間數(shù)據(jù)及執(zhí)行結(jié)果數(shù)據(jù)等。易失性存儲器141可為動(dòng)態(tài)隨機(jī)存取存儲器(dynamicradomaccessmemory,dram)、或靜態(tài)隨機(jī)存取存儲器(sram),以及非易失性存儲器142可為只讀存儲器(read-onlymemory,rom)、快閃存儲器(flashmemory)、硬盤、固態(tài)硬盤等。儲存單元140也可用以儲存可供處理器110與圖形處理單元130執(zhí)行的指令集和/或程序代碼程序模塊。一般而言,程序模塊包含常序(routines)、程序(program)、物件(object)、元件(component)等。舉例來說,在圖像數(shù)據(jù)處理系統(tǒng)100上使用的應(yīng)用的程序代碼可預(yù)先儲存于非易失性存儲器142中。處理器110可自非易失性存儲器142下載程序至易失性存儲器141,并執(zhí)行應(yīng)用的程序代碼。處理器110也可傳輸圖形數(shù)據(jù)至圖形處理單元130,以及圖形處理單元130可確定將呈現(xiàn)在顯示裝置150上的圖形數(shù)據(jù)。需要注意的是,易失性存儲器141以及非易失性存儲器142可描述為儲存單元,并且可分別作為不同的儲存單元。顯示裝置150可為顯示電路或被耦接以用于控制顯示設(shè)備(未圖示)的硬件。顯示裝置150可包含驅(qū)動(dòng)電路、顯示面板中的一個(gè)或組合,以及顯示裝置150可置于圖像數(shù)據(jù)處理系統(tǒng)100中或之外。顯示裝置150可顯示相關(guān)數(shù)據(jù),例如是文字、圖形、界面和/或各種信息如顯示或呈現(xiàn)結(jié)果等。舉例來說,顯示裝置150可用以呈現(xiàn)結(jié)果的畫面,例如:液晶顯示器(lcd)。應(yīng)理解的是,于一些實(shí)施例中,顯示裝置150結(jié)合觸碰感應(yīng)裝置(未圖示)的屏幕。觸控感應(yīng)裝置具有一觸控表面,其包括至少一維度的傳感器以偵測靠近或在觸控表面上的一輸入工具如手指或觸控筆等在其表面上的接觸及動(dòng)作。因此,使用者可通過顯示裝置150來進(jìn)行觸控輸入命令或信號。于一些實(shí)施例中,圖像數(shù)據(jù)處理系統(tǒng)100可還包括一圖像輸入接口(未圖示),用以接收源圖像,例如原始紋理貼圖圖像數(shù)據(jù)或視頻數(shù)據(jù)。在一個(gè)實(shí)施例中,圖像輸入接口可具有圖像擷取裝置以用于擷取源圖像。圖像擷取裝置可包含圖像感測器,該圖像感測器可為單一感測器,或包含多個(gè)獨(dú)立的或分開的感測單元的感測陣列。舉例來說,圖像擷取裝置可為具有魚眼鏡頭(fisheyelens)的多個(gè)攝像頭。在其他實(shí)施例中,圖像輸入接口可自外部圖像擷取裝置接收源圖像。此圖像輸入接口可獲得源圖像(例如,魚眼圖)并提供源圖像至處理器110。在一些實(shí)施例中,處理器110可進(jìn)一步包含編碼器(未圖示)以獲得源圖像并編碼該源圖像以在與當(dāng)前視頻標(biāo)準(zhǔn)(例如標(biāo)準(zhǔn)h.264(mpeg-4avc)或標(biāo)準(zhǔn)h.265)兼容的任何合適的媒體格式中產(chǎn)生已編碼的圖像,例如,已編碼的視頻比特流。舉例來說,編碼器可以為標(biāo)準(zhǔn)圖像/視頻編碼器或具有預(yù)扭曲(pre-warping)功能的圖像/視頻編碼器,但是本發(fā)明并非以此為限。當(dāng)編碼器為具有預(yù)扭曲功能的圖像/視頻編碼器時(shí),編碼器可進(jìn)一步在編碼期間對已編碼的視頻比特流執(zhí)行重新映射(remapping)或扭曲操作,以移除原始源圖像或視頻數(shù)據(jù)中的失真。在一些實(shí)施例中,處理器110可進(jìn)一步包含譯碼器(未圖示)以解碼已編碼的視頻比特流,以利用由已編碼的視頻比特流使用的視頻標(biāo)準(zhǔn)(例如,標(biāo)準(zhǔn)h.264(mpeg-4avc)或標(biāo)準(zhǔn)h.265)兼容的合適的媒體格式而獲得源圖像。在一些實(shí)施例中,盡管未圖示,圖像數(shù)據(jù)處理系統(tǒng)100可包含其他功能單元,例如鍵盤、鼠標(biāo)、觸控板、或通訊單元(例如,以太網(wǎng)卡或芯片組)、無線網(wǎng)卡或芯片組、基頻芯片組以及射頻芯片組以用于蜂窩通訊。處理器110可從儲存單元140中載入并執(zhí)行指令集和/或程序代碼,以控制儲存單元140與顯示裝置150的運(yùn)作來執(zhí)行本發(fā)明所述的紋理貼圖的壓縮方法。上述方法包括以下步驟:接收用于一球體模型的一原始紋理貼圖,其中原始紋理貼圖為一矩形圖像且包括多個(gè)像素行且每一像素行于球體模型上有一對應(yīng)球體位置;依據(jù)每一像素行的對應(yīng)球體位置,決定每一像素行的一壓縮比;以及以各像素行的各壓縮比,壓縮各像素行,以產(chǎn)生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖被映射至球體模型以產(chǎn)生360度全景視頻,其細(xì)節(jié)將于后進(jìn)行說明。具體來說,每個(gè)原始紋理貼圖為一具有一高度以及一寬度的矩形圖像且此原始紋理貼圖可隨后用以產(chǎn)生一360度全景視頻,如圖2所示。圖2為依據(jù)本發(fā)明實(shí)施例的原始紋理貼圖200的示意圖。如圖2所示,原始紋理貼圖200可為寬高比為2:1的矩形圖像,其為一個(gè)經(jīng)過特殊處理后得到的適合應(yīng)用于球體表面的紋理貼圖且其寬度映射為球體的赤道周長,高度映射為球體模型上連接南北兩極經(jīng)線的長度。每個(gè)原始紋理貼圖可以以相同的方式劃分。此外,原始紋理貼圖圖像可以儲存在存儲器單元140中,例如,儲存在易失性存儲器141中。易失性存儲器141可儲存原始紋理貼圖200的每個(gè)像素的相應(yīng)信息,例如:各像素的像素值及此像素在哪一像素行與在此像素行的哪一對應(yīng)像素位置等信息。在此實(shí)施例的紋理采樣階段,原始紋理貼圖200可依緯度劃分為多個(gè)像素行且每一像素行于球體模型上有一對應(yīng)球體位置。例如,球體上緯度為0°的赤道在原始紋理貼圖200的一第一像素行的寬度范圍內(nèi)采樣顏色值,緯度為90°的南北極同樣在原始紋理貼圖200的第二像素行的寬度范圍內(nèi)進(jìn)行顏色采樣(即:0°緯度的圓周和90°緯度的圓周都映射到原始紋理貼圖200的相同區(qū)域大小上)。因此,原始紋理貼圖200被應(yīng)用在球體模型上以產(chǎn)生360度全景視頻時(shí)會有南北兩極的冗余信息過多的問題。如前述,360度全景視頻為一個(gè)水平和縱向都是360°的視頻集合,觀者的觀看視角在中心位置上,是一種主動(dòng)視角的觀看,同時(shí)想看哪里就看哪里,這種觀感是一種環(huán)境所包圍的浸入式體驗(yàn),可讓觀者體會到一種身臨其境的感受。在此實(shí)施例中,原始紋理貼圖被映射至一球體模型以產(chǎn)生該360度全景視頻。因此,為解決前述問題,本公開的處理器110可以從易失性存儲器141獲得原始紋理貼圖的每個(gè)像素的相應(yīng)信息,并根據(jù)各像素球體上不同緯度圓周大小決定紋理貼圖上各像素行的壓縮比,以產(chǎn)生一壓縮紋理貼圖。藉此將矩形的原始貼圖壓縮成非矩形紋理貼圖(例如:近似橢圓狀的紋理貼圖),以有效解決現(xiàn)有技術(shù)中紋理貼圖在球體模型上南北兩極出現(xiàn)的冗余信息過多的問題。圖3為依據(jù)本發(fā)明實(shí)施例的紋理貼圖像素行至球體的映射示意圖。如圖3所示,假設(shè)原始紋理貼圖上的寬度值為width,高度值為height且原始紋理貼圖上的每個(gè)像素行(于圖中表示為i)映射到球面上的緯線圓周上,其中,原始紋理貼圖最中間像素行(于圖中表示為j)映射到球體的赤道圓周上。接著,處理器110根據(jù)緯線圓周大小來確定壓縮紋理貼圖上各像素行的像素?cái)?shù),緯線圓周的大小與緯線的高度線性相關(guān),如圖3中的δ角的大小直接決定緯線圓周大小。因此,利用δ角的大小與原始紋理貼圖的寬度width,處理器110可通過如下公式(1)、公式(2)以及公式(3)計(jì)算得到壓縮紋理貼圖第i行像素行的像素?cái)?shù)pixelofline[i]:δ=i*θ(2)pixelofline[i]=min((sin(δ)+offset)*width,width)(3)其中,width與height分別為原始紋理貼圖的寬度和高度值,offset是為了保留南北極信息所設(shè)置的一偏移量,此偏移量的取值范圍在0~1之間(例如:設(shè)置為0.05),偏移量的取值決定著壓縮效果。接著,處理器110利用公式(3)所計(jì)算得到的壓縮紋理貼圖第i行像素行的像素?cái)?shù)pixelofline[i],可以分別通過以下公式(4)與公式(5)計(jì)算得到壓縮紋理貼圖第i行像素行中有效像素儲存的開始索引值startpixel[i]和結(jié)束索引值endpixel[i]:endpixel[i]=startpixel[i]+pixelofline[i]-1(5)其中,各像素行的開始索引值startpixel[i]以及結(jié)束索引值endpixel[i]分別表示該對應(yīng)像素行中有效像素儲存的開始像素位置以及結(jié)束像素位置。也就是說,開始索引值startpixel[i]與結(jié)束索引值endpixel[i]分別表示第i行像素行的有效像素采樣范圍。之后,處理器110便可利用公式(3)所計(jì)算得到的壓縮紋理貼圖第i行像素行的像素?cái)?shù)pixelofline[i]與寬度width,通過以下公式(6)計(jì)算得到各像素行的壓縮比ratio[i]為:圖4顯示本發(fā)明一實(shí)施例的紋理貼圖壓縮方法的流程圖。請同時(shí)參照圖1、圖2、圖3與圖4。依據(jù)本發(fā)明實(shí)施例的紋理貼圖壓縮方法可以適用于一圖像數(shù)據(jù)處理系統(tǒng),舉例來說,可適用于圖1的圖像數(shù)據(jù)處理系統(tǒng)100并由處理器110加以執(zhí)行。首先,如步驟s402,處理器110接收用于一球體模型的一原始紋理貼圖,其中原始紋理貼圖(如圖2所示的原始紋理貼圖200)為一矩形圖像且包括多個(gè)像素行并且每一像素行于球體模型上有一對應(yīng)球體位置。接著,如步驟s404,處理器110依據(jù)每一像素行的對應(yīng)球體位置,決定每一像素行的一壓縮比。其中壓縮比表示原始紋理貼圖與壓縮紋理貼圖之間的像素?cái)?shù)量差異,壓縮比越大則兩者的像素?cái)?shù)量差異越大。具體來說,處理器110可通過前述公式(1)至公式(6)來決定壓縮紋理貼圖的各像素行的參數(shù)值,例如第i行像素行的像素?cái)?shù)pixelofline[i]、原始紋理貼圖第i行像素行中壓縮紋理貼圖第i行像素行中有效像素儲存的開始索引值startpixel[i]和結(jié)束索引值endpixel[i],從而據(jù)此決定每一像素行的一壓縮比ratio[i]。于一些實(shí)施例中,原始紋理貼圖可具有一高度值與一寬度值,球體模型可沿緯線方向分為多個(gè)緯線圓周,其中,同一像素行的所有像素對應(yīng)于這些緯線圓周中的其中一緯線圓周的位置。其中,處理器110還可對各像素行,依據(jù)各像素行的對應(yīng)球體位置,由這些緯線圓周中決定一對應(yīng)緯線圓周,依據(jù)高度值、寬度值以及各像素行的對應(yīng)緯線圓周的一圓周長,決定一像素?cái)?shù),以及依據(jù)各像素行的像素?cái)?shù)以及寬度值,決定各像素行的壓縮比,以便依據(jù)每一像素行的對應(yīng)球體位置,決定每一像素行的壓縮比,其中各像素行的壓縮比反比于像素?cái)?shù)。舉例來說,處理器110可經(jīng)由公式(1)至公式(3)決定壓縮紋理貼圖第i行像素行中的像素?cái)?shù)pixelofline[i],經(jīng)由公式(4)至公式(5)得到原始紋理貼圖第i行像素行中有效像素儲存的開始索引值startpixel[i]和結(jié)束索引值endpixel[i],再經(jīng)由公式(6)決定像素行i的壓縮比。于一些實(shí)施例中,像素行中至少包括其對應(yīng)球體位置靠近球體模型的兩極的一第一像素行以及其對應(yīng)球體位置遠(yuǎn)離球體模型的兩極的一第二像素行且靠近球體模型的兩極的第一像素行的壓縮比大于其對應(yīng)球體位置遠(yuǎn)離球體模型的兩極該第二像素行的壓縮比。舉例來說,于一實(shí)施例中,球體上緯度為0°的赤道在原始紋理貼圖200的第二像素行的寬度范圍內(nèi)采樣顏色值,緯度為90°的南北極會在原始紋理貼圖200的第一像素行的少數(shù)寬度范圍內(nèi)進(jìn)行顏色采樣。于一些實(shí)施例中,原始紋理貼圖的各像素行于壓縮紋理貼圖中有一對應(yīng)像素行,并且各像素行的開始索引值以及結(jié)束索引值分別表示對應(yīng)像素行中有效像素儲存的開始像素位置以及結(jié)束像素位置。于一些實(shí)施例中,其中原始紋理貼圖的各像素行于壓縮紋理貼圖中的對應(yīng)像素行中包括多個(gè)像素以及各像素具有一像素位置,且處理器110還可依據(jù)各像素行的開始索引值以及結(jié)束索引值以及各像素的像素位置,決定對應(yīng)像素行中各像素位置的像素值。關(guān)于如何依據(jù)前述公式(1)至公式(6)來決定壓縮紋理貼圖的各像素行的參數(shù)值,例如第i行像素行的像素?cái)?shù)pixelofline[i]、原始紋理貼圖第i行像素行中壓縮紋理貼圖第i行像素行中有效像素儲存的開始索引值startpixel[i]和結(jié)束索引值endpixel[i],從而據(jù)此決定每一像素行的壓縮比ratio[i]的步驟可參閱前述公式(1)至公式(6)的產(chǎn)生各項(xiàng)參數(shù)的相關(guān)說明,其細(xì)節(jié)不在此贅述。于決定每一像素行的壓縮比之后,接著,如步驟s406,處理器110以各像素行的各壓縮比,壓縮各像素行,以產(chǎn)生一非矩形的一壓縮紋理貼圖,其中壓縮紋理貼圖映射至球體模型以產(chǎn)生360度全景視頻。舉例來說,假設(shè)原始紋理貼圖具有n個(gè)像素行且第1像素行具有第一壓縮比,第2像素行具有第二壓縮比,第3像素行具有第三壓縮比,則處理器110將依據(jù)第一壓縮比與前述對應(yīng)參數(shù)值采樣原始紋理貼圖的第一行像素行,以產(chǎn)生壓縮紋理貼圖的第1像素行。類似地,處理器110將分別依據(jù)第二壓縮比與第三壓縮比與對應(yīng)參數(shù)值采樣原始紋理貼圖的第2像素行以及第3像素行,以產(chǎn)生壓縮紋理貼圖的第2像素行與第3像素行,依此類推,直到原始紋理貼圖的n個(gè)像素行都依其對應(yīng)壓縮比采樣后得到壓縮紋理貼圖的對應(yīng)像素行,產(chǎn)生一非矩形的一壓縮紋理貼圖,最后新壓縮紋理貼圖映射至球體模型以產(chǎn)生360度全景視頻。具體來說,于決定用于壓縮紋理貼圖各像素行的對應(yīng)參數(shù)值之后,處理器110從左到右依序遍歷原始紋理貼圖的各像素行的各像素位置,并依據(jù)各像素行的對應(yīng)參數(shù)值及其所對應(yīng)像素位置,決定第i行的第j個(gè)像素位置new[i][j]的像素值。其中,依據(jù)各像素行的對應(yīng)參數(shù)值及其所對應(yīng)像素位置,決定第i行的第j個(gè)像素位置new[i][j]的像素值的步驟包括:當(dāng)j<startpixel[i]或j>endpixel[i]時(shí),處理器110將new[i][j]的像素值設(shè)置為黑色像素值;以及當(dāng)startpixel[i]≤j≤endpixel[i]時(shí),處理器110還執(zhí)行一分組程序,依據(jù)原始紋理貼圖像素行的壓縮比,將原始紋理貼圖第i行分為多個(gè)群組并將new[i][j]的像素值設(shè)置為原始紋理貼圖第i行中第(j-start[i])個(gè)群組的指定像素位置的像素值。其中,群組的劃分系根據(jù)該像素行的壓縮比確定的,每ratio[i]個(gè)像素設(shè)置為一個(gè)群組,如圖5所示。圖5為依據(jù)本發(fā)明實(shí)施例的原始紋理貼圖分組的結(jié)果的示意圖。如圖5所示,假設(shè)原始紋理貼圖的第i行像素行510有100個(gè)像素且其壓縮比為5,則原始紋理貼圖的第i行可以每5個(gè)像素為一群組,分成20個(gè)群組,而原始紋理貼圖的第i行像素行510對應(yīng)的壓縮紋理貼圖第i行像素行520可以根據(jù)分組結(jié)果產(chǎn)生,其中,壓縮紋理貼圖第i行520的像素位置startpixel[i]的像素值設(shè)為第0個(gè)群組(如圖所示的群組0)的第1個(gè)像素值,像素位置startpixel[i]+1的像素值設(shè)為第1個(gè)群組(如圖所示的群組1)的第1個(gè)像素值,像素位置startpixel[i]+2的像素值設(shè)為第2個(gè)群組(如圖所示的群組2)的第1個(gè)像素值,依此類推。其中,i、j、startpixel[i]、endpixel[i]以及(j-start[i])均從0開始計(jì)數(shù)。詳細(xì)的紋理貼圖壓縮方法細(xì)節(jié)參見圖6。圖6顯示本發(fā)明另一實(shí)施例的紋理貼圖壓縮方法的流程圖。請同時(shí)參照圖1、圖2、圖3與圖6。依據(jù)本發(fā)明實(shí)施例的紋理貼圖壓縮方法可以適用于一圖像數(shù)據(jù)處理系統(tǒng),舉例來說,可適用于圖1的圖像數(shù)據(jù)處理系統(tǒng)100并由處理器110加以執(zhí)行。于此實(shí)施例中,處理器110可從左到右依序遍歷各像素行的各像素位置,并依據(jù)原始紋理貼圖各像素行的對應(yīng)參數(shù)值及其所對應(yīng)像素位置,決定壓縮紋理貼圖第i行的第j個(gè)像素位置new[i][j]的像素值。首先,處理器110準(zhǔn)備開始對原始紋理貼圖進(jìn)行壓縮,于是如步驟s602,建立壓縮紋理貼圖new的儲存空間new[height][width]。接著,如步驟s604,處理器110計(jì)算壓縮紋理貼圖各像素行的參數(shù),這些參數(shù)至少包括像素?cái)?shù)pixelofline[i]、開始索引值startpixel[i]、以及結(jié)束索引值endpixel[i]。于一些實(shí)施例中,各像素行i的像素?cái)?shù)pixelofline[i]可依據(jù)各像素行的高度值、寬度值以及對應(yīng)緯線圓周的一圓周長所決定,如公式(3)所示。于一些實(shí)施例中,開始索引值startpixel[i]可依據(jù)各像素行的像素?cái)?shù)以及寬度值決定,結(jié)束索引值endpixel[i]可依據(jù)各像素行的像素?cái)?shù)以及開始索引值,如公式(4)以及公式(5)所示。于決定用于壓縮紋理貼圖各像素行的對應(yīng)參數(shù)值之后,處理器110開始從左到右依序遍歷各像素行的各像素位置,并依據(jù)各像素行的對應(yīng)參數(shù)值及其所對應(yīng)像素位置,決定第i行的第j個(gè)像素位置new[i][j]的像素值。如步驟s606,處理器110判斷是否已遍歷完各像素行i。若是,表示已經(jīng)壓縮完原始紋理貼圖的所有像素,因此處理器110繼續(xù)執(zhí)行步驟s612,將壓縮紋理圖像new儲存至一儲存裝置(如儲存單元140)上。若尚未遍歷完各像素行i(步驟s604的否),處理器110繼續(xù)執(zhí)行步驟s608,計(jì)算目前像素行i所對應(yīng)的壓縮比ratio[i],其中ratio[i]=width/pixelofline[i](如公式6所示),且每ratio[i]個(gè)像素組成一群組,如圖5所示。于算出目前像素行i所對應(yīng)的壓縮比ratio[i]之后,處理器110接著判斷是否遍歷完各像素位置j(步驟s610)。若目前像素行i的所有像素位置j均已遍歷(步驟s610的是),表示目前像素行i已全部壓縮處理完畢,因此處理器110回到步驟s606繼續(xù)判斷是否還有其他待處理的像素行i。若目前像素行i仍有至少一像素位置j尚未遍歷(步驟s610的否),表示目前像素行i尚有未被壓縮的像素位置j,處理器110接著執(zhí)行步驟s614至s618,以依據(jù)各像素行i的開始索引值startpixel[i]以及結(jié)束索引值endpixel[i]以及各像素的像素位置j,決定對應(yīng)像素行中各像素位置j的像素值。如步驟s614,處理器110判斷像素位置j的值是否小于開始索引值startpixel[i]對應(yīng)的像素位置值或像素位置j的值是否大于結(jié)束索引值endpixel[i]對應(yīng)的像素位置值。若判定符合步驟s614的條件(即:“j<startpixel[i]||j>endpixel[i]”)則處理器110執(zhí)行步驟s618,若判定為不符合步驟s614的條件則處理器110執(zhí)行步驟s616。于像素位置j的值小于開始索引值startpixel[i]對應(yīng)的像素位置值或像素位置j的值大于結(jié)束索引值endpixel[i]時(shí)(即:j<startpixel[i]或j>endpixel[i])(步驟s614的否),如步驟s618,處理器110設(shè)定new[i][j]的像素值為黑色像素值。于像素位置j的值的值介于開始索引值startpixel[i]與結(jié)束索引值endpixel[i]之間時(shí)(步驟s614的否),如步驟s616,處理器110執(zhí)行如圖5所示的分組程序以依據(jù)開始索引值startpixel[i]對應(yīng)的像素行i的壓縮比,將像素行分為多個(gè)群組并將new[i][j]的像素值設(shè)為這些群組中對應(yīng)一者的指定像素位置的像素值,例如設(shè)定new[i][j]的像素值為原始紋理貼圖第i行像素行中第j個(gè)群組的第一個(gè)像素值。重復(fù)步驟s614、s616以及s618,直到像素行i的所有像素位置j均已全部遍歷完成。舉例來說,假設(shè)原始紋理貼圖的寬度width為360且公式(3)所計(jì)算得到的壓縮紋理貼圖第i行像素行的像素?cái)?shù)pixelofline[i]的值為180時(shí),則可藉由公式(4)、公式(5)與公式(6),分別計(jì)算出其開始索引值startpixel[i]為90、結(jié)束索引值endpixel[i]為269、以及壓縮比ratio[i]為2。也就是說,于此實(shí)施例中,原始紋理貼圖第i行中的360個(gè)像素以2個(gè)像素為一組進(jìn)行分組,分為180個(gè)群組,其中原始紋理貼圖第i行對應(yīng)的壓縮紋理貼圖第i行的數(shù)目為180個(gè)像素并且壓縮紋理貼圖第i行的開始索引值所表示的像素位置(即第90個(gè)像素位置)的像素值為原始紋理貼圖第i行中的第0個(gè)群組的第一個(gè)像素值,第91個(gè)像素位置的像素值為原始紋理貼圖第i行中的第1個(gè)群組的第一個(gè)像素值,第92個(gè)像素位置的像素值為原始紋理貼圖第i行中的第2個(gè)群組的第一個(gè)像素值,依此類推。第89個(gè)像素位置以前的像素值設(shè)為黑色像素值以及第270個(gè)像素位置以后的像素值亦設(shè)為黑色像素值。如此一來,壓縮紋理貼圖第i行所需儲存的有效像素?cái)?shù)僅為原始紋理貼圖第i行的有效像素?cái)?shù)的一半,可有效減少有效紋理范圍的像素?cái)?shù)。圖7為依據(jù)本發(fā)明實(shí)施例的壓縮紋理貼圖700的示意圖,其中壓縮紋理貼圖700表示原始紋理貼圖200的壓縮結(jié)果。請同時(shí)參閱圖2與圖7。如圖7所示,壓縮紋理貼圖700根據(jù)紋理貼圖像素行在球體上對應(yīng)球體位置的不同緯度圓周的大小決定紋理貼圖像素行上的壓縮比,其中對應(yīng)球體位置靠近球體模型的南北兩極的一第一像素行的壓縮比大于對應(yīng)球體位置遠(yuǎn)離球體模型的兩極的一第二像素行的壓縮比,因而將原先使用的矩形紋理貼圖壓縮成近似橢圓狀的紋理貼圖。比較圖2與圖7可知,將原始紋理貼圖200壓縮后的壓縮紋理貼圖700中的有效紋理范圍的像素?cái)?shù)約為原始紋理貼圖200的68%。因此,本公開的紋理貼圖的壓縮方法可根據(jù)緯線圓周大小來確定非矩形的一壓縮紋理貼圖上各像素行的像素?cái)?shù),使得對應(yīng)于球體模型上南北兩極附近只會儲存少數(shù)必要的信息,可有效解決現(xiàn)有技術(shù)中紋理貼圖在球體模型上南北兩極出現(xiàn)的冗余信息過多的問題。本發(fā)明另一實(shí)施例更提供應(yīng)用前述壓縮紋理貼圖以產(chǎn)生360度全景視頻的方法。于此實(shí)施例中,壓縮紋理貼圖映射至一球體模型的對應(yīng)位置,以便應(yīng)用壓縮后的非矩形紋理貼圖創(chuàng)建球體模型,產(chǎn)生360度全景視頻,從而進(jìn)行360度全景視頻的播放。由于應(yīng)用壓縮后的非矩形紋理貼圖創(chuàng)建球體模型以產(chǎn)生360度全景視頻時(shí)需要先行計(jì)算出來的各像素行的參數(shù)值進(jìn)行紋理坐標(biāo)的映射,因此必須先建構(gòu)球體模型。參見圖8a、圖8b以及圖8c。圖8a、圖8b以及圖8c為依據(jù)本發(fā)明實(shí)施例的球體模型建構(gòu)示意圖。其中,圖8a為球體模型的坐標(biāo)系統(tǒng)示意圖,圖8b為圖8a的球體模型從y軸正方向俯視結(jié)果示意圖,圖8c則為球體模型上經(jīng)緯線交點(diǎn)生成的細(xì)分三角形頂點(diǎn)示意圖。如圖8a所示,為了創(chuàng)建球體模型,圖形處理單元130先將球體沿緯線方向分為irings份以及沿經(jīng)線方向分為isectors份,因此球面上有irings條緯線與isectors條經(jīng)線相交。假設(shè)pvertices[i][j]表示第i條緯線與第j條經(jīng)線的交點(diǎn),則可應(yīng)用如下公式計(jì)算球體模型參數(shù),其包括交點(diǎn)坐標(biāo)(x,y,z)與交點(diǎn)紋理坐標(biāo)(u,v),用于球體模型的創(chuàng)建以及紋理貼圖的采樣。其中,pixellineofring[i]表示第i條緯線所對應(yīng)紋理貼圖的像素行,fradius為球體半徑,frring[i]為第i條緯線圈的半徑,如圖8a與圖8b所示。每一iring與isector相交于一細(xì)分三角形,此細(xì)分三角形的頂點(diǎn)坐標(biāo)為兩者的交點(diǎn)坐標(biāo)pvertices[i][j],再利用交點(diǎn)坐標(biāo)構(gòu)建如圖8c所示的球體模型,并根據(jù)先行計(jì)算出來的壓縮紋理貼圖上的各像素行的參數(shù)值startpixel[i]、pixelofline[i],設(shè)置球體上各細(xì)分三角形的紋理坐標(biāo)屬性。首先,處理器110依據(jù)所分的經(jīng)線數(shù)isector與緯線數(shù),以下面公式(7)計(jì)算如圖8a所示的第一角度θ:處理器110再依據(jù)高度height與所分的緯線數(shù)irings,經(jīng)由以下公式(8)決定第i條緯線對應(yīng)的紋理貼圖上的像素行pixellineofiring[i],第i條緯線上的點(diǎn)的像素值采樣自該行:處理器110再依據(jù)第i條緯線對應(yīng)的紋理貼圖像素行pixellineofiring[i]與高度height,經(jīng)由以下公式(9)計(jì)算出第二角度δ:處理器110可再依據(jù)第二角度δ與球體半徑,計(jì)算出第i條緯線圈的半徑frring[i]:frring[i]=fradius*sin(δ)(10)接著,處理器110依據(jù)第i條緯線圈的半徑、第一角度、第二角度與球體半徑,通過以下公式(11)-(13)計(jì)算出交點(diǎn)pvertices[i][j]的三維球體坐標(biāo)(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再依據(jù)該對應(yīng)行的開始索引值(startpixel[i])、第i條緯線對應(yīng)的紋理貼圖像素行的像素?cái)?shù)(pixelofline[i]),通過以下公式(14)計(jì)算交點(diǎn)pvertices[i][j]在第i條緯線對應(yīng)的紋理貼圖像素行中的像素索引值(pixelindexinline[j]):其中,pixellineofiring[i]為該點(diǎn)的行號(行索引值);pixelofline[pixellineofiring[i]]是壓縮紋理貼圖第pixellineofiring[i]行的像素?cái)?shù)(有效像素?cái)?shù)量);表示該行有效像素?cái)?shù)分成(isectors-1)份;先計(jì)算得到該對應(yīng)點(diǎn)在有效像素中的索引值(第一個(gè)有效像素值的索引值為0);再根據(jù)該行第一個(gè)有效像素的坐標(biāo)startpixel[pixellineofiring[i]],計(jì)算該對應(yīng)點(diǎn)在所在像素行(包含無效像素)中的坐標(biāo)索引值pixelindexinline[j],并且交點(diǎn)pvertices[i][j]會對應(yīng)到紋理貼圖上的一個(gè)點(diǎn)。以上公式僅為計(jì)算紋理貼圖上該對應(yīng)點(diǎn)坐標(biāo)的一個(gè)示例方法,但本發(fā)明不限于此。最后,處理器110便可依據(jù)交點(diǎn)pvertices[i][j]在第i條緯線對應(yīng)的紋理貼圖像素行中的像素索引值(pixelindexinline[j])與寬度值width,通過以下公式(15)計(jì)算對應(yīng)的紋理坐標(biāo)u值,同時(shí)依據(jù)交點(diǎn)pvertices[i][j]在第i條緯線對應(yīng)的紋理貼圖像素行(pixellineofiring[i])與高度值height,通過以下公式(16)計(jì)算對應(yīng)的紋理坐標(biāo)v值:之后,圖形處理單元(gpu)130可應(yīng)用前述公式(11)-(13)所算出的各交點(diǎn)的球體坐標(biāo)(x,y,z)與前述公式(15)-(16)所算出映射紋理坐標(biāo)(u,v)之間的對應(yīng)關(guān)系,將壓縮紋理貼圖作為球體模型的紋理圖,將壓縮紋理貼圖的各點(diǎn)映射于球體模型的一對應(yīng)位置上,進(jìn)而產(chǎn)生360度全景視頻。圖9顯示本發(fā)明一實(shí)施例的產(chǎn)生360度全景視頻的方法流程圖。請同時(shí)參照圖1、圖7、第8a-圖8c以及圖9。依據(jù)本發(fā)明實(shí)施例的產(chǎn)生360度全景視頻方法可以適用于一圖像數(shù)據(jù)處理系統(tǒng),舉例來說,可適用于圖1的圖像數(shù)據(jù)處理系統(tǒng)100并由處理器110或圖形處理單元(gpu)130加以執(zhí)行??衫斫獾氖牵瑘D1的圖像數(shù)據(jù)處理系統(tǒng)100用于解釋流程圖,但本發(fā)明并非僅應(yīng)用于圖像數(shù)據(jù)處理系統(tǒng)100。于此實(shí)施例中,處理器110或圖形處理單元130可自一儲存單元(如儲存單元140)中取出一非矩形的壓縮紋理貼圖(如圖7所示的壓縮紋理貼圖700)并將此壓縮紋理貼圖映射至球體模型以產(chǎn)生一360度全景視頻。首先,如步驟s902,圖形處理單元130可接收壓縮紋理貼圖,其中壓縮紋理圖像具有多個(gè)像素行i,各像素行i包括一第一數(shù)量的像素且各像素行i包括多個(gè)參數(shù)值,其中參數(shù)值包括對應(yīng)于像素行i的一取樣像素?cái)?shù)量、一第一索引值、以及一第二索引值。具體來說,于此實(shí)施例中,壓縮紋理圖像為非矩形的紋理貼圖(例如:圖7所示的壓縮紋理貼圖700),壓縮紋理圖像的各像素行i具有不同的像素?cái)?shù)且其有效像素的儲存位置也有所不同,因此各像素行i有對應(yīng)的一取樣像素?cái)?shù)量、開始索引值(第一索引值)以及結(jié)束索引值(第二索引值),其中各像素行的開始索引值以及結(jié)束索引值分別表示該對應(yīng)像素行中有效像素儲存的開始像素位置以及結(jié)束像素位置。也就是說,開始索引值與結(jié)束索引值分別表示第i行像素行的有效像素采樣范圍。這些參數(shù)值可于產(chǎn)生壓縮紋理貼圖時(shí)一起記錄于儲存單元140中,因此處理器110可由儲存單元140讀取壓縮紋理貼圖以接收壓縮紋理貼圖時(shí)并直接讀取這些相關(guān)記錄以取得前述參數(shù)值。于另一實(shí)施例中,處理器110可分析所接收的壓縮紋理貼圖的各像素行的參數(shù)值,過濾掉預(yù)設(shè)的固定值(例如:黑色像素值)的像素,以取得前述參數(shù)值。接著,如步驟s904,處理器110依據(jù)各像素行i的上述參數(shù)值,執(zhí)行一紋理坐標(biāo)映射,得到各像素行i的一映射紋理坐標(biāo)。得到各像素行i的映射紋理坐標(biāo)之后,如步驟s906,處理器110依據(jù)參數(shù)值,設(shè)置球體模型上各細(xì)分三角形的紋理坐標(biāo)屬性。于此步驟中,處理器110可通過前述公式(7)-(14),依據(jù)交點(diǎn)pvertices[i][j]在第i條緯線對應(yīng)的紋理貼圖像素行中的像素索引值pixelindexinline[j]與高度值height,計(jì)算對應(yīng)的映射紋理坐標(biāo)u值,同時(shí)依據(jù)交點(diǎn)pvertices[i][j]在第i條緯線對應(yīng)的紋理貼圖像素行的值(pixellineofiring[i])與寬度值width,計(jì)算對應(yīng)的映射紋理坐標(biāo)v值。舉例來說,處理器110可通過公式(15)-(16)得到映射紋理坐標(biāo)(u,v),但本發(fā)明并不限于此。設(shè)置完球體模型上各細(xì)分三角形的紋理坐標(biāo)屬性之后,如步驟s908,圖形處理單元130將壓縮紋理貼圖依據(jù)各參數(shù)值與映射紋理坐標(biāo),映射于球體模型的一對應(yīng)位置上以產(chǎn)生360度全景視頻。于此步驟中,圖形處理單元130可依據(jù)各交點(diǎn)的球體坐標(biāo)(x,y,z)與映射紋理坐標(biāo)(u,v)之間的對應(yīng)關(guān)系,將壓縮紋理貼圖作為球體模型的紋理圖,將壓縮紋理貼圖的各點(diǎn)映射于球體模型的一對應(yīng)位置上,進(jìn)而產(chǎn)生360度全景視頻。圖10顯示本發(fā)明一實(shí)施例的360度全景視頻的播放方法流程圖。依據(jù)本發(fā)明實(shí)施例的360度全景視頻的播放方法可以適用于一圖像數(shù)據(jù)處理系統(tǒng),舉例來說,可適用于圖1的圖像數(shù)據(jù)處理系統(tǒng)100并由一gpu如圖形處理單元130加以執(zhí)行??衫斫獾氖牵瑘D1的圖像數(shù)據(jù)處理系統(tǒng)100用于解釋流程圖,但本發(fā)明并非僅應(yīng)用于圖像數(shù)據(jù)處理系統(tǒng)100。于此實(shí)施例中,假設(shè)儲存單元140可包括一系統(tǒng)存儲器(未圖示)且系統(tǒng)存儲器中儲存有處理器110所產(chǎn)生的非矩形的壓縮紋理貼圖(如圖7所示的壓縮紋理貼圖700)以及對應(yīng)的球體模型參數(shù),gpu可自系統(tǒng)存儲器中取出此非矩形的壓縮紋理貼圖至gpu內(nèi)建的本地存儲器中并將此壓縮紋理貼圖映射至對應(yīng)球體參數(shù)的球體模型以產(chǎn)生一360度全景視頻,之后再依據(jù)一使用者觀看的視角選擇,決定360度全景視頻的當(dāng)前視口圖像并將當(dāng)前視口圖像在顯示裝置150上顯示。首先,如步驟s1002,gpu加載系統(tǒng)存儲器中的壓縮紋理貼圖圖像至其本地存儲器中。于加載壓縮紋理貼圖影像至本地存儲器之后,如步驟s1004,gpu加載系統(tǒng)存儲器中的相應(yīng)的球體模型參數(shù)并依據(jù)球體模型參數(shù)建立一球體模型(如圖8c所示)。如步驟s1006,gpu將一幀幀的壓縮紋理貼圖映射到球體模型上,產(chǎn)生一360°視頻流作為360度全景視頻,此360°視頻流為一個(gè)水平和縱向都是360°的視頻集合。于產(chǎn)生360°視頻流之后,此時(shí)使用者的觀看視角默認(rèn)在中心位置且當(dāng)前視口圖像為中心位置所對應(yīng)的默認(rèn)圖像。當(dāng)使用者觀者的觀看視角改變時(shí),會產(chǎn)生一個(gè)使用者的視角選擇。當(dāng)gpu接收使用者的視角選擇之后,表示使用者欲改變觀看的圖像,于是如步驟s1008,gpu根據(jù)使用者的視角選擇,決定360°視頻流的一當(dāng)前視口圖像并將當(dāng)前視口圖像在顯示裝置150上顯示。藉此,gpu便可利用本案的紋理貼圖的壓縮方法所產(chǎn)生的壓縮紋理貼圖與球體模型之間映射產(chǎn)生360°視頻流并隨著使用者的視角選擇的變化改變所顯示的當(dāng)前視口圖像,從而實(shí)現(xiàn)360度全景視頻的播放。因此,依據(jù)本發(fā)明的紋理貼圖的壓縮方法及其相關(guān)圖像數(shù)據(jù)處理系統(tǒng)與產(chǎn)生360度全景視頻的方法可根據(jù)球體上不同緯度圓周的大小決定紋理貼圖像素行上的壓縮比,將現(xiàn)有技術(shù)中所使用的矩形紋理貼圖壓縮成非矩形紋理貼圖,使得壓縮紋理貼圖所需儲存的有效像素?cái)?shù)可大幅減少,因而可有效解決現(xiàn)有技術(shù)中紋理貼圖在球體模型上南北兩極出現(xiàn)的冗余信息過多的問題,實(shí)現(xiàn)球面上紋理像素分辨率的統(tǒng)一,可達(dá)到降低紋理貼圖上的數(shù)據(jù)冗余度與降低傳輸所需的頻寬的目的。此外,依據(jù)本發(fā)明的產(chǎn)生360度全景視頻的方法可進(jìn)一步應(yīng)用壓縮后的非矩形紋理貼圖創(chuàng)建球體模型,并據(jù)此產(chǎn)生一360度全景視頻,再隨著使用者的視角選擇的變化改變所顯示的當(dāng)前視口圖像,從而實(shí)現(xiàn)360度全景視頻的播放。本發(fā)明的方法,或特定型態(tài)或其部份,可以以程序代碼的型態(tài)存在。程序代碼可以包含于實(shí)體媒體,如軟盤、光盤片、硬盤、或是任何其他機(jī)器可讀取(如計(jì)算機(jī)可讀取)儲存媒體,亦或不限于外在形式的計(jì)算機(jī)程序產(chǎn)品,其中,當(dāng)程序代碼被機(jī)器,如計(jì)算機(jī)載入且執(zhí)行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。程序代碼也可通過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態(tài)進(jìn)行傳送,其中,當(dāng)程序代碼被機(jī)器,如計(jì)算機(jī)接收、載入且執(zhí)行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。當(dāng)在一般用途圖像處理器實(shí)作時(shí),程序代碼結(jié)合圖像處理器提供一操作類似于應(yīng)用特定邏輯電路的獨(dú)特裝置。雖然本發(fā)明已以較佳實(shí)施例公開如上,然其并非用以限定本發(fā)明,任何所屬
技術(shù)領(lǐng)域:
:中包括通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤飾。舉例來說,本發(fā)明實(shí)施例所述的系統(tǒng)以及方法可以硬件、軟件或硬件以及軟件的組合的實(shí)體實(shí)施例加以實(shí)現(xiàn)。因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求所界定者為準(zhǔn)。當(dāng)前第1頁12當(dāng)前第1頁12