(57)【要約】【課題】      柔軟に処理を変更可能であり、さらに、効率的な演算処理、特に累算処理を実現可能な付加情報処理装置等を提供する。【解決手段】  ＡＬＵ２７とデータメモリＤＭ３１を有する基本処理部３に付加される付加処理部５であって、ＡＬＵ２７と並列して演算を実行可能な加算器２９と、ＡＬＵ２７及び加算器２９の演算結果に基づいてアクセスが行われるテンプレートメモリＴＭ３３及びサーチエリアメモリＳＭ３５を備え、ＡＬＵ２７の演算結果に基づくＤＭ３１へのアクセスとＡＬＵ２７及び加算器２９の演算結果に基づくＴＭ３３及びＳＭ３５へのアクセスが切り替えられる。【選択図】  図３
2007109111.tif 000002
【特許請求の範囲】
【請求項１】
演算を行う演算手段と前記演算手段の演算結果に基づいてアクセスが行われる記憶手段と切替手段を有する情報処理装置に付加される付加情報処理装置であって、
前記演算手段と並列して演算を実行可能な付加演算手段と、
前記演算手段及び前記付加演算手段の演算結果に基づいてアクセスが行われる付加記憶手段を備え、
前記切替手段は前記演算手段の演算結果に基づく前記記憶手段へのアクセスと前記演算手段及び前記付加演算手段の演算結果に基づく前記付加記憶手段へのアクセスを切り替える、付加演算情報処理装置。
【請求項２】
前記付加記憶手段から読み出されたデータに基づいて累算を行う累算手段を有し、
前記情報処理装置は累算手段の累算結果を読み出し可能である、請求項１記載の付加情報処理装置。
【請求項３】
外部より入力された値に基づいて処理を行う情報処理装置であって、
外部より入力された値に対して複数の演算を並列して実行可能な演算手段と、
前記演算手段の複数の演算結果に基づいて記憶される複数のデータを並列して読み出し可能な記憶手段と、
前記記憶手段により読み出されたデータの累算を行う累算手段と、を備える情報処理装置。
【請求項４】
複数の演算を並列して実行可能な演算手段の演算結果に基づいて複数のデータに並列してアクセス可能な記憶装置であって、
前記演算手段により並列して実行可能な演算数以下の数のデータが並列してアクセス可能な第１記憶手段を有する記憶装置。
【請求項５】
１つのデータがアクセス可能な又は前記演算手段により並列して実行可能な演算数よりも少ない数のデータが並列してアクセス可能な第２記憶手段と、
前記第１記憶手段のみのデータに並列してアクセスするか又は前記第１記憶手段及び前記第２記憶手段のデータに並列してアクセスするかを切り替える切替手段と、
を有する請求項４記載の記憶装置。
【請求項６】
前記演算手段は複数の加算を並列して実行可能であり、
前記演算手段の複数の加算結果のそれぞれのアドレスに記憶されたデータがアクセスされる、請求項４又は５記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、付加情報処理装置、情報処理装置、及び、記憶装置に関し、特に演算手段と記憶手段を有する情報処理装置に付加される付加情報処理装置等に関する。
【背景技術】
【０００２】
信号処理は大量の信号データに対して演算を行うものであるが、このような信号処理の一例として、動画データの連続するフレームについて時間方向の冗長性を除去するための動き検出処理がある。
【０００３】
これまで、動き検出処理は、専用回路（特許文献１参照）と汎用プロセッサへの移植（特許文献２参照）により実装されてきた。
【０００４】
【特許文献１】特開平１−３１９３８２号公報
【特許文献２】特公平１０−５０６４９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、専用回路では固定化した処理しかできない。そのため、専用回路による方法は、仕様変更やバージョンアップに対応することが難しい。
【０００６】
また、汎用プロセッサに移植しても、汎用プロセッサは効率的に演算処理を行うことができない。
【０００７】
このような課題は、動き検出処理等の動画像データの処理に限らず、例えばフィルタリングに用いられる畳み込み演算、データの統計処理に用いられる自乗和演算などの他の演算処理に関しても存在するものである。
【０００８】
そこで、本発明の目的は、柔軟に処理を変更可能であり、さらに、効率的な演算処理、特に累算処理を実現可能な付加情報処理装置、情報処理装置、及び、記憶装置を提案することである。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、演算を行う演算手段と前記演算手段の演算結果に基づいてアクセスが行われる記憶手段と切替手段を有する情報処理装置に付加される付加情報処理装置であって、前記演算手段と並列して演算を実行可能な付加演算手段と、前記演算手段及び前記付加演算手段の演算結果に基づいてアクセスが行われる付加記憶手段を備え、前記切替手段は前記演算手段の演算結果に基づく前記記憶手段へのアクセスと前記演算手段及び前記付加演算手段の演算結果に基づく前記付加記憶手段へのアクセスを切り替える、付加演算情報処理装置である。
【００１０】
なお、請求項１に係る発明において、付加演算手段は、入力された値に基づく演算に加えて定数を加算する機能を有するものであってもよい。
【００１１】
請求項２に係る発明は、請求項１記載の付加情報処理装置であって、前記付加記憶手段から読み出されたデータに基づいて累算を行う累算手段を有し、前記情報処理装置は累算手段の累算結果を読み出し可能である。
【００１２】
請求項３に係る発明は、外部より入力された値に基づいて処理を行う情報処理装置であって、外部より入力された値に対して複数の演算を並列して実行可能な演算手段と、前記演算手段の複数の演算結果に基づいて記憶される複数のデータを並列して読み出し可能な記憶手段と、前記記憶手段より読み出されたデータの累算を行う累算手段と、を備える情報処理装置である。
【００１３】
請求項４に係る発明は、複数の演算を並列して実行可能な演算手段の演算結果に基づいて複数のデータに並列してアクセス可能な記憶装置であって、前記演算手段により並列して実行可能な演算数以下の数のデータが並列してアクセス可能な第１記憶手段を有する記憶装置である。
【００１４】
請求項５に係る発明は、請求項４記載の記憶装置であって、１つのデータにアクセス可能な又は前記演算手段により並列して実行可能な演算数よりも少ない数のデータが並列してアクセス可能な第２記憶手段と、第１記憶手段のみのデータに並列してアクセスするか又は第１記憶手段及び第２記憶手段のデータに並列してアクセスするかを切り替える切替手段と、を有するものである。
【００１５】
請求項６に係る発明は、請求項４又は５記載の記憶装置であって、前記演算手段が複数の加算を並列して実行可能であり、前記演算手段の複数の加算結果のそれぞれのアドレスに記憶されたデータがアクセスされるものである。
【発明の効果】
【００１６】
本願請求項１及び２に係る発明によれば、例えば縮小命令セットコンピュータ（ＲＩＳＣ）などの情報処理装置に加算器等の演算器や記憶装置を付加して処理を行うことにより、回路パターンが固定されずに効率的な演算処理が実現可能となる。
【００１７】
また、本願請求項２に係る発明によれば、累算器による処理を行うことにより、信号処理等の処理を効率的に行うことが可能となる。
【００１８】
さらに、本願請求項３に係る発明によれば、演算手段と記憶手段と累算手段が協働することにより、回路パターンが固定されずに効率的な演算処理が実現可能となる。
【００１９】
さらに、本願請求項４から６に係る発明によれば、演算手段の複数の演算結果に基づいて記憶装置の複数のデータがアクセスされることにより、回路パターンが固定されずに効率的な演算処理が実現可能となる。
【００２０】
さらに、本願請求項５及び６に係る発明によれば、２つの記憶手段の一方又は両方にアクセスして処理をすることにより、回路パターンが固定されずに効率的な演算処理が実現可能となる。
【００２１】
さらに、本願請求項６に係る発明によれば、加算によりアドレスが生成されることにより、例えば動き検出処理などの信号処理を効率的に行うことが可能となる。
【００２２】
さらに、本願各請求項に係る発明によれば、回路規模を小さくすることができ、消費電力を少なくすることが可能となる。
【００２３】
以下では、図１に示される１６ビットのＲＩＳＣをベースにして図２に示される動き検出専用プロセッサを構成した場合について説明する。図１は、ベースプロセッサである１６ビットのＲＩＳＣの構成を示す図である。これは、命令フェッチＩＦ、命令デコードＩＤ、実行ＥＸ、メモリアクセスＭＥ、及び、ライトバックＷＢの５つのステージからなっており、プログラムカウンタＰＣ、命令メモリＩＭ、プロセッサレジスタＰＲ、レジスタファイルＲＦ、ＡＬＵ、データメモリＤＭなどからなっている。
【００２４】
図２は、図１に示されるＲＩＳＣをベースとする本発明の動き検出専用プロセッサの構成の一例を示す図である。この例では、ＥＸステージに加算器、ＭＥステージにテンプレートメモリＴＭとサーチエリアメモリＳＭ、ＷＢステージに差分絶対値演算器ＳＡＤと累算レジスタＡＣＣを付加している。
【００２５】
図２の動き検出専用プロセッサをＦＰＧＡデバイスを搭載したボードを用いて設計・検証を行うと、回路規模を表すＬｏｇｉｃ  Ｅｌｅｍｅｎｔ数は３．３１３ＬＥｓであり、Ｐｅｔｅｒｓらの設計した動き検出専用プロセッサ（７．５３０ｓｌｉｃｅｓ（約１５．１４０ＬＥｓ））１／４回路規模で実現されている。
【発明を実施するための最良の形態】
【００２６】
図３は、本発明の実施の形態の一例である情報処理装置１の概略を示すブロック図である。
【００２７】
図３を参照して、情報処理装置１は、基本的な処理を実行可能な基本処理部３と画像データに基づく処理を実行可能な付加処理部５を備える。基本処理部３は、プログラムカウンタＰＣ７と命令データを保持する命令メモリＩＭ９とパイプラインレジスタＰＲ１１とレジスタファイル１３とＰＲ１５と算術論理演算ユニットＡＬＵ２７とパイプラインレジスタＰＲ１９とデータメモリＤＭ３１とＰＲ２３を有する。付加処理部５は、加算器２９と画素データを保持するデュアルポートのテンプレートメモリＴＭ３３と画素データを保持するシングルポートのサーチエリアメモリ３５と累算処理を行う累算部２５を有する。
【００２８】
図３の構成により、情報処理装置１は、パイプラインレジスタＰＲ１１と１５と１９と２３により制御される５つのステージの処理が可能となる。すなわち、情報処理装置１は、ＰＣ７に保持された値に基づいてＩＭ９より命令データが読み出される命令フェッチＩＦのステージと、読み出された命令に基づいてＲＦ１３に対する処理が行われる命令デコードＩＤのステージと、ＡＬＵ２７と加算器２９からなる演算部１７による演算処理が行われる実行ＥＸのステージと、ＤＭ３１とＴＭ３３とＳＭ３５からなる記憶部２１に対する処理が行われるメモリアクセスＭＥのステージと、累算部２５による累算処理及びＲＦ１３に対して書き込みがなされるライトバックＷＢのステージという５つのステージの処理が可能となる。
【００２９】
続いて、図４から図１０を参照して、情報処理装置１が命令を実行するときの動作を説明する。
【００３０】
図４は、図３の情報処理装置の第１の動作を示す図であって、基本処理部３が動作して処理が行われるＬＯＡＤ命令を実行するときの動作を示す図である。ここで、ＬＯＡＤ命令の命令データにおいては２つのレジスタＲＥＧ＿ＡとＲＥＧ＿Ｂが指定されているとする。
【００３１】
まず、情報処理装置１は、ＰＣ７の値をアドレスにしてＩＭ９から命令データを読み出し、ＰＲ１１に保持させる。
【００３２】
次に、情報処理装置１は、ＰＲ１１に保持されたＲＥＧ＿Ｂの値をレジスタ番号としてＲＦ１３からＲＥＧ＿Ｂの内容を読み出し、ＰＲ１５に保持させる。
【００３３】
次に、情報処理装置１は、ＰＲ１５に保持されたＲＥＧ＿Ｂの内容をＡＬＵ２７に入力してそのまま出力させ、ＰＲ１９に保持させる。
【００３４】
次に、情報処理装置１は、ＰＲ１９に保持されたＲＥＧ＿Ｂの内容をアドレスとしてＤＭ３１からデータを読み出してＰＲ２３に保持させる。
【００３５】
次に、情報処理装置１は、ＰＲ２３に保持されたデータをＲＦ１３のＲＥＧ＿Ａに書き込む。
【００３６】
以上により、情報処理装置１は、ＬＯＡＤ命令の命令データに基づいて、ＲＥＧ＿Ｂの値をアドレスとしてＤＭ３１からデータを読み出してＲＥＧ＿Ａに格納する動作を行う。
【００３７】
同様に基本処理部３により処理が行われる命令として、例えば、下位ビットは命令データにより指定される即値で上位ビットは０である値をアドレスとしてＤＭ３１からデータを読み出してレジスタに格納するＬＤＩＬ命令、レジスタＲＥＧ＿Ａの値をアドレスとしてレジスタＲＥＧ＿Ｂの内容をＤＭ３１に書き込むＳＴＯＲＥ命令、２つのレジスタの値を加算して加算の結果をレジスタに書き込むＡＤＤ命令などがある。
【００３８】
続いて、図５から図７を参照して、ＴＭ３３とＳＭ３５から画素データを読み出して差分絶対値を計算して累算する処理の命令であるＳＡＤ命令の動作について説明する。この命令は、例えばサーチエリアにおけるテンプレート検索処理に用いられる。
【００３９】
図５は、図３の情報処理装置の第２の動作を示す図であって、基本処理部３と付加処理部５が協働して動作して処理が行われるＳＡＤ命令を実行するときの動作を示す図である。ここで、ＳＡＤ命令の命令データにおいては即値が指定されており、ＳＡＤ命令においては、レジスタファイルに含まれる１６本の汎用レジスタｒ０からｒ１５のうちのｒ１４とｒ１５が暗示的に用いられるとする。
【００４０】
まず、情報処理装置１は、ＰＣ７の値をアドレスにしてＩＭ９から命令データを読み出し、ＰＲ１１に保持させる。
【００４１】
次に、情報処理装置１は、汎用レジスタｒ１４の内容を読み出しテンプレートのベースアドレスとしてＰＲ１５に保持させる。また、汎用レジスタｒ１５の内容を読み出しサーチエリアのベースアドレスとしてＰＲ１５に保持させる。さらに、命令データにおいて指定された即値をＰＲ１５に保持させる。
【００４２】
次に、情報処理装置１は、ＰＲ１５に保持されたテンプレートのベースアドレス及び即値をＡＬＵ２７に入力し、ＡＬＵ２７にテンプレートのアドレスを計算させてＰＲ１９に保持させる。また、ＰＲ１５に保持されたサーチエリアのベースアドレス及び即値を加算器２９に入力し、加算器２９にサーチエリアのアドレスの計算させてＰＲ１９に保持させる。
【００４３】
次に、情報処理装置１は、ＰＲ１９に保持されたテンプレートのアドレスをＴＭ３３に入力してテンプレートの画素データを読み出し、ＰＲ２３に保持させる。また、ＰＲ１９に保持されたサーチエリアのアドレスをＳＭ３５に入力してサーチエリアの画素データを読み出し、ＰＲ２３に保持させる。
【００４４】
次に、情報処理装置１は、ＰＲ２３に保持されたテンプレートの画素データとサーチエリアの画素データを累算部２５に入力して、累算部２５にテンプレートの画素データとサーチエリアの画素データの差分絶対値を計算して累算する処理を行わせる。
【００４５】
以上により、情報処理装置１は、ＳＡＤ命令により、ＴＭ３３に保持されたテンプレートの画素データとＳＭ３５に保持されたサーチエリアの画素データの差分絶対値を計算して累算することが可能となる。
【００４６】
続いて、図６を参照して、ＰＲ１９とＰＲ２３により制御されるメモリアクセスＭＥのステージのＳＡＤ命令実行時の具体的な動作の一例を説明する。
【００４７】
図６は、図３の情報処理装置のＳＡＤ命令実行時におけるメモリアクセスステージの動作の具体的な一例を示す図である。図６において、データメモリＤＭは読み出し及び書き込みが可能なメモリであり、１ビットの信号ＣＥ０と１６ビットの信号ＡＤＲ０が入力されることによりアドレスＡＤＲ０のデータＲ−ＤＡＴＡ０の読み出しがなされ、１ビットの信号ＷＥと１６ビットの信号ＡＤＲ０と１６ビットの信号Ｗ−ＤＡＴＡが入力されるとアドレスＡＤＲ０にデータＷ−ＤＡＴＡの書き込みが行われる。テンプレートメモリＴＭはデュアルポートの読み出し専用メモリであり、１ビットの信号ＣＥ１及び１６ビットの信号ＡＤＲ１が入力されることによるアドレスＡＤＲ１のデータＲ−ＤＡＴＡ１の読み出しと１ビットの信号ＣＥ２及び１６ビットの信号ＡＤＲ２が入力されることによるアドレスＡＤＲ２のデータＲ−ＤＡＴＡ２の読み出しが並列して実現可能なものである。サーチメモリＳＭはシングルポートの読み出し専用メモリであり、１ビットの信号ＣＥ３及び１６ビットの信号ＡＤＲ３が入力されることによりアドレスＡＤＲ３のデータＲ−ＤＡＴＡ３が読み出される。
【００４８】
ＳＡＤ命令実行時には、ＰＲ１９に保持されたデータに基づいて、テンプレートメモリＴＭに対して信号ＣＥ１及びＡＤＲ１が入力され、サーチエリアメモリＳＭに対して信号ＣＥ３及びＡＤＲ３が入力される。そして、テンプレートメモリＴＭから読み出された８ビットのデータとサーチエリアメモリＳＭから読み出された８ビットのデータが合成されて１６ビットのデータとしてＰＲ２３に保持される。
【００４９】
続いて、図７を参照して、ＳＡＤ命令実行時における累算部２５の具体的な動作の一例を説明する。
【００５０】
図７は、図３の累算部２５の構成の一例を示す図である。累算部２５は、差分絶対値累算部（ＳＡＤ）４１と累算レジスタ（ＡＣＣ）４３を有する。差分絶対値累算部ＳＡＤ４１は、差分絶対値演算器４５と加算器４７と切り替え部ＭＵＸ４９を有する。
【００５１】
差分絶対値演算器４５は、ＰＲ２３に保持されたテンプレートとサーチエリアの画素の差分絶対値を計算する。そして、累算部２５は、ＭＵＸ４９により、最初の計算においては差分絶対値演算器４５の計算結果をＡＣＣに格納させ、２回目以降の計算においては加算器４７により差分絶対値演算器４５の計算結果とＡＣＣに保持された値を加算してＡＣＣに保持させる。
【００５２】
続いて、図８及び図９を参照して、デュアルポートのＴＭ３３から横方向に２画素離れたの画素データを読み出して差分絶対値を計算して累算する処理の命令であるＥＤＧＥＸ命令の動作について説明する。この命令は、例えばＴＭ３３に記憶されるテンプレートの４つの画素データであって、それぞれある画素の上下左右に位置する４つの画素データａ，ｂ，ｃ，ｄに対して下記の(1)式により特徴量Ｅを計算して行われるエッジ検出などに用いられる。
【００５３】
【数１】
2007109111.tif 000003
【００５４】
図８は、図３の情報処理装置の第３の動作を示す図であって、基本処理部３と付加処理部５が協働して動作して処理が行われるＥＤＧＥＸ命令を実行するときの動作を示す図である。ここで、ＥＤＧＥＸ命令の命令データにおいては即値が指定されているとする。
【００５５】
まず、情報処理装置１は、ＰＣ７の値をアドレスにしてＩＭ９から命令データを読み出し、ＰＲ１１に保持させる。
【００５６】
次に、情報処理装置１は、汎用レジスタｒ１４の内容を読み出しテンプレートのベースアドレスとしてＰＲ１５に保持させる。また、命令データにおいて指定された即値をＰＲ１５に保持させる。
【００５７】
次に、情報処理装置１は、ＰＲ１５に保持されたテンプレートのベースアドレス及び即値をＡＬＵ２７に入力し、ＡＬＵ２７にテンプレートのアドレスを計算させてＰＲ１９に保持させる。また、ＰＲ１５に保持されたテンプレートのベースアドレス及び即値を加算器２９に入力し、加算器２９にテンプレートの２画素離れた画素アドレスを計算させてＰＲ１９に保持させる。ここで、加算器２９は、例えば、入力されたベースアドレス及び即値の加算に加えて定数を加算する機能を有するものであるとする。この定数は、例えば、水平方向に２画素離れた画素の画素データの累算を行うＥＸＧＥＸ命令では２であり、垂直方向に２画素離れた画素の画素データの累算を行うＥＸＧＥＹ命令では３２である。
【００５８】
次に、情報処理装置１は、ＰＲ１９に保持されたテンプレートのアドレスとテンプレートの２画素離れた画素アドレスをＴＭ３３に入力してテンプレートの２つの画素データを読み出し、ＰＲ２３に保持させる。
【００５９】
次に、情報処理装置１は、ＰＲ２３に保持されたテンプレートの２つの画素データを累算部２５に入力して、累算部２５にテンプレートの２つの画素データの差分絶対値を計算して累算する処理を行わせる。
【００６０】
以上により、情報処理装置１は、ＥＤＧＥＸ命令により、ＴＭ３３に保持されたテンプレートの２つの画素データの差分絶対値を計算して累算することが可能となる。
【００６１】
続いて、図９を参照して、メモリアクセスＭＥのステージのＥＤＧＥＸ命令実行時の具体的な動作の一例を説明する。
【００６２】
図９は、図３の情報処理装置のＥＤＧＥＸ命令実行時におけるメモリアクセスステージの動作の具体的な一例を示す図である。ＥＤＧＥＸ命令実行時には、ＰＲ１９に保持されたデータに基づいて、テンプレートメモリＴＭに対して信号ＣＥ１及びＡＤＲ１並びにＣＥ２及びＡＤＲ２が入力されて８ビットの２つのデータＲ−ＤＡＴＡ１及びＲ−ＤＡＴＡ２が読み出される。そして、テンプレートメモリＴＭから読み出されたＲ−ＤＡＴＡ１及びＲ−ＤＡＴＡ２が合成されて１６ビットのデータとしてＰＲ２３に保持される。
【００６３】
続いて、図１０を参照して、累算部２５の累算結果をＲＦ１３に書き込む処理の命令であるＧＥＴＡＣ命令の動作について説明する。この命令により、基本処理部３は、負荷処理部５による処理の結果を使用することが可能となる。
【００６４】
図１０は、図３の情報処理装置の第４の動作を示す図であって、累算部２５の累算結果をＲＦ１３に書き込む処理が行われるＧＥＴＡＣ命令を実行するときの動作を示す図である。ここで、ＧＥＴＡＣ命令の命令データにおいてはレジスタＲＥＧ＿Ａが指定されているとする。
【００６５】
まず、情報処理装置１は、ＰＣ７の値をアドレスにしてＩＭ９から命令データを読み出し、ＰＲ１１に保持させる。
【００６６】
次に、情報処理装置１は、ＰＲ１１に保持された命令データをＰＲ１５に保持させる。
【００６７】
次に、情報処理装置１は、ＰＲ１５に保持された命令データをＰＲ１９に保持させる。
【００６８】
次に、情報処理装置１は、ＰＲ１９に保持された命令データをＰＲ２３に保持させる。
【００６９】
次に、情報処理装置１は、累算部２５の累算結果の値をレジスタＲＥＧ＿Ａに格納する。
【００７０】
以上により、情報処理装置１は、ＧＥＴＡＣ命令の命令データに基づいて、累算部２５の累算結果の値をＲＥＧ＿Ａに格納する動作を行う。
【００７１】
図３の情報処理装置１は、ＬＯＡＤ命令等の基本的な処理（図４参照）、ＳＡＤ命令の処理（図５から図７参照）、ＥＤＧＥＸ命令の処理（図８と図９参照）及びＧＥＴＡＣ命令の処理（図１０参照）により、例えば図１１に示される動き検出処理を行うことが可能となる。
【００７２】
まず、動き検出の原理について説明する。動き検出は動画データの連続するフレームについて時間方向の冗長性を除去するものである。
【００７３】
動き検出の最も一般的なブロックマッチングである。このブロックマッチングの基本的な演算は、まず、処理フレームにテンプレートブロックＩｃを設定し、参照フレームにサーチウィンドウＩｒを設定する。そして、(2)式の差分絶対値の総和（ＳＡＤ）を計算する。(2)式において、ＭとＮはそれぞれブロックの縦と横の画素数である。この(2)式の計算は、図３の情報処理装置１において、ＳＡＤ命令（図５から図７参照）等を用いて実現可能である。
【００７４】
【数２】
2007109111.tif 000004
【００７５】
そして、SAD(k',l')がSADの最小値である場合、(k',l')を動きベクトルとする。
【００７６】
全探索法はすべての探索点のＳＡＤ値を計算する方法であり、常に最適な動きベクトルを検出できる。しかしながら、全探索法は計算量が多いという問題があり、計算量削減アルゴリズムがよく使われている。
【００７７】
図１１は、動き検出処理の計算量を削減するアルゴリズムの一つを示すフロー図である。この処理においては、縦と横の画素数が共に８画素のサブブロックにおいて、(3)式の判別式を１回計算して行うものである。この(3)式の計算は、図３の情報処理装置１において、ＥＤＧＥＸ命令（図８と図９参照）等を用いて実現可能である。
【００７８】
【数３】
2007109111.tif 000005
【００７９】
図１１に示される計算量削減アルゴリズムについて説明する。動き検出処理としてさまざまなものが知られているが、コンピュータシミュレーションによりビデオシーケンス“Susie”で評価を行ったところ、図１１に示されるアルゴリズムの差分絶対値演算の回数は、全探索法の約１０００分の１、三段探索法の約３１分の１、ブロック勾配探索法の１１分の１であり、大幅に計算量が削減されている。また、画像の品質を示すＰＮＳＲは35.28dBであり、全探索法（35.30dB）と遜色なく、三段探索法（34.97dB）やブロック勾配探索法（35.23dB）よりも優れた値となっている。
【００８０】
図１１を参照して、最初に、動きのないマクロブロックのスクリーニングを行う。テンプレートの画素を１：１６に間引いて（図１１のステップＳＴ１）、SAD(0,0)を計算する（図１１のステップＳＴ２）。もしSAD(0,0)が所定の閾値TH1よりも小さい場合には動きベクトルを（０，０）とし（図１１のステップＳＴ４）、計算を打ち切る。
【００８１】
次に、テンプレートの適用間引きを実施する（図１１のステップＳＴ５）。(3)式により計算される判別式Ｆの値に基づいて、サブブロックの間引くパターンを変更する。例えば、判別式Ｆの値が大きい場合には間引く画素数を小さくし、判別式Ｆの値が小さい場合には間引く画素数を大きくする。判別式Ｆの閾値は、経験的に１００に設定した。
【００８２】
次に、ブロック勾配探索法（ＢＢＧＤＳ法）により動きベクトルの探索を行う（図１１のステップＳＴ６）。もしSADの最小値が所定の閾値TH2よりも小さい場合には動きベクトルを設定して計算を打ち切る（図１１のステップＳＴ７）。
【００８３】
次に、アニーリング法による再探索を行う。２番目に小さいＳＡＤ値min2(SAD)が最小のＳＡＤ値min(SAD)のα倍よりも小さいならば（図１１のステップＳＴ８）、現行の最小値の点をはずしてＢＢＧＤＳ法を行う（図１１のステップＳＴ９）。もしＳＡＤの最小値が所定の閾値TH3よりも小さい場合には動きベクトルを設定して計算を打ち切る（図１１のステップＳＴ１０）。
【００８４】
次に、三段探索法による再探索を行う（図１１のステップＳＴ１１）。そして、これまでのＳＡＤの最小値となるベクトルを動きベクトルと設定し（図１１のステップＳＴ１２）、動き検出の処理を終了する。
【００８５】
図１１に示される処理を実行するときの図３の情報処理装置１の動作について説明する。図１１のフロー図において、テンプレートの適用間引き（ステップＳＴ５）は、(3)式の判別式により値Ｆが計算される。この計算は、互いに横に２画素離れたテンプレート画素の差分絶対値の累算を行うＥＤＧＥＸ命令と、互いに縦に２画素離れたテンプレート画素の差分絶対値の累算を行うＥＤＧＥＹ命令を実行して行われる。
【００８６】
また、図１１のフロー図において、SAD(0,0)の計算（ステップＳＴ２）、ＢＢＧＤＳ法の実行（ステップＳＴ６）、アニーリングによる再探索（ステップＳＴ９）、及び、三段探索（ステップＳＴ１１）の演算処理は、テンプレート画素とサーチエリア画素の差分絶対値の累算を行うＳＡＤ命令を用いて実行される。その他の計算に関しては、汎用のプロセッサと同じような処理により行われる。
【００８７】
なお、図１１の処理において、残差逐次検定法（ＳＳＤＡ法）を採用して更なる計算量の削減することが可能である。このＳＳＤＡ法は、計算中のＳＡＤ値が現行の最小値を交信する可能性がほとんどなくなった時点でその探索点での計算を打ち切る手法である。
【００８８】
動きのないマクロブロックのスクリーニング、テンプレートの適応的間引き及びＳＳＤＡ法は動き検出の性能低下を小さくして大幅に計算量を削減するためにあり、アニーリングや三段探索は少ない計算量の追加で局所最小値からの脱出を図って動き検出の性能を向上させるものである。
【００８９】
なお、図３の情報処理装置１は、動き検出処理以外にも、例えば、フィルタリングに用いられる畳み込み演算、データの統計処理に用いられる自乗和演算も可能である。
【図面の簡単な説明】
【００９０】
【図１】本発明の効果を具体的に示すための第１の図であって、ベースプロセッサである１６ビットの縮小命令セットコンピュータ（ＲＩＳＣ）の構成を示す図である。
【図２】本発明の効果を具体的に示すための第２の図であって、図１に示されるＲＩＳＣをベースとする動き検出専用プロセッサの構成の一例を示す図である。
【図３】本発明の実施の形態の一例である情報処理装置１の概略を示すブロック図である。
【図４】図３の情報処理装置の第１の動作を示す図であって、基本処理部３が動作して処理が行われるＬＯＡＤ命令を実行するときの動作を示す図である。
【図５】図３の情報処理装置の第２の動作を示す図であって、基本処理部３と付加処理部５が協働して動作して処理が行われるＳＡＤ命令を実行するときの動作を示す図である。
【図６】図３の情報処理装置のＳＡＤ命令実行時におけるメモリアクセスステージの動作の具体的な一例を示す図である。
【図７】図３の累算部２５の構成の一例を示す図である。
【図８】図３の情報処理装置の第３の動作を示す図であって、基本処理部３と付加処理部５が協働して動作して処理が行われるＥＤＧＥＸ命令を実行するときの動作を示す図である。
【図９】図３の情報処理装置のＥＤＧＥＸ命令実行時におけるメモリアクセスステージの動作の具体的な一例を示す図である。
【図１０】図３の情報処理装置の第４の動作を示す図であって、累算部２５の累算結果をＲＦ１３に書き込む処理が行われるＧＥＴＡＣ命令を実行するときの動作を示す図である。
【図１１】動き検出処理の計算量を削減するアルゴリズムの一つを示すフロー図である。
【符号の説明】
【００９１】
１    情報処理装置
３    基本処理部
５    付加処理部
１７  演算部
２１  記憶部
２５  累算部
２７  ＡＬＵ
２９  加算器
３１  データメモリＤＭ
３３  テンプレートメモリＴＭ
３５  サーチエリアメモリＳＭ
【図１】
2007109111.tif 000006
【図２】
2007109111.tif 000007
【図３】
2007109111.tif 000008
【図４】
2007109111.tif 000009
【図５】
2007109111.tif 000010
【図６】
2007109111.tif 000011
【図７】
2007109111.tif 000012
【図８】
2007109111.tif 000013
【図９】
2007109111.tif 000014
【図１０】
2007109111.tif 000015
【図１１】
2007109111.tif 000016