基于FPGA的高清嵌入解嵌系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2014-04-17 09:02:29 閱讀次數(shù):6496
【摘要】
本文研究了基于單片F(xiàn)PGA的高清嵌入解嵌系統(tǒng)實(shí)現(xiàn)。根據(jù)SMPTE相關(guān)協(xié)議闡述了HD-SDI的信號(hào)格式,AES3音頻接口數(shù)據(jù)格式以及嵌入解嵌的實(shí)現(xiàn)框架和各個(gè)子模塊功能的實(shí)現(xiàn)。系統(tǒng)的實(shí)現(xiàn)結(jié)果符合預(yù)期,系統(tǒng)集成度、可靠性得到了有效的保障。
【關(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的出現(xiàn),就一直伴隨著其他類(lèi)型的數(shù)據(jù),包括嵌入數(shù)字音頻。在模擬視頻信號(hào)數(shù)字化的過(guò)程中,模擬信號(hào)中的行消隱時(shí)間和場(chǎng)消隱時(shí)間都被保留,并且轉(zhuǎn)換成為空白信息區(qū)間。在視頻演播室中,通??梢岳眠@些空白信息區(qū)間攜帶一些有用信息,這樣既能節(jié)省傳輸通道,減少干擾,又能保證這些信息與視頻信號(hào)的同步。模擬信號(hào)的行消隱區(qū)間對(duì)應(yīng)的是數(shù)字信號(hào)中的水平消隱區(qū)間,通常稱(chēng)為水平輔助數(shù)據(jù)區(qū),用于嵌入一些輔助數(shù)據(jù),最常見(jiàn)的就是嵌入數(shù)字音頻信息。音頻嵌入解嵌在視頻處理過(guò)程中是非常重要的兩個(gè)環(huán)節(jié)。
HD-SDI接口
目前,廣播影視行業(yè)最普遍使用的數(shù)字分量視頻格式是采用 Y’、Cb’、Cr’彩色空間并且給予 4:2:2 采樣的方案。下表列出了 SMPTE 274M (Society of Motion Picture and Television Engineers,1998b)標(biāo)準(zhǔn)定義的 1080P/1080i 的高清視頻信號(hào)格式以及 1080i 一個(gè)完整幀的掃描示意圖。
表 1 HD-SDI 支持的高清視頻格式,有效樣本個(gè)數(shù)都是 1920*1080

注:表格中的 M=1.001
視頻格式的兩種命名方式是根據(jù)視頻掃描的隔行掃描和逐行掃描來(lái)區(qū)分的,“i”表示隔行掃描,“p”表示逐行掃描。通常后面還跟著一個(gè)幀率,例如 1080i60,表示各行掃描率為 60Hz。我國(guó)采用的高清視頻標(biāo)準(zhǔn)是 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 采樣格式中,亮度信號(hào) Y’的采樣頻率為 74.25MHz,兩個(gè)色度信號(hào)Cr’、Cb’的采樣頻率分別為 37.125MHz,每種信號(hào)的量化比特?cái)?shù)為 10 位。亮度信號(hào)和色度信號(hào)在處理的過(guò)程中是利用單獨(dú)的通道處理的,但是在傳輸過(guò)程中則需要交錯(cuò)排列成一個(gè)通道。因此,并行高清信號(hào)的傳輸速率必須滿足 148.50MHz,串行傳輸速率為 1.485Gbps。HD-SDI 還支持另一種比特率,即 1.485/1.001G。
表1中顯示了高清視頻信號(hào)的總行數(shù)和每行的樣本總數(shù)(SMPTE 274M,1998),每一個(gè)視頻行作為視頻信號(hào)中的標(biāo)準(zhǔn)單元,被分成了兩個(gè)主要的部分,水平消隱區(qū)和有效視頻區(qū)。一行從參考時(shí)序 EAV(有效視頻結(jié)尾)開(kāi)始,EAV后面就是水平消隱區(qū),水平消隱區(qū)的結(jié)尾是 SAV(有效視頻開(kāi)始),SAV 后面緊跟的就是有效視頻區(qū)。有效視頻區(qū)的樣本就是真正顯示在屏幕上的點(diǎn),而空白區(qū)對(duì)應(yīng)的就是模擬視頻信號(hào)中的消隱區(qū)。下圖1顯示高清視頻數(shù)據(jù)流中的一個(gè)視頻行的數(shù)據(jù)格式,分開(kāi)處理的亮度信號(hào)和色度信號(hào)必須同步,對(duì)應(yīng)區(qū)域必須對(duì)齊。在演播室的傳輸中,是把兩種信號(hào)流交錯(cuò)到成一個(gè)信號(hào)流來(lái)傳輸。(SMPTE 292M,1998)。

