摘 要: 簡要地敘述了JPEG編解碼芯片ZR36060的主要特點,、內(nèi)部結構和工作模式,,并給出發(fā)一個應用實例——基于JPEG的遠程視頻監(jiān)視系統(tǒng)" title="監(jiān)視系統(tǒng)">監(jiān)視系統(tǒng)。
關鍵詞: JPEG編解碼器 壓縮 解壓縮
隨著改革開放的進一步深入,,各界對于安全防范和現(xiàn)場記錄報警系統(tǒng)的需求越來越大,,要求也越來越高。數(shù)字化的圖像監(jiān)視系統(tǒng)已經(jīng)逐步淘汰了傳統(tǒng)的閉路電視監(jiān)視系統(tǒng),。對于需要以圖像畫面作為證據(jù)的遠程視頻監(jiān)視系統(tǒng)而言,,H.261和H.263圖像的質(zhì)量已無法勝任,這時需要傳輸高質(zhì)量的JPEG圖像,。Zoran公司的JPEG編解碼芯片ZR36060正是這樣一種適合于基于JPEG的監(jiān)視系統(tǒng)和數(shù)字圖像采集,、編輯的芯片。本文對ZR36060芯片的主要特點,、內(nèi)部結構和工作模式進行描述,,最后給出它在遠程視頻監(jiān)視系統(tǒng)中的應用。
1 ZR36060的主要特點
ZR36060芯片具有以下主要特點:
(1)視頻壓縮和擴展功能,。對square pixel 和CCIR PAL視頻信號可實現(xiàn)高達25幀/秒的壓縮,;對square pixel 和CCIR NTSC視頻信號可實現(xiàn)高達30幀/秒的壓縮。
(2) 靈活的數(shù)據(jù)接口,。ZR36060支持三種YUV視頻接口模式,,即8bit主模式,支持高達29.5Mbyte/s的壓縮數(shù)據(jù)碼率,;16bit" title="16bit">16bit從模式,,支持高達16.8Mbyte/s的壓縮數(shù)據(jù)碼率;8bit從模式,,支持高達9.8 Mbyte/s的壓縮數(shù)據(jù)碼率,。
(3) 兩種視頻同步方式:同步主模式和同步從模式。同步主模式指芯片內(nèi)部產(chǎn)生所有的定時信號,;同步從模式則是芯片自己同步于一個外部的視頻源,。
(4) 三種不同的比特率控制模式,用于不同的壓縮場合,。Auto Two Pass用于靜止圖像壓縮,,產(chǎn)生嚴格控制的壓縮代碼量,;Single Pass用于運動視頻壓縮,保持壓縮文件大小的大致固定,;No Bit Rate Control使用固定的量化表,。
(5)可以和多種常用視頻解碼器" title="視頻解碼器">視頻解碼器(Decoder)實現(xiàn)無縫連接,例如:Philips,、Brooktree,、Samsung、 ITT,、Harris 等公司的視頻解碼器,。
(6) 可以和多種主控制器" title="主控制器">主控制器(host controller)連接。
(7) 可編程工作模式,。通過對ZR36060內(nèi)部的1K字節(jié)的內(nèi)部寄存器的操作,,可以靈活控制芯片的工作模式和各項工作指標。
(8) 同一芯片既能進行壓縮,,也能進行解壓縮,。
2 ZR36060的內(nèi)部結構
ZR36060的結構框圖如圖1所示。
視頻接口部分是ZR36060和視頻編解碼器(Encoder或Decoder)的接口,,通過這個接口,,ZR36060輸出(同步主模式)或輸入(同步從模式)視頻同步信號" title="同步信號">同步信號:行同步信號HSYNC、場同步信號VSYNC和奇偶場指示信號FI等等,。視頻接口還輸出或輸入YUV 4:2:2的數(shù)字視頻信號,。壓縮時,Y[7:0]和UV[7:0]為數(shù)字視頻信號輸入口;解壓縮時,、Y[7:0]和UV[7:0]為數(shù)字視頻信號輸出口(工作于16bit視頻模式時,Y[7:0]為亮度信號,,UV[7:0]為色度信號,;工作于8bit視頻模式時,Y[7:0]為亮度/色度復用信號,,UV[7:0]不用),。
代碼接口和主控器接口是ZR36060與外部存儲器和主控制器的接口。代碼接口是ZR36060輸出(壓縮時)和輸入(解壓縮時)JPEG碼流的接口,。工作于代碼主模式時,,ZR36060通過片選信號、讀寫信號和以及代碼總線CODE[7:0]對外部存儲器讀寫壓縮數(shù)據(jù),;工作于代碼從模式時,,不需要外部存儲器,主控制器通過主控接口對ZR36060的內(nèi)部FIFO直接讀寫JPEG碼流,。
主控制器在主控接口通過兩位地址ADDR[1:0],、片選信號、讀寫信號和以及數(shù)據(jù)總線DATA[7:0]直接對4個寄存器操作。這4個寄存器的結構如表1和表2所示,。01b單元的高2位(MSB)和10b單元的低8位共10位地址間接映射了ZR36060內(nèi)部的1K字節(jié)的寄存器,。無論在代碼主模式還是在代碼從模式下,讀寫ZR36060的內(nèi)部寄存器都必須先寫入10bit的地址,,然后緊跟著一個對Host Data寄存器(即11b單元)的8bit的讀/寫,。主模式下,00b單元不使用,,ZR36060通過代碼接口對外部存儲器讀寫JPEG碼流,;從模式下,00b單元作為內(nèi)部代碼FIFO,,當工作于8bit從模式時,,DATA[7:0]總線從00b單元讀寫壓縮數(shù)據(jù);當工作于16bit從模式時,,DATA[7:0]和CODE[7:0]共同從00b單元讀寫壓縮數(shù)據(jù),。是ZR36060和主控制器的握手信號,是ZR36060向主控制器發(fā)出的中斷請求信號,,用來指示Code FIFO是否忙,。主控制器通過主控接口對ZR36060的內(nèi)部1K字節(jié)的寄存器的讀寫選定其工作模式和工作參數(shù)。
控制部分用于給出ZR36060工作順序的控制信號以及ZR36060發(fā)出的指示信號,。包括:壓縮/解壓縮啟動信號,、復位信號、操作結束指示信號等等,。
3 ZR36060的工作模式
ZR36060有多種工作模式,,通過主控接口設置內(nèi)部寄存器可以選擇合適的工作模式,因此運用十分靈活,。
就主控制器接口來說,,有三種工作模式,如圖2所示,。
8bit代碼寬度的代碼主模式:在該模式下,,主控接口和代碼接口分開,需要一個外部的FIFO,。主控接口通過數(shù)據(jù)總線DATA[7:0]負責對ZR36060內(nèi)部寄存器的讀寫,,而代碼接口通過代碼總線CODE[7:0]負責從外部存儲器讀寫壓縮數(shù)據(jù)。
8bit代碼寬度的代碼從模式:在該模式下,,主控接口和代碼接口共用,,主控制器的數(shù)據(jù)總線DATA[7:0]通過讀寫Host Data(11b單元)對ZR36060的內(nèi)部寄存器進行設置;它還從CODE FIFO(00b單元)讀寫壓縮數(shù)據(jù),。
16bit代碼寬度的代碼從模式:在該模式下,,主控制器的數(shù)據(jù)總線DATA[7:0]通過讀寫Host Data(11b單元)對ZR36060的內(nèi)部寄存器進行設置和讀?。凰€和代碼總線CODE[7:0]一起從CODE FIFO(00b單元)讀寫JPEG數(shù)據(jù),。
就視頻接口的同步來說,,ZR36060有2種工作模式。
同步主模式:在該模式下,,ZR36060內(nèi)部產(chǎn)生所有的視頻定時信號,。
同步從模式:在該模式下,ZR36060使自己同步于一個外部視頻源,,采樣外加視頻信號的行同步信號HSYNC,、場同步信號VSYNC和奇偶指示信號FI。
就視頻總線寬度來說,,ZR36060有2種工作模式,。
8bit視頻總線模式:在該模式下,UV[7:0]不用,、視頻亮度和色度信號都出現(xiàn)在Y[7:0]上,、按照CCIR656建議復用、其數(shù)據(jù)格式為(U=Cb,、 V=Cr):
U0,、Y0、V0,、Y1,、U2、Y2,、V2,、Y3...
16bit視頻總線模式:在該模式下,Y[7:0]為亮度信號,、UV[7:0]為色度信號
4 ZR36060在遠程監(jiān)視系統(tǒng)中的應用
使用ZR36060實現(xiàn)的一個遠程監(jiān)視系統(tǒng)的遠端(現(xiàn)場端)如圖3所示,。
在這個遠程監(jiān)視系統(tǒng)的遠端實現(xiàn)對輸入模擬視頻信號的數(shù)字化和壓縮,并傳送到,,近端PC機接收,,用軟件解壓縮并在顯示器上恢復原圖像,。
視頻解碼器接收攝像機輸出的復合模擬視頻信號,,進行亮色分離和A/D轉(zhuǎn)換、輸出4:2:2的YCbCr數(shù)字視頻信號和時鐘信號(27MHz),、行同步信號,、場同步信號及奇偶場指示信號,這些信號都輸入到ZR36060芯片,。
單片機通過主控接口對ZR36060的內(nèi)部寄存器進行工作方式設置(初始化):對ZR36060的工作狀態(tài)設為視頻同步從模式,、8bit代碼主模式,,16bit視頻總線寬度。ZR36060采樣視頻解碼器輸出的同步信號并與之同步,,接收來自視頻解碼器的PCM數(shù)字視頻信號,,進行壓縮,并將壓縮后的JPEG圖像寫入SRAM中,。
由于ZR36060外接的是SRAM,,而不是FIFO,所以需要一個計數(shù)器作為地址發(fā)生器,,ZR36060的信號作為計數(shù)器的計數(shù)脈沖,,它同時還作為SRAM的寫信號將CODE[7:0]的壓縮數(shù)據(jù)寫入到SRAM中去。
當ZR36060壓縮完一幀后(存于SRAM中),,單片機順序讀出,,并發(fā)送到UART中,由Modem傳到近端,。