(57)【特許請求の範囲】
【請求項１】
制御相手に対してコマンドによって指令を伝えるデータ処理装置において、
発行されたコマンドを蓄積する待ち行列保持手段と、
前記待ち行列保持手段に蓄積されたコマンドの組み合わせによって行われる処理内容を解釈し、意図された処理内容をより少ないコマンドで実行できるようにコマンドの待ち行列を最適化する待ち行列最適化手段と、
前記待ち行列保持手段に蓄積されているコマンドを、先に蓄積された順に取り出し、実行相手に転送するコマンド出力手段と、
を有し、
前記待ち行列最適化手段は、
前記待ち行列保持手段に蓄積されたコマンドを、ビデオ編集機における編集動作を操作するためのコマンドに対応する第１の系列と、前記ビデオ編集機に接続された外部機器の動作を制御するためのコマンドに対応する第２の系列とを含む複数の系列に分類し、
前記第１の系列に分類されたコマンド同士、および、前記第２の系列に分類されたコマンド同士では、先に蓄積されたコマンドを無意味化してしまうような後優先コマンドが蓄積された場合には、前記後優先コマンドより前に蓄積されたコマンドを削除し、他のコマンドと統合できる統合可能コマンドが複数ある場合には、複数の前記統合可能コマンドによる動作内容を１つのコマンドに統合することによって、最適化を行うことを特徴とするデータ処理装置。
【請求項２】
前記待ち行列最適化手段は、システムの緊急停止用のコマンドが前記待ち行列保持手段に蓄積された場合には、当該コマンド以外の蓄積されたすべてのコマンドを前記系列に関係なく削除することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記コマンド出力手段により前記第２の系列に属するコマンドが出力されたとき、制御対象の前記外部機器が前記ビデオ編集機に接続されていないことによるエラーが発生した場合には、前記待ち行列最適化手段は、エラー発生時に接続されていなかった前記制御対象の前記外部機器の接続が確認されるまで、当該外部機器を制御するためのコマンドを受け付けないことを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記待ち行列最適化手段は、前記ビデオ編集機または当該データ処理装置においてエラーが発生した場合には、前記待ち行列保持手段に蓄積されたすべてのコマンドを削除し、エラー復旧用のコマンドを優先的に受け付けることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記第１の系列に属するコマンドには、前記ビデオ編集機におけるビデオ再生動作の開始、ビデオ再生動作の停止、ビデオデータの再生動作を行うべき位置を所定の位置に移動させること、および、ビデオデータのコマ送り再生をそれぞれ要求するためのコマンドが含まれ、
前記第２の系列に属するコマンドには、前記外部機器におけるビデオ再生動作の開始、ビデオ再生動作の停止、および、ビデオデータの再生動作を行うべき位置を所定の位置に移動させることをそれぞれ要求するためのコマンドが含まれる、
ことを特徴とする請求項１記載のデータ処理装置。
【請求項６】
前記待ち行列最適化手段は、
前記第１の系列に属するコマンドのうち、前記ビデオ再生動作の開始を要求するためのコマンド、および、前記ビデオ再生動作の停止を要求するためのコマンドが、前記待ち行列保持手段に連続的に蓄積された場合には、最後尾のコマンドを除く連続したすべてのコマンドを削除し、
前記第１の系列に属するコマンドのうち、前記再生動作を行うべき位置を所定の位置に移動させることを要求するコマンドの次に、前記コマ送り再生を要求するためのコマンドが連続して前記待ち行列保持手段に蓄積された場合には、それらのコマンドを、移動させた位置から前記コマ送り再生を要求するためのコマンドに統合する、
ことを特徴とする請求項５記載のデータ処理装置。
【請求項７】
制御相手に対してコマンドによって指令を伝えるためのキューイング管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
発行されたコマンドを蓄積する待ち行列保持手段、
前記待ち行列保持手段に蓄積されたコマンドの組み合わせによって行われる処理内容を解釈し、意図された処理内容をより少ないコマンドで実行できるようにコマンドの待ち行列を最適化する待ち行列最適化手段、
前記待ち行列保持手段に蓄積されているコマンドを、先に蓄積された順に取り出し、実行相手に転送するコマンド出力手段、
としてコンピュータを機能させ、
前記待ち行列最適化手段は、
前記待ち行列保持手段に蓄積されたコマンドを、ビデオ編集機における編集動作を操作するためのコマンドに対応する第１の系列と、前記ビデオ編集機に接続された外部機器を制御するためのコマンドに対応する第２の系列とを含む複数の系列に分類し、
前記第１の系列に分類されたコマンド同士、および、前記第２の系列に分類されたコマンド同士では、先に蓄積されたコマンドを無意味化してしまうような後優先コマンドが蓄積された場合には、前記後優先コマンドより前に蓄積されたコマンドを削除し、他のコマンドと統合できる統合可能コマンドが複数ある場合には、複数の前記統合可能コマンドによる動作内容を１つのコマンドに統合することによって、最適化を行うことを特徴とするキューイング管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理装置に関し、特にコマンドキューを介してコマンドを送信するデータ処理装置に関する。
【０００２】
【従来の技術】
コンピュータの性能向上により、従来は専用の装置で行っていた作業をコンピュータで置き換えることが可能となっている。そのような機器の１つにビデオ編集機がある。すなわち、ＶＴＲ(Video Tape Recorder)などの画像や音の編集作業を、コンピュータを用いて行うことが可能となっている。その場合、画像情報や音情報をコンピュータのハードディスク装置に格納し、コンピュータのアプリケーションプログラムを用いて編集作業を行う。このようなビデオ編集システムを、ノンリニア編集機という。
【０００３】
ノンリニア編集機は、画像の変形・合成が自由にできることや、編集を繰り返しても画質の劣化がないという点において、従来の編集システムより優れている。例えば、実写の画像にＣＧ(Computer Graphics)を合成するのも容易である。
【０００４】
このようなノンリニア編集機は、ノンリアルタイムに編集作業を行うコンピュータ部分であるパーソナルコンピュータユニット（ＰＣＵ）と、リアルタイムにＶＴＲなどの編集機器を制御するビデオプロセッシングユニット（ＶＰＵ）とに分かれており、それぞれにＣＰＵ(Central Processing Unit)が搭載されている。そして、ＰＣＵ内で編集用のアプリケーションプログラムが実行されると、必要に応じてＶＰＵへコマンドが発行される。なお、以下の説明では、アプリケーションプログラムをＰＣＵ内のＣＰＵが実行することによって実現する処理機能を、単に「アプリケーション」と呼ぶこととする。
【０００５】
アプリケーションから編集機にコマンドを送信する際、編集機側の処理時間が長い場合のコマンドのオーバーフローを防ぐために、コマンドキューを介して通信するのが一般的である。このためアプリケーション側では、編集機側の状態を気にせずにコマンドを発行でき、編集機側ではキューの先頭からのコマンドを機械的に処理している。
【０００６】
【発明が解決しようとする課題】
しかし、従来のコマンド転送方法には以下のような問題点があった。
（１）何らかのエラーが発生した場合、キューの情報をクリアするにはアプリケーション自身がその判断及び処理（コマンドキューイング）を行う必要がある。このようなコマンドキューの管理機能をアプリケーションに持たせようとすると、アプリケーションプログラムが複雑化する。
【０００７】
（２）同じコマンドや、コマンドの組み合わせによっては無意味となるコマンドまでキューに積まれてしまう（アプリケーション側で処理することは可能だが複雑になる）。例えば、ビデオの再生を停止させるコマンドを発行した際に、その動作が実行されるまでに時間がかかると、編集者が再度、停止指令を出してしまう場合もある。すると、同じコマンドが重複することになる。これにより、意味のないコマンドがＶＰＵ側に送られ、ＶＰＵの円滑な動作が妨げられてしまう。
【０００８】
このように、従来のノンリニア編集機ではＶＰＵ側に無意味なコマンドが送られることが多々ありＶＰＵの円滑な動作を妨げていた。無意味なコマンドを排除するにはアプリケーションで対処せざるを得ず、アプリケーションプログラムが複雑かつ冗長となる。しかも、実行される全てのアプリケーションに同様の機能を組み込むこととなり、個々のアプリケーション開発の手間が増えるとともに、アプリケーションプログラムの移植等が困難となるなどの問題もある。
【０００９】
本発明はこのような点に鑑みてなされたものであり、キューイングされたコマンドを最適化できるデータ処理装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明では上記課題を解決するために、制御相手に対してコマンドによって指令を伝えるデータ処理装置において、発行されたコマンドを蓄積する待ち行列保持手段と、前記待ち行列保持手段に蓄積されたコマンドの組み合わせによって行われる処理内容を解釈し、意図された処理内容をより少ないコマンドで実行できるようにコマンドの待ち行列を最適化する待ち行列最適化手段と、前記待ち行列保持手段に蓄積されているコマンドを、先に蓄積された順に取り出し、実行相手に転送するコマンド出力手段と、を有し、前記待ち行列最適化手段は、前記待ち行列保持手段に蓄積されたコマンドを、ビデオ編集機における編集動作を操作するためのコマンドに対応する第１の系列と、前記ビデオ編集機に接続された外部機器の動作を制御するためのコマンドに対応する第２の系列とを含む複数の系列に分類し、前記第１の系列に分類されたコマンド同士、および、前記第２の系列に分類されたコマンド同士では、先に蓄積されたコマンドを無意味化してしまうような後優先コマンドが蓄積された場合には、前記後優先コマンドより前に蓄積されたコマンドを削除し、他のコマンドと統合できる統合可能コマンドが複数ある場合には、複数の前記統合可能コマンドによる動作内容を１つのコマンドに統合することによって、最適化を行うことを特徴とするデータ処理装置が提供される。
【００１１】
このようなデータ処理装置によれば、待ち行列保持手段に保持されているコマンドの組み合わせによって意図されている処理内容が、待ち行列最適化手段によって解釈される。すると、意図された処理内容がより少ないコマンドで実行できるように、待ち行列最適化手段によって、コマンドの待ち行列が最適化される。そして、コマンド出力手段によって、待ち行列保持手段に蓄積されているコマンドが、先に蓄積された順に取り出され、実行相手に転送される。また、待ち行列最適化手段は、系列毎にコマンドを分類し、所定の系列に分類されたコマンドについては、同一の系列に分類されたコマンド同士において最適化を行う。コマンドの系列としては、ビデオ編集機における編集動作を操作するためのコマンドに対応する第１の系列と、ビデオ編集機に接続された外部機器を制御するためのコマンドに対応する第２の系列とが含まれる。そして、特に、第１の系列に分類されたコマンド同士、および、第２の系列に分類されたコマンド同士では、先に蓄積されたコマンドを無意味化してしまうような後優先コマンドが蓄積された場合には、後優先コマンドより前に蓄積されたコマンドが削除され、他のコマンドと統合できる統合可能コマンドが複数ある場合には、複数の統合可能コマンドによる動作内容が１つのコマンドに統合されることによって、最適化が行われる。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の原理構成図である。本発明のデータ処理装置では、待ち行列保持手段２が、アプリケーション１から発行されたコマンド２ａ〜２ｃを蓄積する。コマンド列最適化手段３は、待ち行列保持手段２に蓄積されたコマンド２ａ〜２ｃの組み合わせによって行われる処理内容を解釈し、意図された処理内容をより少ないコマンドで実行できるようにコマンドの待ち行列を最適化する。コマンド出力手段４は、待ち行列保持手段２に蓄積されているコマンド２ｃを、先に蓄積された順に取り出し、実行相手である制御対象機器５に転送する。制御対象機器５は、受け取ったコマンド２ｃの命令に従って動作する。
【００１３】
このようなデータ処理装置によれば、待ち行列保持手段２に保持されているコマンドの組み合わせによって意図されている処理内容が、コマンド列最適化手段３によって解釈される。例えば、図に示すように、「ＳＴＯＰ」のコマンド２ａ、「ＰＬＡＹ」のコマンド２ｂ、「ＳＴＯＰ」のコマンド２ｃの順で蓄積されていた場合、「ＰＬＡＹ」のコマンド２ｂを実行しても、直後に「ＳＴＯＰ」のコマンド２ｃが実行されるため、コマンド２ｂを実行する意味がない。そこで、これらのコマンド２ａ〜２ｃを解釈すると、制御対象機器５が「ＳＴＯＰ」の状態に遷移すればよいことがわかる。すると、意図された処理内容がより少ないコマンドで実行できるように、コマンド列最適化手段３によって、コマンドの待ち行列が最適化される。図の例では、制御対象機器５がＳＴＯＰの状態になればよいため、先頭の２つのコマンド２ａ，２ｂが削除される。すると、コマンド出力手段４によって、残されたコマンド２ｃが制御対象機器５に転送され、制御対象機器５は、送られたコマンド２ｃに従って停止状態となる。
【００１４】
このように待ち行列保持手段２に保持されたコマンドを最適化することによって、制御対象機器５に対して無意味なコマンドを送信することがなくなり、制御対象機器５を円滑に動作させることができる。
【００１５】
本発明をノンリニア編集機に適用すれば、ビデオデッキなどの外部機器の制御などを効率よく行うことができる。そこで、本発明を適用したノンリニア編集機について具体的に説明する。
【００１６】
図２は、本発明を適用したノンリニア編集機の外観を示す図である。ノンリニア編集機は、パーソナルコンピュータユニット１０（以下、「ＰＣＵ」という）、ビデオプロセッシングユニット２０（以下、「ＶＰＵ」という）、及びディスクユニット(Disk Unit)３０で構成されている。ＰＣＵ１０は、本システムをノンリアルタイムＯＳ(Operating System)で制御する機能を有している。ＰＣＵ１０には、表示装置として２つのモニタ４１，４２が接続されている。また、入力装置としては、キーボード４３とマウス４４とが接続されている。ＶＰＵ２０には、コントロールパネル４５が接続されている。
【００１７】
図３は、ＰＣＵのハードウェア構成を示す図である。ＰＣＵ１０は、ＣＰＵ１１、表示制御回路(Graph)１２、キャッシュ(Cache)１３、システムコントローラ(System Controller)１４、メモリ(Memory)１５などにより構成されている。
【００１８】
ＣＰＵ１１は、ＰＣＵ１０内の他の要素を制御することでアプリケーションなどのプログラムに従った演算を行い、ＶＰＵ２０に対してコマンドを発行する機能を有する。
【００１９】
表示制御回路(Graph)１２は、ＡＧＰ(Accelerated Graphics Port)バスによって、ＣＰＵ１１に直接接続されており、ＣＰＵ１１で作成された状態その他の情報をモニタ４１，４２を通して表示させる機能を有する。
【００２０】
キャッシュ１３は、ＣＰＵ１１が頻繁にアクセスするメモリ内の情報を記憶する高速の記憶部であり、ＣＰＵ１１と直接情報を授受することにより、システムの高速化を図れるようになっている。
【００２１】
システムコントローラ１４は、ＣＰＵ１１、キャッシュ１３、メモリ１５及びＰＣＩ(Peripheral Component Interconnect)バス１７とのデータ転送に関して調整を行うハードウェア部である。
【００２２】
メモリ１５は、ＣＰＵ１１の指示もしくはシステムコントローラ１４の指示により、情報の書き込み・読み出しを行う記憶部分であって、例えば、ＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)等を用いる。
【００２３】
ホストバス１６は、ＣＰＵ１１に直接接続され、ＣＰＵ１１からのコマンドを伝達するためのコマンドバスである。ＣＰＵ１１は、このホストバス１６を通して、キャッシュ１３、システムコントローラ１４などとコマンド及びデータの授受ができるようになっている。
【００２４】
ＰＣＩバス１７は、ホストバス１６と分離された情報の伝達手段であって、システムコントローラ１４に接続されている。
拡張ＰＣＩバス１８は、ＰＣＵ１０内のＰＣＩバス１７とＶＰＵ２０内のＰＣＩバス２０ｃ（図４に示す）とを接続する。これにより、ＣＰＵ１１は、ＶＰＵ２０内の各ボードにコマンド・データを伝達することができる。
【００２５】
図４は、ＶＰＵとディスクユニットとのハードウェア構成を示す図である。ＶＰＵ２０は、ディジタルＡＶ(Audio Visual)用入出力ポート(Digital AV In/Out)４６を通してデジタルデータの入出力、ハードディスクからのリアルタイム再生、ハードディスクへのリアルタイム記録など、リアルタイムで動作する機能を持つ。このＶＰＵ２０は、タイトル生成部(Title G)２２、ＣＯＤＥＣ(coder]decoder)２３、ビデオ用ディスクコントローラ(Video Storage)２４、ＤＭＥ(Distributed Management Environment)／ＳＷ(switcher)ボード２５、オーディオ用ディスクコントローラ(Audio Storage)２６、オーディオボード(Audio)２７、ローカルＣＰＵ２８、ディジタル入出力ボード(D.I/O)２９などの各ボード、ディスクサブシステム２６ａ及びローカルＣＰＵバス２０ａ、ＤＡＶ(Digital Audio Visual)バス２０ｂ、ＰＣＩバス２０ｃの３本のバスから構成される。また、ＶＰＵ２０にはスペアスロット２１が用意されており、図に示したボード以外に必要なボードがある場合には、スペアスロット２１に接続することができる。
【００２６】
ローカルＣＰＵバス２０ａは、ローカルＣＰＵ２８がタイトル生成部２２、ＣＯＤＥＣ２３、ＤＭＥ／ＳＷボード２５、オーディオ用ディスクコントローラ２６、オーディオボード２７、及びディジタル入出力ボード２９の各ボードへコマンド・データを転送するためのバスである。
【００２７】
ＤＡＶバス２０ｂは、タイトル生成部２２、ＣＯＤＥＣ２３、ＤＭＥ／ＳＷボード２５、オーディオ用ディスクコントローラ２６、オーディオボード２７、ローカルＣＰＵ２８、及びディジタル入出力ボード２９の各ボード間のリアルタイムデータ（映像・音）を転送するためのバスである。
【００２８】
ＰＣＩバス２０ｃは、タイトル生成部２２、ＣＯＤＥＣ２３、ビデオ用ディスクコントローラ２４、ＤＭＥ／ＳＷボード２５、オーディオ用ディスクコントローラ２６、オーディオボード２７、ローカルＣＰＵ２８、ディジタル入出力ボード２９の各ボードが、主としてＰＣＵ１０側のＣＰＵ１１との間でコマンド・データの転送をするためのバスである。
【００２９】
スペアスロット２１は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されているスロットであり、拡張用に用意されている。
タイトル生成部２２は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されている。このタイトル生成部２２は、ＣＰＵ１１からの指示によりタイトル等を作成しＤＡＶバス２０ｂを介して他のボードに流す機能を有している。
【００３０】
ＣＯＤＥＣ２３は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されている。このＣＯＤＥＣ２３は、ディジタルＡＶ用入出力ポート４６から入力された映像信号をＤＡＶバス２０ｂを通して受け取り、そのままあるいはリアルタイムに圧縮した後、ＤＡＶバス２０ｂを通してビデオ用ディスクコントローラ２４に映像信号を転送してディスクユニット３０に記録する機能を有する。また、ビデオ用ディスクコントローラ２４を通してディスクユニット３０から読み出される圧縮映像信号をリアルタイムに解凍し（あるいは非圧縮映像信号をそのまま）、ＤＡＶバス２０ｂを通してディジタルＡＶ用入出力ポート４６から出力する機能を有する。
【００３１】
ビデオ用ディスクコントローラ２４は、ＰＣＩバス２０ｃのみに直接接続されている。このビデオ用ディスクコントローラ２４は、ＣＯＤＥＣ２３からの出力をディスクユニット３０へリアルタイムに記録したり、ディスクユニット３０から読み出したデータをＣＯＤＥＣ２３へ出力することをリアルタイムに行う機能を有する。
【００３２】
ＤＭＥ／ＳＷ２５は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されている。このＤＭＥ／ＳＷ２５は、ＣＯＤＥＣ２３、タイトル生成部２２等の出力を変形・合成したり、それらの切り替えを制御したりする機能を有する。
【００３３】
オーディオ用ディスクコントローラ２６は、ＰＣＩバス２０ｃのみに直接接続されている。オーディオボード２７から出力される音出力をＤＡＶバス２０ｂを通して受け取り、ディスクサブシステム２６ａにリアルタイムで記録したり、ディスクサブシステム２６ａから読み出した音出力をＤＡＶバス２０ｂを通してリアルタイムでオーディオボード２７に入力する機能を有する。
【００３４】
オーディオボード２７は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されている。このオーディオボード２７は、ディジタルＡＶ用入出力ポート４６から入力された音信号をＤＡＶバス２０ｂを通して受け取り、オーディオ用ディスクコントローラ２６に音信号を転送してディスクサブシステム２６ａに記録する機能を有している。また、ディスクサブシステム２６ａから読み出した音信号をオーディオ用ディスクコントローラ２６から受け取り、様々なパラメータを変換し、ミキシングした後、ＤＡＶバス２０ｂを通してディジタルＡＶ用入出力ポート４６から出力する機能を有している。
【００３５】
ローカルＣＰＵ２８は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されている。ＣＰＵ１１（図３に示す）からのコマンド・データをＰＣＩバス１７，１８，２０ｃを通して受信して、ＶＰＵ２０全体の制御をローカルＣＰＵバス２０ａを通して行う機能を有する。
【００３６】
ディジタル入出力（Ｄ．Ｉ／Ｏ）ボード２９は、ローカルＣＰＵバス２０ａ、ＤＡＶバス２０ｂ、ＰＣＩバス２０ｃに直接接続されている。ディジタルＡＶ用入出力ポート４６からの映像信号・音信号をローカルＣＰＵ２８の指示により入出力する機能を有する。
【００３７】
ディスクサブシステム２６ａは、オーディオ用ディスクコントローラ２６に直接接続されている。このディスクサブシステム２６ａは、ＣＰＵ１１（図３に示す）からの指示によりＰＣＩバス２０ｃ上のデータを記録・読み出しを行う。その際の接続形式は、ＳＣＳＩ(Small Computer System Interface)あるいは、Fiber Channel（ＳＣＳＩ−３での標準化が行われているシリアルバス）などを用いる。
【００３８】
ディスクユニット３０は、ビデオ用ディスクコントローラ２４に直接接続されている。その接続形式は、ＳＣＳＩまたはFiber Channelなどを用いる。この例では、アクセススピードを確保するためにＲＡＩＤ (Redundant Array of Inexpensive Disks)−５程度のディスクシステムを使っている。
【００３９】
このような構成のノンリニア編集機において、ＰＣＵ１０上で動作するアプリケーションが、ＶＰＵ２０のローカルＣＰＵ２８に向けて発行したコマンドをキューイングするために、ＰＣＵ１０内には以下のような処理機能が構築される。
【００４０】
図５は、コマンドキューイングシステムの機能ブロック図である。図５のアプリケーション５１はＰＣＵ１０で実行されているＯＳ（例えばＷｉｎｄｏｗｓＮＴ（米マイクロソフト社の登録商標））上で動作する。
【００４１】
中間オブジェクト５２もこのＯＳ上で動作するものであり、例えばＣＯＭ(Component Object Model)などである。中間オブジェクト５２は、アプリケーション５１の起動と同時に生成される。すなわち、ＣＯＭなどでプログラミングされた中間オブジェクト用プログラムが、アプリケーション５１とともに起動される。この中間オブジェクト５２は、起動された際に、キューイングを行うためのコマンド保持領域５３をメモリ１５内に確保する。そして、アプリケーション５１からのコマンドを、この中間オブジェクト５２がコマンド保持領域５３にキューイングする。
【００４２】
また、中間オブジェクト５２は編集機５４の状態を見て、コマンド保持領域５３にキューイングされたコマンドを最適化し、先入れ先出し方式によって編集機５４に渡す。各コマンドに対しては編集機５４側から応答がある。この応答を受け取ると、次のコマンドを編集機５４に渡す。基本的に、編集機５４からの応答メッセージは中間オブジェクト５２側で処理され、中間オブジェクト５２からアプリケーション５１ヘの応答メッセージは、エラーメッセージや限られた必要なものだけがフィルタリングして送られる。
【００４３】
コマンド保持領域５３は、メモリ１５内に確保された記憶領域である。具体的には、ＯＳが管理するメモリ空間内に確保されたコマンド記憶用のアドレス空間を指す。
【００４４】
編集機５４は、ＶＰＵ２０のローカルＣＰＵ２８がＶＰＵ２０に接続された各種機器を制御する機能を指す。具体的には、ＰＣＵ１０から送られたコマンドをローカルＣＰＵ２８が受け取り、各ボードに制御信号あるいはメッセージを送り、制御する機能である。編集機５４は、あるコマンドを受け取り、そのコマンドに従った動作を行ったら、中間オブジェクト５２に対して応答を返す。
【００４５】
ここで、中間オブジェクト５２の機能を、さらに詳しく説明する。中間オブジェクト５２は、アプリケーション５１から発行されるコマンドを、後優先コマンド、統合可能コマンド、及びその他のコマンドに分類することができる。後優先コマンドとは、そのコマンドを実行する場合には、それ以前のコマンドが無意味化してしまうようなコマンドである。また、統合可能コマンドとは、同様の動作を行わせるコマンドが複数存在すれば、それらを統合可能なコマンドである。例えば、編集機トランスポート系のコマンドであれば、「PLAY,FF,REW,STOP,JOG,SHUTTLE」などが後優先コマンドであり、「LOCATE,コマ送り」などが統合可能コマンドである。なお、これらのコマンドの具体的な意味は後述する。
【００４６】
中間オブジェクト５２は、各コマンドの種別に基づいて、以下のような場合分けを行う。
（１）最適化すべきコマンドが存在しない場合
（２）後優先コマンドが先頭以外にある場合
（３）統合可能コマンドが複数存在する場合
まず、上記（１）の場合について説明する。
【００４７】
図６は、最適化すべきコマンドが存在しない場合のコマンドの例を示す図である。これは、アプリケーション５１側からＧＵＩ(graphical User Interface)上のＳＴＯＰボタンを押した後、外部に接続されたレコーダー等の機器へのＰＬＡＹボタンを押し、さらに再生用のリスト（動作スケジュールが時系列で設定されたデータ）を送信した状態である。ボタンが押されるたびに、そのボタンに対応するコマンドがアプリケーション５１から出力され、押されたボタンに対応するコマンドが中間オブジェクト５２に送信される。中間オブジェクト５２は、受け取った順に、コマンドをコマンド保持領域５３にキューイングする。その結果、「ＳＴＯＰ」のコマンド５３ａ、「外部機器ＰＬＡＹ」のコマンド５３ｂ、「リスト送信」のコマンド５３ｃが順にキューイングされている。
【００４８】
この３つのコマンド５３ａ〜５３ｃは最適化対象となるような関係にない。すなわち、「ＳＴＯＰ」のコマンド５３ａは後優先コマンドであるが、先頭にキューイングされているため、最適化の必要がない。また、他のコマンド５３ｂ，５３ｃは、後優先コマンドでも統合可能コマンドでもないため、最適化の必要がない。そのため、このようなコマンドの組み合わせは上記（１）の場合に該当し、コマンド保持領域５３から各コマンド５３ａ〜５３ｃが、順次中間オブジェクト５２によって取り出され、編集機５４に送信される。編集機５４はＳＴＯＰ状態になった後、外部機器に対するＰＬＡＹコマンドを送信し、続けてリストを送信する。これは従来の方法と何ら変わりはない。
【００４９】
次に、上記（２）の場合について説明する。
図７は、後優先のコマンドが先頭以外にある場合の例を示す図である。これは、アプリケーション５１のＧＵＩ上のボタンによりＳＴＯＰボタンを押した後、ＰＬＡＹボタンを誤って押したために、再度ＳＴＯＰボタンを押した状態である。このような操作に対するコマンドが中間オブジェクト５２に渡された結果、コマンド保持領域５３には、「ＳＴＯＰ」のコマンド５３ｄ、「ＰＬＡＹ」のコマンド５３ｅ、「ＳＴＯＰ」のコマンド５３ｆの順でキューイングされている。
【００５０】
ここで、従来であれば編集機はＳＴＯＰ状態の後、一瞬ＰＬＡＹモードに入るが、直ちにＳＴＯＰ状態へと遷移する。つまり、この状態では最後のＳＴＯＰのみ有効になるのと等しく、無駄な動作であるといえる。しかも、このような無駄な動作を行うと、各々のコマンド送信、応答の受信には時間がかかるため、応答性が悪化する。
【００５１】
これに対処するため、コマンド５３ｄ〜５３ｆの種別を中間オブジェクト５２が判別する。すると、最後の「ＳＴＯＰ」のコマンド５３ｆが後優先コマンドであることが判明する。そこで、中間オブジェクト５２は、先の２つのコマンド５３ｄ，５３ｅを削除し、最後の「ＳＴＯＰ」のコマンド５３ｆのみを残す。これにより、「ＳＴＯＰ」のコマンド５３ｆのみが編集機５４へ送られる。すると、編集機５４はＳＴＯＰ状態に遷移し、次のコマンドの入力を待つ。
【００５２】
次に、上記（３）の場合を説明する。
図８は、統合可能コマンドが複数存在する場合の例を示す図である。これは、アプリケーション５１上のＧＵＩ上でＬｏｃａｔｅＴｉｍｅを５分に設定し、ＬＯＣＡＴＥボタンを押し、さらにコマ送り数を３コマに設定し、コマ送りボタンを押した場合を示している。この操作により、コマンド保持領域５３には、ＬｏｃａｔｅＴｉｍｅ５分のコマンド５３ｇとコマ送り３コマのコマンド５３ｈとがキューイングされている。
【００５３】
従来であれば、編集機５４は５分の位置で静止した後、３コマ分進めるという動作を行う。しかしこれはやはり動作としては冗長である。そこで中間オブジェクト５２は、先にキューイングされた統合可能なコマンド５３ｇの履歴を記憶しておく、そして、コマンド５３ｇが出力される前に別の統合可能なコマンド５３ｈがキューイングされたら、コマンド５３ｈに対して前のコマンド５３ｇを統合し、前のコマンド５３ｇを削除する。つまり、５分＋３コマのＬＯＣＡＴＥコマンドがコマンド保持領域５３にキューイングされ、編集機５４に送信される。
【００５４】
中間オブジェクト５２は、以上のような３通りの場合分けを行って、キューイングされたコマンドの最適化を行う。ところで、実際にノンリニア編集機におけるキューイングコマンドの最適化を行うには、最適化の前にコマンドを系列毎に分類する必要がある。そのため、次のような手順で最適化を行う。
【００５５】
図９は、最適化処理手順を示すフローチャートである。これは、すべて中間オブジェクト５２が行う処理である。
［Ｓ１］キューイングされているコマンドを系列で分類する。
［Ｓ２］系列毎にリストを作成する。この際、キューイングされた順番に関する情報は保っておく。
［Ｓ３］同系列内でコマンドを最適化する。
［Ｓ４］異系列をまたがった最適化を行う。
［Ｓ５］先にキューイングされた順にコマンドを発行する。
【００５６】
次に、図９のような手順によって行われる最適化処理について具体的に説明する。まず、コマンドの系列毎の振り分けについて説明する。
ノンリニア編集機では、編集機トランスポート系、システム設定系、外部機器操作系及びプレイリスト系の４系統のコマンドがある。
【００５７】
編集機トランスポート系は、編集機によるノンリニア編集を操作するためのコマンドである。編集機トランスポート系のコマンドとしては、「PLAY,FF,REW,STOP,JOG,SHUTTLE,LOCATE,コマ送り,REC」などのコマンドがある。
【００５８】
「PLAY」は再生用のコマンドである。「FF」は早送りのコマンドである。「REW」は巻き戻しのコマンドである。「STOP」は動作停止のコマンドである。「JOG」はジョグダイヤルと呼ばれるダイヤルの回転角度に応じたスピードでコマ送りをさせるためのコマンドである。「SHUTTLE」は所定のダイヤルの回転角度に応じて早送りや巻き戻しのスピードを制御するためのコマンドである。「LOCATE」は記録再生を行うべき位置を、所定の位置に移動させるためのコマンドである。「コマ送り」は１コマずつ表示画面を切り替えるためのコマンドである。「REC」は録画開始用のコマンドである。
【００５９】
システム設定系は、ＶＰＵのパラメータなどを設定するためのコマンドである。システム設定系のコマンドとしては、「LOCATETIME SET/CLEAR,FS SET,BIT MODE SET,RESTART,INITIALAIZE・・・」などのコマンドがある。
【００６０】
「LOCATETIME SET/CLEAR」は「LOCATE」コマンドにより移動すべき位置の設定、及び解除するためのコマンドである。「FS SET」はサンプリング周波数を設定するためのコマンドである。「BIT MODE SET」は音を表現する際のビット数を設定するためのコマンドである。「RESTART」はＶＰＵ２０を電源投入時と同様の状態から再起動するためのコマンドである。「INITIALAIZE」はローカルＣＰＵ２８内のレジスタなどの値を初期値に戻すためのコマンドである。
【００６１】
外部機器操作系は、ＶＰＵ２０に接続されたビデオテープレコーダなどの外部機器を制御するためのコマンドである。なお、ビデオテープレコーダなどの外部機器は図４には示していないが、ローカルＣＰＵ２８に直接接続される。外部機器操作系のコマンドとしては、「PLAY,STOP,FF,REW,REC,LOCATE」などのコマンドがある。「PLAY」は外部機器に再生動作を開始させるためのコマンドである。「STOP」は外部機器の動作を停止させるためのコマンドである。「FF」は外部機器に早送り動作をさせるためのコマンドである。「REW」は外部機器に巻き戻し動作をさせるためのコマンドである。「REC」は外部機器に録音もしくは録画動作をさせるためのコマンドである。「LOCATE」は録音もしくは再生を開始する記録メディア上の場所を、所定の位置に移動させるためのコマンドである。
【００６２】
プレイリスト系は、外部機器を同期制御するための動作スケジュールが登録されたリストの送信等の制御を行うためのコマンドである。プレイリスト系のコマンドとしては、「ListSend,ClearList,RemoveList,InsertList」などのコマンドがある。
【００６３】
「ListSend」はリストを送信するためのコマンドである。「ClearList」送信したリストを削除するためのコマンドである。「RemoveList」は送信したリストの一部を消去するためのコマンドである。「InsertList」は送信したリストへ別のリストを挿入するためのコマンドである。
【００６４】
このような各系列のコマンドが混在して中間オブジェクト５２に送られ、コマンド保持領域５３にキューイングされる。その際、中間オブジェクト５２は、各コマンドを系列によって分類して、系列毎のコマンドリストを作成する。そして、系列毎の各コマンドの種別（後優先コマンド、統合対象コマンド、その他のコマンドの別）を識別する。例えば、編集機トランスポート系の中ではＬＯＣＡＴＥ，コマ送りが統合可能コマンドであり、他のコマンドは後優先コマンドである。システム設定系では、後優先コマンドや統合対象コマンドは存在せず、すべて優先順位が等しいものとして扱っている。なぜなら「ＦＳ  ＳＥＴ」→「ＢＩＴＭＯＤＥ  ＳＥＴ」というコマンドがキューに入っていた場合、どちらか一方のみ処理すればよいわけではなく、両方の処理を行わなければならないからである。外部機器操作系では基本的にトランスポート系と同じように後優先コマンドとなるが、コマンドによって統合可能コマンドも存在する。
【００６５】
ここで、以下のようなコマンドがキューイングされている場合を考えてみる。図１０は、複数の系列のコマンドがキューイングされている状態を示す図である。このように、異なる系列のコマンド５３ｉ〜５３ｏがキューイングされている場合、中間オブジェクト５２は、まず系列毎にコマンドを分けるためのリストをつくる。ここでいうリストとは、機器の動作スケジュールを定義したリストではなく、コンピュータ用語として一般的に用いられているリスト構造のリストである。
【００６６】
図１１は、系列毎にリスト化されたコマンドを示す図である。この図に示すように、各コマンド５３ｉ〜５３ｏは系列毎に分けられる。このとき、各コマンドが発行された順番は保持されている。このように分類されたコマンドが、系列毎に最適化される。
【００６７】
図１２は、系列毎に最適化されたコマンドを示す図である。この例では、トランスポート系に「ＳＴＯＰ」の後優先のコマンド５３ｋがあるため、それ以前のコマンド５３ｉ，５３ｊは削除されている。このように最適化されたキューは、先に入力されたコマンドから順に編集機に送られる。
なお、上記の例では、異なる系列間での最適化の例を示していないが、そのような例としては、次のような例が考えられる。例えば、システムの緊急停止用のコマンドが用意されており、そのコマンドが発行された場合である。この場合には、系列の区別に関わらず、緊急停止以外のコマンドを削除する。
【００６８】
また、エラーが発生したときにはキューの内容を、そのエラーの内容に応じて最適化することにより、コマンド再送等に伴う遅延や誤動作による影響を最小限にすることが可能である。例えば、上図の例において「外部機器＃１  ＰＬＡＹ」コマンドを発行した際に、実は「外部機器＃１」が接続されていなかった場合を考える。このとき、これ以降の「外部機器＃１」へのコマンドは、編集機５４側からの接続応答が発行されるまで中間オブジェクト５２で受け付けないようにすることができる。
【００６９】
また、ＰＣＵ１０のシステム、あるいはＶＰＵ２０側に重大なエラーが発生した場合はキュー内の全てのコマンドを削除し、復旧用のコマンドを優先的に受け付けることも可能である。
【００７０】
また、上記実施例では全てのコマンドに対して最適化を行うように書いているが、処理時間のかからないコマンドに対してはコマンドキューイング最適化処理を行わないことも可能である。
【００７１】
これまでの説明のように、中間オブジェクト５２のコマンドキューイング処理により、アプリケーションは単にコマンドを発行すればよく、そのコマンドが実際に送信されるまでの手続きを管理する必要がない。そのため、アプリケーション側では複雑な処理が不要となり、アプリケーションプログラムの開発や、他のシステムから本発明を適用したシステムヘの移植作業などが容易となる。
【００７２】
しかも、中間オブジェクト５２は、コマンドを受け取った編集機がどのように動作するのかによって最適化を行うため、複数のアプリケーションから発行されたコマンドであっても適切に最適化を行うことができる。その結果、コマンドを発行するアプリケーションあるいはコントローラなどから複数同時アクセスがあったとしても柔軟に対応できる。
【００７３】
なお、上記のノンリニア編集機が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【００７４】
【発明の効果】
以上説明したように本発明では、待ち行列保持手段に保持されたコマンドの組み合わせによって行われる処理内容を解釈し、意図された処理内容をより少ないコマンドで実行できるようにしたため、コマンドの冗長性が排除され、制御相手を円滑に制御することができる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明を適用したノンリニア編集機の外観を示す図である。
【図３】ＰＣＵのハードウェア構成を示す図である。
【図４】ＶＰＵとディスクユニットとのハードウェア構成を示す図である。
【図５】コマンドキューイングシステムの機能ブロック図である。
【図６】最適化すべきコマンドが存在しない場合のコマンドの例を示す図である。
【図７】後優先のコマンドが先頭以外にある場合の例を示す図である。
【図８】統合可能コマンドが複数存在する場合の例を示す図である。
【図９】最適化処理手順を示すフローチャートである。
【図１０】複数の系列のコマンドがキューイングされている状態を示す図である。
【図１１】系列毎にリスト化されたコマンドを示す図である。
【図１２】系列毎に最適化されたコマンドを示す図である。
【符号の説明】
１…アプリケーション、２…待ち行列保持手段、２ａ〜２ｃ…コマンド、３…コマンド列最適化手段、４…コマンド出力手段、５…制御対象機器
【図１】
0004186301.tif 000002
【図２】
0004186301.tif 000003
【図３】
0004186301.tif 000004
【図４】
0004186301.tif 000005
【図５】
0004186301.tif 000006
【図６】
0004186301.tif 000007
【図７】
0004186301.tif 000008
【図８】
0004186301.tif 000009
【図９】
0004186301.tif 000010
【図１０】
0004186301.tif 000011
【図１１】
0004186301.tif 000012
【図１２】
0004186301.tif 000013