目录
1 音视频录制播放原理
1.1 录制原理
1.2 播放原理
2 图像的表示
2.1 RGB格式
2.2 YUV格式
3 视频中的重要概念
3.1 视频的属性
3.2 视频的I,P,B帧
4 常见的视频压缩算法
若想记录生活中的影像又或声音,我们需要借助摄像头和麦克风两个输入源来实现对音视频的采集,而其内部工作原理也有章可循。
如图:
麦克风通过时钟控制频率去采帧,经过特定的音频处理后放入帧队列,然后对音频进行编码,最后通过复用器输出对声音记录的文件。
同理,摄像头经过采样图像帧和视频编码,最终通过复用器输出对图像的连续记录文件。
播放媒体文件,我们则需要用到解复用器,通过对音视频的包进行相应的解码(视频解码、音频解码),将包转化为帧,通过同步控制对图像音频进行处理,最终呈现在机器荧幕上。
我们应当知道,我们平时看到的“颜色”是由“三原色”构成,而三原色指的是红、绿、蓝这三种颜色。因此在计算机中我们也采用这个概念,设计了R(Red)、G(Green)、B(Blue)三个键值组合起来指示一种具体的颜色。
值得注意的是,这每个键值的位宽是8bit,因此单一键值可以有种组合方式,那么三种键值所能构成的指定颜色则有。
YUV格式一开始广泛应用于黑白电视上,它被设计的目的主要用于视频信号的压缩、传输和存储,其中“Y”表示的是明亮度(Luminance or Luma),又称灰阶值,而“U”和“V”则表示的是色度(Chrominance or Chroma)
YUV组合在一起的意义是用来描述影响的色彩和饱和度,用以指定像素的颜色。
YUV的格式有两类,分别是 平面 Planar 和 紧凑Packed
对于 Planar - 先连续存储所有像素点的Y,紧接着存储所有像素点的U。
对于 Packed - 每个像素点的Y,U,V连续存储在内存中。
Packed的优点相较于Planar主要是更节省内存空间。
而Planar的优势也显而易见:
Planar
就明显优于Packed
了。如YUV,如果采用Planar
,相比于Packed
,可以并行访问Y、U、V三个平面,那就相当于只花1/3的时间,就可以访问到一个YUV像素。Planar
在切换bit depth
时,更加快:可以通过增加或丢弃平面,来快速扩增或缩减调色板。比如,4个平面变成5个平面时,一个像素的可选颜色,变成了种。Planar
在空间和时间上的效率,都高于Packed
。比如,在3-bit的RGB中(每3个bit表示一个像素,一个像素可选颜色为种)。
Planar
,只需要3个平面。Packed
,有两种实现方式:
Libyuv 是一款由Google主导的实现各种YUV与RGB间相互转换、旋转、缩放的库
YUV还存在其他多种格式,比如YUV420p,YUV420sp等。
不同YUV格式的数据在存储时的排列顺序是不一样的,选用错误的解析格式可能导致画面出现花屏,绿屏等现象
视频码率:kb/s,是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。
视频帧率:fps,单位时间中显示的帧的数量,通常说一个视频的25帧,指的就是这个视频帧率,即1秒中会显示25帧。帧率越高,给人的视觉就越流畅。
视频分辨率:ppi(标准单位),视频的分辨率是指视频在一定区域内包含的像素点的数量,分辨率也就是我们常说的640x480分辨率、1920x1080分辨率,其中分辨率 = 像素宽度 x 像素高度。
I 帧(Intra coded frames):I帧不需要参考其他画面而生成,解码时仅靠自己就重构完整图像;
P 帧(Predicted frames):根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据,同时利用了空间和时间上的相关性。
B 帧(Bi-directional predicted frames):B 帧图像采用双向时间预测,可以大大提高压缩倍数。
欢迎阅读下一章内容 音视频图像开发基础 II - 声音、数字音频及常用名词声音是一种由物体振动引发的物理现象,如小提琴的弦声等。物体的振动使其四周空气的压强产生变化,这种忽强忽弱变化以波的形式向四周传播,当被人耳所接收时,我们就听见了声音https://blog.csdn.net/weixin_42839065/article/details/130498152?spm=1001.2014.3001.5502