包宋建,孟 楊,許艷英,陳帥華
(1.重慶文理學院電子電氣工程學院,重慶 永川 402160;2.重慶科創職業學院機電工程學院,重慶 永川 402160)
MJPEG是指Motion JPEG,即動態JPEG,按照25幀/s的速度使用JPEG算法壓縮視頻信號.JPEG標準是由JPEG專家組制訂的,其圖像格式是對每一幀圖像進行幀內(intra-frame)壓縮,通??蛇_到10∶1的壓縮率.MJPEG圖像流的單元就是一幀一幀的JPEG畫片,因為每幀都可獨立地任意存取和編輯,所以MJPEG常被用于視頻編輯系統和視頻監控系統[1].在MJPEG壓縮的實現上,本文基于XC2S600E的MJPEG編碼器與基于單片機(MCU)和數字信號處理器(DSP)的MJPEG編碼器相比具有速度快、實時性好、硬件電路簡單可靠等特點.
整個系統的結構框圖如圖1所示.上電后,由XC17V04使用主-串方式對FPGA進行加載,利用單片機AT89C51對視頻處理芯片SAA7111進行初始化.由于AT89C51沒有IIC總線,因此使用虛擬IIC總線對SAA7111進行初始化配置,使SAA7111芯片輸出CCIR601標準的圖像流,該標準的每幅圖像具有有效像素720×625,即每行有720個有效像素,共625行有效行,分奇數行和偶數行進行傳輸.由攝像頭獲取的信號經視頻輸入處理(VIP)芯片SAA7111處理后輸出CCIR601標準圖像流,然后將其送給SDRAM存儲,FPGA從SDRAM中讀取數據進行壓縮處理,壓縮后的視頻數據流由FPGA的I/O引腳輸出.

圖1 MJPEG編碼器的總體結構
SAA7111A是Philips公司生產的可編程視頻處理器.該芯片集A/D轉換與解碼功能于一身,片內附有鎖相、自動鉗位、自動增益控制、時鐘產生、多制式解碼等電路,另外,SAA7111A還可對亮度、對比度和飽和度進行控制.
攝像頭與某一路接通時(例AI11),視頻信號將進入視頻解碼器SAA7111進行A/D轉換,將模擬信息變成標準的YUV4∶2∶2數字圖像信息,此信息供給系統進行進一步的處理.SAA7111的哪一路被選通以及芯片的初始化均可由本系統的AT89C51通過虛擬I2C總線對芯片進行初始化[2].
1.2.1 SAA7111 的典型應用電路
圖2是SAA7111的典型應用電路.根據上述設置,該設計從SAA7111的4個模擬視頻輸入端中選擇AI11作為視頻輸入接口,輸出端的高8位輸出亮度信號,低8位輸出色度信號.在視頻輸入端需連接10 nF的電容和75 Ω的電阻.

圖2 SAA7111的典型應用電路
SAA7111的時鐘可以是外部時鐘和內部時鐘.本系統采用外部時鐘輸入,XTAL2引腳和XTAL1引腳間接入的一個頻率為24.576 MHz的石英晶體振蕩器,可用于產生系統所需要的工作時鐘.本設計由外部時鐘驅動來產生行鎖定時鐘 LLC(27 MHz)、LLC2(13.5mHz)和時鐘參考信號CREF(13.5mHz,相對 LLC2有一定的延時).需要說明的是,時鐘的產生會受到片選信號CE的影響,只有當CE為高電平時才有效,而在低電平時,SAA7111被復位,該引腳不產生周期信號.為降低電源紋波,每個電源輸入端都應加100 nF濾波電容[3].由于 SAA7111是模數轉換器件,模擬電源和數字電源、模擬地與數字地都不能簡單共電.一般情況下,可使用電感單點一起接地.因為數字電路的頻率較高,模擬電路的敏感度較強,數字和模擬部分不能有信號電流的交互,而這個地線理論上會提供電源回路,所以為避免干擾,應使用電感阻止干擾信號的流回[4].
1.3.1 用單片機普通I/O模擬I2C總線接口
用單片機普通I/O口模擬I2C總線接口時,其硬件配置非常簡單,因為單片機的I/O口很多,并且大多I/O口都是雙向的.因此可以直接用兩個I/O口線作為I2C總線的串行時鐘線SCL和串行數據線SDA.圖3所示為AT89C51單片機與SAA7111的硬件連接圖.當硬件配置完成后,根據I2C總線的時序特性可用軟件編程來模擬I2C總線接口[5].圖4為I2C總線的起始信號(S),它表示在 SCL為高電平期間,數據線SDA由高電平向低電平變化將啟動I2C總線.下面是相應的匯編程序.其它子程序可以參考I2C總線時序來實現.啟動I2C總線子程序:

圖3 虛擬IIC總路線產生的硬件連接圖


