新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于V4L2視頻采集緩存機制應用與實現

        基于V4L2視頻采集緩存機制應用與實現

        作者: 時間:2010-12-24 來源:網絡 收藏

        摘要:V4L是Linux針對設備的應用程序接口,V4L2為其升級版本,它修復了第一版的很多設計缺陷。然而它提供的常規讀寫函數并不能滿足大數據量的高速傳輸,所以將緩存技術引入到采集領域可以提高系統的吞吐量。提出了一種雙幀內存映射采集機制,由于不需要做數據拷貝動作,減少了讀/寫時限,因而可以提高視頻采集性能。實驗結果表明,采用雙幀內存映射機制在視頻采集時速度快,效率高,達到了預期的實驗效果。
        關鍵詞:V4L2;Linux;視頻采集;內存映射

        0 引言
        V4L(video for linux)是由Alan Cox開發的針對視頻設備的應用程序接口(API),開始出現是在Linux 2.1.x版本內核中,可以實現圖像采集、AM/FM廣播和圖像編解碼等功能。然而,由于它在擴展性和靈活性上的缺陷,漸漸被Bill Dirks設計出的V4L的升級版本V4L2所替代,V4L2開始是在Linux 2.5.x版本內核中集成的,在對視頻設備數據的讀/寫中,應用程序可以通過read/write方法或者內存映射來獲得位于內核空間的圖像數據。 read/write方法是將數據在內核空間和用戶空間之間進行拷貝,而內存映射使應用程序可以直接訪問設備內存,減少了從內核態到用戶態的數據拷貝,因而可以顯著提高系統的吞吐量,下面討論視頻采集中緩存機制的應用和實現。

        1 V4L2的視頻采集框架
        V4L2采用了分層架構,應用程序接口為上層,而下層則是視頻設備的驅動程序,一般研究領域都是編寫上層的應用程序,通過編程接口來控制視頻設備完成相應的操作和功能。利用V4L2開發的視頻采集程序具有設備無關性,任何支持V4L2的視頻采集設備都可以移植此類程序,因而也提高了視頻采集程序的可移植性。
        當視頻設備連接到主機后,驅動程序會首先注冊一個主設備號為81的字符設備,它是硬件惟一的身份標識。驅動程序利用主設備號來識別硬件,而系統內核則是利用主設備號讓設備與對應的驅動程序相結合,同時加載驅動程序的成員函數、次設備號以及其他相關信息,使設備可以正常工作。使用表1中的函數可以訪問 V4L2設備,也可以在應用程序中直接調用。具體功能如表1所示。
        a.JPG

        其中,ioctl函數的功能非常強大,它可以管理設備的I/O通道,設置視頻的制式和幀格式,還提供查詢當前設備屬性的功能,主要的ioctl命令如表2所示。
        b.JPG


        上一頁 1 2 3 下一頁

        關鍵詞: 視頻

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 香格里拉县| 鱼台县| 丰原市| 岑溪市| 分宜县| 乌鲁木齐县| 盐津县| 大同县| 临桂县| 金昌市| 泾阳县| 玛纳斯县| 澳门| 乐亭县| 柘城县| 开平市| 高州市| 徐闻县| 福鼎市| 建德市| 定襄县| 天水市| 庆云县| 兴安盟| 元朗区| 孝昌县| 铁力市| 万源市| 余姚市| 天全县| 临西县| 正阳县| 榆中县| 龙口市| 通海县| 焉耆| 乐至县| 苗栗市| 鸡西市| 海伦市| 乌拉特前旗|