(57)【特許請求の範囲】
【請求項１】
変換処理の対象となるデータを取得する機能を実現するプログラムである入力プラグイン、前記取得されたデータに対して前記変換処理を施す機能を実現するプログラムである変換プラグイン、前記変換処理によって変換されたデータを出力する機能を実現するプログラムである出力プラグイン、および前記各プラグインを管理する機能を実現するプログラムであるコアエンジンからなる再生エンジン、ならびに前記再生エンジンによって処理するデータを供給する機能を実現するアプリケーションプログラムを記憶する記憶手段と、
前記記憶手段から前記入力プラグイン、前記変換プラグイン、前記出力プラグイン、前記コアエンジン、前記アプリケーションプログラムを読み込んでそれぞれに応じた処理を実行するＣＰＵと、
を含んで構成されるとともに、
前記ＣＰＵは、
前記アプリケーションプログラムの実行により、前記変換処理の対象となるデータをメモリを経由して前記入力プラグインによる処理への入力としてセットする手段として機能し、
前記コアエンジンの実行により、前記入力プラグインによって取得するデータのデータタイプに基づいて前記変換プラグインを選択し、前記入力プラグインによって取得するデータが前記選択された変換プラグインによる処理への入力となるように該入力および変換プラグインを連結し、前記選択された変換プラグインによる変換後のデータのデータタイプに基づいて前記出力プラグインを選択し、前記選択された変換プラグインによる変換後のデータが前記選択された出力プラグインによる処理への入力となるように該変換および出力プラグインを連結する手段として機能し、
前記入力プラグイン、前記選択された変換プラグイン、および前記選択された出力プラグインの実行により、前記メモリを経由してセットした変換処理の対象となるデータを取得し、該取得したデータに対して変換処理を施し、該変換処理によって変換したデータを該データのデータタイプに応じた出力デバイスへ出力する一連の処理を行う手段として機能する
ことを特徴とするデータ処理装置。
【請求項２】
前記ＣＰＵは、前記アプリケーションプログラムの実行により、複数種類のデータから構成される複合データのうちの一部種類のデータをメモリを経由して前記入力プラグインによる処理への入力としてセットするとともに、前記複合データのうちの他の種類のデータを表示デバイスへ表示させる処理を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
変換処理の対象となるデータをメモリを経由して取得する入力機能と、
前記取得されたデータに対して前記変換処理を施す複数の変換機能と、
前記変換処理によって変換されたデータを該データのデータタイプに応じた出力デバイスへ出力する複数の出力機能と、
前記変換処理の対象となるデータを前記メモリを経由して前記入力機能への入力としてセットする機能と、
前記入力機能によって取得するデータのデータタイプに基づいて前記変換機能を選択し、前記入力機能によって取得するデータが前記選択された変換機能への入力となるように該入力機能および該変換機能を連結し、前記選択された変換機能による変換後のデータのデータタイプに基づいて前記出力機能を選択し、前記選択された変換機能による変換後のデータが前記選択された出力機能への入力となるように該変換機能および該出力機能を連結する機能と、
をコンピュータに実行させるコンピュータプログラム。
【請求項４】
さらに、複数種類のデータから構成される複合データのうちの一部種類のデータをメモリを経由して前記入力機能への入力としてセットするとともに、前記複合データのうちの他の種類のデータを表示デバイスへ表示させる機能をコンピュータに実行させることを特徴とする請求項３に記載のコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばデジタルオーディオデータなどのデータを処理するためのデータ処理装置およびデータ処理方法に関する。特に、入力、変換、出力の３階層で構成されるモジュール群を用いてデータ変換の処理を行うデータ処理装置およびデータ処理方法に関する。
【０００２】
【従来の技術】
コンピュータを用いて実現されるデータ処理装置において、プログラムの柔軟性や保守容易性を維持しながら、様々なタイプのデータに対応できるようにするために「プラグイン」と呼ばれるプログラムモジュールが使用される場合がある。このプラグインは、それぞれ独立して記述されたソースプログラムファイルをコンパイルすることによって、個別の実行可能形式ファイルとして生成され、動的に、つまり必要なタイミングに呼び出されて実行される。
【０００３】
図８は、従来技術によるインターネットラジオ再生装置のソフトウェアを上記のようなプラグインを用いて構成した例を示すソフトウェア構成図である。図８において、符号９２０はＧＵＩ（グラフィカルユーザインタフェース，ユーザインタフェース処理モジュール）であり、このＧＵＩ・９２０は、利用者に対して操作用の画面を提供するとともに、その画面を通して行われる操作に応じた処理を実行するための制御を行うものである。また、９２１はコアエンジン（プラグイン管理）であり、このコアエンジン９２１は、ＧＵＩ・９２０からの指示情報などに基づいて、必要な処理を行うプラグインを起動したり、そのプラグインとの間でデータのやりとりを行ったりするものである。また、９２２ａ、９２２ｂ、９２２ｃは、それぞれコアエンジン９２１によって管理されるプラグインである。９２２ａはネットワーク等を介して外部からオーディオデータ等を取り込むための入力プラグイン、９２２ｂは取り込まれたオーディオデータ等を出力に適したデータ形式に変換するための変換プラグイン、９２２ｃは変換されたデータをオーディオデバイス等に対して出力するための出力プラグインである。
【０００４】
図８に示すソフトウェアの動作手順は次の通りである。
まず（１）において、ＧＵＩ・９２０からコアエンジン９２１に対して音楽の再生の指示が行われる。このときＧＵＩ・９２０からコアエンジン９２１に対して、当該オーディオデータのファイルのＵＲＬ（ユニフォームリソースロケータ）が渡される。
これを受けて、（２）において、コアエンジン９２１は、通信ネットワークを介してＨＴＴＰ（ハイパーテキスト転送プロトコル）によってデータを入力するための入力プラグインを選択し、これを起動する。このときコアエンジン９２１から入力プラグイン９２２ａに対して上記ＵＲＬが渡される。
次に、（３）において、入力プラグイン９２２ａは通信ネットワークを介して上記ＵＲＬによって特定される外部のサーバにアクセスし、目的のオーディオファイル及びその種別を表すＭＩＭＥ（マルチパーパスインターネットメールエクステンションズ,Multipurpose Internet Mail Extensions）タイプを受け取り、これらのうちＭＩＭＥタイプのみをコアエンジン９２１に返す。
【０００５】
次に（４）において、コアエンジン９２１は、受け取ったＭＩＭＥタイプに応じて、適切な変換プラグイン９２２ｂを選択して起動する。この起動された変換プラグイン９２２ｂは、コアエンジン９２１を介して入力プラグイン９２２ａからヘッダとオーディオデータとから構成される上記オーディオファイルのうちヘッダ部を入手する。
そして（５）において、変換プラグイン９２２ｂは、受け取ったヘッダの内容（例えばＭＰ３（ＭＰＥＧレイヤ３）形式の詳細）を参照して最終的に出力すべきオーディオデータの出力形式（例えばＷＡＶ形式）をコアエンジン９２１に通知する。
そして（６）において、コアエンジン９２１は、変換プラグイン９２２ｂによって通知されたオーディオデータの出力形式に合った出力プラグインを選択して起動する。
以上の処理により、オーディオデータを処理するのに必要な全てのプラグインが選択し起動される。起動された入力プラグイン９２２ａ、変換プラグイン９２２ｂ、出力プラグイン９２２ｃを介してオーディオデータが最終的に出力プラグイン９２２ｃに接続されたオーディオデバイスに出力される。
【０００６】
【発明が解決しようとする課題】
上記のように、入力、変換、出力の各段階のプラグインを動的に起動するというソフトウェアアーキテクチャを採用することによって、ソフトウェアの個々の構造がシンプルになるのに加えそれら個々のソフトウェアが独立したソフトウェアとして機能するため、それらのソフトウェアで構成されるシステムの柔軟性や保守容易性が極めて向上する。しかしながら、上述した従来技術では、入力プラグインに対して渡される情報は、ネットワーク上のデータを示すＵＲＬや、ローカルコンピュータ上のデータファイルを示すファイル名などであるため、データの入力元が限られているという問題があった。マルチメディアアプリケーションなどにおいてはこれら以外の多様なデータを扱う可能性があり、また比較的短い期間の間に新しいデータ形式が開発され普及する可能性もあることを考慮すると、前記ソフトウェアアーキテクチャを大きく変更することなく、つまり柔軟性や保守容易性を維持したまま、多種多様な入力データに対応できるようにすることが望まれる。
【０００７】
本発明は、このような事情を考慮してなされたものであり、アプリケーションプログラムから直接渡されたデータデータを処理することを可能としたインターネットラジオ再生装置のようなデータ処理装置およびそのデータ処理方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明は、変換処理の対象となるデータを取得する機能を実現するプログラムである入力プラグイン、前記取得されたデータに対して前記変換処理を施す機能を実現するプログラムである変換プラグイン、前記変換処理によって変換されたデータを出力する機能を実現するプログラムである出力プラグイン、および前記各プラグインを管理する機能を実現するプログラムであるコアエンジンからなる再生エンジン、ならびに前記再生エンジンによって処理するデータを供給する機能を実現するアプリケーションプログラムを記憶する記憶手段と、前記記憶手段から前記入力プラグイン、前記変換プラグイン、前記出力プラグイン、前記コアエンジン、前記アプリケーションプログラムを読み込んでそれぞれに応じた処理を実行するＣＰＵと、を含んで構成されるとともに、前記ＣＰＵは、前記アプリケーションプログラムの実行により、前記変換処理の対象となるデータをメモリを経由して前記入力プラグインによる処理への入力としてセットする手段として機能し、前記コアエンジンの実行により、前記入力プラグインによって取得するデータのデータタイプに基づいて前記変換プラグインを選択し、前記入力プラグインによって取得するデータが前記選択された変換プラグインによる処理への入力となるように該入力および変換プラグインを連結し、前記選択された変換プラグインによる変換後のデータのデータタイプに基づいて前記出力プラグインを選択し、前記選択された変換プラグインによる変換後のデータが前記選択された出力プラグインによる処理への入力となるように該変換および出力プラグインを連結する手段として機能し、前記入力プラグイン、前記選択された変換プラグイン、および前記選択された出力プラグインの実行により、前記メモリを経由してセットした変換処理の対象となるデータを取得し、該取得したデータに対して変換処理を施し、該変換処理によって変換したデータを該データのデータタイプに応じた出力デバイスへ出力する一連の処理を行う手段として機能することを特徴とするデータ処理装置を提供する。
【００１２】
また、本発明では、前記ＣＰＵは、前記アプリケーションプログラムの実行により、複数種類のデータから構成される複合データのうちの一部種類のデータをメモリを経由して前記入力プラグインによる処理への入力としてセットするとともに、前記複合データのうちの他の種類のデータを表示デバイスへ表示させる処理を行うことを特徴とする。
【００１７】
また、本発明は、変換処理の対象となるデータをメモリを経由して取得する入力機能と、前記取得されたデータに対して前記変換処理を施す複数の変換機能と、前記変換処理によって変換されたデータを該データのデータタイプに応じた出力デバイスへ出力する複数の出力機能と、前記変換処理の対象となるデータを前記メモリを経由して前記入力機能への入力としてセットする機能と、前記入力機能によって取得するデータのデータタイプに基づいて前記変換機能を選択し、前記入力機能によって取得するデータが前記選択された変換機能への入力となるように該入力機能および該変換機能を連結し、前記選択された変換機能による変換後のデータのデータタイプに基づいて前記出力機能を選択し、前記選択された変換機能による変換後のデータが前記選択された出力機能への入力となるように該変換機能および該出力機能を連結する機能と、をコンピュータに実行させるコンピュータプログラムである。
また、さらに、複数種類のデータから構成される複合データのうちの一部種類のデータをメモリを経由して前記入力機能への入力としてセットするとともに、前記複合データのうちの他の種類のデータを表示デバイスへ表示させる機能をコンピュータに実行させることを特徴とする。
【００１８】
【発明の実施の形態】
以下、図面を参照しこの発明の一実施形態について説明する。図１は、同実施形態によるデータ処理装置のハードウェア構成を示すブロック図である。図１に示すデータ処理装置１は、動画や静止画や音声や文字などの多様なメディアデータを入力して処理することができるようになっている。データ処理装置１の本体は、コンピュータの技術を用いて構成されており、データ処理を行うＣＰＵ（中央処理装置）１０、読み書き可能な半導体メモリによって構成されるメインメモリ１１、ディスプレイモニタへの出力画像信号を制御するビデオコントローラ１２、通信ネットワークに介してデータの送受信を行うネットワークコントローラ１３、出力するオーディオ信号を制御するオーディオコントローラ１４、磁気ディスクなど読み書き可能な不揮発性記録媒体によって構成されるローカルストレージ１５、および利用者等に対する入出力を制御するＩ／Ｏ（入出力）デバイス１６を含んでいる。
【００１９】
メインメモリ１１には、本発明に係るコンピュータプログラムが搭載される。ビデオコントローラ１２には、ディスプレイモニタ２が接続され、ＣＰＵ１０によって処理された結果としての画像を表示したり、ユーザが操作を行うための操作画面を表示したりすることができる。ネットワークコントローラ１３には、例えばインターネットなどの通信ネットワーク３が接続されている。オーディオコントローラ１４にはスピーカ４が接続され、ＣＰＵ１０によって処理された結果としてのオーディオデータを出力することができる。Ｉ／Ｏデバイス１６には、キーボード、マウスなどを含むユーザインタフェース５が接続されている。
【００２０】
上記メインメモリ１１に搭載されるコンピュータプログラムは、ローカルストレージ１５に保存しておくことが可能であり、また、通信ネットワーク３を介して任意のサーバなどから取得することも可能である。また、ＣＤ−ＲＯＭ（コンパクトディスクを利用した読み出し専用メモリ）やフロッピー（登録商標）ディスクなどの任意の記録媒体を読み出すことによって取得することも可能である。
【００２１】
上記のようなデータ処理装置は、据え置き型あるいは携帯可能な汎用のパーソナルコンピュータとして実現することも可能であり、データ処理機能を有する携帯型通信端末機器あるいはＰＤＡ（パーソナルデジタルアシスタント）機器として実現することも可能であり、又は、据え置き型あるいは携帯型のオーディオ再生機器あるいはビデオ再生機器として実現することも可能である。
【００２２】
図２は、上記データ処理装置に搭載されるソフトウェア（コンピュータプログラム）の構成を示すソフトウェア構成図である。
【００２３】
図２において、符号２０はアプリケーションプログラムであり、また、２５は、オーディオデータあるいはビデオデータなどの再生を行うインターネットラジオ再生装置の再生エンジンである。この再生エンジン２５は、コアエンジンおよび各種プラグインによって構成される。２１はコアエンジン（プラグイン管理）であり、このコアエンジン２１は、アプリケーションプログラム２０からの指示情報などに基づいて、必要な処理を行うプラグインを起動したり、そのプラグインとの間でデータのやりとりを行ったりするものである。また、２２ａ、２２ｂ、２２ｃは、それぞれコアエンジン２１によって管理されるプラグインである。このコアエンジン２１の管理のもと、オーディオデータ等を入力するための入力プラグイン２２ａ（取得プログラムモジュール）、取り込まれたオーディオデータ等を出力に適したデータ形式に変換するための変換プラグイン２２ｂ（変換プログラムモジュール）、変換されたデータをオーディオデバイス等に対して出力するための出力プラグイン２２ｃ（出力プログラムモジュール）、によりオーディオデータの再生がなされる。
【００２４】
各プラグイン（２２ａ、２２ｂ、２２ｃなど）は、それぞれ個別のソースプログラムファイルで記述され、このソースプログラムファイルをそれぞれ独立にコンパイルすることによって生成されたものである。各プラグインは、実行時に動的につまり必要なタイミングで呼び出すことが可能であり、例えばＷｉｎｄｏｗｓ（登録商標）系のオペレーティングシステムにおいては、拡張子「．ｄｌｌ」を持つダイナミックリンクライブラリのファイルとして前記ローカルストレージ１５に格納されている。
【００２５】
次に、データ処理の手順について説明する。図３は、本実施形態のデータ処理装置におけるデータ処理アーキテクチャを示す概略図である。図３に示すデータ処理アーキテクチャにおいては、データ入力と、データ変換と、データ出力の３つの階層が存在している。
【００２６】
入力層においては、図２に示した入力プラグイン２２ａの実体として、ローカルファイルを読み込むためのプラグイン「ＬｏｃａｌＦｉｌｅ．ｄｌｌ」（３１）と、ＨＴＴＰによってファイルをダウンロードするためのプラグイン「ＨｔｔｐＦｉｌｅ．ｄｌｌ」（３２）と、アプリケーションプログラム２０からメモリを経由して直接データを再生エンジンに渡すプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）とが存在しており、これらが適宜選択されて起動される。
変換層においては、図２に示した変換プラグイン２２ｂの実体として、「ｍｉｄ」形式のファイルを解析するためのプラグイン「ＭｉｄｉＦｍｔ．ｄｌｌ」（４１）と、「ＳｏｕｎｄＶＱ」形式のデータをデコードするためのプラグイン「ＳｖｑＦｍｔ．ｄｌｌ」（４２）と、「ＭＰ３」形式のファイルをデコードするためのプラグイン「Ｍｐ３Ｆｍｔ．ｄｌｌ」（４３）とが存在しており、これらが適宜選択されて起動される。
出力層においては、図２に示した出力プラグイン２２ｃの実体として、「ＭＩＤＩ」（ミュージックインストゥルメンタルデジタルインタフェース）形式のデータを出力するためのプラグイン「ＭｉｄｉＯｕｔ．ｄｌｌ」（５１）と、「ＷＡＶ」形式のＰＣＭ（パルスコード変調）データを出力するためのプラグイン「ＷａｖＯｕｔ．ｄｌｌ」（５２）とが存在しており、これらが適宜選択されて起動される。
【００２７】
そして、入力プラグイン２２ａは、取得したデータ（第１のデータ）を出力する。この入力プラグイン２２ａによって出力されたデータ（第１のデータ）は、変換プラグイン２２ｂの入力となり、変換プラグイン２２ｂは、入力されたデータ（第１のデータ）の形式を変換する処理を行い変換後のデータ（第２のデータ）を出力する。この変換プラグイン２２ｂによって出力されたデータ（第２のデータ）は、出力プラグイン２２ｃの入力となり、出力プラグイン２２ｃは、入力されたデータ（第２のデータ）を外部に出力する。
【００２８】
アプリケーションプログラム２０は、ローカルストレージ１５に記憶されている「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）をメインメモリ１１にロードし、実行可能な状態とする。これにより、「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）は、アプリケーションプログラム２０により生成されたデータを取り込む。従って、アプリケーションプログラム２０は、自身で生成したデータをプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）自身の中に含めることができる。従来技術においては、ＧＵＩを介してファイル名をプラグイン「ＬｏｃａｌＦｉｌｅ．ｄｌｌ」（３１）に渡したり、ＵＲＬをプラグイン「ＨｔｔｐＦｉｌｅ．ｄｌｌ」（３２）に渡したりして、渡された側のプラグインが指定された名前のデータを取得していたが、上記のようなプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）を用いることによって、アプリケーションプログラム２０からメモリを経由して直接データを再生エンジンに渡すことができ、それによりデータを入力する手段を多様化することができるというメリットが生じる。
【００２９】
次に、プラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）の詳細についてさらに説明する。図４は、プラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）の構成を示す概略図である。プラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）は、Ｃ＋＋言語で書かれたソースプログラムファイルをコンパイルすることによって作成されその中には実行コード３３１を含む。実行コード３３１は入力データを保持する機能を有し、図４は入力データ３３２が保持された状態を示すものである。また、このプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）は、クラス「ＩＳｏｕｒｃｅ」とクラス「ＩＭＲＡＰｌｕｇｉｎ」の２つのクラスを継承するプログラムとして定義されている。そして、このプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）の実行時には、入力データ３３２のタイプを表わすデータタイプ情報３３３が保持されるようになっている。また、このデータタイプ情報３３３にデータタイプを表す値をセットするためのファンクション「ＳｅｔＴｙｐｅ」が用意されている。
【００３０】
「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）は、入力データ３３２を図２のコアエンジン２１に先頭から順次出力し、その後その入力データはコアエンジン２１の制御のもとで変換プラグイン２２に送られる。
【００３１】
次に、実際にプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」（３３）が処理を実行するための手順について説明する。アプリケーションプログラム２０はその処理データを再生できるように入力プラグインから出力プラグインまでの一連の処理（データオープン処理）をスタートさせるが、その処理が完了するまでの手順を図５に示す。
【００３２】
まず、図５のステップＡ１において、アプリケーションプログラム２０はその処理データを入力モジュール（「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」）に入力データとしてセットする。
【００３３】
次にステップＡ２において、この入力モジュールがコアエンジン２１の支配下に置かれる。
次にステップＡ３において、アプリケーションプログラム２０からコアエンジン２１に対してパイプライン構築の要求が行われる。
【００３４】
これを受けて、コアエンジン２１側では、ステップＡ４において、前記ステップＡ２で支配下に置かれた入力モジュールをパイプラインの先頭として、入力、変換、出力の一連のデータ処理パイプラインを構築する。ここで、パイプラインとは、あるプラグイン（モジュール）からの出力データを、次のプラグインの入力データとし、さらにそのプラグインからの出力データをさらに他のプラグインの入力データとするといった一連の処理の流れを表わすものである。
そして、パイプラインの構築が完了すると、コアエンジン２１からアプリケーションプログラム２０に対してデータオープンの完了の通知が返される。
【００３５】
次に、上記パイプラインを構築する処理手順の詳細について、さらに説明する。図６は、パイプライン構築の処理の手順を示すシーケンス図である。以下、図６の流れに沿って説明する。
まずステップＢ１において、アプリケーションプログラム２０がコアエンジンに対して入力プラグイン（モジュール）を支配下に置くように指示する。
次に、ステップＢ２において、上記入力プラグイン２２ａがコアエンジン２１の支配下に置かれる（図５のステップＡ２に相当）。
そして、ステップＢ３において、アプリケーションプログラム２０からコアエンジン２１に対してパイプライン構築の要求が発行される（図５のステップＡ３に相当）。
【００３６】
次に、ステップＢ４において、コアエンジン２１が入力プラグイン２２ａをパイプラインの先頭としてセットし、そのデータのデータタイプを通知するように指示する。
上記処理の結果として、ステップＢ５において、入力プラグイン２２ａはコアエンジン２１に対して出力すべきデータのデータタイプを通知する。
そして、ステップＢ６においては、コアエンジン２１は、ステップＢ５において通知を受けた入力プラグイン２２ａからのデータタイプに基づいて、適切な変換プラグインを選択する。
また、ステップＢ７においては、コアエンジン２１は、入力プラグイン２２ａからの出力と、ステップＢ６において選択された変換プラグイン２２ｂの入力とを連結する処理を行う。
【００３７】
次に、ステップＢ８において、コアエンジン２１が変換プラグイン２２ｂをセットしそれがどんなデータタイプに変換するのかを通知するよう指示する。
上記処理の結果として、ステップＢ９において、変換プラグイン２２ｂはコアエンジン２１に対して変換結果としての出力データのデータタイプを通知する。
そして、ステップＢ１０においては、コアエンジン２１は、ステップＢ９において通知を受けた変換プラグイン２３ａからのデータタイプに基づいて、適切な出力プラグインを選択する。
また、ステップＢ１１においては、コアエンジン２１は、変換プラグイン２２ｂからの出力と、ステップＢ１０において選択された出力プラグイン２２ｃの入力とを連結する処理を行う。
【００３８】
次に、ステップＢ１２において、コアエンジンは、出力プラグイン２２ｃをセットし、さらに次にプラグインに出力すべきデータのデータタイプを通知するよう指示する。
上記処理の結果として、ステップＢ１３において、出力プラグイン２２ｃはコアエンジン２１に対して、パイプラインの終端であるため、求められたデータタイプを通知する代わりに、その後のプラグインに後続処理は不要であることを通知する。
これを受けて、ステップＢ１４においては、コアエンジン２１がアプリケーションプログラム２０に対してデータオープン処理の完了の通知を返す（図５のステップＡ５に相当）。
【００３９】
上記のように、入力、変換、出力の一連のパイプラインが構築された後は、アプリケーションプログラム２０からの要求に従って、プラグインの処理の実行を開始することにより、入力プラグイン２２ａにセットされている入力データの変換の処理が変換プラグイン２２ｂにより、さらに変換後のデータの出力の処理が出力プラグイン２２ｃにより行われる。
【００４０】
次に、以上で説明したデータ処理装置の具体的な応用例について説明する。
図７は、前記データ処理装置の一応用例であるカラオケ再生装置によって処理されるマルチメディアデータの構成を示す概略図である。図７に示すように、このマルチメディアデータ１００の内部には、ＭＩＤＩデータ１０１と、主としてテキストデータからなる歌詞データ１０２と、背景画像データ１０３とが含まれている。
【００４１】
アプリケーションプログラム２０は、このようなマルチメディアデータ１００を取得すると、ＭＩＤＩデータ１０１のみのデータオープン処理を実行する。つまり、そのＭＩＤＩデータ１０１をプラグイン「ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ」内に入力データ（図４の符号３３２に相当）としてセットし、再生エンジン２５内のコアエンジン２１の支配下に置く。また、アプリケーションプログラム２０は、コアエンジン２１に対してパイプラインの構築を要求し、オープン完了通知をコアエンジン２１から受け取る。このデータオープン処理の完了後、当該ＭＩＤＩデータの処理が開始される。
これとともに、アプリケーションプログラム２０は、上記マルチメディアデータ１００に含まれていた背景画像データ１０３をディスプレイモニタ２（図１）に表示させるとともに、同じく歌詞データ１０２が表わす文字テキストをディスプレイモニタ２に表示させる。なお、ＭＩＤＩデータ１０１を基にした再生出力と、画像データ１０３による表示と、歌詞データ１０２による表示は、同期的に行うようにする。
つまり、アプリケーションプログラム２０は、複数種類のデータから構成されるマルチメディアデータ（複合データ）を処理し、このマルチメディアデータのうちの一部種類のデータを入力データとして入力プラグイン（取得プログラムモジュール）の一種であるプラグイン「ｍｅｍｏｒｙＦｉｌｅ．ｄｌｌ」に供給するとともに、前記マルチメディアデータのうちの他の種類のデータをアプリケーションプログラム２０自身で処理するものである。
これにより、アプリケーションプログラム２０はＭＩＤＩ処理部を有することなく表示機能のみを持たせることで、その構成をシンプルなものとすることができる。つまり、ＭＩＤＩデータを上述したインターネットラジオ再生装置に渡すことで、アプリケーションプログラム２０側での処理を不要とさせている。
【００４２】
従来技術においては、ファイル名やＵＲＬを入力プラグインに渡し、指定されたファイル名又はＵＲＬに応じたデータを入力プラグインが取得するようにしていたため、図７に示したようなマルチメディアデータ１００を直接処理することは困難であったが、本発明を用いることにより、マルチメディアデータ１００の中から音として出力するＭＩＤＩデータのみを取り出してアプリケーションプログラム２０からコアエンジン２１側に渡すことができるようになり、残りのデータをアプリケーションプログラム２０側で処理することで、様々な入力データに対応したデータ処理を可能とした。
【００４３】
以上、図面を参照してこの発明の実施形態を詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００４４】
例えば、上記実施形態においては、入力プラグインの内部に入力データを持ち、入力プラグインがこのデータを順次出力してパイプライン処理するようにしたが、ソフトウェアの基本構造を変えることなく他の手段によって入力データを取得するようにしても良い。例えば、データ処理装置にオーディオ入力ポートを設け、このオーディオ入力ポートから入力されるアナログ信号をＡ／Ｄ（アナログ・デジタル）変換して、パイプラインに出力するような入力プラグインを作成しておき、この入力プラグインをコアエンジンから起動できるようにしても良い。
【００４５】
【発明の効果】
以上説明したように、本発明によれば、処理対象となるデータを取得するためのプログラムモジュールであって当該データをオープンする処理と当該データの取得を開始する処理とを少なくとも含んだプログラムモジュールを、動的に生成するため、様々なタイプのデータを処理の対象とする柔軟性のあるデータ処理装置を実現することができる。
【００４６】
また、本発明によれば、入力データ（第１のデータ）を含んだ入力層のプログラムモジュールを動的に生成するため、本発明が前提とするデータ処理アーキテクチャを維持したまま、ＧＵＩなどのアプリケーション処理部から変換対象となるデータを直接再生エンジン側へ渡すことが可能となる。
【００４７】
また、本発明によれば、オーディオデータと画像データとテキストデータとを含んだマルチメディアデータを基に、当該マルチメディアデータに含まれる前記オーディオデータを用いて、当該オーディオデータを含んだ前記入力層のプログラムモジュールを動的に生成するため、本発明が前提とするデータ処理アーキテクチャを維持したまま、マルチメディアデータ内から特定のデータのみを抽出して、抽出されたデータを処理対象とすることが可能となる。これにより、新たに様々なタイプのデータ形式が開発され普及してきた場合にも、柔軟に対応することができる。
【００４８】
また、本発明によれば、入力層のプログラムモジュールから通知される第１のデータのデータタイプに応じて変換層のプログラムモジュールを選択して生成し、前記入力層のプログラムモジュールからのデータ出力と当該変換層のプログラムモジュールへのデータ入力とを連結する処理を行い、当該変換層のプログラムモジュールから通知される第２のデータのデータタイプに応じて前記出力層のプログラムモジュールを選択して生成し、前記変換層のプログラムモジュールからのデータ出力と当該出力層のプログラムモジュールへのデータ入力とを連結する処理を行うことで、入力層から出力層までの一連のプログラムモジュールがパイプライン構築されそのシーケンスに応じたデータ処理が実現される。
【図面の簡単な説明】
【図１】  この発明の一実施形態によるデータ処理装置のハードウェア構成を示すブロック図である。
【図２】  同実施形態によるデータ処理装置に搭載されるソフトウェア（コンピュータプログラム）の構成を示すソフトウェア構成図である。
【図３】  同実施形態によるデータ処理装置におけるデータ処理アーキテクチャを示す概略図である。
【図４】  同実施形態によるデータ処理装置上で実行される入力プラグイン（ＭｅｍｏｒｙＦｉｌｅ．ｄｌｌ）の構成を示す概略図である。
【図５】  同実施形態によるデータ処理装置上で、ＧＵＩ入力プラグインを生成してから再生エンジンによるオープン処理が完了するまでの処理手順を示すシーケンス図である。
【図６】  同実施形態によるデータ処理装置上で、入力、変換、出力の一連のパイプライン構築の処理の手順を示すシーケンス図である。
【図７】  同実施形態を応用したカラオケ再生装置によって処理されるマルチメディアデータの構成を示す概略図である。
【図８】  この発明が前提とする従来技術によるデータ処理装置に搭載されるソフトウェア（コンピュータプログラム）の構成を示すソフトウェア構成図である。
【符号の説明】
１  データ処理装置
２  ディスプレイモニタ
３  通信ネットワーク
４  スピーカ
５  ユーザインタフェース
１０  ＣＰＵ（中央処理装置）
１１  メインメモリ
１２  ビデオコントローラ
１３  ネットワークコントローラ
１４  オーディオコントローラ
１５  ローカルストレージ
１６  Ｉ／Ｏ（入出力）デバイス
２０  ＧＵＩ（グラフィカルユーザインタフェース）
２１  コアエンジン
２２ａ  入力プラグイン
２２ｂ  変換プラグイン
２３ｃ  出力プラグイン
【図１】
0003991724.tif 000002
【図２】
0003991724.tif 000003
【図３】
0003991724.tif 000004
【図４】
0003991724.tif 000005
【図５】
0003991724.tif 000006
【図６】
0003991724.tif 000007
【図７】
0003991724.tif 000008
【図８】
0003991724.tif 000009