发明内容
本发明实施例所要解决的技术问题在于,提供一种视频处理过程中缩略图提取方法及装置,可获得体现视频主要内容的缩略图,方便了用户对视频信息的获取。
为了解决上述技术问题,本发明实施例提供了一种视频处理过程中缩略图提取方法,包括:
从视频流中获取至少两个视频帧数据;
对所述视频帧数据进行运算处理,获得每个视频帧数据的纹理总量;
提取最大的纹理总量对应的视频帧数据,生成所述视频流的缩略图。
其中,所述视频流包括:I帧数据、P帧数据和B帧数据;所述从视频流中获取至少一个视频帧数据,包括:获取视频流中的前M个I帧数据;其中,M为大于1的整数。
其中,所述对所述视频帧数据进行运算处理,获得每个视频帧数据的纹理总量,包括:
将M个I帧数据进行解码处理,获得M个二维YUV静态图片;
对所述M个二维YUV静态图片的Y分量进行缩放处理,获得M个数据块;
将所述M个数据块进行二维DCT变换,获得M个二维DCT系数块;
对所述M个二维DCT系统块进行Zigzag扫描,获得M个一维DCT系数块;
从每个一维DCT系数块中提取预定数量的中频系数进行均方和计算,获得每个I帧数据的均方和;其中,每个I帧数据的均方和表示每个I帧数据的纹理总量。
其中,所述对所述M个二维YUV图片的Y分量进行缩放处理,获得M个数据块,包括:
按照预设的参数对所述M个二维YUV图片的Y分量进行缩放处理,获得M个大小为N的数据块;相应地,每个一维DCT系数块的长度为N*N;其中,N为2的整数次方。
其中,所述均方和计算公式为:
其中,W表示均方和,D(i)表示一维DCT系数块,i为正整数;p、q均为正整数,且1<p<q<N*N。
其中,所述提取最大的纹理总量对应的视频帧数据,生成所述视频流的缩略图,包括:
比较M个I帧数据的均方和大小,提取最大均方和对应的I帧数据;
将所述提取的I帧数据确定为所述视频流的关键帧;
根据所述关键帧生成缩略图,将所述生成的缩略图确定为所述视频流的缩略图。
相应地,本发明实施例还提供了一种视频处理过程中缩略图提取装置,包括:
获取模块,用于从视频流中获取至少两个视频帧数据;
处理模块,用于对所述获取模块获取的视频帧数据进行运算处理,获得每个视频帧数据的纹理总量;
生成模块,用于提取所述处理模块获得的最大的纹理总量对应的视频帧数据,生成所述视频流的缩略图。
其中,所述视频流包括:I帧数据、P帧数据和B帧数据;所述获取模块具体用于获取视频流中的前M个I帧数据;其中,M为大于1的整数。
其中,所述处理模块包括:
解码单元,用于对M个I帧数据进行解码处理,获得M个二维YUV静态图片;
缩放单元,用于对所述解码单元获得的M个二维YUV静态图片的Y分量进行缩放处理,获得M个数据块;
变换单元,用于对所述缩放单元获得的M个数据块进行二维DCT变换,获得M个二维DCT系数块;
扫描单元,用于对所述变换单元获得的M个二维DCT系数块进行Zigzag扫描,获得M个一维DCT系数块;
计算单元,用于从所述扫描单元获得的每个一维DCT系数块中提取预定数量的中频系数进行均方和计算,获得每个I帧数据的均方和;其中,每个I帧数据的均方和表示每个I帧数据的纹理总量。
其中,所述缩放单元具体用于按照预设的参数对所述M个二维YUV图片的Y分量进行缩放处理,获得M个大小为N的数据块;相应地,所述扫描单元获得的每个一维DCT系数块的长度为N*N;其中,N为2的整数次方。
其中,所述计算单元具体用于按照均方和计算公式进行均方和计算,所述均方和计算公式为:
其中,W表示均方和,D(i)表示一维DCT系数块,i为正整数;p、q均为正整数,且1<p<q<N*N。
其中,所述生成模块包括:
提取单元,用于比较M个I帧数据的均方和大小,提取最大均方和对应的I帧数据;
确定单元,用于将所述提取单元提取的I帧数据确定为所述视频流的关键帧;
生成单元,用于根据所述确定单元确定的关键帧生成缩略图,将所述生成的缩略图确定为所述视频流的缩略图。实施本发明实施例,具有如下有益效果:
本发明实施例提取视频流中的多个视频帧数据,通过运算处理得到各视频帧数据的纹理总量,该纹理总量体现了该视频帧数据包含的信息量;选取最大纹理总量的视频帧数据生成视频流的缩略图,使得缩略图能够较大信息量、较准确地反映视频流的主要内容,为用户对该视频流的信息的获取提供了实际的价值,满足了用户的信息获取需求。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合附图1-5,对本发明实施例提供的视频处理装置进行详细介绍。
请参见图1,为本发明的视频处理装置的一个实施例的结构示意图;所述装置可以包括:
获取模块10,用于从视频流中获取至少两个视频帧数据。
视频流通常包括:I帧数据、P帧数据和B帧数据;其中,I帧为帧内编码帧,P帧为向前预测帧,B帧为双向内插帧。为了避免现有技术中仅选取视频流的第一帧作为关键帧生成缩略图的不合理性,本发明实施例中,获取模块10从视频流中选取至少两个视频帧数据,优选地,获取模块10具体用于获取视频流中的前M个I帧数据;其中,M为大于1的整数。位于视频流的前段部分的视频数据,往往出现视频流中比较关键或都比较有意义的信息,例如:视频的片名、主要演员等,所述获取模块10选取视频流的前M个视频帧数据可以使得生成的缩略图能够比较准确地反映视频的主要内容和信息。另外,由于I帧数据是帧内编码数据,直接解码较快,所述获取模块10优选选取视频流的前M个I帧数据有利于提高视频处理的效率。
处理模块20,用于对所述获取模块10获取的视频帧数据进行运算处理,获得每个视频帧数据的纹理总量。
具体实现中,纹理总量可以代表视频帧所包含的信息量,纹理总量越大,纹理复杂度越高,表示该视频帧数据包含的信息量越大;相反,纹理总量越小,纹理复杂度越低,表示该视频帧数据包含的信息量越小。
生成模块30,用于提取所述处理模块20获得的最大的纹理总量对应的视频帧数据,生成所述视频流的缩略图。
基于处理模块20获得的纹理总量,生成模块30可通过比较获得最大的纹理总量,根据该最大的纹理总量对应的视频帧数据生成缩略图,能够比较准确地反映视频的主要内容和信息,方便用户对视频流的信息获取。
请参见图2,为本发明的处理模块的实施例的结构示意图;本实施例的处理模块20可以用于对所述获取模块10获取的视频流中的前M个I帧数据进行运算处理。所述处理模块20包括:
解码单元201,用于对M个I帧数据进行解码处理,获得M个二维YUV静态图片。
其中,YUV是一种颜色编码方法,“Y”表示明亮度,也就是灰阶值;“U”和“V”表示色度,描述影像色彩及饱和度,用于指定像素的颜色。所述解码单元201对I帧数据进行解码,则可获得二维YUV静态图片,具体的解码过程可以参照现有技术,在此不赘述。
缩放单元202,用于对所述解码单元201获得的M个二维YUV静态图片的Y分量进行缩放处理,获得M个数据块。
所述缩放单元202对于M个二维YUV静态图片的Y分量进行缩放处理,保证了二维YUV静态图片包含的信息量不发生变化,同时又可提升后续的视频处理效率。具体实现中,所述缩放单元202具体用于按照预设的参数对所述M个二维YUV图片的Y分量进行缩放处理,获得M个大小为N的数据块。其中,预设的参数可以根据实际需要进行确定,优选地,该预设的参数需要保证所述缩放单元202进行等比例缩放处理,以保证信息量不发生变化。
变换单元203,用于对所述缩放单元202获得的M个数据块进行二维DCT(DiscreteCosineTransform,离散余弦变换)变换,获得M个二维DCT系数块。
二维DCT变换的特性是能量集中:其可将不同频率特性分散在不同的DCT系数中。利用DCT变换,可以很好的分析视频帧数据的各种特性,该特性包括:纹理复杂度。
扫描单元204,用于对所述变换单元203获得的M个二维DCT系数块进行Zigzag扫描,获得M个一维DCT系数块。
Zigzag扫描,即之字型扫描。请参见图3,为本发明实施例的Zigzag扫描示意图;(a)中示出了M个二维DCT系数块,经扫描单元204进行Zigzag扫描后,获得M个一维DCT系数块,如(b)所示。所述每个一维DCT系数块的长度为N*N。
计算单元205,用于从所述扫描单元204获得的每个一维DCT系数块中提取预定数量的中频系数进行均方和计算,获得每个I帧数据的均方和。
其中,每个I帧数据的均方和表示每个I帧数据的纹理总量。请参见图4,为本发明实施例的二维DCT变换的频率分布示意图;其中,区域1为低频系数区域,区域2为中频系数区域,区域3为高频系数区域。对于视频流,低频代表了视频的平均量度,中高频代表视频帧数据的纹理总量(或纹理复杂度)。实际应用中,高频中可能含有一定的视频噪声,因此,本实施例中,所述计算单元205从每个一维DCT系数块中提取预定数量的中频系数进行均方和计算,利用均方和表征视频帧数据的纹理总量。所述计算单元205选取中频系数进行计算,既可反映视频帧数据的纹理总量,反映视频流的信息量,同时也能够摒弃噪声的干扰,提高准确性。可以理解的是,所述预定数量可以根据实际情况进行确定,其可以为每个一维DCT系数块中的全部或部分中频系数。
具体实现中,所述计算单元205具体用于按照均方和计算公式进行均方和计算,所述均方和计算公式为:
其中,W表示均方和,D(i)表示一维DCT系数块,i为正整数;p、q均为正整数,且1<p<q<N*N。
请参见图5,为本发明的生成模块的实施例的结构示意图;本实施例的生成模块30可以用于根据所述处理模块20获得的视频帧数据的纹理总量进行缩略图的生成。所述生成模块30包括:
提取单元301,用于比较M个I帧数据的均方和大小,提取最大均方和对应的I帧数据。
确定单元302,用于将所述提取单元301提取的I帧数据确定为所述视频流的关键帧。
生成单元303,用于根据所述确定单元302确定的关键帧生成缩略图,将所述生成的缩略图确定为所述视频流的缩略图。
本发明实施例提取视频流中的多个视频帧数据,通过运算处理得到各视频帧数据的纹理总量,该纹理总量体现了该视频帧数据包含的信息量;选取最大纹理总量的视频帧数据生成视频流的缩略图,使得缩略图能够较大信息量、较准确地反映视频流的主要内容,为用户对该视频流的信息的获取提供了实际的价值,满足了用户的信息获取需求。
对应于上述附图1-5所述的任一种视频处理过程中缩略图提取装置,下面将结合附图6-8,对本发明实施例提供的视频处理方法进行详细介绍,上述的视频处理装置可以应用于下述实施例的方法中。
请参见图6,为本发明提供的一种视频处理过程中缩略图提取方法的流程图;所述方法包括:
S101,从视频流中获取至少两个视频帧数据。
视频流通常包括:I帧数据、P帧数据和B帧数据;其中,I帧为帧内编码帧,P帧为向前预测帧,B帧为双向内插帧。为了避免现有技术中仅选取视频流的第一帧作为关键帧生成缩略图的不合理性,本发明实施例中,获取模块10从视频流中选取至少两个视频帧数据,优选地,步骤S101获取视频流中的前M个I帧数据;其中,M为大于1的整数。位于视频流的前段部分的视频数据,往往出现视频流中比较关键或都比较有意义的信息,例如:视频的片名、主要演员等,步骤S101选取视频流的前M个视频帧数据可以使得生成的缩略图能够比较准确地反映视频的主要内容和信息。另外,由于I帧数据是帧内编码数据,直接解码较快,优选选取视频流的前M个I帧数据有利于提高视频处理的效率。
S102,对所述视频帧数据进行运算处理,获得每个视频帧数据的纹理总量。
具体实现中,纹理总量可以代表视频帧所包含的信息量,纹理总量越大,纹理复杂度越高,表示该视频帧数据包含的信息量越大;相反,纹理总量越小,纹理复杂度越低,表示该视频帧数据包含的信息量越小。
S103,提取最大的纹理总量对应的视频帧数据,生成所述视频流的缩略图。
基于步骤S102获得的纹理总量,步骤S103中,可通过比较获得最大的纹理总量,根据该最大的纹理总量对应的视频帧数据生成缩略图,能够比较准确地反映视频的主要内容和信息,方便用户对视频流的信息获取。
请参见图7,为图6所示的步骤S102的具体流程图;本实施例可以对所述S101获取的视频流中的前M个I帧数据进行运算处理。步骤S102包括:
S211,将M个I帧数据进行解码处理,获得M个二维YUV静态图片。
其中,YUV是一种颜色编码方法,“Y”表示明亮度,也就是灰阶值;“U”和“V”表示色度,描述影像色彩及饱和度,用于指定像素的颜色。步骤S211中,对I帧数据进行解码,则可获得二维YUV静态图片,具体的解码过程可以参照现有技术,在此不赘述。
S212,对所述M个二维YUV静态图片的Y分量进行缩放处理,获得M个数据块。
本步骤中,对于M个二维YUV静态图片的Y分量进行缩放处理,保证了二维YUV静态图片包含的信息量不发生变化,同时又可提升后续的视频处理效率。具体实现中,本步骤可按照预设的参数对所述M个二维YUV图片的Y分量进行缩放处理,获得M个大小为N的数据块。其中,预设的参数可以根据实际需要进行确定,优选地,该预设的参数需要保证等比例缩放处理,以保证信息量不发生变化。
S213,将所述M个数据块进行二维DCT变换,获得M个二维DCT系数块。
二维DCT变换的特性是能量集中:其可将不同频率特性分散在不同的DCT系数中。利用DCT变换,可以很好的分析视频帧数据的各种特性,该特性包括:纹理复杂度。
S214,对所述M个二维DCT系统块进行Zigzag扫描,获得M个一维DCT系数块。
Zigzag扫描,即之字型扫描。本步骤的扫描过程可参见图3,在此不赘述。本步骤中,获得的每个一维DCT系数块的长度为N*N。
S215,从每个一维DCT系数块中提取预定数量的中频系数进行均方和计算,获得每个I帧数据的均方和。
其中,每个I帧数据的均方和表示每个I帧数据的纹理总量。本步骤对系数的选取可参见图4,在此不赘述。本实施例中,步骤S215从每个一维DCT系数块中提取预定数量的中频系数进行均方和计算,利用均方和表征视频帧数据的纹理总量。选取中频系数进行计算,既可反映视频帧数据的纹理总量,反映视频流的信息量,同时也能够摒弃噪声的干扰,提高准确性。可以理解的是,所述预定数量可以根据实际情况进行确定,其可以为每个一维DCT系数块中的全部或部分中频系数。
具体实现中,本步骤可按照均方和计算公式进行均方和计算,所述均方和计算公式为:
其中,W表示均方和,D(i)表示一维DCT系数块,i为正整数;p、q均为正整数,且1<p<q<N*N。
请参见图8,为图6所示的步骤S103的具体流程图;本实施例可以用于根据所述S102获得的视频帧数据的纹理总量进行缩略图的生成。步骤S103包括:
S311,比较M个I帧数据的均方和大小,提取最大均方和对应的I帧数据。
S312,将所述提取的I帧数据确定为所述视频流的关键帧。
S313,根据所述关键帧生成缩略图,将所述生成的缩略图确定为所述视频流的缩略图。
本发明实施例提取视频流中的多个视频帧数据,通过运算处理得到各视频帧数据的纹理总量,该纹理总量体现了该视频帧数据包含的信息量;选取最大纹理总量的视频帧数据生成视频流的缩略图,使得缩略图能够较大信息量、较准确地反映视频流的主要内容,为用户对该视频流的信息的获取提供了实际的价值,满足了用户的信息获取需求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。