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