视频基础
图像表示
RGB格式是最常见的图像表示方法,其中RGB888表示方式使用24位(8位红色、8位绿色、8位蓝色)描述一个像素的颜色。图像大小可以通过分辨率计算,例如一张1920×1080的RGB888图像占用大小为1920 × 1080 × 3字节。
YUV格式将亮度(Y)和色度(U、V)分离,YUV420P和YUV420SP是常见的格式。YUV420采用4:2:0采样方式,色度分量在水平和垂直方向均降采样一半,数据量仅为RGB格式的一半。YUV420P是平面存储模式,而YUV420SP是交错存储模式。
视频基本概念
码率(bitrate)指单位时间内视频数据的流量,通常以kbps或Mbps为单位。帧率(fps)表示每秒显示的帧数,如30fps或60fps。分辨率描述图像的尺寸,例如1920×1080(全高清)。
I帧是关键帧,独立编码;P帧通过前向预测编码;B帧通过双向预测编码。I帧的解码不依赖其他帧,而P帧和B帧依赖参考帧。
视频压缩算法
MPEG系列包括MPEG2(DVD)、H264(AVC)、H265(HEVC)。H265相比H264压缩效率更高,但计算复杂度更高。AVS是中国自主的视频编码标准,VP8和VP9是Google开发的编码格式,常用于WebRTC和在线视频。
音频基础
声音的物理性质
声音由振动产生,波形由频率和振幅决定。人耳可听频率范围为20Hz至20kHz。振幅决定音量大小,频率决定音高。
数字音频
PCM(脉冲编码调制)将模拟信号转换为数字信号。采样频率常见的有44.1kHz(CD)、48kHz(DVD)、96kHz(蓝光)。采样位数(如16bit)决定量化精度,位数越高,动态范围越大。
未压缩音频的比特率计算公式:
比特率 = 采样频率 × 采样位数 × 通道数
例如,44.1kHz、16bit、双声道音频的比特率为1411.2kbps。
音频编码原理
音频编码通过去除冗余信号实现压缩,包括人耳不可听频段和掩蔽效应(频谱掩蔽、时域掩蔽)。编码流程包括时频变换、心理声学模型分析、比特分配、量化及编码流生成。
常见音频编码器包括OPUS(低延迟)、MP3(广泛兼容)、AAC(高效率)、AC3/EAC3(多声道支持)。选型需考虑音质、带宽和兼容性需求。
封装格式与音视频同步
封装格式
封装格式(容器)将音视频流、字幕等打包为单一文件。常见格式包括MP4(H264+AAC)、MKV(多轨道支持)、FLV(流媒体)、TS(直播传输)。MP4和FLV是网络视频的流行组合。
音视频同步
同步依赖时间戳管理:
- DTS(解码时间戳)指示解码顺序。
- PTS(显示时间戳)指示渲染顺序。
同步策略优先级:
- Audio Master:视频同步到音频(推荐)。
- External Clock Master:同步到外部时钟。
- Video Master:音频同步到视频。