圖像壓縮的基本概念_第1頁
圖像壓縮的基本概念_第2頁
圖像壓縮的基本概念_第3頁
圖像壓縮的基本概念_第4頁
圖像壓縮的基本概念_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

關(guān)于圖像壓縮的基本概念第四章圖像壓縮4.1圖像壓縮的基本概念4.2無損壓縮4.3有損壓縮4.4壓縮標(biāo)準(zhǔn)第四章圖像壓縮第2頁,共52頁,2024年2月25日,星期天第一節(jié)

圖像壓縮的基本概念4.1.1數(shù)據(jù)冗余4.1.2保真度標(biāo)準(zhǔn)4.1.3圖像壓縮模型第四章圖像壓縮第一節(jié)圖像壓縮基本概念第3頁,共52頁,2024年2月25日,星期天4.1.1圖像壓縮基本概念:數(shù)據(jù)冗余圖像壓縮的基本概念

設(shè):n1和n2是在兩個表達相同信息的數(shù)據(jù)集中,所攜 帶的單位信息量。壓縮率(壓縮比):

CR=n1/n2

其中,n1是壓縮前的數(shù)據(jù)量,n2是壓縮后的數(shù)據(jù)量相對數(shù)據(jù)冗余:

RD=1–1/CR例:CR=20;RD=19/20第四章圖像壓縮第一節(jié)圖像壓縮基本概念第4頁,共52頁,2024年2月25日,星期天4.1.1圖像壓縮基本概念:數(shù)據(jù)冗余三種數(shù)據(jù)冗余:編碼冗余像素冗余視覺心理冗余第四章圖像壓縮第一節(jié)圖像壓縮基本概念第5頁,共52頁,2024年2月25日,星期天4.1.1圖像壓縮基本概念:數(shù)據(jù)冗余編碼冗余:如果一個圖像的灰度級編碼,使用了多于實際需要的編碼符號,就稱該圖像包含了編碼冗余。例:如果用8位表示該圖像的像素,我們就說該圖像存在著編碼冗余,因為該圖像的像素只有兩個灰度,用一位即可表示。第四章圖像壓縮第一節(jié)圖像壓縮基本概念第6頁,共52頁,2024年2月25日,星期天4.1.1圖像壓縮基本概念:數(shù)據(jù)冗余像素冗余:由于任何給定的像素值,原理上都可以通過它的鄰居預(yù)測到,單個像素攜帶的信息相對是小的。 對于一個圖像,很多單個像素對視覺的貢獻是冗余的。這是建立在對鄰居值預(yù)測的基礎(chǔ)上。例:原圖像數(shù)據(jù):234223231238235

壓縮后數(shù)據(jù):2341187-3第四章圖像壓縮第一節(jié)圖像壓縮基本概念第7頁,共52頁,2024年2月25日,星期天4.1.1圖像壓縮基本概念:數(shù)據(jù)冗余視覺心理冗余:

一些信息在一般視覺處理中比其它信息的相對重要程度要小,這種信息就被稱為視覺心理冗余。第四章圖像壓縮第一節(jié)圖像壓縮基本概念第8頁,共52頁,2024年2月25日,星期天4.1.2圖像壓縮基本概念:保真度標(biāo)準(zhǔn)保真度標(biāo)準(zhǔn)——評價壓縮算法的標(biāo)準(zhǔn)客觀保真度標(biāo)準(zhǔn)主觀保真度標(biāo)準(zhǔn)第四章圖像壓縮第一節(jié)圖像壓縮基本概念第9頁,共52頁,2024年2月25日,星期天4.1.2圖像壓縮基本概念:保真度標(biāo)準(zhǔn)客觀保真度標(biāo)準(zhǔn)如果信息丟失的級別,可以表示為原始或輸入圖像與壓縮后又解壓縮輸出的圖像的函數(shù),這個函數(shù)就被稱為客觀保真度標(biāo)準(zhǔn)。一般表示為:

