G2D图像处理硬件调用和测试-基于米尔-全志T113-i国产开发板

发布者:EE小广播最新更新时间:2024-04-10 来源: EEWORLD关键字:米尔  核心板  开发板 手机看文章 扫描二维码
随时随地手机看文章

概述:


  • MYC-YT113i核心板及开发板

  • 真正的国产核心板,100%国产物料认证

  • 国产T113-i处理器配备2*Cortex-A7@1.2GHz ,RISC-V

  • 外置DDR3接口、支持视频编解码器、HiFi4 DSP

  • 接口丰富:视频采集接口、显示器接口、USB2.0 接口、CAN 接口、千兆以太网接口

  • 工业级:-40℃~+85℃、尺寸37mm*39mm

  • 邮票孔+LGA,140+50PIN


米尔-全志T113-i国产核心板

米尔-全志T113-i国产开发板


全志 T113-i 2D图形加速硬件支持情况


Supports layer size up to 2048 x 2048 pixels

Supports pre-multiply alpha image data

Supports color key

Supports two pipes Porter-Duff alpha blending

Supports multiple video formats 4:2:0, 4:2:2, 4:1:1 and multiple pixel formats (8/16/24/32 bits graphics

layer)

Supports memory scan order option

Supports any format convert function

Supports 1/16× to 32× resize ratio

Supports 32-phase 8-tap horizontal anti-alias filter and 32-phase 4-tap vertical anti-alias filter

Supports window clip

Supports FillRectangle, BitBlit, StretchBlit and MaskBlit

Supports horizontal and vertical flip, clockwise 0/90/180/270 degree rotate for normal buffer

Supports horizontal flip, clockwise 0/90/270 degree rotate for LBC buffer



可以看到 g2d 硬件支持相当多的2D图像处理,包括颜色空间转换,分辨率缩放,图层叠加,旋转等。


备注:本文不具体介绍代码


  1. 开发环境配置


    基础开发环境搭建参考上上一篇


    除了工具链外,我们使用 opencv-mobile 加载输入图片和保存结果,用来查看颜色转换是否正常
    g2d硬件直接采用标准的 Linux ioctl 操纵,只需要引入相关结构体定义即可,无需链接so
    此外,g2d的输入和输出数据必须在dmaion buffer上,因此还需要dmaion.h头文件,用来分配和释放dmaion buffer
    https://github.com/MYIR-ALLWINNER/framework/blob/develop-yt113-framework/auto/sdk_lib/include/DmaIon.h

  2. 基于C语言实现的YUV转RGB
    这里复用之前T113-i JPG解码的函数

  3. 基于ARM neon指令集优化的YUV转RGB
    考虑到armv7编译器的自动neon优化能力较差,这里针对性的编写 arm neon inline assembly 实现YUV2RGB内核部分,达到最优化的性能,榨干cpu性能。

  4. 基于G2D图形硬件的YUV转RGB
    我们先实现 dmaion buffer 管理器,参考
    https://github.com/MYIR-ALLWINNER/framework/blob/develop-yt113-framework/auto/sdk_lib/sdk_memory/DmaIon.cpp
    这里贴的代码省略了异常错误处理的逻辑,有个坑是 linux-4.9 和 linux-5.4 用法不一样,米尔电子的这个T113-i系统是linux-5.4,所以不兼容4.9内核的ioctl用法习惯。

  5. 然后再实现 G2D图形硬件 YUV转RGB 的转换器

  • 提前分配好YUV和RGB的dmaion buffer

  • 将YUV数据拷贝到dmaion buffer,flush cache完成同步

  • 配置转换参数,ioctl调用G2D_CMD_BITBLT_H完成转换

  • flush cache完成同步,从dmaion buffer拷贝出RGB数据

  • 释放dmaion buffer

