JPEG圖像壓縮算法流程

1.顏色模式轉(zhuǎn)換

Y?=?0.299R+0.587G+0.114B

Cb?=?-0.1687R-0.3313G+0.5B+128

Cr?=?0.5R=0.418G-0.0813B+128

一般來(lái)說(shuō)辛萍,C?值?(包括?Cb?Cr)?應(yīng)該是一個(gè)有符號(hào)的數(shù)字,?但這里通過(guò)加上128,使其變?yōu)?位的無(wú)符號(hào)整數(shù)导而,從而方便數(shù)據(jù)的存儲(chǔ)和計(jì)算源内。

R?=?Y+1.402(Cr-128)

G?=?Y-0.34414(Cb-128)-0.71414(Cr-128)

B?=?Y+1.772(Cb-128)

“色差”這個(gè)概念起源于電視行業(yè)捌治,最早的電視都是黑白的,那時(shí)候傳輸電視信號(hào)只需要傳輸亮度信號(hào),也就是Y信號(hào)即可束世,彩色電視出現(xiàn)之后憨栽,人們?cè)赮信號(hào)之外增加了兩條色差信號(hào)以傳輸顏色信息帜矾,這么做的目的是為了兼容黑白電視機(jī),因?yàn)楹诎纂娨曋恍枰幚硇盘?hào)中的Y信號(hào)即可屑柔。

對(duì)于人眼來(lái)說(shuō)屡萤,圖像中明暗的變化更容易被感知到,這是由于人眼的構(gòu)造引起的掸宛。視網(wǎng)膜上有兩種感光細(xì)胞死陆,能夠感知亮度變化的視桿細(xì)胞,以及能夠感知顏色的視錐細(xì)胞唧瘾,由于視桿細(xì)胞在數(shù)量上遠(yuǎn)大于視錐細(xì)胞措译,所以我們更容易感知到明暗細(xì)節(jié)。

2.采樣(YCrCb YUV411 YUV422)

3.分塊(8 * 8)

JPEG?編碼是以每8x8個(gè)點(diǎn)為一個(gè)單位進(jìn)行處理的.?所以如果原始圖片的長(zhǎng)寬不是?8?的倍數(shù),?都需要先補(bǔ)成8的倍數(shù),?使其可以進(jìn)行一塊塊的處理饰序。將原始圖像數(shù)據(jù)分為8*8的數(shù)據(jù)單元矩陣之后领虹,還必須將每個(gè)數(shù)值減去128,然后一一帶入DCT變換公式求豫,即可達(dá)到DCT變換的目的塌衰。圖像的數(shù)據(jù)值必須減去128,是因?yàn)镈CT公式所接受的數(shù)字范圍是-128到127之間蝠嘉。

4.離散余弦變換(DCT)

F(n)?=?C(n)*E(n),這里最疆,E(n)是一個(gè)基底,C(n)是DCT系數(shù)蚤告,F(xiàn)(n)則是圖像信號(hào)肚菠;如果考慮垂直方向的變化,那就需要一個(gè)二維的基底罩缴。

5.量化

前面的變換都是可逆的蚊逢,也就是數(shù)據(jù)的信息并沒(méi)有丟失。

數(shù)據(jù)的大部分壓縮都是在量化這里箫章,有時(shí)候保存圖片的時(shí)候軟件會(huì)提示你選擇保存的精度烙荷,其實(shí)就是改變量化的程度,或者改變量化系數(shù)矩陣乘的倍數(shù)檬寂。

由于對(duì)亮度和色度的精度要求不同终抽,分別對(duì)亮度和色度采用不同的量化表。前者細(xì)量化,后者粗量化

6.ZigZag掃描排序

矩陣的量化還有最后一步要做昼伴,就是把量化后的二維矩陣轉(zhuǎn)變成一個(gè)一維數(shù)組匾旭,以方便后面的霍夫曼壓縮,但在做這個(gè)順序轉(zhuǎn)換時(shí)圃郊,需要按照一個(gè)特定的取值順序价涝。?這么做的目的只有一個(gè),就是盡可能把0放在一起持舆,由于0大部分集中在右下角色瘩,所以才去這種由左上角到右下角的順序,經(jīng)過(guò)這種順序變換逸寓,最終矩陣變成一個(gè)整數(shù)數(shù)組

7.DC系數(shù)的差分脈沖調(diào)制編碼

8*8的圖像塊經(jīng)過(guò)DCT變換之后得到的DC系數(shù)有兩個(gè)特點(diǎn):

(1)系數(shù)的數(shù)值比較大居兆;

(2)相鄰的8*8圖像塊的DC系數(shù)值變化不大;

根據(jù)這兩個(gè)特點(diǎn)竹伸,DC系數(shù)一般采用差分脈沖調(diào)制編碼DPCM(Difference?Pulse?Code?Modulation)泥栖,即:取同一個(gè)圖像分量中每個(gè)DC值與前一個(gè)DC值的差值來(lái)進(jìn)行編碼。對(duì)差值進(jìn)行編碼所需要的位數(shù)會(huì)比對(duì)原值進(jìn)行編碼所需要的位數(shù)少了很多勋篓。假設(shè)某一個(gè)8*8圖像塊的DC系數(shù)值為15吧享,而上一個(gè)8*8圖像塊的DC系數(shù)為12,則兩者之間的差值為3生巡。

8.DC系數(shù)的中間格式計(jì)算

JPEG中為了更進(jìn)一步節(jié)約空間,并不直接保存數(shù)據(jù)的具體數(shù)值见妒,而是將數(shù)據(jù)按照位數(shù)分為16組孤荣,保存在表里面

9.AC系數(shù)的行程長(zhǎng)度編碼(Run Length Encoding)

量化之后的AC系數(shù)的特點(diǎn)是,63個(gè)系數(shù)中含有很多值為0的系數(shù)须揣。因此盐股,可以采用行程編碼RLE(Run?Length?Encoding)來(lái)更進(jìn)一步降低數(shù)據(jù)的傳輸量。利用該編碼方式耻卡,可以將一個(gè)字符串中重復(fù)出現(xiàn)的連續(xù)字符用兩個(gè)字節(jié)來(lái)代替疯汁,其中,第一個(gè)字節(jié)代表重復(fù)的次數(shù)卵酪,第二個(gè)字節(jié)代表被重復(fù)的字符串幌蚊。例如,(4,6)就代表字符串“6666”溃卡。但是溢豆,在JPEG編碼中,RLC的含義就同其原有的意義略有不同瘸羡。在JPEG編碼中漩仙,假設(shè)RLC編碼之后得到了一個(gè)(M,N)的數(shù)據(jù)對(duì),其中M是兩個(gè)非零AC系數(shù)之間連續(xù)的0的個(gè)數(shù)(即,行程長(zhǎng)度)队他,N是下一個(gè)非零的AC系數(shù)的值卷仑。采用這樣的方式進(jìn)行表示,是因?yàn)锳C系數(shù)當(dāng)中有大量的0麸折,而采用Zigzag掃描也會(huì)使得AC系數(shù)中有很多連續(xù)的0的存在锡凝,如此一來(lái),便非常適合于用RLC進(jìn)行編碼磕谅。

10.AC系數(shù)的中間格式計(jì)算

11.熵編碼(哈夫曼編碼或者算術(shù)編碼)

哈弗曼幾乎是所有壓縮算法的基礎(chǔ)私爷,它的基本原理是根據(jù)元素的使用頻率,調(diào)整元素的編碼長(zhǎng)度膊夹,以獲得更高的壓縮比衬浑。

Huffman編碼時(shí)DC系數(shù)與AC系數(shù)分別采用不同的Huffman編碼表,對(duì)于亮度和色度也采用不同的Huffman編碼表放刨。因此工秩,需要4張Huffman編碼表才能完成熵編碼的工作。具體的Huffman編碼采用查表的方式來(lái)高效地完成进统。然而助币,在JPEG標(biāo)準(zhǔn)中沒(méi)有定義缺省的Huffman表,用戶可以根據(jù)實(shí)際應(yīng)用自由選擇螟碎,也可以使用JPEG標(biāo)準(zhǔn)推薦的Huffman表眉菱。或者預(yù)先定義一個(gè)通用的Huffman表掉分,也可以針對(duì)一副特定的圖像俭缓,在壓縮編碼前通過(guò)搜集其統(tǒng)計(jì)特征來(lái)計(jì)算Huffman表的值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酥郭,一起剝皮案震驚了整個(gè)濱河市华坦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌不从,老刑警劉巖惜姐,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異椿息,居然都是意外死亡歹袁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)寝优,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宇攻,“玉大人,你說(shuō)我怎么就攤上這事倡勇〕阉ⅲ” “怎么了嘉涌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)夸浅。 經(jīng)常有香客問(wèn)我仑最,道長(zhǎng),這世上最難降的妖魔是什么帆喇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任警医,我火速辦了婚禮,結(jié)果婚禮上坯钦,老公的妹妹穿的比我還像新娘预皇。我一直安慰自己,他們只是感情好婉刀,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布吟温。 她就那樣靜靜地躺著,像睡著了一般突颊。 火紅的嫁衣襯著肌膚如雪鲁豪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天律秃,我揣著相機(jī)與錄音爬橡,去河邊找鬼。 笑死棒动,一個(gè)胖子當(dāng)著我的面吹牛糙申,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播船惨,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼柜裸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掷漱?” 一聲冷哼從身側(cè)響起粘室,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤榄檬,失蹤者是張志新(化名)和其女友劉穎卜范,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鹿榜,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡海雪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舱殿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奥裸。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沪袭,靈堂內(nèi)的尸體忽然破棺而出湾宙,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布侠鳄,位于F島的核電站埠啃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伟恶。R本人自食惡果不足惜碴开,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望博秫。 院中可真熱鬧潦牛,春花似錦、人聲如沸挡育。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)静盅。三九已至良价,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒿叠,已是汗流浹背明垢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留市咽,地道東北人痊银。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像施绎,于是被迫代替她去往敵國(guó)和親溯革。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • JPEG文件的存儲(chǔ)格式有很多種谷醉,但最常用的是JFIF格式致稀,即JPEG File Interchange Forma...
    hehtao閱讀 9,209評(píng)論 1 7
  • 版本記錄 前言 只要是做圖片的或者與圖片相關(guān)的遇八,那么圖片的格式就是一個(gè)不可以繞過(guò)的問(wèn)題矛绘,我們見(jiàn)過(guò)很多的圖片格式,但...
    刀客傳奇閱讀 14,332評(píng)論 0 5
  • 姓名:李偉 學(xué)號(hào):17101223393 【嵌牛導(dǎo)讀】:大家對(duì)JPEG了解嗎刃永?今天和大家分享一下货矮。 【嵌牛鼻子...
    LW_e565閱讀 2,924評(píng)論 0 1
  • 最近在看圖像的壓縮,就想著先實(shí)現(xiàn)一個(gè)jpeg文件的解碼斯够。本來(lái)以為這種資料在網(wǎng)上會(huì)一搜一大堆囚玫,但搜了之后才發(fā)現(xiàn)很多網(wǎng)...
    月夢(mèng)書(shū)閱讀 10,731評(píng)論 6 14
  • 最近幾天天氣非常炎熱喧锦,我抽空畫(huà)了一組綠植。分享出來(lái)抓督,愿給大家?guī)?lái)絲絲涼意裸违。前面的幾篇已經(jīng)介紹過(guò)水彩的簡(jiǎn)單畫(huà)法了,今...
    林逸葵閱讀 1,462評(píng)論 23 37