JP2010039860A - コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム - Google Patents

コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム Download PDF

Info

Publication number
JP2010039860A
JP2010039860A JP2008203380A JP2008203380A JP2010039860A JP 2010039860 A JP2010039860 A JP 2010039860A JP 2008203380 A JP2008203380 A JP 2008203380A JP 2008203380 A JP2008203380 A JP 2008203380A JP 2010039860 A JP2010039860 A JP 2010039860A
Authority
JP
Japan
Prior art keywords
component
program
information
command
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008203380A
Other languages
English (en)
Inventor
Susumu Yasuda
進 安田
Masayuki Hagiwara
正幸 萩原
Yasuhiro Fukuju
康弘 福壽
Wataru Araya
渉 荒谷
Takashi Sugiyama
俊 杉山
Toshio Ikeda
敏雄 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008203380A priority Critical patent/JP2010039860A/ja
Publication of JP2010039860A publication Critical patent/JP2010039860A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】各コンポーネントの再利用性を高めたコンポーネントプログラム制御装置を提供する。
【解決手段】情報処理装置1は、コンポーネントの登録情報を記憶するレジストリ62と、アプリケーションに含まれるコンポーネント情報及びコンポーネントの接続関係情報を記憶するコンフィグレーション情報記憶部61と、アプリケーションのコマンドとコンポーネントの状態とを対応付けるコマンド/状態対応情報を記憶するコマンド/状態対応情報記憶部72と、アプリケーションが起動されると、コンフィグレーション情報記憶部61とレジストリ62を参照して、起動されたアプリケーションに含まれるコンポーネントを生成し、コマンド/状態対応情報記憶部72を参照して、アプリケーションのコマンドと、生成された各コンポーネントの状態との対応付けを行うコンポーネント制御層13と、を含む。
【選択図】図4

Description