G2D图像硬件YUV转RGB测试
考虑到dmaion buffer分配和释放都比较耗时,我们提前做好,循环调用步骤3的G2D转换,统计耗时,并在top工具中查看CPU占用率
sh-4.4# LD_LIBRARY_PATH=. ./g2dtest
INFO   : cedarc



  1. 转换结果对比和分析



    C和neon的转换结果完全一致,但是g2d转换后的图片有明显的色差


    G2D图形硬件只支持 G2D_BT601,G2D_BT709,G2D_BT2020 3种YUV系数,而JPG所使用的YUV系数是改版BT601,因此产生了色差。


    从g2d内核驱动中也可以得知,暂时没有方法为g2d设置自定义的YUV系数,g2d不适合用于JPG的编解码,但依然适合摄像头和视频编解码的颜色空间转换


    关键字:米尔  核心板  开发板 引用地址:G2D图像处理硬件调用和测试-基于米尔-全志T113-i国产开发板

    上一篇:BeagleBoard创始人谈人工智能和开源硬件
    下一篇:树莓派边缘AI相机在Embedded World 2024上亮相

    推荐阅读最新更新时间:2024-11-07 13:16

    米尔带您认识“创新性LGA封装核心板
    LGA:Land Grid Array,栅格阵列封装。 种封装技术相比之前的“金属触点式封装”有很多优点,所以,很快就普及了。 随着市场需求的不断变化,在单芯片上使用LGA封装技术已经不能满足需求了,于是,出现了将多种芯片和器件通过LGA封装在一起的模块。比如之前给大家分享的米尔电子LGA封装的核心板。 米尔LGA封装核心板目前米尔电子基于多款MCU/MPU做了LGA封装的核心板: 市面上做类似LGA封装核心板的厂家很多,但米尔电子LGA封装的核心板还是很有特点,可以说做到了“创新性设计”: LCC/LGA封装设计:更稳定可靠的信号连接,更好的抗震动,便于量产批量贴片。 屏蔽罩设计:抗信号干扰和防灰尘
    [嵌入式]
    <font color='red'>米尔</font>带您认识“创新性LGA封装<font color='red'>核心板</font>“
    OK6410A 开发板 (三) 17 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 串口
    u-boot 阶段 lowlevel_init 调用了以下函数 实现了 putc ,但不支持 printf spl_config_uart_baudrate uart_asm_init asm_putc board_init_f 调用了以下函数,完成后,支持printf initf_dm init_baud_rate // 查找 环境变量 baudrate gd- baudrate = env_get_ulong( baudrate , 10, 115200); serial_init // 重新设置了一下波特率 serial_find_console_or_panic g
    [单片机]
    KC-101 51/AVR单片机最小系统核心板产品说明
    “增强型51实验板”、“51单片机综合学习系统”推出后,由于其操作简单、学习方便,深受广大用户的好评与信赖,我们也收到了广大用户的建议及反馈,为感谢大家对我们的支持和关心,现在,我们根据数年的教学经验积累,将51单片机的常用功能进行了模块化的处理,将推出一系列功能新颖而实用的单片机学习模块,以针对不同的使用群体,特别考虑到了学生朋友,降低了成本和价格,让大家都用得起,学得起单片机技术。我们可以为用户提供成品板或散件供自己焊接组装。 KC-101为51单片机最小系统核心板,它包括了51单片机的复位电路、振荡电路所组成的最小系统单元,同时提供了单片机32个P口的LED状态指示灯,将用户在学习和调试程序时能够直观地实时观察各P口的电平
    [单片机]
    KC-101 51/AVR单片机最小系统<font color='red'>核心板</font>产品说明
    Android在TQ2440开发板上的移植
    一、目前进展 1.Android已经可以通过NFS在TQ2440开发板上运行 最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经实现,大家可以从: http://d.namipan.com/d/b64ce43b2388e5e1f66af181 49824b98cd13b926c4921f02 下载文件系统试试,改天整理一下,发个详细的移植过程和注意事项。 网络设置: route add default gw 192.168.1.1 dev eth0 setprop net.dns1 202.120.223.5 1.使用ADB Ubuntu: export ADBHOST=19
    [单片机]
    米尔电子联合恩智浦推出MYC-Y6ULX系列核心板,批量价格99元起
    恩智浦i.MX6ULL系列芯片是一个高性能、低功耗、高性价比处理器系列,其基于ARM Cortex-A7内核,主频可达900MHz。i.MX 6ULL应用处理器包括一个集成的电源管理模块,可以省掉外部的PMU,降低了外接电源的复杂性,并简化了上电时序。这个系列的每个处理器提供多种存储器接口,其中包括16位LPDDR2、DDR3、DDR3L、NAND闪存、NOR闪存、eMMC、Quad SPI和各种其他接口,用于连接外围设备,如WLAN、Bluetooth®、GPS、显示器和摄像头传感器。 为了加速基于NXP i.MX6ULL及i.MX6UL芯片的产品设计,米尔电子联合恩智浦推出了高质量和高性价比核心平台MYC-Y6ULX系列核心
    [嵌入式]
    <font color='red'>米尔</font>电子联合恩智浦推出MYC-Y6ULX系列<font color='red'>核心板</font>,批量价格99元起
    STM32F4开发板----ADC(005)
    ADC的认识 1 ADC初始化参数 /* Exported types ------------------------------------------------------------*/ /** * @brief ADC Init structure definition */ typedef struct { uint32_t ADC_Resolution; /*! Configures the ADC resolution dual mode. This parameter can be a value of @ref ADC_resolution */
    [单片机]
    联盛德W806开发板简单入门使用之第一个点灯代码
    联盛德W806开发板简单入门使用 就是介个紫色的小板板,长这个样子: 相信大家买到的应该 也是这个吧! 简单介绍: 联盛德W806使用的是平头哥内核(算是一款比较好的芯片,个人使用还算是不错的,起码有WIFI,蓝牙等其他的功能)在使用的时候可以当作一块STM32的开发板来使用,当然也可以将它当作树莓派之类的来使用,这个取决于个人的玩法,只是一个平台,一个工具,关于它的介绍这里就不再过多的赘述了,感兴趣的朋友可以自行某度某宝某音进行详细的介绍。 所需工具: 1,CDK的编译环境(安装直接下一步就行了,选择安装目录最好选择在C盘意外的盘新建一个英文名字的文件夹,安装的时候就选择这一个文件夹就行了。一定是纯英文路径!一定是纯
    [单片机]
    联盛德W806<font color='red'>开发板</font>简单入门使用之第一个点灯代码
    小广播
    最新嵌入式文章
    何立民专栏 单片机及嵌入式宝典

    北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved