JP4250654B2 - 通信装置、通信方法および通信プログラム - Google Patents

通信装置、通信方法および通信プログラム Download PDF

Info

Publication number
JP4250654B2
JP4250654B2 JP2006311498A JP2006311498A JP4250654B2 JP 4250654 B2 JP4250654 B2 JP 4250654B2 JP 2006311498 A JP2006311498 A JP 2006311498A JP 2006311498 A JP2006311498 A JP 2006311498A JP 4250654 B2 JP4250654 B2 JP 4250654B2
Authority
JP
Japan
Prior art keywords
packet
fec
media
time
media packet
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
JP2006311498A
Other languages
English (en)
Other versions
JP2008131153A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006311498A priority Critical patent/JP4250654B2/ja
Priority to US11/928,653 priority patent/US9191158B2/en
Priority to EP20070254317 priority patent/EP1924019B1/en
Priority to CN2007101694310A priority patent/CN101184034B/zh
Publication of JP2008131153A publication Critical patent/JP2008131153A/ja
Application granted granted Critical
Publication of JP4250654B2 publication Critical patent/JP4250654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • 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/0045Arrangements at the receiver end
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Description

本発明は、通信装置、通信方法および通信プログラムに関する。
RTP(Real-time Transport Protocol)は、受信順序、受信タイミングなど、UDP(User Datagram Protocol)単独では伝達されないリアルタイム・ストリーミング伝送に必要な付加情報を、伝送データパケット毎に併記することが可能な伝送プロトコルであり、受信時は付加情報に基づき受信処理を実行し、必要なデータを必要なタイミングで、送信時と同一の状態で受信可能とする伝送プロトコルである。受信側ではRTPにより、インターネット上で発生するパケット間の順序違いや伝送間隔の揺らぎを修正し、極度に遅延したパケットの破棄や損失パケットの検出が可能となる。
一方、RTPはインターネットを構成する伝送プロトコルであるIP(Internet Protocol)のベストエフォートという特性をそのまま引き継ぐ上位プロトコルであるUDPを基盤とする伝送プロトコルであり、RTP単独では伝送データの損失に関する対策がないため、独自にデータ損失を補完する必要があり、このための技術として再送制御や誤り訂正が存在する。
誤り訂正の具体的な手法としてFEC(Forward Error Correction:前方向誤り訂正)などが一般的に知られている。
FECでは、送信側では、元データをグループ化した上で予め決められた手法で演算することにより各グループに対する冗長データを生成し、各グループのデータと並列に伝送する。受信側では、各グループ内で一部のデータが欠損した場合に、受信した残りのデータと冗長データから予め決められた手法で演算することにより、欠損したデータを回復することが可能となる。
本発明の一態様としての通信装置は、
ネットワークからのメディアパケットの受信を試みる第1の受信手段と、
前記第1の受信手段により受信されたメディアパケットを格納する第1のバッファリング手段と、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信する第2の受信手段と、
前記第2の受信手段により受信されたFECパケットを格納する第2のバッファリング手段と、
前記第2のバッファリング手段からFECパケットを選択する選択手段と、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段における該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記第1の受信手段によりメディアパケットの受信が試みられるごとに1つずつ順番に行うFEC演算処理手段と、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するメディアパケット挿入手段と、
前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間を計算する遅延時間計算手段と、
あらかじめ取得した前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算することによりFEC演算時間を計算するFEC演算時間計算手段と、
前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記遅延時間と前記FEC演算時間とを合計したバッファ時間が経過したら、あらかじめ指定されたアプリケーションに配送するメディアパケット配送手段と、
を備える。
本発明の一態様としての通信装置は、
ネットワークからのメディアパケットの受信を試みる第1の受信手段と、
前記第1の受信手段により受信されたメディアパケットを格納する第1のバッファリング手段と、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信する第2の受信手段と、
前記第2の受信手段により受信されたFECパケットを格納する第2のバッファリング手段と、
前記第2のバッファリング手段からFECパケットを選択する選択手段と、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段における該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記第1の受信手段によりメディアパケットの受信が試みられるごとに1つずつ順番に行うFEC演算処理手段と、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するメディアパケット挿入手段と、
前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間の見積もり値と、前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算して得られるFEC演算時間の見積もり値とを記憶、または前記遅延時間と前記FEC演算時間とを合計したバッファ時間の見積もり値を記憶した記憶手段と、
前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記バッファ時間の見積もり値に相当する時間が経過したら、あらかじめ指定されたアプリケーションに順次配送するメディアパケット配送手段と、
を備える。
本発明の一態様としての通信方法は、
ネットワークからのメディアパケットの受信を試み、
受信されたメディアパケットを第1のバッファリング手段に格納し、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信し、
受信されたFECパケットを第2のバッファリング手段に格納し、
前記第2のバッファリング手段からFECパケットを選択し、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行い、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入し、
前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間を計算し、
あらかじめ取得した前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算することによりFEC演算時間を計算し、
前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから、前記遅延時間と前記FEC演算時間を合計したバッファ時間が経過したら、あらかじめ指定されたアプリケーションに配送する。
本発明の一態様としての通信方法は、
ネットワークからのメディアパケットの受信を試み、
受信されたメディアパケットを第1のバッファリング手段に格納し、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信し、
受信されたFECパケットを第2のバッファリング手段に格納し、
前記第2のバッファリング手段からFECパケットを選択し、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行い、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入し、
前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間の見積もり値と、前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算して得られるFEC演算時間の見積もり値とを記憶、または前記遅延時間と前記FEC演算時間とを合計したバッファ時間の見積もり値を記憶した記憶手段を準備し、
前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記バッファ時間の見積もり値に相当する時間が経過したら、あらかじめ指定されたアプリケーションに配送する、通信方法。
本発明の一態様としての通信プログラムは、
ネットワークからのメディアパケットの受信を試みるステップと、
受信されたメディアパケットを第1のバッファリング手段に格納するステップと、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信するステップと、
受信されたFECパケットを第2のバッファリング手段に格納するステップと、
前記第2のバッファリング手段からFECパケットを選択するステップと、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行うステップと、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するステップと、
前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間を計算するステップと、
あらかじめ取得した前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算することによりFEC演算時間を計算するステップと、
前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから、前記遅延時間と前記FEC演算時間とを合計したバッファ時間が経過したら、あらかじめ指定されたアプリケーションに配送するステップと、
をコンピュータに実行させる。
本発明の一態様としての通信プログラムは、
ネットワークからのメディアパケットの受信を試みるステップと、
受信されたメディアパケットを第1のバッファリング手段に格納するステップと、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信するステップと、
受信されたFECパケットを第2のバッファリング手段に格納するステップと、
前記第2のバッファリング手段からFECパケットを選択するステップと、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行うステップと、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するステップと、
前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間の見積もり値と、前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算して得られるFEC演算時間の見積もり値とを記憶、または前記遅延時間と前記FEC演算時間とを合計したバッファ時間の見積もり値を記憶した記憶手段にアクセスするステップと、
前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記バッファ時間の見積もり値に相当する時間が経過したら、あらかじめ指定されたアプリケーションに配送するステップと、
をコンピュータに実行させる。
この1つの手法として、Pro−MPEG(Moving Picture Experts Group)方式でも採用されるマトリクス形成を伴うFEC方式がある。これは、FECのグループを形成する際に演算対象とする複数のパケットを正方形状に整列させ、横列と縦列とでグループ化する方式である。横列はパケットの順序通りに並べられるため、その順序に直交する縦列は離散的に選択されたものと同等となり、横列でバースト的に欠損した場合も各パケットの所属する演算グループが異なるために各縦列で演算すれば良く、単一の横列のみが欠損した場合には、縦列で見れば離散的な欠損として処理することが可能となる。このようにマトリクス形成により、バースト損失に効果的とされるパケットの並び替え(インターリービング)を単純かつ効率的かつ暗黙に実現でき、マトリクスの縦横の長さを変更することでFECの誤り耐性を柔軟に変更できる。
また、縦列グループに対する演算のみで回復出来ない場合は、横列グループに対する演算での回復と組み合わせ、縦列および横列での演算を繰り返すことにより、より多くの損失に対処することが可能となる。
このようにマトリクス形成により、従来のFEC方式で弱点とされるバースト損失に対する耐性を補強することが可能となった。
J.Rosenbergほか1名,"RFC2733 An RTP Payload Format for Generic Forward Error Correction" IETF, December 1999 "Pro−MPEG Code of Practice #3 release 2", Pro−MPEG Forum, July 2004
しかしながら、RTPのFEC方式ではパケット損失を検出した際に回復処理を開始すればよいとしているため、マトリクス形成を伴うFEC方式においては、バースト損失が発生した場合、回復演算が発生した時点で、一時的に演算処理が突出して増大する問題があった。
すなわち、あるマトリクスで横列のパケットが全てバースト損失した場合、縦列と横列のパケット数を乗じた数、すなわちマトリクスサイズ分のパケットが演算対象パケット数となる。ある横列のパケットが全てバースト損失すると、縦列のパケット数から当該縦列の欠損パケット数(ここでは1つ)を除いた値に冗長パケット数(ここでは1つ)を加えた数に横列数を乗じた回数の演算が発生することとなり、この演算を本来の伝送タイミングを乱すことなく実行するために、欠損検出後の極めて短い時間で集中的に回復処理を行う必要が生じる。
そもそも、パケット欠損の発生が、伝送中のエラーに限らず、受信側の処理における取りこぼしの場合もあるため、このように処理を一時的に突発させることは受信側での他の処理(特に後段の処理)に対する影響が大きくなり望ましくない。特に、近年になり機器の性能が向上したことで実現が可能となったハイビジョンクラスのメディアストリーミング伝送では、これまでのリアルタイム・ストリーミングとは桁違いのビットレートでの伝送が行われるため、パケット毎の受信を処理する間の空き時間は微少となる。したがって取りこぼしを生じさせないためには、この空き時間の間に処理を完了させる必要があり、処理量を極端に突出させなければならず、システム全体の構成に与える影響が甚大である。すなわち、高ビットレートなストリーミング伝送を行う際には、受信側の他の処理に対して乱れを生じさせるなどの影響が少ない回復演算方法が必要である。
本発明は、回復処理(FEC演算処理)に起因して受信側の演算量が突発的に増大するのを防ぐようにした通信装置、通信方法および通信プログラムを提供する。
本発明の一態様としての通信装置は、
ネットワークからのメディアパケットの受信を試みる第1の受信手段と、
前記第1の受信手段により受信されたメディアパケットを格納する第1のバッファリング手段と、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信する第2の受信手段と、
前記第2の受信手段により受信されたFECパケットを格納する第2のバッファリング手段と、
前記第2のバッファリング手段からFECパケットを選択する選択手段と、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段における該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記第1の受信手段によりメディアパケットの受信が試みられるごとに1つずつ順番に行うFEC演算処理手段と、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するメディアパケット挿入手段と、
前記第1のバッファリング手段内のメディアパケットをあらかじめ指定されたアプリケーションに順次配送するメディアパケット配送手段と、
を備える。
本発明の一態様としての通信方法は、
ネットワークからのメディアパケットの受信を試み、
受信されたメディアパケットを第1のバッファリング手段に格納し、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信し、
受信されたFECパケットを第2のバッファリング手段に格納し、
前記第2のバッファリング手段からFECパケットを選択し、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行い、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入し、
前記第1のバッファリング手段内のメディアパケットをあらかじめ指定されたアプリケーションに順次配送する。
本発明の一態様としての通信装置プログラムは、
ネットワークからのメディアパケットの受信を試みるステップと、
受信されたメディアパケットを第1のバッファリング手段に格納するステップと、
損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信するステップと、
受信されたFECパケットを第2のバッファリング手段に格納するステップと、
前記第2のバッファリング手段からFECパケットを選択するステップと、
選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行うステップと、
前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するステップと、
前記第1のバッファリング手段内のメディアパケットをあらかじめ指定されたアプリケーションに順次配送するステップと、
をコンピュータに実行させる。
本発明により、FEC演算処理に起因して演算量が突発的に増大するのを防ぐことができる。
図1は、本発明の第1の実施形態に係わるFEC(Forward Error Correction:前方向誤り訂正)受信処理装置(通信装置)の構成を示すブロック図である。
FEC受信処理装置11はネットワーク12を介してFEC送信装置13と通信可能に構成される。FEC送信装置13は、受信側で再生すべきメディアデータおよび順序番号等を含むメディアパケット、および、ネットワーク12上等で損失したメディアパケットを回復するための冗長データ等を含むFECパケットを生成し、ネットワーク12を介してFEC受信処理装置11に送信する。メディアパケットおよびFECパケットは例えばRTP(Real-time Transport Protocol)に従ったパケットであり、本実施形態ではRTPに従っているとする。FEC送信装置13によりFECパケットを生成する様子を図3に示す。また、FEC送信装置13により生成されたメディアパケットおよびFECパケットを送信する様子を図4に示す。
図3に示すようにFEC送信装置13は、複数のメディアパケット(本例では100個のメディアパケット1、2、3、・・・100とする。ただし本発明は当然ながらこれに限定されない)を正方形状に整列させてマトリクスを形成し、10行の横列グループと、10列の縦列グループとを形成する。FEC送信装置13は、縦列グループごとにメディアパケット群を演算(本例ではXORとする)して冗長データを計算し、計算した冗長データを用いて各縦列グループからFECパケットF1、F2、F3・・・F10を得る。FECパケットには冗長データの他、該冗長データ(FECパケット)に関連づけられるメディアパケットを示す情報、およびメディアパケットとは異なる系列の順序番号が含まれる。冗長データ(FECパケット)に関連づけられるメディアパケットとは、冗長データを生成する元となったメディアパケットのことであり、例えばFECパケットF1の冗長データに関連づけられるメディアパケットは、メディアパケット1、11、21、31、・・・、81、91である。本実施形態では縦列グループからのみFECパケットを生成することとするが、縦列グループに加え、横列グループからもFECパケットを生成することも可能である。
FEC送信装置13は、各縦列グループからFECパケットを生成したら、図4に示すように、同一のマトリクス(第1のマトリクスとする)に属するメディアパケット1、2、3、4、・・・99、100を順次、一定のペース(第1のペース)で送信するとともに、各FECパケットF1、F2、F3、・・・F10をメディアパケットの送信と並行して一定のペース(第2のペース)で送信する。本実施形態では第2のマトリクスのメディアパケットの送信と並行して第1のマトリクスから得られた各FECパケットを送信している。FEC送信装置13は、第1のマトリクスに属するメディアパケットの送信が終了したら、第2のマトリクスに属するメディアパケットを順次第1のペースで送信するとともに、第2のマトリクスから得られた各FECパケットをメディアパケットの送信と並行して送信する。本実施形態では第3のマトリクスのメディアパケットの送信と並行して第2のマトリクスから得られた各FECパケットを送信している。第1のマトリクスの最後のメディアパケットと、第2のマトリクスの最初のメディアパケットとの間のペースは上記第1のペースを維持しているとする。
ネットワーク12上でバーストロスが発生し、例えば図3に示すようにメディアパケット51〜60が損失した場合、受信側(FEC受信処理装置11)において以下のようにして損失パケットが回復される。すなわちFECパケットF1の冗長データと、メディアパケット1、11、21、31、41、61、71、81、91のデータをXORすることによりメディアパケット51が回復され、他のメディアパケット52〜60も同様にして回復される。
FEC受信処理装置11におけるメディアパケット受信手段21は、ネットワーク12を介してFEC送信装置13からメディアパケットを受信し、受信したメディアパケットが不正なパケットでなければメディアパケットバッファリング手段23に渡す。より詳細には、ネットワーク12から到来するメディアパケットは、例えばOS(Operating System)が管理するプールにいったん格納され、メディアパケット受信手段21はこのプールに対してメディアパケットの受信を試みる(受信動作を行う)。メディアパケットがプールに入っていれば、メディアパケット受信手段21は、プールからメディアパケットを受け取り、受け取ったメディアパケットをメディアパケットバッファリング手段23に渡す。プール内にメディアパケットが存在しなければ(空振りすれば)再度、適当な時間をおいて、プールに対して受信動作を行う。メディアパケットバッファリング手段23は、メディアパケット受信手段21から渡されたメディアパケットを内部のバッファに格納する。メディアバッファリング手段23は、メディアパケットをバッファに格納する際、該メディアパケットの格納時刻Tinを記録する。
ここで不正なメディアパケットの例としては、直前に受信したメディアパケットの順序番号と同じ番号をもつメディアパケット(重複パケット)、打刻されたタイムスタンプが期待値より以前の値をもつメディアパケット(既に再生タイミングを過ぎてしまっているため、受信しても意味がないメディアパケット)がある。また、現在のストリームのソース識別子と異なるソース識別子をもつメディアパケット、復号や認証に失敗したメディアパケットなどもあり、これらは現在のストリームと無関連として扱うべきメディアパケットである。
このようにメディアパケット受信手段21は、不正でないメディアパケットを受信する毎に、受信したメディアパケットをメディアパケットバッファリング手段23に渡し、メディアパケットバッファリング手段23は、渡されたメディアパケットをバッファに格納する。これによりメディアパケットバッファリング手段23にメディアパケットが逐次格納されていく。メディアパケットバッファリング手段23は、バッファ内の各メディアパケットを順序番号の小さい順に並べている。
一方、FEC受信処理装置11におけるFECパケット受信手段22は、ネットワーク12を介してFEC送信装置13からFECパケットを受信し、受信したFECパケットが不正なパケットでなければこれをFECパケットバッファリング手段24に渡す。FECパケットバッファリング手段24は、受け取ったFECパケットを内部のバッファに格納する。FECパケットバッファリング手段24はFECパケットの順序番号にしたがってFECパケットを並べている。
対応関係検出手段26は、FECパケットのヘッダ情報(FECパケットに関連づけられるメディアパケットを示す情報)からFECパケットに関連づけられたメディアパケット群を検出する(FECの回復単位を判明させる)。検出は、FECパケットをバッファに格納する際に行ってもよいし、FEC演算処理手段27により誤り訂正処理(FEC演算処理)を行う際に行ってもよい。
FEC演算処理手段27は、FECパケットバッファリング手段24にFECパケットが存在する場合、FECパケットバッファリング手段24からFECパケットを読み出し、読み出したFECパケットと、このFECパケットに関連づけられるメディアパケットバッファリング手段23内のメディアパケットとを用いて誤り訂正処理(FEC演算処理)を行う。上述のようにFECパケットバッファリング手段24内でFECパケットは順序番号にしたがって(例えば小さい順)に並べられており、順序番号にしたがってFECパケットが読み出される。FEC演算処理手段27は、順序番号にしたがってFECパケットを選択する選択手段を備えている。
ここで、本実施形態では、FEC演算処理は一度に行うのではなく、FEC演算処理を複数に分割した各分割演算処理を、メディアパケット受信手段21による受信動作が行われるたびに1つずつ順番に行い、分割回数分の受信動作を行うことで、FEC演算処理を完了させることを特徴とし、さらにメディアパケットの損失の有無および損失の個数に拘わらず当該FEC演算処理を行うことを特徴とする。以下、FECパケットF1と、メディアパケット1、11、21、31、41、51、61、71、81、91とが関連づけられている場合を例に本実施形態におけるFEC演算処理を説明する。ただしメディアパケット51はネットワーク12上で損失したとする。
まずメディアパケット受信手段21による前述のOSのプールに対する受信動作が行われると、メディアパケットが受信されたか否かに関係なく、FEC演算処理手段27は、FECパケットF1の冗長データとメディアパケット1とのXORを計算して、(1つ目の分割演算処理を行って)第1の演算結果を得る。次に、またメディアパケット受信手段21によるプールに対する受信動作が行われると、FEC演算処理手段27は、第1の演算結果とメディアパケット11とのXORを計算して(2つ目の分割演算処理を行って)、第2の演算結果を得る。次に、またメディアパケット受信手段21によるプールに対する受信動作が行われると、FEC演算処理手段27は、第2の演算結果とメディアパケット21とのXORを計算して(3つ目の分割演算処理を行って)、第3の演算結果を得る。このようにメディアパケット受信手段21による受信動作が行われるたびに、分割演算処理を行い、計9回の受信動作が行われることで(メディアパケット51は損失していることに注意する)、FEC演算処理は終了し、メディアパケット51が回復する。仮にメディアパケット51が損失していなかった場合は、10回の受信動作によりFEC演算処理が終了することとなる(この場合演算結果は無視される)。FEC演算処理手段27は、このようなFEC演算処理を同一マトリクス内の他のFECパケットF2〜F10についても行う。
このように、本実施形態では、FEC演算処理をメディアパケットの損失の有無および個数に拘わらず行い、かつ、FEC演算処理を複数に分割した各分割演算処理を受信動作のタイミングごとに1つずつ行うことにより、最大でマトリクスサイズ分のメディアパケットに対するFEC演算処理が、マトリクスサイズ分の受信動作タイミングに分散される。すなわち、従来のようにメディアパケットが欠損したことを検知した後に一括してFEC演算処理を行うのではなく、メディアパケットの欠損の有無に拘わらず全てのメディアパケットについてFEC演算処理を行い、かつ、このFEC演算処理を複数回に分散して行う。これによりFEC演算処理(メディアパケット回復処理)の負荷が突発的に(極度に)突出することを回避でき、FEC演算処理に必要な演算量と演算時間(FEC演算時間)Tpとをあらかじめ一定に見積もることが可能となる。これについて詳しく説明するならば以下の通りである。
メディア再生の様に周期的な演算が必要とされる場合、周期的な演算の前に行うべき処理が必要な時刻までに完了するように構成されていなければ、周期性が乱される結果となる。周期的な演算の前に行うべき処理の処理量が均一であるとすれば、その処理に要する時間が自明となり、周期性の確保が容易となる。これは、特に組み込み機器などのように、予め予想される処理量に応じた計算能力を持ち、複数の周期的な演算が並行して動作する場合に有効である。特に周期的な演算の前に行うべき処理が、周期的な演算と関連性を持たない場合、当該処理の処理量が一定でないと、周期的な演算を適切なタイミングにスケジューリングすることが難しくなる。このため、周期的な演算の前に行うべき演算量と演算時間が一定であり、故に予め既知となっていることが望ましい。この点、本実施形態では、上述のように、FEC演算処理に必要な演算量と演算時間とを一定に見積もることができるため、FEC受信処理装置の後段におけるメディア再生等の周期的な演算が乱されるのを防ぐことができる。
FEC受信処理装置11におけるメディアパケット挿入手段28は、損失パケットが存在しかつその数が1つであるかどうかを検査し、そうである場合は、FEC演算処理手段27による演算結果である、回復されたメディアパケットをメディアパケットバッファリング手段23内のバッファの該当する位置に挿入する。すなわち、メディアパケット挿入手段28は、回復されたメディアパケットをメディアパケットバッファリング手段23に渡し、メディアパケットバッファリング手段23は、メディアパケット挿入手段28から受け取ったメディアパケットを、メディアパケットの順序番号に基づき、内部のバッファ内の該当する位置に格納する。この際、メディアパケットバッファリング手段23は、メディアパケットの格納時刻Tinを、「直前の順序番号をもつパケットのTi+受信間隔」または「直後の順序番号をもつパケットのTi−受信間隔」として記録する。「受信間隔」は、あらかじめ取得または設定されたものを用いてもよいし、後述するようにして計算した受信間隔の平均を用いてもよい。なお、損失したメディアパケットが2つ以上である場合は、メディアパケットを回復できなかったものとして処理を進めるものとする。
FEC受信処理装置11におけるメディアパケット配送手段29は、メディアパケットバッファリング手段23内のバッファからメディアパケットを順次取り出し、上位アプリケーションに配送する。より詳細には、メディアパケット配送手段29は、図示しないタイマーより得られる現在時刻と各メディアパケットの格納時刻Tiとを比較し、現在時刻と格納時刻Tiとの差が、あらかじめ設定されたバッファ時間(所定時間)Tbより大きくなったメディアパケットから上位アプリケーションに配送する。
このバッファ時間Tbは、遅延時間Ts+FEC演算時間Tpとして表すことができる。FEC演算時間Tpは、FEC演算処理に要する時間であり、本実施形態では、上述したように、あらかじめ一定に見積もることが可能である。遅延時間Tsは、1つのマトリクスについて最初にメディアパケットが到着(バッファに格納)してから、同一マトリクス内の他の全てのメディアパケットおよび全てのFECパケットが揃うまでの時間である。すなわち、遅延時間Tsは、最初にメディアパケットがバッファに格納されてから同一マトリクス全体についてFEC演算処理を開始可能となるまでに要する時間である。FEC送信装置13からメディアパケットおよびFECパケットを送信するペースは前述したとおり一定であり、このため遅延時間Tsも一定に見積もることが可能である。バッファ時間Tbは、このようにしてあらかじめ見積もられた遅延時間TsとFEC演算時間Tpとを合計したものに相当し、遅延時間TsもFEC演算時間Tpも一定に見積もることが可能であるためバッファ時間Tbも一定に見積もることができる。メディアパケット配送手段29は、メディアパケットの上位アプリケーションに対する配送を、このバッファ時間Tbだけ遅延させてから行う。
ここで、上記説明では、バッファ時間Tbは、あらかじめ設定することとしたが以下のようにしてFEC演算処理手段27により計算することも可能である。
あるマトリクスから得られたFECパケットのうち最後に受信されたFECパケットの受信時刻をT1とし、該マトリクスに属するメディアパケットのうち最も早く到着したメディアパケットの受信時刻をT0とし、遅延時間Ts=T1−T0とする。このTsを仕様上FEC演算処理が演算開始となるタイミングの最悪値とする。
また、メディアパケットの受信間隔をTwとし、1つのマトリクスについてFEC演算処理を行うために必要な受信動作の最大の回数をNとし、FEC演算時間Tp=Tw×Nとする。
Nは例えばマトリクスサイズと同数とし、マトリクスサイズはあらかじめ送信側と受信側とにおいて既知であるか、あるいは、HTTPサーバからまたはRTSPのDESCRIBEメソッドにてストリーム情報を取得し、このストリーム情報からマトリクスサイズを得る。
受信間隔Twは、(1)あらかじめ設定しておいてもよいし、(2)メディアパケットの受信間隔を計測し、計測した受信間隔を平均することにより取得してもよい。
(1)の場合、受信間隔Twがあらかじめ送信側と受信側とにおいて既知であるか、あるいは、別段の通信手段によりストリーム情報をHTTPサーバから取得またはRTSPのDESCRIBEメソッドにて取得し、取得したストリーム情報に基づき、ビットレートをパケット毎のデータ転送バイト数で除することにより、パケットの受信間隔を得る。
(2)の場合、図5に示すように、FEC受信処理装置11に対し、メディアパケットの受信間隔を計測するメディアパケット間隔計測手段25を追加する。メディアパケット間隔計測手段25は、メディアパケットが受信される毎に、そのメディアパケットの格納時刻Tiと、1つ前にバッファに格納されたメディアパケットの格納時刻Tinとの差分を計測し、この差分を、受信したメディアパケットの順序番号と1つ前にバッファに格納されたメディアパケットの順序番号との差分で除算することにより、メディアパケットの受信間隔を計算し、その平均値を受信間隔Twとする。
FEC演算処理手段27は、このようにして計算した遅延時間Tsと、FEC演算時間Tpとを加算することによりバッファ時間Tbを得ることができる。
図2(A)および図2(B)はFEC受信処理装置の動作を説明するためのフローチャートである。特に図2(A)は、メディアパケット受信手段21、メディアパケットバッファリング手段23、メディアパケット配送手段29間の動作関係を示し、図2(B)は、メディアパケット受信手段21、FEC演算処理手段27、メディアパケット挿入手段28間の動作関係を示す。
図2(A)に示すように、メディアパケット受信手段21は、メディアパケットの受信を試みる受信動作を行い(S11)、メディアパケットを受信したら(S12のYES)、受信したメディアパケットをメディアパケットバッファリング手段23内のバッファに格納する(S13)。メディアパケットをバッファに格納したら、またはS12においてメディアパケットを受信しなかったら(S12のNO)、メディアパケット配送手段29は、現在時刻と格納時刻Tiとの差がバッファ時間Tbを超えているメディアパケットが存在するかどうかを検査し(S14)、存在する場合は(S14のYES)、そのメディアパケットをバッファから取り出して上位アプリケーションに配送する(S15)。この後、ユーザから終了指示が入力されたかどうかを検査し(S16)、入力された場合は(S16のYES)処理を終了する。終了指示が入力されない場合(S16のNO)、あるいはS14において現在時刻とTiとの差がTb以下であるメディアパケットが存在しない場合は(S14のNO)、ステップS11に戻り、メディアパケット受信手段21により受信動作を行う。
図2(B)に示すように、メディアパケット受信手段21によりメディアパケットの受信動作が行われると(S21)、FEC演算処理手段27は、FEC演算処理を複数に分割した各分割演算処理のうちの1つ(まだ処理されていないもの)を行う(S22)。FEC演算処理手段27は、各分割演算処理の全てが完了したかどうか、すなわちFEC演算処理が完了したかどうかを判断し(S23)、完了した場合は(S23のYES)、バッファリングを行うかどうかを判断する(S24)。すなわち、損失パケットが存在しかつその数が1つであるかどうかを判断する。もしそうであれば(S24のYES)、メディアパケット挿入手段28は、FEC演算処理により得られたメディアパケット(回復したメディアパケット)を、メディアパケットバッファリング手段23内のバッファにおける対応する位置に挿入する(S25)。この後、ユーザから終了指示が入力されたかどうかを検査し(S26)、入力された場合は(S26のYES)処理を終了する。終了指示が入力されない場合(S26のNO)、S23においてFEC演算処理が完了していないと判断された場合(S23のNO)、あるいはS24においてバッファリングしないと判断された場合(S24のNO)、ステップS21に戻り、メディアパケット受信手段21による受信動作を待機する。
以上のように、本実施形態によれば、メディアパケットおよびFECパケットに対する遅延時間Ts(1つのマトリクスについて最初にパケットが到着してからFEC演算処理に必要な全てのパケットが揃うまでの最悪値)を適切に設定するとともに、FEC演算時間内でFEC演算処理を分散させることにより、演算処理量の突発的増大、演算処理の不完全性、無駄な遅延時間を無くし、演算処理量の時間的な平滑化、システム全体負荷の均一化、パケット配送周期の一定性を得ることができる。
なお、図1および図5のFEC受信処理装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、要素21〜29は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、FEC受信処理装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の実施形態に係わるFEC受信処理装置の構成を示すブロック図。 本発明の第1の実施形態の動作を説明するフローチャート。 FECパケットの生成を説明する図。 メディアパケットとFECパケットとの送信を説明する図。 FEC受信処理装置の他の構成例を示すブロック図。
符号の説明
11:FEC受信処理装置(通信装置)
12:ネットワーク
13:FEC送信装置
21:メディアパケット受信装置
22:FECパケット受信手段
23:メディアパケットバッファリング手段
24:FECパケットバッファリング手段
25:メディアパケット間隔計測手段
26:対応関係検出手段
27:FEC演算処理手段
28:メディアパケット挿入手段
29:メディアパケット配送手段

Claims (9)

  1. ネットワークからのメディアパケットの受信を試みる第1の受信手段と、
    前記第1の受信手段により受信されたメディアパケットを格納する第1のバッファリング手段と、
    損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信する第2の受信手段と、
    前記第2の受信手段により受信されたFECパケットを格納する第2のバッファリング手段と、
    前記第2のバッファリング手段からFECパケットを選択する選択手段と、
    選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段における該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記第1の受信手段によりメディアパケットの受信が試みられるごとに1つずつ順番に行うFEC演算処理手段と、
    前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するメディアパケット挿入手段と、
    前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間を計算する遅延時間計算手段と、
    あらかじめ取得した前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算することによりFEC演算時間を計算するFEC演算時間計算手段と、
    前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記遅延時間と前記FEC演算時間とを合計したバッファ時間が経過したら、あらかじめ指定されたアプリケーションに配送するメディアパケット配送手段と、
    を備えた通信装置。
  2. ネットワークからのメディアパケットの受信を試みる第1の受信手段と、
    前記第1の受信手段により受信されたメディアパケットを格納する第1のバッファリング手段と、
    損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信する第2の受信手段と、
    前記第2の受信手段により受信されたFECパケットを格納する第2のバッファリング手段と、
    前記第2のバッファリング手段からFECパケットを選択する選択手段と、
    選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段における該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記第1の受信手段によりメディアパケットの受信が試みられるごとに1つずつ順番に行うFEC演算処理手段と、
    前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するメディアパケット挿入手段と、
    前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間の見積もり値と、前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算して得られるFEC演算時間の見積もり値とを記憶、または前記遅延時間と前記FEC演算時間とを合計したバッファ時間の見積もり値を記憶した記憶手段と、
    前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記バッファ時間の見積もり値に相当する時間が経過したら、あらかじめ指定されたアプリケーションに順次配送するメディアパケット配送手段と、
    を備えた通信装置。
  3. 前記メディアパケットおよび前記FECパケットは、RTP(Real-time Transport Protocol)プロトコルに従ったパケットであることを特徴とする請求項1または2に記載の通信装置。
  4. 前記FEC演算処理は、前記冗長データ、前記冗長データに関連するメディアパケット間での排他的論理和(XOR)演算処理であることを特徴とする請求項1または2に記載の通信装置。
  5. 前記メディアパケットの受信間隔を計測するメディアパケット間隔計測手段をさらに備え、
    前記FEC演算時間計算手段は、前記メディアパケット間隔計測手段により計測されたメディアパケットの受信間隔の平均を、前記あらかじめ取得したメディアパケットの受信間隔として用いる、
    ことを特徴とする請求項1に記載の通信装置。
  6. ネットワークからのメディアパケットの受信を試み、
    受信されたメディアパケットを第1のバッファリング手段に格納し、
    損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信し、
    受信されたFECパケットを第2のバッファリング手段に格納し、
    前記第2のバッファリング手段からFECパケットを選択し、
    選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行い、
    前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入し、
    前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間を計算し、
    あらかじめ取得した前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算することによりFEC演算時間を計算し、
    前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから、前記遅延時間と前記FEC演算時間を合計したバッファ時間が経過したら、あらかじめ指定されたアプリケーションに配送する、通信方法。
  7. ネットワークからのメディアパケットの受信を試み、
    受信されたメディアパケットを第1のバッファリング手段に格納し、
    損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信し、
    受信されたFECパケットを第2のバッファリング手段に格納し、
    前記第2のバッファリング手段からFECパケットを選択し、
    選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行い、
    前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入し、
    前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間の見積もり値と、前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算して得られるFEC演算時間の見積もり値とを記憶、または前記遅延時間と前記FEC演算時間とを合計したバッファ時間の見積もり値を記憶した記憶手段を準備し、
    前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記バッファ時間の見積もり値に相当する時間が経過したら、あらかじめ指定されたアプリケーションに配送する、通信方法。
  8. ネットワークからのメディアパケットの受信を試みるステップと、
    受信されたメディアパケットを第1のバッファリング手段に格納するステップと、
    損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信するステップと、
    受信されたFECパケットを第2のバッファリング手段に格納するステップと、
    前記第2のバッファリング手段からFECパケットを選択するステップと、
    選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行うステップと、
    前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するステップと、
    前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間を計算するステップと、
    あらかじめ取得した前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算することによりFEC演算時間を計算するステップと、
    前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから、前記遅延時間と前記FEC演算時間とを合計したバッファ時間が経過したら、あらかじめ指定されたアプリケーションに配送するステップと、
    をコンピュータに実行させるための通信プログラム。
  9. ネットワークからのメディアパケットの受信を試みるステップと、
    受信されたメディアパケットを第1のバッファリング手段に格納するステップと、
    損失したメディアパケットを回復するための冗長データと、前記冗長データに関連する複数のメディアパケットを特定する情報とを含むFEC(Forward Error Correction)パケットを受信するステップと、
    受信されたFECパケットを第2のバッファリング手段に格納するステップと、
    前記第2のバッファリング手段からFECパケットを選択するステップと、
    選択された前記FECパケットに含まれる冗長データと、前記第1のバッファリング手段において該冗長データに関連するメディアパケットとを用いて行うべきFEC演算処理を複数に分割した各分割演算処理を、前記メディアパケットの受信が試みられるごとに1つずつ順番に行うステップと、
    前記FEC演算処理により回復されたメディアパケットを前記第1のバッファリング手段に挿入するステップと、
    前記FECパケットと、前記FECパケットに関連するメディアパケットのうち、最初に受信されたパケットの受信時刻と、最後に受信されたパケットの受信時刻との差である遅延時間の見積もり値と、前記メディアパケットの受信間隔と、前記FEC演算処理の分割回数とを乗算して得られるFEC演算時間の見積もり値とを記憶、または前記遅延時間と前記FEC演算時間とを合計したバッファ時間の見積もり値を記憶した記憶手段にアクセスするステップと、
    前記第1のバッファリング手段内のメディアパケットを、前記メディアパケットが前記第1のバッファリング手段へ格納されてから前記バッファ時間の見積もり値に相当する時間が経過したら、あらかじめ指定されたアプリケーションに配送するステップと、
    をコンピュータに実行させるための通信プログラム。
