採用FPGA通過BT.656接口實現傳輸4路視頻流的方法

引言

ITU-R BT.656定義了一個並行的硬件接口用來傳送一路4:2:2的YCbCr的數字視頻流。視頻流的分辨率為720×576像素的D1格式。我們需要發送的視頻數據源通常是經過MPEG2壓縮的,分辨率為352×288像素的CIF格式。在輸出到顯示終端前,處理器需要對CIF格式的圖像數據插值為D1(720×576像素)格式,然後再通過ITU-R BT.656並行的硬件接口輸出給視頻編碼器。在這種前提下,可以利用一個ITU-R BT.656的硬件接口傳輸4路不同的CIF格式的視頻數據流,然後在接收側通過FPGA(現場可編程門陣列)將4路視頻數據流分離、插值生成D1格式的數據輸出給視頻編碼器。通過該方式,可以克服某些視頻處理器輸出端口的限制,使視頻輸出端口擴展為原來的4倍。同時,由於使用FPGA進行插值運算,分擔了一部分視頻處理器的工作量。


1 硬件連接

圖1展示了一個BT.656並行硬件接口用來連接一個視頻處理器和視頻編碼器的情況。該硬件接口由8根數據信號和1根時鐘信號組成。
圖2所示是通過FPGA擴展4路視頻的連接方式。FPGA通過BT.656接口接收視頻處理器發出的數據信號,然後將4路視頻信號分離、插值後通過4路BT.656並行硬件接口輸出到4個視頻編碼器,實現視頻處理器一個視頻輸出端口同時輸出4路視頻信號。


2 數據結構

2.1 標准BT.656並行數據結構

BT.656並行接口除了傳輸4:2:2的YCbCr視頻數據流外,還有行、列同步所用的控制信號。如圖3所示,一幀圖像數據由一個625行、每行1 728字節的數據塊組成。其中,23~311行是偶數場視頻數據,336~624行是奇數場視頻數據,其余為垂直控制信號。
BT.656每行的數據結構如圖4所示。


圖4中,每行數據包含水平控制信號和YCbCr。視頻數據信號。視頻數據信號排列順序為Cb-Y-Cr-Y。每行開始的288字節為行控制信號,開始的4字節為EAV信號(有效視頻結束),緊接著280個固定填充數據,最後是4字節的SAV信號(有效視頻起始)。

SAV和EAV信號有3字節的前導:FF、FF、00;最後1字節XY表示該行位於整個數據幀的位置及如何區分SAV、EAV。XY字節各比特位含義見圖5。
圖5中,最高位bit7為固定數據1;F=0表示偶數場,F=1表示奇數場;V=0表示該行為有效視頻數據,V=1表示該行沒有有效視頻數據;H=0表示為SAV信號,H=1表示為EAV信號;P3~P0為保護信號,由F、V、H信號計算生成;P3=V異或H;P2=F異或H;P1=F異或V;P0=F異或V異或H。


引用來源
較新的 較舊