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

分享

JPEG的編碼步驟

 青石水 2010-07-29

JPEG(Joint Photographic Experts Group)是ISO和CCITT為靜態(tài)圖象建立的一個(gè)國際數(shù)
字圖象壓縮標(biāo)準(zhǔn).
定義了基于DCT的失真(Lossy)方式和使用預(yù)測器(Predictor)的無失真(Lossless)方式.

在失真方式中, 又分只處理取樣比例為8位的基本模式(BaseLine Process)和可以處理取
樣比例12位的擴(kuò)展模式(Extended Process). 使用失真方式,壓縮比可調(diào)(一般在10-50內(nèi)
效果最好);使用無失真方式,壓縮比大于2.
JPEG使用的幾種壓縮模式一覽:
基于DCT的失真方式 DCT_Based
基本系統(tǒng) Baseline
順序編碼 Sequential
哈夫曼編碼 Huffman
累進(jìn)編碼 Progressie
哈夫曼編碼 Huffman
擴(kuò)展系統(tǒng) Extended
順序編碼 Sequential
哈夫曼編碼 Huffman
算術(shù)編碼 Arithmetic
累進(jìn)編碼 Progressie
哈夫曼編碼 Huffman
算術(shù)編碼 Arithmetic
階梯編碼 Hierachical
哈夫曼編碼 Huffman
算術(shù)編碼 Arithmetic
無失真編碼 Lossless
一般編碼 Normal
哈夫曼編碼 Huffman
算術(shù)編碼 Arithmetic
階梯編碼 Hierachical
哈夫曼編碼 Huffman
算術(shù)編碼 Arithmetic
我們現(xiàn)在討論Baseline系統(tǒng)中的順序編碼模式.
JPEG的編碼主要有以下幾個(gè)步驟:
1.色彩轉(zhuǎn)換 2.部分取樣 3.離散余弦變換DCT 4.量化 5.熵編碼 6.數(shù)據(jù)混合
編碼的時(shí)候,JPEG編碼器先將一幅原始圖象轉(zhuǎn)換為自己的色彩系統(tǒng),按照人眼特點(diǎn)對其中
各個(gè)色彩分量作不同的取樣,經(jīng)由DCT轉(zhuǎn)換從時(shí)域變?yōu)轭l域,接著將變換后的數(shù)據(jù)量化以丟
棄無用信息,然后用哈夫曼編碼或者算術(shù)編碼對量化后的系數(shù)進(jìn)行編碼得到壓縮數(shù)據(jù),最
后將色彩分量信息,量化表,編碼表和各個(gè)色彩分量的壓縮數(shù)據(jù)等混合成一個(gè)整體數(shù)據(jù)流
,即形成JPEG文件.
解碼的時(shí)候,JPEG解碼器先從數(shù)據(jù)流中獲取解碼所必須的信息(色彩分量信息,量化表和編
碼表等),然后將各個(gè)色彩分量分別解碼,過程和編碼的時(shí)候剛好相反.
編碼和解碼的流程圖如下:
色彩系統(tǒng)(Color Space) 返回JPEG編解碼流程
計(jì)算機(jī)顯示使用的是RGB三色系統(tǒng),而JPEG文件使用的是 亮度-色調(diào)-飽和度 色彩系統(tǒng),本
節(jié)講的就是它們之間的轉(zhuǎn)換.(為何不直接使用RGB色彩系統(tǒng),在下一節(jié)將會(huì)講到).
間接色彩<--->直接色彩
1.YIQ:
YIQ是北美NTSC電視系統(tǒng)中采用的色彩系統(tǒng),Y不是指Yellow,而是指顏色的明視度(Lumin
ance),或者稱做亮度(Brightness),也可以稱做灰度值(Gray Value),I和Q分別是色調(diào)和
飽和度.
YIQ與RGB的轉(zhuǎn)換關(guān)系如下:
Y=0.299R+0.587G+0.114B  R=Y+0.956I+0.621Q
I=0.596R-0.274G-0.322B  G=Y-0.272I-0.647Q
Q=0.211R-0.523G+0.312B  B=Y-1.106I-1.703Q
2.YUV:
YUV是歐洲PAL電視系統(tǒng)中采用的色彩系統(tǒng),YUV的含義和YIQ的含義一一對應(yīng)
YUV與RGB的轉(zhuǎn)換關(guān)系如下:
Y=0.299R+0.587G+0.114B  R=Y+1.140V
U=-0.148R-0.289G+0.473B  G=Y-0.395U-0.581V
V=0.615R-0.515G-0.100B  B=Y+2.032U
3.YCbCr:
JPEG的缺省色彩系統(tǒng),它是從YUV色彩系統(tǒng)中衍生出來的,將U和V做少許調(diào)整就是Cb和Cr
YCbCr與RGB的轉(zhuǎn)換關(guān)系如下:
Y =0.2990R+0.5870G+0.1140B  R=Y+1.40200(Cr-128)
Cb=-0.1687R-0.3313G+0.5000B+128  G=Y-0.34414(Cb-128)-0.71414(Cr-128)
Cr=0.5000R-0.4187G-0.0813B+128  B=Y+1.77200(Cb-128)
下圖表明該類色彩系統(tǒng)與RGB系統(tǒng)的對應(yīng)關(guān)系:  色調(diào)
飽和度  亮度
部分取樣(SubSampling) 返回JPEG編解碼流程
研究表明:人類眼睛對亮度變化的敏感度比對色彩變化的敏感度要高的多.例如在光線不
足的情況下,人眼看到的物體都是黑白的,只有光線足夠強(qiáng)的時(shí)候,才能感覺到色彩的存在
.從上一節(jié)的敘述我們知道,間接色彩可以用亮度,色調(diào)和飽和度來表示顏色.如果我們對
于亮度處理比較精細(xì),而對色調(diào)和飽和度只做粗略的處理,那么就可以提高壓縮比而不會(huì)
太影響視覺效果.這也是不用RGB色彩系統(tǒng)的原因.不過也不是絕對,JPEG還支持一種色彩
系統(tǒng)CMYK屬于直接色彩,那就不在我們現(xiàn)在討論的范圍里了.
JPEG使用部分?jǐn)?shù)據(jù)取樣來完成這個(gè)過程.用取樣因子描述.
用一個(gè)例子來說明:
如果一幅圖,它的
水平取樣因子為2,1,1.則表示在水平方向上亮度、色調(diào)和飽和度的取樣數(shù)據(jù)量比例為2:
1:1.
垂直取樣因子為2,1,2.則表示再垂直方向上亮度、色調(diào)和飽和度的取樣數(shù)據(jù)量比例為2:
1:2.
那么總的取樣數(shù)據(jù)量比例為2*2:1*1:1*2 = 4:2:1.這個(gè)比例被稱為YUV421.
JPEG規(guī)定每種色彩成分取8*8個(gè)樣值(為何要取8*8見下一節(jié))為一個(gè)單位(Unit).按取樣比
例的幾個(gè)色彩成分的單位組合,稱為最小編碼單位MCU(Minimum Coded Unit)
下圖表示一個(gè)16*16的圖象塊是怎樣按YUV412被取樣為一個(gè)MCU的:
在上圖中:原圖象數(shù)據(jù)(16*16RGB矩陣)首先被轉(zhuǎn)化為三個(gè)色彩成分?jǐn)?shù)據(jù)(16*16YUV矩陣),
然后對于Y成分(Component1),數(shù)據(jù)不變. 對于U成分(Component2),每2*2個(gè)數(shù)據(jù)求平均,
取樣為一個(gè)數(shù)據(jù).對于V成分,每2*1個(gè)數(shù)據(jù)求平均,取樣為一個(gè)數(shù)據(jù),最后得到2*2個(gè)Y單位
,1*1個(gè)U單位,1*2個(gè)V單位.
這4+1+2個(gè)單位就是最小編碼單位(MCU)
通過部分取樣可以看出,原來3*16*16=768個(gè)像素?cái)?shù)據(jù),變?yōu)?6*16+8*8+8*16=448個(gè),再未
編碼前就有約40%的壓縮比.如果用YUV411則有50%的壓縮比,用YUV422也有33%.理論上講
,如果取YUV911,YUV16 11可以達(dá)到更高的壓縮比,但是這樣圖象品質(zhì)就會(huì)受到影響,因此
JPEG規(guī)定一個(gè)MCU里Unit的個(gè)數(shù)不能大于10
離散余弦變換--DCT(Discrete Consine Transform) 返回JPEG編解碼流程
研究表明:人眼對低頻數(shù)據(jù)比對高頻數(shù)據(jù)有更高的敏感度.人們很早就使用這一特點(diǎn),例如
報(bào)紙上印刷照片是由很多黑色小圓點(diǎn)組成,這些小圓點(diǎn)代表高頻數(shù)據(jù),人眼看上去是一幅
圖象,即低頻數(shù)據(jù).如果我們對圖象的高頻數(shù)據(jù)作些修飾(將小圓點(diǎn)變?yōu)樾》近c(diǎn)),人眼是不
容易辨認(rèn)的(看上去還是原來的圖象).一般圖象(照片)有很大部分信息熵都在高頻區(qū).
DCT的作用即是將一組光強(qiáng)數(shù)據(jù)(Intensity Data)轉(zhuǎn)換為頻率數(shù)據(jù)(Frequency Data),以
便以后流程對高頻數(shù)據(jù)進(jìn)行修飾處理.
由于DCT變換的運(yùn)算量比較大,JPEG將每一個(gè)色彩分量的數(shù)據(jù)分割成8*8的小塊,然后對這
個(gè)8*8矩陣做DCT
原始圖象數(shù)據(jù)Ixy:  變換后DCT系數(shù)Duv:
I00 I01 I02 I03 I04 I05 I06 I07
I10 I11 I12 I13 I14 I15 I16 I17
I20 I21 I22 I23 I24 I25 I26 I27
I30 I31 I32 I33 I34 I35 I36 I37
I40 I41 I42 I43 I44 I45 I46 I47
I50 I51 I52 I53 I54 I55 I56 I57
I60 I61 I62 I63 I64 I65 I66 I67
I70 I71 I72 I73 I74 I75 I76 I77
--FDCT->
<-IDCT-- D00 D01 D02 D03 D04 D05 D06 D07
D10 D11 D12 D13 D14 D15 D16 D17
D20 D21 D22 D23 D24 D25 D26 D27
D30 D31 D32 D33 D34 D35 D36 D37
D40 D41 D42 D43 D44 D45 D46 D47
D50 D51 D52 D53 D54 D55 D56 D57
D60 D61 D62 D63 D64 D65 D66 D67
D70 D71 D72 D73 D74 D75 D76 D77
算法如下:
其中u,v=0時(shí) Cu,Cv=0.70710678(即1/√2) ; u,v為其他值時(shí) Cu,Cv=1.
變換后的系數(shù)D00 JPEG稱為直流系數(shù)(DC),D01-D77稱為交流系數(shù)(AC).系數(shù)矩陣左上為低
頻系數(shù),右下為高頻系數(shù).用浮點(diǎn)運(yùn)算可以達(dá)到很高的精度,不過常用的還是整數(shù)快速算法

量化(Quantization) 返回JPEG編解碼流程
DCT變換后的高頻數(shù)據(jù)由量化來進(jìn)行修飾處理.
將DCT系數(shù)按比例縮小,并取最接近的整數(shù)值的過程稱為量化.將量化后的系數(shù)按比例恢復(fù)
的過程稱為逆量化.
下為示意圖:
通過量化,我們可以丟棄一些不重要的圖象細(xì)節(jié)信息,JPEG的主要壓縮率集中在這個(gè)地方
.量化系數(shù)是在圖象品質(zhì)與壓縮比之間作一個(gè)選擇.量化間隔大,丟棄的信息就多,使得壓
縮比增大,圖象品質(zhì)降低.反之壓縮比減小,圖象品質(zhì)提高.所以選擇一個(gè)好的量化系數(shù)很
重要,JPEG提供的缺省量化表如下:
明視度(Luminance)量化表:  色調(diào)(Chrominance)量化表:
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
  17 18 24 47 99 99 99 99
18 21 26 66 99 99 99 99
24 26 56 99 99 99 99 99
47 66 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
量化系數(shù)矩陣與8*8的DCT系數(shù)矩陣一一對應(yīng).運(yùn)算的時(shí)候直接用DCT系數(shù)除以相對應(yīng)的量
化系數(shù),對得到的數(shù)四舍五入取整.可以看出低頻區(qū)(左上角)的量化系數(shù)明顯比高頻區(qū)(右
下角)的量化系數(shù)小.用該量化表壓縮的圖象,統(tǒng)計(jì)平均人眼觀看質(zhì)量為4.5分(5分為滿分
),壓縮比約為20至30
熵編碼(Entropy Encoding) 返回JPEG編解碼流程
原始圖象數(shù)據(jù)經(jīng)過上面的步驟,其數(shù)據(jù)量已經(jīng)被壓縮了很多,熵編碼使用統(tǒng)計(jì)模型將系數(shù)
作最后的壓縮.主要有兩種方式的編碼:Huffman編碼和算術(shù)編碼.由于專利權(quán)的緣故,大多
數(shù)編碼器都采用Huffman編碼,但是使用算術(shù)編碼壓縮效果要好5%至10%.
在對量化后的系數(shù)矩陣進(jìn)行編碼之前,還有一些預(yù)處理要做:
1.Z形排序(Zig-Zag Order):
Z形編碼入圖所示:
從圖中可以看出,JPEG優(yōu)先對低頻區(qū)的數(shù)據(jù)編碼.這樣做是因?yàn)?
低頻的系數(shù)比高頻的系數(shù)重要的多;而且低頻區(qū)的量化系數(shù)大大小于高頻區(qū)的量化系數(shù),
使得量化后高頻區(qū)大部分?jǐn)?shù)據(jù)為0,從低頻區(qū)開始編碼可以用一個(gè)結(jié)束碼(EOB,End Of Bl
ock)表示以后的高頻數(shù)據(jù)全零.
在后面的例子中,我們可以看出這樣做的好處.
2.差值脈沖編碼調(diào)制(Differential Pulse Code Modulation)DPCM:
JPEG對DC系數(shù)的編碼采取DPCM方式,也就是取該DC系數(shù)與前一個(gè)DC系數(shù)的差值來編碼.
在DCT變換公式中可以看出,DC系數(shù)實(shí)際上是對64個(gè)原始系數(shù)求和平均(D00=[∑Ixy]/8).
在連續(xù)色調(diào)圖象中,色彩變化不是很劇烈,差值一般比原值小,所以對差值編碼所需的數(shù)據(jù)
量會(huì)比原值編碼小很多.

數(shù)據(jù)混合(Data Interleave) 返回JPEG編解碼流程
熵編碼之后的數(shù)據(jù)經(jīng)過混合成為編碼比特流(Coding Bit Stream)
一個(gè)例子(An Example) 返回JPEG編解碼流程
現(xiàn)在我們對一個(gè)高斯脈沖的亮度分量用上面所述流程進(jìn)行編碼,首先做FDCT和量化,過程
如下:
高斯脈沖數(shù)據(jù):  變換后系數(shù):
139 144 149 153 155 155 155 155
144 151 153 156 159 156 156 156
150 155 160 163 158 156 156 156
159 161 162 160 160 159 159 159
159 160 161 162 162 155 155 155
161 161 161 161 160 157 157 157
162 162 161 163 162 157 157 157
162 162 161 161 163 158 158 158
-128
--->
FDCT 235 -1 -12 -5 2 -1 -2 1
-22 -17 -6 -3 -2 0 0 -1
-10 -9 -1 1 0 0 0 0
-7 -1 0 1 0 0 0 0
0 0 1 1 0 0 0 1
1 0 1 0 0 1 1 -1
-1 0 0 1 0 1 1 0
-2 1 -3 -1 1 1 0 0
量化表:  量化↓
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
--> 15 0 -1 0 0 0 0 0
-2 -1 0 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
0 0 0 0 0 0 0 0
我們假設(shè)上一個(gè)DCT的DC系數(shù)為20,則經(jīng)過預(yù)處理(ZigZag,DPCM)后,系數(shù)排列為-5,0,-2,
-1,-1,-1,0,0,-1,在這個(gè)地方,可以看出后面的系數(shù)全部為零,JPEG定義了一個(gè)塊結(jié)束標(biāo)
記(EOB)來表示后面的數(shù)據(jù)全是零.
重建過程如下:
量化表:  解碼后系數(shù):
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
---> 15 0 -1 0 0 0 0 0
-2 -1 0 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
0 0 0 0 0 0 0 0
重建圖象數(shù)據(jù):  反量化↓
144 146 149 152 154 156 156 156
148 150 152 154 156 156 156 156
155 156 157 158 158 157 156 155
160 161 161 162 161 159 157 155
163 163 164 163 162 160 158 156
163 164 164 164 162 160 158 157
160 161 162 162 162 161 159 158
158 159 161 161 162 161 159 158
IDCT
<---
+128 240 0 -10 0 0 0 0 0
-24 -12 0 0 0 0 0 0
-14 -13 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
0 0 0 0 0 0 0 0


本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/dd167/archive/2006/02/15/599718.aspx

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多