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

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

3天内不再提示

基于ARM支持实现MCU的高级视频图形功能

电子设计 来源:郭婷 作者:电子设计 2019-03-12 08:13 次阅读

需要高级视频图形功能的系统一直是实施的挑战。传统上,这些系统需要硬件功能和软件功能的复杂组合,以创建应用程序所需的必要的更高级别的视频和图形。最新的基于ARMMCU现在提供了一套全面的高级硬件功能,通常将常见的视频和图形标准作为独立模块实现,从而最大限度地减少了对这些硬件功能进行“硬编码”的需求。此外,广泛的基于ARM的生态系统提供了大量软件支持,用于实现常见的应用程序级功能(例如,轻松构建图形用户界面或GUI的应用程序),只需极少量的低级编码。广泛的参考设计和硬件平台允许设计人员利用制造商开发的例程来简化他们自己的自定义应用程序的创建。让我们看一下基于ARM的MCU系列中现有的一些新的视频硬件和软件功能。

三个关键要素:输入,处理和显示

将三个关键视频图形元素分成输入是很方便的,处理和显示。输入功能通常允许设备通过各种标准连接到各种传感器和摄像机。处理功能支持将一个标准转换为另一个标准,创建用于显示的多层图形对象(例如,作为GUI中的元素),以及用于创建具有深度和着色属性的对象的更复杂的函数。最后,显示功能将存储在内部存储器中的图形元素转换为可以传输到平板显示器或电视的数据。现在让我们使用基于ARM的示例MCU更详细地查看每个元素。

视频图形输入

大多数基于ARM的MCU都包含一个通用图像传感器的视频输入接口。这些接口通常使用标准格式(例如RGB或YCbCr)将视频输入存储到内部存储器中,该标准格式可以被处理然后显示在标准LCD面板上。 Atmel SAMA5D3系列基于ARM的MCU是一个很好的例子,它说明了一些所需的视频输入功能。主视频输入模块是图像传感器接口(ISI),使用两种常用方法连接到图像传感器:与垂直和水平同步信号的硬件同步,或国际电信联盟建议书(ITU-R)标准(如BT)。 601/656)。 BT.601/656的使用减少了引脚数,因为不需要垂直和水平信号,但灵活性不如通用的垂直和水平硬件同步模式。图像传感器数据由最多12位并行数据组成,支持高达2048 x 2048的分辨率。完整的输入数据路径如下图1所示。

基于ARM支持实现MCU的高级视频图形功能

图1:Atmel SAMA5D3 MCU的视频输入路径(由Atmel提供)。

时序信号和图像传感器输入数据显示在图的左侧。在图的中间底部显示了两个输入路径;一个用于预览路径,一个用于编解码器路径。可以格式化预览路径,以便直接在输出LCD面板上转换然后显示输入视频(可能是RGB格式)。 2D图像缩放器和像素格式器可用于实现简单的视频缩放和剪切。可以通过中断和DMA访问来支持完整路径,而根本不涉及CPU。如果需要视频处理,输入数据可以转换(例如,从RGB转换为YCbCr),并使用图1底部显示的编解码器路径以打包格式存储在存储器中.FIFO缓冲区和带散射聚集的AHB主机功能补充了数据输入功能。

使用中断和DMA传输管理数据路径的能力对于提高视频应用的效率至关重要。这使得ARM CPU可以专注于实现管理功能并为功能区分提供定制处理。 Atmel SAMA5D3是具有重要自主操作的设备的一个很好的例子,当处理效率至关重要时,您应该注意这一点。

在许多情况下,视频数据已经过压缩处理,需要以不同的格式捕获。例如,安全摄像机通常以压缩的JPEG格式提供视频数据,以减少传输视频数据所需的带宽。这可以降低接收端的功耗要求,并简化数据带宽要求。加密通常用于保护视频数据免受网络入侵。让我们考虑使用STMicroelectronics STM32F207 MCU作为目标平台的示例安全摄像头设计。

STM32F207数码相机输入是一个同步并行接口,能够从外部CMOS摄像头模块捕获高速图像数据。它支持常见的格式,如YCbCr4:2:2,RGB656,8/10/12/14位逐行扫描视频和JPEG。 JPEG在低功耗应用中很有用,因为它是压缩的,因此传输图像所需的带宽较少。 STM32F207在视频流的水平同步部分内接收JPEG视频,如图2所示。请注意,HSYNC信号的宽度根据每个JPEG数据包所需的数据量而变化。开始和结束时的指示由VSYNC信号限制,以便于识别。

