当前位置: 首页 > news >正文

RGA模块的讲解

  • RGA模块的作用

由于网页显示的图像是RGB的彩色图像,所以我们需要使用RGA模块把NV12的灰度图像转换成RGB的彩色图像。然后再把彩色图像赋值到ShareMemory共享内存里面。这节课主要的内容是RGA模块的初始化和如何获取经过RGA处理的RGB数据。

  • RGA数据的获取

2.1. RGA模块的初始化

上面是RGA模块初始化的代码,这里使用的结构体是RGA_ATTR_S。RGA_ATTR_S结构体里面包含了两个重要的结构体,分别是stImgIn和stImgOut。stImgIn是视频输入的结构体,stImgOut是处理后的视频结构体。除了这两个重要的结构体外,还有公共参数需要设置

stImgIn结构体的设置:

stImgIn.u32Width:视频输入的分辨率宽度,这里使用的是1920

stImgIn.u32Height:视频输入的分辨率高度,这里使用的是1080

stImgIn.u32HorStride:视频输入的分辨率虚宽,虚宽的数值跟分辨率宽度数值一致都是1920

stImgIn.u32VirStride:视频输入的分辨率虚高,虚高的数值跟分辨率高度数值一致都是1080

stImgIn.imgType:视频输入的格式这里设置的是NV12也就是IMAGE_TYPE_NV12

stImgIn.u32X:设置stImgIn的X坐标

stImgIn.u32Y:设置stImgIn的Y坐标

stImgOut结构体的设置:

stImgOut.u32Width:视频输出的分辨率宽度,这里使用的是1920

stImgOut.u32Height:视频输出的分辨率高度,这里使用的是1080

stImgOut.u32HorStride:视频输出的分辨率虚宽,虚宽的数值跟分辨率宽度数值一致都是1920

stImgOut.u32VirStride:视频输出的分辨率虚高,虚高的数值跟分辨率高度数值一致都是1080

stImgOut.imgType:视频输出的格式这里设置的是RGB格式,IMAGE_TYPE_RGB888。

stImgOut.u32X:设置stImgOut的X坐标

stImgOut.u32Y:设置stImgOut的Y坐标

RGA公共参数
u16BufPoolCnt:缓冲区计数,默认是3

u16Rotation:旋转角度,这里填0,没有旋转角度

enFlip:镜像控制,这里选择RGA_FLIP_H,水平镜像处理

bEnBufPool:使能缓冲池

设置完上述的参数后,调用RK_MPI_RGA_CreateChn设置RGA模块,第一个参数是RGA的通道号:0,第二个参数是RGA_ATTR_S结构体指针。

2.2. 创建get_vi_rga_thread线程获取RGA码流数据

需要调用pthread_create创建get_vi_rga_thread线程,我们来看get_vi_rga_thread线程里面的内容。在这个线程里面,需要调用RK_MPI_SYS_GetMediaBuffer获取RGA模块的数据。而RGA数据的来源是上节课我们讲解的get_camera_vi_thread线程发送的每一帧NV12数据(具体的流程如下图),最后把RGA的数据赋值到共享内存里面,代码是(共享内存的内容下节课讲解)。


http://www.mrgr.cn/news/24254.html

相关文章:

  • 半导体设备系列(2) 半导体设备与工厂控制仿真器Demo编写
  • 【开发】git相关
  • 秒懂:进程上下文切换
  • Oracle数据恢复—Oracle数据库误删除表数据如何恢复数据?
  • 网络操作系统项目
  • LEAN 类型系统属性 之 定义上相等的非确定性(Undecidability of Definitional Equality)注解
  • 蓝牙核心规范解析
  • chapter14-集合——(List)——day18
  • xLSTM模型学习笔记
  • 在 Android 中,事件的分发机制
  • JAVA学习-练习试用Java实现“二叉树的序列化与反序列化”
  • 多多优品:多多采集软件-不用买手-采集不限制
  • 【Web】骨架屏
  • 《中国食品工业》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • strtok函数讲解使用
  • 【NOI-题解】1272. 郭远摘苹果1274. 求各个科目成绩的平均分1275. 输出杨辉三角的前N行1496. 地雷数量求解
  • RP2040 C SDK ADC功能使用
  • 如何用ChatGPT创建阅读10W+爆款文章标题
  • 重温学习之C语言学习笔记3
  • 强密码策略+使用jasypt保存用户密码