(第1の実施の形態)
図1は、本発明の第1の実施の形態における情報処理装置の外観例を示す図である。この情報処理装置は、コンピュータ本体1と、ディスプレイ2と、音声などを出力するスピーカ3と、通話者の音声などを集音するマイク4と、通話者の映像などを撮影するカメラ5と、リモコン10との間で赤外線によって通信を行なう赤外線ポート6と、外部から音声信号や映像信号が入力される外部AV入力端子7とを含む。
リモコン10は、数字キー101と、発信キー102と、切断キー103と、十字キー104と、決定キー105とを含む。
図2は、本発明の第1の実施の形態における情報処理装置のハードウェア構成を示すブロック図である。この情報処理装置は、ディスプレイ2と、スピーカ3と、マイク4と、カメラ5と、赤外線ポート6と、音声外部入力端子7−1と、映像外部入力端子7−2と、音声外部出力端子8−1と、映像外部出力端子8−2と、図示しない外部スピーカを接続するための外部スピーカ端子9と、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、AVセレクタ14と、ネットワークデバイス15と、TV放送波を受信するTVチューナ16と、mpeg4デコーダ17と、mpeg4エンコーダ18と、mpeg2デコーダ19と、mpeg2エンコーダ20とを含む。
情報処理装置全体の制御を行なうためのプログラムはROM12に格納され、CPU11がROM12に格納されたプログラムをRAM13に展開して実行する。また、RAM13は、音声データ、映像データなどを一時的に保持するのにも使用される。
AVセレクタ14は、ディスプレイ2、スピーカ3、マイク4、カメラ5、赤外線ポート6、音声外部入力端子7−1、映像外部入力端子7−2、音声外部出力端子8−1、映像外部出力端子8−2、外部スピーカ端子9、TVチューナ16、mpeg4デコーダ17、mpeg4エンコーダ18、mpeg2デコーダ19、およびmpeg2エンコーダ20に接続され、音声や映像の入出力デバイスの切替えやミキシングを行なう。
ネットワークデバイス15は、インターネットなどのネットワークに接続され、相手の情報処理装置との間で音声データ、映像データなどの送受信を行なう。
図3は、本発明の第1の実施の形態における情報処理装置の機能的構成を示すブロック図である。図3においては、点線で囲まれた部分がハードウェアによって構成され、実線で囲まれた部分がソフトウェアによって構成される。
入力装置21は、図2に示すマイク4、カメラ5、赤外線ポート6、音声外部入力端子7−1、映像外部入力端子7−2、TVチューナ16などに相当する。また、出力装置22は、図2に示すディスプレイ2、スピーカ3、音声外部出力端子8−1、映像外部出力端子8−2、外部スピーカ端子9などに相当する。
エンコーダ24は、mpeg4エンコーダ18およびmpeg2エンコーダ20に相当する。また、デコーダ25は、mpeg4デコーダ17およびmpeg2デコーダ19に相当する。また、通信装置23は、ネットワークデバイス15に相当する。
ソフトウェアによって実現される機能は、GUI(Graphical User Interface)部31と、コミュニケーション管理部32と、入力制御部33と、出力制御部34と、エンコード部35と、デコード部36と、データ送信部37と、シグナリング部38と、データ受信部39と、通信部40とを含む。
GUI部31は、本実施の形態における情報処理装置のグラフィカルユーザインタフェースの機能を実現する。たとえば、GUI部31は、赤外線ポート6を介してリモコン10から入力信号を受け、ディスプレイ2上の表示に応じてアプリケーションの操作などを可能にする。また、コミュニケーション管理部32からの指示に応じて、画面構成を制御することによって、出力制御部34が表示する映像と連携した画面表示を可能にする。
また、GUI部31は、ユーザからリモコン10などによって送信するデータのソースを変更する指示があれば、それをコミュニケーション管理部32に通知する。
コミュニケーション管理部32は、ユーザの操作に基づくGUI部31からの通知や、シグナリング部38からのシグナル受信の情報を管理する。コミュニケーション管理部32は、これらの情報に基づいて入力制御部33を制御して、指定された入力装置21からの音声や映像などのデータをエンコード部35にエンコードさせ、エンコードされたデータをデータ送信部37に送信させる。
また、コミュニケーション管理部32は、データ受信部39によって受信された相手の情報処理装置からのデータをデコード部36にデコードさせる。そして、出力制御部34を制御して、デコード後のデータを適切な出力装置22に出力させる。
また、コミュニケーション管理部32は、GUI部31から接続変更を示す通知を受けると、シグナリング部38にSIPシグナルを送信させる。コミュニケーション管理部32は、シグナリング部38にSIPシグナルを送信させる際に、送信するコミュニケーションデータのソース情報を一緒に通知する。また、シグナリング部38が相手の情報処理装置からコミュニケーションデータのソース情報を受信し、接続変更のネゴシエーションが完了すると、コミュニケーション管理部32は、その接続変更に応じて入力制御部33および出力制御部34を制御して、入力装置21および出力装置22を変更したり、GUI部31を用いて画面構成を変更したりする。
入力制御部33は、コミュニケーション管理部32からの指示に応じて、指定された入力装置21からのデータをエンコード部35に出力する。
エンコード部35は、コミュニケーション管理部32からの指示に応じて、指定されたエンコーダ24を用いてデータをエンコードし、エンコードデータをデータ送信部37に出力する。
データ送信部37は、エンコード部35から受けたエンコードデータをRTPパケット化し、コミュニケーション管理部32によって指定された宛先に送信するよう通信部40に指示する。
通信部40は、データ送信部37から受けたRTPパケットからIPパケットを生成し、通信装置23を介して送信する。また、通信部40は、通信装置23を介して受信したデータパケットをシグナリング部38またはデータ受信部39に出力する。受信したデータパケットをいずれに出力するかは、コミュニケーション管理部32からの指示による。
データ受信部39は、通信部40から受けたデータパケットからデータを抽出し、デコード部36に出力する。
デコード部36は、コミュニケーション管理部32によって指定されたデコーダ25を用いてデータのデコードを行ない、デコードによって得られた信号を出力制御部34に出力する。
出力制御部34は、コミュニケーション管理部32からの指示に応じて、出力装置22を選択し、GUI部31と協働してデコード部36から受けた信号を選択した出力装置22に出力する。
シグナリング部38は、コミュニケーション管理部32からの指示に応じて、相手の情報処理装置に対して通信の開始、変更、終了の要求を行ない、相手の情報処理装置からの要求に対する応答を行なう。また、通信部40によって受信されたSIPシグナルのパケットデータを解釈し、その情報をコミュニケーション管理部32に通知する。
後述するように、シグナリング部38は、コミュニケーション管理部32からの接続変更のSIPシグナルを送信する指示を受けると、SIPシグナルのメッセージボディにa=X−media−source行を挿入してソース情報を付加する。逆に、相手の情報処理装置からSIPシグナルを受信すると、各メディアについて付記されたa=X−media−source行の情報を抽出してコミュニケーション管理部32に通知する。
図4は、本発明の第1の実施の形態における情報処理装置のシグナリングによる送信メディア変更を説明するためのシーケンス図である。まず、端末Aが端末Bに対してINVITEリクエストを送信すると(T1)、端末BはINVITEのメッセージボディに含まれるメディア情報によってTV電話着信であることを認識し、200 OK応答を端末Aに送信する(T2)。これによって、カメラ5によって撮影された映像と、マイク4によって集音された音声との送受信が開始される(通信状態1)。
次に、端末Aが端末Bに対してre−INVITEリクエストを送信すると(T3)、端末Bはre−INVITEのメッセージボディに含まれるメディア情報によってコミュニケーションの変更を認識し、新しいデータに合わせて処理を切替え、200 OK応答を端末Aに送信する(T4)。これによって、端末Aからは、映像外部入力端子7−2などから入力される録画映像(以下、外部入力映像と呼ぶ。)と、マイク4によって集音された音声との送信が開始される(通信状態2)。
次に、端末Aが端末Bに対してre−INVITEリクエストを送信すると(T5)、端末Bはre−INVITEのメッセージボディに含まれるメディア情報によってTV電話着信であることを認識し、200 OK応答を端末Aに送信する(T6)。これによって、TV電話としての送受信が再開される(通信状態3)。
図5は、本発明の第1の実施の形態における情報処理装置の全体的な処理手順を説明するためのフローチャートである。情報処理装置が起動されると、まず、コミュニケーション管理部32は待ち受け状態に遷移し(S11)、GUI部31に対してディスプレイ2に待ち受け画面の表示を指示する(S12)。
次に、コミュニケーション管理部32は、イベントを受信したか否かを判定する(S13)。このイベントには、シグナリング部38からのシグナル情報に関するイベントと、GUI部31からのユーザ操作によるイベントとがある。コミュニケーション管理部32がイベントを受信していなければ(S13,No)、イベントを受信するまで待機する。また、コミュニケーション管理部32がイベントを受信すると(S13,Yes)、そのイベントが要求受信イベントであるか否かを判定する(S14)。
イベントが要求受信イベントであれば(S14,Yes)、後述するような要求受信処理を行ない(S15)、ステップS13に戻って以降の処理を繰返す。この要求受信イベントは、シグナリング部38がSIPシグナルを受信したときに発生する。
イベントが要求受信イベントでなければ(S14,No)、そのイベントが要求送信イベントであるか否かを判定する(S16)。イベントが要求送信イベントであれば(S16,Yes)、後述するような要求送信処理を行ない(S17)、ステップS13に戻って以降の処理を繰返す。この要求送信イベントは、GUI部31がユーザ操作を検出したときに発生する。
イベントが要求送信イベントでなければ(S16,No)、そのイベントが応答受信イベントであるか否かを判定する(S18)。イベントが応答受信イベントであれば(S18,Yes)、後述するような応答受信処理を行ない(S19)、ステップS13に戻って以降の処理を繰返す。この応答受信イベントは、シグナリング部38がSIPシグナルを受信したときに発生する。
イベントが応答受信イベントでなければ(S18,No)、そのイベントが応答送信イベントであるか否かを判定する(S20)。イベントが応答送信イベントであれば(S20,Yes)、後述するような応答送信処理を行ない(S21)、ステップS13に戻って以降の処理を繰返す。この応答送信イベントは、GUI部31がユーザ操作を検出したときに発生する。
イベントが応答送信イベントでなければ(S20,No)、そのイベントが終了イベントであるか否かを判定する(S22)。イベントが終了イベントであれば(S22,Yes)、コミュニケーション管理部32は全体の処理を終了する。この終了イベントは、たとえば、ユーザがリモコン10の電源ボタンを長押ししたことをGUI部31が検出したときに発生する。また、終了イベントでなければ(S22,No)、ステップS13に戻って以降の処理を繰返す。
図6は、本発明の第1の実施の形態における情報処理装置によって管理される状態遷移を説明するための図である。後述するように、要求受信処理には、変更受付中の状態(T16)と、着信接続中の状態(T13)とが含まれる。また、要求送信処理には、変更要求中の状態(T15)と、発信接続中の状態(T12)とが含まれる。また、応答受信処理および応答送信処理には、接続通信中の状態(T14)が含まれる。
図6に示す状態遷移図においては、たとえば、待ち受け状態(T11)から発信接続中状態(T12)または着信接続中状態(T13)に遷移することはあるが、接続通信中状態(T14)、変更要求中状態(T15)および変更受付中状態(T16)に遷移することはないことを示している。
図7は、図5に示す要求受信処理(S15)の処理手順を説明するためのフローチャートである。要求受信イベントは、SIPシグナルのうちリクエストメッセージを受信したときに発生するイベントであるので、リクエストメッセージの処理がこの要求受信処理に相当する。
まず、コミュニケーション管理部32は、状態確認を行なう(S31)。この状態確認とは、受け取ったイベントと現在の状態とを確認するものである。現在の状態ではシーケンス上受け取るはずがないイベントを受け取った場合(S32,No)、シグナリング部38にエラー応答を送信するよう指示する。そして、シグナリング部38は、エラー応答を作成し、通信部40を介して相手の情報処理装置にエラー応答を送信する(S47)。
図8は、コミュニケーション管理部32によって参照される状態確認表の一例を示す図である。図8に示す状態確認表においては、待ち受け状態のときに、接続要求送信、接続要求受信、接続応答送信および接続応答受信のイベントを受け取ることがあるが、その他のイベントを受け取ることがないことを示している。なお、図8に示す各イベントは、図7および図9〜11に示すフローチャートの説明によって明らかになるであろう。
状態確認が済めば(S32,Yes)、コミュニケーション管理部32は、要求受信イベントが変更要求(変更要求受信イベント)であるか否かを判定する(S33)。変更要求受信イベントであれば(S33,Yes)、変更受付中状態に遷移し(S34)、シグナリング部38によって受信されたSIPシグナル中のSDP(Session Description Protocol)で記述されたメッセージボディの変更情報を抽出する(S35)。そして、コミュニケーション管理部32は、変更受付中画面を表示するようGUI部31に指示し(S36)、変更が完了するまで変更要求前のコミュニケーションデータの送信を一旦停止させて(S37)、処理を終了する。
変更要求受信イベントでなければ(S33,No)、コミュニケーション管理部32は、要求受信イベントが接続要求(接続要求受信イベント)であるか否かを判定する(S38)。接続要求受信イベントであれば(S38,Yes)、着信接続中状態に遷移し(S39)、シグナリング部38によって受信されたSIPシグナル中のSDPで記述されたメッセージボディの着信情報を抽出する(S40)。そして、コミュニケーション管理部32は、着信接続中画面を表示するようGUI部31に指示し(S41)、処理を終了する。
接続要求受信イベントでなければ(S38,No)、コミュニケーション管理部32は、要求受信イベントが切断要求(切断要求受信イベント)であるか否かを判定する(S42)。切断要求受信イベントであれば(S42,Yes)、データ送信部37およびデータ受信部39を制御してデータの送受信を終了し(S44)、シグナリング部38に切断要求に対する200 OK応答を送信させる(S44)。そして、コミュニケーション管理部32は、初期画面である待ち受け画面を表示するようGUI部31に指示し(S45)、待ち受け状態に遷移して(S46)、処理を終了する。
図9は、図5に示す要求送信処理(S17)の処理手順を説明するためのフローチャートである。要求送信イベントは、GUI部31がユーザ操作を検出したときに発生するイベントであり、コミュニケーションを開始する場合、変更する場合、および切断する場合の処理に関連する。
まず、コミュニケーション管理部32は、図8に示す状態確認表を参照して状態確認を行なう(S51)。現在の状態ではシーケンス上受け取るはずがないイベントを受け取った場合(S52,No)、そのまま処理を終了する。
状態確認が済めば(S52,Yes)、コミュニケーション管理部32は、要求送信イベントが変更要求(変更要求送信イベント)であるか否かを判定する(S53)。変更要求送信イベントであれば(S53,Yes)、変更要求中状態に遷移し(S54)、GUI部31によって検出された変更に関する情報を抽出する(S55)。そして、コミュニケーション管理部32は、変更要求中画面を表示するようGUI部31に指示し(S56)、シグナリング部38にSIPシグナルのre−INVITEメッセージを相手の情報処理装置に送信させ(S57)、通信を一旦停止させて(S58)、処理を終了する。
変更要求送信イベントでなければ(S53,No)、コミュニケーション管理部32は、要求送信イベントが接続要求(接続要求送信イベント)であるか否かを判定する(S59)。接続要求送信イベントであれば(S59,Yes)、発信接続中状態に遷移し(S60)、GUI部31によって検出された発信に関する情報を抽出する(S61)。そして、コミュニケーション管理部32は、発信接続中画面を表示するようGUI部31に指示し(S62)、シグナリング部38にSIPシグナルのINVITEメッセージを相手の情報処理装置に送信させて(S63)、処理を終了する。
接続要求送信イベントでなければ(S59,No)、コミュニケーション管理部32は、要求送信イベントが切断要求(切断要求送信イベント)であるか否かを判定する(S64)。切断要求送信イベントであれば(S64,Yes)、シグナリング部38にSIPシグナルのBYEメッセージを相手の情報処理装置に送信させ(S65)、データ送信部37およびデータ受信部39を制御してデータの送受信を終了する(S66)。そして、コミュニケーション管理部32は、初期画面である待ち受け画面を表示するようGUI部31に指示し(S67)、待ち受け状態に遷移して(S68)、処理を終了する。
切断要求送信イベントでなければ(S64,No)、そのまま処理を終了する。
図10は、図5に示す応答受信処理(S19)の処理手順を説明するためのフローチャートである。応答受信イベントは、自身が相手の情報処理装置に送信した接続要求(INVITEメッセージ)、変更要求(re−INVITEメッセージ)および切断要求(BYEメッセージ)のいずれかのリクエストに対する応答を受信したときに発生するイベントであり、それに対応する処理がこの応答受信処理に相当する。
まず、コミュニケーション管理部32は、状態確認を行なう(S71)。現在の状態ではシーケンス上受け取るはずがないイベントを受け取った場合(S72,No)、そのまま処理を終了する。
状態確認が済めば(S72,Yes)、コミュニケーション管理部32は、応答受信イベントが変更応答(変更応答受信イベント)であるか否かを判定する(S73)。変更応答受信イベントであれば(S73,Yes)、シグナリング部38によって受信されたSIPシグナルから変更応答情報を抽出する(S74)。そして、変更応答情報によって200 OK応答が確認されれば(S75,Yes)、コミュニケーション管理部32は、GUI部31、入力制御部33および出力制御部34を制御して、変更後の通信に合わせた画面表示を行なう(S76)。そして、変更のネゴシエーション結果に従ったコミュニケーションデータの送受信を開始し(S77)、接続通信中状態に遷移して(S84)、処理を終了する。
また、変更応答情報によって200 OK応答が確認されなければ(S75,No)、変更要求がキャンセルされたとして、変更要求前の画面に戻すようGUI部31に指示し、データ送信部37およびデータ受信部39に変更要求前の通信を再開させ(S78)、接続通信中状態に遷移して(S84)、処理を終了する。
変更応答受信イベントでなければ(S73,No)、コミュニケーション管理部32は、応答受信イベントが発信応答(発信応答受信イベント)であるか否かを判定する(S79)。発信応答受信イベントであれば(S79,Yes)、シグナリング部38によって受信されたSIPシグナルから発信応答情報を抽出する(S80)。そして、発信応答情報によって200 OK応答が確認されれば(S81,Yes)、コミュニケーション管理部32は、GUI部31、入力制御部33および出力制御部34を制御して、接続後の通信に合わせた画面表示を行なう(S82)。そして、接続のネゴシエーション結果に従ったコミュニケーションデータの送受信を開始し(S83)、接続通信中状態に遷移して(S84)、処理を終了する。
また、発信応答情報によって200 OK応答が確認されなければ(S81,No)、接続要求が拒否されたものとして、コミュニケーション管理部32は、初期画面である待ち受け画面を表示するようGUI部31に指示し(S87)、待ち受け中状態に遷移して(S88)、処理を終了する。
発信応答受信イベントでなければ(S79,No)、コミュニケーション管理部32は、応答受信イベントが切断応答(切断応答受信イベント)であるか否かを判定する(S85)。切断応答受信イベントであれば(S85,Yes)、データ送信部37およびデータ受信部39を制御して通信を終了させ(S86)、初期画面である待ち受け画面を表示するようGUI部31に指示し(S87)、待ち受け中状態に遷移して(S88)、処理を終了する。
また、切断応答受信イベントでなければ(S85,No)、そのまま処理を終了する。
図11は、図5に示す応答送信処理(S21)の処理手順を説明するためのフローチャートである。応答送信イベントは、他の情報処理装置からリクエストを受信した後、GUI部31がユーザ操作を検出したときに発生するイベントである。
まず、コミュニケーション管理部32は、状態確認を行なう(S91)。現在の状態ではシーケンス上受け取るはずがないイベントを受け取った場合(S92,No)、そのまま処理を終了する。
状態確認が済めば(S92,Yes)、コミュニケーション管理部32は、シグナリング部38にそのイベントに対応する応答を送信させる(S93)。そして、応答送信イベントが変更応答(変更応答送信イベント)であるか否かを判定する(S94)。変更応答送信イベントであれば(S94,Yes)、200 OK応答を送信したか否かを判定する(S95)。
200 OK応答を送信したのであれば(S95,Yes)、コミュニケーション管理部32は、GUI部31を制御して表示画面を切替えさせると共に、入力制御部33および出力制御部34を制御して入力装置21および出力装置22の設定変更を行なわせ、エンコード部35およびデコード部36を制御してエンコーダ24およびデコーダ25を切替えさせる(S96)。そして、変更のネゴシエーション結果に従ったコミュニケーションデータの送受信を開始し(S97)、接続通信中状態に遷移して(S104)、処理を終了する。
また、200 OK応答を送信していなければ(S95,No)、変更要求前の画面に戻すようGUI部31に指示し、データ送信部37およびデータ受信部39に変更要求前の通信を再開させ(S99)、接続通信中状態に遷移して(S104)、処理を終了する。
変更応答送信イベントでなければ(S94,No)、コミュニケーション管理部32は、応答送信イベントが接続応答(接続応答送信イベント)であるか否かを判定する(S100)。接続応答送信イベントであれば(S100,Yes)、200 OK応答を送信したか否かを判定する(S101)。
200 OK応答を送信したのであれば(S101,Yes)、コミュニケーション管理部32は、GUI部31を制御してコミュニケーションデータの情報に従った表示画面に切替えさせると共に、入力制御部33および出力制御部34を制御して入力装置21および出力装置22の設定変更を行なわせ、エンコード部35およびデコード部36を制御してエンコーダ24およびデコーダ25を切替えさせる(S102)。そして、接続のネゴシエーション結果に従ったコミュニケーションデータの送受信を開始し(S103)、接続通信中状態に遷移して(S104)、処理を終了する。
また、200 OK応答を送信していなければ(S101,No)、コミュニケーション管理部32は、初期画面である待ち受け画面を表示するようGUI部31に指示し(S105)、待ち受け中状態に遷移して(S106)、処理を終了する。
図12は、コミュニケーション開始の一例を説明するための図である。図12(a)は、ユーザがリモコン10の#キーを押下することにより、電話帳の表示画面に切替えたところを示している。リモコン10の十字キーの上下を押下することによって、発信先を選択し、決定キー105を押下することによって発信を開始する。
図12(b)は、ユーザが発信キーを押下することにより電話番号入力にし、数字キー101で接続先のTV電話番号を入力するところを示している。ユーザが再度発信キーを押下することによって発信を開始する。
図13は、SIPシグナルのINVITEリクエスト(TV電話モード)の一例を示す図である。このINVITEリクエストは、ヘッダフィールド(1)と、メッセージボディ(2)とを含む。
ヘッダフィールド(1)において、最初のヘッダフィールドにはリクエストの種類であるINVITEと、SIP URI(Uniform Resource Identifier)とが記述される。Viaヘッダフィールドは、トランザクションのために使用されるトランスポートを示し、トランザクションを識別するbranchパラメータを含む。
Fromヘッダフィールドは、リクエストを開始した者の論理的なアイデンティティを示し、乱数文字列を含んだtagパラメータを含む。Toヘッダフィールドは、希望するリクエストの論理的な受信者などを示す。Call−IDヘッダフィールドは、連続するメッセージをグループ化するための一意の識別子を示す。
CSeqヘッダフィールドは、トランザクションを識別し順番付けするためのシーケンス番号とメソッドとを示す。Contactヘッダフィールドは、これに続くリクエストでそのUA(User Agent)の特定のインスタンスにコンタクトするために使用できるSIP URIなどを示す。Allowヘッダフィールドは、そのメッセージを生成するUAがサポートするメソッドの組のリストを示しており、INVITE、ACK、CANCEL、BYE、OPTIONS、MESSAGE、SUBSCRIBEおよびNOTIFYがサポートされている。
Supportedヘッダフィールドは、サーバが応答に適用できるSIPの拡張のサポートを示す。Session−Expiresヘッダフィールドは、メッセージがそれ以降期限切れになる相対時間を示す。
Max−Forwardsヘッダフィールドは、リクエストがディスティネーションに向かう過程で通過することができるホップの数の制限を示す。Content−Typeヘッダフィールドは、受信者に送られたメッセージボディのメディアタイプを示す。Content−Lengthヘッダフィールドは、受信者に送られたメッセージボディのサイズを示す。
メッセージボディ(2)において、(3)は音声のメディア記述を示しており、音声のRTPポート番号が4050、音声の圧縮方式がG.711のPCMU(Pulse Codec Modulation μ-Law)であることを示している。また、a=X−media−source行によって音声がマイク音声であることを示している。
メッセージボディ(2)において、(4)は映像のメディア記述を示しており、発信側の装置が映像データを受信することを希望する映像の圧縮方式がMP4V−ES、RTPポート番号が4060であることを示している。また、a=X−media−source行によってこのメディアはカメラの映像とするようリクエストしている。
メッセージボディの情報によって、アプリケーションとしてテレビ電話モードであると解釈することができ、相手の情報処理装置は、テレビ電話としての映像の表示、マイク音声の出力を行なうことができる。
図14は、SIPシグナルの200 OK応答(TV電話モード)の一例を示す図である。この200 OK応答は、INVITEリクエストに対して接続を了承するレスポンスとしてコミュニケーションデータの通信に関する情報をSDP記述しており、ヘッダフィールド(1)と、メッセージボディ(2)とを含む。
ヘッダフィールド(1)において、図13と異なるのはRecord−Routeヘッダフィールドが追加されている点である。このRecord−Routeヘッダフィールドは、ダイアログ中のそれ以降のリクエストをプロキシを通してルートさせることを示している。
メッセージボディ(2)において、(3)は音声のメディア記述を示しており、音声のRTPポート番号が16350であることを示している。それ以外の記述については、INVITEリクエストの記述と同様である。
メッセージボディ(2)において、(4)は映像のメディア記述を示しており、映像のRTPポート番号が16360であることを示している。それ以外の記述については、INVITEリクエストの記述と同様である。
この200 OK応答がリクエストを発信した情報処理装置に送信されることによって、TV電話による通話が開始される。
図15は、TV電話モードで通話中の状態を示す図である。それぞれの情報処理装置の表示画面には、相手の顔が大きく表示され、自身の顔が小さく表示されており、相手の音声が情報処理装置のスピーカから出力されているところを示している。この状態で、左側のユーザが、たとえばリモコン10の*ボタンを押下することにより、送信ソースの切替えが開始される。
図16は、送信ソースの切替え画面を示す図である。左側のユーザがリモコン10の*ボタンを押下することにより、表示画面に送信ソースの一覧が表示される。たとえば、外部入力が選択された状態で、リモコン10の決定キー105が押下されると、カメラ映像から外部入力映像に切替えられる。
図17は、SIPシグナルのre−INVITEリクエスト(外部入力映像切替え)の一例を示す図である。このre−INVITEリクエストは、カメラ映像から外部入力映像に切替えることを要求するものであり、ヘッダフィールド(1)と、メッセージボディ(2)とを含む。
ヘッダフィールド(1)は、図13のINVITEメッセージと同じで、CSeqが1から2に1つ数が増えている。
メッセージボディ(2)において、(3)は音声のメディア記述を示しており、音声のRTPポート番号が4050、音声の圧縮方式がG.711のPCMUであることを示している。また、a=X−media−source行によって音声がマイク音声であることを示している。
メッセージボディ(2)において、(4)は映像のメディア記述を示しており、映像のRTPポート番号が4060、映像の圧縮方式がMP4V−ESであることを示している。また、a=X−media−source行によって映像がカメラ映像であることを示している。さらに、この映像ストリームはリクエスト側において受信のみ(receiveonly)であることが記述されている。
メッセージボディ(2)において、(5)は映像のメディア記述を示しており、映像のRTPポート番号が4080、映像の圧縮方式がMP4V−ESであることを示している。また、a=X−media−source行によって映像が外部入力映像であることを示している。さらに、この映像ストリームは応答した側から見て送信のみ(sendonly)であることが記述されている。
メッセージボディの情報によって、カメラ映像から外部入力映像に切替わると解釈することができ、相手の情報処理装置は、外部入力映像の表示、マイク音声の出力を行なうことができる。
図18は、SIPシグナルの200 OK応答(外部入力映像切替え)の一例を示す図である。この200 OK応答は、re−INVITEリクエストに対して変更を了承するレスポンスとしてコミュニケーションデータの通信に関する情報をSDP記述しており、ヘッダフィールド(1)と、メッセージボディ(2)とを含む。
ヘッダフィールド(1)は、図14に示すヘッダフィールド(1)と同様である。メッセージボディ(2)において、(3)は音声のメディア記述を示しており、図14の(3)の記述と同様である。
メッセージボディ(2)において、(4)は映像のメディア記述を示しており、映像のRTPポート番号が16360であり、この映像が送信のみ(sendonly)であることを示している。それ以外の記述については、図17に示すre−INVITEリクエストの(4)の記述と同様である。
メッセージボディ(2)において、(5)は映像のメディア記述を示しており、映像のRTPポート番号が16370であり、この映像が受信のみ(receiveonly)であることを示している。それ以外の記述については、図17に示すre−INVITEリクエストの(5)の記述と同様である。ここで、今までカメラ映像を受信していたポート“16360”と異なるポート“16370”に変更してレスポンスしている。そのため、切替えのタイミングでカメラの映像データが外部入力映像として処理されることを防止している。
この200 OK応答がre−INVITEリクエストを発信した情報処理装置に送信されることによって、発信元の情報処理装置は外部入力映像の送信を開始する。また、音声はそれまでのとおりであるので、会話を続けることができる。
図19は、端末Aが切替え(変更)要求を送信したときの画面表示を示す図である。左側のユーザが切替え要求を送信すると、その情報処理装置の画面には「切替え要求送信」が表示される。また、切替え要求を受信した右側の情報処理装置の画面には、「切替え要求受信」が表示される。右側のユーザは、リモコン10を操作することによって、切替え要求を受けるか否かを選択する。右側のユーザが切替えを選択した場合、200 OK応答が左側の情報処理装置に送信される。
図20は、映像が外部入力映像に切替えられた場合の画面表示を示す図である。図20に示すように、今までのTV電話の画面構成ではなく、外部入力映像を共有するような画面構成に変更される。音声はそれまでのとおりであるので、会話を続けることができる。
以上の説明においては、SIPシグナルを利用してコミュニケーションデータを変更するものであったが、SIPプロトコルに依存するものではなく、他の呼制御プロトコルまたはその拡張やオリジナルの通知プロトコルによって実現することも可能である。
また、本実施の形態においては、a=X−media−sourceとした拡張ヘッダを定義し、ソースデバイスの情報を相手に通知するようにしたが、ソースデバイス以外の情報を通知することも可能である。具体的には、ソースコンテンツファイルの種類の情報、たとえば、“2005年誕生日パーティの写真”のようなコンテンツを指定するものであったり、“デジタルビデオ撮影映像”や“スポーツ映像”、“音楽映像”などのようにカテゴリを示すものであってもよい。
このようにすることによって、たとえば「運動会」というタイトルであれば、映像受信に合わせて「運動会」にマッチする画像を背景に表示させたり、「運動会」をイメージさせる音楽をBGMに流したりするようなアプリケーションを作成することも可能である。
また、「音楽」に相当するタイトルならば、音声外部出力端子8−1に接続されたステレオスピーカに音声出力を切替えるような設定も可能であるし、外部入力からの音楽は外付けスピーカに出力させ、マイク音声は内蔵スピーカに出力させるなど、ミキシングしないで出力デバイスを選択することも可能である。
また、SIPシグナルにソースデバイスの情報を直接記述する以外に、コミュニケーションモードを記述することによってソースデバイスの組合わせを選択するようにしてもよい。たとえば、カメラとマイクとであればテレビ電話モードであると定義し、マイクと外部入力映像とであれば映像共有音声コミュニケーションモードであると定義して、そのモードを記述して相手に通知する。SIPであれば、セッション情報を記述するiヘッダフィールドで情報を通知することも可能である。
また、セッションの状態に名前を付けて記述するようにしてもよい。たとえば、カメラを用いたテレビ電話モードであれば“TVPhone”、外部入力映像を送信して共有しながら会話するモードであれば“ExVideo”というように記述する。この場合にも、通常のテレビ電話とビデオ共有モードとで背景や画面構成などを切替えるようにすることも可能である。
以上説明したように、本実施の形態における情報処理装置においては、情報処理装置が相手の情報処理装置と接続中に、送信データの種類を示す情報を含んだre−INVITEリクエストを送信するようにしたので、相手の情報処理装置は受信データが切替えられることを認識することができ、それに応じた画面構成の変更、出力装置の選択などを行なうことが可能となった。
(第2の実施の形態)
本発明の第2の実施の形態における情報処理装置の外観、ハードウェア構成および機能的構成は、図1〜3に示す第1の実施の形態における外観、ハードウェア構成および機能的構成と同様である。また、本発明の第2の実施の形態における情報処理装置の処理手順は、図5、図7および図9〜11に示す第1の実施の形態における処理手順と同様である。したがって、詳細な説明は繰返さない。
第1の実施の形態においては、送信中の映像を他の映像に置換えるものであった。本実施の形態における情報処理装置は、既に使用中のコミュニケーションデータの通信に加えて、新たなコミュニケーションデータの通信を追加するものである。
図21は、使用中のメディアに新たなメディアを追加する場合のSIPシグナルのre−INVITEリクエストの一例を示す図である。このre−INVITEリクエストは、マイク音声とカメラ映像とに加えて、さらに音声外部入力端子7−1などから入力される音声(以下、外部入力音声と呼ぶ。)と外部入力映像とを追加するものであり、ヘッダフィールド(1)と、メッセージボディ(2)とを含む。
ヘッダフィールド(1)は、図17に示すヘッダフィールド(1)と同様である。メッセージボディ(2)において、図13と異なるのは、(4)の外部入力音声の記述と、(6)の外部入力映像の記述が追加されている点である。
メッセージボディ(2)において、(4)は音声のメディア記述を示しており、音声のRTPポート番号が4070、音声の圧縮方式がG.711のPCMUであることを示している。また、a=X−media−source行によって音声が外部入力音声であることを示している。また、この音声は送信のみ(sendonly)であることが記述されている。
メッセージボディ(2)において、(6)は映像のメディア記述を示しており、映像のRTPポート番号が4080、映像の圧縮方式がMP4V−ESであることを示している。また、a=X−media−source行によって映像が外部入力映像であることを示している。また、この映像は送信のみ(sendonly)であることが記述されている。
図22は、使用中のメディアに新たなメディアを追加する場合のSIPシグナルの200 OK応答の一例を示す図である。この200 OK応答は、re−INVITEリクエストに対してメディアの追加を了承するレスポンスとしてコミュニケーションデータの通信に関する情報をSDP記述しており、ヘッダフィールド(1)と、メッセージボディ(2)とを含む。
ヘッダフィールド(1)は、図18に示すヘッダフィールド(1)と同様である。メッセージボディ(2)において、図14と異なるのは、(4)の外部入力音声の記述と、(6)の外部入力映像の記述が追加されている点である。
メッセージボディ(2)において、(4)は音声のメディア記述を示しており、音声のRTPポート番号が16370、音声の圧縮方式がG.711のPCMUであることを示している。また、a=X−media−source行によって音声が外部入力音声であることを示している。また、この音声は受信のみ(receiveonly)であることが記述されている。
メッセージボディ(2)において、(6)は映像のメディア記述を示しており、映像のRTPポート番号が16380、映像の圧縮方式がMP4V−ESであることを示している。また、a=X−media−source行によって映像が外部入力映像であることを示している。また、この映像は受信のみ(receiveonly)であることが記述されている。
図23は、メディアとして外部入力音声および外部入力映像が追加された場合の情報処理装置を示す図である。それぞれの情報処理装置の表示画面には、共有映像として外部入力映像が親画面として大きく表示され、相手の顔がピクチャ・イン・ピクチャで子画面として小さく表示されている。また、それぞれの情報処理装置の内蔵スピーカ3から外部入力音声が出力され、音声外部出力端子8−1に接続された外付けのスピーカから相手の音声が出力されているところを示している。
このように、ビデオコンテンツを同時に視聴しながら、相手の表情を見たり会話したりすることも可能なセッションに変更することができる。通信される音声や映像のコミュニケーションデータの出力方法は、アプリケーションによって自由に制御することが可能である。
以上説明したように、本実施の形態における情報処理装置によれば、re−INVITEリクエストによって使用中のメディアに新たなメディアを追加するようにしたので、情報処理装置の操作性をさらに向上させることが可能となった。
(第3の実施の形態)
第1および第2の実施の形態においては、コミュニケーションデータとは別のシグナリングで情報を通知するものであった。本実施の形態における情報処理装置においては、特別なシグナリングを用いずに、コミュニケーションデータの通信内においてこのような情報を通知するものである。
本発明の第3の実施の形態における情報処理装置の外観、ハードウェア構成および機能的構成は、図1〜3に示す第1の実施の形態における外観、ハードウェア構成および機能的構成と同様である。したがって、詳細な説明は繰返さない。
図24は、RTPパケットで送信されるペイロードタイプの値を利用してコミュニケーションデータを変更する方法を示す図である。予め決めておいたペイロードタイプのパケットを本データの前に挿入して送信することで、テレビ電話モードの開始、切替えや、変更後のコミュニケーションモード、ソースの種類などを通知することができる。
通常、SIPなどでネゴシエーションされた本データ以外のペイロードタイプの情報は廃棄されるが、予め決められたペイロードタイプの値を知る情報処理装置であれば、区切りのパケットとそのペイロードタイプの値とで何に切替わるかを認識することができる。
図24においては、テレビ電話モードの開始前にペーロードタイプ(PT)=100のパケットが送信され、ビデオ共有モード開始時にはPT=101のパケットが送信されており、それぞれの本データはPT=98のパケットとして送信される。このように、テレビ電話モードからビデオ共有モードに変更するだけであれば、シグナリングによる再ネゴシエーションは不要であり、ペーロードタイプや受信ポートなどの通信も全く変わらないが、受信側で送信されたデータが別のソースに切替わったことを認識することができる。
図25は、本発明の第3の実施の形態における情報処理装置の処理手順を説明するためのフローチャートである。まず、コミュニケーション管理部32は、SIPシグナルによってネゴシエーションされた結果に基づいて、入力装置21、出力装置22などの選択や、パラメータ設定、画面構成などの切替えを行なう(S111)。
次に、コミュニケーション管理部32は、ユーザ操作やシグナリングによってコミュニケーションの終了イベントが発生したか否かを判定する(S112)。終了イベントが発生すれば(S112,Yes)、通信を終了する。また、終了イベントが発生していなければ(S112,No)、コミュニケーション管理部32は、データ受信部39によって受信されたRTPパケットを図示しない受信バッファから読出し(S113)、そのペイロードタイプを抽出する(S114)。
SIPシグナルによってネゴシエーションされたペイロードタイプと一致する場合には(S115,Yes)、そのデータをデコーダ25の図示しない入力バッファに書込み(S120)、ステップS112に戻って以降の処理を繰返す。
ネゴシエーションされたペイロードタイプと一致しない場合には(S115,No)、そのパケットの送信元がどこであるかを確認し(S116)、通信相手と一致しているか否かを判定する(S117)。
通信相手と一致していなければ(S117,No)、そのパケットは無視して、ステップS112に戻って以降の処理を繰返す。また、通信相手と一致していれば(S117,Yes)、ペイロードタイプにアサインした出力設定を読出し(S118)、ペイロードタイプに該当するモードがなければ(S119,No)、そのデータをデコーダ25の入力バッファに書込み(S120)、ステップS112に戻って以降の処理を繰返す。
ペイロードタイプに該当するモードがあれば(S119,Yes)、デコーダの入力バッファに残っているデータをクリアし(S121)、画面構成、出力設定などをペイロードに該当するモードに対応するよう変更し(S122)、ステップS112に戻って以降の処理を繰返す。
図26は、ペイロードタイプにアサインした出力設定(モード)の一例を示す図である。PT=100の場合には、カメラ映像が送信され、テレビ電話構成(モード)であることを示す。PT=101の場合には、外部入力映像(動画)が送信され、ビデオ共有構成(モード)であることを示す。PT=102の場合には、外部入力映像(静止画)が送信され、静止画共有構成(モード)であることを示す。PT=103の場合には、ファイル映像が送信され、ファイル共有構成(モード)であることを示す。
図27は、図26に示すアサインされた構成に対応する画面構成を示す図である。図27(a)は、テレビ電話構成に対応する画面構成を示しており、通信相手からのカメラ映像を大きく表示し、自身のカメラ映像を小さく表示する。
図27(b)は、ビデオ共有構成に対応する画面構成を示しており、ビデオの上にピクチャ・イン・ピクチャで相手のカメラ映像を表示し、ビデオ視聴中の相手の表示を見れるようにしている。
図27(c)は、静止画共有構成に対応する画面構成を示しており、静止画のみが表示されている。
以上説明したように、本実施の形態における情報処理装置によれば、予め決めておいたペイロードタイプのパケットを本データの前に挿入して送信するようにしたので、特別なシグナリングを用いずに、コミュニケーションデータの通信内においてモードを変更することが可能となった。
(第4の実施の形態)
第3の実施の形態においては、情報処理装置が予め決めておいたペイロードタイプのパケットを本データの前に挿入して送信するものであった。本実施の形態における情報処理装置においては、コミュニケーションデータのパケットにペイロードタイプの値を埋め込んで送信することにより情報を通知するものである。
本発明の第4の実施の形態における情報処理装置の外観、ハードウェア構成および機能的構成は、図1〜3に示す第1の実施の形態における外観、ハードウェア構成および機能的構成と同様である。したがって、詳細な説明は繰返さない。
図28は、RTPパケットで送信されるコミュニケーションデータにペイロードタイプの値を埋め込んで、コミュニケーションデータを変更する方法を示す図である。予め決めておいたペイロードタイプをコミュニケーションデータに埋め込んで送信することで、テレビ電話モードの開始、切替えや、変更後のコミュニケーションモード、ソースの種類などを通知することができる。埋め込まれたPT=98の場合には、テレビ電話モードであることを示す。また、PT=99の場合には、ビデオ共有モードであることを示す。
図29は、本発明の第4の実施の形態における情報処理装置の処理手順を説明するためのフローチャートである。まず、コミュニケーション管理部32は、SIPシグナルによってネゴシエーションされた結果に基づいて、入力装置21、出力装置22などの選択や、パラメータ設定、画面構成などの切替えを行なう(S131)。
次に、コミュニケーション管理部32は、ユーザ操作やシグナリングによってコミュニケーションの終了イベントが発生したか否かを判定する(S132)。終了イベントが発生すれば(S132,Yes)、通信を終了する。また、終了イベントが発生していなければ(S132,No)、コミュニケーション管理部32は、データ受信部39によって受信されたRTPパケットを図示しない受信バッファから読出し(S133)、そのパケットの送信元がどこであるかを確認し(S134)、通信相手と一致しているか否かを判定する(S135)。
通信相手と一致していなければ(S135,No)、そのパケットは無視して、ステップS132に戻って以降の処理を繰返す。また、通信相手と一致していれば(S135,Yes)、そのペイロードタイプを抽出する(S136)。そして、ペイロードタイプにアサインした出力設定を読出し(S137)、ペイロードタイプに該当するモードがなければ(S138,No)、通信を終了する。
ペイロードタイプに該当するモードがあれば(S138,Yes)、画面構成、出力設定などをペイロードに該当するモードに対応するよう変更し(S139)、デコーダの入力バッファに残っているデータをクリアし(S140)、デコーダの入力バッファにコミュニケーションデータを書込んで(S141)、ステップS132に戻って以降の処理を繰返す。
図30は、コミュニケーションのモードが切替わるときの表示画面の一例を示す図である。図30に示すように、コミュニケーションのモードが変わることを画面上のメッセージでユーザに知らせる。
また、画像の表示サイズや位置を変更したり、背景画像や映像表示枠のデザインなどの表示の装飾を変更することも可能である。このような情報が予め情報処理装置に設定値として保持されたり、通知されることによって実現可能である。
図31は、SDP記述でattributeを拡張して、メディア表示に関する情報を送信する場合のSIPシグナルの一例を示す図である。この記述においては、ビデオを左上位置を原点とする(x,y)座標でA×Bのサイズで表示し、表示枠は「レイアウト1」という名称で定義されたデザインのレイアウトが使用されることが示されている。この例において、「レイアウト1」は画面全体の領域で背景イメージを指定でき、下部にメッセージ表示エリアを有するものであり、その上に自由なビデオ表示を重ねて表示することが可能なものである。背景イメージには「背景1」という名称のイメージが表示され、メッセージ表示エリアには「2005/5/8のコンサートビデオ」を表示することが指定されている。
図32は、レイアウト1の定義データの一例を示す図である。この定義データにおいては、画面サイズが左上座標(0,0)を原点として640×480であり、背景がデフォルト設定されておらず(null)、メッセージエリアが座標(0,500)から(500,80)のサイズであることが示されている。
図33は、図31に示すSDP記述および図32に示すレイアウト1の定義データに基づいて表示された画面の一例を示す図である。
また、送信するビデオの種類によって、画質などの優先度が変わる。たとえば、ビデオを共有する場合には高画質な映像が要求されるが、テレビ電話でのカメラ映像は相手の表情を見る程度の画質でもよく、むしろ遅延を少なくするために画質を下げる方がよいと考えられる。映像において、その品質はジッタと呼ばれる遅延時間の揺らぎによって影響されるが、そのためのバッファサイズを変動させることによって、画質の高低や、遅延の大小を制御することができる。
また、切替えタイミングにおいて、上述したようにバッファをクリアすることができるので、切替え後の映像の開始の遅延を少なくすることもできる。
以上説明したように、本実施の形態における情報処理装置によれば、予め決めておいたペイロードタイプをコミュニケーションデータのパケットに挿入して送信するようにしたので、特別なシグナリングを用いずに、コミュニケーションデータの通信内においてモードを変更することが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 コンピュータ本体、2 ディスプレイ、3 スピーカ、4 マイク、5 カメラ、6 赤外線ポート、7 外部AV入力端子、7−1 音声外部入力端子、7−2 映像外部入力端子、8−1 音声外部出力端子、8−2 映像外部出力端子、9 外部スピーカ端子、10 リモコン、11 CPU、12 ROM、13 RAM、14 AVセレクタ、15 ネットワークデバイス、16 TVチューナ、17 mpeg4デコーダ、18 mpeg4エンコーダ、19 mpeg2デコーダ、20 mpeg2エンコーダ、21 入力装置、22 出力装置、23 通信装置、24 エンコーダ、25 デコーダ、31 GUI部、32 コミュニケーション管理部、33 入力制御部、34 出力制御部、35 エンコード部、36 デコード部、37 データ送信部、38 シグナリング部、39 データ受信部、40 通信部、101 数字キー、102 発信キー、103 切断キー、104 十字キー、105 決定キー。