(57)【特許請求の範囲】
【請求項１】
演奏の内容を示す演奏情報を供給する過程と、
前記演奏を制御する複数の演奏制御用パラメータのうちのいずれかを指定する過程と、
複数ブロックからなるビデオ画像を供給する過程と、
供給された前記ビデオ画像から前記複数ブロックに対応する複数の動きベクトルを抽出する過程と、
抽出した前記複数の動きベクトルから、指定された前記演奏制御用パラメータに対応した制御データを算出する過程と、
算出した前記制御データに基づいて、指定された前記演奏制御用パラメータの変更または追加を行う過程と、
前記供給された演奏情報および前記変更または追加された演奏制御用パラメータに基づいて楽音を生成する過程と
を備えることを特徴とする楽音生成方法。
【請求項２】
請求項１に記載の楽音生成方法において、
前記演奏制御用パラメータの変更または追加を行う過程は、
算出した前記制御データにくわえて、過去に発生した演奏制御用パラメータにも基づいて、指定された前記演奏制御用パラメータの変更または追加を行う
ことを特徴とする楽音生成方法。
【請求項３】
前記制御データを算出する過程は、
抽出した前記複数ブロックのうちの一部の領域に対応する複数の動きベクトルから１つを算出する
ことを特徴とする請求項１または２に記載の楽音生成方法。
【請求項４】
請求項１ないし３のいずれかに記載の楽音生成方法において、
操作子の操作に応じて前記ビデオ画像の中の一部の領域を指定する過程と、
指定された前記一部の領域内の画像の変化を検出し、該変化を示す検出信号を発生する過程と
をさらに備え、
前記演奏制御用パラメータの変更または追加を行う過程は、
発生した前記検出信号に基づいて、指定された前記演奏制御用パラメータの変更または追加を行う
ことを特徴とする楽音生成方法。
【請求項５】
請求項１ないし４いずれかに記載の楽音生成方法において、
前記ビデオ画像の左右を反転させる反転過程と、
前記反転過程において出力されたビデオ画像を表示する表示過程と
を備えることを特徴とする楽音生成方法。
【請求項６】
請求項１ないし５いずれかに記載の楽音生成方法において、
前記演奏情報を供給する過程は、
当該演奏情報とともに、前記複数の演奏制御用パラメータのうちのいずれかを指定するイベント情報を供給し、
前記複数の演奏制御用パラメータのうちのいずれかを指定する過程は、
前記イベント情報に基づいて、前記複数の演奏制御用パラメータのうちのいずれかを指定する
ことを特徴とする楽音生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ビデオ画像を利用した楽音生成方法に関する。
【０００２】
【従来の技術】
従来より、画像に対応して演奏の制御を行う技術が提案されている。このような技術としては、例えば特許第２６２９７４号公報や、特許第２５０８１３６号公報に、被写体の輪郭を利用してテンポ等を制御する技術が開示されている。これらの技術によれば、入力されたビデオ信号から、Ｒ（赤）Ｇ（緑）、Ｂ（青）の各色信号を分離して、各色毎にデジタルデータとして階調を表す階調データを生成する。そして、各色の階調データと予め定めたしきい値データとに基づいて被写体を特定し、当該被写体の輪郭を検出する。
このように輪郭を特定した後、特許第２６２９７４０号公報に記載された技術では輪郭の複雑さに応じて演奏を制御し、特許第２５０８１３６号公報に記載された技術では被写体の重心の移動に応じて演奏を制御している。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した従来の技術においては、被写体を特定し輪郭を検出する必要があったので、処理にかかる負担が大きいという問題があった。すなわち、各画素についてＲＧＢ各色毎の階調データを作成してしきい値と比較しなければならず、その上さらに、検出した被写体の輪郭の複雑さや、重心の移動などを求めなくてはならなかった。また、被写体を特定するために予め定めるしきい値の決定も困難であり、必ずしも精度よく輪郭を検出できるとは限らなかった。
このように、画像に基づいて演奏を制御するために従来から提案されている技術は、被写体検出のためのシステム構成が複雑になったり、しきい値の設定によって動作が不安定になるという問題があった。
【０００４】
本発明は、上述した課題を解決するためになされたものであり、比較的簡易なシステムを用いて、画像に応じた演奏の制御を容易に行うことができる楽音生成方法を提供することを目的としている。
【０００５】
【課題を解決するための手段】
上述した課題を解決するために、請求項１に記載の発明は、演奏の内容を示す演奏情報を供給する過程と、前記演奏を制御する複数の演奏制御用パラメータのうちのいずれかを指定する過程と、複数ブロックからなるビデオ画像を供給する過程と、供給された前記ビデオ画像から前記複数ブロックに対応する複数の動きベクトルを抽出する過程と、抽出した前記複数の動きベクトルから、指定された前記演奏制御用パラメータに対応した制御データを算出する過程と、算出した前記制御データに基づいて、指定された前記演奏制御用パラメータの変更または追加を行う過程と、前記供給された演奏情報および前記変更または追加された演奏制御用パラメータに基づいて楽音を生成する過程とを備えることを特徴とする。
また、請求項２に記載の発明は、請求項１に記載の楽音生成方法において、前記演奏制御用パラメータの変更または追加を行う過程は、算出した前記制御データにくわえて、過去に発生した演奏制御用パラメータにも基づいて、指定された前記演奏制御用パラメータの変更または追加を行うことを特徴とする。
また、請求項３に記載の発明は、請求項１または２に記載の楽音生成方法において、前記制御データを算出する過程は、抽出した前記複数ブロックのうちの一部の領域に対応する複数の動きベクトルから１つを算出することを特徴とする。
また、請求項４に記載の発明は、請求項１ないし３いずれかに記載の楽音生成方法において、操作子の操作に応じて前記ビデオ画像の中の一部の領域を指定する過程と、指定された前記一部の領域内の画像の変化を検出し、該変化を示す検出信号を発生する過程とをさらに備え、前記演奏制御用パラメータの変更または追加を行う過程は、発生した前記検出信号に基づいて、指定された前記演奏制御用パラメータの変更または追加を行うことを特徴とする。
また、請求項５に記載の発明は、請求項１ないし４いずれかに記載の楽音生成方法において、前記ビデオ画像の左右を反転させる反転過程と、前記反転過程において出力されたビデオ画像を表示する表示過程とを備えることを特徴とする。
請求項６に記載の発明は、請求項１ないし５いずれかに記載の楽音生成方法において、前記演奏情報を供給する過程は、当該演奏情報とともに、前記複数の演奏制御用パラメータのうちのいずれかを指定するイベント情報を供給し、前記複数の演奏制御用パラメータのうちのいずれかを指定する過程は、前記イベント情報に基づいて、前記複数の演奏制御用パラメータのうちのいずれかを指定することを特徴とする。
【０００６】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
【０００７】
１．実施形態の構成
１−１．実施形態の概要構成
図１は、実施形態の概要構成を示す図である。本実施形態は、図１に示すように、本発明にかかる演奏制御装置１００に、ビデオカメラ２００、ディスプレイ３００、電子楽器４００、操作子５００、およびサウンドシステム６００が接続された構成となっている。
演奏制御装置１００は、ビデオカメラ２００によって撮影された画像および操作子５００の操作に基づいて、電子楽器４００から入力する演奏あるいは演奏制御装置１００における自動演奏を制御する装置であり、後に図２を参照して説明する構成を備えている。
ビデオカメラ２００は、被写体である演奏者の動作を撮影し、ビデオ信号を生成して出力する装置である。
ディスプレイ３００は、ビデオカメラ２００によって撮影された画像を表示する装置であり、例えばＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、プラズマディスプレイなどを用いる。なお、本実施形態では６４０画素×４８０画素の解像度のディスプレイを用いて説明するが、解像度はこれに限定されるものではない。
【０００８】
電子楽器４００は、演奏操作子（鍵盤やペダルなど）の操作状態に応じてＭＩＤＩ（Musical Instrument Digital Interface）規格に基づいた演奏データを生成して出力する装置であり、例えば電子ピアノやＭＩＤＩギターなどを用いる。
操作子５００は、演奏制御装置１００における種々の設定を行うためのものであり、例えばキースイッチやパネル操作子などが該当する。この操作子５００は、演奏制御装置１００に備え付けられていてもよいし、別体としてケーブル接続されていてもよい。また、赤外線や電波などの無線によって操作状態を送信できるようになっていてもよい。
そして、サウンドシステム６００は、アンプやスピーカなどから構成されており、演奏制御装置１００から出力される音響信号を増幅して放音する装置である。
【０００９】
１−２．演奏制御装置１００
次に、図２を参照しながら、演奏制御装置１００の構成について説明する。
図２に示すように、演奏制御装置１００は、バスを介して接続されたＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ハードディスク１０４、タイマ１０５、ビデオキャプチャ１０６、ビデオ再生１０７、ＭＩＤＩインターフェイス１０８、操作子インターフェイス１０９、および音源１１０を備えて構成されている。
ＣＰＵ１０１は、ＲＯＭ１０２に記憶された各種プログラムに基づいて、バスを介して接続された各部の制御を行う。ＲＯＭ１０２には、演奏制御装置１００の動作を制御する各種プログラムが記憶されている。ＲＡＭ１０３は、ＣＰＵ１０１の動作に必要なワークエリアが設定される他、データを一時的に記憶するために用いられる。
ハードディスク１０４は、大容量のデータを記憶できる大容量記憶媒体であり、演奏制御装置１００において自動演奏を行う場合に用いる曲データなどが記憶される。
【００１０】
次に、タイマ１０５は、時間を計時して現在時刻を示すものである。ビデオキャプチャ１０６は、ビデオカメラ２００から出力されるビデオ信号をデジタルデータである画像データに変換するものである。ビデオ再生１０７は、画像データをビデオ信号に変換してディスプレイ３００に出力するものであり、例えばビデオメモリやビデオコントローラなどを備えたボードが該当する。
また、ＭＩＤＩインターフェイス１０８は、電子楽器４００とのインターフェイス動作を行い、操作子インターフェイス１０９は、操作子５００とのインターフェイス動作を行う。
そして、音源１１０は、ＭＩＤＩデータに基づいて楽音信号を生成するものであり、生成した楽音信号は、サウンドシステム６００から放音される。
【００１１】
２．実施形態の動作
次に、上記構成を有する実施形態の動作について説明する。
【００１２】
２−１．概要処理
まず、本実施形態における処理の概要について説明する。
【００１３】
（１）動作モード
本実施形態においては、予め設定された動作モードの中から、所望する動作モードを選択できるようになっている。
動作モードには、
▲１▼電子楽器４００からリアルタイム入力されたＭＩＤＩデータに所定の処理を施すことによって演奏制御を行う「外部入力モード」、
▲２▼ハードディスク１０４に記憶されたＭＩＤＩ曲データを読み出して、ＭＩＤＩデータシーケンスデータを生成することによって演奏制御を行う「シーケンサモード」、および、
▲３▼演奏者を左右反転させた画像をディスプレイ３００に表示して、演奏者がディスプレイ３００を見ながら動作することによって演奏制御を指示する「反転画像モード」、の３種類のモードがある。
ここで、図３、図４および図５は、各動作モードにおける演奏制御装置１００の動作の概要を示す機能ブロック図であり、図３は、外部入力モードにおける概要動作を、図４はシーケンサモードにおける概要動作を、図５は反転画像モードにおける概要動作をそれぞれ示している。
以下、外部入力モード（図３）、シーケンサモード（図４）、反転画像モード（図５）の動作概要についてそれぞれ説明する。
【００１４】
１．外部入力モード
外部入力モードにおいては、図３に示すように、ＲＯＭ１０２に記憶されたプログラムに基づいたＣＰＵ１０１の処理によって、動きベクトル抽出部１２０、演奏制御情報生成部１３０、およびＭＩＤＩデータ変更部１４０が構成される。
動きベクトル抽出部１２０は、ビデオカメラ２００から出力されビデオキャプチャ１０６を介して入力された画像データに基づいて動きベクトルＶｋを抽出する。なお、動きベクトルＶｋについては、後に詳しく説明する。
演奏制御情報生成部１３０は、動きベクトル抽出部１２０によって抽出された動きベクトルＶｋに基づいて、演奏制御情報であるパラメータ制御データＰｓを生成する。
また、ＭＩＤＩデータ変更部１４０は、演奏制御情報生成部１３０によって生成されたパラメータ制御データＰｓに基づいて、電子楽器４００から出力されてＭＩＤＩインターフェイス１０８を介して入力されたＭＩＤＩデータの変更や追加を行い、音源１１０に供給する。ここで、ＭＩＤＩデータの変更、追加とは、例えば、コントロールチェンジメッセージで制御されている音量、パン、ＥＧパラメータ等を、その現在値に対する相対値ないし絶対値として制御する新たなメッセージを発生したり、ノートオンメッセージに含まれる音高やベロシテイ値を変更したり、シーケンサ等を制御するシステムメッセージを発生する等のあらゆるＭＩＤＩデータの制御を含む。
例えば、電子楽器４００から出力されたＭＩＤＩデータが、ボリュームを制御するコントロールチェンジメッセージであれば、ＭＩＤＩデータ変更部１４０は、コントロールチェンジメッセージ中に含まれるボリュームを示す値をパラメータ制御データＰｓに基づいて変更する。
【００１５】
▲２▼シーケンサモード
シーケンサモードにおいては、図４に示すように、ＲＯＭ１０２に記憶されたプログラムに基づいたＣＰＵ１０１の処理によって、動きベクトル抽出部１２０、演奏制御情報生成部１３０、およびシーケンサ１５０が構成される。なお、動きベクトル抽出部１２０および演奏制御情報生成部１３０は、図３に示したものと同様である。
シーケンサ１５０は、ハードディスク１０４から読み出されＲＡＭ１０３に記憶された曲データを解釈し、ＭＩＤＩデータを生成して音源１１０に供給する。ここで、シーケンサ１５０は、演奏制御情報生成部１３０によって生成されたパラメータ制御データＰｓに基づいて、曲データに基づいて生成すべきＭＩＤＩデータを変更したり、曲データに基づいて生成されたＭＩＤＩデータを変更、追加する。
例えば、曲データによって指示されるテンポが１２０である場合に、パラメータ制御データＰｓがテンポアップを指示しているときは、シーケンサ１５０はテンポが例えば１５０になるようにＭＩＤＩデータを音源１００に出力する。あるいは、曲データに基づいて生成されたＭＩＤＩデータを、▲１▼の場合と同様に変更ないし追加する。
【００１６】
▲３▼反転画像モード
反転画像モードにおいては、図５に示すように、ＲＯＭ１０２に記憶されたプログラムに基づいたＣＰＵ１０１の処理によって、動きベクトル抽出部１２０、演奏制御情報生成部１３０、ＭＩＤＩデータ変更部１４０および画像反転部１６０が構成される。なお、動きベクトル抽出部１２０、演奏制御情報生成部１３０、およびＭＩＤＩデータ変更部１４０は、図３に示したものと同様である。
画像反転部１６０は、ディスプレイ３００に表示させるべき画像を左右反転させるための画像データを生成する。これにより生成された画像データに基づいてディスプレイ３００に表示される画像は、鏡に映った画像のようになる。この動作モードにおいて適した演奏制御処理については、後述する（図１３参照）。
なお、電子楽器４００を接続せずに、ＭＩＤＩ曲データを用いる場合は、ＭＩＤＩインターフェイス１０８はハードディスク１０４およびＲＡＭ１０３に、ＭＩＤＩデータ変更部１４０はシーケンサ１５０に置き換わる。
【００１７】
（２）動きベクトル抽出部
次に、動きベクトル抽出部１２０について説明する。
動きベクトル抽出部１２０は、ビデオキャプチャ１０６から連続して入力される複数フレームの画像データに基づいて、以下に説明するように動きベクトルＶｋを検出する。なお、「動きベクトル」は、各フレーム画面における動きの大きさと方向を示すデータであり、画像データやオーディオデータをデータ圧縮する国際標準規格であるＭＰＥＧ（Moving Picture Experts Group phase）における動き補償に用いられている。
本実施形態において、「動きベクトル」は、ある時点（ｋフレーム）における画素の位置を、過去（ｋ−１フレーム）の画素を用いて表される。ここで、１フレーム分の画像データに含まれる個々の座標のデータを画素と呼ぶ。
具体的には、ｋフレームの画素Ｘijk（ijは座標、kはフレーム）を示すため、ｋ−１フレームにおける画像の中からＸilに最も近い画素値Ｘimを検索する。そして、ＸilとＸimとの空間的なずれ｜i-l｜と｜j-m｜を求める。Ｘilに最も近い画素値Ｘimとは、水平および垂直に１５画素範囲内でずらして、もっとも差分が小さな画素をいう。
本実施形態では、１フレーム画面を構成する複数の画素を、１６画素×１６画素を１画素ブロックとする複数の画素ブロックに分けて扱い、各画素ブロックの動きベクトルを求めて、これらの動きベクトルを総合的に示したものを、ｋフレームにおける１画面分の動きベクトルＶｋとする。フレームｋにおける画素ブロックの動きベクトルは、具体的には次のように求められる。
【数１】
0003705000.tif 000002
数１において最小となる画素位置（a,b）の値をこの画素ブロックの動きベクトルとする。
【００１８】
より具体的には、パラメータa,bにそれぞれ０〜１５の値を与えながら、フレームｋにおけるＸ1 1〜Ｘ15 15までの各画素の画素値と、フレームｋ−１におけるＸ1±a 1±b〜Ｘ15±a 15±bとの差の絶対値を累算した場合に、数１の解が最小となる（a,b）の組を検索する。そして、画素位置の差が（a,b）である各画素値同士を比較して画素値の差がなければ、フレームｋ−１からフレームｋまでの間に注目画素は（a,b）だけ移動したことになる。
そして、画素ブロックに含まれる全画素について画素値の差を求め、この差を累算した値が最小となる（a,b）が、この画素フレームの動きを最もよく表す各画素ブロックの動きベクトルとして検出される。但し、前記差を累算した値が最小となる（a,b）について、その累算値が所定のしきい値以下にならない場合には、その画素ブロックの動きベクトルは検出不能と判断される。
図６は、各画素ブロックにおいて検出した（a,b）を画素ブロックの中心からのベクトルとして示している。本実施形態では１画面の画素数は６４０画素×４８０画素であるから、縦３０×横４０個の画素ブロックの動きベクトルＶｋ１〜Ｖｋ１２００が検出される。
１画面分の動きベクトルＶｋは、例えば図７に示すように、各画素ブロックの動きベクトルＶｋ１〜Ｖｋ１２００の平均値、重み付け平均値、自乗平均値等として算出されたベクトルとしたり、複数画素ブロックの複数ベクトルの中から選択された最大の大きさをもつベクトルとすればよい。あるいは、該大きさが上位のｎ個のベクトルの平均ベクトルが最も大きくなるものの平均ベクトルとしてもよい。
このように、「動きベクトル」を抽出すれば、被写体を特定する必要なく動き量を示すことができるようになる。
【００１９】
（３）演奏制御生成部
次に、演奏制御情報生成部１３０の動作について説明する。演奏制御情報生成部１３０は、動きベクトル抽出部１２０において抽出された動きベクトルＶｋに基づいて、演奏のパラメータ制御データＰｓを生成して出力する。
本実施形態では、パラメータ制御データＰｓを生成する処理として、
▲１▼操作子５００を操作することによって、いずれのパラメータについて制御を行うかを選択することができる「操作子選択モード」、
▲２▼指揮者が腕を上下に振る動作に基づいてテンポを制御する「テンポモード」、▲３▼予め設定されたエリア内の動きベクトルに基づいて制御を行う「エリアモード」、
の３つの制御モードの中から選択できる。なお、各モードはパラメータ制御データＰｓを生成する処理の例示であって、以下に説明する各態様に限定されるものではなく、３つの制御モード中に示す各要素を任意に組み合わせたモードであっても構わない。
【００２０】
▲１▼操作子選択モード
操作子選択モードは、操作子５００を操作することによって、いずれのパラメータについて制御を行うかを選択することができるモードである。ここで、操作子５００は、例えば演奏者が手に装着する「指スイッチ」であり、この「指スイッチ」は、人指し指で操作するスイッチＳｈと、中指で操作するスイッチＳｎとを備えており、いずれかのスイッチを親指で押下することによってオン状態にすることができるようになっている。
本実施形態では、人指し指で操作するスイッチＳｈがオン状態の場合は、ボリューム制御用のパラメータ制御データＶＯＬを動きベクトルに基づいて生成する。また、中指で操作するスイッチＳｎがオン状態の場合は、テンポパラメータ制御用のパラメータ制御データΔＴＭＰを動きベクトルに基づいて生成する。スイッチＳｈ、Ｓｎのいずれもがオフ状態の場合は、パラメータ制御を行わず、パラメータ制御データＰｓは生成しない。
なお、このモードにおける具体的な処理は、図１１を参照しながら後述する。
【００２１】
▲２▼テンポモード
テンポモードは、指揮者が腕を上下に振る動作に基づいてテンポを制御するモードであり、上下方向の動きベクトルを検出してテンポ制御用のパラメータ制御データＰｓｔを生成する。
なお、このモードにおける具体的な処理は、図１２を参照しながら後述する。
【００２２】
▲３▼エリアモード
エリアモードは、予め設定されたエリア内の動きベクトルに基づいて制御を行うモードである。本実施形態では、図８に示すように、３つのエリア（ｉ１、ｉ２、ｉ３）が予め設定されており、各エリアにおける動きベクトルを検出して、それぞれのエリアに割り当てられたパラメータの制御を行う。それぞれに割り当てられたパラメータは、例えばエリアｉ１はボリューム、エリアｉ２はテンポ、エリアｉ３はパンニングである。
【００２３】
また、ディスプレイ３００には、図９に示すように被写体を左右反転させて表示されるようになっており（上述した反転画像モード）、演奏者にとっては、鏡に映った自分の姿を見ながら動作できるようになっている。
そして、予め各パラメータに割り当てられたエリアｉ１、ｉ２、ｉ３は、演奏者が確認できるように、ディスプレイ３００にスーパーインポーズによって表示される。例えば、演奏者がボリュームの制御を所望する場合は、ディスプレイ３００に表示されたエリアｉ１内に自己の動作が表示されるようにすれば、演奏制御装置１００がエリアｉ１内における動きベクトルを検出してボリュームの制御を行う。
なお、このモードにおける具体的な処理は、図１３を参照しながら後述する。
【００２４】
２−２．処理の内容
次に、上述した本実施形態における動作を実現するためのＣＰＵ１０１にける処理について、フローチャートを参照（１０図〜１３図）しながら説明する。
【００２５】
（１）メインルーチン
まず、図１０は、メインルーチンを示すフローチャートである。
メインルーチンが起動され、処理が開始すると、まず、ＣＰＵ１０１は初期設定を行う（Ｓ１０１）。初期設定においては、例えば操作子５００の状態などに基づいて動作モードを選択する処理や、各種変数の初期化などを行う。
なお、画像データをビデオキャプチャ１０６から取り込んで、ＲＡＭ１０３に記憶しておく処理は、キャプチャ１０６によって、以下に説明するステップＳ１０２〜Ｓ１０５のＣＰＵ処理と並行して行われており、後述するように、ステップＳ１０６において読み出され、動きベクトルが抽出されるものとする。
ＣＰＵ１０１は、初期設定を終了すると、次に、ＭＩＤＩ処理を行う（Ｓ１０２）。ＭＩＤＩ処理は、ステップＳ１０１の初期化処理において外部入力モード（図３）あるいは反転画像モード（図５）が選択された場合には、電子楽器４００から出力されるＭＩＤＩデータを読み込む処理であり、シーケンサモード（図４）が選択された場合には、シーケンサ１５０において曲データに基づいてＭＩＤＩデータを生成する処理である。
【００２６】
ＣＰＵ１０１は、ＭＩＤＩ処理に続いて、操作子処理を行う（Ｓ１０３）。操作子処理は、操作子５００の状態を読み込んでＲＡＭ１０３に記憶したり、状態の変化に応じて各種設定を変更する処理などが該当する。
操作子処理が終了すると、ＣＰＵ１０１は、その他の処理を行う（Ｓ１０４）。その他の処理とは、ステップＳ１０２において読み込んだないし生成したＭＩＤＩデータに基づいて、音源１１０における楽音の生成を制御したり、ステップＳ１０３において読み込まれた操作子５００の状態に応じたシステム状態の変更などを行う処理である。
【００２７】
その他の処理が終了すると、ＣＰＵ１０１は、所定のタイミングから所定の時間が経過したか否かをタイマ１０５によって計時された時刻に基づいて判別する（Ｓ１０５）。ここで、所定のタイミングとは、当該判別が最初の判別であれは、初期設定（Ｓ１０１）を行ったタイミングをいい、当該判別が２回目以降の判別であれば、前回動きベクトルの抽出（Ｓ１０６）を行ったタイミングをいう。
ステップＳ１０５の判別において、所定の時間が経過していないと判別した場合は（Ｓ１０５；ＮＯ）、処理をステップＳ１０２に移行させ、再びＭＩＤＩ処理を行う。すなわち、タイマ１０５が所定の時間を計時するまでの間は、ステップＳ１０２〜ステップＳ１０５を循環しながら、動きベクトルに影響されない楽音生成処理を行っている。
【００２８】
一方、ステップＳ１０５の判別において、所定の時間が経過していると判別した場合は（Ｓ１０５；ＹＥＳ）、所定時間内に入力された画像データに基づいて前述したように動きベクトルを抽出する処理を行う（Ｓ１０６）。
そして、ステップＳ１０６において抽出された動きベクトルに基づいて、動きベクトルに応じた楽音制御処理を行う（Ｓ２００）。この楽音制御処理は、前述した各モード（▲１▼操作子選択モード、▲２▼テンポモード、▲３▼エリアモード）に応じて異なるので、以下、楽音制御処理について、各モード毎に処理を説明する。
【００２９】
（２）楽音制御処理
１．操作子選択モード
まず、操作子選択モードにおける処理について図１１に示すフローチャートを参照しながら説明する。
楽音制御処理が開始すると、まず、メインルーチンのステップＳ１０３において読み込んだ操作子５００の状態についての判別を行う（Ｓ２１０１）。
操作子５００には、前述の指スイッチが含まれており、ここでは、人指し指で操作するスイッチＳｈがオン状態の場合はボリューム制御用のパラメータ制御データＶＯＬを生成し、中指で操作するスイッチＳｎがオン状態の場合はテンポ制御用のパラメータ制御データΔＴＭＰを生成する。スイッチＳｈ、Ｓｎのいずれもがオフ状態の場合は、パラメータ制御を行わず、パラメータ制御データＰｓは生成しない。
従って、ステップＳ２１０１の判別において、スイッチＳｈがオン状態であると判別した場合は、音量を制御するパラメータ制御データＶＯＬ（ＭＩＤＩデータの１つ）を生成する処理に移行する（Ｓ２１０２）。
具体的には、ステップＳ１０６において抽出した時刻ｋにおけるフレームｋの各動きベクトルＶｋ１〜Ｖｋ１２００に基づいて、各動きベクトルのｙ方向の成分を求め、１画面分の全画素ブロックのｙ方向成分の平均値Ｖｋを検出する。
そして、Ｖｋに基づいてパラメータ制御データＶＯＬを生成する。そして、パラメータ制御データＶＯＬに応じて楽音の音量を制御する（Ｓ２１０３）。具体的には、その時点の音量値をパラメータ制御データＶＯＬに基づいて決定された音量値をパラメータとするＭＩＤＩデータ（例えばコントロールチェンジメッセージ）として発生する。なお、過去に発生した音量を制御するＭＩＤＩデータの値を保持しておけば、その時点の音量値は判別できる。
このように、抽出された動きベクトルのｙ方向成分の平均値に応じて音量を制御したのち、処理をメインルーチンに戻す。
【００３０】
ところで、ステップＳ２１０１の判別において、スイッチＳｎがオン状態であると判別した場合は、テンポを制御するパラメータ制御データΔＴＭＰを生成する処理に移行する（Ｓ２１０４）。
具体的には、ステップＳ１０６において抽出した時刻ｋにおけるフレームｋの各動きベクトルＶｋ１〜Ｖｋ１２００に基づいて、各動きベクトルのうちの最大ベクトルの長さを検出して、パラメータ制御データΔＴＭＰを生成する。
そして、パラメータ制御データΔＴＭＰに応じて楽音のテンポを制御する（Ｓ２１０５）。具体的には、例えば、曲データが指示するテンポが１２０であれば、本来は４分音符１拍分のノートオンメッセージを０．５秒間隔で出力する（１分間に４分音符が１２０拍）が、パラメータ制御データΔＴＭＰがテンポを６０まで下げることを指示していた場合は、シーケンサ１５０は、４分音符１拍分のノートオンメッセージを１秒間隔で出力する（１分間に４分音符が６０拍）。
このように、動きベクトルの最大ベクトルの長さに応じてテンポを制御した後、処理をメインルーチンに戻す。
ところで、ステップＳ２１０１の判別において、スイッチＳｈあるいはスイッチＳｎのいずれもがオフ状態であると判別した場合は、楽音制御処理を行わず、そのまま処理をメインルーチンに戻す。
【００３１】
このように、操作子５００を操作することによって、動きベクトルをどのような制御に用いるかを選択できるので、演奏中に制御内容を自由に切り換えることができるようになる。
【００３２】
２．テンポモード
次に、テンポモードにおける処理について図１２に示すフローチャートを参照しながら説明する。
テンポモードは、動きベクトルのｙ方向成分に基づいてテンポを制御するモードであるので、まず、ｙ方向成分のピークを検出して変数Ｖｙの値とする（Ｓ２２０１）。次に、ステップＳ２２０１において検出した値をローパスフィルタに通して雑音と除去し、変数Ｖｙとする（Ｓ２２０２）。
テンポモードは、ｙ方向における被写体の往復運動の速さに基づいてテンポを制御するので、ｙ正方向の動きが加速から減速に転じたタイミングを検出し、前回の加速から減速に転じたタイミングとの時間間隔で１往復運動に要した時間を計測する処理を行う。
具体的には、ｙ方向における被写体の動きは、だんだん加速してピークを迎えた後減速し、戻りの動作が行われるという１サイクルを仮定し、以下に説明するように、動きベクトルのｙ成分であるＶｙの大きさを、ｙ方向における被写体の動作の速さとを示す値として扱う。また、１サイクルにおける動きベクトルのｙ成分の最大値Ｐｙを、ｙ方向における被写体の動作のピークを示す値として扱う。
そして、ｙ正方向における演奏者の動作状態を、ＳＴ＝０、ＳＴ＝１、ＳＴ＝２のいずれかによって示すものとしている。
ここで、ＳＴ＝０は、被写体のｙ方向における動きが検出されない場合を示している。この場合は、ステップＳ２２０２で決定したＶｙは、負の値を示しているか、後述するように、しきい値Ｔｙを超えていない。また、ＳＴ＝１は、被写体のｙ方向における動きがｙ正方向において加速している場合を示している。この場合は、ステップＳ２２０２で決定したＶｙは、しきい値Ｔｙを超えている。
また、Ｖｙは、前回更新した最大値Ｐｙを超えており、被写体のｙ方向における動きがさらに速くなったことを示している。
そして、ＳＴ＝２は、被写体のｙ方向における動きが正方向において減速している場合を示している。この場合は、ステップＳ２２０２で決定したＶｙは、正の値を示すが、最大値Ｐｙ以下となる。
【００３３】
このような規則に従って被写体の動き状態を判別するために、ステップＳ２２０２においてＶｙを決定した後、動きベクトルのｙ方向成分の態様を示すステートメントＳＴを判別する（Ｓ２２０３）。
まず、ステップＳ２２０３の判別において、ＳＴ＝０、すなわち正方向の動きが検出されていないと判別した場合は（Ｓ２２０３；ＳＴ＝０）、次に、Ｖｙ＞Ｔｙ、すなわちｙ方向のピーク値Ｖｙがしきい値Ｔｙよりも大きいか否かを判別する（Ｓ２２０４）。
ここでＶｙ≦Ｔｙと判別した場合は（Ｓ２２０４；ＮＯ）、検出されたｙ方向のピーク値がしきい値以下（負方向を含む）であるので、ステートメントＳＴの値を変更せず、そのまま処理をメインルーチンに戻す。
【００３４】
一方、ステップＳ２２０４の判別においてＶｙ＞Ｔｙであると判別した場合は（Ｓ２２０４；ＹＥＳ）、正方向への動きを検出したのでステートメントＳＴを１とし、ステップＳ２２０１において検出したＶｙを当該サイクルのピーク値Ｐｙとして（Ｓ２２０５）、処理をメインルーチンに戻す。
すなわち、次回のステップＳ２２０３の判別においてＳＴ＝１と判別すると（Ｓ２２０３；ＳＴ＝１）、次に、Ｖｙ＞Ｐｙであるか否かの判別を行う（Ｓ２２０６）。ここでは、Ｓ２２０１において検出されたＶｙが当該サイクルのピーク値Ｐｙよりも大きければ、被写体の動きは未だ加速中であると判別できる。
従って、Ｖｙ＞Ｐｙであると判別した場合は（Ｓ２２０６；ＹＥＳ）、ＰｙをＶｙで更新して（Ｓ２２０７）、処理をメインルーチンに戻す。
【００３５】
一方、ステップＳ２２０６の判別において、Ｖｙ≦Ｐｙと判別した場合は（Ｓ２２０６；ＮＯ）、ｙ方向成分がピーク値Ｐｙを下回り始めたと判別できるので、ステートメントＳＴを２とし、現在時刻を示す変数ｔを、タイマ１０５（図２参照）によって計時している時刻とする（Ｓ２２０８）。
そして、ステップＳ２２０８おける時刻を示すｔから同様の処理を前回行った際の時刻を示すｔ０を引いて、１サイクルに要した時間Δｔを求める。Δｔを求めた後は、次回のサイクルにおいて同様に時間差を算出できるように、ｔ０の値をｔの値で更新する（Ｓ２２０９）。
このようにして求めた１サイクルに要した時間Δｔに応じて、例えば、Δｔが現在のテンポ値に対応した拍の時間間隔に比べて小さければテンポを加速し、大きければテンポを減速するといったテンポ制御を行い（Ｓ２２１０）、処理をメインルーチンに戻す。
ただし、Δｔと前記拍の時間間隔の差が大きく離れていた場合には、前記テンポの制御は行わない方がよい。また、拍の時間間隔と比較する代わりに、２拍の時間間隔や１小節の時間間隔と比較するようにしてもよい。
【００３６】
被写体のｙ方向への動きが減速に転じてステートメントＳＴ＝２となると、ステップＳ２２０３の判別の後、Ｖｙ＜０であるか否か、すなわち、動きベクトルのｙ成分の値が正に転じたか否かを判別し（Ｓ２２１１）、Ｖｙ≧０と判別すると（Ｓ２２１１；ＮＯ）、被写体のｙ正方向における動きは減速中であるので、次のサイクルに移行していない。従って、ステートメントＳＴの値は変更せず、そのまま処理をメーンルーチンに戻す。
一方、ステップＳ２２１１の判別において、Ｖｙ＜０であると判別した場合は（Ｓ２２１１；ＹＥＳ）、被写体のｙ方向における動作が負方向に転じたので、次のサイクルに移行させるためにステートメントＳＴ＝０とし（Ｓ２２１２）、処理をメインルーチンに戻す。
【００３７】
このような処理を循環する過程において、演奏者が上下に手を振る動きに応じてＳＴ＝０→ＳＴ＝１→ＳＴ＝２→ＳＴ＝０……というサイクルが形成され、ＳＴ＝１からＳＲ＝２に転じる時刻において、前回ＳＴ＝１からＳＲ＝２に転じた時刻との時間差Δｔに応じたテンポ制御が行われる。
従って、被写体である演奏者が手を速く動かせばテンポが速くなり、遅く動かせばテンポが遅くなる。ここでは、複数画素ブロックの動きベクトルからピーク値を抽出してテンポ制御を行ったが、ピーク値の代わりに平均値等を使用してもよい。
【００３８】
▲３▼エリアモード
次に、エリアモードにおける処理について図１３に示すフローチャートを参照しながら説明する。
本実施形態においては、図８に示したように、予め設定されたエリアｉ１、ｉ２、およびｉ３における動きベクトルに基づいて制御を行うので、各エリアについて順次動きベクトルの抽出を行い、当該エリアに割り当てられたパラメータについて動きベクトルに基づいた制御を行う。
そこで、まずエリアｉ１から処理を行うべく、エリアを示す変数ｉを１に設定し（Ｓ２３０１）、画面中のエリアｉ１の最大ベクトルを抽出し、ｘ方向成分とｙ方向成分を（Ｍｘ，Ｍｙ）とする（Ｓ２３０２）。なお、（Ｍｘ，Ｍｙ）の具体例については、図９に示している。
そして、まず動きベクトルのｙ成分を示すＭｙを使用するか否かを判別し（Ｓ２３０３）、Ｍｙを使用すると判別した場合は（Ｓ２３０３；ＹＥＳ）、次にＭｙに応じてパラメータＰＹｉを制御する（Ｓ２３０４）。
パラメータＰＹｉとは、エリアｉにおけるｙ方向に割り当てられた制御対象のパラメータである。本実施形態では、エリアｉ１にはボリュームが割り当てられており、動きベクトルのｙ方向成分に基づいてボリュームを制御する。
従ってｉ＝１である場合は、ステップＳ２３０３の判別においてＹＥＳと判別されて、ｙ方向のベクトル成分Ｍｙに応じてボリュームが制御される。
【００３９】
ステップＳ２３０３の判別において、Ｍｙを使用しないと判別した場合（Ｓ２３０３；ＮＯ）、あるいは、ステップＳ２３０４の処理を終了した場合は、次に、動きベクトルのｘ成分を示すＭｘを使用するか否かを判別し（Ｓ２３０５）、Ｍｘを使用すると判別した場合は（Ｓ２３０５；ＹＥＳ）、Ｍｘに応じてパラメータＰＸｉを制御する（Ｓ２３０６）。ここで、パラメータＰＸｉは、エリアｉにおけるｘ方向に割り当てられた制御対象のパラメータである。本実施形態では、エリアｉ３にはパンニングが割り当てられており、動きベクトルのｘ方向成分に基づいてパンニングを制御する。
従ってｉ＝３である場合は、ステップＳ２３０５の判別においてＹＥＳと判別されて、ｘ方向のベクトル成分Ｍｘに応じてパンニングが制御され、左右のバランスが変化する。
【００４０】
ステップＳ２３０５の判別において、Ｍｘを使用しないと判別した場合（Ｓ２３０５；ＮＯ）、あるいは、ステップＳ２３０４の処理を終了した場合は、次に、残りのエリアがあるか否かを判別する（Ｓ２３０７）。すなわち、予め設定されたエリアｉ１、ｉ２、ｉ３の全てについて処理を行ったか否かを判別する。
ステップＳ２３０７の判別において、残りエリアがあると判別した場合は（Ｓ２３０７；ＹＥＳ）、次のエリアの処理を行うべく変数ｉを１インクリメントして（Ｓ２３０８）、処理をステップＳ２３０２に移行させる。
一方、残りエリアがない、すなわちエリアｉ１、ｉ２、ｉ３の全てについて処理が終了したと判別した場合は（Ｓ２３０７；ＮＯ）、処理をメインルーチンに戻す。
【００４１】
このように、ステップＳ２３０２からＳ２３０７の処理を循環する過程において、エリアｉ１においては、ｙ方向のベクトル成分に応じてボリュームが制御（Ｓ２３０４）、エリアｉ２においては、ｙ方向のベクトル成分に応じてテンポが制御され（Ｓ２３０４）、エリアｉ３においては、ｘ方向のベクトル成分に応じてパンニングが制御される（Ｓ２３０６）。
なお、設定するエリアの数や形状、また、そのエリアを画面上の何処に配置するかは任意であり、例えば、操作子５００の操作に応じてユーザが任意に選択・設定できるようにすればよい。さらに、各エリアの動きベクトルを何で制御するかも任意であり、同じく、操作子５００の操作に応じてユーザが任意に設定・選択できるようにすればよい。また、上記説明では、１つのエリアの動きベクトルのｘ成分とｙ成分のいずれか一方でパラメータを制御するようにしたが、ｘｙ両方の成分で同一ないし互いに異なるパラメータを独立して制御するようにしてもよい。
【００４２】
２−３．まとめ
このように、ビデオカメラ２００で撮影した画像に基づいて、まず画像全体の各画素ブロックの動きベクトルを機械的に求め、その１画面分の複数の動きベクトルから制御用の動きベクトルを生成して楽音制御を行うので、被写体における検出すべき映像要素の位置を正確に特定する必要がなくなり、動きに応じた制御を容易に行うことができるようになる。
また、画素ブロック毎の動きベクトルを抽出する技術は、ＭＰＥＧなどの規格で、すでに広く用いられているので、その技術の進歩を容易に本発明に組み入れていくことができる。すなわち、本発明によれば、画像圧縮の目的で抽出される動きベクトルを、演奏の制御に容易に用いることができるようになる。
【００４３】
３．変形例
なお、本発明は既述した実施形態に限定されるものではなく、以下のような各種の変形が可能である。
【００４４】
動画像から抽出された動きベクトルに基づいて制御量を決定する手段は、上記実施形態に限定されるものではなく、例えば、上記実施形態では、ビデオカメラ２００によって撮影されたビデオ信号に基づいて動きベクトルを抽出しているが、ＭＰＥＧの画像データ等に含まれている画素ブロック毎の動きベクトルを利用してもよい。また、動きベクトルを抽出する際の画素ブロックの単位は、上記実施形態のように１６画素×１６画素に限らず、例えば８画素×８画素、５画素×１０画素、その他３角形の形状等、任意の画素ブロックでもかまわない。
また、上記実施形態では、例えば操作子選択モード（図１１参照）ではＹ方向の成分だけを使用して制御しているが、ここで、ｘ成分を用いて制御するようにしても構わなく、ｙ方向の成分とｘ方向の成分との両方を使用して制御を行っても構わない。同様に、他の例（図１２、図１３）においても、使用する成分は実施例に限定されるものではない。
また、必ずしもフレームごとに動きベクトルを抽出する必要はなく、複数フレームおきに抽出するようにしてもよい。
【００４５】
また、上記実施形態においてフレームｋにおける動きベクトルＶｋは、各画素ブロックの動きベクトルの平均値として説明しているが、これに限らず、全画素ブロックの動きベクトルのピーク値や最大値など、他の代表値でも構わない。
動作モードや制御モードも上記実施形態に限定されるものではなく、例えば、一定時間内の複数フレームにおける動きベクトルを積分して作成した、積分画像を用いて制御するようなモードがあってもよい。
また、上記実施形態の外部入力モード（▲１▼）においては、動きベクトルにより制御する制御対象を、操作子５００に設けられた人指し指と中指のスイッチで選択するものとして説明したが、選択の方法はこれに限らない。例えば、他の指のスイッチや、ベルトやウエアに設けられたスイッチ、フットスイッチ、光スイッチ、圧力センサ、傾きセンサ等、いかなる検出器の検出結果により選択を行うようにしてもよい。
スイッチ個々に割り当てられた検出対象をオン／オフする選択方法に限らず、複数スイッチの組み合わせ操作により制御したり、同じスイッチの操作で異なる制御方法を順次選択するようにしてもよい。また、操作子で選択する代わりに、同時に演奏する曲データに埋め込まれ、演奏情報とともに再生される選択イベント情報に応じて選択するようにしてもよい。
このように選択された制御対象に応じて、複数画素ブロックの動きベクトルから動きベクトルを生成する方法を異ならせることにより、制御対象に応じて最適な制御を行うことができる。
【００４６】
また、各モードの切り換え指示を、上記実施形態のように操作子５００を用いて指示してもよいし、被写体の動作によって指示できるようにしてもよい。例えば、上述のエリアモードにおいて、外部入力モードとシーケンサモードとを切り換えるためのエリアを設定しておき、当該エリアにおいて所定の動きベクトルが検出された場合はモード切り替えを行うようにしてもよい。
【００４７】
決定した制御量に応じて演奏を制御する手段も上記実施形態に限定されるものではなく、例えば、上記実施形態では、動きベクトルによって制御するパラメータとして、ボリューム、テンポ、パンニングを挙げたが、これらに限定されるものではなく、例えば、音色の変更や音高の変更などを行ってもよい。
また、上記実施形態ではＭＩＤＩデータを用いているが、これに限らず、音楽情報をデジタルデータとして扱うことができる規格であればどのようなものでもよく、独自の規格のデータであってもよい。
【００４８】
上記実施形態では、プログラムはＲＯＭ１０２に記憶されているが、これに限らず、不揮発性メモリカード、ＣＤ−ＲＯＭ、フロッピーディスク、光磁気ディスク、および磁気ディスク等の可搬型の記録媒体に記録されたデータをハードディスク１０４等の記憶装置に転送できるように構成してもよい。このようにすれば、制御情報や制御プログラム等の追加（インストール）や更新（バージョンアップ）の際に便利である。また、可搬型の記録媒体から直接ＲＡＭ１０３へデータを転送するようにしてもよい。
さらに、可搬型の記録媒体経由ではなく、図示せぬ通信インターフェイス経由で、ハードディスク等の記録装置上の制御情報や制御プログラム等を通信ネットワーク側からダウンロードするようにしてもよい。
【００４９】
【発明の効果】
以上説明したように、本発明によれば、比較的簡易なシステムを用いて画像に応じた演奏の制御を行うことができる。
【図面の簡単な説明】
【図１】  実施形態の全体構成を示す図である。
【図２】  演奏制御装置の構成を示すブロック図である。
【図３】  実施形態の機能ブロック図である（その１）。
【図４】  実施形態の機能ブロック図である（その２）。
【図５】  実施形態の機能ブロック図である（その３）。
【図６】  １画面分の動きベクトルを説明する図である（その１）。
【図７】  １画面分の動きベクトルを説明する図である（その２）。
【図８】  予めエリアを設定した画像の例である。
【図９】  予め設定したエリアにおける動きベクトルを説明する図である。
【図１０】  実施形態の動作のメインルーチンを示すフローチャートである。
【図１１】  楽音制御処理のサブルーチンを示すフローチャートである（その１）。
【図１２】  楽音制御処理のサブルーチンを示すフローチャートである（その２）。
【図１３】  楽音制御処理のサブルーチンを示すフローチャートである（その３）。
【符号の説明】
１００……演奏制御装置、１０１……ＣＰＵ、１０２……ＲＯＭ、１０３……ＲＡＭ、１０４……ハードディスク、１０５……タイマ、１０６……ビデオキャプチャ、１０７……ビデオ再生、１０８……ＭＩＤＩインターフェイス、１０９……操作子インターフェイス、１１０……音源、２００……ビデオカメラ、３００……ディスプレイ、４００……電子楽器、５００……操作子、６００……サウンドシステム。
【図１】
0003705000.tif 000003
【図２】
0003705000.tif 000004
【図３】
0003705000.tif 000005
【図４】
0003705000.tif 000006
【図５】
0003705000.tif 000007
【図６】
0003705000.tif 000008
【図７】
0003705000.tif 000009
【図８】
0003705000.tif 000010
【図９】
0003705000.tif 000011
【図１０】
0003705000.tif 000012
【図１１】
0003705000.tif 000013
【図１２】
0003705000.tif 000014
【図１３】
0003705000.tif 000015