发明名称 应用于JPEG2000的基于二维离散小波逆变换的硬件设计方法
摘要 应用于JPEG2000的基于二维离散小波逆变换的硬件设计方法,属于图像编解码技术领域。本发明解决了现有的小波逆变换频率低下,计算资源复用程度低,缓存消耗过大以及控制复杂的问题。本发明通过对协议中给定公式进行等价变形,打破奇偶数据计算时的相互等待过程,自由地进行分步计算,减少冗余存储。针对变形公式各自的特点,提出了交替扫描和栅栏型扫描两种数据读取方式,并针对并行变换行列一维方向分别设计基于流水的数据流,使硬件结构关键路径仅为一个乘法器,并可时分复用计算单元,减少面积消耗并提高吞吐率。所述方法能够在面积、吞吐率、存储器以及计算单元间寻得较好的折衷。本发明可应用于JPEG2000图像编解码系统。
申请公布号 CN104539973A 申请公布日期 2015.04.22
申请号 CN201510046773.8 申请日期 2015.01.29
申请人 哈尔滨工业大学 发明人 王进祥;韩谨恒;陆嵩;付方发
分类号 H04N19/63(2014.01)I;H04N19/42(2014.01)I 主分类号 H04N19/63(2014.01)I
代理机构 哈尔滨市松花江专利商标事务所 23109 代理人 杨立超
主权项 一种应用于JPEG2000的基于二维离散小波逆变换的硬件设计方法,其特征在于所述方法包括以下步骤:步骤一、对JPEG2000中给定的一维小波提升格式进行等价变形,其中一维离散小波逆变换的等价变形过程为:根据JPEG2000中给定的一维小波提升格式,如式(1)和式(2)所示,S<sub>i</sub>和d<sub>i</sub>分别表示输入的偶数位和奇数位数据,<img file="FDA0000664221820000016.GIF" wi="55" he="67" />和<img file="FDA0000664221820000017.GIF" wi="55" he="72" />为变换后的偶数位和奇数位数据,γ、δ、α、β和k均为JPEG2000协议里的固定定常系数,i‑1,i+1表示前一个,后一个数,其余均为中间变量;对于5/3小波打开其向下取整符号,如式(3)所示,而对于9/7小波,对等式两边同时乘以伸缩因子,依据伸缩因子的不同,得到三种不同的变形公式,分别命名为DS、DD、SS型,如式(4)~(6)所示:5/3小波一级提升过程<img file="FDA0000664221820000011.GIF" wi="988" he="321" />9/7小波伸缩过程<maths num="0001" id="cmaths0001"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msub><mi>kS</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msub><mi>d</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000012.GIF" wi="252" he="229" /></maths>9/7小波一级提升过程<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>-</mo><mi>&delta;</mi><mo>&times;</mo><mrow><mo>(</mo><msubsup><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>+</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>-</mo><mi>&gamma;</mi><mrow><mo>(</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664221820000013.GIF" wi="1076" he="203" /></maths>9/7小波二级提升过程<maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>-</mo><mi>&beta;</mi><mo>&times;</mo><mrow><mo>(</mo><msubsup><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mi></mi></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>-</mo><mi>&alpha;</mi><mrow><mo>(</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>+</mo><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000014.GIF" wi="579" he="198" /></maths>5/3小波一级提升过程<img file="FDA0000664221820000015.GIF" wi="1075" he="301" />DS型:9/7小波一级提升过程<maths num="0004" id="cmaths0004"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><msup><mi>k</mi><mn>2</mn></msup><mi>&delta;</mi></mfrac><msub><mi>S</mi><mi>i</mi></msub><mo>-</mo><mrow><mo>(</mo><msub><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>d</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mfrac><mi>k</mi><mi>&gamma;&delta;</mi></mfrac><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>&gamma;&delta;</mi></mfrac><msub><mi>d</mi><mi>i</mi></msub><mo>-</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000021.GIF" wi="708" he="288" /></maths>9/7小波二级提升过程<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mi>k</mi><mi>&beta;&gamma;&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>&beta;&gamma;</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&gamma;&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mi>k</mi><mi>&gamma;&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mfrac><mi>k</mi><mi>&alpha;&beta;&gamma;&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>&alpha;&beta;</mi></mfrac><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&gamma;&delta;</mi></mfrac><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&beta;&gamma;&delta;</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mi>k</mi><mi>&beta;&gamma;&delta;</mi></mfrac><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664221820000022.GIF" wi="1181" he="319" /></maths>9/7小波伸缩过程<maths num="0006" id="cmaths0006"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mi>&beta;&gamma;&delta;</mi><mi>k</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&beta;&gamma;&delta;</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mi>&alpha;&beta;&gamma;&delta;</mi><mi>k</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&alpha;&beta;&gamma;&delta;</mi></mfrac><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000023.GIF" wi="577" he="322" /></maths>SS型:9/7小波一级提升过程<maths num="0007" id="cmaths0007"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mn>1</mn><mi>k</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msub><mi>S</mi><mi>i</mi></msub><mo>-</mo><mfrac><mi>&delta;</mi><msup><mi>k</mi><mn>2</mn></msup></mfrac><mo>&times;</mo><mrow><mo>(</mo><msub><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>d</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mfrac><mn>1</mn><mi>&gamma;k</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>&gamma;&delta;</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>&delta;</mi><msup><mi>k</mi><mn>2</mn></msup></mfrac><msub><mi>d</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000024.GIF" wi="872" he="293" /></maths>9/7小波二级提升过程<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mn>1</mn><mi>k</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>-</mo><mi>&beta;&gamma;</mi><mo>&times;</mo><mrow><mo>(</mo><mfrac><mn>1</mn><mi>&gamma;k</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mn>1</mn><mi>&gamma;k</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mfrac><mn>1</mn><mi>&alpha;k</mi></mfrac><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>&alpha;&beta;</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>&beta;</mi><mi>k</mi></mfrac><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664221820000025.GIF" wi="1076" he="313" /></maths>9/7小波伸缩过程<maths num="0009" id="cmaths0009"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mi>k</mi><mo>&times;</mo><mrow><mo>(</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mi>&alpha;k</mi><mo>&times;</mo><mrow><mo>(</mo><mfrac><mn>1</mn><mi>&alpha;k</mi></mfrac><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000026.GIF" wi="469" he="307" /></maths>DD型:9/7小波一级提升过程<maths num="0010" id="cmaths0010"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><msup><mi>k</mi><mn>2</mn></msup><mi>&delta;</mi></mfrac><msub><mi>S</mi><mi>i</mi></msub><mo>-</mo><mrow><mo>(</mo><msub><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>d</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>kd</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msub><mi>d</mi><mi>i</mi></msub><mo>-</mo><mi>&gamma;&delta;</mi><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mi>k</mi><mi>&delta;</mi></mfrac><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000664221820000027.GIF" wi="677" he="290" /></maths>9/7小波二级提升过程<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mi>k</mi><mi>&beta;</mi></mfrac><mo>&times;</mo><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>&beta;&gamma;</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mi>&gamma;</mi><msubsup><mi>kS</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><mi>k</mi><mo>&times;</mo><msubsup><mi>d</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mi>k</mi><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>k</mi><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mi>k</mi><mo>&times;</mo><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>-</mo><mi>&alpha;&beta;</mi><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&beta;</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>+</mo><mfrac><mi>k</mi><mi>&beta;</mi></mfrac><msubsup><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664221820000028.GIF" wi="1077" he="299" /></maths>9/7小波伸缩过程<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mi>&beta;</mi><mi>k</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><mfrac><mi>k</mi><mi>&beta;</mi></mfrac><msubsup><mi>S</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><mo>&times;</mo><mrow><mo>(</mo><msubsup><mi>kd</mi><mi>i</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000664221820000031.GIF" wi="451" he="304" /></maths>步骤二、根据步骤一的变形公式,通过交替扫描方式或栅栏扫描方式读取小波逆变换所需的输入数据,交替扫描方式对上述三种变形公式均适用,而栅栏扫描方式仅适用于DD型和SS型;步骤三、将步骤一中变换后的数据写回,其中对于栅栏扫描方式按照栅栏扫描方式写回,对于交替扫描方式按“z字形”方式写回;步骤四、对于栅栏扫描方式,用栅栏扫描硬件结构实现二维小波逆变换,所述栅栏扫描硬件结构包括:用于在行方向进行一维小波逆变换的行逆变换模块、用于在列方向进行一维小波逆变换的列逆变换模块,所述行逆变换模块、列逆变换模块均包含用于完成一级提升过程的一级提升子模块、用于完成二级提升过程的二级提升子模块和用于完成伸缩过程的伸缩子模块;对于交替扫描方式,用交替扫描硬件结构实现二维小波逆变换,所述交替扫描硬件结构除栅栏扫描硬件结构所包括的模块外,还包括用于将列逆变换模块的输出数据重排,并将重排后的数据作为行逆变换模块的输入数据的单寄存器重排模块;步骤五、基于步骤一所述的变形公式、步骤四所述的模块并依据步骤二和步骤三所述的数据读取和写回方式,采用硬件设计原则分别设计行逆变换和列逆变换的数据流图;步骤六、根据步骤五所述的数据流图设计得到列逆变换模块的硬件结构,其中DS型公式在交替扫描方式下所对应的列逆变换硬件结构为:一级提升子模块和二级提升子模块均包含5个二路选择器M1、M2、M3、M4、M5,2个加法器A1、A2,1个乘法器、2个开关S1、S2,3个单寄存器R1、R4、R5,3个乒乓寄存器R2、R3和R6;单寄存器R1的数据输入端为提升子模块的数据输入端,数据输出端移出的数据同时输入至二路选择器M1的1数据输入端和开关S1的输入端,开关S1的输出端接至乒乓寄存器R6的输入端,乒乓寄存器R6的输出端同时接在二路选择器M1的0数据输入端和加法器A1的输入端,二路选择器M1的输出端与乘法器的一个输入端相连,乘法器的另一输入端与二路选择器M2的输出端相连,定常系数输入至二路选择器M2的两个输入端;其中,一级提升子模块中,定常系数<img file="FDA0000664221820000041.GIF" wi="68" he="138" />输入至M2的1数据输入端,定常系数<img file="FDA0000664221820000042.GIF" wi="68" he="136" />输入至M2的0数据输入端,二级提升子模块中,定常系数<img file="FDA0000664221820000043.GIF" wi="76" he="141" />输入至M2的1数据输入端,定常系数<img file="FDA0000664221820000044.GIF" wi="84" he="140" />输入至M2的0数据输入端;乘法器的输出端接入乒乓寄存器R2的输入端,R2的输出端同时接入二路选择器M3的0数据输入端和二路选择器M4的1数据输入端,M3的数据输出端接入加法器A1的一个输入端,加法器A1的输出端接入乒乓寄存器R3的输入端,R3的输出端同时接入M3的1数据输入端和开关S2的输入端,S2的输出端接在单寄存器R4的输入端,R4的输出端同时接在加法器A2的一个输入端和二路选择器M5的1数据输入端,A2的另一输入端接在M4的输出端,A2的输出端接在单寄存器R5的输入端,R5的输出端同时接在M4的0数据输入端和M5的0数据输入端,M5的输出端即为提升子模块的数据输出端;伸缩子模块包含一个乘法器和一个二路选择器,乘法器的一个输入端和输出端分别为伸缩子模块的输入端和输出端,伸缩子模块的输入端与二级提升子模块的输出端相连,伸缩子模块的输出端即为列逆变换模块的输出端,乘法器的另一个输入端为二路选择器的输出端,定常系数<img file="FDA0000664221820000045.GIF" wi="104" he="132" />和<img file="FDA0000664221820000046.GIF" wi="134" he="132" />分别输入至二路选择器的1数据输入端和0数据输入端;步骤七、根据步骤五所述的数据流图设计得到行逆变换模块的硬件结构,其中DS型公式在交替扫描方式下所对应的行逆变换硬件结构为:一级提升子模块和二级提升子模块均包含5个二路选择器M1、M2、M3、M4、M5,2个加法器A1、A2,1个乘法器、两个开关S1、S2,4个单寄存器R1、R2、R3、R4,两个存储器Mem1、Mem2;单寄存器R1的输入端为提升子模块的数据输入端,R1的输出端同时接在二路选择器M1的1数据输入端和开关S1的输入端,S1的输出端接在存储器Mem1的输入端,Mem1的输出端同时接在加法器A1的一个输入端和M1的0数据输入端,M1的数据输出端接在乘法器的一个输入端,乘法器的另一输入端接在二路选择器M2的输出端,定常系数输入至M2的数据输入端,一级提升子模块中,定常系数<img file="FDA0000664221820000047.GIF" wi="74" he="143" />输入至1数据输入端,定常系数<img file="FDA0000664221820000048.GIF" wi="80" he="139" />输入至0数据输入端,二级提升子模块中,定常系数<img file="FDA0000664221820000049.GIF" wi="84" he="148" />输入至1数据输入端,定常系数<img file="FDA00006642218200000410.GIF" wi="89" he="141" />输入至0数据输入端;乘法器的输出端接在寄存器R2的输入端,R2的数据输出端同时接在M3的0数据输入端和M4的1数据输入端,M3的输出端接在加法器A1的另一输入端,加法器A1的输出端接在寄存器R3的输入端,寄存器R3的输出端同时接在M3的1数据输入端和开关S2的输入端,开关S2的输出端接在寄存器R4的输入端,R4的输出端同时接在加法器A2的输入端和二路选择器M5的1数据输入端,加法器A2的另一输入端接在M4的输出端,加法器A2的输出端接在存储器Mem2的输入端,Mem2的输出端同时接在M4的0数据输入端和二路选择器M5的0数据输入端,M5的输出端即为提升子模块的数据输出端;二级提升子模块中,寄存器R3和存储器Mem1的位置互换;步骤八、根据步骤四所述的单寄存器重排模块包括寄存器R和二路选择器M0、M1,二路选择器M0的1数据输入端和M1的0数据输入端接在单寄存器重排模块的数据输入端,M0的输出端接在寄存器R的输入端,R的输出端同时接在M0的0数据输入端和M1的1数据输入端,M1的输出端即为重排后的数据输出端;重排过程以四个时钟周期为一个阶段,寄存器在一个阶段内的前三个时钟周期进行数据更新,所更新的数据为输入数据,在第四个时钟周期保持,输出数据在第三个周期由输入数据直接提供,在其余三个周期由寄存器提供;步骤九、根据步骤五所述的数据流图设计得到列逆变换模块的硬件结构,其中DD型公式在栅栏扫描方式下所对应的列逆变换硬件结构为:一级提升子模块和二级提升子模块均包含7个单寄存器R1、R2、R3、R4、R5、R6、R7,6个二路选择器M1、M2、M3、M4、M5、M6,3个开关S1、S2、S3,2个加法器A1、A2,1个乘法器;单寄存器R1的输入端为提升子模块的数据输入端,R1的输出端同时接在M1的1数据输入端和S1的输入端,S1的输出端接在R3的输入端,R3的输出端同时接在A1的一个输入端和S3的输入端,M1的输出端接在乘法器的一个输入端,乘法器的输出端接在R2的输入端,R2的输出端同时接在M3的0数据输入端、M5的1数据输入端、S2的输入端,M3的输出端接在A1的另一个输入端,A1的输出端接在R7的输入端,R7的输出端同时接在M1的0数据输入端和M3的1数据输入端,S3的输出端接在R4的输入端,R4的输出端接在M4的0数据输入端,M4的输出端接在A2的一个输入端,A2的输出端接在R5的输入端,R5的输出端同时接在M6的1数据输入端和M4的1数据输入端,S2的输出端接在R6的输入端,R6的输出端同时接在M5的0数据输入端和M6的0数据输入端;一级提升子模块中,定常系数<img file="FDA0000664221820000061.GIF" wi="72" he="139" />和γδ分别输入至M2的1数据输入端和0数据输入端,二级提升子模块中,定常系数<img file="FDA0000664221820000062.GIF" wi="82" he="140" />和αβ分别输入至M2的1数据输入端和0数据输入端,M6的输出端就是提升子模块的数据输出端;伸缩子模块包含1个乘法器和1个二路数据选择器,乘法器的一个输入端和输出端分别为伸缩子模块的输入输出端,伸缩子模块的输入端与二级提升子模块的输出端相连,伸缩子模块的输出端即为列逆变换模块的输出端,定常系数<img file="FDA0000664221820000063.GIF" wi="56" he="133" />和<img file="FDA0000664221820000064.GIF" wi="50" he="127" />分别输入至二路数据选择器的1和0数据输入端;步骤十、根据步骤五所述的数据流图设计得到行逆变换模块的硬件结构,其中DD型公式在栅栏扫描方式下所对应的行逆变换硬件结构为:一级提升子模块和二级提升子模块均包含5个单寄存器R1、R2、R3、R4、R5,8个二路选择器M1、M2、M3、M4、M5、M6、M7、M8,2个加法器A1、A2,两个存储器Mem1、Mem2,1个乘法器;R1的输入端为提升子模块的输入端,R1的输出端同时接在M1的0数据输入端、M6的1数据输入端和R4的输入端,M1的输出端接在乘法器的一个输入端,乘法器的输出端接在R2的输入端,R2的输出端同时接在M3的1数据输入端、M5的1数据输入端和M4的0数据输入端,M3的输出端接在Mem1的数据输入端,Mem1的输出端同时接在M4的1数据输入端和M5的0数据输入端,M5的数据输出端同时接在A2的一个输入端和M8的0数据输入端,A2的输出端同时接在M8的1数据输入端和M7的0数据输入端,M7的输出端接在Mem2的输入端,Mem2的输出端同时接在A2的另一输入端和M6的0数据输入端,M6的输出端接在A1的一个输入端,A1的另一输入端接在M4的输出端,A1的输出端接在R3的输入端,R3的输出端同时接在M1的1数据输入端和M3的0数据输入端,R4的输出端接在R5的输入端,R5的输出端接在M7的1数据输入端;一级提升子模块中,定常系数<img file="FDA0000664221820000065.GIF" wi="70" he="136" />和γδ分别输入至M2的0数据输入端和1数据输入端,二级提升子模块中,定常系数<img file="FDA0000664221820000066.GIF" wi="78" he="136" />和αβ分别输入至M2的0数据输入端和1数据输入端,M8的输出端即为提升子模块的数据输出端;行逆变换模块中的伸缩子模块与列逆变换模块中的伸缩子模块硬件结构相同,定常系数<img file="FDA0000664221820000071.GIF" wi="50" he="130" />和<img file="FDA0000664221820000072.GIF" wi="58" he="129" />分别输入至二路选择器的0、1数据输入端,二路选择器由所处理数据所属列的奇偶性控制,当列为偶数时,选择0数据输入端作为输出,否则,选择1数据输入端作为输出;步骤十一、根据步骤五所述的数据流图设计得到列逆变换模块的硬件结构,其中SS型公式在栅栏扫描方式下所对应的列逆变换模块为:一级提升子模块和二级提升子模块均包含7个单寄存器R1、R2、R3、R4、R5、R6、R7,6个二路选择器M1、M2、M3、M4、M5、M6,两个加法器A1、A2,1个乘法器、1个反向二路选择器D1,1个开关;单寄存器R1的输入端为提升子模块的输入端,R1的输出端同时接在R2的输入端和M4的0数据输入端,R2的输出端接在M1的0数据输入端,M1的输出端接在加法器A1的一个输入端,A1的输出端接在R3的输入端,R3的输出端同时接在开关的输入端、M1的1数据输入端和M2的0数据输入端,开关的输出端接在R4的输入端,R4的输出端接在M2的1数据输入端,M2的输出端同时接在M3的1数据输入端和A2的一个输入端,A2的输出端接在R5的输入端,R5的输出端同时接在M3的0数据输入端和M5的0数据输入端,R6的输出端同时接在M4的1数据输入端和A1的另一个输入端,R6的输入端接在反向二路选择器D1的0数据输出端,M4的输出端接在乘法器的一个输入端,乘法器的另一个输入端接在M6的输出端,乘法器的输出端接在D1的输入端,D1的1数据输出端接在R7的输入端,R7的输出端接在M5的1数据输入端,M3的输出端即为提升子模块的数据输出端;一级提升子模块中,定常系数<img file="FDA0000664221820000073.GIF" wi="74" he="139" />输入至M6的1数据输入端,定常系数<img file="FDA0000664221820000074.GIF" wi="70" he="136" />输入至0数据输入端,二级提升子模块中,定常系数<img file="FDA0000664221820000075.GIF" wi="82" he="136" />输入至M6的1数据输入端,定常系数βγ输入至0数据输入端;伸缩子模块包含一个乘法器和一个二路数据选择器,乘法器的输出端和一个输入端分别为伸缩子模块的输入端、输出端,伸缩子模块的输入端与二级提升子模块的输出端相连,伸缩子模块的输出端即为列逆变换模块的输出端,乘法器的另一个输入端接在二路数据选择器的输出端,定常定常系数k和αk分别输入至二路数据选择器的1和0数据端;步骤十二、根据步骤五所述的数据流图设计得到行逆变换模块的硬件结构,其中SS型公式在栅栏扫描方式下所对应的行逆变换模块为:一级提升子模块和二级提升子模块均包含4个寄存器R1、R2、R3、R4,8个二路选择器M1、M2、M3、M4、M5、M6、M7、M8,2个加法器A1、A2,两个双端口存储器Mem1、Mem2,1个乘法器;R1的输入端为提升子模块的输入端,R1的输出端同时接在M1的0数据输入端和M8的1数据输入端,M1的输出端接在A1的一个输入端,A1的另一个输入端接在M4的输出端,A1的输出端同时接在Mem1的输入端和M2的1数据输入端,Mem1的输出端同时接在M2的0数据输入端和M1的1数据输入端,M2的输出端接在R2的输入端,R2的输出端同时接在M3的0数据输入端和A2的一个数据输入端,A2的另一输入端接在M5的数据输出端,A2的输出端同时接在M3的1数据输出端和M6的0数据输入端,M6的输出端接在Mem2的输入端,Mem2的输出端同时接在M8的0数据输入端和M5的1数据输入端,M8的输出端同时接在M4的0数据输入端和乘法器的一个输入端,乘法器的输出端接在R3的输入端,R3的输出端同时接在M4的1数据输入端、M5的0数据输入端和R4的输入端,R4的输出端接在M6的1数据输入端,M3的输出端即为提升子模块的数据输出端;一级提升子模块中,定常系数<img file="FDA0000664221820000081.GIF" wi="74" he="141" />和<img file="FDA0000664221820000082.GIF" wi="66" he="134" />分别输入至乘法器的0、1数据输入端,二级提升子模块中,定常系数<img file="FDA0000664221820000083.GIF" wi="84" he="140" />和βγ分别输入至乘法器的0、1数据输入端;行逆变换模块中的伸缩子模块与列逆变换模块中的伸缩子模块硬件结构相同,定常系数αk和k分别输入至二路选择器的0、1数据输入端,所有的二路数据选择器均由所处理数据所属列的奇偶性控制,当列为偶数时,选择0数据输入端作为输出,否则,选择1数据输入端作为输出。
地址 150001 黑龙江省哈尔滨市南岗区西大直街92号