发明内容
本发明技术方案所解决的技术问题为:如何快速生成视频摘要并减少视频摘要的生成帧数。
为了解决上述技术问题,本发明技术方案提供了一种视频摘要生成方法,包括:
获取用户端输入视频中的帧信息;
基于所述帧信息计算编码为P帧的编码代价;
计算所述P帧重新编码为I帧的编码代价;
若所述P帧编码代价与P帧重新编码为I帧的编码代价接近,则将所述P帧重新编码为I帧;
提取帧图像并构成视频摘要输出,所提取的帧图像包括:由所述P帧重新编码为I帧的帧图像。
可选的,所述视频采用GOP视频结构编码,所述帧信息包括I帧、P帧及B帧所述帧信息包括I帧、P帧及B帧。
可选的,所述P帧内所有宏块的编码模式包括帧间宏块和帧内宏块或者仅包括帧内宏块,所述I帧内所有宏块的编码模式为帧内宏块;
所述P帧编码代价基于所述P帧所有宏块的编码模式,通过率失真优化准则计算得到;
所述P帧重新编码为I帧的编码代价基于将该P帧重新编码为I帧后该I帧所有宏块的编码模式,通过率失真优化准则计算得到。
可选的,上述通过率失真优化准则计算得到P帧编码代价以及该帧重新编码为I帧的编码代价包括:
基于所述帧所有宏块的编码模式计算该帧编码后的码率R及失真D。
可选的,若所述P帧编码代价与P帧重新编码为I帧的编码代价满足如下条件则二者接近:
P_cost>I_costⅹ(1-threshold);
1-(bit size of P)/(bit size of I)<(threshold/100)ⅹ(distance fromlast keyframe)/keyint;
其中,P_cost为P帧编码代价,I_cost为P帧重新编码为I帧的编码代价,threshold为场景切换阈值,bit size of P为P帧编码后文件大小,bit size of I为P帧重新编码为I帧的文件大小,distance from last keyframe为该P帧与前一帧之间的距离,keyint为I帧间隔距离。
可选的,所述视频摘要生成方法还包括:
基于场景切换判定条件将当前帧重新编码为I帧。
可选的,所述基于场景切换判定条件将当前P帧重新编码为I帧包括如下过程:
若当前帧与前一关键帧的距离大于keyint,直接在当前帧位置设为IDR帧;
若当前帧与前一个关键帧的距离小于keyint,则进入下一步判断:
若当前帧与前一帧差异大到满足关系式:
[1-(bit size of P)/(bit size of I)]ⅹ100ⅹkeyint/(distance from lastkeyframe)<threshold则:
若当前帧与前一个关键帧的距离大于或等于minkeyint,那么当前帧设为IDR帧;
若当前帧与前一个关键帧的距离小于minkeyint,则将当前帧编码为I帧;
若当前帧与前一帧不满足上述关系式,则当前帧编码为P帧;
所提取的帧图像还包括:编码为I帧的所述当前帧。
为了解决上述技术问题,本发明技术方案还提供了一种视频再编码方法,包括:
获取用户端输入视频中的帧信息;
基于所述帧信息计算编码为P帧的编码代价;
计算所述P帧重新编码为I帧的编码代价;
若所述P帧编码代价与P帧重新编码为I帧的编码代价接近,则将所述P帧重新编码为I帧。
可选的,若所述P帧编码代价与P帧重新编码为I帧的编码代价满足如下条件则二者接近:
P_cost>I_costⅹ(1-threshold);
1-(bit size of P)/(bit size of I)<(threshold/100)ⅹ(distance fromlast keyframe)/keyint;
其中,P_cost为P帧编码代价,I_cost为P帧重新编码为I帧的编码代价,threshold为场景切换阈值,bit size of P为P帧编码长度,bit size of I为P帧重新编码为I帧的编码长度,distance from last keyframe为该P帧与前一帧之间的距离,keyint为I帧间隔距离。
可选的,将由P帧重新编码为I帧的帧作为场景变换关键帧,所述视频再编码方法还包括:
若当前帧与前一关键帧的距离大于keyint,直接在当前帧位置设为IDR帧;
若当前帧与前一个关键帧的距离小于keyint,则进入下一步判断:
若当前帧与前一帧差异大到满足关系式:
[1-(bit size of P)/(bit size of I)]ⅹ100ⅹkeyint/(distance from lastkeyframe)<threshold则:
若当前帧与前一个关键帧的距离大于或等于minkeyint,那么当前帧设为IDR帧;
若当前帧与前一个关键帧的距离小于minkeyint,则将当前帧编码为I帧;
若当前帧与前一帧不满足上述关系式,则当前帧编码为P帧。
本发明技术方案的有益效果至少包括:
本发明技术方案能够基于视频序列的帧信息,快速基于P帧信息进行视频摘要生成,并基于P帧与重新编码为I帧的编码代价,准确提取帧内容变化大的帧图像,有效提取视频摘要,实现视频摘要的精简生成。
本发明技术方案通过视频转码过程中根据INTRA/INTER块的模式选择结果作为判断两帧内容变化大小的依据,并据此将变化超过给定阈值的帧导出,形成该视频的镜头变换关键帧集合,将关键帧集合作为此视频的视频摘要。可以用最少的帧数将该视频的所有场景变化信息全部截获,这样,审核人员就可以不必再完整的观看整段视频,而改为审核视频摘要,可大幅提升审核效率,降低审核人力需求。
本发明技术方案能够以一段视频为原始采集视频,对该原始采集视频进行准确的视频摘要提取及生成,并可以静态图像帧集合的形式展现。本发明技术方案可以最小的帧数方式涵盖整个视频内容,且可涵盖整段视频的核心内容,从而使得视频审核人员不必再以逐帧观看的方式审核视频,可大幅提升审核效率,降低工作强度,提高放出视频质量,基本杜绝违规视频放出。
本发明技术方案不但能够自动生成视频的摘要,以最少的帧数完整的涵盖整段视频的核心内容,供视频审核;还可以支持其他视频模型识别输入,提供了一种视频关键帧提取的视频再编码方法,以供视频消重等使用,从而对视频编码的精简化做出了贡献。
本发明技术方案所使用的由P帧重新编码为I帧的帧图像作为视频关键帧,上述方法以判断该帧P帧编码代价及重新编码为I帧编码代价为基础进行权衡,从而提升视频编码及视频摘要生成的准确度及有效性。
具体实施方式
为了使本发明技术方案的技术内容更为具体地描述,以下结合附图详细说明本发明技术方案的具体实施例。
本发明技术方案的整体思路包括提供了一种视频摘要生成方法,通过展示一段视频的摘要,即将该段视频的特定帧作为视频摘要进行图片显示,视频平台的审核人员可以通过对这些视频摘要的图片帧进行监测,从而发现视频是否存在违规内容,而不必再完整的观看整个视频。
基于现有技术的视频编码标准可知,视频码流结构采用结合预测编码、变换编码和熵编码的混合编码框架。以帧内预测、运动补偿为基础的帧间预测编码消除视频存在的空域和时域冗余,以DCT变换(DCT for Discrete Cosine Transform,离散余弦变换)为基础的变换编码消除像素间的空间相关性,熵编码进一步消除数据内部存在的统计冗余。
图1为典型的视频编码GOP(Group of Pictures)的结构示意图,在混合编码框架中,根据预测编码方式的不同,一般将视频图像组(GOP)中的编码帧分为I帧、P帧和B帧。
结合图1,I帧(INTRA Frame)也称为帧内编码帧,只利用本帧内部的空间冗余进行压缩,是GOP编码的第一帧,其编码不依赖于前后帧。P帧(Predictive Frame)只参考前向帧消除时间冗余进行压缩,通过充分降低与图像序列中前面已编码帧的时间冗余信息来压缩传输的数据量的编码图像,也叫预测帧。B帧(Bi-directive Frame)参考前后帧消除时间冗余进行压缩,其参考帧为邻近的前几帧、本帧以及后几帧。在相同重建图像质量下,I帧、P帧、B帧的压缩比通常为1:3:5,H.265/HEVC编码标准下该比例更加悬殊。
编码过程中,I帧利用帧内预测消除空域冗余,预测帧通过帧间预测消除时间冗余;然后对残差进行变换编码,消除视频序列的空间冗余;最后,利用熵编码进一步消除统计冗余。时间冗余和空间冗余是I帧、P帧和B帧中存在的主要冗余,是视频序列可以高比率压缩的关键所在。因此,以I帧的帧内预测技术和用于P帧、B帧的运动估计技术为代表的预测编码可有效去除视频序列的数据冗余,是视频编码中提高编码效率的关键技术。
基于上述视频码流结构,可以了解到I帧与P帧中INTRA块(帧内宏块)与INTER块(帧间宏块)之间的关系包括:
对于一个视频序列,理论上只要第一帧为I帧就可以编解码,压缩效率也最高,但必须周期性的插入一些I帧以保证播放的再同步。通常I帧是按固定间隔插入的,1~10秒插入一个I帧都是合理的。
如果遇到运动剧烈的场景,相邻两帧变化很大时,P帧内所有宏块都编码为INTRA块,这时候该帧编码为P帧就不如直接编码为I帧更为合适。H.264编码允许在本来为P帧的位置生成一个I帧,将本来编码为P帧的视频帧重新编码为I帧,该重新编码的视频帧就定义为场景变换关键帧(scene_cut key frame)。
按照视频编码语法规定,I帧里面所有的编码块都是INTRA块,P帧里面可以包含INTRA/INTER两种宏块类型。一个P帧里面的块,到底编码为INTRA块,还是INTER块,是视频编码里面最核心的问题,即编码模式选择,上述过程通过如下码率-失真理论(RDO)来决策得到,即率失真优化(Rate Distortion Optimization)准则。
率失真优化准则具体包括如下内容:
在H.264编码过程中有许多的编码模式可以选择,有些模式失真较小,但是码率很高;有些模式失真较大,但是码率却很低。编码器的决策过程就是选定一个最优值,使得在不超过某最大码率的情况下,失真达到最小。
可以用如下算式表达上述过程:
min{D}s.t.R<=Rmax,s.t.表示“在以下条件”。
其中,D为失真率,R为D失真率时的码率,Rmax为系统设定的最大码率。
失真率D与码率R之间的函数关系由系统编码过程设定的编码模式相关。以下给出了几种描述失真函数和使用模式的场合:
失真函数可以选择以下几种类型:
SAD(Sum of Absolute Difference)函数,即绝对误差和;
SATD(Sum of Absolute Transformed Difference)函数,即hadamard变换后再绝对值求和;
SSD(Sum of Squared Difference)函数,即差值平方和;
MAD(Mean Absolute Difference)函数,即平均绝对差值;
MSD(Mean Squared Difference)函数,即平均平方误差;
例如,SAD函数可以在编码技术为整数像素ME时使用;
SATD函数可以在在1/2和1/4像素计算ME时使用;
SSD函数可以在帧内模式选择时使用。
上述编码器的决策过程具体可以描述为:
step 1:以预定的编码参数将视频编码,计算编码后的码率和失真,得到一个码率R和失真D组成的R-D点。
step 2:重复上述步骤,以预定的其他编码参数将视频编码,以得到其他R-D点。
根据上述步骤,图2给出了不同的编码参数下,基于不同编码模型,得到的R-D点分布图,从图2上可以看出,对于给定的特定的Rmax,D最小的点出现在图2中的凸曲线上。
为了实现上述min{D}s.t.R<=Rmax算式,基于图2,需要目标是找到一个编码参数,使得在这样的情况下R-D点能够尽可能的逼近图2的凸曲线,即满足如下条件:
min{J=D+λR}
J是一个包含D和R的函数,为Lagrange系数,也即函数J的斜率。对应到图2中的凸曲线,对于每个可能的J中的D和R元素都有对应的解,即基于J函数与图2中的凸曲线的切线之间的距离控制,一般可以尽可能的接近无穷小,或者设定上述距离小于或等于预定距离。
图3给出了凸曲线上斜率为的切线示意图。对于图2中凸曲线的每个切线,J函数都有对应的解,这个解就是凸曲线的切线。我们目标就是找到最小的J函数,即对应一定的码率R下失真D最小的模式,该模式所对应设置的上述编码参数下的编码模式,就是最理想的编码模式。
基于上述率失真优化准则得到的所述最理想的编码模式,可知:
率失真优化准则决定了一个视频序列在编码时,P帧宏块的编码模式是INTER块还是INTRA块。如果最终的决策编码模式为INTRA块,说明该块与其空间上相邻的块相关性更强,而与其前一帧的相关性弱;如果编码模式为INTER块,则说明该块与其前一帧相关性强,而与其空间相邻的块相关性弱。因此,P帧所有块的最终编码模式INTRA/INTER占比,可以作为衡量该帧与前一帧变化或者运动程度的重要指标。
更为具体的,如果INTRA块占比大,说明当前帧与前一帧相关性弱,超过一定阈值后(比如:60%),将该帧编码为P帧的代价将大于将其编码为I帧(全部为INTRA块),此时编码器允许将本来为P帧的位置重新编码为一个I帧,此帧即本发明技术方案所定义的场景变换关键帧。
场景变换关键帧的确认方法可以包括如下方式:
由于场景切换时当前帧与前一帧内容差异较大,假如设置为P帧,压缩后会体积较大。两帧差异越大,P帧数据体积越接近I帧数据体积,设置P帧的必要性越弱,而设置I帧的必要性增强。当P帧代价(P_cost)和I帧代价(I_cost)接近到“某一程度”,就决定编码为I帧,而不是P帧。
上述描述表达式如下表达式一及表达式二,即满足如下表达式一及表达式二,P帧位置视频帧可设置重新编码为I帧,即为所述场景变换关键帧:
表达式一:P_cost>I_costⅹ(1-threshold);
表达式二:1-(bit size of P)/(bit size of I)<(threshold/100)ⅹ(distance from last keyframe)/keyint
其中,P_cost为P帧编码代价,I_cost为P帧重新编码为I帧的编码代价,threshold为场景切换阈值,bit size of P为P帧编码长度,bit size of I为P帧重新编码为I帧的编码长度,distance from last keyframe为该P帧与前一帧之间的距离,keyint为I帧间隔距离。
上述表达式一及表达式二可作变形,比如表达式一可变为如下表达式三,表达式二可变为如下表达式四,但可以理解的是,表达式一及表达式二的表达变形仍落入本实例等同技术范畴:
表达式三:P_cost/I_cost>(1-threshold);
表达式四:(bit size of P)/(bit size of I)>1-((threshold/100)ⅹ(distance from last keyframe)/keyint。
需要说明的是,上述表达式中的场景切换阈值threshold指的是,该待重新编码为I帧的视频帧,可被判断为场景变换关键帧的阈值,可通过外部调整该阈值控制生成场景关键帧的个数和频次。比如根据场景关键帧一般所需个数及频次的经验,与上述定义视频帧与前一帧相关性相较所能接受的相关性阈值有关,可以等同或者按比例等同。
在本发明技术方案中,对于给定的某一视频帧,编码为P帧的bit size of P,及编码为I帧的bit size of I已经确定,distance from last key frame,即该视频帧与前一帧之间的距离也是能够确定的,此时设置的场景变换(scenecut)阈值,即threshold值越大,越容易满足上面的关系式,于是编码为I帧的几率也越大。
也可以通过keyint、minkeyint(即最小I帧间隔)和threshold三者之间的关系来确认场景变换关键帧:
(1)若当前帧与前一关键帧的距离大于keyint,直接在当前帧位置设为IDR帧(IDR帧为I帧的一种特殊类型,出现该类型的帧表明该帧后面的帧不会再以该帧之前的帧作为参考帧,IDR帧也叫立即刷新图像)。
(2)若当前帧与前一个关键帧的距离小于keyint,则进入下一步判断:
①若当前帧与前一帧差异大到满足关系式:
[1-(bit size of P)/(bit size of I)]ⅹ100keyint/(distance from lastkeyframe)<threshold;
且当前帧与前一个关键帧的距离大于或等于minkeyint,那么当前帧设为IDR帧;
②若满足上述关系,但当前帧与以前一关键帧的距离小于minkeyint,则当前帧位置设置为I帧;
③若不满足上述条件,则当前帧位置放置P帧。
需要说明的是,上述帧间距离就是时间间隔,与帧率有关。比如,如果视频帧率25帧/秒,那么1秒后的那一帧与第一帧的时间距离就是25;相邻两帧之间的距离为1,以此类推,此处不再赘述。
此外,也可以将同时满足上述两个确认场景编码关键帧的条件作为一个方案来最终确认场景编码关键帧,即需要同时满足上述表达式一、二(或者表达式三、四)及满足上述keyint、minkeyint(即最小I帧间隔)和threshold三者之间的关系,来确认场景变换关键帧。
基于本发明技术方案根据视频序列获取场景变换关键帧的方法,本发明技术方案提出了一种如图4所示的视频摘要生成方法,包括如下步骤:
步骤S100,获取用户端输入视频中的帧信息;
步骤S101,基于所述帧信息计算编码为P帧的编码代价;
步骤S102,计算所述P帧重新编码为I帧的编码代价;
步骤S103,若所述P帧编码代价与P帧重新编码为I帧的编码代价接近,则将所述P帧重新编码为I帧;
步骤S104,提取帧图像并构成视频摘要输出,所提取的帧图像包括:由所述P帧重新编码为I帧的帧图像。
根据步骤S100,所述视频采用GOP视频结构编码,GOP视频结构的编码方式可以参考图1及本实施例的部分说明,此处不再赘述。
根据本发明技术方案的内容,所述P帧内所有宏块的编码模式包括帧间宏块和帧内宏块或者仅包括帧内宏块,所述I帧内所有宏块的编码模式为帧内宏块。
根据步骤S101及步骤S102,所述P帧编码代价基于所述P帧所有宏块的编码模式,通过率失真优化准则计算得到;所述P帧重新编码为I帧的编码代价基于将该P帧重新编码为I帧后该I帧所有宏块的编码模式,通过率失真优化准则计算得到。
上述通过率失真优化准则计算P帧编码代价及P帧重新编码为I帧的编码代价,可以通过本实施例的上述系统编码过程设定的编码模式得到,即基于所预定编码参数的编码模式,通过失真率D与码率R之间的函数关系得到上述编码代价,一般可以此过程中编码所得失真率D来确认。
根据步骤S103,判断所述P帧编码代价与P帧重新编码为I帧的编码代价接近的方式可以参考本实施例的上述场景变换关键帧的确认方法,即若根据本实施例的上述场景变换关键帧的确认方法判断的编码结果为将P帧位置视频帧可设置重新编码为I帧,则认为步骤S103中,所述P帧编码代价与P帧重新编码为I帧的编码代价接近,可将所述P帧重新编码为I帧。
最终,根据步骤S104,提取由所述P帧重新编码为I帧的帧图像,即所述场景变换关键帧,获得生成的视频摘要输出。
根据步骤S100至S104生成视频摘要的一则应用例如下:
利用视频场景变换关键帧检测待测视频运动变化情况,并抽取出发生场景变化的场景变换关键帧。该帧可以准确地检测到插入视频中的广告。该技术上线后,预计视频平台审核部门在人员没有增加的情况下工作效率可提升一倍以上。对于整幅插入的广告,检测准确率达到98%;对于全部广告类型(含水印,字幕型广告),综合检测准确率达到88%。
图5~9是采用场景变换关键帧生成的几段视频的摘要,可以看出,该摘要以简洁的图像涵盖了该视频的核心内容,对于插入的广告,一览无余。
需要说明的是,图4的上述技术方案中,步骤S101及步骤S102之间并无执行上的前后顺序。步骤S100~S103可通过外部设备或模块实现,而在视频平台内实现步骤S104。当然上述步骤S100~S104都在视频平台内实现的也是可行的。视频平台也可以实现步骤S100及S104,而将步骤S101~S103设于外部设备/模块实现。
如图10所示,在本发明的另一实施例中,相较于图4的技术方案仅包括步骤S100~S103,其提供了一种视频再编码方法,其技术方案的具体实施过程可参考以上内容,此处不再赘述。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。