• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      快速分塊JPEG圖片的方法

      2014-09-04 09:11:35董友球谷新征劉先材
      關(guān)鍵詞:分塊解碼分量

      董友球 谷新征 劉先材

      (廣東威創(chuàng)視訊科技股份有限公司 廣東廣州 510663)

      快速分塊JPEG圖片的方法

      董友球 谷新征 劉先材

      (廣東威創(chuàng)視訊科技股份有限公司 廣東廣州 510663)

      本文提出一種分塊JPEG圖片的方法,即先加載需被分塊的JPEG圖片,然后對圖片的壓縮數(shù)據(jù)進(jìn)行熵解碼,從而得到每個MCU的數(shù)據(jù)內(nèi)容,再根據(jù)分塊的要求為每個小塊選擇對應(yīng)的MCU數(shù)據(jù)組成一個數(shù)據(jù)集合,并對集合里的數(shù)據(jù)做必要的修正即可得到每個小塊圖片的MCU數(shù)據(jù),最后把每個小塊的MCU數(shù)據(jù)和熵編碼表、量化表等必要信息一起按JPEG文件格式寫入文件從而得到小塊的JPEG圖片。此方法對在分塊過程中只進(jìn)行了熵解碼,沒有做完整的解碼和重新編碼過程,提高了分塊的效率,并且不會引起圖像質(zhì)量的下降。

      JPEG,圖像處理,圖片分塊

      JPEG圖片是一種常見的圖片格式,在現(xiàn)實(shí)中有著廣泛的應(yīng)用,相應(yīng)地也有對其進(jìn)行處理的需求,例如在分布式的大屏拼接系統(tǒng)中需要對超高分辨率的JPEG圖片進(jìn)行分塊然后交給各個顯示節(jié)點(diǎn)進(jìn)行解碼顯示。

      現(xiàn)實(shí)應(yīng)用中多數(shù)的分塊處理都是針對類似BMP這種圖像像素?cái)?shù)據(jù)按物理位置排列的圖像格式,分塊時可直接根據(jù)區(qū)域信息獲取圖像像素?cái)?shù)據(jù)值,文獻(xiàn)[1]和[2]都是處理這種情況的。JPEG圖片對原始圖像數(shù)據(jù)進(jìn)行了較高比例的壓縮,但是壓縮時是打亂了各像素?cái)?shù)據(jù)的排列順序的,所以無法像對類似BMP這種圖片格式直接進(jìn)行分塊處理,目前常用的是文獻(xiàn)[3]中所采用的方法,先將JPEG圖片解碼,再分塊,最后再編碼,從而得到分塊后的小塊JPEG圖片。但是,由于這種方法進(jìn)行了完整的JPEG圖片解碼和重新編碼的過程,效率非常低下,并且由于JPEG的壓縮過程是有損的,這樣的解碼再編碼處理會導(dǎo)致圖像質(zhì)量的下降。

      針對上述問題,本文提出一種分塊JPEG圖片的處理方法,既大幅提高了分塊的效率,又不會造成圖像質(zhì)量的損失。

      1 JPEG技術(shù)介紹

      JPEG專家組開發(fā)了兩套算法,一套是基于DCT變換的有損壓縮算法,另一套是基于預(yù)測技術(shù)的無損壓縮算法。其中,基于DCT變換的有損壓縮算法被廣泛使用,本文所討論的分塊JPEG方法也是針對基于此算法的JPEG圖片的。

      1.1 JPEG壓縮方法

      原始的圖像數(shù)據(jù)一般是采用RGB、YUV等顏色模型來描述的,這種描述方式中每個點(diǎn)都可以找到一組對應(yīng)的顏色分量值。但這雖然簡單,卻由于數(shù)據(jù)量龐大而不易于存儲和傳輸,所以需要對其進(jìn)行壓縮,壓縮的具體步驟如下:

      進(jìn)行顏色空間轉(zhuǎn)換。由于JPEG使用的是YUV顏色模型,所以需要對于其它類似采用RGB顏色模型的數(shù)據(jù)需進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換過程其實(shí)是一個矩陣變換的過程。

      (1)確定最小處理單元(即MCU)。每個MCU包含(Hmax*8)x(Vmax*8)個點(diǎn)的圖像信息,其中Hmax和Vmax分別是橫向和縱向的最大采樣系數(shù)。例如Hmax和Vmax都為1的話,那么一個MCU包含YDU(亮度分量數(shù)據(jù)單元)、CrDU(Cr分量數(shù)據(jù)單元)、CbDu(Cb分量數(shù)據(jù)單元)各一個,每個DU包含8x8圖像塊的信息。

      (2)對每個MCU的每個分量DU數(shù)據(jù)進(jìn)行FDCT變換。FDCT變換實(shí)現(xiàn)圖像數(shù)據(jù)從空間域到頻率域的變換。

      (3)對FDCT變換的結(jié)果進(jìn)行重排列。這是為了后續(xù)的量化和壓縮而服務(wù)的。

      (4)量化處理。FDCT變換后主要能量集中在左上角,其中最左的一個值叫做直流分量,其它63個為交流分量,交流分量離左上角越遠(yuǎn)的地方值越小,經(jīng)過量化后會出現(xiàn)大量的0。

      (5)對直流和交流分量的數(shù)據(jù)進(jìn)行編碼。其中直流分量進(jìn)行差分編碼和熵編碼,對交流分量進(jìn)行游程編碼(RLE)和熵編碼。

      上述步驟可用圖1[4]來描述。

      圖1 JPEG壓縮過程圖

      1.2 JPEG解壓縮方法

      JPEG解壓縮過程剛好與壓縮過程相反,在此不做詳述,只用圖2[4]進(jìn)行描述。

      圖2 JPEG解壓縮過程圖

      2 快速分塊JPEG的方法

      一般的JPEG分塊方法先對JPEG圖像進(jìn)行解壓縮,得到RGB/YUV數(shù)據(jù),然后對RGB/YUV數(shù)據(jù)進(jìn)行分塊,再對每個小塊的數(shù)據(jù)進(jìn)行JPEG壓縮[3]。根據(jù)JPEG算法的原理,這個過程需要進(jìn)行FDCT和IDCT,而這兩個過程是比較耗時的,另外由于經(jīng)過重新編碼的處理,導(dǎo)致了圖像質(zhì)量的下降。

      為了提高分塊的效率,并且避免處理過程中產(chǎn)生圖像質(zhì)量的下降,本文提出一種快速分塊JPEG圖片的方法,如圖3所示,具體包含以下步驟:

      (1)加載被分塊的JPEG圖片,讀取圖像的壓縮數(shù)據(jù)和解碼必需的圖片信息。所述解碼必需的圖片信息具體包括熵編碼表、量化表、采樣系數(shù)以及圖片的寬、高等信息。

      (2)對圖片壓縮數(shù)據(jù)進(jìn)行熵解碼,得出每個MCU的組成數(shù)據(jù)。所述MCU的組成數(shù)據(jù)包括各顏色分量的交流分量熵解碼前的全部編碼數(shù)據(jù)以及直流分量值。

      (3)根據(jù)分塊的要求為每個小塊選擇對應(yīng)的MCU數(shù)據(jù)集合。雖然JPEG中像素點(diǎn)的數(shù)據(jù)已經(jīng)沒有了物理位置排列規(guī)律,但MCU的位置還是按物理位置排列的。舉例來說,如圖4所示的JPEG圖片由8個MCU組成,每個MCU包含了對應(yīng)位置圖像區(qū)域內(nèi)像素的數(shù)據(jù),假設(shè)要對它進(jìn)行一行兩列的分塊處理(如圖中虛線所示),那么左邊的小塊圖片將包含MCU1、MCU2、MCU5、MCU6的數(shù)據(jù),而右邊的小塊圖片將包含MCU3、MCU4、MCU7、MCU8的數(shù)據(jù)。

      圖3 JPEG分塊處理流程圖

      (4)對(3)中得到的MCU數(shù)據(jù)集合中的直流分量數(shù)據(jù)進(jìn)行修正處理。從JPEG算法的原理我們知道,直流分量采用的是差分編碼,以圖4中的MCU5為例,它在原始圖片中的直流分量值實(shí)際保存的是MCU5與MCU4之間的差值,而在分塊后的小圖片中,則應(yīng)該修改為MCU5與MCU2之間的差值。而MCU2由于參考關(guān)系在分塊前后沒有發(fā)生變化,所以它的數(shù)據(jù)不需要修正。是否要修正需要判斷分塊前后MCU的參考關(guān)系有沒有發(fā)生變化,有則需要修正。

      圖4 JPEG圖片MCU結(jié)構(gòu)示意圖

      (5)將每個小塊對應(yīng)的MCU數(shù)據(jù)集合的數(shù)據(jù)和加載原始圖片時得到熵編碼表、量化表等信息按照J(rèn)PEG圖片格式寫入到文件[5],從而得到分塊后的圖片文件(見圖5)。其中,由于分塊后圖像的寬和高發(fā)生了變化,因此小塊圖片的寬高值應(yīng)做相應(yīng)的更新(JPEG圖片的寬高信息保存在文件中的SOF0段)。

      圖5 圖片分塊示意圖

      上述5個步驟描述了本文所述的快速分塊JPEG圖片的基本過程。但此方法有一個局限性,就是要求選擇的分塊位置剛好就是在MCU的分界處,但實(shí)際情況下有可能出現(xiàn)如圖5所示的分塊位置不在分界線上的情況(其中虛線為分塊邊界線)。這時對于左邊的小圖像塊還好處理,只需要仍按上面步驟四的方法來處理,只是在步驟(5)的時候修改分塊后的圖片的寬度時按照虛線來計(jì)算即可。而對于右邊的那一小塊,則需在處理時將圖像區(qū)域擴(kuò)展到MCU2和MCU6,并且在分塊后的JPEG圖片文件中將實(shí)際有效區(qū)域信息存入到一個未使用的APP段,后續(xù)對圖片進(jìn)行顯示或其它處理時再取出實(shí)際有效區(qū)域信息做相應(yīng)的處理。

      3 實(shí)驗(yàn)結(jié)果

      為了驗(yàn)證本文所述方法的有效性,編寫了兩個程序,一個以本文所述方法對JPEG圖片進(jìn)行分塊,而另一個利用IJG的libjpeg庫實(shí)現(xiàn)了文獻(xiàn)[3]所述方法,將JPEG圖片先解壓成YUV格式后再分塊壓縮成小像素的JPEG圖片。被分塊的圖片是一個分辨率為8192x2304的超高分圖片。實(shí)驗(yàn)的具體結(jié)果如表1所示。

      表1 實(shí)驗(yàn)結(jié)果對比

      4 結(jié)論

      從實(shí)驗(yàn)結(jié)果可以看出,本文所述方法在不損失圖像質(zhì)量的同時,大大提高了分塊的效率,約只有對比方法所耗時間的16%左右,非常適合需要快速處理超高分辨率圖片的場合,例如分布式的大屏拼接系統(tǒng)。

      [1]陳國軍,葉飛躍.大幅圖像的分塊細(xì)化加速算法[J].計(jì)算機(jī)工程及應(yīng)用,2001,37(23):101.

      [2]喬哲,姚行中,徐俊. 基于VC++的BMP圖像分塊[J]. 中國水運(yùn)(理論版),2008,6(1):214

      [3]朱亞奇,劉維亭.基于Windows CE下大像素圖像分塊顯示算法的研究[J].科學(xué)技術(shù)與工程,2008,8(15):4170.

      [4]Gregory K Wallace. The JPEG still picture compression standard [J]. Comman ACM,1991,66(3):11.

      [5]邱磊. JPEG算法研究及實(shí)現(xiàn)[J].計(jì)算機(jī)時代,2009,27(9):52

      (責(zé)任編輯李平)

      2014-5-7

      董友球, wyudyq@163.com。

      TN 919.81

      A

      1674-9545(2014)03-0049-(04)

      猜你喜歡
      分塊解碼分量
      《解碼萬噸站》
      帽子的分量
      分塊矩陣在線性代數(shù)中的應(yīng)用
      解碼eUCP2.0
      中國外匯(2019年19期)2019-11-26 00:57:32
      一物千斤
      智族GQ(2019年9期)2019-10-28 08:16:21
      NAD C368解碼/放大器一體機(jī)
      Quad(國都)Vena解碼/放大器一體機(jī)
      論《哈姆雷特》中良心的分量
      分量
      反三角分塊矩陣Drazin逆新的表示
      汨罗市| 三都| 梁河县| 通化县| 黄山市| 德江县| 清河县| 永清县| 全州县| 纳雍县| 交口县| 宝兴县| 靖西县| 三门峡市| 合水县| 松溪县| 右玉县| 丹巴县| 瓦房店市| 舟曲县| 万山特区| 铜鼓县| 松原市| 巴林左旗| 万安县| 剑河县| 德令哈市| 丰县| 淅川县| 松潘县| 赫章县| 金沙县| 南康市| 义马市| 昭通市| 肥西县| 曲沃县| 长葛市| 济阳县| 汶川县| 黎城县|