双方向マルチメディアデータ分配システム
音声、映像、オーバーレイ及び/又は制御チャネルを介してクライアントと通信するサーバにおけるマルチメディア配布システムが開示される。多くの場合、音声、映像、及び/又はオーバーレイ情報が、送信前にトランスコードされる。本発明の一実施例は、ネットワークを介してクライアントに接続されるサーバ、及び、第1のフォーマットでフォーマットされる音声、映像、及び/又は、オーバーレイ情報を含む少なくとも一つのストレージデバイスを有する。加えて、クライアントは、クライアントが復号化することを可能にする音声、映像、オーバーレイフォーマットを示す情報を格納するストレージデバイスを有し、サーバは、別の音声、映像、オーバーレイ及び/又は制御チャネルを介して音声、映像、オーバーレイ及び制御チャネルを送信するように構成される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にマルチメディア分配システムに関し、及び、特に双方向マルチメディアデータ分配システムに関する。
【背景技術】
【0002】
音声及び/又は映像情報は、その情報を表示可能なコンシューマ電子デバイス(Consumer electronic device)に様々な形式で提供される。コンパクトディスク(CD)又はデジタルビデオディスク(DVD)のような固定様式でメディアを要求するコンシューマ電子デバイスは、ユーザに利用可能なCD又はDVDを再生することに制限される。既定の時間でユーザにアクセス可能な音声及び/又は映像の量を増加させるために、コンシューマ電子機器の製造会社は、コンシューマ電子デバイスの中のストレージデバイスに固定メディアに含まれる音声及び/又は映像情報を送信することを模索している。
【発明の開示】
【発明が解決しようとする課題】
【0003】
内部ストレージを使用するシステムは、追加された利便性を提供するが、典型的には、ユーザに、そのストレージデバイスに含まれる音声及び/又は映像情報を表示することを制限する。ユーザに音声及び/又は映像情報をさらに利用可能にする別のアプローチは、ネットワーク接続でコンシューマ電子デバイスに提供することである。コンシューマ電子デバイスがネットワークに接続されるとき、音声及び/又は映像情報は、遠隔に記憶され、ネットワークを介してコンシューマ電子デバイスに要望どおりに提供される。多くの例では、コンシューマ電子デバイスは、固定メディアから音声及び/又は映像情報を抜き出す能力を備え、音声及び/又は映像情報を格納し、ネットワークを介して音声及び/又は映像情報を獲得する。
【課題を解決するための手段】
【0004】
本発明に係る実施形態は、ネットワーク上でマルチメディアを配布する。一形態において、本発明の実施形態は所定のマルチチャネルプロトコルにしたがって配布のための第1のフォーマットで符号化された映像をトランスコードすることができる。別な形態では、本発明の実施形態は自動的にシステムを更新するための機構を有する。本発明の一実施形態は、ネットワークを介してクライアントに接続されたサーバ、第1のフォーマットにしたがってフォーマットされる音声、映像及び/又はオーバーレイ(overlay)情報を含む少なくとも1つのストレージデバイス、を有しクライアントは、クライアントが復号化可能な音声、映像及び/又はオーバーレイ情報フォーマットを示す情報を格納するストレージデバイスを有し、サーバは、別々の音声、映像、オーバーレイ、及び制御チャネルを介して音声、映像、オーバーレイ、及び制御を送信するように構成されることを特徴とするデータ分配システムを含む。
【0005】
更なる実施形態では、サーバは、クライアントが復号化可能な音声、映像及び/又はオーバーレイフォーマットを示す情報を獲得するために、クライアントに問合せをするように構成される。
【0006】
別の実施形態では、サーバは、少なくとも一つの格納された音声、映像及びオーバーレイ情報を、第2のフォーマットにトランスコードするように構成され、
音声、映像及び/又はオーバーレイフォーマットを示す情報は、クライアントが第2のフォーマットで符号化された音声、映像及び/又はオーバーレイを復号化できることを示す。
【0007】
さらに別の実施形態では、サーバが、更新可能リストを獲得するように構成され、かつ、サーバは、クライアントが復号化できる音声、映像及び/又はオーバーレイフォーマットを示す情報に基づいてクライアントに適用されうる更新を判断するように構成される。
【0008】
別の実施形態は、自デバイスの性能に関する格納された情報を格納するストレージデバイスを格納するする第3のデバイスをさらに有し、サーバは、第3のデバイスの性能に関する格納情報を獲得するために第3のデバイスに問合せをするように構成される。
【0009】
またさらなる実施形態では、サーバは、第3の機器の性能に関する第3のデバイスから獲得した情報を参照して、クライアントに適応可能な更新を判断するように構成される。
【0010】
さらに別の実施形態では、サーバは、サーバの性能に関する情報を格納するストレージデバイスを含む。
【0011】
さらに別の実施形態では、サーバは、サーバの性能に関する情報を参照してクライアントに適用される更新を判断するように構成される。
【0012】
別の実施形態は、プロセッサ、プロセッサに通信するように構成され且つ別々のチャネルで音声、映像、オーバーレイ、及び制御情報のパケットを受信するように構成されるネットワークインタフェース、及び、プロセッサによって符号化され得る音声、映像及びオーバーレイ情報に関する情報を格納するストレージデバイスを有することを特徴とするクライアントを有する。
【0013】
さらに追加の実施形態では、ネットワークインタフェースを介してプロセッサによって復号化される音声、映像及び/又はオーバーレイ情報フォーマットに関する格納情報によって送信されるネットワークインタフェースを介して受信した問合せに応答するようにクライアントのプロセッサは構成される。
【0014】
別の付加的な実施形態では、格納情報は、XMLファイルとして格納される。
【0015】
さらに付加的な実施形態は、プロセッサ、プロセッサと通信するネットワークインタフェースを有し、プロセッサは、第1のフォーマットで符号化された音声、映像及びオーバーレイ情報を受信し且つ第2のフォーマットに音声、映像及び/又はオーバーレイ情報の少なくとも1つをトランスコードするように構成され、プロセッサ及びネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバを有する。
【0016】
別の実施形態では、プロセッサ及びネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成される。
【0017】
さらに別の実施形態では、プロセッサ及びネットワークインタフェースデバイスは、外部デバイスの性能を示す情報を受信するように構成される。
【0018】
さらに別の実施形態では、プロセッサは、性能リストを獲得するために情報を解析するように構成される。
【0019】
付加的な実施形態は、プロセッサ、プロセッサと通信するネットワークインタフェースを有し、プロセッサ及びネットワークインタフェースデバイスは、利用可能な更新リストを獲得するように構成され、プロセッサ及びネットワークインタフェースデバイスは、外部デバイスの性能に関して外部デバイスに問合せるように構成され、プロセッサは、利用可能な更新リスト及び外部デバイスの性能に基づいて外部デバイスに提供される更新を判断するように構成され、プロセッサ及びネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバを有する。
【0020】
別の付加的な実施形態は、サーバの性能に関する情報を含むストレージデバイス、プロセッサは、サーバの性能に関する記憶情報に基づいて外部デバイスに提供される更新を決定するようにさらに構成される。
【0021】
別の実施形態では、外部デバイスの性能は、各デバイスによってサポートされる通信プロトコルを含み、少なくとも1つのプロトコルは、各利用可能な更新によってサポートされ、プロセッサは、各更新されたデバイスが同じ通信プロトコルをサポートすることを確実にすることによって、外部デバイスへの更新を適用することを判断するように構成されることを特徴とする。
【0022】
本発明に係る方法の実施形態は、データネットワーク上でデータを通信する方法であって、音声、映像、及びオーバーレイ情報を検索し、少なくとも1つの音声、映像、及びオーバーレイ情報をトランスコードし、音声、映像、及びオーバーレイ情報の1つ以上に関係する音声、映像、オーバーレイ、及び制御情報を送信し、音声、映像、オーバーレイ、及び制御情報の1つ以上に関係する音声、映像、オーバーレイ、及び制御情報を受信し、別々の音声、映像、及びオーバーレイキューで受信した情報をキューイングし、情報に関係するタイムスタンプに基づいてキューイングされた情報を処理し、処理された情報の少なくとも1つのタイムスタンプを示す報告を送信し、報告を受信し、受信した報告内に含まれる少なくとも1つのタイムスタンプに関する情報を記録することを特徴とする。
【0023】
本発明に係る方法のさらなる実施形態は、音声、映像、及びオーバーレイ情報をトランスコードする適切なフォーマットを判断することを有する。
【0024】
本発明に係る方法の別の実施形態は、データネットワーク上で通信するように構成されるデバイスを更新する方法であって、利用可能な更新及び各更新でサポートされる通信プロトコルのバージョンを判断し、各デバイスによってサポートされる通信プロトコルのバージョンを含む各デバイスの性能を判断し、必要な更新が実行されるなら、全デバイスによってサポートされる通信プロトコルの最新バージョンを判断し、必要な更新を実行することを特徴とする更新方法を有する。
【発明を実施するための最良の形態】
【0025】
図面を参照すると、本発明の実施形態は、少なくとも1つのクライアントとネットワークを介して接続された少なくとも1つのサーバを有し、音声及び/又は映像情報の配布を可能にする。多くの実施形態のうちの1つは、サーバがクライアントに様々な情報を送信することができる。情報の種類のうち各々は、典型的には異なるチャネル上で送信される。他の例では、情報のストリームがリアルタイムでトランスコードされる。多くの実施形態のうち別な形態は、制御チャネル上でクライアントによってサーバへ転送されたユーザ指令に応じて、サーバがクライアントへ送信するための情報を選択する。実施例の多くは、ユーザ指令に応じた表示のためにクライアントへ、音声、映像及び/又はオーバーレイ情報の適切なシーケンスを提供することによって、サーバは、双方向(interactive)なグラフィカルユーザインタフェースを介して指図するユーザへのインプレッション(impression)を生成することができる。双方向性を達成するために、サーバは、通常は、クライアントによって表示されるユーザインタフェースの状態に関する情報を保持する。加えて、サーバは、ユーザ入力に応じてあるユーザインタフェースから別なユーザインタフェースへ遷移するときの待ち時間を減らすために、クライアントの設定を制御することができる。多くの実施例では、システムは、ソフトウェア更新を配布することができる。
【0026】
本発明による配布システムの実施例が、図1を用いて説明される。配布システム10は、ネットワーク14を介して多くのデバイスに接続される多くのサーバ12を有する。説明される実施例において、デバイスは、コンピュータ16、テレビ20に接続された据付ボックス18、及び、ハンドヘルドコンピューティングデバイス22を有する。サーバ12と対話するために、各デバイスは、クライアントとしてデバイスを活動させることを可能にするソフトウェア及び/又はハードウェアを有する。それゆえ、クライアントという用語は、本発明の実施例にしたがってサーバと通信可能なデバイスを初めから終わりまで記述するために使用される。
【0027】
いくつかのクライアントは、極めて洗練された演算機能を有するが、多くの他のクライアントは、制限された演算及びストレージ機能を有する。それゆえ、本発明によるクライアントは、典型的には、殆どのユーザ指令に応答して直接的に変化しないとても単純なルーティンを実行する。処理の大部分は、サーバにシフトされ、サーバはユーザ入力を処理し、システムの双方向性機能を実行する。サーバは、とても正確な方法で、クライアントにより表示される情報を制御し、その方法は要求された情報がクライアントによってほとんど即座に表示されることを確実にすることで、サーバがユーザの要求に応答することを可能にする。典型的には、クライアントは、ユーザ要求の大部分を解釈する機能を有さない。クライアントは、単に、サーバにユーザ要求を送信し、サーバによって指示される方法で、サーバがクライアントに提供する情報を表示する。サーバの動作、ネットワーク、及びクライアントは後述する。
【0028】
サーバ12、ネットワーク14、及びクライアントは、ネットワークを介してサーバが情報を送信することを可能にするように構成される。ある実施例では、サーバ及びクライアントは、TCP/IPプロトコルを用いて固定されたネットワーク上で通信する。他の実施例では、他のネットワーク通信プロトコルが使用され、固定接続は、無線接続に置き換えられる。ネットワークという用語は、直接接続、ホームネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及びインターネットのようなネットワークを含み、サーバ及びクライアント間のいかなる接続をも最初から最後まで言及するために使用される。
【0029】
本発明の実施例によるサーバ及びクライアント間に確立された通信チャネルは、図2において概略的に説明される。本発明の実施例によるサーバ12は、音声、映像、及びオーバーレイ情報のためのクライアントとの別個の通信チャネル17を確立する。加えて、制御チャネル19は、サーバ及びクライアント間の制御情報の双方向通信を可能にして確立される。
【0030】
映像チャネル17bは、サーバからクライアントへのパケット化された映像情報を通信するために使用される。より詳細に後述されるように、映像チャネルは、映像情報のパケットの中に含まれる映像の種類にしたがって構成される。典型的には、映像情報のパケットは、符号化された映像のフレームを含む。そのフレームは、特徴表現(feature presentation)、メニューの部分、又は、ユーザインタフェースの部分になり得る。用語「特徴表現」は、典型的には直線的に再生する長編フィルムのような連続した映像シーケンスを記述するために最初から最後まで記載され、ユーザとの相互作用は要求しない。用語「特徴表現」は、広い意味で意味され、事前録画された映像およびブロードキャストストリームのいかなる種類をも包含し、長編フィルムに限定されない。
【0031】
音声チャネル17bは、サーバからクライアントへパケット化された映像情報を通信するために使用される。映像チャネル同様に、サーバは映像チャネルの特徴を特定する。音声チャネルによって送信される音声データは、映像又はオーバーレイ情報を必ずしも伴う必要はない。本発明の多くの実施例は、音声録音(例えば、音楽など)を配布する機能を有する。音声情報は、映像チャネル上で送信された映像情報をも伴うことができる。多くの例では、音声情報は、「特徴表現」に伴うサウンドトラックである。しかし、音声情報は、メニューやユーザインタフェースの部分を形成する音響効果にもなり得る。
【0032】
オーバーレイチャネル17cは、クライアントにオーバーレイ情報を送信するためにサーバによって使用され得るチャネルである。オーバーレイは、映像のフレーム上のスーパーインポーズ、又は、背景映像無しで表示可能な全体画像のどちらかになり得る絵又はテキストである。オーバーレイの例は、「特徴表現」を伴うサブタイトル、又は、メニュー部分又はユーザインタフェースである強調されたメニューオプションを含む。オーバーレイ情報は、絵又はテキストとして符号化される。ある実施例では、オーバーレイは、Joint Photographic Experts Groupにより特定されるフォーマットに交換するJPEGファイルにしたがって符号化される。別な実施例では、オーバーレイはビットマップとして符号化される。オーバーレイ情報、及び、オーバーレイチャネルの種類は、通常は、サーバによって特定される。
【0033】
制御チャネル19は、制御情報を送信するために、サーバ及びクライアントの両方によって使用され得るチャネルである。本発明に係るシステムの実施例は、サーバ及びクライアント間の情報を確実に通信するように構成される。より詳細に後述されるように、クライアントは、ユーザ指令及びタイミング情報をサーバに送信するために、制御チャネルを使用する。次に、サーバは、制御チャネルを使用して、クライアントと音声、映像及びオーバーレイチャネルを確立し、受信した音声、映像及びオーバーレイ情報を表示すべき方法に関する指令をクライアントに提供する。他の実施例では、音声、映像及びオーバーレイチャネルは、音声、映像及びオーバーレイチャネルの各々の上を送信されるパケットによって初期化される。制御チャネル上を通信するサーバ及びクライアントの性能は、システム全体がユーザと相互作用することを可能にする。例えば、本発明の実施例によるクライアントは、制御チャネルを使用して、サーバにユーザコマンドを送信する。それから、サーバは、音声、映像及び/又は制御チャネルを介してクライアントに情報を送信することによって、ユーザコマンドに応答する。音声、映像、オーバーレイ及び/又は制御情報の適切な選択は、特徴表現の素早い転送、中止、又は、巻き戻しのような効果を達成する。相互作用特性が本発明の実施形態により実行される方法は、さらに後述される。
【0034】
本発明の多くの実施例では、ネットワーク14上の通信は、TCP/IPプロトコルにしたがって実施される。TCP/IPが使われる実施例では、別々のチャネルが各チャネルへの別々のポートアドレスに割り当てることによって確立される。このようにして、情報のパケットは、ネットワークを横断して送信され、ポートアドレスは、パケットが関係付けられるのがどのポートかを判断するために使用される。他の実施例では、UDPプロトコルがネットワーク上の情報を通信するために、IPプロトコルと連動して使用される。他のプロトコルも、本発明の実施例によるネットワーク上で情報を通信するために使用でき、様々な技術が、音声、映像、及び/又は、コマンド情報の通信のための別々のチャネルを生成するために使用される。他の実施例では、移動体通信プロトコルがクライアントとサーバの間の必要なチャネルを確立するために使用される。あるいは、チャネルは、IEEE1394標準に準拠する接続上で見出される。他の実施例では、他のネットワークプロトコルが音声、映像、オーバーレイ、及び/又は、コマンド情報を通信するために使用され得る。確かに、異なるネットワークは、異なるタイプの情報、及び/又は、同じタイプの情報の異なるシーケンスを通信するために使用され得る。本発明の多くの実施例は、別々のチャネルを有し、様々な実施例は、音声、映像、及び/又は、制御情報を単一のチャネル上で結びつける。
【0035】
クライアントにサーバによって音声、映像、及び、オーバーレイチャネルを介して送信される音声、映像、及び、オーバーレイ情報は、クライアントによりユーザに提示される情報を決定する。上記したように、この情報は様々な形式をとり得る。例えば、音声、映像、及び/又は、オーバーレイ情報はユーザインタフェースに関係付けられる。多くの例では、音声、映像、及び/又は、オーバーレイ情報は、同じコンテンツに関連しない。その例は、特徴表現上で表示される他の利用可能なプログラミング、又は、ユーザに特徴表現が送信され、中止され、又は、他のやり方に操作されることを通知する記号オーバーレイについての情報を含むオーバーレイを有する。
【0036】
多くの実施例では、サーバは、符号化された音声、映像、及びオーバーレイ情報を適切に含むファイルから、情報を抽出することによって送信のための情報を獲得する。他の実施例では、符号化された音声、映像、及びオーバーレイ情報はサーバによってデータのストリームとして受信される。幾つかの実施例では、サーバは、第1のフォーマットで符号化された音声、映像、及び/又はオーバーレイ情報を受信し、送信用の適切なフォーマットで音声、映像、及び/又はオーバーレイ情報をトランスコードする。情報を受信しようとするクライアントが第1のフォーマットで符号化された情報を復号化できないために、送信のために適切ではないかもしれない。多くの実施例では、サービス品質(Quality of Service)の要求は、第1のフォーマットで符号化された情報を、異なるデータ送信速度を要求するフォーマットにサーバにトランスコードさせる。サービス品質測定を利用する実施例では、クライアントは、サーバがサービス品質を測定可能にする情報をサーバに提供する。第1のフォーマットが適切でない別の理由は、音声、映像、及び/又はオーバーレイ情報が第1のファイルフォーマットで符号化されるとき、別々のチャネル上で送信するための音声、映像、及び/又はオーバーレイ情報を直接抽出できないということである。
【0037】
本発明のシステムの典型的な実施例の特徴を一般的に記載したことで、これらのシステムの個々の構成のより詳しい試験が保障される。本発明の実施例によるサーバが、図3に表される。サーバ12’は、少なくとも1つのプロセッサ21、メモリ22、1つ以上のハードディスクドライブのようなストレージデバイス24、及びネットワークインタフェースデバイス26を含む。プロセッサ21は、ネットワークインタフェースを介してクライアントに音声、映像、及び/又はオーバーレイ情報、及び制御コマンドを提供するために、ソフトウェアを用いて構成される。
【0038】
ストレージデバイス24は、1つ以上のデータファイルを含む。データファイルは、1つ以上の音声トラック、1つ以上の画像、1つ以上の特徴表現、及び、1つ以上のユーザインタフェースに関係する音声、映像、及び/又はオーバーレイを含む。本発明の一実施例では、記憶されたデータファイルは、1つ以上の映像トラック、1つ以上の音声トラック、1つ以上のオーバーレイトラック、グラフィカルユーザインタフェースに関係するマルチメディアを含むことができる。ストレージデバイス24は、Van Zoest等による“Multimedia Distribution System”とタイトル付けされ、2004年11月17日に出願された米国特許出願第11/016,184に記載されるマルチメディアに類似のマルチメディアを含むことができ、その出願の内容は、ここにおいてその全体を参照することにより組み込まれる。
【0039】
サーバは、ストレージデバイス24に記憶する、又は、送信用の別なソースから音声、映像、及び/又は、オーバーレイをトランスコードすることができ、そのトランスコード化は、適切なソフトウェアを用いてプロセッサ21を構成することで、実行されうる。他の実施例では、トランスコード化は、サーバ内のアプリケーション特定回路(Application specific circuitry)を用いて実行される。ある実施例では、マイクロプロセッサは、送信用の音声、映像、及び/又はオーバーレイ情報を復号化し、アプリケーション特定回路は、復号化された音声、映像、及び/又はオーバーレイ情報を送信のために符号化する。上述したように、送信された音声、映像、及び/又はオーバーレイ情報は、遠隔で格納され得る。音声、映像、及び/又はオーバーレイ情報が遠隔で格納されたとき、サーバは、情報を受信し、別々の音声、映像、オーバーレイ、及び/又は制御チャネル上に送信するための適切なフォーマットにリアルタイムでその情報をトランスコードする。
【0040】
TCP/IPプロトコルにより通信する本発明の実施例では、ネットワークインタフェースデバイス26及び/又はプロセッサ21は、TCP/IPプロトコルスタックを実施する。TCP/IPプロトコルスタックは、適切なチャネルの各々に関してサーバから、又は、サーバへの情報の送信を処理する。他の実施例では、ネットワークインタフェースデバイスは、他のプロトコルをサポートするように実装される。
【0041】
余談として、当業者は、図3に表されるサーバが概略的な形式で説明されていることを十分理解するだろう。本発明の実施例によるサーバの実際の実装は、様々な形式がとられる。または、当業者は、いかなるサーバ、コンピュータ又はマルチメディアファイルを格納可能であり且つここに記載した方法でクライアントとネットワーク上で通信可能な他の電子デバイスは、本発明によりデータ配布システムの実施例を実装するために使用可能であることを十分理解するだろう。
【0042】
本発明の実施例によるクライアントは、図4に説明される。説明された実施例では、クライアント40は、ネットワーク接続されたコンシューマ電子デバイスである。クライアントは、ネットワーク14及びテレビ及び/又は映像ディスプレイ/モニタ、及び/又はステレオ及び/又はスピーカのような少なくとも1つの再生デバイスとインタフェースで接続するように設計される。クライアント40は、マイクロプロセッサ42を含む。マイクロプロセッサは、クライアントの操作を制御するように構成され、そしてグラフィックアクセラレータ44に接続される。
【0043】
グラフィックアクセラレータ44は、生成するビデオフレームと関係する反復的処理を実行するために使用される。グラフィックアクセラレータは、映像RAM46、I/Oコントローラ48、及びビデオコンバータ50とマイクロプロセッサを接続するためのハブとして動作することもできる。ビデオRAM46は、ビデオフレームの生成に関係する情報を記憶するために、グラフィックアクセラレータによって利用される。ビデオフレームは、ビデオコンバータ50に提供され、それは、テレビやビデオディスプレイ/モニタのような再生デバイスによって再生するための適切なビデオフォーマットにデジタル情報を変換する。フォーマットは、アナログフォーマット又はデジタルフォーマットになり得る。I/Oコントローラは、また、グラフィックアクセラレータとインタフェースで接続し、マイクロプロセッサ及びグラフィックアクセラレータが、ネットワークインタフェースデバイス52、入力インタフェースデバイス54、メモリ56、及び音声出力デバイス58を含むデバイスにバス60を介してアドレス指定することを可能にする。図4に表されるアーキテクチャは、本発明によるクライアントの実施例であるコンシューマ電子デバイスの典型的なアーキテクチャである。プロセッサが直接的及び/又は間接的にI/Oデバイスにインタフェース接続するアーキテクチャを有する他のアーキテクチャもまた使用され得る。
【0044】
ネットワークインタフェースデバイス52は、ネットワークを介して情報を送信し、及び、受信するように使用され得る。情報がTCP/IPプロトコルを介して通信される実施例では、ネットワークインタフェースデバイス及び/又はマイクロプロセッサのような他のデバイスがTCP/IPプロトコルスタックを実施する。他の実施例では、他の通信プロトコルが使用され、それに応じて、ネットワークインタフェースデバイスが実装される。
【0045】
入力インタフェースデバイス54は、ユーザがクライアント40に指令を提供する古都を可能にする。説明された実施例では、入力インタフェースデバイス54は、IRレシーバを介して赤外線(IR)遠隔制御を用いてクライアント40に指令を提供することをユーザに可能にする。他の実施例では、マウス、トラックボール、バーコードスキャナ、タブレット、キーボード、及び/又は、音声コマンドのような他の入力デバイスが、ユーザ入力をクライアント40に伝送するために使用され、それに応じて、入力インタフェースデバイス54は構成される。
【0046】
メモリ56は、典型的には、一時の又は永続的な格納情報の両方を提供することができるたくさんのメモリデバイスを含む。ある実施例では、メモリは、EEPROM及びSRAMの組合せとして実装される。他の実施例では、単一のメモリコンポネント又は揮発性及び/又は比揮発性メモリコンポネントがメモリを実装するために使用され得る。
【0047】
音声出力デバイス58は、デジタル音声情報をスピーカやサウンドシステムのような再生デバイス上で音声を生成可能な信号に変換する。ある実施例では、音声出力デバイス58は、アナログフォーマットでステレオ音声を出力する。他の実施例では、音声出力デバイスは、様々なアナログ及び/又はデジタル音声フォーマットで音声情報を出力する。ある実施例では、モーション・ピクチャー・エキスパート・グループ(MPEG)によって特定されるMP3音声フォーマットが使用される。他の実施例では、アドヴァンスド・テレビジョン・システムコミティによって特定されるAC3、MPEGによって特定されるAACフォーマット、レドモンド・ワシントンのマイクロソフト・コーポレーションによって特定されるWMAフォーマットのような他のフォーマットが、使用され得る。
【0048】
当業者により十分に理解されるように、多くの構成は、本発明の実施例にしたがったクライアントを実装するように使用され得る。本発明の実施例によるクライアントは、グラフィック性能又は音声性能を有することを必要としない。加えて、本発明の多くの実施例によるクライアントは、いかなるユーザ能力をも必要としない。例えば、ユーザ入力は、直接的にサーバに、又は、必須のサーバ又はサーバへユーザ指令を転送する第2のクライアントを介して提供される。あるいは、クライアントは、単にユーザ指令を処理することができないか、転送することができないかもしれない。本発明によるクライアントの実施例は、様々な処理コンポーネント又は単一の処理コンポーネントを含むことができる。確かに、ここに記述された方法でサーバと通信することを可能にするネットワーク接続されたコンシューマ電子又はコンピューティングデバイスは、本発明の多くの実施例にしたがうクライアントを実装するために使用され得る。
【0049】
本発明によるシステムの多くの実施例では、異なるクライアントが異なる性能を有する。多くの実施例では、クライアントは、その性能を識別する情報を記憶するように構成される。幾つかの実施例では、クライアントは、ワールドワイドウェブコンソーシアムによって特定される拡張マークアップ言語(XML)における情報を含むファイルを有する。XMLファイルは、デバイス性能を記述する情報を含むことができる。多くの実施例では、XMLファイルは、クライアントの再生機能を記述する。クライアントがトランスコードを実行する実施例では、サーバは、クライアントにメディアを直接的に提供し、プロセッサ負荷又は既に設定されたユーザ構成に基づいたトランスコードに応答して決定をすることができる。多くの実施例では、サーバは、サーバの性能を記述するファイルも格納する。
【0050】
上述したように、本発明の実施例によるサーバは、音声、映像、及び/又は、オーバーレイ情報をクライアントに提供できる。典型的には、クライアントは、1つ以上のサーバによる情報の送信を開始する。各送信は、制御セッションとして参照され、クライアントは、サーバの制御ポートへのコネクションを形成して制御セッションを開始することができる。それから、クライアントは、制御セッションの開始を要求し、制御セッションが許可されるなら、サーバは、クライアントにチャネル割り当て情報を送信することで、音声、映像、及び/又はオーバーレデータのためのチャネルを確立する。一旦、音声、映像、及び/又はオーバーレイチャネルが確立されると、サーバは、音声、映像、及び/又は、オーバーレイ情報の送信をクライアントに開始することができる。すでに論述したように、ユーザ指令をサーバに転送するクライアント、及び、クライアントに適切な音声、映像、オーバーレイ、及び/又は制御情報を提供することによって応答するサーバによって、相互作用性は達成される。
【0051】
多くの実施例では、音声、映像、及び/又はオーバーレイチャネルの確立は、同時には生じず、個々のチャネルは切断又は再接続される(しばしば異なるサーバの要求として)。例えば、ある実施例では、映像チャネルは、ユーザインタフェースに関係付けられる映像情報の表示を可能にするために接続される。一度構成が選択されると、映像チャネルは、切断及び別なサーバへ再接続し、音声チャネルは同じサーバに設けられる。本発明の別な実施例では、付随するサブタイトルを有する構成を介した迅速な送信に関連する。サブタイトルを提供するオーバーレイチャネルは、ユーザからの指令の高速送信に応答して切断され、高速転送アイコンでオーバーレイを提供する別のサーバに再接続する。あるいは、同じサーバが、オーバーレイ及び高速転送アイコンの両方を提供し、オーバーレイチャネルは単に再配置される。制御セッション、映像、音声及び/又はオーバーレイ情報の送信、双方向な構成の実装がより詳細に述べられた。
【0052】
図5及び6は、セッションの確立及び誘導の間に本発明にしたがうクライアント及びサーバの動作を表すフローチャートである。図5をみると、サーバとのセッションの確立及び誘導の間に本発明にしたがうクライアントの動作を表すフローチャートが説明される。説明されたプロセスでは、TCP/IPプロトコルがサーバとの通信するためにクライアントにより使用される。他の実施例では、他の通信プロトコルが使用される。処理80は、サーバの制御ポートとのコネクションを形成する(82)クライアントと共に開始する。ある実施例では、シンプルサービスディスカバリプロトコル又は標準RFC2327で提案されるセッション記述プロトコルのようなプロトコル(それら両方はインターネットエンジニアリングタスクフォースによって特定される)に基づいた手続きが、サーバ及びサーバの制御ポートを識別するために使用される。他の実施例では、他の技術が、クライアントとネットワークを介して接続されたサーバの制御ポートを識別するために使用され得る。
【0053】
一旦、制御チャネルが確立すると、クライアントは、制御チャネルを介してサーバとの制御セッションを開始(84)しようと試みる。その試みは、クライアントの利用可能なポート割当に関する情報を含む制御セッションを要求するパケットを送信することによって、なされる。それから、クライアントは、その要求に応答するサーバのために待つ(86)。ある実施例では、サーバは、セッションが拒否されても、応答する。他の実施例では、その要求は、所定の時間間隔が有効期限切れした後で、拒否されたことが仮定される。セッションが拒否(86)されたなら、セッションを確立する試みは、失敗である。その試みが成功なら、クライアントは、典型的にはクライアントの内部タイマーに関する情報をサーバに提供すると共に、サーバから周波数を特定する情報を受信する(90)。他の実施例では、音声、映像、及び/又はオーバーレイチャネルの特徴は、サーバに提供されるクライアント上に配置されるXMLファイルで規定される。データチャネルのパラメータ及びクライアントがその内部時刻の値を報告すると共に周波数の重要性は、より詳細に後述される。
【0054】
クライアントもまた、サーバからのポート割当を受信する(92)、ポート割当は、典型的には、各チャネル上の映像、音声、又はオーバーレイのパラメータ(例えば、音声サンプル速度や映像解像度)およびバッファへ映像、音声、又はオーバーレイ情報に関する情報を含む。チャネルの初期化は、チャネル上で送信される情報のための開始タイムスタンプを含む。このタイムスタンプは、クライアントの内部タイマーを設定するために使用される。クライアントのタイマーは、典型的には、特定量のデータがキューイングされ、クライアントがキューイングされたデータを再生することを開始するまで、中断される。
【0055】
初期化は、チャネル上に到着する情報をどれくらい処理すべきかに関する情報を含む。ある実施例では、クライアントのタイマーがデータに関係するタイムスタンプと同じか、又は、それ以上であるとき、クライアントは入力されるデータを再生することを開始し得る。幾つかの実施例では、クライアントのタイマーがデータに関係するタイムスタンプに一致するとき、入力されるデータを再生するために初期化され得る。これらの実施例では、クライアントのタイマーを中断することは、チャネルからのデータの再生を中断することもできる。多くの実施例は、クライアントで受信された後でできるだけ早く入力されるデータを再生するために初期化することをクライアントに可能にする。多くの実施例では、クライアントは、映像パケットに音声を同期化することを指示する。音声の映像への同期化は、クライアントに、ユーザインタフェースで音響効果に伴う遷移又はアクションを生成することを可能にする。
【0056】
クライアントでの要求される処理を減少することに加えて、サーバがクライアントのキューを管理する能力を提供することは、サーバがクライアントに送信する音声、映像、及び/又はオーバーレイ情報を予期して、サーバがクライアントのキューを構成することを可能にする。サーバによって送信される音声、映像、及び/又はオーバーレイ情報が例えばメニューの一部であるなら、サーバは、クライアントが普遍的準備開始状態であるためにクライアントのキューを構成することができる。用語「普遍的準備開始状態」は、サーバから受信された情報がほとんど即座に処理され、再生されるためにクライアントがいかなる情報もキューイングしない、又は、とても少ない情報をキューイングしている情報を記述する。あるいは、サーバが特徴表現に関係する音声、映像、及び/又はオーバーレイ情報を送信しようとするとき、サーバは音声、映像、及び/又はオーバーレイ情報が円滑に再生され可能性を増加するために十分な情報をキューイングするようにクライアントを構成できる。いわゆる円滑再生は、同期化された音声及びオーバーレイを有する適切な時間間隔で配置されたフレームの表示に言及する。典型的には、円滑再生は、それが要求されるとき、再生するために必要な情報がクライアントで利用可能になることを要求する。クライアントのキューの長さの増加は、パケットがクライアントによって要求された後で、パケットが到着することをもたらすネットワーク遅延における変化を蓄積する。音声、映像、及び/又はオーバーレイ情報が再生するために利用可能でないなら、ユーザは、画像のフリーズ、音声トラックのとぎれ、付随する映像又は音声と同期化しないオーバーレイを経験する。
【0057】
多くの実施例では、サーバは、サービスパラメータの規定の品質を達成するために、クライアントによってキューイングされる情報の量を絶えず監視し、変更する。多くの実施例では、サーバは、ネットワークの過密に応答してより低いデータ速度にデータをトランスコードすることで、サービス品質を維持する。幾つかの実施例では、タイムスタンプが、システム待ち時間を監視し、それに応じてクライアントのキューを管理するために、サーバによって使用される。他の実施例では、クライアントから獲得された他の情報又は別のソースが、システムによって提供されたサービスの品質を監視するために使用され得る。
【0058】
ポート割当の後に、クライアントは、サーバからの音声、映像、及び/又はオーバーレイチャネルに関するデータの受信を開始する(94)。クライアントは、パケットを処理し、サーバに対する必要なタイムスタンプの報告を実行する。クライアントは、サーバからの制御指令も受信する。制御指令が受信されると、クライアントはその指令を処理することによって応答する(98)。
【0059】
クライアントは、ユーザ指令も受信する(100)。クライアントはユーザ指令を受信するとき、クライアントは、典型的には、サーバへユーザ指令を送信する(102)。クライアントは、制御セッションが終了するまで、サーバによって提供されるマルチメディア情報を表示し続ける。
【0060】
多くの実施例では、クライアントは、ユーザ指令のとても制限されたセットに応答することができるだけである。例えば、クライアントは、ボリュームコントロール及び電源オン/オフ指令に応答できるかもしれない。再生される音声、映像、及び/又はオーバーレイに関連する指令が受信される場合、典型的には、クライアントは、サーバに指令を転送することによって応答する。
【0061】
ある実施例では、クライアントは、音声、映像、及び/又はオーバーレイ情報が提供される方法を割り込み、又は、変更する方向へ指示するユーザ指令を、再生デバイスに転送する。さらなる実施例では、クライアントは、メニューやユーザインタフェースに関連する全てのユーザ指令をサーバに転送する。追加例では、クライアントは、音声、映像、及び/又はオーバーレイが再生デバイスによって再生されるべき将来の速度、及び/又は、方向に関連する全てのユーザ指令を転送する。そのような指示の例は、中断、早回しを遅らせる、巻き戻しを遅らせる、早回しを早める、巻き戻しを早めるなどを含む。更なる実施例では、再び、クライアントは、再生デバイスによって再生された音声、映像、及び/又はオーバーレイが非線形の形式で進むことを全てのユーザ指令を転送する。そのような指示の例は、特徴表現におけるチャプター間やシーンをスキップし、又は、トランク間又は音声記録の再生トラックをランダムにスキップする指示を含む。
【0062】
別の実施例では、クライアントは、ユーザ指令が受信したときに再生デバイスによって再生される音声、映像、及び/又はオーバーレイに依存しないユーザ指令のみを処理する。典型的には、多少なりとも指令が、コンテンツ、速度、将来再生される音声、映像、及び/又はオーバーレイの指示に影響を与える場合、その指令は、典型的には、音声、映像、及び/又はオーバーレイに依存すると考慮される。独立指令の例は、電源オン/オフ、ボリュームコントロール、音を消す、明るさ制御、コントラスト制御を含む。
【0063】
図6を参照すると、クライアントとの制御セッションの確立及び誘導の間に、本発明の実施例によるサーバの動作を説明するフローチャートが示される。図5と同様に、説明されるプロセスは、サーバがクライアントとTCP/IPプロトコルを用いて通信することを仮定する。他の実施例では、他の通信プロトコルが使用される。処理120は、クライアントとのコネクションを確立することによって開始する。上述したように、コネクションは、サーバの制御ポートに要求を送信するクライアントによって確立されうる。一度、コネクションが確立されると、サーバはコネクションを介してクライアントから制御セッションを確立する要求を受信する(124)。サーバは、制御セッションを受諾するかどうかを決定する(126)。ある実施例では、サーバは、セッションを拒否するクライアントにメッセージを送信することで、セッションを拒否する(128)。サーバが制御セッションを拒否する理由の例は、サーバのコンテンツが特定のクライアントには不適切(例えば、クライアントが子供によってサクセス可能であり、サーバがアダルトコンテンツを含む)である場合、サーバが制御セッションを拒否することを含む。別な例として、サーバが過負荷であるときも、セッションを拒否しうる。更なる例として、サーバへのアクセスが料金ベースであり、クライアントが有効な支払いに関係していないときに生じる。
【0064】
セッションがサーバによって受諾される場合、サーバは、各データチャネルのためのコネクションを確立する(130)。ある実施例では、データチャネルは、音声チャネル、映像チャネル、及び/又はオーバーレイチャネルを含み、サーバは、各チャネルにポート割当を指定する。他の例では、データチャネルは、音声及び制御チャネル、及び、映像及び制御チャネル、又は、音声、映像、オーバーレイ、制御チャネル、又は、そのようなチャネルの他の組合せを含むことができる。
【0065】
様々なチャネル構成がサポートされる実施例では、データチャネルの確立は、データのフォーマットを特定するクライアントに、情報を送信することでデータチャネルの初期化を含めることができる。この情報は、タイムスタンプ情報、キューイングするデータ量に関する情報、及びデータが処理されるべき時間を含む。チャネル上で送信されるデータに関係するタイムスタンプは、式にしたがって決定される。
【0066】
タイムスタンプデータ=最初のタイムスタンプ+絶対値(開示時刻データ−位置データ)/速度
そこで、タイムスタンプデータは、データに関係するタイムスタンプである。
最初のタイムスタンプは、サーバによって選択された最初のタイムスタンプである。
開始時刻データは、記憶されたデータシーケンスの開始に関係する開始時刻を示す所定の時刻である。
位置データは、データシーケンスがその開始から所定の速度で線形的に再生される場合データが再生される時間を示すデータの特定の部分又はデータのコレクションに関係する所定の時刻である。
速度は、サーバが、所定の速度に対して再生されるべきデータを要望する速度を示す値である。
シーケンスがより早く又はより遅く再生される例では、速度値は、フレームの増加又は減少した数のために提供するタイムスタンプを見積もる。
【0067】
データチャネルの確立の後に、サーバは、クライアントにメディアを送信することを開始する(132)。ある実施例では、サーバは、Alexander van Zoestによる米国特許出願11/016,184に記載されたファイルと類似するファイルからメディア情報を抽出する。幾つかの実施例では、サーバは、最初に、ユーザインタフェースを生成するために、音声、映像、及び/又はオーバーレイ情報を抽出する。本発明の実施例によるユーザインタフェースの実施例は、音声インタフェース、純粋なグラフィカルインタフェース、又は音声及びグラフィカルコンポーネントを組み合わせるインタフェースになり得る。サーバが、特徴表現を送信するためにデータチャネルを使用する例では、サーバは、サーバに格納されたファイル内に含まれる多くの映像及び音声トラックから映像及び音声トラックを選択可能である。加えて、サーバは、サブタイトル、又は、インフォーメーション・バーや特徴表現を中断し、早送りし、巻き戻しし、チャプター間スキップするようなアクションを示すアイコンのような別の形式のオーバーレイを提供するために、オーバーレイトラックを選択することができる。他の例では、サーバは、音声、映像、及び/又はオーバーレイトラックのみを提供するかもしれない。そのような実施例では、他のトラックは、他のサーバによって提供され、または、他のデータトラックはないかもしれない。
【0068】
情報がクライアントから受信される場合(134)、サーバは、その情報に応答する(136)。その情報は、典型的には、ユーザ指令又はタイムスタンプ報告を含む。多くの転送されたユーザ指令は、ユーザがアクセスを希望する音声、映像、及び/又はオーバーレイ情報に関連する。サーバの応答は、ユーザ指令が受信された時に表示される情報が、ユーザインタフェースの部分であるか又は特徴表現であるかに依存して変化する。本発明によりサーバの実施例による転送されたユーザ指令の処理は、さらに後述される。しかしながら、ユーザ指令受信時に音声、映像、及び/又はオーバーレイに関するタイムスタンプからサーバが情報を獲得することができることは注意に値する。
【0069】
上述では、サーバの実施例と本発明によるクライアントとの間の情報交換が提供された。上述されるように、本発明の実施例によるサーバは、特定のクライアントへの送信用の音声、映像、及び/又はオーバーレイ情報をトランスコードすることができる。音声、映像、及び/又はオーバーレイ情報をトランスコードするための本発明の実施例による処理が、図6aに表される。処理138は、サーバによって送信されるべき音声、映像、及び/又はオーバーレイ情報のフォーマットを判断することを含む。デバイスの記述も獲得される(138b)。上述されるように、デバイスの記述は、クライアントの性能に関する情報をサーバに提供するために、クライアントによって使用されるクライアント上で格納されるXMLファイルである。ある実施例では、情報は、制御チャネルを介してクライアントによってサーバに提供される。サーバがメディアフォーマットお呼びデバイスの性能に関する情報を有するとき、サーバは、トランスコード化が実行されるべきかを決定する(138c)。ある実施例では、メディアが別々の音声、映像、オーバーレイチャネルを介して送信されるために適切ではない方法でフォーマットされるとき、トランスコード化が生じる。幾つかの実施例では、クライアントが、音声、映像、及び/又はオーバーレイ情報がフォーマットされるフォーマットで復号化できないとき、トランスコード化が生じる。多くの実施例では、別々の判断が、音声、映像、及び/又はオーバーレイ情報に対してなされる。音声、映像、及び/又はオーバーレイ情報のトランスコード化が要求される決定がなされる場合、サーバは音声、映像、及び/又はオーバーレイ情報をトランスコードし、トランスコード化を要求しない最初にフォーマットされた音声、映像、及び/又はオーバーレイ情報を有する通信用の音声、映像、及び/又はオーバーレイ情報を提供する。トランスコード化が必要とされない決定がされる場合は、最初にフォーマットされた音声、映像、及び/又はオーバーレイ情報が送信のために提供される(138e)。
【0070】
本発明の実施例によるサーバから受信したパケットをクライアントが処理する方法を説明するフローチャートが図7に説明される。その処理140は、クライアントによるパケット情報の受信(142)で始まる。TCP/IPプロトコルによるサーバ及びクライアントが通信する実施例では、TCP/IPスタックのクライアントの実装は、パケットのポートアドレスを参照して情報の性質を識別する(144)。パケットは、適切な音声、映像、オーバーレイ又は制御バッファにバッファされる(146)。音声、映像、オーバーレイ、制御情報は、受信した情報のタイプに適切なキューに配置される。キューイングされた情報は、(上述したように)サーバによって指示された方法で、情報に関係付けられたタイムスタンプによって決定された順序で処理される(152)。処理された情報のタイムスタンプは、サーバに報告される(154)。他に指示されないなら、クライアントは、同様に着信するパケットを連続的に処理する。
【0071】
音声、映像、及び/又はオーバーレイ情報が別々のチャネルを介して通信されるとい実情は、クライアントにそれが届いたらすぐに、特定のタイプの情報にアクセスすることを可能にする。全てのデータ種が単一のチャネルで多重化される実施例では、クライアントにより最も必要とされるデータの基準とは対照的に、到着の順序でデータを処理するように課せられる。たぶん、そのようなクライアントは、あるタイプのデータが不足しており、バッファに格納されたデータのタイプのパケットを有するが、最初に到着した他のデータのタイプを処理することが強いられる。しかし、クライアントは、望まれた情報を検索し、処理するように構成される。
【0072】
多くの実施例では、サーバは、音声、映像、オーバーレイ、及び/又は制御チャネルの各々の上で送信された情報と共にデジタル権利管理(DRM)情報を含む。ある実施例では、DRM情報の性質についての情報が、サーバからクライアントに送信される。クライアントは、DRM保護された情報を再生するために必要な復号化を実行する能力を有することを知らせ、又は、この能力を有さないことを応答する。
【0073】
先に述べたように、本発明によるクライアントの多くの実施例は、ユーザ指令に直接的に応答しない。変わりに、クライアントは、クライアントにより表示されるべき音声、映像、及び/又はオーバーレイ情報を選択することで、その指令をサーバに転送し、そして、サーバがその指令に応答する。多くの実施例では、クライアントの性能が、受信するパケットの処理をはるかに超えて拡張しないという事実が、クライアントが実装される単純さへの鍵となる。本発明によるサーバ及びクライアントの実施例によるユーザ指令の処理は、より詳細に考慮される。
【0074】
本発明のシステムの実施例は、しばしば、ユーザ指令に応答するときの待ち時間を減少するように構成される。なぜなら、時間遅れを減少することは、システム10と相互作用するときのユーザの経験を高めることができる。時間遅れは、ユーザ指令を受信する時間と、再生デバイス上で音声、映像、及び/又はオーバーレイ情報の表示との間の遅延である。本発明の十知れによるサーバの実施例の多くは、時間遅れを減少することを試みる。ある技術は、ユーザ指令に応答して送信される情報を即座に処理するために、クライアントのキューを管理することである。クライアントに情報を単に送信するだけでユーザに応答するサーバがあり、遅延は、新しく送信された情報を再生する前にキューイングされた情報を再生するクライアントのために生じる。サーバは、ユーザ指令に応答してサーバが音声、映像、及び/又はオーバーレイ情報を送信する前に、そのキューをフラッシュするために、クライアントへ指令を送信することでシステム待ち時間を減少することができる。一旦、キューがフラッシュされると、新しく受信した情報は、クライアントによって即座に表示される。
【0075】
多くの実施例では、ユーザ指令に応答してサーバによって送信された音声、映像、及び/又はオーバーレイ情報は、以前のマルチメディア送信に対して異なるフォーマットを有する。フォーマット変更は、解像度、映像幅及び高さ、音声のサンプリング速度、クライアントがキューイングすべきデータ量、クライアントがデータのタイムスタンプ又はDRMも有効化に基づいてデータを処理すべき方法においてデータのフォーマットを符号化するときの変更を含む。ユーザ指令に応答してフォーマットの変更が要求される例では、サーバは、新しいフォーマットでメディア情報を送信する前に、クライアントと共にメディアチャネルを再初期化することができる。
【0076】
図8および9は、クライアントによるユーザ指令の受信に応答して、本発明の実施例によるクライアント及びサーバにより実行される動作を表すフローチャートである。表されるように、説明される実施例は、異なるタイプのデータの送信に関係するフォーマットの変更を蓄積する性能及びシステム待ち時間を減らす操作を実行する性能を有する。
【0077】
最初に図8を参照すると、本発明の実施例によるサーバから受信した情報およびユーザ指令に応答したクライアントの処理のフローチャートが説明される。続ける前に、我々は、そのプロセスが追加のユーザ指令の発生によって中断されることに注意が必要である。処理160は、ユーザコマンドの受信で始まる(162)。クライアントは、コマンドがクライアントによって処理され得るか(典型的には、これは、ユーザ指令に続いて、表示さえるべき音声、映像、及び/又はオーバーレイ情報のコンテンツに非依存の指令である)、又は、それはサーバに転送すべきか否かを判断するために検査する。ユーザ指令はクライアントによって処理され、クライアントはユーザ指令に応答し、音声、映像、及び/又はオーバーレイ情報及びサーバコマンドのための含むループに再度入り、一方で、さらなるユーザ指令による中断を待つ。
【0078】
ユーザ指令がクライアントによって処理できない場合、ユーザ指令は、制御チャネルを介してサーバに送信される(168)。それから、クライアントは、サーバからの制御メッセージのためのループチェックに入り(170)、制御メッセージが無い場合、再生のための音声、映像、及び/又はオーバーレイ情報を処理し(172)、サーバによって特定される間隔でサーバへの制御チャネルを介してタイムスタンプ報告を送信する(173)。さらに後述するように、タイムスタンプ報告は、ユーザ指令の提供と同時に、再生される音声、映像、及び/又はオーバーレイ情報を決定するためにサーバによって使用される。
【0079】
制御情報がサーバから受信され、クライアントが制御情報の種類を決定する。制御情報は、そのキューに再同期するためにクライアントにコマンドを送信する。再同期(176)は、キューのフラッシュ及び/又は新しいタイマー値をクライアントに割り当てることを含む。キューのフラッシュは、クライアントが、サーバにより送信される新しいデータを即座に再生することを可能にする。多くの例では、クライアントは、そのキューをフラッシュせずに再同期される。キューをフラッシュさせない再同期は、システムが構成を再生終了することを要望するとき、メニューのようなユーザインタフェースに返すようなキューの中の情報の表示が要求される例で役に立つ。そのような例は、サーバが、特徴表現を切り取らずにユーザインタフェースに自動的に戻ることをクライアントに意図するときである。多くの例で、サーバは同期要求を送信するが、クライアントによってキューイングされたメディア(又は、示されたタイムスタンプより少ないタイムスタンプを有するメディア)が再生終了するという肯定応答が受信されるまでクライアントに付加的情報を提供しない。幾つかの実施例では、キューをフラッシュせずに再同期することが、音響効果が再生されるまでクライアントによってユーザインタフェースが更新されないことを確実にするために使用され得る。
【0080】
再同期指令の受信に続いて、クライアントは、制御チャネルを介してサーバに再同期の肯定応答を送信することができる。クライアントは、それから、クライアントがサーバから受信する音声、映像、及び/又はオーバーレイ情報を処理し続け、一方で、さらなる制御指令(170及び172)のチェックをし、制御チャネルを介してサーバにタイムスタンプ報告を送信する(173)
【0081】
クライアントは、その制御がデータチャネルの再同期化を要求することを判断する(178)。一旦クライアントがサーバによって提供される新しいチャネルパラメータに適合すると、クライアントは、再生デバイスによって表示するための音声、映像、及び/又はオーバーレイ情報を処理し且つ出力し続け、一方で、更なる制御指令(170及び172)をチェックし、制御チャネルを介してサーバにタイムスタンプ報告を送信する(173)。
【0082】
クライアントは、制御指令が制御セッションの官僚を要求することを判断する(184)。どのケースでも、クライアントは、確立された音声、映像、及び/又はオーバーレイ情報の各々を切断することによって制御セッションを完了する(186)。クライアントは、そのシステムの機能性を実行するのに必要な制御指令の他のタイプも処理することができる。制御指令の処理に続いて、典型的には、クライアントは再生デバイスによって表示するための音声、映像、及び/又はオーバーレイ情報を処理し続け、一方で、さらに制御指令をチェックし(170及び172)、制御チャネルを介してサーバにタイムスタンプ報告を送信する(173)。
【0083】
図9を参照すると、クライアントから送信されたユーザ指令を受信した本発明の実施例によるサーバの動作のフローチャートが説明される。プロセス200は、制御チャネル上でクライアントにより送信されたユーザ指令の受信を開始する。サーバは、ユーザ指令の性質を判断し(203)、それに応じて応答する。ユーザ指令への適切な応答は、典型的には、ユーザ指令を受信したときにデバイスを再生することによって表示される音声、映像、及び/又はオーバーレイ情報のコンテンツに依存する。多くの例では、クライアントのタイムスタンプ報告は、サーバが、ユーザ指令受信時に再生される音声、映像、及び/又はオーバーレイ情報を正確に判断することを可能にする。ユーザが指令を発行したときに再生される音声、映像、及び/又はオーバーレイ情報の状況で不適切な指令を提供するかもしれない。例えば、メニューが表示されるとき巻き戻す指令は、特徴表現を再生する間に、メニューオプションを選択する指令として不適切である。
【0084】
特徴表現の間に、典型的には、有効なユーザ指令が、特徴が表される速度及び/又は向きの操作、メニューの遷移及び/又はオーバーレイの追加を要求する。メニューが再生されると、典型的には、サーバは特定のメニューの表示の間に実行される有効なアクションに関する情報を有する。この情報は、状態機械の形式をとることができる。サーバが、ユーザが命令を発行するときのメニューの状態記録を有する場合、有効な指令は、典型的には、別なメニュー状態への遷移又は特徴表現の表示を含む。
【0085】
ユーザ指令が、クライアントによる音声、映像、及び/又はオーバーレイ情報の迅速な表示を要求するとき、適切と判断されるなら(204)、サーバはキューイングされたメディア情報をフラッシュするためにクライアントへ指示する制御情報を送信する(206)。一旦、再同期メッセージが送信され、肯定応答されると、サーバは要求された音声、映像、及び/又はオーバーレイ情報を送信する。上述したように、キューのフラッシュは、ユーザ指令に応答するシステムの待ち時間を減少させ、指令が再生される前にクライアントによってキューイングされる情報として特徴表現の中に場違いのジャンプを避けることができる。サーバとクライアントとの他のタイプの再同期も実行されうる。
【0086】
特徴表現が再生されると、ユーザ指令が受信されるときに再生される音声、映像、及び/又はオーバーレイ情報を判断するために、クライアントによって提供されるタイムスタンプ報告を使用することができる。それから、キューをフラッシュすること、及び、ユーザ指令が発行されるポイントに対応する再生された特徴表現におけるポイントから速度及び向きに関するユーザの指令にしたがう特徴を表示し、クライアントにより処理され且つ再生される音声、映像、及び/又はオーバーレイ情報を送信することによって、特徴が表示される速度や向きを含むユーザ指令に応答することができる。このキューをフラッシュすることによって、ユーザが指令を発行する前に、しばしば、クライアントによってキューイングされる情報を無理に再送する。しかし、キューイングされた情報は、そのシステムのユーザの経験を損ない、ユーザの指令に従わない方法でクライアントにより再生される。
【0087】
サーバは、ユーザ指令が異なるタイプのマルチメディア情報を先に送信されたマルチメディア情報に遷移することを要求すると判断するとき(208)、サーバは、音声、映像、及び/又はオーバーレイチャネルを再初期化するためにクライアントに向けられるクライアントへの制御情報を送信することができる(210)。それから、サーバは、新しいチャネルパラメータにしたがって音声、映像、及び/又はオーバーレイ情報を送信することを始める。
【0088】
上記の記述は、ユーザ指令に応答して又は他の問題のための他の環境の下でサーバにより送信されうる制御情報を網羅することを意味しない。サーバが、クライアントに別な種類のコマンドが送信されるべきであると判断した場合、サーバはそのようなコマンドを送信することができる(220)。実に、本発明の実施による音声、映像、及び/又はオーバーレイ情報を提供するためにトランスコードを用いるサーバは、クライアントによって提供される指令に適切なトランスコードを映像に提供することを確実にする手法でユーザコマンドに応答するように構成される。
【0089】
上記の記載は、一般に、音声、映像、及び/又はオーバーレイ情報が1つのサーバで提供されることに焦点を当てている。本発明の多くの実施例は、クライアントに情報を提供するために複数のサーバを使用する。ある実施例では、複数のサーバは異なるタイプの情報を提供する各々のサーバと共にクライアントに情報を同時に提供する。別の実施例では、第1のサーバがクライアントに音声、映像、及び/又はオーバーレイ情報を提供して、それから遷移がなされ、第2のサーバが、音声、映像、及び/又はオーバーレイ情報をクライアントに提供する。
【0090】
複数のサーバがクライアントに対して同時にデータを提供することができる本発明の実施例によるシステムが、図10において説明される。システム10’は、ネットワーク14’を介してクライアント230に接続された複数のサーバ12a、12bを含む。クライアントは、クライアントにより受信される音声、映像、及び/又はオーバーレイ情報の常時を可能にする再生デバイス232に接続される。図10は、概略的にサーバ及びクライアント間に存在するチャネルを説明する。第1のサーバ12a’は、映像17b’及び音声チャネル17a’を介してクライアントに接続される。クライアント及び第1のサーバは制御チャネル19’を介して互いに通信することも可能である。第2のサーバ12bは、オーバーレイチャネル17c’を介してクライアント、及び双方向の制御チャネル19aを介して第1のサーバに接続される。図10に表される構成は、特徴表現が第1のサーバによって提供され、及び特定の言語のサブタイトルオーバーレイが第2のサーバで提供されるとき存在する構成と似ている。
【0091】
情報が、クライアントから複数のサーバに送信されるとき、クライアントに送信された情報を調整することは、問題になりうる。多くの実施例では、単一のサーバがコントロールハブとして活動するように選択される。コントロールハブサーバは、クライアントと通信する全てのサーバに適切な制御情報を送信する責任を有し、他のサーバからクライアントに制御情報を転送する責任を有する。典型的には、コントロールハブは、クライアントが最初に制御セッションを確立しようとするサーバになるために選択される。多くの例では、ユーザは、第1のサーバに存在しない情報を要求し、第1のサーバは、要求された情報を提供可能な他のサーバとのコネクションを確立しようとする。幾つかの例では、これは単に単一のチャネルの情報になり得る。他の例では、全ての要求情報は、別のサーバ上に存在するかもしれない。例えば、第1のサーバは、ユーザインタフェースのための情報を格納し、ユーザインタフェースは別のサーバ上に格納される特徴表現にユーザがアクセスできるようにする。第1のサーバがある期間全ての要求情報を提供し、それから第2のサーバがある期間全ての要求情報を提供する例では、第1のサーバは、制御ハブ又は第2のサーバへの手動制御として機能することができる。
【0092】
本発明によるシステムの実施例は、1つ以上のクライアントと通信する1つ以上のサーバも含む。これらの実施例では、ただ1つのサーバがコントロールハブとして動作し、特定の制御セッション上にある各サーバ及びクライアントとのコネクションの制御を維持することができる。あるいは、制御メッセージが制御セッションに含まれるサーバ及びクライアントの全てにブロードキャストされ得る。ある実施例では、サーバ又はクライアントが情報を提供し、又は、サーバの1つと制御セッションを第1に開始したクライアントからの指令に責任を有する場合、サーバ又はクライアントは制御セッションの一部となるだろう。あるいは、制御メッセージは、制御セッションに含まれるサーバ及びクライアントの全てにブロードキャストされる。他の実施例では、コントロールハブとして動作するサーバは、制御セッションの一部を形成するクライアント及びサーバを決定する。
【0093】
上述したように、本発明の実施例であるシステムにおける様々なクライアントは、異なる性能を有することができる。多くの例では、クライアントの性能は、クライアント内で基礎となるハードウェア及びハードウェアを構成するために使用されるソフトウェアによって判断される。ハードウェアが通常固定される一方で、クライアントの操作は、ソフトウェアを変更することによって修正され得る。本発明の多くの例では、サーバ及びクライアントは、サーバがクライアントに更新されたソフトウェアを低要するように構成される。
【0094】
幾つかの例では、単なる更新がサーバによるクライアントに提供される情報、及び、そのソフトウェア又はファームウェアを修正するためにクライアントにより使用される情報に単一の更新が実行される。単一の更新は、典型的には、クライアントへの修正がサーバ及びクライアントが通信する方法に影響を与えない環境下で実行される。
【0095】
ソフトウェアの更新がサーバ及びクライアントが通信するためのプロトコルの修正を含む例では、本発明の幾つかの実施例は、高度な更新を実行する。高度な更新は、更新を実行する前にネットワークの状態を判断することを含むソフトウェア又はファームウェアの更新である。全ての利用可能な更新の互換性とともに、システムにおける全サーバ及びクライアントの現状の性能が知られている場合、どのデバイスが更新し、各デバイスのためのどの更新を使用するかについての決定をすることができる。
【0096】
上述したように、本発明の実施例によるデバイスの性能は、XMLファイルとして表現されている。デバイスが更新を受信する前に、デバイスはそのXMLに更新を提供するデバイスに提供する。XMLは、性能リストを生成するために分解される。性能リストは、デバイスに適用する更新を決定するために使用され得る。高度な更新が実行されるとき、ネットワークに接続されたサーバ及びクライアントの全ては集結し、各デバイスへの更新パスを決定するために使用されるクライアント及びサーバのリストは、システムの安定性を確実にするだろう。ネットワークの正しい形が集結することを確実にするには、高度の更新は、ユーザ参加者に、全デバイスがネットワークに接続され有効になったことを確実にすることを要求する。
【0097】
多くの実施例では、各デバイスの個々の更新は、バージョン番号を用いて区別される。多くの例では、異なる更新が異なる通信プロトコルと互換性がある。ネットワークに接続された他のデバイスの全てが(更新された)通信プロトコルをサポートしないなら、デバイスは、更新された通信プロトコルをサポートするために更新されるべきではない。居赤なるデバイスも更新された通信プロトコルをサポートしない場合、更新された通信プロトコルへの移行を含む更新は、ネットワーク上の他のデバイスに適用されるべきではない。
【0098】
高度な更新を実行する本発明の実施例による処理の実施例を、図11を用いて説明する。処理240は、利用可能な更新リストを獲得し(242)、各デバイスの性能を決定するためにネットワークに接続されたデバイスに問合せる(244)。上述したように、問合せは、全ての必要なデバイスが接続され、更新を開始するように適切に構成されることを確実にするように、ユーザとの対話を有する。性能リストが獲得されたなら、利用可能な更新の認識は、適切な更新がインストールされるなら、ネットワークに接続された各デバイスがサポート可能なプロトコルのバージョンが使用される。一旦、プロトコルバージョンが決定されると、各デバイスの適切な更新バージョンは決定され、必要な更新が各デバイスに提供される(248)。一旦、デバイスが更新を受信すると、その更新は適用される(250)。多くの例では、全デバイスが全ての意図された更新を受信したという確認を受信するまで、更新は適用されない。
【0099】
ある実施例では、クライアントへメディアを送信するとき、クライアントから情報を獲得する方法は、クライアントの性能を判断するために使用される方法として更新するものと同一である。多くの例では、本発明の実施例によるサーバは、更新を示す発見の間に、クライアントへ情報を送信することによる押下更新が、押下される。ある実施例では、情報は、サーバにより送信されるSSDPパケットの中のフラグセットを用いて伝送される。SSDPパケットを受信するクライアントは、サーバへ問い合わせを行って、URLを獲得する。クライアントはそれからURLを用いてHTTPポートに接続し、適応可能な更新をダウンロードする。多くの例では、更新サーバは、別個のUPNPデバイスUUIDを用いることでそれ自身を識別することができる。
【0100】
上述の記述は、本発明の多くの特定の実施例を含む一方で、これらは、発明の範囲に関する限定として解釈されるべきものでなく、それらの例としてみなされるべきである。したがって、発明の範囲は、説明された実施例によって判断されず、添付のクレーム及びそれらの均等なものによって判断されるべきである。
【図面の簡単な説明】
【0101】
【図1】本発明に係る分散システムの実施例の概略図である。
【図2】サーバとクライアントとの間の通信チャネルを示す本発明の実施例に係るクライアントに接続されたサーバの概略図である。
【図3】本発明の実施例に係るサーバの概略図である。
【図4】本発明の実施例に係るクライアントであるネットワーク接続されたコンシューマ電子デバイスの概略回路図である。
【図5】セッションの開始及び誘導中の本発明の実施例に係るクライアントの動作を示すフローチャートである。
【図6】セッションの開始及び誘導中の本発明の実施例に係るサーバの動作を示すフローチャートである。
【図6a】多数の通信チャネルを介した送信用のトランスコーディングデータのための本発明の実施例に係る処理を示すフローチャートである。
【図7】本発明の実施例に係るクライアントがメディア情報の受信パケットを処理する方法を示すフローチャートである。
【図8】サーバからの制御命令及びユーザからのユーザ命令の受信に応答して本発明の実施例に係るサーバの処理を示すフローチャートである。
【図9】クライアントによるユーザ命令の転送に応答して本発明の実施例に係るサーバの処理を示すフローチャートである。
【図10】本発明に係る分散システムの実施例の概略図である。
【図11】ネットワークに接続されたサーバ及びクライアントを更新するための本発明の実施例に係る処理を示すフローチャートである。
【技術分野】
【0001】
本発明は、一般にマルチメディア分配システムに関し、及び、特に双方向マルチメディアデータ分配システムに関する。
【背景技術】
【0002】
音声及び/又は映像情報は、その情報を表示可能なコンシューマ電子デバイス(Consumer electronic device)に様々な形式で提供される。コンパクトディスク(CD)又はデジタルビデオディスク(DVD)のような固定様式でメディアを要求するコンシューマ電子デバイスは、ユーザに利用可能なCD又はDVDを再生することに制限される。既定の時間でユーザにアクセス可能な音声及び/又は映像の量を増加させるために、コンシューマ電子機器の製造会社は、コンシューマ電子デバイスの中のストレージデバイスに固定メディアに含まれる音声及び/又は映像情報を送信することを模索している。
【発明の開示】
【発明が解決しようとする課題】
【0003】
内部ストレージを使用するシステムは、追加された利便性を提供するが、典型的には、ユーザに、そのストレージデバイスに含まれる音声及び/又は映像情報を表示することを制限する。ユーザに音声及び/又は映像情報をさらに利用可能にする別のアプローチは、ネットワーク接続でコンシューマ電子デバイスに提供することである。コンシューマ電子デバイスがネットワークに接続されるとき、音声及び/又は映像情報は、遠隔に記憶され、ネットワークを介してコンシューマ電子デバイスに要望どおりに提供される。多くの例では、コンシューマ電子デバイスは、固定メディアから音声及び/又は映像情報を抜き出す能力を備え、音声及び/又は映像情報を格納し、ネットワークを介して音声及び/又は映像情報を獲得する。
【課題を解決するための手段】
【0004】
本発明に係る実施形態は、ネットワーク上でマルチメディアを配布する。一形態において、本発明の実施形態は所定のマルチチャネルプロトコルにしたがって配布のための第1のフォーマットで符号化された映像をトランスコードすることができる。別な形態では、本発明の実施形態は自動的にシステムを更新するための機構を有する。本発明の一実施形態は、ネットワークを介してクライアントに接続されたサーバ、第1のフォーマットにしたがってフォーマットされる音声、映像及び/又はオーバーレイ(overlay)情報を含む少なくとも1つのストレージデバイス、を有しクライアントは、クライアントが復号化可能な音声、映像及び/又はオーバーレイ情報フォーマットを示す情報を格納するストレージデバイスを有し、サーバは、別々の音声、映像、オーバーレイ、及び制御チャネルを介して音声、映像、オーバーレイ、及び制御を送信するように構成されることを特徴とするデータ分配システムを含む。
【0005】
更なる実施形態では、サーバは、クライアントが復号化可能な音声、映像及び/又はオーバーレイフォーマットを示す情報を獲得するために、クライアントに問合せをするように構成される。
【0006】
別の実施形態では、サーバは、少なくとも一つの格納された音声、映像及びオーバーレイ情報を、第2のフォーマットにトランスコードするように構成され、
音声、映像及び/又はオーバーレイフォーマットを示す情報は、クライアントが第2のフォーマットで符号化された音声、映像及び/又はオーバーレイを復号化できることを示す。
【0007】
さらに別の実施形態では、サーバが、更新可能リストを獲得するように構成され、かつ、サーバは、クライアントが復号化できる音声、映像及び/又はオーバーレイフォーマットを示す情報に基づいてクライアントに適用されうる更新を判断するように構成される。
【0008】
別の実施形態は、自デバイスの性能に関する格納された情報を格納するストレージデバイスを格納するする第3のデバイスをさらに有し、サーバは、第3のデバイスの性能に関する格納情報を獲得するために第3のデバイスに問合せをするように構成される。
【0009】
またさらなる実施形態では、サーバは、第3の機器の性能に関する第3のデバイスから獲得した情報を参照して、クライアントに適応可能な更新を判断するように構成される。
【0010】
さらに別の実施形態では、サーバは、サーバの性能に関する情報を格納するストレージデバイスを含む。
【0011】
さらに別の実施形態では、サーバは、サーバの性能に関する情報を参照してクライアントに適用される更新を判断するように構成される。
【0012】
別の実施形態は、プロセッサ、プロセッサに通信するように構成され且つ別々のチャネルで音声、映像、オーバーレイ、及び制御情報のパケットを受信するように構成されるネットワークインタフェース、及び、プロセッサによって符号化され得る音声、映像及びオーバーレイ情報に関する情報を格納するストレージデバイスを有することを特徴とするクライアントを有する。
【0013】
さらに追加の実施形態では、ネットワークインタフェースを介してプロセッサによって復号化される音声、映像及び/又はオーバーレイ情報フォーマットに関する格納情報によって送信されるネットワークインタフェースを介して受信した問合せに応答するようにクライアントのプロセッサは構成される。
【0014】
別の付加的な実施形態では、格納情報は、XMLファイルとして格納される。
【0015】
さらに付加的な実施形態は、プロセッサ、プロセッサと通信するネットワークインタフェースを有し、プロセッサは、第1のフォーマットで符号化された音声、映像及びオーバーレイ情報を受信し且つ第2のフォーマットに音声、映像及び/又はオーバーレイ情報の少なくとも1つをトランスコードするように構成され、プロセッサ及びネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバを有する。
【0016】
別の実施形態では、プロセッサ及びネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成される。
【0017】
さらに別の実施形態では、プロセッサ及びネットワークインタフェースデバイスは、外部デバイスの性能を示す情報を受信するように構成される。
【0018】
さらに別の実施形態では、プロセッサは、性能リストを獲得するために情報を解析するように構成される。
【0019】
付加的な実施形態は、プロセッサ、プロセッサと通信するネットワークインタフェースを有し、プロセッサ及びネットワークインタフェースデバイスは、利用可能な更新リストを獲得するように構成され、プロセッサ及びネットワークインタフェースデバイスは、外部デバイスの性能に関して外部デバイスに問合せるように構成され、プロセッサは、利用可能な更新リスト及び外部デバイスの性能に基づいて外部デバイスに提供される更新を判断するように構成され、プロセッサ及びネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバを有する。
【0020】
別の付加的な実施形態は、サーバの性能に関する情報を含むストレージデバイス、プロセッサは、サーバの性能に関する記憶情報に基づいて外部デバイスに提供される更新を決定するようにさらに構成される。
【0021】
別の実施形態では、外部デバイスの性能は、各デバイスによってサポートされる通信プロトコルを含み、少なくとも1つのプロトコルは、各利用可能な更新によってサポートされ、プロセッサは、各更新されたデバイスが同じ通信プロトコルをサポートすることを確実にすることによって、外部デバイスへの更新を適用することを判断するように構成されることを特徴とする。
【0022】
本発明に係る方法の実施形態は、データネットワーク上でデータを通信する方法であって、音声、映像、及びオーバーレイ情報を検索し、少なくとも1つの音声、映像、及びオーバーレイ情報をトランスコードし、音声、映像、及びオーバーレイ情報の1つ以上に関係する音声、映像、オーバーレイ、及び制御情報を送信し、音声、映像、オーバーレイ、及び制御情報の1つ以上に関係する音声、映像、オーバーレイ、及び制御情報を受信し、別々の音声、映像、及びオーバーレイキューで受信した情報をキューイングし、情報に関係するタイムスタンプに基づいてキューイングされた情報を処理し、処理された情報の少なくとも1つのタイムスタンプを示す報告を送信し、報告を受信し、受信した報告内に含まれる少なくとも1つのタイムスタンプに関する情報を記録することを特徴とする。
【0023】
本発明に係る方法のさらなる実施形態は、音声、映像、及びオーバーレイ情報をトランスコードする適切なフォーマットを判断することを有する。
【0024】
本発明に係る方法の別の実施形態は、データネットワーク上で通信するように構成されるデバイスを更新する方法であって、利用可能な更新及び各更新でサポートされる通信プロトコルのバージョンを判断し、各デバイスによってサポートされる通信プロトコルのバージョンを含む各デバイスの性能を判断し、必要な更新が実行されるなら、全デバイスによってサポートされる通信プロトコルの最新バージョンを判断し、必要な更新を実行することを特徴とする更新方法を有する。
【発明を実施するための最良の形態】
【0025】
図面を参照すると、本発明の実施形態は、少なくとも1つのクライアントとネットワークを介して接続された少なくとも1つのサーバを有し、音声及び/又は映像情報の配布を可能にする。多くの実施形態のうちの1つは、サーバがクライアントに様々な情報を送信することができる。情報の種類のうち各々は、典型的には異なるチャネル上で送信される。他の例では、情報のストリームがリアルタイムでトランスコードされる。多くの実施形態のうち別な形態は、制御チャネル上でクライアントによってサーバへ転送されたユーザ指令に応じて、サーバがクライアントへ送信するための情報を選択する。実施例の多くは、ユーザ指令に応じた表示のためにクライアントへ、音声、映像及び/又はオーバーレイ情報の適切なシーケンスを提供することによって、サーバは、双方向(interactive)なグラフィカルユーザインタフェースを介して指図するユーザへのインプレッション(impression)を生成することができる。双方向性を達成するために、サーバは、通常は、クライアントによって表示されるユーザインタフェースの状態に関する情報を保持する。加えて、サーバは、ユーザ入力に応じてあるユーザインタフェースから別なユーザインタフェースへ遷移するときの待ち時間を減らすために、クライアントの設定を制御することができる。多くの実施例では、システムは、ソフトウェア更新を配布することができる。
【0026】
本発明による配布システムの実施例が、図1を用いて説明される。配布システム10は、ネットワーク14を介して多くのデバイスに接続される多くのサーバ12を有する。説明される実施例において、デバイスは、コンピュータ16、テレビ20に接続された据付ボックス18、及び、ハンドヘルドコンピューティングデバイス22を有する。サーバ12と対話するために、各デバイスは、クライアントとしてデバイスを活動させることを可能にするソフトウェア及び/又はハードウェアを有する。それゆえ、クライアントという用語は、本発明の実施例にしたがってサーバと通信可能なデバイスを初めから終わりまで記述するために使用される。
【0027】
いくつかのクライアントは、極めて洗練された演算機能を有するが、多くの他のクライアントは、制限された演算及びストレージ機能を有する。それゆえ、本発明によるクライアントは、典型的には、殆どのユーザ指令に応答して直接的に変化しないとても単純なルーティンを実行する。処理の大部分は、サーバにシフトされ、サーバはユーザ入力を処理し、システムの双方向性機能を実行する。サーバは、とても正確な方法で、クライアントにより表示される情報を制御し、その方法は要求された情報がクライアントによってほとんど即座に表示されることを確実にすることで、サーバがユーザの要求に応答することを可能にする。典型的には、クライアントは、ユーザ要求の大部分を解釈する機能を有さない。クライアントは、単に、サーバにユーザ要求を送信し、サーバによって指示される方法で、サーバがクライアントに提供する情報を表示する。サーバの動作、ネットワーク、及びクライアントは後述する。
【0028】
サーバ12、ネットワーク14、及びクライアントは、ネットワークを介してサーバが情報を送信することを可能にするように構成される。ある実施例では、サーバ及びクライアントは、TCP/IPプロトコルを用いて固定されたネットワーク上で通信する。他の実施例では、他のネットワーク通信プロトコルが使用され、固定接続は、無線接続に置き換えられる。ネットワークという用語は、直接接続、ホームネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及びインターネットのようなネットワークを含み、サーバ及びクライアント間のいかなる接続をも最初から最後まで言及するために使用される。
【0029】
本発明の実施例によるサーバ及びクライアント間に確立された通信チャネルは、図2において概略的に説明される。本発明の実施例によるサーバ12は、音声、映像、及びオーバーレイ情報のためのクライアントとの別個の通信チャネル17を確立する。加えて、制御チャネル19は、サーバ及びクライアント間の制御情報の双方向通信を可能にして確立される。
【0030】
映像チャネル17bは、サーバからクライアントへのパケット化された映像情報を通信するために使用される。より詳細に後述されるように、映像チャネルは、映像情報のパケットの中に含まれる映像の種類にしたがって構成される。典型的には、映像情報のパケットは、符号化された映像のフレームを含む。そのフレームは、特徴表現(feature presentation)、メニューの部分、又は、ユーザインタフェースの部分になり得る。用語「特徴表現」は、典型的には直線的に再生する長編フィルムのような連続した映像シーケンスを記述するために最初から最後まで記載され、ユーザとの相互作用は要求しない。用語「特徴表現」は、広い意味で意味され、事前録画された映像およびブロードキャストストリームのいかなる種類をも包含し、長編フィルムに限定されない。
【0031】
音声チャネル17bは、サーバからクライアントへパケット化された映像情報を通信するために使用される。映像チャネル同様に、サーバは映像チャネルの特徴を特定する。音声チャネルによって送信される音声データは、映像又はオーバーレイ情報を必ずしも伴う必要はない。本発明の多くの実施例は、音声録音(例えば、音楽など)を配布する機能を有する。音声情報は、映像チャネル上で送信された映像情報をも伴うことができる。多くの例では、音声情報は、「特徴表現」に伴うサウンドトラックである。しかし、音声情報は、メニューやユーザインタフェースの部分を形成する音響効果にもなり得る。
【0032】
オーバーレイチャネル17cは、クライアントにオーバーレイ情報を送信するためにサーバによって使用され得るチャネルである。オーバーレイは、映像のフレーム上のスーパーインポーズ、又は、背景映像無しで表示可能な全体画像のどちらかになり得る絵又はテキストである。オーバーレイの例は、「特徴表現」を伴うサブタイトル、又は、メニュー部分又はユーザインタフェースである強調されたメニューオプションを含む。オーバーレイ情報は、絵又はテキストとして符号化される。ある実施例では、オーバーレイは、Joint Photographic Experts Groupにより特定されるフォーマットに交換するJPEGファイルにしたがって符号化される。別な実施例では、オーバーレイはビットマップとして符号化される。オーバーレイ情報、及び、オーバーレイチャネルの種類は、通常は、サーバによって特定される。
【0033】
制御チャネル19は、制御情報を送信するために、サーバ及びクライアントの両方によって使用され得るチャネルである。本発明に係るシステムの実施例は、サーバ及びクライアント間の情報を確実に通信するように構成される。より詳細に後述されるように、クライアントは、ユーザ指令及びタイミング情報をサーバに送信するために、制御チャネルを使用する。次に、サーバは、制御チャネルを使用して、クライアントと音声、映像及びオーバーレイチャネルを確立し、受信した音声、映像及びオーバーレイ情報を表示すべき方法に関する指令をクライアントに提供する。他の実施例では、音声、映像及びオーバーレイチャネルは、音声、映像及びオーバーレイチャネルの各々の上を送信されるパケットによって初期化される。制御チャネル上を通信するサーバ及びクライアントの性能は、システム全体がユーザと相互作用することを可能にする。例えば、本発明の実施例によるクライアントは、制御チャネルを使用して、サーバにユーザコマンドを送信する。それから、サーバは、音声、映像及び/又は制御チャネルを介してクライアントに情報を送信することによって、ユーザコマンドに応答する。音声、映像、オーバーレイ及び/又は制御情報の適切な選択は、特徴表現の素早い転送、中止、又は、巻き戻しのような効果を達成する。相互作用特性が本発明の実施形態により実行される方法は、さらに後述される。
【0034】
本発明の多くの実施例では、ネットワーク14上の通信は、TCP/IPプロトコルにしたがって実施される。TCP/IPが使われる実施例では、別々のチャネルが各チャネルへの別々のポートアドレスに割り当てることによって確立される。このようにして、情報のパケットは、ネットワークを横断して送信され、ポートアドレスは、パケットが関係付けられるのがどのポートかを判断するために使用される。他の実施例では、UDPプロトコルがネットワーク上の情報を通信するために、IPプロトコルと連動して使用される。他のプロトコルも、本発明の実施例によるネットワーク上で情報を通信するために使用でき、様々な技術が、音声、映像、及び/又は、コマンド情報の通信のための別々のチャネルを生成するために使用される。他の実施例では、移動体通信プロトコルがクライアントとサーバの間の必要なチャネルを確立するために使用される。あるいは、チャネルは、IEEE1394標準に準拠する接続上で見出される。他の実施例では、他のネットワークプロトコルが音声、映像、オーバーレイ、及び/又は、コマンド情報を通信するために使用され得る。確かに、異なるネットワークは、異なるタイプの情報、及び/又は、同じタイプの情報の異なるシーケンスを通信するために使用され得る。本発明の多くの実施例は、別々のチャネルを有し、様々な実施例は、音声、映像、及び/又は、制御情報を単一のチャネル上で結びつける。
【0035】
クライアントにサーバによって音声、映像、及び、オーバーレイチャネルを介して送信される音声、映像、及び、オーバーレイ情報は、クライアントによりユーザに提示される情報を決定する。上記したように、この情報は様々な形式をとり得る。例えば、音声、映像、及び/又は、オーバーレイ情報はユーザインタフェースに関係付けられる。多くの例では、音声、映像、及び/又は、オーバーレイ情報は、同じコンテンツに関連しない。その例は、特徴表現上で表示される他の利用可能なプログラミング、又は、ユーザに特徴表現が送信され、中止され、又は、他のやり方に操作されることを通知する記号オーバーレイについての情報を含むオーバーレイを有する。
【0036】
多くの実施例では、サーバは、符号化された音声、映像、及びオーバーレイ情報を適切に含むファイルから、情報を抽出することによって送信のための情報を獲得する。他の実施例では、符号化された音声、映像、及びオーバーレイ情報はサーバによってデータのストリームとして受信される。幾つかの実施例では、サーバは、第1のフォーマットで符号化された音声、映像、及び/又はオーバーレイ情報を受信し、送信用の適切なフォーマットで音声、映像、及び/又はオーバーレイ情報をトランスコードする。情報を受信しようとするクライアントが第1のフォーマットで符号化された情報を復号化できないために、送信のために適切ではないかもしれない。多くの実施例では、サービス品質(Quality of Service)の要求は、第1のフォーマットで符号化された情報を、異なるデータ送信速度を要求するフォーマットにサーバにトランスコードさせる。サービス品質測定を利用する実施例では、クライアントは、サーバがサービス品質を測定可能にする情報をサーバに提供する。第1のフォーマットが適切でない別の理由は、音声、映像、及び/又はオーバーレイ情報が第1のファイルフォーマットで符号化されるとき、別々のチャネル上で送信するための音声、映像、及び/又はオーバーレイ情報を直接抽出できないということである。
【0037】
本発明のシステムの典型的な実施例の特徴を一般的に記載したことで、これらのシステムの個々の構成のより詳しい試験が保障される。本発明の実施例によるサーバが、図3に表される。サーバ12’は、少なくとも1つのプロセッサ21、メモリ22、1つ以上のハードディスクドライブのようなストレージデバイス24、及びネットワークインタフェースデバイス26を含む。プロセッサ21は、ネットワークインタフェースを介してクライアントに音声、映像、及び/又はオーバーレイ情報、及び制御コマンドを提供するために、ソフトウェアを用いて構成される。
【0038】
ストレージデバイス24は、1つ以上のデータファイルを含む。データファイルは、1つ以上の音声トラック、1つ以上の画像、1つ以上の特徴表現、及び、1つ以上のユーザインタフェースに関係する音声、映像、及び/又はオーバーレイを含む。本発明の一実施例では、記憶されたデータファイルは、1つ以上の映像トラック、1つ以上の音声トラック、1つ以上のオーバーレイトラック、グラフィカルユーザインタフェースに関係するマルチメディアを含むことができる。ストレージデバイス24は、Van Zoest等による“Multimedia Distribution System”とタイトル付けされ、2004年11月17日に出願された米国特許出願第11/016,184に記載されるマルチメディアに類似のマルチメディアを含むことができ、その出願の内容は、ここにおいてその全体を参照することにより組み込まれる。
【0039】
サーバは、ストレージデバイス24に記憶する、又は、送信用の別なソースから音声、映像、及び/又は、オーバーレイをトランスコードすることができ、そのトランスコード化は、適切なソフトウェアを用いてプロセッサ21を構成することで、実行されうる。他の実施例では、トランスコード化は、サーバ内のアプリケーション特定回路(Application specific circuitry)を用いて実行される。ある実施例では、マイクロプロセッサは、送信用の音声、映像、及び/又はオーバーレイ情報を復号化し、アプリケーション特定回路は、復号化された音声、映像、及び/又はオーバーレイ情報を送信のために符号化する。上述したように、送信された音声、映像、及び/又はオーバーレイ情報は、遠隔で格納され得る。音声、映像、及び/又はオーバーレイ情報が遠隔で格納されたとき、サーバは、情報を受信し、別々の音声、映像、オーバーレイ、及び/又は制御チャネル上に送信するための適切なフォーマットにリアルタイムでその情報をトランスコードする。
【0040】
TCP/IPプロトコルにより通信する本発明の実施例では、ネットワークインタフェースデバイス26及び/又はプロセッサ21は、TCP/IPプロトコルスタックを実施する。TCP/IPプロトコルスタックは、適切なチャネルの各々に関してサーバから、又は、サーバへの情報の送信を処理する。他の実施例では、ネットワークインタフェースデバイスは、他のプロトコルをサポートするように実装される。
【0041】
余談として、当業者は、図3に表されるサーバが概略的な形式で説明されていることを十分理解するだろう。本発明の実施例によるサーバの実際の実装は、様々な形式がとられる。または、当業者は、いかなるサーバ、コンピュータ又はマルチメディアファイルを格納可能であり且つここに記載した方法でクライアントとネットワーク上で通信可能な他の電子デバイスは、本発明によりデータ配布システムの実施例を実装するために使用可能であることを十分理解するだろう。
【0042】
本発明の実施例によるクライアントは、図4に説明される。説明された実施例では、クライアント40は、ネットワーク接続されたコンシューマ電子デバイスである。クライアントは、ネットワーク14及びテレビ及び/又は映像ディスプレイ/モニタ、及び/又はステレオ及び/又はスピーカのような少なくとも1つの再生デバイスとインタフェースで接続するように設計される。クライアント40は、マイクロプロセッサ42を含む。マイクロプロセッサは、クライアントの操作を制御するように構成され、そしてグラフィックアクセラレータ44に接続される。
【0043】
グラフィックアクセラレータ44は、生成するビデオフレームと関係する反復的処理を実行するために使用される。グラフィックアクセラレータは、映像RAM46、I/Oコントローラ48、及びビデオコンバータ50とマイクロプロセッサを接続するためのハブとして動作することもできる。ビデオRAM46は、ビデオフレームの生成に関係する情報を記憶するために、グラフィックアクセラレータによって利用される。ビデオフレームは、ビデオコンバータ50に提供され、それは、テレビやビデオディスプレイ/モニタのような再生デバイスによって再生するための適切なビデオフォーマットにデジタル情報を変換する。フォーマットは、アナログフォーマット又はデジタルフォーマットになり得る。I/Oコントローラは、また、グラフィックアクセラレータとインタフェースで接続し、マイクロプロセッサ及びグラフィックアクセラレータが、ネットワークインタフェースデバイス52、入力インタフェースデバイス54、メモリ56、及び音声出力デバイス58を含むデバイスにバス60を介してアドレス指定することを可能にする。図4に表されるアーキテクチャは、本発明によるクライアントの実施例であるコンシューマ電子デバイスの典型的なアーキテクチャである。プロセッサが直接的及び/又は間接的にI/Oデバイスにインタフェース接続するアーキテクチャを有する他のアーキテクチャもまた使用され得る。
【0044】
ネットワークインタフェースデバイス52は、ネットワークを介して情報を送信し、及び、受信するように使用され得る。情報がTCP/IPプロトコルを介して通信される実施例では、ネットワークインタフェースデバイス及び/又はマイクロプロセッサのような他のデバイスがTCP/IPプロトコルスタックを実施する。他の実施例では、他の通信プロトコルが使用され、それに応じて、ネットワークインタフェースデバイスが実装される。
【0045】
入力インタフェースデバイス54は、ユーザがクライアント40に指令を提供する古都を可能にする。説明された実施例では、入力インタフェースデバイス54は、IRレシーバを介して赤外線(IR)遠隔制御を用いてクライアント40に指令を提供することをユーザに可能にする。他の実施例では、マウス、トラックボール、バーコードスキャナ、タブレット、キーボード、及び/又は、音声コマンドのような他の入力デバイスが、ユーザ入力をクライアント40に伝送するために使用され、それに応じて、入力インタフェースデバイス54は構成される。
【0046】
メモリ56は、典型的には、一時の又は永続的な格納情報の両方を提供することができるたくさんのメモリデバイスを含む。ある実施例では、メモリは、EEPROM及びSRAMの組合せとして実装される。他の実施例では、単一のメモリコンポネント又は揮発性及び/又は比揮発性メモリコンポネントがメモリを実装するために使用され得る。
【0047】
音声出力デバイス58は、デジタル音声情報をスピーカやサウンドシステムのような再生デバイス上で音声を生成可能な信号に変換する。ある実施例では、音声出力デバイス58は、アナログフォーマットでステレオ音声を出力する。他の実施例では、音声出力デバイスは、様々なアナログ及び/又はデジタル音声フォーマットで音声情報を出力する。ある実施例では、モーション・ピクチャー・エキスパート・グループ(MPEG)によって特定されるMP3音声フォーマットが使用される。他の実施例では、アドヴァンスド・テレビジョン・システムコミティによって特定されるAC3、MPEGによって特定されるAACフォーマット、レドモンド・ワシントンのマイクロソフト・コーポレーションによって特定されるWMAフォーマットのような他のフォーマットが、使用され得る。
【0048】
当業者により十分に理解されるように、多くの構成は、本発明の実施例にしたがったクライアントを実装するように使用され得る。本発明の実施例によるクライアントは、グラフィック性能又は音声性能を有することを必要としない。加えて、本発明の多くの実施例によるクライアントは、いかなるユーザ能力をも必要としない。例えば、ユーザ入力は、直接的にサーバに、又は、必須のサーバ又はサーバへユーザ指令を転送する第2のクライアントを介して提供される。あるいは、クライアントは、単にユーザ指令を処理することができないか、転送することができないかもしれない。本発明によるクライアントの実施例は、様々な処理コンポーネント又は単一の処理コンポーネントを含むことができる。確かに、ここに記述された方法でサーバと通信することを可能にするネットワーク接続されたコンシューマ電子又はコンピューティングデバイスは、本発明の多くの実施例にしたがうクライアントを実装するために使用され得る。
【0049】
本発明によるシステムの多くの実施例では、異なるクライアントが異なる性能を有する。多くの実施例では、クライアントは、その性能を識別する情報を記憶するように構成される。幾つかの実施例では、クライアントは、ワールドワイドウェブコンソーシアムによって特定される拡張マークアップ言語(XML)における情報を含むファイルを有する。XMLファイルは、デバイス性能を記述する情報を含むことができる。多くの実施例では、XMLファイルは、クライアントの再生機能を記述する。クライアントがトランスコードを実行する実施例では、サーバは、クライアントにメディアを直接的に提供し、プロセッサ負荷又は既に設定されたユーザ構成に基づいたトランスコードに応答して決定をすることができる。多くの実施例では、サーバは、サーバの性能を記述するファイルも格納する。
【0050】
上述したように、本発明の実施例によるサーバは、音声、映像、及び/又は、オーバーレイ情報をクライアントに提供できる。典型的には、クライアントは、1つ以上のサーバによる情報の送信を開始する。各送信は、制御セッションとして参照され、クライアントは、サーバの制御ポートへのコネクションを形成して制御セッションを開始することができる。それから、クライアントは、制御セッションの開始を要求し、制御セッションが許可されるなら、サーバは、クライアントにチャネル割り当て情報を送信することで、音声、映像、及び/又はオーバーレデータのためのチャネルを確立する。一旦、音声、映像、及び/又はオーバーレイチャネルが確立されると、サーバは、音声、映像、及び/又は、オーバーレイ情報の送信をクライアントに開始することができる。すでに論述したように、ユーザ指令をサーバに転送するクライアント、及び、クライアントに適切な音声、映像、オーバーレイ、及び/又は制御情報を提供することによって応答するサーバによって、相互作用性は達成される。
【0051】
多くの実施例では、音声、映像、及び/又はオーバーレイチャネルの確立は、同時には生じず、個々のチャネルは切断又は再接続される(しばしば異なるサーバの要求として)。例えば、ある実施例では、映像チャネルは、ユーザインタフェースに関係付けられる映像情報の表示を可能にするために接続される。一度構成が選択されると、映像チャネルは、切断及び別なサーバへ再接続し、音声チャネルは同じサーバに設けられる。本発明の別な実施例では、付随するサブタイトルを有する構成を介した迅速な送信に関連する。サブタイトルを提供するオーバーレイチャネルは、ユーザからの指令の高速送信に応答して切断され、高速転送アイコンでオーバーレイを提供する別のサーバに再接続する。あるいは、同じサーバが、オーバーレイ及び高速転送アイコンの両方を提供し、オーバーレイチャネルは単に再配置される。制御セッション、映像、音声及び/又はオーバーレイ情報の送信、双方向な構成の実装がより詳細に述べられた。
【0052】
図5及び6は、セッションの確立及び誘導の間に本発明にしたがうクライアント及びサーバの動作を表すフローチャートである。図5をみると、サーバとのセッションの確立及び誘導の間に本発明にしたがうクライアントの動作を表すフローチャートが説明される。説明されたプロセスでは、TCP/IPプロトコルがサーバとの通信するためにクライアントにより使用される。他の実施例では、他の通信プロトコルが使用される。処理80は、サーバの制御ポートとのコネクションを形成する(82)クライアントと共に開始する。ある実施例では、シンプルサービスディスカバリプロトコル又は標準RFC2327で提案されるセッション記述プロトコルのようなプロトコル(それら両方はインターネットエンジニアリングタスクフォースによって特定される)に基づいた手続きが、サーバ及びサーバの制御ポートを識別するために使用される。他の実施例では、他の技術が、クライアントとネットワークを介して接続されたサーバの制御ポートを識別するために使用され得る。
【0053】
一旦、制御チャネルが確立すると、クライアントは、制御チャネルを介してサーバとの制御セッションを開始(84)しようと試みる。その試みは、クライアントの利用可能なポート割当に関する情報を含む制御セッションを要求するパケットを送信することによって、なされる。それから、クライアントは、その要求に応答するサーバのために待つ(86)。ある実施例では、サーバは、セッションが拒否されても、応答する。他の実施例では、その要求は、所定の時間間隔が有効期限切れした後で、拒否されたことが仮定される。セッションが拒否(86)されたなら、セッションを確立する試みは、失敗である。その試みが成功なら、クライアントは、典型的にはクライアントの内部タイマーに関する情報をサーバに提供すると共に、サーバから周波数を特定する情報を受信する(90)。他の実施例では、音声、映像、及び/又はオーバーレイチャネルの特徴は、サーバに提供されるクライアント上に配置されるXMLファイルで規定される。データチャネルのパラメータ及びクライアントがその内部時刻の値を報告すると共に周波数の重要性は、より詳細に後述される。
【0054】
クライアントもまた、サーバからのポート割当を受信する(92)、ポート割当は、典型的には、各チャネル上の映像、音声、又はオーバーレイのパラメータ(例えば、音声サンプル速度や映像解像度)およびバッファへ映像、音声、又はオーバーレイ情報に関する情報を含む。チャネルの初期化は、チャネル上で送信される情報のための開始タイムスタンプを含む。このタイムスタンプは、クライアントの内部タイマーを設定するために使用される。クライアントのタイマーは、典型的には、特定量のデータがキューイングされ、クライアントがキューイングされたデータを再生することを開始するまで、中断される。
【0055】
初期化は、チャネル上に到着する情報をどれくらい処理すべきかに関する情報を含む。ある実施例では、クライアントのタイマーがデータに関係するタイムスタンプと同じか、又は、それ以上であるとき、クライアントは入力されるデータを再生することを開始し得る。幾つかの実施例では、クライアントのタイマーがデータに関係するタイムスタンプに一致するとき、入力されるデータを再生するために初期化され得る。これらの実施例では、クライアントのタイマーを中断することは、チャネルからのデータの再生を中断することもできる。多くの実施例は、クライアントで受信された後でできるだけ早く入力されるデータを再生するために初期化することをクライアントに可能にする。多くの実施例では、クライアントは、映像パケットに音声を同期化することを指示する。音声の映像への同期化は、クライアントに、ユーザインタフェースで音響効果に伴う遷移又はアクションを生成することを可能にする。
【0056】
クライアントでの要求される処理を減少することに加えて、サーバがクライアントのキューを管理する能力を提供することは、サーバがクライアントに送信する音声、映像、及び/又はオーバーレイ情報を予期して、サーバがクライアントのキューを構成することを可能にする。サーバによって送信される音声、映像、及び/又はオーバーレイ情報が例えばメニューの一部であるなら、サーバは、クライアントが普遍的準備開始状態であるためにクライアントのキューを構成することができる。用語「普遍的準備開始状態」は、サーバから受信された情報がほとんど即座に処理され、再生されるためにクライアントがいかなる情報もキューイングしない、又は、とても少ない情報をキューイングしている情報を記述する。あるいは、サーバが特徴表現に関係する音声、映像、及び/又はオーバーレイ情報を送信しようとするとき、サーバは音声、映像、及び/又はオーバーレイ情報が円滑に再生され可能性を増加するために十分な情報をキューイングするようにクライアントを構成できる。いわゆる円滑再生は、同期化された音声及びオーバーレイを有する適切な時間間隔で配置されたフレームの表示に言及する。典型的には、円滑再生は、それが要求されるとき、再生するために必要な情報がクライアントで利用可能になることを要求する。クライアントのキューの長さの増加は、パケットがクライアントによって要求された後で、パケットが到着することをもたらすネットワーク遅延における変化を蓄積する。音声、映像、及び/又はオーバーレイ情報が再生するために利用可能でないなら、ユーザは、画像のフリーズ、音声トラックのとぎれ、付随する映像又は音声と同期化しないオーバーレイを経験する。
【0057】
多くの実施例では、サーバは、サービスパラメータの規定の品質を達成するために、クライアントによってキューイングされる情報の量を絶えず監視し、変更する。多くの実施例では、サーバは、ネットワークの過密に応答してより低いデータ速度にデータをトランスコードすることで、サービス品質を維持する。幾つかの実施例では、タイムスタンプが、システム待ち時間を監視し、それに応じてクライアントのキューを管理するために、サーバによって使用される。他の実施例では、クライアントから獲得された他の情報又は別のソースが、システムによって提供されたサービスの品質を監視するために使用され得る。
【0058】
ポート割当の後に、クライアントは、サーバからの音声、映像、及び/又はオーバーレイチャネルに関するデータの受信を開始する(94)。クライアントは、パケットを処理し、サーバに対する必要なタイムスタンプの報告を実行する。クライアントは、サーバからの制御指令も受信する。制御指令が受信されると、クライアントはその指令を処理することによって応答する(98)。
【0059】
クライアントは、ユーザ指令も受信する(100)。クライアントはユーザ指令を受信するとき、クライアントは、典型的には、サーバへユーザ指令を送信する(102)。クライアントは、制御セッションが終了するまで、サーバによって提供されるマルチメディア情報を表示し続ける。
【0060】
多くの実施例では、クライアントは、ユーザ指令のとても制限されたセットに応答することができるだけである。例えば、クライアントは、ボリュームコントロール及び電源オン/オフ指令に応答できるかもしれない。再生される音声、映像、及び/又はオーバーレイに関連する指令が受信される場合、典型的には、クライアントは、サーバに指令を転送することによって応答する。
【0061】
ある実施例では、クライアントは、音声、映像、及び/又はオーバーレイ情報が提供される方法を割り込み、又は、変更する方向へ指示するユーザ指令を、再生デバイスに転送する。さらなる実施例では、クライアントは、メニューやユーザインタフェースに関連する全てのユーザ指令をサーバに転送する。追加例では、クライアントは、音声、映像、及び/又はオーバーレイが再生デバイスによって再生されるべき将来の速度、及び/又は、方向に関連する全てのユーザ指令を転送する。そのような指示の例は、中断、早回しを遅らせる、巻き戻しを遅らせる、早回しを早める、巻き戻しを早めるなどを含む。更なる実施例では、再び、クライアントは、再生デバイスによって再生された音声、映像、及び/又はオーバーレイが非線形の形式で進むことを全てのユーザ指令を転送する。そのような指示の例は、特徴表現におけるチャプター間やシーンをスキップし、又は、トランク間又は音声記録の再生トラックをランダムにスキップする指示を含む。
【0062】
別の実施例では、クライアントは、ユーザ指令が受信したときに再生デバイスによって再生される音声、映像、及び/又はオーバーレイに依存しないユーザ指令のみを処理する。典型的には、多少なりとも指令が、コンテンツ、速度、将来再生される音声、映像、及び/又はオーバーレイの指示に影響を与える場合、その指令は、典型的には、音声、映像、及び/又はオーバーレイに依存すると考慮される。独立指令の例は、電源オン/オフ、ボリュームコントロール、音を消す、明るさ制御、コントラスト制御を含む。
【0063】
図6を参照すると、クライアントとの制御セッションの確立及び誘導の間に、本発明の実施例によるサーバの動作を説明するフローチャートが示される。図5と同様に、説明されるプロセスは、サーバがクライアントとTCP/IPプロトコルを用いて通信することを仮定する。他の実施例では、他の通信プロトコルが使用される。処理120は、クライアントとのコネクションを確立することによって開始する。上述したように、コネクションは、サーバの制御ポートに要求を送信するクライアントによって確立されうる。一度、コネクションが確立されると、サーバはコネクションを介してクライアントから制御セッションを確立する要求を受信する(124)。サーバは、制御セッションを受諾するかどうかを決定する(126)。ある実施例では、サーバは、セッションを拒否するクライアントにメッセージを送信することで、セッションを拒否する(128)。サーバが制御セッションを拒否する理由の例は、サーバのコンテンツが特定のクライアントには不適切(例えば、クライアントが子供によってサクセス可能であり、サーバがアダルトコンテンツを含む)である場合、サーバが制御セッションを拒否することを含む。別な例として、サーバが過負荷であるときも、セッションを拒否しうる。更なる例として、サーバへのアクセスが料金ベースであり、クライアントが有効な支払いに関係していないときに生じる。
【0064】
セッションがサーバによって受諾される場合、サーバは、各データチャネルのためのコネクションを確立する(130)。ある実施例では、データチャネルは、音声チャネル、映像チャネル、及び/又はオーバーレイチャネルを含み、サーバは、各チャネルにポート割当を指定する。他の例では、データチャネルは、音声及び制御チャネル、及び、映像及び制御チャネル、又は、音声、映像、オーバーレイ、制御チャネル、又は、そのようなチャネルの他の組合せを含むことができる。
【0065】
様々なチャネル構成がサポートされる実施例では、データチャネルの確立は、データのフォーマットを特定するクライアントに、情報を送信することでデータチャネルの初期化を含めることができる。この情報は、タイムスタンプ情報、キューイングするデータ量に関する情報、及びデータが処理されるべき時間を含む。チャネル上で送信されるデータに関係するタイムスタンプは、式にしたがって決定される。
【0066】
タイムスタンプデータ=最初のタイムスタンプ+絶対値(開示時刻データ−位置データ)/速度
そこで、タイムスタンプデータは、データに関係するタイムスタンプである。
最初のタイムスタンプは、サーバによって選択された最初のタイムスタンプである。
開始時刻データは、記憶されたデータシーケンスの開始に関係する開始時刻を示す所定の時刻である。
位置データは、データシーケンスがその開始から所定の速度で線形的に再生される場合データが再生される時間を示すデータの特定の部分又はデータのコレクションに関係する所定の時刻である。
速度は、サーバが、所定の速度に対して再生されるべきデータを要望する速度を示す値である。
シーケンスがより早く又はより遅く再生される例では、速度値は、フレームの増加又は減少した数のために提供するタイムスタンプを見積もる。
【0067】
データチャネルの確立の後に、サーバは、クライアントにメディアを送信することを開始する(132)。ある実施例では、サーバは、Alexander van Zoestによる米国特許出願11/016,184に記載されたファイルと類似するファイルからメディア情報を抽出する。幾つかの実施例では、サーバは、最初に、ユーザインタフェースを生成するために、音声、映像、及び/又はオーバーレイ情報を抽出する。本発明の実施例によるユーザインタフェースの実施例は、音声インタフェース、純粋なグラフィカルインタフェース、又は音声及びグラフィカルコンポーネントを組み合わせるインタフェースになり得る。サーバが、特徴表現を送信するためにデータチャネルを使用する例では、サーバは、サーバに格納されたファイル内に含まれる多くの映像及び音声トラックから映像及び音声トラックを選択可能である。加えて、サーバは、サブタイトル、又は、インフォーメーション・バーや特徴表現を中断し、早送りし、巻き戻しし、チャプター間スキップするようなアクションを示すアイコンのような別の形式のオーバーレイを提供するために、オーバーレイトラックを選択することができる。他の例では、サーバは、音声、映像、及び/又はオーバーレイトラックのみを提供するかもしれない。そのような実施例では、他のトラックは、他のサーバによって提供され、または、他のデータトラックはないかもしれない。
【0068】
情報がクライアントから受信される場合(134)、サーバは、その情報に応答する(136)。その情報は、典型的には、ユーザ指令又はタイムスタンプ報告を含む。多くの転送されたユーザ指令は、ユーザがアクセスを希望する音声、映像、及び/又はオーバーレイ情報に関連する。サーバの応答は、ユーザ指令が受信された時に表示される情報が、ユーザインタフェースの部分であるか又は特徴表現であるかに依存して変化する。本発明によりサーバの実施例による転送されたユーザ指令の処理は、さらに後述される。しかしながら、ユーザ指令受信時に音声、映像、及び/又はオーバーレイに関するタイムスタンプからサーバが情報を獲得することができることは注意に値する。
【0069】
上述では、サーバの実施例と本発明によるクライアントとの間の情報交換が提供された。上述されるように、本発明の実施例によるサーバは、特定のクライアントへの送信用の音声、映像、及び/又はオーバーレイ情報をトランスコードすることができる。音声、映像、及び/又はオーバーレイ情報をトランスコードするための本発明の実施例による処理が、図6aに表される。処理138は、サーバによって送信されるべき音声、映像、及び/又はオーバーレイ情報のフォーマットを判断することを含む。デバイスの記述も獲得される(138b)。上述されるように、デバイスの記述は、クライアントの性能に関する情報をサーバに提供するために、クライアントによって使用されるクライアント上で格納されるXMLファイルである。ある実施例では、情報は、制御チャネルを介してクライアントによってサーバに提供される。サーバがメディアフォーマットお呼びデバイスの性能に関する情報を有するとき、サーバは、トランスコード化が実行されるべきかを決定する(138c)。ある実施例では、メディアが別々の音声、映像、オーバーレイチャネルを介して送信されるために適切ではない方法でフォーマットされるとき、トランスコード化が生じる。幾つかの実施例では、クライアントが、音声、映像、及び/又はオーバーレイ情報がフォーマットされるフォーマットで復号化できないとき、トランスコード化が生じる。多くの実施例では、別々の判断が、音声、映像、及び/又はオーバーレイ情報に対してなされる。音声、映像、及び/又はオーバーレイ情報のトランスコード化が要求される決定がなされる場合、サーバは音声、映像、及び/又はオーバーレイ情報をトランスコードし、トランスコード化を要求しない最初にフォーマットされた音声、映像、及び/又はオーバーレイ情報を有する通信用の音声、映像、及び/又はオーバーレイ情報を提供する。トランスコード化が必要とされない決定がされる場合は、最初にフォーマットされた音声、映像、及び/又はオーバーレイ情報が送信のために提供される(138e)。
【0070】
本発明の実施例によるサーバから受信したパケットをクライアントが処理する方法を説明するフローチャートが図7に説明される。その処理140は、クライアントによるパケット情報の受信(142)で始まる。TCP/IPプロトコルによるサーバ及びクライアントが通信する実施例では、TCP/IPスタックのクライアントの実装は、パケットのポートアドレスを参照して情報の性質を識別する(144)。パケットは、適切な音声、映像、オーバーレイ又は制御バッファにバッファされる(146)。音声、映像、オーバーレイ、制御情報は、受信した情報のタイプに適切なキューに配置される。キューイングされた情報は、(上述したように)サーバによって指示された方法で、情報に関係付けられたタイムスタンプによって決定された順序で処理される(152)。処理された情報のタイムスタンプは、サーバに報告される(154)。他に指示されないなら、クライアントは、同様に着信するパケットを連続的に処理する。
【0071】
音声、映像、及び/又はオーバーレイ情報が別々のチャネルを介して通信されるとい実情は、クライアントにそれが届いたらすぐに、特定のタイプの情報にアクセスすることを可能にする。全てのデータ種が単一のチャネルで多重化される実施例では、クライアントにより最も必要とされるデータの基準とは対照的に、到着の順序でデータを処理するように課せられる。たぶん、そのようなクライアントは、あるタイプのデータが不足しており、バッファに格納されたデータのタイプのパケットを有するが、最初に到着した他のデータのタイプを処理することが強いられる。しかし、クライアントは、望まれた情報を検索し、処理するように構成される。
【0072】
多くの実施例では、サーバは、音声、映像、オーバーレイ、及び/又は制御チャネルの各々の上で送信された情報と共にデジタル権利管理(DRM)情報を含む。ある実施例では、DRM情報の性質についての情報が、サーバからクライアントに送信される。クライアントは、DRM保護された情報を再生するために必要な復号化を実行する能力を有することを知らせ、又は、この能力を有さないことを応答する。
【0073】
先に述べたように、本発明によるクライアントの多くの実施例は、ユーザ指令に直接的に応答しない。変わりに、クライアントは、クライアントにより表示されるべき音声、映像、及び/又はオーバーレイ情報を選択することで、その指令をサーバに転送し、そして、サーバがその指令に応答する。多くの実施例では、クライアントの性能が、受信するパケットの処理をはるかに超えて拡張しないという事実が、クライアントが実装される単純さへの鍵となる。本発明によるサーバ及びクライアントの実施例によるユーザ指令の処理は、より詳細に考慮される。
【0074】
本発明のシステムの実施例は、しばしば、ユーザ指令に応答するときの待ち時間を減少するように構成される。なぜなら、時間遅れを減少することは、システム10と相互作用するときのユーザの経験を高めることができる。時間遅れは、ユーザ指令を受信する時間と、再生デバイス上で音声、映像、及び/又はオーバーレイ情報の表示との間の遅延である。本発明の十知れによるサーバの実施例の多くは、時間遅れを減少することを試みる。ある技術は、ユーザ指令に応答して送信される情報を即座に処理するために、クライアントのキューを管理することである。クライアントに情報を単に送信するだけでユーザに応答するサーバがあり、遅延は、新しく送信された情報を再生する前にキューイングされた情報を再生するクライアントのために生じる。サーバは、ユーザ指令に応答してサーバが音声、映像、及び/又はオーバーレイ情報を送信する前に、そのキューをフラッシュするために、クライアントへ指令を送信することでシステム待ち時間を減少することができる。一旦、キューがフラッシュされると、新しく受信した情報は、クライアントによって即座に表示される。
【0075】
多くの実施例では、ユーザ指令に応答してサーバによって送信された音声、映像、及び/又はオーバーレイ情報は、以前のマルチメディア送信に対して異なるフォーマットを有する。フォーマット変更は、解像度、映像幅及び高さ、音声のサンプリング速度、クライアントがキューイングすべきデータ量、クライアントがデータのタイムスタンプ又はDRMも有効化に基づいてデータを処理すべき方法においてデータのフォーマットを符号化するときの変更を含む。ユーザ指令に応答してフォーマットの変更が要求される例では、サーバは、新しいフォーマットでメディア情報を送信する前に、クライアントと共にメディアチャネルを再初期化することができる。
【0076】
図8および9は、クライアントによるユーザ指令の受信に応答して、本発明の実施例によるクライアント及びサーバにより実行される動作を表すフローチャートである。表されるように、説明される実施例は、異なるタイプのデータの送信に関係するフォーマットの変更を蓄積する性能及びシステム待ち時間を減らす操作を実行する性能を有する。
【0077】
最初に図8を参照すると、本発明の実施例によるサーバから受信した情報およびユーザ指令に応答したクライアントの処理のフローチャートが説明される。続ける前に、我々は、そのプロセスが追加のユーザ指令の発生によって中断されることに注意が必要である。処理160は、ユーザコマンドの受信で始まる(162)。クライアントは、コマンドがクライアントによって処理され得るか(典型的には、これは、ユーザ指令に続いて、表示さえるべき音声、映像、及び/又はオーバーレイ情報のコンテンツに非依存の指令である)、又は、それはサーバに転送すべきか否かを判断するために検査する。ユーザ指令はクライアントによって処理され、クライアントはユーザ指令に応答し、音声、映像、及び/又はオーバーレイ情報及びサーバコマンドのための含むループに再度入り、一方で、さらなるユーザ指令による中断を待つ。
【0078】
ユーザ指令がクライアントによって処理できない場合、ユーザ指令は、制御チャネルを介してサーバに送信される(168)。それから、クライアントは、サーバからの制御メッセージのためのループチェックに入り(170)、制御メッセージが無い場合、再生のための音声、映像、及び/又はオーバーレイ情報を処理し(172)、サーバによって特定される間隔でサーバへの制御チャネルを介してタイムスタンプ報告を送信する(173)。さらに後述するように、タイムスタンプ報告は、ユーザ指令の提供と同時に、再生される音声、映像、及び/又はオーバーレイ情報を決定するためにサーバによって使用される。
【0079】
制御情報がサーバから受信され、クライアントが制御情報の種類を決定する。制御情報は、そのキューに再同期するためにクライアントにコマンドを送信する。再同期(176)は、キューのフラッシュ及び/又は新しいタイマー値をクライアントに割り当てることを含む。キューのフラッシュは、クライアントが、サーバにより送信される新しいデータを即座に再生することを可能にする。多くの例では、クライアントは、そのキューをフラッシュせずに再同期される。キューをフラッシュさせない再同期は、システムが構成を再生終了することを要望するとき、メニューのようなユーザインタフェースに返すようなキューの中の情報の表示が要求される例で役に立つ。そのような例は、サーバが、特徴表現を切り取らずにユーザインタフェースに自動的に戻ることをクライアントに意図するときである。多くの例で、サーバは同期要求を送信するが、クライアントによってキューイングされたメディア(又は、示されたタイムスタンプより少ないタイムスタンプを有するメディア)が再生終了するという肯定応答が受信されるまでクライアントに付加的情報を提供しない。幾つかの実施例では、キューをフラッシュせずに再同期することが、音響効果が再生されるまでクライアントによってユーザインタフェースが更新されないことを確実にするために使用され得る。
【0080】
再同期指令の受信に続いて、クライアントは、制御チャネルを介してサーバに再同期の肯定応答を送信することができる。クライアントは、それから、クライアントがサーバから受信する音声、映像、及び/又はオーバーレイ情報を処理し続け、一方で、さらなる制御指令(170及び172)のチェックをし、制御チャネルを介してサーバにタイムスタンプ報告を送信する(173)
【0081】
クライアントは、その制御がデータチャネルの再同期化を要求することを判断する(178)。一旦クライアントがサーバによって提供される新しいチャネルパラメータに適合すると、クライアントは、再生デバイスによって表示するための音声、映像、及び/又はオーバーレイ情報を処理し且つ出力し続け、一方で、更なる制御指令(170及び172)をチェックし、制御チャネルを介してサーバにタイムスタンプ報告を送信する(173)。
【0082】
クライアントは、制御指令が制御セッションの官僚を要求することを判断する(184)。どのケースでも、クライアントは、確立された音声、映像、及び/又はオーバーレイ情報の各々を切断することによって制御セッションを完了する(186)。クライアントは、そのシステムの機能性を実行するのに必要な制御指令の他のタイプも処理することができる。制御指令の処理に続いて、典型的には、クライアントは再生デバイスによって表示するための音声、映像、及び/又はオーバーレイ情報を処理し続け、一方で、さらに制御指令をチェックし(170及び172)、制御チャネルを介してサーバにタイムスタンプ報告を送信する(173)。
【0083】
図9を参照すると、クライアントから送信されたユーザ指令を受信した本発明の実施例によるサーバの動作のフローチャートが説明される。プロセス200は、制御チャネル上でクライアントにより送信されたユーザ指令の受信を開始する。サーバは、ユーザ指令の性質を判断し(203)、それに応じて応答する。ユーザ指令への適切な応答は、典型的には、ユーザ指令を受信したときにデバイスを再生することによって表示される音声、映像、及び/又はオーバーレイ情報のコンテンツに依存する。多くの例では、クライアントのタイムスタンプ報告は、サーバが、ユーザ指令受信時に再生される音声、映像、及び/又はオーバーレイ情報を正確に判断することを可能にする。ユーザが指令を発行したときに再生される音声、映像、及び/又はオーバーレイ情報の状況で不適切な指令を提供するかもしれない。例えば、メニューが表示されるとき巻き戻す指令は、特徴表現を再生する間に、メニューオプションを選択する指令として不適切である。
【0084】
特徴表現の間に、典型的には、有効なユーザ指令が、特徴が表される速度及び/又は向きの操作、メニューの遷移及び/又はオーバーレイの追加を要求する。メニューが再生されると、典型的には、サーバは特定のメニューの表示の間に実行される有効なアクションに関する情報を有する。この情報は、状態機械の形式をとることができる。サーバが、ユーザが命令を発行するときのメニューの状態記録を有する場合、有効な指令は、典型的には、別なメニュー状態への遷移又は特徴表現の表示を含む。
【0085】
ユーザ指令が、クライアントによる音声、映像、及び/又はオーバーレイ情報の迅速な表示を要求するとき、適切と判断されるなら(204)、サーバはキューイングされたメディア情報をフラッシュするためにクライアントへ指示する制御情報を送信する(206)。一旦、再同期メッセージが送信され、肯定応答されると、サーバは要求された音声、映像、及び/又はオーバーレイ情報を送信する。上述したように、キューのフラッシュは、ユーザ指令に応答するシステムの待ち時間を減少させ、指令が再生される前にクライアントによってキューイングされる情報として特徴表現の中に場違いのジャンプを避けることができる。サーバとクライアントとの他のタイプの再同期も実行されうる。
【0086】
特徴表現が再生されると、ユーザ指令が受信されるときに再生される音声、映像、及び/又はオーバーレイ情報を判断するために、クライアントによって提供されるタイムスタンプ報告を使用することができる。それから、キューをフラッシュすること、及び、ユーザ指令が発行されるポイントに対応する再生された特徴表現におけるポイントから速度及び向きに関するユーザの指令にしたがう特徴を表示し、クライアントにより処理され且つ再生される音声、映像、及び/又はオーバーレイ情報を送信することによって、特徴が表示される速度や向きを含むユーザ指令に応答することができる。このキューをフラッシュすることによって、ユーザが指令を発行する前に、しばしば、クライアントによってキューイングされる情報を無理に再送する。しかし、キューイングされた情報は、そのシステムのユーザの経験を損ない、ユーザの指令に従わない方法でクライアントにより再生される。
【0087】
サーバは、ユーザ指令が異なるタイプのマルチメディア情報を先に送信されたマルチメディア情報に遷移することを要求すると判断するとき(208)、サーバは、音声、映像、及び/又はオーバーレイチャネルを再初期化するためにクライアントに向けられるクライアントへの制御情報を送信することができる(210)。それから、サーバは、新しいチャネルパラメータにしたがって音声、映像、及び/又はオーバーレイ情報を送信することを始める。
【0088】
上記の記述は、ユーザ指令に応答して又は他の問題のための他の環境の下でサーバにより送信されうる制御情報を網羅することを意味しない。サーバが、クライアントに別な種類のコマンドが送信されるべきであると判断した場合、サーバはそのようなコマンドを送信することができる(220)。実に、本発明の実施による音声、映像、及び/又はオーバーレイ情報を提供するためにトランスコードを用いるサーバは、クライアントによって提供される指令に適切なトランスコードを映像に提供することを確実にする手法でユーザコマンドに応答するように構成される。
【0089】
上記の記載は、一般に、音声、映像、及び/又はオーバーレイ情報が1つのサーバで提供されることに焦点を当てている。本発明の多くの実施例は、クライアントに情報を提供するために複数のサーバを使用する。ある実施例では、複数のサーバは異なるタイプの情報を提供する各々のサーバと共にクライアントに情報を同時に提供する。別の実施例では、第1のサーバがクライアントに音声、映像、及び/又はオーバーレイ情報を提供して、それから遷移がなされ、第2のサーバが、音声、映像、及び/又はオーバーレイ情報をクライアントに提供する。
【0090】
複数のサーバがクライアントに対して同時にデータを提供することができる本発明の実施例によるシステムが、図10において説明される。システム10’は、ネットワーク14’を介してクライアント230に接続された複数のサーバ12a、12bを含む。クライアントは、クライアントにより受信される音声、映像、及び/又はオーバーレイ情報の常時を可能にする再生デバイス232に接続される。図10は、概略的にサーバ及びクライアント間に存在するチャネルを説明する。第1のサーバ12a’は、映像17b’及び音声チャネル17a’を介してクライアントに接続される。クライアント及び第1のサーバは制御チャネル19’を介して互いに通信することも可能である。第2のサーバ12bは、オーバーレイチャネル17c’を介してクライアント、及び双方向の制御チャネル19aを介して第1のサーバに接続される。図10に表される構成は、特徴表現が第1のサーバによって提供され、及び特定の言語のサブタイトルオーバーレイが第2のサーバで提供されるとき存在する構成と似ている。
【0091】
情報が、クライアントから複数のサーバに送信されるとき、クライアントに送信された情報を調整することは、問題になりうる。多くの実施例では、単一のサーバがコントロールハブとして活動するように選択される。コントロールハブサーバは、クライアントと通信する全てのサーバに適切な制御情報を送信する責任を有し、他のサーバからクライアントに制御情報を転送する責任を有する。典型的には、コントロールハブは、クライアントが最初に制御セッションを確立しようとするサーバになるために選択される。多くの例では、ユーザは、第1のサーバに存在しない情報を要求し、第1のサーバは、要求された情報を提供可能な他のサーバとのコネクションを確立しようとする。幾つかの例では、これは単に単一のチャネルの情報になり得る。他の例では、全ての要求情報は、別のサーバ上に存在するかもしれない。例えば、第1のサーバは、ユーザインタフェースのための情報を格納し、ユーザインタフェースは別のサーバ上に格納される特徴表現にユーザがアクセスできるようにする。第1のサーバがある期間全ての要求情報を提供し、それから第2のサーバがある期間全ての要求情報を提供する例では、第1のサーバは、制御ハブ又は第2のサーバへの手動制御として機能することができる。
【0092】
本発明によるシステムの実施例は、1つ以上のクライアントと通信する1つ以上のサーバも含む。これらの実施例では、ただ1つのサーバがコントロールハブとして動作し、特定の制御セッション上にある各サーバ及びクライアントとのコネクションの制御を維持することができる。あるいは、制御メッセージが制御セッションに含まれるサーバ及びクライアントの全てにブロードキャストされ得る。ある実施例では、サーバ又はクライアントが情報を提供し、又は、サーバの1つと制御セッションを第1に開始したクライアントからの指令に責任を有する場合、サーバ又はクライアントは制御セッションの一部となるだろう。あるいは、制御メッセージは、制御セッションに含まれるサーバ及びクライアントの全てにブロードキャストされる。他の実施例では、コントロールハブとして動作するサーバは、制御セッションの一部を形成するクライアント及びサーバを決定する。
【0093】
上述したように、本発明の実施例であるシステムにおける様々なクライアントは、異なる性能を有することができる。多くの例では、クライアントの性能は、クライアント内で基礎となるハードウェア及びハードウェアを構成するために使用されるソフトウェアによって判断される。ハードウェアが通常固定される一方で、クライアントの操作は、ソフトウェアを変更することによって修正され得る。本発明の多くの例では、サーバ及びクライアントは、サーバがクライアントに更新されたソフトウェアを低要するように構成される。
【0094】
幾つかの例では、単なる更新がサーバによるクライアントに提供される情報、及び、そのソフトウェア又はファームウェアを修正するためにクライアントにより使用される情報に単一の更新が実行される。単一の更新は、典型的には、クライアントへの修正がサーバ及びクライアントが通信する方法に影響を与えない環境下で実行される。
【0095】
ソフトウェアの更新がサーバ及びクライアントが通信するためのプロトコルの修正を含む例では、本発明の幾つかの実施例は、高度な更新を実行する。高度な更新は、更新を実行する前にネットワークの状態を判断することを含むソフトウェア又はファームウェアの更新である。全ての利用可能な更新の互換性とともに、システムにおける全サーバ及びクライアントの現状の性能が知られている場合、どのデバイスが更新し、各デバイスのためのどの更新を使用するかについての決定をすることができる。
【0096】
上述したように、本発明の実施例によるデバイスの性能は、XMLファイルとして表現されている。デバイスが更新を受信する前に、デバイスはそのXMLに更新を提供するデバイスに提供する。XMLは、性能リストを生成するために分解される。性能リストは、デバイスに適用する更新を決定するために使用され得る。高度な更新が実行されるとき、ネットワークに接続されたサーバ及びクライアントの全ては集結し、各デバイスへの更新パスを決定するために使用されるクライアント及びサーバのリストは、システムの安定性を確実にするだろう。ネットワークの正しい形が集結することを確実にするには、高度の更新は、ユーザ参加者に、全デバイスがネットワークに接続され有効になったことを確実にすることを要求する。
【0097】
多くの実施例では、各デバイスの個々の更新は、バージョン番号を用いて区別される。多くの例では、異なる更新が異なる通信プロトコルと互換性がある。ネットワークに接続された他のデバイスの全てが(更新された)通信プロトコルをサポートしないなら、デバイスは、更新された通信プロトコルをサポートするために更新されるべきではない。居赤なるデバイスも更新された通信プロトコルをサポートしない場合、更新された通信プロトコルへの移行を含む更新は、ネットワーク上の他のデバイスに適用されるべきではない。
【0098】
高度な更新を実行する本発明の実施例による処理の実施例を、図11を用いて説明する。処理240は、利用可能な更新リストを獲得し(242)、各デバイスの性能を決定するためにネットワークに接続されたデバイスに問合せる(244)。上述したように、問合せは、全ての必要なデバイスが接続され、更新を開始するように適切に構成されることを確実にするように、ユーザとの対話を有する。性能リストが獲得されたなら、利用可能な更新の認識は、適切な更新がインストールされるなら、ネットワークに接続された各デバイスがサポート可能なプロトコルのバージョンが使用される。一旦、プロトコルバージョンが決定されると、各デバイスの適切な更新バージョンは決定され、必要な更新が各デバイスに提供される(248)。一旦、デバイスが更新を受信すると、その更新は適用される(250)。多くの例では、全デバイスが全ての意図された更新を受信したという確認を受信するまで、更新は適用されない。
【0099】
ある実施例では、クライアントへメディアを送信するとき、クライアントから情報を獲得する方法は、クライアントの性能を判断するために使用される方法として更新するものと同一である。多くの例では、本発明の実施例によるサーバは、更新を示す発見の間に、クライアントへ情報を送信することによる押下更新が、押下される。ある実施例では、情報は、サーバにより送信されるSSDPパケットの中のフラグセットを用いて伝送される。SSDPパケットを受信するクライアントは、サーバへ問い合わせを行って、URLを獲得する。クライアントはそれからURLを用いてHTTPポートに接続し、適応可能な更新をダウンロードする。多くの例では、更新サーバは、別個のUPNPデバイスUUIDを用いることでそれ自身を識別することができる。
【0100】
上述の記述は、本発明の多くの特定の実施例を含む一方で、これらは、発明の範囲に関する限定として解釈されるべきものでなく、それらの例としてみなされるべきである。したがって、発明の範囲は、説明された実施例によって判断されず、添付のクレーム及びそれらの均等なものによって判断されるべきである。
【図面の簡単な説明】
【0101】
【図1】本発明に係る分散システムの実施例の概略図である。
【図2】サーバとクライアントとの間の通信チャネルを示す本発明の実施例に係るクライアントに接続されたサーバの概略図である。
【図3】本発明の実施例に係るサーバの概略図である。
【図4】本発明の実施例に係るクライアントであるネットワーク接続されたコンシューマ電子デバイスの概略回路図である。
【図5】セッションの開始及び誘導中の本発明の実施例に係るクライアントの動作を示すフローチャートである。
【図6】セッションの開始及び誘導中の本発明の実施例に係るサーバの動作を示すフローチャートである。
【図6a】多数の通信チャネルを介した送信用のトランスコーディングデータのための本発明の実施例に係る処理を示すフローチャートである。
【図7】本発明の実施例に係るクライアントがメディア情報の受信パケットを処理する方法を示すフローチャートである。
【図8】サーバからの制御命令及びユーザからのユーザ命令の受信に応答して本発明の実施例に係るサーバの処理を示すフローチャートである。
【図9】クライアントによるユーザ命令の転送に応答して本発明の実施例に係るサーバの処理を示すフローチャートである。
【図10】本発明に係る分散システムの実施例の概略図である。
【図11】ネットワークに接続されたサーバ及びクライアントを更新するための本発明の実施例に係る処理を示すフローチャートである。
【特許請求の範囲】
【請求項1】
ネットワークを介してクライアントに接続されたサーバ、
第1のフォーマットにしたがってフォーマットされる音声、映像及び/又はオーバーレイ情報を含む少なくとも1つのストレージデバイス、を有し、
前記クライアントは、前記クライアントが復号化可能な音声、映像及び/又はオーバーレイ情報フォーマットを示す情報を格納するストレージデバイスを有し、
前記サーバは、別々の音声、映像、オーバーレイ、及び制御チャネルを介して音声、映像、オーバーレイ、及び制御を送信するように構成されることを特徴とするデータ分配システム。
【請求項2】
前記サーバは、前記クライアントが復号化可能な音声、映像及び/又はオーバーレイフォーマットを示す情報を獲得するために、クライアントに問合せをするように構成される請求項1に記載のデータ分配システム。
【請求項3】
前記サーバは、少なくとも一つの格納された音声、映像及びオーバーレイ情報を、第2のフォーマットにトランスコードするように構成され、
前記音声、映像及び/又はオーバーレイフォーマットを示す情報は、前記クライアントが前記第2のフォーマットで符号化された音声、映像及び/又はオーバーレイを復号化できることを示す請求項2に記載のデータ分配システム。
【請求項4】
前記サーバが、更新可能リストを獲得するように構成され、かつ、
前記サーバは、前記クライアントが復号化できる前記音声、映像及び/又はオーバーレイフォーマットを示す情報に基づいてクライアントに適用されうる更新を判断するように構成される請求項2に記載のデータ分配システム。
【請求項5】
自デバイスの性能に関する格納された情報を格納するストレージデバイスを格納するする第3のデバイスをさらに有し、
前記サーバは、前記第3のデバイスの性能に関する格納情報を獲得するために第3のデバイスに問合せをするように構成される請求項4に記載のデータ分配システム。
【請求項6】
前記サーバは、前記第3の機器の性能に関する第3のデバイスから獲得した情報を参照して、クライアントに適応可能な更新を判断するように構成される請求項5に記載のデータ分配システム。
【請求項7】
前記サーバは、前記サーバの性能に関する情報を格納するストレージデバイスを含む請求項4に記載のデータ分配システム。
【請求項8】
前記サーバは、前記サーバの性能に関する情報を参照して前記クライアントに適用される更新を判断するように構成される請求項7に記載のデータ分配システム。
【請求項9】
プロセッサ、
前記プロセッサに通信するように構成され且つ別々のチャネルで音声、映像、オーバーレイ、及び制御情報のパケットを受信するように構成されるネットワークインタフェース、及び、
前記プロセッサによって符号化され得る音声、映像及びオーバーレイ情報に関する情報を格納するストレージデバイスを有することを特徴とするクライアント。
【請求項10】
前記ネットワークインタフェースを介して前記プロセッサによって復号化される前記音声、映像及び/又はオーバーレイ情報フォーマットに関する前記格納情報によって送信される前記ネットワークインタフェースを介して受信した問合せに応答するように前記プロセッサは構成される請求項9に記載のクライアント。
【請求項11】
前記格納情報は、XMLファイルとして格納される請求項9に記載のクライアント。
【請求項12】
プロセッサ、
前記プロセッサと通信するネットワークインタフェースを有し、
前記プロセッサは、第1のフォーマットで符号化された音声、映像及びオーバーレイ情報を受信し且つ第2のフォーマットに前記音声、映像及び/又はオーバーレイ情報の少なくとも1つをトランスコードするように構成され、
前記プロセッサ及びネットワークインタフェースデバイスは、前記音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバ。
【請求項13】
前記プロセッサ及び前記ネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成される請求項12に記載のサーバ。
【請求項14】
前記プロセッサ及び前記ネットワークインタフェースデバイスは、外部デバイスの性能を示す情報を受信するように構成される請求項13に記載のサーバ。
【請求項15】
前記プロセッサは、性能リストを獲得するために前記情報を解析するように構成される請求項14に記載のサーバ。
【請求項16】
プロセッサ、
前記プロセッサと通信するネットワークインタフェースを有し、
前記プロセッサ及び前記ネットワークインタフェースデバイスは、利用可能な更新リストを獲得するように構成され、
前記プロセッサ及び前記ネットワークインタフェースデバイスは、外部デバイスの性能に関して外部デバイスに問合せるように構成され、
前記プロセッサは、前記利用可能な更新リスト及び前記外部デバイスの性能に基づいて外部デバイスに提供される更新を判断するように構成され、
前記プロセッサ及び前記ネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバ。
【請求項17】
前記サーバの性能に関する情報を含むストレージデバイス、
前記プロセッサは、前記サーバの性能に関する前記記憶情報に基づいて外部デバイスに提供される更新を決定するようにさらに構成されることを特徴とする請求項16に記載のサーバ。
【請求項18】
前記外部デバイスの性能は、各デバイスによってサポートされる前記通信プロトコルを含み、
少なくとも1つのプロトコルは、各利用可能な更新によってサポートされ、
前記プロセッサは、各更新されたデバイスが前記同じ通信プロトコルをサポートすることを確実にすることによって、外部デバイスへの更新を適用することを判断するように構成されることを特徴とする請求項16に記載のサーバ。
【請求項19】
データネットワーク上でデータを通信する方法であって、
音声、映像、及びオーバーレイ情報を検索し、
少なくとも1つの前記音声、映像、及びオーバーレイ情報をトランスコードし、
前記音声、映像、及びオーバーレイ情報の1つ以上に関係する音声、映像、オーバーレイ、及び制御情報を送信し、
前記音声、映像、オーバーレイ、及び制御情報の1つ以上に関係する前記音声、映像、オーバーレイ、及び制御情報を受信し、
別々の音声、映像、及びオーバーレイキューで前記受信した情報をキューイングし、
前記情報に関係する前記タイムスタンプに基づいて前記キューイングされた情報を処理し、
前記処理された情報の少なくとも1つのタイムスタンプを示す報告を送信し、
前記報告を受信し、
前記受信した報告内に含まれる前記少なくとも1つのタイムスタンプに関する情報を記録することを特徴とする通信方法。
【請求項20】
前記音声、映像、及びオーバーレイ情報をトランスコードする適切なフォーマットを判断することを有する請求項19に記載の通信方法。
【請求項21】
データネットワーク上で通信するように構成されるデバイスを更新する方法であって、
利用可能な更新及び各更新でサポートされる通信プロトコルのバージョンを判断し、
各デバイスによってサポートされる前記通信プロトコルのバージョンを含む各デバイスの性能を判断し、
必要な更新が実行されるなら、全デバイスによってサポートされる前記通信プロトコルの最新バージョンを判断し、
前記必要な更新を実行することを特徴とする更新方法。
【請求項1】
ネットワークを介してクライアントに接続されたサーバ、
第1のフォーマットにしたがってフォーマットされる音声、映像及び/又はオーバーレイ情報を含む少なくとも1つのストレージデバイス、を有し、
前記クライアントは、前記クライアントが復号化可能な音声、映像及び/又はオーバーレイ情報フォーマットを示す情報を格納するストレージデバイスを有し、
前記サーバは、別々の音声、映像、オーバーレイ、及び制御チャネルを介して音声、映像、オーバーレイ、及び制御を送信するように構成されることを特徴とするデータ分配システム。
【請求項2】
前記サーバは、前記クライアントが復号化可能な音声、映像及び/又はオーバーレイフォーマットを示す情報を獲得するために、クライアントに問合せをするように構成される請求項1に記載のデータ分配システム。
【請求項3】
前記サーバは、少なくとも一つの格納された音声、映像及びオーバーレイ情報を、第2のフォーマットにトランスコードするように構成され、
前記音声、映像及び/又はオーバーレイフォーマットを示す情報は、前記クライアントが前記第2のフォーマットで符号化された音声、映像及び/又はオーバーレイを復号化できることを示す請求項2に記載のデータ分配システム。
【請求項4】
前記サーバが、更新可能リストを獲得するように構成され、かつ、
前記サーバは、前記クライアントが復号化できる前記音声、映像及び/又はオーバーレイフォーマットを示す情報に基づいてクライアントに適用されうる更新を判断するように構成される請求項2に記載のデータ分配システム。
【請求項5】
自デバイスの性能に関する格納された情報を格納するストレージデバイスを格納するする第3のデバイスをさらに有し、
前記サーバは、前記第3のデバイスの性能に関する格納情報を獲得するために第3のデバイスに問合せをするように構成される請求項4に記載のデータ分配システム。
【請求項6】
前記サーバは、前記第3の機器の性能に関する第3のデバイスから獲得した情報を参照して、クライアントに適応可能な更新を判断するように構成される請求項5に記載のデータ分配システム。
【請求項7】
前記サーバは、前記サーバの性能に関する情報を格納するストレージデバイスを含む請求項4に記載のデータ分配システム。
【請求項8】
前記サーバは、前記サーバの性能に関する情報を参照して前記クライアントに適用される更新を判断するように構成される請求項7に記載のデータ分配システム。
【請求項9】
プロセッサ、
前記プロセッサに通信するように構成され且つ別々のチャネルで音声、映像、オーバーレイ、及び制御情報のパケットを受信するように構成されるネットワークインタフェース、及び、
前記プロセッサによって符号化され得る音声、映像及びオーバーレイ情報に関する情報を格納するストレージデバイスを有することを特徴とするクライアント。
【請求項10】
前記ネットワークインタフェースを介して前記プロセッサによって復号化される前記音声、映像及び/又はオーバーレイ情報フォーマットに関する前記格納情報によって送信される前記ネットワークインタフェースを介して受信した問合せに応答するように前記プロセッサは構成される請求項9に記載のクライアント。
【請求項11】
前記格納情報は、XMLファイルとして格納される請求項9に記載のクライアント。
【請求項12】
プロセッサ、
前記プロセッサと通信するネットワークインタフェースを有し、
前記プロセッサは、第1のフォーマットで符号化された音声、映像及びオーバーレイ情報を受信し且つ第2のフォーマットに前記音声、映像及び/又はオーバーレイ情報の少なくとも1つをトランスコードするように構成され、
前記プロセッサ及びネットワークインタフェースデバイスは、前記音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバ。
【請求項13】
前記プロセッサ及び前記ネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成される請求項12に記載のサーバ。
【請求項14】
前記プロセッサ及び前記ネットワークインタフェースデバイスは、外部デバイスの性能を示す情報を受信するように構成される請求項13に記載のサーバ。
【請求項15】
前記プロセッサは、性能リストを獲得するために前記情報を解析するように構成される請求項14に記載のサーバ。
【請求項16】
プロセッサ、
前記プロセッサと通信するネットワークインタフェースを有し、
前記プロセッサ及び前記ネットワークインタフェースデバイスは、利用可能な更新リストを獲得するように構成され、
前記プロセッサ及び前記ネットワークインタフェースデバイスは、外部デバイスの性能に関して外部デバイスに問合せるように構成され、
前記プロセッサは、前記利用可能な更新リスト及び前記外部デバイスの性能に基づいて外部デバイスに提供される更新を判断するように構成され、
前記プロセッサ及び前記ネットワークインタフェースデバイスは、音声、映像及び/又はオーバーレイ情報を送信するように構成されることを特徴とするサーバ。
【請求項17】
前記サーバの性能に関する情報を含むストレージデバイス、
前記プロセッサは、前記サーバの性能に関する前記記憶情報に基づいて外部デバイスに提供される更新を決定するようにさらに構成されることを特徴とする請求項16に記載のサーバ。
【請求項18】
前記外部デバイスの性能は、各デバイスによってサポートされる前記通信プロトコルを含み、
少なくとも1つのプロトコルは、各利用可能な更新によってサポートされ、
前記プロセッサは、各更新されたデバイスが前記同じ通信プロトコルをサポートすることを確実にすることによって、外部デバイスへの更新を適用することを判断するように構成されることを特徴とする請求項16に記載のサーバ。
【請求項19】
データネットワーク上でデータを通信する方法であって、
音声、映像、及びオーバーレイ情報を検索し、
少なくとも1つの前記音声、映像、及びオーバーレイ情報をトランスコードし、
前記音声、映像、及びオーバーレイ情報の1つ以上に関係する音声、映像、オーバーレイ、及び制御情報を送信し、
前記音声、映像、オーバーレイ、及び制御情報の1つ以上に関係する前記音声、映像、オーバーレイ、及び制御情報を受信し、
別々の音声、映像、及びオーバーレイキューで前記受信した情報をキューイングし、
前記情報に関係する前記タイムスタンプに基づいて前記キューイングされた情報を処理し、
前記処理された情報の少なくとも1つのタイムスタンプを示す報告を送信し、
前記報告を受信し、
前記受信した報告内に含まれる前記少なくとも1つのタイムスタンプに関する情報を記録することを特徴とする通信方法。
【請求項20】
前記音声、映像、及びオーバーレイ情報をトランスコードする適切なフォーマットを判断することを有する請求項19に記載の通信方法。
【請求項21】
データネットワーク上で通信するように構成されるデバイスを更新する方法であって、
利用可能な更新及び各更新でサポートされる通信プロトコルのバージョンを判断し、
各デバイスによってサポートされる前記通信プロトコルのバージョンを含む各デバイスの性能を判断し、
必要な更新が実行されるなら、全デバイスによってサポートされる前記通信プロトコルの最新バージョンを判断し、
前記必要な更新を実行することを特徴とする更新方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図6a】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図6a】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2008−527850(P2008−527850A)
【公表日】平成20年7月24日(2008.7.24)
【国際特許分類】
【出願番号】特願2007−550407(P2007−550407)
【出願日】平成17年12月30日(2005.12.30)
【国際出願番号】PCT/US2005/047533
【国際公開番号】WO2006/074099
【国際公開日】平成18年7月13日(2006.7.13)
【出願人】(506194243)ディブエックス,インコーポレイティド (6)
【Fターム(参考)】
【公表日】平成20年7月24日(2008.7.24)
【国際特許分類】
【出願日】平成17年12月30日(2005.12.30)
【国際出願番号】PCT/US2005/047533
【国際公開番号】WO2006/074099
【国際公開日】平成18年7月13日(2006.7.13)
【出願人】(506194243)ディブエックス,インコーポレイティド (6)
【Fターム(参考)】
[ Back to top ]