圖4 I2C總線起停信號時序
1.3.2 SAA7111 的初始化
SAA7111內部有32個寄存器(Subaddress00~1FH),其中22個是可編程的.00H,1A ~1CH,1FH是只讀寄存器,其中00H描述的是芯片版本信息;1A~1CH是文本信息檢測和解碼寄存器,一般很少用到;1FH用來描述芯片的狀態.02H~12H是可讀寫寄存器,其中02H~05H是模擬輸入控制寄存器,02H用于設置模擬視頻信號輸入方式(共8種),03H~05H用于設置增益控制方式,06H~12H主要用于設置解碼方式,通過配置這些寄存器可以設置行同步信號的開始和結束位置,并可確定亮度、色度、飽和度的大小以及輸出圖像數據信號的格式.01H,13H~19H,1DH~1EH寄存器保留使用.需要注意的是,在讀00H寄存器前,必須將它初始化為0.在對多個連續的寄存器進行操作時,寄存器地址有自動加1 的功能[6].
以采用上面任何一種方法來模擬I2C總線接口,只是具體的編程方法應視不同的控制器而異.但軟件編程具有相同之處,首先必須根據I2C總線的原理寫出啟動、結束、發送應答信號及讀、寫一個字節的程序,然后根據SAA7111的寄存器操作格式寫出讀、寫寄存器的程序,最后根據以上子程序寫出初始化SAA7111的程序段.SAA7111的初始化流程如圖5所示.

圖5 SAA7111的初始化流程圖
以單片機為例,硬件連接如圖3所示.其中IICSA是SAA7111的讀寫控制位,IICSA=0表示SAA7111的寫地址為48H.這里把 SAA7111初始化設定為:一路模擬視頻信號輸入(AI12)、自動增益控制、625行50 Hz PAL制式、YUV422、16位數字視頻信號輸出、設置默認的圖像對比度、亮度及飽和度.相應的寄存器初始化值如表1所列.下面是向SAA7111的19個連續的子地址寄存器(00H~12H)寫入一組數據的程序.

表1 寄存器初始化值
Motion JPEG是一種基于靜態圖像JPEG壓縮標準的動態圖像壓縮標準,壓縮時將連續圖像的每一個幀視為一幅靜止圖像進行壓縮,從而可以生成序列化運動圖像.壓縮時不對幀-幀的時間冗余進行壓縮,雖然降低了壓縮比,但也同時降低了復雜度,易于硬件電路實現.Motion JPEG標準所根據的算法是基于離散余弦變換和熵編碼,關鍵技術有二維離散余弦變換、量化、差分編碼、霍夫曼編碼和行程編碼等.單幀的處理過程如圖6所示.輸入的8×8數據依次經過二維DCT變換,轉換到頻域,使低頻成份集中在左上角,對人眼不敏感的高頻部分在右下角,通過量化表進行量化,去掉高頻部分,再進行Z掃描,從而增加零游程長度,然后進行游程編碼,變成零游程長度.非零AC系數再進行Huffman編碼,實現對低概率的碼元賦予較長的碼字,高概率的碼元賦予較短的碼字.由于Huffman編碼后的碼流為不等長碼,故需要調整碼長,將不等長的碼轉成等長碼,最后按照JPEG規則編輯報頭和參數并打包輸出最終的動態JPEG碼流.

圖6 MJPEG的單幀處理流程
為了說明FPGA壓縮的高速性這一最大優勢,這里將本設計所需要的時間同文獻[7]中編碼所需的時間進行比較:DCT變換消耗4224個指令,量化Z排序耗960指令,Huffman編碼耗540指令,假設令其采用高檔的6000系列DSP,指令周期為1 ns.比較柱狀圖如圖7所示.
壓縮一個相同的8×8數據塊,各處理模塊與整個JPEG壓縮過程耗時分別說明.離散余弦變換:采用高檔的 DSP進行 DCT變換,消耗4224 ns;而采用100m的XC2S600E只需660 ns(ModelSim仿真).量化:采用DSP進行量化,消耗960 ns;而采用XC2S600E進行量化,消耗400 ns.Huffman編碼:采用DSP進行Huffman編碼,消耗540 ns;而采用XC2S600E進行Huffman編碼,消耗220 ns.整個JPEG編碼:基于DSP的JPEG編碼耗時是各個模塊耗時之和,即耗時5744 ns;而基于FPGA的JPEG編碼耗時則不再是各模塊耗時之和,因為各模塊是可以并行工作的,其總耗時為930 ns.

圖7 壓縮方法比較及耗時圖
[1]王瑤寶.基于FPGA的MJPEG編碼器的研究及實現[M].吉林:東北電力大學出版社,2007:12-23.
[2]Philips Semiconductors.SAA7111 video input processor(VIP)product specification.integrated circuits[DB/OL].(1998-05-15)[2011-05-12]http://wenku.baidu.com/view/85f14cc4bb4cf7ec4afed0c6.html.
[3]于曉琳,張崇,鄧長軍.SAA7111A在實時圖像采集系統中的應用[J].電子產品世界,2005(1):97-99.
[4]張金波,梁瑞宇,張伯約,等.SAA7111A和SAA7185在時基校正電路中的應用[J].電子技術,2004(10):56-58.
[5]張克滿,何格夫.用虛擬I2C總線技術實現SAA7111的初始化[EB/OL].(2008-07-26)[2011-04-21]http://tech.ddvip.com/2008/07/121706776548712.html.
[6]楊有,尚晉,楊華芬,等.檔案圖像處理模型研究[J].重慶文理學院學報:自然科學版,2010,29(5):29-32.
[7]周霖.DSP通信工程技術應用[M].長沙:國防工業出版社,2004:33-35.