# RGA IM2D API 开发指南
文件标识:RK-PC-YF-0002
发布版本:V2.1.0
日期:2022-01-20
文件密级:□绝密 □秘密 □内部资料 ■公开
---
**免责声明**
本文档按“现状”提供,瑞芯微电子股份有限公司(“本公司”,下同)不对本文档的任何陈述、信息和内容的准确性、可靠性、完整性、适销性、特定目的性和非侵权性提供任何明示或暗示的声明或保证。本文档仅作为使用指导的参考。
由于产品版本升级或其他原因,本文档将可能在未经任何通知的情况下,不定期进行更新或修改。
**商标声明**
“Rockchip”、“瑞芯微”、“瑞芯”均为本公司的注册商标,归本公司所有。
本文档可能提及的其他所有注册商标或商标,由其各自拥有者所有。
**版权所有** **© 2022 **瑞芯微电子股份有限公司**
超越合理使用范畴,非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
瑞芯微电子股份有限公司
Rockchip Electronics Co., Ltd.
地址: 福建省福州市铜盘路软件园A区18号
网址: [www.rock-chips.com](http://www.rock-chips.com)
客户服务电话: +86-4007-700-590
客户服务传真: +86-591-83951833
客户服务邮箱: [fae@rock-chips.com](mailto:fae@rock-chips.com)
---
**读者对象**
本文档主要适用于以下工程师:
- 技术支持工程师
- 软件开发工程师
**修订记录**
| **日期** | **版本** | **作者** | **修改说明** |
| ---------- | -------- | ------------------ | ------------------------------------------------------------ |
| 2020/06/24 | 1.0.0 | 陈城,李煌 | 初始版本 |
| 2020/10/16 | 1.0.1 | 陈城,李煌,余乔伟 | 更新部分接口 |
| 2021/12/07 | 2.0.0 | 陈城,李煌,余乔伟 | 增加RGA3相关支持 |
| 2022/01/20 | 2.1.0 | 陈城,李煌,余乔伟 | - 更新im2d api接口说明
- 更新硬件指标说明,以及对齐限制
- 增加数据结构介绍 |
**目 录**
[TOC]
## 概述
RGA (Raster Graphic Acceleration Unit)是一个独立的2D硬件加速器,可用于加速点/线绘制,执行图像缩放、旋转、bitBlt、alpha混合等常见的2D图形操作。
### 设计指标
------
Version | Codename | Chip | Source | Destination | Function | Pixels/Cycle | ||
min | max | min | max | |||||
RGA1 | Pagani | RK3066 | 2x2 | 8192x8192 | 2x2 | 2048x2048 | 90/180/270 Rotate X/Y Mirror Crop 1/2~8 scale Alpha blend Color key Color fill ROP |
1 |
Jaguar Plus | RK3188 | |||||||
Beetles | RK2926/2928 | |||||||
Beetles Plus | RK3026/3028 | |||||||
RGA1_plus | Audi | RK3128 | 2x2 | 8192x8192 | 2x2 | 2048x2048 | 90/180/270 Rotate X/Y Mirror Crop 1/2~8 scale Alpha blend Color key Color fill Color palette |
1 |
Granite | Sofia 3gr | |||||||
RGA2 | Lincoln | RK3288/3288w | 2x2 | 8192x8192 | 2x2 | 4096x4096 | 90/180/270 Rotate X/Y Mirror Crop 1/16~16 scale Alpha blend Color key Color fill Color palette ROP |
2 |
Capricorn | RK3190 | |||||||
RGA2-Lite0 | Maybach | RK3368 | 2x2 | 8192x8192 | 2x2 | 4096x4096 | 90/180/270 Rotate X/Y Mirror Crop 1/8~8 scale Alpha blend Color key Color fill Color palette ROP |
2 |
BMW | RK3366 | |||||||
RGA2-Lite1 | Benz | RK3228 | 2x2 | 8192x8192 | 2x2 | 4096x4096 | 90/180/270 Rotate X/Y Mirror Crop 1/8~8 scale Alpha blend Color key Color fill Color palette |
2 |
Infiniti | RK3228H | |||||||
Gemini | RK3326 | |||||||
Lion | RK1808 | |||||||
RGA2-Enhance | Mclaren | RK3399 | 2x2 | 8192x8192 | 2x2 | 4096x4096 | 90/180/270 Rotate X/Y Mirror Crop 1/16~16 scale Alpha blend Color key Color fill Color palette ROP(NA for 1108/1109) NN quantize(NA for 3399/1108) osd (only 1106/1103) |
2 |
Mercury | RK1108 | |||||||
Puma | RV1126/RV1109 | |||||||
skylarkV2 | RK3566/RK3568 | |||||||
Orion | RK3588 | |||||||
Otter | RV1106/1103 | |||||||
RGA3 | Orion | RK3588 | 128x128 | 8176x8176 | 128x128 | 8128x8128 | 90/180/270 Rotate X/Y Mirror Crop 1/8~8 scale Alpha blend Color key FBC |
3 (by pass) 2 (scale) |
Version | Codename | Chip | Input Data Format | Output Data Format |
RGA1 | Pagani | RK3066 | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar, only for Blur/sharpness) YUV422 8bit (planar/semi-planar, only for Blur/sharpness) |
Jaguar Plus | RK3188 | |||
Beetles | RK2926/2928 | |||
Beetles Plus | RK3026/3028 | |||
RGA1_plus | Audi | RK3128 | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar, only for normal Bitblt without alpha) YUV422 8bit (planar/semi-planar, only for normal Bitblt without alpha) |
Granite | Sofia 3gr | |||
RGA2 | Lincoln | RK3288/3288w | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 (only for color palette) |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) |
Capricorn | RK3190 | |||
RGA2-Lite0 | Maybach | RK3368 | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 (only for color palette) |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) |
BMW | RK3366 | |||
RGA2-Lite1 | Benz | RK3228 | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) YUV420 10bit (planar/semi-planar) YUV422 10bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 (only for color palette) |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) |
Infiniti | RK3228H | |||
Gemini | RK3326 | |||
Lion | RK1808 | |||
RGA2-Enhance | Mclaren | RK3399 | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) YUV420 10bit (planar/semi-planar) YUV422 10bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 (only for color palette) |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar/packed) YUV422 8bit (planar/semi-planar/packed) |
Mercury | RK1108 | |||
Puma | RV1126/ RV1109 | RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar/packed) YUV420 10bit (planar/semi-planar) YUV422 10bit (planar/semi-planar) BPP8/BPP4/BPP2/BPP1 (only for color palette) |
RGBA/BGRA/ARGB/ABGR8888 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 RGB/BGR888 RGB/BGR565 YUV420 8bit (planar/semi-planar/packed) YUV422 8bit (planar/semi-planar/packed) YUV400 Y4/Y1 |
|
skylarkV2 | RK3566/RK3568 | |||
Orion | RK3588 | |||
Otter | RV1106/1103 | |||
RGA3 | Orion | RK3588 | RGBA/BGRA/ARGB/ABGR8888 RGB/BGR888 RGB/BGR565 YUV420 8bit (semi-planar) YUV422 8bit (semi-planar/packed) YUV420 10bit (semi-planar) YUV422 10bit (semi-planar) |
RGBA/BGRA8888 RGB/BGR888 RGB/BGR565 YUV420 8bit (semi-planar) YUV422 8bit (semi-planar/packed) YUV420 10bit (semi-planar) YUV422 10bit (semi-planar) |
Version | Byte_stride | Format | Alignment |
RGA1 RGA1_Plus |
4 | RGBA/BGRA/ARGB/ABGR8888 | width stride无对齐要求 |
RGB/BGR888 | width stride须4对齐 | ||
RGB/BGR565 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 |
width stride须2对齐 | ||
YUV420 8bit (planar/semi-planar) YUV422 8bit (planar/semi-planar) |
width stride须4对齐,x_offset、y_offset、width、height、height stride均须2对齐 | ||
RGA2 RGA2_Lite0 RGA2_Lite1 RGA2_Enhance |
4 | RGBA/BGRA/ARGB/ABGR8888 | width stride无对齐要求 |
RGB/BGR888 | width stride须4对齐 | ||
RGB/BGR565 RGBA/BGRA/ARGB/ABGR4444 RGBA/BGRA/ARGB/ABGR5551 |
width stride须2对齐 | ||
YUV420 8bit (planar/semi-planar/packed) YUV422 8bit (planar/semi-planar/packed) YUV400 Y4/Y1 |
width stride须4对齐,x_offset、y_offset、width、height、height stride均须2对齐 | ||
YUV420 10bit (planar/semi-planar) YUV422 10bit (planar/semi-planar) |
width stride须16对齐,x_offset、y_offset、width、height、height stride均须2对齐 | ||
RGA3 | 16 | RGBA/BGRA/ARGB/ABGR8888 | width stride须4对齐 |
RGB/BGR888 | width stride须16对齐 | ||
RGB/BGR565 | width stride须8对齐 | ||
YUV420 8bit (semi-planar) YUV422 8bit (semi-planar/packed) |
width stride须16对齐,x_offset、y_offset、width、height、height stride均须2对齐 | ||
YUV420 10bit YUV422 10bit |
width stride须64对齐,x_offset、y_offset、width、height、height stride均须2对齐 | ||
FBC mode | 除上述格式对齐要求外,width、height须16对齐 |