溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

unity3d中圖像壓縮原理是什么

發(fā)布時(shí)間:2022-01-19 09:35:57 來源:億速云 閱讀:242 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)unity3d中圖像壓縮原理是什么,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

1 圖像可壓縮的原因

一張?jiān)紙D像(1920x1080),如果每個(gè)像素32bit表示(RGBA),那么,圖像需要的內(nèi)存大小
1920x1080x4 = 8294400 Byte,大約8M。這我們是萬萬不能接受的。如果這樣,1G硬盤才存100多張圖片,傷不起啊!視頻也一樣,如果視頻是1920x1080,30fps, 1小時(shí)。那不壓縮大概需要的內(nèi)存:
8Mx30x60*60 = 864000M,都800多G了!瘋了吧!

所以說,我們需要圖像壓縮。

那圖像為何可以壓縮呢?因?yàn)樗泻芏嗳哂嘈畔ⅰ?br/> 常見圖像、視頻、音頻數(shù)據(jù)中存在的冗余類型如下:
1. 空間冗余
2. 時(shí)間冗余
3. 視覺冗余
下面詳細(xì)介紹。

1.1 空間冗余

一幅圖像表面上各采樣點(diǎn)的顏色之間往往存在著空間連貫性,比如下圖,兩只老鼠的顏色,背后的墻,灰色的地板,顏色都一樣。這些顏色相同的塊就可以壓縮。
比如說,第一行像素基本都一樣,假設(shè)亮度值Y是這么存的
[105 105 105…….105],如果共100個(gè)像素,那需要1Byte*100。
最簡單的壓縮:[105, 100],表示接下來100個(gè)像素的亮度都是105,那么只要2個(gè)字節(jié),就能表示整行數(shù)據(jù)了!豈不是壓縮了!
unity3d中圖像壓縮原理是什么

空間冗余主要發(fā)生在單張圖片,比如我們的照片。

1.2 時(shí)間冗余

這種冗余主要針對視頻。
運(yùn)動(dòng)圖像(視頻)一般為位于一時(shí)間軸區(qū)間的一組連續(xù)畫面,其中的相鄰幀往往包含相同的背景和移動(dòng)物體,只不過移動(dòng)物體所在的空間位置略有不同,所以后一幀的數(shù)據(jù)與前一幀的數(shù)據(jù)有許多共同的地方,這種共同性是由于相鄰幀記錄了相鄰時(shí)刻的同一場景畫面,所以稱為時(shí)間冗余。
如下圖所示,其實(shí)1秒30幀,每一幀之間都是33ms,這么短,前后幀的變話很少,也許只有嘴巴動(dòng)了,背景沒動(dòng)。
unity3d中圖像壓縮原理是什么

1.3 視覺冗余

人類的視覺系統(tǒng)由于受生理特性的限制,對于圖像場的注意是非均勻的,人對細(xì)微的顏色差異感覺不明顯。
例如,人類視覺的一般分辨能力為26灰度等級,而一般的圖像的量化采用的是28灰度等級,即存在視覺冗余。
人類的聽覺對某些信號反映不太敏感,使得壓縮后再還原有允許范圍的變化,人也感覺不出來。

2 數(shù)據(jù)壓縮方法的分類

2.1 按照壓縮方法是否產(chǎn)生失真分類

2.1.1 無失真壓縮

無失真壓縮要求解壓以后的數(shù)據(jù)和原始數(shù)據(jù)完全一致。解壓后得到的數(shù)據(jù)是原數(shù)據(jù)的復(fù)制,是一種可逆壓縮。
無失真壓縮法去掉或減少數(shù)據(jù)中的冗余,恢復(fù)時(shí)再重新插到數(shù)據(jù)中,因此是可逆過程
根據(jù)目前的技術(shù)水平,無損壓縮算法一般可以把普通文件的數(shù)據(jù)壓縮到原來的1/2-1/4。一些常用的無損壓縮算法有赫夫曼(Huffman)算法和LZW(Lenpel-Ziv & Welch)壓縮算法

2.1.2 有失真壓縮

解壓以后的數(shù)據(jù)和原始數(shù)據(jù)不完全一致,是不可逆壓縮方式。有失真壓縮還原后,不影響信息的表達(dá)
例如,圖像、視頻、音頻數(shù)據(jù)的壓縮就可以采用有損壓縮方法,因?yàn)槠渲邪臄?shù)據(jù)往往多于我們的視覺系統(tǒng)和聽覺系統(tǒng)所能接收的信息,丟掉一些數(shù)據(jù)而不至于對聲音或者圖像所表達(dá)的意思產(chǎn)生誤解,但可大大提高壓縮比。圖像、視頻、音頻數(shù)據(jù)的壓縮比可高達(dá)100:1,但人的主觀感受仍不會對原始信息產(chǎn)生誤解。

2.2 按照壓縮方法的原理分類

2.2.1 預(yù)測編碼

基本思想是利用已被編碼的點(diǎn)的數(shù)據(jù)值,預(yù)測鄰近的一個(gè)像素點(diǎn)的數(shù)據(jù)值

2.2.2 變換編碼

基本思想是將圖像的光強(qiáng)矩陣變換到系數(shù)空間上,然后對系數(shù)進(jìn)行編碼壓縮

2.2.3 統(tǒng)計(jì)編碼

