一种基于图像源特性的jpeg-ls图像压缩控制方法

文档序号:7858712阅读:266来源:国知局
专利名称:一种基于图像源特性的jpeg-ls图像压缩控制方法
技术领域
本发明涉及一种图像压缩方法。
背景技术
JPEG-LS (Joint Photographic Expert Group-Lossless and near lossless)是联合图像专家组(Joint Photographic Experts Group)制定的一种图像无损、近无损压缩的国际标准,是当今无损、近无损压缩领域性能最优的算法。将其运用到遥感卫星图像的无损、近无损压缩取得了良好的效果,无损压缩比高于一般性能较强的自适应算术编码算法。JPEG-LS核心算法是采纳自HP实验室提供的L0C0-I压缩方案,主要使用了预测、游程长度编码和预测误差Golomb熵编码等技术。由于其结构简单,复杂性低,易于硬件实现,低倍率压缩性能优良等特点而十分适合于星载遥感图像压缩。
在卫星遥感应用中,JPEG-LS算法虽然能够实现在同等复杂度下几乎最优的压缩性能,但是由于其输出的码流具有比较大的波动性,所以输出的码率不可预测。在编码图像的传输中,由于信道带宽的限制,编码器输出的码率必须能够与信道码率相匹配,才能实现图像数据的可靠传输。否则过高的输出码率会造成数据溢出,影响解压缩恢复图像的质量。而过低的码率将造成信道浪费。图像的动态范围(Dynamic Range)是指图像的最明亮区域与最暗区域的光亮度对比度。高动态范围(High Dynamic Range)图像是指图像中像素样点值的动态范围遍历最亮区域与最暗区域。当高动态图像中存在低灰度平坦区域,且该区域使用游长模式进行处理时,解压缩图像将出现不规则条纹现象,从而影响解压缩图像的主观质量。JPEG-LS算法中误差控制参数NEAR值的大小影响着图像压缩中图像的信息丢失程度,控制着图像压缩比和图像压缩质量。结合待压缩图像源特性(图像相关信息),调整误差控制参数NEAR值的大小实现图像压缩过程中码率与图像质量的控制具有重要的现实意义。国内外关于控制JPEG-LS压缩码率的文献很多,但是都没有涉及使用图像源特性实现码率控制与图像质量控制的方法。例如,国防科技大学杜奇才硕士学位论文《带码率控制的近无损图像压缩及其FPGA实现》一文提出了一种使用三种误差控制值对图像中的三种特殊区域进行编码从而实现图像质量控制的方法,该文在论文正文的26页分析了上述算法性能,该方法较复杂。其他的文献主要关注JPEG-LS压缩码率的控制,并没有解决低灰度区域解压缩恢复图像中存在不规则条纹的问题。专利申请号为CN201010617932. 2,名称为《一种JPEG-LS图像压缩的码率控制方法》的中国专利公开了一种通过实际码率和目标码率的累计偏差量,动态调整参数NEAR值的大小,从而使不同的图像内容经过JPEG-LS压缩后以接近要求的码率进行输出的方法,但该方法并没有使用图像源特性解决低灰度区域解压缩恢复图像中存在不规则条纹的问题。

