CN102438152B - 可伸缩视频编码容错传输方法、编码器、装置和系统 - Google Patents
可伸缩视频编码容错传输方法、编码器、装置和系统 Download PDFInfo
- Publication number
- CN102438152B CN102438152B CN 201110453067 CN201110453067A CN102438152B CN 102438152 B CN102438152 B CN 102438152B CN 201110453067 CN201110453067 CN 201110453067 CN 201110453067 A CN201110453067 A CN 201110453067A CN 102438152 B CN102438152 B CN 102438152B
- Authority
- CN
- China
- Prior art keywords
- frame
- coding
- redundant
- packet loss
- optimal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000005538 encapsulation Methods 0.000 claims abstract description 3
- 238000004806 packaging method and process Methods 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 abstract description 6
- 238000012986 modification Methods 0.000 abstract description 6
- 239000010410 layer Substances 0.000 description 135
- 238000010586 diagram Methods 0.000 description 18
- 239000011229 interlayer Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 101100297853 Caenorhabditis elegans plr-1 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- NUHSROFQTUXZQQ-UHFFFAOYSA-N isopentenyl diphosphate Chemical group CC(=C)CCO[P@](O)(=O)OP(O)(O)=O NUHSROFQTUXZQQ-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种可伸缩视频编码容错传输方法、编码器、装置和系统。编码器可以生成各个丢包率对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息,并将冗余帧信息和原始SVC码流一同发送。容错SVC码流封装装置接收到冗余帧信息和原始SVC码流后,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧,并将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。与现有技术相比,减少计算量、提高编码效率,进一步可以保证同时提供大量并发服务,效率高。
Description
技术领域
本申请涉及视频编码技术领域,特别是涉及一种可伸缩视频编码容错传输方法、编码器、装置和系统。
背景技术
近年来,随着英特网以及第三代移动通信技术的普及,视频服务正面临着飞速的发展。为了使视频流能够更好地适应各种不同的网络环境和用户终端,SVC(Scalabile Video Coding,可伸缩视频编码)码流被认为是目前解决这一问题的最好方法。
SVC码流能提供一个空间、时间、质量可伸缩的码流,从这个码流中可以抽取子码流,以满足网络传输速率以及终端用户对视频在空间、时间和信噪比等方面的需求。在SVC码流中,最低质量层被称作基本层,增强空间分辨率、时间分辨率或者信噪比强度的层被称作增强层。其中,为实现空间可伸缩性,可以利用层间的运动、纹理和残差信息,使用分层编码方法;为实现时间可伸缩性,采用分级双向预测帧编码方法;为实现信噪比可伸缩性,可以使用粗粒度可伸缩性和中粒度可伸缩性两种方法,这两种方法采用与空间可伸缩性相似的层间预测方法。
虽然视频编码算法充分利用了空间、时间和层间的冗余,最大限度地提高了编码效率,但是在实际视频应用中可用带宽动态变化或路由阻塞,造成码流传输出错,进一步影响到当前帧、时间后续帧以及后续层帧,从而使视频质量大大降低。在SVC码流中,基本层的丢失不仅会影响到基本层的后续时间帧,还会影响参考基本层对应的增强层帧,因此基本层尤为重要。
为了保证视频质量,在SVC码流传输中,可以通过不等差错保护对基本层帧进行额外保护,如在差错异构网络中,利用有线网络中的媒体路由器优先保护基本层中的帧数据,丢弃增强层中的帧数据。而SVC码流从有线网络传输至无线网络时,为提高SVC码流的抗差错性能,在有线网络和无线网络的交界处添加媒体网关,媒体网关对SVC码流进行差错保护。
上述媒体网关对SVC进行差错保护时,需要在接收到的原始SVC码流中,插入帧内编码块,进一步对插入帧内编码块的SVC码流进行帧内转码。然而上述帧内转码进行差错保护的方法,计算量大,编码效率低,从而媒体网关很难同时提供大量并发服务,效率低。
发明内容
有鉴于此,本申请实施例公开一种可伸缩视频编码容错传输方法、编码器、装置和系统,减少计算量、提高编码效率,从而保证同时提供大量并发服务,效率高。技术方案如下:
基于本申请的一方面,提供了一种可伸缩视频编码容错传输方法,包括:
编码器获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式,计算每帧编码帧在不同丢包率下自身对应的每个冗余帧模式下的失真和,获取每帧编码帧在各个丢包率下对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息;
编码器将所述冗余帧信息和原始可伸缩视频编码SVC码流一同发送;
容错SVC码流封装装置接收所述冗余帧信息和原始SVC码流,确定当前丢包率,获取所述原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧;
容错SVC码流封装装置将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。
优选地,所述编码器获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式包括:
获取每帧编码帧的基本层码率和增强层码率;
按照自然数排序,将1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合;
从基本层帧的传输次数集合和增强层帧的传输次数集合中的任意选取一个数值,将选取的数值组合,组合的所有数值集合为对应编码帧的多个冗余帧模式。
优选地,按照自然数排序,将1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合包括:
针对任一编码帧,判断编码帧在码流序列中的位置l是否大于L/2,且δn是否大于T1,或者位置l是否大于2L/3,且δn是否大于T2,其中L为帧内编码周期,T1和T2是当l大于L/2以及2L/3时允许δn超过的阈值,δn为传输n帧编码帧时,修改后码流与原始码流的码率百分比;
在位置l大于L/2,且δn大于T1,或者位置l大于2L/3,且δn大于T2时,基本层帧传输次数集合增强层帧的传输次数集合Me={0},否则基本层帧传输次数集合增强层帧的传输次数集合Me={1},其中,M为基本层所允许的最大传输次数,为增强层码率和基本层码率的比值。
优选地,计算第n帧编码帧在自身对应的冗余帧模式下的失真和包括:
计算第n帧编码帧在自身对应的冗余帧模式下的端到端失真;
获取第n帧编码帧的总码率与拉格朗日参数的乘积,将乘积结果作为码率代价值;
将所述码率代价值和端到端失真之和作为第n帧编码帧在自身对应的冗余帧模式下的失真和。
优选地,计算第n帧编码帧在自身对应的冗余帧模式下的端到端失真包括:
获取第n帧编码帧中第i个像素正确接收时的解码端预期重建值的一阶矩和二阶距,以及第i个像素未正确接收时的解码端预期重建值的一阶矩和二阶距;
优选地,获取第n帧编码帧在丢包率下对应的最佳冗余帧模式包括:
选取第n帧编码帧在丢包率下自身对应的每个冗余帧模式下的失真和中数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为在该丢包率下第n帧编码帧的最佳冗余帧模式。
优选地,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息包括:
将任一编码帧自身在各个丢包率下的最佳冗余帧模式,按照丢包率大小顺序进行排列,将排序后的最佳冗余帧模式作为任一编码帧的整体最佳冗余帧模式;
将各帧编码帧的整体最佳冗余帧模式,按照原始SVC码流中编码帧的顺序封装为冗余帧信息。
基于本申请的另一方面,提供了一种编码器,包括:
获取单元,用于获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式;
最佳模式获取单元,用于计算每帧编码帧在不同丢包率下自身对应的每帧冗余帧模式下的失真和,获取每帧编码帧各个丢包率下对应的最佳冗余帧模式;
封装单元,用于将各帧编码帧的最佳冗余帧模式封装为冗余帧信息;
发送器,用于将所述冗余帧信息和原始SVC码流一同发送。
优选地,所述最佳模式确定单元包括:
端到端失真计算子单元,用于计算编码帧在自身对应的冗余帧模式下的端到端失真;
码率代价值获取子单元,用于获取编码帧的总码率与拉格朗日参数的乘积,将乘积结果作为码率代价值;
失真和确定子单元,用于将所述码率代价值和端到端失真之和作为编码帧在自身对应的冗余帧模式下的失真和;
最佳模式获取子单元,用于选取编码帧在丢包率下自身对应的每个冗余帧模式下的失真和中数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为在该丢包率下编码帧的最佳冗余帧模式。
基于本申请的另一方面,提供了一种容错SVC码流封装装置,包括:
接收器,用于接收所述冗余帧信息和原始SVC码流;
变更单元,用于确定当前丢包率,获取所述原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧;
封装单元,用于将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。
基于本申请的再一方面,提供了一种可伸缩视频编码容错传输系统,包括解码器,还包括:上述编码器和上述容错SVC码流封装装置。
应用上述技术方案,编码器可以生成各个丢包率对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息,并将冗余帧信息和原始SVC码流一同发送。容错SVC码流封装装置接收到冗余帧信息和原始SVC码流后,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧,并将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。与现有技术相比,在生成容错SVC码流时,本申请实施例公开的技术方案对基本层帧进行复制,对增强层帧进行删除,而不需对基本层帧和增强层帧进行转码,从而减少计算量、提供编码效率,进一步可以保证同时提供大量并发服务,效率高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的可伸缩视频编码容错传输方法的流程图;
图2为本申请实施例公开的可伸缩视频编码容错传输方法的一个子流程图;
图3为本申请实施例公开的可伸缩视频编码容错传输方法的另一个子流程图;
图4为foreman序列编码前的PSNR增益结果的示意图;
图5为News序列编码前的PSNR增益结果的示意图;
图6为foreman序列的编码码流经过不同容错保护方法的PSNR增益结果的示意图;
图7为News序列的编码码流经过不同容错保护方法的PSNR增益结果的示意图;
图8为foreman序列的编码码流经过不同容错保护方法的PSNR增益结果的示意图;
图9为News序列的编码码流经过不同容错保护方法的PSNR增益结果的示意图;
图10为本申请实施例公开的编码器的结构示意图;
图11为本申请实施例公开的编码器中最佳模式确定单元的结构示意图;
图12为本申请实施例公开的容错SVC码流封装装置的结构示意图;
图13为本申请实施例公开的可伸缩视频编码容错传输系统的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
一个实施例
请参阅图1,图1为本申请实施例公开的可伸缩视频编码容错传输方法的流程图,包括:
S101:编码器获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式,计算每帧编码帧在不同丢包率下自身对应的每个冗余帧模式下的失真和,确定每帧编码帧在各个丢包率下对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息。其中:
编码器获取的不同丢包率可以为预先设置在编码器中的丢包率,也可以通过网关从解码器或者路由器中获取。丢包率的表达式为(pb,pe),pb为基本层丢包率,pe为增强层丢包率。
上述编码器获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式流程图如图2所示,包括:
S1011:获取不同丢包率下,每帧编码帧的基本层码率和增强层码率。
假设基本层码率为raten b,增强层码率为raten e,其中n表明编码帧为码流中的第n帧。不同编码帧对应有不同的基本层码率和增强层码率。
S1012:按照自然数排序,将从1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合。如,假设基本层帧的传输次数集合为Mb,增强层帧的传输次数集合为Me,则Me={0,1}。
S1013:从基本层帧的传输次数集合和增强层帧的传输次数集合中的任意选取一个数值,将选取的数值组合,组合的所有数值集合为对应编码帧的多个冗余帧模式。
假如取值为3,则Mb={1,2,3}。当编码帧的基本层帧的传输次数集合Mb={1,2,3},增强层帧的传输次数集合Me={0,1}时,该编码帧的冗余帧模式为{1,0},{1,1},{2,0},{2,1},{3,0}和{3,1},其中,冗余帧模式中第一个元素为基本层帧的传输次数,第二个元素为增强层帧的传输次数。
在获取编码帧在不同丢包率下自身对应的多个冗余帧模式时,需要计算编码帧在不同丢包率下自身对应的每个冗余帧模式下的失真和,依据失真和确定最佳冗余帧模式。下面以丢包率为(pn b,pn e),冗余帧模式(mb,me)为例进行说明。具体请参阅流程图3,包括:
ψn可以依据编码帧在整个帧内编码周期中的位置决定,具体为:
其中:L是帧内编码周期,即相邻两帧帧内编码帧之间的帧数;β是帧内刷新因子,取值与码流的帧内编码周期有关为1/L,如当码流的帧内编码周期为32时,β=1/32;γ是与编码配置参数,取值与视频内容相关,本发明中γ的取值为0.8。
上述源失真和传输失真,可以通过递推方式计算像素的解码端重建值的一阶矩和二阶距获取,具体如下:
因此,源失真
传输失真
其中:为第n帧编码帧中第i个像素正确接收时的解码端预期重建值,和分别为第n帧编码帧中第i个像素正确接收时的解码端预期重建值的一阶矩和二阶矩;是在第n帧编码帧的基本层帧正确接收的情况下的解码错误隐藏像素值,可以通过BLSKIP获得,和分别为第n帧编码帧中第i个像素未正确接收时的解码端预期重建值的一阶矩和二阶矩;是利用第n-r个编码帧的基本层信息进行BLSKIP方式错误隐藏时解码端像素值,和分别为第n-1个编码帧中第i个像素未正确接收时的解码端预期重建值的一阶矩和二阶矩;表示当r>1时,用第n-k帧编码帧的增强层信息进行运动拷贝方式错误隐藏时解码端像素值,当r=0时,表示利用第n帧编码帧中接收到的运动矢量信息以及残差进行解码的解码端像素值,和分别为第n-1帧编码帧中第i个像素未正确接收时的解码端预期重建值的一阶矩和二阶矩;pn-k b和pn-k e是第n-k帧编码帧在最佳冗余帧模式(mb,n-k best,me,n-k best)下的基本层与增强层的丢包率。
上述各项在具体实施时可根据实际采用错误隐藏方法设定。pn-k b和pn-k e是第n-k帧编码帧在最佳冗余帧模式(mb,n-k best,me,n-k best)下的基本层与增强层的丢包率,其中k≥1。在计算第n帧编码帧时,第n-k帧编码帧在最佳冗余帧模式下的基本层与增强层的丢包率已经得出。
在H.264/AVC中,当第i个像素正确接收,第n帧编码帧以第n-1帧编码帧为参考帧,且第i个像素所处的编码块为帧内编码块时,第i个像素的解码端预期重建值的一阶矩为二阶距为当第i个像素正确接收,第n帧编码帧以第n-1帧编码帧为参考帧,且第i个像素所处的编码块为帧间编码块时,第i个像素的解码端预期重建值的一阶矩为 二阶距 为
S1015:获取第n帧编码帧的总码率与拉格朗日参数的乘积,将乘积结果作为码率代价值。
拉格朗日参数λ=(1-pn b(mb))λef,λef是信道传输无错情况下的拉格朗日参数。
S1016:将所述码率代价值和端到端失真之和作为第n帧编码帧在自身对应的冗余帧模式下的失真和。即失真和J{mb,me}=Dn{mb,me}+λRn{mb,me}。
S1017:从失真和中选取数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为该丢包率下第n帧编码帧的最佳冗余帧模式
由于第n帧编码帧在一个丢包率下对应多个冗余帧模式,所以经过上述步骤S1014至步骤S1016可以获取第n帧编码帧的多个失真和,经过步骤S1017从失真和中选取数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为该丢包率下第n帧编码帧的最佳冗余帧模式前已述及,一个编码帧对应多个丢包率,在一个丢包率下编码帧对应一个最佳冗余帧模式因此,一个编码帧对应多个最佳冗余帧模式且最佳冗余帧模式与丢包率一一对应。
在获取到各帧编码帧在不同丢包率下对应的多个最佳冗余帧模式后,按照丢包率大小顺序进行排列,将排序后的最佳冗余帧模式作为任一编码帧的整体最佳冗余帧模式将各帧编码帧的整体最佳冗余帧模式按照原始SVC码流中编码帧的顺序封装为冗余帧信息。当然,上述最佳冗余帧模式还可以封装到与其对应的编码帧中。
需要说明的是:上述对最佳冗余帧模式的确定过程是基于码流中包括一个基本层和一个增强层,当码流包括一个基本层和多个增强层时,可以根据上述方案进行相应的修改或变化,当然这些修改或变化均应包含在本申请的包含范围内。
S102:编码器将所述冗余帧信息和原始SVC码流一同发送。
S103:容错SVC码流封装装置接收冗余帧信息和原始SVC码流,确定当前丢包率,获取原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧。其中:当前丢包率的确定为接收解码器发送的丢包率,将解码器发送的丢包率确定为当前丢包率。
上述编码器中的丢包率可以为预先设置在编码器中的丢包率,因此,编码器中的丢包率不能与当前丢包率完全相同,可以从预先设置的丢包率中选取数值最接近的丢包率作为当前丢包率。在容错SVC码流封装装置中的丢包率可以为从解码器中获取,由于丢包率实时变化导致与冗余帧信息所对应的各个丢包率不同,可以从冗余帧信息中选取与从解码端获取的丢包率最接近的丢包率作为当前丢包率。
上述确定需变更的编码帧是通过参考编码帧的最佳冗余帧模式确定,如编码帧的最佳冗余帧模式为{1,1},则表明该编码帧不需变更,否则,该编码帧需变更。当编码帧的最佳冗余帧模式为{2,1},表明需要对编码帧的基本层帧复制一次,将复制后的帧排列在原始的基本层帧后,不需要对增强层帧进行删除。当编码帧的最佳冗余帧模式为{2,0},表明需要对编码帧的基本层帧复制一次,将复制后的帧排列在原始的基本层帧后,删除增强层帧。
S104:容错SVC码流封装装置将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,未变更的编码帧为不需变更的编码帧。
需要说明的是:发明人经过研究发现,一个帧内编码周期的码流序列中,码流序列前端的编码帧的错误扩散大,因此,为了保证在容错SVC码流封装装置的输入输出码率相同,需要对基本层帧传输次数集合Mb,增强层帧的传输次数集合Me进行限制。具体为:依据编码帧在码流序列中的位置进行限制。如:假设编码帧在码流序列中的位置为l,帧内编码周期为L,则当l大于L/2,且δn大于T1,或者l大于2L/3,且δn大于T2时,基本层帧传输次数集合增强层帧的传输次数集合Me={0}。否则,基本层帧传输次数集合增强层帧的传输次数集合Me={1}。
其中:δn为传输n帧编码帧时,修改后码流与原始码流的码率百分比,M是基本层所允许的最大传输次数,由允许的冗余帧信息长度决定;T1和T2是当l大于L/2以及2L/3时允许δn超过的阈值,最终码流传输错误率不会超过T2。本申请实施例中M,T1和T2可以分别为3,0.15,0.05,三个参数的具体数值依据不同的码流确定。
δn的计算公式可以为:
上述容错SVC码流封装装置可以嵌入媒体网关或者SVC服务器中。由于基本层帧传输次数最大与M,增强层帧传输次数为0或1,所以传输冗余帧信息的最大比特数为相对于原始SVC码流的码率,可以忽略,进而容错SVC码流封装装置生成的容错SCV码流与原始SVC码流具有相似的码率。
应用上述技术方案,编码器可以生成各个丢包率对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息,并将冗余帧信息和原始SVC码流一同发送。容错SVC码流封装装置接收到冗余帧信息和原始SVC码流后,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧,并将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。与现有技术相比,在生成容错SVC码流时,本申请实施例公开的技术方案对基本层帧进行复制,对增强层帧进行删除,而不需对基本层帧和增强层帧进行转码,从而减少计算量、提供编码效率,进一步可以保证同时提供大量并发服务,效率高。
发明人对具有基本层和增强层的两层空间分辨率的SVC码流编码,编码结构为IPPP...,帧内编码周期为32,基本层量化参数与增强层相同,一共编码四组量化参数(24,28,32,36)。编码320个编码帧,模拟的丢包率为(3%,3%),(3%,5%),(5%,5%),(5%,10%),(10%,10%),(10%,20%),每个丢包率模拟丢包次数200次,解码结果取平均值。实验结果请参阅图4至图9。其中:图4为foreman序列编码前的PSNR(Peak Signal To Noise Ratio,峰值性噪比)增益结果的示意图;图5为News序列编码前的PSNR增益结果的示意图;图6至图9为不同序列的编码码流经过不同容错保护方法的PSNR增益结果的示意图。图4至图9中,横坐标为码率,纵坐标为增益结果,各个标记含义如下:
orig(error_free)表示原始码流未丢包的解码结果。
后缀plr1和plr2表示基本层丢包率和增强层丢包率,在图一和图二中,表示的是编码端在生成冗余码流时设置的丢包率;在其他图中,还表示了实际模拟丢包的丢包率。
E(mode1)表示编码端使用的容错编码方式为mode1,其中:mode1为arp:表示编码端使用自适应添加冗余帧的方法;mode1为erp:表示编码端使用平均基本层冗余保护方法,即基本层每帧都传输两次,增强层从在帧内编码周期中靠近末端的位置开始丢弃帧,直至码率与本发明提出的冗余帧添加方式差不多;mode1为lardo:表示编码端使用帧内转码的方式。
D(mode2)表示解码端使用的错误隐藏方法为mode2,其中:mode2为blskip:表示解码端使用的错误隐藏方法为BLSKIP,此时基本层全部正确接收(在图一和图二中);mode2为blskip+td:表示基本层帧正确接收时解码端使用的错误隐藏方法为BLSKIP;当前基本层帧丢失时,解码端借助前一个正确接收的基本层数据来使用BLSKIP进行错误隐藏;mode2为blskip+mc:表示基本层帧正确接收时解码端使用的错误隐藏方法为BLSKIP;当前基本层帧丢失时,解码端借助前一个正确接收的增强层数据来使用运动拷贝的方式进行错误隐藏;mode2为proposed:表示解码端使用申请人提交的专利名称为“可伸缩视频编码层间错误隐藏方法、编码器和系统”的专利申请中提及的错误隐藏方法。
从上述图4至图9可以看出,在不同丢包率下,虽然在图4和图5中使用平均基本层冗余保护方法和使用本申请提供的方法,峰值性噪比增益接近,但是在实际丢包情况下,图6和图7中本申请提供的方法比平均基本层冗余保护方法的峰值性噪比增益高出约1dB。此外,结合申请人提交的专利名称为“可伸缩视频编码层间错误隐藏方法、编码器和系统”的专利申请中提及的错误隐藏方法,本申请提供的方法比平均基本层冗余保护方法的峰值性噪比增益高出约1.5~2dB。同时在图8和图9中,结合申请人提交的专利名称为“可伸缩视频编码层间错误隐藏方法、编码器和系统”的专利申请中提及的错误隐藏方法,本申请提供的方法比平均基本层冗余保护方法的峰值性噪比增益高出约4~6dB。
与上述方法实施例相对应,本申请实施例还公开一种编码器,结构示意图如图10所示,包括:获取单元11、最佳模式获取单元12、封装单元13和发送器14。其中:
获取单元11,用于获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式。其中:编码器获取的不同丢包率可以为预先设置在编码器中的丢包率,也可以通过网关从解码器中获取。丢包率的表达式为(pb,pe),pb为基本层丢包率,pe为增强层丢包率。获取单元11的具体实施过程请参阅上述方法实施例中的描述,对此不再加以阐述。
最佳模式获取单元12,用于计算每帧编码帧在不同丢包率下自身对应的每帧冗余帧模式下的失真和,获取每帧编码帧各个丢包率下对应的最佳冗余帧模式。封装单元13,用于将各帧编码帧的最佳冗余帧模式封装为冗余帧信息。发送器14,用于将所述冗余帧信息和原始SVC码流一同发送。
最佳模式获取单元12的结构示意图请参见图11,包括:端到端失真计算子单元121、码率代价值获取子单元122、失真和确定子单元123和最佳模式获取子单元124。其中:
ψn可以依据编码帧在整个帧内编码周期中的位置决定,具体为:
其中:L是帧内编码周期,即相邻两帧帧内编码帧之间的帧数;β是帧内刷新因子,取值为1/L;γ是与编码配置参数,取值与码流的帧内编码周期有关,如当码流的帧内编码周期为32时,γ的取值为0.8。
上述源失真和传输失真,可以通过递推方式计算像素的解码端重建值的一阶矩和二阶距获取,具体如下:
因此,源失真
传输失真
码率代价值获取子单元122,用于获取编码帧的总码率与拉格朗日参数的乘积,将乘积结果作为码率代价值。假设,编码帧的总码率为Rn,总码率Rn为基本层帧与增强层帧的码率之和。即其中: raten b为基本层码率,raten e为增强层码率,n表明编码帧为码流中的第n帧编码帧。
拉格朗日参数λ=(1-pn b(mb))λef,λef是信道传输无错情况下的拉格朗日参数。
失真和确定子单元123,用于将所述码率代价值和端到端失真之和作为编码帧在自身对应的冗余帧模式下的失真和。
最佳模式获取子单元124,用于选取编码帧在丢包率下自身对应的每个冗余帧模式下的失真和中数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为在该丢包率下编码帧的最佳冗余帧模式。前已述及,一个编码帧对应多个丢包率,在一个丢包率下编码帧对应一个最佳冗余帧模式因此,一个编码帧对应多个最佳冗余帧模式且最佳冗余帧模式与丢包率一一对应。
本申请实施例还公开一种容错SVC码流封装装置,结构示意图如图12所示,包括:接收器15、变更单元16和封装单元17。其中:
接收器15,用于接收所述冗余帧信息和原始SVC码流。
变更单元16,用于确定当前丢包率,获取所述原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧。其中:当前丢包率的确定为接收解码器发送的丢包率,将解码器发送的丢包率确定为当前丢包率。
上述编码器中的丢包率可以为预先设置在编码器中的丢包率,因此,编码器中的丢包率不能与当前丢包率完全相同,可以从预先设置的丢包率中选取数值最接近的丢包率作为当前丢包率。编码器中的丢包率还可以为从解码器中获取,由于丢包率实时变化导致与冗余帧信息所对应的各个丢包率不同,可以从冗余帧信息中选取与从解码端获取的丢包率最接近的丢包率作为当前丢包率。
上述确定需变更的编码帧是通过参考编码帧的最佳冗余帧模式确定,如编码帧的最佳冗余帧模式为{1,1},则表明该编码帧不需变更,否则,该编码帧需变更。当编码帧的最佳冗余帧模式为{2,1},表明需要对编码帧的基本层帧复制一次,将复制后的帧排列在原始的基本层帧后,不需要对增强层帧进行删除。当编码帧的最佳冗余帧模式为{2,0},表明需要对编码帧的基本层帧复制一次,将复制后的帧排列在原始的基本层帧后,删除增强层帧。
封装单元17,用于将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。
此外,一种可伸缩视频编码容错传输系统,包括:编码器18、容错SVC码流封装装置19和解码器20,结构示意图如图13所示,其中:
编码器18,用于获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式,计算每帧编码帧在不同丢包率下自身对应的每个冗余帧模式下的失真和,确定每帧编码帧在各个丢包率下对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息,将所述冗余帧信息和原始可伸缩视频编码SVC码流一同发送。编码器18的结构示意图可以参见图10和图11,图10和图11的具体描述请参阅编码器实施例中的具体描述,对此不再加以阐述。
容错SVC码流封装装置19,用于接收所述冗余帧信息和原始SVC码流,确定当前丢包率,获取所述原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧,并将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。容错SVC码流封装装置19的结构示意图可以参见图12,图10和图12的具体描述请参阅容错SVC码流封装装置实施例中的具体描述,对此不再加以阐述。
解码器20,用于接收所述容错SVC码流封装装置19发送的容错SVC码流,解码所述容错SVC码流。
上述系统实施例的步骤的具体实施请参阅方法实施例中的相关说明,对此不再加以阐述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明都是与其他实施例的不同之处,本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种可伸缩视频编码容错传输方法,其特征在于,包括:
编码器获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式,计算每帧编码帧在不同丢包率下自身对应的每个冗余帧模式下的失真和,获取每帧编码帧在各个丢包率下对应的最佳冗余帧模式,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息,其中所述编码器获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式包括:获取每帧编码帧的基本层码率和增强层码率;按照自然数排序,将1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合;分别从基本层帧的传输次数集合和增强层帧的传输次数集合中的任意选取一个数值,将选取的两个数值组合,组合的所有数值集合为对应编码帧的多个冗余帧模式;
编码器将所述冗余帧信息和原始可伸缩视频编码(SVC)码流一同发送;
容错SVC码流封装装置接收所述冗余帧信息和原始SVC码流,确定当前丢包率,获取所述原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧;
容错SVC码流封装装置将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。
2.根据权利要求1所述的可伸缩视频编码容错传输方法,其特征在于,按照自然数排序,将1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合包括:
针对任一编码帧,判断编码帧在码流序列中的位置l是否大于L/2,且δn是否大于T1,或者位置l是否大于2L/3,且δn是否大于T2,其中L为帧内编码周期,所述帧内编码周期是指相邻两帧帧内编码帧之间的帧数,所述位置l是指一个帧内编码周期的码流序列中的第l个编码帧,T1和T2是当位置l大于L/2以及2L/3时允许δn超过的阈值,δn为传输n帧编码帧时,修改后码流与原始码流的码率百分比;
4.根据权利要求1所述的可伸缩视频编码容错传输方法,其特征在于,计算第n帧编码帧在自身对应的冗余帧模式下的失真和包括:
计算第n帧编码帧在自身对应的冗余帧模式下的端到端失真,n为正整数;
获取第n帧编码帧的总码率与拉格朗日参数的乘积,将乘积结果作为码率代价值;
将所述码率代价值和端到端失真之和作为第n帧编码帧在自身对应的冗余帧模式下的失真和。
5.根据权利要求4所述的可伸缩视频编码容错传输方法,其特征在于,计算第n帧编码帧在自身对应的冗余帧模式下的端到端失真包括:
获取第n帧编码帧中第i个像素正确接收时的解码端预期重建值的一阶矩和二阶距,以及第i个像素未正确接收时的解码端预期重建值的一阶矩和二阶距,i为正整数;
6.根据权利要求5所述的可伸缩视频编码容错传输方法,其特征在于,获取第n帧编码帧在丢包率下对应的最佳冗余帧模式包括:
选取第n帧编码帧在丢包率下自身对应的每个冗余帧模式下的失真和中数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为在该丢包率下第n帧编码帧的最佳冗余帧模式。
7.根据权利要求6所述的可伸缩视频编码容错传输方法,其特征在于,将各帧编码帧的最佳冗余帧模式封装为冗余帧信息包括:
将任一编码帧自身在各个丢包率下的最佳冗余帧模式,按照丢包率大小顺序进行排列,将排序后的最佳冗余帧模式作为任一编码帧的整体最佳冗余帧模式;
将各帧编码帧的整体最佳冗余帧模式,按照原始SVC码流中编码帧的顺序封装为冗余帧信息。
8.一种编码器,其特征在于,包括:
获取单元,用于获取不同丢包率下每帧编码帧自身对应的多个冗余帧模式,所述多个冗余帧模式是指获取每帧编码帧的基本层码率和增强层码率;按照自然数排序,将1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合;分别从基本层帧的传输次数集合和增强层帧的传输次数集合中的任意选取一个数值,将选取的两个数值组合,组合的所有数值集合为对应编码帧的多个冗余帧模式;
最佳模式获取单元,用于计算每帧编码帧在不同丢包率下自身对应的每个冗余帧模式下的失真和,获取每帧编码帧在各个丢包率下对应的最佳冗余帧模式;
封装单元,用于将各帧编码帧的最佳冗余帧模式封装为冗余帧信息;
发送器,用于将所述冗余帧信息和原始SVC码流一同发送。
9.根据权利要求8所述的编码器,其特征在于,所述最佳模式获取单元包括:
端到端失真计算子单元,用于计算编码帧在自身对应的冗余帧模式下的端到端失真;
码率代价值获取子单元,用于获取编码帧的总码率与拉格朗日参数的乘积,将乘积结果作为码率代价值;
失真和确定子单元,用于将所述码率代价值和端到端失真之和作为编码帧在自身对应的冗余帧模式下的失真和;
最佳模式获取子单元,用于选取编码帧在丢包率下自身对应的每个冗余帧模式下的失真和中数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为在该丢包率下编码帧的最佳冗余帧模式。
10.一种容错SVC码流封装装置,其特征在于,包括:
接收器,用于接收所述冗余帧信息和原始SVC码流;
变更单元,用于确定当前丢包率,获取所述原始SVC码流中每帧编码帧在当前丢包率下对应的最佳冗余帧模式,确定需变更的编码帧,对每帧需变更的编码帧依据与自身对应的所述最佳冗余帧模式,复制编码帧的基本层帧和/或删除增强层帧,得到变更后的编码帧,其中所述最佳冗余帧模式是指选取第n帧编码帧在丢包率下自身对应的每个冗余帧模式下的失真和中数值最小的失真和,将数值最小的失真和对应的冗余帧模式作为在该丢包率下第n帧编码帧的最佳冗余帧模式,所述冗余帧模式是指获取每帧编码帧的基本层码率和增强层码率;按照自然数排序,将1直至增强层码率和基本层码率的比值的数值集合作为对应的编码帧的基本层帧的传输次数集合,将0和1的集合作为对应的编码帧的增强层帧的传输次数集合,分别从基本层帧的传输次数集合和增强层帧的传输次数集合中的任意选取一个数值,将选取的两个数值组合,组合的数值集合为冗余帧模式,所述冗余帧模式中第一个元素为基本层帧的传输次数,第二个元素为增强层帧的传输次数;
封装单元,用于将变更后的编码帧和未变更的编码帧按照原始SVC码流中编码帧的排序封装为容错SVC码流,所述未变更的编码帧为不需变更的编码帧。
11.一种可伸缩视频编码容错传输系统,包括解码器,其特征在于,还包括:如权利要求8或9所述的编码器和权利要求10所述的容错SVC码流封装装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110453067 CN102438152B (zh) | 2011-12-29 | 2011-12-29 | 可伸缩视频编码容错传输方法、编码器、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110453067 CN102438152B (zh) | 2011-12-29 | 2011-12-29 | 可伸缩视频编码容错传输方法、编码器、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102438152A CN102438152A (zh) | 2012-05-02 |
CN102438152B true CN102438152B (zh) | 2013-06-19 |
Family
ID=45986004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110453067 Active CN102438152B (zh) | 2011-12-29 | 2011-12-29 | 可伸缩视频编码容错传输方法、编码器、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102438152B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491380A (zh) * | 2013-07-29 | 2014-01-01 | 朱洪波 | 高灵活变尺寸块帧内预测编码 |
CN104751849B (zh) | 2013-12-31 | 2017-04-19 | 华为技术有限公司 | 语音频码流的解码方法及装置 |
CN104935944B (zh) * | 2014-03-18 | 2018-03-13 | 华为技术有限公司 | 一种视频数据编码、解码的方法和装置 |
CN104934035B (zh) | 2014-03-21 | 2017-09-26 | 华为技术有限公司 | 语音频码流的解码方法及装置 |
CN107181968B (zh) * | 2016-03-11 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种视频数据的冗余控制方法和装置 |
CN111641824B (zh) * | 2019-03-01 | 2022-08-05 | 杭州海康威视数字技术股份有限公司 | 视频倒放方法及装置 |
CN110890945B (zh) * | 2019-11-20 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、终端及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100679011B1 (ko) * | 2004-07-15 | 2007-02-05 | 삼성전자주식회사 | 기초 계층을 이용하는 스케일러블 비디오 코딩 방법 및 장치 |
CN101394555B (zh) * | 2008-10-24 | 2010-06-09 | 清华大学 | 适用于深空通信的高容错低延时的视频传输方法及装置 |
CN101478678B (zh) * | 2008-12-30 | 2011-06-01 | 西安交通大学 | 基于感兴趣区域运动补偿时域滤波方法 |
CN102036061B (zh) * | 2009-09-30 | 2012-11-21 | 华为技术有限公司 | 视频数据传输处理、发送处理方法、装置和网络系统 |
-
2011
- 2011-12-29 CN CN 201110453067 patent/CN102438152B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102438152A (zh) | 2012-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102438152B (zh) | 可伸缩视频编码容错传输方法、编码器、装置和系统 | |
US6920179B1 (en) | Method and apparatus for video transmission over a heterogeneous network using progressive video coding | |
Li et al. | Robust transmission of JPEG2000 encoded images over packet loss channels | |
CN101304537B (zh) | 3g-ip无线视频传输系统 | |
Zhao et al. | Joint error control and power allocation for video transmission over CDMA networks with multiuser detection | |
Appadwedula et al. | Joint source-channel matching for a wireless communications link | |
CN110740334A (zh) | 一种帧级别的应用层动态fec编码方法 | |
CN103139571A (zh) | 基于fec与wz编解码相结合的视频容错抗误码方法 | |
JP2005515697A (ja) | リード・ソロモン符号に基づいた前方誤り訂正を用いた不均一誤り保護 | |
CN111726635B (zh) | 一种基于滑窗bats码的低时延图像渐进传输方法 | |
Xu et al. | Adaptive FEC coding and cooperative relayed wireless image transmission | |
Iwaza et al. | Joint decoding of multiple-description network-coded data | |
CN106534873B (zh) | 基于小波域的分布式视频编码关键帧丢失错误保护方法 | |
Appadwedula et al. | Joint source channel matching for a wireless image transmission | |
CN113038126B (zh) | 基于帧预测神经网络的多描述视频编码方法和解码方法 | |
CN112565765B (zh) | 一种多点视频的分级编解码方法和传输装置 | |
CN102595142A (zh) | 一种电网全息数字地图视频编码方法及系统 | |
Soldani et al. | Multiple description coding versus transport layer FEC for resilient video transmission | |
Bais et al. | Unequal channel protection of multiple description codes for wireless broadcast applications | |
KR100877127B1 (ko) | 분산된 소스 코딩 기술들에 기초한 사이드-채널을 이용한예측 비디오 코덱의 견고성을 개선시키는 방법, 장치, 및시스템 | |
CN102158698B (zh) | 对h.264视频数据进行分层信道编码的方法和装置 | |
Nejati et al. | Wireless video transmission: A distortion-optimal approach | |
Chiang et al. | Robust video transmission over mixed IP-wireless channels using motion-compensated oversampled filterbanks | |
Hu et al. | An efficient joint dynamic detection technique for wireless transmission of JPEG2000 encoded images | |
Camiciotti et al. | Joint source-channel coding for 4G multimedia streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |