Top

本地磁盤小日記ヾ(≧▽≦*)ゝ

世界無限大.且行且珍惜w;
計算機科學視覺與美術在學|跨女|程序媛|創作者|中日英OK|公主w;

Coding:常见视频编码标准简单总结01.

| Comments

这篇文章主要介绍了截止至2016年的所有视频编码标准的总结.目的是为了方便学习需要时查询。内容大部分都来自维基百科.里面也有一些自己总结的元素。

介绍了几个国际标准化制定组织(ITU-T.ISO/IEC/MPEG)制定的h.261/262/263/264/265(HEVC);MPEG-1/-2/-4等标准。

由于文章是在学校课余时间总结时间仓促如有问题.还请大家多多指教的说~


***H.120:

H.120是第一个数字视频压缩标准.它是1984年由COST211开发和ITU-T提出.视频质量并不好。


***H.261:

H.261是1990年ITU-T指定的一个视频编码标准,属于视频编解码器。 设计的目的是能够在带宽为64kbps的倍数的综合业务数字网(ISDN)上传输质量可接受的视频信号。编码程序设计的码率是能够在40kbps到2Mbps之间工作,能够对CIF和QCIF分辨率的视频进行编码,即亮度分辨率分别是352x288和176x144,色度采用4:2:0采样,分辨率分别是176x144和88x72。在1994年的时候,H.261使用向后兼容的技巧加入了一个能够发送分辨率为704x576的静止图像的技术。

H.261是第一个实用的数字视频编码标准。H.261的设计相当成功,之后的视频编码国际标准基本上都是基于H.261相同的设计框架,包括MPEG-1,MPEG-2/H.262,H.263,甚至 H.264。H.261使用了混合编码框架,包括了基于运动补偿的帧间预测,基于离散余弦变换的空域变换编码,量化,zig-zag扫描和熵编码。

H.261编码时基本的操作单位称为宏块。H.261使用YCbCr颜色空间,并采用4:2:0色度抽样,每个宏块包括16x16的亮度抽样值和两个相应的8x8的色度抽样值。

H.261使用帧间预测来消除空域冗余,并使用了运动矢量来进行运动补偿。变换编码部分使用了一个8x8的离散余弦变换来消除空域的冗余,然后对变换后的系数进行阶梯量化(这一步是有损压缩),之后对量化后的变换系数进行Zig-zag扫描,并进行熵编码(使用Run-Level变长编码)来消除统计冗余。

实际上H.261标准仅仅规定了如何进行视频的解码(后继的各个视频编码标准也继承了这种做法)。这样的话,实际上开发者在编码器的设计上拥有相当的自由来设计编码算法,只要他们的编码器产生的码流能够被所有按照H.261规范制造的解码器解码就可以了。编码器可以按照自己的需要对输入的视频进行任何预处理,解码器也有自由对输出的视频在显示之前进行任何后处理。去块效应滤波器是一个有效的后处理技术,它能明显的减轻因为使用分块运动补偿编码造成的块效应(马赛克)–在观看低码率视频(例如网站上的视频新闻)的时候我们都会注意到这种讨厌的效应。因此,在之后的视频编码标准如H.264中就把去块效应滤波器加为标准的一部分(即使在使用H.264的时候,再完成解码后再增加一个标准外的去块效应滤波器也能提高主观视频质量)。

后来的视频编码标准都可以说是在H.261的基础上进行逐步改进,引入新功能得到的。现在的视频编码标准比起H.261来在各性能方面都有了很大的提高,这使得H.261成为了过时的标准,除了在一些视频会议系统和网络视频中为了向后兼容还支持H.261,已经基本上看不到使用H.261的产品了。但是这并不妨碍H.261成为视频编码领域一个重要的里程碑式的标准。


MPEG-1:

MPEG-1是MPEG组织制定的第一个视频和音频有损压缩标准,也是最早推出及应用在市场上的MPEG技术,其原来主要目标是在CD光盘上记录视频,后来被广泛应用在VCD光盘。视频压缩算法于1990年定义完成。1992年底,MPEG-1正式被批准成为国际标准。

