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

基于嵌入式系統的視頻壓縮編碼研究

2019-12-05 02:49:36周斌李和
無線互聯科技 2019年18期
關鍵詞:嵌入式系統

周斌 李和

摘 ? 要:文章主要研究了視頻信號的采集與壓縮編碼,在分析了現有的視頻傳輸格式后,利用ARM Cortex A8為核心的嵌入式Linux系統對所采集的視頻信號以硬件編碼的方式實現H.264壓縮編碼,在保證視頻清晰度的同時完成視頻的壓縮并編碼,同時,通過串口發送壓縮后視頻信息流。最后經測試,壓縮編碼后的視頻傳輸穩定,畫面清晰流暢。

關鍵詞:Linux;H.264;編碼

1 ? ?關鍵技術分析與選擇

1.1 ?嵌入式操作系統的選擇

一個合格的嵌入式操作系統選取應該包含以下幾點要求:(1)穩定性,在嵌入式運行過程中需要滿足全天候不間斷工作,這就對系統的穩定性提出了較高的要求。作為運行軟件的基礎平臺,系統的穩定運行是第一要務。(2)可移植性,在現代社會,市場上有大量的嵌入式設備可供選擇,有著完全不同的體系結構,為了降低程序的二次開發難度,本次研究所選的操作系統應該具備良好的代碼可移植性。

1.2 ?處理器的選擇

芯片集成度是否滿足要求,即處理器應集成的控制器是否有適合項目的接口與控制設備,通常會選擇在完成任務的情況下選擇耗能較少的處理器。硬件成本合適,價格低廉性能優良的處理器較為合適。

1.3 ?圖像壓縮編碼選擇的標準

常用的編碼格式有MPEG4,H.263,H.264,H.265,都能滿足要求。H.265是新的視頻編碼標準,目前使用度并不高,主要因為在使用難度上它的需求高。考慮到項目研究需求以及使用場合,主要是使用視頻壓縮編碼技術,傳輸帶寬有一定的要求,綜上所述,MPEG4和H.264較為符合要求[1]。嵌入式系統CPU中包含使用硬件編碼的MFC模塊。但在同等的傳輸帶寬下,相比較下H.264比MPEG4有著更好的數字傳輸特性。

2 ? ?軟件設計與實現

2.1 ?系統軟件總體結構

一個完整的嵌入式系統軟件需要滿足:含有應用程序庫、操作系統、以及驅動系統。(1)內核版本,本次研究考慮到系統的完整性、穩定性等一系列要求,認為3.0.8內核版本較為合適。由于系統需要更小的體積以及更高的傳輸效率,所以在操作過程中盡量降低內核體積,在通過使用嵌入式開發環境進行編譯,在生成最新的內核映像文件后,使用SD卡燒寫用于操作系統內核的安裝。(2)設備驅動,Linux操作系統作為驅動以及硬件的操作系統,系統驅動程序上需要檢查主要包括USB/UART芯片CH340驅動、硬件編碼器MFC驅動等。(3)應用程序,系統應用程序中含有視頻采集模塊以及視頻壓縮轉換模塊,USB/UART模塊。(4)庫在嵌入式系統,其使用編譯代表了資源的多少,在這個過程中會需要使用到很多的庫用于進行編譯碼的運行處理[2]。系統框架如圖1所示。

2.2 ?視頻采集模塊

在嵌入式視頻采集方案中最通用的協議是V4L2,它是V4L的改進版,在Linux2.5.x中就被加入到Linux內核中。另外,V4L2支持UVC免驅設備,省去了USB攝像頭驅動移植的困難,極大地方便了視頻采集模塊的開發。在研究中采用羅技C270攝像頭來開發視頻采集應用,開發板Tiny210,當USB攝像頭連接后,Linux會在/dev目錄下創建USB攝像頭操作接口Video3。使用V4L2的視頻采集后,就能通過使用內存映射的方式將USB攝像頭采集到的數據映射到可操作的用戶空間。這里調用線程實現重復采集數據并保存在mmap映射內存中,方便下一步調用顯示函數和H.264編碼函數[3]。在視頻采集中的重要步驟如下:

