首页> 中国专利> 基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法

基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法

摘要

本发明提出了一种基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法,属于视频转码领域。本发明采用SVC自适应转码,使用分离器将SVC文件按层分割成独立的多层文件,在转码前,根据终端能力进行空间层和质量层的自适应过程,丢弃不需要的层,使这个转码过程不仅有效地减少了不必要的时间开销,并为客户端提供了与之能力相匹配的视频质量;采用像素域和变换域结合的方式,既降低了时间复杂度又有效地控制了误差漂移;采用基于Lagrangian的编码控制优化算法,在求解平均失真函数时,采用绝对误差函数SAD代替绝对值均方函数SSD,简化了计算复杂度;采用基于GOP并行的线程处理机制,利用线程并行处理单独编码的GOP,大大减少了转码时间。

著录项

  • 公开/公告号CN102790905A

    专利类型发明专利

  • 公开/公告日2012-11-21

    原文格式PDF

  • 申请/专利权人 重庆大学;

    申请/专利号CN201210275670.5

  • 发明设计人 唐朝伟;罗秀红;袁杨;

    申请日2012-08-03

  • 分类号

  • 代理机构重庆市前沿专利事务所;

  • 代理人郭云

  • 地址 400045 重庆市沙坪坝区沙正街174号

  • 入库时间 2023-12-18 07:26:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    未缴年费专利权终止 IPC(主分类):H04N21/234 授权公告日:20160817 终止日期:20190803 申请日:20120803

    专利权的终止

  • 2016-08-17

    授权

    授权

  • 2013-01-16

    实质审查的生效 IPC(主分类):H04N21/234 申请日:20120803

    实质审查的生效

  • 2012-11-21

    公开

    公开

说明书

技术领域

本发明涉及互联网流媒体技术,尤其涉及一种基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法。

背景技术

随着计算机网络技术和多媒体技术的迅猛发展,人们对视频服务的需求日趋多样化,视频技术的研究已成为信息技术的热门研究领域之一。2003年3月,ITU/ISO的联合项目组JVT发布了视频编码标准H.264/AVC(Advanced VideoCoding),由于其优越的压缩,较高的编码效率和很好的网络适应性,获得了广泛的使用。

为了解决多媒体应用的扩展出现的越来越多的异构网络、多媒体终端、用户需求对相同内容多媒体信息的访问要求,在AVC基础上提出了H.264/SVC(Scalable Video Coding)可扩展编码标准。目前,SVC已成为近年来视频技术领域研究的热点之一,它不但继承了AVC良好的编码效率和网络适应性,其在时域、空域、质量的可扩展性能更好地满足了互联网视频、移动无线视频、视频监控、电视电话以及实时转播等不同视频服务的多样化需求。

SVC在业内的使用程度和认可程度远不及在网络和工业界已经早已被广泛认可和使用的H.264/AVC。由此可知,现有的很多终端,大多数为AVC的终端设备,只支持AVC的实时解码和SVC基本层的解码,无法做到SVC的实时解码。虽然AVC解码设备能支持SVC基本层的解码,能达到基本的播放,但终端都希望得到与其能力相匹配的视频效果。若重新在解码终端增加SVC的解码功能,必然造成很多现有终端的额外开销。此外,在无线网络中,许多无线设备不具备SVC实时解码的处理能力。这就需要在视频到达终端之前的内容服务器端作一些必要的处理措施。一种情况是在服务器端生成若干个相互独立、具有不同分辨率的码流来满足终端用户的需求,但这势必会增加编码端负担、导致带宽的严重浪费。另一种方法是在服务器端进行转码,将SVC码流转化为AVC码流,在不造成其他额外开销的情况下,达到终端的要求。显然,第二种方法既能体现SVC优良的网络适应性能为视频传输提供一个很好的自适应能力,又能适应现有终端的处理能力,为不同的终端提供与其能力最匹配的视频质量服务。

目前的从SVC到H.264/AVC的视频转码技术中,有蛮力转码和码流重写机制。

在转码技术中,最直观的转码方式就是蛮力转码(全解全编):对现有码流进行完全解码再按照接收端要求重新编码,此种方法能得到最佳的率失真效果,但其计算复杂、耗时多、成本代价大,不适合通信设备的实时性转码要求。

从SVC到H.264/AVC的快速转码,目前现有的方法都是基于码流的重写机制。比较具有代表性的是Segall提出的SVC到H.264/AVC的码流重写(AVCRewrting)机制和Hannukesela提出的基于特定结构的码流重写机制。目前效果最好的是,Segll在2007年提出的基于CGS(Coarse Grain Scalability,粗等粒度颗粒)的SVC到AVC的码流机制,现已有JVT-T061和JVT-V035两个版本标准提案。该方法对SVC的语法和语义进行了更改,在SVC编码端使用了自定义的语法,针对CGS质量可伸缩层进行码流重写。对具有多个CGS质量层和最基本的MGS(Medium Grain Scalabilty,中等粒度颗粒)层的SVC码流进行无损的转码并得到与目标质量层相匹配的视频内容。在增加基本层较少码率的同时具有较低的转码复杂度。该方法虽然具有无损、低复杂度等有优点,但目前只能对SVC的质量层进行转码,无法实现空间分辨率的转码。另外,该方法在编码端对SVC的语法和语义进行了修改,不仅在SVC编码端造成了编码效率的影响,而且对于未考虑SVC码流重写的编码得到的码流无法进行转换。

另一种从SVC到H.264/AVC码流重写方法是由Hannukesela提出的基于特定结构的码流重写机制。该方法提出了两种不同结构的码流重写机制。第一种是增强层只包含双向预测图像和可跳过的图像,增强层中的双向预测图像做些简单的处理即可加入基本层构成单一的AVC码流。另一种是SVC编码结构类似与同播,SVC各层之间采用独立编码,层与层之间不存在参考和预测。在转码端,对SVC码流各层通过简单的判断决定丢弃与否,再对数据头信息进行简单的修改即可生成AVC码流。该方法虽然转码操作简单,但其需要在编码端进行严格的控制,只能针对以上两种特定的SVC码流结构进行转码,局限性太大。

发明内容

本发明旨在解决现有技术中存在的技术问题,特别创新地提出了一种基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法,将SVC文件按层分割成独立的多层文件,在转码前,根据终端能力进行空间层和质量层的自适应过程,丢弃不需要的层,使这个转码过程不仅有效地减少了不必要的时间开销,并为客户端提供了与之能力相匹配的视频质量。

为了实现本发明的上述目的,本发明提供了一种基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法,其特征在于包括以下步骤:

S1、服务器端将SVC视频流分割为多个分层文件,其中该SVC视频流的空间层和质量层存放至对应的分层文件中,该分层文件的文件名为DQid=1+16×Did+Qid,Did表示空间层数,Qid表示质量层数,且该空间层由空间基础层和空间增强层组成,该质量层由质量基础层和质量增强层组成;

S2、服务器端将该SVC视频流分层文件的相关信息封装至Torrent文件中;

S3、客户端向服务器端请求下载SVC视频流并将客户端的处理能力信息发送给服务器端,其中该处理能力信息包括客户端的空间层最大处理量和质量层最大处理量;

S4、服务器端根据客户端反馈回的空间层最大处理量和质量层最大处理量,丢弃SVC视频流中超出该空间层最大处理量和质量层最大处理量的空间层和质量层对应的分层文件,从而实现空间和质量的自适应调节,获得SVC有效分层文件;

S5、对该SVC有效分层文件进行转码解码,从而获得重用信息;

S6、对该重用信息进行转码编码,从而获得AVC单层视频流。

采用SVC自适应转码,使用分离器将SVC文件按层分割成独立的多层文件,在转码前,根据终端能力进行空间层和质量层的自适应过程,丢弃不需要的层。使这个转码过程不仅有效地减少了不必要的时间开销,并为客户端提供了与之能力相匹配的视频质量。

在所述步骤S2中Torrent文件记录了分层文件的层数、各分层文件所属的空间层Did和质量层Qid以及每个GOP的相对偏移位置。

在所述步骤S3之前,如果该客户端不存在Torrent文件,还需要向服务器端请求下载该Torrent文件。

在所述步骤S5中采用像素域和变换域相结合的转码方式对该SVC有效分层文件进行转码:针对SVC质量基础层的残差数据以及质量增强层未采用层间残差预测的码流,实行变换域转码;

针对SVC所有空间层以及质量增强层采用了层间残差预测的码流,实行像素域转码。采用像素域和变换域结合的方式,既降低了时间复杂度又有效地控制了误差漂移。

在所述步骤S6中采用基于Lagrangian的编码优化控制算法,选用帧内模式和帧间模式两种编码模式对上述重用信息进行转码编码,从而获得AVC单层视频流。

