閱讀933 返回首頁    go 阿裏雲 go 技術社區[雲棲]


入門視頻采集與處理(BT656簡介)

凡是做模擬信號采集的,很少不涉及BT.656標準的,因為常見的模擬視頻信號采集芯片都支持輸出BT.656的數字信號,那麼,BT.656到底是何種格式呢?
      本文將主要介紹 標準的 8bit BT656(4:2:2)YCbCr SDTV(標清) 數字視頻信號格式,主要針對剛剛入門模擬視頻采集的初學者入門之用。

1.  幀的概念(Frame)

    一個視頻序列是由N個幀組成的,采集圖像的時候一般有2種掃描方式,一種是逐行掃描(progressive scanning),一種是隔行掃描(interlaced scanning)。對於隔行掃描,每一幀一般有2個場(field),一個叫頂場(top field),一個叫底場(bottom field)。假設一幀圖像是720行,那麼,頂場就包含其中所有的偶數行,而底場則包含其中所有的奇數行。

2.  場的概念(field)   

    注意,上麵提到頂場和底場,用的是“包含”二字,而不是說完全由後者組成,因為在BT.656標準中,一個場是由三個部分組成的:

    場 = 垂直消隱頂場(First Vertical Blanking) + 有效數據行(Active Video) + 垂直消隱底場(Second Vertical Blanking)

    對於頂場,有效數據行就是一幀圖像的所有偶數行,而底場,有效數據行就是一幀圖像的所有奇數行。頂場和底場的空白行的個數也有所不同,那麼,對於一個標準的 8bit BT656(4:2:2)SDTV(標清)視頻而言,對於一幀圖像,其格式定義如下:

    由上圖可以知道,對於PAL製式,每一幀有625行,其中,頂場有效數據288行,底場有效數據也是288行,其餘行即為垂直消隱信號。為什麼是288行?因為PAL製式的SDTV或者D1的分辨率為 720*576,即一幀有576行,故一場為288行。

    由上圖我們還可以知道,頂場有效數據的起始行為第23行,底場有效數據的起始行為第335行。

    另外,上圖中的 F 標記奇偶場,V標記 是否為垂直消隱信號。

3.  每一行的組成(Lines)

    下麵說明每一行的組成,一行是由4個部分組成:

    行 = 結束碼(EAV) + 水平消隱(Horizontal Vertical Blanking) + 起始碼(SAV) + 有效數據(Active Video)

    典型的一行數據組成如下圖所示:

    起始碼(SAV)和結束碼(EAV),它是標誌著一行的開始結束的重要標記,也包含了其他的一些重要的信息,後麵將會講到。

    為什麼水平消隱 是280字節,這個我暫時還沒搞清楚,不知道是不是標準定義的。

    為什麼一行中的有效數據是 1440 字節? 因為PAL製式的SDTV或者D1的分辨率為 720*576,即一行有720個有效點,由於采集的是彩色圖像,那麼一行就是由亮度信息(Y)和色差信息(CbCr)組成的,由於是 YCbCr422格式,故一行中有720列Y,720列CbCr,這樣,一行的有效字節數就自然為 720 x 2 = 1440 字節了。

4.  EAV和SAV

    EAV和SAV都是4個字節(Bytes),由上麵的圖可以知道,SAV後麵跟著的就是有效的視頻數據了。那麼,EAV和SAV的格式是怎麼樣的呢?

    EAV和SAV的4個字節的格式規定如下(下麵以16進製表示):

    FF 00 00 XY

    其中,前三個字節為固定的,必須是FF 00 00,而第4個字節(XY)是根據場、消隱信息而定的,其8個bit含義如下: 1 F V H  P3 P2 P1 P0

    其中,F:標記場信息,傳輸頂場時為0,傳輸底場時為1

    V:標記消隱信息,傳輸消隱數據時為1,傳輸有效視頻數據時為0

    H:標記EAV還是SAV,SAV為0,EAV為1

    而 P0~P3為保護比特,其值取決於F、H、V,起到校驗的作用,計算方法如下:

