news 2026/8/31 14:31:03

RV1126-----RKMedia

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RV1126-----RKMedia

一、RKMedia框架介绍

上图中的MPP组件就是瑞芯微根据自家芯片中的硬件编解码器开发的一个应用程序,也就是一个视频编解码以及视频处理库,在SDK目录下,可以找到MPP目录。

上图RKMedia对MPP进行封装,功能集是MPP的子集。

  • MPP支持:H.263/H.264/H.265/VP8/VP9/MPEG等

  • RKMedia仅支持:H.264/H.265/JPEG/MJPEG 4种

RGA组件:在SDK目录下,可以找到 RGA组件目录,独立2D硬件加速器,用于加速点和线的绘制,对图像进行拷贝、旋转、翻转、缩放、裁剪、合成,格式转换等一些二维图像操作;上图中的RGA模块是RKMedia对RGA组件封装,功能是RGA组件的部分。

RGA组件库搜索方式如下,完整功能需直接调用librga.so动态库:

图中的ISP、ISPP是RV1126的ISP20中的模块,ISP20主要是用于对摄像头的sensor采集到的RAW图像进行优化。

图中DRM是LINUX下的主流显示框架。

二、视频处理流程

  • 原始数据获取:摄像头传感器将光线信号转化为电信号,记录接收到的各种光的光照强度。

  • 拜耳格式定义:原始数据称为拜耳格式的原始图像(Bayer raw),是传感器捕捉到的最原始的数字信号数据。

  • 数据处理必要性:由于屏幕不能直接显示拜耳格式图像,需要经过ISP处理才能正常显示。

  • ISP20对拜耳格式原始图像进行算法处理,输出NV12/YUV等色彩空间域图像。

  • RKAIq将优化图像的算法参数传递给ISP20硬件,ISP20硬件根据传递的算法参数来优化图像质量,RKAI也会获取iq文件,iq文件包含优化图像所需的算法参数,iq文件参数质量直接影响ISP20硬件优化图像效果,(IQ文件参数调试需要专业工程师完成)。

  • ISP20优化好RAW数据后,就可以从video节点输出初步优化好的图像或者说输出数据流(在视频领域称为"码流")。

  • 码流从video节点输出有4条路径。RKMedia的VI模块可以从四路输出获取码流。

  • 后面RKMedia对图像进行二次处理,RKMdeia常见处理图像旋转(通过RGA模块实现180度旋转)分辨率调整(如1080p→720p缩放)格式转换(如YUV→RGB格式转换),与ISP区别:ISP20进行基础优化处理,RKMedia根据需求进行应用级处理。


  • VI模块通过ISPP的四路视频输出节点获取数据流---------->>直接显示:获取数据后可直接传输给VO模块进行屏幕显示。

  • VI模块获取数据流(码流)通过RGA模块,在经过RKNPU进行AI模型的推理(RKNPU中RockX组件可以跑很多AI算法)。

  • VI模块获取数据流(码流)通过RGA模块,可以再通过MPP中的VENC模块进行压缩编码。

  • VI模块获取数据流(码流)不通过RGA模块,直接经过MPP中的VENC模块进行压缩编码。

  • OSD功能:在视频上叠加文字/图形(如时间戳显示)


如果要对视频进行处理,完全可以使用MPP、ISP、RGA等组件来完成,为什么AI历程用的是瑞芯微提供的RKMedia来做的?

因为学习音视频的采集和处理避免直接学习MPP、ISP、RGA、DRM等复杂底层组件;通过调用RKMedia的封装好的接口可以快速实现视频采集、处理和显示。使用RKMedia降低了开发难度。

学习RKMedia方法:查看文档+SDK中rkmedia中的examples开发历程。

SDK下文档位置:


可执行文件路径:

  • SDK下的buildroot/output/alientek_rv1126/oem/usr/bin/
  • 开发板路径:/oem/usr/bin/

三、编译和测试SDK中自带RKMedia例程

编译流程:

若是修改SDK下的源代码例程:

测试特定例程时,可在开发板终端命令后添加"--help"参数查看使用说明,例如:rkmedia_vi_vo_test --help。

  • 工作原理:
    • 摄像头传感器输出原始RAW数据,RAW数据图像质量欠佳,无法满足视觉效果,需要经过ISP处理
    • RKAIQ是ISP的一部分,RKAIQ模块使用IQ文件(xml文件)中的参数进行图像质量调整
    • 经过ISP处理后输出满足视觉效果的图像
    • 最后通过RGA模块进行旋转/缩放等操作后显示
  • 重要说明:
    • 在RV1126上使用IMX335和IX415摄像头,需要通过RKMedia来调用,不能使用ffmpeg,因为摄像头输出的是最原始的RAW数据
    • IQ文件由专业调试工具生成,需要IQ tuning工程师进行调试

