?

基于DM6446嵌入式虹膜識別系統視頻驅動的開發與實現

2014-11-15 02:51羅茂元胡春林
電子測試 2014年18期
關鍵詞:虹膜寄存器應用程序

羅茂元,胡春林

(1.電子科技大學物理電子學院,成都,610054;2.電子科技大學電子工程學院,成都,611731)

0 引言

隨著社會和科技的發展,身份認證的重要性日益顯現。在身份識別方式中,虹膜識別以其最精確、非接觸性等特點,居于各種生物特征識別系統的首位。目前,虹膜識別系統實現平臺可分為基于PC機和基于嵌入式兩大類。前者主要用于大型管理系統等領域,結構復雜,信息量大,體積大;而后者適用于小范圍認證,信息處理量小,系統結構較為簡單的領域,如高安全級別門禁系統等。

本課題重點研究在DM6446嵌入式虹膜系統的硬件平臺下,通過配置視頻前端寄存器,設計視頻驅動程序。其目的在于實現分辨率為640*480的虹膜視頻圖像的采集,并將捕獲到的虹膜圖像在DDR2內存中保存,為后端的DSP虹膜算法提取特征值、完成相應編碼提供基礎。

1 視頻處理前端(VPFE)的設計與實現

嵌入式DM6446處理器的視頻處理子系統模塊(VPSS)由用于視頻輸入及前端處理的視頻前端模塊(VPFE)和用于視頻顯示及后端處理的視頻后端模塊(VPBE)兩部分組成。

視頻處理前端(VPFE)主要由CCDC、IPIPE、IPIPEIF、H3A四個模塊組成。CCDC提供了一個連接圖像傳感器和數字視頻源的接口。在硬件設計上,將CCDC控制器與CMOS圖像傳感器芯片MT9T001相連接,通過設置CCDC相應的寄存器,使只接收原始圖像/視頻數據圖像,而非多種形式的YUV視頻數據,完成圖像的采集。如圖1所示,CMOS攝像頭原始圖像數據以RAW格式的視頻流通過粗實線路徑流向A2口,通過對下圖中3個寄存器的配置,可設置圖像數據采集的鎖存時刻、輸入數據傳遞是否按位取反以及數據比特數。

圖1 RAW模式下CCDC的配置

在圖2中,設置寄存器使A1路徑的YCC數據不能通過,A2路徑的RAW數據通過。由于后續均使用原始RAW圖像數據,因此,不需圖像調節功能,其他寄存器均保持默認值。RAW圖像數據經粗實線路徑流到B端口。

圖2 RAW模式下數據選擇

CCDC控制器后端處理采集的視頻流不分奇偶場,如圖3所示,采用連續存儲模式將圖像原始數據存儲到DDR2內存中,由寄存器DDR_ADDR.ADR的值決定每一幀圖像數據在實際物理內存DDR2中的起始地址,設置SDOFST寄存器根據場的ID號確定奇偶行在DDR2內存中額外偏移。

圖3 RAW模式下CCDC控制器后端處理

2 視頻前端抓捕驅動程序的設計

在Linux中,V4L2為Linux下的視頻設備程序開發提供了一套接口規范。本系統采用V4L2視頻驅動管理虹膜圖像傳感器MT9T001,視頻驅動的整體構架主要由應用程序、V4L2核心層、MT9T001驅動等組成,下面對相關構架單元著重分析。

2.1 V4L2驅動核心層數據結構

在Linux系統中視頻驅動子系統是圍繞struct video_device結構體建立的,用于描述當前視頻設備所支持的視頻功能和傳輸類型。在該結構體中,主要包含三組不同的函數指針集,用于移植虹膜攝像頭的V4L2架構驅動程序。

第一組函數指針針對V4L2自身架構所設計,實現對不同的視頻設備進行配置操作、輸入幀率控制以及其他操作,是API函數的核心。

第二組由release()函數作為一個函數指針,進行整個結構體銷毀工作。由于video_device是針對多個應用層設備文件,如果在每次應用程序調用完相應的視頻設備后,就盡快對這一結構體進行銷毀,那么非常容易出現內核不穩定的情況,所以release()單獨作為一個函數指針。

第三組是常規的文件操作,根據實際設備進行輸入或輸出,實現相應函數內部的具體功能。通過對該函數調用可對底層視頻設備進行初始化控制、配置底層設備視頻圖像數據格式和視頻緩沖區的大小設置等。

2.2 V4L2驅動注冊

V4L2視頻驅動位于應用程序和硬件設備之間的中間層,它是一個兩層驅動系統。在實現內核空間拷貝數據時,使用mmap函數轉換成應用程序中的絕對地址,切換數據指針將內核空間的視頻驅動圖像數據與用戶空間共享。

2.3 多級緩存內存管理

由于攝像頭采集圖像傳送數據的速度和DSP應用程序處理速度不同,為避免視頻數據丟幀,上層和底層并行處理互不干擾,采用多級緩存方式實現FIFO視頻內存管理。如圖4所示,在視頻緩沖區將視頻圖像分成多個同樣大小的緩存塊,當視頻采集開始時,將采集數據存到DM6446輸入視頻端口的FIFO,先填寫第一個緩存塊bufferA,當bufferA填滿后,DSP 發出信號產生EDMA 中斷,啟動EDMA 通道,搬運FIFO中的bufferA圖像數據,將其存入SDRAM中,等待圖像處理。在每場圖像采集完成后觸發VPORT中斷,中斷服務程序更新圖像存儲區,EDMA 通道自動把指針指向第二個緩存塊bufferB,繼續采集另一場圖像,已完成的視頻緩存塊bufferA就作為了空閑模塊,歸還給輸入隊列以便再次使用,以此實現多個同樣大小的緩存塊交替接收數據。解決了攝像頭采集和DSP應用并行處理且互不干擾。

圖4 采用多級緩存技術采集圖像示意圖

3 視頻前端抓捕測試

在DM6446 VPFE視頻驅動設計完成后,還需編寫視頻采集程序,通過調用V4L2控制命令字實現對視頻采集設備的控制,以驗證驅動開發的正確性。

將V-MT9V0011 連接到DM6446的視頻處理前端,通過 UART0調試串口啟動嵌入式操作系統,將視頻采集程序通過 tftp 下載至 DM6446 核心板中。在 PC 機上利用 VLC 播放器打開 RTSP 媒體流觀察輸出圖像,進行初級測試。視頻捕捉結果如圖5所示,輸出圖像顯示統計幀率正常,最高到達60FPS的傳輸速度;圖像清晰、流暢。驗證了本 DM6446 VPFE驅動的正確性。

圖5 采集到的虹膜圖像

4 結束語

綜上所述,本文以DM6446為開發平臺,實現了基于 V4L2 的視頻處理前端驅動的設計,并通過進行視頻采集程序測試,證明其可以進行長期、穩定、實時的,對虹膜圖像數據進行采集,并且并沒有圖像數據位置不正確或者是丟幀的情況出現,到達了預期設計目的。

[1]朱瑞慧.基于局部特征分析的虹膜識別[D].天津:中國民航大學,2006

[2]張彥龍.基于DM6446的立體圖像顯示系統和視頻捕捉系統的設計與實現[D].天津 天津大學,2007

[3]杜春雷.ARM體系結構與編程[M].1版.北京:清華大學出版社,2003

[4]XU FEN,ZENG JIAN-JUN,ZHANG YUN-LONG.Design of a DSP-based CMOS imaging system for embedded computer vision [C]//Proceedings of 2008 IEEE Conference on Cybernetics and Intelligent Systems.Washington, DC: IEEE Computer Society, 2008:430-433.

猜你喜歡
虹膜寄存器應用程序
雙眼虹膜劈裂癥一例
STM32和51單片機寄存器映射原理異同分析
基于輪廓匹配和多項式擬合的虹膜分割算法
Lite寄存器模型的設計與實現
刪除Win10中自帶的應用程序
一種基于虹膜識別技術的車輛啟動系統
谷歌禁止加密貨幣應用程序
“刷眼”如何開啟孩子回家之門
高速數模轉換器AD9779/AD9788的應用
一種可重構線性反饋移位寄存器設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合