(57)【要約】【課題】マルチパス伝送におけるリオーダタイミングを最適化し、メディアデータの再生のリアルタイム性や再生品質を向上させることを目的とする。【解決手段】複数の通信経路を並列に使用してパケットを受信する受信装置であって、複数のデータユニットを含む受信データをパケット単位で受信する、各通信経路に対応する複数の受信手段と、複数の受信手段それぞれが受信したパケットを格納する複数の受信バッファと、複数の受信手段それぞれにおいて、受信するパケットを含むデータユニットが第１のデータユニットから第２のデータユニットに移行したことを検知する検知手段と、少なくとも１つの受信手段におけるデータユニットの移行が検知された場合に、複数の受信バッファに格納されているパケットを再構成する再構成手段とを備える。【選択図】図１
2015012580.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信経路を並列に使用してパケットを受信する受信装置であって、
複数のデータユニットを含む受信データをパケット単位で受信する、各通信経路に対応する複数の受信手段と、
前記複数の受信手段それぞれが受信したパケットを格納する複数の受信バッファと、
前記受信手段それぞれにおいて、受信するパケットを含むデータユニットが第１のデータユニットから第２のデータユニットに移行したことを検知する検知手段と、
少なくとも１つの受信手段におけるデータユニットの移行が検知された場合に、前記複数の受信バッファに格納されている前記パケットを再構成する再構成手段と
を備える受信装置。
【請求項２】
再構成手段は、すべての受信手段において、前記データユニットの移行が検知された場合に、前記パケットを再構成する請求項１に記載の受信装置。
【請求項３】
前記受信手段は、各通信経路における各パケットの送信順番を示す送信順情報をさらに受信し、
前記検知手段は、前記送信順情報に基づいて、前記データユニットの移行を検知する請求項１又は２に記載の受信装置。
【請求項４】
前記受信手段は、前記データユニットの境界位置を示す境界情報をさらに受信し、
前記検知手段は、前記境界情報に基づいて、前記データユニットの移行を検知する請求項１乃至３何れか１項に記載の受信装置。
【請求項５】
前記受信手段は、前記受信データにおける各パケットの配列順番を示す配列情報をさらに受信し、
前記配列情報及び前記境界情報に基づいて、前記データユニットの最終パケットの前記配列順番を特定する特定手段をさらに有し、
前記検知手段は、前記最終パケットの前記配列順番と、受信したパケットの前記配列順番とに基づいて、前記データユニットの移行を検知する請求項４に記載の受信装置。
【請求項６】
各受信パケットに格納されるパケットに基づいて、未受信パケットの有無を判定する判定手段をさらに備え、
前記再構成手段は、前記複数の通信経路において前記データユニットの移行が検知され、且つ前記未受信パケットが存在しないと判定された場合に、前記パケットを再構成する請求項１に記載の受信装置。
【請求項７】
前記受信手段は、各通信経路における、各パケットの送信順番を示す送信順情報をさらに受信し、
前記判定手段は、前記送信順情報に基づいて、前記未受信パケットの有無を判定する請求項６に記載の受信装置。
【請求項８】
前記未受信のパケットが存在すると判定された場合に、前記未受信パケットの再送要求を送信する送信手段をさらに備える請求項６又は７に記載の受信装置。
【請求項９】
前記再構成手段は、前記データユニットの移行が検知されない状態において、直前に再構成を行ったタイミングから一定時間が経過した場合に、前記パケットを再構成する請求項１乃至８何れか１項に記載の受信装置。
【請求項１０】
複数の通信経路を並列に使用してパケットを受信する受信装置が実行する受信方法であって、
各通信経路に対応する複数の受信手段が、複数のデータユニットを含む受信データをパケット単位で受信し、受信したパケットを複数の受信パケットに格納する受信ステップと、
前記複数の受信手段それぞれにおいて、受信するパケットを含むデータユニットが第１のデータユニットから第２のデータユニットに移行したことを検知する検知ステップと、
少なくとも１つの受信手段におけるデータユニットの移行が検知された場合に、前記複数の受信バッファに格納されている前記パケットを再構成する再構成ステップと
を含む受信方法。
【請求項１１】
コンピュータを、
複数の通信経路それぞれに対応する複数の受信手段それぞれにおいて、受信するパケットを含むデータユニットが第１のデータユニットから第２のデータユニットに移行したことを検知する検知手段と、
少なくとも１つの受信手段におけるデータユニットの移行が検知された場合に、前記複数の受信手段それぞれが受信したパケットを格納する複数の受信バッファに格納されている前記パケットを再構成する再構成手段と
して機能するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置、受信方法及びプログラムに関する。
【背景技術】
【０００２】
現在、インターネット等のＩＰ（Internet  Protocol）ネットワークを用いたメディア伝送が普及している。メディア伝送においては、カメラ等で撮影した動画像や音声等のメディアデータをネットワーク経由でリアルタイムに送信することができる。このようなプロトコルとして、ＲＴＰ（A  Transport  Protocol  for  Real−Time  Applications，RFC3550，IETF）が利用されている。
また、動画像の高精細化が進み、スマートフォンやタブレットの普及に伴うメディアデータの多様性の需要が高まっている。これに伴い、メディア伝送に大容量なネットワーク帯域が必要となり、インフラの整備と共にネットワーク帯域の効率的な利用が求められている。
【０００３】
ネットワーク帯域を効率的に利用する方法として、利用可能な複数のネットワークインタフェース（Ｉ／Ｆ）を並行して利用し、大容量化を図るマルチパス伝送技術がある。マルチパス伝送をサポートするプロトコルとしては、Multipath  TCP（Architectural  Guidelines  for  Multipath  TCP  Development，RFC6182，IETF）が挙げられる。また、他のプロトコルとしては、Multipath  RTPやCMT−SCTP（Concurrent  Multipath  Transfer  using  Stream  Control  Transmission  Protocol）が挙げられる。
【０００４】
マルチパス伝送において、受信クライアント装置は、複数のネットワークＩ／Ｆと、複数のネットワークＩ/Ｆに対応した一時的な受信バッファとを有する。そして、受信クライアント装置は、ネットワークＩ/Ｆを並行に利用してパケットを受信し、受信したパケットを受信バッファに順次格納していく。複数の受信バッファで受信したパケットのデータを上位レイヤのモジュールに渡すために、受信クライアント装置は、リオーダ（Ｒｅ−ｏｒｄｅｒ）処理を行う。ここで、リオーダ処理とは、データの順序を入れ替え、一つのデータとして再構成する処理である。
ところで、受信データを上位レイヤのモジュールに渡すタイミングに関する技術としては、例えば、特許文献１には、最後のビデオパケットを受信したタイミングにおいて、復号化処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２２４８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マルチパス伝送においては、複数のパスの通信帯域や遅延時間等が異なる状況も考えられる。このような状況においても、適切なタイミングにおいて、リオーダ処理を開始することにより、メディアデータの再生を遅滞なく行う技術の提供が望まれている。
【０００７】
本発明はこのような問題点に鑑みなされたもので、マルチパス伝送におけるリオーダタイミングを最適化し、メディアデータの再生のリアルタイム性や再生品質を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明は、複数の通信経路を並列に使用してパケットを受信する受信装置であって、複数のデータユニットを含む受信データをパケット単位で受信する、各通信経路に対応する複数の受信手段と、前記複数の受信手段それぞれが受信したパケットを格納する複数の受信バッファと、前記受信手段それぞれが受信するパケットを含むデータユニットが第１のデータユニットから第２のデータユニットに移行したことを検知する検知手段と、少なくとも１つの受信手段におけるデータユニットの移行が検知された場合に、前記複数の受信バッファに格納されている前記パケットを再構成する再構成手段とを備える。
【発明の効果】
【０００９】
本発明によればリオーダタイミングを最適化し、マルチパス伝送におけるメディアデータの再生のリアルタイム性や再生品質を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】受信装置を示す図である。
【図２】受信装置を示す図である。
【図３】パケットのデータ構成の一例を示す図である。
【図４】受信送信処理を示すフローチャートである。
【図５】受信送信処理を説明するための図である。
【図６】受信送信処理を説明するための図である。
【図７】受信送信処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面に基づいて説明する。
（第１の実施形態）
図１は、受信装置１０のハードウェア構成を示す図である。本実施形態にかかる受信装置１０は、複数の通信経路を並列に使用するマルチパス伝送によりメディアデータをパケット単位でリアルタイムに受信する。なお、メディアデータは、受信データの一例である。メディアデータは、例えば、映像や音声等のデータである。なお、他の例としては、メディアデータは、メタデータや、データのエラー耐性を高めるための誤り訂正符号データ等を含んでいてもよい。
受信装置１０及び送信装置１１は、それぞれ単一のコンピュータ装置で実現されてもよいし、各装置の機能が複数のコンピュータ装置に分散され、複数のコンピュータ装置により各装置が実現されてもよい。各装置が複数のコンピュータ装置で実現される場合には、各コンピュータ装置は、互いに通信可能なようにＬＡＮ（Local  Area  Network）等のネットワークに接続されているものとする。
【００１２】
ＣＰＵ（Central  Processing  Unit）１０１は、後述の受信装置１０の各部を統括的に制御する。ＲＯＭ（Read  Only  Memory）１０２は、ＣＰＵ１０１により実行される制御プログラム等を格納している。ＲＡＭ(Random  Access  Memory)１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
なお、後述する受信装置１０の機能や処理は、ＣＰＵ１０１がＲＯＭ１０２等に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００１３】
ネットワークＩ／Ｆ１０４ａ〜１０４ｃは、インターネットや公衆無線、ＬＡＮと接続できるインタフェースである。本実施形態においては、受信装置１０は、３個のネットワークＩ／Ｆ１０４ａ〜１０４ｃを備えることとするが、受信装置１０は、２個以上のネットワークＩ／Ｆを備えればよく、その数は、実施形態に限定されるものではない。ネットワークＩ／Ｆ１０４ａ〜１０４ｃは、送信装置１１からメディアデータをパケット単位で受信し、ＲＡＭ１０３に格納する。
デコーダ部１０７は、ＲＡＭ１０３に格納されるメディアデータを、例えばＨ．２６５やＪＰＥＧ等、特定の符号化方式により変換する。映像処理部１０８は、デコーダ部１０７で復号化された映像データのノイズ除去や色調補正等の処理を行う。ディスプレイ１０９は、映像処理部１０８で処理された映像データを表示する。バス１１０は、各種データの転送経路である。
なお、他の例として、受信装置１０は、デコーダ部１０７、映像処理部１０８、ディスプレイ１０９等を備えなくともよい。この場合には、受信装置１０は、デコーダ部１０７、映像処理部１０８、ディスプレイ１０９を備える外部機器を接続してもよい。
【００１４】
図２は、受信装置１０のソフトウェア構成を示す図である。送受信部２０１ａ〜２０１ｃは、それぞれ、ネットワークＩ／Ｆ１０４ａ〜１０４ｃに対応する。送受信部２０１ａ〜２０１ｃは、受信機能として、それぞれネットワーク２１３ａ〜２１３ｃ経由で送信装置１１からメディアデータをパケット単位で受信する。送受信部２０１ａ〜２０１ｃは、受信したパケットをそれぞれ受信バッファ２０４ａ〜２０４ｃに格納する。受信バッファ２０４ａ〜２０４ｃそれぞれに格納された複数のパケットは、それぞれバッファ管理部２０７ａ〜２０７ｃによって管理される。
バッファ管理部２０７ａ〜２０７ｃは、パケットに付与されるシーケンス番号、サブフローシーケンス番号、マーカビット等の情報を管理する。なお、シーケンス番号等については、図３を参照しつつ後述する。
【００１５】
バッファ管理部２０７ａ〜２０７ｃは、また、損失パケット（未受信パケット）の再送要求を送受信部２０１ａ〜２０ｃに命令する。リオーダ部２１０は、受信バッファ２０４ａ〜２０４ｃに格納されたパケットを再構成するリオーダ（Ｒｅ−ｏｒｄｅｒ）処理を行う。
デパケッタイザ部２１１は、リオーダ部２１０によりリオーダされたパケットからペイロードを抽出し、再構成されたメディアデータを出力部２１２に渡す。なお、他の例としては、デパケッタイザ部２１１がペイロードを抽出し、その後、リオーダ部２１０が、ヘッダ情報からペイロードをリオーダしてもよい。出力部２１２は、受け取ったペイロードをデコーダ部１０７に出力する。
【００１６】
なお、ネットワーク２１３ａ〜２１３ｃは、すべてが異なるネットワークである必要はない。ネットワーク２１３ａ〜２１３ｃのうち、一部のネットワークが異なっていればよい。
また、各送受信部２０１ａ〜２０１ｃや、受信バッファ２０４ａ〜２０４ｃ、バッファ管理部２０７ａ〜２０７ｃは、同一メモリ空間に設けられていなくともよい。また、各送受信部２０１ａ〜２０１ｃや、受信バッファ２０４ａ〜２０４ｃ、バッファ管理部２０７ａ〜２０７ｃは、それぞれ異なるプログラムにより実現されてもよい。
【００１７】
図３は、受信装置１０が受信するパケットのデータ構造の一例を示す図である。本実施形態にかかる受信装置１０は、Multipath  RTPのパケットを受信するものとし、図３には、Multipath  RTPのパケットのデータ構造を示している。
マーカビット３０１は、１ビットで構成される。マーカビット３０１は、データユニットを構成する最後尾のパケットを識別する情報である。マーカビット３０１は、最後尾のパケットのマーカビット３０１は、「ＯＮ」であり、最後尾以外のパケットのマーカビット３０１は、「ＯＦＦ」となる。
【００１８】
なお、メディアデータは、複数のデータユニットを有している。例えば、映像データの場合には、１つの映像フレームがデータユニットとなる。最後尾のパケットとは、このデータユニットの最後尾に配列されたパケットである。ここで、マーカビット３０１は、連続する２つのデータユニットの境界位置を示す境界情報の一例である。
シーケンス番号３０２は、１６ビットで構成される。シーケンス番号３０２は、１つのメディアデータ内において、メディアデータを構成する各パケットに対して一意に決まる連続した数値である。シーケンス番号３０２は、配列順番を示す配列情報の一例である。
サブフローシーケンス番号３０３は、１６ビットで構成される。サブフローシーケンス番号３０３は、各受信パス内において、受信パスに送信される各パケットに対して一意に決まる連続した数値である。サブフローシーケンス番号３０３は、送信順番を示す送信順情報の一例である。
【００１９】
図４は、受信装置１０による受信処理を示すフローチャートである。図４に示す受信処理は、メディアデータの受信と、リオーダを含む処理である。Ｓ４０１において、ＣＰＵ１０１は、ネットワークＩ／Ｆ１０４ａ〜１０４ｃにおけるパケットの受信を監視する。そして、何れかのネットワークＩ／Ｆ１０４ａ〜１０４ｃがパケットを受信した場合（Ｓ４０１でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４０３へ進める。何れのＩ／Ｆ１０４ａ〜１０４ｃもパケットを受信しない場合には（Ｓ４０１でＮｏ）、ＣＰＵ１０１は、処理をＳ４０２へ進める。なお、Ｓ４０１の処理は、受信処理の一例である。
Ｓ４０２において、ＣＰＵ１０１は、メディアデータの受信が完了したか否か、すなわちメディアデータを構成するすべてのパケットの受信が完了したか否かを判定する。メディアデータの受信が完了したと判定した場合（Ｓ４０２でＹｅｓ）、ＣＰＵ１０１は、受信処理を終了する。メディアデータの受信を完了したと判定しない場合（Ｓ４０２でＮｏ）、ＣＰＵ１０１は、処理をＳ４０１へ進め、再び、パケットの受信を待つ。
【００２０】
Ｓ４０３において、ＣＰＵ１０１は、受信したパケット（以下、受信パケットと称する）からサブフローシーケンス番号を抽出する。そして、ＣＰＵ１０１は、受信パケットのサブフローシーケンス番号と、パケットを受信した受信パス（以下、対象受信パスと称する）から直前に受信したパケットのサブフローシーケンス番号とが連番であるか否かを判定する。
連番であると判定された場合（Ｓ４０３でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４０５へ進める。連番でないと判定された場合（Ｓ４０３でＮｏ）、ＣＰＵ１０１は、処理をＳ４０４へ進める。なお、連番でない場合には、受信パケットのサブフローシーケンス番号と、直前のパケットのサブフローシーケンス番号の間のサブフローシーケンス番号のパケットを受信していないことがわかる。すなわち、連番でないと判定された場合とは、未受信のパケットが存在する場合である。ここで、Ｓ４０３の処理は未受信のパケットの有無を判定する判定処理の一例である。
【００２１】
Ｓ４０４において、ＣＰＵ１０１は、未受信のパケットの再送要求を送信装置１１に送信し（送信処理）、処理をＳ４０１へ進め、未受信のパケットの受信を待つ。
また、Ｓ４０５においては、ＣＰＵ１０１は、対象受信パスの移行フラグのＯＮ/ＯＦＦを検知する。なお、移行フラグは、受信パス毎に設けられており、例えばＲＡＭ１０３等に格納されているものとする。移行フラグは、各ネットワークＩ/Ｆ１０４ａ〜１０４ｃが受信する受信パケットを含むデータユニットが、第１のデータユニットから第２のデータユニットに移行したか否かを示す情報である。データユニットが移行した場合には、移行フラグに「ＯＮ」が設定され、データユニットが移行していない場合には、移行フラグに「ＯＦＦ」が設定されるものとする。
【００２２】
移行フラグが「ＯＮ」の場合には（Ｓ４０５でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４０９へ進める。移行フラグが「ＯＦＦ」の場合には（Ｓ４０５でＮｏ）、ＣＰＵ１０１は、処理をＳ４０６へ進める。
Ｓ４０６において、ＣＰＵ１０１は、受信パケットからシーケンス番号を抽出する。そして、ＣＰＵ１０１は、抽出したシーケンス番号、すなわち受信パケットのシーケンス番号と、対象受信パスにおいて直前に受信したパケットのシーケンス番号が連番とが連番であるか否かを検知する。
【００２３】
ここで、連番である場合とは、直前に受信したパケットを構成するデータユニットと今回受信したパケットを構成するデータユニットとが同一である場合である。一方で、連番でない場合とは、直前に受信したパケットを構成するデータユニットと、今回受信したパケットを構成するデータユニットとが異なる場合である。すなわち、連番でない場合とは、受信パケットを含むデータユニットが第１のデータユニットから第２のデータユニットに移行した場合である。すなわち、Ｓ４０６の処理は、データユニットの移行を検知する検知処理の一例である。
連番である場合には（Ｓ４０６でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４０７へ進める。連番でない場合には（Ｓ４０６でＮｏ）、ＣＰＵ１０１は、パケットの移行を検知したと判定し、処理をＳ４０８へ進める。
【００２４】
Ｓ４０７において、ＣＰＵ１０１は、受信パケットからマーカビットを抽出し、マーカビットの値のＯＮ／ＯＦＦを検知する（検知処理）。マーカビットの値がＯＮである場合には（Ｓ４０７でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４０８へ進める。マーカビットの値が「ＯＦＦ」である場合には（Ｓ４０７でＮｏ）、ＣＰＵ１０１は、処理をＳ４１１へ進める。
Ｓ４０８において、ＣＰＵ１０１は、対象受信パスの移行フラグに「ＯＮ」を設定する。次に、Ｓ４０９において、ＣＰＵ１０１は、すべての受信パスの移行フラグのＯＮ/ＯＦＦを検知する。すべての受信パスの移行フラグがＯＮの場合（Ｓ４０９でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４１０へ進める。移行フラグがＯＦＦの受信パスが存在する場合には（Ｓ４０９でＮｏ）、ＣＰＵ１０１は、処理をＳ４１１へ進める。
【００２５】
Ｓ４１０において、ＣＰＵ１０１は、各受信バッファ２０４ａ〜２０４ｃにおける、サブフローシーケンス番号の欠落の有無を確認する。ここで、Ｓ４１０の処理は、未受信パケットの有無を判定する判定処理の一例である。欠落がある場合（Ｓ４１０でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４１１へ進める。欠落がない場合（Ｓ４１０でＮｏ）、ＣＰＵ１０１は、処理をＳ４１２へ進める。
Ｓ４１１において、ＣＰＵ１０１は、直前にリオーダ処理が行われたタイミングからＳ４１１の処理実行時点までの時間を算出する。そして、ＣＰＵ１０１は、算出した時間が一定時間以上である場合、すなわち、直前にリオーダ処理が行われたタイミングから一定時間が経過した場合には（Ｓ４１１でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４１２へ進める。一定時間が経過していない場合には（Ｓ４１１でＮｏ）、ＣＰＵ１０１は、処理をＳ４０１へ進める。
Ｓ４１２において、ＣＰＵ１０１（リオーダ部２１０）は、リオーダ処理を行う。具体的には、ＣＰＵ１０１は、各受信バッファに格納された複数のパケットをシーケンス番号の順にリオーダ（再構成）する。そして、ＣＰＵ１０１は、再構成されたメディアデータを上位レイヤのモジュールに渡す。次に、Ｓ４１３において、ＣＰＵ１０１は、すべての受信パスの移行フラグに「ＯＦＦ」を設定することにより、移行フラグを初期化し、処理をＳ４０１へ進める。
【００２６】
次に、図５及び図６を参照しつつ、受信処理について具体的に説明する。図５は、メディアデータの一例を示す図である。ここでは、メディアデータは、映像データであるものとする。図５に示す映像フレーム１，２は、メディアデータに含まれるデータユニットの一例である。なお、各映像フレーム１，２は、データユニットであり、１２個のパケットを含むものとする。各パケットの中央には、シーケンス番号を示している。
図６（ａ），（ｂ）は、ネットワークＩ／Ｆ１０４ａ〜１０４ｃが図５に示すメディアデータを構成する各パケットを受信する受信タイミングを示す図である。横軸は、時間軸である。また、各パケットの上部には、サブシーケンス番号を示している。
図６（ａ），（ｂ）に示す受信例においては、ネットワークＩ／Ｆ１０４ａは、映像フレーム１におけるシーケンス番号１〜６のパケットを受信したとする。また、ネットワークＩ／Ｆ１０４ｂは、映像フレーム１におけるシーケンス番号７〜１０のパケットを受信したとする。ネットワークＩ／Ｆ１０６では、映像フレーム１におけるシーケンス番号１１，１２のパケットを受信したとする。
【００２７】
この場合、ネットワークＩ/Ｆ１０６ｃがマーカビット「ＯＮ」のシーケンス番号１２のパケットを受信すると、これに対応し、ＣＰＵ１０１は、ｔ１のタイミングにおいて、ネットワークＩ/Ｆ１０６ｃに対応する移行フラグに「ＯＮ」を設定する。なお、この時点においては、ネットワークＩ/Ｆ１０６ａ，１０６ｂの移行フラグは「ＯＦＦ」である。したがって、この時点では、リオーダ処理は行われない。
続いて、ネットワークＩ／Ｆ１０６ｂが、フレーム２を構成するシーケンス番号１７のパケットを受信する。ネットワークＩ/Ｆ１０６ｂが直前に受信したパケットのシーケンス番号は１０である。したがって、ＣＰＵ１０１は、ｔ２のタイミングにおいて、シーケンス番号が連番でないことから、ネットワークＩ/Ｆ１０６ｂの移行フラグに「ＯＮ」を設定する。
【００２８】
続いて、ネットワークＩ/Ｆ１０６ａが、フレーム２を構成するシーケンス番号１３のパケットを受信すると、ＣＰＵ１０１は、ｔ３のタイミングにおいて、ネットワークＩ/Ｆ１０６ａの移行フラグに「ＯＮ」を設定する。この時点で、すべてのネットワークＩ/Ｆ１０６ａ〜１０６ｃの移行フラグが「ＯＮ」となる。
この時点で、ＣＰＵ１０１は、未受信パケットの有無を確認する。図６（ａ）に示す受信例においては、すべてのパケットを受信しているので、ＣＰＵ１０１は、未受信パケットは存在しないと判定し、リオーダ処理を行う。
【００２９】
一方で、図６（ｂ）に示す受信例においては、ネットワークＩ/Ｆ１０６ｂにおいて、シーケンス番号９、サブフローシーケンス番号３のパケットが損失している。このため、ｔ４のタイミングにおいて、ＣＰＵ１０１は、送信装置１１に対し、再送要求を送信する。ここで、ｔ４は、ｔ２のタイミングよりも前のタイミングである。
さらに、すべての移行フラグが「ＯＮ」となるタイミング（ｔ３）においては、再送要求したシーケンス番号９のメディアデータパケットを受信していない。このため、図６（ｂ）に示す受信例においては、ｔ３のタイミングでは、リオーダ処理は開始されない。そして、ｔ５のタイミングにおいて、再送要求にかかるシーケンス番号９のメディアデータパケットを受信すると、ＣＰＵ１０１は、このタイミングにおいて、オーダ処理を開始する。
【００３０】
以上のように、本実施形態にかかる受信装置は、すべてのネットワークＩ/Ｆ１０４ａ〜１０４ｃにおいて、データユニットの移行が検知された場合に、リオーダ処理を行う。これにより、受信装置は、データユニット単位で高速なリオーダ処理及びデコード処理を行うことができる。すなわち、受信装置は、マルチパス伝送におけるリオーダタイミングを最適化し、メディアデータの再生のリアルタイム性や再生品質を向上させることができる。
【００３１】
なお、第１の実施形態にかかる受信装置１０の第１の変更例について説明する。第１の変更例としては、受信装置は、リオーダ処理の前に、再送要求を送信することにより、未受信パケットを受信する処理を行わなくともよい。この場合、受信装置１０は、未受信パケットが存在する状態で、リオーダ処理を開始する。そして、受信装置１０は、リオーダ処理後に、未受信パケットの再送要求を送信し、受信パケットを受信してもよい。
【００３２】
また、第２の変更例としては、受信装置１０は、Ｓ４０９において、すべてのネットワークＩ/Ｆの移行フラグではなく、一部のネットワークＩ/Ｆの移行フラグが「ＯＮ」の場合に、リオーダ処理を開始してもよい。一部のネットワークＩ/Ｆとしては、例えば、アクティブパスに対応するネットワークＩ/Ｆであってもよい。この場合、受信装置１０は、送信装置１１から予めアクティブパス通知を受信しておくこととする。
なお、アクティブパスは、送信装置１１のネットワーク接続時に静的に決定されてもよく、また、他の例としては、アクティブパスは、ネットワークの帯域や遅延に応じて、同的に変更されてもよい。この場合には、受信装置１０は、変更される度に、アクティブパスの通知を受信するものとする。
また、他の例としては、一部のネットワークＩ/Ｆは、受信装置１０において、予め設定されているものとしてもよい。
【００３３】
また、第３の変更例としては、本実施形態においては、パケットのシーケンス番号やサブフローシーケンス番号として、Multipath  RTPを例に説明したが、これに限定されるものではなく、他のプロトコルでもよいし、独自プロトコルでもよい。
【００３４】
（第２の実施形態）
次に、第２の実施形態にかかる受信装置１０について説明する。第２の実施形態にかかる受信装置１０は、境界情報としてのマーカビット「１」を示すデータユニットの終端パケットのシーケンス番号と、受信パケットのシーケンス番号との比較により、データユニットの移行を検知する。
図７は、第２の実施形態にかかる受信装置１０による、受信処理を示すフローチャートである。ここでは、第１の実施形態にかかる受信処理と異なる処理について説明する。なお、第１の実施形態にかかる受信処理と同一の処理には、同一の番号を付している。
【００３５】
Ｓ４０５において、対象受信パスの移行フラグが「ＯＦＦ」の場合には（Ｓ４０５でＮｏ）、ＣＰＵ１０１は、処理をＳ７０１へ進める。Ｓ７０１において、ＣＰＵ１０１は、マーカビットのＯＮ／ＯＦＦを検知する。マーカビットが「ＯＮ」の場合には（Ｓ７０１でＹｅｓ）、ＣＰＵ１０１は、処理をＳ７０２へ進める。マーカビットが「ＯＦＦ」の場合には（Ｓ７０１でＮｏ）、ＣＰＵ１０１は、処理をＳ７０３へ進める。
Ｓ７０２において、ＣＰＵ１０１は、マーカビットが「ＯＮ」の受信パケットのシーケンス番号を最終シーケンス番号として特定し、最終シーケンス番号をＲＡＭ１０３等の記憶部に格納する。なお、最終シーケンス番号は、受信パケットを受信したネットワークＩ/Ｆ（受信パス）を含むすべての受信パスのプログラムモジュールにおいて参照できるものとする。
ここで、最終シーケンス番号が付されたパケットは、データユニットにおいて最後尾に配列された最終パケットであり、Ｓ７０２の処理は、最終パケットの配列順番（シーケンス番号）を特定する特定処理の一例である。
【００３６】
Ｓ７０３において、ＣＰＵ１０１は、受信パケットのシーケンス番号と、最終シーケンス番号を比較する。受信パケットのシーケンス番号が、最終シーケンス番号に比べて大きい場合には（Ｓ７０３でＹｅｓ）、ＣＰＵ１０１は、処理をＳ４０８へ進める。受信パケットのシーケンス番号が、最終シーケンス番号以下である場合には（Ｓ７０３でＮｏ）、ＣＰＵ１０１は、処理をＳ４１１へ進める。
また、Ｓ４１３の処理の後、Ｓ７０４において、ＣＰＵ１０１は、最終シーケンス番号を初期化する。なお、この初期化はＳ７０３処理において、既にリオーダ処理が開始しているデータユニットの最終シーケンス番号と、受信パケットのシーケンス番号が比較されるのを防ぐための処理である。
最終シーケンス番号の初期値は、受信装置１０の受信対象のデータにおける理論的な最大値であってもよい。また、他の例としては、Ｓ７０４において、ＣＰＵ１０１は、最終シーケンス番号を初期化するのにかえて、最終シーケンス番号を参照できない状態にしてもよい。Ｓ７０４の処理の後、ＣＰＵ１０１は、処理をＳ４０１へ進める。
なお、第２の実施形態にかかる受信装置１０のこれ以外の構成及び処理は、第１の実施形態にかかる受信装置１０の構成及び処理と同様である。
【００３７】
このように、第２の実施形態にかかる受信装置１０は、データユニットの終端パケットのシーケンス番号を受信パケットのシーケンス番号との比較により、各受信パスにおけるデータユニットの移行を検知することができる。このように、受信装置は、データユニット単位で高速なリオーダ処理及びデコード処理を行うことができる。すなわち、受信装置は、マルチパス伝送におけるリオーダタイミングを最適化し、メディアデータの再生のリアルタイム性や再生品質を向上させることができる。
【００３８】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３９】
以上、上述した各実施形態によれば、マルチパス伝送におけるリオーダタイミングを最適化し、メディアデータの再生のリアルタイム性や再生品質を向上させることができる。
【００４０】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４１】
１０  受信装置、１１  送信装置、１０１  ＣＰＵ、１０２  ＲＯＭ、１０３  ＲＡＭ、１０４ａ〜１０４ｃ  ネットワークＩ/Ｆ、１０７  デコーダ部、１０８  映像処理部、１０９  ディスプレイ、１１０  バス
【図１】
2015012580.tif 000003
【図２】
2015012580.tif 000004
【図３】
2015012580.tif 000005
【図４】
2015012580.tif 000006
【図５】
2015012580.tif 000007
【図６】
2015012580.tif 000008
【図７】
2015012580.tif 000009