CN102724506B - Jpeg_ls常规编码硬件实现方法 - Google Patents
Jpeg_ls常规编码硬件实现方法 Download PDFInfo
- Publication number
- CN102724506B CN102724506B CN201210198818.XA CN201210198818A CN102724506B CN 102724506 B CN102724506 B CN 102724506B CN 201210198818 A CN201210198818 A CN 201210198818A CN 102724506 B CN102724506 B CN 102724506B
- Authority
- CN
- China
- Prior art keywords
- value
- parameter
- index value
- error
- shift register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种JPEG_LS常规编码硬件实现方法,主要解决目前JPEG_LS编码时参数更新与误差值计算结构复杂、处理速率缓慢的问题。本发明采用四级反馈回路,实时更新并反馈参数更新值,用当前像素点的前两个点误差修正参数值预测误差值,利用两步预测,简化了误差值计算过程,得到第一步预测结果后,对预测结果进行后续运算,合理地安排了每一级的数据处理量,能够在更新的同时进行误差预测,最终获得哥伦布参数进行哥伦布编码,输出压缩码流。本发明具有处理速度快,占用资源少,简单易行的优点,易于FPGA实现。
Description
技术领域
本发明涉及图像处理技术领域,更进一步涉及JPEG_LS(Joint PhotographicExperts Group-loSSleSS)图像压缩系统中一种高效低资源的常规编码硬件实现方法。本发明以全流水结构完成图像压缩处理,可以优化JPEG_LS常规编码硬件实现结构,提高图像处理速率,节省现场可编程门阵列的硬件资源,尤其适用于遥感图像压缩处理。
背景技术
JPEG_LS图像压缩方法广泛应用于图像压缩领域,由于其常规编码中的参数需要实时更新,更新时需要使用当前像素点计算出的误差值,而计算误差值时又要利用更新出的预测误差修正参数,这种循环结构的出现,导致JPEG_LS常规编码不易按流水结构实现。若在更新参数后再进行误差运算,在计算误差后会堆积大量的运算量,导致处理速度缓慢。
美国西门子医疗解决公司在其申请的专利“用于医学图像的基于快速JPEG_LS的压缩方法”(专利申请号:200710141738,公开号:CN101132531A)中公开了一种基于医学图像的JPEG_LS快速压缩方法。该方法提供图像数据压缩和重建技术优化,通过在图像数据压缩之前创建数据结构,实现了在图像数据压缩期间对预计算的量化值存取。同时,通过执行量化矢量到相应量化值的一对一映射,完成量化合并操作,其预测技术可以减轻相邻像素点的噪声对当前像素的影响。该专利申请存在的不足之处是:仅仅在量化和合并部分进行了优化,计算误差与更新参数部分的处理结构复杂,在更新参数后堆积大量需要处理的数据,致使处理速率缓慢,而且该方法专门应用于医学图像压缩,没有涉及到遥感图像等的压缩处理方法。
西安空间无线电技术研究所申请的专利“一种JPEG_LS图像压缩的码率控制方法”(专利申请号:201010617932.2,公开号:CN102088602A)中公开了一种JPEG_LS的码率控制方法。该专利申请通过实际码率和目标码率的累积偏差量,动态调整参数值的大小,从而使不同的图像内容经过JPEG_LS压缩后,都能以接近要求的码率进行输出。该方法将压缩编码模块与码率控制模块组成反馈环路,对分割后的子图自适应的调节参数值大小,其输出码流经过缓存控制模块后以恒定码率输出。该专利申请存在的不足之处是:仅仅涉及JPEG_LS的压缩码率控制优化实现,采用顺序执行方式,在获得更新参数后进行误差值计算,处理过程耗费大量的时钟周期,没有合理地安排每个时钟周期处理的数据量,致使个别时钟周期数据量过多,产生最差路径,导致处理速率缓慢。
发明内容
本发明的目的在于针对上述已有技术的不足,提出一种基于JPEG_LS常规编码的硬件实现方法。该方法通过引用反馈回路,将更新的参数实时反馈,根据每次反馈的预测误差修正参数对预测中值进行预测与修正,对每个时钟周期合理安排处理数据量,优化最差路径,提高处理速度。
为了实现上述目的,本发明的技术方案是将更新的参数作为反馈数据,向更新操作以前的处理级反馈更新的参数。在更新操作前,分三步实现误差的预测,第一步,获得两个像素点前的预测误差参数,通过此参数,按照预测误差参数的取值规律性,衍生出九种预测中值修正结果;第二步,获得一个像素点前的预测误差参数,按照预测误差参数的取值规律性,选取三种预测中值修正结果,分别对预测中值修正结果进行误差值运算;第三步,获得上一个像素点的预测误差参数,按照预测误差参数的取值规律性,从三个预测中值修正结果中选取一个作为误差值,实现预测过程。上述预测技术方案简化了更新参数与计算误差值之间的复杂结构,在预测误差值的第二步进行了误差值计算,合理地安排了每一个处理级的运算量,加快了处理速度。
本发明包括以下步骤:
(1)输入像素点
1a)将需要压缩的图像像素点输入到JPEG_LS编码器中;
1b)按照当前像素点与其邻近点的相应位置关系a、b、c、d,依次从随机存储器中读出当前像素点的邻近点及其对应位置关系的信息;
1c)将当前像素点的符号位信号输入到JPEG_LS编码器中;
1d)将需要压缩的图像参数更新使能信号输入JPEG_LS编码器中;
1e)将需要压缩图像的最大值信号输入到JPEG_LS编码器中;
1f)将需要压缩图像的误差范围修正值、误差范围上限值及下限值输入到JPEG_LS编码器中。
(2)获取梯度值
2a)计算梯度:将邻近点中的d值与b值相减,得到的结果记为梯度一,将b值与c值相减,得到的结果记为梯度二,将c值与a值相减,得到的结果记为梯度三;
2b)量化梯度:将JPEG_LS常规编码标准方法的八个固定数值作为门限值,利用八个门限值将整体数字空间划分为九个区域,每个区域对应一个量化值,将步骤2a)获得的三个梯度值与八个门限值分别作比较,选择仅小于梯度值的门限值作为区域下限值,选择仅大于梯度值的门限值作为区域上限值,将下限值与上限值对应区域的量化值作为其梯度量化值;
2c)修正梯度值:分别判断三个梯度量化值是否为负数,若是负数,取其绝对值作为梯度量化值,将符号位信号修正为“-1”,如果是正数,三个梯度量化值与符号位信号取值不变,将符号位信号值及梯度量化值存入移位寄存器中。
(3)获取预测中值
比较步骤1b)中a值与b值的大小,若a大于b,则将a作为较大值,将b作为较小值,否则将b作为较大值,将a作为较小值;比较c值与较大值的大小,若c值大于较大值,则预测中值等于较小值,否则,比较c值与较小值的大小,若c值小于较小值,则预测中值取较大值,否则,预测中值取a值加上b值再减去c值的结果,将预测中值存入移位寄存器中。
(4)获取索引值信息第一步
4a)将JPEG_LS常规编码标准方法的索引值参数作为梯度量化值的加和系数,对三个梯度量化值进行加和运算,得到第一步索引值,将第一步索引值存入移位寄存器中;
4b)提取编码器中的参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第一步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值,判断第一步索引值与更新索引值是否相等,若相等,将第一步索引值比较信号设置为“1”,若不相等,将第一步索引值比较信号设置为“0”,将第一步索引值比较信号存入移位寄存器中。
(5)获取索引值信息第二步
5a)设置初始参数值:提取移位寄存器中的第一步索引值,查找随机存储器中索引值的存储记录,判断第一步索引值是否为第一次使用:若是,将初始参数值设置为JPEG_LS常规编码标准方法的初始值,将移位寄存器中的第一步索引值比较信号修正为“1”,否则,提取步骤8b)中的更新参数值,将初始参数值设置为更新参数值,将初始参数值存入移位寄存器中;
5b)提取编码器中参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第二步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值,判断更新索引值与第一步索引值是否相等,若相等,将第二步索引值比较信号设置为“1”,否则,将第二步索引值比较信号设置为“0”,将第二步索引值比较信号存入移位寄存器中;
5c)令第二步索引值等于第一步索引值,将第二步索引值存入移位寄存器中。
(6)第一次预测误差修正参数
6a)提取移位寄存器中参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第三步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值与移位寄存器中的第二步索引值,判断更新索引值与第二步索引值是否相等,若相等,将第三步索引值比较信号设置为“1”,否则,将第三步索引值比较信号设置为“0”,将第三步索引值比较信号存入移位寄存器中;
6b)设置中间参数值:提取移位寄存器中的第二步索引值比较信号,判断第二步索引值比较信号是否等于“1”,若是,提取步骤8b)中的更新参数值,将中间参数值设置为更新参数值,否则,提取移位寄存器中的第一步索引值比较信号,判断第一步索引值比较信号是否等于“1”,若等于,提取移位寄存器中的初始参数值,令中间参数值等于初始参数值,若不相等,提取随机存储器中第二步索引值对应的参数值,将此参数值作为中间参数值,将中间参数值存入移位寄存器中;
6c)令第三步索引值等于第二步索引值,将第三步索引值存入移位寄存器中;
6d)对参数值中的误差修正参数进行预测,得到九种预测结果,读取步骤(3)中存入移位寄存器的预测中值,对预测中值取绝对值,将预测中值的绝对值分别与九种预测结果相加,得到的九个值构成第一步预测修正中值。
(7)第二次预测误差修正参数
7a)提取编码器中的参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第四步索引值比较信号设置为“0”,若不等于,提取步骤8b)中的更新索引值与步骤6c)存入移位寄存器的第三步索引值,判断更新索引值与第三步索引值是否相等;若相等,将第四步索引值比较信号设置为“1”,否则,将第四步索引值比较信号设置为“0”;
7b)提取步骤6a)存入移位寄存器的第三步索引值比较信号,判断第三步索引值比较信号是否等于“1”,若等于,提取步骤6b)存入移位寄存器的中间参数值,将当前参数值设置为中间参数值,否则,提取随机存储器中第三步索引值对应的参数值作为当前参数值,将当前参数值存入移位寄存器中;
7c)令第四步索引值等于第三步索引值,将第四步索引值存入移位寄存器中;
7d)提取移位寄存器中的九种第一步预测修正中值,对第一步预测修正中值进行第二次预测,从九种预测修正中值中预测出三个第二步预测修正中值;
7e)提取编码器中的当前像素点值,分别将三个第二步预测修正中值与当前像素点值做减法运算,将得到的三个结果作为误差值中间结果;
7f)提取编码器中的误差范围修正值,分别将三个误差值中间结果与误差范围修正值进行运算,将误差值限制在误差范围的下限值与上限值范围内,修正后得到三个误差值,将误差值存入移位寄存器中。
(8)更新参数值
8a)将参数更新使能信号设置为“1”;
8b)提取步骤7b)存入移位寄存器的当前参数值与步骤7c)存入移位寄存器的第四步索引值,对当前参数值进行更新操作,得到参数的更新值,将随机存储器中第四步索引值对应的参数值设置为参数的更新值,令更新索引值等于第四步索引值,将参数的更新值和更新索引值存入移位寄存器中;
8c)提取步骤7f)存入移位寄存器中的三个误差值,利用更新的参数在三个误差值中选择一个作为最终误差值,将最终误差值存入移位寄存器中。
(9)获得哥伦布编码参数
9a)提取出步骤8b)存入移位寄存器的更新参数中的发生次数计量参数与前项预测误差参数,将发生次数计量参数向左移动,每次向左移动一位,一直到移位后的发生次数计量参数大于前项预测误差参数,停止左移操作,将移动位数作为哥伦布编码参数;
9b)提取步骤8c)存入移位寄存器中的最终误差值,提取随机存储器中更新索引值对应的偏差参数和发生次数计量参数,比较偏差参数与发生次数计量参数的大小,由其比较结果及最终误差值选择误差映射值。
(10)哥伦布编码及码字合成
10a)将哥伦布编码参数值以及误差映射值送入哥伦布编码器进行哥伦布编码,获得不定长码流,将码流存入缓存器中;
10b)提取缓存器中的码流信息,按顺序拼接码流,每当码流拼接满“64”位时,合成为一个码字,将码字输出到JPEG_LS编码器外。
本发明与现有技术相比具有如下优点:
第一,本发明采用预测误差的方法,根据误差修正参数的取值规律,由前两个像素点的误差修正参数,分两步预测当前像素点的误差值,克服了现有技术中误差值计算结构复杂的问题,使得本发明优化了最差路径,提高了处理速度。
第二,本发明采用四级反馈回路,将更新的参数值实时反馈,克服了现有技术中顺序执行结构处理数据量分布不均匀的问题,使得本发明合理地安排了每个时钟周期的数据处理量,易于FPGA以流水结构完成压缩编码。
第三,本发明通过判断当前索引值与更新索引值是否相等,得到四个比较信号,将比较信号作为控制信号选择参数值,克服了现有技术中参数更新控制信号复杂的问题,使得本发明简化了控制信号,易于进行压缩编码操作。
第四,本发明在获取哥伦布编码参数时采用二分比较法,对更新的参数进行二分比较,通过五次比较获得哥伦布参数,克服了现有技术中哥伦布参数复杂的循环移位结构,使得本发明简化了移位操作,节省了硬件资源,加快了图像压缩处理速度。
附图说明
图1为本发明的流程图;
图2为本发明当前像素点的邻近点示意图;
图3为本发明预测修正误差参数示意图。
具体实施方式
参照图1,本发明的具体实施步骤如下:
步骤1,输入像素点
将需要压缩的图像像素点输入到JPEG_LS编码器中。
按照当前像素点与其邻近点的相应位置关系a、b、c、d,依次从RAM(随机存储器)中读出当前像素点的邻近点及其对应位置关系的信息。
当前像素点与其邻近点的相应位置关系如图2所示:图中a表示上一个处理的像素点,c表示上一个处理像素点上方的像素点,b表示当前处理像素点上方的像素点,d表示下一个处理像素点上方的像素点,将当前像素点与其邻近点组成上下文模型输入常规编码器中。
将当前像素点的符号位信号输入到JPEG_LS编码器中,符号位信号用以记录输入像素点的正负情况,若为正时,符号位信号为“1”,否则符号位信号为“-1”。
将需要压缩的图像参数更新使能信号输入JPEG_LS编码器中,图像更新使能信号是执行步骤8时产生的使能信号,用以标记步骤8是否运行,图像更新使能信号有效时为“1”,无效时标记为“0”。
将需要压缩图像的最大值信号输入到JPEG_LS编码器中。
将需要压缩图像的误差范围修正值、误差范围上限值及下限值输入到JPEG_LS编码器中。
本发明实施例中,用Verilog语言构建整体流水结构。
步骤2,获取梯度值
计算梯度:将邻近点中的d值与b值相减,得到的结果记为梯度一,将b值与c值相减,得到的结果记为梯度二,将c值与a值相减,得到的结果记为梯度三。
量化梯度:将标准方法中规定的八个固定数值作为门限值,利用八个门限值将整体数字空间划分为九个区域,每个区域对应一个量化值,分别将三个梯度值与门限值作比较,在八个门限值中获取小于梯度值的数值,选择这些门限值内最大的数值作为下限值,获取八个门限值中大于梯度值的数值,选择这些门限值内最小的数值作为上限值,将下限值与上限值对应区域的量化值作为其梯度量化值Q1,Q2,Q3;其中,Q1,Q2,Q3分别表示三个梯度量化值,九个区域对应的量化值分别为-4至4的整数值,量化后梯度范围限制在-4-4。
修正梯度值:分别判断三个梯度量化值是否为负数,若是负数,取其绝对值作为梯度量化值,并记录符号位信号为“-1”,否则,三个梯度量化值与符号位信号取值不变,将符号位信号值及梯度量化值存入移位寄存器中。
步骤3,获取预测中值
比较步骤1中a值与b值的大小,若a大于b,则将a作为较大值,将b作为较小值,否则将b作为较大值,将a作为较小值;比较c值与较大值的大小,若c值大于较大值,则预测中值Px等于较小值,否则,比较c值与较小值的大小,若c值小于较小值,则预测中值Px取较大值,否则,预测中值Px取a值加上b值再减去c值的结果,将预测中值Px存入移位寄存器中;
本发明实施例中,令Px表示预测中值。
步骤4,获取索引值信息第一步
提取移位寄存器中的三个量化梯度值Q1,Q2,Q3,判断Q1是否等于“0”,若Q1等于“0”,判断Q2是否等于“0”,若Q2等于“0”,则第一步索引值Q_index1=360+Q3,若Q2不等于“0”,则第一步索引值Q_index1=324+(Q1-1)×9+(Q3+4),若Q1不等于“0”,则第一步索引值Q_index1=(Q1-1)×81+(Q2+4)×9+(Q3+4);得到第一步索引值Q_index1,将第一步索引值存入移位寄存器中,其中,Q_index1表示第一步索引值。
提取编码器中的参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第一步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值Q_update,判断第一步索引值Q_index1与更新索引值Q_update是否相等,若相等,将第一步索引值比较信号设置为“1”,若不相等,将第一步索引值比较信号设置为“0”,将第一步索引值比较信号存入移位寄存器中;。
本发明实施例中,Q_update表示步骤8b)中更新时所对应的索引值,索引值Q的取值范围为0-364的整数值,共365个数值,每次更新需要计算索引值并且使用此索引值对应的参数值。
步骤5,获取索引值信息第二步
设置初始参数值:提取移位寄存器中的第一步索引值Q_index1,查找随机存储器中索引值的存储记录,判断第一步索引值Q_index1是否为第一次使用:若是,将初始参数值设置为JPEG_S常规编码标准方法的初始值,将移位寄存器中的第一步索引值比较信号修正为“1”,否则,提取步骤8b)中的更新参数值,将初始参数值设置为更新参数值,将初始参数值存入移位寄存器中。
本发明实施例中,每次进行编码使用的参数包括:前项预测误差参数,偏差参数,预测误差修正参数,发生次数计量参数;每个索引值均对应四个参数,每次编码时更新当前索引值对应的参数。全部索引值对应的参数值均存储在随机存储器中,每次更新参数后,将更新的参数值写入随机存储器中索引值对应的参数位置。
提取编码器中参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第二步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值Q_update,判断更新索引值Q_update与第一步索引值Q_index1是否相等,若相等,将第二步索引值比较信号设置为“1”,否则,将第二步索引值比较信号设置为“0”,将第二步索引值比较信号存入移位寄存器中;
令第二步索引值Q_index2等于第一步索引值Q_index1,将第二步索引值Q_index2存入移位寄存器中,其中,Q_index2表示第二步索引值;
步骤6,第一次预测误差修正参数
提取移位寄存器中参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第三步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值Q_update与移位寄存器中的第二步索引值Q_index2,判断更新索引值与第二步索引值是否相等,若相等,将第三步索引值比较信号设置为“1”,否则,将第三步索引值比较信号设置为“0”,将第三步索引值比较信号存入移位寄存器中。
设置中间参数值:提取移位寄存器中的第二步索引值比较信号,判断第二步索引值比较信号是否等于“1”,若是,提取步骤8b)中的更新参数值,将中间参数值设置为更新参数值,否则,提取移位寄存器中的第一步索引值比较信号,判断第一步索引值比较信号是否等于“1”,若等于,提取移位寄存器中的初始参数值,令中间参数值等于初始参数值,若不相等,提取随机存储器中第二步索引值对应的参数值,将此参数值作为中间参数值,将中间参数值存入移位寄存器中。
令第三步索引值Q_index3等于第二步索引值Q_index2,将第三步索引值存入移位寄存器中,其中,Q_index3表示第三步索引值。
对参数值中的误差修正参数进行预测,得到九种预测结果,读取步骤3中存入移位寄存器的预测中值,对预测中值取绝对值,将预测中值的绝对值分别与九种预测结果相加,得到的九个值构成第一步预测修正中值。
由于预测误差修正参数具有如下特点:相邻像素点的索引值对应的预测误差参数只可能有三种差值:“0”“1”“-1”,所以在无法获得当前处理像素点对应的预测误差参数时,可以由前两个像素点的预测误差参数来推测当前点的预测误差参数。由上上一个像素点推测误差参数时,有九种变换结果,这九种结果对应五个数值。
将当前参数中的预测误差修正参数分别与“2”、“1”“0”,“-1”,“-2”相加,得到五种加和结果,读取移位寄存器中的预测中值Px,取预测中值的绝对值,将预测中值的绝对值分别与五种加和结果相加,得到的五个值作为预测修正中值。将预测修正中值的五个数值都限制在下限为“0”、上限为最大值的范围内,若预测修正中值小于“0”,令它等于“0”,若大于最大值,则令它等于最大值。
按照预测误差修正参数的取值规律,将五个预测修正中值映射至九种预测修正中值,得到九种第一步预测修正中值,将九种第一步预测修正中值存入移位寄存器中。预测修正中值的过程如图3所示:在预测误差修正参数第一步,预测出九种第一步预测修正中值PxC_pp,PxC_p0,PxC_pm,PxC_0p,PxC_00,PxC_0m,PxC_mp,PxC_m0,PxC_mm;在第二步预测误差修正参数时,利用更新误差修正参数与当前误差修正参数的比较结果,从九种第一步预测修正中值中选择三种预测误差,这三种预测误差即为第二步预测误差中值;第三步预测与参数更新同时进行,比较更新出的误差修正参数与当前的误差修正参数,从三种预测误差出选择一个值作为最终误差值。
其中,PxC表示预测修正中值,第一个下标“p”,“m”,“0”分别表示对上上一个像素点对应的预测误差参数值进行加“1”、减“1”、不变操作;第二个下标“p”,“m”,“0”分别表示对上一个像素点对应的预测误差参数值进行加“1”、减“1”、不变操作,因此两个下标联合在一起表示对前两个像素点的预测误差参数进行相应计算得到的结果。
步骤7,第二次预测误差修正参数
提取编码器中的参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第四步索引值比较信号设置为“0”,若不等于,提取步骤8中的更新索引值Q_update与步骤6存入移位寄存器的第三步索引值Q_index3,判断更新索引值与第三步索引值是否相等;若相等,将第四步索引值比较信号设置为“1”,否则,将第四步索引值比较信号设置为“0”。
提取步骤6存入移位寄存器的第三步索引值比较信号,判断第三步索引值比较信号是否等于“1”,若等于,提取步骤6存入移位寄存器的中间参数值,将当前参数值设置为中间参数值,否则,提取随机存储器中第三步索引值对应的参数值作为当前参数值,将当前参数值存入移位寄存器中。
令第四步索引值Q_index4等于第三步索引值Q_index3,将第四步索引值存入移位寄存器中,其中,Q_index4表示第四步索引值。
提取移位寄存器中的九种第一步预测修正中值,对第一步预测修正中值进行第二次预测,从九种预测修正中值中预测出三个第二步预测修正中值。
本发明实施例中,第二次预测步骤如下:
判断比较信号三是否等于“0”,若等于,说明上上一个像素点对应的误差修正参数等于“0”,因此从九种第一步预测修正中值内取第一个下标为“0”的三个值PxC_0p、PxC_00、PxC_0m作为第二步预测修正中值,否则,提取步骤8中更新的误差修正参数,比较当前参数值中的误差修正参数与更新的误差修正参数的大小,若前者大于后者,说明上上一个像素点对应的误差修正参数等于“-1”,因此从第一步预测修正中值内取第一个下标为“m”的三个值PxC_mp、PxC_m0、PxC_mm作为第二步预测修正中值;否则,选取第一个下标为“p”的三个值PxC_pp、PxC_p0、PxC_pm作为第二步预测修正中值。
提取编码器中的当前像素点值,分别将三个第二步预测修正中值与当前像素点值做减法运算,将得到的三个结果作为误差值中间结果。
分别比较三个误差值中间结果与误差范围上限值与下限值的大小,若误差值中间结果小于下限值,则加上误差范围修正值,将得到的结果作为误差值;若大于上限值,则减去误差范围修正值,将得到的结果作为误差值;否则,将误差值中间结果作为误差值,将误差值存入移位寄存器中。
步骤8,更新参数值
将参数更新使能信号设置为“1”。
提取步骤7存入移位寄存器的当前参数值与第四步索引值Q_index4,对当前参数值进行更新操作,得到参数的更新值,将随机存储器中第四步索引值对应的参数值设置为参数的更新值,令更新索引值Q_update等于第四步索引值Q_index4,将参数的更新值和更新索引值Q_update存入移位寄存器中,其中,Q_update表示更新索引值。
提取步骤7存入移位寄存器中的三个误差值,利用更新的参数在三个误差值中选择一个作为最终误差值,将最终误差值存入移位寄存器中。提取移位寄存器中的比较信号四,判断比较信号四是否等于“0”,若等于,说明上一个点对应的误差修正参数为“0”,从三个误差值中选择第二个下标为“0”的值作为最终误差值,否则,比较更新的误差修正参数与当前误差修正参数值的大小,若前者大于后者,说明上一个点对应的误差修正参数为“1”,从三个误差值中选择第二个下标为“p”的值作为最终误差值,否则,选择第二个下标为“m”的误差值作为最终误差值,将最终误差值存入移位寄存器中。
本发明实施例中,预测误差值与参数更新在同一个处理级进行,以更新的误差修正参数作为敏感变量,一旦参数的数值变化,就进行一次相应的处理,所以接收误差修正参数的处理级可以同步得到最新的误差修正参数,并进行计算。参数更新时,发生次数计量参数加“1”;将当前参数中的偏差参数与最终误差值的两倍相加,得到的结果记为偏差参数更新值;将前项预测误差参数与最终误差值的绝对值相加,得到的结果记为前项预测误差参数更新值;判断偏差参数的更新值是否小于发生次数计量参数的相反数:若小于,给偏差参数加上发生次数计量参数值,继续判断偏差参数是否小于发生次数计量参数的相反数,若仍然小于,令偏差参数等于“1”减去发生次数计量参数,判断预测误差修正参数是否大于最小值,若大于,减“1”;否则,判断偏差参数是否大于“0”:若大于,将偏差参数减去发生次数计量参数,继续判断偏差参数是否大于“0”,若大于,令偏差参数等于“0”,判断预测误差修正参数是否小于最大值,若小于,预测误差修正参数加“1”,否则,不做处理。
步骤9,获得哥伦布编码参数
提取出步骤8存入移位寄存器的更新参数中的发生次数计量参数与前项预测误差参数,将发生次数计量参数向左移动,每次向左移动一位,一直到移位后的发生次数计量参数大于前项预测误差参数,停止左移操作,将移动位数作为哥伦布编码参数。
本发明实施例中,根据硬件实现环境确定哥伦布编码参数最大值为17,因此将哥伦布编码参数范围限制在0-17之间。本发明采用二分比较法代替移位操作:
(1)将范围为“1”到“17”的区间作为比较区间;
(2)求出当前比较区间两个边界点数值的平均值,将平均值作为中间点,以中间点为界限,将比较区间划分为上、下两部分区间;
(3)提取出移位寄存器内的前项预测误差参数和发生次数计量参数,将发生次数计量参数左移平均值位,判断移位后的值是否小于前项预测误差参数值:若小于,则选取上半个区间作为比较区间;否则,选取下半个区间作为比较区间,返回步骤(2),重新选取中间点进行比较操作,直到进行五次比较,根据比较结果选取当前上边界或者下边界值作为哥伦布参数,停止操作。
提取步骤8存入移位寄存器中的最终误差值,提取随机存储器中更新索引值对应的偏差参数和发生次数计量参数,比较偏差参数与发生次数计量参数的大小,由其比较结果及最终误差值选择误差映射值。
步骤10,哥伦布编码及码字合成
将哥伦布编码参数值以及误差映射值送入哥伦布编码器进行哥伦布编码,获得不定长码流,将码流存入缓存器中。
提取缓存器中的码流信息,按顺序拼接码流,每当码流拼接满“64”位时,合成为一个码字,将码字输出到JPE6_LS编码器外。
本发明实施例中,采用Xilinx公司的ISE10.1作为综合工具,首先创建项目向导,在Xilinx ISE10.1的工具栏中点击File->open Project,按照保存路径打开工程;其次在Sources窗口点击顶层文件并在processes窗口中双击Synthesize-XST,启动全程编译;最后在Synthesize-XST下拉菜单中选中View RTL Schematic,查看综合后生成的门级电路。
为了精确测试本发明的优化效果,以某五级流水结构实现JPEG_LS常规编码预测编码部分的系统为对比系统,此系统仅使用了一步预测误差修正编码。测试工具为Xilinx公司的ISE 10.1,采用Xilinx公司型号为XC2vp40ff1148-6的FPGA作为测试平台。通过测试工具分别对五级流水结构JPEG_LS常规编码系统与本发明系统进行综合,点击View Synthesis Report查看综合报告。表1为五级流水结构实现JPEG_LS常规编码系统的资源占用情况综合报告,表2为本发明实现JPEG_LS常规编码系统的资源占用情况综合报告。
表1优化前JPEG_LS常规编码系统资源占用情况
表2优化后JPEG_LS常规编码系统资源占用情况
表1为优化前的5级流水结构,实现时只采用了一级预测误差修正参数,表2为本发明7级流水结构实现预测编码,采用二级预测误差修正参数;通过比较表1与表2的结果可以看出,使用FPGA进行功能实现时,优化前的结构Slice的占用率降低了4%,查找表的使用率降低了2%,输入输出模块的个数也减少了3个。
在不加约束的条件下,分别对5级结构与本发明结构进行综合,得到5级结构综合后的最小周期为19.156ns,最大频率为52.203MHz,本发明7级结构综合后的最小周期为15.568ns,最大频率为64.236MHz。由此可见,本发明的实现频率较5级结构提高了12.033MHz。
Claims (3)
1.一种JPEG_LS常规编码硬件实现方法,包括以下步骤:
(1)输入像素点
1a)将需要压缩的图像像素点输入到JPEG_LS编码器中;
1b)按照当前像素点与其邻近点的相应位置关系a、b、c、d,依次从随机存储器中读出当前像素点的邻近点及其对应位置关系的信息;所述的邻近点及其对应位置关系中的a、b、c、d为:a表示处理的上一个像素点,c表示处理的上一个像素点上方的像素点,b表示当前处理的像素点上方的像素点,d表示下一个处理的像素点上方的像素点;
1c)将当前像素点的符号位信号输入到JPEG_LS编码器中;
1d)将需要压缩的图像参数更新使能信号输入JPEG_LS编码器中;
1e)将需要压缩图像的最大值信号输入到JPEG_LS编码器中;
1f)将需要压缩图像的误差范围修正值、误差范围上限值及下限值输入到JPEG_LS编码器中;
(2)获取梯度值
2a)计算梯度:将邻近点中的d值与b值相减,得到的结果记为梯度一,将b值与c值相减,得到的结果记为梯度二,将c值与a值相减,得到的结果记为梯度三;
2b)量化梯度:将JPEG_LS常规编码标准方法的八个固定数值作为门限值,利用八个门限值将整体数字空间划分为九个区域,每个区域对应一个量化值,将步骤2a)获得的三个梯度值与八个门限值分别作比较,在八个门限值中获取小于梯度值的数值,选择这些门限值内最大的数值作为下限值,获取八个门限值中大于梯度值的数值,选择这些门限值内最小的数值作为上限值,将下限值与上限值对应区域的量化值作为其梯度量化值;
2c)修正梯度值:分别判断三个梯度量化值是否为负数,若是负数,取其绝对值作为梯度量化值,将符号位信号修正为“-1”,如果是正数,三个梯度量化值与符号位信号取值不变,将符号位信号值及梯度量化值存入移位寄存器中;
(3)获取预测中值
比较步骤1b)中a值与b值的大小,若a大于b,则将a作为较大值,将b作为较小值,否则将b作为较大值,将a作为较小值;比较c值与较大值的大小,若c值大于较大值,则预测中值等于较小值,否则,比较c值与较小值的大小,若c值小于较小值,则预测中值取较大值,否则,预测中值取a值加上b值再减去c值的结果,将预测中值存入移位寄存器中;
(4)获取索引值信息第一步
4a)将JPEG_LS常规编码标准方法的索引值参数作为梯度量化值的加和系数,提取移位寄存器中的三个梯度量化值Q1,Q2,Q3,判断Q1是否等于“0”,若Q1等于“0”,判断Q2是否等于“0”,若Q2等于“0”,则第一步索引值Q_index1=360+Q3,若Q2不等于“0”,则第一步索引值Q_index1=324+(Q1-1)×9+(Q3+4),若Q1不等于“0”,则第一步索引值Q_index1=(Q1-1)×81+(Q2+4)×9+(Q3+4);得到第一步索引值Q_index1,将第一步索引值存入移位寄存器中,其中,Q_index1表示第一步索引值;
4b)提取编码器中的参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第一步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值,判断第一步索引值与更新索引值是否相等,若相等,将第一步索引值比较信号设置为“1”,若不相等,将第一步索引值比较信号设置为“0”,将第一步索引值比较信号存入移位寄存器中;
(5)获取索引值信息第二步
5a)设置初始参数值:提取移位寄存器中的第一步索引值,查找随机存储器中索引值的存储记录,判断第一步索引值是否为第一次使用:若是,将初始参数值设置为JPEG_LS常规编码标准方法的初始值,将移位寄存器中的第一步索引值比较信号修正为“1”,否则,提取步骤8b)中的更新参数值,将初始参数值设置为更新参数值,将初始参数值存入移位寄存器中;
所述的参数包括前项预测误差参数,偏差参数,误差修正参数,发生次数计量参数;
5b)提取编码器中参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第二步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值,判断更新索引值与第一步索引值是否相等,若相等,将第二步索引值比较信号设置为“1”,否则,将第二步索引值比较信号设置为“0”,将第二步索引值比较信号存入移位寄存器中;
5c)令第二步索引值等于第一步索引值,将第二步索引值存入移位寄存器中;
(6)第一次预测误差修正参数
6a)提取JPEG_LS编码器中参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第三步索引值比较信号设置为“0”,否则,提取步骤8b)中的更新索引值与移位寄存器中的第二步索引值,判断更新索引值与第二步索引值是否相等,若相等,将第三步索引值比较信号设置为“1”,否则,将第三步索引值比较信号设置为“0”,将第三步索引值比较信号存入移位寄存器中;
6b)设置中间参数值:提取移位寄存器中的第二步索引值比较信号,判断第二步索引值比较信号是否等于“1”,若是,提取步骤8b)中的更新参数值,将中间参数值设置为更新参数值,否则,提取移位寄存器中的第一步索引值比较信号,判断第一步索引值比较信号是否等于“1”,若等于,提取移位寄存器中的初始参数值,令中间参数值等于初始参数值,若不相等,提取随机存储器中第二步索引值对应的参数值,将此参数值作为中间参数值,将中间参数值存入移位寄存器中;
6c)令第三步索引值等于第二步索引值,将第三步索引值存入移位寄存器中;
6d)将当前参数中的误差修正参数分别与“2”、“1”“0”,“-1”,“-2”相加,得到五种加和结果,读取移位寄存器中的预测中值,取预测中值的绝对值,将预测中值的绝对值分别与五种加和结果相加,得到的五个值作为预测修正中值;将预测修正中值的五个数值都限制在下限为“0”、上限为最大值的范围内;按照误差修正参数的取值规律,将五个预测修正中值映射至九种预测修正中值,将得到的九种第一步预测修正中值存入移位寄存器中;
(7)第二次预测误差修正参数
7a)提取编码器中的参数更新使能信号,判断参数更新使能信号是否等于“0”,若等于,将第四步索引值比较信号设置为“0”,若不等于,提取步骤8b)中的更新索引值与步骤6c)存入移位寄存器的第三步索引值,判断更新索引值与第三步索引值是否相等;若相等,将第四步索引值比较信号设置为“1”,否则,将第四步索引值比较信号设置为“0”,将第四步索引值比较信号存入移位寄存器中;
7b)提取步骤6a)存入移位寄存器的第三步索引值比较信号,判断第三步索引值比较信号是否等于“1”,若等于,提取步骤6b)存入移位寄存器的中间参数值,将当前参数值设置为中间参数值,否则,提取随机存储器中第三步索引值对应的参数值作为当前参数值,将当前参数值存入移位寄存器中;
7c)令第四步索引值等于第三步索引值,将第四步索引值存入移位寄存器中;
7d)判断第三步索引值比较信号是否等于“0”,若等于,说明上上一个像素点对应的误差修正参数等于“0”,因此从九种第一步预测修正中值内取第一个下标为“0”的三个值PxC_0p、PxC_00、PxC_0m作为第二步预测修正中值,否则,提取步骤8中更新的误差修正参数,比较当前参数值中的误差修正参数与更新的误差修正参数的大小,若前者大于后者,说明上上一个像素点对应的误差修正参数等于“-1”,因此从第一步预测修正中值内取第一个下标为“m”的三个值PxC_mp、PxC_m0、PxC_mm作为第二步预测修正中值;否则,选取第一个下标为“p”的三个值PxC_pp、PxC_p0、PxC_pm作为第二步预测修正中值;
7e)提取编码器中的当前像素点值,分别将三个第二步预测修正中值与当前像素点值做减法运算,将得到的三个结果作为误差值中间结果;
7f)提取编码器中的误差范围修正值,分别比较三个误差值中间结果与误差范围上限值与下限值的大小,若误差值中间结果小于下限值,则加上误差范围修正值,将得到的结果作为误差值;若大于上限值,则减去误差范围修正值,将得到的结果作为误差值;否则,将误差值中间结果作为误差值,将误差值存入移位寄存器中;
(8)更新参数值
8a)将参数更新使能信号设置为“1”;
8b)提取步骤7b)存入移位寄存器的当前参数值与步骤7c)存入移位寄存器的第四步索引值,对当前参数值进行更新操作,得到参数的更新值,将随机存储器中第四步索引值对应的参数值设置为参数的更新值,令更新索引值等于第四步索引值,将参数的更新值和更新索引值存入移位寄存器中;
8c)提取移位寄存器中的第四步索引值比较信号,判断第四步索引值比较信号是否等于“0”,若等于,说明上一个点对应的误差修正参数为“0”,从三个误差值中选择第二个下标为“0”的值作为最终误差值,否则,比较更新的误差修正参数与当前误差修正参数值的大小,若前者大于后者,说明上一个点对应的误差修正参数为“1”,从三个误差值中选择第二个下标为“p”的值作为最终误差值,否则,选择第二个下标为“m”的误差值作为最终误差值,将最终误差值存入移位寄存器中;
(9)获得哥伦布编码参数
9a)提取出步骤8b)存入移位寄存器的更新参数中的发生次数计量参数与前项预测误差参数,将发生次数计量参数向左移动,每次向左移动一位,一直到移位后的发生次数计量参数大于前项预测误差参数,停止左移操作,将移动位数作为哥伦布编码参数;
9b)提取步骤8c)存入移位寄存器中的最终误差值,提取随机存储器中更新索引值对应的偏差参数和发生次数计量参数,比较偏差参数与发生次数计量参数的大小,由其比较结果及最终误差值选择误差映射值;
(10)哥伦布编码及码字合成
10a)将哥伦布编码参数值以及误差映射值送入哥伦布编码器进行哥伦布编码,获得不定长码流,将码流存入缓存器中;
10b)提取缓存器中的码流信息,按顺序拼接码流,每当码流拼接满“64”位时,合成为一个码字,将码字输出到JPEG_LS编码器外。
2.根据权利要求1所述的JPEG_LS常规编码硬件实现方法,其特征在于,步骤4a)中所述的索引值提供参数的索引,取值范围是0-364的整数值。
3.根据权利要求1所述的JPEG_LS常规编码硬件实现方法,其特征在于,步骤8b)中所述的随机存储器用于存储索引值对应的参数信息,共365个索引值,每一个索引值对应前项预测误差参数,偏差参数,误差修正参数,发生次数计量参数四个参数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210198818.XA CN102724506B (zh) | 2012-06-06 | 2012-06-06 | Jpeg_ls常规编码硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210198818.XA CN102724506B (zh) | 2012-06-06 | 2012-06-06 | Jpeg_ls常规编码硬件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102724506A CN102724506A (zh) | 2012-10-10 |
CN102724506B true CN102724506B (zh) | 2015-05-27 |
Family
ID=46950151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210198818.XA Expired - Fee Related CN102724506B (zh) | 2012-06-06 | 2012-06-06 | Jpeg_ls常规编码硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724506B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717497A (zh) * | 2013-12-13 | 2015-06-17 | 北京润光泰力科技发展有限公司 | 基于扫描顺序变更的jpeg_ls规则编码硬件实现方法 |
CN105208394B (zh) * | 2015-09-21 | 2018-09-04 | 北京集创北方科技股份有限公司 | 一种实时数字图像压缩预测方法与系统 |
CN109218726B (zh) * | 2018-11-01 | 2020-04-07 | 西安电子科技大学 | 激光诱导击穿光谱图像有损无损联合压缩方法 |
CN115604488A (zh) * | 2019-06-25 | 2023-01-13 | 北京大学(Cn) | 环路滤波的方法与装置 |
CN113766238B (zh) * | 2021-09-16 | 2023-07-04 | 沈阳航空航天大学 | Jpeg-ls无损压缩标准下基于fpga的图像高速压缩方法及系统 |
CN118565528A (zh) * | 2024-08-02 | 2024-08-30 | 泉州昆泰芯微电子科技有限公司 | 压缩方法、解压方法、自校准方法、编码器及电机 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848387A (zh) * | 2010-03-19 | 2010-09-29 | 西安电子科技大学 | 基于jpeg2000标准的算术编码概率区间值确定方法 |
-
2012
- 2012-06-06 CN CN201210198818.XA patent/CN102724506B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848387A (zh) * | 2010-03-19 | 2010-09-29 | 西安电子科技大学 | 基于jpeg2000标准的算术编码概率区间值确定方法 |
Non-Patent Citations (2)
Title |
---|
A High Performance Fully Pipelined Architecture for Lossless Compression of Satellite Image;Ze Wang等;《Multimedia Technology(ICMT), 2010 International Conference on》;20101031;1-4 * |
Efficient high-performance implementation of JPEG-LS encoder;Markos E. Papadonikolakis等;《Journal of Real-Time Image Processing》;20081231;第3卷(第4期);303-310 * |
Also Published As
Publication number | Publication date |
---|---|
CN102724506A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102724506B (zh) | Jpeg_ls常规编码硬件实现方法 | |
CN110287961A (zh) | 中文分词方法、电子装置及可读存储介质 | |
CN110347873A (zh) | 视频分类方法、装置、电子设备及存储介质 | |
CN111737416B (zh) | 案件处理模型的训练方法、案件文本处理方法及相关装置 | |
CN113055017A (zh) | 数据压缩方法及计算设备 | |
CN112417752B (zh) | 基于卷积lstm神经网络的云层轨迹预测方法及系统 | |
CN108363559A (zh) | 神经网络的乘法处理方法、设备和计算机可读介质 | |
CN116502774B (zh) | 一种基于时间序列分解和勒让德投影的时间序列预测方法 | |
WO2018130890A1 (en) | Learning apparatus and method for bidirectional learning of predictive model based on data sequence | |
US20090049417A1 (en) | Method of designing a circuit for optimizing output bit length and integrated circuit therefor | |
CN115130894A (zh) | 基于人工智能的生产规划方法、装置、计算机设备及介质 | |
KR20230104037A (ko) | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 | |
CN116187496A (zh) | 一种飞机传感器时序预测方法 | |
CN116777452A (zh) | 智能电表的预付费系统及其方法 | |
CN115454423A (zh) | 静态网页的生成方法、生成装置、电子设备及存储介质 | |
CN118276913A (zh) | 一种基于人工智能的代码补全方法 | |
US8548225B2 (en) | Point selection in bundle adjustment | |
CN117077586B (zh) | 一种电路设计的寄存器传输级资源预测方法、装置及设备 | |
CN116881996B (zh) | 基于鼠标操作的建模意图预测方法 | |
CN113505562A (zh) | 时钟树综合最优策略预测方法、系统及应用 | |
CN104412512A (zh) | 编码装置、解码装置、编码方法、编码程序、解码方法以及解码程序 | |
CN110135561B (zh) | 一种实时在线飞行器ai神经网络系统 | |
CN117150237A (zh) | 时序数据预测方法、装置、设备及计算机可读存储介质 | |
JP2021196316A (ja) | データ管理システム、データ管理方法、および、データ管理プログラム | |
CN113743042B (zh) | 一种基于高层次综合工具的坐标旋转数字计算方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150527 Termination date: 20200606 |
|
CF01 | Termination of patent right due to non-payment of annual fee |