




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要隨著科學(xué)技術(shù)的開(kāi)展,圖像壓縮技術(shù)越來(lái)越引起人們的關(guān)注.為此從眾多的圖像壓縮編碼標(biāo)準(zhǔn)中選取了基于DCT變換的JPEG圖像壓縮編碼算法進(jìn)行研究,并通過(guò)比照分析各種軟件特性選取了MATLAB進(jìn)行實(shí)驗(yàn)仿真.首先說(shuō)明了圖像壓縮在現(xiàn)代通信中的必要性和可行性,然后講述了MATLAB及其圖像處理工具箱的相關(guān)知識(shí),并對(duì)基于DCT變換的JPEG圖像壓縮算法進(jìn)行了詳細(xì)的研究,重點(diǎn)介紹了JPEG壓縮編碼的具體過(guò)程和方法,詳細(xì)介紹了編碼中DCT變換、量化、嫡編碼和霍夫曼編碼等模塊的原理和數(shù)學(xué)推導(dǎo)以及各模塊的功能分析.最后應(yīng)用MATLAB進(jìn)行了實(shí)驗(yàn)仿真并分析結(jié)果得出結(jié)論.實(shí)驗(yàn)結(jié)果說(shuō)明基于DCT變換的JPEG圖像壓縮方
2、法簡(jiǎn)單、方便,既能保證有較高的壓縮比,又能保證有較好的圖像質(zhì)量,應(yīng)用MATLAB仿真出來(lái)的結(jié)果較好的反響了其編碼算法原理.關(guān)鍵詞JPEG圖像壓縮;DCT;MATLAB;圖像處理工具箱摘要IAbstract錯(cuò)誤味定義書(shū)簽.第1章緒論11.1 課題背景11.1.1 離散余弦變換21.1.2 預(yù)測(cè)技術(shù)31.2 圖像壓縮技術(shù)的開(kāi)展和現(xiàn)狀31.2.1 圖像編碼技術(shù)開(kāi)展歷史31.2.2 圖像編碼技術(shù)的現(xiàn)狀41.3 MATLAB及其圖像處理工具箱4第2章圖像壓縮編碼理論算法62.1 DCT變換的思想來(lái)源62.2 基于DCT的JPEG圖像壓縮編碼步驟82.2.1 顏色空間的轉(zhuǎn)換和采樣82.2.2 二維離散余弦
3、變換92.2.3 DCT系數(shù)的量化122.2.4 量化系數(shù)的編排142.2.5 DC系數(shù)的編碼152.2.6 AC系數(shù)的編碼162.2.7 組成位數(shù)據(jù)流182.2.8 DCT變換在圖像壓縮中的應(yīng)用202.3 代碼實(shí)現(xiàn)錯(cuò)誤!未定義書(shū)簽.第1章緒論1.1 課題背景隨著信息技術(shù)的開(kāi)展,圖像信息被廣泛應(yīng)用于多媒體通信和計(jì)算機(jī)系統(tǒng)中,但是圖像數(shù)據(jù)的一個(gè)顯著特點(diǎn)就是信息量大.具有龐大的數(shù)據(jù)量,如果不經(jīng)過(guò)壓縮,不僅超出了計(jì)算機(jī)的存儲(chǔ)和處理水平,而且在現(xiàn)有的通信信道的傳輸速率下,是無(wú)法完成大量多媒體信息實(shí)時(shí)傳輸?shù)?因此,為了更有效的存儲(chǔ)、處理和傳輸這些圖像數(shù)據(jù),必須對(duì)其進(jìn)行壓縮,因此有必要對(duì)圖像壓縮編碼進(jìn)行研
4、究.由于組成圖像的各像素之間,無(wú)論是在水平方向還是在垂直方向上都存在著一定的相關(guān)性,因此只要應(yīng)用某種圖像壓縮編碼方法提取或者減少這種相關(guān)性,就可以到達(dá)壓縮數(shù)據(jù)的目的“數(shù)字圖像的冗余主要表現(xiàn)在以下幾種形式:空間冗余:規(guī)那么物體和規(guī)那么背景的外表物理特性都具有相關(guān)性,數(shù)字化后表現(xiàn)為數(shù)字冗余.例如:某圖片的畫(huà)面中有一個(gè)規(guī)那么物體,其外表顏色均勻,各局部的亮度、飽和度相近,把該圖片作數(shù)字化處理,生成位圖后,很大數(shù)量的相鄰像素的數(shù)據(jù)是完全一樣或十分接近的,完全一樣的數(shù)據(jù)當(dāng)然可以壓縮,而十分接近的數(shù)據(jù)也可以壓縮,由于恢復(fù)后人亦分辨不出它與原圖有什么區(qū)別,這種壓縮就是對(duì)空間冗余的壓縮.時(shí)間冗余:序列圖像如電
5、視圖像和運(yùn)動(dòng)圖像和語(yǔ)音數(shù)據(jù)的前后有著很強(qiáng)的相關(guān)性,經(jīng)常包含著冗余.在播出該序列圖像時(shí),時(shí)間發(fā)生了推移,但假設(shè)干幅畫(huà)面的同一部位沒(méi)有變化,變化的只是其中某些地方,這就形成了時(shí)間冗余.統(tǒng)計(jì)冗余:空間冗余和時(shí)間冗余是把圖像信號(hào)看作概率信號(hào)時(shí)所反響出的統(tǒng)計(jì)特性,因此,這兩種冗余也被稱為統(tǒng)計(jì)冗余.編碼冗余:同樣長(zhǎng)度的編碼可以表示不同的信息.結(jié)構(gòu)冗余:相似的,對(duì)稱的結(jié)構(gòu)如果都加以記錄就出現(xiàn)結(jié)構(gòu)冗余.知識(shí)冗余:由圖像的記錄方式與人對(duì)圖像的知識(shí)差異而產(chǎn)生的冗余.人對(duì)許多圖像的理解與某些根底知識(shí)有很大的相關(guān)性.許多規(guī)律性的結(jié)構(gòu),人可以由先驗(yàn)知識(shí)和背景知識(shí)得到.而計(jì)算機(jī)存儲(chǔ)圖像時(shí)還得把一個(gè)個(gè)像素信息存入,這就形成
6、冗余.視覺(jué)冗余:視覺(jué)系統(tǒng)對(duì)于圖像場(chǎng)的注意是非均勻和非線性的,視覺(jué)系統(tǒng)不是對(duì)圖像的任何變化都能感知.所謂的圖像壓縮編碼技術(shù)就是對(duì)要處理的圖像數(shù)據(jù)按一定的規(guī)那么進(jìn)行變換和組合,從而到達(dá)以盡可能少的數(shù)據(jù)流代碼來(lái)表示盡可能多的數(shù)據(jù)信息.在眾多的圖像壓縮編碼標(biāo)準(zhǔn)中,JPEGJointPhotographicExpertsGroup格式是一種稱為聯(lián)合圖像專家組的圖像壓縮格式,它適用于不同類型、不同分辨率的彩色和黑白靜止圖像3在JPEG圖像壓縮算法中,一種是以離散余弦變換DCT,DiscreteCosineTransform為根底的有損壓縮算法,另一種是以預(yù)測(cè)技術(shù)為根底的無(wú)損壓縮算法.1.1.1 離散余弦變
7、換DCT變換利用傅立葉變換的性質(zhì).采用圖像邊界褶翻將像變換為偶函數(shù)形式,然后對(duì)圖像進(jìn)行二維傅立葉變換,變換后僅包含余弦項(xiàng),所以稱之為離散余弦變換.DCT編碼屬于正交變換編碼方式,用于去除圖像數(shù)據(jù)的空間冗余.變換編碼就是將圖像光強(qiáng)矩陣時(shí)域信號(hào)變換到系數(shù)空間頻域信號(hào)上進(jìn)行處理的方法.在空間上具有強(qiáng)相關(guān)的信號(hào),反映在頻域上是在某些特定的區(qū)域能量常常被集中在一起,或者是系數(shù)矩陣的分布具有某些規(guī)律.我們可以利用這些規(guī)律在頻域上減少量化比特?cái)?shù),到達(dá)壓縮的目的.圖像經(jīng)DCT變換以后,DCT系數(shù)之間的相關(guān)性就會(huì)變小.而且大局部能量集中在少數(shù)的系數(shù)上,因此,DCT變換在圖像壓縮中非常有用,是有損圖像壓縮國(guó)際標(biāo)準(zhǔn)
8、JPEG的核心.從原理上講可以對(duì)整幅圖像進(jìn)行DCT變換,但由于圖像各部位上細(xì)節(jié)的豐富程度不同,這種整體處理的方式效果不好.為此,發(fā)送者首先將輸入圖像分解為8*8或16*16塊,然后再對(duì)每個(gè)圖像塊進(jìn)行二維DCT變換,接著再對(duì)DCT系數(shù)進(jìn)行量化、編碼和傳輸;接收者通過(guò)對(duì)量化的DCT系數(shù)進(jìn)行解碼,并對(duì)每個(gè)圖像塊進(jìn)行的二維DCT反變換.最后將操作完成后所有的塊拼接起來(lái)構(gòu)成一幅單一的圖像.對(duì)于一般的圖像而言,大多數(shù)DCT系數(shù)值都接近于0,所以去掉這些系數(shù)不會(huì)對(duì)重建圖像的質(zhì)量產(chǎn)生較大影響.因此,利用DCT進(jìn)行圖像壓縮確實(shí)可以節(jié)約大量的存儲(chǔ)空間.在實(shí)驗(yàn)中,先將輸入的原始len.圖像分為8*8塊,然后再對(duì)每個(gè)
9、塊進(jìn)行二維DCT變換.MATLAB圖像處理上具箱中提供的二維DCT變換及DCT反變換函數(shù)如下.dct2實(shí)現(xiàn)圖像的二維離散余弦變換.其語(yǔ)法格式為:(l)B=dct2(A)返回圖像A的二維離散余弦變換值,其大小與A相同且各元素為離散余弦變換的系數(shù)B(KI,k2)o(2)B=dct2(A,in,n)或B=dct2(A,m,n)如果m和n比圖像A大,在對(duì)圖像進(jìn)行二維離散余弦變換之前,先將圖像A補(bǔ)零至m*n如果m和n比圖像A小.那么進(jìn)行變換之前,將圖像A剪切.idct2可以實(shí)現(xiàn)圖像的二維離散余弦反變換,其語(yǔ)法格式為:B=idct2(A);B=idct2(A,m,n)或B=idct2(A,m,n)01.1
10、.2 預(yù)測(cè)技術(shù)它是利用空間中相鄰數(shù)據(jù)的相關(guān)性,利用過(guò)去和現(xiàn)在出現(xiàn)過(guò)的點(diǎn)的數(shù)據(jù)情況來(lái)預(yù)測(cè)未來(lái)點(diǎn)的數(shù)據(jù).通常用的方法是差分脈沖編碼調(diào)制(DPCM)和自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)o1.2 圖像壓縮技術(shù)的開(kāi)展和現(xiàn)狀1.2.1 圖像編碼技術(shù)開(kāi)展歷史1948年提出電視信號(hào)數(shù)字化后,圖像壓縮編碼的研究工作就宣告開(kāi)始To在這項(xiàng)技術(shù)開(kāi)展的早期,限于客觀條件,僅對(duì)幀預(yù)測(cè)法和亞取樣查復(fù)原法進(jìn)行研究,對(duì)視覺(jué)特性也做了一些極為有限但可貴的研究工作.1966年J.B.ONeal比照分析了DPCM和PCM并提出了用于電視的實(shí)驗(yàn)數(shù)據(jù).1969年進(jìn)行了線性預(yù)測(cè)編碼的實(shí)際實(shí)驗(yàn).1969年舉行首屆圖像編碼會(huì)議.70年代開(kāi)始
11、進(jìn)行了幀間預(yù)測(cè)編碼的研究.80年代開(kāi)始對(duì)運(yùn)動(dòng)估值和模型編碼進(jìn)行研究.進(jìn)入90年代,ITU-T和ISO制定了一系列圖像編碼國(guó)際建議,如H.261、JPEGsMPEG-RH.262、H.263、MPEG4等.變換編碼是1968年H.C.Andrews等人提出的,采用的是二維離散傅立葉變換,此后相繼出現(xiàn)用其他變換方法的變換編碼,其中包括二維離散余弦變換.1.2.2 圖像編碼技術(shù)的現(xiàn)狀經(jīng)過(guò)幾十年的開(kāi)展,圖像編碼技術(shù)業(yè)已成熟,一些國(guó)際建議的制定極推動(dòng)了圖像編碼技術(shù)的實(shí)現(xiàn)和產(chǎn)業(yè)化,從而推動(dòng)圖像編碼技術(shù)以更快的速度發(fā)展,目前的研究方向有兩個(gè):(1)更好地實(shí)現(xiàn)現(xiàn)有的圖像編碼國(guó)際建議.研制出集成度更高、性能更好
12、的圖像編碼專用芯片,使編碼系統(tǒng)本錢更低、可靠性更高.解決好現(xiàn)有的圖像編碼系統(tǒng)開(kāi)發(fā)中的技術(shù)問(wèn)題.例如:提升圖像質(zhì)量、提升抗碼水平等.(2)對(duì)圖像編碼理論和其他圖像編碼方法的研究.目前已經(jīng)提出和正在進(jìn)行研究的圖像編碼方法有:多分辨率編碼、基于外表描述的編碼、模型編碼、利用人工神經(jīng)網(wǎng)絡(luò)的編碼、利用分形幾何的編碼、利用數(shù)學(xué)形態(tài)學(xué)的編碼等等.1.3 MATLAB及其圖像處理工具箱如果應(yīng)用高級(jí)語(yǔ)言(如Basic,C,Fortran)編寫仿真程序來(lái)實(shí)現(xiàn)這一基于DCT的圖像壓縮編碼算法比擬麻煩,而且仿真效果也不是十分理想.本文主要應(yīng)用MATLAB發(fā)布的圖像處理工具箱中的相關(guān)函數(shù)和命令來(lái)實(shí)基于DCT的圖像壓縮編
13、碼理論算法的仿真.MATLAB語(yǔ)言是由美國(guó)MathWorks公司推出的計(jì)算機(jī)軟件,經(jīng)過(guò)多年的逐步開(kāi)展與不斷完善,現(xiàn)已成為國(guó)際公認(rèn)的最優(yōu)秀的科學(xué)計(jì)算與數(shù)學(xué)應(yīng)用軟件之一,它集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體,構(gòu)成了一個(gè)方便的、界面友好的用戶環(huán)境,而且還具有可擴(kuò)展性特征.MATLAB中的數(shù)字圖像是以矩陣形式表示的,矩陣運(yùn)算的語(yǔ)法對(duì)MATLAB中的數(shù)字圖像同樣適用,這意味著MATLAB強(qiáng)大的矩陣運(yùn)算水平對(duì)用于圖像處理非常有利.圖像處理工具箱(ImageProcessingToolbox)提供了一套全方位的參照標(biāo)準(zhǔn)算法和圖形工具,用于進(jìn)行圖像處理、分析、可視化和算法開(kāi)發(fā).可進(jìn)行圖像壓縮、空間
14、轉(zhuǎn)換、圖像增強(qiáng)、特征檢測(cè)、降噪、圖像分割和圖像配準(zhǔn)等功能.工具箱局部函數(shù)均以開(kāi)放式MATLAB語(yǔ)言編寫,這意味著可以檢查算法、修改源代碼和創(chuàng)立自定義函數(shù).本文利用MATLAB圖像處理工具箱對(duì)基于DCT的JPEG圖像壓縮編碼理論算法進(jìn)行仿真,實(shí)驗(yàn)證實(shí)該軟件功能強(qiáng)大,語(yǔ)言簡(jiǎn)潔易學(xué),工具箱具有豐富的技術(shù)支持并集成了該領(lǐng)域?qū)<业闹腔?應(yīng)用簡(jiǎn)單而效果良好.第2章圖像壓縮編碼理論算法2.1 DCT變換的思想來(lái)源信號(hào)的變換分析方法中,通常是通過(guò)一組適當(dāng)?shù)幕瘮?shù)對(duì)信號(hào)進(jìn)行分解,得到信號(hào)在變換域的表示方法,利用信號(hào)在變換域中某些特征趨于集中的特點(diǎn)來(lái)提取其特征從而進(jìn)行分析.自1822年傅立葉Fourier發(fā)表“熱
15、傳導(dǎo)解析理論以來(lái),傅立葉變換一直是信號(hào)處理領(lǐng)域中應(yīng)用最廣泛、效果最好的一種分析手段.但傅立葉變換只是一種純頻域的分析方法,它在頻域的定位性是完全準(zhǔn)確的即頻域分辨率最高,而在時(shí)域無(wú)任何定位性或分辯水平,也即傅立葉變換所反映的是整個(gè)信號(hào)全部時(shí)間下的整體頻域特征,而不能提供任何局部時(shí)間段上的頻率信息.事實(shí)上,在我們生活中的常見(jiàn)信號(hào)通常都具有非平穩(wěn)的性質(zhì),即其頻域性質(zhì)都是隨時(shí)間而變化的.對(duì)這一類信號(hào)用傅立葉變換進(jìn)行分析,雖然可以知道信號(hào)所包含有哪些頻率信息,但不能知道這些頻率信息具體出現(xiàn)在哪個(gè)時(shí)間段上,因此不能提供關(guān)于信號(hào)完整的信息.可見(jiàn),傅立葉變換不適用于提取局部時(shí)間段或瞬間的頻域特征信息4為了研究
16、信號(hào)在局部時(shí)間圍的頻域特征,1946年Gabor提出了著名的Gabor變換.其根本思想是,取時(shí)間函數(shù)以,=一久一作為窗口函數(shù),用川,-2與待分析函數(shù)/相乘,然后再進(jìn)行傅立葉變換.在Gobor變換的根底上,為了適應(yīng)不同問(wèn)題的需要,進(jìn)一步開(kāi)展了多種形式的窗口函數(shù),如矩形窗、漢寧窗、哈明窗等,這一類加窗的傅立葉變換統(tǒng)稱為短時(shí)傅立葉變換STFT.STFT從本質(zhì)上講,是用窗函數(shù)截取原始信號(hào)的一個(gè)待分析段進(jìn)行傅立葉變換,因而可以描述信號(hào)在某一局部時(shí)間段上的頻率信息.目前,STFT在許多領(lǐng)域獲得了廣泛的應(yīng)用,但由于STFT的定義決定了其窗函數(shù)的大小和形狀均與時(shí)間和頻率無(wú)關(guān),一旦選定窗口就保持固定不變,不利于
17、分析時(shí)變信號(hào).實(shí)際上一般的高頻信號(hào)持續(xù)時(shí)間較短,而低頻信號(hào)持續(xù)時(shí)間較長(zhǎng),因此我們期望對(duì)于高頻信號(hào)采用小時(shí)間窗,對(duì)于低頻信號(hào)采用大時(shí)間窗進(jìn)行分析.在進(jìn)行信號(hào)分析時(shí),這種變時(shí)間窗的要求同STFT的固定時(shí)窗(窗不隨頻率而變化)的特性是相矛盾的限離散余弦變換(DCT)從本質(zhì)上是一種變換分析方法,要在變換時(shí)最大的去除分析信號(hào)的相關(guān)性提取其特征,就必須適當(dāng)?shù)臉?gòu)造一組基函數(shù),這組基函數(shù)以某種形式類似于我們所要表示的數(shù)據(jù),甚至具有與數(shù)據(jù)相同的相關(guān)結(jié)構(gòu).在我們?nèi)粘I钪谐S龅降男盘?hào)在空間域和頻域都具有相關(guān)性.在空間上相隔較近的樣值間的相關(guān)性比相隔較遠(yuǎn)的大的多,而在頻域上通常呈帶狀.為了分析和表示這樣的信號(hào),我們
18、需要基函數(shù)在空間域和頻域是局域性的.由于離散余弦函數(shù)的頻域分辨率與時(shí)域分辨率成反比,剛好與實(shí)際信號(hào)長(zhǎng)時(shí)低頻、短時(shí)高頻的特性相吻合,既能精確定位信號(hào)的突發(fā)跳變,又能把握信號(hào)的整體變化率.由此可見(jiàn),離散余弦變換是一種比擬理想的進(jìn)行信號(hào)處理的數(shù)學(xué)工具圖像壓縮編碼的理論算法.(1)基于DCT的JPEG圖像壓縮編碼理論算法基于DCT編碼的JPEG編碼壓縮過(guò)程框圖,如圖2-1所示.圖2-1基于DCT編碼的JPEG壓縮過(guò)程簡(jiǎn)化圖上圖是基于DCT變換的圖像壓縮編碼的壓縮過(guò)程,解壓縮與上圖的過(guò)程相反.在編碼過(guò)程中,首先將輸入圖像顏色空間轉(zhuǎn)換后分解為8X8大小的數(shù)據(jù)塊,然后用正向二維DCT把每個(gè)塊轉(zhuǎn)變成64個(gè)DC
19、T系數(shù)值,其中1個(gè)數(shù)值是直流(DC)系數(shù),即8X8空域圖像子塊的平均值,其余的63個(gè)是交流(AC)系數(shù),接下來(lái)對(duì)DCT系數(shù)進(jìn)行量化,最后將變換得到的量化的DCT系數(shù)進(jìn)行編碼和傳送,這樣就完成了圖像的壓縮過(guò)程.在解碼過(guò)程中,形成壓縮后的圖像格式,先對(duì)已編碼的量子化的DCT系數(shù)進(jìn)行解碼,然后求逆量化并把DCT系數(shù)轉(zhuǎn)化為8X8樣本像塊(使用二維DCT反變換),最后將操作完成后的塊組合成一個(gè)單一的圖像.這樣就完成了圖像的解壓過(guò)程.2.2 基于DCT的JPEG圖像壓縮編碼步驟2.2.1 顏色空間的轉(zhuǎn)換和采樣JPEG文件使用的顏色空間為1982年推薦的電視圖像數(shù)字化標(biāo)準(zhǔn)CCIR601(現(xiàn)為ITU-RBT.
20、601).在這個(gè)色彩空間中,每個(gè)分量、每個(gè)像素的電平規(guī)定為255級(jí),用8位代碼表示.JPEG只支持YCbC顏色模式.其中Y代表亮度,CbC代表色度.全彩色圖像RGB模式轉(zhuǎn)換到Y(jié)CbCr模式,用下組公式.7=0.299/?+0.587G+0.114B Cr=(HY)/1.402(2-1)CZ?=(B-r)/1.772其逆變換為:R=y+1.4020 G=y-0.344CZ?-0.714Cr(2-2)B=Y+.772CbJPEG是以8x8的塊為單位來(lái)進(jìn)行處理的,由于人眼對(duì)亮度Y的敏感度比色度CbCr的敏感度大的多,所以采用縮減取樣的方式,通常采用YUV422取樣,圖2-2所示.圖2-2YUV422
21、取樣示意圖即對(duì)于16x16的塊,Y取4個(gè)8x8的塊,CbCr各取2個(gè)8x8的塊.也有YUV411方式,Y取4個(gè)8x8的塊,CbC各取1個(gè)8x8的塊.YUV422取樣方式,數(shù)據(jù)減少1/30YUV411取樣方式,數(shù)據(jù)減少1/2O縮減取樣一般采用圖2-3所示方法.苜rh日日日日f(shuō)h圖2-3壓縮取樣示意圖2.2.2二維離散余弦變換在傅里葉級(jí)數(shù)展開(kāi)式中,如果被展開(kāi)的函數(shù)是實(shí)偶函數(shù),那么,其傅里葉技術(shù)中只包含余弦項(xiàng),在將其離散化由此可導(dǎo)出余弦變換,或稱之為離散余弦變換(DCT,DiscreteCosineTransform).二維離散余弦正變換公式為2N-lN-1一(,v)=c(u)c(v)ZZy)cos
22、|Na-Oy-()2x+Il7TCOS2N;或口2N(2-3)式中,乂y,/=O,l,N-lo1c(w)=c(v)=(v)F(z/,v)cos!cos:NZ/V/IZ/VV7C(2-4)1式中,x,y,p=0J,N-l.c(i/)=c(v)=?)cos(2-5)4A.ov-oI16Jk167式中,x,y,u=0,1,7.c()=c)=,&U1 其它在MATLAB的圖像處理工具箱中,可以直接調(diào)用dct2和idct2來(lái)實(shí)現(xiàn)二維離散余弦變換及其反變換.(1) dct2dct2函數(shù)實(shí)現(xiàn)圖像的二維離散余弦變換,其語(yǔ)法為:F=dct2(f)運(yùn)行以下程序:f=imread(cameraman.tif);f=
23、im2double(f);F=dct2(f);subplot(121),imshow(f,);subplot(122),imshow(log(l+20*abs(F),);運(yùn)行結(jié)果如圖2-4所示.圖2-4圖像顯示及圖像DCT變換后頻譜顯示由運(yùn)行結(jié)果可知,DCT變換具有能量集中的性質(zhì),數(shù)據(jù)集中在左上角.因此進(jìn)行圖像壓縮時(shí)離散余弦變換矩陣可以舍棄右下角的高頻數(shù)據(jù).(2) idct2idct2函數(shù)實(shí)現(xiàn)圖像的二維離散余弦逆變換,其語(yǔ)法為:F=idct2(f)在MATLAB圖像處理工具箱中,有一個(gè)對(duì)圖像進(jìn)行塊操作的函數(shù)blkproc,利用這個(gè)函數(shù),可以直接實(shí)現(xiàn)圖像一系列8x8子塊的DCT變換.其語(yǔ)法格式為
24、:B=blkproc(A,mn,fun,parameterz,parameter2,)B=blkproc(A,mn,mbordernborderjjun,.)B=blkproc(A,indexed,.)mn是指圖像以m*n為分塊單位,對(duì)圖像進(jìn)行處理(如8像素*8像素)Fun:應(yīng)用此函數(shù)對(duì)分別對(duì)每個(gè)m*n分塊的像素進(jìn)行處理parameter!,parameter2:要傳給fun函數(shù)的參數(shù)mbordernborder:對(duì)每個(gè)m*n塊上下進(jìn)行mborder個(gè)單位的擴(kuò)充,左右進(jìn)行nborder個(gè)單位的擴(kuò)充,擴(kuò)充的像素值為0,fun函數(shù)對(duì)整個(gè)擴(kuò)充后的分塊進(jìn)行處理.如以下程序:I=imreadlamera
25、man.tif);fun=idct2;J=blkproc(l,88,fun);imagesc(J),colormap(hot)運(yùn)行結(jié)果如圖2-5所示.圖2-5DCT變換后圖像8X8的圖像經(jīng)過(guò)DCT變換后,其低頻分量都集中在左上角,高頻分量分布在右下角DCT變換實(shí)際上是空間域的低通濾波器.由于該低頻分量包含了圖像的主要信息如亮度,而高頻與之相比,就不那么重要了,所以我們可以忽略高頻分量,從而到達(dá)壓縮的目的.將高頻分量去掉,這就要用到量化,它是產(chǎn)生信息損失的根源.這里的量化操作,就是將某一個(gè)值除以量化表中對(duì)應(yīng)的值.由于量化表左上角的值較小,右上角的值較大,這樣就起到了保持低頻分量,抑制高頻分量的目
26、的.JPEG使用的顏色是YUV格式.我們提到過(guò),丫分量代表了亮度信息,UV分量代表了色差信息.相比而言,Y分量更重要一些.我們可以對(duì)Y采用細(xì)量化,對(duì)UV采用粗量化,可進(jìn)一步提升壓縮比.所以上面所說(shuō)的量化表通常有兩,一是針對(duì)Y的,一是針對(duì)UV的.2.2.3 DCT系數(shù)的量化量化是對(duì)經(jīng)過(guò)DCT變換后的頻率系數(shù)進(jìn)行量化,其目的是減小非“0系數(shù)的幅度以及增加“0值系數(shù)的數(shù)目,它是圖像質(zhì)量下降的最主要原因.對(duì)于基于DCT的JPEG圖像壓縮編碼算法使用如圖2-6所示的均勻量化器進(jìn)行量化,量化步距是根據(jù)系數(shù)所在的位置和每種顏色分量的色調(diào)值來(lái)確定.由于人眼對(duì)亮度信號(hào)比對(duì)色差信號(hào)更敏感,因此使用了表2-1所示的
27、種量化表.止匕外,由于人眼對(duì)低頻分量的圖像比對(duì)高頻分量的圖像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小亮度和色度由于代表的圖像的信息量不同,亮度代表了圖像的低頻分量,色度代表了圖像的高頻分量,要分別對(duì)亮度和色度進(jìn)行量化,所以量化表也是不同的.JPEG壓縮色度和亮度量化表如表2-1所示.表2-1JPEG壓縮色度和亮度量化表亮度量化表色度量化表16111016244051611718244799999999121214192658605518212666999999991413162440576956242656999999999914172229518780624766999999
28、9999991822375668109103779999999999999999243555648110411392999999999999999949647887103121120101999999999999999979929598112100103999999999999999999量化會(huì)產(chǎn)生誤差,上圖是綜合大量的圖像測(cè)試的實(shí)驗(yàn)結(jié)果,對(duì)于大局部圖像都有很好的結(jié)果.表中可以看出,高頻局部對(duì)應(yīng)的量化值大,目的就是將高頻局部編程接近于0,以便以后處理.JPEG可以在壓縮比和圖像質(zhì)量間作取舍.方法就是改變量化值.如果量化值放大一倍,那么有更多的系數(shù)量化為0,提升了壓縮比.2.2.4 量化系數(shù)的編
29、排經(jīng)過(guò)DCT變換后,低頻分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系數(shù),即8x8子塊的平均值,要對(duì)它單獨(dú)編碼.由于兩個(gè)相鄰的8x8子塊的DC系數(shù)相差很小,所以對(duì)它們采用差分編碼DPCM,可以提升壓縮比,也就是說(shuō)對(duì)相鄰的子塊DC系數(shù)的差值進(jìn)行編碼.8x8的其它63個(gè)元素是交流(AC)系數(shù),采用行程編碼呢.所以量化后的系數(shù)要重新編排,目的是為了增加連續(xù)的“0系數(shù)的個(gè)數(shù),就是“0的游程長(zhǎng)度,方法是根據(jù)Z字形的式樣編排.DCT變換后低頻分量多呈圓形輻射狀向高頻率衰減,因此可以看成按Z字形衰減.因此,量化系數(shù)按Z字形掃描讀數(shù),這樣就把一個(gè)8x8的矩陣變成一個(gè)1x64的矢量
30、,頻率較低的系數(shù)放在矢量的頂部.量化后的DCT系數(shù)的編排如圖2-7所示.DC值A(chǔ)C系數(shù)開(kāi)始圖2-7量化DCT系數(shù)的編排量化后的DCT系數(shù)的序號(hào)如表2-2所示.表2-2量化DCT系數(shù)的序號(hào)01561415272824713162629423812172530414391118243140445310192332394552542022333846515560213437475056596135364849575862632.2.5 DC系數(shù)的編碼8x8子塊的64個(gè)變換系數(shù)經(jīng)量化后,按直流系數(shù)DC和交流系數(shù)AC分成兩類處理.坐標(biāo)u二v=0的直流系數(shù)DC實(shí)質(zhì)上就是空域圖像中64個(gè)像素的平均值.圖像塊
31、經(jīng)過(guò)DCT變換之后得到的DC直流系數(shù)有兩個(gè)特點(diǎn),一是系數(shù)的數(shù)值比擬大,二是相鄰8x8圖像塊的DC系數(shù)值變化不大.根據(jù)這個(gè)特點(diǎn),JPEG算法使用了差分脈沖調(diào)制編碼技術(shù).差分脈沖編碼調(diào)制(DPCM,DifferentialPulseCodeModulation),是一種對(duì)模擬信號(hào)的編碼模式,先根據(jù)前一個(gè)抽樣值計(jì)算出一個(gè)預(yù)測(cè)值,再取當(dāng)前抽樣值和預(yù)測(cè)值之差作為編碼用.此差值稱為預(yù)測(cè)誤差.抽樣值和預(yù)測(cè)值非常接近(由于相關(guān)性強(qiáng)),預(yù)測(cè)誤差的可能取值圍比抽樣值變化圍小.所以可用少幾位編碼比特來(lái)對(duì)預(yù)測(cè)誤差編碼,從而降低其比特率.這是利用減小冗余度的方法,降低了編碼比特率.因此,對(duì)DC系數(shù)編碼進(jìn)行差分脈沖編碼就
32、是對(duì)相鄰圖像塊之間量化DC系數(shù)的差值(Delta)進(jìn)行編碼,即對(duì)相鄰塊之間的DC系數(shù)的差值DIFF=DC-DCi編碼.DC采用差值脈沖編碼的主要原因是由于在連續(xù)色調(diào)的圖像中,其差值多半比原值小,對(duì)差值進(jìn)行編碼所需的位數(shù),會(huì)比對(duì)原值進(jìn)行編碼所需的位數(shù)少許多.例如差值為5,它的二進(jìn)制表示值為101,如果差值為-5,那么先改為正整數(shù)5,再將其二進(jìn)制轉(zhuǎn)換成1的補(bǔ)數(shù)即可.所謂1的補(bǔ)數(shù),就是將每個(gè)Bit假設(shè)值為0,便改成1;Bit為1,那么變成0.差值5應(yīng)保存的位數(shù)為3,列出差值所應(yīng)保存的Bit數(shù)與差值容的對(duì)照.在差值前端另外參加一些差值的霍夫曼碼值,例如亮度差值為5(101)的位數(shù)為3,那么霍夫曼碼值應(yīng)
33、該是100,兩者連接在一起即為100101.2.2.6 AC系數(shù)的編碼DCT變換所得系數(shù)除直流系數(shù)之外的其余63個(gè)系數(shù)稱為交流系數(shù)(AC系數(shù)).量化AC系數(shù)的特點(diǎn)是lx64矢量中包含有許多“0系數(shù),并且許多“0是連續(xù)的,因此使用非常簡(jiǎn)單和直觀的游程長(zhǎng)度編碼(RLE)對(duì)它們進(jìn)行編碼.所謂行程編碼(Run-LengthEncoding)就是指僅存儲(chǔ)一個(gè)像素值以及具有相同顏色的像素?cái)?shù)目的圖像數(shù)據(jù)編碼方式,或稱游程編碼,常用RLE(Run-LengthEncoding)表示.該壓縮編碼技術(shù)相當(dāng)直觀和經(jīng)濟(jì),運(yùn)算也相當(dāng)簡(jiǎn)單,因此解壓縮速度很快.RLE壓縮編碼尤其適用于計(jì)算機(jī)生成的圖形圖像,對(duì)減少存儲(chǔ)容量很
34、有效果皿.63個(gè)AC系數(shù)采用行程編碼的方式進(jìn)行編碼的格式如圖2-8所示.也即在AC01到AC63中,找出每一個(gè)非零的AC值,將其表示成(NN/SS)VV的形式,其中:NN表示該AC值前的0的個(gè)數(shù).而SS、VV與DC的定義一樣.如果連續(xù)的非.超過(guò)15個(gè)時(shí),增加一個(gè)擴(kuò)展字節(jié):(15/0)表示連續(xù)16個(gè)0.另外假設(shè)有一串0延伸到AC63,一建用(0/0)表示結(jié)束.第一字節(jié)第二字節(jié)7654321076543210VY兩個(gè)非零值下一個(gè)非零下一個(gè)非零系數(shù)的實(shí)際值之間的連續(xù)值所占的比零的個(gè)數(shù)特?cái)?shù)圖2-8AC編碼格式對(duì)于AC系數(shù),有兩個(gè)符號(hào).符號(hào)1為行程和尺寸,即上面的(RunLength,Size).(0,
35、0)和(15,0)是兩個(gè)比擬特殊的情況.(0,0)表示塊結(jié)束標(biāo)志(EOB),(15,0)表示ZRL,當(dāng)行程長(zhǎng)度超過(guò)15時(shí),用增加ZRL的個(gè)數(shù)來(lái)解決,所以最多有三個(gè)ZRL(3xl6+15=63)o符號(hào)2為幅度值(Amplitude).對(duì)于DC系數(shù),也有兩個(gè)符號(hào).符號(hào)1為尺寸(Size);符號(hào)2為幅度值(Amplitude)o對(duì)于AC系數(shù),符號(hào)1和符號(hào)2分別進(jìn)行編碼.零行程長(zhǎng)度超過(guò)15個(gè)時(shí),有一個(gè)符號(hào)(15,0),塊結(jié)束時(shí)只有一個(gè)符號(hào)(0,0)o對(duì)符號(hào)1進(jìn)行Huffman編碼(亮度,色差的Huffman碼表不同).對(duì)符號(hào)2進(jìn)行變長(zhǎng)整數(shù)VLI編碼.舉例來(lái)說(shuō):Size=6時(shí),Amplitude的圍是-
36、63-32,以及3263,對(duì)絕對(duì)值相同,符號(hào)相反的碼字之間為反碼關(guān)系.所以AC系數(shù)為32的碼字為100000,33的碼字為100001,-32的碼字為011111,-33的碼字為011110.符號(hào)2的碼字緊接于符號(hào)1的碼字之后.對(duì)于DC系數(shù),Y和UV的Huffman碼表也不同.2.2.7組成位數(shù)據(jù)流JPEG編碼的最后一個(gè)步驟是把各種標(biāo)記代碼和編碼后的圖像數(shù)據(jù)組成一幀一幀的數(shù)據(jù),這樣做的目的是為了便于傳輸、存儲(chǔ)和譯碼器進(jìn)行譯碼,這樣的組織的數(shù)據(jù)通常稱為JPEG位數(shù)據(jù)流(JPEGbitstream),舉個(gè)例子來(lái)說(shuō)明上述過(guò)程.下面為8x8的亮度(Y)圖像子塊經(jīng)過(guò)量化后的系數(shù),如表2-3所示.表2-3
37、亮度量化后的系數(shù)150-100000-2-1000000-1-100000000000000000000000000000000000000C0000000可見(jiàn)量化后只有左上角的幾個(gè)點(diǎn)(低頻分量)不為零,這樣采用行程編碼就會(huì)很有效.第一步,嫡編碼的中間格式表示.先看DC系數(shù).假設(shè)前一個(gè)8x8子塊DC系數(shù)的量化值為12,那么本塊DC系數(shù)與它的差為3,根據(jù)下表表2-4DC系數(shù)表SizeAmplitude001-1,12-3,-2233一7-4,474-15-8,8155-31-16,16316-63-32,32637-127-64,641278-255-128,1282559-511-256,25
38、651110-1023512,512102311-2047-1024,10242047查表得Size=2,Amplitude,所以DC中間格式為(3).下面對(duì)AC系數(shù)編碼.經(jīng)過(guò)Zig-Zag掃描后,遇到的第一個(gè)非零系數(shù)為-2,其中遇到零的個(gè)數(shù)為1(即RunLength),根據(jù)下面這AC系數(shù)表:表2-5AC系數(shù)表SizeAmplitude1-1,12-3,-2233一7-4,474-15-8,8155-31-16,16316-63-32,32637-127-64,641278-255-128,1282559-511-256,25651110-1023512,5121023查表得Size=20所以
39、RunLength=l,Size=2,Amplitude=3,所以AC中間格式為(1,2)(-2)0其余的點(diǎn)類似,可以求得這個(gè)8x8子塊嫡編碼的中間格式為(DC)(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(EOB)(0,0)第二步,炳編碼.對(duì)于:2查DC亮度Huffman表得到11,3經(jīng)過(guò)VLI編碼為011;對(duì)于(1,2)(-2):(1,2)查AC亮度Huffman表得到11011,-2是2的反碼,為01;對(duì)于(0,1)(-1):(0,1)查AC亮度Huffman表得到00,-1是1的反碼,為0;.最后,這一8x8子塊亮度
40、信息壓縮后的數(shù)據(jù)流為11011,1101101,000,000,000,111000,1010.總共31比特,其壓縮比是64x8/31=16.5,大約每個(gè)象素用半個(gè)比特.以上是圖像壓縮編碼的整個(gè)過(guò)程.從上面的例子可以看出,壓縮比和圖像質(zhì)量是呈反比的,以下是壓縮效率與圖像質(zhì)量之間的大致關(guān)系,可以根據(jù)需要,選擇適宜的壓縮比.壓縮比和圖像質(zhì)量的關(guān)系如表2-6所示.表2-6壓縮比與圖像質(zhì)量的關(guān)系壓縮效率(單位:bits/pixel)圖像質(zhì)量0.25-0.50中好,可滿足某些應(yīng)用0.50-075好很好,滿足多數(shù)應(yīng)用0.751.5極好,滿足大多數(shù)應(yīng)用1.52.0與原始圖像幾乎一樣2.2.8DCT變換在圖像
41、壓縮中的應(yīng)用JPEG格式是目前網(wǎng)絡(luò)上最流行的圖像格式,是可以把文件壓縮到最小的格式,在Photoshop軟件中以JPEG格式儲(chǔ)存時(shí),提供11級(jí)壓縮級(jí)另八以010級(jí)表示.其中.級(jí)壓縮比最高,圖像品質(zhì)最差.即使采用細(xì)節(jié)幾乎無(wú)損的10級(jí)質(zhì)量保存時(shí),壓縮比也可達(dá)5:lo以BMP格式保存時(shí)得到4.28MB圖像文件,在采用JPG格式保存時(shí),其文件僅為178KB,壓縮比到達(dá)24:1.經(jīng)過(guò)屢次比擬,采用第8級(jí)壓縮為存儲(chǔ)空間與圖像質(zhì)量兼得的最正確比例.JPEG格式的應(yīng)用非常廣泛,特別是在網(wǎng)絡(luò)和光盤讀物上,都能找到它的身影.目前各類瀏覽器均支持JPEG這種圖像格式,由于JPEG格式的文件尺寸較小,下載速度快四.2
42、.3JPEG圖像壓縮MATLAB仿真實(shí)現(xiàn)具體代碼%JPEGdemo.m%組員:池國(guó)錦朱巖黃曉世寧%本次我們采用的是JPEG標(biāo)準(zhǔn)中的順序編碼,也叫JPEG算法.%其中只考慮灰度圖片%局部代碼我們參考了:?數(shù)字圖像處理及motlob實(shí)現(xiàn)第二版?一杰?motlob數(shù)字圖像處理實(shí)戰(zhàn)?一小川?數(shù)字圖像處理與分析根底-motlQb實(shí)現(xiàn)?-孔明博客hesays-?jpeg圖像編碼解碼?百度文庫(kù)-?基于matlab的圖像編解碼技術(shù)?%其實(shí)現(xiàn)主要有一下4個(gè)步驟:%1分塊%2離散余弦變換DCT變換%3量化%4哈弗曼編碼%a直流分量的編碼過(guò)程一?差分編碼:對(duì)當(dāng)前快的直流分量與上一塊的直流分量之差進(jìn)行編碼;%b交流分
43、量的編碼過(guò)程一?除了和直流分量編碼一樣的話,還采用將連續(xù)為零的系數(shù)長(zhǎng)度及其組合號(hào)結(jié)合后再進(jìn)行哈弗曼編碼的方法.;clearallcic%LoaddatadispfEnter.?dispCO-加載256x256的圖片門dispCl-使用文本輸入8*8的矩陣chos=input輸入你的選擇0/1:;ifisemptychosrchos=0;returnzend%默認(rèn)選擇,假設(shè)為空就默認(rèn)為OJood64x64;ifchos=Ozloadlena.mat;%加載妮娜的圖像%在數(shù)字圖像處理中,Len.Lenna是一被廣泛使用的標(biāo)準(zhǔn)圖片,%特別在圖像壓縮的算法研究中f二X;imshow(mat2gray(
44、f)whos;clearxelse%f為文本輸入的8*8矩陣.f=139144149153155155155155144151153156159156156156150155160163158156156156159161162160160159159159159160161161161161162162161162162161end%echoon162162155155155161160157157157163162157157157161163158158158;%圖像的預(yù)處理是將每個(gè)像素灰度值減去128,%圖像數(shù)據(jù)值必須減去128,是由于DCT轉(zhuǎn)換公式所接受的數(shù)字圍是在-128到+127
45、之間.ifchos二二0,f二f-128;elseifchos=U=f-128zend%break;drawnowmtnf=size(f);%返回矩陣的行列mb=mf/8;nb=nf/8;%計(jì)算f分塊后的塊數(shù)%計(jì)算每個(gè)8x8子塊的離散DCT系數(shù)ifchos=0/%blkproc()函數(shù)的功能:對(duì)圖像進(jìn)行分塊的det處理Ff=blkproc(t88;dct);%對(duì)f的每個(gè)子塊的列進(jìn)行DCT變換Ff=blkproc(Ffz8SJ/dct);%對(duì)f的每個(gè)子塊的行進(jìn)行DCT變換Ff=round(Ff);%對(duì)矩陣Ff中每個(gè)元素朝最近的方向取整數(shù)局部elseifchos=bFf=blkproc(fJ88/dct)zFf=blkproc(Ff,J88,det).Ff=round(Ff)zend%break;%按比例量化%jpeg亮度量化表Q=16111016244051615514131624405769561417222951878062182237562435556468109103811041137792121214192658604964788710312112010172929598
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 防疫和安全預(yù)案
- 建筑工程安全生產(chǎn)實(shí)施方案
- 船舶生產(chǎn)安全會(huì)議記錄范文
- 四川省蓉城名校聯(lián)盟2025年物理高一下期末統(tǒng)考模擬試題含解析
- 安全警示教育總結(jié)100字左右
- 2025屆廣西壯族自治區(qū)普通高中物理高二第二學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 2025屆齊魯名校教科研協(xié)作體 山東、湖北部分重點(diǎn)中學(xué)高一物理第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 勞務(wù)工作總結(jié)與計(jì)劃
- 2025年江蘇省南通市啟東市高二物理第二學(xué)期期末統(tǒng)考試題含解析
- 湖北宜昌市示范高中協(xié)作體2025屆物理高一下期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 2025屆甘肅省天水市秦州區(qū)天水一中高一下數(shù)學(xué)期末達(dá)標(biāo)檢測(cè)試題含解析
- 互聯(lián)網(wǎng)導(dǎo)論智慧樹(shù)知到期末考試答案章節(jié)答案2024年上海第二工業(yè)大學(xué)
- 重癥??谱o(hù)士進(jìn)修匯報(bào)課件
- 孕產(chǎn)婦兒童健康管理服務(wù)規(guī)范
- 機(jī)關(guān)大院保安服務(wù)
- 人教版五年級(jí)下冊(cè)數(shù)學(xué)1-8單元測(cè)試卷含答案(每單元2套試卷,共16卷)
- 高中3500必背單詞
- 軍訓(xùn)安全教育課件
- 施工管理的施工進(jìn)度問(wèn)題分析與解決
- 普通高中歷史新課程標(biāo)準(zhǔn)試題與答案(2017年版2020年修訂)
- 滬科版七年級(jí)數(shù)學(xué)下冊(cè) 第二學(xué)期期末測(cè)試卷
評(píng)論
0/150
提交評(píng)論