JP2005136546A - 送信装置および方法、記録媒体、並びにプログラム - Google Patents
送信装置および方法、記録媒体、並びにプログラム Download PDFInfo
- Publication number
- JP2005136546A JP2005136546A JP2003368418A JP2003368418A JP2005136546A JP 2005136546 A JP2005136546 A JP 2005136546A JP 2003368418 A JP2003368418 A JP 2003368418A JP 2003368418 A JP2003368418 A JP 2003368418A JP 2005136546 A JP2005136546 A JP 2005136546A
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- packet
- packets
- error correction
- rtp
- 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.)
- Withdrawn
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】誤りを訂正するためのパケットのパケットロスをより少なくすることができる。
【解決手段】 通信部39は、1または複数のRTPパケットを含むバースト送信ユニットをクライアントに送信する。FECパケット生成部74は、バースト送信ユニットに属するRTPパケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されているFECパケットを生成する。通信部39は、さらに、第1のバースト送信ユニットに属するRTPパケットの次の1または複数のRTPパケットを含む第2のバースト送信ユニットであって、送信の順番を基準として前半に、FECパケットが配置されている第2のバースト送信ユニットをクライアントに送信する。本発明は、ストリーミングデータを提供するサーバに適用できる。
【選択図】図6
【解決手段】 通信部39は、1または複数のRTPパケットを含むバースト送信ユニットをクライアントに送信する。FECパケット生成部74は、バースト送信ユニットに属するRTPパケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されているFECパケットを生成する。通信部39は、さらに、第1のバースト送信ユニットに属するRTPパケットの次の1または複数のRTPパケットを含む第2のバースト送信ユニットであって、送信の順番を基準として前半に、FECパケットが配置されている第2のバースト送信ユニットをクライアントに送信する。本発明は、ストリーミングデータを提供するサーバに適用できる。
【選択図】図6
Description
本発明は、送信装置および方法、記録媒体、並びにプログラムに関し、特に、誤り訂正データを送信できるようにした送信装置および方法、記録媒体、並びにプログラムに関する。
昨今、インターネットなど、種々の通信媒体を介して、画像データまたは音声データを伝送して提供するサービスが一般に行われている。特に、近年、ダウンロード型の伝送方式のサービスに加えて、ストリーム型の伝送方式のサービスがより多く提供されるようになってきた。
ストリーム型の伝送方式のサービスにおいては、送信装置が、データを順次送信し、受信装置が、送信装置から送信されてくるデータを受信するとともに、これに並行して、受信されたデータを基に画像または音声を再生する。ストリーム型の伝送方式は、インターネット電話、遠隔テレビ会議、またはビデオオンデマンドなどのインターネットサービスに利用されている。
ストリーム型の伝送方式において、送信装置から送信されてくるデータを、一般に、ストリーミングデータと称する。
しかしながら、インターネットなどのデータの到達が保証されない伝送路を介して、動画像または音声のストリーミングデータを伝送すると、伝送負荷の増大により、パケットロスが生じる場合がある。
パケットロスが生じると、受信側において、再生される動画像が乱れたり、音声が途切れたりしてしまう。
この問題を解決するために、ストリーミングデータと共に冗長データを送信し、受信側でロスしたパケットのエラーを訂正する方法が用いられている。その一例として、FEC(Forward Error Correction)方式がある。FEC方式においては、複数のパケットからなる集合に対して、冗長パケットを複数生成して、集合と共に冗長パケットが送信される。受信側においては、集合に属するパケットにパケットロスが生じた場合、冗長パケットを用いて、ロスしたパケットのエラーが訂正される。
例えば、図1で示されるように、送信側は、データパケット1−1乃至データパケット1−5の5つのパケットからなる集合に、FECパケット2−1およびFECパケット2−2の2つの冗長パケットを付加して、受信側に送信する。FECパケット2−1およびFECパケット2−2は、データパケット1−1乃至データパケット1−5の所定の組み合わせに対して排他的論理和(exclusive-OR)の演算を適用することにより生成される。
例えば、伝送路において、データパケット1−2がロスされた場合、受信側において、データパケット1−1とFECパケット2−1とに排他的論理和の演算が適用されることにより、データパケット1−2が復元される。
図1で示される例において、FECパケット2−1およびFECパケット2−2の数と同じ数のロスしたパケットのエラーを訂正することができる。すなわち、データパケット1−1乃至データパケット1−5のうち、1つまたは2つがロスされても、そのパケットを回復することができる。
FEC方式によって、1フレームの集合に対して、冗長データを生成することが考えられるが、冗長データの生成をソフトウェアで行うと、非常に負荷の高い処理になってしまうという問題がある。
図2は、データパケット1−1乃至データパケット1−5からなる集合、およびFECパケット2−1およびFECパケット2−2の冗長パケットの送信の順序を説明する図である。図2の横方向は、時間を示す。
データパケット1−1乃至データパケット1−5の集合、およびFECパケット2−1およびFECパケット2−2の冗長パケットの送信において、最初に、データパケット1−1乃至データパケット1−5が順に送信され、その後、FECパケット2−1およびFECパケット2−2が順に送信される。
図3は、従来のFECパケットを付加した送信の処理を説明するフローチャートである。ステップS11において、送信装置は、内蔵しているタイマを初期化する。
ステップS12において、送信装置は、タイマの値を基に、タイマが終了したか否かを判定し、タイマが終了していない場合、ステップS12に戻り、タイマが終了するまで、判定の処理を繰り返す。
ステップS12において、タイマが終了したと判定された場合、1つのフレームに対応する期間が経過したので、ステップS13に進み、送信装置は、供給された画像データをキャプチャする。ステップS14において、送信装置は、キャプチャされた画像データを、エンコード(符号化)する。
ステップS15において、送信装置は、符号化された画像データを格納するデータパケットであるRTP(Real-time Transport Protocol)パケットを生成する。ステップS16において、送信装置は、RTPパケットを相手に送信する。
ステップS17において、送信装置は、RTPパケットを基に、FECパケットを生成する。ステップS18において、送信装置は、FECパケットを相手に送信する。
ステップS19において、送信装置は、RTPパケットに付加するタイムスタンプを更新する。ステップS20において、送信装置は、内蔵しているタイマをセットして、ステップS12に戻り、上述した処理を繰り返す。
また、送信側では、各パケットの情報ブロックを、先行パケットおよび後続パケットの情報ブロックとの共通部分を持つように構成し、誤り訂正符号にて符号化して送信し、共通部分の大きさは伝送路状態に応じて変化させ、一方、受信側では、その情報ブロックを復号および誤り訂正符号の機能によって誤り訂正し、復号に失敗した場合には、情報ブロックの共通部分を先行パケットのものと置換して、この共通部分が置換された情報ブロックを、再度、復号および誤り訂正するようにしているものもある(特許文献1参照)。
さらに、パケット伝送において、ネットワーク監視部によって監視されるネットワーク状況に基づいてエラー訂正制御を行なうシステムもある(特許文献2参照)。このシステムにおいては、FECによるエラー制御、再送要求処理(ARQ)に基づくエラー制御等の態様をネットワークにおけるパケット損失、エラー発生状況に応じて動的に変更してパケット転送を実行し、RTT(Round-Trip Time)が短いならば、ARQによるエラー訂正選択、RTTが長い状況である場合には、ARQではなくFECによるエラー訂正を選択するといった動的なエラー訂正制御が可能となる。
しかしながら、始めに、データパケットを送信し、その後に、冗長パケットを送信すると、伝送路を構成するネットワークに輻輳が生じた場合、冗長パケットにパケットロスが発生する可能性は、データパケットにパケットロスが発生する可能性より高くなる。冗長パケットにパケットロスが発生すると、受信側で、パケットロスしたデータパケットを復元することができなくなってしまう。
これは、図2で示されるように、データパケットおよび冗長パケットが連続的に順に送信されると、パケットの後ろになるにつれて、パケットロスが発生する確率が高くなるためである。このような、パケットロスは、ネットワークを構成するルータの、パケットのキューを格納するバッファにおけるあふれなどによって生じる。
本発明の送信装置は、1または複数の送信パケットを含む第1の集合の相手への送信を制御する送信制御手段と、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成手段とを含み、送信制御手段は、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信を制御することを特徴とする。
第1の集合および第2の集合は、それぞれバースト送信ユニットとすることができる。
送信制御手段は、送信の順番を基準として先頭に誤り訂正パケットが配置されている第2の集合の相手への送信を制御するようにすることができる。
本発明の送信方法は、1または複数の送信パケットを含む第1の集合の相手への送信を制御する送信制御ステップと、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成ステップとを含み、送信制御ステップにおいて、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信が制御されることを特徴とする。
本発明の記録媒体のプログラムは、1または複数の送信パケットを含む第1の集合の相手への送信を制御する送信制御ステップと、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成ステップとを含み、送信制御ステップにおいて、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信が制御されることを特徴とする。
本発明のプログラムは、コンピュータに、1または複数の送信パケットを含む第1の集合の相手への送信を制御する送信制御ステップと、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成ステップとを実行させ、送信制御ステップにおいて、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信が制御されることを特徴とする。
送信装置は、独立した装置であっても良いし、通信装置の送信処理を行うブロックであっても良い。
本発明の送信装置および方法、記録媒体、並びにプログラムにおいては、1または複数の送信パケットを含む第1の集合が相手に送信され、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットが生成され、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合が相手に送信される。
誤りを訂正するためのパケットのパケットロスをより少なくすることができる。
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
本発明に寄れば送信装置が提供される。この送信装置は、1または複数の送信パケット(例えば、RTPパケット)を含む第1の集合(例えば、図11のRTPパケット101−1乃至101−4からなるバースト送信ユニット)の相手への送信を制御する送信制御手段(例えば、図6の通信部39)と、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケット(例えば、FECパケット)を生成する生成手段(例えば、図6のFECパケット生成部74)とを含み、送信制御手段は、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合(例えば、図11のRTPパケット101−5乃至101−8からなるバースト送信ユニット)であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信を制御する。
第1の集合および第2の集合は、それぞれバースト送信ユニットとすることができる。
送信制御手段は、送信の順番を基準として先頭に誤り訂正パケットが配置されている第2の集合の相手への送信を制御するようにすることができる。
本発明によれば、送信方法が提供される。この送信方法は、1または複数の送信パケット(例えば、RTPパケット)を含む第1の集合(例えば、図11のRTPパケット101−1乃至101−4からなるバースト送信ユニット)の相手への送信を制御する送信制御ステップ(例えば、図8のステップS49の処理)と、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケット(例えば、FECパケット)を生成する生成ステップ(例えば、図8のステップS50の処理)とを含み、送信制御ステップにおいて、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合(例えば、図11のRTPパケット101−5乃至101−8からなるバースト送信ユニット)であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信が制御される(例えば、図8のステップS46およびステップS49の処理)。
本発明によれば、プログラムが提供される。このプログラムは、コンピュータに、1または複数の送信パケット(例えば、RTPパケット)を含む第1の集合(例えば、図11のRTPパケット101−1乃至101−4からなるバースト送信ユニット)の相手への送信を制御する送信制御ステップ(例えば、図8のステップS49の処理)と、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケット(例えば、FECパケット)を生成する生成ステップ(例えば、図8のステップS50の処理)とを実行させ、送信制御ステップにおいて、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合(例えば、図11のRTPパケット101−5乃至101−8からなるバースト送信ユニット)であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信が制御される(例えば、図8のステップS46およびステップS49の処理)。
このプログラムは、記録媒体(例えば、図5の磁気ディスク51)に記録することができる。
本発明は、例えば、インターネット電話、遠隔テレビ会議システム、ライブ映像ストリーミング配信システム、またはテレビ電話などのリアルタイムにストリーミングデータを伝送する通信システムに適用できる。
図4は、本発明に係る通信システムの一実施の形態を示す図である。カメラ11は、画像を撮像して、撮像した画像に対応する画像データをサーバ12に供給する。例えば、カメラ11は、動画像を撮像して、動画像に対応する画像データをサーバ12に供給する。
画像データは、ストリーミングデータの一例である。ストリーミングデータは、音声のデータ、またはリアルタイム制御データなど、時間の経過に対応して順次送信または受信が要求されるデータであればよい。
サーバ12は、カメラ11から供給された画像データをパケットに格納して、パケットを通信網13を介して、クライアント14に送信する。サーバ12は、画像を格納したパケットを訂正するための冗長データを生成して、冗長データを格納したパケットを通信網13を介して、クライアント14に送信する。
通信網13は、有線または無線の、通信回線、ネットワーク、またはインターネットなどからなる伝送路であり、サーバ12から送信されたパケットをクライアント14まで伝送する。
クライアント14は、通信網13を介してサーバ12から送信されてきた各種のパケットを受信する。
クライアント14は、ストリーミングデータが格納されているパケットを正常に受信できなかった場合、冗長データを格納したパケットを基に、正常に受信できなかった画像データを格納するパケットのエラーを訂正する。
図5は、サーバ12の構成の例を示すブロック図である。CPU(Central Processing Unit)31は、ROM(Read Only Memory)32、または記録部38に記録されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)33には、CPU31が実行するプログラムやデータなどが適宜記憶される。これらのCPU31、ROM32、およびRAM33は、バス34により相互に接続されている。
CPU31にはまた、バス34を介して入出力インタフェース35が接続されている。入出力インタフェース35には、キーボード、マウス、スイッチなどよりなる入力部36、ディスプレイ、スピーカ、ランプなどよりなる出力部37が接続されている。CPU31は、入力部36から入力される指令に対応して各種の処理を実行する。
入出力インタフェース35に接続されている記録部38は、例えばハードディスクなどで構成され、CPU31が実行するプログラムや各種のデータを記録する。通信部39は、インターネット、その他のネットワークなどの通信網13を介して、クライアント14などの外部の装置と通信する。
また、通信部39を介してプログラムを取得し、記録部38に記録してもよい。
入出力インタフェース35に接続されているドライブ40は、磁気ディスク51、光ディスク52、光磁気ディスク53、或いは半導体メモリ54などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部38に転送され、記録される。
なお、クライアント14は、サーバ12と同様に構成されるので、その説明は省略する。
図6は、サーバ12の機能の構成を示すブロック図である。
サーバ12は、エンコーダ71、バッファ72、RTPパケット生成部73、FECパケット生成部74を含む。
エンコーダ71は、所定の符号化方式で、供給されたストリーミングデータの一例である画像データを符号化し、符号化された画像データをバッファ72に供給する。
バッファ72は、エンコーダ71から供給された、符号化されている画像データを一時的に記憶する。バッファ72は、記憶している画像データをRTPパケット生成部73に供給する。
RTPパケット生成部73は、バッファ72から供給された、符号化されている画像データをRTPパケットに格納して、RTPパケットを通信部39に供給する。
RTPパケットは、IETF RFC(Internet Engineering Task Force Request For Comments)1889で規定されているプロトコルであるRTP(Real time Transport Protocol)に基づく方式のパケットである。
通信部39は、RTPパケット生成部73から供給されたRTPパケットを、通信網13を介して、相手であるクライアント14に送信する。
RTPパケット生成部73は、パケットバッファ81を含む。パケットバッファ81は、RTPパケット生成部73によって生成された、1または複数のパケットからなる、1つの集合を記憶する。例えば、集合は、メディア(データ)同期のための処理の単位であるメディアユニットであって、1つのフレームの画像データを格納するパケットからなる。
例えば、集合は、バースト送信の単位であるバースト送信ユニットであって、複数のパケットからなる。この場合、1つのフレームの画像データは、1または複数のバースト送信ユニットに属するパケットに格納される。
なお、パケットの集合は、メディアユニットまたはバースト送信ユニットとは限らず、1つのフィールドの画像データを格納するパケットなど、集合に含まれるパケットに何らかの関係があれば足りる。
FECパケット生成部74は、RTPパケット生成部73のパケットバッファ81に記憶されている、1つの集合に属する1または複数のパケットを基に、その集合に属するパケットの誤りを訂正するためのFECパケットを生成する。FECパケット生成部74は、生成したFECパケットを、内部のパケットバッファ82に記憶する。
この発明において、パケットの誤りとは、受信側において、正常に受信できなかったパケットの状態を広く示し、いわゆる、エラーに限らず、パケットそのものを受信できなかったこと、すなわち、パケットロスも示すものとする。
FECパケット生成部74は、所定のタイミングで、パケットバッファ82に記憶されているFECパケットを通信部39に供給する。
通信部39は、FECパケット生成部74から供給されたFECパケットを、通信網13を介して、相手に送信する。
このように、サーバ12は、通信網13を介して、クライアント14に、画像データを格納するパケットを送信する。また、サーバ12は、通信網13を介して、クライアント14に、画像データを格納するパケットの誤りを訂正するためのFECパケットを送信する。
図7は、クライアント14の機能の構成を示すブロック図である。
クライアント14は、通信部91、バッファ92、誤り訂正部93、およびデコーダ94を含む。
通信部91は、クライアント14の図5における通信部39に相当し、通信網13を介してサーバ12から送信されてきた各種のパケットを受信する。通信部91は、受信したパケットをバッファ92に供給する。例えば、通信部91は、受信したRTPパケットおよびFECパケットをバッファ92に供給する。
バッファ92は、通信部91から供給されたパケットを記憶する。例えば、バッファ92は、RTPパケットおよびFECパケットを記憶する。
誤り訂正部93は、バッファ92に記憶されているRTPパケットを検査する。誤り訂正部93は、正常にRTPパケットを受信できなかった場合、正常に受信されなかったRTPパケットの誤りを、バッファ92に記憶されているFECパケットを基に、訂正する。例えば、誤り訂正部93は、RTPパケットにパケットロスが発生した場合、パケットロスが発生したRTPパケットを、バッファ92に記憶されている他のRTPパケットおよびFECパケットを基に、復元する。
デコーダ94は、バッファ93に記憶されている、誤りが訂正されたRTPパケットから画像データを抽出して、エンコーダ71の符号化方式に対応する復号方式で、抽出された画像データを復号して、復号された画像データを出力する。
このように、クライアント14は、FECパケットを基に、RTPパケットの誤りを訂正する。
なお、図6または図7で示されるサーバ12またはクライアント14の機能は、ハードウェアにより実現するようにしてもよく、ソフトウェア(プログラム)により実現するようにしてもよい。
次に、図8のフローチャートを参照して、送信プログラムを実行するサーバ12による、送信の処理を説明する。ステップS41において、サーバ12は、送信の処理に必要なデータを初期化する。例えば、ステップS41において、サーバ12のエンコーダ71は、内蔵しているタイマを初期値に設定する。より具体的には、例えば、エンコーダ71は、タイマの値を0に設定する。
ステップS42において、エンコーダ71は、タイマの値を基に、タイマが終了したか否かを判定し、タイマが終了していない場合、ステップS42に戻り、タイマが終了するまで、判定の処理を繰り返す。
例えば、ステップS42において、エンコーダ71は、タイマの値と、予め定めた33msの時間を示す値とを比較することにより、タイマが終了したか否かを判定する。この場合における、タイマの値と比較される33msの時間を示す値は、フレームの数が1秒当たり30である場合の例であり、本発明を限定するものではない。
なお、初期化の処理において、タイマの値を33msなどの所定の時間の値に設定して、時間の経過に対応してタイマの値が減少するようにして、比較の処理において、タイマの値が0であるか否かを判定するようにしてもよい。以下に説明するタイマに関する処理において、同様である。
ステップS42において、エンコーダ71は、タイマが終了したと判定された場合、ステップS43に進み、カメラ11から供給された画像データをキャプチャする。ステップS43において、例えば、エンコーダ71は、カメラ11から供給された画像データのうち、1フレーム分をキャプチャする。
ステップS44において、エンコーダ71は、キャプチャされた画像データを、エンコード(符号化)する。例えば、ステップS44において、エンコーダ71は、キャプチャされた画像データを、MPEG(Moving Pictures Experts Group)1,2,4,7、若しくは21、JPEG(Joint Photographic Experts Group)、JPEG2000、またはモーションJPEGなどの方式により符号化する。
ステップS45において、FECパケット生成部74は、パケットバッファ82にFECパケットがあるか否かを判定する。例えば、最初に実行されるステップS45の処理においては、まだ、FECパケットが生成されていないので、FECパケットがないと判定される。
後述するように、一度、ステップS47乃至ステップS53の処理が実行された後の、2回目以降のステップS45においては、FECパケットが生成されて、生成されたFECパケットがパケットバッファ82に格納されているので、FECパケットがあると判定される。
ステップS45において、FECパケットがあると判定された場合、ステップS46に進み、FECパケット生成部74は、パケットバッファ82に記憶されているFECパケットを通信部39に供給して、通信部39に、通信網13を介して、クライアント14宛てにFECパケットを送信させ、ステップS47に進む。
ステップS45において、FECパケットがないと判定された場合、FECパケットを送信することはできないので、ステップS46の処理はスキップされ、手続きは、ステップS47に進む。
ステップS47において、エンコーダ71は、エンコードされた画像データをバッファ72に供給して、バッファ72に画像データを記憶させる。
ステップS48において、RTPパケット生成部73は、バッファ72に記憶されている符号化されている画像データから、符号化された画像データを格納するRTP(Real-time Transport Protocol)パケットを生成する。例えば、RTPパケット生成部73は、バッファ72から、1フレーム分の、符号化されている画像データを読み出す。そして、RTPパケット生成部73は、読み出した画像データを適当なデータ量に分割して、分割された画像データのそれぞれに所定のヘッダを付加することにより、1つの集合に属する、1または複数のRTPパケットを生成する。
図9は、RTPパケットを説明する図である。RTPパケットの先頭には、図9において”v”で表される、2ビットのバージョン情報が配置される。バージョン情報は、RTPパケットのバージョンを示す。
バージョン情報の次に1ビットのパディングが配置され、パディングに続いて、1ビットの拡張情報がRTPパケットに配置される。拡張情報は、図9において、”x”で表される。拡張情報は、RTPパケットに拡張ヘッダを配置する場合に、所定の値に設定される。
拡張情報に続いて、CSRC(Contributing Source)カウントがRTPパケットに配置される。CSRCカウントは、図9中において、”cc”で表される。CSRCカウントは、CSRC識別子の数を表す。
CSRCカウントに続いて配置される、1ビットのメーカー情報は、プロファイルによって定義される。メーカー情報は、図9中において、”m”で表される。
メーカー情報に続いて配置される、7ビットのペイロードタイプは、RTPパケットのフォーマットを定義するための情報である。ペイロードタイプは、図9中において、”Pt”で表される。RTPパケットにおいて、ペイロードタイプは、33とされる。
シーケンス番号は、ペイロードタイプの次に配置される、16ビットの情報である。シーケンス番号は、RTPパケットの送信の度に、1ずつ増える。シーケンス番号は、パケットロスを検出し、RTPパケットの順序を修復するために使用される。
シーケンス番号の次に配置される、32ビットのタイムスタンプは、そのRTPパケットに格納されているストリーミングデータの最初のオクテットがサンプルされた時刻を示す情報である。
SSRC(Synchronization source)識別子は、タイムスタンプの次に配置される、32ビットの情報であって、RTPパケットに格納されるストリーミングデータのソースを示す。
RTPパケットにおいて、SSRC識別子の次には、ストリーミングデータが格納される。図9において、”データ”は、ストリーミングデータを示す。
図8に戻り、ステップS48において、RTPパケット生成部73は、さらに、生成されたRTPパケットを通信部39に供給すると共に、内部のパケットバッファ81にRTPパケットを記憶させる。
ステップS49において、信部39は、通信網13を介して、RTPパケット生成部73から供給されたRTPパケットを相手であるクライアント14に送信する。
ステップS50において、FECパケット生成部74は、パケットバッファ81に記憶されている1つの集合に属するRTPパケットを基に、FECパケットを生成する。例えば、FECパケット生成部74は、パケットバッファ81に記憶されている1つの集合に属するRTPパケットから2つのRTPパケットを選択して、選択されたRTPパケットのデータに排他的論理和の演算を適用することにより、FECパケットのデータを生成し、生成されたデータに所定のヘッダを付加することにより、FECパケットを生成する。
図10は、FECパケットを説明する図である。バージョン情報乃至メーカ情報、およびシーケンス番号乃至SSRC識別子は、図9に示すRTPパケットの場合と同様なので、その説明は省略する。
FECパケットにおいて、ペイロードタイプは、34とされる。
FECパケットにおいて、SSRC識別子の次には、誤り訂正のための冗長データが格納される。図10において、”データ”は、冗長データを示す。
なお、FECパケット生成部74によって生成されるFECパケットの誤り訂正方式(冗長データの方式)は、排他的論理和の演算によるものに限らず、例えば、ハミング符号などの線形符号、巡回符号、BCH(Bose-Chaudhuri-Hocquenghem)符号若しくはリードソロモン(Reed-Solomon)符号などの代数的符号、または多数決論理符号などいずれの方式であってもよい。
ステップS51において、FECパケット生成部74は、ステップS50の処理で生成したFECパケットをパケットバッファ82に記憶する。
なお、ステップS50の処理で生成されたFECパケットは、即座に、クライアント14に送信されることはなく、ステップS51の処理の後に実行されるステップS46の処理において、パケットバッファ82に記憶されたFECパケットが、通信網13を介して、クライアント14に送信される。
従って、ステップS49の処理において、RTPパケットが送信されてから、ステップS42において判定されるタイマの終了に要する期間を経過した後、ステップS46において、そのRTPパケットを訂正するためのFECパケットが送信されることになる。
また、FECパケットを送信するまでに、時間的な余裕ができるので、高速な処理のために、必ずしもFECパケットを生成するための専用のハードウェアを設ける必要がなくなり、また、ステップS50に処理の実行のために、一時に、より多くのCPU31の資源が必要とされない。
より詳細には、ステップS49の処理において、1つのフレームの画像データを格納するRTPパケットが送信されてから、次のフレームの画像データを格納するRTPパケットを送信する時刻であって、次のフレームの画像データを格納するRTPパケットを送信する前に、前のフレームのRTPパケットを訂正するためのFECパケットが送信されることになる。
ステップS52において、RTPパケット生成部73は、RTPパケットに付加するタイムスタンプを更新する。ステップS53において、エンコーダ71は、内蔵しているタイマをセットして、ステップS42に戻り、上述した処理を繰り返す。
例えば、ステップS49において、エンコーダ71は、タイマの値を0にセットする。
このように、サーバ12は、通信網13を介して、例えば、画像であるストリーミングデータが格納されているRTPパケットをクライアント14に送信し、一定期間が経過した後、RTPパケットを訂正するためのFECパケットをクライアント14に送信する。従って、ネットワークを構成するルータの、パケットのキューを格納するバッファにおけるあふれなどによって生じる、FECパケットのパケットロスをより少なくすることができる。
図11は、サーバ12によって送信され、クライアント14によって受信されるRTPパケットおよびFECパケットの順序を説明する図である。
図11において、RTPパケット101−1乃至101−4は、1つのフレームの画像データを分割して格納し、それぞれ3000であるタイムスタンプが付されている。RTPパケット101−1乃至101−4は、1つのバースト送信ユニットを構成する。
RTPパケット101−5乃至101−8は、RTPパケット101−1乃至101−4に格納されている画像データのフレームの、次の1つのフレームの画像データを分割して格納し、それぞれ6000であるタイムスタンプが付されている。RTPパケット101−5乃至101−8は、1つのバースト送信ユニットを構成する。
RTPパケット101−9乃至101−12は、RTPパケット101−5乃至101−8に格納されている画像データのフレームの、次の1つのフレームの画像データを分割して格納し、それぞれ9000であるタイムスタンプが付されている。RTPパケット101−9乃至101−12は、1つのバースト送信ユニットを構成する。
なお、図11で示されるバースト送信ユニットは、メディアユニットでもある。
すなわち、RTPパケット101−1乃至101−4は、1つの集合に属するパケットの一例である。同様に、RTPパケット101−5乃至101−8は、1つの集合に属するパケットの一例であり、RTPパケット101−9乃至101−12は、1つの集合に属するパケットの一例である。
FECパケット102−1は、RTPパケット101−1乃至101−4のエラーを訂正するための冗長データを格納する。FECパケット102−2は、RTPパケット101−5乃至101−8のエラーを訂正するための冗長データを格納する。
図11で示されるように、FECパケット102−1は、RTPパケット101−1乃至101−4からなるバースト送信ユニットのエラーを訂正するための冗長データを格納し、RTPパケット101−1乃至101−4とは別に(時間的に離れて)、RTPパケット101−5乃至101−8からなるバースト送信ユニットの前側に配置されて、RTPパケット101−5乃至101−8と共にバースト送信により送信される。
同様に、FECパケット102−2は、RTPパケット101−5乃至101−8からなるバースト送信ユニットのエラーを訂正するための冗長データを格納し、RTPパケット101−5乃至101−8とは別に、RTPパケット101−9乃至101−12からなるバースト送信ユニットの前側に配置されて、RTPパケット101−9乃至101−12と共にバースト送信により送信される。
このように、FECパケット102−1および102−2は、エラー訂正の対象となるバースト送信ユニットと時間的に離れて、他のバースト送信ユニットと共に送信される。FECパケット102−1および102−2は、他のバースト送信ユニットの前側に配置されて送信される。
次に、図12のフローチャートを参照して、クライアント14の受信の処理を説明する。ステップS61において、クライアント14は、受信の処理に必要なデータを初期化する。例えば、ステップS61において、クライアント14のデコーダ94は、内蔵しているタイマを初期値に設定する。より具体的には、例えば、デコーダ94は、タイマの値を0に設定する。さらに、ステップS61において、クライアント14は、例えば、200ms程度の期間、数フレーム分の画像データを格納したパケットが受信されるまで、待機する。
ステップS62において、通信部91は、通信網13を介して、サーバ12から送信されてきたパケットを受信する。例えば、通信部91は、通信網13を介して、バースト送信により、サーバ12から送信されてきたFECパケットおよびRTPパケットを受信する。
なお、より正確には、ステップS62において、通信網13を介して、サーバ12からパケットが送信されてきたとき、通信部91は、送信されてきたそのパケットを受信し、サーバ12からパケットが送信されてこないとき、受信するパケットがないので、パケットを受信しないで(送信されてくるまで待機することなく)、ステップS63に進む。
ステップS63において、通信部91は、サーバ12から送信されてきたパケットを受信したか否かを判定し、パケットを受信したと判定された場合、ステップS64に進み、受信したパケットをバッファ92に供給する。バッファ92は、通信部91から供給されたパケットを記憶し、ステップS65に進む。
ステップS62乃至ステップS64の処理により、1つのフレームの画像データを分割して格納する1または複数のパケットが、フレームを単位として、フレームの順に、バッファ92に順次記憶されることになる。
ステップS63において、パケットを受信していないと判定された場合、ステップS64の処理はスキップされ、処理は、ステップS65に進む。
ステップS65において、デコーダ94は、タイマの値を基に、タイマが終了したか否かを判定し、タイマが終了していないと判定された場合、ステップS62に戻り、受信の処理を繰り返す。
例えば、ステップS65において、デコーダ94は、タイマの値と、予め定めた33msとを比較することにより、タイマが終了したか否かを判定する。
ステップS65において、タイマが終了したと判定された場合、ステップS66に進み、誤り訂正部93は、ステップS64の処理でバッファ92に記憶された、1つのフレームの画像データを分割して格納するRTPパケットに誤りがあるか否かを判定する。例えば、ステップS66において、誤り訂正部93は、パケットロスがあるか否かを判定する。
さらに詳細には、誤り訂正部93は、バッファ92に記憶されているRTPパケットのシーケンス番号から、飛んでいるシーケンス番号が検出して、パケットロスがあるか否かを判定する。
すなわち、ステップS66において、パケットを正常に受信できなかったか否かが判定される。
ステップS66において、パケットに誤りがあると判定された場合、ステップS67に進み、誤り訂正部93は、FECパケットを基に、RTPパケットの誤りを訂正し、ステップS68に進む。
ステップS66において、パケットに誤りがないと判定された場合、誤りを訂正する必要はないので、ステップS67の処理はスキップされ、手続きは、ステップS68に進む。
ステップS68において、デコーダ94は、バッファ92から1フレーム分のRTPパケットを抽出して、抽出したRTPパケットから画像データをさらに抽出する。そして、デコーダ94は、抽出された画像データを復号して、復号された画像データを出力する。
ステップS69において、デコーダ94は、内蔵しているタイマをセットして、ステップS62に戻り、上述した処理を繰り返す。
このように、クライアント14は、サーバ12から送信されてきたRTPパケットおよびFECパケットを受信して、RTPパケットにパケットロスがあるとき、誤りを訂正して、誤りが訂正されたパケットを基に、画像データを復号することができる。
FECパケットは、他のバースト送信ユニットの前側に配置されて送信されてくるので、パケットロスがよりすくなくなり、クライアント14は、より確実にFECパケットを受信することができるので、より確実にRTPパケットの誤りを訂正することができるようになり、その結果、より確実に、より正確に、より高画質に、画像データを復号することができるようになる。
なお、FECパケットは、他のバースト送信ユニットの直前に配置するだけでなく、他のバースト送信ユニットの前半に配置して、送信することができる。
図13は、FECパケットを他のバースト送信ユニットの前半に配置して送信する、サーバ12による、送信の他の処理を説明するフローチャートである。
ステップS81乃至ステップS84の処理のそれぞれは、図8のステップS41乃至ステップS44の処理のそれぞれと同様なので、その説明は省略する。
ステップS85およびステップS86の処理のそれぞれは、図8のステップS47およびステップS48の処理のそれぞれと同様なので、その説明は省略する。
ステップS87において、FECパケット生成部74は、ステップS51の処理と同様の処理で、パケットバッファ81に記憶されているRTPパケットを基に、FECパケットを生成する。
ステップS88において、FECパケット生成部74は、ステップS87の処理で生成したFECパケットをパケットバッファ82に記憶する。
ステップS89において、RTPパケット生成部73は、パケットバッファ81に格納されている、1フレームの画像データを格納する所定の数のRTPパケットのうち、前半のRTPパケットを読み出して、読み出したRTPパケットを通信部39に供給する。通信部39は、RTPパケット生成部73から供給された、前半のRTPパケットを通信網13を介して、クライアント14に送信する。
ここで、前半のRTPパケットとは、パケットバッファ81に格納されている、1フレームの画像データを格納する所定の数のRTPパケットの順序を基準として、パケットバッファ81の前半分に格納されているRTPパケットを言うが、ステップS89においては、1フレームの画像データを格納する所定の数のRTPパケットうち、半数以下のRTPパケットが、通信網13を介して、クライアント14に送信されるようにしてもよい。
ステップS90において、FECパケット生成部74は、パケットバッファ82に格納されている、1つ前のフレームを訂正するためのFECパケットを読み出して、読み出したFECパケットを通信部39に供給する。通信部39は、FECパケット生成部74から供給された、1つ前のフレームを訂正するためのFECパケットを通信網13を介して、クライアント14に送信する。
ステップS91において、RTPパケット生成部73は、パケットバッファ81に格納されている、残りのRTPパケットを読み出して、読み出したRTPパケットを通信部39に供給する。通信部39は、RTPパケット生成部73から供給された、残りのRTPパケットを通信網13を介して、クライアント14に送信する。
ステップS92およびステップS93の処理のそれぞれは、図8のステップS52およびステップS53の処理のそれぞれと同様なので、その説明は省略する。
このように、サーバ12は、FECパケットを、他のバースト送信ユニットの前半、すなわち時間的に前側に配置して、送信することができる。
以上のように、本発明においては、誤りを訂正するためのデータを格納する誤り訂正パケットが、誤りの訂正の対象となるデータを格納したパケットとは別に、時間的に離れて送信される。また、誤り訂正パケットは、バースト送信される、1群のパケットの前半に配置されて送信されるので、誤り訂正パケット自身のパケットロスの発生が抑制される。
このように、誤り訂正パケットを送信するようにした場合には、誤りを訂正することができる。また、1または複数の送信パケットを含む第1の集合の相手への送信を制御し、第1の集合に属する送信パケットに格納されているストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成し、さらに、第1の集合に属する送信パケットの次の1または複数の送信パケットを含む第2の集合であって、送信の順番を基準として前半に、誤り訂正パケットが配置されている第2の集合の相手への送信を制御するようにした場合には、誤りを訂正するためのパケットのパケットロスをより少なくすることができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図5に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク51(フレキシブルディスクを含む)、光ディスク52(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク53(MD(Mini-Disc)(商標)を含む)、若しくは半導体メモリ54などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM32や、記憶部38に含まれるハードディスクなどで構成される。
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
12 サーバ, 13 通信網, 14 クライアント, 31 CPU, 32 ROM, 33 RAM, 38 記録部, 51 磁気ディスク, 52 光ディスク, 53 光磁気ディスク, 54 半導体メモリ, 71 エンコーダ, 72 バッファ, 73 RTPパケット生成部, 74 FECパケット生成部, 81 パケットバッファ, 82 パケットバッファ, 91 通信部, 92 バッファ, 93 誤り訂正部, 94 デコーダ
Claims (6)
- 通信網を介して、ストリーミングデータが格納されている送信パケットを送信する送信装置において、
1または複数の前記送信パケットを含む第1の集合の相手への送信を制御する送信制御手段と、
前記第1の集合に属する前記送信パケットに格納されている前記ストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成手段と
を含み、
前記送信制御手段は、さらに、前記第1の集合に属する前記送信パケットの次の1または複数の前記送信パケットを含む第2の集合であって、送信の順番を基準として前半に、前記誤り訂正パケットが配置されている前記第2の集合の相手への送信を制御する
ことを特徴とする送信装置。 - 前記第1の集合および前記第2の集合は、それぞれバースト送信ユニットである
ことを特徴とする請求項1に記載の送信装置。 - 前記送信制御手段は、送信の順番を基準として先頭に前記誤り訂正パケットが配置されている前記第2の集合の相手への送信を制御する
ことを特徴とする請求項1に記載の送信装置。 - 通信網を介して、ストリーミングデータが格納されている送信パケットを送信する送信方法において、
1または複数の前記送信パケットを含む第1の集合の相手への送信を制御する送信制御ステップと、
前記第1の集合に属する前記送信パケットに格納されている前記ストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成ステップと
を含み、
前記送信制御ステップにおいて、さらに、前記第1の集合に属する前記送信パケットの次の1または複数の前記送信パケットを含む第2の集合であって、送信の順番を基準として前半に、前記誤り訂正パケットが配置されている前記第2の集合の相手への送信が制御される
ことを特徴とする送信方法。 - 通信網を介して、ストリーミングデータが格納されている送信パケットを送信する送信処理用のプログラムであって、
1または複数の前記送信パケットを含む第1の集合の相手への送信を制御する送信制御ステップと、
前記第1の集合に属する前記送信パケットに格納されている前記ストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成ステップと
を含み、
前記送信制御ステップにおいて、さらに、前記第1の集合に属する前記送信パケットの次の1または複数の前記送信パケットを含む第2の集合であって、送信の順番を基準として前半に、前記誤り訂正パケットが配置されている前記第2の集合の相手への送信が制御される
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 - 通信網を介して、ストリーミングデータが格納されている送信パケットを送信する送信処理を、コンピュータに行わせるプログラムにおいて、
1または複数の前記送信パケットを含む第1の集合の相手への送信を制御する送信制御ステップと、
前記第1の集合に属する前記送信パケットに格納されている前記ストリーミングデータの誤りを訂正するための誤り訂正データが格納されている誤り訂正パケットを生成する生成ステップと
を含み、
前記送信制御ステップにおいて、さらに、前記第1の集合に属する前記送信パケットの次の1または複数の前記送信パケットを含む第2の集合であって、送信の順番を基準として前半に、前記誤り訂正パケットが配置されている前記第2の集合の相手への送信が制御される
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003368418A JP2005136546A (ja) | 2003-10-29 | 2003-10-29 | 送信装置および方法、記録媒体、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003368418A JP2005136546A (ja) | 2003-10-29 | 2003-10-29 | 送信装置および方法、記録媒体、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005136546A true JP2005136546A (ja) | 2005-05-26 |
Family
ID=34646089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003368418A Withdrawn JP2005136546A (ja) | 2003-10-29 | 2003-10-29 | 送信装置および方法、記録媒体、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005136546A (ja) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009118244A (ja) * | 2007-11-07 | 2009-05-28 | Internatl Business Mach Corp <Ibm> | 再生単位が可変のデータを送信する技術 |
JP2009232300A (ja) * | 2008-03-25 | 2009-10-08 | Fujitsu Ltd | 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム |
JP2010034898A (ja) * | 2008-07-29 | 2010-02-12 | Canon Inc | データ送信装置及びデータ送信方法 |
JP2012249303A (ja) * | 2005-06-10 | 2012-12-13 | Digital Fountain Inc | 前方エラー訂正(fec)符号およびストリーミング |
US9136878B2 (en) | 2004-05-07 | 2015-09-15 | Digital Fountain, Inc. | File download and streaming system |
US9136983B2 (en) | 2006-02-13 | 2015-09-15 | Digital Fountain, Inc. | Streaming and buffering using variable FEC overhead and protection periods |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
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 |
US9236885B2 (en) | 2002-10-05 | 2016-01-12 | Digital Fountain, Inc. | Systematic encoding and decoding of chain reaction codes |
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 |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
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 |
US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
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 |
US9485546B2 (en) | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
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 |
-
2003
- 2003-10-29 JP JP2003368418A patent/JP2005136546A/ja not_active Withdrawn
Cited By (43)
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 |
US9236885B2 (en) | 2002-10-05 | 2016-01-12 | Digital Fountain, Inc. | Systematic encoding and decoding of chain reaction codes |
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 |
JP2012249303A (ja) * | 2005-06-10 | 2012-12-13 | Digital Fountain Inc | 前方エラー訂正(fec)符号およびストリーミング |
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 |
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 |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9191151B2 (en) | 2006-06-09 | 2015-11-17 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US11477253B2 (en) | 2006-06-09 | 2022-10-18 | 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 |
US9628536B2 (en) | 2006-06-09 | 2017-04-18 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9237101B2 (en) | 2007-09-12 | 2016-01-12 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
US8214724B2 (en) | 2007-11-07 | 2012-07-03 | International Business Machines Corporation | Transmitting data with variable unit for playback |
JP2009118244A (ja) * | 2007-11-07 | 2009-05-28 | Internatl Business Mach Corp <Ibm> | 再生単位が可変のデータを送信する技術 |
JP2009232300A (ja) * | 2008-03-25 | 2009-10-08 | Fujitsu Ltd | 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム |
JP2010034898A (ja) * | 2008-07-29 | 2010-02-12 | Canon Inc | データ送信装置及びデータ送信方法 |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
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 |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
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 |
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 |
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 |
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 |
US11770432B2 (en) | 2009-09-22 | 2023-09-26 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9992555B2 (en) | 2010-06-29 | 2018-06-05 | Qualcomm Incorporated | Signaling random access points for streaming video data |
US9485546B2 (en) | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9602802B2 (en) | 2010-07-21 | 2017-03-21 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups for network streaming of coded multimedia data |
US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
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 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005136546A (ja) | 送信装置および方法、記録媒体、並びにプログラム | |
US7539925B2 (en) | Transmission apparatus and method, reception apparatus and method, storage medium, and program | |
US7320099B2 (en) | Method and apparatus for generating error correction data, and a computer-readable recording medium recording an error correction data generating program thereon | |
JP4002183B2 (ja) | パケット・チャネルを介するマルチメディア通信のための方法 | |
JP5778672B2 (ja) | バックワードルッキングロバストヘッダ圧縮レシーバ | |
US8327233B2 (en) | Method and device for transmitting and receiving data packets | |
US8261162B2 (en) | Decoding device, decoding method, and media data delivery system | |
JP4850932B2 (ja) | 画像伝送装置 | |
US20100125768A1 (en) | Error resilience in video communication by retransmission of packets of designated reference frames | |
WO2014063457A1 (en) | Systems and methods for data representation and transportation | |
JP5344541B2 (ja) | データ送信装置、送信方法及びプログラム | |
JP2004088246A (ja) | 無線通信方法および無線通信装置 | |
JP2014093584A (ja) | 送信装置、送信方法、受信装置、受信方法およびコンピュータプログラム | |
JP4362761B2 (ja) | 送信装置および方法、記録媒体、並びにプログラム | |
CN116320439A (zh) | 基于rs编码的云游戏视频流弱网传输优化方法和系统 | |
JP4445012B2 (ja) | パケットの配信帯域制御方法、配信装置及び映像配信システム | |
CN115550459A (zh) | 语音数据的发送和接收方法以及相关设备 | |
JP3730977B2 (ja) | データ伝送方法およびデータ処理方法 | |
JP4367287B2 (ja) | 受信装置および方法、記録媒体、プログラム、並びに通信システム | |
JP2005136547A (ja) | 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム | |
WO2016203870A1 (ja) | 送信装置、送信方法、及び通信システム | |
JP4506222B2 (ja) | 通信システム、送信装置および方法、並びにプログラム | |
JP4541758B2 (ja) | 画像伝送装置 | |
JP2010109942A (ja) | 情報処理装置及びその方法、プログラム、記録媒体 | |
JP4049378B2 (ja) | 双方向画像通信システムにおけるサーバ及びその処理方法並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070109 |