圖1、視頻行數(shù)據(jù)排列
其中,SAV 是有效視頻行的開(kāi)始標(biāo)志,占 4 個(gè)字,前三個(gè)是 3FF、000、000,第四個(gè)字是 XYZ,包含主要的時(shí)序信息。EAV 表示有效視頻行的結(jié)束,同 SAV格式相同。下表顯示的是 SAV 和 EAV 中第四個(gè)字的比特信息。
表 3.XYZ 比特位信息

其中,F(xiàn) 表示該行屬于哪一個(gè)場(chǎng),F(xiàn)=0 表示場(chǎng) 1,F(xiàn)=1 表示場(chǎng) 2。V 表示該行是否為場(chǎng)消隱區(qū)的行,H 用于區(qū)分 EAV 和 SAV,H=0 表示 SAV,H=1 表示 EAV。
P3=V⊕H、P2=F⊕H、P1=F⊕V、P0=F⊕V⊕H。EAV 之后的兩個(gè)字 LN,表示該視頻行在特定的視頻格式中所處的行數(shù),色度和亮度信息中的 LN 是相同的。
表 4 LN 字比特信息

LN 后面的兩個(gè)字是前一行的循環(huán)冗余碼(CRC)。HD-SDI 接收器利用 CRC值檢查傳輸中的錯(cuò)誤。循環(huán)冗余碼在 HD-SDI 中的作用,并不是實(shí)時(shí)處理錯(cuò)誤,HD-SDI 中也不存在糾錯(cuò)碼。CRC 錯(cuò)誤檢測(cè)會(huì)被系統(tǒng)輸出,指示在傳輸鏈中的某個(gè)鏈接的設(shè)備出錯(cuò)了,從而該設(shè)備可以被維修或更換。每個(gè)數(shù)據(jù)流都有各自的 CRC 值,其計(jì)算是根據(jù)下面的公式:

CRC 校驗(yàn)從有效視頻區(qū)間的第一個(gè)字開(kāi)始計(jì)算直到下一行的 LN 的第二個(gè)字。水平消隱區(qū)和 SAV 不被計(jì)算。水平消隱區(qū)中的輔助數(shù)據(jù)通常有自己的錯(cuò)誤檢測(cè)方法。
表 5 CRC 字的比特信息

HD-SDI 數(shù)據(jù)流中,SAV 和 EAV 中的 3FF、000、000 作為獨(dú)一無(wú)二的序列,作為整個(gè)數(shù)據(jù)流的參考時(shí)序,HD-SDI 接收器通過(guò)檢測(cè)這個(gè)序列來(lái)同步比特流。上面說(shuō)的是系統(tǒng)中亮度信號(hào)和色度信號(hào)分別在各自的通道進(jìn)行處理,因此各自具有視頻行的所有特征。在系統(tǒng)中數(shù)據(jù)傳輸時(shí),這兩個(gè)數(shù)據(jù)通道則會(huì)交錯(cuò)成一個(gè)數(shù)據(jù)流。在 10 比特寬度的字傳輸中,色度信號(hào)流中的數(shù)據(jù)通常先發(fā)送。在 20比特寬度的傳輸中,色度信號(hào)被放置在低 10 比特位。這是因?yàn)?nbsp;HD-SDI 串行器先發(fā)送低位,因此把色度信號(hào)流放在低位就是為了保證先被發(fā)送。在串行數(shù)據(jù)傳輸加擾之前,兩個(gè)數(shù)據(jù)流需要按照下圖被交錯(cuò)到一個(gè)數(shù)據(jù)流中。每個(gè)視頻采樣點(diǎn)先是 2 個(gè)色差信號(hào),再是一個(gè)亮度信號(hào)。在 10 比特寬度的字傳輸中,數(shù)據(jù)流 2 中的數(shù)據(jù)通常先發(fā)送。在 20 比特寬度的串行器中,數(shù)據(jù)流2 被連接到串行器的低 10 比特位,數(shù)據(jù)流 1 被連接到串行器的高 10 個(gè)比特位。因?yàn)?nbsp;HD-SDI 串行器先發(fā)送低位。因此,把數(shù)據(jù)流 2 中的字放在低位,就是為了保證先被發(fā)送。

