0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ESM6802视频处理简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-06 10:47 次阅读

ESM6802是英创公司推出的基于Freescale i.MX6DL双核处理器(ARM Cortex-A9,主频1GHz)的高性能工控主板,imx6dl内部包含一个视频处理模块(VPU)可以支持多种视频格式的编解码,而开发板预装的Linux系统也提供了gstreamer以及Qt 5.8来给视频处理应用程序提供便捷的函数接口。本文将简单介绍VPU硬件模块以及gsteamer多媒体编程框架和Qt 5.8的多媒体处理模块。

1、多媒体文件简单介绍

多媒体文件通常有文件后缀如mp4、mkv等。这些后缀表明的是多媒体文件的container格式,也就是视频数据、音频数据、字幕数据的封装在一个文件中的封装格式。而视频数据、音频数据又有自己的编码格式,如视频常用的H264、MPEG4等以及音频常用的AC3、MP3等。编码格式才是不同多媒体文件之间的本质区别所在,在处理相关多媒体文件时必须有相应的编解码器才能进行。不同的编码能够提供不同的数据压缩水平以及数据恢复的质量,关于各种编码标准以及文件封装格式的详细信息用户可以自行查看相关资料,我们建议用户在使用中尽量使用H264编码的视频数据。

2、硬件资源介绍

imx6dl内部集成了一个高性能的、支持多种编解码格式的视频处理模块(VPU),支持最高1920x1080 60i或者30p分辨率的解码以及1920x1088分辨率的视频编码,使用VPU来处理视频不占用CPU资源,而且处理速度更快,在实际使用中应该尽量优化应用程序使用VPU来处理视频编解码相关操作。

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

关于支持的编解码格式的详细说明请参考后面Qt章节的详细列表或者文档《i.MX VPU Application Programming Interface Linux Reference Manual》,我们在此不再详细说明。

VPU提供了一套函数接口供程序调用,程序调用这些API函数向VPU发送命令以及相应的参数来达到控制VPU编解码的运行。由于Linux系统下面的视频处理编程框架有更加高级的gstreamer,而且imx6dl也提供了相应的gstreamer插件来使用VPU资源,我们不再详细介绍VPU提供的低级API函数,也不推荐用户使用这套API,不过有兴趣的用户可以自行参考《i.MX VPU Application Programming Interface Linux Reference Manual》。

3、GStreamer介绍

GStreamer是目前常用的流媒体处理编程框架,GStreamer提供一种基于插件的编程框架,他的核心部分只提供了支持框架之间的数据流、媒体格式的协商等基础功能,而对于流媒体的编解码以及流媒体内容的获取(如摄像头、网络、本地文件)等功能都由插件提供。在编程时可以将插件进行连接组合成一条流媒体处理流水线(pipeline),当流水线工作时,流媒体内容从第一个插件元素(element)一直流动到最后一个,各个插件元素完成自己的功能从而实现流媒体的处理。一个简单的ogg视频播放流水线示例如下图所示:

一个流水线内的元素包含了数据处理接口(pad),pad根据数据的流向又分为source pad和sink pad,如上图所示,source pad是生成数据的接口,而sink pad是接收数据的接口。每个接口都有自己能够接收或产生的数据格式的限制,称为cap capabilities,这些限制可以使用命令行工具gst-inspect-1.0进行查看,使用方法为:

gst-inspect-1.0 [选项...] [ELEMENT-NAME | PLUGIN-NAME]

如查看v4l2src,v4l2src是用于从摄像头采集数据的元素,命令输出部分结果如下:

上图中可以看到v4l2src有一个source pad,可以生成image/jpeg、video/mpeg、video/x-h264等格式的数据,在构建GStreamer流水线时,只有当两个元素的src pad和sink pad能够处理相同格式的数据时,才能将这两个元素连接起来。而对于像v4l2src这类的数据生成的元素,其支持的数据格式和最终能够产生的数据格式是不一样的,能够产生的数据格式是所支持的数据格式的一部分,受到摄像头硬件的限制,比如常见的USB摄像头只支持生成YUY2\jpeg格式,则使用此摄像头的v4l2src元素也就只能产生这两中格式的数据,在编程时要特别注意这点,避免错误的连接元素。

更多GStreamer基础知识请用户详细阅读GStreamer官网上的编程参考手册或其他相关知识,我们下面将介绍imx6dl所提供的特有的插件。

基于imx6dl内部视频处理模块VPU的GStreamer插件包括:

●vpudec: 基于VPU的视频解码插件

●vpuenc_h264: 基于VPU的AVC/H264视频编码插件

●vpuenc_h263: 基于VPU的H263视频编码插件

●vpuenc_mpeg4: 基于VPU的MPEG4视频编码插件

●vpuenc_jpeg: 基于VPU的JPEG视频编码插件

上面模块的编解码格式详细信息可以参考上一章VPU的介绍。

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

