音视频基础知识

2023-05-23  本文已影响0人  BlueSocks

前言

音视频技术较为深奥,以一张图为例:


1.png

视频文件的播放,要经历以下几个阶段:

基本概念

大家肯定对 RGB888 这个词不陌生,它的意思就是每个颜色分量使用8个比特位,即一个像素使用24个比特位,3个字节来表示。RGB也有其它存储格式,常见的即为RGB888。

像 YUV 的格式有两大类,planar和packed

planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。 packed的YUV格式,每个像素点的Y,U,V是连续交叉存储的。

YUV的存储格式也有多种,一般用得较多的是YUV420,它表示每四个Y共用一组UV分量,于是这种存储格式的bpp(bit per point)为12,即平均一个像素点使用12个比特位来显示,每个像素都有一个 Y 值,而 U 和 V 的数量均是 Y 的 1/4。Y、U、V 各是一个字节,一个字节是 8 bit,结果就是 1 + 1/4 + 1/4 = 1.5 个字节 = 1.5 * 8 = 12 bit

这里只粗略介绍下yuv,后续再详细总结下。

大家可以想像下,现在手机随手拍的一张照片大小可达2、3M之多,假设一张图片大小为2M,电影fps为25,那么一秒内显示的数据量为50M,一分钟内数据量为3000M,约为3G,一个电影一般有90分钟,那么,一部电影至少有270G大小。如果数据不压缩,这也太占空间了,这么大的数据量,我国的带宽能承受?人们看视频也不方便。

所以编码就是将一些冗余的东西去除,比如一张图片内肯定会有一些区域内颜色类似相同,这些相同相信的数据就可以被压缩。

请注意,音频数据和视频数据是分开的。

文件大小(b) = 码率(b/s) * 时长(s)

这个两值与音视频同步相关,视频的dts和pts并不一定顺序相同,与视频帧类型相关。

音频帧的播放时间=一个AAC帧对应的采样样本的个数/采样频率(单位为s)

所以aac一帧的播放时间为 1024 * 1000 / 44100 = 22.32ms 乘以一千是因为得到的时间单位是ms

mp3:mp3音频一帧当中,一个声道包含1152个采样点

对于一个音频帧而言,一帧的数据量会是多少呢?如果是aac帧,两个声道,采样精度为16bit,那么数据量为:1024×2×2 个字节

上一篇 下一篇

猜你喜欢

热点阅读