《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于DSP的視頻采集驅動程序的設計
基于DSP的視頻采集驅動程序的設計
摘要: 視頻終端的核心是圖像的數字化處理模塊?;赑C機的數字視頻處理,給出了算法研究的途徑,而基于高速DSP的應用模塊才提供了實時嵌入式視頻處理的可能。然而,基于DSP的海量視頻數據的實時處理的關鍵則是實時、合理的視頻數據采集。本文針對自行研制的基于TMS320DM642(以下簡稱DM642)DSP的視頻處理板卡,使其在C64x系列DSP的實時操作系統DSP/BIOS的環境下運行,實現基于類/微驅動模型的視頻采集驅動程序,并進一步描述采用EDMA(增強的直接存儲器存取控制器)的數字視頻圖像信號的實時傳輸。
關鍵詞: DSP 視頻采集驅動
Abstract:
Key words :
   視頻終端的核心是圖像的數字化處理模塊。基于PC機的數字視頻處理,給出了算法研究的途徑,而基于高速DSP的應用模塊才提供了實時嵌入式視頻處理的可能。然而,基于DSP的海量視頻數據的實時處理的關鍵則是實時、合理的視頻數據采集。本文針對自行研制的基于TMS320DM642(以下簡稱DM642)DSP的視頻處理板卡,使其在C64x系列DSP的實時操作系統DSP/BIOS的環境下運行,實現基于類/微驅動模型的視頻采集驅動程序,并進一步描述采用EDMA(增強的直接存儲器存取控制器)的數字視頻圖像信號的實時傳輸。

  1 類/微驅動程序模型

  C64x系列的DSP系統給出了類/微驅動模型[1] 的驅動程序結構,采用該模型進行驅動程序設計,應用程序可以復用絕大部分相似設備的驅動程序,從而提高驅動程序的開發效率。類/微驅動模型結構如圖1所示,該模型在功能上將驅動程序分為依賴硬件層(微驅動)和不依賴硬件層(類驅動)兩層,并在兩層之間給出通用接口。上層的應用程序不直接控制微驅動,而是通過類驅動對其進行控制。每一個類驅動在應用程序代碼中表現為一個API函數,并通過標準微驅動的接口IOM與微驅動進行通信。

 


  在類/微驅動模型中,類驅動通常用于完成多線程I/O請求的序列化功能和同步功能,同時對設備實例進行管理。類驅動通過每個外部設備獨有的微驅動對設備進行操作。微驅動采用芯片支持庫[2]控制外設的寄存器、內存和中斷資源。微驅動程序必須將特定的外部設備有效地表示給類驅動。

  類驅動使用DSP/BIOS中的API函數[3]實現諸如同步等的系統服務,DSP/BIOS定義了三種類驅動模塊:管道管理模塊(PIP)、流輸入輸出管理模塊(SIO)和通用輸入輸出模塊(GIO)。在PIP和SIO類驅動中,調用的API函數已經存在于DSP/BIOS的PIP和SIO模塊中了,這些API函數需將參數傳給相應的適配模塊,才能與微驅動交換數據。而在GIO類驅動中,調用的API函數則直接與微驅動通信。

  2 基于DM642的視頻采集驅動

  2.1 硬件結構

  筆者利用TI公司的多媒體處理芯片DM642自行研制了嵌入式視頻處理板卡。卡上的主要組成模塊有視頻采集模塊、視頻處理模塊以及網絡發送模塊,其中視頻采集模塊主要由DSP芯片DM642[4]、視頻A/D 轉換芯片SAA7115和同步動態存儲器芯片SDRAM等組成,如圖2所示。來自攝像頭的視頻信號通過SAA7115進行數字化處理,輸出的數字視頻信號經過視頻端口的內部FIFO緩沖后,由DM642通過EDMA將數據傳送到片外SDRAM中,以便供視頻應用程序使用。

 


  主芯片DM642的處理能力達到4800MIPS,它的最大特點是芯片內部集成了三個可配置的視頻端口[5],這些視頻端口提供了與通用視頻A/D轉換芯片的無縫接口,因而無需外加CPLD(復雜可編程邏輯器件)和FIFO就可以滿足系統設計的要求。SAA7115支持六路CVBS(復合模擬視頻輸入)或三路S-VIDEO (S端子信號)輸入,支持多種格式的數字RGB和YUV視頻信號輸出。DM642通過IIC總線控制SAA7115的內部寄存器。

  采用類/微驅動模型編寫DM642芯片視頻端口的視頻采集驅動程序,驅動必須滿足如下幾個基本功能:

  · 可同時處理DM642的三個視頻端口;
  · 支持應用程序配置視頻采集的參數,支持獲取圖像數據;
  · 支持場圖像的采集,支持對CVBS和S-VIDEO兩種模擬信號的采集。

  在視頻采集過程中,最重要的是對視頻數據進行實時控制和有效的傳輸,因此需要使用硬件中斷,并在中斷服務程序中,根據視頻端口內部FIFO的狀態通過EDMA完成視頻數據的讀入。

    2.2 視頻采集驅動程序的框架構建

  視頻采集驅動程序包括類驅動和微驅動兩個模塊,視頻采集驅動程序的結構框架如圖3所示。

 

 

 

  類驅動使用GIO模塊,GIO模塊的傳輸模式是基于流輸入輸出模塊的同步I/O模式的,更適合文件系統I/O,如視頻采集的應用。該模塊的主要API函數的描述如表1所示。

  在圖3中,應用程序使用GIO_create函數創建GIO通道,并通過調用GIO_submit函數直接與微驅動的IOM交換數據,完成視頻數據的采集。
 
  應用程序通過GIO類驅動調用微驅動的標準API函數,這些標準API函數的描述如表2所示。這些規定的函數將放入微驅動的函數接口表(IOM_Fxns)中,以供應用程序通過GIO類驅動調用。

 

 


  在圖3中,微驅動的IOM接口將應用程序獲取圖像的命令打包生成數據包,并向微驅動發送。數據包的格式如下: typedef struct IOM_Packet {

  QUE_Elem link; /* 數據包隊列 */
  Ptr addr; /* 數據地址 */
  Uns size; /* 數據長度 */
  Arg misc; /* 保留使用 */
  Arg arg; /* 應用程序 */
  Uns cmd; /* 命令字段 */
  Int status; /* 命令完成狀態 */
  } IOM_Packet;

  數據包中數據長度與數據地址兩字段由應用程序提供,分別表示獲取圖像的大小及圖像存儲目的地址。微驅動依據數據包中的命令字段,調用mdSubmitChan函數將數據包放入數據包隊列,等待中斷服務函數的處理。視頻采集中的硬件中斷由視頻端口內部FIFO的狀態觸發,中斷服務程序根據數據包中的數據地址字段,通過EDMA將視頻端口內部FIFO中的視頻數據讀入SDRAM中的圖像存儲目的地址。依據數據包中的數據長度字段,在完成相應大小圖像的采集后,中斷服務程序還將完成以下功能:出列數據包;設置下一次傳送或服務請求;設置數據包中的命令完成狀態,并向應用程序返回。

  3 視頻采集驅動中的視頻數據傳輸

  視頻端口內部FIFO與SDRAM之間的視頻數據傳輸通常有以下幾種方法:軟件查詢、中斷和EDMA方法。軟件查詢消耗CPU的資源太大,是不可取的,中斷數據傳輸雖可節省很多CPU時間,但沒有發揮DM642的EDMA資源。EDMA[6]是在DMA基礎上發展起來的,用于在沒有CPU參與的情況下完成不同存儲空間之間的數據搬移。DM642提供了64個獨立的EDMA通道,通道的優先級可編程設置,在沒有CPU參與的情況下實現片內存儲器、片內外設以及外部存儲空間之間的數據高速搬移。因此,為減輕CPU的負擔,發揮DM642的強大的外部數據傳輸能力,視頻采集驅動使用EDMA完成視頻數據從FIFO到SDRAM的傳輸。

  3.1 基于雙EDMA通道的視頻數據傳輸
  
  利用EDMA將FIFO中的數據傳輸到SDRAM中有兩種方法,但是它們的性能卻差別很大。一種方法是利用EDMA將FIFO中的數據直接傳送到SDRAM中。這種方法雖然簡單且易于操作,但它沒有充分發揮SDRAM的頁讀寫的優越性,原因在于EDMA讀取FIFO和寫入SDRAM時分為兩個不同過程來實現,因此EMIF(外部存儲器接口)的時序不斷地在兩者之間切換,造成很大的時間浪費,所以這種傳輸效率不高。

  由于DM642視頻端口的內部FIFO提供“滿”、“半滿”、“空”三種狀態,另一方法使用兩個EDMA通道進行數據傳輸。以亮度信號的傳輸為例,當用于存儲亮度分量的內部FIFO半滿(640字節)時,觸發DM642的硬件中斷,在中斷服務程序中啟用一個EDMA通道將數據從FIFO中讀出,存放到緩沖區BUF中。傳輸完畢后,啟動另一個EDMA通道將數據從BUF中傳輸到SDRAM中。這樣,兩個EDMA通道分別進行讀取FIFO和寫入SDRAM的操作,避免了EMIF時序的切換,可以保證EDMA的有效傳輸。

    3.2 EDMA鏈表在場合成中的使用

  在隔行掃描模式下,每幀分為兩場,兩場在時域上是分開的,但在數據處理時需要將兩場合成一幀進行處理,因此要進行大量的數據搬移,占用了大量的CPU時間。通過EDMA鏈表可自動實現場合成,不需占用額外的CPU時間。

  EDMA的參數RAM存放了有關的傳輸參數,這些參數用于產生EDMA讀寫操作所需要的地址。如圖4所示,在使用EDMA通道傳輸奇數場與偶數場時,分別使用不同的EDMA參數RAM。兩組參數RAM的目的地址分別指向存儲圖像的第一行與第二行象素的首地址,并且兩組參數RAM通過鏈接地址循環相連。在EDMA通道的傳輸中,奇數場傳輸任務的結束會自動地根據當前參數RAM的鏈接地址裝載傳輸偶數場的參數RAM,又由兩組參數RAM的目的地址可知,奇數場與偶數場分別經EDMA通道傳輸至幀緩沖區后被隔行存儲,這樣在無需占用額外CPU時間的前提下就實現了場合成。

 

 

  4 視頻采集驅動程序的調用實例

  DSP/BIOS應用程序通過GIO類驅動調用微驅動之前,需使用DSP/BIOS配置工具注冊微驅動,將其命名為VP_CAPTURE,并啟動GIO模塊。

  在應用程序中,GIO_create函數使用已注冊的微驅動VP_CAPTURE創建GIO通道,通過調用GIO_submit函數完成應用程序對視頻數據的采集操作。部分源代碼如下:

  (1) 創建通道

  GIO_Handle capChan;
  int status;
  capChan = GIO_create('VP_CAPTURE'),
  IOM_INPUT, &status, (Ptr)&DM642_vCapParams, NULL);
  (2) 發送獲取圖像的數據包

  GIO_submit(capChan, IOM_READ, bufp, NULL, NULL);其中,DM642_vCapParams包含了視頻采集的初始化參數,如圖像大小、同步方式等;bufp用于指出采集圖像的存儲地址。不同的視頻應用程序在使用類驅動時,可以通過改變這兩個變量復用視頻設備。這樣,極大地提高了驅動程序的工作效率,對視頻外設的控制也大大簡化了。

  使用類/微驅動模型開發的視頻采集驅動程序,有效地解決了圖像采集和圖像實時處理之間的關系,在幾乎不需要CPU的干涉下,利用EDMA完成了數字視頻圖像數據的高速傳輸;通過使用類驅動復用驅動程序,視頻應用程序的開發效率獲得了極大的提高。視頻采集驅動程序現已在自主開發的視頻處理板卡上運行良好,為進一步開發遠程視頻監控系統、可視電話等視頻應用打下了堅實的基礎。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产一区二区精品久久| 欧美黄色大片网站| 国产一区二区精品在线观看| 亚洲一级一区| 亚洲一区中文字幕在线观看| 国产一区二区福利| 国产精品一区二区久激情瑜伽| 性欧美在线看片a免费观看| 亚洲深夜影院| 黄色精品免费| 亚洲午夜久久久久久尤物| 国产精品一区三区| 欧美日本不卡视频| 久久漫画官网| 精品不卡一区| 麻豆成人精品| 亚洲男人天堂2024| 红桃av永久久久| 亚洲理论在线观看| 尤妮丝一区二区裸体视频| 欧美激情一区二区久久久| 欧美精品国产一区二区| 乱中年女人伦av一区二区| 欧美日韩一区二区在线视频| 欧美精品网站| 亚洲男人的天堂在线| 欧美不卡一卡二卡免费版| 在线播放国产一区中文字幕剧情欧美| 欧美中日韩免费视频| 雨宫琴音一区二区在线| 伊人久久大香线蕉综合热线| 久久久人成影片一区二区三区| 亚洲人成在线播放网站岛国| 欧美国产日韩免费| 国产欧美日韩免费看aⅴ视频| 午夜在线精品偷拍| 欧美一区二区三区四区在线观看地址| 一区二区三区精品| 国户精品久久久久久久久久久不卡| 欧美一激情一区二区三区| 免费日韩精品中文字幕视频在线| 麻豆成人综合网| 欧美日韩午夜在线视频| 欧美日本中文字幕| 欧美亚洲日本网站| 国产精品一区视频网站| 国产亚洲精品久久久| 日韩一区二区免费高清| 欧美午夜一区二区福利视频| 女女同性精品视频| 亚洲国产精品久久久久秋霞蜜臀| 国内精品视频在线播放| 久久精品中文字幕一区二区三区| 欧美激情精品久久久久久大尺度| 麻豆精品视频在线观看视频| 亚洲深夜福利在线| 亚洲第一精品夜夜躁人人爽| 国产一区二区看久久| 欧美三级日本三级少妇99| 欧美日韩一区二区高清| 久久久www免费人成黑人精品| 韩国成人精品a∨在线观看| 一个色综合av| 国产美女精品视频| 另类av导航| 韩国三级在线一区| 欧美在线影院| 午夜亚洲激情| 伊人男人综合视频网| 国产欧美日韩麻豆91| 尤物yw午夜国产精品视频明星| 欲香欲色天天天综合和网| 美女主播视频一区| 夜夜嗨av一区二区三区| 亚洲一区精品视频| 在线成人中文字幕| 欧美人与性动交a欧美精品| 好看的av在线不卡观看| 性色av一区二区三区红粉影视| 免费日韩精品中文字幕视频在线| 午夜亚洲伦理| 日韩亚洲欧美成人| 制服诱惑一区二区| 国产精品成人国产乱一区| 国内精品久久久久久久97牛牛| 国产精品久久久久影院亚瑟| 国产欧美日韩在线观看| 亚洲精品在线免费| 亚洲专区一二三| 亚洲一卡二卡三卡四卡五卡| 午夜精品三级视频福利| 免费中文日韩| 欧美在线你懂的| 国产日韩亚洲欧美| 国内精品伊人久久久久av一坑| 欧美日韩国产系列| 国产麻豆精品视频| 久久精品免费观看| 国产精品久在线观看| 欧美日韩你懂的| 国产精品久久久久久久午夜| 久久精品二区三区| 国产精品国色综合久久| 国产精品99久久久久久白浆小说| 亚洲乱码日产精品bd| 亚洲欧美另类在线| 性一交一乱一区二区洋洋av| 精品不卡一区二区三区| 午夜综合激情| 一本色道久久88综合日韩精品| 欧美连裤袜在线视频| 欧美在线观看视频一区二区| 最新国产乱人伦偷精品免费网站| 国产欧美精品在线观看| 米奇777超碰欧美日韩亚洲| 欧美高清视频www夜色资源网| 亚洲激情精品| 亚洲欧洲日韩综合二区| 欧美国产在线电影| 欧美日韩精品是欧美日韩精品| 久久久久免费观看| 亚洲精品一级| 欧美精品久久天天躁| 樱花yy私人影院亚洲| 欧美激情影音先锋| 欧美美女bb生活片| 一区二区三区成人精品| 欧美日韩福利在线观看| 午夜精品久久99蜜桃的功能介绍| 欧美电影电视剧在线观看| 欧美丝袜第一区| 在线一区二区三区做爰视频网站| 欧美专区一区二区三区| 欧美极品欧美精品欧美视频| 国产精品男女猛烈高潮激情| 国产精品久久久久9999吃药| 欧美日本一区二区视频在线观看| 在线观看91久久久久久| 一区二区三区欧美激情| 欧美日韩国内| 欧美一区二区在线| 国产一区二区精品久久91| 国产日本欧美一区二区三区在线| 一区二区三区无毛| 久久gogo国模裸体人体| 91久久久精品| 亚洲一二三区视频在线观看| 欧美91视频| 午夜精品三级视频福利| 最新日韩精品| 亚洲一区视频在线观看视频| 亚洲欧美一区二区激情| 久久午夜av| 性做久久久久久久免费看| 国产精品第三页| 欧美视频国产精品| 欧美日韩国产探花| 亚洲精品一区二区三区蜜桃久| 欧美区视频在线观看| 国产美女精品视频免费观看| 亚洲黄色在线| 牛夜精品久久久久久久99黑人| 国产日韩在线一区| 欧美亚洲一区| 中国亚洲黄色| 欧美一乱一性一交一视频| 国产精品亚洲一区二区三区在线| 91久久极品少妇xxxxⅹ软件| 久久国产加勒比精品无码| 99视频精品全国免费| 精品1区2区| 激情成人在线视频| 一区二区视频免费完整版观看| 欧美一区二区在线免费观看| 亚洲电影免费观看高清完整版在线观看| 亚欧成人精品| 男人的天堂亚洲| 午夜精品免费视频| 欧美午夜精品久久久久久浪潮| 99在线观看免费视频精品观看| 激情久久久久久久| 日韩视频在线观看| 久久国产精品免费一区| 免费精品99久久国产综合精品| 久久香蕉国产线看观看av| 欧美成人一品| 欧美性jizz18性欧美| 欧美性猛交99久久久久99按摩| 99视频国产精品免费观看| 国产精品欧美在线| 亚洲精品中文字幕有码专区| 国产精品99免视看9| 中国成人亚色综合网站| 国产精品mv在线观看| 海角社区69精品视频| 亚洲视频一区在线| 国内精品免费午夜毛片| 亚洲国产精品美女| 欧美成人一二三| 久久人人97超碰人人澡爱香蕉| 黄色一区三区| 国产伦精品一区二区三| 一区二区三区视频在线| 亚洲美女在线一区| 欧美日韩专区在线| 久久久亚洲精品一区二区三区| 在线观看日韩国产| 午夜在线电影亚洲一区| 亚洲欧美日本伦理| 国产在线观看一区| 国产精品―色哟哟| 欧美激情一区在线观看| 韩国亚洲精品| 久久狠狠婷婷| 你懂的国产精品| 亚洲深夜av| 亚洲激情在线观看视频免费| 国产综合色在线| 国产亚洲a∨片在线观看| 激情欧美一区二区三区在线观看| 亚洲欧美春色| 欧美aaaaaaaa牛牛影院| 久久成人资源| 欧美主播一区二区三区美女 久久精品人| 欧美亚洲一区在线| 亚洲一区欧美一区| 免费成人激情视频| 欧美日韩精品一本二本三本| 亚洲精品视频中文字幕| 久久综合99re88久久爱| 免费欧美网站| 国产精品高潮呻吟视频| 亚洲欧美日韩另类| 国产麻豆9l精品三级站| 亚洲私人黄色宅男| 欧美专区福利在线| 欧美精品久久99| 亚洲自拍三区| 欧美久久久久中文字幕| 国产欧美精品日韩精品| 亚洲片在线观看| 欧美在线视频一区二区| 国产欧美日韩视频一区二区| 欧美香蕉大胸在线视频观看| 欧美精品一区二区三区蜜桃| 久久久91精品国产一区二区精品| 国外成人在线视频网站| 老司机精品视频一区二区三区| 亚洲免费一区二区| 性久久久久久久久久久久| 欧美日韩一区二区三区| 久久久精品国产免费观看同学| 亚洲免费小视频| 欧美裸体一区二区三区| 国产精品高潮呻吟| 另类国产ts人妖高潮视频| 国产精品―色哟哟| 一区二区欧美激情| 99日韩精品| 久久综合精品一区| 久久国产精品电影| 裸体歌舞表演一区二区| 亚洲一区二区三区久久| 欧美另类人妖| 国产精品麻豆成人av电影艾秋| 国产精品视频久久| 亚洲欧美日韩成人| 狠狠综合久久av一区二区小说| 亚洲免费av观看| 欧美丝袜一区二区三区| 欧美xart系列在线观看| 午夜一区二区三区在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品日韩在线观看| 国产日韩精品视频一区| 欧美精品免费在线| 国内一区二区三区| 欧美激情一二区| 国产精品v日韩精品v欧美精品网站| 日韩一二在线观看| 狠久久av成人天堂| 国产精品热久久久久夜色精品三区| 亚洲欧洲在线视频| 国产精品美女久久| 欧美精品自拍| 一区二区三区欧美视频| 亚洲美女精品久久| 欧美午夜久久| 在线精品亚洲一区二区| 国产精品人人做人人爽人人添| 亚洲第一精品久久忘忧草社区| 国产精品99久久久久久久女警| 一本色道久久加勒比精品| 久热国产精品视频| 99www免费人成精品| 亚洲人成网站色ww在线| 香蕉成人啪国产精品视频综合网| 国产一级一区二区| 欧美国产视频在线| 亚洲乱亚洲高清| 在线日韩av永久免费观看| 激情成人av| 亚洲激情小视频| 欧美一级欧美一级在线播放| 欧美va天堂| 久久久99爱| 美女国产一区| 99国产精品视频免费观看一公开| 一本一本久久a久久精品综合妖精| 亚洲看片网站| 久久久99爱| 免费成人高清在线视频| 国产精品久久久久一区二区| 国产精品每日更新在线播放网址| 激情成人在线视频| 欧美日韩亚洲三区| 在线视频成人| 亚洲一区二区影院| 国产日韩一区二区三区在线| 18成人免费观看视频| 国产精品一页| 91久久久精品| 欧美主播一区二区三区| 亚洲二区在线观看| 欧美精品二区三区四区免费看视频| 欧美精品一区二区高清在线观看| 亚洲尤物在线视频观看| 精品成人一区二区三区四区|