入門視頻采集與處理(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和寫這篇文章的,有興趣的童鞋可以看看。

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

以下轉自特權博客http://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

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253284.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253284.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253284.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

眼圖(Eye Diagram)與數字信號測試

問題: 什么是眼圖?它用在什么場合?反映了波形的什么信息?NI相應的解決方案是怎樣的? 解答: 眼圖(Eye Diagram)可以顯示出數字信號的傳輸質量,經常用于需要對電子設備、芯片中串行數字信號或者…

BZOJ 1609 [Usaco2008 Feb]Eating Together麻煩的聚餐:LIS LDS (nlogn)

題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id1609 題意: 給你一個只由數字"1,2,3"組成的序列a[i],共n個數。 你可以任意更改這些數字,使得序列中每一種數字都“站在一起”,并且單調不減或不增…

Oracle 數據庫字典 sys.obj$ 表中關于type#的解釋

sys.obj$ 表是oracle 數據庫字典表中的對象基礎表,所有對象都在該表中有記錄,其中type#字段表明對象類型,比如有一個表 test ,則該對象在sys.obj$ 中存在一條記錄,name列為test, type#列為2,表示…

Python高級特性:列表生成式

列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。 最常見的例子: 生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):>>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8…

2018年智能音箱對比

眾所周知,2014年底,電商巨頭亞馬遜推出智能音箱產品Echo之后,引起市場的強烈反響。隨后、谷歌、微軟、蘋果均開始布局智能音箱市場,國內公司以玲瓏科技打頭陣。2017年國內公司紛紛發布智能音箱,被稱為智能音箱元年。經…

AMD與CMD區別

AMD:異步模塊定義,是一個瀏覽器端模塊化開發的規范,由于不是原生JS支持,使用AMD規范需要用到require.js庫require.js注意解決兩個問題1、多個js文件可能有依賴關系,被依賴的文件需要早于依賴它的文件加載到瀏覽器2、js加載的時候瀏…

[LeetCode] Interleaving String

1. 是一個很明顯的動態規劃題。 2. s3中的每個字符不是s1中的就是s2中的,只要根據它之前的狀態做轉移就可以。 1 class Solution {2 public:3 bool isInterleave(string s1, string s2, string s3) {4 int n s1.size();5 int m s2.size();6 …

Python Urllib庫詳解

Urllib庫詳解 什么是Urllib? Python內置的HTTP請求庫 urllib.request 請求模塊 urllib.error 異常處理模塊 urllib.parse url解析模塊 urllib.robotparser robots.txt解析模塊 相比Python2變化 python2 import urllib2 response urllib2.urlopen(http://www.baidu.com) pytho…

LVDS通信接口詳細介紹

1. 概述 LVDS Low-Voltage Differential Signaling 低電壓差分信號,屬于平衡傳輸信號。 這種技術的核心是采用極低的電壓擺幅高速差動傳輸數據,從而有以下特點: 低功耗---低誤碼率---低串擾---低抖動---低輻射 良好的信號完整性。 推…

ThinkPHP簡單的驗證碼實現

ThinkPHP簡單的驗證碼實現 寫一個最簡單的TP驗證碼。 寫Controller 首先在Controller/IndexController.class.php&#xff08;簡稱Index&#xff09;文件中編輯&#xff1a; 1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 use Think\Verify;//這個類…

Celery框架簡單實例

Python 中可以使用Celery框架 Celery框架是提供異步任務處理的框架&#xff0c;有兩種用法&#xff0c;一種&#xff1a;應用程式發布任務消息&#xff0c;后臺Worker監聽執行&#xff0c;好處在于不影響應用程序繼續執行。第二種&#xff0c;設置定時執行&#xff08;這邊沒測…

沸騰新十年 | 中國語音產業江湖和科大訊飛的前半生

沸騰新十年 | 中國語音產業江湖和科大訊飛的前半生 2019-01-09 來源:左林右貍 寫在前面&#xff1a; 這是《沸騰新十年》的第十一篇劇透文&#xff0c;也是2019年的第一篇劇透文&#xff0c;從確認選題到采編到反復修改&#xff0c;這篇稿子操作時間前后歷經近半年。究其原…

權值

【概述】 在數學領域&#xff0c;權值指加權平均數中的每個數的頻數&#xff0c;也稱為權數或權重。在搜索引擎中&#xff0c;權值越高的內容在排序中越靠前。 實際應用中可以通過修改權值來重新調整索引在列表中的排序位置。 【示例】 1 /**2 * 創建索引3 */4 …

vue.js devtools的安裝

http://www.cnblogs.com/lolDragon/p/6268345.html http://blog.csdn.net/wxl1555/article/details/76091614 轉載于:https://www.cnblogs.com/songmengyao/p/7609548.html

[oracle]分區表學習

&#xff08;一&#xff09;什么是分區 所謂分區&#xff0c;就是將一張巨型表或巨型索引分成若干個獨立的組成部分進行存儲和管理&#xff0c;每一個相對小的&#xff0c;可獨立管理的部分&#xff0c;稱為分區。 &#xff08;二&#xff09;分區的優勢 提高數據可管理性。對表…

主函數和子函數的傳值傳址例子

#include<string.h> #include<stdlib.h> #include<stdio.h> typedef unsigned char Uint8; void *Test_Function(Uint8 **add)//返回堆空間&#xff0c;需要用二級指針 { Uint8 *devInit(Uint8 *)malloc(20*sizeof(Uint8)); memcpy(devInit,"malloc …

Matcher類的簡單使用

今天工作時遇到一個問題&#xff0c; 用正則處理html標簽時不知該如何下手。還好有Matcher幫助解決了問題。需求如下&#xff1a;例如有如下html文章內容&#xff1a;<p><a href"www.baidu.com">百度的鏈接</a>; 這是一個百度的鏈接。 <a href&…

USB 攝像頭成熟方案介紹

UVC&#xff0c;全稱為&#xff1a;USB video class 或USB video device class。是Microsoft與另外幾家設備廠商聯合推出的為USB視頻捕獲設備定義 的協議標準&#xff0c;目前已成為USB org標準之一。 如今的主流操作系統(如Windows XP SP2 and later, Linux 2.4.6 and later…