系列文章:

1、音视频之视频压缩技术及数字视频综述

2、音视频之视频压缩编码的基本原理

3、音视频之H.264/AVC编码器原理

4、音视频之H.264的句法和语义

5、音视频之H.264/AVC解码器的原理和实现

6、音视频之H.264视频编码传输及其在移动通信中的应用

7、音视频之H.264的可伸缩编码SVC


        H.264采用分层模式,定义了视频编码层(VCL)和网络提取层(NAL),后者专为网络传输设计,能适应于不同网络中的视频传输,进一步提高网络“亲和性”。H.264引入了面向IP包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。H.264具有较强的抗误码特性,特别适应丢包率高、干扰严重的无线视频传输的要求。

一、H.264/AVC在无线通信中的传输:

        1、H.264/AVC在无线通信中的应用:

        根据传输速率、端到端时延以及时延抖动等QoS要求,H.264定义了3类视频传输服务。

        应用于视频电话和视频会议的包交换会话服务PCS:

        编码、传输和解码实时双向同时进行,最小化会话服务中的端到端时延,保持视频和音频的同步。编解码器的参数能实时调整,错误恢复机制要根据实际网络的变化而改变。在这种应用中,编码、传输和解码实时地双向同时进行。

        应用于直播和视频录像的包交换流媒体服务PSS:

        传输和解码同时进行,与实时编码相比对时延要求降低,编码器可以进行优化实现高效编码。对于流媒体服务,用户请求已经编码好并存放在服务器的队列。鉴于流媒体服务使用不可靠的传输协议,编码时要进行差错控制并进行信道纠错编码。

        多媒体信息服务MMS:

        编码,传输和解码三者完全分离。记录的视频信号进行离线编码和本地存储,可在任何时间进行发送,接受端在完全下载下来后才进行解码。由于这种应用的非实时性,编码器可以通过优化进行高效编码,使用可靠的传输协议如FTP和HTTP,对时延和错误恢复机制没有要求。

        不同的视频应用具有不同的QoS等级和工作方式,如图8.1所示。

        

        2、H.264分层传输结构:

        多媒体视频在不同环境下的传输,不仅需要高效率的编码,同时还需要编码后的视频能容易地无缝集成到当前和未来的网络协议架构当中。鉴于H.263和MPEG-4标准制订过程中面临的网络应用的相关问题,H.264在系统层面提出了一个全新的概念,定义了视频编码层VCL和网络提取层NAL,如图8.2所示。

        VCL包括VCL编码器与VCL解码器,主要功能是采用运动补偿、 变换编码、熵编码以及去方块滤波等多种技术,进行视频压缩数据的高效组织和表示。与以往的编码标准不同的是,它引入了一系列新特性,使得H.264的编码压缩效率得到了极大提升。H.264只明确地规定了解码过程,给视频捕捉、预处理、编码等阶段的具体实现方法留有了充分的余地。VCL也可根据当前的网络情况调整编码参数(如帧率 等)来适应网络的变化

        NAL由NAL编码器和NAL解码器组成,主要功能是定义数据封装的格式,为VCL提供与网络无关的统一接口数据承载在网络提取层单元(NALU)中,NALU采用统一的数据格式,包含单个字节的包头信息和多个字节的数据。包头信息包含存储标志和类型标志。存储标志用于指示当前数据不属于被参考的帧,从而便于服务器根据网络的拥塞情况进行丢弃;类型标志用于指示图像数据的类型。NAL支持众多基于包的有线/无线通信网络,诸如H.320、MPEG-2和RTP/IP等。

        为了实现NAL适应不同类型的传输系统,传输层中需按照不同的传输协议,进一步封装NAL单元。

        3、H.264分组交换业务传输协议栈:

        就移动通信中的视频传输而言,除了高效的视频压缩,视频数据传输如何适应无线信道和移动通信的特点,同样也是一个非常关键的问题。

        按照图8.2所示,H.264视频编码层的数据被封装成RTP包后,在IP网络中进行传输。图8.3和图8.4分别给出了cdma2000系统和WCDMA系统中H.264的NAL单元封装过程。值得注意的是,为了减少由于数据重传而造成的延时,传输层采用了面向无连接的UDP。考虑到链路层以下的MAC层和物理层,具体系统大多不一样,这里将其简化。

        从图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封装。

二、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帧

        1、H.264的视频编码层的错误恢复:

        参数集:

        参数集是H.264标准的一个新概念,是一种通过改进视频码流结构增强错误恢复能力的方法。H.264的参数集又分为序列参数集和图像参 数集。其中,序列参数集包括一个图像序列的所有信息,即两个IDR图像间的所有图像信息图像参数集包括一个图像的所有分片的全部相关信息,包括图像类型、序列号等,解码时某些序列号是否丢失可用来检验信息包的丢失与否。多个不同的序列和图像参数集存储在解码器中,编码器依据每个编码分片的头部的存储位置来选择适当的参数 集,图像参数集本身也包括使用的序列参数集参考信息。

        众所周知,一些关键信息比特的丢失(如序列和图像的头信息) 会造成解码的严重负面效应,而H.264把这些关键信息分离出来,凭借参数集的设计,确保在易出错的环境中能正确地传输这些信息。这种码流结构的设计无疑增强了码流传输的错误恢复能力

        灵活宏块排序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之间的预测),而且在高度优化的环境中,有比较高的延迟。

        

        冗余片RS:

        H.264中参考图像的选择与以前在H.263中的一样。在基于反馈的系统中,解码器接收到丢失或被破坏的图像信息时,就可运用基于参考图像选择的差错控制方法,选择参考图像序列中正确的参考宏块, 来进行错误恢复;而对于无反馈的系统,就不可能运用该方法,因而提出了冗余分片技术

        冗余片技术,简单地讲就是,在同一个比特流中,编码器除了将片自身己编码的宏块放置其中外,同一宏块的1个或多个冗余的表示也同时被放置其中,通过利用宏块的1个或多个冗余表示来克服误码造成的不可用片对重构图像的影响

        这种技术与前面介绍的基于冗余的传输(如包复制)和分层编码有着本质的区别。在包复制冗余传输中,被复制的包和复制包一模一 样;在分层编码中,基本层包含了解码图像所需的最基本的信息,而增强层是在基本层的基础上对图像的细节信息的补充,在解码器端, 若只接收到增强层的信息而没有基本层的信息,是不能对图像进行正确解码的。而在冗余片技术的使用中,冗余片使用不同的编码参数来编码,从而形成对同一宏块的不同表示(每种表示都可以独立的用于解码,只是质量各不相同)。例如,主冗余片可以使用较小的QP来量化编码,因此具有较好的重构图像质量;次要的冗余片可以使用一个较大的QP来量化编码,这样质量粗糙一些但码率更低。在解码器中重构图像时,如果主冗余片可用,则仅使用主冗余片而丢弃其余的冗余片;只有当主冗余片在传输的过程中丢失或由于误码等原因而不可用时,其余的冗余片才用于重构图像。

        这种对主次冗余片不同编码参数的运用,使得冗余片技术在花销最少比特数的情况下,最大限度地保证了重构图像的质量,尤其是在有误码倾向的移动信道或IP信道环境下,采用冗余片技术可显著提高重构图像的主客观质量。

        SP/SI帧技术:

        随着H.264/AVC为了顺应视频流的带宽自适应性和抗误码性能的要求,又定义了两种新的帧类型:SP帧和SI帧。

        SP帧编码的基本原理同P帧类似,仍是基于帧间预测的运动补偿预测编码,两者之间的差异在于SP帧能够参照不同参考帧重构出相同的图像帧。充分利用这一特性,SP帧可取代了I帧,广泛应用于流间切换、拼接、随机接入、快进快退以及错误恢复等应用中,同时大大降低了码率的开销。与SP帧相对应,SI帧则是基于帧内预测编码技术, 其重构图像和对SP的重构图像完全相同。SP帧的编码效率尽管略低于P帧,但却远远高于I帧,大大改善了H.264的网络亲和性,支持灵活的流媒体服务应用,具有很强的抗误码性能,适应在噪声干扰大、丢包率高的无线信道中传输。

        采用不同的参考帧预测,可以获得同一帧的多个SP帧,利用这种特性可以增强错误恢复的能力。例如,如图8.7所示,正在进行视频流传输的比特流中的一个帧P_{1,n-1}无法正确解码,得到用户端反馈的错误报告后,服务器就可以发送其后最邻近主SP帧的一个辅SP帧——S_{12,n},以避免错误影响更多后续帧,S_{12,n}帧的参考帧是已经正确解码的帧。当然,用户端也可以使用辅SI帧——SI_{1,n}来实现相同的功能。

        

        2、H.264的网络提取层的错误恢复:

        NAL支持众多基于包的有线/无线通信网络,诸如H.320、MPEG-2 和RTP/IP等。但目前,绝大部分的视频应用所采用的网络协议层次是 RTP/UDP/IP,因此在下面的描述中主要基于这个传输框架。下面首先分析NAL层的基本处理单元NALU以及它的网络封装、分割和合并的方法

        NAL单元:

        每个NAL单元是一个一定语法元素的可变长字节字符串,包括包含一个字节的头信息(用来表示数据类型),以及若干整数字节的负荷数据。一个NAL单元可以携带一个编码片、A/B/C型数据分割、一个序列或图像参数集

        NAL单元的头信息结构如图8.8所示,NAL单元按RTP序列号按序传送。其中,T为负荷数据类型,占5个比特;R为重要性指示位,占2个比特;最后的F为禁止位,占1个比特。具体如下。

        NALU类型位:

        可以表示NALU的32种中的不同类型特征,类型1~12是H.264的定义的,类型24~31是用于H.264以外的,RTP负荷规范使用这其中的一 些值来定义包聚合和分裂,其他值为H.264保留。

        重要性指示位:

        用于在重构过程中标记一个NAL单元的重要性,值越大,越重要。值为0表示这个NAL单元没有用于预测,因此可被解码器抛弃而不会有错误扩散;值高于0表示此NAL单元要用于无漂移重构,且值越高,对此NAL单元丢失的影响越大。

        禁止位:

        编码中默认置为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

        H.264采用上述严格的接入单元,不仅使H.264可自适应于多种网络,而且进一步提高了其抗误码的能力。序列号的设置可发现丢的是哪一个VCL单元。冗余编码图像使得即使基本编码图像丢失,仍可得到较“粗糙”的图像。

        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,不同时间戳也可以组合,一般用于高延迟环境,比如流应用。

