以下、本発明を図示した実施形態に基づいて説明する。
実施の形態1.
第1図は、第1の実施の形態によるユビキタス(Ubiquitous)映像モジュール(以降、「UM」と記す。)を用いた映像情報装置のネットワーク系統図を示すものである。
ネットワーク1は、小規模のLAN、大規模のインターネットを含むネットワークであって、様々な種類のパーソナルコンピュータサーバやパーソナルコンピュータクライアントが接続されている。
PC2はネットワーク1に接続されたパーソナルコンピュータであり、メールの送受信、ホームページの開発・閲覧など様々なサービス・用途で用いられている。
データベース3は、映像配信のストリーミングデータ、映像・音楽データの保管、Factory Automation(以降、「FA」と記す。)の管理データ、監視カメラの監視画面などが保管されている。
デジタルTV6はデジタル入力の映像コンテンツを表示するための表示装置、DVD/HDDレコーダ7はDVDやHDDなどの大容量のストレージに映像・音楽データを保存・再生するためのレコーダ、監視レコーダ8はエレベータや店内の状況等をカメラにて撮影して保管するためのレコーダ、FA9は工場内のFA機器、携帯電話10は単独でネットワーク接続が出来ない携帯電話、PDA11は個人用情報端末を示している。
このように、ネットワーク1へ接続する可能性のある機器は多種多様であり、ユビキタス映像モジュールユニット(以降、「UMU」と記す。)4を各機器に取り付けることにより、ネットワーク1への接続が可能となる。すなわち、以下で説明するUMUは、多種の機器間にあるハードウェア、ソフトウェア等の違いを機器とネットワークとの間に介在させることにより吸収し、この接続されたUMUの持つ機能を使用することにより、仮想的に新たな機能を有する映像情報装置とするものである。
第2図は、UMU4を構成する重要な要素のUMの構成を示した図である。
図中、UM12は、UM内の後述する各ハードウェアエンジンを制御するためのコンピュータであるUM用CPU(以降、「UM−CPU」と記す。)13、UM−CPU13と各ハードウェアエンジンとを接続するためのローカルバス(内部BUS)14、外部の映像情報装置と接続するための汎用バス(UM−BUS)16、ローカルバス(内部BUS)14と汎用バス(UM−BUS)16を接続するバスブリッジ15、ネットワークの映像処理で必要な各種の機能をハードウェアにて実現するための複数のハードウェアエンジン(ハードウェアエンジン1、・・・、N)17にて構成される。
ここで、ハードウェアエンジン17からは、例えば、ネットワークに接続するための有線LAN、無線LAN、シリアルバス接続などのためのバスライン(専用バス)18を設けることも可能である。
各ハードウェアエンジン(ハードウェアエンジン1、・・・、N)は、映像情報ネットワークに関する機能を補充するためのエンジンであり、例えば、第3図に示すような、ネットワーク環境に接続するための有線LAN、無線LAN、シリアルバスとの通信を行うためのコミュニケーションエンジン24、描画性能を向上するためのグラフィクエンジン21、動画や静止画など撮像信号処理を行うカメラエンジン22、動画圧縮のためのMPEG4エンジン23などの機能がある。すなわち、各ハードウェアエンジンは、UMU4を装着することによって、映像情報装置には本来存在しない機能を追加・補充することを可能とするエンジンである。
なお、ここであげている例は一例であり、ネットワークを形成するために必要な機能を、本エンジンにて形成することが可能である。
また、DMA(Direct Memory Access)コントローラなどのメモリー制御機能も実現可能である。
第3図に示すように、本実施の形態によるUM12は、分散実行機能をサポートするOS(Operating System)である組込みLinux27、ミドルウェア25、仮想マシン(Virtual Machine。以降、「VM」と記す。)26、アプリケーションソフトなどを含んでおり、UM単体でネットワークに関する機能を実現できる。
つまり、本実施の形態によるUM12は、ネットワークに関するホストコンピュータの機能を実現できるモジュールである。
なお、ここで用いられるVM26は、例えば、JAVA(登録商標)VMのことである。
第4図ならびに第5図は、映像情報装置にUMを接続するためのトポロジー(topology)を示している。
システムCPU(以降、「SYS−CPU」と記す。)201とUM−CPU13は、バス形式の接続やHUB35を介したスター形式の接続が可能である。
以下にそれぞれの詳細な説明を加える。
第4図はバス形式の接続トポロジーであり、SYS−CPU201とUM−CPU13は、UM−BUS16にバス型に接続されている。
また、SYS−CPU201は、映像情報装置のシステムの制御をつかさどるホストサーバの機能を、UM−CPU13はネットワークサーバの機能を実現するものである。
ここで、重要なことは、映像情報装置は、SYS−CPU201で、問題なく製品仕様を満足する動作をする点である。
UM12のUM−CPU13は、システム側インターフェース(以降、「S−I/F」と記す。)31とUM側インターフェース(以降、「U−I/F」と記す。)32とにより機械的に接続することが可能である。
映像情報装置に高性能・高付加価値のネットワーク機能を付加したい状況においては、S−I/F31ならびにU−I/F32を介してUMU12を接続する。
これにより、例えば、LAN上の他の装置のネットワーク端末34にアクセスするなどのネットワーク機能が実現できる。
すなわち、映像情報装置自体にはなかった、より高性能・高付加価値のネットワーク機能を付加したい場合は、S−I/F31ならびにU−I/F32を介してUM4を接続することにより、例えばLAN33上のネットワーク端末34にアクセスする等のネットワーク機能が実現できる。
このような機能の拡張は、映像情報装置のシステムを制御するSYS−CPU201を、UM12内のUM−CPUが制御することにより可能となる。
なお、汎用バスのUM−BUS上には、ホスト機能を有さないデバイス(メモリー、専用機能のIC)の接続が可能であり、また、接続しない構成も可能である。
第5図はスター型の場合の配置を示しており、HUB35を介してUM−CPU13が接続している構成が異なるのみで、その他の機能は、バス型の場合と同様である。
また、本構成の接続形態は、リング型についても問題なく対応することが可能となる。
ここで、S−I/F31とU−I/F32の接続は、ATA(AT Attachment:ハードディスク装置用インターフェースの1つ)、PCI(Peri−pheral Component Interconnect:パソコンやワークステーションに使う入出力バスの1つ)、SCSI(Small Computer System Interface:パソコンやワークステーションに使う入出力インターフェースの規格)、PCMCIA(Personal Computer Memory Card Internatinal Association)、汎用CPUBUS等のパラレル転送の構成や、IEEE1394、USB(Universal Serial Bus:パソコンのキーボードなどの周辺装置用シリアルインターフェース)、UART(Universal Asynchronous Receiver−Transceiver)などのシリアル転送の構成も可能である。
また、映像情報装置とUMの接続方法は、PCカードやカードBUSで使用されているコネクタ接続や、PCIバス接続などで使用されるカードエッジコネクタ接続や、FPCケーブル、フラットケーブル、IEEE1394用ケーブルなどのケーブル接続などの方法を用いることが可能である。
第6図は、本実施の形態によるUMU42を映像情報装置40に接続した場合の全体の構成例である。
映像情報装置40は、第44図に示した従来の映像情報装置206にS−I/F31を追加した構成をしている。
また、UMU42は、第2図あるいは第3図に示したUM12にU−I/F32を追加した構成をしている。
それぞれのインターフェースS−I/F31とU−I/F32を接続することにより、UMの機能が付加された映像情報装置40が実現できる。
UMU42は、コミュニケーションエンジン24にて、インターネット環境に接続した後、インターネット上のサイトから画像・音声のMPEG4ファイルをダウンロードする。
ダウンロードされたMPEG4ファイルは、MPEG4エンジン23でデコードされ、グラフィックエンジン21でグラフィック処理され、UMUのインターフェースU−I/F32を経由して映像情報装置40で利用可能なデータ形式で出力される。
映像情報装置40に入力されたデータは、表示ユニット211に表示可能な状態に信号処理され、表示ユニット211上に表示される。
また、カメラから入力された動画・静止画ファイルをUMU42のカメラエンジン22にて画素数変換、レート変換、画像処理を実施し、グラフィクエンジン21でグラフィック処理されUMU42のインターフェースU−I/F32経由で映像情報装置40に利用可能なデータ形式で出力される。
映像情報装置40に入力されたデータは、表示ユニット211に表示可能な状態に信号処理され、表示ユニット211上に表示される。
なお、以上の各エンジンの処理は、一例を示したものであって、エンジンの使用手順ならびにエンジンの機能については、ネットワーク機能を補強する機能であれば、本システムで実現可能である。
映像情報装置ならびにUMUの構成において、主に映像データ表示するためのシステムについて説明を行っているが、同様の構成で、音声入力の再生装置・テキスト入力の表示・配信装置、情報のストレージ入力のストレージ装置にも適応することが可能である。
第7図は、UMU42に表示ユニット211へ映像を表示するための機能を付加した場合の構成の一例を示す。
UVI44はUMU42のビデオ(映像)入力端子であり、映像情報装置40の映像出力端子であるV−I/F210と接続可能なインターフェースを形成している。
UVO45は、ハードウェアエンジンの表示エンジンの映像出力信号端子であり、表示ユニット211の入力インターフェースと接続される。
例えば、映像情報装置40の映像出力をUM12のグラフィックエンジン21の表示画面上にオーバーレイ(over lay)することが可能である。
また、映像信号をS−I/F31とU−I/F32の汎用バスを使い転送する構成も可能ではあるが、本実施の形態の構成を用いることにより、汎用バスの転送効率を下げることなく、映像信号をUMへ供給することが可能となる。
さらに、映像情報装置40がネットワーク対応ではない場合、インターネット上のグラフィックデータを映像信号とオーバーレイして出力する構成は困難であるが、UMはあらかじめ、ネットワークの必須機能としてオーバーレイの機能を搭載するため、システムLSIの新たな開発を行うことなく、映像情報装置の機能拡張が容易に実現できる。
第8図は、UMU42のコミュニケーションエンジン24に外部ネットワーク接続用の端子を付加した場合の構成例を示している。
各ハードウェアエンジンに対応させて、有線LAN用外部接続端子46、無線LAN用外部接続端子47、外部接続用のシリアルバス48を配置することにより、UMU42は、有線LAN経由、無線LAN経由、あるいは、IEEE1394などのシリアルバス経由でネットワーク接続が可能となる。
なお、UMU42は、上述のすべての端子を持つよう構成することも可能であるし、一つのみの端子を持つ構成も可能であり、ネットワークや製品に応じてフレキシブルに対応することが出来る。
第9図は、本実施の形態によるUM12を監視レコーダ8のシステムに適応した場合の構成例である。
図中、監視レコーダ8は監視レコーダとしての基本的なブロックを構成しており、カメラとのI/Fやその他の映像出力を持つ機器との映像信号の送受信を行うMultiple Video I/O51と、JPEG/JPEG2000などの圧縮・伸張を行うJPEG/JPEG2000 Codec52と、HDD/DVDなどマスストレージ装置をドライブするMass Storage ドライバ53と、監視レコーダの制御を行うCore コントローラ部54と、OSとして、UM−CPU13と同じOSである組込みLinux55を搭載する構成である。
監視レコーダ8のMultiple Video I/O51の機能を用いてカメラモジュールの信号処理を実現することにより、UM−CPU13のカメラエンジン部の機能を使用する場合は、UM−CPU13の機能を用いないことも可能であり、映像情報装置40の仕様にあわせてユビキタス映像モジュールのエンジンを選択に切替える機能を有する。
また、第10図のような構成とすることも可能である。すなわち、監視レコーダ8はHDD/DVD56などのマスストレージ装置のインターフェースを制御するStrageホストインターフェイス59を備え、ユビキタス映像モジュール12、HDD/DVD56はストレージインターフェースを行うStrageデバイスコントローラ57を有して、監視レコーダ8のStrageホストインターフェイス59と接続されている。
さらに、第11図は、UM12をDVD/HDDレコーダ7のシステムに適応した場合の構成例である。図中DVD/HDDレコーダ7は、DVDレコーダの基本的なブロックを構成しており、映像出力を持つ機器との映像信号の送受信を行うMultiple Video I/O61と、MPEG2などの圧縮・伸張を行うMPEG2 Codec62と、DVDなどストレージ装置のインターフェースを制御するStargeホストインターフェイス65と、DVDレコーダの制御を行うCoreコントローラ63と、OSとして、UM−CPU13と同じ組込みLinux64を搭載する構成である。
これまでに、DTV5などのような映像情報装置、DVD/HDDレコーダ7の映像記録装置や、監視レコーダ8の監視装置に適応した事例について述べてきたが、同様の構成にて、FA9、携帯電話10、PDA11についても適応可能である。
以上の説明では、映像情報装置とUMで同一のOSを用いた場合について述べているが、構成上は異なるものでも可能である。
ただし、同一のOSを用いることにより、UMで採用されているハードウェアエンジンの機能が陳腐化した場合は、映像情報装置内に必須機能として取り込む時、OSが共通であるためソフトの改定作業が容易にでき、改定のための開発費が少なく、信頼性などの面でバグ(bug:プログラムの欠陥)が入りにくいなどの開発面での優位性がある。
第12図は、実施の形態1によるUMのソフトウェアブロック構成図である。
図に示すように、最下層はマイコン(CPU)を含めたハードウェア層100である。
このハードウェア層100の上位に、ハードウェアを抽象化することにより、ハードウェアごとの違いを吸収するためのソフトウェアであるHardware Adaptation Layer(以降、「HAL」と記す。)101を配置する。
HAL101の上位には、マルチタスクオペレーティングシステムである組込みLinux102を配置する。
このように、HAL101はハードウェア層100と組込みLinux102との間に配置されるが、HAL101はハードウェア層100と組込みLinux102とのインターフェースの役割を果たしていることになる。したがって、このHAL101は大きな意味で、ハードウェア層100、または組込みLinux102の一部として捉えることができる。
組込みマルチタスクオペレーティングシステムである組込みLinux102は、HAL101に属するソフトウェアを介して、ハードウェア層100の構成要素である各ハードウェアデバイスを制御する他、アプリケーションの実行環境を提供する。
また、組込みLinux102上で動作するグラフィックシステムとしては、X−Window(登録商標)103が使用される。
オペレーティングシステムLinux102上で動作するミドルウェアとして、大別して4つのミドルウェアを配置する。
第1は、インターネットと接続するための通信処理を行うためのものであり、次世代のインターネットプロトコルであるIPv6のプロトコルにも対応しているIPv6対応インターネット通信プロトコルミドルウェア104である。
第2は、当該機器をネットワークに接続する際に、自動的に設定を行うためのもので、ユニバーサルプラグアンドプレイ(Universal Plug and Play。以降、「UPnP」と記す。)ミドルウェア105である。
UPnPミドルウェア105は、IPv6対応インターネット通信プロトコルミドルウェア104に属するプロトコルを使用するために階層的にIPv6対応インターネット通信プロトコルミドルウェア104の上に属する。
第3は、マルチメディアのための規格であるMPEG2/4に対応したエンコード/デコード処理、MPEG7に対応したデータ処理、MPEG21に対応したコンテンツ管理処理の組み合わせによってマルチメディアデータの配信、蓄積等の処理を行うためのもので、MPEGx映像配信蓄積プロトコルミドルウェア106である。
第4は、カメラの制御および2次元/3次元のグラフィック処理を行うためのもので、撮像アンド表示(グラフィック)ミドルウェア107である。
前述のミドルウェア群の内、UPnPミドルウェア105とMPEGx映像配信蓄積プロトコルミドルウェア106の上位にJAVA(登録商標)のアプリケーション実行環境であるJAVA(登録商標)VM108を配置し、JAVA(登録商標)VM108上に、ユーザーインターフェースを含んだアプリケーションの作成を容易にするためのUIアプリケーションフレームワーク109を配置する。
UIアプリケーションフレームワーク109は、例えば、JAVA(登録商標)VM108上で動作するクラスの集合などである。
最上位には、UIアプリケーションフレームワーク109や撮像アンド表示(グラフィック)ミドルウェア107を用いて、当該ユビキタス映像モジュールを搭載する機種ごとに必要な機能を実現するための機種別アプリケーション110を配置する。
第13図は、機種ごとにユビキタス映像モジュールを適用する場合のソフトウェアブロック図である。
図に示すように、最上位のアプリケーション層とハードウェア層の上位に位置するHALのみを機種ごとに変更し、その他の層は共通化して使用することにより、異なる機種に対応する機能を実現することができる。
この図では、ユビキタス映像モジュールを携帯電話に適用する場合には、携帯HAL120と携帯Application(以降、「APP」と記す。)125を組み合わせることを示している。
同様に、車載用電話に適用するためにはカー携帯HAL121とカー携帯APP126を組み合わせ、カーナビゲーションシステムに適用するためにはカーナビHAL122とカーナビAPP127を組み合わせ、AV家電機器に適用するためにはAV家電HAL123とAV家電APP128を組み合わせ、監視システム機器に適用するためには監視HAL124と監視APP129を組み合わせる。
第14図は、IPv6対応インターネット通信プロトコルミドルウェア104のソフトウェアブロック構成を示した図である。
図においては、通信用のインターフェースとして、10BASE−Tや100BASE−TXから成るイーサネット(登録商標)(Ethernet(登録商標))、IEEE802.11a/b/gから成る無線LAN、IEEE1394などの高速シリアル通信の3種類を含んでいる。
それぞれのハードウェアを制御するためのデバイスドライバソフトウェアとして、イーサネット(登録商標)ドライバ131、無線LANドライバ132、IEEE1394ドライバ133を配置する。
イーサネット(登録商標)ドライバ131および無線LANドライバ132の上位層として、インターネットプロトコルの処理を行うIPプロトコルスタック(IP)137を配置する。
このIPスタック137は、次世代のインターネットプロトコルであるIPv6に対応するための処理と、セキュリティのためのプロトコルIPsecに対応するための処理を含む。
IEEE1394ドライバ133の上位層としては、IEEE1394のトランザクション(Transaction)処理を行うためのIEEE1394トランザクションスタック135を配置する。
また、IEEE1394のトランザクションを無線LAN経由で実行できるようにするために、無線LANドライバ132とIEEE1394トランザクションスタック135の間にPAL(Protocol Adaptation Layer)134を配置する。
PAL134はIEEE1394トランザクションと無線LANの間のプロトコル変換を行う。
IPスタック137の上位にはトランスポート層としてTCP(Transmisson Control Protocol:ネットワークのトランスポート層の通信プロトコル)およびUDP(User Datagram Protocol:信頼性を保証しないトランスポート層の通信プロトコル)のスタック138を配置する。
TCPおよびUDPのスタック138の上位には、HTTP(Hypertext Trans−far Protocol)のプロトコル処理を行うHTTPスタック139を配置する。
また、この上位にHTTP139を用いてXML形式のメッセージ通信を行うSOAP(Simple Object Access Protocol)のプロトコル処理を行うSOAP/XMLスタック140とを配置する。
HTTPスタック139とTCPおよびUDPのスタック138間のインターフェースはsocket(ネットワーク経由でデータのやりとりをするためのプログラムインターフェースのこと)を用いる。
オペレーティングシステムLinux130より上位の層で、HTTPスタック139、SOAP/XMLスタック140、1394トランザクションスタック135までを含む層までが、IPv6対応インターネット通信プロトコルミドルウェア104に含まれる。
これらより上位の層として、SOAP/XMLスタック140およびHTTPスタック139の上位に、インターネットプロトコルベースのUPnP機能を実現するためのプロトコルであるUPnPの処理を行うUPnPスタック141を配置する。
また、IEEE1394トランザクションスタック135の上位にはIEEE1394を用いたネットワークのUPnP機能を実現するための処理を行うAV系ミドルウェア136を配置する。
UPnPスタック141とAV系ミドルウェア136の上位には、それぞれのネットワークを相互的に接続する統合ミドルウェア142を配置する。
AV系ミドルウェア136、UPnPスタック141、統合ミドルウェア142を含む層が、前述のUPnPミドルウェア105に含まれる。
統合ミドルウェア142より上位の層は、アプリケーションの層となる。
SOAPを用いて、ネットワーク上の他のコンピュータとの間でアプリケーション連携を行うWebサービスに対応するために、Webサーバ144、WebサービスアプリケーションI/F145、Webサービスアプリケーション146を階層的に配置する。
Webサービスアプリケーション146はWebサービスI/F145を通じて、Webサーバの提供するサービスを使用する。
また、Webサービス以外のアプリケーションが統合ミドルウェア142を経由して、通信を行う。主なアプリケーションとしてはHTTPを用いるブラウザソフトウェアが挙げられる。
第15図は、第14図で説明した、UPnPミドルウェア105を拡張した場合のソフトウェアブロック構成を示した図である。
この図においては、第14図で説明したイーサネット(登録商標)、無線LAN、IEEE1394によるネットワーク接続に加えて、通信用インターフェースとしてBluetooth、特定省電力無線、電灯線を用いたPLC(Power Line Communication)を用いるネットワークを追加した。
最下層には、それぞれのネットワークインターフェースを制御するためのデバイスドライバとして、Bluetoothドライバ153、特定小電力ドライバ154、PLCドライバ155があり、その上位にIPスタック156、TCPおよびUDPのスタック157を階層的に配置する。
TCPおよびUDPのスタック157の上位層として白物家電系ネットワークミドルウェア158を配置する。
そして、第14図に示した場合と同様に、統合ミドルウェア164をAV系ミドルウェア136、UPnPスタック141および白物家電系ネットワークミドルウェア158の上位に配置することで、全てのネットワークを相互的に接続することが可能となる。
第16図は、ユビキタス映像モジュールの撮像・表示部のソフトウェアブロック構成を示す図である。
図において、185は撮像・表示部ミドルウェアであり、アプリケーションに撮像・表示系の機能提供を行うソフトウェアモジュール群を備えている。
撮像・表示部ミドルウェア185は、ハードウェアを直接制御するドライバ群と、アプリケーションへのインターフェースを提供するライブラリ群の二層構造になっており、それぞれのソフトウェアモジュールは全てLinux上に構築されている。
ドライバ群は、カメラ171などの撮像系のハードウェアを制御するカメラドライバ180、LCD172、2Dグラッフィクスエンジン173などの表示系ハードウェアを制御するXサーバ178、3Dグラフィックスエンジン174などの3Dハードウェアを制御する3Dグラフィックサーバ176より構成される。
また、ライブラリ群は、アプリケーションに撮像・表示機能のインターフェースを提供するものであり、カメラ機能を提供するカメラライブラリ181、X−window(登録商標)機能を提供するXライブラリ179、3D機能を提供する3Dグラフィックスライブラリ177より構成される。
アプリケーション182は、例えば、カメラアプリケーション、ブラウザなど、UI(ユーザインターフェース)を提供する上位のソフトウェアモジュールである。
アプリケーション182が撮像および表示系の機能を実現する場合、撮像・表示部ミドルウェア185のライブラリ群より提供されたプログラムインターフェースにて実現し、アプリケーション182が撮像・表示部ミドルウェアの機能を直接使用する場合と、UIアプリケーションフレームワーク184、JAVA(登録商標)VM183経由で使用する場合がある。
撮像・表示部ミドルウェア185がアプリケーション182に提供する主な機能としては、静止画撮影、動画撮影、動画プレビュー表示、2D・3D表示などがある。
カメラ171より入力された画像データをJPEGやMPEGなどに符号化して蓄積・送信する場合、カメラ171から入力された画像データを図中で示す3Dグラフィックサーバ176より、映像配信蓄積プロトコルミドルウェアブロックに転送する。
第17図に、UMの映像配信蓄積ミドルウェアのソフトウェアブロック図を示す。
第17図のUMの映像配信蓄積ミドルウェアとは、アプリケーションに対して、メディア・データの配信・受信制御、伝送に対する品質保証制御、メディア・データの多重・分離処理およびエンコード・デコード、メディアの検索機能および構造定義、識別機能を提供するソフトウェア・モジュール群であり、使用する通信経路に対応したメディアの多重化処理、伝送制御を行うメディアゲートウェイ・レイヤ194と、メディアの符号化処理を行うトランスコーダ・レイヤ195と、メディアの検索、識別などの構造記述言語を含むメディア・プレゼンテーション・レイヤ196とを含んでいる。
また、メディアゲートウェイ・レイヤ194は、さらに放送などによる配信を想定したTS(トランスポート・ストリーム)を扱うITU−TH.222などの処理を行うTSブロック190、ISDNなどの伝送路を対象とし、端末間通信を想定したH.221およびモバイル機器による通信を想定したH.223をサポートする通信ブロック191、LAN、インターネットによるメディア伝送を想定したH.225に代表されるIPブロック192、および主に蓄積媒体を扱うPS(プログラム・ストリーム)ブロック193により構成されている。
以上のように構成されたUMの映像配信蓄積ミドルウェアは、上位アプリケーション(例えば、ブラウザ)のUI操作に従い、インターネットを介してメディア・データを取得する。
上位アプリケーションは、メディア・データの取得に対し、メディア・プレゼンテーション・レイヤ196はMPEG−7で規定されたMultimedia Content
Description Interfaceを用いたコンテンツ検索機能、MPEG−21で規定されたIPMP(Intellectual Property Management and Protection)によるメディア著作権・保護機能を利用することができる。
取得したデータに対して、メディアゲートウェイ・レイヤ194による多重分離処理、トランスコーダ・レイヤ195によるデコード処理が行われ、SMIL(Synchronized MultimediaIntegration Language)/HTMLで指定された位置、タイミングで表示することができる。
第18図は、映像情報装置のソフトウェアとUMのソフトウェアの関係を示した構成図である。
UMは前述の通り、UMのハードウェア111の上位にHAL101を介してオペレーティングシステムLinux102を配置し、その上位にUMのミドルウェア部112を配置し、その上位にJAVA(登録商標)VM108とUIアプリケーションフレームワーク109を配置して、最上位にUIアプリケーションフレームワークを用いたアプリケーション110を配置する。
また、映像情報装置のソフトウェア構成は、必ずしもUMと同様な階層構造をとる必要はないが、階層構造を揃えた方がより望ましい。
即ち、映像情報装置のハードウェア220の上位にオペレーティングシステムLinux221を配置し、その上位に映像情報装置のミドルウェア222を配置し、その上位にJAVA(登録商標)VM223とUIアプリケーションフレームワーク224を配置して、最上位にUIアプリケーションフレームワークを用いたアプリケーション225を配置するのが理想である。
最低限の条件として、オペレーティングシステムLinuxの階層が合っている場合、即ち、映像情報装置のオペレーティングシステムLinux221が配置されている場合は、映像情報装置のオペレーティングシステムLinux221とUMのオペレーティングシステムLinux111の間はシステムコールレベルで透過的に接続されていることになる。
第19図は、このときの状態を概念的に表したものである。
この結果、例えば、映像情報装置上のプログラムでオープン命令を用いて、UMのデバイスをオープンすることが可能となる。
なお、上位のソフトウェアから下位のソフトウェアの機能を使用する場合(例えば、アプリケーションソフトウェアがミドルウェアの機能を使用する場合など)、ある所定の手続きに従って、命令やデータのやりとりを行う。
この際、一般的には、使用したい機能が自分自身のマシン上(ここでは映像情報装置)にある場合と、他のマシン上(UM)にある場合とで手続きが異なる。
「透過的に接続する」とは、この使用したい機能がどちらに存在する場合でも、その違いを気にすることなく、同じ手続きでやりとりを行うことができるように接続することを意味する。
次にオペレーティングシステムとミドルウェアの階層構造が合っている場合、もしくはミドルウェアの構造が合っている場合、すなわち、映像情報装置のオペレーティングシステムLinux221の上位にミドルウェア222が配置されている場合、前述のシステムコールレベルでの透過性に加えて、映像情報装置のミドルウェア222とUMのミドルウェア112の間は、ミドルウェアAPI(Application Programming Interface)レベルで透過的に接続されていることになる。
この結果、例えば、映像情報装置上のプログラムからミドルウェアAPIをコールすることで、UMのミドルウェアを操作することが可能となる。
また、前述の理想的な条件で階層が合っている場合、もしくはJava(登録商標)VM223および/または、UIアプリケーションフレームワーク224の構造が合っている場合、すなわち、映像情報装置のオペレーティングシステムLinux221が配置され、その上位にミドルウェア222が配置され、その上位にJAVA(登録商標)VM223とUIアプリケーションフレームワーク224を配置され、最上位にUIアプリケーションフレームワークを用いたアプリケーション225が配置されている場合、前述のシステムコールおよびミドルウェアAPIレベルでの透過性に加えて、映像情報装置のJAVA(登録商標)VM223およびUIアプリケーションフレームワーク224とUMのJAVA(登録商標)VM108およびUIアプリケーションフレームワーク109の間はアプリケーションを作成する際のアプリケーション設計データレベルで透過的に接続されていることになる。
第20図は、このときの状態を概念的に表したものである。
この結果、映像情報装置、ユビキタス映像モジュールのプラットフォームの違いを気にせずにアプリケーションを作成することが可能となる。
さらに第21図は、UMを映像記録装置のシステムに適応した場合におけるソフトウェアのブロックの構成を示す図である。プロセス間通信コミュニケータ71はプロセス間通信をATAのコマンドインターフェースに変換するモジュールであり、ATAドライバ72、ATAホストインターフェース73を介して、ユビキタス映像モジュールのATAデバイスコントローラ76にATAのコマンドを送付する。
ATAデバイスコントローラ76はATAのコマンドを受信し、ATAエミュレータ75はATAのコマンドを解析して、プロセス間通信コミュニケータ74によりプロセス間通信に変換する。以上により、映像記録装置のプロセスとユビキタス映像モジュールセットのプロセスがプロセス間通信可能となる。
つまり、映像記録装置上のプロセス間通信手段をストレージインターフェースに変換および逆変換する通信コミュニケータ71と、UMU上のプロセス間通信手段をストレージインターフェースに変換および逆変換する通信コミュニケータ74とを備え、映像記録装置上のプロセスとUMU上のプロセスがプロセス間通信を行うことができる。
以上のように、映像情報装置、映像記録装置のソフトウェアの構成に応じて、装置とUM間のソフトウェアの結合状態を変更することが可能である。この場合、双方のソフトウェアの階層構造が揃っている程、より上位の層でのソフトウェアの共用化が可能となり、結果として機能の分担や機能の移植を容易に行うことが可能となる。
以上の実施の形態では、装置およびUMのオペレーティングシステムとしてLinuxを例にとり説明しているが、代わりにPOSIX準拠もしくは類似の他のオペレーティングシステムを用いることも可能である。
また、装置およびUMの仮想マシンとして、JAVA(登録商標)VMを例に取って説明しているが、代わりにJAVA(登録商標)VM互換マシンや、類似の他の仮想マシンを用いることも可能である。
さらに、ストレージインターフェースとしてATAを用いたが、SCSIなど他の汎用的なストレージインターフェースを用いてもよい。
また、ストレージインターフェースを用いたが、USB、IEEE1394などのストレージ用のプロトコルセットを備えた汎用的なインターフェースを用いてもよい。
また、映像記録装置とUM間では、プロセス間通信コミュニケータを用いてプロセス間通信を用いたが、プログラム間通信コミュニケータを用いてプログラム間通信を用いてもよい。つまり、映像記録装置上のプログラム間通信手段をストレージインターフェースに変換および逆変換する通信コミュニケータAと、ユビキタス映像モジュールユニット上のプログラム間通信手段をストレージインターフェースに変換および逆変換する通信コミュニケータBとを備え、映像記録装置上のプログラムとUMU上のプログラムがプログラム間通信を行うようにしてもよい。
さらに、この実施の形態では、UMUとストレージ機器とを別構成にしたが、一体形状で構成してもよい。
以上説明した本実施の形態におけるUM、UMU、各装置は以下のような効果を奏する。
この実施の形態によるUMUは、複数のハードウェアエンジンとCPUの分散実行機能をサポートするOSが組込まれているので、映像情報装置に要求される仕様・機能が変わっても、容易、かつフレキシブルに機能変更・拡張が行え、新たな映像情報装置を開発するための開発費用ならびに開発期間を低減することができる。
また、この実施の形態によるUMUは、OSとCPUを含むハードウェア層の間に設けられ、ハードウェアの違いを吸収するHALおよび/または、OS上で動作する機能別のミドルウェア群および/または、仮想マシン上で動作するユーザインターフェースアプリケーションを作成するためのユーザインターフェースフレームワークおよび/または、ユーザインターフェースフレームワークおよび/または、ミドルウェア群を用いて作成した映像情報装置別アプリケーションを搭載するので、映像情報装置に要求される仕様・機能が変わっても、これらを適宜組み合わせることによって、容易、かつフレキシブルに機能変更・拡張が行え、新たな映像情報装置を開発するための開発費用ならびに開発期間を低減することができる。
また、この実施の形態によるUMUの複数のハードウェアエンジンは、ネットワーク環境との通信を行うためのコミュニケーションエンジンを含むので、映像情報装置を容易にネットワーク環境に接続することができる。
また、この実施の形態による映像情報システムは、UMと同一の機能を有するOSを組込み、映像情報装置に組み込まれたOSとUMに組み込まれたOSとを透過的に接続することによって、システムコールのレベルで映像情報装置からUMに対してアクセスを行うので、映像情報装置上のプログセムから特定のハードウェアデバイスをアクセスする際に、そのハードウェアデバイスが映像情報装置上にあるのか、UM上にあるのかを意識することなく、同一の手続きでアクセスを行うことができる。
また、この実施の形態による映像情報システムは、UMと同一の機能を有するOSを組込み、機能別のミドルウェア群を搭載し、または、映像情報装置は、UMと同一の機能を有する機能別のミドルウェア群を搭載し、映像情報装置に組み込まれたOSとUMに組み込まれたOSとを透過的に接続することおよび/または、映像情報装置に組み込まれたミドルウェアとUMに組み込まれたミドルウェアとを透過的に接続することによって、ミドルウェアのAPIレベルで映像情報装置からUMに対してアクセスを行うので、映像情報装置上のプログセムからミドルウェアを用いて特定の機能を使用する際に、その特定の機能が映像情報装置上にあるのか、UM上にあるのかを意識することなく、同一の手続きで使用することができる。
また、この実施の形態による映像情報システムは、UMと同一の機能を実現する仮想マシン上で動作するユーザインターフェースアプリケーションを作成するためのユーザインターフェースフレームワークを搭載し、UMと同一の機能を有する機能別のミドルウェア群および/または、UMと同一の機能を有するOSおよび/または、を搭載し、ユーザインターフェースフレームワークおよび/または、ミドルウェア群を用いて作成した映像情報装置別アプリケーションを搭載し、映像情報装置に組み込まれたOSとUMに組み込まれたOSとを透過的に接続することおよび/または、映像情報装置に組み込まれたミドルウェアとUMに組み込まれたミドルウェアとを透過的に接続することおよび/または、映像情報装置に組み込まれた仮想マシンおよびユーザインターフェースフレームワークとUMに組み込まれた仮想マシンおよびユーザインターフェースフレームワークとを透過的に接続することによって、アプリケーション作成データのレベルで映像情報装置およびUMの相違を考慮することなくアプリケーションの作成を行うので、映像情報装置上でユーザインターフェースアプリケーションを作成する際に、そのアプリケーションが実行されるハードウェアの構成を意識することなく作成することができる。
さらに、映像情報装置のUMのソフトウェア構造を合わせることにより、UM側で実現している機能を将来的に映像情報装置側に移植する際に、その作業を容易に行える。
また、この実施の形態による映像情報システムは、機能別のミドルウェア群として、撮像および表示処理を行うミドルウェアおよび/または、IPv6に対応したインターネット通信プロトコル処理を行うミドルウェアおよび/または、ユニバーサルプラグアンドプレイ処理を行うミドルウェアおよび/または、MPEG2/MPEG4/MPEG7/MPEG21規格に準拠した映像配信および蓄積処理を行うミドルウェアとから構成するので、映像情報装置にUMを付加することによって、撮像・表示、ネットワーク接続、映像の配信・蓄積機能を容易に追加することが可能となる。
また、この発明による映像情報システムは、システムの種類に応じて、アプリケーションおよびHALを選択的に使用するので、UMのハードウェア構成を変更することなく、異なる用途の映像情報装置を構成することができる。
実施の形態2.
本実施の形態では、UM12を携帯電話に適用した例について説明する。
第22図は第45図で説明した従来の携帯電話装置に、UMU43を適用した携帯電話のシステム構成図である。第22図のモバイル・アプリケーション・ユニット219は、第45図のモバイル・アプリケーション・ユニット219と同じものであるが、まず基本的構成について、再度、説明する。
図示しない携帯電話の無線網からアンテナ218を介して入力されたデータは、ベースバンド部217により信号処理され、通信ヘッダ情報が取り除かれ、再構築される。さらにモバイル・アプリケーション・ユニット219で、表示装置211に表示可能な信号形態にまで変換され表示ユニット211へ出力される。無論、音声の入出力に関する構成ブロックもあるがここでは図示を省略し、以下の説明も映像情報の処理を主に説明する。
モバイル・アプリケーション・ユニット219は、システムLSI208と、システムLSI208のFP207と、システムLSI208のBP209と、V−I/F210で構成される。
モバイル・アプリケーション・ユニット219に入力されたデータは、CPU201のソフトウェア、VSP202のハードウェアにより、デコード、リサイズ等され、V−I/F210からUVI44に出力される。なお、UVI44はUMU42のビデオ(映像)入力端子であり、モバイル・アプリケーション・ユニット219の映像出力端子であるV−I/F210と接続可能なインターフェースを形成している。UVI44から入力されたデータはUMU43内の各エンジンにより処理され、UVO45から表示ユニット212に入力され表示される。なお、UVO45は、UM43の映像出力信号端子であり、表示ユニット211の入力インターフェースと接続される。
また、外部に接続されたカメラ・ユニット215からモバイル・アプリケーション・ユニット206に入力されたデータは、カメラ・エンジン216にてデータ処理され、第1のCPU201、VSP202にて画像データとして再構築された後、さらにUM43にて処理され、表示ユニット211にて表示される場合や、さらに圧縮処理されフラッシュメモリ等の不揮発メモリに保存される場合や、さらに多重化処理され、ベースバンド部217より図示しない無線網へ送信される場合がある。
モバイル・アプリケーション・ユニット219は、本発明に言うところの、インターネットに接続可能な携帯電話網に接続してデータ通信を行う通信手段である。
このデータ通信のデータには映像情報が含まれる。
携帯電話に装着されたカメラ・ユニット215を高画素化した場合、処理データが増大し、カメラ・エンジン216が対応できなくなる場合がある。第22図の構成では、UMU43を適用するので、より高性能なUM12に搭載されたカメラ・エンジン22をカメラ・ユニット215の制御に利用できる。UMU43は、携帯電話専用に開発されるものではなく、第1図の各機器、例えば監視カメラ8やDVDレコーダ7でも使用できるよう、十分な性能のカメラ・エンジンを備えており、カメラ・ユニットの変更に伴い、専用のLSIを再設計することなく、モバイル・アプリケーション・ユニットの高画素化を果たすことができる。
このように、本実施の形態で説明したUMによれば、携帯電話装置を含むモバイルアプリケーションユニットにおいて、システムLSIを新規に開発することなく、ネットワークの機能拡張や変更が実現できるため、開発費削減ならびに開発期間の短縮によるビジネスチャンス喪失の低減を図れる効果を有する。
また、UMを挿抜可能な形状とした場合、ネットワークに関する必要な最新の機能を載せたユビキタス映情モジュールに取り替えることにより、様々な機器で汎用的に用いることが可能で、開発費、マスボリューム増加による量産効果が図りやすいという効果を有する。
さらに、UMのインターフェースを汎用的に作ることにより、モバイルアプリケーションユニットの機能・回路を変更する必要が無いため、ソフト開発費の低減・信頼性の向上などの効果を有する。
さらに、既存開発製品に対してUMを付加する事で、ソフトウェアを大幅に変更することなく高機能化、新機能の追加を実現できる効果を有する。
実施の形態3.
本実施の形態では、上記実施の形態で説明した映像情報装置とUMUの間の接続について、さらに詳細に説明する。
第23図は、S−I/F31およびU−I/F32をそれぞれIEEE1394シリアルバスのI/Fとして用い、映像情報装置とUMUの間をIEEE1394ネットワークで接続する場合の構成例である。すなわち、映像情報装置40aのIEEE1394I/F250と、UMU42のIEEE1394I/F251を介して、両装置が接続されている。IEEE1394ネットワークでは一つのネットワークにおいて複数機器の接続が可能である。したがって、図に示すように、映像情報装置40aの他、映像情報装置40b等、複数の映像情報装置が接続される場合もある。なお、第23図では接続線が分岐して表記されているが、実際の各装置間の接続は、IEEE1394に従ったトポロジーで接続される。
UMU42は、イーサネット(登録商標)などの有線LANインターフェース46を介してInternet Protocolネットワーク(以降、「IPネットワーク」と記す。)に接続されている。なお、有線LANの他に、IEEE802.11a/b/gなどの無線LANを用いても良い。IPネットワークにはUPnPのControl Point機能を有したUPnP Control Point(以降、「UPnPコントロールポイント」と記す。)310が接続されている。なお、UPnPのControl Point機能とは、IPネットワークに接続されている他のUPnPデバイスをコントロールする機能を指す。実際には、パーソナルコンピュータ等にUPnPコントロールポイントをインストールして、デバイスの操作を行わせる。本実施の形態における接続形態を模式的に示したものが第24図である。図において、UMUは、IPネットワークとIEEE1394ネットワーク間を接続するためのデリゲーションサーバとして動作する。また、IPネットワーク上のUPnPコントロールポイントは、IEEE1394ネットワーク上にあるUPnPの機能を有さないIEEE1394機器を操作する。すなわち、本実施の形態では、IPネットワーク上のUPnPコントロールポイントが、デリゲーションサーバとして動作するUMUを介して、UPnPの機能を有さないIEEE1394ネットワーク上の映像情報装置を操作する方法について説明する。
なお、IPネットワークが第1図のネットワーク1に相当する。したがって、以下では、IPネットワークを第1のネットワーク、IEEE1394ネットワークを第2のネットワークと記す場合がある。
<UPnPコントロールポイントとデバイスの動作>
ところで、まず、UPnPの規格に定められたUPnPコントロールポイントとデバイスの動作について説明する。最初に、UPnPの規格に定められたUPnPコントロールポイントとデバイスの一般的な動作ステップについて説明する。UPnPの規格には、第25図に示すように、IPアドレスの取得であるアドレッシング、UPnPコントロールポイントがデバイスを検出、認識するディスカバリ、デバイスに関する情報を取得するディスクリプション、デバイスを制御するコントロール、デバイスの状態変化を検出するイベンティング、Webブラウザを用いてデバイスの操作、設定を行うプレゼンテーションの、合計6種類の動作ステップが定められている。以下、各動作ステップにおける詳細について説明する。
UPnPにおける最初のステップであるアドレッシングS301は、IPネットワークに参加したデバイスが自動的にIPアドレスを取得するステップである。アドレッシングS301のプロトコルには、基本的に、Dynamic Host Configuration Protocol(以降、「DHCP」と記す。)が使用される。なお、IPネットワークがDHCPに対応していない場合は、AutoIPを用いてもよい。
アドレッシングS301によるIPアドレス取得の終了後、次のステップであるディスカバリS302に進む。ディスカバリS302は、UPnPコントロールポイントがIPネットワーク上のデバイスを検出、認識するステップである。ディスカバリS302には、IPネットワークに新規に追加されたデバイスがUPnPコントロールポイントに対してアドバタイズを行うアドバタイズ動作と、IPネットワークに新規に追加されたUPnPコントロールポイントがデバイスを検索するために行うサーチ動作の2種類がある。前者の動作内容は、追加されたデバイスがアドバタイズのためのアドバタイズメッセージをマルチキャストするものである。後者の動作内容は、UPnPコントロールポイントがサーチのためのサーチメッセージをマルチキャストして、該当するデバイスがUPnPコントロールポイントに対してサーチレスポンスメッセージを返信するものである。なお、どちらの動作にも、プロトコルとしてSimple Service Discovery Protocol(以降、「SSDP」と記す。)が用いられる。
ディスカバリS302によりUPnPコントロールポイントがデバイスを認識した後、次のステップであるディスクリプションS303に進む。ディスクリプションS303は、UPnPコントロールポイントがデバイスに関する詳細な情報を取得するためのステップである。UPnPコントロールポイントは、アドバタイズメッセージもしくはサーチレスポンスメッセージに記述されているURLにより、各デバイスの情報を得ることができる。なお、アドバタイズメッセージもしくはサーチレスポンスメッセージのURLを参照することにより、モデル名、シリアル番号、製造元名、サービス情報等が記載されているデバイスディスクリプションを取得することが可能となる。
ディスクリプションS303の動作ステップが完了した時点で、UPnPコントロールポイントは、制御、操作の対象となるデバイスが有するサービスの内容を知ることになる。
コントロールS304は、実際にUPnPコントロールポイントがデバイスを制御する動作ステップである。UPnPコントロールポイントはサービスディスクリプションに記載されているコマンド、アクション、サービス、各アクションのパラメータや引数のリストを元に、デバイスに対しアクション要求を含んだメッセージを送信する。なお、アクション要求を含んだメッセージの送信のプロトコルとして、SOAPを用いる。すなわち、UPnPコントロールポイントは、SOAPを使用して、XML形式にて記述された制御コマンドをデバイスに送信する。デバイスはアクションとして要求されたサービスを行い、アクションを実行した結果をUPnPコントロールポイントに返信する。
イベンティングS305は、UPnPコントロールポイントがデバイスの状態変化を検知する動作ステップである。デバイスは、自身が保有するサービスの状態変数が変化した場合、サブスクライブしているUPnPコントロールポイントに対して状態変化を通知する。状態変化を含んだメッセージのプロトコルには、Generic Event Nortification Architecture(以降、「GENA」と記す。)が使用され、メッセージ自身はXML形式で記述される。
プレゼンテーションS306は、Webブラウザを用いてデバイスの操作、設定を行う動作ステップである。操作、設定対象のデバイスがHTML形式に対応したユーザインタフェース機能を有している場合、デバイスディスクリプションに記述されているプレゼンテーションURLにアクセスすることにより、Webブラウザを用いてプレゼンテーション画面を表示することが可能となる。そして、そのプレゼンテーション画面を用いてユーザがデバイスの操作を行うことが可能となる。
以上では、UPnPの規格に定められたUPnPコントロールポイントとデバイスの一般的な動作である。
<AV機器の構成、動作>
次に、以下では、特に、UPnPの規格に定められたAV機器の構成、動作について説明する。
UPnPの規格では、各デバイス・タイプごとに、実装すべきインターフェイスや機能をDevice Control Protocol(以降、「DCP」と記す。)として定めている。AV機器のDCPは、Media Server、およびMedia Rendererである。
UPnP AVアーキテクチャを第26図に示す。UPnP AVアーキテクチャは、図に示すように、UPnPコントロールポイント310が、Media Server(以降、「メディア・サーバ」と記す。)311とMedia Renderer(以降、「メディア・レンダラ」と記す。)312を制御するモデルである。
メディア・サーバ311は、コンテンツを蓄積し、蓄積したコンテンツを検索し、検索条件に適合するコンテンツをメディア・レンダラ312に送り出すデバイスであり、主にコンテンツの保管、ストリーミングの送り出しを行う機能を含むデバイスである。例えば、VTRや、DVDプレイヤ等の再生装置が、メディア・サーバ311として想定され得る。メディア・サーバ311は、Content Directory Service(以降、「コンテンツ・ディレクトリ・サービス」と記す。また図中では「CDS」と記す。)313、Connection Manager(以降、「コネクション・マネージャ」と記す。また図中では「CM」と記す。)314、AV Transport(以降、「AVトランスポート」と記す。また図中では「AVT」と記す。)315の各サービスを含む。
メディア・レンダラ312は、IPネットワークから入手したコンテンツを再生するために使用されるデバイスであり、主に、映像の表示、音声の出力等のコンテンツの再生、およびストリーミングの受信を行う機能を含むデバイスである。例えば、MPEG形式のファイルを表示する映像表示装置等が、メディア・レンダラ312として想定され得る。メディア・レンダラ312は、Rendering Control(以降、「レンダリング・コントロール」と記す。)316、コネクション・マネージャ314,AVトランスポート315の各サービスを含む。
コンテンツ・ディレクトリ313は、メディア・サーバ311を含んだ機器から供給されるコンテンツをUPnPコントロールポイント310が列挙できるようなアクションセットを提供するサービスである。したがって、UPnPコントロールポイント310は、コンテンツ・ディレクトリ313を使用することにより、コンテンツ階層の閲覧、および属性検索の実行、並びに、タイトル、作者、URL等属性のコンテンツのメタデータの入手、並びに、コンテンツの作成、削除などのコンテンツの操作等が可能となる。
コネクション・マネージャ314は、特定のデバイスに関連したコネクションを管理するアクションセットを提供するサービスである。したがって、UPnPコントロールポイント310は、コネクション・マネージャ314を使用することより、ストリーミングのプロトコルやデータフォーマットの列挙、及び、現在のコネクション状況の列挙が可能となる。
レンダリング・コントロール316は、レンダラ(メディア・レンダラ312デバイスを含んだ機器)がコンテンツをどのように再生するかを、UPnPコントロールポイント310が制御できるようにするためのアクションセットを提供するサービスである。したがって、UPnPコントロールポイント310は、レンダリング・コントロール316を使用することで、ビデオ映像の輝度、コントラスト、音声の音量、ミュート等の制御が可能となる。
AVトランスポート315は、UPnPコントロールポイント310によるコンテンツのプレイバック制御を可能にするアクションセットを提供するサービスである。したがって、UPnPコントロールポイント310は、AVトランスポート315を使用することで、コンテンツの再生、停止、シーク等の再生制御が可能となる。
次に、UPnP AVアーキテクチャにおける、コンテンツの一般的な再生フローを第27図に示す。以下、各ステップの詳細について説明する。
最初のステップであるデバイスの発見S310は、IPネットワーク上のデバイスの発見を行うステップである。このデバイスの発見S310は、UPnPの動作ステップであるディスカバリS302とディスクリプションS303により行われる。デバイスの発見S310の完了後、UPnPコントロールポイント310は、メディア・サーバ311とメディア・レンダラ312を認識し、制御することが可能となる。
実際のコンテンツの再生における最初のステップは、コンテンツの検索S310である。コンテンツの検索S310は、UPnPコントロールポイント310が、メディア・サーバ311のコンテンツ・ディレクトリ313を使用して、コンテンツの検索を行うステップである。すなわち、UPnPコントロールポイント310がメディア・サーバ311に対し、SOAPを用いて「Browse」、又は「Search」アクション要求を含んだメッセージを送信する。その回答として、メディア・サーバ311はUPnPコントロールポイント310に対し、コンテンツの階層構造、転送プロトコルデータ、データフォーマットを含んだ情報を返信する。UPnPコントロールポイント310が回答を受信した後、次のステップであるプロトコルデータ・フォーマットチェックS312に進む。
プロトコルデータ・フォーマットチェックS312は、UPnPコントロールポイント310が、メディア・レンダラ312のコネクション・マネージャ314を使用して、メディア・レンダラ312がサポートしているコンテンツの転送プロトコルとフォーマットの情報を入手するステップである。すなわち、UPnPコントロールポイント310がメディア・レンダラ312に対し、SOAPを用いて「GetProtocolInfo」アクション要求を含んだメッセージを送信する。その回答として、メディア・レンダラ312がUPnPコントロールポイント310に対し、サポートしているコンテンツの転送プロトコルデータとデータフォーマットのリストを含んだ情報を返信する。
UPnPコントロールポイント310が回答を受信した後、UPnPコントロールポイント310は、プロトコルデータ・フォーマットチェックS312にて得た情報と、コンテンツの検索S311で得た情報をもとに、転送プロトコルデータとデータフォーマットを比較する。そして、比較結果から、適合する転送プロトコルデータとデータフォーマットを決定する。メディア・サーバ311にあるコンテンツの転送プロトコルデータ及びデータフォーマットと、メディア・レンダラ312がサポートするコンテンツの転送プロトコルデータ及びデータフォーマットが適合する場合、そのコンテンツはメディア・レンダラ312にて再生可能である。その後、次のステップであるサーバ、レンダラの準備S313に進む。
サーバ、レンダラの準備S313は、UPnPコントロールポイント310が、コネクション・マネージャ314を使用して、メディア・サーバ311とメディア・レンダラ312に対し、プロトコルデータ・フォーマットチェックS312にて決定した転送プロトコルデータとデータフォーマットによるコネクションが生成されることを通知するステップである。すなわち、UPnPコントロールポイント310が、メディア・サーバ311に対し、SOAPを用いて「PrepareForConnection」アクションを含んだメッセージを送信する。その回答として、メディア・サーバ311がUPnPコントロールポイント310に対し、「AV Transport InstanceID」を返信する。また、UPnPコントロールポイント310は、メディア・レンダラ312に対しても、SOAPを用いて「PrepareForConnection」アクションを含んだメッセージを送信する。そして、その回答として、メディア・レンダラ312がUPnPコントロールポイント310に対し、「AV Transport InstanceID」、または、「Rendering Control InstanceID」を返信する。UPnPコントロールポイント310が回答を受信した後、次のステップである、コンテンツの選択S314に進む。
コンテンツの選択S314は、UPnPコントロールポイント310が、AVトランスポート315サービスを使用して、メディア・サーバ311とメディア・レンダラ312に対し、ユーザの選択により転送されるコンテンツの情報を通知するステップである。すなわち、UPnPコントロールポイント310がメディア・サーバ311に対し、SOAPを用いて「SetAVTransportURI」アクションを含んだのメッセージを送信する。同様に、メディア・レンダラ312に対しても、SOAPを用いた「SetAVTransportURI」アクションのメッセージが送信される。この後、実際にコンテンツの再生制御を行うステップである再生S315に進む。
再生S315は、UPnPコントロールポイント310は、AVトランスポート315サービスを使用して、メディア・サーバ311とメディア・レンダラ312に対し、SOAPを用いて「Play」、「Stop」、「seek」等、実際の再生制御の指令を行うステップである。すなわち、UPnPコントロールポイント310がメディア・サーバ311とメディア・レンダラ312に対し、例えば「Play」アクションのメッセージを送信すると、コンテンツの再生が開始される。また、コンテンツの再生を中止したい場合は、メディア・サーバ311とメディア・レンダラ312に対し「Stop」アクションを送信する。
音量・画質調整S316は、UPnPコントロールポイント310が、レンダリング・コントロール316サービスを使用して、コンテンツの再生中にレンダラの音量調整や画質調整を行うステップである。例えば音量調整を行う場合は、UPnPコントロールポイント310がメディア・レンダラ312に対し、「SetVolume」アクションのメッセージを送信する。その結果、音量が変更される。コンテンツの転送が最終的に完了した後、次のステップである、転送完了S317に進む。
転送完了S317は、UPnPコントロールポイント310が、コネクション・マネージャ314を使用して、UPnPコントロールポイント310とメディア・サーバ311の間のコネクション、及びUPnPコントロールポイント310とメディア・レンダラ312の間のコネクションの終了処理を行うステップである。すなわち、UPnPコントロールポイント310がメディア・レンダラ312に対し、SOAPを用いて「ConnectionComplete」アクションを含んだメッセージを送信し、その回答を受信する。同様に、メディア・サーバ311に対して、「ConnectionComplete」アクションを含んだメッセージを送信し、その回答を受信する。以上のステップを経て、一連のコンテンツの再生が完了する。
以上が、UPnP AVアーキテクチャにおける、UPnPコントロールポイントとデバイスの動作である。
<UPnPコントロールポイントによる映像情報装置の操作>
次に、第23図に示したような、IPネットワーク上のUPnPコントロールポイント310が、デリゲーションサーバとして動作するUMU42を介して、UPnPの機能を有さないIEEE1394ネットワーク上の映像情報装置40aを実際に操作する方法について説明する。
まず、UMUのソフトウェア構成について説明する。第28図は、UMU42内のソフトウェア構成を示した図である。
UPnPスタック321は、UPnPプロトコルの処理を行うソフトウェア群であり、例えば、標準的なHTTPのGETリクエストを取り扱うHTTPサーバ、HTTPメッセージのヘッダを解釈するためのHTTPパーサ、XMLパーサ、SOAP、GENA,SSDPのプロトコルを扱うモジュール群等から構成される。すなわち、UPnPスタック321は、UPnPプロトコルによる通信の処理を行う。
IEEE1394スタック322は、IEEE1394のトランザクションや、Function Control Protocol(以降、「FCP」と記す。)などのAVプロトコル、AV/CコマンドなどのIEEE1394関連プロトコルを扱うためのソフトウェア群である。すなわち、IEEE1394スタック322は、IEEE1394プロトコルによる通信の処理を行う。
デリゲーションマネージャ326は、例えば映像情報装置40aのようなIEEE1394機器がIEEE1394ネットワークに接続された場合、そのIEEE1394機器の情報を基にUPnPエミュレーション処理325を起動したり、また、IEEE1394機器がネットワークから切断された場合に、そのIEEE1394機器に対応して起動したUPnPエミュレーション処理325を終了させる等の機能を有するソフトウェアである。
UPnPエミュレーション処理325は、IEEE1394ネットワークに接続されている個々のIEEE1394機器に対応して、それぞれ独立したプロセスとしてデリゲーションマネージャ326から起動されるソフトウェアである。すなわち、IEEE1394機器を1つのUPnPデバイスとして振舞わせるために、UPnPの各ステップをデバイスの代わりに実行する機能を有する。したがって、UPnPエミュレーション処理325は、IEEE1394ネットワークに接続されているIEEE1394機器に対応するプロセスとして起動される。そして、UPnPエミュレーション処理325が起動される数は、IEEE1394ネットワークに接続されているIEEE1394機器の数と同じである。
IEEE1394バス制御処理は、IEEE1394機器の状態を監視する機能を有するソフトウェアであり、デリゲーションマネージャ326に対するIEEE1394機器の接続切断の情報の通知の他、IEEE1394機器から受信したAV/CコマンドデータのUPnPエミュレーション処理325への引き渡し、UPnPエミュレーション処理325から受け取ったAV/CコマンドデータのIEEE1394機器への送信等を行う。
IPアドレスマネージャ323は、UPnPエミュレーション処理325によりエミュレートされている各IEEE1394機器に対し、IPアドレスを割り付けるための機能を有するソフトウェアである。
次に、上記実施の形態4で説明したUPnPの各動作ステップにおける、UMU42内のソフトウェアの動作について説明する。
最初に、アドレッシングS301におけるソフトウェアの動作について説明する。このステップは、IEEE1394ネットワークに新たに追加されたIEEE1394機器を仮想的にIPネットワーク上のデバイスとみなし、DHCPサーバから与えられたIPアドレスを付与するステップである。
第29図は、アドレッシングS301における、UMU内のソフトウェアの動作のシーケンスを示した図である。まず、ステップS320にて、IEEE1394機器327の電源のON、または、新たなIEEE1394機器327のIEEE1394ネットワークへの接続により、バスリセットが発生する。IEEE1394スタック322を介しバスリセットを検出したIEEE1394バス制御処理324は、ステップS321にて、デリゲーションマネージャ326に対し、IEEE1394機器327が新たにネットワークに接続されたことを知らせる接続通知を行う。接続通知を受けたデリゲーションマネージャ326は、ステップS322にて、新たに接続されたIEEE1394機器327に対応するUPnPエミュレーション処理325を起動する。ステップS322にて起動されたUPnPエミュレーション処理325は、以降の全てのUPnPステップにおいて、常に、接続通知の発端となったIEEE1394機器に対応して動作する。すなわち、IEEE1394ネットワークに複数台のIEEE1394機器が接続された場合は、各IEEE1394機器毎に、各IEEE1394機器327に1対1にて対応するUPnPエミュレーション処理325が起動されることとなる。次に、起動されたUPnPエミュレーション処理325は、ステップS323にて、IPアドレスマネージャ323に対してIPアドレス取得要求を行う。IPアドレスマネージャ323は、IEEE1394機器327に対して仮想的に割り当てるIPアドレスをDHCPサーバに要求し、その結果付与されたIPアドレスをステップS324にて、UPnPエミュレーション処理325に対して通知する。なお、アドレッシングS301の手段として、DHCP以外にもAutoIPを用いてもよい。
次に、ディスカバリS302におけるソフトウェアの動作について説明する。このステップは、UPnPコントロールポイントがUPnPエミュレーション処理を介し、IEEE1394機器を検出、認識するステップである。
第30図は、新たに追加されたデバイスがUPnPコントロールポイント310に対しアドバタイズ動作を行う場合の、ディスカバリS302におけるUMU内のソフトウェアの動作のシーケンスを示したものである。なお、第30図では、IPネットワーク上に2台のUPnPコントロールポイント310a、310bが存在する場合を示している。まず、ステップS330において、IEEE1394機器327に対応し、すでに起動されているUPnPエミュレーション処理325が、SSDPを使用して、アドバタイズメッセージをマルチキャストする。UPnPコントロールポイントA310aと、UPnPコントロールポイントB310bは、このメッセージを受信した後、UPnPエミュレーション処理325をUPnPのデバイスとして認識する。すなわち、UPnPコントロールポイントA310aと、UPnPコントロールポイントB310bは、UPnPエミュレーション処理325を介し、IEEE1394機器327を認識することとなる。
第31図は、新たに追加されたコントロールポイントがデバイスを検索するためのサーチ動作を行う場合の、ディスカバリS302におけるUMU内のソフトウェアの動作のシーケンスを示したものである。なお、第31図では、IEEE1394ネットワーク上に2台のIEEE1394機器327a、327bが存在する場合を示している。まず、ステップS340において、UPnPコントロールポイント310が、SSDPを用いて、IPネットワーク上にサーチメッセージをマルチキャストする。このメッセージを受信した、IEEE1394機器327aに対応したUPnPエミュレーション処理325aと、IEEE1394機器327bに対応したUPnPエミュレーション処理325bは、自身に対応するIEEE1394機器が、サーチメッセージの条件に示されているサービス、またはデバイスに相当する機能を有しているか否かを検出し、その機能を有している場合は、ステップS341において、レスポンスメッセージをUPnPコントロールポイント310に対し送信する。図では、UPnPエミュレーション処理325bに対応したIEEE1394機器327bが、サーチメッセージの条件に示されているサービス、またはデバイスに相当する機能を有している場合を示している。レスポンスメッセージを受信したUPnPコントロールポイント310は、UPnPエミュレーション処理325を介し、IEEE1394機器327bを、自身がサーチした条件に適合するデバイスとして認識する。
次に、ディスクリプションS303におけるソフトウェアの動作について説明する。このステップは、UPnPコントロールポイントがUPnPエミュレーション処理を介し、IEEE1394機器に関する詳細な情報を取得するステップである。
第32図は、ディスクリプションS303におけるUMU内のソフトウェアの動作のシーケンスを示した図である。まず、UPnPコントロールポイント310は、ステップS350において、アドバタイズメッセージ、またはサーチレスポンスメッセージに記述されているURLを用いて、IEEE1394機器327に対応したUPnPエミュレーション処理325に対し、デバイスディスクリプションの要求を行う。なお、ステップS350に用いられるプロトコルはHTTPである。次に、UPnPエミュレーション処理325は、IEEE1394機器327に関するデバイス情報を、XML形式にてデバイスディスクリプションとして作成し、ステップS351にてUPnPコントロールポイント310に送信する。ステップS351におけるデバイスディスクリプションのサービスリストに、サービスディスクリプションを取得するためのURLが記載されている場合、さらに、UPnPコントロールポイント310は、ステップS352において、UPnPエミュレーション処理325に対し、サービスディスクリプションの要求を行う。UPnPエミュレーション処理325は、ステップS352のサービスディスクリプションの要求に対し、IEEE1394機器327に関するサービス情報をXML形式にてサービスディスクリプションとして作成し、ステップS351にてUPnPコントロールポイント310に送信する。なお、S350のデバイスディスクリプションの要求、S351のデバイスディスクリプションの送信は、UPnPエミュレーション処理325に対応するIEEE1394機器327が有するデバイスの回数行われる。同様に、S352のサービスディスクリプションの要求、S353のサービスディスクリプションの送信は、UPnPエミュレーション処理325に対応するIEEE1394機器327が有するサービスの回数行われる。このステップにより、UPnPコントロールポイントはUPnPエミュレーション処理を介し、IEEE1394機器の有するサービス、デバイスを認識することとなる。
次に、コントロールS303におけるソフトウェアの動作について説明する。このステップは、UPnPコントロールポイントがUPnPエミュレーション処理を介し、IEEE1394機器を制御するステップである。
第33図は、コントロールS303におけるUMU内のソフトウェアの動作のシーケンスを示したものである。まず、ステップS360にて、UPnPコントロールポイント310は、SOAPを用いて、UPnPエミュレーション処理325に対しアクション要求を行う。UPnPエミュレーション処理325は、受信したUPnPのアクション要求を、そのアクション要求に対応するAV/Cコマンドに変換し、ステップS361にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS362にて、IEEE1394機器327に対しAV/Cコマンドを送信する。IEEE1394機器327は受信したAV/Cコマンドに従った動作を行う。動作終了後、IEEE1394機器327は、ステップS363にてAV/CレスポンスをIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS364にて、受信したAV/Cレスポンスを、レスポンスの送信元であるIEEE1394機器327に対応するUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、AV/CレスポンスをUPnPのアクションレスポンスに変換した後、SOAPを用いてステップS365にてUPnPコントロールポイント310に送信する。UPnPコントロールポイント310は、アクションレスポンスの受信により、自身が発行したアクション要求が実行されたことを認識する。
次に、イベンティングS305におけるソフトウェアの動作について説明する。このステップは、UPnPコントロールポイントがUPnPエミュレーション処理を介し、IEEE1394機器の状態変化を検知するステップである。
第34図は、UPnPコントロールポイント310がUPnPデバイスに対し状態変化通知を要求するサブスクライブ動作を行う場合の、イベンティングS305のUMU内のソフトウェアの動作のシーケンスを示したものである。まず、UPnPコントロールポイント310は、ステップS370において、GENAを用い、UPnPエミュレーション処理325に対しサブスクライブ要求を行う。UPnPエミュレーション処理325は、サブスクライブ要求に応じ、UPnPコントロールポイント310を購読者リストに追加した後、ステップS371においてサブスクライブレスポンスをUPnPコントロールポイント310に対して返信する。この後、UPnPエミュレーション処理325は、ステップS372にて、IEEE1394バス制御処理324に対し、状態変化を知らせることを要求するためのAV/Cコマンド「Nortify」を送信する。IEEE1394バス制御処理324は、IEEE1394機器327に対し、ステップS373にてAV/Cコマンド「Nortity」を送信する。これにより、IEEE1394機器の状態変化があった場合、UPnPコントロールポイントがUPnPエミュレーション処理を介し、その状態変化を検知することが可能となる。さらに、UPnPエミュレーション処理325は、IEEE1394バス制御処理324に対し、現在の状態を問い合わせるAV/Cコマンド「Status」をステップS374にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS375にて、IEEE1394機器327に対し、AV/Cコマンド「Status」を送信する。IEEE1394機器327はAV/Cコマンド「Status」に応じて、現在の状態をAV/Cレスポンス「Status」として、ステップS376にて、IEEE1394バス制御処理324に対して送信する。IEEE1394バス制御処理324は、受信したAV/Cレスポンス「Status」を、ステップS377にてレスポンスの送信元であるIEEE1394機器327に対応したUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、AV/Cレスポンス「Status」をUPnPのイニシャルイベントに変換し、GENAを用いてステップS378にてUPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310は、UPnPエミュレーション処理325を介し、サブスクライブ要求を行ったIEEE1394機器327の初期状態を知ることが可能となる。
第35図は、IEEE1394機器327に状態変数の変化が発生した場合におけるソフトウエアの動作のシーケンスを示したものである。まず、AV/Cコマンド「Nortify」を受け付けているIEEE1394機器327に状態変数の変化が発生した場合、IEEE1394機器327はステップS380にて、AV/Cレスポンス「Nortify」を、IEEE1394バス制御処理324に対して送信する。IEEE1394バス制御処理324は、受信したAV/Cレスポンス「Nortify」を、ステップS381にてレスポンスの送信元であるIEEE1394機器327に対応したUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、自身がエミュレートしているIEEE1394機器327の次の状態変数の変化に備えて、ステップS382にて、IEEE1394バス制御処理324に再度AV/Cコマンド「Nortify」を送信する。IEEE1394バス制御処理324は、IEEE1394機器327に対し、ステップS383にて、AV/Cコマンド「Nortity」を送信する。その後、UPnPエミュレーション処理325は、IEEE1394バス制御処理324に対し、IEEE1394機器327の現在の状態を問い合わせるAV/Cコマンド「Status」をステップS384にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS385にて、IEEE1394機器327に対し、AV/Cコマンド「Status」を送信する。IEEE1394機器327は、AV/Cコマンド「Status」に応じて、現在の状態をAV/Cレスポンス「Status」として、ステップS386にて、IEEE1394バス制御処理324に対して送信する。IEEE1394バス制御処理324は、受信したAV/Cレスポンス「Status」を、ステップS387にてレスポンスの送信元であるIEEE1394機器327に対応したUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、AV/Cレスポンス「Status」をUPnPのイベントメッセージ「NORTIFY」に変換し、GENAを用いてステップS388にてUPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310は、UPnPエミュレーション処理325を介し、サブスクライブ要求を行ったIEEE1394機器327の状態変化を知ることが可能となる。
<UMU内のソフトウェアの動作>
次に、第27図に示したコンテンツの再生フローの各ステップにおける、第26図に示したUMU42内のソフトウェアの実際の動作について説明する。
最初に、コンテンツの検索S311におけるソフトウェアの動作について説明する。第37図は、コンテンツの検索S311におけるソフトウェアの動作のシーケンスを示した図である。まず、ステップS400にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「Browse」、または「Serach」アクション要求を含んだメッセージを送信する。IEEE1394機器に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用い、UPnPのサービスである「Browse」、または「Serach」アクションをAV/Cコマンドの「READ DESCRIPTOR」に変換し、ステップS401にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS402にて、IEEE1394スタックを介し、IEEE1394機器327にAV/Cコマンド「READ DESCRIPTOR」を送信する。このAV/Cコマンドを受信したIEEE1394機器327は、S403にて、IEEE1394スタックを介し、自身の有するコンテンツの階層構造、転送プロトコルデータ、データフォーマットの情報を含むAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS404にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S405にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。このステップにより、UPnPコントロールポイント310は、IEEE1394機器327の有するコンテンツの階層構造、転送プロトコルデータ、データフォーマットの情報を認識する。なお、前述のAV/Cコマンド「READ DESCRIPTOR」の発行は、実際には「READ DESCRIPTOR」の前に「OPEN DESCRIPTOR]」サブファンクション「READ OPEN」を実行し、「READ DESCRIPTOR」の後に、「OPEN DESCRIPTOR」サブファンクション「CLOSE」を発行する一連の手続きを必要とする。また必要な情報によっては「READ DESCRIPTOR」の代わりに「READ INFO BLOCK」コマンドを使用する場合や、それぞれの手続きの組み合わせを使用する場合もある。
次に、プロトコルデータ・フォーマットチェックS312におけるソフトウェアの動作について説明する。第38図は、プロトコルデータ・フォーマットチェックS312におけるソフトウェアの動作のシーケンスを示した図である。まず、ステップS410にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「GetProtocolInfo」アクション要求を含んだメッセージを送信する。IEEE1394機器に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用いUPnPのサービスである「GetProtocolInfo」アクションをAV/Cコマンドの「INPUT PLUG SIGNAL FORMAT」のstatusに変換し、ステップS411にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS412にて、IEEE1394スタックを介し、IEEE1394機器327にAV/Cコマンド「INPUT PLUG SIGNAL FORMAT」のstatusを送信する。このAV/Cコマンドを受信したIEEE1394機器327は、S413にて、IEEE1394スタックを介し、自身がサポートしている転送プロトコルデータ、データフォーマットの情報を含むAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS414にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S415にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310は、IEEE1394機器327のサポートしている転送プロトコルデータ、データフォーマットの情報を認識する。
次に、サーバ、レンダラの準備S313におけるソフトウェアの動作について説明する。第39図は、サーバ、レンダラの準備S313におけるソフトウェアの動作のシーケンスを示した図である。まず、ステップS420にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「PrepareForConnection」アクションを含んだメッセージを送信する。IEEE1394機器に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、S421にてIEEE1394バス制御処理324に対しコネクション要求を行う。IEEE1394バス制御処理324は、ステップS422にて、IEEE1394スタックを介し、IEEE1394機器327に対し、lockトランザクションによるプラグの設定要求を送信する。このlockトランザクションを受信したIEEE1394機器327は、物理的なコネクションを生成する。コネクションの生成後、S423にてlockトランザクションによるプラグの設定結果を、IEEE1394スタックを介し、IEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、コネクション完了回答をS424にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。コネクション完了回答を受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用いUPnPのサービスである「PrepareForConnection」アクションをAV/Cコマンドの「CONNECT AV」に変換し、ステップS425にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS426にて、IEEE1394スタックを介し、IEEE1394機器327に「CONNECT AV」を送信する。このAV/Cコマンドを受信したIEEE1394機器327は、実際に、自身と他のデバイスと間でデータの送受信が可能となるコネクション生成した後、IEEE1394スタックを介し、S427にて生成結果を含むAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS428にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S429にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。これにより、IEEE1394機器327に対してコンテンツを送受信することが可能となる。
次に、コンテンツの選択S314におけるソフトウェアの動作について説明する。第40図は、コンテンツの選択S314におけるソフトウェアの動作のシーケンスを示した図である。まず、次の再生S315にて再生するコンテンツをユーザが選択する。その後、ステップS430にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「SetTranportURI」アクション要求を含んだメッセージを送信する。IEEE1394機器に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用いUPnPのサービスである「SetTranportURI」アクションをAV/Cコマンドの「SET PLUG ASSOCIATION」に変換し、ステップS431にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS432にて、IEEE1394スタックを介し、IEEE1394機器327に「SET PLUG ASSOCIATION」を送信する。このAV/Cコマンドを受信したIEEE1394機器327は、S433にて、IEEE1394スタックを介し、選択されたコンテンツを含むAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS434にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S435にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310は、ユーザが選択したコンテンツを認識する。
次に、再生S315におけるソフトウェアの動作について説明する。第41図は、再生S315におけるソフトウェアの動作のシーケンスを示した図である。まず、ステップS440にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「Play」アクション要求を含んだメッセージを送信する。IEEE1394機器327に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用いUPnPのサービスである「Play」アクションをAV/Cコマンドの「PLAY」に変換し、ステップS441にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS442にて、IEEE1394スタックを介し、IEEE1394機器327にAV/Cコマンド「PLAY」を送信する。このAV/Cコマンドを受信したIEEE1394機器327は、コンテンツの再生を開始する。その後、S443にて、IEEE1394スタックを介し、コンテンツの再生を開始した情報を含んだAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS444にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S445にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310はIEEE1394機器327において、コンテンツの再生が開始されたことを認識することが可能となる。
次に、音量・画質調整S316におけるソフトウェアの動作について説明する。第42図は、音量・画質調整S316におけるソフトウェアの動作のシーケンスを示した図である。まず、ステップS450にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「SetVolume」アクション要求を含んだメッセージを送信する。IEEE1394機器327に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用いUPnPのサービスである「SetVolume」アクションをAV/Cコマンドの「FUNCTION BLOCK」に変換し、ステップS451にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS452にて、IEEE1394スタックを介し、IEEE1394機器327にAV/Cコマンド「FUNCTION BLOCK」を送信する。このAV/Cコマンドを受信したIEEE1394機器327は、音量の調整を行う。その後、S453にて、IEEE1394スタックを介し、調整した音量に関する情報を含んだAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS454にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S455にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310はIEEE1394機器327において、音量が調整されたことを認識することが可能となる。
最後に、転送完了S316におけるソフトウェアの動作について説明する。第43図は、転送完了S316におけるソフトウェアの動作のシーケンスを示した図である。まず、ステップS460にて、UPnPコントロールポイント310はSOAPを用いて、UPnPエミュレーション処理325に対し、「TransferComplete」アクション要求を含んだメッセージを送信する。IEEE1394機器327に対応して既に起動されているUPnPエミュレーション処理325は、UPnPスタック321を介し、送信されたメッセージを受信する。メッセージを受信したUPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cコマンドとの対応表を用いUPnPのサービスである「TransferComplete」アクションをAV/Cコマンドの「DISCONNECT AV」に変換し、ステップS461にてIEEE1394バス制御処理324に送信する。IEEE1394バス制御処理324は、ステップS462にて、IEEE1394スタックを介し、IEEE1394機器327にAV/Cコマンド「DISCONNECT AV」を送信する。このAV/Cコマンドを受信したIEEE1394機器327は、自身のコネクションを解除する。その後、S463にて、IEEE1394スタックを介し、コネクションを解除した情報を含んだAV/CレスポンスをIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS464にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。コネクション解除回答を受信したUPnPエミュレーション処理325は、さらに物理的なコネクションを解除するため、コネクション終了要求をステップS465にてIEEE1394バス制御処理324に送信する。コネクション終了要求を受信したIEEE1394バス制御処理324は、S466にてIEEE1394スタックを介し、IEEE1394機器327に対し、lockトランザクションによるプラグの解除要求を送信する。このメッセージを受信したIEEE1394機器327は、物理的なコネクションを解除する。その後、S467にて、IEEE1394スタックを介し、物理的なコネクションを解除した情報を含んだlockトランザクション応答をIEEE1394バス制御処理324に返信する。IEEE1394バス制御処理324は、受信したAV/CレスポンスをS468にて、AV/Cコマンドの送信元であるUPnPエミュレーション処理325に送信する。UPnPエミュレーション処理325は、第36図に示すUPnPのサービスとAV/Cレスポンスとの対応表を用いUPnPのレスポンスメッセージに変換し、S469にてUPnPスタック321を介し、UPnPコントロールポイント310に送信する。これにより、UPnPコントロールポイント310は、IEEE1394機器327のコネクションが解除されたことを認識することが可能となる。
以上、説明した操作方法によれば、IPネットワーク上のUPnPコントロールポイントが、IEEE1394ネットワーク上にあるUPnPの機能を有さないIEEE1394機器を操作することが可能となる。すなわち、UMU42を用いることにより、IEEE1394ネットワーク上にあり、かつUPnPの機能を有さない映像情報装置40a、40b等の装置を操作することが可能となる。また、本実施の形態で説明した操作方法によれば、UPnPコントロールポイントが予めIEEE1394ネットワークに接続されるIEEE1394機器のユニット、サブユニットを認識しておく必要がないので、IEEE1394機器の追加、削除、及びUPnPコントロールポイントの追加、削除を容易に行うことができる。また、IEEE1394ネットワークがすでに構成されており、かつ、IPネットワーク上にUPnPコントロールポイントが存在し、このUPnPコントロールポイントからIEEE1394機器を操作したい場合、本実施の形態で説明したUMUを用いれば、既存のIEEE1394ネットワーク、IPネットワークの構成を変更することなく操作が可能となる。すなわち、IEEE1394ネットワークで使用されるAV/Cコマンドと、UPnPのアクションの両者を理解、変換できるソフトウェアを搭載したUPnPコントロールポイントを用いる必要がない。
すなわち、本実施の形態で説明したUMUを用いれば、新たなLSIを搭載した機器を用いることなく、第1のネットワーク上にある機器から第2のネットワーク上にある機器を操作することが可能となる。つまり、互いの機器が、機器操作のためのコマンド体系がそれぞれ異なるネットワーク上にある場合でも、両者のコマンド体系を理解、変換可能なシステムLSIを搭載した仲介機器を新たに設けることなく、互いのネットワーク上の機器を操作することが可能となる。
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。すなわち、機器に要求される仕様・機能が変わっても、仕様・機能変更の要求に対応したシステムLSIを新たに開発する必要がなく、容易に機能の拡張・変更が可能な映像機器を提供することが可能となる。