当前课程知识点:多媒体技术基础 >  第四章 视频数据的压缩编码 >  4.1 基于帧的视频编码 >  4.1 基于帧的视频编码

返回《多媒体技术基础》慕课在线视频课程列表

4.1 基于帧的视频编码在线视频

下一节:4.2 视频压缩编码国际标准

返回《多媒体技术基础》慕课在线视频列表

4.1 基于帧的视频编码课程教案、知识点、字幕

同学们好

今天我们开始学习第四章

视频数据的压缩编码技术

视频编码技术

我们可以对它进行简单的一个分类

那么视频压缩编码技术呢

可以分为两大类

第一类是基于图像帧

或者是图像块的编码技术

那么这一类编码技术是以帧或者块

为基本的编码单元进行编解码

主要是依据于先农理论

综合的应用第一代压缩编码器

所以也被称为

第一代的图像压缩编码技术

那么基于这类压缩编码技术

已经形成了一系列的国际编码标准

我们在后面的内容中

会进行相应的学习

第二类视频编码技术是

基于对象的编码技术

那么这类编码技术

主要是以可视对象为基本的

单元进行编辑码

基于对人类视觉特性的研究

通过识别视频序列中的区域和物体

并对它们进行编码

所以也被称为

第二代图像压缩编码技术

那么这类编码技术

首先要对视频序列中的区域和物体

进行一个分类识别

在此基础上进行

针对物体和区域的编码

由于目前来看

对于视频序列中的

区域和物体的方位识别技术

还不够成熟

所以说这类基于对象的视频编码技术

就目前的技术市场应用来看是有限的

还处于研究探索阶段

所以在我们后续的内容中

主要介绍的是

基于图像帧或者叫图像块的

视频编码技术

我们这一节开始学习

基于帧的视频编码技术

首先我们做一个概述

基于帧的视频编码基本框架

我们这个地方给出来了

在基于帧的视频编码技术中

采用的是混合压缩编码的技术

在编码中采用了

变换编码 预测编码和熵编码

所以是一种混合的编码技术

那么我们先看一下

这个编码框架中的编码器这一端

视频信号进入编码器之后

首先进行预处理

后面我们会对预处理环节所要做的

技术处理做详细介绍

预处理之后的视频

进入编码器进行视频的编码处理

视频信号进入编码器

首先要进行一个预测误差的求解

预测误差是基于对

输入视频图像块

进行的预测

在预测的基础上完成预测误差的求解

预测误差进入到

变换编码环节进行一个变换处理

变换编码的系数再进入后续的量化

量化得到的量化结果

进入到熵编码器进行一个商品编码

商品编码形成的比特流

送入信道进行传输

在解码端视频流首先进行一个熵解码

然后是反量化和反DCT变换

通过区块效应

产生最后的视频信号的输出

对于视频信号进行编码

是按层次序列划分进行的

那么我们先来看一下视频编码的层次

基本上是按照六个层次进行划分

第一层是序列层

对应的就是一个序列

序列的长度是不定的

序列层前面有序列的头

那每一个序列层又有若干个

GOP组成

那么所以说序列层

下面对应的是GOP层

每一个GOP是有一组图像

构成的一个图像短序列

那么GOP是指的

两个爱人之间的距离长短

GOP又可以进一步划分为

一个一个的图像

也就是说

GOP是由一个个编码图像构成

那么每一个图像又进一步划分成

一个一个的条带

也叫slice

每一个条带

进一步的划分成

一个个的图像宏块

我们简称MB

每一个宏块又可以

进一步的划分成一个一个的图像块

那么一般宏块的大小是

16·16像素的图像块

那么每一个宏块

进一步划分成图像块

也就是我们所称的block

那么图像块的大小一般是8·8的像素

那么每一个图像块

再进行DCT变化

或者是进行正交变换

那么形成变换系数

那么对应的就是最下面一层的

图像块块层

那么视频压缩编码针对于不同的

编码层次

采用不同的相应技术

李阳说我们的运动估计就在

图像的宏块层上进行

那么我们的正交变换编码

是施加在每一个图像框上