基于ARM支持实现MCU的高级视频图形功能

图2:STM32F207上带摄像头输入的JPEG捕获(由STMicroelectronics提供)。

JPEG视频捕获数据后,使用DMA控制器将数据存储在内存中以减少CPU开销。在传输之前,视频数据被加密,使得视频难以被网络入侵者捕获或篡改(你经常看到安全视频数据在黑暗电影中被“黑客攻击”)。 STM32F207具有片上加密处理器,支持流行的加密标准,如Triple-DES和AES-256。加密处理器作为32位AHB外设访问,并支持DMA传输。随机数生成器和安全散列处理器也可用于添加身份验证功能,以便安全摄像头的命令和从摄像头传输的数据可以证明来自预期的来源。

一旦数据完全处理并准备好发送时,STM32F207有一个以太网控制器,支持使用符合IEEE 802.3标准的MII接口进行10/100数据传输,以连接到外部PHY。控制器还支持LAN唤醒帧,以便在等待以太网端口上的活动时可以使用低功耗模式。双2 KB FIFO(一个用于发送,一个用于接收)提供足够的缓冲存储,以保持高效率,从而降低功耗。 DMA用于传输以太网流量以及进一步降低CPU开销。普遍使用DMA将数据从输入,处理转移到传输,是低功耗视频实现中的常用技术,并且应该是任何设计中关键因素,其中功率效率是关键考虑因素。

视频图形处理

视频图形处理是高级ARM MCU和MPU近年来增加的复杂功能之一。 MPU特别增加了用于视频处理的硬件加速,旨在创建可包括实时视频的创新用户界面。将视频数据从一种格式转换为另一种格式,裁剪,缩放和颜色校正目标显示器的属性或改变照明条件的能力可以显着增强用户体验。飞思卡尔i.MX53xx具有片上2D图形处理单元(GPU)和独立的3D GPU。 2D GPU实现了针对OpenVG 1.0.1图形API和功能集的各种图形和视频处理功能。 3D GPU的目标是DirectX9着色和纹理,用于构建高级图形图像。

2D GPU在构建视觉上引人注目的UI方面特别有用,并且可以使用由3D GPU创建的图形元素。 2D GPU支持位图图形操作,例如BitBlt,填充和光栅化器操作,帧缓冲区最高可达2048 x 2048,采用全范围的源和目标位图格式(例如,从ARGB4444到ARGB8888)。提供了三个用于掩模,图案和alpha层的独立源位图,以简化复杂图形构造的实现。矢量图形引擎结合2D单元提供多边形和几何操作。 2D GPU的框图如下图3所示。

基于ARM支持实现MCU的高级视频图形功能

图3:飞思卡尔i.MX53xx MPU嵌入式2D GPU框图(由飞思卡尔提供)。

2D GPU接受命令流,如图3顶部所示。命令被分离并发送到2D单元或矢量图形单元。 2D单元通过存储器仲裁器对图形存储器上的像素,梯度,纹理和颜色进行操作。矢量单元还使用存储器仲裁器来访问图形存储器,从而生成并操作几何形状。仲裁器通过优先考虑和组合存储器操作来最大化带宽效率。

i.MX53视频图形系统的架构,具有单独的2D,矢量和3D单元并不罕见。拥有支持不同标准的独立块可以更轻松地创建特定于功能的驱动程序,中间件和更复杂的高级应用程序接口(API),从而使设计人员能够专注于他们的关键差异化因素,而不是花时间实施低级别的“家政“功能。很多时候,这些模块还支持低功耗模式,其中未使用的元件可以断电以显着降低功耗。当视频图形处理是您设计中的重要要求时,请寻找这些类型的功能。

视频图形输出

在某些应用中,不需要直接视频输入功能;但是,拥有视频输出功能至关重要。例如,手持式测试设备可能需要图形用户界面和生成视频输出的能力,以图形方式显示实时测试结果。这些类型的功能的常见示例可以在超声医疗设备,材料检查或电信频率测试中找到。恩智浦LPC4350双ARM内核MCU是非常适合这些应用的器件类型的一个很好的例子。恩智浦LPC4530的LCD面板输出控制器如下图4所示。

