0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)ESM6802視頻處理簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-06 10:47 ? 次閱讀

ESM6802是英創(chuàng)公司推出的基于Freescale i.MX6DL雙核處理器(ARM Cortex-A9,主頻1GHz)的高性能工控主板,imx6dl內(nèi)部包含一個(gè)視頻處理模塊(VPU)可以支持多種視頻格式的編解碼,而開發(fā)板預(yù)裝的Linux系統(tǒng)也提供了gstreamer以及Qt 5.8來給視頻處理應(yīng)用程序提供便捷的函數(shù)接口。本文將簡單介紹VPU硬件模塊以及gsteamer多媒體編程框架和Qt 5.8的多媒體處理模塊。

1、多媒體文件簡單介紹

多媒體文件通常有文件后綴如mp4、mkv等。這些后綴表明的是多媒體文件的container格式,也就是視頻數(shù)據(jù)、音頻數(shù)據(jù)、字幕數(shù)據(jù)的封裝在一個(gè)文件中的封裝格式。而視頻數(shù)據(jù)、音頻數(shù)據(jù)又有自己的編碼格式,如視頻常用的H264、MPEG4等以及音頻常用的AC3、MP3等。編碼格式才是不同多媒體文件之間的本質(zhì)區(qū)別所在,在處理相關(guān)多媒體文件時(shí)必須有相應(yīng)的編解碼器才能進(jìn)行。不同的編碼能夠提供不同的數(shù)據(jù)壓縮水平以及數(shù)據(jù)恢復(fù)的質(zhì)量,關(guān)于各種編碼標(biāo)準(zhǔn)以及文件封裝格式的詳細(xì)信息用戶可以自行查看相關(guān)資料,我們建議用戶在使用中盡量使用H264編碼的視頻數(shù)據(jù)。

2、硬件資源介紹

imx6dl內(nèi)部集成了一個(gè)高性能的、支持多種編解碼格式的視頻處理模塊(VPU),支持最高1920x1080 60i或者30p分辨率的解碼以及1920x1088分辨率的視頻編碼,使用VPU來處理視頻不占用CPU資源,而且處理速度更快,在實(shí)際使用中應(yīng)該盡量優(yōu)化應(yīng)用程序使用VPU來處理視頻編解碼相關(guān)操作。

VPU能夠解碼的視頻格式為:

●H.264 BP/MP/HP

●VC-1 SP/MP/AP

●MPEG-4 SP/ASP (不包括GMC)

●DivX(Xvid)

●MPEG-1/2

●VP8

●AVS

●MJPEG

VPU支持的編碼格式為:

●H.264

●MPEG-4

●H.263

●MJPG

關(guān)于支持的編解碼格式的詳細(xì)說明請(qǐng)參考后面Qt章節(jié)的詳細(xì)列表或者文檔《i.MX VPU Application Programming Interface Linux Reference Manual》,我們?cè)诖瞬辉僭敿?xì)說明。

VPU提供了一套函數(shù)接口供程序調(diào)用,程序調(diào)用這些API函數(shù)向VPU發(fā)送命令以及相應(yīng)的參數(shù)來達(dá)到控制VPU編解碼的運(yùn)行。由于Linux系統(tǒng)下面的視頻處理編程框架有更加高級(jí)的gstreamer,而且imx6dl也提供了相應(yīng)的gstreamer插件來使用VPU資源,我們不再詳細(xì)介紹VPU提供的低級(jí)API函數(shù),也不推薦用戶使用這套API,不過有興趣的用戶可以自行參考《i.MX VPU Application Programming Interface Linux Reference Manual》。

3、GStreamer介紹

GStreamer是目前常用的流媒體處理編程框架,GStreamer提供一種基于插件的編程框架,他的核心部分只提供了支持框架之間的數(shù)據(jù)流、媒體格式的協(xié)商等基礎(chǔ)功能,而對(duì)于流媒體的編解碼以及流媒體內(nèi)容的獲?。ㄈ鐢z像頭、網(wǎng)絡(luò)、本地文件)等功能都由插件提供。在編程時(shí)可以將插件進(jìn)行連接組合成一條流媒體處理流水線(pipeline),當(dāng)流水線工作時(shí),流媒體內(nèi)容從第一個(gè)插件元素(element)一直流動(dòng)到最后一個(gè),各個(gè)插件元素完成自己的功能從而實(shí)現(xiàn)流媒體的處理。一個(gè)簡單的ogg視頻播放流水線示例如下圖所示:

