在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM+Linux的視頻采集編碼系統(tǒng)設(shè)計(jì)

            基于ARM+Linux的視頻采集編碼系統(tǒng)設(shè)計(jì)

            作者: 時(shí)間:2014-06-18 來(lái)源:網(wǎng)絡(luò) 收藏

               系統(tǒng)通過(guò)URB實(shí)現(xiàn)USB 傳輸。為提高有效數(shù)據(jù)的傳輸速度可擴(kuò)大 URB的緩沖來(lái)降低每個(gè)USB 事務(wù)中握手信息所占比例。每次 USB 傳輸都需要在操作系統(tǒng)中進(jìn)行URB的建立、發(fā)出、回收和數(shù)據(jù)整理等階段??山蓚€(gè)URB,當(dāng)?shù)却粋€(gè) URB被回收時(shí),也就是圖像正在被傳感器采集時(shí)同時(shí)處理、初始化另一個(gè) URB,并在回收后立刻將其發(fā)出。兩個(gè)URB交替使用,大大提高了系統(tǒng)處理的時(shí)間效率。

            本文引用地址:http://www.biyoush.com/article/248474.htm

              在編譯器部分將 下的攝像頭驅(qū)動(dòng)程序中Makefile 文件中相關(guān)行修改為CC=/opt/host/armv4l/bin/armv4l-unknown-gcc-linux,修改 Config.in 文件,這樣在配置內(nèi)核的時(shí)候才可以看見(jiàn)驅(qū)動(dòng)程序的名稱。同時(shí)對(duì)下列與處理器相關(guān)的部分進(jìn)行修改,即可實(shí)現(xiàn)對(duì)S3C2440 的USB 驅(qū)動(dòng)的移植。

              (1)PCI 接口處理

              由于S3C2440 的USB 主機(jī)控制器不包含 PCI 接口,因此需要?jiǎng)h除 usb-ochi.c中與PCI接口相關(guān)的代碼。

              (2)寄存器地址設(shè)置

              在usb-ochi.c中,使S3C2440 的USB 主機(jī)控制器寄存器的起始地址(0x49000000) 初始化ochi->regs。

              (3)主機(jī)控制器中斷設(shè)置

              在usb-ochi.c中,使S3C2440 的USB 主機(jī)控制器寄存器的中斷向量初始化 ochi->irq 。

              (4)根HUB端口數(shù)目設(shè)置

              在usb-ochi.c 中,定義根HUB的下行端口數(shù)目為 2(#define MAX_ROOT_PORTS

              2),MAX_ ROOT_PORTS 的默認(rèn)值為150。

              (5)修改 Makefile和Config.in 文件

              修改完成后執(zhí)行 make命令,即可生成所需要的帶有.o 后綴的驅(qū)動(dòng)文件。

              驅(qū)動(dòng)程序設(shè)計(jì)完成并編譯成功后,使用動(dòng)態(tài)加載的方法添加到內(nèi)核中。首先在宿主機(jī)上交叉編譯好驅(qū)動(dòng)模塊,然后通過(guò)串口下載到開(kāi)發(fā)板上,再使用 insmod 命令將驅(qū)動(dòng)掛載,攝像頭驅(qū)動(dòng)便可成功添加,通過(guò) lsmod 命令可以查看當(dāng)前馭動(dòng)添加的情況。

              4 視頻采集

              系統(tǒng)軟件基于VFL 開(kāi)發(fā),基本流程原理如圖3。其中最關(guān)鍵的步驟就是視頻數(shù)據(jù)的采集,一般有兩種實(shí)現(xiàn)方法,一是直接讀取,二是內(nèi)存映射的方法。

              

             

              1) 定義數(shù)據(jù)結(jié)構(gòu)

              程序中需要定義一些數(shù)據(jù)結(jié)構(gòu),如:video_capability ,包含攝像頭的基本信息;video_picture,包含設(shè)備采集圖像的各種屬性;video_mmap,用于內(nèi)存映射;video_mbuf ,利用mmap 進(jìn)行映射的幀信息,實(shí)際上是輸入到攝像頭存儲(chǔ)器緩沖中的幀信息;video_Window,包括設(shè)備采集窗口的各種參數(shù)。

               系統(tǒng)中把設(shè)備看成設(shè)備文件,在用戶空間可以通過(guò)標(biāo)準(zhǔn)的 I/O 系統(tǒng)調(diào)用函數(shù)操作設(shè)備文件,從而達(dá)到與設(shè)備通信交互的目的。用 ioctl 函數(shù)來(lái)控制1/O 通道。

              2) 采集程序?qū)崿F(xiàn)過(guò)程

              1. 打開(kāi)視頻設(shè)備

              在linux中視頻設(shè)備對(duì)應(yīng)的設(shè)備文件為/dev/video0 ,采用open 函數(shù)來(lái)打開(kāi)視頻設(shè)備。

              2. 獲取設(shè)備信息和視頻信息并進(jìn)行設(shè)置

              開(kāi)啟設(shè)備文件后,通過(guò)調(diào)用 camera_get_capability() 和camera_get_picture() 函數(shù)來(lái)實(shí)現(xiàn)對(duì)設(shè)備信息以及圖像信息的獲取。這兩個(gè)函數(shù)均通過(guò)調(diào)用ioctl() 函數(shù)來(lái)取得設(shè)備和圖像的相關(guān)信息,并將取得的信息放到 video_capability 結(jié)構(gòu)里。若需對(duì)圖像信息進(jìn)行設(shè)置時(shí),先給video_picture 數(shù)據(jù)結(jié)構(gòu)對(duì)象中所要修改的變量進(jìn)行重新賦值,然后通過(guò) ioctl 函數(shù)的VIDIOCGPICT來(lái)進(jìn)行設(shè)置。通過(guò)調(diào)用 ioctl VIDIOCGPICT可設(shè)置所采集圖像的屬性。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            linux相關(guān)文章:linux教程


            攝像頭相關(guān)文章:攝像頭原理


            關(guān)鍵詞: ARM Linux

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