CN1442807A - Tagtree编码器的vlsi设计方法 - Google Patents
Tagtree编码器的vlsi设计方法 Download PDFInfo
- Publication number
- CN1442807A CN1442807A CN 03114603 CN03114603A CN1442807A CN 1442807 A CN1442807 A CN 1442807A CN 03114603 CN03114603 CN 03114603 CN 03114603 A CN03114603 A CN 03114603A CN 1442807 A CN1442807 A CN 1442807A
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
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;
对于无效位平面和包含信息这两个不同的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编码器可以进行实时并行编码。
四、附图说明
图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+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,阈值取法不同,对于包含信息平面TAGTREE编码,阈值赋成当前打包层序号,而对于无效位平面TAGTREE编码,阈值赋成当前节点的value;
3)在步骤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 true CN1442807A (zh) | 2003-09-17 |
CN1187699C 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) |
Cited By (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
Cited By (4)
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 | 深圳市大疆创新科技有限公司 | 编码方法、编码器和编码*** |
WO2020258189A1 (zh) * | 2019-06-27 | 2020-12-30 | 深圳市大疆创新科技有限公司 | 编码方法、编码器和编码*** |
Also Published As
Publication number | Publication date |
---|---|
CN1187699C (zh) | 2005-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1761322A (zh) | 选择参考图像的方法 | |
CN1664790A (zh) | 增加数据存储容量的方法和装置 | |
CN111985456B (zh) | 视频实时识别分割及检测架构 | |
CN1306412C (zh) | 像素数据块生成装置及像素数据块生成方法 | |
CN1853170A (zh) | 压缩高速缓存内数据的机制 | |
CN101034372A (zh) | 非易失存储***和非易失存储器的管理方法 | |
CN101938325A (zh) | 有限长度循环缓存速率匹配的解速率匹配方法和装置 | |
CN1851671A (zh) | 一种节省全局变量内存空间的方法 | |
CN1341295A (zh) | 用于透平编码的块交织 | |
CN1187699C (zh) | Tagtree编码器的vlsi设计方法 | |
CN101060337A (zh) | 一种优化的霍夫曼解码方法和装置 | |
CN1645928A (zh) | 用于压缩视频信号解码的图像存储方法 | |
CN1702659A (zh) | 基于知识产权的大型集成电路设计***及设计方法 | |
CN1159922C (zh) | 编码二进制形状信号的方法 | |
CN1119811C (zh) | 优先编码器及优先编码方法 | |
CN1866218A (zh) | 软件***的资源管理方法 | |
CN1510925A (zh) | 图像处理方法 | |
CN1255770C (zh) | 基于数字信号处理器的层次树集合划分图像编解码方法 | |
CN1578301A (zh) | 编辑数据流的方法和设备 | |
CN1925616A (zh) | 一种宏块对级帧场自适应编解码方法 | |
CN1571352A (zh) | 在网络设备中处理五元流组的方法 | |
CN100336392C (zh) | 一种机顶盒的数据存储管理方法 | |
CN1905516A (zh) | 一种分配双向转发检测会话鉴别符的方法 | |
CN100340118C (zh) | 运动估计的超大规模集成电路体系结构及数据缓存的方法 | |
CN1483382A (zh) | 针对原始ct图像数据的压缩方法 |
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 |