发明内容
本发明实施例提供了一种文字块的传输方法和装置,以至少解决现有技术中文字块的传输占用带宽较大的技术问题。
根据本发明实施例的一个方面,提供了一种文字块的传输方法,包括:将文字块的像素根据像素出现的频率分为多层;按照每一层像素出现的频率由高至低的顺序依次对每一层像素进行传输。
进一步地,获取当前网络带宽;当当前网络带宽小于预设带宽时,进入将文字块的像素根据像素出现的频率分为多层的步骤。
进一步地,根据像素的频率获取像素的基本色和逃逸色;将文字块的像素分为两层,确定文字块的基本色为文字块的第一层,确定文字块的逃逸色为文字块的第二层。
进一步地,获取第一分量的第一频率直方图以及预设的第一步长;以第一步长在第一频率直方图中按照能量由大至小的顺序,查找由大至小排列在前N位的N个区间,确定查找到的N个区间对应的颜色值为第一分量的第一基本色,其中,N为大于等于2的整数;确定满足第一预设条件的第一分量对应的颜色为第一逃逸色,其中,第一预设条件为与第一基本色的差值的绝对值大于第一预设值,且不属于第一频率直方图中第一基本色所在的第一预设区间。
进一步地,获取第二分量的第二频率直方图以及预设的第二步长;以第二步长在第二频率直方图中按照能量由大至小的顺序,查找由大至小排列在前M位的M个区间,确定查找到的M个区间对应的颜色值为第二分量的第二基本色,其中,M为大于等于2的整数;确定满足第二预设条件的第二分量对应的颜色为第二逃逸色,其中,第二预设条件为与第二基本色的差值的绝对值大于第二预设值,且不属于第二频率直方图中第二基本色所在的第二预设区间。
进一步地,获取第三分量的第三频率直方图以及预设的第三步长;以第三步长在第三频率直方图中按照能量由大至小的顺序,查找由大至小排列在前K位的K个区间,确定查找到的K个区间对应的颜色值为第三分量的第三基本色,其中,K为大于等于2的整数;确定满足第三预设条件的第三分量对应的颜色为第三逃逸色,其中,第三预设条件为与第三基本色的差值的绝对值大于第三预设值,且不属于第三频率直方图中第三基本色所在的第三预设区间。
进一步地,根据文字块中像素的每个分量的基本色和逃逸色,确定每个分量对应的标记索引值;根据像素的标记索引值与邻域像素的标记索引值的关联关系,确定像素的预测索引值;根据文字块中每个像素的标记索引值和预测索引值对文字块进行压缩编码。
进一步地,进解码端按照接收的顺序依次对多层像素的压缩编码结果进行解码,其中,在未全部接收到多层像素的压缩编码结果的情况下,通过第四预设值代替未接收到解压缩编码结果的像素,在全部接收到多层像素的压缩编码结果后,对第四预设值替代的像素进行更新。
根据本发明实施例的另一方面,还提供了一种文字块的压缩编码装置,包括:分层模块,用于将文字块的像素根据像素出现的频率分为多层;传输模块,用于按照每一层像素出现的频率由高至低依次对每一层像素进行传输。
根据本发明实施例的另一方面,还提供了一种存储介质,在程序运行时控制存储介质所在设备执行上述任意一项的文字块的压缩编码方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的文字块的压缩编码方法。
在本发明实施例中,将文字块的像素根据像素出现的频率分为多层,按照每一层像素出现的频率由高至低的顺序依次对每一层像素进行传输。上述方案利用了文字块最主要的特征主要的能量集中在较少的几种像素中这一特性,根据每个文字块像出现的频率,对像素进行分层,然后根据像素出现的频率有高至低的将每层像素进行传输,从而不仅保证了文字块的显示效果,同时还减小了文字块传输所占用的带宽,进而解决了现有技术中文字块的传输占用带宽较大的技术问题,达到了提高文字块的传输效率的技术效果。
实施例1
根据本发明实施例,提供了一种文字块的传输方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的文字块的传输方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,将文字块的像素根据像素出现的频率分为多层。
具体的,上述文字块可以是将图像进行分块后得到的文字块。在一种可选的实施例中,可以将画面进行分块,确定块的类型,从而得到画面的文字块。统计每一个文字块中像素出现的频率,并分别对每一个文字块中的像素出现的频率进行排序,再按照排序结果对每个文字块的像素进行分层。
步骤S104,按照每一层像素出现的频率由高至低的顺序依次对每一层像素进行传输。
在一种可选的实施例中,将文字块的每个像素分为A、B、C三层,其中,像素出现的频率的大小关系为A层像素>B层像素>C层像素,则在传输的过程中,先将属于A层的像素传输至解码端,再将属于B层的像素传输至解码端,最后将属于C层的像素传输至解码端,也即,像素出现的频率与每层的传输优先级正相关。
在上述步骤中,对于一个文字块,像素出现频率较高的像素即为该文字块最主要的部分,将这部分信息进行压缩编码后发送至解码端,解码端对这部分内容进行解码,由于文字块的像素较为集中,因此仅传输一层就能够得到较好的显示结果。上述方案不仅保证了文字块的显示效果,同时还减小了文字块传输所占用的带宽。
由上可知,本申请上述实施例将文字块的像素根据像素出现的频率分为多层,按照每一层像素出现的频率由高至低的顺序依次对每一层像素进行传输。上述方案利用了文字块最主要的特征主要的能量集中在较少的几种像素中这一特性,根据每个文字块像出现的频率,对像素进行分层,然后根据像素出现的频率有高至低的将每层像素进行传输,从而不仅保证了文字块的显示效果,同时还减小了文字块传输所占用的带宽,进而解决了现有技术中文字块的传输占用带宽较大的技术问题,达到了提高文字块的传输效率的技术效果。
可选的,根据本申请上述实施例,在将文字块的像素根据像素出现的频率分为多层之前,方法还包括:
步骤S106,获取当前网络带宽。
步骤S108,当当前网络带宽小于预设带宽时,进入将文字块的像素根据像素出现的频率分为多层的步骤。
在一种可选的实施例中,以电话会议为例,实时检测当前的网络带宽,当网络带宽较宽时,能过保证文字块的正常传输,则无需对文字块进行分层传输,当网络带宽较窄时,为例保证会议中视频能够流畅的进行传输,则开始对文字块进行分层传输,从而减少文字块传输所占用的带宽,进而保证视频传输的流畅性。
可选的,根据本申请上述实施例,将文字块的像素根据像素出现的频率分为多层,包括:
步骤S1021,根据像素的频率获取像素的基本色和逃逸色。
具体的,上述基本色为文字块中像素按照出现的频率由高至低排序的前几个像素对应的颜色值,而逃逸色为每个文字块中除基本色之外的颜色。
以屏幕显示一篇白底黑字的文章为例,可以确定主要能量集中在出现频率最多的白色像素和黑色像素中,由此确定能量集中的像素(即出现频率较多的像素)为基本色,而其他像素定义为逃逸色。
步骤S1023,将文字块的像素分为两层,确定文字块的基本色为文字块的第一层,确定文字块的逃逸色为文字块的第二层。
在上述步骤中,将文字块分为包括基本色的第一层以及包括逃逸色的第二层,也即先传输基本色,再传输逃逸色。
此处需要说明的是,由于文字块的颜色较为单一,UV分量包含信息较少,用少量基本色可以满足视觉需要;2、文字块的较多复杂色彩都集中于文字边缘的过渡区域,这些过渡颜色在压缩算法中会被识别为逃逸色,这些逃逸色信息冗余较多,且对成像清晰度帮助不大,因此在第一次传输时至传输基本色,而不对逃逸色进行传输。
进一步地,由于在第一层传输时仅传输基本色,YUV的逃逸色在第二层进行传输,从而在保证图像质量的前提下大幅降低了第一层码流的大小。该方案中文字块第一层的传输码流,相比于不分层方案降低了50%以上。这种针对文字编码器的分层压缩传输方案对带宽要求更小,能够更加灵活的适应网络环境,同时基于电脑画面的特殊性(例如:部分画面无变化),在很多场景下向用户“逐渐清晰”的显示画面是能够被接受的。
可选的,根据本申请上述实施例,对于像素的第一分量,获取文字块的基本色和逃逸色,包括:
步骤S10211,获取第一分量的第一频率直方图以及预设的第一步长。
步骤S10213,以第一步长在第一频率直方图中按照能量由大至小的顺序,查找由大至小排列在前N位的N个区间,确定查找到的N个区间对应的颜色值为第一分量的第一基本色,其中,N为大于等于2的整数。
具体的,区间中像素出现的频率最高,该区间的能量越大。对于用于表示像素亮度的Y分量来说,可以取N=4,即取四个基本色。
步骤S10215,确定满足第一预设条件的第一分量对应的颜色为第一逃逸色,其中,第一预设条件为与第一基本色的差值的绝对值大于第一预设值,且不属于第一频率直方图中第一基本色所在的第一预设区间。
此处需要说明的是,对于不满足第一预设条件的像素,即对于与第一基本色的差值的绝对值小于等于第一预设值,或属于直方图中第一基本色所在的第一预设区间的像素,与第一分量的基本色较为接近,可以将其量化为基本色,因此,可以将满足第一预设条件的像素作为逃逸色。
例如,以第一分量的基本色的颜色值为125为例,第一预设值为8,颜色值125在频率直方图中所属的区间为(112,128],与第一基本色的差值的绝对值小于等于第一预设值的像素值属于[117,133],或属于直方图中第一基本色所在的第一预设区间的像素处于(112,128]范围内,由此可以得到不属于[117,133],且不属于(112,128]的像素对应的颜色为逃逸色。
在一种可选的实施例中,以第一分量为Y分量为例,统计画面内每个文字块的Y分量统计频率直方图;以2σ1(第一步长)为步长在统计频率直方图中查找能量最大的4个区间,并记录能量最大的区间对应的颜色,将能量最大的区间对应的颜色作为Y_base_color,即Y分量的基本色。然后将与Y_base_color差值的绝对值大于第一预设值,且未落在频率直方图中Y_base_color所属区间的颜色作为逃逸色。
可选的,根据本申请上述实施例对于像素的第二分量,获取文字块的基本色和逃逸色,包括:
步骤S10217,获取第二分量的第二频率直方图以及预设的第二步长。
步骤S10219,以第二步长在第二频率直方图中按照能量由大至小的顺序,查找由大至小排列在前M位的M个区间,确定查找到的M个区间对应的颜色值为第二分量的第二基本色,其中,M为大于等于2的整数。
具体的,区间中像素出现的频率最高,该区间的能量越大。对于用于U分量来说,可以取M=2,即取两个基本色。
步骤S102111,确定满足第二预设条件的第二分量对应的颜色为第二逃逸色,其中,第二预设条件为与第二基本色的差值的绝对值大于第二预设值,且不属于第二频率直方图中第二基本色所在的第二预设区间。
在一种可选的实施例中,以第二分量为U分量为例,分别统计图像内每个文字块的U分量的频率直方图,以2σ2(第二步长,可以与第一步长相同)为步长在频率直方图中查找能量最大的2个区间,并记录能量最大的2个区间对应的颜色,将能量最大的两个区间对应的颜色作为U_base_color,即U分量基本色,然后将与U_base_color差值的绝对值大于第二预设值,且未落在频率直方图中U_base_color所属区间的颜色作为逃逸色。
可选的,根据本申请上述实施例,对于像素的第三分量,获取文字块的基本色和逃逸色,包括:
步骤S102113,获取第三分量的第三频率直方图以及预设的第三步长。
步骤S102115,以第三步长在第三频率直方图中按照能量由大至小的顺序,查找由大至小排列在前K位的K个区间,确定查找到的K个区间对应的颜色值为第三分量的第三基本色,其中,K为大于等于2的整数。
具体的,区间中像素出现的频率最高,该区间的能量越大。对于用于V分量来说,可以取K=2,即取两个基本色。
步骤S102117,确定满足第三预设条件的第三分量对应的颜色为第三逃逸色,其中,第三预设条件为与第三基本色的差值的绝对值大于第三预设值,且不属于第三频率直方图中第三基本色所在的第三预设区间。
在一种可选的实施例中,以第三分量为K分量为例,分别统计图像内每个文字块的K分量的频率直方图,以2σ3(第三步长,可以与第一步长相同或第二步长相同)为步长在频率直方图中查找能量最大的2个区间,并记录能量最大的2个区间对应的颜色,将能量最大的两个区间对应的颜色作为V_base_color,即V分量基本色,然后将与V_base_color差值的绝对值大于第二预设值,且未落在频率直方图中V_base_color所属区间的颜色作为逃逸色。
可选的,根据本申请上述实施例,在将文字块的像素分为两层之前,方法还包括:步骤S1010,对像素的基本色和逃逸色进行量化,其中,
对像素的基本色进行量化包括:分别将不满足第一预设条件的第一分量、不满足第二预设条件的第二分量和不满足第三预设条件的第三分量量化为第一基本色、第二基本色和第三基本色。
在一种可选的实施例中,以像素的第一分量为例,第一预设条件为与第一基本色的差值的绝对值大于第一预设值,且不属于第一频率直方图中第一基本色所在的第一预设区间,因此不满足第一预设条件的第一分量为与第一基本色的差值的绝对值小于等于第一预设值,或属于第一频率直方图中第一基本色所在的第一预设区间的分量,例如:以第一分量的基本色的颜色值为125为例,第一预设值为8,颜色值125在频率直方图中所属的区间为(112,128],与第一基本色的差值的绝对值小于等于第一预设值的像素值属于[117,133],由此属于[117,133],或属于(112,128]的像素都可以被量化为基本色。
对像素的逃逸色进行量化包括:通过如下公式对文字块的第一分量、第二分量和第三分量的逃逸色进行量化:其中,A用于表征量化后的逃逸色,B用于表示像素的任意一个分量,σ用于表示像素的任意一个分量对应的步长。
可选的,根据本申请上述实施例,在按照每一层像素的频率由高至低依次对每一层像素进行传输之前,方法还包括:步骤S1012,按照每一层像素的频率由高至低依次对每一层像素进行压缩编码,按照每一层像素的频率由高至低依次对每一层像素进行压缩编码的步骤包括:根据文字块中像素的每个分量的基本色和逃逸色,确定每个分量对应的标记索引值;根据像素的标记索引值与邻域像素的标记索引值的关联关系,确定像素的预测索引值;根据文字块中每个像素的标记索引值和预测索引值对文字块进行压缩编码。
在一种可选的实施例中,仍以像素包括YUV三个分量为例,对分层后的压缩编码进行描述。
首先,确定每个分量对应的标记索引值的步骤包括:
(1)将量化后图像中的Y分量的值用对应索引表示,其中:Y_base_color为4个,对应索引0-3。如果Y分量值被量化为基本色,则用Y_base_color对应的索引(0-3)表示;如果Y分量为逃逸色,则用4表示。
(2)将量化后图像中的U分量的值用对应索引表示,其中:U_base_color为2个,对应索引0-1。如果U分量值被量化为基本色,则用U_base_color对应的索引(0-1)表示;如果U分量为逃逸色,则用2表示。
(3)将量化后图像中的V分量的值用对应索引表示,其中:V_base_color为2个,对应索引(0-1)。如果V分量值被量化为基本色,则用V_base_color对应的索引(0-1)表示;如果V分量为逃逸色,则用2表示。
其次,根据像素的标记索引值与邻域像素的标记索引值的关联关系,确定像素的预测索引值的步骤包括:
(1)量化后的值与左侧像素的像素值相等时标记为L。
(2)量化后的值与上侧像素的像素值相等时标记为U。
(3)量化后的值与左侧和上侧都不相等时,或如果上侧和左侧都不存在值时,标记为O。
最后,根据文字块中每个像素的标记索引值和预测索引值对文字块进行压缩编码包括:
(1)将O值对应的序列进行编码并传输。
(2)将逃逸色进行编码并传输。
可选的,根据本申请上述实施例,在按照每一层像素的频率由高至低依次对每一层像素进行传输之后,上述方法还包括:
解码端按照接收的顺序依次对多层像素的压缩编码结果进行解码,其中,在未全部接收到多层像素的压缩编码结果的情况下,通过第四预设值代替未接收到解压缩编码结果的像素,在全部接收到多层像素的压缩编码结果后,对第四预设值替代的像素进行更新。
在一种可选的实施例中,以将像素分为两层为例,在进行第一层的传输时,将YUV分量的基本色及其索引值进行编码并传输,解码端默认YUV分量的逃逸色初值为0,解码第一层数据时,利用0作为逃逸色来解码并生成图像;在进行第二层的传输时,将YUV分量的逃逸色及其索引值进行编码并传输,在解码端对第二层数据解码,并更新YUV分量的逃逸色数据,利用新的逃逸色数据来生成清晰的图像。
图2是根据本发明实施例的一种可选的文字块的传输方法的示意图,下面结合图2所示,对上述方案进行进一步描述。
S21,获取当前带宽并确定分层方案。
S22,是否需要对像素进行分层。在需要进行分层的情况下进入步骤S24,否则进入步骤S23。
S23,传输文字块的全部编码压缩数据。
如果当前带宽无需对文字块进行分层传输,则将文字块的全部压缩编码数据传输至解码端。
S24,传输第一层数据。
S25,传输第二层数据。
如果当前网络带宽需要对文字块进行文层传输,则先传输第一层文字块的编码信息,再传输第二层文字块的编码信息。
S26,对数据进行解码生成图像。
解码端对压缩编码的数据进行解码,从而得到图像的文字部分。
图3是根据本申请实施例的一种解码端对第一层压缩编码数据进行解码的示意图,图3通过不同纹理表示不同颜色,结合图3所示,不包括文字的部分为图像中的图片块,此处不进行讨论,对于文字块部分,以左侧的文字为例,由于文字为一种颜色,文字的底色为另一种颜色,因此第一层像素为基本色,即文字的颜色和文字背景的颜色,解码端在接收到第一层压缩编码数据后解码出文字和文字的背景,构成了如图3所示的图像。
实施例2
根据本发明实施例,提供了一种文字块的传输装置的实施例,图4是根据本发明实施例的文字块的传输装置的示意图,如图4所示,该方法包括如下步骤:
分层模块40,用于将文字块的像素根据像素出现的频率分为多层。
传输模块42,用于按照每一层像素的频率由高至低依次对每一层像素进行传输。
由上可知,本申请上述实施例通过分层模块将文字块的像素根据像素出现的频率分为多层,通过传输模块按照每一层像素出现的频率由高至低的顺序依次对每一层像素进行传输。上述方案利用了文字块最主要的特征主要的能量集中在较少的几种像素中这一特性,根据每个文字块像出现的频率,对像素进行分层,然后根据像素出现的频率有高至低的将每层像素进行传输,从而不仅保证了文字块的显示效果,同时还减小了文字块传输所占用的带宽,进而解决了现有技术中文字块的传输占用带宽较大的技术问题,达到了提高文字块的传输效率的技术效果。
可选的,根据本申请上述实施例,上述装置还包括:
第一获取模块,用于在将文字块的像素根据像素出现的频率分为多层之前,用于获取当前网络带宽。
转换步骤模块,用于当当前网络带宽小于预设带宽时,进入将文字块的像素根据像素出现的频率分为多层的步骤。
可选的,根据本申请上述实施例,分层模块包括:
第二获取模块,用于根据像素的频率获取像素的基本色和逃逸色。
确定模块,用于将文字块的像素分为两层,确定文字块的基本色为文字块的第一层,确定文字块的逃逸色为文字块的第二层。
可选的,根据本申请上述实施例,对于像素的第一分量,第二获取模块包括:
第一获取子模块,用于获取第一分量的第一频率直方图以及预设的第一步长。
第一查找子模块,用于以第一步长在第一频率直方图中按照能量由大至小的顺序,查找由大至小排列在前N位的N个区间,确定查找到的N个区间对应的颜色值为第一分量的第一基本色,其中,N为大于等于2的整数。
第一确定子模块,用于确定满足第一预设条件的第一分量对应的颜色为第一逃逸色,其中,第一预设条件为与第一基本色的差值的绝对值大于第一预设值,且不属于第一频率直方图中第一基本色所在的第一预设区间。
可选的,根据本申请上述实施例,对于像素的第二分量,获取文字块的基本色和逃逸色,包括:
第二获取子模块,用于获取第二分量的第二频率直方图以及预设的第二步长。
第二查找子模块,用于以第二步长在第二频率直方图中按照能量由大至小的顺序,查找由大至小排列在前M位的M个区间,确定查找到的M个区间对应的颜色值为第二分量的第二基本色,其中,M为大于等于2的整数。
第二确定子模块,用于确定满足第二预设条件的第二分量对应的颜色为第二逃逸色,其中,第二预设条件为与第二基本色的差值的绝对值大于第二预设值,且不属于第二频率直方图中第二基本色所在的第二预设区间。
可选的,根据本申请上述实施例,对于像素的第三分量,获取文字块的基本色和逃逸色,包括:
第三获取子模块,用于获取第三分量的第三频率直方图以及预设的第三步长。
第三查找子模块,用于以第三步长在第三频率直方图中按照能量由大至小的顺序,查找由大至小排列在前K位的K个区间,确定查找到的K个区间对应的颜色值为第三分量的第三基本色,其中,K为大于等于2的整数。
第三确定子模块,用于确定满足第三预设条件的第三分量对应的颜色为第三逃逸色,其中,第三预设条件为与第三基本色的差值的绝对值大于第三预设值,且不属于第三频率直方图中第三基本色所在的第三预设区间。
可选的,根据本申请上述实施例,上述装置还包括:量化模块,用于在将文字块的像素分为两层之前,对像素的基本色和逃逸色进行量化,其中,
对像素的基本色进行量化包括:分别将不满足第一预设条件的第一分量、不满足第二预设条件的第二分量和不满足第三预设条件的第三分量量化为第一基本色、第二基本色和第三基本色;
对像素的逃逸色进行量化包括:通过如下公式对文字块的第一分量、第二分量和第三分量的逃逸色进行量化:其中,A用于表征量化后的逃逸色,B用于表示像素的任意一个分量,σ用于表示像素的任意一个分量对应的步长。
可选的,根据本申请上述实施例,上述装置还包括:压缩编码模块,用于在按照每一层像素的频率由高至低依次对每一层像素进行传输之前,按照每一层像素的频率由高至低依次对每一层像素进行压缩编码,按照每一层像素的频率由高至低依次对每一层像素进行压缩编码的步骤包括:根据文字块中像素的每个分量的基本色和逃逸色,确定每个分量对应的标记索引值;根据像素的标记索引值与邻域像素的标记索引值的关联关系,确定像素的预测索引值;根据文字块中每个像素的标记索引值和预测索引值对文字块进行压缩编码。
可选的,根据本申请上述实施例,上述装置还包括:
解码模块,用于在按照每一层像素的频率由高至低依次对每一层像素进行传输之后,解码端按照接收的顺序依次对多层像素的压缩编码结果进行解码,其中,在未全部接收到多层像素的压缩编码结果的情况下,通过第四预设值代替未接收到解压缩编码结果的像素,在全部接收到多层像素的压缩编码结果后,对第四预设值替代的像素进行更新。