三、移动无线信道中的精确码率控制算法:

        在2.5G、3G等低码率信道中的视频通信,由于信道资源不足,对码率控制的精度提出非常高的要求,需要将编码器的输出比特率波动,控制在很小的范围内。在传统码率控制算法中,为了使编码器的输出码率更加精确,经常会造成同一幅图像中在空间上的图像质量不均匀。尤其在无线/低带宽信道中,这种负面效果会被放大,图像中局部过量化的情况会非常明显,这会极大地损伤图像的主观效果。

        这里提出一种适用于低码率及无线信道的宏块级自适应码率分配方法此种方法以宏块为单位进行分析处理,将宏块的纹理及运动信息提取抽象为宏块能量,将码率分配与宏块能量密切相关。这样能达到精确分配码率,同时控制编码质量,提升图像主观效果。本文提出的算法的优势在于既能提供码率控制的精确性,又能平滑图像在空间上的质量变化,提升图像主观质量。宏块级码率自适应码率控制算法尤其适用于低码率/窄带下的视频应用,与此同时,算法不依赖于特定编码体系,可广泛适用于H.264、MPEG-4或其他编码器。

        1、宏块能量的提取:

        本文对图像宏块进行分析,将宏块纹理复杂和运动复杂分别提取,按照特定的方式计算得出宏块能量。

        宏块纹理复杂度:

        宏块纹理复杂因子基于自然图像在空间上的相关和连续性。组成图像的各像素在空间与周围像素都有相关性,这个特性可以被利用来减除空间冗余度。如果图像空间冗余度高,图像编码复杂相对较低; 图像空间冗余度低,图像编码复杂度相对较高。本文采用Sobel算子来 计算宏块的纹理复杂因子,为了降低计算复杂度先对宏块中的像素进行亚采样。具体计算过程见图8.10。

        为了降低计算复杂度,本文对输入的原始像素进行2∶1亚采样,采样后的像素个数是原始像素个数的1/2,对采样后的像素进行边界方向向量计算所耗费的时间大约是原来的1/2。本文中所采用的像素亚采样方法如图8.11所示。在亚采样后的图中,实心圆表示可用的采样像素, 亚采样后的像素值是由两个相邻像素求平均得到,如亚采样后图中像素A等于原始像素1和原始像素2的平均。因为相邻像素在空间上的强相关性,亚采样后的数据保留了原图像的数据特征,对算法的性能影响很小,亚采样后计算复杂度将很大幅度地降低。

        本文在对宏块亚采样的基础上,对宏块空间冗余度进行分析,选取Sobel算子,提取宏块边界向量的水平和垂直方向分量,如公式(8.1)。其中,dx_{i,j}dy_{i,j}分别代表边界向量的水平和垂直方向分量,P_{i-1,j+1}等是指像素P_{i,j}在原始图像中的相邻像素。

        对于亚采样后的像素P_{i,j}D\vec{_{i,j}} = {dx_{i,j},dy_{i,j}},相应的边界向量为 。为了方便计算,定义边界方向向量的模是:

        将宏块亚采样后的像素所对应的边界方向的向量模相加求和,得到T_{D},此变量在一定程度上可以表示当前宏块的空间相关性。如果当前宏块与周围宏块相关性比较大,对于编码而言宏块的纹理复杂度小;相反宏块纹理复杂度大。宏块纹理复杂因子求法见公式(8.3)。 其中,C_{t}是宏块的纹理复杂因子,a是调整因子,取值根据经验选取。

        

        宏块运动复杂度:

        宏块运动复杂度是指宏块所在的物体的运动的剧烈程度。求运动复杂因子的算法如下:

  • ①针对当前宏块作运动搜索,这里参考图像选择前一帧图像,运动搜索方法选择菱形运动搜索算法;
  • ②计算宏块预测数据和原始数据的差异,用SATD来计算;
  • ③根据SATD来计算出运动复杂因子C_{m}:

        式中,b是调整系数。SATD(Sum of Absolute Transform Difference,变换后绝对差和),表示在频域中的残差分布。SATD的计算方法见公式(8.5)。

        其中,DiffT=H⊗Diff⊗H,

        

        宏块能量:

        宏块能量由宏块的纹理复杂度和宏块运动复杂度两个部分组成, 如式(8.6)所示。其中,C_{t}是宏块的纹理复杂因子,C_{m}是宏块的运动复杂因子。

        2、与宏块能量相结合,在宏块级别分配码率:

        本文将各个宏块比特分配与宏块能量相结合,这种模型可以将码率控制算法与图像的自然特性有机地结合起来,在不增加网络带宽的前提下重建的图像更贴近人的主观效果。基于宏块的比特率分配方法由公式(8.7)表示。其中,b_{(n,t)}表示第n帧图像中第i个宏块分配的目标比特数,i是当前宏块在图像中的索引号,N是图像中宏块的个数,B_{n} 是第n帧图像分配的目标比特数,E_{i}是第i个宏块能量。

        

        3、计算编码量化参数Qp:

        在已经分配好宏块比特率的情况下,使用RD模型以宏块为单位求解编码的量化参数Qp,通过求解式(8.8)的根可以得到Qp。其中,B是当前帧分配的目标比特数;SAD是当前帧的均方差,可以由前一帧图像估计出来;Qp是第i个宏块的量化参数。c_{1}c_{2}是调整参数。

