• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于S3C6410的USB視頻壓縮、回放系統(tǒng)

      2014-07-02 00:28:20劉仁貴胡亮兵侯成英王庭良侯鎮(zhèn)鋒
      電視技術(shù) 2014年13期
      關(guān)鍵詞:解碼編碼器攝像頭

      劉仁貴,胡亮兵,侯成英,王庭良,侯鎮(zhèn)鋒

      (1.西北工業(yè)大學(xué)明德學(xué)院,陜西西安710124;2.南京電子技術(shù)研究所,江蘇南京210039; 3.西安博厚電子科技有限公司,陜西西安710075)

      基于S3C6410的USB視頻壓縮、回放系統(tǒng)

      劉仁貴1,胡亮兵2,侯成英3,王庭良1,侯鎮(zhèn)鋒1

      (1.西北工業(yè)大學(xué)明德學(xué)院,陜西西安710124;2.南京電子技術(shù)研究所,江蘇南京210039; 3.西安博厚電子科技有限公司,陜西西安710075)

      闡述了在嵌入式Linux下,將市面上常見的USB攝像頭作為視頻輸入設(shè)備,將其輸出的JPEG格式圖像數(shù)據(jù)通過S3C6410內(nèi)部的硬件H.264編碼器壓縮成視頻文件的方法,并基于此方法,設(shè)計了一個基于S3C6410和USB攝像頭的視頻采集、壓縮、存儲系統(tǒng),采用了高級語言與匯編語言相結(jié)合的方法,在USB攝像頭每秒最快輸出15幀640×480圖像的情況下,系統(tǒng)整體可以達(dá)到13 f/s(幀/秒)的錄制效果。該系統(tǒng)具有取材方便、成本低、存儲時間長、實用性強等特點。

      嵌入式系統(tǒng);USB攝像頭;JPEG;H.264

      JPEG作為一種圖像壓縮標(biāo)準(zhǔn),廣泛應(yīng)用于網(wǎng)絡(luò)、數(shù)碼等領(lǐng)域。目前市面上常見的USB PC Camera的輸出即為JPEG格式的圖像數(shù)據(jù),由于JPEG的壓縮率相對較低,其圖像質(zhì)量較高,但占用存儲空間較大,不適合應(yīng)用于對存儲空間敏感的系統(tǒng)中。相對于JPEG和其他圖像、視頻壓縮標(biāo)準(zhǔn)而言,H.264標(biāo)準(zhǔn)是由視頻聯(lián)合工作組提出的新一代數(shù)字視頻編碼標(biāo)準(zhǔn),H.264的最大特點是采用幀內(nèi)壓縮和幀間壓縮,具有很高的壓縮率,在同等圖像質(zhì)量的條件下,H.264的壓縮率是MPEG-2的2倍以上,是MPEG-4的1.5~2倍,因此,在同等帶寬下,H.264能提供更高的圖像質(zhì)量,成為目前主流壓縮標(biāo)準(zhǔn),廣泛應(yīng)用于流媒體、安防、管道探傷等領(lǐng)域[1]。

      本文闡述了在Linux2.6.28下,以中星微ZC0301PLH為控制器的USB PC Camera作為視頻輸入設(shè)備,利用S3C6410的JPEG硬件解碼器和H.264硬件編碼器,將攝像頭輸出的640×480大小的JPEG圖像數(shù)據(jù)解碼后再壓縮成視頻文件的方法。

      1 原理概述

      YUV420格式的圖像數(shù)據(jù)有兩種存儲類型,一種是打包的,即Y,U,V分量是交錯存儲,也就是將一個像素的所有分量連續(xù)存放到一起。另一種是平面的,即YUV420P。在平面的YUV420中,Y,U,V三個分量是分片存儲的,形如YYYY…UU…VV…。

      S3C6410的H.264硬件編碼器要求輸入的圖像數(shù)據(jù)必須是YUV420P格式的,以ZC0301PLH為控制器的USB PCCamera輸出的是JPEG格式的圖像數(shù)據(jù),而JPEG圖像數(shù)據(jù)不能直接送入S3C6410的H.264編碼器,因此要把JPEG圖像數(shù)據(jù)解碼并轉(zhuǎn)換成YUV420P圖像數(shù)據(jù)。這一過程可以用軟件實現(xiàn),但時間開銷大,速度慢。由于S3C6410內(nèi)部集成了JPEG硬件解碼器,可以將JPEG圖像數(shù)據(jù)解碼成打包的 YUV422數(shù)據(jù),因此可以利用S3C6410內(nèi)部的JPEG硬件解碼器先把USB PC Camera輸出的JPEG圖像快速解碼成打包的YUV422,然后將打包的YUV422數(shù)據(jù)轉(zhuǎn)換成平面的YUV420P數(shù)據(jù)再送入S3C6410內(nèi)部的H.264硬件編碼器進(jìn)行壓縮編碼,最后將壓縮后的視頻文件存入SD卡或者U盤等存儲設(shè)備,即可完成視頻的錄制工作。系統(tǒng)的工作流程如圖1所示。

      圖1 系統(tǒng)流程

      2 系統(tǒng)硬件

      基于USB PC Camera的視頻壓縮系統(tǒng)[2]主要由USB PC Camera和S3C6410核心功能模塊組成,S3C6410核心功能模塊通過USB接口讀取圖像數(shù)據(jù),并完成圖像數(shù)據(jù)解碼、轉(zhuǎn)換、壓縮和存儲功能,同時,PC機通過USB讀取U盤或者SD卡中的視頻文件。系統(tǒng)硬件原理框圖如圖2所示。

      圖2 系統(tǒng)原理框圖

      3 視頻采集

      V4L2(Video For Linux Two)是Linux內(nèi)核中關(guān)于音、視頻設(shè)備的內(nèi)核驅(qū)動,提供給應(yīng)用程序訪問音、視頻設(shè)備的通用接口,在本系統(tǒng)中,采用V4L2接口控制USB攝像頭[3],由于需要連續(xù)、快速采集圖像,因此使用mmap(內(nèi)存映射)方式讀取攝像頭數(shù)據(jù),這樣可以大大提高了圖像數(shù)據(jù)讀取的效率。視頻采集流程如圖3所示。

      在使用V4L2前,需要正確配置內(nèi)核,添加V4L2驅(qū)動[4],其配置過程如下:

      內(nèi)核配置完成后,保存退出,編譯并重新燒寫內(nèi)核。驅(qū)動添加成功后,應(yīng)用程序即可通過V4L2驅(qū)動提供的接口函數(shù)控制USB攝像頭,讀取其輸出的JPEG圖像數(shù)據(jù),完成圖像數(shù)據(jù)的采集工作。

      4 JPEG解碼

      圖像數(shù)據(jù)采集完成后,即要對采集到的JPEG圖像數(shù)據(jù)解碼。圖像數(shù)據(jù)解碼由S3C6410內(nèi)部的JPEG硬件解碼器完成。三星公司提供了JPEG解碼的API函數(shù)[5],通過API函數(shù),應(yīng)用程序可以方便、快速地完成JPEG圖像數(shù)據(jù)到Y(jié)UV422數(shù)據(jù)的解碼。三星公司提供的JPEG解碼函數(shù)及功能如下(見圖4):

      圖3 視頻采集流程圖

      SsbSipJPEGDecodeInit():JPEG解碼初始化,用于初始化變量和分配內(nèi)存空間;

      SsbSipJPEGGetDecodeInBuf(handle,size):獲取解碼輸入緩存地址和大小,handle為SsbSipJPEGDecodeInit()函數(shù)的返回值,size為要解碼的圖像的高和寬的乘積;

      SsbSipJPEGDecodeExe():執(zhí)行解碼;

      SsbSipJPEGGetDecodeOutBuf():獲取解碼輸出緩存內(nèi)存地址;

      SsbSipJPEGDecodeDeInit():釋放解碼資源。

      5 YUV422到Y(jié)UV420P的變換

      JPEG圖像數(shù)據(jù)經(jīng)過S3C6410硬件解碼器解碼后得到的是YUYV格式的YUV422數(shù)據(jù),Y,U,V分量呈交錯排列,每兩個Y共用一組UV分量,Y,U,V分量的比例為4∶2∶2,其具體排列如圖5所示。

      網(wǎng)絡(luò)雖然是一個虛擬世界,但網(wǎng)絡(luò)傳播的具體表現(xiàn)符合狂歡化的本質(zhì)特征。人們可以通過語言文字和視覺影像兩種傳播手段來審視網(wǎng)絡(luò)傳播的大眾狂歡。

      圖4 JPEG解碼流程圖

      圖5 YUV422數(shù)據(jù)格式

      YUV420并不是沒有V分量。在Y分量上,YUV420在每個像素上都保留一個Y分量,但并不是每行都取U和V分量,而是在一行只取U分量,在其緊接著的下一行只取V分量,再在下一行只取U分量,如此重復(fù),即4∶2∶0,4∶0∶2,4∶2∶0,4∶0∶2,……,因此,統(tǒng)稱為YUV420。YUV420與YUV422相比,兩者Y分量的總數(shù)相同,但U、V分量,YUV420只有YUV422的一半。

      YUV420P屬于YUV420,為平面的YUV420,Y,U,V分量分片存放,即先存儲所有的Y分量,然后存儲所有的U分量,再存儲所有的V分量,YUV420P的數(shù)據(jù)格式如圖6所示。

      圖6 YUV420P數(shù)據(jù)格式

      由上述可知,要將YUV422數(shù)據(jù)轉(zhuǎn)換成YUV420P數(shù)據(jù),最簡單的辦法就是保留所有Y分量,隔行抽取U,V分量(如圖5圓圈標(biāo)示的U,V分量),并分片存儲,即可完成數(shù)據(jù)的轉(zhuǎn)換。

      在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時,由于YUV422數(shù)據(jù)的Y,U,V分量是交叉排列,需要對YUV422數(shù)據(jù)逐字節(jié)提取。對于640×480大小的圖像,其 YUV422格式數(shù)據(jù)大小為614 400(640×480×2)字節(jié),若用高級語言實現(xiàn)逐字節(jié)提取,將消耗CPU大量的時間。筆者在S3C6410平臺上,用高級語言實現(xiàn)YUV422到Y(jié)UV420P轉(zhuǎn)換時,完成一次轉(zhuǎn)換,平均耗時100 ms左右,整個系統(tǒng)只能達(dá)到6 f/s(幀/秒)的的錄制效果,效果很差。

      匯編語言相對于高級語言來說,具有高效性。本系統(tǒng)中的YUV422數(shù)據(jù)到Y(jié)UV420P數(shù)據(jù)轉(zhuǎn)換采用了匯編語言來實現(xiàn),將其寫成子程序,在高級語言中遵守TPCS (ARM Thumb Procedure Call Standard)規(guī)則調(diào)用該匯編子程序,充分發(fā)揮了兩種語言的優(yōu)勢。

      YUV422數(shù)據(jù)到Y(jié)UV420P數(shù)據(jù)轉(zhuǎn)換可以先將Y,U,V分量全部提取出來,然后隔行抽取U和V,提取Y,U,V分量的匯編語言代碼如下:

      筆者將YUV422數(shù)據(jù)到Y(jié)UV420P數(shù)據(jù)轉(zhuǎn)換過程改用匯編語言實現(xiàn)后,其效率極大提高,僅耗時約20 ms左右,系統(tǒng)整體達(dá)到13 f/s的錄制效果,效果較好。

      6 視頻壓縮和存儲

      1)SsbSipH264EncodeInit(width,height,frame_rate,bitrate,gop_num):該函數(shù)用于初始化H.264硬件編碼器。width表示圖像的寬度,height表示圖像的高度,frame_rate表示幀頻,bitrate表示比特率或碼率,gop_num表示兩個相離關(guān)鍵幀之間最多包含多少個幀。

      2)SsbSipH264EncodeGetInBuf(handle,0):該函數(shù)用于獲取視頻的輸入地址,返回值為視頻流的輸入首地址。通過memcpy(p_inbuf,yuv_buf,frame_size)函數(shù)即可把需要編碼的視頻流數(shù)據(jù)輸入到編碼器。其中p_inbuf機即為SsbSipH264EncodeGetInBuf(handle,0)函數(shù)的返回值,yuv_buf為要編碼的YUV420P數(shù)據(jù),frame_size一幀圖像數(shù)據(jù)的大小。

      3)SsbSipH264EncodeExe(handle):執(zhí)行H.264編碼。

      4)SsbSipH264EncodeGetOutBuf(handle,size):輸出已編碼好的數(shù)據(jù)。返回值為已編碼圖像的首地址;size表示已編碼圖像的大小。

      5)SsbSipH264EncodeDeInit(handle):關(guān)閉硬編碼設(shè)備。

      S3C6410硬件H.264編碼過程如圖7所示。

      圖7 H.264硬件編碼流程

      7 系統(tǒng)測試

      圖8為晚上用30W像素普通USB攝像頭作為視頻輸入設(shè)備的測試效果。

      圖8 壓縮后視頻文件回放效果

      8 總結(jié)

      系統(tǒng)在對JPEG圖像解碼和對視頻數(shù)據(jù)進(jìn)行H.264編碼時,采用了硬件解碼器和硬件編碼器,大大地提高了解、編碼的速度,同時,在對需要進(jìn)行大量數(shù)據(jù)處理、耗時多的YUV422轉(zhuǎn)YUV420P過程,則由匯編語言實現(xiàn),極大地提高了程序的運行效率,在USB攝像頭每秒最快輸出15幀的情況下,整體可以達(dá)到13 f/s的效果,視頻播放較為流暢,且圖像清晰。在該平臺的基礎(chǔ)上,可以搭建多種低成本的應(yīng)用,具有較強的實用價值,目前該設(shè)備已經(jīng)成功應(yīng)用于管道成像探傷檢測系統(tǒng)中。

      [1]鄭世寶.智能視頻監(jiān)控技術(shù)與應(yīng)用[J].電視技術(shù),2009,33(1): 94-96.

      [2]張曉東,李秀娟,張杰.基于ARM的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2008,31(6):22-23.

      [3]張玉萍,鄒澎.基于Qt/Embedded視頻采集方案的設(shè)計與實現(xiàn)[J].電視技術(shù),2012,36(23):65-68.

      [4]宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2006.

      [5]S3C6400/6410 JPEG encoder/decoder API specification(Linux)(REV 3.10)[EB/OL].[2013-10-29].http://www.samsungsemi.com/.

      [6]API document S3C6400/6410 multi-format codec(REV 3.20)[EB/ OL].[2013-10-29].http://www.samsungsemi.com/.

      USB Video Com pression and Review System Based on S3C6410

      LIU Rengui1,HU Liangbing2,HOU Chengying3,WANG Tingliang1,HOU Zhenfeng1
      (1.Ming De College of NWPU,Xi’an 710124,China;2.Nanjing Research Institute of Electronics Technology,Nanjing 210039,China; 3.XEVET Co.,Ltd.,Xi’an 710175,China)

      A newmethod on how to build a usefuland portable video compression and review system is proposed in the paper.The embedded video system,based on the S3C6410,uses the USB PC Camera as the video input device,and the JPEG image from the USB PC Camera is transformed to H.264 video files by the inner JPEG Decoder and the H.264 encoder of the S3C6410,and the video files can be stored in SD card or USBmass storage device. Assemble language is used in the system tomake up theweakness of the high-level language.The Experimental results show that the system can achieve 13 f/s@640×480 image quality as themaximum frame number of the USB PC Camera output is15 f/s.The video files can be reviewed by PC,and the video is clear and stable with strong practical and broad application prospects.

      embedded system;USB PC camera;JPEG;H.264

      TP316.89

      B

      劉仁貴(1983— ),學(xué)士,助理實驗師,研究方向為嵌入式系統(tǒng)軟、硬件設(shè)計;

      胡亮兵(1982— ),博士,電訊總體工程師,研究方向為雷達(dá)信號與信息處理;

      侯成英(1984— ),女,學(xué)士,工程師,研究方向為電路設(shè)計;

      王庭良(1979— ),學(xué)士,助理研究員,研究方向為通信與信息系統(tǒng);

      侯鎮(zhèn)鋒(1986— ),學(xué)士,研究實習(xí)員,研究方向為網(wǎng)絡(luò)及信息安全。

      ?? 雯

      2013-12-17

      【本文獻(xiàn)信息】劉仁貴,胡亮兵,侯成英,等.基于S3C6410的USB視頻壓縮、回放系統(tǒng)[J].電視技術(shù),2014,38(13).

      猜你喜歡
      解碼編碼器攝像頭
      浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
      《解碼萬噸站》
      攝像頭連接器可提供360°視角圖像
      解碼eUCP2.0
      中國外匯(2019年19期)2019-11-26 00:57:32
      NAD C368解碼/放大器一體機
      Quad(國都)Vena解碼/放大器一體機
      基于FPGA的同步機軸角編碼器
      基于PRBS檢測的8B/IOB編碼器設(shè)計
      JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
      電子器件(2015年5期)2015-12-29 08:42:24
      奔馳360°攝像頭系統(tǒng)介紹
      龙州县| 义马市| 秦皇岛市| 明水县| 盐山县| 稻城县| 简阳市| 铁岭县| 铁岭市| 镇安县| 芷江| 靖西县| 贵州省| 临夏市| 宕昌县| 正镶白旗| 太仆寺旗| 襄汾县| 湾仔区| 连州市| 禹城市| 天镇县| 屯门区| 交口县| 共和县| 祁东县| 赣州市| 陵水| 上犹县| 平山县| 从江县| 昔阳县| 石门县| 桦南县| 江北区| 玉龙| 康平县| 花莲县| 桑植县| 勃利县| 延安市|