胡捃, 云利軍, 石俊生, 高銀, 雷連莎
(1.云南師范大學(xué) 顏色與圖像視覺實(shí)驗(yàn)室,云南 昆明650500;2.云南師范大學(xué) 信息學(xué)院,云南 昆明650500)
隨著科學(xué)技術(shù)的飛躍發(fā)展,視頻圖像已成為人們生活必不可缺的信息載體.LVDS低壓差分信號(hào)傳輸是20世紀(jì)90年代產(chǎn)生的一種數(shù)據(jù)傳輸和接口轉(zhuǎn)換技術(shù),因其具有高速、低噪聲、低EMI、低電源、低損耗等特點(diǎn),因而成為高速視頻的首選接口標(biāo)準(zhǔn)[1].由于不同顯示設(shè)備的接口標(biāo)準(zhǔn)不同,因此需要視頻轉(zhuǎn)換器對(duì)視頻信號(hào)進(jìn)行轉(zhuǎn)換從而使其在不同設(shè)備上顯示.本文應(yīng)某航空研究所對(duì)高速視頻傳輸系統(tǒng)的要求,基于FPGA技術(shù),設(shè)計(jì)一個(gè)將通用PAL制模擬視頻信號(hào)轉(zhuǎn)換成XGA格式的LVDS信號(hào)的視頻轉(zhuǎn)換器,其中將視頻處理的相關(guān)算法——去隔行、幀頻提升制成IP核形式,以便后來開發(fā)者的復(fù)用.
本設(shè)計(jì)以FPGA為平臺(tái),將原始的隔行掃描的PAL制模擬視頻信號(hào)轉(zhuǎn)換為逐行掃描的XGA形式的LVDS視頻信號(hào),并使圖像的分辨率由720×576提高到1 024×768.即PAL-LVDS視頻轉(zhuǎn)換器主要完成的功能包括視頻信號(hào)的采集、分配、存儲(chǔ)以及顯示,其中包括去隔行技術(shù)、分辨率轉(zhuǎn)換、幀頻轉(zhuǎn)換、色度空間轉(zhuǎn)換等視頻處理.系統(tǒng)的總體結(jié)構(gòu)及其功能框圖如圖1所示.其中,F(xiàn)PGA依靠像素時(shí)鐘和行、場(chǎng)同步信號(hào)采集SAA7111A解碼器輸出的視頻數(shù)據(jù)YUV信號(hào),并利用雙SRAM模塊進(jìn)行視頻圖像處理,最后通過編碼器(DS90C383)對(duì)信號(hào)進(jìn)行編碼輸出LVDS視頻信號(hào).
圖1 PAL-LVDS視頻轉(zhuǎn)換器結(jié)構(gòu)框圖Fig.1 The structure diagram of PAL-LVDS video converter board
解碼芯片選用Philips公司生產(chǎn)的SAA7111A芯片,它由主控芯片F(xiàn)PGA(EP2C8F256I6)通過IIC串行總線對(duì)其進(jìn)行初始化配置.SAA7111A 芯片具有如下優(yōu)點(diǎn)[2]:①它有4路輸入視頻模擬信號(hào) AI11、AI12、AI21、AI22,其視頻輸入信號(hào)可以是復(fù)合視頻信號(hào)(CVBS)或2路S-Video模擬輸入信號(hào);②能自動(dòng)識(shí)別NTSC和PAL輸入視頻信號(hào);③支持YUV的輸出格式有4:2:2(16Bit)、4:2:2(8Bit)、4:1:1(12Bit)或RGB輸出格式有8:8:8(24Bit)、5:6:6(16Bit);④通過IIC配置能調(diào)節(jié)信號(hào)的亮度、對(duì)比度和飽和度[3].
系統(tǒng)需要將分辨率為720×576@25幀/秒、隔行掃描的PAL制模擬視頻信號(hào)轉(zhuǎn)換成分辨率為1 024×768@60幀/秒、逐行掃描的XGA格式信號(hào),這需要一系列視頻圖像算法來完成.區(qū)別于普通靜態(tài)圖像處理,在視頻圖像處理過程中要求視頻顯示輸出的流暢性和實(shí)時(shí)性.考慮到這一點(diǎn),系統(tǒng)選用兩塊大容量SRAM用于FPGA外圍存儲(chǔ)視頻圖像.在這次設(shè)計(jì)中,SRAM芯片選用的是Cypress公司的高速、大容量存儲(chǔ)器CY7C1061AV33(1M×16bits).兩塊 SRAM 與FPGA芯片在進(jìn)行通信時(shí),通過乒乓操作和相關(guān)算法來完成視頻格式轉(zhuǎn)換.
編碼模塊選用的是國(guó)際半導(dǎo)體公司生產(chǎn)的編碼芯片DS90C383.該芯片是一款功能強(qiáng)大的串行傳輸芯片,它可以將24位的并行視頻數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)的串行差分接口信號(hào)(LVDS)來輸出.DS90C383支持像素時(shí)鐘為20~65MHz,傳輸?shù)臄?shù)據(jù)量可高達(dá)1.8Gbps,符合TIA/EIA-644LVDS標(biāo)準(zhǔn)[4].
PAL-LVDS視頻轉(zhuǎn)換器軟件設(shè)計(jì)主要包括解碼器的配置、隔行掃描轉(zhuǎn)逐行掃描的設(shè)計(jì)、分辨率轉(zhuǎn)換的設(shè)計(jì)、幀頻變換的設(shè)計(jì)等,其中本文把隔行掃描轉(zhuǎn)逐行掃描的設(shè)計(jì)和幀頻變換的設(shè)計(jì)制成IP核,以便后來開發(fā)者的復(fù)用.視頻轉(zhuǎn)換器的軟件設(shè)計(jì)及相關(guān)IP核生成框圖如圖2所示.
圖2 視頻轉(zhuǎn)換器的軟件設(shè)計(jì)及相關(guān)IP核生成框圖Fig.2The video interface converter for software design and generate relate IP cores
將PAL模擬視頻信號(hào)由隔行掃描變?yōu)橹鹦袙呙瑁壳爸饕袌?chǎng)內(nèi)插值法、場(chǎng)間插值法、基于運(yùn)動(dòng)估計(jì)的自適應(yīng)插補(bǔ)法[5],基于這幾種方法的優(yōu)缺點(diǎn),本文選用場(chǎng)間插值法來實(shí)現(xiàn)去隔行.
場(chǎng)間插值方法在硬件上實(shí)現(xiàn)是通過兩片SRAM在FPGA的控制下進(jìn)行乒乓操作完成的.首先SAA7111A解碼器輸出的隔行掃描視頻信號(hào)的第一幀的奇數(shù)場(chǎng)數(shù)據(jù)流緩存到SRAM1中,這意味著每寫一行地址需要空出一行地址給偶數(shù)場(chǎng)數(shù)據(jù)流,然后在實(shí)際操作中將偶場(chǎng)數(shù)據(jù)流插入SRAM1中的奇數(shù)場(chǎng)數(shù)據(jù)流中.在操作完成后,一幅完整的圖像就存儲(chǔ)到SRAM1存儲(chǔ)器中.然后第二幀視頻信號(hào)按相同的方法依次存入到SRAM2中.與此同時(shí),F(xiàn)PGA將已經(jīng)存入到SRAM1中的第一幀視頻數(shù)據(jù)順序讀出.乒乓操作使得SRAM1和SRAM2一直處于讀寫的狀態(tài)中,完成隔行掃描到逐行掃描的轉(zhuǎn)換.
首先,在 Quartus9.0中用硬件描述語(yǔ)言Verilog HDL將PAL制模擬視頻信號(hào)由隔行掃描變逐行掃描進(jìn)行描述,并對(duì)其進(jìn)行編譯、綜合、驗(yàn)證成功后,則可轉(zhuǎn)化為IP核形式,即創(chuàng)建一個(gè)design partion輸出網(wǎng)表文件(.qxp文件).
按照這樣的開發(fā)流程,在建立新的工程時(shí)可以直接調(diào)用該網(wǎng)表文件,在新建工程中根據(jù)提供的端口信息實(shí)例化這個(gè)設(shè)計(jì)模塊,與其他模塊進(jìn)行邏輯連接,即可縮短開發(fā)周期.調(diào)用生成的去隔行IP核的RTL框圖,俗稱黑盒子,如圖3所示,單擊該框圖即可察看到該IP的端口信息,但無邏輯關(guān)系.
圖3 調(diào)用IP核RTL圖Fig.3 Call the RTL map of IP core
最后,在QuartusII 9.0中利用硬件描述語(yǔ)言Verilog HDL對(duì)其進(jìn)行調(diào)用、編譯并進(jìn)行仿真驗(yàn)證,其仿真波形如圖4所示.
圖4 去隔行仿真波形Fig.4 The simulation waveform of de-interlacing
圖4 中的pixel_clk、key依次為像素時(shí)鐘27 Mhz、復(fù)位信號(hào),F(xiàn)i、Vi、Hi依次為PAL信號(hào)的奇偶場(chǎng)信號(hào)、行消隱信號(hào)和場(chǎng)同步消隱信號(hào),中間變量 wr_burst_address和 wr_burst_data依次為寫入SRAM的地址和數(shù)據(jù),rd_burst_address和rd_burst_data依次為從SRAM中讀出的地址和數(shù)據(jù).從圖中可知,經(jīng)去隔行處理后,輸出數(shù)據(jù)的形式為奇偶行交錯(cuò)輸出,繼而驗(yàn)證了該去隔行技術(shù)的可行性.
本文實(shí)現(xiàn)的功能之一為實(shí)現(xiàn)分辨率增大,即視頻信號(hào)的分辨率由720×576擴(kuò)大到1 024×768.分辨率的放大,使得行同步頻率和每場(chǎng)行數(shù)都得到增加,這樣每場(chǎng)就會(huì)有新數(shù)據(jù)產(chǎn)生,則像素的時(shí)鐘頻率和每行像素量均有相應(yīng)的增加,每行就需有新像素值生成.采用均勻插值方式,即對(duì)存放原始信號(hào)數(shù)據(jù)的SRAM產(chǎn)生有重復(fù)的地址計(jì)數(shù)值作為SRAM的讀取地址,實(shí)現(xiàn)對(duì)某些行的某些像素進(jìn)行重復(fù)讀取.為了保證變換后圖像拉伸均勻,對(duì)寫入的視頻數(shù)據(jù)的分辨率實(shí)現(xiàn)3∶4的放大,讀出的視頻數(shù)據(jù)的分辨率變?yōu)?60×768.
上面還沒有達(dá)到設(shè)計(jì)的需要,此時(shí)根據(jù)人眼對(duì)黑點(diǎn)的識(shí)別度不高,在各幀圖像的每行兩邊各加32個(gè)黑點(diǎn),分辨率即達(dá)到1 024×768.根據(jù)分辨率變換值累加法,分辨放大后為1 024×768的XGA格式的LVDS信號(hào),此時(shí)像素時(shí)鐘為50 Mhz.分辨放大前后每行像素?cái)?shù)量變換比值為720∶1 024.用像素時(shí)鐘從0開始計(jì)數(shù),并從初值0開始每20ns進(jìn)行模720累加1 024計(jì)算.加法器在每個(gè)時(shí)鐘上升沿時(shí),將初值(一開始為0)加720,若結(jié)果小于1024,則直接作為下次的累加初值;若結(jié)果大于等于1 024,則結(jié)果減去720作為下次累加初值.像素時(shí)鐘的計(jì)數(shù)通過累加結(jié)果進(jìn)行使能控制:若累加結(jié)果小于1 024時(shí),則不允許計(jì)數(shù);當(dāng)累加結(jié)果大于等于1 024時(shí),允許計(jì)數(shù),這樣每1 024次累加中會(huì)有720次允許計(jì)數(shù),即每1 024個(gè)時(shí)鐘均勻產(chǎn)生了720個(gè)有重復(fù)的計(jì)數(shù)值,該計(jì)數(shù)值就作為讀取RAM的像素地址.
行數(shù)變換同上,分辨率放大后對(duì)其進(jìn)行行同步計(jì)數(shù),使能控制由累加去模計(jì)算的結(jié)果來決定,而RAM的讀取行地址為計(jì)數(shù)值.
本設(shè)計(jì)采用幀復(fù)制法[6],將視頻信號(hào)的幀頻由隔行掃描的25幀(每寫入5幀50Hz信號(hào))變?yōu)橹鹦袙呙璧?0幀(輸出6幀60Hz信號(hào)).在選擇的乒乓操作中,每輸入一幀原始信號(hào)進(jìn)行一次乒乓操作.在一個(gè)操作的周期內(nèi),在向?qū)慡RAM中寫入原始數(shù)據(jù)的一幀后,由另一個(gè)SRAM讀出該信號(hào),當(dāng)前的幀就完成了輸出,接著,開始讀取寫RAM的首行數(shù)據(jù),從而開始輸出新的一幀.即讀SRAM行地址計(jì)數(shù)器從原值繼續(xù)計(jì)至最大值后再?gòu)?開始計(jì)數(shù),共完成約1.2個(gè)計(jì)數(shù)周期,即每經(jīng)過5次乒乓工作切換,讀SRAM的行地址計(jì)數(shù)器計(jì)滿6個(gè)周期[7].其中每5幀圖像中第1幀圖像傳輸兩遍,即可達(dá)到最后輸出的圖像幀頻為60幀.
首先,利用Quartus II 9.0用硬件描述語(yǔ)言Verilog描述該模塊,編譯綜合成功后,對(duì)其進(jìn)行仿真,若滿足幀頻提升的目的,再將源文件導(dǎo)出成一個(gè)網(wǎng)表文件(.qxp)和布局布線信息,制成IP核.調(diào)用該IP核的RLT框圖如圖5所示,單擊該框圖即可察看到該IP的端口信息,但無邏輯關(guān)系.
圖5 調(diào)用幀頻提升IP核RTL圖Fig.5 The RTL map of frame rate up-conversion IP core
其中,在Quartus II 9.0中采用Testbench結(jié)合Modelsim對(duì)其進(jìn)行仿真驗(yàn)證,其仿真波形如圖6所示.圖中,中間變量 wr_pic_number、rd_pic_numeber分別為存入SRAM中視頻信號(hào)的圖片數(shù)、從SRAM中讀出的視頻信號(hào)的圖片數(shù).波形顯示寫入圖片數(shù)5張,讀出圖片數(shù)6張,說明輸出信號(hào)每隔5幀重復(fù)一幀,滿足系統(tǒng)設(shè)計(jì)需求.后來開發(fā)者在建立新的工程時(shí)根據(jù)提供的器件名,可以直接調(diào)用該IP核,與其他模塊進(jìn)行邏輯連接、例化,從而可以縮短開發(fā)周期.
圖6 幀頻提升仿真波形Fig.6 The simulation waveform of frame rate up-conversion
PAL視頻信號(hào)的主要特性之一為其顏色模型YUV,本系統(tǒng)圖像傳感器輸出格式為4∶2∶2的YUV信號(hào),需要將其進(jìn)行RGB信號(hào)轉(zhuǎn)換,轉(zhuǎn)換后的格式為8∶8∶8,然后通過自行設(shè)計(jì)的XGA轉(zhuǎn)DVI視頻轉(zhuǎn)換器來觀察顯示效果.根據(jù)ITU-RBT.656視頻標(biāo)準(zhǔn)接口,對(duì)于位寬為10比特的視頻數(shù)據(jù),PAL的RGB顏色空間與YUV顏色空間的轉(zhuǎn)換關(guān)系如下[8]:
在Quartus 9.0中,使用Verilog HDL對(duì)其進(jìn)行描述,因?yàn)槲覀冚斎氲腜AL制視頻數(shù)據(jù)位寬為10,而YUV的比例為4∶2∶2,所以其仿真的值依次為 Y-64、U-258、U-258,并滿足 Y 分量取值為 16-235,U 和 V 分量的取值為 6-240.用Modelsim對(duì)YUV_RGB.v程序進(jìn)行仿真后的結(jié)果如圖7所示.
圖7 YUV_RGB仿真程序圖Fig.7 The simulation waveform of YUV_RGB
搭建調(diào)試硬件平臺(tái)和軟件平臺(tái),通過配置SAA7111A各個(gè)寄存器后,數(shù)字視頻信號(hào)的每個(gè)像素時(shí)鐘、水平頻率和垂直頻率均滿足設(shè)計(jì)要求,并在帶DVI接口的顯示器上觀察到顯示效果.圖8所示為硬件電路的開發(fā)和實(shí)驗(yàn)結(jié)果,其中圖8(a)為視頻信號(hào)硬件電路板,圖8(b)為調(diào)試后的顯示效果.
圖8 測(cè)試平臺(tái)和實(shí)驗(yàn)結(jié)果:(a)視頻轉(zhuǎn)換接口板;(b)調(diào)試后的顯示效果Fig.8 Test platform and the experimental results:(a)The video adapter plate;(b)The display after debugging
本文設(shè)計(jì)的是基于FPGA技術(shù)上實(shí)現(xiàn)的視頻轉(zhuǎn)換器PAL-LVDS,并將視頻處理方法中的隔行轉(zhuǎn)逐行技術(shù)、幀頻提升分別生成IP核形式.根據(jù)自頂向下的設(shè)計(jì)思想,將其進(jìn)行層次功能劃分,并對(duì)各子模塊進(jìn)行仿真驗(yàn)證,實(shí)現(xiàn)了視頻信號(hào)的采集、分配、存儲(chǔ)、去隔行、分辨率放大、幀頻放大及色度空間的轉(zhuǎn)換.本文生成的IP核具有很好的可移植性,便于再次復(fù)用,縮短設(shè)計(jì)周期.
[1]張光烈,鄭南寧,吳勇,等.面向格式轉(zhuǎn)換的數(shù)字視頻處理方法及其實(shí)現(xiàn)硬件實(shí)現(xiàn)[J].中國(guó)工程科學(xué),2001,3(6):41-47.
[2]胡海英,胡冰,趙新田,等.用SAA7111A設(shè)計(jì)模擬視頻轉(zhuǎn)換接口[J].電子技術(shù)應(yīng)用,2003,29(1):52-54.
[3]王前,吳淑泉,劉喜英.基于FPGA的IIC總線接口實(shí)現(xiàn)方法[J].微電子技術(shù),2002(3):21-26.
[4]CEA-861-D 1-176,2006SCEA Standard A DTV Profile for Uncompressed High Speed Digital Interfaces[S].Arlington:Consumer Electronics Association,2006.
[5]張旭.基于FPGA的PAL-XGA圖像轉(zhuǎn)換控制器設(shè)計(jì)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007.
[6]張旭,王彬.一種基于FPGA的實(shí)時(shí)圖像轉(zhuǎn)換控制器設(shè)計(jì)[J].圖像與多媒體技術(shù),2007(10):66-68.
[7]鄭永進(jìn).視頻格式轉(zhuǎn)換算法研究及FPGA實(shí)現(xiàn)-去隔行、幀頻轉(zhuǎn)換、分辨率變換[D].東南大學(xué)碩士學(xué)位論文,2007.
[8]PILLAI LATHER.Color Space Converter[EB/OL].http://courses. cs. washington. edu/courses/cse567/03au/homework/color.pdf.