JPWO2013114496A1 - 通信装置および通信方法 - Google Patents

通信装置および通信方法 Download PDF

Info

Publication number
JPWO2013114496A1
JPWO2013114496A1 JP2013556052A JP2013556052A JPWO2013114496A1 JP WO2013114496 A1 JPWO2013114496 A1 JP WO2013114496A1 JP 2013556052 A JP2013556052 A JP 2013556052A JP 2013556052 A JP2013556052 A JP 2013556052A JP WO2013114496 A1 JPWO2013114496 A1 JP WO2013114496A1
Authority
JP
Japan
Prior art keywords
data
packet
matrix
unit
redundant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013556052A
Other languages
English (en)
Inventor
哲郎 佐藤
哲郎 佐藤
友裕 今井
友裕 今井
美季 山田
美季 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2013556052A priority Critical patent/JPWO2013114496A1/ja
Publication of JPWO2013114496A1 publication Critical patent/JPWO2013114496A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

本通信装置としてのデータ送信装置100は、データパケットを生成するRTPデータパケット作成部112と、データパケットの並べ替えを行うデータパケット並べ替え処理部115と、並べ替えられたデータパケットおよびデータパケットに適用される行列データに基づいて、データパケットに対する冗長パケットを生成するFECデータ作成部118と、を備える。

Description

