CN104053011B - 应用于jpeg2000解码器中的二维离散小波逆变换器 - Google Patents
应用于jpeg2000解码器中的二维离散小波逆变换器 Download PDFInfo
- Publication number
- CN104053011B CN104053011B CN201410264719.6A CN201410264719A CN104053011B CN 104053011 B CN104053011 B CN 104053011B CN 201410264719 A CN201410264719 A CN 201410264719A CN 104053011 B CN104053011 B CN 104053011B
- Authority
- CN
- China
- Prior art keywords
- data
- selector
- selectores
- output
- input
- 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.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
应用于JPEG2000解码器中的二维离散小波逆变换器,涉及一种二维离散小波逆变换器。为了解决应用在JPEG2000解码器中的小波逆变换硬件部分存在低速且高存储的问题。它包括小波系数存储器、读地址产生模块、列逆变换模块、Reg重排模块、行逆变换模块、写地址产生模块和IDWT控制模块;小波系数存储器内存储多级二维交织化后的小波系数,读地址产生模块和写地址产生模块分别采用两列交替扫描和“z”字形方式读写小波系数,列逆变换模块和行逆变换模块完成垂直和水平方向上的一维离散小波逆变换,列、行逆变换间靠Reg重排模块完成数据重排,IDWT控制模块对其他模块使能控制完成小波逆变换。它用于JPEG2000解码器中。
Description
技术领域
本发明涉及一种二维离散小波逆变换器,特别涉及一种应用于JPEG2000解码器中的二维离散小波逆变换器。
背景技术
随着数字通信技术、多媒体技术、网络技术等得飞速发展,图像编码和压缩技术日益受到关注,数字化的图像海量信息对于图像压缩性能与质量的要求越来越高。上一代的图像压缩技术标准JPEG虽已应用多年并取得了巨大成功,但却难以适应目前的图像处理要求,于是拥有更多性能优势的JPEG2000应运而生。
JPEG2000核心解码算法步骤为:压缩码流处理、算术熵解码(MQ-Decoder)、位平面熵解码(Bit-Plane-Decoder)、离散小波逆变换(Inverse-Discrete-Wavelet-Transform,IDWT)以及后处理。其中小波逆变换部分处于整个解码器的核心地位,其重要性毋庸置疑。
小波变换/逆变换的理论研究已经有不少成果,尤其是基于提升(lifting)算法的思路以其算法简单、设计容易著称。如今的一些大型软件厂商推出的JPEG2000编解码软件也纷纷采用此种算法,且已有不少开源的软件代码存在。硬件设计厂商虽然也有不少成果,但是对于代码几乎没有开放。
而现有的小波逆变换硬件部分存在低速且高存储的问题。
发明内容
本发明的目的是为了解决应用在JPEG2000解码器中的小波逆变换硬件部分存在低速且高存储的问题,本发明提供一种应用于JPEG2000解码器中的二维离散小波逆变换器。
应用于JPEG2000解码器中的二维离散小波逆变换器,
它包括小波系数存储器、读地址产生模块、列逆变换模块、Reg重排模块、行逆变换模块、写地址产生模块和IDWT控制模块;
小波系数存储器,用于存储多级二维交织化后的小波系数,所述多级二维交织化后的小波系数为将按能量集中存储的小波系数进行多级二维交织化得到的;
读地址产生模块,用于按交替扫描两列的方式产生读小波系数的地址,所述交替扫描两列的方式为:对小波系数存储器内存储的小波系数进行交替扫描两列,依次获取每列中当前级数下的两个数据,当到列尾时,转至下两列重复操作,直至完成所有列数据的读取,所述级数为最高级递减至低级;
列逆变换模块,用于根据读地址产生模块的地址,读取小波系数,对读取的小波系数进行垂直方向的一维离散小波逆变换;
Reg重排模块,用于对列逆变换后的数据经单寄存器缓存模块重排;
写地址产生模块,用于按“z”字形方式产生写小波系数的地址,所述“z”字形方式为:若当前级数下总的列数为偶数,对于行逆变换后的数据的第一列和最后一列直接写回,其他列按“z”字写回;若当前级数下总的列数为奇数,对于行逆变换后的数据的第一列直接写回,其他列按“z”字写回;
行逆变换模块,用于对重排后的数据进行水平方向上的一维离散小波逆变换,并按写地址产生模块产生的地址写回到小波系数存储器内;
IDWT控制模块,用于对其他各模块使能控制,完成二维离散小波逆变换。
本发明的有益效果在于,1、流水线处理过程,获得高时钟频率;2、两种离散小波逆变换的统一设计,高效复用芯片资源;3、隔列交替扫描方案降低片上存储要求,同时提高并行度,加速解码;4、单寄存器重排过程,节约资源和降低控制复杂度;5、优化的存取址机制,降低片外存储要求;6、并行处理,加速解码过程,同时减少外部存储访问次数,降低能耗;7、简单的数据通路和电路结构,方便调试、维护和更新。
附图说明
图1为具体实施方式一所述的应用于JPEG2000解码器中的二维离散小波逆变换器的原理示意图。
图2为具体实施方式一所述的单级二维交织化过程的原理示意图。
图3为三级8×8单元的小波系数采用具体实施方式一所述的交替扫描两列的方式的读取过程的原理示意图。
图4为三级8×8单元的的小波系数采用具体实施方式一所述的“z”字形方式的数据写回过程的原理示意图。
图5为具体实施方式二所述的状态机的原理示意图。
图6为9/7离散小波列逆变换的数据流示意图;
图7为具体实施方式三所述的列逆变换模块的原理示意图。
图8为9/7离散小波行逆变换的数据流示意图;
图9为为具体实施方式四所述的行逆变换模块的原理示意图。
图10为采用单寄存器缓存模块重排输入输出数据顺序的示意图。
图11为采用单寄存器缓存模块的原理示意图。
具体实施方式
具体实施方式一:结合图1说明本实施方式,本实施方式所述的应用于JPEG2000解码器中的二维离散小波逆变换器,它包括小波系数存储器、读地址产生模块、列逆变换模块、Reg重排模块、行逆变换模块、写地址产生模块和IDWT控制模块;
小波系数存储器,用于存储多级二维交织化后的小波系数,所述多级二维交织化后的小波系数为将按能量集中存储的小波系数进行多级二维交织化得到的;
读地址产生模块,用于按交替扫描两列的方式产生读小波系数的地址,所述交替扫描两列的方式为:对小波系数存储器内存储的小波系数进行交替扫描两列,依次获取每列中当前级数下的两个数据,当到列尾时,转至下两列重复操作,直至完成所有列数据的读取,所述级数为最高级递减至低级;
列逆变换模块,用于根据读地址产生模块的地址,读取小波系数,对读取的小波系数进行垂直方向的一维离散小波逆变换;
Reg重排模块,用于对列逆变换后的数据经单寄存器缓存模块重排;
写地址产生模块,用于按“z”字形方式产生写小波系数的地址,所述“z”字形方式为:若当前级数下总的列数为偶数,对于行逆变换后的数据的第一列和最后一列直接写回,其他列按“z”字写回;若当前级数下总的列数为奇数,对于行逆变换后的数据的第一列直接写回,其他列按“z”字写回;
行逆变换模块,用于对重排后的数据进行水平方向上的一维离散小波逆变换,并按写地址产生模块产生的地址写回到小波系数存储器内;
IDWT控制模块,用于对其他各模块使能控制,完成二维离散小波逆变换。
本实施方式中,为减小片外存储的压力,使小波系数存储器中的小波系数按照简单的坐标映射方式分布以及写回。之后隔列交替扫描获取两列中当前级数下的数据、由列逆变换模块对数据进行垂直方向的一维离散小波逆变换、变换后数据经单寄存器缓存模块重排输出至行逆变换模块用于完成垂直方向上的一维离散小波逆变换,列逆变换模块内含寄存器完成乒乓存储和延时处理,行变换内嵌4N(N为垂直方向处理的像素点总数)大小存储单元及相应的控制机制用以缓存中间结果。完成特定级数的变换后,最终结果可以从小波系数存储器中读出。
采用简易坐标映射公式与辅助控制手段实现对小波系数的定位存取,降低片外存储要求;基于变形公式实现的流水线逆变换单元并行进行行、列方向一维逆变换以满足高速应用;两列交替扫描方法能最大化行、列逆变换的并行度,且最小化重排缓存;采用单寄存器缓存模块便可完成数据重排,低面积消耗时显著降低控制复杂度。
小波系数本应按能量集中存储的,交织化过程完成对数据的重排。单级二维交织化过程如图2所示,其中L代表低频,H代表高频。将所有行的低高频系数按插指方式排布,完成水平方向一维交织化过程后对所有列进行同样操作,便可完成单级二维交织化过程。本实施方式的小波系数存储采用的多级二维交织化。
所述交替扫描两列,其交替扫描当前级数下的两列数据,能使列逆变换变换的输出结果经重排后便可立即进行行逆变换,从而无需暂存二者间的数据,在提高并行度的同时显著降低片上缓存的大小。两列交替扫描过程是交替扫描两列,依次获取每列中当前级数下的两个数据,当到列尾时,转至下两列重复操作,直至完成所有列数据的获取,这样可提高行、列逆变换的并行度,且极大地降低行、列间的缓存大小。三级8×8单元数据读取过程如图3所示。
将列逆变换按两列交替顺序输出的数据经单寄存器缓存模块和简易的辅助控制手段便可按“z字形”顺序输出至行逆变换模块,面积消耗极小的同时降低控制复杂度。
数据写回时,由于行逆变换的数据输出顺序在边界处较为特殊,对于第一列数据,直接写回,为了匹配时序要求,数据和地址每两个时钟周期更新一次,若当前级数下总的列数为偶数,最后一列输出方式与第一列相同,否则,对于后续列,则均按“z字形”方式写回,数据和地址每一个时钟周期更新一次。2级8*8单元的数据写回方式如图4所示,更高级数可以此类推。
具体实施方式二:结合图5说明本实施方式,本实施方式是对具体实施方式一所述的应用于JPEG2000解码器中的二维离散小波逆变换器的进一步限定,IDWT控制模块的控制过程采用状态机实现,所述状态机包括空闲状态、开始状态、并行状态、仅行变换状态、当前级数结束状态和整体结束状态,所述状态机的工作过程为:
空闲状态,初始等待,当接收小波逆变换使能信号IDWT_en时,转入开始状态;
开始状态,进行列宽、行宽和级数的初始化,以及当前级数lev、行宽和列宽的计算,当当前级数lev大于0时,转入并行状态,当当前级数lev等于0时,转入整体结束状态;并行状态,列变换和行变换并行,当接收列变换完成信号CT_over,转入仅行变换状态;
整体结束状态,转入空闲状态;
仅行变换状态,对未进行行变换的数据进行行变换,当接收行变换完成信号RT_over,转入当前级数结束状态;
当前级数结束状态,转入开始状态。
具体实施方式三:结合图6和图7说明本实施方式,本实施方式是对具体实施方式一或二所述的应用于JPEG2000解码器中的二维离散小波逆变换器的进一步限定,列逆变换模块包括26个二路选择器、5个加法器、3个乘法器、8个开关、8个z-1延时寄存器、8个单寄存器和6个乒乓寄存器;
第一单寄存器移出的数据同时输入至第1二路选择器和第一延时寄存器,第1二路选择器的0数据端输出的数据输入至第2二路选择器,第2二路选择器的0数据端输出的数据输入至第3二路选择器的0数据端,第2二路选择器的1数据端输出的数据经左移两位后和数 值1分别输入至第一加法器,第一加法器输出的数据输入至第3二路选择器的1数据端,第3二路选择器输出的数据输入至第5二路选择器的0数据端,
第1二路选择器的1数据端输出的数据和第4二路选择器输出的数据分别输入至第一乘法器,第一乘法器输出的数据输入至第5二路选择器的1数据端,
参数γδ输入至第4二路选择器的 0数据端,参数γk2输入至第4二路选择器的 1数据端;
第5二路选择器输出的数据输入至第6二路选择器,第6二路选择器的0数据端输出的数据输入至第一乒乓寄存器,第一乒乓寄存器输出的数据和第7二路选择器输出的数据分别输入至第二加法器,第二加法器输出的数据输入至第8二路选择器,第8二路选择器的0数据端输出的数据输入至第二乒乓寄存器,第二乒乓寄存器输出的数据输入至第7二路选择器的1数据端;
第6二路选择器的1数据端输出的数据存入第二单寄存器,第二单寄存器移出的数据输入至第7二路选择器的0数据端;
第8二路选择器的1数据端输出的数据输入至第9二路选择器,第9二路选择器的1数据端输出的数据输入至第10二路选择器的1数据端,第9 二路选择器的0数据端输出的数据经右移2位后输入至第10二路选择器的0数据端,第10二路选择器输出的数据输入至第三单寄存器;
第一延时寄存器输出的数据输入至第二延时寄存器,第二延时寄存器输出的数据输入至第11二路选择器,第11二路选择器的0数据端输出的数据经左移一位后输入至第12二路选择器的0数据端,第11二路选择器的1数据端输出的数据输入至第12二路选择器的1数据端,第12二路选择器输出的数据输入至第13二路选择器的1数据端,第三乒乓寄存器输出的数据输入至第13二路选择器的0数据端,第13二路选择器输出的数据和第三单寄存器输出的数据分别输入至第三加法器,第三加法器输出的数据输入至第14二路选择器,第14二路选择器的1数据端输出的数据输入至第三乒乓寄存器,第14二路选择器的0数据端输出的数据输入至第15二路选择器,第15二路选择器的0数据端输出的数据经右移一位后输入至第16二路选择器的0数据端,第15二路选择器的1数据端输出的数据输入至第16二路选择器的1数据端,第16二路选择器输出的数据输入至第四单寄存器,第四单寄存器输出的数据输入至第17二路选择器的0数据端,
第三单寄存器输出的数据输入至第三延时寄存器,第三延时寄存器输出的数据输入至第四延时寄存器,第四延时寄存器输出的数据输入至第17二路选择器的1数据端,
第17二路选择器输出的数据同时输入至第五单寄存器和第26二路选择器的0数据端,
第五单寄存器输出的数据和第18二路选择器输出的数据分别输入至第二乘法器,参数输入至第18二路选择器的1数据端,参数αβ输入至第18二路选择器的0数据端;第二乘法器输出的数据输入至第19二路选择器,
第19二路选择器的0数据端输出的数据输入至第四乒乓寄存器,第四乒乓寄存器输出的数据和第20二路选择器输出的数据分别输入至第四加法器,第四加法器输出的数据输入至第21二路选择器,第21二路选择器的0数据端输出的数据输入至第五乒乓寄存器,第五乒乓寄存器输出的数据输入至第20二路选择器的1数据端;
第19二路选择器的1数据端输出的数据存入第六单寄存器,第六单寄存器移出的数据输入至第20二路选择器的0数据端,第21二路选择器的1数据端输出的数据输入至第七单寄存器,
同时,第五单寄存器输出的数据输入至第五延时寄存器,第五延时寄存器输出的数据输入至第六延时寄存器,第六延时寄存器输出的数据输入至第22二路选择器的1数据端,
第22二路选择器输出的数据和第七单寄存器输出的数据分别输入至第五加法器,第五加法器输出的数据输入至第23二路选择器,第23二路选择器的1数据端输出的数据输入至第六乒乓寄存器,第23二路选择器的0数据端输出的数据输入至第八单寄存器,
第七单寄存器输出的数据输入至第七延时寄存器,第七延时寄存器输出的数据输入至第八延时寄存器,第八延时寄存器输出的数据输入至第24二路选择器的0数据端,第八单寄存器输出的数据输入至第24二路选择器的1数据端,第24二路选择器输出的数据和第25二路选择器输出的数据分别输入至第三乘法器,参数输入至第25二路选择器的1数据端,参数输入至第25二路选择器的0数据端;第三乘法器输出的数据输入至第26二路选择器的1数据端,第26二路选择器输出的数据为进行垂直方向的一维离散小波逆变换后的数据;
同时,在延时寄存器与延时寄存器及单寄存器之间传输数据时均由开关控制;
其中,γ、δ、α、β和k均为JPEG2000解码器中JPEG2000协议里的固定参数;
所述26个二路选择器中第1二路选择器、第5二路选择器、第9二路选择器、第10二路选择器、第11二路选择器、第12二路选择器、第15二路选择器、第16二路选择器和第26二路选择器均采用filter控制小波模式,filter为1时,表示解码的是9/7小波,filter为为0时,表示解码的是5/3小波,其他的二路选择器采用奇时钟odd控制。
小波分为9/7小波和5/3小波,一维9/7和5/3IDWT算法的变形形式分别如式1和式2所示。其中,表示保留一位小数,表示向下取整。Si和di分别表示输入的偶数位和奇数位数据,和为变换后的偶数位和奇数位数据。
根据上述公式,能得到9/7列逆变换的数据流方式如图6所示,每一级提升过程在任意时钟周期内最多只有1个乘法器和2个加法器在工作。图6中偶数位输入为Sj=y(2i,2j)和奇数位输入为dj=y(2i,2j+1)和
根据所述数据流得到列逆变换模块的结构如图7所示,filter为滤波模式,值为1时表示9/7模式,值为0时表示5/3模式,odd为奇时钟周期(为简化电路,未对某些数据进行加倍表示)。其采用流水线结构,最大化利用计算单元,关键路径上仅为一个乘法器的延时,且仅用三个乘法器和五个加法器便完成了两种小波逆变换的统一处理。R×2寄存器为乒乓寄存器缓存结构,用以缓存奇偶列运算的中间结果以及进行延时处理。
具体实施方式四:结合图8和图9说明本实施方式,本实施方式是对具体实施方式三所述的应用于JPEG2000解码器中的二维离散小波逆变换器的进一步限定,行逆变换模块包括26个二路选择器、5个加法器、3个乘法器、 6个开关、 6个延时寄存器、 10个单寄存器和4 个存储器Mem;
1号单寄存器移出的数据同时输入至1号二路选择器和1号延时寄存器,1号二路选择器的0数据端输出的数据输入至2号二路选择器,2号二路选择器的0数据端输出的数据输入至3号二路选择器的0数据端,2号二路选择器的1数据端输出的数据经左移两位后和数值1分别输入至1号加法器,1号加法器输出的数据输入至3号二路选择器的1数据端,3号二路选择器输出的数据输入至5号二路选择器的0数据端,
1号二路选择器的1数据端输出的数据和4号二路选择器输出的数据分别输入至1号乘法器,1号乘法器输出的数据输入至5号二路选择器的1数据端,
参数γδ输入至4号二路选择器的 0数据端,参数γk2输入至4号二路选择器的1 数据端;
5号二路选择器输出的数据输入至6号二路选择器,6号二路选择器的0数据端输出的数据输入至1号存储器Mem,1号存储器Mem输出的数据和7号二路选择器输出的数据分别输入至2号加法器,2号加法器输出的数据输入至8号二路选择器,8号二路选择器的0数据端输出的数据输入至3号单寄存器 3号单寄存器 输出的数据输入至7号二路选择器的1数据端;
6号二路选择器的1数据端输出的数据存入2号单寄存器,2号单寄存器移出的数据输入至7号二路选择器的0数据端;
8号二路选择器的1数据端输出的数据输入至9号二路选择器,9号二路选择器的1数据端输出的数据输入至 10号二路选择器的1数据端, 9号二路选择器的0数据端输出的数据经右移2位后输入至10号 二路选择器的0数据端,10号 二路选择器输出的数据输入至 4号单寄存器;
1号延时寄存器输出的数据输入至2号延时寄存器,2号延时寄存器输出的数据输入至11号二路选择器,11号二路选择器的0数据端输出的数据经左移一位后输入至12号二路选择器的0数据端,11号二路选择器的1数据端输出的数据输入至12号二路选择器的1数据端,12号二路选择器输出的数据输入至13号二路选择器的1数据端,2 号存储器Mem输出的数据输入至13号二路选择器的0数据端,13号二路选择器输出的数据和 4号单寄存器输出的数据分别输入至3号加法器,3号加法器输出的数据输入至14号二路选择器,14号二路选择器的1数据端输出的数据输入至 2号存储器Mem,14号二路选择器的0数据端输出的数据输入至15号二路选择器,15号二路选择器的0数据端输出的数据经右移一位后输入至16号二路选择器的0数据端,15号二路选择器的1数据端输出的数据输入至16号二路选择器的1数据端,16号二路选择器输出的数据输入至45号单寄存器,45号单寄存器输出的数据输入至17号二路选择器的0数据端,
5 号单寄存器输出的数据输入至3号延时寄存器,3号延时寄存器输出的数据输入 至17号二路选择器的1数据端,
17号二路选择器输出的数据同时输入至5号单寄存器和26号二路选择器的0数据端,
6 号单寄存器输出的数据和18号二路选择器输出的数据分别输入至2号乘法器,参数输入至18号二路选择器的1数据端,参数αβ输入至18号二路选择器的0数据端;2号乘法器输出的数据输入至19号二路选择器,
19号二路选择器的0数据端输出的数据输入至7号单寄存器 ,7号 单寄存器 输出的数据和20号二路选择器输出的数据分别输入至4号加法器,4号加法器输出的数据输入至21号二路选择器,21号二路选择器的0数据端输出的数据输入至 3号存储器Mem, 3号存储器Mem输出的数据输入至20号二路选择器的1数据端;
19号二路选择器的1数据端输出的数据存入 8号单寄存器,8 号单寄存器移出的数据输入至20号二路选择器的0数据端,21号二路选择器的1数据端输出的数据输入至9 号单寄存器,
同时,6 号单寄存器输出的数据输入至4 号延时寄存器,4 号延时寄存器输出的数据输入至5 号延时寄存器,5 号延时寄存器输出的数据输入至22号二路选择器的1数据端,
22号二路选择器输出的数据和 9号单寄存器输出的数据分别输入至5号加法器,5号加法器输出的数据输入至23号二路选择器,23号二路选择器的1数据端输出的数据输入至4 号存储器Mem,23号二路选择器的0数据端输出的数据输入至 10号单寄存器,
9 号单寄存器输出的数据输入至 6号延时寄存器, 6号延时寄存器输出的数据输入至24号二路选择器的0数据端, 10号单寄存器输出的数据输入至24号二路选择器的1数据端,24号二路选择器输出的数据和25号二路选择器输出的数据分别输入至3号乘法器,参数输入至25号二路选择器的1数据端,参数输入至25号二路选择器的0数据端;3号乘法器输出的数据输入至26号二路选择器的1数据端,26号二路选择器输出的数据为进行水平方向的一维离散小波逆变换后的数据;
同时,在延时寄存器与延时寄存器及单寄存器之间传输数据时均由开关控制;
其中,γ、δ、α、β和k均为JPEG2000解码器中JPEG2000协议里的固定参数;
所述26个二路选择器中1号二路选择器、5号二路选择器、9号二路选择器、1号0二路选择器、11号二路选择器、12号二路选择器、15号二路选择器、16号二路选择器和26号二路选择器均采用filter控制小波模式,filter为1时,表示解码的是9/7小波,filter为为0时,表示解码的是5/3小波,其他的二路选择器采用奇时钟odd控制。
小波分为9/7小波和5/3小波,一维9/7和5/3IDWT算法的变形形式分别如式1和式2所示。其中,表示保留一位小数,表示向下取整。Si和di分别表示输入的偶数位和奇数位数据,和为变换后的偶数位和奇数位数据。
根据上述公式,能得到9/7列逆变换的数据流方式如图8所示,
根据所述数据流得到行逆变换模块的结构如图9所示,与图7结构相似,为缓存列变换的中间数据,其内嵌4个存储器,大小均为N,其中两个用于5/3小波和9/7的一级提升,另外两个用于9/7的二级提升过程。图8中虚线与数据流交点即为存储器所在位置,由于两级提升过程数据流流入方式不一,因而二者存储器位置略有差异。
本实施方式采用流水线结构,使关键路径上仅有一个乘法器延时,且行列方向并行处理,满足高速应用。最大化利用运算单元。列逆变换采用较少的乒乓寄存器结构实现列方向数据缓存,行逆变换内嵌较小的单端口存储器实现数据暂存,实现面积的低消耗。
具体实施方式五:本实施方式是对具体实施方式四所述的应用于JPEG2000解码器中的二维离散小波逆变换器的进一步限定,所述将按能量集中存储的小波系数进行二维交织化为:
利用公式
进行二维交织化,
其中f表示映射方式,用以将本应按能量集中分布的小波系数映射至指定位置,L代表低频,H代表高频,LL表示水平方向低通且垂直方向低通的子带,LH表示水平方向高通且垂直方向低通的子带,HL表示水平方向低通且垂直方向高通的子带,HH表示水平方向高通且垂直方向高通的子带,上标M表示当前级数,rsize、csize分别表示水平和垂直方向处理的像素点总数;i和j分别代表水平和垂直方向的坐标。
小波系数本应按能量集中存储的,交织化过程完成对数据的重排。单级二维交织化过程如图2所示,为实现外部存储器的低存储和高效复用,将最高的M级进行二维交织化,其结果看作M-1级的LL子带,与M-1级HL、LH、HH子带进行二维交织化后看作M-2级的LL子带,以此类推,便可完成对小波系数的重新分布。简化的坐标映射如式3所示。f表示映射方式,用以将本应按能量集中分布的小波系数映射至指定位置,其下标表示子带,上标M表示当前级数,rsize、csize分别表示水平和垂直方向处理的像素点总数。i和j分别代表水平和垂直方向的坐标。
具体实施方式六:结合图10说明本实施方式,本实施方式是对具体实施方式五所述的应用于JPEG2000解码器中的二维离散小波逆变换器的进一步限定,所述Reg重排模块,用于对列逆变换后的数据经单寄存器缓存模块重排;其中单寄存器缓存模块的时钟clk、输入Input、当前存储数据reg和输出Output如下表:
列逆变换也是按两列交替方式输出数据的,为使之按“z字形”方式输出至行逆变换模,采用单寄存器模块对其进行重排,在最小化硬件资源的同时显著降低控制复杂度。其重排过程见上表。
单寄存器缓存模块的重排过程以四个时钟周期为一个阶段,寄存器在一个阶段内的前三个时钟周期Ctrl0为1,进行数据更新,在第四个周期Ctrl0为0,缓存数据。在第三个周期Ctrl1为1,输出数据由输入数据直接提供,在其余三个周期Ctrl1为0,输出数据由寄存器提供。整体处理过程在一个时钟周期的时滞下由单寄存器存储数据并由二路选择器进行输出选择控制,硬件结构如图11所示。
这部分是完成重排过程,减小的是片上存储和控制复杂度。
Claims (4)
1.一种应用于JPEG2000解码器中的二维离散小波逆变换器,它包括小波系数存储器、读地址产生模块、列逆变换模块、Reg重排模块、行逆变换模块、写地址产生模块和IDWT控制模块;
小波系数存储器,用于存储多级二维交织化后的小波系数,所述多级二维交织化后的小波系数为将按能量集中存储的小波系数进行多级二维交织化得到的;
读地址产生模块,用于按交替扫描两列的方式产生读小波系数的地址,所述交替扫描两列的方式为:对小波系数存储器内存储的小波系数进行交替扫描两列,依次获取每列中当前级数下的两个数据,当到列尾时,转至下两列重复操作,直至完成所有列数据的读取,所述级数为最高级递减至低级;
列逆变换模块,用于根据读地址产生模块的地址,读取小波系数,对读取的小波系数进行垂直方向的一维离散小波逆变换;
Reg重排模块,用于对列逆变换后的数据经单寄存器缓存模块重排;
写地址产生模块,用于按“z”字形方式产生写小波系数的地址,所述“z”字形方式为:若当前级数下总的列数为偶数,对于行逆变换后的数据的第一列和最后一列直接写回,其他列按“z”字写回;若当前级数下总的列数为奇数,对于行逆变换后的数据的第一列直接写回,其他列按“z”字写回;
行逆变换模块,用于对重排后的数据进行水平方向上的一维离散小波逆变换,并按写地址产生模块产生的地址写回到小波系数存储器内;
IDWT控制模块,用于对其他各模块使能控制,完成二维离散小波逆变换;
其特征在于,列逆变换模块包括26个二路选择器、5个加法器、3个乘法器、8个开关、8个z-1延时寄存器、8个单寄存器和6个乒乓寄存器;
第一单寄存器移出的数据同时输入至第1二路选择器和第一延时寄存器,第1二路选择器的0数据端输出的数据输入至第2二路选择器,第2二路选择器的0数据端输出的数据输入至第3二路选择器的0数据端,第2二路选择器的1数据端输出的数据经左移两位后和数值1分别输入至第一加法器,第一加法器输出的数据输入至第3二路选择器的1数据端,第3二路选择器输出的数据输入至第5二路选择器的0数据端,
第1二路选择器的1数据端输出的数据和第4二路选择器输出的数据分别输入至第一乘法器,第一乘法器输出的数据输入至第5二路选择器的1数据端,
参数γδ输入至第4二路选择器的0数据端,参数γk2输入至第4二路选择器的1数据端;
第5二路选择器输出的数据输入至第6二路选择器,第6二路选择器的0数据端输出的数据输入至第一乒乓寄存器,第一乒乓寄存器输出的数据和第7二路选择器输出的数据分别输入至第二加法器,第二加法器输出的数据输入至第8二路选择器,第8二路选择器的0数据端输出的数据输入至第二乒乓寄存器,第二乒乓寄存器输出的数据输入至第7二路选择器的1数据端;
第6二路选择器的1数据端输出的数据存入第二单寄存器,第二单寄存器移出的数据输入至第7二路选择器的0数据端;
第8二路选择器的1数据端输出的数据输入至第9二路选择器,第9二路选择器的1数据端输出的数据输入至第10二路选择器的1数据端,第9二路选择器的0数据端输出的数据经右移2位后输入至第10二路选择器的0数据端,第10二路选择器输出的数据输入至第三单寄存器;
第一延时寄存器输出的数据输入至第二延时寄存器,第二延时寄存器输出的数据输入至第11二路选择器,第11二路选择器的0数据端输出的数据经左移一位后输入至第12二路选择器的0数据端,第11二路选择器的1数据端输出的数据输入至第12二路选择器的1数据端,第12二路选择器输出的数据输入至第13二路选择器的1数据端,第三乒乓寄存器输出的数据输入至第13二路选择器的0数据端,第13二路选择器输出的数据和第三单寄存器输出的数据分别输入至第三加法器,第三加法器输出的数据输入至第14二路选择器,第14二路选择器的1数据端输出的数据输入至第三乒乓寄存器,第14二路选择器的0数据端输出的数据输入至第15二路选择器,第15二路选择器的0数据端输出的数据经右移一位后输入至第16二路选择器的0数据端,第15二路选择器的1数据端输出的数据输入至第16二路选择器的1数据端,第16二路选择器输出的数据输入至第四单寄存器,第四单寄存器输出的数据输入至第17二路选择器的0数据端,
第三单寄存器输出的数据输入至第三延时寄存器,第三延时寄存器输出的数据输入至第四延时寄存器,第四延时寄存器输出的数据输入至第17二路选择器的1数据端,
第17二路选择器输出的数据同时输入至第五单寄存器和第26二路选择器的0数据端,
第五单寄存器输出的数据和第18二路选择器输出的数据分别输入至第二乘法器,参数输入至第18二路选择器的1数据端,参数αβ输入至第18二路选择器的0数据端;第二乘法器输出的数据输入至第19二路选择器,
第19二路选择器的0数据端输出的数据输入至第四乒乓寄存器,第四乒乓寄存器输出的数据和第20二路选择器输出的数据分别输入至第四加法器,第四加法器输出的数据输入至第21二路选择器,第21二路选择器的0数据端输出的数据输入至第五乒乓寄存器,第五乒乓寄存器输出的数据输入至第20二路选择器的1数据端;
第19二路选择器的1数据端输出的数据存入第六单寄存器,第六单寄存器移出的数据输入至第20二路选择器的0数据端,第21二路选择器的1数据端输出的数据输入至第七单寄存器,
同时,第五单寄存器输出的数据输入至第五延时寄存器,第五延时寄存器输出的数据输入至第六延时寄存器,第六延时寄存器输出的数据输入至第22二路选择器的1数据端,
第22二路选择器输出的数据和第七单寄存器输出的数据分别输入至第五加法器,第五加法器输出的数据输入至第23二路选择器,第23二路选择器的1数据端输出的数据输入至第六乒乓寄存器,第23二路选择器的0数据端输出的数据输入至第八单寄存器,
第七单寄存器输出的数据输入至第七延时寄存器,第七延时寄存器输出的数据输入至第八延时寄存器,第八延时寄存器输出的数据输入至第24二路选择器的0数据端,第八单寄存器输出的数据输入至第24二路选择器的1数据端,第24二路选择器输出的数据和第25二路选择器输出的数据分别输入至第三乘法器,参数输入至第25二路选择器的1数据端,参数输入至第25二路选择器的0数据端;第三乘法器输出的数据输入至第26二路选择器的1数据端,第26二路选择器输出的数据为进行垂直方向的一维离散小波逆变换后的数据;
同时,在延时寄存器与延时寄存器及单寄存器之间传输数据时均由开关控制;
其中,γ、δ、α、β和k均为JPEG2000解码器中JPEG2000协议里的固定参数;
所述26个二路选择器中第1二路选择器、第5二路选择器、第9二路选择器、第10二路选择器、第11二路选择器、第12二路选择器、第15二路选择器、第16二路选择器和第26二路选择器均采用filter控制小波模式,filter为1时,表示解码的是9/7小波,filter为为0时,表示解码的是5/3小波,其他的二路选择器采用奇时钟odd控制。
2.根据权利要求1所述的应用于JPEG2000解码器中的二维离散小波逆变换器,其特征在于,IDWT控制模块的控制过程采用状态机实现,所述状态机包括空闲状态、开始状态、并行状态、仅行变换状态、当前级数结束状态和整体结束状态,所述状态机的工作过程为:空闲状态,初始等待,当接收小波逆变换使能信号IDWT_en时,转入开始状态;
开始状态,进行列宽、行宽和级数的初始化,以及当前级数lev、行宽和列宽的计算,当当前级数lev大于0时,转入并行状态,当当前级数lev等于0时,转入整体结束状态;
并行状态,列变换和行变换并行,当接收列变换完成信号CT_over,转入仅行变换状态;整体结束状态,转入空闲状态;
仅行变换状态,对未进行行变换的数据进行行变换,当接收行变换完成信号RT_over,转入当前级数结束状态;
当前级数结束状态,转入开始状态。
3.根据权利要求1所述的应用于JPEG2000解码器中的二维离散小波逆变换器,其特征在于,行逆变换模块包括26个二路选择器、5个加法器、3个乘法器、6个开关、6个延时寄存器、10个单寄存器和4个存储器Mem;
1号单寄存器移出的数据同时输入至1号二路选择器和1号延时寄存器,1号二路选择器的0数据端输出的数据输入至2号二路选择器,2号二路选择器的0数据端输出的数据输入至3号二路选择器的0数据端,2号二路选择器的1数据端输出的数据经左移两位后和数值1分别输入至1号加法器,1号加法器输出的数据输入至3号二路选择器的1数据端,3号二路选择器输出的数据输入至5号二路选择器的0数据端,
1号二路选择器的1数据端输出的数据和4号二路选择器输出的数据分别输入至1号乘法器,1号乘法器输出的数据输入至5号二路选择器的1数据端,
参数γδ输入至4号二路选择器的0数据端,参数γk2输入至4号二路选择器的1数据端;
5号二路选择器输出的数据输入至6号二路选择器,6号二路选择器的0数据端输出的数据输入至1号存储器Mem,1号存储器Mem输出的数据和7号二路选择器输出的数据分别输入至2号加法器,2号加法器输出的数据输入至8号二路选择器,8号二路选择器的0数据端输出的数据输入至3号单寄存器,3号单寄存器输出的数据输入至7号二路选择器的1数据端;
6号二路选择器的1数据端输出的数据存入2号单寄存器,2号单寄存器移出的数据输入至7号二路选择器的0数据端;
8号二路选择器的1数据端输出的数据输入至9号二路选择器,9号二路选择器的1数据端输出的数据输入至10号二路选择器的1数据端,9号二路选择器的0数据端输出的数据经右移2位后输入至10号二路选择器的0数据端,10号二路选择器输出的数据输入至4号单寄存器;
1号延时寄存器输出的数据输入至2号延时寄存器,2号延时寄存器输出的数据输入至11号二路选择器,11号二路选择器的0数据端输出的数据经左移一位后输入至12号二路选择器的0数据端,11号二路选择器的1数据端输出的数据输入至12号二路选择器的1数据端,12号二路选择器输出的数据输入至13号二路选择器的1数据端,2号存储器Mem输出的数据输入至13号二路选择器的0数据端,13号二路选择器输出的数据和4号单寄存器输出的数据分别输入至3号加法器,3号加法器输出的数据输入至14号二路选择器,14号二路选择器的1数据端输出的数据输入至2号存储器Mem,14号二路选择器的0数据端输出的数据输入至15号二路选择器,15号二路选择器的0数据端输出的数据经右移一位后输入至16号二路选择器的0数据端,15号二路选择器的1数据端输出的数据输入至16号二路选择器的1数据端,16号二路选择器输出的数据输入至5号单寄存器,5号单寄存器输出的数据输入至17号二路选择器的0数据端,
5号单寄存器输出的数据输入至3号延时寄存器,3号延时寄存器输出的数据输入至17号二路选择器的1数据端,
17号二路选择器输出的数据同时输入至6号单寄存器和26号二路选择器的0数据端,
6号单寄存器输出的数据和18号二路选择器输出的数据分别输入至2号乘法器,参数输入至18号二路选择器的1数据端,参数αβ输入至18号二路选择器的0数据端;2号乘法器输出的数据输入至19号二路选择器,
19号二路选择器的0数据端输出的数据输入至7号单寄存器,7号单寄存器输出的数据和20号二路选择器输出的数据分别输入至4号加法器,4号加法器输出的数据输入至21号二路选择器,21号二路选择器的0数据端输出的数据输入至3号存储器Mem,3号存储器Mem输出的数据输入至20号二路选择器的1数据端;
19号二路选择器的1数据端输出的数据存入8号单寄存器,8号单寄存器移出的数据输入至20号二路选择器的0数据端,21号二路选择器的1数据端输出的数据输入至9号单寄存器,
同时,6号单寄存器输出的数据输入至4号延时寄存器,4号延时寄存器输出的数据输入至5号延时寄存器,5号延时寄存器输出的数据输入至22号二路选择器的1数据端,
22号二路选择器输出的数据和9号单寄存器输出的数据分别输入至5号加法器,5号加法器输出的数据输入至23号二路选择器,23号二路选择器的1数据端输出的数据输入至4号存储器Mem,23号二路选择器的0数据端输出的数据输入至10号单寄存器,
9号单寄存器输出的数据输入至6号延时寄存器,6号延时寄存器输出的数据输入至24号二路选择器的0数据端,10号单寄存器输出的数据输入至24号二路选择器的1数据端,24号二路选择器输出的数据和25号二路选择器输出的数据分别输入至3号乘法器,参数输入至25号二路选择器的1数据端,参数输入至25号二路选择器的0数据端;3号乘法器输出的数据输入至26号二路选择器的1数据端,26号二路选择器输出的数据为进行水平方向的一维离散小波逆变换后的数据;
同时,在延时寄存器与延时寄存器及单寄存器之间传输数据时均由开关控制;
其中,γ、δ、α、β和k均为JPEG2000解码器中JPEG2000协议里的固定参数;
所述26个二路选择器中1号二路选择器、5号二路选择器、9号二路选择器、1号0二路选择器、11号二路选择器、12号二路选择器、15号二路选择器、16号二路选择器和26号二路选择器均采用filter控制小波模式,filter为1时,表示解码的是9/7小波,filter为为0时,表示解码的是5/3小波,其他的二路选择器采用奇时钟odd控制。
4.根据权利要求3所述的应用于JPEG2000解码器中的二维离散小波逆变换器,其特征在于,所述将按能量集中存储的小波系数进行二维交织化为:
利用公式
进行二维交织化,
其中f表示映射方式,用以将本应按能量集中分布的小波系数映射至指定位置,L代表低频,H代表高频,LL表示水平方向低通且垂直方向低通的子带,LH表示水平方向高通且垂直方向低通的子带,HL表示水平方向低通且垂直方向高通的子带,HH表示水平方向高通且垂直方向高通的子带,上标M表示当前级数,rsize、csize分别表示水平和垂直方向处理的像素点总数;i和j分别代表水平和垂直方向的坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410264719.6A CN104053011B (zh) | 2014-06-13 | 2014-06-13 | 应用于jpeg2000解码器中的二维离散小波逆变换器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410264719.6A CN104053011B (zh) | 2014-06-13 | 2014-06-13 | 应用于jpeg2000解码器中的二维离散小波逆变换器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104053011A CN104053011A (zh) | 2014-09-17 |
CN104053011B true CN104053011B (zh) | 2017-03-01 |
Family
ID=51505321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410264719.6A Active CN104053011B (zh) | 2014-06-13 | 2014-06-13 | 应用于jpeg2000解码器中的二维离散小波逆变换器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104053011B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539973B (zh) * | 2015-01-29 | 2017-11-03 | 哈尔滨工业大学 | 应用于jpeg2000的基于二维离散小波逆变换的硬件设计方法 |
CN105611301B (zh) * | 2015-12-23 | 2019-01-18 | 四川大学 | 基于小波域残差的分布式视频编解码方法 |
WO2020220179A1 (zh) * | 2019-04-29 | 2020-11-05 | 深圳市大疆创新科技有限公司 | 小波逆变换电路和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1717049A (zh) * | 2005-06-29 | 2006-01-04 | 西安电子科技大学 | 基于行的小波变换的vlsi结构 |
CN102300092A (zh) * | 2011-08-25 | 2011-12-28 | 北京航空航天大学 | 一种基于提升格式的9/7小波逆变换的图像解压缩方法 |
CN102572429A (zh) * | 2011-12-29 | 2012-07-11 | 东南大学 | 一种二维离散小波变换的硬件架构 |
CN103179398A (zh) * | 2013-03-04 | 2013-06-26 | 中国科学院长春光学精密机械与物理研究所 | 一种提升小波变换fpga实现的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8359041B2 (en) * | 2008-02-15 | 2013-01-22 | Futurewei Technologies, Inc. | System and method for adaptively controlling feedback information |
-
2014
- 2014-06-13 CN CN201410264719.6A patent/CN104053011B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1717049A (zh) * | 2005-06-29 | 2006-01-04 | 西安电子科技大学 | 基于行的小波变换的vlsi结构 |
CN102300092A (zh) * | 2011-08-25 | 2011-12-28 | 北京航空航天大学 | 一种基于提升格式的9/7小波逆变换的图像解压缩方法 |
CN102572429A (zh) * | 2011-12-29 | 2012-07-11 | 东南大学 | 一种二维离散小波变换的硬件架构 |
CN103179398A (zh) * | 2013-03-04 | 2013-06-26 | 中国科学院长春光学精密机械与物理研究所 | 一种提升小波变换fpga实现的方法 |
Non-Patent Citations (1)
Title |
---|
JPEG2000中可重构二维离散小波变换的设计与实现;许旌阳;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20140315;正文第33-36页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104053011A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105120293B (zh) | 基于cpu和gpu的图像协同解码方法及装置 | |
CN103369326B (zh) | 适于高性能视频编码标准hevc的变换编码器 | |
CN102158694B (zh) | 一种基于gpu的遥感图像解压缩方法 | |
CN101847986B (zh) | 一种实现fft/ifft变换的电路及方法 | |
CN104053011B (zh) | 应用于jpeg2000解码器中的二维离散小波逆变换器 | |
CN102176750B (zh) | 高性能自适应二进制算术编码器 | |
GB2470611A (en) | Video scaling using memory caching technique | |
CN102857756B (zh) | 适于hevc标准的变换编码器 | |
CN109840585B (zh) | 一种面向稀疏二维卷积的运算方法和系统 | |
CN102819820A (zh) | 基于分块渲染的gpu中多管线渲染的实现方法 | |
CN101212674A (zh) | 图像在存储器中的地址映射方法 | |
CN103760525A (zh) | 一种补齐式原地矩阵转置方法 | |
CN101599167B (zh) | 存储器的存取方法 | |
WO2006129518A1 (ja) | メモリアクセス方法 | |
CN102687175B (zh) | 对编码纹理元素块进行操作的解码系统和方法 | |
CN1268231A (zh) | 数据块规模可变的2维逆向离散余弦变换机 | |
CN113222129B (zh) | 一种基于多级缓存循环利用的卷积运算处理单元及系统 | |
CN206727986U (zh) | 基于fpga的地震数据压缩装置 | |
CN108053361A (zh) | 多互连视觉处理器及采用其的图像处理方法 | |
CN104268124A (zh) | 一种fft实现装置和方法 | |
CN101488225A (zh) | 一种位平面编码器的vlsi系统架构 | |
CN104539973B (zh) | 应用于jpeg2000的基于二维离散小波逆变换的硬件设计方法 | |
CN104581175B (zh) | 影像处理装置与方法 | |
CN108769697B (zh) | 基于时间交织流水线架构的jpeg-ls压缩系统及方法 | |
CN102447898B (zh) | 用fpga实现klt变换的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |