《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM的MPEG-4數字錄像機的設計實現
基于ARM的MPEG-4數字錄像機的設計實現
EEworld
摘要: 該錄像系統已經基本完成了測試工作,可以選擇8種分辨率和兩種幀率,最高標準可以達到720×576分辨率,25fps。在選擇640×480分辨率,25fps錄制模式時,圖像質量最好,圖像顯示穩定,對于快速運動的物體可以無碼字丟失;在選擇720×576,全幀率模式時,硬盤可以連續錄制4~5個小時。目前系統需要解決的問題是改進錄制高質量圖像的碼流的穩定性問題,可以考慮在EP9315和硬盤之間加驅動芯片以提高處理器掛載能力。
關鍵詞: ARM MPEG-4數字錄像機
Abstract:
Key words :

  隨著科技的飛速發展,消費類電子,通信,電視電影廣播與計算機技術緊密結合起來。而數字化信息,尤其是數字化視頻信息,具有數據量大,存儲傳輸困難的特點,是制約人類獲得信息的主要瓶頸。這種形勢對數字視頻記錄設備的研制提出了新的要求:大批量的應用要求降低監控記錄設備成本,多樣的應用環境、分散、孤立的監控點要求監控記錄設備盡可能一體化、小型化、獨立、便攜、低功耗、供電方便、性能可靠。針對這些新問題和新要求,作者設計實現了一種基于嵌入式系統和MPEG-4編碼標準的數字錄像機,系統集成度高、體積小、功耗低、獨立、便攜,適合大量的各類視頻監控和記錄應用。

  1 系統框架及原理說明

  本系統選用的主要模塊是低功耗ARM" title="ARM">ARM9系列微處理器EP9315和專業視頻壓縮編碼處理芯片IME6400,周圍外部設備有SAA7118 A/D數模轉換芯片,RAM芯片,ROM芯片,網絡模塊和電源模塊。系統電路原理圖如圖1所示。整個電路采用5V電源供電,系統啟動后,外部輸入的視頻和音頻信號分別經過視頻數模轉換模塊和音頻模塊進行解碼,隨后通過IIC總線送入IME6400視頻處理芯片生成MPEG-4視頻音頻復合數據流,系統控制芯片EP9315從IME6400的HOST總線將數據流取出存放到硬盤中,并且控制與外部設備的通信。

基于ARM的<a class=MPEG-4數字錄像機" title="MPEG-4數字錄像機">MPEG-4數字錄像機的設計實現" height="199" onclick="get_larger(this)" src="http://files.chinaaet.com/images/20110706/226b7f2b-d3ee-47ff-b9b9-7db3ee27b896.jpg" width="521" />

  圖1:系統總體框圖

  2     MPEG-4標準

  2.1 MPEG-4壓縮算法的基本原理

  MPEG-4視頻壓縮算法采用了基于對象的處理方案,對視頻圖像中的每個目標進行單獨處理,能夠在保證圖像質量的情況下,極大的降低碼率。在相同的圖像質量下,MPEG-4的輸出碼流可以比MPEG-2降低一半。正因為如此,MPEG-4壓縮算法已得到了廣泛的應用。MPEG-4中視頻對象(VO)可能是場景中的某一物體、某個區域、也可能是計算機產生的二維、三維圖形等。VO的選定依賴于具體的應用和系統所處的環境:在要求超低比特率的情況下,VO可以是一個矩形幀,與以前的MPEG-1、H.263標準兼容;對于基于內容的應用,每一個VO有三類信息描述:運動信息、形狀編碼、紋理編碼。MPEG-4的編碼結構中,首先是從原始視頻流中分割出VO,之后由編碼控制機制為不同的VO及相應的3種類型的信息分配碼率,然后是各個VO獨立編碼,最后將各VO的碼流復合成一個位流。解碼過程是編碼的逆過程。編碼的圖2所示:

基于ARM的MPEG-4數字錄像機的設計實現

  2.2 MPEG-4碼流的形成

  如圖3所示,MPEG-4壓縮算法將一幅圖象分為多個對象,這些對象按不同的層,每個層又分為不同的平面按順序變換為視頻碼流。它的基本視頻流格式如圖3所示。每個視頻對象分為多個視頻對象層,每個視頻對象層形成一個基本流,這一基本流類似與MPEG-2中的GOP。每個基本流都有自己的視頻對象序列頭,不同的視頻對象序列頭可以分別按不同的順序傳送,這就極大地提高了MPEG-4傳送流的靈活性。

基于ARM的MPEG-4數字錄像機的設計實現

  圖3 MPEG-4視頻碼流的基本構成

  3 硬件設計

  3.1 控制模塊設計

  系統控制模塊選用CIRRUS LOGIC公司的EP9315A微處理器,此處理器是基于ARM920T內核,高性能,低功耗,32位CPU,自帶MMU,16k指令cache和16k數據cache和Maverick Crunch數學協處理器;主頻200MHz,系統總線100MHz;所支持的操作系統包括WINCE , Linux【1】。為了便于設計和調試,硬件設計上采用核心板加底板的模塊化設計方法,在核心板上集成了基于EP9315的最小系統,通過底板來擴展外部功能。在核心板上主要配置了64MB的NAND Flash 和64MB的SDRAM及提供RTC時鐘和工作時鐘的晶體,并將其豐富的外設接口資源引出。在底板上擴展出USB主機接口、以太網口、UART接口、IDE接口等,以實現與外部設備間的數據傳輸和通信。

  EP9315支持硬盤的掛載,可以通過外部IDE接口將視頻數據直接存入硬盤,但在開發初期采用通過與PC機服務器網絡掛載方式,將記錄數據通過網絡協議存入PC機硬盤中,便于回放和調試。IME6400的HOST接口映射到處理器的第6個Memory Bank中,將EP9315的nGCS3片選管腳直接連接IME6400的nCS,地址線ADD[1:5]通過總線驅動芯片后與HOST接口的HA[0:4]相連【2】,同時將IME6400異步模式下的中斷管腳GPIO0與EP9315的中斷管腳FPGIO1相連。

  3.2 視頻音頻編解碼模塊設計

  視頻A/D芯片選用Philips公司的高性能可編程解碼芯片SAA7118,該芯片支持多種輸入模式,具有抗混疊濾波、自動鉗位、自動增益變換、亮度、對比度、飽和度調整等功能,其工作時鐘為24.576MHz。通過設定SAA7118的內部的配置寄存器93H[6]為1使能其HOST端口,實現與IME6400的無縫連接。音頻A/D芯片采用BURR-BROWN公司的PCM1800,它對模擬音頻進行高信噪比20bit數字采樣,生成PCM數字音頻流。

  壓縮編碼采用INTIME公司的MPEG-4編碼芯片IME6400。該芯片是一款高性能的單片多通道MPEG-4數字壓縮編碼芯片,它支持多種編碼模式和比特率控制,并提供了豐富的外圍硬件接口。IME6400總線具有四種工作模式,通過mode管腳定義,在這里mode[1:0]設定為11,即異步工作模式。在這種模式下,當IME6400將GPIO0管腳置低電平時,FIFO緩沖區中存滿NFIFOSIZE=1k大小的輸出數據流,外部接口在得到GPIO0下降沿電平后便可以從IME6400的HOST接口寄存器Encodedstream中讀取數據流。GPIO0管腳直接與EP9315的中斷管腳FGPIO相連,在處理器獲取下降沿信號后便中斷當前操作,從IME6400讀取數據。在讀取完畢后,EP9315要向IME6400的HOST總線寄存器USER4發送一個不同值,通知IME6400數據讀取完成。隨后IME6400可以在FIFO中裝載新的壓縮數據流以保證EP9315的繼續讀取【3】。

  4 軟件設計

  Linux系統具有穩定、高效、易定制、易裁減、開放源碼等優點,因此本系統選用嵌入式Linux作為操作系統,在芯片中植入Linux系統作為視頻記錄的應用環境。編寫Linux環境下的硬件設備接口程序主要分兩個部分:硬件設備驅動程序和應用程序,驅動程序需要在視頻錄像前加載到Linux內核中,然后運行記錄程序,本系統采用的動態加載驅動的方式。在前面說過用網絡掛載硬盤來記錄視頻可以便于測試視頻錄像質量和調試軟硬件,具體的操作是:在PC服務器上用nfs協議共享一個硬盤空間作為記錄硬盤,然后通過minicom串口通信定義EP9315啟動時首先通過網絡掛載記錄硬盤,

