图像编码、解码方法、计算机设备和图像处理系统与流程

文档序号:20040089发布日期:2020-02-28 11:48阅读:230来源:国知局
图像编码、解码方法、计算机设备和图像处理系统与流程
本发明涉及图像处理
技术领域
,尤其涉及一种图像编码、解码方法、计算机设备和图像处理系统。
背景技术
:电子墨水屏在智能硬件产品中的使用越来越多,尤其在一些有静态显示需求并且更新频次不高的低功耗应用场景下使用越来越频繁。三色电子墨水屏共包含三种颜色,如白红黑三色屏,或者白黄黑三色屏,但不限于以上颜色搭配方案。例如,用w、g、b分别三种颜色,三色电子墨水屏的颜色编码规则如下:00表示w,01与10均表示g,11表示b。其中00、11各表示一种颜色,01、10表示同一种颜色,编码规则中存在冗余。因此,在三色电子墨水屏的图像数据传输过程,如何减少数据发送量、降低数据传输过程中的功耗是需要解决的一个问题。技术实现要素:本发明提供一种图像编码、解码方法、计算机设备和图像处理系统,以解决相关技术中的不足。根据本发明实施例的第一方面,提供一种图像编码方法,包括:获取第一图像数据向量,所述第一图像数据向量包括n个元素,所述第一图像数据向量包括m类比特对,m类比特对用于表示k种颜色;n为正整数,k为小于m的正整数;对所述第一图像数据向量进行编码,获得第二图像数据向量;所述第二图像数据向量包括n个元素,所述第二图像数据向量包括k类比特对,k类比特对用于表示k种颜色;将所述第二图像数据向量中n个元素分为l个第一数据块,每个所述第一数据块的长度相同;l为正整数;将所述第一数据块压缩编码为第二数据块,获得第三图像数据向量,所述第三图像数据向量包括l个第二数据块;每个所述第二数据块的长度相同,所述第二数据块的长度小于所述第一数据块的长度。在一个实施例中,所述元素为一个字节,m为4,k为3。在一个实施例中,所述对所述第一图像数据向量进行编码,获得第二图像数据向量,包括:对所述第一图像数据向量中第n个元素按照如下编码规则进行编码,获得所述第二图像数据向量中的第n个元素:cx+1cx=bx+1+bx其中,n=1、2、……、或n,所述第一图像数据向量中第n个元素为bn,bn=b7b6b5b4b3b2b1b0,所述第二图像数据向量中的第n个元素为cn,cn=c7c6c5c4c3c2c1c0,bx表示bn中的第x位,cx表示cn中的第x位,x的取值为0、2、4或6。在一个实施例中,所述第一数据块的长度为5个字节,所述第二数据块的长度为4个字节。在一个实施例中,所述将所述第一数据块压缩编码为第二数据块,包括:对所述第一数据块按照如下编码规则进行压缩编码,获得所述第二数据块:d(7:0)=34*c9c8+33*c7c6+32*c5c4+31*c3c2+30*c1c0其中,d(7:0)为第二数据块,d(7:0)=d7d6d5d4d3d2d1d0,c(9:0)为第一数据块,c(9:0)=c9c8c7c6c5c4c3c2c1c0。根据本发明实施例的第二方面,提供一种图像解码方法,包括:将第三图像数据向量中的元素分为l个第二数据块,每个所述第二数据块的长度相同;l为正整数;将所述第二数据块解压缩编码为第一数据块,得到第二图像数据向量,每个所述第一数据块的长度相同,所述第二数据块的长度小于所述第一数据块的长度;所述第二图像数据向量包括n个元素;n为正整数,所述第二图像数据向量包括k类比特对,k类比特对用于表示k种颜色;对所述第二图像数据向量进行解码,获得第一图像数据向量;所述第一图像数据向量包括n个元素,所述第一图像数据向量包括m类比特对,m类比特对用于表示k种颜色;k为小于m的正整数。在一个实施例中,所述元素为一个字节,m为4,k为3,所述第一数据块的长度为5个字节,所述第二数据块的长度为4个字节。在一个实施例中,所述将所述第二数据块解压缩编码为第一数据块,得到第二图像数据向量,包括:对所述第二数据块按照如下解码规则进行解压缩编码,获得所述第一数据块:c1c0=d(7:0)%3,c3c2=(d(7:0)%32)/3,c5c4=(d(7:0)%33)/32,c7c6=(d(7:0)%34)/33,c9c8=(d(7:0)%35)/34;其中,d(7:0)为所述第二数据块,d(7:0)=d7d6d5d4d3d2d1d0,c(9:0)为所述第一数据块,c(9:0)=c9c8c7c6c5c4c3c2c1c0,%为取余运算符,/为取整运算符。在一个实施例中,所述对所述第二图像数据向量进行解码,获得第一图像数据向量,包括:对所述第一数据块按照如下解码规则进行解码,获得所述第一图像数据向量:bx+1bx=cx+1cx+cx+1其中,所述第一图像数据向量包括l个第三数据块,所述第三数据块的长度等于所述第一数据块的长度,所述第三数据块为b’(9:0),b’(9:0)=b9b8b7b6b5b4b3b2b1b0,c(9:0)为第一数据块,c(9:0)=c9c8c7c6c5c4c3c2c1c0,bx表示b’(9:0)中的第x位,cx表示c(9:0)中的第x位,x的取值为0、2、4、6或8。根据本发明实施例的第三方面,提供一种计算机设备,包括处理器和存储器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器上所存储的计算机程序,实现上述第一方面或第二方面的方法步骤。根据本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面的方法步骤。根据本发明实施例的第五方面,提供一种图像处理系统,包括图像编码装置和图像解码装置;所述图像编码装置包括处理器和存储器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器上所存储的计算机程序,实现上述第一方面所述的方法步骤;所述图像解码装置包括处理器和存储器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器上所存储的计算机程序,实现上述第二方面所述的方法步骤。根据上述实施例可知,通过对第一图像数据向量进行编码获得第二图像数据向量,由于第一图像数据向量包括m类比特对,m类比特对用于表示k种颜色,第二图像数据向量包括k类比特对,k类比特对用于表示k种颜色,k为小于m的正整数,因此减少了冗余信息,又通过将第二图像数据向量中n个元素分为l个第一数据块并将每个第一数据块压缩编码为对应的第二数据块,获得第三图像数据向量,且第二数据块的长度小于第一数据块的长度,因此,第三图像数据向量的数据量小于第一图像数据向量的数据量。所以,可以通过编码减小图像数据的数据量,进而可以有效缩短图像数据收发时间,降低图像数据传输过程中的功耗。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。图1是根据本发明实施例示出的一种图像编码方法的流程图;图2是根据本发明实施例示出的一种比特流数据结构示意图;图3是根据本发明实施例示出的另一种比特流数据结构示意图;图4是根据本发明实施例示出的另一种比特流数据结构示意图;图5是根据本发明实施例示出的一种编码前后比特流数据对比示意图;图6是根据本发明实施例示出的一种图像解码方法的流程图;图7是根据本发明实施例示出的一种计算机设备的框图;图8是根据本发明实施例示出的另一种计算机设备的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。图1是根据本发明实施例示出的一种图像编码方法。该图像编码方法可以应用于具备电子墨水屏的计算机设备,该计算机设备可以是电子书阅读器、电子标签、智能手机、平板电脑、个人计算机或服务器等。该图像编码方法,如图1所示,可以包括以下步骤101~104:在步骤101中,获取第一图像数据向量,第一图像数据向量包括n个元素,第一图像数据向量包括m类比特对,m类比特对用于表示k种颜色;n为正整数,k为小于m的正整数。在一个实施例中,电子墨水屏可以是三色电子墨水屏。三色电子墨水屏可以显示三种颜色。三色电子墨水屏显示的图像的数据可以用第一图像数据向量vector表示,该第一图像数据向量中包括n个元素。每个元素可以是一个0~255之间的整型数。在一个实施例中,一个元素为一个字节。一个元素可以存储为8bits二进制数。在一个实施例中,m为4,k为3。即,第一图像数据向量包括4类比特对,例如,4类比特对包括第一类比特对00、第二类比特对01、第三类比特对10与第四类比特对11。在一个实施例中,三色电子墨水屏的显示的图像包括3种颜色的像素。3种颜色分别用w、g、b表示,其中,w用第一类比特对00表示,g用第二类比特对01与第三类比特对10表示,b用第四类比特对11表示。在一个实施例中,假设三色电子墨水屏的显示的图像的分辨率为x*y,图像中每个像素采用2bits表示,则第一图像数据向量vector的元素个数n=x*y*2/8。需要说明的是,第一图像数据向量vector可以是一个一维向量,但不限于此。在步骤102中,对第一图像数据向量进行编码,获得第二图像数据向量;第二图像数据向量包括n个元素,第二图像数据向量包括k类比特对,k类比特对用于表示k种颜色。在一个实施例中,第二图像数据向量包括3类比特对,3类比特对可以分别为第一类比特对00、第二类比特对01与第三类比特对10。w用第一类比特对00表示,g用第二类比特对01表示,b用第三类比特对10表示。在一个实施例中,可以对第一图像数据向量中第n个元素按照如下式(1)所示的编码规则进行编码,获得第二图像数据向量中的第n个元素:cx+1cx=bx+1+bx(1)其中,n=1、2、……、或n。第一图像数据向量中第n个元素为bn,bn=b7b6b5b4b3b2b1b0,第二图像数据向量中的第n个元素为cn,cn=c7c6c5c4c3c2c1c0,bx表示bn中的第x位,cx表示cn中的第x位,x为自然数,x的取值为0、2、4或6。例如,当x为0时,c1c0=b1+b0;当x为6时,c7c6=b7+b6。对于w、g、b三种颜色的数据表示,编码前后的对应关系如下表1所示:表1颜色编码前编码后w0000g0101g1001b1110经过编码之后,每种颜色的编码仍然采用2位二进制数表示,每种颜色的编码只存在一种形式,即00表示w色,01表示g色,10表示b色。编码后,11不表示任何颜色。将第一图像数据向量中的n个字节看作8n个bit的比特流数据,取其中每10个bit为一组,则按照式(1)所示的编码规则进行编码之后,可以得到第二图像数据向量中的8n个bit的比特流数据。例如,取第一图像数据向量中的b(9:0)=b9b8b7b6b5b4b3b2b1b0,并将b(9:0)按照式(1)所示的编码规则进行编码之后,可以得到第二图像数据向量中的c(9:0),其中,c(9:0)=c9c8c7c6c5c4c3c2c1c0。其中,b(9:0)的比特流数据请参见图2,c(9:0)的比特流数据请参见图3。经上述编码后,第二图像数据向量中也包括n个元素,转码过程中不丢失有效信息,数据长度不变。需要说明的是,当三色电子墨水屏的颜色编码规则不是“00表示w,01与10均表示g,11表示b”时,对第一图像数据向量中第n个元素可不按照如式(1)所示的编码规则进行编码,获得第二图像数据向量中的第n个元素,而是使用其他编码规则进行编码。在步骤103中,将第二图像数据向量中n个元素分为l个第一数据块,每个第一数据块的长度相同;l为正整数。在一个实施例中,第一数据块的长度为5个字节。在本实施例中,可以将第二图像数据向量中n个元素等分为l个第一数据块,每个第一数据块的长度为5个字节。在步骤104中,将第一数据块压缩编码为第二数据块,获得第三图像数据向量,第三图像数据向量包括l个第二数据块;每个第二数据块的长度相同,第二数据块的长度小于第一数据块的长度。在一个实施例中,第二数据块的长度为4个字节。也就是,将每个第一数据块压缩编码为对应的第二数据块。例如,可以将5个字节的第一数据块压缩编码为对应的4个字节的第二数据块。在一个实施例中,可以对每个第一数据块按照如下式(2)所示的编码规则进行压缩编码,获得对应的第二数据块:d(7:0)=34*c9c8+33*c7c6+32*c5c4+31*c3c2+30*c1c0(2)其中,d(7:0)为第二数据块,d(7:0)=d7d6d5d4d3d2d1d0,c(9:0)为第一数据块,c(9:0)=c9c8c7c6c5c4c3c2c1c0。d(7:0)的比特流数据请参见图4。需要说明的是,为便于理解,上文中将每个第一数据块记为c(9:0),c(9:0)=c9c8c7c6c5c4c3c2c1c0,将对应的第二数据块记为d(7:0),d(7:0)=d7d6d5d4d3d2d1d0。当然,在实际应用中,第一数据块并不一定都是用c(9:0)表示,例如,第二图像数据向量中从0位开始,第一个第一数据块记为c(9:0),c(9:0)=c9c8c7c6c5c4c3c2c1c0,第二个第一数据块记为c(19:10),c(19:10)=c19c18c17c16c15c14c13c12c11c00,第三个第一数据块记为c(29:20),c(29:20)=c29c28c27c26c25c24c23c22c21c20。同样地,第二数据块并不一定都是用d(7:0)表示,例如,第三图像数据向量中从0位开始,第一个第二数据块记为d(7:0),d(7:0)=d7d6d5d4d3d2d1d0,第二个第二数据块记为d(15:8),d(15:8)=d15d14d13d12d11d10d9d8,第三个第二数据块记为d(23:16),d(23:16)=d23d22d21d20d19d18d17d16。第一数据块c(9:0)压缩编码后为第二数据块d(7:0),第一数据块c(19:10)压缩编码后为第二数据块d(15:8),第一数据块c(29:20)压缩编码后为第二数据块d(23:16)。需要说明的是,当三色电子墨水屏的颜色编码规则不是“00表示w,01与10均表示g,11表示b”时,对每个第一数据块可不按照如式(2)所示的编码规则进行压缩编码,获得对应的第二数据块,而是使用其他压缩编码规则进行编码。经过步骤101~104,第一图像数据向量可压缩为第三图像数据向量。例如,如图5所示,当第一图像数据向量为b(39:0)时,第三图像数据向量可以为d(31:0)。为便于记载,将第一图像数据向量中的第四数据块从0位开始,依次记为b1、b2、b3、b4、b5,每个第四数据块为10bit。将第三图像数据向量中的第二数据块从0位开始,依次记为d1、d2、c3、d4,每个第二数据块为8bit。采用上述的编码方法,可以将第一图像数据向量中每5个字节压缩编码为4个字节,请参见图5,将第一图像数据向量中连续5个字节分为一组,用二进制数表示,从最低位开始,每10位可转化为一个压缩编码后的字节,原始数据b1、b2、b3、b4、b5可以转化为压缩后的数据d1、d2、d3、d4。压缩编码后的数据d(7:0)与压缩编码前的数据b(9:0)包含有相同的图像信息。d(7:0)的取值范围为[0,242],而d(7:0)为8位二进制数,8位二进制数的取值范围为[0,255],足够覆盖以上压缩编码之前第一图像数据向量所表示的信息。因此,该编码方法所表示数据信息无丢失,且压缩比为1.25,可以有效的降低图像传输过程中的数据量。该编码方法应用在低功耗智能终端上,可以有效缩短无线终端收发数据时间,降低数据传输过程中的功耗,具有重要的使用价值。本实施例中,通过对第一图像数据向量进行编码获得第二图像数据向量,由于第一图像数据向量包括m类比特对,m类比特对用于表示k种颜色,第二图像数据向量包括k类比特对,k类比特对用于表示k种颜色,k为小于m的正整数,因此减少了冗余信息,又通过将第二图像数据向量中n个元素分为l个第一数据块并将每个第一数据块压缩编码为对应的第二数据块,获得第三图像数据向量,且第二数据块的长度小于第一数据块的长度,因此,第三图像数据向量的数据量小于第一图像数据向量的数据量。所以,可以通过编码减小图像数据的数据量,进而可以有效缩短图像数据收发时间,降低图像数据传输过程中的功耗。本发明的实施例还提出了一种图像解码方法。对应图1所示实施例中所描述的图像编码方法。如图6所述,该图像解码方法,包括以下步骤601~603:在步骤601中,将第三图像数据向量中的元素分为l个第二数据块,每个第二数据块的长度相同;l为正整数。在一个实施例中,每个第二数据块的长度均为4个字节。在本实施例中,可以将第三图像数据向量的比特流数据等分为若干个第二数据块。在步骤602中,将第二数据块解压缩编码为第一数据块,得到第二图像数据向量,每个第一数据块的长度相同,第二数据块的长度小于第一数据块的长度;第二图像数据向量包括n个元素;n为正整数,第二图像数据向量包括k类比特对,k类比特对用于表示k种颜色。在一个实施例中,每个元素为一个字节,k为3,第一数据块的长度为5个字节。在一个实施例中,对每个第二数据块按照如下式(3)所示的解码规则进行解压缩编码,获得对应的第一数据块:c1c0=d(7:0)%3,c3c2=(d(7:0)%32)/3,c5c4=(d(7:0)%33)/32,c7c6=(d(7:0)%34)/33,c9c8=(d(7:0)%35)/34,(3)其中,d(7:0)为第二数据块,d(7:0)=d7d6d5d4d3d2d1d0,c(9:0)为第一数据块,c(9:0)=c9c8c7c6c5c4c3c2c1c0,%为取余运算符,/为取整运算符。按照上述解码规则,可以将每个第二数据块进行解码,从而得到对应的第一数据块。即将d(7:0)进行解码,可以得到c(9:0),其中,d(7:0)=d7d6d5d4d3d2d1d0,c(9:0)=c9c8c7c6c5c4c3c2c1c0。需要说明的是,当三色电子墨水屏的颜色编码规则不是“00表示w,01与10均表示g,11表示b”时,对每个第二数据块可不按照如式(3)所示的解码规则进行解压缩编码,获得对应的第一数据块,而是使用其他解码规则进行解码。在步骤603中,对第二图像数据向量进行解码,获得第一图像数据向量;第一图像数据向量包括n个元素,第一图像数据向量包括m类比特对,m类比特对用于表示k种颜色;k为小于m的正整数。在一个实施例中,m为4。在本实施例中,可以4类比特对用于表示3种颜色。在一个实施例中,对每个第一数据块按照如下式(4)所示的解码规则进行解码,获得所述第一图像数据向量:bx+1bx=cx+1cx+cx+1(4)其中,第一图像数据向量包括l个第三数据块,第三数据块的长度等于第一数据块的长度,第三数据块为b’(9:0),b’(9:0)=b9b8b7b6b5b4b3b2b1b0,c(9:0)为第一数据块,c(9:0)=c9c8c7c6c5c4c3c2c1c0,bx表示b’(9:0)中的第x位,cx表示c(9:0)中的第x位,x为自然数,x的取值为0、2、4、6或8。当x分别为0时,b1b0=c1c0+c1;当x分别为2时,b3b2=c3c2+c3;当x分别为4时,b5b4=c5c4+c5;当x分别为6时,b7b6=c7c6+c7;当x分别为8时,b9b8=c9c8+c9。在一个实施例中,对一个第一数据块c(9:0)按照如式(4)所示的解码规则进行解码,可以得到对应的第三数据块b’(9:0),b’(9:0)=b9b8b7b6b5b4b3b2b1b0。b’(9:0)与b(9:0)具有相同的数据有效信息。需要说明的是,当三色电子墨水屏的颜色编码规则不是“00表示w,01与10均表示g,11表示b”时,对每个第一数据块可不按照如式(4)所示的解码规则进行解码,获得所述第一图像数据向量,而是使用其他解码规则进行解码。本实施例中的图像解码方法与上述的图像编码方法配合使用,可以在数据接收完成后对数据进行解码,还原原始图像信息,减少数据发送量。图7是根据一示例性实施例示出的一种计算机设备的框图。例如,设备1000可以被提供为一电子书阅读器。参照图7,设备1000包括处理组件1022,其进一步包括一个或多个处理器,以及由存储器1032所代表的存储器资源,用于存储可由处理部件1022的执行的指令,例如应用程序。存储器1032中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1022被配置为执行指令,以执行上述的图像编码方法。设备1000还可以包括一个电源组件1026被配置为执行设备1000的电源管理,一个有线或无线网络接口1050被配置为将设备1000连接到网络,和一个输入输出(i/o)接口1058。设备1000可以操作基于存储在存储器1032的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1032,上述指令可由设备1000的处理组件1022执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本发明的实施例还提出了一种计算机设备。参照图8,设备1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理部件1122的执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令,以执行图2或图3所述的图像解码方法。设备1100还可以包括一个电源组件1126被配置为执行设备1100的电源管理,一个有线或无线网络接口1150被配置为将设备1100连接到网络,和一个输入输出(i/o)接口1158。设备1100可以操作基于存储在存储器1132的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1132,上述指令可由设备1100的处理组件1122执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本发明的实施例还提出了一种图像处理系统,包括图像编码装置和图像解码装置。图像编码装置可以是如图7所示的计算机设备,图像解码装置可以是如图8所示的计算机设备。在一个实施例中,图像编码装置和图像解码装置可以无线连接。本发明的实施例中,在图像数据传输前,图像编码装置可以对原始图像的数据进行压缩编码,在数据接收完成后,图像解码装置可以对接收的数据进行解码,还原原始图像的数据,减少数据发送量,可以有效缩短无线终端收发数据时间,降低数据传输过程中的功耗。关于上述实施例中的装置,其中处理器执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1