淺談基于ARM/DSP的圖像采集與視頻應(yīng)用
最近基于ARM/DSP的圖像采集得到越來(lái)越廣泛的應(yīng)用。除了傳統(tǒng)的視頻編解碼外,一些新興應(yīng)用如條碼識(shí)別、文字識(shí)別、生物識(shí)別(虹膜、面相)等也得到了空 前的關(guān)注。這些應(yīng)用都要求獲得穩(wěn)定、快速、低噪聲的圖像質(zhì)量,所以作為應(yīng)用基礎(chǔ)的圖像采集與處理技術(shù)應(yīng)該得到更多的關(guān)注。
我們主要從事基于ARM和DSP的圖像采集、視頻編解碼技術(shù)的開(kāi)發(fā)工作,做過(guò)不是這方面的項(xiàng)目,而且最近經(jīng)??吹揭恍┚W(wǎng)友提問(wèn)一些基礎(chǔ)*的問(wèn)題,所以今天對(duì)圖像采集與視頻編碼方面的基礎(chǔ)知識(shí)簡(jiǎn)單總結(jié)一下,希望對(duì)大家有用,也希望拋磚引玉,歡迎大家討論和指正。
組成一套圖像與視頻應(yīng)用系統(tǒng)包括兩部分:圖像成像單元和后端處理單元。首先討論圖像成像單元,除了一些特殊應(yīng)用外,市場(chǎng)上常見(jiàn)的圖像成像部件基本可分為CCD和CMOS兩種。
CCD,英文全稱:Charge-coupled Device,中文全稱:電荷耦合元件??梢苑Q為CCD圖像傳感器。CCD是一種半導(dǎo)體器件,能夠把光學(xué)影像轉(zhuǎn)化為數(shù)字信號(hào)。 CCD上植入的微小光敏物質(zhì)稱作像素(Pixel)。一塊CCD上包含的像素?cái)?shù)越多,其提供的畫(huà)面分辨率也就越高。CCD的作用就像膠片一樣,但它是把圖像像素轉(zhuǎn)換成數(shù)字信號(hào)。CCD上有許多排列整齊的電容,能感應(yīng)光線,并將影像轉(zhuǎn)變成數(shù)字信號(hào)。經(jīng)由外部電路的控制,每個(gè)小電容能將其所帶的電荷轉(zhuǎn)給它相鄰的電容。
CCD廣泛應(yīng)用在數(shù)碼攝影、天文學(xué),尤其是光學(xué)遙測(cè)技術(shù)、光學(xué)與頻譜望遠(yuǎn)鏡,和高速攝影技術(shù)如Lucky imaging.CCD在攝像機(jī)、數(shù)碼相機(jī)和掃描儀中應(yīng)用廣泛,只不過(guò)攝像機(jī)中使用的是點(diǎn)陣CCD,即包括x、y兩個(gè)方向用于攝取平面圖像,而掃描儀中使用的是線性CCD,它只有x一個(gè)方向,y方向掃描由掃描儀的機(jī)械裝置來(lái)完成。CCD的加工工藝有兩種,一種是TTL工藝,一種是CMOS工藝,前者是毫安級(jí)的耗電量,而后者是微安級(jí)的耗電量。TTL工藝下的CCD成像質(zhì)量要優(yōu)于CMOS工藝下的CCD.CCD廣泛用于工業(yè),醫(yī)療、民用產(chǎn)品。
CMOS傳感器接口信號(hào)包括主時(shí)鐘信號(hào)、象素時(shí)鐘、水平同步/參考、垂直同步和象素?cái)?shù)據(jù)信號(hào),如下所示:
MCLK ―― 后端DSP/arm提供給傳感器的時(shí)鐘,也可以由晶陣提供
PIXELCLK ―― 傳感器輸出的象素時(shí)鐘,所有數(shù)據(jù)與該時(shí)鐘同步
HSYNC/HREF ―― 水平參考信號(hào),表示一行數(shù)據(jù)(包括有效數(shù)據(jù)和Blank)
VSYNC ―― 垂直同步信號(hào),表示一幀數(shù)據(jù)(包括有效數(shù)據(jù)和Blank)
Data[7:0] ―― 8位象素?cái)?shù)據(jù),有的傳感器是輸出10位或者更高精度
CMOS 傳感器的輸出信號(hào)格式一般有幾種:Raw RGB(Bayer)、RGB565、YUV422、ITU656.Raw RGB輸出原始的RGB數(shù)據(jù),通常是每個(gè)象素僅輸出一個(gè)數(shù)據(jù),偶數(shù)行RG RG RG…,奇數(shù)GB GB GB…,需要進(jìn)行插值才可以得到每個(gè)象素點(diǎn)的RGB數(shù)據(jù)。RGB565是每個(gè)象素點(diǎn)輸出兩個(gè)字節(jié),共16bits,由R(5bits)、G(6bits) 和B(5bits)組成。因?yàn)槿搜蹖?duì)綠色更敏感,所以G分量由6bits代表。YUV422也是每個(gè)象素點(diǎn)輸出兩個(gè)字節(jié),每行由序列UY VY UY VY…組成,其輸出順序一般可以控制。同樣由于人眼對(duì)亮度更敏感,所以每個(gè)象素輸出一個(gè)Y值,而色差則是各一個(gè)象素輸出一個(gè)。RGB565和YUV422 都是需要時(shí)序信號(hào)配合的,而ITU565格式本身包含幀頭和幀尾,因而可以不需要HSYNC和VSYNC信號(hào)的配合。
前面討論了 前端傳感器部分,下面討論一下后端處理單元。隨著ARM的普及,越來(lái)越多的工程師開(kāi)始使用ARM作為后端處理單元。常見(jiàn)的ARM如2410、9200、 44b0等,沒(méi)有視頻輸入接口,需要增加CPLD/FPGA電路控制時(shí)序和讀入傳感器輸出的圖像數(shù)據(jù)。另外一類ARM由于具有視頻輸入接口從而大多簡(jiǎn)化了 電路,直接可以輸入CMOS傳感器的輸出。這一類的arm處理器包括Freescale mxl/mx21/mx27/mx31、Samsung 2440、Intel PXA270等。我們?cè)跒樽约旱膽?yīng)用選型時(shí),除了考慮處理器的功耗、價(jià)格、主頻、外頻外,還應(yīng)該考慮處理器的內(nèi)部處理能力,比如DMA能力、是否有硬件加 速能力等因素。通常圖像采集后都會(huì)用到顏色空間變換、放大縮小等功能,所以如果處理器具有硬件加速能力則可以大大提高運(yùn)算效率。在這方面 Freescale MX21應(yīng)該是不錯(cuò)的,其預(yù)處理和后處理模塊通過(guò)硬件實(shí)現(xiàn)顏色變換和插值變換,大大提高運(yùn)算速度。如果使用DSP作為后端處理器,那就比較簡(jiǎn)單了。無(wú)論是 TI系列還是ADI Blackfin系列,都具備視頻輸入接口,可以直接輸入傳感器的輸出信號(hào)。
另外一類重要的應(yīng)用是視頻編解 碼,主要用于安防領(lǐng)域。當(dāng)前流行的編解碼算法是MPEG-4,而H.264也正在迅速的占領(lǐng)市場(chǎng),傳統(tǒng)的M-JPEG則在交通監(jiān)控領(lǐng)域繼續(xù)發(fā)揮作用。經(jīng)常 看到網(wǎng)友在論壇上討論基于ARM實(shí)現(xiàn)視頻編解碼算法,結(jié)果可能大多是讓您失望。我們?cè)?jīng)試圖做這個(gè)工作,最后是在Freescale MXL處理器上實(shí)現(xiàn)QCIF分辨率的準(zhǔn)實(shí)時(shí)MPEG-4編碼,而且使用MXL的硬件DCT加速、匯編優(yōu)化和半象素搜索優(yōu)化算法。很明顯基于傳統(tǒng)ARM處理 器實(shí)現(xiàn)視頻編碼算法是很有難度的和不太現(xiàn)實(shí)的。不過(guò)您也別太失望,有一類arm處理器內(nèi)部集成編解碼CODEC,算法基本不占用CPU時(shí)間,所以還是可以 用的。這一類主要有Freescale MX21/MX27/MX31、海思Hi3510,好像還有上海杰得。Mx21內(nèi)嵌Hantro的CODEC,可以做到CIF@30fps,MX27可以 做到H.264@D1,海思3510也可以做到H.264的D1編碼。相對(duì)使用DSP處理視頻算法,SOC的優(yōu)點(diǎn)是開(kāi)發(fā)簡(jiǎn)單,直接調(diào)用編解碼API就可以 了。隨著市場(chǎng)競(jìng)爭(zhēng)的加劇,相信會(huì)出現(xiàn)越來(lái)越多的具備視頻編解碼能力的arm處理器。
相對(duì)于arm處理器,目前更多的工程師使用 DSP處理器完成編解碼算法。適合視頻處理的DSP也有很多,比較知名的有TI系列、ADI系列和Philips系列。TI自不必說(shuō),大家都很熟悉。 Philips(NXP)的Trimedia系列DSP是老牌的視頻處理芯片,應(yīng)用也非常廣泛。ADI的Blackfin系列視頻處理器則是較新一點(diǎn)的, 相對(duì)于傳統(tǒng)DSP,Blackfin的最大優(yōu)勢(shì)在于其MSA體系結(jié)構(gòu),是DSP與RISC處理器的結(jié)合體。這一優(yōu)點(diǎn)使得Blackfin既可以運(yùn)行操作系 統(tǒng),又可以高效的運(yùn)行算法,從而可以實(shí)現(xiàn)單芯片視頻應(yīng)用系統(tǒng)。我們知道單芯片系統(tǒng)一般成本會(huì)比雙處理器系統(tǒng)低,這在對(duì)成本控制越來(lái)越嚴(yán)格的今天的確比較有 誘惑力。
評(píng)論