1.一种视频刷新方法,其特征在于,包括:
视频码流发送设备采用分层编码方式将视频图像编码成一个基本层和至少一个增强层,并向视频码流接收设备发送编码的视频图像,其中,所述分层编码的分级方式具体为按照分辨率分级进行分层,或按照质量分级进行分层,或按照帧率分级进行分层;
视频码流发送设备接收视频码流接收设备发送的关键数据申请消息,所述关键数据申请消息中包含分层信息,其中,所述分层信息具体为丢包分层的分辨率分级级数、或质量分级级数、或帧率分级级数,所述丢包分层为其中一个增强层;
所述视频码流发送设备依据各个分层之间的解码依赖关系对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,且对不需要依据所述分层信息表示的分层进行解码的分层不进行关键数据编码;
所述视频码流发送设备将所述编码得到的关键数据发送给所述视频码流接收设备。
2.根据权利要求1所述的视频刷新方法,其特征在于,所述关键数据申请消息为:多媒体控制协议中的视频快速刷新命令、或宏块组快速刷新命令、或宏块快速刷新命令、或宏块丢包消息、或图象丢包消息、或图象详细丢包消息;或者视频通信反馈信息协议中的图像丢包消息、或宏块组丢包消息;或者实时传输控制协议中的图像丢包消息、或条带丢包消息。
3.根据权利要求1所述的视频刷新方法,其特征在于,通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中原有消息的参数进行扩展后承载所述关键数据申请消息;或者通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的保留消息进行扩展后承载所述关键数据申请消息;或者通过新增多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的消息承载所述关键数据申请消息。
4.根据权利要求1所述的视频刷新方法,其特征在于,所述编码得到的关键数据包括:
关键编码数据、或者关键宏块编码数据、或者关键分层编码数据。
5.一种视频刷新装置,其特征在于,包括:
发送单元,用于在采用分层编码方式将视频图像编码成一个基本层和至少一个增强层后,向视频码流接收设备发送编码的视频图像,其中,所述分层编码的分级方式具体为按照分辨率分级进行分层,或按照质量分级进行分层,或按照帧率分级进行分层;
接收单元,用于接收视频码流接收设备发送的关键数据申请消息,所述关键数据申请消息中包含分层信息,其中,所述分层信息具体为丢包分层的分辨率分级级数、或质量分级级数、或帧率分级级数,所述丢包分层为其中一个增强层;
编码单元,用于依据各个分层之间的解码依赖关系对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,且对不需要依据所述分层信息表示的分层进行解码的分层不进行关键数据编码;
所述发送单元,还用于将所述编码得到的关键数据发送给所述视频码流接收设备。
6.根据权利要求5所述的视频刷新装置,其特征在于,所述编码单元还用于从所接收到的关键数据申请消息中获取所述分层信息表示的分层。
7.根据权利要求5所述的视频刷新装置,其特征在于,所述发送单元发送的关键数据包括:关键编码数据、或者关键宏块编码数据、或者关键分层编码数据。
8.一种视频刷新方法,其特征在于,包括:
视频码流接收设备接收视频码流发送设备发送的采用分层编码方式编码的视频图像,其中,所述分层编码的分级方式具体为按照分辨率分级进行分层,或按照质量分级进行分层,或按照帧率分级进行分层,所述编码的视频图像包括一个基本层和至少一个增强层;
视频码流接收设备生成关键数据申请消息,所述关键数据申请消息中包含分层信息,其中,所述分层信息具体为丢包分层的分辨率分级级数、或质量分级级数、或帧率分级级数,所述丢包为其中一个增强层;
所述视频码流接收设备向视频码流发送设备发送所述关键数据申请消息;
所述视频码流接收设备接收所述视频码流发送设备依据各个分层之间的解码依赖关系对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码得到的关键数据。
9.根据权利要求8所述视频刷新方法,其特征在于,所述生成关键数据申请消息为:在检测到丢包、或误码、或乱序时生成所述关键数据申请消息,或者周期性地生成所述关键数据申请消息。
10.根据权利要求8所述视频刷新方法,其特征在于,所述关键数据申请消息为:多媒体控制协议中的视频快速刷新命令、或宏块组快速刷新命令、或宏块快速刷新命令、或宏块丢包消息、或图象丢包消息、或图象详细丢包消息;或者视频通信反馈信息协议中的图像丢包消息、或宏块组丢包消息;或者实时传输控制协议中的图像丢包消息、或条带丢包消息。
11.根据权利要求8所述视频刷新方法,其特征在于,通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中原有消息的参数进行扩展后承载所述关键数据申请消息;或者通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的保留消息进行扩展后承载所述关键数据申请消息;或者通过新增多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的消息承载所述关键数据申请消息。
12.一种视频刷新装置,其特征在于,包括:
生成单元,用于在接收视频码流发送设备采用分层编码方式编码的视频图像之后,生成关键数据申请消息,所述关键数据申请消息中包含分层信息,其中,所述分层编码的分级方式具体为按照分辨率分级进行分层,或按照质量分级进行分层,或按照帧率分级进行分层,所述分层信息具体为丢包分层的分辨率分级级数、或质量分级级数、或帧率分级级数,所述丢包为其中一个增强层;
发送单元,用于向视频码流发送设备发送所述关键数据申请消息,以指示视频码流发送设备重新发送关键数据;
所述视频刷新装置,还用于接收所述视频码流发送设备依据各个分层之间的解码依赖关系对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码得到的关键数据。
13.根据权利要求12所述的视频刷新装置,其特征在于,所述生成单元在检测到丢包、或误码、或乱序时生成所述关键数据申请消息,或者周期性地生成并所述关键数据申请消息。
14.根据权利要求12所述的视频刷新装置,其特征在于,所述生成单元生成的关键数据申请消息为:多媒体控制协议中的视频快速刷新命令、或宏块组快速刷新命令、或宏块快速刷新命令、或宏块丢包消息、或图象丢包消息、或图象详细丢包消息;或者视频通信反馈信息协议中的图像丢包消息、或宏块组丢包消息;或者实时传输控制协议中的图像丢包消息、或条带丢包消息。
15.根据权利要求12所述的视频刷新装置,其特征在于,所述生成单元生成的关键数据申请消息为:通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中原有消息的参数进行扩展后承载所述关键数据申请消息;或者通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的保留消息进行扩展后承载所述关键数据申请消息;或者通过新增多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的消息承载所述关键数据申请消息。
16.一种视频刷新系统,其特征在于,包括:
视频码流发送设备采用分层编码方式将视频图像编码成一个基本层和至少一个增强层,并向视频码流接收设备发送编码的视频图像,其中,所述分层编码的分级方式具体为按照分辨率分级进行分层,或按照质量分级进行分层,或按照帧率分级进行分层;
视频码流接收设备,用于接收视频码流发送设备发送的视频码流,生成关键数据申请消息,所述关键数据申请消息中包含分层信息,其中,所述分层信息具体为丢包分层的分辨率分级级数、或质量分级级数、或帧率分级级数;并向视频码流发送设备发送所述关键数据申请消息;
视频码流发送设备,还用于接收所述关键数据申请消息,依据各个分层之间的解码依赖关系对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,且对不需要依据所述分层信息表示的分层进行解码的分层不进行关键数据编码;并将所述编码得到关键数据发送给所述视频码流接收设备。
17.根据权利要求16所述的视频刷新系统,其特征在于,所述视频码流接收设备检测到丢包、或误码、或乱序时生成并向视频码流发送设备发送所述关键数据申请消息,或者周期性地生成并向视频码流发送设备发送所述关键数据申请消息。
视频刷新方法、装置及系统\n技术领域\n[0001] 本发明涉及视频通信技术领域,尤其涉及视频刷新方法、装置及系统。\n背景技术\n[0002] 在标准视频编码框架中,当前帧参考其他视频帧进行预测编码的方法称作帧间预测编码,使用了帧间预测编码的编码帧称作P帧;没有参考任何其他视频帧的编码方法称作帧内预测编码,一帧图像内的全部区域只使用了帧内预测编码的编码帧称作I帧。\n[0003] 帧间预测编码可以有效降低视频图像之间的时间冗余,提高编码压缩效率。但是,帧间预测编码同时也会引入错误扩散的问题,例如:当某一帧发生丢包后,该丢失的数据包对应的编码帧无法经过正确解码获得重建图像,导致出现了错误帧;而后续的P帧图像由于参考到该错误帧,同样无法实现正常解码;这样一来,丢包引发的错误,一直从丢包帧开始扩散到后续的所有P帧,直至遇到I帧为止。从某种意义上讲,I帧属于关键帧的一种。\n[0004] 在现有技术中,本地发送设备在发送视频码流给远端接收设备过程中,当视频码流发生丢包或者错误的情况下,一般首先是由远端接收设备通过解码或者检查包序号的方式来发现,然后由远端接收设备通过指定命令通道,将关于“视频刷新”或者“图像丢包”的消息发送给本地发送设备。本地发送设备接收到该消息后,便执行I帧刷新,操作编码器对视频码流中发生丢包或者错误视频帧进行IDR(Instantaneous decoding refresh,解码立即刷新)帧的编码输出。IDR帧称作立即刷新帧,为I帧的一种。当远端接收设备的解码器接收到IDR帧后,会将发生丢包或错误所对应的参数集以及参考帧列表中的所有参考帧设置为无效,并利用IDR帧纠正丢包引发的错误。\n[0005] 在实现上述I帧刷新的过程中,发明人发现现有技术中至少存在如下问题:如果采用分层编码对视频进行编码,将视频编码成一个基本层和若干个增强层,这种情况下,由于远端发送设备发送的“视频刷新”或者“图像丢包”消息并 不能携带任何关于丢包码流的分层信息。因此,在分层编码的情况下,本地发送设备仍然无法获知是哪一层码流发生丢包,只能同时对所有分层(包括基本层和所有增强层)进行I帧刷新,这种I帧刷新方式造成需要传输的数据较大,对带宽带来较大的负荷。\n发明内容\n[0006] 本发明的实施例提供一种视频刷新方法、装置及系统,减少视频关键数据刷新时需要传输的数据,减少对带宽带来的负荷。\n[0007] 为达到上述目的,本发明的实施例采用如下技术方案:\n[0008] 一种视频刷新方法,包括:\n[0009] 接收视频码流接收设备发送的关键数据申请消息,所述关键数据申请消息中包含所申请的数据包分层信息;\n[0010] 对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码;\n[0011] 将所述编码得到的关键数据发送给所述视频码流接收设备。\n[0012] 一种视频刷新装置,其特征在于,包括:\n[0013] 接收单元,用于接收视频码流接收设备发送的关键数据申请消息,所述关键数据申请消息中包含所申请的数据包分层信息;\n[0014] 编码单元,用于对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码;\n[0015] 发送单元,用于将所述编码得到的关键数据发送给所述视频码流接收设备。\n[0016] 一种视频刷新方法,其特征在于,包括:\n[0017] 生成关键数据申请消息,所述关键数据申请消息中包含所申请的数据包分层信息;\n[0018] 向视频码流发送设备发送所述关键数据申请消息,以指示视频码流发送设备重新发送关键数据。\n[0019] 一种视频刷新装置,其特征在于,包括:\n[0020] 生成单元,用于生成关键数据申请消息,所述关键数据申请消息中包含所 申请的数据包分层信息;\n[0021] 发送单元,用于向视频码流发送设备发送所述关键数据申请消息,以指示视频码流发送设备重新发送关键数据。\n[0022] 一种视频刷新系统,其特征在于,包括:\n[0023] 视频码流接收设备,用于接收视频码流发送设备发送的视频码流,生成关键数据申请消息,所述关键数据申请消息中包含所申请的数据包分层信息;并向视频码流发送设备发送所述关键数据申请消息;\n[0024] 视频码流发送设备,用于接收所述关键数据申请消息,对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码;并将所述编码得到关键数据发送给所述视频码流接收设备。\n[0025] 本发明实施例提供的视频刷新方法、装置及系统,由于在关键数据申请消息中包含了分层信息,这样一来,在进行I帧刷新的时候可以只对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,而现有技术中需要对所有的分层进行关键数据编码;所以,采用本发明实施例提供的视频刷新方法、装置及系统,可以使得需要进行关键数据编码的分层层数比现有技术要少,可以使得进行I帧刷新时输出的IDR帧数据量较少,进而减少视频关键数据刷新时需要传输的数据,减少对带宽带来的负荷。\n附图说明\n[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0027] 图1为本发明实施例中视频刷新方法流程图;\n[0028] 图2为本发明实施例中视频刷新装置框图;\n[0029] 图3为本发明实施例中另一视频刷新方法流程图;\n[0030] 图4为本发明实施例中另一视频刷新装置框图;\n[0031] 图5为本发明实施例中视频刷新系统原理图;\n[0032] 图6为本发明实施例中具体运用的视频刷新系统拓扑图;\n[0033] 图7为本发明实施例1中采用方法一扩展后的命令解码示意图;\n[0034] 图8为本发明实施例1中采用方法二扩展后的命令解码示意图;\n[0035] 图9为本发明实施例1中视频刷新方法流程图;\n[0036] 图10为本发明实施例2中采用方法一扩展后的命令解码示意图;\n[0037] 图11为本发明实施例2中采用方法二扩展后的命令解码示意图。\n具体实施方式\n[0038] 分层编码是指将视频编码成一个基本层和若干个增强层。基本层能够独立解码,用于提供一个基本的但是可以接受的视频质量;增强层的解码一般依赖于基本层,增强层能够提供比基本层更好的视频质量。分层编码主要包括以下三类分级方式:\n[0039] (1)帧率分级:基本层使用原始图像,以较低的输出帧率进行编码,获得较低的流畅度。而增强层则对基本层未进行编码的图像帧进行编码,在基本层解码图像的基础上提高其显示帧率。\n[0040] (2)分辨率分级:基本层使用由原始图像进行亚采样所得较低分辨率的图像进行编码,获得较低的分辨率。而增强层则由原始分辨率图像进行预测编码,在基本层解码图像的基础上提高其分辨率。增强层的编码可以参考基本层重建图像的插值图像、也可以参考基本层宏块的运动矢量、重建残差系数。\n[0041] (3)质量分级:基本层使用原始图像,以较高的压缩率(即较大的量化步长、较低的编码带宽)进行编码,获得较低的清晰度;而增强层则参考基本层的重建图像,以较高的图像质量(即较小的量化步长、较高的编码带宽)进行编码,在基本层解码图像的基础上提高其清晰度。\n[0042] 对于采用分层编码的视频通信方案,为了减少视频关键数据刷新时需要传输的数据,减少对带宽带来的负荷,本发明实施例提供一种视频刷新方法,如图1所示,所述方法包括:\n[0043] 101、视频码流接收设备发出一个关键数据申请消息,在所述关键数据申请 消息中包含所申请的数据包对应的分层信息。\n[0044] 102、本发明实施例中的视频码流发送设备在接收到所述关键数据申请消息后,对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,而对其他不需要依据所述分层信息表示的分层进行解码的分层则不进行关键数据编码。\n[0045] 103、将编码所得到的关键数据发送给所述视频码流接收设备,以便视频码流接收设备根据该关键数据进行相应处理。\n[0046] 本发明实施例还提供一种视频刷新装置,如图2所示,所述装置包括:接收单元\n21、编码单元22、发送单元23。\n[0047] 其中,接收单元21用于接收视频码流接收设备发送的关键数据申请消息,所述关键数据申请消息中包含所申请的数据包对应的分层信息;编码单元22用于根据所述分层信息,对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,而对其他不需要依据所述分层信息表示的分层进行解码的分层则不进行关键数据编码;发送单元23用于将编码所得到的关键数据发送给所述视频码流接收设备,以便视频码流接收设备根据该关键数据进行相应处理。\n[0048] 为了能够准确对相应的分层进行编码,本发明实施例中所述编码单元22还用于从所接收到的关键数据申请消息中获取所述分层信息表示的分层。\n[0049] 本发明实施例中的分层信息根据具体的分层编码方式不同可有所不同,如:视频图像可以按照帧率分级、分辨率分级、或者质量分级进行分层,其对应的分层信息可以分别为:不同帧率的分层、不同分辨率的分层、不同质量的分层。\n[0050] 所述接收单元21接收到的关键数据申请消息为:多媒体控制协议中的视频快速刷新命令、或宏块组快速刷新命令、或宏块快速刷新命令、或宏块丢包消息、或图象丢包消息、或图象详细丢包消息;或者视频通信反馈信息协议中的图像丢包消息、或宏块组丢包消息;或者实时传输控制协议中的图像丢包消息、或条带丢包消息。\n[0051] 为了承载上述关键数据申请消息,本发明实施例可以采用多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议进行承载,具体包括如下 三种实现方式:\n[0052] 第一、通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中原有消息的参数进行扩展后承载所述关键数据申请消息。\n[0053] 第二、通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的保留消息进行扩展后承载所述关键数据申请消息。\n[0054] 第三、通过新增多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的消息承载所述关键数据申请消息。\n[0055] 本发明实施例还提供一种视频刷新方法,如图5所示,包括:\n[0056] 301、在需要请求视频码流发送设备重新发送关键数据时,生成关键数据申请消息,所述关键数据申请消息中包含所申请的数据包分层信息,这里的分层信息主要是指需要重新发送的数据对应的分层。\n[0057] 一般情况下,在检测到丢包、或误码、或乱序时,表示关键数据出现了不正确的现象,此时需要向视频码流发送设备发送所述关键数据申请消息;或者周期性地向视频码流发送设备发送所述关键数据申请消息。\n[0058] 302、向视频码流发送设备发送关键数据申请消息,以指示视频码流发送设备重新发送关键数据。\n[0059] 本发明实施例中所述关键数据申请消息的实现方式包括但不限于如下方式:多媒体控制协议中的视频快速刷新命令、或宏块组快速刷新命令、或宏块快速刷新命令、或宏块丢包消息、或图象丢包消息、或图象详细丢包消息;或者视频通信反馈信息协议中的图像丢包消息、或宏块组丢包消息;或者实时传输控制协议中的图像丢包消息、或条带丢包消息。\n[0060] 本发明实施例还提供一种视频刷新装置,如图4所示,所述视频刷新装置包括生成单元41和发送单元42。\n[0061] 在需要请求视频码流发送设备重新发送关键数据时,生成单元41用于生成关键数据申请消息,所述关键数据申请消息中包含所申请的数据包分层信息;这里的分层信息主要是指需要重新发送的数据对应的分层。发送单元42用于向视频码流发送设备发送所述关键数据申请消息,以指示视频码流发送设备重新发送关键数据。\n[0062] 本发明实施例中所述发送单元42发送的关键数据申请消息可以采用但不限于如下方式:多媒体控制协议中的视频快速刷新命令、或宏块组快速刷新命令、或宏块快速刷新命令、或宏块丢包消息、或图象丢包消息、或图象详细丢包消息;或者视频通信反馈信息协议中的图像丢包消息、或宏块组丢包消息;或者实时传输控制协议中的图像丢包消息、或条带丢包消息。\n[0063] 在不同的通信系统中,由于采用的通信协议不一样,关键数据申请消息可以采用不同的协议进行承载,如:多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议等。具体而言,包括但不限于如下承载方式:\n[0064] 第一、通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中原有消息的参数进行扩展后承载所述关键数据申请消息。\n[0065] 第二、通过对多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的保留消息进行扩展后承载所述关键数据申请消息。\n[0066] 第三、通过新增多媒体控制协议、或者视频通信反馈信息协议、或者实时传输控制协议中的消息承载所述关键数据申请消息。\n[0067] 本发明实施例还提供一种视频刷新系统,如图5所示,所述系统包括:视频码流发送设备51、视频码流接收设备52。\n[0068] 其中,视频码流发送设备51将需要传输的视频码流发送给视频码流接收设备52;\n所述视频码流接收设备52用于接收视频码流发送设备51发送的视频码流,并在一定条件下生成关键数据申请消息并向视频码流发送设备51发送关键数据申请消息,所述关键数据申请消息中包含所申请的数据包对应的分层信息。本发明实施例中发送关键数据申请消息的一定条件可以包括但不限于如下条件:检测到丢包、或误码、或乱序;或者本发明实施例中可以周期性地生成并向视频码流发送设备发送所述关键数据申请消息。\n[0069] 所述视频码流发送设备51用于接收所述关键数据申请消息,对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码;并将编码所得到的关键数据发送给所述视频码流接收设备52,以便视频码流接收设备52根据该关键数据进行相应处理。\n[0070] 具体而言,上述视频码流接收设备52可以通过解码或者检查包序号发现视 频码流中存在丢包。\n[0071] 本发明实施例提供的视频刷新方法、装置及系统,由于在关键数据申请消息中包含了所申请的数据包对应的分层信息,这样一来,在进行I帧刷新的时候可以只对所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,而现有技术中需要对所有的分层进行关键数据编码;所以,采用本发明实施例提供的视频关键数据的刷新方法、装置及系统,可以使得需要进行关键数据编码的分层层数比现有技术要少,可以使得进行I帧刷新时输出的IDR帧的数据量较少,进而减少视频关键数据刷新时需要传输的数据,减少对带宽带来的负荷。\n[0072] 本发明实施例的应用场景具体可以如图6所示,假设本地终端T0(视频码流发送设备)与远端终端T1、T2、T3(视频码流接收设备)进行视频会议;并且本地终端T0对本地图像采用分层编码的方案,具体包括一路基本层Layer1和两路增强层Layer2、Layer3;\n各层的参考关系为Layer2参考Layer1,Layer3参考Layer2。\n[0073] 本地终端T0经过MCU(Multipoint control unit,多点控制单元)向T1、T2、T3转发各自所需的分层码流,如图6所示。假设远端终端T3发现Layer2出现丢包,采用本发明的提供的方法进行的处理为:远端终端T3向本地终端T0发送关键数据申请消息,并且在关键数据申请消息中把Layer2的分层信息反馈给本地终端T0;T0依据Layer1、Layer2、Layer3之间的解码依赖关系,针对Layer2、Layer3进行关键数据编码,并且将编码得到的关键数据发送给远端终端T3,以便进行I帧刷新,对于Layer1不执行任何操作。\n[0074] 当然,特殊情况下,如果丢包发生在分层编码转码到非分层编码的码流中如SVC(Scalable video coding,分级视频编码)转码到AVC(Advanced videocoding,高级视频编码)的码流,由于解码器无法获取分层信息,此时本地终端需要对所有层都进行I帧刷新。\n[0075] 通过本发明提供的方法,在个别分层发生丢包的情况下,解码端能够将哪些图层发生丢包的信息反馈给编码端;编码端可以只对丢包分层和解码依赖到丢包分层的其他分层进行I帧刷新,避免因对所有分层进行I帧刷新而造成需 要发送的数据量过大,可减少对带宽带来的负荷;并且在带宽有限的情况下有效避免编码图像质量严重下降的问题;本发明实施例提供的方法对于那些本来没有丢包的分层码流不会产生任何影响。\n[0076] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0077] 实施例1:\n[0078] 本发明实施例的应用场景为:视频码流发送设备和视频码流接收设备之间通过H.245协议的消息进行通信,其中的H.245为多媒体控制协议(Controlprotocol for multimedia communication)。在ITU-T(国际电联)公布的建议中,H.323协议族是下一代多媒体会议技术和设备的最重要标准,它规定了不同厂商的设备终端在LAN(局域网)、Internet(互联网)等上的音频、视频以及T.120数据的各种结合形式相互通信所要求的工作模式。其中包括H.225、H.245等。其中H.245是H.323多媒体通信体系中的控制命令协议。\n[0079] MultimediaSystemControlMessage为H.245协议中定义的最上层系统控制消息,在现有技术中该消息具体见下表:\n[0080] \n[0081] 通过上表可以看出,RequestMessage(请求消息)、ResponseMessage(响应消息)、CommandMessage(命令消息)、以及IndicationMessage(指示消息) 都是MultimediaSystemControlMessage的可选项之一。\n[0082] 其中,上述CommandMessage的可选项之一包括MiscellaneousCommand(混合命令),通过MiscellaneousCommand能够实现如下命令:videoFastUpdatePicture(视频快速刷新命令)、videoFastUpdateGOB(宏块组快速刷新命令)、videoFastUpdateMB(宏块快速刷新命令)、videoBadMBs(宏块丢包消息)、lostPicture(图象丢包消息)、lostPartialPicture(图象详细丢包消息),上述各命令可作为在丢包的环境下,执行I帧申请的消息。但是以上命令,要么不能携带参数,要么只能携带丢包的帧序号、图像区域的相关参数,均没有携带丢包码流的分层信息。因此,H.245的标准命令消息无法反馈丢包码流的分层信息。\n[0083] 对于视频码流发送设备和视频码流接收设备之间通过H.245协议的命令消息进行通信情况,为了使得视频码流接收设备返回的命令消息能够携带分层信息,本发明实施例首先需要扩展H.245,以便指示分层信息。\n[0084] 本发明实施例的对H.245的扩展包括但不限于如下方法:\n[0085] 方法一:在H.245原有可用于I帧申请的命令消息的基础上,进行参数的扩展。具体而言为在原有MiscellaneousCommand消息的基础上添加如下参数:dependency_id(图层的分辨率分级级数)、quality_id(图层的质量分级级数)、temporal_id(图层的帧率分级级数)。本发明实施例以MiscellaneousCommand消息中的其中六种消息为例进行说明,他们分别是:videoFastUpdatePicture(视频快速刷新命令)、videoFastUpdateGOB(宏块组快速刷新命令)、videoFastUpdateMB(宏块快速刷新命令)、videoBadMBs(宏块丢包消息)、lostPicture(图象丢包消息)、lostPartialPicture(图象详细丢包消息),扩展之后MiscellaneousCommand具体如下表:\n[0086] \n[0087] \n[0088] \n[0089] 上表中下划线标出的参数为扩展后新增的参数,其对应的解析过程如图7所示,首先需要对MiscellaneousCommand消息进行消息类型的判断,在得出类型之后可以分别对上表中MiscellaneousCommand消息的各种不同的消息进行解析,从图7中可以看出在最后解析结果中都包含分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0090] 方法二:使用H.245的非标消息(相当于保留消息),进行消息类型的扩展,添加“视频快速刷新命令”或“图象丢包消息”,所添加的“视频快速刷新命令”或“图象丢包消息”中携带他有相关图层分层信息参数。具体的分层信息参数可以包括dependency_id(图层的分辨率分级级数)、或quality_id(图层的质量分级级数)、或temporal_id(图层的帧率分级级数)。\n[0091] 在H.245的最 上层 系统 控制 消息MultimediaSystemControlMessage 中,RequestMessage(请求消息)、ResponseMessage(响应消息)、CommandMessage(命令消息)、IndicationMessage(指示消息)的可选项中均包括NonStandardMessage(非标消息)。因此,可以使用NonStandardMessage分别扩展相应的消息类型,现有H.245协议中NonStandardMessage定义如下表:\n[0092] \n[0093] NonStandardParameter定义如下表:\n[0094] \n[0095] 其 中 上 述 NonStandardParameter 和NonStandardMessage 中 所 包 含 的NonStandardIdentifier用于标识扩展的消息;而OCTET STRING用于填充具体的消息内容。\n[0096] 本实施例使用CommandMessage_SVC标识扩展的用于分层编码的控制消息,即command.nonStandar.nonStandardData.nonStandardIdentifier等 于 CommandMessage_SVC,command.nonStandar.nonStandardData.data用于填充CommandMessage_SVC的消息内容。具体定义如下:\n[0097] \n[0098] 上表中videoFastUpdatePicture_SVC为“针对分层码流的视频快速更新指令”,lostPicture_SVC为“针对分层码流的图像丢包消息”,均包含了相关图层的分层信息。其对应的解析过程如图8所示,首先需要对分层编码的命令消息 进行消息类型的判断,在得出类型之后可以分别对上表中分层编码的命令消息的各种不同的消息进行解析,从图8中可以看出上表中的两种消息在最后解析结果中都包含分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0099] 除了上述两种方法以外,还可以在H.245协议中新增消息,并在新增的消息中设置分辨率分级级数、或者质量分级级数、或者帧率分级级数,以便携带分层信息。\n[0100] 在对H.245协议进行扩展之后,本发明实施例提供的视频刷新方法,如图9所示,所述方法包括:\n[0101] 901、视频码流接收设备生成关键数据申请消息,所述关键数据申请消息中包含所申请的数据包对应的分层信息。本实施例中的关键数据申请消息为上述H.245协议扩展后的消息,以便携带分层信息,具体而言可以选择在原有消息基础上进行扩展,也可以对H.245的非标消息扩展,也可以新增H.245协议消息,以使得扩展后的消息包括分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0102] 902、视频码流接收设备向视频码流发送设备发送所述关键数据申请消息。\n[0103] 本发明实施例并不对发出关键数据申请消息的条件进行限制,具体实施时,视频码流接收设备可以周期性地向视频码流发送设备发出所述关键数据申请消息,如每隔5分钟、或者10分钟发出一个关键数据申请消息;也可在检测到关键数据异常的时候发出所述关键数据申请消息,如:检测到丢包、或误码、或乱序时,向视频码流发送设备发送所述关键数据申请消息。\n[0104] 903、视频码流发送设备则接收到所述关键数据申请消息后,依据所述关键数据申请消息中的分层信息确认需要进行关键数据编码的分层。\n[0105] 904、视频码流发送设备对视频图像中所述分层信息表示的分层、以及需要依据所述分层信息表示的分层进行解码的分层进行关键数据编码,而对其他不需要依据所述分层信息表示的分层进行解码的分层则不进行关键数据编码。\n[0106] 905、视频码流发送设备将编码所得到的关键数据发送给所述视频码流接收设备,进行I帧刷新,以便视频码流接收设备根据该关键数据进行相应处理。本实施例的相应处理包括关键数据的错误纠正、关键数据的定时更新等等。\n[0107] 实施例2:\n[0108] 本发明实施例的应用场景为:视频码流发送设备和视频码流接收设备之间通过H.271协议的消息进行通信,其中的H.271协议为视频通信反馈信息协议(H.Video back-channel messages for conveyance of status informationand requests from a video receiver to a video sender),专门用于视频接收设备经过反馈信息通道,向视频发送设备传送状态信息和指令要求,能够兼用于H.261、H.263、H.264视频协议。\n[0109] H.271能够实现的消息类型和对应的负载类型,如下表所示。\n[0110] \n payloadType 消息/指令 \n 0 一帧或多帧没有检测到的码流错误的图像 \n 1 一帧或多帧完全或部分丢失的图像 \n 2 完全或部分丢失的一组宏块(属于同一帧图像) \n 3 一个参数集的CRC校验码 \n 4 同一类型的所有参数集的CRC校验码 \n 5 重置码流发送设备的码流缓存 \n >5 保留由ITU-T将来使用 \n[0111] 在现有的H.271语法结构具体的丢包消息包括如下两种:\n[0112] (1)图像丢包消息(payload=1),可以通过参数ref_pic_id、delta_ref_pic_id获得发生丢包的起始图像帧号、总帧数。\n[0113] (2)宏块组丢包消息(payload=2),可以通过参数ref_pic_id、first_blk_lost、num_blks_lost_minus1、top_left_blk、bottom_right_blk获得发生丢包的图像帧号、图像区域。\n[0114] 以上两种消息均可作为在丢包的环境下执行I帧申请的消息。但是以上这些反馈消息,均没有携带参数指示丢包码流的分层信息,因此,H.271的标准消息类型同样无法反馈丢包码流的分层信息。\n[0115] 对于视频码流发送设备和视频码流接收设备之间通过H.271协议的消息进行通信情况,为了使得视频码流接收设备返回的消息能够携带分层信息,本发 明实施例首先需要扩展H.271,以便指示分层信息。\n[0116] 本发明实施例的对H.271的扩展包括但不限于如下方法:\n[0117] 方法一:在H.271原有可用于I帧申请的反馈消息的基础上,进行参数的扩展。也就是为图像丢包消息(payload=1)和宏块组丢包消息(payload=2)进行参数扩展,在消息末尾添加上参数dependency_id(图层的分辨率分级级数)、quality_id(图层的质量分级级数)、temporal_id(图层的帧率分级级数)。\n[0118] 经过参数扩展后的H.271的消息语法结构,如下表所示:\n[0119] \n msg_payload(payloadType,payloadSize){ 描述符 \n if(payloadType<=4) \n ref_pic_id u(32) \n if(payloadType==0){ \n num_ref_pics_minus1 ue(v) \n for(i=1;i<=num_ref_pics_minus1;i++) \n good_ref_pi c_id[i] u(32) \n }elseif(payloadType==1) \n delta_ref_pic_id ue(v) \n else if(payloadType==2){ \n data_partition_idc ue(v) \n run_length_flag u(1) \n if(run_length_flag){ \n first_blk_lost ue(v) \n num_blks_lost_minus1 ue(v) \n }else{ \n top_left_blk ue(v) \n bottom_right_blk ue(v) \n } \n}else if((payloadType==3)||(payloadType==4)){ \n[0120] \n param_set_type ue(v) \n param_set_crc u(16) \n if(payloadType==3) \n param_set_id ue(v) \n } \n /*新添加的语法参数,用于指示丢包码流的分层信息*/ \n if((payloadType==1)||(payloadType==2)){ \n lost_layer_info_idc/*是否在码流中写入丢包的分层信息*/ u(1) \n if(lost_layer_info_idc){ \n lost_layers_minus1/*发生丢包的图层数减1*/ ue(v) \n for(i=1;i<=lost_layers_minus1;i++){ \n dependency_id[i]/*丢包图层的分辨率分级级数*/ ue(v) \n quality_id[i]/*丢包图层的质量分级级数*/ ue(v) \n temporal_id[i]/*丢包图层的帧率分级级数*/ ue(v) \n } \n } \n } \n stop_one_bit/*equal to 1*/ f(1) \n while(!byte_aligned()) \n alignment_zero_bit/*equal to 0*/ f(1) \n } \n[0121] 扩展后新增的参数包括dependency_id、或者quality_id、或者temporal_id,其对应的解析过程如图10所示,首先需要进行消息类型的判断,在得到消息类型后可以对该消息进行解析,具体各种不同的消息在最后解析结果参见图10,在解析结果中中都包含分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0122] 方法二:使用H.271的保留消息,进行反馈消息类型的扩展,添加“图象 丢包消息”并在该“图象丢包消息”携带相关图层分层信息参数。具体的分层信息参数包括dependency_id(图层的分辨率分级级数)、或者quality_id(图层的质量分级级数)、或者temporal_id(图层的帧率分级级数)。\n[0123] H.271中对于(payloadType>5)的消息类型都是保留且未作使用的,下面以使用payloadType=6为例,说明如何通过保留消息类型,扩展携带相关图层分层信息参数的“图象丢包消息”。经过消息类型扩展后的H.271的消息语法结构,如下表所示。\n[0124] \n msg_payload(payloadType,payloadSize){ 描述符 \n if((payloadType<=4)||(payloadType==6)) \n ref_pic_id u(32) \n if(payloadType==0){ \n num_ref_pics_minus1 ue(v) \n for(i=1;i<=num_ref_pics_minus1;i++) \n good_ref_pic_id[i] u(32) \n }else if(payloadType==1) \n delta_ref_pic_id ue(v) \n else if(payloadType==2){ \n data_partition_idc ue(v) \n run_length_flag u(1) \n if(run_length_flag){ \n first_blk_lost ue(v) \n num_blks_lost_minus1 ue(v) \n }else{ \n top_left_blk ue(v) \n bottom_right_blk ue(v) \n } \n }else if((payloadType==3)||(payloadType==4)){ \n[0125] \n param_set_type ue(v) \n param_set_crc u(16) \n if(payloadType==3) \n param_set_id ue(v) \n } \n /*新添加的语法参数,用于指示丢包码流的分层信息*/ \n if(payloadType==6){ \n lost_layers_minus1/*发生丢包的图层数减1*/ ue(v) \n for(i=1;i<=lost_layers_minus1;i++){ \n dependency_id[i]/*丢包图层的分辨率分级级数*/ ue(v) \n quality_id[i]/*丢包图层的质量分级级数*/ ue(v) \n temporal_id[i]/*丢包图层的帧率分级级数*/ ue(v) \n } \n } \n stop_one_bit/*equal to 1*/ f(1) \n while(!byt e_aligned()) \n alignment_zero_bit/*equal to 0*/ f(1) \n } \n[0126] 对于payloadType=6的保留消息扩展后新增的参数包括dependency_id、或者quality_id、或者temporal_id,其对应的解析过程如图11所示,首先需要判断消息类型,在得出消息类型后对消息进行解析,从图11中可以看出各种不同类型的消息在最后解析结果中都包含分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0127] 除了上述两种方法以外,还可以在H.271协议中新增消息,并在新增的消息中设置分辨率分级级数、或者质量分级级数、或者帧率分级级数,以便携带分层信息。\n[0128] 在对H.271协议进行扩展之后,本发明实施例提供的视频刷新方法与图9 的过程相似,不同之处在于本发明实施例中的关键数据申请消息为上述H.271协议扩展后的消息,以便携带分层信息,具体而言可以选择在原有消息基础上进行扩展,也可以对H.271的保留消息扩展,也可以新增H.271协议消息,以使得扩展后的消息包括分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0129] 实施例3:\n[0130] 本发明实施例的应用场景为:视频码流发送设备和视频码流接收设备之间通过实时传输控制协议(RTCP,Realtime transport control protocol)的消息进行通信,其中实时传输控制协议负责管理传输质量,在当前应用进程之间交换控制信息。在RTP(Realtime transport protocol,实时传输协议)会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计信息。\n[0131] 按照RFC4585定义,RTCP提供以下几种负载层和应用层的反馈信息类型。\n[0132] \n FMT 消息 \n 0 保留 \n 1 图像丢包消息 \n 2 Slice丢包消息 \n 3 图像正确解码消息(指示可用的参考帧) \n 4-14 保留 \n 15 应用层反馈消息 \n 16-30 保留 \n 31 保留用作序列号的扩展 \n[0133] 其中,图像丢包消息(FMT=1)是没有携带参数的,即FCI(反馈消息内容)为空;\nSlice(条带)丢包消息(FMT=2)携带了相关参数指示丢包的帧序号和图像区域(发生丢包的起始宏块号和宏块数),FCI的结构如下。\n[0134] \n[0135] \n[0136] 图像丢包消息(FMT=1)和Slice丢包消息(FMT=2)均可作为在丢包的环境下执行I帧申请的消息。但是以上这些反馈消息,均没有携带参数指示丢包码流的分层信息,因此,RTCP的标准消息类型同样无法反馈丢包码流的分层信息。\n[0137] 对于视频码流发送设备和视频码流接收设备之间通过RTCP协议的消息进行通信情况,为了使得视频码流接收设备返回的消息能够携带分层信息,本发明实施例首先需要扩展RTCP,以便指示分层信息。\n[0138] 本发明实施例的对RTCP的扩展包括但不限于如下方法:\n[0139] 方法一:在RTCP原有可用于I帧申请的反馈消息类型的基础上,进行参数的扩展。\n也就是为图像丢包消息(FMT=1)和Slice丢包消息(FMT=2)进行参数扩展,在原有FCI的末尾添加上参数dependency_id(图层的分辨率分级级数)、或者quality_id(图层的质量分级级数)、或者temporal_id(图层的帧率分级级数)。\n[0140] 经过参数扩展后的图像丢包消息(FMT=1)的FCI结构如下所示。\n[0141] \n[0142] 经过参数扩展后的Slice丢包消息(FMT=2)的FCI结构如下所示。\n[0143] \n[0144] \n[0145] 方法二:使用RTCP保留消息,进行消息的扩展,添加“图象丢包消息”,该“图象丢包消息”中携带有相关图层分层信息参数。具体而言,分层信息参数包括dependency_id(图层的分辨率分级级数)、或者quality_id(图层的质量分级级数)、或者temporal_id(图层的帧率分级级数)。\n[0146] RTCP中对于(FMT=4-14)范围的负载层反馈消息类型,都是保留且未作使用的。\n下面以使用(FMT=14)为例,说明如何通过RTCP保留的反馈消息类型,扩展携带相关图层分层信息参数的“图象丢包消息”。新扩展的图像丢包消息(FMT=14)的FCI结构,如下所示。\n[0147] \n[0148] 除了上述两种方法以外,还可以在RTCP协议中新增消息,并在新增的消息中设置分辨率分级级数、或者质量分级级数、或者帧率分级级数,以便携带分层信息。\n[0149] 在对RTCP协议进行扩展之后,本发明实施例提供的视频刷新方法与图9的过程相似,不同之处在于本发明实施例中的关键数据申请消息为上述RTCP协议扩展后的消息,以便携带分层信息,具体而言可以选择在原有消息基础上进行扩展,也可以对RTCP的保留消息扩展,也可以新增RTCP协议消息,以使得扩展后的消息包括分辨率分级级数、或者质量分级级数、或者帧率分级级数。\n[0150] 本发明实施例主要用于视频通信技术领域,例如视频会议系统、视频通话技术等等。\n[0151] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或 者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。\n[0152] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
法律信息
- 2020-06-23
未缴年费专利权终止
IPC(主分类): H04N 19/107
专利号: ZL 201010222359.5
申请日: 2010.07.09
授权公告日: 2015.11.25
- 2018-01-23
专利权的转移
登记生效日: 2018.01.04
专利权人由深圳市智通天下科技服务有限公司变更为深圳市前海滕翔科技信息有限公司
地址由518053 广东省深圳市前海深港合作区前湾一路1号A栋201室变更为518053 广东省深圳市前海深港合作区前湾一路鲤鱼门街一号前海深港合作区管理局综合办公楼A栋201室
- 2017-09-15
专利权的转移
登记生效日: 2017.08.25
专利权人由华为终端有限公司变更为深圳市智通天下科技服务有限公司
地址由518129 广东省深圳市龙岗区坂田华为基地B区2号楼变更为518053 广东省深圳市前海深港合作区前湾一路1号A栋201室
- 2015-11-25
- 2012-07-11
实质审查的生效
IPC(主分类): H04N 21/238
专利申请号: 201010222359.5
申请日: 2010.07.09
- 2012-01-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-03-25
|
2008-10-29
| | |
2
| |
2008-04-02
|
2006-09-27
| | |
3
| |
2009-02-18
|
2007-08-16
| | |
4
| |
2008-06-04
|
2006-11-22
| | |
5
| |
2007-07-18
|
2006-01-10
| | |
6
| |
2008-04-23
|
2006-10-16
| | |
7
| |
2005-03-23
|
2004-09-03
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |