免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

JPEG 原理詳細

 昵稱10144181 2012-06-06
JPEG 是 Joint Photographic Experts Group 的縮寫,即 ISO 和 IEC 聯(lián)合圖像專家組,負責靜態(tài)圖像壓縮標準的制定,這個專家組開發(fā)的算法就被稱為 JPEG 算法,并且已經成為了大家通用的標準,即 JPEG 標準。 JPEG 壓縮是有損壓縮,但這個損失的部分是人的視覺不容易察覺到的部分,它充分利用了人眼對計算機色彩中的高頻信息部分不敏感的特點,來大大節(jié)省了需要處理的數(shù) 據信息。
  人眼對構成圖像的不同頻率成分具有不同的敏感度,這個是由人眼的視覺生理特性所決定的。如人的眼睛含有對亮度敏感的柱狀細胞1.8億個,含有對色彩敏感的椎狀細胞0.08億個,由于柱狀細胞的數(shù)量遠大于椎狀細胞,所以眼睛對亮度的敏感程度要大于對色彩的敏感程度。
  總體來說,一個原始圖像信息,要對其進行 JPEG 編碼,過程分兩大步:
  1、 去除視覺上的多余信息,即空間冗余度
  2、 去除數(shù)據本身的多余信息,即結構(靜態(tài))冗余度
  1、去除視覺上的多余信息
  當你拿到一個原始未經處理的圖像,是由各種色彩組成的,即在一個平面上,有各種色彩,而這個平面是由水平和垂直方向上的很多點組成的。實際上,每個點 的色彩,也即計算機能表示的每個像素點的色彩,能分解成紅、綠、藍,即 RGB 三元色來表示,即這三種顏色的一定比例的混合就能得到一個實際的色彩值。

所以,實際上,這個平面的圖像,可以理解為除了水平 X 和垂直 Y 以外,還有一個色彩值的 Z 的三維的系統(tǒng)。Z 代表了三元色中各個分支 R/G/B 的混合時所占的具體數(shù)值大小,每個像素的 RGB 的混合值可能都有所不同,各個值有大有小,但臨近的兩個點的 R/G/B 三個值會比較接近。

由于這個原始圖像是由很多個獨立的像素點組成的,也就是說它們都是分散的,離散的。比如有些圖像的尺寸為640X480,就表示水平有640個像素點,垂直有480個像素點。
  從上面的內容,我們可以知道兩個相鄰的點,會有很多的色彩是很接近的,那么如何能在最后得到的圖片中,盡量少得記錄這些不需要的數(shù)據,也即達到了壓縮的效果。
  這個就要涉及到圖像信號的頻譜特性了。
  圖像信號的頻譜線一般在0-6MHz范圍內,而且一幅圖像內,包含了各種頻率的分量。但包含的大多數(shù)為低頻頻譜線,只在占圖像區(qū)域比例很低的圖像邊緣的信號中才含有高頻的譜線。這個是對 JPEG 圖像壓縮的理論依據。
  因此具體的方法就是,在對圖像做數(shù)字處理時,可根據頻譜因素分配比特數(shù):對包含信息量大的低頻譜區(qū)域分配較多的比特數(shù),對包含信息量低的高頻譜區(qū)域分配較少的比特數(shù),而圖像質量并沒有可察覺的損傷,達到數(shù)據壓縮的目的。
  將原始圖像這個色彩空間域,轉換為頻譜域,怎么轉呢,這個就用到了數(shù)學上的離散余弦變換,即 DCT(Discrete Cosine Transform) 變換。
  DCT 是可逆的、離散的正交變換。變換過程本身雖然并不產生壓縮作用,但是變換后的頻率系數(shù)卻非常有利于碼率壓縮。即這個變換過程得到一個 DCT 變換系數(shù),而對這個系數(shù)可以再進行更進一步的處理,即所謂的量化。經過量化,就能達到數(shù)據壓縮的作用了。
