基于FPGA的高清嵌入解嵌系統的設計與實(shí)現
發(fā)布時(shí)間:2014-04-17 09:02:29 閱讀次數:5692
【摘要】
本文研究了基于單片FPGA的高清嵌入解嵌系統實(shí)現。根據SMPTE相關(guān)協(xié)議闡述了HD-SDI的信號格式,AES3音頻接口數據格式以及嵌入解嵌的實(shí)現框架和各個(gè)子模塊功能的實(shí)現。系統的實(shí)現結果符合預期,系統集成度、可靠性得到了有效的保障。
【關(guān)鍵字】 高清SDI, 嵌入, 解嵌, FPGA
[Abstract]
This paper make the research about mux and demux process of inserting audio or other user data into HD-SDI stream based on monolithic FPGA device. It discusses HD-SDI format which come from SMPTE protocol and AES3 interface data format acquired from AES3 standard.
More detail about system building and mux&demux implementation function are stated following. The designed
system accomplished good result as expected and show good integrity and stability.
[Key Words] HD-SDI, MUX, DEMUX, FPGA
前言
HD-SDI 已經(jīng)成為視頻廣播中心非壓縮高清晰視頻的主流接口。自從 HD-SDI的出現,就一直伴隨著(zhù)其他類(lèi)型的數據,包括嵌入數字音頻。在模擬視頻信號數字化的過(guò)程中,模擬信號中的行消隱時(shí)間和場(chǎng)消隱時(shí)間都被保留,并且轉換成為空白信息區間。在視頻演播室中,通??梢岳眠@些空白信息區間攜帶一些有用信息,這樣既能節省傳輸通道,減少干擾,又能保證這些信息與視頻信號的同步。模擬信號的行消隱區間對應的是數字信號中的水平消隱區間,通常稱(chēng)為水平輔助數據區,用于嵌入一些輔助數據,最常見(jiàn)的就是嵌入數字音頻信息。音頻嵌入解嵌在視頻處理過(guò)程中是非常重要的兩個(gè)環(huán)節。
HD-SDI接口
目前,廣播影視行業(yè)最普遍使用的數字分量視頻格式是采用 Y’、Cb’、Cr’彩色空間并且給予 4:2:2 采樣的方案。下表列出了 SMPTE 274M (Society of Motion Picture and Television Engineers,1998b)標準定義的 1080P/1080i 的高清視頻信號格式以及 1080i 一個(gè)完整幀的掃描示意圖。
表 1 HD-SDI 支持的高清視頻格式,有效樣本個(gè)數都是 1920*1080
注:表格中的 M=1.001
視頻格式的兩種命名方式是根據視頻掃描的隔行掃描和逐行掃描來(lái)區分的,“i”表示隔行掃描,“p”表示逐行掃描。通常后面還跟著(zhù)一個(gè)幀率,例如 1080i60,表示各行掃描率為 60Hz。我國采用的高清視頻標準是 1080i50。表2是 1080i 一個(gè)完整幀的掃描示意圖:
表 2 視頻幀格式
1~20
|
Vertical Blanking
|
First Field
|
21~560
|
Active lines
|
|
561~563
|
Vertical Blanking
|
|
564~583
|
Vertical Blanking
|
Second Field
|
584~1123
|
Active lines
|
|
1124~1125
|
Vertical Blanking
|
在 4:2:2 采樣格式中,亮度信號 Y’的采樣頻率為 74.25MHz,兩個(gè)色度信號Cr’、Cb’的采樣頻率分別為 37.125MHz,每種信號的量化比特數為 10 位。亮度信號和色度信號在處理的過(guò)程中是利用單獨的通道處理的,但是在傳輸過(guò)程中則需要交錯排列成一個(gè)通道。因此,并行高清信號的傳輸速率必須滿(mǎn)足 148.50MHz,串行傳輸速率為 1.485Gbps。HD-SDI 還支持另一種比特率,即 1.485/1.001G。
表1中顯示了高清視頻信號的總行數和每行的樣本總數(SMPTE 274M,1998),每一個(gè)視頻行作為視頻信號中的標準單元,被分成了兩個(gè)主要的部分,水平消隱區和有效視頻區。一行從參考時(shí)序 EAV(有效視頻結尾)開(kāi)始,EAV后面就是水平消隱區,水平消隱區的結尾是 SAV(有效視頻開(kāi)始),SAV 后面緊跟的就是有效視頻區。有效視頻區的樣本就是真正顯示在屏幕上的點(diǎn),而空白區對應的就是模擬視頻信號中的消隱區。下圖1顯示高清視頻數據流中的一個(gè)視頻行的數據格式,分開(kāi)處理的亮度信號和色度信號必須同步,對應區域必須對齊。在演播室的傳輸中,是把兩種信號流交錯到成一個(gè)信號流來(lái)傳輸。(SMPTE 292M,1998)。
圖1、視頻行數據排列
其中,SAV 是有效視頻行的開(kāi)始標志,占 4 個(gè)字,前三個(gè)是 3FF、000、000,第四個(gè)字是 XYZ,包含主要的時(shí)序信息。EAV 表示有效視頻行的結束,同 SAV格式相同。下表顯示的是 SAV 和 EAV 中第四個(gè)字的比特信息。
表 3.XYZ 比特位信息
其中,F 表示該行屬于哪一個(gè)場(chǎng),F=0 表示場(chǎng) 1,F=1 表示場(chǎng) 2。V 表示該行是否為場(chǎng)消隱區的行,H 用于區分 EAV 和 SAV,H=0 表示 SAV,H=1 表示 EAV。
P3=V⊕H、P2=F⊕H、P1=F⊕V、P0=F⊕V⊕H。EAV 之后的兩個(gè)字 LN,表示該視頻行在特定的視頻格式中所處的行數,色度和亮度信息中的 LN 是相同的。
表 4 LN 字比特信息
LN 后面的兩個(gè)字是前一行的循環(huán)冗余碼(CRC)。HD-SDI 接收器利用 CRC值檢查傳輸中的錯誤。循環(huán)冗余碼在 HD-SDI 中的作用,并不是實(shí)時(shí)處理錯誤,HD-SDI 中也不存在糾錯碼。CRC 錯誤檢測會(huì )被系統輸出,指示在傳輸鏈中的某個(gè)鏈接的設備出錯了,從而該設備可以被維修或更換。每個(gè)數據流都有各自的 CRC 值,其計算是根據下面的公式:
CRC 校驗從有效視頻區間的第一個(gè)字開(kāi)始計算直到下一行的 LN 的第二個(gè)字。水平消隱區和 SAV 不被計算。水平消隱區中的輔助數據通常有自己的錯誤檢測方法。
表 5 CRC 字的比特信息
HD-SDI 數據流中,SAV 和 EAV 中的 3FF、000、000 作為獨一無(wú)二的序列,作為整個(gè)數據流的參考時(shí)序,HD-SDI 接收器通過(guò)檢測這個(gè)序列來(lái)同步比特流。上面說(shuō)的是系統中亮度信號和色度信號分別在各自的通道進(jìn)行處理,因此各自具有視頻行的所有特征。在系統中數據傳輸時(shí),這兩個(gè)數據通道則會(huì )交錯成一個(gè)數據流。在 10 比特寬度的字傳輸中,色度信號流中的數據通常先發(fā)送。在 20比特寬度的傳輸中,色度信號被放置在低 10 比特位。這是因為 HD-SDI 串行器先發(fā)送低位,因此把色度信號流放在低位就是為了保證先被發(fā)送。在串行數據傳輸加擾之前,兩個(gè)數據流需要按照下圖被交錯到一個(gè)數據流中。每個(gè)視頻采樣點(diǎn)先是 2 個(gè)色差信號,再是一個(gè)亮度信號。在 10 比特寬度的字傳輸中,數據流 2 中的數據通常先發(fā)送。在 20 比特寬度的串行器中,數據流2 被連接到串行器的低 10 比特位,數據流 1 被連接到串行器的高 10 個(gè)比特位。因為 HD-SDI 串行器先發(fā)送低位。因此,把數據流 2 中的字放在低位,就是為了保證先被發(fā)送。
圖2、數據流交錯
在 HD-SDI 數據流交錯之后,需要對數據進(jìn)行一定的預加擾,增強數據的隨機性,便于接收端的時(shí)鐘數據恢復。HD-SDI 通常通過(guò)兩個(gè)階段對信號進(jìn)行加擾。首先,對數據進(jìn)行偽隨機加擾,其次把偽隨機加擾的輸出從非歸零 NRZ 數據轉換為反非歸零碼 NRZI。偽隨機加擾和線(xiàn)性反饋移位寄存器類(lèi)似,下面兩個(gè)公式就是這兩個(gè)步驟:
下圖顯示加擾的串行實(shí)現,當在 FPGA 中實(shí)現時(shí),這樣的 HD-SDI 加擾器在一個(gè)時(shí)鐘周期可以進(jìn)行 10 或者 20 比特的編碼。
圖3、HD-SDI加擾
⊕
數字音頻格式
在標清應用中,視頻素材一般嵌入立體聲音頻,分為左右聲道。在高清播出系統中,音頻的嵌入不僅要考慮到立體聲,還有可能是5.1聲道的環(huán)繞聲或者Dolby-E壓縮數字音頻。數字音頻信號標準也有很多種,例如AES/EBU、MADI、SDIF2、SPDIF 等。其中 AES/EBU 是 AES 和 EBU 共同制定的數字音頻的接口標準,指的是一種專(zhuān)業(yè)數字音頻接口標準,是目前廣播領(lǐng)域數字音頻的主流標準,廣泛應用于演播室各種接口的音頻設備間。
AES3 音頻結構的最基本數據結構稱(chēng)為子幀。每個(gè) 32 比特的子幀攜帶一個(gè)音頻樣本字以及一些其他的信息位。音頻字既可以是 24 比特,也可以是 20 比特。子幀的開(kāi)始是一個(gè) 4 比特的前導碼,音頻字后面的是有效位(V)、用戶(hù)數據位(U)、聲道狀態(tài)位(C)和校驗位(P)。一個(gè)幀由兩個(gè)連續的子幀組成,這兩個(gè)子幀分別是一個(gè)聲道對的兩個(gè)聲道的樣本。音頻幀按照 192 幀一組組成一個(gè)音頻塊,音頻組織結構如圖4所示。
圖4、一個(gè)音頻塊組成結構圖
AES3 接口的數據速率取決于音頻采樣率。理論上,音頻可以被任意的采樣率采樣,所以比特速率也可以是任意的。AES3 定義的標準音頻采樣率是 32 kHz,48 kHz, and 96 kHz。AES3 的多種比特速率使得在實(shí)際應用中經(jīng)常用到音頻采樣率的轉換。
嵌入解嵌技術(shù)
SMPTE272M是SD-SDI音頻嵌入標準,SMPTE299M是HD-SDI的24bits PCM音頻嵌入標準。美國電影電視工程協(xié)會(huì )(SMPTE)制定的SMPTE299M附加標準A中描述在 AES3 接口上傳輸SMPTE337M定義的非 PCM 編碼的多聲道音頻(環(huán)繞聲)。
傳輸的音頻信號數從最少的兩個(gè)聲道到最大的 16聲道。音頻聲道成對發(fā)送,一般一組 4 個(gè),每組都有一個(gè)單獨的輔助數據 ID。音頻數據包被嵌入到并行色差信號 Cb/Cr 的水平輔助數據空間,音頻控制包被嵌入到并行亮度信號 Y 的水平輔助數據空間。嵌入到視頻中的音頻包和SD-SDI的嵌入不同,沒(méi)有音頻擴展包只有兩種:一種是音頻數據包,一種是音頻控制包。
音頻數據包的格式在圖5 所示,音頻數據包包括輔助數據標志(ADF),數據標識(DID),數據塊序號(DBN),數據計數(DC),用戶(hù)數據(UDW)和校驗和(CS)。
圖5、音頻數據包格式
其中:
ADF:作為音頻包的其實(shí)標志,是一個(gè) 000 3FF 3FF 的序列。
DID:用在音頻包中,用于識別音頻組的標志,音頻組 1(聲道 1~4)的 DID是 2E7h,音頻組
2(聲道 5~8)的 DID 是 1E6h,音頻組 3(聲道 9~12)的 DID 是 1E5h,音頻組 4(聲道
13~16)的 DID 是 2E4h。
DBN:區別連續的 DID 相同的輔助數據包
DC: HD-SDI 中音頻包的 DC 值恒為 218h。
CLK:音頻時(shí)鐘相位表示視頻 EAV 的第一個(gè)字到音頻樣本輸入到格式化模塊時(shí)視頻樣本點(diǎn)之間的視頻時(shí)鐘數。專(zhuān)門(mén)用于異步音頻在接收端重新生成音頻采樣時(shí)鐘。
CH1~CH4:一個(gè)音頻包中包含一個(gè)音頻組即兩個(gè)聲道對共 4 個(gè)聲道的音頻樣本。每個(gè)音頻子幀在音頻數據包中用 4 個(gè)連續的字來(lái)表示,其格式如下表6:
表6、音頻子幀比特信息
其中,Z 標志的狀態(tài)用于同步 AES 音頻塊。相鄰兩個(gè)聲道一個(gè) Z 標志。
ECC:BCS(31,25)糾錯碼,對每個(gè)比特序列 b0 位到 b7 位。在該碼的范圍內對從 ADF 的第一個(gè)字到音頻數據的最后一個(gè)字進(jìn)行糾錯或檢錯。ECC 是 BCH(31,25)糾錯碼,用來(lái)對從 ADF 到 ECC 之前的所有字進(jìn)行糾錯。BCH 碼只針對每個(gè)字的 b0~b7 進(jìn)行糾錯。六個(gè)字的 ECC 是通過(guò)下面的式子生成的:
下圖為BCH碼的編碼電路:
圖6、BCH編碼電路
FPGA系統實(shí)現
嵌入和解嵌分別設計成兩個(gè)系統,最后完成兩個(gè)設備——嵌入設備、解嵌設備。由于兩個(gè)系統實(shí)現的是一種互逆過(guò)程,基本原理都一樣且實(shí)現方式都是采用單片FPGA完成數字邏輯的大部分功能,所以本文主要把兩個(gè)系統融合一起研究。
FPGA選定為Xilinx公司Spartan6系列芯片,具體型號為XC6SLX45T-FG484。該款FPGA芯片資源及特點(diǎn)如下表7所示:
表7
器件型號
|
XC6SLX45T
|
邏輯單元
|
43661
|
Slices數量
|
6822
|
觸發(fā)器數量
|
54576
|
DSP處理單元
|
58
|
BlockRAM容量
|
2Mbits
|
時(shí)鐘管理單元
|
4
|
DDR存儲器接口
|