摄像头应用会占用摄像头也会占用ISP,mediaserver是一个多媒体服务,主要用于ipc应用开发,就是一个摄像头应用在抓取图片之前要关闭这个应用,其实RV1126硬件的出厂系统是已经默认关闭了这个摄像头应用的。

四、RKMedia视频处理模块精讲

RKMedia的RGA模块基于RGA组件封装,但功能更少,opencv也可以对图像进行处理,一般使用RKMedia或者RGA组件实现,因为RKMedia或者RGA组件是RV1126平台适配的组件,内部是基于MPP实现,RV1126支持硬件编解码加速,软解(CPU处理) vs 硬解加速(MPP封装),基本图像处理(色彩空间转换、旋转缩放等)一般不用opencv。

4.1 RKMedia初始化

摄像头的接口/摄像头ID,0表示MPI CSI0,1表示MIPI CSI1。由底层驱动决定,单摄像头默认为0,双摄像头需区分0和1。

4.3 RGA组件

4.3.1 认识RGA组件

RGA模块是RKMedia对RGA组件封装,我们先了解RGA组件后在了解RGA模块

查询RGA组件动态库位置和版本号:

  • 最小图像尺寸:2×2像素
  • 最大源图像尺寸:8192×8192像素
  • 最大目标图像尺寸:4096×4096像素

  • 实际应用建议:
    • 在rk media的rga模块中,NV12格式的width stride配置为能被2整除即可工作
    • 但为保障稳定性,建议严格遵循4对齐的要求
  • 对齐原理:硬件为快速访问内存首地址或跨行访问数据,为了保证硬件利用率,要求内存地址或跨度为对齐系数的倍数

4.3.2 RGA组件的demo编译

如果已经编译过整个SDK或buildroot文件系统,demo会自动编译到output的build目录下:

4.3.3 RGA组件的功能测试

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 14:28:55

不用装客户端也能监控卫星,gods-eye-view 如何用纯前端实现上帝视角

为什么选择纯前端架构:Vite 与原生 JavaScript 的极致组合 当我们谈论“上帝视角”时,脑海中浮现的往往是庞大的后端集群、复杂的 GIS 服务器以及厚重的桌面客户端软件。传统的地缘空间情报(OSINT)系统,通常依赖 ArcGI…

作者头像 李华
网站建设 2026/8/31 14:28:39

Argus开源AI Agent测试:用自然语言代替脚本,解决Web测试维护难题

如果你维护过一套 Web 端自动化测试脚本,大概率经历过这样的时刻:产品经理说按钮文案改了一个字,你的 CSS 选择器全部失效;前端工程师说弹窗组件换了实现,你的等待逻辑直接超时;更麻烦的是,测试…

作者头像 李华
网站建设 2026/8/31 14:27:49

OpenRouter“Having Issues”全链路排障:从状态码到多供应商降级策略

如果你正在用 OpenRouter 做模型聚合调用,或者准备把 OpenRouter 接入 Claude Code,那么最近打开它的状态页时,大概率见过一行让人心里发紧的文字: Having Issues 。 这句话出现在状态页上,意味着 OpenRouter 的某些…

作者头像 李华
网站建设 2026/8/31 14:22:20

AI桌宠爆火背后:语音克隆与数字人技术如何落地

把领导做成 AI 桌宠,是恶搞还是 AI 应用的新方向? 如果你最近刷过短视频或技术社区,大概率见过这样的画面:桌面上一个卡通小人走来走去,屏幕一角弹出一个对话气泡,语气像极了某个同事或上司,甚至…

作者头像 李华
网站建设 2026/8/31 14:19:59

公司章程公证流程解析:所需材料、零奔波办理方法及常见问题大全

很多正在办理企业变更、对外投资或者资质审批的朋友,都会遇到要求提供经过公证的公司章程的情况。不少老板首次接触这项业务,不清楚具体要准备什么材料、要跑多少趟公证处,也不知道有没有不用线下排队的办理方式。今天这篇文章就把公司章程公…

作者头像 李华
网站建设 2026/8/31 14:19:42

HyperMesh与STAR-CCM+联合CFD仿真:从几何清理到网格划分全流程

之前用 STAR-CCM 导入复杂 CAD 模型时,总是卡在几何清理和表面网格这一步:破面多、小特征杂乱、边界命名不清晰,导致体网格生成失败,反复调整非常浪费时间。后来把 HyperMesh 作为前处理工具,把几何清理和表面网格工作…

作者头像 李华