本開示は、シームレスマルチメディアコンテンツモビリティを与えるリアルタイムマルチメディア管理システム(MMS)を実装するための技法を対象とする。1つまたは複数のサポートされるマルチメディアコンテンツファイルフォーマットのみがサポートされるマルチメディアエコシステムにマルチメディアコンテンツモビリティを限定するのではなく、MMSは、基礎をなすワイヤレスモデムのタイプ、およびこれらのデバイスによって実装されるマルチメディアファイルフォーマットにかかわらず、2つ以上のマルチメディアデバイス間のマルチメディアコンテンツの転送を可能にするマルチメディアルータ、ゲートウェイ、またはブリッジを与えることができる。MMSは、これらのマルチメディアデバイス間でこの仲介を行うために必要なハードウェア、たとえば、プロセッサを構成し、これらの様々なデバイスによってサポートされるファイルフォーマット間の変換またはトランスフォーマッティングを補完するために効率的なメモリ構造を与えることによって、この転送をリアルタイムで行うことができる。MMSは、デバイス間のこのリアルタイム仲介を与えるが、同時に、MMSのユーザによる介入をほとんど要求しない。この意味で、MMSは、第1のデバイスから第2のデバイスへのマルチメディアコンテンツのシームレスなリアルタイム転送を可能にし、第1のデバイスと第2のデバイスとは、様々なタイプのワイヤレスモデムを介してマルチメディアコンテンツを通信し、マルチメディアコンテンツを符号化し、復号するための様々なファイルフォーマットを実装することができる。
一態様では、本技法は、ワイヤレスモデムを介したマルチメディアコンテンツの配信を制御するMMS内のリンク管理プロトコル(LMP)の一実装形態を対象とする。別の態様では、本技法は、ファイルフォーマット間のマルチメディアコンテンツの変換を制御するMMS内のマルチメディア交換プロトコル(MEP)の一実装形態を対象とする。本開示では概して本技法の上記の態様の各々について互いに関連して説明するが、これらの態様の各々は、別々に実装するか、あるいは互いと無関係に、または別々および別個のコンテキストで行うことができる。
LMPの一実装形態を対象とする技法は、MMSと別のデバイスとの間に確立されるワイヤレス通信チャネルに関連する特性のセットを定義するチャネルデータを監視することを含むことができる。たとえば、MMSは、第1のワイヤレス通信チャネルを介して第1のデバイスからマルチメディアコンテンツを受信することができる。この第1のデバイスは、マルチメディアコンテンツのソースであるので、「ソース」デバイスと呼ばれることがある。次いで、MMSは、第2のデバイスとの第2のワイヤレス通信チャネルを確立することができる。この第2のデバイスは、マルチメディアコンテンツの意図された宛先であるので、「宛先」デバイスと呼ばれることがある。MMSは、MMSと宛先デバイスとの間に確立されるワイヤレス通信チャネルに関連する特性のセットを定義する宛先チャネルデータを判断するために、LMPを実装することができる。
判断された宛先チャネルデータに基づいて、次いで、LMPモジュールを使用して、第2のワイヤレス通信チャネルを確立するために使用されるワイヤレスモデムを、宛先デバイスへの受信したマルチメディアコンテンツの通信を可能にするように構成することができる。より詳細には、LMPユニットは、判断された宛先チャネルデータに基づいて、論理チャネル、物理レイヤチャネル、帯域幅割振り、およびサービス品質(QoS)を構成するためのパラメータの適切な組合せを選択することができる。たとえば、MMSは、判断された宛先チャネルデータが与えられれば、LMPユニットが随意のパラメータ値を判断するために使用することができる宛先マルチメディアアプリケーション、たとえば、ストリーミングマルチメディアコンテンツを、LMPモジュールに通知することができる。次いで、LMPユニットは、パラメータのこの構成または組合せをワイヤレスモデム、たとえば、ワイヤレスモデムのベースバンドプロセッサに与え、それによって、特定のマルチメディアアプリケーションに適するようにワイヤレスモデムを最適に構成することができる。この構成は、いわゆるマルチメディアコンテンツを消費するコンシューマのエクスペリエンス品質(QoE)を最大化するために、所与のマルチメディアアプリケーションおよびチャネル特性に関する適切なパラメータを選択することを含むことができる。
本技法のこのLMP態様は、所与のマルチメディアアプリケーションについてワイヤレスチャネル上でのマルチメディアコンテンツの通信を可能にすることによって、コンテンツモビリティを促進することができる。本技法のこの態様は、事実上、別々のマルチメディアエコシステム中に存在し、様々なタイプのワイヤレスモデムを含む2つのマルチメディアデバイス間の物理/データリンクレイヤブリッジとしてデバイスが働くことを可能にする。この意味で、本開示によるLMPを実装するデバイスは、異なるマルチメディアエコシステムのマルチメディアデバイス間のブリッジを作成するように、異なるタイプのワイヤレスモデムを動的に適応させることができる。その上、動的適応は、ほとんどユーザ入力の必要なしに行われるので、本技法のこのLMP態様は、デバイスのユーザから見てシームレスに行われ得る。したがって、本開示の技法に従って実装されたとき、LMPはマルチメディアコンテンツのシームレスモビリティを可能にする。
MEPのMMS実装形態を対象とする技法の態様も、マルチメディアコンテンツのシームレスモビリティを可能にする。この態様は、コンテンツを第1のフォーマットから第2のフォーマットに変換するためのマルチメディアブリッジを与えるように制御ユニットを構成することを含む。たとえば、MMSは、複数のワイヤレスモデムのうちの1つを介して第1のワイヤレス通信チャネル上でソースデバイスから第1のフォーマットのマルチメディアコンテンツを受信することができる。マルチメディアコンテンツを受信したことに応答して、MEPは、第1のファイルフォーマットと第2のファイルフォーマットとの間のマルチメディアブリッジを与えるように制御ユニットを構成することができる。
ある場合には、MMSは、発見プロトコルまたはワイヤレスプロトコルの発見態様によって、受信したマルチメディアコンテンツのための宛先デバイスを自動的に識別することができる。他の場合には、MMSは、発見プロトコルによって、可能な宛先デバイスのセットの位置を特定または識別し、ユーザインターフェースを介してデバイスのこのセットを提示することができる。ユーザは、ユーザインターフェースと対話して、リストから宛先デバイスを選択または識別することができる。いずれの場合も、MEPユニットは、各タイプのマルチメディアデバイスのための複数のマルチメディアデバイスプロファイルを定義するデータを記憶することができる。プロファイルは、制御ユニット内にマルチメディアブリッジを構成するためのパラメータを定義することができる。MEPは、(ソースプロファイルと呼ばれることがある)ソースデバイスに関連するプロファイルと、(宛先プロファイルと呼ばれることがある)宛先デバイスに関連するプロファイルとを判断することができる。
ある場合には、MEPユニットは、マルチメディアコンテンツがラッピングされた第1のファイルフォーマット内に記憶されたヘッダ情報を分析して、ヘッダパラメータを抽出することができる。たとえば、MEPユニットは、マルチメディアコンテンツをラッピングするファイルフォーマットのトランスポートおよび/またはアプリケーションレイヤヘッダを分析して、マルチメディアコンテンツが符号化されたコーデック、マルチメディアコンテンツの解像度、マルチメディアコンテンツのフレーム毎秒(fps)など、これらのヘッダパラメータを抽出することができる。宛先プロファイルと抽出されたパラメータとに基づいて、次いで、MEPは、一組の例として、マルチメディアコンテンツを再カプセル化すべきか、マルチメディアコンテンツをトランスレーティングすべきか、またはマルチメディアコンテンツをトランスコードすべきかを判断することができ、それらの各々は、マルチメディアコンテンツを様々な程度で第1のファイルフォーマットから第2のファイルフォーマットに変換または再フォーマッティングすることを含む。
さらに、MEPユニットはまた、ある場合には、MMSが本開示で説明する技法によるLMPとMEPの両方を実装する場合においてLMPモジュールによって判断された構成パラメータに基づいて、この判断を行うことができる。他の場合には、MEPユニットは、リソースマネージャと通信して、リソースパラメータを判断することができる。MEPユニットはさらに、同様にこれらのリソースパラメータに基づいて変換の判断を行うことができる。各場合において、MEPユニットは、判断された変換に影響を及ぼすブリッジ構成パラメータを判断することができる。MEPユニットは、電力消費を最小限に抑えるか、または少なくとも、電力消費を低減するように、これらのブリッジ構成パラメータを判断することができる。これは、モバイルまたは他の電力制限されたデバイスが本開示で説明する技法を実装するときに特に有益であり得る。MEPユニットはまた、ソースデバイスから宛先デバイスへのマルチメディアコンテンツのリアルタイム転送を可能にするために、これらのブリッジパラメータを判断することができる。
次いで、MEPユニットは、ブリッジ構成パラメータに従って制御ユニット内にマルチメディアブリッジを構成することができる。マルチメディアブリッジを構成した後、制御ユニットは、場合によっては同時にマルチメディアコンテンツを受信しながら、構成されたマルチメディアブリッジを用いて、マルチメディアコンテンツを第1のフォーマットから第2のフォーマットに変換する。この意味で、本技法のMEP態様は、デバイスが、2つの異なるマルチメディアエコシステムからの2つの異なるマルチメディアデバイス間のマルチメディアブリッジを与えるように制御ユニットを動的に適応させることを可能にする。このマルチメディアブリッジは、ほとんどユーザ入力なしにマルチメディアコンテンツを1つのファイルフォーマットから別のファイルフォーマットに動的に変換するトランスポート/アプリケーションレイヤブリッジを含むことができる。したがって、MEPのMMS実装形態を対象とする本技法の態様は、ほとんど本技法のLMP態様のように、マルチメディアコンテンツのシームレスモビリティを可能にする。
特に、本技法のLMP態様およびMEP態様について、LMPとMEPの両方の実装形態を有するMMSを含む単一のモバイルデバイスに関して以下で説明する。したがって、このMMSは、モバイルデバイスの物理リンクレイヤおよびデータリンクレイヤのうちの1つまたは複数と、トランスポートレイヤおよびアプリケーションレイヤのうちの1つまたは複数とにわたるマルチメディアブリッジを形成することができる。本開示で使用するレイヤは、開放型システム間相互接続(OSI)モデルのレイヤを指す。物理レイヤ、データリンクレイヤ、トランスポートレイヤおよびアプリケーションレイヤは、それぞれ、レイヤ1、レイヤ2、レイヤ4およびレイヤ7(またはL1、L2、L4およびL7)と呼ばれることもあり、ただし、番号は、OSIモデルの7つのレイヤ内のレイヤの順序を示す。本技法のLMP態様とMEP態様の両方を組み合わせることによって、MMSは、複数のレイヤにわたり、特性またはパラメータをLMPからMEPに受け渡すことによって下位レイヤ(たとえば、L1およびL2)から上位レイヤ(たとえば、L4およびL7)へのブリッジを構築するために働くブリッジを与えることができ、それにより、MEPは、マルチメディアブリッジの上位レイヤを構成するためのブリッジ構成パラメータをさらに最適化することができる。しかも、上記のように、これらの態様の各々は、たとえば、OSIモデルの下位レイヤまたは上位レイヤのみにわたるマルチメディアブリッジを形成するために、互いに別々に実装できる。したがって、本技法は、本開示で説明する特定の例示的な実装形態に限定されるものと見なされるべきではない。
図1は、モバイルデバイス12が本開示で説明する技法を実装する例示的なシステム10を示すブロック図である。特定のタイプのデバイス、たとえば、モバイルデバイス12に関して説明するが、少なくとも1つのタイプのワイヤレスモデムを使用して2つ以上のデバイス間でマルチメディアコンテンツを通信すること、および/またはマルチメディアコンテンツを1つのファイルフォーマットから別のファイルフォーマットに変換することが可能な、どんなタイプのデバイスでも、本開示で説明する技法を実装することができる。この点で、モバイルデバイス12は、概して、ワイヤレス通信と上記の変換の両方を行うことが可能な、そのようなデバイスの一例を表す。
図1の例に示されるように、システム10はソースデバイス14と宛先デバイス16とを含み、その両方は、それぞれワイヤレス通信チャネル13および15を介してモバイルデバイス12と通信する。デバイス14、16の各々は、パーソナルコンピュータ、ワークステーション、携帯情報端末(PDA)、(いわゆる「スマートフォン」を含む)モバイルフォン、またはソフトウェア、特に、マルチメディアソフトウェアを実行することが可能な汎用プロセッサを含む他のタイプのデバイスなど、汎用マルチメディアデバイスを含むことができる。デバイス14、16の各々は、代替的に、ビデオカムコーダ、デジタルビデオディスク(DVD)プレーヤ、テレビジョン、セットトップボックス(STB)、コンパクトディスク(CD)プレーヤ、デジタルメディアプレーヤ(たとえば、いわゆる「MP3」プレーヤまたは複合MP3/MP4プレーヤ)、デジタルビデオレコーダ(DVR)、全地球測位システム(GPS)デバイス、あるいは1つまたは複数のマルチメディアアプリケーションのセット専用であり、マルチメディアソフトウェアのロードおよび実行のユーザ制御が一般に可能でない他のデバイスなど、専用マルチメディアデバイスを含むことができる。
汎用デバイスまたは専用マルチメディアデバイスを表すかどうかにかかわらず、ソースデバイス14は、宛先デバイス16に送信するための第1のフォーマットのビデオデータを生成する。ソースデバイス14は、ソースアプリケーション18とモデム22とを含む。ソースデバイス14のソースアプリケーション18は、一例として、ビデオカメラ、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードなど、ビデオキャプチャデバイスを含むことができる。さらなる代替として、ソースアプリケーション18は、別の例として、ビデオとしてのコンピュータグラフィックベースのデータ、あるいはライブビデオまたはアーカイブされたビデオとコンピュータ生成ビデオとの組合せを生成することができる。場合によっては、ソースアプリケーション18がビデオカメラである場合、ソースデバイス14は、いわゆるカメラ付き電話またはビデオ電話、あるいは携帯電話または他のデバイスを含む他のタイプのカメラ付きコンピューティングまたは通信デバイスを形成することができる。他の態様では、ソースアプリケーション18はソースデバイス14に結合または統合される。ある場合には、キャプチャされたビデオ、あらかじめキャプチャされたビデオ、および/またはコンピュータ生成ビデオは、ワイヤレス通信チャネル13上でモデム22を介してソースデバイス14からモバイルデバイス12に送信するために、ビデオエンコーダ(図1に図示せず)によって符号化される。
このビデオエンコーダはソースアプリケーション18からビデオデータを受信する。ソースアプリケーション18から受信したビデオデータは、ビデオフレームなどの一連のビデオデータユニットを含むビデオシーケンスで構成される。フレームの一部または全部は、ビデオスライスなどのより小さいビデオデータユニットに分割される。ビデオエンコーダは、ビデオデータを符号化するために、個々のビデオフレームまたはスライス内のピクセルのブロック(本明細書ではビデオブロックと呼ぶ)に作用することができる。フレームまたはスライスは、複数のビデオブロックを含むことができる。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。一般にマクロブロック(MB)と呼ばれる16×16ピクセルビデオブロックをサブブロックに構成することができる。
一例として、International Telecommunication Union Standardization Sector (ITU-T) H.264/MPEG-4, Part10, Advanced Video Coding (AVC)(以下「H.264/MPEG-4 AVC」規格)は、ルーマ成分については16×16、8×8、または4×4、およびクロマ成分については8×8など、様々なブロックサイズのイントラ予測、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ成分について対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。一般に、MBおよび様々なサブブロックをビデオブロックであると考えることができる。したがって、MBはビデオブロックであると考えられ、区分または下位区分された場合、MBは、それ自体がビデオブロックのセットを定義すると考えることができる。いくつかの態様では、近隣可用性検査技法は、MBまたはサブブロックなど、ビデオブロックの幅に基づいて可用性判断を指示することができる。
本開示では、本技法について、ビデオフレームまたはビデオスライスなどの様々なビデオデータユニットに関して説明するが、本技法は、概して、ビデオおよび/またはオーディオデータのどんな符号化および復号にも適用可能である。その上、本開示では、本技法について、H.264/MPEG-4 AVC規格に従って符号化および復号されるビデオデータに関して説明する。ただし、例示のために、本技法について、この規格に関して説明する。しかしながら、様々な態様では、そのような技法は、MPEG-1、MPEG-2およびMPEG-4におけるMoving Picture Experts Group(MPEG)によって定義された規格、ITU-T H.263規格、Society of Motion Picture and Television Engineers(SMPTE) 421Mビデオコーデック規格(一般に「VC-1」と呼ばれる)、中国のAudio Video Coding Standard Workgroup(一般に「AVS」と呼ばれる)によって定義された規格、ならびにある規格団体によって定義されるか、またはプロプライエタリ規格としてある組織によって開発された他のビデオおよび/またはオーディオコーディング規格など、様々な他のビデオコーディング規格のいずれにも容易に適用することができる。
例示のために、限定はしないが、様々なコーディング技法の適用について、H.264/MPEG-4 AVCコーディングに関して説明する。ビデオエンコーダは、たとえば、H.264/MPEG-4 AVC規格に記載されているように、イントラコーディングおよびインターコーディング予測方式に従って、各ブロック(たとえば、マクロブロック(MB))を符号化することができる。ビデオブロックのイントラまたはインターベースの予測の後に、ビデオエンコーダは、ビデオブロックに対していくつかの他の演算を行うことができる。これらの追加の演算は、変換演算(H.264/MPEG-4 Part 10 AVCまたは離散コサイン変換DCT中に使用される4×4または8×8整数変換など)、量子化演算、エントロピーコーディング演算、およびフィルタ処理演算を含むことができる。次いで、ビデオエンコーダは、ビデオフレームのシーケンスのブロックの各々を符号化し、「符号化ビットストリーム」と呼ばれることがある、符号化ビデオデータを出力する。
ソースデバイス14のモデム22は、マルチメディアコンテンツの下位レイヤ送信、たとえば、物理レイヤおよびデータリンクレイヤ上の送信を管理することができる。上記で説明したレイヤは、開放型システム間相互接続(OSI)モデルの様々なレイヤを指す。たとえば、モデム22は、符号化ビデオデータの通信のためにモバイルデバイス12との通信チャネル13を構成し、確立することができる。次いで、モデム22は、チャネル13上で符号化ビデオデータをモバイルデバイス12に送信する。
同様に、汎用デバイスまたは専用マルチメディアデバイスを表すかどうかにかかわらず、宛先デバイス16は、モバイルデバイス12からワイヤレス通信チャネル15を介して符号化ビデオデータを受信する。宛先デバイス14は、ワイヤレスモデム28と宛先アプリケーション32とを含むことができる。ある場合には、宛先デバイス14は、ディスプレイデバイス上での再生のために符号化ビデオデータを復号して元のビデオデータを得ることができるビデオデコーダを含むことができる。宛先アプリケーション32は、ビデオデータが復号されるかどうかにかかわらず、ビデオデータを利用する任意のアプリケーションを含むことができる。
モデム28は、ソースデバイス14のモデム22のように、マルチメディアコンテンツの下位レイヤ送信、たとえば、物理レイヤおよびデータリンクレイヤ上の送信を管理することができる。モデム28は、たとえば、フォーマットされたビデオデータの通信のためにモバイルデバイス12との通信チャネル15を構成し、確立することができる。次いで、モデム28は、ワイヤレス通信チャネル15を介してフォーマットされたビデオデータを受信する。モデム22および28はそれぞれ、ワイヤレスパーソナルエリアネットワーク(WPAN)モデム(たとえば、Bluetooth(登録商標)モデム)、セルラーモデム(たとえば、Universal Mobile Telecommunications SystemすなわちUMTSモデム、Global Systems for Mobile communicationsすなわちGSMモデム、High-Speed Downlink Packet AccessすなわちHSDPAモデム、およびHigh-Speed Uplink Packet AccessすなわちHSUPAモデム)、ワイヤレスワイドエリアネットワーク(WWAN)モデム(たとえば、Worldwide Inter-operability for Microwave AccessすなわちWiMaxモデム)、およびワイヤレスローカルエリアネットワーク(WLAN)モデム(たとえば、Wi-Fi(登録商標)モデムまたは米国電気電子技術者協会すなわちIEEE 802.11規格セットに準拠する他のモデム)を含む、ワイヤレスモデムの1つまたは複数のタイプを含むことができる。これらの様々なモデムの各々は、様々な形態およびレベルの前方誤り訂正(FEC)を実装し、様々なワイヤレス通信チャネルを介して通信し、様々なレベルの電力を消費し得る。
説明のために、ソースデバイス14および宛先デバイス16は別々のマルチメディアエコシステム内に常駐すると仮定する。言い換えれば、ソースデバイス14は宛先デバイス16のモデム28とは異なるモデム22を含み、したがって、ソースデバイス14は宛先デバイス16と直接通信することができないと仮定する。さらに、ソースデバイス14は、宛先デバイス16によって実装されるものとは異なるファイルフォーマットを実装すると仮定する。すなわち、ソースアプリケーション18は、宛先アプリケーション32が、異なるフォーマットのビデオデータのみをサポートすることができる、たとえば、復号または解釈する能力を有することができるという点で、宛先アプリケーション32がサポートしないフォーマットのビデオデータを生成することができる。
本開示で使用するフォーマットは、一態様では、ソースデバイスから宛先デバイスへのマルチメディアコンテンツの送信を可能にするマルチメディアコンテンツの符号化を指すことができる。例示的なフォーマットは、Moving Pictures Expert Group(MPEG) 4, part 14によって定義されたMP4ファイルフォーマットを含むことができる。MP4ファイルフォーマットは、デジタルオーディオおよびデジタルビデオストリームを記憶するために一般に使用されるコンテナファイルフォーマットである。他のコンテナファイルフォーマットは、3GP、Advanced Systems Format(ASF)、Advanced Video Interleave(AVI)ファイルフォーマット、DivX Media Format(DMF)、Enhanced Video Object(EVO)ファイルフォーマット、およびフラッシュビデオファイルフォーマットと呼ばれるMP4ファイルフォーマットの簡略版を含む。フォーマットはまた、この態様または他の態様では、リアルタイムトランスポートプロトコル(RTP)およびストリーム制御伝送プロトコル(SCTP)など、特定のトランスポートおよび/またはアプリケーションレイヤプロトコルに関して使用されるフォーマットを指すことができる。一般に、フォーマットは、ビデオの場合における解像度、マルチメディアデータを符号化するために使用されるコーデックなど、マルチメディアコンテンツまたはデータの説明または特性を指す。
ソースアプリケーション18は、概して、マルチメディアコンテンツを提供するハードウェア、またはハードウェアとソフトウェアの両方を指すことができる。ある場合には、ソースアプリケーション18はソースデバイス14内で動作することができるが、他の場合には、ソースアプリケーション18とソースデバイス14とが同じデバイスを含むことができる。ソースアプリケーション18は、図1の例では、たとえば、プロセッサ上で実行するソフトウェアプロセスとして、ソースアプリケーション18がソースデバイス14内で実行する場合を示すために、ソースデバイス14とは別に示されている。本開示で説明する技法は、図1の例に限定されるべきではない。
同様に、宛先アプリケーション32は、概して、マルチメディアコンテンツのためのターゲットまたはマルチメディアコンテンツのコンシューマであるハードウェアまたはハードウェアとソフトウェアの両方を指すことができる。ある場合には、宛先アプリケーション32は宛先デバイス16内で動作することができるが、他の場合には、宛先アプリケーション32と宛先デバイス16とが同じデバイスを含むことができる。宛先アプリケーション32は、図1の例では、たとえば、プロセッサ上で実行するソフトウェアプロセスとして、宛先アプリケーション32が宛先デバイス16内で実行する場合を示すために、宛先デバイス16とは別に示されている。本開示で説明する技法は、図1の例に限定されるべきではない。その上、本明細書で使用するアプリケーションは、上記で説明したいずれの場合にも限定されるべきではないが、ディスプレイデバイスなどの専用デバイス、および/またはプロセッサ上で実行するソフトウェアプロセスを含むことができる。
本開示で説明する技法によれば、モバイルデバイス12は、ビデオデータをソースアプリケーション18によって実装された第1のフォーマットから宛先アプリケーション32によって実装された第2のファイルフォーマットに変換するようにマルチメディアブリッジ36を動的に構成するマルチメディア管理システム34(「MMS34」)を含む。マルチメディアブリッジ36は、マルチメディアブリッジ36が論理ブリッジであり、静的にハードコーディングされないか、あるいは恒久的には構成されないことを反映するために、図1中に破線ボックスとして示されている。その上、マルチメディアブリッジ36は、図1では、マルチメディアブリッジ36がモバイルデバイス12のビデオコーデック38とモデム40の両方にわたって動的に構成されることを反映するために、ビデオエンコーダ/デコーダ38(「ビデオコーデック38」)とモデム40の両方にわたるように示されている。この点で、マルチメディアブリッジ36は、異なるファイルフォーマットと異なるタイプのワイヤレスモデムとの間のブリッジを与えることができる。
本開示で使用する変換は、概して、ビデオデータの修正を指す。したがって、例示的な変換は、ビデオデータを部分的にまたは完全に再カプセル化することを含むことができる。別の例示的な変換は、符号化ビデオデータのフレーム落ちまたは再量子化によってビデオデータを同じコーデック内でトランスレーティングすることを含むことができる。さらに別の例示的な変換は、スケーリングを用いてまたは用いずにコーディングフォーマットを変更することによってビデオデータをトランスコードすることを含むことができる。これらの様々な変換の各々について以下でより詳細に説明する。
MMS34に加えて、モバイルデバイス12は、ビデオコーデック38とモデム40とを含む。ビデオコーデック38は、ビデオエンコーダとビデオデコーダの両方の組合せを含むことができる。しばしば、ビデオエンコーダは、ビデオエンコーダによって符号化されたコンテンツを復号するための統合ビデオデコーダを含む。統合ビデオデコーダをもつこれらのビデオエンコーダは、一般にビデオコーデックまたはコーデックと呼ばれる。しばしば、グラフィックス処理ユニット(GPU)または他のタイプの処理ユニット、特定用途向け集積回路(ASIC)など、マルチメディアプロセッサまたは専用ハードウェアは、ビデオコーデックを実装する。代替的に、中央処理ユニット(CPU)などの汎用処理ユニットは、ビデオコーデックを実装するためのソフトウェアを実行することができる。この意味で、ビデオコーデック38は、複数のビデオコーデックを実装するハードウェアおよび/またはハードウェアとソフトウェアとの組合せを表すことができる。
モデム40は複数のワイヤレスモデム40を含むことができ、複数のワイヤレスモデム40の各々は、モデム22および28に関して上記に記載したワイヤレスモデムのタイプのうちの異なる1つを含むことができる。一般に、これらの異なるタイプのワイヤレスモデムの各々は、OSIモデルの下位レベルレイヤ上のデータの送信を管理する専用ベースバンドプロセッサまたは他の処理要素を含むことができる。しかしながら、ある場合には、単一のベースバンドプロセッサが1つまたは複数のタイプのワイヤレスモデムを実装することができる。とにかく、モデム40は、概して、少なくとも1つのタイプのワイヤレスモデムを実装する少なくとも1つのベースバンドプロセッサを表す。
最初に、MMS34は、発見プロトコルまたはワイヤレス通信プロトコル内の何らかの他の発見機構によってソースデバイス12を発見するかまたは場合によっては検出することができる。一般に、MMS34は、モデム40のうちの1つまたは複数に、これらのモデム40の各々のワイヤレス通信レンジ内のデバイスを検出させるために、モデム40と対話することができる。詳細には、MMS34は、モバイルデバイス12のモデム40のワイヤレス通信レンジ内のデバイスを検出するために、モデム40と通信するリンク管理プロトコル(LMP)モジュール44(「LMP44」)を含む。LMPは、本開示で詳細に説明するプロトコルを指し、それにより、LMPモジュール44は、モデム40と通信して、マルチメディアブリッジ36の下位レイヤを構成するためのパラメータを判断することができる。
図1には示されていないが、MMS34は、ユーザインターフェースを提示するユーザインターフェースモジュールを含むことができる。ユーザインターフェースは、検出されたデバイスを掲示することができる。モバイルデバイス12のユーザまたは他の事業者は、提示されたユーザインターフェースと対話して、ソースデバイス、たとえば、ソースデバイス14を選択することができる。ユーザインターフェースモジュールはまた、この選択を受信すると、選択されたデバイスを除いた検出されたデバイスを掲示する別のユーザインターフェースを提示することができる。このユーザインターフェースは、宛先デバイスを選択するようにユーザにプロンプトを出すことができる。次いで、ユーザは、この第2のユーザインターフェースと対話して、この第2のリストから宛先デバイス、たとえば、宛先デバイス16を選択することができる。この点で、MMS34は、少なくとも1つのソースデバイス14と少なくとも1つの宛先デバイス16とを識別することができる。代替的に、MMS34は、ユーザに介入を促すかまたは場合によっては要求することなしに、リストからソースデバイスと宛先デバイスとを自動的に選択することができる。
(自動的にまたはユーザ介入によって)選択された宛先デバイス16に基づいて、LMPモジュール44は、宛先デバイス16と通信するためにモデム40のうちのいずれを使用すべきかを判断し、ワイヤレスモデム40のうちのこの1つを用いて、宛先デバイス16とのワイヤレス通信チャネル15を確立する。ワイヤレスモデム40のうちのこの1つは宛先モデムと呼ばれることがある。LMPモジュール44は、この宛先モデムと通信して、ワイヤレス通信チャネル15に関連する特性のセットを定義する宛先チャネルデータを判断することができる。これらの特性は、ビット誤り率(BER)、パケット誤り率(PER)、信号対雑音比(SNR)、前方誤り訂正(FEC)強度、チャネルコーディングに関連する周波数または時間ダイバーシティ、および誤差分布特性(たとえば、ディープフェード対フラットフェード)を含むことができる。次いで、LMPモジュール44は、ワイヤレス通信チャネル15を介してソースデバイス14から受信したマルチメディアコンテンツの送信を、最適化はしないとしても、可能にするように、宛先チャネルデータに基づいてワイヤレスモデムのうちのこの1つを構成することができる。
ある場合には、LMPモジュール44は、モバイルデバイス12がソースデバイス14と通信するワイヤレス通信チャネル13を管理するワイヤレスモデム40のうちの別の1つとインターフェースすることができる。ワイヤレスモデム40のうちのこの他の1つはソースモデムと呼ばれることがある。LMPモジュール44は、このソースモデムとインターフェースして、宛先チャネルデータによって定義された特性と同様の特性のセットを定義するソースチャネルデータを判断することができる。次いで、LMPモジュール44は、ワイヤレス通信チャネル13を介して送信されたワイヤレス信号からのマルチメディアコンテンツの復元を、最適化はしないとしても、可能にするように、このソースモデムを構成することができる。このようにして、LMPモジュール44は、モデム40とインターフェースして、ワイヤレスモデム40にわたるマルチメディアブリッジ36を構築することができる。
特に、ソースモデムと宛先モデムとは、ワイヤレスモデム40のうちの同じモデムを含むことができる。この場合、ソースモデムのみが、ワイヤレスモデム40のうちのこの同じモデムの受信側に関与し、一方、宛先モデムは、ワイヤレスモデム40のうちのこの同じモデムの送信側に関与する。受信側および送信側の各々は、本開示で説明する技法では別々のモデムを表すことができ、これらの側の各々は、それぞれのワイヤレス通信チャネル13および15上で送信されたワイヤレス信号からのマルチメディアコンテンツの復元を、最適化はしないとしても、可能にするように、LMPモジュール44によって個々に構成できる。
MMS34は、マルチメディアブリッジ36の上位レイヤを構築するマルチメディア交換プロトコル(MEP)モジュール46(「MEP46」)をさらに含むことができる。言い換えれば、MEPモジュール46は、第2のフォーマットに従って符号化されたマルチメディアコンテンツへの第1のフォーマットに従って符号化されたマルチメディアコンテンツの変換を可能にする方法でビデオコーデック38を構成するためのブリッジ構成パラメータを判断する。この点で、MEPモジュール46は、マルチメディアブリッジ36が複数のビデオコーデック38にわたるように、モバイルデバイス12の制御ユニット、たとえば、ビデオコーデック38の集合および他のサポートされる処理ユニット内にマルチメディアブリッジ36を構成する。
このようにしてマルチメディアブリッジ36を構成するために、MEPモジュール46は、マルチメディアブリッジ36の上位レイヤのための構成パラメータが基づく、いくつかの異なるタイプのデータを判断することができる。第1に、MEPモジュール46は、ソースチャネルデータもしくは宛先チャネルデータのいずれか、またはソースチャネルデータと宛先チャネルデータの両方をLMPモジュール44から受信することができる。このチャネルデータは、MEPモジュール46がファイルフォーマットの許容タイプを識別する際に使用することができる特性のセットを定義することができる。LMPモジュール44はまた、選択されたソースデバイス12と宛先デバイス16とをMEPモジュール46に転送することができる。選択されたソースデバイス12と宛先デバイス16とに基づいて、MEPモジュール46はプロファイル48のうちの1つまたは複数を選択することができる。プロファイル48の各々は、マルチメディアデバイス、および/またはそれぞれのマルチメディアデバイスおよび/またはアプリケーションによってサポートされるファイルフォーマット、ならびにそれらのサポートされるファイルフォーマットの特性を定めるデータを定義するアプリケーションプロファイルを表すことができる。たとえば、MEPモジュール46は、ソースアプリケーション18に対応するプロファイル48のうちの1つ(たとえば、ソースプロファイル)と、宛先アプリケーション32に対応するプロファイル48のうちの別の1つ(たとえば、宛先プロファイル)とを判断することができる。ある場合には、MEPモジュール46は、モバイルデバイス12内のリソースの利用を管理するリソースマネージャモジュール(図1に図示せず)と通信して、モバイルデバイス12内の現在のリソースの利用を定めるリソースデータを判断することができる。他の場合には、MEPモジュール46は、受信したマルチメディアコンテンツをラッピングまたは符号化するファイルフォーマットヘッダからヘッダデータを抽出することができる。
データ、たとえば、チャネルデータ、デバイスおよび/またはアプリケーションデータ、リソースデータ、ならびに/あるいはヘッダデータのこれらのセットのうちの1つまたは複数に基づいて、MEPモジュール46は、マルチメディアブリッジ36の上位レイヤのための構成を定義するブリッジ構成パラメータを判断することができる。一態様では、MEPモジュール46は、これらのブリッジ構成パラメータを選択して、第1のファイルフォーマットから第2のファイルフォーマットへのマルチメディアコンテンツの(必ずしも瞬時ではないが)リアルタイムまたは低レイテンシ変換を行うように、マルチメディアブリッジ36を構成することができる。別の態様では、MEPモジュール46は、マルチメディアブリッジ36によって行われる変換が電力を節約するかまたは場合によっては電力消費を低減するように、マルチメディアブリッジ36を構成するように、これらのブリッジ構成パラメータを選択することができる。
電力消費を節約するかまたは場合によっては最適化するようにマルチメディアブリッジ36を構成するために、様々な技法を採用することができる。たとえば、「スマート」トランスコーディングによって電力消費を改善することができる。スマートトランスコーディングでは、コンテキスト適応型バイナリ算術コーディング(CABAC)と呼ばれるH.264/MPEG-4 AVCビデオコーデックに利用可能なエントロピーコーディングの形態に従って符号化されたマルチメディアコンテンツをコンテキスト適応型可変長コード(CAVLC)にトランスコードすることができる。スマートトランスコーディングは、CABACが、並列に実行または実施できない直列演算をもたらす著しいレイテンシおよび相互依存性(たとえば、データ依存性)をもたらし得ることを認め得る。この直列化は、コーデックのマクロブロック/スライス復号ループ内のコンテキスト節約およびマルチレベル復号により生じる。
いずれの場合も、相互依存性はまた、(コアと呼ばれることがある)プロセッサの使用または利用を増加させるいくつかの条件文(たとえば、コーディング決定における分岐)を増加させる。この利用の増加は電力消費を増加させ得る。マルチメディアコンテンツをCAVLCにトランスコードすることにより、この電力利用をデータ依存性の低減によって減少させることができる。この点で、トランスコーディングのこの形態が既知の問題を回避するようにトランスコーディングを適応させることができるという点で、この形態のトランスコーディングは「スマート」であるとすることができる。さらに、スマートトランスコーディングは、(たとえば、MMSを用いた1つのモバイルがこの第1のモバイルのユーザグループ中の他のモバイルデバイスにサービスしているときに有用であり得る)ベースラインプロファイルトランスコーディングにメインプロファイルの正味効果を与えることによって、効率的な電力利用を促進するために、BスライスをPスライスにトランスコードすることを含むことができる。
また、スマートトランスコーディングは、受信したマルチメディアコンテンツからパラメータを復号することと、再符号化プロセス中にこれらのパラメータを(再計算ではなく)再使用することとを含むことができる。たとえば、動きベクトルなど、動き情報を復号し、次いで、マルチメディアコンテンツを宛先デバイスに配信する前にそのコンテンツを再符号化するためにその動き情報を再使用することができる。これは、パラメータ情報の再使用または再利用によって電力消費を低減することができる。スマートトランスコーディングは、LMPモジュール44などLMPモジュールによって与えられた帯域幅データに基づいて、所与のチャネルがサポートすることができる(並列化を可能にする)いくつかのマクロブロック行を判断することをさらに含むことができる。このデータは、上記で説明したように、電力消費を低減することができる並列化の最大量を可能にするようにビデオコーデック38をMEP48が構成することを可能にすることによって、電力消費を低減することができる。事実上、スマートトランスコーディングは、圧縮効率のためよりもむしろ、レイテンシおよび電力について、およびソースアプリケーション18と宛先アプリケーション32との間の最適な整合を保証するために、より最適化されたマルチメディアブリッジ36を構成するように、MMS34がブリッジ構成パラメータ64を選択するプロセスを指す。
次いで、MEPモジュール46は、ビデオコーデック38とインターフェースして、判断されたブリッジ構成パラメータに従ってビデオコーデック38のうちの1つまたは複数を構成する。MEPモジュール46は、ビデオコーデック38の各々によって与えられたアプリケーションプログラマインターフェース(API)を介して、ビデオコーデック38とインターフェースすることができる。MEP48は、APIのいずれを呼び出すべきか判断し、したがって、ソースアプリケーション18から受信したマルチメディアコンテンツがフォーマットされるファイルフォーマットと、プロファイル48のうちの対応する1つに記載されている、宛先アプリケーション32によってサポートされるファイルフォーマットのうちの選択された1つとに基づいてビデオコーデック38のいずれを構成すべきか判断することができる。この点で、ビデオコーデック38の各々は1つまたは複数のファイルフォーマットに対応することができる。
特に、MEP48は、ビデオコーデック38のうちの単一の1つのみを構成することができ、ほとんど、ワイヤレスモデム40のうちの1つのみが構成される上記の場合のように、ビデオコーデック38のうちのこの1つの受信側、たとえば、デコーダと、送信側、たとえば、エンコーダとを構成することができる。この場合、変換は、第1のフォーマットから第2のフォーマットへのマルチメディアコンテンツの一部または全部の再カプセル化を含むことができる。代替的に、変換は、第1のファイルフォーマットから第2のファイルフォーマットを生成するために、マルチメディアコンテンツのフレーム落ちまたはマルチメディアコンテンツの再量子化を含む得る、同じコーデック内のマルチメディアコンテンツのトランスレーティングを含むことができる。この点で、ファイルフォーマットはマルチメディアコンテンツのフォーマットを指す。したがって、第1のファイルフォーマットは、得られた第2のファイルフォーマットとはマルチメディアコンテンツのフォーマットにおいて異なり得る。変換することがビデオコーデック38のうちの2つ以上に関与するとき、変換はトランスコーディングを含むことができ、それによって符号化のタイプとマルチメディアコンテンツのフォーマットの両方を第1のファイルフォーマットから第2のファイルフォーマットに変更することができる。
MMS34のLMPモジュール44は、ワイヤレスモデム40のうちの第1のモデムを介してマルチメディアコンテンツを受信し、ワイヤレスモデム40のうちの第2のモデムを介してこのマルチメディアコンテンツを効率的に送信するようにマルチメディアブリッジ36を動的に構成することができる。MMS34のMEPモジュール46はまた、ワイヤレスモデム40のうちの第1のモデムを介して受信されるマルチメディアコンテンツを第1のファイルフォーマットから第2のファイルフォーマットに変換するように、マルチメディアブリッジ36を動的に構成することができる。したがって、複合構成は、第1のマルチメディアエコシステムのソースアプリケーション18から、第2の異なるマルチメディアエコシステムの宛先アプリケーション32へのマルチメディアコンテンツの配信を、最適化はしないとしても、可能にするように、OSIモデルの様々なレイヤにわたるマルチメディアブリッジ36を構成することができ、これらのデバイスの各々は、異なるタイプのワイヤレスモデムを含み、重複しない、したがって異なるセットのマルチメディアファイルフォーマットをサポートする。その上、その構成は、効率的な電力利用および/またはマルチメディアコンテンツのシームレスのリアルタイム配信および変換を促進するマルチメディアブリッジ36を生じることができる。
一例として、マルチメディアブリッジ36を構成した後、モバイルデバイス12は、モデム40のうちの1つを介して、ワイヤレス通信チャネル13上でソースデバイス14からマルチメディアコンテンツを受信することができる。マルチメディアブリッジ36は、ワイヤレスモデム40のうちの第1のモデムを介してこのコンテンツを受信し、ワイヤレス、一般に、無線信号から、ソースアプリケーション18によってサポートされる第1のファイルフォーマットに従って符号化されたマルチメディアコンテンツを復元するために、誤り訂正および他の下位レイヤ機能を与えることができる。復元を改善し、および/または効率的なエネルギー消費を促進するために、よりロバストな誤り訂正および他の下位レイヤ機能を与えるように、上述のソースチャネルデータに基づいて、LMPモジュール44によってマルチメディアブリッジ36のこのソースモデムを構成することができる。
次いで、マルチメディアブリッジ36のこのソースモデムは、第1のファイルフォーマットでフォーマットされた復元されたマルチメディアコンテンツを、ソースビデオコーデックと呼ばれることがある、マルチメディアブリッジ36のビデオコーデック38のうちの1つに転送することができる。MEPモジュール46は、効率的な電力消費および/またはマルチメディアコンテンツのリアルタイム復号を促進するように、このソースビデオコーデックを構成することができる。ビデオコーデック38のソースビデオコーデックは、第1のファイルフォーマットを復号してフォーマットされていないマルチメディアコンテンツを生成し、このフォーマットされていないマルチメディアコンテンツを、マルチメディアブリッジ36の宛先ビデオコーデックと呼ばれることがある、宛先デバイス16の宛先アプリケーション32によってサポートされるファイルフォーマットに準拠するビデオコーデック38のうちの別の1つに転送することができる。MEPモジュール46は、効率的な電力消費および/またはマルチメディアコンテンツのリアルタイム符号化を促進するように、この宛先ビデオコーデックを構成することができる。
その上、MEPモジュール46は、効率的な電力消費および/またはマルチメディアコンテンツのリアルタイム変換を促進するために、第1のファイルフォーマットから第2のファイルフォーマットへのマルチメディアコンテンツの並列復号および符号化を最適化するように、ソースビデオコーデックと宛先ビデオコーデックの両方を構成することができる。マルチメディアコンテンツのリアルタイム変換に関して、MMS34は、いくつかの態様では、ソースアプリケーション18からマルチメディアコンテンツを受信すると同時にマルチメディアコンテンツを変換するように、マルチメディアブリッジ36を構成することができる。
次いで、ビデオコーデック38の宛先ビデオコーデックは、第2のファイルフォーマットに従って符号化されたマルチメディアコンテンツを宛先モデムマルチメディアブリッジ36に転送する。ソースモデムのように、LMPモジュール44は、宛先デバイス16によるマルチメディアコンテンツの復元を改善するように、および/またはモバイルデバイス12による効率的なエネルギー消費を促進するように、マルチメディアブリッジ36の宛先モデムを構成することができる。次いで、この宛先モデムは、ワイヤレス通信チャネル15上で、フォーマットされたマルチメディアコンテンツを宛先デバイス16に送信することができる。
このようにして、本技法は、ソースデバイス14と宛先デバイス16など、2つのデバイス間の通信を可能にするブリッジを与えるための、モバイルデバイス12など、デバイス内のマルチメディアブリッジ36の動的構成を可能にする。ワイヤレス通信チャネル13および15を確立するようにワイヤレスモデム40のうちの1つまたは複数を構成するLMPモジュール44によって、マルチメディアブリッジ36は、OSIモデルの下位レイヤ、たとえば、レイヤ1および2、すなわちL1およびL2にわたることができる。1つのファイルフォーマットから別のファイルフォーマットへのマルチメディアコンテンツの変換を可能にするようにビデオコーデック38のうちの1つまたは複数を構成するMEPモジュール46によって、マルチメディアブリッジ36は、OSIモデルの上位レイヤ、たとえば、レイヤ4および7にわたることができる。マルチメディアブリッジ36が1つのアプリケーションから別のアプリケーションへのマルチメディアの通信を可能にし、ここで、アプリケーションの第1のアプリケーション、たとえば、ソースアプリケーション18が1つのマルチメディアエコシステム内に存在し、他のアプリケーション、たとえば、デバイスアプリケーション32が別のマルチメディアエコシステム内に存在することを考えると、マルチメディアブリッジ36が2つの異なるマルチメディアエコシステム間を流れるマルチメディアのためのゲートウェイとして働くことから、マルチメディアブリッジ36をマルチメディアゲートウェイと呼ぶことができる。
ソースアプリケーション18から宛先アプリケーション32への単一方向の通信を可能にするとして説明したが、本技法は、モバイルデバイス12が、ソースアプリケーション18から宛先アプリケーション32へと、宛先アプリケーション32からソースアプリケーション18への両方の通信を可能にするマルチメディアブリッジ36を与えることを可能にする。この点で、マルチメディアブリッジ36が、二重通信と呼ばれる、同時の2つ以上のアプリケーション間の通信を可能にするための汎用プラットフォームを与えるという点で、本技法は、モバイルデバイス12が「二重汎用プラットフォーム」を与えることを可能にする。
図2Aおよび図2Bは、本開示で説明する技法を実装する際のモバイルデバイス12をより詳細に示すブロック図である。特に、図2Aは、本開示で説明する技法のリンク管理プロトコル(LMP)態様を実装する際のモバイルデバイス12を示すブロック図である。図2Bは、本開示で説明する技法のマルチメディア交換プロトコル態様を実装する際のモバイルデバイス12を示すブロック図である。
図2Aの例に示すように、モバイルデバイス12は、本開示で説明する技法を実装する制御ユニット50を含む。制御ユニット50は、記憶デバイス(たとえば、ディスクドライブ、またはオプティカルドライブ)、またはメモリ(たとえば、フラッシュメモリ、ランダムアクセスメモリすなわちRAM)、またはプログラマブルプロセッサに本開示で説明した技法を行わせる(たとえば、コンピュータプログラムもしくは他の実行ファイルの形態の)命令を記憶する任意の他のタイプの揮発性もしくは不揮発性メモリなど、コンピュータ読み取り可能な記憶媒体(図2Aに図示せず)に記憶された、ソフトウェアまたはコンピュータプログラムを定義するために使用されるソフトウェア命令などのソフトウェア命令を実行する1つまたは複数のプロセッサ(同じく図2Aに図示せず)を含むことができる。代替的に、制御ユニット50は、本開示で説明する技法を行うための、1つまたは複数の集積回路、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数の特定用途向け特殊プロセッサ(ASSP)、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)、あるいは専用ハードウェアの上記の例の任意の組合せなど、専用ハードウェアを含むことができる。
特に、制御ユニット50は、上記で説明したように、LMPモジュール44とMEPモジュール46とを含むMMS34を実装する。MMS34は、ユーザが、上記で説明したように、それとともにブリッジを形成する1つまたは複数の検出されたデバイスを選択するために対話することができる、グラフィカルユーザインターフェース(GUI)またはコマンド行インターフェース(CLI)など、ユーザインターフェースを提示するユーザインターフェース(UI)モジュール52をさらに含むことができる。図2Aには示されていないが、モバイルデバイス12は、ユーザインターフェースモジュール52が上述のユーザインターフェースを提示するために対話するためのディスプレイを含むことができる。
モデム40は、複数の異なるタイプのワイヤレスモデム40A〜40N(「ワイヤレスモデム40」または「モデム40」)を含む。モデム40の各々は、それぞれ、無線周波数フロントエンド(RFFE)ユニット54A〜54N(「RFFEユニット54」)のうちの1つと、ベースバンドプロセッサ56A〜56N(「ベースバンドプロセッサ56」)のうちの1つと、Media Access Control(MAC)ユニット58A〜58N(「MACユニット58」)のうちの1つと、トランスポートユニット60A〜60N(「トランスポートユニット60」)のうちの1つとを含む。RFFEユニット54の各々は、ワイヤレス無線周波数(RF)信号の送信と受信の両方を可能にするトランシーバを含むことができる。一般に、RFFEユニット54の各々は、整合回路、帯域フィルタ、低雑音増幅器(LNA)およびミキサなど、RF信号を受信し、送信するように、アンテナ(図2Aに図示せず)とインターフェースするための様々な構成要素を含む。RFFEユニット54は、受信したRF信号を復調して、変調された搬送波から元の情報搬送信号を抽出することができる。
ベースバンドプロセッサ56はそれぞれ、無線通信を行い、制御するための専用プロセッサまたは他の実行ユニットを含むことができる。ベースバンドプロセッサ56は、概して、情報搬送信号中に埋め込まれたチャネルコードに基づいて、受信した情報搬送信号を復号することができる。特に、ベースバンドプロセッサ56は、この信号中に埋め込まれた外コード(outer codes)と呼ばれるチャネルコードに基づいて、受信した情報搬送信号を復号することができる。ベースバンドプロセッサ56はまた、RFFEユニット54の各々にこの信号を送信するより前に、これらの外コードを情報搬送信号中に埋め込むかまたは符号化することができる。MACユニット58は、チャネルコーディングの内コード(inner codes)を符号化および復号するモジュールまたは他のユニットを含むことができる。トランスポートユニット60は、ユニバーサルデータグラムプロトコル(UDP)および伝送制御プロトコル(TCP)などの、1つまたは複数のトランスポートプロトコル、および/または上述のRTPなどアプリケーションレイヤプロトコルを実装するモジュールまたは他のユニットを含むことができる。
チャネルコードは、一般に、上記で説明した外コードと内コードとを含み、モデム40は、情報搬送信号の正確な配信を保証するためにチャネルコードを実装することができる。これらのコードは、前方誤り訂正(FEC)などの誤り訂正を行うために使用できる。したがって、ベースバンドプロセッサ56およびMACユニット58が情報搬送信号を復号および符号化するとき、これらのプロセッサ56は、概して誤り訂正を、および様々な態様では、特にFECを行うことができる。
これらのコードが情報搬送信号中に埋め込まれるときの周波数は、所与のワイヤレス通信チャネルについて判断された信号対雑音比(SNR)および/またはビット誤り率(BER)に基づいて判断できる。SNRは、信号電力に対する、信号を損なう雑音パワーの比を指す。BERは、指定された時間間隔中に受信されたビットまたは他の情報単位の総数に対する、間違って受信されたビットまたは他の情報単位の数の比を指す。一般に、SNRまたはBERが高いほど、情報搬送信号内でこれらのコードをより頻繁に符号化する必要があり、(埋め込まれるコードの増加により、設定時間間隔にわたって送信される情報搬送信号が少なくなるので)チャネル帯域幅が減少し得る。一般に、SNRまたはBERが低いほど、情報搬送信号内でこれらのコードを頻繁に符号化する必要が少なくなり、(埋め込まれるコードの減少により、設定時間間隔にわたって送信される情報搬送信号が多くなるので)チャネル帯域幅を増加させることができる。したがって、誤り訂正は、一般に、チャネル帯域幅を犠牲にして行われる。
本開示で説明する技法によれば、LMPモジュール44は、ソースデバイス14から宛先デバイス16へのマルチメディアコンテンツの通信を、最適化はしないとしても、可能にするように、下位レイヤブリッジ36Aとして図2Aに示すマルチメディアブリッジ36の下位レイヤを構成する。すなわち、LMPモジュール44は、受信したマルチメディアが対応するアプリケーションが与えられれば、適切なレベルの誤り訂正を行うように、ブリッジを確立するために使用されるモデム40を構成することができる。
たとえば、マルチメディアコンテンツは、ワイヤレス通信チャネル13上のマルチメディアコンテンツの正確なリアルタイム配信を保証するために、チャネルコードで符号化できる。LMPモジュール44は、モデム40のうちの1つ(たとえば、モデム40N)とインターフェースしてワイヤレス通信チャネル15を確立した後に、このモデム40Nとインターフェースして、ワイヤレス通信チャネル15に関連する特性のセットを定義する宛先チャネルデータ62を判断することができる。LMPモジュール44はBERとFEC強度とを判断することができ、その両方は、宛先チャネル15に関連する例示的な特性である。これらの特性に基づいて、LMPモジュール44は、概して、モデム40Nを構成することができ、より詳細には、チャネル15上の正確なリアルタイム配信を保証するように、モデム40Nのベースバンドプロセッサ56NとMACユニット58Nとを構成することができる。
ベースバンドプロセッサ56NとMACユニット58Nとを構成するために、LMPモジュール44は、宛先チャネルデータ62に基づいてブリッジ構成パラメータ64A(「bridge config parameters 64A」)を判断することができる。これらのブリッジ構成パラメータ64Aは、MACユニット58Nおよびベースバンドプロセッサ56Nがトランスポートユニット60Nから受信したマルチメディアコンテンツまたはデータ内のチャネルコードを符号化する周波数を定義することができる。ブリッジ構成パラメータ64Aはまた、許容できる誤り率をもつ所与のレベルのチャネル帯域幅を保証するオプションまたはパラメータを行うかまたは場合によっては識別するFECのタイプを定義することができる。マルチメディアコンテンツのいくつかの適用例または使用法は他よりも多くの誤りを許容することができるので、誤り率は「許容できる」とすることができる。言い換えれば、他の適用例は、ラグを低減するために厳しい誤り制御を要求し得るが、いくつかの適用例は誤り、および誤りによって生じたラグを許容することができる。いずれの場合も、LMPモジュール44は、マルチメディアコンテンツが符号化された特定の適用例に適するように、リアルタイム宛先チャネルデータ62に基づいてブリッジ構成パラメータ64Aを動的に選択することができる。上記の場合には、マルチメディアコンテンツの正確なリアルタイムの、またはストリーミング適用を保証するために、LMPモジュール44は、最良帯域幅対誤り率比を与えるパラメータ64Aを選択することができる。
LMPモジュール44はまた、ワイヤレス通信チャネル13を確立するモデム40のうちの1つ、たとえば、モデム40Aとインターフェースして、ワイヤレス通信チャネル13に関連する特性の別のセットを定義するソースチャネルデータ66を判断することができる。ソースチャネルデータ66は、宛先チャネルデータ62に関して説明する特性と実質的に同じではないとしても、同様の特性を含むことができる。LMPモジュール44は、宛先チャネルデータ62に関して上記で説明したものと同様の方法で、ソースチャネルデータ66に基づいてブリッジ構成パラメータ64Aを判断することができる。LMPモジュール44は、ソースチャネルデータ66から判断されたこれらのブリッジ構成パラメータ64Aを使用して、モデム40Aのベースバンドプロセッサ56AとMACユニット58Aとを構成することができる。LMPモジュール44は、ワイヤレス通信チャネル13を介して送信された対応するワイヤレスRF信号からのマルチメディアコンテンツの復元を、最適化はしないとしても、可能にするように、このようにしてモデム40Aを構成することができる。たとえば、LMPは、一例では、ベースバンドプロセッサ56AとMACユニット58Aの両方によって行われるFECを最適化するように、モデム40Aを構成することができる。
したがって、LMPモジュール44は、ワイヤレス通信チャネル13および15を介したマルチメディアコンテンツの受信および送信を、上述の方法で最適化はしないとしても、可能にするように、モデム40のうちの複数のモデム、たとえば、モデム40Aおよび40Nにわたるように下位レイヤブリッジ36Aを動的に構成することができる。この最適化は、ストリーミングアプリケーションなどマルチメディアコンテンツが配信されている特定のアプリケーションに適するように、ベースバンドプロセッサ56A、56NとMACユニット58A、58NがFECを適合させるように、ブリッジ構成パラメータ64Aを選択することを含むことができる。複数のモデム40Aおよび40Nに関して説明したが、本技法のLMP態様は、マルチメディアコンテンツの単一のモデムによる受信および送信を、最適化はしないとしても、可能にするように単一のモデムに対して実装できる。
図2Bの例を参照すると、モバイルデバイス12の制御ユニット50は、リソースマネージャモジュール70と、後処理ユニット72A(「post-proc unit 72A」)と、前処理ユニット72B(「pre-proc unit 72B」)と、エディタユニット74と、共有記憶ユニット76とをさらに含む。リソースマネージャモジュール70は、モバイルデバイス12内の、様々なリソースの利用および他の特性を監視するハードウェアおよび/またはソフトウェアモジュール、たとえば、プロセッサ、メモリ、記憶デバイス、レジスタなどを表すことができる。「処理ユニット72」と総称されることがある、後処理ユニット72Aと前処理ユニット72Bとは、代替アプリケーションおよび/またはデバイス用のマルチメディアコンテンツを定義する基礎をなすデータを再フォーマッティングすることができる1つまたは複数の処理ユニットを表すことができる。単一の処理ユニットが、後処理ユニット72Aと前処理ユニット72Bの両方を実装することができる。エディタユニット74は、異なるアプリケーションおよび/またはデバイス用のマルチメディアコンテンツを準備するためにマルチメディアコンテンツからコンテンツを追加および/または削除するハードウェアおよび/またはソフトウェアモジュールを表すことができる。共有記憶ユニット76は、メモリまたは記憶デバイスへのおよびそこからのデータの同時または並列書込みおよび読取りを可能にし、それによって、共有記憶ユニット76内に記憶されたデータの「共有」を可能にするメモリモジュールまたは記憶デバイスを表すことができる。
ビデオコーデック38は、説明のために複数のビデオコーデック38A〜38Nとして図2Bの例に示されている。ビデオコーデック38は、それぞれ、異なるタイプまたは形態のビデオコーデックを実装することができる。上述のように、本技法は、画像コーデック、オーディオコーデック、複合ビデオおよびオーディオコーデック、ならびにそれらの任意の組合せを含む、他の種類のコーデックに対して実装できる。したがって、本技法は、図2Bの例に限定されるべきではない。
図2Aの例に関して上記で説明したように、トランスポートユニット60は、トランスポートおよび/またはアプリケーションレイヤプロトコルを実装することができる。トランスポートユニット60は、基礎をなすMACユニット58から受信した複数の別個のデータユニットまたはパケットから、受信したマルチメディアコンテンツを再構成するために、これらのプロトコルのうちの1つまたは複数を実装することができる。トランスポートユニット60はまた、ビデオコーデック38から受信したマルチメディアコンテンツを1つまたは複数の別個のデータユニットまたはパケットにセグメント化するために、これらのプロトコルのうちの1つまたは複数を実装することができる。しばしば、トランスポートユニット60は、いくつかの通信媒体にわたるマルチメディアコンテンツの送信を可能にするために、コンテンツを別個のデータユニットにセグメント化する。トランスポートユニット60はまた、マルチメディアコンテンツのリアルタイムストリーミングなど、いくつかのマルチメディアアプリケーションを可能にするために、コンテンツを別個のデータユニットにセグメント化することができる。
いずれの場合も、トランスポートユニット60は、マルチメディアコンテンツを別個の部分にセグメント化し、その別個の部分からのマルチメディアコンテンツの再構成を可能にするように、別個の部分にヘッダを付加することができる。ヘッダ内にラッピングされたとき、マルチメディアコンテンツの別個の部分はペイロードまたはペイロードデータと呼ばれることがある。マルチメディアコンテンツを再構成するために、トランスポートユニット60は、各別個のデータユニットのヘッダをパースし、ペイロードデータを抽出し、パースされたヘッダに記憶されたヘッダ情報に基づいて、マルチメディアコンテンツを再構成する。トランスポートユニット60は、再構成されたマルチメディアコンテンツを制御ユニット50に送信することができる。このマルチメディアコンテンツは、フォーマットされたマルチメディアコンテンツ78A(「formatted MM content 78A」)として、図2Bに示されている。マルチメディアコンテンツ78Aは第1のファイルフォーマットに従ってフォーマットされるので、マルチメディアコンテンツ78Aは「フォーマットされた」になる。
本開示で説明する技法によれば、MEPモジュール46は、概して、ソースアプリケーション18によって実装された第1のフォーマットと、宛先アプリケーション32によって実装された第2のフォーマットとの間の上位レイヤマルチメディアブリッジ36Bを与えるように制御ユニット50を構成することができる。上位レイヤマルチメディアブリッジ36Bを構成するために、MEPモジュール46は、ブリッジ構成パラメータ64B(「bridge config parameters 64B」)を判断するために、データの様々なセットを最初に収集する。
一態様では、MEPモジュール46は、このマルチメディアコンテンツ78Aがフォーマットされたフォーマットを識別し、フォーマットされたマルチメディアコンテンツ78Aをこのフォーマットをサポートするビデオコーデック38のうちの1つ、たとえば、ビデオコーデック38Aに向けるために、フォーマットされたマルチメディアコンテンツ78Aを分析することができる。ビデオコーデック38Aは、マルチメディアコンテンツの部分に関連するヘッダを識別するために、符号化マルチメディアコーデック38Aを分析することができる。たとえば、マルチメディアコンテンツは、フレーム、スライス、マクロブロックおよび/またはブロックを識別するためにマルチメディアコンテンツ内にヘッダを挿入することができるH.264/MPEG-4 AVC規格に従って符号化できる。これらのタイプの符号化ヘッダの1つまたは複数は、コーデックタイプまたはバージョン、解像度、フレーム毎秒(FPS)、ビットレート、いくつかのコーディングレイヤ、符号化フレームタイプ配信(たとえば、Iフレーム対Pフレーム比、Iフレーム対Bフレーム比、および/またはPフレーム対Bフレーム比)、ピクチャグループ(GOP)長および/または構造、ディスプレイパラメータあるいはマルチメディアアプリケーションに関係するパラメータを記憶することができる。MEPモジュール46は、ビデオコーデック38Aとインターフェースしてこれらのパラメータを判断することができ、その後、ビデオコーデック38Aは、符号化マルチメディアコーデック38Aの1つまたは複数のヘッダから抽出されたこれらのパラメータを、ヘッダデータ80として、MEPモジュール46に送信する。
別の態様では、LMPモジュール44は、チャネルデータ82として、ソースチャネルデータ62と宛先チャネルデータ66とをMEPモジュール46に転送することができる。別の態様では、LMPモジュール44は、チャネルデータ82を転送することに加えて、ソースデバイス14と宛先デバイス16との選択を転送することができる。同じく、上記で説明したように、UIモジュール52は、様々なモデム40内のそれらのデバイスを掲示するユーザインターフェースを提示することができ、ユーザはこのユーザインターフェースと対話して、ソースデバイス14と宛先デバイス16とを選択することができる。UIモジュール52は、これらの選択を受信し、上述の方法で下位レイヤブリッジ36Aを確立することができるLMPモジュール44にその選択を転送する。次いで、LMPモジュール44は、チャネルデータ82を、ならびにソースデバイス14と宛先デバイス16との選択を、MEPモジュール46に転送する。次いで、MEPモジュール46は、これらの選択に基づいて、選択されたデバイス14、16に対応するプロファイル48のうちの1つまたは複数を識別し、これらのソースプロファイルおよび宛先プロファイルに基づいてデバイスデータを識別する。
さらに別の態様では、MEPモジュール46は、リソースマネージャモジュール70とインターフェースして、リソースデータ84を判断することができる。リソースデータ84は、バッテリ電力残量、残りの動作時間、制御ユニット利用、メモリ利用、記憶デバイス利用、現在の総電力消費量、またはモバイルデバイス12のリソースに関係する他のメトリックもしくは特性など、モバイルデバイス12のリソースに関係する利用および他の特性を識別することができる。
いずれの場合も、MEPモジュール46はデータ80、82および84の様々なセットを受信し、同様に、プロファイル48のうちの1つまたは複数からデバイスデータを取り出すことができる。データのこれらのセットを収集するかまたは場合によっては判断した後、MEPモジュール46は、データのこれらのセットのうちの1つまたは複数に基づいてブリッジ構成パラメータ64Bを判断することができる。たとえば、リソースデータ84が現在リソース利用が高いことを示すとき、MEPモジュール46は、リソースデータ84に基づいてブリッジ構成パラメータ64Bを選択して、制御ユニット50内のリソース消費を最適化することができる。
説明するために、MEPモジュール46は、リソースマネージャモジュール70と協調するかまたは場合によっては通信して、マルチメディアコンテンツを変換する最適なクロック周波数を示すリソースデータ84を判断することができる。このクロック周波数は、そのソースビデオコーデック38Aおよび宛先ビデオコーデック38Nが、リアルタイム動作のためのターゲットレイテンシを達成しおよび/または電力を最小限に抑えるように動作する(たとえば、ソースコーデックおよび宛先コーデックを高速に実行し、次いで、停止し、それによってオン/オフデューティサイクルを管理する)クロック周波数を示すことができる。
別の例として、MEPモジュール46は、リソースマネージャモジュール70と協調するかまたは場合によっては通信して、マルチメディア処理システム中の各ハードウェアコアを電力低減を達成するように駆動することができるコア電圧を判断することができる。この形態の適応電圧更新は、「動的電圧スケーリング」と呼ばれる。MEPモジュール46は、これらの要素、たとえば、ソースおよび宛先ビデオコーデックを実装する1つまたは複数のコアの各々が電力供給される電圧を変更するようにリソースマネージャモジュール70に命令することができる。クロック周波数とコア電圧の両方は、MMS34、より詳細には、MEPモジュール46からリソースマネージャモジュール70への入力に基づいて動的に適応できる。マルチメディアブリッジ36を直接構成するとして上記で説明したが、MMS34はまた、リソースマネージャモジュール70に転送されるブリッジ構成パラメータ64を指定することによってマルチメディアブリッジ36を間接的に構成することができ、次いで、リソースマネージャモジュール70は、マルチメディアブリッジ36を更新する。
MEPモジュール46は、たとえば、マルチメディアコンテンツが対応するアプリケーションがリアルタイムストリーミングアプリケーションであることを示し得るヘッダデータ80と、ブリッジ構成パラメータ64Bのこの選択を平衡させることができる。次いで、MEPモジュール46は、リアルタイムストリーミングサポートのベースラインレベルを与えるが、復号および符号化オーバーヘッドを低減するために品質を犠牲にし、それによって、同時に、上位レイヤブリッジ36Bが消費するリソースの量を制限または低減するブリッジ構成パラメータ46Bを指定する。
MEPモジュール46はまた、宛先デバイス16によってサポートされるフォーマットを判断するために、宛先デバイス16用のプロファイル48にアクセスすることができる。次いで、MEPモジュール46は、上記で判断された目標、たとえば、リアルタイムトランスポートを与える目標を満たすようにこれらのファイルフォーマットのうちの1つを選択し、第1のフォーマットから、MEPモジュール46によって上記のリアルタイムおよびリソース効率的目標を満たすように選択されたこの第2のフォーマットへの、フォーマットされたMMコンテンツ78Aの変換を構成するために、ブリッジ構成パラメータ64Bを指定する。
上位レイヤブリッジ36Bが、雑音の多いチャネルなど、いくつかのチャネル特性に適応するのに十分な耐性をもつMMコンテンツを再符号化するように、ブリッジ構成パラメータ64Bを指定するときに、MEPモジュール46はさらにチャネルデータ82を利用し得る。MEPモジュール46は、一例として、マルチメディアコンテンツの従属的に符号化されたセクションのサイズを制限するいくつかの符号化パラメータを指定することによって、チャネルデータ82によって示される雑音の多いチャネルを解決するブリッジ構成パラメータ64Bを判断することができる。従属的に符号化されたセクションの一部分を失うことでその部分の復号を妨げることができるので、より小さいサイズにより、雑音の多いチャネル上での送信が可能になる。ただし、セクションは目的を持って小さいサイズに設定されるので、この部分の損失は、復号されたマルチメディアコンテンツの閲覧に対する無視できる影響を意味し得る。
説明のために少数の例のみを上記で説明しているが、MEPモジュール46が、多種多様な目的を満たすようにブリッジ構成パラメータ64Bを指定するように、本技法を実装することができる。MEPモジュール46は、電力利用または消費を最適化し、特定のデバイスまたはプロセッサ機能に適し、リアルタイム転送または他のマルチメディア適用例を適応させ、ソースアプリケーションから宛先アプリケーションへのシームレスな、たとえば、その結果ユーザ対話がほとんど必要とされないマルチメディアデータまたはコンテンツの遷移を行うように、ブリッジ構成パラメータ64Bを指定することができる。
さらに説明するために、MEP48はまた、メモリに関して電力消費量をさらに最適化するようにブリッジ構成パラメータ64Bを選択することができる。これらのメモリ最適化は、オンチップメモリと、共有記憶デバイス76によって表されるオフチップメモリとの間の差に依拠することができる。キャッシュなど、オンチップメモリは、通常、頻繁に更新またはリフレッシュされる必要がある動的メモリであり、各リフレッシュは電力を消費するので、電力のかなりの量を消費し得る。オフチップメモリは、そのリフレッシュがないことまたは低リフレッシュレートのいずれかにより、それほど多くの電力を消費しない。
MEP48は、参照ピクチャがマクロブロックごとまたはマクロブロックのグループごとにオンチップキャッシュに記憶された外部メモリから決定的なデータ量が移動するように、利用可能なキャッシュについての動き推定を最適化するように、ブリッジ構成パラメータ64Bを選択することができる。次いで、MEP48は、キャッシュの使用を低減し、それによって、電力消費量を低減するようにブリッジ構成パラメータ48Bを選択する。MEP48はまた、(動き推定のためになど)処理のためにデータが取り出されるたびにより少ないページ数が開かれるメモリバンクにピクチャバッファ中のフレームデータが記憶されるように、ブリッジ構成パラメータ64Bを選択することができる。
別の例として、MEP48はまた、電力消費の主要な発生源であるメモリバス帯域幅利用を制限することによってメモリ最適化を行うように、ブリッジ構成パラメータ64Bを選択することができる。一般に、データは、メモリバスを介して処理要素(たとえば、CPU、ハードウェアエンコーダ、デコーダ、ディスプレイプロセッサ、DSPなど)間を移動する。MEP48は、処理要素間で通信されるパケットのサイズ(たとえば、バーストサイズ)および周波数(たとえば、バーストの数)が最適化されるように、ブリッジ構成パラメータ64Bを選択することができる。たとえば、MEP48は、電力消費を低減するために、これらのバスパラメータのための最適な値を判断することができる。次いで、MEP48は、各探索領域に対応するデータの量が、このデータが移動するメモリバスに関連する最適なバスパラメータと整合されるように、ソースおよび宛先コーデック内の動き推定を構成するようにブリッジ構成パラメータ64Bを選択することができる。MEP48は、リソースマネージャモジュール70からモバイルデバイス12のバスごとのバス特性を判断することができる。
さらに別の例として、MEP48は、ソースコーデックによって復号されたビデオユニットまたはマクロブロックが固定の方法で宛先コーデック中のキャッシュに向けられるようにブリッジ構成パラメータ64Bを選択することによって、全体的なメモリ最適化を行うことができる。言い換えれば、MEP48は、宛先コーデックによって行われる後続の符号化と復号を同期させる時間制約付き方法で、ソースコーデックがマルチメディアコンテンツを復号するように、ブリッジ構成パラメータ64Bを選択することができる。この点で、マルチメディアブリッジ36は、ソースコーデックを宛先コーデックに時間結合することによってトランスコーディングパイプラインを実装するように構成できる。
MEP48はまた、任意の変換プロセス用にこのパイプラインを構成することができ、トランスコーディングパイプラインに限定されない。この点で、MEP48は、任意の数のハードウェアコア、ファームウェア(たとえば、DSP)、および/またはコンピュータ処理ユニット(CPU)を含むプロセッサパイプラインを構成するようにブリッジ構成パラメータ46Bを選択することができる。MEP48は、様々な要素間の様々なインターフェースおよび/または入力/出力動作を定義するようにブリッジ構成パラメータ46Bを選択することができ、ここで、インターフェースおよび/または入力/出力動作は、データ駆動、レジスタ駆動あるいは割込み駆動とすることができる。MEP48は、適用例および所与の変換の他の要件に基づいてどのインターフェースを選択すべきか判断することができる。
いずれの場合も、ブリッジ構成パラメータ64Bを指定した後に、MEPモジュール46は、1つまたは複数のアプリケーションプログラミングインターフェース(API)を使用して、ビデオコーデック38A、ビデオコーデック38N、ポストプロセッサユニット72およびエディタユニット74とインターフェースすることによって、上位レイヤブリッジ36Bを構成することができる。すなわち、これらの様々なコーデックおよびユニットの各々は、MEPモジュール46がこれらのコーデックおよびユニットとインターフェースすることができるそれぞれのAPIを与えることができる。次いで、MEPモジュール46は、上位レイヤブリッジ36Bを構成するために、ブリッジ構成パラメータ64Bをこれらのコーデックおよびユニットにロードする。
このようにして構成されると、上位レイヤブリッジ36Bは、フォーマットされたマルチメディアコンテンツ78Aを受信することに並行して、第1のフォーマットから第2のフォーマットにフォーマットされたマルチメディアコンテンツ78Aを変換することができる。図2Bの例では、第1のフォーマットに対応するフォーマットされたマルチメディアコンテンツ78Aを第2のフォーマットに対応するフォーマットされたマルチメディアコンテンツ78Bにトランスコードすることを必要とする高度に複雑な変換を行うように構成された上位レイヤブリッジ36Bが示されており、ただし、第1のフォーマットと第2のフォーマットとは、異なるビデオコーデックを使用して符号化される。次いで、トランスコーディングの後に、コンテンツの再フォーマッティングと、マルチメディアコンテンツ自体の編集とが続く。このタイプの変換は、デバイスプロファイル48のうちの対応する1つに定義され得る既知の制限を有する特定のデバイス上でマルチメディアコンテンツを閲覧することを可能にする。
このトランスコーディング動作を行うために、上位レイヤブリッジ36Bのビデオコーデック38Aは、モデム40のうちの1つからフォーマットされたマルチメディアコンテンツ78Aを受信し、フォーマットされたマルチメディアコンテンツ78Aを復号することができる。MEP46は、フォーマットされたマルチメディアコンテンツ78Aを符号化するために使用されるコーデックを示すヘッダデータ80に基づいてビデオコーデック38Aのうちの1つを選択するように、上位レイヤブリッジ36Bを構成することができる。いずれの場合も、ビデオコーデック38Aは、この復号されたビデオコンテンツを後処理ユニット72Aに渡すことができ、後処理ユニット72Aは、代替アプリケーションおよびデバイス用に復号されたマルチメディアコンテンツを再フォーマッティングすることができる。
一例として、マルチメディアコンテンツは、最初は、インターネットを介したリアルタイム送信用に符号化され、ここで、コンテンツはパーソナルコンピュータ上の比較的小さいウィンドウで一般に閲覧できる。ただし、宛先デバイス16は、コンピュータではなくワイヤレステレビジョンディスプレイを含むことができ、MEPモジュール46は、後処理ユニット72Aが、より大きいスクリーン上での再生明暸度を改善するために復号されたマルチメディアコンテンツをサイズ変更し、場合によってはそのコンテンツに対してグラフィック演算を行うように、ブリッジ構成パラメータ64Bを指定することができる。この点で、後処理ユニット72Aは、たとえば、より大きいディスプレイスクリーン用にマルチメディアフレームをより大きいサイズフォーマットにサイズ変更することによって、復号されたマルチメディアコンテンツを再フォーマッティングするかまたは場合によっては修正することができる。次いで、後処理ユニット72Aは、修正されたマルチメディアコンテンツをエディタユニット74に転送する。
エディタユニット74は、他のアプリケーションからのコンテンツをマージすることによって、修正されたマルチメディアコンテンツをさらに修正または編集することができる。一般に、2つ以上のソースアプリケーションが同時に、変換するためのマルチメディアコンテンツを与え、その後1つまたは複数の宛先デバイスに転送しているときに、エディタユニット74が利用される。エディタユニット74は、1つまたは複数の宛先デバイスがこの別々のコンテンツを同時に提示することができるように、別々のコンテンツを単一のマルチメディアコンテンツにマージすることができる。次いで、エディタユニット74は、この編集されたマルチメディアコンテンツを共有記憶ユニット76に記憶する。共有記憶ユニット76は、上位レイヤブリッジ36Bなど、所与の上位レイヤブリッジ内のすべての構成要素、たとえば、エディタユニット74、ポストプロセッサユニット72およびビデオコーデック38によって「共有」できる。共有記憶ユニット76を採用することによって、第1のフォーマットから第2のフォーマットへのマルチメディアコンテンツのリアルタイム変換をモバイルデバイス12が行うことを、可能にはしないとしても、改善することができる、より効率的な電力消費およびより速い書込みおよび読取り時間を含む、いくつかの恩恵を達成することができる。
次いで、プリプロセッサユニット72Bは、共有記憶ユニット76からこの編集されたマルチメディアコンテンツを取り出し、同じく、表示を可能にするか、または特定のアプリケーションおよび/または宛先デバイスに適するように編集されたマルチメディアコンテンツを適応させるために、この編集されたコンテンツに対して前処理を行うことができる。プリプロセッサユニット72Bは、このコンテンツをビデオコーデック38Nに転送し、ビデオコーデック38Nはマルチメディアコンテンツを再符号化して、フォーマットされたマルチメディアコンテンツ78Bを生成する。ビデオコーデック38Nは、フォーマットされたマルチメディアコンテンツ78Bをモデム40のうちの同じモデムまたは別のモデムに転送し、そのモデムは、宛先ワイヤレス通信チャネル15を介してフォーマットされたマルチメディアコンテンツ78Bを宛先デバイス16に送信することに進む。
この高度に複雑な変換の形態に関して上記で説明したが、MEPモジュール46は他のタイプのより複雑でない変換の形態を構成することができる。たとえば、MEPモジュール46は、部分的に、または完全にフォーマットされたマルチメディアコンテンツ78Aを再カプセル化することによって、フォーマットされたマルチメディアコンテンツ78Aを変換する上位レイヤブリッジ36Bを構成するために、ブリッジ構成パラメータ64Bを指定することができる。コンテンツ78Aを再カプセル化することは、コンテンツ78Aのフォーマットを別段に変更することなしにマルチメディアコンテンツ78Aの部分に付加されるヘッダを更新することのみを含むことができる。この例では、MEP40は、この再カプセル化を行うようにビデオコーデック38のうちの単一の1つを構成することができる。
別の例として、MEPモジュール46は、フォーマットされたマルチメディアコンテンツ78Aをトランスレーティングすることによって、フォーマットされたマルチメディアコンテンツ78Aを変換する上位レイヤブリッジ36Bを構成するために、ブリッジ構成パラメータ64Bを指定することができる。コンテンツ78Aをトランスレーティングすることは、ビデオコーデック38のうちの単一の1つのみが関与することができ、ここで、ビデオコーデック38のうちのこの1つは、別様にコンテンツ78Aのフォーマットを編集することなく、ビデオコンテンツ78Aをフレーム落ちまたは再量子化することによってコンテンツ78Aをトランスレーティングする。
さらに別の例では、MEPモジュール46は、フォーマットされたマルチメディアコンテンツ78Aをトランスコードすることによって、フォーマットされたマルチメディアコンテンツ78Aを変換する上位レイヤブリッジ36Bを構成するように、ブリッジ構成パラメータ64Bを指定することができる。コンテンツ78Aをトランスコードすることは、ビデオコーデック38のうちの少なくとも2つが関与することができ、ここで、これらの2つのビデオコーデックのうちの1つは、1つのコーディング技法/フォーマット(たとえば、MPEG2)に従って符号化されたコンテンツ78Aを復号し、これらの2つのビデオコーデックのうちの他の1つは、異なるコーディング技法/フォーマット(たとえば、H.264)に従って復号されたコンテンツを再符号化する。このトランスコーディングは、上記で説明したように、たとえば、異なるフォーマットサイズについてマルチメディアコンテンツをスケーリングすることをさらに含むことができる。
これらの様々な変換の形態の各々は、異なるレベルのリソースを消費し、いくつかの恩恵を与えることができる。再カプセル化は、本開示で説明する変換の(モバイルデバイス12に関して)最も電力効率的な変換とすることができるが、再カプセル化は、いくつかのアプリケーションおよび/またはデバイスについて極めて高いエクスペリエンス品質(QoE)を与えることができない。再カプセル化と比較すると、トランスレーティングはQoEを改善することができるが、やはり、より多くの電力および他のリソースを消費し得る。トランスコーディングは、トランスレーティングによって得られたQoEをさらに改善することができるが、トランスレーティングによって消費されるリソースよりもさらに一層多くのリソースを消費する。図2Bに関して上記で説明したように、追加の後処理および前処理、ならびに場合によってはコンテンツ編集を用いたトランスコーディングは、本明細書で説明される変換に対して最良のQoEを与えることができるが、リソース利用をさらに増加させ得る。したがって、MEPモジュール46は、データ80、82および84の上記のセット、ならびにプロファイル48から判断されたデータが与えられれば、好適な変換を行うように、ブリッジ構成パラメータ64Bを選択および指定することができる。
図3は、本開示で説明する技法による下位レイヤブリッジを構成するためにマルチメディア管理システム(MMS)を実装するデバイスの例示的な動作を示すフローチャートである。本技法のこの態様を説明するために、図2Aに示すモバイルデバイス12に関してこの態様を説明する。この特定のデバイス12に対して説明するが、本技法は2つ以上のデバイスとのワイヤレス通信が可能な任意のデバイスによって実装できる。
最初に、モバイルデバイス12の制御ユニット50、より詳細には、制御ユニット50内のMMS34は、UIモジュール52を採用して、モバイルデバイス12のユーザにユーザインターフェースを提示する(86)。ユーザインターフェースは、ユーザが図1のソースデバイス14など、ソースデバイス/アプリケーションと、宛先デバイス16など、宛先デバイス/アプリケーションとの間に下位レイヤブリッジを確立することを望むかどうかを判断するようにユーザにプロンプトを出すことができる。ユーザがブリッジなどを確立することを望むことを示す入力を入力すると仮定して、UIモジュール52は、この応答をMMS34のLMPモジュール44に転送することができる。次いで、LMPモジュール44は、モデム40とインターフェースして、モデム40の各々によってサポートされるワイヤレス通信の形態をサポートするデバイスを判断する。事実上、LMPモジュール44は、ワイヤレスモデム40の範囲内のデバイスを発見することができる。
特に、これらのデバイスの一部は、他のさらなるリモートデバイスが存在する、インターネットなどのより大きいネットワークへのアクセスポイントを含むことができる。しばしば、これらのアクセスポイントデバイスを発見することによって、モバイルデバイス12は、ワイヤレスモデム40の直接の範囲外に存在するデバイスからのコンテンツにアクセスする、および/またはそれらのデバイスにコンテンツを配信することができる。たとえば、モデム40のうちの1つは、インターネットなどの公衆ネットワークへのワイヤードまたはワイヤレス接続を与えるワイヤレスアクセスポイント(WAP)を発見することができる。LMP40は、WAPを介してインターネットにアクセスすることによって、ビデオサーバなどの追加のデバイスを発見することができる。したがって、本技法は、ワイヤレスモデム40の範囲内のデバイスに限定されるべきではなく、ワイヤレスモデム40のうちの1つまたは複数の範囲内の1つまたは複数のデバイスを介してアクセスできる任意のデバイスを含むことができる。
いずれの場合も、これらのデバイスを発見すると、LMPモジュール44は、同じまたは別のユーザインターフェースを介してデバイスのリストを提示することができるUIモジュール52に、デバイスのリストを戻す。次いで、ユーザは、ソースデバイス、たとえば、マルチメディアコンテンツのプロバイダまたはソースとして、リストからデバイスのうちの1つと、宛先デバイス、たとえば、選択されたソースデバイスによって与えられたマルチメディアコンテンツのためのターゲットまたは宛先として、リストのデバイスのうちの別の1つとを選択する。UIモジュール52は、提示されたユーザインターフェースを介してソースデバイスおよび宛先デバイスのこれらの選択を受信し、これらの選択をLMPモジュール44に転送する(88)。次いで、LMPモジュール44は、ソースデバイスおよび宛先デバイスと通信するためのモデム40のうちの1つまたは複数を選択し、上述の方法で、選択されたソースデバイス、たとえば、ソースデバイス14とソースワイヤレス通信チャネル13を確立する(89)。
ソース通信チャネル13を介して、ワイヤレスモデム40のうちの1つは、ソースアプリケーション18からマルチメディアコンテンツを表すRF信号を受信する(90)。図2Aの例では、ワイヤレスモデム40Aは、マルチメディアコンテンツを表すRF信号を受信し、RFFEユニット54Aは、RF信号からマルチメディアコンテンツを再構成し、上記で説明したように、マルチメディアコンテンツ中に埋め込まれたチャネル/内コードを復号するベースバンドプロセッサ56Aに、この再構成されたマルチメディアコンテンツを渡す。次いで、ベースバンドプロセッサ56Aは、この部分的に復号されたマルチメディアコンテンツをMACユニット58Aに転送し、MACユニット58Aは、マルチメディアコンテンツ中に埋め込まれた外コードを復号し、部分的に復号されたマルチメディアコンテンツからマルチメディアコンテンツを再構成する。
LMPモジュール44は、上記で説明したように、ソースチャネルデータ66を判断するために、このワイヤレスモデム40A、より詳細には、ベースバンドプロセッサ56AおよびMACユニット58Aと通信することができる。いくつかの態様では、LMPモジュール44は、上記で説明したように、ソースチャネルデータ66によって定義された特定のチャネル特性に照らしてマルチメディアコンテンツの受信を最適化するように、ワイヤレスモデム40Aを適応させるために、1つまたは複数のブリッジ構成パラメータ64Aを判断することができる。
一方、LMPモジュール44は、上記で説明したように、宛先通信チャネル15を確立したワイヤレスモデム40のうちの1つ、たとえば、図2A中のモデム40Nと通信して、宛先通信チャネル15を確立する(92)。LMPモジュール44は、上記で説明したように、このモデム40Nとさらに通信して、宛先チャネルデータ62を判断する(94)。この宛先チャネルデータ62に少なくとも基づいて、LMPモジュール44は、同じく上記で説明したように、宛先チャネルデータ62によって定義された特定のチャネル特性に照らしてマルチメディアコンテンツの配信を解決するかまたは場合によっては最適化するように、ワイヤレスモデム40Nを適応させるために、ブリッジ構成パラメータ64Aのうちの1つまたは複数を判断する(95)。LMPモジュール44は、いくつかのチャネル特性を解決するように、モデム40Nまたはモデム40Aと40Nの両方を最適化するようにブリッジ構成パラメータ64Aを選択するだけでなく、効率的な電力消費を促進するかまたは場合によってはモバイルデバイス12の効率的な動作を可能にすることができる。
いずれの場合も、LMPモジュール44は、モデム40Nまたはモデム40Aと40Nの両方とインターフェースして、上記で説明したように、ブリッジ構成パラメータ64Aを使用してこれらの1つまたは複数のモデムを構成する(96)。このようにして、モデム40のうちの1つまたは複数、特にモデム40Nを構成した後、この構成されたモデム40Nは、宛先通信チャネル15を介して、受信したマルチメディアコンテンツを宛先デバイス16に転送する(98)。本明細書で使用する「転送する」という用語は、厳密に、このコンテンツが受信されたフォーマットで、受信したマルチメディアコンテンツを転送すると解釈されるべきではなく、このコンテンツが受信されたフォーマットとは異なるフォーマットで、受信したマルチメディアコンテンツを転送することを含み得る。この変換は、上述のマルチメディアブリッジの高レベル部分で行われ得る。したがって、受信したマルチメディアコンテンツを「転送する」ことは、受信したマルチメディアコンテンツの変換されたバージョンを転送すること、ならびにこのコンテンツが受信されたフォーマットと同じフォーマットで受信したマルチメディアコンテンツを転送することを含むことができる。
MMS 34が下位レイヤブリッジ36Aを構成するLMPモジュール44のみを含む場合には、LMPモジュール44は、スイッチまたは他のハードウェア機構を通して復号されたマルチメディアコンテンツを直接モデム40Nに通信するように、モデム44Aを構成することができる。ある場合には、制御ユニット50は、ハードウェア中に、またはハードウェアとソフトウェアとの組合せとして、スイッチング機構を与えることができる。これらの場合には、図1に示すマルチメディアブリッジ36は、下位レイヤブリッジ36Aを含み、上位レイヤブリッジ36Bを含まない。
代替的に、図1、図2A、および図2Bに示すように、MMS34が、LMPモジュール44とMEPモジュール46とを含む場合には、LMPモジュール44は、さらなる変換のためにチャネル復号されたマルチメディアコンテンツを制御ユニット50に転送するようにモデム40Nを構成することができる。MEPモジュール46は、上記で説明したように、このさらなる変換を行うように上位レイヤブリッジ36Bを構成することができる。これらの場合には、マルチメディアブリッジ36は、下位レイヤブリッジ36Aと、上位レイヤブリッジ36Bの両方を含むことができる。しかも、MMS34はLMPモジュール44を含み、MEPモジュール46を含まないように、MMS34はMEPモジュール46を含み、LMPモジュール44を含まない場合がある。この場合には、以下で説明するように、マルチメディアブリッジ36は、上位レイヤブリッジ36Bをのみ含むことができる。
図4は、本開示で説明する技法による、上位レイヤブリッジを構成するためにマルチメディア管理システム(MMS)を実装するデバイスの例示的な動作を示すフローチャートである。本技法のこの態様を説明するために、図2Bに示すモバイルデバイス12に関してこの態様を説明する。この特定のデバイス12に対して説明するが、本技法は2つ以上のデバイスとのワイヤレス通信が可能な任意のデバイスによって実装できる。
最初に、モバイルデバイス12の制御ユニット50、より詳細には、制御ユニット50内のMMS34は、UIモジュール52を採用して、モバイルデバイス12のユーザにユーザインターフェースを提示する(100)。ユーザインターフェースは、ユーザが図1のソースアプリケーション16など、ソースアプリケーションと、宛先アプリケーション32など、宛先アプリケーションとの間に上位レイヤブリッジを確立することを望むかどうかを判断するようにユーザにプロンプトを出すことができる。ユーザがブリッジなどを確立することを望むことをシグナリングする入力を入力すると仮定して、UIモジュール52は、この応答をMMS34のMEPモジュール46に転送することができる(図2Bに図示せず)。次いで、LMPモジュール44は、モデム40とインターフェースして、モデム40の各々によってサポートされるワイヤレス通信の形態をサポートするデバイスを判断する。事実上、LMPモジュール44は、ワイヤレスモデム40の範囲内のデバイスを発見することができる。
同じく、これらのデバイスの一部は、他のさらなるリモートデバイスが存在する、インターネットなどのより大きいネットワークへのアクセスポイントを含むことができる。しばしば、これらのアクセスポイントデバイスを発見することによって、モバイルデバイス12は、ワイヤレスモデム40の直接の範囲外に存在するデバイスからのコンテンツにアクセスする、および/またはそれらのデバイスにコンテンツを配信することができる。たとえば、モデム40のうちの1つは、インターネットなどの公衆ネットワークへのワイヤードまたはワイヤレス接続を与えるワイヤレスアクセスポイント(WAP)を発見することができる。MEPモジュール46は、WAPを介してインターネットにアクセスすることによって、ビデオサーバなどの追加のデバイスを発見することができる。したがって、本技法は、ワイヤレスモデム40の範囲内のデバイスに限定されるべきではなく、ワイヤレスモデム40のうちの1つまたは複数の範囲内の1つまたは複数のデバイスを介してアクセスできる任意のデバイスを含むことができる。
いずれの場合も、これらのデバイスを発見すると、MEPモジュール46は、同じまたは別のユーザインターフェースを介してデバイスのリストを提示することができるUIモジュール52に、デバイスのリストを戻す。次いで、ユーザは、ソースデバイス、たとえば、マルチメディアコンテンツのプロバイダまたはソースとして、リストのデバイスのうちの1つと、宛先デバイス、たとえば、選択されたソースデバイスによって与えられたマルチメディアコンテンツのためのターゲットまたは宛先として、リストのデバイスのうちの別の1つとを選択する。UIモジュール52は、提示されたユーザインターフェースを介してソースデバイスおよび宛先デバイスのこれらの選択を受信し、これらの選択をMEPモジュール46に転送する(102)。次いで、MEPモジュール46は、ソースデバイスおよび宛先デバイスと通信するためのモデム40のうちの1つまたは複数を選択し、モデム40のうちのこれらの1つまたは複数に、上述の方法で、選択されたソースデバイス、たとえば、ソースデバイス14とのソース通信チャネル13と、選択された宛先デバイス、たとえば、宛先デバイス16との宛先通信チャネル15とを確立させる(104)。
これらのチャネル13、15を確立した後またはその間に、MEPモジュール46は、フォーマットされたマルチメディアコンテンツ78Aの宛先デバイス16への配信に各々関係する、データ82、84、86、ならびにプロファイル48のうちの1つまたは複数からのデータの1つまたは複数のセットを判断する(106)。すなわち、ヘッダデータ80は、たとえば、マルチメディアコンテンツの意図されたアプリケーションを示し、それによって、この受信したマルチメディアコンテンツの配信に影響を及ぼす、ソース通信チャネル13を介して受信されたマルチメディアコンテンツに関係するデータを含むことができる。チャネルデータ82は、宛先通信チャネル15の特性について説明することができ、それによって、宛先チャネル15を介したこのコンテンツの配信に影響を及ぼすかまたは関係する。リソースデータ84はモバイルデバイス12内のリソース利用を記述するデータを含むことができ、それによって、受信したコンテンツを配信するモバイルデバイス12の能力に影響を及ぼすかまたは関係する。プロファイル48のうちの1つまたは複数から抽出されるデータはまた、これが宛先デバイス16によって許容できるフォーマットを示すことができるという点で、配信に影響を及ぼすかまたは関係し得る。
データ82、84、86のこれらの1つまたは複数のセットおよびプロファイル48のうちの1つまたは複数から抽出されたデータセットに基づいて、MEPモジュール46は、上記で説明したように、宛先デバイス16へのマルチメディアコンテンツの配信を最適化するように、ブリッジ構成パラメータ64Bを判断する(108)。MEPモジュール46は、次に、上記で説明したように、ビデオコーデック38、ポストプロセッサユニット72A、プリプロセッサユニット72B、およびエディタユニット74のうちの1つまたは複数とインターフェースして、ブリッジ構成パラメータ64Bを使用して上位レイヤブリッジ36Bを構成する(110)。しばしば、MEPモジュール46は、これらの構成要素の各々によって提示されるAPIによって、これらの構成要素とインターフェースする。
ソース通信チャネル13を介して、ソース通信チャネル13を確立したワイヤレスモデム40のうちの1つ、たとえば、ソースモデム40Aは、上記で説明したように、第1のフォーマットに従って符号化されたソースアプリケーション16からフォーマットされたマルチメディアコンテンツを受信し、このコンテンツを、フォーマットされたマルチメディアコンテンツ78Aとして制御ユニット50に転送する(112)。特に、データのセットの一部、たとえば、ヘッダデータ80は、この受信したマルチメディアコンテンツ78Aから抽出でき、したがって、図4に示すステップは、本開示に記載した技法の各例について連続するステップとして解釈されるべきではない。むしろ、これらのステップは、本開示で説明する様々な態様に一致する任意の考えられる順序で行われ得る。したがって、本技法は、図4Aに関して説明する例に限定されるべきではない。
制御ユニット50内に構成された上位レイヤブリッジ36Bは、上記で説明したように、フォーマットされたマルチメディアコンテンツ78Aを受信し、フォーマットされたマルチメディアコンテンツ78Aを第1のフォーマットから第2の異なるフォーマットに変換する(114)。変換されると、上位レイヤブリッジ36Bは、この変換されたマルチメディアコンテンツを、フォーマットされたマルチメディアコンテンツ78Bとしてモデム40Nに出力し、次いで、モデム40Nは、この変換されたマルチメディアコンテンツを、宛先通信チャネル15を介して宛先デバイス16に転送する(116)。このようにして、本技法は、第1のフォーマットをサポートしないが、第2のフォーマットをサポートする宛先デバイスまたはアプリケーションへの、ソースデバイスまたはアプリケーションから受信した第1のフォーマットに従って符号化されたマルチメディアコンテンツのリアルタイムおよび/または電力効率的転送を可能にする。
一度マルチメディアブリッジ36を構成し、次いで、第1のフォーマットから第2のフォーマットへのマルチメディアコンテンツの変換を行うとして説明したが、MMS34は、新しいブリッジ構成パラメータ64と古いブリッジ構成パラメータ64の両方を断続的に定義および再定義することができる。この点で、MMS34は、特定のコンテキスト、たとえば、アプリケーション、チャネル、コンテンツ符号化、デバイスリソース利用、およびリアルタイムブリッジを与えることに関連する他の変数に適するように、マルチメディアブリッジ36を動的に最適化するように、リアルタイムで変換を監視し、ブリッジ構成パラメータを適応的に調整することができる。したがって、本技法は、本開示で与えられる例に限定されるべきではない。
図5は、本開示で説明する技法を実装するモバイルデバイス118の例示的な実装形態を示すブロック図である。図5の例に示すように、モバイルデバイス118は、モデムプロセッサ120とメディアプロセッサ122とを含む。モデムプロセッサ120は、モデム124とモデムコントローラ126とをまとめて実装する1つまたは複数のプロセッサまたはコプロセッサを含むことができる。モデム124は複数のモデム124A〜124Nを含むことができ、一方、モデムコントローラ126は複数のトランスポートユニット128A〜128N(「トランスポートユニット128」)を含むことができる。モデム124のうちの1つは、図5に示す方法でトランスポートユニット128のそれぞれの1つに結合できる。組み合わされると、これらの結合されたモデム124とトランスポートユニット128の各々は、モデム40として図1、図2Aおよび図2Bに示されたものを含むことができる。したがって、モデムプロセッサ120は、複数のモデムを実装する1つまたは複数のプロセッサを表すことができる。
メディアプロセッサ122は、MMS34と実質的に同様とすることができるMMS130を実装することができる。MMS34と同様に、MMS130は、LMPモジュール132(「LMP132」)とMEPモジュール134(「MEP134」)とを含む。MEP134は、プロファイル48と同様の複数のプロファイル136A〜136N(「プロファイル136」)をさらに含む。メディアプロセッサ122はまた、マルチメディアコントローラ138(「MMコントローラ138」)と、アプリケーション処理ユニット140と、マルチメディアハードウェア142(「MMハードウェア142」)とを含むことができる。
マルチメディアコントローラ138は、1つまたは複数のインターフェース、たとえば、APIをMMハードウェア142に与えることができる。マルチメディアコントローラ138は、たとえば、音声エンコーダまたは「ボコーダ」ユニット144、オーディオ信号ユニット146、ビデオ信号ユニット148、ならびに様々なマルチメディアハードウェア142にインターフェースを与える追加のユニットを含むことができる。マルチメディアコントローラ138は、通常、下位レイヤマルチメディアハードウェア142にマルチメディアコンテンツの高レベル処理およびインターフェースを与える1つまたは複数のデジタル信号プロセッサ(DSP)を含む。アプリケーション処理ユニット140は、図2Aのポスト/プリプロセッサユニット72Aなど、ポスト/プリプロセッサと、エディタユニット74など、エディタユニットとを実装するかまたは場合によっては表す、1つまたは複数の処理ユニットを含むことができる。マルチメディアハードウェア142は、多くのマルチメディア動作を行うように設計された専用ハードウェアを含むことができる。マルチメディアハードウェア142は、たとえば、オーディオエンコーダハードウェア150(「オーディオエンコーダ150」)、ビデオコーデックハードウェア152(「ビデオコーデック152」)、画像コーデックハードウェア154(「画像コーデック154」)、グラフィックス処理ユニット156(「GPU156」)およびディスプレイユニットハードウェア158(「ディスプレイユニット158」)、ならびにオーディオ、ビデオ、画像、ボイス、もしくは他の形態またはタイプのマルチメディアコンテンツを符号化または復号するための他のタイプまたは形態のマルチメディアハードウェアを含むことができる。
本開示で説明する技法の様々な態様によれば、LMP132はモデムプロセッサ120、より詳細には、モデムプロセッサ120のモデムコントローラ126と通信することができる。LMP132は、図2Aのソースチャネルデータ66および宛先チャネルデータ62など、ソースチャネルおよび宛先チャネルに関係するデータを収集するために、モデムコントローラ126と通信するためのAPIまたは他のインターフェース(「図5に図示せず」)を含むことができる。LMP132は、このインターフェースを利用して、次いで、宛先チャネルデータに少なくとも基づいて、モデムコントローラ126を介してモデム124のうちの1つまたは複数を構成することができる。モデム124のうちのこれらの1つまたは複数をそのように構成することによって、LMP132は、上記で説明したように、下位レイヤブリッジ36Aなど、下位レイヤブリッジを構成することができる。
MEP134は、プロファイル136から抽出されたデータのセットを含む、データの上述のセットを判断し、図2Bのブリッジ構成パラメータ36Bなど、ブリッジ構成パラメータを判断することができる。プロファイル136および前述のプロファイル48は、デバイスおよび/または特定のマルチメディアアプリケーションまたはエコシステムの特性を掲示するプロファイルを含むことができる。一例として、プロファイル136Aは、ワイヤレスディスプレイすなわちWDの規格化された、および/または、ある場合には、製造業者固有の特性を定義するWDプロファイルを含むことができる。例示的な製造業者固有の特性は、解像度スケーラパラメータ、および色域、コントラスト比(contrast ration)、カラー階調、および2次元機能対3次元機能(または立体的機能)など、ディスプレイパラメータを含むことができる。プロファイル136Bは、広く使用されているソーシャルネットワークの特性を定義するソーシャルネットワークプロファイルを含むことができる。プロファイル136Cは、規格化された、および/または、ある場合には、メディアキャプチャデバイス(たとえば、カムコーダ)の製造業者固有の特性を定義するメディアキャプチャデバイスプロファイルを含むことができる。プロファイル136Dは、規格化された、および/または、ある場合には、パーソナルメディアプレーヤすなわちPMPデバイス(たとえば、MP3プレーヤ)の製造業者固有の特性を定義するPMPプロファイルを含むことができる。プロファイル136Nは、規格化された、および/または、ある場合には、ゲーム機(たとえば、ハンドヘルドゲーム機など)の製造業者固有の特性を定義するゲームプロファイルを含むことができる。
次いで、MEP134は、上記で説明したデータの1つまたは複数のセットに基づいて、LMP132によって判断されたブリッジ構成パラメータに加えて、ブリッジ構成パラメータを判断する。MEP134は、マルチメディアコントローラ138のうちの1つまたは複数を呼び出して、判断したブリッジ構成パラメータを用いてMMハードウェア142を構成することができる。MEP134はまた、ブリッジ構成パラメータのうちの1つまたは複数をMMコントローラ138にロードし、さらに、アプリケーション処理ユニット140とインターフェースして、上述の方法でブリッジ構成パラメータを使用してアプリケーション処理ユニット140および/または基礎をなすマルチメディアハードウェア142を構成することができる。このようにして、MEP134は、モバイルデバイス118のメディアプロセッサ122など、制御ユニット内に上位レイヤブリッジを構成することができる。
図6は、MMS162が第1の例示的なフォーマットのメディアを第2の例示的なフォーマットに変換ために本開示で説明する技法を実装するシステム160の概念図を示すブロック図である。図6の例では、発信側またはソースデバイス164と宛先またはターゲットデバイス166とは、機能によってOSIモデルの3つのレイヤにセグメント化される。これらの3つのレイヤは、上から下に、アプリケーションレイヤ、トランスポートレイヤおよびデータリンクレイヤである。発信デバイス164内のアプリケーションレイヤで実行するのは、発信側アプリケーション168である。発信側アプリケーション168はマルチメディアを記憶するマルチメディアアプリケーションを実装することができ、これは発信デバイス164の上に標示された「記憶されたメディア」によって図6に示されている。ターゲットアプリケーション170内のアプリケーションレイヤで実行するのは、ターゲットアプリケーション170である。ターゲットアプリケーションはマルチメディアコンテンツをストリーミングするマルチメディアアプリケーションを実装することができ、これはターゲットデバイス166の上に標示された「ストリーミングメディア」によって図6に示されている。
それぞれ、発信側デバイス164およびターゲットデバイス166内の発信側アプリケーション168およびターゲットアプリケーション170の下には、それぞれ、ビデオおよびオーディオデコーダおよびエンコーダがある。これらのデコーダおよびエンコーダは、発信側デバイス164およびターゲットデバイス166の各々が専用化される記憶およびストリーミングアプリケーションを可能にするために、それぞれ、発信側アプリケーション168およびターゲットアプリケーション170からの情報を処理することができる。この点で、発信側デバイス164およびターゲットデバイス166は、それぞれ専用または固定の機能または動作のセットを各々与える、専用マルチメディアデバイスを表すことができる。発信側デバイス164は、たとえば、マルチメディアを記憶するカムコーダまたはデジタルメディアプレーヤを含むことができる。ターゲットデバイス166は、衛星ラジオデバイス、ワイヤレステレビジョン、およびボイスオーバIP(VoIP)デバイスまたは電話など、マルチメディアをストリーミングするための専用デバイスを含むことができる。
トランスポートレイヤに関して、発信側デバイス164は上述のMP4ファイルフォーマットをサポートし、一方、ターゲットデバイス166はRTP、UDPおよびIPトランスポートをサポートする。この例では、発信側デバイス164は、ターゲットデバイス166によってサポートされるものと重複しないトランスポートの異なるセットをサポートする。したがって、発信側デバイス164を、ターゲットデバイス166とは異なるマルチメディアエコシステムの一部であると考えることができる。トランスポートレイヤの下には、データリンクレイヤがある。このデータリンクレイヤに関してモデムのタイプが明示的に指定されていないが、発信側デバイス164およびターゲットデバイス166の各々は、同様に、異なるタイプのモデムをサポートするかまたは場合によっては含むことができ、これらのデバイス164、166が属する2つの異種マルチメディアエコシステムをさらに分化する。
上記で説明したように、MMS162は、異種マルチメディアエコシステム中に存在するこれらの2つのデバイス間のマルチメディアブリッジを与えることができる。MMS162は、図6に関して示した例では、異なるトランスポートレイヤフォーマットをブリッジする上位レイヤブリッジを構築するために上述の動作を行うMEP172を含むことができる。MMS162はまた、図6に示した例では、異なるデータリンクレイヤプロトコルをブリッジする下位レイヤブリッジを構築するために上述の動作を行うLMP174を含むことができる。したがって、OSIモデルのレイヤに関して、上位レイヤブリッジは下位レイヤブリッジよりも「高い」。OSIモデルのトランスポートおよびデータリンクレイヤに関して説明したが、本技法は、OSIモデルの任意の2つ以上のレイヤに関して実装できる。
図7は、OSIモデルのプロトコルレイヤに従って構成された例示的なMMSの機能を示すブロック図である。図7の例の左側に示すように、OSIモデルの7つのレイヤを、レイヤ176A〜176G(「レイヤ176」)と掲示している。図7の例の右側に、MMSを実装するモバイルデバイスの機能を、レイヤ176の各々に分割して示している。
レイヤ176Aは、7つのうちの最も低いレイヤを含み、物理レイヤ176Aと呼ばれる。一般に、物理レイヤ176Aに属する動作は、通信媒体とインターフェースすることに備えた、変調とチャネルコーディングとを含む。レイヤ176Bは、レイヤ176Aのすぐ上にあり、データリンクレイヤ176Bと呼ばれる。データリンクレイヤ176Bに準拠するために、媒体アクセスを処理し、FECを実装するための動作が一般に行われる。レイヤ176Cは、OSIモデルではレイヤ176Bのすぐ上にあり、ネットワークレイヤ176Cと呼ばれる。ネットワークレイヤ176Cに準拠するために、ルーティング、転送、アドレス指定、インターネットワーキング、誤り処理、輻輳制御、およびパケット順序付けを可能にするかまたは場合によっては容易にするための動作が一般に行われる。レイヤ176Cの上には、トランスポートレイヤ176Dと呼ばれることがある、レイヤ176Dがある。
トランスポートレイヤ176D内に含まれる動作は、(たとえば、レイヤ176Dの上の動作に透過的な)透過的なデータ転送とエンドツーエンド誤り復元およびフロー制御とを含む。レイヤ176Dの上には、セッションレイヤ176Eと呼ばれることがある、レイヤ176Eがある。セッションレイヤ176Eは、接続協調を可能にするかまたは場合によっては容易にするための動作を含むことができる。レイヤ176FはOSIモデルではレイヤ176Eの上にあり、レイヤ176Fは、プレゼンテーションレイヤまたは構文レイヤ176Fと呼ばれることがある。構文レイヤ176Fは、暗号化、同期ならびに符号化および復号を可能にするかまたは場合によっては容易にするための動作を含むことができる。レイヤ176Fの上には、アプリケーションレイヤ176Gと呼ばれることがある、最も高いレイヤ、レイヤ176Gがある。アプリケーションレイヤ176G内にアプリケーションが常駐することができる。
これらのレイヤ176に関して、様々な動作または機能が、これらのレイヤの右側に示されている。これらの機能は、図1〜図2のモバイルデバイス12および/または図5のモバイルデバイス118など、本開示で説明する技法に従ってMMSを実装するモバイルデバイスによって行われる機能に対応することができる。説明するために、物理レイヤ176A内に、様々なブロードキャストチューナー、ワイヤレスアクセスネットワーク(WAN)インターフェース、ワイヤレスローカルエリアネットワーク(WLAN)インターフェース、ワイヤレスパーソナルエリアネットワーク(WPAN)インターフェース、および周辺インターフェースによって一般に行われる動作が属し得る。データリンクレイヤ176B内に、ブロードキャスト規格、WANインターフェース、WLANインターフェースおよびWPANインターフェースによって行われる機能が属し得る。ネットワークレイヤ176C内に、インターネットプロトコル(IP)、MPEG-2 Transport Stream(TS)の部分、およびリアルタイム転送プロトコル(RTP)、制御プロトコル(RTCP)およびリアルタイムストリーミングプロトコル(RTSP)を含むストリーミングプロトコルによって行われる機能が属し得る。レイヤ176D内に、RTP/UDP、MPEG-2 TSの部分、および(非MPEG-2トランスポートプロトコルである)Forward Link Only(FLO)トランスポートプロトコルを含むブロードキャストトランスポートプロトコルによって行われる機能が属し得る。セッションレイヤ176Eと構文レイヤ176Fの両方の内の機能について、MMSによって実装される機能に関して以下で説明する。アプリケーションレイヤ176G内に、プラットフォームソフトウェア、ウェブサービスおよびインターネットツール、コンテンツ管理、ユーザインターフェースおよびアプリケーションプログラマインターフェース(API)など、複数のアプリケーションによって行われる機能が属する。
特に、プロトコルブリッジおよび協働QoS機能178A(「MMS機能178A」)として図7に示した破線ボックスによってMMS機能が表されている。また、追加のMMS機能が、同じく破線ボックスによって示されているMMS機能178B〜178Dとして図7に示されている。MMS機能178Aは、レイヤ176B〜176Dおよび176Fにわたり、本開示で説明する技法によるMEPとLMPの両方を実装するMMSによって行われる機能を表すことができる。前述したように、本技法は、その結果MMSがMEPおよびLMPのうちのただ1つを実装し得るこの例に限定されるべきではない。
MMS機能178Aは、データリンクレイヤ176Bに属する機能(WPAN機能など)、ネットワークレイヤ176Cに属する機能(上位レイヤプロトコルの承認制御および帯域幅予約機能など)、トランスポートレイヤ176Dに属する機能(トランスポート支援マルチレイヤエラー管理機能など)、および構文レイヤ176Fに属する機能(マルチメディアコーデックのレート制御/適応、エラー隠蔽、およびデジタル著作権管理(DRM)機能など)を含む。MMS機能178Bは、一般にウェブ/インターネットサーバによって行われる機能を含む。MMS機能178Cは、一般に、暗号化、許可、および認証など、機械対機械の通信を可能にするために必要とされる機能を含むことができる。MMS機能178Dは、デバイス管理に関与する機能を含むことができる。
図6のMMS162などのMMSは、マルチメディアエコシステム間通信を可能にするために協働QoSをもつプロトコルブリッジを与えるために、これらの様々な機能を実装することができる。MMS162は、マルチメディアエコシステム間のマルチメディアコンテンツの配信を最適化するように、上述の方法でレイヤ176にわたる結合したブリッジを与えるために、これらの様々なレイヤ内で動作することができる。この最適化は、上記で説明したように、異種マルチメディアエコシステムのデバイス間のマルチメディアコンテンツの効率的なリアルタイム転送を達成することを対象とする最適化を含むことができる。追加的または代替的に、この最適化は、同じく上記で説明したように、利用可能な電力など、デバイスリソースの効率的な利用として指示される最適化を含むことができる。この電力効率的な最適化は、MMSを実装するモバイルデバイスに関して、特に有益であり得る。
図8は、本開示で説明する技法による、モバイルデバイス182がMMS184を実装する例示的なシステム180を示すブロック図である。MMS184を実装することによって、モバイルデバイス182は、デバイスの第1のセット186A〜186Dのうちの1つまたは複数とデバイスの第2のセット186E〜186Gのうちの1つまたは複数との間のマルチメディアコンテンツの通信を可能にするために、事実上、マルチメディアルータとして働くことができる。MMS184はまた、接続性モジュール188およびセンサモジュール190、ならびにインターネットなどの公衆ネットワーク192との通信を可能にすることができる。
図8の例は、これらのデバイス186A〜186Dが相互接続性モジュール194を介してデバイス186E〜186Gと、接続性モジュール188と、センサモジュール190と、公衆ネットワーク192とに結合することが示されている、システム180の概念図を表す。これは、モバイルデバイス182が相互接続性モジュール194を与えることができる概念表現であり、MMS184は、概念上の相互接続性モジュール194を介して最適化された形態の相互接続性を与えるように本明細書で説明する技法に従って相互接続性モジュール194を構成することができる。
MMS184は、デバイスの第1のセット186A〜186Dのうちの1つまたは複数とデバイスの第2のセット186E〜186Gのうちの1つまたは複数との間の相互接続性を与えることができる。デバイス186A〜186G(「デバイス186」)は、それぞれ、ポータブルデバイス、コンピューティングデバイス、ゲーム機、独立型受信機/デコーダ(IRD)、記憶デバイス、ディスプレイデバイス、および周辺デバイスを含むことができる。記憶デバイス186Eおよび周辺デバイス186Gのうちの1つまたは複数は、ワイヤードインターフェースを通して通例アクセスされるデバイスがこれらのデバイス186E、186Gと対話するためのワイヤレスインターフェースを与えるワイヤレスドッキングモジュールを含むことができる。ディスプレイデバイス186Fはまた、他のデバイスとインターフェースするための、ワイヤードではない、ワイヤレスインターフェースを与えるためのワイヤレスアダプタを含むことができる。
接続性モジュール188は、2つのデバイス間の接続性を与えるモジュールを含むことができ、したがって、相互接続性モジュール194と図8に示されていない別のデバイスとの間の接続性を与えるモジュールを表す。センサモジュール190は、2つの例として、カムコーダおよび/またはマイクロフォンなど、センサを含むモジュールを表すことができる。いずれの場合も、MMS184は、ワイヤードインターフェースまたはワイヤレスインターフェースを通してデバイス186の第1のセットと第2のセットとの各々のうちの任意の1つまたは複数を上述の方法で相互接続する相互接続性モジュール194を与えることができる。
たとえば、MMS184は、相互接続性モジュール194を介してデバイス186、接続性モジュール188およびセンサモジュール190の各々を発見することができる。MMS184は、公衆ネットワーク192を検出し、公衆ネットワーク192内のマルチメディアサーバの、ユニフォームリソースロケータ(URL)またはHTTPアドレスの形態のウェブアドレスまたはインターネットアドレスなどのアドレスについて、モバイルデバイス182のユーザまたは他のオペレータにプロンプトを出すようにさらに構成できる。代替的に、MMS184は、ビデオサーバまたはデータサーバなど、公衆ネットワーク192内の選択されたマルチメディアサーバにアクセスするように事前構成できる。いずれの場合も、モバイルデバイス182は、リストからこれらのデバイスのうちの2つ以上を選択するためにユーザが対話することができるユーザインターフェースを提示することができる。
ユーザがコンピューティングデバイス186Bのうちの1つとディスプレイデバイス186Fのうちの1つとを選択すると仮定すると、MMS184は、これらの2つのデバイス間の上述のマルチメディアブリッジを確立し、特定のアプリケーション、たとえば、リアルタイムストリーミングを可能にし、電力消費量を低減するように、このブリッジを最適化することができる。ユーザは、ブリッジを構成するためにMMS184とさらに対話する必要がないので、MMS184は、この点でブリッジをシームレスに構成することができる。しかしながら、ユーザは、ソースコンテンツを選択するためにモバイルデバイス182と対話し続け、場合によっては、マルチメディアコンテンツを送信し始めるようにコンピューティングデバイス186Bのうちの1つにプロンプトを出すことができる。
ある場合には、マルチメディアコンテンツは、コンピューティングデバイス186Bのうちの選択された1つによって表示される現在のインターフェースを含むことができる。MMS184は、ディスプレイデバイス186Fのうちの選択された1つの上で表示するためにこのインターフェースを効率的に変換するようにマルチメディアブリッジを構成することができる。その上、MMS184は、高精細度テレビジョン(HDTV)などのディスプレイデバイス上でのこのインターフェースの視覚的提示を改善するために、この変換を実行するようにブリッジを構成することができる。
この点で、MMS184は、第1のマルチメディアエコシステム中で生成されたインターフェースの表示を、異なる第2のマルチメディアエコシステムのデバイス上で「最適化」するようにマルチメディアブリッジを構成することができる。たとえば、MMS184は、ソースおよび宛先デバイスおよび/またはアプリケーションのタイプおよび/または特性、ワイヤレスチャネルの特性、およびメディアが意図されるアプリケーションのタイプが与えられれば、最適変換を与えるように上述の方法でブリッジ構成パラメータを選択することができる。この意味で、MMS184はブリッジを「最適化」することができる。MMS184は、現在判断されているチャネル特性が与えられれば、このインターフェース、たとえば、ユーザインターフェースを効率的な方法で転送するようにマルチメディアブリッジを構成することもできる。どちらの態様でも、MMS184は、異なるマルチメディアエコシステムからのデバイス上でのインターフェースの表示を改善し、場合によっては誤りを低減する方法で表示の配信を最適化することによって、楽しみの品質を改善することができる。
その上、MMS184は、モバイルデバイス182が、3つ以上のデバイス間の複雑なブリッジを様々なインタラクティブな形で与えることを可能にすることができる。ユーザは、上記で説明したように、ユーザインターフェースを介してこれらの3つ以上のデバイスを選択することができ、3つ以上のデバイスを選択すると、MMS184は、ユーザインターフェースを介して、ユーザが望むこれらのデバイスの対話を指定するようにユーザにプロンプトを出すことができる。代替的に、または上記のアクティブ選択に関連して、コンテンツのタイプまたは特定のデバイスの他の特性が与えられれば、MMS184は、コンテキストを通して、または間接的に対話を判断することができる。
コンピューティングデバイス186Bのうちの1つがディスプレイデバイス186Fのうちの1つの上で表示するためのインターフェースを与える上記の例を拡張して、ユーザはまた、ポータブルデバイス186Aのうちの1つを選択すると仮定する。ユーザがこの選択を行うと仮定すると、MMS184は、ユーザインターフェースを介して、対話を指定するか、または場合によっては対話のタイプを間接的に判断するようにユーザにプロンプトを出すことができる。
たとえば、選択されたポータブルデバイス186Aのうちの1つがMP3プレーヤを含む場合、MMS184は、MP3プレーヤからのオーディオマルチメディアコンテンツを、コンピューティングデバイス186Bのうちの選択された1つからのインターフェースマルチメディアコンテンツと組み合わせるように、ブリッジを構成することができる。この場合、MMS184は、ソースコンテンツの相違、たとえば、一方がオーディオであり、他方がビデオであることから対話のタイプを認識することがあるので、MMS184は、対話のタイプについてユーザにプロンプトを出さないことがある。MMS184は、これらを1つのストリーム中に一緒に符号化するか、またはこれらを2つ以上のストリームとして別々に送信することができる。別々に符号化するという決定、または1つとして符号化するという決定は、MMS184がプロファイルを維持することができる、選択されたターゲットまたはソースデバイスおよび/またはアプリケーション、たとえば、ディスプレイデバイス186Fのうちの選択された1つに部分的に依存し得る。事実上、MMS184は、インターフェースマルチメディアコンテンツを介してオーディオマルチメディアコンテンツを階層化することができる。
別の例として、ポータブルデバイス186Aのうちの1つが選択され、しかしながら、オーディオのみを再生するMP3プレーヤとは異なり、ビデオとオーディオとを再生することが可能なパーソナルメディアプレーヤを含み、ユーザがディスプレイデバイス186Fのうちの選択された1つにブリッジするビデオマルチメディアコンテンツを選択した場合、MMS184は対話のタイプについてユーザにプロンプトを出すことができる。すなわち、MMS184は、これらのマルチメディアコンテンツの両方を単一のディスプレイデバイス上にどのように表示するかについてユーザにプロンプトを出すことができる。一態様では、MMS184は、ディスプレイデバイス186Fのうちの選択された1つによってサポートされる場合はピクチャインピクチャ(PIP)、従来のコンピュータ上で現在実行しているプログラム間で変更することとほとんど同様に、ユーザが2つの間で交換することを可能にする「二者択一」表示オプション、または、水平分割表示または垂直分割表示、およびオーバーレイ/アンダーレイなど、任意の他の表示オプションなど、表示オプションのリストを与えることができる。
別の例では、ユーザは、ターゲットとしてディスプレイデバイス186Fのうちの2つ以上を選択し、ソースとしてコンピューティングデバイス186Bのうちの単一の1つを選択することができる。次いで、MMS184は、ディスプレイデバイス186Fのうちの2つ以上の選択されたデバイス上にソースマルチメディアコンテンツをどのように表示するかについて、ユーザにプロンプトを出すことができる。MMS184は、ディスプレイデバイス186Fの2つ以上の選択されたデバイス上にソースマルチメディアコンテンツを同時に表示するように、たとえばコンテンツをマルチキャストすることができる。MMS184は、代替的に、1つのディスプレイ上にソースコンテンツの半分を表示し、別のディスプレイ上にソースコンテンツの半分を表示することができる。この場合、MMS184は、ディスプレイデバイス186Fのうちの異なる選択されたデバイス上に表示するように、各半分を最適化することができる。
接続性の様々なタイプおよび形態を示すためにいくつかの例について上記で説明したが、本技法はこれらの例のいずれにも限定されるべきではない。そうではなく、本技法は、モバイルデバイス182などのモバイルデバイスが、1つまたは複数の選択されたソースマルチメディアデバイスおよび/またはアプリケーションから受信されたソースコンテンツを変換するマルチメディアブリッジを与え、この変換されたソースコンテンツを1つまたは複数の選択された宛先またはターゲットマルチメディアデバイスおよび/またはアプリケーションに転送することを可能にすることができる。
その上、モバイルデバイス182は、それ自体がディスプレイデバイスを含むことができ、いくつかの態様では、周辺デバイスとして含むことができる。たとえば、モバイルデバイス182は、ソースコンテンツを受信し、このコンテンツを変換し、ディスプレイデバイス186Fのうちの選択された1つに転送するのと同時に、モバイルデバイス182上に表示するためにこのソースコンテンツを変換することができる。次いで、モバイルデバイス182は、タッチスクリーンまたは他のインターフェースを介してユーザから入力を受信し、ソースデバイス/アプリケーションから受信されたコンテンツを、一例として、カーソルまたは他の位置識別子を用いて両方とも更新することができる。図2Bのモバイルデバイス12に関して、エディタユニット74は、更新されたマルチメディアコンテンツを生成するために、この識別子を導入することができる。次いで、この更新されたマルチメディアコンテンツは、変換でき、次いで、更新されたマルチメディアコンテンツを提示することができる宛先デバイス/アプリケーションに転送できる。これは、モバイルデバイス182などのモバイルデバイスが、ディスプレイデバイス186Fなど、煩雑なインターフェースを有するデバイス上に表示されるコンテンツを、ユーザが対話することができるアクセス可能インターフェースに与えることを可能にすることができる。
さらに、MMS184によって確立されたマルチメディアブリッジは、ユーザによって行われたソースデバイス/アプリケーション選択と通信するために、ソースデバイス/アプリケーションへのバックチャネルまたは他の通信セッションを与えるか、あるいは現在配信されているソースコンテンツを更新、改変、または変更するために、ソースデバイス/アプリケーションとの他の対話性を与えることができる。MMS184は、ユーザがソースコンテンツと対話することができる十分に機能しているインターフェースを与えることができるので、モバイルデバイス182が、煩雑なインターフェースを有するデバイス/アプリケーションのためのインターフェースを与える場合、これは特に有用であり得る。
たとえば、ユーザは、公衆ネットワークおよび「ポート」を介してコンピューティングデバイスにアクセスするか、またはモバイルデバイス182のMMS184を介してこのタイプの限定されたインターフェースディスプレイデバイスにこのインターフェースマルチメディアコンテンツを転送することができる。このインターフェースマルチメディアコンテンツは、通常オペレーティングシステムによって生成されるユーザインターフェースを含むことができる。MMS184は、ディスプレイデバイス186Fのうちの1つなどのディスプレイデバイスを介してこのインターフェースマルチメディアコンテンツを提示するために、上述の方法でマルチメディアブリッジを確立することができる。MMS184は、ユーザがディスプレイを介して提示されたインターフェースマルチメディアコンテンツと対話することができるインターフェースとしてモバイルデバイス182を有効にするために、マルチメディアブリッジモバイルデバイス182内に組み込まれ得る。上記で説明したように、MMS184は、カーソルなどの位置または位置識別子を用いてインターフェースマルチメディアコンテンツを更新するようにブリッジを構成することができる。
ユーザはまた、デスクトップ上のユーザインターフェースマルチメディアコンテンツのアイコンなどのインターフェースの一部分を選択することができ、その後、MMS184はバックチャネル通信を使用してその選択をソースデバイス/アプリケーションに返すことができる。この選択に応答して、コンピューティングデバイスは、ユーザによる選択を反映するために、たとえば、アイコンによって表される選択されたプログラムを実行することに応答してインターフェースマルチメディアコンテンツを更新することによって、この例ではインターフェースマルチメディアコンテンツを含むソースコンテンツを更新することができる。この意味で、MMS184は、マルチメディアコンテンツの変換および送信を可能にし、ならびに、ターゲットデバイス/アプリケーションを介して表示されるときにこのマルチメディアコンテンツと対話するためのインターフェースを与えるように、ブリッジを構成することができる。
ソースデバイスまたはプロバイダデバイス、および宛先デバイスまたはターゲットデバイスに関して上記で説明したが、本技法は、様々な態様において、ソースおよび/または宛先デバイスがそれぞれ、本開示で説明する技法を実装する別のモバイルデバイスまたは他のデバイスを含むように実装できる。言い換えれば、本技法を実装する、たとえばMMSを含む1つまたは複数のデバイスは、各MMSが変換の一部分を実装する方法で、1対1または1対多で互いに連結できる。
たとえば、第1のモバイルデバイス内に含まれる第1のMMSがソースデバイスと通信し、その後第1のMMSは次いで第2のモバイルデバイス内に含まれる第2のMMSと通信する。次いで、この第2のMMSは宛先デバイスと通信する。第1のMMSに関して、第2のモバイルデバイスは宛先デバイスを表すことができ、その結果、真のソースデバイスと第2のモバイルデバイスとの間のマルチメディアブリッジを与えるために、第1のMMSは本技法を実装することができる。第2のMMSに関して、第1のMMSはソースデバイスを表すことができ、その結果、第1のモバイルデバイスと真の宛先デバイスとの間のマルチメディアブリッジを与えるために、第2のMMSは本技法を実装することができる。したがって、ソースデバイスおよび宛先デバイスへの上記の参照は、上記でソースデバイスおよび宛先デバイスであるとして説明したそれらのデバイスだけでなく、本開示で説明する技法を実装する他のデバイスを参照することもできる。
この形態の連結は、様々な利益を可能にすることができる。ある場合には、上記の例を参照すると、第1のMMSと第2のMMSとは、変換を2つのステップに分割し、それによってリソース利用に関する負荷を共有するように連結を形成することができる。その上、これらの2つのMMSのうちの1つがモバイルデバイス内に常駐し、別のMMSが固定デバイス内に常駐する場合、これらのMMSは、固定されたMMSのうちの1つへの変換の電力を消費している部分をオフロードするようにマルチメディアブリッジを構成することができる。
別の場合には、上記の例を再び参照すると、第1のMMSと第2のMMSとは、MMSのうちの単一の1つが単独では実行することができない変換を可能にするように連結を形成することができる。1つのMMSは、たとえば、リアルタイムで最適な変換を行うために十分なリソースを含まないことがある。しかしながら、連結によって、これらの2つのMMSは負荷を分割し、それによって最適な変換を達成することが可能になり得る。別の例として、第1のMMSは特定のフォーマットをサポートすることができないが、第2のMMSはこの特定のフォーマットをサポートすることができる一方で、第2のMMSはソースデバイスにアクセスする範囲にないか、または、ソースデバイスにアクセスすることが可能でないか、あるいはソースデバイスがマルチメディアコンテンツを与えるフォーマットをサポートすることができない。次いで、第1のMMSは、宛先デバイスによって受け付けられるフォーマットにマルチメディアコンテンツを変換するためにマルチメディアブリッジを与えるように、第2のMMSとの連結を形成することができる。この点で、MMSを連結することは、変換およびしばしば最適な変換を行うために有益であり得る。
本明細書でソースデバイスと宛先デバイスとに関して本開示全体にわたって説明したが、本技法は、上記で説明したように、一般に第1のアプリケーションと第2のアプリケーションとに適用することができる。アプリケーションは、ソースデバイスと宛先デバイス、ならびに、ハードウェアまたはハードウェアとソフトウェアとの組合せのいずれかにおいて実装された、ソースコンテンツを与えるかまたはマルチメディアコンテンツを消費する任意の他のアプリケーションを含むことができる。説明のために、ソースコンテンツを与えるアプリケーションはソースアプリケーションと呼ばれ、ソースコンテンツを消費するアプリケーションは宛先アプリケーションと呼ばれる。しかしながら、これらの用語は以下で請求する技法への限定と解釈されるべきではない。
本明細書で説明した技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装できる。モジュール、ユニット、または構成要素として説明する特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装できる。場合によっては、様々な特徴は、集積回路チップまたはチップセットなどの集積回路デバイスとして実装できる。ソフトウェアで実装した場合、本技法は、実行されると、上記で説明した方法の1つまたは複数をプロセッサに実行させる命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現できる。
コンピュータ可読媒体は、パッケージング材料を含むことがある、コンピュータプログラム製品の一部をなすことができる。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などのコンピュータデータ記憶媒体を備えることができる。本技法は、追加または代替として、命令またはデータ構造の形態でコードを搬送または伝達し、コンピュータによってアクセス、読取り、および/または実行できるコンピュータ可読通信媒体によって、少なくとも部分的に実現できる。
コードまたは命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行できる。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明する機能を、専用のソフトウェアモジュールまたはハードウェアモジュールの内部に与えることができる。本開示はまた、本開示で説明した技法の1つまたは複数を実装する回路を含む様々な集積回路デバイスのいずれかを企図する。そのような回路は、単一の集積回路チップ、またはいわゆるチップセット中の複数の相互運用可能な集積回路チップで提供できる。そのような集積回路デバイスは様々な適用例において使用でき、適用例のいくつかは携帯電話ハンドセットなどのワイヤレス通信デバイスでの使用を含む。
本開示の様々な例について説明した。これらおよび他の例は以下の特許請求の範囲の範囲内にある。