一個(gè)流水線內(nèi)的元素包含了數(shù)據(jù)處理接口(pad),pad根據(jù)數(shù)據(jù)的流向又分為source pad和sink pad,如上圖所示,source pad是生成數(shù)據(jù)的接口,而sink pad是接收數(shù)據(jù)的接口。每個(gè)接口都有自己能夠接收或產(chǎn)生的數(shù)據(jù)格式的限制,稱為cap capabilities,這些限制可以使用命令行工具gst-inspect-1.0進(jìn)行查看,使用方法為:

gst-inspect-1.0 [選項(xiàng)...] [ELEMENT-NAME | PLUGIN-NAME]

如查看v4l2src,v4l2src是用于從攝像頭采集數(shù)據(jù)的元素,命令輸出部分結(jié)果如下:

上圖中可以看到v4l2src有一個(gè)source pad,可以生成image/jpeg、video/mpeg、video/x-h264等格式的數(shù)據(jù),在構(gòu)建GStreamer流水線時(shí),只有當(dāng)兩個(gè)元素的src pad和sink pad能夠處理相同格式的數(shù)據(jù)時(shí),才能將這兩個(gè)元素連接起來。而對(duì)于像v4l2src這類的數(shù)據(jù)生成的元素,其支持的數(shù)據(jù)格式和最終能夠產(chǎn)生的數(shù)據(jù)格式是不一樣的,能夠產(chǎn)生的數(shù)據(jù)格式是所支持的數(shù)據(jù)格式的一部分,受到攝像頭硬件的限制,比如常見的USB攝像頭只支持生成YUY2\jpeg格式,則使用此攝像頭的v4l2src元素也就只能產(chǎn)生這兩中格式的數(shù)據(jù),在編程時(shí)要特別注意這點(diǎn),避免錯(cuò)誤的連接元素。

更多GStreamer基礎(chǔ)知識(shí)請(qǐng)用戶詳細(xì)閱讀GStreamer官網(wǎng)上的編程參考手冊(cè)或其他相關(guān)知識(shí),我們下面將介紹imx6dl所提供的特有的插件。

基于imx6dl內(nèi)部視頻處理模塊VPU的GStreamer插件包括:

●vpudec: 基于VPU的視頻解碼插件

●vpuenc_h264: 基于VPU的AVC/H264視頻編碼插件

●vpuenc_h263: 基于VPU的H263視頻編碼插件

●vpuenc_mpeg4: 基于VPU的MPEG4視頻編碼插件

●vpuenc_jpeg: 基于VPU的JPEG視頻編碼插件

上面模塊的編解碼格式詳細(xì)信息可以參考上一章VPU的介紹。

基于其他硬件模塊的插件包括:

●overlaysink: 基于2D圖形處理模塊G2D的視頻輸出插件

●imxvideoconvert_g2d: 基于G2D的視頻圖像轉(zhuǎn)換模塊,包括圖像顏色空間轉(zhuǎn)換、改變大小、旋轉(zhuǎn)

●imxvideoconvert_ipu: 基于圖像處理模塊ipu的圖像轉(zhuǎn)換模塊

●imxcompositor_g2d: 基于G2D的視頻編排模塊

●imxcompositor_ipu: 基于IPU的視頻編排模塊,視頻合成模塊可以將多個(gè)視頻編排成一個(gè),并且編排同時(shí)支持顏色空間轉(zhuǎn)換、改變大小、旋轉(zhuǎn)、alpha(透明度)、z-order(用于圖像重疊)。

這些插件在處理數(shù)據(jù)時(shí)都不會(huì)占用CPU資源,并且能提供高性能的數(shù)據(jù)處理,建議用戶在應(yīng)用程序中優(yōu)先使用這些插件。每個(gè)插件都有支持的數(shù)據(jù)格式限制,用戶可以使用gst-inspect-1.0命令進(jìn)行查看,限于篇幅我們只展示vpuenc_h264的部分輸出如下:

從輸出可知,vpuenc_h264支持video/x-raw格式的視頻輸入,而且限制為NV12、I420、YV12顏色模式,以及分辨率為寬64~1920、長64~1088,幀率從每秒0幀到每秒2147483647幀,如果要使用vpuenc_h264進(jìn)行視頻文件編碼,則前一級(jí)的GStreamer流水線元素必須提供限制內(nèi)的數(shù)據(jù)格式,否則將無法正確編碼,程序運(yùn)行出錯(cuò)。用戶在使用GStreamer插件之前需要先確認(rèn)其支持的數(shù)據(jù)格式以及之前插件提供的輸入的數(shù)據(jù)格式是否匹配,以免程序不能正常運(yùn)行。

