视频数据的压缩方法及装置、存储介质、计算设备与流程

文档序号:14881184发布日期:2018-07-07 09:46阅读:157来源:国知局

本发明涉及视频编码领域,具体地涉及一种视频数据的压缩方法及装置、存储介质、计算设备。



背景技术:

数据压缩是指在不丢失有用信息的前提下,缩减数据量,或按照一定的算法对数据进行重新组织,减少数据冗余和存储空间的一种技术方法。

现有的视频处理系统中,像素数据已广泛采用压缩技术处理。例如,h.264或高级视频编码(advancedvideocoding,简称avc),高性能视频编码(highefficiencyvideocoding,简称hevc),联合图象专家组—无损压缩(jointphotographicexpertsgroup-losslessstandard,简称jpeg-ls)。然而,在视频处理系统中,还会生成大量控制数据,比如针对像素点的运动矢量生成的控制数据,或者,针对像素的噪声强度生成的控制数据等。当前,由于控制数据具有自己的数据特性,无法直接复用像素数据的压缩方法,因而,一般直接存储控制数据,不对控制数据做任何处理。但是,在视频和图像的噪声消除和编码统计过程中,随着控制数据的精度要求逐渐提高,控制数据可能需要参与每个像素点的处理运算,在实际系统中,也将占用越来越多的存储空间和访问带宽,可能影响系统功耗,降低系统性能。

然而,目前仍然缺少有效处理控制数据的技术方案。



技术实现要素:

本发明解决的技术问题是如何有效压缩控制数据,以使得控制数据能够灵活、高效地用于各种视频图像处理。

为解决上述技术问题,本发明实施例提供一种视频数据的压缩方法,所述视频数据的压缩方法包括:接收视频数据,对所述视频数据中的原始像素数据和原始控制数据进行分离;压缩所述原始像素数据以得到输出的像素数据;压缩所述原始控制数据以得到输出的控制数据;整合所述输出的像素数据和所述输出的控制数据,以得到码流数据。

可选的,所述视频数据的压缩方法还包括:存储所述码流数据。

可选的,所述压缩所述原始像素数据以得到输出的像素数据包括:压缩所述原始像素数据以得到压缩像素数据;根据所述原始像素数据和所述压缩像素数据的比较结果,将所述压缩像素数据或原始像素数据确定为所述输出的像素数据。

可选的,所述压缩所述原始像素数据以得到压缩像素数据包括:利用分块的方式对所述原始像素数据进行预测,以得到预测后像素数据;计算所述预测后像素数据的残差;对所述像素数据的残差进行重映射和编码,以得到所述压缩像素数据。

可选的,所述压缩所述原始控制数据以得到输出的控制数据包括:压缩所述原始控制数据以得到压缩控制数据;根据所述原始控制数据和所述压缩控制数据的比较结果,将所述原始控制数据或所述压缩控制数据确定为所述输出的控制数据。

可选的,所述压缩所述原始控制数据以得到压缩控制数据包括:利用分块的方式对所述原始控制数据进行预测,以得到预测后控制数据;计算所述预测后控制数据的残差;对所述控制数据的残差进行重映射和编码,以得到所述压缩控制数据。

可选的,利用分块的方式对所述原始控制数据进行预测时,分块的编码块大小不同于所述原始像素数据的分块的编码块大小。

为解决上述技术问题,本发明实施例还提供一种视频数据的压缩装置,所述视频数据的压缩装置包括:接收模块,适于接收视频数据,对所述视频数据中的原始像素数据和原始控制数据进行分离;第一压缩模块,适于压缩所述原始像素数据以得到输出的像素数据;第二压缩模块,适于压缩所述原始控制数据以得到输出的控制数据;整合模块,适于整合所述输出的像素数据和所述输出的控制数据,以得到码流数据。

可选的,所述视频数据的压缩装置还包括:存储模块,适于存储所述码流数据。

可选的,所述第一压缩模块包括:第一压缩子模块,适于压缩所述原始像素数据以得到压缩像素数据;第一确定子模块,适于根据所述原始像素数据和所述压缩像素数据的比较结果,将所述压缩像素数据或原始像素数据确定为所述输出的像素数据。

可选的,所述第一压缩子模块包括:第一分块单元,适于利用分块的方式对所述原始像素数据进行预测,以得到预测后像素数据;第一计算单元,适于计算所述预测后像素数据的残差;第一编码单元,适于对所述像素数据的残差进行重映射和编码,以得到所述压缩像素数据。

可选的,所述第二压缩模块包括:第二压缩子模块,适于压缩所述原始控制数据以得到压缩控制数据;第二确定子模块,适于根据所述原始控制数据和所述压缩控制数据的比较结果,将所述原始控制数据或所述压缩控制数据确定为所述输出的控制数据。

可选的,所述第二压缩子模块包括:第二分块单元,适于利用分块的方式对所述原始控制数据进行预测,以得到预测后控制数据;第二计算单元,适于计算所述预测后控制数据的残差;第二编码单元,适于对所述控制数据的残差进行重映射和编码,以得到所述压缩控制数据。

可选的,利用分块的方式对所述原始控制数据进行预测时,分块的编码块大小不同于所述原始像素数据的分块的编码块大小。

为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述视频数据的压缩方法的步骤。

为解决上述技术问题,本发明实施例还提供一种计算设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述视频数据的压缩方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例提供一种视频数据的压缩方法,首先,接收视频数据,对所述视频数据中的原始像素数据和原始控制数据进行分离;其次,压缩所述原始像素数据以得到输出的像素数据;之后,压缩所述原始控制数据以得到输出的控制数据;最后,整合所述输出的像素数据和所述输出的控制数据,以得到码流数据。通过本发明实施例提供的技术方案,可以将控制数据从所述视频数据中分离出来,分别对所述像素数据和所述控制数据进行压缩,不会改变已有像素数据的压缩方法,而且,可以减少控制数据的存储空间,提高控制数据的传输、存储效率。

进一步,利用分块的方式对所述原始控制数据进行预测时,分块的编码块大小不同于所述原始像素数据的分块的编码块大小。压缩所述原始像素数据和所述原始控制数据可以采用不同大小的编码块,可以基于控制数据的特性压缩控制数据,进一步改善视频数据的压缩效率。

附图说明

图1是本发明实施例的一种视频数据的压缩方法的流程示意图;

图2是基于本发明实施例的一种视频数据的压缩方法得到的码流数据的码流格式示意图;

图3是典型应用场景下,采用本发明实施例的一种视频数据的压缩方法得到的码流数据的数据流转示意图;

图4是本发明实施例的一种视频数据的压缩装置的结构示意图。

具体实施方式

如背景技术所言,现有技术直接传输控制数据,将占用大量的存储空间和访问带宽,影响系统功耗,且降低系统性能。

本发明申请人发现,在视频处理系统中,对视频信号的像素数据进行压缩主要有两类:一类是无损压缩,由于存在数据冗余(例如空间冗余、时间冗余、结构冗余、信息熵冗余等),且各像素之间存在着很强的相关性。消除这些冗余信息并不会损失信息,因而可以实现无损压缩。另一类是有损压缩,有损压缩是利用视觉冗余实现的。视觉冗余指的是利用人眼的视觉特性(比如亮度辨别阈值、视觉阈值),根据人眼对亮度和色度的敏感度不同确定数据冗余。通过减少数据信息实现数据压缩,存在数据信息的客观失真。在对数据进行压缩时,如果引入的失真误差适量,则不会被人眼察觉。基于数据冗余和视觉冗余,视频数据量才得以采用压缩处理技术,并得到极大压缩。具体实施中,像素压缩方法一般基于混合编码,即将变换编码,熵编码,以及运动估计和运动补偿三种方式相结合来进行编码实现数据压缩。通常情况下,使用变换编码去除图像的帧内冗余,使用熵编码提高压缩效率,使用运动估计和运动补偿去除图像的帧间冗余。在像素压缩过程中,将产生大量控制数据,由于像素数据和控制数据的特性不同,如果两者使用相同的压缩算法,则无法取得良好效果。

本发明实施例提供一种视频数据的压缩方法,首先,接收视频数据,对所述视频数据中的原始像素数据和原始控制数据进行分离;其次,压缩所述原始像素数据以得到输出的像素数据;之后,压缩所述原始控制数据以得到输出的控制数据;最后,整合所述输出的像素数据和所述输出的控制数据,以得到码流数据。通过本发明实施例提供的技术方案,可以将控制数据从所述视频数据中分离出来,分别对所述像素数据和所述控制数据进行压缩,不会改变已有像素数据的压缩方法,而且,可以减少控制数据的存储空间,提高控制数据的传输、存储效率。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例的一种视频数据的压缩方法的流程示意图。所述视频数据可以是通过摄像头录制得到的,也可以是从互联网中的视频信息中获取的。所述视频数据至少包含有像素数据和控制数据。优选地,所述视频数据可以是经过图像处理得到的至少包含有像素数据和控制数据的数据信息。

在得到所述视频数据后,可以对视频数据进行压缩处理。具体而言,所述视频数据的压缩方法可以包括以下步骤:

步骤s101:接收视频数据,对所述视频数据中的原始像素数据和原始控制数据进行分离;

步骤s102:压缩所述原始像素数据以得到输出的像素数据;

步骤s103:压缩所述原始控制数据以得到输出的控制数据;

步骤s104:整合所述输出的像素数据和所述输出的控制数据,以得到码流数据。

具体而言,执行步骤s101,在接收到视频数据后,可以将所述视频数据中的原始像素数据和原始控制数据进行分离,得到像素数据和控制数据。例如,所述视频数据为16比特数据,包含12比特的像素数据以及4比特的控制数据。其中,像素数据可以是拜耳(bayer)格式的未经加工(raw)图像数据。所述raw图像数据指的是利用互补金属氧化物半导体(complementarymetal-oxide-semiconductortransistor,简称cmos)或者电荷耦合器件(chargecoupleddevice,简称ccd)图像感应器将捕捉到的光源信号转化为数字信号的原始数据。控制数据可以是每个像素对应的噪声强度权重系数。为方便说明,将分离得到像素数据称为原始像素数据,分离得到的控制数据称为原始控制数据。

之后,所述原始像素数据和所述原始控制数据可以采用各自的局部存储器进行存储。

存储原始像素数据的局部存储器可以有一个或多个,每个存储器的存储空间和访问设置可以基于原始像素数据的预测编码块的尺寸进行选择。存储原始控制数据的局部存储器也可以有一个或多个,每个存储器的存储空间和访问设置可以基于原始控制数据的预测编码块的尺寸存储。原始像素数据和存储原始控制数据的局部存储器的存储空间可以相同,也可以不同。

在步骤s102中,可以从存储有原始像素数据的局部存储器中得到所述原始像素数据,并对所述原始像素数据进行压缩。具体实施中,可以利用分块的方式,根据配置的分块大小对所述原始像素数据进行预测,并对得到的预测后像素数据进行编码。

更为具体地,对原始像素数据进行压缩,可以按照数据块(也可称为基本单元块)进行压缩处理。每个基本单元块的大小可以根据图像的尺寸和应用场景预先进行配置。所述基本单元块的大小可以等于局部存储器缓存的原始像素数据的大小。一般情况下,为均衡压缩效果和资源开销,可以将一个基本单元块设置为256个像素。

得到基于单元块的像素数据之后,可以针对每个基本单元块,采用不同的预测方式进行预测处理。进行预测处理。例如,预测方式可以为差分编码预测方式、滤波线性预测方式或其他预测方式。

完成预测处理可以得到预测后像素数据。在计算所述预测后像素数据的残差之后,可以对所述像素数据的残差进行重映射和编码,从而得到压缩像素数据。

作为一个非限制性实施例,原始像素数据使用差分编码预测方式完成预测处理。具体实施中,每个基本单元块的第一个像素可以直接存储和传输,之后,从第二个像素开始的其余像素使用前一个像素作为预测后像素数据pred(n),其中,n表示基本单元块内的第n个像素,n从0开始计数。

基于当前像素和预测后像素数据可以计算残差res(n),所述残差(例如所述基本单元块包含256个原始像素)

res(n)=curr(n)-pred(n),n=0,1,…255

对基本单元块的像素残差进行重映射处理,可以得到重映射像素数据res’(n),

之后,可以根据配置的基本单元块的大小、编码方式对所述重映射像素数据进行编码处理以得到压缩像素数据。编码时,可以采用支持无损压缩,也可以采用支持有损压缩的编码方式。例如,可以采用基于门限值的哥伦布(rice)编码或采用哈夫曼编码,本领域技术人员理解,编码方式还可以采用其他视频编码方式,这里不再一一列举。

进一步,如果得到压缩像素数据,则可以对所述原始像素数据和所述压缩像素数据进行比较,并基于略过模式(也即bypassmode,或称旁路模式)将数据量较小的压缩像素数据或原始像素数据作为输出的像素数据。其中,所述略过模式可以保证压缩之后的数据流不会超出原始数据流,以应对实际数据中的特殊场景(如预测、压缩算法失效的数据)。

以原始像素数据进行编码为例,假设基本单元块包含256个像素数据,原始像素数据字节数为256*12比特/像素/8=384字节。如果压缩像素数据的输出字节数大于或等于384,则可以进入略过模式,直接采用原始像素数据作为输出的像素数据。

在步骤s103中,同样可以从局部存储器中得到所述原始控制数据,并对所述原始控制数据进行压缩。具体实施中,也可以利用分块的方式,根据配置的分块大小对所述原始控制数据进行预测,再基于得到的预测后控制数据进行编码。

更为具体地,对原始控制数据进行压缩,可以按照分块的方式进行处理。每个控制数据块的大小可以基于控制数据的特性进行配置。每个原始控制数据块的大小可以与原始像素数据的基本单元块的大小相同,也可以与原始像素数据块的大小不同,例如可以将每个原始控制数据块设置为512个字节。可见,如果原始控制数据块的大小可以与原始像素数据的基本单元块的大小不同,则存储原始控制数据的局部存储器的存储空间也会与存储原始像素数据的局部存储器的存储空间不同。

在得到原始控制数据块之后,可以针对原始控制数据块的每个字节,采用不同的预测方式进行预测处理。进行预测处理的预测方式可以为差分编码预测方式或其他预测方式。

完成预测处理可以得到预测后控制数据。在计算所述预测后控制数据的残差之后,可以对所述控制数据的残差进行重映射和编码,从而得到压缩控制数据。

作为一个非限制性实施例,原始控制数据使用差分编码预测方式完成预测处理。具体实施中,可以对所述控制数据块内的原始控制数据进行块内预测。更为具体地,首先,直接存储和传输所述控制数据块的第一个字节关联的控制数据,然后,从第二个字节开始的其余字节使用前一个字节作为预测后控制数据pred_intra(n),其中,n表示控制数据块内的第n个字节,n从0起计数。

作为一个变化例,还可以基于相邻的控制数据块进行块间预测,具体地,控制数据可以利用相邻两个控制数据块之间的特性进行块间预测,第n个预测后控制数据pred_inter(n)(n为非负整数)为

针对每个控制数据块,可以计算块内预测的编码字节数,计算基于与前一个控制数据块进行块间预测的编码字节数,并根据结果选取较小的预测方式,得到预测后控制数据pred_data,

之后,可以基于当前控制数据和预测后控制数据计算残差res_data(n),所述残差res_data(n)为(例如所述基本单元块包含512个原始控制数据)

res_data(n)=curr_data(n)-pred_data(n),n=0,1,…511

接着,可以对基本单元块的控制残差进行重映射处理,以得到重映射控制数据res_data’(n),

具体实施中,可以根据配置的基本单元块的大小、编码方式对所述重映射控制数据进行编码处理以得到压缩控制数据,其中,编码方式可以采用无损压缩,也可以有损压缩的处理方式完成。例如,可以采用基于门限值的哥伦布(rice)编码或采用哈夫曼编码。

进一步,如果得到压缩控制数据,则可以对所述原始控制数据和所述压缩控制数据进行比较,并基于略过模式将数据量较小的压缩控制数据或原始控制数据作为输出的控制数据。关于略过模式,可以参照上述关于原始像素数据的相关内容。

在步骤s104中,可以对所述输出的像素数据和所述输出的控制数据进行整合,以得到码流数据。

作为一个非限制性实施例,所述码流数据可以按照图2所示的码流格式进行存储。参考图2,所述码流格式包括数据头(head)和编码字节两部分。其中,数据头部分为16比特(也即数据最小单元为2个字节,16比特)对齐的格式,包括4个字节的总编码单元(所述编码单元用于表示压缩像素数据的大小和压缩控制数据的大小,编码单元即为codingunit,简称cu)数量,4个字节的cu大小,然后是若干个cu对应的码流字节数目,每个cu单元为2个字节(例如,cu0码流字节数、cu1码流字节数、cu2码流字节数、cu3码流字节数、……、cun码流字节数),最后是实际的码流数据。所述码流数据按照cu(cu0、cu1、……、cun顺序排列)排列顺序依次存储,对应输出的像素数据和所述输出的控制数据。

优选地,在得到所述码流数据后,还可以存储所述码流数据,等待后续处理或传输。

图3是典型应用场景下,采用本发明实施例的一种视频数据的压缩方法得到的码流数据的数据流转示意图。

参考图3,首先,输入数据分离单元可以从接收图像处理单元输出的视频数据(1),所述视频数据(1)包含原始像素数据(2)和原始控制数据(2)。

其次,所述输入数据分离单元将所述视频数据(1)包含的原始像素数据(2)和原始控制数据(2)进行分离,并将分离得到的原始像素数据(2)输出到像素预测单元,此外,还将分离得到的原始控制数据(5)输出到控制数据预测单元。

再次,对原始像素数据(2)而言,像素预测单元在接收输入数据分离单元提供的原始像素数据(2)后,根据配置的分块大小、预测方式对原始像素数据(2)进行预测处理,并将预测后像素数据(3)输出到像素编码单元。像素编码单元接收到像素预测单元提供的预测后像素数据(3)之后,根据配置的块大小、编码方式进行编码处理,得到压缩像素数据(4)。其中,所述编码处理可以支持无损压缩,也可以支持有损压缩。

类似地,对原始控制数据(5)而言,控制数据预测单元接收所述输入数据分离单元提供的控制数据(5),可以根据配置的分块大小、预测方式对原始控制数据(5)进行预测处理,得到预测后控制数据(6),并输出至控制数据编码单元。所述控制数据编码单元在接收控制数据预测单元提供的预测后控制数据(6)后,可以根据配置的块大小、编码方式进行编码处理,得到压缩控制数据(7)。所述编码处理可以支持无损压缩,也可以支持有损压缩。

之后,像素编码单元将得到的压缩像素数据(4)输出至输出码流数据生成单元;所述控制数据编码单元将得到的压缩控制数据(7)输出给输出码流数据生成单元。此外,所述码流数据生成单元还接收所述图像处理单元输出的视频数据(1)。

