【文献】
藤本 章宏 他,マルチサーバ配信における高信頼Inter/Intra−Stream FEC方式,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2010年,第J93-B巻第2号,p.379-389
(58)【調査した分野】(Int.Cl.,DB名)
前記冗長パケットは、複数の行及び列に構成された各前記メディアパケットに前記行毎及び列毎にそれぞれXOR演算処理が施されて生成されたパケットである、請求項1〜4のいずれか1項に記載の復号装置。
【発明を実施するための形態】
【0013】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0014】
なお、説明は以下の順序で行うものとする。
1.本開示の一実施形態
1.1.2次元のFEC符号方式の概要
1.2.システム構成例
1.3.機能構成例
1.4.動作例
2.まとめ
【0015】
<1.本開示の一実施形態>
[1.1.2次元のFEC符号方式の概要]
まず、本開示の一実施形態において用いられるFEC符号方式、特に、2次元のFEC符号方式に関する技術の概要について説明する。
【0016】
上述したように、インターネットまたはその他の伝送路を経由して、マルチメディアデータを低遅延かつ高効率に伝送するという需要が高まっている。ネットワーク経由で伝送されるマルチメディアデータとしては、例えば遠隔制御されるカメラ、ゲーム、遠隔医療等がある。
【0017】
マルチメディアデータの伝送方法の一つであるストリーム型伝送には、様々な技術が必要となる。ストリーム型伝送方式に適したインターネット技術としては、例えばIETF RFC3550で規定されているRTP(Realtime Transport Protocol)が主に利用される。
【0018】
RTPは実時間のデータ転送を保証しているものではない。パケット配送の優先度や設定、管理などは、RTPが提供するトランスポートサービスの範疇ではないため、メディアRTPパケットは他のパケットと同様に、配送遅延やパケット損失が起きる可能性がある。なお、メディアRTPパケットとは、コンテンツデータのストリームを構成するRTPパケットのことを言う。このような配送遅延やパケット損失が起こっても、受信側は期待する時間内に到着したパケットだけを利用してデータを再生することが可能である。これは、映像や音声データが多少のデータ損失があったとしても、ある程度再生できるからである。
【0019】
なお、遅延配送されたパケットやエラーの発生したパケットは、受信側でそのまま破棄される。つまり、パケット損失やエラーにより高品質なデータを配信しても、受信側で十分に再生されない問題点もある。特に、有線区間で10
−5、無線区間で10
−3以上のエラーがあるといわれている中では、配信するメディアの品質を保持する点でいえば、RTPをそのまま利用するのでは信頼性が低い。
【0020】
このような観点から、ストリーム型伝送方式において、データ転送に信頼性が高いTCPで、再送要求および再送パケット送信を行わせる方法がある。しかし、TCPはエラーには強いが、スループットが低く、遅延が大きいため、再送しても再生時間に間に合わない可能性もある。
【0021】
RTP/UDPはネットワーク伝送の映像品質を保証しないために、QoS(Quality of Service)制御が必要となる。QoS技術とは、ネットワーク状況(パケットロス率や伝送遅延)に応じて、安定した伝送品質と高いユーザー体感品質を実現する技術である。RTPを用いてデータ転送の信頼性を向上させるQoS技術の例として、自動再送方式、いわゆるARQ(Auto Repeat reQuest)方式、前方誤り訂正符号化方式(いわゆるFEC方式)といった手法がある。
【0022】
ARQ方式は、メディアRTPパケットのシーケンス番号を利用して損失したパケットを検知し、受信端末から送信端末へ損失パケットの再送を要求する方式である。またFEC方式は、隣接する(シーケンス番号が連続する)複数個のパケットを一つのFECブロックとして、XOR(eXclusive OR)計算を用いたり、Reed−Solomon(RS)符号等の誤り訂正符号を用いたりして、冗長符号化を行う方式である。
【0023】
図1は、FEC方式の概要を示す説明図である。
図1に示したように、FEC方式は、送信側で複数のデータパケット(
図1では1〜4で示したパケット)から1以上の冗長パケット(
図1ではF1及びF2で示したパケット)を生成して送信し、受信側でデータパケットに欠落があることが分かれば(例えば2番のパケットに欠落があることが分かれば)、送信側で生成された冗長パケットを用いてデータパケットを回復する方式である。
【0024】
XOR計算を用いるFEC方式は、パケット中の各ビットのXOR計算により冗長パケットを生成するものである。パケット中の各ビットのXOR計算により冗長パケットを生成することで、FECブロック中、1個のパケットロスまで回復可能になる。なおFECブロックとは、冗長パケット生成に使用するメディアRTPパケットと冗長パケットで構成されるブロックのことである。
【0025】
図2は、XORベースのFEC符号方式における冗長パケットの生成方法を示す説明図である。
図2には、説明を簡単にするために、1パケットが6ビットからなるメディアRTPパケット1〜3を用いて冗長パケットを生成する例が示されている。
図2に示したように、XORベースのFEC符号方式における冗長パケットは、各パケットの各ビットのXORを取ることによって生成される。
【0026】
図3は、メディアRTPパケット及び冗長パケットからなるFECブロックが伝送されていく様子を示す説明図である。
図3には、3つのメディアRTPパケットと、その3つのメディアRTPパケットに対するXORの計算で生成される冗長パケットとの組からなるFECブロックが順次伝送される様子が示されている。
【0027】
XORベースのFEC符号方式は、1次元及び2次元で利用される。XORベースのFEC符号方式を使ったFEC方式は、SMPTE(Society of Motion Picture and Television Engineers)2022で標準化されている。
【0028】
図4は、1次元及び2次元でのXORベースのFEC符号方式による冗長パケットの生成方法を示す説明図である。1次元でのXORベースのFEC符号方式による冗長パケットは、
図4に示したように複数のメディアRTPパケットをn行m列に並べた際に、1つの方向についてのみXORの計算で生成される。
図4では、1〜16がメディアRTCパケットを意味し、C1〜C4が冗長パケットを意味する。
【0029】
一方、2次元でのXORベースのFEC符号方式による冗長パケットは、
図4に示したように複数のメディアRTPパケットをn行m列に並べた際に、2つの方向についてそれぞれXORの計算で生成される。すなわち2次元でのXORベースのFEC符号方式による冗長パケットは、(n+m)個生成されることになる。
図4では、1〜16がメディアRTCパケットを意味し、C1〜C4及びR1〜R4が冗長パケットを意味する。
【0030】
映像伝送には、主に2次元でのXORベースのFEC符号方式が用いられる。従って、以下で説明する本開示の一実施形態では、2次元のXORベースのFEC符号方式が用いられることを前提とする。
【0031】
XORベースのFEC符号方式では、パケットの欠落が発生した際に、1回の回復処理で回復できるのは1つのパケットだけである。言い換えれば、XOR演算の対象となった複数のメディアRTCパケットのうち、2つ以上のメディアRTCパケットに誤りが発生した場合には復元することができなくなる。
【0032】
受信側では、メディアRTPパケットを2次元に並べたと想定して、縦方向または横方向のいずれか一方向で冗長パケットを用いた回復処理を実行する。そして受信側では、すべての欠落が回復できなければ、今度は異なる方向での回復処理を実行する。すなわち、受信側ではまず縦方向での回復処理を実行し、すべての欠落が回復できなければ、今度は横方向での回復処理を実行する。そして受信側では、回復できるパケットが無くなるまで、方向を入れ替えて回復処理を実行する。
【0033】
図5は、2次元でのXORベースのFEC符号方式によるパケットの回復について示す説明図である。
図5では説明を簡単にするために、3行3列のメディアRTPパケット及び3行3列のメディアRTPパケットから縦方向及び横方向に冗長パケットを生成した場合が示されている。
【0034】
図5の一番左に示したように、3番、4番、5番、6番、9番のメディアRTPパケットが欠落して受信側に到達したとする。受信側では、縦方向または横方向のいずれか一方向で冗長パケットを用いた回復処理を実行し、すべての欠落が回復できなければ、今度は異なる方向での回復処理を実行する。
【0035】
図5に示した例では、受信側は、まず横方向の冗長パケットを用いた回復処理を実行して3番及び9番のパケットを回復し、続いて縦方向の冗長パケットを用いた回復処理を実行して4番、5番及び6番のパケットを回復する。
【0036】
図5に示した例では、横方向及び縦方向での2回の回復処理を実行することで全ての欠落したパケットを回復することが出来た。しかし、実際には回復処理を何回実行すれば完全に回復できるのかは事前に把握することは出来ない。また欠落のパターンによっては欠落したパケットを完全に回復できない場合もある。具体的には、
図5を用いて説明すると、5番のメディアRTPパケットが欠落している場合に、縦方向の冗長パケットC2と、横方向の冗長パケットR2の両方が欠落していれば、その5番のメディアRTPパケットは回復できない。
【0037】
この2次元でのXORベースのFEC符号方式は、欠落したパケットの回復処理が重く、そのためにシステムコストが高くなり、また欠落したパケットの回復に時間が掛かっていた。
【0038】
そこで本件開示者は、XORベースのFEC符号方式において、受信側で回復処理に掛かる時間を短くしつつも、受信側で最大の回復性能が出せるようにする技術について検討した。そして以下で説明するように、本件開示者は、XORベースのFEC符号方式において、受信側でパケットの欠落状況を判断することで、受信側での回復処理に掛かる時間を短くしつつも、受信側で最大の回復性能が出せるようにすることが可能な技術を考案するに至った。
【0039】
以上、本開示の一実施形態において用いられる技術の概要について説明した。続いて、本開示の一実施形態に係る伝送システムの構成例について説明する。
【0040】
[1.2.システム構成例]
図6は、本開示の一実施形態に係る伝送システムの構成例を示す説明図である。以下、
図6を用いて、本開示の一実施形態に係る伝送システムの構成例について説明する。
【0041】
図6に示した本開示の一実施形態に係る伝送システムは、送信装置10と、受信装置20とを含む。送信装置10と受信装置20とは、それぞれネットワーク1に接続されていて、ネットワーク1を通じて相互に通信することができる。
【0042】
送信装置10は、例えば撮像装置11で撮像された画像をキャプチャするキャプチャ部12と、キャプチャ部12がキャプチャした画像データをエンコードするエンコーダ13と、キャプチャ部12がキャプチャした画像データまたはエンコーダ13がエンコードしたデータをメディアRTPパケット化するパケタイズ部14と、前方誤り訂正処理(FEC)を行なうFEC部15と、データを受信装置20へ送信する送信部16と、を含んで構成される。
【0043】
キャプチャ部12は、送信装置10に送られてくるビデオ信号をラインブロック単位でキャプチャする。キャプチャ部12は、ビデオ信号をラインブロック単位でキャプチャすると、キャプチャした信号をエンコーダ13に送るか、エンコードしない場合はパケタイズ部14に直接送る。
【0044】
エンコーダ13は、キャプチャ部12によってキャプチャされたラインブロック単位の信号を所定の方式でエンコードする。例えば、エンコーダ13は、上述の特許文献1に開示されているような、動画像の各ピクチャの数ライン毎を一つの圧縮符号化ブロックとしてウェーブレット変換による圧縮を行う方式によって、ラインブロック単位の信号をエンコードしてもよいが、本開示のエンコード方式は係る例に限定されるものではない。上述の想定ネットワークシステムにおいて適用できるエンコード方式であれば、エンコーダ13は、任意のエンコード方式によってラインブロック単位の信号をエンコードできる。エンコーダ13は、エンコード後のデータをパケタイズ部14に送る。
【0045】
パケタイズ部14は、キャプチャ部12がキャプチャした画像データまたはエンコーダ13によってエンコードされたデータをメディアRTPパケット化する。メディアRTPパケットは、本開示のメディアパケットの一例である。具体的には、パケタイズ部14は、エンコード後のデータにRTPヘッダを付加することで、エンコーダ13によってエンコードされたデータをメディアRTPパケット化する。パケタイズ部14は、生成したメディアRTPパケットをFEC部15に送る。
【0046】
FEC部15は、パケタイズ部14が生成したメディアRTPパケットをFEC符号化する。FEC部15は、パケタイズ部14が生成したメディアRTPパケットをFEC符号化すると、符号化後のデータを送信部16へ送る。本実施形態では、FEC部15は、上述の2次元でのXORベースのFEC符号方式によって冗長パケットを生成する。
【0047】
FEC部15は、予め決められたFECブロックのサイズに基づいて(例えば1つのFECブロックはメディアRTPパケットを縦4つ、横4つ並べて構成するものであると決定する)、パケタイズ部14が生成したメディアRTPパケットをFECブロックのサイズ分溜めて、XOR方式で縦方向及び横方向で冗長パケットを生成する。
【0048】
送信部16は、FEC部15が符号化したデータを、ネットワーク1を通じて受信装置20へ向けて送信する。
【0049】
受信装置20は、ネットワーク1を通じて送信装置10から送信されたデータを受信する受信部21と、前方誤り訂正処理により符号化されたデータを復号するFEC復号部22と、FEC復号部22が復号したデータをデパケタイズするデパケタイズ部23と、デパケタイズ部23でデパケタイズされた後のデータをデコードするデコーダ24と、デパケタイズ部23でデパケタイズされた後のデータまたはデコーダ24がデコードした後のデータをディスプレイ26に出力する表示処理部25と、を含んで構成される。本実施形態では、FEC復号部22は、パケットの欠落が発生していれば、2次元でのXORベースのFEC符号方式によって生成された冗長パケットを用いてパケットを回復する。
【0050】
受信部21は、送信装置10からネットワーク1を通じて送信されたデータを受信する。受信部21は、送信装置10から送信されたデータを受信すると、受信したデータをFEC復号部22に送る。
【0051】
FEC復号部22は、受信部21が受信したデータを用いてFEC方式による復号処理を行なう。FEC復号部22によって、FEC方式による復号処理を行なわれたデータは受信部21に一度返された後、デパケタイズ部23に送られる。FEC復号部22は、FECブロックのサイズに合わせてメディアRTPパケット及び冗長パケットを配置する。FEC復号部22は、パケットが受信出来ていない場合はロスパケットとみなす。FEC復号部22は、ロスパケットの判断を、例えばパケットのシーケンス番号に基づいて判断する。FEC復号部22は、所定の容量のバッファを設け、整列されていないパケットをシーケンス番号に基づいて整列してもよい。
【0052】
そしてFEC復号部22は、メディアRTPパケットに欠落があれば、メディアRTPパケット及び冗長パケットを用いた欠落の回復処理を実行する。本実施形態では、2次元のXORベースのFEC符号方式によって冗長パケットが生成されているので、FEC復号部22は、メディアRTPパケットに欠落があれば、正常に受信できたメディアRTPパケット及び冗長パケットを順次XOR演算して、欠落したメディアRTPパケットを回復させる。
【0053】
デパケタイズ部23は、復号後のメディアRTPパケットデータを再構成する処理を実行する。デパケタイズ部23は、復号後のメディアRTPパケットデータを再構成すると、再構成後のデータをデコーダ24へ(送信装置10でデコードされていない場合は表示処理部25へ)送る。
【0054】
デコーダ24は、デパケタイズ部23から送られてきた再構成後のデータを復号する処理を実行する。デコーダ24は、デパケタイズ部23から送られてきた再構成後のデータを復号すると、復号後のデータを表示処理部25へ送る。
【0055】
表示処理部25は、デパケタイズ部23でデパケタイズされた後のデータまたはデコーダ24がデコードした後のデータをディスプレイ26に出力する処理を実行する。例えば表示処理部25は、デパケタイズ部23でデパケタイズされた後のデータまたはデコーダ24がデコードした後のデータを、ビデオ出力IF(ビデオOUT)経由でディスプレイ26に出力する。
【0056】
図6に示した伝送システムは、送信装置10、受信装置20での一連の処理(画像のキャプチャ、エンコード・デコード、FEC処理及び表示処理)をピクチャ(フィールド・フレーム)単位で行う。そして
図6に示した伝送システムは、数ライン毎にまとめたラインブロックに1つのピクチャを分割し、これら一連の処理を並列化することにより、低遅延伝送を実現できる。さらに送信装置10は、ラインブロック単位で処理を行う場合には、パイプライン化された処理を実行してもよい。
【0057】
また本実施形態では、受信装置20のFEC復号部22での処理において、パケットの欠落状況を判断して、適切な欠落パケットの回復処理を実行する。パケットの欠落状況を判断して、適切な欠落パケットの回復処理を実行することで、受信装置20は、欠落パケットの回復処理に掛かる時間を短くしつつも、最大の回復性能を出すことが可能となる。
【0058】
図7は、本開示の一実施形態に係る伝送システムの詳細な構成例を示す説明図である。以下、
図7を用いて、本開示の一実施形態に係る伝送システムの詳細な構成例について説明する。
【0059】
図7に示した伝送システムでは、
図6に示した受信装置20にFEC復号決定部27が追加されている。従ってここではFEC復号決定部27の処理について説明する。
【0060】
FEC復号決定部27は、受信部21が受信したパケットの欠落状況を判断して、適切な欠落パケットの回復処理を決定する。FEC復号決定部27での具体的な処理は後に詳述するが、FEC復号決定部27は、メディアRTPパケット及び冗長パケットを2次元に並べて欠落状況を確認し、回復処理を最初に行なう方向を第1方向として決定する。
【0061】
具体的には、FEC復号決定部27は、メディアRTPパケット及び冗長パケットを2次元に並べて欠落数が1つの行の数と列の数とを比較して行と列のどちらが多いかを判断する。そしてFEC復号決定部27は、欠落数が多い方を第1方向として決定するよう、メディアRTPパケットの回復処理の際の手順を決定する。
【0062】
FEC復号部22は、FEC復号決定部27が決定した手順に従って回復処理を実行する。FEC復号部22は、欠落したメディアRTPパケットの回復の際に欠落のパターンを考慮する場合に、まず第1方向についてメディアRTPパケットの回復処理を実行し、全ての欠落が回復していなければ、続いて第1方向に直交する第2方向についてメディアRTPパケットの回復処理を実行する。すなわちFEC復号部22は、第1方向、第2方向の2回のメディアRTPパケットの回復処理を実行する。FEC復号部22は、メディアRTPパケットの回復処理として、上述したように正常に受信できたメディアRTPパケット及び冗長パケットを順次XOR演算する。
【0063】
図7に示した受信装置20は、FEC復号決定部27がメディアRTPパケット及び冗長パケットを2次元に並べて欠落状況を確認し、回復処理を最初に行なう方向を決定することで、本実施形態に係る受信装置20は、欠落パケットの回復処理に掛かる時間を短くしつつも、最大の回復性能を出すことが可能となる。
【0064】
以上、
図7を用いて、本開示の一実施形態に係る伝送システムの詳細な構成例について説明した。続いて、本開示の一実施形態に係る受信装置20の動作例について説明する。
【0065】
[1.3.動作例]
図8は、本開示の一実施形態に係る受信装置20の動作例を示す流れ図である。以下、
図8を用いて本開示の一実施形態に係る受信装置20の動作例について説明する。
【0066】
受信装置20は、送信装置10からデータを受信する際に、まず処理に用いられる変数の初期化等の、予め定められた初期化処理を実行する(ステップS101)。ステップS101の初期化処理が完了すると、続いて受信装置20は、送信装置10からメディアRTPパケット及び冗長パケットを受信部21で受信し(ステップS102)、受信したメディアRTPパケット及び冗長パケットで1つのFECブロックをFEC復号部22で構成する(ステップS103)。
【0067】
続いて受信装置20は、FECブロックを構成するメディアRTPパケットに欠落が発生している場合、その欠落の回復処理を実行する回数(回復回数)を制限したいかどうか判断する(ステップS104)。ステップS104の判断は、例えばFEC復号決定部27が実行する。受信装置20は、回復回数を制限したいかどうかの判断の際に、例えば予め登録されている、回復回数を制限するかどうかの設定を参照する。
【0068】
上記ステップS104の判断の結果、回復回数を制限したくないと判断した場合は(ステップS104、No)、受信装置20は、欠落したメディアRTPパケットが回復できないケースが出るまで、方向を横、縦、横、・・・または縦、横、縦、・・・と1回毎に切り替えながら回復処理を実行する(ステップS105)。ステップS105の回復処理はFEC復号部22が実行する。
【0069】
一方、上記ステップS104の判断の結果、回復回数を制限したいと判断した場合は(ステップS104、Yes)、受信装置20は、続いて欠落したメディアRTPパケットの回復の際に欠落のパターンを考慮するかどうかを判断する(ステップS106)。ステップS106の判断は、例えばFEC復号決定部27が実行する。受信装置20は、欠落したパケットの回復の際に欠落のパターンを考慮するかどうかの判断の際に、例えば、予め登録されている設定(欠落のパターンを考慮するかどうかの設定)を参照する。
【0070】
上記ステップS106の判断の結果、欠落したメディアRTPパケットの回復の際に欠落のパターンを考慮しないと判断した場合は(ステップS106、No)、受信装置20は、欠落したメディアRTPパケットの回復処理として、横方向、縦方向、横方向の順に、または縦方向、横方向、縦方向の順に、計3回までの回復処理を実行する(ステップS107)。ステップS107の回復処理は、FEC復号部22が実行する。
【0071】
一方、上記ステップS106の判断の結果、欠落したメディアRTPパケットの回復の際に欠落のパターンを考慮すると判断した場合は(ステップS106、Yes)、続いて受信装置20は、メディアRTPパケット及び冗長パケットを2次元に並べたFECブロックの縦方向と横方向について、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算する(ステップS108)。ステップS108の計算は、例えばFEC復号決定部27が実行する。
【0072】
上記ステップS108で、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算すると、続いて受信装置20は、欠落数が1つの行の数と列の数とを比較して、どちらが多いかを判断し、多い方を第1方向として決定する(ステップS109)。ステップS109の判断は、例えばFEC復号決定部27が実行する。
【0073】
上記ステップS109の判断の結果、欠落数が1つの行の数の方が多ければ、受信装置20は、欠落したメディアRTPパケットの回復処理として、第1方向として横方向、第1方向に直交する第2方向として縦方向の順に計2回までの回復処理を実行するような回復手順を決定し、決定した回復手順に従って回復処理を実行する(ステップS110)。
【0074】
一方、上記ステップS109の判断の結果、欠落数が1つの列の数の方が多ければ、受信装置20は、欠落したメディアRTPパケットの回復処理として、第1方向として縦方向、第1方向に直交する第2方向として横方向の順に計2回までの回復処理を実行するような回復手順を決定し、決定した回復手順に従って回復処理を実行する(ステップS111)。ステップS110またはステップS111の回復処理は、FEC復号部22が実行する。
【0075】
なお、上記ステップS109の判断の結果、欠落数が1つの行の数と列の数が同じであれば、受信装置20は、任意の方向を第1方向として回復処理の手順を決定してもよい。すなわち、上記ステップS109の判断の結果、欠落数が1つの行の数と列の数が同じであれば、受信装置20は、横方向、縦方向のどちらから先に回復処理を実行してもよいが、その場合も回復処理は計2回までとする。もちろん、第1方向での回復処理で全ての欠落が回復出来れば、受信装置20は、第2方向での回復処理を行なう必要はない。
【0076】
図9〜
図12は、本実施形態に係る受信装置20での欠落パケットの回復処理を説明する説明図である。
図9〜
図12には、1つのFECブロックを構成するメディアRTPパケットが16個であり、そのメディアRTPパケットを4行4列に並べ、各行と各列においてXORを計算することで冗長パケットを生成した場合の例が示されている。
【0077】
図9〜
図12において、0番から3番、5番から8番、10番から13番、15番から18番がメディアRTPパケットであり、4番、9番、14番、19番が、横方向での各メディアRTPパケットのXOR演算で生成される冗長パケットであり、20番から23番が、縦方向での各メディアRTPパケットのXOR演算で生成される冗長パケットである。
【0078】
図9は、受信装置20にメディアRTPパケット及び冗長パケットが到達した状態の一例を示したものである。
図9では、6番、8番、12番のメディアRTPパケット及び21番の冗長パケットが欠落している状態が示されている。この状態でメディアRTPパケット及び冗長パケットが到達した場合に、受信装置20は、上記ステップS108において、FECブロックの縦方向と横方向について、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算する。
図10は、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算した様子を示したものである。
【0079】
図10に示したように、この例ではメディアRTPパケット及び冗長パケットの欠落数が1つの行は1つであり、欠落数が1つの列は2つである。従って受信装置20は、欠落したメディアRTPパケットの回復処理として、縦方向、横方向の順に計2回までの回復処理を実行する。
【0080】
図11は、縦方向に回復処理(XOR演算)を実行した後のパケットの欠落の状態を示したものである。受信装置20は、縦方向に回復処理(XOR演算)を実行すると、8番及び12番のメディアRTPパケットの欠落を回復できる。8番のメディアRTPパケットの欠落は、3番、13番、18番、23番のパケットについて順次XOR演算を実行することで回復することが出来る。また12番のメディアRTPパケットの欠落は、2番、7番、17番、22番のパケットについて順次XOR演算を実行することで回復することが出来る。
【0081】
そして
図12は、
図11のように8番及び12番のメディアRTPパケットの欠落を回復した後に、横方向に回復処理(XOR演算)を実行した後のパケットの欠落の状態を示したものである。受信装置20は、縦方向に回復処理を実行した後に、横方向に回復処理を実行すると、6番のメディアRTPパケットの欠落を回復できる。6番のメディアRTPパケットの欠落は、5番、7番、8番、9番のパケットについて順次XOR演算を実行することで回復することが出来る。従って受信装置20は、縦方向、横方向の順に計2回までの回復処理を実行することで、全てのメディアRTPパケットの欠落を回復することができる。
【0082】
メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算せずに、例えば最初に横方向の回復処理(XOR演算)を実行するように受信装置20が設定されていた場合の例を示す。
【0083】
図13は、本実施形態に係る受信装置20での欠落パケットの回復処理を説明する説明図である。
図13において、0番から3番、5番から8番、10番から13番、15番から18番がメディアRTPパケットであり、4番、9番、14番、19番が、横方向での各メディアRTPパケットのXOR演算で生成される冗長パケットであり、20番から23番が、縦方向での各メディアRTPパケットのXOR演算で生成される冗長パケットである。
【0084】
図9で示したように6番、8番、12番のメディアRTPパケット及び21番の冗長パケットが欠落している状態でパケットが受信装置20に到達した場合、最初に横方向の回復処理(XOR演算)を実行すると、
図13に示したように、12番のメディアRTPパケットしか回復することが出来ない。
【0085】
受信装置20は、最初に横方向の回復処理を実行した後に、続いて縦方向に回復処理を実行すると、
図11に示したように8番のメディアRTPパケットを回復することが出来る。そして受信装置20は、続いてさらに横方向に回復処理を実行すると、
図12に示したように6番のメディアRTPパケットの欠落を回復できる。従って受信装置20は、最初に横方向の回復処理を実行するように設定されていると、横方向、縦方向、横方向の順に計3回までの回復処理を実行しなければ、全てのメディアRTPパケットの欠落を回復することができない。
【0086】
すなわち、本開示の一実施形態に係る受信装置20は、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算して、欠落数が多い方から回復処理を実行することで、欠落数が1つの行または列の数を計算せずに回数処理を実行する場合に比べ、回復処理の回数を少なくすることが可能となる。
【0087】
上記ステップS105、S107、S110またはS111でそれぞれ回復処理を行なうと、受信装置20は、回復処理を実行した後の1つのFECブロックをデコーダ24または表示処理部25に渡す(ステップS112)。そして受信装置20は、送信装置10からデータが送信され続ける限り、上述の一連の処理を継続する。
【0088】
以上、
図8を用いて本開示の一実施形態に係る受信装置20の動作例について説明した。本開示の一実施形態に係る受信装置20は、上述した一連の動作を実行することで、パケットを2次元に並べたFECブロックの縦方向と横方向について、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数の多い方から回復処理を実行し、欠落パケットの回復処理に掛かる時間を短くしつつも、最大の回復性能を出すことが出来る。
【0089】
<2.まとめ>
以上説明したように本開示の一実施形態によれば、パケットの欠落状況を判断して、適切な欠落パケットの回復処理を実行する受信装置20が提供される。本開示の一実施形態に係る受信装置20は、欠落パケットの回復処理に先立って、パケットを2次元に並べたFECブロックの縦方向と横方向について、メディアRTPパケット及び冗長パケットの欠落数が1つの行または列の数を計算する。そして本開示の一実施形態に係る受信装置20は、欠落数が多い方から回復処理を実行する。
【0090】
パケットの欠落状況を判断して、適切な欠落パケットの回復処理を実行することで、本開示の一実施形態に係る受信装置20は、欠落パケットの回復処理に掛かる時間を短くしつつも、最大の回復性能を出すことが可能となる。
【0091】
本明細書の各装置が実行する処理における各ステップは、必ずしもシーケンス図またはフローチャートとして記載された順序に沿って時系列に処理する必要はない。例えば、各装置が実行する処理における各ステップは、フローチャートとして記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
【0092】
また、各装置に内蔵されるCPU、ROMおよびRAMなどのハードウェアを、上述した各装置の構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供されることが可能である。また、機能ブロック図で示したそれぞれの機能ブロックをハードウェアまたはハードウェア回路で構成することで、一連の処理をハードウェアまたはハードウェア回路で実現することもできる。
【0093】
また上述の説明で用いた機能ブロック図で示したそれぞれの機能ブロックの一部又は全部は、たとえばインターネット等のネットワークを介して接続されるサーバ装置で実現されてもよい。また上述の説明で用いた機能ブロック図で示したそれぞれの機能ブロックの構成は、単独の装置で実現されてもよく、複数の装置が連携するシステムで実現されても良い。複数の装置が連携するシステムには、例えば複数のサーバ装置の組み合わせ、サーバ装置と端末装置との組み合わせ等が含まれ得る。
【0094】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0095】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0096】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
2次元でのXORベースのFEC符号方式によって生成されるメディアパケット及び冗長パケットの組からなるデータにおいて、パケットの欠落パターンを考慮して欠落パケットを回復して復号する手順を決定する復号決定部と、
前記復号決定部が決定した手順に基づいて欠落パケットの回復を実行する復号部と、
を備える、復号装置。
(2)
前記復号決定部は、前記メディアパケット及び前記冗長パケットの中での欠落パケットが1つだけの行の数及び列の数を計算して、数が多い方の方向を第1方向として手順を決定する、前記(1)に記載の復号装置。
(3)
前記復号部は、前記復号決定部が決定した手順での前記第1方向の欠落パケットの回復及び前記第1方向と直交する第2方向の欠落パケットの回復を実行する、前記(2)に記載の復号装置。
(4)
前記復号決定部は、欠落パケットが1つだけの行の数と列の数とが同じ場合は任意の方向を第1方向として手順を決定する、前記(2)に記載の復号装置。
(5)
前記冗長パケットは、複数の行及び列に構成された各前記メディアパケットに前記行毎及び列毎にそれぞれXOR演算処理が施されて生成されたパケットである、前記(1)〜(4)のいずれかに記載の復号装置。
(6)
2次元でのXORベースのFEC符号方式によって生成されるメディアパケット及び冗長パケットの組からなるデータにおいて、パケットの欠落パターンを考慮して欠落パケットを回復して復号する手順を決定することと、
決定された手順に基づいて欠落パケットの回復を実行することと、
を含む、復号方法。
(7)
コンピュータに、
2次元でのXORベースのFEC符号方式によって生成されるメディアパケット及び冗長パケットの組からなるデータにおいて、パケットの欠落パターンを考慮して欠落パケットを回復して復号する手順を決定することと、
決定された手順に基づいて欠落パケットの回復を実行することと、
を実行させる、コンピュータプログラム。