本開示は、通信装置および通信方法に関する。特に、データの誤りを訂正するために付加される冗長パケットのデータ量の削減のための技術に関する。
従来、データ伝送においては、伝送路におけるパケットロスの発生に対して、データを復元する技術が用いられている。すなわち、あらかじめデータ送信側で復元用の冗長パケットを作成し、オリジナルのデータパケットとあわせて送信する。受信側では、パケットロスが発生した場合に、冗長パケットを用いてオリジナルのデータパケットを復元する。これによりデータ伝送の信頼性が高まる。
このようなデータパケットの復元処理に関する技術として、FEC(Forward Error Correction:前方誤り訂正)を用いたRTP(Real−time Transport Protocol)ペイロードフォーマットが、RFC5109に規定されている(例えば、非特許文献1参照)。
また、LDPC(Low Density Parity Check)を用いたFECスキームが、RFC5170に規定されている(例えば、非特許文献2参照)。なお、LDPCはFECの1つであり、RFC5170には、行列を用いた演算方法(アルゴリズム)が記述されている。
また、H.264形式の映像データが格納されるRTPペイロードフォーマットが、RFC6184に規定されている(例えば、非特許文献3参照)。
非特許文献1〜非特許文献3に示された技術では、冗長パケットのデータ量の削減が困難であった。
本開示は、上記事情に鑑みてなされたものであって、冗長パケットのデータ量を削減可能な通信装置および通信方法を提供することを目的とする。
本開示の通信装置は、データパケットを生成するデータパケット生成部と、前記データパケットの並べ替えを行う並べ替え処理部と、前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記データパケットに適用される行列データに基づいて、前記データパケットに対する冗長パケットを生成する冗長パケット生成部と、を備える。
本開示によれば、冗長パケットのデータ量を削減可能である。
複数に分割されたオリジナルのデータパケットの構成例を示す模式図 冗長パケットの作成に用いる行列の構成例を示す模式図 図2に示した行列の説明に用いる各要素の番号および変数を示す模式図 従来の方法で図2に示した行列の1行目を用いて冗長パケット(FEC1)を作成することを示す模式図 従来の方法で図2に示した行列の2行目を用いて冗長パケット(FEC2)を作成することを示す模式図 送信側から受信側に送られるパケットを示す模式図 従来の方法で図2に示した行列の1行目を用いて、受信に失敗したデータパケットを復元することを示す模式図 本開示の第1の実施形態におけるデータ送信装置の構成例を示すブロック図 本開示の第1の実施形態におけるデータパケットの並べ替え処理を説明するための模式図 図9のStep2に関する行列とデータパケットとの対応関係を示す模式図 本開示の第1の実施形態における冗長パケットを作成する際のデータパケットと行列との関係の具体例を示す模式図 本開示の第1の実施形態におけるデータパケットの並べ替え処理の有無に対する冗長パケットの長さの変化例を示す模式図 本開示の第1の実施形態におけるRTPヘッダのフォーマットの一例を示す模式図 本開示の第1の実施形態におけるRTPヘッダの拡張ヘッダのフォーマットの一例を示す模式図 本開示の第1の実施形態におけるFECヘッダのフォーマットの具体例を示す模式図 本開示の第1の実施形態におけるデータ受信装置の構成例を示すブロック図 本開示の第1の実施形態におけるパケットの復元処理の具体例を示す模式図 本開示の第1の実施形態におけるデータパケットの並べ替え処理の有無によるデータ削減効果の違いに関する第1のシミュレーションの結果を示す模式図 本開示の第1の実施形態におけるデータパケットの並べ替え処理の有無によるデータ削減効果の違いに関する第2のシミュレーションの結果を示す模式図 本開示の第1の実施形態におけるデータ送信装置による主要な動作例を示すフローチャート 本開示の第1の実施形態におけるデータ受信装置による主要な動作例を示すフローチャート 本開示の第2の実施形態におけるデータ送信装置の構成例を示すブロック図 本開示の第2の実施形態におけるFECヘッダのフォーマットの第1例を示す模式図 本開示の第2の実施形態におけるFECヘッダのフォーマットの第2例を示す模式図 本開示の第2の実施形態におけるデータ受信装置の構成例を示すブロック図 本開示の第2の実施形態におけるデータ送信装置による主要な動作例を示すフローチャート 本開示の第3の実施形態におけるデータ送信装置の構成例を示すブロック図 本開示の第3の実施形態におけるデータ送信装置において行列の並べ替え処理が実施される行列の状態遷移の具体例を示す模式図 本開示の第3の実施形態におけるFECヘッダのフォーマットの具体例を示す模式図 本開示の第3の実施形態におけるデータ受信装置の構成例を示すブロック図 本開示の第3の実施形態におけるデータパケットの並べ替え処理および行列の並べ替え処理の有無によるデータ削減効果の違いに関するシミュレーションの結果を示す模式図 本開示の第3の実施形態におけるデータ送信装置による主要な動作例を示すフローチャート 本開示の第3の実施形態におけるデータ受信装置による主要な動作例を示すフローチャート 本開示の第4の実施形態におけるデータ送信装置の構成例を示すブロック図 本開示の第4の実施形態におけるFECヘッダのフォーマットの具体例を示す模式図 本開示の第4の実施形態におけるデータ受信装置の構成例を示すブロック図 本開示の第4の実施形態におけるデータ送信装置による主要な動作例を示すフローチャート 本開示の第1の実施形態におけるデータパケットの並べ替え処理の詳細な具体例を示すフローチャート 本開示の第3の実施形態における行列の並べ替え処理の詳細な具体例を示すフローチャート
本開示の実施形態について、図面を参照しながら以下に説明する。
(本開示の一形態を得るに至った経緯)
非特許文献1〜非特許文献3に基づく技術の概要について、図1〜図7を用いて以下に簡単に説明する。
図1は送信されるオリジナルのデータパケットの例を示している。Data1,Data2,Data3,Data4,Data5,Data6の6個のデータパケットがある。図1では、各パケットのデータ長が一定ではない場合を想定している。このオリジナルのデータパケットを用いて、冗長パケットを作成する。
図2は、冗長パケットを作成するために用いる行列を示している。行列の各要素は「1」または「0」のどちらかである。この行列を生成するためのルールが、非特許文献3に記載されている。送信側と受信側が同じ行列を持つこと、または生成することで、冗長パケットを用いてオリジナルのデータパケットを復元できる。
図3は、この行列の各要素および構成を説明するための図である。図3に示した行列について、A群とB群の行列に分けて説明する。B群の行列(B11、B12、・・・、B65、B66)は、行数と列数の等しい正方行列である。行方向位置を表す変数xと列方向位置を表す変数yとを用いて、行列の各要素をBxyと表記する場合、図2に示すように、x=y,x=y+1の関係の各要素は1であり、それ以外の要素は0である。
A群の行列(A11、A12、・・・、A65、A66)は、行数が(N−k)、列数がkである。kの値はオリジナルのデータパケットの数に等しい。図2の場合は(k=6)である。Nの値は生成する冗長パケットの数に依存する。
図2では、冗長パケットの数をオリジナルのデータパケットと同じ数にした場合を想定しており、(N=12)である。冗長パケットの数は(N−k)で表され、図2の場合は(N−k=6)である。
次に、従来の冗長パケットの作成方法を図4および図5を用いて説明する。
図4では、図2に示す行列の1行目を使って、冗長パケット(FEC1)を作成する。A群の行列の各要素Axy(x:行方向位置を表す変数,y:列方向位置を表す変数)は、冗長パケットを作成するために使用するオリジナルのデータパケットの識別に用いる情報である。A群の行列の列とオリジナルのデータパケットとが1対1に対応する。
A群の行列の1行目では、A11,A13,A15の各要素が「1」であることから、1列目、3列目、5列目に対応するData1,Data3,Data5を用いて冗長パケットを作成する。作成される冗長パケットは、B群の行列の列に対応する。図2では、要素B11が「1」であることから、この行列の1行目から、冗長パケットの1番目をFEC1として作成する。
FEC1のデータ長は、図1において一番データ長の長いData1と同じ長さになる。Data1,Data3,Data5の各データパケットにおいて、同じ位置にあるビットをXOR(排他的論理和)演算する。その演算結果がFEC1のデータとなる。
図4の例では、Data1,Data3,Data5はデータ長が互いに異なっている。処理するデータの長さが異なる場合には、データ長を揃えるため、短いデータをゼロパディング(0 padding)し、一番長いデータ長にそろえてから演算する。つまり、データの無い位置の各ビットは「0」とみなして、XOR演算する。
次に、2番目の冗長パケットFEC2の作成方法を、図5を用いて説明する。
FEC2の作成を行う際には、図2の行列の2行目を用いる。この場合、行列のA23,A24,A25,B21の各要素が「1」であるので、3つのデータパケットData3,Data4,Data5、および冗長パケットFEC1を用いて、FEC2の冗長パケットを作成する。
FEC2のデータ長は、Data3,Data4,Data5,FEC1の中で一番データ長の長いパケットと同じになる。図5の例では、FEC1のデータ長が一番長いため、FEC2のデータ長はFEC1と同じになる。
FEC2のデータについては、Data3,Data4,Data5,FEC1の同じ位置にあるビットをXOR演算し、作成する。この場合、Data3,Data4,Data5はFEC1よりデータ長が短いため、データの存在しない位置の各ビットを「0」として、XOR演算する。
図2に示した行列は行の数が6である。この各行に対して、上述の処理(図4,図5の処理)と同様の処理をそれぞれ行うことにより、6個の冗長パケット(FEC1,FEC2,FEC3,FEC4,FEC5,FEC6)を作成する。
図6は、送信側の通信装置(以下、単に送信側という)から受信側の通信装置(以下、単に送信側という)に向けたパケットの送信の様子を示している。図6では、オリジナルのデータパケット(Data1,Data2,Data3,Data4,Data5,Data6)と冗長パケット(FEC1,FEC2,FEC3,FEC4,FEC5,FEC6)とが順番に送信される。
受信側は、オリジナルのデータパケットの中で受信できないデータパケットが存在する場合に、冗長パケットを利用して、受信できなかったデータパケットを復元する。従って、受信側はオリジナルのデータパケットを全て受信できているかどうかを確認する。データパケットの受信確認のために、受信側は送信側と同じ行列を生成する。
オリジナルのデータパケットを受信できなかった場合として、Data3だけを受信できなかった場合を例にして説明する。図2では、A群の行列の3列目が「1」であるものは、A13,A23,A33の各要素である。このため、行列の1行目,2行目,3行目のいずれか一つを用いて、Data3を復元できる。ここでは、1行目を用いて復元する例を、図7を用いて説明する。
図2の行列の1行目は、冗長パケットの作成時には、Data1,Data3,Data5を用いてXOR演算し、FEC1を作成したことを示している。従って、逆に、Data1,Data5,FEC1をXOR演算すれば、Data3のデータを復元できる。
なお、Data3を復元するにあたって必要となるData3のデータ長の情報は、冗長パケットのFEC1に付加されている情報「Length Recovery」を用いて算出する。「Length Recovery」については非特許文献1に記載されているためここでは簡単な説明にとどめる。
図7の例では、送信側がData1、Data3、Data5のデータ長の値をXOR演算して「Length Recovery」の値を算出し、FEC1のヘッダに付加する。受信側では、逆に「Length Recovery」の値と、Data1、Data5のデータ長の情報をXOR演算し、Data3のデータ長を算出する。
しかしながら、上述の方法によって通信を行う場合、送信側においてデータパケットに対する冗長パケットを作成して送信し、受信側においてデータパケットの復元を行うと、オリジナルのデータパケットと共に冗長パケットも伝送することになる。
冗長パケットのデータ量が多い場合には、伝送すべき全体のデータ量が増えてしまう。上述の方法では、作成される冗長パケットのパケット長は、オリジナルの複数のデータパケットの中で最長のパケットの長さによって決定される。
例えば、映像データを伝送する場合には、長さが一定でない多数のデータパケットを作成し、これらのデータパケットの中に分割された映像データを格納する。従って、伝送の際に作成される冗長パケット(例えばFECパケット)の長さは異なることがある。そのために、冗長パケット生成時および復元時のデータ演算量が多くなったり、通信負荷が大きくなったりすることがある。
以下では、冗長パケットのデータ量を削減可能な通信装置および通信方法について説明する。
本実施形態では、データを伝送するためのプロトコルとして、音声や映像をストリーミング再生するためのRTPプロトコルを採用することを主に想定している。RTPプロトコルのデータパケットは、RTPデータパケットとも記述する。また、冗長パケットを用いて前方誤り訂正(FEC)を行うので、この冗長パケットをFECパケットとも記述する。RTPデータパケット以外のデータパケットや、FECパケット以外の冗長パケットに対しても、同様に本開示を適用できる。
本実施形態の通信装置は、電話機、テレビ信号の送信機および受信機、ラジオ信号の送信機および受信機、有線放送機器、携帯電話、スマートフォン、タブレット、パソコン、通信機能付きカメラ、通信機能付きビデオカメラ等、様々なデータ通信機器に適用できる。
(第1の実施形態)
本実施形態の通信システムについて、図8〜図21、および図38を参照しながら以下に説明する。この通信システムでは、データ送信装置100とデータ受信装置150との間で、所定の通信路を介してデータが通信される。データ送信装置100およびデータ受信装置150は、通信装置の一例である。
(送信側)
データ送信装置100について説明する。
図8は本開示の第1の実施形態におけるデータ送信装置100の構成例を示すブロック図である。
図8に示すように、データ送信装置100は、映像エンコーダ部111、RTPデータパケット作成部112、通信路ロス率算出部113、行列生成部114、データパケット並べ替え処理部115、RTPヘッダ修正部116、送信RTPパケット作成部117、FECデータ作成部118、FECヘッダ作成部119、送信FECパケット作成部120、およびパケット送出部121を備える。
映像エンコーダ部111は、ビデオカメラ等から動画像または静止画像等の映像入力データを受け取り、H.264等で規定されているアルゴリズムに従ってエンコード処理を行う。映像エンコーダ部111は、エンコード処理後の映像コーデックデータをRTPデータパケット作成部112に渡す。
RTPデータパケット作成部112は、映像エンコーダ部111から映像コーデックデータを受け取り、RTPデータパケットを作成する。例えば、1つのピクチャデータをエンコードして複数個のデータに分割し、その結果を複数個のRTPデータパケットとすることが想定される。
図1の例では、H.264に従ってエンコードし、スライス境界でデータを分割して得られた6個のデータパケットを示している。
また、RTPデータパケット作成部112は、行列生成部114に、作成されたデータパケットのパケット数を通知する。この値は、前述の説明におけるkの値に相当する。また、RTPデータパケット作成部112は、データパケット並べ替え処理部115に、パケット数「k」と各データパケットのパケット長を通知する。
また、RTPデータパケット作成部112は、RTPヘッダを作成し、RTPヘッダの情報をRTPヘッダ修正部116およびFECヘッダ作成部119に通知する。RTPヘッダ情報は、RTPデータパケットに付加されるヘッダの情報である。
また、RTPデータパケット作成部112は、送信RTPパケット作成部117にRTPデータパケットを通知する。なお、RTPデータパケットを通知する代わりに、RTPデータパケットが保持されている場所を表すポインタ情報を通知しても良い。
通信路ロス率算出部113は、通信路のパケットロス(単にロスともいう)率を算出する。具体的には、データ受信装置150からロス率の情報を受信する。また、例えばデータ受信装置150からの再送要求に基づいて、通信路ロス率算出部113がパケットロス情報を自ら算出してもよい。
行列生成部114は、RTPデータパケット作成部112からのパケット数の情報および通信路ロス率算出部113からのロス率の情報を基に、冗長パケットを作成するための行列を生成する。行列生成部114における行列生成のアルゴリズムについては、公知の方法(例えば、非特許文献2に記載されている方法)を採用できる。行列生成部114は、次に説明する方法で行列を生成する。
Nの値、kの値、Seedの値を送信側と受信側で共有する方法については、様々な方法が考えられる。例えば、冗長パケットのヘッダ情報(FECヘッダ情報)として付加する方法がある。またはあらかじめ決めておく方法でもよい。
行列を生成するためには、Nの値、kの値、Seedの値を必要とする。オリジナルのデータパケットの数を示すkの値については、RTPデータパケット作成部112からのデータパケット数kを用いる。
行列生成部114は、冗長パケット数とデータパケット数とを含めた総パケット数Nを、通信路ロス率算出部113からのロス率に基づいて算出する。ロス率が高い場合には総パケット数Nを大きくすることで、データ受信装置150での復元率を高めることができる。ロス率が低い場合には総パケット数Nを小さくできる。
冗長パケットの数は「N−k」で示され、N≧kを満たす。また、総パケット数Nはデータ送信装置100で決定され、データ受信装置150に通知される。
Seedの値は、固定でもよいし、動的に変更されてもよい。行列生成部114は、例えば復元率が高くなるようにSeedを調整してもよい。Seedを動的に変更する場合には、総パケット数Nと同様、Seedの値もデータ受信装置150に通知される。
行列生成部114は、生成された行列データを、データパケット並べ替え処理部115およびFECデータ作成部118に通知する。なお、行列データを通知する代わりに、行列データを保存している位置を表すポインタ情報を通知しても良い。
また、行列生成部114は、FECヘッダ作成部119に行列情報を通知する。行列情報には、総パケット数N、データパケット数k、Seedの各値が含まれる。
データパケット並べ替え処理部115は、行列生成部114から行列データの情報を受け取る。また、RTPデータパケット作成部112から、データパケット数kと各パケットのパケット長の情報を受け取る。
データパケット並べ替え処理部115は、冗長パケットのパケット長(パケットサイズ)の総和に基づいてRTPデータパケットを並べ替えるデータパケットの並べ替え処理を行う。具体的には、冗長パケットのパケット長(パケットサイズ)の総和が小さな値になるように、データパケットの順番を並べ替える。
データパケットの並べ替えのための探索方法については、ヒューリスティックな方法であってもよい。つまり、データパケット並べ替え処理部115は、作成される冗長パケットのデータ長をすべての場合に対して算出し、その中からデータ長の総和が一番小さくなるデータパケットの並べる順番を見つけ出してもよい。データパケットの並べ替えに関する具体例については後述する。
データパケット並べ替え処理部115は、データパケットの並べ替え処理を実施した結果を含むデータパケットの並べ替え情報を、FECデータ作成部118およびRTPヘッダ修正部116に通知する。
FECデータ作成部118は、行列データ、RTPデータパケット、およびデータパケットの並べ替え情報に基づいて、冗長パケット(FECパケット)を作成する。また、冗長パケットを作成するために、すでに作成した冗長パケットを利用する場合がある。その場合には、送信FECパケット作成部120から冗長パケットを受け取り、新たに冗長パケットを作成する。
また、FECデータ作成部118は、冗長パケットを作成するとき、あわせて「Length recovery」の値を算出する。「Length recovery」の算出方法は、例えば非特許文献1に記載されている。「Length recovery」は、パケットロスしたパケットのパケット長を復元するための情報である。つまり、ロスまたは正常に受信されない非正常パケットのパケット長を復元するためのパケット長情報の1つである。
なお、非正常パケットとは、伝送中にロスしたパケットおよび伝送中にデータ誤りを生じたパケットを指す。伝送中にデータ誤りを生じたパケットは、受信側で誤りが発生したことが検出され、誤りを修正できない場合には受信側では伝送中にロスしたパケットと同等に扱われる。
FECデータ作成部118は、「Length recovery」を、冗長パケットを作成するパケットの各パケット長の値をXOR演算処理することにより算出される。
FECデータ作成部118は、作成した冗長パケットのデータ(冗長パケットデータ)、「Length Recovery」の値、および何番目のFECパケットであるかを示す情報を、送信FECパケット作成部120に通知する。これらの通知は、保存している先を示すポインタ情報であってもよい。なお、何番目のFECパケットであるかを示す情報は、図15の「FEC Sequence Number」に相当する。
RTPヘッダ修正部116は、RTPデータパケット作成部112により作成されたRTPヘッダ情報と、データパケット並べ替え処理部115が生成したデータパケットの並べ替え情報を用いて、RTPヘッダ情報を修正する。この修正されたRTPヘッダ情報を用いることによって、データ受信装置150は、パケットロスしたデータパケットを復元できる。
送信RTPパケット作成部117は、RTPデータパケット作成部112からRTPデータパケットを受け取り、RTPヘッダ修正部116から修正されたRTPヘッダ情報(修正RTPヘッダ情報)を受け取る。また、送信RTPパケット作成部117は、RTPデータパケットに修正RTPヘッダ情報が付加されたRTPデータパケットを作成する。
送信RTPパケット作成部117は、作成されたRTPデータパケットをFECデータ作成部118およびパケット送出部121に渡す。このとき、RTPデータパケット自体を渡してもよいが、該当するデータが保持されている位置を示すポインタを渡しても良い。メモリ上のデータを読み書きする処理は時間を要するため、ポインタ操作によって処理するほうが効率的に処理できる。
FECヘッダ作成部119は、行列生成部114から行列情報を受け取り、RTPデータパケット作成部112からRTPヘッダ情報を受け取り、冗長パケットのヘッダ(FECヘッダ)を生成する。RTPヘッダ情報は、RTPヘッダの順序を識別するためのsequence number(図13参照)を含む。FECヘッダ作成部119は、作成されたFECヘッダ情報を、送信FECパケット作成部120に渡す。なお、FECヘッダ情報の代わりに、FECヘッダ情報のポインタ情報を渡してもよい。
送信FECパケット作成部120は、冗長パケットのデータ、「Length recovery」の値、および「FEC Sequence Number」の値を、FECデータ作成部118から受け取る。また、送信FECパケット作成部120は、FECヘッダ情報をFECヘッダ作成部119から受け取る。
送信FECパケット作成部120は、冗長パケットのデータ、「Length recovery」の値、「FEC Sequence Number」の値、およびFECヘッダ情報を用いて、冗長パケットを作成する。つまり、送信FECパケット作成部120は、冗長パケット(FECパケット)のデータにFECヘッダ情報が付加された冗長パケット(FECパケット)を作成する。
送信FECパケット作成部120は、作成された冗長パケットをパケット送出部121に渡す。なお、冗長パケット自体を渡しても良いが、代わりに冗長パケットの保持されている位置を示すポインタ情報を渡しても良い。
また、送信FECパケット作成部120により作成した冗長パケットを用いて、さらに冗長パケットを生成する場合がある。その場合には送信FECパケット作成部120からFECデータ作成部118に冗長パケットのデータを渡す。この受け渡しについては、作成した冗長パケットのデータを保存している位置を表すポインタ情報を渡してもよい。
パケット送出部121は、送信RTPパケット作成部117で作成したRTPデータパケットおよび送信FECパケット作成部120により作成した冗長パケットを通信路へ送出する。
次に、データパケット並べ替え処理部115によるデータパケット並べ替え処理の一例について、図9および図10を用いて説明する。
まず、Step1のように、データパケット並べ替え処理部115は、データパケットをデータ長の短い順番に並べる。
続いて、Step2のように、データパケット並べ替え処理部115は、行列の要素にあわせて並べ替え処理を行う。図3に示したA群の行列の要素Axyの値を用いて説明する。データパケット並べ替え処理部115は、要素Axyが「1」となるときの各yの値に対するxの最小値を探索する。
なお、行列の各列には必ず「1」となる要素が存在する。パケットロスが発生したときに復元するためには、冗長パケットを作成する際にXOR演算処理のデータとして使用する必要があるためである。仮に、ある列に「Axy=1」となる要素が存在しない場合には、その列に割り当てられるデータパケットはロスすると復元できない。
続いて、データパケット並べ替え処理部115は、探索された最小値のxの値が小さい順番になるようにAxyを並べ、それぞれに対応する列に、Step1で小さい順に並べたデータパケットを割り当てる。
具体例を用いて説明する。図9は、入力されるデータパケット群PS10が図1と同じデータパケット(Data1〜Data6)の順番である場合の例を示している。図9では、Step1においてデータパケット群PS10をデータ長が小さい順番に並べている。Step1では同じデータ長の場合には、元の順番が先のものを前(図9における上側)に並べる。
Step1の結果として出力されるデータパケット群PS11の順番は、(Data2,Data4,Data6,Data5,Data3,Data1)である。
次に、冗長パケット作成用の行列の構成および行列の各要素が図2および図3と同じ場合を想定し、図9のStep2の処理を詳細に説明する。
Step2では、データパケット並べ替え処理部115は、要素Axyが「1」となるときの各yの値に対するxの最小値を探す。行列の1列目(y=1)のときはA11が最小(x=1)である。同様に、A42,A13,A24,A15,A36が、行列の2列目,3列目,4列目,5列目,6列目の最小の要素である。
これらの要素をxの値が小さい順番に並べると、A11,A13,A15,A24,A36,A42の順になる。データパケット並べ替え処理部115は、各要素(A11,A13,A15,A24,A36,A42)と、Step1において小さい順番に並べたデータパケット群PS11と、を対応付けする。
つまり、図10に示すように、(A11, Data2),(A13,Data4)、(A15,Data6),(A24,Data5),(A36,Data3)、(A42,Data1)の組み合わせになる。この組み合わせを列の順番(yの小さい順番)に並べなおすと、(A11,Data2),(A42,Data1),(A13,Data4),(A24,Data5),(A15,Data6),(A36,Data3)の順になる。
つまり、Step2における並べ替えによって、図9に示すデータパケット群P12のように、Data2,Data1,Data4,Data5,Data6,Data3の順番になる。
図10は、データパケット並べ替え処理のStep2を説明するための図である。データ長の短い順に並べたデータパケット群PS11が、図10中Data2,Data4,Data6,Data5,Data3,Data1である。行列の上位の行から順番に要素が「1」である列を探し、データ長の短いデータを割り当てていく。
具体的には、A11が「1」であるため、Data2を1列目に割り当てる。続いて、A12は「0」のため次に進み、A13が「1」であるため、Data4を3列目に割り当てる。続いて、A14は「0」のため次に進み、A15が「1」であるため、Data6を5列目に割り当てる。続いて、A16は「0」のため次に進み、行列Axyの1行目は最後まで確認したため、2行目に進む。
2行目では、A24が「1」であるため、Data5を4列目に割り当てる。A23およびA25は「1」であるが、1行目がすでに「1」であるためにデータは割り当てない。
続いて、同様の処理により未割当の列のなかで要素が「1」である列を探索し、A36が「1」であるため、Data3を6列目に割り当てる。最後にA42が「1」であるため、Data1を2列目に割り当てる。
各列に割り当てたデータを列の順番に並べなおすと、Data2,Data1,Data4,Data5,Data6,Data3の順番、つまり図9のデータパケット群PS12の順番に並ぶ。
次に、FECデータ作成部118による冗長パケットの作成処理について説明する。
図11は、行列とこの行列の各列に割り当てられたデータパケット、さらに行列の1行目を用いて作成される冗長パケットFEC1の対応関係を示す。図11の例では、データパケット並べ替え処理の結果(図9のPS12の順番)から冗長パケットを作成する場合を想定しているので、行列の各列に対応するデータパケットの並び順が、図4の例とは異なっている。図11の行列は、図2に示した行列と同じである。
行列の1行目を用いた処理については、行列の内容が「1」の各要素に対応する各データパケットData2,Data4,Data6を用いて、XOR処理を実施する。この結果を用いて、1番目の冗長パケット(FEC1)を作成する。図11の結果を図4の結果と比較すると、冗長パケット(FEC 1)のデータ長を短くできている。データパケットの並べ替えを行わずに冗長パケットを作成すると、図4のように、パケット長の長いData1,Data3,Data5から作成されるため、冗長パケットのデータ長も長くなるためである。
図12は、データパケット並べ替え処理を実施した場合と、データパケット並べ替えを行わなかった場合の冗長パケットのデータ長の比較結果を示す。冗長パケットを作成する行列については、図2と同じ行列を用いている。
図12を参照すると、データパケットの並べ替え処理により冗長パケット(FEC1,FEC2,FEC3)のデータ長をそれぞれ87%,75%,63%削減でき、6パケットをあわせた総データ量での比較では38%削減できる。このように、冗長パケットの作成前にデータパケット並べ替え処理を実施することにより、冗長パケットのデータ量を効果的に削減できる。
次に、各パケットのヘッダについて説明する。
図15はFECヘッダのフォーマットの一例を示す図である。なお、パケットのヘッダは、パケットの管理に必要な各種の情報を保持する領域を表し、一般的にはパケット本体の先頭部分に付加されてパケット本体と一体化されて伝送される。
FECヘッダには、そのパケットが冗長パケットであることを示す情報が含まれる。また、ヘッダ長の情報が含まれる。また、「FEC sequence number」の値が含まれる。「FEC sequence number」の値は、何番目の冗長パケットであるかを示す情報である。「FEC sequence number」の値は、FECデータ作成部118により決定され、送信FECパケット作成部120によりヘッダに割り当てられる。
また、FECヘッダには、「Length recovery」の値が含まれる。「Length recovery」の値は、冗長パケットを作成する際に使用したデータパケットおよび冗長パケットのパケット長の値がXOR演算された値である。「Length recovery」の値は、FECデータ作成部118により算出され、送信FECパケット作成部120によりヘッダに割り当てられる。
また、FECヘッダには、「開始sequence number」、kの値、Nの値、Seedの値が含まれる。これらの値としては、FECヘッダ作成部119が受け取った各情報がそれぞれヘッダに割り当てられる。
なお、「開始sequence number」の割り当てを、送信FECパケット作成部120により行うように実装することも可能である。この場合、RTPデータパケット作成部112からFECヘッダ作成部119へのRTPヘッダ情報の受け渡しを省略できる。
図13はRTPヘッダのフォーマットの一例を示す図である。このフォーマットは、「IETF RFC3550“RTP:A Transport Protocol for Real−Time Applications”」に規定されている。
データ受信装置150は、「timestamp」と「sequence number」とを確認する。1つのピクチャから作成されるパケットは、同じ「timestamp」の値が設定される。また、「Sequence number」には、インクリメントに増加する整数が設定される。そのため、「sequence number」をチェックすることにより、パケットロスを検出できる。
図14は、RTPヘッダの拡張ヘッダ(RTP拡張ヘッダ:図13の「header extension」)の一部のフォーマットの一例を示す図である。RTPヘッダの拡張ヘッダには、データパケットの並べ替え後の順番を示す情報として、データパケットの並べ替え情報が含まれる。
例えば、図12で示した順番にデータが並べ替えられた場合には、Data1は2番目のデータパケットになるため、RTP拡張ヘッダの並べ替え後の順番を示す領域には、RTPヘッダ修正部116が「2」の値をセットする。同様に、Data2については、RTPヘッダの拡張ヘッダのデータパケットの並べ替え情報を示す領域に、RTPヘッダ修正部116が「1」の値をセットする。
なお、「defined by profile」の領域には、データパケットの並べ替え情報を示す拡張ヘッダであることを示す情報を設定する。その設定値については、特に限定しない。「Reserved」の領域についても、特に限定しない。RTPヘッダ修正部116は、作成された修正RTPヘッダ情報を送信RTPパケット作成部117に通知する。
次に、データ送信装置100における全体の処理の流れを、図20に示したフローチャートを参照しながら説明する。
まず、RTPデータパケット作成部112は、映像エンコーダ部111から映像コーデックデータを受け取り、RTPデータパケットを作成する。このRTPデータパケットの数がkの値となる(ステップS101)。
続いて、行列生成部114は、RTPデータパケット作成部112からのデータパケット数kと通信路ロス率算出部113からのロス率を用いて、冗長パケット数を含めた総パケット数Nを決定する(ステップS102)。
続いて、行列生成部114は、行列生成のためのSeedの値を決定する。例えば回復率が高くなるようにSeedの値を調整してもよい。行列生成部114は、総パケット数N、データパケット数k、Seedに基づいて、行列を生成する(ステップS103)。
続いて、データパケット並べ替え処理部115は、データパケットの並べ替え処理を行う(ステップS104)。
続いて、RTPヘッダ修正部116は、データパケット並べ替え処理部115から受け取ったデータパケットの並べ替え情報を、RTPヘッダに付加する(ステップS105)。これにより、RTPヘッダが修正される。送信RTPパケット作成部117は、修正されたRTPヘッダとRTPデータパケットとを用いて、送信されるRTPデータパケットを作成する。
続いて、FECヘッダ作成部119は、行列生成部114からの行列情報と、RTPデータパケット作成部112からのRTPヘッダ情報とに基づいて、FECヘッダ情報を作成する(ステップS106)。
続いて、FECデータ作成部118は、行列生成部114が生成した行列と、送信RTPパケット作成部117が作成したRTPデータパケットと、データパケット並べ替え処理部115が作成したデータパケットの並べ替え情報と、に基づいて、冗長パケットを作成する(ステップS107)。
また、FECデータ作成部118は、冗長パケットの作成に用いたパケットのパケット長の情報に基づいて、「Length recovery」を算出する。また、FECデータ作成部118は、FECヘッダ情報に含まれる「FEC sequence number」と「Length recovery」の値を、送信FECパケット作成部120に渡す。
また、送信FECパケット作成部120は、FECヘッダ作成部119からのFECヘッダ情報と、FECデータ作成部118からの冗長パケットのデータ、「Length recovery」の値、および「FEC sequence number」を受け取り、送信される冗長パケットを作成する。
なお、図20に示すステップS106、S107の処理順序は逆にしても良い。
続いて、パケット送出部121が、送信RTPパケット作成部117からのRTPデータパケットと、送信FECパケット作成部120からの冗長パケットと、を受け取り、データ受信装置に向けて送信する(ステップS108)。
図38は、データパケット並べ替え処理の詳細の一例を示すフローチャートである。
まず、データパケット並べ替え処理部115は、k個のデータパケットをパケット長の短い順番に並べる(ステップS11)。例えば、図1に示した6個のデータパケットを処理する場合は、結果として、Data2,Data4,Data6,Data5,Data3,Data1の順番に並ぶ。
続いて、データパケット並べ替え処理部115は、行列の各要素(Axy)について、各yに、Axyが「1」の要素の中で、xの値が最小の要素Axyを抽出する(ステップS12)。
例えば、図1のデータパケット群を並べ替えた結果と、図2および図3に示した行列を用いる場合には、以下のような結果が得られる。(y,Axy)=(1,A11),(2,A42),(3,A13),(4,A24),(5,A15),(6,A36)
続いて、データパケット並べ替え処理部115は、ステップS12において抽出された各要素Axyを、xが小さい順番に並べ直す(ステップS13)。例えば、結果として、A11,A13,A15,A24,A36,A42の順番に並ぶ。
続いて、データパケット並べ替え処理部115は、ステップS11の結果の各データパケットと、ステップS13の結果の各要素Axyと、を順番通りに対応付ける(ステップS14)。例えば、以下のような結果が得られる。(Data2,A11),(Data4,A13),(Data6,A15),(Data5,A24),(Data3,A36),(Data1,A42)
続いて、データパケット並べ替え処理部115は、ステップS14において対応付けられた組み合わせを、各要素Axyのyを基準とした順番に並べ直す(ステップS15)。例えば、並べ替え後として、以下のような結果が得られる。(Data2,A11),(Data1,A42),(Data4,A13),(Data5,A24),(Data6,A15),(Data3,A36)
続いて、データパケット並べ替え処理部115は、ステップS15の結果得られた(Data,Axy)の組み合わせの順番に合わせて、データパケット群を順番に取り出す(ステップS16)。例えば、取り出すデータパケットの順番は、結果として、Data2,Data1,Data4,Data5,Data6,Data3の順となる。
このように、データ送信装置100では、データパケット並べ替え処理部115は、行列データの各列にデータパケットが割り当てられる場合、前記行列データの上位行である程、割り当てられるデータパケットのパケット長が短くなるよう、前記データパケットを並べ替える。
データ送信装置100によれば、冗長パケットのデータ量を削減可能である。従って、冗長パケット作成時のデータ演算量が減少し、データ送信装置100の処理負荷を低減できる。さらに、通信路(伝送路)に送出されるデータ量も削減されるので、伝送路の帯域を効率的に利用できる。例えば、無線通信のように伝送路の帯域を複数のユーザで共有する場合や、伝送路の帯域が狭い場合であっても、高速かつ誤りの少ない通信を実施できる。
(受信側)
データ受信装置150について説明する。
図16は、本開示の第1の実施形態におけるデータ受信装置150の構成例を示すブロック図である。
図16に示すように、データ受信装置150は、パケット受信部151、RTPパケット保持部152、FECパケット保持部153、RTPパケットロス判定部154、ロス率算出部155、行列生成部156、FEC復元処理部157、映像デコーダ部158、および映像表示部159を備える。
パケット受信部151は、通信路からパケットを受信し、受信されたパケット(受信パケット)を、RTPパケット保持部152またはFECパケット保持部153に振り分ける。受信パケットは、RTPデータパケットおよび冗長パケットの少なくとも一方を含む。
すなわち、パケット受信部151は、受信されたRTPデータパケットはRTPパケット保持部152に渡し、受信された冗長パケットはFECパケット保持部153に渡す。なお、RTPデータパケットおよび冗長パケットのデータ受け渡しについては、ポインタ操作により行ってもよい。
RTPパケット保持部152は、RTPデータパケットの情報を保持する。RTPパケット保持部152は、パケット受信部151からRTPデータパケットを受け取る。また、RTPパケット保持部152は、RTPデータパケットから映像コーデックデータを得て、これを映像デコーダ部158に渡す。また、RTPパケット保持部152は、RTPデータパケットをFEC復元処理部157に渡す。この受け渡しについては、データを保存しているポインタ情報を渡してもよい。
また、RTPパケット保持部152は、RTPヘッダに付加されているデータパケットの並べ替え情報を、FEC復元処理部157に渡す。また、RTPパケット保持部152は、受信状況つまりパケットロスがあるかどうかの情報を含む受信パケット情報を、RTPパケットロス判定部154に渡す。また、RTPパケット保持部152は、FEC復元処理部157より復元されたRTPデータパケットを受け取る。
映像デコーダ部158は、RTPパケット保持部152から映像コーデックデータを受け取り、H.264等の規則に従ってデコード処理等を行い、その結果の映像データを映像表示部159に渡す。
映像表示部159は、映像デコーダ部158からの映像を表示する。
RTPパケットロス判定部154は、RTPパケット保持部152から受信パケット情報を受け取り、パケットロスが発生しているかどうかを判定する。パケットロスが発生している場合には、行列生成部156に行列生成を指示する。また、RTPパケットロス判定部154は、ロス率算出部155に、パケットロスが発生しているかどうかの情報を含むロス情報を通知する。
ロス率算出部155は、RTPパケットロス判定部154からロス情報を受け取り、FECパケット保持部153からロス情報を受け取る。ロス率算出部155は、これらのロス情報に基づいて、ロス率を算出し、データ送信装置100へ通知してもよい。
FECパケット保持部153は、冗長パケットの情報を保持する。FECパケット保持部153は、パケット受信部151から冗長パケットのデータを受信する。また、FECパケット保持部153は、冗長パケットのデータをFEC復元処理部157に通知する。この通知に関しては、冗長パケットのデータを保存しているポインタ情報を通知してもよい。
また、FECパケット保持部153は、ヘッダに付加された行列生成のための行列情報を行列生成部156に渡す。行列情報は、総パケット数N、RTPデータパケット数k、Seedの値を含む。
また、FECパケット保持部153は、冗長パケットのロス情報をロス率算出部155に渡す。総パケット数Nから冗長パケットの数を推定できるので、受信していない冗長パケットの数、つまり受信に失敗したロスパケットの数を把握できる。
また、FECパケット保持部153は、FEC復元処理部157により復元された冗長パケットを受信する。復元された冗長パケットを保持しておくことによって、再帰的に復元処理を行うことが可能になる。
行列生成部156は、FECパケット保持部153から行列情報を受け取り、この行列情報に基づいて、行列を生成する。行列生成部156は、行列を生成する処理を、RTPパケットロス判定部154から行列生成指示を受信した場合に実行する。
また、行列生成部156は、FEC復元処理部157に行列データを通知する。この通知に関しては、行列データを保存している位置を示すポインタ情報を通知してもよい。
なお、行列生成指示は、パケットを受信した都度生成するよう発生するようにしてもよい。また、行列生成指示は用いず、あらかじめデータ送信装置100との間で同一の行列を共有し、保持するようにしてもよい。ここでは、主に行列を生成する場合を想定している。
FEC復元処理部157は、RTPパケット保持部152からRTPデータパケットを受け取り、FECパケット保持部153から冗長パケットのデータを受け取る。また、RTPパケット保持部152からデータパケットの並べ替え情報を受け取り、行列生成部156から行列データを受け取る。
FEC復元処理部157は、データパケットの並べ替え情報に基づいて、データパケットを並べ替える。また、FEC復元処理部157は、受け取った情報に基づいて、ロスしたパケットを復元する。FEC復元処理部157は、復元されたパケットがRTPデータパケットの場合は、そのパケットをRTPパケット保持部152に渡し、冗長パケットの場合は、そのパケットをFECパケット保持部153に渡す。
次に、パケットの復元処理の詳細について説明する。
FEC復元処理部157は、図14に示したRTPヘッダの拡張ヘッダに含まれるデータパケットの並べ替え情報から、受信していないデータが何番目のパケットであるか識別する。FEC復元処理部157は、複数のパケットをロスしている場合もあるため、復元可能かどうかを行列データに基づいて判断する。
図17は、パケットの復元処理の具体例を示す図である。図17の例では、データ送信装置100が、図11に示したデータパケットの並べ替え後に冗長パケットを作成した場合を想定している。また、データ受信装置150が、パケット群PS21として、Data4,Data5,FEC1,FEC2を順に受信した場合を想定している。
FEC復元処理部157は、Data4およびData5が3列目および4列目に対応していることを、図14に示したRTPヘッダの拡張ヘッダに含まれるデータパケットの並べ替え情報から把握する。同様に、FEC復元処理部157は、行列の5列目に対応するデータパケットを受信していないことも把握する。行列の5列目に対応するデータパケットはまだ復元されていないため、図17では「Data?」と表記している。
また、FEC復元処理部157は、冗長パケットFEC1およびFEC2を受信していることを、図15に示した冗長パケットのFECヘッダに基づいて把握する。具体的には、「FEC sequence number」、「開始sequence number」、kの値に基づいて、冗長パケットのFEC1,FEC2であるかどうか判断する。
FEC復元処理部157は、行列の5列目に対応するデータパケットのパケット長を、FEC2のFECヘッダに含まれる「Length recovery」の値と、Data4,Data5,FEC1のパケット長の値と、に基づいて算出する。
従って、図17に示すように、FEC復元処理部157は、算出されたパケット長の範囲で、Data4,Data5,FEC1,FEC2をXOR演算することにより、ロスしていたパケット(Data?)を復元する。
これにより、復元されたパケットがData6であることがわかる。復元されたRTPデータパケットは、RTPパケット保持部152に渡される。
また、「Length recovery」の値を用いることで、パケット長に統一性のないパケット群を受信した場合であっても、ロスしたパケットのパケット長を推定できる。従って、データ演算量を削減しつつ、ロスしたパケットを復元できる。
次に、図21を用いて、データ受信装置150の処理の流れを説明する。
まず、パケット受信部151がパケットを受信する。RTPデータパケットは、RTPパケット保持部152により保存され、冗長パケットはFECパケット保持部153に保持される。
RTPパケットロス判定部154は、RTPパケット保持部152から受信パケット情報を受け取り、パケットのロスがあるかどうか判定する(ステップS151)。ロスがあるかどうかは、図13に示した「Sequence Number」を確認すればよい。ロスが発見された場合には、RTPパケットロス判定部154が行列生成部156に行列生成指示を送信することによって復元処理が開始される。つまり、ステップS152以降の処理に進む。
FECパケット保持部153は、行列情報に含まれる総パケット数N、RTPデータパケット数k、Seedの値を、行列生成部156に渡す。そして、行列生成部156は、行列を生成する(ステップS152)。
続いて、FEC復元処理部157は、RTPヘッダ情報から、データパケットの並べ替え処理を行っているかどうかを判定する(ステップS153)。データパケットの並べ替え処理を行っているかどうかは、RTPヘッダの拡張ヘッダにデータパケットの並べ替え情報が付加されているかどうかで判定できる。データパケットの並べ替え情報の例は、図14に示しているが、「defined by profile」の値によってデータパケットの並べ替え情報を含む拡張ヘッダであるかどうかを判断できる。
データパケットの並べ替え処理が行われている場合には、FEC復元処理部157は、データパケットの並べ替え処理を実施する(ステップS154)。そして、FEC復元処理部157は、並べ替えられたパケットの復元処理(ステップS155)を実施する。
一方、データパケットの並べ替えを行っていない場合には、FEC復元処理部157は、そのままパケットの復元処理を実施する(ステップS155)。
続いて、FEC復元処理部157は、復元されたパケットを用いて、さらに復元できるパケットがないか確認する(ステップS156)。FEC復元処理部157は、復元できるパケットがあれば、復元処理を実施する(ステップS155)。
復元処理は、データパケットおよび冗長パケットの両方に対して実施する。復元パケットを復元することによって、再帰的に復元できるパケットが存在する場合もあるためである。
次に、上述のデータパケット並べ替えによる冗長パケットのデータ削減効果について検証する。
映像データをエンコードしパケットに分割したときの実データを用いて、どの程度の削減効果があるのか、その結果を図18(A),(B)および図19(A),(B)に示す。
図18(A),(B)の例では、13個のデータパケット(DATA1〜DATA13)を処理した結果を示している。図18(A)には、RTPデータパケットと冗長パケットのデータに関する情報が示されている。図18(B)には、冗長パケットのデータを生成するための行列が示されている。
図18(A),(B)を参照すると、データパケットの並べ替えを行わなかった場合と比較して、並べ替えを行った場合のデータの削減率は、FEC1が88%、FEC2が74%、FEC3が4%になっている。また、冗長パケットの総データ量を比較すると13%の削減効果がある。
図19(A),(B)の例では、12個のデータパケット(DATA1〜DATA12)を処理した結果を示している。図19(A)には、RTPデータパケットと冗長パケットのデータに関する情報が示されている。図19(B)には、冗長パケットのデータを生成するための行列が示されている。
図19(A),(B)を参照すると、データの並べ替えを行わなかった場合と比較して、並べ替えを行った場合のデータの削減率は、FEC1が76%、FEC2が73%、FEC3が69%、FEC4が10%、FEC5が1%になっている。また、冗長パケットの総データ量を比較すると19%の削減効果がある。
このように、データ受信装置150では、FEC復元処理部157が、並べ替え後のデータパケットおよび冗長パケットの少なくとも一方と行列データとに基づいて、パケット受信部151により正常に受信されなかった非正常パケットを復元する。非正常パケットとは、ロスしたパケットであり、受信されなかったパケットおよびCRCチェック等によりエラーと判別されたパケットの双方を含む。
データ受信装置150によれば、データパケットおよびデータ量が削減された冗長パケットの少なくとも一方を用いて、データパケットを確実に復元できる。また、冗長パケットのデータ量が削減されているので、データパケットの復元時のデータ演算量が減少し、通信装置の処理負荷を低減できる。
(第2の実施形態)
第2の実施形態では、データパケットの並べ替え情報をFECヘッダに格納することを想定している。前述の実施形態と同じ内容については、説明を省略する。
(送信側)
データ送信装置100Bについて説明する。
図22は、本開示の第2の実施形態におけるデータ送信装置100Bの構成例を示すブロック図である。図22において、実質的に第1の実施形態におけるデータ送信装置100と同じ機能を果たす構成要素については、同じ符号を付けて示してある。
図22に示すように、データ送信装置100Bは、図8に示したRTPヘッダ修正部116および送信RTPパケット作成部117を備えていない。また、FECヘッダ作成部119Bの機能は、図8のFECヘッダ作成部119の機能とは少し異なっている。
パケット送出部121は、RTPデータパケット作成部112からRTPデータパケットを受け取る。また、FECデータ作成部118は、RTPデータパケット作成部112からRTPデータパケットを受け取る。
FECヘッダ作成部119Bは、行列生成部114から行列情報を受け取り、RTPデータパケット作成部112からRTPヘッダ情報を受け取り、データパケット並べ替え処理部115からデータパケットの並べ替え情報を受け取る。FECヘッダ作成部119Bは、受け取った情報に基づいて、FECヘッダを生成する。
FECヘッダ作成部119Bは、FECヘッダにデータパケットの並べ替え情報を追記する。また、FECヘッダ作成部119Bは、作成されたFECヘッダ情報をパケット送出部121に渡す。これはポインタ情報の受け渡しであってもよい。
次に、ヘッダについて説明する。
図23は、冗長パケット(FECパケット)のヘッダ(FECヘッダ)例を示す図である。第1の実施形態のFECヘッダと異なる点は、Seedの値に後続する領域に、追加情報としてデータパケットの並べ替え情報が含まれる点である。
「FEC sequence number」については、FECヘッダ作成部119Bではなく、FECデータ作成部118が値を決定し、送信FECパケット作成部120によりFECヘッダに追記される。なお、FECデータ作成部118からFECヘッダ作成部119が「FEC Sequence number」の情報を受け取って、FECヘッダ作成部119がFECヘッダに追記してもよい。
「Length recovery」については、FECヘッダ作成部119Bではなく、FECデータ作成部118が値を算出し、送信FECパケット作成部120によりFECヘッダに追記される。なお、FECデータ作成部118からFECヘッダ作成部119が「Length recovery」の情報を受け取って、FECヘッダ作成部119がFECヘッダに追記してもよい。
「開始sequence number」、kの値、Nの値、Seedの値については、FECヘッダ作成部119Bが受け取った値をそれぞれヘッダに設定する。なお、送信FECパケット作成部120が「開始sequence number」の設定を行うように実装可能である。この場合、RTPデータパケット作成部112からFECヘッダ作成部119BにRTPヘッダ情報を受け渡さなくてもよい。
図23に示す例では、FECヘッダのSeedの値の後に、データパケットの並べ替え情報を保持する領域を割り当ててある。図23に示す例では、データパケットの並べ替え情報として、「2」、「1」、「4」、「5」、「6」、「3」の6つの数字が書き込んである。
図23の例では、図9に示したデータパケットの並べ替えを行った場合の結果としてヘッダに書き込まれる内容を示している。すなわち、図23のデータパケットの並べ替え情報が、図9における並べ替え後のデータパケットが、Data2,Data1,Data4,Data5,Data6,Data3の順番に並んでいることを示している。
図23に示したFECヘッダに含まれる「開始sequence number」は、1番目のRTPデータパケットData1の「Sequence Number」である。Data1以外の他のRTPデータパケットの「Sequence Number」については、「開始sequence number」およびデータパケットの並べ替え情報に基づき、FECヘッダ作成部119Bにより容易に算出できる。
つまり、図23のように、データパケットの並べ替え情報には、「2」、「1」、「4」、「5」、「6」、「3」の数字の情報をFECヘッダに付加される。従って、データ受信装置150Bは、各データパケットの本来の並び順を正しく把握できる。
FECヘッダのフォーマットについては、図23に示した例の他に、例えば図24に示す形式を用いても良い。
図24に示す例では、データパケットの並べ替え情報として、「2」、「1」、「6」、「3」、「4」、「5」の6つの数字が書き込んである。これらの数字は、並べ替え処理により、並べ替え前のそれぞれのRTPデータパケットが何番目に移動したかを示している。つまり、Data1が2番目、Data2が1番目、Data3が6番目、Data4が3番目、Data5が4番目、Data6が5番目、に並べ替え後に移動することを示している。
次に、図26を用いてデータ送信装置100Bの処理の流れを説明する。
なお、前述の実施形態での説明と同様の処理を行う場合には、説明を省略または簡略化する。
まず、RTPデータパケット作成部112は、映像エンコーダ部111から映像コーデックデータを受け取り、RTPデータパケットを作成する。RTPデータパケット数がkの値となる(ステップS201)。
続いて、行列生成部114は、RTPデータパケット作成部112からのデータパケット数kの値と通信路ロス率算出部113からのロス率とに基づいて、冗長パケット数を含めた総パケット数Nを決定する(ステップS202)。
続いて、行列生成部114は、行列生成のためのSeedの値を決定する。行列生成部114は、総パケット数N、RTPデータパケット数k、Seedに基づいて、行列を生成する(ステップS203)。
続いて、データパケット並べ替え処理部115は、データパケットの並べ替え処理を行う(ステップS204)。データパケット並べ替え処理部115は、冗長パケットのデータ長の総和が小さな値になるように、RTPデータパケットの順番を並べ替える。
続いて、FECヘッダ作成部119Bは、行列生成部114からの行列情報と、RTPデータパケット作成部112からのRTPヘッダ情報に基づいて、FECヘッダ情報を作成する(ステップS205)。
続いて、FECヘッダ作成部119Bは、データパケット並べ替え処理部115から受け取ったデータパケットの並べ替え情報を、FECヘッダに付加する(ステップS206)。
続いて、FECデータ作成部118は、行列生成部114が生成した行列と、RTPデータパケット作成部112が作成したRTPデータパケットと、データパケット並べ替え処理部115が作成したデータパケットの並べ替え情報と、に基づいて、冗長パケットを作成する(ステップS207)。
また、FECデータ作成部118は、冗長パケットを作成するときに用いたパケットのパケット長の情報に基づいて、「Length recovery」を算出する。また、FECデータ作成部118は、FECヘッダ情報に含まれる「FEC sequence number」および「Length recovery」の値を、送信FECパケット作成部120に渡す。
送信FECパケット作成部120は、FECヘッダ作成部119BからのFECヘッダ情報と、FECデータ作成部118からの冗長パケットのデータ、「Length recovery」、「FEC sequence number」と、を受け取る。送信FECパケット作成部120は、受け取った情報を用いて、送信される冗長パケットを作成する。
続いて、パケット送出部121は、RTPデータパケット作成部112からRTPデータパケットを受け取り、送信FECパケット作成部120から冗長パケットを受け取る。パケット送出部121は、RTPデータパケットおよび冗長パケットを、データ受信装置150Bに向けて送信する(ステップS208)。
(受信側)
データ受信装置150Bについて説明する。
図25は、本開示の第2の実施形態におけるデータ受信装置150Bの構成例を示すブロック図である。図25において、実質的に第1の実施形態におけるデータ受信装置150と同じ機能を果たす構成要素については、同じ符号を付けて示してある。
図25に示すように、データ受信装置150Bの構成は図16のデータ受信装置150とほぼ同じである。但し、図25のRTPパケット保持部152Bの機能およびFECパケット保持部153Bの機能が少し変更されている。
RTPパケット保持部152Bは、RTPデータパケットの情報を保持する。パケット受信部151からRTPデータパケットを受け取る。RTPパケット保持部152Bは、RTPデータパケットから映像コーデックデータを得て、これを映像デコーダ部158に渡す。
また、RTPパケット保持部152Bは、RTPデータパケットをFEC復元処理部157に渡す。受け渡しはデータを保存している位置を示すポインタ情報であってもよい。
また、RTPパケット保持部152Bは、受信状況つまりパケットロスがあるかどうかの情報を含む受信パケット情報を、RTPパケットロス判定部154に渡す。また、RTPパケット保持部152Bは、FEC復元処理部157より復元されたRTPデータパケットを受け取る。
FECパケット保持部153Bは、冗長パケットの情報を保持する。FECパケット保持部153Bは、パケット受信部151から冗長パケットのデータを受け取る。また、FECパケット保持部153Bは、冗長パケットのデータをFEC復元処理部157に通知する。この通知は、データを保存している位置を示すポインタ情報であってもよい。
また、FECパケット保持部153Bは、FECヘッダに付加されている行列情報を行列生成部156に渡す。また、FECパケット保持部153Bは、冗長パケットのロス情報をロス率算出部155に渡す。総パケット数Nおよびデータパケット数kから受信すべき冗長パケットの数がわかるため、受信していない冗長パケットの数を把握できる。
また、FECパケット保持部153Bは、FEC復元処理部157によって復元された冗長パケットを受け取る。復元された冗長パケットを保持しておくことによって、再帰的に復元処理を可能とするためである。
また、FECパケット保持部153Bは、FECヘッダに付加されているデータパケットの並べ替え情報を、FEC復元処理部157に渡す。
FEC復元処理部157は、RTPパケット保持部152BからRTPデータパケットを受け取り、FECパケット保持部153Bから冗長パケットのデータを受け取る。また、FEC復元処理部157からデータパケットの並べ替え情報を受け取り、行列生成部114から行列データを受け取る。
FEC復元処理部157は、これらの受け取った情報に基づいて、ロスしたパケットを復元する。FEC復元処理部157は、復元されたパケットがRTPデータパケットの場合はRTPパケット保持部152Bに渡し、復元されたパケットが冗長パケットの場合はFECパケット保持部153Bに渡す。
データ受信装置150Bにおいて、上記以外の構成および動作は第1の実施形態と同様である。
また、データ受信装置150Bにおける処理の流れについては、第1の実施形態のデータ受信装置150における処理の流れ(図21)と同様であるので、説明は省略する。
(第3の実施形態)
第3の実施形態では、データパケットの並べ替えとともに、行列を並べ替えることを想定している。また、データパケットの並べ替え情報はRTPヘッダに格納され、行列の並べ替え情報はFECヘッダに格納されることを想定している。第1の実施形態と同じ内容については、説明を省略する。
(送信側)
データ送信装置200について説明する。
図27は、本開示の第3の実施形態におけるデータ送信装置200の構成例を示すブロック図である。
図27に示すように、データ送信装置200は、映像エンコーダ部211、RTPデータパケット作成部212、通信路ロス率算出部213、行列生成部214、行列並べ替え処理部215、データパケット並べ替え処理部216、RTPヘッダ修正部217、送信RTPパケット作成部218、FECデータ作成部219、FECヘッダ作成部220、送信FECパケット作成部221、およびパケット送出部222を備える。
映像エンコーダ部211は、図8の映像エンコーダ部111と同一である。RTPデータパケット作成部212は、図8のRTPデータパケット作成部112と同一である。通信路ロス率算出部213は、図8の通信路ロス率算出部113と同一である。
FECデータ作成部219は、図8のFECヘッダ作成部119と同一である。FECデータ作成部219は、図8のFECデータ作成部118と同一である。RTPヘッダ修正部217は、図8のRTPヘッダ修正部116と同一である。
送信RTPパケット作成部218は、図8の送信RTPパケット作成部117と同一である。送信FECパケット作成部221は、図8の送信FECパケット作成部120と同一である。パケット送出部222は、図8のパケット送出部121と同一である。
行列生成部214は、RTPデータパケット作成部212からのパケット数kの値と通信路ロス率算出部213からのロス率の情報とを基に、冗長パケットを作成するための行列を生成する。行列の生成方法は、行列生成部114による行列の生成方法と同様である。
行列生成部214は、生成された行列データを行列並べ替え処理部215に通知する。この通知に関しては、行列データを保存している位置を示すポインタ情報を通知してもよい。
行列並べ替え処理部215は、行列生成部214から行列データを受け取る。行列並べ替え処理部215は、行列データに対して行の並べ替えを行う行列の並べ替え処理を実施し、並べ替え後の行列データをFECデータ作成部219に通知する。
また、行列並べ替え処理部215は、FECヘッダ作成部220に行列情報および行列の並べ替え処理により得られる行列の並べ替え情報を通知する。また、行列並べ替え処理部215は、データパケット並べ替え処理部216に並べ替え後の行列データを通知する。行列データの通知については、行列データを保存している位置を示すポインタ情報の通知であってもよい。
なお、図27では、行列生成部214と行列並べ替え処理部215とを独立した構成要素として設ける場合を想定しているが、これらの処理部を一体化しても良い。
データパケット並べ替え処理部216は、行列並べ替え処理部215から並べ替え後の行列データを受け取り、RTPデータパケット作成部212からデータパケット数kと各データパケットのパケット長の情報を受け取る。
また、データパケット並べ替え処理部216は、並べ替え後の行列データに基づいて、データパケットの順番を並べ替える。データパケットの並べ替えの方法は、データパケット並べ替え処理部115によるデータパケットの並べ替えの方法と同様である。
なお、データパケットの並べ替え処理の前に、行列の並べ替え処理が行われる。なお、行列の並べ替え処理の前に、データパケットの並べ替え処理を行うことを排除するわけではない。
データパケット並べ替え処理部216は、データパケットの並べ替え処理を実施した結果としてのデータパケットの並べ替え情報を、FECデータ作成部219およびRTPヘッダ修正部217に通知する。
FECデータ作成部219は、並べ替え後の行列データ、RTPデータパケット、およびデータパケットの並べ替え情報に基づいて、冗長パケットを作成する。また、冗長パケットを作成するために、すでに作成した冗長パケットを利用する場合がある。その場合には、送信FECパケット作成部221から冗長パケットを受け取り、新たに冗長パケットを作成する。
また、FECデータ作成部219は、冗長パケットを作成するとき、あわせて「Length recovery」の値を算出する。
また、FECデータ作成部219は、作成された冗長パケットのデータ、「Length Recovery」の値、および「FEC Sequence Number」を含むFECヘッダ情報を、送信FECパケット作成部221に通知する。この通知は、保存している先を示すポインタ情報であってもよい。
FECヘッダ作成部220は、行列並べ替え処理部215から行列情報と行列の並べ替え情報とを受け取り、RTPデータパケット作成部212からRTPヘッダ情報を受け取る。FECヘッダ作成部220は、受け取った情報に基づいて、FECヘッダを生成する。
次に、ヘッダについて説明する。
図29は、冗長パケットのFECヘッダの具体例を示す図である。図15に示したヘッダとの差異は、MSB(most significant bit: 最上位Bit)に、行列の並べ替え処理を行うかどうかを示すフラグF1(「M」と表記されたビット)を用意していることである。これ以外は、図15に示した内容と同じである。
なお、図29は一例であって、行列の並べ替え処理を行ったことを示す情報をFECヘッダのどこに配置するかを限定するものではない。なお、行列の並べ替え処理を行ったことを示す情報を1ビットで表現すると限定するものではない。なお、行列の並べ替え処理を行ったことを示す情報を付加する位置をFECヘッダ内に限定するものではない。
次に、行列並べ替え処理部215における行列の並べ替え処理について説明する。
簡単に説明すると、行列の上にある行ほど冗長パケットのパケット長を削減することができることを利用して、冗長パケットのパケット長を削減できる行を上に移動させるように、行列並べ替え処理部215は行の並べ替え処理を行う。
具体的には、行列並べ替え処理部215は、行列の上位に「1」の少ない行を移動させる。次に、行列並べ替え処理部215は、上位の行の要素が「1」となっている列は既に対応するデータパケットが割り当てられているとみなし、まだデータパケットの割り当てられていない列だけを取り出す。そして、行列並べ替え処理部215は、要素に「1」の数が少ない行を選択する。行列並べ替え処理部215は、選択された行を、行列のまだ移動していない行の上位に移動させる。
全ての列に対してデータパケットの割り当てが終わったとみなせたとき、行列の並べ替え処理が完了する。行列並べ替え処理部215は、行列の並べ替え処理をA群の行列の各要素(Axy)に対して行う。B群の行列の各要素(Bxy)については何もしない。
図28を用いて、行列の並べ替え処理の内容を説明する。図28は、行列の並べ替え処理による行列の状態変化を示している。
図28の最初の状態「M0」は、図19(B)の行列と同じである。図28の各状態において、行列の各行に含まれる「1」の数が、各行の右側に示されている。また、各タイミングにおける行列の並べ替え処理の前の行番号が、行列の左側に示されている。「1」の数が最小である行は9行目(L9)であるから、L9を行列の最上位に移動する。移動後の状態を「M1」と示す。
「M1」の状態では、最上位に移動されたL9の11列目と12列目が「1」であるため、それ以外の列(1列目〜10列目)に含まれる「1」の数を確認する。11列目と12列目に含まれている「1」を除いたときの各行の「1」の数を、行列の右側に示している。「M1」の状態では、「1」が2個の行が、L6、L8、L12である。その中で一番上位にあるL6を、移動していない行の中の上位に移動する。つまり、L6を2行目に移動する。L6の移動後の状態を「M2」と示す。
「M2」の状態では、L6のうち「1」の列は、4列目と9列目である。4列目と9列目に含まれている「1」も除いたときの各行の「1」の数を、行列の右側に示している。「M2」の状態では、L8とL12の「1」の数が1であるため、上位にあるL8を移動する。移動後の状態が「M3」である。
上記と同様の処理を順次に繰り返すと、「M10」の状態で、L9,L6,L8,L5,L12,L1,L4,L7,L3,L2,L10,L11の順番に行の並べ替えが完了する。
なお、上記で説明した行列の行の並べ替え方法は、一つの例であり、別の方法であってもかまわない。データ送信装置200側とデータ受信装置250側において、同じ処理ができればよい。
次に、図32を用いてデータ送信装置200の処理の流れを説明する。
なお、前述の実施形態の説明と同様の処理を行う場合には、説明を省略または簡略化する。
まず、RTPデータパケット作成部212は、映像エンコーダ部211から映像コーデックデータを受け取り、RTPデータパケットを作成する。このRTPデータパケット数をkの値として決定する(ステップS301)。
続いて、行列生成部214は、RTPデータパケット作成部212からのパケット数kの値と通信路ロス率算出部213からのロス率とに基づいて、冗長パケット数を含めた総パケット数Nを決定する(ステップS302)。
続いて、行列生成部214は、行列生成のためのSeedの値を決定する。行列生成部214は、総パケット数N、データパケット数k、およびSeedの値に基づいて、行列を生成する(ステップS303)。
続いて、行列並べ替え処理部215は、行列の並べ替え処理を行う(ステップS304)。
続いて、データパケット並べ替え処理部216は、データパケットの並べ替え処理を行う(ステップS305)。
続いて、RTPヘッダ修正部217が、データパケット並べ替え処理部216から受け取ったデータパケットの並べ替え情報に基づいて、RTPヘッダの拡張ヘッダにデータパケットの並べ替え情報を付加する(ステップS306)。データパケットの並べ替え情報を付加するためのRTPヘッダのフォーマットは、図14に示した例と同じで良い。送信RTPパケット作成部218は、修正されたRTPヘッダとRTPデータパケットを用いて、送信されるRTPデータパケットを生成する。
続いて、FECヘッダ作成部220は、行列並べ替え処理部215からの行列情報および行列の並べ替え情報と、RTPデータパケット作成部212からのRTPヘッダ情報と、に基づいて、FECヘッダ情報を作成する(ステップS307)。
続いて、FECヘッダ作成部220は、FECヘッダ情報に行列の並べ替え処理を実施したことを示す情報を設定する(ステップS308)。具体的には、図29のヘッダフォーマットにおける「M」ビットのフラグF1を設定する。
続いて、FECデータ作成部219は、冗長パケットを作成する(ステップS309)。
また、FECデータ作成部219は、冗長パケットを作成するときに用いたパケットのパケット長の情報に基づいて、「Length recovery」を算出する。
また、FECデータ作成部219は、FECヘッダ情報に含まれる「FEC sequence number」と「Length recovery」の値を、送信FECパケット作成部221に渡す。
送信FECパケット作成部221は、FECヘッダ作成部220からのFECヘッダ情報を受け取る。また、送信FECパケット作成部221は、FECデータ作成部219から、冗長パケットのデータ、「Length recovery」、および「FEC sequence number」の値を受け取る。送信FECパケット作成部221は、受け取った情報を用いて、送信される冗長パケットを作成する。
続いて、パケット送出部222は、送信RTPパケット作成部218からRTPデータパケットを受け取り、送信FECパケット作成部221から冗長パケットを受け取る。パケット送出部222は、RTPデータパケットおよびFECパケットを、データ受信装置250に向けて送信する(ステップS310)。
次に、行列の並べ替え処理の詳細な手順について説明する。
図39は、行列並べ替え処理部215における行列の並べ替え処理の手順を示す図である。すなわち図39は、図32のステップS304の処理の詳細を示す。
まず、行列並べ替え処理部215は、行列の並べ替え処理中に使用する変数を初期化する。具体的には、「移動完了の行数」の変数を0に初期化し、「移動未実施の行数」の変数を「N−k」の状態に初期化する(ステップS21)。
続いて、行列並べ替え処理部215は、行列の移動完了行の各行の要素をチェックし、全て「0」である列を抽出する。また、行列並べ替え処理部215は、抽出された列に対し、移動未実施の各行に要素が「1」である列の数を計算する(ステップS22)。
続いて、行列並べ替え処理部215は、算出された「1」の数が移動未実施の全ての行において0になったか否かを識別する(ステップS23)。
移動未実施の全ての行において0でない場合、行列並べ替え処理部215は、行列の移動未実施の行の中で、算出された「1」の数が最小である行を抽出する。「1」の数が最小の行が複数ある場合は、上位にある行を抽出する。
続いて、行列並べ替え処理部215は、抽出された行を移動完了の行の最下位に移動する。
続いて、行列並べ替え処理部215は、「移動完了の行数」の値を1加算し、「移動未実施の行数」の値を1減算する(ステップS26)。
続いて、行列並べ替え処理部215は、「移動未実施の行数」の変数を参照し、移動未実施の行数が0か否かを識別する(ステップS27)。「移動未実施の行数」が0でなければステップS22に戻り、「移動未実施の行数」が0の場合は処理を終了する。
このように、データ送信装置200では、行列並べ替え処理部215が、行列データの各列にデータパケットが割り当てられる場合、行列データの上位行である程、割り当てられるデータパケットのパケット数が少なくなるよう、行列データの行を並べ替える。
データ送信装置200によれば、行列の行を所望の順番に並べ替えることで、更に生成される冗長パケットのデータ量を削減可能である。
(受信側)
データ受信装置250について説明する。
図30は、本開示の第3の実施形態におけるデータ受信装置250の構成例を示すブロック図である。
図30に示すように、データ受信装置250は、パケット受信部251、RTPパケット保持部252、FECパケット保持部253、RTPパケットロス判定部254、ロス率算出部255、行列生成部256、行列並べ替え処理部257、FEC復元処理部258、映像デコーダ部259、および映像表示部260を備える。
パケット受信部251は、図16のパケット受信部151と同一である。RTPパケット保持部252は、図16のRTPパケット保持部152と同一である。RTPパケットロス判定部254は、図16のRTPパケットロス判定部154と同一である。ロス率算出部255は、図16のロス率算出部155と同一である。映像デコーダ部259は、図16の映像デコーダ部158と同一である。
FECパケット保持部253は、パケット受信部251から冗長パケットのデータを受け取る。また、FECパケット保持部253は、冗長パケットのデータをFEC復元処理部258に通知する。この通知はデータを保存している位置を示すポインタ情報であってもよい。
また、FECパケット保持部253は、FECヘッダに含まれる行列情報を行列生成部256に渡す。また、FECパケット保持部253は、冗長パケットのロス情報をロス率算出部255に渡す。総パケット数Nから冗長パケットの数がわかるため、受信していない冗長パケットの数を把握できる。
また、FECパケット保持部253は、FEC復元処理部258によって復元された冗長パケットを受け取る。復元された冗長パケットを保持しておくことによって、再帰的にFEC復元処理を可能とするためである。
また、FECパケット保持部253は、行列の並べ替え情報を行列並べ替え処理部257に通知する。なお、行列生成部256と行列並べ替え処理部257は1つの処理部にまとめてもよい。この場合には、行列生成部256に渡す行列情報に、行列の並べ替え情報を含めてもよい。
なお、図29に示したFECヘッダのフォーマットの例では、行列の並べ替え処理を実施するかどうかを示す1ビットの情報(フラグF1)を用いている。なお、この1ビットの情報の代わりに、行列の並べ替え処理の結果をFECヘッダ内に格納してもよい。つまり行並べ替えの後の行の順番を示す数列情報であってもよい。なお、行並べ替え手順を示す手順情報であってもよい。なお、行並べ替え手順情報そのものではなく、どのような手順であるかを示すインデックス情報であってもよい。
行列生成部256は、FECパケット保持部253から行列情報を受け取り、この行列情報に基づいて行列を生成する。行列生成部256は、行列を生成する処理を、RTPパケットロス判定部254から行列生成指示を受信した場合に実行する。
行列生成部256は、行列並べ替え処理部257に生成された行列データを通知する。この通知については、行列データを保存している位置を示すポインタ情報であってもよい。
行列並べ替え処理部257は、行列生成部256から行列データを受け取り、FECパケット保持部253から行列の並べ替え情報を受け取る。行列並べ替え処理部257は、行列の並べ替え処理を行うことがFECヘッダに示されている場合、つまりFECヘッダにフラグF1が含まれている場合、行列の行を並べ替える行列の並べ替え処理を実施する。
また、行列並べ替え処理部257は、並べ替えた後の行列データをFEC復元処理部258に渡す。この受け渡しについては、行列データを保存している位置を示すポインタ情報であってもよい。
行列並べ替え処理部257が実行する行列の並べ替え処理のアルゴリズムは、データ送信装置200の行列並べ替え処理部215が実行する処理(図39の内容)と同じでよい。
FEC復元処理部258は、RTPパケット保持部252からRTPデータパケットを受け取り、FECパケット保持部253から冗長パケットのデータを受け取る。また、FEC復元処理部258は、RTPパケット保持部252からデータパケットの並べ替え情報を受け取り、行列並べ替え処理部257から並べ替え後の行列データを受け取る。
FEC復元処理部258は、データパケットの並べ替え情報に基づいて、データパケットを並べ替える。また、FEC復元処理部258は、これらの受け取った情報に基づいて、ロスしたパケットを復元する。FEC復元処理部258は、復元されたパケットがRTPデータパケットの場合は、そのパケットをRTPパケット保持部252に渡し、冗長パケットの場合は、そのパケットをFECパケット保持部253に渡す。
FEC復元処理部258によるFEC復元処理は、FEC復元処理部157によるFEC復元処理と同じでよい。
なお、データパケットの並べ替え処理の前に、行列の並べ替え処理が行われる。
なお、行列生成部256と行列並べ替え処理部257が一つの処理部にまとまっている場合には、FEC復元処理部258は、行列生成部256から並べ替え後の行列データを受け取ってもよい。
次に、図33を用いてデータ受信装置250の処理の流れを説明する。なお、前述の実施形態の説明と同様の処理を行う場合には、説明を省略または簡略化する。
まず、パケット受信部251がパケットを受信し、RTPパケット保持部252がRTPデータパケットを保存する。RTPパケットロス判定部254は、RTPパケット保持部252から受信パケット情報を受け取り、受信パケット情報に基づいてRTPデータパケットのパケットロスがあるかどうか判定する(ステップS351)。ロスが発見された場合には、RTPパケットロス判定部254が行列生成部256に行列生成指示を送信することによって復元処理が開始される。つまり、ステップS352以降の処理に進む。
まず、FECパケット保持部253から行列情報に含まれる総パケット数N、データパケット数k、およびSeedの値を、行列生成部256に渡す。そして、行列生成部214が行列を生成する(ステップS352)。
続いて、FECパケット保持部253は、FECヘッダに含まれている情報(例えば図29のフラグF1)から、行列の並べ替え処理を実施するかどうか識別する(ステップS353)。
行列の並べ替え処理を実施する場合には、行列並べ替え処理部257が実行する(ステップS354)。行列の並べ替え処理を実施しない場合には、行列をそのままにしておく。
続いて、FEC復元処理部258は、RTPヘッダ情報からデータパケットの並べ替えが行われたかどうかを判定する(ステップS355)。
続いて、FEC復元処理部258は、データパケットの並べ替え処理が行われた場合には、データパケットの並べ替え処理を実施する(ステップS356)。そして、FEC復元処理部258は、並べ替えられたデータパケットの復元処理を実施する(ステップS357)。
一方、FEC復元処理部258は、データパケットの並べ替えを行っていない場合には、そのままパケットの復元処理を実施する(ステップS357)。
続いて、FEC復元処理部258は、復元されたパケットを用いて、さらに復元できるパケットがないか確認する(ステップS358)、FEC復元処理部258は、復元できるパケットがあれば、復元処理を実施する(ステップS357)。
復元処理の対象となるパケットは、データパケットおよび冗長パケットの両方である。冗長パケットを復元することによって、再帰的に復元できるパケットが存在する場合があるためである。
次に、上述のデータパケットの並べ替え処理および行列の並べ替え処理による冗長パケットのデータ削減効果について検証する。
映像データをエンコードしパケットに分割したときの実データを用いて、どの程度の削減効果があるのか、その結果を図31に示す。図31の例では、12個のデータパケット(DATA1〜DATA12:図19に示したデータと同じ)を処理した結果を示している。このシミュレーションにおける行列の並べ替え処理の内容および並べ替え後の行列は、図28に示した行列と同じである。
図31では、データパケットの並べ替え処理を実施した結果D31Aと、データパケットの並べ替え処理および行列の並べ替え処理を実施した結果D31Bと、を区別して示している。
図31の結果D31Aは、データパケットの並べ替え処理を行った場合のデータの削減率を示している。つまり削減効果を示している。
ここでは、FEC1:76%,FEC2:73%,FEC3:69%,FEC4:10%,FEC5:1%である。また、冗長パケットの総データ量を比較すると、19%の削減効果があることが分かる。
一方、図31の結果D31Bは、データパケットの並べ替え処理および行列の並べ替え処理のいずれも行わなかった場合のデータの削減率に対する、行列の並べ替え処理を実施した後にデータパケットの並べ替え処理を行った場合のデータの削減率を示している。つまり削減効果を示している。
ここでは、FEC1:85%,FEC2:73%,FEC3:73%,FEC4:10%,FEC5:1%である。また、冗長パケットの総データ量を比較すると26%の削減効果があることが分かる。
つまり、第1の実施形態のように、データパケットの並べ替え処理を行ってから冗長パケットを作成すると、冗長パケットのデータ量を削減できる。さらに、第3の実施形態のように、行列の並べ替え処理とデータパケットの並べ替え処理とを行ってから冗長パケットを作成すると、冗長パケットのデータ量を更に削減できる。
このように、データ受信装置250では、FEC復元処理部258が、並べ替え後のデータパケットおよび冗長パケットの少なくとも一方と、並べ替え後の行列データと、に基づいて、非正常パケットを復元する。
データ受信装置250によれば、データ送信装置200側で並べ替えられた所望の順番と同じ順番にデータパケットおよび行列を並べ替えることができる。従って、ロスしたパケットの復元時のデータ量を更に削減可能である。
(第4の実施形態)
第4の実施形態では、データパケットを並べ替えるとともに、行列を並べ替えることを想定している。また、データパケットの並べ替え情報および行列の並べ替え情報は、ともにFECヘッダに格納されることを想定している。第1の実施形態〜第3の実施形態と同じ内容については、説明を省略する。
(送信側)
データ送信装置について説明する。
図34は、本開示の第4の実施形態におけるデータ送信装置200Bの構成例を示すブロック図である。図34において、実質的に第3の実施形態におけるデータ送信装置200と同じ機能を果たす構成要素については、同じ符号を付けて示してある。
図34に示すように、データ送信装置200Bは、図27に示すRTPヘッダ修正部217および送信RTPパケット作成部218を備えていない。また、FECヘッダ作成部220Bの機能は、図27に示すFECヘッダ作成部220の機能とは少し異なっている。
パケット送出部222は、RTPデータパケット作成部212からRTPデータパケットを受け取る。また、FECデータ作成部219は、RTPデータパケット作成部212からRTPデータパケットを受け取る。
FECヘッダ作成部220Bは、行列並べ替え処理部215から行列情報と行列の並べ替え情報を受け取り、RTPデータパケット作成部212からRTPヘッダ情報を受け取る。また、FECヘッダ作成部220Bは、データパケット並べ替え処理部216からデータパケットの並べ替え情報を受け取る。FECヘッダ作成部220Bは、受け取った情報に基づいてFECヘッダを生成する。
FECヘッダ作成部220Bは、作成されたFECヘッダ情報を送信FECパケット作成部221に渡す。この受け渡しは、FECヘッダ情報が存在する位置を示すポインタ情報の受け渡しであってもよい。
次に、ヘッダについて説明する。
図35はFECヘッダの一例を示す図である。
図35に示すFECヘッダには、図29の例と同様に、行列の並べ替えの有無を表すフラグF1を格納する領域が含まれている。また、図35に示すFECヘッダには、データパケットの並べ替え情報を格納する領域が含まれている。図35に示すFECヘッダに格納されるデータパケットの並べ替え情報は、第2の実施形態で説明したFECヘッダに格納されるデータパケットの並べ替え情報と同じである。
次に、図37を用いてデータ送信装置200Bの処理の流れを説明する。
なお、前述の実施形態の説明と同様の処理を行う場合には、説明を省略または簡略化する。
まず、RTPデータパケット作成部212は、映像エンコーダ部211から映像コーデックデータを受け取り、RTPデータパケットを作成する。このRTPデータパケット数をkの値として決定する(ステップS401)。
続いて、行列生成部214は、RTPデータパケット作成部212からのパケット数kの値と通信路ロス率算出部213からのロス率とに基づいて、冗長パケット数を含めた総パケット数Nを決定する(ステップS402)。
続いて、行列生成部214は、行列生成のためのSeedの値を決定する。そして、行列生成部214は、総パケット数Nの値、データパケット数k、およびSeedの値に基づいて、行列を生成する(ステップS403)。
続いて、行列並べ替え処理部215は、行列の並べ替え処理を行う(ステップS404)。
続いて、データパケット並べ替え処理部216は、データパケットの並べ替え処理を行う(ステップS405)。
続いて、FECヘッダ作成部220Bは、FECヘッダ情報を作成する(ステップS406)。
続いて、FECヘッダ作成部220Bは、FECヘッダ情報に行列の並べ替え処理を実施したことを示す情報を設定する(ステップS407)。具体的には、図35に示したヘッダフォーマットのフラグF1(Mビット)が設定される。
続いて、FECデータ作成部219は、冗長パケットを作成する(ステップS408)。
また、FECデータ作成部219は、冗長パケットを作成するときに用いたパケットのパケット長の情報を用いて「Length recovery」を算出する。また、FECデータ作成部219は、FECヘッダ情報に含まれる「FEC sequence number」と「Length recovery」の値を、送信FECパケット作成部221に渡す。
送信FECパケット作成部221は、FECヘッダ作成部220BからのFECヘッダ情報と、FECデータ作成部219からの冗長パケットのデータ、「Length recovery」の値、および「FEC sequence number」を受け取る。送信FECパケット作成部221は、受け取った情報に基づいて、送信される冗長パケットを作成する。
続いて、パケット送出部222が、RTPデータパケット作成部212からRTPデータパケットを受け取り、送信FECパケット作成部221から冗長パケットを受け取る。パケット送出部222は、RTPデータパケットおよび冗長パケットを、データ受信装置250Bに向けて送信する(ステップS409)。
(受信側)
データ受信装置について説明する。
図36は、本開示の第4の実施形態におけるデータ受信装置250Bの構成例を示すブロック図である。図25において、実質的に第1の実施形態におけるデータ受信装置150と同じ機能を果たす構成要素については、同じ符号を付けて示してある。
図36に示すように、データ受信装置250Bの構成は図30のデータ受信装置250とほぼ同じである。但し、RTPパケット保持部252Bの機能およびFECパケット保持部253Bの機能が少し変更されている。
RTPパケット保持部252Bは、パケット受信部251からRTPデータパケットを受け取る。RTPパケット保持部252Bは、RTPデータパケットから映像コーデックデータを得て、これを映像デコーダ部259に渡す。
また、RTPパケット保持部252Bは、RTPデータパケットをFEC復元処理部258に渡す。この受け渡しは、RTPデータパケットを保存している位置を示すポインタ情報であってもよい。
また、RTPパケット保持部252Bは、受信状況つまりパケットロスがあるかどうかの情報を含む受信パケット情報をRTPパケットロス判定部254に渡す。また、RTPパケット保持部252Bは、FEC復元処理部258から復元されたRTPデータパケットを受け取る。
FECパケット保持部253Bは、パケット受信部251から冗長パケットのデータを受信する。また、FECパケット保持部253Bは、冗長パケットのデータをFEC復元処理部258に通知する。この通知はデータを保存している位置を示すポインタ情報であってもよい。
また、FECパケット保持部253Bは、FECヘッダに付加されている行列情報を行列生成部256に渡す。また、FECパケット保持部253Bは、冗長パケットのロス情報をロス率算出部255に渡す。総パケット数Nおよびデータパケット数kから受信すべき冗長パケットの数がわかるため、受信していない冗長パケットの数を把握できる。
また、FECパケット保持部253Bは、FEC復元処理部258によって復元された冗長パケットを受け取る。復元された冗長パケットを保持しておくことによって、再帰的にFEC復元処理を可能とするためである。
また、FECパケット保持部253Bは、FECヘッダに付加されているデータパケットの並べ替え情報をFEC復元処理部258に渡す。また、FECパケット保持部253Bは、行列の並べ替え情報を行列並べ替え処理部257に通知する。
次に、データ受信装置250Bにおける処理の流れについて説明する。
データ受信装置250Bにおける処理の流れは、既に説明した図33に示した処理の流れと同様であるので、説明を省略する。
なお、本開示は、上記実施形態の構成に限られるものではなく、特許請求の範囲によって示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
上記実施形態では、本開示をハードウェアで構成する場合を例にとって説明したが、本開示はハードウェアとの連携においてソフトウェアでも実現することも可能である。
また、上記実施形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。例えば、LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続、または、設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
本開示を詳細にまた特定の実施態様を参照して説明したが、本開示の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
本開示は、2012年1月31日出願の日本特許出願No.2012-019160に基づくものであり、その内容はここに参照として取り込まれる。
(開示の一態様の概要)
本開示の第1の通信装置は、
データパケットを生成するデータパケット生成部と、
前記データパケットの並べ替えを行うデータ並べ替え処理部と、
前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記データパケットに適用される行列データに基づいて、前記データパケットに対する冗長パケットを生成する冗長パケット生成部と、
を備える。
この構成によれば、並べ替えられたデータパケットおよび行列データを用いることで、冗長パケットのデータ量を削減可能である。従って、冗長パケット作成時のデータ演算量が減少し、通信装置の処理負荷を低減できる。さらに、伝送路に送出されるデータ量も削減されるので、伝送路の帯域を効率的に利用できる。
また、本開示の第2の通信装置は、第1の通信装置であって、
前記行列データを生成する行列データ生成部を備える。
また、本開示の第3の通信装置は、第1または第2の通信装置であって、
前記データ並べ替え処理部は、前記冗長パケットのパケットサイズの総和に基づいて、前記データパケットの並べ替えを行う。
また、本開示の第4の通信装置は、第3の通信装置であって、
前記データ並べ替え処理部は、前記冗長パケットのパケットサイズの総和が小さくなるよう、前記データパケットの並べ替えを行う。
また、本開示の第5の通信装置は、第1ないし第4のいずれか1つの通信装置であって、
前記データ並べ替え処理部は、前記行列データの各列にデータパケットが割り当てられる場合、前記行列データの上位行である程、割り当てられるデータパケットのパケット長が短くなるよう、前記データパケットを並べ替える。
また、本開示の第6の通信装置は、第1ないし第5のいずれか1つの通信装置であって、
前記行列データの行の並べ替えを行う行列並べ替え処理部を備え、
前記冗長パケット生成部は、前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記行列並べ替え処理部により並べ替えられた行列データに基づいて、前記冗長パケットを生成する。
また、本開示の第7の通信装置は、第6の通信装置であって、
前記行列並べ替え処理部は、前記データ並べ替え処理部によるデータパケットの並べ替えの前に、前記行列データの行の並べ替えを行う。
また、本開示の第8の通信装置は、第6または第7の通信装置であって、
前記行列並べ替え処理部は、前記行列データの各列にデータパケットが割り当てられる場合、前記行列データの上位行である程、割り当てられるデータパケットのパケット数が少なくなるよう、前記行列データの行を並べ替える。
また、本開示の第9の通信装置は、第1ないし第8のいずれか1つの通信装置であって、
前記データパケットのヘッダであるデータパケットヘッダを生成するデータパケットヘッダ生成部を備え、
前記データパケットヘッダは、前記データ並べ替え処理部により並べ替えられたデータパケットの並べ替え情報を含む。
また、本開示の第10の通信装置は、第1ないし第8のいずれか1つの通信装置であって、
前記冗長パケットのヘッダである冗長パケットヘッダを生成する冗長パケットヘッダ生成部を備え、
前記冗長パケットヘッダは、前記データ並べ替え処理部により並べ替えられたデータパケットの並べ替え情報を含む。
また、本開示の第11の通信装置は、第9または第10の通信装置であって、
前記冗長パケットのヘッダである冗長パケットヘッダを生成する冗長パケットヘッダ生成部を備え、
前記冗長パケットヘッダは、前記行列並べ替え処理部により並べ替えられた行列データの並べ替え情報を含む。
また、本開示の第12の通信装置は、第9または第10の通信装置であって、
前記冗長パケットのヘッダである冗長パケットヘッダを生成する冗長パケットヘッダ生成部を備え、
前記冗長パケットヘッダは、前記正常に受信されないロスまたは非正常パケットのパケット長を復元するためのパケット長情報を含む。
また、本開示の第13の通信装置は、
データパケットおよび前記データパケットに対する冗長パケットの少なくとも一方を含むパケットである受信パケットを受信する受信部と、
前記受信パケットに含まれるデータパケットの並べ替え情報に基づいて、前記データパケットを並べ替えるデータ並べ替え処理部と、
前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記受信部により受信された冗長パケットの少なくとも一方と、前記データパケットに適用される行列データと、に基づいて、ロスまたは前記受信部により正常に受信されなかった非正常パケットを復元する復元処理部と、
を備える。
この構成によれば、データパケットおよびデータ量が削減された冗長パケットの少なくとも一方を用いて、データパケットを確実に復元できる。また、冗長パケットのデータ量が削減されているので、データパケットの復元時のデータ演算量が減少し、通信装置の処理負荷を低減できる。
また、本開示の第14の通信装置は、第13の通信装置であって、
前記受信パケットに含まれる前記行列データの並べ替え情報に基づいて、前記行列データの行を並べ替える行列並べ替え処理部を備え、
前記復元処理部は、前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記受信部により受信された冗長パケットの少なくとも一方と、前記行列並べ替え処理部により並べ替えられた行列データと、に基づいて、ロスまたは前記受信部により正常に受信されなかった非正常パケットを復元する。
また、本開示の第15の通信装置は、第14の通信装置であって、
前記行列並べ替え処理部は、前記データ並べ替え処理部によるデータパケットの並べ替えの前に、前記行列データの行の並べ替えを行う。
また、本開示の第16の通信方法は、
データパケットを生成するステップと、
前記データパケットの並べ替えを行うステップと、
並べ替えられた前記データパケットおよび前記データパケットに適用される行列データに基づいて、前記データパケットに対する冗長パケットを生成するステップと、
を有する。
この方法によれば、並べ替えられたデータパケットおよび行列データを用いることで、冗長パケットのデータ量を削減可能である。従って、冗長パケット作成時のデータ演算量が減少し、通信装置の処理負荷を低減できる。さらに、伝送路に送出されるデータ量も削減されるので、伝送路の帯域を効率的に利用できる。
また、本開示の第17の通信方法は、
データパケットおよび前記データパケットに対する冗長パケットの少なくとも一方を含むパケットである受信パケットを受信するステップと、
前記受信パケットに含まれるデータパケットの並べ替え情報に基づいて、前記データパケットを並べ替えるステップと、
前記並べ替えられたデータパケットおよび前記受信された冗長パケットの少なくとも一方と、前記データパケットに適用される行列データと、に基づいて、ロスまたは正常に受信されなかった非正常パケットを復元するステップと、
を有する。
この方法によれば、データパケットおよびデータ量が削減された冗長パケットの少なくとも一方を用いて、データパケットを確実に復元できる。また、冗長パケットのデータ量が削減されているので、データパケットの復元時のデータ演算量が減少し、通信装置の処理負荷を低減できる。
本開示は、冗長パケットのデータ量を削減可能な通信装置等に有用である。
100,100B,200,200B データ送信装置
111 映像エンコーダ部
112 RTPデータパケット作成部
113 通信路ロス率算出部
114 行列生成部
115 データパケット並べ替え処理部
116 RTPヘッダ修正部
117 送信RTPパケット作成部
118 FECデータ作成部
119,119B FECヘッダ作成部
120 送信FECパケット作成部
121 パケット送出部
150,150B,250,250B データ受信装置
151 パケット受信部
152,152B RTPパケット保持部
153,153B FECパケット保持部
154 RTPパケットロス判定部
155 ロス率算出部
156 行列生成部
157 FEC復元処理部
158 映像デコーダ部
159 映像表示部
211 映像エンコーダ部
212 RTPデータパケット作成部
213 通信路ロス率算出部
214 行列生成部
215 行列並べ替え処理部
216 データパケット並べ替え処理部
217 RTPヘッダ修正部
218 送信RTPパケット作成部
219 FECデータ作成部
220,220B FECヘッダ作成部
221 送信FECパケット作成部
222 パケット送出部
251 パケット受信部
252,252B RTPパケット保持部
253,253B FECパケット保持部
254 RTPパケットロス判定部
255 ロス率算出部
256 行列生成部
257 行列並べ替え処理部
258 FEC復元処理部
259 映像デコーダ部
260 映像表示部
PS10,PS11,PS12 データパケット群
F1 フラグ

