其他分享
首页 > 其他分享> > 视频编解码系列(一)压缩编码基础常识

视频编解码系列(一)压缩编码基础常识

作者:互联网

一:视频为什么可以被压缩

视频信息之所以存在大量可以被压缩的空间,是因为其中本身就存在大量的数据冗余。

其主要类型有以下四种:

时间冗余:视频相邻的两帧之间内容相似,或者帧直接存在运动关系
空间冗余:视频的某一帧内部的相邻像素存在相似性,或者变化的相关性
编码冗余:视频中不同数据出现的概率不同(所以我们可以进行压缩编码)
视觉冗余:观众的视觉系统对视频中不同的部分敏感度不同,比如YUV中对Y亮度更加敏感

针对这些不同类型的冗余信息,在各种视频编码的标准算法中都有不同的技术专门应对,以通过不同的角度提高压缩的比率。

二:视频编码标准化组织

从事视频编码算法的标准化组织主要有两个,ITU-TISO

ITU-T,全称International Telecommunications Union - Telecommunication Standardization Sector,即国际电信联盟——电信标准分局。该组织下设的VCEG(Video Coding Experts Group)主要负责面向实时通信领域的标准制定,主要制定了H.261/H263/H263+/H263++等标准。

ISO,全称International Standards Organization,即国际标准化组织。该组织下属的MPEG(Motion Picture Experts Group),即移动图像专家组主要负责面向视频存储、广播电视、网络传输的视频标准,主要制定了MPEG-1/MPEG-4等。

实际上,真正在业界产生较强影响力的标准均是由两个组织合作产生的。比如MPEG-2、H.264/AVC和H.265/HEVC等。

三:视频压缩编码的分类

主要可以分为以下两种大类别:基于波形的编码基于内容的编码

(一)基于波形的编码(主流)

特点:编码的数据是针对于每一帧图像包含的像素值,即采样像素的波形。

方法:利用像素之间在时间与空间上的相关性采用预测编码和变换编码结合的的基于块的混合编码方法(到目前任然是最主流的编解码方法)

代表:MPEG-1,MPEG-2,H264,H264等等

(二)基于内容的编码

特点:视频帧分成对应不同物体的区域,分别对其编码
方法:针对不同物体的形状、运动和纹理分别进行编码(运算复杂度太高,导致发展慢,不过CV方向发展挺多)
代表:MPEG-4

四:视频压缩编码的基本技术

为了专门处理视频信息中的多种冗余,视频压缩编码采用了多种技术来提高视频的压缩比率。其中常见的有预测编码、变换编码和熵编码等等

(一)预测编码:用于处理视频中的时间和空间域的冗余

预测编码通过传输预测像素值与实际像素值之差,利用时间或者空间相邻像素之间较强的相关性进行编码!

视频处理中的预测编码主要分为两大类:帧内预测帧间预测

1.帧内预测:

预测值与实际值位于同一帧内,用于消除图像的空间冗余
帧内预测的特点是压缩率相对较低,然而可以独立解码,不依赖其他帧的数据
通常视频中的关键帧都采用帧内预测。

2.帧间预测:

帧间预测的实际值位于当前帧(预测的帧),参考值位于参考帧,用于消除图像的时间冗余
帧间预测的压缩率高于帧内预测,然而不能独立解码,必须在获取参考帧数据之后才能重建当前帧

通常在视频码流中,I帧全部使用帧内编码,P帧/B帧中的数据可能使用帧内或者帧间编码。

(二)变换编码

目前主流的视频编码算法(MPEG1,MPEG2,H264,H265)均属于有损编码通过对视频造成有限而可以容忍的损失,获取相对更高的编码效率

造成信息损失的部分在于变换量化这一部分:

进行量化之前,首先需要将图像信息从空间域通过变换编码变换至频域,并计算其变换系数供后续的编码。视频编码算法中通常使用正交变换进行变换编码,常用的正交变换方法有:离散余弦变换(DCT)、离散正弦变换(DST)、K-L变换等。

(三)熵编码:主要用于消除视频信息中的统计冗余。

由于信源中每一个符号出现的概率并不一致,这就导致使用同样长度的码字表示所有的符号会造成浪费。

通过熵编码,针对不同的语法元素分配不同长度的码元,可以有效消除视频信息中由于符号概率导致的冗余。

在视频编码算法中常用的熵编码方法有变长编码和算术编码等,具体来说主要有上下文自适应的变长编码(CAVLC)上下文自适应的二进制算术编码(CABAC),都是H264中常见的熵编码方法。

注意:变换编码和熵编码中包含有无损压缩技术

FFmpeg学习(四)视频基础中:

整数离散余弦变换(无损压缩技术): ----- 经过上面两种压缩后(帧内、帧间),数据已经很小了,但是还可以通过DCT变换,将有用数据集中,其他位置为0,进行压缩。可以减少复杂度,利于后面的无损压缩 
CABAC压缩(无损压缩技术):    ----- 根据上下文进行数据的压缩

 

标签:编解码,编码,MPEG,预测,视频,常识,像素,冗余
来源: https://www.cnblogs.com/ssyfj/p/15347423.html