第8章 H.264视频编码传输及其在移动通信中的应用
8.1 概述
在过去二十年里,移动通信和多媒体通信获得了史无前例的发展,并获得了巨大的商业成功。移动通信和多媒体技术的融合正在加速进行,在诸如网络架构、低功耗的集成电路、功能强大的数字信号处理芯片、高效的压缩算法等方面的研究成果不断涌现。面向无线通信的视频图像编码与传输技术已成为当今信息科学与技术的前沿课题。
无线网络除了提供语音服务之外,还提供多媒体、高速数据和视频图像业务。无线通信环境(无线信道、移动终端等)以及移动多媒体应用业务的特点对视频图像的编码与传播技术提出了新的要求。首先,传输带宽一直是至关重要的,这也对无线视频通信网络的架构、通信协议以及视音频编码标准的研究产生了重要的影响。多媒体信息的信息量十分庞大,例如广播级质量的数字电视信号码率未压缩时为216Mbit/s,即使采用CIF格式也达到37Mbit/s。采用当前最新的视频编码标准,广播质量的视频图像需要的带宽大约为几兆比特每秒;而对于诸如可视电话这类低分辨率和图像相对静止的视频,要获得令人满意的图像质量至少需要几十千比特每秒的带宽。与此同时,当前广泛使用的全球移动通信系统GSM,通常只能提供10~15kbit/s的带宽,刚够满足压缩语音编码的需求,对于视频传输是远远不够的。幸运的是,随着第三代移动通信技术3G以及未来移动通信技术的发展,视频传输的带宽瓶颈会得到进一步的缓解。
2003年,ISO/IEC的运动图像专家组(MPEG)与ITU-T的视频编码专家组(VCEG)在再次联手制定了最新的视频编码标准H.264/AVC。其主要目的和特点是更高的编码效率和更好的网络适应性。在相同的重构图像质量下,H.264/AVC与H.263+和MPEG-4 ASP标准相比,节约50%的码流。H.264采用分层模式,定义了视频编码层(VCL)和网络提取层(NAL),后者专为网络传输设计,能适应于不同网络中的视频传输,进一步提高网络“亲和性”。H.264引入了面向IP包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。H.264具有较强的抗误码特性,特别适应丢包率高、干扰严重的无线视频传输的要求。
本章首先介绍了3G系统业务类型、分层结构以及H.264/AVC分组交换业务传输协议栈;然后从视频编码层VCL和网络抽象层NAL角度分别阐述H.264标准所采用的各种错误恢复工具;接着介绍了一种适用于低码率及无线信道的宏块级自适应码率分配方法;最后,以中国移动正在运营的“万花筒”业务为例,介绍3G无线互联网业务中的多媒体平台完整的设计方案。
8.2 H.264/AVC在无线通信中的传输
8.2.1 H.264/AVC在无线通信中的应用
移动终端传输视频流已经成为了第三代移动通信系统3G的主体业务之一。根据传输速率、端到端时延以及时延抖动等QoS要求,H.264定义了3类视频传输服务。
1.应用于视频电话和视频会议的包交换会话服务PCS
编码、传输和解码实时双向同时进行,最小化会话服务中的端到端时延,保持视频和音频的同步。编解码器的参数能实时调整,错误恢复机制要根据实际网络的变化而改变。在这种应用中,编码、传输和解码实时地双向同时进行。
2.应用于直播和视频录像的包交换流媒体服务PSS
传输和解码同时进行,与实时编码相比对时延要求降低,编码器可以进行优化实现高效编码。对于流媒体服务,用户请求已经编码好并存放在服务器的队列。鉴于流媒体服务使用不可靠的传输协议,编码时要进行差错控制并进行信道纠错编码。
3.多媒体信息服务MMS
编码,传输和解码三者完全分离。记录的视频信号进行离线编码和本地存储,可在任何时间进行发送,接受端在完全下载下来后才进行解码。由于这种应用的非实时性,编码器可以通过优化进行高效编码,使用可靠的传输协议如FTP和HTTP,对时延和错误恢复机制没有要求。
不同的视频应用具有不同的QoS等级和工作方式,如图8.1所示。
图8.1 移动通信视频应用示意图
8.2.2 H.264分层传输结构
多媒体视频在不同环境下的传输,不仅需要高效率的编码,同时还需要编码后的视频能容易地无缝集成到当前和未来的网络协议架构当中。鉴于H.263和MPEG-4标准制订过程中面临的网络应用的相关问题,H.264在系统层面提出了一个全新的概念,定义了视频编码层VCL和网络提取层NAL,如图8.2所示。
图8.2 H.264的分层传输结构
VCL包括VCL编码器与VCL解码器,主要功能是采用运动补偿、变换编码、熵编码以及去方块滤波等多种技术,进行视频压缩数据的高效组织和表示。与以往的编码标准不同的是,它引入了一系列新特性,使得H.264的编码压缩效率得到了极大提升。H.264只明确地规定了解码过程,给视频捕捉、预处理、编码等阶段的具体实现方法留有了充分的余地。VCL也可根据当前的网络情况调整编码参数(如帧率等)来适应网络的变化。
NAL由NAL编码器和NAL解码器组成,主要功能是定义数据封装的格式,为VCL提供与网络无关的统一接口。数据承载在网络提取层单元(NALU)中,NALU采用统一的数据格式,包含单个字节的包头信息和多个字节的数据。包头信息包含存储标志和类型标志。存储标志用于指示当前数据不属于被参考的帧,从而便于服务器根据网络的拥塞情况进行丢弃;类型标志用于指示图像数据的类型。NAL支持众多基于包的有线/无线通信网络,诸如H.320、MPEG-2和RTP/IP等。
为了实现NAL适应不同类型的传输系统(如MPEG-2、H.324/M及无线网络等),传输层中需按照不同的传输协议,进一步封装NAL单元。例如,在无线网络的电路交换业务中,通常NAL单元以标准附录B定义的二进制视频流文件的形式,按照H.324/M协议进行封装和传输。在分组交换中,通常NAL单元则以RTP包形式,按照RTP/DUP/IP进行封装和传输。鉴于3G-IP网络的发展趋势,本文后面将着重讨论H.264视频流在3G-IP网络中以RTP/UDP/IP的方式进行传输的情况。
8.2.3 H.264分组交换业务传输协议栈
就移动通信中的视频传输而言,除了高效的视频压缩,视频数据传输如何适应无线信道和移动通信的特点,同样也是一个非常关键的问题。诸如UMTS、GSM/GPRS和cdma2000等移动网络,都制定了各自的分组域组织结构,以便为用户提供一种简单灵活基于IP的数据传输机制。3GPP和3GPP2在其多媒体规范中也集成了多种多媒体编码器,正在制定以WCDMA、TD-SCDMA和cdma2000为空中接口的3G技术规范。
按照图8.2所示,H.264视频编码层的数据被封装成RTP包后,在IP网络中进行传输。图8.3和图8.4分别给出了cdma2000系统和WCDMA系统中H.264的NAL单元封装过程。值得注意的是,为了减少由于数据重传而造成的延时,传输层采用了面向无连接的UDP。考虑到链路层以下的MAC层和物理层,具体系统大多不一样,这里将其简化。
图8.3 cdma2000系统中NAL单元3GPP用户平面协议栈封装过程
图8.4 UMTS系统中NAL单元3GPP用户平面协议栈封装过程
从图8.3可以看出,NAL单元首先被封装成RTP/UDP/IP包。根据头压缩协议(ROHC,RObust Header Compression),RTP/UDP/IP包头被压缩,再加上PPP头,成为一个无线链路协议层(RLC,Radio Link Control)业务数据单元(SDU,Service Data Unit)。RLC-PDU是数据传输的处理单位。如果RLC-SDU比RLC-PDU大,SDU就会被分成若干PDU,因此同一NAL单元有可能会被分割成在不同帧中。RLP帧加上RLP头形成物理层的逻辑传输单元(LTU, Logical Transmission Unit)。RLC有3种工作模式——透明、非确认和确认模式,为用户和数据提供分段和重传机制。其中,在透明和非确认模式下,RLC是单向的,对于出错协议数据单元PDU,采用丢弃或标记的方法;在确认模式下,RLC是双向的,使用自动重转机制来确保数据的正确传输。
图8.4与图8.3的不同之处在于,在3GPP的UMTS系统中,RTP/UDP/IP包头压缩采用PDCP。另外,3GPP系统中移动台采用分组数据协议(PDP,Packet Data Protocol),上下文通过网关支持节点GGSN来得到IP地址,所以UMTS系统中无需PPP封装。
8.3 H.264视频编码的容错技术
H.264/AVC作为最新的视频编码标准,采取了一系列的切合实际的技术措施,提高了网络适应性,增强了数据的抗误码的鲁棒性,从而保证视频传输后的压缩视频的QoS。
与以往的视频编码标准不同的是,H.264/AVC标准从系统层面定义了视频编码层(VCL)和网络提取层(NAL)。其中,视频编码层独立于网络,主要包括核心压缩引擎和块、宏块、片的语法句法定义。通过引入一系列新特性,不但使H.264的编码压缩效率提升了近1倍,而且多种错误恢复工具又增强了视频流的鲁棒性。网络提取层的主要功能是定义数据的封装格式,把VCL产生的比特字符串适配到各种各样的网络和多元环境中。H.264涉及片级别以上的语法定义,包括3方面的内容:独立片解码所要求的数据表示,类似以往视频压缩标准中的图像和头部顺序数据;防止竞争的编码;附加的增强信息以及编码片的比特字符串。下面分别就VCL和NAL对于视频传输的QoS进行分析。
H.264视频编解码标准中错误恢复技术的应用同其他视频编解码标准H.263、MPEG-2和MPEG-4一样,也是通过多种技术的联合应用来增强视频流在误码、丢包多发环境(如因特网和无线信道)中传输的鲁棒性。有些是专门为提高差错鲁棒性而采用的技术;有些主要是为提高编码效率而提出的技术,但同时也为增强差错控制性能做出了贡献。
在H.261、H.263、MPEG-1、MPEG-2、MPEG-4中,许多错误恢复工具已经得到了很好的应用,如图像分割的不同形式(片、块组)、I模式宏块,片和图像的内插、参考图像选择(带有和不带反馈,图像级别,GOB/SLICE或MB级别)、数据分割等。
H.264标准继承了以前视频编码标准中某些优秀的错误恢复工具,同时也改进和创新了多种错误恢复工具。这里主要介绍的H.264的错误恢复工具有:参数集、灵活的宏块排序FMO、冗余片RS、SP/SI帧。
8.3.1 H.264的视频编码层的错误恢复
1.参数集
参数集是H.264标准的一个新概念,是一种通过改进视频码流结构增强错误恢复能力的方法。H.264的参数集又分为序列参数集和图像参数集。其中,序列参数集包括一个图像序列的所有信息,即两个IDR图像间的所有图像信息。图像参数集包括一个图像的所有分片的全部相关信息,包括图像类型、序列号等,解码时某些序列号是否丢失可用来检验信息包的丢失与否。多个不同的序列和图像参数集存储在解码器中,编码器依据每个编码分片的头部的存储位置来选择适当的参数集,图像参数集本身也包括使用的序列参数集参考信息。
众所周知,一些关键信息比特的丢失(如序列和图像的头信息)会造成解码的严重负面效应,而H.264把这些关键信息分离出来,凭借参数集的设计,确保在易出错的环境中能正确地传输这些信息。这种码流结构的设计无疑增强了码流传输的错误恢复能力。
参数集具体实现的方法也是多样化的,例如:①通过带外传输,这种方式要求参数集通过可靠的协议,在首个片编码到达之前传输到解码器;②通过带内传输,这需要为参数集提供更高级别的保护,例如发送复制包来保证至少有一个到达目标;③在编码器和解码器中采用硬件处理参数集。
2.灵活宏块排序FMO
一幅图像由若干片组成,每片包含一系列的宏块(MB)。MB的排列可按光栅扫描顺序,也可不按光栅扫描顺序。每个片独立解码,不同片的宏块不能用于自身片中作预测参考。因此,片的设置不会造成误码扩散。如图8.5所示,片0、片1和片2中的宏块相互之间不能作为预测参考。
图8.5 不采用FMO的片划分
灵活宏块排序FMO是H.264的一大特色,适用于H.264的基本档次和扩展档次的应用。FMO通过宏块分配映射技术,把每个宏块分配到不按扫描顺序的片中,图像内部预测机制,例如帧内预测或运动矢量预测,仅允许用同一片组里的空间相邻的宏块。FMO模式划分图像的模式各种各样,重要的有棋盘模式、矩形模式等。当然,FMO模式也可以使一帧中的宏块顺序分割,使得分割后的片的尺寸小于无线网络的MTU尺寸。经过FMO模式分割后的图像数据分开进行传输。
以图8.6所示,所有的MB被分成了片组0和片组1,相应地分别采用黑色和白色表示。当白片丢失时,因为其周围的宏块都属于其他片的宏块,利用邻域相关性,黑片宏块的某种加权可用来代替白片相应宏块。这种错误隐藏机制可以明显提高抗误码性能。实验证明,在CIF图像的视频会议中,在丢包率达10%时,视频失真低到需要训练有素的眼睛才能识别。使用FMO的代价是稍微降低了编码效率(因为它打破了原先非邻居MB之间的预测),而且在高度优化的环境中,有比较高的延迟。
图8.6 FMO棋盘分片例图
3.冗余片RS
H.264中参考图像的选择与以前在H.263中的一样。在基于反馈的系统中,解码器接收到丢失或被破坏的图像信息时,就可运用基于参考图像选择的差错控制方法,选择参考图像序列中正确的参考宏块,来进行错误恢复;而对于无反馈的系统,就不可能运用该方法,因而提出了冗余分片技术。
冗余片技术,简单地讲就是,在同一个比特流中,编码器除了将片自身己编码的宏块放置其中外,同一宏块的1个或多个冗余的表示也同时被放置其中,通过利用宏块的1个或多个冗余表示来克服误码造成的不可用片对重构图像的影响。
这种技术与前面介绍的基于冗余的传输(如包复制)和分层编码有着本质的区别。在包复制冗余传输中,被复制的包和复制包一模一样;在分层编码中,基本层包含了解码图像所需的最基本的信息,而增强层是在基本层的基础上对图像的细节信息的补充,在解码器端,若只接收到增强层的信息而没有基本层的信息,是不能对图像进行正确解码的。而在冗余片技术的使用中,冗余片使用不同的编码参数来编码,从而形成对同一宏块的不同表示(每种表示都可以独立的用于解码,只是质量各不相同)。例如,主冗余片可以使用较小的QP来量化编码,因此具有较好的重构图像质量;次要的冗余片可以使用一个较大的QP来量化编码,这样质量粗糙一些但码率更低。在解码器中重构图像时,如果主冗余片可用,则仅使用主冗余片而丢弃其余的冗余片;只有当主冗余片在传输的过程中丢失或由于误码等原因而不可用时,其余的冗余片才用于重构图像。
这种对主次冗余片不同编码参数的运用,使得冗余片技术在花销最少比特数的情况下,最大限度地保证了重构图像的质量,尤其是在有误码倾向的移动信道或IP信道环境下,采用冗余片技术可显著提高重构图像的主客观质量。
4.SP/SI帧技术
随着H.264/AVC为了顺应视频流的带宽自适应性和抗误码性能的要求,又定义了两种新的帧类型:SP帧和SI帧。
SP帧编码的基本原理同P帧类似,仍是基于帧间预测的运动补偿预测编码,两者之间的差异在于SP帧能够参照不同参考帧重构出相同的图像帧。充分利用这一特性,SP帧可取代了I帧,广泛应用于流间切换、拼接、随机接入、快进快退以及错误恢复等应用中,同时大大降低了码率的开销。与SP帧相对应,SI帧则是基于帧内预测编码技术,其重构图像和对SP的重构图像完全相同。SP帧的编码效率尽管略低于P帧,但却远远高于I帧,大大改善了H.264的网络亲和性,支持灵活的流媒体服务应用,具有很强的抗误码性能,适应在噪声干扰大、丢包率高的无线信道中传输。
采用不同的参考帧预测,可以获得同一帧的多个SP帧,利用这种特性可以增强错误恢复的能力。例如,如图8.7所示,正在进行视频流传输的比特流中的一个帧P1,n-1无法正确解码,得到用户端反馈的错误报告后,服务器就可以发送其后最邻近主SP帧的一个辅SP帧——S12,n,以避免错误影响更多后续帧,S12,n帧的参考帧是已经正确解码的帧。当然,用户端也可以使用辅SI帧——SI1,n来实现相同的功能。
图8.7 SP帧进行错误恢复
8.3.2 H.264的网络提取层的错误恢复
NAL支持众多基于包的有线/无线通信网络,诸如H.320、MPEG-2和RTP/IP等。但目前,绝大部分的视频应用所采用的网络协议层次是RTP/UDP/IP,因此在下面的描述中主要基于这个传输框架。下面首先分析NAL层的基本处理单元NALU以及它的网络封装、分割和合并的方法。
1.NAL单元
每个NAL单元是一个一定语法元素的可变长字节字符串,包括包含一个字节的头信息(用来表示数据类型),以及若干整数字节的负荷数据。一个NAL单元可以携带一个编码片、A/B/C型数据分割、一个序列或图像参数集。
NAL单元的头信息结构如图8.8所示,NAL单元按RTP序列号按序传送。其中,T为负荷数据类型,占5个比特;R为重要性指示位,占2个比特;最后的F为禁止位,占1个比特。具体如下。
图8.8 NAL单元头结构示意图
(1)NALU类型位
可以表示NALU的32种中的不同类型特征,类型1~12是H.264的定义的,类型24~31是用于H.264以外的,RTP负荷规范使用这其中的一些值来定义包聚合和分裂,其他值为H.264保留。
(2)重要性指示位
用于在重构过程中标记一个NAL单元的重要性,值越大,越重要。值为0表示这个NAL单元没有用于预测,因此可被解码器抛弃而不会有错误扩散;值高于0表示此NAL单元要用于无漂移重构,且值越高,对此NAL单元丢失的影响越大。
(3)禁止位
编码中默认置为0,当网络识别此单元中存在比特错误时,可将其置为1,以便接收方丢掉该单元,主要用于适应不同种类的网络环境(比如有线无线相结合的环境)。例如对于从无线到有线的网关,一边是无线的非IP环境,一边是有线网络的无比特错误的环境。假设一个NAL单元到达无线那边时,校验和检测失败,网关可以选择从NAL流中去掉这个NALU单元,也可以把已知被破坏的NAL单元前传给接收端。在这种情况下,智能的解码器将尝试重构这个NAL单元(已知它可能包含比特错误)。而非智能的解码器将简单的抛弃这个NAL单元。
NAL单元结构规定了用于面向分组或用于流的传输子系统的通用格式。在H.320和MPEG-2系统中,NAL单元的流应该在NAL单元边界内,每个NAL单元前加一个3个字节的起始前缀码。在分组传输系统中,NAL单元由系统的传输规程确定帧界,因此不需要上述的起始前缀码。
一组NAL单元被称为一个接入单元,定界后加上附加增强信息(SEI),形成基本编码图像。该基本编码图像(PCP)由一组已编码的NAL单元组成,其后是冗余编码图像(RCP),它是PCP同一视频图像的冗余表示,用于解码中PCP丢失情况下恢复信息。如果该编码视频图像是编码视频序列的最后一幅图像,应出现序列NAL单元的“end”,表示该序列结束。一个图像序列只有一个序列参数组,并被独立解码。如果该编码图像是整个NAL单元流的最后一幅图像,则应出现流的“end”。一个接入单元的组成见图8.9。
图8.9 接入单元头结构
H.264采用上述严格的接入单元,不仅使H.264可自适应于多种网络,而且进一步提高了其抗误码的能力。序列号的设置可发现丢的是哪一个VCL单元。冗余编码图像使得即使基本编码图像丢失,仍可得到较“粗糙”的图像。
2.H.264中的RTP
上面阐述了NAL单元的结构和实现方法,这里要详细讨论RTP的载荷规范和抗误码性能。RTP可通过发送冗余信息来减少接收端的丢包率,但会增加时延,与冗余片不同的是,它增加的冗余信息是个别重点信息的备份,适合于的非平等保护机制。
相应的多媒体传输规范有:①分组复制多次重发,发送端对最重要的比特信息分组进行复制重发,使得保证接收端能至少正确接收到一次,同时接收端要丢弃已经正确接收的分组的多余备份;②基于分组的前向纠错,对被保护的分组进行异或运算,将运算结果作为冗余信息发送到接收方,由于时延,不用于对话型应用,可用于流媒体;③视频冗余编码,可保护包括视频在内的任何数据流,每个分组由头标、载荷以及前一分组的载荷组成,H.264中可与数据分割一起使用。
RTP的封装规范总结如下:①额外开销要少,使MTU尺寸在100~64k字节范围内;②易于区分分组的重要性,而不必对分组内的数据解码;③载荷规范应当保证不用解码就可识别由于其他的比特丢失而造成的分组不可解码;④支持将NALU分割成多个RTP分组;⑤支持将多个NALU汇集在一个RTP分组中。
H.264采用了简单打包的方案,即一个RTP分组里放入一个NALU,将NALU(包括同时作为载荷头标的NALU头)放入RTP的载荷中,设置RTP头标值。理想情况下,VCL不会产生超过MTU尺寸的NAL单元,来避免IP层的分拆。在接收端,通过RTP序列信息识别复制包并丢弃,取出有效RTP包里的NAL单元。基本档次和扩展档次允许片的无序解码,这样在抖动缓存中就不必对包重新排序。在使用主档次时(不允许片的乱序),要通过RTP序列信息来对包重新排序。
存在如下情况,例如当使用内容预编码时,编码器不了解底层网络的MTU大小,将产生许多大于MTU尺寸的NALU,这就需要涉及NALU分割和合并。
(1)NALU的分割
虽然IP层的分割可以使数据块小于64k字节,但无法在应用层实现保护,从而降低了非平等保护方案的效果。由于UDP数据包小于64k字节,而且一个片的长度对某些应用场合来说太小,所以应用层打包是RTP打包方案的一部分。大致具有以下特点:①NALU的分块以按RTP次序号升序传输;②能够标记第一个和最后一个NALU分块;③可以检测丢失的分块。
(2)NALU的合并
一些NALU如SEI、参数集等非常小,将它们合并在一起有利于减少头标开销。现有的两种集合分组:①单一时间集合分组STAP,按时间戳进行组合,一般用于低延迟环境;②多时间集合分组MTAP,不同时间戳也可以组合,一般用于高延迟环境,比如流应用。
8.4 移动无线信道中的精确码率控制算法
在2.5G、3G等低码率信道中的视频通信,由于信道资源不足,对码率控制的精度提出非常高的要求,需要将编码器的输出比特率波动,控制在很小的范围内。在传统码率控制算法中,为了使编码器的输出码率更加精确,经常会造成同一幅图像中在空间上的图像质量不均匀。尤其在无线/低带宽信道中,这种负面效果会被放大,图像中局部过量化的情况会非常明显,这会极大地损伤图像的主观效果。
这里提出一种适用于低码率及无线信道的宏块级自适应码率分配方法。此种方法以宏块为单位进行分析处理,将宏块的纹理及运动信息提取抽象为宏块能量,将码率分配与宏块能量密切相关。这样能够达到精确分配码率,同时控制编码质量,提升图像主观效果。本文提出的算法的优势在于既能提供码率控制的精确性,又能平滑图像在空间上的质量变化,提升图像主观质量。宏块级码率自适应码率控制算法尤其适用于低码率/窄带下的视频应用,与此同时,算法不依赖于特定编码体系,可广泛适用于H.264、MPEG-4或其他编码器。
8.4.1 宏块能量的提取
本文对图像宏块进行分析,将宏块纹理复杂和运动复杂分别提取,按照特定的方式计算得出宏块能量。
1.宏块纹理复杂度
宏块纹理复杂因子基于自然图像在空间上的相关和连续性。组成图像的各像素在空间与周围像素都有相关性,这个特性可以被利用来减除空间冗余度。如果图像空间冗余度高,图像编码复杂相对较低;图像空间冗余度低,图像编码复杂度相对较高。本文采用Sobel算子来计算宏块的纹理复杂因子,为了降低计算复杂度先对宏块中的像素进行亚采样。具体计算过程见图8.10。
图8.10 宏块纹理复杂因子的计算过程
为了降低计算复杂度,本文对输入的原始像素进行2∶1亚采样,采样后的像素个数是原始像素个数的1/2,对采样后的像素进行边界方向向量计算所耗费的时间大约是原来的1/2。本文中所采用的像素亚采样方法如图8.11所示。在亚采样后的图中,实心圆表示可用的采样像素,亚采样后的像素值是由两个相邻像素求平均得到,如亚采样后图中像素A等于原始像素1和原始像素2的平均。因为相邻像素在空间上的强相关性,亚采样后的数据保留了原图像的数据特征,对算法的性能影响很小,亚采样后计算复杂度将很大幅度地降低。
图8.11 宏块亚采样
本文在对宏块亚采样的基础上,对宏块空间冗余度进行分析,选取Sobel算子,提取宏块边界向量的水平和垂直方向分量,如公式(8.1)。其中,dxi,j和dyi,j分别代表边界向量的水平和垂直方向分量,Pi-1,j+1等是指像素Pi,j在原始图像中的相邻像素。
对于亚采样后的像素pi,j,相应的边界向量为。为了方便计算,定义边界方向向量的模是:
将宏块亚采样后的像素所对应的边界方向的向量模相加求和,得到TD,此变量在一定程度上可以表示当前宏块的空间相关性。如果当前宏块与周围宏块相关性比较大,对于编码而言宏块的纹理复杂度小;相反宏块纹理复杂度大。宏块纹理复杂因子求法见公式(8.3)。其中,Ct是宏块的纹理复杂因子,a是调整因子,取值根据经验选取。
2.宏块运动复杂度
宏块运动复杂度是指宏块所在的物体的运动的剧烈程度。求运动复杂因子的算法如下:
①针对当前宏块作运动搜索,这里参考图像选择前一帧图像,运动搜索方法选择菱形运动搜索算法;
②计算宏块预测数据和原始数据的差异,用SATD来计算;
③根据SATD来计算出运动复杂因子Cm:
式中,b是调整系数。SATD(Sum of Absolute Transform Difference,变换后绝对差和),表示在频域中的残差分布。SATD的计算方法见公式(8.5)。
其中,DiffT=H⊗Diff⊗H,
3.宏块能量
宏块能量由宏块的纹理复杂度和宏块运动复杂度两个部分组成,如式(8.6)所示。其中,Ct是宏块的纹理复杂因子,Cm是宏块的运动复杂因子。
8.4.2 与宏块能量相结合,在宏块级别分配码率
本文将各个宏块比特分配与宏块能量相结合,这种模型可以将码率控制算法与图像的自然特性有机地结合起来,在不增加网络带宽的前提下重建的图像更贴近人的主观效果。基于宏块的比特率分配方法由公式(8.7)表示。其中,b(n,t)表示第n帧图像中第i个宏块分配的目标比特数,i是当前宏块在图像中的索引号,N是图像中宏块的个数,Bn是第n帧图像分配的目标比特数,Ei是第i个宏块能量。
8.4.3 计算编码量化参数Qp
在已经分配好宏块比特率的情况下,使用RD模型以宏块为单位求解编码的量化参数Qp,通过求解式(8.8)的根可以得到Qp。其中,B是当前帧分配的目标比特数;SAD是当前帧的均方差,可以由前一帧图像估计出来;Qp是第i个宏块的量化参数。c1、c2是调整参数。
8.5 移动互联网中多媒体业务平台的设计
移动互联网的核心业务主要围绕多媒体展开,建设适用于移动业务的多媒体系统,是移动互联网业务开展的必要技术条件。下面以中国移动“万花筒”业务的平台设计为例,介绍3G移动互联网业务中的多媒体平台设计方案。
8.5.1 移动互联网的多媒体业务核心平台
“万花筒”是中国移动在广东推出的移动多媒体新业务平台产品,是一套完整的从客户端到运营后台的整体运营平台。“万花筒”平台是集浏览、搜索、直播、点播、下载、上传、订阅、互动功能于一体的综合性的业务平台,同时提供了业务运营需要的各种管理、计费、接入等功能。用户通过平台能实现同时在普通PC、手机终端、专业移动终端上观看电视、短片,查阅新闻资讯、天气、证券,收听音乐等丰富内容的多媒体应用。CP/AP/SP等合作伙伴通过该平台能进行各种内容/应用服务的开发,并实现业务收入。
其中,多媒体应用包括:手机电视、手机音乐、手机电子报、电子杂志、视频点播、移动视频交友聊天、证券股评、移动远教、移动视频会议、城市应急指挥、公交监控、企业视频监控、家庭视频监控等。
万花筒平台由编转码系统、流媒体传输系统、内容管理平台、手机客户端和网络管理平台组成,具体如图8.12所示。
图8.12 万花筒平台的组成
1.编转码系统
编转码系统决定整个多媒体平台的视音频效果。由于移动信道的特殊性质,压缩编码器必须作出特殊优化,将音视频源转换成适合在移动环境下传输的高画质、低码率的音视频文件和直播信号。
2.流媒体传输系统
移动信道由于具备“易错”的特性,对音视频流的传输与分发提出特殊要求。需要开发适应移动网抖动大、连接不稳定、基站切换等问题的流传输系统,同时提供支持百万级用户访问的能力。
3.业务管理系统
业务管理系统可以针对音视频节目的上传、审核、发布,并对文字、图片等多媒体资料进行编辑发布。EPG节目单可以在WAP站点进行发布,手机用户可以轻松访问。
4.手机客户端
用户可以通过包含Windows Mobile、Symbian、Linux的智能手机,访问精彩流畅的音视频内容。
5.网络管理平台
为更好地支持系统运营,还需要网络管理平台,以实现对全网设备的维护、监控和管理,并通过资源平衡服务器,实现对用户访问的智能高度和分流。
8.5.2 编转码系统
编转码系统构成如图8.13所示。
图8.13 编转码系统示意图
移动信道低码率的情况下,信源编码有如下的独特难点,需要特殊优化:
(1)由于时间、空间上的采样率变小,相对应的冗余度相对变小;
(2)更高的量化噪声,需要优化、调节R-D模型,使之适应;
(3)由过压缩引起的块效应更为突出;
(4)振铃效应;
(5)只允许更小的码率波动,需要更精确的码率控制算法;
(6)必须在码率和失真之间作更精细的权衡,将有限的比特集中到容易引起人眼敏感的区域;
(7)丢包引起的解码错误。
8.5.3 设计流分发服务器
本节设计一个按照3GPP标准协议框架设计的流分发系统。下文的3GSS是本文在3GPP框架下设计的流分发服务器。
1.服务方式
3GSS流媒体服务器的服务方式有两种。
(1)直播
直播是在一段完整的时间里同步展现事件的发生过程。直播不同于其他方式,他的特点是可以实现信息和真实状况的同步,表现的是叙事时间(播出时长)与行为时间(事件过程)的一致性。直播是同步展示事件的现实状态,让事实的可信度提高。从时效上来看,任何一种报道形式都不会超越“此时此刻”了,所以直播是信息“保鲜”的最好手段。在直播过程中,用户不能对流进行后退、快进、快退或暂停等操作。
(2)点播
对本地提供的节目进行点播。内容提供商将预先录制好的多媒体内容编码压缩成相应的格式,存放在本地服务器上并把内容的描述信息以及链接放置在流媒体的门户网站上。最终用户就可以通过访问门户网站,发现感兴趣的内容,有选择地进行播放。用户可任意对本地节目进行点播。在点播连接中,用户可以对流进行后退、快进、快退或暂停等操作。
2.总体架构
(1)系统布局
3GSS流媒体服务器为核心后台服务器,它的系统布局如图8.14所示。
图8.14 3GSS 系统布局
由图8.14所示,3GSS流媒体服务器主要用于接收一路或多路音视频编码流,同时提供给播放器用户观看节目内容。其主要功能是对媒体内容进行缓存、调度和传输,流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。由此可见,流媒体服务器是流媒体应用系统的基础,也是最主要的组成部分。
(2)系统构架
图8.15描述了3GSS的系统架构,从媒体源的角度看,我们可以发现3GSS提供的两大核心功能就是对实时编码流的传输和对非实时节目的发送,即我们熟悉的直播和点播功能。
图8.15 3GSS系统架构
8.5.4 客户端
客户端在整个系统中的位置如图8.16所示。可以看出,万花筒客户端使用流程大致如下:
图8.16 客户端的操作流程
(1)运行主程序,显示欢迎界面;
(2)判断是否要升级;
(3)分级下载EPG菜单;
(4)显示菜单;
(5)点播、直播等服务;
(6)如果点击须付费节目,则让用户注册或输入密码,并发wappush订阅扣费。
万花筒客户端程序逻辑结构如图8.17所示。其中,调度控制层控制功能模块,负责处理模块间的共存或互斥关系,负责模块间的通信,并对功能模块进行封装,抽象出对界面层的接口。界面显示层负责获取节目信息,并展现在手机上,根据业务逻辑对界面跳转进行控制。
图8.17 客户端程序逻辑结构图
8.5.5 系统小结
本节以中国移动已经在开展的3G流媒体业务“万花筒”为例,介绍了无线移动多媒体业务平台涉及的主要组成部分。按照本节内容设计的平台,是可以灵活地集成浏览、搜索、直播、点播、下载、上传、订阅、互动功能于一体的综合性的业务平台,同时提供了业务运营需要的各种管理、计费、接入等功能。用户通过平台能实现同时在普通PC、手机终端、专业移动终端上观看电视、短片,查阅新闻资讯、天气、证券,收听音乐等丰富内容的多媒体应用。CP/AP/SP等合作伙伴通过我们的平台能进行各种内容/应用服务的开发,并实现业务收入。
参考文献
[1]游敏惠,王兵.3GPP和3GPP2系统的比较融合[J]. 数据通信,2003(3):37-39.
[2]马国强,毕厚杰.移动无线信道中的精确码率控制算法.中国通信,2009(1):21-23.
[3]S. Wenger, M. Hannuksela, T. Stockhammer. Identified H.26L Applications. ITU-T SG 16.Doc. VCEG-L34, Germany, Jan. 2001.
[4]3GPP Technical Specification 3GPP TR 26.235: Packet Switched Conversational Multimedia Applications; Default Co-decs.
[5]3GPP Technical Specification 3GPP TR 26.937: Transparent end-to-end packet switched streaming service(PSS); RTP usage model.
[6]3GPP Technical Specification 3GPP TR 26.140: Multimedia Messaging Service(MMS); Media formats and codecs.
[7]Hannu.H.Jonsson, L-E.Hakenberg, et al. RObust Header Compression(ROHC): Framework and four profiles: RTP.UDP.ESP.and uncompressed.RFC 3095, 2001(7).
[8]3GPP-TS25.323, Packet Data Convergence Protocol(PDCP)specification. 3GPP Technical Specification TS 25.323, V5.4.0, 2005(6).
[9]蒋纯波,黄浩东,徐大雄.UMTS中的地址分配方案的研究.数据通信,2002(3):29-32.
[10]S. Wenger, M. Horowitz.flexible macroblock ordering. JVT-C089, May 2002.
[11]S. Wenger, M. Horowitz.a new error resilience tool for H.26L. JVT-B027, February 2002.
[12]J. Ostermann, J. Bormans, P. List, et al.Video coding with H.264/AVC: tools, performance and complexity IEEE Cir. Syst. for Video Technol. Mag., 2004(1):7-28.
[13]Yanling Xu,Yuanhua Zhou.H.264 Video Communication Based Refined Error Concealment Schemes IEEE Trans. on Consumer Electronics, 2004(11):1135-1141.
[14]G. Roth, R. Sjöberg, G. Liebl, T. Stockhammer, V. Varsa, M. Karczewicz.Common test conditions for RTP/IP over 3GPP/3GPP2. ITU-T SG16 Doc, VCEG-N80, Santa Barbara, CA, USA, Sept. 2001.
[15]Viktor Varsa, Miska M. Hannuksela, Ye-Kui Wang. Non-normative error concealment algorithms. ITU-T SG16 Doc, VCEG—N62,Santa Barbara, CA, USA, Sep. 2001.
[16]S. Wenger.Coding performance when not using in-picture prediction. JVT-B024, Feb. 2002.
[17]M. Karczewicz, R. Kurceren.The SP- and SI-frames design for H.264/AVC IEEE Trans. Circ. Syst. Video Technol,2003(13):637-644.
[18]T. Wiegand, N. Farber, K. Stuhlmuler, B. Girod.Error-resilient video transmission using long term memory motion-compensated prediction IEEE J. Sel. Area Commun,2000(18):1050-1050.
[19]J. Zheng, L.P. Chau.A motion vector recovery algorithm of H.264 for digital video using Lagrange interpolation IEEE Trans. Broadcast,2003(4):383-389.
[20]ITU-T Recommendation H.320, Narrow-band visual telephone systems and terminal equipment. International Telecommunications Union, Geneva, Switzerland, 1997.
[21]C.M. Calafate,M. P. Malumbres.Testing the H.264 error resilience on wireless adhoc networks.4th EURASIP Conference focused on Video/Image Processing and Multimedia Communications.Zagreb, Croatia, 2003(7):2-4.
[22]S. Wenger, T. Stockhammer.An overview on the H.26L NAL concept. JVT—B028, Feb 2002.
[23]S. Wenger.Coding performance when not using in-picture prediction. JVT-B024, Feb 2002.
[24]S. Wenger, M. Horowitz.A new error resilience tool for H.26L. JVT-B027, Feb 2002.
[25]J. Zheng,L.P. Chau.A motion vector recovery algorithm of H.264 for digital video using Lagrange interpolation IEEE Trans. Broadcast., 2003(4): 383-389.
[26]J. H. Zheng L. P. Chau.A temporal error concealment algorithm for H.264 using Lagrange interpolation IEEE International Symposium on Circuits and Systems, 2004(5):133-136.
[27]3GPP Technical Specification 3GPP TR 26.140: Multimedia Messaging Service(MMS),Media formats and codecs.