基于ARM支持实现MCU的高级视频图形功能

图4:恩智浦LPC4350双ARM内核MCU上的LCD输出(由恩智浦提供)。

系统界面帧缓冲器是通过图4中左侧所示的AHB主机实现的。控制器将像素编码数据转换为各种可能的显示设备所需的格式,包括单或双超扭曲向列(STN) )面板或薄膜晶体管TFT)彩色面板。支持320 x 240到1024 x 768的分辨率,TFT显示屏上每像素高达24位真彩色非托盘色。 245个条目乘以16位的RAM调色板可用于托盘化实现。请注意,当存在双面板时可以使用单独的DMA FIFO,或者当只有一个面板时可以组合使用单独的DMA FIFO。这有助于提高传输效率并降低CPU开销。包含硬件光标以简化图形用户界面(GUI)实现。

NXP LPC4350上提供的双ARM内核对于具有大型或复杂GUI功能的应用程序特别有用。其中一个ARM内核可专用于管理用户界面和测试数据的实时显示。这有助于将时间关键功能与不太关键的管理或处理功能分开。例如,数据处理的短暂延迟比数据显示期间的延迟(创建“参差不齐”和分散注意力的测试结果)更不明显。将CPU专用于键显示功能也有助于优化功率,因为当显示器未激活时可以将显示处理器置于低功率模式。您只需在需要更新显示器时唤醒CPU。

基于ARM的生态系统支持

ARM CPU的普及使用创建了一个非常强大的生态系统,支持与视频图形相关的功能。软件支持包括视频编解码器,用于构建GUI功能的工具,甚至高级视频处理功能。一个流行的用户界面(UI)构建器是Mentor Graphics的Inflexion UI。它支持拖放创建引人注目的用户界面,可以针对运行RTOS的应用程序,并可以使用目标设备的OpenGL硬件图形引擎来实现2D,2.5D或全3D效果。

另一个例子是来自Segger的emWin。 emWin中间件系统为图形LCD提供了高效的GUI。它以“C”源代码的形式提供,可在基于ARM的设备上轻松实现。该系统包括对小部件库,窗口管理器,渲染支持(具有图形库,基本字体和触摸/鼠标支持)以及输出和存储设备驱动程序的支持。这些只是ARM软件生态系统中许多图形和面向GUI的元素的两个例子。

硬件支持非常丰富,供应商和第三方提供可开发基于视频的应用程序的开发平台。飞思卡尔i.MX53器件具有完整的开发平台,可针对复杂的设计进行针对性的参考设计,例如无线摄像头接口,可视电话平台或更多通用开发平台。即使是用于i.MX53的简单入门套件,如MCIMX53-START-R-ND,也可用于评估i.MX53的一些高级视频图形功能,包括启动Linux,连接摄像头和驾驶LCD面板。

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

    关注

    9

    文章

    1143

    浏览量

    40742
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17149

    浏览量

    351216
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9097

    浏览量

    367586