Claims (17)

  1. データパケットを生成するデータパケット生成部と、
    前記データパケットの並べ替えを行うデータ並べ替え処理部と、
    前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記データパケットに適用される行列データに基づいて、前記データパケットに対する冗長パケットを生成する冗長パケット生成部と、
    を備える通信装置。
  2. 請求項1に記載の通信装置であって、更に、
    前記行列データを生成する行列データ生成部を備える通信装置。
  3. 請求項1または2に記載の通信装置であって、
    前記データ並べ替え処理部は、前記冗長パケットのパケットサイズの総和に基づいて、前記データパケットの並べ替えを行う通信装置。
  4. 請求項3に記載の通信装置であって、
    前記データ並べ替え処理部は、前記冗長パケットのパケットサイズの総和が小さくなるよう、前記データパケットの並べ替えを行う通信装置。
  5. 請求項1ないし4のいずれか1項に記載の通信装置であって、
    前記データ並べ替え処理部は、前記行列データの各列にデータパケットが割り当てられる場合、前記行列データの上位行である程、割り当てられるデータパケットのパケット長が短くなるよう、前記データパケットを並べ替える通信装置。
  6. 請求項1ないし5のいずれか1項に記載の通信装置であって、更に、
    前記行列データの行の並べ替えを行う行列並べ替え処理部を備え、
    前記冗長パケット生成部は、前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記行列並べ替え処理部により並べ替えられた行列データに基づいて、前記冗長パケットを生成する通信装置。
  7. 請求項6に記載の通信装置であって、
    前記行列並べ替え処理部は、前記データ並べ替え処理部によるデータパケットの並べ替えの前に、前記行列データの行の並べ替えを行う通信装置。
  8. 請求項6または7に記載の通信装置であって、
    前記行列並べ替え処理部は、前記行列データの各列にデータパケットが割り当てられる場合、前記行列データの上位行である程、割り当てられるデータパケットのパケット数が少なくなるよう、前記行列データの行を並べ替える通信装置。
  9. 請求項1ないし8のいずれか1項に記載の通信装置であって、更に、
    前記データパケットのヘッダであるデータパケットヘッダを生成するデータパケットヘッダ生成部を備え、
    前記データパケットヘッダは、前記データ並べ替え処理部により並べ替えられたデータパケットの並べ替え情報を含む通信装置。
  10. 請求項1ないし8のいずれか1項に記載の通信装置であって、更に、
    前記冗長パケットのヘッダである冗長パケットヘッダを生成する冗長パケットヘッダ生成部を備え、
    前記冗長パケットヘッダは、前記データ並べ替え処理部により並べ替えられたデータパケットの並べ替え情報を含む通信装置。
  11. 請求項9または10に記載の通信装置であって、
    前記冗長パケットのヘッダである冗長パケットヘッダを生成する冗長パケットヘッダ生成部を備え、
    前記冗長パケットヘッダは、前記行列並べ替え処理部により並べ替えられた行列データの並べ替え情報を含む通信装置。
  12. 請求項9または10に記載の通信装置であって、
    前記冗長パケットのヘッダである冗長パケットヘッダを生成する冗長パケットヘッダ生成部を備え、
    前記冗長パケットヘッダは、前記正常に受信されないロスまたは非正常パケットのパケット長を復元するためのパケット長情報を含む通信装置。
  13. データパケットおよび前記データパケットに対する冗長パケットの少なくとも一方を含むパケットである受信パケットを受信する受信部と、
    前記受信パケットに含まれるデータパケットの並べ替え情報に基づいて、前記データパケットを並べ替えるデータ並べ替え処理部と、
    前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記受信部により受信された冗長パケットの少なくとも一方と、前記データパケットに適用される行列データと、に基づいて、ロスまたは前記受信部により正常に受信されなかった非正常パケットを復元する復元処理部と、
    を備える通信装置。
  14. 請求項13に記載の通信装置であって、更に、
    前記受信パケットに含まれる前記行列データの並べ替え情報に基づいて、前記行列データの行を並べ替える行列並べ替え処理部を備え、
    前記復元処理部は、前記データ並べ替え処理部により並べ替えられたデータパケットおよび前記受信部により受信された冗長パケットの少なくとも一方と、前記行列並べ替え処理部により並べ替えられた行列データと、に基づいて、ロスまたは前記受信部により正常に受信されなかった非正常パケットを復元する通信装置。
  15. 請求項14に記載の通信装置であって、
    前記行列並べ替え処理部は、前記データ並べ替え処理部によるデータパケットの並べ替えの前に、前記行列データの行の並べ替えを行う通信装置。
  16. データパケットを生成するステップと、
    前記データパケットの並べ替えを行うステップと、
    並べ替えられた前記データパケットおよび前記データパケットに適用される行列データに基づいて、前記データパケットに対する冗長パケットを生成するステップと、
    を有する通信方法。
  17. データパケットおよび前記データパケットに対する冗長パケットの少なくとも一方を含むパケットである受信パケットを受信するステップと、
    前記受信パケットに含まれるデータパケットの並べ替え情報に基づいて、前記データパケットを並べ替えるステップと、
    前記並べ替えられたデータパケットおよび前記受信された冗長パケットの少なくとも一方と、前記データパケットに適用される行列データと、に基づいて、ロスまたは正常に受信されなかった非正常パケットを復元するステップと、
    を有する通信方法。
JP2013556052A 2012-01-31 2012-11-27 通信装置および通信方法 Pending JPWO2013114496A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013556052A JPWO2013114496A1 (ja) 2012-01-31 2012-11-27 通信装置および通信方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012019160 2012-01-31
JP2012019160 2012-01-31
JP2013556052A JPWO2013114496A1 (ja) 2012-01-31 2012-11-27 通信装置および通信方法

Publications (1)

Publication Number Publication Date
JPWO2013114496A1 true JPWO2013114496A1 (ja) 2015-05-11

Family

ID=48904586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013556052A Pending JPWO2013114496A1 (ja) 2012-01-31 2012-11-27 通信装置および通信方法

Country Status (3)

Country Link
US (1) US20140133498A1 (ja)
JP (1) JPWO2013114496A1 (ja)
WO (1) WO2013114496A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146966B2 (en) * 2013-06-18 2021-10-12 Itron Networked Solutions, Inc. Configuring a network of devices to operate within a television whitespace spectrum
KR102025619B1 (ko) * 2017-09-04 2019-09-27 엘아이지넥스원 주식회사 대용량 패킷 암호화 장치 및 이를 이용하는 패킷 통신 장치
KR101870750B1 (ko) * 2017-12-28 2018-06-26 오픈스택 주식회사 패킷 전송 순서 재배열을 이용한 영상 인코딩 장치 및 그 동작 방법
JP7307613B2 (ja) * 2019-07-04 2023-07-12 日本放送協会 送信サーバ、送信装置、受信装置及びプログラム
CN111935485A (zh) * 2020-08-10 2020-11-13 北京佳讯飞鸿电气股份有限公司 一种rs码前向纠错方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100683179B1 (ko) * 2003-11-03 2007-02-15 삼성전자주식회사 듀얼 스트림용 디지털 방송 송/수신 시스템의 강건한에러정정 부호화/복호화 장치 및 그의 방법
JP2008017330A (ja) * 2006-07-07 2008-01-24 Toshiba Corp 映像音声配信装置
CN101563874B (zh) * 2006-12-21 2012-05-23 汤姆森许可贸易公司 支持对因特网协议网络上的音频以及视频数据进行前向纠错的方法
JP4356742B2 (ja) * 2006-12-25 2009-11-04 ソニー株式会社 データ通信システム、データ送信装置およびデータ送信方法
WO2008099617A1 (ja) * 2007-02-16 2008-08-21 Panasonic Corporation 送信装置、受信装置、符号化器、及び、符号化方法
JP5354985B2 (ja) * 2007-07-30 2013-11-27 パナソニック株式会社 符号化装置及び復号化装置
KR101481431B1 (ko) * 2008-12-08 2015-01-12 삼성전자주식회사 저밀도 패리티 검사 행렬 재배열 방법 및 이를 이용하는 장치