總體說來,這第一步,對圖像進行編碼,去除多余的信息,要用到 DCT 變換中的正向 DCT(FDCT),然后再對變換的系數(shù)做量化(Quantization),這個過程就是依據的經驗值,來處理人眼視覺系統(tǒng)所不敏感的高頻數(shù)據,從而極 大地減少了需要處理的數(shù)據量,這個是結合數(shù)學方法與經驗值而做的處理。
  2、去除數(shù)據本身的多余信息
  利用 Huffman 編碼,來將最后的數(shù)據用無損的方式做壓縮,這個是純數(shù)學上的處理方式。
  總體來說,上面的兩步即:
  如果處理的是彩色圖像,JPEG 算法首先將 RGB 分量轉化成亮度分量和色差分量,同時丟失一半的色彩信息(空間分辨率減半)。然后,用 DCT 來進行塊變換編碼,舍棄高頻的系數(shù),并對余下的系數(shù)進行量化以進一步減小數(shù)據量。最后,使用 RLE 行程編碼和 Huffman 編碼來完成壓縮任務。
  三、JPEG 原理詳細分析
  下面將更加詳細地介紹這兩步中的各個細節(jié)。
  JPEG 編碼中主要涉及到的內容主要包括:
  1. Color Model Conversion (色彩模型)
  2. DCT (Discrete Cosine Transform 離散余弦變換)
  3. 重排列 DCT 結果
  4. 量化
  5. RLE 編碼
  6. 范式 Huffman 編碼
  7. DC 的編碼

1、色彩空間 color space
  在圖像處理中,為了利用人的視角特性,從而降低數(shù)據量,通常把 RGB 空間表示的彩色圖像變換到其他色彩空間。
  現(xiàn)在采用的色彩空間變換有三種:YIQ,YUV 和 YCrCb。
  每一種色彩空間都產生一種亮度分量信號和兩種色度分量信號,而每一種變換使用的參數(shù)都是為了適應某種類型的顯示設備。


YUV 不是哪個英文單詞的縮寫,而只是符號,Y 表示亮度,UV 用來表示色差,U、V 是構成彩色的兩個分量;
  YUV 表示法的重要性是它的亮度信號(Y)和色度信號(U、V)是相互獨立的,也就是 Y 信號分量構成的黑白灰度圖與用 U、V 信號構成的另外兩幅單色圖是相互獨立的。由于 Y、U、V 是獨立的,所以可以對這些單色圖分別進行編碼。此外,黑白電視能接收彩色電視信號也就是利用了 YUV 分量之間的獨立性。
  舉例來說明一下:
  要存儲 RGB 8∶8∶8的彩色圖像,即 R、G 和 B 分量都用8位二進制數(shù)(1個字節(jié))表示,圖像的大小為640×480像素,那么所需要的存儲容量為640×480×(1+1+1)=921 600字節(jié),即900KB,其中(1+1+1)表示 RGB 各占一個字節(jié)。


如果用 YUV 來表示同一幅彩色圖像,Y 分量仍然為640×480,并且 Y 分量仍然用8位表示,而對每四個相鄰像素(2×2)的 U、V 值分別用相同的一個值表示,那么存儲同樣的一幅圖像所需的存儲空間就減少到640×480×(1+1/(2*2)+1/(2*2))=460 800字節(jié),即450KB。也就是把數(shù)據壓縮了一半。


無論是用 YIQ、YUV 和 YCrCb 還是其他模型來表示的彩色圖像,由于現(xiàn)在所有的顯示器都采用 RGB 值來驅動,這就要求在顯示每個像素之前,須要把彩色分量值轉換成 RGB 值。
對電視機,在考慮人的視覺系統(tǒng)和電視陰極射線管(CRT)的非線性特性之后,RGB 和 YUV 的對應關系可以近似地用下面的方程式表示:


即:
  Y=0.3R+0.59G+0.11B
  U=B-Y
  V=R-Y
  對計算機而言,計算機用的數(shù)字域的色彩空間變換與電視模擬域的色彩空間變換不同,它們的分量使用 Y、Cr 和 Cb 來表示,與 RGB 空間的轉換關系如下:


從這里,就可以看出,計算出來的 Y、Cr 和 Cb 分量,會出現(xiàn)大量的小數(shù),即浮點數(shù),從而導致了在 JPEG 編碼過程中會出現(xiàn)大量的浮點數(shù)的運算,當然經過一定的優(yōu)化,這些浮點數(shù)運算可以用移位與加法這些計算機能更快速處理的方式來對其進行編碼。
  RGB 與 YCrCb 之間的逆變換關系可寫成如下的形式:


總體來說,上面講的這些內容,主要就是對原始圖片,可以先進行色彩空間的處理,使采集到的圖像數(shù)據有所減少。
  請注意,實際上,JPEG 算法與色彩空間無關,色彩空間是涉及到圖像采樣的問題,它和數(shù)據的壓縮并沒有直接的關系。
  因此“RGB 到 YUV 變換”和“YUV 到 RGB 變換”不包含在 JPEG 算法中。JPEG 算法處理的彩色圖像是單獨的彩色分量圖像,因此它可以壓縮來自不同色彩空間的數(shù)據,如 RGB,YcbCr 和 CMYK。
2、色彩深度 color depth
  在圖像中,它是由很多個點來組成的,那么存儲每個像素點所用的位數(shù)就叫做像素深度。對一個圖片,這個值是可以有所不同的,從而會使得圖片的數(shù)據有多和少的區(qū)別。
  一幅彩色圖像的每個像素用 R,G,B 三個分量表示,若每個分量用8位,那么一個像素共用3X8=24位表示,就說像素的深度為24 bit,每個像素可以是2的24次方=16 777 216種顏色中的一種。表示一個像素的位數(shù)越多,它能表達的顏色數(shù)目就越多。
  在用二進制數(shù)表示彩色圖像的像素時,除 R,G,B 分量用固定位數(shù)表示外,往往還增加1位或幾位作為屬性(Attribute)位。例如,RGB 5∶5∶5表示一個像素時,用2個字節(jié)共16位表示,其中 R,G,B 各占5位,剩下一位作為屬性位。在這種情況下,像素深度為16位,而圖像深度為15 位。
  在用32位表示一個像素時,若 R,G,B 分別用8位表示,剩下的8位常稱為 alpha 通道(alpha channel)位,或稱為覆蓋(overlay)位、中斷位、屬性位。它的用法可用一個預乘 α 通道(premultiplied alpha)的例子說明。假如一個像素(A,R,G,B)的四個分量都用歸一化的數(shù)值表示,(A,R,G,B)為(1,1,0,0)時顯示紅色。當像素為 (0.5,1,0,0)時,預乘的結果就變成(0.5,0.5,0,0),這表示原來該像素顯示的紅色的強度為1,而現(xiàn)在顯示的紅色的強度降了一半。
  這個 alpha 值,在這里就用來表示該像素如何產生特技效果。
  總體來說,圖像的寬高、分辨率越高,就是組成一幅圖的像素越多,則圖像文件越大;像素深度越深,就是表達單個像素的顏色和亮度的位數(shù)越多,圖像文件就越大。
  只有黑白兩種顏色的圖像稱為單色圖像(monochrome),每個像素的像素值用1位存儲,它的值只有“0”或者“1”,一幅640×480的單色圖像需要占據37.5 KB的存儲空間。
而灰度圖像,即有色深的黑白圖像,如果每個像素的像素值用一個字節(jié)表示,而不是僅僅只有一位,那么灰度值級數(shù)就等于256級,每個像素可以是0~255之間的任何一個值,一幅640×480的灰度圖像就需要占用300 KB的存儲空間,類似上面說到過的 Y 分量。
  3、離散余弦變換 DCT
  將圖像從色彩域轉換到頻率域,常用的變換方法有:


DCT變換的公式為:

f(i,j) 經 DCT 變換之后,F(xiàn)(0,0) 是直流系數(shù),其他為交流系數(shù)。
  還是舉例來說明一下。
  8x8的原始圖像:


推移128后,使其范圍變?yōu)?-128~127:

使用離散余弦變換,并四舍五入取最接近的整數(shù):

上圖就是將取樣塊由時間域轉換為頻率域的 DCT 系數(shù)塊。
DCT 將原始圖像信息塊轉換成代表不同頻率分量的系數(shù)集,這有兩個優(yōu)點:其一,信號常將其能量的大部分集中于頻率域的一個小范圍內,這樣一來,描述不重要的分量 只需要很少的比特數(shù);其二,頻率域分解映射了人類視覺系統(tǒng)的處理過程,并允許后繼的量化過程滿足其靈敏度的要求。
  當u,v = 0 時,離散余弦正變換(DCT)后的系數(shù)若為F(0,0)=1,則離散余弦反變換(IDCT)后的重現(xiàn)函數(shù) f(x,y)=1/8,是個常 數(shù)值,所以將 F(0,0) 稱為直流(DC)系數(shù);當 u,v≠0 時,正變換后的系數(shù)為 F(u,v)=0,則反變換后的重現(xiàn)函數(shù) f(x,y) 不是常數(shù),此時 正變換后的系數(shù) F(u,v) 為交流(AC)系數(shù)。
  DCT 后的64個 DCT 頻率系數(shù)與 DCT 前的64個像素塊相對應,DCT 過程的前后都是64個點,說明這個過程只是一個沒有壓縮作用的無損變換過程。
  單獨一個圖像的全部 DCT 系數(shù)塊的頻譜幾乎都集中在最左上角的系數(shù)塊中。
  DCT 輸出的頻率系數(shù)矩陣最左上角的直流 (DC)系數(shù)幅度最大,圖中為-415;以 DC 系數(shù)為出發(fā)點向下、向右的其它 DCT 系數(shù),離 DC 分量越遠,頻率越高,幅度值越小,圖中最右下角為2,即圖像信息的大部分集中于直流系數(shù)及其附近的低頻頻譜上,離 DC 系數(shù)越來越遠的高頻頻譜幾乎不含圖像信息,甚至于只含雜波。
  DCT 本身雖然沒有壓縮作用,卻為以后壓縮時的"取"、"舍" 奠定了必不可少的基礎。
  4、量化
  量化過程實際上就是對 DCT 系數(shù)的一個優(yōu)化過程。它是利用了人眼對高頻部分不敏感的特性來實現(xiàn)數(shù)據的大幅簡化。
  量化過程實際上是簡單地把頻率領域上每個成份,除以一個對于該成份的常數(shù),且接著四舍五入取最接近的整數(shù)。
  這是整個過程中的主要有損運算。
以這個結果來說,經常會把很多高頻率的成份四舍五入而接近0,且剩下很多會變成小的正或負數(shù)。
  整個量化的目的是減小非“0”系數(shù)的幅度以及增加“0”值系數(shù)的數(shù)目。
  量化是圖像質量下降的最主要原因。
  因為人眼對亮度信號比對色差信號更敏感,因此使用了兩種量化表:亮度量化值和色差量化值。


使用這個量化矩陣與前面所得到的 DCT 系數(shù)矩陣:

如,使用?415(DC系數(shù))且四舍五入得到最接近的整數(shù)

總體上來說,DCT 變換實際是空間域的低通濾波器。對 Y 分量采用細量化,對 UV 采用粗量化。
  量化表是控制 JPEG 壓縮比的關鍵,這個步驟除掉了一些高頻量;另一個重要原因是所有圖片的點與點之間會有一個色彩過渡的過程,大量的圖像信息被包含在低頻率中,經過量化處理后,在高頻率段,將出現(xiàn)大量連續(xù)的零。
  5、“Z”字形編排
  量化后的數(shù)據,有一個很大的特點,就是直流分量相對于交流分量來說要大,而且交流分量中含有大量的0。這樣,對這個量化后的數(shù)據如何來進行簡化,從而再更大程度地進行壓縮呢。
