图像压缩方法

文档序号:7954173阅读:211来源:国知局
专利名称:图像压缩方法
技术领域
本发明涉及一种图像压缩方法,尤其是一种根据图像内容,进行两倍压 缩率压缩的嵌入式图像压缩方法。
背景技术
近年来,随着时代的发展,人们的生活水平日益提高,从而推动了电子 集成技术的进步,各种显示设备的尺寸和分辨率不断增加。分辨率的增加, 也就意味着每帧图片的像素数目的增加,这样在视频和图像处理时需要处理 的数据量就会激增,由此带来的视频与图像处理的成本也随之提高。一^l殳来说,随着图像处理芯片所支持的分辨率的增加,芯片的成本也会 提高。这是因为图像分辨率的增加使得每帧图像需要处理的数据量急剧增加, 特别在需要进行数据存储和频繁的存储器数据读写的情况下,高数据量更加 加重了存储器容量和带宽的负担,并且需要大量的存储器,使得芯片的制造 成本居高不下。为了节约成本,数据压缩是一个很好的解决方案。数据处理时,在不影 响图^f象处理效果和最终图像质量的前提下,将原始数据流进行一定压缩率的 压缩,使得写进存储器的数据量和数据读写所需的带宽降低。为了节约存储器容量和数据带宽,最简单和典型的压缩方法是利用图像 在色度空间上的冗余性和人眼对色度没有对亮度敏感的特性进行色度下采样,可以实现1.5倍或2倍的压缩率。例如现有的典型的嵌入式的图像压缩方法是在YUV色度空间上进行UV值 的下采样。比如对于Pl、 P2、 P3和P4四个像素,设它们的RGB值(R1,G1,B1)、(R2,G2, B2)、 (R3, G3, B3)和(R4,G4,B4)经过RGB到YUV的色彩空间转换后, 转换为(Y1,U1,V1)、 (Y2,U2,V2)、 (Y3, U3, V3)和(Y4, U4, V4),压缩时只保留每 个像素的Y值和第一个像素的UV值,也就是只保留Y1、 Y2、 Y3、 Y4和U1、 V2,解压缩时P2、 P3和P4的UV值直接用U1和V1替代。这样做也能实现2 倍的压缩率,但是这种全部用一个UV值代替其他三个像素的UV值的方法, 当Pl、 P2、 P3和P4的UV色度相差很大的时候解压出来的质量;f艮差,往往造 成P2、 P3和P4的颜色与原始图像有重大差别,使得人眼不能接受,这种情 况往往在非自然的图形上很常见。另一种现有的嵌入式图像压缩方法是直接 在每个像素的RGB值上进行比特截取,以达到所要求的压缩率。比如要求达 到2倍的压缩率时,就在每个像素原始的24比特RGB值上直接丢弃每个分量 的低4比特,只保持每个分量的高4比特,这样3个分量共保留了 12比特, 也实现了 2倍的压缩率。这种压缩方法在每个像素的RGB分量上最多可存在 正负16的误差,对于大部分的图像人眼都能觉察出和原始图像有差别,特别 对于现在高端的显示设备根本不能应用。因此现有的图像压缩方法,均无法实现根据不同的内容采用不同的压缩 方法,对原始图像数据进行嵌入式压缩,图像压缩效果不好。发明内容本发明的目的是针对现有图像压缩方法的缺陷,提供一种图像压缩方法, 可以针对图像中的不同的内容,采用不同的压缩方法进行嵌入式压缩,并且 图像压缩效果很好。为实现上述目的,本发明提供了一种图像压缩方法,包括如下步骤 步骤1,对从原始图像数据分割出的图像块进行灰度检测,如果为灰度图 像块则执行步骤2;否则执行步骤3;步骤2,对该灰度图像块进行无损压缩,执行步骤6;步骤3,计算该图像块中不同像素值的个数,如果该图像块中不同像素值
的个数没有超过第一域值,则执行步骤4,如果该图像块中不同像素值的个数 超过第一域值则执行步骤5;步骤4,对该图像块进行无损压缩,执行步骤6;步骤5,对该图像块进行有损压缩,执行步骤6;步骤6,结束。所述步骤中的图像块为8 x 2像素的图像块。所述步骤1中对从原始图像 数据分割出的图像块进行灰度检测具体为检测该图像块中的各个像素的RGB 的值或者YUV的值是否相同。所述步骤5具体为步骤51,将8x2像素的图 像块分割为四个2x2像素的子图像块;步骤52,计算2x2像素的子图像块 中四个像素的UV分量的差值,如果所有UV分量的差值都小于第二域值,则 执行步骤53;如果存在UV分量的差值大于第二域值,则执行步骤54;步骤 53,对该2 x 2像素的子图像块进行YUV空间的UV分量4倍下采样压缩,执 行步骤55;步骤54,对该2 x 2像素的子图像块进行RGB空间的比特截断压 缩,执行步骤55;步骤55,判断8x2像素的图像块分割的四个2x2像素的 子图像块是否都压缩完毕,如果压缩完毕则执行步骤6,否则执行步骤52。 所述步骤53中YUV空间的UV分量4倍下采样压缩具体为将该2 x 2像素的 子图像块中一个像素的U值和V值替代其他三个像素的U值和V值。所述步 骤54具体为从预设的RGB空间的比特截断压缩方法中选择失真率最少的比 特截断压缩方法对该2 x 2像素的子图像块进行压缩。所述步骤51之前还包 括步骤将8 x 2像素的图像块从RGB空间转换到YUV空间。因此,本发明图像压缩方法可以基于图像内容的不同自适应地采用不同 的压缩方法进行嵌入式压缩,利用较少的资源实现高质量的图像压缩。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


图1为本发明图像压缩方法中8x2像素的图像块的示意图。
图2为本发明图像压缩方法的流程图。图3为本发明图像压缩方法对灰度块进行无损压缩时的码流示意图。 图4为本发明图像压缩方法对8 x 2像素的图像块进行无损压缩时的码流 示意图。图5为本发明图像压缩方法对8 x 2像素的图像块进行有损压缩时的码流 示意图。图6为本发明图像压缩方法对8 x 2像素的图像块进行有损压缩的方法流 程图。图7为本发明图像压缩方法对8x2像素的图像块中第一个2x2像素的 子图像块在YUV色彩空间进行压缩时的码流示意图。图8为本发明图像压缩方法对8x2像素的图像块中其他三个2x2像素 的子图像块在YUV色彩空间进行压缩时的码流示意图。图9为本发明图像压缩方法中的6种2x2像素子图像块进行比特截断模 式压缩的示意图。图10为本发明图像压缩方法对8 x 2像素的图像块中第一个2 x 2像素的 子图像块在RGB色彩空间进行压缩时的码流示意图。图11为发明图像压缩方法对8x2像素的图像块中其余三个2x2像素的 子图像块在RGB色彩空间进行压缩时的码流示意图。
具体实施方式
本发明是一种固定压缩率的基于图像内容的嵌入式压缩方法,可以基于 图像内容的不同自适应地采用不同的压缩方法进行嵌入式压缩,利用较少的 资源实现高质量的图像压缩。本发明图像压缩方法包括如下步骤步骤l,对从原始图像数据分割出的图像块进行灰度检测,如果为灰度图 像块则执行步骤2;否则执行步骤3; 步骤2,对该灰度图像块进行无损压缩,执行步骤6;步骤3,计算该图像块中不同像素值的个数,如果该图像块中不同像素值 的个数没有超过第一域值,则执行步骤4,如果该图像块中不同像素值的个数 超过第一域值则执行步骤5;步骤4,对该图像块进行无损压缩,执行步骤6;步骤5,对该图像块进行有损压缩;步骤6,结束。下面的实施例是基于8 x 2像素的图像块进行压缩,每一个像素24比特 RGB输入,经过本发明图像压缩方法达到2倍压缩率,压缩输出12比特RGB, 如图l所示,为本发明图像压缩方法中8x2像素的图像块的示意图。再如图2所示,为本发明图像压缩方法的流程图,详细步骤如下步骤101,对从原始图像数据分割出的8 x 2像素的图像块进行灰度检测, 如果为灰度图像块则执行步骤102;否则执行步骤103;如图2所示,为本发明图像压缩方法所基于的8x2像素的图像块的示意 图,本步骤中检测8 x 2像素的图像块是否为灰度块,只要通过检测该图像块 中的16个像素的RGB值是否相同即可,因为该图像块是RGB输入,如果全部 相同则为灰度快,如果有一个不同则不是灰度块;另外如果图像块是YUV输 入,则判断16个像素的YUV的值是否相同即可,同理如果所有像素的YUV的 值全部相同则为灰度快,如果有一个不同则不是灰度块;步骤102,对该灰度图像块进行无损压缩,执行步骤106;如图3所示,为本发明图像压缩方法对灰度块进行无损压缩时的码流示 意图,如果8x2像素的图像块为灰度块,编码时先用两个比特"01"来表示 此图像块为灰度块,其中"0"表示此图像块为无损压缩,"1"表示此图像 块为灰度块,这样在有损压缩时可以只用一个比特'T,来表示,节省了有损 压缩的比特数,在两比特标志位后接着保留每个像素的灰度值,由于8x2的 块经过2倍压缩率的压缩后应该为8 x 2 x 12 = 192个比特,而此时灰度块压
缩后只有2 + 8 x 2 x 8 = 130个比特,因此剩下的比特可以用"0"填补;
步骤103,计算该8x2像素的图像块中不同像素值的个数,如果该图像 块中不同像素值的个数没有超过第一域值,则执行步骤104,如果该8x2像 素的图像块中不同像素值的个数超过第 一域值则执行步骤105;
如果8 x 2像素的图像块不是灰度块,则判断这个图像块是不是满足无损 压缩的图像块,在本实施例中,对于每一个像素24比特输入的图像块,经过 计算,要想实现2倍压缩率的无损压缩,8x2像素的图像块中最多只能出现 6个不同的像素值,所以第一域值就是6,检测的方法就是一次检查8x2像 素的图像块中16个像素的RGB值,当不同的RGB值超过第一域值6时,就认 为此图像块不是能进行无损压缩的图形块;
步骤104,对该8x2像素的图像块进行无损压缩;
如图4所示为本发明图像压缩方法对可以进行无损压缩的8 x 2像素的图 像块进4亍无损压缩时的码流示意图,当8 x 2像素的图像块是可以进行无损压 缩的图像块时,无损压缩时先用两个比特"00"来表示此8x2像素的图像块 为无损压缩的图像块,其中第一个"0"表示此图像块为无损压缩,第二个"0" 表示此图像块为普通图像块,在两比特标志位后存放6个不同像素值的RGB 值,接着存放每个像素相对于这6个像素值的索引,如果8x2像素的图像块 中出现的不同像素值的个数小于6,也要在存放索引的前面给出6个RGB值的 比特空间,这样解码时才能找到正确的索引值;
步骤105,对该8x2像素的图像块进行有损压缩;
有损压缩的方法很多,本发明是利用图像内容自适应的在RGB空间和YUV 空间进行压缩;如图5所示,为本发明图像压缩方法对8x2像素的图像块进 行有损压缩时的码流示意图,如果8 x 2的像素块既不是灰度块,也不是可以 进行无损编码的图形块,那么就进行基于2x2子像素块的有损压缩,用l个 比特"1"作为标志位,每个2x2的子块根据像素值的不同自适应的选择在 YUV空间还是RGB空间进行压缩;如果8 x 2像素的图像块既不是灰度块,也
不是可以进行无损编码的图像块,那么就进行基于2 x 2像素的子图像块的有 损压缩,用1个比特"I"作为标志位,表示有损压缩,而每个2x2的子块 根据像素值的不同自适应的选择在YUV空间还是RGB空间进行压缩,标志位 如果为"0"则表示2x2像素的子图像块在RGB空间进行压缩,而标志位如 果为'T,-则表示2 x 2像素的子图像块在YUV空间进行压缩;
再如图6所示,为本发明图像压缩方法对8x2像素的图像块进行有损压 缩的方法流程图,详细步骤如下
步骤201,将8 x 2像素的图像块分割为四个2 x 2像素的子图像块; 步骤202,计算2x2像素的子图像块中四个像素的UV分量的差值,如果 所有的差^f直都小于第二域值,则执行步骤203;如果存在差值大于第二域值, 则才丸行步骤204;
步骤203,对该2 x 2像素的子图像块进行YUV空间的UV分量4倍下采样 压缩;拍J于步骤205;
如果象素为RGB输入则需要从RGB空间转换到YUV空间;对于2 x 2像素 的子像素块,计算4个像素的UV分量的差值,如果所有的差值都小于设定的 第二阈值,就采用YUV空间的UV分量4倍下采样的方法进行压缩,否则采用 RGB空间的比特截断方法;UV分量的4倍下采样方法就是在一个子像素块的4 个像素中只保留一个像素的UV值,将该2 x 2像素的子图像块中用该像素的 UV值替代其他三个像素的UV值,解压缩时其余3个像素的UV值都拷贝这个 UV值,如图7所示,为本发明图像压缩方法对8x2像素的图像块中第一个2 x 2像素的子图像块在YUV色彩空间进行压缩时的码流示意图,由于8 x 2像 素的图像块中的第一个2x2像素的子图像块使用了一个比特的"1"作为有 损编码的标志位,因此如果第一个子像素块需要进行YUV压缩和其余3个子 块需要进4亍YUV压缩有少许不同,因为第一个子图像块还需要使用一个比特 的标志位"1"来表示在YUV色彩空间的压缩,因此该子图像块中的U值和V 值用7个比特来表示,而其他四个Y值依然用8个比特进行表示;如图8所
示,为本发明图像压缩方法对8 x 2像素的图像块中其他三个2 x 2像素的子 图像块在YUV色彩空间进行压缩时的码流示意图,其余3个子块需要进行YUV 压缩时,因为不需要占用一个比特的有损编码的标志位,而只需要占用一个 比特的标志位'T,来表示在YUV色彩空间的压缩,因此该子图像块中的V值 用7个比特来表示,而U值和其他四个Y值依然用8个比特进行表示;
步骤204,对该2 x 2像素的子图像块进行RGB空间的比特截断压缩;
如果2 x 2像素的子图像块4个像素的UV分量差值超过设定的第二阈值, 就采用RGB空间的比特截断方法进行压缩,为了取得最优的压缩效果,本方 法设计了 6种比特截断模式,如图9所示,为本发明图像压缩方法中的6种2 x 2像素子图像块进行比特截断模式压缩的示意图,由于要实现2倍压缩率, 每种模式只保留3个像素的RGB高4位或高5位比特,将这3个像素记为 CodelandRef 、 Code2和Code3,第4个像素不保留任何比特,解压缩时拷贝 CodelandRef的RGB值;
计算每种模式的失真,也就是解压缩后的RGB值和原始RGB的差值,选 择最小失真的模式作为最终的2 x 2子块RGB压缩方法,在压缩码流中要存放 所选用模式的序号,这样才能正确解压缩,与2x2像素的子图像块YUV压缩 一样,参见图10和图11所示,为本发明图像压缩方法对8x2像素的图像块 中第一个2 x 2像素的子图像块在RGB色彩空间进行压缩时的码流示意图,和 本发明图像压缩方法对8x2像素的图像块中其余三个2x2像素的子图像块 在RGB色彩空间进行压缩时的码流示意图,当8x2像素的子图像块的第一个 2 x 2像素的子图像块采用的是RGB比特截断压缩时,要有一个比特的标志位 "1"来表示本8x2的块采用的是有损压缩,而其他三个子像素块则不需要, 因此比特截断方法与其余3个子块有少许不同,第一个字块的B值比其他子 块的B值少一个比特;
步骤205,判断8 x 2像素的图像块分割的四个2 x 2像素的子图像块是否 都压缩完毕,如果压缩完毕则结束,否则执行步骤202;
步艰《106,结束。
本发明的图像压缩方法筒单,每次压缩基于8x2像素的图像块,在硬件
实现时只需要两行的行緩冲器,无需耗用更多的存储器资源,而且不会由于 压缩造成过多的数据延迟。因为基于图像内容的不同,可以对8x2像素的图 像块进行不同模式的压缩方法,以求对于每个8 x 2像素的图像块都能取得最 优的压缩效果。每个8x2像素的图像块都实现固定压缩率为2的压缩,这样 有利于数据流量和带宽的控制,易于硬件实现。并且压缩效果好,特别是对 于所有灰度图像以及绝大部分图形能做到无损压缩,对于自然图片也可以根 据图形内容进行最优压缩模式的选择,大量测试结果表明,这种图像压缩方 法可以用于各种终端显示设备。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制, 尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当 理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技 术方案的精神和范围。
权利要求
1、一种图像压缩方法其中包括如下步骤步骤1,对从原始图像数据分割出的图像块进行灰度检测,如果为灰度图像块则执行步骤2;否则执行步骤3;步骤2,对该灰度图像块进行无损压缩,执行步骤6;步骤3,计算该图像块中不同像素值的个数,如果该图像块中不同像素值的个数没有超过第一域值,则执行步骤4,如果该图像块中不同像素值的个数超过第一域值则执行步骤5;步骤4,对该图像块进行无损压缩,执行步骤6;步骤5,对该图像块进行有损压缩,执行步骤6;步骤6,结束。
2、 才艮据权利要求1所述的图像压缩方法,其中所述步骤中的图像块为8 x2像素的图像块。
3、 根据权利要求1所述的图像压缩方法,其中所述步骤1中对从原始图 像数据分割出的图像块进行灰度检测具体为检测该图像块中的各个像素的 RGB的值或者YUV的值是否相同。
4、 根据权利要求2所述的图像压缩方法,其中所述步骤5具体为 步骤51,将8 x 2像素的图像块分割为四个2 x 2像素的子图像块; 步骤52,计算2x2像素的子图像块中四个像素的UV分量的差值,如杲所有UV分量的差值都小于第二域值,则执行步骤53;如果存在UV分量的差 值大于第二域值,则执行步骤54;步骤53,对该2 x 2像素的子图像块进行YUV空间的UV分量4倍下采样 压缩,执行步骤55;步骤54,对该2 x 2像素的子图像块进行RGB空间的比特截断压缩,执行 步骤55;步骤55,判断8 x 2像素的图像块分割的四个2 x 2像素的子图像块是否 都压缩完毕,如果压缩完毕则执行步骤6,否则执行步骤52。
5、 才艮据权利要求4所述的图像压缩方法,其中所述步骤53中YUV空间 的UV分量4倍下采样压缩具体为将该2 x 2像素的子图像块中一个像素的U 值和V值替代其他三个像素的U值和V值。
6、 才艮据权利要求4所述的图像压缩方法,其中所述步骤54具体为从 预i殳的RGB空间的比特截断压缩方法中选择失真率最少的比特截断压缩方法 对该2 x 2 ^泉素的子图像块进^f亍压缩。
7、 才艮据权利要求4、 5或6所述的图像压缩方法,其中所述步骤51之前 还包括步骤将8 x 2像素的图像块从RGB空间转换到YUV空间。
全文摘要
本发明涉及一种图像压缩方法,包括如下步骤步骤1,对从原始图像数据分割出的图像块进行灰度检测,如果为灰度图像块则执行步骤2;否则执行步骤3;步骤2,对该灰度图像块进行无损压缩,执行步骤6;步骤3,计算该图像块中不同像素值的个数,如果该图像块中不同像素值的个数没有超过第一域值,则执行步骤4,如果该图像块中不同像素值的个数超过第一域值则执行步骤5;步骤4,对该图像块进行无损压缩,执行步骤6;步骤5,对该图像块进行有损压缩,执行步骤6;步骤6,结束。因此,本发明图像压缩方法可以基于图像内容的不同自适应地采用不同的压缩方法,利用较少的资源实现高质量的图像压缩。
文档编号H04N7/26GK101106709SQ20061002876
公开日2008年1月16日 申请日期2006年7月10日 优先权日2006年7月10日
发明者蔷 李 申请人:逐点半导体(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1