一種壓縮紋理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明設(shè)及壓縮紋理技術(shù)領(lǐng)域,特別設(shè)及一種壓縮紋理的方法及裝置。
【背景技術(shù)】
[0002] 就如壓縮的聯(lián)合圖像專家小組(Joint Photographic Experts Group,肝EG)圖像 比未壓縮的位圖文件(BITMAP)圖像更節(jié)省磁盤空間一樣,紋理壓縮也可讓更多紋理裝入圖 形硬件(Gra曲ics Processing Unit,GPU)中。Mali GPU內(nèi)建了硬件紋理壓縮工具(Tex1:ure Compression Tool),允許紋理在圖形硬件中保持壓縮狀態(tài),并在所需的樣本上實(shí)時解壓 縮。通過在應(yīng)用程序中使用壓縮紋理,可W大幅減少所需的內(nèi)存帶寬量,從而提高應(yīng)用程序 性能,降低功耗。
[0003] 愛立信紋理壓縮化ricsson Tex1:ure Compression,ETC)是一種紋理壓縮標(biāo)準(zhǔn),是 由化ronos支持的開放標(biāo)準(zhǔn),是"OpenGL ES標(biāo)準(zhǔn)擴(kuò)展"的一部分。ETC標(biāo)準(zhǔn)主要提供給嵌入式 設(shè)備使用,因此在移動平臺中廣泛采用。ETC提供了對于24位RGB數(shù)據(jù)6倍的壓縮率,是一種 為感知質(zhì)量設(shè)計(jì)的有損算法,其依據(jù)是人眼對亮度改變的反應(yīng)要高于色度改變。該標(biāo)準(zhǔn)已 被趾ronos Group準(zhǔn)許用于瀏覽器顯示網(wǎng)絡(luò)圖片。
[0004] 阿爾法通道是一個8位的灰度通道,該通道用256級灰度來記錄圖像中的透明度信 息,定義透明、不透明和半透明區(qū)域。由于使用ETC vUETCl)標(biāo)準(zhǔn)壓縮紋理時,阿爾法通道 信息(W下簡稱阿爾法信息)會丟失,因此許多開發(fā)人員采用其他紋理壓縮算法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種壓縮紋理的方法及裝置,能更好地解決ETCl標(biāo)準(zhǔn)沒有 阿爾法信息問題。
[0006] 根據(jù)本發(fā)明的一個方面,提供了 一種壓縮紋理的方法,包括:
[0007] 通過對原始圖片進(jìn)行轉(zhuǎn)換,得到僅具有所述原始圖片的顏色信息的第一張圖片和 僅具有所述原始圖片的阿爾法信息的第二張圖片;
[000引將所述第一張圖片和第二張圖片進(jìn)行拼接,得到拼接圖片;
[0009] 對所述拼接圖片進(jìn)行紋理壓縮處理,得到壓縮紋理圖片,并生成對應(yīng)于所述壓縮 紋理圖片的紋理壓縮文件;
[0010] 利用所生成的紋理壓縮文件,對所述壓縮紋理圖片進(jìn)行解壓和還原。
[0011] 優(yōu)選地,所述得到僅具有顏色信息的第一張圖片的步驟包括:
[0012] 通過將所述原始圖片中的每個像素的阿爾法信息去除,得到第一張圖片;
[0013] 其中,所述第一張圖片的每個像素僅具有所述原始圖片的相應(yīng)像素的顏色信息, 作為第一顏色信息。
[0014] 優(yōu)選地,所述得到僅具有阿爾法信息的第二張圖片的步驟包括:
[0015] 對所述原始圖片中的每個像素的阿爾法信息進(jìn)行提取;
[0016] 將所提取的每個像素的阿爾法信息作為所述每個像素的第二顏色信息,并生成僅 具有所述第二顏色信息的第二張圖片。
[0017] 優(yōu)選地,所述生成對應(yīng)于所述壓縮紋理圖片的紋理壓縮文件的步驟包括:
[0018] 通過對所述拼接圖片中的每個像素的顏色信息進(jìn)行提取,得到包括第一顏色信息 和第二顏色信息的紋理信息;
[0019] 將包括所述壓縮紋理圖片的壓縮方式信息和所述紋理信息的信息進(jìn)行組合,得到 數(shù)據(jù)塊;
[0020] 根據(jù)所得到的數(shù)據(jù)塊的數(shù)量,生成包括數(shù)據(jù)塊數(shù)量信息的文件頭;
[0021] 將所述文件頭和所述數(shù)據(jù)塊進(jìn)行組合,形成對應(yīng)于所述壓縮紋理圖片的紋理壓縮 文件。
[0022] 優(yōu)選地,所述對所述壓縮紋理圖片進(jìn)行解壓和還原的步驟包括:
[0023] 利用所述紋理壓縮文件中相應(yīng)數(shù)據(jù)塊內(nèi)的壓縮方式信息,對待解壓的壓縮紋理圖 片進(jìn)行解壓處理;
[0024] 將所述紋理壓縮文件中相應(yīng)數(shù)據(jù)塊內(nèi)的第二顏色信息轉(zhuǎn)換為阿爾法信息;
[0025] 利用所述紋理壓縮文件中相應(yīng)數(shù)據(jù)塊內(nèi)的第一顏色信息和轉(zhuǎn)換得到的阿爾法信 息,對解壓得到的圖片進(jìn)行還原,得到原始圖片。
[0026] 根據(jù)本發(fā)明的另一方面,提供了 一種壓縮紋理的裝置,包括:
[0027] 轉(zhuǎn)換模塊,用于通過對原始圖片進(jìn)行轉(zhuǎn)換,得到僅具有所述原始圖片的顏色信息 的第一張圖片和僅具有所述原始圖片的阿爾法信息的第二張圖片;
[0028] 合成模塊,用于將所述第一張圖片和第二張圖片進(jìn)行拼接,得到拼接圖片;
[0029] 壓縮模塊,用于對所述拼接圖片進(jìn)行紋理壓縮處理,得到壓縮紋理圖片,并生成對 應(yīng)于所述壓縮紋理圖片的紋理壓縮文件;
[0030] 還原模塊,用于利用所生成的紋理壓縮文件,對所述壓縮紋理圖片進(jìn)行解壓和還 原。
[0031] 優(yōu)選地,所述轉(zhuǎn)換模塊通過將所述原始圖片中的每個像素的阿爾法信息去除,得 到第一張圖片,其中,所述第一張圖片的每個像素僅具有所述原始圖片的相應(yīng)像素的顏色 信息,作為第一顏色信息。
[0032] 優(yōu)選地,所述轉(zhuǎn)換模塊對所述原始圖片中的每個像素的阿爾法信息進(jìn)行提取,并 將所提取的每個像素的阿爾法信息作為所述每個像素的第二顏色信息,并生成僅具有所述 第二顏色信息的第二張圖片。
[0033] 優(yōu)選地,所述壓縮模塊通過對所述拼接圖片中的每個像素的顏色信息進(jìn)行提取, 得到包括第一顏色信息和第二顏色信息的紋理信息,并將包括所述壓縮紋理圖片的壓縮方 式信息和所述紋理信息的信息進(jìn)行組合,得到數(shù)據(jù)塊,根據(jù)所得到的數(shù)據(jù)塊的數(shù)量,生成包 括數(shù)據(jù)塊數(shù)量信息的文件頭,并將所述文件頭和所述數(shù)據(jù)塊進(jìn)行組合,形成對應(yīng)于所述壓 縮紋理圖片的紋理壓縮文件。
[0034] 優(yōu)選地,所述還原模塊利用所述紋理壓縮文件中相應(yīng)數(shù)據(jù)塊內(nèi)的壓縮方式信息, 對待解壓的壓縮紋理圖片進(jìn)行解壓處理,并將所述紋理壓縮文件中相應(yīng)數(shù)據(jù)塊內(nèi)的第二顏 色信息轉(zhuǎn)換為阿爾法信息,利用所述紋理壓縮文件中相應(yīng)數(shù)據(jù)塊內(nèi)的第一顏色信息和轉(zhuǎn)換 得到的阿爾法信息,對解壓得到的圖片進(jìn)行還原,得到原始圖片。
[0035] 與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:
[0036] 1、本發(fā)明在保留ETCl壓縮紋理的優(yōu)勢和特性的基礎(chǔ)上,能夠保留阿爾法信息;
[0037] 2、本發(fā)明利用由自定義結(jié)構(gòu)的文件頭和多個自定義結(jié)構(gòu)的數(shù)據(jù)塊構(gòu)成的紋理壓 縮文件,實(shí)現(xiàn)對壓縮紋理圖片的解壓和還原,適用于包括蛇ret化gine的各類引擎;
[003引3、本發(fā)明的紋理壓縮文件中的數(shù)據(jù)塊數(shù)量和順序都沒有限制。
【附圖說明】
[0039] 圖1是本發(fā)明實(shí)施例提供的壓縮紋理的流程圖;
[0040] 圖2是本發(fā)明實(shí)施例提供的壓縮紋理的裝置框圖;
[0041 ]圖3(a)是本發(fā)明第一實(shí)施例提供的原始圖片示意圖;
[0042] 圖3(b)是采用ETCl對圖3(a)壓縮紋理得到的顯示效果圖;
[0043] 圖3(c)是采用本發(fā)明對圖3(a)壓縮紋理得到的顯示效果圖;
[0044] 圖4(a)是本發(fā)明第二實(shí)施例提供的原始圖片示意圖;
[0045] 圖4(b)是采用本發(fā)明對圖4(a)壓縮紋理得到的顯示效果圖。
【具體實(shí)施方式】
[0046] W下結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說明,應(yīng)當(dāng)理解,W下所說明的優(yōu) 選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0047] 圖1是本發(fā)明實(shí)施例提供的壓縮紋理的流程圖,如圖1所示,步驟包括:
[0048] 步驟SlOl:通過對原始圖片進(jìn)行轉(zhuǎn)換,得到僅具有原始圖片