频编解码技术有两套标准,国际电联(ITU-T)的标准H.261、H.263、H.263+等;还有ISO 的MPEG标准Mpeg1、Mpeg2、Mpeg4等等。H.264/AVC是两大组织集合H.263+和Mpeg4的优点联合推出的最新标准,最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比H.263高2倍,比MPEG-4高1.5倍。

以下我们简单介绍H.264的概念和发展,并探讨H.264技术实用化的可能性

H.264/AVC是什么?

H.264/AVC标准是由ITU-T和ISO/IEC联合开发的,定位于覆盖整个视频应用领域,包括:低码率的无线应用、标准清晰度和高清晰度的电视广播应用、Internet上的视频流应用,传输高清晰度的DVD视频以及应用于数码相机的高质量视频应用等等。

ITU-T给这个标准命名为H.264(以前叫做H.26L),而ISO/IEC称它为MPEG-4 高级视频编码(Advanced Video Coding,AVC),并且它将成为MPEG-4标准的第10部分。既然AVC是当前MPEG-4标准的拓展,那么它必然将受益于MPEG-4开发良好的基础结构(比如系统分层和音频等)。很明显,作为MPEG-4高级简洁框架(Advanced Simple Profile,ASP)的MPEG-4 AVC将会优于当前的MPEG-4视频压缩标准,它将主要应用在具有高压缩率和分层次质量需求的方向。

就像在下边“视频编码历史”表格中看到的,ITU-T和ISO/IEC负责以前所有的国际视频压缩标准的定制。到目前为止,最成功的视频标准是MPEG- 2,它已经被各种市场领域所广泛接受比如DVD、数字电视广播(覆盖电缆和通讯卫星)和数字机顶盒。自从MPEG-2技术产生以来,新的 H.264/MPEG-4 AVC标准在编码效率和质量上有了巨大的提高。随着时间的过去,在许多现有的应用领域,H.264/MPEG-4 AVC将会取代MPEG-2和MPEG-4,包括一些新兴的市场(比如ADSL视频)。

    数字视频编解码技术的演变

国际标准通常是由国际标准化组织ISO在国际电信联盟 ITU的技术建议的基础上制订的。数字视频编解码标准也经历了多次变革,H264标准使运动图像压缩技术上升到了一个更高的阶段,在较低带宽上提供高质量的图像传输是H.264的应用亮点。H.264的推广应用对视频终端、网守、网关、MCU等系统的要求较高,将有力地推动视频会议软设备在各个方面的不断完善。

H.264的核心竞争力

H.264最具价值的部分无疑是更高的数据压缩比。压缩技术的基本原理就是将视频文件中的非重要信息过滤,以便让数据能够更快地在网络中传输。在同等的图像质量条件下,H.264的数据压缩比能比当前DVD系统中使用的MPEG-2高2-3倍,比MPEG-4高1.5-2倍。正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。

在MPEG-4需要6Mbps的传输速率匹配时,H.264只需要3Mbps-4Mbps的传输速率。我们用交通运输来做更加形象的比喻:同样是用一辆卡车运输一个大箱子,假如MPEG-4能把箱子减重一半,那么H.264能把箱子减重为原来的1/4,在卡车载重量不变的情况下,H.264比MPEG-2 让卡车的载货量增加了二倍。

H.264获得优越性能的代价是计算复杂度的大幅增加,例如分层设计、多帧参论、多模式运动估计、改进的帧内预测等,这些都显著提高了预测精度,从而获得比其他标准好得多的压缩性能。

不断提高的硬件处理能力和不断优化的软件算法是H.264得以风行的生存基础。早在十年前,主频为几十兆的CPU就达到了顶级,而如今普通的台式机,CPU的主频已经高达几千兆。按照摩尔定律的说法,芯片单位面积的容量每18个月翻一番,因此H.264所增加的运算复杂度相对于性能提升效果而言微不足道。更何况新的计算方法层出不穷,也相对缓解H.264对处理速度的饥渴需求。

H.264 与MPEG-4的比较

