(57)【要約】【課題】離散的コサイン演算及びウェーブレット演算を実行する回路を小規模にできる画像処理装置及び画像処理方法を提供する。【解決手段】外部から画素データを入力する入力部１０と、ウェーブレット変換及び離散コサイン変換の実行を制御する制御部３０と、制御部３０からの制御によって係数が切り換えられることにより入力部１０から入力された画素データに対してウェーブレット変換又は離散コサイン変換を実行する単一の回路から成る演算部２０、とを備えている。【選択図】　　　図１
2004120439.tif 000002
【特許請求の範囲】
【請求項１】
外部から画素データを入力する入力部と、
ウェーブレット変換及び離散コサイン変換の実行を制御する制御部と、
前記制御部からの制御によって係数が切り換えられることにより前記入力部から入力された画素データに対してウェーブレット変換又は離散コサイン変換を実行する単一の回路から成る演算部、
とを備えた画像処理装置。
【請求項２】
前記入力部は、
外部から入力された画素データを記憶する記憶部と、
前記記憶部から読み出された画素データを、前記制御部からの制御によって、ウェーブレット変換又は離散コサイン変換に適合するように並び替える並び替え回路、
とを備え、
前記演算部は、前記制御部からの制御によって係数が切り換えられることにより前記並び替え回路で並び替えられた画素データに対してウェーブレット変換又は離散コサイン変換を実行するための演算を行う、
請求項１に記載の画像処理装置。
【請求項３】
前記演算部は、
前記並び替え回路で並び替えられた画素データ同士を加算する加算部と、
前記加算部からの加算結果に対して、前記制御部の制御により与えられるウェーブレット変換用の係数又は離散コサイン変換用の係数を乗算する乗算部と、
前記乗算部からの出力を演算してウェーブレット変換又は離散コサイン変換の結果を出力する加減算部、
とを備えた請求項２に記載の画像処理装置。
【請求項４】
前記制御部は、前記ウェーブレット変換及び離散コサイン変換の実行を制御する際に、更に、画像の圧縮を指示する順変換及び画像の伸長を指示する逆変換の何れかを前記入力部及び前記演算部に指示する、請求項２又は３に記載の画像処理装置。
【請求項５】
前記制御部は、前記ウェーブレット変換の実行を制御する際に、更に、可逆５×３フィルタを用いたウェーブレット変換及び非可逆９×７フィルタを用いたウェーブレット変換の何れかを指示する、請求項４に記載の画像処理装置。
【請求項６】
前記制御部により前記非可逆９×７フィルタを用いたウェーブレット変換が指示された場合に、
前記並び替え回路は、前記記憶部から読み出された画素データが対になるように並べ替え、
前記加算部は、前記並べ替え回路からの画素データの対を加算し、
前記乗算部は、前記加算部からの加算結果に対し前記制御部の制御により与えられるウェーブレット変換用の係数を乗算し、
前記加減算部は、前記乗算部から乗算結果を加算し、以て可逆９×７フィルタを用いたウェーブレット変換の結果を出力する、
請求項５に記載の画像処理装置。
【請求項７】
前記加算部における加算を繰り返して実行するための付加回路を更に備え、
前記制御部により前記可逆５×３フィルタを用いたウェーブレット変換が指示された場合に、
前記並び替え回路は、前記記憶部から読み出された画素データが対になるように並べ替え、
前記加算部は、前記付加回路により加算を繰り返して実行し、以て可逆５×３フィルタを用いたウェーブレット変換の結果を出力する、
請求項５に記載の画像処理装置。
【請求項８】
前記制御部により前記離散コサイン変換が指示された場合に、
前記並び替え回路は、前記記憶部から読み出された画素データが対になるように並べ替え、
前記加算部は、前記並べ替え回路からの画素データの対を加算し、
前記乗算部は、前記加算部からの加算結果に対し前記制御部の制御により与えられるウェーブレット変換用の係数を乗算し、
前記加減算部は、前記乗算部から乗算結果を累積加算し、以て離散コサイン変換の結果を出力する、
請求項５に記載の画像処理装置。
【請求項９】
外部から画素データを入力するステップと、
係数が切り換えられることにより前記入力された画素データに対してウェーブレット変換又は離散コサイン変換を実行するステップ、
とを備えた画像処理方法。
【請求項１０】
前記入力するステップは、
外部から入力された画素データを記憶するステップと、
前記記憶された画素データを、ウェーブレット変換又は離散コサイン変換に適合するように並び替えるステップ、
とを備え、
前記演算するステップは、前記係数が切り換えられることにより前記並び替えられた画素データに対してウェーブレット変換又は離散コサイン変換を実行するための演算を行う、
請求項９に記載の画像処理方法。
【請求項１１】
前記演算するステップは、
前記並び替えられた画素データ同士を加算するステップと、
該加算結果に対して、ウェーブレット変換用の係数及び離散コサイン変換用の係数の何れかを乗算するステップと、
前記乗算された結果を演算することによりウェーブレット変換又は離散コサイン変換の結果を出力するステップ、
とを備えた請求項１０に記載の画像処理方法。
【請求項１２】
前記ウェーブレット変換及び離散コサイン変換の実行を制御する際に、更に、画像の圧縮を指示する順変換及び画像の伸長を指示する逆変換の何れかを指示する、請求項１０又は１１に記載の画像処理方法。
【請求項１３】
前記ウェーブレット変換の実行を制御する際に、更に、可逆５×３フィルタを用いた変換及び非可逆９×７フィルタを用いた変換の何れかを指示する、請求項１２に記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び画像処理方法に関し、特に複数の符号化方式で使用される複数種類の演算を実行する技術に関する。
【０００２】
【従来の技術】
従来、静止画像の圧縮方法の規格の１つとして、ＪＰＥＧ（Ｊｏｉｎｔ　Ｐｈｏｔｏｇｒａｐｈｉｃ　Ｅｘｐｅｒｔ　Ｇｒｏｕｐ）方式が知られている。このＪＰＥＧでは、符号化方式として、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ　Ｃｏｓｉｎｅ　Ｔｒａｎｓｆｏｒｍ）が採用されている。このＪＰＥＧ方式により画質を劣化させずに高圧縮が実現可能になったことでパーソナルコンピュータやファクシミリでの画像の取扱が容易になった。
【０００３】
しかしながら、上述したＪＰＥＧ方式は、例えば低ビットレートで画質が劣化するという欠点の他、幾つかの欠点を有する。これらの欠点を解消するために、近年は、ＪＰＥＧ２０００方式が新たに規格化されて実用に供されつつある。このＪＰＥＧ２０００では、符号化方式として、離散ウェーブレット変換（ＤＷＴ：Ｄｉｓｃｒｅｔｅ　Ｗａｖｅｌｅｔ　Ｔｒａｎｓｆｏｒｍ）が採用されている。
【０００４】
ところで、ＪＰＥＧ２０００方式に従って圧縮された静止画像の取り扱いが可能になった昨今は、ＪＰＥＧ方式で圧縮された静止画像及びＪＰＥＧ２０００方式で圧縮された静止画像が並行して取り扱われる状態にあり、これら両方式に対応できる画像処理装置の開発が望まれている。
【０００５】
関連技術として、特開２００１−１０３４８４は、「画像処理装置及びその方法」を開示している。図１３は、この画像処理装置の概略の構成を示すブロック図である。この画像処理装置は、入力選択回路５０、ＤＣＴ変換回路５１及びＤＷＴ変換回路５２及び出力選択回路５３から構成されている。入力選択回路５０は、外部から供給される入力データを、外部から供給される選択信号によって選択されるＤＣＴ演算回路５１又はＤＷＴ演算回路５２に送る。ＤＣＴ演算回路５１は、入力選択回路５０からのデータに対してＤＣＴ演算を行い、出力選択回路５３に送る。ＤＷＴ演算回路５２は、入力選択回路５０からのデータに対してＤＷＴ演算を行い、出力選択回路５３に送る。出力選択回路５３は、上記選択信号によって選択されたＤＣＴ演算回路５１又はＤＷＴ演算回路５２からのデータを出力データとして外部に送る。
【０００６】
なお、他の関連技術として、特開平６−４６４０４は、エッジが存在する場合の画質の劣化を低減する「画像データ処理装置及び画像データ処理方法」を開示している。この画像データ処理装置は、ブロック単位でエッジの有無を検出し、エッジのあるブロックについては離散コサイン変換処理に代えてウェーブレット変換を行い、この変換によって得られた画像データを送信する。
【０００７】
【特許文献１】特開２００１−１０３４８４公報
【特許文献２】特開平６−４６４０４公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上述した特開２００１−１０３４８４に開示された画像処理装置のように、ＤＣＴ演算回路とＤＷＴ演算回路とを別個に備えると、画像処理装置としての回路規模は非常に大きくなる。また、ＤＣＴ演算とＤＷＴ演算との間には互換性がなく、ＤＣＴ演算回路の動作タイミングとＤＷＴ演算回路のそれとは異なる。従って、ＤＣＴ演算回路及びＤＷＴ演算回路の各々のデータ入力部分及びデータ出力部分に、動作タイミングを生成するための周辺回路を備える必要があり、回路規模の増大の一因になっている。
【０００９】
本発明は、上述した問題を解消するためになされたものであり、その目的は、離散的コサイン演算及びウェーブレット演算を実行する回路を小規模にできる画像処理装置及び画像処理方法を提供することにある。
【００１０】
【課題を解決するための手段】
以下に、［発明の実施の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明の実施の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１１】
本発明の第１の態様に係る画像処理装置は、上記目的を達成するために、外部から画素データを入力する入力部（１０）と、ウェーブレット変換及び離散コサイン変換の実行を制御する制御部（３０）と、制御部（３０）からの制御によって係数が切り換えられることにより入力部（１０）から入力された画素データに対してウェーブレット変換又は離散コサイン変換を実行する単一の回路から成る演算部（２０）、とを備えている。
【００１２】
この画像処理装置において、入力部（１０）は、外部から入力された画素データを記憶する記憶部（１１）と、記憶部（１１）から読み出された画素データを、制御部（３０）からの制御によって、ウェーブレット変換又は離散コサイン変換に適合するように並び替える並び替え回路（１２）、とを備え、演算部（２０）は、制御部（３０）からの制御によって係数が切り換えられることにより並び替え回路（１２）で並び替えられた画素データに対してウェーブレット変換又は離散コサイン変換を実行するための演算を行うように構成できる。
【００１３】
また、演算部（２０）は、並び替え回路（１２）で並び替えられた画素データ同士を加算する加算部（２１）と、加算部（２１）からの加算結果に対して、制御部（３０）の制御により与えられるウェーブレット変換用の係数及び離散コサイン変換用の係数の何れかを乗算する乗算部（２３）と、乗算部（２３）からの出力を演算してウェーブレット変換又は離散コサイン変換の結果を出力する加減算部（２５）、とを備えて構成できる。
【００１４】
また、制御部（３０）は、ウェーブレット変換及び離散コサイン変換の実行を制御する際に、更に、画像の圧縮を指示する順変換及び画像の伸長を指示する逆変換の何れかを入力部及び演算部（２０）に指示するように構成できる。また、制御部（３０）は、ウェーブレット変換の実行を制御する際に、更に、可逆５×３フィルタを用いた変換及び非可逆９×７フィルタを用いた変換の何れかを選択指示するように構成できる。
【００１５】
また、制御部（３０）により前記非可逆９×７フィルタを用いたウェーブレット変換が指示された場合に、並び替え回路（１２）は、記憶部（１１）から読み出された画素データが対になるように並べ替え、加算部（２１）は、並べ替え回路（１２）からの画素データの対を加算し、乗算部（２３）は、加算部（２１）からの加算結果に対し制御部（３０）の制御により与えられるウェーブレット変換用の係数を乗算し、加減算部（２５）は、乗算部（２３）から乗算結果を加算し、以て可逆９×７フィルタを用いたウェーブレット変換の結果を出力するように構成できる。
【００１６】
また、加算部（２１）における加算を繰り返して実行するための付加回路（４１）を更に備え、制御部（３０）により可逆５×３フィルタを用いたウェーブレット変換が指示された場合に、並び替え回路（１２）は、記憶部（１１）から読み出された画素データが対になるように並べ替え、加算部（２１）は、付加回路（４１）により加算を繰り返して実行し、以て可逆５×３フィルタを用いたウェーブレット変換の結果を出力するように構成できる。
【００１７】
更に、制御部（３０）により前記離散コサイン変換が指示された場合に、並び替え回路（１２）は、記憶部（１１）から読み出された画素データが対になるように並べ替え、加算部（２１）は、並べ替え回路（１２）からの画素データの対を加算し、乗算部（２３）は、加算部（２１）からの加算結果に対し制御部（３０）の制御により与えられるウェーブレット変換用の係数を乗算し、加減算部（２５）は、乗算部（２３）から乗算結果を累積加算し、以て離散コサイン変換の結果を出力するように構成できる。
【００１８】
本発明の第２の態様に係る画像処理方法は、上記と同様の目的で、外部から画素データを入力するステップと、係数が切り換えられることにより入力された画素データに対してウェーブレット変換又は離散コサイン変換を実行するステップ、とを備えている。
【００１９】
この画像処理方法では、入力するステップは、外部から入力された画素データを記憶するステップと、記憶された画素データを、ウェーブレット変換又は離散コサイン変換に適合するように並び替えるステップを備え、演算するステップは、係数が切り換えられることにより並び替えられた画素データに対してウェーブレット変換又は離散コサイン変換を実行するための演算を行うように構成できる。
【００２０】
また、演算するステップは、並び替えられた画素データ同士を加算するステップと、該加算結果に対して、ウェーブレット変換用の係数及び離散コサイン変換用の係数の何れかを乗算するステップと、乗算された結果を演算することによりウェーブレット変換又は離散コサイン変換の結果を出力するステップとを備えて構成できる。
【００２１】
この場合、ウェーブレット変換及び離散コサイン変換の実行を制御する際に、更に、画像の圧縮を指示する順変換及び画像の伸長を指示する逆変換の何れかを指示するように構成できる。また、ウェーブレット変換の実行を制御する際に、更に、可逆５×３フィルタを用いた変換及び非可逆９×７フィルタを用いた変換の何れかを指示するように構成できる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態に係る画像処理装置及び画像処理方法を、図面を参照しながら詳細に説明する。
【００２３】
画像処理装置を説明するに先だって、この画像処理装置で使用されるウェーブレット変換及び離散コサイン変換（ＤＣＴ）について説明する。
【００２４】
先ず、ウェーブレット変換について説明する。この画像処理装置では、非可逆９×７フィルタを用いた非可逆変換と、可逆５×３フィルタを用いた可逆変換とが行われる。
【００２５】
非可逆９×７変換の特徴は、変換に使用される係数が実数であること、及び変換後の係数に対して丸め処理が行われないことである。非可逆９×７フィルタでは、圧縮時は、偶数列の画素に対しては下記式（１）、奇数列の画素に対しては下記式（２）をそれぞれ用いて変換が行われる。
【数１】
2004120439.tif 000003
【数２】
2004120439.tif 000004
ここで、Ｗ０、Ｗ１、Ｗ２、Ｗ３、Ｗ４、Ｗ５、Ｗ６及びＷ７は、非可逆９×７フィルタのフィルタ係数であり、
Ｗ０＝０．０１６８６４１１８４…、
Ｗ１＝０．０２６７４８７５７４…、
Ｗ２＝０．０５７５４３５２６２…、
Ｗ３＝０．０７８２２３２６６５…、
Ｗ４＝０．０９１２７１７６３１…、
Ｗ５＝０．２６６８６４１１８４…、
Ｗ６＝０．５９１２７１７６３１…、
Ｗ７＝０．６０２９４９０１８２…、
Ｗ８＝１．１１５０８７０５２４…
である。
【００２６】
一方、伸長時は、偶数列の画素に対しては下記式（３）、奇数列の画素に対しては下記式（４）をそれぞれ用いて変換が行われる。
【数３】
2004120439.tif 000005
【数４】
2004120439.tif 000006
ここで、Ｗ０、Ｗ１、Ｗ２、Ｗ３、Ｗ４、Ｗ５、Ｗ６及びＷ７は、非可逆９×７フィルタのフィルタ係数であり、上述した値が使用される。
【００２７】
次に、可逆５×３フィルタの特徴は、変換のために使用される係数が整数であること、及び変換後の係数を丸め処理によって整数にすることである。可逆５×３フィルタでは、圧縮時は、偶数列の画素に対しては下記式（５）、奇数列の画素に対しては下記式（６）をそれぞれ用いて変換が行われる。
【数５】
2004120439.tif 000007
【数６】
2004120439.tif 000008
【００２８】
一方、伸長時は、偶数列の画素に対しては下記式（７）、奇数列の画素に対しては下記式（８）をそれぞれ用いて変換が行われる。
【数７】
2004120439.tif 000009
【数８】
2004120439.tif 000010
【００２９】
次に、ＤＣＴ変換について説明する。ＤＣＴ変換では、圧縮時は、下記式（９）、並びに偶数列の画素に対しては式（１０）、奇数列の画素に対しては式（１１）をそれぞれ用いて変換が行われる。
【００３０】
【数９】
2004120439.tif 000011
【数１０】
2004120439.tif 000012
ここで、Ｄ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５及びＤ６は、離散コサイン変換を行う際にフィルタ係数として使用される乗算係数であり、
Ｄ０＝０．１９５０９０３２…、
Ｄ１＝０．３８２６８３４３…、
Ｄ２＝０．５５５５７０２３…、
Ｄ３＝０．７０７１０６７８…、
Ｄ４＝０．８３１４６９６１…、
Ｄ５＝０．９２３８７９５３…、
Ｄ６＝０．９８０７８５２８…、
である。以下の式（１１）〜式（１４）においても同じである。
【数１１】
2004120439.tif 000013
【００３１】
また、伸長時は、下記式（１２）、式（１３）及び式（１４）を用いて変換が行われる。
【数１２】
2004120439.tif 000014
【数１３】
2004120439.tif 000015
【数１４】
2004120439.tif 000016
【００３２】
（実施の形態１）
本発明の実施の形態１は、非可逆９×７フィルタを用いたウェーブレット変換と、離散コサイン変換とを行う画像処理装置である。
【００３３】
次に、本発明の実施の形態１に係る画像処理装置の構成を説明する。図１は、この画像処理装置の概略の構成を示すブロック図である。この画像処理装置は、大きく分けると、入力部１０、演算部２０及び制御部３０から構成されており、単一のＬＳＩ（大規模集積回路）として形成されている。
【００３４】
入力部１０は、更に、記憶部１１と並び替え回路１２とから構成されている。記憶部１１は、外部から送られてくる画素データを記憶する。この記憶部１１は、後述するようにシフトレジスタから構成されており、記憶された画素データを画素単位でシフトすると共に並び替え回路１２に送る。
【００３５】
並び替え回路１２は、制御部３０からの制御信号Ｓ１に応答して、記憶部１１からの画素データを、ウェーブレット変換又は離散コサイン変換に適合するように並び替える。この並び替え回路１２で並び替えられた画素データは、演算部２０に送られる。
【００３６】
演算部２０は、更に、加算部２１、乗算部２３及び加減算部２５から構成されている。加算部２１は、制御部３０からの制御信号Ｓ２に応じて並び替え回路１２からの画素データを加算又は減算する。例えば、式（１）を用いてウェーブレット変換を行う場合は、各項内の加算を実行する。具体的には、「Ｘ（２ｎ−４）＋Ｘ（２ｎ＋４）＝ａ１」、「Ｘ（２ｎ−３）＋Ｘ（２ｎ＋３）＝ａ２」、（Ｘ（２ｎ−２）＋Ｘ（２ｎ＋２）＝ａ３」及び「Ｘ（２ｎ−１）＋Ｘ（２ｎ＋１）＝ａ４」といった４つの加算を並列に実行する。この加算部２１における加算結果は、乗算部２３に送られる。
【００３７】
乗算部２３は、加算部２１からの加算結果と制御部３０からの制御信号Ｓ３として送られてくるフィルタ係数とを乗算する。例えば、式（１）を用いてウェーブレット変換を行う場合は、各項内の乗算を実行する。具体的には、「Ｗ１＊ａ１＝ＭＰＹ１」、「Ｗ０＊ａ２＝ＭＰＹ２」、「Ｗ３＊ａ３＝ＭＰＹ３」、「Ｗ５＊ａ４＝ＭＰＹ４」及び「Ｗ７＊Ｘ（２ｎ）＝ＭＰＹ５」といった５つの乗算を実行する。
【００３８】
加減算部２５は、乗算部２３からの乗算結果に対して加算及び／又は減算処理を施し、最終的な変換結果を算出する。例えば、式（１）を用いてウェーブレット変換を行う場合は、式（１）の各項の加減算を実行する。具体的には、「ＭＰＹ１−ＭＰＹ２−ＭＰＹ３＋ＭＰＹ４＋ＭＰＹ５」といった５つの項を加減算する。これにより、最終的な変換結果である「Ｙ（２ｎ）」が求められる。なお、以上は式（１）で表される演算を行う場合の具体例について説明したが、他の式で表される演算を行う場合も同様である。
【００３９】
制御部３０は、入力部１０を制御するための制御信号Ｓ１を生成して入力部１０に送る。また、演算部２０を制御するための制御信号Ｓ２〜Ｓ４を生成して演算部２０に送る。これら制御信号Ｓ１〜Ｓ４により、非可逆９×７フィルタを用いたウェーブレット変換の順変換（圧縮する変換をいう。以下同じ）及び逆変換（伸長する変換をいう。以下同じ）、可逆５×３フィルタを用いたウェーブレット変換の順変換及び逆変換、並びに離散コサイン変換の順変換及び逆変換の何れを実行するかが決定される。
【００４０】
次に、上述した画像処理装置を更に詳細に説明する。図２は、非可逆９×７フィルタを用いたウェーブレット変換と離散コサイン変換とを１つの回路で実行するための画像処理装置の構成を示すブロック図である。
【００４１】
この画像処理装置は、入力部１０を構成する記憶部１１及び並び替え回路１２、並びに、演算部２０を構成する加算部２１、ラッチ２２、乗算部２３、ラッチ２４、加減算部２５、ＦＦ１９、リミッタ２６及びＦＦ２０から構成されている。
【００４２】
記憶部１１は、フリップフロップＦＦｉｎｐと９個のフリップフロップＦＦ０〜ＦＦ８から構成されている。以下では、符号が付されたフリップフロップは符号のみで表す。ＦＦ０〜ＦＦ８はシリアルに接続されることにより、シフトレジスタを構成している。なお、図２では、フリップフロップのクロック入力端子に供給されるクロック信号は図示を省略してあるが、全てのフリップフロップに対して同じクロック信号が供給される。
【００４３】
ＦＦｉｎｐは、外部から供給される画素データを記憶するバッファとして機能する。このＦＦｉｎｐの出力は、ＦＦ０の入力に送られる。ＦＦ０は、ＦＦｉｎｐからの画像データを記憶する。このＦＦ０の出力ｆ０は、ＦＦ１に供給される。以下同様に、上位のフリップフロップから出力される画素データは下位のフリップフロップの入力に送られる。各フリップフロップに記憶された画素データは、クロック信号が入力される毎に、ＦＦ０からＦＦ８方向にシフトされる。
【００４４】
また、ＦＦ０〜ＦＦ８の出力ｆ０〜ｆ８は、並列に並び替え回路１２に供給される。更に、ＦＦ４の出力ｆ４は、後述するＦＦ１３に送られる。このＦＦ４の出力ｆ４は、ウェーブレット変換時における変換対象とされている画素、即ち注目画素に対応する。
【００４５】
なお、上述した記憶部１１は、外部から１画素単位で供給される画素データを順次シフトしながらＦＦ０〜ＦＦ８にセットするように構成されているが、ＦＦ０〜ＦＦ８として、ロード端子を備えたフリップフロップを用いることができる。この構成によれば、並列に送られてくる画素データを同時にセットできる。
【００４６】
並び替え回路１２は、記憶部１１から送られてくる９ビットの画素データｆ０〜ｆ８を並べ替え、８ビットの画素データｍ１〜ｍ８として出力する。この並び替え回路１２における並べ替えの態様は、制御部３０からの制御信号Ｓ１によって決定される。
【００４７】
図２中の「９×７（圧）」は非可逆９×７フィルタを用いたウェーブレット変換の順変換を行う場合の並べ替えの様子を示している。この場合、並び替え回路１２は、画素データｍ１として、偶数列であるか奇数列であるかに拘わらず、入力された画素データｆ８を出力することを示している。また、画素データｍ２として、偶数列の場合は入力された画素データｆ０を出力し、奇数列の場合は無関係である（ゼロを出力する）ことを示している。他の画素データｍ２〜ｍ８についても同様である。
【００４８】
同様に、図２中の「９×７（伸）」は非可逆９×７フィルタを用いたウェーブレット変換の逆変換を行う場合の並べ替えの様子を示している。この場合、並び替え回路１２は、画素データｍ１として、偶数列の場合は無関係である（ゼロを出力する）ことを示し、奇数列の場合は入力された画素データｆ８を出力することを示している。また、画素データｍ２として、偶数列の場合は無関係である（ゼロを出力する）ことを示し、奇数列の場合は入力された画素データｆ０を出力することを示している。
【００４９】
加算部２１は、４個の加算器２１１〜２１４から構成されている。加算器２１１は、並び替え回路１２からの画素データｍ１とｍ２とを加算する。加算結果は、データａ１又はａ５としてラッチ２２に送られる。加算器２１２は、並び替え回路１２からの画素データｍ３とｍ４とを加算する。加算結果は、データａ２又はａ６としてしてラッチ２２に送られる。加算器２１３は、並び替え回路１２からの画素データｍ５とｍ６とを加算する。加算結果は、データａ３又はａ７としてラッチ２２に送られる。加算器２１４は、並び替え回路１２からの画素データｍ７とｍ８とを加算する。加算結果は、データａ４又はａ８としてラッチ２２に送られる。
【００５０】
ラッチ２２は、５個のＦＦ９〜ＦＦ１３から構成されている。ＦＦ９は、加算器２１１からのデータａ１又はａ５をラッチし、乗算部２３に送る。ＦＦ１０は、加算器２１２からのデータａ２又はａ６をラッチし、乗算部２３に送る。ＦＦ１１は、加算器２１３からのデータａ３又はａ７をラッチし、乗算部２３に送る。ＦＦ１２は、加算器２１４からのデータａ４又はａ８をラッチし、乗算部２３に送る。ＦＦ１３は、上述したように、記憶部１１のＦＦ４からのデータｆ３をラッチし、乗算部２３に送る。
【００５１】
乗算部２３は、５個の乗算器２３１〜２３５から構成されている。乗算器２３１は、ＦＦ９からのデータと制御部３０から制御信号Ｓ３として送られてくる乗算係数αとを乗算する。乗算結果ＭＰＹ１はラッチ２４に送られる。乗算器２３２は、ＦＦ１０からのデータと制御部３０からの乗算係数βとを乗算する。乗算結果ＭＰＹ２はラッチ２４に送られる。乗算器２３３は、ＦＦ１１からのデータと制御部３０からの乗算係数γとを乗算する。乗算結果ＭＰＹ３はラッチ２４に送られる。乗算器２３４は、ＦＦ１２からのデータと制御部３０からの乗算係数δとを乗算する。乗算結果ＭＰＹ４はラッチ２４に送られる。乗算器２３５は、ＦＦ３からのデータと制御部３０からの乗算係数εとを乗算する。乗算結果ＭＰＹ５はラッチ２４に送られる。
【００５２】
ここで、乗算係数αとしては、図３に示すように、変換の種類によって、以下の値が使用される。即ち、非可逆９×７フィルタを用いたウェーブレット変換の順変換「９×７（圧）」の場合は、「Ｗ１／０」、つまり偶数列であればＷ１、奇数列であれば「０」が使用される。非可逆９×７フィルタを用いたウェーブレット変換の逆変換「９×７（伸）」の場合は、「０／Ｗ１」、つまり偶数列であれば「０」、奇数列であればＷ１が使用される。離散コサイン変換の場合は、順変換「ＤＣＴ（圧）」及び逆変換「ＤＣＴ（伸）」に拘わらず、「Ｄ０／Ｄ４」、つまり偶数列であればＤ５、奇数列であればＤ６が使用される。
【００５３】
以下、同様の表記方法を用いると、乗算係数βとしては、「９×７（圧）」の場合は、「−Ｗ０／Ｗ４」が使用される。「９×７（伸）」の場合は、「Ｗ０／−Ｗ４」が使用される。「ＤＣＴ（圧）」及び「ＤＣＴ（伸）」の場合は、「Ｄ１／Ｄ４」が使用される。乗算係数γとしては、「９×７（圧）」の場合は、「−Ｗ３／−Ｗ２」が使用される。「９×７（伸）」の場合は、「−Ｗ２／−Ｗ３」が使用される。「ＤＣＴ（圧）」及び「ＤＣＴ（伸）」の場合は、「Ｄ３／Ｄ２」が使用される。
【００５４】
乗算係数δとしては、「９×７（圧）」の場合は、「Ｗ５／−Ｗ６」が使用される。「９×７（伸）」の場合は、「−Ｗ５／Ｗ６」が使用される。「ＤＣＴ（圧）」及び「ＤＣＴ（伸）」の場合は、「０／Ｄ０」が使用される。乗算係数εとしては、「９×７（圧）」の場合は、「Ｗ７／Ｗ８」が使用される。「９×７（伸）」の場合は、「Ｗ８／Ｗ７」が使用される。「ＤＣＴ（圧）」及び「ＤＣＴ（伸）」の場合は、「０／０」が使用される。
【００５５】
ラッチ２４は、５個のＦＦ１４〜ＦＦ１８から構成されている。ＦＦ１４は、乗算器２３１からのデータＭＰＹ１をラッチし、加減算部２５に送る。ＦＦ１５は、乗算器２３２からのデータＭＰＹ２をラッチし、加減算部２５に送る。ＦＦ１６は、乗算器２３３からのデータＭＰＹ３をラッチし、加減算部２５に送る。ＦＦ１７は、乗算器２３４からのデータＭＰＹ４をラッチし、加減算部２５に送る。ＦＦ１８は、乗算器２３５からのデータＭＰＹ５をラッチし、加減算部２５に送る。
【００５６】
加減算部２５は、加算器２５１、２５２、２５３、２５４及びセレクタ２５５から構成されている。加算器２５１は、ＦＦ１４からのデータとＦＦ１５からのデータを加算して加算器２５３に送ると共に、ＦＦ１５からのデータとＦＦ１６からのデータを加算して加算器２５２に送る。
【００５７】
加算器２５２は、加算器２５１からのデータとＦＦ１７からのデータを加算して加算器２５３に送ると共に、ＦＦ１７からのデータとセレクタ２５５からのデータを加算して加算器２５３に送る。加算器２５３は、加算器２５１からのデータと加算器２５２からのデータを加算して加算器２５４に送ると共に、加算器２５２からの２つのデータを加算して加算器２５４に送る。
【００５８】
加算器２５４は、加算器２５３からの２つのデータを加算してＦＦ１９に送る。セレクタ２５５は、制御部３０からの制御信号Ｓ４に従って、ＦＦ１８からのデータ及びＦＦ１９からのデータの何れか１つを選択し、加算器２５２に送る。セレクタ２５５は、制御信号Ｓ４によって、ウェーブレット変換の場合はＦＦ８の出力を選択し、離散コサイン変換の場合はＦＦ１９の出力を選択するように制御される。
【００５９】
ＦＦ１９は、加算器２５４からのデータをラッチし、セレクタ２５５及びリミッタ２６に送る。リミッタ２６は、ＦＦ１９からのデータが所定値を越えた場合に、そのデータを所定値に制限する。このリミッタ２６の出力はＦＦ２０に送られる。ＦＦ２０は、リミッタ２６からのデータをラッチし、外部に送出する。
【００６０】
なお、上述したラッチ２２（ＦＦ９〜ＦＦ１３）、ラッチ２４（ＦＦ１４〜ＦＦ１８）、ＦＦｔ１、ＦＦｔ２、ＦＦ１９及びＦＦ２０は、パイプライン方式を採用して画像処理装置を高速で動作させるために設けられており、画像処理装置に要求される性能に応じて適宜省略できる。
【００６１】
（１−１）非可逆９×７フィルタを用いたウェーブレット変換の順変換
次に、以上のように構成される画像処理装置の動作を説明する。先ず、非可逆９×７フィルタを用いたウェーブレット変換の順変換の動作を説明する。
【００６２】
先ず、外部からの画素データが記憶部１１を構成するシフトレジスタにセットされる。なお、画像の端部の画素データを変換するときは、詳細な説明は省略するが、画素データ列を折り返すことにより作成された仮想の画素データが記憶部１１にセットされるように特別の処理が行われる。記憶部１１のＦＦ４にセットされた画素データが変換対象となる注目画素である。
【００６３】
９ビットの画素データがＦＦ０〜ＦＦ８にセットされた状態で、制御部３０は、非可逆９×７フィルタを用いたウェーブレット変換の順変換を指示する制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、注目画素が偶数列の画素である場合は、画素データｍ１として、式（１）中の「Ｘ（２ｎ＋４）」に対応するＦＦ８の内容を出力し、画素データｍ２として、「Ｘ（２ｎ−４）」に対応するＦＦ０の内容を出力する。以下、同様に、図２の「９×７（圧）」に示されているような選択を行って画素データｍ３〜ｍ８を出力する。一方、注目画素が奇数列の画素である場合は、並び替え回路１２は、画素データｍ２としてゼロ（無効データ）を出力する以外は、偶数列の画素の場合と同じ画素データを出力する。
【００６４】
次いで、制御部３０は、加算部２１を構成する各加算器２１１〜２１４に対して、加算を指示する制御信号Ｓ２を送る。
【００６５】
並び替え回路１２からの画素データを受け取った加算器２１１は、画素データｍ１と画素データｍ２とを加算し、式（１）における「Ｘ（２ｎ−４）＋Ｘ（２ｎ＋４）」を計算する。この計算結果「ａ１」は、ラッチ２２を構成するＦＦ９にセットされる。加算器２１２は、画素データｍ３と画素データｍ４とを加算し、式（１）における「Ｘ（２ｎ−３）＋Ｘ（２ｎ＋３）」を計算する。この計算結果「ａ２」は、ＦＦ１０にセットされる。加算器２１３は、画素データｍ５と画素データｍ６とを加算し、式（１）における「Ｘ（２ｎ−２）＋Ｘ（２ｎ＋２）」を計算する。この計算結果「ａ３」は、ＦＦ１１にセットされる。加算器２１４は、画素データｍ７と画素データｍ８とを加算し、式（１）における「Ｘ（２ｎ−１）＋Ｘ（２ｎ＋１）」を計算する。この計算結果「ａ４」は、ＦＦ１２にセットされる。なお、ＦＦ１３には、ＦＦ４の内容がセットされる。
【００６６】
次いで、制御部３０は、非可逆９×７フィルタを用いたウェーブレット変換の順変換を行う際に使用する乗算係数α〜εを、制御信号Ｓ３として、乗算部２３に送る。これにより、乗算器２３１は、注目画素が偶数列の画素である場合は、加算結果「ａ１」と乗算係数αであるＷ１とを乗算し、式（１）における「Ｗ１＊（Ｘ（２ｎ−４）＋Ｘ（２ｎ＋４））」を実行する。一方、注目画素が奇数列の画素である場合は、乗算係数αが「０」であるので乗算結果として「０」を出力する。この乗算器２３１による乗算結果「ＭＰＹ１」はラッチ２４を構成するＦＦ１４にセットされる。
【００６７】
同様に、乗算器２３２は、注目画素が偶数列の画素である場合は、加算結果「ａ２」と乗算係数βである−Ｗ０とを乗算し、式（１）における「−Ｗ０＊（Ｘ（２ｎ−３）＋Ｘ（２ｎ＋３））」を実行する。一方、注目画素が奇数列の画素である場合は、加算結果「ａ２」と乗算係数βであるＷ４とを乗算し、式（２）における「Ｗ４＊（Ｘ（２ｎ−２）＋Ｘ（２ｎ＋４））」を実行する。この乗算器２３２による乗算結果「ＭＰＹ２」はＦＦ１５にセットされる。
【００６８】
乗算器２３３は、注目画素が偶数列の画素である場合は、加算結果「ａ３」と乗算係数γである−Ｗ３とを乗算し、式（１）における「−Ｗ３＊（Ｘ（２ｎ−２）＋Ｘ（２ｎ＋２））」を実行する。一方、注目画素が奇数列の画素である場合は、加算結果「ａ３」と乗算係数γである−Ｗ２とを乗算し、式（２）における「−Ｗ２＊（Ｘ（２ｎ−１）＋Ｘ（２ｎ＋３））」を実行する。この乗算器２３３による乗算結果「ＭＰＹ３」はＦＦ１６にセットされる。
【００６９】
乗算器２３４は、注目画素が偶数列の画素である場合は、加算結果「ａ４」と乗算係数δであるＷ５とを乗算し、式（１）における「Ｗ５＊（Ｘ（２ｎ−１）＋Ｘ（２ｎ＋１））」を実行する。一方、注目画素が奇数列の画素である場合は、加算結果「ａ４」と乗算係数δである−Ｗ６とを乗算し、式（２）における「−Ｗ６＊（Ｘ（２ｎ）＋Ｘ（２ｎ＋２））」を実行する。この乗算器２３４による乗算結果「ＭＰＹ４」はＦＦ１７にセットされる。
【００７０】
乗算器２３５は、注目画素が偶数列の画素である場合は、ＦＦ１３の出力と乗算係数εであるＷ７とを乗算し、式（１）における「Ｗ７＊Ｘ（２ｎ）」を実行する。一方、注目画素が奇数列の画素である場合は、ＦＦ１３の出力と乗算係数εであるＷ８とを乗算し、式（２）における「Ｗ８＊Ｘ（２ｎ＋１）」を実行する。この乗算器２３５による乗算結果「ＭＰＹ５」はＦＦ１８にセットされる。
【００７１】
加減算部２５におけるセレクタ２５５は、制御部３０からウェーブレット変換を実行する旨が指示されることにより、ＦＦ１８の出力を加算器２５２に送るように制御される。従って、加減算部２５では、加算器２５１〜２５４により、ＦＦ１４〜ＦＦ１８からのＭＰＹ１〜ＭＰＹ５を加減算することにより、注目画素が偶数列の画素である場合は式（１）に示す各項の加減算を行ってＹ（２ｎ）を算出する。一方、注目画素が奇数列の画素である場合は式（２）に示す各項の加減算を行ってＹ（２ｎ＋１）を算出する。この加減算部２５における加減算結果Ｙ（２ｎ）又はＹ（２ｎ＋１）は、ＦＦ１９にセットされる。
【００７２】
ＦＦ１９にセットされた加算減結果Ｙ（２ｎ）又はＹ（２ｎ＋１）は、リミッタ２６で所定範囲の値に制限を加えられＦＦ２０にセットされる。このＦＦ２０にセットされた内容が、注目画素のウェーブレット変換の結果として外部に送出される。以上は、１つの注目画素に対する動作であるが、この動作を列方向の全ての画素及び行方向の全ての画素に対して実施することにより、２次元のウェーブレット変換が実現される。
【００７３】
（１−２）非可逆９×７フィルタを用いたウェーブレット変換の逆変換
以上は非可逆９×７フィルタを用いて逆変換を行う場合は、上述した式（３）及び（４）が実現されるように画像制御装置の各部が制御されることを除けば、上述した動作と略同じであるので、説明は省略する。
【００７４】
（１−３）離散コサイン変換の順変換
次に、離散コサイン変換の動作を説明する。先ず、順変換の場合を、図４〜図６に示すタイミングチャートを参照しながら説明する。
【００７５】
先ず、外部からの画素データｆ０〜ｆ７が、クロック信号に同期して、クロック期間ＣＬＫ（以下、単に「ＣＬＫ」と記す）１〜９で、記憶部１１を構成するシフトレジスタに順次シフトインされる。そして、ＣＬＫ９で、８個の画素データｆ０〜ｆ７がＦＦ０〜ＦＦ７にセットされた状態になる。この状態で、偶数列の画素及び奇数列の画素の順変換の動作が開始される。なお、以下では、説明を簡単にするために、１つの偶数列の画素データの変換が行われた後、引き続いて１つの奇数列の変換が行われる場合の例を挙げて説明する。
【００７６】
制御部３０は、ＣＬＫ９で、離散コサイン変換の順変換のＣＬＫ９のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ５及びｍ６として画素データｆ０及びｆ７をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ０＝ｆ０＋ｆ７」を計算する。この計算結果は、ＣＬＫ９の終わりでＦＦ１１にセットされる。なお、図４〜図６中の「＊」印は無意味なデータであることを表し、「ｘ０」はゼロが出力されることを表す。
【００７７】
次に、ＣＬＫ１０では、並び替え回路１２は、制御部３０からのＣＬＫ１０のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ１及びｆ６をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ１＝ｆ１＋ｆ６」を計算する。この計算結果は、ＣＬＫ１０の終わりでＦＦ１１にセットされる。
【００７８】
また、ＣＬＫ１０では、乗算器２３３は、ＦＦ１１にセットされている「ａ０＝ｆ０＋Ｆ７」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「ａ０＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１０の終わりでＦＦ１６にセットされる。また、ＣＬＫ１０の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７がゼロにクリアされる。
【００７９】
次に、ＣＬＫ１１では、並び替え回路１２は、制御部３０からのＣＬＫ１１のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ２及びｆ５をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ２＝ｆ２＋ｆ５」を計算する。この計算結果は、ＣＬＫ１１の終わりでＦＦ１１にセットされる。
【００８０】
また、ＣＬＫ１１では、乗算器２３３は、ＦＦ１１にセットされている「ａ１＝ｆ１＋ｆ６」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「ａ１＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１１の終わりでＦＦ１６にセットされる。また、ＣＬＫ１１の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７は、ゼロにクリアされる。
【００８１】
更に、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はＦＦ１９の内容（初期状態でゼロにクリアされている）であり、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１６の出力、つまり「ａ０＊Ｄ３」がＣＬＫ１１の終わりでＦＦ１９にセットされる。
【００８２】
次に、ＣＬＫ１２では、並び替え回路１２は、制御部３０からのＣＬＫ１２のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ３及びｆ４をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ３＝ｆ３＋ｆ４」を計算する。この計算結果は、ＣＬＫ１２の終わりでＦＦ１１にセットされる。
【００８３】
また、ＣＬＫ１２では、乗算器２３３は、ＦＦ１１にセットされている「ａ２＝ｆ２＋ｆ５」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「ａ２＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１２の終わりでＦＦ１６にセットされる。また、ＣＬＫ１２の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７は、ゼロにクリアされる。
【００８４】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はＦＦ１９の内容であり、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「ａ０＊Ｄ３」にＦＦ１６の内容「ａ１＊Ｄ３」が加算された結果、つまり「（ａ０＋ａ１）＊Ｄ３」が、ＣＬＫ１２の終わりでＦＦ１９にセットされる。更に、ＦＦ１９にセットされていた「ａ０＊Ｄ３」は、ＣＬＫ１２の終わりでＦＦ２０にシフトされる。
【００８５】
次に、ＣＬＫ１３では、並び替え回路１２は、制御部３０からのＣＬＫ１３のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ０及びｆ７をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ０＝ｆ０＋ｆ７」を計算する。この計算結果は、ＣＬＫ１３の終わりでＦＦ１１にセットされる。
【００８６】
また、ＣＬＫ１３では、乗算器２３３は、ＦＦ１１にセットされている「ａ３＝ｆ３＋ｆ４」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「ａ３＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１３の終わりでＦＦ１６にセットされる。また、ＣＬＫ１３の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７はゼロにクリアされる。
【００８７】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はＦＦ１９の内容であり、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「（ａ０＋ａ１）＊Ｄ３」にＦＦ１６の内容「ａ２＊Ｄ３」が加算された結果、つまり「（ａ０＋ａ１＋ａ２）＊Ｄ３」が、ＣＬＫ１３の終わりでＦＦ１９にセットされる。更に、ＦＦ１９にセットされていた「（ａ０＋ａ１）＊Ｄ３」は、ＣＬＫ１３の終わりでＦＦ２０にシフトされる。
【００８８】
次に、ＣＬＫ１４では、並び替え回路１２は、制御部３０からのＣＬＫ１４のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ１及びｆ６をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「−ａ１＝−（ｆ１＋ｆ６）」を計算する。この計算結果は、ＣＬＫ１４の終わりでＦＦ１１にセットされる。
【００８９】
また、ＣＬＫ１４では、乗算器２３３は、ＦＦ１１にセットされている「ａ０＝ｆ０＋ｆ７」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「ａ０＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１４の終わりでＦＦ１６にセットされる。また、ＣＬＫ１４の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７はゼロにクリアされる。
【００９０】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はＦＦ１９の内容であり、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「（ａ０＋ａ１＋ａ２）＊Ｄ３」にＦＦ１６の内容「ａ３＊Ｄ３」を加算した結果、つまり「（ａ０＋ａ１＋ａ２＋ａ３）＊Ｄ３」がＣＬＫ１４の終わりでＦＦ１９にセットされる。更に、ＦＦ１９にセットされていた「（ａ０＋ａ１＋ａ２）＊Ｄ３」は、ＣＬＫ１４の終わりでＦＦ２０にシフトされる。
【００９１】
次に、ＣＬＫ１５では、並び替え回路１２は、制御部３０からのＣＬＫ１５のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ２及びｆ５をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「−ａ２＝−（ｆ２＋ｆ５）」を計算する。この計算結果は、ＣＬＫ１５の終わりでＦＦ１１にセットされる。
【００９２】
また、ＣＬＫ１５では、乗算器２３３は、ＦＦ１１にセットされている「−ａ１＝−（ｆ１＋ｆ６）」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「−ａ１＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１５の終わりでＦＦ１６にセットされる。また、ＣＬＫ１５の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７がゼロにクリアされる。
【００９３】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はゼロになるように制御され、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１６の内容、つまり「ａ０＊Ｄ３」がＣＬＫ１５の終わりでＦＦ１９にセットされる。
【００９４】
更に、ＦＦ１９にセットされていた「（ａ０＋ａ１＋ａ２＋ａ３）＊Ｄ３」は、ＣＬＫ１５の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ１６のステージで、「Ｆ０＝ａ０＋ａ１＋ａ２＋ａ３）＊Ｄ３」が出力端子から外部に出力される。
【００９５】
次に、ＣＬＫ１６では、並び替え回路１２は、制御部３０からのＣＬＫ１６のステージである旨の制御信号Ｓ１に従って、画素データｍ５及びｍ６として画素データｆ３及びｆ４をそれぞれ出力する。加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ３＝ｆ３＋ｆ４」を計算する。この計算結果は、ＣＬＫ１６の終わりでＦＦ１１にセットされる。
【００９６】
また、ＣＬＫ１６では、乗算器２３３は、ＦＦ１１にセットされている「−ａ２＝−（ｆ２＋ｆ５）」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「−ａ２＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１６の終わりでＦＦ１６にセットされる。また、ＣＬＫ１６の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７がゼロにクリアされる。
【００９７】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はＦＦ１９の内容であり、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「ａ０＊Ｄ３」にＦＦ１６の内容「−ａ１＊Ｄ３」が加算された結果、つまり「（ａ０−ａ１）＊Ｄ３」がＣＬＫ１６の終わりでＦＦ１９にセットされる。また、ＦＦ１９にセットされていた「ａ０＊Ｄ３」は、ＣＬＫ１６の終わりでＦＦ２０にシフトされる。
【００９８】
次に、ＣＬＫ１７では、並び替え回路１２は、制御部３０からのＣＬＫ１７のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ０及びｆ７を出力し、画素データｍ３及びｍ４として画素データｆ１及びｆ６を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「ａ０＝ｆ０＋ｆ７」を計算する。この計算結果は、ＣＬＫ１７の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「ａ１＝ｆ１＋ｆ６」を計算する。この計算結果は、ＣＬＫ１７の終わりでＦＦ１０にセットされる。
【００９９】
また、ＣＬＫ１７では、乗算器２３３は、ＦＦ１１にセットされている「ａ３＝ｆ３＋ｆ４」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１０）における「ａ３＊Ｄ３」を実行する。この乗算結果は、ＣＬＫ１７の終わりでＦＦ１６にセットされる。また、ＣＬＫ１７の終わりで、ＦＦ１４、ＦＦ１５及びＦＦ１７はゼロにクリアされる。
【０１００】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はＦＦ１９の内容であり、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「（ａ０−ａ１）＊Ｄ３」にＦＦ１６の内容「−ａ２＊Ｄ３」を加算した結果、つまり「（ａ０−ａ１−ａ２）＊Ｄ３」がＣＬＫ１７の終わりでＦＦ１９にセットされる。更に、ＦＦ１９にセットされていた「（ａ０−ａ１）＊Ｄ３」は、ＣＬＫ１７の終わりでＦＦ２０にシフトされる。
【０１０１】
次に、ＣＬＫ１８では、並び替え回路１２は、制御部３０からのＣＬＫ１８のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ３及びｆ４を出力し、画素データｍ３及びｍ４として画素データｆ２及びｆ５を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「−ａ３＝−（ｆ３＋ｆ４）」を計算する。この計算結果は、ＣＬＫ１８の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「−ａ２＝−（ｆ２＋ｆ５）」を計算する。この計算結果は、ＣＬＫ１８の終わりでＦＦ１０にセットされる。
【０１０２】
また、ＣＬＫ１８では、乗算器２３１は、ＦＦ９にセットされている「ａ０＝ｆ０＋ｆ７」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１０）における「ａ０＊Ｄ５」を実行する。この乗算結果は、ＣＬＫ１８の終わりでＦＦ１４にセットされる。乗算器２３２は、ＦＦ１０にセットされている「ａ１＝ｆ１＋ｆ６」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１０）における「ａ１＊Ｄ１」を実行する。この乗算結果は、ＣＬＫ１８の終わりでＦＦ１５にセットされる。また、ＣＬＫ１８の終わりで、Ｆ１６及びＦＦ１７はゼロにクリアされる。
【０１０３】
また、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はＦＦ１９の出力を選択するように制御されており、且つＦＦ１４、ＦＦ１５及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「（ａ０−ａ１−ａ２）＊Ｄ３」にＦＦ１６の内容「ａ３＊Ｄ３」を加算した結果、つまり「（ａ０−ａ１−ａ２＋ａ３）＊Ｄ３」がＣＬＫ１８の終わりでＦＦ１９にセットされる。更に、ＦＦ１９にセットされていた「（ａ０−ａ１−ａ２）＊Ｄ３」はＣＬＫ１８の終わりでＦＦ２０にシフトされる。
【０１０４】
次に、ＣＬＫ１９では、並び替え回路１２は、制御部３０からのＣＬＫ１９のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ１及びｆ６を出力し、画素データｍ３及びｍ４として画素データｆ０及びｆ７を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「−ａ１＝−（ｆ１＋ｆ６）」を計算する。この計算結果は、ＣＬＫ１９の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「ａ０＝ｆ０＋ｆ７」を計算する。この計算結果は、ＣＬＫ１９の終わりでＦＦ１０にセットされる。
【０１０５】
また、ＣＬＫ１９では、乗算器２３１は、ＦＦ９にセットされている「−ａ３＝−（ｆ３＋ｆ４））」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１０）における「−ａ３＊Ｄ５」を実行する。この乗算結果は、ＣＬＫ１９の終わりでＦＦ１４にセットされる。乗算器２３２は、ＦＦ１０にセットされている「−ａ２＝−（ｆ２＋ｆ５）」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１０）における「−ａ２＊Ｄ１」を実行する。この乗算結果は、ＣＬＫ１９の終わりでＦＦ１５にセットされる。また、ＣＬＫ１９の終わりで、Ｆ１６及びＦＦ１７はゼロにクリアされる。
【０１０６】
また、ＣＬＫ１９では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はＦＦ１９はゼロを出力するように制御されており、且つＦＦ１６及びＦＦ１７の出力はゼロであるので、ＦＦ１４の内容「ａ０＊Ｄ５」とＦＦ１５の内容「ａ１＊Ｄ１」を加算した結果、つまり「ａ０＊Ｄ５＋ａ１＊Ｄ１」がＦＦ１９にセットされる。
【０１０７】
更に、ＦＦ１９にセットされていた「（ａ０−ａ１−ａ２＋ａ３）＊Ｄ３」はＣＬＫ１９の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２０のステージで、「Ｆ４＝ａ０−ａ１−ａ２＋ａ３）＊Ｄ３」が出力端子から外部に出力される。
【０１０８】
次に、ＣＬＫ２０では、並び替え回路１２は、制御部３０からのＣＬＫ２０のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ２及びｆ５を出力し、画素データｍ３及びｍ４として画素データｆ３及びｆ４を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「ａ２＝ｆ２＋ｆ５」を計算する。この計算結果は、ＣＬＫ２０の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「−ａ３＝−（ｆ３＋ｆ４）」を計算する。この計算結果は、ＣＬＫ２０の終わりでＦＦ１０にセットされる。
【０１０９】
また、ＣＬＫ２０では、乗算器２３１は、ＦＦ９にセットされている「−ａ１＝−（ｆ１＋ｆ６）」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１０）における「−ａ１＊Ｄ５」を実行する。この乗算結果は、ＣＬＫ２０の終わりでＦＦ１４にセットされる。また、乗算器２３２は、ＦＦ１０にセットされている「ａ０＝ｆ０＋ｆ７」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１０）における「ａ０＊Ｄ１」を実行する。この乗算結果は、ＣＬＫ２０の終わりでＦＦ１５にセットされる。また、ＣＬＫ２０の終わりで、Ｆ１６及びＦＦ１７はゼロにクリアされる。
【０１１０】
加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はゼロを出力するように制御されており、且つＦＦ１６及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「ａ０＊Ｄ５＋ａ１＊Ｄ１」にＦＦ１４の内容「−ａ３＊Ｄ５」及びＦＦ１５の内容「−ａ２＊Ｄ１」を加算した結果、つまり「（ａ０−ａ３）＊Ｄ５＋（ａ１−ａ２）＊Ｄ１」がＣＬＫ２０の終わりでＦＦ１９にセットされる。更に、ＣＬＫ２０では、ＦＦ１９にセットされていた「ａ０＊Ｄ５＋ａ１＊Ｄ１」はＦＦ２０にシフトされる。
【０１１１】
次に、ＣＬＫ２１では、並び替え回路１２は、制御部３０からのＣＬＫ２１のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ０及びｆ７を出力し、画素データｍ３及びｍ４として画素データｆ１及びｆ６を出力し、画素データｍ５及びｍ６として画素データｆ２及びｆ５を出力し、画素データｍ７及びｍ８として画素データｆ３及びｆ４を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「ａ４＝ｆ０−ｆ７」を計算する。この計算結果は、ＣＬＫ２１の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「ａ５＝ｆ１−ｆ６」を計算する。この計算結果は、ＣＬＫ２１の終わりでＦＦ１０にセットされる。また、加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ６＝ｆ２−ｆ５」を計算する。この計算結果は、ＣＬＫ２１の終わりでＦＦ１１にセットされる。また、加算器２１４は、画素データｍ７とｍ８との加算、つまり、式（９）中の「ａ７＝ｆ３−ｆ４」を計算する。この計算結果は、ＣＬＫ２１の終わりでＦＦ１２にセットされる。
【０１１２】
また、ＣＬＫ２１では、乗算器２３１は、ＦＦ９にセットされている「ａ２＝ｆ２＋ｆ５」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１０）における「ａ２＊Ｄ５」を実行する。この乗算結果は、ＣＬＫ２１の終わりでＦＦ１４にセットされる。また、乗算器２３２は、ＦＦ１０にセットされている「−ａ３＝−（ｆ３＋ｆ４）」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１０）における「−ａ３＊Ｄ１」を実行する。この乗算結果は、ＣＬＫ２１の終わりでＦＦ１５にセットされる。また、ＣＬＫ２１の終わりで、Ｆ１６及びＦＦ１７はゼロにクリアされる。
【０１１３】
また、ＣＬＫ２１では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はゼロを出力するように制御されており、且つＦＦ１６及びＦＦ１７の出力はゼロであるので、ＦＦ１４の内容「−ａ１＊Ｄ５」及びＦＦ１５の内容「ａ０＊Ｄ１」を加算した結果、つまり「−ａ１＊Ｄ５＋ａ０＊Ｄ１」がＣＬＫ２０の終わりでＦＦ１９にセットされる。
【０１１４】
更に、ＣＬＫ２１では、ＦＦ１９にセットされていた「（ａ０−ａ３）＊Ｄ５＋（ａ１−ａ２）＊Ｄ１」はＣＬＫ２０の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２２のステージで、「Ｆ２＝（ａ０−ａ３）＊Ｄ５＋（ａ１−ａ２）＊Ｄ１」が出力端子から外部に出力される。
【０１１５】
次に、ＣＬＫ２２では、並び替え回路１２は、制御部３０からのＣＬＫ２２のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ２及びｆ５を出力し、画素データｍ３及びｍ４として画素データｆ０及びｆ７を出力し、画素データｍ５及びｍ６として画素データｆ３及びｆ４を出力し、画素データｍ７及びｍ８として画素データｆ１及びｆ６を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「−ａ６＝−（ｆ２−ｆ５）」を計算する。この計算結果は、ＣＬＫ２２の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「ａ４＝ｆ０−ｆ７」を計算する。この計算結果は、ＣＬＫ２２の終わりでＦＦ１０にセットされる。また、加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「−ａ７＝−（ｆ３−ｆ４）」を計算する。この計算結果は、ＣＬＫ２２の終わりでＦＦ１１にセットされる。また、加算器２１４は、画素データｍ７とｍ８との加算、つまり、式（９）中の「−ａ５＝−（ｆ１−ｆ６）」を計算する。この計算結果は、ＣＬＫ２２の終わりでＦＦ１２にセットされる。
【０１１６】
また、ＣＬＫ２２では、乗算器２３１は、ＦＦ９にセットされている「ａ４＝ｆ０−ｆ７」と制御部３０から乗算係数αとして与えられる「Ｄ６」とを乗算し、式（１１）における「ａ４＊Ｄ６」を実行する。この乗算結果は、ＣＬＫ２２の終わりでＦＦ１４にセットされる。また、乗算器２３２は、ＦＦ１０にセットされている「ａ５＝ｆ１−ｆ６」と制御部３０から乗算係数βとして与えられる「Ｄ４」とを乗算し、式（１１）における「ａ５＊Ｄ４」を実行する。この乗算結果は、ＣＬＫ２２の終わりでＦＦ１５にセットされる。また、乗算器２３３は、ＦＦ１１にセットされている「ａ６＝ｆ２−ｆ５」と制御部３０から乗算係数γとして与えられる「Ｄ２」とを乗算し、式（１１）における「ａ６＊Ｄ２」を実行する。この乗算結果は、ＣＬＫ２２の終わりでＦＦ１６にセットされる。また、乗算器２３４は、ＦＦ１２にセットされている「ａ７＝ｆ３−ｆ４」と制御部３０から乗算係数δとして与えられる「Ｄ０」とを乗算し、式（１１）における「ａ７＊Ｄ０」を実行する。この乗算結果は、ＣＬＫ２２の終わりでＦＦ１７にセットされる。
【０１１７】
また、ＣＬＫ２２では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はＦＦ１９の内容を出力するように制御されており、且つＦＦ１６及びＦＦ１７の出力はゼロであるので、ＦＦ１９の内容「−ａ１＊Ｄ５＋ａ０＊Ｄ１」にＦＦ１４の内容「ａ２＊Ｄ５」及びＦＦ１５の内容「−ａ３＊Ｄ１」を加算した結果、つまり「（−ａ１＋ａ２）＊Ｄ５＋（ａ０−ａ３）＊Ｄ１」がＣＬＫ２２の終わりでＦＦ１９にセットされる。更に、ＣＬＫ２２では、ＦＦ１９にセットされていた「−ａ１＊Ｄ５＋ａ０＊Ｄ１」はＣＬＫ２２の終わりでＦＦ２０にシフトされる。
【０１１８】
次に、ＣＬＫ２３では、並び替え回路１２は、制御部３０からのＣＬＫ２３のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ１及びｆ６を出力し、画素データｍ３及びｍ４として画素データｆ３及びｆ４を出力し、画素データｍ５及びｍ６として画素データｆ０及びｆ７を出力し、画素データｍ７及びｍ８として画素データｆ２及びｆ５を出力する。
【０１１９】
また、ＣＬＫ２３では、加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「−ａ５＝−（ｆ１−ｆ６）」を計算する。この計算結果は、ＣＬＫ２３の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「ａ７＝ｆ３−ｆ４」を計算する。この計算結果は、ＣＬＫ２３の終わりでＦＦ１０にセットされる。また、加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「ａ４＝ｆ０−ｆ７」を計算する。この計算結果は、ＣＬＫ２３の終わりでＦＦ１１にセットされる。また、加算器２１４は、画素データｍ７とｍ８との加算、つまり、式（９）中の「ａ６＝ｆ２−ｆ５」を計算する。この計算結果は、ＣＬＫ２３の終わりでＦＦ１７にセットされる。
【０１２０】
また、ＣＬＫ２３では、乗算器２３１は、ＦＦ９にセットされている「−ａ６＝−（ｆ２−ｆ５）」と制御部３０から乗算係数αとして与えられる「Ｄ６」とを乗算し、式（１１）における「−ａ６＊Ｄ６」を実行する。この乗算結果は、ＣＬＫ２３の終わりでＦＦ１４にセットされる。また、乗算器２３２は、ＦＦ１０にセットされている「ａ０＝ｆ０−ｆ７」と制御部３０から乗算係数βとして与えられる「Ｄ４」とを乗算し、式（１１）における「ａ４＊Ｄ４」を実行する。この乗算結果は、ＣＬＫ２３の終わりでＦＦ１５にセットされる。また、乗算器２３３は、ＦＦ１１にセットされている「−ａ７＝−（ｆ３−ｆ４）」と制御部３０から乗算係数γとして与えられる「Ｄ２」とを乗算し、式（１１）における「−ａ７＊Ｄ２」を実行する。この乗算結果は、ＣＬＫ２３の終わりでＦＦ１６にセットされる。また、乗算器２３４は、ＦＦ１２にセットされている「−ａ５＝−（ｆ１−ｆ６）」と制御部３０から乗算係数δとして与えられる「Ｄ０」とを乗算し、式（１１）における「−ａ５＊Ｄ０」を実行する。この乗算結果は、ＣＬＫ２３の終わりでＦＦ１５にセットされる。
【０１２１】
また、ＣＬＫ２３では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はゼロを出力するように制御されているので、ＦＦ１４の内容「ａ４＊Ｄ６」、ＦＦ１５の内容「ａ５＊Ｄ４」、ＦＦ１６の内容「ａ６＊Ｄ２」及びＦＦ１７の内容「ａ７＊Ｄ０」を加算した結果、つまり「ａ４＊Ｄ６＋ａ５＊Ｄ４＋ａ６＊Ｄ２＋ａ７＊Ｄ０」がＣＬＫ２３の終わりでＦＦ１９にセットされる。
また、ＦＦ１９にセットされていた「（−ａ１＋ａ２）＊Ｄ５＋（ａ０−ａ３）＊Ｄ１」はＣＬＫ２３の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２４のステージで、「Ｆ６＝（−ａ１＋ａ２）＊Ｄ５＋（ａ０−ａ３）＊Ｄ１」が出力端子から外部に出力される。
【０１２２】
次に、ＣＬＫ２４では、並び替え回路１２は、制御部３０からのＣＬＫ２４のステージである旨の制御信号Ｓ１に従って、画素データｍ１及びｍ２として画素データｆ３及びｆ４を出力し、画素データｍ３及びｍ４として画素データｆ２及びｆ５を出力し、画素データｍ５及びｍ６として画素データｆ１及びｆ６を出力し、画素データｍ７及びｍ８として画素データｆ０及びｆ７を出力する。加算器２１１は、画素データｍ１とｍ２との加算、つまり、式（９）中の「−ａ７＝−（ｆ３−ｆ４）」を計算する。この計算結果は、ＣＬＫ２４の終わりでＦＦ９にセットされる。また、加算器２１２は、画素データｍ３とｍ４との加算、つまり、式（９）中の「ａ６＝ｆ２−ｆ５」を計算する。この計算結果は、ＣＬＫ２４の終わりでＦＦ１０にセットされる。また、加算器２１３は、画素データｍ５とｍ６との加算、つまり、式（９）中の「−ａ５＝ｆ１−ｆ６」を計算する。この計算結果は、ＣＬＫ２４の終わりでＦＦ１１にセットされる。また、加算器２１４は、画素データｍ７とｍ８との加算、つまり、式（９）中の「ａ４＝ｆ０−ｆ７」を計算する。この計算結果は、ＣＬＫ２４の終わりでＦＦ１７にセットされる。
【０１２３】
また、ＣＬＫ２４では、乗算器２３１は、ＦＦ９にセットされている「−ａ５＝−（ｆ１−ｆ６）」と制御部３０から乗算係数αとして与えられる「Ｄ６」とを乗算し、式（１１）における「−ａ５＊Ｄ６」を実行する。この乗算結果は、ＣＬＫ２４の終わりでＦＦ１４にセットされる。また、乗算器２３２は、ＦＦ１０にセットされている「ａ７＝ｆ３−ｆ４」と制御部３０から乗算係数βとして与えられる「Ｄ４」とを乗算し、式（１１）における「ａ７＊Ｄ４」を実行する。この乗算結果は、ＣＬＫ２４の終わりでＦＦ１５にセットされる。また、乗算器２３３は、ＦＦ１１にセットされている「ａ４＝ｆ０−ｆ７」と制御部３０から乗算係数γとして与えられる「Ｄ２」とを乗算し、式（１１）における「ａ４＊Ｄ２」を実行する。この乗算結果は、ＣＬＫ２４の終わりでＦＦ１６にセットされる。また、乗算器２３４は、ＦＦ１２にセットされている「ａ６＝ｆ２−ｆ５」と制御部３０から乗算係数δとして与えられる「Ｄ０」とを乗算し、式（１１）における「ａ６＊Ｄ０」を実行する。この乗算結果は、ＣＬＫ２４の終わりでＦＦ１５にセットされる。
【０１２４】
また、ＣＬＫ２４では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はゼロを出力するように制御されているので、ＦＦ１４の内容「−ａ６＊Ｄ６」、ＦＦ１５の内容「ａ４＊Ｄ４」、ＦＦ１６の内容「−ａ７＊Ｄ２」及びＦＦ１７の内容「−ａ５＊Ｄ０」を加算した結果、つまり「−ａ６＊Ｄ６＋ａ４＊Ｄ４−ａ７＊Ｄ２−ａ５＊Ｄ０」がＣＬＫ２４の終わりでＦＦ１９にセットされる。
【０１２５】
更に、ＣＬＫ２４では、ＦＦ１９にセットされていた「ａ４＊Ｄ６＋ａ５＊Ｄ４＋ａ６＊Ｄ２＋ａ７＊Ｄ０」はＣＬＫ２４の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２５のステージで、「Ｆ１＝ａ４＊Ｄ６＋ａ５＊Ｄ４＋ａ６＊Ｄ２＋ａ７＊Ｄ０」が出力端子から外部に出力される。
【０１２６】
次に、ＣＬＫ２５では、並び替え回路１２は、制御部３０からのＣＬＫ２５のステージである旨の制御信号Ｓ１に従って、次の画素データｍ１〜ｍ８を出力するが記載を省略してある。
【０１２７】
また、ＣＬＫ２４では、乗算器２３１は、ＦＦ９にセットされている「−ａ７＝−（ｆ３−ｆ４）」と制御部３０から乗算係数αとして与えられる「Ｄ６」とを乗算し、式（１１）における「−ａ７＊Ｄ６」を実行する。この乗算結果は、ＣＬＫ２５の終わりでＦＦ１４にセットされる。また、乗算器２３２は、ＦＦ１０にセットされている「ａ６＝ｆ２−ｆ５」と制御部３０から乗算係数βとして与えられる「Ｄ４」とを乗算し、式（１１）における「ａ６＊Ｄ４」を実行する。この乗算結果は、ＣＬＫ２５の終わりでＦＦ１５にセットされる。また、乗算器２３３は、ＦＦ１１にセットされている「−ａ５＝ｆ１−ｆ６」と制御部３０から乗算係数γとして与えられる「Ｄ２」とを乗算し、式（１１）における「−ａ５＊Ｄ２」を実行する。この乗算結果は、ＣＬＫ２５の終わりでＦＦ１６にセットされる。また、乗算器２３４は、ＦＦ１２にセットされている「ａ４＝ｆ０−ｆ７」と制御部３０から乗算係数δとして与えられる「Ｄ０」とを乗算し、式（１１）における「ａ４＊Ｄ０」を実行する。この乗算結果は、ＣＬＫ２５の終わりでＦＦ１５にセットされる。
【０１２８】
更に、ＣＬＫ２４では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はゼロを出力するように制御されているので、ＦＦ１４の内容「−ａ５＊Ｄ６」、ＦＦ１５の内容「ａ７＊Ｄ４」、ＦＦ１６の内容「ａ４＊Ｄ２」及びＦＦ１７の内容「ａ６＊Ｄ０」を加算した結果、つまり「−ａ５＊Ｄ６＋ａ７＊Ｄ４＋ａ４＊Ｄ２＋ａ６＊Ｄ０」がＣＬＫ２５の終わりでＦＦ１９にセットされる。
また、ＦＦ１９にセットされていた「−ａ６＊Ｄ６＋ａ４＊Ｄ４−ａ７＊Ｄ２−ａ５＊Ｄ０」はＣＬＫ２５の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２６のステージで、「Ｆ３＝−ａ６＊Ｄ６＋ａ４＊Ｄ４−ａ７＊Ｄ２−ａ５＊Ｄ０」が出力端子から外部に出力される。
【０１２９】
次に、ＣＬＫ２６では、並び替え回路１２は、制御部３０からのＣＬＫ２６のステージである旨の制御信号Ｓ１に従って、次の画素データｍ１〜ｍ８を出力するが記載は省略する。また、乗算器２３１〜２３４は、次の画素データに対する演算を行うが記載は省略する。
【０１３０】
また、ＣＬＫ２６では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はゼロを出力するように制御されているので、ＦＦ１４の内容「−ａ７＊Ｄ６」、ＦＦ１５の内容「ａ６＊Ｄ４」、ＦＦ１６の内容「−ａ５＊Ｄ２」及びＦＦ１７の内容「ａ４＊Ｄ０」を加算した結果、つまり「−ａ７＊Ｄ６＋ａ６＊Ｄ４−ａ５＊Ｄ２＋ａ４＊Ｄ０」がＣＬＫ２６の終わりでＦＦ１９にセットされる。
【０１３１】
更に、ＣＬＫ２６では、ＦＦ１９にセットされていた「−ａ５＊Ｄ６＋ａ７＊Ｄ４＋ａ４＊Ｄ２＋ａ６＊Ｄ０」はＣＬＫ２６の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２６のステージで、「Ｆ５＝−ａ５＊Ｄ６＋ａ７＊Ｄ４＋ａ４＊Ｄ２＋ａ６＊Ｄ０」が出力端子から外部に出力される。
【０１３２】
次に、ＣＬＫ２７では、並び替え回路１２は、制御部３０からのＣＬＫ２６のステージである旨の制御信号Ｓ１に従って、次の画素データｍ１〜ｍ８を出力するが記載は省略する。また、乗算器２３１〜２３４は、次の画素データに対する演算を行うが記載を省略する。更に、加減算部２５は、次の画素データに対する演算を行うが記載を省略する。
【０１３３】
このＣＬＫ２７では、ＦＦ１９にセットされていた「−ａ７＊Ｄ６＋ａ６＊Ｄ４−ａ５＊Ｄ２＋ａ４＊Ｄ０」がＣＬＫ２７の終わりでＦＦ２０にシフトされる。これにより、次のＣＬＫ２８のステージで、「Ｆ７＝−ａ７＊Ｄ６＋ａ６＊Ｄ４−ａ５＊Ｄ２＋ａ４＊Ｄ０」が出力端子から外部に出力される。
【０１３４】
（１−４）離散コサイン変換の逆変換
次に、離散コサイン変換の順変換の動作を、図７〜図９に示すタイミングチャートを参照しながら説明する。
【０１３５】
この離散コサイン逆変換では、式（１３）の左辺の要素「（ｆ０＋ｆ４）／２」と式（１４）の左辺の要素「（ｆ０−ｆ４）／２」とを加算することにより「ｆ０」が求められる。即ち、「ｆ０」は「（ｆ０＋ｆ４）／２＋（ｆ０−ｆ４）／２」を計算することにより求められる。同様に、「ｆ１」は「（ｆ１＋ｆ５）／２＋（ｆ１−ｆ５）／２」を計算することにより求められる。「ｆ２」は「（ｆ２＋ｆ６）／２＋（ｆ２−ｆ６）／２」を計算することにより求められる。「ｆ３」は「（ｆ３＋ｆ７）／２＋（ｆ３−ｆ７）／２」を計算することにより求められる。「ｆ４」は「（ｆ０＋ｆ４）／２−（ｆ０−ｆ４）／２」を計算することにより求められる。「ｆ５」は「（ｆ１＋ｆ５）／２−（ｆ１−ｆ５）／２」を計算することにより求められる。「ｆ６」は「（ｆ２＋ｆ６）／２−（ｆ２−ｆ６）／２」を計算することにより求められる。「ｆ７」は「（ｆ３＋ｆ７）／２−（ｆ３−ｆ７）／２」を計算することにより求められる。
【０１３６】
「ｆ０」〜「ｆ７」の各々を算出する場合の動作は略同じであるので、以下では、代表的な動作例として、逆変換により「ｆ０」を求める場合の動作を説明する。
【０１３７】
先ず、外部から順変換された画素データＦ０〜Ｆ７が、ＣＬＫ１〜９で、記憶部１１を構成するシフトレジスタに順次シフトインされる。そして、ＣＬＫ９で、８個の画素データＦ０〜Ｆ７がＦＦ０〜ＦＦ７にセットされる。この状態で、逆変換の動作が開始される。
【０１３８】
制御部３０は、ＣＬＫ９で、離散コサイン変換の逆変換のＣＬＫ９のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ１として画素データＦ２、画素データｍ３として画素データＦ６、画素データｍ５として画素データＦ０、画素データｍ６として画素データＦ４をそれぞれ出力する。加算器２１１は、画素データｍ１を通過させる。これにより、画素データＦ２が、式（１３）中の「ａ２」として、ＣＬＫ９の終わりでＦＦ９にセットされる。加算器２１２は、画素データｍ３を通過させる。これにより、画素データＦ６が、式（１３）中の「ａ１」として、ＣＬＫ９の終わりでＦＦ１０にセットされる。加算器２１３は、画素データｍ５とｍ６とを加算する。これにより、画素データＦ０とＦ４との和「Ｆ０＋Ｆ４」が、式（１３）中の「ａ０＋ａ３」として、ＣＬＫ９の終わりでＦＦ１１にセットされる。
【０１３９】
次に、ＣＬＫ１０では、並び替え回路１２は、制御部３０からのＣＬＫ１０のステージである旨の制御信号Ｓ１に従って、画素データｍ１として画素データＦ１、画素データｍ３として画素データＦ３、画素データｍ５として画素データＦ５、画素データｍ７として画素データＦ７をそれぞれ出力する。加算器２１１は、画素データｍ１を通過させる。これにより、画素データＦ１が、式（１４）中の「ａ５」として、ＣＬＫ１０の終わりでＦＦ９にセットされる。加算器２１２は、画素データｍ３を通過させる。これにより、画素データＦ３が、式（１４）中の「ａ７」として、ＣＬＫ１０の終わりでＦＦ１０にセットされる。加算器２１３は、画素データｍ５の符号を反転して通過させる。これにより、画素データＦ５が、式（１４）中の「−ａ６」として、ＣＬＫ１０の終わりでＦＦ１１にセットされる。加算器２１４は、画素データｍ７を符号を反転して通過させる。これにより、画素データＦ７が、式（１４）中の「−ａ４」として、ＣＬＫ１０の終わりでＦＦ１２にセットされる。
【０１４０】
また、ＣＬＫ１０では、乗算器２３１は、ＦＦ９にセットされている「Ｆ２（＝ａ２）」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１３）中の「ａ２＊Ｄ５」を算出する。この算出結果は、ＣＬＫ１０の終わりでＦＦ１４にセットされる。乗算器２３２は、ＦＦ１０にセットされている「Ｆ６（＝ａ１）」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１３）中の「ａ１＊Ｄ１」を算出する。この算出結果は、ＣＬＫ１０の終わりでＦＦ１５にセットされる。乗算器２３３は、ＦＦ１１にセットされている「Ｆ０＋Ｆ４」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１３）中の「（ａ０＋ａ３）＊Ｄ３」を算出する。この算出結果は、ＣＬＫ１０の終わりでＦＦ１６にセットされる。更に、ＦＦ１７は、ＣＬＫ１０の終わりでゼロにクリアされる。
【０１４１】
次に、ＣＬＫ１１では、並び替え回路１２は、制御部３０からのＣＬＫ１１のステージである旨の制御信号Ｓ１に従って、画素データｍ１として画素データＦ２、画素データｍ３として画素データＦ６、画素データｍ５として画素データＦ０、画素データｍ６として画素データＦ４をそれぞれ出力する。加算器２１１は、画素データｍ１を通過させる。これにより、画素データＦ２が、式（１３）中の「ａ２」として、ＣＬＫ１１の終わりでＦＦ９にセットされる。加算器２１２は、画素データｍ３を通過させる。これにより、画素データＦ６が、式（１３）中の「ａ１」として、ＣＬＫ１１の終わりでＦＦ１０にセットされる。加算器２１３は、画素データｍ５とｍ６とを加算する。これにより、画素データＦ０とＦ４との和「Ｆ０＋Ｆ４」が、式（１３）中の「ａ０＋ａ３」として、ＣＬＫ１１の終わりでＦＦ１１にセットされる。
【０１４２】
また、ＣＬＫ１１では、乗算器２３１は、ＦＦ９にセットされている「Ｆ１（＝ａ５）」と制御部３０から乗算係数αとして与えられる「Ｄ６」とを乗算し、式（１４）中の「ａ５＊Ｄ６」を算出する。この算出結果は、ＣＬＫ１１の終わりでＦＦ１４にセットされる。乗算器２３２は、ＦＦ１０にセットされている「Ｆ３（＝ａ７）」と制御部３０から乗算係数βとして与えられる「Ｄ４」とを乗算し、式（１４）中の「ａ７＊Ｄ４」を算出する。この算出結果は、ＣＬＫ１１の終わりでＦＦ１５にセットされる。乗算器２３３は、ＦＦ１１にセットされている「Ｆ５（＝−ａ６）」と制御部３０から乗算係数γとして与えられる「Ｄ２」とを乗算し、式（１４）中の「−ａ６＊Ｄ２」を算出する。この算出結果は、ＣＬＫ１１の終わりでＦＦ１６にセットされる。乗算器２３４は、ＦＦ１２にセットされている「Ｆ７（＝−ａ４）」と制御部３０から乗算係数δとして与えられる「Ｄ０」とを乗算し、式（１４）中の「−ａ４＊Ｄ０」を算出する。この算出結果は、ＣＬＫ１１の終わりでＦＦ１７にセットされる。
【０１４３】
更に、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５の出力はゼロになるように制御され、且つＦＦ１７の出力はゼロである。従って、ＦＦ１４、ＦＦ１５、ＦＦ１６の内容を加算した結果である「（ａ０＋ａ３）＊Ｄ３＋ａ２＊Ｄ５＋ａ１＊Ｄ１」、つまり「（ｆ０−ｆ４）／２」がＣＬＫ１１の終わりでＦＦ１９にセットされる。
【０１４４】
次に、ＣＬＫ１２では、並び替え回路１２は、制御部３０からのＣＬＫ１２のステージである旨の制御信号Ｓ１に従って、画素データｍ１として画素データＦ１、画素データｍ３として画素データＦ３、画素データｍ５として画素データＦ５、画素データｍ７として画素データＦ７をそれぞれ出力する。加算器２１１は、画素データｍ１を通過させる。これにより、画素データＦ１が、式（１４）中の「ａ５」として、ＣＬＫ１２の終わりでＦＦ９にセットされる。加算器２１２は、画素データｍ３を通過させる。これにより、画素データＦ３が、式（１４）中の「ａ７」として、ＣＬＫ１２の終わりでＦＦ１０にセットされる。加算器２１３は、画素データｍ５の符号を反転して通過させる。これにより、画素データＦ５が、式（１４）中の「−ａ６」として、ＣＬＫ１２の終わりでＦＦ１１にセットされる。加算器２１４は、画素データｍ７を符号を反転して通過させる。これにより、画素データＦ７が、式（１４）中の「−ａ４」として、ＣＬＫ１２の終わりでＦＦ１２にセットされる。
【０１４５】
また、ＣＬＫ１２では、乗算器２３１は、ＦＦ９にセットされている「Ｆ２（＝ａ２）」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１３）中の「ａ２＊Ｄ５」を算出する。この算出結果は、ＣＬＫ１２の終わりでＦＦ１４にセットされる。乗算器２３２は、ＦＦ１０にセットされている「Ｆ６（＝ａ１）」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１３）中の「ａ１＊Ｄ１」を算出する。この算出結果は、ＣＬＫ１２の終わりでＦＦ１５にセットされる。乗算器２３３は、ＦＦ１１にセットされている「Ｆ０＋Ｆ４」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１３）中の「（ａ０＋ａ３）＊Ｄ３」を算出する。この算出結果は、ＣＬＫ１２の終わりでＦＦ１６にセットされる。
【０１４６】
また、ＣＬＫ１２では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５は、ＦＦ１９の内容を出力するように制御される。従って、ＦＦ１４、ＦＦ１５、ＦＦ１６及びＦＦ１７の内容を加算した結果である「ａ５＊Ｄ６＋ａ７＊Ｄ４−ａ６＊Ｄ２−ａ４＊Ｄ０」にＦＦ１９の内容である「（ａ０＋ａ３）＊Ｄ３＋ａ２＊Ｄ５＋ａ１＊Ｄ１」が加算された結果、つまり「（ｆ０−ｆ４）／２」に「（ｆ０−ｆ４）／２」が加算された結果である「ｆ０」がＣＬＫ１２の終わりでＦＦ１９にセットされる。
【０１４７】
更に、ＦＦ１９にセットされていた「（ａ０＋ａ３）＊Ｄ３＋ａ２＊Ｄ５＋ａ１＊Ｄ１」、つまり「（ｆ０＋ｆ４）／２」は、ＣＬＫ１２の終わりでＦＦ２０にセットされるが、このＦＦ２０の内容は使用されない。
【０１４８】
次に、ＣＬＫ１３では、並び替え回路１２は、制御部３０からのＣＬＫ１３のステージである旨の制御信号Ｓ１に従って、画素データｍ１として画素データＦ６、画素データｍ３として画素データＦ２、画素データｍ５として画素データＦ０、画素データｍ６として画素データＦ４をそれぞれ出力する。これにより、式（１３）及び式（１４）の２行目を計算するための加算処理が開始される。
【０１４９】
また、ＣＬＫ１３では、乗算器２３１は、ＦＦ９にセットされている「Ｆ２（＝ａ２）」と制御部３０から乗算係数αとして与えられる「Ｄ５」とを乗算し、式（１３）中の「ａ２＊Ｄ５」を算出する。この算出結果は、ＣＬＫ１３の終わりでＦＦ１４にセットされる。乗算器２３２は、ＦＦ１０にセットされている「Ｆ６（＝ａ１）」と制御部３０から乗算係数βとして与えられる「Ｄ１」とを乗算し、式（１３）中の「ａ１＊Ｄ１」を算出する。この算出結果は、ＣＬＫ１３の終わりでＦＦ１５にセットされる。乗算器２３３は、ＦＦ１１にセットされている「Ｆ０＋Ｆ４」と制御部３０から乗算係数γとして与えられる「Ｄ３」とを乗算し、式（１３）中の「（ａ０＋ａ３）＊Ｄ２」を算出する。この算出結果は、ＣＬＫ１３の終わりでＦＦ１６にセットされる。乗算器２３４の出力は無視される。
【０１５０】
また、ＣＬＫ１３では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はＦＦ１９の内容を出力するように制御され、且つＦＦ１７の出力はゼロである。従って、ＦＦ１４、ＦＦ１５、ＦＦ１６及びＦＦ１９の内容を加算した結果である「（ａ０＋ａ３）＊Ｄ３＋ａ２＊Ｄ５＋ａ１＊Ｄ１」、つまり「（ｆ０＋ｆ４）／２」がＣＬＫ１３の終わりでＦＦ１９にセットされる。
【０１５１】
更に、ＦＦ１９にセットされていた「ｆ０」は、ＣＬＫ１３の終わりでＦＦ２０にセットされる。これにより、ＣＬＫ１４において「ｆ０」が外部に送出される。
【０１５２】
次に、ＣＬＫ１４では、並び替え回路１２は、制御部３０からのＣＬＫ１４のステージである旨の制御信号Ｓ１に従って、画素データｍ１として画素データＦ５、画素データｍ３として画素データＦ１、画素データｍ５として画素データＦ７、画素データｍ７として画素データＦ３それぞれ出力する。これにより、式（１３）及び式（１４）の２行目を計算するための加算処理が引き続いて、実行される。また、ＣＬＫ１４では、乗算器２３１〜２３４は、式（１３）及び式（１４）の２行目を計算するための乗算処理が実行される。
【０１５３】
また、ＣＬＫ１４では、加減算部２５は、ＦＦ１４〜ＦＦ１７及びセレクタ２５５の各出力を加算してＦＦ１９にセットする。この場合、セレクタ２５５はＦＦ１９の内容の符号を反転して出力するように制御される。従って、ＦＦ１４、ＦＦ１５、ＦＦ１６及びＦＦ１７の内容を加算した結果である「ａ５＊Ｄ６＋ａ７＊Ｄ４−ａ６＊Ｄ２−ａ４＊Ｄ０」からＦＦ１９の内容である「（ａ０＋ａ３）＊Ｄ３＋ａ２＊Ｄ５＋ａ１＊Ｄ１」を減算した結果、、つまり「（ｆ０−ｆ４）／２」から「（ｆ０＋ｆ４）／２」を減算した結果である「ｆ４」がＣＬＫ１４の終わりでＦＦ１９にセットされる。
【０１５４】
更に、ＦＦ１９にセットされていた「（ａ０＋ａ３）＊Ｄ３＋ａ２＊Ｄ５＋ａ１＊Ｄ１」、つまり「（ｆ０＋ｆ４）／２」は、ＣＬＫ１２の終わりでＦＦ２０にセットされるが、このＦＦ２０の内容は使用されない。
【０１５５】
次に、クロック１５では、ＦＦ１９にセットされていた「ｆ４」は、ＣＬＫ１５の終わりでＦＦ２０にセットされる。これにより、ＣＬＫ１６において「ｆ４」が外部に送出される。以下同様にして、「「ｆ１」、「ｆ５」、「ｆ２」、「ｆ６」、「ｆ３」、「ｆ７」が順次出力される。
【０１５６】
（実施の形態２）
本発明の実施の形態２は、上述した非可逆９×７フィルタを用いたウェーブレット変換及び離散コサイン変換に加え、更に可逆５×３フィルタを用いたウェーブレット変換をも行う画像処理装置を説明する。
【０１５７】
図１０は、実施の形態２に係る画像処理装置の構成を示すブロック図である。なお、図１０では、図面の煩雑さを避けるために、非可逆９×７フィルタを用いたウェーブレット変換のための構成の記載は省略されている。
【０１５８】
この画像処理装置は、図１０に示すように、図１に示した実施の形態１の画像処理装置に、符号４０で囲む領域に変更が加えられることにより構成されている。即ち、加算器２１１及び２１２の周辺に付加回路（図示しない）が追加されて可逆用回路４１が形成されていると共に、セレクタ４２〜４５が追加され、更に、これらの追加に伴って接続が変更されている。
【０１５９】
可逆用回路４１に含まれる付加回路は、何れも図示を省略するが、加算器２１１の一方（図１０中の左側）の入力端に設けられて並び替え回路１２からの画素データｍ１、ＦＦ１４の出力及びＦＦ１５の出力の何れかを選択するセレクタ、加算器２１１の他方（図１０中の右側）の入力端に設けられて並び替え回路１２からの画素データｍ２及びＦＦ１５の出力の何れかを選択するセレクタ、加算器２１１の出力端に設けられたシフタ、加算器２１２の一方（図１０中の左側）の入力端に設けられて並び替え回路１２からの画素データｍ３及びＦＦ９の出力の何れかを選択するセレクタ、並びにこのセレクタの出力の２の補数をとって加算器２１２に供給する補数回路が設けられている。
【０１６０】
セレクタ４２はＦＦ１４の入力端に設けられ、乗算器２３１の出力、ＦＦ９の出力及びＦＦ１５の出力の何れかを選択してＦＦ１４に供給する。セレクタ４３はＦＦ１５の入力端に設けられ、乗算器２３２の出力及びＦＦ１０の出力の何れかを選択してＦＦ１５に供給する。なお、乗算器２３１及び２３２の出力は、以下で説明する可逆５×３フィルタを用いたウェーブレット変換では使用されない。
【０１６１】
また、セレクタ４４は、ＦＦ１４の出力及びＦＦ１０の出力の何れかを選択してセレクタ４５に送る。セレクタ４５は、リミッタ２６とＦＦ２０との間に設けられ、セレクタ４４の出力及びリミッタ２６の出力の何れかを選択してＦＦ２０に送る。このセレクタ４５は、可逆５×３フィルタを用いたウェーブレット変換が行われる場合は、常にセレクタ４４の出力を選択するように制御される。従って、加算器２１３及び２１４、ＦＦ１１〜ＦＦ１３、乗算器２３３〜２３５、ＦＦ１６〜ＦＦ１８、加算器２５１〜２５４、ＦＦ１９及びリミッタ２６は、可逆５×３フィルタを用いたウェーブレット変換では使用されない。
【０１６２】
次に、以上のように構成される本発明の実施の形態２に係る画像処理装置の動作を説明する。先ず、可逆５×３フィルタを用いたウェーブレット変換の順変換の動作を、図１１に示すタイミングチャートを参照しながら説明する。
【０１６３】
先ず、奇数列の画素の変換について説明する。ＣＬＫ１では、外部からの画素データが、クロック信号に同期して、記憶部１１を構成するシフトレジスタに順次シフトインされ、ＦＦ０〜ＦＦ６に画素データＸ（２ｎ−２）〜Ｘ（２ｎ−８）がセットされているものとする。この場合、奇数列の画素データＸ（２ｎ−３）が注目画素である。なお、図１１では、動作の説明に必要なフリップフロップのみが示されている。
【０１６４】
ＣＬＫ１では、制御部３０は、可逆５×３フィルタを用いたウェーブレット変換の順変換のＣＬＫ１のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ１及びｍ２として画素データＸ（２ｎ−２）及びＸ（２ｎ−４）をそれぞれ出力する。加算器２１１は、画素データＸ（２ｎ−２）とＸ（２ｎ−４）との加算、つまり、式（５）中の「Ｘ（２ｎ）＋Ｘ（２ｎ＋２）」を計算する。この計算結果は、付加回路のシフタで下位方向に１ビットだけ右シフトされ、換言すれば、「２」で除算され、式（５）中の右辺の「［（Ｘ（２ｎ）＋Ｘ（２ｎ＋２））／２］」が計算される。この計算結果は、ＣＬＫ１の終わりでＦＦ９にセットされる。なお、”［　］”は、ｆｌｏｏｒ関数であることを表す。また、図１１中の”＊”は中間結果であることを表す。
【０１６５】
次に、ＣＬＫ２では、ＦＦ０〜ＦＦ６には画素データＸ（２ｎ−１）〜Ｘ（２ｎ−７）がセットされる。制御部３０は、ＣＬＫ２で、可逆５×３フィルタを用いたウェーブレット変換の順変換のＣＬＫ２のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ４として画素データＸ（２ｎ−３）を出力する。加算器２１２は、画素データＸ（２ｎ−３）からＦＦ９の内容を減算する。これにより、式（５）の右辺が算出され、画素データＹ（２ｎ−３）としてＣＬＫ２の終わりでＦＦ１０にセットされる。
【０１６６】
このＦＦ１０にセットされた画素データＹ（２ｎ−３）は、ＣＬＫ３の終わりでセレクタ４３を介してＦＦ１５にセットされる。そして、ＣＬＫ４の終わりではＦＦ１５の内容はそのまま保持され、ＣＬＫ５の終わりでセレクタ４２を介してＦＦ１４にセットされる。ＣＬＫ６の終わりではＦＦ１４の内容はそのまま保持され、ＣＬＫ７の終わりでセレクタ４４及び４５を介してＦＦ２０にセットされる。従って、画素データＹ（２ｎ−３）は、ＣＬＫ８で外部に送出される。
【０１６７】
次に、偶数列の画素の変換について説明する。偶数列の画素の変換は、奇数列の画素の変化によって得られた結果を用いて、以下のようにして実行される。
【０１６８】
奇数列の画素データＸ（２ｎ−１）が注目画素である場合は、上記と同様にして、ＣＬＫ３で、可逆５×３フィルタを用いたウェーブレット変換の順変換のＣＬＫ３のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ１及びｍ２として画素データＸ（２ｎ）及びＸ（２ｎ−２）をそれぞれ出力する。加算器２１１は、画素データＸ（２ｎ）とＸ（２ｎ−２）との加算、つまり、式（５）中の「Ｘ（２ｎ）＋Ｘ（２ｎ＋２）」を計算する。この計算結果は、付加回路のシフタで下位方向に１ビットだけシフトされ、換言すれば、「２」で除算され、式（５）中の右辺の「［（Ｘ（２ｎ）＋Ｘ（２ｎ＋２））／２］」が計算される。この計算結果は、ＣＬＫ３の終わりでＦＦ９にセットされる。
【０１６９】
次に、ＣＬＫ４では、ＦＦ０〜ＦＦ６には画素データＸ（２ｎ＋１）〜Ｘ（２ｎ−５）がセットされる。制御部３０は、ＣＬＫ４で、可逆５×３フィルタを用いたウェーブレット変換の順変換のＣＬＫ４のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ４として画素データＸ（２ｎ−１）を出力する。加算器２１２は、画素データＸ（２ｎ−１）からＦＦ９の内容を減算する。これにより、式（５）の右辺が算出され、画素データＹ（２ｎ−１）としてＣＬＫ４の終わりでＦＦ１０にセットされる。このＦＦ１０にセットされた画素データＹ（２ｎ−１）は、ＣＬＫ５の終わりでセレクタ４３を介してＦＦ１５にセットされる。
【０１７０】
上記の状態において、ＣＬＫ６では、加算器２１１は、ＦＦ１５にセットされている画素データＹ（２ｎ−１）とＦＦ１４にセットされている画素データＹ（２ｎ−３）と定数「２」との加算、つまり、式（６）中の「Ｙ（２ｎ−１）＋Ｙ（２ｎ＋１）＋２」を計算する。この計算結果は、付加回路のシフタで下位方向に２ビットだけシフトされ、換言すれば、「４」で除算され、式（５）中の右辺の「［（Ｙ（２ｎ−１）＋Ｙ（２ｎ＋１）＋２）／２］」が計算される。この計算結果は、ＣＬＫ６の終わりでＦＦ９にセットされる。
【０１７１】
次に、ＣＬＫ７では、ＦＦ０〜ＦＦ６には画素データＸ（２ｎ＋４）〜Ｘ（２ｎ−２）がセットされている。制御部３０は、ＣＬＫ７で、可逆５×３フィルタを用いたウェーブレット変換の順変換のＣＬＫ７のステージである旨の制御信号Ｓ１を並び替え回路１２に送る。これにより、並び替え回路１２は、画素データｍ４として画素データＸ（２ｎ−２）を出力する。加算器２１２は、画素データＸ（２ｎ−２）にＦＦ９の内容を加算する。これにより、式（６）の右辺が算出され、画素データＹ（２ｎ−２）としてＣＬＫ７の終わりでＦＦ１０にセットされる。このＦＦ１０にセットされた画素データＹ（２ｎ−２）は、ＣＬＫ８の終わりでセレクタ４４及び４５を介してＦＦ２０にセットされる。従って、画素データＹ（２ｎ−２）は、ＣＬＫ９で外部に送出される。
【０１７２】
可逆５×３フィルタを用いたウェーブレット変換の逆変換の動作は、順変換における式（５）及び式（６）を用いる代わりに、式（７）及び式（８）が用いられることを除けば、上述した順変換時の動作略同じである。可逆５×３フィルタを用いたウェーブレット変換の逆変換の動作を示すタイミングチャートを図１２に示し、詳細な説明は省略する。
【０１７３】
以上説明したように、本発明の実施の形態に係る画像処理装置によれば、ウェーブレット変換と離散コサイン変換とを同一の回路で行うことができるので、回路規模を小さくできる。
【０１７４】
【発明の効果】
以上詳述したように、本発明によれば、離散的コサイン演算及びウェーブレット演算を実行する回路を小規模にできる画像処理装置及び画像処理方法を提供できる。
【０１７５】
ＪＰＥＧ向けの離散的コサイン演算回路の単体の規模は、約３０Ｋゲートと言われている。一方、ＪＰＥＧ２０００向けのウェーブレット演算回路の単体を設計する場合、その規模は約５０Ｋゲートと見積もることができる。これに対し、上述した係数を切り換えることによりウェーブレット変換又は離散コサイン変換を行うように構成された画像処理装置は、演算速度を単体で構成されたＪＰＥＧ向けの離散的コサイン演算回路及び単体で構成されたＪＰＥＧ２０００向けのウェーブレット演算回路と同等に保った場合に、約５５Ｋゲートで構成することができた。即ち、ゲート数を従来比で約３１％低減できた。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【図２】本発明の実施の形態１に係る画像処理装置の詳細な構成を示す回路図である。
【図３】本発明の実施の形態１に係る画像処理装置で使用される係数を説明するための図である。
【図４】本発明の実施の形態１に係る画像処理装置における離散コサイン変換の順変換の動作を示すタイミングチャー（その１）である。
【図５】本発明の実施の形態１に係る画像処理装置における離散コサイン変換の順変換の動作を示すタイミングチャー（その２）である。
【図６】本発明の実施の形態１に係る画像処理装置における離散コサイン変換の順変換の動作を示すタイミングチャー（その３）である。
【図７】本発明の実施の形態１に係る画像処理装置における離散コサイン変換の逆変換の動作を示すタイミングチャー（その１）である。
【図８】本発明の実施の形態１に係る画像処理装置における離散コサイン変換の逆変換の動作を示すタイミングチャー（その２）である。
【図９】本発明の実施の形態１に係る画像処理装置における離散コサイン変換の逆変換の動作を示すタイミングチャー（その３）である。
【図１０】本発明の実施の形態２に係る画像処理装置の詳細な構成を示す回路図である。
【図１１】本発明の実施の形態２に係る画像処理装置における５×３フィルタを用いたウェーブレット変換の順変換の動作を示すタイミングチャートである。
【図１２】本発明の実施の形態２に係る画像処理装置における５×３フィルタを用いたウェーブレット変換の逆変換の動作を示すタイミングチャートである。
【図１３】従来の画像処理装置を説明するための図である。
【符号の説明】
１０　入力部
１１　記憶部
１２　並び替え回路
２０　演算部
２１　加算部
２２　ラッチ
２３　乗算部
２４　ラッチ
２５　加減算部
２６　リミッタ
３０　制御部
４１　可逆用回路
【図１】
2004120439.tif 000017
【図２】
2004120439.tif 000018
【図３】
2004120439.tif 000019
【図４】
2004120439.tif 000020
【図５】
2004120439.tif 000021
【図６】
2004120439.tif 000022
【図７】
2004120439.tif 000023
【図８】
2004120439.tif 000024
【図９】
2004120439.tif 000025
【図１０】
2004120439.tif 000026
【図１１】
2004120439.tif 000027
【図１２】
2004120439.tif 000028
【図１３】
2004120439.tif 000029