所以在二层上来实现

那么我们来看一下视频编码层

具体的条带划分以及条带对应的宏块

它们之间的关系

那么这张图给出了

一张图像的一个条带划分的一个示意

那么左边每一个细的巨型

调区域对应的是一个一个的

slice的划分

那么对于silce的划分大小呢

是可以不定的

那么我们看到ABCDE到Q

对应着整个一个图像

我们把它划分出相应的调带

那么每一个条带每一个slice

那么每一个条带每一个slice

又可以划分出一个一个的宏块

那么每一个宏块

如果拿出来看的话

它是由亮度和

两个色差分量的块构成的

那么一般

亮度洪块是16·16的像素大小

那么我们右边所看到的

这样子的一个宏块

对应的是4:2:0的抽样格式

亮度和两个色差信号对应的

头像块的大小对应关系

我们看到4个8·8的亮度块

对应有两个8·8的色度块

那么我们后面再进一步的

对于这样子的图像块进行

变换编码的时候

那么其实就是对应的

每一个8·8的图像块来施加

DCT变换

下面我们来看一下编码器的基本工作原理

那么编码器工作的第一个环节

需要进行图像信号的预处理

图像信号的预处理

我们可以用下面这张图

来进行一个描述

预处理包括A/D转换

干嘛矫正以及

RGB信号到YCbCr信号的转换

也就是说

RGB分量到亮度和色差分量的转换

然后是滤波以及抽取

那么在这个预处理环节中

输入的我们假设是模拟的分量信号

首先要进行一个模数转换

转换成数字信号

然后进行一个干妈矫正

矫正之后的分量信号

要进行一个亮度和色差分量的行程

那么我们后续的处理呢

都是分别对亮度和色差信号进行的

那么转换为

YCbCr的亮度和色差分量之后

要进行一个滤波

那么这个滤波主要是

基于我们人的眼睛

对于亮度信号的分辨率要求高

对色度信号的分辨率

要求低的这样子的一个特性

那么我们可以对

色度信号的带宽把它降低

这样子能够方便我们后续

对于数据量的降低

对于两个色差信号

我们在进行一个后续的抽取处理

就形成了类似于我们刚才所看到的

4:2:0的

亮度和色差的这样一个压采样的格式

那么编码器工作的第二个环节

是进行运动估值和补偿

在这个环节中

首先对于图像块

要进行一个分块的处理

比方说我们刚才形成的亮度分量和

两个色差分量

要对亮度分量进行一个16·16的分块

形成一个一个的我们所说的宏块

那么在宏块的基础上

要进行一个块匹配的搜索

那么块匹配的搜索的目的

是为了寻找运动矢量

为了更好的完成预测

那么通过匹配块搜索

获得我们对运动矢量的估计

那么基于估计出来的运动矢量

我们可以得到

输入块的预测值

那么具体预测的时候

我们前面介绍的相关的技术有

前向预测

后向预测还有双向预测

那么基于剧情预测技术

我们得到

对应的宏块的预测值

然后求解预测误差

在预测误差求解的基础上

再做后续环节的相应信号处理

那么我们在这一环节中

基于运动补偿的预测

实现的就是属于帧间预测

那么重点去除的是

视频信号中的时间冗余

当然在具体应用中

还可以根据

图像内容的复杂程度以及图像序列的

场景切换的情况

在不同的图像中采用帧内的预测方式

我们后面的内容会涉及

到该运动补偿的预测完成之后

对预测误差要采取

变换编码的处理

所以说

下一个处理环节是对于

预测误差信号进行一个DCT变换

那么通过DCT变换

我们能够对于预测误差中的

冗余信息进一步的去除

那么我们在前面的介绍中

大家已经知道了

DCT变换这样子的变换编码

能够使这个

变换之后的系数的能量集中

而且借助于

DCT变换之后的量化编码

那么能够使变换系数

大多数的系数或者是高频系数

多数变为零

这样子方便后续的编码环节

那么在DCT变换的这个环节需要考虑

正变换和反变换之间的匹配关系

那么我们知道DCT变换是属于

需要浮点运算的这样子的一类十数变化

