• 
    

    
    

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

      ?

      基于FPGA的JPEG編碼器設(shè)計(jì)

      2016-10-20 11:36:37陳雙燕
      裝備制造技術(shù) 2016年8期
      關(guān)鍵詞:編碼器亮度分量

      陳雙燕

      (閩南理工學(xué)院電子與電氣工程學(xué)院,福建石獅362700)

      基于FPGA的JPEG編碼器設(shè)計(jì)

      陳雙燕

      (閩南理工學(xué)院電子與電氣工程學(xué)院,福建石獅362700)

      討論了基于FPGA的JPEG編碼器的設(shè)計(jì)原理,完成了各模塊的設(shè)計(jì),并在ModelSim平臺(tái)上對(duì)代碼進(jìn)行了仿真,實(shí)現(xiàn)了圖片的JPEG編碼,最后在Quartus II平臺(tái)上進(jìn)行綜合。仿真結(jié)果表明該設(shè)計(jì)方案能較好地實(shí)現(xiàn)圖像壓縮。

      FPGA;JPEG編碼器;2D-DCT

      JPEG圖像壓縮技術(shù),可以在不顯著影響圖片質(zhì)量的前提下,減少圖像的存儲(chǔ)空間[1]。較之于相同圖像質(zhì)量的GIF、TIFF、PCX等圖像文件格式,JPEG是壓縮比最高的[2]。以JPEG壓縮算法為核心的圖像壓縮芯片可以應(yīng)用于數(shù)碼相機(jī)、掃描儀、衛(wèi)星通信中,具有良好的應(yīng)用前景。由于FPGA具備現(xiàn)場(chǎng)可編程特性,用FPGA實(shí)現(xiàn)JPEG編碼器,可縮短設(shè)計(jì)時(shí)間,實(shí)現(xiàn)實(shí)時(shí)信號(hào)處理[3]。

      1 JPEG編碼系統(tǒng)總體方案

      JPEG編碼系統(tǒng)由原始圖像數(shù)據(jù)預(yù)處理、色度空間變換、二維離散余弦變換(2D-DCT)模塊、量化模塊和編碼模塊組成,如圖1所示。其中原始圖像數(shù)據(jù)預(yù)處理是在Maltab平臺(tái)上完成的,JPEG編碼器是用FPGA實(shí)現(xiàn)的,采用Verilog HDL硬件描述語言進(jìn)行設(shè)計(jì),并在ModelSim平臺(tái)上進(jìn)行仿真測(cè)試,在Quartus II平臺(tái)上進(jìn)行設(shè)計(jì)的綜合。

      圖1 JPEG編碼系統(tǒng)框圖

      2 JPEG編碼器各模塊設(shè)計(jì)

      2.1色度空間變換模塊

      彩色圖像的每個(gè)象素點(diǎn)一般具有RGB三個(gè)色彩分量。由于人眼對(duì)亮度變化比色彩變化更敏感,因此要進(jìn)行色度空間變換,將RGB信號(hào)變換為亮度和色差信號(hào)YCbCr(Y為亮度分量,Cb為藍(lán)色色度分量,Cr為紅色色度分量)。轉(zhuǎn)換公式如公式(1)所示。

      由于在運(yùn)算過程中包含小數(shù),為避免不必要的FPGA資源浪費(fèi)并提升運(yùn)算速度,進(jìn)行代碼設(shè)計(jì)時(shí),將系數(shù)乘以214,得到運(yùn)算結(jié)果后,再將Y、Cb、Cr的值右移14位,輸出到二維離散余弦變換模塊。

      2.2二維離散余弦變換模塊

      離散余弦變換能極大地去除圖像元素在變換域中的相關(guān)性,為高效率的圖像壓縮奠定基礎(chǔ)。設(shè)X(m,n)為二維圖像信號(hào)數(shù)據(jù)矩陣,m、n為象素空間坐標(biāo),則其2D-DCT定義為[4]:

      其中,M、N為圖像子塊的大小,對(duì)于8×8的圖像子塊,則M=8,N=8;u、v為象素頻域坐標(biāo),u=0,1,…,N-1;v=0,1,…,M-1.

      C(u)和C(v)為正交化因子,其是為了保證交換基的規(guī)范正交性而引入的,

      在進(jìn)行2D-DCT模塊的FPGA設(shè)計(jì)時(shí),以亮度分量Y為例,利用公式(3)進(jìn)行2D-DCT.

      其中,T是DCT系數(shù)矩陣;inv(T)是T的轉(zhuǎn)置矩陣;Y是8×8圖像子塊的亮度分量矩陣;DY是經(jīng)過2D-DCT運(yùn)算后的結(jié)果。

      由于T矩陣都是小數(shù),為了避免浮點(diǎn)數(shù)的復(fù)雜運(yùn)算,因此將T矩陣的值乘以214,然后將T與Y矩陣相乘。在計(jì)算DCT之前,一般要把輸入圖像的象素值減去128,令其取值范圍從[0,255]移到[-128,127]。本次設(shè)計(jì)未將Y、Cb、Cr的值減去128。T矩陣的第一行系數(shù)都是0.3536,乘以214后是5793,最后將DY的第一行(即T矩陣的第一行與Y矩陣的8列相乘后的結(jié)果)減去5932032(128×8×5793)。由于T矩陣除了第一行外的其余七行的系數(shù)都具有具有對(duì)稱性,每一行加起來之和為0,因此不需要減去5932032。因此,原本需要64次減法,就可以減為8次減法運(yùn)算。

      2.3量化模塊

      2D-DCT后的Y、Cb、Cr的值可用8×8的量化表進(jìn)行均勻量化,量化表中的每個(gè)元素是1到255之間的整數(shù),表示對(duì)應(yīng)的量化步長。量化是有損壓縮,用戶可以修改量化表來控制壓縮質(zhì)量,以亮度分量Y為例,其按公式(4)進(jìn)行量化,Q(u,v)為亮度量化表。

      通常亮度分量和色差分量各有一張量化表,如圖2所示[2],而且對(duì)色差分量的將忽略更多的高頻成分。如果把圖2中的量化步長除以2,那么圖像質(zhì)量就接近完美了。

      圖2 常用的亮度和色度量化表

      為了驗(yàn)證該壓縮編碼器的性能,本次設(shè)計(jì)還采用了最低量化步長的量化表,即量化表中的元素全是1。

      2.4熵編碼模塊

      JPEG壓縮的最后一步是對(duì)量化后的系數(shù)進(jìn)行熵編碼。這一步采用通用的無損數(shù)據(jù)壓縮技術(shù),對(duì)圖像質(zhì)量沒有影響。

      由于2D-DCT后低頻系數(shù)集中在8×8矩陣的左上角,因此在進(jìn)行熵編碼之前,先采用“Z”字型掃描,將8×8矩陣變?yōu)橐痪S數(shù)組,令低頻系數(shù)在前,高頻系數(shù)在后。因?yàn)楦哳l系數(shù)中有很多“0”,為了節(jié)約空間,所以交流系數(shù)的“中間符號(hào)”用零行程碼(Zero Run Length)表示。本次設(shè)計(jì)采用霍夫曼編碼來減少熵[5-6]。

      3 JPEG編碼器的仿真驗(yàn)證

      3.1原始圖像數(shù)據(jù)預(yù)處理

      選取一幅閩南理工學(xué)院圖書館的原始照片library.bmp(大小為91KB,尺寸為176×176象素),在Matlab平臺(tái)中,將照片劃分為8×8子塊,再逐行逐列讀取圖像子塊的RGB三個(gè)分量,每個(gè)分量是8bit,因此每個(gè)象素為24bit,以十六進(jìn)制按順序存儲(chǔ)在library.mif文件中,如圖3所示。library.mif文件開頭說明了存儲(chǔ)的數(shù)據(jù)個(gè)數(shù)、每個(gè)數(shù)據(jù)的寬度、存儲(chǔ)地址和數(shù)據(jù)的進(jìn)制格式。接著是圖像數(shù)據(jù),每一行是一個(gè)像素的RGB數(shù)據(jù)。

      圖3 原始圖像數(shù)據(jù)

      在Quartus II平臺(tái)上生成一個(gè)ROM存儲(chǔ)器(bmprom.v),存儲(chǔ)空間為32768個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)24位。在bmprom.v中,在altsyncram_component.init_file這一項(xiàng)中進(jìn)行l(wèi)ibrary.mif文件路徑的設(shè)置,將library. mif導(dǎo)入存儲(chǔ)器。

      3.2 JPEG編碼過程

      JPEG編碼器頂層模塊(jpeg_top)包括jpeg_datain、bmprom、RGB2YCbCr、yd_q_h、cbd_q_h和crd_q_h幾個(gè)模塊,如圖4所示。

      圖4 JPEG編碼器的FPGA框圖

      由jpeg_datain模塊產(chǎn)生讀使能信號(hào)和地址信號(hào)進(jìn)行bmprom數(shù)據(jù)的讀取。讀取規(guī)則如下:以64個(gè)圖像數(shù)據(jù)為一組,當(dāng)讀到每組的最后一個(gè)數(shù)據(jù)時(shí),令flag=1,接著等待16個(gè)系統(tǒng)時(shí)鐘(等這一組的數(shù)據(jù)編碼完成)后,令flag=0,再讀取下一組64個(gè)圖像數(shù)據(jù)。當(dāng)將要讀到最后一組圖像數(shù)據(jù)時(shí),令數(shù)據(jù)結(jié)束信號(hào)end_of_file_signal=1。

      RGB2YCBCR模塊負(fù)責(zé)圖像數(shù)據(jù)的色度空間變換,yd_q_h、cbd_q_h和crd_q_h分別是Y、Cb、Cr分量的2D-DCT變換、量化、編碼模塊。

      編碼結(jié)果存放在JPEG_bitstream中,當(dāng)數(shù)據(jù)有效信號(hào)data_ready為高電平時(shí),JPEG_bitstream輸出數(shù)據(jù)有效。JPEG_bitstream[31:24]是第一個(gè)編碼后的數(shù)據(jù),其次是JPEG_bitstream[23:16],接著是JPEG_bitstream[15:8],最后一個(gè)數(shù)據(jù)是JPEG_bitstream[7:0]。

      3.3 JPEG編碼結(jié)果

      在代碼測(cè)試文件中,將JPEG編碼結(jié)果按順序以十六進(jìn)制存放在lib.txt中,每8位數(shù)據(jù)空一個(gè)空格。為驗(yàn)證編碼結(jié)果是否正確,將JPEG編碼器輸出的數(shù)據(jù)加上JPEG表頭和結(jié)尾(FF D9),另存為.jpg文件。圖5(a)為原始圖像;圖5(b)為采用最小量化步長(量化表的值都為1)得到的壓縮圖像,壓縮后的圖像大小為原始圖像的56%;圖5(c)為采用圖2所示的量化表得到的壓縮圖像,壓縮后的圖像大小為原始圖像的7.59%.

      (續(xù)下圖)

      圖5 JPEG編碼結(jié)果

      3.4設(shè)計(jì)綜合結(jié)果

      在Quartus II平臺(tái)上進(jìn)行了設(shè)計(jì)的綜合,采用圖2所示的量化表綜合的結(jié)果如圖6所示。

      圖6 JPEG編碼器綜合結(jié)果

      4 結(jié)束語

      本文詳細(xì)闡述了基于FPGA設(shè)計(jì)的JPEG編碼器,并在2D-DCT環(huán)節(jié)進(jìn)行了優(yōu)化運(yùn)算,最后實(shí)現(xiàn)了圖像的壓縮,正常情況下,壓縮后的圖像大小為原始圖像下的7.59%,并且在Quartus II平臺(tái)上進(jìn)行了設(shè)計(jì)的綜合。

      [1]龍燕,何東健,宋懷波.基于GAP-RBF神經(jīng)網(wǎng)絡(luò)的JPEG編碼圖像質(zhì)量評(píng)價(jià)[J].小型微型計(jì)算機(jī)系統(tǒng),2013,(1):185-188.

      [2]王艷.基于FPGA的JPEG硬件解碼器設(shè)計(jì)及實(shí)現(xiàn)[D].重慶:重慶大學(xué),2011.

      [3]徐潔.基于FPGA的JPEG圖像壓縮系統(tǒng)的實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.

      [4]云鵬.基于FPGA的圖像采集與JPEG壓縮編碼的研究[D].呼和浩特:內(nèi)蒙古大學(xué),2010.

      [5]馬劍釗.基于FPGA的JPEG編碼算法的優(yōu)化設(shè)計(jì)與硬件實(shí)現(xiàn)[D].長沙:中南大學(xué),2008.

      [6]宮澤林.基于JPEG圖像壓縮及其仿真實(shí)現(xiàn)[J].中國科技信息,2013,(11):84.

      Design of JPEG Encoder based on FPGA

      CHEN Shuang-yan
      (School of Electronics and Electrical Engineering,Minnan Institute of Technology,Shishi Fujian 362700,China)

      The principle of JPEG Encoder based on FPGA was discussed in the paper.Each module of the JPEG encoder was designed,and the code was simulated in modesSim platform,then the JPEG encoding of the image was achieved,and finally the design was compiled successfully in quartus II platform.The simulation results showed that the design was able to achieve image compression well.

      FPGA;JPEG encoder;2D-DCT

      TN911

      A

      1672-545X(2016)08-0252-03

      2016-05-19

      福建省中青年教師教育科研項(xiàng)目資助(編號(hào):JB14120)。

      陳雙燕(1986-),女,福建福清人,講師,碩士,從事電子信息技術(shù)領(lǐng)域的教學(xué)與研究。

      猜你喜歡
      編碼器亮度分量
      帽子的分量
      一物千斤
      智族GQ(2019年9期)2019-10-28 08:16:21
      亮度調(diào)色多面手
      基于FPGA的同步機(jī)軸角編碼器
      論《哈姆雷特》中良心的分量
      分量
      亮度一樣嗎?
      基于PRBS檢測(cè)的8B/IOB編碼器設(shè)計(jì)
      基于斬波調(diào)制的LED亮度控制
      人生的亮度
      金寨县| 仪征市| 高阳县| 伊宁县| 安乡县| 磐安县| 镇安县| 孝感市| 司法| 淳安县| 雷山县| 扎赉特旗| 仁化县| 花莲县| 宝山区| 渝中区| 阜城县| 繁昌县| 开封市| 浪卡子县| 阳原县| 原平市| 淮南市| 靖宇县| 济源市| 绥宁县| 北流市| 安岳县| 安西县| 阿勒泰市| 兴山县| 黄龙县| 依兰县| 海南省| 眉山市| 日土县| 德安县| 清水河县| 乌恰县| 桃江县| 南陵县|