在极低码率(32-128Kbps)的情况下,H.264与MPEG-4相比具有性能倍增效应,即:相同码率的H.26L媒体流和MPEG-4媒体流相比,H.26L拥有大约3个分贝的增益(画质水平倍增)。 32Kbps的H.26L媒体流,其信躁比与128K的MPEG-4媒体流相近。即在同样的画面质量下,H.264的码率仅仅为MPEG-4的四分之一。

 H.264/AVC核心技术概览

这个新的标准是由下面几个处理步骤组成的:
   帧间和帧内预测
   变换(和反变换)
   量化(和反量化)
   环路滤波
   熵编码

单张的图片流组成了视频,它能分成16X16像素的“宏块”,这种分块方法简化了在视频压缩算法中每个步骤的处理过程。举例来说,从标准清晰度标准视频流解决方案(720X480)中截取的一幅图片被分成1350(45X30)个宏块,然后在宏块的层次进行进一步的处理。

帧间预测

改良的运动估计。运动估计用来确定和消除存在于视频流中不同图片之间的时间冗余。当运动估计搜索是根据过去方向的图片,那么被编码的图片称为“P帧图片”,当搜索是根据过去和将来两种方向的图片,那么被编码的图片被称为“B帧图片”。

    为了提高编码效率,为了包含和分离在“H.264运动估计-改良的运动估计”图中的运动宏块,宏块被拆分成更小的块。然后,以前或将来的图片的运动矢量被用来预测一个给定的块。H.264/MPEG-4 AVC发明了一种更小的块,它具有更好的灵活性,在运动矢量方面可以有更高的预测精度。

 帧内预测

不能运用运动估计的地方,就采用帧内估计用来消除空间冗余。内部估计通过在一个预定义好的集合中不同方向上的邻近块推测相邻像素来预测当前块。然后预测块和真实块之间的不同点被编码。这种方法是H.264/MPEG-4 AVC所特有的,尤其对于经常存在空间冗余的平坦背景特别有用。

变换

运动估计和内部估计后的结果通过变换被从空间域转换到频率域。H.264/MPEG-4 AVC使用整数DCT4X4变换。而MPEG-2和MPEG-4使用浮点DCT8X8变换。

更小块的H.264/MPEG-4 AVC减少了块效应和明显的人工痕迹。整数系数消除了在MPEG-2和MPEG-4中进行浮点系数运算时导致的精度损失。

量化

变换后的系数被量化,减少了整数系数的预测量和消除了不容易被感知高频系数。这个步骤也用来控制输出的比特率维持在一个基本恒定的常量。

环路滤波

H.264/MPEG-4 AVC标准定义了一个对16X16宏块和4X4块边界的解块过滤过程。在宏块这种情况下,过滤的目的是消除由于相邻宏块有不同的运动估计类型(比如运动估计和内部估计)或者不同的量化参数导致的人工痕迹。在块边界这种情况下,过滤的目的是消除可能由于变换/量化和来自于相邻块运动矢量的差别引起的人工痕迹。环路滤波通过一个内容自适应的非线性算法修改在宏块/块边界的同一边的两个像素。

熵编码

在熵编码之前,4X4的量化系数必须被重排序。根据这些系数原来采用的预测算法为运动估计或者内部估计的不同来选择不同的扫描类型创建一个重排序的串行化流。扫描类型按照从低频到高频的顺序排序这些系数。既然高频系数大多数趋向于零,那么利用游程编码就可以缩减零的数目,从而高效的达到熵编码的目的。

熵编码-系数的串行化

在熵编码步骤通过映射符号的字节流来表示运动矢量,量化系数和宏块头。熵编码通过设计用一个较少的比特位数来表示频繁使用的符号,比较多的比特位数来表示不经常使用的符号。

