(57)【特許請求の範囲】
【請求項１】
入力されたパケットの出力レートを制御する出力レート制御装置であって、
入力されたパケットを蓄積するパケット蓄積部と、
前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最大値が増加傾向にあることを検出する最大値増加検出部と、
前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最小値が減少傾向にあることを検出する最小値減少検出部と、
前記最大値増加検出部によって増加傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを大きくし、前記最小値減少検出部によって減少傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを小さくする出力制御部と、
を備えたことを特徴とする出力レート制御装置。
【請求項２】
更に、パケットロスが発生した場合にＮＵＬＬパケットを生成し、生成したＮＵＬＬパケットを消失したパケットに代えて挿入するＮＵＬＬパケット挿入部を前記パケット蓄積部の前段に備えたことを特徴とする請求項１記載の出力レート制御装置。
【請求項３】
更に、ＴＳパケットから２つのＰＣＲ値を検出するまでの時間差と、その２つのＰＣＲ値を検出するまでに受信したＴＳパケット数とに基づいて、前記出力制御部で利用される初期出力レートを算出する初期出力レート算出部を備えたことを特徴とする請求項１または２記載の出力レート制御装置。
【請求項４】
前記出力制御部は、前記初期出力レートの値をもとに前記パケット蓄積部から前記ＴＳパケットを出力させることを特徴とする請求項３記載の出力レート制御装置。
【請求項５】
前記出力制御部は、前記ＴＳパケットのバイト長をＬts、電圧制御型水晶発振器の中心周波数をＦe、前記初期出力レートをＲiniとした場合、前記電圧制御型水晶発振器からのクロック信号毎にカウント動作を行うカウンタのカウント値が所定の値Ｎ＝（Ｆe／Ｒini）８×Ｌtsになったら、前記パケット蓄積部から前記ＴＳパケットを一つ出力させることを特徴とする請求項４記載の出力レート制御装置。
【請求項６】
入力されたパケットの出力レートを制御する出力レート制御方法であって、
入力されたパケットをパケット蓄積部に蓄積するパケット蓄積ステップと、
前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最大値が増加傾向にあることを検出する最大値増加検出ステップと、
前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最小値が減少傾向にあることを検出する最小値減少検出ステップと、
前記最大値増加検出ステップで増加傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを大きくし、前記最小値減少検出ステップで減少傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを小さくする出力制御ステップと、
を備えたことを特徴とする出力レート制御方法。
【請求項７】
更に、パケットロスが発生した場合にＮＵＬＬパケットを生成し、生成したＮＵＬＬパケットを消失したパケットに代えて挿入するＮＵＬＬパケット挿入ステップを前記パケット蓄積ステップの前段に備えたことを特徴とする請求項６記載の出力レート制御方法。
【請求項８】
更に、ＴＳパケットから２つのＰＣＲ値を検出するまでの時間差と、その２つのＰＣＲ値を検出するまでに受信したＴＳパケット数とに基づいて、前記出力制御ステップで利用される初期出力レートを算出する初期出力レート算出ステップを備えたことを特徴とする請求項６または７記載の出力レート制御方法。
【請求項９】
前記出力制御ステップでは、前記初期出力レートの値をもとに前記パケット蓄積部から前記ＴＳパケットを出力させることを特徴とする請求項８記載の出力レート制御方法。
【請求項１０】
前記出力制御ステップでは、前記ＴＳパケットのバイト長をＬts、電圧制御型水晶発振器の中心周波数をＦe、前記初期出力レートをＲiniとした場合、前記電圧制御型水晶発振器からのクロック信号毎にカウント動作を行うカウンタのカウント値が所定の値Ｎ＝（Ｆe／Ｒini）８×Ｌtsになったら、前記パケット蓄積部から前記ＴＳパケットを一つ出力させることを特徴とする請求項９記載の出力レート制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたＴＳ（Transport Stream）パケットの出力レートを制御する出力レート制御装置及び出力レート制御方法に関する。
【背景技術】
【０００２】
ＭＰＥＧ−２の映像伝送は、ＴＳ形式での固定レートで行なわれる。ＴＳをＩＰネットワークで伝送する場合、網で伝送遅延揺らぎが発生してしまう。正常な映像伝送には、エンコーダが発生したＴＳパケットの時間間隔を維持したままデコーダへ送ることが必要である。しかし、この伝送遅延揺らぎがあると、デコーダへのＴＳパケット到着間隔が一定でなくなってしまうため、デコードがうまくいかず、映像音声（ＡＶ）の乱れやＡＶ同期のずれなどが発生する恐れがある。この伝送遅延揺らぎを吸収する技術文献として特許文献１がある。特許文献１には、伝送遅延揺らぎ吸収のためにバッファを設け、あるタイミング（サンプルタイム）ごとにバッファの蓄積量をモニタし、蓄積量に応じた出力レートを設定することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０８−１３９７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示される制御方法では、サンプルタイムにおいてバッファ蓄積量に突発的な増加、減少が発生した場合、出力レートが激変する。この場合、次のサンプルタイムになるまで同じ状態が継続するため、バッファのオーバーフローやアンダーフローが発生する可能性がある。
【０００５】
本発明は、上述した従来の技術に鑑み、バッファ蓄積量の突発的な変動に対応することができる出力レート制御装置及び出力レート制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、第１の態様に係る発明は、入力されたパケットの出力レートを制御する出力レート制御装置であって、入力されたパケットを蓄積するパケット蓄積部と、前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最大値が増加傾向にあることを検出する最大値増加検出部と、前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最小値が減少傾向にあることを検出する最小値減少検出部と、前記最大値増加検出部によって増加傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを大きくし、前記最小値減少検出部によって減少傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを小さくする出力制御部とを備えたことを要旨とする。
【０００７】
第２の態様に係る発明は、第１の態様に係る発明において、更に、パケットロスが発生した場合にＮＵＬＬパケットを生成し、生成したＮＵＬＬパケットを消失したパケットに代えて挿入するＮＵＬＬパケット挿入部を前記パケット蓄積部の前段に備えたことを要旨とする。
【０００８】
第３の態様に係る発明は、第１または第２の態様に係る発明において、更に、ＴＳパケットから２つのＰＣＲ値を検出するまでの時間差と、その２つのＰＣＲ値を検出するまでに受信したＴＳパケット数とに基づいて、前記出力制御部で利用される初期出力レートを算出する初期出力レート算出部を備えたことを要旨とする。
第４の態様に係る発明は、第３の態様に係る発明において、前記出力制御部が、前記初期出力レートの値をもとに前記パケット蓄積部から前記ＴＳパケットを出力させることを要旨とする。
第５の態様に係る発明は、第４の態様に係る発明において、前記出力制御部が、前記ＴＳパケットのバイト長をＬts、電圧制御型水晶発振器の中心周波数をＦe、前記初期出力レートをＲiniとした場合、前記電圧制御型水晶発振器からのクロック信号毎にカウント動作を行うカウンタのカウント値が所定の値Ｎ＝（Ｆe／Ｒini）８×Ｌtsになったら、前記パケット蓄積部から前記ＴＳパケットを一つ出力させることを要旨とする。
【０００９】
また、上記目的を達成するため、第６の態様に係る発明は、入力されたパケットの出力レートを制御する出力レート制御方法であって、入力されたパケットをパケット蓄積部に蓄積するパケット蓄積ステップと、前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最大値が増加傾向にあることを検出する最大値増加検出ステップと、前記パケット蓄積部に蓄積されているパケット蓄積数の一定時間内における最小値が減少傾向にあることを検出する最小値減少検出ステップと、前記最大値増加検出ステップで増加傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを大きくし、前記最小値減少検出ステップで減少傾向にあることが検出された場合は前記パケット蓄積部に蓄積されているパケットの出力レートを小さくする出力制御ステップとを備えたことを要旨とする。
【００１０】
第７の態様に係る発明は、第６の態様に係る発明において、更に、パケットロスが発生した場合にＮＵＬＬパケットを生成し、生成したＮＵＬＬパケットを消失したパケットに代えて挿入するＮＵＬＬパケット挿入ステップを前記パケット蓄積ステップの前段に備えたことを要旨とする。
【００１１】
第８の態様に係る発明は、第６または第７の態様に係る発明において、更に、ＴＳパケットから２つのＰＣＲ値を検出するまでの時間差と、その２つのＰＣＲ値を検出するまでに受信したＴＳパケット数とに基づいて、前記出力制御ステップで利用される初期出力レートを算出する初期出力レート算出ステップを備えたことを要旨とする。
第９の態様に係る発明は、第８の態様に係る発明において、前記出力制御ステップで、前記初期出力レートの値をもとに前記パケット蓄積部から前記ＴＳパケットを出力させることを要旨とする。
第１０の態様に係る発明は、第９の態様に係る発明において、前記出力制御ステップで、前記ＴＳパケットのバイト長をＬts、電圧制御型水晶発振器の中心周波数をＦe、前記初期出力レートをＲiniとした場合、前記電圧制御型水晶発振器からのクロック信号毎にカウント動作を行うカウンタのカウント値が所定の値Ｎ＝（Ｆe／Ｒini）８×Ｌtsになったら、前記パケット蓄積部から前記ＴＳパケットを一つ出力させることを要旨とする。
【発明の効果】
【００１２】
本発明によれば、バッファ蓄積量の突発的な変動に対応することができる出力レート制御装置及び出力レート制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態における出力レート制御装置のブロック図である。
【図２】第１の実施形態における出力レート制御装置の動作を示すフローチャートである。
【図３】第２の実施形態における初期出力レート算出部のブロック図である。
【図４】第２の実施形態における初期出力レート算出部の動作を示すフローチャートである。
【図５】第２の実施形態における切替タイミング生成部のブロック図である。
【図６】第２の実施形態における切替タイミング生成部の動作を示すフローチャートである。
【図７】第３の実施形態におけるＮＵＬＬパケット挿入部のブロック図である。
【図８】第３の実施形態におけるＮＵＬＬパケット挿入部の動作を示すフローチャートである。
【図９】第３の実施形態における出力レート制御装置の要部のブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
（第１の実施形態）
図１は、本発明の第１の実施形態における出力レート制御装置１００のブロック図である。この出力レート制御装置１００は、ネットワークを伝送した際に発生するＴＳパケットの遅延揺らぎを吸収して後段のデコーダにＴＳパケットを出力する装置であって、図１に示すように、ＴＳパケットバッファ１０１と、蓄積パケット計数カウンタ１０２と、最大値／最小値検出部１０３と、サンプルタイマー１０４と、最大値／最小値保持部１０５及び１０６と、最大値増加検出部１０７と、最小値減少検出部１０８と、電圧値設定部１０９と、ＶＣＸＯ１１０と、カウンタ１１１と、比較器１１２と、出力制御部１１３とを備えている。
【００１６】
ＴＳパケットバッファ１０１は、入力されたＴＳパケットを蓄積するパケット蓄積部である。蓄積パケット計数カウンタ１０２は、ＴＳパケットの蓄積数をカウントする。最大値／最小値検出部１０３は、一定時間内におけるカウント値の最大値、最小値を検出する。サンプルタイマー１０４は、一定時間間隔ごとに信号を送出する。最大値／最小値保持部１０５は、カウント値の最大値、最小値を保持する。最大値／最小値保持部１０６は、カウント値の前回の最大値、最小値を保持する。最大値増加検出部１０７は、ＴＳパケットバッファ１０１に蓄積されているパケット蓄積数の一定時間内における最大値が増加傾向にあることを検出する。最小値減少検出部１０８は、ＴＳパケットバッファ１０１に蓄積されているパケット蓄積数の一定時間内における最小値が減少傾向にあることを検出する。電圧値設定部１０９は、ＶＣＸＯ１１０の制御電圧を設定する。ＶＣＸＯ１１０は、制御電圧を変えることによって周波数を調整することができる電圧制御型水晶発振器である。カウンタ１１１は、ＶＣＸＯ１１０からのクロック信号毎にカウント動作を行う。比較器１１２は、カウンタ１１１のカウント値を所定の値Ｎ（後述する）と比較する。出力制御部１１３は、最大値増加検出部１０７によって増加傾向にあることが検出された場合はＴＳパケットバッファ１０１に蓄積されているパケットの出力レートを大きくし、最小値減少検出部１０８によって減少傾向にあることが検出された場合はＴＳパケットバッファ１０１に蓄積されているパケットの出力レートを小さくする。
【００１７】
図２は、本発明の第１の実施形態における出力レート制御装置１００の動作を示すフローチャートである。以下、図２を用いて出力レート制御装置１００の動作を説明する。
【００１８】
まず、出力レート制御装置１００に入力されたＴＳパケットは、ＴＳパケットバッファ１０１に蓄積されると同時に、蓄積パケット計数カウンタ１０２の加算入力端子にも入力される（Ｓ１）。これによって、蓄積パケット計数カウンタ１０２は、ＴＳパケットバッファ１０１への入力ごとにＴＳパケットの蓄積数をカウントし、そのカウント値を最大値／最小値検出部１０３に出力する（Ｓ２）。
【００１９】
最大値／最小値検出部１０３は、一定時間間隔ごとに信号を送出するサンプルタイマー１０４の期間内におけるカウント値の最大値、最小値を検出する（Ｓ３）。そして、サンプルタイマー１０４から送出される一定時間間隔の信号を契機に最大値、最小値を最大値／最小値保持部１０５に出力すると同時に（Ｓ４）、次回の検出のために状態を初期化する。
【００２０】
サンプルタイマー１０４から送出される信号は、最大値／最小値保持部１０５及び１０６に出力される。サンプルタイマー１０４からの信号のタイミングで、最大値／最小値保持部１０５は、現在保持している値を最大値／最小値保持部１０６に出力すると同時に、最大値／最小値検出部１０３からの出力値で保持値を更新する（Ｓ４→Ｓ５）。同一のタイミングで、最大値／最小値保持部１０６は、最大値／最小値保持部１０５からの出力値で保持値を更新する（Ｓ６→Ｓ７）。
【００２１】
最大値／最小値保持部１０５は、保持している最大値（ＭＡＸ）を最大値増加検出部１０７に出力し、保持している最小値（ＭＩＮ）を最小値減少検出部１０８に出力する（Ｓ８、Ｓ１１）。同様に、最大値／最小値保持部１０６は、保持している前回最大値（ＭＡＸ’）を最大値増加検出部１０７に出力し、保持している前回最小値（ＭＩＮ’）を最小値減少検出部１０８に出力する（Ｓ８、Ｓ１１）。
【００２２】
最大値増加検出部１０７は、最大値（ＭＡＸ）と前回最大値（ＭＡＸ’）を比較し、ＭＡＸ＞ＭＡＸ’のとき、最大値が増加傾向にあると判断する（Ｓ９）。同様に、最小値減少検出部１０８は、最小値（ＭＩＮ）と前回最小値（ＭＩＮ’）を比較し、ＭＩＮ＜ＭＩＮ’のとき、最小値が減少傾向にあると判断する（Ｓ１２）。
【００２３】
最大値増加検出部１０７は、最大値が増加傾向にあると判断した場合、電圧値設定部１０９に電圧を上げることを示す電圧制御信号を出力する。また、最小値減少検出部１０８は、最小値が減少傾向にあると判断した場合、電圧値設定部１０９に電圧を下げることを示す電圧制御信号を出力する。なお、最大値が増加傾向にあると同時に最小値が減少傾向にあるとき、すなわち、ＭＡＸ＞ＭＡＸ’かつＭＩＮ＜ＭＩＮ’を満たすときは、いずれを優先するか予め設定しておけば良い。
【００２４】
このとき、最大値増加検出部１０７及び最小値減少検出部１０８から出力される電圧制御信号はそれぞれ一定値であることを想定している。これは、ＭＡＸとＭＡＸ’またはＭＩＮとＭＩＮ’の差分に応じた電圧制御を行なうと、バッファ量が大きく変化した場合に出力レートも大きく変化する可能性があるからである。ただし、制御開始から一定時間以内は差分に応じた信号を出力することで、出力レートが安定するまでの時間を短くすることができる。ここで使用する一定時間の一例としては、最大値の増加及び最小値の減少が同時に発生しないサンプルタイマー１０４の時間を採用することができる。
【００２５】
電圧値設定部１０９は、最大値増加検出部１０７または最小値減少検出部１０８から出力された電圧制御信号に応じて電圧を増加または減少し、ＶＣＸＯ１１０に出力する。ＶＣＸＯ１１０は、電圧値設定部１０９からの電圧信号に応じた発振を行ない（Ｓ１０、Ｓ１３）、その出力はカウンタ１１１に入力される。
【００２６】
カウンタ１１１は、ＶＣＸＯ１１０からのクロック信号毎にカウント動作を行う。カウンタ１１１の出力は比較器１１２に入力される。比較器１１２は、カウント値が所定の値Ｎ（後述する）になったら（Ｓ１４）、パケット読出しタイミング信号を出力し、カウンタ１１１にリセット信号を出力する。カウンタ１１１は、リセット信号の入力でカウント値を０にリセットする。比較器１１２から出力されたパケット読出しタイミング信号は、出力制御部１１３と蓄積パケット計数カウンタ１０２の減算入力端子に入力される。
【００２７】
出力制御部１１３は、パケット読出しタイミング信号が入力されると、ＴＳパケットバッファ１０１から一つのＴＳパケットを読み出して出力させる（Ｓ１５）。同時に、蓄積パケット計数カウンタ１０２は、パケット読出しタイミング信号が入力されると、保持しているカウント値から１だけ減算する（Ｓ１５）。
【００２８】
カウント値Ｎの設定方法について説明する。ＴＳパケットのバイト長をＬts、ＶＣＸＯ１１０の中心周波数をＦe、初期出力レートをＲiniとする。カウント値がＮとなった場合にＴＳパケットを一つ出力するので、カウント値Ｎと初期出力レートＲiniの関係は、Ｒini＝８×Ｌts×（Ｆe／Ｎ）となる。よって、Ｎ＝（Ｆe／Ｒini）８×Ｌtsと計算される。
【００２９】
以上のように、本発明の第１の実施形態における出力レート制御装置１００によれば、一定時間におけるバッファ蓄積量の最大値、最小値と、次の一定時間におけるバッファ蓄積量の最大値、最小値の差分を求め、最大値が増加傾向にある場合は出力レートを大きくし、最小値が減少傾向にある場合は出力レートを小さくするので、バッファ蓄積量の突発的な変動に対応することが可能である。
【００３０】
（第２の実施形態）
ところで、特許文献１では、制御開始時点の出力レートは伝送経路中において予想される値を設定することとしているが、その手法が明確となっていない。このため、予想した出力レートが伝送経路中の実際の値（ビットレート）と大きく異なる可能性がある。従って、予想した出力レートが実際のビットレートよりも小さい場合、バッファがオーバーフロー状態となるため、デコーダへ出力するＴＳデータが欠落し、正常なデコード処理を行なうことができない。反対に、予想した出力レートが実際のビットレートよりも大きい場合、バッファがアンダーフロー状態となるため、デコーダが処理を行なうタイミングでＴＳデータを出力することができず、映像と音声の同期ずれや表示の乱れといった障害が発生する恐れがある。
【００３１】
そこで、本実施形態における出力レート制御装置１００は、制御開始時点から安定した出力レートを得るため、図３に示すように、ＴＳパケットから２つのＰＣＲ値を検出するまでの時間差と、その２つのＰＣＲ値を検出するまでに受信したＴＳパケット数とに基づいて、出力制御部１１３で利用される初期出力レートを算出する初期出力レート算出部１２０を備えている。初期出力レート算出部１２０によって算出される値は、送出側の動作条件により計算毎に多少変動することが予想されることから、設定回数計算値を得、それらの値の最大値を制御開始時点の出力レートとする。
【００３２】
図４は、本発明の第２の実施形態における初期出力レート算出部１２０の動作を示すフローチャートである。以下、図４を用いて初期出力レート算出部１２０の動作を説明する。
【００３３】
まず、ネットワークから受信されたＴＳパケットは、ＴＳパケットバッファ１０１と蓄積パケット計数カウンタ１０２に入力されると同時に、初期出力レート算出部１２０にも入力される（Ｓ２１）。初期出力レート算出部１２０に入力されたＴＳパケットは、パケット数カウンタ１２１とＰＣＲパケット検出部１２２に入力される。
【００３４】
ＰＣＲパケット検出部１２２は、ＴＳパケット中からＰＣＲパケットを検出する（Ｓ２２）。ＰＣＲパケットを検出すると、ＰＣＲ検出信号をパケット数カウンタ１２１に出力し、ＰＣＲパケット中のＰＣＲ値をＰＣＲ値保持部１２３に出力する。
【００３５】
パケット数カウンタ１２１は、ＴＳパケットの数をカウントし、ＰＣＲ検出信号を受信したら、カウント値をビットレート算出部１２５に出力する（Ｓ２３）。これによって、２つのＰＣＲ間にいくつのＴＳパケットが存在するかが分かる。カウント値を出力したパケット数カウンタ１２１は、カウント値をリセットし、入力されるＴＳパケットのカウントを継続する。
【００３６】
ＰＣＲ値保持部１２３は、ＰＣＲパケット検出部１２２からＰＣＲ値（ＰＣＲα）を入力し、次のＰＣＲ値（ＰＣＲβ）が入力されるまで保持する。次のＰＣＲ値（ＰＣＲβ）が入力されたら、保持していたＰＣＲ値（ＰＣＲα）をＰＣＲ値保持部１２４に出力する。ＰＣＲ値保持部１２３とＰＣＲ値保持部１２４は、保持していたＰＣＲ値（ＰＣＲαとＰＣＲβ）を差分値保持部１２６に出力する。差分値保持部１２６は、ＰＣＲαとＰＣＲβの差分値Δｔを算出する（Ｓ２４）。これによって、２つのＰＣＲの時間差が分かる。算出した差分値Δｔは、ビットレート算出部１２５に出力される。
【００３７】
ビットレート算出部１２５は、パケット数カウンタ１２１から入力されるカウント数と、差分値保持部１２６から入力される差分値Δｔから初期出力レートを算出する（Ｓ２５）。初期出力レートの算出方法は、カウント値から求めたＴＳパケットのデータ量を差分値Δｔで除する。例えば、２つのＰＣＲ間（例えば１００ｍｓ）に１００個のＴＳパケットがカウントされたとすると、１００×１８８×８／１００＝１．５０４Ｍｂｉｔ／ｓとなる。このビットレートを初期出力レートとして出力制御部１１３に設定することで、制御開始時点から安定した出力レートを得ることができる。その後、予め定めた時間が経過した後、図１の出力レート制御（第１の実施形態で説明した出力レート制御）に切り替える。
【００３８】
次に、図３の初期出力レート制御から図１の出力レート制御に切り替える処理について説明する。ここでは、図５に示すように、初期出力レート算出部１２０と最大算出値保持部１３１と算出数カウンタ１３２と比較器１３３と既定値保持部１３４とを一括して「切替タイミング生成部１３０」と呼ぶことにする。以下、図６を用いて切替タイミング生成部１３０の構成をその動作とともに説明する。
【００３９】
まず、初期出力レート算出部１２０の出力値（初期出力レート）は、最大算出値保持部１３１に出力され、保持される。また、初期出力レート算出部１２０のＰＣＲパケット検出部１２２から出力される検出信号は、算出数カウンタ１３２に入力される。最大算出値保持部１３１と算出数カウンタ１３２の値は０に初期化された状態とする。算出数カウンタ１３２の値は、検出信号ごとに加算されて比較器１３３に入力され、既定値保持部１３４に保持されている既定値と比較される。比較器１３３は、算出数カウンタ１３２の値が既定値未満の場合、最大算出値保持部１３１に最大値更新許可信号を出力する。
【００４０】
最大算出値保持部１３１は、ＰＣＲパケットが検出されるごとに新たに入力された値（初期出力レート）と、現在保持している値とを比較する。この比較は、ＰＣＲパケットが検出されるタイミングごとに行なわれる（Ｓ３１）。ここで、新たに入力された値が現在保持している値よりも大きい値で、かつ、最大値更新許可信号が入力されている場合、現在保持している値を新たに入力された値で書き換え、初期出力レートとして出力する（Ｓ３２→Ｓ３３→Ｓ３４→Ｓ３５）。
【００４１】
最大算出値保持部１３１における書き換えは、算出数カウンタ１３２が既定値に達するまで行なわれ、既定値に達した以降は、書き換えは行なわれない。この書き換え停止のタイミングで、図３の初期出力レート制御から図１の出力レート制御に切り替える。このとき、比較器１１２が比較する所定の値Ｎは、前述の式  Ｎ＝（Ｆe／Ｒini）８×Ｌts  の初期出力レートＲiniに最大算出値保持部１３１から出力される制御開始時の出力レートを代入することによって求められる。
【００４２】
以上のように、本発明の第２の実施形態における出力レート制御装置１００によれば、受信ＴＳデータ中の２つのＰＣＲ値間のＴＳパケット数から制御開始時点の出力レートを精度良く求めることができるため、制御開始時点から安定した出力レートを得ることが可能である。
【００４３】
（第３の実施形態）
ところで、ネットワーク伝送中にパケットロスがあった場合、バッファ蓄積量が大きく減少するため、バッファ蓄積量が一定値になるまで出力レートも大きく減る。この場合、デコーダでのパケット受信タイミングがずれることによって、映像音声（ＡＶ）の乱れや映像と音声の同期がずれるなどのデコード不良が発生する可能性がある。
【００４４】
そこで、本実施形態における出力レート制御装置１００は、このようなデコード不良を防ぐため、図７に示すように、パケットロスが発生した場合にＮＵＬＬパケットを生成し、生成したＮＵＬＬパケットを消失したパケットに代えて挿入するＮＵＬＬパケット挿入部１４０をＴＳパケットバッファ１０１の前段に備えるようにしている。
【００４５】
図８は、本発明の第３の実施形態におけるＮＵＬＬパケット挿入部１４０の動作を示すフローチャートである。以下、図８を用いてＮＵＬＬパケット挿入部１４０の動作を説明する。
【００４６】
ネットワーク伝送され、ＮＵＬＬパケット挿入部１４０に入力されたＲＴＰパケットは、ＲＴＰパケットバッファ１４１に入力されると同時に、シーケンス番号抽出部１４２に入力される（Ｓ４１）。シーケンス番号抽出部１４２は、ＲＴＰパケットに付与されているシーケンス番号を抽出し、抽出されたシーケンス番号は、ＲＴＰシーケンス番号リストバッファ１４３に登録される（Ｓ４２）。ＲＴＰシーケンス番号リストバッファ１４３は、登録数を登録数比較部１４５に出力する。登録数比較部１４５は、基準値保持部１４４に保持されている所定の基準値と登録数とを比較し（Ｓ４３）、登録数が基準値と等しくなったら、最小シーケンス番号検出部１４６に読出し要求信号を出力する（Ｓ４４）。最小シーケンス番号検出部１４６は、読出し要求信号が入力されると、ＲＴＰシーケンス番号リストバッファ１４３から最小シーケンス番号を抽出する（Ｓ４５）。そして、抽出した最小シーケンス番号を直前シーケンス番号保持部１４７から出力されている番号（直前値）と比較する（Ｓ４６）。
【００４７】
ここで、最小シーケンス番号と直前値が連続している場合（Ｓ４６）、最小シーケンス番号検出部１４６は、パケットロスが発生していないと判断し、最小シーケンス番号を示す読み出し信号を読出し出力部１４９に出力する（Ｓ４７）。最小シーケンス番号と直前値が連続している場合とは、具体的には、最小シーケンス番号が直前値より１大きい場合である。読出し出力部１４９は、最小シーケンス番号検出部１４６から読出し信号が入力されると、ＲＴＰパケットバッファ１４１からＲＴＰパケットを読み出し、ＴＳパケット抽出出力部１５０に出力する。ＴＳパケット抽出出力部１５０は、ＲＴＰパケットからＴＳパケットを抽出して出力切り替え部１５１に出力する（Ｓ４８→Ｓ４９）。また、最小シーケンス番号検出部１４６からの読出し信号を契機に、ＲＴＰシーケンス番号リストバッファ１４３では、該当するシーケンス番号が削除され、直前シーケンス番号保持部１４７では、その読出し信号に示される最小シーケンス番号が直前値として上書きされる。
【００４８】
一方、最小シーケンス番号と直前値が不連続である場合（Ｓ４６）、最小シーケンス番号検出部１４６は、パケットロスが発生していると判断し、消失したＲＴＰパケット数を示す不連続信号をＮＵＬＬパケット生成部１４８に出力する。この消失パケット数は、直前シーケンス番号保持部１４７からの番号との差分として計算される。ＮＵＬＬパケット生成部１４８は、不連続検出信号の受信を契機に、消失パケット数に相当するＮＵＬＬパケットを生成して出力切り替え部１５１に出力する（Ｓ５０）。出力切り替え部１５１には、ＴＳパケット抽出出力部１５０によってＲＴＰパケットから抽出されたＴＳパケットと、ＮＵＬＬパケット生成部１４８から出力されているＮＵＬＬパケットとが入力されることになる。出力切り替え部１５１は、最小シーケンス番号検出部１４６から不連続信号が出力されている間、ＮＵＬＬパケット生成部１４８から出力されているＮＵＬＬパケットを出力する（Ｓ５１）。
【００４９】
以上のように、本発明の第３の実施形態における出力レート制御装置１００によれば、ネットワーク伝送中にパケットロスが発生した場合は、そのパケットロスが発生した部分にＮＵＬＬパケットが挿入されるので、ＴＳパケットをデコーダへ渡すタイミングのずれがなくなり、映像音声の乱れや映像と音声の同期がずれるなどのデコード不良を防ぐことが可能となる。
【００５０】
なお、本実施形態における出力レート制御装置１００の構成を整理すると、図９に示すようになる。すなわち、ＮＵＬＬパケット挿入部１４０にはＲＴＰパケットが入力され、ＮＵＬＬパケット挿入部１４０からはＴＳパケットが出力される。このように出力されたＴＳパケットは、蓄積パケット計数カウンタ１０２、ＴＳパケットバッファ１０１、切替タイミング生成部１３０に入力されることになる。この出力レート制御装置１００は、最大値／最小値検出部１０３などの上述した各処理部（図示せず）を備えているのはもちろんである。
【００５１】
また、第１から第３の実施形態ではＴＳを例示して説明したが、本発明はこれに限定されるものではない。例えば、第１の実施形態や第３の実施形態では、ＰＳ（Program Stream）をＴＳに代えて採用することも可能である。
【００５２】
更に、本発明は、出力レート制御装置１００として実現することができるだけでなく、このような出力レート制御装置１００が備える特徴的な処理部をステップとする出力レート制御方法として実現したり、それらのステップをコンピュータに実行させる出力レート制御プログラムとして実現したりすることもできる。このようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【符号の説明】
【００５３】
１００…出力レート制御装置
１０１…ＴＳパケットバッファ（パケット蓄積部）
１０７…最大値増加検出部
１０８…最小値減少検出部
１１３…出力制御部
１４０…ＮＵＬＬパケット挿入部
１２０…初期出力レート算出部
【図１】
0005190490.tif 000002
【図２】
0005190490.tif 000003
【図３】
0005190490.tif 000004
【図４】
0005190490.tif 000005
【図５】
0005190490.tif 000006
【図６】
0005190490.tif 000007
【図７】
0005190490.tif 000008
【図８】
0005190490.tif 000009
【図９】
0005190490.tif 000010