使用open(“/dev/video3”,O_RDWR | O_NONBLOCK)函數通過非阻塞的方式打開USB攝像頭/dev下的video3驅動。使用ioctl(cam_fd,VIDIOC_ENUM_FMT,&fmt)枚舉視頻設置支持的格式,ioctl(cam_fd,VIDIOC_QUERYCAP,&cap)查詢視頻設備支持的功能。這里將攝像頭參數打印出來,可知USB攝像頭支持的視頻采集格式為YUYV。設置攝像頭采集參數ioctl(cam_fd,VIDIOC_S_FMT,&stream_fmt)。結構體stream_fmt參數如下:

stream_fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

stream_fmt.fmt.pix.width =320;

stream_fmt.fmt.pix.height =240;

stream_fmt.fmt.pix.pixelformat = PIXELFMT;

stream_fmt.fmt.pix.field= V4L2_FIELD_INTERLACED;

初始化完成后用ioctl(cam_fd,VIDIOC_QUERYBUF,&buf)將申請到的buf地址放入視頻采集緩存中使用,用于存儲視頻數據。調用ioctl(cam_fd,VIDIOC_STREAMON,&type)函數,開始進行采集圖像工作。

從buf地址中獲取圖像并復制給新的存儲地址,把buf重新歸隊繼續采集圖像數據形成循環采集獲取到視頻流。當需要停止時使用ioctl(cam_fd,VIDIOC_STREAMOFF,&type)停止視頻采集。并且使用unmap()函數釋放被占用的視頻緩存區buf。再關閉驅動文件close(cam_fd)就可以停止視頻采集。

2.3 ?視頻壓縮程序設計

(1)通過函數打開MFC硬件編碼設備:

SsbSipMfcEncOpen(&buf_type)。

(2)初始化編碼器對編碼結構體SSBSIP_MFC_ENC_H264_PARAM進行必要的參數設置。如采用什么編碼類型、編碼圖像的高度和寬度、比特率、量化參數和幀率等選項進行設置。主要地配置如下:

err=SsbSipMfcEncInit(openHandle, param);

param->codecType = H264_ENC;

param->SourceWidth = CapWidth;

param->SourceHeight = CapHeight;

param->Bitrate = 30000;

param->FrameQp = 30;

param->FrameRate = 30。

(3)建立和獲取數據輸入的緩存地址:

err = SsbSipMfcEncGetInBuf(openHandle,&iinfo);

err = SsbSipMfcEncSetInBuf(openHandle,&iinfo)。

(4)調用編碼函數進行H.264視頻壓縮編碼:

err = SsbSipMfcEncExe(openHandle)。

(5)建立和獲取編碼輸出的緩存地址:

SSBSIP_MFC_ENC_OUTPUT_INFO oinfo;

err=SsbSipMfcEncSetOutBuf(openHandle,phyOutbuf,virOutbuf,outbufSize);

err = SsbSipMfcEncGetOutBuf(openHandle,&oinfo)。

(6)編碼完成后,硬件編解碼器設備MFC:

err = SsbSipMfcEncClose(openHandle)。

3 ? ?系統嵌入式硬件平臺測試

采用“友善之臂”提供的Tiny210方案,可以外接7寸的液晶屏。開機后正常運行,進入系統后運行“友善之臂”提供的檢測軟件測試各種功能是否正常使用。使用串口轉USB模塊連接電腦后,可以通過PC機上的SecureCRT查看目錄文件是否被成功掛載。最后對硬件接口進行功能測試,如進到/dev下,觀察是否有ttyUSB0串口設備接口文件,如果沒有說明串口接口電路有問題,需重新檢查串口模塊是否能正常使用。

3.1 ?圖像采集和顯示功能驗證

在驗證初期,通過使用代碼編寫圖片的采集截取一幀使視頻通過BMP格式保存圖片信息,驗證V4L2可操作USB攝像頭。后續實現連續的圖像采集形成視頻流文件,通過fwrite保存視頻文件來實現在PC機上使用PotPlayer播放器播放視頻文件,分析播放效果,一步步完善代碼實現視頻的采集與播放功能。圖2為所采集圖像在7寸LCD液晶屏播放的效果,圖像清晰、畫面流暢、運行穩定。

3.2 ?圖像壓縮功能驗證

