JP2004289621A - Data transmission server - Google Patents

Data transmission server Download PDF

Info

Publication number
JP2004289621A
JP2004289621A JP2003080653A JP2003080653A JP2004289621A JP 2004289621 A JP2004289621 A JP 2004289621A JP 2003080653 A JP2003080653 A JP 2003080653A JP 2003080653 A JP2003080653 A JP 2003080653A JP 2004289621 A JP2004289621 A JP 2004289621A
Authority
JP
Japan
Prior art keywords
data
packet
transmission
unit
rate
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.)
Granted
Application number
JP2003080653A
Other languages
Japanese (ja)
Other versions
JP4173755B2 (en
Inventor
Atsushi Ichiki
篤史 一木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003080653A priority Critical patent/JP4173755B2/en
Publication of JP2004289621A publication Critical patent/JP2004289621A/en
Application granted granted Critical
Publication of JP4173755B2 publication Critical patent/JP4173755B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data transmission server capable of suppressing deterioration in the quality of data, even when a packet loss is generated with an increase in transmission rate. <P>SOLUTION: This server is equipped with a data transmitting means for transmitting data to a terminal through a network, a redundant code transmitting means for transmitting a redundant code for suppressing the generation of a transmission error of the data, a receiving means for receiving feedback information from the terminal, a determination means for determining whether the transmission rate increases on the basis of the feedback information, and a rate increasing means for increasing the transmission rate by an increase in the redundant code when the determination means determines that the transmission rate increases. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、データの伝送システムに関し、特に符号化メディアデータをベストエフォートのインターネット網や無線伝送路で伝送するサーバに関する。
【0002】
【従来の技術】
従来からインターネット網等のベストエフォートの伝送路環境でストリーミングやビデオ電話等により、動画像データを伝送してきた。この動画像データの伝送には、UDP(User Datagram Protocol)と呼ばれるリアルタイム性を重視したプロトコルが多く使われる。
【0003】
しかし、UDPは、HTTP等で使用されるTCP(Transport Control Protocol)のように、クライアント側からのフィードバック情報を利用して送信レートを変化させる機構を備えていない。そのために、UDPのトラフィックが増加すると伝送路の帯域を占有する現象がしばしば起こっていた。
【0004】
一方、UDPと同じくリアルタイム性を重視するプロトコルとして、RTP(Real−time Transport Protocol)がある。このRTPは、一定の間隔でクライアント側からRTCP(RTP Control Protocol)と呼ばれる伝送品質をフィードバックする機構を備える。そのため、現在では、このRTCPを利用して送信レートを制御するシステムが増加している。
【0005】
このような技術として、データをパケット化し、ネットワークに送信するサーバが、クライアントから送信される受信状況に基づいて送信レートを決定しデータを送信するデータ通信装置が提供されている(特許文献1参照。)。
【0006】
しかしながら、RTCP等のフィードバック情報を利用して送信レートを制御するシステムでは、伝送している動画像の品質が著しく低下する虞があった。つまり、TCPやRTP等他のトラフィックが伝送路上に混在する状態で、サーバが送信レートを増加したとき、輻輳(congestion)によってパケット損失が発生する。そのため、伝送している動画像の品質が著しく低下する。
【0007】
【特許文献1】
特開2001−144802号公報(要約書)。
【0008】
【発明が解決しようとする課題】
本発明は、このような従来技術の問題に鑑みてなされたものである。すなわち、本発明が解決しようとする課題は、送信レートの増加に伴ってパケット損失が発生した場合でもデータの品質の劣化を抑制できるデータ伝送サーバを提供することである。
【0009】
【課題を解決するための手段】
本発明は、上記課題を解決するために以下の手段を採用した。
【0010】
本発明に係るサーバは、ネットワークを介して端末にデータを送信するデータ送信手段と、前記データの伝送誤りを抑制する冗長符号を送信する冗長符号送信手段と、前記端末からフィードバック情報を受信する受信手段と、前記フィードバック情報に基づいて送信レートの増減を判断する判断手段と、前記判断手段が送信レートを増加すると判断した場合に前記冗長符号の増加により送信レートを増加するレート増加手段とを備えることを特徴とする。
【0011】
送信レートを増加する場合、例えば輻輳が発生する可能性がある。このような構成にすると、送信レートの増加分を冗長符号で構成することによって伝送路の変化を探査できる。そのため、送信レートを増加した時にデータ損失が発生したとしても、伝送するデータの伝送誤りを抑えることができる。
【0012】
また、本発明のサーバは、前記冗長符号を送信する前後において伝送路の状況を比較する比較手段と、前記比較手段が伝送路の状況に変化がないと判断した場合に、増加した前記冗長符号に換えて前記データ送信部から送信するデータを増加させるデータ増加手段とをさらに備えてもよい。また、本発明のサーバは、前記比較手段が伝送路の状況が悪化したと判断した場合に前記冗長符号の送信を停止する停止手段をさらに備えてもよい。
【0013】
このような構成にすると、冗長符号を送信する前後において伝送路の状況に変化がないと判断した場合に、レート増加分をデータに置き換えて送信することができる。一方、冗長符号を送信する前後において伝送路の状況に悪化したと判断した場合に、以前の状態、つまりレート増加分の冗長符号を除いた状態に戻すことができる。
【0014】
また、本発明のサーバは、前記比較手段が前記フィードバック情報に基づいて冗長符号を送信する前後における伝送路の状況を比較してもよい。そして、フィードバック情報はパケット損失率、パケットが到着した間隔に関する情報、あるいはラウンドトリップ時間を含んでもよい。
【0015】
また、冗長符号はパケット間のパリティ情報を含むパケット間誤り訂正方式であってもよいし、冗長符号はデータの優先度に基づいて順番に生成されてもよい。
【0016】
このような構成にすると、伝送路においてパケット損失が発生したとしても、冗長化符号を利用して、損失したパケットを復元することが可能になる。
【0017】
また、例えば、MPEGデータにおけるイントラフレーム(Iフレーム)の冗長符号を優先的に生成したとする。イントラフレームを優先すると、送信レートを増加した時にパケット損失が発生した場合であっても画質劣化を最小限に抑えることができる。
【0018】
また、本発明は上記のようなプログラムを読み取り可能な記憶媒体に記憶したものであってもよい。
【0019】
【発明の実施の形態】
以下に図面を参照して、本発明の好適な実施の形態を説明する。
【0020】
図1は本発明の原理を示す図であり、図2は本実施の形態における伝送システムを示すブロック図である。図3はFECパケットの構成図であり、図4はRTPヘッダの構成図であり、図5はFECヘッダの構成図である。図6はFECパリティ情報の生成方法を示す図である。図7から図9はレート制御部の処理フローを示す図である。
<伝送システムの原理図>
図1を参照して、本発明の伝送システムの原理をメディアデータの流れとともに各構成要素の機能について説明する。
【0021】
この伝送システムは、ネットワーク20を介して接続されるサーバ10とクライアント30とを含む。ここでネットワーク20は、たとえば組織内で運営されるLAN、あるいは不特定多数のネットワークが結合したインターネットなどを含み、その形態について特定するものではない。
【0022】
まず、メディアデータが入力された後のサーバ10側の処理を説明する。
【0023】
サーバ10は、符号化部11、パケッタイザ12、データ送信部13、レート制御部14、フィードバック受信部15、スイッチ16、冗長符号生成部17、及び冗長符号送信部18を含む。
【0024】
符号化部11は、入力されたメディアデータを符号化する。そして、パケッタイザ12は、符号化データをパケット化し、ヘッダを付加する。データ送信部13は、ネットワーク20を経由してクライアント30に向けて、パケットとしてメディアデータを送信する。
【0025】
フィードバック受信部15は、クラインアント30からパケットとしてフィードバック情報を受信する。このフィードバック情報は、パケット損失率、ジッタ、及びパリティ情報の受信時刻などを含む。そして、このフィードバック情報は、伝送路上の輻輳(congestion)を察知するために利用される。
【0026】
そして、レート制御部14は、受信したフィードバック情報をもとに、送信レートを決定する。その後、レート制御部14は、決定された送信レートになるように、符号化部11、スイッチ16、冗長符号生成部17を制御する。ここで、レート制御部14は、送信レートを増加すると判断した場合には、スイッチ16に送信レートの増加制御を指示する。
【0027】
スイッチ16は、パケッタイザ12で生成された符号化データパケットを複製する。そして、スイッチ16は、複製した符号化データパケットを冗長符号生成部17に送る。この符号化データパケットは、冗長符号生成部17内のバッファ(図示せず)に記憶される。
【0028】
そして、冗長符号生成部17は、バッファ内の符号化データパケットが一定量蓄積されると、冗長符号としてパリティ情報を生成する。冗長符号送信部18は、このパリティ情報にヘッダを付加してパケットを生成する。そして、冗長符号送信部18は、ネットワーク20を経由してクライアント30に向けてパリティ情報を含む冗長符号を送信する。
【0029】
次に、クライアント30側の処理を説明する。
【0030】
クライアント30は、データ受信部31、データ復元部32、復号部33、表示部34、フィードバック情報生成部35、フィードバック情報送信部36、及び冗長符号受信部37を含む。
【0031】
データ受信部31は、ネットワーク20を経由して、パケットとしてメディアデータを受信する。そして、データ受信部31は、受信したメディアデータをデータ復元部32に送る。また、データ受信部31は、パケット損失やパケットの受信間隔(以下、ジッタという)を測定し、測定した情報をフィードバック情報生成部35に送る。
【0032】
データ復元部32はメディアデータを復元する。つまり、データ復元部32は、パケット損失があった場合には、冗長符号受信部37が受信したパリティ情報から損失したパケットを復元する。そして、復号部33は符号化されたパケットデータを復号する。その後、表示部34は復号したメディアデータを動画像として表示する。
【0033】
一方、冗長化符号受信部37は、冗長符号送信部18からパリティ情報を冗長符号として受信する。そして、冗長化符号受信部37は、パリティ情報をデータ復元部32に送る。また冗長符号受信部37は、パケット損失やパケットの受信間隔(以下、ジッタという)を測定し、測定した情報をフィードバック情報生成部35に送る。
【0034】
フィードバック情報生成部35は、データ受信部31と冗長符号受信部37とから送られる情報を受信する。この情報は、パケット損失率、ジッタ、またはパリティ情報の受信時刻などを含む。また、この情報をフィードバック情報という。このフィードバック情報は、伝送路上の輻輳(congestion)を察知するために必要な情報である。フィードバック情報生成部35はフィードバック情報からパケットを生成する。
【0035】
そして、フィードバック送信部36は、生成されたパケットを一定時間毎にサーバ10に送信する。その後、サーバ10はフィードバック受信部15でフィードバック情報をパケットとして受信する。
【0036】
次に、レート制御部14における送信レートの増加制御について説明する。まず、冗長符号送信部18は、送信レートの増加分を冗長符号として送信する。ここで、冗長符号送信部18が冗長符号を送信したデータ量に比例して、サーバ10の送信レートは増加する。一方、フィードバック情報受信部15は、クライアント30からフィードバック情報を受信する。
【0037】
そして、レート制御部14は、このフィードバック情報からネットワークの状況を判断する。つまり、レート制御部14は、冗長符号を送信して送信レートを増加させたことによるネットワークの伝送状況の変化を判断する。この伝送状況は、伝送路上の輻輳の有無や輻輳の割合などを意味する。
【0038】
レート制御部14は、ネットワークの状況に変化がないと判断した場合、今まで送信した冗長符号を符号化メディアデータに置き換えて、データ送信部13から符号化メディアデータを更に送信する。つまり、このような場合には、サーバ10は、送信レートの増加により、より多くの符号化メディアデータを送信できる。
【0039】
一方、レート制御部14は、ネットワークの状況に変化があったと判断した場合、冗長符号の送信を停止する。このような場合には、サーバ10が送信するメディアデータのデータ量は変化しない。
【0040】
ところが、送信レートを増加したことにより輻輳が発生し、メディアデータのパケット損失が生じる場合がある。そのためにメディアデータの品質が劣化するおそれがある。このような場合でも、クライアント30は、送信した冗長符号を利用して損失したパケットを復元できる。そのため、送信レートを増加したことによりパケット損失が生じたとしても、メディアデータの品質の劣化を抑えることができる。
【0041】
本実施の形態において、冗長符号は、複数のパケット間でパリティ情報を付加することができるパケット間FEC(Forward Error Correction)方式とする。FECパケットについては図6で説明する。
【0042】
また、本伝送システムは、符号化メディアデータの符号化方式に従って優先順位をつけることがきる。そして、伝送システムは、その順位に従って符号化メディアデータのパリティ情報の生成頻度を制御してもよい。
【0043】
このようにパリティ情報を生成すると、送信レートを増加した際に輻輳が発生したとしても、優先的にFECパケットを割り当てて復元することができる。そのため、メディアデータ内の優先的な情報から順番に劣化を抑えることができる。
<FECパケットの構成図>
FECパケット21は、RTPヘッダ22、FECヘッダ23、FECリカバリ24から構成される。また、RTPヘッダ22は、RTPの制御用のデータである。そして、FECヘッダ23は、FECの制御用のデータである。FECリカバリ24には、図6に示すRTPパケットのパリティ情報が含まれる。
【0044】
このFECパケットのフォーマットは、インターネット(IP/UDP)網におけるパケット間FECの定義(RFC2733:“An RTP Payload Format for Generic Forward Error Correction”)に従う。RFC2733では、複数のRTPパケットに対して、パケット全体のパリティを計算したFECパケットを設ける。こうすることによって、パケット損失が生じた時にFECパケットを使って損失したパケットを復元する。
【0045】
サーバ10は、送信レートを増加するとき、メディアデータの送信に先駆けて、冗長符号としてFECパケット21を送信する。そして、送信レートを増加した場合の伝送路の輻輳状態を察知するためFECパケット21は利用される。
【0046】
次に図4を参照して、RTPヘッダ22の構成を説明する。RTPヘッダ22は、VERフィールド40、Pフィールド41、Xフィールド42、CCフィールド43、Mフィールド44、PTフィールド45、Sequence Number フィールド46、Time Stampフィールド47、SSRCフィールド48、及びCSRCフィールド49から構成される。このRTPヘッダ22は、RTP制御のため、FECパケットやメディアデータの符号化パケットに付加される。
【0047】
2ビットのVERフィールド40は、RTPバージョン番号を示す。現在は、バージョン2である。各パケットはこのVERフィールドで始まる。Pフィールド41は、1ビットのパディングビットを含む。このバディングビットには、パケットの最後がパディングされているかを示す。
【0048】
Xフィールド42は、1ビットのエクステンションビットを含む。このエクステンションビットは、RTPヘッダの直後に拡張ヘッダを持つ場合には「1」となる。CC(CSRCカウント)フィールド43は、CSRC(寄与送信元識別子)の数を示す。
【0049】
Mフィールド44は、1ビットのマーカービットを含む。このマーカービットは、アプリケーションデータの境界を示す。7ビットのPTフィールド45は、ペイロードタイプのアプリケーションデータの符号化方式を示す。16ビットのSequence Numberフィールド46は、パケットのシーケンス番号を含む。このシーケンス番号は、パケットの送信順に割り振られる。
【0050】
Time Stampフィールド47は32ビットの値であり、このパケットの先頭バイトが送信された時刻を示す。SSRC(同期送信元識別子)フィールド48は、32ビットの値であり、パケットの送信元を示す。CSRC(寄与送信元識別子)フィールド49は、混合されたストリームの同期を示す。このCSRCフィールド49は可変長である。
【0051】
次に図5を参照して、FECヘッダの構成を説明する。FECヘッダ22は、SN Baseフィールド50、Length recoveryフィールド51、PT recoveryフィールド53、Maskフィールド54、及びTS recoveryフィールド55から構成される。FECヘッダは、FECリカバリのパリティ情報を制御するために付加される。
【0052】
SN Baseフィールド50は、FEC処理の対象となるRTPパケットのシーケンス番号のオフセットを示す。Length recoveryフィールド51は、RTPパケットの長さのパリティ情報を示す。Eフィールド52は、ヘッダの拡張を示す。PT recoveryフィールド53は、ペイロードタイプのパリティ情報を示す。Maskフィールド54は、FEC処理の対象となるRTPパケットの番号を示す。TS recoveryフィールド55は、タイムスタンプのパリティ情報を示す。
<伝送システムのブロック図>
本実施の形態として、MPEG−4の動画像符号データをRTP・RTCPを用いて伝送する場合について図2を参照して説明する。図2は本実施の形態の伝送システムのブロック図である。
【0053】
この伝送システムは、インターネット網200を介して接続されるサーバ100とクライアント300との間で、RTP・RTCPを用いてデータを伝送する。なお、RTCPには、サーバ100からクライアント300に送信されるSender Report(SR)と、クライアント300からサーバ100に送信されるReceiver Report(RR)がある。
【0054】
まず、動画像データが入力された後のサーバ100側の処理を説明する。
【0055】
サーバ100は、MPEG−4符号化部101、パケッタイザ102、RTP送信部103、レート制御部104、SR送信部105、RR受信部109、スイッチ106、FEC生成部107、FEC送信部108、及びRR送信部109を含む。
【0056】
MPEG−4符号化部101は、入力された動画像データを符号化する。
【0057】
そして、パケッタイザ102は、符号化されたデータをパケット化し、図4に示すRTPヘッダを付加する。
【0058】
RTP送信部103は、インターネット網200を経由してクライアント300に向けて、符号化データパケットとして、動画像データを送信する。
【0059】
次に、クライアント300側の処理を説明する。クライアント300は、RTP受信部301、データ復元部302、MPEG−4復号部303、表示部304、フィードバック情報生成部305、SR受信部306、FEC受信部307、及びRR送信部308を含む。
【0060】
RTP受信部301は、インターネット網200を経由して、符号化データパケットを受信する。そして、RTP受信部301は、受信した符号化データパケットをデータ復元部302に送る。また、RTP受信部301は、図4に示すRTPヘッダのシーケンス番号46を参照して、パケット損失やジッタを測定し、測定した情報をフィードバック情報生成部305に送る。
【0061】
データ復元部302は符号化データパケットを復元する。つまり、パケット損失があった場合には、データ復元部302は損失したパケットを復元する。そして、MPEG−4復号部303は符号化されたパケットデータを復号する。その後、表示部304は復号したデータを動画像として表示する。
【0062】
次にフィードバック情報の生成、送信、及び受信、並びに送信レートの制御について説明する。本実施の形態では、サーバ100はRR受信部109でRRパケットを受信したときに送信レートを制御する。
【0063】
まずクライアント300は、パケット損失率、ジッタ情報、及びSRパケット情報をもとに、フィードバック情報生成部305で、RRパケットを生成する。このパケット損失率とジッタ情報は、FECパケット21を受信するFEC受信部307とRTPパケット21を受信するRTP受信部301とから送られる。なお、SRパケット情報は、サーバ100から一定時間毎に送信されるSRパケットを受信した時刻等である。そして、この受信時刻は、サーバ100側でランドトリップ時間を算出する際に用いられる。SRパケット及びRRパケットのフォーマットは、RFC(Request For Comments)1889に記載のフォーマットに従う。このRFC1889は、IETF(The Internet Engineering Task Force)で記載されている。
【0064】
そして、クライアント300は、フィードバック情報として、RRパケットをサーバ100に送信する。
【0065】
一方、サーバ100は、RR受信部109でRRパケットを受信した場合、フィードバック情報をもとに、ラウンドトリップ時間を計算する。このラウンドトリップ時間は、サーバ100側でのSRパケットの送信時刻とRRパケットの受信時刻、及びクライアント300側でのSRパケット受信からRRパケット送信までの時間から計算できる。
【0066】
本実施の形態では、レート制御部104は、このラウンドトリップ時間とパケット損失率に基づいて送信レートを制御する。
【0067】
次に、パケット損失率とラウンドトリップ時間に従ったレート制御部104での送信レートの制御について説明する。レート制御部104は、パケット損失率が所定の閾値(例えば、5%)を越えた場合、またはラウンドトリップ時間が所定の閾値(例えば、200ms)を越えた場合には、送信レートを減少する。
【0068】
一方、レート制御部104は、パケット損失率とラウンドトリップ時間の両方が、閾値以下の場合には、送信レートを増加する。
【0069】
また、レート制御部104は、パケット損失率が閾値以下でラウンドトリップ時間が閾値を越えた場合には、送信レートを固定する。つまりレート制御部104は、送信レートを現状のままにする。
【0070】
次に、レート制御部104が送信レートを増加すると判断した場合の処理について説明する。レート制御部104は、伝送路上の輻輳の割合をもとに判断する。
【0071】
まず、サーバ100は、送信レートの増加分として冗長符号を送信する。ここで、送信される冗長符号のフォーマットは、インターネット(IP/UDP)網におけるパケット間FEC(RFC2733:“An RTP PayloadFormat for Generic Forward Error Correction”)を利用する。RFC2733では、複数のRTPパケットに対して、パケット全体のパリティを計算したFECパケットを設ける。こうすることによって、パケット損失が生じた時にFECパケットを使って損失したパケットを復元することができる。また、RFC2733では、最低24パケットのRTPパケットに1パケットの割合でFECパケットを付加することを推奨している。
【0072】
そして、レート制御部104は、送信レートを増加する判断をした後、FECパケットの生成をスイッチ106に指示する。スイッチ106は、パケッタイザ102で生成される符号化データパケットを複製する。そして、スイッチ106はFEC生成部107内のFEC生成用バッファ(図示せず)に複製したパケットを送る。
【0073】
FEC生成部107は、複製したFECパケットがFEC生成用バッファに所定量(例えば24パケット)蓄積されると、パリティ情報を生成する。また、レート制御部104は、符号化データパケットについて優先度を与え、FEC生成部107に指示する。
【0074】
FEC生成部107は、この優先度に従ってパリティ情報を生成する。この優先度は、例えば符号化データパケットのIフレームとPフレームの割合を7対3とすることができる。ここで各パケットがI・Pフレームのどちらを含むかは、MPEG−4のビデオパケットヘッダのヘッダエクステンションコード内のvop_coding_typeを参照することで認識できる。また、このパリティ情報は、図6に示すように、優先度に従って選択された各RTPパケットについて、ビット単位で排他的論理和を求めることにより生成できる。
【0075】
そして、FEC送信部108は、生成されたパリティ情報に図5に示すようなFECヘッダ23を付加する。さらにFEC送信部108は、RTPヘッダ22を付加して、図4に示すようなFECパケット21を生成する。
【0076】
なお、符号化データバケットの数は、最大でデータパケットと同数である。その場合には、データパケットと同一のFECパケット21が生成され、同一パケットが2度送信される。
【0077】
一方、クライアント300側では、図2に示すFEC受信部307でFECパケット21を受信し、データ復元部302に送る。
【0078】
データ復元部302は、FECパケット21の中から優先度に応じて選択されたパケットの損失を判断する。ここで、データ復元部302は、損失したパケットが「0」、または「2パケット」以上であると判断した場合は、データ復元処理を行わずに復号部303に送る。
【0079】
一方、データ復元部302は、損失したパケットが「1パケット」であると判断した場合には、FECパケット21を使って、損失したパケットを復元する。その後、データ復元部302は、符号化データをMPEG−4復号部303に送る。
【0080】
RTP受信部301は、受信したRTPパケットの損失率を算出し、フィードバック情報生成部305に送る。また、FEC受信部307は、受信したFECパケット21の損失率を算出し、フィードバック情報生成部305に送る。
【0081】
フィードバック情報生成部305は、RRパケットを生成し、RR送信部308からサーバ100にRRパケットを送信する。
【0082】
次に、サーバ100側では、RR受信部109で受信したRRパケットからパケット損失率を取得し、ラウンドトリップ時間を計算する。
【0083】
そして、レート制御部104は、パケット損失率とラウンドトリップ時間を使って、レートの増減の判断を行う。
【0084】
レート制御部104は、送信レートを増加すると判断した場合には、FECパケットの生成を中止することをスイッチ106に対して指示する。ここで、サーバ100は、FECパケット21の送信を停止する。
【0085】
また、レート制御部104は、FECパケット21の増加分に相当する符号化データを送信することをMPEG−4符号化部101に対して指示する。ここで、MPEG−4符号化部101は符号化レート増加するため、サーバ100は増加した送信レートでMPEG−4データを送信することができる。
【0086】
一方、レート制御部104は、送信レートを減少すると判断した場合には、符号化パケットデータをFEC生成部107に送ることを中止することをスイッチ106に対して指示する。この場合には、レート制御部104は、符号化レート減少をMPEG−4符号化部101に指示しない。
<パリティ情報の生成方法>
図6を参照して、RTPパケットのパリティ情報を生成する方法について説明する。
【0087】
サーバは、損失したパケットを復元するため、パケット化されたMPEG−4データについてのパリティ情報を生成する。このパリティ情報は、サーバ100のFEC生成部107で生成される。
【0088】
ここで生成されたパリティ情報は、FECパケット21として、クライアントに送信される。このFECパケット21のフォーマットは、インターネット(IP/UDP)網におけるパケット間FEC(RFC2733:“An RTP Payload Format for Generic Forward Error Correction”)に従う。RFC2733では、複数のRTPパケットに対して、パケット全体のパリティを計算したFECパケット21を設ける。こうすることによって、パケット損失が生じた時にFECパケット21を使って損失したパケットを復元する。
【0089】
そして、FECパケット21を受信したクライアントは、パリティ情報をもとに、MPEG−4データを復元する。
【0090】
本実施の形態では、FECパケット21は、RTPパケット1からRTPパケット4についてのパリティ情報を有する。
【0091】
FECパケット21の1ビット目(F1)は、各RTPパケットの1ビット目(a1、b1、c1、d1)の排他的論理和を求めることにより生成できる。同様にして、それぞれのビット毎にRTPパケットの排他的論理和をとることにより、FECパケット21は生成できる。
【0092】
ここで、RTPパケット3が損失した例について説明する。
クライアントは、受信したRTPパケット(a1、b1、d1)とFECパケット(F1)を使って、排他的論理和が一致するようにすることによって、RTPパケット3(c1)を復元することができる。同様にして、クライアントはRTPパケット3(c2〜c5)を復元できる。
<レート制御部の処理フロー>
図7を参照して、レート制御部の処理を説明する。図7は、レート制御部104の処理フローを示す図である。
【0093】
サーバ100は、クライアント300からフィードバック情報(RR)を受信する(S701)。そして、レート制御部104は、パケット損失率が閾値1より小さいか、ランドトリップ時間が閾値2より小さいかを判断する(S702)。
【0094】
S702で、レート制御部104は、パケット損失率及びランドトリップ時間がともに閾値より小さいと判断した場合、スイッチ106を「ON」にする(S703)。ここで、スイッチ106を「ON」にするとは、FECパケット21を生成する制御を意味する。
【0095】
そして、レート制御部104は、FEC生成部107に対して送信レートの上昇幅、優先比率を通知する(S704)。そして、FEC生成部107は、FECパケット21を生成する(S705)。そして、FEC送信部108は、FECパケット21をクライアント300へ送信する(S706)。
【0096】
一方S702で、パケット損失率及びランドトリップ時間の一方または両方が閾値以上であると判断した場合、レート制御部104は、符号化レートを固定または減少させる(S707)。
【0097】
次に図8を参照して、FECパケット21送信後に伝送路の状況に変化がなかった場合のレート制御部の処理を説明する。図8は、レート制御部104の処理フローを示す図である。
【0098】
サーバ100は、クライアント300からフィードバック情報(RR)を受信する(S801)。このフィードバック情報は、FECパケット21により送信レートが増加した場合の輻輳の割合に関する情報を含む。
【0099】
そして、レート制御部104は、パケット損失率が閾値1より小さいか、ランドトリップ時間が閾値2より小さいかを判断する(S802)。
【0100】
S802で、レート制御部104は、パケット損失率及びランドトリップ時間がともに閾値より小さいと判断した場合、スイッチ106を「OFF」にする(S803)。スイッチ106は、FECパケット21の生成を中止する。つまり、サーバ100はFECパケット21の送信を停止する。
【0101】
そしてレート制御部104は、MPEG−4生成部101に符号化レートの上昇を指示する(S804)。ここで、MPEG−4符号化部101は符号化レート増加する。そして、サーバ100は増加した送信レートでMPEG−4データを送信することができる。
【0102】
一方S802で、パケット損失率及びランドトリップ時間の一方または両方が閾値以上であると判断した場合、レート制御部104は、符号化レートを固定または減少させる(S805)。
【0103】
次に図9を参照して、FECパケット21送信後に伝送路の状況に変化があった場合のレート制御部の処理を説明する。
【0104】
図9は、レート制御部104の処理フローを示す図である。
【0105】
サーバ100は、クライアント300からフィードバック情報(RR)を受信する(S901)。そして、レート制御部104は、パケット損失率が閾値1より大きいか、またはランドトリップ時間が閾値2より大きいかを判断する(S902)。
【0106】
S902で、レート制御部104は、パケット損失率、またはランドトリップ時間の一方が閾値より大きいいと判断した場合、スイッチ106を「OFF」にする(S903)。ここでスイッチ106は、FECパケットの生成を中止する。つまり、サーバ100はFECパケット21の送信を停止する。
【0107】
一方S902で、パケット損失率及びランドトリップ時間の両方が閾値より大きいと判断した場合、レート制御部104は、符号化レートを固定または上昇させる(S904)。
<実施形態の効果>
本実施の形態に従うと、送信レートを増加した時にデータ損失が発生したとしても、伝送するデータの伝送誤りを抑えることができる。
【0108】
また、冗長符号を送信する前後において伝送路の状況に変化がないと判断した場合に、レート増加分をデータに置き換えて送信することができる。一方、冗長符号を送信する前後において伝送路の状況に悪化したと判断した場合に、以前の状態、つまりレート増加分の冗長符号を除いた状態に戻すことができる。
【0109】
また、伝送路においてパケット損失が発生したとしても、冗長化符号を利用して、損失したパケットを復元することが可能になる。
【0110】
さらに、例えば、MPEGデータにおけるイントラフレーム(Iフレーム)の冗長符号を優先的に生成したとする。イントラフレームを優先すると、送信レートを増加した時にパケット損失が発生した場合であっても画質劣化を最小限に抑えることができる。
<コンピュータ読み取り可能な記憶媒体>
上記実施の形態のいずれかの処理をコンピュータに実行させるプログラムをコンピュータが読み取り可能な記憶媒体に記録することができる。そして、コンピュータに、この記憶媒体のプログラムを読み込ませて実行させることにより、上記実施の形態に示したシステムを提供することができる。
【0111】
ここで、コンピュータが読み取り可能な記憶媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記憶媒体をいう。このような記憶媒体のうちコンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、DAT、8mmテープ、メモリカード等がある。
【0112】
また、コンピュータに固定された記録媒体として、ハードディスクやROM(リード・オンリー・メモリ)等がある。
【0113】
なお、上記実施の形態は本発明の範囲をなんら限定するものではなく、当業者が理解できる範囲において適宜、各種の変形の態様があり得る。
<その他>
さらに、本実施の形態は以下の発明を開示する。
(付記1)ネットワークを介して端末にデータを送信するデータ送信手段と、
前記データの伝送誤りを抑制する冗長符号を送信する冗長符号送信手段と、
前記端末からフィードバック情報を受信する受信手段と、
前記フィードバック情報に基づいて送信レートの増減を判断する判断手段と、
前記判断手段が送信レートを増加すると判断した場合に前記冗長符号の増加により送信レートを増加するレート増加手段とを備えることを特徴とするサーバ。
(付記2)前記冗長符号を送信する前後において伝送路の状況を比較する比較手段と、
前記比較手段が伝送路の状況に変化がないと判断した場合に、増加した前記冗長符号に換えて前記データ送信部から送信するデータを増加させるデータ増加手段とをさらに備える付記1に記載のサーバ。
(付記3)前記比較手段が伝送路の状況が悪化したと判断した場合に前記冗長符号の送信を停止する停止手段をさらに備える付記2に記載のサーバ。
(付記4)前記比較手段は前記フィードバック情報に基づいて冗長符号を送信する前後における伝送路の状況を比較する付記2または3に記載のサーバ。
(付記5)前記フィードバック情報はパケット損失率を含む付記4に記載のサーバ。
(付記6)前記フィードバック情報はパケットが到着した間隔に関する情報を含む付記4に記載のに記載のサーバ。
(付記7)前記フィードバック情報はラウンドトリップ時間を含む請求項4乃至6のいずれかに記載のに記載のサーバ。
(付記8)前記冗長符号はパケット間のパリティ情報を含むパケット間誤り訂正方式である付記4に記載のサーバ。
(付記9)前記冗長符号はデータの優先度に基づいて順番に生成される付記4に記載のサーバ。
【0114】
【発明の効果】
以上で説明したように、本発明は送信レートの増加に伴ってパケット損失が発生した場合でもデータの品質の劣化を抑制できるデータ伝送サーバを提供することができる。
【図面の簡単な説明】
【図1】本発明の原理を示す図である。
【図2】本実施の形態における伝送システムを示すブロック図である。
【図3】FECパケットの構成図である。
【図4】RTPヘッダの構成図である。
【図5】FECヘッダの構成図である。
【図6】FECパリティ情報の生成方法を示す図である。
【図7】レート制御部の処理フローを示す図である。
【図8】レート制御部の処理フローを示す図である。
【図9】レート制御部の処理フローを示す図である。
【符号の説明】
10、100…サーバ
11…符号化部
12…パケッタイザ
102…パケッタイザ
13…データ送信部
14、104…レート制御部
15…フィードバック情報受信部
16、106…スイッチ
17…冗長符号生成部
18…冗長符号送信部
20…ネットワーク
21…RTPパケット
22…RTPヘッダ
23…FECヘッダ
24…FECリカバリ
30、300…クライアント
31…データ受信部
32、302…データ復元部
33…復号部
34、304…表示部
35、305…フィードバック情報生成部
36…フィードバック送信部
37…冗長符号受信部
41…V
42…P
43…X
44…C
45…M
45…PT
46…Sequence Number
47…Time Stamp
48…SSRC
49…CSRC
51…SN base
52…Length recovery
53…E
54…PT recovery
55…TS recovery
101…MPEG−4符号化部
103…RTP送信部
105…SR送信部
107…FEC生成部
108…FEC送信部
109…RR受信部
200…インターネット網
301…RTP受信部
303…MPEG−4復号部
306…SR受信部
307…FEC受信部
308…RR送信部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data transmission system, and more particularly to a server that transmits encoded media data over a best-effort Internet network or wireless transmission path.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, moving image data has been transmitted by streaming or video telephone in a best-effort transmission path environment such as the Internet network. For the transmission of the moving image data, a protocol called UDP (User Datagram Protocol) which emphasizes real-time property is often used.
[0003]
However, UDP does not include a mechanism for changing a transmission rate using feedback information from a client side, unlike TCP (Transport Control Protocol) used in HTTP or the like. For this reason, when the UDP traffic increases, the phenomenon of occupying the band of the transmission line has often occurred.
[0004]
On the other hand, there is RTP (Real-time Transport Protocol) as a protocol that places importance on real-time properties like UDP. This RTP includes a mechanism for feeding back transmission quality called RTCP (RTP Control Protocol) from the client side at regular intervals. Therefore, the number of systems that control the transmission rate using the RTCP is increasing at present.
[0005]
As such a technique, a data communication device is provided in which a server that packetizes data and transmits the data to a network determines a transmission rate based on a reception state transmitted from a client and transmits the data (see Patent Document 1). .).
[0006]
However, in a system that controls a transmission rate using feedback information such as RTCP, there is a possibility that the quality of a moving image being transmitted may be significantly reduced. In other words, when the server increases the transmission rate in a state where other traffic such as TCP and RTP are mixed on the transmission path, packet loss occurs due to congestion. Therefore, the quality of the moving image being transmitted is significantly reduced.
[0007]
[Patent Document 1]
JP 2001-144802 A (abstract).
[0008]
[Problems to be solved by the invention]
The present invention has been made in view of such problems of the related art. That is, an object of the present invention is to provide a data transmission server that can suppress deterioration of data quality even when a packet loss occurs due to an increase in transmission rate.
[0009]
[Means for Solving the Problems]
The present invention employs the following means in order to solve the above problems.
[0010]
A server according to the present invention includes a data transmitting unit that transmits data to a terminal via a network, a redundant code transmitting unit that transmits a redundant code that suppresses a transmission error of the data, and a reception that receives feedback information from the terminal. Means, determining means for determining an increase or decrease in transmission rate based on the feedback information, and rate increasing means for increasing the transmission rate by increasing the redundant code when the determining means determines to increase the transmission rate. It is characterized by the following.
[0011]
When the transmission rate is increased, for example, congestion may occur. With such a configuration, a change in the transmission path can be detected by configuring the increase in the transmission rate with a redundant code. Therefore, even if data loss occurs when the transmission rate is increased, transmission errors in data to be transmitted can be suppressed.
[0012]
Further, the server of the present invention further comprises: comparing means for comparing the status of the transmission line before and after transmitting the redundant code, and the redundant code increased when the comparing unit determines that there is no change in the status of the transmission line. In place of the above, the data transmitting unit may further include a data increasing unit that increases data transmitted from the data transmitting unit. Further, the server of the present invention may further include a stop unit for stopping transmission of the redundant code when the comparison unit determines that the condition of the transmission path has deteriorated.
[0013]
With such a configuration, when it is determined that there is no change in the state of the transmission path before and after transmitting the redundant code, the rate increase can be replaced with data and transmitted. On the other hand, if it is determined that the state of the transmission path has deteriorated before and after the transmission of the redundant code, the state can be returned to the previous state, that is, the state excluding the redundant code corresponding to the rate increase.
[0014]
Further, the server of the present invention may compare the status of the transmission path before and after transmitting the redundant code based on the feedback information. And, the feedback information may include a packet loss rate, information about intervals at which packets arrive, or a round trip time.
[0015]
Further, the redundant code may be an inter-packet error correction method including parity information between packets, or the redundant code may be generated in order based on data priority.
[0016]
With such a configuration, even if a packet loss occurs in the transmission path, it is possible to recover the lost packet using the redundancy code.
[0017]
Further, for example, it is assumed that a redundant code of an intra frame (I frame) in MPEG data is preferentially generated. When priority is given to the intra frame, even if a packet loss occurs when the transmission rate is increased, it is possible to minimize image quality deterioration.
[0018]
Further, the present invention may be such that the above-mentioned program is stored in a readable storage medium.
[0019]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0020]
FIG. 1 is a diagram illustrating the principle of the present invention, and FIG. 2 is a block diagram illustrating a transmission system according to the present embodiment. FIG. 3 is a configuration diagram of an FEC packet, FIG. 4 is a configuration diagram of an RTP header, and FIG. 5 is a configuration diagram of an FEC header. FIG. 6 is a diagram illustrating a method of generating FEC parity information. 7 to 9 are diagrams showing the processing flow of the rate control unit.
<Principle of transmission system>
With reference to FIG. 1, the principle of the transmission system of the present invention and the function of each component will be described together with the flow of media data.
[0021]
This transmission system includes a server 10 and a client 30 connected via a network 20. Here, the network 20 includes, for example, a LAN operated in an organization or the Internet to which an unspecified number of networks are connected, and the form thereof is not specified.
[0022]
First, processing on the server 10 side after media data is input will be described.
[0023]
The server 10 includes an encoding unit 11, a packetizer 12, a data transmission unit 13, a rate control unit 14, a feedback reception unit 15, a switch 16, a redundant code generation unit 17, and a redundant code transmission unit 18.
[0024]
The encoding unit 11 encodes the input media data. Then, the packetizer 12 packetizes the encoded data and adds a header. The data transmission unit 13 transmits the media data as a packet to the client 30 via the network 20.
[0025]
The feedback receiving unit 15 receives the feedback information from the client 30 as a packet. This feedback information includes the packet loss rate, the jitter, the reception time of the parity information, and the like. The feedback information is used to detect congestion on the transmission path.
[0026]
Then, the rate control unit 14 determines a transmission rate based on the received feedback information. After that, the rate control unit 14 controls the encoding unit 11, the switch 16, and the redundant code generation unit 17 so that the transmission rate becomes the determined transmission rate. Here, when determining that the transmission rate is to be increased, the rate control unit 14 instructs the switch 16 to increase the transmission rate.
[0027]
The switch 16 duplicates the encoded data packet generated by the packetizer 12. Then, the switch 16 sends the duplicate encoded data packet to the redundant code generation unit 17. This encoded data packet is stored in a buffer (not shown) in the redundant code generator 17.
[0028]
Then, when a fixed amount of encoded data packets in the buffer is accumulated, the redundant code generation unit 17 generates parity information as a redundant code. The redundant code transmitting unit 18 adds a header to the parity information to generate a packet. Then, the redundant code transmission unit 18 transmits the redundant code including the parity information to the client 30 via the network 20.
[0029]
Next, processing on the client 30 side will be described.
[0030]
The client 30 includes a data receiving unit 31, a data restoring unit 32, a decoding unit 33, a display unit 34, a feedback information generating unit 35, a feedback information transmitting unit 36, and a redundant code receiving unit 37.
[0031]
The data receiving unit 31 receives the media data as a packet via the network 20. Then, the data receiving unit 31 sends the received media data to the data restoring unit 32. Further, the data receiving unit 31 measures a packet loss and a packet receiving interval (hereinafter, referred to as jitter), and sends the measured information to the feedback information generating unit 35.
[0032]
The data restoration unit 32 restores media data. That is, when there is a packet loss, the data restoration unit 32 restores the lost packet from the parity information received by the redundant code reception unit 37. Then, the decoding unit 33 decodes the encoded packet data. Thereafter, the display unit 34 displays the decrypted media data as a moving image.
[0033]
On the other hand, the redundant code receiving unit 37 receives the parity information from the redundant code transmitting unit 18 as a redundant code. Then, the redundancy code receiving unit 37 sends the parity information to the data restoring unit 32. The redundant code receiving unit 37 measures a packet loss and a packet receiving interval (hereinafter, referred to as jitter), and sends the measured information to the feedback information generating unit 35.
[0034]
The feedback information generator 35 receives information sent from the data receiver 31 and the redundant code receiver 37. This information includes the packet loss rate, jitter, or the reception time of the parity information. This information is called feedback information. This feedback information is information necessary for detecting congestion on the transmission path. The feedback information generator 35 generates a packet from the feedback information.
[0035]
Then, the feedback transmission unit 36 transmits the generated packet to the server 10 at regular intervals. Thereafter, the server 10 receives the feedback information as a packet in the feedback receiving unit 15.
[0036]
Next, control for increasing the transmission rate in the rate control unit 14 will be described. First, the redundant code transmission unit 18 transmits an increase in the transmission rate as a redundant code. Here, the transmission rate of the server 10 increases in proportion to the amount of data in which the redundant code transmission unit 18 has transmitted the redundant code. On the other hand, the feedback information receiving unit 15 receives feedback information from the client 30.
[0037]
Then, the rate control unit 14 determines the state of the network from the feedback information. That is, the rate control unit 14 determines a change in the network transmission situation due to the increase in the transmission rate by transmitting the redundant code. This transmission status means the presence or absence of congestion on the transmission path, the rate of congestion, and the like.
[0038]
If the rate control unit 14 determines that there is no change in the state of the network, the redundant code transmitted so far is replaced with the encoded media data, and the data transmission unit 13 further transmits the encoded media data. That is, in such a case, the server 10 can transmit more encoded media data by increasing the transmission rate.
[0039]
On the other hand, when determining that there has been a change in the state of the network, the rate control unit 14 stops transmitting the redundant code. In such a case, the data amount of the media data transmitted by the server 10 does not change.
[0040]
However, there is a case where congestion occurs due to an increase in the transmission rate and a packet loss of media data occurs. Therefore, the quality of the media data may be degraded. Even in such a case, the client 30 can recover the lost packet using the transmitted redundant code. Therefore, even if a packet loss occurs due to an increase in the transmission rate, it is possible to suppress deterioration of the quality of the media data.
[0041]
In the present embodiment, the redundant code is an inter-packet FEC (Forward Error Correction) system in which parity information can be added between a plurality of packets. The FEC packet will be described with reference to FIG.
[0042]
In addition, the transmission system can assign priorities according to the encoding method of the encoded media data. Then, the transmission system may control the generation frequency of the parity information of the encoded media data according to the order.
[0043]
When parity information is generated in this way, even if congestion occurs when the transmission rate is increased, FEC packets can be preferentially allocated and restored. Therefore, it is possible to suppress the deterioration in order from the priority information in the media data.
<Structure of FEC packet>
The FEC packet 21 includes an RTP header 22, an FEC header 23, and an FEC recovery 24. The RTP header 22 is data for controlling RTP. The FEC header 23 is FEC control data. The FEC recovery 24 includes the parity information of the RTP packet shown in FIG.
[0044]
The format of the FEC packet complies with the definition of the FEC between packets in the Internet (IP / UDP) network (RFC2733: “An RTP Payload Format for Generic Forward Error Correction”). In RFC 2733, an FEC packet in which the parity of the entire packet is calculated is provided for a plurality of RTP packets. By doing so, when a packet loss occurs, the lost packet is restored using the FEC packet.
[0045]
When increasing the transmission rate, the server 10 transmits the FEC packet 21 as a redundant code before transmitting the media data. Then, the FEC packet 21 is used to detect the congestion state of the transmission path when the transmission rate is increased.
[0046]
Next, the configuration of the RTP header 22 will be described with reference to FIG. The RTP header 22 includes a VER field 40, a P field 41, an X field 42, a CC field 43, an M field 44, a PT field 45, a Sequence Number field 46, a Time Stamp field 47, an SSRC field 48, and a CSRC field 49. You. The RTP header 22 is added to an FEC packet or an encoded packet of media data for RTP control.
[0047]
The 2-bit VER field 40 indicates the RTP version number. Currently it is version 2. Each packet starts with this VER field. The P field 41 includes one padding bit. This padding bit indicates whether the end of the packet is padded.
[0048]
The X field 42 includes one extension bit. This extension bit becomes “1” when an extension header is provided immediately after the RTP header. The CC (CSRC count) field 43 indicates the number of CSRCs (contributing source identifiers).
[0049]
The M field 44 includes one marker bit. This marker bit indicates the boundary of the application data. The 7-bit PT field 45 indicates the encoding system of the payload type application data. The 16-bit Sequence Number field 46 contains the sequence number of the packet. The sequence numbers are assigned in the order of packet transmission.
[0050]
The Time Stamp field 47 is a 32-bit value, and indicates the time at which the first byte of this packet was transmitted. The SSRC (synchronous transmission source identifier) field 48 is a 32-bit value and indicates the transmission source of the packet. The CSRC (Contributing Source Identifier) field 49 indicates the synchronization of the mixed stream. This CSRC field 49 has a variable length.
[0051]
Next, the configuration of the FEC header will be described with reference to FIG. The FEC header 22 includes an SN Base field 50, a Length recovery field 51, a PT recovery field 53, a Mask field 54, and a TS recovery field 55. The FEC header is added to control FEC recovery parity information.
[0052]
The SN Base field 50 indicates the offset of the sequence number of the RTP packet to be subjected to the FEC processing. The Length recovery field 51 indicates parity information of the length of the RTP packet. The E field 52 indicates the extension of the header. The PT recovery field 53 indicates parity information of the payload type. The Mask field 54 indicates the number of the RTP packet to be subjected to the FEC processing. The TS recovery field 55 indicates parity information of the time stamp.
<Block diagram of transmission system>
As the present embodiment, a case where MPEG-4 moving image code data is transmitted using RTP / RTCP will be described with reference to FIG. FIG. 2 is a block diagram of the transmission system according to the present embodiment.
[0053]
This transmission system transmits data between a server 100 and a client 300 connected via the Internet 200 using RTP / RTCP. Note that the RTCP includes a Sender Report (SR) transmitted from the server 100 to the client 300 and a Receiver Report (RR) transmitted from the client 300 to the server 100.
[0054]
First, the processing on the server 100 side after the moving image data is input will be described.
[0055]
The server 100 includes an MPEG-4 encoding unit 101, a packetizer 102, an RTP transmission unit 103, a rate control unit 104, an SR transmission unit 105, an RR reception unit 109, a switch 106, an FEC generation unit 107, an FEC transmission unit 108, and an RR And a transmission unit 109.
[0056]
The MPEG-4 encoding unit 101 encodes the input moving image data.
[0057]
Then, the packetizer 102 packetizes the encoded data and adds an RTP header shown in FIG.
[0058]
The RTP transmission unit 103 transmits moving image data as encoded data packets to the client 300 via the Internet network 200.
[0059]
Next, processing on the client 300 side will be described. The client 300 includes an RTP receiving unit 301, a data restoring unit 302, an MPEG-4 decoding unit 303, a display unit 304, a feedback information generating unit 305, an SR receiving unit 306, an FEC receiving unit 307, and an RR transmitting unit 308.
[0060]
The RTP receiving unit 301 receives an encoded data packet via the Internet network 200. Then, RTP receiving section 301 sends the received encoded data packet to data restoring section 302. In addition, the RTP receiving unit 301 measures the packet loss and the jitter with reference to the sequence number 46 of the RTP header shown in FIG. 4, and sends the measured information to the feedback information generating unit 305.
[0061]
The data restoration unit 302 restores the encoded data packet. That is, when there is a packet loss, the data restoration unit 302 restores the lost packet. Then, the MPEG-4 decoding unit 303 decodes the encoded packet data. After that, the display unit 304 displays the decoded data as a moving image.
[0062]
Next, generation, transmission, and reception of feedback information and control of a transmission rate will be described. In the present embodiment, server 100 controls the transmission rate when RR receiving section 109 receives an RR packet.
[0063]
First, in the client 300, the feedback information generation unit 305 generates an RR packet based on the packet loss rate, the jitter information, and the SR packet information. The packet loss rate and the jitter information are sent from the FEC receiving unit 307 that receives the FEC packet 21 and the RTP receiving unit 301 that receives the RTP packet 21. Note that the SR packet information is the time at which an SR packet transmitted from the server 100 at regular intervals is received. The reception time is used when the server 100 calculates the land trip time. The format of the SR packet and the RR packet conforms to the format described in RFC (Request For Comments) 1889. This RFC1889 is described in IETF (The Internet Engineering Task Force).
[0064]
Then, the client 300 transmits an RR packet to the server 100 as feedback information.
[0065]
On the other hand, when the RR packet is received by the RR receiving unit 109, the server 100 calculates a round trip time based on the feedback information. The round trip time can be calculated from the transmission time of the SR packet and the reception time of the RR packet on the server 100 side, and the time from the reception of the SR packet to the transmission of the RR packet on the client 300 side.
[0066]
In the present embodiment, rate control section 104 controls the transmission rate based on the round trip time and the packet loss rate.
[0067]
Next, control of the transmission rate by the rate control unit 104 according to the packet loss rate and the round trip time will be described. When the packet loss rate exceeds a predetermined threshold (for example, 5%) or when the round trip time exceeds a predetermined threshold (for example, 200 ms), the rate control unit 104 reduces the transmission rate.
[0068]
On the other hand, when both the packet loss rate and the round trip time are equal to or smaller than the threshold, the rate control unit 104 increases the transmission rate.
[0069]
When the packet loss rate is equal to or less than the threshold and the round trip time exceeds the threshold, the rate control unit 104 fixes the transmission rate. That is, the rate control unit 104 keeps the transmission rate as it is.
[0070]
Next, a process when the rate control unit 104 determines to increase the transmission rate will be described. The rate control unit 104 makes a determination based on the rate of congestion on the transmission path.
[0071]
First, the server 100 transmits a redundant code as an increase in the transmission rate. Here, the format of the redundant code to be transmitted uses an inter-packet FEC (RFC 2733: “An RTP Payload Format for Generic Forward Error Correction”) in the Internet (IP / UDP) network. In RFC 2733, an FEC packet in which the parity of the entire packet is calculated is provided for a plurality of RTP packets. By doing so, when a packet loss occurs, the lost packet can be recovered using the FEC packet. In addition, RFC 2733 recommends that an FEC packet be added at a rate of one packet to at least 24 RTP packets.
[0072]
Then, after determining that the transmission rate is to be increased, the rate control unit 104 instructs the switch 106 to generate an FEC packet. The switch 106 duplicates the encoded data packet generated by the packetizer 102. Then, the switch 106 sends the duplicated packet to an FEC generation buffer (not shown) in the FEC generation unit 107.
[0073]
When a predetermined amount (for example, 24 packets) of the copied FEC packets is accumulated in the FEC generation buffer, the FEC generation unit 107 generates parity information. Further, the rate control unit 104 gives a priority to the encoded data packet and instructs the FEC generation unit 107.
[0074]
The FEC generation unit 107 generates parity information according to the priority. This priority can be, for example, the ratio of the I frame to the P frame of the encoded data packet is 7: 3. Here, it is possible to recognize which of the I and P frames each packet contains by referring to vop_coding_type in the header extension code of the MPEG-4 video packet header. Also, as shown in FIG. 6, this parity information can be generated by calculating exclusive OR in bit units for each RTP packet selected according to the priority.
[0075]
Then, the FEC transmission unit 108 adds an FEC header 23 as shown in FIG. 5 to the generated parity information. Further, the FEC transmitting unit 108 adds the RTP header 22 to generate the FEC packet 21 as shown in FIG.
[0076]
Note that the number of encoded data buckets is the same as the number of data packets at the maximum. In that case, the same FEC packet 21 as the data packet is generated, and the same packet is transmitted twice.
[0077]
On the other hand, on the client 300 side, the FEC packet 21 is received by the FEC receiving unit 307 shown in FIG.
[0078]
The data restoration unit 302 determines the loss of a packet selected from the FEC packets 21 according to the priority. Here, when the data restoration unit 302 determines that the number of lost packets is “0” or “2 packets” or more, the data restoration unit 302 sends the packet to the decoding unit 303 without performing data restoration processing.
[0079]
On the other hand, if the data restoration unit 302 determines that the lost packet is “one packet”, the data restoration unit 302 restores the lost packet using the FEC packet 21. After that, the data restoration unit 302 sends the encoded data to the MPEG-4 decoding unit 303.
[0080]
The RTP receiving unit 301 calculates a loss rate of the received RTP packet, and sends it to the feedback information generating unit 305. Further, the FEC receiving unit 307 calculates the loss rate of the received FEC packet 21 and sends it to the feedback information generating unit 305.
[0081]
The feedback information generation unit 305 generates an RR packet, and transmits the RR packet from the RR transmission unit 308 to the server 100.
[0082]
Next, the server 100 acquires the packet loss rate from the RR packet received by the RR receiving unit 109, and calculates the round trip time.
[0083]
Then, the rate control unit 104 determines whether the rate increases or decreases using the packet loss rate and the round trip time.
[0084]
When determining that the transmission rate is to be increased, the rate control unit 104 instructs the switch 106 to stop generating the FEC packet. Here, the server 100 stops transmitting the FEC packet 21.
[0085]
Further, the rate control unit 104 instructs the MPEG-4 encoding unit 101 to transmit encoded data corresponding to the increment of the FEC packet 21. Here, since the MPEG-4 encoding unit 101 increases the encoding rate, the server 100 can transmit the MPEG-4 data at the increased transmission rate.
[0086]
On the other hand, when determining that the transmission rate is to be reduced, the rate control unit 104 instructs the switch 106 to stop sending the encoded packet data to the FEC generation unit 107. In this case, the rate control unit 104 does not instruct the MPEG-4 encoding unit 101 to decrease the encoding rate.
<Parity information generation method>
With reference to FIG. 6, a method for generating parity information of an RTP packet will be described.
[0087]
The server generates parity information on the packetized MPEG-4 data in order to recover the lost packet. This parity information is generated by the FEC generation unit 107 of the server 100.
[0088]
The parity information generated here is transmitted to the client as the FEC packet 21. The format of the FEC packet 21 complies with an inter-packet FEC (RFC2733: “An RTP Payload Format for Generic Forward Error Correction”) in the Internet (IP / UDP) network. In RFC 2733, an FEC packet 21 in which the parity of the entire packet is calculated is provided for a plurality of RTP packets. In this way, when a packet loss occurs, the lost packet is restored using the FEC packet 21.
[0089]
Then, the client receiving the FEC packet 21 restores the MPEG-4 data based on the parity information.
[0090]
In the present embodiment, the FEC packet 21 has parity information on the RTP packets 1 to 4.
[0091]
The first bit (F1) of the FEC packet 21 can be generated by calculating the exclusive OR of the first bit (a1, b1, c1, d1) of each RTP packet. Similarly, the FEC packet 21 can be generated by taking the exclusive OR of the RTP packet for each bit.
[0092]
Here, an example in which the RTP packet 3 is lost will be described.
The client can restore the RTP packet 3 (c1) by using the received RTP packet (a1, b1, d1) and the FEC packet (F1) to make the exclusive OR match. Similarly, the client can restore the RTP packet 3 (c2 to c5).
<Process Flow of Rate Control Unit>
With reference to FIG. 7, the processing of the rate control unit will be described. FIG. 7 is a diagram illustrating a processing flow of the rate control unit 104.
[0093]
The server 100 receives the feedback information (RR) from the client 300 (S701). Then, the rate control unit 104 determines whether the packet loss rate is smaller than the threshold 1 or the land trip time is smaller than the threshold 2 (S702).
[0094]
If the rate control unit 104 determines in S702 that both the packet loss rate and the land trip time are smaller than the threshold, the rate control unit 104 turns on the switch 106 (S703). Here, turning on the switch 106 means control for generating the FEC packet 21.
[0095]
Then, the rate control unit 104 notifies the FEC generation unit 107 of the increase in the transmission rate and the priority ratio (S704). Then, the FEC generation unit 107 generates the FEC packet 21 (S705). Then, the FEC transmission unit 108 transmits the FEC packet 21 to the client 300 (S706).
[0096]
On the other hand, when it is determined in S702 that one or both of the packet loss rate and the land trip time are equal to or larger than the threshold, the rate control unit 104 fixes or decreases the coding rate (S707).
[0097]
Next, with reference to FIG. 8, the processing of the rate control unit when the state of the transmission path has not changed after the transmission of the FEC packet 21 will be described. FIG. 8 is a diagram illustrating a processing flow of the rate control unit 104.
[0098]
The server 100 receives the feedback information (RR) from the client 300 (S801). This feedback information includes information on the rate of congestion when the transmission rate is increased by the FEC packet 21.
[0099]
Then, the rate control unit 104 determines whether the packet loss rate is smaller than the threshold 1 or the land trip time is smaller than the threshold 2 (S802).
[0100]
If the rate control unit 104 determines in S802 that both the packet loss rate and the land trip time are smaller than the threshold, the rate control unit 104 turns off the switch 106 (S803). The switch 106 stops generating the FEC packet 21. That is, the server 100 stops transmitting the FEC packet 21.
[0101]
Then, the rate control unit 104 instructs the MPEG-4 generation unit 101 to increase the coding rate (S804). Here, the MPEG-4 encoding unit 101 increases the encoding rate. Then, the server 100 can transmit the MPEG-4 data at the increased transmission rate.
[0102]
On the other hand, when it is determined in S802 that one or both of the packet loss rate and the land trip time are equal to or greater than the threshold, the rate control unit 104 fixes or decreases the coding rate (S805).
[0103]
Next, with reference to FIG. 9, the processing of the rate control unit when the status of the transmission path changes after the transmission of the FEC packet 21 is described.
[0104]
FIG. 9 is a diagram illustrating a processing flow of the rate control unit 104.
[0105]
The server 100 receives the feedback information (RR) from the client 300 (S901). Then, the rate control unit 104 determines whether the packet loss rate is greater than the threshold 1 or the land trip time is greater than the threshold 2 (S902).
[0106]
In S902, when the rate control unit 104 determines that one of the packet loss rate and the land trip time is larger than the threshold, the rate control unit 104 turns off the switch 106 (S903). Here, the switch 106 stops generating the FEC packet. That is, the server 100 stops transmitting the FEC packet 21.
[0107]
On the other hand, if it is determined in S902 that both the packet loss rate and the land trip time are larger than the threshold, the rate control unit 104 fixes or increases the coding rate (S904).
<Effects of Embodiment>
According to the present embodiment, even if data loss occurs when the transmission rate is increased, transmission errors of data to be transmitted can be suppressed.
[0108]
Further, when it is determined that there is no change in the state of the transmission path before and after transmitting the redundant code, the rate increase can be replaced with data and transmitted. On the other hand, if it is determined that the state of the transmission path has deteriorated before and after the transmission of the redundant code, the state can be returned to the previous state, that is, the state excluding the redundant code corresponding to the rate increase.
[0109]
Further, even if a packet loss occurs in the transmission path, the lost packet can be restored using the redundancy code.
[0110]
Further, for example, it is assumed that a redundant code of an intra frame (I frame) in MPEG data is preferentially generated. When priority is given to the intra frame, even if a packet loss occurs when the transmission rate is increased, it is possible to minimize image quality deterioration.
<Computer readable storage medium>
A program that causes a computer to execute any of the processes of the above-described embodiments can be recorded on a computer-readable storage medium. Then, by causing a computer to read and execute the program in the storage medium, the system described in the above embodiment can be provided.
[0111]
Here, a computer-readable storage medium refers to a storage medium that stores information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read by a computer. . Among such storage media, those removable from a computer include, for example, a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a DAT, an 8 mm tape, and a memory card.
[0112]
Further, a recording medium fixed to the computer includes a hard disk, a ROM (Read Only Memory), and the like.
[0113]
The above embodiment does not limit the scope of the present invention in any way, and various modifications may be appropriately made within a range that can be understood by those skilled in the art.
<Others>
Further, this embodiment discloses the following invention.
(Supplementary Note 1) Data transmission means for transmitting data to a terminal via a network;
Redundant code transmitting means for transmitting a redundant code for suppressing the data transmission error,
Receiving means for receiving feedback information from the terminal,
Judgment means for judging increase or decrease of the transmission rate based on the feedback information
A server that includes a rate increasing unit that increases the transmission rate by increasing the redundant code when the determination unit determines that the transmission rate is to be increased.
(Supplementary Note 2) Comparison means for comparing the status of the transmission path before and after transmitting the redundant code,
The server according to claim 1, further comprising: a data increasing unit configured to increase data transmitted from the data transmitting unit in place of the increased redundant code when the comparing unit determines that there is no change in the status of the transmission path. .
(Supplementary note 3) The server according to supplementary note 2, further comprising a stop unit that stops transmission of the redundant code when the comparison unit determines that the condition of the transmission path has deteriorated.
(Supplementary note 4) The server according to supplementary note 2 or 3, wherein the comparing unit compares the status of the transmission path before and after transmitting the redundant code based on the feedback information.
(Supplementary note 5) The server according to supplementary note 4, wherein the feedback information includes a packet loss rate.
(Supplementary note 6) The server according to Supplementary note 4, wherein the feedback information includes information on an interval at which packets arrive.
(Supplementary note 7) The server according to any one of claims 4 to 6, wherein the feedback information includes a round trip time.
(Supplementary note 8) The server according to supplementary note 4, wherein the redundant code is an inter-packet error correction method including parity information between packets.
(Supplementary note 9) The server according to supplementary note 4, wherein the redundant codes are generated in order based on data priority.
[0114]
【The invention's effect】
As described above, the present invention can provide a data transmission server that can suppress deterioration of data quality even when packet loss occurs due to an increase in transmission rate.
[Brief description of the drawings]
FIG. 1 is a diagram showing the principle of the present invention.
FIG. 2 is a block diagram illustrating a transmission system according to the present embodiment.
FIG. 3 is a configuration diagram of an FEC packet.
FIG. 4 is a configuration diagram of an RTP header.
FIG. 5 is a configuration diagram of an FEC header.
FIG. 6 is a diagram illustrating a method of generating FEC parity information.
FIG. 7 is a diagram illustrating a processing flow of a rate control unit.
FIG. 8 is a diagram illustrating a processing flow of a rate control unit.
FIG. 9 is a diagram showing a processing flow of a rate control unit.
[Explanation of symbols]
10, 100 ... server
11: Encoding unit
12 ... Packetizer
102 ... Packetizer
13 Data transmission unit
14, 104 ... rate control unit
15. Feedback information receiving unit
16, 106 ... Switch
17 Redundant code generator
18 Redundant code transmission unit
20 ... Network
21 ... RTP packet
22 ... RTP header
23: FEC header
24: FEC recovery
30, 300… Client
31 Data receiving unit
32, 302: Data restoration unit
33 ... Decoding unit
34, 304 ... display unit
35, 305: feedback information generation unit
36 ... Feedback transmitter
37 ... Redundant code receiving unit
41 ... V
42 ... P
43 ... X
44 ... C
45 ... M
45 ... PT
46… Sequence Number
47 ... Time Stamp
48 ... SSRC
49… CSRC
51 ... SN base
52 ... Length recovery
53 ... E
54… PT recovery
55… TS recovery
101: MPEG-4 encoding unit
103 ... RTP transmission unit
105 ... SR transmission unit
107: FEC generation unit
108 ... FEC transmission unit
109 ... RR receiving section
200 ... Internet network
301 ... RTP receiving unit
303: MPEG-4 decoding unit
306 ... SR receiving unit
307 ... FEC receiving unit
308 ... RR transmission section

