一種視頻合成方法
摘要:為了在接口有限的CPU中傳輸多路視頻數(shù)字信號(hào),介紹了一種視頻合成方法,通過FPGA把4路BT.656標(biāo)準(zhǔn)D1格式的視頻信號(hào)合成為1路BT.656 D1格式的視頻信號(hào)。A/D轉(zhuǎn)換以后的視頻信號(hào)是標(biāo)準(zhǔn)D1格式的數(shù)字視頻信號(hào),F(xiàn)PGA產(chǎn)生讀寫信號(hào)控制雙口RAM讀寫操作,先把D1格式的數(shù)字視頻信號(hào)存進(jìn)雙口RAM,然后分時(shí)地讀取4個(gè)RAM,把每路D1格式的數(shù)字視頻信號(hào)縮小為CIF格式的數(shù)字視頻信號(hào),產(chǎn)生1個(gè)新的遵循BT.656標(biāo)準(zhǔn)的D1格式的視頻信號(hào)。實(shí)踐證明,此方法能有效地完成視頻合成,達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞:視頻合成;BT.656;FPGA;數(shù)字視頻
在很多視頻應(yīng)用場(chǎng)景中,需要用到多路數(shù)字視頻信號(hào)。一些視頻微處理器的輸入輸出接口有限,無法傳輸多路數(shù)字視頻信號(hào),故對(duì)視頻信號(hào)進(jìn)行合成傳輸是一件十分有意義的事情,通用的做法是通過可編程邏輯器件進(jìn)行合成。鑒于此,本文利用ITU—RBT.656特有的幀結(jié)構(gòu),論述了把4路ITU—R BT.656數(shù)字視頻信號(hào)合成為1路ITU—R BT.656數(shù)字視頻信號(hào)的方法。
1 系統(tǒng)設(shè)計(jì)方案
1.1 硬件框架
本設(shè)計(jì)通過FPGA實(shí)現(xiàn)4路ITU—R BT.656 D1格式的數(shù)字視頻信號(hào)在1路視頻通道中傳輸,在視頻解碼器(SAA7113)輸出口與CPU的視頻輸入口之間增加了耦合合成邏輯,利用FPGA實(shí)現(xiàn)二者之間的耦合。硬件連接圖如圖1所示,F(xiàn)PGA與SAA7113通過雙口RAM耦合,F(xiàn)PGA控制雙口RAM的讀寫邏輯,分時(shí)地讀取4個(gè)雙口RAM中的數(shù)據(jù),數(shù)字視頻信號(hào)在FPGA里面進(jìn)行合成。
SAA7113外部時(shí)鐘源由24.768 M的晶體提供,內(nèi)部PLL產(chǎn)生SAA7113所需要的工作時(shí)鐘,VPO輸出時(shí)鐘頻率是27 MHz。SAA7113的初始化由CPU通過兩組I2C總線完成,每組的2個(gè)SAA7113使用不同的I2C從地址(通過設(shè)置RTS0)。4路模擬CVBS信號(hào)分別輸入4片SAA7113的AI22.4片SAA7113的VPO總線分別連接到4個(gè)雙口RAM的輸入端,SAA7113的RTS0、RTS1、LLC連接到FPGA,F(xiàn)PGA根據(jù)視頻同步信息控制雙口RAM的讀寫時(shí)序,雙口RAM的數(shù)據(jù)輸出端以總線形式連接到FPGA。
1.2 主要器件選型
系統(tǒng)采用SAA7113作為A/D轉(zhuǎn)換器件。SAA7113是一款視頻解碼芯片,通過配置內(nèi)部寄存器可對(duì)4路模擬輸入視頻信號(hào)進(jìn)行選擇,輸入信號(hào)可為4路CVBS或2路S視頻(Y/C)信號(hào),輸出8位總線,為標(biāo)準(zhǔn)的ITU—R BT.656 YUV 4:2:2格式視頻流,可以配置為10位模式。7113支持PAL、NTSC、SECAM多種制式,可在PAL、NTSC之間自動(dòng)轉(zhuǎn)換,自動(dòng)檢測(cè)場(chǎng)頻(50 Hz或60 Hz)。對(duì)色度、亮度等的控制都是通過對(duì)相應(yīng)寄存器寫入不同的配置值來實(shí)現(xiàn),寄存器的讀寫通過I2C總線進(jìn)行。
本設(shè)計(jì)利用SAA7113 LLC時(shí)鐘輸出時(shí)鐘信號(hào)27 MHz作為FPGA輸入時(shí)鐘源,利用片內(nèi)PLL對(duì)其進(jìn)行倍頻,作為FPGA全局時(shí)鐘使用,復(fù)位使用上電復(fù)位。
FPGA采用Xilinx公司的大容量、低成本、低功耗Spartan-3E系列XC3S250E。Spartan-3E家族優(yōu)勢(shì)主要是系統(tǒng)連接功能(包括物理并行I/O接口)和高帶寬所需要的協(xié)議。Spartan-3E器件I/O管腳支持全部的SelectIO。支持18種通用I/O接口標(biāo)準(zhǔn)(PCI 64/66、PCI—X 100、RSDS和mini—LVDS等),以及普通DDR存儲(chǔ)接口。提供每秒高達(dá)91億次的乘累加(MAC)。內(nèi)置18x18嵌入式乘法器可用來實(shí)現(xiàn)緊密的DSP結(jié)構(gòu)(比如MAC引擎及自適應(yīng)、全并行FIR濾波器)。SRL16移位寄存器邏輯和分布式存儲(chǔ)器可用來實(shí)現(xiàn)高密度DSP結(jié)構(gòu),比如濾波器。其內(nèi)核電壓為12V和2.5 V,IO電壓為3.3V。XC3S250E能提供25萬個(gè)等效邏輯門,本產(chǎn)品選擇PQ208封裝,能夠提供158個(gè)用戶可用的輸入/輸出管腳。
在本設(shè)計(jì)中,XC3S250E的配置采用Slave Serial模式(M[2:0]=“111”),通過CPU把FPGA的配置數(shù)據(jù)通過同步串行接口寫入FPGA。CPU使用GPIO管腳來模擬FPGA的串行配置時(shí)序。
為了方便FPGA的調(diào)試,在電路板上預(yù)留JTAG配置接口。
本設(shè)計(jì)需要對(duì)4路720x576的視頻數(shù)據(jù)進(jìn)行存儲(chǔ),每路存儲(chǔ)空間為576行x720x2字節(jié)(在4:2:2的YCbCr信號(hào)中,一個(gè)點(diǎn)實(shí)際占用2字節(jié)(用亮度色差表示))。因此每路需要800 kB左右的存儲(chǔ)空間。在設(shè)計(jì)中使用了4片1 MB容量的雙口SRAM,用于緩存4路視頻數(shù)據(jù)。
對(duì)FPGA模塊,輸入的5.0 V經(jīng)1片TPS76833轉(zhuǎn)換為3.3V,供FPGA VCCO使用。5.0V經(jīng)1片RT8011變換后輸出+2.6V/2A的電壓,一路提供給XC3S250E的VCCAUX使用:另一路由RT9183 LDO變換為+1.2V/1.5A電壓,為XC3S250E內(nèi)核供電。輸入的5.0V經(jīng)一片TPS76833轉(zhuǎn)換為3.3V,為其他器件供電。
2 視頻合成描述
本文描述針對(duì)PAL制式,視頻合成的具體實(shí)現(xiàn)思路為:4通道數(shù)據(jù)分別在水平方向/垂直方向各縮小1/2(由D1格式縮小為CIF格式):將4個(gè)CIF格式的數(shù)字視頻流拼接成1個(gè)ITU—R BT.656數(shù)字視頻流,和CPU(DSP)的視頻口連接。通過FPGA對(duì)4路SAA7113輸入數(shù)據(jù)的合成,可以同時(shí)傳送4路352x288像素的視頻信號(hào)。
模擬CVBS信號(hào)輸入以后,經(jīng)過相關(guān)處理(鉗位、幅度放大、抗混疊濾波、A/D轉(zhuǎn)換、YUV分離)電路之后,轉(zhuǎn)換為BT.656 D的頻數(shù)據(jù)流,從SAA7113輸出的視頻數(shù)據(jù)源是分辨率為720x576 D1格式的視頻源。分辨率為720x576,每幀625行,每行1728個(gè)像素點(diǎn)。正好可以分割為4路252x288像素的視頻源,多余空間通過數(shù)據(jù)8010來填充。
首先配置SAA7113相關(guān)寄存器,把RTS0、RTS1配置為HS、VS,F(xiàn)PGA根據(jù)HS、VS的時(shí)序關(guān)系并利用片內(nèi)計(jì)數(shù)器對(duì)BT656數(shù)據(jù)流進(jìn)行幀同步檢測(cè),找到準(zhǔn)確的同步信息,確定定時(shí)信息。然后啟動(dòng)雙口RAM寫操作(寫RAM地址與BT656的行場(chǎng)時(shí)序嚴(yán)格對(duì)應(yīng),約定一種映射關(guān)系,方便讀操
作),再根據(jù)定時(shí)信息控制雙口RAM讀時(shí)序,把4路雙口RAM讀出端的數(shù)據(jù)線以總線方式連接在一起,F(xiàn)PGA分時(shí)地讀取不同的RAM模塊。4個(gè)RAM輸給FPGA的數(shù)據(jù)是連續(xù)的,它們分時(shí)地來自不同的模塊,填充到對(duì)應(yīng)的區(qū)域,原來存放第一場(chǎng)數(shù)據(jù)的位置用來存放第1、第2路視頻源,原來存放第二場(chǎng)數(shù)據(jù)的位置用來存放第3、第4路視頻源,同時(shí)插入ITU—R BT.656幀格式的同步信息,其他位置插入固定數(shù)據(jù)8010,產(chǎn)生一路符合ITU—R BT.656標(biāo)準(zhǔn)的D1格式的數(shù)字視頻流。
經(jīng)過合成處理以后,F(xiàn)PGA可以為CPU提供1路符合ITU—R BT.656 D1格式的視頻數(shù)據(jù)流。
3 實(shí)驗(yàn)分析及結(jié)語
對(duì)系統(tǒng)性能進(jìn)行了較為完備的測(cè)試,通過視頻編碼器對(duì)輸入合成視頻數(shù)據(jù)進(jìn)行測(cè)試。為了測(cè)試設(shè)計(jì)達(dá)到預(yù)定要求,選用了多種視頻輸入源進(jìn)行測(cè)試,有測(cè)試運(yùn)動(dòng)快慢及劇烈程度的畫面,有測(cè)試黑白圖像效果的全黑與全白,還有測(cè)試亮度等級(jí)的階梯圖案等等。
實(shí)驗(yàn)結(jié)果表明,在4路D1圖像輸入時(shí),平均信躁比達(dá)到33 dB以上,能實(shí)時(shí)地進(jìn)行編碼,解碼圖像畫面清晰流暢,沒有馬賽克以及動(dòng)畫現(xiàn)象,色彩鮮艷,亮度分明。
本文論述了一種4路D1視頻流合成1路D1格式視頻流的方法,此設(shè)計(jì)完全能滿足特定條件下的多路視頻數(shù)據(jù)傳輸,符合實(shí)際應(yīng)用場(chǎng)景,達(dá)到設(shè)計(jì)要求。