(57)【要約】【課題】ホスト側制御部の状態によらず、ストリーミングの品質を保つ。【解決手段】ＲＴＰ処理回路１００のＲＴＰ送信処理部１１０は、エンコーダ３１０から送信のための情報データが入力すると起動し、トランスポートストリームのパケット化処理を行なう。生成されたＲＴＰパケットは、ネットワークデバイス３３０を用いて送信する。このとき、送信に関する送信者情報を生成し、これを保持しておく。また、ＲＴＰ処理回路１００のＲＴＰ受信処理部１２０は、ネットワークデバイス３３０からＲＴＰパケットを受信すると、ＲＴＰパケットのデパケット化処理を行ない、再生されたトランスポートストリームをデコーダ３２０へ出力する。このとき、受信に関する受信者情報を生成し、これを保持しておく。ＲＴＣＰ処理手段２１０は、送信者情報と受信者情報を内部バス２２０経由で取得し、ＲＴＣＰパケットを生成してネットワークデバイス３３０より送信する。【選択図】        図１
2004180127.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続してパケットの送受信を行なうネットワークデバイスを有する通信装置において、
所定の周波数のクロック信号に基づいて時間を計時する計時手段と、
上位アプリケーションから情報データが入力されると、前記情報データをパケット化して前記ネットワークデバイスを用いて送信するとともに、前記パケットの送信時を含む送信者情報を保存する送信処理手段と、
前記ネットワークデバイスを介して所定のパケットが受信されると、前記計時手段を用いて前記パケットの受信時を含む受信者情報を生成して保存するとともに、前記パケットをデパケット化した所定の情報データを前記上位アプリケーションへ出力する受信処理手段と、
前記情報データの流れを制御するデータ制御手段とを具備することを特徴とする通信装置。
【請求項２】
所定の送信周期ごとに、前記送信処理手段に保存されている前記送信者情報及び前記受信処理手段に保存されている前記受信者情報を読み出し、前記送信者情報及び前記受信者情報に基づいて管理情報パケットを生成して前記ネットワークデバイスを用いて送信するとともに、他の通信装置の生成した前記管理パケットを取得する管理パケット処理手段をさらに具備することを特徴とする請求項１記載の通信装置。
【請求項３】
前記受信処理手段は、
前記パケットの受信ごとに前記計時手段により生成される前記パケットの受信時点を示す時間情報を記憶する記憶手段と、
連続的に生成された前記時間情報を用いて受信時の状況を調べる受信状況測定手段と、
を含むことを特徴とする請求項１記載の通信装置。
【請求項４】
前記受信処理手段は、
前記パケットに含まれる前記パケットの送信元によって計時された前記パケットの送信時点を示す送信時間情報と、前記パケット受信時に前記計時手段を用いて計時された前記パケットの受信時点を示す時間情報とを比較し、その差が所定の範囲を超えた場合に、前記送信時間情報に基づいて前記パケットの送信元の計時手段と同期するよう前記計時手段を補正する補正手段、
を含むことを特徴とする請求項１記載の通信装置。
【請求項５】
前記受信処理手段は、
初期化後に最初に受信した前記パケットに含まれる前記パケットの送信元によって計時された前記パケットの送信時点を示す送信時間情報を記憶する記憶手段と、
前記パケットの受信により前記計時手段による計時を開始させる計時開始手段と、
前記計時手段により生成される時間情報データに前記記憶手段に記憶された前記送信時間情報データを加える加算手段と、
を含み、
前記送信元の計時手段により生成された時間情報と同期する時間情報を生成する時間情報生成手段をさらに具備することを特徴とする請求項１記載の通信装置。
【請求項６】
ネットワークに接続してパケットの送信を行なうネットワークデバイスを有する送信装置において、
上位アプリケーションから情報データが入力されると、前記情報データをパケット化して前記ネットワークデバイスを用いて送信するとともに、前記パケット送信時の状況を示す送信者情報を保存する送信処理手段と、
前記情報データの流れを制御するデータ制御手段とを具備することを特徴とする送信装置。
【請求項７】
ネットワークに接続してパケットの送信処理を行なうネットワークデバイスを有する送信装置において、
上位アプリケーションから入力される情報データを前記パケットのペイロードとして一時保存するペイロード記憶手段と、
前記上位アプリケーションから供給された前記情報データに前記パケットに添付する所定の添付情報が含まれているか否かを検出する検出手段と、
前記添付情報を抽出して一時保存する添付情報記憶手段と、
前記検出手段により前記添付情報が検出された場合には、前記ペイロード記憶手段に前記添付情報を書き込む領域を確保する制御手段と、
前記制御手段により確保された前記添付情報を書き込む領域に前記添付情報記憶手段に記憶された前記添付情報を書き込む添付情報書き込み手段と、
を具備することを特徴とする送信装置。
【請求項８】
前記制御手段は、前記ペイロード記憶手段内に前記パケットの送信を制御するための送信制御情報を書き込む領域も確保すると共に、
前記検出手段による検出結果と前記ペイロード記憶手段に書き込まれる前記情報データの総量を監視し、送信条件が成立した場合には、前記送信制御情報を書き込む領域へ送信に必要な情報を書き込む送信制御情報書き込み手段をさらに具備することを特徴とする請求項７記載の送信装置。
【請求項９】
前記送信制御情報書き込み手段は、前記送信条件が成立した場合に前記送信制御情報として送信の実行を要求する送信要求情報を前記ペイロード記憶手段へ書き込むと共に、
前記送信制御情報を監視し、前記送信要求情報を検出した場合に前記送信制御情報に従って送信処理を実行する送信制御手段をさらに具備することを特徴とする請求項８記載の送信装置。
【請求項１０】
ネットワークに接続してパケットの受信処理を行なうネットワークデバイスを有する受信装置において、
所定の周波数のクロック信号に基づいて時間を計時する計時手段と、
前記ネットワークデバイスを介して所定のパケットが受信されると、前記計時手段を用いて前記パケット受信時を含む受信者情報を生成して保存するとともに、前記パケットをデパケット化した所定の情報データを前記上位アプリケーションへ出力する受信処理手段と、
前記情報データの流れを制御するデータ制御手段とを具備することを特徴とする受信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は通信装置及び送信装置並びに受信装置に関し、特にネットワークを介してストリーミングデータの送受信を行なう通信装置及び送信装置並びに受信装置に関する。
【０００２】
【従来の技術】
従来、動画像データや音声データ、補助データ等を含む映像データをネットワーク経由で転送し、リアルタイムで再生するストリーミングに適した伝送プロトコルがいくつか提唱されている。このうち、インターネット等のＩＰネットワークにおいて、リアルタイムに音声や動画を送信／受信するリアルタイム・トランスポート・アプリケーションを実現するトランスポートプロトコルとして、リアルタイム・トランスポート・プロトコル（ＲＴＰ：Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）がＲＦＣ１８８９で勧告されている。
【０００３】
ＲＴＰは、トランスポート層に位置し、一般にコネクションレス型のプロトコルであるＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）上で、ＲＴＰを制御するためのプロトコルであるリアルタイム・トランスポート・コントロール・プロトコル（ＲＴＣＰ：Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）とともに用いられる。ＲＴＰが音声・動画像データそのものを送受信するプロトコルであるのに対し、ＲＴＣＰは、伝送遅延や回線品質等をチェックしてＲＴＰを利用するアプリケーションにこうした情報を通知する機能を実現するためのプロトコルである。例えば、ＲＴＰデータの送信者から送られるＲＴＣＰパケットには、タイムスタンプ、送信ＲＴＰパケット数などの送信者レポート（ＳＲ：Ｓｅｎｄｅｒ  Ｒｅｐｏｒｔ）と、受信者レポート（ＲＲ：Ｒｅｃｅｉｖｅｒ  Ｒｅｐｏｒｔ）が格納される。また、ＲＴＰデータの受信者から送られるＲＴＣＰパケットには、ＲＴＰ損失率、損失ＲＴＰパケット数、到着時間間隔のジッタの平均値等のＲＲが格納されることになっている。このため、ＲＴＰデータの送信者はＲＴＰデータの送信の際に送信ＲＴＰパケット数等の送信者情報、ＲＴＰデータの受信者はＲＴＰデータの受信の際に損失ＲＴＰパケット数等の受信者情報を管理しておく必要がある。
【０００４】
従来、これらの情報を管理する必要があることなどから、ＲＴＰ／ＲＴＣＰの通信は、パーソナルコンピュータ等のホスト側プロセスによるソフトウェア処理で実現されていた。
【０００５】
また、データをより高速に処理するために、ＲＴＰのパケット化・デバケット化の処理をホスト側プロセスで行なわずに、例えばＰＣＩバスに接続するデータ通信用ハードウェア等の外部装置で行ない、ＲＴＣＰパケットをホスト側で送受信する通信装置がある（例えば、特許文献１参照）。
【０００６】
図２４は、従来の通信装置の構成図である。ここでは、送信側について説明する。従来の通信装置は、エンコーダ３１０によって生成されるデータは、ＲＴＰ処理部５００においてパケット化され、ネットワークデバイス３３０よりパケット送信される。ＲＴＰ処理部５００の処理機能はソフトウェアによって実現されており、ＣＰＵ等の制御装置がプログラムに従って処理を実行している。ＲＴＰパケット送信時にＲＴＰ情報管理データベース５０１に送信者情報を記憶しておき、ＲＴＣＰパケットの送信時刻になったら、この送信者情報に基づいてＲＴＣＰパケットを生成し、ネットワークデバイス３３０より送信する。
【０００７】
特許文献１に記載の通信装置は、さらに、ＲＴＰパケットの送受信をハードウェアで行なうＲＴＰカード６１０と接続する。ホスト側のＲＴＰ処理部５００は、ＲＴＰパケットの送信をどちらで行なうかを判定し、ＲＴＰ処理部５００で行なう場合は、上記の説明の手順を実行する。また、ＲＴＰカード６１０で行なう場合には、ＲＴＰカード６１０のＲＴＰ情報管理データベース６１１を更新しながら、ＲＴＰパケットを送信し、ＲＴＣＰパケットの送信時刻になったら、ＲＴＰ情報管理データベース６１１の内容をホスト側のＲＴＰ情報管理データベース５０１にコピーし、このデータベースから取得されＲＴＰ情報に基づいてＲＴＣＰパケットを生成し、ネットワークデバイス３３０より送信する。受信の場合は、これとは逆の経路でデパケット処理が行なわれる。
【０００８】
次に、ＲＴＰ処理部の詳細について説明する。図２５は、従来の通信装置のＲＴＰ処理部の構成図である。
ここで、ＭＰＥＧ−２トランスポートストリーム（以下、ＭＰＥＧ２−ＴＳ：ＭＰＥＧ２  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ  とする）をペイロードとするＲＴＰパケットは、ＲＴＰヘッダ中のＲＴＰタイムスタンプフィールドが、ＲＴＰペイロードとして格納しているＴＳパケット中のＰＣＲ（Ｐｒｏｇｒａｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ：プログラム時刻基準参照値）フィールドに同期している必要がある（ＲＦＣ２２５０）。
【０００９】
そこで、ＲＴＰ処理部は、ＭＰＥＧ−２エンコーダ３１１で生成されたＴＳパケットをエンコーダ・インタフェース（Ｉ／Ｆ）３１２より受け取ると、ＴＳヘッダチェック５０２においてＴＳパケットのヘッダをチェックし、ＰＣＲフィールドを検出するとこれをＰＣＲレジスタ５０４に格納し、ＴＳパケットを一時ＴＳバッファ５０５に格納する。パケット送信コントロール５０３は、入力したパケット数等を管理し、条件が整うと、パケット合成５０６に対してパケット送信要求を行なう。パケット合成５０６は、ＰＣＲレジスタ５０４の値よりＲＴＰタイムスタンプを生成し、ＴＳバッファ５０５内のＴＳパケットをＲＴＰペイロードとしてＲＴＰパケットを生成し、送信する。
【００１０】
【特許文献１】
特開２００１−３２０４０７号公報
【００１１】
【発明が解決しようとする課題】
しかし、従来の通信装置には、通信装置のホストの状態によっては、ストリーミングの品質を保つことが難しいという問題がある。また、一定のストリーミング品質を保持しなければならないため、回路規模をコンパクトにすることが難しいという問題がある。
【００１２】
図２４に示したように、従来の通信装置では、ＲＴＣＰ／ＲＴＰパケットのパケット／デパケット化処理は、ホスト側の制御装置がソフトウェアに従って処理を行なうことにより実現される。ハードウェアで送受信を行なうＲＴＰカード６１０が付加された場合でも、ＲＴＰ処理をハードウェアで行なうかソフトウェアで行なうかの判断はホスト側の制御装置により行なわれる。
【００１３】
このため、パケット到着時間測定や、リアルタイムデータの上位プロトコルへの受け渡しタイミングの生成などにおいて、ホストの処理状況あるいはネットワークの状態によっては、得られた時間について、十分な精度を保証できないことがある。一般に、ソフトウェアで時間測定を行なう場合、パケット到着によりホストに割り込みが入り、ホストは割り込み処理で時間測定を行なう。しかしながら、ホストの状態によっては、割り込み信号発生から割り込み処理までの間に遅延が生じることがある。受信処理において、パケットの到着時間測定とリアルタイムデータの上位プロトコルへの受け渡しタイミングの生成は、ＲＴＰタイムスタンプの精度で測定・生成されなければならない。ＭＰＥＧ２−ＴＳを対象とした場合、９０ＫＨｚ（約１１．１１μ秒）の精度が必要になる。このため、受信処理を全てソフトウェアで実現した場合、タイミング生成の処理が遅れる等して十分な精度を保証することができないことがある。
【００１４】
このように、到着時刻の測定時刻の精度を欠けば、ネットワーク上のＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を正確に見積もることができず、正しく情報を反映し、ネットワーク状況の改善を行なうことができない。
【００１５】
また、受信側通信装置は、送信側通信装置がＲＴＰパケットのヘッダに設定したＲＴＰタイムスタンプを参照して、上位プロトコルへデータの引き渡しタイミングを制御する。すなわち、受信したＲＴＰパケットは、一旦バッファに保存され、そのＲＴＰパケットのＲＴＰタイムスタンプにジッタを加算した時間になった時点で上位プロトコルへ引き渡す。このため、送信側と受信側の通信装置でタイマの同期をとる必要がある。しかしながら、上記の説明のように送信側、受信側ともにタイミング生成の精度が十分保証されない状態であるため、タイマの同期をとることも難しいという問題がある。例えば、受信側のタイマに対して送信側のタイマの進みが遅い場合、パケットの受信速度に対して上位プロトコルへの送信速度が低下し、バッファのオーバーフローが生じる。
【００１６】
このように、到着時刻の測定時刻が精度に欠ける場合、あるいは、ＲＴＰタイムスタンプが同期していないような場合、上位プロトコルへのデータ引き渡しタイミングが正確に生成できない。例えば、上位プロトコルがデコーダの場合、デコーダのバッファサイズが充分でないと、デコーダでの再生タイミングは、ＲＴＰ処理部からデコーダへのデータ受け渡しタイミングに大きく左右されることとなり、ストリームデータ再生の品質に大きく影響を与える。また、デコーダのバッファサイズに余裕を持たせなければならず、回路上無駄が生じる。
【００１７】
一方、送信側の通信装置においては、ＲＴＰタイムスタンプとＰＣＲフィールドを同期させるために、上位プロトコルより受け渡されたＴＳパケットをバッファに格納し、そのＰＣＲフィールドをレジスタで管理している。このため、ＴＳバッファ内で管理できるＴＳパケット数はＰＣＲレジスタの数に制限される。しかしながら、上位プロトコルから受け渡されるデータ量に対するＰＣＲフィールドを含むＴＳパケットの割合は、上位プロトコルの状況に依存するため、ＲＴＰ処理部の設計段階において正確に見積もることは難しい。このため、ＰＣＲレジスタ及びＴＳバッファに設計余裕を持たせなければならず、回路上無駄が生じる。
【００１８】
本発明はこのような点に鑑みてなされたものであり、ホスト側制御部の状態によらず、ストリーミングの品質を保つことが可能な通信装置を提供することを目的とする。また、本発明の他の目的は、さらに、回路規模を小さくすることが可能な通信装置を提供することにある。
【００１９】
【課題を解決するための手段】
本発明では上記課題を解決するために、ネットワークに接続してパケットの送受信を行なうネットワークデバイスを有する通信装置において、所定の周波数のクロック信号に基づいて時間を計時する計時手段と、上位アプリケーションから情報データが入力されると、前記情報データをパケット化して前記ネットワークデバイスを用いて送信するとともに、前記パケットの送信時を含む送信者情報を保存する送信処理手段と、前記ネットワークデバイスを介して所定のパケットが受信されると、前記計時手段を用いて前記パケットの受信時を含む受信者情報を生成して保存するとともに、前記パケットをデパケット化した所定の情報データを前記上位アプリケーションへ出力する受信処理手段と、前記情報データの流れを制御するデータ制御手段とを具備することを特徴とする通信装置、が提供される。
【００２０】
このような通信装置では、データ制御手段により情報データの流れが制御されている。データ制御手段は、送信を実行する場合には、情報データを送信処理手段へ引き渡す。送信処理手段は、送信のための情報データが入力すると、情報データのパケット化処理を行ない、生成された送信パケットは、ネットワークデバイスを用いて送信する。このとき、パケットの送信時を含む送信者情報を生成し、これを保存しておく。また、受信処理手段は、ネットワークデバイスからパケットを受信すると、計時手段を用いてパケットの受信時を含む受信者情報を生成し、これを保存しておく。また、受信パケットのデパケット化処理を行ない、再生された情報データを上位アプリケーションへ出力する。
【００２１】
また、上記課題を解決するために、ネットワークに接続してパケットの送信処理を行なうネットワークデバイスを有する送信装置において、上位アプリケーションから入力される情報データを前記パケットのペイロードとして一時保存するペイロード記憶手段と、前記上位アプリケーションから供給された前記情報データに前記パケットに添付する所定の添付情報が含まれているか否かを検出する検出手段と、前記添付情報を抽出して一時保存する添付情報記憶手段と、前記検出手段により前記添付情報が検出された場合には、前記ペイロード記憶手段に前記添付情報を書き込む領域を確保する制御手段と、前記制御手段により確保された前記添付情報を書き込む領域に前記添付情報記憶手段に記憶された前記添付情報を書き込む添付情報書き込み手段と、を具備することを特徴とする送信装置、が提供される。
【００２２】
このような送信装置では、上位アプリケーションから供給された情報データに含まれる所定の添付情報に基づいて、パケットを生成する。情報データは、所定の条件に達するまで、ペイロードとしてペイロード記憶手段に保存される。検出手段は、上位アプリケーションから供給された情報データに添付情報となる情報が含まれているかどうかを検出し、存在すれば添付情報記憶手段にこれを一時保存する。制御手段は、添付情報が存在する場合には、添付情報を書き込む領域をペイロード記憶手段に確保し、確保された次の領域から情報データの書き込みを行なう。添付情報書き込み手段は、情報データの書き込みが終了後、添付情報をペイロード記憶手段の確保された領域に書き込む。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態の通信装置全体について説明し、その後、実施の形態の具体的な内容を説明する。
【００２４】
図１は、本発明の実施の形態である通信装置の構成図である。本発明は、例えば、ＲＴＰ／ＲＴＣＰを用いて映像データのストリーミング転送を行なう通信システムの通信装置に適用される。
【００２５】
本発明の通信装置は、映像データを符号化するエンコーダ３１０及び復号するデコーダ３２０に接続し、ＲＴＰのパケット化及びデパケット化処理を行なうＲＴＰ処理回路１００、装置全体を制御するとともにＲＴＰ処理回路１００により生成される情報の管理とＲＴＣＰパケットの生成と送受信を行なうＲＴＣＰ処理手段２１０を備えたホスト側制御部２００、及びネットワークに接続してＲＴＰパケットの送受信処理を行なうネットワークデバイス３３０を有する。
【００２６】
ＲＴＰ処理回路１００は、ＲＴＰパケットを送信するＲＴＰ送信処理部１１０と、ＲＴＰパケットを受信するＲＴＰ受信処理部１２０と、時間を計時するタイマ１３０とを有し、ハードウェアで構成されている。
【００２７】
ＲＴＰ送信処理部１１０は、エンコーダ３１０から入力したトランスポートストリームにＲＴＰヘッダを付与し、ＲＴＰパケットを生成するパケット化処理を行なう。生成されたＲＴＰパケットは、ネットワークデバイス３３０に渡す。ＲＴＰヘッダ処理には、ＲＴＰタイムスタンプ処理、ＲＴＰシーケンス番号処理等がある。このとき、送信ＲＴＰパケット数と送信ＲＴＰバイト数等を送信者情報として保存しておく。
【００２８】
ＲＴＰ受信処理部１２０は、ネットワークデバイス３３０より入力したＲＴＰパケットのＲＴＰヘッダをチェック・処理し、ペイロード部分を分離するデパケット化処理を行なう。デパケット化されたペイロード部は、デコーダ３２０へ出力する。このとき、タイマ１３０を用いて到着時間を測定して到着時間のジッタを算出するとともに、到着時間のジッタ情報に加え、受信ＲＴＰパケット数、損失ＲＴＰパケット数等を受信者情報として保存しておく。
【００２９】
タイマ１３０は、映像データの転送に必要な周波数のクロックを生成する。このクロックは、例えば、必要とする周波数より高い周波数を持つクロックをプログラマブルカウンタ等により分周して生成する。
【００３０】
ホスト側制御部２００は、装置全体を制御するとともに、内部バス２２０を介してＲＴＰ処理回路１００に接続し、ＲＴＣＰ処理を行なうＲＴＣＰ処理手段２１０を有する。
【００３１】
ＲＴＣＰ処理手段２１０は、ネットワークの状況を表す管理パケットであるＲＴＣＰパケットの送受信を行なう管理パケット処理手段である。所定のＲＴＣＰ送信時刻になると、ＲＴＰ処理回路１００の生成する送信者情報及び受信者情報を内部バス２２０経由で読み出し、ＲＴＣＰパケットを生成し、ネットワークデバイス３３０より送信する。また、ネットワークデバイス３３０より入力したＲＴＣＰパケットを受信し、その分析を行なう。ＲＴＣＰ処理手段２１０は、ソフトウェアにより構成される。
【００３２】
エンコーダ３１０及びデコーダ３２０は、ＲＴＰ処理回路１００の上位アプリケーションであり、図示しない映像データ等の実時間データ入出力部から発生する情報の符号化／復号処理を行なう。エンコーダ３１０は、入力する実時間データを符号化し、ＲＴＰパケットのペイロードとなるトランスポートストリームに変換し、ＲＴＰ処理回路１００へ出力する。デコーダ３２０は、ＲＴＰ処理回路１００から出力されるトランスポートストリームを実時間データへ復号する。
【００３３】
ネットワークデバイス３３０は、ＲＴＰ処理回路１００及びＲＴＰ処理手段２１０の下位アプリケーションで、ＲＴＰパケット及びＲＴＣＰパケットの送受信処理を行なう。
【００３４】
このような構成の通信装置の動作について説明する。
エンコーダ３１０によって生成されたトランスポートストリームが、ＲＴＰ処理回路１００に入力すると、ＲＴＰ送信処理部１１０が起動される。ＲＴＰ送信処理部１１０では、トランスポートストリームにＲＴＰヘッダを付加してＲＴＰパケットを生成し、ネットワークデバイス３３０より送信する。このとき、送信に関する送信者情報を生成し、ＲＴＰ送信処理部１１０内で保持する。
【００３５】
ネットワークデバイス３３０よりＲＴＰパケットが入力すると、ＲＴＰ受信処理部１２０が起動し、ＲＴＰパケットのＲＴＰヘッダをチェック・処理し、ペイロード部を分離し、分離したペイロード部のトランスポートストリームをデコーダ３２０に出力する。このとき、受信に関する受信者情報を生成し、ＲＴＰ受信処理部１２０内で保持する。
【００３６】
また、ＲＴＣＰ送信時刻になると、ホスト側制御部２００は、ＲＴＣＰ処理手段２１０を起動させる。ＲＴＣＰ処理手段２１０は、内部バス２２０経由でＲＴＰ処理回路１００に保持されている送信者情報と受信者情報とを読み出し、読み出した情報に基づいて、ＲＴＣＰパケットの送信者レポートと受信者レポートとを生成し、ＲＴＣＰパケットに付加する。生成されたＲＴＣＰパケットは、ネットワークデバイス３３０より送信される。また、ネットワークデバイス３３０経由でＲＴＣＰパケットを入力すると、受信したＲＴＣＰパケットの送信者レポートと受信者レポートを取得し、これを分析する。分析結果は、ネットワークの改善に適用される。
【００３７】
次に、ＲＴＰ処理回路１００のＲＴＰ送信処理部１１０の構成について説明し、続いてＲＴＰ受信処理部１２０について説明する。
ＲＴＰ送信処理部１１０は、映像／音声データ（以下、Ａ／Ｖデータとする）にＲＴＰヘッダを付与してＲＴＰパケットを生成し、送信制御を行なう。以下、ＲＴＰ送信処理部１１０について図面を参照して説明する。図２は、ＲＴＰパケットの構成図、図３は、本発明の実施の形態である通信装置のＲＴＰ送信処理部の構成図である。
【００３８】
ＲＴＰパケットは、図２に示したように、ＲＴＰヘッダ４１０とＲＴＰペイロード４２０とから構成される。ＲＴＰヘッダ４１０には、バージョン情報（Ｖ：Ｖｅｒｓｉｏｎ）、パディング（Ｐ：Ｐａｄｄｉｎｇ）、拡張ヘッダ（Ｘ：ｅｘｔｅｎｓｉｏｎ）の有無、送信元（ＣＳＣＲ：Ｃｏｎｔｒｉｂｕｔｉｎｇ  ｓｏｕｒｃｅ）数、マーカ情報（Ｍ：Ｍａｒｋｅｒ）、ペイロードタイプ、シーケンス番号、ＲＴＰタイムスタンプ、ＳＳＲＣ（同期送信元）識別子、及びＣＳＣＲ（寄与送信元）識別子の各フィールドが設けられている。ＲＴＰペイロード４２０は、エンコーダ３１０から入力したＭＰＥＧ２−ＴＳ等のトランスポートストリームが格納されるフィールドである。
【００３９】
このようなＲＴＰパケットを生成するＲＴＰ送信処理部１１０は、図３に示したように、エンコーダ３１０から入力したＡ／ＶデータをチェックするＡ／Ｖデータチェッカ１１１、Ａ／Ｖデータを蓄積する送信バッファ１１２、パケット送信を制御するパケット送信処理手段１１３、送信者情報を保持する送信者情報レジスタ１１４及びＲＴＰヘッダを管理するＲＴＰヘッダレジスタ１１５を有する。
【００４０】
Ａ／Ｖデータチェッカ１１１は、エンコーダ３１０から入力されたＡ／Ｖデータの正当性をチェックするとともに、Ａ／Ｖデータ中の時間情報を含むＰＣＲフィールドを抽出してＲＴＰタイムスタンプ値を更新する。また、データサイズ等の情報をパケット送信処理手段１１３へ伝える。チェックされたＡ／Ｖデータ及びＲＴＰタイムスタンプ情報は、送信バッファ１１２に蓄積される。ＲＴＰヘッダレジスタ１１５には、ＲＴＰタイムスタンプを除く固定のＲＴＰヘッダ情報が登録されており、パケット送信処理手段１１３は、送信条件が成立すると、ＲＴＰヘッダレジスタ１１５に格納されているＲＴＰヘッダ情報に基づいて、送信バッファ１１２に蓄積されたＡ／ＶデータにＲＴＰヘッダを付加し、送信パケットを生成する。このとき、ＲＴＰタイムスタンプは、抽出されたＰＣＲフィールドの値に応じて設定される。このようにして生成された送信パケットは、ネットワークデバイスに対して送信される。また、送信の際には、送信パケット数、送信オクテット数等、ＲＴＣＰパケットの送信者レポート・フィールドに必要となる送信者情報を生成し、送信者情報レジスタ１１４へ格納しておく。
【００４１】
ＲＴＰ受信処理部１２０について説明する。図４は、本発明の実施の形態である通信装置のＲＴＰ受信処理部の構成図である。
ＲＴＰ受信処理部１２０は、ＲＴＰパケットのペイロード部が格納される受信バッファ１２１、パケットに関する情報を格納するキュー１２２及び受信に関する受信者情報を格納する受信者情報レジスタ１２３の記憶部と、ネットワークデバイスから入力したＲＴＰパケットのＲＴＰヘッダをチェック・分離処理するＲＴＰヘッダチェッカ１２４、受信処理を制御する受信制御手段１２５、及びペイロード部をデコーダへ出力するデコーダＩ／Ｆ１２６の処理部と、を有する。また、受信制御手段１２５動作時に、ＲＴＰ処理用のタイマ１３０が参照される。
【００４２】
まず、記憶部について説明し、続いて処理部の動作を説明する。
受信バッファ１２１は、ＲＴＰヘッダチェッカ１２４による検査を通過したＲＴＰパケットのペイロード部を格納する。
【００４３】
キュー１２２は、インデックスで管理される複数のパケット情報を格納する領域が設けられており、それぞれの領域にはＲＴＰヘッダ、受信バッファ１２１に格納されたペイロードの先頭アドレス及びデータ長についての情報が格納されている。
【００４４】
受信者情報レジスタ１２３には、受信ＲＴＰパケット数、ネットワークジッタの揺らぎ情報、損失ＲＴＰパケット数等、ＲＴＣＰパケットの受信者レポート・フィールドに必要となる情報が格納される。
【００４５】
ＲＴＰヘッダチェッカ１２４は、ネットワークデバイスから受け取ったパケットがＲＴＰパケットであるかどうかを識別するヘッダチェックを行なう。そして、ＲＴＰパケットと識別されたパケットをＲＴＰヘッダとＲＴＰペイロードに分離し、受信制御手段１２５へ渡す。
【００４６】
受信制御手段１２５は、キュー１２２を用いてパケット順を管理する管理手段１２５１と、タイマ１３０を用いてネットワークジッタの揺らぎを測定する測定手段１２５２、及びキューの情報とタイマ１３０を用いてデコーダへの出力タイミングを計るタイミング生成手段１２５３と、を有する。
【００４７】
管理手段１２５１では、ＲＴＰヘッダチェッカ１２４より受け取ったペイロード部を受信バッファ１２１へ格納し、その先頭アドレスとデータ長をヘッダとともにキュー１２２へ登録する。このとき、登録される情報は、ＲＴＰパケットのシーケンス番号を参照し、対応するインデックスの領域に格納される。すなわち、デコードへ出力された最終パケットの次のシーケンス番号を持つパケットの情報からシーケンス番号に従って、順にインデックス番号が付与される。このキュー１２２を用いた管理により、ネットワークの影響で到着順が変化した場合であってもパケットを適切に並び替えることや、重複して受信したパケットを破棄することができる。また、パケットデータを受け取るごとにインクリメントされるカウンタを設けて受信ＲＴＰパケット数を算出し、受信者情報レジスタ１２３へ格納する。
【００４８】
測定手段１２５２は、ＲＴＰ処理用のタイマ１３０の値と、ＲＴＰパケットのＲＴＰタイムスタンプを用いてネットワークジッタの揺らぎ計算を行ない、結果を受信者情報レジスタ１２３へ格納する。
【００４９】
タイミング生成手段１２５３は、キュー１２２に格納されたパケットのうち最もシーケンス番号が小さいパケットのＲＴＰタイムスタンプ値を取得し、ＲＴＰ処理用のタイマ１３０の値と比較し、一致したときに正規のタイミングとしてデコーダＩ／Ｆ１２６に対して受信バッファ１２１からのデータ読み出し命令を発行する。このとき、読み出し要求を行なったパケットのシーケンス番号を保持しておき、前回と現在送信要求を行なっているパケットの送信番号とを比較することにより、パケットのロス状況を分析する。パケットロスを検出した場合、受信者情報レジスタ１２３の該当する領域を更新する。
【００５０】
デコーダＩ／Ｆ１２６は、受信制御手段１２５から発行されたデータ読み出し命令に従って、指定されたアドレスから指定されたデータ分のトランスポートストリームを受信バッファ１２１から読み出し、デコーダへ送信する。
【００５１】
ここで、ネットワークジッタの揺らぎ計算について説明する。図５は、ＲＴＰ受信処理部による揺らぎ計算の手順を示している。測定手段１２５２には、前回受け取ったＲＴＰタイムスタンプを保持するＴｔｘｏｌｄレジスタと、そのときの受信時間Ｔｒｘｏｌｄレジスタと、今回受信したＲＴＰタイムスタンプを保持するＴｔｘｎｅｗレジスタと、そのときの受信時間Ｔｒｘｎｅｗが設けられている。ＲＴＰパケットを受信すると、ＲＴＰヘッダに含まれるＲＴＰタイムスタンプをＴｔｘｎｅｗレジスタにコピーするとともに、ＲＴＰ処理用のタイマ１３０を用いて受信時間をＴｒｘｎｅｗレジスタにコピーする。前回受信時の情報は、ＴｔｘｏｌｄレジスタとＴｒｘｏｌｄレジスタに保持されているとする。これらを用いて、例えば、
【００５２】
【数１】
（Ｔｔｘｏｌｄ−Ｔｒｘｏｌｄ）−（Ｔｔｘｎｅｗ−Ｔｒｘｎｅｗ）・・・（１）
を算出することにより、ＲＴＰの規格書（ＲＦＣ）に記述される揺らぎ計算を行なうことができる。
【００５３】
このように、ホスト側制御部２００とは別に設けられたＲＴＰ処理回路１００がＲＴＰパケットの処理を自立して実行する。このため、ホスト側制御部２００の負荷状況に影響されずにストリーミング処理を行なう通信装置が可能となる。
【００５４】
特に、受信側において、重複パケットの検出、パケットの並び替え、デコーダへの転送タイミングの決定がハードウェアにより実現され、タイミング生成及びネットワークジッタの揺らぎ計算をシステムクロックの精度に保つことができるようになるため、ストリーミングの安定性、品質を損なわず、詳細なレポートを得ることができる。さらに、デコーダにＡ／Ｖデータを送信するタイミングが正確であるため、予めデコーダにデータを渡しておく必要が無く、バッファ容量の少ないデコーダにおいても安定して受信データを再生することができる。
【００５５】
上記の説明の通信装置は、送信・受信の両機能を備えているが、どちらかの単機能に絞り、コンパクト化を図ることも考えられる。例えば、受像機の場合、受信処理部のみが具備されていればよい。また、主としてネットワークの改善に用いられるＲＴＣＰ処理手段を省く構成も考えられる。
【００５６】
また、上記の説明のように、受信側のＲＴＰ受信処理部において、受信データをデコーダに出力するタイミングは、受信パケットのＲＴＰヘッダに付与されたＲＴＰタイムスタンプを参照して生成される。このため、送信側の通信装置が用いるタイマと受信側の通信装置が用いるタイマとの間で同期が取れている必要がある。しかしながら、ＲＴＰタイマは装置ごとに設けられていることから、ずれが生じてくる。例えば、送信側のタイマが受信側のタイマに比べて進みが速い場合、受信側の通信装置のＲＴＰ受信処理部は、送信側のタイムスタンプにジッタを加えた時間が経過するまでの待ち時間が多くなる。このため、大量のＲＴＰパケットを内部に保存しなければならなくなる。また、送信側のタイマが受信側のタイマに比べて進みが遅い場合、受信パケットのタイムスタンプにジッタを加えた時間が、受信側ＲＴＰタイマの現在の時間より前になるという関係が成立することがある。この場合にも、デコーダへのデータ出力に遅延が発生する。さらに、この遅延は時間とともに増加する。このように、タイマの同期がずれている場合、デコーダへの送信速度の低下が発生し、ストリーミングの品質低下を招くことになる。
【００５７】
そこで、本発明では、第２の実施の形態としてＲＴＰ受信処理部にＲＴＰタイマの同期をとる手段を設ける。図６は、本発明の第２の実施の形態である通信装置の構成図である。
【００５８】
送信側通信装置１０１は、図３に示したＲＴＰ送信処理部を備え、送信側ＲＴＰタイマ１３１を具備し、送信側ＲＴＰタイマ１３１の計時情報に基づいて生成されたＲＴＰタイムスタンプをＲＴＰパケット４００のＲＴＰヘッダに設定し、受信側通信装置１０２へ送信する。
【００５９】
受信側通信装置１０２は、図４に示したＲＴＰ受信処理部を備え、ＲＴＰ受信処理部内に補正手段１２７を具備する。ＲＴＰ受信処理部では、受信したＲＴＰパケット４００のペイロード部を受信バッファ１２１に格納し、ＲＴＰパケット４００内の送信タイムスタンプにジッタを加えた時間を受信側ＲＴＰタイマ１３２で計り、時間になると受信バッファ１２１に格納されたペイロードをデコーダへ出力する。
【００６０】
補正手段１２７は、ＲＴＰパケット４００を抽出し、受信したＲＴＰパケット４００の送信タイムスタンプ値と受信側ＲＴＰタイマ１３２の値との差分をとり、この差分が設定値より大きくなった場合、受信側ＲＴＰタイマ１３２を受信したＲＴＰタイムスタンプ値に再設定する。
【００６１】
このように、本発明の第２の実施の形態では、送信側ＲＴＰタイマ１３１と受信側ＲＴＰタイマ１３２との同期がずれた場合に自動的に補正される。この結果、送信側と受信側でＲＴＰタイマの同期を確保することができ、ストリーミングの安定性、品質を保つことが可能となる。
【００６２】
さらに、一般に、初期状態からの立ち上げ時には、送信側の通信装置と受信側の通信装置でＲＴＰタイマの同期をとるための処理が行なわれている。本発明の通信装置では、ＲＴＰ受信処理部においてパケット受信の時間を高い精度で測定できることから、これを利用して、簡易的に受信側のＲＴＰタイマを設定することができる。図７は、本発明の第３の実施の形態である通信装置のＲＴＰ受信処理部の構成図である。図４と同じものには同じ番号を付し、説明は省略する。
【００６３】
第３の実施の形態である通信装置のＲＴＰ受信処理部は、図４に示したＲＴＰ受信処理部に、さらに時間情報生成手段１２８を有する。
ここで、受信側ＲＴＰタイマ１３２は、所定のクロックの信号を発生させるクロック発振器１３２１と、そのクロック信号を分周して所望のクロックを発生させる分周器１３２２とから成る。
【００６４】
時間情報生成手段１２８は、タイマの初期化動作を行なうタイマ初期化手段１２８１と、受信したパケットのタイムスタンプを保持するタイムスタンプ初期値レジスタ１２８２及びペイロードタイプを保持するペイロード情報レジスタ１２８３と、を有する。
【００６５】
初期化時、最初にＲＴＰヘッダチェッカ１２４のチェックをクリアしたＲＴＰパケット４０１が、時間情報生成手段１２８に入力される。タイマ初期化手段１２８１は、最初のＲＴＰヘッダに含まれるＲＴＰタイムスタンプをタイムスタンプ初期値レジスタ１２８２に、ペイロードタイプをペイロード情報レジスタ１２８３に格納し、分周器１３２２を起動させる。分周器１３２２は、ペイロード情報を参照し、クロック発振器１３２１の出力信号を分周してペイロードタイプに適した周波数で時間情報、例えば、カウンタ値を出力する。この分周器１３２２の出力値とタイムスタンプ初期値レジスタ１２８２に格納された初期値とを加算器１２８４で加算すれば、この値は、送信側ＲＴＰタイムスタンプに初期受信パケットのネットワーク遅延を加えた値となる。ネットワーク遅延を微小とすれば、送信側タイムスタンプにほぼ等しい値を得ることができる。
【００６６】
ＲＴＰ受信処理部は、ＲＴＰパケット受信後遅延なく起動されるため、最初のＲＴＰパケットのＲＴＰタイムスタンプを用いて受信側のタイマを送信側と同期させることが可能である。
【００６７】
以上の説明のように、本発明では、ホスト側の制御部によるソフトウェアでサポートされていたＲＴＰ送信処理及び受信処理を、独立して動作可能なハードウェアによってサポートする。また、ホスト側の処理は、リアルタイムで処理する必要のない、ＲＴＣＰパケット処理に限定し、負担を軽減する。
【００６８】
これにより、ホスト側の負荷の状況によらず、一定のストリーミング品質を保つことが可能となる。特に、受信処理において、パケット到着時間、ネットワーク遅延等のネットワーク状況の測定をシステムクロックの精度で測定することができるようになる他、デコードタイミングもシステムクロックの精度で保つことができる。この結果、デコーダに保持させるバッファ量を削減できる等、回路規模をコンパクトにすることが可能である。
【００６９】
さらに、パケット生成時、ペイロードとなるトランスポートストリーム中に含まれる所定の情報データに基づいて生成される情報をパケットに添付しなければならないケースが発生し、このための処理機構を設けなければならないことがある。例えば、ＭＰＥＧ２−ＴＳをペイロードとするＲＴＰパケット処理を行なう通信装置では、送信処理におけるＲＴＰタイムスタンプとＰＣＲフィールドとの同期のためにＰＣＲフィールドを格納するレジスタとパケットを保存するバッファとが設けられている。このバッファ量は、設計余裕を持って用意されており、これを削減することにより、回路規模をさらにコンパクトにすることができる。
【００７０】
そこで、本発明では、レジスタで管理されていたパケットに添付される添付情報を、トランスポートストリームを格納する記憶領域と同一の記憶領域で管理することにより、レジスタを削除する。
【００７１】
以下、実施の形態としてＭＰＥＧ２−ＴＳのＰＣＲフィールドと、ＲＴＰパケットのＲＴＰタイムスタンプを同期させるために、レジスタで管理されていたＰＣＲフィールド値をパケットと同一の記憶領域で管理する場合について説明する。まず、第４の実施の形態として、ＰＣＲフィールドとパケットを同一の記憶領域で管理する通信装置について説明する。図８は、本発明の第４の実施の形態である通信装置のＲＴＰ送信処理部の構成図である。図１、図３と同じものには同じ番号を付し、説明は省略する。
【００７２】
図８に示すＲＴＰ送信処理部は、エンコーダより入力するＭＰＥＧ２−ＴＳを入力し、検査後にＴＳバッファ１１２ａへ格納するＡ／Ｖデータチェッカ１１１、ＴＳデータとＰＣＲ値を格納するＴＳバッファ１１２ａ及びＴＳバッファ１１２ａに設定された情報データにＲＴＰヘッダを付与して送信するパケット送信処理手段１１３を有する。
【００７３】
Ａ／Ｖデータチェッカ１１１は、ＴＳヘッダをチェックするＴＳヘッダチェッカ１１１１、ＴＳのデータ部のバッファへの書き込みを制御するＴＳデータコントローラ１１１２、ＰＣＲデータのバッファへの書き込みを制御するＰＣＲデータコントローラ１１１３及びＴＳバッファ１１２ａへのデータ書き込みを選択するセレクタ１１１４を有する。
【００７４】
ＴＳヘッダチェッカ１１１１は、入力するＭＰＥＧ２−ＴＳの正当性をチェックするとともに、ＴＳパケットのヘッダをチェックし、ＰＣＲフィールドを検出すると、その値をＰＣＲデータコントローラ１１１３のＰＣＲテンポラリレジスタに書き込む。また、チェックを通過したＴＳパケットデータは、ＴＳデータコントローラ１１１２のＴＳテンポラリレジスタに書き込む。また、ＴＳパケットのデータ長等、ＴＳバッファ１１２ａに格納されるＴＳパケットの境界を管理するために参照される情報をパケット送信処理手段１１３へ伝える。
【００７５】
ＴＳデータコントローラ１１１２は、ＴＳデータを一時保存するテンポラリレジスタと、ＴＳバッファ１１２ａへの書き込みを制御するコントローラとを備えている。コントローラは、ＴＳヘッダチェッカ１１１１によってＴＳテンポラリレジスタに一旦バッファリングされたＴＳパケットデータをＴＳバッファ１１２ａに書き込む。
【００７６】
ＰＣＲデータコントローラ１１１３は、同様に、ＰＣＲデータを一時保存するテンポラリレジスタと、ＴＳバッファ１１２ａへの書き込みを制御するコントローラとを備えている。コントローラは、ＴＳバッファ１１２ａの所定の位置にＰＣＲデータを書き込む。
【００７７】
セレクタ１１１４は、ＴＳデータコントローラ１１１２あるいはＰＣＲデータコントローラ１１１３からの書き込み要求のうちいずれかを選択する。
ＴＳバッファ１１２ａは、デュアルポートＲＡＭで構成されており、ＲＴＰペイロードとなるＴＳパケットと、ＰＣＲ値を保持する。
【００７８】
パケット送信処理手段１１３は、パケット送信のタイミングを計るパケット送信コントローラ１１３１及びＴＳバッファ１１２ａのＭＰＥＧ２−ＴＳにＲＴＰパケットを付加して送信するパケット合成１１３２、を有する。図８では、図３に示した送信者情報レジスタ１１４及びＲＴＰヘッダレジスタ１１５は省略している。
【００７９】
パケット送信コントローラ１１３１は、ＴＳヘッダチェッカ１１１１から取得した情報に基づいて、ＴＳバッファ１１２ａのＴＳパケットデータをＲＴＰペイロードにマッピングするときの境界を管理し、条件が整うとパケット合成１１３２に対してＲＴＰパケットの送信要求を行なう。例えば、パケット送信要求は、ＴＳバッファ１１２ａからの読み出し開始アドレス、読み出しデータ長等とともに出される。パケット合成１１３２は、指定された領域のＰＳパケットデータをＴＳバッファ１１２ａから読み出し、ＲＴＰヘッダを付与してＲＴＰパケットを生成し、ネットワークデバイスを用いて送信する。
【００８０】
ここで、ＰＣＲフィールドとＲＴＰタイムスタンプとを同期させるためには、以下に示すルールを満たすことが要求される。
（１）ひとつのペイロード内にＰＣＲフィールドを保持するＴＳパケットが複数存在してはいけない。
【００８１】
（２）ひとつのペイロード内にＰＣＲフィールドを保持するＴＳパケットがなくても良い。
（３）ＰＣＲフィールドを持つＴＳパケットは、ＲＴＰペイロードの先頭に置く。
【００８２】
（４）ＲＴＰペイロードにＰＣＲフィールドを含むＴＳパケットが存在しないときのＲＴＰタイムスタンプは、直前のＲＴＰパケットのＲＴＰタイムスタンプを適用する。
【００８３】
このようなルールに従って、ＴＳバッファ１１２ａにＴＳパケットが並べられる。以下、ＴＳデータコントローラ１１１２及びＰＣＲデータコントローラ１１１３によるバッファリングと書き込み処理について、図面を参照して説明する。図９はＴＳパケットがＲＴＰペイロード先頭にマッピングされる場合の処理手順を示した図、図１０はＴＳパケットがＲＴＰペイロード先頭にマッピングされない場合の処理手順を示した図である。
【００８４】
ＴＳヘッダチェッカ１１１１により、ＴＳテンポラリレジスタ１１１２ａに、チェックを通過したＴＳパケットデータが書き込まれる。また、ＴＳパケットにＰＣＲフィールドが含まれる場合、ＰＣＲテンポラリレジスタ１１１３ａにＰＣＲデータが書き込まれる。
【００８５】
入力したＴＳパケットがＰＣＲフィールドを含む場合、ルール（３）が適用され、ＲＴＰペイロードの先頭にマッピングされる。また、前回受信したＴＳパケットでＲＴＰペイロードが終了していた場合にも先頭にマッピングされる。ＴＳパケットがＲＴＰペイロードの先頭にマッピングされる場合には、図９に示した処理が実行される。図９の例では、これまでに、ＴＳバッファ１１２ａにはＰＣＲフィールド１１２１とＲＴＰペイロード１１２２を構成するＴＳパケットが書き込まれているとする。ＴＳデータコントローラ１１１２のコントローラ１１１２ｂは、ＴＳテンポラリレジスタ１１１２ａにＴＳパケットの先頭領域が入力されると、そこにＰＣＲフィールドが含まれているかどうかを判定する。含まれている場合、ＴＳバッファ１１２ａの書き込みアドレス（ＲＴＰペイロード１１２２の次のアドレス）からＰＣＲフィールド１１２３分のオフセットを加えたアドレスからデータの書き込みを開始し、入力したＴＳパケットデータを順次書き込む。ＴＳパケット１１２４の書き込みが終了すると、ＰＣＲデータコントローラ１１１３のコントローラ１１１３ｂが、ＰＣＲテンポラリレジスタ１１１３ａのＰＣＲ値をＰＣＲフィールド１１２３へ書き込む。
【００８６】
このように、ＴＳバッファ１１２ａ内では、同一のＲＴＰパケットのペイロードにマッピングされるＴＳパケットのグループは、ＰＣＲ値フィールドによって区切られるように書き込まれる。ひとつのＴＳパケットグループの下位側アドレスに書き込まれたＰＣＲ値がＲＴＰパケットのＲＴＰタイムスタンプ値のオフセットとなる。
【００８７】
上記説明以外の、ＴＳパケットがＲＴＰペイロードの先頭にマッピングされない場合、図１０に示した処理が実行される。図１０の例では、これまでに、ＴＳバッファ１１２ａには直前に受信したＴＳパケット１１２５が書き込まれているとする。ＴＳデータコントローラ１１１２のコントローラ１１１２ｂは、ＴＳテンポラリレジスタ１１１２ａのＴＳパケットにＰＣＲフィールドが含まれていないと判定された場合、ＴＳバッファ１１２ａの書き込みアドレス（直前に受信したＴＳパケット１１２５の次のアドレス）から入力したＴＳパケットデータを順次書き込む。
【００８８】
以上のように、本発明のＲＴＰ送信処理部では、ＰＣＲ値をレジスタではなく、バッファで保持して管理する。ＰＣＲ値をレジスタで保持しないため、レジスタ数を削減できる。また、ＰＣＲフィールドの発生割合を予測するのに対して、コーデックからのデータレートの見積もりは容易であるため、適切なバッファサイズを設定することができ、回路の有効利用が可能となる。
上記の説明ではＰＣＲ値をバッファ上で管理するとしたが、さらに、ＲＴＰ送信のための制御情報もバッファ上で管理することができる。以下、第５の実施の形態として、送信制御情報もパケットと同一の記憶領域で管理する通信装置について説明する。図１１は、本発明の第５の実施の形態である通信装置のＲＴＰ送信処理部の構成図である。図１、図３及び図８と同じものには同じ番号を付し、説明は省略する。
【００８９】
図１１に示した第５の実施の形態のＲＴＰ通信処理部と、第４の実施の形態との違いは、パケット送信コントローラにある。第４の実施の形態では、パケット送信コントローラ１１３１はパケット送信処理手段１１３内部にあり、ＲＴＰパケットの送信タイミングを計り、送信タイミングとなった場合に送信要求をパケット合成１１３２に対して発行していた。これに対し、第５の実施の形態では、パケット送信コントローラ１１１５は、Ａ／Ｖデータチェッカ１１１内にあり、送信のための制御情報をＴＳバッファ１１２ａに書き込む。パケット合成１１３２は制御情報を参照して送信処理を行なう。
【００９０】
パケット送信コントローラ１１１５は、図８のパケット送信コントローラ１１３１と同様にＴＳヘッダチェッカ１１１１からの情報に基づいて、ＴＳパケットをＴＳバッファ１１２ａのＲＴＰペイロードにマッピングするときの境界を管理する。そして、条件が整うと、ＴＳバッファ１１２ａにパケットの送信制御情報に送信要求を書き込む。パケット合成１１３２は、ＴＳバッファ１１２ａを監視し、送信制御情報に送信要求が書き込まれていることを検出すると、書き込まれている情報に従って、ＲＴＰパケットの送信処理を行なう。
【００９１】
ここで、パケット送信コントローラ１１１５、ＴＳデータコントローラ１１１２及びＰＣＲデータコントローラ１１１３によるバッファリングと書き込み処理について説明する。図１２は、送信制御情報の書き込み処理手順を示した図である。図９と同じものには同じ番号を付し、説明は省略する。
【００９２】
ＴＳデータコントローラ１１１２は、ＲＴＰペイロードの先頭にマッピングされるＴＳパケットをＴＳバッファ１１２ａへ書き込む際、ＰＣＲフィールド１１２３と送信制御情報１１２６分のオフセットを加えたアドレスから書き込みを行なう。また、ＰＣＲデータコントローラ１１１３は、該当するＰＣＲ値をＰＣＲフィールド１１２３に書き込む。
【００９３】
パケット送信コントローラ１１１５は、同一のＲＴＰペイロードに格納される全てのＴＳパケットのＴＳバッファ１１２ａへの書き込みが終了した時点で、送信制御情報を該当する送信制御情報１１２６へ書き込む。送信制御情報には、例えば、送信要求フラグと、送信パケットサイズ（ＲＴＰペイロード中のＴＳパケットのバイト数）が設定されている。このとき、ひとつのＴＳパケットの書き込みが終了するごとに送信制御情報１１２６の送信パケットサイズを更新し、最終パケットの書き込みが終了した時点で送信要求フラグをセットするようにしてもよい。
【００９４】
以下、このようなＲＴＰ送信処理部の動作について図面を参照して詳細に説明する。図１３は、送信処理の全体手順を示したフローチャートである。ここでは、ＰＣＲフィールドは、ＴＳパケットの先頭より６バイトの中に含まれるとする。また、ＴＳパケットは、１８８バイトとする。
【００９５】
図１３に示した処理手順は、エンコーダからＴＳパケットがＲＴＰ送信処理部に入力されると処理が開始される。
ステップＳ０１：入力するＴＳパケットの先頭より６バイトを読み込む。
【００９６】
ステップＳ０２：読み込んだ中にＰＣＲフィールドが含まれるかどうかを判定し、含まない場合はステップＳ０４へ進み、含む場合はステップＳ０３へ進む。
ステップＳ０３：ＰＣＲフィールドを含む場合、最新の送信制御情報を書き込んでからＴＳパケットを受信していないかどうかを判定する。送信制御情報は、ステップＳ０７の送信制御情報書き込み処理において、前のＲＴＰパケットの送信要求がセットされたとき、次の領域に作成される。ＴＳバッファを受信していない場合はステップＳ０５へ進み、受信している場合はステップＳ０６へ進む。
【００９７】
ステップＳ０４：ＴＳパケットにＰＣＲフィールドが含まれていない場合の書き込み処理を実行する。処理終了後、ステップＳ０７へ進む。
ステップＳ０５：ＴＳパケットにＰＣＲフィールドが含まれ、かつ、送信制御情報書き込み後の最初のＴＳパケットである場合の書き込み処理を実行する。処理終了後、ステップＳ０７へ進む。
【００９８】
ステップＳ０６：ＴＳパケットにＰＣＲフィールドが含まれ、かつ、送信制御情報書き込み後の最初のＴＳパケットでない場合の書き込み処理を実行する。処理終了後、次のＴＳパケット待ちになる。
【００９９】
ステップＳ０７：送信制御情報の書き込み処理を行なう。処理終了後、次のＴＳパケット待ちになる。
このように、ＴＳパケットのＰＣＲフィールドの有無と、ＲＴＰペイロードの設定状況に応じて、書き込み処理１、書き込み処理２、書き込み処理３を実行する。以下、各書き込み処理について順に説明する。
【０１００】
第１に、書き込み処理１について説明する。図１４は書き込み処理１の処理手順を示すフローチャート、図１５は書き込み処理１における送信バッファ書き込みの状態を示す図である。
【０１０１】
図１４に示した書き込み処理１は、ＴＳパケットにＰＣＲフィールドが含まれていない場合に起動される。
ステップＳ４１：直前のＴＳパケットのＴＳバッファへの最終書き込みアドレスの次アドレス以降に受信ＴＳパケットを書き込む。
【０１０２】
ステップＳ４２：書き込みを行なったＴＳパケットが関連する送信制御情報フィールドのＲＴＰパケットサイズに１８８バイトを加算し、ＲＴＰパケットサイズを更新する。
【０１０３】
このような処理では、図１５に示すように、ＴＳテンポラリレジスタ１１１２ａに書き込まれたＴＳパケットは、直前のＴＳパケット１１２５の次領域である受信ＴＳパケット１１２４の領域に書き込まれる。また、これに伴って、送信制御情報１１２６のＲＴＰパケットサイズが更新される。
【０１０４】
第２に、書き込み処理２について説明する。図１６は書き込み処理２の処理手順を示すフローチャート、図１７は書き込み処理２における送信バッファ書き込みの状態を示す図である。
【０１０５】
図１６に示した書き込み処理２は、ＴＳパケットにＰＣＲフィールドが含まれ、かつ、送信制御情報書き込み後の最初のＴＳパケットである場合に起動される。すなわち、直前に受信されたＴＳパケットまでのパケットによりひとつのＲＴＰペイロードの設定が完了し、新たなＲＴＰペイロードの書き込みを開始する準備が整った状態で起動される。
【０１０６】
ステップＳ５１：ＰＣＲフィールドの最終アドレスの次アドレスより受信ＴＳパケットをＤＰＲＡＭに書き込む。このパケットのＰＣＲフィールド値は、ＰＣＲテンポラリレジスタに一時保持される。
【０１０７】
ステップＳ５２：ＰＣＲテンポラリレジスタに保持していたＰＣＲフィールド値を該当するＰＣＲフィールドに上書きする。
ステップＳ５３：書き込みを行なったＴＳパケットが関連する送信制御情報フィールドのＲＴＰパケットサイズに１８８バイトを加算し、ＲＴＰパケットサイズを更新する。
【０１０８】
このような処理では、図１７に示すように、書き込み処理２が起動される前に、前のＲＴＰペイロードに関連する送信制御情報１１２７のパケット送信要求フラグがセットされており、このとき送信制御情報１１２６とＰＣＲフィールド１１２３が設定されている。書き込み処理２では、ＴＳテンポラリレジスタ１１１２ａに書き込まれたＴＳパケットをＰＣＲフィールド１１２３の次領域である受信ＴＳパケット１１２４の領域に書き込む。また、これに伴って、送信制御情報１１２６を更新する。
【０１０９】
第３に、書き込み処理３について説明する。図１８は書き込み処理３の処理手順を示すフローチャート、図１９は書き込み処理３における送信バッファ書き込みの状態を示す図である。
【０１１０】
図１８に示した書き込み処理３は、ＴＳパケットにＰＣＲフィールドが含まれ、かつ、送信制御情報書き込み後の最初のＴＳパケットでない場合に起動される。すなわち、ルール（１）により、新たなＲＴＰペイロードの設定を行なわなければならない状態で起動される。
【０１１１】
ステップＳ６１：直前に書き込んだＴＳパケットの最終アドレスから送信制御情報フィールドと、ＰＣＲフィールド分のオフセットをつけて受信ＴＳパケットをＤＰＲＡＭに書き込む。このとき、ＰＣＲフィールド値は、ＰＣＲテンポラリレジスタに保持しておく。
【０１１２】
ステップＳ６２：ＴＳパケットの書き込み終了後、保持していたＰＣＲフィールド値をＤＰＲＡＭの該当する領域に書き込む。
ステップＳ６３：ステップＳ６１において用意した送信制御情報フィールドに、新たに送信制御情報を書き込む。
【０１１３】
ステップＳ６４：直前に設定されたＲＴＰペイロードに関連する送信制御情報の送信要求フラグをセットする。
このような処理では、図１９に示すように、ＴＳテンポラリレジスタ１１１２ａに書き込まれたＴＳパケットは、直前のＴＳパケット１１２５からオフセットを加えた領域（図では受信ＴＳパケット１１２４）に書き込まれる。さらに、ＰＣＲフィールド１１２３と受信ＴＳパケット１１２４に関連する新たな送信制御情報１１２６が設定される。また、前の送信制御情報１１２７には、送信要求フラグがセットされる。
【０１１４】
次に、送信制御情報書き込み処理について説明する。図２０は送信制御情報書き込み処理の処理手順を示すフローチャート、図２１は送信制御情報書き込み処理における送信バッファ書き込みの状態を示す図である。
【０１１５】
送信制御情報書き込み処理は、書き込み処理１及び書き込み処理２終了後に起動される。
ステップＳ７１：送信制御情報を参照し、ＲＴＰパケットサイズをチェックし、サイズによる送信条件が満たされたかどうかを判定する。送信条件が満たされた場合ステップＳ７２へ処理を進める。送信条件が満たされていない場合、処理を終了する。
【０１１６】
ステップＳ７２：今回受信した受信ＴＳパケット以降の領域に新規の送信制御情報フィールドを作成する。
ステップＳ７３：新たに作成された送信制御情報フィールドの領域の次に、ＰＣＲフィールドを作成し、現在のＰＣＲフィールド値をコピーする。
【０１１７】
ステップＳ７４：今回受信した受信ＴＳパケットまでをＲＴＰペイロードとするパケットに関連する送信制御情報のパケット送信要求をセットする。
このような処理では、図２１に示すように、送信サイズを満たした場合、今回受信した受信ＴＳパケット１１２４までのＲＴＰペイロードの次の領域に、新たな送信制御情報１１２６とＰＣＲフィールド１１２３が設けられる。ＰＣＲフィールド１１２３には、直前のＰＣＲフィールド１１２１のＰＣＲ値がコピーされる。続いて、このように次のＲＴＰペイロードの準備ができた状態で、送信制御情報１１２７の送信要求がセットされる。
【０１１８】
次に、パケット合成１１３２による送信処理について説明する。図２２は、送信処理の処理手順を示すフローチャート、図２３は送信処理における送信バッファの状態を示す図である。
【０１１９】
ステップＳ８１：所定の周期で該当する送信制御情報の送信要求フラグをポーリングする。
ステップＳ８２：フラグがセットされているかどうかを判定し、セットされていなければステップＳ８１に戻って、ポーリングを続ける。セットされていれば、ステップＳ８３へ処理を進める。
【０１２０】
ステップＳ８３：送信制御情報よりＲＴＰパケットサイズを読み取る。
ステップＳ８４：ＰＣＲフィールド値を読み取る。
ステップＳ８５：ＲＴＰヘッダレジスタより、他のＲＴＰヘッダ情報を読み取る。
【０１２１】
ステップＳ８６：ＲＴＰヘッダを作成し、これを下位のレイヤ（ネットワークデバイス）へ送信する。
ステップＳ８７：ＤＰＲＡＭよりＴＳパケットをＲＴＰパケットサイズ分読み取り、ＲＴＰペイロードとして下位レイヤに送信する。続いて、ステップＳ８１に戻って、次の送信要求フラグを監視する。
【０１２２】
このように、ＴＳバッファに送信制御情報、ＰＣＲフィールド値及びＴＳパケットが設定され、設定に応じて送信が行なわれる。ここで、このＴＳバッファはリング形式をとる。このような処理では、図２３に示すように、開始時のアドレスから送信制御情報を読み込み、送信要求があれば、続くＰＣＲフィールドを用いてＲＴＰヘッダを生成する。さらに次のアドレスから格納されたＴＳパケットを順次読み取り、下位レイヤに送信する。終了すると、アドレスを示すポインタは、次の送信制御情報を指す。
【０１２３】
以上の説明のように、第５の実施の形態では、ＰＣＲ値や送信制御情報をレジスタで保持しないため、レジスタ数を削減することができ、回路規模をコンパクトにすることができる。特に、パケット数が多くなっても使用するレジスタを増加させる必要がなくなる。
【０１２４】
また、ＴＳバッファとしてデュアルポートＲＡＭを使用しているため、ＲＴＰパケットを生成するブロック（Ａ／Ｖデータチェッカ）が、コーデック側ブロックとクロックドメインを分割することができる。このため、クロック乗り換えなどの回路を必要としない。
【０１２５】
【発明の効果】
以上説明したように本発明の通信装置は、情報データをパケット化する送信処理手段と、デパケット化する受信処理手段とを情報データの流れを制御する装置制御部とともに具備する。このような送信処理手段と受信処理手段は、装置制御部の負荷状況によらず通信処理を行なうことが可能であり、ネットワーク状況の測定等、タイミング生成の精度を保証することができる。このため、ストリーミングの品質を一定に保つことができる。さらに、ストリーミングの品質が保たれることから、設計余裕を必要最小限にすることができ、回路規模をコンパクトにすることが可能である。また、ホスト側である装置制御部の処理も軽減させることができる。
【０１２６】
また、本発明の送信装置は、ペイロードを格納する領域とは異なるレジスタ等で管理されていたデータを、ペイロードを格納する領域と共通の領域で管理できるようにする。これにより、レジスタを削減することができ、回路規模をコンパクトにすることが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態である通信装置の構成図である。
【図２】ＲＴＰパケットの構成図である。
【図３】本発明の実施の形態である通信装置のＲＴＰ送信処理部の構成図である。
【図４】本発明の実施の形態である通信装置のＲＴＰ受信処理部の構成図である。
【図５】ＲＴＰ受信処理部による揺らぎ計算の手順を示している。
【図６】本発明の第２の実施の形態である通信装置の構成図である。
【図７】本発明の第３の実施の形態である通信装置のＲＴＰ受信処理部の構成図である。
【図８】本発明の第４の実施の形態である通信装置のＲＴＰ送信処理部の構成図である。
【図９】ＴＳパケットがＲＴＰペイロード先頭にマッピングされる場合の処理手順を示した図である。
【図１０】ＴＳパケットがＲＴＰペイロード先頭にマッピングされる場合の処理手順を示した図である。
【図１１】本発明の第５の実施の形態である通信装置のＲＴＰ送信処理部の構成図である。
【図１２】送信制御情報の書き込み処理手順を示した図である。
【図１３】送信処理の全体手順を示したフローチャートである。
【図１４】書き込み処理１の処理手順を示すフローチャートである。
【図１５】書き込み処理１における送信バッファ書き込みの状態を示す図である。
【図１６】書き込み処理２の処理手順を示すフローチャートである。
【図１７】書き込み処理２における送信バッファ書き込みの状態を示す図である。
【図１８】書き込み処理３の処理手順を示すフローチャートである。
【図１９】書き込み処理３における送信バッファ書き込みの状態を示す図である。
【図２０】送信制御情報書き込み処理の処理手順を示すフローチャートである。
【図２１】送信制御情報書き込み処理における送信バッファ書き込みの状態を示す図である。
【図２２】送信処理の処理手順を示すフローチャートである。
【図２３】送信処理における送信バッファの状態を示す図である。
【図２４】従来の通信装置の構成図である。
【図２５】従来の通信装置のＲＴＰ処理部の構成図である。
【符号の説明】
１００・・・ＲＴＰ処理回路、１１０・・・ＲＴＰ送信処理部、１１１・・・Ａ／Ｖデータチェッカ、１１２・・・送信バッファ、１１３・・・パケット送信処理手段、１１４・・・送信者情報レジスタ、１１５・・・ＲＴＰヘッダレジスタ、１２０・・・ＲＴＰ受信処理部、１３０・・・タイマ、２００・・・ホスト側制御部、２１０・・・ＲＴＣＰ処理手段、１２１・・・受信バッファ、１２２・・・キュー、１２３・・・受信者情報レジスタ、１２４・・・ＲＴＰヘッダチェッカ、１２５・・・受信制御手段、１２６・・・デコーダＩ／Ｆ、２２０・・・内部バス、３１０・・・エンコーダ、３２０・・・デコーダ、３３０・・・ネットワークデバイス
【図１】
2004180127.tif 000003
【図２】
2004180127.tif 000004
【図３】
2004180127.tif 000005
【図４】
2004180127.tif 000006
【図５】
2004180127.tif 000007
【図６】
2004180127.tif 000008
【図７】
2004180127.tif 000009
【図８】
2004180127.tif 000010
【図９】
2004180127.tif 000011
【図１０】
2004180127.tif 000012
【図１１】
2004180127.tif 000013
【図１２】
2004180127.tif 000014
【図１３】
2004180127.tif 000015
【図１４】
2004180127.tif 000016
【図１５】
2004180127.tif 000017
【図１６】
2004180127.tif 000018
【図１７】
2004180127.tif 000019
【図１８】
2004180127.tif 000020
【図１９】
2004180127.tif 000021
【図２０】
2004180127.tif 000022
【図２１】
2004180127.tif 000023
【図２２】
2004180127.tif 000024
【図２３】
2004180127.tif 000025
【図２４】
2004180127.tif 000026
【図２５】
2004180127.tif 000027
【手続補正書】
【提出日】平成15年9月17日(2003.9.17)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
所定の送信周期ごとに、前記送信処理手段に保存されている前記送信者情報及び前記受信処理手段に保存されている前記受信者情報を読み出し、前記送信者情報及び前記受信者情報に基づいて管理情報パケットを生成して前記ネットワークデバイスを用いて送信するとともに、他の通信装置の生成した前記管理情報パケットを取得する管理パケット処理手段をさらに具備することを特徴とする請求項１記載の通信装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
前記受信処理手段は、
前記パケットに含まれる前記パケットの送信元によって計時された前記パケットの送信時点を示す送信時間情報と、前記計時手段を用いて計時された前記パケットの受信時点を示す時間情報とを比較し、その差が所定の範囲を超えた場合に、前記送信時間情報に基づいて前記パケットの送信元の計時手段と同期するよう前記計時手段を補正する補正手段、
を含むことを特徴とする請求項１記載の通信装置。