CN1187699C - Tagtree编码器的vlsi设计方法 - Google Patents
Tagtree编码器的vlsi设计方法 Download PDFInfo
- Publication number
- CN1187699C CN1187699C CNB031146031A CN03114603A CN1187699C CN 1187699 C CN1187699 C CN 1187699C CN B031146031 A CNB031146031 A CN B031146031A CN 03114603 A CN03114603 A CN 03114603A CN 1187699 C CN1187699 C CN 1187699C
- Authority
- CN
- China
- Prior art keywords
- node
- tagtree
- coding
- low
- value
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种JPEG2000的TAGTREE编码器的VLSI设计方法,它能有效地将算术编码后码流各自所在的层和位平面信息编码到包头中。采用了固定子父节点的访问关系,简化了地址发生器的设计,同时根据无效位平面和包含信息两种TAGTREE的不同特点,设计两个不同的TAGTREE编码器在必要的时候并行进行编码。通过Verilog仿真结果证实:这种设计方法简化了地址发生器的设计,而存储空间并没有增加,两种TAGTREE编码器也能进行有效的编码。
Description
技术领域
本发明属于VLSI设计技术领域。涉及一种编码器的设计方法,进一步涉及在JPEG2000硬件实现中采用VLSI设计一种高效的TAGTREE编码器。
背景技术
在很多实际系统中,如数码相机,可视电话,便携式摄像机以及掌上电脑等,考虑到速度和面积的要求,需要用芯片实现高速的图像压缩系统。JPEG2000是新一代图像压缩标准,DSP Works Inc研制了最完整实现JPEG2000图像压缩功能的专用芯片,但是其内核并没有公布。TAGTREE编码器是JPEG2000的Tier2编码中核心部分之一,它对解码码流的定位起着决定性的作用。但是,从现有的文献来看,还没有公开的TAGTREE编码器的硬件实现体系结构和实现方法。
发明内容
本发明的目的在于,提供一种采用VLSI设计的TAGTREE编码器,来实现JPEG2000中无效位平面(zero bit plane)和包含信息(inclusioninformation)TAGTREE编码。
实现上述发明目的的解决方案是,一种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;
其中,在步骤2,对于包含信息平面TAGTREE编码,low赋值成0和当前节点low两者的较大值,而对于无效位平面TAGTREE编码,如果当前编码节点是根结点时low赋值成0,否则赋值成父节点的value;在步骤3,对于包含信息平面TAGTREE编码,阈值赋成当前打包层序号,而对于无效位平面TAGTREE编码,阈值赋成当前节点的value;在步骤7,对于包含信息TAGTREE编码需要对当前编码节点的low进行保存,而对于无效位平面TAGTREE编码则无需保存。
TAGTREE针对两种不同的TAGTREE编码方式和编码时机都有所不同,在此可以设计出两种不同的TAGTREE,在很大程度上两个TAGTREE编码器可以进行实时并行编码。
附图说明
图1为无效位平面tagtree的建立过程示意图;
图2为TAGTREE节点存储示意图;图中的箭头表示子父节点的对应关系;
图3为TAGTREE存储空间的分配示意图;
图4为地址发生器示意图;
图5为TAGTREE编码器编码流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。本实施例通过一个4×4码块的区域来进行说明,对于更大规模的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+finitagaddr
fnodaddr是父节点的地址,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<门限”比较;若是,则进入“LOW>=节点value”判断,判定结果若是,继续进行“节点是否编码”判断,是,则使“节点LOW=LOW”,若否,即向码流中写1设置节点已编码并返回“LOW<门限”比较。“LOW>=节点value”判断为否,则往码流中写0,LOW=LOW+1,同样返回“LOW<门限”比较。若判定为是,则直接将“节点LOW=LOW”;在“LOW<门限”比较中,若否,则直接将节点LOW=LOW;再进行搜索到子节点比较,若是,则返回;若否,则沿搜索反方向搜索下一个节点。在流程图中,节点信息的存储如图3所示,known表示节点被编码。
Claims (1)
1.一种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;
其中,在步骤2,对于包含信息平面TAGTREE编码,low赋值成0和当前节点low两者的较大值,而对于无效位平面TAGTREE编码,如果当前编码节点是根结点时low赋值成0,否则赋值成父节点的value;在步骤3,对于包含信息平面TAGTREE编码,阈值赋成当前打包层序号,而对于无效位平面TAGTREE编码,阈值赋成当前节点的value;在步骤7,对于包含信息TAGTREE编码需要对当前编码节点的low进行保存,而对于无效位平面TAGTREE编码则无需保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031146031A CN1187699C (zh) | 2003-04-07 | 2003-04-07 | Tagtree编码器的vlsi设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031146031A CN1187699C (zh) | 2003-04-07 | 2003-04-07 | Tagtree编码器的vlsi设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1442807A CN1442807A (zh) | 2003-09-17 |
CN1187699C true CN1187699C (zh) | 2005-02-02 |
Family
ID=27797036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031146031A Expired - Fee Related CN1187699C (zh) | 2003-04-07 | 2003-04-07 | Tagtree编码器的vlsi设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1187699C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360242B (zh) * | 2008-09-22 | 2010-06-02 | 西安电子科技大学 | 基于JPEG2000的Tag-tree编码方法 |
CN102724508A (zh) * | 2012-06-07 | 2012-10-10 | 西安电子科技大学 | Jpeg2000的分辨率自适应节点树编码方法 |
CN111699687A (zh) * | 2019-06-27 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 编码方法、编码器和编码系统 |
-
2003
- 2003-04-07 CN CNB031146031A patent/CN1187699C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1442807A (zh) | 2003-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1258921C (zh) | 分布式视频点播系统及其实现数据存储和访问的方法 | |
CN1183683C (zh) | 使用前缀预测的位自适应编码方法 | |
CN101079154A (zh) | 一种角色动画实现方法及系统 | |
CN1574024A (zh) | 用于存储数据信号的编码方式 | |
CN1742489A (zh) | 活动图像的编码方法 | |
CN1853170A (zh) | 压缩高速缓存内数据的机制 | |
CN111985456B (zh) | 视频实时识别分割及检测架构 | |
CN1187717C (zh) | 三维对象形变信息的编码方法和装置 | |
CN1105454C (zh) | 对多个连续接收的数据元素重新排序的装置和方法 | |
CN1051633A (zh) | 目标识别系统 | |
CN101075239A (zh) | 一种复合搜索方法和系统 | |
CN1187699C (zh) | Tagtree编码器的vlsi设计方法 | |
CN1920796A (zh) | 用于将文件的数据存储在存储块中的高速缓存方法及系统 | |
CN1702659A (zh) | 基于知识产权的大型集成电路设计系统及设计方法 | |
CN1119811C (zh) | 优先编码器及优先编码方法 | |
CN1889080A (zh) | 一种用于检索字符串的方法 | |
CN101060337A (zh) | 一种优化的霍夫曼解码方法和装置 | |
CN1210429A (zh) | 编码二进制形状信号的方法 | |
CN1255770C (zh) | 基于数字信号处理器的层次树集合划分图像编解码方法 | |
CN1713369A (zh) | 用于半导体集成器件的设计方法、设计程序和存储介质 | |
CN100336392C (zh) | 一种机顶盒的数据存储管理方法 | |
CN1483382A (zh) | 针对原始ct图像数据的压缩方法 | |
CN1520042A (zh) | 记录压缩编码表于虚拟只读存储器的方法及装置 | |
CN1073262C (zh) | 应用线性变换进行图象处理的并行存储装置 | |
CN1271864C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050202 Termination date: 20120407 |