專利名稱:手持終端上的攝像頭圖像數(shù)據(jù)采集方法及手持終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及手持終端,特別涉及手持終端上的攝像頭圖像數(shù)據(jù)采集技術(shù)。
背景技術(shù):
攝像頭作為當(dāng)前手持終端(如手機(jī))上的一種應(yīng)用設(shè)備,目前已經(jīng)得到了非常廣泛的應(yīng)用。攝像頭的圖像數(shù)據(jù)采集,主要通過DMA(直接地址訪問)來完成,通過使用DMA 通道 來直接訪問內(nèi)部存儲區(qū)域地址,將攝像頭采集到的圖像數(shù)據(jù)從外部攝像頭設(shè)備(即 CAMERA設(shè)備)接口搬移到內(nèi)部存儲區(qū)域空間,圖像數(shù)據(jù)搬移到內(nèi)部存儲空間后,再進(jìn)行后續(xù)的各種處理或者是直接輸出到LCD屏(液晶屏幕)進(jìn)行顯示。圖1為攝像頭圖像數(shù)據(jù)采集流向框圖,箭頭表示攝像頭采集到的圖像數(shù)據(jù),其方向代表采集到的圖像數(shù)據(jù)流向。具體地說,攝像頭圖像數(shù)據(jù)采集主要通過DMA通道進(jìn)行。DMA通道當(dāng)前的實(shí)現(xiàn)機(jī)制如下(I)DMA通道的啟動在上層打開攝像頭驅(qū)動模塊,設(shè)置好相應(yīng)的參數(shù)和寄存器后,配置DMA通道的相關(guān)參數(shù),如數(shù)據(jù)搬移起始地址、數(shù)據(jù)搬移偏移量、數(shù)據(jù)搬移方式等信息后,啟動DMA通道,進(jìn)行圖像數(shù)據(jù)的采集與傳輸。(2)DMA通道對數(shù)據(jù)的搬移DMA通道將圖像數(shù)據(jù)通過數(shù)據(jù)總線搬移到內(nèi)部指定緩存,當(dāng)傳輸完成后,DMA通道會產(chǎn)生相應(yīng)的DMA中斷。(3)DMA通道的重新啟動在DMA中斷處理程序中,將重新配置DMA通道的相關(guān)參數(shù),包括數(shù)據(jù)搬移起始地址、數(shù)據(jù)搬移偏移量等信息,之后再次啟動DMA通道,進(jìn)行下一次圖像數(shù)據(jù)的采集與傳輸。通過DMA通道進(jìn)行攝像頭圖像數(shù)據(jù)采集的流程如圖2所示。然而,由于DMA通道按照該流程操作是完全連續(xù)的,而真正的攝像頭數(shù)據(jù)卻是按幀進(jìn)行傳輸?shù)?,每一幀?shù)據(jù)傳輸都可能會存在一定的間隔,單純通過DMA通道進(jìn)行數(shù)據(jù)的傳輸可能會出現(xiàn)比較嚴(yán)重的滾屏或者一幀圖像不一致的問題。比如說,對于分辨率較高的攝像頭來說,當(dāng)選擇高分辨率時(shí),所采集到的圖像數(shù)據(jù)量相對較大,在傳輸過程中,攝像頭將圖像數(shù)據(jù)送到FIF0(先入先出隊(duì)列)中時(shí),可能會出現(xiàn)丟數(shù)據(jù)的情況。假設(shè)攝像頭當(dāng)前是QVGA預(yù)覽模式,且輸出數(shù)據(jù)格式為YUV422,此時(shí)每一幀圖像分辨率為320*240,每一幀圖像的數(shù)據(jù)長度就為320*240*2 = 153,600字節(jié),在攝像頭的采集和傳輸過程中,完全有可能出現(xiàn)某些幀會丟數(shù)個(gè)字節(jié)的數(shù)據(jù)的現(xiàn)象。而DMA通道中斷的產(chǎn)生,是依賴于設(shè)定的數(shù)據(jù)傳輸長度。只有當(dāng)DMA通道搬移數(shù)據(jù)長度達(dá)到設(shè)定長度時(shí),才會產(chǎn)生DMA通道中斷,否則DMA通道會繼續(xù)接收數(shù)據(jù),直到數(shù)據(jù)量達(dá)到設(shè)定長度。按照DMA通道中斷機(jī)制,這種丟數(shù)據(jù)的現(xiàn)象會導(dǎo)致DMA每次采集數(shù)據(jù)時(shí)都會采集到下一幀的部分?jǐn)?shù)據(jù)。具體分析如下在步驟一中,假設(shè)攝像頭按照SVGA/YUV422進(jìn)行預(yù)覽配置,CAMERA設(shè)備在某一幀 A傳送圖像數(shù)據(jù)時(shí)存在200個(gè)字節(jié)丟棄的情況,則在這一圖像幀結(jié)束時(shí),DMA通道僅搬移了 153600-200 = 153400字節(jié)到緩存中。由于未達(dá)到DMA通道設(shè)定長度,因此DMA通道中斷不會產(chǎn)生,DMA通道會繼續(xù)等待CAMERA設(shè)備傳送數(shù)據(jù)。在步驟二中,CAMERA設(shè)備送出下一幀B時(shí),DMA通道會采集B幀圖像數(shù)據(jù)的前面 200字節(jié),搬移200字節(jié)到緩存后會產(chǎn)生DMA中斷,如圖3所示。在步驟三中,DMA中斷產(chǎn)生之后,驅(qū)動會使用填滿的緩存進(jìn)行顯示或其他處理,由于該圖像數(shù)據(jù)幀為A幀丟幀圖像幀+部分B幀,因此,此時(shí)看到的圖像會與實(shí)際圖像不一
致。
在步驟四中,對于B幀來說,下一次DMA通道配置完成后,采集B幀數(shù)據(jù)時(shí),最快也只能采到第201個(gè)字節(jié)的數(shù)據(jù),當(dāng)該幀數(shù)據(jù)傳送完成后,DMA通道仍然僅僅搬移了 153400字節(jié),DMA通道中斷不會產(chǎn)生,DMA通道會繼續(xù)等待CAMERA設(shè)備傳送數(shù)據(jù)。在步驟五中,CAMERA設(shè)備送出下一幀C時(shí),DMA通道會采集C幀圖像數(shù)據(jù)的前面 200字節(jié),搬移200字節(jié)到緩存后會產(chǎn)生DMA中斷,如圖4所示。在步驟六中,DMA中斷產(chǎn)生之后,驅(qū)動會使用填滿的緩存進(jìn)行顯示或其他處理,由于該圖像數(shù)據(jù)幀為B幀后153400字節(jié)+C幀前200字節(jié),因此,此時(shí)看到的圖像會出現(xiàn)移位的現(xiàn)象,原圖和預(yù)覽圖的效果圖對比如圖5所示。由此可見,由于DMA通道采集數(shù)據(jù)的時(shí)間點(diǎn)與CAMERA數(shù)據(jù)幀始終無法同步(始終會有200字節(jié)的偏差),因此,之后會繼續(xù)重復(fù)上述第4至6的步驟。這種DMA通道與CAMERA圖像數(shù)據(jù)不同步而產(chǎn)生的DMA接收數(shù)據(jù)偏差,根據(jù)具體情況的不同,會有兩種不同的現(xiàn)象(1)在一次預(yù)覽過程中,僅僅出現(xiàn)一次CAMERA傳送數(shù)據(jù)出現(xiàn)丟失的情況。在這種情況下,就會出現(xiàn)上面分析的情況,CAMERA采集的圖像數(shù)據(jù),顯示在IXD上時(shí),出現(xiàn)明顯的移位,導(dǎo)致“所見非所得”現(xiàn)象的發(fā)生。(2)在一次預(yù)覽過程中,每一次CAMERA傳送數(shù)據(jù)都會出現(xiàn)丟失的情況。在這種情況下,每一幀都會丟失數(shù)據(jù),依然以前面的分析舉例,若A、B、C以及后面每一幀都會丟失 200字節(jié)數(shù)據(jù),那么攝像頭圖像數(shù)據(jù)的采集過程將如圖6所示。從DMA通道與圖像數(shù)據(jù)幀的關(guān)系上來看,由于每一幀的數(shù)據(jù)傳送都會丟失,這樣的丟失累積起來,就會使得原來200字節(jié)的偏差,擴(kuò)大到400、600,并不斷以200字節(jié)做累加。從預(yù)覽圖像上來看,從CAMERA緩存送到LCD上顯示的圖像,出現(xiàn)的移位會不斷的累積增加,每一幀都會有更多的移位,在視覺效果上看,會出現(xiàn)“滾屏”現(xiàn)象,如圖7所示。由此可見,當(dāng)在采集過程中發(fā)生圖像數(shù)據(jù)的丟失時(shí),按照上述的DMA通道傳輸機(jī)制無法解決,且因?yàn)閳D像數(shù)據(jù)本身并沒有出現(xiàn)異常,驅(qū)動層也不知道該現(xiàn)象的發(fā)生,因此問題發(fā)生后,并不會向上層返回出錯(cuò),故上層無法對該問題的發(fā)生進(jìn)行監(jiān)測,也無法實(shí)行錯(cuò)誤處理機(jī)制。比較嚴(yán)重的問題是,由于一幀圖像數(shù)據(jù)傳輸?shù)钠鹗键c(diǎn)與DMA通道啟動數(shù)據(jù)傳輸點(diǎn)始終不同步,移位、“滾屏”等“所見非所得”的現(xiàn)象一旦發(fā)生后,就會一直出現(xiàn),會給用戶帶來比較差的體驗(yàn)感受。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種手持終端上的攝像頭圖像數(shù)據(jù)采集方法及手持終端, 解決終端攝像頭在進(jìn)行圖像數(shù)據(jù)采集時(shí)出現(xiàn)的滾屏、采集到的一幀圖像不一致的問題。。為解決上述技術(shù)問題,本發(fā)明的實(shí)施方式提供了一種手持終端上的攝像頭圖像數(shù)據(jù)采集方法,包含以下步驟 檢測攝像頭控制器中斷源中的幀同步信號;在每一次檢測到幀同步信號時(shí),啟動直接地址訪問DMA通道接收攝像頭采集到的圖像數(shù)據(jù),將接收到的圖像數(shù)據(jù)存儲到緩存中。本發(fā)明的實(shí)施方式還提供了一種手持終端,包含攝像頭,用于采集圖像數(shù)據(jù);信號檢測模塊,用于檢測攝像頭控制器中斷源中的幀同步信號;通道啟動模塊,用于在所述信號檢測模塊每一次檢測到幀同步信號時(shí),啟動直接地址訪問DMA通道接收攝像頭采集到的圖像數(shù)據(jù),將接收到的圖像數(shù)據(jù)存儲到緩存中。本發(fā)明實(shí)施方式相對于現(xiàn)有技術(shù)而言,利用了每一次幀同步信號的上升沿(在本申請中簡稱為VS_UP)信號和幀同步信號的下降沿(在本申請中簡稱為VS_DN)信號之間, 都是一幀完整有效的圖像數(shù)據(jù)的特性。通過在檢測到幀同步信號時(shí),啟動DMA通道進(jìn)行數(shù)據(jù)接收,以準(zhǔn)確獲取幀頭的時(shí)間點(diǎn),來確保圖像的完整性。本領(lǐng)域技術(shù)人員可以理解,如果 DMA通道能夠做到在VS_UP開始接收數(shù)據(jù),在VS_DN停止接收數(shù)據(jù),保證在兩個(gè)時(shí)間點(diǎn)上準(zhǔn)確的啟動和停止DMA通道數(shù)據(jù)傳輸,那么一幀圖像就可以完整的采集下來。因此,通過在每一次檢測到幀同步信號時(shí),啟動DMA通道進(jìn)行數(shù)據(jù)接收,使得圖像數(shù)據(jù)采集的時(shí)間點(diǎn)與 CAMERA設(shè)備送出圖像數(shù)據(jù)的時(shí)間點(diǎn)始終保持一致,為圖像采集的獲取提供了準(zhǔn)確的時(shí)間點(diǎn),可以保證數(shù)據(jù)采集的同步和完整。通過該方法,CAMERA設(shè)備采集的圖像可以完整準(zhǔn)確的送至IXD上進(jìn)行顯示或者進(jìn)行編碼、后續(xù)處理等。有效地避免了圖像移位、“滾屏”等“所見非所得”的現(xiàn)象,明顯提升了用戶使用攝像頭時(shí)的使用感受。而且,該方案不依賴硬件,對硬件設(shè)計(jì)沒有較高要求,通過軟件的方式可靈活實(shí)現(xiàn),一旦出現(xiàn)數(shù)據(jù)丟失,可以做到在兩幀左右自動恢復(fù),對于15fps至25fps的圖像幀率,恢復(fù)迅速,用戶感受較好。另外,檢測的幀同步信號為VS_DN信號。由于VS_UP信號一旦產(chǎn)生,CAMERA設(shè)備將在非常短的時(shí)間內(nèi)送出數(shù)據(jù),因此如果在VS_UP信號中斷處啟動DMA通道進(jìn)行圖像數(shù)據(jù)傳輸,可能在配置DMA通道的過程中,CAMERA設(shè)備就已經(jīng)將一部分圖像數(shù)據(jù)送出,當(dāng)DMA通道配置完畢并啟動后,實(shí)際上采集到的圖像數(shù)據(jù)可能已經(jīng)丟失了一部分。因此,通過將VS_ DN信號作為啟動DMA通道的標(biāo)志,利用VS_DN信號產(chǎn)生到下一次VS信號有效(即VS_UP信號產(chǎn)生)的時(shí)間,保證中斷處理程序有足夠的時(shí)間對DMA通道進(jìn)行配置并啟動接收,從而使得圖像數(shù)據(jù)的采集更為準(zhǔn)確和安全。另外,當(dāng)DMA通道接收到的圖像數(shù)據(jù)達(dá)到預(yù)設(shè)長度后,產(chǎn)生DMA中斷,在檢測到所述DMA中斷后,對緩存中的圖像數(shù)據(jù)進(jìn)行處理。與現(xiàn)有技術(shù)中DMA通道的中斷方式相同,使得本實(shí)施方式能與現(xiàn)有技術(shù)較好的兼容。
圖1是根據(jù)現(xiàn)有技術(shù)中的攝像頭圖像數(shù)據(jù)采集流向示意圖;圖2是根據(jù)現(xiàn)有技術(shù)中的通過DMA通道進(jìn)行攝像頭圖像數(shù)據(jù)采集的流程圖;圖3是根據(jù)現(xiàn)有技術(shù)中的采集B幀圖像數(shù)據(jù)的前面200字節(jié)后產(chǎn)生DMA中斷的示意圖4是根據(jù)現(xiàn)有技術(shù)中的采集C幀圖像數(shù)據(jù)的前面200字節(jié)后產(chǎn)生DMA中斷的示意5是根據(jù)現(xiàn)有技術(shù)中的攝像頭圖像數(shù)據(jù)采集的效果圖對比示意圖;圖6是根據(jù)現(xiàn)有技術(shù) 中的每一幀都丟失200字節(jié)數(shù)據(jù)的示意圖;圖7是根據(jù)現(xiàn)有技術(shù)中的“滾屏”現(xiàn)象示意圖;圖8是根據(jù)本發(fā)明第一實(shí)施方式的手持終端上的攝像頭圖像數(shù)據(jù)采集方法的流程示意圖;圖9是根據(jù)本發(fā)明第一實(shí)施方式中的在第一次產(chǎn)生VS_DN中斷后,圖像數(shù)據(jù)的采集示意圖;圖10是根據(jù)本發(fā)明第一實(shí)施方式中的DMA通道停止傳輸示意圖;圖11是根據(jù)本發(fā)明第一實(shí)施方式中的每一幀圖像的采集經(jīng)過VS_DN產(chǎn)生、DMA通道再次啟動的示意圖;圖12是根據(jù)本發(fā)明第一實(shí)施方式的具體實(shí)現(xiàn)流程圖;圖13是根據(jù)本發(fā)明第一實(shí)施方式中的VS_DN信號產(chǎn)生與VS_UP信號產(chǎn)生的時(shí)間關(guān)系示意圖;圖14是根據(jù)本發(fā)明第三實(shí)施方式的手持終端結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明的核心在于,通過對攝像頭控制器中斷源中的幀同步信號的檢測,具體地, 通過檢測攝像頭控制器中斷源中的幀同步下降沿(即vertical synchronous down)中斷, 來達(dá)到控制DMA通道傳輸啟動圖像數(shù)據(jù)的目的。本領(lǐng)域技術(shù)人員可以理解,不管CAMERA設(shè)備模組使用何種數(shù)據(jù)格式,一般都有三個(gè)同步信號輸出幀同步/場同步(Vertical/Frame synchronizing signal)、行同步(Horizontal synchronizing signal)禾口像素時(shí)鐘(pixel clock) ο其中,PCLK(像素時(shí)鐘信號)與圖像數(shù)據(jù)之間的關(guān)系如下該信號由CAMERA設(shè)備輸出,該信號作為CAMERA設(shè)備輸出信號的同步時(shí)鐘,圖像數(shù)據(jù)的每一位都以該同步時(shí)鐘為參考輸出到CAMERA的數(shù)據(jù)總線上。CAMERA設(shè)備采集到的圖像數(shù)據(jù)是以PCLK為時(shí)鐘輸出。HS(行同步信號)與圖像數(shù)據(jù)之間的關(guān)系如下該信號由CAMERA設(shè)備輸出,該信號作為CAMERA設(shè)備輸出信號的行同步時(shí)鐘。只有在HS有效時(shí),CAMERA設(shè)備才能將圖像數(shù)據(jù)輸出。每一個(gè)HS有效期,都代表CAMERA設(shè)備輸出一行圖像數(shù)據(jù)。由此可知,HS有效期內(nèi)接收的圖像數(shù)據(jù)長度,根據(jù)數(shù)據(jù)格式不同,可能為CAMERA設(shè)備當(dāng)前設(shè)置分辨率的寬,也可能是寬的兩倍。假設(shè)當(dāng)前CAMERA設(shè)置的分辨率為640*480,如果數(shù)據(jù)格式為YUV422,則在每一個(gè)HS有效期內(nèi),CAMERA設(shè)備會輸出640*2個(gè)字節(jié)的圖像數(shù)據(jù);如果數(shù)據(jù)格式為RAW, 則在每一個(gè)HS有效期內(nèi),CAMERA設(shè)備會輸出640個(gè)字節(jié)的圖像數(shù)據(jù)。CAMERA設(shè)備采集到的圖像數(shù)據(jù),每次只有在HS有效時(shí)才會輸出。VS(幀同步信號)與圖像數(shù)據(jù)之間的關(guān)系如下該信號由CAMERA設(shè)備輸出,該信號作為CAMERA設(shè)備輸出信號的幀同步時(shí)鐘。只有在VS/HS同時(shí)有效時(shí),CAMERA設(shè)備才能將圖像數(shù)據(jù)輸出。每一個(gè)VS有效期,都代表CAMERA設(shè)備輸出一幀圖像數(shù)據(jù)。由此可知,VS有效期內(nèi)接收的圖像數(shù)據(jù)長度,為CAMERA設(shè)備當(dāng)前設(shè)置分辨率的高,即行數(shù)。如當(dāng)前CAMERA設(shè)置的分辨率為640*480,數(shù)據(jù)格式為YUV422,則在每一個(gè)VS有效期內(nèi),CAMERA設(shè)備會輸出640*480*2個(gè)字節(jié)的圖像數(shù)據(jù),即在每一個(gè)VS有效期內(nèi),都會有480個(gè)HS信號輸出,代表480行圖像數(shù)據(jù)。CAMERA設(shè)備采集到的圖像數(shù)據(jù),每次只有在VS/HS有效時(shí)才會輸出。也就是說,每一次VS信號的有效期,剛好是一幀完整的圖像數(shù)據(jù),也可以這樣理解每一次VS信號的上升沿(即VS_UP)和下降沿(即VS_DN)之間,都是一幀完整有效的圖像數(shù)據(jù)。如果DMA通道能夠做到在VS_UP開始接收數(shù)據(jù),在VS_DN停止接收數(shù)據(jù),保證在兩個(gè)時(shí)間點(diǎn)上準(zhǔn)確的啟動和停止DMA通道數(shù)據(jù)傳輸,那么一幀圖像就可以完整的采集下來。下面結(jié)合附圖對本發(fā)明的各實(shí)施方式進(jìn)行詳細(xì)闡述。本發(fā)明的第一實(shí)施方式涉及一種手持終端上的攝像頭圖像數(shù)據(jù)采集方法。在本實(shí)施方式中,使用基帶的CAMERA接口控制器中斷源中的幀同步下降沿中斷,檢測識別出VS_ DN信號,并 在此時(shí)啟動DMA通道進(jìn)行數(shù)據(jù)接收,同時(shí)使用基帶的CAMERA接口控制器中斷源中的DMA通道傳輸完成中斷來停止數(shù)據(jù)接收,通過準(zhǔn)確獲取幀頭的時(shí)間點(diǎn),來確保圖像的完整性。其流程示意圖如圖8所示。在步驟801中,對CAMERA設(shè)備進(jìn)行配置。具體地說,當(dāng)CAMERA設(shè)備供上電源和工作時(shí)鐘后,便可以進(jìn)行配置。待配置完全寫入之后,CAMERA設(shè)備就會產(chǎn)生接口信號,如VS, HS, PCLK, DATA 等信號。接著,在步驟802中,打開CAMERA接口控制器。具體地說,CAMERA設(shè)備配置完成后, 便會產(chǎn)生VS,HS,PCLK,DATA等信號,并將這些信號輸出到總線上,此時(shí),基帶打開CAMERA接口控制器,就可以接收這些信號?;鶐У腃AMERA接口控制器可以識別接口信號,并產(chǎn)生各類型的中斷檢測,同時(shí)通知基帶處理器,基帶處理器檢測到中斷發(fā)生后,可以通過查詢中斷標(biāo)志位的狀態(tài)來判別具體的中斷源。在本實(shí)施方式中,VS_DN中斷的識別方式如下在CAMERA的接收緩存分配完畢后, 基帶會打開VS_DN和DMA通道的中斷屏蔽,同時(shí)打開CAMERA接口控制器。當(dāng)?shù)谝粋€(gè)VS_DN 出現(xiàn)時(shí),CAMERA接口控制器會送出一個(gè)中斷信號到處理器,由于該類型中斷的屏蔽已經(jīng)打開,因此代碼會進(jìn)入CAMERA中斷處理程序開始執(zhí)行中斷處理流程,在中斷處理流程中,檢測中斷標(biāo)志位并確認(rèn)該中斷為VS_DN。一旦確認(rèn)了中斷為VS_DN中斷,則說明檢測到了 VS_ DN信號。在步驟803中,在每一次發(fā)生VS_DN中斷時(shí),啟動DMA通道接收攝像頭采集到的圖像數(shù)據(jù),將接收到的圖像數(shù)據(jù)存儲到緩存中。并且,在DMA中斷后,對緩存中的圖像數(shù)據(jù)進(jìn)行處理。直至預(yù)覽過程結(jié)束,關(guān)閉攝像頭設(shè)備。具體地說,在每一次識別到中斷為VS_DN中斷后,手持終端內(nèi)的中斷處理程序?qū)⑴渲肈MA通道的相關(guān)參數(shù),如數(shù)據(jù)搬移起始地址、數(shù)據(jù)搬移偏移量、數(shù)據(jù)搬移方式等信息, 在相關(guān)參數(shù)配置完成后啟動DMA通道,進(jìn)行圖像數(shù)據(jù)的采集與傳輸。在第一次產(chǎn)生VS_DN 中斷后,圖像數(shù)據(jù)的采集如圖9所示,其中,a的位置表示中斷處理程序配置DMA并啟動DMA 開始進(jìn)行圖像數(shù)據(jù)傳輸。DMA通道將圖像數(shù)據(jù)通過數(shù)據(jù)總線搬移到內(nèi)部指定緩存,當(dāng)CAMERA設(shè)備傳送一幀圖像數(shù)據(jù)之后,由于達(dá)到設(shè)定長度,DMA通道會產(chǎn)生相應(yīng)的DMA中斷,同時(shí)DMA通道停止傳輸,如圖10所示。圖10中b的位置,代表一幀圖像數(shù)據(jù)傳送完成,傳輸數(shù)據(jù)長度達(dá)到指定的DMA通道搬移數(shù)據(jù)長度,因此產(chǎn)生DMA中斷,DMA通道同時(shí)停止傳輸圖像數(shù)據(jù)。
在本實(shí)施方式中,DMA中斷的識別方式如下當(dāng)DMA中斷產(chǎn)生后,CAMERA接口控制器會送出一個(gè)中斷信號到處理器,由于該類型中斷的屏蔽已經(jīng)打開,因此代碼會進(jìn)入 CAMERA中斷處理程序開始執(zhí)行中斷處理流程,在中斷處理流程中,檢測中斷標(biāo)志位并確認(rèn)該中斷為DMA中斷。在識別到DMA中斷后,中斷處理程序會釋放信號量,通知上層可以使用緩存中的圖像數(shù)據(jù)進(jìn)行處理,上層可以將CAMERA設(shè)備采集到的圖像送至IXD顯示或者進(jìn)行編碼、圖像處理等各種操作。每一幀圖像的采集都需要經(jīng)過VS_DN產(chǎn)生、DMA通道再次啟動的過程,如圖11所示。圖11中C的位置,代表下一幀的VS_DN產(chǎn)生,基帶處理器接收到該VS_DN中斷后,會在中斷處理程序中再次配置和啟動DMA通道,接收搬移下一幀CAMERA設(shè)備采集輸出的圖像數(shù)據(jù)。本實(shí)施方式的具體實(shí)現(xiàn)流程如圖12所示。不難發(fā)現(xiàn),在本實(shí)施方式中,當(dāng)圖像數(shù)據(jù)正常傳輸時(shí),中斷處理程序識別到前一幀的VS_DN中斷,啟動DMA通道,準(zhǔn)備接收下一幀的圖像數(shù)據(jù),下一幀的圖像數(shù)據(jù)傳送完畢后, DMA通道傳輸完成產(chǎn)生DMA中斷,中斷處理程序釋放信號量通知上層取用圖像接收緩存,之后下一幀的VS_DN中斷產(chǎn)生,DMA通道傳輸再次啟動,再次接收下一幀圖像數(shù)據(jù),如圖11所
示當(dāng)圖像數(shù)據(jù)傳輸發(fā)生丟失時(shí),中斷處理程序識別到前一幀的VS_DN中斷,啟動DMA 通道,準(zhǔn)備接收下一幀的圖像數(shù)據(jù),下一幀圖像在傳輸中發(fā)生數(shù)據(jù)丟失,當(dāng)該幀圖像數(shù)據(jù)傳送完畢后,由于DMA通道搬移數(shù)據(jù)量未達(dá)到指定長度,此時(shí)DMA通道傳輸不會停止。當(dāng)下一幀的VS_DN中斷產(chǎn)生后,由于這一幀的傳輸長度未達(dá)到指定長度,DMA中斷未產(chǎn)生,DMA通道仍處于傳輸狀態(tài),因此,在本實(shí)施方式中通過對DMA通道進(jìn)行復(fù)位操作,重啟DMA通道接收數(shù)據(jù),使得圖像數(shù)據(jù)采集的時(shí)間點(diǎn)與CAMERA設(shè)備送出圖像數(shù)據(jù)的時(shí)間點(diǎn)始終保持一致, 為圖像采集的獲取提供了準(zhǔn)確的時(shí)間點(diǎn),可以保證數(shù)據(jù)采集的同步和完整。通過該方法, CAMERA設(shè)備采集的圖像可以完整準(zhǔn)確的送至IXD上進(jìn)行顯示或者進(jìn)行編碼、后續(xù)處理等。 有效地避免了圖像移位、“滾屏”等“所見非所得”的現(xiàn)象,明顯提升了用戶使用攝像頭時(shí)的使用感受。而且,本實(shí)施方式不依賴硬件,對硬件設(shè)計(jì)沒有較高要求,通過軟件的方式可靈活實(shí)現(xiàn),一旦出現(xiàn)數(shù)據(jù)丟失,可以做到在兩幀左右自動恢復(fù),對于15fps至25fps的圖像幀率, 恢復(fù)迅速,用戶感受較好。另外,攝像頭剛剛配置完成后的第一幀圖像,有時(shí)由于感光器件剛剛啟動,效果不一定是最佳的,而且,一般來說,預(yù)覽圖像的傳輸速率為25 30幀每秒,即每幀停留時(shí)間為 30ms左右,因此即使對第一幀圖像做丟棄處理,也不會產(chǎn)生視覺效果的影響。值得一提的是,在本實(shí)施方式中,檢測的幀同步信號為幀同步的下降沿信號(VS_ DN)。這是因?yàn)?,VS_UP信號一旦產(chǎn)生,CAMERA設(shè)備將在非常短的時(shí)間內(nèi)送出數(shù)據(jù),因此如果在VS_UP信號中斷處啟動DMA通道進(jìn)行圖像數(shù)據(jù)傳輸,可能在配置DMA通道的過程中, CAMERA設(shè)備就已經(jīng)將一部分圖像數(shù)據(jù)送出,當(dāng)DMA通道配置完畢并啟動后,實(shí)際上采集到的圖像數(shù)據(jù)可能已經(jīng)丟失了一部分。因此,通過將VS_DN信號作為啟動DMA通道的標(biāo)志,利用VS_DN信號產(chǎn)生到下一次VS信號有效(即VS_UP信號產(chǎn)生)的時(shí)間,保證中斷處理程序有足夠的時(shí)間對DMA通道進(jìn)行配置并啟動接收(如圖13所示),從而使得圖像數(shù)據(jù)的采集更為準(zhǔn)確和安全。但在實(shí)際應(yīng)用中,也可以將幀同步的上升沿信號(VS_UP),作為需要檢測的幀同步信號,在每一次檢測到VS_UP時(shí),啟動DMA通道接收圖像數(shù)據(jù)。本發(fā)明的第二實(shí)施方式涉及一種手持終端上的攝像頭圖像數(shù)據(jù)采集方法。第二實(shí)施方式與第一實(shí)施方式大致相同,主要區(qū)別之處在于在第一實(shí)施方式中,當(dāng)圖像數(shù)據(jù)傳輸發(fā)生丟失時(shí),通過對DMA通道進(jìn)行復(fù)位操作, 重啟DMA通道接收數(shù)據(jù),使得圖像數(shù)據(jù)采集的時(shí)間點(diǎn)與CAMERA設(shè)備送出圖像數(shù)據(jù)的時(shí)間點(diǎn)始終保持一致。而在本發(fā)明第二實(shí)施方式中,當(dāng)圖像數(shù)據(jù)傳輸發(fā)生丟失時(shí),停止DMA通道并不再啟動具體地說,在檢測到VS_DN時(shí),判斷在本次檢測到VS_DN與上一次檢測到VS_DN之間,是否產(chǎn)生過DMA中斷;如果未產(chǎn)生DMA中斷,則停止DMA通道。在本實(shí)施方式中,預(yù)設(shè)有獲取圖像數(shù)據(jù)的超時(shí)時(shí)間,手持終端的驅(qū)動層如果在超時(shí)時(shí)仍未獲取到緩存中的圖像數(shù)據(jù),則對手持終端上的攝像頭的參數(shù)進(jìn)行重置。也就是說,驅(qū)動在提供圖像數(shù)據(jù)獲取接口時(shí),提供了超時(shí)時(shí)間的參數(shù),如果到了超時(shí)時(shí)間后,仍無數(shù)據(jù)信號量釋放,則驅(qū)動層會進(jìn)行超時(shí)處理。在超時(shí)處理中,驅(qū)動可以將CAMERA設(shè)備或者 CAMERA控制器接口的狀態(tài)進(jìn)行恢復(fù)和更新,確保后續(xù)的圖像數(shù)據(jù)不會出現(xiàn)丟失。上面各種方法的步驟劃分,只是為了描述清楚,實(shí)現(xiàn)時(shí)可以合并為一個(gè)步驟或者對某些步驟進(jìn)行拆分,分解為多個(gè)步驟,只要包含相同的邏輯關(guān)系,都在本專利的保護(hù)范圍內(nèi);對算法中或者流程中添加無關(guān)緊要的修改或者引入無關(guān)緊要的設(shè)計(jì),但不改變其算法和流程的核心設(shè)計(jì)都在該專利的保護(hù)范圍內(nèi)。本發(fā)明第三實(shí)施方式涉及一種手持終端,如圖14所示,包含攝像頭,用于采集圖像數(shù)據(jù);信號檢測模塊,用于檢測攝像頭控制器中斷源中的幀同步信號,其中,幀同步信號為幀同步的下降沿信號VS_DN;通道啟動模塊,用于在所述信號檢測模塊每一次檢測到幀同步信號時(shí),啟動DMA 通道接收攝像頭采集到的圖像數(shù)據(jù),將接收到的圖像數(shù)據(jù)存儲到緩存中。圖像數(shù)據(jù)處理模塊,用于在檢測到DMA中斷后,對緩存中的圖像數(shù)據(jù)進(jìn)行處理。其中,DMA中斷在DMA通道接收到的圖像數(shù)據(jù)達(dá)到預(yù)設(shè)長度后產(chǎn)生。具體地說,本實(shí)施方式中的信號檢測模塊包含以下子模塊中斷屏蔽開啟子模塊,用于開啟VS_DN的中斷屏蔽;識別子模塊,用于通過對送至處理器中的中斷信號的中斷標(biāo)志位的識別,檢測出 VS_DN。通道啟動模塊包含以下子模塊參數(shù)配置子模塊,用于為DMA通道配置相關(guān)參數(shù),其中,相關(guān)參數(shù)包含數(shù)據(jù)搬移起始地址、數(shù)據(jù)搬移偏移量、數(shù)據(jù)搬移方式;啟動子模塊,用于在相關(guān)參數(shù)配置完成后,啟動DMA通道接收攝像頭采集到的圖像數(shù)據(jù)。不難發(fā)現(xiàn),本實(shí)施方式為與第一實(shí)施方式相對應(yīng)的系統(tǒng)實(shí)施例,本實(shí)施方式可與第一實(shí)施方式互相配合實(shí)施。第一實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第一實(shí)施方式中。本發(fā)明第四實(shí)施方式涉及一種手持終端。第四實(shí)施方式與第三實(shí)施方式大致相同,主要區(qū)別之處在于在第 三實(shí)施方式中,當(dāng)圖像數(shù)據(jù)傳輸發(fā)生丟失時(shí),通過對DMA通道進(jìn)行復(fù)位操作, 重啟DMA通道接收數(shù)據(jù),使得圖像數(shù)據(jù)采集的時(shí)間點(diǎn)與CAMERA設(shè)備送出圖像數(shù)據(jù)的時(shí)間點(diǎn)始終保持一致。而在本發(fā)明第四實(shí)施方式中,當(dāng)圖像數(shù)據(jù)傳輸發(fā)生丟失時(shí),停止DMA通道并不再啟動。具體地說,在本發(fā)明第四實(shí)施方式中,手持終端還包含DMA中斷判斷模塊,用于判斷在信號檢測模塊連續(xù)兩次檢測到幀同步信號的時(shí)間間隔之間,是否產(chǎn)生過DMA中斷;DMA通道停止模塊,用于在DMA中斷判斷模塊判定未產(chǎn)生DMA中斷時(shí),停止所述 DMA通道。重置模塊,用于當(dāng)手持終端的驅(qū)動層在超時(shí)時(shí)仍未獲取到緩存中的圖像數(shù)據(jù)時(shí), 對攝像頭的參數(shù)進(jìn)行重置。其中,獲取圖像數(shù)據(jù)的超時(shí)時(shí)間預(yù)先設(shè)置。不難發(fā)現(xiàn),本實(shí)施方式為與第二實(shí)施方式相對應(yīng)的系統(tǒng)實(shí)施例,本實(shí)施方式可與第二實(shí)施方式互相配合實(shí)施。第二實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第二實(shí)施方式中。上述各實(shí)施方式是實(shí)現(xiàn)本發(fā)明的具體實(shí)施例,而在實(shí)際應(yīng)用中,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于,包含以下步驟 檢測攝像頭控制器中斷源中的幀同步信號;在每一次檢測到幀同步信號時(shí),啟動直接地址訪問DMA通道接收攝像頭采集到的圖像數(shù)據(jù),將接收到的圖像數(shù)據(jù)存儲到緩存中。
2.根據(jù)權(quán)利要求1所述的手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于, 所述幀同步信號為幀同步的下降沿信號。
3.根據(jù)權(quán)利要求2所述的手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于,在每一次啟動DMA通道接收攝像頭輸出的圖像數(shù)據(jù)后,還包含以下步驟當(dāng)所述DMA通道接收到的圖像數(shù)據(jù)達(dá)到預(yù)設(shè)長度后,產(chǎn)生DMA中斷; 在檢測到所述DMA中斷后,對所述緩存中的圖像數(shù)據(jù)進(jìn)行處理。
4.根據(jù)權(quán)利要求2所述的手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于,在所述檢測攝像頭控制器中斷源中的幀同步信號的步驟之前,開啟幀同步的下降沿信號的中斷屏蔽;在所述檢測攝像頭控制器中斷源中的幀同步信號的步驟中,通過對送至處理器中的中斷信號的中斷標(biāo)志位的識別,檢測出所述幀同步的下降沿信號。
5.根據(jù)權(quán)利要求2所述的手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于,在每一次檢測到幀同步信號時(shí),還執(zhí)行以下步驟為所述DMA通道配置相關(guān)參數(shù);其中,所述相關(guān)參數(shù)包含數(shù)據(jù)搬移起始地址、數(shù)據(jù)搬移偏移量、數(shù)據(jù)搬移方式; 在所述相關(guān)參數(shù)配置完成后,啟動所述DMA通道接收攝像頭采集到的圖像數(shù)據(jù)。
6.根據(jù)權(quán)利要求2至5中任一項(xiàng)所述的手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于,還包含以下步驟在檢測到幀同步信號時(shí),判斷在本次檢測到幀同步信號與上一次檢測到幀同步信號之間,是否產(chǎn)生過DMA中斷;如果未產(chǎn)生所述DMA中斷,則停止所述DMA通道。
7.根據(jù)權(quán)利要求6所述的手持終端上的攝像頭圖像數(shù)據(jù)采集方法,其特征在于, 預(yù)設(shè)有獲取圖像數(shù)據(jù)的超時(shí)時(shí)間;所述手持終端的驅(qū)動層如果在超時(shí)時(shí)仍未獲取到所述緩存中的圖像數(shù)據(jù),則對所述手持終端上的攝像頭的參數(shù)進(jìn)行重置。
8.一種手持終端,其特征在于,包含 攝像頭,用于采集圖像數(shù)據(jù);信號檢測模塊,用于檢測攝像頭控制器中斷源中的幀同步信號; 通道啟動模塊,用于在所述信號檢測模塊每一次檢測到幀同步信號時(shí),啟動直接地址訪問DMA通道接收攝像頭采集到的圖像數(shù)據(jù),將接收到的圖像數(shù)據(jù)存儲到緩存中。
9.根據(jù)權(quán)利要求8所述的手持終端,其特征在于, 所述幀同步信號為幀同步的下降沿信號。
10.根據(jù)權(quán)利要求9所述的手持終端,其特征在于,所述手持終端還包含圖像數(shù)據(jù)處理模塊,用于在檢測到DMA中斷后,對所述緩存中的圖像數(shù)據(jù)進(jìn)行處理; 其中,所述DMA中斷在所述DMA通道接收到的圖像數(shù)據(jù)達(dá)到預(yù)設(shè)長度后產(chǎn)生。
11.根據(jù)權(quán)利要求9所述的手持終端,其特征在于,所述信號檢測模塊包含以下子模塊中斷屏蔽開啟子模塊,用于開啟幀同步的下降沿信號的中斷屏蔽; 識別子模塊,用于通過對送至處理器中的中斷信號的中斷標(biāo)志位的識別,檢測出所述幀同步的下降沿信號。
12.根據(jù)權(quán)利要求9所述的手持終端,其特征在于,所述通道啟動模塊包含以下子模塊參數(shù)配置子模塊,用于為所述DMA通道配置相關(guān)參數(shù);其中,所述相關(guān)參數(shù)包含數(shù)據(jù)搬移起始地址、數(shù)據(jù)搬移偏移量、數(shù)據(jù)搬移方式;啟動子模塊,用于在所述相關(guān)參數(shù)配置完成后,啟動所述DMA通道接收攝像頭采集到的圖像數(shù)據(jù)。
13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的手持終端,其特征在于,所述手持終端還包含DMA中斷判斷模塊,用于判斷在所述信號檢測模塊連續(xù)兩次檢測到幀同步信號的時(shí)間間隔之間,是否產(chǎn)生過DMA中斷;DMA通道停止模塊,用于在所述DMA中斷判斷模塊判定未產(chǎn)生所述DMA中斷時(shí),停止所述DMA通道。
14.根據(jù)權(quán)利要求13所述的手持終端,其特征在于,所述手持終端還包含重置模塊,用于當(dāng)所述手持終端的驅(qū)動層在超時(shí)時(shí)仍未獲取到所述緩存中的圖像數(shù)據(jù)時(shí),對所述攝像頭的參數(shù)進(jìn)行重置;其中,獲取圖像數(shù)據(jù)的超時(shí)時(shí)間預(yù)先設(shè)置。
全文摘要
本發(fā)明涉及手持終端,公開了一種手持終端上的攝像頭圖像數(shù)據(jù)采集方法及手持終端。本發(fā)明中,利用了每一次VS_UP信號和VS_DN信號之間,都是一幀完整有效的圖像數(shù)據(jù)的特性。通過在檢測到幀同步信號時(shí),啟動DMA通道進(jìn)行數(shù)據(jù)接收,以準(zhǔn)確獲取幀頭的時(shí)間點(diǎn),來確保圖像的完整性,有效地避免了圖像移位、“滾屏”等“所見非所得”的現(xiàn)象,明顯提升了用戶使用攝像頭時(shí)的使用感受。而且,不依賴硬件,可通過軟件方式靈活實(shí)現(xiàn)。
文檔編號H04N5/232GK102438117SQ20101029724
公開日2012年5月2日 申請日期2010年9月29日 優(yōu)先權(quán)日2010年9月29日
發(fā)明者鄒橋, 陶然 申請人:聯(lián)芯科技有限公司