Java教程

视频编解码——主流视频编码标准的发展(H.261/H.263/MPEG-1/MPEG-2/MPEG-4))

本文主要是介绍视频编解码——主流视频编码标准的发展(H.261/H.263/MPEG-1/MPEG-2/MPEG-4)),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 制定标准的组织
  • 两种编码方式
    • 基于波形的编码
    • 基于内容的编码
  • H.261
    • 系统图
    • 信源编码器
    • 复合编码器
  • H.263
  • MPEG-1
    • 码流结构
  • MPEG-2
    • 码流结构
  • MPEG-4

制定标准的组织

在这里插入图片描述

这些标准主要由两个组织制定。

  • 国际电信联盟——ITU-T
  • 国际标准化组织——ISO
    目前世界上影响力最强的视频编码标准基本都出自于这两个组织。

在这里插入图片描述
除了这两个组织,还有

  • Google——VP8/VP9
  • Microsoft——VC-1
  • 国产自主标准——AVS/AVS+/AVS2

两种编码方式

基于波形的编码

特点
编码的数据正对每一帧的图像包含的像素值,即采样像素的波形

方法
利用像素之间再时间与空间上的相关性,采用预测编码变换编码结合的基于块的混合编码方法

代表
MPEG-1,MPEG-2,H.264,H.265等

这种编码方式是从编解码开始到现在,最主流的编码框架

基于内容的编码

特点
视频帧分城对立不同物体的区域,分别对其编码

方法
针对不同物体的形状、运动和纹理进行编码

代表
MPEG-4

H.261

诞生于1988年,是视频编码发展以来第一个里程碑。

是第一种采用“块结构的混合编码”方案的编码标准

目的
视频会议、可视电话等低码率视屏图像传输

数据格式
公共中间格式(Common Intermediate Format,CIF)

在H.261产生的时代,由于各国电视制式的不一致,是无法互通的。为了解决数据格式不兼容的问题,H.261定义了一种中间数据格式——CIF。
所以在使用H.261进行编码之前,首先转换为CIF格式然后再编码,接收端接收后再转为各自的格式。

每一帧的分辨率(亮度):

  • CIF——352 x 288
  • QCIF(quater)——176 x 144

系统图

在这里插入图片描述

信源编码器

H.264、H.265格式都是通过以下格式进行改进的
在这里插入图片描述
主要用到的技术如下

  • 帧内编码/帧间编码
    根据帧间相关性判定。相关性高使用帧间编码、相关性低使用帧内编码
  • 帧间编码/运动估计
    使用以宏块为基础的运动补偿预测编码。当前宏块从参考帧中查找最佳匹配宏块,并计算其相对偏移量(Vx,Vy)最为运动矢量;编码器使用DCT、量化编码当前宏块和预测宏块的残差信号
  • 帧内编码
    帧内编码直接使用DCT编码8 x 8像素值
  • 环路滤波器
    实际上是一个数字低通滤波器,滤除不必要的高频信息,以消除方块效应

复合编码器

符合编码器将不同层次的H.261语法元素编码为H.264的码流
在这里插入图片描述

  • 帧层
    由帧首和块组数据构成;帧首包括帧起始码(PSC)、帧计数码(TR)、帧类型(PTYPE)等

  • 块组层
    由块组首和宏块数据组成。块组首包括组七十码(GBSC)、块组编号码(GN)、块组量化步长等

  • 宏块层
    由宏块首和块数据构成;宏块首包括宏块地址码、宏块类型、宏块量化步长、运动矢量数据、编码模式等

  • 块层
    包括每个 8 x 8块的DCT系数按之字形扫描后的熵编码码流,以块结束符结尾

H.263

是相对于H.261的改进标准,相比于H.261有更好的压缩效率。

  • 运动矢量
    H.261的运动矢量是分配到每个宏块中的,即H.261对每一个MB分配一个运动矢量;而H.263支持每一个8 x 8块各自使用一个运动矢量

  • MV精度
    相对于H.261只支持整数像素运动搜索,H.263的精度为1/2像素

  • 双向预测模式
    H.263支持B帧,使用前后双向预测模式

  • 熵编码
    采用算术编码算法,运算复杂度高,可显著降低码率

  • 支持的图像格式

在这里插入图片描述

MPEG-1

ISO下属的移动图像专家组指定的早期视频压缩标准。
主要用于视频信息的存储、广播电视以及网络传输应用

  • 作用
    CD/VCD中存储音视频信息

  • 码率
    1.2~1.5MB/s

  • 图像类型
    支持I、B、P帧。

    • I帧:帧内编码帧,采用帧内编码,可作为P/B帧的参考帧
    • P帧:前向预测帧,采用帧间编码,以I/P帧作为参考帧
    • B帧:双向预测帧,参考前后两个方向的参考帧
  • 图像显示顺序
    在这里插入图片描述

码流结构

总体和H.261类似,采用分层的码流结构
相比于H.261,MPEG-1增加了条带层,每一个宏块所有的编码操作只能在一个条带内实现
条带层可以有效防止编码错误在一帧内扩散
在这里插入图片描述

MPEG-2

码流层次分三层:

  • 基本流
    ES,由视频编码的视频基本流和音频编码的音频基本流构成
  • 打包基本流
    PES (package element stream),为音视频ES分别打包
  • 传输流、节目流
    TS/PS,若干个PES进行服用后输出,分别用与传输和存储

DVD采用的是MPEG-2标准进行压缩的
MPEG-2是兼容MPEG-1的。所以DVD播放机可以播放VCD的光盘

MPEG-2格式支持逐行或隔行扫描视频,使用基于帧或场的编码。

  • 档(profile)和级(level)
    • 按照使用的编码工具定义了5个profile(SP(简单)/MP(主要)/SNP(信噪比可分级)/SSP(空间可分级)/HP(高级))
    • 按照视频分辨率定义了4个级别(LL(低级)/ML(主级)/H440(高1440级)/HL(高级))

码流结构

ES流结构类似MPES-1,也分为图像序列层、图像组、图形、片、宏块和块层:

  • 图像序列层
    包括若干GOP,序列头包含起始码和序列参数等
  • 图像组(GOP)层
    包括若干图像,GOP头包括起始码、GOP标识等
  • 图像层
    包裹若干个Slice,图像头中包括起始码和图像参数等
  • 片(Slice)层
    最小的同步单位,包括若干宏块,Slice头中包括起始码、片地址、量化步长等信息
  • 宏块(Macroblock)层
    由4个亮度块和2个色度块组成,宏块头包括地址、类型、MV等信息

编码的时候会从上到下的进行封装,解码也会从上到下解封装

MPEG-4

ISO在1999年颁布的视频编码标准。
与MPEG-1、MPEG-4相比,MPEG-4更注重多媒体系统的交互性、灵活性和可扩展性

MPEG-4标准采用了基于对象的编码,其中视频对象主要定义为画面中分割出来的不同物体,每个物体由三类信息描述:运动信息、轮廓信息和纹理信息

这篇关于视频编解码——主流视频编码标准的发展(H.261/H.263/MPEG-1/MPEG-2/MPEG-4))的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!