這就出現(xiàn)了“Z”字形編排,如圖:

對于前面量化的系數(shù)所作的 “Z”字形編排結果就是:
  底部 ?26,?3,0,?3,?3,?6,2,?4,1 ?4,1,1,5,1,2,?1,1,?1,2,0,0,0,0,0,?1,?1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 頂部
  這樣做的特點就是會連續(xù)出現(xiàn)多個0,這樣很有利于使用簡單而直觀的行程編碼(RLE:Run Length Coding)對它們進行編碼。
  8×8圖像塊經過 DCT 變換之后得到的 DC 直流系數(shù)有兩個特點,一是系數(shù)的數(shù)值比較大,二是相鄰8×8圖像塊的 DC 系數(shù)值變化不大。根據這個特點,JPEG 算法使用了差分脈沖調制編碼(DPCM)技術,對相鄰圖像塊之間量化 DC 系數(shù)的差值(Delta)進行編碼。即充分利用相鄰兩圖像塊的特性,來再次簡化數(shù)據。
  即上面的 DC 分量-26,需要單獨處理。
  而對于其他63個元素采用zig-zag(“Z”字形)行程編碼,以增加行程中連續(xù)0的個數(shù)。
  6、行程編碼
  Run Length Coding,行程編碼又稱“運行長度編碼”或“游程編碼”,它是一種無損壓縮編碼。
  例如:5555557777733322221111111
  這個數(shù)據的一個特點是相同的內容會重復出現(xiàn)很多次,那么就可以用一種簡化的方法來記錄這一串數(shù)字,如
 ?。?,6)(7,5)(3,3)(2,4)(l,7)
即為它的行程編碼。
  行程編碼的位數(shù)會遠遠少于原始字符串的位數(shù)。
  對經過“Z”字形編排過的數(shù)據,即可以用行程編碼來對其進行大幅度的數(shù)據壓縮。
  我們來用一個簡單的例子來詳細說明一下:
  57,45,0,0,0,0,23,0,-30,-16,0,0,1,0,0,0,0 ,0 ,0 ,0,..,0
  可以表示為
  (0,57) ; (0,45) ; (4,23) ; (1,-30) ; (0,-16) ; (2,1) ; EOB
  即每組數(shù)字的頭一個表示0的個數(shù),而且為了能更有利于后續(xù)的處理,必須是 4 bit,就是說,只能是 0~15,這是的這個行程編碼的一個特點。
  7、范式 Huffman 編碼
  在直流 DC 系數(shù)經過上面的 DPCM 編碼,交流 AC 系數(shù)經過 RLE 編碼后,得到的數(shù)據,還可以再進一補壓縮,即使用 Huffman 編碼來處理。
  范式 Huffman 編碼即 Canonical Huffman Code,現(xiàn)在流行的很多壓縮方法都使用了范式哈夫曼編碼技術,如 GZIB、ZLIB、PNG、JPEG、MPEG 等。
  對上面的例子中 RLC 后的結果,對它的存儲,JPEG 里并不直接保存這個數(shù)值,這樣主要是為了提高效率。

對上面的例子內容,就可以得到:
  57 為第 6 組的,實際保存值為 111001,編碼為 (6,111001)
  45編碼為 (6,101101)
  23為(5,10111)
  -30為(5,00001)
  這個時候前面的例子就變?yōu)椋?br>   (0,6),111001 ; (0,6),101101 ; (4,5),10111; (1,5),00001; (0,4) ,0111 ; (2,1),1 ; (0,0)
  這樣,括號里的數(shù)值正好再合成一個字節(jié),高4位是前面0的個數(shù),低4位描述了后面數(shù)字的位數(shù);后面被編碼的數(shù)字表示范圍是 -32767..32767。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多