本发明涉及图像处理领域,具体而言,涉及一种文字块的压缩方法和装置以及图像压缩方法和装置。
背景技术:
屏幕视频图像是一类比较特殊复杂的视频图像,它的每一帧图像都是复合图像,既包含普通的图片信息也包含文字信息,因此基于块的压缩方法也是性能较好的压缩方法。人眼对普通的图片信息和文字信息的分辨能力是不同的,图片信息的损失常常是可以接受的,但是文字信息的丢失却常常无法接受,所以文字块常常采用无损压缩或者近无损压缩技术,因此高效的文字块无损/近无损压缩技术是屏幕视频图像压缩中的关键技术。相较于之前的文字压缩技术中,我们发现利用文字块的主分量频率来确立主分量,这将导致同一个块中主颜色的频率大大低于每个分量主分量的频率,从而大大降低了主颜色算法处理文字块的性能,如果对三个分量独立进行处理,虽然每个分量的主分量的频率较高,但是三个分量都需要编码各自的信息表,出现较多的辅助信息。
针对现有技术中对文字块进行编码时采用三个分量进行独立处理,导致出现较多辅助信息的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种文字块的压缩方法和装置以及图像压缩方法和装置,以至少解决现有技术中对文字块进行编码时采用三个分量进行独立处理,导致出现较多辅助信息的技术问题。
根据本发明实施例的一个方面,提供了一种文字块的压缩方法,包括:获取图像中的文字块;从每个文字块的第一分量、第二分量和第三分量中抽取第一分量和第二分量进行合并,得到第四分量;分别对第三分量和第四分量进行编码,输出文字块的压缩码流。
根据本发明实施例的一个方面,提供了一种图像压缩方法,包括上述任意一种文字块的压缩方法,其中,在分别对第三分量和第四分量进行编码之后,图像压缩方法包括:获取图像中的图片块,并通过对图片块进行编码得到图片块的压缩码流;将文字块的压缩码流和图片块的压缩码流传输至解码端,其中,文字块的压缩码流包括对第三分量进行编码的压缩码流和对第四分量进行编码得到的压缩码流。
根据本发明实施例的另一方面,还提供了一种文字块的压缩装置,包括:第一获取模块,用于获取图像中的文字块;合并模块,用于从每个文字块的第一分量、第二分量和第三分量中抽取第一分量和第二分量进行合并,得到第四分量;编码模块,用于分别对第三分量和第四分量进行编码,输出文字块的压缩码流。
根据本发明实施例的另一方面,还提供了一种图像压缩装置,包括上述任意一种文字块的压缩装置,其中,图像压缩装置还包括:第二获取模块,用于获取图像中的图片块,并通过对图片块进行编码得到图片块的压缩码流;传输模块,用于将文字块的压缩码流和图片块的压缩码流传输至解码端,其中,文字块的压缩码流包括对第三分量进行编码的压缩码流和对第四分量进行编码得到的压缩码流。
在本发明实施例中,获取图像中的文字块,从每个文字块的第一分量、第二分量和第三分量中抽取第一分量和第二分量进行合并,得到第四分量,分别对第三分量和第四分量进行编码。上述方案针对之前的文字块压缩技术中,辅助信息较多和主分量占用频率较少的缺点与局限,将YUV三分量中的其中两个分量合并为一个新的分量,采用新的分量和未合并的分量进行文字块的压缩,适用于所有屏幕视频图像压缩的场合,无需特殊设备支持,解决了现有技术中对文字块进行编码时采用三个分量进行独立处理,导致出现较多辅助信息的技术问题,达到了在保证主分量占用频率的基础上减少了压缩过程中辅助信息的数量的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种文字块的压缩方法的流程图;
图2是根据本发明实施例的一种图像压缩方法的流程图;
图3是根据本发明实施例的一种可选的图像压缩方法的流程图;
图4是根据本发明实施例的一种文字块的压缩装置的示意图;
图5是根据本发明实施例的一种图像压缩装置的示意图;以及
图6是根据本发明实施例的一种可选的图像压缩处理设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种文字块的压缩的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种文字块的压缩方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取图像中的文字块。
具体的,上述图像可以是屏幕视频中的一帧图像,以图像的尺寸为W×H为例,在获取屏幕视频中的图像后,可以将其分为m×n块,每一块的尺寸分别为(W/m)×(H/n),对从屏幕视频中获取的图像分块后,提取其中的文字块。
步骤S104,从每个文字块的第一分量、第二分量和第三分量中抽取第一分量和第二分量进行合并,得到第四分量。
具体的,在图像处理中通常包括三个分量:U分量、V分量和Y分量,可以将三个分量中的任意两个分量进行合并得到第四分量。
步骤S106,分别对第三分量和第四分量进行编码,输出文字块的压缩码流。
此处需要说明的是,如果将三个分量合并为一个颜色值,采用合并后的颜色值来处理图像,则由于各个分量的特性不同,会导致合成的主颜色的频率较低,大大降低了文字块的压缩性能。因此,相较于对三个分量分别进行处理来说,上述方案产生的处理信息较少,相较于将三个分量合并为一个颜色值进行处理来说,能够提高文字块的压缩性能。
由上可知,本申请上述实施例获取图像中的文字块,从每个文字块的第一分量、第二分量和第三分量中抽取第一分量和第二分量进行合并,得到第四分量,分别对第三分量和第四分量进行编码。上述方案针对之前的文字块压缩技术中,辅助信息较多和主分量占用频率较少的缺点与局限,将YUV三分量中的其中两个分量合并为一个新的分量,采用新的分量和未合并的分量进行文字块的压缩,适用于所有屏幕视频图像压缩的场合,无需特殊设备支持,解决了现有技术中对文字块进行编码时采用三个分量进行独立处理,导致出现较多辅助信息的技术问题,达到了在保证主分量占用频率的基础上减少了压缩过程中辅助信息的数量的效果。
可选的,根据本申请上述实施例,步骤S106,对第三分量进行编码,包括:
步骤S1061,获取第三分量的全局基本分量表和每个文字块中第三分量的基本分量表。
在上述步骤中,第三分量的全局基本分量表可以用于记录整个图像中第三分量的主分量及其索引值,每个文字块的第三分量的基本分量表可以用于记录每个文字块的第三分量的主分量及其索引值。由于每个文字块都由图像分块得到,因此,可以认为第三分量的全局基本分量表中包含该图像的每个文字块中第三分量的主分量。
步骤S1063,根据第三分量的全局基本分量表和每个文字块中第三分量的基本分量表得到第三分量的标记索引表和相关索引表,其中,标记索引表通过每个文字块中第三分量的基本分量表中的索引值来表示文字块,相关索引表通过标记索引表中邻域索引值的关系得到。
在获得第三分量的全局基本分量表和每个文字块中第三分量的基本颜色表后,可以根据在全局基本分量表中查找每个文字块的主分量,从而得到每个文字块中第三分量的标记索引表,并根据第三分量的标记索引表中邻域索引值之间的关系得到第三分量相关索引表。
步骤S1065,根据第三分量的标记索引表和相关索引表对每个文字块中的第三分量进行编码。
由于第三分量的标记索引表通过每个文字块中第三分量的基本分量表中的索引值来表示文字块中第三分量,第三分量的相关索引表通过第三分量的标记索引表中邻域索引值的关系得到,因此根据第三分量的标记索引表和第三分量的相关索引表对文字块的第三分量进行编码相对于直接对第三分量进行编码来说,具有更高的编码效率。
可选的,根据本申请上述实施例,步骤S1061,获取第三分量的全局基本分量表和每个文字块中第三分量的基本分量表,包括:
步骤A1:通过统计当前文字块中第三分量的分量值出现的次数,确定第三分量的主分量,其中,主分量在所有分量值的比例大于预设值。
需要说明的是,上述步骤对主分量的个数不做具体限定,可以以预设值来确定主分量的个数。
在一种可选的实施例中,以预设值为95%作为示例,如果在当前文字块中,出现次数最多的分量值占所有分量值的95%,则可以选用该分量值作为主分量,此时,当前文字块包含一个主分量。
在另一种可选的实施例中,仍以预设值为95%作为示例,如果在当前文字块中,出现最多的分量值占所有分量值的70%,未能达到预设值,则选择除该分量值之外出现次数最多的分量值,如果除该分量值之外出现次数最多的分量值占所有分量值的26%,则上述两个分量值占所有分量值的比例大于预设值,可以将上述两个分量值作为当前文字块的主分量,此时,当前文字块包含两个主分量。
步骤B1:获取第三分量的初始全局基本分量表。
具体的,上述初始全局基本分量表可以为空。
步骤C1:将第一文字块中的主分量添加至第三分量的初始全局基本分量表,构成第三分量的第一中间全局基本分量表,其中,第三分量的初始全局基本分量表为空。
步骤D1:将第二文字块中第三分量的主分量与所述第三分量的第一中间全局基本分量表比对,如果所述第二文字块的第三分量的主分量存在于所述第三分量的第一中间全局基本分量表中,则保留所述主分量,否则,将所述第三分量的第二文字块的主分量添加至所述第三分量的第一中间全局基本分量表中,构成第三分量的第二中间全局基本分量表,并对添加至所述第三分量的第一中间全局基本分量表中的主分量设置索引值。
步骤E1:循环所述步骤D1,直至所有文字的第三分量比对完成,将所述最后得到的中间全局基本分量表作为所述第三分量的全局基本分量表。
在一种可选的实施例中,以包括3个文字块的简单的帧图像作为示例,三个文字块中第三分量的主分量分别为(A1,B1,C1)、(A1,B2,C1,D2,E2)、(A3,B2,C1,E2),第三分量的全局基本分量表为空,首先使用第一个文字块与空的第三分量的全局基本分量表进行比对,第三分量的全局基本分量表肯定不包含第一个文字块的主分量,故将第一个文字块中的主分量添加至第三分量的全局基本分量表,并设置其索引值,此时,第三分量的全局基本分量表中包括(A1,B1,C1)及其索引值;接着将第二个文字块与当前的第三分量的全局基本分量表进行比对,由于第二个文字块中的A1,C1出现与第一个文字块中,因此在将第二个文字块与第三分量的全局基本分量表进行比对时,只有B2,D2以及E2没有出现,因此在第三分量的全局基本分量表中加入B2,D2以及E2,并设置B2,D2以及E2的索引值,此时,第三分量的全局基本分量表中包括主分量(A1,B1,C1,B2,D2,E2)及其索引值;接着将第三个文字块与当前的第三分量的全局基本分量表进行比对,与当前的全局基本分量表相比,第三个文字块的区别是包括主分量A3,因此最终得到的第三分量的全局基本分量表包括(A1,B1,C1,B2,D2,E2,A3)及其索引值。
步骤F1:使用所述第三分量的全局基本分量表中所述主分量对应的索引值表示所述每个文字块中第三分量的基本分量表中的所述主分量,得到所述每个文字块中第三分量的基本分量表。
在一种可选的实施例中,仍以上一实施例为场景进行描述,这一步骤的过程实际上是在得到全局基本分量表后,采用全局基本分量表中主分量对应的索引值来表示每个文字块的主分量。
需要说明的是,每帧图像包含的文字块的数量不定,但通常都较多,上述包含三个文字块的图像仅用于示例。
由上可知,步骤A1至步骤F1通过将图像中每个文字块的主分量进行叠加来得到全局基本分量表,也就是说,一帧图像的第三分量的全局基本分量表中包括该帧图像中所有文字块的第三分量的主分量及其索引值。
可选的,根据本申请上述实施例,步骤S1063,根据第三分量的全局基本分量表和每个文字块中第三分量的基本分量表得到第三分量的标记索引表和相关索引表,包括:
步骤S10631,根据第三分量的基本分量表确定每个文字块中第三分量的分量值对应的标识。
步骤S10633,以每个第三分量的分量值对应的标识作为每个第三分量的分量值的索引值,构成标记索引表。
由于之前的步骤得到了每个文字块中第三分量的基本分量表,因此可以在上述步骤中使用每个文字块中第三分量的基本颜色表来表示每个文字块的第三分量。
在一种可选的实施例中,以该文字块的主分量为a、b、c、d为例,可以分别为上述主分量分配对应的标识0,1,2,3,因此在该文字块中,如果像素的分量值为a,的标记为0,如果像素的分量值为b,则标记为1,如果像素的分量值为c,则标记为2,如果像素的分量值为d,则标记为3,如果想的颜色非主分量,则标记为4,从而得到文字块对应的第三分量的标记索引表。
需要说明的是,上述标记索引表中为每个主分量和非主分量设置的标识值并不一定与示例相同,为任意不同的能够区分的值即可。
步骤S10635,确定每个文字块中第三分量的分量值对应的索引值与邻域索引值的关联关系。
具体的,上述关联关系用于表示每个文字块中第三分量的每个分量值对应的索引值与邻域索引值是否相同。
在一种可选的实施例中,以对文字块进行由上至下编码为例,文字块中的每个像素仅需要与左侧的像素和上侧的像素进行比对,因此可以仅确定像素与左侧、上侧像素的关联关系,如果编码的顺序是有由右至左,则需要像素与右侧的像素进行比对,如果编码的顺序是有由下至上,则需要像素与下侧的像素进行比对。
步骤S10637,根据每个文字块中第三分量的分量值对应的索引值是否与邻域索引值相同,确定每个第三分量的分量值对应的关系标识,并根据每个第三分量的分量值对应的关系标识构成相关索引表。
在一种可选的实施例中,可以扫描每个文字块的第三分量的索引值,如果像素与左边的像素的索引值相同,则计为L,与上方的索引值相似则计为U,否则计为O,从而能够得到文字块中第三分量的相关索引表。
可选的,根据本申请上述实施例,步骤S1065,根据第三分量的标记索引表和相关索引表对每个文字块中的第三分量进行编码,包括:
步骤S10651,记录标记索引表中第三分量的分量值非主分量的像素的第三分量的原始值,并基于标记索引表对每个分量值采用基于位平面的编码方式从最高位平面到最低位平面依次传输,生成文字块的压缩码流中的第三分量的第一压缩码流。
由上可知,本申请上述步骤对于非主分量的像素采用了记录原始分量值进行编码的方式,防止由于仅采用主分量编码导致编码结果有损,在解码后由于图像中非主分量的分量值的丢失导致视觉效果与原图像不同的问题。
步骤S10653,根据相关索引表,并对水平方向上的每个像素进行单值霍夫曼编码,或以预设个数对水平上的像素进行分组,并对分组后的每组像素进行多值霍夫曼编码,得到第三分量的第二文字块的压缩码流中的。
需要说明的是,由于上述步骤可以对分组后的每组像素的第三分量进行多值霍夫曼(Huffman)编码,因此可以利用相关索引表所记录的邻域像素的分量值的关系,例如,以水平方向上六个像素作为一组,如果相关索引表中记录的标识与左侧的像素的颜色值相同,则就不用依次对每个像素的第三分量进行编码,大大的提高了编码效率。
可选的,在对第四分量进行编码的同时或之后,还需要对第一分量和第二分量合并得到的第四分量进行编码,根据本申请上述实施例,步骤S106,对第四分量进行编码,包括:
步骤S1067,获取第四分量的全局基本分量表和每个文字块中第四分量的基本分量表。
在上述步骤中,第四分量的全局基本分量表可以用于记录整个图像中第四分量的主分量及其索引值,每个文字块的第四分量的基本分量表可以用于记录每个文字块的第四分量的主分量及其索引值。由于每个文字块都由图像分块得到,因此,可以认为第四分量的全局基本分量表中包含该图像的每个文字块中第四分量的主分量。
步骤S1069,根据第四分量的全局基本分量表和每个文字块中第四分量的基本分量表得到第四分量的标记索引表和相关索引表,其中,标记索引表通过每个文字块中第四分量的基本分量表中的索引值来表示文字块,相关索引表通过标记索引表中邻域索引值的关系得到。
在获得第四分量的全局基本分量表和每个文字块中第四分量的基本颜色表后,可以根据在全局基本分量表中查找每个文字块的主分量,从而得到每个文字块中第四分量的标记索引表,并根据第四分量的标记索引表中邻域索引值之间的关系得到第四分量相关索引表。
步骤S10611a,根据第四分量的标记索引表和相关索引表对每个文字块中的第四分量进行编码。
由于第四分量的标记索引表通过每个文字块中第四分量的基本分量表中的索引值来表示文字块中第四分量,第四分量的相关索引表通过第四分量的标记索引表中邻域索引值的关系得到,因此根据第四分量的标记索引表和第四分量的相关索引表对文字块的第四分量进行编码相对于直接对第四分量进行编码来说,具有更高的编码效率。
可选的,根据本申请上述实施例,步骤S1067,获取第四分量的全局基本分量表和每个文字块中第四分量的基本分量表,包括:
步骤A2:通过统计当前文字块中第四分量的分量值出现的次数,确定第四分量的主分量,其中,主分量在所有分量值的比例大于预设值。
需要说明的是,上述步骤对主分量的个数不做具体限定,可以以预设值来确定主分量的个数。
在一种可选的实施例中,以预设值为95%作为示例,如果在当前文字块中,出现次数最多的分量值占所有分量值的95%,则可以选用该分量值作为主分量,此时,当前文字块包含一个主分量。
在另一种可选的实施例中,仍以预设值为95%作为示例,如果在当前文字块中,出现最多的分量值占所有分量值的70%,未能达到预设值,则选择除该分量值之外出现次数最多的分量值,如果除该分量值之外出现次数最多的分量值占所有分量值的26%,则上述两个分量值占所有分量值的比例大于预设值,可以将上述两个分量值作为当前文字块的主分量,此时,当前文字块包含两个主分量。
步骤B2:获取第四分量的初始全局基本分量表。
具体的,上述初始全局基本分量表可以为空。
步骤C2:将第一文字块中的主分量添加至第四分量的初始全局基本分量表,构成第四分量的第一中间全局基本分量表,其中,第四分量的初始全局基本分量表为空。
步骤D2:将第二文字块中第四分量的主分量与第四分量的第一中间全局基本分量表比对,如果第二文字块的第四分量的主分量存在于第四分量的第一中间全局基本分量表中,则保留主分量,否则,将第四分量的第二文字块的主分量添加至第四分量的第一中间全局基本分量表中,构成第四分量的第二中间全局基本分量表,并对添加至第四分量的第一中间全局基本分量表中的主分量设置索引值。
步骤E2:循环步骤D2,直至所有文字的第四分量比对完成,将最后得到的中间全局基本分量表作为第四分量的全局基本分量表。
在一种可选的实施例中,以包括3个文字块的简单的帧图像作为示例,三个文字块中第四分量的主分量分别为(A1,B1,C1)、(A1,B2,C1,D2,E2)、(A3,B2,C1,E2),第四分量的全局基本分量表为空,首先使用第一个文字块与空的第四分量的全局基本分量表进行比对,第四分量的全局基本分量表肯定不包含第一个文字块的主分量,故将第一个文字块中的主分量添加至第四分量的全局基本分量表,并设置其索引值,此时,第四分量的全局基本分量表中包括(A1,B1,C1)及其索引值;接着将第二个文字块与当前的第四分量的全局基本分量表进行比对,由于第二个文字块中的A1,C1出现与第一个文字块中,因此在将第二个文字块与第四分量的全局基本分量表进行比对时,只有B2,D2以及E2没有出现,因此在第四分量的全局基本分量表中加入B2,以及C2,并设置B2和C2的索引值,此时,第四分量的全局基本分量表中包括主分量(A1,B1,C1,B2,D2,E2)及其索引值;接着将第三个文字块与当前的第四分量的全局基本分量表进行比对,与当前的全局基本分量表相比,第三个文字块的区别是包括主分量A3,因此最终得到的第四分量的全局基本分量表包括(A1,B1,C1,B2,D2,E2,B3)及其索引值。
步骤F2:使用第四分量的全局基本分量表中主分量对应的索引值表示每个文字块中第四分量的基本分量表中的主分量,得到每个文字块中第四分量的基本分量表。
在一种可选的实施例中,仍以上一实施例为场景进行描述,这一步骤的过程实际上是在得到全局基本分量表后,采用全局基本分量表中主分量对应的索引值来表示每个文字块的主分量。
需要说明的是,每帧图像包含的文字块的数量不定,但通常都较多,上述包含三个文字块的图像仅用于示例。
由上可知,上述步骤通过将图像中每个文字块的主分量进行叠加来得到全局基本分量表,也就是说,一帧图像的第四分量的全局基本分量表中包括该帧图像中所有文字块的第四分量的主分量及其索引值。
可选的,根据本申请上述实施例,步骤S1069,根据第四分量的全局基本分量表和每个文字块中第四分量的基本分量表得到第四分量的标记索引表和相关索引表,包括:
步骤S10691,根据第四分量的基本分量确定每个文字块中第四分量的分量值对应的标识。
步骤S10693,以每个第四分量的分量值对应的标识作为每个第四分量的分量值的索引值,构成标记索引表。
由于之前的步骤得到了每个文字块中第四分量的基本分量表,因此可以在上述步骤中使用每个文字块中第四分量的基本颜色表来表示每个文字块的第四分量。
在一种可选的实施例中,以该文字块的主分量为a、b、c、d为例,可以分别为上述主分量分配对应的标识0,1,2,3,因此在该文字块中,如果像素的分量值为a,的标记为0,如果像素的分量值为b,则标记为1,如果像素的分量值为c,则标记为2,如果像素的分量值为d,则标记为3,如果想的颜色非主分量,则标记为4,从而得到文字块对应的第四分量的标记索引表。
需要说明的是,上述标记索引表中为每个主分量和非主分量设置的标识值并不一定与示例相同,为任意不同的能够区分的值即可。
步骤S10695,确定每个文字块中第四分量的分量值对应的索引值与邻域索引值的关联关系。
步骤S10697,根据每个文字块中第四分量的分量值对应的索引值是否与邻域索引值相同,确定每个第四分量的分量值对应的关系标识,并根据每个第四分量的分量值对应的关系标识构成相关索引表。
具体的,上述关联关系用于表示每个文字块中第四分量的每个分量值对应的索引值与邻域索引值是否相同。
在一种可选的实施例中,以对文字块进行由上至下编码为例,文字块中的每个像素仅需要与左侧的像素和上侧的像素进行比对,因此可以仅确定像素与左侧、上侧像素的关联关系,如果编码的顺序是有由右至左,则需要像素与右侧的像素进行比对,如果编码的顺序是有由下至上,则需要像素与下侧的像素进行比对。
可选的,根据本申请上述实施例,步骤S10611a,根据第四分量的标记索引表和相关索引表对每个文字块中的第四分量进行编码,包括:
步骤S10611b,记录标记索引表中第四分量的分量值非主分量的像素的第四分量的原始值,并基于标记索引表对每个分量值采用基于位平面的编码方式从最高位平面到最低位平面依次传输,生成文字块的压缩码流中的第四分量的第一压缩码流。
由上可知,本申请上述步骤对于非主分量的像素采用了记录原始分量值进行编码的方式,防止由于仅采用主分量编码导致编码结果有损,在解码后由于图像中非主分量的分量值的丢失导致视觉效果与原图像不同的问题。
步骤S10611c,根据相关索引表,并对水平方向上的每个像素进行单值霍夫曼编码,或以预设个数对水平上的像素进行分组,并对分组后的每组像素进行多值霍夫曼编码,得到文字块的压缩码流中的第四分量的第二压缩码流。
需要说明的是,由于上述步骤可以对分组后的每组像素的第四分量进行多值霍夫曼(Huffman)编码,因此可以利用相关索引表所记录的邻域像素的分量值的关系,例如,以水平方向上六个像素作为一组,如果相关索引表中记录的标识与左侧的像素的颜色值相同,则就不用依次对每个像素的第四分量进行编码,大大的提高了编码效率。
在一种可选的实施例中,第一分量为U分量,第二分量为V分量,也就是说,采用U分量和V分量作为合并的分量。
需要说明的是,U分量和V分量是三个分量中较为相似的分量,该相似用于表示U分量和V分量在编码过程产生的幅度信息相似。通过合并相似分量,来解决现有技术中对文字块进行编码时采用三个分量进行独立处理,导致出现较多辅助信息的技术问题,从而达到减少编码产生的辅助信息的目的,从而达到了提高编码效率的技术效果。
实施例2
根据本发明实施例,提供了一种图像压缩的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种图像压缩方法的流程图,如图2所示,在分别对所述第三分量和所述第四分量进行编码之后,该方法包括如下步骤:
步骤S108,获取图像中的图片块,并通过对图片块进行编码得到图片块的压缩码流。
步骤S1010,将文字块的压缩码流和图片块的压缩码流传输至解码端。
由上可知,本申请上述步骤取图像中的图片块,并通过对图片块进行编码得到图片块的压缩码流,将文字块的压缩码流和图片块的压缩码流传输至解码端,则完成了整个图像,尤其是屏幕视频图像的压缩过程。
图3是根据本发明实施例的一种可选的图像压缩方法的流程图,下面结合图3所示的示例,对一种可选的图像压缩方法进行描述:
S31,获取当前帧图像,将图像分为m×n个块。
获取屏幕视频(中的一帧W×H,并将其分成m×n的块,利用文字的特性将块分为文字块和非文字块,尺寸为(W/m)×(H/n)。
S32,对块的类型进行判定。如果当前块是文字块,则进入步骤S33,否则进入步骤S314。
S33,将UV分量合成为CH分量。
S34,统计当前文字块中CH分量出现的次数,并按次数排序。
S35,前Si个分量值占所有分量值的比例是否超过预设阈值T。
S36,在Si的基础上加1。
在该示例中,初始化全局基本CH分量表CHG为空。对于第i文字块,统计文字块中每个分量值出现的次数,找出Si个分量记录为当前块的基本CH分量表CHMi,并使得Si个主分量占据整个块所有分量的比例超过阈值T(例如,T=90%)。上述步骤S34至S36实现了确定CH分量的主分量的目的。
S37,记录主分量数Si,并生成全局基本CH分量表CHG和每个文字块的基本CH分量表CHMi。
将当前块的基本CH分量表CHMi和全局基本CH分量表CHG进行比较,若CHMi中的主分量值在CHG中,使用全局基本CH分量表CHG中的索引值表示当前块的Si个主分量值;若CHMi中的某个主分量值不在CHG中,将当前块中的这个新出现的主分量加入全局基本CH分量表CHG中,并为这个新的主分量设置对应的索引值,使用这个新的主分量在全局基本CH分量表中的索引值来表示当前块的该主分量。所有文字块处理之后就能得到全局基本CH分量表CHG和采用全局基本分量表来表示的每个块的基本CH分量索引表CHMi,全局基本CH分量表CHG的颜色个数为J,J≤S1+S2+…+SN,N为文字块个数总和。
S38,文字块CH分量编码。
在该示例中,依据当前第i个文字块的基本CH分量表CHMi,对文字块中的CH分量与其进行比较,如果文字块的CH分量值与基本CH分量表CHMi中值相同,那么可认为此处像素为主分量位置,使用索引值0~(Si-1)进行表示,若不相同,则表示此处像素为非主分量位置,使用Si进行表示,因此每个文字块可按照多个主分量和非主分量记录对应的索引值,从而生成索引表Ci来标记文字块。
扫描每个文字块的索引值Ci,确定其与邻域像素的索引值是否相同,若与左边像素的索引值相同则计为L,若与正上方像素相同则计为U,都不相同则计为O,从而得到索引表Bi。
对于索引表Bi,可将水平方向上的若干个像素划分为一组,采用Huffman编码。
对于索引表Ci中的非主分量位置的像素记录各个分量值的真实值,分量值都采用基于位平面的编码方式从最高位平面到最低位平面依次传输,从而得到文字块CH分量的压缩码流。
S39,统计当前文字块中Y分量的次数,并按次数排序。
S310,前Si个主分量占所有分量值的比例是否超过预设阈值T。
S311,在Si的基础上加1。
在该示例中,初始化全局基本Y分量表YG为空。对于第i文字块,统计文字块中每个分量值出现的次数,找出Si个分量记录为当前块的基本Y分量表YMi,并使得Si个主分量占据整个块所有分量的比例超过阈值T(例如,T=90%)。上述步骤S39至S311实现了确定Y分量的主分量的目的。
S312,记录主分量数Si并生成全局基本Y分量表YG和每个文字块的基本Y分量表YMi。
将当前块的基本Y分量表YMi和全局基本Y分量表YG进行比较,若YMi中的基本分量值在YG中,使用全局基本Y分量表YG中的索引值表示当前块的Si个基本分量值;若YMi中的某个基本分量值不在YG中,将当前块中的这个新出现的基本分量值加入全局基本Y分量表YG中,并使用这个新的分量值在全局基本Y分量表中的索引值来表示当前块的该基本分量。所有文字块处理之后就能得到全局基本Y分量表YG和采用全局基本分量表来表示的每个块的基本Y分量索引表YMi,全局基本Y分量表YG的颜色个数为J,J≤S1+S2+…+SN,N为文字块个数总和。
S313,文字块Y分量编码。
在该示例中,依据当前第i个文字块的基本Y分量表YMi,对文字块中的Y分量与其进行比较,如果文字块的Y分量值与基本Y分量表YMi中值相同,那么可认为此处像素为主分量位置,使用索引值0~(Si-1)进行表示,若不相同,则表示此处像素为非主分量位置,使用Si进行表示,因此每个文字块可按照多个主分量和非主分量记录对应的索引值,从而生成索引表Ci来标记文字块。
扫描每个文字块的索引值Ci,确定其与邻域像素的索引值是否相同,若与左边像素的索引值相同则计为L,若与正上方像素相同则计为U,都不相同则计为O,从而得到索引表Bi。
对于索引表Bi,可将水平方向上的若干个像素划分为一组,采用Huffman编码。
对于索引表Ci中的非主分量位置的像素记录各个分量值的真实值,分量值都采用基于位平面的编码方式从最高位平面到最低位平面依次传输,从而得到文字块Y分量的压缩码流。
S314,非文字块编码。
S315,码流组织。
按照文字块码流、非文字块码流传输到解码端。
S316,压缩码流。
实施例3
根据本发明实施例,提供了一种文字块的压缩装置的实施例,图4是根据本发明实施例的一种文字块的压缩装置的示意图,结合图4所示,该装置包括:
第一获取模块40,用于获取图像中的文字块。
合并模块42,用于从每个文字块的第一分量、第二分量和第三分量中抽取第一分量和第二分量进行合并,得到第四分量。
编码模块44,用于分别对第三分量和第四分量进行编码。
可选的,根据本申请上述实施例,编码模块包括:
第一获取子模块,用于获取第三分量的全局基本分量表和每个文字块中第三分量的基本分量表,输出文字块的压缩码流。
第一确定子模块,用于根据第三分量的全局基本分量表和每个文字块中第三分量的基本分量表得到第三分量的标记索引表和相关索引表,其中,标记索引表通过每个文字块中第三分量的基本分量表中的索引值来表示文字块,相关索引表通过标记索引表中邻域索引值的关系得到。
第一文字块编码模块,用于根据第三分量的标记索引表和相关索引表对每个文字块中的第三分量进行编码。
可选的,根据本申请上述实施例,第一获取子模块包括:
第一确定单元,用于通过统计当前文字块中第三分量的分量值出现的次数,确定第三分量的主分量,其中,主分量在所有分量值的比例大于预设值。
第一获取单元,用于获取第三分量的初始全局基本分量表。
第一构成单元,用于将第一文字块中的主分量添加至第三分量的初始全局基本分量表,构成第三分量的第一中间全局基本分量表,其中,第三分量的初始全局基本分量表为空。
第二构成单元,用于将第二文字块中第三分量的主分量与第三分量的第一中间全局基本分量表比对,如果第二文字块的第三分量的主分量存在于第三分量的第一中间全局基本分量表中,则保留主分量,否则,将第三分量的第二文字块的主分量添加至第三分量的第一中间全局基本分量表中,构成第三分量的第二中间全局基本分量表,并对添加至第三分量的第一中间全局基本分量表中的主分量设置索引值。
第一循环单元,用于循环第二构成单元的功能,直至所有文字的第三分量比对完成,将最后得到的中间全局基本分量表作为第三分量的全局基本分量表。
第一表示单元,用于使用第三分量的全局基本分量表中主分量对应的索引值表示每个文字块中第三分量的基本分量表中的主分量,得到每个文字块中第三分量的基本分量表。
可选的,根据本申请上述实施例,第一确定子模块包括:
第二确定单元,用于根据第三分量的基本分量确定每个文字块中第三分量的分量值对应的标识。
第一标识单元,用于以每个第三分量的分量值对应的标识作为每个第三分量的分量值的索引值,构成标记索引表。
第三确定单元,用于确定每个文字块中第三分量的分量值对应的索引值与邻域索引值的关联关系。
第四确定单元,用于根据每个文字块中第三分量的分量值对应的索引值是否与邻域索引值相同,确定每个第三分量的分量值对应的关系标识,并根据每个第三分量的分量值对应的关系标识构成相关索引表。
可选的,根据本申请上述实施例,第一文字块编码模块包括:
第一记录单元,用于记录标记索引表中第三分量的分量值非主分量的像素的第三分量的原始值,并基于标记索引表对每个分量值采用基于位平面的编码方式从最高位平面到最低位平面依次传输,生成第三分量的第一压缩码流。
第一编码单元,用于根据相关索引表,并对水平方向上的每个像素进行单值霍夫曼编码,或以预设个数对水平上的像素进行分组,并对分组后的每组像素进行多值霍夫曼编码,得到第三分量的第二压缩码流。
可选的,根据本申请上述实施例,编码模块包括:
第二获取子模块,用于获取第四分量的全局基本分量表和每个文字块中第四分量的基本分量表。
第二确定子模块,用于根据第四分量的全局基本分量表和每个文字块中第四分量的基本分量表得到第四分量的标记索引表和相关索引表,其中,标记索引表通过每个文字块中第四分量的基本分量表中的索引值来表示文字块,相关索引表通过标记索引表中邻域索引值的关系得到。
第二文字块编码模块,用于根据第四分量的标记索引表和相关索引表对每个文字块中的第四分量进行编码。
可选的,根据本申请上述实施例,第二获取子模块包括:
第五确定单元,用于通过统计当前文字块中第四分量的分量值出现的次数,确定第四分量的主分量,其中,主分量在所有分量值的比例大于预设值;
第二获取单元,用于获取第四分量的初始全局基本分量表;
第三重构单元,用于将第一文字块中的主分量添加至第四分量的初始全局基本分量表,构成第四分量的第一中间全局基本分量表,其中,第四分量的初始全局基本分量表为空;
第四重构单元,用于将第二文字块中第四分量的主分量与第四分量的第一中间全局基本分量表比对,如果第二文字块的第四分量的主分量存在于第四分量的第一中间全局基本分量表中,则保留主分量,否则,将第四分量的第二文字块的主分量添加至第四分量的第一中间全局基本分量表中,构成第四分量的第二中间全局基本分量表,并对添加至第四分量的第一中间全局基本分量表中的主分量设置索引值;
第二循环单元,用于循环第四重构单元的功能,直至所有文字的第四分量比对完成,将最后得到的中间全局基本分量表作为第四分量的全局基本分量表。
第二表示单元,用于使用第四分量的全局基本分量表中主分量对应的索引值表示每个文字块中第四分量的基本分量表中的主分量,得到每个文字块中第四分量的基本分量表。
可选的,根据本申请上述实施例,第二确定子模块包括:
第六确定单元,用于根据第四分量的基本分量确定每个文字块中第四分量的分量值对应的标识。
第二标识单元,用于以每个第四分量的分量值对应的标识作为每个第四分量的分量值的索引值,构成标记索引表。
第七确定单元,用于确定每个文字块中第四分量的分量值对应的索引值与邻域索引值的关联关系。
第八确定单元,用于根据每个文字块中第四分量的分量值对应的索引值是否与邻域索引值相同,确定每个第四分量的分量值对应的关系标识,并根据每个第四分量的分量值对应的关系标识构成相关索引表。
可选的,根据本申请上述实施例,第二文字块编码模块包括:
第二记录单元,用于记录标记索引表中第四分量的分量值非主分量的像素的第四分量的原始值,并基于标记索引表对每个分量值采用基于位平面的编码方式从最高位平面到最低位平面依次传输,生成第四分量的第一压缩码流。
第二编码单元,用于根据相关索引表,并对水平方向上的每个像素进行单值霍夫曼编码,或以预设个数对水平上的像素进行分组,并对分组后的每组像素进行多值霍夫曼编码,得到第四分量的第二压缩码流。
可选的,根据本申请上述实施例,第一分量为U分量,第二分量为V分量。
实施例4
根据本发明实施例,提供了一种图像压缩装置的实施例,图5是根据本发明实施例的一种图像压缩装置的示意图,结合图5所示,该装置包括:
第二获取模块50,用于获取图像中的图片块,并通过对图片块进行编码得到图片块的压缩码流。
传输模块52,用于将文字块的压缩码流和图片块的压缩码流传输至解码端。
图6是根据本发明实施例的一种可选的图像压缩处理设备的示意图,结合图6所示,从便携设备中获取一帧视频图像,块类型识别模块识别图像分块后每个块的类型,通过文字块编码模块对文字块进行编码,通过图片块编码模块对图片块进行编码,通过码流组织模块将编码后的码流通过发送模块发送至解码端的接收模块,接收模块将码流发送至码流拆分模块,码流差分模块将码流拆分为文字块的压缩码流和非文字块的压缩码流,再通过文字块解码模块对文字块压缩码流进行解码并输出至帧显示模块,通过非文字块解码模块对非文字块的压缩码流进行解码并输出至帧显示模块,帧显示模块最终将显示结果输出至显示设备,以完成图像的压缩处理。上述实施例1提供的文字块的压缩方法和实施例3提供的文字块的压缩装置都适用于上述图像压缩处理设备,且主要用于编码端中的文字块编码模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。