编解码
视频编解码
视频实际上就是一帧一帧的图片,拼接起来进行播放;标准的图像格式使用
实时视频编码器需要考虑两个因素:编码计算量和码率带宽,实时视频会运行在移动端上,需要保证实时性就需要编码足够快,码率尽量小。基于这个原因现阶段一般认为
编码基础
总的来说,常用的编码方式分为三种:
- 变换编码:消除图像的帧内冗余。涉及到图像学里面的两个概念:空域和频域。空域就是我们物理的图片,频域就是将物理图片根据其颜色值等映射为数字大小。而变换编码的目的是利用频域实现去相关和能量集中。常用的正交变换有离散傅里叶变换,离散余弦变换等等。
- 运动估计和运动补偿:消除帧间冗余。视频压缩还存在时间上的关联性。例如,针对一些视频变化,背景图不变而只是图片中部分物体的移动,针对这种方式,可以只对相邻视频帧中变化的部分进行编码。
- 熵编码:提高压缩效率,熵编码主要是针对码节长度优化实现的。原理是针对信源中出现概率大的符号赋予短码,对于概率小的符号赋予长码,然后总的来说实现平均码长的最小值。编码方式(可变字长编码)有:霍夫曼编码、算术编码、游程编码等。
I 帧(I-frame): 学名叫做: Intra-coded picture
。也可以叫做独立帧。该帧是编码器随机挑选的参考图像,换句话说,一个I 帧本身就是一个静态图像。它是作为B,P 帧的参考点。对于它的压缩,只能使用熵
和变化编码
这两种方式进行帧内压缩。所以,它的运动学补偿基本没有。P 帧(P ‑frame): 又叫做Predicted picture
–前向预测帧。即,他会根据前面一张图像,来进行图片间的动态压缩,它的压缩率和I 帧比起来要高一些。B 帧(B ‑frame): 又叫做Bi-predictive picture
– 双向预测。它比P 帧来说,还多了后一张图像的预测,所以它的压缩率更高。

考虑到不同帧传输的无序性,我们还需要引入
PTS(presentation time stamps): 显示时间戳,显示器从接受到解码到显示的时间。DTS(decoder timestamps): 解码时间戳。也表示该sample 在整个流中的顺序
H.26X
- H.261:主要在老的视频会议和视频电话产品中使用。
- H.263:主要用在视频会议、视频电话和网络视频上。
- H.264:
H.264/MPEG-4 第十部分,或称AVC(Advanced Video Coding ,高级视频编码) ,是一种视频压缩标准,一种被广泛使用的高精度视频的录制、压缩和发布格式。 - H.265:高效率视频编码
(High Efficiency Video Coding ,简称HEVC) 是一种视频压缩标准,H.264/MPEG-4 AVC 的继任者。HEVC 被认为不仅提升图像质量,同时也能达到H.264/MPEG-4 AVC 两倍之压缩率( 等同于同样画面质量下比特率减少了50%) ,可支持4K 分辨率甚至到超高画质电视,最高分辨率可达到8192×4320(8K 分辨率) ,这是目前发展的趋势。直至2013 年,Potplayer 添加了对于H.265 视频的解码,尚未有大众化编码软件出现。

在实时视频当中最好不要加入
MPGA 系列
MPEG-1 第二部分(MPEG-1 第二部分主要使用在VCD 上,有些在线视频也使用这种格式。该编解码器的质量大致上和原有的VHS 录像带相当。)MPEG-2 第二部分(MPEG-2 第二部分等同于H.262 ,使用在DVD 、SVCD 和大多数数字视频广播系统和有线分布系统(cable distribution systems) 中。)MPEG-4 第二部分(MPEG-4 第二部分标准可以使用在网络传输、广播和媒体存储上。比起MPEG-2 和第一版的H.263 ,它的压缩性能有所提高。)MPEG-4 第十部分(MPEG-4 第十部分技术上和ITU-T H.264 是相同的标准,有时候也被叫做“AVC”) 最后这两个编码组织合作,诞生了H.264/AVC 标准。ITU-T 给这个标准命名为H.264 ,而ISO/IEC 称它为MPEG-4 高级视频编码(Advanced Video Coding ,AVC)。
音频编码器
实时音视频除了视频编码器以外还需要音频编码器,音频编码器只需要考虑编码延迟和丢包容忍度,所以一般的
同视频编码类似,将原始的音频流按照一定的标准进行编码,上传,解码,同时在播放器里播放,当然音频也有许多编码标准,例如