色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Android的MJPEG網(wǎng)絡(luò)攝像機(jī)設(shè)計(jì)

          基于Android的MJPEG網(wǎng)絡(luò)攝像機(jī)設(shè)計(jì)

          作者: 時(shí)間:2012-03-23 來源:網(wǎng)絡(luò) 收藏


          2 系統(tǒng)軟件
          2.1 軟件
          搭建需要Linux系統(tǒng)環(huán)境,首先移植Bootloader,對Linux 2.6.32內(nèi)核進(jìn)行裁剪,加載Linux UVC(USB video device class)驅(qū)動及相關(guān)驅(qū)動,將編譯好的Linux系統(tǒng)鏡像燒寫到ARM板Nand Flash中,對Bootloader沒置啟動引導(dǎo)地址,即完成軟件運(yùn)行環(huán)境搭建。
          分析性能需求與拓展性,須滿足下列條件:
          ◆視頻監(jiān)控實(shí)時(shí)性;
          ◆支持多客戶端同時(shí)連接;
          ◆圖像識別算法或預(yù)留接口;
          ◆功能模塊化滿足后期開發(fā)可擴(kuò)展。
          因此,采用多線程架構(gòu)與互斥鎖機(jī)制來保證實(shí)時(shí)性、模塊化的思想代碼結(jié)構(gòu)。軟件程序主流程如圖3所示。

          本文引用地址:http://cafeforensic.com/article/149360.htm

          d.JPG


          其中主要實(shí)現(xiàn)如下功能。
          ①初始化Linux V4L2接口,必須按照V4L2標(biāo)準(zhǔn)結(jié)構(gòu)初始化結(jié)構(gòu)體,其中包括struct v412_capability cap;struct v412_format fmt;struct v412_buffer buf;struct v412_requestbuffers rb;struct v412_streamparm setfps。此外將視頻設(shè)備名、視頻寬度、視頻高度、幀率、視頻格式和抓取方法傳遞給函數(shù)init_videoIn(struct vdIn*vd,char*device,int width,intheight,int fps,int format,int grabmethod)實(shí)現(xiàn)初始化。值得注意的是眾多USB camera并不支持JPEG格式視頻流直接抓取,針對YUYV格式抓取卻有廣泛支持。后期進(jìn)行圖像識別算法操作時(shí)直接分析YUYV原始圖像數(shù)據(jù),將節(jié)省JPEG壓縮數(shù)據(jù)轉(zhuǎn)換為原始圖像數(shù)據(jù)的大量運(yùn)算開銷,因此采用YUYV抓取模式。
          ②創(chuàng)建核心圖像處理線程。在該線程內(nèi)實(shí)現(xiàn):抓取功能。
          ◆UVC設(shè)備單幀抓取,uvcGrab(struct vdIn*vd)函數(shù)實(shí)現(xiàn)單幀YUYV格式的原始圖像拷貝到內(nèi)存,采用高效的mmap內(nèi)存映射方法讀?。?br /> ◆JPEG核心算法實(shí)現(xiàn),JPEG壓縮算法占用大量CPU時(shí)間,下一小節(jié)將詳細(xì)討論。
          ③創(chuàng)建套接字接口。為實(shí)現(xiàn)多用戶同時(shí)連接攝像機(jī),必須采用socket服務(wù)線程,每當(dāng)有新用戶連接同時(shí)產(chǎn)生一個(gè)新線程與之對應(yīng),實(shí)現(xiàn)多用戶端同步監(jiān)控。
          ④搭建Web瀏覽器訪問方式的Web主頁。嵌入式設(shè)備資源有限,輕量級的Web Server主要有:Boa、Httpd、Thttpd等。本設(shè)計(jì)選用開源的Boa、交叉編譯Boa源碼配置boa.conf文件,配置系統(tǒng)etc自啟動shell加入Boa程序,將編寫HTML頁面文件放入系統(tǒng)中對應(yīng)的www目錄后即可正常工作。
          2.2 壓縮算法研究與實(shí)現(xiàn)
          (Motion Joint Photographic Experts Group)視頻編碼格式,把運(yùn)動的視頻序列作為連續(xù)的靜止圖像來處理,這種壓縮方式單獨(dú)完整地壓縮每一幀,編輯過程中可隨機(jī)存儲每一幀,可進(jìn)行精確到幀的編輯。單幀壓縮算法為JPEG(Joint Photographic Experts Group)。人眼視覺生理特性決定眼睛對構(gòu)成圖像的不同頻率成分具有不同的敏感度。JPEG壓縮是有損壓縮,但損失的部分是人類視覺不容易察覺到的部分,利用眼睛對色彩域中的高頻信息部分不敏感的特點(diǎn),節(jié)省大量需要處理的數(shù)據(jù)信息。一幀原始圖像數(shù)據(jù)對其進(jìn)行JPEG算法編碼過程分兩大部分:
          ①空間冗余度,去除視覺上的多余信息;
          ②結(jié)構(gòu)(靜態(tài))冗余度,去除數(shù)據(jù)本身的多余信息。
          JPEG編碼中主要涉及包括:DCT、zigzag編碼、量化、RLE編碼、范式Huffman編碼、DC(直流分量)的編碼。JPEG編碼流程如圖4所示。

          e.JPG



          評論


          相關(guān)推薦

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

          關(guān)閉