●overlaysink: 基于2D图形处理模块G2D的视频输出插件

●imxvideoconvert_g2d: 基于G2D的视频图像转换模块,包括图像颜色空间转换、改变大小、旋转

●imxvideoconvert_ipu: 基于图像处理模块ipu的图像转换模块

●imxcompositor_g2d: 基于G2D的视频编排模块

●imxcompositor_ipu: 基于IPU的视频编排模块,视频合成模块可以将多个视频编排成一个,并且编排同时支持颜色空间转换、改变大小、旋转、alpha(透明度)、z-order(用于图像重叠)。

这些插件在处理数据时都不会占用CPU资源,并且能提供高性能的数据处理,建议用户在应用程序中优先使用这些插件。每个插件都有支持的数据格式限制,用户可以使用gst-inspect-1.0命令进行查看,限于篇幅我们只展示vpuenc_h264的部分输出如下:

从输出可知,vpuenc_h264支持video/x-raw格式的视频输入,而且限制为NV12、I420、YV12颜色模式,以及分辨率为宽64~1920、长64~1088,帧率从每秒0帧到每秒2147483647帧,如果要使用vpuenc_h264进行视频文件编码,则前一级的GStreamer流水线元素必须提供限制内的数据格式,否则将无法正确编码,程序运行出错。用户在使用GStreamer插件之前需要先确认其支持的数据格式以及之前插件提供的输入的数据格式是否匹配,以免程序不能正常运行。

除了单独使用插件外,GStreamer还提供高级元素,元素内部自动识别文件格式调用相应的插件来完成数据处理,比如playbin、decodebin、camerabin等,这些元素能够自动使用上面所说的特定硬件的插件。这些元素能够简化程序的开发,但是程序也就不能详细配置某个特定的插件的属性了,程序少了灵活性,更多相关内容请自行参考GStreamer相关文档。

4、Qt 5.8多媒体处理模块

ESM6802文件系统已经移植了Qt 5.8,Qt的多媒体处理模块是基于GStreamer框架搭建的,用户在编写程序时可以调用Qt提供的API来进行视频处理,这样就可以在使用硬件资源(VPU、IPU、G2D等)的同时简化程序的复杂程度(不用自行搭建GStreamer流水线)。

关于Qt视频播放的介绍请参考我们官网的文章《ESM6802支持基于Qt的视频播放》。

关于Qt摄像头的程序请参考我们官网的文章《ESM6802支持Qt摄像头应用》。

由于Qt内部多用playbin、camerabin等高级元素来构建视频应用,应用灵活性有限,为了使程序能正确运行以及提高视频数据处理性能,对输入数据格式有一定限制。由之前两章的介绍可知,imx6dl硬件资源能够处理的多媒体格式是有限制的,在使用Qt进行视频播放时需要满足这些限制才能正确的使用特定的硬件资源,而不占用CPU资源,对于视频播放(解码)的限制格式如下:

• 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

对于摄像头应用,支持的编码输出格式为:

• 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)

而要使用这些硬件编码资源还需要摄像头输入数据满足如下格式:

video/x-raw

format: { NV12, I420, YV12 }

width: [ 64, 1920, 8 ]

height: [ 64, 1088, 8 ]

framerate: [ 0/1, 2147483647/1 ]

如果不能满足以上格式要求,Qt内部调用的GStreamer高级元素有可能会选取软件编解码插件来进行视频的处理,这样整个处理过程会占用大量的CPU资源,也有可能内部协商出错,不能正常处理视频,因此用户最好在编写应用时提供满足上面介绍的格式的视频数据。购买摄像头时尽量选择能够直接输出NV12、I420、YV12格式的摄像头,其他格式则需要自己构建GStreamer pipeline先进行数据格式的转换,Qt内部使用的camerabin不能正确处理这些。

