视频压缩技术的系统考虑
编解码技术在过去十年中不断改进。最新的编解码技术(h.264/avc与vc-1)代表着第三代视频压缩技术。为具体应用选择正确的编解码器并优化其实时实施仍然是一项巨大的挑战,最佳的设计必须权衡压缩效率及可用的计算能力。本文探讨了压缩能力与复杂性之间的权衡,并讨论市场中可能会影响主流视频编解码器未来的实时实施与主要趋势。 数字视频产品需求近些年出现猛增。主流应用包括视频通信、安全监控与工业自动化,而最热门的要算娱乐应用,如 dvd、hdtv、卫星电视、高清 (hd) 机顶盒、因特网视频流、数码相机与 hd 摄像机、视频光盘库 (video jukebox)、高端显示器(lcd、等离子显示器、dlp)以及个人摄像机等。众多精彩的新应用目前也处于设计或前期部署中,例如针对家庭与手持设备及地面/卫星标准(dvb-t、dvb-h、dmb)的高清 dvd(蓝光/hd-dvd)和数字视频广播、高清视频电话、数码相机以及 ip 机顶盒。由于手持终端计算能力的提高以及电池技术与高速无线连接的发展,最终产品的移动性与集成性也在不断提高。 视频压缩是所有令人振奋的、新型视频产品的重要动力。压缩-解压(编解码)算法可以实现数字视频的存储与传输。典型的编解码器要么采用行业标准,如 mpeg2、mpeg4、h.264/avc 与 avs,要么采用专有算法,如 on2、real video、nancy与windows media video (wmv) 等。wmv 是个例外——它最初是微软公司的专有算法,而现在则以 vc-1 的新名称在业界实现了标准化。编解码技术在过去十年中不断改进。最新的编解码技术(h.264/avc 与 vc-1)代表着第三代视频压缩技术。这两种编解码技术利用如可编程 dsp 与asic 等低成本 ic 的处理能力,都能够达到极高的压缩比。不过,为具体应用选择正确的编解码器并优化其实时处理仍然是一项巨大的挑战。最佳的设计必须权衡压缩效率及可用的计算能力。此外,如何在计算能力有限的情况下获得最佳压缩效率也是一门大学问。 在本文中,我们首先概述视频编码的主要概念,同时介绍传统压缩标准。然后我们重点介绍其中包括 h.264/avc、wmv9/vc-1与avs 等在内的最新编解码技术的功能,此外,还将深入探讨压缩能力与复杂性之间的权衡。最后,讨论市场中可能会影响主流视频编解码器未来的实时处理与主要趋势。 2. 视频压缩挑战 数字视频的主要挑战在于原始或未压缩的视频需要存储或传输大量数据。例如,标准清晰度的 ntsc 视频的数字化一般是每秒 30 帧速率,采用 4:2:2 ycrcb 及 720(480,其要求超过 165mbps 的数据速率。保存 90 分钟的视频需要 110gb 空间,或者说超过标准 dvd-r 存储容量的 25 倍。即使是视频流应用中常用的低分辨率视频(如:cif:352x288 4:2:0、30 帧/秒)也需要超过 36.5mbps 的数据速率,这是 adsl 或 3g 无线等宽带网络速度的许多倍。目前的宽带网可提供 1~10mbps 的持续传输能力。显然数字视频的存储或传输需要采用压缩技术。 视频压缩的目的是对数字视频进行编码——在保持视频质量的同时占用尽可能少的空间。编解码技术理论依据为信息理论的数学原理。不过,开发实用的编解码技术需要艺术性的精心考虑。 3. 压缩权衡 在选择数字视频系统的编解码技术时需要考虑诸多因素。主要因素包括应用的视频质量要求、传输通道或存储介质所处的环境(速度、时延、错误特征)以及源内容的格式。同样重要的还有预期分辨率、目标比特率、色彩深度、每秒帧数以及内容和显示是逐行扫描还是隔行扫描。压缩通常需要在应用的视频质量要求与其他需求之间做出取舍。首先,用途是存储还是单播、多播、双向通信或广播?对于存储应用,到底有多少可用的存储容量以及存储时间需要多久?对于存储之外的应用,最高比特率是多少?对于双向视频通信,时延容差或容许的端到端系统延迟是多少?如果不是双向通信,内容需要在脱机状态提前完成编码还是需要实时编码?网络或存储介质的容错能力如何?根据基本目标应用,不同压缩标准以不同方式处理这些问题的权衡。 另一方面是需要权衡编解码实时处理的成本。如 h.264/avc 或 wmv9/vc-1等能够实现较高压缩比的新算法需要更高的处理能力,这会影响编解码器件的成本、系统功耗以及系统内存。 4. 标准化机构 在视频编解码技术定义方面有两大标准机构。国际电信联盟 (itu) 致力于电信应用,已经开发了用于低比特率视频电话的 h.26x 标准,其中包括 h.261、h.262、h.263 与 h.264;国际标准化组织 (iso) 主要针对消费类应用,已经针对运动图像压缩定义了 mpeg 标准。mpeg 标准包括 mpeg1、mpeg2 与 mpeg4。图 1 说明了视频编解码标准的发展历程。 mpeg 与 iso 根据基本目标应用往往做出稍有不同的取舍。有时它们也会开展合作,如:联合视频小组 (jvt),该小组定义了 h.264 编解码技术,这种技术在 mpeg 系列中又被称为 mpeg4-part 10 或 mpeg4 高级视频编解码 (avc)。我们在本文中将这种联合标准称为 h.264/avc。同样,h.262 对应 mpeg2,而 h.263 基本规范类 (baseline profile) 技术在原理方面与 mpeg4 简单类 (simple profile) 编解码技术存在较多重复。 标准对编解码技术的普及至关重要。出于规模经济原因,用户根据可承受的标准寻找相应产品。由于能够保障厂商之间的互操作性,业界乐意在标准方面进行投资。而由于自己的内容可以获得较长的生命周期及广泛的需求,内容提供商也对标准青睐有加。尽管几乎所有视频标准都是针对少数特定应用的,但是在能够适用的情况下,它们在其他应用中也能发挥优势。
为了实现更好的压缩及获得新的市场机遇,itu 与 mpeg 一直在不断发展压缩技术和开发新标准。中国最近开发了一种称为 avs 的国家视频编码标准,我们在后面也会做一介绍。目前正在开发的标准包括 itu/mpeg 联合可扩展视频编码 (joint scalable video coding)(对 h264/ avc 的修订)和mpeg 多视角视频编码 (multi-view video coding)。另外,为了满足新的应用需求,现有标准也在不断发展。例如,h.264 最近定义了一种称为高精度拓展 (fidelity range extensions) 的新模式,以满足新的市场需求,如专业数字编辑、hd-dvd 与无损编码等。 除了 itu 与 iso 开发的行业标准以外,还出现了几种专用于因特网流媒体应用、广受欢迎的专有解决方案,其中包括 real networks real video (rv10)、microsoft windows media video 9 (wmv9) 系列、on2 vp6 以及 nancy。由于这些格式在内容中得到了广泛应用,因此专有编解码技术可以成为业界标准。2003 年 9 月,微软公司向电影与电视工程师学会 (smpte) 提议在该机构的支持下实现 wmv9 位流与语法的标准化。该提议得到了采纳,现在 wmv9 已经被 smpte 作为 vc-1 实现标准化。 5. 视频编码原理 我们感兴趣的所有视频标准都采用基于模块的处理方式。每个宏模块一般包含 4 个 8(8 的光度块和 2 个 8(8 的色度块(4:2:0 色度格式)。视频编码基于运动补偿预测(mc) 原理错误!未找到引用源。,变换与量化及熵编码。图 2 说明的是一种典型的、基于运动补偿的视频编解码技术。在运动补偿中,通过预测与最新编码的("参考")视频帧处于同一区域的视频帧中各宏模块的像素来实现压缩。例如,背景区域通常在各帧之间保持不变,因此不需要在每个帧中重新传输。运动估计 (me) 是确定当前帧——即与它最相似的参考帧的 16(16 区域中每个 mb 的过程。me 通常是视频压缩中最消耗性能的功能。有关当前帧中各模块最相似区域相对位置的信息("运动矢量")被发送至解码器。 mc 之后的残差部分分为 8(8 的模块,各模块综合利用变换编码、量化编码与可变长度编码技术进行编码。变换编码(如:离散余弦变换或 dct)利用残差信号中的空间冗余。量化编码可以消除感知冗余 (perceptual redundancy) 并且降低编码残差信号所需要的数据量。可变长度编码利用残差系数的统计性质。通过 mc 进行的冗余消除过程在解码器中以相反过程进行,来自参考帧的预测数据与编码后的残差数据结合在一起产生对原始视频帧的再现 。
在视频编解码器中,单个帧可以采用三个模式中的一个进行编码 —— 即 i、p 或 b 帧模式(见图 3)。几个称为 intra (i) 的帧单独编码,无需参考任何其他帧(无运动补偿)。某些帧可以利用 mc 编码,以前一个帧为参考(前向预测)。这些帧称为预测帧 (p)。 b 帧或双向预测帧通过之前的帧以及当前帧的后续帧进行预测。b 帧的优势是能够匹配堵塞在采用前向预测的上一帧中的背景区域。双向预测通过平衡前向及后向预测可以降低噪声。在编码器中采用这种功能会要求更多处理量,因为必须同时针对前向及后向预测执行 me,而这会明显使运动估计计算需求加倍。为了保存两个参考帧,编码器与解码器都需要更多内存。b 帧工具需要更复杂的数据流,因为相对采集及显示顺序而言,帧不按顺序解码。这个特点会增加时延,因此不适合实时性较高的应用。b 帧不用于预测,因此可以针对某些应用进行取舍。例如,在低帧速应用中可以跳过它们而不会影响随后 i 与 p 帧的解码。
6. 传统视频编码标准 h.261 itu 编制的 h.261[2] 标准是第一个主流视频压缩标准。它主要针对双工视频会议应用,是为支持 40kpbs~2mbps 的 isdn 网络而设计的。h.261 支持 352(288 (cif) 及 176(144 (qcif) 分辨率,色度分辨率二次采样为 4:2:0。由于可视电话需要同步实时编解码,因此复杂性设计得较低。由于主要用于对延迟敏感的双向视频,因此 h.261 仅允许采用 i 与 p 帧,而不允许 b 帧。 h.261 采用基于块的 dct 进行残差信号的变换编码。dct 把像素的每个 8(8 块映射到频域,产生 64 个频率成分(第一个系数称为 dc,其他的称为 ac)。为了量化 dct 系数,h.261 在所有 ac 系数中采用固定的线性量化。量化后的系数进行行程编码,其可以按非零系数描述量化的频率,后面跟随一串零系数,在最后一个非零值之后以块代码结束。最后,可变长度编码 (huffman) 将运行级别对 (run-level pair) 转换成可变长度编码 (vlc),其比特长度已针对典型概率分布进行过优化。 基于标准块的编码最终产生模块化视频。h.261 标准利用环路滤波避免这种现象。在模块边缘采用的 |



