音视频编解码与封装
1 视频编码
1.1 视频编码的理论支持
视频编码的核心是去除冗余信息,一般来说视频会存在以下几种冗余信息:
-
空间冗余:视频帧中的相邻像素之间通常有较强的相关性,尤其是在颜色变化较缓慢的区域存在的冗余信息就更多。
-
时间冗余:多帧连续图像之间通常存在很大的相似性,相邻的帧可能仅在物体的运动或场景的微小变化方面有所不同。
-
视觉冗余:人眼对原始图像各处失真敏感度不同,对不敏感且无关紧要的信息给予较大的处理,即使这些信息全部丢失了,人眼可能也察觉不到。
-
编码冗余:事件发生的概率越小,则其熵值就越大。表示信息量越大,就需要分配较长的编码值;反之,发生的概率越大,则其熵值越小,只需分配较短的编码值。
1.2 常见的视频编码格式
编码格式 | 推出机构 | 推出时间 | 特点 |
---|---|---|---|
AV1 | AOMedia | 2018 | 新一代视频编码格式,压缩性能强 |
AVS2 | 中国国家标准委员会 | 2017 | 中国自主制定 |
VP9 | 2013 | 与H.265压缩性能相当,常用于YouTube等视频平台 | |
H.265(HEVC) | MPEG/ITU-T | 2013 | 压缩比高,是H.264的后继标准 |
VP8 | 2008 | 适用于网络视频流、在线视频平台等 | |
VC-1 | Microsoft | 2008 | 用于高清视频 |
ProRes | Apple | 2007 | 使用于视频编辑、后期制作等领域 |
H.264(AVC) | MPEG/ITU-T | 2003 | 目前广泛使用的编码标准之一 |
WMV | Microsoft | 2003 | 通常用于Windows平台 |
MPEG-2 | MPEG | 1994 | 较早的视频编码标准,常用于数字电视、DVD等 |
2 音频编码
2.1 音频编码的理论支持
-
听觉的掩蔽效应:在人的听觉上,一个声音的存在掩蔽了另一个声音的存在,掩蔽效应包括人耳的频域掩蔽效应和时域掩蔽效应。
-
人耳对声音的方向特性:对于2kHz以上的高频声音信号,人耳很难判断其方向性,因而立体声的高频部分不必重复存储。
2.2 常见的音频编码格式
常见音频编码格式:
(1)WAV(Waveform Audio File Format):WAV是Microsoft公司开发的最早的无损数字音频格式,通常用于存储高质量的音频文件,由于不进行压缩,WAV文件相对较大。
(2)MP3(MPEG Audio Layer III):MP3是一种广泛使用的有损音频压缩格式,其压缩比相对较高,适用于在线音乐流媒体和携带式音频设备。
(3)AAC(Advanced Audio Coding):AAC是新一代的有损音频压缩技术,相对于MP3有更好的音质和更高的压缩效率,通常用于iTunes音乐文件、YouTube视频和其他多媒体应用。
(4)APE:是一种无损压缩音频格式,在音质不降低的前提下,可以压缩到WAV文件的一半。
(5)FLAC(Free Lossless Audio Codec):FLAC是一种无损音频编码格式,提供了无损音质的同时,相较于WAV文件占用更小的存储空间。
(6)Opus:Opus是一种开放的、高度灵活的有损音频编码格式,适用于多媒体通信,如语音通话和网络流媒体。其性能好,质量高,但目前还不够普及。
(7)WMA(Windows Media Audio):WMA是由Microsoft公司开发的有损音频编码格式,常用于Windows媒体播放器和其他Microsoft产品。
(8)RealAudio:RealAudio是由Real Networks公司推出的一种音频压缩格式,主要用于在线音频流媒体,其最大的特点就是可以实时传输音频信息。
3 解码
解码是编码的逆过程,即将经过压缩编码的音频或视频数据转换为原始的音频(PCM格式)或视频数据(YUV格式)的过程,使得音频设备可以播放,视频播放器或显示器可以显示。
- 软解码:使用软件实现的解码器来解析和处理压缩数据,软件解码通常比较灵活,但对处理器性能有一定的要求;
- 硬解码:使用专用的硬件解码器来处理压缩数据,硬件解码通常能提供更高的性能和效率,适用于嵌入式系统、移动设备等资源受限的环境;
- 硬件加速解码:结合软件解码和硬件解码的优势,使用硬件加速功能来提高解码性能。常见的硬件加速器包括GPU加速和专用解码器。
4 封装 / 容器
定义: 封装格式是一种文件结构,用于将不同类型的媒体流(如视频、音频、字幕等)组合在一起,形成一个完整的多媒体文件。封装格式通常包括文件头、媒体流、索引和元数据等信息。
作用: 封装格式的主要作用是组织、封装和同步不同编码的媒体流,使其能够以一个统一的形式进行存储、传输和播放。封装格式不直接涉及数据的压缩或解压缩,而是提供了一个容器,用于存储各种媒体流。
常见视频封装格式与对应的视频文件格式:
视频封装格式名称 | 视频文件格式 |
---|---|
AVI(Audio Video Interleave) | .avi |
WMV(Windows Media Video) | .wmv |
MPEG(Moving Picture Experts Group) | .mpg/.vob/.dat/.mp4 |
Matroska | .mkv |
Real Video | .rm |
QuickTime | .mov |
Flash Video | .flv |
WebM | .webm |