如何让RK3506流畅刷图,用好RGA?

描述

本文基于触觉智能RK3506核心板/开发板,介绍RGA IM2D进行图像处理,包括相关编译与测试方法。

开发板

 

 

RGA IM2D简介

 

  • RGA

RGA(Rockchip Graphics Accelerator,瑞芯微图形图像加速引擎)的 IM2D(Image 2D) 是 RK 系列芯片(如RK3506、RK3562、RK3576、RK3588等)中集成的 2D 图形加速模块,专注于高效处理图像缩放、格式转换、旋转、叠加等 2D 图形操作。

  • RGA应用场景

使用嵌入式系统的显示渲染、摄像头图像处理、UI 界面加速,如工业控制面板、智能家电、仪器仪表等。

 

编译RGA IM2D测试Demo

  • 测试Demo说明

Linux SDK默认已提供RGA相关测试demo,源码路径:

rk3506_linux6.1_rkr4_v1/external/linux-rga/samples/im2d_api_demo

 

  • 补丁

默认的RGA demo不支持在RK3506上测试,需要打入补丁:

cd /external/linux-rga/samples/

git apply rga.patch

 

  • 编译应用程序

配置工具链路径、名称:

rk3506_linux6.1_rkr4_v1/external/linux-rga/toolchains/toolchain_linux.cmake

 

开发板

 

进入源码目录进行编译:

cd /external/linux-rga/samples/im2d_api_demo/ ./cmake-linux.sh

开发板

编译生成的测试程序在目录: build/build_linux/rgaImDemo,将程序拷贝到开发板系统。

开发板

 

RGA功能测试

将如下路径的测试图像数据拷贝到开发板的/data目录下:

rk3506_linux6.1_rkr4_v1/external/linux-rga/samples/sample_file/

开发板

说明: in0w1280-h720-rgba8888.bin、 in1w1280-h720-rgba8888.bin

为RGBA8888格式二进制的源图像文件,分辨率默认为1280x720。

 

  • 测试说明

RGA 支持测试图像旋转、裁剪、填充、缩放等功能,下述仅演示部分常见图像处理功能,更详细的功能测试参考官方RGA文档,可联系触觉智能获取(客服134-2385-6106)。

 

  • 测试图像旋转功能

核心API接口参数:

IM_STATUS imrotate(const rga_buffer_t src,rga_buffer_t dst,int rotation,int sync = 1,int *release_fence_fd = NULL); #接口核心参数说明 src:输入图像缓存 dst:输出图像缓存 rotation:旋转角度

 

测试程序支持90° 、180°、270°旋转:

 

rgaImDemo --rotate=90 rgaImDemo --rotate=180 rgaImDemo --rotate=270 本次测试以旋转90°为例进行演示: ./rgaImDemo --rotate=90

 

开发板

使用ffmpeg工具将,RGB图像数据转.png图片格式查看旋转效果。

未处理前的图像:

开发板

旋转后的图像格式转换:

ffmpeg -f rawvideo -pixel_format rgba -video_size 720x1280 -i out0w1280-h720-rgba8888.bin output1.png

旋转效果后的图像:

开发板
  • 测试图像缩放功能

核心API接口参数:

IM_STATUS imresize(const rga_buffer_t src,rga_buffer_t dst,double fx = 0,double fy = 0,int interpolation = INTER_LINEAR,int sync = 1,int *release_fence_fd = NULL); #接口核心参数说明 src:输入图像缓存 dst:输出图像缓存 fx:X轴缩放系数 fy:y轴缩放系数

 

 

图像分辨率支持放大至1920x1080或缩小至720x480:

rgaImDemo --resize=up rgaImDemo --resize=down

 

参数说明:

up :图像分辨率放大至1920x1080

down :图像分辨率缩小至720x480

以将图像分辨率缩小至720x480分辨率为例进行演示:

./rgaImDemo --resize=down

开发板

缩放效果:

开发板
  • 测试图像颜色填充功能

核心API接口参数:

IM_STATUS imfill(rga_buffer_t dst,im_rect rect,int color,int sync = 1,int *release_fence_fd = NULL); #接口核心参数说明 dst:输出图像缓存 rect:填充颜色的区域 color:填充颜色

 

对指定矩形区域进行颜色填充,默认支持填充红、绿、蓝颜色,默认填充在坐标LT(100,100),RT(400,100),LB(100,400),RB(400,400)内的图像。

rgaImDemo --fill=blue rgaImDemo --fill=green rgaImDemo --fill=red 以填充蓝色为例进行演示: ./rgaImDemo --fill=blue

 

开发板

填充效果:

开发板

 

 

产品简介

触觉智能RK3506开发板/核心板,搭载瑞芯微RK3506B/RK3506J低功耗多核异构处理器(3核A7@1.5Ghz+M0,满载0.65W),双CAN FD、双网口、6路串口,最高支持-40℃~85℃严苛环境,百元内国产化方案助力工控、IoT与智能设备高效升级!

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分