H.264/AVC 主流视频编码标准的发展


一. 主流视频编码标准的发展

长期以来,视频编码标准主要由两个国际组织负责制定:国际电信联盟ITU-T国际标准化组织ISO。目前影响力最强的视频编码标准基本均出自这两个组织:

除了上述两个组织之外,其他比较有影响力的标准还有:

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

二. H.261标准

H.261视频编码标准诞生于1988年,可谓是视频压缩编码发展的第一个里程碑。因为从H.261开始,视频编码方法采用了沿用至今的基于波形的混合编码方法。H.261标准主要目标是用于视频会议和可视电话等高实时性、低码率的视频图像传输场合。

在H.261标准产生的时代,由于各国的电视制式不一致,因此不能直接互通。为了解决数据源格式不兼容的问题,H.261定义了一种公共中间格式CIF(Common Intermediate Format)。编码的目标格式首选转换为CIF格式进行编码和传输,接收端进行解码后再转换为各自的格式。H.261规定的CIF格式视频的亮度分辨率为352×288,QCIF格式的亮度分辨率为176×144。

H.261视频编解码系统图:

H.261信源编码所采用的技术:

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

H.261码流复合器输出的码流结构:

经过H.261码流复合器输出的码流,总共可以分为四层,从上到下分别为帧层块组层宏块层块层。每一层按照不同的封装格式包含了头信息和下一层的结构。

  1. 帧层:由帧首和块组数据构成;帧首包括帧起始码( PSC)、帧计数码( TR)、帧类型( PTYPE)等;
  2. 块组层:由块组首和宏块数据组成;块组首包括组起始码( GBSC)、块组编号码( GN)、块组量化步长等;
  3. 宏块层(Macroblock,MB):由宏块首和块数据构成;宏块首包括宏块地址码、宏块类型、宏块量化步长、运动矢量数据、编码模式等;
  4. 块层:包括每个8×8块的DCT系数按之字形扫描后的熵编码码流,以块结束符结尾

三. H.263标准

H.263是相对于H.261的改进标准,同样以低码率视频通信为目标,但是具有更好的压缩效率。与H.261相比,H.263支持更多种分辨率的图像格式:

  • Sub-QCIF: 128×96
  • QCIF: 176×144
  • CIF:352×288
  • 4CIF:704×576
  • 16CIF:1480×1152

除了更多的分辨率选择之外,视频信源编码算法也相比H.261实现了多项改进。

  1. 运动矢量:相比于H.261,H.263的运动矢量分配更加灵活。在H.261中,每一个MB分配一个运动矢量;H.263中支持对每一个8×8像素块各自使用一个运动矢量。
  2. MV精度:H.261只支持整数像素的运动矢量,在H.263中运动矢量精度为1/2像素。
  3. 双向预测模式:H.263的帧间编码帧除了P帧之外,也支持B帧,使用前后双向预测模式。
  4. 熵编码:采用了算术编码,以较高的运算复杂度换取更高的编码效率。

四. MPEG-1标准

MPEG-1是国际标准化组织ISO下属的移动图像专家组负责制定的早期视频压缩标准,主要用于视频信息的存储、广播电视和网络传输应用。其中在VCD中保存的视频信息便使用MPEG-1标准进行压缩,其码率越为1.2~1.5Mb/s。

MPEG-1标准所支持的图像类型与H.263类似,支持I、B、P帧类型

  • I帧:帧内编码帧,采用帧内编码,可作为P/B帧的参考帧;
  • P帧:前向预测帧,采用帧间编码,以I/P帧作为参考帧;
  • B帧:双向预测帧,参考前后两个方向的参考帧;

在码流的结构上,MPEG-1采用了与H.261类似的分层码流结构。MPEG-1相比于H.261增加了条带层,每一个宏块所有的编码操作只能在一个条带内实现,条带层可以有效防止编码错误在一帧内扩散。MPEG-1标准的码流结构如下图所示:


五. MPEG-2标准

MPEG-2标准是ITU-T和ISO合作制定的编码标准,其视频部分也称作H.262标准,其标准编号为ISO-13818。ISO-13818是一系列标准的集合,包括了系统、视频、音频、一致性、参考软件等10个部分。MPEG-2标准在数字电视广播和音视频媒体容器等场合得到了广泛应用,常见的DVD视盘采用的就是MPEG-2视频编码方法。

MPEG-2格式的主要改进之处之一是支持支持逐行或者隔行扫描视频,使用基于帧或场的编码。在MPEG-2中,为适应隔行扫描视频信号的特点,在DCT、预测和运动估计算法中对帧和场进行了不同的处理。

另一方面,MPEG-2根据不同的编码工具定义了5个Profile:简单SP、主要MP、SNR可分级SNP、空间可分级SSP和高级HP。根据视频分辨率的不同定义了4个Level:低级LL、主级ML、高-1440级High1440和高级HL。

MPEG-2的码流分为三层:

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

在MPEG-2的ES流层中,其码流结构采用了类似MPEG-1码流结构的分层封装的方法:

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

六. MPEG-4标准

