新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM9的視頻采集傳輸系統

        基于ARM9的視頻采集傳輸系統

        作者: 時間:2012-11-10 來源:網絡 收藏
        引言

          隨著多媒體技術及寬帶網絡傳輸技術的發展,作為遠程視頻監控、可視電話會議和工業自動控制領域的一項核心關鍵技術,近年來也得到了飛速的發展。本文所提出的系統是在新一代基于26EJ-S微處理核的嵌入式開發平臺上進行的,并將國際上流行的MPEG-4壓縮編解碼技術和流媒體傳輸技術相結合。該系統具有較強的實時性、可交互性及便攜性。

        1 系統開發硬件平臺

          本設計采用的開發平臺是Freescale i.MX家族的MC9328MX21,作為整個系統的核心微處理器,其26EJ-S核提供了加速的Java支持和高度整合的系統功能模塊,如片上模塊包括圖像加速模塊、LCD控制器、USB控制模塊、CMOS傳感器接口及同步串口等,為開發者進行多媒體應用開發提供了豐富的外圍接口。核心板上集成了64MB SDRAM以及16MBFlash存儲器,底板資源包括4個四線RS-232串口、1個10 Mbit·s-1/100 Mbit·s-1自適應以太網接口及音設備,為系統設計時的交叉編譯及多媒體數據的處理提供了方便。

          系統的關鍵外圍設備、視頻數據的采集所使用的CMOS圖像傳感器OV9640,與傳統的CCD圖像傳感器相比,具有功耗低、體積小、集成度高等優點,并且OV9640支持VGA、QVGA、CIF等多種解析度,支持的數據格式包括YCrCb 4:2:2、GRB 4:2:2和RGB:RawData這3種,圖像幀傳輸速率達30幀/s。傳感器通過CSI模塊進行圖像數據的采集,然后通過專用總線傳輸至PRP(eMMA Pre-processor),在PRP中調整圖像大小并轉換成合適的顏色空間。PRP的輸出分成2個通道,通道1輸出RGB565格式數據作為LCD的顯示,通道2輸出YUV420格式數據進行MPEG或者JPEG編碼。

          在兩者連接中,各模塊端口的作用分別是:CSI端口為傳輸圖像數據;I2C端口為配置傳感器;GPIO為控制傳感器。

          MC9328MX21的CSI模塊有一個8位輸入端口,如果傳感器的傳輸超過8位數據,圖像傳感器通常作為從設備通過I2C端口控制。底層的協議是I2C,高層的協議則由傳感器確定。在這里,圖像傳感器的主時鐘由MC9328MX21提供。

        2 系統的軟件系統設計

        2.1 搭建交叉編譯環境

          由于嵌入式系統選用的是開源的基于ARM微處理器的系統內核ARM-Linux,而在開發板上沒有足夠的資源運行開發調試工具,所以必須首先搭建好交叉編譯調試環境。首先,需要通過在編譯時指定target=arm-linux生成適合ARM平臺的binutils,它包括了ld、ar和as等一些生成和處理二進制文件的工具。然后,編譯生成GCC(GNU Compiler Collection),它能夠支持多種高級語言,如C,C++等,需要注意的是,在編譯GCC時需要ARM-linux內核頭文件的支持,所以首先需要配置內核#make menuconfig ARCH=ARM來生成對應ARM內核的頭文件,這樣就可以在配置編譯GCC時通過with-headers選項指定編譯所需頭文件。最后,還需要編譯生成許多用戶層應用都要用到的函數庫glibc,所有動態鏈接的程序都要用到它,在編譯時需要注意的是打開--enable-add-ons選項,這個開關將打開glibc的附加包,因為我們需要用到linu-xthreads。這樣,一個嵌入式ARM-linux下的交叉編譯環境就已搭建成功。

        2.2 編譯制作內核及文件系統

          通過make menuconfig配置內核選項,其中的一些關鍵設置包括指定System Type時打開26T CPUidle、I-Cache 0n和D-Cache,并且由于在進行應用軟件開發時需要ARM-linux內核支持frame buffer技術,所以還需要打開Console drivers中的Frame-buffer sup-port。然后,make boot就可以編譯生成定制好的內核映像文件Image,將制作好的系統內核和文件系統通過宿主機的TFTP服務燒寫進開發板的Flash存儲器。這樣就完成了板上可獨立運行的操作系統的設計。

        2.3 視頻數據的采集、編碼和傳輸的實現

          這部分的工作是整個設計的核心。MPEG-4在1999年初正式成為國際標準,與之前的標準相比,它更加重視多媒體系統的交互性和靈活性,主要針對視頻會議、可視電話的超低比特率編碼等多媒體應用。目前在嵌入式系統中,MPEG-4編解碼主要都是通過專用芯片實現的,其實現方法與MPEG-1、MPEG-2的硬件實現方法類似,將編碼算法固化在芯片的硬件電路中,所以導致它在使用中存在以下缺點:

          a) 性價比不高。由于現在MPEG-4編碼技術還在不斷發展中,還沒有一個真正成熟的算法支持,所以市場上推出的MPEG-4編碼芯片都是在標準基礎上進行了修改和簡化,在性能上與H.263等編碼芯片上沒有明顯的優勢,所以其性價比不高。

          b) 可移植性差。由于各廠商所生產的編碼芯片都在固化時加入了自己對編碼算法的改進和優化,所以在解碼端必須使用對應的專用解碼器,這就導致出現了兼容性的問題。

          c) 無可擴展性。隨著對MPEG-4編解碼標準的研究,必然提出許多新的算法及對原有算法的改進,但是現有的MPEG-4編碼芯片已將已有的算法固定在了芯片硬件電路中,所以無法方便地在芯片上進行算法的修改及擴展。

          所以在設計該系統時,主要采用了軟件實現其編解碼,在嵌入式系統中采用軟件實現編解碼,可以彌補硬件編解碼上的諸多不足,而且便于對算法本身進行研究和改進。但是,也需要考慮幾個問題:首先,由于MPEG-4編碼算法運算量復雜,而嵌入式系統的資源有限,所以必須考慮所選平臺微處理器的運算能力;其次,在編碼軟件及數據采集硬件的接口部分,由于需要針對不同的采集硬件,所以需要做許多匯編級的優化。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 卢湾区| 四川省| 囊谦县| 五河县| 保靖县| 东台市| 富平县| 卢龙县| 谷城县| 湟源县| 井冈山市| 邛崃市| 汾阳市| 界首市| 威信县| 乌鲁木齐县| 金乡县| 盐亭县| 古浪县| 广平县| 大姚县| 曲松县| 类乌齐县| 鄢陵县| 佛山市| 高邮市| 白水县| 汉寿县| 肇源县| 镇远县| 宝应县| 民勤县| 盖州市| 聂拉木县| 交口县| 南平市| 太白县| 长治市| 南昌县| 团风县| 乐昌市|