本发明涉及视频编码技术领域,尤其涉及一种基于符号位分组的图像数据压缩方法及装置。
背景技术:
现有技术中,在视频编解码过程中需要频繁地读取内存中的图像数据,这一过程需要占用大量的系统带宽和资源,为了节省系统带宽及资源,通常是先对待存储的图像数据进行压缩,并将压缩后的图像数据存储到内存中,以便于后续的使用。
例如,可以利用DPCM(Differential Pulse Code Modulation,差分脉冲编码调制)技术对图像数据进行压缩,具体为:对于图像数据的像素数据块,首先根据图像的空间相关性,通过周边位置的像素值对当前位置的像素值进行预测,其中周边位置的像素值称为预测值,当前位置的实际像素值与预测值之间的差值称为残差值,然后,采用变长编码方式对得到的残差数据进行编码,从而实现对图像数据的压缩。变长编码方式是指将数据进行分组,并根据分组中数据的大小选用特定长度的bit来表示信息,其中,变长编码方式包括有符号变长编码和无符号变长编码,即对于[-2N,2N-1]之间的数据可以用N+1 bit来表示,对于[0,2N-1]之间的数据可以用N bit来表示。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
上述图像数据的压缩方式是采用固定的预设模板对当前位置的像素值进行预测(例如,规定以左边的像素值作为当前位置像素值的预测值),但是由于数据是随机的,所以任何预设模板都难以很好地匹配所有的情况,这样就会导致残差数据的均值偏离或产生绝对值过大的残差数据,即得到的残差数据仍然存在一定相关性,从而限制了图像数据压缩率的提高。
技术实现要素:
本发明提供一种基于符号位分组的图像数据压缩方法及装置,其能够减小现有压缩方式的残差数据的绝对值峰值,并实现使用更少的比特来表示图像数据,从而进一步提高了图像数据的压缩率。
一方面,本发明提供一种基于符号位分组的图像数据压缩方法,所述方法包括:
将图像数据对应的残差数据分解为多个2×2数据块;
根据所述2×2数据块的符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块;
将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。
另一方面,本发明提供一种基于符号位分组的图像数据压缩装置,所述装置包括分解模块、压缩模块和合成模块,其中,
所述分解模块,用于将图像数据对应的残差数据分解为多个2×2数据块;
所述压缩模块,用于根据所述2×2数据块的符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块;
所述合成模块,用于将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。
本发明提供的基于符号位分组的图像数据压缩方法及装置,将图像数据对应的残差数据分解为多个2×2数据块;根据所述2×2数据块的符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块;将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。与现有技术相比,其能够减小现有压缩方式的残差数据的绝对值,以实现使用更少的比特来表示图像数据,从而进一步提高图像数据的压缩率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明基于符号位分组的图像数据压缩方法一实施例的流程示意图;
图2为上述实施例中步骤S12的具体流程示意图;
图3为本发明基于符号位分组的图像数据压缩装置一实施例的结构示意图;
图4为上述实施例中的所述压缩模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种基于符号位分组的图像数据压缩方法,所述方法包括:
S11、将图像数据对应的残差数据分解为多个2×2数据块。
S12、根据所述2×2数据块的符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块。
S13、将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。
本发明实施例提供的基于符号位分组的图像数据压缩方法,将图像数据对应的残差数据分解为多个2×2数据块;根据所述2×2数据块的符号位的组合类型,对所述2x2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块;将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。与现有技术相比,其能够减小现有压缩方式的残差数据的绝对值,以实现使用更少的比特来表示图像数据,从而进一步提高图像数据的压缩率。
进一步地,如图2所示,本发明实施例提供了上述实施例中步骤S12的具体流程,其中,所述2×2数据块的符号位的所有组合情况如表1所示,这里,规定数据零的符号位为正。
由表1可知,所述2×2数据块的符号位共有16种组合情况,且所述16种组合情况呈现出3种组合类型,所述3种组合类型如下:三正一负或三负一正、
全正或全负以及两正两负。
S21、确定当前待压缩的2×2数据块的符号位组合类型。
如果为所述当前待压缩的2×2数据块的符号位组合类型为三正一负或三负一正,则执行步骤S22和S23;
如果所述当前待压缩的2×2数据块的符号位组合类型为全正或全负,则执行步骤S24和S25;
如果所述当前待压缩的2×2数据块的符号位组合类型为两正两负,则执行步骤S26和S27。
表1
S22、采用1个比特表示所述2×2数据块的符号位的组合类型,采用2个比特表示唯一不同的符号位所处的位置,采用1个比特表示所述唯一不同的符号位是负符号位还是正符号位。
S23、对所述2×2数据块中每个数据取绝对值,得到由四个正数构成的第一数据块,并采用2个比特表示所述第一数据块中的最小正数的位置;将所述第一数据块中处于其他位置的正数与所述最小正数作差得到相应的三个差值,进而得到由所述最小正数和所述三个差值构成的第二数据块;对所述第二数据块中的数据进行无符号变长编码,得到压缩后的2×2数据块。
S24、采用2个比特表示所述2×2数据块的符号位的组合类型,采用1个比特表示所述2×2数据块的符号位的具体组合情况为全正或全负。
S25、对所述2×2数据块中每个数据取绝对值,得到由四个正数构成的第一数据块,并采用2个比特表示所述第一数据块中的最小正数的位置;将所述第一数据块中处于其他位置的正数与所述最小正数作差得到相应的三个差值,进而得到由所述最小正数和所述三个差值构成的第二数据块;对所述第二数据块中的数据进行无符号变长编码,得到压缩后的2×2数据块。
S26、采用2个比特表示所述2×2数据块的符号位的组合类型。
S27、将所述2×2数据块中的一列数据减去或加上另一列数据得到新的一列数据,进而得到由所述新的一列数据和所述另一列数据构成的第三数据块;采用1个比特表示对第i列进行操作,采用1个比特表示所述第i列的数据与第j列的数据进行加法操作或减法操作,其中,i的取值为0或1,相应地,j的取值为1或0;对所述第三数据块中的数据进行有符号变长编码,得到压缩后的2×2数据块。
本发明实施例提供的2×2数据块的压缩方法,其根据所述2×2数据块的3种符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块。与现有技术相比,其能够减小现有压缩方式的残差数据的绝对值,以实现使用更少的比特来表示图像数据,从而进一步提高图像数据的压缩率。
如图3所示,本发明实施例提供一种基于符号位分组的图像数据压缩装置,所述装置包括分解模块31、压缩模块32、合成模块33,其中,
所述分解模块31,用于将图像数据对应的残差数据分解为多个2×2数据块;
所述压缩模块32,用于根据所述2×2数据块的符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块;
所述合成模块33,用于将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。
本发明实施例提供的基于符号位分组的图像数据压缩装置,将图像数据对应的残差数据分解为多个2×2数据块;根据所述2×2数据块的符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块;将得到的多个压缩后的2×2数据块进行合成,得到压缩后的残差数据。与现有技术相比,其能够减小现有压缩方式的残差数据的绝对值,以实现使用更少的比特来表示图像数据,从而进一步提高图像数据的压缩率。
进一步地,如图4所示,上述实施例中的所述压缩模块32包括第一压缩单元321、第二压缩单元322、第三压缩单元323。
其中,所述第一压缩单元321,用于当所述2×2数据块的符号位的组合类型为三正一负或三负一正时,采用1个比特表示所述2×2数据块的符号位的组合类型,采用2个比特表示唯一不同的符号位所处的位置,采用1个比特表示所述唯一不同的符号位是负符号位还是正符号位,其中,数据零的符号位为正;
以及用于对所述2×2数据块中每个数据取绝对值,得到由四个正数构成的第一数据块,并采用2个比特表示所述第一数据块中的最小正数的位置;将所述第一数据块中处于其他位置的正数与所述最小正数作差得到相应的三个差值,进而得到由所述最小正数和所述三个差值构成的第二数据块;对所述第二数据块中的数据进行无符号变长编码,得到压缩后的2×2数据块。
所述第二压缩单元322,用于当所述2×2数据块的符号位的组合类型为全正或全负时,采用2个比特表示所述2×2数据块的符号位的组合类型,采用1个比特表示所述2×2数据块的符号位的具体组合情况为全正或全负,其中,数据零的符号位为正;
以及用于对所述2×2数据块中每个数据取绝对值,得到由四个正数构成的第一数据块,并采用2个比特表示所述第一数据块中的最小正数的位置;将所述第一数据块中处于其他位置的正数与所述最小正数作差得到相应的三个差值,进而得到由所述最小正数和所述三个差值构成的第二数据块;对所述第二数据块中的数据进行无符号变长编码,得到压缩后的2×2数据块。
所述第三压缩单元323,用于当所述2×2数据块的符号位的组合类型为两正两负时,采用2个比特表示所述2×2数据块的符号位的组合类型,其中,数据零的符号位为正;
以及用于将所述2×2数据块中的一列数据减去或加上另一列数据得到新的一列数据,进而得到由所述新的一列数据和所述另一列数据构成的第三数据块;采用1个比特表示对第i列进行操作,采用1个比特表示所述第i列的数据与第j列的数据进行加法操作或减法操作,其中,i的取值为0或1,相应地,j的取值为1或0;对所述第三数据块中的数据进行有符号变长编码,得到压缩后的2×2数据块。
本发明实施例提供的压缩模块,根据所述2×2数据块的3种符号位的组合类型,对所述2×2数据块的数据进行不同方式的压缩操作,得到压缩后的2×2数据块。与现有技术相比,其能够减小现有压缩方式的残差数据的绝对值,以实现使用更少的比特来表示图像数据,从而进一步提高图像数据的压缩率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。