音视频开发工程师

音视频开发

1. 音视频录制原理

录制原理图片

采集 帧Frame图片 图像处理或音频处理(图片暗亮/音频PCM调节)44.1 k 采样点 数据做压缩

音频视频编码 压缩 在队列中读取数据

时钟控制 播放等 共用一个时钟源 音视频同步问题

2. 音视频播放原理

播放原理图片

音频视频 分离 PCM 和视频文件 加队列 解码线程获取数据 放入帧的队列 进行 音频视频同步控制 进行处理等等 算法处理 图像亮度色彩 同步可以延后到音频处理完图像处理完。

3. 基础概念

1.pix 像素: picture + element, pixel。

2.分辨率:横向像素点乘以竖向像素点。

清晰度 分辨率
360P 640*360
720P 1280*720
1080P 1920*1080
4K 3840*2160
8K 7680*4320

2 个1080P = 4K ,2个4K = 8K。小米15 Ultra ,相机16320×12288分辨率2亿像素,理论值:200,540,160像素 ≈ 2.005亿像素

一般情况下,图像的分辨率越高越清晰,但是光线等等也会对图片也有影响。

位深 红绿蓝 RGB Alpha。8Bit表示,256种颜色相乘就是1677万种颜色。

每个通道的位深越大 能够表示的颜色值就越大。

帧率 FPS 每秒多少帧画面。电影24fps 都按数据25fps

码率 视频文件在单位时间内使用的数据流量。 如 1M bps ,100k bps ,200k bps,2000kbps,大多数情况下码率越高 分辨率越高,越清晰,但是有个情况是某些模糊视频的码率也会很高,(夜晚拍摄的视频等等)。码率和清晰度不是正比的呈现。

open CV 可能需要的是 BGR排列。ARGB、RGBA、AGBR、BGRA需要注意格式。

YUV的含义;Y时亮度 UV 色度的分量/饱和度。 y是luma,uv:chroma,YUV电视的色彩的兼容。YUV具备很多的格式。

YUV的排列和采样方式造成它的格式众多。 YUV444。YUV放在一起就是打包模式或者平面模式。

YUV采样比例。 YUV 444 YUV 4:2:2 。4:2:0 。表示的是一个y分量对应的UV分量的比例。

444 和422 表示的是多少个Y才采一次UV。420 是采四个Y共用一组UV。

YUV表示法 含义
444 一个Y分量对应一个U分量对应一个V分量。色度频道没有下采样。
422 每2个Y分量共用一个U分量和一个V分量。即表示2:1的水平下采样没有垂直下采样。
420 每4个Y分量共用一个U分量和一个V分量。即表示2:1的水平下采样,2:1的垂直下采样。

YUV数据存储。三种格式。444级I444。YUV444P.YUV422P。YUV420P。I420.

RGB和YUV的格式转换。通常使用ffmpeg的swscale或者libyuv库的API转换。yuv的值大于255取255小于0取0

YUV的对齐问题。平面模式下的对齐。不能被16整除的时候需要扩充有些像内存对齐。

码率图片

视频码率

视频帧率

视频分辨率

1. I帧P帧B帧
1.1 I帧

什么是I帧? I帧的全称是

I帧能够独立解码。

基础的概念

帧类型 全称 压缩原理 解码依赖 典型占比
I帧 Intra-coded Frame 基于空间冗余独立压缩 无需参考其他帧 5-10%
P帧 Predictive Frame 基于前向运动补偿预测 依赖前一I/P帧 30-40%
B帧 Bi-predictive Frame 双向运动补偿预测(前后参考) 依赖前后I/P帧 50-60%

什么叫独立解码?不需要参考其他画面就可以自己解码。