(57)【特許請求の範囲】
【請求項１】
データをエンコードする第１のエンコーダと、
前記第１のエンコーダよりも低いビットレートでデータをエンコードする第２のエンコーダと、
通信状態に応じて、データのエンコードに、前記第１のエンコーダと前記第２のエンコーダとのいずれを用いるのかを決定するエンコーダ決定手段と、
前記エンコーダ決定手段によって決定された前記第１のエンコーダまたは前記第２のエンコーダによってエンコードされたデータを送信する送信手段と、
所定の量の、前記第１のエンコーダまたは前記第２のエンコーダによってエンコードされたデータを１つのファイルに構成するファイル化手段とを備え、
前記送信手段は、前記ファイル化手段によって１つのファイルに構成されたデータを送信し、
前記エンコーダ決定手段は、前記第１のエンコーダが前記ファイル化手段によって一のファイルに構成される一部のデータのエンコード中に、前記送信手段による送信先から送信済みのファイルの到着が遅延したことを示す第１のフィードバック通知が通知された場合に、前記第１のフィードバック通知に基づいて、前記第２のエンコーダのビットレートを設定し、
前記エンコーダ決定手段は、前記第１のフィードバック通知が通知されたあとに、前記送信手段による送信先から送信済みのファイルの到着が遅延したことを示す第２のフィードバック通知が通知された場合に、前記一のファイルの残部のデータのエンコードに前記第２のエンコーダを用いると決定する
ことを特徴とする通信端末。
【請求項２】
請求項１に記載の通信端末と、
前記通信端末の前記送信手段が送信したデータを受信する受信端末とを備え、
前記受信端末は、
前記送信手段が送信したデータのスループットを測定するスループット測定手段と、
前記スループット測定手段の測定結果に基づいて、送信された前記データの到着が遅延したか否かを判定する遅延判定手段と、
前記遅延判定手段が前記遅延したと判定した場合に、前記遅延したことを前記通信端末に通知する通知手段とを含む
ことを特徴とするデータ送受信システム。
【請求項３】
請求項１に記載の通信端末と、
前記通信端末の前記送信手段が送信したデータを受信する中継装置と、
前記中継装置が送信したデータを受信する受信端末とを備え、
前記中継装置は、
前記通信端末が送信したデータを受信する受信手段と、
前記受信手段が受信したデータに基づいて、複数のビットレートのそれぞれにエンコードされたデータをそれぞれ生成する変換手段と、
複数の受信端末のそれぞれに応じたビットレートにエンコードされた、前記変換手段が生成したデータを前記複数の受信端末にそれぞれ送信可能な中継送信手段とを含み、
前記受信端末は、
前記中継装置の前記中継送信手段が送信したデータのスループットを測定するスループット測定手段と、
前記スループット測定手段の測定結果に基づいて、前記データの到着が遅延したか否かを判定する遅延判定手段と、
前記遅延判定手段が前記遅延したと判定した場合に、前記遅延したことを前記中継装置に通知する通知手段とを含む
ことを特徴とするデータ送受信システム。
【請求項４】
データをエンコードする第１のエンコードステップと、
前記第１のエンコードステップよりも低いビットレートでデータをエンコードする第２のエンコードステップと、
通信状態に応じて、データのエンコードに、前記第１のエンコードステップと前記第２のエンコードステップとのいずれを用いるのかを決定するエンコードステップ決定ステップと、
所定の量の、前記第１のエンコードステップまたは前記第２のエンコードステップにおいてエンコードされたデータを１つのファイルに構成するファイル化ステップと、
前記エンコードステップ決定ステップによって決定された前記第１のエンコードステップまたは前記第２のエンコードステップでエンコードされたデータに基づき、前記ファイル化ステップにおいて１つのファイルに構成されたデータを送信する送信ステップとを含み、
前記第１のエンコードステップにおいて前記ファイル化ステップで一のファイルに構成される一部のデータのエンコード中に、前記送信ステップにおける送信先から送信済みのファイルの到着が遅延したことを示す第１のフィードバック通知が通知された場合に、前記エンコードステップ決定ステップで、前記第１のフィードバック通知に基づいて、前記第２のエンコードステップにおけるエンコードのビットレートを設定し、
前記第１のフィードバック通知が通知されたあとに、前記送信ステップにおける送信先から送信済みのファイルの到着が遅延したことを示す第２のフィードバック通知が通知された場合に、前記エンコードステップ決定ステップで、前記第２のエンコードステップにおいて前記一のファイルの残部のデータのエンコードを行うと決定する
ことを特徴とする通信方法。
【請求項５】
コンピュータに、
データをエンコードする第１のエンコード処理と、
前記第１のエンコード処理よりも低いビットレートでデータをエンコードする第２のエンコード処理と、
通信状態に応じて、データのエンコードに、前記第１のエンコード処理と前記第２のエンコード処理とのいずれを用いるのかを決定するエンコード処理決定処理と、
所定の量の、前記第１のエンコード処理または前記第２のエンコード処理においてエンコードされたデータを１つのファイルに構成するファイル化処理と、
前記エンコード処理決定処理によって決定された前記第１のエンコード処理または前記第２のエンコード処理でエンコードされたデータに基づき、前記ファイル化処理において１つのファイルに構成されたデータを送信する送信処理と実行させ、
前記第１のエンコード処理において前記ファイル化処理によって一のファイルに構成される一部のデータのエンコード中に、前記送信処理における送信先から送信済みのファイルの到着が遅延したことを示す第１のフィードバック通知が通知された場合に、前記エンコード処理決定処理で、前記第１のフィードバック通知に基づいて、前記第２のエンコード処理におけるエンコードのビットレートを設定させ、
前記第１のフィードバック通知が通知されたあとに、前記送信処理における送信先から送信済みのファイルの到着が遅延したことを示す第２のフィードバック通知が通知された場合に、前記エンコード処理決定処理で、前記第２のエンコード処理において前記一のファイルの残部のデータのエンコードを行うと決定させる
通信用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを送受信する通信端末、データ送受信システム、通信方法、および通信用プログラムに関する。
【背景技術】
【０００２】
送信端末から受信端末へ映像データおよび音声データ（以下、マルチメディアデータと総称する）を送信するマルチメディアデータ送受信システムがある。そのようなマルチメディアデータ送受信システムでは、例えば、インターネット等の通信ネットワークを介して、マルチメディアデータが送受信される。
【０００３】
しかし、インターネット等の通信ネットワークにおいて通信状態が悪化した場合に、送信されたマルチメディアデータの受信側への到着が遅延し、受信側におけるマルチメディアデータの再生処理が停止してしまうという問題がある。
【０００４】
そのような問題を解決するために、受信側が、受信したマルチメディアデータを蓄積してから再生処理を開始するバッファリング技術がある。以下、蓄積したマルチメディアデータを再生バッファといい、蓄積されているマルチメディアデータの再生時間を再生バッファ時間という。
【０００５】
マルチメディアデータが送受信される通信ネットワークが携帯電話通信網等のモバイルネットワークである場合には、インターネットに比べて通信状態が激しく変動する。したがって、バッファリング技術を用いても、受信側におけるマルチメディアデータの再生処理が停止してしまう場合がある。
【０００６】
そこで、非特許文献１〜３に記載されているような適応映像配信制御技術が提案されている。
【０００７】
非特許文献１には、ＨＬＳ（ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）について記載されている。非特許文献２には、Ｓｍｏｏｔｈ  Ｓｔｒｅａｍｉｎｇについて記載されている。非特許文献３には、ＭＰＥＧ−ＤＡＳＨ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ−Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）について記載されている。
【０００８】
非特許文献１〜３に記載されているような適応映像配信制御技術が用いられているシステムは、マルチメディアデータを数秒の再生時間単位のファイル（以下、チャンクともいう）に分割する。そして、当該システムは、チャンク単位で送信側の送信ビットレートを切り替えることが多い。
【０００９】
非特許文献１に記載されているＨＬＳや、非特許文献２に記載されているＳｍｏｏｔｈ  Ｓｔｒｅａｍｉｎｇ等のようにチャンク単位でビットレートを切り替える技術は、予め用意されたマルチメディアデータを送受信するＶＯＤ（Ｖｉｄｅｏ  Ｏｎ  Ｄｅｍａｎｄ）等のサービスの提供には有効である。
【００１０】
特許文献１には、マルチメディアデータに含まれる映像データにおけるフレームごとに（すなわちチャンクの途中で）、ビットレートを変更可能な特殊なコーデックについて記載されている。特許文献１に記載されているようなコーデックは、通信ネットワークにおける通信状態の悪化を検知した場合にビットレートを低下させ、マルチメディアデータの再生処理の停止を防ぐ。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２００７−５１１１８８号公報
【非特許文献】
【００１２】
【非特許文献１】ロジャー・パントス（Ｒｏｇｅｒ  Ｐａｎｔｏｓ）、ウィリアム・メイ（Ｗｉｌｌｉａｍ  Ｍａｙ）著，エイチティーティーピーライブストリーミング（ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ），［ｏｎｌｉｎｅ］，ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ），［平成２７年５月７日検索］，https://datatracker.ietf.org/doc/draft-pantos-http-live-streaming/
【非特許文献２】アレックス・ザンベルリ（Ａｌｅｘ  Ｚａｍｂｅｌｌｉ）著，アイアイエススムースストリーミングテクニカルオーバービュー（ＩＩＳ  Ｓｍｏｏｔｈ  Ｓｔｒｅａｍｉｎｇ  Ｔｅｃｈｎｉｃａｌ  Ｏｖｅｒｖｉｅｗ），［ｏｎｌｉｎｅ］，Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ，［平成２７年５月７日検索］，http://www.microsoft.com/en-us/download/details.aspx?id=17678
【非特許文献３】インフォメーションテクノロジー−ダイナミックアダプティブストリーミングオーバーエイチティーティーピー（ダッシュ）−（Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−Ｄｙｎａｍｉｃ  ａｄａｐｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（ＤＡＳＨ）−），［ｏｎｌｉｎｅ］，ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）  ２３００９−１：２０１４，［平成２７年５月７日検索］，http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=65274
【発明の概要】
【発明が解決しようとする課題】
【００１３】
送信側が撮影して生成したマルチメディアコンテンツをリアルタイムで送信するライブ映像配信ではリアルタイム性が重視されるため、送信側が撮影して生成したマルチメディアコンテンツを受信側が再生するまでの遅延（以下、ライブ遅延という）を減少させることが重要である。
【００１４】
ここで、ライブ遅延の大部分は再生バッファ時間によるところが大きいため、ライブ遅延を減少させるためには再生バッファを小さくすることが必要となる。
【００１５】
しかし再生バッファを小さくすると、非特許文献１に記載されている技術や非特許文献２に記載されている技術では、以下のような状況を生じさせうる。すなわち、送信側が撮影して生成したマルチメディアコンテンツをリアルタイムで送信するライブ映像配信において、あるチャンクの送信中に通信状態が悪化した場合に、受信側で再生の停止が生じうる。
【００１６】
ライブ遅延を減少させるためには、送信側が、Ｎ番目のチャンクの送信中にＮ＋１番目のチャンクをエンコードしておき、Ｎ番目のチャンクの送信直後にＮ＋１番目の送信を開始できるようにする必要がある。
【００１７】
一般的なエンコーダにエンコードビットレートを再設定するためには、エンコーダをリセットする必要がある。そして、リセット処理には、一般に、数百ミリ秒を要する。
【００１８】
そうすると、送信側が、通信状態が悪化したことを検知したときにエンコードビットレートを再設定すると、再設定に時間を要し、却って遅延が増大してしまう。そのためＮ番目のチャンクの配信中に通信状態の急激な悪化を検知したとしても、当該悪化に応じた、Ｎ＋１番目のチャンクのエンコードビットレートの再設定は適切な対応とはいえない。また、遅延を減少させるためには再生バッファ時間を減少させる必要がある。
【００１９】
したがって、ＶＯＤに比べて、ライブ映像配信において受信側で再生の停止が発生しやすい原因は、通信ネットワークにおける通信状態の悪化と、当該悪化に応じたビットレートの変更との間のタイムラグが大きいこと、および再生バッファ時間が短いことである。
【００２０】
よって、通信ネットワークにおける通信状態が悪化してスループットが低下した場合に、送信側は、スループットの低下に応じて迅速にエンコードビットレートを変更する必要がある。
【００２１】
また、ライブ配信システムにおいて、通信ネットワークにおける通信状態が悪化してスループットが低下した場合に、送信側におけるスループットフィードバック、および受信側から送信側にスループットを通知するスループットフィードバックに基づいて、送信側がエンコードビットレートを下げるためには、エンコーダを初期化し、フレーム取得およびエンコードを、予め設定されたチャンクを構成するために必要なフレームの回数繰り返す必要がある。
【００２２】
また、エンコード済みのフレーム数がチャンクを構成する数に満たないときにエンコーダを初期化する場合、エンコーダを停止して、必要なパラメータをセットして再定義し、エンコーダを再起動するまでのオーバヘッドが発生する。つまり、通信ネットワークにおける通信状態が悪化してスループットが低下した場合に、エンコードビットレートの変更に時間と手間とを要するという問題がある。
【００２３】
特許文献１に記載されているようなコーデックは特殊なコーデックであり、高コストになるという問題がある。
【００２４】
そこで、本発明は、低コストで、受信側における再生の停止を抑制することができる通信端末、データ送受信システム、通信方法、および通信用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明による通信端末は、データをエンコードする第１のエンコーダと、第１のエンコーダよりも低いビットレートでデータをエンコードする第２のエンコーダと、通信状態に応じて、データのエンコードに、第１のエンコーダと第２のエンコーダとのいずれを用いるのかを決定するエンコーダ決定手段と、エンコーダ決定手段によって決定された第１のエンコーダまたは第２のエンコーダによってエンコードされたデータを送信する送信手段とを備えたことを特徴とする。
【００２６】
本発明によるデータ送受信システムは、いずれかの態様の通信端末と、通信端末の送信手段が送信したデータを受信する受信端末とを備え、受信端末は、送信手段が送信したデータのスループットを測定するスループット測定手段と、スループット測定手段の測定結果に基づいて、送信されたデータの到着が遅延したか否かを判定する遅延判定手段と、遅延判定手段が遅延したと判定した場合に、遅延したことを受信端末に通知する通知手段とを含むことを特徴とする。
【００２７】
本発明による通信方法は、データをエンコードする第１のエンコードステップと、第１のエンコードステップよりも低いビットレートでデータをエンコードする第２のエンコードステップと、通信状態に応じて、データのエンコードに、第１のエンコードステップと第２のエンコードステップとのいずれを用いるのかを決定するエンコードステップ決定ステップと、エンコードステップ決定ステップによって決定された第１のエンコードステップまたは第２のエンコードステップでエンコードされたデータを送信する送信ステップとを含むことを特徴とする。
【００２８】
本発明による通信用プログラムは、コンピュータに、データをエンコードする第１のエンコード処理と、第１のエンコード処理よりも低いビットレートでデータをエンコードする第２のエンコード処理と、通信状態に応じて、データのエンコードに、第１のエンコード処理と第２のエンコード処理とのいずれを用いるのかを決定するエンコード処理決定処理と、エンコード処理決定処理によって決定された第１のエンコード処理または第２のエンコード処理でエンコードされたデータを送信する送信処理とを実行させることを特徴とする。
【発明の効果】
【００２９】
本発明によれば、受信側における再生の停止を抑制することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１の実施形態のマルチメディアデータ送受信システムの構成例を示すブロック図である。
【図２】本発明の第１の実施形態のマルチメディアデータ送受信システムにおける送信側端末の動作を示すフローチャートである。
【図３】本発明の第１の実施形態のマルチメディアデータ送受信システムにおける送信側端末の動作を示すフローチャートである。
【図４】エンコーダ選択部が、メインエンコーダおよびバックアップエンコーダのいずれを用いるのかを決定する方法を示すフローチャートである。
【図５】本発明の第１の実施形態のマルチメディアデータ送受信システムにおける受信側端末の動作を示すフローチャートである。
【図６】到着遅延検知部が、ファイル受信部がステップＳ３０１の処理で受信したファイルが通信ネットワークにおいて遅延したか否かを判定する第１の処理を示すフローチャートである。
【図７】到着遅延検知部が、ファイル受信部がステップＳ３０１の処理で受信したファイルが通信ネットワークにおいて遅延したか否かを判定する第２の処理を示すフローチャートである。
【図８】本発明の第２の実施形態のマルチメディアデータ送受信システムの構成例を示すブロック図である。
【図９】本発明の第２の実施形態のマルチメディアデータ送受信システムにおける中継サーバの構成例を示すブロック図である。
【図１０】本発明の第２の実施形態のマルチメディアデータ送受信システムにおける中継サーバがファイルを受信する動作を示すフローチャートである。
【図１１】本発明の第２の実施形態のマルチメディアデータ送受信システムにおける中継サーバがファイルを送信する動作を示すフローチャートである。
【図１２】本発明の第３の実施形態の通信端末の構成例を示すブロック図である。
【発明を実施するための形態】
【００３１】
実施形態１．
本発明の第１の実施形態のマルチメディアデータ送受信システム１００について、図面を参照して説明する。図１は、本発明の第１の実施形態のマルチメディアデータ送受信システム１００の構成例を示すブロック図である。
【００３２】
図１に示すように、本発明の第１の実施形態のマルチメディアデータ送受信システム１００は、送信側端末２００と受信側端末３００とを含む。送信側端末２００と受信側端末３００とは、それぞれ通信ネットワーク４００に接続されている。
【００３３】
そして、送信側端末２００は、キャプチャ部２０１、エンコーダ選択部２０２、メインエンコーダ２０３、バックアップエンコーダ２０４、ファイル出力部２０５、ファイル送信部２０６、スループットフィードバック部２０７、メインエンコーダ初期化部２０８、およびバックアップエンコーダ初期化部２０９を含む。
【００３４】
なお、エンコーダ選択部２０２、ファイル出力部２０５、ファイル送信部２０６、スループットフィードバック部２０７、メインエンコーダ初期化部２０８、およびバックアップエンコーダ初期化部２０９は、例えば、プログラム制御に従って処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現される。また、キャプチャ部２０１、メインエンコーダ２０３、およびバックアップエンコーダ２０４は、例えば、プログラム制御に従って処理を実行する画像処理モジュールによって実現される。ファイル送信部２０６は、例えば、プログラム制御に従って処理を実行する通信モジュールによって実現される。そして、エンコーダ選択部２０２およびバックアップエンコーダ初期化部２０９が行う通信は、当該通信モジュールによって行われてもよい。
【００３５】
キャプチャ部２０１は、カメラ（図示せず）が撮影して生成された動画像の映像データおよび音声データによる映像フレームおよび音声フレーム（以下、単にフレームともいう）を取得する。
【００３６】
エンコーダ選択部２０２は、キャプチャ部２０１が取得したフレームをエンコードするエンコーダを選択し、選択したエンコーダに当該映像フレームおよび音声フレームを入力する。
【００３７】
メインエンコーダ２０３およびバックアップエンコーダ２０４は、エンコーダ選択部２０２が入力したフレームをエンコードするエンコーダであり、エンコード後のフレームをファイル出力部２０５に入力する。なお、バックアップエンコーダ２０４は、メインエンコーダ２０３よりも低いエンコードビットレートに設定されている。したがって、バックアップエンコーダ２０４によってエンコードされた映像フレームおよび音声フレームは、メインエンコーダ２０３によってエンコードされた映像フレームおよび音声フレームよりもビットレートが低い。メインエンコーダ２０３およびバックアップエンコーダ２０４は、例えば、一般のエンコーダである。
【００３８】
ファイル出力部２０５は、メインエンコーダ２０３またはバックアップエンコーダ２０４が入力したフレームを所定の再生時間単位にファイル化してファイル送信部２０６に入力する。ファイル出力部２０５によってファイル送信部２０６に入力されたファイルは、つまり、チャンクである。
【００３９】
ファイル送信部２０６は、ファイル出力部２０５が入力したファイルを受信側端末３００へ送信する。
【００４０】
スループットフィードバック部２０７は、ファイル送信部２０６がファイルを受信側端末３００へ送信した場合に、送信スループットを算出して、算出結果をメインエンコーダ初期化部２０８に入力する。
【００４１】
メインエンコーダ初期化部２０８は、スループットフィードバック部２０７が入力した送信スループットに応じて、メインエンコーダ２０３を初期化する。
【００４２】
バックアップエンコーダ初期化部２０９は、受信側端末３００から送信された通知に応じて、バックアップエンコーダ２０４を初期化する。
【００４３】
また、受信側端末３００は、ファイル受信部３０１、ファイル出力部３０２、および到着遅延検知部３０３を含む。
【００４４】
なお、到着遅延検知部３０３は、例えば、プログラム制御に従って処理を実行するＣＰＵによって実現される。ファイル受信部３０１は、例えば、プログラム制御に従って処理を実行する通信モジュールによって実現される。そして、到着遅延検知部３０３が行う通信は、当該通信モジュールによって行われてもよい。
【００４５】
ファイル受信部３０１は、送信側端末２００から送信されたファイルを通信ネットワーク４００を介して受信する。
【００４６】
ファイル出力部３０２は、ファイル受信部３０１が受信したファイルを出力する。具体的には、ファイル出力部３０２は、例えば、ファイル受信部３０１が受信したファイルを、外部の機器に出力したり、デコードしてデコード後のフレームに再生処理を施して映像および音声を再生して出力したりする。
【００４７】
到着遅延検知部３０３は、ファイル受信部３０１が受信したファイルの通信ネットワーク４００における遅延を検知し、検知結果を送信側端末２００に通知する。
【００４８】
次に、本発明の第１の実施形態のマルチメディアデータ送受信システム１００の動作について説明する。図２および図３は、本発明の第１の実施形態のマルチメディアデータ送受信システム１００における送信側端末２００の動作を示すフローチャートである。
【００４９】
送信側端末２００が起動すると、メインエンコーダ初期化部２０８は、メインエンコーダ２０３を初期化して所定のエンコードビットレートを設定する（ステップＳ１０１）。
【００５０】
また、キャプチャ部２０１は、カメラが撮影して生成された動画像のフレームを取得する（ステップＳ１０２）。そして、キャプチャ部２０１は、エンコーダ選択部２０２に、ステップＳ１０２の処理で取得したフレームを入力する。
【００５１】
キャプチャ部２０１が前回以前のステップＳ１０２の処理で取得したフレームであって今回のステップＳ１０２の処理で取得したフレームと後述する処理で１つにファイル化されるフレームが、バックアップエンコーダ２０４によって既にエンコードされていた場合に（ステップＳ１０３のＹ）、ステップＳ１１０の処理に移行し、そうでない場合に（ステップＳ１０３のＮ）、ステップＳ１０４の処理に移行する。
【００５２】
バックアップエンコーダ初期化部２０９は、ステップＳ１０４の処理で、受信側端末３００から送信された第１のフィードバック通知を受信した場合に（ステップＳ１０４のＹ）、バックアップエンコーダ２０４を初期化して（ステップＳ１０５）、ステップＳ１０９の処理に移行する。なお、第１のフィードバック通知とは、受信側端末３００が、ファイルの到着が遅延したと判断した場合にその旨を送信側端末２００に１回目に報告する通知である。第１のフィードバック通知によって、受信側端末３００が後述するステップＳ４０４の処理で算出したスループットが通知されてもよい。そして、バックアップエンコーダ初期化部２０９は、ステップＳ１０５の処理で、当該通知されたスループットに応じたパラメータをバックアップエンコーダ２０４に設定してもよい。
【００５３】
また、エンコーダ選択部２０２は、受信側端末３００から送信された第２のフィードバック通知を受信した場合に（ステップＳ１０４のＮ，Ｓ１０６のＹ）、ステップＳ１０７の処理に移行する。エンコーダ選択部２０２は、受信側端末３００から第１のフィードバック通知も第２のフィードバック通知も受信しなかった場合に（ステップＳ１０４のＮ，Ｓ１０６のＮ）、ステップＳ１０９の処理に移行する。なお、第２のフィードバック通知とは、受信側端末３００が、ファイルの到着が遅延したと判断した場合にその旨を送信側端末２００に２回目以降に報告する通知であり、詳しくは後述する。
【００５４】
エンコーダ選択部２０２は、キャプチャ部２０１が前回以前のステップＳ１０２の処理で取得して今回のステップＳ１０２の処理で取得したフレームと後述する処理で１つにファイル化されるフレームが、メインエンコーダ２０３およびバックアップエンコーダ２０４のいずれかによってエンコードされたか否かを判定する（ステップＳ１０７）。
【００５５】
エンコーダ選択部２０２は、当該フレームが既にエンコードされたと判定した場合に（ステップＳ１０７のＹ）、ステップＳ１０８の処理に移行し、そうでない場合に（ステップＳ１０７のＮ）、ステップＳ１１０の処理に移行する。
【００５６】
エンコーダ選択部２０２は、ステップＳ１０８の処理で、エンコードに、メインエンコーダ２０３およびバックアップエンコーダ２０４のいずれを用いるのかを決定する（ステップＳ１０８）。なお、エンコーダ選択部２０２がメインエンコーダ２０３およびバックアップエンコーダ２０４のいずれを用いるのかを決定する方法については後述する。
【００５７】
エンコーダ選択部２０２は、エンコードに、メインエンコーダ２０３を用いると決定した場合に（ステップＳ１０８のＹ）、メインエンコーダ２０３に、キャプチャ部２０１が入力したフレームを入力する。メインエンコーダ２０３は、エンコーダ選択部２０２が入力したフレームをエンコードし（ステップＳ１０９）、ファイル出力部２０５に、エンコード後のフレームを入力して、ステップＳ１１１の処理に移行する。
【００５８】
また、エンコーダ選択部２０２は、エンコードに、バックアップエンコーダ２０４を用いると決定した場合に（ステップＳ１０８のＮ）、バックアップエンコーダ２０４に、キャプチャ部２０１が入力したフレームを入力する。バックアップエンコーダ２０４は、エンコーダ選択部２０２が入力したフレームをエンコードし（ステップＳ１１０）、ファイル出力部２０５に、エンコード後のフレームを入力して、ステップＳ１１１の処理に移行する。
【００５９】
ファイル出力部２０５は、操作部（図示せず）にユーザから終了操作がなされていない場合に（ステップＳ１１１のＮ）、入力されたエンコード後のフレームの数が所定の数未満であるときに（ステップＳ１１２のＮ）、ステップＳ１０２の処理に移行する。すなわち、送信側端末２００は、操作部（図示せず）にユーザから終了操作がなされていない場合に（ステップＳ１１１のＮ）、ファイル出力部２０５に入力されたエンコード後のフレームの数がチャンクを構成する所定の数に達するまで、ステップＳ１０２〜Ｓ１１２の処理を繰り返す。
【００６０】
ファイル出力部２０５は、操作部にユーザから終了操作がなされておらず、入力されたエンコード後のフレームの数が所定の数に達した場合に（ステップＳ１１１のＮ，Ｓ１１２のＹ）、それらフレームを１つのファイルにして、ファイル送信部２０６に入力する（ステップＳ１１３）。なお、当該ファイルは、例えば、マルチメディアデータによるファイル（チャンク）である。また、例えば、ファイル出力部２０５は、当該ファイルが送信される場合における先頭に、当該ファイルのファイルサイズを示すファイルサイズ情報、および当該ファイルに含まれる各フレームに基づいて映像および音声が再生された場合の再生時間を示す再生時間情報を付加する。そして、例えば、ファイル出力部２０５は、当該ファイルが送信される場合における後尾に、当該ファイルが終了することを示す終了コードを付加する。
【００６１】
そして、ファイル送信部２０６は、ステップＳ１１３の処理でファイル出力部２０５が入力したファイルを受信側端末３００へ送信する（ステップＳ１１４）。
【００６２】
スループットフィードバック部２０７は、ファイル送信部２０６がステップＳ１１４の処理でファイルを送信したときの送信スループットを算出する。具体的には、例えば、スループットフィードバック部２０７が、ファイル送信部２０６がステップＳ１１４の処理で送信したファイルのデータ量を当該送信に要した時間で除して算出した商が送信スループットである。
【００６３】
そして、スループットフィードバック部２０７は、メインエンコーダ初期化部２０８に、算出した送信スループットを示すスループット情報を入力する（ステップＳ１１５）。メインエンコーダ初期化部２０８は、次回のステップＳ１０１の処理で、ステップＳ１１５の処理で入力されたスループット情報が示す送信スループットに基づいて、エンコードビットレートを設定する。具体的には、例えば、メインエンコーダ初期化部２０８は、次回のステップＳ１０１の処理で、ステップＳ１１５の処理で入力されたスループット情報が示す送信スループットの値（例えば、１．０Ｍｂｐｓ（Ｍｅｇａ  ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ））を、エンコードビットレートの値に設定する。
【００６４】
ファイル出力部２０５は、操作部にユーザから終了操作がなされた場合に（ステップＳ１１１のＹ）、処理を終了する。なお、送信側端末２００は、操作部にユーザから終了操作がなされた場合に（ステップＳ１１１のＹ）、ファイル出力部２０５によるステップＳ１１３の処理、ファイル送信部２０６によるステップＳ１１４の処理、およびスループットフィードバック部２０７によるステップＳ１１５の処理が完了してから、処理を終了するように構成されていてもよい。
【００６５】
エンコーダ選択部２０２が、ステップＳ１０８の処理で、メインエンコーダ２０３およびバックアップエンコーダ２０４のいずれを用いるのかを決定する方法について説明する。図４は、エンコーダ選択部２０２が、メインエンコーダ２０３およびバックアップエンコーダ２０４のいずれを用いるのかを決定する方法を示すフローチャートである。
【００６６】
本例では、エンコーダ選択部２０２が、メインエンコーダ２０３およびバックアップエンコーダ２０４のうちいずれか一方を、キャプチャ部２０１がステップＳ１０２の処理で取得したフレームをエンコードするエンコーダに決定する。
【００６７】
エンコーダ選択部２０２は、処理の初期設定を行う（ステップＳ２０１）。具体的には、エンコーダ選択部２０２は、ステップＳ１１３の処理で１つにファイル化されるフレームのうち先頭のフレームをメインエンコーダ２０３またはバックアップエンコーダ２０４（以下、エンコーダ２０３，２０４と総称することがある）がエンコードしたフレームのビット数を、ｎ［ｂｉｔ］にセットする。なお、当該先頭フレームについてステップＳ２０１の処理が行われる場合に、エンコーダ選択部２０２は、管理者が予め指定した値をｎ［ｂｉｔ］にセットするように構成されていてもよい。
【００６８】
そして、エンコーダ選択部２０２は、フレームのエンコードをメインエンコーダ２０３およびバックアップエンコーダ２０４のいずれが行うのかの判定に用いる閾値Ｘを、Ｘ＝ｎ／２［ｂｉｔ］にセットする。
【００６９】
また、エンコーダ選択部２０２は、ステップＳ１１３の処理で１つにファイル化されるフレームの順序に応じた値をｉにセットする。したがって、本処理が行われるフレームが、ステップＳ１０２の処理で取得された５番目のフレームであれば、ｉに５がセットされる。
【００７０】
エンコーダ選択部２０２は、ステップＳ１１３の処理で１つにファイル化される複数のフレームに応じて、本処理が最初に行われる場合に、第２のフィードバック通知を受信したときに処理されているフレームの順序に応じた値Ｉをリセットする。
【００７１】
また、エンコーダ選択部２０２は、第２のフィードバック通知を受信した後に、強制的にバックアップエンコーダ２０４にフレームのエンコードを行わせるか否かの判定値Ｍに、例えば、５をセットする。
【００７２】
そして、エンコーダ選択部２０２は、Ｉに値がセットされていなければ、Ｉにｉの値をセットする（ステップＳ２０２）。なお、図４に示す本処理は、ステップＳ１０６の処理で、受信側端末３００から送信された第２のフィードバック通知を受信したと判定された場合に行われる。したがって、Ｉには、ステップＳ１１３の処理で１つにファイル化される複数のフレームのうち、第２のフィードバック通知を最初に受信したときに処理されているフレームの順序に応じた値がセットされる。
【００７３】
エンコーダ選択部２０２は、ステップＳ１０２の処理でキャプチャ部２０１が取得したフレームのビット数であるｍがＸよりも大きい値である場合に（ステップＳ２０３のＹ）、ステップＳ２０５の処理に移行し、そうでない場合に（ステップＳ２０３のＮ）、ステップＳ２０４の処理に移行する。
【００７４】
エンコーダ選択部２０２は、ステップＳ２０４の処理で、ｉ−Ｉの値が判定値Ｍの値よりも大きい場合に（ステップＳ２０４のＹ）、ステップＳ２０５の処理に移行し、そうでない場合に（ステップＳ２０４のＮ）、ステップＳ２０６の処理に移行する（ステップＳ２０４）。
【００７５】
そして、エンコーダ選択部２０２は、ステップＳ２０５の処理で、処理対象のフレームであるｉ番目のフレームをバックアップエンコーダ２０４がエンコードすると決定する（ステップＳ２０５）。また、エンコーダ選択部２０２は、ステップＳ２０６の処理で、処理対象のフレームであるｉ番目のフレームをメインエンコーダ２０３がエンコードすると決定する（ステップＳ２０６）。
【００７６】
なお、ｉ−Ｉの値が判定値Ｍの値（本例では、５）よりも大きいということは、例えば、ステップＳ１１３の処理で１つにファイル化されるフレームのうち、２（Ｉ）番目のフレームの処理中に第２のフィードバック通知が受信されたにもかかわらず、８（ｉ）番目のフレームの処理も、メインエンコーダ２０３でエンコードされるということである。そうすると、例えば、ステップＳ１１３の処理で１つにファイル化されるフレームが１０個である場合に、次回以降のステップＳ２０３の処理でＹと判定して残フレームである９番目のフレームおよび１０番目のフレームのエンコードにバックアップエンコーダ２０４を用いたとしても、当該ファイルのサイズの増大を適切に抑制することができない。すると、当該ファイルの到着の遅延を適切に抑制することができない。そこで、本例では、ステップＳ２０３の処理でＹと判定されなくても、ｉ−Ｉの値が判定値Ｍの値（本例では、５）よりも大きい場合には、フレームのエンコードにバックアップエンコーダ２０４を用いることにより、当該ファイルのサイズの増大を適切に抑制することができる。よって、当該ファイルの到着の遅延を適切に抑制することができる。
【００７７】
次に、受信側端末３００の動作について説明する。図５は、本発明の第１の実施形態のマルチメディアデータ送受信システム１００における受信側端末３００の動作を示すフローチャートである。
【００７８】
まず、ファイル受信部３０１は、送信側端末２００から送信されたファイルを通信ネットワーク４００を介して受信する（ステップＳ３０１）。なお、ファイル受信部３０１は、各ファイルごとに、当該ファイルを受信開始してから経過した時間を計測しているとする。
【００７９】
そして、到着遅延検知部３０３は、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する（ステップＳ３０２）。なお、到着遅延検知部３０３が、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する処理については後述する。
【００８０】
到着遅延検知部３０３が、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したと判定した場合に（ステップＳ３０２のＹ）、ステップＳ３０３の処理に移行し、そうでない場合に（ステップＳ３０２のＮ）、ステップＳ３０６の処理に移行する。
【００８１】
到着遅延検知部３０３は、ステップＳ３０３の処理で、今回のステップＳ３０１の処理で受信を開始したファイルの受信中に第１のフィードバック通知を行った場合に（ステップＳ３０３のＹ）、ステップＳ３０５の処理に移行し、そうでない場合に（ステップＳ３０３のＮ）、ステップＳ３０４の処理に移行する。
【００８２】
そして、到着遅延検知部３０３は、ステップＳ３０４の処理で、第１のフィードバック通知を送信側端末２００に送信し（ステップＳ３０４）、ステップＳ３０６の処理に移行する。また、到着遅延検知部３０３は、ステップＳ３０５の処理で、第２のフィードバック通知を送信側端末２００に送信し（ステップＳ３０５）、ステップＳ３０６の処理に移行する。なお、到着遅延検知部３０３は、第１のフィードバック通知および第２のフィードバック通知として、後述するステップＳ４０４の処理で算出したスループットを送信側端末２００に通知するように構成されていてもよい。
【００８３】
到着遅延検知部３０３は、ステップＳ３０６の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルを構成するデータにおいて終了コードを読み込んだ場合に（ステップＳ３０６のＹ）、ステップＳ３０７の処理に移行し、そうでない場合に（ステップＳ３０６のＮ）、ステップＳ３０１の処理に戻り、ファイル受信部３０１に当該ファイルの残部を受信させる。
【００８４】
そして、ファイル出力部３０２が、ステップＳ３０７の処理で、ファイル受信部３０１が受信したファイルを出力する（ステップＳ３０７）。
【００８５】
到着遅延検知部３０３が、ステップＳ３０２の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する処理について説明する。本例では、当該判定について、第１の処理と第２の処理とのうちいずれか一方を用いるのであるが、その両方について述べる。
【００８６】
まず、到着遅延検知部３０３が、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する第１の処理について説明する。図６は、到着遅延検知部３０３が、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する第１の処理を示すフローチャートである。
【００８７】
到着遅延検知部３０３は、第１の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルの先頭に付加されているファイルサイズ情報および再生時間情報を読み出した場合に（ステップＳ４０１のＹ）、ステップＳ４０２の処理に移行し、そうでない場合に、ステップＳ４０３の処理に移行する。本例では、ステップＳ３０１の処理で受信したファイルのファイルサイズは、ファイルサイズ情報によって２００ｋバイトであることが示されているとする。また、本例では、ステップＳ３０１の処理で受信したファイルに基づいて映像および音声が再生された場合の再生時間は、再生時間情報によって２秒であることが示されているとする。
【００８８】
そして、到着遅延検知部３０３は、ステップＳ４０２の処理で、ステップＳ４０１の処理で読み出したファイルサイズ情報および再生時間情報に基づいて、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルを適切に受信するための最低スループットを決定し（ステップＳ４０２）、ステップＳ４０３の処理に移行する。
【００８９】
具体的には、本例では、再生時間が２秒となるファイルのファイルサイズが２００ｋバイトである。そうすると、当該ファイルに基づく映像および音声の再生を停止させずに継続するためには、当該ファイルのうち１０ｋバイト以上のデータを１００ミリ秒毎に受信する必要がある。したがって、到着遅延検知部３０３は、ステップＳ４０２の処理で、本例における最低スループットを、１０ｋバイト／１００ミリ秒であると決定する。
【００９０】
到着遅延検知部３０３は、ステップＳ４０３の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルのデータ量を積算する（ステップＳ４０３）。
【００９１】
そして、到着遅延検知部３０３は、ステップＳ４０３の処理で積算したデータ量と、ファイル受信部３０１がステップＳ３０１の処理でファイルの受信を開始してから経過した時間とに基づいて、スループットを算出（測定）する（ステップＳ４０４）。
【００９２】
具体的には、ファイル受信部３０１がステップＳ３０１の処理でファイルの受信を開始してから５００ミリ秒経過するまでに３０ｋバイトのデータを受信した場合に、到着遅延検知部３０３は、スループットが、３０ｋバイト／５００ミリ秒＝６ｋバイト／１００ミリ秒であると算出する。
【００９３】
到着遅延検知部３０３は、ステップＳ４０４の処理で算出したスループットが、ステップＳ４０２の処理で決定した最低スループット未満であるか否かを判定する（ステップＳ４０５）。そして、到着遅延検知部３０３は、ステップＳ４０４の処理で算出したスループットが、ステップＳ４０２の処理で決定した最低スループット未満である場合に（ステップＳ４０５のＹ）、ステップＳ４０６の処理に移行し、そうでない場合に（ステップＳ４０５のＮ）、ステップＳ４０７の処理に移行する。
【００９４】
到着遅延検知部３０３は、ステップＳ４０６の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルの到着が通信ネットワーク４００において遅延したと判定して（ステップＳ４０６）、本処理を終了する。また、到着遅延検知部３０３は、ステップＳ４０７の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルの到着が通信ネットワーク４００において遅延していないと判定して（ステップＳ４０７）、本処理を終了する。
【００９５】
本例では、ステップＳ４０４の処理で算出したスループット６ｋバイト／１００ミリ秒は、ステップＳ４０２の処理で決定した最低スループット１０ｋバイト／１００ミリ秒未満である。よって、到着遅延検知部３０３は、ステップＳ４０６の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したと判定する。
【００９６】
次に、到着遅延検知部３０３が、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する第２の処理について説明する。図７は、到着遅延検知部３０３が、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したか否かを判定する第２の処理を示すフローチャートである。
【００９７】
到着遅延検知部３０３が第２の処理で行うステップＳ５０１，Ｓ５０２の処理は、図５に示す第１の処理におけるステップＳ４０１，Ｓ４０２の処理と同様であるので説明を省略する。
【００９８】
到着遅延検知部３０３は、ステップＳ５０３の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルのデータ量を積算する（ステップＳ５０３）。
【００９９】
そして、到着遅延検知部３０３は、スループットを算出する所定のタイミングが到来した場合に（ステップＳ５０４のＹ）、ステップＳ５０５の処理に移行し、そうでない場合に（ステップＳ５０４のＮ）、ステップＳ５０３の処理に移行して、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルのデータ量の積算を継続する。
【０１００】
なお、スループットを算出する所定のタイミングとは、例えば、ファイル受信部３０１がステップＳ３０１の処理でファイルの受信を開始してから５００ミリ秒毎のタイミングである。
【０１０１】
そして、到着遅延検知部３０３は、ステップＳ５０５の処理で、ステップＳ５０３の処理で積算したデータ量とスループットを算出する所定のタイミングに応じた時間とに基づいて、スループットを算出する（ステップＳ５０５）。
【０１０２】
具体的には、前回の所定のタイミングが到来してから今回の所定のタイミングが到来するまでの５００ミリ秒間にファイル受信部３０１がステップＳ３０１の処理で受信してステップＳ５０３の処理で積算されたデータ量が３０ｋバイトである場合に、到着遅延検知部３０３は、スループットが、３０ｋバイト／５００ミリ秒＝６ｋバイト／１００ミリ秒であると算出する。
【０１０３】
到着遅延検知部３０３は、ステップＳ５０５の処理で算出したスループットが、ステップＳ５０２の処理で決定した最低スループット未満であるか否かを判定する（ステップＳ５０６）。そして、到着遅延検知部３０３は、ステップＳ５０５の処理で算出したスループットが、ステップＳ５０２の処理で決定した最低スループット未満である場合に（ステップＳ５０６のＹ）、ステップＳ５０７の処理に移行し、そうでない場合に（ステップＳ５０６のＮ）、ステップＳ５０８の処理に移行する。
【０１０４】
到着遅延検知部３０３は、ステップＳ５０７の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルの到着が通信ネットワーク４００において遅延したと判定して（ステップＳ５０７）、ステップＳ５０９の処理に移行する。また、到着遅延検知部３０３は、ステップＳ５０８の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルの到着が通信ネットワーク４００において遅延していないと判定して（ステップＳ５０８）、ステップＳ５０９の処理に移行する。
【０１０５】
到着遅延検知部３０３は、ステップＳ５０９の処理で、ステップＳ５０３の処理で積算した、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルのデータ量をリセットする（ステップＳ５０９）。
【０１０６】
本例では、ステップＳ５０５の処理で算出したスループット６ｋバイト／１００ミリ秒は、ステップＳ５０２の処理で決定した最低スループット１０ｋバイト／１００ミリ秒未満である。よって、到着遅延検知部３０３は、ステップＳ５０７の処理で、ファイル受信部３０１がステップＳ３０１の処理で受信したファイルが通信ネットワーク４００において遅延したと判定する。
【０１０７】
なお、第１の処理では、受信ファイルサイズの累計値と予測受信累計ファイルサイズとを比較することで到着遅延の判定が行われる。したがって、スループットの瞬間的な変動が平滑化されて判定に用いられる。よって、偶発的な理由によるスループットの瞬間的な変動に基づくエンコードビットレートの変動を抑制することができる。このことは、第１の処理は、偶発的な理由によるスループットの瞬間的な低下に基づくエンコードビットレートの低下を抑制することができるという効果を発揮することを意味する。
【０１０８】
また、第２の処理では、単位時間ごとに得られる受信ファイルサイズと予測受信累計ファイルサイズとを比較することで到着遅延の判定が行われる。したがって、第２の処理は、エンコードビットレートを、スループットの変動に応じて迅速に対応させることができるという効果を発揮する。
【０１０９】
本実施形態におけるマルチメディアデータ送受信システム１００の動作の具体例について説明する。
【０１１０】
マルチメディアデータ送受信システム１００の送信側端末２００は、例えば、マイクロフォンおよび動画像を撮影可能なカメラを備えた携帯端末装置や、そのようなマイクロフォンおよびカメラが外部接続されたパーソナルコンピュータ等の端末装置である。
【０１１１】
マルチメディアデータ送受信システム１００の受信側端末３００は、例えば、パーソナルコンピュータ等の端末装置や、スマートフォンやタブレット端末等の携帯端末装置、サーバ装置である。
【０１１２】
通信ネットワーク４００は、インターネットやモバイル通信ネットワークなどのＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）によって構成される通信ネットワークである。
【０１１３】
送信側端末２００は、フレームをＮ（Ｎは自然数）番目のファイルにファイル化した後、Ｎ番目のファイルの送信と並行してＮ＋１番目のファイルを構成するフレームのエンコード処理を開始する。このことは、受信側端末３００がＮ番目のファイルを受信しているときに、送信側端末２００がＮ＋１番目のファイルを構成するフレームをエンコード処理中であることを表している。
【０１１４】
ここで、ビットレートが１．２［Ｍｂｐｓ］にエンコードされたフレームによって構成されたＮ番目のファイルおよびＮ＋１番目のファイルが、１．２［Ｍｂｐｓ］のスループットで送信されたとする。
【０１１５】
送信側端末２００が、１．２［Ｍｂｐｓ］のエンコードビットレートのＮ＋１番目のファイルを送信するとともに、１．２［Ｍｂｐｓ］のエンコードビットレートでＮ＋２番目のファイルを構成するフレームのエンコード処理を行っている場合に、通信ネットワーク４００におけるスループットが１．０［Ｍｂｐｓ］に低下したとする。スループットが低下したときに、受信側端末３００においてＮ＋１番目のファイル受信中に、到着遅延検知部３０３が、到着遅延を検知する。到着遅延検知部３０３は、通信ネットワーク４００のスループットを送信側端末２００に第１のフィードバック通知として送信する。
【０１１６】
送信側端末２００のバックアップエンコーダ初期化部２０９は、受信側端末３００の到着遅延検知部３０３から第１のフィードバック通知として通信ネットワーク４００のスループットを受け取る。そして、バックアップエンコーダ初期化部２０９は、受け取ったスループットの値に基づいて、当該値に応じた値をエンコードビットレートとして各パラメータを定義し、バックアップエンコーダ２０４を初期化する。
【０１１７】
次に受信側端末３００の到着遅延検知部３０３が到着遅延を検知した場合に、Ｎ＋１番目のファイルの受信中に既に第１のフィードバック通知を送信しているので、到着遅延検知部３０３は、送信側端末２００に第２のフィードバック通知を送信する。
【０１１８】
第２のフィードバック通知を受け取ったＮ＋２番目のファイルを構成する一部のフレームをエンコード処理中の送信側端末２００のエンコーダ選択部２０２が図４に例示した処理でバックアップエンコーダ２０４を用いると判定した場合に、バックアップエンコーダ２０４が当該ファイルを構成する残部のフレームのエンコード処理を行う。
【０１１９】
送信側端末２００は、Ｎ＋２番目のファイルを構成するフレームのエンコード処理を１．２［Ｍｂｐｓ］で開始したが、エンコード処理中に通信ネットワーク４００のスループットに応じてエンコーダをバックアップエンコーダ２０４に変更してより低いエンコードビットレートで当該ファイルを構成するフレームの残部をエンコードしたので当該ファイルは到着が遅延することなく、受信側端末３００に到着する。
【０１２０】
本実施形態によれば、送信側が、エンコードに用いるエンコーダを、メインエンコーダ２０３と、当該メインエンコーダ２０３よりも低いエンコードビットレートのバックアップエンコーダ２０４との間で、通信状態の変化に基づく受信側からの通知に応じて切り替える。したがって、通信ネットワーク４００における通信状態が悪化した場合に、エンコードに用いるエンコーダを、メインエンコーダ２０３からバックアップエンコーダ２０４に切り替えることにより、受信側における再生の停止を抑制することができる。
【０１２１】
また、本実施形態によれば、メインエンコーダ２０３およびバックアップエンコーダ２０４として一般のエンコーダを採用することができるので、チャンクの途中でビットレートを変更可能な特殊なコーデックを用いた場合よりもコストを低減することができる。
【０１２２】
本実施形態によれば、メインエンコーダ２０３のエンコード中に当該メインエンコーダ２０３を再設定したり再起動したりすることなく、円滑に、エンコードビットレートを変更することができる。
【０１２３】
実施形態２．
次に、本発明の第２の実施形態のマルチメディアデータ送受信システム５００について、図面を参照して説明する。図８は、本発明の第２の実施形態のマルチメディアデータ送受信システム５００の構成例を示すブロック図である。
【０１２４】
図８に示すように、本発明の第２の実施形態のマルチメディアデータ送受信システム５００は、図１に示す第１の実施形態のマルチメディアデータ送受信システム１００における送信側端末２００および受信側端末３００に加えて、中継サーバ６００を含む。そして、図１に示すように、中継サーバ６００は、通信ネットワーク４００に接続されている。
【０１２５】
なお、送信側端末２００および受信側端末３００は、第１の実施形態のマルチメディアデータ送受信システム１００における構成と同様なため、対応する各要素には図１と同じ符号を付して説明を省略する。
【０１２６】
中継サーバ６００は、送信側端末２００によって送信されたファイルを通信ネットワーク４００を介して受信してトランスコードする。そして、中継サーバ６００は、トランスコード後のファイルを受信側端末３００に送信する。
【０１２７】
中継サーバ６００の構成について説明する。図９は、本発明の第２の実施形態のマルチメディアデータ送受信システム５００における中継サーバ６００の構成例を示すブロック図である。図９に示すように、本発明の第２の実施形態のマルチメディアデータ送受信システム５００における中継サーバ６００は、アップロード受付処理部６１０とコンテンツ配信処理部６２０とを含む。
【０１２８】
そして、アップロード受付処理部６１０は、到着遅延検知部６１１およびアップロード受付部６１２を含む。
【０１２９】
到着遅延検知部６１１は、本発明の第１の実施形態における到着遅延検知部３０３に相当する処理を行う。アップロード受付部６１２は、本発明の第１の実施形態におけるファイル受信部３０１に相当する処理を行う。
【０１３０】
また、コンテンツ配信処理部６２０は、トランスコード部６２１およびコンテンツ配信部６２２を含む。
【０１３１】
トランスコード部６２１は、アップロード受付部６１２が通信ネットワーク４００を介して送信側端末２００から受信したファイルを、通信ネットワーク４００における受信側端末３００との間の通信状態に応じてトランスコードする。つまり、本例においてトランスコード部６２１は、メインエンコーダ２０３またはバックアップエンコーダ２０４によってエンコードされたフレームをデコードすることなく再度エンコード（トランスコード）する。なお、トランスコード部６２１は、メインエンコーダ２０３またはバックアップエンコーダ２０４によってエンコードされたフレームをデコードしてから再度エンコードしてもよい。
【０１３２】
コンテンツ配信部６２２は、本発明の第１の実施形態におけるファイル出力部３０２に相当する処理を行う。
【０１３３】
中継サーバ６００の動作について説明する。図１０は、本発明の第２の実施形態のマルチメディアデータ送受信システム５００における中継サーバ６００がファイルを受信する動作を示すフローチャートである。
【０１３４】
図１０に示す処理のうち、ステップＳ６０１〜Ｓ６０５の処理は、図５に示す第１の実施形態のステップＳ３０１〜Ｓ３０５における処理と同様なため説明を省略する。なお、第１の実施形態におけるファイル受信部３０１の処理は、アップロード受付部６１２によって行われる。また、第１の実施形態における到着遅延検知部３０３の処理は、到着遅延検知部６１１によって行われる。
【０１３５】
そして、本実施形態では、到着遅延検知部６１１が、ステップＳ６０６の処理で、アップロード受付部６１２がステップＳ６０１の処理で受信した、ファイルを構成するデータにおいて終了コードを読み込んだ場合に（ステップＳ６０６のＹ）、処理を終了する。
【０１３６】
図１１は、本発明の第２の実施形態のマルチメディアデータ送受信システム５００における中継サーバ６００がファイルを送信する動作を示すフローチャートである。
【０１３７】
トランスコード部６２１は、アップロード受付部６１２がステップＳ６０１の処理で受信したファイルをトランスコードし（ステップＳ７０１）、トランスコード後のファイルを記憶手段（図示せず）に記憶させる（ステップＳ７０２）。なお、記憶手段には、トランスコード部６２１に設定するビットレートがリスト化されて登録されたトランスコードレートリストが記憶されているとする。そして、トランスコード部６２１は、記憶手段に記憶されているトランスコードレートリストに登録されているそれぞれのビットレートに、当該ファイルをトランスコードする。したがって、トランスコードレートリストに３種類のビットレートが登録されている場合に、トランスコード部６２１は、アップロード受付部６１２がステップＳ６０１の処理で受信したファイルにもとづいて、３種類のビットレートにそれぞれトランスコードされたファイルを生成して記憶手段にそれぞれ記憶させる。
【０１３８】
コンテンツ配信部６２２は、受信側端末３００から当該ファイルの送信を要求された場合に（ステップＳ７０３のＹ）、当該要求に応じて記憶手段に記憶されている当該ファイルを受信側端末３００に送信する（ステップＳ７０４）。なお、コンテンツ配信部６２２は、例えば、ステップＳ７０４の処理で、記憶手段に記憶されている当該ファイルのうち、最も高いビットレートにトランスコードされているファイルを送信するように構成されていてもよい。
【０１３９】
コンテンツ配信部６２２は、当該ファイルの送信中に受信側端末３００から第１のフィードバック通知を受信したときに（ステップＳ７０５のＹ）、今回のステップＳ７０４の処理で送信開始したファイルの次に送信するファイルを、当該ファイルのビットレートよりも低いビットレートにトランスコードすることに決定する（ステップＳ７０６）。なお、トランスコード部６２１は、当該決定がなされた場合に、当該次に送信するファイルを当該ビットレートにトランスコードする処理を開始してもよい。
【０１４０】
また、コンテンツ配信部６２２は、当該ファイルの送信中に受信側端末３００から第２のフィードバック通知を受信したときに（ステップＳ７０７のＹ）、当該ファイルの次に、ステップＳ７０６の処理における決定結果に基づくビットレートにトランスコードされたファイルを送信することに決定する（ステップＳ７０８）。そして、コンテンツ配信部６２２は、ステップＳ７０４の処理に移行して、当該ファイルの送信を継続する（ステップＳ７０４）。
【０１４１】
コンテンツ配信部６２２は、第１のフィードバック通知および第２のフィードバック通知を受信しなかったとき（ステップＳ７０５のＮ，Ｓ７０７のＮ）、ファイルの送信が終了した場合に（ステップＳ７０９のＹ）、処理を終了し、そうでない場合に（ステップＳ７０９のＮ）、ステップＳ７０４の処理に移行して当該ファイルの送信を継続する。
【０１４２】
本実施形態におけるマルチメディアデータ送受信システム５００の動作の具体例について説明する。
【０１４３】
マルチメディアデータ送受信システム５００においても、送信側端末２００は、例えば、マイクロフォンおよび動画像を撮影可能なカメラを備えた携帯端末装置や、そのようなマイクロフォンおよびカメラが外部接続されたパーソナルコンピュータ等の端末装置である。
【０１４４】
マルチメディアデータ送受信システム５００においても、受信側端末３００は、例えば、パーソナルコンピュータ等の端末装置や、スマートフォンやタブレット端末等の携帯端末装置、サーバ装置である。
【０１４５】
マルチメディアデータ送受信システム５００においても、通信ネットワーク４００は、インターネットやモバイル通信ネットワークなどのＷＡＮによって構成される通信ネットワークである。
【０１４６】
送信側端末２００の動作、および受信側端末３００の動作は、第１の実施形態における動作と同様なため説明を省略する。
【０１４７】
中継サーバ６００の記憶手段に記憶されているトランスコードレートリストには、８００［ｋｂｐｓ］、１．０［Ｍｂｐｓ］、および１．２［Ｍｂｐｓ］が登録されているとする。そして、中継サーバ６００のトランスコード部６２１は、トランスコードレートリストに登録されているそれぞれのビットレートに、アップロード受付部６１２が受信したファイルをトランスコードして、記憶手段に記憶させる。したがって、記憶手段には、ビットレートが８００［ｋｂｐｓ］にトランスコードされたファイルと、ビットレートが１．０［Ｍｂｐｓ］にトランスコードされたファイルと、ビットレートが１．２［Ｍｂｐｓ］にトランスコードされたファイルとがそれぞれ記憶される。
【０１４８】
コンテンツ配信部６２２は、受信側端末３００の要求に応じて、記憶手段に記憶されている、ビットレートが互いに異なるファイルのうち、いずれか１つのファイルを送信する。
【０１４９】
例えば、アップロード受付部６１２によってＮ番目に受信されたファイル（単にＮ番目のファイルともいう）、Ｎ＋１番目に受信されたファイル（単にＮ＋１番目のファイルともいう）、Ｎ＋２番目に受信されたファイル（単にＮ＋２番目のファイルともいう）が、１．０［Ｍｂｐｓ］のビットレートにトランスコードされて、コンテンツ配信部６２２によって受信側端末３００に順次送信される。なお、受信側端末３００のファイル受信部３０１によって受信されてトランスコードされたＮ番目のファイルに基づく映像および音声がファイル出力部３０２によって再生されているときに、トランスコードされたＮ＋１番目のファイルが受信側端末３００のファイル受信部３０１によって受信され、Ｎ＋２番目のファイルが中継サーバ６００のアップロード受付処理部６１０によって受信される。
【０１５０】
そして、中継サーバ６００のアップロード受付処理部６１０によるＮ＋２番目のファイルの受信が終了した場合に、当該Ｎ＋２番目のファイルは、トランスコード部６２１によってトランスコードされる。
【０１５１】
ここで、通信ネットワーク４００において、受信側端末３００と中継サーバ６００との間のスループットが７００［ｋｂｐｓ］に変動したとする。
【０１５２】
１．０［Ｍｂｐｓ］にトランスコードされたＮ＋１番目のファイルを受信中の受信側端末３００において、到着遅延検知部３０３は到着遅延を検知する。そして、到着遅延検知部３０３は、スループットが７００［ｋｂｐｓ］であることを示す第１のフィードバック通知を中継サーバ６００に送信する。
【０１５３】
第１のフィードバック通知を通信ネットワーク４００を介して受信した中継サーバ６００のコンテンツ配信部６２２は、記憶手段に記憶されているＮ＋２番目のファイルを、７００［ｋｂｐｓ］にトランスコードする。また、第１のフィードバック通知を通信ネットワーク４００を介して受信した中継サーバ６００のトランスコード部６２１は、第１のフィードバック通知が示す７００［ｋｂｐｓ］をトランスコードレートリストに登録する。
【０１５４】
１．０［Ｍｂｐｓ］にトランスコードされたＮ＋１番目のファイルを受信中の受信側端末３００において、到着遅延検知部３０３は到着遅延を検知する。そして、到着遅延検知部３０３は、第２のフィードバック通知を中継サーバ６００に送信する。
【０１５５】
第２のフィードバック通知を通信ネットワーク４００を介して受信した中継サーバ６００のコンテンツ配信部６２２は、７００［ｋｂｐｓ］にトランスコードされたＮ＋２番目のファイルを受信側端末３００に送信すると決定する。
【０１５６】
そして、コンテンツ配信部６２２は、Ｎ＋１番目のファイルの送信後に、７００［ｋｂｐｓ］にトランスコードされたＮ＋２番目のファイルを受信側端末３００に送信する。
【０１５７】
したがって、トランスコードレートリストには、通信ネットワーク４００において、受信側端末３００と中継サーバ６００との間のスループットに応じたビットレートが登録される。
【０１５８】
そして、コンテンツ配信部６２２が、トランスコードされた当該ファイルを受信側端末３００に送信する。よって、通信ネットワーク４００において、受信側端末３００と中継サーバ６００との間のスループットに応じたビットレートでトランスコードされたファイルが送信される。
【０１５９】
本実施形態によれば、中継サーバ６００の記憶手段に、トランスコードレートリストに登録されているビットレートでトランスコードされたファイルがそれぞれ記憶される。そして、中継サーバ６００は、受信側端末３００の要求に応じて、記憶手段に記憶されているファイルを当該受信側端末３００に送信する。
【０１６０】
したがって、本実施形態によれば、ファイルを、複数の受信側端末に、通信ネットワーク４００において互いに異なる通信回線を介してそれぞれ送信することが可能になる。
【０１６１】
なお、送信側端末２００がファイルを並行して複数の受信側端末に送信する場合に、送信側端末２００と通信ネットワーク４００との間の通信回線がボトルネックになり、送信側端末２００におけるファイルのエンコードビットレートを低下させなければならなくなるおそれがある。それに対して、本実施形態のように、中継サーバ６００が、通信ネットワーク４００において互いに異なる通信回線を介して、複数の受信側端末にファイルを並行して送信すれば、そのような問題の発生を抑制することができる。
【０１６２】
また、一の送信側端末２００が複数の受信側端末に、互いに異なるエンコードビットレートのファイルをそれぞれ送信することは困難である。その理由は、多数のエンコーダを並行して動作させることは、多くのメモリリソースを必要とするからである。このことは、当該送信側端末２００が携帯通信端末である場合に顕著である。しかし、本実施形態によれば、中継サーバ６００は、記憶手段に記憶されているファイルを送信するので、そのような制約は生じず、複数の受信側端末に、互いに異なるエンコードビットレートのファイルをそれぞれ送信することができる。
【０１６３】
実施形態３．
次に、本発明の第３の実施形態の通信端末２０について、図面を参照して説明する。図１２は、本発明の第３の実施形態の通信端末２０の構成例を示すブロック図である。
【０１６４】
図１２に示すように、本発明の第３の実施形態の通信端末２０は、第１のエンコーダ２３、第２のエンコーダ２４、エンコーダ決定部２２、および送信部２６を含む。
【０１６５】
第１のエンコーダ２３は、図１に示すメインエンコーダ２０３に相当する。第２のエンコーダ２４は、図１に示すバックアップエンコーダ２０４に相当する。エンコーダ決定部２２は、図１に示すエンコーダ選択部２０２に相当する。送信部２６は、図１に示すファイル送信部２０６に相当する。
【０１６６】
第１のエンコーダ２３は、データをエンコードする。第２のエンコーダ２４は、第１のエンコーダ２３よりも低いビットレートでデータをエンコードする。
【０１６７】
エンコーダ決定部２２は、通信状態に応じて、データのエンコードに、第１のエンコーダ２３と第２のエンコーダ２４とのいずれを用いるのかを決定する。
【０１６８】
送信部２６は、エンコーダ決定部２２によって決定された第１のエンコーダ２３または第２のエンコーダ２４によってエンコードされたデータを送信する。
【０１６９】
本実施形態によれば、受信側における再生の停止を抑制することができる。
【符号の説明】
【０１７０】
２２    エンコーダ決定部
２３    第１のエンコーダ
２４    第２のエンコーダ
２６    送信部
１００、５００    マルチメディアデータ送受信システム
２００    送信側端末
２０１    キャプチャ部
２０２    エンコーダ選択部
２０３    メインエンコーダ
２０４    バックアップエンコーダ
２０５    ファイル出力部
２０６    ファイル送信部
２０７    スループットフィードバック部
２０８    メインエンコーダ初期化部
２０９    バックアップエンコーダ初期化部
３００    受信側端末
３０１    ファイル受信部
３０２    ファイル出力部
３０３    到着遅延検知部
４００    通信ネットワーク
６００    中継サーバ
６１０    アップロード受付処理部
６１１    到着遅延検知部
６１２    アップロード受付部
６２０    コンテンツ配信処理部
６２１    トランスコード部
６２２    コンテンツ配信部
【図１】
0006565324.tif 000002
【図２】
0006565324.tif 000003
【図３】
0006565324.tif 000004
【図４】
0006565324.tif 000005
【図５】
0006565324.tif 000006
【図６】
0006565324.tif 000007
【図７】
0006565324.tif 000008
【図８】
0006565324.tif 000009
【図９】
0006565324.tif 000010
【図１０】
0006565324.tif 000011
【図１１】
0006565324.tif 000012
【図１２】
0006565324.tif 000013