文字块的编码方法和装置
技术领域
本发明涉及图像处理领域,具体而言,涉及一种文字块的编码方法和装置。
背景技术
图像的压缩通常采用基于块的压缩方法,即将图像分为多个块,分别对每个块进行压缩,将压缩每个块得到的码流传输至解码端,由解码端对码流进行解码。对于复合图像,即既包含图片信息也包含文字信息的图像,人眼对普通的图片信息的损失是可接收到,但由于文字信息包含的颜色较少,文字信息的损失会直接导致人眼无法识别,因此文字信息的损失通常是人眼难以接收的,因此对文字块的压缩通常采用无损压缩或者近无损压缩技术。
但无损或者近无损压缩所使用的时间较长,且产生的数据量较大,以屏幕视频图像为例,在屏幕视频图像需要实时传输时,由于现有技术的无损或者近无损压缩的压缩性能较低,因此难以实现屏幕视频图像的实时传输。
针对现有技术中文字块的压缩性能较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种文字块的编码方法和装置,以至少解决现有技术中文字块的压缩性能较低的技术问题。
根据本发明实施例的一个方面,提供了一种文字块的编码方法,包括:确定待编码图像中每个文字块的多个主颜色对应的梯度值,其中,梯度值用于表征主颜色的重要程度;将多个主颜色按照对应的梯度值由大至小的顺序依次进行编码;在将主颜色编码之后,对文字块的逃逸色进行编码,其中,逃逸色为文字块中除主颜色之外的颜色。
进一步地,统计文字块中每个颜色值出现的次数;将每个颜色值按照出现次数由大至小排序;确定排列在前N个的颜色值为文字块的主颜色,其中,N为大于1的整数。
进一步地,获取每个主颜色所在像素的梯度值;确定每个主颜色所在像素的梯度值的平均值分别为每个主颜色对应的梯度值。
进一步地,分别查找每个主颜色在文字块中的位置;根据每个主颜色的位置分别对文字块中的每个像素进行标记,生成每个主颜色的二值索引图,其中,二值索引图用于表征主颜色的位置。
进一步地,对第一主颜色的信息进行编码,得到第一码流,其中,第一主颜色的信息至少包括:第一主颜色的颜色值和第一二值索引图,第一二值索引图用于表征第一主颜色的位置和其他颜色值的位置;对第二主颜色的信息进行编码,得到第二码流,其中,第二主颜色的信息至少包括:第二主颜色的颜色值和第二二值索引图,第二二值索引图用于表征第二主颜色的位置和除第一主颜色之外其他颜色的位置,第二主颜色对应的梯度值小于第一主颜色对应的梯度值。
进一步地,对逃逸色的信息进行编码,得到第三码流,其中,逃逸色的信息包括:逃逸色的颜色值和逃逸色的位置。
进一步地,将文字块编码得到的码流按照编码的顺序传输至解码端。
根据本发明实施例的另一方面,还提供了一种文字块的解码方法,包括:接收待编码图像的文字块的码流,其中,文字块的码流包括多个主颜色的码流和逃逸色的码流;对多个主颜色的码流按照多个主颜色对应的梯度值由大至小的顺序进行解码;在将主颜色的码流解码之后,对文字块的逃逸色的码流进行解码。
根据本发明实施例的另一方面,还提供了一种文字块的编码装置,包括:确定模块,用于确定待编码图像中每个文字块的多个主颜色对应的梯度值,其中,梯度值用于表征主颜色的重要程度;第一编码模块,用于将多个主颜色按照梯度值由大至小的顺序依次进行编码,其中,梯度值用于表征主颜色的重要程度;第二编码模块,用于在将主颜色编码之后,将文字块的逃逸色进行编码,其中,逃逸色为文字块中除主颜色之外的颜色。
进一步地,上述装置还包括:第一获取模块,用于在确定待编码图像中每个文字块的多个主颜色对应的梯度值之前,获取每个文字块的多个主颜色,第一获取模块包括:统计子模块,用于统计文字块中每个颜色值出现的次数;排序子模块,用于将每个颜色值按照出现次数由大至小排序;第一确定子模块,用于确定排列在前N个的颜色值为文字块的主颜色,其中,N为大于1的整数。
进一步地,上述确定模块包括:获取子模块,用于获取每个主颜色所在像素的梯度值;第二确定子模块,用于分别确定每个主颜色所在像素的梯度值的平均值为每个主颜色对应的梯度值。
根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一种的文字块的编码方法。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行上述任意一项的文字块的编码方法。
在本发明实施例中,获取文字块的多个主颜色以及多个主颜色对应的梯度值,将多个主颜色按照对应的梯度值由大至小的顺序依次进行编码,在将主颜色编码之后,将文字块的逃逸色进行编码,其中,逃逸色为文字块中除主颜色之外的颜色。上述方案通过获取主颜色的梯度来确定主颜色的重要程度,并根据主颜色的重要程度依次进行编码,从而减少了编码文字块所需的时间和编码文字块后产生的数据量,进而提高了文字块的压缩性能,解决了现有技术中文字块的压缩性能较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的文字块的编码方法的流程图;
图2是根据本发明实施例的一种可选的文字块的示意图;
图3是根据本申请实施例的一种可选的文字块的编码方法的流程图;
图4是根据本发明实施例的一种文字块的编码装置的示意图;以及
图5是根据本发明实施例对一种文字块的解码方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种文字块的编码方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的文字块的编码方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,确定待编码图像中每个文字块多个主颜色对应的梯度值,其中,梯度值用于表征主颜色的重要程度。
具体的,上述待编码图像可以为视频图像中的当前帧图像,上述文字块可以根据文字块和图片块的特性,通过对图像进行分块得到。文字块的主颜色可以根据文字块中每个颜色值出现的次数确定,每个主颜色对应的梯度值可以用于表征该主颜色在文字块中的重要程度,文字块中越重要的主颜色对应的梯度值越大。
步骤S104,将多个主颜色按照对应的梯度值由大至小的顺序依次进行编码。
在一种可选的实施例中,文字块具有A、B、C、D四个主颜色,如果根据四个主颜色对应的梯度值对四个主颜色进行排序的结果为B、A、D、C,则以B、A、D、C的顺序依次对B、A、D、C进行编码。
步骤S106,在将主颜色编码之后,将文字块的逃逸色进行编码,其中,逃逸色为文字块中除主颜色之外的颜色。
在上述步骤中,在对主颜色编码完成后,再对逃逸色进行编码。
由上可知,本申请上述实施例获取文字块的多个主颜色以及多个主颜色对应的梯度值,将多个主颜色按照对应的梯度值由大至小的顺序依次进行编码,在将主颜色编码之后,将文字块的逃逸色进行编码,其中,逃逸色为文字块中除主颜色之外的颜色。上述方案通过获取主颜色的梯度来确定主颜色的重要程度,并根据主颜色的重要程度依次进行编码,且编码时每次只编码一个主颜色分量,从而减少了编码文字块所需的时间和编码文字块后产生的数据量,进而提高了文字块的压缩性能,解决了现有技术中文字块的压缩性能较低的技术问题。
可选的,根据本申请上述实施例,在确定待编码图像中每个文字块的多个主颜色对应的梯度值之前,上述方法还包括:获取每个文字块的多个主颜色,其中,获取每个文字块的多个主颜色,包括:
步骤S1021,统计文字块中每个颜色值出现的次数。
步骤S1023,将每个颜色值按照出现次数由大至小排序。
步骤S1025,确定排列在前N个的颜色值为文字块的主颜色,其中,N为大于1的整数。
对每个文字块执行上述步骤,即可得到待编码图像中每个文字块的主颜色。需要说明的是,每个文字块的主颜色可能不同,但每个文字块中主颜色的数量是相同的,也即,如果设置N=4,则对于每个文字块都获取其排列在前4个的颜色值作为主颜色。
图2是根据本发明实施例的一种可选的文字块的示意图,下面以该文字块为例对获取文字块的主颜色进行说明,该文字块为4*4的文字块,其中颜色值为E的像素为6个,颜色值为A的像素为3个,颜色值为G的像素为2个,颜色值为B的像素为2个,颜色值为J的像素为2个,由此,在N=2的情况下,该文字块的主颜色为E和A。
可选的,根据本申请上述实施例,步骤S102,确定待编码图像中每个文字块多个主颜色对应的梯度值,包括:
步骤S1027,获取每个主颜色所在像素的梯度值。
在一种可选的实施例中,可以通过如下公式获取像素的梯度值:G(i,j)=dx(i,j)+dy(i,j);dx(i,j)=l(i+1,j)-l(i,j);dy(i,j)=l(i,j+1)-l(i,j),其中,(i,j)用于表征像素的坐标,G(i,j)用于表征(i,j)的梯度值,l用于表征像素值(例如:RGB值)。
步骤S1029,确定每个主颜色所在像素的梯度值的平均值分别为每个主颜色对应的梯度值。
在一种可选的实施例中,结合图2所示的文字块进行说明,以左上角的像素A的坐标为(1,1)为例,该文字块中的主颜色为E和A,主颜色E对应的梯度值为主颜色A对应的梯度值为
可选的,根据本申请上述实施例,在获取文字块的多个主颜色以及多个主颜色对应的梯度值之后,上述方法还包括:
步骤S106,查找每个主颜色在文字块中的位置。具体的,主颜色在文字块中的位置可以通过坐标来表示。
步骤S108,根据每个主颜色的位置分别对文字块中的每个像素进行标记,生成每个主颜色的二值索引图,其中,二值索引图用于表征主颜色的位置。
在一种可选的实施例,结合图2所示,以主颜色E为例,将颜色值为E的像素标记为0,其余像素标记为1,即得到主颜色E的二值索引图;再以主颜色A为例,将颜色值为A的像素标记为0,其余像素标记为1,即得到主颜色A的二值索引图。
可选的,根据本申请上述实施例,步骤S104,将多个主颜色按照对应的梯度值由大至小的顺序依次进行编码,包括:
步骤S1041,对第一主颜色的信息进行编码,得到第一码流,其中,第一主颜色的信息至少包括:第一主颜色的颜色值和第一二值索引图,第一二值索引图用于表征第一主颜色的位置和其他颜色值的位置。在上述步骤中,第一二值索引图可以采用游程编码的方式进行编码。
步骤S1043,对第二主颜色的信息进行编码,得到第二码流,其中,第二主颜色的信息至少包括:第二主颜色的颜色值和第二二值索引图,第二二值索引图用于表征第二主颜色的位置和除第一主颜色之外其他颜色值的位置,第二主颜色对应的梯度值小于第一主颜色对应的梯度值。在上述步骤中,第二二值索引图可以采用游程编码的方式进行编码。
可选的,根据本申请上述实施例,步骤S106,在将主颜色编码之后,将文字块的逃逸色进行编码,包括:
步骤S1061,对逃逸色的信息进行编码,得到第三码流,其中,逃逸色的信息包括:逃逸色的颜色值和逃逸色的位置。
可选的,根据本申请上述实施例,在对文字块的逃逸色进行编码之后,方法还包括:将文字块编码得到的码流按照编码的顺序传输至解码端。
图3是根据本申请实施例的一种可选的文字块的编码方法的流程图,下面结合图3所示,对上述实施例中的文字块的编码方法进行说明。
步骤S31,将待编码图像分成M×N的块。
具体的,上述待编码图像可以为屏幕视频中的一帧图像,例如,图像为W×H,则可以将图像分成16×16的块。每个块的类型可采用不同的数字表示,从而生成表示块类型的一幅二值图像,尺寸为(W/16)×(H/16),作为辅助信息传输到解码端。
还可以对文字块中的每个像素值进行量化,然后对量化后的文字块进行以下处理。
步骤S32,判断是否为文字块。在块为文字块的情况下进入步骤S33,否则进入步骤S37。
步骤S33,获取S个主颜色。
以S=4为例,找出每个文字块中出现的次数最多的4个颜色值分别作为每个文字块的主颜色。
步骤S34,将S个主颜色按照梯度值进行排序。
具体的,可以计算4个主颜色位置处每个像素的梯度值,再分别获取4个主颜色梯度的平均值。
步骤S35,每个主颜色分别生成不同层的码流。
按照梯度值由大到小的顺序将4个主颜色依次记录为第一主颜色,第二主颜色,第三主颜色以及第四主颜色,并得到四层码流,其中,
文字码流的第一层为第一主颜色的信息,包括第一主颜色的二值索引图和第一主颜色的像素值,第一主颜色的二值索引图记录第一主颜色位置和其它颜色的位置。二值索引图可以采用游程编码的方式进行。
文字码流的第二层为第二主颜色的信息,包括第二主颜色的二值索引图和第二主颜色的像素值,第二主颜色的二值索引图记录第二主颜色位置和除去第一主颜色后其它颜色的位置。二值索引图可以采用游程编码的方式进行。
依据上述方式,对其余主颜色进行编码,直至S个主分量生成S层码流后。
步骤S36,逃逸色生成文字块最后一层码流。
步骤S37,对图片块编码进行。具体的,可以于每个图片块采用基于小波变换的图像编码算法。
步骤S38,组织码流。具体的,将文字块码流、图片块码流和辅助信息传输到解码端。
实施例2
根据本发明实施例,提供了一种文字块的编码装置,图4是根据本发明实施例的一种文字块的编码装置的示意图,结合图4所示,该文字块的编码装置包括:
确定模块40,用于确定待编码图像中每个文字块的多个主颜色对应的梯度值,其中,梯度值用于表征主颜色的重要程度。
第一编码模块42,用于将多个主颜色按照梯度值由大至小的顺序依次进行编码。
第二编码模块44,用于在将主颜色编码之后,将文字块的逃逸色进行编码,其中,逃逸色为文字块中除主颜色之外的颜色。
可选的,根据本申请上述实施例,上述装置还包括:第一获取模块,用于在确定待编码图像中每个文字块的多个主颜色对应的梯度值之前,获取每个文字块的多个主颜色,其中,第一获取模块包括:
统计子模块,用于统计文字块中每个颜色值出现的次数。
排序子模块,用于将每个颜色值按照出现次数由大至小排序。
第一确定子模块,用于确定排列在前N个的颜色值为文字块的主颜色,其中,N为大于1的整数。
可选的,根据本申请上述实施例,确定模块包括:
获取子模块,用于获取每个主颜色所在像素的梯度值。
第二确定子模块,用于确定每个主颜色所在像素的梯度值的平均值分别为每个主颜色对应的梯度值。
可选的,根据本申请上述实施例,上述装置还包括:
查找模块,用于在获取文字块的多个主颜色以及多个主颜色对应的梯度值之后,分别查找每个主颜色在文字块中的位置。
标记模块,用于根据每个主颜色的位置分别对文字块中的每个像素进行标记,生成每个主颜色的二值索引图,其中,二值索引图用于表征主颜色的位置。
可选的,根据本申请上述实施例,第一编码模块包括:
第一编码子模块,用于对第一主颜色的信息进行编码,得到第一码流,其中,第一主颜色的信息至少包括:第一主颜色的颜色值和第一二值索引图,第一二值索引图用于表征第一主颜色的位置和其他颜色值的位置。
第二编码子模块,用于对第二主颜色的信息进行编码,得到第二码流,其中,第二主颜色的信息至少包括:第二主颜色的颜色值和第二二值索引图,第二二值索引图用于表征第二主颜色的位置和除第一主颜色之外其他颜色的位置,第二主颜色对应的梯度值小于第一主颜色对应的梯度值。
可选的,根据本申请上述实施例,第二编码模块包括:
生成子模块,用于在将主颜色编码之后,根据逃逸色的信息生成对应的第三码流,其中,逃逸色的信息包括:逃逸色的颜色值和逃逸色的位置。
第三编码子模块,用于将逃逸色的信息对应的文字码流进行编码。
可选的,根据本申请上述实施例,上述装置还包括:
传输模块,用于在对文字块的逃逸色进行编码之后,将文字块的码流按照编码的顺序传输至解码端。
实施例3
.根据本发明实施例,提供了一种文字块的解码方法,图5是根据本发明实施例对一种文字块的解码方法的流程图,结合图5所示,该方法包括:
步骤S502,接收待编码图像的文字块的码流,其中,文字块的码流包括多个主颜色的码流和逃逸色的码流。
具体的,上述文字块的码流可以是根据本申请实施例1中的编码方式生成的文字块的码流。
步骤S504,对多个主颜色的码流按照多个主颜色对应的梯度值由大至小的顺序进行解码。
在一种可选的实施例中,编码端按照多个主颜色的梯度值由大至小变的顺序进行编码之后,还按照同样的顺序将其传输至解码端,因此解码端接收到码流的顺序也为多个主颜色的梯度值由大至小的顺序。解码端按照多个主颜色对应的梯度值由大至小的顺序进行解码,即为按照接收到码流的顺序对文字块的码流进行解码。
步骤S506,在将主颜色的码流解码之后,对文字块的逃逸色的码流进行解码。
上述逃逸色的码流为解码端最后接收到的码流,因此解码端最后对逃逸色的码流进行解码。
由上可知,本申请上述实施例,接收待编码图像的文字块的码流,对多个主颜色的码流按照多个主颜色对应的梯度值由大至小的顺序进行解码,在将主颜色的码流解码之后,对文字块的逃逸色的码流进行解码。上述方案通过主颜色的梯度来确定主颜色的重要程度,并根据主颜色的重要程度依次进行解码,从而减少了解码文字块所需的时间,进而提高了文字块解码的效率。
实施例4
根据本发明实施例,还提供了一种文字块的解码装置,该装置包括:
接收模块,用于接收待编码图像的文字块的码流,其中,所述文字块的码流包括多个主颜色的码流和逃逸色的码流。
第一解码模块,用于对多个主颜色的码流按照所述多个主颜色对应的梯度值由大至小的顺序进行解码。
第二解码模块,用于在将所述主颜色的码流解码之后,对所述文字块的逃逸色的码流进行解码。
实施例5
根据本发明实施例,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行实施例1或实施例3中任意一项的文字块的编码方法。
实施例6
根据本发明实施例,提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行实施例1或实施例3中任意一项的文字块的编码方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。