四、移动互联网中多媒体业务平台的设计:

        移动互联网的核心业务主要围绕多媒体展开,建设适用于移动业务的多媒体系统,是移动互联网业务开展的必要技术条件。下面以中国移动“万花筒”业务的平台设计为例,介绍3G移动互联网业务中的多媒体平台设计方案。

        1、移动互联网的多媒体业务核心平台:

        “万花筒”是中国移动在广东推出的移动多媒体新业务平台产品, 是一套完整的从客户端到运营后台的整体运营平台。“万花筒”平台是集浏览、搜索、直播、点播、下载、上传、订阅、互动功能于一体的综合性的业务平台,同时提供了业务运营需要的各种管理、计费、接入等功能。用户通过平台能实现同时在普通PC、手机终端、专业移动 终端上观看电视、短片,查阅新闻资讯、天气、证券,收听音乐等丰富内容的多媒体应用。CP/AP/SP等合作伙伴通过该平台能进行各种内 容/应用服务的开发,并实现业务收入。

        其中,多媒体应用包括:手机电视、手机音乐、手机电子报、电子杂志、视频点播、移动视频交友聊天、证券股评、移动远教、移动视频会议、城市应急指挥、公交监控、企业视频监控、家庭视频监控等。

        万花筒平台由编转码系统、流媒体传输系统、内容管理平台、手机客户端和网络管理平台组成,具体如图8.12所示。

        编转码系统:

        编转码系统决定整个多媒体平台的视音频效果。由于移动信道的特殊性质,压缩编码器必须作出特殊优化,将音视频源转换成适合在移动环境下传输的高画质、低码率的音视频文件和直播信号。

        流媒体传输系统:

        移动信道由于具备“易错”的特性,对音视频流的传输与分发提出特殊要求。需要开发适应移动网抖动大、连接不稳定、基站切换等问题的流传输系统,同时提供支持百万级用户访问的能力。

        业务管理系统:

        业务管理系统可以针对音视频节目的上传、审核、发布,并对文字、图片等多媒体资料进行编辑发布。EPG节目单可以在WAP站点进行发布,手机用户可以轻松访问。

        手机客户端:

        用户可以通过包含Windows Mobile、Symbian、Linux的智能手机, 访问精彩流畅的音视频内容。

        网络管理平台:

        为更好地支持系统运营,还需要网络管理平台,以实现对全网设备的维护、监控和管理,并通过资源平衡服务器,实现对用户访问的智能高度和分流。

        2、编转码系统:

        编转码系统构成如图8.13所示。

        移动信道低码率的情况下,信源编码有如下的独特难点,需要特殊优化:

  • (1)由于时间、空间上的采样率变小,相对应的冗余度相对变小;
  • (2)更高的量化噪声,需要优化、调节R-D模型,使之适应;
  • (3)由过压缩引起的块效应更为突出;
  • (4)振铃效应;
  • (5)只允许更小的码率波动,需要更精确的码率控制算法;
  • (6)必须在码率和失真之间作更精细的权衡,将有限的比特集中到容易引起人眼敏感的区域;
  • (7)丢包引起的解码错误。

        3、设计流分发服务器:

        本节设计一个按照3GPP标准协议框架设计的流分发系统。下文的3GSS是本文在3GPP框架下设计的流分发服务器。

        服务方式:

        3GSS流媒体服务器的服务方式有两种。

        (1)直播:

        直播是在一段完整的时间里同步展现事件的发生过程。直播不同于其他方式,他的特点是可以实现信息和真实状况的同步,表现的是叙事时间(播出时长)与行为时间(事件过程)的一致性。直播是同步展示事件的现实状态,让事实的可信度提高。从时效上来看,任何一种报道形式都不会超越“此时此刻”了,所以直播是信息“保鲜”的最好手段。在直播过程中,用户不能对流进行后退、快进、快退或暂停等操作。

        (2)点播:

        对本地提供的节目进行点播。内容提供商将预先录制好的多媒体内容编码压缩成相应的格式,存放在本地服务器上并把内容的描述信息以及链接放置在流媒体的门户网站上。最终用户就可以通过访问门户网站,发现感兴趣的内容,有选择地进行播放。用户可任意对本地节目进行点播。在点播连接中,用户可以对流进行后退、快进、快退 或暂停等操作。

        总体架构:

        (1)系统布局:

        3GSS流媒体服务器为核心后台服务器,它的系统布局如图8.14所示。

        由图8.14所示,3GSS流媒体服务器主要用于接收一路或多路音视频编码流,同时提供给播放器用户观看节目内容。其主要功能是对媒体内容进行缓存、调度和传输,流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。由此可见,流媒体服务器是流媒体应用系统的基础,也是最主要的组成部分。

        (2)系统构架:

        图8.15描述了3GSS的系统架构,从媒体源的角度看,我们可以发现3GSS提供的两大核心功能就是对实时编码流的传输和对非实时节目的发送,即我们熟悉的直播和点播功能。

        4、客户端:

        客户端在整个系统中的位置如图8.16所示。可以看出,万花筒客户端使用流程大致如下:

  • (1)运行主程序,显示欢迎界面;
  • (2)判断是否要升级;
  • (3)分级下载EPG菜单;
  • (4)显示菜单;
  • (5)点播、直播等服务;
  • (6)如果点击须付费节目,则让用户注册或输入密码,并发 wappush订阅扣费。

        万花筒客户端程序逻辑结构如图8.17所示。其中,调度控制层控制功能模块,负责处理模块间的共存或互斥关系,负责模块间的通信, 并对功能模块进行封装,抽象出对界面层的接口。界面显示层负责获取节目信息,并展现在手机上,根据业务逻辑对界面跳转进行控制。

 参考资料:

                《新一代视频压缩编码标准 —H.264/AVC》——毕厚杰 王健 编著

                https://github.com/wangyongyao1989/WyFFmpeg/tree/main/h264

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87605.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87605.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/87605.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#语言入门-task2 :C# 语言的基本语法结构

