TAGTREE编码器的VLSI设计方法技术

技术编号:2876199 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种JPEG2000的TAGTREE编码器的VLSI设计方法,它能有效地将算术编码后码流各自所在的层和位平面信息编码到包头中。采用了固定子父节点的访问关系,简化了地址发生器的设计,同时根据无效位平面和包含信息两种TAGTREE的不同特点,设计两个不同的TAGTREE编码器在必要的时候并行进行编码。通过Verilog仿真结果证实:这种设计方法简化了地址发生器的设计,而存储空间并没有增加,两种TAGTREE编码器也能进行有效的编码。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术属于VLSI设计
涉及一种编码器的设计方法,进一步涉及在JPEG2000硬件实现中采用VLSI设计一种高效的TAGTREE编码器。实现上述专利技术目的的解决方案是,一种TAGTREE编码器的VLSI设计方法,包括TAGTREE存储空间的管理、地址发生器、无效位平面和包含信息TAGTREE编码的VLSI设计1)TAGTREE存储空间的管理采用固定存储空间和固定子父节点对应关系,在固定存储器中,将子节点和父节点之间的映射关系,通过存储器及之间的映射关系来表示。TAGTREE存储一个或者两个属于同一个父节点的叶节点时,取其中的最小值与父节点的值比较,取其最小值刷新父节点,直到根节点或者父节点值大于或者等于上一级节点值;2)地址发生器设计地址发生器采用移位寄存器和加法器完成子节点到父节点的地址映射操作,其地址映射关系如下fnodaddr=(fivcblk<<level)+fihcblk+finitagaddrfnodaddr是父节点的地址,finitagaddr是父节点的其实地址;(fihcblk,fivcblk)是父节点在当前TAGTREE level级上的位置;(fihcblk,fivcblk)为子节点的位置(ihcblk,ivcblk)的两个分量右移一位得到;父节点的起始地址等于子节点的起始地址加上当前层level的最大节点数2(2×level);3)TAGTREE编码的VLSI设计编码流程步骤1.搜索开始编码的节点;步骤2.给编码下限值(后称low)赋值;步骤3. 如果low<阈值并且low<当前节点的值(后称value),进入到步骤4;如果low<阈值并且low>=value,进入步骤5;否则进入步骤7;步骤4.往码流中写入0,low加1;进入步骤6;步骤5.往码流中写入1,值当前节点相关TAGTREE信息的已经编码标志位(称为known)置1;进入步骤6;步骤6.等待TAGTREE编码写入完全码流;如果完全写入则进入步骤3;步骤7.判断是否到叶节点,如果到叶节点,则状态返回到步骤1,推出前叶节点的TAGTREE编码,若没有则进入步骤2;对于无效位平面和包含信息这两个不同的TAGTREE编码的主要差别在于1)在步骤2,low的赋值不同,对于包含信息平面TAGTREE编码,步骤2的low赋值成0和当前节点low两者的较大值,而对于无效位平面TAGTREE编码,如果当前编码节点是根结点时low赋值成0,否则赋值成父节点的value;2)在步骤3,阈值取法不同,对于包含信息平面TAGTREE编码,阈值赋成当前打包层序号,而对于无效位平面TAGTREE编码,阈值赋成当前节点的value;3)在步骤7,对于包含信息TAGTREE编码需要对当前编码节点的low进行保存,而对于无效位平面TAGTREE编码则无需保存。TAGTREE针对两种不同的TAGTREE编码方式和编码时机都有所不同,在此可以设计出两种不同的TAGTREE,在很大程度上两个TAGTREE编码器可以进行实时并行编码。本专利技术主要包括TAGTREE存储空间的管理和地址发生以及TAGTREE编码的VLSI设计。1)叶节点信息按照编码的顺序实时建立TAGTREE;2)地址发生器;3)TAGTREE编码器;经过JPEG2000算术编码后的码流,每一个码块的无效位平面(或称0位平面)信息需要在内存空间的存储,在此采用一种固定存储空间和固定子父节点的对应关系的存储结构,同时在存储叶节点之后实时刷新其父节点,这样避免多次遍历TAGTREE导致实时性下降。采用上述的存储结构之后,地址发生器只需要作简单的加法和逻辑运算即可完成父节点的寻址,减小了地址发生器的复杂度。TAGTREE信息的存储和父节点的实时刷新。对于包含信息的编码只是进行打包的时候,如果当前码块前面未被包含过,此时将打包当前层作为当前码块的包含信息进行TAGTREE编码,因此无需存储包含信息。这样在进行码块组织的时候,需要将码块的无效位平面信息进行保存,此时采用一种固定存储空间和固定子父节点对应关系的方法进行无效位平面的存储,同时在存储叶节点信息的同时进行父节点刷新。附图说明图1表示一个4×4区域的无效位平面TAGTREE的建立过程。图中最左边是经过码块扫描以后的叶节点无效位平面信息(如图2,存储在相应的位置);在向内存中存入第一、二个码块的信息1、3,同时刷新父节点(初始的时候整个树上节点的值设置成一个最大值),即是取两者小值1,与父节点比较刷新父节点为1,同时再与向上一层的父节点进行比较刷新,这样根结点就刷新成1。同样的办法就可以将整个树建立起来。图2表示图1所示的TAGTREE信息的存储器分配及其子父节点的对应关系。它们之间的子父节点的对应关系由TAGTREE编码的地址发生器(图4)产生。从图4中我们可以看出,由于固定存储空间固定子父节点位置关系,这样就使得地址发生器变得相对简单,而且资源消耗也相对较少。其子节点和父节点的地址映射关系如下fnodaddr=(fivcblk<<level)+fihcblk+finitagaddrfnodaddr是父节点的地址,finitagaddr是父节点的其实地址;(fihcblk,fivcblk)是父节点在当前TAGTREE level级上的位置。(fihcblk,fivcblk)为子节点的位置(ihcblk,ivcblk)的两个分量右移一位得到,即(fihcblk,fivcblk)=(ihcblk>>1,ivcblk>>1);父节点的起始地址等于子节点的起始地址加上当前level的最大节点数(1<<(2*level)),即finitagaddr=initagaddr+(1<<(2*level));3)TAGTREE编码的VLSI设计编码流程(状态机)A)搜索开始编码的节点。B)给low赋值。C)如果low<阈值并且low<value,进入D状态;如果low<阈值且low>=value进入E状态;否则进入G状态;D)往码流中写入0,low加1;进入F状态;E)往码流中写入1,值当前节点相关TAGTREE信息的known为1;进入F状态;F)等待状态,等待TAGTREE编码写入完全码流;如果完全写入进入C状态;G)判断是否到叶节点,如果到叶节点,则状态返回到A,推出前叶节点的TAGTREE编码,若没有则进入B状态;对于两个不同的TAGTREE编码的的不同在于B状态和C状态。对于包含信息平面TAGTREE编码,B状态的low赋值成0和当前节点low的较大值,而对于无效位平面TAGTREE编码,B状态时如果编码节点是根结点时low赋值成0,否则赋值成父节点的value。对于C状态,阈值取法不同,包含信息平面TAGTREE编码,C状态的thresh赋值成当前打包层,而对于无效位平面TAGTREE编码,C状态的thresh赋值成当前节点的value。另外对于包含信息TAGTREE编码,在状态G需要对当前编码节点的low进行保存。编码的总体流程参见附图5。首先设置“搜索根或者已经编码的节点”,接下来赋值LOW=0,对“LOW>节点LOW”进行判断,若是,使节点LOW=LOW,否,则使“LOW=节点LOW”;然后进入“LOW<门限”比较;若本文档来自技高网...

【技术保护点】
一种TAGTREE编码器的VLSI设计方法,包括TAGTREE存储空间的管理、地址发生器、无效位平面和包含信息TAGTREE编码的VLSI设计: 1)TAGTREE存储空间的管理 采用固定存储空间和固定子父节点对应关系,在固定存储器中,将子节点和父节点之间的映射关系,通过存储器及之间的映射关系来表示。TAGTREE存储一个或者两个属于同一个父节点的叶节点时,取其中的最小值与父节点的值比较,取其最小值刷新父节点,直到根节点或者父节点值大于或者等于上一级节点值; 2)地址发生器设计 地址发生器采用移位寄存器和加法器完成子节点到父节点的地址映射操作,其地址映射关系如下: fnodaddr=(fivcblk〈〈level)+fihcblk+finitagaddr fnodaddr是父节点的地址,finitagaddr是父节点的其实地址;(fihcblk,fivcblk)是父节点在当前TAGTREE level级上的位置; (fihcblk,fivcblk)为子节点的位置(ihcblk,ivcblk)的两个分量右移一位得到; 父节点的起始地址等于子节点的起始地址加上当前层level的最大节点数2↑[(2×level)]; 3)TAGTREE编码的VLSI设计 编码流程: 步骤1.搜索开始编码的节点; 步骤2.给编码下限值(后称:low)赋值; 步骤3.如果low〈阈值并且low〈当前节点的值(后称:value),进入到步骤4;如果low〈阈值并且low〉=value,进入步骤5;否则进入步骤7; 步骤4.往码流中写入0,low加1;进入步骤6; 步骤5.往码流中写入1,值当前节点相关TAGTREE信息的已经编码标志位(称为:known)置1;进入步骤6; 步骤6.等待TAGTREE编码写入完全码流;如果完全写入则进入步骤3; 步骤7.判断是否到叶节点,如果到叶节点,则状态返回到步骤1,推出前叶节点的TAGTREE编码,若没有则进入步骤2; 对于无效位平面和包含信息这两个不同的TAGTREE编码的主要差别在于: 1)在步骤2,low的赋值不同,对于包含信息平面TAGTREE编码,步骤2的low赋值成0和当前节点low两者的较大值,而对于无效位平面TAGTREE编码,如果当前编码节点是根结点时low赋值成0,否则赋值成父节点的value; 2)在步骤3,阈值取法不同,对于包含信息平面T...

【技术特征摘要】

【专利技术属性】
技术研发人员:吴宗泽郑南宁吴勇朱悦心
申请(专利权)人:西安交通大学
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1