JP5377040B2 - 送信装置及び送信方法 - Google Patents

送信装置及び送信方法 Download PDF

Info

Publication number
JP5377040B2
JP5377040B2 JP2009094101A JP2009094101A JP5377040B2 JP 5377040 B2 JP5377040 B2 JP 5377040B2 JP 2009094101 A JP2009094101 A JP 2009094101A JP 2009094101 A JP2009094101 A JP 2009094101A JP 5377040 B2 JP5377040 B2 JP 5377040B2
Authority
JP
Japan
Prior art keywords
packet
packets
error correction
fec
video
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.)
Active
Application number
JP2009094101A
Other languages
English (en)
Other versions
JP2010245954A (ja
JP2010245954A5 (ja
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009094101A priority Critical patent/JP5377040B2/ja
Priority to US12/754,492 priority patent/US8867628B2/en
Publication of JP2010245954A publication Critical patent/JP2010245954A/ja
Publication of JP2010245954A5 publication Critical patent/JP2010245954A5/ja
Application granted granted Critical
Publication of JP5377040B2 publication Critical patent/JP5377040B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、送信装置及び送信方法に関する。
近年、ネットワークを介した動画像データの送受信が急増している。インターネットの広帯域化やLANの普及により従来と比べて動画像データの送受信は容易になったものの、動画像の高画質化や利用形態の多様化により依然として動画像データの送受信はネットワークに高い負荷を与えている。
単位時間あたりの転送データ量が大きい動画像データからは数多くのパケットが生成され、離散的に発生する通信エラーとパケット中継器における通信バッファ溢れによるパケットの欠落(パケットロス)が発生し易い。
パケットロスによる映像品質の低下を防ぐ従来技術として前方誤り訂正方式(Forward Error Correction方式、以下、FEC方式)がある(非特許文献1)。FEC方式では、1つ以上の動画パケットのグループに対しFEC生成演算を行うことでFECパケット(誤り訂正パケット)を生成し、動画パケットと共に受信側に送信する。FEC生成演算としてはXOR演算が代表的である。XOR演算を使用した場合、グループ内の動画パケットが1つ欠落した場合、グループ内の欠落していない動画パケットとFECパケットを演算処理することで欠落した動画パケットを復元することができる。FECパケットはグループ化する動画パケットの数とグループ化方法によって様々な生成が可能である。
また、特許文献1には、送信先ノードと送信元ノードとの間のネットワーク経路の品質情報に基づいて、誤り訂正符号化パラメータを変更することが記載されている。
特開2004−215224号公報
RFC2733
しかしながら、動画像データを複数の通信相手に送信する場合、通信相手ごとに誤り訂正データのデータ量に関する設定が異なると、誤り訂正データを生成するために大きな負荷が必要となる。
例えば、ある受信装置に対して、3つの動画パケットに対して1つのFECパケットを送信し、別の受信装置に対して、4つの動画パケットに対して1つのFECパケットを送信する場合を考える。このような場合、それぞれの受信装置に対して、FECパケットを生成すると、FECパケットの生成負荷が大きくなる。
本発明は以上の問題を鑑みたものであり、その目的は、通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減することである。
上記の問題点を解決するために、本発明の送信装置は、例えば、以下の構成を有する。すなわち、受信装置に対してパケットを送信する送信装置であって、第1の動画パケットと第2の動画パケットを含む第1の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第1の誤り訂正パケットを生成し、前記第1の動画パケットと第3の動画パケットを含み、前記第2の動画パケットを含まない第2の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる訂正するための第2の誤り訂正パケットを生成する生成手段と、前記第1、第2及び第3の動画パケットを第1及び第2の受信装置に送信し、前記生成手段により生成された前記第1及び第2の誤り訂正パケットのうち前記第1の誤り訂正パケットを前記第1及び第2の受信装置に送信し、前記生成手段により生成された前記第1及び第2の誤り訂正パケットのうち前記第2の誤り訂正パケットを前記第1の受信装置には送信せずに、前記第2の受信装置に送信することを決定する決定手段とを有する。
本発明によれば、通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減することができる。
動画像配信システムの全体構成図 送信装置の機能構成を示すブロック図 FECパケットの生成パターンを決定する手順を示すフローチャート 実施形態1で生成される二次元FEC 動画パケットとFECパケットのデータ構造 パケット送信部が送信するFECパケットを選択する手順を示すフローチャート 実施形態2で生成される二次元FEC
以下、本発明の誤り訂正データ生成及び送信方法を動画像送信装置に適用した好適な実施形態について、図面を参照しながら説明する。実施形態1、2は共にFECパケットを生成する方法としてXOR演算を用いた二次元FEC方式を採用した場合の例である。ただし、これらの例に限定されるものではない。
<実施形態1>
図1は本実施形態のシステムの全体の構成図である。図1に示されるように、送信装置101、受信装置103、104、105、及び、アクセスポイント106が、それぞれインターネット102に接続されている。
送信装置101は、ストリーミング機能を有し、受信装置に対して動画パケットを送信するストリーミングサーバとして動作する。すなわち、送信装置101は、受信装置に対して動画パケットを送信する送信装置である。
受信装置103、104は、有線のネットワークでインターネット102に接続されている。また、受信装置105は、アクセスポイント106を用いた無線LAN接続を介してインターネット102に接続されている。受信装置103〜105は、送信装置101から動画像のストリーミングデータを受信するクライアントとして動作する。尚、102は、インターネットに限らない。
送信装置101は、受信装置103をクライアント1、受信装置104をクライアント2、受信装置105をクライアント3として認識されている。送信装置101から各受信装置までの利用可能ネットワーク帯域は個別に変動し、パケットロス率も各経路で個別に変動する。特に、送信装置101から受信装置105までの経路では、無線通信部分におけるパケットロス率が有線部分と比べて大きくなる。
ここで、本実施形態の二次元FECと、送信装置101が生成するFECパケットに関するFEC生成パラメータについて、図4を用いて説明する。尚、FECパケットは、通信経路上でエラーとなった動画パケットを受信装置が訂正するために用いる誤り訂正用のパケットである。つまり、送信装置101が、あるグループを構成する複数の動画パケットで1つのFECパケットを生成した場合、受信装置は、グループ内の動画パケットが1つエラーしても、グループ内のほかの動画パケット及びFECパケットで、エラーを訂正できる。尚、1つの動画パケットで1つのグループを構成することも可能である。
図4に示すように、本形態の送信装置101は、各動画パケットが、2つのグループに属するように、FECパケットを生成する。また、本形態の送信装置101は、図4の動画パケット409、動画パケット410の順に左から送信する。そして、1行目の動画パケットを送信すると、2行目の動画パケット411、動画パケット412の順に左から送信する。
つまり、送信装置101は、送信順序が連続する複数の動画パケットの組み合わせに基づいて、FECパケットを生成する。送信順序が連続する複数の動画パケットの組み合わせに基づいて生成されたFECパケットが、行方向FECパケット401〜403である。
また、送信装置101は、送信順序が連続しない複数の動画パケットの組み合わせに基づいて、FECパケットを生成する。送信順序が連続しない複数の動画パケットの組み合わせに基づいて生成されたFECパケットが、列方向FECパケット404〜408である。
このように、本形態の送信装置101は、2つの異なる生成パターンによってFECパケットを生成する。また、送信装置101は、各生成パターンにおいて、FECパケットを生成するために用いる動画パケットの数(FEC生成パラメータ)を、複数のクライアントのFECレートに基づいて決定する。つまり、送信装置101は、図4に示すような例において、縦と横の動画パケットの数を、複数のクライアントのFECレートに基づいて決定する。
尚、本実施形態では、送信順序が連続する複数の動画パケットでFECパケットを生成する生成パターンと、送信順序が連続しない複数の動画パケットでFECパケットを生成する生成パターンについて説明するが、生成パターンは、これに限らない。各動画パケットが複数のグループに属するように、FECパケットを生成する生成パターンを用いれば、本発明は適用可能である。
本実施形態の送信装置101は、複数のクライアント(受信装置103〜105)に動画パケットを配信する場合、各クライアントとの間の通信状況などに応じて、適したFECレートを決定する。ここで、FECレートは、動画パケットの数に対するFECパケットの数を示している。
本形態の送信装置101は、決定された複数のFECレートのうち、最も低いFECレート(動画パケット数に対するFECパケット数が少ないFECレート)に基づいて、各行方向FECパケットを生成するための、送信順序が連続する動画パケット数を決定する。
また、本形態の送信装置101は、決定された複数のFECレートのうち、最も高いFECレートに基づいて、各列方向FECパケットを生成するための、送信順序が連続しない動画パケット数を決定する。尚、最も高いFECレートとは、複数のFECレートのうち、動画パケット数に対するFECパケット数が最も多いFECレートである。
そして、送信装置101は、送信順序が連続する動画パケットの組み合わせに基づいて生成されたFECパケット(行方向FECパケット401〜403)と、動画パケットを、すべてのクライアントに送信する。また、送信装置101は、送信順序が連続しない動画パケットの組み合わせに基づいて生成されたFECパケット(列方向FECパケット404〜408)を、各クライアントのFECレートに応じて送信する。つまり、最も低いFECレートの受信装置には、動画パケットと、送信順序が連続する動画パケットから生成されたFECパケットが送信され、送信順序が連続しない動画パケットから生成されたFECパケットは送信されない。
このように、本形態の送信装置101は、各クライアントのFECレートに応じて、各FECパケットの生成パターンにおける動画パケットの数を決定する。このようにすることで、クライアントごとにFECパケットの生成パターンを変えることなく、各クライアントのFECレートに応じたFECパケットの送信ができる。また、送信装置101は、最も低いFECレートのクライアントに対して、1つの生成パターン(送信順序が連続する動画パケットから生成されたFECパケットを生成するパターン)で生成されたFECパケットをすべて送信する。すなわち、すべてのクライアントに対して、1つの生成パターンで生成されたFECパケットのすべてが、少なくとも送信されることになるので、すべての動画パケットに対して、最低限のエラー訂正機能を持たせることができる。FEC生成パラメータの決定方法を含む送信装置101の処理の詳細は、後述する。
図2は、本実施形態の送信装置101の構成例を示すブロック図である。送信装置101は、映像入力部201、動画像符号化部202、パケット生成部203(以下、生成部203)、パケットロス情報処理部204(以下、処理部204)、FECレート決定部205(以下、決定部205)、FEC符号化部206を有する。また、送信装置101は、パケット送信部207(以下、送信部207)、クライアント送信情報記憶部208(以下、記憶部208)、パケットバッファ209(以下、バッファ209)、システムバス210、通信インターフェイス211を有する。送信装置101は、通信インターフェイス211で伝送路212に接続される。
映像入力部201は、取得した動画像データを符号化部202に出力する。符号化部202は、映像入力部201から出力された動画像データをMPEG−4Video形式やH.264形式等の圧縮符号化方式で圧縮符号化し、圧縮符号化された動画像データを生成部203に出力する。
生成部203は、圧縮符号化された動画像データをインターネット102で通信できるデータサイズの動画パケットに変換し、バッファ209に保存する。また、生成部203は動画パケットを生成したことを示す生成通知をFEC符号化部206と送信部207に出力する。この生成通知には、生成した動画パケットの識別情報(例えばシーケンスナンバー)が含まれる。
一方、処理部204は、伝送路212、通信インターフェイス211、システムバス210を介して、受信装置によって送信された受信情報を受信する。この受信情報は、例えば受信装置によるパケットの受信状況を示す情報である。この受信状況を示す情報は、例えば、受信した動画パケットの数や、通信経路でパケットロスした動画パケットの数の情報を含む。処理部204は、取得した受信情報を解析してパケットロス率を計算し、受信情報を送信した受信装置までのパケットロス率として決定部205に通知する。
決定部205は、通知されたパケットロス率、及び過去に通知されたパケットロス率、及び受信装置までの利用可能ネットワーク帯域幅等から、受信装置までの動画送信に適切なFECレートを決定する。
即ち、処理部204が受信する受信情報には、動画パケットのエラー状況に関する情報(エラー情報)が含まれる。そして、決定部205は、エラー情報に基づいて、受信装置に対して送信する動画パケットの数に対するFECパケットの数を決定する。
ただし、受信情報に含まれる情報は、エラー状況に関する情報に限らず、例えば、受信装置のユーザが直接指定したFECレートの要求情報が受信情報に含まれるようにすることも可能である。
そして、決定部205は、決定したFECレートを記憶部208に通知する。尚、FECレートの決定方法は、上記の方法に限らず、例えば、送信装置がパケットを送信してから受信装置が受信するまでに要する時間に応じた時間情報などを用いても良い。
記憶部208は、決定部205から通知されたFECレートを、各受信装置の識別情報(例えばIPアドレス)と共に記憶する。記憶部208に記憶されるクライアント情報の例を、表1に示す。
表1に示すように、送信装置101の記憶部208には、例えば、クライアント番号、IPアドレス、シーケンスナンバー、タイムスタンプ、FECレートが記憶されている。
尚、本実施形態において、表1のクライアント番号が1のクライアント(クライアント1)が、受信装置103に対応する。また、クライアント番号が2のクライアント(クライアント2)が、受信装置104に対応する。また、クライアント番号が3のクライアント(クライアント3)が、受信装置105に対応する。
クライアント1(受信装置103)は、動画パケットの配信を受けている複数のクライアントの中で、最もFECレートが低いクライアントである。また、クライアント3(受信装置105)は、動画パケットの配信を受けている複数のクライアントの中で、最もFECレートが高いクライアントである。
また、シーケンスナンバーとタイムスタンプは、クライアントごとに異なる値である。送信部207は、FEC符号化部206によって生成されたFECパケットのうち、シーケンスナンバーとタイムスタンプをクライアントごとに書き換えて送信する。この処理の詳細は、後述する。
FEC符号化部206は、生成部203から動画パケットの生成通知を受けたことに応じて、動画パケットの送信先となるすべてのクライアントのFECレートを記憶部208から読み込む。そして、FEC符号化部206は、読み込まれた複数のFECレートからFEC生成パラメータを決定する。
本実施形態のFEC符号化部206は、生成部203から、20個のGOP(Group Of Picture)に対応する動画パケットの生成通知を受けたことに応じて、FECレートの読み込み、及び、FEC生成パラメータの決定を行う。ただし、20個のGOPに限らない。
尚、FEC符号化部206によるFECレートの読み込み、及び、FEC生成パラメータの決定は、動画パケットの生成通知の受信に応じて行うことに限らない。他の方法として、例えば、受信装置からの受信情報の受信に応じて行うようにしても良いし、一定時間ごとに行うようにしても良い。また、例えば、動画パケットの送信先となる受信装置の増減に応じて行うようにすることも可能である。また、例えば、動画パケットの送信開始時と、ユーザから動画パケットの品質に関する要求の受信したタイミングに行うようにしても良い。
例えば、各受信装置に適したFECレートの大きな変動が頻繁に発生する場合に、FEC生成パラメータの決定を短い間隔で行うことにより、より通信状況の変化に適したFEC生成パラメータを決定することができる。また、例えば、各受信装置に適したFECレートの変動が大きくない場合は、FEC生成パラメータの決定する間隔を長くすることにより、FEC生成パラメータの決定やFECパケットの生成などにかかる負荷を低減することができる。
FEC符号化部206は、決定したFEC生成パラメータでFECパケットを生成し、バッファ209に保存する。すなわち、FEC符号化部206は、複数の動画パケットの組み合わせで、動画パケットのエラーを訂正するための誤り訂正パケットを生成する。本実施形態のFEC符号化部206は、複数の動画パケットに対してXOR演算を行うことによってFECパケットを生成する。ただし、FECパケットの生成方法は、XOR演算によるものに限らない。
FEC符号化部206は、生成したFECパケットをバッファ209に保存すると、保存したFECパケットの識別情報(例えばシーケンスナンバー)を含むFECパケット生成通知を送信部207に出力する。
送信部207は、生成部203から動画パケットの生成通知を受けると、バッファ209に記憶されている動画パケットを読み出し、記憶部208に記憶されている各クライアントの送信情報を読み出す。その後、送信部207は、読み出した動画パケットのパケットヘッダーの一部(RTPヘッダーのタイムスタンプとシーケンスナンバー)をクライアントごとの値に変更し、通信インターフェイス211を介して各クライアントに送信する。
また、送信部207は、FEC符号化部206からFECパケット生成通知を受け取ると、バッファ209に記憶されているFECパケットを読み出し、記憶部208に記憶されている各クライアントの送信情報を読み出す。その後、読み出したFECパケットのパケットヘッダーの一部とパケットペイロードの一部データをクライアントごとの値に変更する。そして、送信部207は、クライアントごとのFECレートに応じて送信するFECパケットを決定し、FECパケットをクライアントに送信する。FECパケットの一部データの変更と選択送信の詳細は後述する。
次に図3、4と表1を参照してFEC生成パラメータの決定手順について述べる。本実施例ではFEC方式にXOR演算を用いた二次元FEC方式を採用しているため、FEC生成パラメータは二次元FECの行列のサイズとなる。
図3は、本実施形態のFEC符号化部206が、各クライアントのFECレートから二次元FECの行数と列数(FEC生成パラメータ)を決定する手順を示すフローチャートである。このフローチャートで示した処理は、例えば、FEC符号化部206が生成部203から動画パケット生成通知を受信したことに応じて開始される。なお、この手順は、FEC符号化部206が実行する代わりに、システムバス210に接続された不図示のコンピュータが実行し、決定したFEC生成パラメータを不図示のコンピュータがFEC符号化部206に設定してもよい。
ステップS301において、FEC符号化部206は、記憶部208からクライアント送信情報を取得する。クライアント送信情報の例は、表1に示したとおりである。また、表1に示した3つのクライアントは、現在、送信装置101から動画パケットの配信を受けているクライアントである。
ステップS302において、FEC符号化部206は、取得したクライアント送信情報からFECレートを取り出し、最小FECレートと最大FECレートを特定する。表1の例では、最小FECレートは20%、最大FECレートは50%である。尚、FECレートが20%であるとは、動画パケット10個に対して、FECパケットが2個生成されるFECレートのことを示している。同様に、FECレートが50%であるとは、例えば、動画パケット10個に対して、FECパケットが5個生成されるFECレートのことを示している。また、FECレートは、決定部205が、各クライアントからの受信情報に基づいて決定している。
ステップS303(生成手順)において、FEC符号化部206は、ステップS302で特定された最小・最大FECレートから二次元FECの行数と列数(FEC生成パラメータ)を決定する。ここで、最小、最大FECレートの条件を満たす二次元FECの行数と列数の決定方法の例を説明する。最小FECレートをFminとすると、二次元FECの列数X(行方向の動画パケットの数)は、次のように求めることができる。すなわち、
X=1/Fmin
また、最大FECレートをFmaxとすると、二次元FECの行数Y(列方向の動画パケットの数)は、次のように求めることができる。すなわち、
Y=1/(Fmax−Fmin)
この2つの式に、最小FECレートFmin=20%(0.2)、最大FECレートFmax=50%(0.5)を代入すると、二次元FECの列数は5、行数は3となる。尚、本形態では、X、Yの小数点以下は、切り上げている。
このように、本形態のFEC符号化部206は、処理部204によって決定された最大FECレートと最小FECレートに基づいて、二次元FECの行数と列数を決定する。
つまり、FEC符号化部206は、各受信装置に対するFECレート(レート情報)に基づいて、1つの行方向FECパケットに対応する動画パケットの数(第1の組み合わせに含まれる動画パケットの数)を決定する。即ち、FEC符号化部206は、第1の受信装置に対するFECレートと第2の受信装置に対するFECレートのうち、動画パケットの数に対する誤り訂正パケットの数が少ないレート情報に基づいて、第1の組み合わせに含まれる動画パケットの数を決定する。
また、FEC符号化部206は、各受信装置に対するFECレート(レート情報)に基づいて、1つの列方向FECパケットに対応する動画パケットの数(第2の組み合わせに含まれる動画パケットの数)を決定する。即ち、FEC符号化部206は、第1の受信装置に対するFECレートと第2の受信装置に対するFECレートのうち、動画パケットの数に対する誤り訂正パケットの数が多いレート情報に基づいて、第2の組み合わせに含まれる動画パケットの数を決定する。このようにして生成された二次元FECの例を図4に示す。
図4に示すように、動画パケット15個に対し横方向の組み合わせによって生成されるFECパケット(行方向FECパケット401〜403)が3個ある。つまり、3÷15=20%となり、このFECパケットを最小FECレートのクライアントに送信すれば、最小FECレートの要件を満たすことができる。また、動画パケット15個に対し、縦方向の組み合わせによって生成されるFECパケット(列方向FEC404〜408)が5個あるため、8÷15=53%となる。つまり、すべてのFECパケットを最大FECレートのクライアントに送信すれば、最大FECレートの要件を満たすことができる。
即ち、FEC符号化部206は、ステップS303において、行方向FECパケットと列方向FECパケットを生成する。つまり、FEC符号化部206は、動画パケット409(第1の動画パケット)と、その次に送信される動画パケット410(第2の動画パケット)を含む組み合わせに基づいて、動画パケット409のエラーを訂正するための行方向FECパケット401を生成する。また、FEC符号化部206は、動画パケット409と、動画パケット411(第3の動画パケット)を含み、動画パケット410を含まない組み合わせに基づいて、動画パケット409のエラーを訂正するためのFECパケット404を生成する。
ステップS304において、FEC符号化部206は、動画パケットの配信を継続するか判断する。動画パケットの配信を継続すると判断された場合は、ステップS301に戻り、動画パケットの配信を終了すると判断された場合は、処理を終了する。ステップS301に戻った場合、本形態のFEC符号化部206は、生成部203が20個分のGOPに対応する動画パケットの生成ごとに、FEC生成パラメータを再決定する。つまり、この行数・列数の決定は、ストリームを配信する間、繰り返し行われる。この再決定の詳細については、実施形態2で説明する。
次に、FECパケットの一部のデータをクライアントごとの送信情報に合わせて変更する処理について図5を参照して説明する。図5は、FECパケットと動画パケットの構造を示した図である。同図において、FECパケットのRTPペイロード部502は、当該FECパケットに対応する1つ以上の動画パケット503をXOR演算したものである。
しかしながら、動画パケット503内のデータのうち、RTPペイロード部は、送信先に関わらず同じ内容となるが、RTPヘッダー部のタイムスタンプ506とシーケンスナンバー507の内容は送信先のクライアントごとに異なる。したがって、FECパケットのRTPペイロード部502内のデータのうち、動画パケットのタイムスタンプ506に相当する領域508と、シーケンスナンバー507に相当する領域509は、クライアントごとに個別にXOR演算を行う必要がある。
尚、タイムスタンプは4バイト、シーケンスナンバーは2バイト、と小さいデータサイズであるためクライアントごとにXOR演算を行っても処理負荷の増加量は個別に動画パケットの組み合わせを設定してFECパケットを生成するよりも小さくなる。
送信部207は、記憶部208に記憶されているクライアント送信情報から各クライアントのタイムスタンプとシーケンスナンバーを取得し、FECパケットを生成する対象となる動画パケット数分のXOR演算を行う。そして、送信部207は、上記のようにして得られたXOR演算結果に基づいて、FEC符号化部206によって生成されたFECパケットの、RTPペイロード部のタイムスタンプに対応する領域508とシーケンスナンバーに対応する領域509の値を変更する。さらに、送信部207は、FECパケットのRTPヘッダー部501のタイムスタンプ504とシーケンスナンバー505を各クライアントに応じた値に変更する。
次に、送信部207がクライアントごとのFECレートに合わせて送信するFECパケットを選択する手順を説明する。
図6は送信部207がクライアントごとのFECレートに合わせて送信するFECパケットを選択する手順を示すフローチャートである。なお、この手順は、送信部207が実行する代わりに、システムバス210に接続された不図示のコンピュータが実行し、選択したパケットを不図示のコンピュータがバッファ209から送信部207に転送してもよい。
ステップS601において、送信部207は、あるクライアントのFECレートを記憶部208から取得する。ここでは、受信装置103(第1の受信装置)FECレートが取得されたものとする。
ステップS602において、送信部207は、ステップS601で取得されたFECレートが最小FECレートであるか判断する。送信部207は、ステップS601で読み出さなかった他のクライアントのFECレートを記憶部208から読み出し、それらと比較することで、ステップS601で取得したFECレートが最小FECレートであるか否かを判断する。ステップS602において、取得したFECレートが最小FECレートであると判断された場合はステップS608に進み、取得したFECレートが最小FECレートではないと判断された場合はステップS603に進む。
尚、表1のクライアント番号が1であるクライアント1は図1の受信装置103に対応する。同様に、クライアント番号が2であるクライアント2は受信装置104、クライアント番号が3であるクライアント3は受信装置105に対応する。表1に示すように、クライアント1のFECレートは20%であるため、送信部207は、受信装置103のFECレートが最小FECレートであると判断し、ステップS608に進む。
ステップS608において、送信部207は、最小FECレートに対応するクライアント1(受信装置103)に対して送信するFECパケットとして、送信順序が連続する動画パケットから生成されたFECパケットを選択する。送信順序が連続する動画パケットから生成されたFECパケットは、例えば、図4の行方向FECパケット401〜403である。また、ステップS608において、送信部207は、送信順序が連続しない動画パケットから生成された列方向FECパケット(404〜408)をクライアント1(受信装置103)に送信しないことを決定する。
尚、上述のように、送信順序が連続する動画パケットからFECパケットを生成する生成パターンにおいて、1つのFECパケットを生成するために用いる動画パケットの数(二次元FECの列数)は、最小FECレートに基づいて決定される。ステップS608の処理が終了すると、動画パケットを配信する他のクライアントに対して、図6のフローチャートの処理を行う。
次に、クライアント2(受信装置104)に対して、図6のFECパケット選択処理を実行した場合について説明する。
ステップS602において、送信部207は、クライアント2のFECレートが最小FECレートではないと判断し、ステップS603に進む。
ステップS603において、送信部207は、ステップS601で取得されたクライアント2のFECレートが最大FECレートであるか判断する。最大FECレートであると判断された場合は、ステップS607に進み、最大FECレートでないと判断された場合は、ステップS604に進む。クライアント2のFECレートは最大FECレートではないため、ステップS604に進む。
ステップS604において、送信部207は、行方向FECパケットをすべて選択する。ここでは、行方向FECパケット401〜403が選択される。そして、ステップS605において、送信部207は、クライアント2のFECレートと、ステップS604で選択された行方向FECパケットの数に基づいて、送信すべきFECパケット数までの不足数を算出する。この例においては、2個のFECパケットが不足していることがわかる。
そこで、ステップS606において、送信部207は、動画パケットの列方向の組み合わせにより生成された列方向FECパケット404〜408の中から2個のFECパケットを、送信するFECパケットとして決定する。送信部207は、ステップS604で選択された行方向FECパケットとステップS606で選択された列方向FECパケットをクライアント2に対して送信すれば、クライアント2のFECレートは5÷15≒33%となり、要件を満たすことができる。
尚、本形態の送信部207は、複数の列方向FECパケット404〜408のうち、どのFECパケットを送信させるかを、対応する動画パケットの表示位置に基づいて決定する。つまり、例えば、送信部207は、より表示画面の中心に近い位置で表示される動画パケットのエラーを訂正するための列方向のFECパケットが送信されるように、送信する列方向のFECパケットを決定する。このようにすることで、表示画面の中心の近くで表示される動画パケットを、表示画面の端に表示される動画パケットよりも高い確率で正常に再生させることができる。
また、本形態の送信部207は、例えば、列方向FECパケットでエラー訂正可能な動画パケットの表示位置が、隣接しないように、送信する列方向FECパケットを決定する。このようにすれば、例えば、受信装置が、FECパケットによるエラー訂正ができなかった動画パケットの領域を、エラー隠蔽機能により表示させようとする場合に、エラー隠蔽後の画質を上げることができる。ここで、エラー隠蔽とは、エラーした動画パケットの表示領域に隣接する領域のデータを、例えばコピーすることによって、エラーした領域の表示を行う方法である。
また、例えば、動き領域に対応する動画パケットのエラーを訂正するための列方向のFECパケットを送信するようにしても良い。このようにすれば、画面内で動きのある領域のエラーを動きのない領域よりも高い確率で防ぐことができる。動き領域の検出方法として、例えば、動きベクトルを参照する方法や、複数フレームの画素値の比較する方法がある。
このように、より重要度の高い動画パケットに対応する列方向FECパケットを送信すれば、より再生画像に影響の大きい動画パケットのエラーを、影響の小さい動画パケットよりも高い確率で訂正することができる。
また、送信部207は、ステップS607において、最大FECレートが設定されているクライアント3に対して、すべてのFECパケットを送信することを決定する。つまり、送信部207は、ステップS603において、クライアントに設定されているFECレートが最大FECレートであると判断した場合、ステップS607に進む。そして、送信部207は、当該クライアントに対して、生成した列方向FECと行方向FECをすべて送信することを決定する。
即ち、ステップS606、S607、及びS608(決定手順)によって、送信部207は、動画パケットをすべてのクライアント(受信装置103(第1の受信装置)、104、105(第2の受信装置))に送信することを決定する。また、送信部207は、すべての行方向FECをすべてのクライアントに送信することを決定する。また、ステップS606、S607、S608で、送信部207は、列方向FECのうち一部(例えば、列方向FECパケット405、407)の送信先を次のように決定する。すなわち、送信部207は、列方向FECパケット405、407を、受信装置103(第1の受信装置)には送信せずに、受信装置104、105(第2の受信装置)に送信することを決定する。さらに、送信部207は、残りの列方向FEC(列方向FECパケット404、406、408)を受信装置105に送信することを決定する。
ステップS609(送信手順)において、送信部207は、以上のようにして決定されたFECパケットを、クライアントに対して送信する。すなわち、本実施形態の送信部207は、動画パケットをすべてのクライアントに送信する。また、送信部207は、行方向FECをすべてのクライアントに送信する。また、送信部207は、列方向FECのうちの一部を、受信装置104、105に送信する。さらに、送信部207は、残りの列方向FECを受信装置105に送信する。
尚、すべての受信装置に送信される行方向FECパケット401は、動画パケット409(第1の動画パケット)と、動画パケット410(第2の動画パケット)を含む第1の組み合わせに基づいて生成される第1の誤り訂正パケットである。この行方向FECパケット401は、例えば、動画パケット409のエラーを受信装置が訂正するために用いられる。また、受信装置105に送信される列方向FECパケット404は、動画パケット409と動画パケット411(第3の動画パケット)を含み、動画パケット410を含まない第2の組み合わせに基づいて生成される第2の誤り訂正パケットである。この列方向FECパケット404は、例えば、動画パケット409のエラーを受信装置が訂正するために用いられる。
即ち、送信部207は、ステップS609において、第1、第2及び第3の動画パケットと第1の誤り訂正パケットを第1及び第2の受信装置(受信装置103及び105)に送信する。また、送信部207は、ステップS609において、第2の誤り訂正パケットを、第1の受信装置(受信装置103)には送信せずに、第2の受信装置(受信装置105)に送信する。
このように、送信部207は、クライアントごとに設定されたFECレートに基づいて、送信するFECパケットを決定するが、上述のように、FECレートは、受信装置によって送信された受信情報によって決定する。この受信情報は、例えば、動画パケットのエラー状況に関する情報に関する情報(エラー情報)である。
即ち、送信部207は、列方向FECパケット404(第2の誤り訂正パケット)を、第1のエラー情報を送信した第1の受信装置(受信装置103)には送信しない。また、送信部207は、列方向FECパケット404を、第1のエラー情報よりもエラーした動画パケットが多いことを示す第2のエラー情報を送信した第2の受信装置(受信装置105)に送信する。
また、送信部207は、第1、第2及び第3の動画パケット(409、410、411)と第1の誤り訂正パケット(行方向FECパケット401)を、第1のエラー情報を送信した第1の受信装置、及び、第2のエラー情報を送信した第2の受信装置に送信する。
尚、FECレートは、例えば、受信装置のユーザが直接指定したFECレートに基づいて決定しても良い。つまり、処理部204は、動画パケットの数に対する誤り訂正パケットの数に関する要求情報を受信した場合、要求情報に基づいて、各クライアントに対するFECレートを決定することも可能である。
この場合、送信部207は、列方向FECパケット404(第2の誤り訂正パケット)を、第1の要求情報を送信した第1の受信装置(受信装置103)には送信しない。また、送信部207は、列方向FECパケット404を、第1の要求情報よりも動画パケットに対する誤り訂正パケットの数が多いことを示す第2の要求情報を送信した第2の受信装置(受信装置105)に送信する。
また、送信部207は、第1、第2及び第3の動画パケット(409、410、411)と第1の誤り訂正パケット(行方向FECパケット401)を、第1の要求情報を送信した第1の受信装置、及び、第2の要求情報を送信した第2の受信装置に送信する。
また、すべての受信装置に対して送信される行方向FECパケット402は、動画パケット411(第3の動画パケット)と、その次に送信される動画パケット412(第4の動画パケット)を含む組み合わせに基づいて生成される第3の誤り訂正パケットである。この誤り訂正パケット402は、例えば、動画パケット411のエラーを受信装置が訂正するために用いられる誤り訂正パケットである。
また、FEC符号化部206は、行方向FECパケット402を生成すると共に、列方向FECパケット405(第4の誤り訂正パケット)を生成する。列方向FECパケット405は、第2の動画パケット(410)と、動画パケット410と送信順序が連続しない第4の動画パケット(412)を含む組み合わせに基づいて、動画パケット410のエラーを受信装置が訂正するための誤り訂正パケットである。
そして、送信部207は、動画パケットと、行方向FECパケットを、すべてのクライアント(受信装置103〜105)に送信する。また、送信部207は、すべての列方向FECパケットを、最大FECレートに対応するクライアント(受信装置105)に送信する。さらに、送信部207は、最大FECレートにも最小FECレートにも当てはまらないクライアント(受信装置104)に対し、そのFECレートに応じて、列方向FECパケットのうち、重要度が高い列方向FECパケット(405)を送信する。
即ち、送信部207は、第1、第2、第3及び第4の動画パケット(409〜412)と第1、第3の誤り訂正パケット(401、402)を、第1、第2及び第3の受信装置に送信する。また、送信部207は、第2の誤り訂正パケット(列方向FECパケット404)を、第1、第3の受信装置には送信せずに、第2の受信装置(クライアント3)に送信する。そして、第2の誤り訂正パケットよりも重要度が高い第4の誤り訂正パケット(列方向FECパケット405)を、第1の受信装置(クライアント1)には送信せずに、第2及び第3の受信装置(クライアント3、2)に送信する。
ただし、本形態では、列方向FECパケット405の重要度が列方向FECパケット404の重要度よりも高い場合について説明したが、重要度の決定方法によっては、列方向FECパケット404の重要度のほうが高くなる場合もありうる。この場合、送信部207は、重要度が高い列方向FECパケット404を第1の受信装置には送信せずに、第2及び第3の受信装置に送信し、列方向FECパケット405を第1及び第2の受信装置には送信せずに、第3の受信装置に対して送信する。
以上のように、本実施形態の送信装置は101、各クライアントとの間で決定されたFECレートに基づいて、行方向FECと列方向FECを生成するための動画パケット数(FEC生成パラメータ)を決定する。そして、送信装置101は、各クライアントのFECレートに応じて、送信するFECパケットを決定する。このようにすることで、各クライアントのFECレートに応じたFECパケットの送信をするときの負荷を、クライアントごとにFECパケットを生成する場合よりも少なくすることができる。
また、本実施形態では、行方向FECパケットがすべてのクライアントに送信されるようにしている。このようにすることで、すべてのクライアントに、すべての動画パケットに対応するFECパケットを、少なくとも1つ送信することができる。
<実施形態2>
次に、本発明の第2の実施形態について、実施形態1との差異を中心に説明する。本実施形態では、各クライアントまでの通信経路のエラー率の変動に応じて、FECレートが変動する場合の例について説明する。
前述の通り、インターネット回線は、利用可能ネットワーク帯域とパケットロス率が時間的に変動し、また無線通信区間においてもパケットロス率が大きく変動しうる。したがって、各クライアントまでの経路上のパケットロス率も時間的に変動する。本実施形態では、時間的に変動したパケットロス率に応じてFECレートを動的に変更することで、より適切なFECレートで動画パケットとFECパケットを送信する場合について説明する。
表2は、表1の状態から、クライアント1までの経路でのパケットロス率が下がった結果、必要なFECレートが20%から15%に下がったことを示している。また、表2は、クライアント3までの経路でのパケットロス率が上がった結果、必要なFECレートが50%から60%に上がったことを示している。このようなパケットロス率とFECレートの変化に応じて、FECパケットを生成するための動画パケット数を変更する例について、図3のフローチャートを用いて説明する。
このフローチャートで示した処理は、例えば、FEC符号化部206が生成部203から動画パケット生成通知を受信したことに応じて開始される。
ステップS301において、FEC符号化部206は、記憶部208からクライアント送信情報を取得する。本実施形態では、表2に示すようなクライアント送信情報が取得される。また、ステップS302において、FEC符号化部206は、取得したクライアント送信情報からFECレートを取り出し、最小FECレートと最大FECレートを特定する。この例では、最小FECレートとして15%、最大FECレートとして60%が特定される。尚、FECレートは、決定部205が、各クライアントからの受信情報に基づいて決定する。
ステップS303において、FEC符号化部206は、ステップS302で特定された最小・最大FECレートに基づいて、二次元FECの行数と列数(FEC生成パラメータ)を決定する。行数と列数の決定方法は、実施形態1と同様である。表2の例では、行方向FECを生成するための動画パケット数は、6個となる。また、列方向FECを生成するための動画パケット数は、2個となる。
つまり、FEC符号化部206は、最小FECレートであるクライアント1のFECレートが表1に示すように20%の場合は、1つの行方向FECパケットに対応する動画パケットの数(第1の組み合わせに含まれる動画パケットの数)を、5つに決定する。そして、FEC符号化部206は、最小FECレートであるクライアント1のFECレートが表2に示すように15%に下がったことに応じて、1つの行方向FECパケットに対応する動画パケットの数を6つに変更する。
即ち、FEC符号化部206は、第1の受信装置(クライアント1)に送信する動画パケットに対する誤り訂正パケットの数が減少するように第1のレート情報(FECレート)を変更した場合、第1の組み合わせに含まれる動画パケットの数を増加させる。
このようにして生成された二次元FECの例を図7に示す。図7に示すように、動画パケット12個に対し行方向FEC(701、702)が2個あるため、FECレートは、2÷12=16%となる。従って、送信部207が行方向FECパケットを最小FECレートのクライアントに送信すれば、最小FECレートの要件を満たすことができる。一方、動画パケット12個に対し、列方向FEC(703〜708)が6個あるため、FECレートは、8÷12=66%となる。従って、送信部207が行方向、列方向FECパケットを最大FECレートのクライアントに送信すれば、最大FECレートの要件を満たすことができる。
また、FECレートが30%であるクライアント2(受信装置104)に対しては、動画パケット12個に対し、4つのFECパケットを送信すれば、4÷12=33%となり、決定されたFECレートの要件を満たすことができる。従って、送信部207は、6つの列方向FECパケットのうちの2つと、2つの行方向FECパケットをクライアント2に送信する。
ステップS304において、FEC符号化部206は、動画パケットの配信を継続するか判断する。動画パケットの配信を継続すると判断された場合は、ステップS301に戻り、動画パケットの配信を終了すると判断された場合は、処理を終了する。実施形態1で述べたように、FEC符号化部206は、FECレートの読み込みとFEC生成パラメータの決定を、動画パケットの生成通知の受信ごと応じて行っても良いし、一定時間ごと、受信装置からの受信情報の受信ごとなどに行うようにしても良い。
以上のように、本実施形態の送信装置101は、FECレートが変更したことに応じて、FEC生成パラメータを変更する。このようにすることで、通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減できると共に、変化した通信状況に、より適したFECパケットの生成ができる。
<その他の実施形態>
本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インターフェイス機器、撮像装置、webアプリケーション等)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。

Claims (13)

  1. 受信装置に対してパケットを送信する送信装置であって、
    第1の動画パケットと第2の動画パケットを含む第1の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第1の誤り訂正パケットを生成し、
    前記第1の動画パケットと第3の動画パケットを含み、前記第2の動画パケットを含まない第2の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第2の誤り訂正パケットを生成する生成手段と、
    前記第1、第2及び第3の動画パケットを第1及び第2の受信装置に送信し、
    前記生成手段により生成された前記第1及び第2の誤り訂正パケットのうち前記第1の誤り訂正パケットを前記第1及び第2の受信装置に送信し、
    前記生成手段により生成された前記第1及び第2の誤り訂正パケットのうち前記第2の誤り訂正パケットを前記第1の受信装置には送信せずに、前記第2の受信装置に送信することを決定する決定手段と
    を有することを特徴とする送信装置。
  2. 前記生成手段は、
    前記第1の動画パケットと、前記第1の動画パケットの次に送信される前記第2の動画パケットを含む前記第1の組み合わせに基づいて、前記第1の誤り訂正パケットを生成し、
    前記第1の動画パケットと前記第3の動画パケットを含み、前記第2の動画パケットを含まない前記第2の組み合わせに基づいて、前記第2の誤り訂正パケットを生成する
    ことを特徴とする請求項1記載の送信装置。
  3. 前記受信装置から動画パケットの数に対する誤り訂正パケットの数に関する要求情報を受信する受信手段を有し、
    前記決定手段は、前記第2の誤り訂正パケットを、第1の要求情報を送信した前記第1の受信装置には送信せずに、前記第1の要求情報よりも動画パケットに対する誤り訂正パケットの数が多いことを示す第2の要求情報を送信した前記第2の受信装置に送信し、
    前記第1、第2及び第3の動画パケットと前記第1の誤り訂正パケットを、前記第1の要求情報を送信した前記第1の受信装置、及び、前記第2の要求情報を送信した前記第2の受信装置に送信することを決定する
    ことを特徴とする請求項1記載の送信装置。
  4. 前記受信装置から動画パケットのエラー状況に関するエラー情報を受信する受信手段を有し
    前記決定手段は、前記エラー情報に基づいて、前記受信装置に対して送信する動画パケットの数に対する誤り訂正パケットの数を決定し、
    前記第2の誤り訂正パケットを、第1のエラー情報を送信した前記第1の受信装置には送信せずに、前記第1のエラー情報よりもエラーした動画パケットの数が多いことを示す第2のエラー情報を送信した前記第2の受信装置に送信し、
    前記第1、第2及び第3の動画パケットと前記第1の誤り訂正パケットを、前記第1のエラー情報を送信した前記第1の受信装置、及び、前記第2のエラー情報を送信した前記第2の受信装置に送信することを決定する
    ことを特徴とする請求項1記載の送信装置。
  5. 前記生成手段は、前記第1の動画パケットと前記第3の動画パケットを含み、前記第2の動画パケットを含まない前記第2の組み合わせに基づいて、前記第2の誤り訂正パケットを生成し、
    前記第3の動画パケットと前記第3の動画パケットの次に送信される第4の動画パケットを含む組み合わせに基づいて、前記第3の動画パケットのエラーを訂正するために前記受信装置が用いる第3の誤り訂正パケットを生成し、
    前記第2の動画パケットと前記第2の動画パケットと送信順序が連続しない前記第4の動画パケットを含む組み合わせに基づいて、前記第2の動画パケットのエラーを訂正するために前記受信装置が用いる第4の誤り訂正パケットを生成し、
    前記決定手段は、前記第1、第2、第3及び第4の動画パケットと前記第1、第3の誤り訂正パケットを、前記第1の受信装置と前記第2の受信装置と第3の受信装置に送信し、
    前記第2の誤り訂正パケットを、前記第1の受信装置と前記第3の受信装置には送信せずに、前記第2の受信装置に送信し、
    前記第4の誤り訂正パケットを、前記第1の受信装置には送信せずに、前記第2の受信装置と前記第3の受信装置に送信することを決定する
    ことを特徴とする請求項1記載の送信装置。
  6. 前記生成手段は、前記送信順序が連続しない動画パケットの組み合わせに基づいて前記第2、第4の誤り訂正パケットを生成し、
    前記決定手段は、前記第2の動画パケットの重要度が前記第1の動画パケットより高い場合、前記第2の動画パケットのエラーを訂正するために前記受信装置が用いる前記第4の誤り訂正パケットを前記第2の受信装置と前記第3の受信装置に送信し、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる前記第2の誤り訂正パケットを前記第3の受信装置には送信せずに、前記第2の受信装置に送信することを決定する
    ことを特徴とする請求項5記載の送信装置。
  7. 前記決定手段は、送信する動画パケットの数に対する誤り訂正パケットの数に関するレート情報を、接続される複数の受信装置のそれぞれについて決定し、
    前記第1の受信装置に対する第1のレート情報と、前記第2の受信装置に対する第2のレート情報のうち、動画パケットの数に対する誤り訂正パケットの数が少ない前記第1のレート情報に基づいて、前記第1の組み合わせに含まれる動画パケットの数を決定することを特徴とする請求項1記載の送信装置。
  8. 前記決定手段は、送信する動画パケットの数に対する誤り訂正パケットの数に関するレート情報を、接続される複数の受信装置のそれぞれについて決定し、
    前記第1の受信装置に対する第1のレート情報と、前記第2の受信装置に対する第2のレート情報のうち、動画パケットの数に対する誤り訂正パケットの数が多い前記第2のレート情報に基づいて、前記第2の組み合わせに含まれる動画パケットの数を決定することを特徴とする請求項1記載の送信装置。
  9. 前記決定手段は、前記第1の受信装置に送信する動画パケットの数に対する誤り訂正パケットの数が減少するように前記第1のレート情報を変更した場合、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる前記第1の誤り訂正パケットを生成するための前記第1の組み合わせに含まれる動画パケットの数を増加させることを特徴とする請求項7記載の送信装置。
  10. 受信装置に対してパケットを送信する送信装置が行う送信方法であって、
    第1の動画パケットと第2の動画パケットを含む第1の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第1の誤り訂正パケットを生成し、
    前記第1の動画パケットと第3の動画パケットを含み、前記第2の動画パケットを含まない第2の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第2の誤り訂正パケットを生成する生成工程と、
    前記第1、第2及び第3の動画パケットを第1及び第2の受信装置に送信し、
    前記生成工程により生成された前記第1及び第2の誤り訂正パケットのうち前記第1の誤り訂正パケットを前記第1及び第2の受信装置に送信し、
    前記生成工程により生成された前記第1及び第2の誤り訂正パケットのうち前記第2の誤り訂正パケットを前記第1の受信装置には送信せずに、前記第2の受信装置に送信することを決定する決定工程と
    を有することを特徴とする送信方法。
  11. 前記受信装置から動画パケットの数に対する誤り訂正パケットの数に関する要求情報を受信する受信工程を有し、
    前記決定工程は、前記第2の誤り訂正パケットを、第1の要求情報を送信した前記第1の受信装置には送信せずに、前記第1の要求情報よりも動画パケットに対する誤り訂正パケットの数が多いことを示す第2の要求情報を送信した前記第2の受信装置に送信し、
    前記第1、第2及び第3の動画パケットと前記第1の誤り訂正パケットを、前記第1の要求情報を送信した前記第1の受信装置、及び、前記第2の要求情報を送信した前記第2の受信装置に送信することを決定する
    ことを特徴とする請求項10記載の送信方法。
  12. 前記受信装置から動画パケットのエラー状況に関するエラー情報を受信する受信工程を有し、
    前記決定工程は、前記エラー情報に基づいて、前記受信装置に対して送信する動画パケットの数に対する誤り訂正パケットの数を決定し、
    前記第2の誤り訂正パケットを、第1のエラー情報を送信した前記第1の受信装置には送信せずに、前記第1のエラー情報よりもエラーした動画パケットの数が多いことを示す第2のエラー情報を送信した前記第2の受信装置に送信し、
    前記第1、第2及び第3の動画パケットと前記第1の誤り訂正パケットを、前記第1のエラー情報を送信した前記第1の受信装置、及び、前記第2のエラー情報を送信した前記第2の受信装置に送信することを決定する
    ことを特徴とする請求項10記載の送信方法。
  13. 受信装置に対してパケットを送信するコンピュータに、
    第1の動画パケットと第2の動画パケットを含む第1の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第1の誤り訂正パケットを生成し、
    前記第1の動画パケットと第3の動画パケットを含み、前記第2の動画パケットを含まない第2の組み合わせに基づいて、前記第1の動画パケットのエラーを訂正するために前記受信装置が用いる第2の誤り訂正パケットを生成する生成手順と、
    前記第1、第2及び第3の動画パケットを第1及び第2の受信装置に送信し、
    前記生成手順により生成された前記第1及び第2の誤り訂正パケットのうち前記第1の誤り訂正パケットを前記第1及び第2の受信装置に送信し、
    前記生成手順により生成された前記第1及び第2の誤り訂正パケットのうち前記第2の誤り訂正パケットを前記第1の受信装置には送信せずに、前記第2の受信装置に送信することを決定する決定手順と
    を実行させることを特徴とするプログラム。
JP2009094101A 2009-04-08 2009-04-08 送信装置及び送信方法 Active JP5377040B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009094101A JP5377040B2 (ja) 2009-04-08 2009-04-08 送信装置及び送信方法
US12/754,492 US8867628B2 (en) 2009-04-08 2010-04-05 Transmission apparatus and transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009094101A JP5377040B2 (ja) 2009-04-08 2009-04-08 送信装置及び送信方法

Publications (3)

Publication Number Publication Date
JP2010245954A JP2010245954A (ja) 2010-10-28
JP2010245954A5 JP2010245954A5 (ja) 2012-05-24
JP5377040B2 true JP5377040B2 (ja) 2013-12-25

Family

ID=42934389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009094101A Active JP5377040B2 (ja) 2009-04-08 2009-04-08 送信装置及び送信方法

Country Status (2)

Country Link
US (1) US8867628B2 (ja)
JP (1) JP5377040B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023842A1 (en) * 2008-07-25 2010-01-28 Nortel Networks Limited Multisegment loss protection
JP2012147197A (ja) * 2011-01-11 2012-08-02 Panasonic Corp 通信装置、通信方法、及び通信プログラム
US8819513B2 (en) * 2012-01-13 2014-08-26 Microsoft Corporation Lost real-time media packet recovery
US10230405B2 (en) * 2015-08-26 2019-03-12 Nvidia Corporation System and method of forward error correction for streaming media
US10470000B2 (en) * 2016-02-12 2019-11-05 Samsung Electronics Co., Ltd. Methods and apparatus for enhanced MBMS content provisioning and content ingestion
US10701124B1 (en) 2018-12-11 2020-06-30 Microsoft Technology Licensing, Llc Handling timestamp inaccuracies for streaming network protocols

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004215224A (ja) 2002-12-20 2004-07-29 Nippon Telegr & Teleph Corp <Ntt> 符号誤り訂正方法、符号誤り訂正システム、プログラム及びそのプログラムを記録した記録媒体
US7516387B2 (en) * 2006-02-17 2009-04-07 Harris Corporation System and method for transmitting FEC packets
US7577898B2 (en) * 2006-04-10 2009-08-18 At&T Intellectual Property I, L.P. System and method of correcting video data errors
JP2008011096A (ja) * 2006-06-28 2008-01-17 Toshiba Corp Fecエンコード方法、fecデコード方法、fecデコード装置
WO2008076125A1 (en) * 2006-12-21 2008-06-26 Thomson Licensing A method to support forward error correction for real-time audio and video data over internet protocol networks
US8127206B2 (en) * 2007-09-13 2012-02-28 Samsung Electronics Co., Ltd. System and method for wireless communication of uncompressed video having reed-solomon code error concealment
EP2314005B1 (en) * 2008-04-29 2017-11-29 Thomson Licensing A method and system for adapting forward error correction in multicast over wireless networks

Also Published As

Publication number Publication date
JP2010245954A (ja) 2010-10-28
US20100260272A1 (en) 2010-10-14
US8867628B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
JP5377040B2 (ja) 送信装置及び送信方法
CN101594203B (zh) 发送装置、发送方法和接收装置
US8503444B2 (en) Transmission device, transmission method, and program for the same
KR20090119898A (ko) 비디오 전송 중 패킷 손실의 영향 줄이기
US8811180B2 (en) Communication apparatus and communication method
JP5610709B2 (ja) エラー訂正用データの生成装置、及び生成方法
JP5553663B2 (ja) 映像送信装置、映像受信装置、映像伝送システム
JP5748471B2 (ja) 配信装置、配信方法、プログラム
JP6519474B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4604851B2 (ja) 送信装置、受信装置、送信処理方法、受信処理方法、それらのプログラム
JPWO2012114774A1 (ja) 動画像符号化装置および動画像復号装置
JP2014093584A (ja) 送信装置、送信方法、受信装置、受信方法およびコンピュータプログラム
JPWO2015015880A1 (ja) 情報処理装置、情報処理方法及びプログラム
KR20150079367A (ko) 영상 데이터 통신 방법 및 영상 데이터 통신 장치
JP2017139521A (ja) ストリーム配信装置、ストリーム受信装置、ストリーム配信システム、ストリーム配信方法、及びストリーム配信プログラム
JP5743350B2 (ja) データ送信装置、前方誤り訂正方法、及びプログラム
JP5523163B2 (ja) 送信装置、送信方法、プログラム
JP4544528B2 (ja) データ伝送装置
KR100916312B1 (ko) 적응적 가중 오류 정정 부호화 및 다중 표현열 부호화를사용한 비디오 전송 장치 및 그 방법
JP6633687B2 (ja) 映像符号化装置
JP4343808B2 (ja) 双方向画像通信システムにおけるサーバ及びその処理方法並びにプログラム
US20200252085A1 (en) Receiving device and receiving method
JP4049378B2 (ja) 双方向画像通信システムにおけるサーバ及びその処理方法並びにプログラム
JP6650260B2 (ja) 送信装置、受信装置、送受信システム、プログラム、およびチップ
JP2006054562A (ja) パケット伝送システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120329

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130924

R151 Written notification of patent or utility model registration

Ref document number: 5377040

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151