最后,所述输出码流数据生成单元可以比较所述视频数据(1)包含的原始像素数据(2)和所述压缩像素数据(4)将所述压缩像素数据(4)或所述原始像素数据(2)确定为所述输出的像素数据。同理,所述输出码流数据生成单元可以比较所述视频数据(1)包含的原始控制数据(5)和所述压缩控制数据(7)将所述压缩控制数据(7)或所述原始控制数据(5)确定为所述输出的控制数据。也即,像素数据码流和控制数据码流可以分别选择,在确定输出的像素数据和输出的控制数据之后,所述输出码流数据生成单元输出码流数据(8)至存储控制单元,所述存储控制单元可以存储所述码流数据。

由上,本发明实施例提供的视频数据的压缩方法技术方案,可以分别压缩所述像素数据和所述控制数据,能够减少控制数据的存储空间,提高控制数据的传输和存储效率。

图4是本发明实施例的一种视频数据的压缩装置,所述视频数据的压缩装置3(以下简称为压缩装置3)可以包括:接收模块31、第一压缩模块32、第二压缩模块33和整合模块34。

具体而言,所述接收模块31适于接收视频数据,对所述视频数据中的原始像素数据和原始控制数据进行分离;所述第一压缩模块32适于压缩所述原始像素数据以得到输出的像素数据;所述第二压缩模块33适于压缩所述原始控制数据以得到输出的控制数据;所述整合模块34适于整合所述输出的像素数据和所述输出的控制数据,以得到码流数据。

优选地,所述压缩装置3还可以包括存储模块35。所述存储模块35适于存储所述码流数据。

作为一个非限制性实施例,所述第一压缩模块32可以包括:第一压缩子模块321和第一确定子模块322。

具体实施中,所述第一压缩子模块321适于压缩所述原始像素数据以得到压缩像素数据;所述第一确定子模块322适于根据所述原始像素数据和所述压缩像素数据的比较结果,将所述压缩像素数据或原始像素数据确定为所述输出的像素数据。

进一步,所述第一压缩子模块321可以包括:第一分块单元3211、第一计算单元3212和第一编码单元3213。

具体而言,所述第一分块单元3211适于利用分块的方式对所述原始像素数据进行预测,以得到预测后像素数据;所述第一计算单元3212适于计算所述预测后像素数据的残差;所述第一编码单元3213适于对所述像素数据的残差进行重映射和编码,以得到所述压缩像素数据。

进一步,所述第二压缩模块33可以包括第二压缩子模块331和第二确定子模块332。

具体实施中,所述第二压缩子模块331适于压缩所述原始控制数据以得到压缩控制数据;所述第二确定子模块332适于根据所述原始控制数据和所述压缩控制数据的比较结果,将所述原始控制数据或所述压缩控制数据确定为所述输出的控制数据。

其中,所述第二压缩子模块331可以包括第二分块单元3311、第二计算单元3312和第二编码单元3313。

具体而言,所述第二分块单元3311适于利用分块的方式对所述原始控制数据进行预测,以得到预测后控制数据;所述第二计算单元3312适于计算所述预测后控制数据的残差;所述第二编码单元3313适于对所述控制数据的残差进行重映射和编码,以得到所述压缩控制数据。

进一步,利用分块的方式对所述原始控制数据进行预测时,分块的编码块大小不同于所述原始像素数据的分块的编码块大小。

关于所述视频数据的压缩装置3的工作原理、工作方式的更多内容,可以一并参照上述图1至图3中的相关描述,这里不再赘述。

进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1至图3所示实施例中所述的视频数据的压缩方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述计算机可读存储介质可以包括rom、ram、磁盘或光盘等。

进一步地,本发明实施例还公开一种计算设备,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1至图3所示实施例中所述的视频数据的压缩方法技术方案。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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