根據(jù)信息出現(xiàn)概率的分布特性而進(jìn)行的壓縮編碼。比如霍夫曼編碼。

3 圖像壓縮的要素

壓縮比
壓縮前后文件大小之比,越高越好,但受速度、消耗資源等的影響。
圖像質(zhì)量
還原后與原圖像相比,評估的方法有客觀評估和主觀評估。
壓縮與解壓縮速度
與壓縮方法和壓縮編碼的算法有關(guān),一般壓縮比解壓縮計(jì)算量大,因而壓縮比解壓縮慢。

4. 圖像壓縮編碼舉例

4.1 行程編碼(RLE)

這是最好理解的一種編碼了。
現(xiàn)實(shí)中有許多這樣的圖像,在一幅圖像中具有許多顏色相同的圖塊。在這些圖塊中,許多行上都具有相同的顏色,或者在一行上有許多連續(xù)的像素都具有相同的顏色值。在這種情況下就不需要存儲每一個(gè)像素的顏色值,而僅僅存儲一個(gè)像素的顏色值,以及具有相同顏色的像素?cái)?shù)目就可以,或者存儲像素的顏色值,以及具有相同顏色值的行數(shù)。
這種壓縮編碼稱為行程編碼(run length encoding,RLE),具有相同顏色并且是連續(xù)的像素?cái)?shù)目稱為行程長度。
例如,字符串AAABCDDDDDDDDBBBBB
利用RLE原理可以壓縮為3ABC8D5B
RLE編碼簡單直觀,編碼/解碼速度快,
因此許多圖形和視頻文件,如.BMP .TIFF及AVI等格式文件的壓縮均采用此方法.
由于一幅圖像中有許多顏色相同的圖塊,用一整數(shù)對存儲一個(gè)像素的顏色值及相同顏色像素的數(shù)目(長度)。例如:
(G ,L)//G為顏色值,L為長度值
編碼時(shí)采用從左到右,從上到下的排列,每當(dāng)遇到一串相同數(shù)據(jù)時(shí)就用該數(shù)據(jù)及重復(fù)次數(shù)代替原來的數(shù)據(jù)串。

舉例,如下的18*7的像素(假設(shè)只有灰度值,1字節(jié))
000000003333333333
222222222226666666
111111111111111111
111111555555555555
888888888888888888
555555555555553333
222222222222222222
僅僅需要11對數(shù)據(jù)表示。
(0,8) (3,10) (2,11) (6,7)
(1,18) (1,6) (5,12) (8,18)
(5,14) (3,4) (2,18)

游程長度編碼特點(diǎn):
直觀,經(jīng)濟(jì);
是一種無損壓縮;
壓縮比取決于圖像本身特點(diǎn),相同顏色圖像塊越大,圖像塊數(shù)目越少,壓縮比越高。
適用于計(jì)算機(jī)生成的圖像,例如。BMP、TIF等,不適于顏色豐富的自然圖像。

這并不是說RLE編碼方法不適用于自然圖像的壓縮,相反,在自然圖像的壓縮中少不了RLE,只不過是不能單純使用RLE一種編碼方法,需要和其他的壓縮編碼技術(shù)聯(lián)合應(yīng)用。

4.2 哈夫曼編碼(Huffman)

由于圖像中表示顏色的數(shù)據(jù)出現(xiàn)的概率不同,對于出現(xiàn)頻率高的賦(編)予較短字長的碼,對出現(xiàn)頻率小的編于較長字長的碼,從而減少總的代碼量,但不減少總的信息量。

編碼步驟:
(1)初始化,根據(jù)符號概率的大小按由大到小順序?qū)Ψ栠M(jìn)行排序
(2)把概率最小的兩個(gè)符號組成一個(gè)節(jié)點(diǎn),如圖4-02中的D和E組成節(jié)點(diǎn)P1。
(3)重復(fù)步驟2,得到節(jié)點(diǎn)P2、P3和P4,形成一棵“樹”,其中的P4稱為根節(jié)點(diǎn)。
(4)從根節(jié)點(diǎn)P4開始到相應(yīng)于每個(gè)符號的“樹葉”,從上到下標(biāo)上“0”(上枝)或者“1”(下枝),至于哪個(gè)為“1”哪個(gè)為“0”則無關(guān)緊要,最后的結(jié)果僅僅是分配的代碼不同,而代碼的平均長度是相同的。
(5)從根節(jié)點(diǎn)P4開始順著樹枝到每個(gè)葉子分別寫出每個(gè)符號的代碼。

4.3 DCT編碼

4.3.1 基本概念

將在空域上描述的圖象,經(jīng)過某種變換(通常采用,余弦變換、傅立葉變換、沃爾什變換等),在某種變換域里進(jìn)行描述。
在變換域里,首先降低了圖象的相關(guān)性;其次通過某種圖象處理(如頻域的二維濾波)以及熵編碼,則可進(jìn)一步壓縮圖象的編碼比特率。
這種變換常用于JPEG圖像壓縮。

4.3.2 變換壓縮原理框圖

unity3d中圖像壓縮原理是什么
G : 輸入源圖像
G’ :解碼后的圖像
U: 二維正交變換
U’ : 二維正交逆變換

除了這些常見的壓縮算法,還有很多種其他算法,這里就不一一介紹啦,反正你有個(gè)感性的認(rèn)識就行。

關(guān)于“unity3d中圖像壓縮原理是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI