RV1126音视频项目

文章目录

一、RV1126音视频项目

1.RV1126的基础课程:
  • 2.0. RV1126编译环境的搭建:

    • 2.0.1.RV1126的SDK讲解

    • 2.0.2.在UBuntu搭建RV1126的SDK交叉编译工具链

    • 2.0.3.在RV1126板子上面运行一个最简单的DEMO

  • 2.1. RV1126视频教程部分:

    • 2.1.1.原始视频数据的基础概念:YUV的讲解

    • 2.1.2.RV1126视频采集VI模块详解

    • 2.1.3.RV1126多线程采集VI模块数据

    • 2.1.4.RV1126视频编码模块基础参数详解

    • 2.1.5.RV1126视频编码模块码率控制参数讲解

    • 2.1.6.RV1126的VI模块绑定VENC模块,并用多线程获取视频编码数据

    • 2.1.7.RV1126的RGA模块的讲解

    • 2.1.8.RV1126的VI模块绑定RGA模块获取RGA处理过后的码流

    • 2.1.9.RV1126的VO视频模块的讲解

    • 2.1.10.RV1126的VI模块绑定VO模块输出原始数据到屏幕

  • 2.2. RV1126音频教程部分:

    • 2.2.1.音频原始数据的基础概念:PCM基础概念的讲解

    • 2.2.2.RV1126音频采集AI模块详解

    • 2.2.3.RV1126多线程采集AI音频数据

    • 2.2.4.RV1126音频编码模块参数的讲解

    • 2.2.5.RV1126的AI模块绑定AENC模块获取每一帧音频编码码流

    • 2.2.6.RV1126的AO模块讲解

2.在UBuntu系统搭建SDK和SDK介绍

上图是RV1126的SDK结构框图,这里面有很多个文件夹,我们会一一介绍到:

app: app目录主要包含了IPC的一些 DEMO

buildroot:这个是Linux平台上构建的嵌入式Linux系统框架

device:内核配置的选项,这里面的内核配置有多种机器可以选择。

IMAGE:空文件夹

prebuilts: RV1126交叉编译工具链

rkbin: 主要存放Rockchip不开源的bin,包括脚本、打包工具等

rockdev: 不同的img

u-boot: 是一个主要用于嵌入式系统的引导加载程序

docs: 相关的技术文档

external: RV1126的相关例程,这个文件夹的内容是非常重要的

kernel: RV1126烧写的内核

tools:RV1126的工具,包括烧录工具、升级工具等等。

3.整体编译RV1126的SDK环境
  • 3.1.调用source envsetup.sh指令选择开发板类型

    • 先切换SDK目录
    • 在source envsetup.sh
      • 从上面sosurceenvsetup.sh的命令可以看到这里有好多个选项,但我们真正使用的选项是85:rockchip_rv1126_rv1109_spi_nand
  • 3.2.使用./build.sh lunch去选择Board类型

    • 调用./build.sh
      lunch弹出了很多的Board类型,这里我们选择的是2,BoardConfig-38*38-spi-nand.mk。
  • 3.3使用./build.sh去整体编译SDK

    • ./build.sh就是对整个SDK进行编译,截图的地方就是编译的过程。整个编译需要花费的时间久
  • 3.4.在rockdev编译出对应的镜像

复制代码
上面这里是编译出来的整个img,那我们在开发中需要用到的是update.img,update.img可以烧录整个板子。
4.RV1126固件烧录

二、视频部分讲解

1.YUV讲解
1.1YUV原理讲解

YUV是一种常见的视频像素格式,经常用在视频编解码上面,YUV分别由Y分量和U、V分量(红色投影Cr)组成。Y分量指的是亮度分量,也就是我们经常说的灰阶值,相当于一副灰色的图像。而U分量和V分量表示的是色度分量,它的作用就是用于影像的色彩 以及**饱和度,**常用于指定像素的颜色,U分量是图像蓝色部分去掉亮度Y,V分量是图像红色部分去掉亮度Y。换言之如果一副图像只有Y分量,没有UV分量就相当于我们看黑白电视一样,没有颜色,所以现在大部分彩色电视都引用了YUV像素格式。

2.YUV的优势

YUV和RGB是目前最流行的两套颜色格式,但是在我们音视频编解码和网络传输的时候基本上都会用YUV格式,而非RGB格式。这是由于YUV在网络传输的时候只需要占用很少的带宽进行传输,这能够大大节约存储空间、并且提****高传输效率。比方说,使用YUV420P格式进行采样能够比RGB节约超过1/2的存储空间。