更多视频处理相关的内容请关注我们后续的文章。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34618
收藏 人收藏

    评论

    相关推荐

    视频光纤矩阵:光纤技术视频处理的完美融合

    随着信息技术的飞速发展,视频传输和处理技术也在不断进步。在这个过程中,视频光纤矩阵作为一种融合光纤技术
    的头像 发表于 02-19 14:56 203次阅读

    阐述量子信息技术的研究现状与未来

    20世纪 80 年代, 科学家将量子力学应用到信息领域, 从而诞生了量子信息技术, 诸如量子计算机、量子密码、量子传感等. 这些技术的运行规律遵从量子力学, 因此不仅其原理是量子力学, 器件本身
    发表于 11-22 11:40 482次阅读
    阐述量子<b class='flag-5'>信息技术</b>的研究现状与未来

    信息技术是干什么?

    广播电子技术信息技术
    橙群微电子
    发布于 :2023年09月22日 09:17:48

    IEC发布“音视频信息技术和通信技术设备”新版与解析

    2023年5月26日,国际电工委员会(IEC)发布了IEC 62368-1:2023 (第四版)标准;该标准规定了商务和办公机器领域内使用音频、视频信息技术和通信技术的电气和电子设备(额定电压不超过600V)的安全要求(不包含
    的头像 发表于 09-15 14:22 625次阅读
    IEC发布“音<b class='flag-5'>视频</b>、<b class='flag-5'>信息技术</b>和通信<b class='flag-5'>技术</b>设备”新版与解析

    再次登榜|亿达科创入选“2023年度软件和信息技术服务竞争力百强企业”

    8月31日,在第二十五届中国国际软件博览会上,中国电子信息行业联合会发布了“2023年度软件和信息技术服务竞争力百强企业”榜单。 亿达科创凭借在企业规模、经营业绩、技术创新等方面的综合能力强
    的头像 发表于 09-12 16:29 516次阅读

    集成电路是现代电子信息技术的基础

    集成电路是现代电子信息技术的基础 随着科技的不断发展,集成电路技术已成为现代电子信息技术的基础之一。它的应用范围已经涉及到电子、通信、计算机、军事等行业,已经为人们的生活和工作带来了极大的便利
    的头像 发表于 08-29 16:25 1278次阅读

    信息技术促使轨道交通全面升级

    有别于传统的铁公路系统,新型基础建设强调的是将新一代的信息技术纳入基建领域,在未来的交通系统中,智能化、信息化的轨道交通系统网络,搭配5G等技术的发展,将是实现智能城市轨道交通的主要驱动力
    的头像 发表于 08-21 11:11 481次阅读

    2023年国家级高职学校信息技术教师能力培训会圆满举行

    2023年国家级高职学校信息技术教师能力培训会圆满举行
    的头像 发表于 07-31 22:56 391次阅读
    2023年国家级高职学校<b class='flag-5'>信息技术</b>教师能力培训会圆满举行

    中科驭数成为证券基金行业信息技术应用创新知识库首批合作厂商!

    7月20日,证券基金行业信息技术应用 创新中心与中国信息通信研究院携手合作,正式上线了行业信息技术应用创新知识库, 旨在做好对行业信息技术应用创新工作的支撑,加强产业侧和行业机构之间的
    的头像 发表于 07-21 18:50 325次阅读
    中科驭数成为证券基金行业<b class='flag-5'>信息技术</b>应用创新知识库首批合作厂商!

    寻迹智行上榜2023年相城区软件和信息技术服务业“雏雁”企业

    根据《相城区软件和信息技术服务业推动数字产业化发展“雏雁”企业评估规范》要求,经企业申报、板块推荐、形式审查、专家评审、实地走访等环节,共评选出2023年相城区软件和信息技术服务业“雏雁”企业34家,其中就包括苏州寻迹智行机器人技术
    的头像 发表于 06-28 15:51 292次阅读
    寻迹智行上榜2023年相城区软件和<b class='flag-5'>信息技术</b>服务业“雏雁”企业

    2023年中海达星推官系列直播再度启航,与您一起探讨空间信息技术

    信息技术
    中海达
    发布于 :2023年06月21日 11:45:49

    中科曙光参建国内首个信息技术领域产教融合共同体

    “新一代信息技术产业产教融合共同体”在京成立(简称“共同体”)。**该共同体是由中国电子学会联合国内信息技术行业重点职业院校与重点企业成立的。首批成员单位的11家新一代信息技术领域领先职业院校校长,以及9家行业知名企业领导共同出
    的头像 发表于 06-13 12:38 442次阅读

    IP6802:无线充电发射控制器支持 WPC 1.3 标准,拓展支持QI2.0

    IP6802:无线充电发射控制器简介IP6802是一款无线充电发射端控制SOC芯片,内部集成32位MCU、ADC、Timer、I2C、H桥驱动、ASK解调&解码以及丰富的IO资源,可以定制各类Qi
    发表于 06-06 12:53 4次下载

    权威榜单发布!“2022-2023信息技术应用创新榜”隆重揭晓

    2023年5月8日,由信息化观察网、信息技术应用创新榜组委会组织发起的“2022-2023信息技术应用创新榜”评审结果正式公示。本次榜单征集旨在全面展示信创发展最新成果,遴选出信创细分领域创新
    的头像 发表于 05-09 09:40 851次阅读

    用芯编码·智构视界丨2023第六届中国信息技术应用创新大会暨智能视频编码行业专题论坛圆满落幕!

    4月27日,由中国信息协会主办、涌现科技承办的2023第六届中国信息技术应用创新大会暨智能视频编码行业专题论坛在北京盛大开幕。大会以“用芯编码·智构视界”为主题,来自半导体、云视频、云
    的头像 发表于 05-05 13:48 438次阅读
    用芯编码·智构视界丨2023第六届中国<b class='flag-5'>信息技术</b>应用创新大会暨智能<b class='flag-5'>视频</b>编码行业专题论坛圆满落幕!