JP2006311498A 2006-11-17 2006-11-17 通信装置、通信方法および通信プログラム Active JP4250654B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006311498A JP4250654B2 (ja) 2006-11-17 2006-11-17 通信装置、通信方法および通信プログラム
US11/928,653 US9191158B2 (en) 2006-11-17 2007-10-30 Communication apparatus, communication method and computer readable medium
EP20070254317 EP1924019B1 (en) 2006-11-17 2007-10-31 FEC communication apparatus, communication method and computer readable medium
CN2007101694310A CN101184034B (zh) 2006-11-17 2007-11-12 通信设备和通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006311498A JP4250654B2 (ja) 2006-11-17 2006-11-17 通信装置、通信方法および通信プログラム

Publications (2)

Publication Number Publication Date
JP2008131153A JP2008131153A (ja) 2008-06-05
JP4250654B2 true JP4250654B2 (ja) 2009-04-08

Family

ID=39148630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006311498A Active JP4250654B2 (ja) 2006-11-17 2006-11-17 通信装置、通信方法および通信プログラム

Country Status (4)

Country Link
US (1) US9191158B2 (ja)
EP (1) EP1924019B1 (ja)
JP (1) JP4250654B2 (ja)
CN (1) CN101184034B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5075536B2 (ja) * 2007-09-03 2012-11-21 株式会社東芝 Fec送信処理装置、ならびにfec送信処理のための方法およびプログラム
US8230316B2 (en) * 2008-01-25 2012-07-24 Nevion Usa, Inc. Forward error correction for burst and random packet loss for real-time multi-media communication
JP4930449B2 (ja) * 2008-04-24 2012-05-16 株式会社Jvcケンウッド 前方誤り復元方式受信装置および前方誤り復元方式受信出力方法
WO2010010432A1 (en) * 2008-07-25 2010-01-28 Nortel Networks Limited Multisegment loss protection
JP5135121B2 (ja) 2008-08-22 2013-01-30 株式会社東芝 データ受信装置、データ受信方法、及びデータ受信プログラム
EP2194667B1 (en) * 2008-12-03 2017-03-15 Alcatel Lucent Error control on-demand
JP5408981B2 (ja) * 2008-12-09 2014-02-05 キヤノン株式会社 通信装置、及び通信方法、プログラム
JP2014225900A (ja) * 2008-12-23 2014-12-04 ロックスター コンソーシアム ユーエス エルピーRockstar Consortium Us Lp マルチセグメント損失の保護
JP5412917B2 (ja) 2009-03-27 2014-02-12 富士通株式会社 誤り訂正制御装置、誤り訂正制御方法およびメディアデータ配信システム
JP5610709B2 (ja) * 2009-06-04 2014-10-22 キヤノン株式会社 エラー訂正用データの生成装置、及び生成方法
US8543893B2 (en) * 2009-09-02 2013-09-24 Agere Systems Llc Receiver for error-protected packet-based frame
JP5535231B2 (ja) * 2009-09-30 2014-07-02 株式会社東芝 受信処理装置およびプログラム
JP5174076B2 (ja) 2010-03-30 2013-04-03 株式会社東芝 計算処理装置、受信処理装置、受信処理方法及び受信処理プログラム
CN102262657B (zh) * 2011-06-29 2014-12-03 华为数字技术(成都)有限公司 多媒体数据存储方法及系统
JP5723753B2 (ja) * 2011-11-17 2015-05-27 株式会社メディアグローバルリンクス データ伝送システム及び受信装置
JP5723752B2 (ja) * 2011-11-17 2015-05-27 株式会社メディアグローバルリンクス データ伝送システム及び受信装置
JP6146806B2 (ja) * 2013-05-30 2017-06-14 日本電気株式会社 通信システム、変換装置、及び通信方法
DE102013018972B3 (de) * 2013-11-14 2015-02-19 Olympus Winter & Ibe Gmbh Resektoskop mit Laserfaser
CN103647727B (zh) * 2013-11-29 2017-01-18 福建星网锐捷网络有限公司 音视频传输控制方法和装置
JP5671125B1 (ja) * 2013-12-11 2015-02-18 日本電信電話株式会社 前方誤り訂正情報生成装置、受信装置、前方誤り訂正情報生成方法、前方誤り訂正処理方法、前方誤り訂正情報生成プログラムおよび前方誤り訂正処理プログラム
US20170104806A1 (en) * 2015-10-13 2017-04-13 Comcast Cable Communications, Llc Methods and systems for content stream coding
US9794025B2 (en) * 2015-12-22 2017-10-17 Qualcomm Incorporated Systems and methods for communication and verification of data blocks
US10805044B2 (en) 2019-02-25 2020-10-13 At&T Intellectual Property I, L.P. Optimizing delay-sensitive network-based communications with latency guidance
CN110278058B (zh) * 2019-06-05 2020-11-03 华为技术有限公司 一种冗余信息反馈方法及通信装置
CN112532341A (zh) * 2019-09-17 2021-03-19 青岛海信宽带多媒体技术有限公司 一种媒体数据播放方法及装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243596A (en) * 1992-03-18 1993-09-07 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
US5600663A (en) * 1994-11-16 1997-02-04 Lucent Technologies Inc. Adaptive forward error correction system
JPH11505685A (ja) * 1995-04-27 1999-05-21 トラスティーズ・オブ・ザ・スティーブンス・インスティテュート・オブ・テクノロジー 時間限界マルチメディアネットワークアプリケーションのための高保全性伝送
US6516435B1 (en) * 1997-06-04 2003-02-04 Kabushiki Kaisha Toshiba Code transmission scheme for communication system using error correcting codes
US6081907A (en) * 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US6000053A (en) * 1997-06-13 1999-12-07 Microsoft Corporation Error correction and loss recovery of packets over a computer network
SE511881C2 (sv) * 1997-08-08 1999-12-13 Ericsson Telefon Ab L M Förfarande och arrangemang för överföring av paketinformation i ett digitalt telekommunikationssystem
US6243846B1 (en) * 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6145109A (en) * 1997-12-12 2000-11-07 3Com Corporation Forward error correction system for packet based real time media
US6141788A (en) * 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6445717B1 (en) * 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6490705B1 (en) * 1998-10-22 2002-12-03 Lucent Technologies Inc. Method and apparatus for receiving MPEG video over the internet
US6317462B1 (en) * 1998-10-22 2001-11-13 Lucent Technologies Inc. Method and apparatus for transmitting MPEG video over the internet
US6771674B1 (en) * 1998-12-28 2004-08-03 3Com Corporation Method and system for forward error correction based on parallel streams
US6473875B1 (en) * 1999-03-03 2002-10-29 Intel Corporation Error correction for network delivery of video streams using packet resequencing
US6532562B1 (en) * 1999-05-21 2003-03-11 Microsoft Corp Receiver-driven layered error correction multicast over heterogeneous packet networks
US6996097B1 (en) * 1999-05-21 2006-02-07 Microsoft Corporation Receiver-driven layered error correction multicast over heterogeneous packet networks
US6594798B1 (en) * 1999-05-21 2003-07-15 Microsoft Corporation Receiver-driven layered error correction multicast over heterogeneous packet networks
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
KR100833222B1 (ko) 2000-03-29 2008-05-28 삼성전자주식회사 멀티미디어 송수신 장치 및 방법
US6732314B1 (en) * 2000-05-26 2004-05-04 3Com Corporation Method and apparatus for L2TP forward error correction
US7224702B2 (en) * 2000-08-30 2007-05-29 The Chinese University Of Hong Kong System and method for error-control for multicast video distribution
US7151754B1 (en) * 2000-09-22 2006-12-19 Lucent Technologies Inc. Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
US6675340B1 (en) * 2000-10-19 2004-01-06 Network Equipment Technologies, Inc. Forward error correction (FEC) for packetized data networks
US7095729B2 (en) * 2000-12-22 2006-08-22 Intel Corporation Method for multimedia communication over packet channels
US6745364B2 (en) * 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
US7787389B2 (en) * 2001-08-20 2010-08-31 Qualcomm Incorporated Method and system for utilization of an outer decoder in a broadcast services communication system
JP4116470B2 (ja) * 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
KR100458878B1 (ko) * 2002-05-03 2004-12-03 학교법인 경희대학교 Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법
US6851084B2 (en) * 2002-06-10 2005-02-01 Harris Corporation Forward error correction method and system for reliable transmission of real time data over a packet based network
US7016327B2 (en) * 2002-08-21 2006-03-21 Qualcomm Incorporated Method and system for communicating content on a broadcast services communication system
US7020109B2 (en) * 2002-08-21 2006-03-28 Qualcomm Incorporated Method and system for communicating content on a broadcast services communication system
US7085282B2 (en) * 2003-07-01 2006-08-01 Thomson Licensing Method and apparatus for providing forward error correction
US7447148B2 (en) * 2003-10-28 2008-11-04 Ntt Docomo, Inc. Method for supporting scalable and reliable multicast in TDMA/TDD systems using feedback suppression techniques
JP4349114B2 (ja) * 2003-12-10 2009-10-21 ソニー株式会社 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
WO2005086436A1 (ja) 2004-03-03 2005-09-15 Mitsubishi Denki Kabushiki Kaisha パケット転送装置、パケット転送ネットワークシステム、および、端末装置
US7328393B2 (en) * 2004-04-13 2008-02-05 Cisco Technology, Inc. Forward error correction in packet networks
JP4405875B2 (ja) * 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
WO2006061902A1 (ja) 2004-12-09 2006-06-15 Mitsubishi Denki Kabushiki Kaisha データ送信装置、データ受信装置、およびデータ配信システム
US7899038B2 (en) * 2006-03-30 2011-03-01 Audiocodes Ltd. Method and apparatus for communicating fax data over the internet
US7577898B2 (en) * 2006-04-10 2009-08-18 At&T Intellectual Property I, L.P. System and method of correcting video data errors

Also Published As

Publication number Publication date
EP1924019A2 (en) 2008-05-21
JP2008131153A (ja) 2008-06-05
US20080222494A1 (en) 2008-09-11
US9191158B2 (en) 2015-11-17
CN101184034B (zh) 2011-01-05
EP1924019B1 (en) 2012-07-11
CN101184034A (zh) 2008-05-21
EP1924019A3 (en) 2011-01-05

Similar Documents

Publication Publication Date Title
JP4250654B2 (ja) 通信装置、通信方法および通信プログラム
US8261162B2 (en) Decoding device, decoding method, and media data delivery system
JP4785836B2 (ja) デジタルデータパケットを伝送する方法および該方法を実装する装置
US8266492B2 (en) FEC transmission processing apparatus and method and program recording medium
US8442052B1 (en) Forward packet recovery
JP5442816B2 (ja) 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
CN110943800B (zh) 数据包的发送方法、装置及系统、存储介质、电子装置
US7320099B2 (en) Method and apparatus for generating error correction data, and a computer-readable recording medium recording an error correction data generating program thereon
US9166735B2 (en) Correction data
US8621311B2 (en) Data transfer device, method, and program
US8009560B2 (en) Detecting and managing congestion on a shared network link
JP4658948B2 (ja) 損失パケットの再構成方法及びその方法を実施する装置
JP5516381B2 (ja) 試験プログラム、試験装置、及び試験方法
US8223643B1 (en) Method for packet-level FEC encoding a stream of source packets using shifted interleaving
US8699520B2 (en) Computer device, receiving device, receiving method, and computer readable storage medium storing instructions of a computer program thereof
US10200154B2 (en) System and method for early packet header verification
JP2010034898A (ja) データ送信装置及びデータ送信方法
JP5239405B2 (ja) Ts受信装置及びそれに用いるタイミング再生方法
WO2016203870A1 (ja) 送信装置、送信方法、及び通信システム
JP2007053745A (ja) 受信機及びプログラム
Ding et al. An end-to-end delivery scheme for robust video streaming
JP5671124B1 (ja) 前方誤り訂正情報生成装置、前方誤り訂正情報生成方法、および前方誤り訂正情報生成プログラム
JP2012161006A (ja) データ送信装置及びデータ受信装置
JP2008011142A (ja) 受信装置
Chilamkurti et al. Video multicasting using layered FEC on split protocol

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080826

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: 20090109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4250654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140123

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250