专利名称:Jpeg2000的分辨率自适应节点树编码方法
技术领域:
本发明属于图像处理技术领域,更进一步涉及符合JPEG2000标准的分辨率自适应节点树(Tag-tree)编码方法。本发明使用JPEG2000标准中的包含信息的Tag-tree编码方法对任意分辨率图像编码。本发明可用于各种数字图像芯片的压缩编码。
背景技术:
JPEG2000作为新一代静态压缩编码标准已被广泛应用到互联网、图像传输等多个领域。它采用了以小波变换为主的多解析编码方式。与目前被广泛应用的多级树集合分裂算法(SPIHT)相比,这种编码系统能在甚低比特率压缩时提供良好的率失真特性和主观视觉质量,此外这种系统还具有一系列其他优点和功能。它采用离散小波变换和率失真优化截取内嵌块编码(EBCOT)技术,其中小波变换和块编码技术提高了图像编码产生的码流的抗误码能力;而内嵌技术为灵活的码流控制提供了可能,即可以实现无损、有损图像压缩的兼容。在实现EBCOT时,各小波子带划分为更小的码块,如32X32,以码块为单位独立进行 编码并输出码流。对于所有码块产生的嵌入式位流,由率控制按照率失真最优原则分层组织,形成不同质量的层,对每一层,按照一定的码流格式打包,输出压缩码流。一个包由包头和包体组成,其中,包头由码块包含信息的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编码方法的适用范围更广,效率更高。为实现上述目的,本发明的方法包括如下步骤(I)用户根据工程需要将编码参数输入给输出节点信息模块。(2)输出节点信息2a)判断输出节点信息模块中编码参数的图像宽度是否超过工程允许的最大图像宽度,如果超过,则将图像中的节点宽度和高度分别定为64个像素点和16个像素点;否则,将图像中的节点宽度和高度均定为32个像素点;2b)将输出节点信息模块中编码参数的图像宽度和图像高度分别取1/2组成第一 级子带的宽度和高度;2c)判断子带的级数是否等于1,如果等于,则将第一级子带的宽度和高度作为当前级子带的宽度和高度;否则,将步骤2f)寄存的下一级子带的宽度和高度作为当前级子带的宽度和高度;2d)将当前级子带的宽度和高度分别除以图像中的节点宽度和高度,得到当前级子带的节点行数和列数,将当前级子带的节点行数乘以节点列数得到当前级子带的节点总数,输出当前级子带的节点行数、节点列数和节点总数;2e)判断子带的级数是否等于输出节点信息模块中编码参数的小波变换级数,如果等于,则执行步骤(3);否则,执行步骤2f);2f)将当前级子带的宽度和高度分别取1/2组成下一级子带的宽度和高度,将下一级子带的宽度和高度输入寄存器寄存;2g)将子带的级数加I,返回步骤2c)。(3)控制循环3a)对步骤2d)输出的当前级子带的节点行数、节点列数中的最大值取对数,得到当前级子带建树的最高级数;3b)将节点的级数赋初值I ;3c)判断节点的级数是否等于1,如果等于,则将当前级子带的节点行数、节点列数作为当前级节点的节点行数、节点列数;否则,将步骤3d)寄存的下一级节点的节点行数、节点列数作为当前级节点的节点行数、节点列数;3d)将当前级节点的节点行数、节点列数向右移一位,得到下一级节点的节点行数、节点列数,将得到的下一级的节点行数、节点列数输入寄存器寄存;3e)判断节点的级数是否等于1,如果等于,则将当前级子带之前的所有子带的节点总数累加,得到当前级节点的首地址;下一级节点的首地址为零;否则,当前级节点的首地址和下一级节点的首地址均为零;3f)输出当前级节点和下一级节点的节点行数、节点列数和首地址,执行步骤
(5);3g)将节点的级数加I,返回步骤3c)。(4)寄存当前子带各级节点信息将步骤(3)中的的当前级子带建树最高级数,每一级节点的行数和列数输入寄存器寄存。
(5)判断当前子带建树是否完成判断步骤(3)中节点的级数是否等于步骤3a)中得到的最高级数,如果相等,则执行步骤⑵;否则,执行步骤(6)。(6)当前级建树6a)将步骤3f)输出的当前级节点和下一级节点的节点列数、首地址以及当前需要建树的节点的行坐标、列坐标通过地址计算公式得到当前需要建树的相邻2x2个节点的存储地址和下一级节点的存储地址;6b)比较当前需要建树的相邻2x2节点值的大小,从中选取一个最小值;6c)将最小值写入下一级节点的存储器;6d)保持当前需要建树的节点的行坐标值不变,将列坐标值加2 ;
6e)判断当前需要建树的节点的列坐标值是否大于等于步骤3f)输出的当前级节点的列数,如果是,将当前需要建树的节点的行坐标值加2,列坐标值清零;否则,返回步骤6a);6f)判断当前需要建树的节点的行坐标值是否大于等于步骤3f)输出的当前级节点的行数,如果是,将当前需要建树的节点的行坐标值、列坐标值均清零,返回步骤3g);否贝U,返回步骤6a)。(7)当前子带编码7a)将当前级子带节点作为叶子节点,判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除,如果是,则将幂次值加1,得到叶子节点开始编码的级数;否则,执行步骤 7b);7b)将幂次值减1,返回步骤7a),继续判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除;7c)将步骤(4)寄存的数据通过地址计算公式得到叶子节点的存储地址和对应的各级父节点的存储地址;7d)将叶子节点的值和叶子节点对应的各级父节点的值从步骤(5)建立的Tag-tree节点树中取出,从最高级节点开始依次向低级节点进行差值编码,每编码一位,编码结果有效比特位数加I ;7e)将编码结果和编码结果有效比特位数输入寄存器寄存;If)判断叶子节点的行坐标值、列坐标值是否分别等于叶子节点的行数、列数,如果是,当前子带编码完成,返回步骤(3)进行下一个子带的建树和编码;否则,执行步骤7g);7g)判断叶子节点的列坐标值是否等于叶子节点的列数,如果是,叶子节点的行坐标值加1,列坐标值清零;否则,叶子节点的行坐标值不变,列坐标值加I ;7h)返回步骤7a),对下一个叶子节点进行编码。(8)存储分离后的编码结果8a)对编码结果从高位到低位依次进行遍历,以第一个为0值的比特位作为分界,将第一个0比特位和之前的比特位个数作为第0层的分离结果,将编码结果有效比特位数与第0层分离结果的差值作为第I层的分离结果;8b)将编码结果和分离结果输入寄存器寄存。
本发明与现有技术相比具有以下优点第一,本发明适用一定规模内任意分辨率图像的Tag-tree编码,克服了现有技术中只能适用固定分辨率图像的Tag-tree编码方法,使得本发明的适用范围更广。第二,本发明对JPEG2000压缩标准中设定的分层数没有限制,可以实现任意层数下的Tag-tree编码,使得本发明的适用范围更广。第三,本发明每个子带只需计算叶子节点的首地址,其余节点的首地址均为零,克服了现有技术中地址计算方法过于复杂的缺点,使得本发明的编码速度比现有技术更快。第四,本发明由叶子节点中需要编码的节点坐标值计算开始编码的级数,从而取出和此节点编码相关的节点值,克服了现有技术中采用标记节点是否已经编码而浪费时钟资源的缺点,使得本发明的编码效率更高。
图I为本发明的流程图。
具体实施例方式下面结合附图I对本发明的实现步骤做详细的描述。步骤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处理时,低频子带的数值比高频子带的数值大I。对子带的宽度和高度分别除以图像中节点的宽度和高度得到的结果取整。由于码块宽度和高度均为2的幂次,所以除法可用移位实现,同样对图像的宽度和高度取1/2处理时也用移位实现。2g)将子带的级数加I,返回步骤2c)。步骤3,控制循环3a)对步骤2d)输出的当前级子带的节点行数、节点列数中的最大值取对数,得到当前级子带建树的最高级数。具体方法如下当2n_1+1 ( Iiiaxlr1, cj ( 2n(N彡2)时,当前子带节点树最高级数L = N+1 ;当I彡Iiiaxlr1, cj彡2时,当前子带节点树最高级数L = 2。
3b)将节点的级数赋初值I。3c)判断节点的级数是否等于1,如果等于,则将当前级子带的节点行数、节点列数作为当前级节点的节点行数、节点列数;否则,将步骤3d)寄存的下一级节点的节点行数、节点列数作为当前级节点的节点行数、节点列数。3d)将当前级节点的节点行数、节点列数向右移一位,得到下一级节点的节点行数、节点列数,将得到的下一级的节点行数、节点列数输入寄存器寄存。具体方法如下当rx 为奇数,r1+1 = (^+1)/2,当 rx 为偶数,r1+1 = 1^/2,其中 I 彡 I 彡 L-1 ;当C1 为奇数,c1+1 = (¢!+1)/2,当 C1 为偶数,c1+1 = q/2,其中 I 彡 I 彡 L-1 ;其中,rx, C1分别为当前级节点的节点行数和列数,r1+1, c1+1分别为下一级节点的节点行数和列数。3e)判断节点的级数是否等于1,如果等于,则将当前级子带之前的所有子带的节点总数累加,得到当前级节点的首地址;下一级节点的首地址为零;否则,当前级节点的首地址和下一级节点的首地址均为零。3f)输出当前级节点和下一级节点的节点行数、节点列数和首地址,执行步骤
(5)。3g)将节点的级数加I,返回步骤3c)。步骤4,寄存当前子带各级节点信息将步骤(3)中的的当前级子带建树最高级数,每一级节点的行数和列数输入寄存器寄存。当所有子带建树完成后,各级节点的信息也就完全寄存,这些信息传递给当前子带编码模块,在进行编码时不必再次计算这些信息,即节约了资源又提高了速度。而且,每一级建树都调用这个模块,实现了功能模块复用,节约了资源。步骤5,判断当前子带建树是否完成判断步骤(3)中节点的级数是否等于步骤3a)中得到的最高级数,如果相等,则执行步骤⑵;否则,执行步骤(6)。步骤6,当前级建树6a)将步骤3f)输出的当前级节点和下一级节点的节点列数、首地址以及当前需要建树的节点的行坐标、列坐标通过地址计算公式得到当前需要建树的相邻2x2个节点的存储地址和下一级节点的存储地址。具体计算公式如下坐标为(i, j)的节点存储地址为当前级节点首地址+iXcfj ;坐标为(i,j+1)的节点存储地址为当前级节点首地址+iXCl+j+l ;
坐标为(i + 1,j)的节点存储地址为当前级节点首地址+iXCl+Cl+j ;坐标为(i + 1,j + 1)的节点存储地址为当前级节点首地址+iXCl+Cl+j + l ;对应下一级节点存储地址为下一级节点首地址+ (i/2) Xc1+1+j/2。因为建树过程中将子带的各级父节点单独存储在不同的存储器中,所以各级父节点的节点首地址都为零。这样有利于简化地址计算过程,提高Tag-tree编码效率。6b)比较当前需要建树的相邻2x2节点值的大小,从中选取一个最小值。考虑到编码方法适用于各种大小的子带,子带的下边界和右边界可能存在相邻叶子节点不足4个的情况,增加判断条件会增加资源占用。所以对于下边界和右边界相邻叶子节点不足4个的情况,补充若干个节点使得相邻叶子节点的个数满足4个,补充节点的值与坐标为(i,j)节点的值相同。
6c)将最小值写入下一级节点的存储器。6d)保持当前需要建树的节点的行坐标值不变,将列坐标值加2。6e)判断当前需要建树的节点的列坐标值是否大于等于步骤3f)输出的当前级节点的列数,如果是,将当前需要建树的节点的行坐标值加2,列坐标值清零;否则,返回步骤6a)。当j的值大于等于C1时,i = i+2, j = 0 ;当j 的值小于 C1 时,i = i, j = j = 2 ;6f)判断当前需要建树的节点的行坐标值是否大于等于步骤3f)输出的当前级节点的行数,如果是,将当前需要建树的节点的行坐标值、列坐标值均清零,返回步骤3g);否贝U,返回步骤6a)。步骤7,当前子带编码7a)将当前级子带节点作为叶子节点,判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除,如果是,则将幂次值加1,得到叶子节点开始编码的级数;否则,执行步骤 7b)。7b)将幂次值减1,返回步骤7a),继续判断叶子节点的行坐标值、列坐标值是否同时被2的幂次整除。如果i,j同时可以被2N整除,则叶子节点开始编码的级数K = N+1。其中,N的初始值为L-I。编码所要取的节点按如下规则进行如果K彡2,则取得从Pk直到P2共K-I个父节点的值和叶节点P1的值;如果K = 1,且当前子带第I级节点数目大于等于2,则取得父亲节点P2的值和叶子节点P1的值;如果K = 1,且当前子带第I级仅有一个节点,则取得叶子节点P1的值。因为当前子带首节点编码时需要与初始值进行差值编码,所以对于首节点编码时,设置PK+1 = 0 ;当前子带其余节点编码时需要与上一级已编码父节点进行差值编码,所以编码时需要取得上一级节点Pk+1。7c)将步骤(4)寄存的数据通过地址计算公式得到叶子节点的存储地址和对应的各级父节点的存储地址。取得步骤(4)寄存的每一个子带各级节点的首地址、列数,再由当前节点的行坐标值和列坐标值,根据地址计算公式得到每一个节点的存储地址。地址计算公式如下D = d+i X c^j其中,D为节点的存储地址,d为节点的首地址,i为节点的行坐标值,C1为节点列数,j为节点的列坐标值。 7d)将叶子节点的值和叶子节点对应的各级父节点的值从步骤(5)建立的Tag-tree节点树中取出,从最高级节点开始依次向低级节点进行差值编码。根据步骤7e)得到的节点地址,在编码状态机中采用边取值边编码的方式进行编码,从需要编码的最高级节点开始依次向下进行差值编码,即两个相邻级节点的差值个0比特和I个I比特。每编码一位一位,编码有效比特位数值加1,直至编码到节点值为层数值的节点或者叶子节点。7e)将编码结果和编码结果有效比特位数输入寄存器寄存。7f)判断叶子节点的行坐标值、列坐标值是否分别等于叶子节点的行数、列数,如果是,当前子带编码完成,返回步骤(3)进行下一个子带的建树和编码;否则,执行步骤7g)。当i = !T1且j = C1时,当前子带编码完成,返回步骤3。7g)判断叶子节点的列坐标值是否等于叶子节点的列数,如果是,叶子节点的行坐标值加1,列坐标值清零;否则,叶子节点的行坐标值不变,列坐标值加I。当j值等于叶子节点列数目,i = i+1,j = 0 ;当j值小于叶子节点列数目,i = i,j = j + 1。7h)返回步骤7a),对下一个叶子节点进行编码。步骤8,存储分离后的编码结果对编码结果从高位到低位依次进行遍历,以第一个为0值的比特位作为分界,将第一个0比特位和之前的比特位个数作为第0层的分离结果,将编码结果有效比特位数与第0层分离结果的差值作为第I层的分离结果。将编码结果和分离结果输入寄存器寄存。例如编码结果为00111011,有效比特位数为6,则索引位置为从低到高数第6个比特处,直到遇到第一个0比特,则第0层的分离结果为4,第二层的分离结果为2,最终输出编码结果为11101100,分离结果为100010。其中,前三个比特对应第0层,后三个比特对应第I层。如果编码结果为00011111,有效比特位数为6,则索引位置为从低到高数第6个比特处,分离结果为第0层为1,第二层为5,最终输出编码结果为01111100,分离结果为001101。本发明的效果可以通过仿真与现有技术比较进一步说明。本发明的仿真是在Xilinx ISE 9. I集成开发软件环境中对规模4x4的Tag-tree采用Verilog HDL语言实现。综合结果和仿真结果如表I、表2所示。表I本发明与现有技术的综合比较
权利要求
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)将节点的级数赋初值I ; .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节点树中取出,从最高级节点开始依次向低级节点进行差值编码,每编码一位,编码结果有效比特位数加I ; 7e)将编码结果和编码结果有效比特位数输入寄存器寄存; If)判断叶子节点的行坐标值、列坐标值是否分别等于叶子节点的行数、列数,如果是,当前子带编码完成,返回步骤(3)进行下一个子带的建树和编码;否则,执行步骤7g); 7g)判断叶子节点的列坐标值是否等于叶子节点的列数,如果是,叶子节点的行坐标值加1,列坐标值清零;否则,叶子节点的行坐标值不变,列坐标值加I ; 7h)返回步骤7a),对下一个叶子节点进行编码; (8)存储分离后的编码结果 8a)对编码结果从高位到低位依次进行遍历,以第一个为O值的比特位作为分界,将第一个O比特位和之前的比特位个数作为第O层的分离结果,将编码结果有效比特位数与第O层分离结果的差值作为第I层的分离结果; Sb)将编码结果和分离结果输入寄存器寄存。
2.根据权利要求I所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于步骤⑴中所述的编码参数包括小波变换级数、图像宽度、图像高度。
3.根据权利要求I所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于步骤(I)中所述的工程允许的最大图像宽度为2048 4096个像素点。
4.根据权利要求I所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于步骤5a),步骤7c)中的地址计算公式为D = d+i X C1+j 其中,D为节点的存储地址,d为节点的首地址,i为节点的行坐标值,C1为节点列数,j为节点的列坐标值。
5.根据权利要求I所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于步骤6a)中所述的下一级存储器的首地址为零。
6.根据权利要求I所述的JPEG2000的分辨率自适应节点树编码方法,其特征在于步骤7a)中所述的幂次的初始值为步骤3a)得到的当前级子带建树的最高级数与I的差值。
全文摘要
本发明公开了一种JPEG2000的分辨率自适应节点树编码方法,具体步骤包括(1)输入编码参数;(2)输出码块信息;(3)控制循环;(4)寄存当前子带各级节点信息;(5)判断当前子带建树是否完成;(6)当前级建树;(7)当前子带编码;(8)存储分离后的编码结果。本发明自适应一定规模内任意分辨率图像的压缩编码,在建树过程中使用各级父节点单独存储的方式,在编码时使用由叶子节点的坐标值计算开始编码的级数,简化了地址计算方法,克服了标记节点是否编码而浪费时钟资源的缺点,使得编码效率得到了提高。本发明可用于各种数字图像芯片的压缩编码。
文档编号H04N7/26GK102724508SQ20121020238
公开日2012年10月10日 申请日期2012年6月7日 优先权日2012年6月7日
发明者刘凯, 姚银琪, 宋长贺, 李云松, 李志彦, 王柯俨, 雷杰 申请人:西安电子科技大学