CN102724508A - Jpeg2000的分辨率自适应节点树编码方法 - Google Patents
Jpeg2000的分辨率自适应节点树编码方法 Download PDFInfo
- Publication number
- CN102724508A CN102724508A CN2012102023831A CN201210202383A CN102724508A CN 102724508 A CN102724508 A CN 102724508A CN 2012102023831 A CN2012102023831 A CN 2012102023831A CN 201210202383 A CN201210202383 A CN 201210202383A CN 102724508 A CN102724508 A CN 102724508A
- Authority
- CN
- China
- Prior art keywords
- node
- prime
- subband
- row
- columns
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种JPEG2000的分辨率自适应节点树编码方法,具体步骤包括:(1)输入编码参数;(2)输出码块信息;(3)控制循环;(4)寄存当前子带各级节点信息;(5)判断当前子带建树是否完成;(6)当前级建树;(7)当前子带编码;(8)存储分离后的编码结果。本发明自适应一定规模内任意分辨率图像的压缩编码,在建树过程中使用各级父节点单独存储的方式,在编码时使用由叶子节点的坐标值计算开始编码的级数,简化了地址计算方法,克服了标记节点是否编码而浪费时钟资源的缺点,使得编码效率得到了提高。本发明可用于各种数字图像芯片的压缩编码。
Description
技术领域
本发明属于图像处理技术领域,更进一步涉及符合JPEG2000标准的分辨率自适应节点树(Tag-tree)编码方法。本发明使用JPEG2000标准中的包含信息的Tag-tree编码方法对任意分辨率图像编码。本发明可用于各种数字图像芯片的压缩编码。
背景技术
JPEG2000作为新一代静态压缩编码标准已被广泛应用到互联网、图像传输等多个领域。它采用了以小波变换为主的多解析编码方式。与目前被广泛应用的多级树集合分裂算法(SPIHT)相比,这种编码系统能在甚低比特率压缩时提供良好的率失真特性和主观视觉质量,此外这种系统还具有一系列其他优点和功能。它采用离散小波变换和率失真优化截取内嵌块编码(EBCOT)技术,其中小波变换和块编码技术提高了图像编码产生的码流的抗误码能力;而内嵌技术为灵活的码流控制提供了可能,即可以实现无损、有损图像压缩的兼容。在实现EBCOT时,各小波子带划分为更小的码块,如32×32,以码块为单位独立进行编码并输出码流。对于所有码块产生的嵌入式位流,由率控制按照率失真最优原则分层组织,形成不同质量的层,对每一层,按照一定的码流格式打包,输出压缩码流。一个包由包头和包体组成,其中,包头由码块包含信息的Tag-tree编码结果及其他的截取信息编码结果组成。
Tag-tree是用等级方式来表示的一个二维非负整型序列的方法,它对序列连续处理,产生逐级递减的分辨率,形成一棵树。也就是说每个节点的值是下级对应相邻4个节点的最小值;对于下边界和右边界不足4个节点的,同样取其最小值,形成父亲节点值,直到最后一个根节点。
西安电子科技大学在其专利申请“基于JPEG2000的Tag-tree编码方法”(专利申请号:200810151047.2,公开号:CN101360242)中公开了一种子带任意层数下的Tag-tree编码方法。这种方法采用先建树后编码的方式对叶子节点中的包含信息进行建树,通过简化子父节点间的对应关系,提高了编码速度。但是仍然存在着不足的是,该专利只能适用于固定分辨率的图像,而在实际应用中,需要编码图像的分辨率可变。
西安交通大学在其专利申请“TAGTREE编码器的VLSI设计方法”(专利申请号:03114603.1,公开号:CN1187699C)中公开了JPEG2000的TAGTREE编码器的VLSI设计方法。这种方法根据无效位平面和包含信息两种TAGTREE的不同特点,设计了两个不同的TAGTREE编码器,可对无效位平面和包含信息同时进行编码。但该方法仍然存在的不足是,该专利在编码时采用标记节点是否已经编码,用逐级比较的方式产生编码码流,这会花费很大的时钟资源。
发明内容
本发明的目的在于克服上述现有技术的不足,提出一种基于JPEG2000标准的分辨率自适应Tag-tree编码方法。本发明根据用户输入的小波变换级数把图像划分成多个子带,采用循环的方式对每一个子带先建树后编码。本发明不仅可对一定范围内任意分辨率的图像进行编码,而且也简化了地址计算方法,使得Tag-tree编码方法的适用范围更广,效率更高。
为实现上述目的,本发明的方法包括如下步骤:
(1)用户根据工程需要将编码参数输入给输出节点信息模块。
(2)输出节点信息
2a)判断输出节点信息模块中编码参数的图像宽度是否超过工程允许的最大图像宽度,如果超过,则将图像中的节点宽度和高度分别定为64个像素点和16个像素点;否则,将图像中的节点宽度和高度均定为32个像素点;
2b)将输出节点信息模块中编码参数的图像宽度和图像高度分别取1/2组成第一级子带的宽度和高度;
2c)判断子带的级数是否等于1,如果等于,则将第一级子带的宽度和高度作为当前级子带的宽度和高度;否则,将步骤2f)寄存的下一级子带的宽度和高度作为当前级子带的宽度和高度;
2d)将当前级子带的宽度和高度分别除以图像中的节点宽度和高度,得到当前级子带的节点行数和列数,将当前级子带的节点行数乘以节点列数得到当前级子带的节点总数,输出当前级子带的节点行数、节点列数和节点总数;
2e)判断子带的级数是否等于输出节点信息模块中编码参数的小波变换级数,如果等于,则执行步骤(3);否则,执行步骤2f);
2f)将当前级子带的宽度和高度分别取1/2组成下一级子带的宽度和高度,将下一级子带的宽度和高度输入寄存器寄存;
2g)将子带的级数加1,返回步骤2c)。
(3)控制循环
3a)对步骤2d)输出的当前级子带的节点行数、节点列数中的最大值取对数,得到当前级子带建树的最高级数;
3b)将节点的级数赋初值1;
3c)判断节点的级数是否等于1,如果等于,则将当前级子带的节点行数、节点列数作为当前级节点的节点行数、节点列数;否则,将步骤3d)寄存的下一级节点的节点行数、节点列数作为当前级节点的节点行数、节点列数;
3d)将当前级节点的节点行数、节点列数向右移一位,得到下一级节点的节点行数、节点列数,将得到的下一级的节点行数、节点列数输入寄存器寄存;
3e)判断节点的级数是否等于1,如果等于,则将当前级子带之前的所有子带的节点总数累加,得到当前级节点的首地址;下一级节点的首地址为零;否则,当前级节点的首地址和下一级节点的首地址均为零;
3f)输出当前级节点和下一级节点的节点行数、节点列数和首地址,执行步骤(5);
3g)将节点的级数加1,返回步骤3c)。
(4)寄存当前子带各级节点信息:将步骤(3)中的的当前级子带建树最高级数,每一级节点的行数和列数输入寄存器寄存。
(5)判断当前子带建树是否完成
判断步骤(3)中节点的级数是否等于步骤3a)中得到的最高级数,如果相等,则执行步骤(7);否则,执行步骤(6)。
(6)当前级建树
6a)将步骤3f)输出的当前级节点和下一级节点的节点列数、首地址以及当前需要建树的节点的行坐标、列坐标通过地址计算公式得到当前需要建树的相邻2x2个节点的存储地址和下一级节点的存储地址;
6b)比较当前需要建树的相邻2x2节点值的大小,从中选取一个最小值;
6c)将最小值写入下一级节点的存储器;
6d)保持当前需要建树的节点的行坐标值不变,将列坐标值加2;
6e)判断当前需要建树的节点的列坐标值是否大于等于步骤3f)输出的当前级节点的列数,如果是,将当前需要建树的节点的行坐标值加2,列坐标值清零;否则,返回步骤6a);
6f)判断当前需要建树的节点的行坐标值是否大于等于步骤3f)输出的当前级节点的行数,如果是,将当前需要建树的节点的行坐标值、列坐标值均清零,返回步骤3g);否则,返回步骤6a)。
(7)当前子带编码
7a)将当前级子带节点作为叶子节点,判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除,如果是,则将幂次值加1,得到叶子节点开始编码的级数;否则,执行步骤7b);
7b)将幂次值减1,返回步骤7a),继续判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除;
7c)将步骤(4)寄存的数据通过地址计算公式得到叶子节点的存储地址和对应的各级父节点的存储地址;
7d)将叶子节点的值和叶子节点对应的各级父节点的值从步骤(5)建立的Tag-tree节点树中取出,从最高级节点开始依次向低级节点进行差值编码,每编码一位,编码结果有效比特位数加1;
7e)将编码结果和编码结果有效比特位数输入寄存器寄存;
7f)判断叶子节点的行坐标值、列坐标值是否分别等于叶子节点的行数、列数,如果是,当前子带编码完成,返回步骤(3)进行下一个子带的建树和编码;否则,执行步骤7g);
7g)判断叶子节点的列坐标值是否等于叶子节点的列数,如果是,叶子节点的行坐标值加1,列坐标值清零;否则,叶子节点的行坐标值不变,列坐标值加1;
7h)返回步骤7a),对下一个叶子节点进行编码。
(8)存储分离后的编码结果
8a)对编码结果从高位到低位依次进行遍历,以第一个为0值的比特位作为分界,将第一个0比特位和之前的比特位个数作为第0层的分离结果,将编码结果有效比特位数与第0层分离结果的差值作为第1层的分离结果;
8b)将编码结果和分离结果输入寄存器寄存。
本发明与现有技术相比具有以下优点:
第一,本发明适用一定规模内任意分辨率图像的Tag-tree编码,克服了现有技术中只能适用固定分辨率图像的Tag-tree编码方法,使得本发明的适用范围更广。
第二,本发明对JPEG2000压缩标准中设定的分层数没有限制,可以实现任意层数下的Tag-tree编码,使得本发明的适用范围更广。
第三,本发明每个子带只需计算叶子节点的首地址,其余节点的首地址均为零,克服了现有技术中地址计算方法过于复杂的缺点,使得本发明的编码速度比现有技术更快。
第四,本发明由叶子节点中需要编码的节点坐标值计算开始编码的级数,从而取出和此节点编码相关的节点值,克服了现有技术中采用标记节点是否已经编码而浪费时钟资源的缺点,使得本发明的编码效率更高。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图1对本发明的实现步骤做详细的描述。
步骤1,用户根据工程需要将编码参数输入给输出节点信息模块,编码参数包括小波变换级数、图像宽度、图像高度。
步骤2,输出节点信息
2a)判断输出节点信息模块中编码参数的图像宽度是否超过工程允许的最大图像宽度2048~4096个像素点,如果超过,则将图像中的节点宽度和高度分别定为64个像素点和16个像素点;否则,将图像中的节点宽度和高度均定为32个像素点。
本发明在具体实施例中,考虑到存储器容量的大小,将最大图像宽度设定为2048~4096个像素点。在实际应用中,本发明对图像的宽度没有限定。对于图像中节点的宽度和高度,可根据JPEG2000中规定的节点宽度和高度自由选择,本发明在具体实施例中,为了节约存储器资源,根据已经设定的最大图像宽度选择了其中两种。
2b)将输出节点信息模块中编码参数的图像宽度和图像高度分别取1/2组成第一级子带的宽度和高度。
2c)判断子带的级数是否等于1,如果等于,则将第一级子带的宽度和高度作为当前级子带的宽度和高度;否则,将步骤2f)寄存的下一级子带的宽度和高度作为当前级子带的宽度和高度。
2d)将当前级子带的宽度和高度分别除以图像中的节点宽度和高度,得到当前级子带的节点行数和列数,将当前级子带的节点行数乘以节点列数得到当前级子带的节点总数,输出当前级子带的节点行数、节点列数和节点总数。
2e)判断子带的级数是否等于输出节点信息模块中编码参数的小波变换级数,如果等于,则执行步骤(3);否则,执行步骤2f)。
2f)将当前级子带的宽度和高度分别取1/2组成下一级子带的宽度和高度,将下一级子带的宽度和高度输入寄存器寄存。
如果图像宽度和高度为奇数,则在对图像宽度和高度做1/2处理时,低频子带的数值比高频子带的数值大1。对子带的宽度和高度分别除以图像中节点的宽度和高度得到的结果取整。由于码块宽度和高度均为2的幂次,所以除法可用移位实现,同样对图像的宽度和高度取1/2处理时也用移位实现。
2g)将子带的级数加1,返回步骤2c)。
步骤3,控制循环
3a)对步骤2d)输出的当前级子带的节点行数、节点列数中的最大值取对数,得到当前级子带建树的最高级数。具体方法如下:
当2N-1+1≤max{r1,c1}≤2N(N≥2)时,当前子带节点树最高级数L=N+1;
当1≤max{r1,c1}≤2时,当前子带节点树最高级数L=2。
3b)将节点的级数赋初值1。
3c)判断节点的级数是否等于1,如果等于,则将当前级子带的节点行数、节点列数作为当前级节点的节点行数、节点列数;否则,将步骤3d)寄存的下一级节点的节点行数、节点列数作为当前级节点的节点行数、节点列数。
3d)将当前级节点的节点行数、节点列数向右移一位,得到下一级节点的节点行数、节点列数,将得到的下一级的节点行数、节点列数输入寄存器寄存。具体方法如下:
当rl为奇数,rl+1=(rl+1)/2,当rl为偶数,rl+1=rl/2,其中1≤l≤L-1;
当cl为奇数,cl+1=(cl+1)/2,当cl为偶数,cl+1=cl/2,其中l≤l≤L-1;
其中,rl,cl分别为当前级节点的节点行数和列数,rl+1,cl+1分别为下一级节点的节点行数和列数。
3e)判断节点的级数是否等于1,如果等于,则将当前级子带之前的所有子带的节点总数累加,得到当前级节点的首地址;下一级节点的首地址为零;否则,当前级节点的首地址和下一级节点的首地址均为零。
3f)输出当前级节点和下一级节点的节点行数、节点列数和首地址,执行步骤(5)。
3g)将节点的级数加1,返回步骤3c)。
步骤4,寄存当前子带各级节点信息:将步骤(3)中的的当前级子带建树最高级数,每一级节点的行数和列数输入寄存器寄存。
当所有子带建树完成后,各级节点的信息也就完全寄存,这些信息传递给当前子带编码模块,在进行编码时不必再次计算这些信息,即节约了资源又提高了速度。而且,每一级建树都调用这个模块,实现了功能模块复用,节约了资源。
步骤5,判断当前子带建树是否完成
判断步骤(3)中节点的级数是否等于步骤3a)中得到的最高级数,如果相等,则执行步骤(7);否则,执行步骤(6)。
步骤6,当前级建树
6a)将步骤3f)输出的当前级节点和下一级节点的节点列数、首地址以及当前需要建树的节点的行坐标、列坐标通过地址计算公式得到当前需要建树的相邻2x2个节点的存储地址和下一级节点的存储地址。具体计算公式如下:
坐标为(i,j)的节点存储地址为:当前级节点首地址+i×cl+j;
坐标为(i,j+1)的节点存储地址为:当前级节点首地址+i×cl+j+1;
坐标为(i+1,j)的节点存储地址为:当前级节点首地址+i×cl+cl+j;
坐标为(i+1,j+1)的节点存储地址为:当前级节点首地址+i×cl+cl+j+1;
对应下一级节点存储地址为:下一级节点首地址+(i/2)×cl+1+j/2。
因为建树过程中将子带的各级父节点单独存储在不同的存储器中,所以各级父节点的节点首地址都为零。这样有利于简化地址计算过程,提高Tag-tree编码效率。
6b)比较当前需要建树的相邻2x2节点值的大小,从中选取一个最小值。
考虑到编码方法适用于各种大小的子带,子带的下边界和右边界可能存在相邻叶子节点不足4个的情况,增加判断条件会增加资源占用。所以对于下边界和右边界相邻叶子节点不足4个的情况,补充若干个节点使得相邻叶子节点的个数满足4个,补充节点的值与坐标为(i,j)节点的值相同。
6c)将最小值写入下一级节点的存储器。
6d)保持当前需要建树的节点的行坐标值不变,将列坐标值加2。
6e)判断当前需要建树的节点的列坐标值是否大于等于步骤3f)输出的当前级节点的列数,如果是,将当前需要建树的节点的行坐标值加2,列坐标值清零;否则,返回步骤6a)。
当j的值大于等于cl时,i=i+2,j=0;
当j的值小于cl时,i=i,j=j=2;
6f)判断当前需要建树的节点的行坐标值是否大于等于步骤3f)输出的当前级节点的行数,如果是,将当前需要建树的节点的行坐标值、列坐标值均清零,返回步骤3g);否则,返回步骤6a)。
步骤7,当前子带编码
7a)将当前级子带节点作为叶子节点,判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除,如果是,则将幂次值加1,得到叶子节点开始编码的级数;否则,执行步骤7b)。
7b)将幂次值减1,返回步骤7a),继续判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除。
如果i,j同时可以被2N整除,则叶子节点开始编码的级数K=N+1。其中,N的初始值为L-1。
编码所要取的节点按如下规则进行:
如果K≥2,则取得从PK直到P2共K-1个父节点的值和叶节点P1的值;
如果K=1,且当前子带第1级节点数目大于等于2,则取得父亲节点P2的值和叶子节点P1的值;
如果K=1,且当前子带第1级仅有一个节点,则取得叶子节点P1的值。
因为当前子带首节点编码时需要与初始值进行差值编码,所以对于首节点编码时,设置PK+1=0;当前子带其余节点编码时需要与上一级已编码父节点进行差值编码,所以编码时需要取得上一级节点Pk+1。
7c)将步骤(4)寄存的数据通过地址计算公式得到叶子节点的存储地址和对应的各级父节点的存储地址。
取得步骤(4)寄存的每一个子带各级节点的首地址、列数,再由当前节点的行坐标值和列坐标值,根据地址计算公式得到每一个节点的存储地址。
地址计算公式如下:
D=d+i×cl+j
其中,D为节点的存储地址,d为节点的首地址,i为节点的行坐标值,cl为节点列数,j为节点的列坐标值。
7d)将叶子节点的值和叶子节点对应的各级父节点的值从步骤(5)建立的Tag-tree节点树中取出,从最高级节点开始依次向低级节点进行差值编码。
根据步骤7e)得到的节点地址,在编码状态机中采用边取值边编码的方式进行编码,从需要编码的最高级节点开始依次向下进行差值编码,即两个相邻级节点的差值个0比特和1个1比特。每编码一位一位,编码有效比特位数值加1,直至编码到节点值为层数值的节点或者叶子节点。
7e)将编码结果和编码结果有效比特位数输入寄存器寄存。
7f)判断叶子节点的行坐标值、列坐标值是否分别等于叶子节点的行数、列数,如果是,当前子带编码完成,返回步骤(3)进行下一个子带的建树和编码;否则,执行步骤7g)。
当i=rl且j=cl时,当前子带编码完成,返回步骤3。
7g)判断叶子节点的列坐标值是否等于叶子节点的列数,如果是,叶子节点的行坐标值加1,列坐标值清零;否则,叶子节点的行坐标值不变,列坐标值加1。
当j值等于叶子节点列数目,i=i+1,j=0;
当j值小于叶子节点列数目,i=i,j=j+1。
7h)返回步骤7a),对下一个叶子节点进行编码。
步骤8,存储分离后的编码结果
对编码结果从高位到低位依次进行遍历,以第一个为0值的比特位作为分界,将第一个0比特位和之前的比特位个数作为第0层的分离结果,将编码结果有效比特位数与第0层分离结果的差值作为第1层的分离结果。将编码结果和分离结果输入寄存器寄存。
例如编码结果为00111011,有效比特位数为6,则索引位置为从低到高数第6个比特处,直到遇到第一个0比特,则第0层的分离结果为4,第二层的分离结果为2,最终输出编码结果为11101100,分离结果为100010。其中,前三个比特对应第0层,后三个比特对应第1层。如果编码结果为00011111,有效比特位数为6,则索引位置为从低到高数第6个比特处,分离结果为第0层为1,第二层为5,最终输出编码结果为01111100,分离结果为001101。
本发明的效果可以通过仿真与现有技术比较进一步说明。本发明的仿真是在Xilinx ISE 9.1集成开发软件环境中对规模4x4的Tag-tree采用Verilog HDL语言实现。综合结果和仿真结果如表1、表2所示。
表1本发明与现有技术的综合比较
从表1可以看出,本发明与现有技术“基于JPEG2000的Tag-tree编码方法”相比,在最高时钟频率上略有不足,在建树时钟数上多了4个时钟周期,但本发明可以支持不同分辨率的图像,编码时钟缩短了将近94个时钟周期,总时钟数与现有技术相比快了90个时钟,提高了Tag-tree的处理速度。
表2本发明与现有技术的综合比较
从表2可以看出,本发明与现有技术“TAGTREE编码器的VLSI设计方法相比”,在最高时钟频率、建树时钟数、编码时钟数、总时钟数上都有很大的提高,节省了整个算法的运行时间。
Claims (6)
1.一种JPEG2000的分辨率自适应节点树编码方法,包括如下步骤:
(1)用户根据工程需要将编码参数输入给输出节点信息模块;
(2)输出节点信息
2a)判断输出节点信息模块中编码参数的图像宽度是否超过工程允许的最大图像宽度,如果超过,则将图像中的节点宽度和高度分别定为64个像素点和16个像素点;否则,将图像中的节点宽度和高度均定为32个像素点;
2b)将输出节点信息模块中编码参数的图像宽度和图像高度分别取1/2组成第一级子带的宽度和高度;
2c)判断子带的级数是否等于1,如果等于,则将第一级子带的宽度和高度作为当前级子带的宽度和高度;否则,将步骤2f)寄存的下一级子带的宽度和高度作为当前级子带的宽度和高度;
2d)将当前级子带的宽度和高度分别除以图像中的节点宽度和高度,得到当前级子带的节点行数和列数,将当前级子带的节点行数乘以节点列数得到当前级子带的节点总数,输出当前级子带的节点行数、节点列数和节点总数;
2e)判断子带的级数是否等于输出节点信息模块中编码参数的小波变换级数,如果等于,则执行步骤(3);否则,执行步骤2f);
2f)将当前级子带的宽度和高度分别取1/2组成下一级子带的宽度和高度,将下一级子带的宽度和高度输入寄存器寄存;
2g)将子带的级数加1,返回步骤2c);
(3)控制循环
3a)对步骤2d)输出的当前级子带的节点行数、节点列数中的最大值取对数,得到当前级子带建树的最高级数;
3b)将节点的级数赋初值1;
3c)判断节点的级数是否等于1,如果等于,则将当前级子带的节点行数、节点列数作为当前级节点的节点行数、节点列数;否则,将步骤3d)寄存的下一级节点的节点行数、节点列数作为当前级节点的节点行数、节点列数;
3d)将当前级节点的节点行数、节点列数向右移一位,得到下一级节点的节点 行数、节点列数,将得到的下一级的节点行数、节点列数输入寄存器寄存;
3e)判断节点的级数是否等于1,如果等于,则将当前级子带之前的所有子带的节点总数累加,得到当前级节点的首地址;下一级节点的首地址为零;否则,当前级节点的首地址和下一级节点的首地址均为零;
3f)输出当前级节点和下一级节点的节点行数、节点列数和首地址,执行步骤(5);
3g)将节点的级数加1,返回步骤3c);
(4)寄存当前子带各级节点信息:将步骤(3)中的的当前级子带建树最高级数,每一级节点的行数和列数输入寄存器寄存;
(5)判断当前子带建树是否完成
判断步骤(3)中节点的级数是否等于步骤3a)中得到的最高级数,如果相等,则执行步骤(7);否则,执行步骤(6);
(6)当前级建树
6a)将步骤3f)输出的当前级节点和下一级节点的节点列数、首地址以及当前需要建树的节点的行坐标、列坐标通过地址计算公式得到当前需要建树的相邻2x2个节点的存储地址和下一级节点的存储地址;
6b)比较当前需要建树的相邻2x2节点值的大小,从中选取一个最小值;
6c)将最小值写入下一级节点的存储器;
6d)保持当前需要建树的节点的行坐标值不变,将列坐标值加2;
6e)判断当前需要建树的节点的列坐标值是否大于等于步骤3f)输出的当前级节点的列数,如果是,将当前需要建树的节点的行坐标值加2,列坐标值清零;否则,返回步骤6a);
6f)判断当前需要建树的节点的行坐标值是否大于等于步骤3f)输出的当前级节点的行数,如果是,将当前需要建树的节点的行坐标值、列坐标值均清零,返回步骤3g);否则,返回步骤6a);
(7)当前子带编码
7a)将当前级子带节点作为叶子节点,判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除,如果是,则将幂次值加1,得到叶子节点开始编码的级数;否则,执行步骤7b);
7b)将幂次值减1,返回步骤7a),继续判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除;
7c)将步骤(4)寄存的数据通过地址计算公式得到叶子节点的存储地址和对应的各级父节点的存储地址;
7d)将叶子节点的值和叶子节点对应的各级父节点的值从步骤(5)建立的Tag-tree节点树中取出,从最高级节点开始依次向低级节点进行差值编码,每编码一位,编码结果有效比特位数加1;
7e)将编码结果和编码结果有效比特位数输入寄存器寄存;
7f)判断叶子节点的行坐标值、列坐标值是否分别等于叶子节点的行数、列数,如果是,当前子带编码完成,返回步骤(3)进行下一个子带的建树和编码;否则,执行步骤7g);
7g)判断叶子节点的列坐标值是否等于叶子节点的列数,如果是,叶子节点的行坐标值加1,列坐标值清零;否则,叶子节点的行坐标值不变,列坐标值加1;
7h)返回步骤7a),对下一个叶子节点进行编码;
(8)存储分离后的编码结果
8a)对编码结果从高位到低位依次进行遍历,以第一个为0值的比特位作为分界,将第一个0比特位和之前的比特位个数作为第0层的分离结果,将编码结果有效比特位数与第0层分离结果的差值作为第1层的分离结果;
8b)将编码结果和分离结果输入寄存器寄存。
2.根据权利要求1所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于:步骤(1)中所述的编码参数包括小波变换级数、图像宽度、图像高度。
3.根据权利要求1所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于:步骤(1)中所述的工程允许的最大图像宽度为2048~4096个像素点。
4.根据权利要求1所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于:步骤5a),步骤7c)中的地址计算公式为:
D=d+i×cl+j
其中,D为节点的存储地址,d为节点的首地址,i为节点的行坐标值,cl为节点列数,j为节点的列坐标值。
5.根据权利要求1所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于:步骤6a)中所述的下一级存储器的首地址为零。
6.根据权利要求1所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于:步骤7a)中所述的幂次的初始值为步骤3a)得到的当前级子带建树的最高级数与1的差值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102023831A CN102724508A (zh) | 2012-06-07 | 2012-06-07 | Jpeg2000的分辨率自适应节点树编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102023831A CN102724508A (zh) | 2012-06-07 | 2012-06-07 | Jpeg2000的分辨率自适应节点树编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102724508A true CN102724508A (zh) | 2012-10-10 |
Family
ID=46950153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012102023831A Pending CN102724508A (zh) | 2012-06-07 | 2012-06-07 | Jpeg2000的分辨率自适应节点树编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724508A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608713A (zh) * | 2016-01-04 | 2016-05-25 | 湖南大学 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
CN108513130A (zh) * | 2017-12-29 | 2018-09-07 | 西安电子科技大学 | 一种Tag-Tree编码的实现系统及方法 |
CN108781293A (zh) * | 2016-03-21 | 2018-11-09 | 高通股份有限公司 | 使用两级多型树框架对视频数据进行译码 |
WO2020258188A1 (zh) * | 2019-06-27 | 2020-12-30 | 深圳市大疆创新科技有限公司 | 解码方法、解码器和解码系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1442807A (zh) * | 2003-04-07 | 2003-09-17 | 西安交通大学 | Tagtree编码器的vlsi设计方法 |
US20040042486A1 (en) * | 2002-07-18 | 2004-03-04 | Canon Kabushiki Kaisha | Method and device for transforming a digital signal |
US20080279463A1 (en) * | 2007-05-08 | 2008-11-13 | Sho Son | Image processing apparatus, image processing circuit, and image processing method |
CN101360242A (zh) * | 2008-09-22 | 2009-02-04 | 西安电子科技大学 | 基于JPEG2000的Tag-tree编码方法 |
-
2012
- 2012-06-07 CN CN2012102023831A patent/CN102724508A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040042486A1 (en) * | 2002-07-18 | 2004-03-04 | Canon Kabushiki Kaisha | Method and device for transforming a digital signal |
CN1442807A (zh) * | 2003-04-07 | 2003-09-17 | 西安交通大学 | Tagtree编码器的vlsi设计方法 |
US20080279463A1 (en) * | 2007-05-08 | 2008-11-13 | Sho Son | Image processing apparatus, image processing circuit, and image processing method |
CN101360242A (zh) * | 2008-09-22 | 2009-02-04 | 西安电子科技大学 | 基于JPEG2000的Tag-tree编码方法 |
Non-Patent Citations (2)
Title |
---|
吴宗泽等: "基于JPEG2000的TAGTREE编码算法分析及其FPGA实现", 《小型微型计算机系统》, vol. 26, no. 3, 21 March 2005 (2005-03-21), pages 478 - 481 * |
胡高军等: "JPEG2000中Tag-tree编码分析及实现", 《电视技术》, no. 10, 17 October 2004 (2004-10-17), pages 13 - 15 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608713A (zh) * | 2016-01-04 | 2016-05-25 | 湖南大学 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
CN105608713B (zh) * | 2016-01-04 | 2018-11-16 | 湖南大学 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
CN108781293A (zh) * | 2016-03-21 | 2018-11-09 | 高通股份有限公司 | 使用两级多型树框架对视频数据进行译码 |
CN108781293B (zh) * | 2016-03-21 | 2022-05-27 | 高通股份有限公司 | 使用两级多型树框架对视频数据进行译码 |
CN108781293B9 (zh) * | 2016-03-21 | 2023-10-13 | 高通股份有限公司 | 使用两级多型树框架对视频数据进行译码 |
CN108513130A (zh) * | 2017-12-29 | 2018-09-07 | 西安电子科技大学 | 一种Tag-Tree编码的实现系统及方法 |
WO2020258188A1 (zh) * | 2019-06-27 | 2020-12-30 | 深圳市大疆创新科技有限公司 | 解码方法、解码器和解码系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102687404B (zh) | 用于数据压缩的数据值出现信息 | |
CN104168085B (zh) | 一种基于冗余熵变换的数据压缩方法 | |
TWI338460B (en) | Method and apparatus for entropy coding and decoding | |
CN107565973B (zh) | 一种结点可扩展的哈夫曼编码的实现方法及电路结构 | |
CN107317586A (zh) | 熵编码设备和方法、熵解码设备和方法、及存储介质 | |
KR102233174B1 (ko) | 신경망 가속기 및 그것의 동작 방법 | |
CN102724508A (zh) | Jpeg2000的分辨率自适应节点树编码方法 | |
CN107341191A (zh) | 一种三维空间的多尺度整数化编码方法和装置 | |
US6919826B1 (en) | Systems and methods for efficient and compact encoding | |
CN101360242B (zh) | 基于JPEG2000的Tag-tree编码方法 | |
CN112332857B (zh) | 一种用于ldpc码的循环移位网络系统及循环移位方法 | |
CN100581253C (zh) | 用于解码比特流的装置和方法 | |
CN103973310A (zh) | 一种基于异或逻辑运算折半划分的测试数据压缩方法 | |
Chandrasekhar et al. | Compressing feature sets with digital search trees | |
CN105207793A (zh) | 一种树状拓扑结构中节点信息的获取方法和系统 | |
CN102651795B (zh) | 游长缩减的二元序列压缩编码方法 | |
CN108513130B (zh) | 一种Tag-Tree编码的实现系统及方法 | |
CN103401650A (zh) | 一种(n,1,m)有误码卷积码的盲识别方法 | |
CN103428502B (zh) | 一种解码方法及解码系统 | |
CN102547295B (zh) | 一种图像数据无损压缩的编码方法 | |
CN1349634A (zh) | 在数字系统中建立和实现子波滤波器的方法和装置 | |
CN102325252B (zh) | 基于最优小波包的联合信源信道编码方法及图像传输系统 | |
US20130222159A1 (en) | Entropy method of binary-ternary lossless data coding | |
CN114429200A (zh) | 规范化哈夫曼编解码方法及神经网络计算芯片 | |
CN100414996C (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121010 |