MPEG-1是为CD光盘介质定制的视频和音频压缩格式。一张70分钟的CD光盘传输速率大约在1.4Mbps。而MPEG-1采用了块方式的运动补偿、离散余弦变换(DCT)、量化等技术,并为1.2Mbps传输速率进行了优化。MPEG-1随后被Video CD采用作为核心技术。VCD的分辨率只有约352×240,并使用固定的比特率(1.15Mbps),因此在播放快速动作的视频时,由于数据量不足,令压缩时宏区块无法全面调整,结果使视频画面出现模糊的方块。因此MPEG-1的输出质量大约和传统录像机VCR相当,这也许是Video CD在发达国家未获成功的原因。MPEG-1音频分三代,其中最著名的第三代协议被称为MPEG-1 Layer 3,简称MP3,目前已经成为广泛流传的音频压缩技术。MPEG-1音频技术在每一代之间,在保留相同的输出质量之外,压缩率都比上一代高。第一代协议MP1被应用在LD作为记录数字音频以及飞利浦公司的DGC上;而第二代协议MP2后来被应用于欧洲版的DVD音频层之一。

MPEG-1具有以下特点: 随机访问; 灵活的帧率; 可变的图像尺寸; 定义了I-帧、P-帧和B-帧; 运动补偿可跨越多个帧; 半像素精度的运动向量; 量化矩阵; GOP结构; slice结构;

输入视频格式

MPEG-1规定了以下几个参数限制:

最大像素数/行:768

最大行数/帧:576

最大帧/秒:30

最大宏块/帧:396

最大宏块/秒:9900

最大比特率:1 856 000bps

最大解码缓冲区尺寸:327680bit。

数据结构和压缩模式:

MPEG-1可以按照分层的概念来理解,一个MPEG-1视频序列,包含多个GOP,每个GOP包含多个帧,每个帧包含多个slice。

帧是MPEG-1的一个重要基本元素,一个帧就是一个完整的显示图像。帧的种类有四种:

I-图像/帧(节点编码图像,intra coded picture)参考图像,相当于一个固定视频,且独立于其它的图像类型。每个图像组群由此类型的图像开始。编码时独立编码,仅适用帧内编码技术,因而解码时不参考其他帧,类似JPEG编码。

P-图像/帧(预测编码图像,predictive coded picture)包含来自先前的I或P-画格的差异信息。编码时使用运动补偿和运动估计,采用前向估计,参考之前的I-帧或者P-帧去预测该P格。

B-图像/帧(前后预测编码图像,bidirectionally predictive coded pictures)包含来自先前和/或之后的I或P-画格的差异信息。编码也使用运动补偿和运动估计,预估采用前向估计、后向估计或是双向估计,主要参考前面的或者后面的I格或者P格。

D-图像/帧(指示编码图像,DC direct coded picture)用于快速进带。仅由DC直流分量构造的图像,可在低比特率的时候做浏览用。实际编码中很少使用。


***MPEG-2:

MPEG-2是MPEG工作组于1994年发布的视频和音频压缩国际标准。MPEG-2通常用来为广播信号提供视频和音频编码,包括卫星电视、有线电视等。MPEG-2经过少量修改后,也成为DVD产品的核心技术。

MPEG-2的系统描述部分(第1部分)定义了传输流,它用来一套在非可靠介质上传输数字视频信号和音频信号的机制,主要用在广播电视领域。 MPEG-2的第二部分即视频部分和MPEG-1类似,但是它提供对隔行扫描视频显示模式的支持(隔行扫描广泛应用在广播电视领域)。MPEG-2视频并没有对低比特率(小于1Mbps)进行优化,在3Mbit/s及以上比特率情况下,MPEG-2明显优于MPEG-1。MPEG-2向后兼容,也即是说,所有匹配标准的MPEG-2解码器也能够正常播放MPEG-1视频流。 MPEG-2技术也应用在了HDTV传输系统和蓝光光盘中。

MPEG-2的第三部分定义了音频压缩标准。该部分改进了MPEG-1的音频压缩,支持两通道以上的音频。MPEG-2音频压缩部分也保持了向后兼容的特点。

MPEG-2的第七部分定义了不能向后兼容的音频压缩。该部分提供了更强的音频功能。通常我们所说的MPEG-2AAC指的就是这一部分。

一个MPEG-2系统流一般包括两个基本元素:

视频数据 +时间戳

音频数据 +时间戳

MPEG-2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除,只保留少量非相关信息进行传输,就可以大大节省传输频带。而接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的图像质量的前提下恢复原始图像。

