H.264/AVC视频编解码技术详解 第一章 视频信息与压缩编码

H.264/AVC视频编解码技术详解系列笔记 是对 H.264/AVC视频编解码技术详解 课程的学习

人与世界的交互

从远古时代开始,人类就在不断为适应环境、改造环境而艰苦斗争。
人类通过嗅觉、触觉、听觉、视觉等来适应社会,而视觉尤为重要,后来人们希望用更直观的形式记录所看到的东西,因此有了象形文字到现代文字的演变,以及壁画到绘画、照片、视频的演变。

视频通过每一帧的图像表达信息,视频包含的音频可以提供大量信息,视频通过图像的运动、场景的变换提供信息,视频信息是最接近人的直观体验的信息表达方式,是最高效的信息记录方式。

视频信号的表示方法

在真实的世界中,视频影像处理的是模拟信号,为了适应现在的计算机,模拟的信号必须转换成数字格式,才能进行下一步的传输和处理。

在数字格式的视频信号中,组成视频的基本结构是一帧帧连续而关联的图像。组成每一帧图像的基本结构是成平面紧密排列的像素。每一个像素代表图像中一个彩色的点,由颜色的三基色分别取不同的分量构成:
R:红色分量
G:绿色分量
B:蓝色分量

RGB颜色空间:

  1. RGB颜色空间常用于显示器系统
  2. RGB颜色空间由红绿蓝三基色构成,每一个像素至少有三个颜色分量构成
  3. RGB三个分量每一个分量以1字节表示,则可以表示成256*256*256种不同的颜色,1字节=8bit,2^8=256
  4. 常见的图像格式如位图(bmp)格式以RGB形式保存

YUV颜色空间

  1. 实际的编解码等视频处理中,YUV格式比RGB格式更为常用
  2. YUV格式中,一个像素分别用亮度和色度分量表示,每一个像素由一个亮度分类Y和两个色度分量U、V组成
  3. YUV格式中的亮度与色度分量可以与表示的像素一一对应,也可以对色度分量的数据进行采样,即色度分量少于亮度分量,这样处理的原因是因为人的感官对亮度信息的敏感度远高于对色度信息的敏感度
  4. YUV格式的优势是,可以减少色度分量的采样率,这样既可以不对图像造成太大的影响,又可以减少数据的存储量,还可以兼容黑白和彩色的显示设备。显示设备是黑白:将色度分量去掉,只需要亮度分量即可。
  5. YUV图像的常见色度采样方式有:4:4:4,4:2:2,4:2:0(最常用)

4:4:4
在这里插入图片描述
4:2:2:即每两个像素共用一个U分量一个V分量
在这里插入图片描述
4:2:0:每四个像素只对应了一个U分量一个V分量
在这里插入图片描述

视频压缩编码

编码:将信息按照一定规则使用某种形式的码流表示与传输
常需要编码的信息:文字、语音、视频、控制信息等

视频编码的主要目的:数据压缩

  • 动态图像的RGB/YUV表示,数据量极大
  • 存储空间和传输带宽完全无法满足像素格式视频保存传输的要求

图像的每个像素的三个颜色分量:RGB,每个颜色分量以8bit保存,每像素至少需要3bytes

分辨率1280*720的一帧图像:3byte*1280*720b≈2.64Mb

25frame/sec的视频,所需码率(码率:视频码率就是数据传输时单位时间传送的数据位数,一般单位是kbps即千位每秒):1280*720*8*3*25=553Mb/sec,该码率已经超过传输带宽的极限了,如果是分辨率更大的视频,则其码率会更大

因此,我们需要对视频进行压缩。

视频信息为什么可以被压缩?

  1. 时间冗余:视频相邻的两帧之间内容相似,存在运动关系
  2. 空间冗余:视频的某一帧内部的相邻像素存在相似性
  3. 编码冗余:视频中不同数据出现的概率不同
  4. 视觉冗余:观众的视觉系统对视频中不同的部分敏感度不同

视频压缩编码的分类:

  • 基于波形的编码【方法更主流】
  1. 特点:编码的数据针对每一帧图像包含的像素值,即采样像素的波形
  2. 方法:利用像素之间在时间和空间上的相关性,采用预测编码和变换编码结合的基于块的混合编码方法
  3. 代表:MPEG-1,MPEG-2,H.264,H.265等
  • 基于内容的编码【太复杂】
  1. 特点:将视频帧分成对应不同物体的区域,分别对其编码
  2. 方法:针对不同物体的形状、运动和纹理进行编码
  3. 代表:MPEG-4

视频压缩编码的基本技术

  • 预测编码:传输预测像素值与实际像素值之差,利用时间或空间相邻像素之间较强的相关性
  1. 帧内预测:预测值与实际值位于同一帧内,用于消除图像的空间冗余
  2. 帧间预测:实际值位于当前帧,预测值位于参考帧,用于消除图像的时间冗余,相比帧内预测压缩率更高,由于帧间预测参考了其他帧的数据,因此,不能独立解码,所以只能在获取参考帧数据之后,才能重建当前帧
  • 变换编码:对视频造成有限的可以容忍的损失来获取相对更高的编码效率,造成信息损失的部分,就在其变换量化的部分,在进行量化之前,先将像素由空间域变换到频域,针对变换系数进行编码
  1. 可用于视频变换编码的正交变换:DCT变换、K-L变换
  • 熵编码:熵编码用于消除视频信息中的冗余,由于信源中每一个符号出现的概率并不一致,导致使用同一长度的编码表示符号可能会造成浪费,通过熵编码,利用信源的统计特性进行压缩编码,可消除由于符号概率导致的冗余
  1. 常用方法:变长编码、算数编码
发布了14 篇原创文章 · 获赞 2 · 访问量 487

猜你喜欢

转载自blog.csdn.net/weixin_43116900/article/details/104753265