视频数据优先级确定方法、装置和系统 【技术领域】
本发明涉及视频压缩编码技术,特别涉及一种视频数据优先级确定方法、装置和系统。
背景技术
视频数据在无线网络和有线网络中的实时传送是现代通信技术中重要的部分。视频传输的数据量大,对时延,抖动以及数据差错或丢失敏感,差错数据对解码后的重构图像的质量会有较长一段时间的影响,不同的数据差错或丢失对视频重构质量的影响程度是有很大差别的。为了达到客户端观看视频序列的QoE(Quality of Experience体验质量),要求传输网络具有较高的传输带宽,高的可靠性以及小的时延。实际网络由于网络带宽限制和无线网络的信道质量较差,都会引起视频数据在传输中丢失或误码,从而引起客户端视频质量下降。
为了提升客户端的QoE,经常采用FEC(forward error correction前向纠错)和RET(retransmition重传)来对误码或者丢包进行恢复,FEC和RET都会不同程度的增加传送的数据量,从而增加网络的开销。为了在有限的带宽条件下,最大化的提高客户端QoE,需要根据不同的数据对重构序列的影响程度不同,将传输数据划分为多个优先级,对不同的优先级数据采用不同的错误恢复策略,达到网络开销和客户端QoE之间的平衡。
现有的视频数据优先级划分方法是通过计算每个数据包对整个GOP(Group of picture图像组)质量的影响情况来计算数据的优先级,基本步骤如下:
1、对每个slice(条带)的数据进行封装,假设第i个slice数据封装了Ni个数据包;
2、计算每个slice中的每个数据包丢失对视频序列的质量影响:
a、丢掉第i个slice中的第j个数据包,解码视频序列;
b、计算丢包解码后,丢失数据包所在GOP的总的PSNR(peaksignal-noise ratio峰值信噪比);
最后根据PSNR确定该包的重要性,PSNR值越小,该数据包越重要。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺点:现有的视频数据优先级划分方法需要计算PSNR,导致该方法实现复杂度较高,对数据封装大小的依赖较强。
【发明内容】
本发明实施例提供一种视频数据优先级确定方法、装置和系统,以有效提高计算复杂度。
为解决上述技术问题,本发明实施例提供一种视频数据优先级确定方法,该方法包括:
获得视频数据中不同编码预测模式的统计信息,所述视频数据是以条带为单位的视频数据,或以帧为单位的视频数据,或以场为单位的视频数据;
根据所述不同编码预测模式的统计信息确定所述视频数据的优先级。
相应地,本发明实施例还提供一种视频数据优先级确定装置,该装置包括:
编码预测模式获取模块,用于获得视频数据中不同编码预测模式的统计信息,所述视频数据是以条带为单位的视频数据,或以帧为单位的视频数据,或以场为单位的视频数据;
优先级确定模块,用于根据所述不同编码预测模式的统计信息确定所述视频数据的优先级。
相应地,本发明实施例还提供一种视频数据编码系统,该系统包括:
编码模块,用于生成视频数据码流,所述视频数据是以条带为单位的视频数据,或以帧为单位的视频数据,或以场为单位的视频数据;
视频数据优先级确定模块,用于获得所述视频数据中不同编码预测模式的统计信息,根据所述不同编码预测模式的统计信息确定所述视频数据的优先级;
不等保护模块,用于根据所述视频数据优先级确定模块确定的所述视频数据优先级信息,针对所述编码模块生成的视频数据码流进行不等保护。
上述技术方案具有如下的优点:在本发明实施例中,利用编码过程中的视频数据中不同编码预测模式的统计信息来估计每帧数据的优先级;而不需要通过模拟不同地数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中视频数据优先级确定方法的流程图;
图2为本发明实施例一中视频数据优先级确定方法的具体流程图;
图3为本发明实施例二中视频数据优先级确定方法的具体流程图;
图4为本发明实施例三中视频数据优先级确定方法的具体流程图;
图5为本发明实施例中视频数据优先级确定装置结构示意图;
图6为本发明实施例中视频数据优先级确定装置中编码预测模式获取模块结构示意图;
图7为本发明实施例中视频数据优先级确定装置中优先级确定模块结构示意图;
图8为本发明实施例中视频数据编码系统结构示意图;
图9为本发明实施例中视频数据编码系统中视频数据优先级确定模块结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,压缩后的视频数据在时间和空间上都存在相关性,当部分数据出错或者部分数据丢失,都会对解码后的当前帧和后续帧的空间质量有很大的影响。由于时间位置,空间位置以及预测编码模式的不同,视频数据对视频质量的影响程度是不同的。所以本发明实施例利用数据影响程度的差异性,对数据进行优先级划分。在视频编码中通过RDO(rate_distortionOptimation率失真优化)来为每个块选择一个最佳编码预测模式:帧内预测编码(IntraNxNPredMode)、帧间预测编码(IntreNxNPredMode)、跳过不编码(skip prevMbSkipped)。一般情况下,当视频帧中的内容有较大变化时,变化的内容对应的块会被编码为IntraNxNPredMode;当视频帧中的内容和参考帧的内容非常相近时,相近块对应的编码模式一般为prevMbSkipped。所以当编码模式为帧内预测模式的数据丢失,利用解码端的错误掩盖是很难将错误块恢复的,但是对于跳过不编码的块则利用解码端的错误掩盖技术是能很好的恢复视频质量的。
图1为本发明实施例中视频数据优先级确定方法的流程图,如图1所示,该方法包括:
步骤S10,获得视频数据中不同编码预测模式的统计信息;
在本发明实施例中,视频数据可以是以条带(slice)为单位的视频数据或帧为单位的视频数据,或以场为单位的视频数据;
在本发明实施例中,编码预测模式可以为:帧内预测编码模式、帧间预测编码模式、跳过不编码模式(skip);针对视频数据进行编码时的编码预测模式区域大小可以是NxM的块,其中N和M为正整数;
步骤S20,根据所述不同编码预测模式的统计信息确定所述视频数据的优先级。
进一步,在本发明实施例中,所述根据所述不同编码预测模式的统计信息确定所述视频数据的优先级具体可以为:根据视频数据中不同编码预测模式区域在所述视频数据中所占的百分率确定所述视频数据的优先级,或者根据不同编码预测模式区域的数量确定所述视频数据的优先级。
进一步,在本发明实施例中,步骤S10中的获得视频数据中不同编码预测模式的统计信息可以在编码的时候实时的获得,可以在编码之前进行预估计获得,也可以解析已经产生的码流获得。
进一步,在本发明实施例中,步骤S10中的所述视频数据中不同编码预测模式的统计信息可以为:当前帧视频数据中不同编码预测模式的统计信息;或者,当前帧和后续编码的k帧视频数据中不同编码预测模式的统计信息,其中,k为正整数。
进一步,在本发明实施例中,在根据所述不同编码预测模式的统计信息确定所述视频数据的优先级后,可以将优先级信息和原始码流一起输出或者存储;可以在数据封装时将优先级信息放入封装协议中,例如:将优先级信息写入RTP封装协议的扩展头中,在传输当中,通过优先级的信息进行数据的不等保护;可以不作为输出,直接做diff-server网络的传输条件,例如:对优先级高的数据采用好的传输信道;也可以用来实现视频数据的FEC或ARQ(Automatic Repeat reQuest自动重传请求)的不等保护,对高优先级的数据采用高冗余的FEC(Forward Error Correction,前向纠错),或者采用重传或者多次重传。
在本发明实施例中,可以在编码过程中或者通过解析码流直接得每个宏块的编码预测模式,利用一帧数据或者是一个条带或者是一场数据中的不同编码预测模式的统计信息就可以估计一帧数据或者是一个条带或者是一场数据的优先级;而不需要通过模拟不同的数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
以下通过不同的实施例,说明上述本发明实施例的视频数据优先级确定方法。其中,实施例一和二针对当前帧视频数据中不同编码预测模式的统计信息确定视频数据的优先级,实施例三针对当前帧和后续编码的k帧视频数据中的视频数据中不同编码预测模式的统计信息确定视频数据的优先级。在下面的实施例中,以视频数据为每个视频帧只有一个slice,针对slice进行编码时的编码预测模式区域大小是16x16的宏块进行说明的,并非因此局限本发明的范围,本领域技术人员可知,在具体实施的时候,也可以采用其他多种变形,如每帧有多个slice,编码预测模式区域可以是4x4等。
本发明实施例一:
图2为本发明实施例一中视频数据优先级确定方法的具体流程图。如图2所示,该方法包括:
步骤S210,获得视频数据中各个宏块的编码预测模式;
在视频编码过程中,可以利用RDO确定每帧数据中的宏块的编码预测模式,然后根据确定了的编码预测模式来进行编码,各宏块的编码预测模式会记录到生成的码流中,所以在本发明实施例中,在编码时可以实时的统计各编码区域的编码预测模式,得到每帧数据的编码预测模式统计数据,也可以通过解析码流来得到每帧数据的编码预测模式的统计数据;
步骤S220,统计每帧数据中不同编码预测模式宏块在整帧宏块中所占的百分率或者不同编码预测模式宏块块的数量。
在本发明实施例中,帧内预测编码模式宏块的百分率或者个数记为Intra_p,跳过不编码模式宏块的百分率或者个数记为skip_p。
步骤S230,根据所述编码预测模式宏块的百分率或数量确定所述每帧视频数据的优先级。
在本发明实施例中,利用所述Intra_p和skip_p计算每一帧的优先级Imp=f(Intra_p,skip_p),如果视频数据的Imp越大则所述视频数据的优先级越高。
所述f(Intra_p,skip_p)为Intra_p和skip_p的函数,在本实施例中可以为f(Intra_p,skip_p)=α×Intra_p/skip_p或者f(Intra_p,skip_p)=α×Intra_p×(1-skip_p),其中,如果传输系统允许存在时延,则α是在允许时延内解码质量会受当前帧影响的帧个数,否则如果传输系统不允许存在时延,则α值为1。
在本发明实施例中,可以在编码过程中或者通过解析码流直接得每个宏块的编码预测模式,利用一帧数据中的不同编码预测模式的统计信息就可以估计一帧数据优先级;而不需要通过模拟不同的数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
本发明实施例二
图3为本发明实施例二中视频数据优先级确定方法的具体流程图。如图3所示,该方法包括:
步骤S310,获得视频数据中各个宏块的编码预测模式;
在本发明实施例中,在编码之前获得每个宏块的编码模式,可以采用类似RDO的方法,计算每个宏块的和参考帧的残差的SAD(绝对差之和),SAD超过阈值1的宏块是帧内预测编码模式宏块,小于阈值2的宏块是skip编码模式宏块,否则为帧间预测编码模式宏块
步骤S320,统计每帧数据中不同编码预测模式宏块在整帧宏块中所占的百分率。
在本发明实施例中,帧内预测编码模式宏块的百分率记为Intra_p,跳过不编码模式宏块的百分率记为skip_p。
步骤S330,根据所述预测模式宏块百分率分段确定所述每帧视频数据的优先级。
在本实施例中,通过Intra_p和skip_p数据来分段划分视频数据的重要性,即为视频数据分配n个优先级,n为正整数,具体的方法可以如下面所述:
根据每一帧的Intra_p和skip_p的百分率来分段划分优先级,例如:
skip_p>85%,并且Intra_p<1%,对应帧的优先级为0(非参考帧的优先级为0)
skip_p<85%,并且Intra_p<1%,对应帧的优先级为1
1%<Intra_p<50%,对应帧的优先级为2
Intra_p>50%,对应帧的优先级为3
其中,优先级0、1、2、3代表其视频数据的优先级依次更重要。
在本发明实施例中,在编码之前获得每个宏块的编码模式,利用一帧数据中的不同编码预测模式的统计信息就可以估计一帧数据优先级;而不需要通过模拟不同的数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
本发明实施例三
图4为本发明实施例三中视频数据优先级确定方法的具体流程图。如图4所示,该方法包括:
步骤S410,获得第n帧中各宏块的编码预测模式以及第n帧后续编码的k帧中各宏块的编码预测模式;
步骤S420,统计第n帧以及第n帧后续编码的k帧中不同编码预测模式宏块在整帧宏块中所占的百分率或者不同编码预测模式宏块的数量;
在本发明实施例中,第n帧中帧内预测编码模式宏块的百分率或者个数记为Intra_p(n),第n帧中跳过不编码宏块的百分率或者个数记为skip_p(n);
在本发明实施例中,第n帧后续编码的第i帧中帧内预测编码模式宏块的百分率或者个数记为Intra_p(n+i),第n帧后续编码的第i帧中跳过不编码宏块的百分率或者个数记为skip_p(n+i),i=1,2...,k;
需要说明的是,在本发明实施例中,所述第n帧后续编码的k帧是编码顺序的k帧,不是显示顺序的k帧;
步骤S430,根据所述第n帧和第n帧后续编码k帧的宏块预测模式的百分率或数量确定所述第n帧视频数据的优先级。
在本发明实施例中,选取k=1,即利用第n帧以及第n+1帧的不同编码预测模式宏块数量的统计数据来计算第n帧数据的优先级Imp(n)=f(Intra_p(n),skip_p(n));
其中f(Intra_pn,skip_pn)=Intra_pn+1/Intra_pn+skip_pn/skip_pn+1
需要说明的是,在本发明实施例中,选取k=1,即在确定视频数据的优先级时只是利用第n帧和第n帧后续编码的一帧来计算第n帧的优先级;在其它实施例中,k可以选取其他值,即也可以利用第n帧之后的多个帧来计算第n帧的优先级。
在本发明实施例中,获得第n帧中各宏块的编码预测模式以及第n帧后续编码的k帧中各宏块的编码预测模式,利用一帧数据以及该帧后续的的多个编码帧中的不同编码预测模式的统计信息就可以估计一帧数据优先级;而不需要通过模拟不同的数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
本发明实施例还提供了一种视频数据优先级确定装置,参照图5所示,其具体可以包括:
编码预测模式获取模块10,用于获得视频数据中不同编码预测模式的统计信息,所述视频数据是以条带为单位的视频数据,或以帧为单位的视频数据,或以场为单位的视频数据;
在本发明实施例中,编码预测模式可以为:帧内预测编码模式、帧间预测编码模式、跳过不编码模式(skip);针对视频数据进行编码时的编码预测模式区域大小可以是NxM的块,其中N和M为正整数;
优先级确定模块20,用于根据所述不同编码预测模式的统计信息确定所述视频数据的优先级。
可选地,参照图6所示,所述编码预测模式获取模块10具体包括:
单帧编码预测模式获取单元100,用于获得当前帧视频数据中不同编码预测模式的统计信息;或,
多帧编码预测模式获取单元110,用于当前帧和后续编码的k帧视频数据中不同编码预测模式的统计信息,其中,k为正整数。
可选地,参照图7所示,该优先级确定模块20具体可以包括:
编码预测模式计算单元200,用于根据所述编码预测模式获取模块10获得的预测模式的统计信息计算所述视频数据中不同编码预测模式区域在所述视频数据中所占的百分率,或根据所述编码预测模式获取模块10获得的预测模式的统计信息计算所述视频数据中不同编码预测模式区域的数量;
确定单元220,用于根据所述编码预测模式计算单元200得到的视频数据中不同编码预测模式区域在所述视频数据中所占的百分率确定所述视频数据的优先级,或者根据所述编码预测模式计算单元200得到的视频数据中不同编码预测模式区域的数量确定所述视频数据的优先级。
在本发明实施例中,视频数据优先级确定装置中的编码预测模式获取模块10获得视频数据中不同编码预测模式的统计信息,优先级确定模块20根据所述编码预测模式的统计信息来估计每帧数据的优先级;而不需要通过模拟不同的数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
本发明实施例还提供了一种视频数据编码系统,参照图8所示,其具体可以包括:
编码模块80,用于生成视频数据码流,所述视频数据是以条带为单位的视频数据,或以帧为单位的视频数据,或以场为单位的视频数据;
视频数据优先级确定模块82,用于获得所述视频数据中不同编码预测模式的统计信息,根据所述不同编码预测模式的统计信息确定所述视频数据的优先级;
在本发明实施例中,编码预测模式可以为:帧内预测编码模式、帧间预测编码模式、跳过不编码模式(skip);针对视频数据进行编码时的编码预测模式区域大小可以是NxM的块,其中N和M为正整数;
进一步,在本发明实施例中,所述视频数据中不同编码预测模式的统计信息可以为:当前帧视频数据中不同编码预测模式的统计信息;或者,当前帧和后续编码的k帧视频数据中不同编码预测模式的统计信息,其中,k为正整数。
进一步,在本发明实施例中,参照图9所示,所述视频数据优先级确定模块82可以包括:
编码预测模式获取单元800,用于获得视频数据中不同编码预测模式的统计信息;
优先级确定单元820,用于根据所述编码预测模式获取单元800获得的预测模式的统计信息计算所述视频数据中不同编码预测模式区域在所述视频数据中所占的百分率或所述视频数据中不同编码预测模式区域的数量,并根据所述视频数据中不同编码预测模式区域在所述视频数据中所占的百分率确定所述视频数据的优先级,或者根据所述不同编码预测模式区域的数量确定所述视频数据的优先级。
不等保护模块84,用于根据所述视频数据优先级确定模块82确定的所述视频数据优先级信息,针对所述编码模块80生成的相应视频数据码流进行不等保护。
在本实施例中,不等保护模块84可以针对视频数据中帧内预测编码模式宏块百分率高的视频码流进行较高级别的FEC的保护,使得在该视频数据码流丢失时能较好的恢复,保证较高的视频质量。
在本发明实施例中,视频数据编码系统中的视频数据优先级确定模块82获得所述视频数据中不同编码预测模式的统计信息,根据所述不同编码预测模式的统计信息确定所述视频数据的优先级,不等保护模块84根据所述视频数据优先级确定模块82确定的所述视频数据优先级信息,针对所述编码模块80生成的视频数据码流进行不等保护。而不需要通过模拟不同的数据丢失的解码情况,得到该数据丢失后对整个GOP数据的PSNR值来估计数据的优先级,因此本发明实施例技术方案计算复杂度低,能够实时准确的计算数据重要性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。