圖2、數(shù)據(jù)流交錯(cuò)
在 HD-SDI 數(shù)據(jù)流交錯(cuò)之后,需要對(duì)數(shù)據(jù)進(jìn)行一定的預(yù)加擾,增強(qiáng)數(shù)據(jù)的隨機(jī)性,便于接收端的時(shí)鐘數(shù)據(jù)恢復(fù)。HD-SDI 通常通過(guò)兩個(gè)階段對(duì)信號(hào)進(jìn)行加擾。首先,對(duì)數(shù)據(jù)進(jìn)行偽隨機(jī)加擾,其次把偽隨機(jī)加擾的輸出從非歸零 NRZ 數(shù)據(jù)轉(zhuǎn)換為反非歸零碼 NRZI。偽隨機(jī)加擾和線性反饋移位寄存器類(lèi)似,下面兩個(gè)公式就是這兩個(gè)步驟:


下圖顯示加擾的串行實(shí)現(xiàn),當(dāng)在 FPGA 中實(shí)現(xiàn)時(shí),這樣的 HD-SDI 加擾器在一個(gè)時(shí)鐘周期可以進(jìn)行 10 或者 20 比特的編碼。

圖3、HD-SDI加擾
⊕
數(shù)字音頻格式
在標(biāo)清應(yīng)用中,視頻素材一般嵌入立體聲音頻,分為左右聲道。在高清播出系統(tǒng)中,音頻的嵌入不僅要考慮到立體聲,還有可能是5.1聲道的環(huán)繞聲或者Dolby-E壓縮數(shù)字音頻。數(shù)字音頻信號(hào)標(biāo)準(zhǔn)也有很多種,例如AES/EBU、MADI、SDIF2、SPDIF 等。其中 AES/EBU 是 AES 和 EBU 共同制定的數(shù)字音頻的接口標(biāo)準(zhǔn),指的是一種專(zhuān)業(yè)數(shù)字音頻接口標(biāo)準(zhǔn),是目前廣播領(lǐng)域數(shù)字音頻的主流標(biāo)準(zhǔn),廣泛應(yīng)用于演播室各種接口的音頻設(shè)備間。
AES3 音頻結(jié)構(gòu)的最基本數(shù)據(jù)結(jié)構(gòu)稱(chēng)為子幀。每個(gè) 32 比特的子幀攜帶一個(gè)音頻樣本字以及一些其他的信息位。音頻字既可以是 24 比特,也可以是 20 比特。子幀的開(kāi)始是一個(gè) 4 比特的前導(dǎo)碼,音頻字后面的是有效位(V)、用戶(hù)數(shù)據(jù)位(U)、聲道狀態(tài)位(C)和校驗(yàn)位(P)。一個(gè)幀由兩個(gè)連續(xù)的子幀組成,這兩個(gè)子幀分別是一個(gè)聲道對(duì)的兩個(gè)聲道的樣本。音頻幀按照 192 幀一組組成一個(gè)音頻塊,音頻組織結(jié)構(gòu)如圖4所示。


圖4、一個(gè)音頻塊組成結(jié)構(gòu)圖
AES3 接口的數(shù)據(jù)速率取決于音頻采樣率。理論上,音頻可以被任意的采樣率采樣,所以比特速率也可以是任意的。AES3 定義的標(biāo)準(zhǔn)音頻采樣率是 32 kHz,48 kHz, and 96 kHz。AES3 的多種比特速率使得在實(shí)際應(yīng)用中經(jīng)常用到音頻采樣率的轉(zhuǎn)換。
嵌入解嵌技術(shù)
SMPTE272M是SD-SDI音頻嵌入標(biāo)準(zhǔn),SMPTE299M是HD-SDI的24bits PCM音頻嵌入標(biāo)準(zhǔn)。美國(guó)電影電視工程協(xié)會(huì)(SMPTE)制定的SMPTE299M附加標(biāo)準(zhǔn)A中描述在 AES3 接口上傳輸SMPTE337M定義的非 PCM 編碼的多聲道音頻(環(huán)繞聲)。
傳輸?shù)囊纛l信號(hào)數(shù)從最少的兩個(gè)聲道到最大的 16聲道。音頻聲道成對(duì)發(fā)送,一般一組 4 個(gè),每組都有一個(gè)單獨(dú)的輔助數(shù)據(jù) ID。音頻數(shù)據(jù)包被嵌入到并行色差信號(hào) Cb/Cr 的水平輔助數(shù)據(jù)空間,音頻控制包被嵌入到并行亮度信號(hào) Y 的水平輔助數(shù)據(jù)空間。嵌入到視頻中的音頻包和SD-SDI的嵌入不同,沒(méi)有音頻擴(kuò)展包只有兩種:一種是音頻數(shù)據(jù)包,一種是音頻控制包。
音頻數(shù)據(jù)包的格式在圖5 所示,音頻數(shù)據(jù)包包括輔助數(shù)據(jù)標(biāo)志(ADF),數(shù)據(jù)標(biāo)識(shí)(DID),數(shù)據(jù)塊序號(hào)(DBN),數(shù)據(jù)計(jì)數(shù)(DC),用戶(hù)數(shù)據(jù)(UDW)和校驗(yàn)和(CS)。

