基于ADV7183B的視頻解碼系統(tǒng)的設(shè)計
當(dāng)前,數(shù)字影像設(shè)備種類繁多,視音頻處理硬件與軟件技術(shù)高度發(fā)達[2],為數(shù)字視頻的流行起到了推波助瀾的作用。在很長的一段時間內(nèi),圖像處理將成為信息技術(shù)的前沿領(lǐng)域和熱門課題。圖像處理技術(shù)的應(yīng)用取得了良好的社會效益和經(jīng)濟效益,其原因主要在于計算機技術(shù)以及大規(guī)模集成電路技術(shù)的發(fā)展與成熟,使得利用嵌入式系統(tǒng)作為視頻圖像的輸入輸出處理正逐漸成為主流,硬件解決方案也從專用處理芯片、DSP發(fā)展至FPGA,極大地提高了系統(tǒng)的靈活性、小型化。
1 系統(tǒng)設(shè)計
利用單片機MSP430F169與解碼芯片ADV7183B的配置,使得整個視頻解碼系統(tǒng)可以靈活地根據(jù)輸入視頻源進行相應(yīng)的配置以輸出不同的數(shù)字視頻數(shù)據(jù)。MSP430F169的最高運算速度達到8 MIPS,具有易操作、低功耗等特點[3-4],特別是其可通過I2C接口與解碼器進行數(shù)據(jù)傳輸,以實現(xiàn)對不同格式視頻輸入源的解碼。而ADV7183B是一款綜合的視頻解碼芯片[5-6],它能夠自動將一種兼容國際標準NTSC或PAL的模擬視頻基帶信號轉(zhuǎn)換成另一種兼容8 bit/16 bit CCIR656的YCrCb型4:2:2的數(shù)字視頻數(shù)據(jù),其靈活的數(shù)字式輸出接口能夠在基于緩存器結(jié)構(gòu)和行鎖時鐘的系統(tǒng)中完成視頻解碼和轉(zhuǎn)換功能。視頻解碼系統(tǒng)的硬件框圖如圖1所示。MSP430F169是主控芯片,針對不同的模擬視頻源,利用C語言編程,對解碼芯片ADV7183B的寄存器進行相應(yīng)的配置,產(chǎn)生符合要求的數(shù)字視頻數(shù)據(jù)及行、場信號,以便于視頻后處理系統(tǒng)進行濾波、顯示。
數(shù)字視頻數(shù)據(jù)是把模擬視頻信號解碼為Y、U、V分量后,將其分別進行A/D量化采樣,轉(zhuǎn)換為數(shù)字視頻流,時間上也按上面的順序依次輸出。這里,采用的是成立于1927年的國際無線電咨詢委員會CCIR656(Consultative Committee of International Radio)標準[7-8],也稱為ITU-R BT.656。該標準規(guī)定:Y、U、V 3個分量的抽樣頻率分別為13.5 MHz、6.75 MHz、6.75 MHz。采用線性量化,每個樣點的量化比特用于演播室為10 bit,用于傳輸則為8 bit。Y、U、V 3個分量樣點之間比例為4:2:2,數(shù)據(jù)格式如圖2所示。
圖2中,T為采樣時鐘37 ns(27 MHz);SAV為有效視頻開始的定時基準標志碼;EAV為有效視頻結(jié)束的定時基準標志碼;每個基準信號由4個周期的數(shù)據(jù)組成,格式為FF,00,00,XY,以16進制表示,前3個為固定的前綴,第4個字用來定義奇偶場、場消隱和行消隱信息。在消隱期間,傳輸80 H,10 H,80 H,10 H;在有效期間,按Cb,Y,Cr,Y,Cb,Y順序傳送。
2 ADV7183B的設(shè)置
根據(jù)實際需要,這里采用了Analog Device公司的ADV7183B芯片作為系統(tǒng)的解碼芯片。它是一款綜合的視頻解碼芯片,能夠處理NTSC或PAL制式下的CVBS、S-Video、YPrPb 3種格式的輸入視頻源,從而廣泛地應(yīng)用于放映機、數(shù)字電視、DVD、游戲機等電子產(chǎn)品。ADV7183B的主要特點[9]如下:
(1)內(nèi)部帶有行鎖定系統(tǒng)時鐘(LLC)和自適應(yīng)數(shù)字線長跟蹤(ADLLT)電路,可以提供雙重視頻鎖定功能;
(2)具有實時時鐘、信息輸出功能以及3行色度梳狀濾波器;
(3)具有完整的AGC和箝位控制功能,可對色度、亮度、飽和度和對比度進行編程視頻調(diào)節(jié);
(4)可自動進行NTSC或PAL檢測,且有12個模擬視頻輸入信道;
(5)可設(shè)置為二線連續(xù)雙向端口模式,并與I2C兼容;
(6)支持不同模式的視頻輸入和16 bit寬度總線數(shù)字輸出;
(7)輸入峰峰值為0.5 V~2 V。
通過不同的配置,ADV7183B的6個模擬視頻輸入信道可支持6個CVBS輸入信號、3個S-video輸入信號和2個YPrPb構(gòu)成的模擬視頻輸入信號,可由寄存器INSEL控制輸入源的類型和信道。此外,ADV7183B支持3種輸出接口模式:兼容LLC的同步像素接口、CAPI接口和SCAPI接口,默認模式為兼容LLC的8 bit CCIR656數(shù)據(jù)。
在電路設(shè)計時,ADV7183B的工作晶振為27 MHz,ALSB為地址片選端口,由于軟件程序的設(shè)計需要,將其接地,置為低電平。CVBS接入AIN5腳,S-Video接入AIN1和AIN4腳,YPrPb則接入AIN2、AIN3和AIN6腳;P0~P15為數(shù)據(jù)輸出端;LLC1、LLC2為時鐘輸出端口,當(dāng)為8 bit數(shù)據(jù)輸出時,LLC1為27 MHz,LLC2為13.5 MHz。而當(dāng)為16 bit數(shù)據(jù)輸出時,LLC1和LLC2均為13.5 MHz;HS為行同步信號輸出,VS為場同步信號輸出,F(xiàn)IELD為奇偶場信號輸出。當(dāng)系統(tǒng)通電后,板上的2個LED燈會交替閃爍10次,提示用戶可通過按鍵進行輸入源信道的選擇操作:SW1鍵選擇S-Video視頻源輸入,SW2鍵選擇YPrPb視頻源輸入,若不操作則默認CVBS視頻源輸入。
由于MSP430F169和ADV7183B均有自帶的I2C模塊,利用I2C總線協(xié)議,系統(tǒng)通過中斷程序進行解碼芯片的各種寄存器配置,從而產(chǎn)生YCrCb型4:2:2的數(shù)字視頻數(shù)據(jù),軟件流程圖如圖3所示。[!--empirenews.page--]
首先,初始化時鐘和傳輸模式,使MSP430F169工作在所需的模式下;其次,初始化I2C功能,使其準備將從機地址發(fā)送到I2C總線上,等待總線上的從機應(yīng)答,若無應(yīng)答則重復(fù)發(fā)送,若有應(yīng)答則通信初始化并開中斷,發(fā)送所需配置的寄存器地址和數(shù)據(jù)[10-11]。需要注意的是,在每次發(fā)送數(shù)據(jù)前都要初始化主機模式和傳輸模式的設(shè)置,因為每次發(fā)送完數(shù)據(jù)后,這兩個標志位都會被自動清零。
為了使ADV7183B正常工作,幾個主要寄存器的配置內(nèi)容如下:
(1)輸入選擇寄存器INSEL,地址為0x00。根據(jù)外部接口情況,用戶可通過設(shè)置這個寄存器選擇模擬視頻源的輸入通道和輸入模式,即選擇通過CVBS、S-Video或YPrPb輸入。在該系統(tǒng)中,CVBS信號由AIN5輸入,則寄存器內(nèi)容設(shè)置為0x04;S-Video信號的Y接入AIN1,C接入AIN4,則寄存器內(nèi)容設(shè)置為0x06;YPrPb信號的Y接入AIN2,Pb接入AIN3,Pr接入AIN6,則寄存器內(nèi)容設(shè)置為0x0A。同時,未連接的其他輸入通道管腳必須接地。
(2)輸出模式選擇寄存器OF_SEL,地址0x03。通過設(shè)置此寄存器,用戶可控制輸出數(shù)據(jù)為8 bit或16 bit。不過,此寄存器必須和像素時鐘寄存器(LLC_PAD_SEL,地址0x8F)一起設(shè)置。當(dāng)輸出16 bit數(shù)據(jù)時,像素時鐘為13.5 MHz;而當(dāng)輸出8 bit數(shù)據(jù)時,像素時鐘則為27 MHz(默認設(shè)置)。所以程序中,8 bit輸出時,0x03設(shè)置為0x0C,0x8F設(shè)置為0x00;16 bit輸出時,0x03設(shè)置為0x00,0x8F設(shè)置為0x50。
(3)ADC低功耗控制寄存器,地址0x3A。這個寄存器可以選擇ADC的工作個數(shù)。在CVBS模式下,ADC1和ADC2低功耗,即不工作;在S-Video模式下,ADC2低功耗;而在YPbPr模式下,3個ADC全部工作。同時,還需要配置相應(yīng)的寄存器地址是0xC3和0xC4,這2個寄存器設(shè)置了3個ADC所連接到的管腳。根據(jù)外部的模擬輸入源,CVBS模式時,ADC0連接AIN5,則0xC3設(shè)置為0x05,0xC4設(shè)置為0x80;S-Video模式時,ADC0連接AIN1,ADC1連接AIN4,則0xC3設(shè)置為0x41,0xC4設(shè)置為0x80;YPrPb模式時,ADC0連接AIN2,ADC1連接AIN3,ADC2連接AIN6,則0xC3設(shè)置為0x32,0xC4設(shè)置為0x86。
(4)行、場同步信號的相關(guān)寄存器,一般采用默認設(shè)置即可。
3 實驗結(jié)果
在系統(tǒng)調(diào)試時,采用了一個彩色數(shù)字攝像頭作為視頻輸入源,即輸入CVBS格式的模擬視頻信號,通過邏輯分析儀捕獲輸出管腳的波形,觀測相應(yīng)的信號和輸出數(shù)據(jù)。通過不斷修改程序,最終實現(xiàn)視頻圖像的采集、顯示。圖4是通過MSP430F169設(shè)置ADV7183B的輸出模式選擇寄存器的波形??梢?,時序滿足標準的I2C總線協(xié)議的傳輸時序:起始—從器件地址(0x40)—應(yīng)答—從器件的寄存器地址(0x03)—應(yīng)答—寫數(shù)據(jù)(0x0C)—應(yīng)答—結(jié)束。圖5和圖6是解碼后的視頻數(shù)據(jù)。在圖5中,根據(jù)固定前綴FF 00 00 F1可知,F(xiàn)1(1111 0001)所包含的信息是表示行由0跳變?yōu)?,場由0跳變?yōu)?,傳輸數(shù)據(jù)進入的是行和場的消隱期。而圖6中,由固定前綴FF 00 00 80可知,80(1000 0000)所包含的信息是表示行由1跳變?yōu)?,場由1跳變?yōu)?,傳輸數(shù)據(jù)進入的是行和場的有效期。由此表明,視頻解碼系統(tǒng)輸出的視頻數(shù)據(jù)符合CCIR656標準,達到了設(shè)計要求。
綜上所述,本視頻解碼系統(tǒng)利用MSP430F169進行解碼芯片ADV7183B的設(shè)置,具有低功耗、小巧靈活等特點。同時,作為視頻輸入前端,將彩色攝像頭的模擬視頻源轉(zhuǎn)換成16 bit的YCrCb型4:2:2數(shù)字視頻數(shù)據(jù),并進行格式轉(zhuǎn)換、濾波等處理后,通過DVI接口在CRT上清晰顯示,達到了設(shè)計要求,能夠為相應(yīng)的視頻后處理設(shè)備(如DSP、FPGA等)提供良好的數(shù)字視頻數(shù)據(jù)。