唯有源头“清”水来——剖析HDTV编码

技术空间

现在数字电视正在积极的推广中,很多用户对数字视频这个新事物都耳熟能详。不过央视推出的“高清数字联盟”以及各个高清数字品牌频道,加上商场里各商家热火朝天的电视机高清标志战,这让不少人犯迷糊了。高清数字电视就是HDTV,HDTV的核心在哪里?HDTV有哪些种类?它们之间的差异源自何处,这一切还得从头说起。

纷繁的定义

数字电视指的是DTV(Digital TV),目前它包括HD、SD、LD三种规格,三者区别主要在于图像质量和信道传输带宽的不同,所以数字电视和高清这两个概念没有必然的关联。High Definition Television才是我们常说的高清视频,简称HDTV,其核心为HD,即高清晰数字电视技术。

对高清这个概念的定义,最初Grand Alliance组织规定了HDTV是采用MPEG 2来进行视频压缩,音频采用AC3数位压缩,不符合以上压缩标准的720P、1080i、1080P不能被称为HDTV。这个概念不仅是对分辨率作出了定义,对围绕它的编码格式、传输方法、帧率、波段都进行了系统的规范和定义,属于比较严格的定义。

而在2007年1月1日,我国正式实施的国家高清标准核心有两点:高清显示设备的物理分辨率必须达到720P标准,即1280×720以上;屏幕比例必须是宽屏,达到16∶9,这属于比较广泛的定义。目前主流的1280×720的DLP背投、1366×768的LCD/PDP或者Full HD的1920×1080面板均属于真高清范围。

在不同的定义下,属不属于HDTV结论可能有差异。比如1366×768分辨率的视频,或者用XviD编码的1280×720视频,在我国可能被认定为高清视频,但在另外一些地区则可能被认为不是高清视频。但这里面也有相同之处,那就是分辨率从DVD级别分辨率的720×576/480(PAL制/NTSC制)上升到至少720P的1280×720,更高的1080i/1080P分辨率更达到1920×1080。

分辨率的提高带来的好处自然就是数据量的提升,DVD级分辨率图像未压缩时的码速率超过165Mb/s,而720P未压缩时的码速率则至少是622.9Mb/s。显然,720P的数据量至少是DVD级别的3倍,1080P更是5倍以上。如果是未压缩的数据,720P的视频即使放在HD-DVD或者Blu-Ray Disk上也只能存储几分钟的长度。

编码的规范

从VCD时代的普清(LD)到DVD时代的标清(SD),再到蓝光时代的高清(HD),分辨率的提升是容易被看到的方面,但还有另一条在进步的线索,那就是编码标准。

视频编码领域有两个比较重要的国际性组织,国际电信联盟 (ITU) 主要致力于电信应用方面标准的开发,而国际标准化组织 (ISO) 主要针对消费类应用。ITU研发的视频方面的标准以H.26x系列为主,在视频电话等领域用得较多。ISO组织的MPEG-X系列标准则更为普通用户熟知,目前已经发展到MPEG4阶段。

在DVD时代ITU和ISO就合作过,第一次合作的成品在ITU方面被称为H.262,在更为普通用户熟悉的ISO方面被称为MPEG2。在以DVD为存储介质的视频时代,MPEG2成为了主流编码规范。

随着互联网普及和带宽不断增大,视频的获取模式已经不止光存储介质一种,网络获取更成为主流模式之一。网络传输的引入带来了“流媒体”这样的新概念,MPEG2规范中的TS传输模式虽然具备这样的技术特点,但技术框架的限制使得ISO组织不得不用MPEG4规范来应付来势汹汹的网络时代。在ITU方面,H.262的后继H.263/H.263+/H.263++也相继登场。

在蓝光存储介质时代,ITU与ISO再次联手制定了新标准,联合视频小组 (JVT)制定的新标准在ITU方面被称为H.264,在ISO方面被称为MPEG4-Part 10或MPEG4高级视频编解码(AVC)。同时,这个标准也被蓝光存储介质时代的两种主流产品HD DVD和Blu-Ray Disk认定为标准编码方案。也就是说,H.264/AVC规范在蓝光存储时代的地位,和H.262/MPEG2规范在DVD时代(红光存储)的地位是相似的。

在涉及到软件的所有领域,微软都是不可忽视的,在解码器方面也是如此。微软的WMV HD就是与ITU/ISO体系相对独立的一个体系和产品,在Windows平台上WMV HD凭借着操作系统的优势很快切入了市场。在消费市场上,微软将WMV HD改造并包装为VC-1规范,同样被HD DVD和Blu-Ray Disk认定为标准编码方案,与H.264/AVC规范平分秋色。

关于“什么样的视频才是高清视频”的分歧不小,对于高清概念中最核心的视频编码依然存在着这样的问题——“什么样的编码器才是高清视频编码器”。

35-d10d11-2.jpg
ISO/ITU编码规范发展线路图
35-d10d11-3.jpg
视频编码器基本架构

H.264/AVC与VC-1在光存储标准中占据的地位,让它们无可否认地成为了高清视频编码的主流,但因为网络传播方式的存在使得这两种规范并不是唯一的选择。如DCT+MC+CLC类视频编码器基本架构,具备这样架构能处理720P以上分辨率的编码器,符合传输规范的编码器都可以被认定为高清视频编码规范。

在这个含义下,C-Cube的M-JPEG、Intel的IVI(Indeo Video Interactive,交互视频技术)、Apple的QuickTime、RealNetworks的Real System都属于高清编码器的范畴。其中尤其值得指出的是,TS方式传输的MPEG2编码、网上最为盛行的MPEG4-ASP规范以及国内有着自主知识产权的AVS是最值得关注的。

极具兼容性的MPEG2-TS编码

不少人都错误地认为MPEG2与高清无缘,是DVD时代的编码方式。其实MPEG2的弹性相当大,在ISO/IEC13818-2也就是MPEG2系列规范的视频部分中,制定了5个类(Profile)和4个等级(Level),DVD也只是用到其中的MP/ML级而已。而且后来还追加了MPEG2-4∶2∶2@ML,可以多代复制以符合ITU-R 601标准增强兼容性。

我们可以看到,在HL(High Level)级别已经可以提供对1920×1080规范的支持了,这已经能满足目前Full HD的分辨率要求。只要HDTV的信号源支持分级,那么MPEG2编码出来的视频兼容性就非常出色,从MPEG1到1080P都不在话下。也正是这么大的弹性空间,使得本来针对HDTV设计的MPEG3规范项目直接被取消了。

MPEG2在Video Codec部分都是源于ISO 13818-2的规范,但在ISO 13818-1描述的系统部分还是有区别的,根据传输方式其被分为MPEG2-PS和MPEG2-TS。

从下图我们可以看到,MPEG2系统中音视频编码出来的视频基本流被封包成封包基本流。但封包基本流是不可以直接传输的数据包,在子系统里面音视频封包基本流将被分为只含一种数据的传输结构,PS(程序流)或TS(传输流)。

用PS方式传输的编码,适用于误码率低的环境,因为如果出现误码就可能导致文件无法解码,所以更多地被应用于DVD光盘等相对静态的应用中;TS方式传输的编码对误码校正比较好,比如打开数字电视就可以从当前时间开始解码,所以更多地出现在网络传输和实时播放领域。从蓝光存储的编码标准与HD时代网络化成为主流的角度来说,MPEG2-TS才是更常用的高清编码方式。

MPEG2系列中MPEG2-PS已经被尘封在DVD时代,MPEG2-TS还能在HD时代继续驰骋疆场,不过它也并不是没有缺点的。我们可以看到,视频同一帧中存在着部分相似的像素(这就被称为空间冗余度),而相邻帧中也有没有变化的像素(这就被称为时间冗余度),这也就是视频编码压缩的可行性源头之一。

虽然可以用运动补偿预测、二维DCT和熵编码等可以针对在有时间和空间冗余度的时候压缩数据,但MPEG2依然是基于帧、块和像素的视频编码方案。在操作上,从VSL(Video Sequence Layer,图像序列层)——>GOPL(Group of Pictures Layer,组图像层)——>PL(Picture Layer,图像层)——>SL(Slice Layer,宏切片层)——>MBL(Macro Block Layer,宏块层)——>BL(Block Layer,块层),都是类似于8×8的像素块。

这种块状化的劣势在于,在较高压缩比下会产生比较严重的块效应,对于人类视觉系统特性利用以及对图像编辑、查询都有所不足,这就属于在架构上的缺陷。如果在编码过程中对帧中醒目的前景才有尽量保留细节的压缩策略,而对于不受关注的背景采用压缩比较高的压缩策略,那么压缩比会提高且压缩后的质量不会降低。

事实上,ISO的专家对于MPEG2的这个弱点也早有觉察,解决它也正是MPEG4编码设计的目的之一。从MPEG2-TS的块状编码模式,到MPEG4图像中以内容为目标的编码方式,第二代的高清编码开始出现。

小贴士

高清视频资源的获取方式除了以HD DVD或Blu-ray Disk为载体之外,央视的高清频道、日本的BS Digital和欧洲的Euro 1080等开播的高清频道,是获取高清的其他来源。另外,如微软、Philips、Sony、JVC、三星和松下等都放出高清视频,以推广自己产品。比如在下面这个链接,就可以找到大量的WMV HD也就是VC-1的高清视频。

http://www.microsoft.com/windows/windowsmedia/musicandvideo/hdvideo/contentshowcase.aspx

作为网虫可以从网上获取高清视频,在思路(http://www.silu.info )等著名的高清BBS找到想要的视频。在这里可以找到20GB容量的片源,也能找到4.3GB或8GB大小的BDRip、HD-DVDRip。

35-未命名.jpg
MPEG2数据包/数据流示意图
35-d10d11-b1.jpg

编者按:前面介绍了HDTV是目前流行的热点,同时它的标准也存在着差异。从VCD时代的普清(LD)到DVD时代的标清(SD),再到蓝光时代的高清(HD),在分辨率提升的同时编码标准也在升级。在极具兼容性的MPEG2-TS编码之后,我们再来看MPEG4-ASP、H.264/AVC和AVS/VC-1编码的特色。

网络时代的MPEG4-ASP

MPEG4编码在设计初期,其思路的着重点就在于交互性与灵活性,网络视频点播、视频电话和各种无线应用领域的多媒体应用,是MPEG4设计的主攻方向。

MPEG4系列规范在ISO系列标准中被命名为ISO 14496,其中ISO 14496-2是视频部分的编码规范,也被称为MPEG4-ASP(Advanced Simple Profile,高级简化类)。说起规范来,可能熟悉的用户比较少,但说到具体的编码器相信绝大多数电脑用户都耳熟能详,最有代表性的MPEG4-ASP编码器是DivX和XviD。这里需要指出一个容易混淆的概念,编码规范和具体的编码器是不同的东西。如后面我们会介绍的H.264规范,和X.264就是两个不相同的东西。

MPEG4的特点是以内容为目标进行编码,基于内容中的对象(Object Based)是中层编码方式,而基于语意(Syntax based)的是高层的编码压缩方式。对于“对象”和“语意”来说,MPEG2和以前的模式就不能继续了。因此,MPEG4-ASP提出了AVO(Audio-Visual Object)概念。对每一个AVO单元,MPEG4都单独编码,并对每个基本的AVO单元分配单独的码流。对比前面提到的MPEG2的架构,就可以看出这是MPEG4-ASP最主要的变化之一,也是对于编码效率、多媒体交互应用等的提升之一。

在编码器的细节部分,比如MC(Motion Compensation,运动补偿)上,RP(Repetitive Padding,重叠运动补偿)和MBM(Modified Block Matching,修订块匹配)的引入同样是对于任意编码内容的支持,面向内容的思路始终贯穿于整个编码器设计过程中。当然,除此之外用于提高运动检测精度的Predictive MVFAST等技术也是MPEG4-ASP的特点,对于分级/类的设计也被很好地继承和发扬,对于高清标准的分辨率完全不在话下。

MPEG4-ASP是第一代MPEG4编码,它的简化类(SP)更是针对低码率(32kb/s)和低分辨率(176×144)环境设计的,在实际应用中,也被更多地用于DVD-Rip或HD-Rip。但从技术的角度而言,MPEG4-ASP比前代MPEG2-TS更能胜任高清的工作,编码效率也更出色。

前程似锦的H.264/AVC

经过MPEG2和MPEG4-ASP两代的发展,H.264/AVC可谓集前辈精华于一身,是目前最热门的也是最好的编码器之一。

H.264/AVC首先值得注意的技术在于帧内预测的引入,这也是它相对于前代编码器所取得的进步之一。在这之前的编码是在DCT域上做差分预测,计算简单但效果较差。H.264/AVC在空间域上可以进行帧内预测,即用邻近的像素值来预测当前像素值,然后对预测误差进行编码。

在一个宏块中,亮度/色度信息也非常重要。在视频编码中传统的RGB色彩表现模式,因为受限于视觉心理模式影响,在编码传输上我们看到更多的是YCbCr模式,其中Y是亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人视觉对于亮度相当敏感而对于色度不太敏感,于是在色度取样上通常使用欠采样来进行处理。

YCbCr模式中YCbCr 4∶4∶4是完整模式的处理,即4个亮度块搭配4个Cr块和4个Cb块,YCbCr 4∶2∶2指的是4个亮度块搭配两个Cr块和两个Cb块,YCbCr 4∶1∶1则是Cb和Cr在水平方向4∶1色度取样的模式。

36-d13-2.jpg
4×4帧内亮度预测算法示意图

做帧内预测就要将亮度和色度分开来说,在亮度上H.264/AVC是基于4×4的块进行预测的。上图就是预测时的9种算法,其中模式2(直流)是采用取A-M平均值的算法来算出预测值,其余8种算法涉及方向性。在垂直模式中用A、B、C、D点推算出相应像素值,在水平模式中用I、J、K、L点推算出相应像素值,它们也是最常见的模式。

在其他模式中,用内插法推算相应的像素值,同时在色度预测模式上H.264/AVC也支持8×8的块的4种色度模式。在规范中,对16×16的块预测具有类似4×4的垂直、水平、直流和平面4种运算模式。具体运算的时候,首先会对16×16的块进行4种运算,求得失真率最低的模式;然后把宏块拆为16个4×4的块,对每个块进行上述9种预测,再求得这种状态下失真率最低的模式。接下来再对两者进行比较求得最佳的像素亮度预测模式,配合上对于色度的预测,寻求最佳模式要经历600种左右的组合运算才能得出结论。

36-d13-3.jpg
H.264/AVC运动预测补偿模式示意图

在运动预测补偿方面,以往编码是以帧内16×16的块(在场内16×8)来进行,最多增加一个8×8的块。在1/4像素精度的引入后H.264/AVC具备了7种模式,如上图小到16个 4×4像素块,大到16×16像素块。这7种运动矢量单元模式对找出真正的运动矢量帮助较大,能有效降低运动细节编码量。

熵编码的改进是H.264/AVC的亮点之一,对于SL(Slice Layer,宏切片层)及以下的数据,如果是残差的话H.264/AVC有CAVLC(Context-based Adaptive Variable Length Coding,基于上下文的自适应变长码)和CABAC(Context-based Adaptive Binary Arithmetic,基于上下文的自适应二进制算术编码)两种熵编码方式,而其他情况则用Exp-Golomb。

CAVLC是用不同码表对应不同概率模型的算法,编码器根据上下文自动去选择最适合的码表。CABAC的设计思路考虑的是信号源序列整体的概率,而不是单个符号的概率,从而能够更大程度地逼近信号源的极限熵,这种算法效率更高,但对于资源的消耗也很大。CABAC概念的引入是一个不小的进步,预设的概率模型/码表无论多么完善,在具体的事件中总是会有一定的差异,CABAC每进行一次编码就会自动调整对信号源模型概率的设定,这在某种意义上可以视作一种有学习能力的智能化手段。

帧内(帧间)编码的引入和熵编码的改进,是H.264/AVC性能提升的重要源泉。但环状滤波器的引入,对抑制高频噪音帮助不小;4×4规模的DCT和把原来的离散余弦变换改变为近似的整数变换,也能降低运算量。

商业化的AVS/VC-1

AVS标准(数字音视频编解码技术标准,GB/T 20090.2),定稿并于2005年底被批准成为国家标准,它最大的特色之一就是我国具有自主知识产权。

36-d13-4.jpg
AVS编码器架构图

从结构上来说AVS编码器与H.264/AVC有不少相似之处,它们也属于同一代编码器。在帧内预测这项技术上,AVS赶上了H.264/AVC的脚步,不过在实现方式上它们有一些区别。AVS进行帧内预测是在8×8基础上做的,对高清视频相当合适,这里所谓的合适是指在效率与花费之间比较平衡,H.264/AVC新版本也倾向这个基础。

不过AVS在亮度预测上只有5种模式,除了最常见的3种以外就是有了两种对角线模式。亮度预测角度的不够完备会导致在某些场景下有一定性能损失,但损失值多数不会超过10%,省掉较不常见的4种亮度预测则会降低系统30%~50%的复杂度。

在运动预测补偿方面,H.264/AVC的7种模式非常完善,而AVS只支持16×16、16×8、8×16和8×8这四种模式。显然这对性能会造成相当大的影响,基本倒退到MPEG4-ASP级别。同时在预测时使用的参考帧上,AVS只支持两帧,H.264/AVC在这部分的管理和缓存复杂度/存储空间要求上比它高出50%以上,不过在性能上如果是面对IBBP状态,差异不是很明显。

36-d13-5.jpg

总而言之,AVS是一个注重“性价比”的设计方案,它基本能提供和MPEG4-ASP相当甚至略好的性能,但系统消耗比H.264/AVC低不少。

VC-1是微软以WMV-HD为底本推出的编码系统,在技术架构上是和H.264/AVC同级的产品,在商业推广上更是依仗自己在业界的地位非常强势。2003年VC-1推出的时候无论在技术细节还是在市场手段上的姿态,曾让H.264/AVC好一阵难堪,Blu-ray Disk阵营甚至对H.264/AVC采取了不接纳态度,直到H.264/AVC在2004年修订出FRExt,这种态度才有所改变。

在技术层面上,和AVS对H.264/AVC朝着高性价比方向缩水的做法不同的是,VC-1更多考虑的是均衡问题。我们可以看到微软是如何将自己的产品一步一步变为行业标准,这里面不仅有程序员们的汗水,也有杰出商业运营的功劳。而VC-1同样沿着前辈产品的脚印,大踏步地向前飞奔。

结语

适用于高清的编码器并不少,MPEG2-TS因为其结构简单也因为其在市场上延续的时间较长,有着良好的软硬件基础。但它在架构上的落后性已经成为难以挽回的硬伤,在HD-DVD光盘上甚至不能放下一部足够质量的两小时电影的时候,它剩下的也就只有兼容性和对软硬件低要求的优点了。

MPEG4-ASP在网络上使用得“如火如荼”,与其在商业市场上的“萎靡”形成了鲜明的对比。没有良好的商业运作也就意味着与光存储、DVD等绝缘,即使它在技术上比MPEG2-TS有着50%以上的提升,其最终的命运还是用于网络rip,不过这也符合其最初的设计本意。而且从这一代编码器开始,引入的不少概念都是具有里程碑意义的。

AVS国产商业标准和VC-1强势商业标准,在技术上有着自己独特的选择,但它们更多的特点在于商业性上。无论是国家推广的力量、自主知识产权带来的成本降低,还是操作系统集成带来的“近水楼台先得月”的效果,告诉我们的都是同样的结论——最成功的产品往往不是技术含量最高的产品,而是商业运作最成功的产品。

H.264/AVC的崛起与半导体技术的发展有着密切关系,用更多的运算来换取更好的效果是这个编码器的核心思想。随着半导体技术的提升,一些高负载的工作已经变得不那么难以接受了,注重性能甚至考虑平衡的用户都会考虑选择这个编码器。下一代光存储对它的认可,也让这个编码器注定在很长时间里都会是高清编码的主流产品,毕竟它能提供高出于MPEG2-TS编码器70%~120%的性能。