(57)【特許請求の範囲】
【請求項１】
それぞれ同期した時計を備える送信側と受信側との間で、間隔が変動するパケット列をバッファによりほぼ一定の間隔のパケット列に変換して伝送する方法であって、
前記送信側においては、
（ａ）前記間隔の変動するパケット列の各パケットに対して、前記パケットを前記バッファに取り込む時刻に所定のオフセット時間を加えたタイムスタンプを計算し、
（ｂ）前記タイムスタンプが前回記憶したタイムスタンプの値以下であるときは、前記パケットを廃棄し、
（ｃ）前記タイムスタンプが前回記憶したタイムスタンプの値以下でないときは、タイムスタンプの記憶値を更新すると共に、前記パケットに前記計算したタイムスタンプを付加し、
（ｄ）前記タイムスタンプが付加されたパケットを前記バッファから読み出すタイミングを前記バッファにより調整し、
前記受信側においては、
（ｅ）受信したパケットをバッファに蓄積した後、該パケットに付加されているタイムスタンプにしたがってパケット列の間隔を再現する
ことを特徴とするパケット伝送方法。
【請求項２】
それぞれ同期した時計を備える送信側と受信側との間で、間隔が変動するパケット列をバッファによりほぼ一定の間隔のパケット列に変換して伝送する方法であって、
前記送信側においては、
（ａ）前記間隔の変動するパケット列の各パケットに対して、前記パケットを前記バッファに取り込む時刻に所定のオフセット時間を加えたタイムスタンプを計算し、
（ｂ）前記タイムスタンプが前回記憶したタイムスタンプの値以下であるときは、前記バッファ中のパケットのうち、タイムスタンプの値が前記計算したタイムスタンプの値より大きいものを削除し、
（ｃ）前記タイムスタンプが前回記憶したタイムスタンプの値以下でないときは、タイムスタンプの記憶値を更新すると共に、前記パケットに前記計算したタイムスタンプを付加し、
（ｄ）前記タイムスタンプが付加されたパケットを前記バッファから読み出すタイミングを前記バッファにより調整し、
前記受信側においては、
（ｅ）受信したパケットをバッファに蓄積した後、該パケットに付加されているタイムスタンプにしたがってパケット列の間隔を再現する
ことを特徴とするパケット伝送方法。
【請求項３】
それぞれ同期した時計を備える送信側と受信側との間で、間隔が変動するパケット列をバッファによりほぼ一定の間隔のパケット列に変換して伝送する方法であって、
前記送信側においては、
（ａ）前記間隔の変動するパケット列の各パケットに対して、前記パケットを前記バッファに取り込む時刻に所定のオフセット時間を加えたタイムスタンプを計算し、
（ｂ）前記タイムスタンプが前回記憶したタイムスタンプの値以下であるときは、送信中のものを除いて前記バッファ中のパケットを削除し、
（ｃ）前記タイムスタンプが前回記憶したタイムスタンプの値以下でないときは、タイムスタンプの記憶値を更新すると共に、前記パケットに前記計算したタイムスタンプを付加し、
（ｄ）前記タイムスタンプが付加されたパケットを前記バッファから読み出すタイミングを前記バッファにより調整し、
前記受信側においては、
（ｅ）受信したパケットをバッファに蓄積した後、該パケットに付加されているタイムスタンプにしたがってパケット列の間隔を再現する
ことを特徴とするパケット伝送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、間隔が変動するパケット列に対してその間隔を再現するための情報を付加し等間隔のパケット列に変換して伝送する技術に関し、詳細にはビットレートが高くなったとき、すなわちパケット間隔が短くなったときにも通信が途絶えないようにする技術に関する。
【０００２】
【従来の技術】
パケット間隔が変動するパケット列、すなわちビットレートが変動するパケット列を伝送しようとすると、最大ビットレートに対応できる容量のデータ伝送路を用意することが必要である。これは平均的なビットレートの伝送に必要な容量に比較して冗長なものとなる。
【０００３】
そこで、パケットを一旦バッファ（以下スムージング・バッファという）に蓄積し、これを一定のレート（以下スムージング・バッファから読み出すレートをリークレートという）で読み出し、この一定のリークレートのパケットを伝送することで、冗長な伝送路を不要にすることが考えられている。このとき、スムージング・バッファを通すと元のパケットの間隔がわからなくなるので、受信側において元のパケットの間隔を再現することができなくなる。そこで、パケットに間隔情報を付加することにより、受信側において元のパケット間隔を再現できるようにする。
【０００４】
パケット間隔の再現は以下のようにして行う。まず送信側と受信側で同期した時計を動かしておく。そして、送信側ではスムージング・バッファの入口でパケットの先頭を検出した時刻を記憶し、それに所定のオフセット時間Ｄを加えたタイムスタンプＴをパケットに付加して伝送する。また、受信側では、受信したパケットを一旦受信バッファに蓄積し、タイムスタンプＴを取り出す。そして、時計の値がＴに一致するのを待って、パケットを受信バッファから読み出し、元のパケットの間隔を再現する。図７において（ａ）は平均ビットレートがＡの離散的なパケット列であり、（ｂ）はスムージング・バッファの入口においてタイムスタンプが付加された離散的なパケット列であり、（ｃ）はスムージング・バッファから読み出されたリークレートがＢの周期的なパケット列であり、（ｄ）は受信バッファから読み出された、元の間隔が再現されたパケット列である。
【０００５】
【発明が解決しようとする課題】
しかしながら、前記従来の方法では、平均的なビットレートＡが不変であれば問題ないが、平均的なビットレートＡが高くなると以下のような問題が発生する。
【０００６】
スムージング・バッファのサイズが固定の場合、ビットレートＡが高くなると、バッファのオーバーフローを防ぐためにはリークレートも高くする必要がある。したがって、伝送レートも高くする必要があり、全体的にパケットの伝送に要する時間が短くなる。よって、前述したオフセット時間Ｄも小さくする必要がある。
【０００７】
ところが、オフセット時間Ｄを小さくすると、小さくなったオフセット時間を使用して計算したタイムスタンプの値が、オフセット時間を小さくする直前のパケットに付加したタイムスタンプの値を下回る可能性がある。そして、このようなタイムスタンプの値の逆転が発生すると、受信側では時計の値がタイムスタンプの値より進んでいるため、そこで通信が途絶えてしまう。
【０００８】
本発明はこのような問題点に鑑みてなされたものであって、間隔が変動するパケット列に対してその間隔を再現するための情報を付加し、等間隔のパケット列に変換して伝送する際、ビットレートが高くなったときにも通信が途絶えないようにすることを目的とする。
【０００９】
【課題を解決するための手段】
上述したような課題を解決するため、本発明に係るパケット伝送方法は、それぞれ同期した時計を備える送信側と受信側との間で、間隔が変動するパケット列をバッファによりほぼ一定の間隔のパケット列に変換して伝送する方法であって、間隔の変動するパケット列の各パケットに対して、前記パケットをバッファに取り込む時刻に所定のオフセット時間を加えたタイムスタンプを計算し、計算したタイムスタンプが前回記憶したタイムスタンプの値以下であるときは、前記パケットを廃棄し、計算したタイムスタンプが前回記憶したタイムスタンプの値以下でないときは、タイムスタンプの記憶値を更新すると共に、前記パケットに前記計算したタイムスタンプを付加し、このタイムスタンプが付加されたパケットを前記バッファから読み出すタイミングを前記バッファにより調整し、受信側においては、受信したパケットをバッファに蓄積した後、このパケットに付加されているタイムスタンプにしたがってパケット列の間隔を再現するようにしたものである。
【００１０】
ここで、前記計算したタイムスタンプが前回記憶したタイムスタンプの値以下であるときは、前記バッファ中のパケットのうち、タイムスタンプの値が前記計算したタイムスタンプの値より大きいものを削除するように構成してもよいし、送信中のものを除いて前記バッファ中のパケットを削除するように構成してもよい。
【００１１】
本発明によれば、計算したタイムスタンプが前回記憶したタイムスタンプの値以下であるときは、そのタイムスタンプを付加すべきパケットを廃棄するか、又はバッファ中のパケットのうち、タイムスタンプの値が前記計算したタイムスタンプの値より大きいものもしくは送信中以外のものを削除する。したがって、送信される各パケット列に付加されているタイムスタンプの値は、前に送信されたパケットに付加されているタイムスタンプの値を下回らなくなる。
【００１２】
そして、受信側においては、受信したパケットをバッファに蓄積し、そのパケットに付加されているタイムスタンプが示す時刻にバッファから読み出すことにより、元のパケット列の間隔を再現する。
【００１３】
【発明の実施の形態】
以下本発明の実施の形態について図面を参照しながら詳細に説明する。図１は本発明を適用する通信システムを示す。この図に示すように、本発明を適用する通信システムは送信機１と、受信機２と、これらを接続する通信制御バス３とから構成されている。
【００１４】
送信機１は、平均的には一定のビットレートＡを有する信号、例えばＤＶＢ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ）のビデオデータのような、圧縮されているデータのビットレートがプログラムやシーン毎に変化するデータのパケットを入力し、これを一定のリークレートＢを有するパケットに変換して通信制御バス３に出力する。受信機２は、例えば通信制御バス３を介して受信したデータを記録するデジタルビデオテープレコーダである。通信制御バスは、例えばＩＥＥＥ１３９４ハイ・パフォーマンス・シリアルバス（以下ＩＥＥＥ１３９４シリアルバスという）である。
【００１５】
送信機１は、同期時計１１と、同期時計１１が生成する現在時刻に所定のオフセット時間を加えた値を、入力されるパケット列ａに付加するタイムスタンプ付加ブロック１２と、タイムスタンプが付加されたパケット列ｂを入力し、リークレートがＢの周期的なパケット列ｃを出力するスムージング・バッファ１３と、スムージング・バッファ１３の出力を通信制御バス３へ送出する通信インターフェース１４とを備えている。
【００１６】
同期時計１１は後述する受信機２内の同期時計２１と同期して動作する。この同期は、例えばＩＥＥＥ１３９４シリアルバス上を周期的に流れるサイクル・スタート・パケットに付加されている同期時刻に同期時計１１及び２１の時刻を合わせることで実現する。
【００１７】
タイムスタンプ付加ブロック１２は入力される、平均ビットレートがＡのパケット列ａの各パケットの先頭において同期時計１１の同期時刻Ｔを記憶し、それにオフセット時間Ｄを加えたタイムスタンプを各パケットに付加する。このとき、現在のビットレートｅが高くなった場合には、オフセット時間をＤより小さいδに設定すると共に、スムージング・バッファ１３に対して制御信号ｆを与える（詳細は後述）。
【００１８】
スムージング・バッファ１３はＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ Ｆｉｒｓｔ−Ｏｕｔ）により構成されており、入力データの平均ビットレートがＡで変化しないときには、書き込まれるパケット列ｂの読み出しタイミングを調整することにより、リークレートがＢの周期的なパケット列ｃにする。そして、入力データの平均ビットレートがＡより高くなった場合には、パケットの廃棄等の処理を行う（詳細は後述）。
【００１９】
通信インターフェース１４は、スムージング・バッファ１３から出力されるパケット列ｃに対して送信符号のエンコード等を行い、通信制御バス３へ送出する。
【００２０】
受信機２は、同期時計２１と、通信制御バス３からデータを入力する通信インターフェース２２と、通信インターフェース２２から送られてくるパケット列を一時的に蓄積する受信バッファ２３と、通信インターフェース２２から送られてくるパケット列の各パケットからタイムスタンプを取り出すと共に、同期時計２１の同期時刻Ｔとを比較し制御信号ｇを受信バッファ２３に与えるタイムスタンプ取り出しブロック２４とを備えている。
【００２１】
同期時計２１は、前述したように送信機１内の同期時計１１と同期して動作する。
【００２２】
通信インターフェース２２は、通信制御バス３から入力されるデータに対して送信符号のデコード等を行う。
【００２３】
受信バッファ２３は、通信インターフェース２２から送られてくるパケット列を蓄積し、タイムスタンプ取り出しブロック２４から与えられる制御信号ｇにしたがって蓄積したパケット列を読み出し、元の離散的なパケット列ｄを出力する。
【００２４】
タイムスタンプ取り出しブロック２４は、通信インターフェース２２から送られてくるパケット列から取り出した各パケットのタイムスタンプと同期時計１１が出力する同期時刻Ｔとを比較し、それが一致したときに制御信号ｇを受信バッファ２３へ与える。
【００２５】
次に図１に示した通信システム全体の動作について、特に送信機１内のタイムスタンプ付加ブロック１２とスムージング・バッファ１３の処理を中心に説明する。ここでは三通りの処理方法について順に説明する。
【００２６】
（第１の処理方法）
図２はこの処理方法のフローチャートであり、図３はパケット列のタイミングチャートである。なお、図３において、（ａ）は平均ビットレートがＡの離散的なパケット列であり、（ｂ）はスムージング・バッファの入口においてタイムスタンプが付加された離散的なパケット列であり、（ｃ）はスムージング・バッファから読み出されたリークレートがＢの周期的なパケット列であり、（ｄ）は受信バッファから読み出された元の間隔のパケット列である。
【００２７】
まず図３（ａ）に示すような、平均ビットレートがＡの離散的なパケット列におけるパケットＰｎ（ｎ＝１，２，３，・・・）がタイムスタンプ付加ブロック１２へ入力される（図２のステップＳ１）。
【００２８】
タイムスタンプ付加ブロック１２は、同期時計１１の現在の同期時刻に所定のオフセット時間Ｄを加えたタイムスタンプＴｎを計算する（ステップＳ２）。そして、そのタイムスタンプＴｎを直前のパケットに付加したタイムスタンプＭと比較する（ステップＳ３）。なお、Ｍの初期値は０とする。
【００２９】
比較の結果、ＴｎがＭ以下でなければ、Ｍの値をＴｎにより更新（ステップＳ４）した後、パケットＰｎにタイムスタンプＴｎを付加する（ステップＳ５）。さらに、パケットＰｎをスムージング・バッファ１３に書き込む（ステップＳ６）。比較の結果、ＴｎがＭ以下である場合には、タイムスタンプの逆転が生じているので、パケットＰｎをスムージング・バッファ１３に書き込まずに廃棄する（ステップＳ７）。
【００３０】
例えば図３において、パケットＰ１〜Ｐ３は同期時刻Ｔにオフセット時間Ｄを加えたタイムスタンプＴ１〜Ｔ３が逆転していないので、そのままパケットに付加される。しかし、パケットＰ４から平均レートが高くなるため、パケットＰ４以降のタイムスタンプを計算する際のオフセット時間をＤからδ（δ＜Ｄ）へ変化させている。この結果、パケットＰ４に付加するタイムスタンプＴ４がパケットＴ３に付加したタイムスタンプＴ３を下回ってしまう。このままでは、受信機２においてパケットＰ４以降の通信が途絶えてしまうので、図３（ｂ）に示すように、パケットＰ４を廃棄している。
【００３１】
この結果、スムージング・バッファ１３から出力されるパケット列は、図３（ｃ）のようになる。このパケット列の各パケットは受信機２内の受信バッファ２３に蓄積され、同期時計２１がタイムスタンプと一致するタイミングで受信バッファ２３から読み出される。この結果、受信バッファ２３から出力されるパケット列ｄはパケットＰ４が抜けるものの、受信が途絶えることはなくなる。
【００３２】
（第２の処理方法）
図４はこの処理方法のフローチャートであり、図５はパケット列のタイミングチャートである。図５において、図３と対応する事項には同一の番号や符号が付してある。
【００３３】
まず図５（ａ）に示すような、平均ビットレートがＡの離散的なパケット列におけるパケットＰｎ（ｎ＝１，２，３，・・・）がタイムスタンプ付加ブロック１２へ入力される（図４のステップＳ１）。
【００３４】
タイムスタンプ付加ブロック１２は、同期時計１１の現在の同期時刻に所定のオフセット時間Ｄを加えたタイムスタンプＴｎを計算する（ステップＳ１２）。そして、そのタイムスタンプＴｎを直前のパケットに付加したタイムスタンプＭと比較する（ステップＳ３）。
【００３５】
比較の結果、ＴｎがＭ以下でなければ、Ｍの値をＴｎにより更新（ステップＳ１５）した後、パケットＰｎにタイムスタンプＴｎを付加する（ステップＳ１６）。さらに、パケットＰｎをスムージング・バッファ１３に書き込む（ステップＳ１７）。これらの処理は前述した第１の方法と同じである。
【００３６】
比較の結果、ＴｎがＭ以下である場合には、タイムスタンプの逆転が生じているので、スムージング・バッファ１３に蓄積されているパケットのうち、タイムスタンプがＴｎより大きいものを削除（ステップＳ１４）した後、ステップＳ１５へ移る。このステップＳ１４の処理により、スムージング・バッファ１３から読み出されるパケット列におけるタイムスタンプの逆転を回避する。
【００３７】
例えば図５において、パケットＰ１〜Ｐ３は同期時刻Ｔにオフセット時間Ｄを加えたタイムスタンプＴ１〜Ｔ３が逆転していないので、そのままパケットに付加される。しかし、パケットＰ４から平均レートが高くなるため、パケットＰ４以降のタイムスタンプを計算する際のオフセット時間をＤからδへ変化させている。この結果、パケットＰ４に付加するタイムスタンプＴ４がパケットＴ３に付加したタイムスタンプＴ３を下回ってしまい、このままでは受信機２においてパケットＰ４以降の通信が途絶えてしまうので、スムージング・バッファ１３に蓄積されているパケットＰ３を削除している。
【００３８】
この結果、スムージング・バッファ１３から出力されるパケット列は、図５（ｃ）のようになる。このパケット列の各パケットは受信機２内の受信バッファ２３に蓄積され、同期時計２１がタイムスタンプと一致するタイミングで受信バッファ２３から読み出される。この結果、受信バッファ２３から出力されるパケット列ｄはパケットＰ３が抜けるものの、受信が途絶えることはなくなる。
【００３９】
（第３の処理方法）
図６はこの処理方法のフローチャートである。パケット列のタイミングチャートは図５と同じになるので省略した。また、この処理方法は、ステップＳ２４を除けば前述した第２の処理方法と同じであるから、説明の重複を避けるためステップＳ２４についてのみ説明する。
【００４０】
パケットＰｎに付加するタイムスタンプＴｎがＭ以下の場合、ステップＳ２４では、スムージング・バッファ１３中のパケットを送信中のものを除いて廃棄する。そして、この処理により、スムージング・バッファ１３から読み出されるパケット列におけるタイムスタンプの逆転を回避する。
【００４１】
例えば図５の場合、タイムスタンプのオフセット時間は、パケットＰ３までがＤなのに対し、パケットＰ４からはδになる。タイムスタンプを求めるタイミングを、パケットの先頭がタイムスタンプ付加ブロック１２に到達した時点とすると、図５（ａ）におけるパケットＰ４の先頭の時点より前に、図５（ｃ）におけるパケットＰ１とＰ２は通信制御バス３に出力済である。つまりスムージング・バッファ１３中にはもう存在しない。一方、パケットＰ３はまだ図５（ｃ）に現れておらず、スムージング・バッファ１３中に残っている。よって、この場合、スムージング・バッファ１３のクリアによって廃棄されるパケットはＰ３だけである。
【００４２】
【発明の効果】
以上詳細に説明したように本発明によれば、間隔が変動するパケット列に対してその間隔を再現するための情報を付加し、等間隔のパケット列に変換して伝送する際、ビットレートが高くなったときにも通信が途絶えないようにすることができる。
【図面の簡単な説明】
【図１】本発明を適用する通信システムを示すブロック図である。
【図２】送信機内のタイムスタンプ付加ブロックとスムージング・バッファにおける第１の処理方法を示すフローチャートである。
【図３】第１の処理方法におけるパケット列のタイミングチャートである。
【図４】送信機内のタイムスタンプ付加ブロックとスムージング・バッファにおける第２の処理方法を示すフローチャートである。
【図５】第２の処理方法におけるパケット列のタイミングチャートである。
【図６】送信機内のタイムスタンプ付加ブロックとスムージング・バッファにおける第３の処理方法を示すフローチャートである。
【図７】従来のパケット間隔再現方法におけるパケット列のタイミングチャートである。
【符号の説明】
１…送信機、２…受信機、１２…タイムスタンプ付加ブロック、１３…スムージング・バッファ、２３…受信バッファ
【図１】
0003687188.tif 000002
【図２】
0003687188.tif 000003
【図３】
0003687188.tif 000004
【図４】
0003687188.tif 000005
【図５】
0003687188.tif 000006
【図６】
0003687188.tif 000007
【図７】
0003687188.tif 000008