除了單獨(dú)使用插件外,GStreamer還提供高級(jí)元素,元素內(nèi)部自動(dòng)識(shí)別文件格式調(diào)用相應(yīng)的插件來完成數(shù)據(jù)處理,比如playbin、decodebin、camerabin等,這些元素能夠自動(dòng)使用上面所說的特定硬件的插件。這些元素能夠簡化程序的開發(fā),但是程序也就不能詳細(xì)配置某個(gè)特定的插件的屬性了,程序少了靈活性,更多相關(guān)內(nèi)容請(qǐng)自行參考GStreamer相關(guān)文檔。

4、Qt 5.8多媒體處理模塊

ESM6802文件系統(tǒng)已經(jīng)移植了Qt 5.8,Qt的多媒體處理模塊是基于GStreamer框架搭建的,用戶在編寫程序時(shí)可以調(diào)用Qt提供的API來進(jìn)行視頻處理,這樣就可以在使用硬件資源(VPU、IPU、G2D等)的同時(shí)簡化程序的復(fù)雜程度(不用自行搭建GStreamer流水線)。

關(guān)于Qt視頻播放的介紹請(qǐng)參考我們官網(wǎng)的文章《ESM6802支持基于Qt的視頻播放》。

關(guān)于Qt攝像頭的程序請(qǐng)參考我們官網(wǎng)的文章《ESM6802支持Qt攝像頭應(yīng)用》。

由于Qt內(nèi)部多用playbin、camerabin等高級(jí)元素來構(gòu)建視頻應(yīng)用,應(yīng)用靈活性有限,為了使程序能正確運(yùn)行以及提高視頻數(shù)據(jù)處理性能,對(duì)輸入數(shù)據(jù)格式有一定限制。由之前兩章的介紹可知,imx6dl硬件資源能夠處理的多媒體格式是有限制的,在使用Qt進(jìn)行視頻播放時(shí)需要滿足這些限制才能正確的使用特定的硬件資源,而不占用CPU資源,對(duì)于視頻播放(解碼)的限制格式如下:

? H.264

? Fully compatible with the ITU-T Recommendation H.264 specification in BP/MP and HP

? CABAC/CAVLC

? Supports MVC Stereo High profile

? Variable block size-16x16, 16x8, 8x16, 8x8, 8x4, 4x8 and 4x4

? Error detection, concealment and error resilience tools

? VC1

? All VC-1 profile features-SMPTE Proposed SMPTE Standard for Television: VC-1 Compressed Video Bitstream format and Decoding Process

? Simple/Main/Advanced Profile

? MPEG-4

? Simple/Advanced Simple profile except GMC

? H.263 Baseline profile + Annex I, J, K (except RS/ASO), and T

? DivX version 3.x to 6.x

? Xvid

? MPEG-2

? Fully compatible with ISO/IEC 13182-2 MPEG2 specification in main profile

? I,P and B frame

? Field coded picture (interlaced) and fame coded picture

? AVS

? Supports Jizhun profile level 6.2 (exclude 422 use case)

? VP8

? Fully compatible with VP8 decoder specification

? Supporting both simple and normal in-loop deblocking

? 64x64 pixel minimum decoding size

對(duì)于攝像頭應(yīng)用,支持的編碼輸出格式為:

? H.264

? 1/4-pel accuracy motion estimation with programmable search range up to [+/-128, +/-64]

? Search range is reconfigurable by SW

? 16x16, 16x8, 8x16 and 8x8 block sizes

? Configurable block sizes

? Only one reference frame for motion estimation

? Intra-prediction

? Luma I4x4 Mode : 9 modes

? Luma I16x16 Mode : 3 modes (Vertical, Horizon, DC)

? Chroma Mode : 3 modes (Vertical, Horizon, DC)

? Minimum encoding image size is 96 pixels in horizontal and 16 pixels in vertical

? FMO/ASO tool of H.264 is not supported

? MPEG-4

? AC/DC prediction

? 1/2-pel accuracy motion estimation with search range up to [+/-128, +/-64]

? Search range is reconfigurable by SW

? H.263

? H.263 Baseline profile + Annex J, K (RS=0 and ASO=0), and T

? 48x32 pixel minimum encoding image size (48 pixels horizontal and 32 pixels vertical)

而要使用這些硬件編碼資源還需要攝像頭輸入數(shù)據(jù)滿足如下格式:

video/x-raw

format: { NV12, I420, YV12 }

width: [ 64, 1920, 8 ]

height: [ 64, 1088, 8 ]

