视频数据处理方法及装置与流程

文档序号:12730706阅读:183来源:国知局
视频数据处理方法及装置与流程

本发明涉及多媒体技术领域,特别是涉及一种视频数据处理方法及装置。



背景技术:

随着多媒体技术和网络技术的发展,很多数据需要通过网络进行传输。以IP Camera(网络摄像机)为例,其是一种可生产数字视频流,并将视频流通过有线或无线网络进行传输的摄像机,已经超越了地域的限制,只要有网络都可以进行远程监控及录像,将大大节省安装布线的费用,真正做到远程监控无界限。

当视频数据通过网络传输的时候,通常会通过对视频数据进行压缩编码来降低数据量。随着技术的发展,视频编码算法相继出现了MPEG(Moving Picture Experts Group Moving Picture Experts Group,动态图像专家组)标准、H.264(MPEG-4 A VC,活动图像专家组-4的高等视频编码)标准,在不降低画质的情况下,码率越来越低。然而,随着用户对视频质量的要求越来越高,视频数据量相应越来越大,从而对网络造成的负担也越来越大,因此单纯使用视频编码算法仍然无法达到较好的降低码率的效果。



技术实现要素:

基于此,有必要针对如何改善单纯使用视频编码算法仍然无法达到较好的降低码率的效果的问题,提供一种视频数据处理方法及装置。

一种视频数据处理方法,包括:

获取视频数据并将所述视频数据分割成多个宏块;

分别识别各所述宏块的状态;

根据各所述宏块的状态来设置各自相适应的压缩编码参数;

根据所述压缩编码参数对所述视频数据利用压缩编码算法进行压缩编码;其中,所述压缩编码算法以所述宏块为单位进行压缩编码。

在其中一个实施例中,分别识别各所述宏块的状态的步骤包括:

分别识别各所述宏块相对于参考图像的变化程度。

在其中一个实施例中,根据各所述宏块的状态来设置各自相适应的压缩编码参数的步骤包括:

判断所述宏块的变化程度处于第一范围时,设置与自身对应的所述压缩编码参数为第一压缩编码参数;判断所述宏块的变化程度处于第二范围时,设置与自身对应的所述压缩编码参数为第二压缩编码参数;其中,所述第一范围的变化程度大于所述第二范围的变化程度;所述第一压缩编码参数对应的压缩比小于所述第二压缩编码对应的压缩比。

在其中一个实施例中,分别识别各所述宏块的状态的步骤包括:

分别识别各所述宏块受噪声污染的程度。

在其中一个实施例中,根据各所述宏块的状态来设置各自相适应的压缩编码参数的步骤包括:

判断所述宏块受噪声污染的程度处于第三范围时,设置与自身对应的所述压缩编码参数为第三压缩编码参数;判断所述宏块受噪声污染的程度处于第四范围时,设置与自身对应的所述压缩编码参数为第四压缩编码参数;其中,所述第三范围的受噪声污染的程度大于所述第四范围的受噪声污染的程度;所述第三压缩编码参数对应的压缩比小于所述第四压缩编码参数。

在其中一个实施例中,在分别识别各所述宏块受噪声污染的程度的步骤之前,所述方法还包括:

分别对各所述宏块进行降噪处理。

在其中一个实施例中,所述压缩编码参数包括量化参数。

在其中一个实施例中,在根据所述压缩编码参数对所述视频数据利用压缩编码算法进行压缩编码的步骤之后,所述方法还包括:

判断压缩编码后生成的视频流的动态变化程度低于设定阈值时,执行增加双向预测内插编码帧、增加图像组的长度、丢弃参考帧这些步骤的一个或两个以上。

一种视频数据处理装置,包括:

宏块分割模块,用于获取视频数据并将所述视频数据分割成多个宏块;

状态识别模块,用于分别识别各所述宏块的状态;

参数设置模块,用于根据各所述宏块的状态来设置各自相适应的压缩编码参数;

编码压缩模块,用于根据所述压缩编码参数对所述视频数据利用压缩编码算法进行压缩编码;其中,所述压缩编码算法以所述宏块为单位进行压缩编码。

在其中一个实施例中,所述状态识别模块包括:

变化识别单元,用于分别识别各所述宏块相对参考图像的变化程度。