下面从四个方面对C#的基本语法进行简单介绍: 1. 数据类型 C#的类型可分为值类型和引用类型。值类型变量直接存储数据,引用类型变量则存储对象的引用。 值类型:涵盖整数类型(像int、long)、浮点类型(例如…

c#笔记之类的常量、字段和属性

学习内容: 一、字段 字段是为了对象或者类型存储数据的,可以表达一个对象或者类型的状态;也叫做成员变量;注意字段是在类里面声明的;在方法里声明的是局部变量; 1.1实例字段 用来表示每个实例的状态;比如一个students类;要了解一个学生一般看名字和成绩;所以名字和…

Linux 常用命令(入门)

Linux 常用命令 一、Linux 命令基础 (一)命令格式 Linux 命令的一般格式为:command [-options] [parameter1] … 。其中,command 是命令名,通常是相应功能的英文单词或其缩写;[-options] 是选项,用于对命令进行控制,可省略;parameter1 … 是传给命令的参数,可以是…

CppCon 2016 学习:Parallelism in Modern C++

这段介绍的是 HPX (High Performance ParalleX),一个现代C的通用并行运行时系统,重点包括: 通用性:适用于各种规模的应用,从小型到超大规模分布式系统。统一标准API:符合C标准,方便编写异步、并…