本発明は、コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラムに関する。
従来より、例えば画像処理技術の分野において、各種ソフトウエア部品、すなわち各種コンポーネントプログラム(以下、コンポーネントともいう)を複数利用して所望の機能を実現するアプリケーション装置あるいはアプリケーションプログラムがある。各コンポーネントの機能を利用して、全体として一つの装置、例えばDVDプレーヤ、DTV(デジタルテレビジョン)等の装置のアプリケーションプログラム(以下、アプリケーションともいう)が、パーソナルコンピュータ(以下、PCとう)等の情報処理装置上で実現される。
例えば、マイクロソフト(株)が提供するダイレクトショー(DirectShow)は、メディアコンポーネントの制御をフィルタグラフマネジャ(Filter Graph Manager)を経由することによって抽象度の高いAPI(Application Programming Interface)をアプリケーションに提供するものである。
しかし、メディアコンポーネントのグラフ構成は、フィルタグラフマネジャの実装に依存するため、異なるグラフ間では構成要素の再利用性が低い。また、C++言語によるCOM(Component Object Model)技術が前提となっており、その動作は特定のOS上に限定されている。
さらに、必要なソフトウェアモジュールを組み合わせて、所定のマルチメディアコンテンツを実行させるDSPコードを生成する技術が提案されている(例えば、特許文献1参照)。
しかし、その技術によれば、ソフトウェアモジュールはコーデックライブラリ、OS、メディアフレームワーク、及びハードウェアライブラリを前提とし、コーデックに応じたソフトウェアモジュール構成に限定されている。
また、コンポーネントの実行に関連するプラグインの制御に応じたコンポーネントスケジューリングと、プラグインに送出するコンポーネントの実行に関するイベントの通知とによって、コンポーネントに関してアプリケーションにサービス品質を提供する技術の提案もある(例えば、特許文献2参照)。
しかし、その提案の技術によれば、サービス品質の保証にはアプリケーションの介在が前提となっている。
さらにまた、異なるソースから提供されるストリームを均一に取り扱うことができないQoS適応化問題に関して、サービス品質契約及びサービス品質適応化パスを記述するデータモデルを含むAPIを提供する技術の提案もある(例えば、特許文献3参照)。
しかし、その提案の技術によれば、特定顧客のQoS及びポリシー仕様に基づいて、メディアコンポーネントを生成・接続することが前提となっている。
特開2007-300613号公報 特開2002-312331号公報 特開2002-259125号公報
そこで、本発明は、以上の問題に鑑みてなされたものであり、各コンポーネントの再利用性を高めたコンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラムを提供することを目的とする。
本発明の一態様によれば、それぞれが所定の処理を実行する複数のコンポーネントプログラムの登録情報を記憶するコンポーネント登録情報記憶部と、1以上のコンポーネントプログラムを組み合わせて構成されるアプリケーションプログラムに含まれるコンポーネント情報、及び前記1以上のコンポーネントプログラムの接続関係情報を記憶するアプリケーションコンポーネント情報記憶部と、前記アプリケーションプログラムの実行時に指定される1以上のコマンドと、前記1以上のコンポーネントプログラムの状態とを対応付けるコマンド/状態対応情報を記憶するコマンド/状態対応情報記憶部と、前記アプリケーションプログラムが起動されると、前記アプリケーションコンポーネント情報記憶部と前記コンポーネント登録情報記憶部を参照して、起動されたアプリケーションプログラムに含まれるコンポーネントプログラムを生成し、前記コマンド/状態対応情報記憶部を参照して、前記アプリケーションプログラムの前記1以上のコマンドのそれぞれと、生成された各コンポーネントプログラムの状態との対応付けを行うコンポーネント制御部と、を有するコンポーネントプログラム制御装置を提供することができる。
本発明のコンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラムによれば、各コンポーネント、アプリケーション固有のユースケースの再利用性を高めることができる。
以下、図面を参照して本発明の実施の形態を説明する。
まず図1に基づき、本実施の形態に係わる情報処理装置の構成を説明する。図1は、本実施の形態に係わる情報処理装置のソフトウェアとハードウェアの構成を示す構成図である。
情報処理装置1は、例えばPC、サーバ、携帯情報端末(PDA)等である。情報処理装置1は、CPU、ROM、RAM、大容量記憶装置等のハードウェア装置であるハードウェア層11と、図示しないオペレーティングシステム上のソフトウェア部品としての複数の(図1ではn個の)コンポーネントC1、C2、・・・Cnを含むコンポーネント層12と、コンポーネント層12の各コンポーネントを制御するコンポーネント制御プログラムであるコンポーネント制御層13と、複数の(図1ではm個の)アプリケーション(以下、APと略す)を含むアプリケーション層14と、さらに上位のアプリケーション制御プログラムを含むアプリケーション制御層15とを含んで構成されている。
複数のAPは、AP1からAPmがあるが、例えば、DTVライブ再生AP、DTV録画AP、DTVファイル再生AP等であり、PC等の情報処理装置1において、ユーザの指示に応じて、DTVライブ再生AP、DTV録画AP等が実行可能となっている。
各APのコンフィグレーション情報は、ユースケースとして記述される情報も含み、再生、録画、一時停止等のコマンドの情報も含んでいる。例えば、DTVライブ再生APを情報処理装置1上で実行している場合、ユーザは、そのAPの実行中に指定するコマンドとしては、「チャネル選択」、「開始」、「停止」等のコマンドが、ユースケースとして記述される。また、DTV録画APを情報処理装置1上で実行している場合、ユーザは、そのAPの実行中に指定するコマンドとしては、「開始」、「停止」等のコマンドが、ユースケースとして記述される。さらにまた、DTVファイル再生APを情報処理装置1上で実行している場合、ユーザは、そのAPの実行中に指定するコマンドとしては、「開始」、「停止」、「一時停止」、「早送り」、「巻き戻し」等のコマンドが、ユースケースとして記述される。これらのコマンドは、ユーザが、情報処理装置1において、各APを種々操作するときに使用するコマンドである。
また、ここでは、複数のコンポーネントのそれぞれは、映像データ、音声データ等のメディアデータに対して、映像処理、音声処理等を行うメディアコンポーネントであり、メディア処理を実行する制御単位のプログラムである。複数のコンポーネントは、C1からCnのn個あり、例えば、デマルチプレクサ(Demuxer)、ファイルライタ(Fwriter)、Vデコーダ(VDecoder)、Aデコーダ(ADecoder)、Vコンポジタ(VCompositor)、Aミキサ(AMixer)、Vレンダラ(VRenderer)、Aレンダラ(ARenderer)等である。すなわち、各コンポーネントプログラムは、所定の処理を実行するプログラムである。
なお、ハードウェア層11は、後述する各種データを記憶する記憶装置16を含む。
そして、情報処理装置1は、ユーザの指示に応じて、各APを実行可能であり、各APに含まれる複数のコンポーネントは、APからのコマンドに応じて実行される。各APの実行が指示されると、後述するように、コンポーネント制御部であるコンポーネント制御層13は、共通処理と、AP毎の処理とを実行し、各コンポーネントの制御を行う。
図2は、各APと複数のコンポーネントの利用関係を説明するための図である。
例えば、AP1が、DTVライブ再生アプリケーションであり、AP2がDTV録画アプリケーションであり、AP3が、DTVファイル再生アプリケーションである、3つのアプリケーションがあるとする。
図2は、各APについてのグラフ理論におけるグラフを示す。AP1のグラフは、DTVライブ再生アプリケーションのグラフとして、二点鎖線G1で囲まれた部分である。AP2のグラフは、DTV録画アプリケーションのグラフとして、二点鎖線G2で囲まれた部分である。AP3のグラフは、DTVファイル再生アプリケーションのグラフとして、二点鎖線G3で囲まれた部分である。
図2に示すように、本実施の形態では、AP1のグラフは、例えば、Vデコーダ1(VDecoder1)21、Vコンポジタ(VCompositor)22及びVレンダラ(VRenderer)23で構成されるビデオ・サブグラフSG1と、Aデコーダ1(ADecoder1)24、Aミキサ(AMixer)25及びAレンダラ(ARenderer)26で構成されるオーディオ・サブグラフSG2、そして、これらをデマルチプレクサ(Demuxer)27に接続する構成を有している。
同様に、AP2のグラフは、例えば、デマルチプレクサ(Demuxer)27とファイルライタ(Fwriter)28が接続された構成を有している。
さらに、AP3のグラフは、例えば、Vデコーダ2(VDecoder2)29、Vコンポジタ(VCompositor)22及びVレンダラ(VRenderer)23で構成されるビデオ・サブグラフSG3と、Aデコーダ2(ADecoder2)30、Aミキサ(AMixer)25及びAレンダラ(ARenderer)26で構成されるオーディオ・サブグラフSG4、そして、これらをデマルチプレクサ(Demuxer)27に接続する構成を有している。
以上のように、各APは、1以上のコンポーネントを組み合わせて構成されるプログラムであり、図2に示すように、各APのグラフは、コンポーネントの接続関係情報を含む。各グラフ及び各コンポーネントは、再利用可能である。
ここで、サブグラフについて説明する。図3は、グラフ構造の例を説明するための図である。あるAPは、1以上のコンポーネントがグラフ(ノード)とコネクト(エッジ)で表現されるグラフ構造Gを有しているが、階層的に、内部にサブグラフSGを有することができる。サブグラフSGも、1以上のコンポーネントがグラフとコネクトで表現されるグラフ構造を有している。
このようなグラフ情報を利用するメリットは、異なるAP間でグラフ構成を再利用することができることである。すなわち、コンポーネント制御層13は、各APのコンポーネントのグラフ情報を利用して、異なるAP間でグラフ構成を再利用することができる。上述したDTVライブ記録AP2のグラフとして、ファイルライタ(FWriter)28とでマルチプレクサ(Demuxer)27の構成が考えられる。この場合、DTVライブ再生AP1と同じコンテンツを記録する場合と、異なるコンテンツを記録する場合とでグラフ構成に変わりはないので、デマルチプレクサ(Demuxer)27の属性を変更することで、同じグラフを異なるユースケースに対応させて利用することができる。
また、コンポーネントとサブグラフというエレメントによってグラフ構成を表現することにより、グラフ構成情報を構造化することができ、グラフだけではなくサブグラフの単位での再利用が可能となる。
なお、異なるコンテンツを記録する場合、異なるデマルチプレクサ(Demuxer)27を生成して、完全に独立したグラフとすることも可能である。これらシステムに依存する選択は、メディアフレームワークとしてのコンポーネント制御層13内のシステム制約情報に基づいて、コンポーネント制御層13において決定できるため、APには影響しない。
各APに含まれるコンポーネントは、上述したように、画像処理、音声処理等のメディア処理等の所定の処理を実行する制御単位と定義される。図3に示すように、あるAPは、コンポーネントA,B,Cを含む。各コンポーネントにおけるデータのエントリポイントは、ポートPと定義される。コンポーネント間のデータ通信チャネルは、コネクトCNと定義される。コネクトCNにより接続された複数のコンポーネントの制御単位は、グラフGと定義される。グラフG内のコンポーネントのグループは、サブグラフSGと定義される。サブグラフSGとコンポーネントを接続する仕組みとして、サブグラフSGの仮想ポートVPが定義される。コンポーネント、グラフおよびサブグラフのそれぞれをエレメントとして、グラフ構成情報(以下、グラフ情報という)が、ポート、仮想ポート及びコネクトを用いて表現することができる。すなわち、グラフ情報は、そのグラフに含まれるコンポーネントの構成情報と、その含まれる1以上のコンポーネントの接続情報とを含む。なお、グラフGは、サブグラフSGを含まなくてもよい。
次に、コンポーネント制御部としてのコンポーネント制御層13の構成について説明する。図4は、コンポーネント制御層13の構成を示すブロック図である。
コンポーネント制御層13は、ソフトウエアプログラムにより構成されている。コンポーネント制御層13は、コマンド受信部41、グラフマネジャ42、レジストリマネジャ43、フレームワークマネジャ44、イベントマネジャ45、OASLインターフェース(以下、I/Fと略す)部46、CCローダI/F部47、及びCCI/F部48の複数の機能モジュールを含んで構成されるコンポーネント制御部である。コンポーネント制御層13は、図示しないインターフェース部を介して、コンポーネント層12と接続される。コンポーネント層12とのインターフェース部は、各コンポーネントを制御するための低レベルインタフェースであり、各コンポーネントの生成(含むイベント設定)、消滅、各種コマンド送信(コネクト要求や状態遷移要求など)、パラメータ/属性設定、データ処理要求、などのAPIを含む。
コマンド受信部41は、APからのコマンドの受信と、APへのイベント情報の送信を行うプログラムである。
具体的には、コマンド受信部41は、コンポーネント制御層13とのインターフェースをAP層14に提供する処理部である。各APから受信した要求(API/コマンド)を解析し、コンポーネント制御層13内の適切な機能モジュールへ送信する。各APが起動されると、予め設定されたグラフ名称を用いて所望のグラフの生成が行われる。各APは、グラフが生成された時にコンポーネント制御層13から取得したグラフ・ハンドル情報を用いて、コマンド処理対象のグラフを指定することができる。同一のグラフ名称でグラフ生成要求を行うと同じグラフのインスタンスが生成され、APは、異なるグラフ・ハンドル情報を取得し、グラフを識別することができる。
グラフマネジャ42は、複数のコンポーネントを組み合わせて構築される各APのグラフ情報に基づいてコンポーネントのグラフを構築するプログラムである。
具体的には、グラフマネジャ42は、エレメント情報(グラフ/サブグラフ/コンポーネント、名称、グラフ情報へのポインタ)、コネクト情報(エレメントIDと接続ポートID)、グラフ情報(エレメント数、コネクト数、仮想ポート数、エレメント情報へのポインタ、コネクト情報へのポインタ、仮想ポートへのポインタ)からなる情報を、記憶装置16のコンフィグレーション情報記憶部61から、取得する。
すなわち、コンフィグレーション情報記憶部61には、各APのユースケース情報と、図2に示すような各APのグラフ情報とを含むコンフィグレーション情報が含まれている。特に、各APのグラフ情報は、含まれる1以上のコンポーネント情報と、コンポーネント間の接続関係を定義する接続関係情報とを含み、アプリケーションコンポーネント情報として、記憶装置16に記憶される。記憶装置16において、アプリケーションコンポーネント情報が記憶された記憶領域が、アプリケーションコンポーネント情報記憶部を構成する。
そして、グラフマネジャ42は、APが起動されると、そのAPのグラフ情報から、そのグラフの接続情報テーブルをメモリ上に生成し、コンポーネント層12とのインターフェースを用いて、必要なコンポーネントの生成、コンポーネント間の接続、グラフ(コンポーネント群)の状態遷移情報を生成し、その状態を管理する。
グラフマネジャ42は、以上の処理を各グラフに対して行うだけでなく、さらに加えて、各コンポーネントの状態の管理も行う。
同時に、グラフマネジャ42は、起動されたAPのグラフに対応するコマンド処理コントローラ(CC)63をメモリへロードすべく、CCローダI/F47を介してCCローダ64へ依頼する。グラフマネジャ42は、コマンド処理コントローラ(CC)63からのグラフ状態遷移要求やコンポーネント制御要求(生成や消滅、状態遷移、など)を受信したとき、レジストリマネジャ43が管理するコンポーネントの状況(共有状況や生成状況など)とポリシー情報に応じて、グラフやコンポーネントを適切に制御する。
ポリシー情報は、例えば、複数のAPが起動された場合に、複数のAP間で共通のコンポーネントの生成の要否に関する情報である。よって、グラフマネジャ42は、そのポリシー情報に基づいて、既に起動された別のAPがあるときは、その別のAPに関わるコンポーネントの生成しない、というような処理を行うことができる。
また、グラフマネジャ42は、APからのグラフの状態遷移要求に応じて、そのグラフの構成要素であるコンポーネントへ状態遷移コマンドを送信する。そして、グラフマネジャ42は、各コンポーネントから状態遷移完了イベントを受信したとき、メディアフレームワークとしてのコンポーネント制御層13内で管理するグラフ状態を変更する。
レジストリマネジャ43は、複数のコンポーネントの登録情報を管理するプログラムである。
具体的には、レジストリマネジャ43は、コンポーネント数、各コンポーネントの名称とその各コンポーネントに付属するポート数、および、各ポート属性からなる情報を、記憶装置16のレジストリ情報記憶部62から取得し、メモリ上にコンポーネント登録情報テーブルを生成する。レジストリ情報記憶部62は、コンポーネントの登録情報を記憶するコンポーネント登録情報記憶部を構成する。
さらに、レジストリマネジャ43は、グラフマネジャ42によって制御されるコンポーネントの情報、例えば共有状況、生成状況などの情報、も管理する。また、レジストリマネジャ43は、生成可能なグラフ数及びコンポーネント数、生成可能なインスタンス数の情報に加えて、競合時の対処方針、例えば、待つ、諦める、プリエンプションする、などの上述したポリシー情報も、管理する。
フレームワークマネジャ44は、各種ヘルパー機能を提供するプログラムである。
具体的には、フレームワークマネジャ44は、内部における各種要求の送受信、フック関数等を管理する。フレームワークマネジャ44は、例えば、コマンド受信部41、もしくは、コマンド処理コントローラ(CC)63から受信した要求を解析し、その要求を適切な機能モジュールへ送信する。また、フレームワークマネジャ44は、予め定義されたフック関数(コマンド処理コントローラ(CC)63の初期化時に、システムが提供するフック関数の中から必要に応じて設定される)を経由して、コマンド処理コントローラ(CC)63へ各種処理を依頼する。
また、フレームワークマネジャ44は、APからのグラフの属性変更要求に対しては、共通機能として要求解析を行い、コマンド処理コントローラ(CC)63を呼び出す。そして、フレームワークマネジャ44は、コマンド処理コントローラ(CC)63に、ユースケース固有の機能として特定のコンポーネントに対して属性変更要求コマンドを送信させる。
イベントマネジャ45は、コンポーネントから受信したイベント情報を制御するプログラムである。
具体的には、イベントマネジャ45は、生成された各コンポーネントに登録されたイベント処理ルーチンを管理する。各コンポーネントから発生する共通イベントは、内部で処理され、必要に応じてAPへ通知される。また、イベントマネジャ45は、ユースケース固有のイベントに関しては、共通機能としてイベント解析までを行った後、予め登録されたフック関数によってコマンド処理コントローラ(CC)63へ処理を依頼する。そして、イベントマネジャ45は、コマンド処理コントローラ(CC)63からの戻り値に応じて、適切なイベントをAPへ通知する。
また、イベントマネジャ45は、コンポーネントからユースケース固有のイベントを受信した場合、共通機能としてイベント解析を行い、その後、コマンド処理コントローラ(CC)63を呼び出す。そして、イベントマネジャ45は、コマンド処理コントローラ(CC)63に、ユースケース固有の機能として特定のイベント処理を実行させる。
OASLI/F部46は、OS及びハードウェア層とのI/Fであり、OS及びハードウェア層の処理プログラム65へ各種コマンドを出力する。
CCローダI/F部47は、コマンド処理コントローラ(CC)63をメモリへロードするためのコマンド処理プログラムローダ(CCローダ)64への指示を送信するためのプログラムである。
コマンド処理プログラムローダ(CCローダ)64は、プラットフォーム(OSやハードウェア)に応じた手段によって、コマンド処理コントローラ(CC)63をメモリへロードする。グラフマネジャ42から、コマンド処理コントローラ(CC)63のロード要求が行われる。コマンド処理コントローラ(CC)63のロードは複数可能である。すなわち、複数のユースケースが同時に動作することが可能である。コマンド処理プログラムローダ(CCローダ)64がコマンド処理コントローラ(CC)63をメモリロードすることにより、様々なプラットフォームでのコマンド処理コントローラ(CC)63の再利用が可能となる。
CCI/F部48は、コマンド処理コントローラ(CC)63との通信を行うためのプログラムである。
コマンド処理コントローラ(CC)63は、各ユースケース固有のコマンド処理やイベント処理の実行を制御するプログラムである。
具体的には、コマンド処理コントローラ(CC)63は、各ユースケース固有のコマンド及びパラメータの処理、および、イベント処理を行う。コマンド処理コントローラ(CC)63は、フレームワークマネジャ44からのユースケース固有のコマンドあるいはパラメータ処理要求を受信したとき、解析結果に応じて、生成したグラフの状態遷移や属性情報の設定を行うべく、予め登録されたフック関数を経由してフレームワークマネジャ44へ依頼する。また、イベントマネジャ45から、あるユースケースのイベント処理要求を受信したとき、解析結果に応じてグラフの状態遷移や属性情報の設定やAPへのイベント要求を行うべく、予め登録されたフック関数を経由してフレームワークマネジャ44へ依頼する。
なお、ユースケース固有のコマンドやイベントを処理するコマンド処理コントローラ(CC)63には、予め標準的な機能が提供されているため、上述した処理を行うための、例えばフック関数等によって規定された処理を実装するだけでよい。
また、コマンド処理コントローラ(CC)63は、各ユースケースに使用されるコマンドセットの情報を、コマンドセット情報記憶部71から取得することができる。上述した例であれば、DTVライブ再生APのユースケースのコマンドセットとしては、「チャネル選択」、「開始」、「停止」のコマンドが、コマンドセット情報記憶部71に予め記憶されている。
さらに、コマンド処理コントローラ(CC)63は、各APの実行時に指定される各コマンドと、各コンポーネントの状態あるいはコマンドとを対応付けるコマンド/状態対応情報を、コマンド/状態対応情報記憶部72から取得することができる。コマンドセット情報記憶部71とコマンド/状態対応情報記憶部72は、記憶装置16に予め設定されて記憶されている。
あるAPが起動されると、そのAPのユースケースに使用されるコマンドセットの情報を、コマンドセット情報記憶部71から取得し、さらに、コマンド/状態対応情報記憶部72のコマンド/状態対応情報に基づいて各コマンドと各コンポーネントの状態あるいはコマンドとの対応付けが行われる。その結果、ユーザが、起動したAPの実行時に、あるコマンドがユーザによって指定されると、そのコマンドに対応する1以上のコンポーネントの状態が、そのユーザのコマンドに対応した状態に変更され得る。
(動作)
次に、情報処理装置1のコンポーネント制御層13の動作について説明する。以下の動作は、ハードウェア層11のCPUによって実行される。図5は、APの起動時におけるコンポーネント制御層13の動作の例を示すフローチャートである。
あるAPが起動されると、まず、そのAPの起動情報あるいはそのAPからグラフの生成要求コマンドが、コマンド受信部41で受信され、フレームワークマネジャ44に渡される。フレームワークマネジャ44は、グラフマネジャ42に、そのAPに対応するコンポーネントの構成情報と、その含まれる1以上のコンポーネントの接続情報とを読み込ませる(ステップS1)。
フレームワークマネジャ44は、コマンド処理プログラムローダ(CCローダ)64に、グラフに応じたコマンド処理コントローラ(CC)63を読みこませる。コマンド処理コントローラ(CC)63の初期化時に、システムが提供するフック関数の中から必要に応じて設定される(ステップS2)。
次に、フレームワークマネジャ44は、そのAPに含まれる各コンポーネントの登録情報を、レジストリマネジャ43に取得させ、そのAPに関わる各コンポーネントをメモリ上に生成する(ステップS3)。
次に、各コンポーネントの接続情報から、そのAPの各コンポーネントの接続関係を構築する(ステップS4)。
以上により、そのAPのグラフがメモリ上に生成あるいは構築される。
なお、このとき、グラフマネジャ42は、生成されていないコンポーネントは生成され、ポリシー情報に基づいて、別のAPのために生成済みのコンポーネントは生成されない。また、グラフマネジャ42は、APからのグラフ消去要求に対して、コンポーネントの登録情報とコンポーネントの接続情報に基づいて、グラフを消去する。このとき、他のグラフと共有されていないコンポーネントは消去され、ポリシー情報に基づいて、他のAPと共有されているコンポーネントは消去されない。これは、他のAPが使用されるコンポーネントが既に起動されている場合もあるからである。
そして、グラフマネジャ42は、初期化を行う(ステップS5)。この初期化は、そのAPを動作可能状態にする必要があるため、そのAP内の各コンポーネントの状態が初期化される。
次に、コマンドセットの生成が行われる(ステップS6)。コマンドセットの生成は、上述したコマンドセット情報記憶部71に記憶されたコマンドセットの情報を、コマンド処理コントローラ63を介して読み出すことによって、行われる。
例えば、DTVライブ再生アプリケーションであるAP1では、ユーザの操作コマンドとして、「チャンネル選択」、「開始」及び「停止」のコマンドが入力可能である。TV録画アプリケーションであるAP2では、ユーザの操作コマンドとして、「開始」と「停止」のコマンドが入力可能である。DTVファイル再生アプリケーションであるAP3では、ユーザの操作コマンドとして、「開始」、「停止」、「一時停止」、「早送り」、「巻き戻し」のコマンドが入力可能である。このように、複数のAP間では、それぞれのユースケースとして記述されたこれらの入力コマンドは、異なっている。
このような各AP毎のコマンドのセットの情報は、記憶装置16のコマンドセット情報記憶部71にコマンドセット情報として記憶されている。よって、コマンドセットの生成処理は、起動されたAPのコマンドセットを、コマンドセット情報記憶部71から読み出すことによって、行われる。
次に、コマンドの実行処理が行われる(ステップS7)。コマンドの実行処理は、上述したコマンド/状態対応情報記憶部72に記憶されたコマンド/状態対応情報を、コマンド処理コントローラ63を介して読み出すことによって、行われる。
コマンドの実行処理は、上述したように、APのコマンドと、各コンポーネントの状態とを対応付ける処理である。
例えば、AP3の場合、「開始」コマンド(すなわち「再生」コマンド)は、7つのコンポーネント、Vデコーダ2(VDecoder2)29、Vコンポジタ(VCompositor)22、Vレンダラ(VRenderer)23、Aデコーダ2(ADecoder2)30、Aミキサ(AMixer)25、Aレンダラ(ARenderer)26、デマルチプレクサ(Demuxer)27のそれぞれを、「開始」(すなわち「再生」)の状態に対応付けられる。すなわち、AP3の実行時に、「開始」コマンド」がユーザから入力されると、これらの対応する各コンポーネントを、その「開始」コマンドに対応する状態に移行させることによって、AP3の「開始」コマンドが実行されることになる。
また、AP2の場合、「開始」コマンドは、デマルチプレクサ(Demuxer)27とファイルライタ(Fwriter)28を、「開始」すなわち「再生」の状態に対応付けられる。
同様に、各APの各コマンドについても、対応するコンポーネントの状態を、その各APの各コマンドに対応する状態に移行させる対応付け処理を行うことによって、その各APの各コマンドの処理が実行される。
このような対応付けは、例えば、フック関数を利用して行うことができる。すなわち、フック関数のポインタによりコマンド処理コントローラ(CC)63のプログラム中の関数等を指定することによって、そのコンポーネントの状態が、APのコマンドに対応した処理となるようにすることができる。
このような各APの各コマンドと、各コンポーネントの状態との対応関係は、記憶装置16のコマンド/状態対応情報記憶部72に予め記憶されている。よって、コマンドの実行処理は、起動されたAPの各コマンドと、各コンポーネントの状態との対応関係の情報を、コマンド/状態対応情報記憶部72から読み出すことによって、行われる。
以上のようにして、各APは起動されると、図5の処理が実行されることによって、各APは実行可能となる。
各APの実行中は、コマンド処理コントローラ63が、各コンポーネントに対するコマンドの処理を行うことによって、各APの動作は行われる。
以上のように、上述した構成を有するメディアフレームワークとしてのコンポーネント制御層13が、AP層14とコンポーネント層12との間に設けられた。コンポーネント制御層13は、APが起動されると、グラフ情報、コマンドセット情報およびコマンド/状態対応情報とを利用して、そのAPに対応する各コンポーネントを実行可能状態にする。よって、上述したフレームワークとしてのコンポーネント制御層によれば、そのAPが各コンポーネントを直接制御する必要はなく、コンポーネント制御層13が、多様なコンポーネントの接続及び制御を行うので、APに対して、抽象度の高いインターフェースを提供することができる。
特に、グラフマネジャ42は、コンポーネントの生成条件、共有条件などのシステム制約情報に基づいて、グラフ間のコンポーネント競合を解決するため、APはシステム制約に関与することなくグラフを制御することが可能である。
さらに詳細に言うならば、上述した実施の形態に係るメディアフレームワークでは、グラフ情報を利用しているので、複数のコンポーネントによって構成されるより複雑なグラフに対応することができる。その結果、上述した実施の形態に係るメディアフレームワークは、各コンポーネントの再利用性を高めることが可能で、かつOS非依存のメディアフレームワークとなる。
従って、上述した構成を有するメディアフレームワークとしてのコンポーネント制御層13を利用することにより、APが介在することなく、グラフのサービス品質の保証、各APのQoS及びポリシー仕様で開発されたグラフ毎のサービス品質の保証を、より容易に行うことが可能となる。
その結果、APのシステム全体の品質を高めることができ、かつ各AP及び各コンポーネントの開発工数を減らすことも可能となる。
なお、以上の例では、APは、固定的であるが、APを複数のユースケースを適切に組み合わせて、動的に制御することによって、より複雑なサービスの構築が可能である。例えば、DTV追っかけ再生のAPは、最初にDTV録画APとDTVファイル再生APの組み合わせで、ハードディスク装置等に記録されたDTVのデータを再生し、再生タイミングがライブ放送に追いついた時点で、予め生成しておいたDTVライブ再生APへ切り替える、というように動的に制御することによって、実現することができる。
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウェア・ルーチンに1対1には対応しない。従って、本明細書では、以上、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムコードがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムコードの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明のフレームワークを実現することができる。
以上のように、上述したコンポーネント制御層のフレームワークを用いることによって、各コンポーネントの接続制御を行い、かつAPに対して抽象度の高いインターフェースを提供することができる。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
本発明の実施の形態に係わる情報処理装置のソフトウェアとハードウェアの構成を示す構成図である。 本発明の実施の形態に係わる、各APと複数のコンポーネントの利用関係を説明するための図である。 本発明の実施の形態に係わるグラフ構造の例を説明するための図である。 本発明の実施の形態に係わるコンポーネント制御層の構成を示すブロック図である。 本発明の実施の形態に係わる、APの起動時におけるコンポーネント制御層13の動作の例を示すフローチャートである。
符号の説明
1 情報処理装置、11 ハードウェア層、12 コンポーネント層、13 コンポーネント制御層、14、15 アプリケーション層

Claims (5)

  1. それぞれが所定の処理を実行する複数のコンポーネントプログラムの登録情報を記憶するコンポーネント登録情報記憶部と、
    1以上のコンポーネントプログラムを組み合わせて構成されるアプリケーションプログラムに含まれるコンポーネント情報、及び前記1以上のコンポーネントプログラムの接続関係情報を記憶するアプリケーションコンポーネント情報記憶部と、
    前記アプリケーションプログラムの実行時に指定される1以上のコマンドと、前記1以上のコンポーネントプログラムの状態とを対応付けるコマンド/状態対応情報を記憶するコマンド/状態対応情報記憶部と、
    前記アプリケーションプログラムが起動されると、前記アプリケーションコンポーネント情報記憶部と前記コンポーネント登録情報記憶部を参照して、起動されたアプリケーションプログラムに含まれるコンポーネントプログラムを生成し、前記コマンド/状態対応情報記憶部を参照して、前記アプリケーションプログラムの前記1以上のコマンドのそれぞれと、生成された各コンポーネントプログラムの状態との対応付けを行うコンポーネント制御部と、
    を有することを特徴とするコンポーネントプログラム制御装置。
  2. 前記コンポーネント制御部は、複数のアプリケーションプログラムが起動された場合に、前記複数のアプリケーションプログラム間で共通のコンポーネントプログラムの生成の要否に関するポリシー情報に基づいて、前記コンポーネントの生成を行うことを特徴とする請求項1に記載のコンポーネントプログラム制御装置。
  3. 前記コンポーネント情報及び前記接続関係情報は、グラフ情報として、前記アプリケーションコンポーネント情報記憶部に記憶され、
    前記グラフ情報は、サブグラフ情報を含み得る情報であることを特徴とする請求項1又は2に記載のコンポーネントプログラム制御装置。
  4. それぞれが所定の処理を実行する1以上のコンポーネントプログラムを組み合わせて構成されるアプリケーションプログラムに含まれる前記1以上のコンポーネントプログラムを制御する方法であって、
    前記アプリケーションプログラムが起動されると、 前記1以上のコンポーネントプログラムの登録情報を記憶するコンポーネント登録情報記憶部と、前記アプリケーションプログラムに含まれるコンポーネント情報、及び前記1以上のコンポーネントの接続関係情報を記憶するアプリケーションコンポーネント情報記憶部とを参照して、起動されたアプリケーションプログラムに含まれるコンポーネントプログラムを生成し、
    前記アプリケーションプログラムが起動されると、前記アプリケーションプログラムの実行時に指定される1以上のコマンドと、前記1以上のコンポーネントプログラムの状態とを対応付けるコマンド/状態対応情報を記憶するコマンド/対応情報記憶部を参照して、前記アプリケーションプログラムの前記1以上のコマンドのそれぞれと、生成された各コンポーネントプログラムの状態との対応付けを行うことを特徴とするコンポーネントプログラムを制御する方法。
  5. それぞれが所定の処理を実行する1以上のコンポーネントプログラムを組み合わせて構成されるアプリケーションプログラムに含まれる前記1以上のコンポーネントプログラムを制御するコンポーネントプログラムを制御する方法を、コンピュータに実行させるプログラムであって、
    前記アプリケーションプログラムが起動されると、 前記1以上のコンポーネントプログラムの登録情報を記憶するコンポーネント登録情報記憶部と、前記アプリケーションプログラムに含まれるコンポーネント情報、及び前記1以上のコンポーネントの接続関係情報を記憶するアプリケーションコンポーネント情報記憶部とを参照して、起動されたアプリケーションプログラムに含まれるコンポーネントプログラムを生成する第1のコード部と、
    前記アプリケーションプログラムが起動されると、前記アプリケーションプログラムの実行時に指定される1以上のコマンドと、前記1以上のコンポーネントプログラムの状態とを対応付けるコマンド/状態対応情報を記憶するコマンド/対応情報記憶部を参照して、前記アプリケーションプログラムの前記1以上のコマンドのそれぞれと、生成された各コンポーネントプログラムの状態との対応付けを行うことを特徴とするコンポーネントプログラムを制御する第2のコード部と、
    を有するプログラム。
JP2008203380A 2008-08-06 2008-08-06 コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム Pending JP2010039860A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008203380A JP2010039860A (ja) 2008-08-06 2008-08-06 コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008203380A JP2010039860A (ja) 2008-08-06 2008-08-06 コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2010039860A true JP2010039860A (ja) 2010-02-18

Family

ID=42012321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008203380A Pending JP2010039860A (ja) 2008-08-06 2008-08-06 コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2010039860A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051182B1 (ko) * 2011-03-10 2011-07-22 주식회사 다이나믹앤라이브 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치
JP2012014700A (ja) * 2010-07-01 2012-01-19 Nhn Corp 開発者インタフェース提供方法およびシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014700A (ja) * 2010-07-01 2012-01-19 Nhn Corp 開発者インタフェース提供方法およびシステム
KR101051182B1 (ko) * 2011-03-10 2011-07-22 주식회사 다이나믹앤라이브 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치

Similar Documents

Publication Publication Date Title
US7900140B2 (en) Media processing methods, systems and application program interfaces
US7712108B2 (en) Media processing methods, systems and application program interfaces
JP2004508611A (ja) リソースマネージャアーキテクチャ
JP2008159139A (ja) コンテンツ再生システム、電子機器、再生制御方法、およびプログラム
KR20060008896A (ko) 자원 관리 방법 및 장치
US11029915B1 (en) Optimizing audio signal networks using partitioning and mixer processing graph recomposition
WO2012039216A1 (ja) 情報処理装置、その方法及びそのプログラム
US20130318206A1 (en) Render, controller and managing methods thereof
US20140376878A1 (en) Display device, display system and program thereof
JP2010039860A (ja) コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム
US20100037040A1 (en) Method and apparatus for implementing virtual environment
JP5232104B2 (ja) マルチメディア処理制御装置
US20120192208A1 (en) Method, Apparatus and Computer Program for Providing Multimedia Functions Using a Software Wrapper Component
JP2006215886A (ja) 信号処理装置、信号処理システム、および信号処理方法
Tan et al. A dynamic petri net model for iterative and interactive distributed multimedia presentation
US9235438B2 (en) Image display apparatus, image display method, and computer program product
JP4249569B2 (ja) デマルチプレクサのアプリケーションプログラムインターフェイス
US7739692B2 (en) Minimizing the dependency of source code on the in-band resources of a set-top box
JP4584324B2 (ja) データ処理システム、及びコンポーネント管理方法
KR100719416B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
US7716669B2 (en) Concurrent system applications in a multimedia console
JP2021012691A (ja) エンコードとアップロードの並行処理によってメディアファイルの送信時間を短縮することができる方法およびシステム
JP5298055B2 (ja) 資源内に配置された制御対象機器を制御する機器制御装置、プログラム及び方法
US8572631B2 (en) Distributed control of devices using discrete device interfaces over single shared input/output
RU2351002C2 (ru) Программный интерфейс приложения демультиплексора