发明名称 一种基于残差压缩感知的相似图像压缩方法
摘要 本发明公开了一种基于残差压缩感知的相似图像压缩方法,包括步骤:1)采集一组相似图像;2)对相似图像进行智能训练,提取公共模板;将首幅待压缩图像与公共模板相减得到残差,对残差采用K-SVD算法进行训练,得到公共字典及测量值系数;对残差进行压缩感知测量得到残差测量值;提取测量值非零项进行量化、熵编码得到压缩码流,提取非零项位置信息作为头信息;3)对压缩码流反熵编码、反量化解出非零项残差测量值,结合头信息恢复测量矩阵;根据字典,采用OMP稀疏编码算法重构出残差图像;将残差图像与公共模板相加得到重构图像;4)输出重构图像。本发明可以大大减少数据存储量,有效提高压缩效率,且重构质量更好。
申请公布号 CN104506752A 申请公布日期 2015.04.08
申请号 CN201510004688.5 申请日期 2015.01.06
申请人 河海大学常州校区 发明人 朱金秀;张瑶;范新南;裴颖;倪建军;张学武;汤一彬
分类号 H04N1/41(2006.01)I;H04N1/21(2006.01)I 主分类号 H04N1/41(2006.01)I
代理机构 南京纵横知识产权代理有限公司 32224 代理人 董建林
主权项 一种基于残差压缩感知的相似图像压缩方法,其特征在于:包括步骤:(1)初始化:11)通过输入设备,采集待压缩的N组相似图像并保存;12)将采集到的N幅尺寸为L×H图像作为公共模板训练样本读入数组I中;(2)编码:21)公共模板智能训练:21a)将所有N幅图像划分为8×8不重叠的块,对边缘不足8×8的块用0补充,得到样本训练图像块集合B;21b)在块集合B中随机选取小部分图像块进行k‑means聚类,得到K个聚类中心;21c)以21b)中K个聚类中心作为迭代初始值,对图像块集合B进行聚类,得到图像块集合B<sup>k</sup>;21d)对当前第k类图像块集合B<sup>k</sup>,通过构建以<img file="FDA0000652076240000018.GIF" wi="65" he="70" />的l<sub>2</sub>范数作为惩罚函数并添加到目标函数(2)中,即:<img file="FDA0000652076240000011.GIF" wi="1545" he="204" />其中,<img file="FDA0000652076240000012.GIF" wi="76" he="79" />为64×64的固定字典;m<sup>k</sup>为当前第k类图像块集合B<sup>k</sup>的总块数,<img file="FDA0000652076240000013.GIF" wi="69" he="87" />为当前类中的第j图像块,矩阵A<sup>k</sup>为当前第k类在字典<img file="FDA0000652076240000014.GIF" wi="69" he="82" />下的稀疏系数矩阵,其尺寸为64×m<sup>k</sup>,<img file="FDA0000652076240000015.GIF" wi="71" he="83" />为矩阵A<sup>k</sup>第i行,<img file="FDA0000652076240000016.GIF" wi="78" he="87" />为矩阵A<sup>k</sup>第j列,λ为尺度参数,求解式(2)找出A<sup>k</sup>的最小二乘表示<img file="FDA0000652076240000017.GIF" wi="92" he="77" />其列为图像块在固定字典<img file="FDA0000652076240000021.GIF" wi="58" he="80" />上的稀疏系数矩阵;21e)联合稀疏系数矩阵A<sup>k</sup>和固定字典<img file="FDA0000652076240000022.GIF" wi="68" he="78" />对同一类m<sup>k</sup>个图像块<img file="FDA0000652076240000023.GIF" wi="60" he="75" />重构,即:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mover><mi>Y</mi><mo>^</mo></mover><mi>k</mi></msup><mo>=</mo><msubsup><mi>D</mi><mn>0</mn><mi>k</mi></msubsup><msup><mover><mi>A</mi><mo>^</mo></mover><mi>k</mi></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000652076240000024.GIF" wi="1115" he="89" /></maths>21f)重复21d)到21e)步骤,直到所有K类图像完成重构,得到重构图像块集合<img file="FDA0000652076240000025.GIF" wi="72" he="78" />21g)对重构图像块集合<img file="FDA0000652076240000026.GIF" wi="48" he="71" />中的相同位置图像块取均值,并按顺序组合,得到N幅图像的公共模板M:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>M</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>B</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>n</mi></mrow></msub><mo>)</mo></mrow><mo>/</mo><mi>N</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000652076240000027.GIF" wi="1168" he="157" /></maths>其中,M<sub>i,j</sub>代表模板中第i行第j列图像块,N代表图像总数,B<sub>i,j,n</sub>代表第n幅图像中第i行第j列个图像块;22)字典训练:22a)第一幅图像I<sub>1</sub>数据减去公共模板M得到当前图像的残差图像R<sub>1</sub>,即:R<sub>1</sub>=I<sub>1</sub>‑M   (5)22b)将残差R<sub>1</sub>划分成8×8不重叠的图像块,对边缘不足8×8的块用0补充,共S块,S=ceil(L/8)×ceil(H/8),ceil代表向上取整,L为残差图像R<sub>1</sub>的行数,H为残差图像R<sub>1</sub>的列数,并按顺序列向量化组成尺寸为64×S的矩阵X<sub>1</sub>;22c)对矩阵X<sub>1</sub>采用K‑SVD算法进行训练得到公共字典D及首幅图像测量值系数Φ<sub>1</sub>,满足公式:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><mi>min</mi><msubsup><mrow><mo>|</mo><mo>|</mo><msub><mi>X</mi><mn>1</mn></msub><mo>-</mo><mi>D</mi><mo>&CenterDot;</mo><msub><mi>&Phi;</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn><mn>2</mn></msubsup></mtd><mtd><mi>s</mi><mo>.</mo><mi>t</mi><mo>.</mo></mtd><mtd><msub><mrow><mo>|</mo><mo>|</mo><msub><mi>&Phi;</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo></mrow><mn>0</mn></msub><mo>&le;</mo><mi>T</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000652076240000028.GIF" wi="1316" he="93" /></maths>其中,公共字典D尺寸为64×64,测量值Φ<sub>1</sub>的尺寸为64×S,T为测量值Φ<sub>1</sub>的l<sub>0</sub>范数的阈值;23)生成残差测量值:23a)计算当前待压缩图像I<sub>i</sub>(i=2~N)与公共模板M的残差R<sub>i</sub>(i=2~N):R<sub>i</sub>=I<sub>i</sub>‑M(i=2~N)   (7)其中,i为当前图像序号,以8×8为单位划分R<sub>i</sub>(i=2~N)为若干图像块,对边缘不足8的采用0作为补充;将划分好的图像块按顺序列向量化得到新的矩阵X<sub>i</sub>(i=2~N);23b)采用正交匹配追踪OMP算法,结合公共字典D计算当前X<sub>i</sub>(i=2~N)的测量值Φ<sub>i</sub>(i=2~N);23c)对于其余待压缩图像I<sub>i</sub>(i=2~N),重复以上两个步骤,直到计算出所有图像测量值Φ,并保存;24)测量值压缩编码:24a)选取当前测量值Φ<sub>i</sub>中不为零的W<sub>i</sub>个系数按列顺序保存到8×ceil(W<sub>i</sub>/8)的矩阵Q<sub>i</sub>中,将不为零系数位置信息按顺序保存到矩阵Coord<sub>i</sub>中作为头信息;24b)对矩阵Q<sub>i</sub>采用量化矩阵进行量化得到矩阵Q′<sub>i</sub>;24c)对量化后矩阵进行熵编码得到压缩码流;24d)将头信息及压缩码流封装并保存;24e)重复24a)~24d)过程,直到所有测量值数据均被压缩编码;(3)解码:31)残差测量值解码:31a)读取本地存储的当前待解码图像残差测量压缩码流值进行熵解码;31b)对熵解码数据进行反量化得到反量化矩阵<img file="FDA0000652076240000041.GIF" wi="91" he="86" />31c)通过头信息矩阵Coord<sub>i</sub>中测量值位置信息对反量化矩阵<img file="FDA0000652076240000042.GIF" wi="62" he="84" />重组到残差测量值<img file="FDA0000652076240000043.GIF" wi="96" he="83" />31d)重复31a)~31c)步骤直至得到当前待解码图像的全部残差测量值数据<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mover><mi>&Phi;</mi><mo>^</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>~</mo><mi>N</mi><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000652076240000044.GIF" wi="304" he="90" /></maths>32)残差图像压缩感知重构:32a)将缓存中的公共字典D读出,根据公共字典D及解码的残差测量值数据<img file="FDA0000652076240000045.GIF" wi="64" he="85" />相乘得到重构的残差图像矩阵<img file="FDA0000652076240000046.GIF" wi="85" he="84" /><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><mi>D</mi><mo>&CenterDot;</mo><msub><mover><mi>&Phi;</mi><mo>^</mo></mover><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000652076240000047.GIF" wi="1223" he="94" /></maths>32b)将得到的残差图像矩阵<img file="FDA0000652076240000048.GIF" wi="56" he="87" />按顺序重组得到最终残差图像<img file="FDA0000652076240000049.GIF" wi="79" he="87" />33)相似图像重构:33a)将步骤32)得到的残差重构图像<img file="FDA00006520762400000410.GIF" wi="44" he="84" />与公共模板M相加得到最终的重构图像数据<img file="FDA00006520762400000411.GIF" wi="78" he="88" /><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mover><mi>I</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><msub><mover><mi>R</mi><mo>^</mo></mover><mi>i</mi></msub><mo>+</mo><mi>M</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>15</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00006520762400000412.GIF" wi="1160" he="90" /></maths>33b)重复以上解码过程,直到得到所有待解码图像;(4)重构图像输出:将步骤33)得到的重构图像数据按照图像格式输出,得到解压缩后图像。
地址 213022 江苏省常州市晋陵北路200号