999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Hi3507與流媒體服務器的視頻監控系統設計

2015-07-01 23:32:08劉明健
單片機與嵌入式系統應用 2015年3期
關鍵詞:系統

劉明健

(江西理工大學 信息工程學院,贛州 341000)

劉明健

(江西理工大學 信息工程學院,贛州 341000)

網絡視頻監控系統不僅要求采集的圖像清晰度要高,而且對視頻圖像的壓縮和傳輸都有很高的要求。本設計選取海思SoC Hi3507為主芯片,結合CMOS高清圖像傳感器OV2643、H.264編碼技術和基于live555的流媒體服務器搭建了一個高清網絡視頻監控系統。實踐表明,該系統不僅采集到的圖像清晰流暢、實時性好,而且具有較高的性價比。

Hi3507;OV2643;H.264;live555;流媒體服務器

引 言

現有的視頻監控系統主要有模擬視頻監控系統、數字視頻監控系統和網絡視頻監控系統。模擬視頻監控系統因為擴展能力差、傳輸距離短,只適用于較小范圍區域的監控;數字視頻監控系統采用光端機將采集的模擬視頻信號傳輸到客戶端,然后轉換成數字視頻進行保存,其弊端是不僅兩端都要布置光端機,而且遠距離的傳輸需要鋪設專門的電纜,這樣就使得成本較高,維護也比較困難;網絡視頻監控系統采用IP Camera將采集到的模擬視頻在本地轉換并壓縮為視頻流,并采用當前價格低廉、應用廣泛的IP網絡作為傳輸媒介,客戶端只需要開發相應的流媒體播放器即可實現遠程視頻監控。

網絡視頻監控系統目前正朝著高清化、集成化和智能化的方向發展,這就對IP Camera提出了更高的要求。華為海思SoC芯片Hi3507集成了H.264編解碼協處理器,獨特的MPP系統為上層應用開發提供了MPI接口,降低了開發者的難度和開發成本。本文提出了一種基于Hi3507的視頻監控系統的設計方案,可廣泛用于銀行、超市、交通道路等場所。

1 系統總體設計

本系統分為3大部分:IP Camera模塊,流媒體服務器模塊和客戶端模塊。IP Camera模塊用來完成視頻圖像的采集、編碼任務,由SoC芯片Hi3507、圖像傳感器OV2643、存儲器等外圍器件組成,是整個系統中的核心模塊。系統工作流程如下:主芯片 Hi3507控制圖像傳感器OV2643采集模擬圖像并完成模數轉換,轉換后的視頻圖像經digital camera接口送入主芯片內處理,Hi3507 MPP系統的VI模塊捕獲視頻圖像后首先交由VPP模塊進行編碼前的圖像處理,再通過AHB總線將其寫入外存(DDR2 SDRAM)中,VENC模塊從外存中讀取原始圖像進行H.264編碼處理,編碼后的視頻流重新寫入外存中,然后流媒體服務器從外存中讀取視頻流并將其封裝成RTP數據包轉發到客戶端,最后客戶端開發相應的客戶端播放器,對視頻編碼流解碼后就可以看到高清的實時監控畫面。圖1是視頻監控系統的總體設計圖。

圖1 系統總體設計圖

2 系統硬件設計

Hi3507是一款基于ARM926EJ-S處理器內核和視頻硬件加速引擎的高性能通信媒體處理器,具有高集成、可編程、支持H.264和MJPEG等多協議的優點,廣泛應用于實時視頻通信、網絡攝像機等領域。視頻處理單元支持高清720P@30 fps,支持H.264和MJPEG雙碼流同時編碼,H.264 編碼算法極大地提高了視頻質量,同時提供場編碼或者幀編碼,靈活支持不同的顯示終端,圖形處理單元提供運動檢測功能,并支持視頻、圖形縮放和OSD[1]。

視頻采集設備采用Omni Visio公司生產的CMOS圖像傳感器OV2643,該芯片采用2.2 μmOmniPixel3-HS架構,允許1250 mV/lux-sec光照敏感度,支持自動曝光、自動白平衡、透鏡校正、圖像邊緣增強等功能。具備200萬像素,并支持最高300萬像素下的抓拍模式,可以在30 fps下完成720P高清視頻的拍攝,同時支持UXGA和SVGA兩種模式。該芯片支持兩路輸入,輸出格式支持YUV422/YCbCr422、GBR422、RGB565/555和RAW RGB[2]。

OV2643圖像傳感器與Hi3507主芯片的通信是通過I2C總線協議完成的。OV2643的SIO_C和SIO_D引腳分別與Hi3507的SCL和SDA引腳連接,Hi3507通過I2C總線對OV2643的寄存器進行配置來實現OV2643芯片的初始化和過程控制,將OV2643的HREF和VSYNC分別作為行同步信號和幀同步信號輸入,OV2643通過DATA[0:7]端口將8位圖像數據從VI0DAT[2:9]輸入,同時輸出像素時鐘(PCLK)。視頻采集模塊硬件接口如圖2所示。

圖2 視頻采集模塊硬件接口

在網絡視頻監控系統中,存儲模塊分為DDR2 SDRAM和NOR Flash兩類,存儲模塊是視頻壓縮過程中非常重要的部分,DDR2 SDRAM為軟件系統運行提供物理內存,NOR Flash則用來存儲系統軟件的映像文件和上層應用程序。NOR Flash存儲模塊采用的是S29GL256N,Hi3507的SMI控制器對外提供異步靜態存儲器接口來連接NOR Flash,用以實現系統的啟動和數據的存儲等功能。DDR2 SDRAM采用HY5PS1G1631CFP-Y5,Hi3507的DDRC控制器對外提供DDR2接口,用于完成DDR2 SDRAM的訪問。鑒于H.264算法數據量大的特點,此系統采用兩片16位的DDR2 SDRAM與其連接,最大支持512 MB存儲空間。以太網模塊采用Realtek公司的網卡芯片RTL8201CP,Hi3507的以太網接口ETH提供MII接口與RTL8201CP連接,可以工作在10 Mb/s或者100 Mb/s,支持全雙工或半雙工工作模式,同時支持對網口的幀進行選擇性過濾接收和流量限制功能。

3 嵌入式軟件設計

圖3 軟件總體設計流程

嵌入式軟件開發平臺主要包括上位機Linux環境的搭建、交叉編譯環境的搭建和操作系統的移植,開發和調試采用“宿主機+目標機”的模式進行,宿主機和目標機分別是PC機和IP Camera。宿主機采用Linux操作系統作為開發環境,解壓并安裝Hi3507的SDK,安裝交叉編譯環境、TFTP服務器和超級終端完成宿主機開發環境的搭建。操作系統的移植包括Bootloader、Linux內核和文件系統的移植。Bootloader是基于uboot-1.4.4開發,根據Hi3507的相關硬件特性進行裁減,在宿主機上使用AXD調試軟件并通過JTAG仿真器將Uboot燒寫到目標板中,并設置從Flash中啟動操作系統。同時根據應用需求配置并裁剪Linux內核和文件系統,Linux內核和文件系統分別是基于linux-2.6.14和busybox-1.1.2來開發的,可以通過網口下載到目標板中,目標板的開發環境搭建完畢。

目標板上電后,啟動進入內核,加載Hi3507軟件開發包提供的MPP系統中的各個接口和外圍芯片驅動,只需調用其提供的API函數就可以完成上層應用軟件的設計。本文重點闡述了IP Camera模塊和流媒體服務器的軟件開發,軟件總體設計流程如圖3所示。

3.1 IP Camera軟件設計

IP Camera軟件設計分為驅動程序設計和視頻編碼軟件設計。驅動程序為應用程序提供訪問接口,應用程序用來驗證驅動程序的有效性,二者密不可分。

3.1.1 驅動程序設計

OV2643圖像傳感器負責視頻圖像的采集,首先要為其編寫相應的驅動程序。驅動程序包括OV2643驅動程序和I2C總線驅動程序,這里用GPIO來模擬I2C總線。OV2643設備文件操作接口的數據結構如下所示:

static struct file_operations OV2643_fops = {

.owner = THIS_MODULE,

.read = OV2643_read, //讀設備

.write = OV2643_write, //寫設備

.ioctl = OV2643_ioctl, //控制命令

.open = OV2643_open, //打開設備

.release = OV2643_close, //關閉設備

};

驅動程序的主要任務就是填充文件操作接口數據結構中定義的子函數,OV2643_open和OV2643_close在設備打開或關閉時被調用,OV2643_read函數通過系統調用copy_to_user(buf, ®_data, count)把緩存數據從內核空間拷貝到用戶空間處理。在驅動程序中,ov2643_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)是用戶進程向OV2643設備進行I/O控制的方法。其中cmd是控制字,本系統涉及到的控制字有OV2643_CONFIG_720P、OV2643_CONFIG_VGA、OV2643_CONFIG_QVGA,分別操控3種不同分辨率視頻的拍攝。

相關子函數編寫完成后,需要編寫module_init()和module_exit( )函數。module_init()是驅動程序的入口,它包括加載GPIO_I2C模塊、注冊OV2643設備、初始化OV2643設備。

3.1.2 視頻編碼軟件設計

視頻編碼軟件的設計包括系統初始化、視頻采集和編碼程序的設計,主函數中自定義了一個視頻編碼函數,同時創建一個線程來獲取并存儲視頻流。視頻編碼軟件設計流程圖略——編者注。

Hi3507為軟件開發者提供了專門的媒體軟件處理平臺MPP,MPP層基于驅動層,屏蔽了Hi3507芯片媒體處理硬件的操作細節,提供面向媒體業務的基本功能,為上層應用軟件提供MPI接口。應用程序啟動MPP業務前,必須完成MPP系統初始化工作,主要是視頻緩存池和系統控制兩大部分的初始化。視頻緩存池主要為視頻編碼提供大塊物理內存,負責內存的分配和回收,調用HI_MPI_VB_SetConf和HI_MPI_VB_Init完成視頻緩存池的配置和初始化工作;系統控制則根據Hi3507芯片特性,完成硬件各個部件的復位、基本初始化工作,同時負責完成MPP系統各個業務模塊的初始化、去初始化以及管理MPP系統各個業務模塊的工作狀態,調用HI_MPI_SYS_SetConf和HI_MPI_SYS_Init完成MPP系統配置和初始化。整個系統的初始化流程略——編者注。當應用程序退出MPP業務后,還需要調用HI_MPI_SYS_Exit和HI_MPI_VB_Exit函數完成MPP系統去初始化和釋放資源[3]。

主函數中調用自定義函數SAMPLE_720pH264_Enable(video_setting)完成視頻編碼,采集參數定義在如下的video profile結構體中:

typedef struct video_profile{

unsigned int bit_rate; //比特率

unsigned int width; //圖像寬度

unsigned int height; //圖像高度

unsigned int framerate; //幀率

unsigned int gop_size; //圖像組長度

}video_setting;

采集程序調用open("/dev/misc/ov2643",O_RDWR)函數打開設備文件,第一個參數代表設備文件打開路徑,第二個參數表示以讀、寫的方式打開文件。成功打開設備后需要對OV2643進行配置,配置函數調用ioctl(fd,cmd)函數來配置OV2643,fd代表成功打開OV2643后返回的文件描述符,cmd代表控制字,配置函數根據主函數傳遞的采集參數來選擇控制字,驅動函數為配置函數提供了OV2643_CONFIG_720P、OV2643_CONFIG_VGA、OV2643_CONFIG_QVGA三個控制字,用來支持拍攝3種不同分辨率的視頻圖像,在驅動程序中需要對3種不同采集方式的寄存器分別進行配置。

視頻采集后進入Hi3507中進行處理和編碼,Hi3507有一個VI設備接口,可支持一路視頻輸入,視頻的編碼是由VI和VENC兩個模塊完成的。VI模塊用于視頻捕獲,其公共屬性中設置視頻輸入接口模式為數字輸入模式,VI捕獲子流程略——編者注。VENC完成視頻的編碼,首先要配置H.264編碼屬性和編碼通道屬性,設置圖像分辨率為1280×720,VI輸入幀率和目標幀率為30 fps,采用幀編碼模式和幀模式獲取碼流,配置完成后創建一個通道組,用于容納通道,如果有多路編碼,首先需要創建多個通道組,創建的通道組需與指定的VI通道完成綁定,然后創建所需要的編碼通道并將其注冊到指定的編碼通道組,最后啟動通道進行編碼,H.264編碼子流程略——編者注。編碼完成后強制停止并銷毀視頻編碼,其流程圖略——編者注。