e(x,y)=f(x,y)-f(x,y)f(x,y)是輸入圖像,

f(x,y)是壓縮后解壓縮的圖像,e(x,y)是誤差函數(shù)第四章圖像壓縮第一節(jié)圖像壓縮基本概念第10頁,共52頁,2024年2月25日,星期天4.1.2圖像壓縮基本概念:保真度標(biāo)準(zhǔn)

兩個圖像之間的總誤差:

M-1N-1

[f(x,y)-f(x,y)] x=0y=0均方根誤差(rms)

M-1N-1

erms=[1/MN

[f(x,y)-f(x,y)]2]1/2

x=0y=0第四章圖像壓縮第一節(jié)圖像壓縮基本概念第11頁,共52頁,2024年2月25日,星期天4.1.2圖像壓縮基本概念:保真度標(biāo)準(zhǔn)主觀保真度標(biāo)準(zhǔn)通過視覺比較兩個圖像,給出一個定性的評價,如很粗、粗、稍粗、相同、稍好、較好、很好,這種評價被稱為主觀保真度標(biāo)準(zhǔn)。第四章圖像壓縮第一節(jié)圖像壓縮基本概念第12頁,共52頁,2024年2月25日,星期天4.1.3圖像壓縮基本概念:圖像壓縮模型源數(shù)據(jù)編碼:完成原數(shù)據(jù)的壓縮。通道編碼:為了抗干擾,增加一些容錯、校驗 位,實際上是增加冗余。通道:如Internet、廣播、通訊、可移 動介質(zhì)源數(shù)據(jù)編碼通道編碼通道通道解碼源數(shù)據(jù)解碼第四章圖像壓縮第一節(jié)圖像壓縮基本概念第13頁,共52頁,2024年2月25日,星期天4.1.3圖像壓縮基本概念:圖像壓縮模型源數(shù)據(jù)編碼與解碼的模型源數(shù)據(jù)編碼的模型源數(shù)據(jù)解碼的模型符號解碼器反向映射器映射器量化器符號編碼器第四章圖像壓縮第一節(jié)圖像壓縮基本概念第14頁,共52頁,2024年2月25日,星期天4.1.3圖像壓縮基本概念:圖像壓縮模型源數(shù)據(jù)編碼與解碼的模型映射器:減少像素冗余,如使用RLE編 碼?;蜻M行圖像變換。量化器:減少視覺心理冗余,僅用于有 損壓縮。符號編碼器:減少編碼冗余,如使用哈夫曼 編碼第四章圖像壓縮第一節(jié)圖像壓縮基本概念第15頁,共52頁,2024年2月25日,星期天第二節(jié)

無損壓縮4.2.1基于字典的壓縮4.2.2統(tǒng)計編碼4.2.3無損預(yù)測編碼第四章圖像壓縮第二節(jié)無損壓縮第16頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮基于字典的壓縮RLE編碼——行程編碼PCXLZW編碼GIF第四章圖像壓縮第二節(jié)無損壓縮第17頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮RLE編碼——RunLengthEncoding概念:行程:具有相同灰度值的像素序列。編碼思想:去除像素冗余。用行程的灰度和行程的長度代替行程本身。例:設(shè)重復(fù)次數(shù)為iC,重復(fù)像素值為iP

編碼為:iCiPiCiPiCiP

編碼前:aaaaaaabbbbbbcccccccc

編碼后:7a6b8c第四章圖像壓縮第二節(jié)無損壓縮第18頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮RLE編碼——RunLengthEncoding分析:對于有大面積色塊的圖像,壓縮效果很好對于紛雜的圖像,壓縮效果不好,最壞情況下,會加倍圖像第四章圖像壓縮第二節(jié)無損壓縮第19頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮RLE編碼——RunLengthEncoding例子:PCX_RLE1)PCX簡介:真彩色圖像以行為單位,按色面存放128字節(jié)的文件頭圖像數(shù)據(jù)調(diào)色板第四章圖像壓縮第二節(jié)無損壓縮第20頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮RLE編碼——RunLengthEncoding2)PCX_RLE編碼原則:1)圖像數(shù)據(jù)以字節(jié)為單位進行編碼2)按行進行壓縮3)長度在前,灰度值在后4)單像素沒有長度值5)以最高兩位作為判斷是重復(fù)數(shù)還是原像素。最高兩位為1(B0除外),說明是重復(fù)數(shù),否則,說明是原像素值第四章圖像壓縮第二節(jié)無損壓縮第21頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮RLE編碼——RunLengthEncoding2)

PCX_RLE編碼原則:6)重復(fù)像素長度iC最大值為26-1=63,如果遇到iC大于63的情況,則分為小于63的幾段,分別處理。7)如果遇到不重復(fù)的單個像素P: 如果P<0xC0(192)直接存入該像素值, 否則先存入長度1,再存入像素值(192-255之間的單像素圖像不減反增)第四章圖像壓縮第二節(jié)無損壓縮第22頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮RLE編碼——RunLengthEncoding(3)PCX_RLE的解碼(以解一行為例)1)讀一個字節(jié)到byChar2)if((byChar&0xC0)==0xC0){ //判前兩位是否全1,且前4位為C0=11010000 iCount=byChar&0x3F;

//取出后6位的重復(fù)數(shù)

連續(xù)讀iCount個字節(jié)

} else{ 直接讀下一個字節(jié)}3)重復(fù)a),b)直到讀完一行。第四章圖像壓縮第二節(jié)無損壓縮第23頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼背景:是Lemple、Ziv提出,Welch充實基本思想:去除像素冗余。(1)在壓縮過程中動態(tài)地形成一個字符序列表(字典)(2)

(a)每當(dāng)壓縮掃描圖像發(fā)現(xiàn)一個字典中沒有的字符 序列,就把該字符序列存到字典中

(b)并用字典的地址(編碼)作為這個字符序列的 代碼,替換原圖像中的字符序列

(c)下次再碰到相同的字符序列,就用字典的地址代替字符序列第四章圖像壓縮第二節(jié)無損壓縮第24頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼基本思想:去除像素冗余(3)壓縮的結(jié)果,除了壓縮圖像外,不需要保 留壓縮過程中形成的字典,而在解壓縮時, 臨時恢復(fù)這個字典。問題:字符序列的長度如何確定? 字典的長度如何確定? 字典滿了怎么辦? 如何查表?第四章圖像壓縮第二節(jié)無損壓縮第25頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼字符序列的長度: 字符串的長度可能會很長,由于每一個字符串,都是表中一個已經(jīng)存在的字符串加上一個字符組成,所以可以把字符串以

<已有字符串索引>+<字符>

這樣字典元素的長度統(tǒng)一為12+8,20位。字典的長度:

對于以字節(jié)(8位)為壓縮單元,如ASCII碼,字典的長度為212=4096,索引的長度為12位,字典的前256個保存單個字符,剩下的3840個的分配給壓縮過程中出現(xiàn)的字符串。第四章圖像壓縮第二節(jié)無損壓縮第26頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼字典滿了的解決辦法:

在字典滿了以后,輸出一個清除字典的標(biāo)記 LZW_CLEAR,清空字典,開始新的編碼。查表的方法:

可通過Hashing函數(shù)(散列、雜湊)的方法來減少 查表的次數(shù)。輸出編碼的時機:

發(fā)現(xiàn)新串時,輸出前一個串的編碼第四章圖像壓縮第二節(jié)無損壓縮第27頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼例子:GIF和TIFF都使用LZW壓縮法。下面以GIF為例進行介紹:1)GIF簡介(多圖像、256色)文件結(jié)構(gòu): 文件頭信息:標(biāo)識(GIF)、版本號 屏幕描述:屏幕長、寬、背景色等 全局調(diào)色板:長度(256x3)//三個256色的調(diào)色板第四章圖像壓縮第二節(jié)無損壓縮第28頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼

圖象描述:描述圖像塊在屏幕上的左上角位 置及寬高//可以有多個 局部調(diào)色板:長度(256x3)//三個256色的調(diào) 色板,每個圖像可有一個 圖像數(shù)據(jù):用LZW方式壓縮,用256字節(jié)的塊來 存放 擴充塊描述:有四種擴充塊 文件結(jié)尾:字符“;”第四章圖像壓縮第二節(jié)無損壓縮第29頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼文件頭信息LZW壓縮圖像數(shù)據(jù)全局調(diào)色板屏幕描述圖像描述局部調(diào)色板擴充數(shù)據(jù)塊第四章圖像壓縮第二節(jié)無損壓縮第30頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮LZW編碼第四章圖像壓縮第二節(jié)無損壓縮初始化字典輸出清除標(biāo)記LZW_CLEARTemp=空串k=從輸入流中讀一個字符是結(jié)尾標(biāo)志嗎?Temp+k在字典中嗎?輸出Temp的編碼把新串Temp+k加到字典中Temp=kTemp=Temp+k輸出Temp的編碼輸出結(jié)束標(biāo)記第31頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮(2)GIF_LZW編碼InitializeStringTable(); //初始化串表WriteCode(LZW_CLEAR); //輸出清除標(biāo)記Temp=theemptystring; //臨時串變量置空For對輸入流中每一個字符{ //掃描字符的循環(huán)

k=GetNextCharacter(); //讀入一個新字符

if(temp+k在串表中){ //判斷“臨時串變量+ 新字符”是否在表中

temp=temp+k; //更新臨時串變量

}第四章圖像壓縮第二節(jié)無損壓縮第32頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮

else{

WriteCode(CodeFromString(temp));

//輸出新臨時串變量的編碼

AddTableEntry(temp+k);

//把新字符串存到串表中

Temp=k;//用當(dāng)前讀入的字符更新臨時temp}}WriteCode(CodeFromString(temp));

//輸出新臨時串變量的編碼WriteCode(LZW_EOI); //輸出結(jié)束標(biāo)記第四章圖像壓縮第二節(jié)無損壓縮第33頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮編碼舉例:設(shè)字符集{a,b,c,d}, 串:aabdaadaa

壓縮字典 臨時串 輸入串 編碼

0 a T=temp+ a 1 b T=a + a 0 2 c T=a + b 00 3 d T=b + d 001 4 aa T=d + a 00135 ab T=a + a 6 bd T=aa + d 001347 da T=d + a

8 aad T=da + a 0013479 daa T=a 0013470

第四章圖像壓縮第二節(jié)無損壓縮第34頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮(3)GIF_LZW解碼While((Code=GetNextCode())!=LZW_EOI){ If(Code==LZW_CLEAR){//判斷是否是清除標(biāo)記

InitializeStringTable();//初始化串表

Code=GetNextCode();//讀入編碼

If(Code!=LZW_CLEAR){//如果不是清除標(biāo)記

WriteString(StringFromCode(Code)); //查串表輸出字符

OldCode=Code;//保留當(dāng)前編碼

} } else{第四章圖像壓縮第二節(jié)無損壓縮第35頁,共52頁,2024年2月25日,星期天4.2.1無損壓縮:基于字典的壓縮 if(IsInTabel(Code){ //判編碼是否已經(jīng)在表中

WriteString(StringFromCode(Code));//輸出字符串

OldCode=Code; //保留當(dāng)前編碼}else{ //不在串表中

OutString=StringFromCode(OldCode)+ StringFromCode(GetLastChar(Code));//新老組合解碼WriteString(OutString); //輸出解碼

AddStringToTable(OutString); //給串表加一項

OldCode=Code; //保留當(dāng)前編碼}第四章圖像壓縮第二節(jié)無損壓縮第36頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼統(tǒng)計編碼霍夫曼編碼第四章圖像壓縮第二節(jié)無損壓縮第37頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼霍夫曼編碼(1)基本思想通過減少編碼冗余來達到壓縮的目的?;舅枷胧墙y(tǒng)計一下符號的出現(xiàn)概率,建立一個概率統(tǒng)計表,將最常出現(xiàn)(概率大的)的符號用最短的編碼,最少出現(xiàn)的符號用最長的編碼。第四章圖像壓縮第二節(jié)無損壓縮第38頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼霍夫曼編碼(2)例子:建立概率統(tǒng)計表和編碼樹 符號概率1 2 3 4 a2 0.40.40.4 0.4 0.6 a6 0.30.30.3 0.3 0.4 a1 0.10.10.2 0.3 a4 0.10.10.1 a3 0.060.1 a5 0.04

第四章圖像壓縮第二節(jié)無損壓縮第39頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼霍夫曼編碼(2)例子:編碼過程:符號概率編碼 1 234a2 0.41 0.410.410.410.60a6 0.3000.3000.3000.3

00

0.41a1 0.10110.10110.2

0100.3

01a4 0.101000.1

0100

0.1

011

a3 0.06

010100.1

0101

a5 0.04

01011第四章圖像壓縮第二節(jié)無損壓縮第40頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼霍夫曼編碼(2)例子:解碼過程:

010100111100a3a1a2a2a6第四章圖像壓縮第二節(jié)無損壓縮第41頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼霍夫曼編碼(3)算法實現(xiàn)第一步:建立一系列的原數(shù)據(jù)縮減量 通過對符號的概率排序,把最小概率的符號組成一個符號,以便在下一個原數(shù)據(jù)縮減量中替換它們。第二步:給每一個縮減的原始數(shù)據(jù)編碼 從最少的原數(shù)據(jù)開始,向后進行到起始原數(shù)據(jù)。第四章圖像壓縮第二節(jié)無損壓縮第42頁,共52頁,2024年2月25日,星期天4.2.2無損壓縮:統(tǒng)計編碼霍夫曼編碼靜態(tài)編碼在壓縮之前就建立好一個概率統(tǒng)計表和編碼樹。算法速度快,但壓縮效果不是最好動態(tài)編碼對每一個圖像,臨時建立概率統(tǒng)計表和編碼樹。算法速度慢,但壓縮效果最好第四章圖像壓縮第二節(jié)無損壓縮第43頁,共52頁,2024年2月25日,星期天4.2.3無損壓縮:無損預(yù)測編碼無損預(yù)測編碼1)編碼思想a.去除像素冗余。b.認為相鄰像素的信息有冗余。當(dāng)前像素值可以用以前的像素值來獲得。c.用當(dāng)前像素值fn,通過預(yù)測器得到一個預(yù)測值

fn,對當(dāng)前值和預(yù)測值求差,對差編碼,作為壓縮數(shù)據(jù)流中的下一個元素。由于差比原數(shù)據(jù)要小,因而編碼要小,可用變長編碼。大多數(shù)情況下,fn的預(yù)測是通過m個以前像素的線性組合來生成的。第四章圖像壓縮第二節(jié)無損壓縮第44頁,共52頁,2024年2月25日,星期天4.2.3無損壓縮:無損預(yù)測編碼

即:

m fn=round[

ifn-i]

i=1在一維線性(行預(yù)測)預(yù)測編碼中,預(yù)測器為:

m fn(x,y)=round[

if(x,y-i)]

i=1 round為取最近整數(shù),

i為預(yù)測系數(shù)(可為1/m),y是行變量。d.前m個像素不能用此法編碼,可用哈夫曼編碼第四章圖像壓縮第二節(jié)無損壓縮第45頁,共52頁,2024年2月25日,星期天4.2.3無損壓縮:無損預(yù)測編碼

舉例: m fn=round[

ifn-i]

i=1F={154,159,151,149,139,121,112,109,129}m=2 =1/2預(yù)測值f2=1/2*(154+159)

156e2=151-156=-5 f3=1/2*(159+151)=155e3=149–155=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論