MPEG-4是ISO与1999年颁布的视频编码标准。同前任的MPEG-1和MPEG-2相比,MPEG-4更注重多媒体系统的交互性、灵活性和可扩展性。MPEG-4的标准编号为ISO-14496,也包括多个部分,如系统、视觉信息、音频、一致性等。

MPEG-4中最为显著的特点是采用了基于对象的编码。在MPEG-4中,一个视频对象主要定义为画面中分割出来的不同物体,每个物体由三类信息描述:运动信息、轮廓信息和纹理信息。MPEG-4通过编码这三类信息来实现对视频对象的编码。

音视频开发(32)---H.264/AVC 主流视频编码标准的发展相关推荐

  1. 视频教程-H.264/AVC视频编解码技术详解-其他

    H.264/AVC视频编解码技术详解 毕业于上海大学通信与信息工程学院,研究生学历,硕士学位.研究方向为视频处理与传输,对H.264/AVC.H.265/HEVC.AVS.AVS+.AVS2等视频编解 ...

  2. 在FPGA上实现H.264/AVC视频编码标准

    尽管H.264/AVC承诺将此已有视频编码标准具有更高的编码效率,它仍为系统架构师.DSP 工程师和硬件设计人员带来了巨大的工程设计挑战.H.264/AVC 标准引入了自 1990 年推出 H.261 ...

  3. H.264 SVC 与H.264 AVC 有什么区别?

    AVC 实际上是 H.264 协议的别名.但自从 H.264 协议中增加了 SVC 的部分之后,人们习惯将不包含 SVC 的 H.264 协议那一部分称为 AVC,而将 SVC 这一部分单独称为 SV ...

  4. 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准

    一.H264 概述 H.264,通常也被称之为H.264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 1. H.264视频编解码的意义 H.264的出现就是为了创 ...

  5. 【H.264/AVC视频编解码技术详解】二. 主流视频编码标准的发展

    <H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行 ...

  6. 音视频开发(26)---H.264编码格式和视频编码的一些基本概念

    H.264编码格式和视频编码的一些基本概念 对于大多数人来说,对于视频的基本印象就是视频清晰度.体积大小.分辨率和视频格式.当然对于只对观看视频和下载视频的朋友们来说这些知识足够了.经常在VeryCD ...

  7. 【秒懂音视频开发】23_H.264编码

    本文主要介绍一种非常流行的视频编码:H.264. 计算一下:10秒钟1080p(1920x1080).30fps的YUV420P原始视频,需要占用多大的存储空间? (10 * 30) * (1920 ...

  8. 视频编码标准H.264/AVC

    H.264/AVC 是ITU-T VCEG 和ISO/IEC MPEG 共同开发的视频处理标准,ITU-T作为标准建议H.264,ISO/IEC作为国际标准14496-10(MPEG-4 第10部分) ...

  9. H.264/AVC视频编解码技术详解-殷汶杰-专题视频课程

    H.264/AVC视频编解码技术详解-46880人已学习 课程介绍         H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了先进而且较为成熟的视频编码技术.本课程将从原理.标准 ...

最新文章

  1. 计算机考试受苦受累,受苦受累真是福作文800字
  2. 【Java报错】GP数据库 function point(unknown) is not unique.Could not choose a best candidate function 问题解决
  3. sql语句按月份统计查询
  4. 程序员面试金典 - 面试题 16.16. 部分排序(排序/不排序)
  5. Python 列表下标操作
  6. 三菱PLC漏型源型总结
  7. oracle+bmp转为txt,Bmp2Txt下载-图像转换成文字(Bmp2Txt )下载1.0-西西软件下载
  8. 如何批量打印PDF文件
  9. 免费且快速搭建个人www服务器的教程
  10. redis unlink
  11. Hadoop是什么?基本概念
  12. CSS-背景图片 | background-image
  13. 离散数学中 集合、关系、群 的证明方法(英文证明附例题)
  14. 【接口时序】5、QSPI Flash的原理与QSPI时序的Verilog实现(转载)https://www.cnblogs.com/liujinggang/p/9651170.html
  15. 网络工程师枕边书:精选30本图书抢先读
  16. 几种过滤URL和FORM中非法字符的方法
  17. python字典合并 同key_Python 合并两个字典(Dictionary)中相同key的value的方法及示例代码...
  18. 兼容火狐、谷歌等主流浏览器的万年历
  19. LM358呼吸灯(亲测能用,效果很棒~)
  20. stm32f103r8t6的晶振频率_stm32f103r8t6_stm32f103r8t6最小系统_stm32f103r8t6引脚数

热门文章

  1. 【蓝桥杯嵌入式】【STM32】1_LED之点灯仪式
  2. linux内核网络栈代码的准备知识
  3. 去除报错_转录组分析 | 使用trimgalore去除低质量的reads和adaptor
  4. mysql hibernate 分页查询_Hibernate + MySQL 分页类的实现
  5. 【LeetCode】剑指 Offer 15. 二进制中1的个数
  6. 【转】linux /centos 中OpenSSL升级方法详解
  7. MyBatis的CRUD操作
  8. ajax正确返回数据,却进入了error分支
  9. 前后台字符串进行交互
  10. python面试1000题之7-8