關鍵字:ARM MPEG-4數字錄像機

 

  fconfig

  fis load zImage

  exec -c "root=/dev/nfs nfsroot=主機地址:共享硬盤空間 ip=嵌入式系統地址console=ttyS0,57600 devfs=mount"

  隨后視頻錄像數據的處理就相當于在PC機上進行操作,可以克服嵌入式操作系統功能不全,可視化程度不高的缺點【4】。

  4.1 驅動程序編寫

  編寫linux驅動程序的最主要工作就是file_operations結構中各入口點的實現,即對應于open()、release()、read()、write()、ioctrl()等系統調用子函數的編寫【5】。

  ·Open函數ime6400_open(struct inode *inode, struct file *filp),IME6400打開后用于模塊加載后的計數,防止系統非法釋放模塊資源。

  ·Read函數ime6400_read(struct file *fp, char *buf, size_t size),在IME6400數據緩沖區讀滿后從內核空間傳送到用戶空間。

  ·Write函數ime6400_write(struct file * fp, const char * buf, size_t size, loff_t *ppos),將攝像頭獲取數據從用戶空間傳送到內核空間。

  ·Ioctrl函數ime6400_ioctl(struct inode *inode, struct file *filp, unsigned int command, unsigned long arg),用于從用戶空間向內核空間傳遞定義參數。

  此外,驅動程序中還包括:

  ·IME6400片選的聲明

  #define BASE_ADDR           0x28000000  

  將IME6400的片選信號映射到片選4(ncs4管腳)。

  ·IME6400中斷的申請

  set_external_irq(IRQ_EINT8,EXT_FALLING_EDGE,GPIO_PULLUP_DIS); request_irq(IRQ_EINT8, &ime6400_irq, SA_INTERRUPT,"ime6400", NULL)。

  根據硬件手冊,這里將中斷定義為中斷8,用于在IME6400存入內核緩沖區后通知EP9315讀取數據流。

  4.2 應用程序編寫

  本系統應用程序主要實現在加載設備驅動后將視頻流從硬件接口層拷到存儲設備,具體操作上運用了多線程設計方法,這種方法的優點在于可以共享進程資源,線程間的轉換和調用時間短,效率高,聲明的幾個線程可以相互獨立地完成各自任務,并進行實時通信,傳遞參數。這里主要創建了三個線程:讀數據線程,寫數據線程,串口監聽線程。

  pthread_create(&t1,NULL,(void *)read_thread,NULL);

  pthread_create(&t2,NULL,(void *)write_thread,NULL);

  pthread_create(&t1,NULL,(void *)listen_thread,NULL);

  系統啟動后,系統首先通過IIC初始化EP9315和IME6400,然后串口監聽線程listen_thread()調用函數偵測是否有來自串口的控制指令輸入,如果沒有輸入指定指令將無限期等待,如果得到輸入指令則向讀線程read_thread()發送信號量sem,通知讀線程準備調用讀取數據函數IME6400_read()。在IME6400中FIFO緩沖區內記錄數據滿后系統獲得中斷,中斷程序將數據流拷入內核空間,若緩沖區滿則讀線程調用ime_read()拷貝數據到用戶空間,并向IME6400寄存器USER4發送新的值通知IME6400可以存入新的記錄數據流,從而進行下一步編碼。ime_read()拷貝完成后返回,由讀線程向寫線程發送信號量sem1通知寫線程write_thread()調用fwrite()函數將數據寫到硬盤,完成后發送信號量sem2通知讀線程,然后再由讀線程進行下一輪類似前面的操作。與此同時,監聽線程一直在偵測是否有串口輸入的用戶指令,如果有則調用中止函數或重新初始化函數來退出程序或重新啟動系統。

  5 結論

  該錄像系統已經基本完成了測試工作,可以選擇8種分辨率和兩種幀率,最高標準可以達到720×576分辨率,25fps。在選擇640×480分辨率,25fps錄制模式時,圖像質量最好,圖像顯示穩定,對于快速運動的物體可以無碼字丟失;在選擇720×576,全幀率模式時,硬盤可以連續錄制4~5個小時。目前系統需要解決的問題是改進錄制高質量圖像的碼流的穩定性問題,可以考慮在EP9315和硬盤之間加驅動芯片以提高處理器掛載能力。

  參考文獻:

  【1】 EP9315 User`s Guide. CIRRUS LOGIC, Inc. 2004

  【2】 EP9315 User`s Guide. CIRRUS LOGIC, Inc. 2004

  【3】 IME6400 firmware manual. Intime Corporation. 2003

  【4】 FS-EP9315 USER GUIDE ISSUE 1.8. Shenzhen uCdragon Technology Co. Ltd. 2005.6

  【5】 錢晨 徐榮華 王欽若,基于linux操作系統的設備驅動程序開發,微計算機信息,2004.09, 131-133

 

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美伊人久久| 先锋资源久久| 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产精品黑人久久久| 国产亚洲人成a一在线v站| 国产精品无码永久免费888| 欧美四级剧情无删版影片| 欧美日韩国产精品一区二区亚洲| 欧美成人免费全部观看天天性色| 久久亚洲国产成人| 久久综合色88| 久久影视三级福利片| 久久久一本精品99久久精品66| 久久久久天天天天| 久久久久久久一区二区| 久久理论片午夜琪琪电影网| 久久久久久久久久看片| 久久综合亚州| 欧美国产日产韩国视频| 欧美精品色网| 欧美午夜精品理论片a级按摩| 国产精品国产馆在线真实露脸| 国产精品国产三级国产aⅴ入口 | 欧美高清不卡| 欧美精品粉嫩高潮一区二区 | 亚洲视频在线观看网站| 亚洲一区免费网站| 欧美伊人久久| 久久躁日日躁aaaaxxxx| 女生裸体视频一区二区三区| 欧美精品日日鲁夜夜添| 国产精品国产亚洲精品看不卡15| 国产精品亚洲综合| 激情久久五月天| 91久久香蕉国产日韩欧美9色| 亚洲精品一区久久久久久| 亚洲无人区一区| 久久精品99国产精品| 亚洲欧洲在线一区| 亚洲午夜视频在线观看| 性欧美办公室18xxxxhd| 久久综合色婷婷| 欧美日韩国产一区精品一区| 国产精品久久久久久久久久免费| 国产欧美日韩激情| 激情六月婷婷综合| 亚洲精品欧美激情| 亚洲综合电影| 亚洲黄网站在线观看| 亚洲天堂久久| 久久精品亚洲| 欧美日精品一区视频| 国产欧美在线观看| 亚洲黄色成人| 亚洲在线不卡| 亚洲免费成人av电影| 欧美一区二区三区免费视频| 免费观看亚洲视频大全| 欧美日韩综合网| 激情久久久久久久| 宅男噜噜噜66一区二区66| 欧美在线观看一二区| 中文在线资源观看视频网站免费不卡| 性欧美超级视频| 欧美国产乱视频| 国产欧美日韩激情| 亚洲精品视频在线观看免费| 欧美一级在线播放| 国产精品99久久久久久有的能看 | 国产欧美一区二区三区沐欲| 亚洲黄色在线视频| 亚洲欧美自拍偷拍| 亚洲深夜影院| 免费成人美女女| 国产精品伊人日日| 亚洲日本一区二区| 欧美一区二区视频观看视频| 亚洲一区二区动漫| 欧美激情综合五月色丁香| 好吊一区二区三区| 亚洲一区二区三区中文字幕| 一区二区不卡在线视频 午夜欧美不卡在 | 午夜免费日韩视频| 欧美日韩国产一级片| 精东粉嫩av免费一区二区三区| 一区二区三区国产在线| 亚洲激情婷婷| 久久激情五月婷婷| 国产精品美女久久久| 亚洲精品久久久久| 亚洲黄色影院| 久久一区二区三区av| 国产女优一区| 亚洲天堂av在线免费观看| 亚洲精品一区在线观看| 免费欧美日韩| 激情久久五月| 久久av一区二区三区漫画| 性色av一区二区三区| 国产精品不卡在线| 亚洲美女在线视频| 夜夜嗨av一区二区三区网站四季av| 美女露胸一区二区三区| 合欧美一区二区三区| 欧美影院视频| 久久激情综合网| 国产日产精品一区二区三区四区的观看方式| 一级日韩一区在线观看| 在线亚洲欧美视频| 欧美区国产区| 亚洲乱码视频| 一区二区国产在线观看| 欧美另类videos死尸| 亚洲欧洲日韩在线| 日韩视频免费观看高清在线视频 | 国产一区二区按摩在线观看| 亚洲欧美在线免费| 午夜视频在线观看一区二区| 欧美午夜不卡在线观看免费| 99re6这里只有精品| 中文日韩电影网站| 欧美性猛片xxxx免费看久爱| av成人天堂| 亚洲在线观看免费| 国产精品有限公司| 午夜精品在线| 久久亚裔精品欧美| 在线精品视频一区二区| 亚洲国产高清视频| 欧美va天堂va视频va在线| 亚洲二区三区四区| 亚洲精品一区二区在线| 欧美日韩精品免费观看视一区二区| 亚洲精品欧洲| 亚洲天堂偷拍| 国产情侣久久| 久久精品欧美日韩| 欧美精品系列| 亚洲视频一区二区在线观看| 午夜精品福利在线| 国产亚洲精品一区二555| 亚洲第一天堂无码专区| 欧美成人国产va精品日本一级| 91久久精品日日躁夜夜躁国产| av成人福利| 国产精品区二区三区日本| 午夜在线精品| 免费日韩av片| 妖精成人www高清在线观看| 欧美一级视频| 影音欧美亚洲| 亚洲无线一线二线三线区别av| 国产精品一二三| 久久大综合网| 欧美日韩国产经典色站一区二区三区| 亚洲手机成人高清视频| 久久精品久久99精品久久| 136国产福利精品导航网址| 在线视频精品| 国产一区二区无遮挡| 日韩午夜电影在线观看| 国产精品卡一卡二卡三| 久久精品视频在线观看| 欧美日韩免费高清一区色橹橹| 亚洲永久免费av| 蜜乳av另类精品一区二区| 亚洲美女性视频| 久久xxxx| 亚洲欧洲一区| 欧美在线精品免播放器视频| 亚洲第一黄网| 亚洲综合日本| 国内偷自视频区视频综合| 99v久久综合狠狠综合久久| 国产欧美韩日| 99成人在线| 狠狠久久亚洲欧美专区| 亚洲少妇自拍| 永久久久久久| 亚洲欧美日韩视频一区| 亚洲福利视频网站| 欧美一级艳片视频免费观看| 亚洲精品1区2区| 久久久久成人网| 在线中文字幕一区| 欧美www在线| 午夜在线视频观看日韩17c| 欧美人与性动交cc0o| 欧美影院在线播放| 欧美午夜电影网| 亚洲精品九九| 国内精品久久久久伊人av| 亚洲一区在线观看免费观看电影高清 | 黑人一区二区三区四区五区| 亚洲天堂视频在线观看| 亚洲第一黄网| 久久久久久国产精品mv| 一区二区欧美日韩视频| 欧美国产精品一区| 久久精品国产2020观看福利|