国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

陳雙燕

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

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

陳雙燕

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

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

FPGA;JPEG編碼器;2D-DCT

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

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

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

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

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

2.1色度空間變換模塊

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

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

2.2二維離散余弦變換模塊

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

其中,M、N為圖像子塊的大小,對于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è)計時,以亮度分量Y為例,利用公式(3)進(jìn)行2D-DCT.

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

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

2.3量化模塊

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

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

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

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

2.4熵編碼模塊

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

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

3 JPEG編碼器的仿真驗證

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

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

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

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

3.2 JPEG編碼過程

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

圖4 JPEG編碼器的FPGA框圖

由jpeg_datain模塊產(chǎn)生讀使能信號和地址信號進(jìn)行bmprom數(shù)據(jù)的讀取。讀取規(guī)則如下:以64個圖像數(shù)據(jù)為一組,當(dāng)讀到每組的最后一個數(shù)據(jù)時,令flag=1,接著等待16個系統(tǒng)時鐘(等這一組的數(shù)據(jù)編碼完成)后,令flag=0,再讀取下一組64個圖像數(shù)據(jù)。當(dāng)將要讀到最后一組圖像數(shù)據(jù)時,令數(shù)據(jù)結(jié)束信號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ù)有效信號data_ready為高電平時,JPEG_bitstream輸出數(shù)據(jù)有效。JPEG_bitstream[31:24]是第一個編碼后的數(shù)據(jù),其次是JPEG_bitstream[23:16],接著是JPEG_bitstream[15:8],最后一個數(shù)據(jù)是JPEG_bitstream[7:0]。

3.3 JPEG編碼結(jié)果

在代碼測試文件中,將JPEG編碼結(jié)果按順序以十六進(jìn)制存放在lib.txt中,每8位數(shù)據(jù)空一個空格。為驗證編碼結(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è)計綜合結(jié)果

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

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

4 結(jié)束語

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

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

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

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

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

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

[6]宮澤林.基于JPEG圖像壓縮及其仿真實現(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

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

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

猜你喜歡
編碼器亮度分量
融合CNN和Transformer編碼器的變聲語音鑒別與還原
遠(yuǎn)不止DCI色域,輕量級機身中更蘊含強悍的亮度表現(xiàn) 光峰(Appptronics)C800
一斤生漆的“分量”——“漆農(nóng)”劉照元的平常生活
一物千斤
亮度調(diào)色多面手
論《哈姆雷特》中良心的分量
基于雙增量碼道的絕對式編碼器設(shè)計
亮度一樣嗎?
基于數(shù)字信號處理的脈沖編碼器
光電編碼器故障診斷技術(shù)研究現(xiàn)狀與展望
天津市| 浦东新区| 灌南县| 枞阳县| 连山| 田阳县| 长乐市| 秦安县| 牡丹江市| 商水县| 安塞县| 沭阳县| 福鼎市| 高唐县| 边坝县| 托克逊县| 辽阳县| 齐河县| 缙云县| 姜堰市| 沧州市| 武山县| 拉孜县| 岑巩县| 古丈县| 大埔县| 江西省| 黄陵县| 明光市| 民乐县| 义乌市| 长寿区| 泊头市| 衢州市| 蓝山县| 永康市| 潮州市| 德庆县| 招远市| 象山县| 富裕县|