熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Android的MJPEG網絡攝像機設計

基于Android的MJPEG網絡攝像機設計

作者: 時間:2012-03-23 來源:網絡 收藏


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

本文引用地址:http://www.bjwjmy.cn/article/149360.htm

d.JPG


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

e.JPG



評論


相關推薦

技術專區(qū)

關閉