795|0

116

帖子

4

TA的资源

一粒金砂(中级)

楼主
 

G2D图像处理硬件调用和测试-基于米尔-全志T113-i开发板 [复制链接]

 

本篇测评由电子工程世界的优秀测评者“jf_99374259”提供。


本文将介绍基于米尔电子MYD-YT113i开发板的G2D图像处理硬件调用和测试。

 

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 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图像处理,包括颜色空间转换,分辨率缩放,图层叠加,旋转等

 

开发环境配置

基础开发环境搭建参考上上上一篇
https://bbs.elecfans.com/jishu_2408808_1_1.html
除了工具链外,我们使用 opencv-mobile 加载输入图片和保存结果,用来查看颜色转换是否正常
g2d硬件直接采用标准的 Linux ioctl 操纵,只需要引入相关结构体定义即可,无需链接so
链接已隐藏,如需查看请登录或者注册
此外,g2d的输入和输出数据必须在dmaion buffer上,因此还需要dmaion.h头文件,用来分配和释放dmaion buffer
链接已隐藏,如需查看请登录或者注册

 

基于C语言实现的YUV转RGB

这里复用之前T113-i JPG解码的函数

 

基于ARM neon指令集优化的YUV转RGB

考虑到armv7编译器的自动neon优化能力较差,这里针对性的编写 arm neon inline assembly 实现YUV2RGB内核部分,达到最优化的性能,榨干cpu性能

 

基于G2D图形硬件的YUV转RGB

我们先实现 dmaion buffer 管理器,参考

EEWORLDLINKTK1

这里贴的代码省略了异常错误处理的逻辑,有个坑是 linux-4.9 和 linux-5.4 用法不一样,米尔电子的这个T113-i系统是linux-5.4,所以不兼容4.9内核的ioctl用法习惯

 

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

  1. 提前分配好YUV和RGB的dmaion buffer

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

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

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

  5. 释放dmaion buffer

 

G2D图像硬件YUV转RGB测试

考虑到dmaion buffer分配和释放都比较耗时,我们提前做好,循环调用步骤3的G2D转换,统计耗时,并在top工具中查看CPU占用率

 

可以看到 ARM neon 的优化效果非常明显,而使用G2D图形硬件能获得进一步加速,并且能显著降低CPU占用率!

  耗时(ms) CPU占用率(%)
C 41.30 50
neon 6.77 50
g2d 4.32 12

 

 

转换结果对比和分析

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

 

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

链接已隐藏,如需查看请登录或者注册

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

点赞 关注
个人签名

米尔电子,专注嵌入式处理器

 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表