CN106162168B - 视频帧压缩方法及装置 - Google Patents
视频帧压缩方法及装置 Download PDFInfo
- Publication number
- CN106162168B CN106162168B CN201510154972.0A CN201510154972A CN106162168B CN 106162168 B CN106162168 B CN 106162168B CN 201510154972 A CN201510154972 A CN 201510154972A CN 106162168 B CN106162168 B CN 106162168B
- Authority
- CN
- China
- Prior art keywords
- pixel
- current pixel
- prediction mode
- current
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明实施例公开了一种视频帧压缩方法及装置,解决了现有的视频帧压缩方法所存在的像素预测值精确度不高从而导致像素残差值绝对值过大的缺陷。本发明的具有自适应特性的视频帧压缩方法包括:对视频帧进行区域划分;根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理。
Description
技术领域
本发明涉及视频编码技术领域,尤其涉及一种视频帧压缩方法及装置。
背景技术
现有技术中,在视频编解码过程中需要频繁地读取内存中的图像数据,这一过程需要占用大量的系统带宽和资源,为了节省系统带宽及资源,通常是先利用预测编码技术对待存储的图像数据进行压缩,并将压缩后的图像数据存储到内存中,以便于后续的使用。
例如,可以利用DPCM(Differential Pulse Code Modulation,差分脉冲编码调制)技术对图像数据进行压缩,具体为:对于图像数据的像素数据块,首先根据图像的空间相关性,通过周边位置的像素值对当前位置的像素值进行预测,其中周边位置的像素值称为预测值,当前位置的实际像素值与预测值之间的差值称为残差值,然后,采用变长编码方式对得到的残差数据进行编码,从而实现对图像数据的压缩。变长编码方式是指将数据进行分组,并根据分组中数据的大小选用特定长度的bit来表示信息,其中,变长编码方式包括有符号变长编码和无符号变长编码,即对于[-2N,2N-1]之间的有符号数据可以用N+1bit来表示,对于[0,2N-1]之间的无符号数据可以用N bit来表示。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
上述图像数据的压缩方式是采用固定的预设模板对当前位置的像素值进行预测(例如,规定以左边的像素值作为当前位置像素值的预测值),但是由于数据是随机的,所以任何预设模板都难以很好地匹配所有的情况,可见上述图像像素值预测方式的精确性不高,进而会导致残差数据的均值偏离或产生绝对值过大的残差数据,即得到的残差数据中的相邻的像素数据间仍存在较强的相关性,从而限制了图像数据压缩率的提高。
发明内容
本发明提供一种视频帧压缩方法及装置,其能够为视频帧中的像素提供更精确的预测值,以减小现有压缩方式中残差值的绝对值,从而进一步提高视频帧的压缩率。
一方面,本发明提供一种视频帧压缩方法,所述方法包括:
对视频帧进行区域划分;
根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;
根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;
将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理。
另一方面,本发明提供一种视频帧压缩装置,所述装置包括划分模块、第一确定模块、第二确定模块、预测模块以及压缩模块,其中,
所述划分模块,用于对视频帧进行区域划分;
所述第一确定模块,用于根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;
所述第二确定模块,用于根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;
所述预测模块,用于将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值;
所述压缩模块,用于对所述残差值进行压缩处理。
本发明提供的具有自适应特性的视频帧压缩方法及装置,对视频帧进行区域划分;根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理。与现有技术相比,其能够为所述视频帧中的像素提供更精确的预测值,以减小现有压缩方式中残差值的绝对值,从而进一步提高视频帧的压缩率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明视频帧压缩方法一实施例的流程示意图;
图2为本发明视频帧压缩方法另一实施例的流程示意图;
图3为以4×4大小的视频帧为例,阐述上述实施例中所述视频帧的区域划分示意图;
图4为本发明视频帧压缩装置一实施例的结构示意图;
图5为本发明视频帧压缩装置另一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种视频帧压缩方法,所述方法包括:
S11、对视频帧进行区域划分。
S12、根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式。
S13、根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值。
S14、将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理。
本发明实施例提供的视频帧压缩方法,对视频帧进行区域划分;根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理。与现有技术相比,其能够为所述视频帧中的像素提供更精确的预测值,以减小现有压缩方式中残差值的绝对值,从而进一步提高视频帧的压缩率。
如图2所示,本发明实施例提供一种视频帧压缩方法,所述方法包括:
S21、对视频帧进行区域划分;
区域划分的具体方法为:根据所述视频帧的各个像素是否具有左相邻像素和/或上相邻像素,将所述视频帧划分为第一区域、第二区域、第三区域和第四区域。
这里,以4×4大小的视频帧为例,具体的划分方式如图3所示,由图3可知,所述第一区域B1内的像素不具有左相邻像素和上相邻像素,所述第二区域B2内的像素不具有左相邻像素,所述第三区域B3内的像素不具有上相邻像素,所述第四区域B4内的像素具有左相邻像素和上相邻像素。
S22、确定当前像素的至少一个预测方式;
具体地,根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式。
例如,当所述视频帧由M×N个像素构成,所述像素的像素值为A[i][j](i和j分别表示列和行,且i=0、1、…、M-1,j=0、1、…、N-1)时,
若所述当前像素属于所述第一区域,则对所述当前像素不进行预测,并保留所述当前像素的像素值A[0][0];
若所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素相邻,则确定所述当前像素具有一种预测方式,所述预测方式对应的预测值为A[0][0];
若所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素不相邻,则确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][j-1]和2*A[0][j-1]-A[0][j-2];
若所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素相邻,则确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][0]和A[0][1];
若所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素不相邻,则确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][0]、A[i-1][1]和2*A[i-1][0]-A[i-2][0];
若所述当前像素属于所述第四区域,则确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][j]、A[i][j-1]和(A[i-1][j]+A[i][j-1]+1)/2。
上述列举了设置多种预测方式的一种情况,但是为当前像素提供多种预测方式的方法不仅仅限于此。
S23、得到当前像素的至少一个预测值;
具体地,根据所述至少一种预测方式,得到所述当前像素对应的至少一个预测值。
S24、确定当前像素的最佳预测值;
具体地,将所述当前像素的像素值分别与所述至少一个预测值进行比较,以确定所述当前像素所对应的最佳预测值,其中,所述最佳预测值为所述至少一个预测值中与所述当前像素的像素值最接近的一个预测值。
S25、得到当前像素的残差值;
具体地,将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值。
S26、对所述残差值进行压缩处理。
具体地,所述对所述残差值进行压缩处理为对所述第一区域内像素的像素值以及所述第一区域以外的各个像素对应的残差值进行变长压缩编码。
其中,变长压缩编码是指将待进行压缩编码数据进行分组,并根据分组中数据的大小选用特定长度的bit来表示信息,其中,所述变长压缩编码包括有符号变长压缩编码和无符号变长压缩编码,即对于[-2N,2N-1]之间的有符号数据可以用N+1bit来表示,对于[0,2N-1]之间的无符号数据可以用N bit来表示。
较佳地,在步骤S25与步骤S26之间还可包括步骤:标记当前像素的实际预测方式;
具体地,按照以下标记方式对所述当前像素的实际预测方式进行标记:
若所述当前像素有一种预测方式,则不标记所述当前像素的实际预测方式;
若所述当前像素有两种预测方式,则使用1个比特标记所述当前像素的实际预测方式;
若所述当前像素有三种预测方式,则使用1或2个比特标记所述当前像素的实际预测方式,其中,当所述当前像素的实际预测方式与其左相邻像素的实际预测方式相同时使用1个比特标记所述当前像素的实际预测方式;当所述当前像素的实际预测方式与其左相邻像素的实际预测方式不相同时使用2个比特标记所述当前像素的实际预测方式。
由此可见,与现有技术相比,由于在对所述当前像素的实际预测方式进行标记时,采用的是自适应的标记方式,即当所述当前像素的实际预测方式与其左相邻像素的实际预测方式相同时仅使用1个比特标记所述当前像素的实际预测方式,以实现使用尽量少的比特来标记预测方式,从而进一步提高视频帧的压缩率。
但是,对所述当前像素的实际预测方式进行标记的方式不仅仅限于此。
其中,所述视频帧的各个像素按照自左向右、自上而下地顺序进行预测。
下面将以4×4大小的视频帧为例,阐述上述视频帧压缩方法。
如图3所示,为所述4×4大小的视频帧的分区示意图,其中所述视频帧的各个像素及其像素值为Aij和A[i][j](i为列坐标,取值为0、1、2、3,j为行坐标,取值为0、1、2、3),根据所述各个像素的相邻像素情况,即是否具有左相邻像素或上相邻像素,将所述视频帧划分为第一区域B1、第二区域B2、第三区域B3和第四区域B4。
1)所述第一区域B1内的像素A00
由于所述第一区域B1内的像素A00不具有左相邻像素和上相邻像素,故对于所述像素A00不进行预测,而是直接保留其原像素值A[0][0]。
2)所述第二区域B2内的像素A01、A02和A03,
像素A01具有一种预测方式,所述像素A01采用所述预测方式得到的预测值为A[0][0],此时,由于只具有一种预测方式,所以不需要额外的比特对像素A01的实际预测方式进行标记;
像素A02具有两种预测方式,所述像素A02采用所述两种预测方式得到的两个预测值分别为A[0][1]和2*A[0][1]-A[0][0],并将所述像素A02的像素值A[0][2]分别与上述两个预测值进行比较,并将与A[0][2]最接近的一个预测值作为最佳预测值,而且使用1个比特标记所述像素A02的实际预测方式,例如,可以使用1B表示确定A[0][1]作为A02最佳预测值,0B表示确定2*A[0][1]-A[0][0]作为A02的最佳预测值;
像素A03具有两种预测方式,所述像素A03采用所述两种预测方式得到的两个预测值分别为A[0][2]和2*A[0][2]-A[0][1],并将所述像素A03的像素值A[0][3]分别与上述两个预测值进行比较,并将与A[0][3]最接近的一个预测值作为最佳预测值,而且使用1个比特标记所述像素A03的实际预测方式,例如,可以使用1B表示确定A[0][2]作为A03的最佳预测值,0B表示确定2*A[0][2]-A[0][1]作为A03的最佳预测值。
3)所述第三区域B3内的像素A10、A20和A30
像素A10具有两种预测方式,所述像素A10采用所述两种预测方式得到的两个预测值分别为A[0][0]和A[0][1],并将所述像素A10的像素值A[1][0]分别与上述两个预测值进行比较,并将与A[1][0]最接近的一个预测值作为最佳预测值,而且使用1个比特标记所述像素A10的实际预测方式,例如,可以使用1B表示确定A[0][0]作为A10最佳预测值,0B表示确定A[0][1]作为A10的最佳预测值;
像素A20具有三种预测方式,所述像素A20采用所述三种预测方式得到的三个预测值分别为A[1][0]、A[1][1]和2*A[1][0]-A[0][0],并将所述像素A20的像素值A[2][0]分别与上述三个预测值进行比较,并将与A[2][0]最接近的一个预测值作为最佳预测值,由于A20具有三种预测方式,当采用二进制来标记上述三种预测方式时,很容易想到可以使用2个比特来标记A20的实际预测方式,为了进一步提供视频帧的压缩率,这里还提供了另一种标记方式,即自适应的标记方式:可以使用1个或2个比特标记A20的实际预测方式,具体地,当所述当前像素的实际预测方式与其左相邻像素的实际预测方式相同时使用1个比特标记所述当前像素值的实际预测方式;当所述当前像素的实际预测方式与其左相邻像素的实际预测方式不相同时使用2个比特标记所述当前像素的实际预测方式。
例如,假设11B表示采用左相邻像素值作为当前像素的最佳预测值,10B表示采用左下相邻像素值作为当前像素的最佳预测值。
情形一、像素A10采用其左相邻像素值A[0][0]作为最佳预测值:
若像素A20采用其左相邻像素值A[1][0]作为最佳预测值,根据上述假设是应该使用11B表示确定A[1][0]作为像素A20的最佳预测值,这里注意到A20的实际预测方式与其左相邻像素A10的实际预测方式相同,即均是采用左相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替11B来表示确定A[1][0]作为像素A20的最佳预测值;
若像素A20采用其左下相邻像素值A[1][1]作为最佳预测值,根据上述假设是应该使用10B表示确定A[1][1]作为像素A20的最佳预测值;
若像素A20采用2*A[1][0]-A[0][0]作为最佳预测值,由于已经采用0B来表示确定A[1][0]作为像素A20的最佳预测值,即11B未被占用,因而可以使用11B表示确定2*A[1][0]-A[0][0]作为像素A20的最佳预测值。
情形二、像素A10采用其左下相邻像素值A[0][1]作为最佳预测值:
若像素A20采用其左相邻像素值A[1][0]作为最佳预测值,根据上述假设是应该使用11B表示确定A[1][0]作为像素A20的最佳预测值;
若像素A20采用其左下相邻像素值A[1][1]作为最佳预测值,根据上述假设是应该采用10B表示确定A[1][1]作为像素A20的最佳预测值,这里注意到A20的实际预测方式与其左相邻像素A10的实际预测方式相同,即均是采用左下相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替10B来表示确定A[1][1]作为像素A20的最佳预测值;
若像素A20采用2*A[1][0]-A[0][0]作为最佳预测值,由于已经采用0B来表示确定A[1][1]作为像素A20的最佳预测值,即10B未被占用,因而可以使用10B表示确定2*A[1][0]-A[0][0]作为像素A20的最佳预测值。
类似地,所述像素A30具有三种预测方式,所述像素A30采用所述三种预测方式得到的三个预测值分别为A[2][0]、A[2][1]和2*A[2][0]-A[1][0],并将所述像素A30的像素值A[3][0]分别与上述三个预测值进行比较,并将与A[3][0]最接近的一个预测值作为最佳预测值。
例如,假设11B表示采用左相邻像素值作为当前像素的最佳预测值,10B表示采用左下相邻像素值作为当前像素的最佳预测值。
情形一、像素A20采用其左相邻像素值A[1][0]作为最佳预测值:
若像素A30采用其左相邻像素值A[2][0]作为最佳预测值,根据上述假设是应该使用11B表示确定A[2][0]作为像素A30的最佳预测值,这里注意到A30的实际预测方式与其左相邻像素A20的实际预测方式相同,即均是采用左相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替11B来表示确定A[2][0]作为像素A30的最佳预测值;
若像素A30采用其左下相邻像素值A[2][1]作为最佳预测值,根据上述假设是应该使用10B表示确定A[2][1]作为像素A30的最佳预测值;
若像素A30采用2*A[2][0]-A[1][0]作为最佳预测值,由于已经采用0B来表示确定A[2][0]作为像素A30的最佳预测值,即11B未被占用,因而可以使用11B表示确定2*A[2][0]-A[1][0]作为像素A30的最佳预测值。
情形二、像素A20采用其左下相邻像素值A[1][1]作为最佳预测值:
若像素A30采用其左相邻像素值A[2][0]作为最佳预测值,根据上述假设是应该使用11B表示确定A[2][0]作为像素A30的最佳预测值;
若像素A30采用其左下相邻像素值A[2][1]作为最佳预测值,根据上述假设是应该使用10B表示确定A[2][1]作为像素A30最佳预测值,这里注意到A30的实际预测方式与其左相邻像素A20的实际预测方式相同,即均是采用左下相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替10B来表示确定A[2][1]作为像素A30的最佳预测值;
若像素A30采用2*A[2][0]-A[1][0]作为最佳预测值,由于已经采用0B来表示确定A[2][1]作为像素A30最佳预测值,即10B未被占用,因而可以使用10B表示确定2*A[2][0]-A[1][0]作为像素A30的最佳预测值。
情形三、像素A20采用2*A[1][0]-A[0][0]作为最佳预测值:
若像素A30采用其左相邻像素值A[3][0]作为最佳预测值,根据上述假设是应该使用11B表示确定A[2][0]作为像素A30的最佳预测值;
若像素A30采用其左下相邻像素值A[2][1]作为最佳预测值,根据上述假设是应该10B表示确定A[2][1]作为像素A30的最佳预测值;
若像素A30采用2*A[2][0]-A[1][0]作为最佳预测值,这里注意到A30的实际预测方式与其左相邻像素A20的实际预测方式相同,因而可以采用0B来表示确定2*A[2][0]-A[1][0]作为像素A30的最佳预测值。
4)所述第四区域B4内的像素A11和A21
对于所述第四区域B4内的像素值,其中各个像素均具有左相邻像素值且具有上相邻像素值,这里以像素A11和A21为例进行说明。
像素A11具有三种预测方式,所述像素A11采用所述三种预测方式得到的三个预测值分别为A[0][1]、A[1][0]和(A[0][1]+A[1][0]+1)/2,并将所述像素A11的像素值A[1][1]分别与上述三个预测值进行比较,并将与A[1][1]最接近的一个预测值作为最佳预测值。
例如,假设11B表示采用左相邻像素值作为当前像素的最佳预测值,10B表示采用上相邻像素值作为当前像素的最佳预测值。
考虑到像素A01只能采用A[0][0]作为最佳像素值。
若像素A11采用其左相邻像素值A[0][1]作为最佳预测值,根据上述假设是应该使用11B表示确定A[0][1]作为像素A11的最佳预测值;
若像素A11采用其上相邻像素值A[1][0]作为最佳预测值,根据上述假设是应该使用10B表示确定A[1][0]作为像素A11的最佳预测值,这里注意到A11的实际预测方式与其左相邻像素A01的实际预测方式相同,即均是采用上相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替10B来表示确定A[1][0]作为像素A11的最佳预测值;
若像素A11采用(A[0][1]+A[1][0]+1)/2作为最佳预测值,由于已经采用0B来表示确定A[1][0]作为像素A11的最佳预测值,即10B未被占用,因而可以使用10B表示确定(A[0][1]+A[1][0]+1)/2作为像素A11的最佳预测值。
像素A21具有三种预测方式,所述像素A21采用所述三种预测方式得到的三个预测值分别为A[1][1]、A[2][0]和(A[1][1]+A[2][0]+1)/2,并将所述像素A21的像素值A[2][1]分别与上述三个预测值进行比较,并将与A[2][1]最接近的一个预测值作为最佳预测值。
例如,假设11B表示采用左相邻像素值作为当前像素的最佳预测值,10B表示采用上相邻像素值作为当前像素的最佳预测值。
情形一、像素A11采用其左相邻像素值A[0][1]作为最佳预测值:
若像素A21采用其左相邻像素值A[1][1]作为最佳预测值,根据上述假设是应该11B表示确定A[1][1]作为像素A21的最佳预测值,这里注意到A21的实际预测方式与其左相邻像素A11的实际预测方式相同,即均是采用左相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替11B来表示确定A[1][1]作为像素A21的最佳预测值;
若像素A21采用其上相邻像素值A[2][0]作为最佳预测值,根据上述假设是应该使用10B表示确定A[2][0]作为像素A21的最佳预测值;
若像素A21采用(A[1][1]+A[2][0]+1)/2作为最佳预测值,由于已经采用0B来表示确定A[1][1]作为像素A21的最佳预测值,即11B未被占用,因而可以使用11B表示确定(A[0][1]+A[1][0]+1)/2作为像素A21的最佳预测值。
情形二、像素A11采用其上相邻像素值A[1][0]作为最佳预测值:
若像素A21采用其左相邻像素值A[1][1]作为最佳预测值,根据上述假设是应该11B表示确定A[1][1]作为像素A21的最佳预测值;
若像素A21采用其上相邻像素值A[2][0]作为最佳预测值,根据上述假设是应该使用10B表示确定A[2][0]作为像素A21的最佳预测值,这里注意到A21的实际预测方式与其左相邻像素A11的实际预测方式相同,即均是采用上相邻像素值作为当前像素的最佳预测值,这里可以使用0B代替10B来表示确定A[2][0]作为像素A21的最佳预测值;
若像素A21采用(A[1][1]+A[2][0]+1)/2作为最佳预测值,由于已经采用0B来表示确定A[2][0]作为像素A21的最佳预测值,即10B未被占用,因而可以使用10B表示确定(A[1][1]+A[2][0]+1)/2作为像素A21的最佳预测值。
情形三、像素A11采用(A[0][1]+A[1][0]+1)/2作为最佳预测值:
若像素A21采用其左相邻像素值A[1][1]作为最佳预测值,根据上述假设是应该使用11B表示确定A[1][1]作为像素A21的最佳预测值;
若像素A21采用其上相邻像素值A[2][0]作为最佳预测值,根据上述假设是应该使用10B表示确定A[2][0]作为像素A21的最佳预测值;
若像素A21采用(A[1][1]+A[2][0]+1)/2作为最佳预测值,这里注意到A21的实际预测方式与其左相邻像素A11的实际预测方式相同,因而可以采用0B来表示确定(A[1][1]+A[2][0]+1)/2作为像素A21的最佳预测值。
同理,得到所述第四区域B4的其他像素的最佳预测值。
进而获得所述第一区域B1以外的其他像素对应的残差值,并对所述像素A00和其他像素对应的残差值进行变长压缩编码。
本发明实施例提供的视频帧压缩方法,与现有技术相比,一方面,其能够为所述视频帧中的像素提供更精确的预测值,以减小现有压缩方式中残差值的绝对值,从而进一步提高视频帧的压缩率;另一方面,由于在对所述当前像素的实际预测方式进行标记时,采用的是自适应的标记方式,即当所述当前像素值的实际预测方式与其左相邻像素的实际预测方式相同时仅使用1个比特标记所述当前像素的实际预测方式,以实现使用尽量少的比特来标记预测方式,从而进一步提高视频帧的压缩率。
如图4所示,本发明实施例提供一种视频帧压缩装置,所述装置包括所述装置包括划分模块41、第一确定模块42、第二确定模块43、预测模块44以及压缩模块45,其中,
所述划分模块41,用于对视频帧进行区域划分;
具体地,所述划分模块41,用于根据所述视频帧的各个像素是否具有左相邻像素或上相邻像素,将所述视频帧划分为第一区域、第二区域、第三区域和第四区域。
所述第一确定模块42,用于根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;
具体地,当所述视频帧由M×N个像素构成,所述像素的像素值为A[i][j](i和j分别表示列和行,且i=0、1、…、M-1,j=0、1、…、N-1)时,所述第一确定模块,用于当所述当前像素属于所述第一区域时,对所述当前像素不进行预测,并保留所述当前像素的像素值A[0][0];
当所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素相邻时,确定所述当前像素具有一种预测方式,所述预测方式对应的预测值为A[0][0];
当所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素不相邻时,确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][j-1]和2*A[0][j-1]-A[0][j-2];
当所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素相邻时,确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][0]和A[0][1];
当所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素不相邻时,确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][0]、A[i-1][1]和2*A[i-1][0]-A[i-2][0];
当所述当前像素属于所述第四区域时,确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][j]、A[i][j-1]和(A[i-1][j]+A[i][j-1]+1)/2。
所述第二确定模块43,用于根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;
所述预测模块44,用于将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值;
所述压缩模块45,用于对所述残差值进行压缩处理。
具体地,所述压缩模块45,用于对所述第一区域内像素的像素值以及所述第一区域以外的各个像素对应的残差值进行变长压缩编码。
其中,变长压缩编码是指将待进行压缩编码数据进行分组,并根据分组中数据的大小选用特定长度的bit来表示信息,其中,所述变长压缩编码包括有符号变长压缩编码和无符号变长压缩编码,即对于[-2N,2N-1]之间的有符号数据可以用N+1bit来表示,对于[0,2N-1]之间的无符号数据可以用N bit来表示。
本发明实施例提供的具有自适应特性的视频帧压缩装置,对视频帧进行区域划分;根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理。与现有技术相比,其能够为所述视频帧中的像素提供更精确的预测值,以减小现有压缩方式中残差值的绝对值,从而进一步提高视频帧的压缩率。
进一步地,如图5所示,所述装置还包括标记模块46,其中,
所述标记模块46,用于按照以下方式对所述当前像素的实际预测方式进行标记:当所述当前像素有一种预测方式时不标记所述当前像素的实际预测方式;当所述当前像素有两种预测方式时使用1个比特标记所述当前像素的实际预测方式;当所述当前像素有三种预测方式时使用1或2个比特标记所述当前像素的实际预测方式,其中,当所述当前像素的实际预测方式与其左相邻像素的实际预测方式相同时使用1个比特标记所述当前像素的实际预测方式;当所述当前像素的实际预测方式与其左相邻像素的实际预测方式不相同时使用2个比特标记所述当前像素的实际预测方式。
由此可见,与现有技术相比,由于在对所述当前像素的实际预测方式进行标记时,采用的是自适应的标记方式,即当所述当前像素值的实际预测方式与其左相邻像素的实际预测方式相同时仅使用1个比特标记所述当前像素值的实际预测方式,以实现使用尽量少的比特来标记预测方式,从而进一步提高视频帧的压缩率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (6)
1.一种视频帧压缩方法,其特征在于,所述方法包括:
对视频帧进行区域划分;
根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;
根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;
将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值,并对所述残差值进行压缩处理;
所述对视频帧进行区域划分包括:
根据所述视频帧的各个像素是否具有左相邻像素和/或上相邻像素,将所述视频帧划分为第一区域、第二区域、第三区域和第四区域;
其中,所述第一区域内的像素不具有左相邻像素和上相邻像素,所述第二区域内的像素不具有左相邻像素,所述第三区域内的像素不具有上相邻像素,所述第四区域内的像素具有左相邻像素和上相邻像素;
当所述视频帧由M×N个像素构成,所述像素的像素值为A[i][j]时,所述根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式包括:
若所述当前像素属于所述第一区域,则对所述当前像素不进行预测,并保留所述当前像素的像素值A[0][0];
若所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素相邻,则确定所述当前像素具有一种预测方式,所述预测方式对应的预测值为A[0][0];
若所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素不相邻,则确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][j-1]和2*A[0][j-1]-A[0][j-2];
若所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素相邻,则确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][0]和A[0][1];
若所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素不相邻,则确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][0]、A[i-1][1]和2*A[i-1][0]-A[i-2][0];
若所述当前像素属于所述第四区域,则确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][j]、A[i][j-1]和(A[i-1][j]+A[i][j-1]+1)/2;
其中,i和j分别表示列和行,且i=0、1、…、M-1,j=0、1、…、N-1。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值包括:
根据所述至少一种预测方式,得到所述当前像素对应的至少一个预测值;
将所述当前像素的像素值分别与所述至少一个预测值进行比较,以确定所述当前像素所对应的最佳预测值,其中,所述最佳预测值为所述至少一个预测值中与所述当前像素的像素值最接近的一个预测值。
3.根据权利要求1所述的方法,其特征在于,在所述得到所述当前像素对应的残差值之后,且在对所述残差值进行压缩处理之前,还进一步包括:按照以下方式对所述当前像素的实际预测方式进行标记:
若所述当前像素有一种预测方式,则不标记所述当前像素的实际预测方式;
若所述当前像素有两种预测方式,则使用1个比特标记所述当前像素的实际预测方式;
若所述当前像素有三种预测方式,则使用1或2个比特标记所述当前像素的实际预测方式,其中,当所述当前像素的实际预测方式与其左相邻像素的实际预测方式相同时使用1个比特标记所述当前像素的实际预测方式;当所述当前像素的实际预测方式与其左相邻像素的实际预测方式不相同时使用2个比特标记所述当前像素的实际预测方式。
4.一种视频帧压缩装置,其特征在于,所述装置包括划分模块、第一确定模块、第二确定模块、预测模块以及压缩模块,其中,
所述划分模块,用于对视频帧进行区域划分;
所述第一确定模块,用于根据当前像素所属的区域,确定所述当前像素所对应的至少一种预测方式;
所述第二确定模块,用于根据所述至少一种预测方式,确定所述当前像素所对应的最佳预测值;
所述预测模块,用于将所述当前像素的像素值与所述最佳预测值进行作差,得到所述当前像素对应的残差值;
所述压缩模块,用于对所述残差值进行压缩处理;
所述划分模块,用于根据所述视频帧的各个像素是否具有左相邻像素和/或上相邻像素,将所述视频帧划分为第一区域、第二区域、第三区域和第四区域;
其中,所述第一区域内的像素不具有左相邻像素和上相邻像素,所述第二区域内的像素不具有左相邻像素,所述第三区域内的像素不具有上相邻像素,所述第四区域内的像素具有左相邻像素和上相邻像素;
当所述视频帧由M×N个像素构成,所述像素的像素值为A[i][j]时,所述第一确定模块,用于当所述当前像素属于所述第一区域时,对所述当前像素不进行预测,并保留所述当前像素的像素值A[0][0];
当所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素相邻时,确定所述当前像素具有一种预测方式,所述预测方式对应的预测值为A[0][0];
当所述当前像素属于所述第二区域且所述当前像素与所述第一区域内的像素不相邻时,确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][j-1]和2*A[0][j-1]-A[0][j-2];
当所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素相邻时,确定所述当前像素具有两种预测方式,所述两种预测方式对应的预测值分别为A[0][0]和A[0][1];
当所述当前像素属于所述第三区域且所述当前像素与所述第一区域内的像素不相邻时,确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][0]、A[i-1][1]和2*A[i-1][0]-A[i-2][0];
当所述当前像素属于所述第四区域时,确定所述当前像素具有三种预测方式,所述三种预测方式对应的预测值分别为A[i-1][j]、A[i][j-1]和(A[i-1][j]+A[i][j-1]+1)/2;
其中,i和j分别表示列和行,且i=0、1、…、M-1,j=0、1、…、N-1。
5.根据权利要求4所述的装置,其特征在于,所述第二确定模块,用于根据所述至少一种预测方式,得到所述当前像素对应的至少一个预测值;
将所述当前像素的像素值分别与所述至少一个预测值进行比较,以确定所述当前像素所对应的最佳预测值,其中,所述最佳预测值为所述至少一个预测值中与所述当前像素的像素值最接近的一个预测值。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括标记模块,其中,所述标记模块,用于按照以下方式对所述当前像素的实际预测方式进行标记:当所述当前像素有一种预测方式时不标记所述当前像素的实际预测方式;当所述当前像素有两种预测方式时使用1个比特标记所述当前像素的实际预测方式;当所述当前像素有三种预测方式时使用1或2个比特标记所述当前像素的实际预测方式,其中,当所述当前像素的实际预测方式与其左相邻像素的实际预测方式相同时使用1个比特标记所述当前像素的实际预测方式;当所述当前像素的实际预测方式与其左相邻像素的实际预测方式不相同时使用2个比特标记所述当前像素的实际预测方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510154972.0A CN106162168B (zh) | 2015-04-02 | 2015-04-02 | 视频帧压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510154972.0A CN106162168B (zh) | 2015-04-02 | 2015-04-02 | 视频帧压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106162168A CN106162168A (zh) | 2016-11-23 |
CN106162168B true CN106162168B (zh) | 2019-09-17 |
Family
ID=57338895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510154972.0A Active CN106162168B (zh) | 2015-04-02 | 2015-04-02 | 视频帧压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106162168B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1615020A (zh) * | 2004-11-10 | 2005-05-11 | 华中科技大学 | 一种复杂度可分级的帧内预测方法 |
CN1684495A (zh) * | 2004-04-15 | 2005-10-19 | 微软公司 | 图像和视频的预测无损编码 |
CN101877792A (zh) * | 2010-06-17 | 2010-11-03 | 北京中星微电子有限公司 | 帧内模式预测方法与装置、编码器 |
CN102918844A (zh) * | 2010-05-30 | 2013-02-06 | Lg电子株式会社 | 增强的帧内预测模式信令 |
CN103618898A (zh) * | 2013-12-09 | 2014-03-05 | 中国计量学院 | 一种支持随机访问的复杂度图像无损压缩方法 |
JP2015019152A (ja) * | 2013-07-09 | 2015-01-29 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
-
2015
- 2015-04-02 CN CN201510154972.0A patent/CN106162168B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684495A (zh) * | 2004-04-15 | 2005-10-19 | 微软公司 | 图像和视频的预测无损编码 |
CN1615020A (zh) * | 2004-11-10 | 2005-05-11 | 华中科技大学 | 一种复杂度可分级的帧内预测方法 |
CN102918844A (zh) * | 2010-05-30 | 2013-02-06 | Lg电子株式会社 | 增强的帧内预测模式信令 |
CN101877792A (zh) * | 2010-06-17 | 2010-11-03 | 北京中星微电子有限公司 | 帧内模式预测方法与装置、编码器 |
JP2015019152A (ja) * | 2013-07-09 | 2015-01-29 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
CN103618898A (zh) * | 2013-12-09 | 2014-03-05 | 中国计量学院 | 一种支持随机访问的复杂度图像无损压缩方法 |
Non-Patent Citations (1)
Title |
---|
RCE2: Test 1 – Residual DPCM for HEVC lossless coding;Sunil Lee;《Joint Collaborative Team on Video Coding (JCT-VC)》;20130426;1-8 |
Also Published As
Publication number | Publication date |
---|---|
CN106162168A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10511841B2 (en) | Encoding and decoding methods and apparatuses | |
CN103096055B (zh) | 一种图像信号帧内预测及解码的方法和装置 | |
WO2017000404A1 (zh) | 压缩、解压缩数据信息的方法和装置、补偿驱动的方法和装置以及显示装置 | |
EP3869807A1 (en) | Image encoding and decoding method and device | |
KR101946598B1 (ko) | 이미지 코딩, 디코딩 방법 및 장치 | |
CN103067715A (zh) | 深度图像的编解码方法和编解码装置 | |
CN104754362B (zh) | 使用精细划分块匹配的图像压缩方法 | |
KR20170069917A (ko) | 인트라 스킵 모드의 예측 방법을 나타내는 정보의 부호화 방법 및 장치, 복호화 방법 및 장치 | |
KR20210042355A (ko) | 비디오 이미지 성분의 예측 방법, 장치 및 컴퓨터 저장 매체 | |
EP3499882A1 (en) | Method and image processing apparatus for video coding | |
CN106375762A (zh) | 参考帧数据压缩方法及其装置 | |
CN100396102C (zh) | 用于预测视频数据单元的直流系数的方法和设备 | |
US20220159265A1 (en) | Method and device for image encoding and decoding | |
US9076408B2 (en) | Frame data shrinking method used in over-driving technology | |
KR20050117727A (ko) | 비트 정밀도를 낮춘 부화소 움직임 추정방법 및 장치 | |
CN103716629A (zh) | 用于图像处理的方法、装置编码器和解码器 | |
CN102685506A (zh) | 帧内预测的方法和预测装置 | |
CN112771861A (zh) | 色度帧内预测方法和装置、及计算机存储介质 | |
CN103079072A (zh) | 帧间预测方法、编码设备和解码设备 | |
CN106162168B (zh) | 视频帧压缩方法及装置 | |
JP2007228093A (ja) | 動き検出装置及び動き検出方法 | |
JP2006339774A (ja) | 動画像符号化装置 | |
WO2012095037A1 (zh) | 一种编解码方法和装置 | |
CN102298782A (zh) | 用于无损视频压缩的参数估计的系统、方法和计算机程序产品 | |
CN106162201B (zh) | 一种基于符号位分组的图像数据压缩方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |