第一章:瑞芯微平台概述

大家好,我是你们的讲师。做了这么多年嵌入式音视频开发,我接触过不少芯片平台。但说实话,瑞芯微的RK系列,是我个人用得最顺手的一套。今天咱们就来聊聊这个平台的全貌。

你可能会问:为什么要选瑞芯微?嗯,我刚开始接触时也有这个疑问。后来在几个项目里踩过坑、趟过雷,才慢慢摸透了它的脾气。说白了,瑞芯微最大的优势就是「性价比高、生态成熟」。尤其是音视频这块,它几乎把硬解码、硬编码做到了极致。

1.1 RK系列芯片家族介绍

瑞芯微的芯片型号很多,但咱们做音视频开发,重点关注这几个系列:

  • RV系列:主打视觉处理,比如RV1109、RV1126。我最早用RV1126做IPC项目时,就被它的ISP能力惊艳到了。
  • RK系列:全能型SoC,从RK3288到RK3588,覆盖了从低端到高端的所有场景。
  • RK35xx系列:这是目前的主力,尤其是RK3588,8核CPU+6T算力NPU,简直是为AI盒子量身定做的。

我记得有一次选型,客户要求同时做4路4K视频的硬编码。当时对比了好几家的方案,最后发现只有RK3588能轻松搞定。你想想看,单芯片搞定8K显示、4路4K编码、6T算力NPU,这集成度确实没谁了。

芯片型号 CPU架构 NPU算力 视频编解码能力
RV1126 4核Cortex-A7 2.0 TOPS 4K H.264/H.265编码
RK3588 4核A76+4核A55 6.0 TOPS 8K H.264/H.265解码,4路4K编码
RK3568 4核Cortex-A55 1.0 TOPS 4K H.264/H.265解码

我的小建议:新手入门,我建议先从RV1126开始。为什么?因为它的SDK最成熟,文档最全,社区活跃度也高。我当年就是拿RV1126练手的,踩坑少,上手快。

1.2 应用场景:IPC、NVR、AI盒子

瑞芯微的芯片到底能干啥?我给大家拆解三个最常见的场景:

IPC(网络摄像机)

这是RV1126的主战场。它内置的ISP(图像信号处理器)能自动做白平衡、降噪、宽动态。我在做IPC项目时,最头疼的就是低照度下的画质问题。但RV1126的3D降噪确实给力,晚上拍出来的画面干净多了。

而且它的硬编码延迟极低,我实测过,从摄像头采集到H.265码流输出,延迟能控制在30ms以内。这对实时监控来说,太重要了。

NVR(网络视频录像机)

NVR需要同时处理多路视频流。RK3588在这里就派上用场了。它支持4路4K视频同时硬编码,或者16路1080P同时解码显示。我做过一个16路NVR的项目,用RK3588做核心,整机功耗才15W左右,散热压力小很多。

避坑指南:我曾经在NVR项目里犯过一个低级错误——直接用CPU做多路视频解码。结果CPU占用率飙到90%,系统直接卡死。后来改用RK3588的MPP(多媒体处理平台)做硬解码,CPU占用率瞬间降到10%以下。记住:能用硬件就别用软件。

AI盒子

这是目前最火的方向。AI盒子需要同时做视频采集、AI推理、结果输出。RK3588的6T算力NPU,跑轻量级模型(比如YOLOv5s)能到30fps以上。我最近在做一个智慧安防项目,用RK3588跑人脸检测+车牌识别,单芯片搞定所有任务,省掉了外挂NPU的成本。

1.3 开发板选型:RV1126 vs RK3588

很多新手会纠结:到底选RV1126还是RK3588?我给大家一个简单的判断标准:

  • 选RV1126:如果你的项目是单路IPC、低功耗、成本敏感,那就选它。RV1126的官方开发板(比如TB-RV1126D)才几百块,非常适合学习。
  • 选RK3588:如果你的项目需要多路视频、高算力AI、8K显示,那就上RK3588。它的官方开发板(比如TB-RK3588X)功能齐全,但价格也贵一些。

我个人习惯是:做原型验证时先用RV1126,快速出Demo。等客户确认需求后,再根据实际场景升级到RK3588。这样既控制了前期成本,又保证了后期性能。

注意:RV1126和RK3588的SDK结构完全不同。RV1126用的是Linux 4.19内核,RK3588用的是Linux 5.10内核。千万别把两个SDK混用,我见过有人把RK3588的驱动直接搬到RV1126上,结果系统都起不来。

1.4 开发环境搭建要点

嗯,这里我简单提一下环境搭建的几个关键点,后面章节会详细展开:

  1. 交叉编译工具链:瑞芯微官方提供了gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf,直接下载解压就能用。
  2. SDK获取:从瑞芯微官网或GitHub下载,注意区分RV1126和RK3588的SDK。
  3. 烧录工具:RKDevTool是官方烧录工具,支持USB和SD卡烧录。我建议新手先用SD卡烧录,万一搞砸了,换张卡就行,不会变砖。
# 交叉编译一个简单的Hello World
arm-linux-gnueabihf-gcc -o hello hello.c
# 把hello文件拷贝到开发板
scp hello root@192.168.1.100:/root/
# 在开发板上运行
./hello

你看,其实没那么复杂。只要环境搭好了,后面的事情就顺了。

好了,第一章的内容就到这里。下一章我会带大家深入瑞芯微的MPP多媒体框架,手把手教你做视频解码。咱们下节课见。