Also Published As

Publication number Publication date
US20140133498A1 (en) 2014-05-15
WO2013114496A1 (ja) 2013-08-08

Similar Documents

Publication Publication Date Title
KR102133930B1 (ko) 데이터 패킷 송수신 장치 및 방법
JP6181654B2 (ja) データ通信システムにおける符号化装置及び方法
CN100362782C (zh) 对丢失数据单元进行恢复的方法
WO2015184914A1 (zh) 一种数据包处理方法及装置
JPWO2013114496A1 (ja) 通信装置および通信方法
US8819513B2 (en) Lost real-time media packet recovery
US10218821B2 (en) Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
US20130097474A1 (en) Apparatus and method for transmitting/receiving forward error correction packet in mobile communication system
WO2017112744A1 (en) Improved joint fountain coding and network coding for loss-tolerant information spreading
JP2007143142A (ja) 無線ネットワークにおけるデータ伝送方法及び装置
CN112751644B (zh) 数据传输方法、装置及系统、电子设备
US8942084B2 (en) Method of reducing retransmission of data frame and receiving node therefor
KR20090058927A (ko) 데이터 블록 전송방법
US9705640B2 (en) Method and apparatus for decoding received packets in broadcasting and communication system
KR20130086552A (ko) 점진 열화 순방향 오류 정정 방법 및 이를 수행하는 장치
JP6511472B2 (ja) ブロードキャスティング及び/又は通信システムにおけるパケットの生成及び復元のための方法及び装置
JP6371830B2 (ja) 前方誤り訂正パケット送信方法
US10833710B2 (en) Bandwidth efficient FEC scheme supporting uneven levels of protection
KR101967884B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
TWI520528B (zh) 增壓碼
JP2014007664A (ja) 送信装置、通信システム、及び送信方法
JP5711507B2 (ja) データ伝送システム及び方法及び受信装置及びデータ受信方法