文獻(xiàn)標(biāo)識碼: B
文章編號: 0258-7998(2012)12-0048-03
隨著數(shù)字技術(shù)的迅猛發(fā)展,視頻設(shè)備市場正在大規(guī)模地從模擬設(shè)備向數(shù)字設(shè)備轉(zhuǎn)型,從而導(dǎo)致對數(shù)字解碼芯片開發(fā)的大量需求。而在安防領(lǐng)域,高清產(chǎn)品的研發(fā)也在如火如荼地進(jìn)行。其中,高清串行數(shù)字接口HD-SDI產(chǎn)品也憑借其獨(dú)特的優(yōu)勢受到了廣泛關(guān)注,尤其是在從模擬設(shè)備升級到數(shù)字設(shè)備的過程中。
HD-SDI設(shè)備采用BNC接口,在從傳統(tǒng)的模擬框架轉(zhuǎn)為高清數(shù)字監(jiān)控系統(tǒng)的過程中不需要重新布線,只需要更換前端和后端設(shè)備即可,為工程節(jié)約了巨大的成本。而且,HD-SDI系統(tǒng)不像IP監(jiān)控系統(tǒng)那樣需要先將視頻信號進(jìn)行打包壓縮,它是以未經(jīng)壓縮的數(shù)字信號在同軸電纜上進(jìn)行高速傳輸,因此具有更高的穩(wěn)定性,有效地減少了失真,也不會產(chǎn)生IP高清的延遲現(xiàn)象,符合實(shí)時(shí)監(jiān)控的要求。同時(shí),它采用75-5同軸線進(jìn)行系統(tǒng)布線,可以保持圖像的完整性和原始性,為智能視頻分析IVS提供了保障。
考慮到HD-SDI在監(jiān)控領(lǐng)域的巨大發(fā)展?jié)摿湍壳靶酒坎荒軡M足市場需求的現(xiàn)狀,本文通過對高清視頻信號傳輸?shù)难芯?,在?yīng)用FPGA功能的基礎(chǔ)上,設(shè)計(jì)了一種符合SMPTE292M的高清晰度數(shù)字信號轉(zhuǎn)換電路,以實(shí)現(xiàn)對HD-SDI中的有效視頻數(shù)據(jù)、視頻定時(shí)基準(zhǔn)碼、行號數(shù)據(jù)、校驗(yàn)碼的分析,并對信號進(jìn)行串/并和并/串的轉(zhuǎn)換。
1 系統(tǒng)設(shè)計(jì)
本系統(tǒng)主要使用Xilinx公司的Xilinx ISE Design Suite 13.3軟件進(jìn)行設(shè)計(jì)。高清信號采用2:1隔行掃描,總行數(shù)為1 125行,場頻為60 Hz,有效行為1 080行,一行1 920個(gè)像素。
本系統(tǒng)主要由GTP收發(fā)模塊、數(shù)據(jù)分析模塊及有效信號提取模塊、雙口RAM和數(shù)據(jù)變換等模塊組成。GTP收發(fā)模塊為系統(tǒng)的核心部分,包含發(fā)送和接收兩個(gè)部分,完成對信號的解串和串碼??紤]到HD-SDI信號中并非所有的信號都是有效的視頻信號,因而在信號處理之前,必須要先分離出有效視頻信號,這部分功能由數(shù)據(jù)分析模塊實(shí)現(xiàn),并將提取出來的有效視頻信號存于RAM中。數(shù)據(jù)變換模塊完成對信號模式的轉(zhuǎn)換。整個(gè)系統(tǒng)的設(shè)計(jì)框圖如圖1所示。
2 核心模塊設(shè)計(jì)方法
2.1 GTP模塊的設(shè)計(jì)
該模塊用于HD-SDI視頻信號的接收與發(fā)射,以及串/并和并/串轉(zhuǎn)換編碼,為本系統(tǒng)的核心。ISE13.3軟件中的IP(CORE Generator&Architecture Wizard)中有GTP Transceiver Wizard,只需要設(shè)定相應(yīng)的參數(shù)即可。參數(shù)設(shè)計(jì)可以根據(jù)Xilinx發(fā)布的官方文件《Spartan-6 FPGA GTP Transceivers User Guide(UG386)》來設(shè)定。
根據(jù)參考文獻(xiàn)[1],本系統(tǒng)針對的信號為高清視頻信號,傳輸速率為1.485 Gb/s,數(shù)據(jù)位寬為20 bit(Cb/Cr,Y),即20 bit數(shù)據(jù)按照前Cb/Cr、后Y進(jìn)行處理。相關(guān)功能TX Buffer、Rx Buffer、PRBS設(shè)定為Enabled。將相應(yīng)的參數(shù)、選項(xiàng)設(shè)定好之后,即可將該Core添加到所建立的工程之中。
2.2 數(shù)據(jù)分析和有效信號提取模塊
該模塊的主要功能是根據(jù)HD-SDI數(shù)字行、場定時(shí)特點(diǎn),從GTP轉(zhuǎn)化的高清并行信號中提取有效數(shù)字視頻,并以并行的形式輸出,存儲到RAM之中,以方便對信號作進(jìn)一步變換。
該模塊輸入信號包括并行時(shí)鐘pclk、未處理的20 bit并行數(shù)據(jù)(pre_parallel_in);輸出信號包括提取出的有效數(shù)據(jù)輸出(processed_parallel_out)、出場識別(f)、場/幀消隱期信號(v)、行消隱期信號(h)、有效信號輸出使能(valid_en)。
參考文獻(xiàn)[2]中設(shè)計(jì)了4個(gè)20 bit的移位寄存器。在每個(gè)時(shí)鐘周期,前一位的移位寄存器的寄存數(shù)據(jù)都移到下一個(gè)寄存器,即一個(gè)時(shí)鐘周期里,收到的字節(jié)寫入第一個(gè)寄存器,而第一個(gè)寄存器的數(shù)據(jù)移到第二個(gè)寄存器,以此類推。因此,越早接收到的數(shù)據(jù)寄存的位置就越靠后,4個(gè)寄存器中的數(shù)據(jù)順序是字節(jié)輸入順序的逆序。
逆序之后,要對其中的數(shù)據(jù)進(jìn)行檢測,從而判定行起始標(biāo)志碼和行結(jié)束標(biāo)志碼。如果第1個(gè)寄存器的數(shù)據(jù)為十六進(jìn)制的3FF3FF,而第2、3個(gè)寄存器是0,第4個(gè)寄存器的第7位和第17位也是0,那么這就是有效行的起始標(biāo)志碼,其后面的數(shù)據(jù)則為有效視頻數(shù)據(jù),所以要對接下來的數(shù)據(jù)進(jìn)行處理和操作;如果前3個(gè)寄存器和上述前3個(gè)寄存器相同,第4個(gè)寄存器的第7位和第17位為1,那么這就是有效行的結(jié)束標(biāo)識碼,其后的數(shù)據(jù)也就沒有用,應(yīng)將其舍棄。
同時(shí),也要對XYZ其他各位數(shù)據(jù)進(jìn)行分析。通過對第8位的分析,可以判斷當(dāng)前是在哪一個(gè)場區(qū)間;通過對第6位的判斷,可以判定信號是SAV信號,還是EAV信號;如果有效數(shù)據(jù)中連續(xù)兩行的第8位都有變化,則表明正在傳輸一場新的數(shù)據(jù),其中SAV的標(biāo)志位是場區(qū)間的頭部的位置。核心判定代碼如下:
if(mem4==20'h3ff3ff && mem3==20'h0 && mem2==20'h0 && mem1[9]==1 && mem1[19]==1 && mem1[6]==0 && mem1[16]==0) //3ff,000,000,1xyz;有效圖形起始
else if(mem4==20'h3ff3ff && mem3==20'h0 && mem2==20'h0 && mem1[9]==1 && mem1[19]==1 && mem1[6]==1 && mem1[16]==1) //有效圖形結(jié)束
2.3 雙口RAM模塊
根據(jù)參考文獻(xiàn)[3],可以利用雙口RAM具有兩個(gè)獨(dú)立系統(tǒng)的功能達(dá)到數(shù)據(jù)共享的目的。實(shí)現(xiàn)雙口RAM的設(shè)計(jì)方法有很多,考慮到設(shè)計(jì)的產(chǎn)品可以進(jìn)行升級,并且盡可能減少系統(tǒng)測試和維護(hù)的成本,決定采用FPGA來進(jìn)行設(shè)計(jì)實(shí)現(xiàn),所得產(chǎn)品可以實(shí)現(xiàn)對數(shù)據(jù)并行和高速傳送的要求。
本系統(tǒng)中,高清信號的格式為1 920×1 080,一行共1 920個(gè)像素,總數(shù)據(jù)量為1 920×20 bit=38 400 bit,且RAM的數(shù)據(jù)寬度為20 bit。因此,需要1 920個(gè)存儲單元,地址線可取為11 bit。
本模塊包括時(shí)鐘clk、20 bit并行寫數(shù)據(jù)口(data_in)、20 bit并行讀數(shù)據(jù)口(data_out)、11 bit寫地址線(wr_address)、11 bit讀地址線(rd_address)、寫使能信號線(write)、讀使能信號線(read)。雙口RAM的實(shí)現(xiàn)代碼如下:
module dual_port_ram( clk, data_in, rd_address, read,wr_address,write, data_out );
input clk;
input [19:0] data_in;
input [10:0] rd_address;
input read;
input [10:0] wr_address;
input write;
output [19:0] data_out;
reg[19:0]data_out;
reg[19:0]mem[10:0];
always@(posedge clk)
begin
if(write)
mem[wr_address]<=data_in;
else
mem[wr_address]<=mem[wr_address];
if(read)
data_out<=mem[rd_address];
else
data_out<=data_out;
end
endmodule
2.4 數(shù)據(jù)變換模塊
該模塊為數(shù)據(jù)分析與提取模塊的逆過程。從雙口RAM中得到有效數(shù)據(jù),根據(jù)IHD-SDI數(shù)字行、場定時(shí)特點(diǎn),添加相應(yīng)的圖像定時(shí)基準(zhǔn)碼、行號數(shù)據(jù)、誤碼檢測碼、輔助數(shù)據(jù)和消隱數(shù)據(jù)。
根據(jù)HD-SDI數(shù)字行、場定時(shí)特點(diǎn),一行數(shù)據(jù)的順序?yàn)椋篍AV(FFFFF、00000、00000、XYZXYZ)、有效數(shù)據(jù)、SAV(FFFFF、00000、00000、XYZXYZ)、LN0LN1、CCR0YCR0、消隱數(shù)據(jù)。根據(jù)相應(yīng)標(biāo)準(zhǔn),消隱期數(shù)據(jù)為Y(16=10h)、Cr/Cb(128=1000h),即Y中固定的16 bit填充位置填充的是10h,Cb/Cr中128 bit填充位置填充的是1000h。
根據(jù)參考文獻(xiàn)[4],設(shè)計(jì)該模塊先輸出EAV,然后輸出從雙口RAM得到的有效視頻信號,再輸出SAV信號,最后輸出消隱期數(shù)據(jù),至此即完成了將有效數(shù)據(jù)變?yōu)楦咔逡曨l對應(yīng)格式的并行數(shù)據(jù)輸出,如圖2所示。
由圖3可知,當(dāng)輸入信號pre_parallel_in[19:0]依次輸入十六進(jìn)制數(shù)‘ffffff’、‘00000’、‘00000’、‘ab2ac’時(shí),數(shù)據(jù)分析與提取模塊正確地判斷此為SAV信號,后面的數(shù)據(jù)為有效數(shù)據(jù),因此Valid_en由‘0’變?yōu)?amp;lsquo;1’,同時(shí)并行輸出口processed_parallel_out[19:0]由原來設(shè)置的高阻態(tài)變?yōu)檎]敵鰻顟B(tài),開始輸出有效視頻信號。由該圖可以看出,f、v、h相應(yīng)地發(fā)生變化。由HD-SDI數(shù)字行、場定時(shí)特點(diǎn)可知,這符合設(shè)計(jì)要求。
由圖4可知,當(dāng)有效視頻信號輸入完之后,pre_parallel_in[19:0]再依次輸入‘ffffff’、‘00000’、‘00000’、‘bb2ec’時(shí),該模塊正確地判斷此為EAV信號,有效視頻信號在此時(shí)已經(jīng)輸入完畢,后面的數(shù)據(jù)不再有效,因此Valid_en由‘1’變?yōu)?amp;lsquo;0’,同時(shí)并行數(shù)據(jù)輸出口processed_parallel_out[19:0]由正常輸出有效數(shù)據(jù)狀態(tài)變回為高阻態(tài)。由該圖可以看出,v、h相應(yīng)地發(fā)生變化,由‘0’變?yōu)?amp;lsquo;1’;f沒變,依舊為‘0’。由HD-SDI數(shù)字行、場定時(shí)特點(diǎn)可知,這符合設(shè)計(jì)要求。
數(shù)據(jù)變化模塊的仿真結(jié)果如圖5和圖6所示。
如圖5所示,數(shù)據(jù)輸出端data_converter_out[19:0]首先正確地輸出SAV信號(fffff、00000、00000、ab2ac),之后便將從雙口RAM得到的有效數(shù)據(jù)data_in[19:0]送到輸出口輸出,這里仿真時(shí)將輸入數(shù)據(jù)都置為00007。
由圖6所示,數(shù)據(jù)輸出端data_converter_out[19:0]在將1 920個(gè)有效數(shù)據(jù)正確地輸出之后輸出EAV信號(fffff、00000h、00000h、bb2ec),然后輸出消隱期數(shù)據(jù)40010h。
本文通過對高清視頻信號的研究,在對數(shù)字視頻相關(guān)知識、HD-SDI、Xilinx公司的FPGA、GTP高速串行收發(fā)器進(jìn)行深入研究的基礎(chǔ)上,用Xilinx公司最新生產(chǎn)的Spartan-6系列FPGA芯片,成功設(shè)計(jì)了一種HD-SDI編碼技術(shù)。該設(shè)計(jì)是一種符合SMPTE292M標(biāo)準(zhǔn)的高清晰度數(shù)字電視信號轉(zhuǎn)換電路,可以對HD-SDI中的有效視頻數(shù)據(jù)、視頻定時(shí)基準(zhǔn)碼、行號數(shù)據(jù)、校驗(yàn)碼進(jìn)行分析,并就信號進(jìn)行串/并和并/串的轉(zhuǎn)換。通過功能仿真驗(yàn)證了本方案能夠成功實(shí)現(xiàn)設(shè)計(jì)的功能,并且不需使用以前常用的專業(yè)集成芯片GS1560解串器和串碼器GS1532等,具有很強(qiáng)的創(chuàng)新性和實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 劉曉軍.采用HD-SDI的高清視頻采集卡的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2009,33(1):91-93.
[2] 李鴻強(qiáng),苗長云,劉曉軍,等.HD-SDI數(shù)字視頻信號處理及傳輸?shù)腇PGA設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2007,24(10):269-272.
[3] 秦鴻剛,劉京科,吳迪.基于FPGA的雙口RAM實(shí)現(xiàn)及應(yīng)用[J].電子設(shè)計(jì)工程,2010,18(2):72-74.
[4] 彭慧英.基于GS1560的HD-SDI碼流解串器的硬件設(shè)計(jì)[J].電子質(zhì)量,2010(6):27-31.