(57)【特許請求の範囲】
【請求項１】
入力信号に対してアダマール変換行列による変換処理を行う変換工程と、
前記変換工程で変換された変換データの内、奇数個のデータの各最下位データを切り上げ処理し、残りの奇数個のデータの各最下位データを切り捨て処理して整数化する丸め処理工程と、
を有することを特徴とするアダマール変換処理方法。
【請求項２】
更に、前記変換工程と対応する逆変換処理及び前記丸め処理工程に対応する丸め処理を行って元のデータを復元する復元工程を有することを特徴とする請求項１に記載のアダマール変換処理方法。
【請求項３】
前記アダマール変換行列は４点アダマール変換行列であることを特徴とする請求項１又は２に記載のアダマール変換処理方法。
【請求項４】
前記復元工程における丸め処理は、前記丸め処理工程に対して一意に決定され、前記丸め処理工程における丸め処理と同じ処理であることを特徴とする請求項２に記載のアダマール変換処理方法。
【請求項５】
前記丸め処理工程における丸め処理は８種類存在することを特徴とする請求項３に記載のアダマール変換処理方法。
【請求項６】
前記丸め処理工程における丸め処理の種類と、前記復元工程における逆変換時の丸め処理の種類とを互いに補数の関係で対応させることを特徴とする請求項２に記載のアダマール変換処理方法。
【請求項７】
４点アダマール変換行列によるアダマール変換処理を行う変換処理工程と、
前記変換処理工程による変換結果の出力の内、奇数個の変換出力の最下位を切り上げ処理し、残りの奇数個の変換出力の最下位を切り捨て処理する丸め処理工程と、
前記丸め処理工程で丸められた変換出力を逆アダマール変換処理する逆変換処理工程と、
前記丸め処理工程における丸め処理と同じ丸め処理を前記逆変換処理工程の変換結果に対して行うことにより元のデータを復元する復元工程と、
を有することを特徴とするアダマール変換処理方法。
【請求項８】
前記丸め処理工程における丸め処理の種類が８種類あり、前記復元工程における丸め処理が前丸め処理工程における丸め処理に対して一意に決定されることを特徴とする請求項７に記載のアダマール変換処理方法。
【請求項９】
前記復元工程における丸め処理は、前記丸め処理工程における８種類ある変換処理時の丸め処理に対して、８の補数の関係で対応させることを特徴とする請求項７又は８に記載のアダマール変換処理方法。
【請求項１０】
アダマール変換手段と、
前記アダマール変換手段の変換出力のうちの奇数個の最下位を切り上げ処理し、残りの奇数個の変換出力の最下位に対し切り捨て処理を行なう丸め処理手段とを有することを特徴とするアダマール変換処理装置。
【請求項１１】
前記アダマール変換手段に対応する逆変換処理及び前記丸め処理手段に対応する丸め処理を行って元のデータを復元する復元手段を有することを特徴とする請求項１０に記載のアダマール変換処理装置。
【請求項１２】
前記アダマール変換行列は４点アダマール変換行列であることを特徴とする請求項１０又は１１に記載のアダマール変換処理装置。
【請求項１３】
前記復元手段における丸め処理は、前記丸め処理手段に対して一意に決定され、前記丸め処理手段における丸め処理と同じ処理であることを特徴とする請求項１１に記載のアダマール変換処理装置。
【請求項１４】
前記丸め処理手段における丸め処理は８種類存在することを特徴とする請求項１２に記載のアダマール変換処理装置。
【請求項１５】
前記丸め処理手段における丸め処理の種類と、前記復元手段における逆変換時の丸め処理の種類とを互いに補数の関係で対応させることを特徴とする請求項１１に記載のアダマール変換処理装置。
【請求項１６】
４点アダマール変換行列によるアダマール変換処理を行う変換処理手段と、
前記変換処理手段による変換結果の出力の内、奇数個の変換出力の最下位を切り上げ処理し、残りの奇数個の変換出力の最下位を切り捨て処理する丸め処理手段と、
前記丸め処理手段で丸められた変換出力を逆アダマール変換処理する逆変換処理手段と、
前記丸め処理手段における丸め処理と同じ丸め処理を前記逆変換処理手段の変換結果に対して行うことにより元のデータを復元する復元手段と、
を有することを特徴とするアダマール変換処理装置。
【請求項１７】
前記丸め処理手段における丸め処理の種類が８種類あり、前記復元手段における丸め処理が前丸め処理手段における丸め処理に対して一意に決定されることを特徴とする請求項１６に記載のアダマール変換処理装置。
【請求項１８】
前記復元手段における丸め処理は、前記丸め処理手段における８種類ある変換処理時の丸め処理に対して、８の補数の関係で対応させることを特徴とする請求項１６又は１７に記載のアダマール変換処理装置。
【請求項１９】
コンピュータに、
入力信号に対してアダマール変換行列による変換処理を行う変換手順と、
前記変換手順で変換された変換データの内、奇数個のデータの各最下位データを切り上げ処理し、残りの奇数個のデータの各最下位データを切り捨て処理して整数化する丸め処理手順と、
を実行させることを特徴とするプログラム。
【請求項２０】
コンピュータに、
入力信号に対してアダマール変換行列による変換処理を行う変換手順と、
前記変換手順で変換された変換データの内、奇数個のデータの各最下位データを切り上げ処理し、残りの奇数個のデータの各最下位データを切り捨て処理して整数化する丸め処理手順とを実行させるプログラムを記憶したことを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【請求項２１】
４つの整数入力データに対してアダマール変換行列に基づく加減算処理を行う加減算手段と、
前記加減算手段による計算結果に所定の値を加算した後、最下位ビットの切り捨てを行なう丸め手段とを有し、
前記所定値は、
２Ｍｉ＋Ｓｉ（ｉ＝０，１，２，３）
ここで、Ｍｉは整数、Ｓｉ＝０又は１、Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３＝１又は３であることを特徴とするアダマール変換装置。
【請求項２２】
４つの整数入力データに対してアダマール変換行列に基づく加減算処理を行う加減算工程と、
前記加減算工程での計算結果に所定の値を加算した後、最下位ビットの切り捨てを行なう丸め工程とを有し、
前記所定値は、
２Ｍｉ＋Ｓｉ（ｉ＝０，１，２，３）
ここで、Ｍｉは整数、Ｓｉ＝０又は１、Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３＝１又は３であることを特徴とするアダマール変換方法。
【請求項２３】
コンピュータに、
４つの整数入力データに対してアダマール変換行列に基づく加減算処理を行う加減算手順と、
前記加減算手順による計算結果に所定の値を加算した後、最下位ビットの切り捨てを行なう丸め手順とを実行させ、
前記所定値は、
２Ｍｉ＋Ｓｉ（ｉ＝０，１，２，３）
ここで、Ｍｉは整数、Ｓｉ＝０又は１、Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３＝１又は３であることを特徴とするプログラム。
【請求項２４】
コンピュータに、
４つの整数入力データに対してアダマール変換行列に基づく加減算処理を行う加減算手順と、
前記加減算手順による計算結果に所定の値を加算した後、最下位ビットの切り捨てを行なう丸め手順とを実行させ、
前記所定値は、
２Ｍｉ＋Ｓｉ（ｉ＝０，１，２，３）
ここで、Ｍｉは整数、Ｓｉ＝０又は１、Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３＝１又は３であることを特徴とするプログラムを記憶したことを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【請求項２５】
コンピュータに、
４点アダマール変換行列によるアダマール変換処理を行う変換処理手順と、
前記変換処理手順による変換結果の出力の内、奇数個の変換出力の最下位を切り上げ処理し、残りの奇数個の変換出力の最下位を切り捨て処理する丸め処理手順と、
前記丸め処理手順により丸められた変換出力を逆アダマール変換処理する逆変換処理手順と、
前記丸め処理手順による丸め処理と同じ丸め処理を前記逆変換処理手順による変換結果に対して行うことにより元のデータを復元する復元手順と、
を実行させることを特徴とするプログラム。
【請求項２６】
コンピュータに、
４点アダマール変換行列によるアダマール変換処理を行う変換処理手順と、
前記変換処理手順による変換結果の出力の内、奇数個の変換出力の最下位を切り上げ処理し、残りの奇数個の変換出力の最下位を切り捨て処理する丸め処理手順と、
前記丸め処理手順により丸められた変換出力を逆アダマール変換処理する逆変換処理手順と、
前記丸め処理手順による丸め処理と同じ丸め処理を前記逆変換処理手順による変換結果に対して行うことにより元のデータを復元する復元手順とを実行させるプログラムを記憶したことを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可逆変換が可能なアダマール変換処理方法及びその装置に関するものである。
【０００２】
【従来の技術】
画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積或は伝送する際には、その膨大なデータ量が問題となる。このため画像の蓄積或は伝送に際しては、その多値画像の持つ冗長性を除いたり、或いは画質の劣化が視覚的に認識し難い程度で、その画像の内容を変更することによって符号化して、そのデータ量を削減する高能率符号化が用いられる。例えば、静止画像の国際標準符号化方法としてＩＳＯとＩＴＵ−Ｔにより勧告されたＪＰＥＧでは、画像データをブロックごと（８画素×８画素）に離散コサイン変換（ＤＣＴ）してＤＣＴ係数に変換した後に、各ＤＣＴ係数をそれぞれ量子化し、更に、その量子化した値をエントロピー符号化することにより画像データを圧縮している。このＤＣＴを利用した圧縮技術には、ＪＰＥＧ以外に、Ｈ２６１，ＭＰＥＧ１／２／４等がある。
【０００３】
このＤＣＴ変換に関連する処理として、或は画像データ変換する処理としてアダマール変換がある。このアダマール変換は、変換行列の各要素が「１」又は「−１」のみからなる直交変換であり、加算と減算のみで実現できる最もシンプルな直交変換である。
【０００４】
このアダマール変換のうち、２点アダマール変換の変換行列Ｈ2は、以下のように定義される。
【０００５】
【数１】
0003754957.tif 000002
【０００６】
0003754957.tif 000003
一般的なＮ（＝２n）点アダマール変換行列ＨNは、（Ｎ／２）点アダマール変換行列ＨN/2と上記２点アダマール変換行列Ｈ2との間のクロネッカー積で再帰的に定義することができる。
【０００７】
【数２】
0003754957.tif 000004
【０００８】
0003754957.tif 000005
上記定義から４点アダマール変換行列を求めると、
【０００９】
【数３】
0003754957.tif 000006
0003754957.tif 000007
となる。この４点アダマール変換行列はナチュラル型と呼ばれるもので、基底ベクトルがシーケンシの順番に並んでいない。そこで、基底ベクトルの置換を繰り返して２行目の基底ベクトルを４行目に移動すると、基底ベクトルの順序がシーケンシ順序の変換行列ＷＨ4となる。
【００１０】
【数４】
0003754957.tif 000008
【００１１】
0003754957.tif 000009
この変換行列ＷＨ4は、ウォルシュ型或はウォルシュアダマール変換行列と呼ばれている。アダマール変換は可逆な直交変換であることが知られており、上記ナチュラル型、ウォルシュ型のいずれも可逆な変換が可能である上、変換行列が対称行列になっている。
【００１２】
ナチュラル型のアダマール変換行列Ｈ4の基底ベクトルを置換して得られる対称行列は、ウォルシュ型以外にもう１つ存在する。次の行列ＨＨ4がそうである。
【００１３】
【数５】
0003754957.tif 000010
【００１４】
0003754957.tif 000011
この変換行列ＨＨ4は、後ほど本発明の詳細な説明において重要な意味を持つ。
【００１５】
前述したように、アダマール変換は可逆変換であると一般的に言われているが、その前提条件は、整数データをアダマール変換した時に発生するの小数部を丸めずに保持することである。
【００１６】
小数部を単純に丸め処理してしまうと可逆性は損なわれてしまう。例えば、
１２３，      ７８，      ８４，      ５６
の４つのデータをアダマール変換すると以下のようになる。
【００１７】
１７０．５(=(123+78+84+56)/2)，  ３６．５(=(123-78+84-56)/2)，  ３０．５，(=(123+78-84-56)/2)    ８．５(=(123-78-84+56)/2)
これらのそれぞれを単純に四捨五入して整数化すると、
１７１，      ３７，      ３１，        ９
となり、これを逆変換（逆変換で用いる行列は変換行列の転置行列であり、これは変換行列と同じである）すると、
１２４，      ７８，      ８４，      ５６
となる。ここでは、先頭データの「１２３」が上述のアダマール変換及びその逆変換により「１２４」になってしまっている。このように、整数化したデータを出力するアダマール変換では可逆性を保証できない。以下では、整数化したデータを出力するアダマール変換を整数型アダマール変換と呼び、可逆変換が可能な整数型アダマール変換を整数型可逆アダマール変換と呼ぶことにする。
【００１８】
本発明は、整数型可逆アダマール変換を実現するための演算と丸め処理の方法に関するものである。
【００１９】
従来、整数型可逆アダマール変換は、以下のように実現していた。
▲１▼４点アダマール変換行列Ｈ4を、対角要素が「１」となる三角行列の積に分解する。
▲２▼元の変換行列に行の入れ替え操作Ｑを加える。
▲３▼上記▲１▼▲２▼から、ＱＨ4を以下の行列積の形に分解する。
【００２０】
【数６】
0003754957.tif 000012
【００２１】
0003754957.tif 000013
▲４▼この変換をシグナルフローで表現する（図１のように表わされる）。
▲５▼このシグナルフロー中の乗算処理で発生する小数点以下のデータを丸めて整数化する。
【００２２】
以上の▲１▼〜▲５▼により実現する。以下に若干の補足説明を加える。
【００２３】
図１のシグナルフローは、可逆変換処理を実現する上でよく用いられる梯子型ネットワーク（Ladder Network）構成になっている。
【００２４】
このLadder Networkにおいて、小数点以下のデータが発生する乗算器１００，１０１の出力側に整数化を図るための丸め処理（図２の２００，２０１）を導入することで、整数型データを出力する変換処理の可逆化が、（可逆変換処理の分野では）一般的な手法として用いられている。
【００２５】
尚、ここで変換処理と逆変換処理の間で対応する乗算出力の丸め処理が同一であれば、丸め処理２００，２０１の内容はなんでもよい。
【００２６】
図１のシグナルフローに丸め処理を導入して可逆化した（可逆変換を可能にした）シグナルフローを図２に示す。これが、整数型可逆アダマール変換を実現する従来の演算方法であった。
【００２７】
上述の数式（３）（４）（５）式で定義されるアダマール変換は、規則的な加減算処理で実現でき、近年のＣＰＵが備えるＳＩＭＤ（Single Instruction stream Multiple Data stream）型の命令で効率よく並列に処理できるものであるが、上記従来の可逆変換演算方法は、ＳＩＭＤ型命令で処理するには複雑で、並列に処理できる演算が少ない。言い換えると、従来の整数型可逆アダマール変換は、広く普及しているパソコン上での高速処理には適していないといえる。
【００２８】
【発明が解決しようとする課題】
このように従来の整数型可逆アダマール変換は、ＳＩＭＤ型命令での処理に適しておらず、広く普及しているパソコン上で高速処理することができない。また、ハードウェアで実現する際には、演算の段数が増えるため、データパスが長くなり演算による遅延時間が大きくなるといった問題点があった。
【００２９】
本発明は上記従来例に鑑みてなされたもので、アダマール変換処理で得られる変換データの内、奇数個のデータの最下位ビットデータを切り上げ、残りの奇数個のデータの最下位ビットデータを切り捨て処理することにより、整数型の可逆アダマール変換処理を実現するアダマール変換処理方法及び装置を提供することを目的とする。
【００３０】
また本発明の目的は、奇数個の変換出力の最下位ビットデータを切り上げ処理し、残りの奇数個の変換出力の最下位ビットデータを切り捨て処理して丸め処理とアダマール変換処理とを同時に行なうことにより、整数型の可逆アダマール変換処理を実現するアダマール変換処理方法及び装置を提供することにある。
【００３１】
また本発明の目的は、簡易な構成で演算遅延の小さな整数型の可逆アダマール変換を行うことができるアダマール変換処理方法及び装置を提供することにある。
【００３２】
【課題を解決するための手段】
上記目的を達成するために本発明のアダマール変換処理装置は以下のような構成を備える。即ち、
アダマール変換手段と、
前記アダマール変換手段の変換出力のうちの奇数個の最下位ビットデータを切り上げ処理し、残りの奇数個の変換出力の最下位ビットデータに対し切り捨て処理を行なう丸め処理手段と、を有することを特徴とする。
【００３３】
上記目的を達成するために本発明のアダマール変換処理装置は以下のような構成を備える。即ち、
４点アダマール変換行列によるアダマール変換処理を行う変換処理手段と、
前記変換処理手段による変換結果の出力の内、奇数個の変換出力の最下位ビットデータを切り上げ処理し、残りの奇数個の変換出力の最下位ビットデータを切り捨て処理する丸め処理手段と、
前記丸め処理手段で丸められた変換出力を逆アダマール変換処理する逆変換処理手段と、
前記丸め処理手段における丸め処理と同じ丸め処理を前記逆変換処理手段の変換結果に対して行うことにより元のデータを復元する復元手段と、
を有することを特徴とする。
【００３４】
上記目的を達成するために本発明のアダマール変換処理方法は以下のような工程を備える。即ち、
入力信号に対してアダマール変換行列による変換処理を行う変換工程と、
前記変換工程で変換された変換データの内、奇数個のデータの各最下位ビットデータを切り上げ処理し、残りの奇数個のデータの各最下位ビットデータを切り捨て処理して整数化する丸め処理工程と、を有することを特徴とする。
【００３５】
上記目的を達成するために本発明のアダマール変換処理方法は以下のような工程を備える。即ち、
４点アダマール変換行列によるアダマール変換処理を行う変換処理工程と、
前記変換処理工程による変換結果の出力の内、奇数個の変換出力の最下位ビットデータを切り上げ処理し、残りの奇数個の変換出力の最下位ビットデータを切り捨て処理する丸め処理工程と、
前記丸め処理工程で丸められた変換出力を逆アダマール変換処理する逆変換処理工程と、
前記丸め処理工程における丸め処理と同じ丸め処理を前記逆変換処理工程の変換結果に対して行うことにより元のデータを復元する復元工程と、を有することを特徴とする。
【００３６】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００３７】
＜実施の形態１＞
図３は、本発明の実施の形態１に係る処理の流れを示すフローチャートである。
【００３８】
同図において、ステップＳ３０１では、固定小数点演算において、４点アダマール変換行列Ｈ4（数式（３））を用いて変換処理を行なう。ここでは、入力データをＸi＝［Ｘ0，Ｘ1，Ｘ2，Ｘ3］とし、Ｄi＝Ｈ4・Ｘiで示す演算が実行される。ステップＳ３０２では、ステップＳ３０１での変換結果のうち、１番目のデータ（Ｄ0）のみを切り上げ処理する。次にステップＳ３０３では、残りの３つの変換結果（Ｄ1，Ｄ2，Ｄ3）をそれぞれ切り捨て処理する。
【００３９】
ステップＳ３０１では、整数型の入力データを加減算して固定小数点の変数に代入することで、４点アダマール変換の固定小数点演算を行なう。ここで小数部は最下位の１ビット（以下、ＬＳＢと称す）のみで、このＬＳＢの重みは「０．５」である。ステップＳ３０２の切り上げ処理では、１番目のデータ（Ｄ0）に「１」を加算した後、１ビット右へシフトする。この加算した「１」は、このＬＳＢの重みと同じ「０．５」と解釈する。そして、１ビットの右シフトは、この加算結果の小数部を切り捨てて整数部のみを残し、整数型のデータへと変換するものである。
【００４０】
ステップＳ３０３の切り捨て処理では、何も加算せずに１ビット右へシフトする。これによりステップＳ３０１の変換結果の小数部を切り捨てて整数部のみを残し、整数型のデータへと変換したことになる。
【００４１】
本実施の形態に係る切り捨て処理と切り上げ処理は、数学上のｆｌｏｏｒ関数演算とｃｅｉｌｉｎｇ関数演算を意味する。前者は入力データを超えない最大の整数値への変換処理であり、後者は入力データ或は入力データより大きな最小の整数値への変換処理である。
【００４２】
別の側面から見ると、切り捨て処理によって値が小さくなることはあっても大きくなることは無く、また切り上げ処理によって値が大きくなることはあっても小さくなることは無い。例えば、「−７．５」を切り捨て処理した結果は「−８」となって小さくなり、切り上げ処理した結果は「−７」となって、元の値よりも大きくなる。
【００４３】
本実施の形態では、逆変換も図３と同じ処理フローとなる。前述の４つのデータ
１２３，  ７８，  ８４，  ５６
に対して、本実施形態の整数型可逆アダマール変換処理を施すと、丸め処理後の変換データは、
１７１(=(123+78+84+56)/2の小数点以下第１位の切り上げ)，  ３６(=(123-78+84-56)/2の小数点以下第１位の切り捨て)，  ３０(=(123+78-84-56)/2の小数点以下第１位の切り捨て)，  ８(=(123-78-84+56)/2の小数点以下第１位の切り捨て)となる。これら変換データに対して、図３と同じ処理フローで逆変換を施す。
【００４４】
１７１，  ３６、  ３０，  ８
に対してアダマール逆変換のみを施すと、１２２．５(=(171+36+30+8)/2)，  ７８．５(=(171-36+30-8)/2)，  ８４．５(=(171+36-30-8)/2)，  ５６．５(=(171-36-30+8)/2)が得られる。ここで、１番目のデータの最下位を切り上げ、残りのデータの最下位を切り捨てることにより、
１２３，  ７８，  ８４，  ５６
となり、元のデータに戻ることが分かる。このような可逆変換が、どうして実現できるのか、その理由を以下に説明する。
【００４５】
図３のステップＳ３０１の固定小数点演算でアダマール変換処理した４つのデータのＬＳＢの値は、４つの値とも同じになることはよく知られている。このＬＳＢの値は、変換前の４つのデータに奇数データが幾つあるかによって一意に決定される。即ち、奇数データが偶数個ある場合は、このＬＳＢの値は「０」になり、奇数データが奇数個ある場合には、このＬＳＢの値は「１」になる。
【００４６】
このＬＳＢの値が「０」の場合、小数部が零になるため、ステップＳ３０１の変換処理の出力で既に整数データになっている。よって、その後のステップＳ３０２，Ｓ３０３における丸め処理で誤差が発生することは無い。この場合は、逆変換処理においても、ステップＳ３０１の変換処理のみで整数データとなり、丸め処理の有無に関係なく元のデータが復元されることになる。
【００４７】
一方、ステップＳ３０１の変換処理において、ＬＳＢの値が「１」である場合（０．５の場合）は整数データへ丸めることにより、「＋０．５」又は「−０．５」の誤差が各データに重畳される。前述の４つのデータを図３のフローで処理すると、１番目の変換データＹ０には「＋０．５」の誤差が重畳し、他の３つのデータＹ１〜Ｙ３には、「−０．５」の誤差が重畳する。
【００４８】
このような誤差が重畳した変換データを図３のフローで逆変換処理すると、丸め処理前の変換データＤ０には「−０．５」、Ｄ１〜Ｄ３には「＋０．５」の誤差が伝搬することになる。この伝搬誤差を打ち消すには、Ｄ０のみを切り上げ、他の３つのデータＤ１〜Ｄ３を切り捨て処理すればよいことが分かる。ステップＳ３０２とステップＳ３０３において、このような処理を施すことにより、元のデータが復元されることになる。
【００４９】
よって、図３の処理フローで整数型可逆アダマール変換処理が可能であるだけでなく、逆変換処理も可能となる。
【００５０】
変換処理と逆変換処理が同じ処理で実現できる場合というのは、１番目の変換データＹ０の丸め処理だけが他の３つの丸め処理と違っている場合だけである。変換データＹ０の丸め処理が他の３つと違っている処理はもう１種類存在する。それは、Ｙ０のみを切り捨て処理し、他の３つを切り上げ処理する場合である。この場合にも、変換処理と逆変換処理とを同じ処理で実現できる。
【００５１】
なお、図３の処理は図４のように変形でき、変換と丸め処理を同時に行なうことができる。
【００５２】
＜実施の形態２＞
本発明の実施の形態２では、変換処理と逆変換処理で丸め処理の内容が異なる場合について説明する。本実施の形態２では、２番目の変換データ（Ｄ１）のみを切り上げ、他の３つの変換データ（Ｄ０，Ｄ２，Ｄ３）を切り捨て処理する。本実施の形態２の変換処理フローを図５に、その逆変換処理フローを図６に示す。
【００５３】
この実施の形態２でも、前述の実施の形態１と同様に、ステップＳ３０１の固定小数点演算において、４つの演算結果のＬＳＢが「１」の場合に可逆性が問題になる。尚、このＬＳＢが「０」の時には丸め処理による誤差が生じないので可逆変換が可能である。
【００５４】
よって、以下ではＬＳＢが「１」の場合についてのみ説明する。
【００５５】
図５に示すフローで処理すると、２番目の変換データＹ１にのみ「＋０．５」の誤差が重畳し、その他の変換データ（Ｙ０，Ｙ２，Ｙ３）には「−０．５」の誤差が重畳する。
【００５６】
これを図６に示すフローに従って逆変換処理すると、まずステップＳ６０１の固定小数点演算の変換処理で、３番目の変換データＥ２だけに「＋０．５」の誤差が伝搬し、他の３つの変換データ（Ｅ０，Ｅ１，Ｅ３）には、「−０．５」の誤差が伝搬する。
【００５７】
よって、ステップＳ６０２にて、変換データＥ０，Ｅ１，Ｅ３のそれぞれの最下位を切り上げ処理し、ステップＳ６０３にて、３番目の変換データＥ２の最下位を切り捨て処理する。これにより、この伝搬誤差を打ち消して変換前の元のデータＲ０〜Ｒ３を得ることが出来る。
【００５８】
＜実施の形態３＞
本発明の実施の形態３では、ナチュラル型でもウォルシュ型でもない、前述のもう１つの変換行列（７）式を用いる。
【００５９】
【数７】
0003754957.tif 000014
【００６０】
0003754957.tif 000015
これは、ナチュラル型の４行目の基底ベクトルを２回置換して２行目に移動したものである。このような変換行列を用いて整数型アダマール変換した変換データを（Ｓ０，Ｓ１，Ｓ２，Ｓ３）とし、可逆変換が可能となる８種類の丸め処理（０型〜７型）を次のように定義する。
【００６１】
３つの変換データを切り上げ処理し、１つのみ切り捨て処理するタイプを０型〜３型に分類し、３つの変換データを切り捨て処理し、１つのみ切り上げ処理するタイプを４型〜７型に分類する。更に詳しく分類すると、１つのみ切り捨て処理する場合、その１つの変換データがＳｉである時それをｉ型とし、１つのみ切り上げ処理する場合、その１つの変換データがＳｊである時、それをｊ＋４型と分類する。
【００６２】
上記のように定義すると、変換時にｉ型で丸め処理した場合、元のデータを復元するための逆変換処理における丸め処理は（ｉの８の補数）型となる。例えば変換時に２型で丸め処理した場合、２の８の補数である６型の丸め処理を用いて逆変換すれば元のデータを復元できる。
【００６３】
これら０型〜７型の各丸め処理に対し、４つの変換出力データに重畳する誤差を図７（ａ）に、逆変換時の伝搬誤差を図７（ｂ）に、該伝搬誤差を打ち消すための逆変換時の丸め処理を図７（ｃ）に示す。
【００６４】
図７（ａ）（ｃ）より、変換時の丸め処理を本実施の形態３の順序で番号付けすると、変換時の丸め処理とそれに対する逆変換の丸め処理は、８の補数の関係になることが分かる。なお、変換行列（７）式以外の変換行列を用いた場合にも、変換時に８種類の丸め処理があり、逆変換時の丸め処理は一意的に定まる処理となる。（しかし、その関係は、上述したような単純な規則とはならない）
＜実施の形態４＞
本発明の実施の形態４は、前述の実施の形態３で示した変換時の丸め処理と逆変換時の丸め処理の対応をハードウェア構成で示したものである。
【００６５】
図８は、本発明の実施の形態４に係るアダマール変換処理ユニット８０１の構成を示すブロック図である。この処理ユニット８０１は、変換処理と逆変換処理の両方で使用される。
【００６６】
図９は、アダマール変換後の丸め処理が、０型〜７型に対応する整数型可逆アダマール変換処理部の構成と、該変換処理部に対応する逆変換処理部の構成を合わせて示す図である。図において、破線９０１の左側が変換処理部による処理を示し、右側が逆変換処理部による処理を示している。
【００６７】
アダマール変換ユニット（ＨＴユニット）８０１の出力の初段にあるユニット群９０３は、「１」を加算する加算ユニットである。ここで加算する「１」の実際の（出力結果に換算した）重みは「０．５」である。２段目のユニット群９０５は、小数点データであるＬＳＢを取り除いて、整数部のみを残すための１ビットシフトユニットである。物理的には小数部は結線せず整数部のみを結線するだけで構成されている。これらユニットの説明は、変換処理部と逆変換処理部の両方に当てはまる。
【００６８】
＜実施の形態５＞
本発明の実施の形態５は、丸め処理の内容を、切り上げ処理と切り捨て処理の２種類に限定せず、より一般化したものである。即ち、丸め処理時に何も加算しないか（あるいは「０」を加算するとも言える）、「１」を加算することに限定せず、それ以外の値を加算することを許したものである。加算値が「０」と「１」以外の場合でも整数型可逆アダマール変換となるような変換処理を図１０に示す。これが、本実施の形態５に係る変換処理である。なお、ここでは変換行列としてウォルシュアダマール変換行列を用いたが、前記３種類の変換行列のいずれでもよい。
【００６９】
図１０の丸め処理用の加算値の計算処理Ｓ１００１において、Ｍｉ（ｉ＝０，１，２，３）は整数、Ｓｉ＝０又は１（ｉ＝０，１，２，３）、且つ、Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３＝１又は３である。この条件により、図８の変換処理Ｓ１００３は整数型可逆アダマール変換処理となる。Ｍｉを「０」に限定したものが、これまでに説明した実施形態である。
【００７０】
同一の丸め処理を用いてまとまったデータを連続して可逆アダマール変換する際、丸め処理の加算値の計算処理のＳ１００１は最初に１回行なうだけでよく、その後、Ｓ１００３のアダマール変換と丸め処理を必要な回数を繰り返し行なう。
【００７１】
＜実施の形態６＞
前記実施形態５は、整数型可逆アダマール変換処理を縦属的に何段も行なう際に有効である。１６個のデータに対して、４個単位で変換処理したデータを転置して、さらに４個単位で変換処理する際に、局所的に集中する丸め誤差を緩和するのに役立つ。図１１にその構成の一例を示す。
【００７２】
同図において、１１０１〜１１０８はアダマール変換ユニット（ＨＴユニット）、この変換ユニットの変換行列は前記３種類のいずれでもよいが、８つとも同一の変換行列を用いる。１１１１は「１」を加算する加算ユニット、１１１３は「−１」を加算する加算ユニット、１１１５は「２」を加算する加算ユニット、１１２１はビットシフトユニットである。
【００７３】
図１１のように構成した場合、後段（右側）の４つのＨＴユニットに着目すると、ＨＴユニット１１０５には、切り上げ処理したデータが集中し、ＨＴユニット１１０６〜１１０８には切り捨て処理したデータが集中する。切り上げ処理したデータには「＋０．５」の丸め誤差が重畳し、切り捨て処理したデータには「−０．５」の丸め誤差が重畳する。
【００７４】
これらのデータをさらにアダマール変換すると変換係数Ｙ０に、それらの誤差が集中する。即ち、ＨＴユニット１１０５の変換係数Ｙ０には、入力データに重畳された誤差が集まり、最大「＋１」となる。それに対し、他の変換係数Ｙ１，Ｙ２，Ｙ３では、誤差が打ち消されて平均的には「０」となる。ＨＴユニット１１０６〜１１０８も同様に、変換係数Ｙ０には、誤差が集まり最小「−１」となり、他の変換係数Ｙ１，Ｙ２，Ｙ３では、誤差が打ち消されて平均的には「０」となる。
【００７５】
ＨＴユニット１１０５における変換係数Ｙ０の出力に重畳する誤差を他の変換係数と同じにする１つの方法は、図１０の変換処理において、Ｍ１＝−１、Ｓ０＝１、その他は全て「０」に設定することに相当する。このように設定すると、変換係数Ｙ０，Ｙ１，Ｙ２，Ｙ３は４つとも、出力変換係数に重畳する誤差が−１〜＋０．５に分布する。
【００７６】
同様に、ＨＴユニット１１０６〜１１０８における変換係数Ｙ０の出力に重畳する誤差を他の変換係数と同じにする１つの方法は、図１０の変換処理においてＭ１＝１、Ｓ１＝Ｓ２＝Ｓ３＝１、その他は全て「０」に設定することに相当する。このように設定すると、変換係数Ｙ０，Ｙ１，Ｙ２，Ｙ３は４つとも、出力変換係数に重畳する誤差が−０．５〜＋１に分布する。
【００７７】
本実施の形態に係る整数型可逆アダマール変換処理方法及びその処理装置は、従来技術でも述べたように、ＤＣＴ変換の一部の処理としても利用することができる。即ち、整数型のデータを出力する可逆変換可能なＤＣＴを実現する際に、アダマール変換処理部を本実施の形態に係る可逆アダマール変換処理方法、或は可逆アダマール変換処理ユニットに置き換えることで、高速処理に適した可逆変換可能なＤＣＴ変換を実現することができる。
【００７８】
以上説明したアダマール変換処理方法とその装置は、１次元の４つのデータに対する処理であったが、この処理を４×４の２次元配列データに対して、水平方向と垂直方向にそれぞれ適用することにより、２次元の変換を行うことが可能になる。そのような２次元データに対する可逆アダマール変換処理方法および処理装置も当然本発明の範疇に含まれるものである。
【００７９】
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システム或は装置に供給し、そのシステム或は装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８２】
以上説明したように本実施の形態によれば、１回の行列演算で４点のアダマール変換処理を行い、その変換処理で得られる４つのデータの内、奇数個のデータの最下位を切り上げ、残りの奇数個のデータの最下位を切り捨て処理する整数化を行なうことにより、整数型の可逆アダマール変換処理および該変換処理に対応して元のデータを復元する逆変換処理を簡易な演算で高速に実現することができるようになった。
【００８３】
更には、奇数個の変換出力の結果を切り上げ処理し、残りの奇数個の変換出力に対し切り捨て処理を行なう丸め処理と、４点アダマール変換行列による変換処理とを同時に行なうことにより、整数型の可逆アダマール変換処理及びその変換処理に対応して元のデータを復元する逆変換処理とを簡易な演算で高速に実現することができるようになった。
【００８４】
また、（バタフライ演算のみで構成した）４点アダマール変換ユニットと、このアダマール変換ユニットの出力の奇数個を切り上げ処理し、残りの奇数個の変換出力に対し切り捨て処理を行なう丸め処理を行なうことにより、簡易な構成で、かつ演算遅延の小さい整数型の可逆アダマール変換処理装置及び変換処理に対応して元のデータを復元する逆変換処理装置を実現することができるようになった。
【００８５】
【発明の効果】
以上説明したように本発明によれば、アダマール変換処理で得られる変換データの内、奇数個のデータの最下位を切り上げ、残りの奇数個のデータの最下位を切り捨て処理することにより、整数型の可逆アダマール変換処理を実現できるという効果がある。
【００８６】
また本発明によれば、奇数個の変換出力の最下位を切り上げ処理し、残りの奇数個の変換出力の最下位を切り捨て処理して丸め処理を行なうことにより、整数型の可逆アダマール変換処理を実現できる。
【００８７】
また本発明によれば、簡易な構成で、演算遅延の小さな整数型の可逆アダマール変換を行うことができるという効果がある。
【図面の簡単な説明】
【図１】従来の整数型可逆アダマール変換処理を実現する基礎となるシグナルフローを説明する図である。
【図２】丸め処理を加えた、従来の整数型可逆アダマール変換処理のシグナルフローを説明する図である。
【図３】本発明の実施の形態１に係る可逆アダマール変換処理の流れを説明するフローチャートである。
【図４】本発明の実施の形態１に係るアダマール変換処理と丸め処理の変形例を示すフローチャートである。
【図５】本発明の実施の形態２に係る可逆アダマール変換の処理の流れを示すフローチャートである。
【図６】本発明の実施の形態２に係る可逆変換処理の逆変換処理の流れを示すフローチャートである。
【図７】本発明の実施の形態３に係る８組の可逆アダマール変換処理の丸め処理で発生する誤差と、各変換処理に対応する逆変換処理で伝搬する誤差と、該逆変換処理の丸め処理で発生する誤差を説明する図である。
【図８】本発明の実施の形態４に係る４点アダマール変換処理ユニットの構成を示すブロック図である。
【図９】本発明の実施の形態４に係る８組の可逆アダマール変換処理部と、各々に対応する逆変換処理部の構成を示すブロック図である。
【図１０】本発明の実施の形態５に係る丸め処理加算値の計算処理とアダマール変換と丸め処理の流れを示すフローチャートである。
【図１１】本発明の実施の形態６に係る１６個のデータに対する可逆アダマール変換処理部の構成を示すブロック図である。
【図１】
0003754957.tif 000016
【図２】
0003754957.tif 000017
【図３】
0003754957.tif 000018
【図４】
0003754957.tif 000019
【図５】
0003754957.tif 000020
【図６】
0003754957.tif 000021
【図７】
0003754957.tif 000022
【図８】
0003754957.tif 000023
【図９】
0003754957.tif 000024
【図１０】
0003754957.tif 000025
【図１１】
0003754957.tif 000026