(57)【要約】【課題】リフティング構成に基づくウェーブレット変換を短時間で効率良く実行すること。【解決手段】対象領域Ａ１内の２点の中間データＤ1n+1，Ｓ1n+2を用いて、偶数番目の入力データＹ（２ｎ＋４）を始点とする系列上の第２段階の一時データ（Ｓ2n+2）が算出される。また、その１クロック前の周期において、対象領域Ｎ１内の入力データＹ（２ｎ＋４）を規格化して中間データＳ1n+2が算出される。このため、複数のデータ列に対して対象領域Ａ１内の演算を繰り返し実行する場合には、あるデータ列に対して対象領域Ａ１内の演算を実行する際に、次のデータ列に対する対象領域Ｎ１の演算を並列で実行することが可能である。【選択図】        図３
2004194224.tif 000002
【特許請求の範囲】
【請求項１】
リフティング構成に基づいて、帯域分割された高域成分のデータと低域成分のデータとを合成するウェーブレット変換装置であって、
制御部と、
高域成分および低域成分の一方からなる第１データ列と、その他方からなる第２データ列とが画素単位で交互に配列されて構成される入力データ列を取り込んで合成された出力データ列を算出するフィルタリング部と、
を備え、
前記フィルタリング部は、
前記入力データ列の各々に所定の規格化係数を乗算することで、各入力データを第１段階の中間データへ１点当たり１クロック周期内に変換する単数または複数の規格化処理を実行する規格化手段と、
前記規格化手段によって規格化された第１段階の中間データの各々を単数または複数の段階に亘る一系列の中間データへ１点当たり１クロック周期内に変換し、あるいは、最終段階の中間データの各々を出力データへ１点当たり１クロック周期内に変換する単数または複数の変換処理を実行する中間データ変換手段と、を含み、
前記制御部は、
前記規格化手段および前記中間データ変換手段に、前記単数または複数の規格化処理および前記単数または複数の変換処理を、全ての点の前記出力データが算出されるまで繰り返し実行させ、且つ、繰り返し実行される前記単数または複数の規格化処理および前記単数または複数の変換処理のうち少なくとも２個の処理を１クロック周期内に並列に実行させるように制御する、
ことを特徴とするウェーブレット変換装置。
【請求項２】
請求項１記載のウェーブレット変換装置であって、前記規格化手段および前記中間データ変換手段は、前記規格化処理および前記変換処理を並列に実行する、ウェーブレット変換装置。
【請求項３】
請求項１または請求項２記載のウェーブレット変換装置であって、
前記規格化手段は、
各入力データに前記規格化係数を乗算する規格化係数乗算器と、
前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、
を含み、
前記中間データ変換手段は、
２点の中間データの一方に所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと前記２点の中間データの他方とを加算する加算器とからなる２点演算部と、
前記２点演算部から出力されたデータを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、
を含み、
前記ウェーブレット変換装置は、さらに、
メモリ管理部と、
前記メモリ管理部の制御によりデータを一時記憶するメモリと、
を備え、
前記メモリ管理部は、
前記出力先選択部から出力された前記データを前記メモリに転送し記憶させるように制御する、
ことを特徴とするウェーブレット変換装置。
【請求項４】
請求項３記載のウェーブレット変換装置であって、
前記制御部は、前記変換処理として、
「前記第２データ列に属する入力データを起点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データに対して１点前の「前記第１データ列に属する入力データを起点とする系列」（以下、第１系列と呼ぶ。）上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の一時データを１点当たり１クロック周期内に算出する第１の変換処理と、
前記第１の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する第２の変換処理と、
第１系列上の第１段階の中間データと、その中間データに対して１点前の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の一時データを１点当たり１クロック周期内に算出する第３の変換処理と、
前記第３の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の前記中間データを１点当たり１クロック周期内に算出する第４の変換処理と、
第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その中間データの系列に対して１点前の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の一時データを１点当たり１クロック周期内に算出する第５の変換処理と、
前記第５の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の中間データを１点当たり１クロック周期内に算出する第６の変換処理と、
第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の中間データと、その中間データの系列に対して１点前の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の一時データを１点当たり１クロック周期内に算出する第７の変換処理と、
前記第７の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の前記中間データを１点当たり１クロック周期内に算出する第８の変換処理と、
を全ての点の前記出力データが算出されるまで前記２点演算部に繰り返し実行させるように制御する、ウェーブレット変換装置。
【請求項５】
請求項４記載のウェーブレット変換装置であって、
前記制御部は、前記第１の変換処理および前記第３の変換処理を実行した後に、前記第５の変換処理および前記第７の変換処理を、前記最終段階の前記一時データが算出されるまで前記２点演算部に実行させ、その後、前記第２の変換処理および前記第４の変換処理を実行した後に、前記第６の変換処理および前記第８の変換処理を、前記出力データが算出されるまで前記２点演算部に実行させるように制御する、
ウェーブレット変換装置。
【請求項６】
請求項４記載のウェーブレット変換装置であって、
互いに独立に動作する４個の前記２点演算部を備え、
前記制御部は、前記変換処理として、
前記第２データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の第２段階の中間データを算出する前記第２の変換処理と、
Ｐ−１番目の入力データを始点とする系列上の第２段階の一時データを算出する前記第３の変換処理と、
Ｐ−４番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記第６の変換処理と、
Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の一時データを算出する前記第７の変換処理と、
の４工程を前記各２点演算部に並列に実行させると共に、
Ｐ＋２番目の入力データを始点とする系列上の第２段階の一時データを算出する前記第１の変換処理と、
前記Ｐ−１番目の入力データを始点とする系列上の第２段階の前記中間データを算出する前記第４の変換処理と、
Ｐ−２番目の入力データを始点とする系列上の第Ｍ段階の一時データを算出する前記第５の変換処理と、
前記Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の中間データを算出する前記第８の変換処理と、
の４個の処理をそれぞれ前記各２点演算部に並列に実行させるように制御する、ウェーブレット変換装置。
【請求項７】
請求項１または請求項２記載のウェーブレット変換装置であって、
前記規格化手段は、
各入力データに前記規格化係数を乗算する規格化係数乗算器と、
前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、
を含み、
前記中間データ変換手段は、
取り込まれた３点の入力データの中で第１および第２の入力データを加算する第１加算器と、該第１加算器から出力されたデータに所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと第３の入力データとを加算することで中間データを算出する第２加算器とからなる３点演算部と、
前記３点演算部から出力された中間データを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、
を含み、
前記メモリ管理部は、
前記出力先選択部から出力された中間データを前記メモリに転送し記憶させるように制御する、
ウェーブレット変換装置。
【請求項８】
請求項７記載のウェーブレット変換装置であって、
前記制御部は、前記変換処理として、
「前記第２データ列に属する入力データを始点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データの系列に対して１点前後する「前記第１データ列に属する入力データを始点とする系列」（以下、第１系列と呼ぶ。）上の２点の第１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する第１の変換処理と、第１系列上の第１段階の中間データと、その第１段階の中間データの系列に対して１点前後する第２系列上の２点の第２段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の中間データを１点当たり１クロック周期内に算出する第２の変換処理と、
第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その第Ｍ段階の中間データの系列に対して１点前後する第１系列上の２点の第Ｍ段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の中間データを１点当たり１クロック周期内に算出する第３の変換処理と、
第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の中間データと、その第Ｌ段階の中間データの系列に対して１点前後する第２系列上の２点の第Ｌ＋１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の中間データを１点当たり１クロック周期内に算出する第４の変換処理と、
を全ての点の前記出力データが算出されるまで前記３点演算部に繰り返し実行させるように制御する、ウェーブレット変換装置。
【請求項９】
請求項８記載のウェーブレット変換装置であって、
互いに独立に動作する２個の前記３点演算部を備え、
前記制御部は、
前記第１データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の前記中間データを算出する前記第２の変換処理と、
Ｐ−４番目の入力データを始点とする系列上の第Ｌ＋１段階の前記中間データを算出する前記第４の変換処理と、
の２個の処理をそれぞれ前記各３点演算部に並列に実行させるように制御する、ウェーブレット変換装置。
【請求項１０】
請求項８または請求項９記載のウェーブレット変換装置であって、
前記制御部は、
前記入力データ列の中でＰ＋３番目（データ番号Ｐは整数）の入力データを始点とする系列上の前記中間データを算出する前記第１の変換処理と、
Ｐ−１番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記第３の変換処理と、
の２個の処理をそれぞれ前記各３点演算部に並列に実行させるように制御する、ウェーブレット変換装置。
【請求項１１】
請求項８記載のウェーブレット変換装置であって、前記制御部は、前記第１の変換処理〜前記第４の変換処理を並列にさせるように制御する、ウェーブレット変換装置。
【請求項１２】
請求項１〜請求項１１の何れか１項に記載のウェーブレット変換装置であって、
前記フィルタリング部は、直列に接続される第１フィルタリング部と第２フィルタリング部とから構成されており、
前記第１フィルタリング部は、水平方向および垂直方向のうちの一方向に帯域分割されている前記高域成分および前記低域成分のデータを入力し、これらのデータを合成してライン単位で算出し、
前記第２フィルタリング部は、前記第１フィルタリング部で算出された合成データに対して処理を実行することで、前記水平方向および前記垂直方向のうちの他方向の合成データを算出する、
ウェーブレット変換装置。
【請求項１３】
リフティング構成に基づいて、帯域分割された高域成分のデータと低域成分のデータとを合成するウェーブレット変換方法であって、
（ａ）高域成分および低域成分の一方からなる第１データ列と、その他方からなる第２データ列とが画素単位で交互に配列されて構成される入力データ列から、入力データを選択的に取り込む工程と、
（ｂ）前記工程（ａ）で取り込まれた前記入力データの各々に規格化係数を乗算することで第１段階の中間データへ１点当たり１クロック周期内に変換する工程と、
（ｃ）第ｍ段階（ｍは１以上の整数）の中間データを第ｍ＋１段階の中間データへ１点当たり１クロック周期内に算出する工程（第ｍ段階の中間データが最終段階の中間データである場合を含む。この場合、第ｍ＋１段階の中間データは出力データである。）と、
を備え、
前記工程（ｂ）および工程（ｃ）を、全ての点の前記出力データが算出されるまで繰り返し実行し、且つ、繰り返し実行される前記工程（ｂ）および工程（ｃ）を１クロック周期内に並列に実行することを特徴とするウェーブレット変換方法。
【請求項１４】
請求項１３に記載のウェーブレット変換方法であって、
前記工程（ｃ）は、
（ｃ−１）「前記第２データ列に属する入力データを起点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データに対して１点前の「前記第１データ列に属する入力データを起点とする系列」（以下、第１系列と呼ぶ。）上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の一時データを１点当たり１クロック周期内に算出する工程と、
（ｃ−２）前記工程（ｃ−１）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、
（ｃ−３）第１系列上の第１段階の中間データと、その中間データに対して１点前の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の一時データを１点当たり１クロック周期内に算出する工程と、
（ｃ−４）前記工程（ｃ−３）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、
（ｃ−５）第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その中間データの系列に対して１点前の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の一時データを１点当たり１クロック周期内に算出する工程と、
（ｃ−６）前記工程（ｃ−５）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の一時データを１点当たり１クロック周期内に算出する工程と、
（ｃ−７）第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の前記中間データと、その中間データの系列に対して１点前の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の一時データを１点当たり１クロック周期内に算出する工程と、
（ｃ−８）前記工程（ｃ−７）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の中間データを１点当たり１クロック周期内に算出する工程と、
を備え、
前記工程（ｃ−１）〜工程（ｃ−８）を、全ての点の出力データが算出されるまで繰り返し実行させるように制御する、ウェーブレット変換方法。
【請求項１５】
請求項１４記載のウェーブレット変換方法であって、
前記工程（ｃ−１）および前記工程（ｃ−３）を実行した後に、前記工程（ｃ−５）および前記工程（ｃ−７）を、前記出力データの一時データが算出されるまで実行し、
その後、前記工程（ｃ−２）および前記工程（ｃ−４）を実行した後に、前記工程（ｃ−６）および前記工程（ｃ−８）を、前記出力データが算出されるまで実行する、
ウェーブレット変換方法。
【請求項１６】
請求項１４記載のウェーブレット変換方法であって、
前記第２データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の第２段階の中間データを算出する前記工程（ｃ−２）と、
Ｐ−１番目の入力データを始点とする系列上の第２段階の一時データを算出する前記工程（ｃ−３）と、
Ｐ−４番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記工程（ｃ−６）と、
Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の一時データを算出する前記工程（ｃ−７）と、
の４工程を前記各２点演算部に並列に実行させると共に、
Ｐ＋２番目の入力データを始点とする系列上の第２段階の一時データを算出する前記工程（ｃ−１）と、
前記Ｐ−１番目の入力データを始点とする系列上の第２段階の前記中間データを算出する前記工程（ｃ−４）と、
Ｐ−２番目の入力データを始点とする系列上の第Ｍ＋１段階の一時データを算出する前記工程（ｃ−５）と、
前記Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の中間データを算出する前記工程（ｃ−８）と、
の４個の処理をそれぞれ並列に実行させるように制御する、
ウェーブレット変換方法。
【請求項１７】
請求項１３に記載のウェーブレット変換方法であって、
前記工程（ｃ）は、
（ｃ−１）「前記第２データ列に属する入力データを始点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データの系列に対して１点前後する「前記第１データ列に属する入力データを始点とする系列」（以下、第１系列と呼ぶ。）上の２点の第１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−２）第１系列上の第１段階の中間データと、その中間データの系列に対して１点前後する第２系列上の２点の第２段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−３）第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その第Ｍ段階の中間データの系列に対して１点前後する第１系列上の２点の第Ｍ段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の中間データを１点当たり１クロック周期内に算出する工程と、
（ｃ−４）第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の中間データと、その第Ｌ段階の中間データの系列に対して１点前後する第２系列上の２点の第Ｌ＋１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の中間データを１点当たり１クロック周期内に算出する工程と、
を備え、
前記工程（ｃ−１）〜工程（ｃ−４）を、全ての点の前記出力データが算出されるまで繰り返し実行するウェーブレット変換方法。
【請求項１８】
請求項１７記載のウェーブレット変換方法であって、
前記第１データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の第２段階の中間データを算出する前記工程（ｃ−２）と、
Ｐ−４番目の入力データを始点とする系列上の第Ｌ＋１段階の前記中間データを算出する前記工程（ｃ−４）と、
の２個の処理をそれぞれ並列に実行させるように制御する、
ウェーブレット変換方法。
【請求項１９】
請求項１７または請求項１８記載のウェーブレット変換方法であって、
前記入力データ列の中でＰ＋３番目（データ番号Ｐは整数）の入力データを始点とする系列上の中間データを算出する前記工程（ｃ−１）と、
Ｐ−１番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記工程（ｃ−３）と、
の２個の処理をそれぞれ並列に実行させるように制御する、
ウェーブレット変換方法。
【請求項２０】
請求項１７記載のウェーブレット変換方法であって、前記工程（ｃ−１）〜工程（ｃ−４）を並列に実行する、ウェーブレット変換方法。
【請求項２１】
請求項１３〜請求項２０の何れか１項に記載のウェーブレット変換方法であって、
低域成分と高域成分に帯域分割された２次元画像データに対して、当該２次元画像データの水平方向および垂直方向のうちの一方向にライン単位で前記工程（ａ）〜工程（ｃ）を適用することによって合成データ列を算出し、この算出された合成データ列に対して、前記水平方向および前記垂直方向のうちの他方向に前記工程（ａ）〜工程（ｃ）を適用する、ウェーブレット変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ウェーブレット変換を用いた圧縮伸長技術に関する。
【０００２】
【従来の技術】
画像データの高能率符号化方式として、離散ウェーブレット変換（Discrete Wavelet Transformation、以下「ＤＷＴ」と呼ぶ。）に基づく画像の圧縮伸長方法が知られており、これはＩＳＯ（国際標準化機構）が策定するＪＰＥＧ２０００（Joint Photographic Experts Group 2000）方式で採用されている。ＤＷＴの演算方法としては、畳み込み演算方法とリフティング構成（lifting scheme）に基づく演算方法とが知られており、両者は同一結果を出力するが、後者のリフティング構成に基づく演算方法の方が、前者の畳み込み演算方法と比べて、少ないメモリ使用量で高速演算が可能なことや、ロスレス（可逆）圧縮に適することなどの利点を有している。
【０００３】
一般に、ＤＷＴは、原信号を高域成分（高周波数成分）と低域成分（低周波数成分）とに帯域分割するフィルタバンクを用いて構成することが可能である。そして、その逆変換（逆ＤＷＴ）は、帯域分割された高域成分と低域成分とを合成するフィルタバンクを用いて構成することが可能である。
【０００４】
図３５に、ＤＷＴとその逆変換（逆ＤＷＴ）で用いるフィルタバンク２００Ｓ，２００Ａを模式的に示す。入力信号ｘ（ｎ）を低域成分と高域成分との２帯域に分解する分解側フィルタバンク２００Ｓは、低域成分を通過させるローパスフィルタ２０１Ｌと、高域成分を通過させるハイパスフィルタ２０１Ｈと、第１および第２ダウンサンプラー２０２，２０３とで構成されている。ローパスフィルタ２０１Ｌとハイパスフィルタ２０１Ｈは、畳み込み演算を実行するＦＩＲフィルタによって構成される。また、第１および第２ダウンサンプラー２０２，２０３は、それぞれ、フィルタ２０１Ｌ，２０１Ｈからの入力信号を１点おきに間引き、信号長を半分にして出力するものである。ＪＰＥＧ２０００の規格では、第１ダウンサンプラー２０２は奇数番目の信号を間引いて偶数番目の信号（低域成分）を出力し、第２ダウンサンプラー２０３は偶数番目の信号を間引いて奇数番目の信号（高域成分）を出力する。
【０００５】
他方、入力信号（低域成分，高域成分）を合成する合成側フィルタバンク２００Ａは、第１および第２アップサンプラー２０４，２０５と、ローパスフィルタ２０６Ｌと、ハイパスフィルタ２０６Ｈと、加算器２０７とで構成されている。ローパスフィルタ２０６Ｌとハイパスフィルタ２０６Ｈは、畳み込み演算を実行するＦＩＲフィルタによって構成されており、一般に、これら合成側フィルタ２０６Ｌ，２０６Ｈと分解側フィルタ２０１Ｌ，２０１Ｈとは完全再構成条件を満たすように構成される。また、第１および第２アップサンプラー２０４，２０５は、各点間にゼロ値を挿入し信号長を倍にして出力する。そして、加算器２０７は、各合成側フィルタ２０６Ｌ，２０６Ｈから出力された信号を加算し、合成信号ｘ’（ｎ）を出力する。ここで、完全再構成条件を満たす場合はｘ（ｎ）＝ｘ’（ｎ）が成立する。
【０００６】
２次元ＤＷＴは、２次元画像データに対して分解側フィルタバンク２００Ｓを、その２次元画像データの垂直方向，水平方向の順に繰り返し適用することで実行できる。図３６は、３次の分解レベル（decomposition level）でＤＷＴを施された２次元画像データ２１０を模式的に示す帯域分割図である。２次元画像データ２１０中の各ブロックがサブバンド（帯域成分）を表している。例えば、サブバンドＨＨ１は、分解レベル１における垂直方向の高域成分（Ｈ）と水平方向の高域成分（Ｈ）とからなり、サブバンドＬＨ２は、分解レベル２における垂直方向の高域成分（Ｈ）と水平方向の低域成分（Ｌ）とからなる。一般に、サブバンドＸＹｎ（Ｘ，Ｙは「Ｈ」または「Ｌ」の何れか、ｎは分解レベルの次数）は、分解レベルｎにおける垂直方向の成分Ｙと水平方向の成分Ｘとからなるものである。
【０００７】
分解レベル３のＤＷＴの処理手順は次の通りである。先ず、２次元画像全体に、上記分解側フィルタバンク２００Ｓを２回適用することで、分解レベル１のサブバンドＨＨ１，ＨＬ１，ＬＨ１，ＬＬ１（図示せず）が生成される。次に、分解レベル１の最低域のサブバンドＬＬ１に、分解側フィルタバンク２００Ｓを２回適用することで、分解レベル２のサブバンドＨＨ２，ＨＬ２，ＬＨ２，ＬＬ２（図示せず）が生成される。そして、分解レベル２の最低域のサブバンドＬＬ２に、分解側フィルタバンク２００Ｓを２回適用することで、分解レベル３のサブバンドＨＨ３，ＨＬ３，ＬＨ３，ＬＬ３が生成される。
【０００８】
逆に、分解レベル３のサブバンドを合成する逆ＤＷＴの処理手順は次の通りである。先ず、サブバンドＨＨ３，ＨＬ３，ＬＨ３，ＬＬ３に、合成側フィルタバンク２００Ａを２回適用することで、分解レベル２の最低域のサブバンドＬＬ２が生成される。次に、分解レベル２のサブバンドＨＨ２，ＨＬ２，ＬＨ２，ＬＬ２に、合成側フィルタバンク２００Ａを２回適用することで、分解レベル１の最低域のサブバンドＬＬ１が生成される。そして、分解レベル１のサブバンドＨＨ１，ＨＬ１，ＬＨ１，ＬＬ１に、合成側フィルタバンク２００Ａを２回適用することで、２次元画像が生成される。
【０００９】
以上、３次の分解レベルの例を示したが、ＪＰＥＧ２０００方式では、一般に、３次〜８次以上の分解レベルが採用される。また、本例では、１枚の静止画像全体に一括してＤＷＴを施したが、実際には、実装メモリ容量などの関係上、１枚の静止画像を複数の矩形状の「タイル」と称する領域に分割し、各タイル単位でＤＷＴを実行することも行われている。
【００１０】
一方、ＤＷＴおよび逆ＤＷＴはリフティング構成で実現することも可能である。本発明は、合成側の処理に関するものであるので、ここからは逆ＤＷＴの処理について説明する。公知の９×７タップのDaubechiesフィルタの場合、入力データＹ（２ｎ），Ｙ（２ｎ＋１），Ｙ（２ｎ＋２）（ｎ：整数）などと、出力データＸ（２ｎ），Ｘ（２ｎ＋１）との間の関係式は、次式（１）で規定するリフティング構成で表現できる。なお、合成側の処理は逆ＤＷＴであることから、この後の説明全般にわたって、入力データにＹを出力データにＸの文字を使用することとする。
【００１１】
【数１】
2004194224.tif 000003
【００１２】
上式（１）中、奇数番目の入力データＹ（２ｎ＋１）は分解処理によって得られた高域成分のデータを示し、偶数番目の入力データＹ（２ｎ）は分解処理によって得られた低域成分のデータを示している。そして、出力データＸ（２ｎ）およびＸ（２ｎ＋１）が高域成分と低域成分とが合成されたデータを示している。また、係数α，β，γ，δはリフティング係数と呼ばれ、係数κ，１／κは規格化係数と呼ばれており、これら係数α，β，γ，δ，κ，１／κは、９×７タップのDaubechiesフィルタのフィルタ係数によって一意に導出される。
【００１３】
上式（１）で規定されるリフティング構成は、図３７に示す格子構造で表現することが可能である。図３７の左端の縦一列に並ぶ格子点は、それぞれ、入力データ…，Ｙ（２ｎ−１），（２ｎ），…，Ｙ（２ｎ＋９），Ｙ（２ｎ＋１０），…（ｎ：整数）を表している。つまり、ＤＷＴによって分解された低域成分および高域成分のデータが交互に並んで配列されたデータである。また、これら入力データから水平方向右方に延びる線分の右端の格子点は、それぞれ、出力データ…，Ｘ（２ｎ−１），Ｘ（２ｎ），…，Ｘ（２ｎ＋９），Ｘ（２ｎ＋１０），…を表している。
【００１４】
また、各入力データＹ（ｋ）（ｋ：整数）を示す格子点から、出力データＸ（ｋ）を示す格子点まで延びる線分上の複数の格子点は、一系列の中間データを表している。例えば、入力データＹ（２ｎ）と出力データＸ（２ｎ）との間の線分上には、入力データＹ（２ｎ）を始点として生成された中間データＳ1n，Ｓ2nを表す格子点が存在している。
【００１５】
この格子構造に基づく演算は次の（Ａ）〜（Ｃ）の規則に従って行われる。（Ａ）格子点を表すデータは、当該格子点から右方へ延びる線分に沿って移動する。（Ｂ）各線分を移動するデータは、当該線分に付した係数を乗算される（係数乗算処理）。（Ｃ）各格子点では、線分に沿って左方から移動してきたデータが加算される（加算処理）。例えば、入出力データＹ（２ｎ），Ｘ（２ｎ）間の線分上の中間データＳ2nは、Ｓ2n＝１×Ｓ1n−δ×Ｄ1n-1−δ×Ｄ1n、のように算出される。この式は、上式（１）中の［ｓｔｅｐ３］に相当するものである。
【００１６】
図３７に示すように、例えば、中間データＳ2nは、図面左方の３つの格子点Ｄ1n-1，Ｓ1n，Ｄ1nから遷移したデータを加算したものである。全ての中間データが、当該中間データよりも左方の３つの格子点から遷移した３点のデータを加算することで算出されることが分かる。ＪＰＥＧ２０００方式は、１点の中間データの算出処理を２工程に分けて行うことを推奨している（"Mathias Larsson Carlander, Media Lab, Ericsson Research, Sweden, JPEG2000 Verification Model 9.1 (Technical description) WG1 N2165, 28 June, 2001"の文献参照）。図３８は、そのＪＰＥＧ２０００方式が推奨する算出方法を模式的に示す図である。格子点ｘ1，ｘ2，ｘ3，ｙがデータを表しており、α，β，γは、各格子点間を結ぶ線分に付した係数を表している。図示するように、データｙは、ステップａで一時データｚを算出した後に、ステップｂで算出されることが分かる。
【００１７】
【非特許文献１】
マシアス・ラーソン・カーランダー（Mathias Larsson Carlander）著，メディアラボ，エリクソン研究所，スエーデン（Media Lab, Ericsson Research, Sweden），「JPEG2000 Verification Model 9.1 (Technical description) WG1 N2165」，２００１年６月２８日。
【００１８】
【発明が解決しようとする課題】
しかしながら、前述のＪＰＥＧ２０００方式が推奨するリフティング演算では、以下に説明するように、１点の出力データを算出するために要する処理時間が長いという問題がある。
【００１９】
図３９〜図４８は、リフティング構成によるＤＷＴ逆変換の処理手順の例を説明するための格子図である。なお、図示しないが、各格子点間を結ぶ全ての線分には、図３７に示した係数が対応付けされているものとする。また、図３９〜図４８では、黒く塗りつぶした格子点は、入力済み或いは計算済みのデータ点を表し、上半分だけ塗りつぶした格子点は、上記ステップａの処理だけが終了した一時データの点を表し、空白の格子点は、ステップａとステップｂの何れの処理もなされていない未計算の点を表している。これら各図に示す処理は、何れも、１クロック周期内に実行される。
【００２０】
図３９に示すＮ回目（Ｎ：整数）の処理では、対象領域Ｎ１内の入力データＹ（２ｎ＋４）を規格化することで、偶数番目の入力データＹ（２ｎ＋４）を始点とする第１段階の中間データＳ1n+2が算出される。
【００２１】
図４０〜図４３に示すＮ＋１回目〜Ｎ＋４回目の処理では、全て、上記ステップａが実行される。Ｎ＋１回目処理（図４０）では、対象領域Ａ１内の２点の中間データＳ1n+2，Ｄ1n+1を用いた処理により、偶数番目の入力データＸ（２ｎ＋４）を始点とする第２段階の一時データ（Ｓ2n+2）が算出される（このように、一時データを表す場合には、データをカッコで括って区別することとする。）。次のＮ＋２回目処理（図４１）では、対象領域Ａ２内の２点の中間データＤ1n+1，Ｓ2n+1を用いた処理により、奇数番目の入力データＹ（２ｎ＋３）を始点とする第２段階の一時データ（Ｄ2n+1）が算出される。次のＮ＋３回目処理（図４２）では、対象領域Ａ３内の２点の中間データＳ2n+1，Ｄ2nを用いた処理により、偶数番目の入力データＹ（２ｎ＋２）を始点とする系列上の出力一時データ（Ｘ（２ｎ＋２））が算出される。そして、Ｎ＋４回目処理（図４３）では、対象領域Ａ４内の２点のデータＤ2n，Ｘ（２ｎ）を用いた処理により、奇数番目の入力データＹ（２ｎ＋１）を始点とする系列上の出力一時データ（Ｘ（２ｎ＋１））が算出される。
【００２２】
次のＮ＋５回目の処理（図４４）では、対象領域Ｎ２内の入力データＹ（２ｎ＋５）を規格化することで、奇数番目の入力データＹ（２ｎ＋５）を始点とする系列上の第一段階の中間データＤ1n+2が算出される。
【００２３】
次に、図４５〜図４８に示すＮ＋６回目〜Ｎ＋９回目の処理では、全て、上記ステップｂが実行される。Ｎ＋６回目処理（図４５）では、対象領域Ｂ１内の中間データＤ1n+2と、上記Ｎ＋１回目処理で算出した一時データ（Ｓ2n+2）とを用いた処理により、中間データＳ2n+2が算出される。次のＮ＋７回目処理（図４６）では、対象領域Ｂ２内の前記Ｎ＋６回目処理で算出した中間データＳ2n+2と、上記Ｎ＋２回目処理で算出した一時データ（Ｄ2n+1）とを用いた処理により、中間データＤ2n+1が算出される。次のＮ＋８回目処理（図４７）では、対象領域Ｂ３内の前記Ｎ＋７回目処理で算出した中間データＤ2n+1と、上記Ｎ＋３回目処理で算出した出力一時データ（Ｘ（２ｎ＋２））とを用いた処理により、出力データＸ（２ｎ＋２）が算出される。そして、Ｎ＋９回目処理（図４８）では、対象領域Ｂ４内の前記Ｎ＋８回目処理で算出した出力データＸ（２ｎ＋２）と、上記Ｎ＋４回目処理で算出した出力一時データ（Ｘ（２ｎ））とを用いた処理により、出力データＸ（２ｎ＋１）が算出される。
【００２４】
次に、Ｎ＋１０回目処理（図示せず）では、上記Ｎ回目処理と同様に、入力データＹ（２ｎ＋６）を用いた規格化処理が行なわれ、以降、上記Ｎ＋１回目〜Ｎ＋９回目処理と同様の処理が繰り返し実行される。
【００２５】
このように、高域成分と低域成分とを交互に並べた入力データＹ（２ｎ＋４）およびＹ（２ｎ＋５）を入力することによって合成結果である出力データＸ（２ｎ＋２）およびＸ（２ｎ＋１）を算出するために、Ｎ回目〜Ｎ＋９回目の１０クロック周期が必要であることが分かる。したがって、１点の出力データを算出するために平均して５クロック周期が必要となる。この５クロック周期を更に短縮することで逆ＤＷＴ演算を高速に実行し得る処理方法が求められている。
【００２６】
以上の問題などに鑑みて本発明が解決しようとするところは、リフティング構成に基づくウェーブレット変換を短時間で効率良く実行し得るウェーブレット変換装置およびウェーブレット変換方法を提供する点にある。
【００２７】
【課題を解決するための手段】
上記課題を解決するため、請求項１記載の発明は、リフティング構成に基づいて、帯域分割された高域成分のデータと低域成分のデータとを合成するウェーブレット変換装置であって、制御部と、高域成分および低域成分の一方からなる第１データ列と、その他方からなる第２データ列とが画素単位で交互に配列されて構成される入力データ列を取り込んで合成された出力データ列を算出するフィルタリング部と、を備え、前記フィルタリング部は、前記入力データ列の各々に所定の規格化係数を乗算することで、各入力データを第１段階の中間データへ１点当たり１クロック周期内に変換する単数または複数の規格化処理を実行する規格化手段と、前記規格化手段によって規格化された第１段階の中間データの各々を単数または複数の段階に亘る一系列の中間データへ１点当たり１クロック周期内に変換し、あるいは、最終段階の中間データの各々を出力データへ１点当たり１クロック周期内に変換する単数または複数の変換処理を実行する中間データ変換手段と、を含み、前記制御部は、前記規格化手段および前記中間データ変換手段に、前記単数または複数の規格化処理および前記単数または複数の変換処理を、全ての点の前記出力データが算出されるまで繰り返し実行させ、且つ、繰り返し実行される前記単数または複数の規格化処理および前記単数または複数の変換処理のうち少なくとも２個の処理を１クロック周期内に並列に実行させるように制御する、ことを特徴とする。
【００２８】
請求項２記載の発明は、請求項１記載のウェーブレット変換装置であって、前記規格化手段および前記中間データ変換手段は、前記規格化処理および前記変換処理を並列に実行する。
【００２９】
請求項３記載の発明は、請求項１または請求項２記載のウェーブレット変換装置であって、前記規格化手段は、各入力データに前記規格化係数を乗算する規格化係数乗算器と、前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、を含み、前記中間データ変換手段は、２点の中間データの一方に所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと前記２点の中間データの他方とを加算する加算器とからなる２点演算部と、前記２点演算部から出力されたデータを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、を含み、前記ウェーブレット変換装置は、さらに、メモリ管理部と、前記メモリ管理部の制御によりデータを一時記憶するメモリと、を備え、前記メモリ管理部は、前記出力先選択部から出力された前記データを前記メモリに転送し記憶させるように制御する、ことを特徴とする。
【００３０】
請求項４記載の発明は、請求項３記載のウェーブレット変換装置であって、前記制御部は、前記変換処理として、「前記第２データ列に属する入力データを起点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データに対して１点前の「前記第１データ列に属する入力データを起点とする系列」（以下、第１系列と呼ぶ。）上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の一時データを１点当たり１クロック周期内に算出する第１の変換処理と、前記第１の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する第２の変換処理と、第１系列上の第１段階の中間データと、その中間データに対して１点前の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の一時データを１点当たり１クロック周期内に算出する第３の変換処理と、前記第３の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の前記中間データを１点当たり１クロック周期内に算出する第４の変換処理と、第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その中間データの系列に対して１点前の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の一時データを１点当たり１クロック周期内に算出する第５の変換処理と、前記第５の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の中間データを１点当たり１クロック周期内に算出する第６の変換処理と、第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の中間データと、その中間データの系列に対して１点前の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の一時データを１点当たり１クロック周期内に算出する第７の変換処理と、前記第７の変換処理で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の前記中間データを１点当たり１クロック周期内に算出する第８の変換処理と、を全ての点の前記出力データが算出されるまで前記２点演算部に繰り返し実行させるように制御する。
【００３１】
請求項５記載の発明は、請求項４記載のウェーブレット変換装置であって、前記制御部は、前記第１の変換処理および前記第３の変換処理を実行した後に、前記第５の変換処理および前記第７の変換処理を、前記最終段階の前記一時データが算出されるまで前記２点演算部に実行させ、その後、前記第２の変換処理および前記第４の変換処理を実行した後に、前記第６の変換処理および前記第８の変換処理を、前記出力データが算出されるまで前記２点演算部に実行させるように制御する。
【００３２】
請求項６記載の発明は、請求項４記載のウェーブレット変換装置であって、互いに独立に動作する４個の前記２点演算部を備え、前記制御部は、前記変換処理として、前記第２データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の第２段階の中間データを算出する前記第２の変換処理と、Ｐ−１番目の入力データを始点とする系列上の第２段階の一時データを算出する前記第３の変換処理と、Ｐ−４番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記第６の変換処理と、Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の一時データを算出する前記第７の変換処理と、の４工程を前記各２点演算部に並列に実行させると共に、Ｐ＋２番目の入力データを始点とする系列上の第２段階の一時データを算出する前記第１の変換処理と、前記Ｐ−１番目の入力データを始点とする系列上の第２段階の前記中間データを算出する前記第４の変換処理と、Ｐ−２番目の入力データを始点とする系列上の第Ｍ段階の一時データを算出する前記第５の変換処理と、前記Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の中間データを算出する前記第８の変換処理と、の４個の処理をそれぞれ前記各２点演算部に並列に実行させるように制御する。
【００３３】
請求項７記載の発明は、請求項１または請求項２記載のウェーブレット変換装置であって、前記規格化手段は、各入力データに前記規格化係数を乗算する規格化係数乗算器と、前記規格化係数乗算器から出力されたデータを遅延させる遅延器と、を含み、前記中間データ変換手段は、取り込まれた３点の入力データの中で第１および第２の入力データを加算する第１加算器と、該第１加算器から出力されたデータに所定のリフティング係数を乗算するリフティング係数乗算器と、該リフティング係数乗算器から出力されたデータと第３の入力データとを加算することで中間データを算出する第２加算器とからなる３点演算部と、前記３点演算部から出力された中間データを取り込んで前記制御部から指定された出力先に出力する出力先選択部と、を含み、前記メモリ管理部は、前記出力先選択部から出力された中間データを前記メモリに転送し記憶させるように制御する。
【００３４】
請求項８記載の発明は、請求項７記載のウェーブレット変換装置であって、前記制御部は、前記変換処理として、「前記第２データ列に属する入力データを始点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データの系列に対して１点前後する「前記第１データ列に属する入力データを始点とする系列」（以下、第１系列と呼ぶ。）上の２点の第１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する第１の変換処理と、第１系列上の第１段階の中間データと、その第１段階の中間データの系列に対して１点前後する第２系列上の２点の第２段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の中間データを１点当たり１クロック周期内に算出する第２の変換処理と、第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その第Ｍ段階の中間データの系列に対して１点前後する第１系列上の２点の第Ｍ段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の中間データを１点当たり１クロック周期内に算出する第３の変換処理と、第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の中間データと、その第Ｌ段階の中間データの系列に対して１点前後する第２系列上の２点の第Ｌ＋１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の中間データを１点当たり１クロック周期内に算出する第４の変換処理と、を全ての点の前記出力データが算出されるまで前記３点演算部に繰り返し実行させるように制御する。
【００３５】
請求項９記載の発明は、請求項８記載のウェーブレット変換装置であって、互いに独立に動作する２個の前記３点演算部を備え、前記制御部は、前記第１データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の前記中間データを算出する前記第２の変換処理と、Ｐ−４番目の入力データを始点とする系列上の第Ｌ＋１段階の前記中間データを算出する前記第４の変換処理と、の２個の処理をそれぞれ前記各３点演算部に並列に実行させるように制御する。
【００３６】
請求項１０記載の発明は、請求項８または請求項９記載のウェーブレット変換装置であって、前記制御部は、前記入力データ列の中でＰ＋３番目（データ番号Ｐは整数）の入力データを始点とする系列上の前記中間データを算出する前記第１の変換処理と、Ｐ−１番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記第３の変換処理と、の２個の処理をそれぞれ前記各３点演算部に並列に実行させるように制御する。
【００３７】
請求項１１記載の発明は、請求項８記載のウェーブレット変換装置であって、前記制御部は、前記第１の変換処理〜前記第４の変換処理を並列にさせるように制御する。
【００３８】
請求項１２記載の発明は、請求項１〜請求項１１の何れか１項に記載のウェーブレット変換装置であって、前記フィルタリング部は、直列に接続される第１フィルタリング部と第２フィルタリング部とから構成されており、前記第１フィルタリング部は、水平方向および垂直方向のうちの一方向に帯域分割されている前記高域成分および前記低域成分のデータを入力し、これらのデータを合成してライン単位で算出し、前記第２フィルタリング部は、前記第１フィルタリング部で算出された合成データに対して処理を実行することで、前記水平方向および前記垂直方向のうちの他方向の合成データを算出する。
【００３９】
請求項１３記載の発明は、リフティング構成に基づいて、帯域分割された高域成分のデータと低域成分のデータとを合成するウェーブレット変換方法であって、（ａ）高域成分および低域成分の一方からなる第１データ列と、その他方からなる第２データ列とが画素単位で交互に配列されて構成される入力データ列から、入力データを選択的に取り込む工程と、（ｂ）前記工程（ａ）で取り込まれた前記入力データの各々に規格化係数を乗算することで第１段階の中間データへ１点当たり１クロック周期内に変換する工程と、（ｃ）第ｍ段階（ｍは１以上の整数）の中間データを第ｍ＋１段階の中間データへ１点当たり１クロック周期内に算出する工程（第ｍ段階の中間データが最終段階の中間データである場合を含む。この場合、第ｍ＋１段階の中間データは出力データである。）と、を備え、前記工程（ｂ）および工程（ｃ）を、全ての点の前記出力データが算出されるまで繰り返し実行し、且つ、繰り返し実行される前記工程（ｂ）および工程（ｃ）を１クロック周期内に並列に実行することを特徴とする。
【００４０】
請求項１４記載の発明は、請求項１３に記載のウェーブレット変換方法であって、前記工程（ｃ）は、（ｃ−１）「前記第２データ列に属する入力データを起点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データに対して１点前の「前記第１データ列に属する入力データを起点とする系列」（以下、第１系列と呼ぶ。）上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の一時データを１点当たり１クロック周期内に算出する工程と、（ｃ−２）前記工程（ｃ−１）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−３）第１系列上の第１段階の中間データと、その中間データに対して１点前の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の一時データを１点当たり１クロック周期内に算出する工程と、（ｃ−４）前記工程（ｃ−３）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第２段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−５）第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その中間データの系列に対して１点前の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の一時データを１点当たり１クロック周期内に算出する工程と、（ｃ−６）前記工程（ｃ−５）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第１系列上の第Ｍ段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の一時データを１点当たり１クロック周期内に算出する工程と、（ｃ−７）第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の前記中間データと、その中間データの系列に対して１点前の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の一時データを１点当たり１クロック周期内に算出する工程と、（ｃ−８）前記工程（ｃ−７）で算出され前記メモリに記憶された前記一時データと、その一時データの系列に対して１点後の第２系列上の第Ｌ＋１段階の中間データに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の中間データを１点当たり１クロック周期内に算出する工程と、を備え、前記工程（ｃ−１）〜工程（ｃ−８）を、全ての点の出力データが算出されるまで繰り返し実行させるように制御する。
【００４１】
請求項１５記載の発明は、請求項１４記載のウェーブレット変換方法であって、前記工程（ｃ−１）および前記工程（ｃ−３）を実行した後に、前記工程（ｃ−５）および前記工程（ｃ−７）を、前記出力データの一時データが算出されるまで実行し、その後、前記工程（ｃ−２）および前記工程（ｃ−４）を実行した後に、前記工程（ｃ−６）および前記工程（ｃ−８）を、前記出力データが算出されるまで実行する。
【００４２】
請求項１６記載の発明は、請求項１４記載のウェーブレット変換方法であって、前記第２データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の第２段階の中間データを算出する前記工程（ｃ−２）と、Ｐ−１番目の入力データを始点とする系列上の第２段階の一時データを算出する前記工程（ｃ−３）と、Ｐ−４番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記工程（ｃ−６）と、Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の一時データを算出する前記工程（ｃ−７）と、の４工程を前記各２点演算部に並列に実行させると共に、Ｐ＋２番目の入力データを始点とする系列上の第２段階の一時データを算出する前記工程（ｃ−１）と、前記Ｐ−１番目の入力データを始点とする系列上の第２段階の前記中間データを算出する前記工程（ｃ−４）と、Ｐ−２番目の入力データを始点とする系列上の第Ｍ＋１段階の一時データを算出する前記工程（ｃ−５）と、前記Ｐ−５番目の入力データを始点とする系列上の第Ｌ＋１段階の中間データを算出する前記工程（ｃ−８）と、の４個の処理をそれぞれ並列に実行させるように制御する。
【００４３】
請求項１７記載の発明は、請求項１３に記載のウェーブレット変換方法であって、前記工程（ｃ）は、（ｃ−１）「前記第２データ列に属する入力データを始点とする系列」（以下、第２系列と呼ぶ。）上の第１段階の中間データと、その中間データの系列に対して１点前後する「前記第１データ列に属する入力データを始点とする系列」（以下、第１系列と呼ぶ。）上の２点の第１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−２）第１系列上の第１段階の中間データと、その中間データの系列に対して１点前後する第２系列上の２点の第２段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第２段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−３）第２系列上の第Ｍ段階（段階数Ｍは１以上の整数）の中間データと、その第Ｍ段階の中間データの系列に対して１点前後する第１系列上の２点の第Ｍ段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第２系列上の第Ｍ＋１段階の中間データを１点当たり１クロック周期内に算出する工程と、（ｃ−４）第１系列上の第Ｌ段階（段階数Ｌは１以上の整数）の中間データと、その第Ｌ段階の中間データの系列に対して１点前後する第２系列上の２点の第Ｌ＋１段階の中間データを加算したデータに所定のリフティング係数を乗算して得たデータとを加算することで、当該第１系列上の第Ｌ＋１段階の中間データを１点当たり１クロック周期内に算出する工程と、を備え、前記工程（ｃ−１）〜工程（ｃ−４）を、全ての点の前記出力データが算出されるまで繰り返し実行する。
【００４４】
請求項１８記載の発明は、請求項１７記載のウェーブレット変換方法であって、前記第１データ列に属し且つ前記入力データ列の中でＰ番目（データ番号Ｐは整数）の入力データを始点とする系列上の第２段階の中間データを算出する前記工程（ｃ−２）と、Ｐ−４番目の入力データを始点とする系列上の第Ｌ＋１段階の前記中間データを算出する前記工程（ｃ−４）と、の２個の処理をそれぞれ並列に実行させるように制御する。
【００４５】
請求項１９記載の発明は、請求項１７または請求項１８記載のウェーブレット変換方法であって、前記入力データ列の中でＰ＋３番目（データ番号Ｐは整数）の入力データを始点とする系列上の中間データを算出する前記工程（ｃ−１）と、Ｐ−１番目の入力データを始点とする系列上の第Ｍ＋１段階の中間データを算出する前記工程（ｃ−３）と、の２個の処理をそれぞれ並列に実行させるように制御する。
【００４６】
請求項２０記載の発明は、請求項１７記載のウェーブレット変換方法であって、前記工程（ｃ−１）〜工程（ｃ−４）を並列に実行する。
【００４７】
請求項２１記載の発明は、請求項１３〜請求項２０の何れか１項に記載のウェーブレット変換方法であって、低域成分と高域成分に帯域分割された２次元画像データに対して、当該２次元画像データの水平方向および垂直方向のうちの一方向にライン単位で前記工程（ａ）〜工程（ｃ）を適用することによって合成データ列を算出し、この算出された合成データ列に対して、前記水平方向および前記垂直方向のうちの他方向に前記工程（ａ）〜工程（ｃ）を適用する、ウェーブレット変換方法。
【００４８】
【発明の実施の形態】
＜第１の実施形態＞
以下、本発明の第１の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。図１は、第１の実施形態に係るウェーブレット変換装置１の概略構成を示す図である。このウェーブレット変換装置１は、ウェーブレット変換によって分解された高域成分あるいは低域成分のサブバンドのデータを一時的に保持するバッファ８、外部供給のクロック信号ＣＬＫと同期して動作するＭＭＵ（メモリ管理部）２、第１リングメモリ３Ａ、水平フィルタリング部４Ａ、ラインバッファ回路５、第２リングメモリ３Ｂおよび垂直フィルタリング部４Ｂを備えて構成されている。ここで、第１リングメモリ３Ａ、水平フィルタリング部４Ａ、ラインバッファ回路５、第２リングメモリ３Ｂおよび垂直フィルタリング部４Ｂは、外部供給の画素クロック信号ＰＣＬＫと同期して動作する。
【００４９】
本実施形態では、ＭＭＵ２、水平フィルタリング部４Ａおよび垂直フィルタリング部４Ｂはハードウェアで構成されるが、この代わりに、マイクロプロセッサで実行する命令群を含むコンピュータ・プログラムで構成されてもよい。
【００５０】
このウェーブレット変換装置１に入力したサブバンドのデータはバッファ８に一時的に記憶される。ウェーブレット変換装置１は、サブバンドのデータにラインベースの２次元逆ＤＷＴを１回施す機能を有している。水平フィルタリング部４Ａと垂直フィルタリング部４Ｂとは、ラインバッファ回路５と第２リングメモリ３Ｂとを介して直列に接続されている。後述するように、サブバンドのデータは、水平フィルタリング部４Ａで水平方向にフィルタリングされた後に、垂直フィルタリング部４Ｂで垂直方向にフィルタリングされる。２次以上の分解レベルのデータに対して２次元逆ＤＷＴを実行する場合、このウェーブレット変換装置１を２回以上繰り返し利用すればよい。
【００５１】
ＭＭＵ２は、バッファ８と第１リングメモリ３Ａと第２リングメモリ３Ｂとのデータ入出力を制御する機能を有しており、バッファ８から読出した入力データを第１リングメモリ３Ａに転送し記憶させることができる。水平フィルタリング部４Ａは、第１リングメモリ３Ａから入力したデータに対して水平方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの８クロック周期で、その水平方向の高域成分と同方向の低域成分とを合成した出力データを２点算出してラインバッファ回路５に出力できる。よって、１点の出力データを算出するのに要する平均周期は４クロック周期である。
【００５２】
ラインバッファ回路５から出力されたデータは、第２リングメモリ３Ｂに記憶される。ＭＭＵ２は、この第２リングメモリ３Ｂから垂直フィルタリング部４Ｂに入データを入力させる。垂直フィルタリング部４Ｂは、入力データに対して垂直方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの８周期で、その垂直方向の高域成分と同方向の低域成分とを合成した出力データを２点算出し、出力する。
【００５３】
水平フィルタリング部４Ａの構成と垂直フィルタリング部４Ｂの構成は互いに同一である。図２に、フィルタリング部４（水平フィルタリング部４Ａまたは垂直フィルタリング部４Ｂ）の概略構成を示す。図２に示すリングメモリ３は、図１に示した第１リングメモリ３Ａと第２リングメモリ３Ｂとの何れか一方を表すものとする。
【００５４】
このフィルタリング部４は、入力データを選択的に取り込む第１データ・セレクタ１１、第１係数乗算器１２、遅延レジスタ１６、第２データ・セレクタ１７、第２係数乗算器１８、加算器２２、出力先選択部（ＤＭＵＸ）２３および制御部２４を備えて構成される。制御部２４は、画素クロック信号ＰＣＬＫと同期して動作する。第１，第２データ・セレクタ１１，１７は、この制御部２４から供給される選択制御信号ＳＥＬ０，ＳＥＬ１の値に応じて、リングメモリ３で取り込んだ入力データや遅延レジスタ１６に保持されたデータをそれぞれ第１端子Ｓ０と第２端子Ｓ１とに出力する。
【００５５】
また、第１係数乗算器１２は、制御部２４から供給される制御信号Ｃ０に応じて、第１データ・セレクタ１１の第１端子Ｓ０から出力されたデータに規格化係数κ，１／κの何れかを乗算して出力する（規格化処理）。第１係数乗算器１２から出力されたデータは、遅延レジスタ１６で画素クロック信号ＰＣＬＫの１クロック周期遅延した後に、第２データ・セレクタ１７に入力される。なお、第１係数乗算器１２と遅延レジスタ１６とで本発明の規格化手段が構成される。
【００５６】
また、第２係数乗算器１８は、制御部２４から供給される制御信号Ｃ１に応じて、第２データ・セレクタ１７の第１端子Ｓ０から出力されたデータにリフティング係数−α，−β，−γ，−δの何れかを乗算して出力する（係数乗算処理）。加算器２２は、第２係数乗算器１８から出力されたデータと、第２データ・セレクタ１７の第２端子Ｓ１から出力されたデータとを加算して出力先選択部２３に出力する（加算処理）。また、１／κで規格化処理されたデータは第２データ・セレクタ１７の第３端子Ｓ２から外部のＭＭＵ２にも出力される。ＭＭＵ２は、第２データ・セレクタ１７の第３端子Ｓ２からそれぞれ外部へ出力されたデータをリングメモリ３に転送し記憶させることができる。
【００５７】
また、出力先選択部２３は、制御部２４から供給される選択制御信号ＳＥＬ２の値に応じて、加算器２２から入力するデータを第１端子Ｋ０〜第３端子Ｋ２のいずれかから出力する。第２係数乗算器１８と加算器２２での係数乗算処理と加算処理は、１点当たり１クロック周期内に実行される。したがって、１点の入力データにリフティング係数を乗算し加算するのに要する期間は、画素クロック信号ＰＣＬＫの１周期である。
【００５８】
なお、係数レジスタ１９と加算器２２とはデータ・セレクタ１７から２点の入力データを取り込んで演算する２点演算部を構成する。また、この２点演算部と出力先選択部２３とで中間データ算出手段が構成される。
【００５９】
出力先選択部２３の第１端子Ｋ０および第２端子Ｋ１から出力されたデータは、低域成分と高域成分の入力データが合成された出力データとして外部へ出力される。
【００６０】
また、出力先選択部２３の第２端子Ｋ１から出力されたデータは分岐して外部のＭＭＵ２にも出力される。また、第３端子Ｋ２から出力されるデータは外部のＭＭＵ２に出力される。ＭＭＵ２は、第２端子Ｋ１と第３端子Ｋ２からそれぞれ外部へ出力されたデータをリングメモリ３に転送し記憶させることができる。
【００６１】
次に、以上のフィルタリング部４を用いたリフティング演算の代表例を、図３〜図１０を参照しつつ以下に説明する。図３〜図１０は、９×７タップのDaubechiesフィルタのリフティング構成を模式的に示す格子図である。この格子図の演算は、図３７の場合と同様に行われる。なお、図３〜図１０では、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α，−β，−γ，−δと規格化係数κ，１／κとを表示していない。
【００６２】
図３〜図１０に示す通り、入力データ…，Ｙ（２ｎ−１），Ｙ（２ｎ），…，Ｙ（２ｎ＋９），…は、それぞれ、複数の段階に亘る一系列の格子点（中間データ）に変換され、出力データ…，Ｘ（２ｎ−１），Ｘ（２ｎ），…，Ｘ（２ｎ＋９），として出力される。例えば、入力データＹ（２ｎ）は、２段階の中間データ（格子点）を経た後、出力データＸ（２ｎ）として出力される。以下、入力データを規格化して中間データを生成する処理を規格化処理（上記数式（１）中のstep１およびstep２が該当する）と呼び、その他の中間データを算出する処理を変換処理（上記step３およびstep４が該当する）と呼ぶ。なお、本実施形態や後述する他の実施形態では、各系列で２段階の中間データが算出されるが、本発明ではこれに限らず、１段階だけの中間データを算出するリフティング構成もあり得る。実際に、５×３タップや１３×７タップのフィルタの場合、１段階だけの中間データを算出するリフティング構成が可能である。
【００６３】
図３〜図１０は、本実施形態でのＮ回目（Ｎは整数）〜Ｎ＋７回目の処理の内容を示している。Ｎ回目処理（図３）では、対象領域Ａ１内の２点の中間データＳ1n+2とＤ1n+1とを用いた上記ステップａ（図３８）の２点演算を画素クロック信号ＰＣＬＫの１周期（１クロック周期）内に実行して、偶数番目の入力データＹ（２ｎ＋４）を始点とする系列上の第２段階の一時データ（Ｓ2n+2）を算出する。すなわち、偶数番目の中間データＳ1n+2と、この中間データＳ1n+2に対して１点前の系列上の奇数番目の中間データＤ1n+1とを用いて上記ステップａの処理が実行される。
【００６４】
また、対象領域Ａ１における演算処理の１クロック前の周期において、対象領域Ｎ１においては、入力データＹ（２ｎ＋４）に規格化係数κを乗算する規格化処理を実行して、入力データＹ（２ｎ＋４）の系列上の第１段階の中間データＳ1n+2が算出されている。
【００６５】
このＮ回目の具体的な処理の内容は次の通りである。図２に示すリングメモリ３は、入力データや中間データや一時データを格納する５ライン（系列）の記憶領域を備えており、参照済みの古いデータを格納する記憶領域に新たなデータを順番に上書きする構造を持つ。
【００６６】
まず、１クロック前の周期で実行される対象領域Ｎ１における処理から説明する。ＭＭＵ２は、このリングメモリ３に一時記憶された入力データＹ（２ｎ＋４）を第１データ・セレクタ１１に出力させる。制御部２４は、選択制御信号ＳＥＬ０を第１データ・セレクタ１１に供給して、入力データＹ（２ｎ＋４）を第１係数乗算器１２に出力させる。第１係数乗算器１２は、制御部２４から供給された制御信号Ｃ０に従って選択した規格化係数κを乗算器１４に出力し、乗算器１４は、入力データＹ（２ｎ＋４）に規格化係数κを乗算して得たデータκ×Ｙ（２ｎ＋４）＝Ｓ1n+2を遅延レジスタ１６に出力する。この第１係数乗算器１２での係数乗算処理は１クロック周期内に実行される。
【００６７】
１クロック周期後、遅延レジスタ１６に保持された中間データＳ1n+2が第２データ・セレクタ１７に出力される。また、ＭＭＵ２は、リングメモリ３に一時記憶された中間データＤ1n+1を第１データ・セレクタ１１に出力させる。第１データ・セレクタ１１は、制御部２４から供給された選択制御信号ＳＥＬ０に応じて、第２端子Ｓ１から中間データＤ1n+1を出力する。出力されたデータは、第２データ・セレクタ１７に入力される。第２データ・セレクタ１７は、制御部２４から供給される選択制御信号ＳＥＬ１に応じて、中間データＤ1n+1を第１端子Ｓ０から第２係数乗算器１８に出力し、中間データＳ1n+2を第２端子Ｓ１から加算器２２に出力させる。
【００６８】
第２係数乗算器１８は、制御部２４から供給された制御信号Ｃ１に従って選択したリフティング係数δを乗算器２０に出力し、乗算器２０は、中間データＤ1n+1にリフティング係数δを乗算して得たデータδ×Ｄ１ｎ＋１を２の補数演算回路２１に出力する。２の補数演算回路２１は、入力データの符号を反転する演算回路であり、−δ×Ｄ1n+1を加算器２２に出力する。そして、加算器２２は、２点のデータ−δ×Ｄ1n+1とＳ1n+2とを加算することで一時データ（Ｓ2n+2）を算出し、出力先選択部２３に出力する。この一時データ（Ｓ2n+2）の算出処理は１クロック周期内に実行される。
【００６９】
出力先選択部２３は、制御部２４から供給された選択制御信号ＳＥＬ２の値に従って選択した第３端子Ｋ２から、外部のＭＭＵ２に一時データ（Ｓ2n+2）を出力する。ＭＭＵ２は、その一時データ（Ｓ2n+2）をリングメモリ３に転送し、参照済みの記憶領域入力データＹ（２ｎ＋４）に上書きさせる。
【００７０】
次の第Ｎ＋１回目処理（図４）では、対象領域Ａ２内の２点の中間データＤ1n+1とＳ2n+1とを用いた上記ステップａの２点演算を１クロック周期内に実行して、奇数番目の入力データＹ（２ｎ＋３）を始点とする系列上の第２段階の一時データ（Ｄ2n+1）を算出する。中間データＳ2n+1は、入力データＹ（２ｎ＋３）に対して１点前の入力データＹ（２ｎ＋２）を始点とする系列上の第２段階のデータである。具体的には、ＭＭＵ２は、リングメモリ３から、計算済みの中間データＤ1n+1とＳ2n+1とを第１データ・セレクタ１１に出力させる。次に、制御部２４の制御により、第１データ・セレクタ１１は、中間データＤ1n+1とＳ2n+1をそれぞれ第２，３端子Ｓ１，Ｓ２から第２データ・セレクタ１７に出力する。さらに、制御部２４の制御により、第２データ・セレクタ１７は、中間データＳ2n+1を第１端子Ｓ０から第２係数乗算器１８に、中間データＤ1n+1を第２端子Ｓ１から加算器２２に出力する。
【００７１】
第２係数乗算器１８は、制御部２４から供給された制御信号Ｃ１に従って選択したリフティング係数γを乗算器２０に出力し、乗算器２０は、中間データＳ2n+1にリフティング係数γを乗算して得たデータγ×Ｓ２ｎ＋１を２の補数演算回路２１に出力する。そして、加算器２２は、２の補数演算回路２１の出力データである−γ×Ｓ2n+1と第２データ・セレクタ１７からの出力であるＤ1n+1を加算することで一時データ（Ｄ2n+1）を算出し、出力先選択部２３に出力する。出力先選択部２３は、制御部２４の制御により、その一時データ（Ｄ2n+1）を第３端子Ｋ２から外部のＭＭＵ２に出力し、ＭＭＵ２は、その一時データ（Ｄ2n+1）をリングメモリ３に転送し、参照済みの記憶領域中間データＤ１n+1に上書きさせる。
【００７２】
次の第Ｎ＋２回目処理（図５）では、対象領域Ａ３内の２点の中間データＳ2n+1とＤ2nとを用いた上記ステップａの２点演算を１クロック周期内に実行して、偶数番目の入力データＹ（２ｎ＋２）を始点とする系列上の出力一時データ（Ｘ（２ｎ＋２））を算出する。中間データＤ2nは、入力データＹ（２ｎ＋２）に対して１点前の入力データＹ（２ｎ＋１）を始点とする系列上の第２段階の中間データである。具体的には、ＭＭＵ２は、リングメモリ３から、計算済みの中間データＳ2n+1とＤ2nとを第１データ・セレクタ１１に出力させる。次に、制御部２４の制御により、第１データ・セレクタ１１は、中間データＳ2n+1とＤ2nをそれぞれ第２，３端子Ｓ１，Ｓ２から第２データ・セレクタ１７に出力する。さらに、制御部２４の制御により、第２データ・セレクタ１７は、中間データＤ2nを第１端子Ｓ０から第２係数乗算器１８に、中間データＳ2n+1を第２端子Ｓ１から加算器２２に出力する。
【００７３】
第２係数乗算器１８は、中間データＤ2nにリフティング係数βを乗算するとともに、リフティング係数βによって重み付けられたβ×Ｄ２ｎを２の補数演算回路２１に出力する。そして、加算器２２は、２の補数演算回路２１の出力データである−β×Ｄ2nと第２データ・セレクタ１７からの出力であるＳ2n+1を加算することで出力一時データ（Ｘ（２ｎ＋２））を算出し、出力先選択部２３に出力する。出力先選択部２３は、制御部２４の制御により、その一時データ（Ｘ（２ｎ＋２））を第３端子Ｋ２から外部のＭＭＵ２に出力し、ＭＭＵ２は、その一時データ（Ｘ（２ｎ＋２））をリングメモリ３に転送し、参照済みの記憶領域中間データＳ2n+1に上書きさせる。
【００７４】
次の第Ｎ＋３回目処理（図６）では、対象領域Ａ４内の中間データＤ2nと出力データＸ（２ｎ）とを用いた上記ステップａの２点演算を１クロック周期内に実行して、奇数番目の入力データＹ（２ｎ＋１）を始点とする系列上の出力一時データ（Ｘ（２ｎ＋１））を算出する。具体的には、ＭＭＵ２は、リングメモリ３から、計算済みの中間データＤ2nと出力データＸ（２ｎ）とを第１データ・セレクタ１１に出力させる。次に、制御部２４の制御により、第１データ・セレクタ１１は、中間データＤ2nとＸ（２ｎ）とをそれぞれ第２，３端子Ｓ１，Ｓ２から第２データ・セレクタ１７に出力する。さらに、制御部２４の制御により、第２データ・セレクタ１７は、Ｘ（２ｎ）を第１端子Ｓ０から第２係数乗算器１８に、中間データＤ2nを第２端子Ｓ１から加算器２２に出力する。
【００７５】
第２係数乗算器１８は、Ｘ（２ｎ）にリフティング係数αを乗算するとともに、リフティング係数αによって重み付けられたデータα×Ｘ（２ｎ）を２の補数演算回路２１に出力する。そして、加算器２２は、２の補数演算回路２１の出力である−α×Ｘ（２ｎ）と第２データ・セレクタ１７からの出力であるＤ2nとを加算することで出力一時データ（Ｘ（２ｎ＋１））を算出し、出力先選択部２３に出力する。出力先選択部２３は、制御部２４の制御により、その一時データ（Ｘ（２ｎ＋１））を第３端子Ｋ２から外部のＭＭＵ２に出力し、ＭＭＵ２は、その一時データ（Ｘ（２ｎ＋１））をリングメモリ３に転送し、参照済みの記憶領域中間データＤ2nに上書きさせる。
【００７６】
次のＮ＋４回目処理（図７）では、上記Ｎ回目処理（図３）で算出した一時データ（Ｓ2n+2）と対象領域Ｂ１内の中間データＤ1n+1とを用いた上記ステップｂ（図３８）の２点演算を１クロック周期内に実行して、偶数番目の入力データＹ（２ｎ＋４）を始点とする系列上の第２段階の中間データＳ2n+2を算出する。中間データＤ1n+2は、一時データ（Ｓ2n+2）の系列に対して１点後の系列上のデータである。
【００７７】
また、この対象領域Ｂ１における演算処理を実行する１クロック前の周期において、対象領域Ｎ２では、入力データＹ（２ｎ＋５）に規格化係数１／κを乗算する規格化処理が実行される。これにより、入力データＹ（２ｎ＋５）の系列上の第１段階の中間データＤ1n+2が算出されている。
【００７８】
具体的な処理を１クロック前の周期から説明する。対象領域Ｂ１の演算を行なう１クロック前の周期において、ＭＭＵ２は、リングメモリ３に一時記憶された入力データＹ（２ｎ＋５）を第１データ・セレクタ１１に出力させる。制御部２４は、選択制御信号ＳＥＬ０を第１データ・セレクタ１１に供給して、入力データＹ（２ｎ＋５）を第１係数乗算器１２に出力させる。第１係数乗算器１２は、制御部２４の制御に従い入力データＹ（２ｎ＋５）に規格化係数１／κを乗算し、得られたデータ（１／κ）×Ｙ（２ｎ＋５）＝Ｄ1n+2を遅延レジスタ１６に出力する。この第１係数乗算器１２での係数乗算処理は１クロック周期内に実行される。
【００７９】
１クロック周期後、遅延レジスタ１６に保持された中間データＤ1n+2が第２データ・セレクタ１７に出力される。また、ＭＭＵ２は、リングメモリ３に一時記憶された一時データ（Ｓ2n+2）を第１データ・セレクタ１１に出力させる。制御部２４は、選択制御信号ＳＥＬ０を第１データ・セレクタ１１に供給して、一時データ（Ｓ2n+2）を第２データ・セレクタ１７に出力させる。
【００８０】
そして、制御部２４は、選択制御信号ＳＥＬ１を第２データ・セレクタ１７に供給して、中間データＤ1n+2を第１端子Ｓ０から第２係数乗算器１８に出力し、一時データ（Ｓ2n+2）を第２端子Ｓ１から加算器２２に出力させる。さらに、第２データ・セレクタ１７は、制御部２４の制御により、中間データＤ1n+2を第３端子Ｓ２から外部のＭＭＵ２に出力し、ＭＭＵ２は、その中間データＤ1n+2をリングメモリ３に転送し、参照済みの記憶領域入力データＹ（２ｎ＋５）に上書きさせる。
【００８１】
第２係数乗算器１８は、制御部２４から供給された制御信号Ｃ１に従って選択したリフティング係数δを乗算器２０に出力し、乗算器２０は、中間データＤ1n+2にリフティング係数δを乗算して得たデータδ×Ｄ１ｎ＋２を２の補数演算回路２１に出力し、２の補数演算回路２１はデータ−δ×Ｄ1n+2を加算器２２に出力する。そして、加算器２２は、２点のデータ−δ×Ｄ1n+2と一時データ（Ｓ2n+2）とを加算することで中間データＳ2n+2を算出し、出力先選択部２３に出力する。この中間データＳ2n+2の算出処理は１クロック周期内に実行される。
【００８２】
出力先選択部２３は、制御部２４から供給された選択制御信号ＳＥＬ２の値に従って選択した第３端子Ｋ２から、外部のＭＭＵ２に中間データＳ2n+2を出力する。ＭＭＵ２は、その中間データＳ2n+2をリングメモリ３に転送し、参照済みの記憶領域一時データ（Ｓ2n+2）に上書きさせる。
【００８３】
次のＮ＋５回目処理（図８）では、上記Ｎ＋１回目処理（図４）で算出した一時データ（Ｄ2n+1）と、前記Ｎ＋４回目処理（図７）で算出した対象領域Ｂ１内の中間データＳ2n+2とを用いた上記ステップｂの２点演算を１クロック周期内に実行して、奇数番目の入力データＹ（２ｎ＋３）を始点とする系列上の第２段階の中間データＤ2n+1を算出する。なお、中間データＳ2n+2は、一時データ（Ｄ2n+1）の系列に対して１点後の系列上の第２段階のデータである。
【００８４】
具体的には、ＭＭＵ２は、リングメモリ３から、一時データ（Ｄ2n+1）と中間データＳ2n+2とを第１データ・セレクタ１１に出力させる。次に、制御部２４の制御により、第１データ・セレクタ１１は、一時データ（Ｄ2n+1）および中間データＳ2n+2を第２，第３端子Ｓ１，Ｓ２から第２データ・セレクタ１７に出力する。さらに、制御部２４の制御により、第２データ・セレクタ１７は、中間データＳ2n+2を第１端子Ｓ０から第２係数乗算器１８に出力し、一時データ（Ｄ2n+1）を第２端子Ｓ１から加算器２２に出力する。第２係数乗算器１８は、中間データＳ2n+2にリフティング係数γを乗算するとともに、２の補数演算回路２１において係数の符号を反転させる。加算器２２は、リフティング係数−γを重み付けされた中間データ−γ×Ｓ2n+2と一時データ（Ｄ2n+1）とを加算して中間データＤ2n+1を算出し、出力先選択部２３に出力する。出力先選択部２３は、制御部２４の制御により、その中間データＤ2n+1を第３端子Ｋ２から外部のＭＭＵ２に出力し、ＭＭＵ２は、その中間データＤ2n+1をリングメモリ３に転送し、参照済みの記憶領域一時データ（Ｄ2n+1）に上書きさせる。
【００８５】
次のＮ＋６回目処理（図９）では、上記Ｎ＋２回目処理（図５）で算出した出力一時データ（Ｘ（２ｎ＋２））と、前記Ｎ＋５回目処理（図８）で算出した対象領域Ｂ２内の中間データＤ2n+1とを用いた上記ステップｂの２点演算を１クロック周期内に実行して、偶数番目の入力データＹ（２ｎ＋２）を始点とする系列上の出力データＸ（２ｎ＋２）を算出する。なお、中間データＤ2n+1は、出力一時データ（Ｘ（２ｎ＋２））の系列に対して１点後の系列上の第２段階の中間データである。
【００８６】
具体的には、ＭＭＵ２は、リングメモリ３から、一時データ（Ｘ（２ｎ＋２））と中間データＤ2n+1とを第１データ・セレクタ１１に出力させる。次に、制御部２４の制御により、第１データ・セレクタ１１は、一時データ（Ｘ（２ｎ＋２））および中間データＤ2n+1を第２，第３端子Ｓ１，Ｓ２から第２データ・セレクタ１７に出力する。さらに、制御部２４の制御により、第２データ・セレクタ１７は、中間データＤ2n+1を第１端子Ｓ０から第２係数乗算器１８に出力し、一時データ（Ｘ（２ｎ＋２））を第２端子Ｓ１から加算器２２に出力する。第２係数乗算器１８は、中間データＤ2n+1にリフティング係数βを乗算するとともに、２の補数演算回路２１において係数の符号を反転させる。加算器２２は、リフティング係数−βを重み付けされた中間データ−β×Ｄ2n+1と一時データ（Ｘ（２ｎ＋２））とを加算して出力データＸ（２ｎ＋２）を算出し、出力先選択部２３に出力する。出力先選択部２３は、制御部２４の制御により、その出力データＸ（２ｎ＋２）を第２端子Ｋ１から外部と外部のＭＭＵ２に出力し、ＭＭＵ２は、その出力データＸ（２ｎ＋２）をリングメモリ３に転送し、参照済みの記憶領域一時データ（Ｘ（２ｎ＋２））に上書きさせる。
【００８７】
次のＮ＋７回目処理（図１０）では、上記Ｎ＋３回目処理（図６）で算出した出力一時データ（Ｘ（２ｎ＋１））と、前記Ｎ＋６回目処理（図９）で算出した対象領域Ｂ４内の出力データＸ（２ｎ＋２）とを用いた上記ステップｂの２点演算を１クロック周期内に実行して、奇数番目の入力データＹ（２ｎ＋１）を始点とする系列上の出力データＸ（２ｎ＋１）を算出する。なお、出力データＸ（２ｎ＋２）は、出力一時データ（Ｘ（２ｎ＋１））の系列に対して１点後の系列上の出力データである。
【００８８】
具体的には、ＭＭＵ２は、リングメモリ３から、一時データ（Ｘ（２ｎ＋１））と出力データＸ（２ｎ＋２）とを第１データ・セレクタ１１に出力させる。次に、制御部２４の制御により、第１データ・セレクタ１１は、一時データ（Ｘ（２ｎ＋１））および出力データＸ（２ｎ＋２）を第２，第３端子Ｓ１，Ｓ２から第２データ・セレクタ１７に出力する。さらに、制御部２４の制御により、第２データ・セレクタ１７は、出力データＸ（２ｎ＋２）を第１端子Ｓ０から第２係数乗算器１８に出力し、一時データ（Ｘ（２ｎ＋１））を第２端子Ｓ１から加算器２２に出力する。第２係数乗算器１８は、出力データＸ（２ｎ＋２）にリフティング係数αを乗算するとともに、２の補数演算回路２１において係数の符号を反転させる。加算器２２は、リフティング係数−αを重み付けされた出力データ−α×Ｘ（２ｎ＋２）と一時データ（Ｘ（２ｎ＋１））とを加算して出力データＸ（２ｎ＋１）を算出し、出力先選択部２３に出力する。出力先選択部２３は、制御部２４の制御により、その出力データＸ（２ｎ＋１）を第１端子Ｋ０から外部に出力する。
【００８９】
次のＮ＋８回目処理（図示せず）では、対象領域を除いて上記Ｎ回目処理（図３）と同様の処理が行われる。以降、Ｎ＋１回目〜Ｎ＋７回目までの処理が繰り返される。以上のように、上記Ｎ回目処理（図３）〜上記Ｎ＋７回目処理（図１０）と同様の処理が、全ての点の出力データ…，Ｘ（２ｎ−１），Ｘ（２ｎ），…が算出されるまで対象領域を移動させつつ実行される。
【００９０】
また、本実施形態では、上記Ｎ回目〜Ｎ＋３回目の処理で示したように、最終段階の出力一時データ（Ｘ（２ｎ＋１））が算出されるまで上記ステップａの２点演算が実行され、その後、上記Ｎ＋４回目〜Ｎ＋７回目の処理で示したように、上記Ｎ回目〜Ｎ＋３回目の処理で算出した全ての一時データを中間データあるいは出力データに変換する上記ステップｂの２点演算が行われている。
【００９１】
以上のように、本実施形態に係るウェーブレット変換方法では、入力データ…，Ｙ（２ｎ），Ｙ（２ｎ＋１），…を規格化する処理と、規格化された中間データを他の中間データに変換する変換処理とを１クロック周期内に並列に同時実行するため、１点の出力データを算出するのに要する平均周期を４クロック周期とすることができ、出力データの算出周期を短縮化できる。
【００９２】
次に、上記ウェーブレット変換装置１を用いたラインベースの２次元逆ＤＷＴ処理を以下に説明する。
【００９３】
水平フィルタリング部４Ａに入力するサブバンド（帯域成分）は、図１１に示すように、サブバンド２３ＬＬおよび２３ＨＬ、あるいは、サブバンド２３ＬＨおよび２３ＨＨである。ここで、サブバンド２３ＬＬは、水平方向の低域成分（Ｌ）と垂直方向の低域成分（Ｌ）とからなり、サブバンド２３ＨＬは、水平方向の高域成分（Ｈ）と垂直方向の低域成分（Ｌ）とからなり、サブバンド２３ＬＨは、水平方向の低域成分（Ｌ）と垂直方向の高域成分（Ｈ）とからなり、サブバンド２３ＨＨは、水平方向の高域成分（Ｈ）と垂直方向の高域成分（Ｈ）とからなる。
【００９４】
水平フィルタリング部４Ａに入力するサブバンド（帯域成分）が、サブバンド２３ＬＬおよび２３ＨＬ、あるいは、サブバンド２３ＬＨおよび２３ＨＨである場合には、図３〜図１０で示した入力データ・・・，Ｙ（ｎ−１），Ｙ（ｎ），Ｙ（ｎ＋１），・・・は、サブバンド２３ＬＬと２３ＨＬの水平方向のデータを交互に配列したデータ、あるいは、サブバンド２３ＬＨと２３ＨＨの水平方向のデータを交互に配列したデータである。そして、サブバンド２３ＬＬと２３ＨＬとからなる入力データに対して水平フィルタリングを施すことにより、水平方向の合成処理が行なわれ、サブバンド２３Ｌが出力される。また、サブバンド２３ＬＨと２３ＨＨとからなる入力データに対して水平フィルタリングを施すことにより、水平方向の合成処理が行なわれ、サブバンド２３Ｈが出力される。図３〜図１０で示した出力データ・・・，Ｘ（ｎ−１），Ｘ（ｎ），Ｘ（ｎ＋１），・・・は、サブバンド２３Ｌあるいはサブバンド２３Ｈの水平方向の１ラインのデータを示している。
【００９５】
次に、垂直フィルタリング部４Ｂが入力するサブバンドは、図１２に示すように、サブバンド２３Ｌおよびサブバンド２３Ｈである。この場合には、図３〜図１０で示した入力データ・・・，Ｙ（ｎ−１），Ｙ（ｎ），Ｙ（ｎ＋１），・・・は、サブバンド２３Ｌと２３Ｈの垂直方向のデータを交互に配列したデータである。そして、サブバンド２３Ｌと２３Ｈとからなる入力データに対して垂直フィルタリングを施すことにより、垂直方向の合成処理が行なわれ、画像データ２３が出力される。図３〜図１０で示した出力データ・・・，Ｘ（ｎ−１），Ｘ（ｎ），Ｘ（ｎ＋１），・・・は、画像データ２３の垂直方向の１ラインのデータを示している。画像データ２３は、水平画素数Ｗ、垂直画素数Ｈを有する矩形状のデータである。
【００９６】
サブバンド２３ＬＬ，２３ＨＬ，２３ＬＨ，２３ＨＨは、垂直画素数Ｈ／２、水平画素数Ｗ／２を有する矩形状のデータであって、図１２に模式的に示すように、偶数行偶数列のサブバンド２３ＬＬおよび偶数行奇数列のサブバンド２３ＨＬを１組として、あるいは、奇数行偶数列のサブバンド２３ＬＨおよび奇数行奇数列をサブバンド２３ＨＨの１組として、垂直方向に配列するデータ列…，Ｙi（２ｎ），Ｙi（２ｎ＋１），Ｙi（２ｎ＋２）…として水平フィルタリング部４Ａに入力させられる。入力データＹi（ｋ）の添字ｉは、当該入力データＹi（ｋ）が所属する画素列の番号を示すものとする。画素列の番号ｉは、ｉ＝０，１，…，Ｗ−１（Ｗ：水平画素数）の値をとる。図中、サブバンド２３ＬＬおよび２３ＨＬを１組とした偶数行の記憶領域２４Ｌと、サブバンド２３ＬＨおよびサブバンド２３ＨＨを１組とした奇数行の記憶領域２４Ｈとを２領域に分割しているが、メモリ状のデータ配置はこれに限定されるものではない。
【００９７】
具体的には、第１リングメモリ３Ａと水平フィルタリング部４Ａは、上記Ｎ回目処理（図３）〜上記Ｎ＋７回目処理（図１０）を含む各回の処理を、低域側（記憶領域２４Ｌ側）と高域側（記憶領域２４Ｈ側）を交互に切り替えながら、各回の処理を画素単位で繰り返し実行する。
【００９８】
例えば、上記Ｎ回目処理（図３）が、メモリ領域２４Ｌ側の１番目の画素行に対して１回実行された後に、上記Ｎ＋１回目処理（図４）が１回実行され、更に、上記Ｎ＋２回目処理（図５）が１回実行され、・・・といった処理が行われる。同様に、記憶領域２４Ｈ側の１番目の画素行に対して実行され、次に、記憶領域２４Ｌ側の２番目の画素行に対して実行された後に、記憶領域２４Ｈ側の２番目の画素行に対して実行され、次に、記憶領域２４Ｌ側の３番目の画素行に対して実行された後に、記憶領域２４Ｈ側の３番目の画素行に対して実行され、・・・、最終的に、記憶領域２４Ｌ側のＨ／２番目の画素行に対して実行された後に、記憶領域２４Ｈ側のＨ／２番目の画素行に対して実行される。
【００９９】
なお、第１リングメモリ３Ａは、図１３に模式的に示すように、入力データ…，Ｘj（ｋ），Ｘj+1（ｋ），…に対応する５点（５画素）のデータを保持する記憶領域２６を有しており、上記一時データや中間データを保持することができる。
【０１００】
この結果、水平フィルタリング部４Ａからは、サブバンド２３ＬＬと２３ＨＬとが合成されたサブバンド２３Ｌの各水平ライン単位（Ｈ／２高さ）の出力と、サブバンド２３ＬＨと２３ＨＨとが合成されたサブバンド２３Ｈの各水平ライン単位（Ｈ／２高さ）の出力とが、交互にで連続的に出力される。そして、サブバンド２３Ｌの水平ラインが、ラインバッファ回路５内のＬ用ラインバッファ５Ｌにバッファリングされ、サブバンド２３Ｈの水平ラインが、ラインバッファ回路５内のＨ用ラインバッファ５Ｈにバッファリングされる。
【０１０１】
例えば、上記Ｎ＋６回目処理（図９）が１番目〜Ｗ番目の各画素に対して連続的に実行された結果、２ｎ＋２番目の水平成分の合成された１ラインのデータＸ0（２ｎ＋２），Ｘ2（２ｎ＋２），…，Ｘj（２ｎ＋２），…，Ｘｗ-1（２ｎ＋２）が連続的に出力され、Ｌ用ラインバッファ回路５Ｌでバッファリングされる。次に、上記Ｎ＋７回目処理（図１０）が１番目〜Ｗ番目の各画素に対して連続的に実行された結果、２ｎ＋１番目の水平成分の合成された１ラインのデータＸ0（２ｎ＋１），Ｘ2（２ｎ＋１），…，Ｘj（２ｎ＋１），…，Ｘｗ-1（２ｎ＋１）が連続的に出力され、Ｈ用ラインバッファ回路５Ｈでバッファリングされる。
【０１０２】
ラインバッファ回路５は、ＭＭＵ２の制御により、Ｌ用ラインバッファ５Ｌ内の１水平ラインの成分とＨ用ラインバッファ５Ｈ内の１水平ラインの成分とを１ラインづつ交互に第２リングメモリ３Ｂに供給する。第２リングメモリ３Ｂに出力されたデータが垂直フィルタリング部４Ｂで処理される。
【０１０３】
具体的には、第２リングメモリ３Ｂと垂直フィルタリング部４Ｂは、上記Ｎ回目処理（図３）〜上記Ｎ＋７回目処理（図１０）を含む各画素列について処理を水平ライン単位で繰り返し実行する。例えば、上記Ｎ回目処理（図３）が、０番目の画素列に対して実行された後に、１番目の画素列に対して実行され、次に、２番目の画素列に対して実行され、・・・、最終的に、Ｗ−１番目の画素列に対して実行される。次に、上記Ｎ＋１回目処理（図４）が、０番目の画素列に対して実行された後に、１番目の画素列に対して実行され、更に、２番目の画素列に対して実行され、・・・、最終的に、Ｗ−１番目の画素列に対して実行される。このようにして、各回の処理が全ての画素列について順次実行される。なお、第２リングメモリ３Ｂは、図１２に模式的に示すように、入力データ列に対応する５×Ｗ点（５ライン）のデータを保持する記憶領域２４を有しており、上記一時データや中間データを保持することができる。
【０１０４】
この結果、垂直フィルタリング部４Ｂは、水平ライン単位で入力するデータ行から画像データ２３を出力するのである。
【０１０５】
以上の処理を再帰的に実行させることで、任意次数の分解レベルの帯域成分を合成処理し、画像データを復元することができる。すなわち、ｋ−１次（ｋは２以上の整数）の分解レベルにおけるサブバンドＬＬ（ｋ−１），ＨＬ（ｋ−１），ＬＨ（ｋ−１），ＨＨ（ｋ−１）を、ウェーブレット変換装置１に再帰的に入力させることで、ｋ次のサブバンドＬＬ（ｋ）を得ることが可能である。
【０１０６】
以上のように、本実施形態に係るウェーブレット変換装置１では、図２に示す構成を有する水平フィルタリング部４Ａと垂直フィルタリング部４Ｂとを備えるため、出力データの算出周期を短縮化できる。したがって、ラインベースの２次元ウェーブレット変換を短時間で高速で行うことが可能である。
【０１０７】
＜第２の実施形態＞
次に、本発明の第２の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。図１４は、第２の実施形態に係るウェーブレット変換装置３０の概略構成を示す図である。このウェーブレット変換装置３０は、サブバンドの２次元画像データを一時的に保持するバッファ３４、外部供給のクロック信号ＣＬＫと同期して動作するＭＭＵ（メモリ管理部）３１、第１リングメモリ３２Ａ、水平フィルタリング部３３Ａ、第２リングメモリ３２Ｂおよび垂直フィルタリング部３３Ｂを備えて構成されている。ここで、第１リングメモリ３２Ａ、水平フィルタリング部３３Ａ、第２リングメモリ３２Ｂおよび垂直フィルタリング部３３Ｂは、外部供給の画素クロック信号ＰＣＬＫと同期して動作する。
【０１０８】
なお、図中、第１および第２リングメモリ３２Ａ，３２Ｂの画素数あるいはライン数が８ｏｒ９となっているが、この第２の実施形態においては、第１リングメモリ３２Ａは、９点のリングメモリであり、第２リングメモリ３２Ｂは、９ラインのリングメモリである。
【０１０９】
本実施形態では、ＭＭＵ３１、水平フィルタリング部３３Ａおよび垂直フィルタリング部３３Ｂはハードウェアで構成されるが、この代わりに、マイクロプロセッサで実行する命令群を含むコンピュータ・プログラムで構成されてもよい。
【０１１０】
このウェーブレット変換装置３０に入力したサブバンドの２次元画像データはバッファ３４に一時的に記憶される。ウェーブレット変換装置３０は、２次元画像データにラインベースの２次元逆ＤＷＴを１回施す機能を有し、ｋ＋１次レベルのサブバンド２３ＬＬ，２３ＨＬ，２３ＬＨ，２３ＨＨを合成して、ｋ次のサブバンド２３ＬＬを生成する。水平フィルタリング部３３Ａと垂直フィルタリング部３３Ｂとは、第２リングメモリ３２Ｂを介して直列に接続されている。サブバンドのデータは、水平フィルタリング部３３Ａで水平方向にフィルタリングされた後に、垂直フィルタリング部３３Ｂで垂直方向にフィルタリングされる。２次以上の分解レベルのサブバンドを合成する２次元逆ＤＷＴを実行する場合、このウェーブレット変換装置３０を２回以上繰り返し利用すればよい。
【０１１１】
ＭＭＵ３１は、バッファ３４と第１リングメモリ３２Ａと第２リングメモリ３２Ｂとのデータ入出力を制御する機能を有しており、バッファ３４から読出したサブバンドのデータを第１リングメモリ３２Ａに転送し記憶させることができる。詳しくは、サブバンド２３ＬＬおよび２３ＨＬの水平方向のデータが画素単位で交互に配列されたデータ、および、サブバンド２３ＬＨおよび２３ＨＨの水平方向のデータが画素単位で交互に配列されたデータとが、第１リングメモリ３２Ａに記憶される。水平フィルタリング部３３Ａは、第１リングメモリ３２Ａから入力したデータに対して水平方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの１クロック周期で、その高域成分と低域成分とを合成したデータを１点ずつ算出して第２リングメモリ３２Ｂに出力できる。詳しくは、サブバンド２３ＬＬおよび２３ＨＬが合成されたデータと、サブバンド２３ＬＨおよび２３ＨＨが合成されたデータとが交互に出力されて第２リングメモリ３２Ｂに記憶される。
【０１１２】
次に、ＭＭＵ３１は、この第２リングメモリ３２Ｂから垂直フィルタリング部３３Ｂにデータを入力させる。垂直フィルタリング部３３Ｂは、入力したデータに対して垂直方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの１クロック周期で、高域成分と低域成分とを合成したデータを１点ずつ算出し、出力する。
【０１１３】
水平フィルタリング部３３Ａの構成と垂直フィルタリング部３３Ｂの構成とは互いに同一である。図１５に、フィルタリング部３３（水平フィルタリング部３３Ａまたは垂直フィルタリング部３３Ｂ）の概略構成を示す。図１５に示すリングメモリ３２は、図１４に示した第１リングメモリ３２Ａと第２リングメモリ３２Ｂとの何れか一方を表すものとする。
【０１１４】
このフィルタリング部３３は、入力データを選択的に取り込む第１データ・セレクタ３５、第１係数乗算器３６、遅延レジスタ４０、第２データ・セレクタ４１、第３データ・セレクタ４２、加算器４３，４８，４９，５４、第２係数乗算器４４、第３係数乗算器５０、出力先選択部（ＤＭＵＸ）５５、および制御部５６を備えて構成される。これら構成要素のうち、２個の加算器４３，４８と第２係数乗算器４４からなる組は、３点のデータを１クロック周期内に処理する３点演算部を構成する。また、２個の加算器４９，５４と第３係数乗算器５０からなる組も同様に３点演算部を構成する。また、これら２組の３点演算部と出力先選択部５５とで中間データ算出手段が構成される。
【０１１５】
制御部５６は、画素クロック信号ＰＣＬＫと同期して動作する。第１データ・セレクタ３５は、この制御部５６から供給される選択制御信号ＳＥＬ０の値に応じて、リングメモリ３２で取り込んだデータを第１端子Ｓ０〜第７端子Ｓ６の何れかから選択的に出力する。
【０１１６】
第１データ・セレクタ３５の第１端子Ｓ０から出力されたデータは、第１係数乗算器３６に入力される。第１係数乗算器３６では、係数レジスタ３７は、制御部５６から供給される制御信号Ｃ０の値に応じて、規格化係数１／κ，κの何れか一方を乗算器３８に出力し、乗算器３８は、入力データにその規格化係数を乗算する規格化処理を１クロック周期内に実行する。第１係数乗算器３６から出力されたデータは、遅延レジスタ４０で画素クロック信号ＰＣＬＫの１クロック周期遅延した後に第２データ・セレクタ４１に入力される。なお、第１係数乗算器３６と遅延レジスタ４０とで本発明の規格化手段が構成される。
【０１１７】
３点演算部においては、加算器４３は、第３データ・セレクタ４２の第１端子Ｓ０と第２端子Ｓ１とから出力された２点のデータを加算して第２係数乗算器４４に出力する。第２係数乗算器４４では、係数レジスタ４５は、制御部５６から供給される制御信号Ｃ１の値に応じて、リフティング係数δ，αの何れか一方を入力データに乗算し、２の補数演算回路４７で符号が反転された後、加算器４８に出力される。そして、加算器４８は、第３データ・セレクタ４２の第３端子Ｓ２から入力したデータと、第２係数乗算器４４から入力したデータとを加算して出力先選択部５５に出力する。
【０１１８】
また、加算器４９は、第３データ・セレクタ４２の第４端子Ｓ３と第５端子Ｓ４とから出力された２点のデータを加算して第３係数乗算器５０に出力する。第３係数乗算器５０では、係数レジスタ５１は、制御部５６から供給される制御信号Ｃ２の値に応じて、リフティング係数β，γの何れか一方を入力データに乗算し、２の補数演算回路５３で符号が反転した後、加算器５４に出力される。加算器５４は、第３データ・セレクタ４２の第６端子Ｓ５から入力したデータと、第３係数乗算器５０から入力したデータとを加算して出力先選択部５５に出力する。
【０１１９】
出力先選択部５５は、制御部５６から供給される選択制御信号ＳＥＬ３の値に応じて、加算器４８，５４から並列に入力する２点のデータを第１端子Ｋ０から第３端子Ｋ２のいずれかから出力する。
【０１２０】
また、出力先選択部５５の第２端子Ｋ１から出力されたデータは分岐して外部のＭＭＵ２にも出力され、第３端子Ｋ２から出力されるデータは外部のＭＭＵ２に出力される。ＭＭＵ２は、第２端子Ｋ１と第３端子Ｋ２からそれぞれ外部へ出力されたデータをリングメモリ３２に転送し記憶させることができる。
【０１２１】
次に、以上のフィルタリング部３３を用いたリフティング演算の代表例を、図１６〜図１９を参照しつつ以下に説明する。図１６〜図１９は、９×７タップのDaubechiesフィルタのリフティング構成を模式的に示す格子図である。この格子図の演算は、図３７の場合と同様に行われる。なお、図１６〜図１９は、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α，−β，−γ，−δと規格化係数κ，１／κとを表示していない。
【０１２２】
図１６〜図１９は、本実施形態でのＮ回目（Ｎは整数）〜Ｎ＋３回目の処理を模式的に示している。Ｎ回目処理（図１６）では、対象領域Ｃ１，Ｃ２の２個の変換処理が１クロック周期内に並列に同時実行される。対象領域Ｃ２では、２点の出力データＸ（２ｎ），Ｘ（２ｎ＋２）を加算したデータにリフティング係数−αを乗算することで乗算値を算出した後、この乗算値と中間データＤ2nとを加算するという３点演算が実行される。この結果、奇数番目の入力データＹ（２ｎ＋１）を始点とする系列上の出力データＸ（２ｎ＋１）が算出される。２点の出力データＸ（２ｎ），Ｘ（２ｎ＋２）は、中間データＤ2nの系列に対して１点前後する２系列上のデータである。また、対象領域Ｃ１では、２点の中間データＳ2n+2，Ｓ2n+3を加算したデータにリフティング係数−γを乗算することで乗算値を算出した後、この乗算値と中間データＤ1n+2とを加算するという３点演算が実行される。この結果、偶数番目の入力データY（２ｎ＋５）を始点とする系列上の第２段階の中間データD2n+2が算出される。ここで、２点の中間データＳ2n+2，Ｓ2n+3は、中間データD1n+2の系列に対して１点前後する２系列上のデータである。
【０１２３】
また、上記対象領域Ｃ１およびＣ２における演算の１クロック前の周期に、対象領域Ｎ１において、入力データＹ（２ｎ＋８）に規格化係数κを乗算する規格化処理が実行され、入力データＹ（２ｎ＋８）の系列上の第１段階の中間データであるＳ1n+4が算出される。
【０１２４】
このＮ回目の具体的な処理の内容は次の通りである。図１５に示すリングメモリ３２は、入力データや中間データや一時データを格納する９ライン（系列）の記憶領域を備えており、参照済みの古いデータを格納する記憶領域に新たなデータを順番に上書きする構造を持つ。
【０１２５】
ＭＭＵ３１は、このリングメモリ３２に一時記憶された入力データＹ（２ｎ＋８）を第１データ・セレクタ３５に出力させる。制御部５６は、選択制御信号ＳＥＬ０を第１データ・セレクタ３５に供給して、入力データＹ（２ｎ＋８）を第１係数乗算器３６に出力させる。第１係数乗算器３６は、制御部５６から供給された制御信号Ｃ０に従って２個の規格化係数κ，１／κのうち後半の係数κを選択して乗算器３８に供給し、乗算器３８は、入力データと規格化係数κとを乗算した乗算値（＝κ×Ｙ（２ｎ＋８）＝Ｓ1n+4）を遅延レジスタ４０に出力する。この第１係数乗算器３６での係数乗算処理は１クロック周期内に実行される。
【０１２６】
この係数乗算処理から１クロック周期後、遅延レジスタ４０に記憶された中間データＳ１ｎ＋４が第２データ・セレクタ４１に出力される。第２データ・セレクタ４１は、制御部５６から供給される選択制御信号ＳＥＬ１に従って、中間データＳ1n+4を第２端子Ｓ１からＭＭＵ３１に出力し、ＭＭＵ３１は、その中間データＳ1n+4をリングメモリ３２に転送し、参照済みの記憶領域入力データＹ（２ｎ＋８）に上書きさせる。また、この中間データＳ1n+4をＭＭＵ３１に出力する周期と同じクロック周期において、ＭＭＵ３１は、リングメモリ３２に一時記憶された６点のデータＸ（２ｎ），Ｄ2n，Ｘ（２ｎ＋２），Ｓ2n+2，Ｄ1n+2，Ｓ2n+3を第１データ・セレクタ３５に出力させる。第１データ・セレクタ３５は、制御部５６から供給される選択制御信号ＳＥＬ０の値に応じて、前記６点のデータを第２端子Ｓ１〜第７端子Ｓ６に出力する。この出力は、次に、第３データ・セレクタ４２に入力され、第３データ・セレクタ４２は、制御部５６から供給される選択制御信号ＳＥＬ２の値に応じて、入力データのうち対象領域Ｃ２内の３点のデータＸ（２ｎ），Ｘ（２ｎ＋２），Ｄ2nを選択して、それぞれ第１端子Ｓ０〜第３端子Ｓ２から出力し、入力データのうち対象領域Ｃ１内の３点のデータＳ2n+2，Ｓ2n+3,Ｄ1n+2を選択して、それぞれ第４端子Ｓ３〜第６端子Ｓ５から出力する。
【０１２７】
上方の加算器４３は、第３データ・セレクタ４２の第１端子Ｓ０と第２端子Ｓ１から入力した２点のデータＸ（２ｎ），Ｘ（２ｎ＋２）を加算したデータを第２係数乗算器４４に出力する。第２係数乗算器４４において、係数レジスタ４５は、制御部５６から供給される制御信号Ｃ１に従って、２個のリフティング係数α，δのうち後半の係数αを選択して乗算器４６に供給し、乗算器４６は、入力データとリフティング係数αとを乗算した乗算値（＝α×（Ｘ（２ｎ）＋Ｘ（２ｎ＋２）））を２の補数演算回路４７に出力する。２の補数演算回路４７において、符号が反転されたデータは、加算器４８に出力される。そして、加算器４８は、第２係数乗算器４４から入力する乗算値と、第３データ・セレクタ４２の第３端子Ｓ２から入力した中間データＤ2nとを加算することで、対象領域Ｃ２内の出力データＸ（２ｎ＋１）を算出し、出力先選択部５５に出力する。この出力データＸ（２ｎ＋１）の算出処理は１クロック周期内に実行される。
【０１２８】
一方、下方の加算器５０は、第３データ・セレクタ４２の第４端子Ｓ３と第５端子Ｓ４とから入力した２点の中間データＳ2n+2，Ｓ2n+3を加算したデータを第３係数乗算器５０に出力する。第３係数乗算器５０では、係数レジスタ５１は、制御部５６から供給される制御信号Ｃ２に従って、２個のリフティング係数β，γのうち後半の係数γを選択して乗算器５２に供給し、乗算器５２は、入力データとリフティング係数γとを乗算した乗算値（＝γ×（Ｓ2n+2＋Ｓ2n+3））を２の補数演算回路５３に出力する。２の補数演算回路５３において、符号が反転されたデータは、加算器５４に出力される。そして、加算器５４は、第３係数乗算器５０から入力する乗算値と、第３データ・セレクタ４２の第６端子Ｓ５から入力した中間データＤ1n+2とを加算することで、対象領域Ｃ１内の中間データＤ2n+2を算出し、出力先選択部５５に出力する。この中間データＤ2n+2の算出処理は１クロック周期内に実行される。
【０１２９】
出力先選択部５５は、制御部５６から供給された選択制御信号ＳＥＬ３の値に従って、加算器４８から入力した出力データＸ（２ｎ＋１）を第１端子Ｋ０から出力し、他方の加算器５４から入力した中間データＤ2n+2を第３端子Ｋ２から外部のＭＭＵ３１に出力し、ＭＭＵ３１は、その中間データＤ2n+2をリングメモリ３２に転送し、参照済みの記憶領域中間データＤ1n+2に上書きさせる。
【０１３０】
次に、Ｎ＋１回目処理（図１７）における対象領域Ｃ３，Ｃ４の変換処理が行なわれる。対象領域Ｃ３では、２点の中間データＤ1n+3，Ｄ1n+4を加算したデータにリフティング係数−δを乗算することで乗算値を算出した後、この乗算値と中間データＳ1n+4とを加算するという３点演算が実行される。この結果、偶数番目の入力データＹ（２ｎ＋８）を始点とする系列上の第２段階の中間データＳ2n+4が算出される。ここで、２点の中間データＤ1n+3，Ｄ1n+4は、中間データＳ1n+4に対して１点前後するデータである。また、対象領域Ｃ４では、２点の中間データＤ2n+1，Ｄ2n+2を加算したデータにリフティング係数−βを乗算することで乗算値を算出した後、この乗算値と中間データＳ2n+2とを加算するという３点演算が実行される。この結果、偶数番目の入力データＹ（２ｎ＋４）を始点とする系列上の出力データＸ（２ｎ＋４）が算出される。ここで、２点の中間データＤ2n+1，Ｄ2n+2は、中間データＳ2n+2の系列に対して１点前後する２系列上のデータである。
【０１３１】
また、対象領域Ｃ３，Ｃ４における演算処理が実行される１クロック前の周期において、対象領域Ｎ２における処理が実行される。対象領域Ｎ２においては、入力データＹ（２ｎ＋９）に規格化係数１／κを乗算する規格化処理が実行され、中間データＤ1n+4が出力される。
【０１３２】
このＮ＋１回目の具体的な処理内容は次の通りである。まず、１クロック前の周期に実行される対象領域Ｎ２の処理から説明する。ＭＭＵ３１は、このリングメモリ３２に一時記憶された入力データＹ（２ｎ＋９）を第１データ・セレクタ３５に出力させる。制御部５６は、選択制御信号ＳＥＬ０を第１データ・セレクタ３５に供給して、入力データＹ（２ｎ＋９）を第１係数乗算器３６に出力させる。第１係数乗算器３６は、制御部５６から供給された制御信号Ｃ０に従って２個の規格化係数κ，１／κのうち前半の係数１／κを選択して乗算器３８に供給し、乗算器３８は、入力データと規格化係数１／κとを乗算した乗算値（＝１／κ×Ｙ（２ｎ＋９）＝Ｄ1n+4）を遅延レジスタ４０に出力する。この第１係数乗算器３６での係数乗算処理は１クロック周期内に実行される。
【０１３３】
この係数乗算処理から１クロック周期後、遅延レジスタ４０に記憶された中間データＤ１ｎ＋４が第２データ・セレクタ４１に出力される。第２データ・セレクタ４１は、制御部５６から供給される選択制御信号ＳＥＬ１に従って、中間データＤ1n+4を第１端子Ｓ０から第３データ・セレクタ４２に出力し、且つ、中間データＤ1n+4を第２端子Ｓ１からＭＭＵ３１に出力し、ＭＭＵ３１は、その中間データＤ1n+4をリングメモリ３２に転送し、参照済みの記憶領域入力データＹ（２ｎ＋９）に上書きさせる。次に、この中間データＤ1n+4を第３データ・セレクタ４２に出力する周期と同じクロック周期において、ＭＭＵ３１は、リングメモリ３２に一時記憶された５点のデータＤ2n+1，Ｓ2n+2，Ｄ2n+2，Ｄ1n+3，Ｓ1n+4を第１データ・セレクタ３５に出力させる。第１データ・セレクタ３５は、制御部５６から供給された選択制御信号ＳＥＬ０の値に応じて、前記５点のデータを第２端子Ｓ１〜第６端子Ｓ５に出力する。この出力は、次に、第３データ・セレクタ４２に入力され、第３データ・セレクタ４２は、前記５点のデータのうち対象領域Ｃ３内の３点の入力データＤ2n+1，Ｄ2n+2，Ｓ2n+2，を選択して第４端子Ｓ３〜第６端子Ｓ５から出力し、前記５点のデータのうち対象領域Ｃ４内の２点のデータおよび第２データ・セレクタ４１から入力したデータＤ1n+3，Ｄ1n+4，Ｓ1n+4を選択して第１端子Ｓ０〜第３端子Ｓ２から出力する。
【０１３４】
上方の加算器４３は、第３データ・セレクタ４２の第１端子Ｓ０と第２端子Ｓ１から入力した２点のデータＤ1n+3，Ｄ1n+4を加算したデータを第１係数乗算器４４に出力する。第１係数乗算器４４において、係数レジスタ４５は、制御部５６から供給される制御信号Ｃ１に従って、２個のリフティング係数α，δのうち前半の係数δを選択して乗算器４６に供給し、乗算器４６は、入力データとリフティング係数δとを乗算した乗算値（＝δ×（Ｄ1n+3＋Ｄ1n+4））を２の補数演算回路４７に出力する。２の補数演算回路４７において、符号が反転されたデータは、加算器４８に出力される。そして、加算器４８は、第２係数乗算器４４から入力する乗算値と、第３データ・セレクタ４２の第３端子Ｓ２から入力した中間データＳ1n+4とを加算することで、対象領域Ｃ３内の中間データＳ2n+4を算出し、出力先選択部５５に出力する。この中間データＳ2n+4の算出処理は１クロック周期内に実行される。
【０１３５】
一方、下方の加算器４９は、第３データ・セレクタ４２の第４端子Ｓ３と第５端子Ｓ４とから入力した２点の中間データＤ2n+1，Ｄ2n+2を加算したデータを第３係数乗算器５０に出力する。第３係数乗算器５０では、係数レジスタ５１は、制御部５６から供給される制御信号Ｃ２に従って、２個のリフティング係数β，γのうち前半の係数βを選択して乗算器５２に供給し、乗算器５２は、入力データとリフティング係数βとを乗算した乗算値（＝β×（Ｄ2n+1＋Ｄ2n+2））を２の補数演算回路５３に出力する。２の補数演算回路５３において、符号が反転されたデータは、加算器５４に出力される。そして、加算器５４は、第３係数乗算器５０から入力する乗算値と、第３データ・セレクタ４２の第６端子Ｓ５から入力した中間データＳ2n+2とを加算することで、対象領域Ｃ４内の出力データＸ（２ｎ＋４）を算出し、出力先選択部５５に出力する。この出力データＸ（２ｎ＋４）の算出処理は１クロック周期内に実行される。
【０１３６】
出力先選択部５５は、制御部５６から供給された選択制御信号ＳＥＬ３の値に従って、加算器５４から入力した出力データＸ（２ｎ＋４）を第２端子Ｋ１から出力し、他方の加算器４８から入力した中間データＳ2n+4を第３端子Ｋ２から外部のＭＭＵ３１に出力し、ＭＭＵ３１は、その中間データＳ2n+4をリングメモリ３２に転送し、参照済みの記憶領域中間データＳ1n+4に上書きさせる。また、第２端子Ｋ１から出力された出力データＸ（２ｎ＋４）は分岐して外部のＭＭＵ３１にも出力され、ＭＭＵ３１は、その出力データＸ（２ｎ＋４）をリングメモリ３２に転送し、参照済みの記憶領域中間データＳ2n+2に上書きさせる。
【０１３７】
次に、Ｎ＋２回目処理（図１８）における対象領域Ｃ５，Ｃ６の変換処理が実行される。また、対象領域Ｃ５，Ｃ６における演算処理が実行される１クロック前の周期において、対象領域Ｎ３の規格化処理が実行される。ここで、対象領域Ｃ５，Ｃ６，Ｎ３は、それぞれ、上記Ｎ回目処理（図１６）の対象領域Ｃ１，Ｃ２，Ｎ１を２系列（２点）後方に移動した領域である。これら対象領域Ｃ５，Ｃ６，Ｎ３では、対象領域Ｃ１，Ｃ２，Ｎ１での処理と同様の処理が実行される。したがって、対象領域Ｎ３では、偶数番目の入力データＹ（２ｎ＋１０）に規格化係数κを乗算する規格化処理を実行して、中間データＳ1n+5を算出する。また、対象領域Ｃ５では、２点の中間データＳ2n+3，Ｓ2n+4を加算したデータにリフティング係数−γを乗算することで乗算値を算出した後、この乗算値と中間データＤ1n+3とを加算するという３点演算が実行される。この結果、奇数番目の入力データＸ（２ｎ＋７）を始点とする系列上の第２段階の中間データＤ2n+3が算出される。また、対象領域Ｃ６では、２点の出力データＸ（２ｎ＋２），Ｘ（２ｎ＋４）を加算したデータにリフティング係数−αを乗算することで乗算値を算出した後、この乗算値と中間データＤ2n+1とを加算するという３点演算が実行される。この結果、奇数番目の入力データＹ（２ｎ＋３）を始点とする系列上の出力データＸ（２ｎ＋３）が算出される。
【０１３８】
次に、Ｎ＋３回目処理（図１９）における対象領域Ｃ７，Ｃ８の変換処理が実行される。また、対象領域Ｃ７，Ｃ８における演算処理が実行される１クロック前の周期において、対象領域Ｎ４の規格化処理が実行される。ここで、対象領域Ｃ７，Ｃ８，Ｎ４は、それぞれ、上記Ｎ＋１回目処理（図１７）の対象領域Ｃ３，Ｃ４，Ｎ２を２系列（２点）後方に移動した領域である。これら対象領域Ｃ７，Ｃ８，Ｎ４では、対象領域Ｃ３，Ｃ４，Ｎ２での処理と同様の処理が実行される。したがって、対象領域Ｎ４では、入力データＹ（２Ｎ＋１１）に規格化係数１／κを乗算する規格化処理を実行して、中間データＤ1n+5を算出する。また、対象領域Ｃ７では、奇数番目の２点の中間データＤ1n+4，Ｄ1n+5を加算したデータにリフティング係数−δを乗算することで乗算値を算出した後、この乗算値と偶数番目の中間データＳ1n+5とを加算するという３点演算が実行される。この結果、偶数番目の入力データＸ（２ｎ＋１０）を始点とする系列上の第２段階の中間データＳ2n+5が算出される。また、対象領域Ｃ８では、２点の中間データＤ2n+2，Ｄ2n+3を加算したデータにリフティング係数−βを乗算して乗算値を算出した後、この乗算値と中間データＳ2n+3とを加算するという３点演算が実行される。この結果、偶数番目の入力データＹ（２ｎ＋６）を始点とする系列上の出力データＸ（２ｎ＋６）算出される。
【０１３９】
以上のように、上記Ｎ回目処理（図１６）およびＮ＋１回目処理（図１７）と同様の処理が、全ての点の出力データが算出されるまで対象領域を移動させつつ繰り返し実行される。これにより、偶数番目或いは奇数番目の１点の出力データを算出するのに要する平均周期を１クロック周期とすることができ、出力データの算出周期を大幅に短縮化できる。
【０１４０】
次に、上記ウェーブレット変換装置３０を用いたラインベースの２次元逆ＤＷＴ処理を以下に説明する。
【０１４１】
水平フィルタリング部３３Ａに入力するサブバンド（帯域成分）は、図１１に示すように、サブバンド２３ＬＬおよび２３ＨＬ、あるいは、サブバンド２３ＬＨおよび２３ＨＨである。
【０１４２】
図１６〜図１９で示した入力データ・・・，Ｙ（ｎ−１），Ｙ（ｎ），Ｙ（ｎ＋１），・・・は、サブバンド２３ＬＬと２３ＨＬの水平方向のデータを交互に配列したデータ、あるいは、サブバンド２３ＬＨと２３ＨＨの水平方向のデータを交互に配列したデータである。そして、サブバンド２３ＬＬと２３ＨＬとからなる入力データに対して水平フィルタリングを施すことにより、サブバンド２３Ｌが出力され、サブバンド２３ＬＨと２３ＨＨとからなる入力データに対して水平フィルタリングを施すことによりサブバンド２３Ｈが出力される。図１６〜図１９で示した出力データ・・・，Ｘ（ｎ−１），Ｘ（ｎ），Ｘ（ｎ＋１），・・・は、サブバンド２３Ｌあるいはサブバンド２３Ｈの水平方向の１ラインのデータ列を示している。
【０１４３】
次に、垂直フィルタリング部３３Ｂが入力するサブバンドは、図１１に示すように、サブバンド２３Ｌおよびサブバンド２３Ｈである。この場合には、図１６〜図１９で示した入力データ・・・，Ｙ（ｎ−１），Ｙ（ｎ），Ｙ（ｎ＋１），・・・は、サブバンド２３Ｌと２３Ｈの垂直方向のデータを交互に配列したデータである。そして、サブバンド２３Ｌと２３Ｈとからなる入力データに対して垂直フィルタリングを施すことにより、画像データ２３が出力される。図１６〜図１９で示した出力データ・・・，Ｘ（ｎ−１），Ｘ（ｎ），Ｘ（ｎ＋１），・・・は、画像データ２３の垂直方向の１ラインのデータ列を示している。画像データ２３は、水平画素数Ｗ、垂直画素数Ｈを有する矩形状のデータである。
【０１４４】
サブバンド２３ＬＬ，２３ＨＬ，２３ＬＨ，２３ＨＨは、垂直画素数Ｈ／２、水平画素数Ｗ／２を有する矩形状のデータであって、図２０に模式的に示すように、偶数行偶数列のサブバンド２３ＬＬおよび偶数行奇数列のサブバンド２３ＨＬを１組として、あるいは、奇数行偶数列のサブバンド２３ＬＨおよび奇数行奇数列のサブバンド２３ＨＨを１組として、垂直方向に配列するデータ列…，Ｙi（２ｎ），Ｙi（２ｎ＋１），Ｙi（２ｎ＋２）…として水平フィルタリング部３３に入力させられる。つまり、記憶領域５８Ｌにおける各画素行（図の横方向のデータ列）は、サブバンド２３ＬＬおよび２３ＨＬの各水平ラインの画素を交互に配列したデータ列であり、記憶領域５８Ｈに入力される各画素行（図の横方向のデータ列）は、サブバンド２３ＬＨおよび２３ＨＨの各水平ラインの画素を交互に配列したデータ列である。入力データＹi（ｋ）の添字ｉは、当該入力データＹi（ｋ）が所属する画素列の番号を示すものとする。画素列の番号ｉは、ｉ＝０，１．…，Ｗ−１（Ｗ：水平画素数）の値をとる。図中、サブバンド２３ＬＬおよび２３ＨＬを１組とした偶数行の記憶領域５８Ｌと、サブバンド２３ＬＨおよびサブバンド２３ＨＨを１組とした奇数行の記憶領域５８Ｈとを２領域に分割しているが、メモリ状のデータ配置はこれに限定されるものではない。
【０１４５】
具体的には、第１リングメモリ３２Ａと水平フィルタリング部３３Ａは、上記Ｎ回目処理（図１６）〜上記Ｎ＋２回目処理（図１７）を含む各回の処理を、低域側（記憶領域５８Ｌ側）と高域側（記憶領域５８Ｈ側）を交互に切り替えながら、各回の処理を画素単位について繰り返し実行する。
【０１４６】
例えば、上記Ｎ回目処理（図１６）が、メモリ領域５８Ｌ側の１番目の画素行に対して１回実行された後に、上記Ｎ＋１回目処理（図１７）が１回実行され、更に、上記Ｎ＋２回目処理（図１８）が１回実行され、・・・といった処理が行われる。同様に、記憶領域５８Ｈ側の１番目の画素行に対して実行され、次に、記憶領域５８Ｌ側の２番目の画素行に対して実行された後に、記憶領域５８Ｈ側の２番目の画素行に対して実行され、次に、記憶領域５８Ｌ側の３番目の画素行に対して実行された後に、記憶領域５８Ｈ側の３番目の画素行に対して実行され、・・・、最終的に、記憶領域５８Ｌ側のＨ／２番目の画素行に対して実行された後に、記憶領域５８Ｈ側のＨ／２番目の画素行に対して実行される。
【０１４７】
なお、第１リングメモリ３２Ａは、図２１に模式的に示すように、入力データ…，Ｘj（ｋ），Ｘj+1（ｋ），…に対応する９点（９画素）のデータを保持する記憶領域５９を有しており、上記一時データや中間データを保持することができる。
【０１４８】
この結果、水平フィルタリング部３３Ａからは、サブバンド２３ＬＬと２３ＨＬとが合成されたサブバンド２３Ｌの各水平ライン単位（Ｈ／２高さ）の出力と、サブバンド２３ＬＨと２３ＨＨとが合成されたサブバンド２３Ｈの各水平ライン単位（Ｈ／２高さ）の出力とが、交互にで連続的に出力される。
【０１４９】
そして、サブバンド２３Ｌの水平ラインとサブバンド２３Ｈの水平ラインとが、交互に配列されたデータが、垂直ラインのデータとして、そのまま第２リングメモリ３２Ｂに出力され垂直フィルタリング部３３Ｂで処理される。
【０１５０】
具体的には、第２リングメモリ３２Ｂと垂直フィルタリング部３３Ｂは、上記Ｎ回目処理（図１６）〜上記Ｎ＋１回目処理（図１７）を含む各画素列について処理を水平ライン単位で繰り返し実行する。例えば、上記Ｎ回目処理（図１６）が、０番目の画素列に対して実行された後に、１番目の画素列に対して実行され、次に、２番目の画素列に対して実行され、・・・、最終的に、Ｗ−１番目の画素列に対して実行される。次に、上記Ｎ＋１回目処理（図７）が、０番目の画素列に対して実行された後に、１番目の画素列に対して実行され、更に、２番目の画素列に対して実行され、・・・、最終的に、Ｗ−１番目の画素列に対して実行される。このようにして、各回の処理が全ての画素列について順次実行される。なお、第２リングメモリ３２Ｂは、図２０に模式的に示すように、入力データ列に対応する９×Ｗ点（９ライン）のデータを保持する記憶領域５８を有しており、上記一時データや中間データを保持することができる。
【０１５１】
この結果、垂直フィルタリング部３３Ｂは、水平ライン単位で入力するデータ行から画像データ２３を出力するのである。
【０１５２】
以上の処理を再帰的に実行させることで、任意次数の分解レベルの帯域成分を合成処理し、画像データを復元することができる。すなわち、ｋ＋１次（ｋは整数）の分解レベルにおけるサブバンドＬＬ（ｋ＋１），ＨＬ（ｋ＋１），ＬＨ（ｋ＋１），ＨＨ（ｋ＋１）を、ウェーブレット変換装置１に再帰的に入力させることで、ｋ次のサブバンドＬＬ（ｋ）を得ることが可能である。
【０１５３】
以上のように、本実施形態に係るウェーブレット変換装置１では、図１５に示す構成を有する水平フィルタリング部３３Ａと垂直フィルタリング部３３Ｂとを備えるため、出力データの算出周期を短縮化できる。したがって、ラインベースの２次元ウェーブレット変換を短時間で高速で行うことが可能である。
【０１５４】
そして、第２の実施形態においては、第１の実施の形態において必要であった、水平フィルタリング部３３Ａの出力を記憶するバッファが不要である。第１の実施形態においては、水平フィルタリング部４Ａが４クロックで１画素を出力し、垂直フィルタリング部４Ｂが４クロックで１画素を入力する構成であったが、水平フィルタリング４ＡがＮ＋６回目処理（図９）およびＮ＋７回目処理（図１０）において、連続的に、垂直ラインを出力するのに対して、垂直フィルタリング部４Ｂでは、Ｎ回目処理（図３）で垂直ラインを入力した後、Ｎ＋４回目処理（図７）までは、垂直ラインを入力しない。このためバッファが必要であった。これに対して、第２の実施形態においては、水平フィルタリング部３３Ａが各回処理において垂直ラインを出力し、垂直フィルタリング３３Ｂが各回処理において垂直ラインを入力するので、バッファが不要となるのである。
【０１５５】
＜第３の実施形態＞
次に、本発明の第３の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。本実施形態に係るウェーブレット変換装置は、水平フィルタリング部と垂直フィルタリング部を除いて、上記第２の実施形態に係るウェーブレット変換装置３０（図１４）の構成と同じ構成を有する。ただし、第２の実施形態においては第１，第２リングメモリ３２Ａ，３２Ｂは、それぞれ９点、９ラインのリングメモリであったが、この実施の形態においては、第１，第２リングメモリ３２Ａ，３２Ｂは、それぞれ８点、８ラインのリングメモリである。
【０１５６】
図２２は、第３の実施形態に係るフィルタリング部３３ｓの概略構成を示す図である。このフィルタリング部３３ｓは、水平フィルタリング部または垂直フィルタリング部を示し、また、リングメモリ３２ｓは、図１４に示した第１リングメモリ３２Ａまたは第２リングメモリ３２Ｂの何れかを示すものとする。
【０１５７】
このフィルタリング部３３ｓは、リングメモリ３２ｓから入力データを選択的に取り込む第１，第２データ・セレクタ６０，６５、遅延レジスタ６４、第１〜第５係数乗算器６１，６６，７１，７６，８１、加算器７０，７５，８０，８５、出力先選択部（ＤＭＵＸ）８６、および制御部８７を備えて構成される。これら構成要素のうち、第２係数乗算器６６と加算器７０の組は、２点のデータを上記ステップａ或いはステップｂ（図３８）の方法で処理する２点演算部を構成する。その他、第３係数乗算器７１と加算器７５の組、第４係数乗算器７６と加算器８０の組、および第５係数乗算器８１と加算器８５の組も同様に２点演算部を構成している。また、これら２点演算部と出力先選択部８６とで中間データ算出手段が構成される。
【０１５８】
制御部８７は、画素クロック信号ＰＣＬＫと同期して動作する。第１データ・セレクタ６０は、この制御部８７から供給される選択制御信号ＳＥＬ０の値に応じて、リングメモリ３２ｓから取り込んだデータを第１端子Ｓ０〜第８端子Ｓ７の何れかから選択的に出力する。
【０１５９】
第１データ・セレクタ６０の第１端子Ｓ０から出力されたデータは、第１係数乗算器６１に入力される。第１係数乗算器６１では、制御部８７から供給される制御信号Ｃ０の値に応じて、規格化係数κ，１／κの何れか一方を乗算器６３に出力し、乗算器６３は、入力データにその規格化係数を乗算する。乗算器６３からの出力データは、遅延レジスタ６４に入力される。この第１係数乗算器６１における規格化処理は１クロック周期内に実行される。なお、第１係数乗算器６１と遅延レジスタ６４とから規格化手段が構成される。遅延レジスタ６４の出力は第２データ・セレクタ６５に入力され、かつ、分岐してＭＭＵ３１に入力される。
【０１６０】
第２データ・セレクタ６５は、制御部８７から供給される選択制御信号ＳＥＬ１の値に応じて、遅延レジスタ６４および第１データ・セレクタ６０から取り込んだデータを第１端子Ｓ０〜第８端子Ｓ７の何れかから選択的に出力する。第２〜第５係数乗算器６６，７１，７６，８１は、それぞれ、制御信号Ｃ１〜Ｃ４に従って入力データにリフティング係数−α，−β，−γ，−δを乗算する回路である。係数レジスタ６７，７２，７７，８２は、制御信号Ｃ１〜Ｃ４を受けて、リフティング係数α，β，γ，δをそれぞれ乗算器６８，７３，７８，８３に出力する。乗算器６８，７３，７８，８３は、それぞれ、第２データ・セレクタ６５の出力端子Ｓ０，Ｓ２，Ｓ４，Ｓ６から入力するデータにリフティング係数α，β，γ，δを乗算して出力する。２の補数演算回路６９，７４，７９，８４は、それぞれ乗算器６８，７３，７８，８３からの出力データの符号を反転させる。加算器７０，７５，８０，８５は、それぞれ、第２〜第５係数乗算器６６，７１，７６，８１から入力したデータと、第２データ・セレクタ６５の出力端子Ｓ１，Ｓ３，Ｓ５，Ｓ７から入力したデータとを加算して出力先選択部８６に出力する。
【０１６１】
出力先選択部８６は、制御部８７から供給される選択制御信号ＳＥＬ２の値に応じて、加算器７０，７５，８０，８５から並列に入力する４点のデータを第１端子Ｋ０〜第５端子Ｋ４から出力する。第１端子Ｋ０および第２端子Ｋ１から出力されたデータは合成データとして外部に出力される。また、第２端子Ｋ１から分岐されたデータおよび第３端子Ｋ２〜第５端子Ｋ４から出力されたデータは、ＭＭＵ３１に入力される。ＭＭＵ３１は、これら第２端子Ｋ１〜第５端子Ｋ４からＭＭＵ３１へ出力されたデータをリングメモリ３２ｓに転送し記憶させることができる。
【０１６２】
次に、図２２に示すフィルタリング部３３ｓを用いたリフティング演算の代表例を、図２３〜図２５を参照しつつ以下に説明する。この格子図の演算は、図３７の場合と同様に行われる。なお、図２３〜図２５では、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α，−β，−γ，−δと規格化係数κ，１／κとを表示していない。
【０１６３】
図２３は、Ｎ回目処理（Ｎ：整数）が終了した時点の格子図を示し、図２４、図２５は、それぞれＮ＋１回目、Ｎ＋２回目の処理を模式的に示している。Ｎ回目処理（図２３）では、対象領域Ａ１，Ａ２，Ｂ１，Ｂ２の４個の変換処理が１クロック周期内に並列に同時実行される。対象領域Ａ１では、２点の中間データD1n+2，Ｓ2n+2を用いた上記ステップａ（図３８）の２点演算を実行して、奇数番目の入力データＹ（２ｎ＋５）を始点とする系列上の第２段階の一時データ（Ｄ2n+2）を算出する。ここで、中間データＳ2n+2は、中間データＤ1n+2の系列に対して１点前の系列上のデータである。また、対象領域Ａ２では、２点のデータＤ2n，Ｘ（２ｎ）を用いた上記ステップａの２点演算を実行して、奇数番目の入力データＹ（２ｎ＋１）を始点とする系列上の出力一時データ（Ｘ（２ｎ＋１））を算出する。また、対象領域Ｂ１では、一時データ（Ｓ2n+3）と１クロック周期前の演算処理で算出された中間データＤ1n+3とを用いた上記ステップｂ（図３８）の２点演算を実行して、偶数番目の入力データＹ（２ｎ＋６）を始点とする系列上の第２段階の中間データＳ2n+3を算出する。ここで、中間データＤ1n+3は、一時データ（Ｓ2n+3）の系列に対して１点後の系列上のデータである。また、対象領域Ｂ２では、出力一時データ（Ｘ（２ｎ＋２））と中間データＤ2n+1とを用いた上記ステップｂの２点演算を実行して、偶数番目の入力データＹ（２ｎ＋２）を始点とする系列上の出力データＸ（２ｎ＋２）を算出する。
【０１６４】
また、対象領域Ａ１，Ａ２，Ｂ１，Ｂ２における上記並列処理の１クロック前の周期において、対象領域Ｎ１の規格化処理が行なわれる。対象領域Ｎ１においては、入力データＹ（２ｎ＋７）に規格化係数１／κを乗算する規格化処理が実行される。
【０１６５】
このＮ回目の具体的な処理の内容は次の通りである。リングメモリ３２ｓは８ライン（系列）の記憶領域を備えている。
Ｎ回目処理においては、対象領域Ａ１，Ａ２，Ｂ１，Ｂ２内の演算処理が１クロック周期内に行なわれるが、この演算処理の１クロック周期前において、対象領域Ｎ１内の演算処理が行なわれる。この１クロック前の周期における処理から説明する。ＭＭＵ３１は、リングメモリ３２ｓに一時記憶された入力データＹ（２ｎ＋７）を第１データ・セレクタ６０に出力する。第１データ・セレクタ６０は、制御部８７からの選択制御信号ＳＥＬ０の値に応じて、入力データＹ（２ｎ＋７）を第１端子Ｓ０から出力する。
【０１６６】
第１端子Ｓ０から出力された入力データＹ（２ｎ＋７）は、第１係数乗算器６１に入力される。第１係数乗算器６１において、係数レジスタ６２は、制御部８７から供給された制御信号Ｃ０に従って、２個の規格化係数κ，１／κのうち規格化係数１／κを乗算器６３に出力し、乗算器６３は入力データＹ（２ｎ＋７）に規格化係数１／κを乗算する。この結果、第１係数乗算器６１は、データＤ1n+3（＝（１／κ）×Ｙ（２ｎ＋７））を算出する。乗算器６３の出力は、遅延レジスタ６４に入力される。以上の処理が、対象領域Ａ１，Ａ２，Ｂ１，Ｂ２内の演算処理が行なわれる１クロック前の周期において実行される。
【０１６７】
次のクロック周期において、ＭＭＵ３１は、リングメモリ３２ｓに一時記憶された７点のデータＸ（２ｎ），Ｄ2n，（Ｘ（２ｎ＋２）），Ｄ2n+1，Ｓ2n+2，Ｄ1n+2，（Ｓ2n+3）を第１データ・セレクタ６０に出力させる。第１データ・セレクタ６０は、制御部８７から供給される選択制御信号ＳＥＬ０の値に応じて、前記７点のデータを第２データ・セレクタ６５に出力する。また、遅延レジスタ６４に記憶されているデータＤ1n+3が第２データ・セレクタ６５に出力される。遅延レジスタ６４から出力されたは中間データＤ1n+3は分岐して外部のＭＭＵ３１にも出力され、ＭＭＵ３１は、その中間データＤ1n+3をリングメモリ３２ｓに転送し、参照済みの記憶領域入力データＹ（２ｎ＋７）に上書きさせる。
【０１６８】
第２データ・セレクタ６５は、制御部８７から供給される選択制御信号ＳＥＬ１の値に応じて、８点のデータのうち対象領域Ａ２内の２点の出力データＸ（２ｎ），Ｄ2nを選択して第１端子Ｓ０と第２端子Ｓ１とに出力し、対象領域Ｂ２内の中間データＤ2n+1と一時データ（Ｘ（２ｎ＋２））とを第３端子Ｓ２と第４端子Ｓ３とから出力し、対象領域Ａ１内の中間データＳ2n+2とＤ1n+2とを第５端子Ｓ４と第６端子Ｓ５とから出力し、対象領域Ｂ１内の中間データＤ1n+3と一時データ（Ｓ2n+3）とを第７端子Ｓ６と第８端子Ｓ７とから出力する。
【０１６９】
第２係数乗算器６６において、係数レジスタ６７は、制御部８７から供給された制御信号Ｃ１に応じてリフティング係数αを乗算器６８に出力し、乗算器６８は、第１端子Ｓ０から入力したデータＸ（２ｎ）にリフティング係数αを乗算して得たデータα×Ｘ（２ｎ）を出力する。乗算器６８からの出力データは、２の補数演算回路６９において符号が反転され、加算器７０に出力される。加算器７０は、第２係数乗算器６６から出力されたたデータ−α×Ｘ（２ｎ）と、第２データ・セレクタ６５の第２端子Ｓ１から入力したデータＤ2nとを加算することで対象領域Ａ２内の一時データ（Ｘ（２ｎ＋１））を算出し、出力先選択部８６に出力する。
【０１７０】
また、第３係数乗算器７１では、係数レジスタ７２は、制御部８７から供給された制御信号Ｃ２に応じてリフティング係数βを乗算器７３に出力し、乗算器７３は、第３端子Ｓ２から入力した中間データＤ2n+1にリフティング係数βを乗算して得たデータβ×Ｄ2n+1を出力する。乗算器７３の出力は、２の補数演算回路７４において符号が反転された後、加算器７５に出力される。加算器７５は、第３係数乗算器７１から出力されたデータ−β×Ｄ2n+1と、第２データ・セレクタ６５の第４端子Ｓ３から入力した出力一時データ（Ｘ（２ｎ＋２））とを加算することで、対象領域Ｂ２内の出力データＸ（２ｎ＋２）を算出し、出力先選択部８６に出力する。
【０１７１】
また、第４係数乗算器７６では、係数レジスタ７７は、制御部８７から供給された制御信号Ｃ３に応じてリフティング係数γを乗算器７８に出力し、乗算器７８は、第５端子Ｓ４から入力した中間データＳ2n+2にリフティング係数γを乗算して得たデータγ×Ｓ2n+2を出力する。乗算器７８の出力は、２の補数演算回路７９において符号が反転された後、加算器８０に出力される。加算器８０は、第４係数乗算器７６から出力されたデータ−γ×Ｓ2n+2と、第２データ・セレクタ６５の第６端子Ｓ５から入力したデータＤ1n+2とを加算することで、対象領域Ａ１内の一時データ（Ｄ2n+2）を算出し、出力先選択部８６に出力する。
【０１７２】
また、第５係数乗算器８１では、係数レジスタ８２は、制御部８７から供給された制御信号Ｃ４に応じてリフティング係数δを乗算器８３に出力し、乗算器８３は、第７端子Ｓ６から入力した中間データＤ1n+3にリフティング係数δを乗算して得たデータδ×Ｄ1n+3を出力する。乗算器８３の出力は、２の補数演算回路８４において符号が反転された後、加算器８５に出力される。加算器８５は、第５係数乗算器８１から出力されたデータ−δ×Ｄ1n+3と、第２データ・セレクタ６５の第８端子Ｓ７から入力した一時データ（Ｓ2n+3）とを加算することで、対象領域Ｂ１内の第２段階の中間データＳ2n+3を算出し、出力先選択部８６に出力する。
【０１７３】
出力先選択部８６は、制御部８７から供給された選択制御信号ＳＥＬ２の値に従って、加算器７５から入力した出力データＸ（２ｎ＋２）を第２端子Ｋ１から外部に出力する。また、出力データＸ（２ｎ＋２）は、ＭＭＵ３１にも出力される。また、出力先選択部８６は、前記選択制御信号ＳＥＬ２に従って、加算器７０，８０，８５から入力した３点のデータ（Ｘ（２ｎ＋１）），（Ｄ2n+2），Ｓ2n+3を第３端子Ｋ２〜第５端子Ｋ４からＭＭＵ３１に出力する。ＭＭＵ３１は、フィルタリング部３３ｓから外部に出力された４点のデータ（Ｘ（２ｎ＋１）），Ｘ（２ｎ＋２），（Ｄ2n+2），Ｓ2n+3をリングメモリ３２ｓに転送し、ＭＭＵ３１は、その４点のデータ（Ｘ（２ｎ＋１）），Ｘ（２ｎ＋２），（Ｄ2n+2），Ｓ2n+3をリングメモリ３２ｓに転送し、参照済みの記憶領域Ｄ2n，（Ｘ（２ｎ＋２）），Ｄ1n+2，（Ｓ2n+3）に上書きさせる。
【０１７４】
次に、Ｎ＋１回目処理（図２４）における対象領域Ａ３，Ａ４，Ｂ３，Ｂ４における変換処理が並列に同時実行される。対象領域Ａ３では、１クロック周期前の演算処理で算出された中間データＳ1n+4と中間データＤ1n+3を用いた上記ステップａ（図３８）の２点演算を実行して、偶数番目の入力データＹ（２ｎ＋８）を始点とする系列上の第２段階の一時データ（Ｓ2n+4）を算出する。ここで、中間データＤ1n+3は、中間データＳ1n+4の系列に対して１点前の系列上のデータである。また、対象領域Ａ４では、２点のデータＳ2n+2，Ｄ2n+1を用いた上記ステップａの２点演算を実行して、偶数番目の入力データＹ（２ｎ＋４）を始点とする系列上の出力一時データ（Ｘ（２ｎ＋４））を算出する。また、対象領域Ｂ３では、一時データ（Ｄ2n+2）と中間データＳ2n+3とを用いた上記ステップｂ（図３８）の２点演算を実行して、奇数番目の入力データＹ（２ｎ＋５）を始点とする系列上の第２段階の中間データＤ2n+2を算出する。ここで、中間データＳ2n+3は、一時データ（Ｄ2n+2）の系列に対して１点後の系列上のデータである。また、対象領域Ｂ４では、出力一時データ（Ｘ（２ｎ＋１））と出力データＸ（２ｎ＋２）とを用いた上記ステップｂの２点演算を実行して、奇数番目の入力データＹ（２ｎ＋１）を始点とする系列上の出力データＸ（２ｎ＋１）を算出する。
【０１７５】
また、対象領域Ａ３，Ａ４，Ｂ３，Ｂ４における上記並列処理の１クロック前の周期において、対象領域Ｎ２の規格化処理が行なわれる。対象領域Ｎ２では、入力データＹ（２ｎ＋８）に規格化係数κを乗算する規格化処理が実行される。
【０１７６】
次に、Ｎ＋１回目の具体的な処理の内容は次の通りである。１クロック前の周期の対象領域Ｎ２における処理から説明する。ＭＭＵ３１は、リングメモリ３２ｓに一時記憶された入力データＹ（２ｎ＋８）を第１データ・セレクタ６０に出力する。第１データ・セレクタ６０は、制御部８７からの選択制御信号ＳＥＬ０の値に応じて、入力データＹ（２ｎ＋８）を第１端子Ｓ０から出力する。
【０１７７】
第１端子Ｓ０から出力された入力データＹ（２ｎ＋８）は、第１係数乗算器６１に入力される。第１係数乗算器６１において、係数レジスタ６２は、制御部８７から供給された制御信号Ｃ０に従って、２個の規格化係数κ，１／κのうち規格化係数κを乗算器６３に出力し、乗算器６３は入力データＹ（２ｎ＋８）に規格化係数κを乗算する。この結果、第１係数乗算器６１は、データＳ1n+4（＝κ×Ｙ（２ｎ＋８））を算出する。乗算器６３の出力は、遅延レジスタ６４に入力される。以上の処理が、対象領域Ａ１，Ａ２，Ｂ１，Ｂ２内の演算処理が行なわれる１クロック前の周期において実行される。
【０１７８】
次のクロック周期において、ＭＭＵ３１は、リングメモリ３２ｓに一時記憶された７点のデータ（Ｘ（２ｎ＋１）），Ｘ（２ｎ＋２），Ｄ2n+1，Ｓ2n+2，（Ｄ2n+2），Ｓ2n+3，Ｄ1n+3を第１データ・セレクタ６０に出力させる。第１データ・セレクタ６０は、制御部８７から供給される選択制御信号ＳＥＬ０の値に応じて、前記７点のデータを第２データ・セレクタ６５に出力する。また、遅延レジスタ６４に記憶されている中間データＳ1n+4が第２データ・セレクタ６５に出力される。遅延レジスタ６４から出力されたは中間データＳ1n+4は分岐して外部のＭＭＵ３１にも出力され、ＭＭＵ３１は、その中間データＳ1n+4をリングメモリ３２ｓに転送し、参照済みの記憶領域入力データＹ（２ｎ＋８）に上書きさせる。
【０１７９】
第２データ・セレクタ６５は、制御部８７から供給される選択制御信号ＳＥＬ１の値に応じて、８点のデータのうち対象領域Ｂ４内の２点の入力データＸ（２ｎ＋２），（Ｘ（２ｎ＋１））を選択して第１端子Ｓ０と第２端子Ｓ１とに出力し、対象領域Ａ４内の中間データＤ2n+1，Ｓ2n+2とを第３端子Ｓ２と第４端子Ｓ３とから出力し、対象領域Ｂ３内の中間データＳ2n+3と一時データ（Ｄ2n+2）とを第５端子Ｓ４と第６端子Ｓ５とから出力し、対象領域Ａ３内の中間データＤ1n+3とＳ1n+4とを第７端子Ｓ６と第８端子Ｓ７とから出力する。
【０１８０】
第２係数乗算器６６において、係数レジスタ６７は、制御部８７から供給された制御信号Ｃ１に応じてリフティング係数αを乗算器６６に出力し、乗算器６８は、第１端子Ｓ０から入力したデータＸ（２ｎ＋２）にリフティング係数αを乗算して得たデータα×Ｘ（２ｎ＋２）を出力する。乗算器６８からの出力データは、２の補数演算回路６９において符号が反転され、加算器７０に出力される。加算器７０は、第２係数乗算器６６から出力されたたデータ−α×Ｘ（２ｎ＋２）と、第２データ・セレクタ６５の第２端子Ｓ１から入力した一時データ（Ｘ（２ｎ＋１））とを加算することで対象領域Ｂ４内の出力データＸ（２ｎ＋１）を算出し、出力先選択部８６に出力する。
【０１８１】
また、第３係数乗算器７１では、係数レジスタ７２は、制御部８７から供給された制御信号Ｃ２に応じてリフティング係数βを乗算器７３に出力し、乗算器７３は、第３端子Ｓ２から入力した中間データＤ2n+1にリフティング係数βを乗算して得たデータβ×Ｄ2n+1を出力する。乗算器７３の出力は、２の補数演算回路７４において符号が反転された後、加算器７５に出力される。加算器７５は、第３係数乗算器７１から出力されたデータ−β×Ｄ2n+1と、第２データ・セレクタ６５の第４端子Ｓ３から入力した中間データＳ2n+2とを加算することで、対象領域Ａ４内の出力一時データ（Ｘ（２ｎ＋４））を算出し、出力先選択部８６に出力する。
【０１８２】
また、第４係数乗算器７６では、係数レジスタ７７は、制御部８７から供給された制御信号Ｃ３に応じてリフティング係数γを乗算器７８に出力し、乗算器７８は、第５端子Ｓ４から入力した中間データＳ2n+3にリフティング係数γを乗算して得たデータγ×Ｓ2n+3を出力する。乗算器７８の出力は、２の補数演算回路７９において符号が反転された後、加算器８０に出力される。加算器８０は、第４係数乗算器７６から出力されたデータ−γ×Ｓ2n+3と、第２データ・セレクタ６５の第６端子Ｓ５から入力した一時データ（Ｄ2n+2）とを加算することで、対象領域Ｂ３内の中間データＤ2n+2を算出し、出力先選択部８６に出力する。
【０１８３】
また、第５係数乗算器８１では、係数レジスタ８２は、制御部８７から供給された制御信号Ｃ４に応じてリフティング係数δを乗算器８３に出力し、乗算器８３は、第７端子Ｓ６から入力した中間データＤ1n+3にリフティング係数δを乗算して得たデータδ×Ｄ1n+3を出力する。乗算器８３の出力は、２の補数演算回路８４において符号が反転された後、加算器８５に出力される。加算器８５は、第５係数乗算器８１から出力されたデータ−δ×Ｄ1n+3と、第２データ・セレクタ６５の第８端子Ｓ７から入力した中間データＳ1n+4とを加算することで、対象領域Ａ３内の第２段階の中間データＳ2n+4を算出し、出力先選択部８６に出力する。
【０１８４】
出力先選択部８６は、制御部８７から供給された選択制御信号ＳＥＬ２の値に従って、加算器７０から入力した出力データＸ（２ｎ＋１）を第１端子Ｋ０から外部に出力する。また、出力先選択部８６は、前記選択制御信号ＳＥＬ２に従って、加算器７５，８０，８５から入力した３点のデータ（Ｘ（２ｎ＋４）），Ｄ2n+2，（Ｓ2n+4）を第３端子Ｋ２〜第５端子Ｋ４からＭＭＵ３１に出力する。ＭＭＵ３１は、フィルタリング部３３ｓから外部に出力された３点のデータ（Ｘ（２ｎ＋４）），Ｄ2n+2，（Ｓ2n+4）をリングメモリ３２ｓに転送し、ＭＭＵ３１は、その３点のデータ（Ｘ（２ｎ＋４）），Ｄ2n+2，（Ｓ2n+4）をリングメモリ３２ｓに転送し、参照済みの記憶領域Ｓ2n+2，（Ｄ2n+2），Ｓ1n+4に上書きさせる。
【０１８５】
次に、Ｎ＋２回目処理（図２５）における対象領域Ａ５，Ａ６，Ｂ５，Ｂ６の４個の変換処理が１クロック周期内に並列に同時実行される。また、対象領域Ａ５，Ａ６，Ｂ５，Ｂ６における上記並列処理の１クロック前の周期において、対象領域Ｎ３の規格化処理が行なわれる。
【０１８６】
対象領域Ａ６，Ｂ６，Ａ５，Ｂ５，Ｎ３は、それぞれ、上記Ｎ回目処理（図２３）の対象領域Ａ２，Ｂ２，Ａ１，Ｂ１，Ｎ１を２系列（２点）後方に移動した領域である。これら対象領域Ａ６，Ｂ６，Ａ５，Ｂ５，Ｎ３では、それぞれ、対象領域Ａ２，Ｂ２，Ａ１，Ｂ１，Ｎ１における処理と同様の処理が実行される。この結果として、対象領域Ａ６では一時データ（Ｘ（２ｎ＋３））が、対象領域Ｂ６では出力データＸ（２ｎ＋４）が、対象領域Ａ５では一時データ（Ｄ2n+3）が、対象領域Ｂ５では中間データＳ2n+4が、対象領域Ｎ３では中間データＤ1n+4がそれぞれ算出される。
【０１８７】
次に、Ｎ＋３回目処理（図示せず）においては、上記Ｎ＋１回目処理（図２４）の対象領域Ｂ４，Ａ４，Ｂ３，Ａ３，Ｎ２を２系列（２点）後方に移動した領域において、Ｎ＋１回目処理と同様の処理が行なわれる。
【０１８８】
以上のように、上記Ｎ回目処理（図２３）および上記Ｎ＋１回目処理（図２４）と同様の処理が、全ての出力データが算出されるまで対象領域を移動させつつ繰り返し実行される。これにより、偶数番目或いは奇数番目の１点の出力データを算出するのに要する平均周期を１クロック周期とすることができ、出力データの算出周期を大幅に短縮化できる。
【０１８９】
本実施形態に係るウェーブレット変換装置は、図２２に示す構成を有する水平フィルタリング部と垂直フィルタリング部とを備えるため、上記第２の実施形態の場合と同じラインベースの２次元逆ＤＷＴ処理を実行することが可能である。したがって、ウェーブレット変換を極めて短時間で高速に行うことが可能である。
【０１９０】
また、第３の実施形態においても、第２の実施形態で説明したように水平フィルタリング部３３ｓが各回処理において水平ラインを出力し、垂直フィルタリング３３ｓが各回処理において画素列を入力するので、上記第１の実施形態に係るウェーブレット変換装置１のようにラインバッファ回路５を必要としない。したがって、小回路規模で、低消費電力で動作する廉価なウェーブレット変換装置の実現が可能である。
【０１９１】
＜変形例＞
図２６は、上記した第２および第３の実施形態の変形例に係る２次元ウェーブレット変換装置３０ａの概略構成を示す図である。このウェーブレット変換装置３０ａは、サブバンドの２次元画像データを一時的に保持するバッファ８８、外部供給のクロック信号ＣＬＫと同期して動作するＭＭＵ（メモリ管理部）８９、第１リングメモリ３２または３２ｓ、水平フィルタリング部３３または３３ｓ、第２リングメモリ３、垂直フィルタリング部４を備えて構成されている。
【０１９２】
ここで、第２リングメモリ３と垂直フィルタリング部４は、上記第１の実施形態に係るリングメモリ３とフィルタリング部４と同じ構成を有する。よって、本変形例の第２リングメモリ３Ｂと垂直フィルタリング部４Ｂは４ライン周期で１ラインの出力データを算出できる。
【０１９３】
また、第１リングメモリ３２または３２ｓと水平フィルタリング部３３または３３ｓとは、上記第２の実施形態に係るリングメモリ３２とフィルタリング部３３と、若しくは上記第３の実施形態に係るリングメモリ３２ｓとフィルタリング部３３ｓと同じ構成を有する。よって、本変形例の第１リングメモリ３２または３２ｓと水平フィルタリング部３３または３３ｓは１クロック周期で１点の出力データを算出できる。
【０１９４】
したがって、この変形例においては、水平フィルタリング部３３または３３ｓは、第１リングメモリ３２から４クロック周期間隔で入力データを取り込むように処理する。これにより、上記第１の実施形態に係るウェーブレット変換装置１（図１）のようにラインバッファ回路５を必要としない。したがって、メモリ使用量が少ない、小回路規模で低廉なウェーブレット変換装置の実現が可能となる。
【０１９５】
なお、本変形例では、第２リングメモリと垂直フィルタリング部として第１の実施形態に係る第２リングメモリ３Ｂと垂直フィルタリング部４Ｂを採用したが、この代わりに、第２リングメモリと垂直フィルタリング部として従来技術で説明したような平均５クロック周期で１点の出力データを算出する構成を採用してもよい。この場合には、水平フィルタリング部３３または３３ｓは、第１リングメモリ３２から５ライン周期間隔で入力データを取り込むように処理する。これにより、ラインバッファ回路５を必要としない構成とすることができる。
【０１９６】
＜第４の実施形態＞
次に、本発明の第４の実施形態に係るウェーブレット変換装置およびウェーブレット変換方法について説明する。図２７は、第４の実施形態に係るウェーブレット変換装置９０の概略構成を示す図である。このウェーブレット変換装置９０は、サブバンドの２次元画像データを一時的に保持するバッファ９１、外部供給のクロック信号ＣＬＫと同期して動作するＭＭＵ（メモリ管理部）９２、第１リングメモリ３２Ｈ、第１水平フィルタリング部３３Ｈ、第２リングメモリ３２Ｌ、第２水平フィルタリング部３３Ｌ、第３リングメモリ９３および垂直フィルタリング部９４を備えて構成されている。ここで、第１リングメモリ３２Ｈ、第１水平フィルタリング部３３Ｈ、第２リングメモリ３２Ｌ、第２水平フィルタリング部３３Ｌ、第３リングメモリ９３および垂直フィルタリング部９４は、外部供給の画素クロック信号ＰＣＬＫと同期して動作する。
【０１９７】
本実施形態では、ＭＭＵ９２、第１水平フィルタリング部３３Ｈ、第２水平フィルタリング部３３Ｌおよび垂直フィルタリング部９４、はハードウェアで構成されるが、この代わりに、マイクロプロセッサで実行する命令群を含むコンピュータ・プログラムで構成されてもよい。
【０１９８】
このウェーブレット変換装置９０は、２次元画像データにラインベースの２次元逆ＤＷＴを１回施す機能を有している。第１および第２水平フィルタリング部３３Ｈ，３３Ｌと垂直フィルタリング部９４とは、それぞれ第３リングメモリ９３を介して接続されている。
【０１９９】
ＭＭＵ９２は、バッファ９１、第１リングメモリ３２Ｈ、第２リングメモリ３２Ｌおよび第３リングメモリ９３のデータ入出力を制御する機能を有しており、バッファ９１から読出したサブバンドの２次元画像データを第１リングメモリ３２Ｈおよび第２リングメモリ３２Ｌに転送し記憶させることができる。
【０２００】
ここで、バッファ９１には、図１１で示した４つのサブバンドのデータ２３ＬＬ，２３ＨＬ，２３ＬＨ，２３ＨＨが入力され、第１リングメモリ３２Ｈには、サブバンド２３ＬＨと２３ＨＨの水平方向の画素が交互に配列された水平幅Ｗ、垂直高さＨ／２の画像データが入力され、第２リングメモリ３２Ｌには、サブバンド２３ＬＬと２３ＨＬの水平方向の画素が交互に配列された水平幅Ｗ、垂直高さＨ／２の画像データが入力される。
【０２０１】
第１水平フィルタリング部３３Ｈは、第１リングメモリ３２Ｈから入力したデータに対して２次元画像の水平方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの１クロック周期で、サブバンド２３ＬＨと２３ＨＨとを合成した画像データであるサブバンド２３Ｈのデータを１点ずつ算出できる。このようにして算出されたサブバンド２３Ｈの画像データＹH（ｍ）が第３リングメモリ９３に転送される。
【０２０２】
第２水平フィルタリング部３３Ｌは、第２リングメモリ３２Ｌから入力したデータに対して２次元画像の水平方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの１クロック周期で、サブバンド２３ＬＬと２３ＨＬとを合成した画像データであるサブバンド２３Ｌのデータを１点ずつ算出できる。このようにして算出されたサブバンド２３Ｌの画像データＹL（ｍ）が第３リングメモリ９３に転送される。
【０２０３】
これら第１水平フィルタリング部３３Ｈと第２水平フィルタリング部３３Ｌとしては、上記第２または第３の実施形態に係るフィルタリング部３３または３３ｓと同じ構成を採用すればよい。
【０２０４】
一方、垂直フィルタリング部９４は、第３リングメモリ９３からサブバンド２３Ｌと２３Ｈの画像データＹL（ｍ）およびＹH（ｍ）を入力し、この画像データＹL（ｍ）およびＹH（ｍ）の垂直方向のラインを交互に配列したデータに対して画素列ごとに水平方向にフィルタリングを実行することで、画素クロック信号ＰＣＬＫの１クロック周期で、画像データ２３の垂直ラインのデータを水平方向に２点ずつ算出できる。
【０２０５】
図２８に、本実施形態に係る垂直フィルタリング部９４の概略構成を示す。この垂直フィルタリング部９４は、入力データを選択的に取り込む第１データ・セレクタ９５、第１および第２係数乗算器９６，１００、遅延レジスタ９９，１０３、第２データ・セレクタ１０４、前段の４つの加算器１０５，１１１，１１７，１２３、第３〜第６係数乗算器１０６，１１２，１１８，１２４、後段の４つの加算器１１０，１１６，１２２，１２８、出力先選択部（ＤＭＵＸ）１２９、および制御部１３０を備えて構成される。これら構成要素のうち、２個の加算器１０５，１１０と第３係数乗算器１０６からなる組は３点のデータを１クロック周期内に処理するため、３点演算部を構成する。また、２個の加算器１１１，１１６と第４係数乗算器１１２からなる組、２個の加算器１１７，１２２と第５係数乗算器１１８からなる組、および２個の加算器１２３，１２８と第６係数乗算器１２４からなる組も、それぞれ、３点のデータを１クロック周期内に処理するため、３点演算部を構成する。また、これら４組の３点演算部と出力先選択部１２９とで中間データ算出手段が構成される。
【０２０６】
制御部１３０は、画素クロック信号ＰＣＬＫと同期して動作する。第１データ・セレクタ９５は、この制御部１３０から供給される選択制御信号ＳＥＬ０の値に応じて、第３リングメモリ９３から取り込んだデータ（ＹL（ｍ）およびＹH（ｍ）の垂直方向のラインを交互に配列したデータ）を第１端子Ｓ０〜第１２端子Ｓ１１の何れかから選択的に出力する。
【０２０７】
第１データ・セレクタ９５の第１端子Ｓ０あるいは第２端子Ｓ１から出力されたデータは、第１係数乗算器９６と第２係数乗算器１００とに入力される。第１係数乗算器９６では、係数レジスタ９７は、制御部１３０から供給される制御信号Ｃ０に応じて、規格化係数κを乗算器９８に出力し、乗算器９８は、入力データに規格化係数κを乗算し、乗算出力を遅延レジスタ９９に出力する。また、第２係数乗算器１００では、係数レジスタ１０１は、制御部１３０から供給される制御信号Ｃ１に応じて、規格化係数１／κを乗算器１０２に出力し、乗算器１０２は、入力データに規格化係数１／κを乗算し、乗算出力を遅延レジスタ１０３に出力する。なお、第１係数乗算器９６と遅延レジスタ９９との組、第２係数乗算器１０１と遅延レジスタ１０３との組で、それぞれ、本発明の規格化手段が構成される。
【０２０８】
遅延レジスタ９９と遅延レジスタ１０３とに入力されたデータは、画素クロック信号ＰＣＬＫの１クロック周期遅延した後に、第２データ・セレクタ１０４に出力される。また、遅延レジスタ１０３に入力されたデータは、分岐してＭＭＵ９２に出力される。
【０２０９】
また、第１データ・セレクタ９５の第３端子Ｓ２〜第１２端子Ｓ１１から出力されたデータは、第２データ・セレクタ１０４に出力され、さらに、第２データ・セレクタ１０４は、制御部１３０から供給される選択制御信号ＳＥＬ１に応じて、各データを４組の３点演算部に出力し、これら３点演算部において並列処理が実行される。
【０２１０】
前段の加算器１０５は、第２データ・セレクタ１０４の第１端子Ｓ０と第２端子Ｓ１とから出力された２点のデータを加算して第３係数乗算器１０６に出力する。第３係数乗算器１０６では、係数レジスタ１０７は、制御部１３０から供給される制御信号Ｃ２に応じて、リフティング係数αを乗算器１０８に出力し、乗算器１０８は、加算器１０５から入力したデータにリフティング係数αを乗算する。その乗算出力は２の補数演算回路１０９において符号が反転されて後段の加算器１１０に出力される。そして、後段の加算器１１０は、第３係数乗算器１０６から入力したデータと、第２データ・セレクタ１０４の第３端子Ｓ２から入力したデータとを加算して出力先選択部１２９に出力する。
【０２１１】
また、前段の加算器１１１は、第２データ・セレクタ１０４の第４端子Ｓ３と第５端子Ｓ４とから出力された２点のデータを加算して第４係数乗算器１１２に出力する。第４係数乗算器１１２では、係数レジスタ１１３は、制御部１３０から供給される制御信号Ｃ３に応じて、リフティング係数βを乗算器１１４に出力し、乗算器１１４は、加算器１１１から入力したデータにリフティング係数βを乗算する。その乗算出力は２の補数演算回路１１５において符号が反転されて後段の加算器１１６に出力される。後段の加算器１１６は、第４係数乗算器１１２から入力したデータと、第２データ・セレクタ１０４の第６端子Ｓ５から入力したデータとを加算して出力先選択部１２９に出力する。
【０２１２】
また、前段の加算器１１７は、第２データ・セレクタ１０４の第７端子Ｓ６と第８端子Ｓ７とから出力された２点のデータを加算して第５係数乗算器１１８に出力する。第５係数乗算器１１８では、係数レジスタ１１９は、制御部１３０から供給される制御信号Ｃ４に応じて、リフティング係数γを乗算器１２０に出力し、乗算器１２０は、加算器１１７から入力したデータにリフティング係数γを乗算する。その乗算出力は２の補数演算回路１２１において符号が反転されて後段の加算器１２２に出力される。後段の加算器１２２は、第５係数乗算器１１８から入力したデータと、第２データ・セレクタ１０４の第９端子Ｓ８から入力したデータとを加算して出力先選択部１２９に出力する。
【０２１３】
また、前段の加算器１２３は、第２データ・セレクタ１０４の第１０端子Ｓ９と第１１端子Ｓ１０とから出力された２点のデータを加算して第６係数乗算器１２４に出力する。第６係数乗算器１２４では、係数レジスタ１２５は、制御部１３０から供給される制御信号Ｃ５に応じて、リフティング係数δを乗算器１２６に出力し、乗算器１２６は、加算器１２３から入力したデータにリフティング係数δを乗算する。その乗算出力は２の補数演算回路１２７において符号が反転されて後段の加算器１２８に出力される。後段の加算器１２８は、第６係数乗算器１２４から入力したデータと、第２データ・セレクタ１０４の第１２端子Ｓ１１から入力したデータとを加算して出力先選択部１２９に出力する。
【０２１４】
出力先選択部１２９は、制御部１３０から供給される選択制御信号ＳＥＬ２の値に応じて、後段の加算器１１０，１１６，１２２，１２８から並列に入力する４点のデータを第１端子Ｋ０〜第４端子Ｋ３の何れかから選択的に出力する。
【０２１５】
出力先選択部１２９は、第１端子Ｋ０と第２端子Ｋ１から出力データＸ（２ｋ）およびＸ（２ｋ＋１）とを出力する。また、出力先選択部１２９の第１端子Ｋ０、第３端子Ｋ２、第４端子Ｋ３から出力されたデータはＭＭＵ９２にも出力される。ＭＭＵ９２は、第１端子Ｋ０、第３端子Ｋ２、第４端子Ｋ３から出力されたデータを第３リングメモリ９３に転送し、参照済みの記憶領域に上書きさせることができる。
【０２１６】
次に、以上の垂直フィルタリング部９４を用いたリフティング演算の代表例を、図２９〜図３１を参照しつつ以下に説明する。図２９〜図３１は、９×７タップのDaubechiesフィルタのリフティング構成を模式的に示す格子図である。この格子図の演算は、図３７の場合と同様に行われる。なお、図２９〜図３１は、説明の便宜上、各格子点間を結ぶ線分に対応するリフティング係数−α，−β，−γ，−δと規格化係数κ，１／κとを表示していない。
【０２１７】
図２９〜図３１は、本実施形態でのＮ回目（Ｎは整数）〜Ｎ＋２回目の処理を模式的に示している。
【０２１８】
Ｎ回目処理（図２９）では、対象領域Ｃ１，Ｃ２，Ｃ３，Ｃ４の４個の変換処理が１クロック周期内に並列に同時実行される。
【０２１９】
対象領域Ｃ１では、２点の中間データＤ1n+4，Ｄ1n+5を加算したデータにリフティング係数−δを乗算することで乗算値を算出した後、この乗算値と中間データＳ1n+5とを加算するという３点演算が実行される。この結果、偶数番目の入力データＹ（２ｎ＋１０）を始点とする系列上の第２段階の中間データＳ2n+5が算出される。ここで、２点の中間データＤ1n+4，Ｄ1n+5は、中間データＳ1n+5の系列に対して１点前後する系列上のデータである。
【０２２０】
また、対象領域Ｃ２では、２点の中間データＳ2n+3，Ｓ2n+4を加算したデータにリフティング係数−γを乗算した後、この乗算値と中間データＤ1n+3とを加算するという３点演算が実行される。この結果、奇数番目の入力データＹ（２ｎ＋７）を始点とする系列上の第２段階の中間データＤ2n+3が算出される。ここで、２点の中間データＳ2n+3，Ｓ2n+4は、中間データＤ1n+3の系列に対して１点前後する系列上のデータである。
【０２２１】
また、対象領域Ｃ３では、２点の中間データＤ2n+1，Ｄ2n+2を加算したデータにリフティング係数−βを乗算することで乗算値を算出した後、この乗算値と中間データＳ2n+2とを加算するという３点演算が実行される。この結果、入力データＹ（２ｎ＋４）を始点とする系列上の出力データＸ（２ｎ＋４）が算出される。ここで、２点の中間データＤ2n+1，Ｄ2n+2は、中間データＳ2n+2の系列に対して１点前後する系列上のデータである。
【０２２２】
また、対象領域Ｃ４では、偶数番目の２点の出力データＸ（２ｎ），Ｘ（２ｎ＋２）を加算したデータにリフティング係数−αを乗算することで乗算値を算出した後、この乗算値と中間データＤ2nとを加算するという３点演算が実行される。この結果、入力データＹ（２ｎ＋１）を始点とする系列上の出力データＸ（２ｎ＋１）が算出される。ここで、偶数番目の２点の入力データＸ（２ｎ），Ｘ（２ｎ＋２）は、中間データＤ2nに対して１点前後するデータである。
【０２２３】
また、前記対象領域Ｃ１〜Ｃ４における演算処理が実行される１クロック前の周期において、対象領域Ｎ１およびＮ２における演算処理が並列実行される。対象領域Ｎ１においては、入力データＹ（２ｎ＋１０）に規格化係数κを乗算する規格化処理が実行され中間データＳ1n+5が算出され、対象領域Ｎ２においては、入力データＹ（２ｎ＋１１）に規格化係数１／κを乗算する規格化処理が実行され中間データＤ1n+5が算出される。
【０２２４】
このＮ回目の具体的な処理の内容は次の通りである。Ｎ回目処理においては、対象領域Ｃ１，Ｃ２，Ｃ３，Ｃ４内の演算処理が１クロック周期内に行なわれるが、この演算処理の１クロック周期前において、対象領域Ｎ１およびＮ２内の演算処理が行なわれる。この１クロック前の周期における処理から説明する。ＭＭＵ９２は、リングメモリ９３に一時記憶された入力データＹ（２ｎ＋１０）およびＹ（２ｎ＋１１）を入力し、制御部１３０から供給される選択制御信号ＳＥＬ０に応じて第１端子Ｓ０から入力データＹ（２ｎ＋１０）を出力し、第２端子Ｓ１から入力データＹ（２ｎ＋１１）を出力する。
【０２２５】
第１端子Ｓ０から出力された入力データＹ（２ｎ＋１０）は、第１係数乗算器９６に入力される。第１係数乗算器９６において、係数レジスタ９７は、制御部１３０から供給された制御信号Ｃ０に従って規格化係数κを乗算器９８に出力し、乗算器９８は入力データＹ（２ｎ＋１０）に規格化係数κを乗算する。この結果、第１係数乗算器９６は、中間データＳ1n+5（＝κ×Ｙ（２ｎ＋１０））を１クロック周期内に算出する。
【０２２６】
第２端子Ｓ１から出力された入力データＹ（２ｎ＋１１）は、第２係数乗算器１００に入力される。第２係数乗算器１００において、係数レジスタ１０１は、制御部１３０から供給された制御信号Ｃ１に従って規格化係数１／κを乗算器１０２に出力し、乗算器１０２は入力データＹ（２ｎ＋１１）に規格化係数１／κを乗算する。この結果、第２係数乗算器１００は、中間データＤ1n+5（＝１／κ×Ｙ（２ｎ＋１１））を１クロック周期内に算出する。
【０２２７】
第１および第２係数乗算器９６，１００から出力された中間データＳ1n+5，Ｄ1n+5は、それぞれ遅延レジスタ９９，１０３に入力される。遅延レジスタ９９，１００において、中間データＳ1n+5，Ｄ1n+5は１クロック周期遅延された後、出力される。
【０２２８】
上記対象領域Ｎ１およびＮ２内の演算処理が行なわれた１クロック周期の後において、ＭＭＵ９２は、第３リングメモリ９３に一時記憶された１０点のデータＸ（２ｎ），Ｄ2n，Ｘ（２ｎ＋２），Ｄ2n+1，Ｓ2n+2，Ｄ2n+2，Ｓ2n+3，Ｄ1n+3，Ｓ2n+4，Ｄ1n+4を第１データ・セレクタ９５に出力させる。第１データ・セレクタ９５は、制御部１３０から供給された選択制御信号ＳＥＬ０の値に応じて、前記１０点のデータを第３端子Ｓ２〜第１２端子Ｓ１１から出力する。この出力データは、第２データ・セレクタ１０４に入力される。また、遅延レジスタ９６，１０３に記憶されている中間データＳ1n+5，Ｄ1n+5が第２データ・セレクタ１０４に入力される。遅延レジスタ１０３から出力された中間データＤ1n+5は分岐して外部のＭＭＵ９２にも出力され、ＭＭＵ９２は、その中間データＤ1n+5をリングメモリ９３に転送し、参照済みの記憶領域入力データＹ（２ｎ＋１１）に上書きさせる。
【０２２９】
第２データ・セレクタ１０４は、制御部１３０から供給された選択制御信号ＳＥＬ１に応じて、前記１２点のデータの中から、対象領域C４内の３点の入力データＸ（２ｎ），Ｘ（２ｎ＋２），Ｄ2nを選択してそれぞれ第１端子Ｓ０〜第３端子Ｓ２から出力し、対象領域Ｃ３内の３点のデータＤ2n+1，Ｄ2n+2，Ｓ2n+2を選択してそれぞれ第４端子Ｓ３〜第６端子Ｓ５から出力し、対象領域Ｃ２内の３点のデータＳ2n+3，Ｓ2n+4，Ｄ1n+3を選択してそれぞれ第７端子Ｓ６〜第９端子Ｓ８から出力し、対象領域Ｃ１内の３点のデータＤ1n+4，Ｄ1n+5，Ｓ1n+5を選択してそれぞれ第１０端子Ｓ９〜第１２端子Ｓ１１から出力する。
【０２３０】
前段の加算器１０５は、第２データ・セレクタ１０４の第１端子Ｓ０と第２端子Ｓ１から入力した対象領域Ｃ４内の２点のデータＸ（２ｎ），Ｘ（２ｎ＋２）を加算したデータを第３係数乗算器１０６に出力する。第３係数乗算器１０６では、係数レジスタ１０７は制御信号Ｃ２に従ってリフティング係数αを乗算器１０８に供給し、乗算器１０８は、入力データとリフティング係数αとを乗算した乗算値（＝α×（Ｘ（２ｎ）＋Ｘ（２ｎ＋２）））を出力する。この出力データは、２の補数演算回路１０９において符号が反転された後、後段の加算器１１０に出力される。そして、後段の加算器１１０は、第３係数乗算器１０６から入力する乗算値と、第２データ・セレクタ１０４の第３端子Ｓ２から入力したデータＤ2nとを加算することで、対象領域Ｃ４内の出力データＸ（２ｎ＋１）算出し、出力先選択部１２９に出力する。
【０２３１】
また、前段の加算器１１１は、第２データ・セレクタ１０４の第４端子Ｓ３と第５端子Ｓ４から入力した対象領域Ｃ３内の２点のデータＤ2n+1，Ｄ2n+2を加算したデータを第４係数乗算器１１２に出力する。第４係数乗算器１１２では、係数レジスタ１１３は制御信号Ｃ３に従ってリフティング係数βを乗算器１１４に供給し、乗算器１１４は、入力データとリフティング係数βとを乗算した乗算値（＝β×（Ｄ2n+1＋Ｄ2n+2））を出力する。この出力データは、２の補数演算回路１１５において符号が反転された後、後段の加算器１１６に出力される。そして、後段の加算器１１６は、第４係数乗算器１１２から入力する乗算値と、第２データ・セレクタ１０４の第６端子Ｓ５から入力したデータＳ2n+2を加算することで、対象領域Ｃ３内の出力データＸ（２ｎ＋４）を算出し、出力先選択部１２９に出力する。
【０２３２】
また、前段の加算器１１７は、第２データ・セレクタ１０４の第７端子Ｓ６と第８端子Ｓ７から入力した対象領域Ｃ２内の２点のデータＳ2n+3，Ｓ2n+4を加算したデータを第５係数乗算器１１８に出力する。第５係数乗算器１１８では、係数レジスタ１１９は制御信号Ｃ４に従ってリフティング係数γを乗算器１２０に供給し、乗算器１２０は、入力データとリフティング係数γとを乗算した乗算値（＝γ×（Ｓ2n+3＋Ｓ2n+4））を出力する。この出力データは２の補数演算回路１２１において符号が反転された後、後段の加算器１２２に出力される。そして、後段の加算器１２２は、第５係数乗算器１１８から入力する乗算値と、第２データ・セレクタ１０４の第９端子Ｓ８から入力したデータＤ1n+3とを加算することで、対象領域Ｃ２内の中間データＤ2n+3を算出し、出力先選択部１２９に出力する。
【０２３３】
また、前段の加算器１２３は、第２データ・セレクタ１０４の第１０端子Ｓ９と第１１端子Ｓ１０から入力した対象領域Ｃ１内の２点のデータＤ1n+4，Ｄ1n+5を加算したデータを第６係数乗算器１２４に出力する。第６係数乗算器１２４では、係数レジスタ１２５は制御信号Ｃ５に従ってリフティング係数δを乗算器１２６に供給し、乗算器１２６は、入力データとリフティング係数δとを乗算した乗算値（＝δ×（Ｄ1n+4＋Ｄ1n+5））を出力する。この出力データは、２の補数演算回路１２７において符号が反転された後、後段の加算器１２８に出力される。そして、後段の加算器１２８は、第６係数乗算器１２４から入力する乗算値と、第２データ・セレクタ１０４の第１２端子Ｓ１１から入力した中間データＳ1n+5とを加算することで、対象領域Ｃ１内の中間データＳ2n+5を算出し、出力先選択部１２９に出力する。
【０２３４】
出力先選択部１２９は、選択制御信号ＳＥＬ２の値に従って、後段の２つの加算器１１０,１１６から入力した２点の出力データを第１端子Ｋ０と第２端子Ｋ１とからそれぞれ出力する。また、出力先選択部１２９は、後段の３つの加算器１１０，１２２，１２８からの入力した３点のデータをＭＭＵ９２へ出力する。ＭＭＵ９２は、出力された中間データＸ（２ｎ＋４），Ｄ2n+3，Ｓ2n+5を第３リングメモリ９３に転送し、ＭＭＵ９２は、その３点のデータ（２ｎ＋４），Ｄ2n+3，Ｓ2n+5をリングメモリ９３に転送し、参照済みの記憶領域Ｓ2n+2，Ｄ1n+3，Ｙ（２ｎ＋１０）に上書きさせる。
【０２３５】
次のＮ＋１回目処理（図３０）では、対象領域Ｃ５，Ｃ６，Ｃ７，Ｃ８の変換処理が行なわれる。また、この対象領域Ｃ５，Ｃ６，Ｃ７，Ｃ８の変換処理より１クロック前の周期において対象領域Ｎ３，Ｎ４の２個の規格化処理とが実行される。対象領域Ｃ５，Ｃ６，Ｃ７，Ｃ８，Ｎ３，Ｎ４は、上記Ｎ回目処理（図２９）の対象領域Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｎ１，Ｎ２を２系列（２点）後方に移動した領域である。これら対象領域Ｃ５，Ｃ６，Ｃ７，Ｃ８，Ｎ３，Ｎ４では、それぞれ、対象領域Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｎ１，Ｎ２での処理と同様の処理が実行される。したがって、対象領域Ｃ８では、奇数番目の入力データＹ（２ｎ＋３）を始点とする系列上の出力データＸ（２ｎ＋３）が算出され、対象領域Ｃ７では、偶数番目の入力データＹ（２ｎ＋６）を始点とする系列上の出力データＸ（２ｎ＋６）が算出され、対象領域Ｃ６では、奇数番目の入力データＹ（２ｎ＋９）を始点とする系列上の第２段階の中間データＤ2n+4が算出され、対象領域Ｃ１では、偶数番目の入力データＹ（２ｎ＋１２）を始点とする系列上の第２段階の中間データＳ2n+6が算出される。また、１クロック前の周期において、対象領域Ｎ３，Ｎ４では、入力データＹ（２ｎ＋１２），Ｙ（２ｎ＋１３）に対する規格化処理が実行される。
【０２３６】
さらに、Ｎ＋２回目処理（図３１）では、対象領域Ｃ９，Ｃ１０，Ｃ１１，Ｃ１２の変換処理が行なわれる。また、この対象領域Ｃ９，Ｃ１０，Ｃ１１，Ｃ１２の変換処理より１クロック前の周期において対象領域Ｎ５，Ｎ６の２個の規格化処理とが実行される。
【０２３７】
以上のように、上記Ｎ回目処理（図２９）と同様の処理が、全ての点の出力データが算出されるまで対象領域を移動させつつ繰り返し実行される。これにより、偶数番目および奇数番目の２点の出力データを算出するのに要する平均周期を１クロック周期とすることができ、出力データの算出周期を大幅に短縮化できる。
【０２３８】
次に、上記ウェーブレット変換装置９０を用いたラインベースの２次元逆ＤＷＴ処理を以下に説明する。
【０２３９】
第１水平フィルタリング部３３Ｈに入力されるデータは、図１１に示したサブバンド２３ＬＨおよび２３ＨＨであり、第２水平フィルタリング部３３Ｌに入力されるデータは、サブバンド２３ＬＬおよび２３ＨＬである。そして、第１および第２水平フィルタリング部３３Ｈ，３３Ｌからは、それぞれサブバンド２３Ｈ（ＹH（ｍ）），２３Ｌ（ＹL（ｍ））が出力される。
【０２４０】
垂直フィルタリング部９４に入力するデータは、第１および第２水平フィルタリング部３３Ｈ，３３Ｌから出力されるデータＹH（ｍ），ＹL（ｍ）であり、これらデータＹH（ｍ），ＹL（ｍ）の垂直ラインのデータが交互に配列されることによって、水平方向に画素列として入力される。そして、垂直フィルタリング部９４は、２次元画像データ２３を出力する。
【０２４１】
具体的には、第１リングメモリ３２Ｈと第１水平フィルタリング部３３Ｈは、水平ライン単位で入力するデータを１点当たり１クロック周期でフィルタリングすることでサブバンド２３Ｈを出力し、また、第２リングメモリ３２Ｌと第２水平フィルタリング部３３Ｌは、水平ライン単位で入力するデータを１点当たり１クロック周期でフィルタリングすることでサブバンド２３Ｌを出力する。
【０２４２】
なお、第１リングメモリ３２Ｈと第２リングメモリ３３Ｌは、第３の実施例で述べた図２２のリングメモリ３２ｓを用いることができ、図３３に示すように、入力データ…，Ｘj（ｋ），Ｘj+1（ｋ），…に対応する８点（８画素）のデータを保持する記憶領域１３３を有し、上記一時データや中間データを保持することができる。もしくは、第１リングメモリ３２Ｈと第２リングメモリ３３Ｌは、第２の実施例で述べた図１５のリングメモリ３２を用いることができ、図２１に示すように、入力データ…，Ｘj（ｋ），Ｘj+1（ｋ），…に対応する９点（９画素）のデータを保持する記憶領域５９を有し、上記一時データや中間データを保持することができる。
【０２４３】
同様に、第１および第２水平フィルタリング部３３Ｈ，３３Ｌは、第３の実施例で述べた図２２のフィルタリング部３３ｓ、もしくは、第２の実施例で述べた図１５のフィルタリング部３３を用いることができる。
【０２４４】
第３リングメモリ９３と垂直フィルタリング部９４は、上記Ｎ回目処理（図２９）と上記Ｎ＋１回目処理（図３０）を含む各回の処理を、各画素列について水平ライン単位で繰り返し実行する。例えば、上記Ｎ回目処理（図２９）が、０番目の画素列に対して実行された後に、１番目の画素列に対して実行され、次に、２番目の画素列に対して実行され、・・・、最終的に、Ｗ−１番目の画素列に対して実行される。その後、上記Ｎ＋１回目処理（図３０）が、０番目の画素列に対して実行された後に、１番目の画素列に対して実行され、更に、２番目の画素列に対して実行され、・・・、最終的に、Ｗ−１番目の画素列に対して実行される。このようにして、各回の処理が全ての画素列について繰り返し実行される。
【０２４５】
この結果、垂直フィルタリング部９４からは、偶数行のデータと奇数行のデータとが各水平ライン単位で並列に出力される。例えば、上記Ｎ回目処理（図２９）を０番目〜Ｗ−１番目の画素列に対して連続的に実行した結果、２ｎ＋１番目の水平ラインの奇数行のデータＸ0（２ｎ＋１），Ｘ1（２ｎ＋１），…，Ｘj（２ｎ＋１），…，ＸW-1（２ｎ＋１）が連続的に出力される。これと並行して、２ｎ＋４番目の水平ラインの偶数行のデータＸ0（２ｎ＋４），Ｘ1（２ｎ＋４），…，Ｘj（２ｎ＋４），…，ＸW-1（２ｎ＋４）が連続的に出力される。
【０２４６】
なお、第１リングメモリ９３は、図３２に模式的に示すように、入力データ列に対応する１２×Ｗ点（１２ライン）のデータを保持する記憶領域１３２を有しており、上記一時データや中間データを保持することができる。この記憶領域１３２は、垂直方向に１２点のデータを保持する列領域の集合体である。一つの列領域によって、１回の処理で参照される入力データや中間データが保持される。例えば、Ｎ回目処理（図２９）では、或る列領域において、データ列｛Ｘ（２ｎ），Ｄ2n，Ｘ（２ｎ＋２），Ｄ2n+1，Ｓ2n+2，Ｄ2n+2，Ｓ2n+3，Ｄ1n+3，Ｓ2n+4，Ｄ1n+4，Ｙ（２ｎ＋１０），Ｙ（２ｎ＋１１）｝から、データ列｛Ｘ（２ｎ），Ｄ2n，Ｘ（２ｎ＋２），Ｄ2n+1，Ｘ（２ｎ＋４），Ｄ2n+2，Ｓ2n+3，Ｄ2n+3，Ｓ2n+4，Ｄ1n+4，Ｓ2n+5，Ｄ1n+5｝へ記憶内容が変化する（データＳ2n+2，Ｄ1n+3，Ｙ（２ｎ＋１０），Ｙ（２ｎ＋１１）が、それぞれ、データＸ（２ｎ＋４），Ｄ2n+3，Ｓ2n+5，Ｄ1n+5に上書きされる）。
【０２４７】
以上の処理を再帰的に実行させることで、任意次数の分解レベルのサブバンド（帯域成分）を合成することができる。すなわち、ｋ＋１次（ｋは２以上の整数）の分解レベルにおける４つのサブバンドＬＬ（ｋ＋１），ＨＬ（ｋ＋１），ＬＨ（ｋ＋１），ＨＨ（ｋ＋１）を、ウェーブレット変換装置９０に入力させることで、ｋ次の分解レベルにおけるサブバンドＬＬ（ｋ）を得ることが可能であり、このような処理を再帰的に実行することによって、ｋ次の分解レベルのサブバンドから元の画像データを復元することが可能である。
【０２４８】
このように、本実施形態に係るウェーブレット変換装置９０とウェーブレット変換方法では、４点の中間データを算出する４個の変換処理と２点の中間データを規格化する２個の規格化処理とを１クロック周期内に並列に同時実行するため、出力データの算出周期を大幅に短縮化できる。したがって、ウェーブレット変換を極めて短時間で高速に実行することが可能である。
【０２４９】
また、ウェーブレット変換装置９０は、１クロック周期内に１点のデータを算出する第１および第２水平フィルタリング部３３Ｈ，３３Ｌと、１クロック周期内で２点のデータを算出する垂直フィルタリング部９４とを備えるため、１クロック周期内に２点の合成データを並列に算出できる。したがって、ラインベースの２次元ＤＷＴ演算を極めて高速に実行することが可能である。
【０２５０】
＜変形例＞
図３４は、上記した第４の実施形態の変形例に係る２次元ウェーブレット変換装置１４０の概略構成を示す図である。このウェーブレット変換装置１４０は、サブバンドの２次元画像データを一時的に保持するバッファ９１、外部供給のクロック信号ＣＬＫと同期して動作するＭＭＵ（メモリ管理部）９２Ａ、第１リングメモリ９３Ａ、水平フィルタリング部９４Ａ、ラインバッファ回路１４１、第２リングメモリ９３Ｂおよび垂直フィルタリング部９４Ｂを備えて構成されている。
【０２５１】
ここで、水平フィルタリング部９４Ａと垂直フィルタリング部９４Ｂは、上記第４の実施形態に係る垂直フィルタリング部９４（図２８）の構成と同じ構成を有し、図２９〜図３１で示したリフティング演算を実行するように、データを与えられ且つ制御される。
【０２５２】
水平フィルタリング部９４Ａからは、サブバンド２３Ｈと２３Ｌのデータが交互に各水平ライン単位で出力される。
【０２５３】
ラインバッファ回路１４１においては、第１ラインバッファ１４３と第２ラインバッファ１４４は、それぞれ、水平ライン２本分のバッファを備えている。セレクタ１４２が、入力する２本のデータを第１ラインバッファ１４３と第２ラインバッファ１４４の何れか一方に記憶させる期間、デマルチプレクサ１４５は、その他方に記憶済みの２本のデータを読み出して第２リングメモリ９３Ｂに出力する。
【０２５４】
このように本変形例の構成によっても、１クロック周期内に合成データを２点並列に算出できることから、ラインベースの２次元ＤＷＴ演算を極めて高速に実行することが可能である。
【０２５５】
【発明の効果】
以上の如く、本発明に係るウェーブレット変換装置によれば、各入力データを規格化する処理と、各中間データを一系列上の他の中間データや出力データに変換する変換処理とを繰り返し実行し、繰り返し実行される複数の処理のうち少なくとも２個の処理を１クロック周期内に並列に実行するため、出力データの算出周期を短縮化でき、逆ウェーブレット変換を短時間で高速に実行することが可能になる。
【０２５６】
また、本発明に係るウェーブレット変換方法によれば、入力データを規格化して第１段階の中間データに変換する工程（ｂ）と、中間データを一系列上の他の中間データに変換する工程（ｃ）と、最終段階の中間データを出力データに変換する工程（ｄ）とは繰り返し実行されるが、繰り返し実行する複数の工程のうち少なくとも２工程を１クロック周期内に並列に実行するため、入力データ列から出力データを算出する周期を短縮化でき、逆ウェーブレット変換を短時間で高速に行うことが可能になる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るウェーブレット変換装置の概略構成を示す図である。
【図２】第１の実施形態に係るフィルタリング部の概略構成図である。
【図３】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図４】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図５】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図６】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図７】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図８】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図９】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図１０】第１の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図１１】サブバンドから画像を合成する工程を模式的に示す図である。
【図１２】２次元画像データとリングメモリの記憶領域とを模式的に示す図である。
【図１３】リングメモリの記憶領域を模式的に示す図である。
【図１４】本発明の第２の実施形態に係るウェーブレット変換装置の概略構成を示す図である。
【図１５】第２の実施形態に係るフィルタリング部の概略構成図である。
【図１６】第２の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図１７】第２の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図１８】第２の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図１９】第２の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図２０】２次元画像データとリングメモリの記憶領域とを模式的に示す図である。
【図２１】リングメモリの記憶領域を模式的に示す図である。
【図２２】本発明の第３の実施形態に係るフィルタリング部の概略構成を示す図である。
【図２３】第３の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図２４】第３の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図２５】第３の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図２６】第２および第３の実施形態の変形例に係るウェーブレット変換装置の概略構成を示す図である。
【図２７】本発明の第４の実施形態に係るウェーブレット変換装置の概略構成を示す図である。
【図２８】第４の実施形態に係る垂直フィルタリング部の概略構成図である。
【図２９】第４の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図３０】第４の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図３１】第４の実施形態に係るリフティング演算の工程を模式的に示す図である。
【図３２】２次元画像データとリングメモリの記憶領域とを模式的に示す図である。
【図３３】リングメモリの記憶領域を模式的に示す図である。
【図３４】第４の実施形態の変形例に係るウェーブレット変換装置の概略構成を示す図である。
【図３５】ＤＷＴと逆ＤＷＴで用いるフィルタバンクを模式的に示す図である。
【図３６】３次の分解レベルで２次元ＤＷＴを施された画像データを模式的に示す図である。
【図３７】合成側のリフティング構成を模式的に示す格子図である。
【図３８】ＪＰＥＧ２０００方式が推奨する算出方法を模式的に示す図である。
【図３９】リフティング演算の工程を模式的に示す図である。
【図４０】リフティング演算の工程を模式的に示す図である。
【図４１】リフティング演算の工程を模式的に示す図である。
【図４２】リフティング演算の工程を模式的に示す図である。
【図４３】リフティング演算の工程を模式的に示す図である。
【図４４】リフティング演算の工程を模式的に示す図である。
【図４５】リフティング演算の工程を模式的に示す図である。
【図４６】リフティング演算の工程を模式的に示す図である。
【図４７】リフティング演算の工程を模式的に示す図である。
【図４８】リフティング演算の工程を模式的に示す図である。
【符号の説明】
１  ウェーブレット変換装置
２  ＭＭＵ（メモリ管理部）
３Ａ，３Ｂ  リングメモリ
４Ａ，４Ｂ  フィルタリング部
５  ラインバッファ回路
【図１】
2004194224.tif 000004
【図２】
2004194224.tif 000005
【図３】
2004194224.tif 000006
【図４】
2004194224.tif 000007
【図５】
2004194224.tif 000008
【図６】
2004194224.tif 000009
【図７】
2004194224.tif 000010
【図８】
2004194224.tif 000011
【図９】
2004194224.tif 000012
【図１０】
2004194224.tif 000013
【図１１】
2004194224.tif 000014
【図１２】
2004194224.tif 000015
【図１３】
2004194224.tif 000016
【図１４】
2004194224.tif 000017
【図１５】
2004194224.tif 000018
【図１６】
2004194224.tif 000019
【図１７】
2004194224.tif 000020
【図１８】
2004194224.tif 000021
【図１９】
2004194224.tif 000022
【図２０】
2004194224.tif 000023
【図２１】
2004194224.tif 000024
【図２２】
2004194224.tif 000025
【図２３】
2004194224.tif 000026
【図２４】
2004194224.tif 000027
【図２５】
2004194224.tif 000028
【図２６】
2004194224.tif 000029
【図２７】
2004194224.tif 000030
【図２８】
2004194224.tif 000031
【図２９】
2004194224.tif 000032
【図３０】
2004194224.tif 000033
【図３１】
2004194224.tif 000034
【図３２】
2004194224.tif 000035
【図３３】
2004194224.tif 000036
【図３４】
2004194224.tif 000037
【図３５】
2004194224.tif 000038
【図３６】
2004194224.tif 000039
【図３７】
2004194224.tif 000040
【図３８】
2004194224.tif 000041
【図３９】
2004194224.tif 000042
【図４０】
2004194224.tif 000043
【図４１】
2004194224.tif 000044
【図４２】
2004194224.tif 000045
【図４３】
2004194224.tif 000046
【図４４】
2004194224.tif 000047
【図４５】
2004194224.tif 000048
【図４６】
2004194224.tif 000049
【図４７】
2004194224.tif 000050
【図４８】
2004194224.tif 000051