软件交底书模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件交底书模板
-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
专利提案技术交底书模板
一、本专利提案所属的功能领域(选中类别,涂底色)
浏览类:网页加载,网页渲染,图片处理等
二、本专利提案出现的背景
网页中占用内存最多的资源就是图像,为了节省内存,减少因内存不足被系统kill 的机率,我们在解码图像时,会对图像进行降低采样处理,例如将一张原高宽为1000*1000像素的JPEG图像,解码为500*500像素的无压缩的位图。
网页图片中有一部分图像在降低采样后,不会明显地感觉到图像质量变差,例如;如风景、人像等,然而,对于文字为主的图像,如长微博、图片小说、漫画等,在降低采样后,图像里面的文字就变得难以识别,从而对用户的使用造成了干扰。这类图片有个共同特点,就是灰阶像素远大于彩色像素。简称这类图像为灰度图像。
即本方案是针对现有的解码图片是对所有图片进行降低采样的方式进行处理,而对于一些灰度图片即文字类的进行降低采用处理之后会出变得难以识别,从而对用户的使用造成了干扰的问题提出的一种灰度图像识别与重解码的方法。
三、本专利提案的技术方案以及实现的步骤
本方案采取的做法是:在图片解码过程中,或解码完成后,对图像灰度信息进行识别,若灰阶像素比例达到一定阀值,那么认为该图片的主体内容为文字,然后对图像进行重解码,在重解码时,不会以降低采样的方式解码,即按图像的原大小进行解码,达到为了不让浏览器因大量图像导致占用过多的内存,同时又要让那些以文字为主要内容的灰度图像显示清晰的目的。
本方案的整体流程如下:
1.降低采样解码
在浏览器解码一张面积较大的图像(即图像的宽*高)时,我们会根据手机总RAM 大小,和当前的可用内存状态,对图像以适当的比例进行降低采样解码。
如一张宽高分别为1024*1024像素的图像,我们可能会将它解码为512*512像素的无压缩的位图,在这个图像的解码过程中,原图像的每两个像素会被合成一个像素而存储。
2.灰度图像识别
灰度图像识别,即遍历解码后的位图的像素,根据每个像素的R、G、B三个颜色的分量,判断其是否为灰阶像素。以此计算出该位图中灰阶像素的数量,并计算出其相对于整个图像像素数的比例。如果该比例大于等于某一个预定的值,那么我们认为其为灰度图像(即以文字为主的图像);否则认为其为彩色图像。
1)扫描密度
由于对图像的每个像素进行扫描会消耗比较长的时间,并且由于我们没有必要精确得出一张图像中灰阶像素的占比。因此,在扫描灰阶像素数时,我们以每n个像素取一个像素进行灰阶判断的方式计算灰阶像素占比。例如一张位图中需要被识别的有第1个像素,第n+1个像素,第2*n+1个像素,第3*n+1个像素,...
经过大量试验,最终我们取 n 的值为 7,即每隔 6 个像素取一个像素进行灰阶信息识别。经测试,隔 6 个像素扫描比逐个像素扫描在效率上提高 2-3 倍,并且它们识别结果相当。
2)灰阶像素识别
我们在解码图像时,可能将它解码成32位的位图(即A、R、G、B各占8个byte)或者16位的位图(A、R、G、B各占4个byte,或者R、G、B分别占5个、6个、5个字节)。
对于灰阶像素,其明显的特征是R、G、B三个颜色分量的值一致,或者相近。因此,根据这个特征,我们判断一个像素是否为灰阶像素。
32位位图ARGB8888灰阶像素识别
对于32位位图,其R、G、B三个颜色分量占用的内存字节数一样,都占8个byte,因此只需要判断它们两两相差的绝对值之和是否小于等于灰阶像素容差T即可。
公式如下:
abs(R-G) + abs(G-B) + abs(R-B) <= T
其中abs为取绝对值的函数。
符合上式的像素,我们认为其为灰阶像素。
R,G,B的取值范围为0-255(包含0和255);实际应用中,T的取值为 8。
●16位位图ARGB4444灰阶像素识别
ARGB4444格式的16位位图R、G、B三个颜色分量占用的内存字节数也相等,都为4个byte。
它们的取值范围为0-15(包含0和15)。
灰阶像素的识别公式同上面32位位图的识别公式,不过容差T为32位位图的一半,即为 4。
●16位位图RGB565灰阶像素识别
RGB565格式的16位位图R、G、B三个颜色分量占用的字节数不相等,分别为5个像素,6个像素,5个像素。
R和B的取值范围为0-31(包含0和31),G的取值范围为0-63(包含0和63)。
灰阶像素的识别公式如下:
g = G >> 1
abs(R-g) + abs(g-B) + abs(R-B) <= T
因为颜色分量G占用的位数较R和B多1位,因此,不能同ARGB8888一样,直接相减,而是需要先将G也转换为5个byte时的颜色值,再对它们进行两两相减取绝对值。
容差T的取值同为32位位图的一半,即为4。
3)灰阶像素占比
假设图像的解码位图高宽分别为w 和h 像素,每n个像素扫描一个像素,已经扫描到的灰阶像素数为G,灰度图像的灰阶像素占比为P,那么符合如下公式时,我们认为该图像为灰度图像:
实际应用中,P的取值为0.95,即灰阶像素大于等于95% 时,认为该图像为灰度图像。
4)算法优化
在扫描图像像素之前,可以计算出对于该图像,扫描到的彩色像素达到多少个,或者灰阶像素达到多少个时,就足以得出是否为灰度图像了,而不必将整个图像扫描完。
对于一张高宽分别为w和h像素的图像,假设每n个像素扫描一个像素,灰度图像的灰阶阀值取为P。在扫描图像的过程中,我们会分别记录已经扫描到的灰阶像素和彩色像素的像素数。当灰阶像素大于等于下面值时,可以确定其为灰度图像:
w * h * P / n
当彩色像素数大于等于下面值时,可以确定为彩色图像:
w * h * (1 - P) / n
经相关测试,结果显示,该优化对彩色图像的识别效率大有提高。
3.灰度图像重解码