RGA是什么?
RGA (Raster Graphic Acceleration Unit)是一个独立的2D硬件加速器,可用于加速点/线绘制,执行图像缩放、旋转、bitBlt、alpha混合等常见的2D图形操作。
它主要用于在不占用 CPU 或 GPU 的情况下,执行常见的图像处理操作,例如:
- 图像缩放(Scaling)
- 图像旋转(Rotation)
- 图像镜像(Mirror/Flip)
- 图像裁剪(Crop)
- 图像格式转换(Color Space Conversion,如 RGB ↔ YUV)
- 图像混合(Blending / Alpha Compositing)
- 图像填充(Fill / Clear)
- DMA 图像拷贝(BitBlt)
2. RGA 的作用与价值
在视频、摄像头、显示等场景中,CPU 经常要做各种图像处理操作,比如:
- 缩放摄像头帧再送入显示层;
- 将 NV12 视频帧转换为 RGB 格式送入 OpenCV;
- 将 UI 层与视频层进行 Alpha 混合;
- 做旋转或镜像(例如前置摄像头翻转)。
如果都用 CPU 实现,性能会非常差。 而使用 RGA,可以:
- 极大降低 CPU 负载;
- 提高帧率;
- 降低功耗;
- 支持零拷贝 DMA buffer 操作。