电信行业内真正有趣的玩笑很少,不过有一条却以其讽刺性的幽默让人听后不禁莞尔:关于标准最大的好处,就是有如此多的标准可供人们选择。这句话不仅适用于视频领域,通信、传输系统以及技术接口等领域亦是如此。
本文首先会简要介绍一些最常用的视频标准,然后讨论诸如LSI等芯片制造商们所采用的多内核且基于媒体处理器的灵活方法。LSI在面向语音/视频媒体网关市场开发产品方面积累了丰富的行业经验,包括借助新一代媒体网关提供针对任意设备间视频通信和实时协作应用的可扩展的产品系列。
奠定基础
过去十年来,视频的重要性一直在与日俱增。消费广告形式的转变是其中第一个也可能是最重要的促进因素。不过从目前来看,电视的收视率已经下降到了历史最低点,电视广告的效果和影响力出现了下滑,然而广告费用却始终居高不下。因此,广告商正着力为其广告开支寻找新的流向,其中最受广告商青睐的一个方向,就是蓬勃发展的在线视频点播。
这种变化的原因显而易见。因为信息可以实现极其精细的传输,而且成本远远低于传统方法,所以将视频作为一种基于网络的应用(借助互联网),其大受欢迎也就不足为奇了。此外,无处不在的宽带、现代个人电脑的强大功能以及多媒体内容涌现出的惊人广度、深度与丰富性也为视频的逐步流行助了一臂之力。
受到市场追捧的任何新兴技术同时也都会促进创新,进而转化为产品和服务的差异化、对争做第一的追求以及消费成本的降低。但创新以及对独树一帜的追求往往会导致为满足市场需求而各自为政,同时也不可避免地导致产品互不兼容。这种不兼容性会减缓市场发展,因为用户担心选择的产品或服务最后会走上错误的技术路线。
标准化机构有责任协调开发商所采纳的不同方案。平衡是解决问题的关键所在。标准化组织必须制定“为产品开发提供统一方案”的建议,同时为实施阐释留出足够的空间,以避免创新陷入僵化和画地为牢的境地。
当前大多数视频标准均是由国际电联(ITU)与动态图像专家组(MPEG)这两个机构制定。ITU 从传输视频流的网络角度制定标准,而MPEG则是从所传输的产品角度来制定标准。二者均得到了广泛应用且具有良好的兼容性。
ITU 标准
ITU发布的视频标准位于相关标准的‘H’卷,包括H.261、H.263与H.264等。本节将对上述标准进行逐一介绍。
H.261
H.261 最初是针对 ISDN 时代的有限数据速率(特别是 64kbps 的倍数)而开发的视频编码标准。在一些文件中该标准也被称为 Px64,其中 P 代表 1~30 之间的任何一个数字(30 是ISDN 基本速率线路或 E-1 设备所能够提供的最大信道数)。
H.263
H.263 是专为执行中等质量视频会议与视频电话应用的视频压缩而制定的视频编码标准。H.263 最初用于传输 20kbps 的低带宽视频,基本建立在 H.261 设计方案的基础之上,不过仅需 H.261 的一半带宽即可实现同等质量。因此,H.263 在实施频率方面已经有效取代了 H.261。与 H.261 一样,H.263 也依靠实时传输协议 (RTP) 传输视频信号。
H.261 仅支持两种分辨度,但 H.263 却可支持 5 种。除了 CIF 与 QCIF,H.263 还可支持 SQCIF、4CIF 与 16CIF。
H.264
H.264是ITU系列中的新一代标准,由ITU和国际标准化组织(ISO)联合制定,也被称为 MPEG-4 Part 10标准。H.264/MPEG-4又称为高级视频编码( AVC)标准,旨在支持视频会议、视频电话等高端视频应用,具有数字压缩视频(诸如低码率互联网流、HDTV广播、数字影院等)等功能。
H.264包含的高效视频编码工具能够进一步提高编码效率。相对于以往标准,该标准在速率失真方面有显著的优势(根据相关应用,平均增益可高达50%)。它针对特定应用需求提供了多个类别。基本类包括针对视频会议与移动应用优化的工具;扩展类针对流媒体应用;而主类和高级类则针对广播以及存储应用。
H.264在算法概念上分为两层:视频编码层(VCL)代表了视频压缩的内容;网络适配层(NAL)根据网络能力对视频压缩数据进行打包和传送。另外它还为RTP等传输协议以及存储系统提供头信息。
可扩展视频编解码器 (SVC) 标准是对 H.264 的最新扩展,用于传输在时间、空间和视频质量方面具有可扩展性的编码流。该 SVC 扩展引入了一个原始 H.264 中不存在的概念 ——把视频码流分成几层。基础层对视频流最基本的时间、空间和质量的表达进行编码。增强层利用基础层作为起点,对附加信息进行编码,从而在解码过程中把编码结果用于重构高质量、高分辨率或高帧率的视频版本。通过对基础层以及需要的后续增强层进行解码,解码器能够以所希望的特征产生一种视频流。编码视频流可被删节以限制带宽占用或降低解码计算要求。删节过程仅指从编码视频流提取所需各层,而对视频流本身不做其它任何处理。因此,可以根据端点解码器的功能(如显示尺寸、计算资源等)来实现最佳体验质量 (QoE)。
MPEG 标准
MPEG 视频标准系列包含 MPEG-1、MPEG-2、MPEG-3 与 MPEG-4四个主要协议。
MPEG-1
MPEG-1 是一种由联合图像专家组与 CCITT(即现在的 ITU-T)的电话专家组共同制定的视频和音频有损压缩标准,旨在用于把数字视频与 CD 级音频压缩到 1.5Mb/s,压缩比分别为 26:1 和 6:1。依据此标准,可以在信号质量无过多损失的情况下传输高度压缩的视频与音频。
MPEG-2
源于 MPEG-1 标准的 MPEG-2支持有损音频与视频压缩。MPEG-2 是广播、有线和直播卫星电视系统中数字电视传输最常用的标准。另外,它还适用于电影的格式化,以便于 DVD 的发行。MPEG-2 是一种国际标准,其个别部分(第 1 与第 2 部分)是与 ITU 联合制定的。虽然 MPEG-2 广泛应用于电视与 DVD 系统,但它并未对此类环境做出全面的规定。该标准为本地化阐释保留了大量余地。
MPEG-3
人们普遍认为 MPEG-3 就是音乐编码的流行标准 MP3(其区别在于 MPEG-1 第 3 层),但事实恰恰与此相反。MPEG-3 规定了一系列专门用于以 20~40Mb/s 的速率传输 1080p HDTV 信号的音频与视频编码标准。当 HDTV 问世时,大家发现当时的 MPEG 标准似乎稍显不足,因此选择 MPEG-3 作为临时解决方案。1992 年,HDTV 作为一种特殊服务配置文件被添加到了 MPEG-2 之中,MPEG-3 随之成为 MPEG-2 的一部分。
MPEG-4
随着多媒体应用在 20 世纪 90 年代后期和 21 世纪初期的日益普及,人们越发需要一种能够满足此类应用特殊需求的压缩标准,在这种背景下,MPEG-4 应运而生。
MPEG-4 于 1998 年问世,很快即成为用于基于 Web 的流媒体、基于 CD 的音频内容、语音和广播电视的专用标准。该标准提供许多 MPEG-1 与 MPEG-2 已经规定的相同功能,但另外针对渲染数字图形的特殊要求而增加了一些新规范,包括对用于 3D 图形渲染和数字版权管理 (DRM) 的虚拟现实标记语言 (VRML) 的支持。该标准的许多部分都是经过精心设计的,而且得到了广泛应用。MPEG-4 第 2 部分得到了 DivX®、Xvid®、Nero Digital® 与 QuickTime® 以及 H.264 所含高级视频编码 (AVC) 的广泛采纳。另外该部分也已应用到了 HD DVD 与 Blu-ray Disc™ 之中。
几种外围标准
由于VC-1、Flash视频等新视频标准已经在技术领域站稳脚跟,因此值得一提。VC-1是之前讨论的许多标准中所采用的编解码格式的变体。VC-1由业界众多公司编写而成,不过普遍认为它是由微软开发,它被视为H.264的替代标准。VC-1针对交错式视频内容进行了优化,因此成为广播与视频行业更适用的解决方案。尽管VC-1刚问世不久,但蓝光与高清 DVD均采用了 VC-1,而且 Windows Vista也支持VC-1解码器,从而使其在市场中占据了有利地位。
Flash视频采用Adobe Flash Player播放,可支持H.264视频及AAC音频等各种编解码格式输出。此格式广泛应用于互联网视频分配,而且已被YouTube以及Yahoo!等各大网站所采用。
文章开头提到的笑话并非是玩笑,看起来,有多少种需要传输的视频就有多少种视频格式化和传输标准。这种现象好的一面,是各种标准组织已经展开紧密合作,从而减少了新标准数量,更多关联标准得以涌现。不过,制造商似乎也一直面临着同样的挑战。面对如此多的标准,他们该如何快速、高效地实现产品上市?如何才能确定哪个标准会是最好的,以及该按照哪个标准设计自己的产品?显然,他们可以设计出符合多种标准的产品,但这需要采用某种媒体网关以确保实现全面的互操作性。
值得注意的是,即使采用的标准再好,实际产品仍然会受到成本与上市时间的限制,因此往往不得不进行折中,如:硬接线逻辑可以满足HD视频编解码器的复杂需求,但却缺乏灵活性。为了实现更压缩水平,视频编解码标准的复杂性在不断提高,因此需要更高的灵活性来处理部分兼容的实施方案。一种方法是采用技术体系中的最低等级,显然,为了适应视频以及视频用户的不断变化,视频标准过去几年已经有所发展。视频最初存在于广播或有线电视领域,但现在它以适合一系列广泛设备的各种格式逐步进入互联网。当然,其挑战是为各种设备与平台提供一切内容并且使其能够播放这些内容,这并非易事。一部分解决方案源于市场中能够处理上述繁杂功能的多种成功的操作系统的发展。虽然灵活性与功能非常出色,但是这些操作系统实现上述目的需要付出高功率和低密度的代价,不过,如果所需要的正是低密度应用,并且功率不是问题时,那么就值得付出上述代价。
多媒体是现在的热门,而随着支持互联网接入、游戏、视频以及电视的宽带手机问世,形势已经发生了改变。其它应用对网络以及联网设备的需求同样巨大,如用户生成的内容以及社交网络等。为此,在电信领域大获成功的半导体公司针对这种需求开发了支持各种视频分辨率(如:QCIF、CIF以及HD)以及具有支持各种标准的灵活性的视频处理架构。
为了成功处理高分辨率视频,设计人员必须将功耗作为一种关键设计要素。视频是各种应用中功耗需求最高的应用之一,因为满足QoS要求以及观众期望的输出,需要大量的处理工作。实现最高功率性能需要采用低功耗技术。视频应用可通过采用具有高效管线设计的多内核媒体处理器来满足可编程性以及低功耗的需求。
可编程多核媒体处理器
随着多种视频与音频格式的出现,支持它们及其应用的设备也在变得日益复杂,从而催生了成本更高且更为复杂的半导体设计方案。视频属于要求极高的应用,所呈现的高质量信号需要进行特别处理,因此在部署视频专用产品时必须考虑一系列功能。可编程多核解决方案不但灵活,而且功耗较低。
视频编码过程中一大部分实时周期实际上是用于控制与数据处理。例如,理想方案是在单次运算中同时处理用于转换和过滤的控制敏感型数据。通过增强控制和修改流程指令,如高效硬件环路、并行条件计算以及高效预加载,可以获得更佳的解决方案。
另外,还应尽可能采用效率最高的方式处理解析、运动矢量预测、内插、运动补偿、CABAC运算及其它计算强度高的任务。事件处理或管理中的每个元素所要求的计算形式都有少许不同。此类考虑决定了系统的整体架构。所有任务都采用单一处理器内核会导致整体架构效率低下。例如,如果需要更高时钟频率或更多内核,则需要更昂贵、耗电更高的器件。通过让每种处理采用专用可编程内核,可以优化计算任务并提高整体系统效率。提供多个内核、高级处理和高数据吞吐量的媒体处理器,能够实现具有满足当前与未来多媒体需求所需性能与灵活性组合的解决方案。
媒体格式丰富的应用要求能够跨越多个通道的高密度DSP功能,值得庆幸的是,满足该种应用需求的多核多媒体处理器已经问世。在为新一代媒体应用挑选多核媒体处理器时应当考虑一系列重要特性。表 1 列出了这些特性及相关重要说明。
表 1. 多媒体专用多核DSP重要特性。
多层编码器架构
典型视频转码器实施方案需要HD解码器(SD、720p或1080p),有可能要调整图像尺寸、将YUV输出分配到其它内核或器件,并以CIF、SD、720p或1080p分辨度进行视频编码。本部分主要介绍完整的解/编码转码技术,相同工作原理也适用于高效转码器,其解码器参数(如:运动矢量)等常被用于编码器来降低编码器复杂性。
高清视频编码,即1080p(1920x1080)与 720p(1280x720)分辨度的任务非常苛刻,其需要多个媒体处理内核,以便实时实现30FPS~60FPS。该任务甚至可以跨越多个多核DSP器件。本文主要针对H.264展开讨论,不过相同原理同样适用于H.263与MPEG4编码器。可以采用两种方式实现DSP内核之间的任务划分。
图 1. H.264 编码器方框图。
一种选择是在DSP内核之间进行功能分配,尽可能均匀地在内核之间分配计算负载。例如,如图1所示,一个内核负责帧间预测与帧内预测,另一个内核负责实现变换与量化,而第三个内核则负责运行去块效应滤波器与熵编码工作。实际上,功能划分存在多种缺陷。负载均衡需要在内核之间实现更高级的通信与协调。均衡内核之间的计算负载难度更高,因为每个功能块都具有很高的复杂性。当图像分辨率从CIF提高到HD时,无法采用功能划分架构实现可扩展性。
能够克服上述问题的另一种视频编码器实施方案,是适用于可扩展多核器件的多层架构。该方案还适用于多器件架构,其中多个多核器件通过sRIO、PCIe等高速互连总线进行连接。
在这种架构中,编码器的实施分配到多个 DSP 内核。每个宏块条都分配到一个DSP内核。其中每个内核都提供一些特定功能,如:速率控制与帧内图像处理。事实上,无法预先进行比特预算并分配到各个宏块条,因为不同宏块条可能具有不同的图像复杂性,而在图像分割块之间采用差异很大的Qp值会造成合成图像的层边界出现伪影。在H.264中,宏块条NAL可以包含任意数量的宏块,因此与H.263不同,图像分割块的形状无需符合GOB边界。每个宏块条的头部(slice header)均包含宏块条数据中编码的第一个宏块的编号。
图2. HD 编码器多层处理。
在多宏块条架构中(如图2所示),DSP内核从sRIO接口(连接另一个多核媒体处理器)接收YUV格式的原始视频。该媒体处理器可实施H.264解码器。这种多处理器架构可以充分利用 sRIO的灵活性优势,动态地将一个多核媒体处理器中已经解码的宏块条分配给另一个多核媒体处理器中的DSP内核,从而进行深入处理。
sRIO是一种点对点技术,可以很灵活地连接多个器件来传输数据或处理通用数据集。每个器件都在其它器件的I/O空间自主地进行“写”操作。每个sRIO在各个方向都可支持高达 10Gbps的吞吐能力。把sRIO与高效DMA通道完美结合,可实现:
* 并行进行视频处理与数据传输
* 协调执行
* 通过共享存储器(DPS内核位于同一器件的情况下)或通过高速sRIO接口(DSP内核位于不同器件的情况下)实现数据共享。
图3. 高吞吐量、低时延多核器件互连示例。
图3说明,高速串行I/O在复杂视频处理任务中的潜在应用。图中显示用于扩展多个器件中多核器件处理能力的连接方案,其可以实现更复杂的视频处理运算或支持更多视频转码通道。采用sRIO开关能够实现更灵活的器件间通信,不过如果处理流处于相邻器件之间,也可以不采用这种开关。与PCIe开关相比,sRIO由于其数据包开销较低,因此一般成本更低、性能更高、且时延更短。
多核解码器架构
视频解码器的实现一般需要独立于编码器。也就是说,解码器结构必须通用,以处理不同编码器方案,如单NAL或多NAL实现方案。H.264解码器涉及串行操作和并行操作,而且一项重要任务是在多个内核DSP间实现高效分配。高效的多核实现架构是可分成众多串行操作。
熵解码器是一种包含串行操作和局部循环的功能块,无法分配给运行在多个内核中的并行任务。即使考虑采用上下文自适应二进制算术编码(CABAC)等先进技术,熵解码器的复杂性也低于重组块。随着DSP内核功能日益提高,可在单个DSP内核中实现解码功能。
图 4. H.264解码器方框图。
图4为一种多核架构,其采用单个DSP内核实现熵解码,且将重组块的计算强度更高的任务分配给多个DSP内核。这种数据分配技巧可将任务间通信保持在指定内核上并实现更有效的高速缓存性能。此架构的另一个优势,是具有从SD到HD的可扩展性,同时实现DSP 内核间更均匀的负载均衡。可以考虑采用不同实现方案,如:每内核单行或每内核多列。数据分配还有利于整体时延的最优化,因为是采用流水线方式实现解码,所以只要收到来自相邻宏块的数据就能够执行宏块的解码。
评论
查看更多