MPEG-2视频通常包含多个GOP(Group Of Pictures),每一个GOP包含多个帧(frame)。帧的帧类(frame type)通常包括I-帧(I-frame)、P-帧(P-frame)和B-帧(B-frame)。其中I-帧采用帧内编码,P-帧采用前向估计,B-帧采用双向估计。 I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧使用帧内压缩,不使用运动补偿,由于I帧不依赖其它帧,所以是随机存取的入点,同时是解码的基准帧。I帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I帧图像的压缩倍数相对较低。I帧图像是周期性出现在图像序列中的,出现频率可由编码器选择。

P帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。

B帧图像采用双向时间预测,可以大大提高压缩倍数。值得注意的是,由于B帧图像采用了未来帧作为参考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。 MPEG-2的编码码流分为六个层次。为更好地表示编码数据,MPEG-2用句法规定了一个层次性结构。它分为六层,从上至下依次为:视频序列层(Sequence),图像组层(GOP: Group of Picture),图像层(Picture),像条层(Slice),宏块层(Macro Block)和像块层(Block)。可以看到,除宏块层和像块层外,上面四层中都有相应的起始码(Start Code,SC),可用于因误码或其它原因收发两端失步时,解码器重新捕捉同步。因此一次失步将至少丢失一个像条的数据。 一般来说输入视频格式是25(CCIR标准)或者29.97(FCC)帧/秒。

MPEG-2支持隔行扫描和逐行扫描。在逐行扫描模式下,编码的基本单元是帧。在隔行扫描模式下,基本编码可以是帧,也可以是场(field)。 原始输入图像首先被转换到YCbCr色彩空间。其中Y是亮度,Cb和Cr是两个色度通道。对于每一通道,首先采用块分区,然后形成“宏块”(macroblocks),宏块构成了编码的基本单元。每一个宏块再分区成8x8的小块。色度通道分区成小块的数目取决于初始参数设置。例如,在常用的4:2:0格式下,每个色度宏块只采样出一个小块,所以三个通道宏块能够分区成的小块数目是4+1+1=6个。 对于I-帧,整幅图像直接进入编码过程。对于P-帧和B-帧,首先做运动补偿。通常来说,由于相邻帧之间的相关性很强,宏块可以在前帧和后帧中对应相近的位置找到相似的区域匹配的比较好,这个偏移量作为运动向量被记录下来,运动估计重构的区域的误差被送到编码器中编码。 对于每一个8×8小块,离散余弦变换把图像从空间域转换到频域。得到的变换系数被量化并重新组织排列顺序,从而增加长零的可能性。之后做游程编码(run-length code)。最后作哈夫曼编码(Huffman Encoding)。 I帧编码是为了减少空间域冗余,P帧和B帧是为了减少时间域冗余。 GOP是由固定模式的一系列I帧、P帧、B帧组成。常用的结构由15个帧组成,具有以下形式IBBPBBPBBPBBPBB。GOP中各个帧的比例的选取和带宽、图像的质量要求有一定关系。例如因为B帧的压缩时间可能是I帧的三倍,所以对于计算能力不强的某些实时系统,可能需要减少B帧的比例。

MPEG-2输出的比特流可以是匀速或者变速的。最大比特率,例如在DVD应用上,可达10.4 Mbit/s。如果要使用固定比特率,量化尺度就需要不断的调节以产生匀速的比特流。但是,提高量化尺度可能带来可视的有损效果。比如马赛克现象。

MPEG-2音频编码

MPEG-2的音频编码包括:

使用一半的取样速率处理低比特率的音频。

多通道编码达到5.1个通道

提供MPEG-2 AAC,且不能向后兼容。

DVD中采用了MPEG-2标准并引入如下技术参数限制:

分辨率

720 x 480, 704 x 480, 352 x 480, 352 x 240 像素(NTSC制式)

720 x 576, 704 x 576, 352 x 576, 352 x 288 像素(PAL制式)

纵横比 4:3; 16:9 帧率(帧播放速度)

59.94场/秒,23.976帧/秒,29.97帧/秒(NTSC)

50场/秒,25帧/秒(PAL)

视频+音频比特率

平均最大缓冲区9.8 Mbit/s

峰值15 Mbit/s

最小值300 Kbit/s

YUV 4:2:0

字幕支持

内嵌字幕支持(NTSC only)

音频

LPCM编码:48kHz或96kHz;16或24-bit;最多可达6声道

MPEG Layer 2(MP2):48 kHz,可达5.1声道

