视频压缩学习笔记

最近在学习视频压缩的相关知识,因此浅浅记个笔记以防忘记。
视频压缩最简单的方法是:1.预测编码。2.减去图像在时间顺序。3.编码残差。更好的方法是:1.从前一帧搜索图像的合适成分。2.运动估计。3.运动补偿。

文章目录

  • 基于运动补偿的视频压缩方法
      • 时间冗余
      • 运动补偿
  • 一、H.264


基于运动补偿的视频压缩方法

视频压缩最简单的方法是:1.预测编码。2.减去图像在时间顺序。3.编码残差。更好的方法是:1.从前一帧搜索图像的合适成分。2.运动估计。3.运动补偿。

时间冗余

视频是堆叠在时间维度的一个图像序列,连续帧通常是相似的,视频有显著的时间冗余,且不是对每一帧独立编码,对相邻帧差异进行编码。帧之间的差异的主要原因是相机拍摄或者对象运动造成的。运动可以由通过Motion generators进行补偿,检测相应像素或区域的位移,测量它们之间的差异。在运动图像中都存在空间冗余和时间冗余。

视频压缩学习笔记_第1张图片
运动图像编码原则在于减少空间冗余和时间冗余。帧内压缩方法类似于JPEG,帧间压缩基于运动预测和补偿,如H.264等。

运动补偿

主要有三个步骤:1.运动估计(搜索运动向量)。2.基于预测的运动补偿。3.预测误差的推导。基于运动补偿的视频压缩方法除了第一帧外,只需要对运动矢量和差异宏块进行编码。

视频压缩学习笔记_第2张图片


一、H.264

H.261是一个较早的数字视频压缩标准。由CCITT于1988年发起,成立于1990年,通过ISDN设计用于服务视频电话、视频会议和其他视听服务,要求视频编码器延迟小于150毫秒。
H.264由两类图像帧组成:
I帧:帧内编码帧(intra picture),是独立的图像帧,采用帧内压缩去掉空间冗余信息。
P帧:前向预测编码帧(predictive-frame),通过将图像序列中前面已经编码帧的时间冗余信息来压缩传输数据量的编码图像。参考前面的I帧或者P帧。
B帧:双向预测内插编码帧(bi-directional interpolated prediction frame),既考虑源图像序列前面的已编码帧,又顾及源图像序列后面的已编码帧之间的冗余信息,来压缩传输数据量的编码图像,也称为双向编码帧。参考前面一个的I帧或者P帧及其后面的一个P帧。
GOP:两个I帧之间的一组图片,由一个I帧和多个B/P帧组成,是编解码器存取的基本单位。
IDR帧:I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个I帧叫IDR,这样就方便控制编码和解码流程;IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,IDR图像一定是I图像,但I图像不一定是IDR图像。
2.压缩方式:
H264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
帧内(Intraframe)压缩也称为空间压缩(Spatialcompression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩是编码一个完整的图像,所以可以独立的解码、显示。帧内压缩一般达不到很高的压缩,跟编码jpeg差不多。
帧间(Interframe)压缩的原理是:相邻几帧的数据有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩,它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损的。帧差值算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。

待更。。

你可能感兴趣的:(学习,人工智能,计算机视觉)