本発明の実施形態について、図面を参照して詳細に説明する。
(第1実施形態)
図1は、予報装置1の構成の例を示す図である。予報装置1は、時系列データを構成する過去のデータに基づいて未来のデータを予測する情報処理装置である。予報装置1は、未来のデータを表す予報信号を、データ圧縮装置等である他装置に通知する。
予報装置1は、入力信号記憶部10と、次数更新部11と、予測係数算出部12と、仮想予報信号生成部13と、仮想予報誤差算出部14と、仮想予報誤差最小化判定部15と、仮想予報誤差最小値記憶部16と、最適次数記憶部17と、予測係数決定部18と、予報信号生成部19とを備える。
予報装置1は、次数更新部11と、予測係数算出部12と、仮想予報信号生成部13と、仮想予報誤差算出部14と、仮想予報誤差最小化判定部15と、仮想予報誤差最小値記憶部16とを、データの個数を決定する装置であるデータ数決定装置2として備える。予報装置1は、入力信号記憶部10と、最適次数記憶部17と、予測係数決定部18と、予報信号生成部19とのうち少なくとも一つを、データ数決定装置2の機能部として備えてもよい。データの個数とは、例えば、音声又は画像のフレームの枚数である。以下では、データの個数は、一例として画像のフレームの枚数である。
予報装置1の各機能部の一部又は全部は、例えば、CPU(Central Processing Unit)等のプロセッサが、記憶部に記憶されたプログラムを実行することにより実現される。記憶部は、例えば、磁気ハードディスク装置や半導体記憶装置等の不揮発性の記録媒体(非一時的な記録媒体)を有する。各機能部の一部又は全部は、例えば、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェアを用いて実現されてもよい。
入力信号記憶部10は、複数のフレームを時系列データとして記憶する。例えば、入力信号記憶部10は、複数のフレームを空間情報データとして記憶する。各フレームは、フレームごとにN個のブロックに分割されている。ブロックの形状は矩形である。データ数決定装置2は、予測処理及び予報処理をブロックごとに実行する。
図2は、予測処理及び予報処理の例を示す図である。図2では、複数のフレーム100のうち現時刻のフレームは、フレーム100−tである。以下、画素値が予測される対象のフレームを「予測対象フレーム」という。フレーム100同士の時間間隔は、例えば、1分間等の単位時間長である。
[予測処理]
予測処理とは、予測対象フレームと予測対象フレームよりも過去のフレーム100とに基づいて、データ数決定装置2が予測対象フレームの画素値をブロックごとに生成する処理である。図2では、データ数決定装置2は、フレーム100−tのフレーム内の参照結果と過去のフレーム100−(t−1)等とに基づいて、フレーム100−tの画素値をブロックごとに生成する。
図1に示された次数更新部11は、予測処理及び予報処理に用いられる次数である予報次数pを、p=1,…,Pの順に更新する。Pは、予め定められた次数である。予測係数算出部12は、フレーム100−tの直前のフレーム100−(t−1)を、入力信号記憶部10から読み込む。予測係数算出部12は、次数更新部11によって更新された予報次数pにより定まる1枚以上のフレーム100を、参照フレームとして入力信号記憶部10から読み込む。
予測係数算出部12は、式(1)に示す線形モデルに基づいて、フレーム100−tの直前のフレーム100−(t−1)のブロックごとに予測処理を実行する。以下では、表記を簡単にするため、フレームのデータは一次元信号として表現される。
ここで、f(x,t)は、フレーム100−t内の位置xの画素の画素値を表す。xは、0≦x≦X−1の範囲の値を表す。Xは、画素値について予め定められた値を表す。tは、0≦t≦T−1の範囲の値を表す。Tは、時間について予め定められた値を表す。式(1)におけるpは、予測処理に用いられる次数である予測次数を表す。予測次数pは、予測処理の際に参照されるフレーム100の数を表す。予測次数は、予報次数と等しい。
以下では、数式において文字の上に記載されている記号「^」は、文字の直前に記載される。^fp(x,t)は、予測対象フレームであるフレーム100−tを表す。a0(t),a1(t),…,ap(t)は、予測処理に用いられる係数である予測係数をそれぞれ表す。以下では、a0(t),a1(t),…,ap(t)を、ap(t)と略記する。フレーム100内におけるi番目のブロックは、式(2)を満たす。
図1に示された予測係数決定部18は、フレーム100−tを予測対象フレームとした場合における予測誤差を最小化するp次の予測係数を算出する。同様に、予測係数算出部12は、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化するp次の予測係数を算出する。予測誤差を最小化するとは、例えば、予測誤差を閾値以下にすることである。予測係数算出部12は、フレーム100−(t−1)を予測対象フレームとした場合について、式(3)のように表される予測誤差Epを最小化するように、予測係数を定める。
予測係数決定部18は、フレーム100−tを予測対象フレームとした場合における予測誤差Epを最小化するp次の予測パラメータを、式(4)、式(5)及び式(6)に基づいて算出する。同様に、予測係数算出部12は、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差Epを最小化するp次の予測パラメータを、式(4)、式(5)及び式(6)に基づいて算出する。
なお、式(4)の解として求められた予測係数ap(t)は、フレーム100−tを予測対象フレームとした場合に予測誤差を最小化するp次の予測係数を表す。例えば、p=1である場合、式(4)は、式(7)のように表される。
p=1である場合、予測係数ap(t)は、式(7)の解として、式(8)のように表される。
ここで、Δは、式(9)のように表される。
[予報処理]
予報処理とは、予測対象フレームよりも後の未来のフレームに基づくことなく、予測対象フレーム以前の過去のフレームに基づいて、予測対象フレームよりも後の未来のフレームである予報対象フレームの画素値をブロックごとに生成する処理である。図2では、データ数決定装置2は、未来のフレーム100−(t+1)に基づくことなく、フレーム100−t以前の過去のフレーム100の画素値に基づいて、未来のフレーム100−(t+1)の画素値をブロックごとに生成する。
図1に示された予報信号生成部19は、予報処理における予報対象フレームであるフレーム100−(t+1)の予報処理の結果を表す予報信号を、式(4)の解として得られた予測係数ap(t)に基づいて式(10)のように生成する。以下、予報対象フレームの直前のフレーム100−tについての予報処理を「仮想予報処理」という。仮想予報信号生成部13は、フレーム100−tの仮想予報処理の結果を表す仮想予報信号を、同様に生成する。
予報信号生成部19は、フレーム100−(t+1)の予報誤差を、式(11)のように算出する。同様に、仮想予報誤差算出部14は、フレーム100−tの仮想予報誤差を算出する。
図3は、仮想予報処理の例を示す図である。図3では、データ数決定装置2は、フレーム100−tの画素値をフレーム内参照することなく、フレーム100−tの画素値をブロックごとに生成する。
仮想予報信号生成部13は、予報次数pにより定まる1枚以上の参照フレームと、予測係数算出部12が算出した予測係数とを読み込む。仮想予報信号生成部13は、予測係数と参照フレームとに基づいて、フレーム100−tについて仮想予報処理を実行する。仮想予報信号生成部13は、フレーム100−tについて仮想予報処理を実行した結果を表す仮想予報信号を生成する。
[予報次数の適応選択]
式(10)の予報処理に用いられる次数である予報次数pの設定法(データの個数の決定法)を説明する。予測係数算出部12は、予報次数pを次数更新部11から取得する。予測係数算出部12は、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化するp次の予測係数ap(t−1)を算出する。
仮想予報信号生成部13は、予報対象フレームの直前のフレーム100−tにおいて予測誤差を最小化する予測係数を、フレーム100−(t+1)の予報処理に用いられる予報係数とする。なお、予測処理における予測誤差は、予測処理における予測次数の増加に応じて減少する。しかしながら、予報処理における予報誤差と予報処理における予報次数pとの関係は、明らかではない。
仮想予報信号生成部13は、予報処理における予報対象フレームであるフレーム100−(t+1)について予報処理を実行する代わりに、予報対象フレームの直前のフレーム100−tについて予報処理を実行する。すなわち、仮想予報信号生成部13は、フレーム100−tについて仮想予報処理を実行する。仮想予報信号生成部13は、フレーム100−tについて仮想予報処理を実行した結果を表す仮想予報信号を生成する。
仮想予報誤差算出部14は、入力信号記憶部10から得られたフレーム100−tと、フレーム100−tを表す仮想予報信号との予報誤差(以下「仮想予報誤差」という。)を算出する。仮想予報誤差算出部14は、p次の予測係数ap(t−1)に基づいて、仮想予報処理においてフレーム100−tを予報対象フレームとした場合について、p次の仮想予報誤差を算出する。
仮想予報誤差最小化判定部15は、算出された仮想予報誤差と仮想予報誤差の暫定最小値との大きさを比較する。仮想予報誤差最小化判定部15は、仮想予報誤差の大きさを予報次数pごとに比較することによって、仮想予報誤差を最小化する予報次数p*を式(12)のように定める。
仮想予報誤差最小化判定部15は、算出された仮想予報誤差が仮想予報誤差の暫定最小値よりも小さい場合、仮想予報誤差の暫定最小値よりも小さい仮想予報誤差を、仮想予報誤差の暫定最小値として仮想予報誤差最小値記憶部16に記録する。仮想予報誤差最小化判定部15は、算出された仮想予報誤差が仮想予報誤差の暫定最小値よりも小さい場合、予報次数pを最適次数記憶部17に記録する。このようにして、仮想予報誤差最小化判定部15は、フレーム100−tの仮想予報誤差に基づいて、最適な予報次数p*を推定する。
仮想予報誤差最小値記憶部16は、仮想予報誤差の暫定最小値を記憶する。最適次数記憶部17は、最適な予報次数p*を記憶する。予報信号生成部19は、式(12)により定められた予報次数p*と式(10)とに基づいて、フレーム100−(t+1)について予報処理を実行する。
[周期的相関の利用]
仮想予報信号生成部13は、現時刻を含む周期における各フレーム100を、仮想予報処理において参照してもよい。仮想予報信号生成部13は、現時刻を含む周期よりも前の周期における各フレーム100(非近傍フレーム)を、仮想予報処理において参照してもよい。
仮想予報信号生成部13は、時系列データの周期性に基づいて、非近傍フレームを仮想予報処理において参照する。フレーム100−tの現時刻の1周期前からM周期前までにおける各フレーム100と各フレーム100の近傍のフレームとを参照する予報処理は、式(13)のように表される。
ここで、Dは、例えば、1日間、1週間、1か月間、一年間等の周期を表す。仮想予報信号生成部13は、式(13)に基づいて、フレーム100−tのM周期前のフレーム100−(t−M×D)を含む近傍の(2pm+1)個のフレームを参照する。pmは、式(14)を満たす。
仮想予報信号生成部13は、予報対象フレームの直前のフレーム100−tにおいて予測誤差を最小化する予測係数を、フレーム100−(t+1)の予報処理に用いられる予報係数とする。仮想予報誤差算出部14は、フレーム100−tにおける予測誤差を、式(15)のように算出する。
ここで、^fp(x,t,ap(t))は、式(16)のように表される。
[予報次数の適応選択(周期的相関の利用)]
式(13)に基づく予報処理に用いられる次数である予報次数pの設定法(データの個数の決定法)を説明する。図1に示された機能部である次数更新部11は、予報処理に用いられる次数である予報次数pを、p=1,…,Pの順に更新する。予測係数算出部12は、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化するp次の予測係数ap(t−1)を算出する。仮想予報信号生成部13は、フレーム100−tについて仮想予報処理を実行する。
仮想予報誤差算出部14は、p次の予測係数ap(t−1)に基づいて、フレーム100−tを予報対象フレームとした場合について、p次の仮想予報誤差を算出する。仮想予報誤差最小化判定部15は、仮想予報誤差の大きさを予報次数pごとに比較することによって、仮想予報誤差を最小化する予報次数p*を式(17)のように定める。
予測係数決定部18は、最適次数記憶部17に記憶されている予報次数p*を、予報対象フレームであるフレーム100−(t+1)の予報処理において使用する予報次数として設定する。予測係数決定部18は、フレーム100−tと予報次数p*により定まる参照フレームとに基づいて、式(3)のように表される予測誤差Epを最小化するように、フレーム100−tの予測係数を算出する。
予報信号生成部19は、予報次数p*により定まる1枚以上の参照フレームと予測係数とに基づいて、予報対象フレームであるフレーム100−(t+1)の予報信号を生成する。予報信号生成部19は、式(17)により定まる予報次数p*に基づいて、式(13)のように予報処理を実行する。
図4は、参照フレームを含むフレーム群の例を示す図である。時系列データは、周期的な時間相関を互いに有する複数のフレーム100を含む。参照フレームを含むフレーム群200は、例えば、同日においてフレーム100−(t+1)に連続する各フレーム100から構成される。同日のフレーム群200は、周期的な時間相関を互いに有する場合がある。
参照フレームを含むフレーム群201は、例えば、異なる日においてフレーム100−(t+1)の時刻と同じ時刻の各フレーム100から構成されてもよい。異なる日の同じ時刻のフレーム群201は、周期的な時間相関を互いに有する場合がある。参照フレームを含むフレーム群202は、例えば、異なる日においてフレーム100−(t+1)の時刻とは異なる時刻の各フレーム100から構成されてもよい。異なる日の異なる時刻のフレーム群202は、周期的な時間相関を互いに有する場合がある。
予報信号生成部19は、未来データとしてのフレーム100−(t+1)の時刻を含む周期における過去データと、フレーム100−(t+1)の時刻を含まない周期における過去データとのうち少なくとも一つに基づいて、フレーム100−(t+1)を生成する。図4では、フレーム100−(t+1)の時刻を含む周期とは、「当日」である。図4では、フレーム100−(t+1)の時刻を含まない周期とは、「前日」又は「前々日」である。
以下、式(13)の右辺において予報係数を乗じる画素値を含むブロックを、「予報参照ブロック」という。したがって、予報参照ブロックとは、予報処理における参照フレームにおける単位ブロックである。以下、式(16)の右辺において予測係数を乗じる画素値を含むブロックを、「予測参照ブロック」という。したがって、予測参照ブロックとは、予測処理における参照フレームにおける単位ブロックである。
仮想予報信号生成部13は、予報次数p*を定める処理において予報参照ブロックの組み合わせを制限することで、予報次数p*を定める処理における演算量を低減してもよい。例えば、仮想予報信号生成部13は、仮想予報処理における予報対象フレームであるフレーム100−tについて、フレーム100−tにおける単位ブロックである仮想予報ブロックと予測参照ブロックとの類似度を算出する。仮想予報信号生成部13は、類似度の降順に、予測参照ブロックをソートする。すなわち、仮想予報信号生成部13は、類似度が高い順に予測参照ブロックを並び替える。次数更新部11は、類似度が高い予測参照ブロックを優先して予報次数pを変化させることで、各予報次数pに対する参照ブロックを一組に限定することが可能となる。予測参照ブロックの類似度は、例えば、式(18)のように表される。
このように、予測係数算出部12及び仮想予報信号生成部13は、予測対象データにおける単位ブロックと過去データにおける単位ブロックとの類似度に基づいて、予測データを生成する際に参照される過去データにおける単位ブロックの個数を制限する。これによって、予測係数算出部12及び仮想予報信号生成部13は、予報次数p*を定める処理における演算量を低減することができる。
[例外処理]
仮想予報信号生成部13は、予測ブロックにおける全ての画素の画素値が式(19)のように零値である場合、参照ブロックのソート処理を実行しない(第1の例外処理)。
仮想予報信号生成部13は、予測ブロックにおける全ての画素の画素値が零値である場合、予め定められた順序に参照ブロックの選択順序を設定する。また、予測係数決定部18は、予め定められた係数に予測係数を定める(第2の例外処理)。例えば、フレーム100−(t+1)の予報次数pは、フレーム100−(t+1)の時刻よりも単位時間前のフレーム100−tに対して定められた予報次数と同じでもよい。仮想予報信号生成部13は、各参照フレームの重みは、均等値に定めてもよい。
仮想予報信号生成部13は、予測ブロックと予測参照ブロックとの類似度が閾値未満である場合、予測ブロックとの類似度が閾値未満である予測参照ブロックの予測係数を零値にする(第3の例外処理)。閾値は、例えば、最小の類似度と同じ値である。
次に、予報装置1の動作の例を説明する。
図5は、予報装置1の動作の例を示すフローチャートである。入力信号記憶部10は、複数のフレーム100を時系列データとして読み込む(ステップS101)。次数更新部11は、予報次数pを予報次数の候補p=1,…,Pの順に更新する(ステップS102)。ステップS102〜ステップS109を実行することによって、データ数決定装置2は予報次数pを決定する。
予測係数算出部12は、フレーム100−tの直前のフレームであるフレーム100−(t−1)を読み込む。予測係数算出部12は、次数更新部11によって更新された予報次数pにより定まる1枚以上のフレーム100を、参照フレームとして読み込む。予測係数算出部12は、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化するp次の予測係数を算出する(ステップS103)。
仮想予報信号生成部13は、予報次数pにより定まる1枚以上の参照フレームと、予測係数算出部12が算出した予測係数とを読み込む。仮想予報信号生成部13は、予測係数と参照フレームとに基づいてフレーム100−tについて仮想予報処理を実行した結果として、フレーム100−tを表す仮想予報信号を生成する(ステップS104)。
仮想予報誤差算出部14は、入力信号記憶部10から得られたフレーム100−tと、フレーム100−tを表す仮想予報信号との予報誤差である仮想予報誤差を算出する(ステップS105)。仮想予報誤差最小化判定部15は、算出された仮想予報誤差と仮想予報誤差の暫定最小値との大きさを比較する(ステップS106)。仮想予報誤差が仮想予報誤差の暫定最小値以上である場合(ステップS106:NO)、仮想予報誤差最小化判定部15は、ステップS109に処理を進める。
仮想予報誤差が仮想予報誤差の暫定最小値よりも小さい場合(ステップS106:YES)、仮想予報誤差最小化判定部15は、より小さい仮想予報誤差を、仮想予報誤差の暫定最小値とする(ステップS107)。最適次数記憶部17は、仮想予報誤差の暫定最小値に対応付けられた予報次数pを、最適な予報次数pとして記憶する(ステップS108)。
予測係数決定部18は、最適次数記憶部17に記憶されている予報次数p*を、予報対象フレームであるフレーム100−(t+1)の予報処理において使用する予報次数とする(ステップS110)。予測係数決定部18は、フレーム100−tと予報次数p*により定まる参照フレームとに基づいて、フレーム100−tの予測係数を算出する(ステップS111)。予報信号生成部19は、予報次数p*により定まる1枚以上の参照フレームと予測係数とに基づいて、予報対象フレームであるフレーム100−(t+1)の予報信号を生成する(ステップS112)。
以上のように、時系列データは、未来データを含まない。時系列データは、過去データを含む。時系列データは、過去データ以外に予測対象データを更に含む。すなわち、時系列データは、過去データとは区別して予測対象データを含む。実施形態では過去データと予測対象データとは時間軸で連続し、予測対象データと未来データとは時間軸で連続しているが、いずれの場合も、互いのデータは時間軸で連続していなくてもよい。例えば、予報装置1は、100−(t−2)、100−(t−3)、…、100−(t−4)からなる過去フレーム(過去データ)に基づいて、100−tのフレーム(予測対象データ)を仮想予報してもよい。例えば、予報装置1は、100−(t−1)、100−(t−2)、…、100−(t−3)からなる過去フレーム(過去データ)に基づいて、100−(t+10)のフレーム(未来データ)を予報してもよい。例えば、予報装置1は、100−(t−10)、100−(t−20)、100−(t−30)から成る過去フレーム(過去データ)に基づいて、100−(t+1)のフレーム(未来データ)を予報してもよい。また、予報装置1は、時間間隔が異なる過去データからなる時系列データに基づいて、未来データを予報してもよい。第1実施形態のデータ数決定装置2は、予測部としての仮想予報信号生成部13と、差決定部としての仮想予報誤差算出部14と、データ数決定部としての仮想予報誤差最小化判定部15とを備える。予測部としての仮想予報信号生成部13は、時系列データに含まれている複数の過去データのうちで互いに異なる個数の過去データに基づいて、時系列データに含まれている予測対象データの予測データを個数ごとに生成する。差決定部としての仮想予報誤差算出部14は、過去データとの時間相関を有する予測対象データと予測データとの差を、個数ごとに決定する。データ数決定部としての仮想予報誤差最小化判定部15は、個数ごとに決定された差に基づいて、過去データの個数(p*)を決定する。これによって、第1実施形態のデータ数決定装置2は、データの圧縮の際に参照されるデータの個数を決定することが可能である。また、第1実施形態のデータ数決定装置2は、決定された個数のデータに基づいて、特定の時空間位置における未来データを予報することが可能である。
第1実施形態の予報装置1は、信号生成部としての予報信号生成部19を更に備える。第1実施形態の予報装置1は、データ数決定装置2の一部として予報信号生成部19を備えてもよい。予報信号生成部19は、個数(p*)よりも1個だけ少ない個数(p*−1)の過去データとしてのフレーム100と1個のフレーム100−tとに基づいて、時系列データとの時間相関を有する未来データとしてのフレーム100−(t+1)を生成する。これによって、第1実施形態のデータ数決定装置2は、フレームの圧縮の際に参照されるフレームの枚数を決定することが可能である。
第1実施形態の予報装置1は、時系列データに存在するデータとの相関を有する所定個数のデータと、時系列データに存在するデータとに基づいて、時系列データに存在しないデータを予報する。この場合に、第1実施形態のデータ数決定装置2は、予報装置1が予報処理に用いるデータの所定個数を適切に定めることが可能である。
予測部としての仮想予報信号生成部13は、予測対象データの直前の過去データの予測係数に基づいて、予測対象データの予測データを過去データの個数ごとに生成する。データ数決定部としての仮想予報誤差最小化判定部15は、差が最小となる過去データの個数を決定する。信号生成部としての予報信号生成部19は、差が最小となる過去データの個数(p*)よりも1個だけ少ない個数(p*−1)の過去データと予測対象データとに基づいて、未来データを生成する。これによって、第1実施形態のデータ数決定装置2は、フレームの圧縮の際に参照されるフレームの枚数を効率的に決定することが可能である。
第1実施形態の予報装置1は、時系列の空間情報データに対して、フレームにおけるブロックに関する線形モデルに基づく予報処理において適切な予報次数pを設定するので、予報精度を向上させることが可能となる。第1実施形態のデータ圧縮装置は、時系列データである空間情報データの時間方向の相関を利用した予測モデルによって、空間情報データを効率的に圧縮することが可能となる。
(第2実施形態)
第2実施形態では、最適な予報次数を、フレームを構成するビット単位まで拡張して決定するという点が、第1実施形態と相違する。以下、第1実施形態との相違点についてのみ説明する。
図6は、予報装置1aの構成の例を示す図である。予報装置1aは、入力信号記憶部10と、次数更新部11と、予測係数算出部12aと、仮想予報信号生成部13aと、仮想予報誤差算出部14aと、仮想予報誤差最小化判定部15aと、仮想予報誤差最小値記憶部16と、予測係数決定部18aと、予報信号生成部19aと、ビット分離処理部20と、仮想予報誤差最小化判定部21と、境界ビット更新部22と、仮想予報誤差最小値記憶部23と、最適境界ビット記憶部24と、最適次数・最適境界ビット記憶部25と、ビット分離処理部26とを備える。
予報装置1aは、次数更新部11と、予測係数算出部12aと、仮想予報信号生成部13aと、仮想予報誤差算出部14aと、仮想予報誤差最小化判定部15aと、仮想予報誤差最小値記憶部16と、予測係数決定部18aと、予報信号生成部19aと、ビット分離処理部20と、仮想予報誤差最小化判定部21と、境界ビット更新部22と、仮想予報誤差最小値記憶部23と、最適境界ビット記憶部24とを、データの個数を決定する装置であるデータ数決定装置2aとして備える。予報装置1aは、入力信号記憶部10と、予測係数決定部18aと、予報信号生成部19aと、最適次数・最適境界ビット記憶部25と、ビット分離処理部26とのうち少なくとも一つを、データ数決定装置2aの機能部として備えてもよい。
予報装置1aの各機能部の一部又は全部は、例えば、CPU等のプロセッサが、記憶部に記憶されたプログラムを実行することにより実現される。記憶部は、例えば、磁気ハードディスク装置や半導体記憶装置等の不揮発性の記録媒体(非一時的な記録媒体)を有する。各機能部の一部又は全部は、例えば、LSIやASIC等のハードウェアを用いて実現されてもよい。
ビット分離処理部20は、入力信号記憶部10に記憶されている複数のフレーム100を時系列データとして読み込み、読み込んだ時系列データを、境界ビット更新部22による境界ビットで定められる位置で分離することによって、上位ビット信号と、下位ビット信号とに分離する。境界ビットとは、上位ビット信号と下位ビット信号を分離する基準となるビット位置を表す。例えば、ビット分離処理部20は、フレーム100の先頭から境界ビットで定められる位置までを上位ビット信号とし、上位ビット信号以外を除いた部分を下位ビット信号として分離する。
予測係数算出部12aは、上位ビット予測係数算出部121と、下位ビット予測係数算出部122とを備える。上位ビット予測係数算出部121は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された上位ビット信号を、上位ビット参照フレームとして読み込む。上位ビット予測係数算出部121は、読み込んだ上位ビット参照フレームを用いて直前のフレーム100−(t−1)を予測する場合の予測誤差を最小化する第1のp次の予測係数を算出する。下位ビット予測係数算出部122は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された下位ビット信号を、下位ビット参照フレームとして読み込む。下位ビット予測係数算出部122は、読み込んだ下位ビット参照フレームを用いて直前のフレーム100−(t−1)を予測する場合の予測誤差を最小化する第2のp次の予測係数を算出する。
仮想予報信号生成部13aは、上位ビット仮想予報信号生成部131と、下位ビット仮想予報信号生成部132とを備える。上位ビット仮想予報信号生成部131は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された上位ビット信号と、第1のp次の予測係数とを読み込み、フレーム100−tの仮想予報処理の結果を表す第1の仮想予報信号を生成する。下位ビット仮想予報信号生成部132は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された下位ビット信号と、第2のp次の予測係数とを読み込み、フレーム100−tの仮想予報処理の結果を表す第2の仮想予報信号を生成する。
仮想予報誤差算出部14aは、上位ビット仮想予報誤差算出部141と、下位ビット仮想予報誤差算出部142とを備える。上位ビット仮想予報誤差算出部141は、フレーム100−tの上位ビット信号と、第1の仮想予報信号との予報誤差である第1の仮想予報誤差を算出する。下位ビット仮想予報誤差算出部142は、フレーム100−tの下位ビット信号と、第2の仮想予報信号との予報誤差である第2の仮想予報誤差を算出する。
仮想予報誤差最小化判定部21は、第1の仮想予報誤差と、第2の仮想予報誤差とに基づいて得られる仮想予報誤差和と、仮想予報誤差最小値記憶部23に記憶されている仮想予報誤差の暫定最小値との大きさを比較する。
境界ビット更新部22は、境界ビットをB1=1,…,Bとして、順次、更新する。仮想予報誤差最小値記憶部23は、仮想予報誤差の暫定最小値を記憶する。最適境界ビット記憶部24は、最適な境界ビットを記憶する。仮想予報誤差最小化判定部15aは、仮想予報誤差最小値記憶部23に記憶されている暫定最小値と、仮想予報誤差最小値記憶部16に記憶されている仮想予報誤差の暫定最小値との大きさを比較する。
最適次数・最適境界ビット記憶部25は、最適な予報次数p及び最適な境界ビットを記憶する。
ビット分離処理部26は、最適次数・最適境界ビット記憶部25に記憶されている最適な予報次数p及び最適な境界ビットを予報処理の予報次数及び境界ビットとして設定し、フレーム100−tと、予報次数により定まる参照フレームとを読み込み、読み込んだフレームを、境界ビットで定められる位置で分離することによって、上位ビット信号と、下位ビット信号とに分離する。
予測係数決定部18aは、上位ビット予測係数決定部181と、下位ビット予測係数決定部182とを備える。上位ビット予測係数決定部181は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された上位ビット信号を、上位ビット参照フレームとして読み込む。上位ビット予測係数決定部181は、読み込んだ上位ビット参照フレームを用いて、予測誤差Epを最小化するようにフレーム100−tの第1の予測係数を算出する。下位ビット予測係数決定部182は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された下位ビット信号を、下位ビット参照フレームとして読み込む。下位ビット予測係数決定部182は、読み込んだ下位ビット参照フレームを用いて、予測誤差Epを最小化するようにフレーム100−tの第2の予測係数を算出する。
予報信号生成部19aは、上位ビット予報信号生成部191と、下位ビット予報信号生成部192と、ビット合成処理部193とを備える。上位ビット予報信号生成部191は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された上位ビット信号と、第1の予測係数とに基づいて、予報対象フレームであるフレーム100−(t+1)の第1の予報信号を生成する。下位ビット予報信号生成部192は、予報次数p及び境界ビットにより定まる1枚以上のフレーム100から分離された下位ビット信号と、第2の予測係数とに基づいて、予報対象フレームであるフレーム100−(t+1)の第2の予報信号を生成する。ビット合成処理部193は、第1の予報信号と第2の予報信号とを統合して、予報信号を生成する。
以下、第2実施形態における予報装置1aの処理について詳細に説明する。
[ビット分離に基づく適応予報処理]
ビット深度方向の分離に基づく予報処理について説明する。f(x,t)をB[ビット/サンプル]のビット深度を有する信号とする。ビット分離処理部20は、f(x,t)の信号を上位ビット信号f(B 1 +1:B)(x,t)と、下位ビット信号f(1:B 1 )(x,t)とに分離する。上位ビット信号f(B 1 +1:B)(x,t)は、B1+1ビットから最上位ビットまでの上位B−B1ビットである。下位ビット信号f(1:B 1 )(x,t)は、最下位ビットからB1ビットまでの下位B1ビットである。
ビット合成処理部193は、予報処理における予報対象フレームであるフレーム100−(t+1)の予報処理の結果を表す予報信号を式(20)のように生成する。
式20におけるap (B 1 +1:B)(t)及びap (1:B 1 )(t)は式(4)〜(6)の解として求まる係数である。つまり、ap (B 1 +1:B)(t)及びap (1:B 1 )(t)は、フレーム100−tの予測誤差の最小化を通して算出される。
なお、上位ビット信号に対する予報信号〜f(B 1 +1:B)(x,t+1,ap (B 1 +1:B)(t))は、値域[2B 1 +1,2B−1]内に存在すべき値である。なお、「〜f」は「〜」fの上に記載されることを意味する。
上位ビット信号に対する予報信号が同値域を超える場合は、同値域に収まるように予報信号をクリッピングする。つまり、2B 1 +1未満の予報信号は2B 1 +1とし、2B 1−1を超える予報信号は2B 1−1とする。下位ビット信号に対する予報信号〜f(1:B 1 )(x,t+1,ap (1:B 1 )(t))は、値域[0,2B 1−1]内に存在すべき値である。下位ビット信号に対する予報信号が同値域を超える場合は、同値域に収まるように予報信号をクリッピングする。0未満の予報値は0とし、2B 1−1を超える予報信号は2B 1−1とする。
[適応的ビット分離]
上位ビット信号と下位ビット信号の境界となる境界ビットの設定法を説明する。フレーム100−tにおいて予測誤差を最小化するように設定された上位ビット信号に対する予測係数ap (B 1 +1:B)(t)及び下位ビットに対する予測係数ap (1:B 1 )(t)を用いて、フレーム100−(t+1)の予報処理を行うことを考える。このとき、フレーム100−(t+1)に対する予報誤差は式(21)として表される。
ビット分離処理部26は、境界ビットB1の最適値を、式(22)に基づいて設定する。
予測係数算出部12aは、B1の候補値1,…,Bに対して、フレーム100−tの予測誤差を最小化する予測係数ap (1:B 1 )(t)及びap (B 1 +1:B)(t)を算出する。さらに、仮想予報誤差算出部14aは、予測係数ap (1:B 1 )(t)及びap (B 1 +1:B)(t)を用いて、予報処理における予報対象フレームであるフレーム100−(t+1)について予報処理を行う場合の予報誤差を算出する。最終的に、上記予報誤差を最小化するB1の候補値を選択する。なお、B1=Bはビット分離を行わないことを意味する。ビット分離を行わない場合は、予報信号生成部19aは、上記の[予報処理]に基づき予報処理を行う。
境界ビット及び予報次数を同時に最適化する場合、ビット分離処理部26は式(23)に基づいて境界ビット及び予報次数を設定する。
ここで、B1 *,p*は、B×P通りの候補から選択される。Pは予報次数の最大値であり、外部から与えられる。上記は、上位ビット信号と下位ビット信号の2つのレンジにビット分離する場合である。これを一般化して、mレンジに分離する場合を考える。なお、mの取り得る値は、m=0,…,Bである。mレンジに分離する場合の第j番目の境界ビットをBm,jと表すこととする。ここで、j=1,…,mである。また、mレンジに分離する場合の境界ビットをまとめてBm={Bj,m|j=0,…,m}として表記する。なお、統一的な表記とするために、Bm,0=0としている。
mレンジに分離する場合において、フレーム100−tに対する予測誤差を最小化するよう設定された第j番目のレンジに対する予測係数ap (B j−1,m :B j,M )(t)を用いて、フレーム100−(t+1)に対する予報処理を行うことを考える。
mレンジに分離する場合において、フレーム100−tに対する予測誤差を最小化するよう設定された各レンジに対する係数をまとめて、式(24)と表すことにする。
このとき、フレーム100−(t+1)に対する予報誤差は式(25)として表される。
mレンジに分離する場合、境界ビットBmの最適値は、式(26)に基づき設定される。
分離するレンジ数の最適値は、式(27)に基づき設定される。
従って、最適なレンジ数はm*となり, そのときの最適な境界ビットはB* m *となる。
境界ビット及び予報次数を同時に最適化する場合、レンジ数毎に、式(28)に基づき境界ビットおよび予報次数を設定する。
分離するレンジ数の最適値は、式(29)に基づき設定する。
従って、最適なレンジ数はm*となり,そのときの最適な境界ビットはB* m *となり、そのときの最適な予報次数はp* m *となる。
次に、予報装置1aの動作の例を説明する。
図7は、予報装置1aの動作の例を示すフローチャートである。
入力信号記憶部10は、複数のフレーム100を時系列データとして読み込む(ステップS201)。次数更新部11は、予報次数pを予報次数の候補p=1,…,Pの順に更新する(ステップS202)。ステップS203〜ステップS209を実行することによって、データ数決定装置2aは最適な予報次数pを決定する。境界ビット更新部22は、境界ビットB1を境界ビットの候補B1=1,…,Bの順に更新する(ステップS203)。例えば、境界ビット更新部22は、境界ビットを順番に更新する。データ数決定装置2aは、最適境界ビット更新処理を実行することによって最適な境界ビットを決定する(ステップS204)。なお、最適境界ビット更新処理の具体的な処理については後述する。
全ての境界ビットにおいて最適境界ビット更新処理が実行されると(ステップS205)、仮想予報誤差最小化判定部15aは境界ビットに基づいて得られた仮想予報誤差和と、仮想予報誤差最小値記憶部16に記憶されている暫定最小値との大きさを比較する(ステップS206)。仮想予報誤差和が暫定最小値以上である場合(ステップS206:NO)、仮想予報誤差最小化判定部15aはステップS209に処理を進める。例えば、仮想予報誤差最小化判定部15aは、次数更新部11に対して予報次数の更新を指示する。
仮想予報誤差和が暫定最小値よりも小さい場合(ステップS206:YES)、仮想予報誤差最小化判定部15aはより小さい仮想予報誤差を、仮想予報誤差の暫定最小値とし、仮想予報誤差最小値記憶部16に記憶されている値を更新する(ステップS207)。また、仮想予報誤差最小化判定部15aは、現時点の予報次数pで最適次数・最適境界ビット記憶部25に記憶されている予報次数を更新し、更新後の予報次数p*に対する最適な境界ビットを最適次数・最適境界ビット記憶部25に記録する(ステップS208)。
ステップS203〜ステップS208の処理が全ての予報次数で実行されると(ステップS209)、ビット分離処理部26は、最適次数・最適境界ビット記憶部25に記憶されている予報次数p*及び境界ビットを、予報対象フレームであるフレーム100−(t+1)の予報処理において使用する予報次数及び境界ビットに設定する(ステップS210)。
ビット分離処理部26は、設定された予報次数により定まる参照フレームに対して、設定された境界ビットにより、上位ビット信号と下位ビット信号に分離する(ステップS211)。上位ビット予測係数決定部181は、フレーム100−tと予報次数p*により定まる参照フレームの上位ビット信号に基づいて、フレーム100−tの第1の予測係数を算出する(ステップS212)。上位ビット予報信号生成部191は、フレーム100−tと予報次数p*により定まる参照フレームの上位ビット信号に基づいて、予報対象フレームであるフレーム100−(t+1)の第1の予報信号を生成する(ステップS213)。
下位ビット予測係数決定部182は、フレーム100−tと予報次数p*により定まる参照フレームの下位ビット信号に基づいて、フレーム100−tの第2の予測係数を算出する(ステップS214)。下位ビット予報信号生成部192は、フレーム100−tと予報次数p*により定まる参照フレームの下位ビット信号に基づいて、予報対象フレームであるフレーム100−(t+1)の第2の予報信号を生成する(ステップS215)。その後、ビット合成処理部193は、第1の予報信号と、第2の予報信号とを合成して予報対象フレームであるフレーム100−(t+1)の予報信号を生成する(ステップS216)。
図8は、予報装置1aの動作の例を示すフローチャートである。なお、図8では、予報装置1aが行う最適境界ビット更新処理について説明する。
ビット分離処理部20は、入力信号記憶部10に記憶されている複数のフレーム100を時系列データとして読み込み、読み込んだ時系列データを境界ビットにより、上位ビット信号と、下位ビット信号とに分離する(ステップS2041)。上位ビット予測係数算出部121は、フレーム100−tと予報次数p*により定まる参照フレームの上位ビット信号に基づいて、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化する第1のp次の予測係数を算出する(ステップS2042)。上位ビット仮想予報信号生成部131は、フレーム100−tと予報次数p*により定まる参照フレームの上位ビット信号と、第1のp次の予測係数とを読み込み、フレーム100−tの仮想予報処理の結果を表す第1の仮想予報信号を生成する(ステップS2043)。
上位ビット仮想予報誤差算出部141は、フレーム100−tと、生成された第1の仮想予報信号とを読み込み、フレーム100−tの第1の仮想予報誤差を算出する(ステップS2044)。下位ビット予測係数算出部122は、フレーム100−tと予報次数p*により定まる参照フレームの下位ビット信号に基づいて、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化する第2のp次の予測係数を算出する(ステップS2045)。下位ビット仮想予報信号生成部132は、フレーム100−tと予報次数p*により定まる参照フレームの下位ビット信号と、第2のp次の予測係数とを読み込み、フレーム100−tの仮想予報処理の結果を表す第2の仮想予報信号を生成する(ステップS2046)。下位ビット仮想予報誤差算出部142は、フレーム100−tと、生成された第2の仮想予報信号とを読み込み、フレーム100−tの第2の仮想予報誤差を算出する(ステップS2047)。
仮想予報誤差最小化判定部21は、第1の仮想予報誤差と第2の仮想予報誤差とを読み込み、仮想予報誤差和を算出する(ステップS2048)。その後、仮想予報誤差最小化判定部21は、算出した仮想予報誤差和と、仮想予報誤差最小値記憶部23に記憶されている仮想予報誤差の暫定最小値とを比較する(ステップS2049)。仮想予報誤差和が、暫定最小値よりも小さい場合(ステップS2049:YES)、仮想予報誤差最小化判定部21は算出した仮想予報誤差和で、仮想予報誤差最小値記憶部23に記憶されている仮想予報誤差の暫定最小値を更新する(ステップS2050)。さらに、仮想予報誤差最小化判定部21は、最適境界ビット記憶部24に記憶されている最適な境界ビットを現時点の境界ビットに更新する(ステップS2051)。
一方、仮想予報誤差和が、仮想予報誤差の暫定最小値よりも大きい場合(ステップS2049:NO)、仮想予報誤差最小化判定部21は境界ビット更新部22に対して境界ビットの更新を指示する。
以上のように、第2実施形態のデータ数決定装置は、分離処理部としてのビット分離処理部20と、予測部としての仮想予報信号生成部13aと、差算出部としての仮想予報誤差算出部14aと、データ数決定部としての仮想予報誤差最小化判定部15aとを備える。ビット分離処理部20は、時系列データに含まれている、データの圧縮の際に参照される複数の過去データそれぞれを複数のデータに分離する。仮想予報信号生成部13aは、処理に用いる過去データの個数と、分離後のデータとの組み合わせ毎に予測データを生成する。仮想予報誤差算出部14aは、過去データとの時間相関を有する予測対象データと、予測データとの差を分離後のデータそれぞれに対して算出する処理を、処理に用いる過去データの個数の候補毎に行う。仮想予報誤差最小化判定部15aは、個数の候補毎に得られた差に基づいて、過去データの個数を決定する。これにより、ブロックベースの線形モデルに対する予報処理において、最適な境界ビット及び予報次数を設定することができ、予測精度を向上させることが可能になる。
また、処理単位である8bitの内訳として上位ビット信号3bitと、下位ビット信号5bitとで全く関係のないデータに基づくbitであることが多々あり、予測や予報を行う際に処理単位のみを考慮して行うと予測残差や演算量が増える場合がある。第2実施形態のデータ数決定装置は、上記の事情を踏まえ、最適なビット境界でビット分離して予報信号を生成する。これにより、予測残差や演算量の増大を防ぐことができる。
以上のように、第2実施形態のデータ数決定装置は、データ数決定部としての仮想予報誤差最小化判定部15aが、分離後のデータそれぞれの差の和が最小となる過去データの個数を決定する。これにより、第2実施形態のデータ数決定装置は、フレームの圧縮の際に参照されるフレームの枚数を効率的に決定することが可能である。
以上のように、第2実施形態のデータ数決定装置は、過去データを分離する位置を決定する分離位置決定部としての仮想予報誤差最小化判定部21をさらに備える。仮想予報誤差最小化判定部21は、分離する位置の候補で過去データを分離した際に得られる分離後の信号それぞれの差の和が最小となる分離位置を決定する。これにより、第2実施形態のデータ数決定装置は、フレームの圧縮の際に参照されるフレームの枚数を決定するための最適な分離位置を効率的に決定することが可能である。
(第3実施形態)
第3実施形態では、最適な予報次数を、複数のフレームからなるクラスまで拡張して決定するという点が、第1実施形態及び第2実施形態と相違する。また、第3実施形態では、[例外処理]における(第3の例外処理)を実行しない点が、第1実施形態及び第2実施形態と相違する。以下、第1実施形態及び第2実施形態との相違点についてのみ説明する。
図9は、予報装置1bの構成の例を示す図である。予報装置1bは、入力信号記憶部10bと、次数更新部11と、予測係数算出部12bと、仮想予報信号生成部13bと、仮想予報誤差算出部14bと、仮想予報誤差最小化判定部15bと、仮想予報誤差最小値記憶部16と、予測係数決定部18bと、予報信号生成部19bと、クラス分離処理部28と、仮想予報誤差最小化判定部29と、参照パターン更新部30と、仮想予報誤差最小値記憶部31と、最適参照パターン記憶部32と、最適次数・最適参照パターン記憶部33とを備える。
予報装置1bは、入力信号記憶部10bと、次数更新部11と、予測係数算出部12bと、仮想予報信号生成部13bと、仮想予報誤差算出部14bと、仮想予報誤差最小化判定部15bと、仮想予報誤差最小値記憶部16と、クラス分離処理部28と、仮想予報誤差最小化判定部29と、参照パターン更新部30と、仮想予報誤差最小値記憶部31と、最適参照パターン記憶部32とを、データの個数を決定する装置であるデータ数決定装置2bとして備える。予報装置1bは、予測係数決定部18bと、予報信号生成部19bと、最適次数・最適参照パターン記憶部33のうち少なくとも一つを、データ数決定装置2bの機能部として備えてもよい。また、予測係数算出部12bと、仮想予報信号生成部13bと、仮想予報誤差算出部14bと、仮想予報誤差最小化判定部29と、参照パターン更新部30は、データの個数を決定するためのクラスを決定する装置であるクラス決定装置として構成されてもよい。
予報装置1bの各機能部の一部又は全部は、例えば、CPU等のプロセッサが、記憶部に記憶されたプログラムを実行することにより実現される。記憶部は、例えば、磁気ハードディスク装置や半導体記憶装置等の不揮発性の記録媒体(非一時的な記録媒体)を有する。各機能部の一部又は全部は、例えば、LSIやASIC等のハードウェアを用いて実現されてもよい。
クラス分離処理部28は、入力されたフレームを属性に応じて、複数個(例えば、C個)のクラスに分離する。属性の例としては、例えば、人流データの場合、性別、年齢層等である。以下の説明では、属性をクラスと呼ぶ。すなわち、クラス分離処理部28は、入力されたフレームの属性に応じたクラスに、入力されたフレームを分離する。
入力信号記憶部10bは、複数のフレームを時系列データとして記憶する。例えば、入力信号記憶部10bは、複数のフレームを、クラスIDに対応付けてクラス別に記憶する。クラスIDは、クラスを識別するためのIDである。
参照パターン更新部30は、参照パターンを、順次、更新する。参照パターンとは、クラスID及び参照フレームを表す。すなわち、参照パターン更新部30は、順次、クラス及び当該クラスに対応した参照フレームを更新する。
予測係数算出部12bは、参照パターン更新部30によって更新されたクラスIDに対応するフレーム100−tの直前のフレーム100−(t−1)を、入力信号記憶部10bから読み込む。予測係数算出部12bは、次数更新部11によって更新された予報次数pにより定まる1枚以上のフレーム100を、参照フレームとして入力信号記憶部10bから読み込む。予測係数算出部12bは、参照フレームを用いて直前のフレーム100−(t−1)を予測する場合の予測誤差を最小化するp次の予測係数を算出する。
仮想予報信号生成部13bは、予報次数p及び参照パターンにより定まる1枚以上の参照フレームと、予測係数算出部12bによって算出されたp次の予測係数とを読み込み、フレーム100−tの仮想予報処理の結果を表す仮想予報信号を生成する。
仮想予報誤差算出部14bは、入力信号記憶部10bから得られたフレーム100−tと、フレーム100−tを表す仮想予報信号との予報誤差である仮想予報誤差を算出する。
仮想予報誤差最小化判定部29は、仮想予報誤差算出部14bによって算出された仮想予報誤差と、仮想予報誤差最小値記憶部31に記憶されている仮想予報誤差の暫定最小値との大きさを比較する。仮想予報誤差最小化判定部29は、仮想予報誤差の大きさを参照パターンごとに比較することによって、仮想予報誤差を最小化する最適な参照パターンを判定する。
仮想予報誤差最小値記憶部31は、仮想予報誤差の暫定最小値を記憶する。最適参照パターン記憶部32は、最適な参照パターンを記憶する。仮想予報誤差最小化判定部15bは、仮想予報誤差最小値記憶部31に記憶されている仮想予報誤差の暫定最小値と、仮想予報誤差最小値記憶部16に記憶されている仮想予報誤差の暫定最小値との大きさを比較する。最適次数・最適参照パターン記憶部33は、最適な予報次数p*及び最適な参照パターンを記憶する。
予測係数決定部18bは、最適次数・最適参照パターン記憶部33に記憶されている予報次数p*及び参照パターンを予報処理の予報次数及び参照パターンとして設定し、フレーム100−tと、予報次数p*及び参照パターンにより定まる参照フレームとに基づいて、予測誤差Epを最小化するようにフレーム100−tの予測係数を算出する。
予報信号生成部19bは、予報次数p*及び参照パターンにより定まる1枚以上の参照フレームと、予測係数決定部18bによって算出された予測係数とに基づいて、予報対象フレームであるフレーム100−(t+1)の予報信号を生成する。
図10及び図11は、クラスに基づく予報処理の例を示す図である。図10及び図11では、複数のフレーム100のうち現時刻のフレームは、フレーム100−tである。フレーム100同士の時間間隔は、例えば、1分間等の単位時間長である。図10及び図11に示すように、第3実施形態における予報装置1bは、フレーム100を属性に基づいてクラス分けし、クラス毎に予報処理を行う。
図10及び図11では、Classとして、Class1(例えば、30代女性)、Class2(例えば、40代女性)及びClass3(例えば、50代女性)の3つのクラスを例示している。図10では、予報装置1bが、Class2の予報処理に、同クラスのフレーム100−tと、フレーム100−(t+1−D)と、他のクラスのフレーム100−tと、フレーム100−(t+1−D)とを参照フレームとして用いる場合を示している。図11では、予報装置1bが、Class2の予報処理に、図10よりも多くのフレーム100を参照フレームとして用いる場合を示している。
以下、第3実施形態における予報装置1bの処理について詳細に説明する。
[クラス間予測]
クラス分離処理部28は、空間情報データf(x,t)を属性毎に分解する。属性毎に分解すると、f(x,t)は式(30)に示すように各属性の和として表される。
仮想予報信号生成部13bは、クラス〜cに属するフレーム100−tの予報信号を式(31)のように生成する。なお、「〜c」は「〜」がcの上に記載されることを意味する。
ここで、i番目の参照ブロックは、クラスIDci(t)及び時間位置li(t)により、規定される。ベクトルcp(t)(=c1(t),…,cp(t))は参照ブロックのクラスリストである。ベクトルlp(t)(=l1(t),…,lp(t))は参照ブロックのフレームリストである。
スカラーci(t),li(t)の取り得る範囲は、ci(t)=0,…,C−1、li(t)=0,…,L−1,A,A±1,…,A±L,…,MA,MA±1,…,MA±Lである。ここで、Cはクラス数である。Lは近傍における参照フレームの存在区間である。Aは信号の周期にあたる時間間隔であり、Mは外部から与えられるパラメータであり、第1周期前から第M周期前のフレーム及びその近傍フレームを参照候補とすることを意味する。周期の例としては、一日、一週、一月、一年等がある。具体的なリストの構成方法は後述する。
ベクトルap(t)(=a0(t),a1(t),…,ap(t))は式(1)の解として得られる。予測係数算出部12bは、同式におけるf(x,t−i)をg(x,t−li)に置き換えて解を導出する。言い換えると、予測係数ap(t)は、複数のリスト(ベクトルcp(t)及びベクトルlp(t))で規定されるp個の予測参照ブロックを参照し、フレーム100−tの予測誤差を最小化する規範に基づいて設定される。この予測係数ap(t)が式(31)の通り、フレーム100−tの予報係数として用いられる。
次に、予報処理を一般化する目的で、第τフレームの予測誤差を最小化する係数ap(τ)を用いて、第〜τフレーム(フレーム100−(t+〜τ))を予報する場合を考える。なお、「〜τ」は、「〜」が「τ」の上に記載されることを意味する。予報処理が、第〜τフレームに適用される一方で、予報係数ap(τ)が第τフレームの予報処理に基づき生成される場合である。この場合、仮想予報誤差算出部14bは、式(32)に基づいて予報誤差を算出する。
[予報次数の適応選択]
式(32)の予報処理に用いられる次数である予報次数pの設定法(データの個数の決定法)を説明する。第3実施形態において予測次数の最適値の推定方法は、2つのステップで構成される。第一ステップでは、次数pの予報処理に対して、最適な参照パターンを同定する。まず、予測係数算出部12bは、各参照パターンに対して、フレーム100−(t−1)を予測対象とした場合の予測誤差を最小化するp次の予測係数ap(t−1)を算出する。次に、仮想予報誤差算出部14は、予測係数ap(t−1)を用いて、フレーム100−tを予報対象とした場合のp次予報誤差を求める。さらに、仮想予報誤差最小化判定部29が、各参照パターンの予報誤差を比較し、予報誤差を最小化する参照パターンを同定する。つまり、第一ステップの処理は、フレーム100−tに対する仮想予報誤差を最小化する参照パターンを選択する処理であり、式(33)のように表せる。
第二ステップでは、第一ステップで求めた参照パターンを用いて、最適な次数を同定する。第一ステップで求めた参照パターンを用いることで、次数pにおける仮想予測誤差を最小化できる。ここで、p=1,…,Pとする。Pは外部から与えられるものとする。そこで、仮想予報誤差最小化判定部15bは、各次数での最小仮想予報誤差を比較し、仮想予報誤差を最小化する次数pを予報次数p*として同定する。つまり、第二ステップの処理は、フレーム100−tに対する仮想予報誤差を最小化する予報次数の同定する処理であり、式(34)のように表せる。
予報装置1bは、上式で定めた予報次数p*を用いて、クラス毎に式(31)に基づき予報処理を行う。上述の予報次数p*の最適化において、参照パターンの組合せを制限することで、計算量を低減可能となる。例えば、次のような方法がある。
1.p=1に対して、1次の仮想予報におけるクラスIDと参照フレームを同定する。この場合、式(33)は式(35)のようになる。
2.for p=2,…,P
3.p−1次の仮想予報により定めたp−1個のクラスIDと参照フレームを用いる条件下において、最低なp個目のクラスIDと参照フレームを式(36)に基づき定める。
4.ベクトルcp *(t−1),lp *(t−1)の第1から第p−1要素はベクトルcp *(t−1),ベクトルlp *(t−1)を継承し、cp(t−1),lp(t−1)の第p要素として、スカラーcp *(t−1),スカラーlp *(t−1)を設定する。
上記方法に従えば、各予報次数に対する参照パターンを一組に限定可能となる。
次に、予報装置1bの動作の例を説明する。
図12は、予報装置1bの動作の例を示すフローチャートである。
クラス分離処理部28は、複数のフレーム100を時系列データとして読み込む(ステップS301)。クラス分離処理部28は、入力した時系列データである複数のフレーム100を属性に応じて複数のクラスに分離する(ステップS302)。クラス分離処理部28は、分離後のフレーム100を、クラスIDに対応付けて10bに記録する。
次数更新部11は、予報次数pを予報次数の候補p=1,…,Pの順に更新する(ステップS303)。ステップS304〜ステップS310を実行することによって、データ数決定装置2bは最適な予報次数pを決定する。参照パターン更新部30は、参照パターンを順に更新する(ステップS304)。例えば、参照パターン更新部30は、クラスIDを順番に更新する。データ数決定装置2bは、最適参照パターン更新処理を実行することによって最適な最適パターンを決定する(ステップS305)。なお、最適参照パターン更新処理の具体的な処理については後述する。
全ての参照パターンにおいて最適参照パターン更新処理が実行されると(ステップS306)、仮想予報誤差最小化判定部15bは参照パターンにおいて得られた仮想予報誤差と、仮想予報誤差最小値記憶部16に記憶されている暫定最小値との大きさを比較する(ステップS307)。仮想予報誤差が暫定最小値以上である場合(ステップS307:NO)、仮想予報誤差最小化判定部15bはステップS310に処理を進める。例えば、仮想予報誤差最小化判定部15bは、次数更新部11に対して予報次数の更新を指示する。
一方、仮想予報誤差が仮想予報誤差の暫定最小値よりも小さい場合(ステップS307:YES)、仮想予報誤差最小化判定部15bはより小さい仮想予報誤差を、仮想予報誤差の暫定最小値とし、仮想予報誤差最小値記憶部16に記憶されている値を更新する(ステップS308)。また、仮想予報誤差最小化判定部15bは、現時点の予報次数pで最適次数・最適参照パターン記憶部33に記憶されている予報次数を更新し、更新後の予報次数p*に対する最適な参照パターンを最適次数・最適参照パターン記憶部33に記録する(ステップS309)。
ステップS304〜ステップS309の処理が全ての予報次数で実行されると(ステップS310)、予測係数決定部18bは、最適次数・最適参照パターン記憶部33に記憶されている予報次数p*及び参照パターンを、予報対象フレームであるフレーム100−(t+1)の予報処理において使用する予報次数及び参照パターンに設定する(ステップS311)。予測係数決定部18bは、フレーム100−tと予報次数p*及び参照パターンにより定まる参照フレームとに基づいて、フレーム100−tの予測係数を算出する(ステップS312)。予報信号生成部19bは、予報次数p*及び参照パターンにより定まる1枚以上の参照フレームと予測係数とに基づいて、予報対象フレームであるフレーム100−(t+1)の予報信号を生成する(ステップS313)。
図13は、予報装置1bの動作の例を示すフローチャートである。なお、図13では、予報装置1bが行う最適参照パターン更新処理について説明する。
予測係数算出部12bは、次数更新部11によって更新された予報次数pおよび参照パターンにより定まる1枚以上のフレーム100を、参照フレームとして読み込む。予測係数算出部12bは、フレーム100−(t−1)を予測対象フレームとした場合における予測誤差を最小化するp次の予測係数を算出する(ステップS3051)。仮想予報信号生成部13bは、予報次数p及び参照パターンにより定まる1枚以上の参照フレームと、予測係数算出部12bによって算出されたp次の予測係数とを読み込み、フレーム100−tの仮想予報処理の結果を表す仮想予報信号を生成する(ステップS3052)。仮想予報誤差算出部14bは、フレーム100−tと、生成された仮想予報信号とを読み込み、フレーム100−tの仮想予報誤差を算出する(ステップS3053)。
仮想予報誤差最小化判定部29は、仮想予報誤差算出部14bによって算出された仮想予報誤差と、仮想予報誤差最小値記憶部31に記憶されている仮想予報誤差の暫定最小値との大きさを比較する(ステップS3054)。仮想予報誤差が暫定最小値よりも大きい場合(ステップS3054:NO)、仮想予報誤差最小化判定部29は参照パターン更新部30に対して参照パターンの更新を指示する。
一方、仮想予報誤差が暫定最小値よりも小さい場合(ステップS3054:YES)、仮想予報誤差最小化判定部29はより小さい仮想予報誤差を、仮想予報誤差の暫定最小値とし、仮想予報誤差最小値記憶部31に記憶されている値を更新する(ステップS3055)。さらに、仮想予報誤差最小化判定部29は、現時点の参照パターンを最適な参照パターンとして最適参照パターン記憶部32に記憶されている参照パターンを更新する(ステップS3056)。
以上のように、第3実施形態のクラス決定装置は、予測部としての仮想予報信号生成部13bと、差算出部としての仮想予報誤差算出部14bと、クラス決定部としての仮想予報誤差最小化判定部29とを備える。仮想予報信号生成部13bは、属性に基づくクラスに分類された時系列データに含まれている、予測する対象である予測対象データを予測するために参照される予測対象データの属するクラスと異なるクラスに分類された少なくとも一つのクラスの過去データを用いてクラス毎に予測データを生成する。仮想予報誤差算出部14bは、過去データとの時間相関を有する予測対象データと、予測データとの差を算出する処理を、予測データを生成したクラス毎に行う。仮想予報誤差最小化判定部29は、クラス毎に得られた差が最小となるクラスを、予測対象データを予測するために参照される複数の過去データの個数を決定するためのクラスに決定する。これにより、適切な参照クラスを決定することができる。そのため、他クラスを参照するブロックベースの線形モデルに対する予報処理において、適切な参照クラス、各参照クラス内の参照フレーム、および予報次数を設定することができ、予測精度を向上させることが可能になる。
上述した実施形態におけるデータ数決定装置、予報装置、クラス決定装置の少なくとも一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。