杜比数字-Dolby Digital(DD,也称为AC-3):48 kHz,32-448 kbit/s,可达5.1声道

数字家庭影院系统-Digital Theater Systems(DTS):754 kbit/s或1510 kbit/s

NTSC制式DVD必须包含至少一道LPCM或Dolby Digital

PAL制式DVD必须包含至少一道MPEG Layer 2、LPCM或者Dolby Digital

GOP结构

必须为GOP提供序列的头信息

GOP最大可含帧数目:18(NTSC)/15(PAL)

DVB-MPEG相关技术参数:

标清电视(SDTV)必须匹配以下一种分辨率:

720×480像素,24/1.001,24,30/1.001或30帧/秒

640×480像素,24/1.001,24,30/1.001或30帧/秒

544×480像素,24/1.001,24,30/1.001或30帧/秒

480×480像素,24/1.001,24,30/1.001或30帧/秒

352×480像素,24/1.001,24,30/1.001或30帧/秒

352×240像素,24/1.001,24,30/1.001或30帧/秒

720×576像素,25帧/秒

544×576像素,25帧/秒

480×576像素,25帧/秒

352×576像素,25帧/秒

352×288像素,25帧/秒

高清电视(HDTV)必须匹配以下一种分辨率:

720 x 576 x 50帧/秒逐行扫描(576p50)

1280 x 720 x 25 or 50帧/秒逐行扫描(720p50)

1440 or 1920 x 1080 x 25帧/秒逐行扫描(1080p25 = 电影模式)

1440 or 1920 x 1080 x 25帧/秒隔行扫描(1080i50)

MPEG-2和ATSC

必须匹配以下一种分辨率:

1920 × 1080像素,最多60帧/秒(1080i)

1280 × 720像素,最多60帧/秒(720p)

720 × 576像素,最多50帧/秒,25帧/秒(576i,576p)

720 × 480像素,最多60帧/秒,30帧/秒(480i,480p)

640 × 480像素,最多60帧/秒

注:1080i按1920×1080像素编码,但是最后8行在显示时抛弃。


***H.262: H.262 是ITU-T的一个数字视频编码标准,属于视频编解码器。H.262在技术内容上和ISO/IEC的MPEG-2视频标准(正式名称是ISO/IEC 13818-2)一致。

H.262是由ITU-T的VCEG组织和ISO/IEC的MPEG组织联合制定的,所以制定完成后分别成为了两个组织的标准,正式名称是"ITU-T建议H.262"和"ISO/IEC 13818-2"。 大家所熟知的DVD就是采用了该技术。


H.263:

H.263是由ITU-T制定的视频会议用的低码率视频编码标准,属于视频编解码器。H.263最初设计为基于H.324的系统进行传输(即基于公共交换电话网和其它基于电路交换的网络进行视频会议和视频电话)。后来发现H.263也可以成功的应用于H.323(基于RTP/IP网络的视频会议系统),H.320(基于综合业务数字网的视频会议系统),RTSP(流式媒体传输系统)和SIP(基于因特网的视频会议)。

基于之前的视频编码国际标准(H.261,MPEG-1和H.262/MPEG-2),H.263的性能有了革命性的提高。它的第一版于1995年完成,在所有码率下都优于之前的H.261。之后还有在1998年增加了新的功能的第二版H.263+,或者叫H.263v2,以及在2000年完成的第三版H.263++,即H.263v3。

H.263v2:

H.263v2(通常也叫做H.263+或者1998年版H.263)是ITU-T H.263 视频编码标准第二版的非正式名称。它保持了原先版本H.263的所有技术,但是通过增加了几个附录显著的提高了编码效率并提供了其它的一些能力,例如增强了抵抗传输信道的数据丢失的能力(Robustness)。

H.263+项目于1998年2月在ITU正式通过。接下来一个被称为"H.263++“的项目被随即推出,在H.263+的基础上增加了更多的新的功能。H.263++(亦称H.263v3或2000版H.263)于2000年底完成。


MPEG-4:

MPEG-4是一套用于音频、视频信息的压缩编码标准,由MPEG制定,第一版在1998年10月通过,第二版在1999年12月通过。MPEG-4格式的主要用途在于网上流、光盘、语音发送(视频电话),以及电视广播。

MPEG-4包含了MPEG-1及MPEG-2的绝大部分功能及其他格式的长处,并加入及扩充对虚拟现实模型语言(VRML,Virtual Reality Modeling Language)的支持,面向对象的合成文件(包括音效,视频及VRML对象),以及数字版权管理(DRM)及其他交互功能。而MPEG-4比MPEG-2更先进的其中一个特点,就是不再使用宏区块做视频分析,而是以视频上个体为变化记录,因此尽管视频变化速度很快、码率不足时,也不会出现方块画面。

由于MPEG-4是一个公开的平台,各公司、机构均可以根据MPEG-4标准开发不同的制式,因此市场上出现了很多基于MPEG-4技术的视频格式,例如WMV 9、Quick Time、DivX、Xvid等。MPEG-4大部分功能都留待开发者决定采用是否。这意味着整个格式的功能不一定被某个程序所完全函括。因此,这个格式有所谓配置(profile)及级别(level),定义了MPEG-4应用于不同平台时的功能集合。


H.264/MPEG-4 AVC:

H.264,又称为MPEG-4第10部分,高级视频编码(英语:MPEG-4 Part 10, Advanced Video Coding,缩写为MPEG-4 AVC)是一种视频压缩标准,一种被广泛使用的高精度视频的录制、压缩和发布格式。第一版标准的最终草案于2003年5月完成。

H.264/MPEG-4 AVC是一种面向块的基于运动补偿的编解码器标准。由ITU-T视频编码专家组与MPEG——联合组成的联合视频组(JVT,Joint Video Team)开发。因ITU-T H.264标准和ISO/IEC MPEG-4 AVC标准(正式名称是ISO/IEC 14496-10—MPEG-4第十部分,高级视频编码)有相同的技术内容,故被共同管理。

H.264因其是蓝光盘的其中一种编解码标准而著名,所有蓝光盘播放器都必须能解码H.264。它也被广泛用于网络流媒体数据如Vimeo、YouTube、以及iTunes Store,网络软件如Adobe Flash Player和Microsoft Silverlight,以及各种高清晰度电视陆地广播(ATSC,ISDB-T,DVB-T或DVB-T2),线缆(DVB-C)以及卫星(DVB-S和DVB-S2)。

概述:

H.264/AVC项目意图创建一种视频标准。与旧标准相比,它能够在更低带宽下提供优质视频(换言之,只有MPEG-2,H.263或MPEG-4第2部分的一半带宽或更少),也不增加太多设计复杂度使得无法实现或实现成本过高。另一目的是提供足够的灵活性以在各种应用、网络及系统中使用,包括高、低带宽,高、低视频分辨率,广播,DVD存储,RTP/IP网络,以及ITU-T多媒体电话系统。

H.264标准可以被看作一个“标准家族”,成员有下面描述的各种配置(profile)。一个特定的解码器至少支持一种,但不必支持所有的。解码器标准描述了它可以解码哪些配置。

H.264的命名遵循了ITU-T的命名约定,它是VCEG视频编码标准H.26x线中的一员;MPEG-4 AVC的命名来自ISO/IEC MPEG的命名约定,它是ISO/IEC 14496的第10部分,该协议族被称为MPEG-4。该标准是作为VCEG和MPEG的一部分开发的,此前在ITU-T作为VCEG的项目,叫做H.26L。所以常用于指代此标准的名称有H.264/AVC,AVC/H.264,H.264/MPEG-4 AVC,或MPEG-4/H.264 AVC,以强调共同遗产。有时,也用“JVT编解码”指代它,以指明是JVT(联合开发组)组织开发的。(这种伙伴关系和多命名并不少见。例如,视频编码标准MPEG-2也出现在MPEG和ITU-T的伙伴关系中,MPEG-2视频在ITU-T社区中称作H.262。[1])一些软件(如VLC media player)内部标识此标准为AVC1。

H.264/AVC标准化的第一个版本于2003年5月完成。在第一个扩展原始标准的项目中,JVT开发了高精度拓展(Fidelity Range Extensions,FRExt)。该拓展通过支持更高的像素精度(包括10比特和12位像素精度)和支持更高的色度抽样率(包括YUV 4:2:2和YUV 4:4:4)来支持更高精度的视频编码。该拓展加入了一些新的特性(比如自适应的4x4和8x8的整数变换,用户自定义量化加权矩阵,高效的帧间无损编码,支持新增的色度空间和色度参差变换)。该拓展的设计于2004年7月完成,草案也于2004年9月完成。

对标准进一步的最新扩展包括:增加五个新的配置,主要用于专业应用;增加扩展全范围(extended-gamut)色彩空间的支持;定义附加长宽比标识;定义“补充增强信息”的两个附加类型(滤波后提示和色调映射);以及废弃一个根据产业反馈应该另行设计的早期FRExt配置。

接着加入标准的主要特性是可适应视频编码(Scalable Video Coding,SVC)。据H.264/AVC附件G,SVC允许码流结构中包含遵循标准的子码流,这种称作“基础层”的码流要能够为不支持SVC的H.264/AVC编解码器所解码。为达成在时间上的可适应性,在推导子码流时,从码流中移除了完整访问单元(complete access unit)。这种情况下,要按相应方式来构造码流中的高层语法和帧间预测参考帧。另一方面,为达成空间和质量的可适应性(换言之,低分辨率/低质量作为子码流而不是主码流),推导子码流时移除了NAL(网络抽象层)。这种情况下,层间预测(暨,从低分辨率/低质量信号数据中预测高分辨率/高质量信号)常被用于提高编码效率。可适应视频编码扩展于2007年11月完成。 下一个加入标准的主要特性是多视图编码(Multiview Video Coding,MVC)。据H.264/AVC附件H,MVC使得码流结构可以表达一个视频场景的不止一个视图。该功能的一个重要例子是3D立体视频编码。MVC的工作中开发了两个配置:多视图高配置(Multiview High Profile)支持任意数量的视图,立体高配置(Stereo High Profile)是为双视图立体视频特别设计的。多视图编码扩展于2009年11月完成。

技术细节:

H.264/AVC包含了一系列新的特征,使得它比起以前的编解码器不但能够更有效的进行编码,还能在各种网络环境下的应用中使用。这些新特性包括: 多参考帧的运动补偿。比起以前的视频编码标准,H.264/AVC以更灵活的方式使用已编码的更多帧来作为参考帧。在某些情况下,可以使用最多32个参考帧(在以前的标准里面,参考帧的数目不是1就是对B帧来说的2)。该特性对大多数场景序列都可以带来一定的码率降低或者质量提高,对某些类型的场景序列,例如快速重复的闪光,反复的剪切或者背景遮挡的情况,它能很显著的降低编码的码率。

变块尺寸运动补偿。可使用最大16x16至最小4x4的块来进行运动估计与运动补偿,能够对图像序列中的运动区域进行更精确的分区。这些类型共有16×16、16×8、8×16、8×8、8×4、4×8、4×4。 为了减少混叠(Aliasing)并得到更锐化的图像,采用六抽头的滤波器(六阶数字滤波器)来产生二分之一像素的亮度分量预测值。

灵活的隔行扫描视频编码(interlaced-scan video coding)。隔行扫描图像的每帧包括两个场,所以对于隔行扫描图像有三种编码方式:1、将两场合并为一帧进行编码;2、将两场分别编码;3、将两场合并为一帧,但是在宏块级别上,将一个帧宏块划分为两个场宏块进行编码。以上前两种编码方式称为图像自适应帧/场编码(Picture-adaptive frame-field, PicAFF or PAFF),第三种称为宏块自适应帧/场编码(Macroblock-adaptive frame-field, MBAFF)。

PAFF:对于一个运动图像,由于场之间存在着较大的扫描间隔,所以帧中相邻两行之间的空间相关性相对于逐行扫描图像较小,因此对两个场分别编码会更节省码流。对于一个非运动图像,相邻两行之间存在较大的空间相关性,将两场合并为一帧编码更有效。所以PAFF编码方式可以针对整个图像的编码方式做自适应调整,选择帧编码或场编码。

MBAFF:当图像同时存在运动区域和非运动区域时,PAFF的劣势便显现出来,PAFF的自适应粒度太粗,无法实现满足更加精细的编码要求,于是MBAFF应运而生。MBAFF对帧编码或场编码的选择是基于宏块的,MBAFF将两场合并为一帧进行编码,但将每一个帧宏块(16x16)划分为场宏块对(8x16),针对每一个帧宏块,比较帧编码和场编码产生的码流大小,使用最节省码流的方式。

1/4像素精度的运动补偿能够提供更高精度的运动块预测,由于色度通常是亮度抽样的1/2(参见4:2:0),这时运动补偿的精度就达到了1/8像素精度。 加权的运动预测,指在运动补偿时可以使用增加权重和偏移的办法。它能在一些特殊的场合,如淡入、淡出、淡出而后淡入等情况提供相当大的编码增益。 使用了一个Loop的除块效应滤波器,能够减轻普遍存在于其他基于离散余弦变换(DCT)的视频编解码器的块效应。

一个匹配的整数4x4变换(类似于离散余弦变换的设计),同样在高精度拓展中,采用整数8x8变换,并能在4x4变换和8x8变换中进行自适应的选择。 在第一次4x4变换后,对DC系数(色度的DC系数和某种特殊状况的亮度DC系数)再进行一次Hadamard变换,使得在平滑区域得到更好的压缩效果。 利用临近块的边界像素的Intra空间预测(比曾在MPEG-2视频部分使用的直流系数预测和在H.263+和MPEG-4视频部分使用的变换系数预测的效果要好)。

基于上下文的二元算数编码(CABAC),它能够灵活的将各种语法元素,在已知相应上下文概率分布的状况下进行更有效的无损熵编码。“通过序列foreman和coastguard对CABAC和CAVLC的压缩性能进行了比较,在给定的实验条件下得出CABAC的比特率比CAVLC节省5%~14%,并且随量化步长的增大,比特率节省增多。但是CABAC计算复杂度高,耗时比CAVLC长。”[3] 基于上下文的变长编码(CAVLC),用于对量化后的变化系数进行编码。比起CABAC它的复杂度相对较低,压缩比不高,但是比起以前的视频编码标准所使用的熵编码方案,它又是相当有效的。CAVLC支持所有的H.264 profiles, CABAC则不支持Baseline以及Extended profiles. 对既不是用CABAC也不是用CAVLC的语法元素,使用指数哥伦布码(Exponential-Golomb,Exp-Golomb)熵编码方案,进行编码。 使用一个网络抽像层(NAL),使得相同的视频语法可以适用于多种网络环境中;并且使用了序列参数集(SPSs)和图像参数集(PPSs)来提供更高的强健性(robustness)和灵活性。 切换切片(Switching slices,包括SP和SI两种),它使得编码器能够指令解码器跳转到一个正在处理的视频码流,用来解决视频码流码率切换和"窍门模式"(Trick mode)操作。当解码器利用SP/SI切片跳转到一个视频码流中间时,除非之后的解码帧引用切换帧之前的图像作为参考帧,它都可以得到完全一致的解码重建图像。 灵活的宏块排列模式(FMO for Flexible macroblock ordering,也被称为切片组slice groups技术)和任意切片排列(ASO for arbitrary slice ordering)模式,用来更改图像编码的最基本单位-宏块的编码顺序。它能够用来提高有绕信道下码流的强韧性(robustness)以及一些其它的目的。 数据分区(DP for Data partitioning),能够将重要程度不同的语法元素分开打包传输,并使用非平等数据保护(UEP for unequal error protection)等技术来改善视频码流对抗信道误码/丢包的强韧性(Robustness)。 冗余切片(RS for Redundant Slices),同样是一个提高码流鲁棒性的技术。编码器利用该技术可以发送图像某区域(或者全部)的另一个编码表示(通常是较低分辨率的编码码流)使得当主表示发生错误或者丢失的时候能够用冗余的第二个编码表示来解码。

使用了一个自动的字节码流打包方法,避免了码流中出现与开始码重复的码字。开始码是码流中用于随机访问和重建同步的码字。 补充增强信息(SEI for Supplemental Enhancement Information)和视频可用信息(VUI for Video Usability Information)增加了向视频码流中加入信息的办法,为各种应用提供了用途。 辅助图层(Auxiliary pictures),可以用来实现某些特殊的功能,例如alpha复合(alpha compositing)。 帧编号,使用该功能支持创建一个视频序列的子序列,可用来支持实现时域的可伸缩性,还支持对丢失的整帧图像进行检测和隐藏(丢失可能是由于网络丢包或者信道误码造成的)。 图像顺序计数,使用该功能使得各帧图像的顺序和解码图像的像素值与时间信息无关,即使用一个单独的系统对时间信息进行传输、控制、更改,从而不影响解码图像的像素值。 上述这些技术,与其它技术的结合,使得H.264比起以前的视频编解码能够带来性能上显著的提高,并在各种不同的环境下达成更广泛的应用。H.264在压缩性能上比起MPEG-2有很大的提高,在相同的图像质量下可以,码率可以减少到一半或者更少。

和MPEG的其它视频标准一样,H.264/AVC也提供了一个参考软件,并可以免费下载。它的主要目的是提供一个演示H.264/AVC各种功能的演示平台,而不是作为一个直接的应用平台。目前在MPEG也同时在进行一些硬件参考设计的实现。

应用: 光盘存储.数字电视.卫星数字电视.网络电视.通信.多媒体。


***HEVC/H.265/高效率视频编码:

高效率视频编码(High Efficiency Video Coding,简称HEVC)是一种视频压缩标准,被视为是ITU-T H.264/MPEG-4 AVC标准的继任者。2004年开始由ISO/IEC MPEG和ITU-T Video Coding Experts Group(VCEG)作为ISO/IEC 23008-2 MPEG-H Part 2或称作ITU-T H.265开始制定。第一版的HEVC/H.265视频压缩标准在2013年4月13日被接受为国际电信联盟(ITU-T)的正式标准。HEVC被认为不仅提升视频质量,同时也能达到H.264/MPEG-4 AVC两倍之压缩率(等同于同样画面质量下比特率减少了50%),可支持4K分辨率甚至到超高清电视(UHDTV),最高分辨率可达到8192×4320(8K分辨率)。

数个基于HEVC延伸的编码标准正在进行中,包含range extensions(支持高级的视频格式)、可调式编码和3D视频编码标准。

HEVC与H.264/AVC和许多其他视频压缩编码一样,都是采用Hybrid Video Coding的架构,但在各部分加入了一些新技术或者提升了原本编码工具的效率。

编码树单元(Coding Tree Block,CTU)

编码树单元是HEVC的基本编码单位,有如H.264/AVC的Macroblock。HEVC支持8x8到64×64像素的CTU大小。编码树单元可向下分区编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)及转换单元(Transform Unit,TU)。

帧内编码(Intra Coding)

HEVC帧内编码将预测的方向性增加到33种,并加入平面预测(Planar Prediction)产生平滑的取样面。

帧间编码(Inter Coding).转换编码(Transform Coding)

环路滤波器(Loop Filtering)

HEVC有两个环路滤波器,解块滤波器(DBF)与样本自适应偏移量(SAO)滤波器。

去区块滤波器(Deblocking Filter)

H.265/HEVC的DBF使用H.264/MPEG-4 AVC类似的设计,更好的支持并发处理是类似的。在HEVC的DBF只适​​用于一个8×8个采样网格,而与H.264 / MPEG-4 AVC的DBF适用的一个4×4个采样网格不同。HEVC的DBF使用一个8×8个采样网格,因为没有导致明显的降解,并显著提高了并发处理,因为的DBF不再导致级联与其他操作的相互作用。另一个变化是HEVC只允许为0〜2的三个DBF的深度。HEVC的DBF也是的先做画面的垂直边缘的水平滤波之后再做对于水平边缘的垂直滤波,有利于平行处理(多线程)。

取样自适应偏移(Sample Adaptive Offset)

在DBF之后的使用SAO过滤器,并使用偏移以产生更好地重建原始信号。每个CTB的SAO滤波器可有两个模式:边缘偏移模式​​或带偏移模式。边缘偏移量模式中通过比较的取样的值,根据比较两个邻居,将样品分为五类之一:最小,两种边缘,最大值,或两者都不是,对于每个第一四类施加一个偏移量。能带偏移的模式可分类成32个频带,并选择四个连续频带发送偏移量。SAO滤波器设计来以提高图像质量,并减少振荡效应。

熵编码(Entropy Coding)

使用了跟H.264/AVC High Profile中一样的CABAC(前文参考之适应性二元算术编码)算法来做熵编码,抛弃了CAVLC。

平行化编码工具.切片.方块.波前处理。

层级与档次

HEVC定义了包含Main和High 2种“层级”注:目前没有公定译名,以及13种“档次”注:目前没有公定译名。层级是被设计来面对不同的应用,对其最大比特率做限制。其中Main tier是被设计给大部分的应用,而High tier是被设计给高要求的应用。档次则是针对比特流设置了一组限制,与Profile相似。当一个解码器匹配给定了的层级与档次,代表此解码器也被要求必须能解码用该层级/档次及较低层级/档次所编码出来的比特流。


@本地磁盘姬 整理

ohayou.moeres.org

微博@萌萌的本地磁盘w

2016年11月15日

Comments