freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

樓層智能視頻監(jiān)控系統(tǒng)(文件)

2024-12-27 20:08 上一頁面

下一頁面
 

【正文】 性,用不同片組中相鄰宏塊的某種加權(quán)來代替該宏塊。在 中有三種不同的數(shù)據(jù)劃分:頭信息劃分包含片中宏塊的類型,量化參數(shù)和運(yùn)動(dòng)矢量,是片中最重要的信息;幀內(nèi)信息劃分包含幀內(nèi) CBPs和幀內(nèi)系數(shù),幀內(nèi)信息可以阻止錯(cuò)誤的蔓延;幀間信息劃分包含幀間 CBPs和幀間系數(shù),通常比前兩個(gè)劃分要大得多。 解碼端若獲得所有的劃分,就可以完整重構(gòu)片;解碼端若發(fā)現(xiàn)幀內(nèi)信息或幀間信息劃分丟失,可用的頭信息仍然很好的錯(cuò)誤恢復(fù)性能。 SP 幀編碼的基本原理和 P 幀 差別不打 , 主要都是在 幀間預(yù)測(cè) 的基礎(chǔ)上進(jìn)行 運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)編碼, 主要差別在于在編碼時(shí) SP 幀能夠 參照不同參考幀重構(gòu)出相同的圖像幀。 第 23 頁 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 ( 5)冗余片 為提高抗數(shù)據(jù)丟失的能力, 提出了冗余片 (Redundant Slices)編碼, 即允許編碼器發(fā)送圖像的冗余表示。 第 24 頁 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 6 軟件設(shè)計(jì) 無線視頻監(jiān)控系統(tǒng)由監(jiān)控前端,監(jiān)控終端和無線 網(wǎng)絡(luò)三部分組成。 表 系統(tǒng)軟件設(shè)計(jì)列表 軟件 應(yīng)用軟件:視頻采集、壓縮 嵌入式操 作系統(tǒng) 設(shè)備驅(qū)動(dòng)程序 Boot loader 硬件 S3C6410 USB MFC 整個(gè)嵌入式視頻采集系統(tǒng)由軟件和硬件兩部分組成。本文使用 Video4Linux接口函數(shù)訪問 USB攝像頭設(shè)備,采用內(nèi)存映射以及改進(jìn)的雙幀緩沖思想來實(shí)現(xiàn)視頻的實(shí)時(shí)高速采集。 在視頻驅(qū)動(dòng)編寫時(shí), V4L首先規(guī)定了在 Linux文件系統(tǒng)中設(shè)備的位置和名稱。 V4L為應(yīng)用程序提供了一系列的接口函數(shù),通過這些函數(shù),可以執(zhí)行打開、讀寫、關(guān)閉等各種基本的操作。 VIDIOCSWIN struct video_window 設(shè)置當(dāng)前設(shè)備圖像大小信 息,如當(dāng)前分辨率等。接下來介紹文中使用到的主要的幾個(gè)數(shù)據(jù)結(jié)構(gòu)。 channel //信號(hào)源的編號(hào) name //名稱 tuners type //VIDEO_TYPE_TV | VIDEO_TYPE_CAMERA ( 4) video_window:采集窗口參數(shù),如圖像高度、寬度等。本文采用內(nèi)存映射; 對(duì)采集的視頻進(jìn)行處理; 關(guān)閉視頻設(shè)備。視頻設(shè)備成功打開后,就可以對(duì)設(shè)備文件進(jìn)行讀寫操作了。vdpict)函數(shù)來讀取圖像的基本信息。具體方法是先給 video_picture 結(jié)構(gòu)體的成員中需要修改的變量進(jìn)行重新賦值,然后調(diào)用 ioctl(cam_fp,VIDIOCSPICT,amp。(vdchannel))函數(shù)來讀取信號(hào)源信息。 ( 5)進(jìn)行視頻采集 完成以上設(shè)備初始化工作后,就可以進(jìn)行視頻圖像采集了,這有兩種方法:一種是 read()直接讀?。涣硗庖环N是 mmap()內(nèi)存映射。 直接讀取 方式: USB 攝像頭的設(shè)備文件如同文件系統(tǒng)中的普通文件一樣,可以使用 C 語言中常見的文件讀寫函數(shù)來訪問。其中 fd 為文件描述符, pFramebufFer 為內(nèi)存中指向數(shù)據(jù)存放位置的指針,framesizeIn 為需要讀取的數(shù)據(jù)的長(zhǎng)度。普通文件被映射到進(jìn)程地址空間后,進(jìn)程可以像訪問普通內(nèi)存一樣對(duì)文件進(jìn)行訪問,不必再調(diào)用 read() , write()等操作,從而提高采集傳輸系統(tǒng)的實(shí)時(shí)性。后調(diào)用 mmap()函數(shù) cam_mmap=(unsigned char*)mmap(0,vd,PROT_READ | PROT_WRITE, MAPSHARED, cam_fp,0)把設(shè)備內(nèi)容映射到內(nèi)存區(qū), 其中第一個(gè)參數(shù)為共享內(nèi)存的起始地址,一般設(shè)為 0,表示由系統(tǒng)分配;第二個(gè)參數(shù)為映射到調(diào)用進(jìn)程地址空間的字節(jié)數(shù),它從被映射文件開頭的 offset 個(gè)字節(jié)開始算起;第三個(gè)參數(shù)指定共享內(nèi)存的訪問權(quán)限(如 PROT_READ(可讀), PROT_WRITE(可寫), PROT_ EXEC(可執(zhí)行));第四個(gè)參數(shù)可以是 MAP_SHARED( 共享映射 )或者 MAP_PRIVATE( 私有映射 );第五個(gè)參數(shù)為設(shè)備描述符。再用 VIDIOCSYNC 命令,即調(diào)用函數(shù) ioctl(cam_fp, VIDIOCSYNC, amp。值得注意的是,由于偏移地址只有 vd [0] 和 vd [1], 在采集完下一幀之前必須將當(dāng)前幀處理完畢,否則再次采集到的新數(shù)據(jù)會(huì)將當(dāng)前數(shù)據(jù)覆蓋。 } framestate[frame]=1。 //同步成功,設(shè)置幀的狀態(tài) 當(dāng)一幀圖像采集成功后,需要對(duì)幀號(hào)和地址進(jìn)行 調(diào)整,然后繼續(xù)采集下一幀。tod, NULL)。 在實(shí)驗(yàn)中,本人發(fā)現(xiàn)截取圖像的大部分時(shí)間花在同步等待上。雙緩沖示意圖如圖 所示: 圖 雙緩沖示意圖 編寫完基于 V4L 的視頻采集程序之后,就可以把它進(jìn)行交叉編譯下載到開發(fā)板上運(yùn)行進(jìn)行測(cè)試。 vidcat 的流程圖 如圖 : 處理上一幀 采集下一幀 同步等 待 采集一幀 循環(huán)采集 第 32 頁 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 程 序 開 始設(shè) 定 默 認(rèn) 值G e t o p t ( )= E O F重 設(shè) 相 關(guān) 信 息M a x _ t r y > 0打 開 視 頻 設(shè) 備是 否 成 功采 集 圖 像是 否 采 取 成 功關(guān) 閉 視 頻 設(shè) 備標(biāo) 準(zhǔn) 輸 出M a x _ t r y 等 待 1秒NY圖 片 格 式 轉(zhuǎn) 換程 序 結(jié) 束YNYNY 圖 vidcat 流程圖 編碼設(shè)計(jì) 如果攝像頭以 15幀 /秒的速度采集圖像,在采集程序中設(shè)定一幀圖像大小為640 480(以像素為單位 ),采用 YUV420P 的格式,那么一幀圖像大小就為 640480 =460800Byte。 本文采用 S3C6410內(nèi)部集成的多媒體編解 碼 模塊 MFC進(jìn)行 編碼。 // [OUT] Return code int in_width。 // [IN] Encoding parameter: GOP Number int in_frameRateRes。 // [OUT] Return code int out_encoded_size。 // [OUT] Return code int in_usr_data。 // [OUT] Size of buffer address } MFC_GET_BUF_ADDR_ARG。 重設(shè)配置參數(shù),這里主要是選擇輸出流的格式:?jiǎn)纹€是多片。 MFC 編碼執(zhí)行子函數(shù) SsbSipH264EncodeExe(handle);該子函數(shù)完成了以下任務(wù): ① 初始化 MFC 編碼信息。涉及到的函數(shù)為: p_inbuf = (unsigned char*)SsbSipH264EncodeGetInBuf(handle, 0),里面主要通過命令 ioctl(pCTXhOpen,IOCTL_MFC_GET_FRAM_BUF_ADDR, amp。 p_outbuf = (unsigned char*)SsbSipH264EncodeGetOutBuf(handle, amp。在將來,無線傳輸必然將逐步取代現(xiàn)有的有線傳輸方式,終端也將由 PC 機(jī)逐漸演變?yōu)?PDA 手持設(shè)備、手機(jī)等。本文以 在視頻壓縮編碼中的應(yīng)用為目標(biāo),結(jié)合視頻數(shù)據(jù)高速采集的關(guān)鍵技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于 ARM11 的視頻采集和壓縮編碼系統(tǒng)。同時(shí)要完成系統(tǒng)開發(fā),還必須 熟悉了開發(fā)板硬件平臺(tái),完成了系統(tǒng)軟件 設(shè)計(jì) 。而且本系統(tǒng)屬于一個(gè)相對(duì)獨(dú)立的整體模塊,可以很方便地應(yīng)用到其它系統(tǒng)中。人們?cè)趯で蟾咭曨l質(zhì)量,更好壓縮性能的編碼技術(shù)的路上,經(jīng)歷了一代又一代編碼標(biāo)準(zhǔn)的提出。mfc_args)得到輸出緩沖區(qū)的地址 。 ioctl(pCTXhOpen, IOCTL_MFC_H264_ENC_EXE, amp。mfc_args); ② MFC 接收要編碼的視頻原始 數(shù)據(jù),即 USB 攝像頭采集的數(shù)據(jù)。 // 0 for single, 1 for multiple slices[1] = 4。 addr = (unsigned char *) mmap(0, BUF_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, hOpen, 0); ③ 設(shè)定編碼參數(shù),如設(shè)置幀率、比特率等。 int out_buf_addr。 // [OUT] Length of video stream header } MFC_ENC_EXE_ARG。 // [IN] Encoding parameter: Frame rate (Divider) } MFC_ENC_INIT_ARG。 // [IN] height of YUV420 frame to be encoded int in_bitrate。本文已在前面的內(nèi)容中介紹了MFC 驅(qū)動(dòng)的移植,現(xiàn)在介紹基于 的視頻壓縮編碼的 MFC 應(yīng)用程序。這么大的圖像信息會(huì)給存儲(chǔ)器的存儲(chǔ)容量、網(wǎng)絡(luò)通信信道的帶寬以及處理器的處理速度增加極大的壓力。但剛開始測(cè)試時(shí),如果不成功,我們不好判斷原因究竟是出于硬件還是軟件。處理完后進(jìn)行下一次的循環(huán)。 第 31 頁 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 } ms_time1 = ms_time () ms_time0。時(shí)間檢測(cè)函數(shù)如下: double ms_time (void) //返回值單位為毫秒 { static struct timeval tod。vd) 0) { printf(get capture error, ret(%d)\n,ret)。vdv_mmap)) 0) { printf(get capture error, ret(%d)\n,ret)。 單幀采集時(shí)只需設(shè)置 frame=0,同時(shí)無需定義幀狀態(tài) framestat[frame],由cam_mmap 可直接得到幀數(shù)據(jù)起 始地址。 內(nèi)存映射方式下真正進(jìn)行視頻截取的是通過命令 VIDIOCMCAPTURE 完成,即調(diào)用函數(shù) ioctl(cam_fp,VIDIOCMCAPTURE,amp。為了防止緩沖區(qū)的內(nèi)容與有用信息疊加產(chǎn)生干擾,一般在初始化之前先調(diào)用 memset (amp。 使用 mmap()內(nèi)存映射采集圖像:內(nèi)存映射方式是通過系統(tǒng)調(diào)用 mmap()函數(shù)來實(shí)現(xiàn)的。 read()是一個(gè)用來從指定的文件或設(shè)備中讀取數(shù)據(jù)的系 第 29 頁 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 統(tǒng)調(diào)用。而 mmap()通過把設(shè)備文件映射到內(nèi)存中,繞過了內(nèi)核緩沖區(qū)。這可通過先給 vdchannel 結(jié)構(gòu)體中的成員重新賦值,然后調(diào)用 ioctl(cam_fp,VIDIOCSCHAN,amp。vdpict)函數(shù),否則會(huì)恢復(fù)默認(rèn)值,導(dǎo)致設(shè)置不成功。得到的信息保存在 video_picture 結(jié)構(gòu)體里。(vdcap)) 函 數(shù) 來 獲 得video_capability 中有關(guān)攝像頭的信息,如攝像頭的名字,可獲取最大、最小圖像的分辨率等。完成視頻圖像采集的具體步驟如下: ( 1)打開視頻設(shè)備 調(diào)用 cam_fp = open (/dev/video0,O_RDWR)函數(shù)。 第 27 頁 西華大學(xué)畢業(yè)設(shè)計(jì)說明書 offsets //每幀相對(duì)基址的偏移 ( 6) video_buffer:最底層對(duì) buffer 的描述 *baseBase // buffer 的物理地址 height //Height of the frame buffer width //Width of the frame buffer depth //Depth of the frame buffer 視頻采集流程 要完成基于 V4L 的 USB 攝像頭的視頻數(shù)據(jù)采集,首先需要使系統(tǒng)支持視頻設(shè)備,即驅(qū)動(dòng)的加載,然后需要獲得相關(guān)的視頻設(shè)備的屬性信息和圖像信息,并對(duì)采集窗口、顏色模式、幀狀態(tài)初始化,最后才能進(jìn)行視頻圖像的采集。 name[32] //設(shè)備名稱 maxwidth,maxheight,minwidth,minheight //最大最小分辨率 channels //信號(hào)源個(gè)數(shù) type //是否能 capture,彩色還是 黑白,是否能裁剪等 ( 2) video_picutre:采集圖像的各種屬性,如圖像亮度、灰度、顏色、對(duì)比度、白平衡等。 VIDIOCSPICT struct video_picture 設(shè)置當(dāng)前圖片信息,如圖片 亮度,圖片格式等。 V4L 支持的數(shù)據(jù)結(jié)構(gòu)及其用途 應(yīng)用程序訪問視頻設(shè)備文件主要是通過 V4L 提供的一系列接口函數(shù)實(shí)現(xiàn)的,本文用到的一些視頻 接口見表 . 表 V4L 重要視頻接口 常量 結(jié)構(gòu)體 功能 VIDIOCGCAP struct video_capability 獲取設(shè)備功能信息,如圖像最大、最小分辨率,信道數(shù)目等。驅(qū)動(dòng)程序要實(shí)現(xiàn)該功能,必須在 probe 函數(shù)中實(shí)現(xiàn)對(duì)視頻設(shè)備
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1