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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM11的無線視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)

          基于ARM11的無線視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)

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

            1 引言

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

            隨著無線網(wǎng)絡(luò)的普及,ARM處理器運(yùn)算的能力不斷地增強(qiáng)以及計算機(jī)處理圖像的技術(shù)不斷地提高,基于ARM 的視頻監(jiān)控正越來越廣泛的應(yīng)用于學(xué)校,社區(qū),酒店,網(wǎng)吧,醫(yī)療等各種各樣地領(lǐng)域。傳統(tǒng)的視頻監(jiān)控系統(tǒng)布線復(fù)雜,設(shè)備龐大,智能化低,以及軟硬件資源得不到充分的發(fā)揮。而ARM 嵌入式系統(tǒng)的小型化、占用空間小、成本低廉、結(jié)構(gòu)緊湊、支持無線網(wǎng)絡(luò)等特點(diǎn),使得利用S3C6410 的+linux系統(tǒng)構(gòu)成各種各樣的無線網(wǎng)絡(luò)數(shù)字監(jiān)控系統(tǒng)具有廣泛的應(yīng)用價值。

            2 系統(tǒng)整體設(shè)計

            2.1 硬件總體設(shè)計

            本系統(tǒng)采用韓國三星公司 內(nèi)核的S3C6410 作為微處理器,該款處理器體積小,尺寸僅相當(dāng)于一個48mm*67mm 方塊的大小,同時集成了豐富的接口,32 位數(shù)據(jù)總線和32 位外部地址總線,SROM 控制器、 SRAM 控制器、NAND 閃存控制器、64 個中斷源的中斷控制器、五個三十二位定時器、四個UART、四個DMA 控制器、STN 與TFT LCD 控制器、看門狗、IIS 音頻接口、IIC-Bus 接口、兩個USB host口、一個USB device 口、兩個串行外圍接口電路、三個SD 卡接口、camera_if 接口、TV_out 接口、MFC接口、2 路SPI、Touch Screen 接口,其主頻可達(dá)800MHz,擴(kuò)展總線最大頻率133MHz.在此基本上,還進(jìn)行了相關(guān)的擴(kuò)展,引出了一個四線RS-232 串口,該串口用于開發(fā)主機(jī)與S3C6410 開發(fā)平臺進(jìn)行通信;配置了1GB 的NANDflash,用于存放嵌入式linux操作系統(tǒng),應(yīng)用程序和數(shù)據(jù),128MB 的DDR 內(nèi)存,用于存放運(yùn)行程序,攝像頭捕獲的數(shù)據(jù);擴(kuò)展了一個WIFI 模塊,用于開發(fā)平臺與服務(wù)器傳輸視頻數(shù)據(jù),通過無線網(wǎng)絡(luò)實現(xiàn)視頻遠(yuǎn)程監(jiān)控。

            2.2 軟件總體設(shè)計

            軟件總體結(jié)構(gòu)包括引導(dǎo)加載程序Bootloader、操作系統(tǒng)內(nèi)核,設(shè)備驅(qū)動程序和應(yīng)用層程序,其軟件結(jié)構(gòu)如圖1 所示。



            圖1 軟件總體結(jié)構(gòu)框圖

            該系統(tǒng)上電后,先運(yùn)行引導(dǎo)加載程序Bootloader,該程序的作用是初始化硬件設(shè)備、建立內(nèi)存空間的映射表,引導(dǎo)和加載操作系統(tǒng)內(nèi)核,然后啟動嵌入式操作系統(tǒng)linux,接著加載Nand flash 驅(qū)動程序、LCD 驅(qū)動程序、WIFI 驅(qū)動程序等一些必要的驅(qū)動程序。

            3 視頻數(shù)據(jù)采集和編碼設(shè)計

            3.1 基于V4L2 視頻數(shù)據(jù)采集設(shè)計

            在 系統(tǒng)下,對視頻設(shè)備的各種操作是通過Video42 實現(xiàn)的,簡稱V4L2.應(yīng)用程序通過V4L2 提供的接口函數(shù)實現(xiàn)視頻設(shè)備的操作。整個視頻數(shù)據(jù)采集的過程如圖2 所示。

            (1) 打開視頻設(shè)備, int open( const char *pathname, int flags)。調(diào)用該函數(shù),若返回值為-1,表示打開失敗,否則,表示所打開設(shè)備的文件描述符。

            (2)取得設(shè)備信息。通過ioctl(cam_fp, VIDIOC_QUERYCAP, &cap)函數(shù)來取得設(shè)備文件的屬性參數(shù)并存儲于cap 結(jié)構(gòu)中,其中cam_fp 指的是打開的視頻設(shè)備的文件描述符。

            (3)選擇視頻輸入方式。通過ioctl(cam_fp,VIDIOC_ S_INPUT, &chan)函數(shù)設(shè)置視頻設(shè)備的輸入方式,其中chan 的數(shù)據(jù)結(jié)構(gòu)類型是v4l2_input,用來指定視頻的輸入方式。

            (4 ) 設(shè)置視頻幀格式。通過ioctl(cam_fp ,VIDIOC_S _FMT, &fmt)函數(shù)設(shè)置視頻的幀格式,其中fmt 的數(shù)據(jù)結(jié)構(gòu)類型是v4l2_format,用來指定視頻的寬度、高度、像素大小等。

            (5)讀取視頻數(shù)據(jù)。通過read(cam_fp, g_yuv,YUV_ SIZE)函數(shù),把攝像頭一幀的數(shù)據(jù)存放到g_yuv中,其中YUV_ SIZE 指的是每幀數(shù)據(jù)的大小。

            (6)關(guān)閉視頻設(shè)備。通過close(cam_fp)函數(shù)來實現(xiàn)視頻設(shè)備的關(guān)閉。



            圖2 視頻數(shù)據(jù)采集流程框圖。

            3.2 視頻數(shù)據(jù)的H264編碼

            為了提高視頻數(shù)據(jù)編碼速度,本系統(tǒng)采用的是H264 硬編碼方式,硬編碼具有不占用CPU 資源,運(yùn)算速度快等優(yōu)點(diǎn),從而滿足視頻數(shù)據(jù)實時性的要求。

            具體編碼的過程如圖3 所示。

            (1)創(chuàng)建H264 編碼結(jié)構(gòu)。調(diào)用SsbSipH264EncodeInit (width, height, frame_rate, bitrate, gop_num)函數(shù)實現(xiàn)的,其中width 表示圖像的寬度,height 表示圖像的高度,frame_rate 表示幀頻,bitrate 表示比特率或碼率,gop_num 表示兩個相離關(guān)鍵幀之間最多包含多少個幀(B 或P 幀)。

            (2)初始化H264 編碼結(jié)構(gòu),調(diào)用SsbSipH264Encode Exe (handle)函數(shù)。

            (3)獲取視頻輸入地址,SsbSipH264EncodeGetInBuf (handle, 0)函數(shù)來實現(xiàn),該函數(shù)返回視頻輸入的首地址,存放在p_inbuf 中。

            (4)輸入視頻數(shù)據(jù),調(diào)用memcpy(p_inbuf, yuv_buf, frame_size)函數(shù)實現(xiàn),p_inbuf 存放需要編碼的數(shù)據(jù),yuv_buf 存放原始視頻數(shù)據(jù),frame_size 表示數(shù)據(jù)的大小。

            (5)編碼視頻數(shù)據(jù),對p_inbuf 內(nèi)容進(jìn)行H264編碼,調(diào)用SsbSipH264EncodeExe(handle)函數(shù)實現(xiàn)。

            (6)輸出已編碼的數(shù)據(jù),SsbSipH264EncodeGetOutBuf (handle, size),該函數(shù)返回已編碼圖像的首地址,size 表示已編碼圖像的大小。

            (7)關(guān)閉硬編碼設(shè)備,調(diào)用SsbSipH264EncodeDeInit (handle)函數(shù)實現(xiàn)的。

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

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

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



          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM11 Linux

          評論


          相關(guān)推薦

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

          關(guān)閉