音视频专题
# 音频基础
音频相关概念包括采样率、声道数、声道布局、采样格式、PCM及其波形、音质、音频编码格式、音频封装格式
# 采样率
概念 对声音信号每秒的采样次数,采样率越高,声音的还原越真实
单位 采样率的单位是Hz,常见的采样率有8000Hz、16000Hz、44100Hz、48000Hz
奈奎斯特抽样定理 (opens new window) 要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。 抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。 抽样频率大于2倍频谱最高频率时,信号的频谱无混叠
# 声道
概念 指声音在录制和播放时候,在不同空间位置采集或回放的相互独立音频信号
# 声道布局
概念 不同声道数对应不同的声道布局, 常见的如下
- 单声道
- 双声道(立体声道)
- 四声环绕
- 5.1声道
单声道 只有一个声音,优点数据量小,缺点是缺乏对声音的位置定位。amr_nb和amr_wb默认为单声道
双声道 由左右两个声道组成,相对单声道而言,改善了对声音位置的定位的状况
四声环绕 由前左、前右、后左、后右四个方向组成,形成立体环绕。
4.1声道 是在四声环绕基础上,增加一个低音
5.1声道 在4.1声道基础上。增加一个中场声道,杜比AC3就是采用5.1声道(杜比音效)
# 音质
音质 声音的质量,经过编码压缩后的音频保真度,由音量、音色、音高三要素组成
声音的音量 即音频的强度和幅度, 数值范围为0~100, 静音为0,最大值为100。
声音的音高 即声音的音调,音频的频率或者每秒的变化次数
声音的音色 音频泛音,音品,不同声音表现在波形方面与众不同的特性
# 封装格式
音频封装格式,由特定格式头+媒体信息+音频轨数据组成。
常见的封装格式有mp3、m4a、ogg、amr、wma、wav、flac、aac、ape等
# 编码协议
音频经过解封装得到的音频轨数据,也就是经过编码的。
常见的音频轨编码协议有: mp3、aac、amr_nb、amr_wb、ac3、vorbis、opus、flac、wmav2等等
# 视频基础
视频相关概念包括码率、分辨率、帧率、像素格式、画质、色域与HDR、旋转角度、时长、封装格式、编码协议
# 码率(比特率)
概念 单位时间内传输的数据量
单位 kbps(千位每秒),b代表bit,而不是byte
平均码率
动态码率
恒定码率(CBR)
码率稳定可控,带宽要求不高,图像变化量比较大时方块效应比较明显
动态码率(VBR)
码率波动较大,带宽要求高,图像变化量比较大时方块效应有所改善。发生网络抖动时,比较容易丢包,需要重传或者FEC前向纠错,从而带来延时
# 分辨率
概念 分辨率又称解析度,分辨率越高,像素越多,图像越清晰
视频分辨率 又称图像分辨率,由视频的宽高组成,表示形式宽x高
显示模式 | 宽x高 | 宽高比 | 解释 |
---|---|---|---|
CIF | 352x288 | 11:9 | common intermediate format |
QCIF | 176x144 | 11:9 | Quarter common intermediate format |
VGA | 640x480 | 4:3 | Video Graphics Array |
QVGA | 320x240 | 4:3 | Quarter VGA |
nHD | 640x360 | 4:3 | ninth High Definition |
HD | 1280x720 | 16:9 | High Definition |
FUll HD | 1920x1080 | 16:9 | Full High Definition (FHD) |
2K(FHD+) | 2048x1080 | 17:9 | Full High Definition + |
4K(UHD) | 3840x2160 | 16:9 | Ultra High Definition |
屏幕分辨率 又称显示分辨率,描述屏幕分辨率的单位是ppi(pixel per inch,每英寸像素数)
位分辨率 又称位深(BitDepth),每个像素点存储信息的位数。常见的有8位、16位、24位、32位色彩。Android的Bitmap常见的有ALPHA_8、RGB_565、ARGB_4444、ARGB_8888
# 帧率(FPS)
视频帧率 测量显示帧数的量度,单位为每秒显示的帧数(FPS,Frame Per Second),一般视频帧率为24fps,P制(PAL,德国提出,中国、印度、巴基斯坦等国家使用)为25fps,也就是每帧40ms;N制(NTSC,美国标准委员会提出,美国日本韩国等国家使用)为30fps,
显示帧率 以帧为单位的位图图像连续出现在显示器的频率,也称刷新速率。 Android、IOS等移动设备刷新率为60Hz,也就是60fps,Android 11支持120Hz
# 像素格式
像素格式 像素色彩分量的排列,由每个像素使用的总位数以及各分量的位数决定。
图像的像素格式 一般是RGBA四个分量通道各占8bits,组成一个32位的像素。其中R=Red、G=Green、B=Blue、A=Alpha
视频的像素格式 不是RGBA,而是YUV,其中Y=亮度(Luma),U=色度(Chroma),V=对比度(Contrast)
# 画质
概念 画面的质量,由清晰度、锐度、解析度、色彩纯度、色彩平衡等指标构成
- 清晰度 图像细节纹理及其边界的清晰程度
- 锐度 反应图像平面清晰程度,以及图像边缘的锐利程度
- 解析度 指像素点的数量,与分辨率对应,分辨率越高,解析度越高
- 色彩纯度 指色彩的鲜艳程度。所有色彩都是三原色组成,其他颜色都是三原色混合而成,理论上可以混合出256种颜色。原色的纯度最高。色彩纯度是指原色在色彩中的百分比
- 色彩平衡 用来控制图像的色彩分布,使得图像整体达到色彩平衡
# 色域与HDR
色域 指某种表色模式所能表达的颜色构成的范围区域,色域空间越大,所能表现的颜色越多。
HDR(High Danamic Range),高动态范围,比普通图像提供更多动态范围和图像细节,能够更好反应真实环境的视觉效果。颜色值经过归一化后,范围一般是[0,1]。而HDR可以表达超出1的颜色值,拥有更大的颜色范围。
# 旋转角度
概念 视频的YUV储存方向。一般的视频旋转角度是0°,对应的是横屏显示。后置摄像头竖屏拍的视频,旋转角度为90°,对应的是竖屏显示。Android中可以通过MediaMetaDataRetriever获取旋转角度。
# 时长
概念 视频所有图像播放所需要的时间称为视频时长。计算公式:
假设一个视频帧数为1000,帧率为25fps,那么时长为40s。
# 封装格式
视频的封装格式 由特定格式头+媒体信息+音视频轨(字幕)数据+视频轨索引组成
常见的封装格式有:mp4、mkv、webm、avi、3gp、mov、wmv、flv、mpeg、asf、rmvb等。
# 编码协议
视频经过解封装得到的视频轨数据,是经过编码的,所以显示视频帧前需要解码。不同编码算法组成不同编码协议。
常见的有:H264(AVC,一般使用x264编码)、H265(HEVC,一般使用x265编码)、VP8、VP9、MPEG4、MJPEG、WMV3等。