收藏 人收藏

    评论

    相关推荐

    基于ARMMCU 视频图形处理方案

    2D GPU 接受命令流,如图 3 顶部所示。命令被分离并发送到 2D 单元或矢量图形单元。2D 单元通过内存仲裁器对图形内存上的像素、渐变、纹理和颜色进行操作。
    发表于 08-09 11:32 2142次阅读
    基于<b class='flag-5'>ARM</b>的<b class='flag-5'>MCU</b> <b class='flag-5'>视频</b><b class='flag-5'>图形</b>处理方案

    充电桩人机交互首选MCU:LCD驱动+图形加速器+丰富外设

    成本2. 先进的图形功能l支持高解析度(WXGA)l内置高速 2D图像加速器,实现高速图像处理(支持 OpenVG1.1)l
    发表于 10-10 13:48

    Arm Cortex-A32处理器高级SIMD和浮点支持技术参考手册

    Arm Cortex-A32 Cortex-ACortex‑A32处理器支持A32和T32指令集中的高级SIMD和浮点指令。 Cortex‑A32浮点实现: •不生成浮点异常。 •在硬
    发表于 08-02 14:50

    Advanced Simulation高级图形仿真

    Advanced Simulation高级图形仿真
    发表于 04-21 11:18 1151次阅读
    Advanced Simulation<b class='flag-5'>高级</b><b class='flag-5'>图形</b>仿真

    ARM实现无线视频点播系统

    ARM实现无线视频点播系统,有兴趣的同学可以下载学习
    发表于 05-04 15:48 0次下载

    ST Accordo5芯片让中低端汽车具有高端的图形和音视频功能

    最近,意法半导体公司(STMicroelectronics,简称ST)推出了一款Accordo 5汽车芯片,以低成本实现手机投屏,让中低端汽车具有高端的图形和音视频功能。Accordo
    发表于 12-23 10:55 2062次阅读

    基于ARM MCU实现先进的视频图形处理能力

    系统,需要先进的视频图形功能实现是一个挑战。传统上,这些系统需要一个复杂的硬件功能和软件功能
    发表于 06-08 09:36 2次下载
    基于<b class='flag-5'>ARM</b> <b class='flag-5'>MCU</b><b class='flag-5'>实现</b>先进的<b class='flag-5'>视频</b><b class='flag-5'>图形</b>处理能力

    基于汽车仪表盘中的高级图形功能应用

    目前使用的汽车仪表盘表现出一种明显的趋势,即从以前的机电式指针仪表过渡到侧重于图形显示的解决方案。本文将概述目前和未来使用的带有高级图形功能的汽车仪表盘。在这一新兴领域,由于受到电子消
    发表于 09-07 10:08 13次下载

    基于ARM视频监控终端的设计与实现

    和多媒体视频编解码技术的日益成熟,高性能、复杂的视频流压缩算法在嵌入式系统中的应用成为了现实。如今监控系统多采用专用处理器或RISC嵌入式处理器与DSP相结合的方法实现,本文探讨的是用ARM
    发表于 03-06 17:43 589次阅读

    如何使用FPGA和ARM设计和实现多路视频采集系统

    提出了一种基于FPGA+ARM的多路视频采集系统的设计与实现方法。该视频采集系统不仅能对多路快速变化的视频信号进行采集和处理,而且能应用为系
    发表于 11-19 15:51 21次下载
    如何使用FPGA和<b class='flag-5'>ARM</b>设计和<b class='flag-5'>实现</b>多路<b class='flag-5'>视频</b>采集系统

    MCU支持AI功能的多种原因

    近两年世界各大知名MCU厂商也都在陆续推出自家功能更强并支持AI功能MCU和MPU芯片,ARM
    发表于 02-08 16:55 11次下载
    <b class='flag-5'>MCU</b><b class='flag-5'>支持</b>AI<b class='flag-5'>功能</b>的多种原因

    RM0377_超低功耗 STM32L0x1 高级基于 Arm ® 的 32 位 MCU

    RM0377_超低功耗 STM32L0x1 高级基于 Arm ® 的 32 位 MCU
    发表于 11-23 08:20 2次下载
    RM0377_超低功耗 STM32L0x1 <b class='flag-5'>高级</b>基于 <b class='flag-5'>Arm</b> ® 的 32 位 <b class='flag-5'>MCU</b>

    RM0376_超低功耗STM32L0x2高级基于Arm ®的32位MCU

    RM0376_超低功耗STM32L0x2高级基于Arm ®的32位MCU
    发表于 11-23 08:20 2次下载
    RM0376_超低功耗STM32L0x2<b class='flag-5'>高级</b>基于<b class='flag-5'>Arm</b> ®的32位<b class='flag-5'>MCU</b>

    STM32G0x1基于ARM内核的32位高级MCU

    电子发烧友网站提供《STM32G0x1基于ARM内核的32位高级MCU.pdf》资料免费下载
    发表于 09-20 10:34 0次下载
    STM32G0x1基于<b class='flag-5'>ARM</b>内核的32位<b class='flag-5'>高级</b><b class='flag-5'>MCU</b>

    STM32F75xxx和STM32F74xxx基于ARM内核的32位高级MCU

    电子发烧友网站提供《STM32F75xxx和STM32F74xxx基于ARM内核的32位高级MCU.pdf》资料免费下载
    发表于 09-21 09:51 0次下载
    STM32F75xxx和STM32F74xxx基于<b class='flag-5'>ARM</b>内核的32位<b class='flag-5'>高级</b><b class='flag-5'>MCU</b>