多媒體PCI控制器ZR36067及其在MJPEG系統(tǒng)中的應(yīng)用
摘要:ZR36067是ZORAN公司推出的一款多媒體PCI總線控制器。文中詳細介紹了ZR36076的特點、內(nèi)部結(jié)構(gòu)及引腳功能。給出了ZR36067在運動JPEG系統(tǒng)中的一個應(yīng)用實例,詳細介紹了該系統(tǒng)的工作原理,最后給出了ZR36067與ZR36060的視頻接口連接方法。
關(guān)鍵詞:多媒體控制器 PCI總線 運動JPEG ZR36067
1 概述
作為PCI適配器,ZR36067是專為PCI系統(tǒng)上的多媒體應(yīng)用而設(shè)計的。它支持系統(tǒng)內(nèi)存與JPEG、MPEG處理器之間的高速率代碼(壓縮數(shù)據(jù)流)傳輸。同時,ZR36067還可捕捉數(shù)字視頻(如解壓縮的MJPEG、MPEG或視頻解碼器輸出),并可在圖形顯示內(nèi)存中產(chǎn)生縮放視頻窗口。因此,利用ZR36067可通過軟件控制眾多的非PCI多媒體設(shè)備。具體如下:
(1)Motion JPEG編碼/解碼器 - ZR36050+ ZR36016,ZR36060;
(2)音頻編碼/解碼器;
(3)MPEG和DVD解碼器ZR36110以及ZR36700;
(4)I2C設(shè)備,如視頻解碼器、視頻編碼器等;
作為總線主控器件,通過ZR36067可將數(shù)據(jù)(如JPEG壓縮數(shù)據(jù))寫入系統(tǒng)內(nèi)存或從內(nèi)存讀出數(shù)據(jù),并將數(shù)字視頻像素寫入圖形顯示內(nèi)存中。而作為總線目標,ZR36067可將主機存取映射到微控制器的8bit輔助總線(Guest Bus)。
ZR36067有一個特殊的“靜態(tài)傳輸”口,主程序可通過它在系統(tǒng)內(nèi)存和視頻總線之間讀寫數(shù)字化視頻信息(RGB像素)。該通道使得高速傳輸?shù)撵o態(tài)圖像能夠通過JPEG芯片組壓縮或解壓縮。
ZR36067多媒體控制器主要用于高質(zhì)量視/音頻捕捉/回放和PCI系統(tǒng)編輯板、使用輔助PCI總線的多媒體/圖形子系統(tǒng)、帶多媒體功能的PCI主板以及PowerPC和Macintosh PCI系統(tǒng)的JPEG/MPEG1解決方案等。
ZR36067的主要功能特點如下:
●具有與PCI總線的無縫接口(兼容PCI2.1);
●具有與JPEG解碼器(ZR36060,ZR36050+ ZR36016)、MPEG1和DVD解碼器(ZR36110,ZR36700)、視頻解碼器、視頻編碼之間的最小接口;
●可實現(xiàn)壓縮數(shù)據(jù)的雙向DMA傳輸,速率接近11Mbytes/s;
●可進行視頻和掩碼信息的DMA傳輸;
●支持快速靜態(tài)圖像的壓縮和解壓縮;
●具有在片像素精確掩碼功能;
●YUV-RGB轉(zhuǎn)換器,可通過錯誤擴散降低量化噪聲;
●具有15/16bit、24 bit(壓縮和非壓縮)RGB像素格式和YUV-4:2:2視頻輸出;
●硬件支持非連續(xù)JPEG代碼緩沖器;
●在視頻和代碼傳輸中,具有最大總線執(zhí)行時間的故障恢復(fù)功能;
●可選擇仿真隔行掃描視頻顯示方式和單場顯示方式;
●可用硬件支持簡單、高效的幀抓取;
●帶有I2C總線接口;
●支持即插即用;
●采用208腳PQFP封裝;
●支持子系統(tǒng)ID和子系統(tǒng)銷售商ID。
●可將YUV4:2:2數(shù)字視頻輸入轉(zhuǎn)化為YUV4:2:2、RGB5-6-5、RGB5-5-5或RGB8-8-8(壓縮或非壓縮)等像素格式;
另外,ZR36067也支持CCIR601數(shù)字視頻或方像素格式(符合NTSC或符合NTSC或PAL視頻標準)以及其它的非標準輸入。
2 內(nèi)部結(jié)構(gòu)
ZR36067內(nèi)部包括兩路主數(shù)據(jù)通道(視頻通道和代碼通道)。通過PCI DMA突發(fā)方式輸入的視頻信息通常沿視頻通道進行處理并傳輸?shù)綀D形顯示內(nèi)存之中。其內(nèi)部結(jié)構(gòu)框圖如圖1所示。
ZR36067的視頻前端在一個可編程有效場窗口中采樣視頻總線,該窗口由視頻同步信號來定義??蛇x的垂直、水平平滑縮放使其能夠支持可變圖像尺寸和可變PCI視頻數(shù)據(jù)率。縮放后的視頻流可被轉(zhuǎn)換為不同的RGB格式。轉(zhuǎn)換后的像素在壓縮后可存儲在256字節(jié)視頻FIFO(64個32位雙字)中。存儲的視頻像素可從視頻FIFO中讀出并傳送到圖形顯示內(nèi)存。
雙向代碼通道的數(shù)據(jù)流向取決于操作模式。代碼流(MPEG或JPEG)利用PCI DMA突發(fā)方式在系統(tǒng)內(nèi)存和ZR36067的內(nèi)部代碼FIFO中傳輸。ZR36067控制著這兩個方向上的傳輸和尋址。代碼FIFO的大小為640字節(jié)(160個雙字)。
在JPEG壓縮模式下,ZR36067通過編碼/解碼器前端填充代碼FIFO,并將代碼從FIFO中逐場傳送到系統(tǒng)內(nèi)存中;在JPEG解壓縮模式,代碼流流向相反的方向,即從系統(tǒng)內(nèi)存到ZR36067的代碼FIFO,此時編碼/解碼器前端可將代碼FIFO內(nèi)容逐字節(jié)讀到代碼總線上;在MPEG回放模式,代碼流將從系統(tǒng)內(nèi)存?zhèn)鬏數(shù)絑R36067的代碼FIFO。代碼字節(jié)從代碼FIFO讀出到輔助總線上;當ZR36067仲裁PCI總線上每一個進程的請求時,ZR36067的視頻和代碼通道可同時操作。
除了管理視頻和代碼通道,ZR36067還可在主CPU和周邊設(shè)備(作為輔助設(shè)備)之間建立連接。實際上,采用專用的握手機制(“郵局”機制),也可將ZR36067內(nèi)部寄存器的主通路的主通路映射到輔助總線上,以獲得對輔助設(shè)備的間接讀寫操作。
通過ZR36067的專用“靜態(tài)傳輸”口可實現(xiàn)數(shù)據(jù)在PCI接口和視頻前端之間的傳輸。主程序也可應(yīng)用特殊握手協(xié)議將數(shù)字化視頻(RGB像素)從系統(tǒng)內(nèi)存?zhèn)鬏數(shù)揭曨l總線,反之亦然。此外,通過JPEG編碼/解碼器,該通道還可以對高速靜態(tài)視頻圖像進行壓縮和解壓縮。
3 引腳說明
ZR36067采用208腳PQFP封裝,這208個引腳可分為以下幾類:
(1)PCI接口(48腳);
AD[31:0]:輸入/輸出,地址/數(shù)據(jù)復(fù)用引腳;
C/BE[3:0]:輸入/輸出,總線命令/字節(jié)允許;
PAR:輸入/輸出,AD[31:0]和C/BE[3:0]的奇偶校驗位:
FRAME:輸入/輸出,PCI周期幀;
TRDY:輸入/輸出,PCI目標準備好信號;
IRDY:輸入/輸出,PCI主控準備好信號;
STOP:輸入/輸出,停止信號,用于表明目標要求當前總線主控停止當前傳送;
DEVSEL:輸入/輸出,PCI設(shè)備選擇信號,表明目標已對其地址進行了解碼;
IDSEL:輸入,PCI初始化設(shè)備選擇信號,在ZR36067配置空間中用于片選;
REQ:輸出,PCI申請信號;
GNT:輸入,PCI允許信號;
PCICLK:輸入,PCI時鐘信號;
PCIRST:輸入,PCI復(fù)位信號。低電平有效時,所有ZR36067的輸出引腳均為三態(tài)。ZR36067一般在PCI時鐘的上升沿進入上電復(fù)位狀態(tài),其最低有效低持續(xù)時間為3個PCI時鐘。
INTA:輸出,PCI中斷信號。
(2)數(shù)字視頻總線接口(32腳)
Y[7:0]/R[7:0]:輸入/輸出,亮度/紅色視頻線。也用于對子系統(tǒng)銷售商ID的低字節(jié)編程。
UV[7:0]/G[7:0]:輸入/輸出,色度/綠色視頻線。也用于對子系統(tǒng)ID的低字節(jié)編程。
B[7:0]:輸入/輸出,藍色視頻線;
VCLKx2:輸入,二倍頻視頻總線時鐘;
VCLK:輸入,數(shù)字視頻總線時鐘。用作VCLKx2的量化器時,必須與VCLKx2同步;
HSYNC:輸入/輸出,數(shù)字視頻總線水平同步;
VSYNC:輸入/輸出,數(shù)字視頻總線垂直同步;
FI:輸入,數(shù)字視頻場計數(shù)器(頂/底);
PXEN:輸出,ZR36016的像素使能輸出,低有效;
RTBSY:輸入,ZR36016的帶狀內(nèi)存溢出/下溢信號,低有效;
START:輸出,ZR36016的開始處理輸出,高有效。
(3)輔助總線接口(25腳)
GCS[7:0]:輸出,輔助總線設(shè)備的片選輸出,低有效;
GADR[2:0]:輸出,輔助總線設(shè)備的地址輸出;
GDAT[7:0]:輸出,輔助數(shù)據(jù)總線,也可用于子系統(tǒng)銷售商ID的高字節(jié)編程;
GRD:輸出,輔助總線設(shè)備的讀輸出,低有效;
GWR:輸出,輔助總線設(shè)備的寫輸出,低有效;
GRDY:輸入,輔助設(shè)備準備好信號,高有效;
GWS:輸入,輔助設(shè)備等待狀態(tài)信號;
GIRQ[1:0]:輸入,正上升沿中斷請求輸入,通常來自一到兩個輔助設(shè)備總線。
(4)編碼/解碼器總線接口(11腳)
CODE[7:0]:輸入/輸出,連接ZR36050的代碼總線;
CEND:輸入,來自ZR36050的場處理結(jié)束信號,低有效;
CBUSY:輸出,ZR36050的FIFO代碼忙信號。
(5)I2C總線接口(2腳)
SDA:輸入/輸出,I2C總線數(shù)據(jù)端口;
SCL:I2C總線時鐘線。
(6)通用可編程輸入/輸出(8腳)
GPIO[7:0]:通用輸入/輸出引腳。
(7)測試引腳(2腳)
ENID:輸入,用于IDD測試。正常操作時必須接地;
TEST:輸入,測試引腳,僅用于測試模式。正常操作時必須接地。
(8)電源和地
GND:接地;
VDD:正電源(5V)
4 正Motion JPEG系統(tǒng)中的應(yīng)用
圖2是Motion JPEG附加設(shè)備板的一個應(yīng)用實例,該系統(tǒng)使用ZR36067和ZR36060進行接口。其中ZR36067支持4個基本的JPEG操作模式,即:運動視頻壓縮、運動視頻解壓縮、靜止圖像壓縮、靜止圖像解壓縮?,F(xiàn)就這四種操作模式的實際處理過程進行分析。
4.1 運動視頻壓縮
當YUV4:2:2視頻信號和視頻同步信號輸入到ZR36060的視頻輸入口時,它同時也將這些信號傳輸?shù)搅薢R36067視頻前端和視頻解碼器(用于TV監(jiān)視器上顯示輸出),此后,ZR36067將有選擇地進行視頻壓縮,并將視頻信號轉(zhuǎn)換為RGB信號,然后利用DMA方式傳送給主PC顯存。與此同時,ZR36060也在執(zhí)行JPEG壓縮,并將JPEG代碼流傳輸給ZR36067編碼/解碼器前端,然后再由ZR36067通過DMA方式將壓縮視頻場信號傳輸給主機所分配的系統(tǒng)內(nèi)存緩沖區(qū)。
4.2 運動視頻解壓縮
在運動視頻解壓縮中,ZR36067利用DMA方式并通過ZR36067編碼/解碼器前端將代碼流從系統(tǒng)內(nèi)存?zhèn)魉偷絑R36060中。ZR36060對JPEG代碼進行解壓并將視頻信號傳送給視頻編碼器以在TV監(jiān)視器上顯示。同壓縮模式一樣,ZR36060將視頻信息輸出到ZR36067視頻前端進行處理時,該信息也同時利用DMA方式傳送到PC顯存中。
4.3 靜止圖像壓縮
在靜止圖像壓縮模式中,主機將通過PCI總線向ZR36067逐像素寫入圖像位圖信息。然后由ZR36067把這些像素通過自己的視頻總線口傳到ZR36060的視頻輸入口。該模式中,ZR36067可產(chǎn)生并驅(qū)動ZR36060所需的視頻同步信號。當8條視頻線全滿后,ZR36060開始執(zhí)行光柵-網(wǎng)格操作并壓縮數(shù)據(jù),同時將代碼流傳送到ZR36067。同運動視頻壓縮一樣,利用DMA方式也可將代碼流傳送到主機內(nèi)存中。
4.4 靜止圖像解壓縮
靜止圖像解壓縮模式下的操作同運動視頻解壓縮一樣,也是由ZR36067利用DMA方式從系統(tǒng)內(nèi)存中取出代碼流,并用ZR36060從ZR36067中讀取壓縮數(shù)據(jù),同時在解碼后將解壓縮視頻信息送到ZR36067的視頻口。最后由程序從這里逐像素讀出視頻信息送給系統(tǒng)內(nèi)存。
應(yīng)用中需要注意的是,靜止圖像解壓縮也可通過下面方式來實現(xiàn):即在運動視頻解壓縮模式下配置ZR36067,然后將解壓縮視頻信息傳送到系統(tǒng)內(nèi)存中一連續(xù)的緩沖區(qū)。由于該方法較靜止圖像解壓縮模式有更快的速度,所以常被采用。
5 與ZR36060的視頻接口連接
圖3給出了ZR36067與ZR36060的視頻接口連接圖。對于該電路的四種JPEG操作模式,設(shè)計時應(yīng)注意以下問題:在運動視頻壓縮中,輸入ZR36067和ZR36060的YUV視頻和同步信號均來自外部視頻源,如SAA7110/7111;在運動解壓縮中,同步信號可由ZR36067(在同步主控模式下)或與視頻源相連的同步器來產(chǎn)生。此時,壓縮的視頻信息從ZR36060視頻總線傳輸?shù)腪R36067的視頻口,其外部視頻源的視頻總線和同步信號也必須浮空;在靜止圖像壓縮模式中,由于視頻信號和同步信號來自ZR36067,因而圖2中視頻解碼器的視頻總線和同步信號也必須強制浮空;而在靜止圖像解壓縮中,同步信號來自ZR36067,因此,壓縮的視頻信息可從ZR36060傳送到ZR36067視頻口。在該操作模式下,外部視頻源的視頻總線和同步信號也必須浮空。
評論