3.YUV采样格式

下面我们来说下YUV的采样格式,现在主流的YUV采样方式一般分三种分别是:YUV444、YUV422、YUV420。我们来看看这三种采样格式的区别:

  • 3.1 YUV444

YUV444采样,相当于Y、U、V三个分量采用相同的采样比例进行采样(亮度(Y)和色度(U、V)的采样数量完全一样多) 。所以用YUV444采样生成的图像,YUV三个分量的信息是完整的,都是8bit,也就是一个字节。这里的YUV444顾名思义就是4个Y分量、4个U分量、4个V分量。Y分量大小:w *h;U分量大小:w * h;V分量大小:wh。所以,我们用YUV444格式去采样一个1920 *1080的图像的时候,得到的大小等于:(1920 * 1080 * 8 + 1920 1080 * 8 + 1920 * 1080 * 8)/8/1024/1024 ~=5.94M**。从计算公式可以看出,YUV444每一帧图像大小和RGB差不多,所以在真正开发中很少会用到。(bit是计算机能识别的最小数据单位)**

  • 3.2YUV422

YUV422采样,相当于U、V分量是以Y分量采样的一半进行采样,Y分量和UV分量按照2:1的比例进行采样(也可以理解为两个Y分量对应一个UV分量)。就比方说,若一个水平方向有8个像素点,那么采样了8个Y分量,那么UV分量只有4个。这里采样用的是4个Y分量、2个U分量、2个V分量进行采样。Y分量大小:w

* h;U分量:w * h /2;V分量:w * h /2。所以,用YUV422采样的大小是:**(1920 * 1080 * 8 +(1920 * 1080)/2 * 8 + (1920 *****1080)/2 * 8)/8/1024/1024 ~= 3.96M。
3.3 YUV420:

YUV420采样,相当于每一行扫描的时候只扫描一种色度分量(U分量或者V分量),和Y分量按照2:1的方式进行采样(也可以理解为四个Y分量对应一个UV分量)。就比方说,在第一行扫描的时候,YV分量按照2:1的方式进行采样,那么YU分量也是用2:1的方式采样,所以对于每个色度分量来说,它的水平方向和垂直方向的采样比都是2:1。这里采用的是4个Y分量、2个U分量、0个V分量采集,而下一行的则是用4个Y分量、0个U分量、2个V分量采样。所以,Y分量大小:w * h;U分量:w * h /4; V分量:w \h/4。所以用YUV420采集一个1920 * 1080的图像大小:(1920 * 1080 * 8 + (1920 ** *1080)/4 * 8 + (1920 * 1080)/4 *

8)/8/1024/1024 ~=2.97M 。**可以看到用YUV420采样的图像比YUV444和YUV422都节省空间,因此它是目前最主流的采样格式。

相关推荐
于是我说13 小时前
稳定常用能直接在电脑上下载微博视频的方法
音视频
ACP广源盛1392462567313 小时前
GSV2006@ACP#2 进 4 出 HDMI2.0 中继器(带音频提取 / 嵌入功能)全解析
单片机·嵌入式硬件·音视频
大模型实验室Lab4AI20 小时前
VideoLLaMA 3新一代前沿多模态基础模型赋能图像与视频深度理解| LLM | 计算机视觉
人工智能·计算机视觉·音视频
EasyDSS1 天前
视频推拉流平台EasyDSS无人机视频推拉流技术助力实现工地远程监控巡检直播
音视频·无人机
眠りたいです1 天前
基于脚手架微服务的视频点播系统-服务端开发部分接口定义,数据库表设计,视频索引设计,缓存与消息队列设计部分
数据库·c++·缓存·微服务·云原生·架构·音视频
EasyCVR1 天前
视频融合平台EasyCVR助力守护渔业牧区安全与增效
安全·音视频
大模型实验室Lab4AI1 天前
CVPR 2024 | 赋能大语言模型以精准理解视频时序瞬间 | LLM | 时序预测
人工智能·语言模型·音视频
YUJIANYUE1 天前
查立得PHP+mysql个人微博系统V1.0支持图文视频音频文件
mysql·php·音视频
stereohomology2 天前
ffmpeg视频mp4到gif用大模型很方便
ffmpeg·音视频