(57)【特許請求の範囲】
【請求項１】
データ送信装置およびデータ受信装置からなり、画像データのストリーム型データ転送を実行するデータ通信システムであり、
データ送信装置は、
送信画像データの階層符号化処理を実行する階層符号化部と、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化部において階層符号化された階層毎の優先度を設定する優先度付け処理部と、
前記階層符号化部により階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理部と、
ネットワーク状況を監視するネットワーク状況監視部と、
前記優先度付け処理部により前記階層毎に設定された優先度に従って、前記ネットワーク状況監視部の監視するネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化部における前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御部と、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御部とを有し、
前記優先度付け処理部は、
前記ネットワーク状況監視部により検出されたネットワーク状況に応じて、前記階層毎の優先度を変更する構成であり、
データ受信装置は、
前記データ送信装置から受信する画像データパケットを受信するパケット受信処理部と、
ネットワーク状況を監視するネットワーク状況監視部と、
前記データ送信装置から受信する画像データパケットのエラーまたはパケットロスの検出を実行し、エラー対応処理を実行するエラー訂正制御部と、
前記データ送信装置から受信する画像データパケットのエラーまたはパケットロスの検出に基づいて、前記データ送信装置に対する画像データパケット再送要求としての再送要求メッセージパケットの送信可否を判定する再送要求処理制御部と、
前記ネットワーク状況監視部の監視結果に基づいて処理画像データの選択を実行する階層選択制御部とを有し、
前記階層選択制御部は、
前記ネットワーク状況監視部の解析結果に基づく処理画像データの選択を、前記階層符号化された画像データ毎に前記ネットワーク状況に応じて決定された前記優先度に従って実行する構成である、
ことを特徴とするデータ通信システム。
【請求項２】
送信画像データのストリーム型データ送信を実行するデータ送信装置であり、
前記送信画像データの階層符号化処理を実行する階層符号化部と、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化部において階層符号化された階層毎の優先度を設定する優先度付け処理部と、
前記階層符号化部により階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理部と、
ネットワーク状況を監視するネットワーク状況監視部と、
前記優先度付け処理部により前記階層毎に設定された優先度に従って、前記ネットワーク状況監視部の監視するネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化部における前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御部と、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御部とを有し、
前記優先度付け処理部は、
前記ネットワーク状況監視部により検出されたネットワーク状況に応じて、前記階層毎の優先度を変更する構成であることを特徴とするデータ送信装置。
【請求項３】
前記データ送信側制御部は、前記ネットワーク状況監視部の監視するネットワーク状況に基づいて、エラー制御方式としてのＦＥＣ(Forward Error Correction)の処理態様変更、またはデータ再送要求処理としてのＡＲＱ（Auto Repeat reQuest）処理態様の変更処理を実行する構成であることを特徴とする請求項２に記載のデータ送信装置。
【請求項４】
前記ネットワーク状況監視部は、パケットロス率、伝送遅延時間、または前記データ受信装置からの再送要求に基づいてネットワーク状況解析を実行し、該解析結果を前記データ送信側制御部に出力し、前記データ送信側制御部は、該解析結果に基づいて、伝送パケットのエラー制御処理態様を制御する構成であることを特徴とする請求項２に記載のデータ送信装置。
【請求項５】
前記データ送信装置において、
前記データ送信側制御部は、前記ネットワーク状況監視部の監視するネットワーク状況に基づいて、エラー制御方式としてのＦＥＣ(Forward Error Correction)の処理態様変更、またはデータ再送要求処理としてのＡＲＱ（Auto Repeat reQuest）処理態様の変更処理を前記階層符号化部の設定した各階層の符号化送信画像データに対応して実行する構成であることを特徴とする請求項２に記載のデータ送信装置。
【請求項６】
前記データ送信装置において、
前記データ送信側制御部は、前記ネットワーク状況監視部の監視するネットワーク状況に基づいて、エラー制御方式としてのＦＥＣ(Forward Error Correction)の処理態様変更、またはデータ再送要求処理としてのＡＲＱ（Auto Repeat reQuest）処理態様の変更処理を前記優先度付け処理部の設定した各優先度に対応して実行する構成であることを特徴とする請求項２に記載のデータ送信装置。
【請求項７】
送信画像データのストリーム型データ送信を実行するデータ送信方法であって、
前記送信画像データの階層符号化処理を実行する階層符号化処理ステップと、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化処理ステップにおいて階層符号化された階層毎の優先度を設定する優先度付け処理ステップと、
前記階層符号化処理ステップにおいて階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理ステップと、
ネットワーク状況を監視するネットワーク状況監視ステップと、
前記優先度付け処理ステップにおいて前記階層毎に設定された優先度に従って、前記ネットワーク状況監視ステップにおいて取得したネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化ステップにおける前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御ステップと、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御ステップとを有し、
前記優先度付け処理ステップは、
前記ネットワーク状況監視ステップにおいて検出されたネットワーク状況に応じて、前記階層毎の優先度の変更処理を行うことを特徴とするデータ送信方法。
【請求項８】
送信画像データのストリーム型データ送信を実行するコンピュータ・プログラムであって、
前記送信画像データの階層符号化処理を実行する階層符号化処理ステップと、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化処理ステップにおいて階層符号化された階層毎の優先度を設定する優先度付け処理ステップと、
前記階層符号化処理ステップにおいて階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理ステップと、
ネットワーク状況を監視するネットワーク状況監視ステップと、
前記優先度付け処理ステップにおいて前記階層毎に設定された優先度に従って、前記ネットワーク状況監視ステップにおいて取得したネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化ステップにおける前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御ステップと、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御ステップとを有し、
前記優先度付け処理ステップは、
前記ネットワーク状況監視ステップにおいて検出されたネットワーク状況に応じて、前記階層毎の優先度の変更処理を行うステップであることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムに関する。さらに詳細には、ストリーミングデータ転送におけるエラー耐性を高めたパケット送信構成を持つデータ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
昨今、インターネット通信など、様々な通信媒体を介した画像、音声データ等のデータ転送が盛んに行われている。特に、近年においては、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。ダウンロード型伝送方式においては、映像ファイルや音声ファイルといったマルチメディアデータを伝送する場合、配信サーバからデータファイルを一旦受信側端末の記憶媒体にダウンロードして、その後、記憶媒体から再生することになる。よって、この方式ではファイルを完全に転送が終わるまでは再生できず、長時間再生やリアルタイム再生などには不向きである。
【０００３】
一方、後者のストリーム型伝送方式では、送信側から受信端末にデータ転送が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議・ビデオオンデマンドといったインターネットサービスに利用されている。
【０００４】
ストリーム型伝送方式は、例えば画像データのＭＰＥＧ圧縮処理により生成されるＭＰＥＧストリームをＩＰ（Internet Protocol）パケットに格納してインターネット上を転送させて、ＰＣやＰＤＡ、携帯電話等の各通信端末において受信するシステム等において使用され、開発が進んでいる。このような技術は、ビデオオンデマンドやライブ映像のストリーミング配信、あるいはビデオ会議、テレビ電話などのリアルタイム通信において有効となる。
【０００５】
このようなストリーム型伝送方式に適したインターネット技術に、IETF RFC1889で規定されているプロトコル：ＲＴＰ(Realtime Transport Protocol)がある。ＲＴＰに従ったデータ転送では、時間情報としてパケットにタイムスタンプを付加し、タイムスタンプの参照により送信側と受信側の時間的関係の把握を行ない、データ受信側において、パケット転送の遅延ゆらぎ（ジッター）などの影響を受けずに同期をとった再生を可能としている。
【０００６】
ただし、ＲＴＰは実時間のデータ転送を保証しているものではない。パケット配送の優先度や設定、管理などはＲＴＰが提供するトランスポートサービスの範疇ではないため、ＲＴＰパケットは、他のパケットと同様、ネットワーク上での配送遅延やパケット損失がおきる可能性がある。しかし、このような事態が起こっても、受信側は期待する時間内に到着したパケットだけを利用してデータを再生することが可能である。これは、映像や音声データが多少のデータ欠損があったとしても、データ品質を落とした再生、あるいはデータ補正処理による再生が可能となるからである。
【０００７】
なお、再生に間に合わず遅延配送されたパケットやエラーの発生したパケットは、受信側でそのまま破棄される。つまり、パケット損失やエラーが発生した場合は、高品質なデータ配信処理を行なっている場合でも、受信側で品質を保持した再生が実行されないという問題点がある。特に、有線区間で１０-5、無線区間で１０-3以上のエラーがあるといわれている中では、配信するメディアの品質保持を考慮すると、ＲＴＰをそのまま利用したデータ転送には問題がある。
【０００８】
このようなＲＴＰに従ったデータ転送における問題点を解決する１つの案としては、データ転送に信頼性が高いデータ転送プロトコルであるＴＣＰに従ってパケットの再送要求および再送パケット送信を行わせる方法が考えられる。しかし、ＴＣＰはエラーには強いが、スループットが低く、遅延が大きいため、再送しても再生時間に間に合わない可能性があり、リアルタイム通信の実現を困難とするという問題がある。
【０００９】
さらに、パケットエラー等に対応するエラー訂正手法として、例えばＦＥＣ（Forward Error Correction）という手段が考えられている。これは誤り訂正を行うためのＦＥＣデータを冗長データとして送信して、エラーが発生した場合には、データ受信側において、このＦＥＣデータをもとにエラーの修復を実行しようとするものである。ランダム誤り訂正符号として、ＢＣＨ符号と畳み込み符号が用いられる。また、バースト誤り訂正符号では、リードソロモン符号（ＲＳ符号）が一般的によく利用されている。前述のＡＲＱに比べると再送にかかる遅延がない分、遅延時間を低く抑えられるが、冗長データを付加するためにパケット損失が非常に少ない伝送路においてはスループットは低下する。
【００１０】
ＦＥＣは、端末側での誤り検出と符号処理が複雑なため受信端末側の処理能力に依存してしまう。このように、ネットワーク状況と受信端末に合わせた最適な付加ＦＥＣデータを一意に決定して送信するのは難しく、処理時間のオーバーヘッドが常につきまとうなど問題が存在する。
【００１１】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、ビデオオンデマンドや、遠隔テレビ会議のような、リアルタイム再生が望まれるデータ転送処理を効率的に実行可能とかるとともに、パケット損失等のエラー発生時にも品質の低下を抑えて高品質なデータ再生を実現するデータ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明の第１の側面は、
データ送信装置およびデータ受信装置からなり、画像データのストリーム型データ転送を実行するデータ通信システムであり、
データ送信装置は、
送信画像データの階層符号化処理を実行する階層符号化部と、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化部において階層符号化された階層毎の優先度を設定する優先度付け処理部と、
前記階層符号化部により階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理部と、
ネットワーク状況を監視するネットワーク状況監視部と、
前記優先度付け処理部により前記階層毎に設定された優先度に従って、前記ネットワーク状況監視部の監視するネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化部における前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御部と、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御部とを有し、
前記優先度付け処理部は、
前記ネットワーク状況監視部により検出されたネットワーク状況に応じて、前記階層毎の優先度を変更する構成であり、
データ受信装置は、
前記データ送信装置から受信する画像データパケットを受信するパケット受信処理部と、
ネットワーク状況を監視するネットワーク状況監視部と、
前記データ送信装置から受信する画像データパケットのエラーまたはパケットロスの検出を実行し、エラー対応処理を実行するエラー訂正制御部と、
前記データ送信装置から受信する画像データパケットのエラーまたはパケットロスの検出に基づいて、前記データ送信装置に対する画像データパケット再送要求としての再送要求メッセージパケットの送信可否を判定する再送要求処理制御部と、
前記ネットワーク状況監視部の監視結果に基づいて処理画像データの選択を実行する階層選択制御部とを有し、
前記階層選択制御部は、
前記ネットワーク状況監視部の解析結果に基づく処理画像データの選択を、前記階層符号化された画像データ毎に前記ネットワーク状況に応じて決定された前記優先度に従って実行する構成である、
ことを特徴とするデータ通信システムにある。
【００２２】
本発明の第２の側面は、
送信画像データのストリーム型データ送信を実行するデータ送信装置であり、
前記送信画像データの階層符号化処理を実行する階層符号化部と、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化部において階層符号化された階層毎の優先度を設定する優先度付け処理部と、
前記階層符号化部により階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理部と、
ネットワーク状況を監視するネットワーク状況監視部と、
前記優先度付け処理部により前記階層毎に設定された優先度に従って、前記ネットワーク状況監視部の監視するネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化部における前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御部と、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御部とを有し、
前記優先度付け処理部は、
前記ネットワーク状況監視部により検出されたネットワーク状況に応じて、前記階層毎の優先度を変更する構成であることを特徴とするデータ送信装置にある。
【００２３】
さらに、本発明のデータ送信装置の一実施態様において、前記データ送信側制御部は、前記ネットワーク状況監視部の監視するネットワーク状況に基づいて、エラー制御方式としてのＦＥＣ(Forward Error Correction)の処理態様変更、またはデータ再送要求処理としてのＡＲＱ（Auto Repeat reQuest）処理態様の変更処理を実行する構成であることを特徴とする。
【００２４】
さらに、本発明のデータ送信装置の一実施態様において、前記ネットワーク状況監視部は、パケットロス率、伝送遅延時間、または前記データ受信装置からの再送要求に基づいてネットワーク状況解析を実行し、該解析結果を前記データ送信側制御部に出力し、前記データ送信側制御部は、該解析結果に基づいて、伝送パケットのエラー制御処理態様を制御する構成であることを特徴とする。
【００２６】
さらに、本発明のデータ送信装置の一実施態様において、前記データ送信装置において、前記データ送信側制御部は、前記ネットワーク状況監視部の監視するネットワーク状況に基づいて、エラー制御方式としてのＦＥＣ(Forward Error Correction)の処理態様変更、またはデータ再送要求処理としてのＡＲＱ（Auto Repeat reQuest）処理態様の変更処理を前記階層符号化部の設定した各階層の符号化送信画像データに対応して実行する構成であることを特徴とする。
【００２７】
さらに、本発明のデータ送信装置の一実施態様において、前記データ送信装置において、前記データ送信側制御部は、前記ネットワーク状況監視部の監視するネットワーク状況に基づいて、エラー制御方式としてのＦＥＣ(Forward Error Correction)の処理態様変更、またはデータ再送要求処理としてのＡＲＱ（Auto Repeat reQuest）処理態様の変更処理を前記優先度付け処理部の設定した各優先度に対応して実行する構成であることを特徴とする。
【００３２】
本発明の第３の側面は、
送信画像データのストリーム型データ送信を実行するデータ送信方法であって、
前記送信画像データの階層符号化処理を実行する階層符号化処理ステップと、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化処理ステップにおいて階層符号化された階層毎の優先度を設定する優先度付け処理ステップと、
前記階層符号化処理ステップにおいて階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理ステップと、
ネットワーク状況を監視するネットワーク状況監視ステップと、
前記優先度付け処理ステップにおいて前記階層毎に設定された優先度に従って、前記ネットワーク状況監視ステップにおいて取得したネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化ステップにおける前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御ステップと、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御ステップとを有し、
前記優先度付け処理ステップは、
前記ネットワーク状況監視ステップにおいて検出されたネットワーク状況に応じて、前記階層毎の優先度の変更処理を行うことを特徴とするデータ送信方法にある。
【００４２】
本発明の第４の側面は、
送信画像データのストリーム型データ送信を実行するコンピュータ・プログラムであって、
前記送信画像データの階層符号化処理を実行する階層符号化処理ステップと、
前記送信画像データの元画像へのデータ損失による影響およびネットワークの損失率に基づき、前記階層符号化処理ステップにおいて階層符号化された階層毎の優先度を設定する優先度付け処理ステップと、
前記階層符号化処理ステップにおいて階層符号化された前記送信画像データを格納した送信画像データパケットを送信するパケット送信処理ステップと、
ネットワーク状況を監視するネットワーク状況監視ステップと、
前記優先度付け処理ステップにおいて前記階層毎に設定された優先度に従って、前記ネットワーク状況監視ステップにおいて取得したネットワーク状況に基づき、前記送信画像データパケットのエラー制御処理態様を制御するとともに、前記階層符号化ステップにおける前記送信画像データの符号化態様を設定してビットレートを制御するデータ送信側制御ステップと、
データ受信装置から受信する再送要求メッセージパケットに従って再送すべき送信画像データパケットの抽出処理を実行する再送制御ステップとを有し、
前記優先度付け処理ステップは、
前記ネットワーク状況監視ステップにおいて検出されたネットワーク状況に応じて、前記階層毎の優先度の変更処理を行うステップであることを特徴とするコンピュータ・プログラムにある。
【００４４】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００４５】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００４６】
【発明の実施の形態】
［システム及びデータ送受信概要］
本発明のデータ通信システムのシステム構成例を図１に示す。本発明のデータ通信システムは、ビデオオンデマンドや、遠隔テレビ会議のような、リアルタイム再生が望まれるデータ転送処理をデータ送信処理を実行する送信側端末１００と、データ受信処理を実行する受信側端末１３０，１３１との間でＩＰネットワーク１３５を介して実行するシステムである。
【００４７】
図１には、１つの送信側端末１００と２つの受信側端末１３０，１３１が示してあるが、この他にも任意数の端末がＩＰネットワーク１３５を介してデータ送受信が実行される。また、データ送信側端末、受信側端末は、データの送信のみ、受信のみを実行するばかりでなく、データ送受信が可能な端末として構成可能である。
【００４８】
データ送信側端末１００は、カメラ１０９やマイク１１０より、画像、音声等のメディアデータをインターフェース（Ｉ／Ｆ）１０８などを通して記憶装置１０５、ＲＡＭ１０３に取り込む。撮り込まれたデータは、通信インターフェース１０６を介して、ＩＰネットワーク１３５に伝送される。ＩＰネットワーク１３５を介して設定される伝送路１３２，１３３，１３４は、有線路でも無線路でも構わない。これらの伝送路１３２，１３３，１３４を介して受信側端末１３０は、通信インターフェース１１２を通してデータを受信しＲＡＭ１１７にバッファリングする。
【００４９】
受信側端末１３０では、ＣＰＵ１１５による処理を経て、受信データを表示装置１１８において画像表示し、また再生装置１１４において音声の再生を実行する。受信端末１３１も受信端末１３０と同様に送信側端末１００からのデータを同時に受信し、同様の画像再生、音声再生を実行する。
【００５０】
図１の構成において、送信側端末１００、受信側端末１３０，１３１のそれぞれは例えば通信処理機能を持つＰＣ、あるいは携帯端末等によって構成される。各端末の詳細構成については、後段で説明するが、図１に示す送信側端末１００および受信側端末１３０，１３１の各処理部の機能の概略をまとめて説明する。
【００５１】
ＣＰＵ(Central processing Unit)１０１，１１５，１２３は、各種実行プログラム、ＯＳ（Operating System）を実行するプロセッサであり、後段で説明する。送受信データの再送制御、エラー訂正処理等のプログラムを実行する。ＲＯＭ（Read-Only-Memory）１０２，１１６，１２４は、ＣＰＵが実行するプログラム、あるいは演算パラメータとしての固定データを格納する。ＲＡＭ（Random Access Memory）１０２，１１７，１２５は、ＣＰＵの処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
【００５２】
表示装置１０４，１１８，１２６は、例えばＣＲＴ、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。外部記憶装置１０５，１１１，１１９はハードディスク、ＤＶＤ等の記憶媒体を持つ記憶装置であり、各種データ、プログラムを格納する。
【００５３】
通信Ｉ／Ｆ１０６，１１２，１２０は送信側端末と受信側端末間の通信処理を実行し、ＣＰＵの制御の下に、各記憶部から供給されたデータ、あるいはＣＰＵによって処理されたデータを送信したり、他端末からのデータを受信する処理を実行する。
【００５４】
入力装置１０７，１１３，１２１は、例えばキーボード、ポインティングデバイスを含む入力部であり、キーボードやマウス等を介してユーザによるデータまたはコマンドの入力が可能である。受信側端末１３０，１３１に示す再生装置１１４，１２２は前述したように音声再生を実行する例えばスピーカ等の装置である。
【００５５】
次に、図２以下を参照して、本発明のデータ通信システムにおけるデータ送受信処理の詳細を説明する。
【００５６】
図２のデータ通信システムにおいて、送信側端末２０１は受信側端末２０２に対して画像、音声等のデータをパケット化して送信する。転送データは、例えばビデオカメラ２０３によって取得された画像、音声データである。なお、転送データは、ＣＤ，ＤＶＤ等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等であってもよい。なお、以下の説明では、１つの例として送信側端末２０１から受信側端末２０２へビデオカメラ２０３によって取得された動画像データを転送する構成を中心として説明する。
【００５７】
ビデオカメラ２０３によって取得された動画像データは、送信側端末２０１の符号化装置（エンコーダ）２０４により符号化、例えばＭＰＥＧ圧縮処理等による符号化がなされ、階層化部２０５、優先度付け処理部２０６において、送信するデータ、および端末側の再生能力などに応じてデータを階層化し、優先度付け処理を実行する。
【００５８】
階層化部２０５は、符号化がなされたデータの階層化処理を実行する。基本階層（ベースレイヤー）は画像の基本となる階層であり、受信側端末２０２は、基本階層のみ受信した場合であっても最低限の品質を確保できる。さらに、上位階層のデータを受信することでより高品質なデータ例えば画像再生が可能となる。階層化部２０５は、このように符号化データに応じた階層区分処理を行なう。
【００５９】
ビデオオンデマンドやライブ映像のストリーミング配信、あるいはビデオ会議、テレビ電話などのリアルタイム通信においては、異なる能力を持つ端末を受信端末として、データ送受信が行われることを想定する必要がある。例えば、１つの情報送信ソースからの送信データは、携帯電話などのような解像度の低いディスプレイと処理能力の低いＣＰＵを有する受信端末によって受信されディスプレイに表示する処理が実行され、かつ、デスクトップパソコンのように高解像度のモニターと高い処理能力のＣＰＵを有する受信端末によって受信されて表示処理が実行される。このように、処理能力の異なる様々な受信端末を相手としたデータ送信が行なわれる。このように様々な受信端末において処理能力等に応じた受信処理、表示処理を実行させる手法として、送受信するデータの符号化を階層化させて実行するものであり、階層化部２０５は、このように符号化データに応じた階層化処理を行なう。
【００６０】
階層符号化によるデータ配信により、例えば、高解像度のディスプレイを有する受信端末においてのみ処理する符号化データと、高解像度のディスプレイを有する受信端末および低解像度のディスプレイを有する受信端末の双方において共通に処理する符号化データとを、それぞれ区別可能な態様でパケット化して配信可能となり、受信側において、データを選別して処理できる。
【００６１】
階層符号化が可能な圧縮・伸張方式としては、例えばＭＰＥＧ４とＪＰＥＧ２０００によるビデオストリームをあげることができる。ＭＰＥＧ４ではＦｉｎｅＧｒａｎｕａｌｉｔｙ  Ｓｃａｌａｂｉｌｉｔｙ技術を規格に取り込みプロファイル化する予定であり、この階層符号化技術によりスケーラブルに低いビットレートから高いビットレートまで配信することが可能と言われている。また、ウェーブレット（Ｗａｖｅｌｅｔ）変換をベースとするＪＰＥＧ２０００は、ウェーブレット（Ｗａｖｅｌｅｔ）変換の特徴を生かし、空間解像度をベースにパケット化することや、あるいは画質をベースに階層的にパケット化することが可能である。またＪＰＥＧ２０００は静止画だけでなく動画を扱えるＭｏｔｉｏｎ  ＪＰＥＧ２０００（Ｐａｒｔ  ３）規格により、階層化したデータをファイルフォーマットで保存することが可能である。上述の階層符号化処理の適用により、１つのファイルデータから異なる能力の端末へ同時にデータ配信を実行することが可能となる。
【００６２】
また、階層符号化の例としてＤＣＴ（Discrete Cosine Transform）ベースの技術を用いた構成も可能である。これは配信情報となる例えば画像データをＤＣＴ処理し、ＤＣＴ処理により高域と低域とを区別した階層化を実現し、高域と低域との階層で区分したパケットを生成してデータ配信を実行する方法である。エンコーダ２０４では、上述のＤＣＴ処理、あるいは、ウェーブレット変換のような階層化の可能な符号化方式を実行する。
【００６３】
エンコーダ２０４は上述の階層符号化をあらかじめ設定されたプログレッシブ順序でのプログレッシブ符号化処理を実行する。すなわち上記したフェーブレット変換等に対応する空間解像度によるプログレッシブ、あるいはＳＮＲ（Signal to Noise Ratio）、すなわち画質毎に設定した階層に対応するプログレッシブ、あるいはカラー成分（ＲＧＢやＹＣｂＣｒ）毎の階層に対応するプログレッシブ等、様々なデータ階層に応じたプログレッシブ符号化処理を実行する。
【００６４】
プログレッシプ符号化とは、インターネットの画像配信等において多用される符号化処理であり、データ受信端末側で粗い画像データを先に出力し、順次、細かい画像を出力して表示することを可能とするものである。例えば、空間解像度によるプログレッシブ符号化の場合は、粗い画像に対応する低周波画像データの符号化データから精細な画像に対応する高周波画像データの符号化データを生成する。データの復号、表示を実行する端末では、低周波画像データの符号化データの復号、表示処理をまず実行することで、短時間でディスプレイに粗い概略画像を表示することが可能となり、その後、高周波領域の符号化データを復号し、表示することで、徐々に精細な画像を表示することが可能となる。ＳＮＲ（Signal to Noise Ratio）、すなわち画質によるプログレッシブの場合は、低ＳＮＲ（低画質）の符号化データから高ＳＮＲ（高画質）を区別して符号化する。カラー成分（ＲＧＢやＹＣｂＣｒ）によるプログレッシブの場合は、カラー成分（ＲＧＢやＹＣｂＣｒ）毎の符号化を実行する。
【００６５】
一例としてウェーブレット変換による符号化データの階層化処理について説明する。ウェーブレット変換は、入力画像信号を、ローパスフィルタ、ハイパスフィルタによって帯域分割処理を複数段に渡って実行し、低域成分を階層的に帯域分割した帯域成分を順次生成する処理として実行される。図３は、レベル３まで２次元画像を帯域分割した結果得られる帯域成分を図示したものである。この図３に示す例では、先ずレベル１の帯域分割（水平・垂直方向）により４つの成分ＬＬ、ＬＨ、ＨＬ、ＨＨに分かれる。ここでＬＬは水平・垂直成分が共にＬであること、ＬＨは水平成分がＨで垂直成分がＬであることを意味している。次に、ＬＬ成分は再度帯域分割されて、ＬＬＬＬ、ＬＬＨＬ、ＬＬＬＨ、ＬＬＨＨが生成される。さらに、ＬＬＬＬ成分は再度帯域分割されて、ＬＬＬＬＬＬ、ＬＬＬＬＨＬ、ＬＬＬＬＬＨ、ＬＬＬＬＨＨが生成される。
【００６６】
図２に示すエンコーダ２０４は、例えば上述したウェーブレット変換処理等の階層符号化を実行し、階層化部２０５において、各階層毎に分類され、さらに、優先度付け処理部２０６において各階層毎の優先度付け処理が行なわれる。なお、エンコーダ２０４は、ビットレート制御部２１１からの情報に基づいて符号化態様の変更、例えば符号化階層数等の変更を行なう。ビットレート制御部２１１は、ネットワーク監視部２１５が監視するネットワーク状況を受信する階層エラー訂正優先度制御部２１２の設定した情報に基づいて、エンコーダ２０４の符号化態様の設定を行なう。例えばネットワークの混雑等によるパケットの遅延状況等をネットワーク監視部２１５が検出し、検出情報に基づいてエンコーダ２０４は、符号化階層数等の変更等、符号化態様を動的に変更する。
【００６７】
優先度付け処理部２０６においては、階層符号化データの階層毎の重要度に応じた優先度を付与する。上述したウェーブレット変換データの空間解像度による階層レベル分けを実行した場合において、もっとも重要度の高い階層レベルは、ディスプレイに粗い概略画像を表示するために必要となるデータであり、これは、図３に示す低域（３ＬＬ）データを含む符号化領域、すなわち１／８のサイズのＬＬＬＬＬＬ、ＬＬＬＬＨＬ、ＬＬＬＬＬＨ、ＬＬＬＬＨＨデータ領域３０１に相当する。次の重要度の階層レベルは、次の低域の１／４のサイズのデータ領域となり、ＬＬＬＬ、ＬＬＨＬ、ＬＬＬＨ、ＬＬＨＨデータ領域３０２で構成され、次の重要度の階層レベルは、次の低域の１／２のサイズのデータ領域となり、ＬＬ、ＬＨ、ＨＬ、ＨＨデータ領域３０３で構成される。
【００６８】
優先度付け処理部２０６も、ネットワーク監視部２１５が監視するネットワーク状況を受信する階層エラー訂正優先度制御部２１２の設定した情報に基づいて、設定する優先度を動的に変更可能な構成を持つ。例えばネットワークの混雑等によるパケットの遅延状況等をネットワーク監視部２１５が検出し、この検出情報に基づいて優先度付け処理部２０６は、各符号化データに対して設定する優先度を動的に変更する。
【００６９】
優先度の設定は、例えば図４に示すような設定として実行される。エンコーダ２０４によって階層符号化されたデータを、例えば５階層とした場合、階層０〜階層４までの階層別の符号化データに区分し、これらをそれぞれパケット６５〜６９の５つのパケットにペイロードとして格納する例を示している。
【００７０】
階層０の符号化データが最も重要度の高いデータであり、この階層０の符号化データをペイロードとするＩＰパケット６５のＲＴＰヘッダ（ＲＴＰＨ）には優先度［０］を設定し、また、ＩＰヘッダ（ＩＰＨ）には、優先度［０］を設定する。階層１の符号化データは、次に重要度の高いデータであり、この階層１の符号化データをペイロードとするＩＰパケット６６のＲＴＰヘッダ（ＲＴＰＨ）には優先度［１］を設定し、また、ＩＰヘッダ（ＩＰＨ）には、優先度［１］を設定する。以下、階層２の符号化データをペイロードとするＩＰパケット６７のＲＴＰヘッダには優先度［２］、ＩＰヘッダには優先度［１］、階層３の符号化データをペイロードとするＩＰパケット６８のＲＴＰヘッダには優先度［３］、ＩＰヘッダには優先度［２］、階層４の符号化データをペイロードとするＩＰパケット６９のＲＴＰヘッダには優先度［４］、ＩＰヘッダには優先度［２］を設定する。
【００７１】
このＩＰヘッダ、ＲＴＰヘッダに対する優先度設定処理は、優先度付け処理部２０６内の記憶手段に記憶した優先度設定マップに従って実行される。図５に優先度設定マップの構成例を示す。優先度設定マップは、エンコーダ２０４において符号化された階層毎にＲＴＰヘッダ、ＩＰヘッダに設定する優先度を対応付けたマップである。
【００７２】
図５に示す優先度設定マップの例は、ウェーブレット変換において設定された階層のレベル：０〜４をＲＴＰパケットの拡張ヘッダ（ＲＴＰ共通ヘッダに続くＲＴＰペイロードヘッダ）に設定する優先度：０〜４としてそのまま適用している。また、ＩＰヘッダに設定する優先度は、０〜２の３種類としＩＰネットワークから見た場合の優先度は３レベルとなる。このように階層レベルからＲＴＰのレベルへの優先度の対応付けとＲＴＰレベルからＩＰレベルへの優先度のマッピングを行うことにより、例えば次のような制御が可能となる。
【００７３】
ＲＴＰレベルにおいてはパケットのシーケンス番号を管理しており、インターネットでロスがあった場合にロスしたパケットを検出可能である。パケットロスを検出することにより、受信側は例えばデコーダにパケットロス位置を通知することによって、エラー制御方法を変更することができる。エラー制御方式としては、例えばＦＥＣ(Forward Error Correction)を使用する。ＦＥＣの手法としては、ＡＴＭのＡＡＬ１におけるパケットロスに対してＦＥＣを行う手法、ITU-T  Recommendation  I.363.1, B-ISDN ATM Adaptation Layer (AAL), types 1 and 2 specificationに記載のマトリックスを作って損失パケットのリードソロモン復号する手法に準じた方法等が適用可能である。
【００７４】
このような処理はすべての階層レベルのパケットに対して同等に処理する必要はなく、例えばネットワークの帯域に応じてＦＥＣ（フォワードエラーコレクション）の冗長度を変化させたり、再送回数を優先度に応じて重み付けする。
【００７５】
なお、図５に示す優先度設定マップは、ネットワーク状況に応じて動的に変更する構成を持つ。ネットワーク監視部２１が取得する帯域監視情報、ＲＴＣＰによる送信パケットの損失率情報等を用いて、送信可能な帯域、保証可能な品質を考慮してマッピング方法を変える。階層レベルをＲＴＰパケットの優先度レベルあるいはＩＰパケットの優先度レベルへマッピングする優先度設定マップを生成する場合、元画像へのロスによる影響をネットワークのロス率を考慮して優先度を決めることが可能である。
【００７６】
このように、本発明のデータ通信システムにおいては、ＲＴＰヘッダのＲＴＰペイロードヘッダ内に、符号化データの階層レベルに応じた優先度を設定した構成としたので、ＲＴＰパケットレベルで上層のアプリケーションに依存した優先度の把握が可能となる。この優先度の把握により、パケットロスに対する処理を変えることが可能である。
【００７７】
このような階層レベル毎の処理はアプリケーションに依存し、ＲＴＰパケットレベルでは優先度に応じてどう処理するかは、ＲＴＰパケットレベルだけで決定してよい。同様に、ＩＰパケットレベルで優先度をつけて処理方法を変えることも可能である。この場合、ＩＰパケットレベルではＤｉｆｆＳｅｒｖのようにネットワークが提供する機能であるからネットワークがサポートする、あるいはネットワークが規定した優先度をつけるためにＲＴＰパケットレベルの優先度からＩＰパケットレベルの優先度へマッピングする。
【００７８】
図５に示す優先度設定マップにおいてはＲＴＰパケットレベルで５段階の優先度を設定し、ＩＰパケットレベルで３段階の優先度を設定した例である。ＲＴＰパケットレベル１がＩＰパケットレベル１に、ＲＴＰパケットレベル２，３がＩＰパケットレベル２に、ＲＴＰパケットレベル４，５がＩＰパケットレベル３に対応している。ＤｉｆｆＳｅｒｖで扱える優先度の数は現状のＩＰｖ４フォーマットでは少ないが、本例のようなマッピングを適用して、３段階の優先度に対応する処理は可能である。
【００７９】
例えば、解像度に基づくプログレッシブ順序に従った符号化データについてのパケット化の場合、低解像度データの符号化データを格納したパケットの優先度が高く、高解像度の符号化データを格納したパケットの優先度が低く設定され、受信端末では、各パケットのＩＰヘッダまたはＲＴＰヘッダに付与された優先度を参照して、低域のパケットを優先して処理することが可能となり、例えばネットワークの輻輳があっても該当するパケットの廃棄される率が下がることにより画質が改善される。
【００８０】
なお、優先度設定マップは、この他にも、様々な態様の構成が可能である。このように、階層符号化されたデータの重要度に応じて、アプリケーションに依存した優先度をＲＴＰペイロードヘッダに設定し、さらに、ＩＰヘッダに優先度を設定することが可能であり、これらの複数の優先度情報を使ってレイヤー毎にエラー制御方法を変えたり、レート制御を実行するなどの処理が可能となる。
【００８１】
ＲＴＰペイロードヘッダに設定する優先度はアプリケーションやユーザの要求、受信側端末から受信する受信側端末情報に応じて動的に変更設定可能であり、ＩＰヘッダに設定する優先度は、ネットワーク状況、例えばネットワークの輻輳度合いに応じて動的に変更設定する。なお、送信側端末２０１のネットワーク監視部は、受信側端末２０２から受信側端末のデータ受信状況に関する情報を受信し、階層エラー訂正優先度制御部２１２は、この情報に基づいて、上述したように、エンコーダ２０４における符号化態様、階層化部２０５における階層設定処理態様、優先度付け処理部２０６における優先度設定処理態様を動的に変更するための制御情報を各処理部に出力する。
【００８２】
このように、優先度付け処理部２０６において、優先度付け処理が行なわれたデータはバッファ２０７ヘ出力され保存される。バッファ２０７に保存された符号化データは、ＦＥＣ(Forward Error Correction)処理部２０８において、エラー訂正のための冗長コードが必要に応じて付与される。ＦＥＣの手法としては、ＡＴＭのＡＡＬ１におけるパケットロスに対してＦＥＣを行う手法、ITU-T  Recommendation  I.363.1, B-ISDN ATM Adaptation Layer (AAL), types 1 and 2 specificationに記載のマトリックスを作って損失パケットのリードソロモン復号する手法に準じた方法等が適用可能である。なお、ＦＥＣ(Forward Error Correction)処理部２０８における、エラー訂正のための冗長コード付与処理は、個々のデータに基づく冗長コード付与ではなく、エラー耐性を高めるために複数のデータに渡るテータに基づいて冗長コードを付与する処理、すなわちインターリーブ処理を併せて実行する構成としてもよい。
【００８３】
このＦＥＣ(Forward Error Correction)処理部２０８における、エラー訂正のための冗長コード付与処理はすべての階層レベルのパケットに対して同等に処理する必要はなく、ＦＥＣ(Forward Error Correction)処理部２０８は、例えばネットワークの混雑等によるパケットの遅延状況、ネットワークの帯域等をネットワーク監視部２１５が検出し、この検出情報に基づいてＦＥＣ（フォワード・エラー・コレクション）の冗長度を変化させる等、処理を動的に変更する。
【００８４】
上述のように、送信側端末２０１は、ネットワーク監視部２１５の情報、すなわち、受信側端末２０２からの受信側端末のデータ受信状況に関する情報、ネットワーク状況に関する情報に基づいて、エンコーダ２０４における符号化態様、階層化部２０５における階層設定処理態様、優先度付け処理部２０６における優先度設定処理態様、ＦＥＣ(Forward Error Correction)処理部２０８における処理を動的に変更可能である。
【００８５】
上述した送信側端末の処理構成に基づいて、例えば符号化階層（レイヤー）毎に実行すべきエラー処理態様として、ＦＥＣ処理対象階層データとしたり、あるいは再生要求処理（ＡＲＱ：Auto Repeat reQuest）対象階層データとしての割り当てが可能となり、各階層において最適なエラー訂正とスループットを得ることが可能となる。つまり、伝送路状況がエラー率が高かったり遅延が大きいなどパケット再生処理（ＡＲＱ：Auto Repeat reQuest）に不利な状況ではＦＥＣでエラー訂正を実行する設定としたり、あるいは伝送遅延が小さいが冗長データを送りたくない場合には、ＦＥＣではなくＡＲＱを利用したエラー対応とするなど、送信側で任意のエラー対応設定としたデータパケットの送信が可能となる。
【００８６】
また、受信側端末においても同様のネットワーク監視部２２９を有しており、ネットワークの混雑等によるパケットの遅延状況、ネットワークの帯域等の情報に基づいて、ネットワーク状況が良い場合には、階層を上げてより高品質なデータを再生する等の動的な対応が可能となる。
【００８７】
図２の送信側端末２０１の構成について説明を続ける。ＦＥＣ処理部２０８において、必要に応じてエラー訂正用の冗長コードが付与されたデータは、リアルタイム・トランスポート・プロトコル：ＲＴＰ（Real-time Transport Protocol）に従ったデータ・パケット（以下パケットと称する）を生成するＲＴＰパケット生成部２０９に出力され、符号化データを格納したＲＴＰパケットのパケット生成処理が実行される。ＲＴＰパケット生成部２０９において生成された符号化データを格納したＲＴＰパケットは、ＲＴＰプロトコルを通じてＲＴＰポート２１０からＩＰネットワーク２１９に送出される。送信側端末２０１のＲＴＰパケット生成部２０９およびＲＴＰポートによってパケット送信処理部が構成される。
【００８８】
ＲＴＰパケット生成部２０９は、符号化データをペイロードとしたパケットを生成する処理を実行する。ペイロードデータに対して、ＲＴＰヘッダを付加しパケット化する。ＲＴＰパケット構成を図６に示す。ＲＴＰヘッダには、バージョン番号（ｖ）、パディング（Ｐ）、拡張ヘッダ（Ｘ）の有無、送信元数（Ｃｏｕｎｔｅｒ）、マーカ情報（ｍａｒｋｅｒ  ｂｉｔ）、ペイロードタイプ（Ｐａｙｌｏａｄ  ｔｙｐｅ）、シーケンス番号、タイムスタンプ、同期ソース（送信元）識別子（ＳＳＲＣ）および貢献ソース（送信元）識別子（ＣＳＲＣ）の各フィールドが設けられている。データ受信側において、ＲＴＰヘッダに付与されたタイムスタンプによりＲＴＰパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御が可能となる。なお、例えば動画像データの符号化データを格納したＲＴＰパケットにおいては、１つの画像フレームに属する複数のＲＴＰパケットに共通のタイムスタンプが設定され、各フレームを構成する終端パケットには、終端であることを示す識別フラグがＲＴＰヘッダに格納される。
【００８９】
ＲＴＰヘッダを付加されたパケットはさらにＩＰヘッダが付与される。図７にＩＰパケットの構成中のＩＰヘッダの詳細を示す。ＩＰｖ４、ＩＰｖ６等のバージョンを示すバージョン、ヘッダ長、さらに、優先度情報を格納したＴＯＳ（Type of Service）フィールド、パケットの長さ、パケットの識別子、ＩＰ層でのデータ分割（フラグメント）に関する制御情報としてのフラグ、分割（フラグメント）されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すＴＴＬ（Time to Live）、上位層で利用されるプロトコル（４：ＩＰ，ＴＣＰ：７，ＵＤＰ：１７…）ヘッダのチェックサム、送信元ＩＰアドレス、宛て先ＩＰアドレスを有する。
【００９０】
図２に戻り、データ受信処理について説明する。受信側端末２０２のＲＴＰポート２２０は、ＩＰネットワーク２１９を介して送信側端末２０１からのＲＴＰパケットを受信する。受信したＲＴＰパケットは、ＲＴＰパケット解析部２２１においてパケットの解析が実行される。受信側端末２０２のＲＴＰポート２２０および、ＲＴＰパケット解析部２２１によってパケット受信処理部が構成される。ＲＴＰパケット解析部２２１は、具体的にはパケット内のヘッダ部、データ部についての解析を実行する。パケットから取り出されたペイロードとしてのデータは、エラー監視部２２２において受信パケットのエラーについての検証が実行される。
【００９１】
エラー監視部２２２にてパケット損失が発見されず、正常にデータ受信がなされている場合には、受信パケットはバッファ２２３に蓄積され、ヘッダ情報に基づく時間制御の下にデコーダ２２４に渡され、デコーダ２２４によって復号処理が実行される。例えば動画像を構成する各画像フレームは、複数のパケットに格納されたデータによって構成され、１つの画像フレームを構成するデータを格納した複数のＲＴＰパケットのヘッダには、同一のタイムスタンプが格納されるので、ヘッダ情報のタイムスタンプを参照して同一タイムスタンプを持つパケットを１つの画像フレームを構成する符号化データの集合として、デコーダ２２４に渡すことが可能となり、デコーダ２２４は、フレーム毎に復号処理を実行することができる。デコーダ２２４において復号されたデータは、再生装置としてのディスプレイ、またはスピーカへ渡され、出力再生される。
【００９２】
送信側端末２０１から受信側端末２０２へ転送されるパケットが全て滞りなく、また、エラーのない状態で送信されれば、受信側端末２０２におけるリアルタイムデータ再生は問題なく実行される。しかし、実際は、ネットワーク上でのパケット損失の発生、遅延、転送パケットのデータエラー等、様々な要因に基づく再生エラーあるいは再生データの品質低下が発生し得る。
【００９３】
本発明のデータ通信システムでは、エラー監視部２２２にてパケット損失が発見された場合、エラー訂正制御部２３０は、ＦＥＣにより復元可能かを判断する。ＦＥＣにより訂正可能ならば、エラー訂正制御部２３０は、ＦＥＣに基づくエラー訂正を実行する。ＦＥＣエラー訂正によるデータ復元が実行された場合は、送信側端末２０１に対するデータ再送要求としてのＡＲＱ（Auto Repeat reQuest）処理は実行しない。訂正不可能であると判定した場合には、エラー訂正制御部２３０は、再送要求としてＡＲＱ（Auto Repeat reQuest）処理を実行する。図２においては、再送要求としてＲＴＣＰパケット生成部２２７において、ＲＴＣＰパケットを作成し、ＲＴＣＰポート２２５より再送要求を送信側端末に送信する構成を持つ。なお、再送要求伝送処理のプロトコルはＲＴＣＰに限らず、ＴＣＰに従った再送要求をＴＣＰポート２２８を介して出力してもよい。
【００９４】
エラー訂正制御部２３０において、再送要求を実行するとの判定がなされた場合、受信側端末２０２は、再送要求パケットを識別するデータを格納した再送要求ＮＡＣＫ（Negative ACKnowledge)−ＲＴＣＰ（Real-time Transport Control Protocol）パケットをＲＴＣＰパケット生成部２２７にて作成し、ＲＴＣＰパケットポート２２５を介して、送信側端末２０１に対して出力する。
【００９５】
送信側端末２０１のＲＴＣＰパケットポート２１７が、受信側端末２０２からの再送要求を示すＮＡＣＫ−ＲＴＣＰパケットを受信すると、受信したＮＡＣＫ−ＲＴＣＰパケットをＲＴＣＰパケット解析部２１６に渡す、ＲＴＣＰパケット解析部２１６はパケットの解析を実行し、解析結果をＡＲＱ制御部２１３、およびネットワーク監視部２１５へ渡す。ネットワーク監視部２１５は、入力情報に基づいて、ＡＲＱの頻度の検出が可能となり、伝送状態を判定することが可能であり、これらの情報を階層エラー訂正優先度制御部２１２に出力し、階層エラー訂正優先度制御部２１２は入力情報に基づいて、符号化、階層化、優先度付け、ＦＥＣ処理の各処理態様の動的変更制御を行なうことが可能となる。
【００９６】
また、ＲＴＣＰパケット解析部２１６において解析した解析結果を受信したＡＲＱ制御部２１３では、再送要求に応じたパケットの再送を実行するため、ＮＡＣＫ−ＲＴＣＰパケットにおいて指定されたパケットをバッファ２０７から抽出し、抽出したパケットを、ＲＴＰポート２１０を介して再送する制御処理を実行する。ＡＲＱ制御部２１３は、データ受信端末装置から受信する再送要求メッセージパケットに従って再送すべきデータパケットの抽出処理を実行する再送制御部として機能する。
【００９７】
送信側端末２０１において送信すべきストリームデータの終了を検知した場合には、送信側端末２０１のＲＴＣＰパケット生成部２１４の生成したストリームの終了を示すＥＯＳ（End Of Stream）メッセージを持つＲＴＣＰパケットを受信側端末２０２へ送り、データストリームの終了を明示する。
【００９８】
本発明のデータ通信システムにおいては、リアルタイム再生を考慮して、ロストパケットに関する再送要求の実行／非実行の処理を決定する。データ転送における自動再送要求方式であるＡＲＱ（Automatic Repeat reQuest）は非常に有効な誤り訂正機能として知られている。ＡＲＱの具体的方式としては、例えばＳＡＷ（Stop And Wait）方式、ＧＢＮ（Go Back N）方式、ＳＲ（Selective Repeat）方式など種々の方法が提案され実現されている。
【００９９】
本発明のシステムにおいては、上述のようにＦＥＣとＡＲＱを組み合わせて、よりエラー耐性の強いデータ伝送が実現される。受信側端末２０２では、ネットワーク状況とバッファ状況、再生状況によって階層を落とさなくても、ＦＥＣ処理およびＡＲＱ処理にてその階層の品質が得られるならば、エラー訂正によって処理し、処理対象データの階層を落とすことによるデータ品質低下はできるだけ行わないよう制御する。
【０１００】
また、受信側端末の階層選択制御部２３１は、ネットワーク状況を監視するネットワーク状況監視部２２９のネットワーク状況情報に基づく処理データの選択を実行し、送信側端末の設定した階層または優先度に従って処理データを選択して実行する。例えばネットワーク状況が悪くパケットロス、遅延が大きい場合には、基本階層のみあるいは、優先度の高いデータのみを選択して処理を実行したり、ネットワーク状況がよくパケットロス、遅延が少ない場合には、より高階層のデータあるいは、優先度の低いデータも選択して処理を実行するなど、ネットワーク状況に応じたデータ選択処理を実行する。
【０１０１】
図２のデータ通信システムにおける受信側端末２０２のエラー訂正制御部２２３の処理について、さらに説明する。エラー訂正制御部２２３は、ネットワーク監視部２２９によって監視されている現在のネットワーク状況を踏まえてエラー訂正を制御する。ネットワークの監視は、往復伝播遅延（ＲＴＴ）やパケットロス率などＲＴＣＰやＩＣＭＰなどの汎用のプロトコルを利用して取得する。ＡＲＱにおいてデータ再生におけるリアルタイム性を保持するためには、常に送信と受信における往復伝播遅延（ＲＴＴ）を計測しておく必要がある。本発明のシステムでは、データ受信側端末は、能動的にＲＴＴを計測し、ネットワーク状況等において変化する送信と受信における往復伝播遅延（ＲＴＴ）の更新を実行し、最新のＲＴＴに基づいて再送要求としてのＮＡＣＫ−ＲＴＣＰの送信の実行可否を判定する。
【０１０２】
送信と受信における往復伝播遅延（ＲＴＴ）をデータ受信端末において、あらかじめ把握することにより、データ受信端末において、再送要求を行なってから再送パケットを受信するまでの時間の把握が可能となり、データ受信端末においてリアルタイム再生を行なうために必要な最終再送要求時間を割り出すことが可能なる。本発明のシステムでは、受信端末のＡＲＱ判定部において、往復伝播遅延（ＲＴＴ）に基づく最終再送要求時間を判定し、判定に基づいて、再送要求としてのＮＡＣＫ−ＲＴＣＰの送信を実行する。これらの処理については、次の各端末の処理フローの説明において詳細に説明する。
【０１０３】
［データ送信端末における処理］
以下、図面を参照しながら、データ送信端末における処理の詳細について説明する。
【０１０４】
データ送信端末の処理手順を図８に示すフローチャートを参照して説明する。図８に示す処理は、図２の送信側端末２０１において実行される処理を説明したフローである。送信側端末は、例えばビデオカメラ、あるいはＤＶＤ、ＣＤ、ハードディスク等の記憶媒体から撮り込んだデータをエンコーダにおいてＭＰＥＧ圧縮等の符号化処理を実行し、その後、符号化データをペイロードとしたパケットを生成する。図８に示すフローは、このパケット生成処理以降の処理を示している。
【０１０５】
データ送信端末は、ステップＳ３０１において、送信データをペイロードとしたＲＴＰパケット生成処理を実行する。ＲＴＰパケットは、先に図６を参照して説明した構成を有しタイムスタンプをヘッダ中に持つ。例えば動画像データを送信する場合は、同一画像フレームに属する符号化データを格納したパケットには同一のタイムスタンプが設定され、後続フレームに進むに従って、増分されたタイムスタンプが設定される。
【０１０６】
ステップＳ３０１で生成したＲＴＰパケットは、ステップＳ３０２、ステップＳ３０３において、必要に応じてＦＥＣ(Forward Error Correction)処理部２０８が、エラー訂正のための冗長コード付与処理を実行する。先に説明したように、ＦＥＣ処理部２０８における処理は動的に変更され、例えばネットワークの混雑等によるパケットの遅延状況、ネットワークの帯域等をネットワーク監視部２１５が検出し、この検出情報に基づいてＦＥＣ（フォワード・エラー・コレクション）の冗長度を変化させたり、あるいは冗長コードの付与対象の階層を変更して処理を実行する。ＦＥＣ処理部における処理を実行しないデータに対しては、ステップＳ３０３を飛ばしてステップＳ３０４に進む。
【０１０７】
ＦＥＣ処理部２０８は、ネットワーク監視部２１５が検出したネットワーク状況情報に基づいて階層エラー訂正優先度制御部２１２が生成した制御情報を入力して、入力する制御情報に基づいて処理態様が決定される。なお、前述したように、ＦＥＣ処理部２０８におけるエラー訂正のための冗長コード付与処理は、個々のデータに基づく冗長コード付与ではなく、エラー耐性を高めるために複数のデータに渡るテータに基づいて冗長コードを付与する処理、すなわちインターリーブ処理が併せて実行される。
【０１０８】
次に、ステップＳ３０４において、ＲＴＰポートを介して受信端末に向けてＩＰネットワークに出力される。なお、ＲＴＰパケットはさらに、先に図７を用いて説明したＩＰヘッダが付与され、ＩＰヘッダに設定されたアドレスに向けて配信されることになる。パケット生成、パケット送信処理は、ストリーミング配信されるデータが終了したことを明示的に示すＥＯＳ（End Of Stream）を配信し、予め設定した時間をタイマーで計測して、タイマーでの計測時間が設定時間を超えた場合に、処理を終了する。
【０１０９】
図８に示すステップＳ３０５のパケット再送要求としてのＮＡＣＫ−ＲＴＣＰパケットの受信判定処理、ステップＳ３０６のパケット受信確認応答としてのＡＣＫ−ＲＴＣＰパケットの受信判定処理、ステップＳ３０７のＲＴＴ時間計測用のＥＣＨＯ−ＲＴＣＰパケットの受信判定処理は、ＲＴＰパケットによる実データ送信中の割込み処理としてＲＴＰパケットによる実データ送信に並行して逐次実行される処理である。
【０１１０】
ステップＳ３０５の処理は、データ受信端末からのパケット再送要求であるＮＡＣＫ−ＲＴＣＰパケットの受信判定処理である。データ受信端末からのパケット再送要求であるＮＡＣＫ−ＲＴＣＰパケットを受信した場合は、ステップＳ３１３〜Ｓ３１７の処理を実行する。このステップＳ３１３〜Ｓ３１７の処理は、図２に示すエラー訂正制御部２３０における処理として実行される。
【０１１１】
ステップＳ３１３においては、データ送信装置は、ＮＡＣＫ−ＲＴＣＰパケットを受信する。図９にデータ受信端末において生成し、データ送信端末の受信するパケット再送要求であるＮＡＣＫ−ＲＴＣＰパケットの構成を示す。
【０１１２】
ＮＡＣＫ−ＲＴＣＰパケットは、図９に示すようにヘッダ（ＨＥＡＤ）、フォーマット（ＦＯＲＭＡＴ）、パケットタイプ、パケット長、送信同期ソース識別子（ＲＴＣＰ）、タイムスタンプの情報に加えて、再送要求対象となるパケットの識別子としての再送指定シーケンス番号、さらに、各再送指定シーケンス番号に対応するデータとして、「再送回数」、「オプション」、「重複指定回数」が設定可能である。
【０１１３】
前述したように、本発明の提案するＡＲＱを適用したシステムでは、ＲＴＣＰに従ったコントロール・パケットとして再送要求としてのＮＡＣＫ、受信確認としてのＡＣＫ、ストリーミング配信されるデータが終了したことを明示的に示すＥＯＳ、送信と受信における往復伝播遅延（ＲＴＴ）を計測する際に使用されるＥＣＨＯ、およびＥＣＨＯ−ＲＥＰＬＹのパケットが利用される。これらの各ＲＴＣＰパケットそれぞれのフォーマットタイプを一制御メッセージとして、すなわちＲＴＣＰヘッダのＰＴ（Payload Type）として区別をするのは汎用的ではない。よって、制御メッセージとしては、フィードバックメッセージ（FM：Feedback Message）として定義しＰＴ（Payload Type）に指定する。かつ、ＲＴＣＰヘッダ内の［フォーマット］フィールドであるＦＭＴ (Feedback Message Format)にそのパケットフォーマットの指定をすることで、どのようなフィードバックメッセージかを決定できる構成とする。
【０１１４】
図９に示すように、１つのＮＡＣＫパケットには１つ以上の再送要求対象となるパケットの識別子としてのシーケンス番号を付与することができる構成を持つ。つまり一度のＮＡＣＫパケットの送信処理で複数のパケットについての再送要求が可能になる。また、再送要求パケットのシーケンス番号各々に対して付加される「再送回数」は、何回目の再送要求かを明記するフィールドであり、「重複指定回数」は、再送する場合の多重回数の指定を明記するフィールドであり、「オプション」はその他の任意の情報を格納するフィールドとして使用される。
【０１１５】
例えば、「重複指定回数」に［３］をいれておけば、ＮＡＣＫを受信したデータ送信側は、同じデータを格納した再送パケットを［３］つ連続で送る処理を実行する。重要データを格納したパケットについては、重複再送を要求することで、再送パケットの受信の確実性を高めることが可能となる。また、繰り返し、同一パケットについての再送要求としてのＮＡＣＫを送信しているにもかかわらず、受信に成功しない場合や、リアルタイム再生に間に合うための再送可能最終時間に出されるＮＡＣＫにおいて、「重複指定回数」の設定数を増加させてデータ送信側に送信することにより、再送パケットの受信の確実性を高めることが可能となり、データ再生品質を向上させることが可能となる。データ受信側は、このようなＮＡＣＫ−ＲＴＣＰパケットを送信して、データ送信側は、受信したＮＡＣＫ−ＲＴＣＰパケットに基づくパケット再送処理を実行する。
【０１１６】
なお、ＲＴＰパケットフォーマットやペイロードフォーマット、または受信端末の利用者が意図的に指定した場合など、パケットに優先度が与えられている場合、優先度が高いパケットやデータに関しての再送は多重再送処理を行なうことで、再送パケットの受信確率を高めるようコントロール可能である。また、「再送回数」フィールドにおいて何回目の再送要求かを明記することで、ＮＡＣＫ自身が損失したことを送信側が検知できる。
【０１１７】
「オプション」フィールドには、フィールド設定値に従って、例えば図１０に示す処理指定を行なうことが可能となる。すなわち、
オプション設定値＝０
指定シーケンス番号を持つパケットのみの再送要求（デフォルト）
オプション設定値＝１
フレーム先頭パケットから指定シーケンス番号を持つパケットまでの一括再送要求
オプション設定値＝２
指定シーケンス番号からフレーム最後尾までのパケットの一括再送要求
オプション設定値＝３
指定タイムスタンプの付与されたパケットの一括再送要求
オプション設定値＝４
タイムスタンプを無視してシーケンス番号のみで検索して検索結果のパケットの再送を要求
【０１１８】
画像データ等の符号化データは、先に図６を参照して説明したように、タイムスタンプとシーケンス番号をセットとしたヘッダを持つ１つのＲＴＰパケットに格納した構成を有するが、データ転送処理において、タイムスタンプの変わり目を含んた連続的なエラーとしてのバーストエラーが起こった場合、あるいは、バーストエラーの発生により、フレーム単位でパケットの損失が発生した場合などにおいては、受信端末側では、パケット損失の発生したパケットに対応するタイムスタンプとシーケンス番号のセットを特定できない場合が発生する。このような場合において、特定可能なタイムスタンプ、あるいはシーケンス番号のいずれか一方のみを指定して、上記のオプション設定値を設定することにより、フレキシブルな態様で再送の必要な１以上のパケット指定が可能となる。
【０１１９】
このように、データ受信端末では、様々な態様での再送要求パケットの指定が可能であり、ＮＡＣＫ−ＲＴＣＰパケットを受信したデータ送信端末のＡＲＱ制御部２１３は、オプションフィールドの設定値に従って、バッファ２０７に格納済みのパケットから指定パケットを抽出して、再送処理を実行する。
【０１２０】
図８に戻り、データ送信端末の処理について説明する。ステップＳ３１４では、ステップＳ３１２で受信したＮＡＣＫ−ＲＴＣＰパケットに指定された再送要求パケットに対応するシーケンス番号を抽出し、ステップＳ３１５では、オプション指定の抽出を実行する。上述したように再送要求パケットの指定態様は、シーケンス番号の直接指定のみならず、タイムスタンプ等による指定等、様々であり、データ送信端末装置のＡＲＱ制御部２１３では、受信したＮＡＣＫ−ＲＴＣＰパケットに指定されたオプション指定、およびタイムスタンプ、シーケンス番号を参照して、再送要求パケットを特定する処理を実行する。
【０１２１】
ステップＳ３１６では、特定された再送要求パケットをバッファ２０７から抽出する。バッファ２０７には、再送要求に備えて所定時間、送信済みのパケットが保持格納されており、これらの格納パケットから再送指定のあったパケットを抽出する処理を実行する。ステップＳ３１７で、ＲＴＰポートから抽出パケットが送信される。
【０１２２】
ステップＳ３０５において、ＮＡＣＫ−ＲＴＣＰパケットを受信しない場合は、ステップＳ３０６でパケット受信応答としてのＡＣＫ−ＲＴＣＰパケットの受信確認を行ない、ＡＣＫ−ＲＴＣＰパケットの受信に基づいて、ステップＳ３１１で、受信の確認されたパケットをバッファ２０７からクリア（削除）する。このＡＣＫにより、再送要求に対応してパケットを保持する送信側のバッファを能動的に早めにクリアすることが可能となり、バッファ溢れの恐れを低下させることが可能となる。
【０１２３】
図１１にデータ受信端末において生成し、データ送信端末の受信するパケット受信確認応答であるＡＣＫ−ＲＴＣＰパケットの構成を示す。
【０１２４】
ＡＣＫ−ＲＴＣＰパケットは、図１１に示すようにヘッダ（ＨＥＡＤ）、フォーマット（ＦＯＲＭＡＴ）、パケットタイプ、パケット長、送信同期ソース識別子（ＲＴＣＰ）、タイムスタンプの情報に加えて、受信パケットの識別子としての受信済みシーケンス番号が格納される。
【０１２５】
なお、シーケンス番号を指定せず、タイムスタンプ（TIMESTAMP）のみ指定する構成とすることも可能であり、この場合には、そのタイムスタンプ（TIMESTAMP）の設定されたパケットすべてを受け取った事を示す。よってこのような場合にはシーケンス番号をすべて指定する必要はないため、ＡＣＫ−ＲＴＣＰパケットサイズを小さくすることが可能となり、ネットワークトラフィックの増大を低減できる。
【０１２６】
図８に戻り、データ送信端末の処理の説明を続ける。データ送信端末は、ステップＳ３０７において、ＥＣＨＯ−ＲＴＣＰパケットの受信確認を行ない、データ受信端末からＥＣＨＯ−ＲＴＣＰパケットを受信した場合は、ステップＳ３１１において、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットをＥＣＨＯ−ＲＴＣＰパケットを送信してきたデータ受信端末に対して送信する処理を実行する。
【０１２７】
ＥＣＨＯ−ＲＴＣＰパケットと、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットは、送信端末と受信端末における往復伝播遅延（ＲＴＴ）をデータ受信端末において把握するために用いるＲＴＣＰパケットである。このパケットの送受信によって、データ受信端末において、再送要求を行なってから再送パケットを受信するまでの時間の把握が可能となり、データ受信端末においてリアルタイム再生を行なうために必要な最終再送要求時間を割り出すことが可能なる。
【０１２８】
本発明のシステムでは、受信端末のエラー訂正制御部２３０において、往復伝播遅延（ＲＴＴ）に基づく最終再送要求時間を判定し、判定に基づいて、再送要求としてのＮＡＣＫ−ＲＴＣＰの送信の実行可否を決定する。この判定処理に必要な送信端末と受信端末における往復伝播遅延（ＲＴＴ）の最新情報を取得するため、データ受信端末側は、任意タイミングで、能動的にＥＣＨＯ−ＲＴＣＰパケットをデータ送信端末に送信し、データ送信端末は、ＥＣＨＯ−ＲＴＣＰパケットの受信に応答してＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットをＥＣＨＯ−ＲＴＣＰパケットを送信してきたデータ受信端末に対して送信する。
【０１２９】
データ受信端末では、データ送信端末からの応答として受信するＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットを解析することによって、送信端末と受信端末における往復伝播遅延（ＲＴＴ）を算出する。このＲＴＴ算出処理については、後段のデータ受信端末の処理の項目で説明する。
【０１３０】
図１２にデータ受信端末において生成し、データ送信端末の受信するＥＣＨＯ−ＲＴＣＰパケットの構成、および、データ送信端末において生成し、データ受信端末に対して送信するＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットの構成を示す。
【０１３１】
ＥＣＨＯ−ＲＴＣＰパケットは、図１２（ａ）に示すようにヘッダ（ＨＥＡＤ）、フォーマット（ＦＯＲＭＡＴ）、パケットタイプ、パケット長、送信同期ソース識別子（ＲＴＣＰ）、およびＥＣＨＯパケットの識別データとしてのＥＣＨＯ−ＩＤが格納される。ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットは、図１２（ｂ）に示すようにヘッダ（ＨＥＡＤ）、フォーマット（ＦＯＲＭＡＴ）、パケットタイプ、パケット長、送信同期ソース識別子（ＲＴＣＰ）、およびＥＣＨＯ−ＲＴＣＰパケットに対応するＥＣＨＯ−ＩＤ、および、サーバ処理時間が格納される。
【０１３２】
ＥＣＨＯ−ＩＤをＥＣＨＯ−ＲＴＣＰパケットとＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットに入れることにより、データ受信端末側がＥＣＨＯ−ＲＥＰＬＹを受け取った際に、いつ送信したＥＣＨＯ−ＲＴＣＰパケットに対応する返事（ＥＣＨＯ−ＲＥＰＬＹ）かを識別することが可能となる。ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットに格納されるサーバ処理時間は、データ送信端末がデータ受信端末からの再送要求（ＮＡＣＫ−ＲＴＣＰ）を受信してからパケットをデータ送信端末から出力するまでに要する処理時間に相当する時間である。このサーバ処理時間は、ＥＣＨＯ−ＲＴＣＰパケットを受信した時間からＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットを送信するまでの時間として設定するか、あるいは、予めデータ送信端末において過去の履歴データとして、実際に、データ送信端末がデータ受信端末からの再送要求（ＮＡＣＫ−ＲＴＣＰ）を受信してからパケットをデータ送信端末から出力するまでに要した時間をメモリに格納し、この格納データを適用してもよいし、あるいは、ＥＣＨＯ−ＲＴＣＰパケットを受信した時点におけるサーバ（データ送信端末）における処理負荷を算出して、処理負荷に基づいて算出される予測処理時間をサーバ処理時間として設定する構成としてもよい。
【０１３３】
データ受信端末は、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットに格納されたサーバ処理時間と、ＥＣＨＯ−ＲＴＣＰパケット送信からＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰの受信までの時間とに基づいて、送信端末と受信端末における往復伝播遅延（ＲＴＴ）を算出する。このＲＴＴ算出処理については、後段のデータ受信端末の処理の項目で説明する。
【０１３４】
図８に戻り、データ送信端末の処理の説明を続ける。データ送信端末は、ステップＳ３０６において、送信対象となるストリーミングデータのパケット送信がすべて終了したかを判定し、終了と判定した場合は、ステップＳ３１０において、データストリームの終了を明示するＥＯＳ（End Of Stream）メッセージを持つＲＴＣＰパケットを受信側端末へ送信する処理を実行する。
【０１３５】
図１３にデータ送信端末において生成し、データ受信端末の受信するＥＯＳ−ＲＴＣＰパケットの構成を示す。
【０１３６】
ＥＯＳ−ＲＴＣＰパケットは、図１３に示すようにヘッダ（ＨＥＡＤ）、フォーマット（ＦＯＲＭＡＴ）、パケットタイプ、パケット長、送信同期ソース識別子（ＲＴＣＰ）、およびタイムスタンプ（ＴＩＭＥＳＴＡＭＰ）が格納される。データ受信端末は、ＥＯＳ−ＲＴＣＰパケットをデータ送信端末から受信することにより、ストリーミング配信されるデータの終了を認識する。受信端末はこの認識処理により、次フレームが到着しないことによる誤ったＮＡＣＫ送出動作を防ぐことができる。
【０１３７】
図８に戻り、データ送信端末の処理の説明を続ける。データ送信端末は、ステップＳ３０９において、予め設定した時間を計測するタイマーでの計測時間が設定時間を超えたか否かを判定して、タイマーが設定時間を超えていない場合は、ステップＳ３０５以下の処理、すなわち、ステップＳ３０５のパケット再送要求としてのＮＡＣＫ−ＲＴＣＰパケットの受信判定処理以下の処理を継続して実行する。これは、全パケット送出後においても、一定時間は、データ受信側からのパケット再送要求としてのＮＡＣＫ−ＲＴＣＰパケット、または、受信確認応答としてのＡＣＫ−ＲＴＣＰパケット、または、ＥＣＨＯ−ＲＴＣＰパケットを受信する可能性があり、これらのパケット受信に対する処理を実行するためである。タイマーにおいて、予め設定した時間が経過した時点で、データ送信を終了する。
【０１３８】
［データ受信端末における処理］
次に、データ受信端末の処理手順を図１４に示すフローチャートを参照して説明する。図１４に示す処理は、図２の受信側端末２０２において実行される処理を説明したフローである。
【０１３９】
データ受信端末は、ステップＳ４００において、データ送信端末からの送信開始通知を受信後、ステップＳ４０１において、データ送信端末からの送信パケット、すなわち符号化データをペイロードとして格納したＲＴＰパケットを順次、受信する。ＲＴＰパケットは、先に、図６を参照して説明したように、タイムスタンプがヘッダ情報中に格納されている。データ受信端末は、タイムスタンプに基づいて受信するパケットに含まれるフレームを判別することができる。先に説明したように、動画像データをＲＴＰパケットに符号化データとして格納して送信する場合、同一の画像フレームに属する複数のＲＴＰパケットには同一のタイムスタンプが設定され、データ受信側端末は、タイムスタンプを参照して、フレームの判別が可能となる。
【０１４０】
データ受信端末は、ステップＳ４０２において、受信パケットがエラー訂正のための冗長コードが付与されているか否かを判定する。冗長コードが付与されている場合は、ステップＳ４１１に進み、エラー訂正制御部２３０において、データ送信側で実行したインターリーブ対応するインターリーブ処理を実行して、ステップＳ４１２において、損失パケットの有無を判定する。損失パケットが無い場合は、ステップＳ４１６のデコード処理に進む。損失パケットがある場合は、ステップＳ４１３で、ＦＥＣによるエラー訂正、すなわち冗長コードに基づくエラー訂正処理を実行し、エラー訂正により再生可能か否かを判定する。再生可能であると判定した場合は、ステップＳ４１６のデコード処理に進む。
【０１４１】
ステップＳ４１３においてＦＥＣによる処理のみでは、再生可能でないと判定した場合は、ステップＳ４１５に進む。ステップＳ４１５の再送要求処理としてのＮＡＣＫ−ＲＴＣＰパケットの送信判定処理について説明する。リアルタイム再生処理を実現するためには、再生タイミングに間に合うように、再送要求パケットが受信端末に届くことが必要となる。ステップＳ４１５の再送要求処理としてのＮＡＣＫ−ＲＴＣＰパケットの送信判定処理は、ＮＡＣＫ−ＲＴＣＰパケットを送信した場合、リアルタイム再生処理に間に合うタイミングで、再送パケットが受信可能か否かを判定するものである。
【０１４２】
この判定のためには、前述したように、送信端末と受信端末間における往復伝播遅延（ＲＴＴ）が重要なパラメータとなる。往復伝播遅延（ＲＴＴ）が大きい場合、データ受信端末からデータ送信端末に対して再送要求を出しても、再送要求を発信して、再送パケットがデータ送信端末から再送され、データ受信端末において受信するまでに時間を要すると、その後デコーダに渡して復号を行なってリアルタイム再生に間に合わない場合が発生する。本発明のシステムでは、データ受信端末において、往復伝播遅延（ＲＴＴ）をあらかじめ把握し、往復伝播遅延（ＲＴＴ）に基づいて、ＮＡＣＫ−ＲＴＣＰパケットの送信判定処理を行なう。
【０１４３】
本発明のシステムにおいては、データ受信端末側が、任意タイミングで、往復伝播遅延（ＲＴＴ）の計測を実行することを可能な構成としている。具体的には、データ受信端末から、先に説明した図１２に示すＥＣＨＯ−ＲＴＣＰパケットを送信し、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットを受信して、ＲＴＴの算出を行なう。
【０１４４】
図１５を参照して、データ受信端末で実行するＥＣＨＯ−ＲＴＣＰパケットの送信、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットの受信、往復伝播遅延（ＲＴＴ）の算出処理について説明する。
【０１４５】
図１５（ａ）は、ＥＣＨＯ−ＲＴＣＰパケットの送信処理フローである。ＥＣＨＯ−ＲＴＣＰパケットの送信は、データ受信端末が任意タイミングで能動的に実行することが可能である。
【０１４６】
ステップＳ５０１における、ＲＴＣＰパケットの送信待機状態において、ＲＴＴの計測要請が発生した場合、ステップＳ５０２のＥＣＨＯ−ＲＴＣＰパケットの生成処理に移行する。ＲＴＴの計測は、データ受信が開始された後、例えば図１４の処理フローにおいて、ステップＳ４００の送信開始通知を受信した以降、定期的に実行する等の設定が可能であり、データ受信側端末に保有するタイマーで予め定めた計測間隔が経過したか否かを計測し、予め定めた計測間隔に対応する時間が経過した場合に、エラー訂正制御部２３０が、ＥＣＨＯ−ＲＴＣＰパケットの生成要求をＲＴＣＰパケット生成部２２７に出力し、ＲＴＣＰパケット生成部２２７がステップＳ５０２のＥＣＨＯ−ＲＴＣＰパケットの生成処理を実行するなどの設定が可能である。この他にも、パケットのロスト状況を解析し、ロスト状況に応じてＥＣＨＯ−ＲＴＣＰパケットの生成、送信を実行する構成としてもよく、いずれにしても、データ受信端末は、任意タイミングで、ＥＣＨＯ−ＲＴＣＰパケットの生成、送信が可能であり、常に最新の往復伝播遅延（ＲＴＴ）の算出が可能となる。
【０１４７】
ステップＳ５０２で生成するＥＣＨＯ−ＲＴＣＰパケットは、先に図１２（ａ）を参照して説明した構成を有する。パケットには、各パケット固有の識別子としてのＥＣＨＯ−ＩＤが設定される。ステップＳ５０３で、生成したＥＣＨＯ−ＲＴＣＰパケットが、ＲＴＣＰポート２２５を介して、データ送信端末２０１に対して送信される。ステップＳ５０４では、ＥＣＨＯ−ＲＴＣＰパケットを送信した送信時間、および、パケットに設定されたＥＣＨＯ−ＩＤがメモリに記録される。
【０１４８】
図１５（ｂ）は、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットの受信およびＲＴＴ算出処理フローである。ステップＳ６０１における、ＲＴＣＰパケットの送信待機状態において、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットが受信されたと判定（ステップＳ６０２でＹｅｓ）されると、ステップＳ６０３において、ＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットの受信時刻がメモリに記録される。受信するＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットは、先に図１２（ｂ）を参照して説明した構成を有する。パケットには、応答対象となった対応するＥＣＨＯ−ＲＴＣＰパケットと同一の識別子としてのＥＣＨＯ−ＩＤが設定され、さらに、データ送信端末において算出したサーバ処理時間が格納される。
【０１４９】
ステップＳ６０４では、受信したＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットからサーバ処理時間が抽出され、ステップＳ６０５において、受信したＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットに設定されたＥＣＨＯ−ＩＤから対応するＥＣＨＯ−ＲＴＣＰパケットの送信時間が検索される。
【０１５０】
ステップＳ６０６では、ステップＳ６０３において取得したＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットの受信時刻、ステップＳ６０４において取得したサーバ処理時間、ステップＳ６０３において取得したＥＣＨＯ−ＲＴＣＰパケットの送信時間に基づいて、往復伝播遅延（ＲＴＴ）の算出処理が実行される。往復伝播遅延（ＲＴＴ）の算出は、下式に基づいて実行される。
往復伝播遅延（ＲＴＴ）
＝(ECHO-REPLAY受信時刻)-(ECHO送信時刻)-(サーバ処理時間)
【０１５１】
なお、ＲＴＴの計測を実行する際に送受信するＥＣＨＯ，ＥＣＨＯ−ＲＥＰＬＹパケットも損失することが考えられる。またＲＴＴもネットワークの状況により常に変動するため、データ受信端末は一定間隔でＥＣＨＯ，ＥＣＨＯ−ＲＥＰＬＹパケットの送受信処理を実行してＲＴＴを計測する。
【０１５２】
図１４のフローに戻り、データ受信端末側の処理について説明を続ける。図１４のフローにおいて、ステップＳ４１５では、再送要求としてのＮＡＣＫ−ＲＴＣＰを出力した場合、リアルタイム再生処理に間に合うタイミングで再送要求パケットの受信が可能か否かを判定する。上述したＥＣＨＯ，ＥＣＨＯ−ＲＥＰＬＹパケットの送受信処理により計測されたＲＴＴ値と、各フレームの処理タイミングを計測しているタイマーの期限に基づいて、再送要求としてのＮＡＣＫ−ＲＴＣＰパケットを出しても間に合わないと判断した場合（Ｓ４１５でＮｏ）には、ＮＡＣＫ−ＲＴＣＰパケットの送信処理は実行しない。
【０１５３】
たとえば、パケット損失の存在する該当フレームの符号化データの処理開始までの時間Ｔａ＝１００ｍｍｓｅｃである場合、すなわち１００ｍｍｓｅｃ後にデコーダにデータを渡して復号処理が開始されることがタイマーの計測により明らかとなっている場合、計測された最新のＲＴＴ値が、該当フレームの符号化データの処理開始までの時間Ｔａより大きい値であった場合、すなわち、１００ｍｍｓｅｃ以上であった場合には、再送要求としてのＮＡＣＫ−ＲＴＣＰパケットを送信しても、再送パケットの受信が、デコード処理開始タイミングに間に合わないものと判断して、ＮＡＣＫ−ＲＴＣＰパケットの送信処理を実行しない。ただし、ＲＴＴ値が処理開始までの時間Ｔａ以上であっても、ＲＴＴ値と時間：Ｔａの非常に近い値を持つ場合には、ぎりぎり間に合う可能性もあるためＮＡＣＫを送出する構成としてもよい。このＮＡＣＫ送出判定の閾値は実装依存である。
【０１５４】
一方、計測された最新のＲＴＴ値が、パケット損失の存在する該当フレームの符号化データの処理開始までの時間Ｔａ以下であった場合には、再送要求としてのＮＡＣＫ−ＲＴＣＰパケットを送信して再送パケットを受信するまでの時間が、デコード処理開始タイミングまでの時間以下であるので、再送パケット受信が処理に間に合うものと判断して、ステップＳ４１７において、ＮＡＣＫ−ＲＴＣＰパケットの送信処理を実行する。
【０１５５】
図１４のフローのステップＳ４０２において、ＦＥＣによる冗長コードんが付与されていないパケットであると判定した場合は、ステップＳ４０３において、受信したパケットが、ｎフレーム目（ｎ=１，２...）の終端パケットであるか否かを判定する。また、ステップＳ４０４において、受信したパケットが、ｎ＋１フレーム目の先頭パケットであるか否かを判定する。受信したパケットが、ｎフレーム目（ｎ=１，２...）の終端パケットである場合、または、ｎ＋１フレーム目の先頭パケットである場合には、ステップＳ４１４に進む。
【０１５６】
ステップＳ４１４においては、ｎフレーム内に未受信のパケット、すなわちロストパケット、あるいはエラーパケットがあるか否かを判定する。
【０１５７】
ロストパケットまたはエラーパケットが検出されると、ステップＳ４１５以下の処理に進み、再送要求処理としてのＮＡＣＫ−ＲＴＣＰパケットの送信判定処理、および判定に基づくＮＡＣＫ−ＲＴＣＰパケットの送信処理が実行される。これらの判定処理の詳細は、前述した通りである。
【０１５８】
ＮＡＣＫ−ＲＴＣＰパケット送信の際にタイムスタンプ（TIMESTAMP）とシーケンス番号の組み合わせがはっきりしない場合には、先に図１０を参照して説明したオプションを指定して送信する。データ受信端末では、パケットの送受信情報を随時記録することで、パケットロス率の割り出しが可能となる。このロス率が一定値以上になった場合には、ＮＡＣＫ−ＲＴＣＰパケット自体の損失の可能性が考えられるため、おなじＮＡＣＫ−ＲＴＣＰパケットを複数回、重ねて送信する処理を行なうことで、再送成功率を高めることが可能となる。あるいは、ＮＡＣＫ−ＲＴＣＰパケットに重複指定回数を増分して設定する。
【０１５９】
データ送信端末は、ＮＡＣＫ−ＲＴＣＰパケットを受信すると、次のタイムスタンプを設定したフレームデータに併せて、再送パケットを送信する。
【０１６０】
ステップＳ４１４のロストパケットの検出処理は、ステップＳ４０３の各フレームの終端パケット受信、ステップＳ４０４の各フレームの先頭パケット受信時のみではなく、ステップＳ４０５の各フレームの最終再送時間の判定でＹｅｓの場合、およびステップＳ４０６のタイマーの最小計測時間τの経過判定でＹｅｓの場合に実行される。
【０１６１】
ステップＳ４０５の各フレームの最終再送時間の判定処理は、再送要求としてのＮＡＣＫ−ＲＴＣＰを出力した場合、リアルタイム再生処理に間に合う最終時間判定処理である。各フレームについて、各フレームの符号化データの処理開始までの時間Ｔａが計測されているＲＴＴ値と等しくなったとき、すなわち、Ｔａ＝ＲＴＴとなった場合に、ステップＳ４０５の判定がＹｅｓとなり、ステップＳ４０９の該当フレームに対するロストパケットの検出処理が実行される。これは、最後の再送要求可能タイミングにロストパケットを検出して、検出された場合に最後の再送要求を送信するための処理である。
【０１６２】
ステップＳ４０６のタイマーの最小計測時間τの経過判定処理は、データ受信端末の有するタイマーの計測最小時間：τ毎に、ステップＳ４０６の判定がＹｅｓとなり、ステップＳ４１４の該当フレームに対するロストパケットの検出処理が実行される。これは、各計測最小時間：τに対応する受信フレームについて、各フレームの先頭パケット、最終パケットの検出がなされない場合でもロストパケットを確実に検出して、再送要求を実行しようとするための処理である。
【０１６３】
このように、データ受信端末では、ステップＳ４０３の各フレームの終端パケット受信、ステップＳ４０４の各フレームの先頭パケット受信時、ステップＳ４０５の各フレームの最終再送時間の判定、およびステップＳ４０６のタイマーの最小計測時間τの経過判定の各タイミングにおいて、ステップＳ４１４のロストパケットの検出処理を実行する。なお、これらステップＳ４０３〜Ｓ４０６の４種類のタイミングのいずれかのみを実行する構成としてもよい。
【０１６４】
ステップＳ４１４の各フレームのロストパケット検出処理において、ロストパケットが検出されなかった場合は、各パケットに格納された符号化データのデコード（復号）処理がデコーダ２２４において実行される。ステップＳ４１８では、受信済みパケットについての受信確認パケットとしてのＡＣＫ−ＲＴＣＰパケットの生成、送信が行われる。ＡＣＫ−ＲＴＣＰパケットは、先に図１１を参照して説明した通り、受信済みシーケンス番号を格納したパケットである。このＡＣＫ−ＲＴＣＰパケットを受信したデータ送信端末は、ＡＣＫ−ＲＴＣＰパケットに記録された受信済みシーケンス番号に対応するパケットをバッファ２２３からクリアする。
【０１６５】
図１４に示すフローのステップＳ４０７では、各フレームのタイマー期限切れを確認する。このタイマー期限は、リアルタイム再生処理の開始期限を計測するタイマーによって設定される期限であり、各フレーム毎にそのタイミングが設定される。ｎフレームのタイマー期限切れであると判定された場合には、ロストパケットがあった場合であっても、ステップＳ４１６のデコード処理に移行することになる。
【０１６６】
ステップＳ４０８では、データ送信端末から、データストリームの終了を明示するＥＯＳ（End Of Stream）メッセージを持つＲＴＣＰパケットを受信したか否かを判定し、ＥＯＳ−ＲＴＣＰパケット受信でない場合は、ステップＳ４０１以下の処理を繰り返す。
【０１６７】
ＥＯＳ−ＲＴＣＰパケット受信である場合は、ステップＳ４０９において、各フレームのタイマー期限切れを確認する。このタイマー期限は、リアルタイム再生処理の開始期限を計測するタイマーによって設定される期限であり、各フレーム毎にそのタイミングが設定される。タイマー期限切れでない場合は、ステップＳ４１９に進み、再送要求されているロストパケットに関する再送パケットを受信待機状態であるか否かを判定して、待機状態である場合は、ステップＳ４２０に進み、再送パケットの受信待機状態として、ステップＳ４０１のパケット受信以下の処理を実行する。
【０１６８】
ステップＳ４０９における各フレームのタイマー期限切れの確認処理において、Ｙｅｓと判定された場合、および、ステップＳ４１９において、再送パケット受信待機状態でないと判定された場合は、デコード、再生処理へ移行すべき未受信のパケットデータは存在しないと判定され、受信処理を完了する。
【０１６９】
このように、本発明のシステムにおいては、リアルタイム配信に適するものの信頼性を保証しないＲＴＰ等のデータ通信プロトコルに従ったパケット伝送において、ＦＥＣ処理によるエラー訂正、または再送要求としてのＡＲＱを選択的に実行することで、エラー耐性のある信頼性の高いデータ伝送、リアルタイム再生が可能となる。なお、上述の実施例では、ＲＴＰパケットに符号化データを格納する構成例を中心として説明したが、ＲＴＰパケットフォーマットに限らず、ＵＤＰ等、他のデータ通信プロトコルフォーマットに従ったパケットを用いたデータ通信構成においても、上述の実施例と同様の各種のコントロールパケットを用いた再送要求処理を行なうことにより、上述の実施例と同様の構成を実現可能である。
【０１７０】
上述したように本発明の構成では、再送要求の処理タイミングとして、各フレームの先頭パケットの受信時、各フレームの最終パケットの受信時、最終処理期限、および一定間隔（τ）毎等の各種タイミングでロストパケットの検出処理を実行する構成としたので、確実なロストパケットの検出が可能となる。
【０１７１】
また、本発明のデータ通信システムにおける送信側端末の階層エラー訂正優先度制御部２１２は、および受信側端末２０２のエラー訂正制御部２３０は、それぞれのネットワーク監視部２１５、２２９によって監視されている現在のネットワーク状況を踏まえてエラー訂正を制御する。ネットワークの監視は、ＲＴＴやパケットロス率などＲＴＣＰやＩＣＭＰなどの汎用のプロトコルを利用して取得する。受信側がＲＴＴを検知するために、受信側は、前述したＥＣＨＯパケットを送信側に送り、その返事であるＥＣＨＯ−ＲＥＰＬＹパケットを受け取ることにとって、ＲＴＴを計測し、確実なパケット再送処理が実現される。
【０１７２】
先に説明したように、ＲＴＰではパケット毎にシーケンス番号をつけており、番号とフレームの先頭と終端を示すフラグをペイロードにいれておくことにより、あるフレームを構成するパケット数を簡単に受信側は計算することができ、必要なパケット数に対してある時間内にどれだけ正当なパケットが届いたかを監視していれば、ある程度のエラー率を求めることができる。ここで得られたエラー率またはＲＦＣ１８８９で規定されているＲＴＣＰのＲＲ（Ｒｅｃｉｅｖｅｒ  Ｒｅｐｏｒｔ）でのパケットロス率により、送信側はエラー率を知りＦＥＣのエラー訂正強度をあげたり、またはＦＥＣを施さないなどの処理態様の制御を実行する。
【０１７３】
エラー訂正処理として実行されるパケット再送要求（ＡＲＱ）は、再送要求ＮＡＣＫを送信し再送パケットが届くまでにＲＴＴ時間を要することになり、また、ＦＥＣ訂正においても送受信端末でインターリーブする処理のために一定時間が必要となる。それぞれの端末におけるネットワーク監視部の監視により得られるネットワーク状況に基づいて、例えば、ＲＴＴが短いならば、ＡＲＱによる再送が可能となるためＡＲＱによるエラー訂正を選択して実行し、ＲＴＴが長く、再送する時間がないほど送信側から受信側に転送時間がかかるというネットワーク状況である場合には、ＡＲＱではなくＦＥＣによるエラー訂正を選択する、といった動的なエラー訂正制御が可能となる。
【０１７４】
受信側端末のエラー監視部２２２では、ＲＴＰではパケット毎のシーケンス番号に基づいて、必要なパケット数に対してある時間内にどれだけ正当なパケットが届いたかのエラー率を求めることができ、また、送信側端末では、再送要求処理の数をカウントすることでエラー率を概算することが可能となる。エラー率が高く、ＦＥＣによるエラー訂正で訂正できないほどの高いエラー率であると判定した場合には、送信側端末２０１の階層エラー訂正優先度制御部２１２は、ＦＥＣ処理部における冗長コードの付与を停止し、すべて受信側端末からの再送要求（ＡＲＱ）に応答するのみの処理を選択したり、あるいは、よりエラー訂正の強いアルゴリズムのＦＥＣを選択するといったエラーに対する処理態様を動的に変更することが可能となる。
【０１７５】
また、これらのエラー制御態様は、伝送するデータ階層に応じた優先度に対応して選択的に設定可能であり、様々なエラー訂正ポリシーが決められる。例えば受信側端末２０２のネットワーク状況監視部２２９は、パケットロス率、または伝送遅延時間に基づくネットワーク状況解析を実行し、階層選択制御部２３１が、解析結果に基づいて処理データの選択を実行することが可能である。
【０１７６】
さらに、このエラー訂正ポリシーは、ネットワーク状況や送信および受信端末側の意図により変更可能なため、一意に決まるものとすることは必要でない。ある送信環境とメディアによっては、基本となる階層は必ず完全再生したいので、強めのＦＥＣ＋ＡＲＱで優先度を上げておく、音声データはＦＥＣのみで、オーバーヘッドは極力避けたいのでＦＥＣなしでＡＲＱとして再送回数１回まで、といったように自由な態様でのエラー制御態様を設定することができる。
【０１７７】
また、本発明のシステムでは、データ受信端末は、再生処理時間、伝播遅延時間ＲＴＴを考慮したデータ再送要求処理を実行するので、無駄な再送要求パケットおよび再送パケットを出すことを防ぐ事ができ、ネットワークの帯域を再送によって狭めることがない。また、データ受信端末が、パケットの送受信情報を随時記録し、パケットロス率の割り出しにより、ロス率が一定値以上になった場合、おなじＮＡＣＫ−ＲＴＣＰパケットを複数回、重ねて送信することで、再送成功率を高めることが可能となる。
【０１７８】
［データ送受信端末装置構成例］
上述の実施例で述べた一連の処理は、ハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたデータ処理装置内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータやマイクロコンピュータ等にインストールされる。
【０１７９】
図１６に、上述の実施例で述べた一連の処理を実行するデータ送信端末装置、データ受信端末装置のシステム構成例を示す。本発明のシステムで送受信されるデータは、符号化データであり、データ送信装置ではエンコード（符号化）処理が実行され、データ受信装置ではデコード（復号）処理が実行される。符号化されたデータはパケットとしてネットワークを介して送受信する。そのため、データ送信側では、パケット生成（パケタイズ処理）を実行し、データ受信側ではパケット展開（デパケタイズ処理）を実行する。
【０１８０】
図１６に示すデータ送受信装置（ｅｘ．ＰＣ）８５０は、エンコード（符号化）処理、デコード（復号）処理を実行するとともにパケット生成、展開処理を実行するコーデック８５１、通信ネットワークとのインタフェースとして機能するネットワークインタフェース８５２、マウス８３７、キーボード８３６等の入力機器との入出力インタフェース８５３、ビデオカメラ８３３、マイク８３４、スピーカ８３５等のＡＶデータ入出力機器からのデータ入出力を行なうＡＶインタフェース８５４、ディスプレイ８３２に対するデータ出力インタフェースとしてのディスプレイ・インタフェース８５５、各データ入出力インタフェース、コーデック８５１、ネットワークインタフェース８５２間のデータ転送制御、その他各種プログラム制御を実行するＣＰＵ８５６、ＣＰＵ８５６により制御実行される各種プログラムの格納、データの格納、ＣＰＵ８５６のワークエリアとして機能するＲＡＭ、ＲＯＭからなるメモリ８５７、データ格納、プログラム格納用の記憶媒体としてのＨＤＤ８５８を有し、それぞれＰＣＩバス８５９に接続され、相互のデータ送受信が可能な構成を持つ。
【０１８１】
コーデック８５１は、図１６に示すように、例えばビデオカメラ８３３からの画像データ、マイク８３４からの音声データを入力し、符号化処理、パケット生成処理（パケタイズ）を実行し、最終的に符号化データをペイロードとしたパケットを生成する。生成されたパケットは、ＰＣＩバス８５９上に出力され、ネットワークインタフェース８５２を介してネットワークに出力され、パケットのヘッダに設定された宛先アドレスに配信される。
【０１８２】
また、ＨＤＤ８５８またはメモリ８５７に格納されたソフトウェアエンコードプログラムに従ってＣＰＵ８５６の制御により、ビデオカメラ８３３からの画像データ、マイク８３４からの音声データを符号化してネットワークインタフェース８５２を介してネットワークに出力する処理も実行する構成としてもよい。
【０１８３】
一方、ネットワークを介して入力するＩＰパケット化されたデータは、ネットワークインタフェース８５２を介して、バス８５６上に出力されて、コーデック８５１に入力される。コーデック８５１では入力データのパケット展開処理（デパケタイズ）を実行し、ペイロードとして格納された符号化データを抽出後、復号処理を実行して、ディスプレイ８３２、スピーカ８３５において再生、出力する。
【０１８４】
上述の実施例における処理対象となる画像等のデータは、カメラ他の入力機器、例えばスキャナ等のデータ入力装置、あるいはフロッピーディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体から入力可能である。
【０１８５】
また、ＣＰＵ８５６は、ＲＯＭ格納プログラムに限らず、ハードディスクに格納されているプログラム、衛星若しくはネットワークから転送され、受信されてインストールされたプログラム等を、ＲＡＭ(Random Access Memory)等のメモリにロードして実行することも可能である。
【０１８６】
ここで、本明細書において、プログラムは、１つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１８７】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１８８】
【発明の効果】
以上、説明してきたように、本発明の構成によれば、ネットワーク監視部によって監視されている現在のネットワーク状況を踏まえてエラー訂正を制御することが可能であり、ＦＥＣによるエラー制御あるいは再送要求処理（ＡＲＱ）に基づくエラー制御等の態様をネットワークにおけるパケット損失、エラー発生状況に応じて動的に変更してパケット転送を実行することが可能となる。監視データとして、パケットエラー率またはＲＦＣ１８８９で規定されているＲＴＣＰのＲＲ（Ｒｅｃｉｅｖｅｒ  Ｒｅｐｏｒｔ）でのパケットロス率等を取得し、送信側においてＦＥＣのエラー訂正強度をあげたり、またはＦＥＣを施さずＡＲＱ処理のみの対応とするなどの処理態様の制御が可能となる。
【０１８９】
また、本発明の構成によれば、ネットワーク監視部の監視により得られるネットワーク状況に基づいて、例えば、ＲＴＴが短いならば、ＡＲＱによる再送が可能となるためＡＲＱによるエラー訂正を選択して実行し、ＲＴＴが長く、再送する時間がないほど送信側から受信側に転送時間がかかるというネットワーク状況である場合には、ＡＲＱではなくＦＥＣによるエラー訂正を選択する、といった動的なエラー訂正制御が可能となる。
【０１９０】
また、これらのエラー制御態様は、伝送するデータ階層に応じた優先度に対応して選択的に設定可能となり、符号化データの階層レベルに応じて異なるエラー訂正処理を実行する構成とすることが可能である。例えば基本階層を、強めのＦＥＣ＋ＡＲＱで優先度を上げた設定とし、音声データはＦＥＣのみの対応としたり、オーバーヘッドは極力避けたいのでＦＥＣなしでＡＲＱとして再送回数を例えば１回までといったように再送回数の制限数の設定等、自由な態様でのエラー制御態様を設定することができる。
【図面の簡単な説明】
【図１】本発明のデータ通信システムの構成を示す図である。
【図２】本発明のデータ通信システムの送信側端末、受信側端末の構成を示す図である。
【図３】データの階層化処理例としてのウェーブレット変換について説明する図である。
【図４】本発明のデータ通信システムの送信側端末で実行する優先度付け処理例について説明する図である。
【図５】本発明のデータ通信システムの送信側端末で実行する優先度付け処理に持ついるマップについて説明する図である。
【図６】本発明のデータ通信システムにおいて転送されるＲＴＰパケットフォーマットを示す図である。
【図７】本発明のデータ通信システムにおいて転送されるＩＰパケットヘッダフォーマットを示す図である。
【図８】本発明のデータ通信システムにおけるデータ送信端末の処理フローを示す図である。
【図９】本発明のデータ通信システムにおいて転送されるＮＡＣＫ−ＲＴＣＰパケットフォーマットを示す図である。
【図１０】本発明のデータ通信システムにおいて転送されるＮＡＣＫ−ＲＴＣＰパケットにおけるオプション値の機能について説明する図である。
【図１１】本発明のデータ通信システムにおいて転送されるＡＣＫ−ＲＴＣＰパケットフォーマットを示す図である。
【図１２】本発明のデータ通信システムにおいて転送されるＥＣＨＯ−ＲＴＣＰ、およびＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットフォーマットを示す図である。
【図１３】本発明のデータ通信システムにおいて転送されるＥＯＳ−ＲＴＣＰパケットフォーマットを示す図である。
【図１４】本発明のデータ通信システムにおけるデータ受信端末の処理フローを示す図である。
【図１５】本発明のデータ通信システムにおけるデータ受信端末のＥＣＨＯ−ＲＴＣＰ、およびＥＣＨＯ−ＲＥＰＬＹ−ＲＴＣＰパケットを適用したＲＴＴ計測処理フローを示す図である。
【図１６】データ送信端末装置およびデータ受信端末装置のシステム構成例を示す図である。
【符号の説明】
１０１，１１５，１２３  ＣＰＵ
１０２，１１６，１２４  ＲＯＭ
１０３，１１７，１２５  ＲＡＭ
１０４，１１８，１２６  表示装置
１０５，１１１，１１９  外部記憶装置
１０６，１１２，１２０  通信Ｉ／Ｆ
１０７，１１３，１２１  入力装置
１０８  インタフェース
１０９  カメラ
１１０  マイク
１１４，１２２  再生装置
１３２，１３３，１３４  伝送路
１３５  ＩＰネットワーク
２０１  送信側端末
２０２  受信側端末
２０３  ビデオカメラ
２０４  エンコーダ
２０５  階層化部
２０６  優先度付け処理部
２０７  バッファ
２０８  ＦＥＣ処理部
２０９  ＲＴＰパケット生成部
２１０    ＲＴＰポート
２１１  ビットレート制御部
２１２  階層エラー訂正優先度制御部
２１３  ＡＲＱ処理部
２１４  ＲＴＣＰパケット生成部
２１５  ネットワーク監視部
２１６  ＲＴＣＰパケット解析部
２１７  ＲＴＣＰポート
２１８  ＴＣＰ，ＲＴＣＰポート
２１９  ＩＰネットワーク
２２０  ＲＴＰポート
２２１  ＲＴＰパケット解析部
２２２  エラー監視部
２２３  バッファ
２２４  デコーダ
２２５  ＲＴＣＰポート
２２６  ＲＴＣＰパケット解析部
２２７  ＲＴＣＰパケット生成部
２２８  ＴＣＰ，ＲＴＣＰポート
２２９  ネットワーク監視部
２３０  エラー訂正制御部
２３１  階層選択制御部
８０９  ＰＣＩバス
８３２  ディスプレイ
８３３  ビデオカメラ
８３４  マイク
８３５  スピーカ
８３７  マウス
８３８  キーボード
８５０  データ送受信装置
８５１  コーデック
８５２  ネットワークインタフェース
８５３  入出力インタフェース
８５４  ＡＶインタフェース
８５５  ディスプレイインタフェース
８５６  ＣＰＵ
８５７  メモリ
８５８  ＨＤＤ
【図１】
0003757857.tif 000002
【図２】
0003757857.tif 000003
【図３】
0003757857.tif 000004
【図４】
0003757857.tif 000005
【図５】
0003757857.tif 000006
【図６】
0003757857.tif 000007
【図７】
0003757857.tif 000008
【図８】
0003757857.tif 000009
【図９】
0003757857.tif 000010
【図１０】
0003757857.tif 000011
【図１１】
0003757857.tif 000012
【図１２】
0003757857.tif 000013
【図１３】
0003757857.tif 000014
【図１４】
0003757857.tif 000015
【図１５】
0003757857.tif 000016
【図１６】
0003757857.tif 000017