在帧内模式下,在求取平均失真函数时选用绝对误差函数SAD来计算。在求解平均失真函数时,采用绝对误差函数SAD代替绝对值均方函数SSD,简化了计算复杂度。

在SVC视频流输入至服务器端之前,SVC编码器通过参数设定GOP特性,将各个GOP独立编码,即每个GOP中包含一个IDR帧,并以IDR帧作为首帧,IDR帧不但能独立重构完整图像,并能禁止其后的帧向自己前面帧做参考,这样有效地截断了不同GOP的参考关系,让每个GOP都能在转码过程中进行独立的解码。

在转码解码过程中,采用以GOP图组为单位,启动不同的转码线程,对GOP进行并行线程转码,处理之后再进行解码图像的重排序,得到最后的AVC单层视频流。采用基于GOP并行的线程处理机制,利用线程并行处理单独编码的GOP,大大减少了转码时间,且编程实现容易,程序理解性强,为实时转码提供了强有力的保障。

每个线程至少有一个GOP的缓存区,用于预缓存待该线程处理的GOP,每个线程等到有整个GOP准备好之后才进行线程转码,其中该GOP的预缓存时间为Delay=N*M/f,N代表总线程数,M代表每个GOP的size大小,f代表待转码视频的帧率。

线程数越少,预缓存时间越短,而转码时间处理越长,在实际的转码过程中应根据实际视频的大小以及服务器自身的CPU和内存的处理能力,开启适当的线程数。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、采用SVC自适应转码,使用分离器将SVC文件按层分割成独立的多层文件,在转码前,根据终端能力进行空间层和质量层的自适应过程,丢弃不需要的层。使这个转码过程不仅有效地减少了不必要的时间开销,并为客户端提供了与之能力相匹配的视频质量;

2、采用像素域和变换域结合的方式,既降低了时间复杂度又有效地控制了误差漂移;

3、采用基于Lagrangian的编码控制优化算法,在求解平均失真函数时,采用绝对误差函数SAD代替绝对值均方函数SSD,简化了计算复杂度;

4、采用基于GOP并行的线程处理机制,利用线程并行处理单独编码的GOP,大大减少了转码时间,且编程实现容易,程序理解性强,为实时转码提供了强有力的保障。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明的流程框图;

图2是本发明的具体流程图;

图3是GOP并行线程转码示意图;

图4是GOP并行处理的线程流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

该基于P2PVoD视频点播系统的H.264/SVC到H.264/AVC的转码方法包括转码预处理过程、转码解码过程和转码编码过程,如图1所示。转码方案的输入是经SVC分离器处理后的层与层单独的SVC分片文件,输出为H.264/AVC单层码流。在转码预处理部分,主要根据客户端的处理能力,进行SVC空间和质量的自适应过程。在转码解码部分,主要完成转码重用信息的提取。在转码的编码部分进行AVC的重编码。

SVC到AVC的综合转码方案,如图2所示,具体步骤如下:

在转码预处理部分,对经过分离器处理之后的SVC按层分片文件进行空间分辨率或者是质量的自适应处理,根据客户端的处理能力、分辨率及质量的需求进行有针对性的层丢弃,选择适合用户H.264/AVC解码器设备的分辨率及质量层及该层以下的所有层作为转码输入。

在转码解码部分,进行熵解码,再经过反量化,反变换,层间帧内预测和层间运动补偿等过程,得到转码编码重建图像所需要的视频图像信息进行保存。此外,由熵解码得到的所有参考图像信息,包括所有宏块的模式信息和运动矢量信息,将直接为转码编码所用。

在视频的转码编码部分,即AVC的重构模块,延续AVC编码器的作法,采用变换和预测的混合编码方法。在转码编码的模式选择中,充分利用转码解码端的模式选择和运动信息,尽量在保证质量的情况下,利用有效的模式选择,降低计算的复杂度。

H.264/AVC的编码经过余弦变换、量化后产生一组量化后的变换系数再经过熵编码,与前面转码解码后经过处理的一些解码所需的头信息(如预测模式量化参数、运动矢量等)一起组成一个单层的AVC码流,经过NAL供传输和存储,供客户端解码播放。

该转码预处理过程由以下步骤组成:

A1、在服务器端,SVC视频流经SVC分离器处理后,分割成多个单独的分层文件,其中该SVC视频流的空间层和质量层存放至对应的分层文件中,该分层文件的文件名为DQid=1+16×Did+Qid,Did表示空间层数,Qid表示质量层数。采用分层文件并采用DQid对分层文件命名,便于在分发过程中快速定位目标SVC视频流。

在本发明的实施例中针对SVC视频基础分层文件,Did=0且Qid=0,其文件名为DQid=1+16×Did+Qid=1;

针对SVC视频第一增强分层文件,Did=0且Qid=1,其文件名为DQid=1+16×0+1=2;

针对SVC视频第二增强分层文件,Did=1且Qid=0,其文件名为DQid=1+16×1+0=17;

针对SVC视频第三增强分层文件,Did=1且Qid=1,其文件名为DQid=1+16×1+1=18。

A2、在服务器端,将该SVC视频流分层文件的相关信息封装至Torrent文件中,其中该Torrent文件记录了分层文件的层数、各分层文件所属的空间层Did和质量层Qid以及每个GOP(Group of Picture,图组)的相对偏移位置,便于在分发过程中对需要下载的数据进行快速定位。

A3、客户端向服务器端请求下载Torrent文件。当然,如果客户端已经存在Torrent文件则不必下载该Torrent文件。

A4、客户端向服务器端请求下载SVC视频流并将客户端的处理能力信息发送给服务器端,其中该处理能力信息包括客户端的空间层最大处理量和质量层最大处理量。

A5、服务器端根据客户端反馈回的空间层最大处理量和质量层最大处理量,丢弃SVC视频流中超出该空间层最大处理量和质量层最大处理量的空间层和质量层对应的分层文件,从而实现空间和质量的自适应调节,获得SVC有效分层文件。空间和质量的自适应调节过程类似于为了减少转码复杂度,在SVC视频流转码之前进行的SVC视频流自适应抽取过程,不同的是本发明首先将SVC视频流分割成多个分层文件,在SVC视频流转码之前只需直接丢弃不需要的分层文件,而不必在SVC视频流转码之前自适应抽取SVC视频流,由此不仅减少了转码复杂度,而且缩短了转码时间,提高了转码效率。

在本发明的实施例中服务器端的SVC视频流包括3个不同大小分辨率的空间层以及5个不同质量大小的质量层,而客户端的H.264/AVC的解码器最大能支持处理2个空间层和3个质量层(也即是说客户端的空间层最大处理量为2个,质量层最大处理量为3个),此时服务器端直接将SVC视频流中第三空间层对应的分层文件以及第四和第五质量层对应的分层文件丢弃。

该转码解码过程由以下步骤组成:

B1、对上述SVC有效分层文件进行转码解码,从而获得重用信息。

目前,常见的转码方式有像素域转码(Spatial Domain TranscodingArchitecture,SDTA)和变换域转码(Frequency-Domain Transcoding Architecture,FDTA)。SDTA需要将码流解码到像素域再进行重写编码,计算复杂度高于FDTA,但不存在误差漂移,率失真性能较好;而FDTA只需将码流解码到变换域,降低了转码的复杂度,但H.264/SVC引入的非线性预算会导致误差漂移,率失真性能不如SDTA。

因此,在本发明中既要考虑整数余弦变换(Integer Digital ConsineTransform,IDCT)去块效应滤波器(Deblocking Filter,DF)的等非线性操作引起的错误漂移导致的视频质量下降问题,对误差漂移进行有效的控制,又要考虑在转码时间复杂度上的考虑,尽可能的节约编码时间。

为了在率失真性能和复杂度之间进行了更好的折衷,本发明采用像素域和变换域相结合的转码方案:针对SVC质量基础层的残差数据以及质量增强层未采用层间残差预测的码流,实行变换域转码,包括熵解码、反量化,其不必在转码解码端的反量化之后进行反变换过程,同样,在转码编码端也不需进行变换过程,有效的降低了编码的时间,并且由于这部分码流不存在增强层间的预测,也有效控制了层间的错误漂移。

针对SVC所有空间层(包括空间基础层和空间增强层)以及质量增强层采用了层间残差预测的码流,实行像素域转码,这样有效地控制了错误偏移,增强了转码的率失真性能。

转码编码的过程由以下步骤组成:

C1、基于Lagrangian的编码优化控制算法对上述重用信息进行转码编码控制,再经过变换、量化、重排序、熵解码等AVC编码正常流程从而获得AVC单层视频流。由于H.264采用了混合编码方式,因此上述重用信息选择帧内模式和帧间模式两种编码模式。编码器通过最小化Lagrangian代价函数实现对每一个宏块的编码模式的选定。宏块的Lagrangian代价函数为JMODE(Sk,Ik,|Q,λMODE)=DREC(Sk,Ik,|Q)-λMODE×RREC(Sk,Ik,|Q)

其中S表示图像序列,该图像序列S被分割成K个不同的图像块Ak,图像块Ak对应的像素值表示为Sk,图像块Ak对应的编码模式表示为Ik,且像素值Sk对应的编码模式为Qk。,λMODE表示与量化参数有关的Lagrangian算子,其计算公式为

λMODE=0.85×2(Q-12)/3

在数字视频压缩编码中,常用的平均失真函数DREC(Sk,Ik,|Q)为由宏块的原始像素和重建像素决定。一般由其差值的绝对误差和函数SAD、绝对值平方和函数SSD以及均方误差函数MSE三种计算方法。本发明中,为了简化模式选择中的算法,采用SAD算法来代替传统编码中采用的SSD算法。

在帧内模式下,SAD公式如下:

>SAD=Σ(x,y)A|s[x,y,t]-c[x,y,t]|>

其中s[x,y,t]为当前视频编码图像,c[x,y,t]为参考帧数据。

在帧间模式下,由于采用了基于块的运动估计,Lagrangian代价函数要比帧内模式复杂。本方案通过Lagrangian代价函数(块匹配误差函数)计算待编码图像块与参考图像块之间的最小匹配误差,挑选出具有最小匹配误差的参考块,取这两个块之间的位移作为运动估计的运动矢量块。对于帧间编码模式的块s(x,y,t),其运动矢量为mv,在给定Lagrangian参数λmotion和参考图像c的情况下,其代价函数最小化模型为:

Jmotion(s,λmotion)=Dmotion(s,c)-λmotion×Rmotion(s,c)

其中λmotion为Lagrangian参数,其值为Rmotion(s,c)为该运动矢量的比特数。其失真度Dmotion(Sk,Ik,|Q)也采用绝对值误差SSD公式来求解,具体公式如下:

>SAD=Σ(x,y)A|s[x,y,t]-c[x-mvx,y-mvy,t-mvt]|>

其中s[x,y,t]表示当前视频编码图像,c表示参考帧数据,mv表示这两块直接的运动矢量。

本发明为了满足P2PVoD视频点播系统中实时性较高的要求,采用GOP级图组并行转码的处理方案,如图3所示,在生成SVC编码文件时,SVC编码器通过参数设定GOP特性,将各个GOP独立编码,即每个GOP中包含一个IDR帧,并以IDR帧作为首帧,IDR帧不但能独立重构完整图像,并能禁止其后的帧向自己前面帧做参考,这样有效地截断了不同GOP的参考关系,让每个GOP都能在转码过程中进行独立的解码。

GOP并行转码处理机制流程如图4所示,在服务器对SVC分层文件进行空间/质量自适应后,定位到需要转码的视频序列。由于每个GOP图组为单独编码,所以在转码解码的过程中,GOP也能进行单独的内部转码。因此解码可以采用以GOP图组为单位,启动不同的转码线程,对GOP进行并行转码处理,处理之后再进行解码图像的重排序,得到最后的AVC视频数据码流。从图中可以看出,每个线程必须在等到有整个GOP准备好之后,才能进行线程转码。这要求每个线程至少有一个GOP的缓存区,存放待该线程处理的GOP,并且从整个并行方案看,这个预缓存也需要时间,这就造成了一定的时延。具体的时延时间,可参照以下公式:

Delay=N*M/f

其中Delay表示整个GOP并行方案需要的预缓存时间;N代表总线程数;M代表每个GOP的size大小;f代表待转码视频的帧率。例如,程序共开启了两个线程,GOP的size为8,视频帧率为30fps,则预缓存时间Delay=2*8/30=0.5333秒。由此,可以看出,线程数目越少,预缓存时间越短,但线程越少,转码时间处理越长。所以在实际操作中,可根据实际视频的大小,来进行适应性调整,开启合适的线程数,把预缓存时间和转码处理时间达到最好的折衷,使整个并行转码过程达到最优的时间性能。另外,也要考虑服务器自身的CPU和内存的处理能力,如果开启的线程数过多,会造成服务器负荷过大,让转码效率反而下降。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号