5.  總結

    這篇文章僅僅講了BT.656格式中最基本的一些概念,權當入門,許多視頻采集芯片都會涉及這方麵的知識。如有疑問,歡迎留言討論。最後,感謝《A Brief Introduction to Digital Video》這篇英文文章對BT.656的介紹,寫得很不錯,我基本上根據它了解BT656和寫這篇文章的,有興趣的童鞋可以看看。

—————————————————————————————————————————————————————————

以下轉自特權博客https://www.eefocus.com/ilove314/blog/11-09/231422_89195.html

ITU-RBT.656視頻標準接口

ITU-RBT.656視頻標準接口PAL製式(720*576)每場由四部分組成。

●  有效視頻數據,分為奇場和偶場,均由288行組成。每行有1440個字節,其中720個字節為Y分量,360個字節為Cb分量,360個字節為Cr分量。Y分量的取值為16~235CbCr分量的取值為16~240

●  水平消隱,有280個字節。

●  垂直消隱。

●  控製字。

對於有效數據行,其格式如圖1所示。EAVSAV為嵌入式控製字,分別表示有效視頻的終點和起點。EAVSAV均為4個字節構成,前3個字節FF0000為固定頭,“XY”為控製字。“XY”的8bit含義如下:

●  Bit7Const),常數,總為1

●  Bit6F),場同步信號,表示該行數據處於奇場還是偶場。

●  Bit5V),垂直同步信號,表示處於場消隱區間還是正程區間(有效數據行)。

●  Bit4H),水平同步信號,表示是“SAV”還是“EAV”。

●  Bit3-0P3P2P1P0),糾錯位。P3=V(XOR)HP2=F(XOR)HP1=F(XOR)VP0=F(XOR)V(XOR)H

EAVSAV的詳細定義如表1所示。

1

Bit7

Bit6

Bit5

Bit4

Bit3-0(P3P2P1P0)

Hex

Description

1

0

0

0

0000

0x80

Even,Active,SAV

1

0

0

1

1101

0x9d

Even, Active,EAV

1

0

1

0

1011

0xab

Even,Blank, SAV

1

0

1

1

0110

0xb6

Even, Blank, EAV

1

1

0

0

0111

0xc7

Odd, Active, SAV

1

1

0

1

1010

0xda

Odd, Active, EAV

1

1

1

0

1100

0xec

Odd, Blank, SAV

1

1

1

1

0001

0xf1

Odd, Blank, EAV

 

Blanking為水平消隱區,通常由80H/10H來填充。

 

 

1

         對於圖1中的Valid data(有效數據)區,其數據排列順序如圖2所示。即Y : Cb : Cr="4" : 2 : 2。從圖像的像素點上來理解,就是每個像素點有一個單獨的Y值,而相鄰的兩個像素點的CbCr數據是一樣的。

 

 圖2

         PAL一場的數據行格式如圖3所示。 

 

3

         工程實踐中就是通過EAVSAV對行、場信息進行檢測,分離出有效數據。而EAVSAV的差別隻在控製字XY數據有別。因此表2對控製字XY和行、場之間的關係做了映射,並且理論上控製字XY數據流也是按照表2的上到下、左到右的順序出現的。但是在實際工程中,特權同學發現奇場和偶場的順序好像和這裏的定義剛好反了。

2

行數

F

V

EAV

SAV

1~22

0

1

0xb6

0xab

23~310

0

0

0x9d

0x80

311~312

0

1

0xb6

0xab

313~335

1

1

0xf1

0xec

336~623

1

0

0xda

0xc7

624~625

1

1

0xf1

0xec

 

 

最後更新:2017-04-03 16:48:45

  上一篇:go PHP連接數據庫學習手冊
  下一篇:go POJ 1183 數學推導