圖5、音頻數(shù)據(jù)包格式
其中:
ADF:作為音頻包的其實(shí)標(biāo)志,是一個(gè) 000 3FF 3FF 的序列。
DID:用在音頻包中,用于識(shí)別音頻組的標(biāo)志,音頻組 1(聲道 1~4)的 DID是 2E7h,音頻組
2(聲道 5~8)的 DID 是 1E6h,音頻組 3(聲道 9~12)的 DID 是 1E5h,音頻組 4(聲道
13~16)的 DID 是 2E4h。
DBN:區(qū)別連續(xù)的 DID 相同的輔助數(shù)據(jù)包
DC: HD-SDI 中音頻包的 DC 值恒為 218h。
CLK:音頻時(shí)鐘相位表示視頻 EAV 的第一個(gè)字到音頻樣本輸入到格式化模塊時(shí)視頻樣本點(diǎn)之間的視頻時(shí)鐘數(shù)。專(zhuān)門(mén)用于異步音頻在接收端重新生成音頻采樣時(shí)鐘。
CH1~CH4:一個(gè)音頻包中包含一個(gè)音頻組即兩個(gè)聲道對(duì)共 4 個(gè)聲道的音頻樣本。每個(gè)音頻子幀在音頻數(shù)據(jù)包中用 4 個(gè)連續(xù)的字來(lái)表示,其格式如下表6:

表6、音頻子幀比特信息
其中,Z 標(biāo)志的狀態(tài)用于同步 AES 音頻塊。相鄰兩個(gè)聲道一個(gè) Z 標(biāo)志。
ECC:BCS(31,25)糾錯(cuò)碼,對(duì)每個(gè)比特序列 b0 位到 b7 位。在該碼的范圍內(nèi)對(duì)從 ADF 的第一個(gè)字到音頻數(shù)據(jù)的最后一個(gè)字進(jìn)行糾錯(cuò)或檢錯(cuò)。ECC 是 BCH(31,25)糾錯(cuò)碼,用來(lái)對(duì)從 ADF 到 ECC 之前的所有字進(jìn)行糾錯(cuò)。BCH 碼只針對(duì)每個(gè)字的 b0~b7 進(jìn)行糾錯(cuò)。六個(gè)字的 ECC 是通過(guò)下面的式子生成的:

下圖為BCH碼的編碼電路:

圖6、BCH編碼電路
FPGA系統(tǒng)實(shí)現(xiàn)
嵌入和解嵌分別設(shè)計(jì)成兩個(gè)系統(tǒng),最后完成兩個(gè)設(shè)備——嵌入設(shè)備、解嵌設(shè)備。由于兩個(gè)系統(tǒng)實(shí)現(xiàn)的是一種互逆過(guò)程,基本原理都一樣且實(shí)現(xiàn)方式都是采用單片F(xiàn)PGA完成數(shù)字邏輯的大部分功能,所以本文主要把兩個(gè)系統(tǒng)融合一起研究。
FPGA選定為Xilinx公司Spartan6系列芯片,具體型號(hào)為XC6SLX45T-FG484。該款FPGA芯片資源及特點(diǎn)如下表7所示:
表7
器件型號(hào)
|
XC6SLX45T
|
邏輯單元
|
43661
|
Slices數(shù)量
|
6822
|
觸發(fā)器數(shù)量
|
54576
|
DSP處理單元
|
58
|
BlockRAM容量
|
2Mbits
|
時(shí)鐘管理單元
|
4
|
DDR存儲(chǔ)器接口
|