发明名称 一种基于智能量化技术的低码率图像压缩方法
摘要 本发明提供了一种基于智能量化技术的低码率图像压缩方法,它是在低码率压缩的前提下,对于内部比较平滑的图像块,利用基于智能量化技术的方法进行编码,再结合插值技术进行重建,在控制编码失真的前提下,有效降低编码码率;同时,对于内部纹理比较复杂的图像块,采用传统的基于JPEG图像压缩标准的编码方法保证对这些图像块的高效编码。对具有不同纹理特征的图像块自适应地选择不同的编码策略,实现对整个图像的高效编码。与传统的JPEG图像压缩方法相比,本发明能够克服传统JPEG图像压缩方法中编码模式单一的缺点。
申请公布号 CN106559668A 申请公布日期 2017.04.05
申请号 CN201510621295.9 申请日期 2015.09.25
申请人 电子科技大学 发明人 朱树元;曾兵
分类号 H04N19/103(2014.01)I;H04N19/147(2014.01)I;H04N19/176(2014.01)I;H04N19/124(2014.01)I 主分类号 H04N19/103(2014.01)I
代理机构 电子科技大学专利中心 51203 代理人 曾磊
主权项 一种基于智能量化技术的低码率图像压缩方法,其特征是它包括以下步骤:步骤1,图像的预处理将大小为W×H的图像,按照传统的JPEG图像压缩标准中图像分块的方法划分为N=(W×H)/8<sup>2</sup>个互不重叠的,大小为8×8的正方形图像块,记为B<sub>1</sub>,B<sub>2</sub>,…,B<sub>i</sub>,…,B<sub>N</sub>,这里,W代表图像的宽度,H代表图像的高度,N代表图像划分后图像块的总个数,i代表图像块的索引,i∈{1,2,…,N};步骤2,索引矩阵的产生把64个自然数1,2,…,64按从小到大,从上到下的顺序逐列摆放,产生一个大小为8×8的索引矩阵,记为I:<img file="FDA0000811427120000011.GIF" wi="460" he="302" />I中的元素记为I(x,y)(x和y都是自然数,并且1≤x≤8,1≤y≤8),这里,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标;步骤3,基于智能量化技术的图像块编码参数设置首先,采用传统的基于智能量化技术的编码算法中提供的量化策略‑2;其次,定义传统的基于智能量化技术的编码算法中需要进行高质量压缩的像素点的坐标索引集合为<img file="FDA0000811427120000012.GIF" wi="134" he="75" />定义传统的基于智能量化技术的编码算法中需要进行低质量压缩的像素点的坐标索引集合为<img file="FDA0000811427120000013.GIF" wi="142" he="77" />这里,<img file="FDA0000811427120000014.GIF" wi="111" he="77" />是一个1×32的行向量,<img file="FDA0000811427120000015.GIF" wi="654" he="77" /><img file="FDA0000811427120000016.GIF" wi="445" he="71" />即<img file="FDA0000811427120000017.GIF" wi="1510" he="78" /><img file="FDA0000811427120000018.GIF" wi="1837" he="71" /><img file="FDA0000811427120000019.GIF" wi="117" he="77" />是一个1×32的行向量,<img file="FDA00008114271200000110.GIF" wi="1176" he="79" />即<img file="FDA00008114271200000111.GIF" wi="290" he="79" /><img file="FDA00008114271200000112.GIF" wi="2028" he="70" /><img file="FDA00008114271200000113.GIF" wi="1076" he="63" />其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;最后,定义传统的基于智能量化技术的编码算法中需要进行普通量化的变换系数的坐标索引集合为<img file="FDA0000811427120000021.GIF" wi="126" he="71" />定义传统的基于智能量化技术的编码算法中需要进行强制型量化的变换系数的坐标索引集合为<img file="FDA0000811427120000022.GIF" wi="134" he="70" />这里,<img file="FDA0000811427120000023.GIF" wi="106" he="71" />是一个1×32的行向量,<img file="FDA0000811427120000024.GIF" wi="644" he="76" /><img file="FDA0000811427120000025.GIF" wi="1350" he="69" /><img file="FDA0000811427120000026.GIF" wi="110" he="69" />是一个1×32的行向量,<img file="FDA0000811427120000027.GIF" wi="2013" he="76" /><img file="FDA0000811427120000028.GIF" wi="222" he="67" />步骤4,基于智能量化技术的图像块编码首先,将步骤1中所产生的大小为8×8的图像块B<sub>i</sub>,按照步骤3中设置完成的传统的基于智能量化技术的图像压缩方法进行编码和解码,得到编码后的比特数,记为<img file="FDA0000811427120000029.GIF" wi="135" he="75" />以及解码后的图像块,记为B'<sub>i</sub>,即<maths num="0001"><math><![CDATA[<mrow><msubsup><mi>B</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msubsup><mi>&beta;</mi><mrow><mn>1</mn><mo>,</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>1</mn><mo>,</mo><mi>n</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>&beta;</mi><mrow><mn>2</mn><mo>,</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>2</mn><mo>,</mo><mn>2</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>2</mn><mo>,</mo><mi>n</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd></mtr><mtr><mtd><msubsup><mi>&beta;</mi><mrow><mi>m</mi><mo>,</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mi>m</mi><mo>,</mo><mn>2</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mi>m</mi><mo>,</mo><mi>n</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA00008114271200000210.GIF" wi="605" he="310" /></maths>这里,β'<sub>m,n</sub>是B'<sub>i</sub>中的元素,m代表B'<sub>i</sub>内元素的横坐标,n代表B'<sub>i</sub>内元素的纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;然后,用传统的双三次插值方法对B'<sub>i</sub>中位于(u,v)位置上的像素点进行插值,得到插值后的重建图像块,记为<img file="FDA00008114271200000211.GIF" wi="86" he="78" /><maths num="0002"><math><![CDATA[<mrow><msubsup><mover><mi>B</mi><mo>^</mo></mover><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mn>1</mn><mo>,</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mn>1</mn><mo>,</mo><mi>n</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr><mtr><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mn>2</mn><mo>,</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mn>2</mn><mo>,</mo><mn>2</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mn>2</mn><mo>,</mo><mi>n</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd></mtr><mtr><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mi>m</mi><mo>,</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mi>m</mi><mo>,</mo><mn>2</mn></mrow><mo>&prime;</mo></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mover><mi>&beta;</mi><mo>^</mo></mover><mrow><mi>m</mi><mo>,</mo><mi>n</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA00008114271200000212.GIF" wi="606" he="342" /></maths>这里,u为B'<sub>i</sub>内像素点的横坐标,v为B'<sub>i</sub>内像素点的纵坐标,u和v是自然数,1≤u≤8,1≤v≤8,并且u+v为奇数;<img file="FDA00008114271200000213.GIF" wi="90" he="87" />是<img file="FDA00008114271200000214.GIF" wi="58" he="84" />中的元素,m代表<img file="FDA00008114271200000215.GIF" wi="62" he="86" />内元素的横坐标,n代表<img file="FDA00008114271200000216.GIF" wi="61" he="86" />内元素的纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;最后,用传统计算均方误差方法计算图像块<img file="FDA00008114271200000217.GIF" wi="62" he="78" />与步骤1中产生的图像块B<sub>i</sub>之间的均方误差,记为<img file="FDA00008114271200000218.GIF" wi="175" he="75" />这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;步骤5,用传统编码方法编码原始图像块首先,将步骤1中所产生的大小为8×8的图像块B<sub>i</sub>,按照传统的基于JPEG编码标准的图像压缩方法进行编码和解码,得到编码后的比特数,记为<img file="FDA0000811427120000031.GIF" wi="135" he="79" />以及解码后的图像块,记为B”<sub>i</sub>,即<maths num="0003"><math><![CDATA[<mrow><msubsup><mi>B</mi><mi>i</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msubsup><mi>&beta;</mi><mrow><mn>1</mn><mo>,</mo><mn>1</mn></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>1</mn><mo>,</mo><mi>n</mi></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>&beta;</mi><mrow><mn>2</mn><mo>,</mo><mn>1</mn></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>2</mn><mo>,</mo><mn>2</mn></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mn>2</mn><mo>,</mo><mi>n</mi></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd></mtr><mtr><mtd><msubsup><mi>&beta;</mi><mrow><mi>m</mi><mo>,</mo><mn>1</mn></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mi>m</mi><mo>,</mo><mn>2</mn></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>&beta;</mi><mrow><mi>m</mi><mo>,</mo><mi>n</mi></mrow><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msubsup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000811427120000032.GIF" wi="606" he="309" /></maths>这里,β"<sub>m,n</sub>是B”<sub>i</sub>中的元素,m代表B"<sub>i</sub>内元素的横坐标,n代表B"<sub>i</sub>内元素的纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;然后,用传统计算均方误差方法计算图像块B"<sub>i</sub>与步骤1中产生的图像块B<sub>i</sub>之间的均方误差,记为<img file="FDA0000811427120000033.GIF" wi="178" he="79" />这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;步骤6,最优编码和解码模式的选择对步骤1产生的图像块B<sub>i</sub>,用步骤4得到的比特数<img file="FDA0000811427120000034.GIF" wi="112" he="79" />和均方误差<img file="FDA0000811427120000035.GIF" wi="153" he="78" />相乘,将相乘后得到的编码代价记为<img file="FDA0000811427120000036.GIF" wi="671" he="79" />用步骤5得到的比特数<img file="FDA0000811427120000037.GIF" wi="119" he="79" />和均方误差<img file="FDA0000811427120000038.GIF" wi="155" he="78" />相乘,将相乘后得到的编码代价记为<img file="FDA0000811427120000039.GIF" wi="693" he="79" />比较<img file="FDA00008114271200000310.GIF" wi="135" he="79" />和<img file="FDA00008114271200000311.GIF" wi="138" he="79" />的大小,如果<img file="FDA00008114271200000312.GIF" wi="323" he="79" />那么选择步骤4的编码和解码方法对步骤1中产生的图像块B<sub>i</sub>进行编码和解码,编码后的的码率为<img file="FDA00008114271200000313.GIF" wi="206" he="78" />如果<img file="FDA00008114271200000314.GIF" wi="334" he="78" />那么选择步骤5的编码和解码方法对步骤1中产生的图像块B<sub>i</sub>进行编码和解码,编码后的的码率为<img file="FDA00008114271200000315.GIF" wi="206" he="78" />将解码后得到图像块,记为b<sub>i</sub>,<img file="FDA0000811427120000041.GIF" wi="462" he="238" />这里,α<sub>m,n</sub>是b<sub>i</sub>中的元素,m代表b<sub>i</sub>内元素的横坐标,n代表b<sub>i</sub>内元素的纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;步骤7,重建图像对于步骤6中产生的重建图像块b<sub>i</sub>,采用传统的JPEG图像压缩标准中图像块合成图像的方法,产生重建图像,记为<img file="FDA0000811427120000042.GIF" wi="84" he="70" />这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数。
地址 611731 四川省成都市高新区(西区)西源大道2006号