圖像壓縮主要就是對視頻信號進行H.264壓縮編碼[4],觀察壓縮后數據量與壓縮前數據量大小是否變化,將編碼后的H.264文件通過SD卡復制到電腦上,就能用具有解碼工具的軟件進行播放,如H.264文件可以用PotPlayer軟件進行播放,觀察播放效果,判斷是否編碼成功,并進一步改善代碼,使得視頻壓縮比例可調,以應對不同帶寬需求的場景。圖2上方是未壓縮前的視頻圖像,下方是經壓縮處理過的視頻圖像,對比兩張圖像可以看出經壓縮處理的視頻圖像質量很好,盡管清晰度有所下降但不影響觀看。

4 ? ?結語

通過研究基于ARM-Cortex A8的嵌入式Linux開發平臺中關于視頻編碼設計,主要完成了有關V4L2協議下的USB攝像頭的視頻采集,采用S5PV210上的MFC硬件編碼對視頻數據進行H.264格式編碼,并使用串口進行數據流發送,對后期無線數字調制傳輸具有較高的參考價值。

[參考文獻]

[1]李毓強.基于H_264和流媒體的嵌入式多路網絡視頻監控系統設計與實現[D].南京:南京郵電大學,2016.

[2]姚莉,鄧丹君.基于A8的嵌入式Linux遠程視頻監控系統的設計與實現[J].物聯網技術,2016(5):24-26.

[3]楊建國,蔡立志,鄭紅.基于ARM的嵌入式視頻監控系統的設計與實現[J].計算機應用與軟件,2018(10):31-33.

[4]吳大中,胡江浪.基于ARM的移動視頻監控系統設計[J].現代電子技術,2016(4):123-127.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 天天色综合4| 91在线激情在线观看| 国产在线观看第二页| 丁香五月激情图片| 精品福利国产| 欧美一级黄片一区2区| 国产欧美日本在线观看| 亚洲第一综合天堂另类专| 99热这里只有精品免费| 四虎成人在线视频| 亚洲乱码视频| 国产日韩欧美一区二区三区在线| 东京热av无码电影一区二区| 国产真实乱人视频| 91国内在线观看| 国产成人免费视频精品一区二区| 亚洲国产亚综合在线区| 无码AV日韩一二三区| 人妻出轨无码中文一区二区| 精品国产中文一级毛片在线看| 夜夜拍夜夜爽| 国产精品美女网站| 性网站在线观看| 国产91导航| 国产麻豆精品在线观看| 国产老女人精品免费视频| 在线色国产| 97se亚洲| 成人国产精品网站在线看| 美女一级毛片无遮挡内谢| 精品一区二区三区视频免费观看| 色综合五月婷婷| 国产成人久久777777| 在线观看热码亚洲av每日更新| 国产丝袜啪啪| 一区二区在线视频免费观看| 99成人在线观看| 99精品免费在线| 在线一级毛片| 视频在线观看一区二区| 国产精品亚洲va在线观看| 亚洲欧洲天堂色AV| 午夜少妇精品视频小电影| 黄色网在线免费观看| 亚洲男人的天堂久久香蕉网| 国产91高清视频| 久久精品无码中文字幕| 国产在线麻豆波多野结衣| 国产成本人片免费a∨短片| 在线观看精品自拍视频| 亚洲永久精品ww47国产| 亚洲中文久久精品无玛| 久久成人国产精品免费软件| 亚洲国产日韩视频观看| 尤物精品国产福利网站| 无码一区二区三区视频在线播放| 国产毛片片精品天天看视频| 三级国产在线观看| 制服丝袜亚洲| 欧洲欧美人成免费全部视频| 午夜国产精品视频黄| 97在线免费| 欧美在线国产| 欧美日韩在线第一页| 99在线视频精品| 亚洲国语自产一区第二页| 国产高清在线精品一区二区三区| 97精品伊人久久大香线蕉| 91福利免费| 国产本道久久一区二区三区| 久久黄色一级片| 91年精品国产福利线观看久久 | 无码啪啪精品天堂浪潮av| 91视频首页| 亚洲福利网址| 欧美日韩一区二区在线免费观看| 亚洲精品手机在线| 亚洲熟女中文字幕男人总站| 亚洲精品福利视频| 青草娱乐极品免费视频| 国产精品久久久久久久久久98| 国产91精品调教在线播放|