(57)【特許請求の範囲】
【請求項１】
入力されるデータである入力データを処理するとともに、処理された前記入力データを出力データとして出力するデータ処理装置であって、
前記入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより前記出力データを出力するデータ処理手段と、
時系列に入力される前記入力データを所定数のみ記憶する入力データ記憶手段と、
前記入力データ記憶手段に記憶された前記所定数の前記入力データの分散、および、前記所定数の前記入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される前記入力データを評価する入力データ評価手段と、
前記出力データを評価する出力データ評価手段と、
前記入力データ評価手段による現在の前記入力データの評価結果および前記出力データ評価手段による前記１サンプル前の出力データの評価結果に応じて、前記所定の重み係数を求めるための重み係数を実時間で学習する重み演算手段と
を有する実時間学習手段と
を備え、
前記データ処理手段は、前記実時間学習手段により学習された重み係数より求められた前記所定の重み係数により、前記入力データと、前記１サンプル前の出力データとを重み付け加算することにより、前記出力データを出力する
ことを特徴とするデータ処理装置。
【請求項２】
前記入力データ評価手段は、前記分散および前記誤差に基づいて、現在入力される前記入力データを評価する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記出力データ評価手段は、前記入力データの評価と、１サンプル前の前記出力データの評価との加算値に基づいて、現在の前記出力データを評価する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
入力されるデータである入力データを処理するとともに、処理された前記入力データを出力データとして出力するデータ処理方法であって、
前記入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより前記出力データを出力するデータ処理ステップと、
時系列に入力される前記入力データを所定数のみ記憶する入力データ記憶ステップと、
前記入力データ記憶ステップにより記憶された前記所定数の前記入力データの分散、および、前記所定数の前記入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される前記入力データを評価する入力データ評価ステップと、
前記出力データを評価する出力データ評価ステップと、
前記入力データ評価ステップによる現在の前記入力データの評価結果および前記出力データ評価ステップによる前記１サンプル前の出力データの評価結果に応じて、前記所定の重み係数を求めるための重み係数を実時間で学習する重み演算ステップと
を有する実時間学習ステップと
を含み、
前記データ処理ステップは、前記実時間学習ステップにより学習された重み係数より求められた前記所定の重み係数により、前記入力データと、前記１サンプル前の出力データとを重み付け加算することにより、前記出力データを出力する
ことを特徴とするデータ処理方法。
【請求項５】
前記入力データ評価ステップは、前記分散および前記誤差に基づいて、現在入力される前記入力データを評価する
ことを特徴とする請求項４に記載のデータ処理方法。
【請求項６】
前記出力データ評価ステップは、前記入力データの評価と、１サンプル前の前記出力データの評価との加算値に基づいて、現在の前記出力データを評価する
ことを特徴とする請求項４に記載のデータ処理方法。
【請求項７】
入力されるデータである入力データを処理するとともに、処理された前記入力データを出力データとして出力するデータ処理用のプログラムであって、
前記入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより前記出力データを出力するデータ処理ステップと、
時系列に入力される前記入力データを所定数のみ記憶する入力データ記憶ステップと、
前記入力データ記憶ステップにより記憶された前記所定数の前記入力データの分散、および、前記所定数の前記入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される前記入力データを評価する入力データ評価ステップと、
前記出力データを評価する出力データ評価ステップと、
前記入力データ評価ステップによる現在の前記入力データの評価結果および前記出力データ評価ステップによる前記１サンプル前の出力データの評価結果に応じて、前記所定の重み係数を求めるための重み係数を実時間で学習する重み演算ステップと
を有する実時間学習ステップと
を含み、
前記データ処理ステップは、前記実時間学習ステップにより学習された重み係数より求められた前記所定の重み係数により、前記入力データと、前記１サンプル前の出力データとを重み付け加算することにより、前記出力データを出力する
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びに記録媒体に関し、特に、例えば、データに含まれるノイズの除去を、より効果的に行うことができるようにするデータ処理装置およびデータ処理方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
例えば、伝送や再生等された画像データや音声データなどのデータには、一般に、時間的に変動するノイズが含まれているが、データに含まれるノイズを除去する方法としては、従来より、入力データ全体の平均（以下、適宜、全平均という）や、入力データの局所的な平均である移動平均を求めるものなどが知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、全平均を計算する方法は、データに含まれるノイズの度合い、即ち、データのＳ／Ｎ（Signal/Noise）が一定である場合は有効であるが、データのＳ／Ｎが変動する場合には、Ｓ／Ｎの悪いデータが、Ｓ／Ｎの良いデータに影響し、効果的にノイズを除去することが困難となることがある。
【０００４】
また、移動平均を計算する方法では、入力されたデータから時間的に近い位置にあるデータの平均が求められるため、その処理結果は、データのＳ／Ｎの変動の影響を受ける。即ち、データのＳ／Ｎの良い部分については、処理結果のＳ／Ｎも良くなるが、Ｓ／Ｎの悪い部分については、処理結果のＳ／Ｎも悪くなる。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、データに含まれるノイズの度合いが一定の場合だけでなく、時間的に変動する場合であっても、そのノイズを、効果的に除去することができるようにするものである。
【０００６】
【課題を解決するための手段】
本発明のデータ処理装置は、入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより出力データを出力するデータ処理手段と、時系列に入力される入力データを所定数のみ記憶する入力データ記憶手段と、入力データ記憶手段に記憶された所定数の入力データの分散、および、所定数の入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される入力データを評価する入力データ評価手段と、出力データを評価する出力データ評価手段と、入力データ評価手段による現在の入力データの評価結果および出力データ評価手段による１サンプル前の出力データの評価結果に応じて、所定の重み係数を求めるための重み係数を実時間で学習する重み演算手段とを有する実時間学習手段とを備え、データ処理手段は、実時間学習手段により学習された重み係数より求められた所定の重み係数により、入力データと、１サンプル前の出力データとを重み付け加算することにより、出力データを出力することを特徴とする。
【０００７】
本発明のデータ処理方法は、入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより出力データを出力するデータ処理ステップと、時系列に入力される入力データを所定数のみ記憶する入力データ記憶ステップと、入力データ記憶ステップにより記憶された所定数の入力データの分散、および、所定数の入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される入力データを評価する入力データ評価ステップと、出力データを評価する出力データ評価ステップと、入力データ評価ステップによる現在の入力データの評価結果および出力データ評価ステップによる１サンプル前の出力データの評価結果に応じて、所定の重み係数を求めるための重み係数を実時間で学習する重み演算ステップとを有する実時間学習ステップとを含み、データ処理ステップは、実時間学習ステップにより学習された重み係数より求められた所定の重み係数により、入力データと、１サンプル前の出力データとを重み付け加算することにより、出力データを出力することを特徴とする。
【０００８】
本発明のデータ処理装置においては、データ処理手段は、入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより出力データを出力するようになされている。実時間学習手段では、入力データ記憶手段は、時系列に入力される入力データを所定数のみ記憶するようになされ、入力データ評価手段は、入力データ記憶手段に記憶された所定数の入力データの分散、および、所定数の入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される入力データを評価するようになされ、出力データ評価手段は、出力データを評価するようになされ、重み演算手段は、入力データ評価手段による現在の入力データの評価結果および出力データ評価手段による１サンプル前の出力データの評価結果に応じて、所定の重み係数を求めるための重み係数を実時間で学習するようになされている。また、データ処理手段は、実時間学習手段により学習された重み係数より求められた所定の重み係数により、入力データと、１サンプル前の出力データとを重み付け加算することにより、出力データを出力するようになされている。
【０００９】
本発明のデータ処理方法においては、入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより出力データが出力され、時系列に入力される入力データを所定数のみが記憶され、記憶された所定数の入力データの分散、および、所定数の入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される入力データが評価され、出力データが評価され、入力データ評価ステップによる現在の入力データの評価結果および出力データ評価ステップによる１サンプル前の出力データの評価結果に応じて、所定の重み係数を求めるための重み係数が実時間で学習され、学習された重み係数より求められた所定の重み係数により、入力データと、１サンプル前の出力データとが重み付け加算され、力データが出力される。
【００１０】
【発明の実施の形態】
以下に、本発明の実施の形態を説明するが、その前に、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し、一例）を付加して、本発明の特徴を記述すると、次のようになる。
【００１１】
即ち、請求項１に記載のデータ処理装置は、入力データと、１サンプル前の出力データとを所定の重み係数で重み付け加算することにより出力データを出力するデータ処理手段（例えば、図７に示す重み付け部２１，２３、演算器２４など）と、時系列に入力される入力データを所定数のみ記憶する入力データ記憶手段（例えば、図７に示すラッチ回路１１など）と、入力データ記憶手段に記憶された所定数の入力データの分散、および、所定数の入力データの平均値に対する各データの誤差のうちの少なくともいずれか一方に基づいて、現在入力される入力データを評価する入力データ評価手段（例えば、図７に示す入力信頼度計算部１２など）と、出力データを評価する出力データ評価手段（例えば、図７に示す出力信頼度計算部１３など）と、入力データ評価手段による現在の入力データの評価結果および出力データ評価手段による１サンプル前の出力データの評価結果に応じて、所定の重み係数を求めるための重み係数を実時間で学習する重み演算手段（例えば、図７に示す重み計算部１５）とを有する実時間学習手段（例えば、図７に示す実時間学習部１など）とを備え、データ処理手段は、実時間学習手段により学習された重み係数より求められた所定の重み係数により、入力データと、１サンプル前の出力データとを重み付け加算することにより、出力データを出力することを特徴とする。
【００１４】
なお、勿論この記載は、各手段を上記したものに限定することを意味するものではない。
【００１５】
図１は、本発明を適用した自己適応処理回路の一実施の形態の構成例を示している。
【００１６】
この自己適応処理回路においては、処理対象の入力信号（ここでは、例えば、ディジタルデータとする）である処理用入力信号に対して最適な処理方式による処理が施され、その結果得られる出力信号が出力されるようになされている。
【００１７】
即ち、自己適応処理回路は、実時間学習部１と、信号処理部２とから構成されている。
【００１８】
実時間学習部１には、処理用入力信号を処理する処理方式の学習に用いられる学習用入力信号が供給されるようになされており、実時間学習部１は、その学習用入力信号に基づき、処理用入力信号が適応的に処理されることにより、出力信号が時間の経過とともに改善されるように、処理方式を、実時間で学習し、その学習の結果得られた処理方式で処理を行うように、信号処理部２を制御する。
【００１９】
信号処理部２では、実時間学習部１から指示された処理方式によって、処理用入力信号が適応的に処理され、その処理の結果得られる出力信号が出力される。
【００２０】
従って、信号処理部２では、上述したような実時間学習された処理方式で、処理用入力信号が処理されるので、その処理用入力信号に対して、適応的に処理が施され、これにより、その出力信号は時間の経過とともに改善される。
【００２１】
即ち、信号処理部２が、処理用入力信号を処理する処理方式は、実時間学習部１における実時間学習によって改善されていく。信号処理部２は、実時間学習部１から指示される処理方式によって、処理用入力信号が適応的に処理され、時間の経過（処理用入力信号の処理量）に伴い、いわば学習の効果が徐々に現れ、信号処理部２が出力する出力信号は、時間の経過とともに改善されていく（これは、信号処理部２の処理方式が、時間の経過とともに改善されていっているということもできる）。
【００２２】
以上のように、自己適応処理回路では、処理用入力信号が適応的に処理されることにより、出力信号が時間の経過とともに改善されるように、処理方式が、実時間で学習され、その学習の結果得られた処理方式で処理が行われる結果、処理用入力信号には、それ自身（自己）に適した処理が施される。このことから、図１の自己適応処理回路が行う処理は、自己適応処理ということができる。
【００２３】
ここで、出力信号の改善とは、例えば、処理用入力信号が画像であれば、その画質が向上すること等、具体的には、例えば、Ｓ／Ｎや解像度が向上することなどを意味する。また、信号処理部２における処理の目的が、スムージングやエッジ強調であれば、その効果が顕著に現れることを意味する。従って、出力信号の改善とは、ユーザが希望する状態の出力信号とすることを意味する。
【００２４】
なお、実時間学習部１においては、そこに入力される学習用入力信号に基づいて、処理用入力信号を処理する処理方式の実時間学習が行われるが、学習用入力信号としては、図１において点線で示すように、信号処理部２に入力される処理用入力信号や、信号処理部２から出力される出力信号、さらには、自己適応処理回路に対して、処理用入力信号の処理方式の学習を行うために供給される補助入力信号などを用いることが可能である。また、学習用入力信号としては、上述の信号のうちの２以上を用いることもできる。
【００２５】
次に、自己適応処理回路において、信号処理部２の処理方式は、実時間学習部１が実時間学習することで時々刻々改善されることになるが（従って、自己適応処理回路は、いわば時変システムである）、処理方式の改善は、大きく、処理のアルゴリズムが変更される場合と、一連の処理を構成する処理ステップ（処理の構成要素）の内容が変更される場合とに分けることができる。
【００２６】
即ち、例えば、いま、処理用入力信号をｘと、出力信号をｙと表すと、信号処理部２における処理は、関数ｆ（）を用いて、式ｙ＝ｆ（ｘ）と表すことができる。
【００２７】
例えば、ｆ（ｘ）＝ａ0ｘ2＋ｂ0ｘ＋ｃ0とした場合、信号処理部２の処理は、例えば、図２（Ａ）に示すようなフローチャートで表すことができる。
【００２８】
即ち、ステップＳ１において、ａ0ｘ2が計算され、ステップＳ２に進み、ｂ0ｘが計算される。そして、ステップＳ３において、ａ0ｘ2＋ｂ0ｘ＋ｃ0が計算され、これにより、出力信号ｙが求められる。
【００２９】
この場合において、関数ｆ（ｘ）の、いわば形を変更するのが、処理のアルゴリズムの変更に相当する。即ち、例えば、関数ｆ（ｘ）＝ａ0ｘ2＋ｂ0ｘ＋ｃ0を、ｆ（ｘ）＝（ａ0ｘ2＋ｂ0ｘ＋ｃ0）2などに変更するのが、処理のアルゴリズムの変更に相当する。
【００３０】
この場合、信号処理部２の処理は、例えば、図２（Ｂ）に示すようなフローチャートで表すことができる。
【００３１】
即ち、ステップＳ１乃至Ｓ３それぞれにおいて、図２（Ａ）における場合と同様の処理が行われ、ステップＳ４に進み、（ａ0ｘ2＋ｂ0ｘ＋ｃ0）2が計算され、これにより、出力信号ｙが求められる。
【００３２】
図２（Ａ）のフローチャートと、図２（Ｂ）のフローチャートとを比較して分かるように、処理のアルゴリズムが変更された場合には、その処理を表現するフローチャートも変更されることになる。
【００３３】
また、関数ｆ（ｘ）における係数を変更するのが、処理を構成する構成要素の内容の変更に相当する。即ち、例えば、関数ｆ（ｘ）＝ａ0ｘ2＋ｂ0ｘ＋ｃ0を、ｆ（ｘ）＝ａ1ｘ2＋ｂ1ｘ＋ｃ1に変更するのが、処理の構成要素の内容の変更に相当する。
【００３４】
この場合、信号処理部２の処理は、図２（Ａ）と同様の図３（Ａ）のフローチャートで表されるものから、例えば、図３（Ｂ）のフローチャートで表されるものに変更される。
【００３５】
即ち、この場合、ステップＳ１において、ａ1ｘ2が計算され、ステップＳ２に進み、ｂ1ｘが計算される。そして、ステップＳ３において、ａ1ｘ2＋ｂ1ｘ＋ｃ1が計算され、これにより、出力信号ｙが求められる。
【００３６】
図３（Ａ）のフローチャートと、図３（Ｂ）のフローチャートとを比較して分かるように、関数ｆ（ｘ）における係数が変更された場合には、処理を構成する処理ステップの内容が変更される（図３では、ステップＳ１は、ａ0ｘ2の計算からａ1ｘ2の計算に、ステップＳ２は、ｂ0ｘの計算からｂ1ｘの計算に、ステップＳ３は、ａ0ｘ2＋ｂ0ｘ＋ｃ0の計算からａ1ｘ2＋ｂ1ｘ＋ｃ1の計算に、それぞれ変更されている）。
【００３７】
なお、処理方式の改善は、処理のアルゴリズムの変更と、処理の構成要素の内容の変更との両方により行われる場合もある。
【００３８】
また、図２および図３の説明に用いた関数は、処理方式の改善を説明するためだけに用いた例であり、信号処理部２における処理を表す関数が、図２や図３で説明したように変更された場合に、実際に、出力信号が改善されるかどうかといった問題とは無関係である。
【００３９】
ここで、自己適応処理回路では、関数ｆ（ｘ）における係数の変更が、実時間学習により、いわば新たに生成された適応的な係数に基づいて行われる点で、従来における、例えば、ディジタルフィルタなどとは異なる。即ち、従来のディジタルフィルタでは、そのタップ係数を、入力データなどに基づいて変更する場合があるが、変更されるタップ係数は、あらかじめ用意されたものであり、実時間学習により生成されたものではない。言い換えれば、従来のディジタルフィルタでは、あらかじめ用意されたタップ係数の中で、入力データに適しているとシステムの設計者が考えたものが選択されるだけであり、入力データに対して、適応的なタップ係数が求められるわけではない。その結果、入力データに対してより適したタップ係数があっても、あらかじめ用意されていなければ用いることができない。従って、上述のような従来のディジタルフィルタ等は、「適応的」にタップ係数を変更するシステム等と呼ばれることがあるが、正確には、「適応的」でははく、「選択的」なだけである。即ち、入力データに対して適応的なタップ係数が生成されるのではなく、入力データに対して一意的に選択されるタップ係数が用いられるシステムである。
【００４０】
これに対して、自己適応処理回路では、入力データが適応的に処理されるようなタップ係数が、実時間学習により生成される結果、入力データに対して真に最適なタップ係数を用いることができる。より具体的には、例えば、従来のディジタルフィルタでは、例えば、２セットのタップ係数が、あらかじめ用意されている場合には、その２セットのタップ係数のうちの、入力データに対して適しているとシステムの設計者が考えるものが一意的に選択されて用いられることになるが、自己適応処理回路では、入力データを処理するためのタップ係数が、実時間学習により時々刻々と改善されていくことで、入力データに対してより適したタップ係数が求められ、そのようなタップ係数を用いて、処理（従って、入力データに対して適応的な処理）が行われることになる。
【００４１】
さらに、自己適応処理回路では、出力データが時々刻々と改善されていく点で、入力データに対して適応的な処理を施すが、出力データが改善されることがない従来の、例えば、ＡＤＲＣ（Adaptive Dynamic Range Coding）処理などとは異なる。即ち、ＡＤＲＣ処理においては、例えば、画像のあるブロックについて、そのブロックを構成する画素の画素値の最大値ＭＡＸと最小値ＭＩＮが検出される。そして、ＤＲ＝ＭＡＸ−ＭＩＮを、ブロックの局所的なダイナミックレンジとし、このダイナミックレンジＤＲに基づいて、ブロックを構成する画素の画素値がＫビットに再量子化される。具体的には、ブロック内の各画素値から、最小値ＭＩＮが減算され、その減算値がＤＲ／２Kで除算（量子化）される。従って、画素値の量子化ステップＤＲ／２Kが、ブロックのダイナミックレンジＤＲに基づいて求められ、その量子化ステップＤＲ／２Kで、画素値が量子化される点では、入力データに対して適応的な処理が施されているが、その量子化結果としての出力データは時々刻々と改善されていくといった性質のものではない。
【００４２】
次に、実時間学習部１では、例えば、現在時刻をｔとするとき、その現在時刻ｔにおける実時間学習において、出力信号を時間の経過とともに改善するために、基本的に、いままでの学習用入力信号のサンプル値すべてを考慮するが、現在時刻ｔと時間的に近い位置のサンプル値に重みをおき、遠い位置のサンプル値はあまり考慮しない方が、出力信号が効果的に改善されることがある。従って、実時間学習部１では、学習用入力信号に対して、そのような重み付けをして、即ち、現在時刻ｔから時間的に離れた学習用入力信号のサンプル値を、その離れ具合に対応した割合で忘却するようにして、実時間学習を行うことが可能である。極端には、現在時刻ｔから、所定の時間的範囲内にある学習用入力信号のみを用いるようにすることが可能である。即ち、例えば、図４に示すように、現在時刻ｔから±４サンプルの範囲にある学習用入力信号のみを、現在時刻ｔにおける実時間学習において用いるようにすることが可能である。これは、現在時刻ｔから５サンプル以上離れている学習用入力信号に対する重みを０とすることで行うことが可能である。
【００４３】
また、現在時刻ｔにおける実時間学習では、その現在時刻ｔにおける学習用入力信号のサンプル値から所定の範囲内にあるサンプル値だけを用いるようにすることも可能である。即ち、例えば、図４において、時刻ｔ−２における学習用信号のサンプル値は、現在時刻ｔにおける学習用入力信号のサンプル値とは大きく異なっているが、このようなサンプル値は、学習に悪影響を与えることがある。そこで、現在時刻ｔにおける学習用入力信号のサンプル値とは大きく異なっているサンプル値は、その現在時刻ｔにおける実時間学習においては用いないようにすることが可能である。
【００４４】
次に、図５は、図１の自己適応処理回路を適用したＮＲ（Noise Reduction）処理回路の一実施の形態の構成例を示している。
【００４５】
このＮＲ処理回路においては、そこにノイズを有する入力データが入力されると、入力データに対して自己適応処理が施されることにより、入力データからノイズを効果的に除去した出力データが出力されるようになされている。
【００４６】
即ち、例えば、いま、説明を簡単にするために、図６（Ａ）に示すような、真値が一定で、かつ時間的に変動するノイズが重畳された入力データについて、その平均をとることで、時間的に変動するノイズを除去することを考えると、ノイズの度合いとしての、例えば、ノイズのレベルが大きい入力データ（従って、Ｓ／Ｎの悪いデータ）については、その重みを小さくし（あまり考慮しないようにする）、ノイズのレベルの小さい入力データ（従って、Ｓ／Ｎの良いデータ）については、その重みを大きくすることにより、ノイズを効果的に除去することができる。
【００４７】
そこで、ＮＲ処理回路では、入力データの評価値として、例えば、図６（Ｂ）に示すような、入力データの、真値に対する近さ、即ち、入力データが真値であることの信頼性を表す信頼度を実時間学習により求め、その信頼度に対応した重み付けを入力データに対して行いながら、その平均を計算することで、ノイズを効果的に除去するようになっている。
【００４８】
従って、ＮＲ処理回路では、入力データについて、その信頼度に対応した重みを用いた重み付け平均が求められ、出力データとして出力されるが、いま、時刻ｔにおける入力データ、出力データ、入力データの信頼度を、それぞれｘ（ｔ），ｙ（ｔ），αx(t)と表すと、次式にしたがって、出力データｙ（ｔ）が求められることになる。
【００４９】
【数１】
0004147647.tif 000002
・・・（１）
なお、ここでは、入力データの信頼度αx(t)が大きいほど、大きな重みを与えることとしている。
【００５０】
式（１）から、現在時刻ｔから１サンプル前の出力データｙ（ｔ−１）は、次式で求められる。
【００５１】
【数２】
0004147647.tif 000003
・・・（２）
【００５２】
また、出力データｙ（ｔ）についても、その出力データｙ（ｔ）の評価値として、真値に対する近さ、即ち、出力データｙ（ｔ）が真値であることの信頼性を表す信頼度αy(t)を導入し、現在時刻ｔから１サンプル前の出力データｙ（ｔ−１）の信頼度αy(t-1)を、次式で定義する。
【００５３】
【数３】
0004147647.tif 000004
・・・（３）
【００５４】
この場合、式（１）乃至（３）から、出力データｙ（ｔ）およびその信頼度αy(t)は、次のように表すことができる。
【００５５】
【数４】
0004147647.tif 000005
・・・（４）
【００５６】
また、時刻ｔにおいて、出力データｙ（ｔ）を求めるのに用いる重みを、ｗ（ｔ）と表し、これを、次式で定義する。
【００５７】
ｗ（ｔ）＝αy(t-1)／（αy(t-1)＋αx(t)）
・・・（５）
【００５８】
式（５）から、次式が成り立つ。
【００５９】
１−ｗ（ｔ）＝αx(t)／（αy(t-1)＋αx(t)）
・・・（６）
【００６０】
式（５）および（６）を用いると、式（４）における出力データｙ（ｔ）は、次のような乗算と加算による重み付け平均によって表すことができる。
【００６１】
ｙ（ｔ）＝ｗ（ｔ）ｙ（ｔ−１）＋（１−ｗ（ｔ））ｘ（ｔ）・・・（７）
【００６２】
なお、式（７）で用いる重みｗ（ｔ）（および１−ｗ（ｔ））は、式（５）から、１サンプル前の出力データｙ（ｔ−１）の信頼度αy(t-1)と、現在の入力データｘ（ｔ）の信頼度αx(t)とから求めることができる。また、式（４）における現在の出力データｙ（ｔ）の信頼度αy(t)も、その１サンプル前の出力データｙ（ｔ−１）の信頼度αy(t-1)と、現在の入力データｘ（ｔ）の信頼度αx(t)とから求めることができる。
【００６３】
ここで、入力データｘ（ｔ）の信頼度αx(t)、または出力データｙ（ｔ）の信頼度αy(t)として、それぞれの分散σx(t)2、またはσy(t)2の逆数を用いることとすると、即ち、信頼度αx(t)，信頼度αy(t)を、式
αx(t)＝１／σx(t)2
αy(t)＝１／σy(t)2・・・（８）
とおくと、式（７）における重みｗ（ｔ）は、次式で求めることができる。
【００６４】
ｗ（ｔ）＝σx(t)2／（σy(t-1)2＋σx(t)2）・・・（９）
【００６５】
この場合、式（７）における１−ｗ（ｔ）は、次式で求めることができる。
【００６６】
ｗ（ｔ）＝σy(t-1)2／（σy(t-1)2＋σx(t)2）・・・（１０）
【００６７】
また、σy(t)2は、次式で求めることができる。
【００６８】
σy(t)2＝ｗ（ｔ）2σy(t-1)2＋（１−ｗ（ｔ））2σx(t)2・・・（１１）
【００６９】
図５のＮＲ処理回路は、入力データｘ（ｔ）および出力データｙ（ｔ）を学習用入力信号として、式（５）にしたがい、重みｗ（ｔ）を実時間学習（および式（６）にしたがって１−ｗ（ｔ）を実時間学習）し、その結果得られる重みｗ（ｔ）を用いて、式（７）にしたがい、１サンプル前の出力データｙ（ｔ−１）と、現在の入力データｘ（ｔ）との重み付け平均を計算することで、入力データｘ（ｔ）を適応的に処理し、その入力データｘ（ｔ）に含まれるノイズを効果的に除去するようになされている。即ち、これにより、ＮＲ処理回路が出力する出力データｙ（ｔ）のＳ／Ｎは、時間の経過とともに改善されていくようになされている。
【００７０】
図７は、そのようなＮＲ処理回路の構成例を示している。
【００７１】
ラッチ回路１１1には、入力データが供給されるようになされており、ラッチ回路１１1は、そこに供給される入力データを、例えば、その入力データが供給されるタイミングに同期してラッチ（記憶）し、その後段のラッチ回路１１2および入力信頼度計算部１２に供給するようになされている。ラッチ回路１１2またはラッチ回路１１3それぞれは、ラッチ回路１１1と同様に、その前段のラッチ回路１１1または１１2が出力する入力データをラッチし、その後段のラッチ回路１１3または１１4と、入力信頼度計算部１２に供給するようになされている。ラッチ回路１１4は、その前段のラッチ回路１１3が出力する入力データをラッチし、入力信頼度計算部１２に供給するようになされている。
【００７２】
入力信頼度計算部１２には、ラッチ回路１１1乃至１１4でラッチされた入力データが供給される他、ラッチ回路１１1に供給されるのと同一の入力データが供給されるようになされている。従って、いま、ラッチ回路１１1および入力信頼度計算部１２に、入力データｘ（ｔ）が供給されたとすると、入力信頼度計算部１２には、さらに、ラッチ回路１１1乃至１１4それぞれでラッチされた入力データｘ（ｔ−１）乃至ｘ（ｔ−４）も供給されるようになされている。そして、入力信頼度計算部１２は、入力データｘ（ｔ）乃至ｘ（ｔ−４）から、例えば、その分散を計算し、その分散の逆数を、入力データｘ（ｔ）の信頼度（以下、適宜、入力信頼度という）αx(t)として、出力信頼度計算部１３および重み計算部１５に供給するようになされている。
【００７３】
出力信頼度計算部１３は、入力信頼度計算部１２からの入力信頼度αx(t)と、ラッチ回路１４の出力とから、式（４）にしたがって、出力データｙ（ｔ）の信頼度（以下、適宜、出力信頼度という）αy(t)を求め、ラッチ回路１４に出力するようになされている。
【００７４】
ラッチ回路１４は、出力信頼度計算部１３からの出力信頼度αy(t)を、例えば、入力データｘ（ｔ）に同期してラッチし、出力信頼度計算部１３および重み計算部１５に供給するようになされている。従って、ラッチ回路１４から、出力信頼度計算部１３および重み計算部１５には、１サンプル前の出力信頼度αy(t-1)が供給されるようになされている。
【００７５】
重み計算部１５は、入力信頼度計算部１２からの入力信頼度αx(t)、およびラッチ回路１４からの出力信頼度αy(t-1)を用い、式（５）にしたがって、重みｗ（ｔ）を求め、重み付け部２１および演算器２２に出力するようになされている。
【００７６】
ここで、以上のラッチ回路１１1乃至１１4、入力信頼度計算部１２、出力信頼度計算部１３、ラッチ回路１４、および重み計算部１５が、図１の実時間学習部１に相当する。
【００７７】
重み付け部２１は、重み付け計算部１５からの重みｗ（ｔ）を、ラッチ回路２５の出力に乗算し、その乗算結果を、演算器２４に供給するようになされている。演算器２２は、重み付け計算部１５からの重みｗ（ｔ）を１から減算し、その減算値１−ｗ（ｔ）を、重み付け部２３に供給するようになされている。重み付け部２３には、演算器２２の出力の他、入力データｘ（ｔ）が供給されるようになされており、重み付け部２３は、演算器２２の出力と、入力データｘ（ｔ）とを乗算し、その乗算結果を、演算器２４に供給するようになされている。演算器２４は、重み付け部２１と２３の出力どうしを加算し、その加算結果を、出力データｙ（ｔ）として出力するとともに、ラッチ回路２５に供給するようになされている。ラッチ回路２５は、演算器２４からの出力データを、例えば、入力データｘ（ｔ）に同期してラッチし、重み付け部２１に供給するようになされている。
【００７８】
ここで、以上の重み付け部２１、演算器２２、重み付け部２３、演算器２４、およびラッチ回路２５が、図１の信号処理部２に相当し、式（７）にしたがった重み付け平均を計算して、出力データｙ（ｔ）として出力するようになされている。
【００７９】
次に、図８は、図７の入力信頼度計算部１２の構成例を示している。
【００８０】
上述したように、入力信頼度計算部１２には、現在の入力データｘ（ｔ）の他、その４サンプル前までの入力データｘ（ｔ−１）乃至ｘ（ｔ−４）が入力されるようになされており、入力信頼度計算部１２では、図９に示すように、その５サンプルの入力データｘ（ｔ）乃至ｘ（ｔ−４）についての分散が求められ、その逆数が、入力信頼度αx(t)として出力されるようになされている。
【００８１】
即ち、入力データｘ（ｔ）乃至ｘ（ｔ−４）は、平均値計算回路３１および分散計算回路３２に供給されるようになされている。平均値計算部３１は、次式にしたがって、５サンプルの入力データｘ（ｔ）乃至ｘ（ｔ−４）の平均値ｍ（ｔ）を計算し、分散計算回路３２に供給する。
【００８２】
【数５】
0004147647.tif 000006
・・・（１２）
なお、図８の実施の形態においては、式（１２）におけるＮは、５である。
【００８３】
分散計算回路３２は、そこに入力される入力データｘ（ｔ）乃至ｘ（ｔ−４）、および平均値計算回路３１からの平均値ｍ（ｔ）を用い、式（１３）にしたがって、分散σx(t)を計算し、逆数計算回路３３に出力する。
【００８４】
【数６】
0004147647.tif 000007
・・・（１３）
なお、式（１２）における場合と同様に、図８の実施の形態では、式（１３）におけるＮも、５である。
【００８５】
逆数計算回路３３は、次式に示すように、分散計算回路３２からの分散σx(t)の逆数を求め、それを、入力信頼度αx(t)として出力する。
【００８６】
【数７】
0004147647.tif 000008
・・・（１４）
【００８７】
次に、図１０は、図７の出力信頼度計算部１３の構成例を示している。
【００８８】
同図に示すように、出力信頼度計算部１３は、演算器４１から構成されており、演算器４１には、入力信頼度計算部１２からの現在の入力信頼度αx(t)と、ラッチ回路１４からの１サンプル前の出力信頼度αy(t-1)が供給されるようになされている。そして、演算器４１は、式（４）にしたがい、入力信頼度αx(t)と出力信頼度αy(t-1)とを加算し、その加算値を、現在の出力信頼度αy(t)として出力する。
【００８９】
次に、図１１および図１２を参照して、図７のＮＲ処理回路の動作について説明する。
【００９０】
ＮＲ処理回路では、図１１（Ａ）に示すように、現在の入力データｘ（ｔ）に、その４サンプル前までの入力データｘ（ｔ−１）乃至ｘ（ｔ−４）を加えた５サンプルを用いて、その分散σx(t)2が求められ、さらに、その逆数が、入力信頼度αx(t)として求められる。
【００９１】
また、入力信頼度αx(t)と、１サンプル前の出力信頼度αy(t-1)から、重みｗ（ｔ）が求められ、図１１（Ｂ）に示すように、その重みｗ（ｔ）に基づき、入力データｘ（ｔ）と１サンプル前の出力データｙ（ｔ−１）との重み付け平均値が計算され、その重み付け平均値が、出力データｙ（ｔ）として出力される。
【００９２】
即ち、図１２のフローチャートに示すように、まず最初に、ステップＳ１１において、入力データｘ（ｔ）が、ラッチ回路１１1、入力信頼度計算部１２、および重み付け部２３に入力される。
【００９３】
そして、ステップＳ１２に進み、入力信頼度計算部１２において、入力信頼度αx(t)が求められる。
【００９４】
即ち、ラッチ回路１１1は、そこに供給される入力データを、その入力データが供給されるタイミングに同期してラッチし、その後段のラッチ回路１１2および入力信頼度計算部１２に供給する。ラッチ回路１１2またはラッチ回路１１3それぞれは、ラッチ回路１１1と同様に、その前段のラッチ回路１１1または１１2が出力する入力データをラッチし、その後段のラッチ回路１１3または１１4と、入力信頼度計算部１２に供給する。そして、ラッチ回路１１4は、その前段のラッチ回路１１3が出力する入力データをラッチし、入力信頼度計算部１２に供給する。従って、入力信頼度計算部１２には、入力データｘ（ｔ）が供給されるのと同時に、ラッチ回路１１1乃至１１4それぞれから入力データｘ（ｔ−１）乃至ｘ（ｔ−４）が供給される。入力信頼度計算部１２は、上述したように、入力データｘ（ｔ）乃至ｘ（ｔ−４）を用いて、入力信頼度αx(t)を求め、出力信頼度計算部１３および重み計算部１５に供給する。
【００９５】
入力信頼度計算部１２から重み計算部１５に対して、入力信頼度αx(t)が供給されるタイミングにおいては、ラッチ回路１４において、出力信頼度計算部１３が１サンプル前に出力した出力信頼度αy(t-1)がラッチされており、重み計算部１５では、ステップＳ１３において、入力信頼度計算部１２からの入力信頼度αx(t)と、ラッチ回路１４にラッチされている出力信頼度αy(t-1)とを用い、式（５）にしたがって、重みｗ（ｔ）が求められる。この重みｗ（ｔ）は、重み付け部２１および演算器２２に供給される。
【００９６】
そして、重み付け部２１、演算器２２、重み付け部２３、演算器２４、およびラッチ回路２５では、ステップＳ１４において、重み計算部１５が出力する重み（ｔ）を用い、式（７）にしたがって、入力データｘ（ｔ）と、１サンプル前の出力データｙ（ｔ−１）との重み付け平均値が計算される。
【００９７】
即ち、重み付け部２１では、重み付け計算部１５からの重みｗ（ｔ）が、ラッチ回路２５の出力に乗算され、その乗算結果が、演算器２４に供給される。ここで、ラッチ回路２５は、重み付け計算部１５が重みｗ（ｔ）を出力するタイミングにおいて、演算器２４が前回出力した出力データｙ（ｔ−１）をラッチしており、従って、重み付け部２１では、出力データｙ（ｔ−１）と重みｗ（ｔ）との積ｗ（ｔ）ｙ（ｔ−１）が求められ、演算器２４に供給される。
【００９８】
また、演算器２２では、重み付け計算部１５からの重みｗ（ｔ）が１から減算され、その減算値１−ｗ（ｔ）が、重み付け部２３に供給される。重み付け部２３は、演算器２２の出力１−ｗ（ｔ）と、入力データｘ（ｔ）とを乗算し、その乗算結果（１−ｗ（ｔ））ｘ（ｔ）を、演算器２４に供給する。
【００９９】
演算器２４では、重み付け部２１の出力ｗ（ｔ）ｙ（ｔ−１）と、重み付け部２３の出力（１−ｗ（ｔ））ｘ（ｔ）とが加算される。即ち、重み計算部１５が出力する重み（ｔ）を用い、式（７）にしたがって、入力データｘ（ｔ）と、１サンプル前の出力データｙ（ｔ−１）との重み付け平均値が計算される。
【０１００】
この重み付け平均値は、ステップＳ１５において、出力データｙ（ｔ）として出力される。さらに、出力データｙ（ｔ）は、ラッチ回路２５に供給されてラッチされる。
【０１０１】
そして、ステップＳ１６に進み、まだ、入力データが存在するかどうかが判定され、まだ存在すると判定された場合、ステップＳ１７に進み、出力信頼度計算部１３において、出力信頼度が更新される。即ち、出力信頼度計算部１３は、ステップＳ１２で入力信頼度計算部１２が計算した入力信頼度αx(t)と、ラッチ回路１４がラッチしている１サンプル前の出力信頼度αy(t-1)とを、式（４）にしたがって加算することで、現在の出力信頼度αy(t)を求め、ラッチ回路１４に出力する。そして、ステップＳ１１に戻り、次の入力データを対象に、同様の処理が繰り返される。
【０１０２】
一方、ステップＳ１６において、処理すべき入力データが存在しないと判定された場合、処理を終了する。
【０１０３】
以上のように、現在の入力データｘ（ｔ）の信頼度（入力信頼度）αx(t)を求め、それと、１サンプル前の出力信頼度αy(t-1)とを加味して、重みｗ（ｔ）を計算する。さらに、この重みｗ（ｔ）を用いて、現在の入力データｘ（ｔ）と、１サンプル前の出力データｙ（ｔ−１）との重み付け平均値を計算し、その平均値を、入力データｘ（ｔ）の処理結果としての出力データｙ（ｔ）とする。そして、その出力データｙ（ｔ）の信頼度（出力信頼度）αy(t)を、現在の入力信頼度αx(t)と、１サンプル前の出力信頼度αy(t-1)とを加算することで求め、次の入力データｘ（ｔ＋１）を処理することを繰り返す。従って、重みｗ（ｔ）は、過去の入力データにおいて、ノイズの多い部分はあまり加味せずに、かつノイズの少ない部分は十分に加味するようにして学習されていき、即ち、入力データに対して適応的な重みｗ（ｔ）が求められていき、その結果、出力データは、重みｗ（ｔ）の学習が進むにつれて時々刻々と改善されていき、入力データから効果的にノイズを除去したものが得られるようになる。
【０１０４】
なお、図７の実施の形態では、５サンプルの入力データｘ（ｔ）乃至ｘ（ｔ−５）を用いて分散σx(t)2を求めるようにしたため、その逆数である入力信頼度αx(t)は、入力データの入力が開始されてから、５サンプル分の時間が経過しないと求めることができないが、その５サンプル分の時間が経過するまでは、例えば、入力信頼度および出力信頼度のいずれも計算せず、また、出力データとしては、いままで入力された入力データの単純な平均値を求めて出力するようにすることができる。但し、入力データの入力が開始された直後の処理方法は、これに限定されるものではない。
【０１０５】
次に、上述の場合には、入力信頼度αx(t)として、入力データの分散の逆数を用いたことから、その入力信頼度αx(t)は、ある時間的範囲の入力データのばらつきを表しており、従って、入力データに含まれるノイズの度合いとしての、例えば、その入力データのＳ／Ｎが変動する場合には、非常に効果的なノイズの除去を行うことができる。
【０１０６】
しかしながら、入力信頼度αx(t)として、入力データの分散の逆数を用いた場合には、分散の性質上、ノイズのレベルの局所的な変化分（ごく狭い範囲における変化）については、ノイズ除去の効果が幾分薄れることになる。
【０１０７】
そこで、ノイズのレベルの局所的な変化分については、例えば、入力データの平均値に対する、現在の入力データの自乗誤差の逆数などを、入力信頼度αx(t)として用いることで、効果的に対処することが可能である。
【０１０８】
この場合、入力信頼度αx(t)は、次のようにして計算することができる。
【０１０９】
即ち、例えば、図１３に示すように、５サンプルの入力データｘ（ｔ）乃至ｘ（ｔ−４）の平均値ｍ（ｔ）を、式（１５）にしたがって計算する。
【０１１０】
【数８】
0004147647.tif 000009
・・・（１５）
なお、図１３の実施の形態においては、式（１５）におけるＮは、５である。
【０１１１】
さらに、入力データｘ（ｔ）および平均値ｍ（ｔ）を用い、式（１６）にしたがって、入力データｘ（ｔ）の平均値ｍ（ｔ）に対する自乗誤差ｄx(t)2を計算する。
【０１１２】
【数９】
0004147647.tif 000010
・・・（１６）
【０１１３】
そして、次式に示すように、自乗誤差ｄx(t)2の逆数を求めることで、入力信頼度αx(t)を求める。
【０１１４】
【数１０】
0004147647.tif 000011
・・・（１７）
【０１１５】
以上のように、自乗誤差の逆数を、入力信頼度αx(t)として用いる手法は、平均値ｍ（ｔ）が、真値に近い値となる場合には、特に有効である。
【０１１６】
なお、入力信頼度αx(t)は、上述したように、分散σx(t)2、または自乗誤差ｄx(t)2のいずれか一方だけに基づいて求める他、その２つに基づいて求めることも可能である。即ち、例えば、分散σx(t)2の逆数と、自乗誤差ｄx(t)2逆数との加算値を、入力信頼度αx(t)として用いることが可能である。
【０１１７】
分散σx(t)2は、入力データについて、ある程度広い範囲における局所的な散らばり具合を表し、また、自乗誤差ｄx(t)2は、狭い範囲の局所的な散らばり具合を表すから、それらを組み合わせたものを、入力信頼度αx(t)として用いた場合には、入力データのＳ／Ｎが変動しており、かつその入力データに含まれるノイズの局所的なレベルも変動しているようなときであっても、効果的に対処することが可能となる。
【０１１８】
次に、図１４は、入力信頼度αx(t)として、分散σx(t)2を用い、画像を入力データとして自己適応処理を行ったシミュレーション結果を示している。
【０１１９】
図１４において、横軸または縦軸はフレーム数（フレーム番号）またはＳ／Ｎをそれぞれ表しており、◇印が、入力データとした画像データのＳ／Ｎを表している。そして、＋印が移動平均による出力データのＳ／Ｎを、×印が本願手法による出力データのＳ／Ｎを、それぞれ表している。なお、移動平均の計算、および入力信頼度αx(t)の計算には、いずれも５サンプルを用いている。
【０１２０】
図１４から明らかなように、移動平均による出力データのＳ／Ｎは、入力データである画像データのＳ／Ｎに追随し、従って、画像データのＳ／Ｎが良くなれば良くなり、悪くなれば悪くなっていく。これに対して、本願手法による出力データのＳ／Ｎは、重みｗ（ｔ）の学習の効果により、時々刻々と高くなっていき、画像データのＳ／Ｎの変化による影響をほとんど受けない。
【０１２１】
なお、本発明は、画像データの他、例えば、音声データからのノイズの除去などにも適用可能である。
【０１２２】
また、本実施の形態では、本発明について、ノイズの除去という観点から説明を行ったが、入力データが適応的に処理されることにより、出力データが時間の経過とともに改善されるように、処理方式（ここでは重み係数ｗ（ｔ））が、実時間で学習され、その学習の結果得られた処理方式で処理が行われる結果、入力データには、それ自身に適した処理が施されるという自己適応処理の性質上、例えば、入力データの波形整形（波形等化）などを行うことも可能である。
【０１２３】
さらに、本実施の形態では、式（７）において、出力データｙ（ｔ−１）に対して重みｗ（ｔ）を乗算するとともに、入力データｘ（ｔ）に対して重み１−ｗ（ｔ）を乗算して、出力データｙ（ｔ）を求めるようにしたが、出力データｙ（ｔ−１）または入力データｘ（ｔ）のいずれか一方にのみ重みを乗算して、出力データｙ（ｔ）を求めるようにすることも可能である。
【０１２４】
【発明の効果】
以上の如く、本発明のデータ処理装置およびデータ処理方法、並びに記録媒体によれば、例えば、入力データに含まれるノイズを、効果的に除去すること等が可能となる。
【図面の簡単な説明】
【図１】本発明を適用した自己適応処理回路の一実施の形態の構成例を示すブロック図である。
【図２】処理方式の改善について説明するための図である。
【図３】処理方式の改善について説明するための図である。
【図４】学習に用いる学習用入力信号を説明するための図である。
【図５】本発明を適用したＮＲ処理回路の一実施の形態の構成例を示すブロック図である。
【図６】図５のＮＲ処理回路の処理対象となる入力データと、その信頼度を示す図である。
【図７】図５のＮＲ処理回路の構成例を示すブロック図である。
【図８】図７の入力信頼度計算部１２の構成例を示すブロック図である。
【図９】図８の入力信頼度計算部１２の処理を説明するための図である。
【図１０】図７の出力信頼度計算部１３の構成例を示すブロック図である。
【図１１】図７のＮＲ処理回路の処理を説明するための図である。
【図１２】図７のＮＲ処理回路の処理を説明するためのフローチャートである。
【図１３】入力信頼度の算出方法を説明するための図である。
【図１４】本発明によるシミュレーション結果を示す図である。
【符号の説明】
１  実時間学習部，  ２  信号処理部，  １１1乃至１１4  ラッチ回路，  １２  入力信頼度計算部，  １３  出力信頼度計算部，  １４  ラッチ回路，  １５  重み計算部，  ２１  重み付け部，  ２２  演算器，  ２３  重み付け部，２４  演算器，  ２５  ラッチ回路，  ３１  平均値計算回路，  ３２  分散計算回路，  ３３  逆数計算回路，  ４１  演算器
【図１】
0004147647.tif 000012
【図２】
0004147647.tif 000013
【図３】
0004147647.tif 000014
【図４】
0004147647.tif 000015
【図５】
0004147647.tif 000016
【図６】
0004147647.tif 000017
【図７】
0004147647.tif 000018
【図８】
0004147647.tif 000019
【図９】
0004147647.tif 000020
【図１０】
0004147647.tif 000021
【図１１】
0004147647.tif 000022
【図１２】
0004147647.tif 000023
【図１３】
0004147647.tif 000024
【図１４】
0004147647.tif 000025