新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于S3C6410的視頻監控系統的設計與實現

        基于S3C6410的視頻監控系統的設計與實現

        作者: 時間:2012-02-08 來源:網絡 收藏

        3.1 數據采集程序
        采集程序使用內存映射的方式進行讀取。通過內存映射直接把設備文件映射到內存中,繞過內核緩沖區,進程訪問設備文件時和訪問普通內存一樣,極大的提高了數據的讀取速度。
        視頻采集部分的流程圖如圖3所示。
        下面列出視頻采集部分的關鍵代碼。
        首先打開設備,其中CODEC_NODE為預定義宏,表示攝像頭結點文件路徑。
        dev_fp=open(CODEC_NODE,O_RDWR);
        在設置參數部分,首先要得到設備能力參數,檢查是否具有所需的功能,然后再進行參數的設置。使用下面的代碼來
        ioctl(dev_fp,VIDIOC_QUERYCAP,&cap);
        上一行代碼得到設備的功能信息,存儲到參數caF中。在檢查設備具有所需功能后,下一行代碼進行參數設置。
        ioctl(dev_fp,VIE)IOC_S_FMT,codec_fmt);
        其中,codec_fmt為一個格式信息的結構體類型參數。
        在Linux平臺,采集圖像數據部分的方式與文件讀取類似,采用下面的代碼
        read(dev_fp,g_yuv,YUV_FR_BUF_SIZE);
        而將數據傳送給MFC模塊這部分,可以采取直接共享緩沖區的方式,這樣減少了一次數據在內存中的傳輸,增加了效率。
        最后是關閉設備文件。先停止圖像的采集,然后關閉文件。
        ioctl(dev_fp,VIDIOC_STREAMOFF,&start);
        close(dev_fp);
        上述代碼片段是視頻采集部分的關鍵代碼段。在實現部分還有很多的條件判斷和分支選擇等控制流程部分,這里不進行詳細描述。
        3.2 視頻編碼程序
        視頻編碼部分直接采用的MFC視頻編解碼模塊進行視頻的編碼。由于采用硬件編碼,編碼效率非常高。同時在程序的方面,不用涉及具體的硬件細節,只需要通過提供的驅動模塊進行。編碼部分的流程圖如圖4所示。

        本文引用地址:http://www.104case.com/article/165899.htm

        c.jpg



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 砚山县| 郴州市| 汪清县| 余江县| 定南县| 庆阳市| 保德县| 辉县市| 郁南县| 安康市| 马龙县| 巴青县| 普安县| 海丰县| 桐柏县| 溧水县| 神池县| 麻栗坡县| 揭东县| 绍兴市| 德令哈市| 郸城县| 舒兰市| 榕江县| 长海县| 类乌齐县| 苍南县| 峨眉山市| 贵溪市| 剑河县| 博客| 普宁市| 镇坪县| 海安县| 枣庄市| 甘泉县| 武定县| 吉隆县| 福泉市| 攀枝花市| 武强县|