3.1.3 獲取并存儲視頻編碼流

創建線程獲取和存儲編碼流,首先獲取編碼通道fd,選擇該編碼通道,如果出錯或超時則退出,否則根據查詢到當前幀中的碼流包個數來分配結構體緩存大小,可以通過分配一個非常大的緩存來容納任何情況下的一幀所有碼流包。獲取碼流后對碼流進行存儲,還要進行釋放碼流,按照先取出先釋放的順序釋放,盡早釋放,防止碼流阻塞,當釋放完分配的碼流包結構體緩存后開始下一個循環,具體流程圖略——編者注。

3.2 流媒體服務器軟件設計

圖4 NALU單元頭格式

本文采用支持RTP/RTCP、RTSP協議的live555開源項目來完成視頻流的傳輸,首先要熟悉H.264的碼流格式以及RTP封包發送過程。H.264基本流是由一系列的NALU組成,H.264壓縮標準采用前綴碼0x00 0001作為NALU的分隔符,可以通過搜索前綴碼0x00 0001來識別一個NALU,每個NALU單元由一個NALU頭和若干個字節的載荷數據組成。NALU單元頭格式如圖4所示,其中TYPE是NALU中最重要的語法元素,它指出了NALU的類型。

每一個RTP數據包都由固定包頭和載荷兩部分組成,其頭部格式是固定的,載荷是經壓縮編碼后的視頻數據,RTP固定包頭格式如圖5所示。

圖5 RTP固定包頭

RTP數據包格式包含了傳輸媒體的類型、格式、序列號、時間戳和是否有附加數據等信息,為實時流媒體傳輸提供了相應的基礎。使用RTP協議傳輸流媒體數據時,RTP協議首先從上層鏈路獲取流媒體數據,加入RTP頭后向下發送到UDP層,在UDP層加入UDP頭后發送到IP層,最后在IP層加入IP頭后通過網絡傳輸到客戶端。在RTP會話期間,參與者周期性地傳送RTCP包,動態調整數據傳輸速率,實現流量控制和阻塞控制,以適應網絡環境的變化。按照規范,RTP包和RTCP包會通過兩個連續的UDP端口進行分流,RTP使用偶數端口,RTCP使用相鄰的奇數端口[4],RTP包發送過程如圖6所示。

圖6 RTP包發送過程

RTSP協議主要用于控制流的網絡傳輸,服務器端主要任務是從視頻流中分離出每個NALU單元并封裝成RTP包進行發送。本文采用live555開源項目來實現基于RTP/RTCP、RTSP協議的視頻數據的流化、傳輸及處理,live555主要包括UsageEnvironment、BasicUsageEnvrionment、GroupSock、LiveMedia四個基本庫和各種測試代碼。流媒體服務器端接收到客戶端發送的Play報文時開始視頻流的傳輸,具體的視頻流傳輸是通過子會話對象ServerMediasubsession中的Source和Sink來完成的,發送的實質是Sink從Source讀取視頻流的過程。RTP包的發送是從MediaSink::startplaying函數調用開始的,從Sink上調用startplaying,從Source讀取一個幀的數據并返回給Sink,通過調用回調函數afterGettingFrame的方式,由發送數據函數SendPacketifnecessary()發送數據。一個包發送完成之后,若數據發送完,則停止;若沒有發送完,則繼續調用SendNext()函數來發送下一個包,下一個包又會調用buildAndSendPacket函數來組建新的RTP頭。RTP打包發送函數調用流程圖略——編者注。

客戶端與服務器端的交互是通過Option、Describe、Setup、Play和Teardown五個報文來實現的,客戶端通過向服務端發送建立RTSP會話請求并通過服務器認證后,就可以接收來自服務器端的RTP包,客戶端從接收的RTP包中解析出NALU單元并進行解碼播放,用戶就可以看到實時高清的視頻。

結 語

系統測試證明,客戶端視頻播放流暢,系統運行穩定。該方案對于實時高清網絡視頻監控領域具有一定的借鑒意義。

[1] 深圳海思半導體.海思Hi3507 H.264編碼處理器用戶指南,2011.

[2] Omni Vision Technologies.OV2643 Color CMOS UXGA(2 megapixel)Image Sensor with OmniPixel3-HS Techonology ,Version1.0[EB/OL].[2014-10].http://www.ovt.com.

[3] 深圳海思半導體.海思Hi3507 Hi3507 媒體處理軟件開發參考,2011.

[4] 李校林,劉海波.RTP/RTCP,RTSP在無線視頻監控系統的設計與實現[J].電視技術,2011,35(19):89-92.

劉明健(碩士研究生),主要研究方向為視頻壓縮編碼、嵌入式系統。

Liu Mingjian

(School of Information Engineering,Jiangxi University of Science and Technology,Ganzhou 341000,China)

Network video surveillance system not only requires high definition image,but also has very high request about the compression and transmission of video image.The design selects Hisilicon’s SoC chip Hi3507 as the main chip,combining with CMOS HD image sensor OV2643,H.264 encoded technology and streaming media server based on live555, then realizes a HD network surveillance system.The practice shows that this system not only collects the clear and smooth image in real-time,but also has a high ratio of quality to price.

Hi3507;OV2643;H.264;live555;streaming media server

TN277

A

?士然

2014-10-04)

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 在线网站18禁| 最新国产麻豆aⅴ精品无| jizz国产视频| 色偷偷一区二区三区| 亚洲中文字幕97久久精品少妇| 久久无码高潮喷水| 人妻少妇乱子伦精品无码专区毛片| 玖玖精品视频在线观看| 性喷潮久久久久久久久| 免费一级全黄少妇性色生活片| 亚洲国产精品VA在线看黑人| 天堂成人在线| 伊在人亞洲香蕉精品區| 国产欧美精品一区aⅴ影院| 青青草原国产精品啪啪视频| 久久人人妻人人爽人人卡片av| 国产成人精品男人的天堂下载 | 欧美一级高清片欧美国产欧美| 亚洲国产在一区二区三区| 99中文字幕亚洲一区二区| 色哟哟国产精品一区二区| 国产99在线| 国产自产视频一区二区三区| 秋霞一区二区三区| 日韩色图在线观看| 色婷婷亚洲十月十月色天| 青草免费在线观看| 一本一道波多野结衣一区二区| 一本久道久综合久久鬼色| 欧美成人区| 无码国产伊人| 亚洲一区二区三区国产精华液| 色婷婷啪啪| 波多野结衣中文字幕一区| 五月婷婷激情四射| 国产精品毛片在线直播完整版| 国产精品手机视频| 久久精品这里只有精99品| 亚洲不卡av中文在线| 亚洲无码熟妇人妻AV在线| 日本一本正道综合久久dvd| 国产精品美女自慰喷水| 2021国产乱人伦在线播放| 日本黄色不卡视频| 亚洲人人视频| 996免费视频国产在线播放| 91破解版在线亚洲| 国产无码精品在线播放| 亚洲欧美日韩另类在线一| 五月天综合网亚洲综合天堂网| 一区二区三区成人| 日韩欧美国产精品| 欧美亚洲国产精品久久蜜芽| 激情综合婷婷丁香五月尤物| 国产福利影院在线观看| 亚洲男人的天堂久久香蕉网| 老熟妇喷水一区二区三区| 国产一在线| 国产精品自拍露脸视频| 找国产毛片看| 永久免费无码成人网站| 精品三级网站| www.国产福利| 亚洲天堂777| 日韩激情成人| 三上悠亚一区二区| 亚洲嫩模喷白浆| 18禁黄无遮挡网站| 精品无码人妻一区二区| 青草视频网站在线观看| 无码人中文字幕| 亚洲全网成人资源在线观看| 97免费在线观看视频| 国产无码高清视频不卡| 一本大道在线一本久道| 97视频在线观看免费视频| 欧美精品一区在线看| 国产亚洲一区二区三区在线| 国产午夜一级毛片| 88国产经典欧美一区二区三区| 欧美亚洲国产一区| 亚洲天堂首页|