OV7670攝像頭的相關參數及時序分析

原出處:http://blog.csdn.net/metalseed/article/details/8590906?reload

原標題:兩款主流攝像頭OV7620與OV7670 

如今,市場上提到可以應用在智能車上的攝像頭,多如牛毛。到底那一款最適合用在智能車上呢,這裏DEMOK選取了2款典型的攝像頭OV7670與OV7620,從其特性和性能等角度,剖析攝像頭的特點,爲大家揭開迷霧。

我們開門見山,先講其最主要的不同點。我們都知道,OV7670和OV7620都是彩色攝像頭,其感光像素爲640*480的數字攝像頭。他們之間有很多相似的參數,但是最大的不同就是,OV7670的像素輸出格式爲RGB565(轉載注:其實7670的輸出並非只有這一種格式),而OV7620的像素輸出格式爲YUV422,這個不同點直接決定了其在智能車攝像頭中的地位。在繼續進行分析之前,我們先了解一點攝像頭的小知識。

///---------------------------------------華麗麗的分割線-------------------------------------------///
【攝像頭小知識】RGB565與YUV422的區別
1.什麼是RGB565
衆所周知,RGB是組成彩色的三基色,要想顯示一個像素的顏色,每個像素都需要3個BYTE數據的R、G、B來表示,那一副320*240的彩色圖像,就需要320*240*3=230400B=225KB的數據來存儲,這樣看來,存儲圖像的空間開銷是極大的。而在一個像素RGB中,G分量的比重是最大的,R和B的比重相對小一些,因此人們又想出了用R:G:B=5:6:5的比例關係,來表示一個像素,這樣一來,一個像素僅僅需要2個BYTE就可以表示其彩色信息(這個2個BYTE中,R佔5bit,G佔6bit,B佔5bit),320*240的彩色圖像的存儲空間也由225KB減小到150KB。
2.RGB565是怎麼存儲的
攝像頭的數據是在每一個PCLK的上升沿去讀取的。若攝像頭默認輸出的格式爲RGB565,那麼攝像頭在上電之後,每觸發2個PCLK,讀取2個字節,纔是一個像素。在這個像素中,RGB的分佈如下圖所示:在第一個字節(First BYTE)中,Y[7..3]爲R[4..0],Y[2..0]爲G[5..3];在第二個字節(Second BYTE)中,Y[7..5]爲G[2..0],Y[4..0]爲B[4..0]

2.什麼是YUV4:2:2
人的眼睛對低頻信號比對高頻信號具有更高的敏感度,事實上,人的眼睛對明視度的改變比對色彩的改變要敏感的多。因此,人們將RGB三色信號改爲YUV來表示,其中Y爲灰度,UV爲色差。如果是表示一副彩色圖像,同樣的道理,YUV444是無損的存儲方式,但是需要3個字節,存儲空間開銷很大。由於Y分量比UV分量重要的多,因此人們用YUV422來表示。這樣一來圖像被壓縮了很多,一個字節就可以表示其彩色的信息。

///-----------------------------------------分割線完畢------------------------------------------------///
迴歸到OV7670 和OV7620 的對比中來。
剛纔從小知識中,瞭解到OV7670 是RGB 輸出,而OV7620 是YUV 輸出,雖
然理論上明白了,但是大家可能還不知道實際對應攝像頭是怎麼輸出的。
對於OV7670,由於它只有一組並行的數據口Y[7:0],所有的像素數據都從
這個數據口出,因此每次讀取一次數據口,可以讀一個字節(BYTE)。下圖給出
了k 個像素(2K 個字節)輸出的格式。


對於OV7620,它有2 組並行的數據口Y[7..0]和UV[7..0],其中對於數據口
Y[7..0],輸出的是灰度值Y,對於UV[7..0]輸出的色度信號UV。下圖給出了k 個
像素(K 個字節)輸出的格式。


對於智能車競賽,賽道是白底黑線,因此我們只關心圖像的灰度值,並不是
需要他們的彩色值。由此看來,對於OV7670,它只有一組數據口,默認輸出
RGB 彩色圖像,對我們來說並不是想要的;而對於OV7620,它有兩組數據口,
一組數據口輸出的正是灰度值Y,我們無需去管UV 引腳輸出的信號,只採集Y
口的數據,就能完美地體現出賽道的信息來。對於全白的賽道背景,採集回來的
數據是255,對於黑色的賽道,採集回來的數據是0,這樣就能很好的區別開賽
道與背景。
由此可以總結,OV7620 更適合做智能車攝像頭。


1 什麼是P制,什麼是N制
當前在智能車競賽中,我們用到的攝像頭,基本只有2種制式P(PAL)制和N(NTSC)制。PAL制式和NTSC制式有很多區別,其中最主要的兩個區別就是P制標準的攝像頭,每秒輸出25幀圖像;N制標準的攝像頭,每秒輸出30幀圖像。
智能車攝像頭中的例子:
PAL制式攝像頭:OV6620、sonyCCD、LG CCD OV5116等
NTSC制式攝像頭:OV7620、OV7640等


2 視頻是如何形成的
由於人眼看到的圖像大於等於 24Hz 時人纔不會覺得圖像閃爍,所以 PAL 制式輸出的圖像是25Hz,每秒鐘有 25 幅畫面,即每秒25 幀;NTSC制式的圖像是30Hz,每秒鐘有30副畫面,即每秒30幀。不同制式的攝像頭,在這種規範下輸出,人眼看到的圖像也就形成了視頻。


3逐行掃描與隔行掃描
所謂逐行掃描,即攝像頭的像素自左向右、自上而下,一行緊接一行掃描輸出(點擊查看動態圖);而隔行掃描,就是在每行掃描點數不變的前提下,將圖像分成2場進行傳送,這兩場分別稱爲奇場和偶場。奇數場傳送1、3、l 5、…奇數行;偶數場傳送2、4、6、…偶數行(點擊查看動態圖)。
智能車攝像頭中的例子:
逐行掃描:OV6620、OV7640等
隔行掃描:OV7620等


4 什麼是消隱信號
消隱區的出現,在電視機原理上,是因爲電子束結束一行掃描,從一行尾換到另一行頭,期間的空閒期,這叫做行消隱信號;同理,從一場尾換到另一場尾,期間也會有空閒期,這叫做場消隱信號。


OV7620數字攝像頭是一款非常適合用在智能車尋跡的一款攝像頭,經過這麼多屆的歷練,OV7620越發顯得穩定和成熟。OV7620之所以爲這麼多人所採納,原因是有幾大優點:
第一,OV7620的電平兼容3.3V和5V。目前智能車用戶用到的處理器基本上可以分爲XS128和K60兩種控制器,而這兩種控制器的工作電平分別是5V和3.3V。OV7620可以完全適應這兩種電平,XS128和K60可以隨性切換,無需做電平匹配。

第二,OV7620的幀率是60幀/s。新手學習攝像頭的時候,誤以爲攝像頭幀率越快越好,其實不然。就拿OV7620來說,其PCLK(像素中斷)的週期是73ns,該頻率下的PCLK很容易被K60的IO捕捉,如果幀率更快的攝像頭,其PCLK的週期就會更小,該頻率下PCLK不易被K60的IO捕捉到。
第三:OV7620的分辨率也是非常合適的,在第三篇也提到OV7620是隔行掃描,採集VSYN的話,其輸出分辨率是640*240。如果改爲QVGA格式,默認輸出分辨率是320*120,該分辨率下非常適合採集賽道,數據容量有限又不會失真圖像。

在分析了OV7620的幾大優勢以後,下面開始本篇重點:OV7620時序分析。
對於OV7620,我們只關心場中斷信號VSYN、行中斷信號HREF、像素中斷信號PCLK的波形。用示波器去監控這三個波形,可以看到一下關係。



VSYN 的週期是16.64ms,高電平時間爲換場時間,約80us;低電平時間內像素輸出。我們在採集VSYN脈衝時,既可以採集上升沿,也可以採集下降沿,採集下降沿更準確些,這也是一場的開始。從VSYN的週期可以算出,1s/16.64ms=60幀,OV7620的幀率是60幀/s。
HREF的週期63.6us,高電平時間爲像素輸出時間,約47us;低電平時間爲換行時間,因此採集HREF一定要採集其上升沿,下降沿後的數據是無效的。從HREF的週期可以算出,16.64ms/63.6us≈261,除去期間的間隙時間,可以算出每場圖像有240行。

PCLK的週期是73ns,高電平輸出像素,低電平像素無效。PCLK是一直輸出的,因此一定要在觸發VSYN並且觸發HREF以後,再去捕捉PCLK才能捕捉到像素數據。從PCLK的週期可以算出,47us/73ns≈640,可以算出每行圖像中有640個像素點。
其實數字攝像頭的時序非常簡單,我們分析的目的也是爲了從時序中得出攝像頭的一些參數,至此,大家是不是對OV7620的時序以及OV7620的一些特點更加了解了呢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章