• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于嵌入式系統(tǒng)的視頻壓縮編碼研究

    2019-12-05 02:49:36周斌李和
    無線互聯(lián)科技 2019年18期
    關鍵詞:內核串口嵌入式

    周斌 李和

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

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

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

    1.1 ?嵌入式操作系統(tǒng)的選擇

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

    1.2 ?處理器的選擇

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

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

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

    2 ? ?軟件設計與實現

    2.1 ?系統(tǒng)軟件總體結構

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

    2.2 ?視頻采集模塊

    在嵌入式視頻采集方案中最通用的協(xié)議是V4L2,它是V4L的改進版,在Linux2.5.x中就被加入到Linux內核中。另外,V4L2支持UVC免驅設備,省去了USB攝像頭驅動移植的困難,極大地方便了視頻采集模塊的開發(fā)。在研究中采用羅技C270攝像頭來開發(fā)視頻采集應用,開發(fā)板Tiny210,當USB攝像頭連接后,Linux會在/dev目錄下創(chuàng)建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重新歸隊繼續(xù)采集圖像數據形成循環(huán)采集獲取到視頻流。當需要停止時使用ioctl(cam_fd,VIDIOC_STREAMOFF,&type)停止視頻采集。并且使用unmap()函數釋放被占用的視頻緩存區(qū)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 ? ?系統(tǒng)嵌入式硬件平臺測試

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

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

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

    3.2 ?圖像壓縮功能驗證

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

    4 ? ?結語

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

    [參考文獻]

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

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

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

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

    猜你喜歡
    內核串口嵌入式
    萬物皆可IP的時代,我們當夯實的IP內核是什么?
    現代裝飾(2022年4期)2022-08-31 01:41:24
    群眾路線是百年大黨成功之內核性制度因素的外在表達
    當代陜西(2021年12期)2021-08-05 07:45:46
    強化『高新』內核 打造農業(yè)『硅谷』
    淺談AB PLC串口跟RFID傳感器的通訊應用
    Linux內核mmap保護機制研究
    搭建基于Qt的嵌入式開發(fā)平臺
    嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
    USB接口的多串口數據并行接收方法探索
    基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
    地礦測繪(2015年3期)2015-12-22 06:27:26
    Altera加入嵌入式視覺聯(lián)盟
    通海县| 海淀区| 陆丰市| 左云县| 富民县| 久治县| 寿宁县| 石狮市| 惠来县| 嘉黎县| 扬中市| 绥德县| 曲松县| 衡阳县| 柳河县| 广元市| 亳州市| 淳化县| 大化| 陆河县| 永川市| 龙海市| 普宁市| 合江县| 克拉玛依市| 贵定县| 栾城县| 桐柏县| 潮州市| 余庆县| 曲靖市| 安义县| 武隆县| 仁寿县| 开封县| 钟祥市| 绥滨县| 泗阳县| 娱乐| 济阳县| 仙游县|