framerate: [ 0/1, 2147483647/1 ]

如果不能滿足以上格式要求,Qt內(nèi)部調(diào)用的GStreamer高級(jí)元素有可能會(huì)選取軟件編解碼插件來進(jìn)行視頻的處理,這樣整個(gè)處理過程會(huì)占用大量的CPU資源,也有可能內(nèi)部協(xié)商出錯(cuò),不能正常處理視頻,因此用戶最好在編寫應(yīng)用時(shí)提供滿足上面介紹的格式的視頻數(shù)據(jù)。購買攝像頭時(shí)盡量選擇能夠直接輸出NV12、I420、YV12格式的攝像頭,其他格式則需要自己構(gòu)建GStreamer pipeline先進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換,Qt內(nèi)部使用的camerabin不能正確處理這些。

更多視頻處理相關(guān)的內(nèi)容請(qǐng)關(guān)注我們后續(xù)的文章。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11342

    瀏覽量

    210245
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35549
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    龍芯中科榮獲2024年度信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位

    近日,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)(以下簡稱“信創(chuàng)工委會(huì)”)在北京召開2024年度工作總結(jié)座談會(huì)暨信創(chuàng)“大比武”總結(jié)大會(huì)。中國工程院院士、信
    的頭像 發(fā)表于 01-23 10:50 ?147次閱讀

    芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位

    日前,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)(以下簡稱 “信創(chuàng)工委會(huì)”)2024 年度總結(jié)座談會(huì)于北京隆重舉行。此次會(huì)議對(duì)在信創(chuàng)工作中作出突出貢獻(xiàn)的成員單位予以表彰。江蘇
    的頭像 發(fā)表于 01-20 09:56 ?143次閱讀

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?190次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?209次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?277次閱讀

    拓維信息參與牽頭組建!長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體正式獲批

    的長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體成功獲批,為長沙市信息技術(shù)產(chǎn)業(yè)發(fā)展注入了新的活力。圖/《2024年長沙市市級(jí)市域產(chǎn)教聯(lián)合體名單》長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體將依托龍頭企
    的頭像 發(fā)表于 12-07 01:06 ?464次閱讀
    拓維<b class='flag-5'>信息</b>參與牽頭組建!長沙新一代<b class='flag-5'>信息技術(shù)</b>產(chǎn)教聯(lián)合體正式獲批

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強(qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?545次閱讀

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?494次閱讀

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?485次閱讀

    集芯IP6802:至為芯設(shè)計(jì)的一站式無線充電soc解決方案應(yīng)用芯片

    設(shè)計(jì)的無線充電解決方案采用了集芯的IP6802。作為該方案的核心部件,IP6802不僅擁有高效的無線充電功能,還具備了靈活的定制能力,能夠根據(jù)客戶的需求進(jìn)行個(gè)性
    的頭像 發(fā)表于 08-02 16:40 ?500次閱讀
    <b class='flag-5'>英</b>集芯IP<b class='flag-5'>6802</b>:至為芯設(shè)計(jì)的一站式無線充電soc解決方案應(yīng)用芯片

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評(píng)選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?1007次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù)

    電子發(fā)燒友網(wǎng)站提供《RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 02-21 14:22 ?1次下載
    RX78M組  EtherCAT ETG.5003示例程序固件<b class='flag-5'>信息技術(shù)</b>

    視頻光纖矩陣:光纖技術(shù)視頻處理的完美融合

    隨著信息技術(shù)的飛速發(fā)展,視頻傳輸和處理技術(shù)也在不斷進(jìn)步。在這個(gè)過程中,視頻光纖矩陣作為一種融合光纖技術(shù)
    的頭像 發(fā)表于 02-19 14:56 ?723次閱讀

    視頻光纖矩陣技術(shù)的發(fā)展趨勢(shì):更快、更穩(wěn)定、更高效

    隨著信息技術(shù)的迅猛發(fā)展,視頻光纖矩陣技術(shù)作為高清視頻傳輸與處理的核心技術(shù),正迎來其發(fā)展的黃金時(shí)期
    的頭像 發(fā)表于 02-19 14:44 ?386次閱讀

    軟通動(dòng)力與捷創(chuàng)技術(shù)簽訂戰(zhàn)略合作協(xié)議

    近日,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱“軟通動(dòng)力”)與寧波捷創(chuàng)技術(shù)股份有限公司(以下簡稱“捷創(chuàng)技術(shù)”)正式簽訂戰(zhàn)略合作協(xié)議,并
    的頭像 發(fā)表于 02-03 16:35 ?1151次閱讀