Ⅰ 簡述JPEG的壓縮原理
JPEG壓縮分四個步驟實現:
一、顏色模式轉換及采樣:
RGB色彩系統是我們最常用的表示顏色的方式。JPEG採用的是YCbCr色彩系統。想要用JPEG基本壓縮法處理全彩色圖像,得先把RGB顏色模式圖像數據,轉換為YCbCr顏色模式的數據。Y代表亮度,Cb和Cr則代表色度、飽和度。通過下列計算公式可完成數據轉換。 Y=0.2990R+0.5870G+0.1140B Cb=-0.1687R-0.3313G+0.5000B+128 Cr=0.5000R-0.4187G-0.0813B+128 人類的眼晴對低頻的數據比對高頻的數據具有更高的敏感度,事實上,人類的眼睛對亮度的改變也比對色彩的改變要敏感得多,也就是說Y成份的數據是比較重要的。既然Cb成份和Cr成份的數據比較相對不重要,就可以只取部分數據來處理。以增加壓縮的比例。JPEG通常有兩種采樣方式:YUV411和YUV422,它們所代表的意義是Y、Cb和Cr三個成份的數據取樣比例。
二、DCT變換:
DCT變換的全稱是離散餘弦變換(Discrete Cosine Transform),是指將一組光強數據轉換成頻率數據,以便得知強度變化的情形。若對高頻的數據做些修飾,再轉回原來形式的數據時,顯然與原始數據有些差異,但是人類的眼睛卻是不容易辨認出來。 壓縮時,將原始圖像數據分成8*8數據單元矩陣。JPEG將整個亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視為一個基本單元稱作MCU。每個MCU所包含的矩陣數量不得超過10個。例如,行和列采樣的比例皆為4:2:2,則每個MCU將包含四個亮度矩陣,一個色度矩陣及一個飽和度矩陣。 當圖像數據分成一個8*8矩陣後,還必須將每個數值減去128,然後一一代入DCT變換公式中,即可達到DCT變換的目的。圖像數據值必須減去128,是因為DCT變換公式所接受的數字范圍是在-128到+127之間。
三、量化:
圖像數據轉換為頻率系數後,還得接受一項量化程序,才能進入編碼階段。量化階段需要兩個8*8矩陣數據,一個是專門處理亮度的頻率系數,另一個則是針對色度的頻率系數,將頻率系數除以量化矩陣的值,取得與商數最近的整數,即完成量化。 當頻率系數經過量化後,將頻率系數由浮點數轉變為整數,這才便於執行最後的編碼。不過,經過量化階段後,所有數據只保留整數近似值,也就再度損失了一些數據內容。
四、編碼:
1、編碼 Huffman編碼無專利權問題,成為JPEG最常用的編碼方式,Huffman編碼通常是以完整的MCU來進行的。 編碼時,每個矩陣數據的DC值與63個AC值,將分別使用不同的Huffman編碼表,而亮度與色度也需要不同的Huffman編碼表,所以一共需要四個編碼表,才能順利地完成JPEG編碼工作。 DC編碼 DC是彩採用差值脈沖編碼調制的差值編碼法,也就是在同一個圖像分量中取得每個DC值與前一個DC值的差值來編碼。DC採用差值脈沖編碼的主要原因是由於在連續色調的圖像中,其差值多半比原值小,對差值進行編碼所需的位數,會比對原值進行編碼所需的位數少許多。例如差值為5,它的二進製表示值為101,如果差值為-5,則先改為正整數5,再將其二進制轉換成1的補數即可。所謂1的補數,就是將每個Bit若值為0,便改成1;Bit為1,則變成0。差值5應保留的位數為3,下表即列出差值所應保留的Bit數與差值內容的對照。
在差值前端另外加入一些差值的霍夫曼碼值,例如亮度差值為5(101)的位數為3,則霍夫曼碼值應該是100,兩者連接在一起即為100101。下列兩份表格分別是亮度和色度DC差值的編碼表。根據這兩份表格內容,即可為DC差值加上霍夫曼碼值,完成DC的編碼工作;
2、AC編碼方式與DC略有不同,在AC編碼之前,首先得將63個AC值按Zig-zag排序,即按照下圖箭頭所指示的順序串聯起來。 63個AC值排列好的,將AC系數轉換成中間符號,中間符號表示為RRRR/SSSS,RRRR是指第非零的AC之前,其值為0的AC個數,SSSS是指AC值所需的位數,AC系數的范圍與SSSS的對應關系與DC差值Bits數與差值內容對照表相似。 如果連續為0的AC個數大於15,則用15/0來表示連續的16個0,15/0稱為ZRL(Zero Rum Length),而(0/0)稱為EOB(Enel of Block)用來表示其後所剩餘的AC系數皆等於0,以中間符號值作為索引值,從相應的AC編碼表中找出適當的霍夫曼碼值,再與AC值相連即可。 例如某一組亮度的中間符為5/3,AC值為4,首先以5/3為索引值,從亮度AC的Huffman編碼表中找到1111111110011110霍夫曼碼值,於是加上原來100(4)即是用來取[5,4]的Huffman編碼1111111110011110100,[5,4]表示AC值為4的前面有5個零。 由於亮度AC,色度AC霍夫曼編碼表比較長,在此省略去,有興趣者可參閱相關書籍。 實現上述四個步驟,即完成一幅圖像的JPEG壓縮。
Ⅱ 演算法JPEG的數學表達式是
我們這個學期有教過,對正向離散餘弦變換數學公式看起來很頭痛。
=
=!如果你只是應付考試,記住JPEG壓縮編碼演算法的主要計算步驟,理解大概就行了。
(1)正向離散餘弦變換(FDCT)。
(2)量化(Quantization)。
(3)Z字形編碼(Zigzag
Scan)。
(4)使用差分脈沖編碼調制(Differential
Pulse
Code
Molation,DPCM)對直流系數(DC)進行編碼。
(5)使用行程長度編碼(Run-Length
Encoding,RLE)對交流系數(AC)進行編碼。
(6)熵編碼(Entropy
Eoding)。
公式的網址:
http://blog.csdn.net/crfoxzl/archive/2007/11/03/1865072.aspx
Ⅲ JPEG壓縮編碼演算法的主要步驟是什麼其中哪些步驟是有損的,那些是無損的
JPEG壓縮編碼演算法的主要計算步驟如下:
1、正向離散餘弦變換(FDCT)。
2、量化(quantization)。
3、Z字形編碼(zigzag scan)。
4、使用差分脈沖編碼調制(differential pulse code molation,DPCM)對直流系數(DC)進行編碼。
5、使用行程長度編碼(run-length encoding,RLE)對交流系數(AC)進行編碼。
6、熵編碼(entropy coding)。
Ⅳ JPEG是矢量圖像壓縮編碼標准
JPEG(Joint Photographic Experts Group) 是一個由 ISO和IEC兩個組織機構聯合組成的一個專家組,負責制定靜態的數字圖像數據壓縮編碼標准,這個專家組開發的演算法稱為JPEG演算法,並且成為國際上通用的標准,因此又稱為JPEG標准。JPEG是一個適用范圍很廣的靜態圖像數據壓縮標准,既可用於灰度圖像又可用於彩色圖像。
JPEG專家組開發了兩種基本的壓縮演算法,一種是採用以離散餘弦變換(Discrete Cosine Transform,DCT)為基礎的有損壓縮演算法,另一種是採用以預測技術為基礎的無損壓縮演算法。使用有損壓縮演算法時,在壓縮比為25:1的情況下,壓縮後還原得到的圖像與原始圖像相比較,非圖像專家難於找出它們之間的區別,因此得到了廣泛的應用。例如,在V-CD和DVD-Video電視圖像壓縮技術中,就使用JPEG的有損壓縮演算法來取消空間方向上的冗餘數據。為了在保證圖像質量的前提下進一步提高壓縮比,近年來JPEG專家組正在制定JPEG 2000(簡稱JP 2000)標准,這個標准中將採用小波變換(wavelet)演算法。
JPEG壓縮是有損壓縮,它利用了人的視角系統的特性,使用量化和無損壓縮編碼相結合來去掉視角的冗餘信息和數據本身的冗餘信息。壓縮編碼大致分成三個步驟:
1.使用正向離散餘弦變換(forward discrete cosine transform,FDCT)把空間域表示的圖變換成頻率域表示的圖。
2.使用加權函數對DCT系數進行量化,這個加權函數對於人的視覺系統是最佳的。
3.使用霍夫曼可變字長編碼器對量化系數進行編碼。
解碼或者叫做解壓縮的過程與壓縮編碼過程正好相反。
JPEG演算法與彩色空間無關,因此「RGB到YUV變換」和「YUV到RGB變換」不包含在JPEG演算法中。JPEG演算法處理的彩色圖像是單獨的彩色分量圖像,因此它可以壓縮來自不同彩色空間的數據,如RGB, YCbCr和CMYK。
JPEG壓縮編碼演算法的主要計算步驟如下:
1.正向離散餘弦變換(FDCT)。
2.量化(quantization)。
3.Z字形編碼(zigzag scan)。
4.使用差分脈沖編碼調制(differential pulse code molation,DPCM)對直流系數(DC)進行編碼。
5.使用行程長度編碼(run-length encoding,RLE)對交流系數(AC)進行編碼。
6.熵編碼(entropy coding)。
2. 量化
量化是對經過FDCT變換後的頻率系數進行量化。量化的目的是減小非「0」系數的幅度以及增加「0」值系數的數目。量化是圖像質量下降的最主要原因。
對於有損壓縮演算法,JPEG演算法使用均勻量化器進行量化,量化步距是按照系數所在的位置和每種顏色分量的色調值來確定。因為人眼對亮度信號比對色差信號更敏感,因此使用了兩種量化表:亮度量化值和色差量化值。此外,由於人眼對低頻分量的圖像比對高頻分量的圖像更敏感,因此圖中的左上角的量化步距要比右下角的量化步距小。
3. Z字形編排
量化後的系數要重新編排,目的是為了增加連續的「0」系數的個數,就是「0」的遊程長度,方法是按照Z字形的式樣編排,如圖5-17所示。這樣就把一個8 ? 8的矩陣變成一個1 ? 64的矢量,頻率較低的系數放在矢量的頂部。
4. 直流系數的編碼
8 ? 8圖像塊經過DCT變換之後得到的DC直流系數有兩個特點,一是系數的數值比較大,二是相鄰8 ? 8圖像塊的DC系數值變化不大。根據這個特點,JPEG演算法使用了差分脈沖調制編碼(DPCM)技術,對相鄰圖像塊之間量化DC系數的差值(Delta)進行編碼,
Delta=DC(0, 0)k-DC(0, 0)k-1 ........ (5-5)
5. 交流系數的編碼
量化AC系數的特點是1 ? 64矢量中包含有許多「0」系數,並且許多「0」是連續的,因此使用非常簡單和直觀的遊程長度編碼(RLE)對它們進行編碼。
JPEG使用了1個位元組的高4位來表示連續「0」的個數,而使用它的低4位來表示編碼下一個非「0」系數所需要的位數,跟在它後面的是量化AC系數的數值。
6. 熵編碼
使用熵編碼還可以對DPCM編碼後的直流DC系數和RLE編碼後的交流AC系數作進一步的壓縮。
在JPEG有損壓縮演算法中,使用霍夫曼編碼器來減少熵。使用霍夫曼編碼器的理由是可以使用很簡單的查表(lookup table)方法進行編碼。壓縮數據符號時,霍夫曼編碼器對出現頻度比較高的符號分配比較短的代碼,而對出現頻度較低的符號分配比較長的代碼。這種可變長度的霍夫曼碼表可以事先進行定義。
Ⅳ MPEG和JPEG分別採用了什麼演算法
MPEG是Moving Pictures Experts Group(動態圖像專家組)英文縮寫.這個專家組是1988年開始負責CD建立視頻和音頻標首,MPEG有四個版本分別是,MPEG1 到MPEG4,其中MPEG3就是我們所說的MP3,MPEG在壓縮比方面突破200:1,壓縮時而做到對數據的損失很少.
JPEG是Joint Photographics Expert Group(合接圖像專家組)英文縮寫,JPEG可以大幅壓縮圖型文件,同樣一幅畫面壓縮比是原文件的1/10到1/20,文件大小一般為幾十K到一二百K之間,而色彩數最高可達24位,比較廣泛應用於網際網路上,以節約網路傳輸資源.JPEG的壓縮效果還是可以的.
Ⅵ JPEG壓縮編碼演算法的主要計算步驟哪些對圖像的質量有損
JPEG壓縮編碼演算法的主要計算步驟如下:
(1)正向離散餘弦變換(FDCT)。 (2)量化(Quantization)。 (3)Z字形編碼(Zigzag Scan)。 (4)使用差分脈沖編碼調制(Differential Pulse Code Molation,DPCM)對直流系數(DC)進行編碼。 (5)使用行程長度編碼(Run-Length Encoding,RLE)對交流系數(AC)進行編碼。 6)熵編碼(Entropy Eoding)。
JPEG是有損編碼,是在量化過程中取整而產生的。
Ⅶ jpeg圖片壓縮的原理(談談怎麼個壓縮法怎麼個有損法)
JPEG壓縮過程
JPEG壓縮分四個步驟實現:
1.顏色模式轉換及采樣;
2.DCT變換;
3.量化;
4.編碼。
二.
1.顏色模式轉換及采樣 RGB色彩系統是我們最常用的表示顏色的方式。JPEG採用的是YCbCr色彩系統。想要用JPEG基本壓縮法處理全彩色圖像,得先把RGB顏色模式圖像數據,轉換為YCbCr顏色模式的數據。Y代表亮度,Cb和Cr則代表色度、飽和度。通過下列計算公式可完成數據轉換。 Y=0.2990R+0.5870G+0.1140B Cb=-0.1687R-0.3313G+0.5000B+128 Cr=0.5000R-0.4187G-0.0813B+128 人類的眼晴對低頻的數據比對高頻的數據具有更高的敏感度,事實上,人類的眼睛對亮度的改變也比對色彩的改變要敏感得多,也就是說Y成份的數據是比較重要的。既然Cb成份和Cr成份的數據比較相對不重要,就可以只取部分數據來處理。以增加壓縮的比例。JPEG通常有兩種采樣方式:YUV411和YUV422,它們所代表的意義是Y、Cb和Cr三個成份的數據取樣比例。
2.DCT變換 DCT變換的全稱是離散餘弦變換(Discrete Cosine Transform),是指將一組光強數據轉換成頻率數據,以便得知強度變化的情形。若對高頻的數據做些修飾,再轉回原來形式的數據時,顯然與原始數據有些差異,但是人類的眼睛卻是不容易辨認出來。 壓縮時,將原始圖像數據分成8*8數據單元矩陣,例如亮度值的第一個矩陣內容如下:
JPEG將整個亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視為一個基本單元稱作MCU。每個MCU所包含的矩陣數量不得超過10個。例如,行和列采樣的比例皆為4:2:2,則每個MCU將包含四個亮度矩陣,一個色度矩陣及一個飽和度矩陣。 當圖像數據分成一個8*8矩陣後,還必須將每個數值減去128,然後一一代入DCT變換公式中,即可達到DCT變換的目的。圖像數據值必須減去128,是因為DCT轉換公式所接受的數字范圍是在-128到+127之間。 DCT變換公式:
x,y代表圖像數據矩陣內某個數值的坐標位置f(x,y)代表圖像數據矩陣內的數個數值u,v代表DCT變換後矩陣內某個數值的坐標位置F(u,v)代表DCT變換後矩陣內的某個數值 u=0 且 v=0 c(u)c(v)=1/1.414 u>0 或 v>0 c(u)c(v)=1 經過DCT變換後的矩陣數據自然數為頻率系數,這些系數以F(0,0)的值最大,稱為DC,其餘的63個頻率系數則多半是一些接近於0的正負浮點數,一概稱之為AC。
3、量化 圖像數據轉換為頻率系數後,還得接受一項量化程序,才能進入編碼階段。量化階段需要兩個8*8矩陣數據,一個是專門處理亮度的頻率系數,另一個則是針對色度的頻率系數,將頻率系數除以量化矩陣的值,取得與商數最近的整數,即完成量化。 當頻率系數經過量化後,將頻率系數由浮點數轉變為整數,這才便於執行最後的編碼。不過,經過量化階段後,所有數據只保留整數近似值,也就再度損失了一些數據內容,JPEG提供的量化表如下:
4、編碼 Huffman編碼無專利權問題,成為JPEG最常用的編碼方式,Huffman編碼通常是以完整的MCU來進行的。 編碼時,每個矩陣數據的DC值與63個AC值,將分別使用不同的Huffman編碼表,而亮度與色度也需要不同的Huffman編碼表,所以一共需要四個編碼表,才能順利地完成JPEG編碼工作。 DC編碼 DC是彩採用差值脈沖編碼調制的差值編碼法,也就是在同一個圖像分量中取得每個DC值與前一個DC值的差值來編碼。DC採用差值脈沖編碼的主要原因是由於在連續色調的圖像中,其差值多半比原值小,對差值進行編碼所需的位數,會比對原值進行編碼所需的位數少許多。例如差值為5,它的二進製表示值為101,如果差值為-5,則先改為正整數5,再將其二進制轉換成1的補數即可。所謂1的補數,就是將每個Bit若值為0,便改成1;Bit為1,則變成0。差值5應保留的位數為3,下表即列出差值所應保留的Bit數與差值內容的對照。
在差值前端另外加入一些差值的霍夫曼碼值,例如亮度差值為5(101)的位數為3,則霍夫曼碼值應該是100,兩者連接在一起即為100101。下列兩份表格分別是亮度和色度DC差值的編碼表。根據這兩份表格內容,即可為DC差值加上霍夫曼碼值,完成DC的編碼工作。
AC編碼 AC編碼方式與DC略有不同,在AC編碼之前,首先得將63個AC值按Zig-zag排序,即按照下圖箭頭所指示的順序串聯起來。
63個AC值排列好的,將AC系數轉換成中間符號,中間符號表示為RRRR/SSSS,RRRR是指第非零的AC之前,其值為0的AC個數,SSSS是指AC值所需的位數,AC系數的范圍與SSSS的對應關系與DC差值Bits數與差值內容對照表相似。 如果連續為0的AC個數大於15,則用15/0來表示連續的16個0,15/0稱為ZRL(Zero Rum Length),而(0/0)稱為EOB(Enel of Block)用來表示其後所剩餘的AC系數皆等於0,以中間符號值作為索引值,從相應的AC編碼表中找出適當的霍夫曼碼值,再與AC值相連即可。 例如某一組亮度的中間符為5/3,AC值為4,首先以5/3為索引值,從亮度AC的Huffman編碼表中找到1111111110011110霍夫曼碼值,於是加上原來100(4)即是用來取[5,4]的Huffman編碼1111111110011110100,[5,4]表示AC值為4的前面有5個零。 由於亮度AC,色度AC霍夫曼編碼表比較長,在此省略去,有興趣者可參閱相關書籍。 實現上述四個步驟,即完成一幅圖像的JPEG壓縮。 參考資料[1] 林福宗 《圖像文件格式(上)——Windows 編程》,清華大學出版社, 1996年[2] 李振輝、李仁各編著,《探索圖像文件的奧秘》,清華大學出版社,1996年[3] 黎洪松、成實譯《JPEG靜止數據壓縮標准》,學苑出版社,1996年
希望有點幫助
參考資料:http://www.daima.com.cn/Info/94/Info31445/
Ⅷ 簡述JPEG壓縮演算法
首先你需要了解幾個概念,有損壓縮,量化,行程編碼。
對一副圖片來說,bitmap就是原始格式,沒經過任何壓縮的。
量化就是把所有0-255的像素值進行歸類,然後分成盡量少的積累,這要存儲量就小很多了,對於JEPG來說量化是有損壓縮的起源。
最後就是對所有的已經歸類過的點進行行程編碼,然後就壓縮完了
Ⅸ JPEG壓縮的主要計算步驟是什麼
如果圖片多的話,最簡單的辦法就是放到一個文件夾里,
然後對那個文件夾點右鍵--添加到檔案文件他會自動生成的個的,你也可以去那個文件改名(前提就像樓上說的那樣,得安裝有加壓解工具)
Ⅹ JPEG圖片大小怎麼計算
1.57MB是圖像的原始大小,740*740*3(RGB圖像通常每像素3位元組)=1642800位元組=1.566696MB,大約等於其BMP格式的大小,而307.7KB是JPEG格式的大小,是壓縮過的。
JPG圖片的大小,與壓縮質量系數有關,與圖片的內容有關。640*480的JPG圖片,文件大小可能只有幾KB,也可能有上百KB。
256色,即每個像素用8位(一個位元組)來描述,640*480共307200像素(約30萬像素),因此圖像大小就是307200位元組,即300KB。
BMP文件實際是由點陣圖文件頭、點陣圖信息頭、彩色板、圖像數據陣列四個部分構成,上面的300KB是圖像數據陣列部分,加上文件前面的部分(一般為幾十個位元組),會比300KB略大。
(10)jpeg壓縮碼計算方法擴展閱讀:
JPEG也是最常見的一種圖像格式,它是由聯合照片專家組開發並以命名為「ISO 10918-1」,JPEG僅僅是一種俗稱而已。
JPEG文件的擴展名為.jpg或.jpeg,因其壓縮技術十分先進,它用有損壓縮方式去除冗餘的圖像和彩色數據,獲取得極高的壓縮率的同時能展現十分豐富生動的圖像,換句話說,就是可以用最少的磁碟空間得到較好的圖像質量。