机器学习监督学习实战七:文本卷积神经网络TextCNN对中文短文本分类(15类)

本文介绍了一个基于TextCNN模型的文本分类项目,使用今日头条新闻数据集进行训练和评估。项目包括数据获取、预处理、模型训练、评估测试等环节。数据预处理涉及清洗文本、中文分词、去除停用词、构建词汇表和向量化等步骤。TextCNN模型通过卷积层和池化层提取文本特…

iot-dc3 项目Bug修复保姆喂奶级教程

一.Uncaught (in promise) ReferenceError: TinyArea is not defined 1.触发场景 前端设备模块,点击关联模板、关联位号、设备数据,无反应,一直切不过去,没有报错通知,F12查看控制台报错如下: 2.引起原因 前端导入的库为"@antv/g2": "^5.3.0",在 P…

Spring Boot + MyBatis Plus + SpringAI + Vue 毕设项目开发全解析(源码)

前言 前些天发现了一个巨牛的人工智能免费学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 Spring Boot MyBatis Plus SpringAI Vue 毕设项目开发全解析 目录 一、项目概述与技术选型 项目背景与需求分析技术栈选择…

Vitess数据库部署与运维深度指南:构建可伸缩、高可用与安全的云原生数据库

摘要 Vitess是一个为MySQL和MariaDB设计的云原生、水平可伸缩的分布式数据库系统,它通过分片(sharding)实现无限扩展,同时保持对应用程序的透明性,使其无需感知底层数据分布。该项目于2019年从云原生计算基金会&#…

SpringAI+DeepSeek大模型应用开发——6基于MongDB持久化对话

