jpeg演算法
首先你需要了解幾個概念,有損壓縮,量化,行程編碼。
對一副圖片來說,bitmap就是原始格式,沒經過任何壓縮的。
量化就是把所有0-255的像素值進行歸類,然後分成盡量少的積累,這要存儲量就小很多了,對於JEPG來說量化是有損壓縮的起源。
最後就是對所有的已經歸類過的點進行行程編碼,然後就壓縮完了
Ⅱ MPEG和JPEG分別採用了什麼演算法
MPEG視頻壓縮編碼後包括三種元素:I幀(I-frames)、P幀(P-frames)和B幀(B-frames)。在MPEG編碼的過程中,部分視頻幀序列壓縮成為I幀;部分壓縮成P幀;還有部分壓縮成B幀。I幀法是幀內壓縮法,也稱為「關鍵幀」壓縮法。I幀法是基於離散餘弦變換DCT( Discrete Cosine Transform )的壓縮技術,這種演算法與JPEG壓縮演算法類似。採用I幀壓縮可達到1/6的壓縮比而無明顯的壓縮痕跡。
在保證圖像質量的前提下實現高壓縮的壓縮演算法,僅靠幀內壓縮是不能實現的,MPEG採用了幀間和幀內相結合的壓縮演算法。 P幀法是一種前向預測演算法,它考慮相鄰幀之間的相同信息或數據,也即考慮運動的特性進行幀間壓縮。P幀法是根據本幀與相鄰的前一幀(I幀或P幀)的不同點來壓縮本幀數據。採取P幀和I幀聯合壓縮的方法可達到更高的壓縮且無明顯的壓縮痕跡。
然而,只有採用B幀壓縮才能達到200:1的高壓縮。B幀法是雙向預測的幀間壓縮演算法。當把一幀壓縮成B幀時,它根據相鄰的前一幀、本幀以及後一幀數據的不同點來壓縮本幀,也即僅記錄本幀與前後幀的差值。B幀數據只有I幀數據的百分之十五、P幀數據的百分之五十以下。
MPEG標准採用類似4:2:2的採用格式,壓縮後亮度信號的解析度為352×240,兩個色度信號解析度均為176×120,這兩種不同解析度信息的幀率都是每秒30幀。其編碼的基本方法是在單位時間內,首先採集並壓縮第一幀的圖像為I幀。然後對於其後的各幀,在對單幀圖像進行有效壓縮的基礎上,只存儲其相對於前後幀發生變化的部分。幀間壓縮的過程中也常間隔採用幀內壓縮法,由於幀內(關鍵幀)的壓縮不基於前一幀,一般每隔15幀設一關鍵幀,這樣可以減少相關前一幀壓縮的誤差積累。MPEG編碼器首先要決定壓縮當前幀為I幀或P幀或B幀,然後採用相應的演算法對其進行壓縮。一個視頻序列經MPEG全編碼壓縮後可能的格式為:......
壓縮成B幀或P幀要比壓縮成I幀需要多得多的計算處理時間。有的編碼器不具備B幀甚至P幀的壓縮功能,顯然其壓縮效果不會很好。
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)。
Ⅲ JPEG2000演算法的主要特點有哪些
JPEG 2000 與傳統 JPEG 最大的不同,在於它放棄了 JPEG 所採用的以離散餘弦轉換(Discrete Cosine Transform) 為主的區塊編碼方式,而改采以小波轉換(Wavelet transform) 為主的多解析編碼方式。小波轉換的主要目的是要將影像的頻率成分抽取出來。
Ⅳ 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略大。
(4)jpeg演算法擴展閱讀:
JPEG也是最常見的一種圖像格式,它是由聯合照片專家組開發並以命名為「ISO 10918-1」,JPEG僅僅是一種俗稱而已。
JPEG文件的擴展名為.jpg或.jpeg,因其壓縮技術十分先進,它用有損壓縮方式去除冗餘的圖像和彩色數據,獲取得極高的壓縮率的同時能展現十分豐富生動的圖像,換句話說,就是可以用最少的磁碟空間得到較好的圖像質量。
Ⅳ 用java能實現JPEG壓縮演算法嗎
BufferedImageimage=newBufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
image.getGraphics().drawImage(img,0,0,w,h,null);//繪制縮小後的圖
FiledestFile=newFile("C:\tmp1.jpg");
FileOutputStreamout=newFileOutputStream("C:\tmp2.jpg");//輸出到文件流
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
Ⅵ 什麼是JPEG
JPEG(Joint Photographic Experts Group)
聯合圖象專家組規范
JPEG 是一個由ISO和IEC兩個組織機構聯合組成的一個專家組,負責制定靜態的數字圖象數據壓縮編碼標准,因此又稱為JPEG標准。JPEG是一個適用范圍很廣的靜態圖象數據壓縮標准,既可用於灰度圖象又可用於彩色圖象。JPEG專家組開發了兩種基本的壓縮演算法,一種是採用以DCT(Discrete Cosine Transform)為基礎的有損壓縮演算法,另一種是採用以預測技術為基礎的無損壓縮演算法。使用有損壓縮演算法時,在壓縮比為25:1的情況下,壓縮後還原得到的圖象與原始圖象相比較,非圖象專家難於找出它們之間的區別,因此得到了廣泛的應用。例如,在V-CD和DVD-Video電視圖象壓縮技術中,就使用JPEG的有損壓縮演算法來取消空間冗餘數據。為了在保證圖象質量的前提下進一步提高壓縮比,近年來JPEG專家組正在制定JPEG2000(簡稱JP2000)標准,這個標准中將採用小波變換(wavelet)演算法。
JPEG是一個有損耗的圖象壓縮演算法,經常通過10個或更多因子中的一個來減少點陣圖化圖象的大小,它產生很小或根本不產生能夠被分辨出來的圖象損耗。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壓縮編碼演算法的主要步驟
這是個有水平的問題
參考下這篇有水平的文章http://edwin-wang.com/2006/06/jpeg%E5%8E%8B%E7%BC%A9%E7%BC%96%E7%A0%81%E7%AC%94%E8%AE%B0/
Ⅸ JAVA能實現JPEG壓縮演算法嗎
想100%重寫jpeg演算法,這個幫不了。
壓縮、調整,可以看BufferedImage和ImageIO
Ⅹ JPEG演算法具有哪四種操作方式
(1)基於DCT的順序模式:編碼、解碼通過一次掃描完成;
(2)基於DCT的漸進模式:編碼、解碼需要多次掃描完成,掃描效果由粗到精,逐級遞增;
(3)無損模式:基於DPCM,保證解碼後完全精確恢復到原圖像采樣值;
(4)層次模式:圖像在多個空間解析度中進行編碼,可以根據需要只對低解析度數據做解碼,放棄高解析度信息;