上述视频数据处理方法及装置具有的有益效果为:首先将视频数据分割成多个宏块,并分别识别各所述宏块的状态,再根据各所述宏块的状态来设置各自相适应的压缩编码参数,从而根据所述压缩编码参数对所述视频数据利用压缩编码算法进行压缩编码。并且,所述压缩编码算法以所述宏块为单位进行压缩编码。因此,上述视频数据处理方法及装置不仅利用压缩编码的方式来压缩视频数据,而且在进行压缩编码前就进行了相关处理,即根据各宏块状态的不同设置相应不同的压缩编码参数,以便在进行后续的压缩编码时,能够对各宏块进行相适应的压缩编码处理,例如可以将噪点少或者变化不大的宏块的质量降低,从而最大程度降低数据量,进一步降低了码率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他实施例的附图。

图1为一实施例提供的视频数据处理方法的流程图;

图2为图1所示实施例的视频数据处理方法的其中一种具体实施方式流程图;

图3为图1所示实施例的视频数据处理方法的另外一种具体实施方式流程图;

图4为图1所示实施例的视频数据处理方法的另外一种具体实施方式流程图;

图5为在图4所示实施例的视频数据处理方法的步骤S500中为了解释关于丢弃参考帧而选用的码流示意图;

图6为另一实施例提供的视频数据处理装置的组成框图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于发明的技术领域的技术人员通常理解的含义相同。本文中在发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

一实施例提供了一种视频数据处理方法,可以由单片机等能够执行代码的器件来执行,请参考图1,包括以下内容。

步骤S100.获取视频数据并将所述视频数据分割成多个宏块。

其中,视频数据为未进行压缩编码之前的数据,具体可以为YUV格式数据。一个宏块由一个亮度像素块和附加的两个色度像素块组成。各帧图像分割宏块的数量相同,并且宏块的行、列分别包含的像素个数均是4的倍数,例如宏块大小可以为32像素×32像素、16像素×16像素、4像素×4像素等。另外,宏块的数量还与视频分辨率有关,例如:对于1080p分辨率的视频来说,如果使用大小为4像素×4像素的宏块来进行处理,那么一帧数据则可以分成129600个宏块。

步骤S200.分别识别各所述宏块的状态。

其中,各所述宏块的状态可以包括与压缩效果相关的特性,例如状态可以包括能够辨别图像处于动态还是静态的特性,从而决定是否适合增大压缩比。

步骤S300.根据各所述宏块的状态来设置各自相适应的压缩编码参数。

其中,压缩编码参数是指在进行压缩编码时所需的参数,例如压缩编码参数可以包括量化参数(Qp),QP取最小值0时,表示量化最精细;相反,QP取最大值51时,表示量化是最粗糙的。

在整个视频数据中,有些宏块的质量会好些,而有些宏块的质量会差些,因此可以对质量好的宏块设置压缩比较大的压缩编码参数,而对质量较差的宏块设置压缩比较小的压缩编码参数,从而既能达到降低码率的目的,又能降低对视频整体质量的影响。

步骤S400.根据所述压缩编码参数对所述视频数据利用压缩编码算法进行压缩编码。其中,所述压缩编码算法以所述宏块为单位进行压缩编码。

压缩编码算法可以为H.264压缩算法或其他以宏块为单位进行编码的压缩编码算法。另外,步骤S100中对宏块的划分方式与步骤S400中压缩编码算法对宏块的划分方式相同,以提高压缩的速度。另外,本发明实施例中,在利用压缩编码算法进行压缩编码时,对于不同的宏块分别采取各自的压缩编码参数,从而能够对各宏块进行相适应的压缩编码处理。

因此,上述视频数据处理方法不仅仅利用压缩编码的方式来压缩视频数据,而且在进行压缩编码前就进行了相关处理,即根据各宏块状态的不同设置不同的压缩编码参数,以便在进行后续的压缩编码时,能够对各宏块进行相适应的压缩编码处理,例如可以将噪点少或者变化不大的宏块的视频质量降低,从而最大程度降低数据量,进一步降低了码率。

在其中一个实施例中,请参考图2,步骤S200包括以下内容。

步骤S210.分别识别各所述宏块相对于参考图像的变化程度。

其中,各所述宏块相对于参考图像的变化程度可以反应出图像的动态或静态特性。例如:变化程度可以为移动距离,在具体实施中,可以检测当前帧图像中的各宏块在前一帧(即参考帧)图像中的对应位置,从而得出各宏块的移动距离。

具体的,可以利用移动侦测算法来计算各所述宏块的变化程度。并且,移动侦测算法可以根据背景减除法、时间差分法、光流法等方式来进行运动检测。

进一步的,基于步骤S210的内容,步骤S300包括以下内容,请继续参考图2。

步骤S310.判断所述宏块的变化程度处于第一范围时,设置与自身对应的所述压缩编码参数为第一压缩编码参数;判断所述宏块的变化程度处于第二范围时,设置与自身对应的所述压缩编码参数为第二压缩编码参数。其中,所述第一范围的变化程度大于所述第二范围的变化程度。所述第一压缩编码参数对应的压缩比小于所述第二压缩编码。

本发明实施例中,对于变化程度较大的宏块,为了保证图像质量,设置压缩编码参数对应的压缩较小,这时与动态环境下的压缩编码参数较接近,例如可以设置量化参数为较小的值。对于变化程度较小的宏块,由于不需要保持高码率也可维持图像质量,因此设置其压缩编码参数对应的压缩比较大,这时与静态环境下的压缩编码参数较接近,例如可以设置量化参数为较大的值,从而能够在保证图像质量的前提下降低编码的数据量,进而降低码率。

具体的,如果仅作粗略划分,而将所有宏块共分为动态和静态两类,可以假设移动距离的阈值为60,移动距离的范围是0~100,这时第一范围为移动距离大于60,第二范围为移动距离小于60。那么,移动距离小于60的宏块都可以设置为对应静态环境下的压缩编码参数(例如量化参数为51),而移动距离大于60的宏块都可以设置为对应动态环境下的压缩编码参数(例如量化参数为0)。另外,也可以作更详细的划分,可以设定移动距离介于0~10时,令Qp=51,移动距离介于11~20时,设置Qp=46,依次类推。

在其中一个实施例中,请参考图3,步骤S200还可以包括以下内容。

步骤S230.分别识别各所述宏块受噪声污染的程度。

其中,受噪声污染的程度越大,说明宏块内包含的噪点越多。

进一步的,基于步骤S230的内容,步骤S300还可以包括以下内容,请继续参考图3。

步骤S320.判断所述宏块受噪声污染的程度处于第三范围时,设置与自身对应的所述压缩编码参数为第三压缩编码参数;判断所述宏块受噪声污染的程度处于第四范围时,设置与自身对应的所述压缩编码参数为第四压缩编码参数。其中,所述第三范围的受噪声污染的程度大于所述第四范围的受噪声污染的程度。所述第三压缩编码参数对应的压缩比小于所述第四压缩编码参数。

由于受噪声污染程度较大的宏块其质量本身较低,因此给予其对应压缩比较小的压缩编码参数,例如可以设置量化参数为较小的值,能够保证图像的质量。而受噪声污染程度较小的宏块其质量本身较高,因此给予其对应压缩比较大的压缩编码参数,例如可以设置量化参数为较大的值,从而能够在保证图像质量的前提下降低编码的数据量,进而降低码率。

进一步的,请继续参考图3,在步骤S230之前,所述方法还可以包括以下内容。

步骤S220.分别对各所述宏块进行降噪处理。

其中,可以对各宏块利用图像滤波算法进行降噪处理,以去除噪点,从而排除噪点造成的码率虚高现象。另外,在降噪之后再执行步骤S230,由于这时噪点的数量相比降噪之前会减少很多,因此可以增加能够使压缩比较大的宏块所占的比例,从而进一步降低了码率。

因此,本发明实施例通过将被噪声污染程度较低或者变化程度不大的宏块的压缩质量较低,从而可以最大程度得降低每一帧视频的数据量。

需要说明的是,图2和图3所示的视频数据处理方法中各步骤的执行顺序不限于上述情况,例如:若图2和图3都需要执行时,那么还可以先执行步骤S210和步骤S220,然后执行步骤S310和步骤S320,最后再执行步骤S400。

可以理解的是,设置压缩编码参数的具体方式不限于上述情况,还可以根据宏块与压缩效果相关的其他状态来设置压缩编码参数。

在其中一个实施例中,请参考图4,在步骤S400之后,所述方法还包括以下内容。

步骤S500.判断压缩编码后生成的视频流的动态变化程度低于设定阈值时,执行增加双向预测内插编码帧、增加图像组的长度、丢弃参考帧这些步骤的一个或两个以上。

与步骤S100至步骤S300在进行编码前进行的处理方式不同,步骤S500是对压缩编码后生成的整个视频流进行处理。其中,压缩编码后生成的视频流的动态变化程度可以利用移动侦测算法来计算。当动态变化程度低于设定阈值时可以对应画面变化较少的状态或画面静止状态,这时不需要保持高码率也可维持图像质量,因此可以继续采取相关增加压缩比的措施,来进一步降低码率。

其中,关于增加双向预测内插编码帧(B帧)这一措施,由于B帧的压缩比与I帧(关键帧)、P帧(前向预测编码帧)相比最高,因此增加B帧的数量可以提高整个视频流的压缩比。

关于增加图像组(GOP)的长度这一措施,当GOP的长度增加后,会使相邻两个I帧之间的B帧或P帧的数量增加,从而使得B帧或P帧在整个视频流中所占的比例增大,而由于B帧、P帧的压缩比较高,因此即可降低整个视频流的码率。

关于丢弃参考帧这一措施,以图5所示的视频流进行说明,该视频流编码采用的是4倍跳帧,其中,I1、p4、p8均为参考帧,其他帧均为非参考帧,那么可以主动丢掉p1-p3帧、p5-p7帧及p9-p12帧,这样并不会影响视频质量,但是可以大大降低码率。

进一步的,还可以对压缩编码后生成的视频流进行降噪处理,从而进一步减少噪点的数量,既提高了图像质量又降低了码率。

需要说明的是,图1至图4为本发明实施例的方法的流程示意图。应该理解的是,虽然图1至图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图1至图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在另一实施例中,提供了一种视频数据处理装置,请参考图6,包括以下内容。

宏块分割模块100,用于获取视频数据并将所述视频数据分割成多个宏块。

状态识别模块200,用于分别识别各所述宏块的状态。

参数设置模块300,用于根据各所述宏块的状态来设置各自相适应的压缩编码参数。

编码压缩模块400,用于根据所述压缩编码参数对所述视频数据利用压缩编码算法进行压缩编码。其中,所述压缩编码算法以所述宏块为单位进行压缩编码。

在其中一个实施例中,状态识别模块200包括:

变化识别单元,用于分别识别各所述宏块相对参考图像的变化程度。

在其中一个实施例中,参数设置模块300包括:

第一设置单元,用于判断所述宏块的变化程度处于第一范围时,设置与自身对应的所述压缩编码参数为第一压缩编码参数;判断所述宏块的变化程度处于第二范围时,设置与自身对应的所述压缩编码参数为第二压缩编码参数;其中,所述第一范围的变化程度大于所述第二范围的变化程度;所述第一压缩编码参数对应的压缩比小于所述第二压缩编码对应的压缩比。

在其中一个实施例中,状态识别模块200包括:

噪声识别单元,用于分别识别各所述宏块受噪声污染的程度。

在其中一个实施例中,参数设置模块300包括:

第二设置单元,用于判断所述宏块受噪声污染的程度处于第三范围时,设置与自身对应的所述压缩编码参数为第三压缩编码参数;判断所述宏块受噪声污染的程度处于第四范围时,设置与自身对应的所述压缩编码参数为第四压缩编码参数;其中,所述第三范围的受噪声污染的程度大于所述第四范围的受噪声污染的程度;所述第三压缩编码参数对应的压缩比小于所述第四压缩编码参数。

在其中一个实施例中,所述视频数据处理装置还包括:

降噪模块,用于分别对各所述宏块进行降噪处理。

在其中一个实施例中,所述压缩编码参数包括量化参数。

在其中一个实施例中,所述视频数据处理装置还包括:

视频流处理模块,用于在判断压缩编码后生成的视频流的动态变化程度低于设定阈值时,执行增加双向预测内插编码帧、增加图像组的长度、丢弃参考帧这些步骤的一个或两个以上。

需要说明的是,本发明实施例提供的视频数据处理装置与上一实施例提供的视频数据处理方法对应,这里就不再赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1