发明名称 JPEG-LS游程编码硬件实现方法
摘要 JPEG-LS游程编码硬件实现方法,对JPEG-LS游程编码的标准流程进行了改进和优化,引入编码映射操作,通过比较查表操作流水线实现编码,解决原算法中多个时钟周期循环编码的问题。另外,根据只残差编码采用索引值RUNindex单周期更新操作,同时游长编码和残差编码采用索引值RUNindex双周期更新操作,提高了编码的速度。本发明方法全部通过FPGA实现,具有全流水线、实时性好的特点,可以应用于JPEG-LS无损和近无损压缩的硬件算法。
申请公布号 CN101783953B 申请公布日期 2011.07.20
申请号 CN201010120398.4 申请日期 2010.03.08
申请人 北京空间机电研究所 发明人 陈大羽;王琨;雷宁;武文波;张媛
分类号 H04N7/26(2006.01)I;H04N1/41(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 1.JPEG-LS游程编码硬件实现方法,其特征在于步骤如下:(1)输入前次游程编码更新后的范围在0~31之间的索引值RUNindex和游程长度RUNcnt,然后根据二者计算得到比较标志CompareFlag、映射值Map_Value和编码减值Sub_Jvalue[RUNindex],其中,CompareFlag的计算公式如下:<img file="FSA00000045603200011.GIF" wi="1260" he="136" />编码减值Sub_Jvalue[i]的计算公式如下:<img file="FSA00000045603200012.GIF" wi="946" he="137" />映射值Map_Value=x<sub>0</sub>x<sub>1</sub>…x<sub>j</sub>…X<sub>30</sub>X<sub>31</sub>,j=0~31,x<sub>j</sub>的计算公式如下:<img file="FSA00000045603200013.GIF" wi="947" he="136" />其中,<img file="FSA00000045603200014.GIF" wi="681" he="114" />J_Value[p]=2<sup>J[p]</sup>,p=0~31J_Trans_RUNindex[q]=J_Trans[q]-Sub_Jvalue[q],q=0~31;J_Trans、J_Trans_RUNindex、Sub_Jvalue和J_Value均采用映射表的形式存储在FPGA内部,采用索引值RUNindex和游程长度RUNcn查表获得具体值;(2)输入行尾标志EOLine,根据行尾标志EOLine以及步骤(1)得到的比较标志CompareFlag、映射值Map_Value计算出更新后的索引值RUNindex,计算时采用两级更新,其中一级更新完成RUNindex的累加运算,一级更新后RUNindex的值为映射值Map_Value中1的个数,二级更新完成RUNindex保持不变或者RUNindex的值减1运算;当比较标志CompareFlag为0时,只进行二级更新操作,当比较标志CompareFlag为1时,先进行一级更新,而后进行二级更新,当输入行尾标志EOLine为1时,二级更新操作 为保持RUNindex不变,当输入行尾标志EOLine为0时,二级更新操作为RUNindex的值减1运算;一级更新采用寄存器、查找表实现,二级更新采用加法器、多路选择器和寄存器实现,每级更新执行各自占用一个时钟周期;(3) 根据游程长度RUNcnt,步骤(1)得到的映射值Map_Value、编码减值Sub_Jvalue[RUNindex]以及初始索引值RUNindex计算出游长编码和残差编码,其中游长编码为映射值Map_Value中由全部1组成的码段,残差编码为J[k+1]比特的y,计算公式为y=RUNcnt-J_Trans[k]+Sub_Value[RUNindex],其中k应同时满足以下两个关系式,RUNcnt≥J_Trans_RUNindex[k]且RUNcnt<J_Trans_RUNindex[k+1];J[k+1]、J[i]、J[p]均通过查询J表获得,J表即J[0..31]={0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,5,5,6,6,7,7,8,9,10,11,12,13,14,15};(4) 将步骤(3)得到的游长编码、残差编码和行尾编码’1’、分隔编码’0’按照8种不同情况完成编码合成,输出合成后的编码值和编码长度并等待下一次编码开始;所述的8种情况如下表所示,<img file="DEST_PATH_RE-FSB00000490204800011.GIF" wi="2101" he="918" />上表中当残差编码值大于零时残差标志为1,当残差编码值不大于零时残差标志为0,&amp;为连接符号,游长编码值用V1表示,游长编码长度用L1表示,残差编码值用V2表示,残差编码长度用L2表示,游程编码值用V表示,游程编码长度用L表示。 
地址 100076 北京市丰台区南大红门路1号9201信箱5分箱