Claims (5)

ネットワークを介して端末にデータを送信するデータ送信手段と、
前記データの伝送誤りを抑制する冗長符号を送信する冗長符号送信手段と、
前記端末からフィードバック情報を受信する受信手段と、
前記フィードバック情報に基づいて送信レートの増減を判断する判断手段と、
前記判断手段が送信レートを増加すると判断した場合に前記冗長符号の増加により送信レートを増加するレート増加手段とを備えることを特徴とするサーバ。
Data transmission means for transmitting data to the terminal via the network;
Redundant code transmitting means for transmitting a redundant code for suppressing the data transmission error,
Receiving means for receiving feedback information from the terminal,
Judgment means for judging increase or decrease of the transmission rate based on the feedback information
A server that includes a rate increasing unit that increases the transmission rate by increasing the redundant code when the determination unit determines that the transmission rate is to be increased.
前記冗長符号を送信する前後において伝送路の状況を比較する比較手段と、
前記比較手段が伝送路の状況に変化がないと判断した場合に、増加した前記冗長符号に換えて前記データ送信部から送信するデータを増加させるデータ増加手段とをさらに備える請求項1に記載のサーバ。
Comparing means for comparing the status of the transmission path before and after transmitting the redundant code,
2. The data increasing unit according to claim 1, further comprising: a data increasing unit configured to increase data transmitted from the data transmitting unit in place of the increased redundant code when the comparing unit determines that there is no change in the status of the transmission path. server.
前記比較手段が伝送路の状況が悪化したと判断した場合に前記冗長符号の送信を停止する停止手段をさらに備える請求項2に記載のサーバ。3. The server according to claim 2, further comprising a stop unit that stops transmission of the redundant code when the comparison unit determines that the condition of the transmission path has deteriorated. 前記比較手段は前記フィードバック情報に基づいて冗長符号を送信する前後における伝送路の状況を比較する請求項1乃至3のいずれかに記載のサーバ。The server according to any one of claims 1 to 3, wherein the comparing unit compares the status of the transmission path before and after transmitting the redundant code based on the feedback information. 前記フィードバック情報はパケット損失率を含む請求項4に記載のサーバ。The server according to claim 4, wherein the feedback information includes a packet loss rate.
JP2003080653A 2003-03-24 2003-03-24 Data transmission server Expired - Fee Related JP4173755B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003080653A JP4173755B2 (en) 2003-03-24 2003-03-24 Data transmission server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003080653A JP4173755B2 (en) 2003-03-24 2003-03-24 Data transmission server

Publications (2)

Publication Number Publication Date
JP2004289621A true JP2004289621A (en) 2004-10-14
JP4173755B2 JP4173755B2 (en) 2008-10-29

Family

ID=33294448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003080653A Expired - Fee Related JP4173755B2 (en) 2003-03-24 2003-03-24 Data transmission server

Country Status (1)

Country Link
JP (1) JP4173755B2 (en)

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006253862A (en) * 2005-03-09 2006-09-21 Sony Corp Wireless communication system, wireless communication apparatus, wireless communication method, and computer program
JP2006303925A (en) * 2005-04-20 2006-11-02 Sony Corp Transceiving system, transmitting device and transmitting method, receiving device and receiving method, and program
JP2007251737A (en) * 2006-03-17 2007-09-27 Fujitsu Ltd Data transferring method, and communication system and program using the same
JP2008522545A (en) * 2004-12-02 2008-06-26 トムソン ライセンシング Adaptive forward error correction
JP2008187341A (en) * 2007-01-29 2008-08-14 Nec Corp Data communication equipment and method, and program
JP2009027720A (en) * 2007-07-23 2009-02-05 Polycom Inc System and method executing lost packet recovery with congestion avoidance
JP2009088987A (en) * 2007-09-28 2009-04-23 Panasonic Electric Works Co Ltd Communication system
WO2009057375A1 (en) * 2007-10-29 2009-05-07 Nec Corporation Communication system, data transmitter, data receiver, communication method, and communication program
JP2009159368A (en) * 2007-12-27 2009-07-16 Mitsubishi Electric Corp Data transmission apparatus and transmission band estimation method
JP2009527151A (en) * 2006-02-13 2009-07-23 デジタル ファウンテン, インコーポレイテッド Streaming and buffering using variable FEC overhead and protection period
JP2009207084A (en) * 2008-02-29 2009-09-10 Nippon Hoso Kyokai <Nhk> Transmitter, transmitting program, receiving device, and receiving program
JP2009278521A (en) * 2008-05-16 2009-11-26 Canon Inc Communication device and method, and program
JP2009303247A (en) * 2009-09-18 2009-12-24 Sharp Corp Communication device, and program for operating computer as communication device
JP2012515458A (en) * 2009-01-13 2012-07-05 アルカテル−ルーセント Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
JP2012517130A (en) * 2009-02-02 2012-07-26 スカイプ・リミテッド Data transmission method in communication system
USRE43741E1 (en) 2002-10-05 2012-10-16 Qualcomm Incorporated Systematic encoding and decoding of chain reaction codes
JP2013225761A (en) * 2012-04-20 2013-10-31 Hitachi Ltd Coding device, decoding device, communication system and communication control method
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US8887020B2 (en) 2003-10-06 2014-11-11 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9191151B2 (en) 2006-06-09 2015-11-17 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
JP2016005220A (en) * 2014-06-19 2016-01-12 株式会社Jvcケンウッド Transmission apparatus, transmission method, and program
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
WO2016092686A1 (en) * 2014-12-12 2016-06-16 株式会社日立製作所 Communication device, communication device system, and communication method
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9602802B2 (en) 2010-07-21 2017-03-21 Qualcomm Incorporated Providing frame packing type information for video coding
JP2017508372A (en) * 2014-02-06 2017-03-23 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー Congestion control bit rate algorithm
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US10447430B2 (en) 2016-08-01 2019-10-15 Sony Interactive Entertainment LLC Forward error correction for streaming data

Cited By (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
USRE43741E1 (en) 2002-10-05 2012-10-16 Qualcomm Incorporated Systematic encoding and decoding of chain reaction codes
US9236885B2 (en) 2002-10-05 2016-01-12 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US8887020B2 (en) 2003-10-06 2014-11-11 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9236887B2 (en) 2004-05-07 2016-01-12 Digital Fountain, Inc. File download and streaming system
US8015474B2 (en) 2004-12-02 2011-09-06 Thomson Licensing Adaptive forward error correction
JP2008522545A (en) * 2004-12-02 2008-06-26 トムソン ライセンシング Adaptive forward error correction
JP2006253862A (en) * 2005-03-09 2006-09-21 Sony Corp Wireless communication system, wireless communication apparatus, wireless communication method, and computer program
JP4734970B2 (en) * 2005-03-09 2011-07-27 ソニー株式会社 Wireless communication system, wireless communication apparatus, wireless communication method, and computer program
JP2006303925A (en) * 2005-04-20 2006-11-02 Sony Corp Transceiving system, transmitting device and transmitting method, receiving device and receiving method, and program
US8514755B2 (en) 2005-04-20 2013-08-20 Sony Corporation Transmitting and receiving system, transmitting apparatus, transmitting method, receiving apparatus, receiving method, and program
JP4697525B2 (en) * 2005-04-20 2011-06-08 ソニー株式会社 Transmission / reception system, transmission apparatus and transmission method, reception apparatus and reception method, and program
JP2009527151A (en) * 2006-02-13 2009-07-23 デジタル ファウンテン, インコーポレイテッド Streaming and buffering using variable FEC overhead and protection period
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
JP2007251737A (en) * 2006-03-17 2007-09-27 Fujitsu Ltd Data transferring method, and communication system and program using the same
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9191151B2 (en) 2006-06-09 2015-11-17 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
JP2008187341A (en) * 2007-01-29 2008-08-14 Nec Corp Data communication equipment and method, and program
JP2012235523A (en) * 2007-07-23 2012-11-29 Polycom Inc System and method for lost packet recovery with congestion avoidance
US8493862B2 (en) 2007-07-23 2013-07-23 Polycom, Inc. System and method for lost packet recovery with congestion avoidance
JP2009027720A (en) * 2007-07-23 2009-02-05 Polycom Inc System and method executing lost packet recovery with congestion avoidance
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
JP2009088987A (en) * 2007-09-28 2009-04-23 Panasonic Electric Works Co Ltd Communication system
WO2009057375A1 (en) * 2007-10-29 2009-05-07 Nec Corporation Communication system, data transmitter, data receiver, communication method, and communication program
JP5397226B2 (en) * 2007-10-29 2014-01-22 日本電気株式会社 COMMUNICATION SYSTEM, DATA TRANSMISSION DEVICE, DATA RECEPTION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP2009159368A (en) * 2007-12-27 2009-07-16 Mitsubishi Electric Corp Data transmission apparatus and transmission band estimation method
JP2009207084A (en) * 2008-02-29 2009-09-10 Nippon Hoso Kyokai <Nhk> Transmitter, transmitting program, receiving device, and receiving program
JP2009278521A (en) * 2008-05-16 2009-11-26 Canon Inc Communication device and method, and program
JP2012515458A (en) * 2009-01-13 2012-07-05 アルカテル−ルーセント Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
JP2012517130A (en) * 2009-02-02 2012-07-26 スカイプ・リミテッド Data transmission method in communication system
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9876607B2 (en) 2009-08-19 2018-01-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9660763B2 (en) 2009-08-19 2017-05-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
JP2009303247A (en) * 2009-09-18 2009-12-24 Sharp Corp Communication device, and program for operating computer as communication device
US11770432B2 (en) 2009-09-22 2023-09-26 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US11743317B2 (en) 2009-09-22 2023-08-29 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US10855736B2 (en) 2009-09-22 2020-12-01 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9602802B2 (en) 2010-07-21 2017-03-21 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
JP2013225761A (en) * 2012-04-20 2013-10-31 Hitachi Ltd Coding device, decoding device, communication system and communication control method
JP2017508372A (en) * 2014-02-06 2017-03-23 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー Congestion control bit rate algorithm
JP2016005220A (en) * 2014-06-19 2016-01-12 株式会社Jvcケンウッド Transmission apparatus, transmission method, and program
JPWO2016092686A1 (en) * 2014-12-12 2017-07-27 株式会社日立製作所 COMMUNICATION DEVICE, COMMUNICATION DEVICE SYSTEM, AND COMMUNICATION METHOD
US10104016B2 (en) 2014-12-12 2018-10-16 Hitachi, Ltd. Communication device, communication device system, and communication method
AU2014413360C1 (en) * 2014-12-12 2018-09-27 Hitachi, Ltd. Communication device, communication device system, and communication method
AU2014413360B2 (en) * 2014-12-12 2018-04-26 Hitachi, Ltd. Communication device, communication device system, and communication method
WO2016092686A1 (en) * 2014-12-12 2016-06-16 株式会社日立製作所 Communication device, communication device system, and communication method
US10447430B2 (en) 2016-08-01 2019-10-15 Sony Interactive Entertainment LLC Forward error correction for streaming data
US10979175B2 (en) 2016-08-01 2021-04-13 Sony Interactive Entertainment LLC Forward error correction for streaming data
US11489621B2 (en) 2016-08-01 2022-11-01 Sony Interactive Entertainment LLC Forward error correction for streaming data

Also Published As

Publication number Publication date
JP4173755B2 (en) 2008-10-29

Similar Documents

Publication Publication Date Title
JP4173755B2 (en) Data transmission server
JP4454320B2 (en) Transmission apparatus, transmission control program, and transmission method
US11489621B2 (en) Forward error correction for streaming data
KR101449710B1 (en) Data communication system, data transmitting apparatus, data transmitting method, and method for determining packet size and redundancy
KR101242663B1 (en) Packet transmission apparatus, communication system and computer-readable recording medium
KR101125846B1 (en) Method for transmitting image frame data based on packet system and apparatus thereof
US20050013249A1 (en) Redundant packets for streaming video protection
CN111800218B (en) Data stream transmission method and equipment
AU762180B2 (en) Method and apparatus for transmitting and receiving multimedia data
US9525874B2 (en) Transmitting apparatus and transmission method
CA2594121A1 (en) Adaptive information delivery system using fec feedback
US11190455B2 (en) Decoding of a media stream at a packet receiver
JP5344541B2 (en) Data transmission apparatus, transmission method and program
JP2010119133A (en) Packet transmission device, communication system, and program
JP4250036B2 (en) Media transmission method and media transmission apparatus
WO2005122455A1 (en) Two-way communication method and device, system and program
JP2011087091A (en) Transmission device and operation mode control method of the same
Lecuire Unequal error protection under bitrate constraint for video streaming over internet
JP2004120148A (en) Transmitter and receiver for multimedia contents
JP2004007799A (en) Data transmission method and data processing method
JP2012195864A (en) Transmission system, transmission device, and transmission method
Ben Halima et al. Service-aware retransmission control in cellular networks
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: 20060202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130822

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees