发明名称 JPEG-LS近无损图像压缩编码器硬件实现方法
摘要 本发明公开了一种JPEG-LS近无损图像压缩编码器硬件实现方法,克服了现有技术中编码器处理速度慢,压缩性能差的缺点,本发明的具体步骤如下:(1)获得预测重建值;(2)像素预测;(3)获得上下文索引值;(4)获得像素残差;(5)重建值计算;(6)参数更新;(7)误差映射;(8)Golomb编码;本发明相比于现有技术,具有处理速度快,压缩性能好,硬件实现复杂度低的优点。
申请公布号 CN102970531B 申请公布日期 2015.04.22
申请号 CN201210434244.1 申请日期 2012.10.19
申请人 西安电子科技大学 发明人 雷杰;张毅;李云松;贾超群;张皓
分类号 H04N19/42(2014.01)I 主分类号 H04N19/42(2014.01)I
代理机构 陕西电子工业专利中心 61205 代理人 田文英;王品华
主权项 JPEG‑LS近无损图像压缩编码器硬件实现方法,包括如下步骤:(1)获得预测重建值1a)编码器接收相机传来的像素,判断当前像素是不是该行图像的首个像素,如果是,则将当前像素的前一个像素的预测重建值赋值为0,执行步骤(2),否则执行步骤1b);1b)由下式获得当前像素的前一个像素的多个预测重建值,预测重建值的计算在一个时钟周期内完成:R<sub>i</sub>=a‑Near+i‑1其中,R<sub>i</sub>表示当前像素的前一个像素的第i个预测重建值,i=1,…,N,N表示预测重建值的个数,其值为2*Near+1,Near表示JPEG‑LS标准中的失真量化参数,a表示当前像素的前一个像素值;(2)像素预测根据JPEG‑LS像素预测公式获得多个像素预测值,像素预测值的计算在一个时钟周期内完成;所述的像素预测公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>P</mi><mi>i</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>min</mi><mrow><mo>(</mo><msub><mi>R</mi><mi>i</mi></msub><mi>Rb</mi><mo>)</mo></mrow></mtd><mtd><mi>Rc</mi><mo>></mo><mi>max</mi><mrow><mo>(</mo><msub><mi>R</mi><mi>i</mi></msub><mo>,</mo><mi>Rb</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>max</mi><mrow><mo>(</mo><msub><mi>R</mi><mi>i</mi></msub><mo>,</mo><mi>Rb</mi><mo>)</mo></mrow></mtd><mtd><mi>Rc</mi><mo>&lt;</mo><mi>min</mi><mrow><mo>(</mo><msub><mi>R</mi><mi>i</mi></msub><mo>,</mo><mi>Rb</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>R</mi><mi>i</mi></msub><mo>+</mo><mi>Rb</mi><mo>-</mo><mi>Rc</mi></mtd><mtd><mi>else</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000135355630000011.GIF" wi="1057" he="224" /></maths>其中,P<sub>i</sub>表示第i个像素预测值,R<sub>i</sub>表示当前像素的上一个像素的第i个预测重建值,i=1,…,N,N表示预测重建值的个数,其值为2*Near+1,Near为JPEG‑LS标准中的失真量化参数,Rb表示当前像素正上方的相邻像素的重建值,Rc表示当前像素左上方的相邻像素的重建值,min(R<sub>i</sub>,Rb)表示取R<sub>i</sub>和Rb两者较小值,max(R<sub>i</sub>,Rb)表示取R<sub>i</sub>和Rb两者较大值;(3)获得上下文索引值3a)将像素重建值Rd减去像素重建值Rb,获得梯度值d1,对d1进行量化,获得量化梯度值q1,Rb和Rd分别是当前像素的两个相邻像素的重建值;3b)将像素重建值Rb减去像素重建值Rc,获得梯度值d2,对d2进行量化,获得量化梯度值q2,Rb和Rc分别是当前像素的两个相邻像素的重建值;3c)将像素重建值Rc依次减去每个预测重建值R<sub>i</sub>,获得梯度值d3<sub>i</sub>,对d3<sub>i</sub>进行量化,获得量化梯度值q3<sub>i</sub>,其中R<sub>i</sub>表示第i个预测重建值,i=1,…,N,N表示预测重建值的个数,其值为2*Near+1,其中Near为JPEG‑LS标准中的失真量化参数;3d)将预测重建值R<sub>1</sub>作为当前像素的上一个像素的重建值Ra,选择出像素重建值Ra,Rb,Rc,Rd对应的量化梯度值q1,q2,q3<sub>1</sub>,对量化梯度值进行符号判断和取反操作,获得映射后的量化梯度值p1,p2,p3<sub>1</sub>和符号标志s<sub>1</sub>,将映射后的量化梯度值p1,p2,p3<sub>1</sub>代入梯度融合公式,获得上下文索引值Q<sub>1</sub>;3e)将预测像素值R<sub>N</sub>作为上一个像素的重建值Ra,选择出像素重建值Ra,Rb,Rc,Rd对应的量化梯度值q1,q2,q3<sub>N</sub>,对量化梯度值进行判断和取反操作,获得映射后的量化梯度值r1,r2,r3<sub>N</sub>和符号标志s<sub>2</sub>,将映射后的量化梯度值r1,r2,r3<sub>N</sub>代入梯度融合公式,获得上下文索引值Q<sub>2</sub>;3e)依次判断每个量化梯度值q3<sub>i</sub>和第一个量化梯度值q3<sub>1</sub>是否相等,若相等,则将第i个判断标志w<sub>i</sub>置为0,否则将w<sub>i</sub>置为1,其中i=1,…,N,N表示预测重建值的个数,其值为2*Near+1,其中Near为JPEG‑LS标准中的失真量化参数;(4)获得像素残差根据JPEG‑LS像素残差计算公式,将多个像素预测值分别与当前像素值做差,获得多个预测残差值,预测残差值的计算在一个时钟周期内完成;所述的JPEG‑LS像素残差计算公式如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>E</mi><mi>i</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>Ix</mi><mo>-</mo><mrow><mo>(</mo><mi>P</mi><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><mi>C</mi><mo>[</mo><msub><mi>Q</mi><mn>1</mn></msub><mo>]</mo><mo>)</mo></mrow></mtd><mtd><msub><mi>w</mi><mi>i</mi></msub><mo>=</mo><mn>0</mn><mo>;</mo><msub><mi>s</mi><mn>1</mn></msub><mo>=</mo><mn>0</mn><mo>;</mo></mtd></mtr><mtr><mtd><mi>P</mi><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><mi>C</mi><mo>[</mo><msub><mi>Q</mi><mn>1</mn></msub><mo>]</mo><mo>-</mo><mi>Ix</mi></mtd><mtd><msub><mi>w</mi><mi>i</mi></msub><mo>=</mo><mn>0</mn><mo>;</mo><msub><mi>s</mi><mn>1</mn></msub><mo>=</mo><mn>1</mn><mo>;</mo></mtd></mtr><mtr><mtd><mi>Ix</mi><mo>-</mo><mrow><mo>(</mo><mi>P</mi><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><mi>C</mi><mo>[</mo><msub><mi>Q</mi><mn>2</mn></msub><mo>]</mo><mo>)</mo></mrow></mtd><mtd><msub><mi>w</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo><msub><mi>s</mi><mn>2</mn></msub><mo>=</mo><mn>0</mn><mo>;</mo></mtd></mtr><mtr><mtd><msub><mi>Px</mi><mi>i</mi></msub><mo>-</mo><mi>C</mi><mo>[</mo><msub><mi>Q</mi><mn>2</mn></msub><mo>]</mo><mo>-</mo><mi>Ix</mi></mtd><mtd><msub><mi>w</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo><msub><mi>s</mi><mn>2</mn></msub><mo>=</mo><mn>0</mn><mo>;</mo></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000135355630000021.GIF" wi="847" he="294" /></maths>其中,E<sub>i</sub>表示第i个预测残差值,Ix表示当前像素值,Px<sub>i</sub>表示第i个像素预测值,i=1,…,N,N表示预测重建值的个数,其值为2*Near+1,Near为JPEG‑LS标准中的失真量化参数,Q<sub>1</sub>,Q<sub>2</sub>表示上下文索引值,C[Q<sub>1</sub>]表示对应于上下文索引值Q<sub>1</sub>的修正残差值,C[Q<sub>2</sub>]表示对应于上下文索引值Q<sub>2</sub>的修正残差值,w<sub>i</sub>表示第i个判断标志,s<sub>1</sub>和s<sub>2</sub>表示符号标志;(5)重建值计算5a)从多个预测残差值中选择当前像素的上个像素的重建值所对应的预测残差值作为当前像素的残差值,同时,从多个像素预测值中选择当前像素的上个像素的重建值所对应的像素预测值作为当前像素的预测值;5b)判断当前像素的上个像素的重建值所对应的判断标志是否为零,若为零,则将上下文索引值Q<sub>1</sub>作为参数更新的上下文索引值Q,将符号标志s<sub>1</sub>作为上下文索引值Q的符号标志sign,若不为零,则将上下文索引值Q<sub>2</sub>作为参数更新的上下文索引值Q,将符号标志s<sub>2</sub>作为上下文索引值Q的符号标志sign;5c)分别查询量化值表和重建值表,获得像素残差值的量化值和重建值;5d)根据JPEG‑LS的像素重建值计算公式,获得当前像素的重建值;(6)参数更新6a)将上下文参数A[Q]加上残差量化值的绝对值,获得A[Q]的更新值;6b)将残差值的重建值与上下文参数B[Q]相加,将相加后得到的结果分别与N[Q],‑N[Q],‑2N[Q]相比较,根据比较结果计算出更新后的B[Q]和C[Q];6c)判断N[Q]是否等于255,如果等于255,令更新后的N[Q]等于为1,否则将N[Q]加1,作为更新后的N[Q];(7)误差映射判断当前残差值E是否大于0,若大于0,则将2E作为映射后的残差值,否则将‑2E‑1作为映射后的残差值;(8)Golomb编码根据JPEG‑LS标准,对映射后的残差值进行Golomb编码。
地址 710071 陕西省西安市太白南路2号