H264 介绍[1]的更多相关文章

  1. H264 编解码框架简单介绍

    阅读完H264/AVC 编解码器的介绍,脑海中仅仅是留下下面三条: 1.H264并没有明白规定一个编解码器怎样实现,仅仅是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 类似 ...

  2. h264封包介绍

    这个要看你怎么理解了.和MPEG2.MPEG4相比,H.264字节流中帧的形式发生了变化.以视频帧为例,MPEG2和MPEG4字节流在传输的时候提取帧的关键参数,将其封装入传输包首部,比如TS包或RT ...

  3. HTML5系列四(特征检测、Modernizr.js的相关介绍)

    Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸 ...

  4. 标清与高清,720p和1080p,720i和720p,h264与h265

    480x320, 640x480 标清 1024x720p 高清 1920x1080i (隔行扫描) 也属于高清 1920x1080p 全高清 3840x2160,7680x4320 超(高)清   ...

  5. Modernizr的介绍和使用

    传统浏览器目前不会被完全取代,令你难以将最新的 CSS3 或 HTML5 功能嵌入你的网站. Modernizr 正是为解决这一难题应运而生,作为一个开源的 JavaScript 库,Moderniz ...

  6. H264码流打包分析

    转自:http://www.360doc.com/content/13/0124/08/9008018_262076786.shtml   SODB 数据比特串-->最原始的编码数据 RBSP ...

  7. h264

    H264--编码原理以及I帧B帧P帧--1 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论 ...

  8. Android中直播视频技术探究之---基础知识大纲介绍

    一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...

  9. FreeSWITCH第三方库(视频)的简单介绍(二)

    FreeSWITCH使用了大量的第三方库,本文档主要介绍视频相关库的信息: 音频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5486753.html 其他相关 ...

随机推荐

  1. Java中9大内置基本数据类型Class实例和数组的Class实例(转载)

    https://www.jianshu.com/p/58976c8bf1e1

  2. 零基础入门学习Python(14)--字符串:各种奇葩的内置方法

    前言 这节课我们回过头来,再谈一下字符串,或许我们现在再来谈字符串,有些朋友可能觉得没必要了,甚至有些朋友就会觉得,不就是字符串吗,哥闭着眼也能写出来,那其实关于字符串还有很多你不知道的秘密哦.由于字 ...

  3. laravel学习笔记2--表单

    一.Controller 1.Request 1.1.取值:input // 1.取值 echo $request->input('name'); // 2.取不到值时打印默认值 echo $r ...

  4. solr-5.3.1配置(win7 x64)

    下载solr,下载地址http://www.eu.apache.org/dist/lucene/solr/5.3.1/solr-5.3.1.zip 解压到某个目录下,这里是解压到了d盘目录下,路径:D ...

  5. Poj 2187 旋转卡壳

    Poj 2187 旋转卡壳求解 传送门 旋转卡壳,是利用凸包性质来求解凸包最长点对的线性算法,我们逐渐改变每一次方向,然后枚举出这个方向上的踵点对(最远点对),类似于用游标卡尺卡着凸包旋转一周,答案就 ...

  6. Atcoder regular Contest 073(C - Sentou)

    Atcoder regular Contest 073(C - Sentou) 传送门 每个人对开关的影响区间为a[i]--a[i]+t,因此此题即为将所有区间离散化后求所有独立区间的长度和 #inc ...

  7. 集训第四周(高效算法设计)C题 (二分查找优化题)

    Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  8. python——文件管理

    文件操作分为读.写.修改 一.读文件 f = open(file='D:/工作日常/兼职白领学生空姐模特护士联系方式.txt',mode='r',encoding='utf-8') data = f. ...

  9. 在jupyter notebook 中编辑公式

    jupyter notebook是一个python的交互式开发环境,广泛应用于数据分析的场景下. 在jupyter notebook中,还可以很方便的编辑数学公式. 1.Markdown状态 编辑公式 ...

  10. SIGPIPE 13 和其他信号的对照表

    SIGPIPE 13 和其他信号的对照表 SIGHUP 1 在控制终端上检测到挂断或控制线程死亡 是SIGINT 2 交互注意信号 是SIGQUIT 3 交互中止信号 是SIGILL 4 检测到非法硬 ...