发明内容
本发明的技术解决问题是克服现有技术的不足,提供了一种利用源图像特性,在待压缩图像缓存操作过程中对图像进行预处理,分析图像是否具有低灰度平坦区域,并限制具有该区域的图像压缩使用的误差控制参数NEAR的范围,从而有效控制解压缩图像中出现不规则条纹的概率,实现对压缩图像质量控制的方法。本发明的技术解决方案是一种基于图像源特性的JPEG-LS图像压缩控制方法,步骤如下(I)设定当前待处理图像的JPEG-LS压缩误差控制参数为NEAR并初始化为0,前一幅图像的JPEG-LS压缩误差控制参数为PNEAR并初始化为O ;(2)设定当前待处理图像的当前图像行中的低灰度平坦区域的起始像素点位置为Start、结束位置为End并分别初始化为0,设定当前待处理图像上一图像行中的低灰度平 坦区域的起始像素点位置为PStart、结束位置为PEnd并分别初始化为O ;设定当前待处理图像的低灰度平坦区域的高度为Heigh并初始化为O ;设定上一幅图像经JPEG-LS压缩后的码流量为A并初始化为0,设定压缩比确定后当前待处理图像的期望压缩码流量为B ;设定像素点的上下文模型值为Ra、Rb、Re、Rd并分别初始化为O ;游长长度Runcnt初始化为
O;(3)当前待处理图像的当前图像行中的当前像素样点值Ix,按照JPEG-LS标准更新该像素样点的上下文模型值Ra、Rb、Re、Rd,并计算Dl = | Rd-Rb |、D2 = | Rb-Rc |、D3 =
Rc-Ra I ;(4)判定Dl ( PNEAR、D2 ( PNEAR、D3 ( PNEAR是否同时成立,如果不同时成立则直接进入步骤(5);如果同时成立则设置Start为当前像素样点在其所在图像行中的位置,然后进入步骤(6);(5)设定当前像素样点的重建值Rx并使得Rx = Ix,并判段当前图像行的所有像素是否输入完成,如果当前图像行没有输入完成则返回步骤(3),如果当前图像行已经输入完成则进入步骤(12);(6)如果I Ix-Ra | ( PNEAR成立则进入步骤(7),否则进入步骤(9);(7)判断当前像素样点的值Ix和像素点值阈值IL的大小,如果Ix > IL则判定该像素点未处于低灰度平坦区域,游长长度Runcnt保持为0,否则游长长度Runcnt =Runcnt+Ι ;(8)设定当前像素样点的重建值Rx = Ra,并判段当前图像行的所有像素是否输入完成,如果当前图像行没有输入完成则读取下一个像素样点值,返回步骤(6),如果当前图像行已经输入完成则进入步骤(12);(9)如果 Runcnt 不小于长度阈值 R,则令 End = Start+Runcnt,否则 End = Start,然后将Runcnt初始化O ;(10)获取End与PEnd的最小值min (End, PEnd),获取Start与PStart的最大值max (Start, PStart),计算 Len = min (End, PEnd) -max (Start, PStart),然后更新 PStart =Start, Pend = End ;(11)判定Len是否大于低灰度平坦区域行的判别阈值,如果Len大于低灰度平坦区域行的判别阈值,则令Heigh = Heigh+1后返回步骤(5);否则Heigh不变,返回步骤(5);(12)判定当前待处理图像是否输入完成,如果当前待处理图像已经输入完成则进入步骤(13),如果当前待处理图像尚未输入完成则返回步骤(3);(13)判断Heigh是否大于图像低灰度平坦区域判别阈值,如果Heigh大于图像低灰度平坦区域判别阈值,则进入步骤(15),否则进入步骤(14);(14)令 Bias = A-B,同时设定 Bias 的两个判定阈值 BiasOne > BiasTwo >0,设定NEAR的两个调整参数Λ NI > ΔΝ2 > O,并对NEAR的值进行更新如果Bias > BiasOne则 NEAR = PNEAR+ Δ NI ;否则如果 Bias > BiasTwo 则 NEAR = PNEAR+ Δ N2 ;否则如果 Bias
<-BiasOne 则 NEAR = PNEAR- Δ NI ;否则如果 Bias < - BiasTwo 则 NEAR = PNEAR- Δ N2 ;其它情况下NEAR = PNEAR+0 ;然后更新PNEAR为更新后的NEAR值,进入步骤(16);(15)设定NEAR的三个调整参数Λ PNl > ΔΡΝ2 > ΔΡΝ3 > O,并使用PNEAR对NEAR的值进行更新如果PNEAR <= ΔΡΝ3则NEAR = O ;否则如果PNEAR <= ΔΡΝ2贝IjNEAR = PNEAR- Δ PN3 ;否则如果 PNEAR <= Λ PNl 则 NEAR = PNEAR- Λ PN2,同时更新 PNEAR为更新后的NEAR值,进入步骤(16)(16)使用更新后的NEAR值,按照JPEG-LS压缩标准对当前待处理图像进行压缩,并利用压缩完成后的压缩码流量更新A。本发明与现有技术相比的优点在于(I)本发明方法在图像预处理过程中,像素样点的重建值Rx没有使用量化误差和预测值的标准JPEG-LS算法计算,而是直接使用像素样点值代替;在游长扫描过程中重建值Rx = Ra,采用标准JPEG-LS算法实现。该方法简化了低灰度平坦区域中的游长模式的检测,方法简单,硬件实现占用资源少,易于采用FPGA或ASIC实现;(2)本发明方法通过在正常模式和游长终止采样模式时使用像素样点值Ix作为图像像素点Ix的重建值Rx,构建一种简单的上下文模式实现游长模式检测,有效的提高了图像预处理的速度;(3)本发明方法将具有低灰度平坦区域图像与其他图像的误差更新操作分离开,利用待压缩图像统计信息进行误差控制参数的更新,既能完成图像的码流控制又能实现特殊图像的质量控制。


图I为本发明方法的原理图;图2为本发明方法的操作顺序图;图3为本发明低灰度平坦区域示意图;图4为本发明方法中低灰度平坦区域检测流程图;图5为本发明方法中误差值NEAR更新流程图。
具体实施例方式如图I所示,为本发明方法的原理图。本方法通过对待压缩图像进行遍历,按照准上下文模型,判定满足一定阈值的低灰度平坦区域。该方法由三部分组成建立准上下文模型、低灰度平坦区域判定和误差控制。
准上下文模型修改了 JPEG-LS标准的上下文模型。虽然与JPEG-LS标准一样,像素样点上下文模型由Ra、Rb、Re和Rd组成,且上下文模型的更新按照JPEG-LS标准进行。但是当前像素样点的重建值更新根据不同的处理模式修改为如下更新方式当前像素样点Ix处理为正常模式时,其重建值Rx = Ix,即重建值为像素样点本身;当为游长模式时,重建值的更新分为以下两种1.满足游长扫描条件时,Rx = Ra ;2.否则Rx = Ix。上述上下文模式称为准上下文模型。低灰度平坦区域判定是在遍历一幅图像后判定该图像中是否存在低灰度平坦区域。如果满足低灰度游长条件,即像素样点值小于阈值,且游长长度足够长(一般大于16),则为低灰度平坦区域中的一行。如果存在相邻两行低灰度平坦行,则该图像中存在一块最小的低灰度平坦区域,并记录出现该区域的次数。根据图像主观观测的要求,判定是否存在影响主观观测质量的低灰度平坦区域的数量,如果存在生成相应的标识。误差控制是采用低灰度平坦区域评定产生的标识,根据图5所示的处理流程更新误差控制参数NEAR。
采用本发明方法的图像压缩控制单元与基于JPEG-LS算法的压缩单元相结合的工作顺序如图2所示。初始时刻,图像压缩控制单元遍历输入图像,并给出低灰度平坦区域的判定结果,同时更新初始化NEAR值,并将该图像发送给后续的压缩单元。初始化完成后,图像压缩控制单元与压缩单元同时工作,但是压缩单元处理的图像是经过图像压缩控制单元的低灰度平坦区域检测后的上一幅图像,而图像压缩控制单元处理的当前图像为压缩单元待处理的下一幅图像。在压缩单元处理完成后,图像压缩控制单元根据其输出的压缩码流A和当前图像检测结果更新误差控制值NEAR,并启动压缩单元工作,同时遍历下一幅图像。如图3所示,为需要检测的低灰度平坦区域相邻行,即最小的低灰度平坦区域。当两个低灰度平坦行相邻,且上下相邻部分大于一定范围(一般大于16),则表示该图像中有低灰度平坦区域。如图4所示,为建立准上下文模型和低灰度平坦区域检测的流程图。初始化时,设置NEAR和PNEAR初始化O。使用NEAR值进行JPEG-LS压缩,使用PNEAR进行低灰度平坦区检测。初始化时没有进行图像压缩,所以NEAR值初始化为O。开始进行一幅图像遍历检测时,初始化用以判定低灰度平坦区域的标识,PStart、PEnd、Start和End为O。并初始化Heigh = O,表示没有检测到符合要求的低灰度平坦区域。根据JPEG-LS标准,重建值Ra、Rb、Re和Rd初始化为O。随着像素样点的输入,计算当前像素样点的上下文确定的梯度Dl、D2和D3的值。根据JPEG-LS标准,当Dl彡PNEAR, D2 ( PNEAR, D3 ( PNEAR同时满足时,当前像素样点的处理模式为游长模式的开始位置(即平坦区域起始位置),记为Start。如果当前像素样点值Ix < IL则表示检测到低灰度平坦区域的起始位置。IL为低灰度像素样点值的阈值,根据输入图像像素样点的精度Precision,IL = 2Precisi0n-5o否则,虽然该区域是平坦区域,但是并不是低灰度平坦区,设置End = Start,即低灰度平坦区域的行长为O。如果检测到低灰度平坦区域的起始位置,继续输入像素样点值,直到Ilx-Ral
>PNEAR,或者一行图像结束。统计满足Ilx-Ral彡PNEAR条件的像素样点的个数,记为Runcnt。如果Runcnt大于阈值R( —般选取不小于16),即表不游长长度足够长,贝U在设置End = Start+Runcnt后,Runcnt初始化为0。否则End = Start,即游长长度不够长,不是期望的平坦区。当检测到像素样点为游长模式,且像素样点满足|lx-Ra|< PNEAR,当前像素样点的重建值Rx = Ra。否则像素样点的重建值Rx = Ix。PSart和PEnd分别表示上一行图像中低灰度平坦区域的起始位置和结束位置。当一行图像检测完毕后计算PEnd与End的最小值min (PEnd, End),和Start与PStart的最大值 max (PStart, Start)。如图 3 所不,Len = min (PEnd, End) -max (PStart, Start)表不虚线框内表示,低灰度平坦行对齐的区域的长度。如果对齐的相邻区域长度Len大于低灰度平坦区域的判断阈值(一般不大于16),则表示在图像中检测到低灰度平坦区域,计数器Heigh 加 I。当一幅图像输入完成后,判断当前图像中检测到的低灰度平坦区域计数值Heigh是否大于阈值。该阈值越大表示低灰度平坦区域的判别条件越苛刻,一般选取不小于8的 值。如图5所示,根据Heigh与阈值的判定结果采用更改后动态偏差法更新当前待压缩图像使用的误差控制参数NEAR。如果计数值Heigh大于阈值,则表示该图像中存在低灰度平坦区域,误差控制参数NEAR根据上一幅图像的误差参数PNEAR更新如下如果PNEAR
<=ΔΡΝ3 则 NEAR = O ;否则如果 PNEAR < = ΔΡΝ2 则 NEAR = PNEAR- Λ PN3 ;否则如果PNEAR < = Λ PNl 则 NEAR = PNEAR-Λ PN2。NEAR 的三个调整参数 ΔΡΝ1 > ΔΡΝ2 > ΔΡΝ3
>0,且均为整数。Λ PNl —般选取为NEAR最大值减去3,即Λ PNl = max (NEAR)-3。否则,则表示该图像中不存在低灰度平坦区域,误差控制参数根据上一幅图像的压缩码流量A与设定压缩比后的期望压缩码流量B。令Bias = A-B,同时设定Bias的两个判定阈值 BiasOne > BiasTwo > O ( 一般 BiasOne = B/26,BiasOne = B/28)。设 NEAR 的两个调整参数ΛΝ1 > ΔΝ2 > 0(—般选Λ NI不大于3,且Λ NI与ΛΝ2均为整数)。NEAR值的更新如下如果Bias > BiasOne则NEAR = PNEAR+ Δ NI ;否则如果Bias > BiasTwo则NEAR = PNEAR+ ΔN2 ;否则如果 Bias < -BiasOne 则 NEAR = PNEAR-ΔNI ;否则如果 Bias
<-BiasTwo 则 NEAR = PNEAR- Δ N2 ;其它情况下 NEAR = PNEAR+0 ;然后更新 PN EAR 为更新后的NEAR值。本发明方法中其余未作特别说明的部分可参见JPEG-LS算法(《静止图像编码的基本方法与国际标准》,北京邮电大学出版社,第一版,胡栋著,page88_137)中的相关内容。本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
权利要求
1.一种基于图像源特性的JPEG-LS图像压缩控制方法,其特征在于步骤如下 (1)设定当前待处理图像的JPEG-LS压缩误差控制参数为NEAR并初始化为O,前一幅图像的JPEG-LS压缩误差控制参数为PNEAR并初始化为O ; (2)设定当前待处理图像的当前图像行中的低灰度平坦区域的起始像素点位置为Start、结束位置为End并分别初始化为O,设定当前待处理图像上一图像行中的低灰度平坦区域的起始像素点位置为PStart、结束位置为PEnd并分别初始化为O ;设定当前待处理图像的低灰度平坦区域的高度为Heigh并初始化为O ;设定上一幅图像经JPEG-LS压缩后的码流量为A并初始化为O,设定压缩比确定后当前待处理图像的期望压缩码流量为B ;设定像素点的上下文模型值为Ra、Rb、Re、Rd并分别初始化为O ;游长长度Runcnt初始化为O ; (3)当前待处理图像的当前图像行中的当前像素样点值Ix,按照JPEG-LS标准更新该像素样点的上下文模型值Ra、Rb、Re、Rd,并计算Dl = | Rd-Rb |、D2 = | Rb-Rc |、D3 =Rc-Ra I ; (4)判定Dl( PNEAR、D2 ( PNEAR、D3 ( PNEAR是否同时成立,如果不同时成立则直接进入步骤(5);如果同时成立则设置Start为当前像素样点在其所在图像行中的位置,然后进入步骤(6); (5)设定当前像素样点的重建值Rx并使得Rx= Ix,并判段当前图像行的所有像素是否输入完成,如果当前图像行没有输入完成则返回步骤(3),如果当前图像行已经输入完成则进入步骤(12); (6)如果Ix-Ra彡PNEAR成立则进入步骤(7),否则进入步骤(9); (7)判断当前像素样点的值Ix和像素点值阈值IL的大小,如果Ix> IL则判定该像素点未处于低灰度平坦区域,游长长度Runcnt保持为O,否则游长长度Runcnt = Runcnt+Ι ; (8)设定当前像素样点的重建值Rx= Ra,并判段当前图像行的所有像素是否输入完成,如果当前图像行没有输入完成则读取下一个像素样点值,返回步骤(6),如果当前图像行已经输入完成则进入步骤(12); (9)如果Runcnt不小于长度阈值R,则令End= Start+Runcnt,否则End = Start,然后将Runcnt初始化O ; (10)获取End与PEnd的最小值min(End, PEnd),获取Start与PStart的最大值max (Start, PStart),计算 Len = min (End, PEnd) -max (Start, PStart),然后更新 PStart =Start,Pend = End ; (11)判定Len是否大于低灰度平坦区域行的判别阈值,如果Len大于低灰度平坦区域行的判别阈值,则令Heigh = Heigh+1后返回步骤(5);否则Heigh不变,返回步骤(5); (12)判定当前待处理图像是否输入完成,如果当前待处理图像已经输入完成则进入步骤(13),如果当前待处理图像尚未输入完成则返回步骤(3); (13)判断Heigh是否大于图像低灰度平坦区域判别阈值,如果Heigh大于图像低灰度平坦区域判别阈值,则进入步骤(15),否则进入步骤(14); (14)令Bias= A-B,同时设定Bias的两个判定阈值BiasOne > BiasTwo > O,设定NEAR的两个调整参数ΛΝ1> Λ Ν2 > 0,并对NEAR的值进行更新如果Bias > BiasOne则 NEAR = PNEAR+ Δ NI ;否则如果 Bias > BiasTwo 则 NEAR = PNEAR+ Δ N2 ;否则如果 Bias<-BiasOne 则 NEAR = PNEAR- Δ NI ;否则如果 Bias < - BiasTwo 则 NEAR = PNEAR- Δ Ν2 ;其它情况下NEAR = PNEAR+0 ;然后更新PNEAR为更新后的NEAR值,进入步骤(16); (15)设定NEAR的三个调整参数ΔΡΝ1> ΔΡΝ2 > ΔΡΝ3 > O,并使用PNEAR对NEAR的值进行更新如果PNEAR <= ΔΡΝ3则NEAR = O ;否则如果PNEAR <= ΔΡΝ2则NEAR =PNEAR- Δ PN3 ;否则如果 PNEAR <= Λ PNl 则 NEAR = PNEAR- Λ PN2,同时更新 PNEAR 为更新后的NEAR值,进入步骤(16) (16)使用更新后的NEAR值,按照JPEG-LS压缩标准对当前待处理图像进行压缩,并利用压缩完成后的压缩码流量更新A。
全文摘要
一种基于图像源特性的JPEG-LS图像压缩控制方法,通过统计分析待压缩图像的游程特性,并将该特性结果作为修改的动态偏差法的输入参数,实现对图像JPEG-LS压缩算法中误差参数NEAR的控制,从而有效控制解压缩图像中出现不规则条纹的概率,实现图像压缩质量的控制。本发明方法操作简便,硬件实现占用资源少,易于采用FPGA或者ASIC实现,可以有效提高图像预处理的速度。
文档编号H04N7/26GK102833549SQ20121030391
公开日2012年12月19日 申请日期2012年8月24日 优先权日2012年8月24日
发明者张海涛, 孙文方, 王元乐 申请人:西安空间无线电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1