那么编解码器如果自常使用的不同

那么会造成

DCT和IDCT之间的适配

那么这也是我们后续编码标准中

采用相应的技术来解决的一个方面

那么DCT变换之后要采取量化编码

DCT变换的系数

送到量化编码环节

进行一个系数的量化

那么量化编码是编码器中

唯一产生信息损失的一个环节

量化编码器的步长的大小

会影响我们编码器输出码率的大小

同时它也会影响

解码图像质量的好坏

所以说在编码器中

通常通过调整量化器的量化参数

来实现对于输出码流的码率的调整

以及图像质量的平衡

那么在量化这个环节

一般帧内编码的量化参数和

帧间编码的量化参数是有区别的

那么在这儿

我们给出了帧内编码的一个8·8的

一个量化矩阵

以及帧间编码的一个8·8的量化矩阵

那么在这个矩阵中

每一个位置上对应的数值

对应的就是我们对于

8·8的DTC变换的系数

不同位置上的系数

所采用的量化步长的数值

那么我们看到帧内预测编码

它的这个量化步长

从低频到高频量化步长逐渐的增加

那么这是因为对于

帧内预测编码一般我们直接应用于

一个一个的图像块

那么图像块的像素之间的相关性

是比较强的

所以我们可以利用这样子的

一种这个处理方式

我们对于高频系数

把它通过大的量化步长

把它的能量降低

那么对于低频系数

一般代表的图像块的平均亮度

那么我们的步长

用小的量化步长进行量化

那么对于经过帧间预测

得到的预测误差

那么预测误差之间跟原始的

图像空间像素之间的关系

没有直接的对应

所以说对于帧间预测得到的预测误差

我们做DCT变换之后得到的系数

我们看到

所有的系数包括从高频到低频的系数

它的量化步长采用的是一样的

那么对于从

DCT系数经过量化

得到量化后的系数

那么我们可以用这样子的一个

表达式来进行一个量化环节的转换描述

那么在这儿DCT(i.j)对应的是我们

DCT系数中不同位置上的

DCT变换系数

那么通过相应的量化器的量化

我们得到它对应的量化结果输出

就是用QDCT来表示

那么在这个表达式中

这个Q对应的就是

相应ij这个位置上对应的量化步长

比方说

对应这个位置上的量化步长是34

那么这个Scale对应的是

一个量化参数或者叫一个放大因子

那么我们在相应的

视频编码标准中

基本上都有相应的一个

放大因子的矩阵定义

那么这样一个放大因子我们又把它叫做是

一个QP的这样子的一个参数

我们通过这个QP参数

来实现对于量化步长的调整

也就是说

对于一个量化矩阵

我们可以通过调整

这个QP参数或者Scale这个参数

来实现对于量化步长的调整

那么这个函数f对于

帧内编码和帧间编码

所采用的这种转换方式是不一样的

对于帧内编码

采用的是round的方式

对于帧间编码采用的是取整的方式

这个就是量化环节的处理

那么量化之后的系数

大多数的值都变为零

所以说DCT系数矩阵

经过量化之后已经变成了一个稀疏矩阵

那么这样一个稀疏矩阵

我们为了后续进行一个熵编码

那么我们需要把

二维的DCT的这种稀疏矩阵

进行一个矩阵的转换

把它转换为一维的数据序列

那么具体的转换方式

我们看一下

那么有这行扫描方式

我们知道对于DCT系数来说

通过相应的量化处理

那么系数

大多数的能量都变为零

尤其是高频系数部分

多数都会通过量化环节变成零

那么非零的部分

基本上集中在低频环节

那么我们可以通过合理的

二维到一维的转换方式

把它转换成一个

更有效的一维数据系列

那么这种合理的转换方式之一

就是这个Z字形扫描

从低频系数开始

沿着这种Z字形轨迹

从左上角序列的扫描到右下角

这样我们就能够实现

把高频系数的0基本上形成一个

连续的0的这样子的一个排序

那么这样子的排序结果就方便后续的

进一步熵编码的处理

那么如果是一种隔行扫描的图像的话

那么每一帧的相邻行之间

来自于不同的茶

如果按照进行扫描可能

如果按照进行扫描可能

不能够实现更有效的数据序列的排序

那么我们可以采用这种交替扫描的方式

也就是说现在垂直方向上进行扫描

然后再在水平方向上进行扫描

通过这样交替扫描的方式

我们也是希望能够把

非零系数和零的系数

能够延续的形成一个一维数据系列

那么我们看右边这样一个例子

那么右边这样一个8·8的矩阵

对应的就是一个

经过量化之后的8·8的

DCT系数

我们看到非零的值

基本上是在左上角

也就是说低频系数这部分

高频系数基本上都是零

所以说我们采用刚才的真情扫描

就可以得到

我们所看到的这样子的一个

二维到一维的数据序列

那么我们这样一个一维的数据系列

我们就可以采用进一步的游程的

这种数据描述方式

得到对于一维这个系列的一种

二维对一维数据系列的游程的这种表示

那么这个游程表示每一组数的

第一个代表的是

非零数值前面零的个数

那么我们看到

12前面的零的个数是零

所以说对于12这样一个非零值

给出来的是(0 12)的这样一组油层的表示

那么后面类似对于这行扫描

在非零值最后一个非零值之后

如果都是零的话

我们用一个零

我们用一个零

也就说用一个结束的标示来进行表示

用UB来描述

从这个位置开始之后全部都是零

这是我们这个转换系列的一个结束

那么我们在视频编码中基本上

从DCT系数到一维数据序列的转换

都是采用的这样子的一种二

维矩阵到一维矩阵的转换方式

那么二维矩阵到一维矩阵转换之后

我们要实现的就是熵编码

那么熵编码这个环节呢

主要去除的是

数据中存在的统计冗余

我们在前面对熵编码的内容做了介绍

我们前面对

熵编码的内容已经做了介绍

所以说在这个环节中

我们可以通过进一步的

统计冗余的去除

使得我们的编码数据的

这个数据率进一步的降低

那么在熵编码的环节

我们给每一个符号指定一个码子

那么在这个环节的处理之后

我们输出的才是比特流

那么对于商户编码之后的比特流

我们可以送入信道进行传输

那么在解码端熵解码之后

那么我们在输出

相应的解码图像之前

还要进行一步处理就是

区块效应的这样一个滤波

那么我们在前面对视频进行编码的时候

基本上是通过对

图像进行一个分块处理

那么针对于每一块来进行相应的

预测编码以及变换编码和熵编码

所以说在这样子的编码环节的处理下

我们的解码图像会有一些块效应

那么为了降低块效应所引起的视觉不快

那么我们可以在输出重建图像之前

通过低通滤波器对

解码后的图像进行一个平滑

那么来时输出的图像质量得到提升

那么我们在实际的应用中

可能压缩之后的视频流

要送入一个恒定的一个信道进行传输

那么我们前面的内容中

大家已经知道了

我们的视频编码形成的视频流

是一个变码率的流

我们采用的技术站内预测

帧间预测以及变长度的这个熵编码

都是形成一种变码率的码流输出

所以说在实际的应用中

为了适应恒定码率的信道

还需要对输出的码流

进行一个码率的控制

要平滑波动的码率

以适应恒定行道

所以说在编码器中

还有相应的速率控制的这样一个

处理环节

那么下面我们看一下视频序列的编码

那么我们知道对于视频序列

进行压缩编码的时候

我们的编码帧一般有三种类型

帧内编码帧

预测编码帧和双向预测编码帧

分别用I P D来描述

那么I帧我们指的是帧内编码帧

那么这一类编码帧

它是不用参考其它的图像帧

只是利用本帧的信息来完成

相应的编码

那么所以说对于I帧来说

它的解码是只要

它本帧的数据有

那么只要知道本帧的数据

那么就可以完成对于这一帧的解码

那么预测编码帧也就说P编码帧

它的编码是利用了它前面的

I帧或者是P帧作为参考来

实现预测编码的

那么所以说这一类帧在解码的时候

是要依赖于已经完成解码的

它的参考帧来实现对它的解码

那么这一点也是跟I帧

解码的一个不同

那么对于B帧来说

它是属于双向预测编码帧

那么它的带运动补偿的预测是

基于前后两个帧来完成的

那么所以说

在解码端要完成对B帧的解码

必须已经完成

对它前后两个参考帧的解码

在这个基础上才能完成对B帧的解码

所以说我们来看一下

对于由IPB帧的

帧编码构成的一个序列

一般是可以形成

什么样的GOP的组合

那么我们前面说了

一个GOP组对应的其实就是

两个I帧之间的

帧序列构成的这样一个组织

我们在右边的这个图里面看到

两种IBP帧的序列组合方式

那么我们看到

每一个组合的第一帧都是一个I帧

那么这个I帧会

作为后续的B帧和P帧的参考帧来

实现对后续的PB帧的编码

那么我们看到的这两个

GOP的序列组合

它的区别在于

第一个GOP的组合的

最后一帧是一个P帧

而第二个GOP组合的最后一帧是B帧

那么这个I帧呢

是下一个GOP的第一帧

那么所以说这两个GOP的组合

前面这个叫GOP方式

后面的这种组合叫开环的闭合

开环的GOP的方式

多媒体技术基础课程列表:

第一章 概述

-1.1 概述

--1.1 概述

-第一章 作业

--第一章 作业

第二章 视觉特性和视频基础

-2.1 光和彩色

--2.1 光和彩色

-2.2 视觉特性

--2.2 视觉特性

-2.3 扫描

--2.3 扫描

-2.4 模拟彩色电视信号

--2.4 模拟彩色电视信号

-2.5 数字电视信号

--2.5 数字电视信号

-第二章 作业

--第二章 作业

第三章 数据压缩的基本技术

-3.1 信息熵理论

--3.1 信息熵理论

-3.2 率失真理论

--3.2 率失真理论

-3.3 预测编码

--3.3 预测编码

-3.4 序列图像中运动矢量的估计

--3.4 序列图像中运动矢量的估计

-3.5 具有运动补偿的帧间预测

--3.5 具有运动补偿的帧间预测

-3.6 正交变换编码

--3.6 正交变换编码

-3.7 子带编码

--3.7 子带编码

-3.8 量化编码

--3.8 量化编码

-3.9 熵编码

--3.9 熵编码

-第三章 作业

--第三章 作业

第四章 视频数据的压缩编码

-4.1 基于帧的视频编码

--4.1 基于帧的视频编码

-4.2 视频压缩编码国际标准

--4.2 视频压缩编码国际标准

-4.3 H.264/AVC

--4.3 H.264/AVC

-4.4 H.265/HEVC

--4.4 H.265/HEVC

-4.5 基于率失真优化的编码模式选择

--4.5 基于率失真优化的编码模式选择

-4.6 恒定速率编码器的速率控制

--4.6 恒定速率编码器的速率控制

-4.7 压缩编码算法性能的评价

--4.7 压缩编码算法性能的评价

-第四章 作业

--第四章 作业

第五章 音频数据的压缩编码

-5.1 概述

--5.1 概述

-5.2 人的听觉特性

--5.2 人的听觉特性

-5.3 音频信号编码方法

--5.3 音频信号编码方法

-第五章 作业

--第五章 作业

第六章 多媒体传输网络

-6.1 多媒体传输对网络的要求

--6.1 多媒体传输对网络的要求

-6.2 网络对多媒体信息传输的支持

--6.2 网络对多媒体信息传输的支持

-第六章 作业

--第六章 作业

第七章 多媒体同步与数据封装

-7.1 多媒体数据及其时域特征的表示

--7.1 多媒体数据及其时域特征的表示

-7.2 分布式多媒体系统中的同步

--7.2 分布式多媒体系统中的同步

-7.3 连续媒体同步的基本方法

--7.3 连续媒体同步的基本方法

-7.4 广播应用的传输层协议

--7.4 广播应用的传输层协议

-7.5 宽带应用的传输层协议

--7.5 宽带应用的传输层协议

-第七章 作业

--第七章 作业

4.1 基于帧的视频编码笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。