本文基于觸覺智能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與智能設備高效升級!
-
開發板
+關注
關注
26文章
6161瀏覽量
114174 -
瑞芯微
+關注
關注
27文章
708瀏覽量
53628 -
核心板
+關注
關注
6文章
1354瀏覽量
31838 -
RK3506
+關注
關注
0文章
85瀏覽量
773
發布評論請先 登錄
米爾瑞芯微多核異構低功耗RK3506核心板重磅發布
【米爾RK3506國產開發板評測試用】開箱體體驗
RK3506各型號間有什么差異?
低成本解決方案,RK3506的應用場景分析!
瑞芯微RK3506開發板必備之LVGL應用開發手冊,深圳觸覺智能出品
米爾基于瑞芯微RK3506核心板開發板
瑞芯微RK3506 vs NXP i.MX6ULL
明遠智睿RK3506:嵌入式領域新標桿
RK3506開發板Linux開發板極致性價比之選
基于RK3506的監控系統

如何讓RK3506流暢刷圖,用好RGA?
評論