持久化对话 默认情况下,聊天记忆存储在内存中ChatMemory chatMemory new InMemoryChatMemory()。 如果需要持久化存储,可以实现一个自定义的聊天记忆存储类,以便将聊天消息存储在你选择的任何持久化存储介质中。 MongoDB 文档型数据库&…

Mac电脑-音视频剪辑编辑-Final Cut Pro X(fcpx)

Final Cut Pro Mac是一款专业的视频剪辑工具,专为苹果用户设计。 它具备强大的视频剪辑、音轨、图形特效和调色功能,支持整片输出,提升创作效率。 经过Apple芯片优化,利用Metal引擎动力,可处理更复杂的项目&#xff…

不同程度多径效应影响下的无线通信网络电磁信号仿真数据生成程序

生成.mat数据: %创建时间:2025年6月19日 %zhouzhichao %遍历生成不同程度多径效应影响的无线通信网络拓扑推理数据用于测试close all clearsnr 40; n 30;dataset_n 100;for bias 0.1:0.1:0.9nodes_P ones(n,1);Sampling_M 3000;%获取一帧信号及对…

Eureka 和 Feign(二)

Eureka 和 Feign 是 Spring Cloud 微服务架构中协同工作的两个核心组件,它们的关系可以通过以下比喻和详解来说明: 关系核心:服务发现 → 动态调用 组件角色核心功能Eureka服务注册中心服务实例的"电话簿"Feign声明式HTTP客户端根…

Springboot仿抖音app开发之RabbitMQ 异步解耦(进阶)

Springboot仿抖音app开发之评论业务模块后端复盘及相关业务知识总结 Springboot仿抖音app开发之粉丝业务模块后端复盘及相关业务知识总结 Springboot仿抖音app开发之用短视频务模块后端复盘及相关业务知识总结 Springboot仿抖音app开发之用户业务模块后端复盘及相关业务知识…

1.部署KVM虚拟化平台

一.KVM原理简介 广义的KVM实际上包含两部分,一部分是基于Linux内核支持的KVM内核模块,另一部分就是经过简化和修改的Qemuo KVM内核模块是模拟处理器和内存以支持虚拟机的运行,Qemu主要处理丨℃以及为用户提供一个用户空间工具来进行虚拟机的…

优化与管理数据库连接池

优化与管理数据库连接池 在现代高并发系统中,数据库连接池是保障数据库访问性能的核心组件之一。合理配置、优化和管理连接池,可以有效缓解连接创建成本高、连接频繁断开重连等问题,从而提升系统整体的响应速度与稳定性。 数据库连接池的作用与价值 数据库连接池的核心思…

实现回显服务器(基于UDP)

目录 一.回显服务器的基本概念 二.回显服务器的简单示意图 三.实现回显服务器(基于UDP)必须要知道的API 1.DatagramSocket 2.DatagramPacket 3.InetSocketAddress 4.二者区别 1. 功能职责 2. 核心作用 3. 使用场景流程 四.实现服务器端的主…

LabVIEW电液伺服阀自动测试

针对航空航天及工业液压领域电液伺服阀测试需求,采用 LabVIEW 图形化编程平台,集成 NI、GE Druck 等品牌硬件,构建集静态特性(流量/ 压力 / 泄漏)与动态特性(频率响应)测试于一体的自动化系统&a…

性能优化 - 高级进阶: Spring Boot服务性能优化

文章目录 Pre引言:为何提前暴露指标与分析的重要性指标暴露与监控接入Prometheus 集成 性能剖析工具:火焰图与 async-profilerasync-profiler 下载与使用结合 Flame 图优化示例 HTTP 及 Web 层优化CDN 与静态资源加速Cache-Control/Expires 在 Nginx 中配…

力扣网C语言编程题:除自身以外数组的乘积

一. 简介 本文记录力扣网上涉及数组方面的编程题,主要以 C语言实现。 二. 力扣上C语言编程题:涉及数组 题目:除自身以外数组的乘积 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i…

SpringBoot扩展——发送邮件!

发送邮件 在日常工作和生活中经常会用到电子邮件。例如,当注册一个新账户时,系统会自动给注册邮箱发送一封激活邮件,通过邮件找回密码,自动批量发送活动信息等。邮箱的使用基本包括这几步:先打开浏览器并登录邮箱&…