(57)【特許請求の範囲】
【請求項１】
符号化されたデータが格納された、パケット長が固定の複数のトランスポートパケットからなり、前記符号化の際の基準時間である所定の周波数のタイムスタンプが一定の時間間隔で打刻されているトランスポートストリームを入力とし、該入力トランスポートストリームの伝送レートを調整する伝送レート調整装置であって、
バッファと、
前記入力トランスポートストリームのトランスポートパケットを順次、前記バッファに書き込むとともに、前記入力トランスポートストリーム中のタイムスタンプを検出するバッファ書き込み部と、
前記符号化されたデータを復号するデコーダのシステムクロックおよび分周比を指定する分周比信号をそれぞれ入力とし、該入力分周比信号により指定された分周比で該入力システムクロックを分周したクロックで決まる伝送レートで、前記バッファから順次読み出したトランスポートパケットを前記デコーダに送出するバッファ読み出し部と、を有し、
前記バッファ書き込み部は、前記タイムスタンプを検出すると、今回検出した第１のタイムスタンプと前回検出した第２のタイムスタンプとの差分と、該第１および第２のタイムスタンプ間に存在するトランスポートパケットの数と、前記第２のタイムスタンプの値とを、前記第２のタイムスタンプが打刻されたトランスポートパケットの付加情報として前記バッファに格納し、
前記バッファ読み出し部は、前記第２のタイムスタンプが打刻されているトランスポートパケットを前記バッファから読み出すと、該トランスポートパケットに付与されている前記付加情報に基づいて、前記バッファから読み出したトランスポートパケットの間にＮＵＬＬパケットを挿入して前記伝送レートにて前記トランスポートパケットが送出されるように調整を図り、該ＮＵＬＬパケットの挿入だけでは調整しきれない場合は、前記第１のタイムスタンプが打刻されたトランスポートパケットを前記バッファから読み出した際に、該トランスポートパケットのタイムスタンプを書き換える、伝送レート調整装置。
【請求項２】
前記バッファ読み出し部は、前記バッファから読み出したトランスポートパケットの間に前記ＮＵＬＬパケットを均等に挿入する、請求項１に記載の伝送レート調整装置。
【請求項３】
前記バッファ読み出し部は、前記第１および第２のタイムスタンプの差分と前記入力システムクロックを分周したクロックで決まる伝送レートとに基づいて、伝送レート調整後の前記第１および第２のタイムスタンプの間のトランスポートパケットの数を計算して、該計算結果から挿入すべきＮＵＬＬパケット数を計算するとともに、該計算したＮＵＬＬパケット数を前記計算したトランスポートパケットの数で割った演算結果が商と余りを含む場合に、前記商に対応する数のＮＵＬＬパケットを前記バッファから読み出したトランスポートパケット毎に挿入し、さらに、前記余りに対応する数のＮＵＬＬパケットを、前記ＮＵＬＬパケットを挿入した状態で均等に挿入する、請求項２に記載の伝送レート調整装置。
【請求項４】
前記バッファ読み出し部は、前記第１および第２のタイムスタンプの差分と前記入力システムクロックを分周したクロックで決まる伝送レートとに基づいて、伝送レート調整後の前記第１および第２のタイムスタンプの間のトランスポートパケットの数を計算して、該計算結果から挿入すべきＮＵＬＬパケットの数を算出するとともに、該計算した挿入すべきＮＵＬＬパケットの数を前記第１および第２のタイムスタンプ間に存在するトランスポートパケットの数で割った基準平均挿入間隔が小数である場合は、整数部の値を第１の挿入間隔とし、これに１を足した値を第２の挿入間隔として、ＮＵＬＬパケットを挿入した後のＮＵＬＬパケットの平均挿入間隔と前記基準平均挿入間隔との大小関係に基づいて、前記第１および第２の挿入間隔を選択し、該選択した挿入間隔の値の数のトランスポートパケット毎に、ＮＵＬＬパケットを１個挿入する、請求項２に記載の伝送レート調整装置。
【請求項５】
前記バッファから読み出したトランスポートパケットの各パケット間に挿入されるＮＵＬＬパケットの数の差は、１個以内である、請求項２から４のいずれか１項に記載の伝送レート調整装置。
【請求項６】
符号化されたデータが格納された、パケット長が固定の複数のトランスポートパケットからなり、前記符号化の際の基準時間である所定の周波数のタイムスタンプが一定の時間間隔で打刻されているトランスポートストリームの伝送レートを調整する伝送レート調整方法であって、
前記トランスポートストリームのトランスポートパケットを順次、バッファに書き込む第１のステップと、
前記符号化されたデータを復号するデコーダのシステムクロックを、外部から供給される分周比信号により指定された分周比で分周し、該分周クロックで決まる伝送レートで、前記バッファから順次読み出したトランスポートパケットを前記デコーダに送出する第２のステップと、を含み、
前記第１のステップは、
前記入力トランスポートストリーム中のタイムスタンプを検出するステップと、
前記タイムスタンプを検出すると、今回検出した第１のタイムスタンプと前回検出した第２のタイムスタンプとの差分と、該第１および第２のタイムスタンプ間に存在するトランスポートパケットの数と、前記第２のタイムスタンプの値とを、前記第２のタイムスタンプが打刻されたトランスポートパケットの付加情報として前記バッファに格納するステップと、を含み、
前記第２のステップは、
前記第２のタイムスタンプが打刻されているトランスポートパケットを前記バッファから読み出すと、該トランスポートパケットに付与されている前記付加情報に基づいて、前記バッファから読み出したトランスポートパケットの間にＮＵＬＬパケットを挿入して前記伝送レートにて前記トランスポートパケットが送出されるように調整を図るステップと、
前記ＮＵＬＬパケットの挿入だけでは調整しきれない場合は、前記第１のタイムスタンプが打刻されたトランスポートパケットを前記バッファから読み出した際に、該トランスポートパケットのタイムスタンプを書き換えるステップと、を含む、伝送レート調整方法。
【請求項７】
前記第２のステップは、前記バッファから読み出したトランスポートパケットの間に前記ＮＵＬＬパケットを均等に挿入するステップを含む、請求項６に記載の伝送レート調整方法。
【請求項８】
前記ＮＵＬＬパケットを均等に挿入するステップは、
前記第１および第２のタイムスタンプの差分と前記入力システムクロックを分周したクロックで決まる伝送レートとに基づいて、伝送レート調整後の前記第１および第２のタイムスタンプの間のトランスポートパケットの数を計算して、該計算結果から挿入すべきＮＵＬＬパケット数を計算するステップと、
前記計算したＮＵＬＬパケット数を前記計算したトランスポートパケットの数で割った演算結果が商と余りを含む場合に、前記商に対応する数のＮＵＬＬパケットを前記バッファから読み出したトランスポートパケット毎に挿入し、さらに、前記余りに対応する数のＮＵＬＬパケットを、前記ＮＵＬＬパケットを挿入した状態で均等に挿入するステップと、を含む、請求項７に記載の伝送レート調整方法。
【請求項９】
前記ＮＵＬＬパケットを均等に挿入するステップは、
前記第１および第２のタイムスタンプの差分と前記入力システムクロックを分周したクロックで決まる伝送レートとに基づいて、伝送レート調整後の前記第１および第２のタイムスタンプの間のトランスポートパケットの数を計算して、該計算結果から挿入すべきＮＵＬＬパケットの数を算出するステップと、
前記計算した挿入すべきＮＵＬＬパケットの数を前記第１および第２のタイムスタンプ間に存在するトランスポートパケットの数で割った基準平均挿入間隔が小数である場合は、整数部の値を第１の挿入間隔とし、これに１を足した値を第２の挿入間隔として、ＮＵＬＬパケットを挿入した後のＮＵＬＬパケットの平均挿入間隔と前記基準平均挿入間隔との大小関係に基づいて、前記第１および第２の挿入間隔を選択し、該選択した挿入間隔の値の数のトランスポートパケット毎に、ＮＵＬＬパケットを１個挿入するステップと、を含む、請求項７に記載の伝送レート調整方法。
【請求項１０】
前記バッファから読み出したトランスポートパケットの各パケット間に挿入されるＮＵＬＬパケットの数の差が１個以内である、請求項７から９のいずれか１項に記載の伝送レート調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランスポートストリームの伝送レートを調整する方法および装置に関し、特に、ＭＰＥＧ(Moving Picture Experts Group)方式に従って圧縮符号化されたトランスポートストリーム（ＭＰＥＧ−ＴＳ）の伝送レートを調整する方法および装置に関する。
【背景技術】
【０００２】
近年、メモリカードなどの記録媒体に格納されたＭＰＥＧファイルを再生する装置が普及してきている。この種の再生装置においては、ＭＰＥＧファイルをＭＰＥＧ２−ＴＳでインターフェースを行うＭＰＥＧデコーダが用いられる。一般に、記録媒体には、様々な伝送レートのデータがＭＰＥＧファイルとして格納されることから、ＭＰＥＧファイルから読み出したＭＰＥＧ２−ＴＳの伝送レートも様々である。したがって、ＭＰＥＧファイルから読み出したＭＰＥＧ２−ＴＳの伝送レートが、ＭＰＥＧデコーダに適した伝送レートと異なる場合がある。このような場合は、ＭＰＥＧファイルから読み出したＭＰＥＧ２−ＴＳをＭＰＥＧデコーダに適した伝送レートに変換する必要がある。
【０００３】
ＭＰＥＧファイルから読み出したＭＰＥＧ２−ＴＳをＭＰＥＧデコーダに適した伝送レートで出力する手法として、例えば、ＴＳパケットに打刻されている、プログラム時刻基準参照値であるＰＣＲ（Program Clock Reference）を利用して、ＰＬＬ回路でクロックを再生し、その再生クロックに合わせて、ＭＰＥＧ２−ＴＳをＭＰＥＧデコーダへ送出する方法がある。
【０００４】
上記の他、特許文献１に記載の再生装置もある。以下に、この再生装置の構成および動作を具体的に説明する。
【０００５】
ＭＰＥＧ−ＴＳは、１本のストリームの中にビデオ信号、オーディオ信号、データなどの複数のプログラムを多重化することが可能である。図１２に、ＭＰＥＧ−ＴＳのパケット構成を示す。
【０００６】
ＭＰＥＧ−ＴＳは、図１２の（Ａ）に示すような、パケット長が１８８バイトのトランスポートパケット（以下、単にＴＳパケットと称す）が複数個集まって構成される。各ＴＳパケットは、図１２の（Ｂ）に示すように、ヘッダ５１とペイロード５２からなる。ヘッダ５１は、図１２の（Ｃ）に示すように、３２ビットのトランスポートヘッダと、アダプテーションフィールド５４からなる。トランスポートヘッダは、パケット識別情報である１３ビットのＰＩＤ（Packet Identification）５３を含む。アダプテーションフィールド５４は、図１２の（Ｄ）に示すように、プログラム時刻基準参照値である４８ビットのＰＣＲ５５を含む。ＰＣＲ５５は、２７ＭＨｚのタイムスタンプである。符号化したときの基準時間をＭＰＥＧデコーダのＳＴＣ（System Time Clock）で再現するために、このＰＣＲ５５が参照される。
【０００７】
ＰＣＲ５５は、図１２の（Ｅ）に示すように、３００カウントを繰り返す９ビットのエクステンション（ｅｘｔｅｎｓｉｏｎ）部分６０と、エクステンション部分６０の３００カウントにつき１カウントする３３ビットのベース（ｂａｓｅ）部分５８と６ビットの予約領域５９の計４８ビットで記述される。
【０００８】
図１３に、特許文献１に記載されたトランスポートストリーム再生装置の構成を示す。図１３を参照すると、トランスポートストリーム再生装置は、再生処理部１０２、メモリ１０３、ＰＣＲ検出部１０４、タイミング制御部１０５、ＰＣＲ演算部１０６、ＮＵＬＬパケット生成部１０７およびセレクタ１０８からなる。
【０００９】
記録媒体１００には、ＭＰＥＧ−ＴＳが２７Ｍｂｐｓの伝送レートとは異なる記録レートで記録されている。再生処理部１０２は、記録媒体１００からＭＰＥＧ−ＴＳを再生し、その再生したＭＰＥＧ−ＴＳをメモリ１０３とＰＣＲ検出部１０４に転送する。ＰＣＲ検出部１０４は、再生ＭＰＥＧ−ＴＳ中のＰＣＲを検出し、その検出毎にＰＣＲ検出信号をタイミング制御部１０５に送出する。
【００１０】
ＮＵＬＬパケット生成部１０７は、ダミーのＴＳパケットであるＮＵＬＬパケットを生成する。このＮＵＬＬパケットのパケット長も、ＴＳパケットと同様、１８８バイトである。セレクタ１０８は、一方の入力に、メモリ１０３から読み出されたＭＰＥＧ−ＴＳが供給され、他方の入力に、ＮＵＬＬパケット生成部１０７で生成されたＮＵＬＬパケットが供給されており、これら入力のいずれかを選択して出力する。ＰＣＲ演算部１０６は、ＮＵＬＬパケットの挿入により、現ＰＣＲと次ＰＣＲの間隔が本来あるべきＰＣＲ間隔を越えてしまう場合に、本来あるべきＰＣＲ間隔となるような次ＰＣＲの値を演算する。
【００１１】
タイミング制御部１０５は、入力ＰＣＲ検出信号の検出ＰＣＲ値を監視するとともに、２７ＭＨｚのクロックに合わせて、メモリ１０３から読み出された再生ＭＰＥＧ−ＴＳをセレクタ１０８から出力させる。タイミング制御部１０５は、現ＰＣＲと次ＰＣＲの差分値を演算し、該演算結果に基づいて、メモリ１０３から読み出されたＭＰＥＧ−ＴＳを２７Ｍｂｐｓの伝送レートで出力する場合に、現ＰＣＲと次ＰＣＲの間に２７ＭＨｚのクロックで何ビット分のデータを送信することができるかを判断する。次ＰＣＲを含むＭＰＥＧ−ＴＳパケットを出力する際に、ＰＣＲ間隔に矛盾が生じてしまう場合は、タイミング制御部１０５は、メモリ１０３からの次ＰＣＲを含むＭＰＥＧ−ＴＳパケットの読み出しは行わずに、ＮＵＬＬパケット生成部１０７で生成したＮＵＬＬパケットをその代わりに挿入する。さらに１つのＮＵＬＬパケットを追加し、その次に次ＰＣＲを含むＭＰＥＧ−ＴＳパケットを出力する場合に、現ＰＣＲと次ＰＣＲの間隔が本来あるべきＰＣＲ間隔を越えてしまう場合は、タイミング制御部１０５は、そのＮＵＬＬパケットの挿入は行わずに、次ＰＣＲを含むＴＳパケットをメモリ１０３から読み出す。その際、読み出したＴＳパケットに打刻された次ＰＣＲの値を、その出力タイミングに合うように、ＰＣＲ演算部１０６にて演算したＰＣＲ値に置き換えて出力する。これにより、ＰＣＲに不整合のない出力ＭＰＥＧ−ＴＳを得る。
【特許文献１】特開２００１−３３９６８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上述した従来の再生方法および再生装置には、以下のような問題がある。
【００１３】
ＰＣＲを利用して、ＰＬＬ回路でクロックを再生し、その再生クロックに合わせて、ＭＰＥＧ２−ＴＳをＭＰＥＧデコーダへ送出する方法においては、ＰＬＬ回路を用いたクロック再生回路を必要とするため、回路が大掛かりになり、コストが増大する、という問題がある。加えて、ＭＰＥＧ２−ＰＳ（プログラムストリーム）からＭＰＥＧ２―ＴＳへソフトウェア変換を行ったデータをＭＰＥＧデコーダで再生する場合には、ＭＰＥＧ２―ＴＳのＰＣＲ間のバイト数から計算される伝送レートが一定にならないことがあるため、上記のようなＰＬＬ回路を用いたクロックの再生は困難である。
【００１４】
特許文献１に記載された再生装置は、伝送レートが２５Ｍｂｐｓの記録データ（ＭＰＥＧファイル）を、伝送レートが２７ＭｂｐｓのＭＰＥＧ−ＴＳとして再生して出力する装置であり、その再生ＭＰＥＧ−ＴＳを出力するために、周波数が２７ＭＨｚのクロックを使用する。この出力用の２７ＭＨｚのクロックは、ＰＣＲから算出されるクロックと一致している必要がある。このため、特許文献１に記載された再生装置においても、ＰＬＬ回路を用いたクロック再生回路を必要とし、上記と同様な問題を生じる。
【００１５】
本発明の目的は、上記問題を解決し、ＰＬＬ回路を用いずに、ＭＰＥＧ−ＴＳを所望の伝送レートで出力することのできる、伝送レート調整装置を提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明は、
符号化されたデータが格納された、パケット長が固定の複数のトランスポートパケットからなり、前記符号化の際の基準時間である所定の周波数のタイムスタンプ（ＰＣＲ）が一定の時間間隔で打刻されているトランスポートストリームを入力とし、該入力トランスポートストリームの伝送レートを調整する伝送レート調整装置であって、
バッファと、
前記入力トランスポートストリームのトランスポートパケットを順次、前記バッファに書き込むとともに、前記入力トランスポートストリーム中のタイムスタンプを検出するバッファ書き込み部と、
前記符号化されたデータを復号するデコーダのシステムクロックおよび分周比を指定する分周比信号をそれぞれ入力とし、該入力分周比信号により指定された分周比で該入力システムクロックを分周したクロックで決まる伝送レートで、前記バッファから順次読み出したトランスポートパケットを前記デコーダに送出するバッファ読み出し部と、を有し、
前記バッファ書き込み部は、前記タイムスタンプを検出すると、今回検出した第１のタイムスタンプと前回検出した第２のタイムスタンプとの差分と、該第１および第２のタイムスタンプ間に存在するトランスポートパケットの数と、前記第２のタイムスタンプの値とを、前記第２のタイムスタンプが打刻されたトランスポートパケットの付加情報として前記バッファに格納し、
前記バッファ読み出し部は、前記第２のタイムスタンプが打刻されているトランスポートパケットを前記バッファから読み出すと、該トランスポートパケットに付与されている前記付加情報に基づいて、前記バッファから読み出したトランスポートパケットの間にＮＵＬＬパケットを挿入して前記伝送レートにて前記トランスポートパケットが送出されるように調整を図り、該ＮＵＬＬパケットの挿入だけでは調整しきれない場合は、前記第１のタイムスタンプが打刻されたトランスポートパケットを前記バッファから読み出した際に、該トランスポートパケットのタイムスタンプを書き換える、ことを特徴とする。
【００１７】
上記の構成によれば、デコーダ（ＭＰＥＧデコーダ）のシステムクロックを分周したクロックを、デコーダとのインターフェースのクロックとして用いているため、ＰＬＬ回路などによるクロック再生を行う必要がない。
【００１８】
また、バッファから順次読み出したトランスポートパケットの伝送レートが、インターフェースクロックで決まるインターフェースの伝送レートと一致するように、トランスポートパケット間にＮＵＬＬパケットが挿入されるとともに、タイムスタンプ（ＰＣＲ）の書き換えが行われるので、例えば、ＭＰＥＧ２−ＰＳ（プログラムストリーム）からＭＰＥＧ２―ＴＳへソフトウェア変換を行ったデータをＭＰＥＧデコーダで再生するような場合において、ＭＰＥＧ２―ＴＳのＰＣＲ間のバイト数から計算される伝送レートが一定にならない場合でも、その伝送レートがインターフェースクロックで決まるインターフェースの伝送レートと一致するように調整される。これにより、ＭＰＥＧ２−ＴＳを正しい伝送レートでＭＰＥＧデコーダへ送出することが可能となり、デコーダ側でのクロックの再生に不具合を生じることはない。
【発明の効果】
【００１９】
本発明によれば、ＰＬＬ回路などを含むクロック再生回路を用いる必要がない分、コストを削減することができるとともに、回路規模を小さくすることができる。
【００２０】
また、ＭＰＥＧ２―ＴＳのＰＣＲ間のバイト数から計算される伝送レートが一定にならない場合でも、ＭＰＥＧ２−ＴＳを正しい伝送レートでＭＰＥＧデコーダへ送出することができるので、従来のものより、デコーダに対する安定したデコード動作を提供することができる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施形態について図面を参照して説明する。
【００２２】
図１は、本発明の一実施形態である伝送レート調整装置の概略構成を示すブロック図である。図１に示す伝送レート調整装置２は、ＭＰＥＧ２−ＴＳファイル１から読み出したＭＰＥＧ２−ＴＳの伝送レートを調整するものであって、バッファ書き込み部５、バッファ６およびバッファ読み出し部７からなる。
【００２３】
ＭＰＥＧ２−ＴＳファイル１には、不図示のデータ送り側の装置にて扱われる伝送レートでＭＰＥＧ２−ＴＳが格納されている。ＭＰＥＧ２−ＴＳファイル１に格納されるＭＰＥＧ２−ＴＳは、ＭＰＥＧ２−ＰＳからＭＰＥＧ２―ＴＳへソフトウェア変換を行ったデータであってもよい。ＭＰＥＧ２−ＴＳは、図１２に示したような構成のＴＳパケットの複数の集まりである。ＴＳパケットのアダプテーションフィールドには、２７ＭＨｚのタイムスタンプであるＰＣＲが打刻される。ＰＣＲは、データ送り側の装置における符号化時の基準時間をＭＰＥＧデコーダ３のＳＴＣ（System Time Clock）で再現するために用いられるものである。このＰＣＲに基づいて、ＰＣＲが打刻されたパケットがＭＰＥＧデコーダ３に到着する予定時刻を知ることができる。
【００２４】
伝送レート調整装置２とＭＰＥＧデコーダ３の間は、８ビットのＴＳパケットデータとＴＳパケットクロックでインターフェースされる。ＭＰＥＧデコーダ３は、伝送レート調整装置２から供給されるＭＰＥＧ２−ＴＳ中のアダプテーションフィールドに打刻してあるＰＣＲを利用して、ＶＣＸＯ４を含むＰＬＬ回路でシステムクロックを再生するとともに、その再生したシステムクロックを伝送レート調整装置２に供給する。このＰＬＬ回路で再生したシステムクロックは、データ送り側の装置のシステムクロックと一致する。
【００２５】
図１に示すバッファ書き込み部５は、ＰＣＲ間パケット数計測部９、ＰＣＲ検出部１０、前ＰＣＲ格納部１１、ＰＣＲ差分計算部１２、およびバッファ書き込み制御部１３からなる。ＭＰＥＧ２−ＴＳファイル１から読み出されたＭＰＥＧ２−ＴＳは、ＰＣＲ間パケット数計測部９、ＰＣＲ検出部１０およびバッファ書き込み制御部１３のそれぞれに供給されている。
【００２６】
ＰＣＲ検出部１０は、ＭＰＥＧ２−ＴＳとして供給されるＴＳパケットのそれぞれについて、アダプテーションフィールドにＰＣＲが打刻されているか否かを調べる。ＰＣＲが打刻してあった場合には、ＰＣＲ検出部１０は、そのＰＣＲの値を取得する。
【００２７】
ＰＣＲ間パケット数計測部９は、ＰＣＲが打刻されているパケットから次のＰＣＲが打刻されているパケットの１つ前のパケットまでのパケット数をＰＣＲ間パケット数として計測する。ＰＣＲ間パケット数計測部９は、ＰＣＲ検出部１０で次のＰＣＲが検出されると、現在の計測値が０にリセットされるようになっている。
【００２８】
前ＰＣＲ格納部１１は、ＰＣＲ検出部１０で取得されたＰＣＲの値を次のＰＣＲが検出されるまで保持する。ＰＣＲ差分計算部１２は、ＰＣＲ検出部１０で取得されたＰＣＲ値と、前ＰＣＲ格納部１１に格納されている、ＰＣＲ検出部１０で取得された１つ前のＰＣＲ値との差分を計算する。ＰＣＲ間パケット数計測部９で計測されたＰＣＲ間パケット数と、ＰＣＲ差分計算部１２で計算されたＰＣＲ差分と、ＰＣＲ格納部１１に格納されている１つ前のＰＣＲ値とが、それぞれ付加情報としてバッファ書き込み制御部１３に供給されている。
【００２９】
バッファ書き込み制御部１３は、ＭＰＥＧ２−ＴＳファイル１から読み出されたＭＰＥＧ２−ＴＳをＴＳパケット単位にバッファ６に書き込む。ＰＣＲが打刻されているパケットをバッファ６に書き込む際は、バッファ書き込み制御部１３は、前ＰＣＲ格納部１１に格納されているＰＣＲ、ＰＣＲ間パケット数計測部９で計測されたＰＣＲ間パケット数、ＰＣＲ差分計算部１２で計算されたＰＣＲ差分を、１つ前のＰＣＲが打刻されたパケットの付加情報としてバッファ６に書き込む。
【００３０】
図２に、バッファ６に格納されるパケットおよびその付加情報を模式的に示す。この例では、ＴＳパケットＴ0，Ｔ1，Ｔ2，・・・，Ｔn，Ｔn+1，Ｔn+2，・・・，Ｔm，Ｔm+1，Ｔm+2，・・・がこの順番でバッファ６に格納されている。ＴＳパケットＴ0，Ｔn，Ｔmが、ＰＣＲが打刻されたＴＳパケットであり、それぞれに付加情報が付与されている。ＴＳパケットＴ0の付加情報は、ＰＣＲ間パケット数計測部９で計測された、ＴＳパケットＴ0，ＴnのＰＣＲ間パケット数と、ＰＣＲ差分計算部１２で計算された、ＴＳパケットＴ0，ＴnのＰＣＲ差分と、ＰＣＲ格納部１１に格納されているＴＳパケットＴ0のＰＣＲ値とを含む。このように、ＰＣＲが打刻されているパケットには、次のＰＣＲが打刻されたパケットが供給された時点で取得される付加情報が一緒に格納される。
【００３１】
図１に示すバッファ読み出し部７は、バッファ６からＴＳパケットを読み出すものであって、クロック分周部１４、バッファ読み出し制御部１５、ＰＣＲ差分補正部１６、伝送レート計算部１７、挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部１８、ＰＣＲ補正量格納部１９、ＰＣＲ補正部２０、ＰＣＲ書き換え部２１、ＮＵＬＬパケット挿入制御部２２、ＮＵＬＬパケット生成部２３、ＮＵＬＬパケット挿入部２４、およびパケット送出部２５を有する。
【００３２】
クロック分周部１４および伝送レート計算部１７には、分周比入力信号２６が供給されている。クロック分周部１４は、ＶＣＸＯ４から出力されるＭＰＥＧデコーダ３の２７ＭＨｚのシステムクロックを分周比入力信号２６で定められる分周比で分周し、その分周クロックをＭＥＰＧデコーダ３へのトランスポートストリームのインターフェースクロック（ＴＳクロック）として出力する。
【００３３】
バッファ読み出し制御部１５は、バッファ６から順次、ＴＳパケットを読み出して、ＰＣＲ書き換え部２１に供給する。ＰＣＲが打刻されているＴＳパケットについては、バッファ読み出し制御部１５は、付加情報（ＰＣＲ値、ＰＣＲ間パケット数、ＰＣＲ差分）も一緒に読み出す。読み出された付加情報のうち、ＰＣＲ差分はＰＣＲ差分補正部１６に供給され、ＰＣＲ間パケット数は挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部１８に供給され、ＰＣＲ値はＰＣＲ補正部２０に供給される。
【００３４】
ＰＣＲ差分補正部１６は、バッファ読み出し制御部１５から供給されたＰＣＲ差分を、ＰＣＲ補正量格納部１９に格納されているＰＣＲ補正量で補正する。伝送レート計算部１７は、分周比入力信号２６で定められる分周比からＭＰＥＧデコーダ３への伝送レートを計算する。例えば、分周比が４であるとき、ＴＳクロックは、２７ＭＨｚの１／４の周波数である６.７５ＭＨｚとなる。パケット送出部２５の出力であるＴＳデータは８ビットであるので、ＭＰＥＧデコーダ３への伝送レートは５４Ｍｂｐｓ（＝６．７５ＭＨｚ×８ビット）と計算される。
【００３５】
挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部１８は、バッファ読み出し制御部１５から供給されたＰＣＲ間パケット数と、ＰＣＲ差分補正部１６で補正されたＰＣＲ差分と、伝送レート計算部１７で計算された伝送レートとに基づいて、バッファ６から読み出したトランスポートストリームの伝送レートを、伝送レート計算部１７で計算された伝送レートに一致させるために、挿入すべきＮＵＬＬパケット数を計算するとともに、ＮＵＬＬパケットの挿入だけでは調整しきれない端数部分を補償するために、次のＰＣＲが打刻されているパケットのＰＣＲ値を補正するための次ＰＣＲ補正量を計算する。
【００３６】
ＰＣＲ補正量格納部１９は、挿入ＮＵＬＬパケット数/次ＰＣＲ補正量計算部１８で計算された次ＰＣＲ補正量を格納する。ＰＣＲ補正部２０は、バッファ読み出し制御部１５から供給されたＰＣＲを、ＰＣＲ補正量格納部１９に格納されているＰＣＲ補正量で補正する。ＰＣＲ書き換え部２１は、バッファ読み出し制御部１５から供給された、ＰＣＲが打刻されているパケットに対して、そのパケットに打刻されているＰＣＲを、ＰＣＲ補正部２０で補正されたＰＣＲで書き換える。
【００３７】
ＮＵＬＬパケット挿入制御部２２は、挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部１８で計算された挿入ＮＵＬＬパケット数と、バッファ読み出し制御部１５で読み出されたＰＣＲ間パケット数とに基づいて、ＮＵＬＬパケットの挿入間隔と挿入数を決定し、ＮＵＬＬパケットを挿入すべきタイミングを示す挿入信号を出力する。
【００３８】
ＮＵＬＬパケット生成部２３は、伝送レート調整のために、バッファ読み出し制御部１５で読み出されたトランスポートパケットに挿入するためのＮＵＬＬパケットを生成する。ＮＵＬＬパケット挿入部２４は、ＮＵＬＬパケット挿入制御部２２から出力される挿入信号に従って、ＮＵＬＬパケット生成部２３で生成されたＮＵＬＬパケットをバッファ読み出し制御部１５で読み出されたＴＳパケット間に挿入する。パケット送出部２５は、ＮＵＬＬパケット挿入部２４でＮＵＬＬパケットが挿入されたパケットを８ビットのＴＳデータとしてＴＳクロックでＭＰＥＧデコーダ３へ送出する。
【００３９】
本実施形態の伝送レート調整装置２では、バッファ書き込み部５で取得した付加情報に基づいて、バッファ読み出し部７が、ＭＰＥＧ２−ＴＳへのＮＵＬＬパケットの挿入およびＰＣＲの書き換えを行うことで、伝送レートの調整が行われる。
【００４０】
図３は、伝送レートの調整を説明するための図である。元のトランスポートストリームは、ＭＰＥＧ２−ＴＳファイル１から読み出されたＭＰＥＧ２−ＴＳであり、複数のＴＳパケットＴＳ０，ＴＳ１，ＴＳ２，ＴＳ３，ＴＳ４，ＴＳ５，・・・を含む。ＴＳパケットＴＳ０のアダプテーションフィールドにはＰＣＲ０が打刻されている。ＴＳパケットＴＳ４のアダプテーションフィールドにはＰＣＲ１が打刻されている。この元のトランスポートストリーム中のＰＣＲ０、ＰＣＲ１は、符号化時の基準時間をＭＰＥＧデコーダ３のＳＴＣで再現するために用いられる時間情報であり、図３中の時間軸上の時間とは関係しない。
【００４１】
図３に示すＮＵＬＬパケットが挿入されたトランスポートストリームは、ＮＵＬＬパケット挿入部２４によって元のトランスポートストリームの各パケット間にＮＵＬＬパケットが挿入されたものである。図３では、ＮＵＬＬパケットが挿入されたトランスポートストリームが、ＭＰＥＧデコーダ３へのインターフェースの伝送レートで送出されるときの時間軸上に描かれている。
【００４２】
ＮＵＬＬパケット挿入部２４では、元のトランスポートストリームのパケットＴＳ０、ＴＳ４にそれぞれ打刻されているＰＣＲ０、ＰＣＲ１が、時間軸上のＰＣＲ０、ＰＣＲ１に一致するようにＴＳパケット間にＮＵＬＬパケットが挿入される。ただし、伝送レート計算部１７で計算された伝送レートがＭＰＥＧ２−ＴＳファイル１から読み出したＭＰＥＧ２−ＴＳの伝送レートの整数倍でない場合は、図３に示すように、ＮＵＬＬパケットを挿入したトランスポートストリームのパケットＴＳ４に打刻されているＰＣＲ１の時間軸上の位置をｔ１とすると、このｔ１の位置が時間軸上の本来のＰＣＲ１の位置と一致しない。ｔ１の位置が時間軸上の本来のＰＣＲ１の位置と一致しない状態のままトランスポートストリームをＴＳデータ８としてＭＰＥＧデコーダ３に送信すると、ＭＰＥＧデコーダ３では、システムクロックを正確に再生することができなくなり、その結果、ＳＴＣのカウントが不正確になる。
【００４３】
上記のように、ＮＵＬＬパケットの挿入だけでは、伝送レートの調整を行うことができない場合は、ＰＣＲ０とＰＣＲ１の差分値を、これらＰＣＲ０とＰＣＲ１の間にあるＴＳパケットおよびＮＵＬＬパケットのパケット時間長の和で割った余り（端数）に基づいて、パケットＴＳ４に打刻されているＰＣＲ１が、時間軸上の位置ｔ１となるようなＰＣＲ補正量を計算し、該計算したＰＣＲ補正量に基づいて、ＰＣＲ１の値を書き換える。これにより、ＭＰＥＧ２−ＴＳファイル１から読み出したＭＰＥＧ２−ＴＳの伝送レートを伝送レート計算部１７で計算される伝送レートと合致させることができる。
【００４４】
以下に、ＰＣＲ補正の具体的な計算例を挙げる。
【００４５】
ＰＣＲ０の値を「０」とし、ＰＣＲ１の値を「２０」とし、ＴＳパケット時間長（＝ＮＵＬＬパケット時間長）を「３」とし、元のトランスポートストリームにおけるＰＣＲ０−ＰＣＲ１間のＴＳパケット数を「４」とする。この場合のＴＳパケットの時間長合計は、１２（＝３×４）となる。この状態で、ＮＵＬＬパケットを挿入したＭＰＥＧ２−ＴＳをＭＰＥＧデコーダ３に出力すると、ＰＣＲ１の時間的な位置は１２になり、これは打刻時間である「２０」と合致しない。
【００４６】
そこで、足りない時間を、ＮＵＬＬパケットを挿入して補う。足りない時間は、打刻時間である「２０」からＴＳパケットの時間長合計である「１２」を差し引いた値「８」であり、この足りない時間の部分には、２つのＮＵＬＬパケットを挿入することができる。この場合は、２つのＮＵＬＬパケットのパケット時間長の合計は「６」であることから、足りない時間「８」のち、時間「６」の部分を２つのＮＵＬＬパケットで補うことになる。残りの時間「２」の部分については、パケット時間長が「３」のＮＵＬＬパケットで補うことはできない。
【００４７】
２つのＮＵＬＬパケットが挿入されたトランスポートストリームにおけるＰＣＲ１の時間的な位置は、ＴＳパケット時間長の合計「１２」に挿入した２つのＮＵＬＬパケットの時間長の合計「６」を加算した「１８」となり、これは打刻時間である「２０」と合致しない。このときのＰＣＲ１の時間的な位置「１８」が、図３に示した時間軸上におけるｔ１の位置である。本実施形態では、ＮＵＬＬパケットを挿入したトランスポートストリームのＰＣＲ１の値を、時間軸上における本来のＰＣＲ１の位置「２０」からｔ１の位置「１８」に書き換える。
【００４８】
図４に、バッファ読み出し部７にて行われるＰＣＲ補正の一連の処理過程を模式的に示す。図４を参照すると、バッファ読み出し部７では、まず、ＰＣＲ０の付加情報として読み出した、ＰＣＲ差分とＰＣＲ間パケット数とから、挿入するＮＵＬＬパケット数と、端数を調整するために次ＰＣＲ１を書き換えるときのＰＣＲ補正量とを計算する。そして、その計算したＰＣＲ補正量に基づいて、次ＰＣＲ１の値を書き換える。ＰＣＲ１以降の付加情報についても、同様な計算を行い、次ＰＣＲの値を書き換える。
【００４９】
次に、本実施形態の伝送レート調整装置２の動作について説明する。
【００５０】
まず、バッファ書き込み部５の動作ついて説明する。バッファ書き込み部５では、バッファ書き込み制御部１３が、ＭＰＥＧ２−ＴＳファイル１から読み出されたトランスポートパケットをバッファ６にその空きがある限り次々と書き込むと同時に、ＰＣＲ検出部１０が、トランスポートストリーム中のアダプテーションフィールドに打刻してあるＰＣＲを検出して取得する。
【００５１】
ＰＣＲ検出部１０で最初のＰＣＲが検出されると、その検出タイミングでＰＣＲ間パケット計測部９がリセットされるとともに、ＰＣＲ検出部１０で検出された最初のＰＣＲが前ＰＣＲ格納部１１に格納される。リセットされたＰＣＲ間パケット計測部９は、ＰＣＲが打刻してあるパケットから次のＰＣＲが打刻されているパケットの１つ前のパケットまでのパケット数をＰＣＲ間パケット数として計測する。
【００５２】
ＰＣＲ検出部１０で２個目のＰＣＲが検出されると、ＰＣＲ差分計算部１２が、そのＰＣＲ検出部１０で検出された２個目のＰＣＲと、前ＰＣＲ格納部１１に格納されている一つ前のＰＣＲからＰＣＲ差分を計算する。そして、バッファ書き込み制御部１３が、ＰＣＲ差分計算部１２で計算されたＰＣＲ差分、ＰＣＲ間パケット計測部９で計測されたＰＣＲ間パケット数、および前ＰＣＲ格納部１１に格納されているＰＣＲを、最初のＰＣＲが打刻されていたパケットの付加情報としてバッファ６に書き込む。
【００５３】
３個目以降のＰＣＲについても、ＰＣＲ検出部１０でＰＣＲが検出される度に、上記２個目のＰＣＲが検出された場合と同様の動作が繰り返される。これにより、バッファ６に、ＭＰＥＧ２−ＴＳファイル１から読み出したＴＳパケットが順次格納されるとともに、ＰＣＲが打刻されたＴＳパケットには、現ＰＣＲから次ＰＣＲまでのパケット数であるＰＣＲ間パケット数、現ＰＣＲと次ＰＣＲの差であるＰＣＲ差分、現ＰＣＲの値とを含む付加情報が付加される。
【００５４】
次に、バッファ読み出し部７の動作について説明する。
【００５５】
バッファ書き込み制御部５により、２番目のＰＣＲが検出されて、バッファ６に格納されている最初のＰＣＲが打刻されたパケットに付加情報（ＰＣＲ間パケット数、ＰＣＲ差分、ＰＣＲ値）が付加されると、バッファ読み出し制御部１５がバッファ６からのパケットの読み出しを開始する。
【００５６】
初期状態では、ＰＣＲ補正量格納部１９には補正量として０が格納されている。このため、最初のＰＣＲが打刻されているパケットとともにバッファ６から読み出した付加情報のＰＣＲの値およびＰＣＲ差分に対する、ＰＣＲ補正部２０およびＰＣＲ差分補正部１６による補正は行われない。また、ＰＣＲ書き換え部２１は、最初のＰＣＲが打刻されているパケットのＰＣＲを、そのＰＣＲと同じ値で書き換えてＮＵＬＬパケット挿入部２４へ供給する。
【００５７】
次ＰＣＲが打刻されているパケットがバッファ読み出し制御部１５によってバッファ６から読み出される前に、ＮＵＬＬパケット挿入数／次ＰＣＲ補正量計算部１８が、挿入すべき挿入ＮＵＬＬパケット数を計算するとともに、ＮＵＬＬパケットで調整できない端数分を補正するために、次ＰＣＲの値を補正するための次ＰＣＲ補正量を計算する。この次ＰＣＲ補正量は、ＰＣＲ補正量格納部１９に格納される。
【００５８】
次ＰＣＲ補正量の計算後、ＮＵＬＬパケット挿入制御部２２が、挿入ＮＵＬＬパケット数とＰＣＲ間パケット数とに基づいて、ＮＵＬＬパケットの挿入位置を定め、ＮＵＬＬパケット挿入部２４が、ＰＣＲ書き換え部２１から供給されるパケット間に、ＮＵＬＬパケット生成部２３で生成されたＮＵＬＬパケットを挿入する。ＮＵＬＬパケットが挿入されたトランスポートストリームは、パケット送出部２５から、８ビットのＴＳデータとしてクロック分周部１４から出力されるＴＳクロックでＭＰＥＧデコーダ３へ出力される。
【００５９】
２個目以降のＰＣＲが打刻されているパケットがバッファ６から読み出された場合は、ＰＣＲ補正量格納部１９に格納されている次ＰＣＲ補正量に基づいて、ＰＣＲ補正部２０が、付加情報として読み出されたＰＣＲの値を補正するとともに、ＰＣＲ差分補正部１６が、付加情報として読み出された値ＰＣＲ差分を補正する。そして、ＰＣＲ書き換え部２１が、バッファ６から読み出された、ＰＣＲが打刻されているパケットのＰＣＲの値を、ＰＣＲ補正部２０で補正されたＰＣＲの値で書き換えてＮＵＬＬパケット挿入部２４へ供給する。
【００６０】
ＰＣＲ書き換え部２１によってＰＣＲが補正したものに書き換えられたＴＳパケットは、ＮＵＬＬパケット挿入部２４へ送られる。ＮＵＬＬパケット挿入数／次ＰＣＲ補正量計算部１８が、次のＰＣＲ打刻パケットがバッファ６から読み出されるまでに、挿入すべきＮＵＬＬパケット挿入数、ＮＵＬＬパケットで調整できない端数分を補正するための次ＰＣＲ補正量を計算する。その後、ＮＵＬＬパケット挿入制御部２２が、ＮＵＬＬパケット挿入数、ＰＣＲ間パケット数から挿入位置を定め、ＮＵＬＬパケット挿入部２４が、ＰＣＲ書き換え部２１から供給されるパケット間にＮＵＬＬパケット生成部２３で生成されたＮＵＬＬパケットを挿入する。ＮＵＬＬパケットが挿入されたトランスポートストリームは、パケット送出部２５から、８ビットのＴＳデータとしてクロック分周部１４から出力されるＴＳクロックでＭＰＥＧデコーダ３へ出力される。
【００６１】
以上説明した本実施形態の伝送レート調整装置によれば、ＭＰＥＧデコーダ３のシステムクロックを分周したＴＳクロックをＭＰＥＧデコーダ３とのインターフェースクロックとしており、ＭＰＥＧ２−ＴＳ中に打刻されているＰＣＲ間のバイト数から計算される伝送レートが、インターフェースクロックで決まるインターフェースの伝送レートと一致するように、ＭＰＥＧ２−ＴＳのパケット間にＮＵＬＬパケットを挿入して調整し、さらに、ＮＵＬＬパケットの挿入で調整しきれない端数部分については、ＰＣＲの値を書き換えることによって、ＰＬＬ回路などによるクロック再生を行わずに、ＭＰＥＧ２−ＴＳファイル１から読み出されたＭＰＥＧ２−ＴＳを正しい伝送レートでＭＰＥＧデコーダ３へ送出することができる。
【００６２】
また、ＭＰＥＧ２−ＴＳのパケット間にＮＵＬＬパケットを均等に挿入することで、ＭＰＥＧデコーダ３におけるバッファのオーバーフローを抑制することが可能である。以下に、その理由を具体的に説明する。
【００６３】
図５に、ＭＰＥＧデコーダの概略構成を示す。図５を参照すると、このＭＰＥＧデコーダは、スイッチ部２００、トランスポートバッファ２０１ａ〜２０１ｃ、映像バッファ２０２ａ、音声バッファ２０２ｂ、システムバッファ２０２ｃ、映像デコーダ２０３ａ、音声デコーダ２０３ｂ、およびシステムデコーダ２０３ｃを有する。トランスポートバッファ２０１ａ〜２０１ｃの容量は、いずれも５１２バイトである。
【００６４】
スイッチ部２００は、図１に示した伝送レート調整装置２からＴＳデータとして供給されるトランスポートストリームを入力としており、該入力されたトランスポートストリームを、パケットのヘッダにあるＰＩＤ（パケット識別情報）に基づいて、映像データ、音声データ、システム情報のトランスポートパケットに分離する。また、スイッチ部２００は、入力されたトランスポートストリーム中のＮＵＬＬパケットをＰＩＤ（パケット識別情報）に基づいて判断し、ＮＵＬＬパケットを破棄する。
【００６５】
スイッチ部２００で分離された映像データのトランスポートパケットは、トランスポートバッファ２０１ａを介して映像バッファ２０２ａに格納される。その後、映像デコーダ２０３ａによってデコードされる。ここで、トランスポートバッファ２０１ａから映像バッファ２０２ａへのデータの読み出し速度は、１．２×Ｒmaxで与えられる。Ｒmaxは、ＭＰＥＧのプロファイルとレベルによって決まっているビットレートの上限である。メインプロファイル／メインレベルの場合は、データの読み出し速度は１５Ｍｂｐｓとなる。
【００６６】
スイッチ部２００で分離された音声データのトランスポートパケットは、トランスポートバッファ２０１ｂを介して音声バッファ２０２ｂに格納される。その後、音声デコーダ２０３ｂによってデコードされる。ここで、トランスポートバッファ２０１ｂから音声バッファ２０２ｂへのデータの読み出し速度は、２Ｍｂｐｓである。
【００６７】
スイッチ部２００で分離されたシステム情報のトランスポートパケットは、トランスポートバッファ２０１ｃを介してシステムバッファ２０２ｃに格納される。その後、システムデコーダ２０３ｃによってデコードされる。ここで、トランスポートバッファ２０１ｃからシステムバッファ２０２ｃへのデータの読み出し速度は、１Ｍｂｐｓである。
【００６８】
上記の構成のＭＰＥＧデコーダにおいて、トランスポートバッファに入力されるデータのビットレートが、トランスポートバッファの読み出しレートを超えると、トランスポートバッファにてオーバーフローが生じる場合がある。
【００６９】
トランスポートバッファに入力されるデータのビットレートは、伝送レート調整装置２におけるＮＵＬＬパケットの挿入の仕方によって変化する。例えば、伝送レート調整装置２において、ＰＣＲ間のＴＳパケットの最後にＮＵＬＬパケットをまとめて挿入した場合は、ＴＳパケットが全て送出された後、ＮＵＬＬパケットが送出されることとなる。この場合のＴＳパケットの伝送レートは、調整後のトランスポートストリームの伝送レート（図１に示したパケット送出部２５から出力されるトランスポートストリームの伝送レート）となる。また、ＰＣＲ間のＴＳパケット間にＮＵＬＬパケットを挿入した場合は、ＴＳパケットとＮＵＬＬパケットが交互に送出されることになる。この場合のＴＳパケットの伝送レートは、調整後のトランスポートストリームの伝送レートより低くなる。また、各ＴＳパケット間に挿入するＮＵＬＬパケットの数が異なる場合は、挿入されたＮＵＬＬパケットの数が少ない部分におけるＴＳパケットの伝送レートが、挿入されたＮＵＬＬパケットの数が多い部分におけるＴＳパケットの伝送レートより高くなる。このため、映像と音声のストリームのビットレートには、速くなる部分と遅くなる部分が生じる。
【００７０】
図１に示した構成において、ＭＰＥＧ２−ＴＳファイル１から読み出したＭＰＥＧ２−ＴＳの伝送レートと調整後の伝送レート（図１に示したパケット送出部２５から出力されるトランスポートストリームの伝送レート）との差が大きい場合は、ＰＣＲ間のＴＳパケットの最後にＮＵＬＬパケットをまとめて挿入する場合や、各ＴＳパケット間に挿入するＮＵＬＬパケットの数が異なる場合において、トランスポートバッファに入力されるデータのビットレートが、トランスポートバッファの読み出しレートを超えることがある。各ＴＳパケット間にＮＵＬＬパケットを均等に挿入することで、その問題を解決することができる。
【００７１】
以下に、本実施形態の伝送レート調整装置において行われる、各ＴＳパケット間にＮＵＬＬパケットを均等に挿入するための方法を説明する。
【００７２】
（第１のＮＵＬＬパケット挿入方法）
ＭＰＥＧデコーダ３へのインターフェースが８ビットで、クロックがＭＰＥＧデコーダ３のシステムクロック（２７ＭＨｚ）を分周したものであるから、パケット送出部２５から出力されるトランスポートストリーム（ＴＳデータ）の伝送レートは、「２７ＭＨｚ／分周比×８ビット」で表され、分周比により、図６に示すような値をとる。例えば、分周比が「１」であれば、伝送レートは「２１６Ｍｂｐｓ」となる。
【００７３】
挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部１８が、ＰＣＲ間の時間差（ＰＣＲ差）と伝送レート計算部１７で計算された調整後の伝送レートとから、調整後のＰＣＲ間のＴＳパケット数を計算して、その計算結果から挿入すべきＮＵＬＬパケット数を算出する。調整後のＰＣＲ間のＴＳパケット数は、「ＰＣＲ間時間差／（188／調整後の伝送レート）」で与えられる。挿入すべきＮＵＬＬパケット数は、「（ＰＣＲ間ＴＳパケット数）−（ＰＣＲ間時間差／（188／変換後の伝送レート））」で与えられる。
【００７４】
次に、ＮＵＬＬパケット挿入制御部２２が、次のようにして、ＮＵＬＬパケット挿入部２４におけるＮＵＬＬパケットの挿入を制御する。まず、ＰＣＲ間のＴＳパケット数、ＰＣＲ間に挿入するＮＵＬＬパケット数に基づいて、（ＮＵＬＬパケット数／ＴＳパケット数）の商を求める。次いで、求めた商に対応する数のＮＵＬＬパケットをＴＳパケット毎に挿入する。そして、（ＮＵＬＬパケット数／ＴＳパケット数）の余りに対応する数のＮＵＬＬパケットを（ＴＳパケット+ＴＳパケット毎に挿入したNULLパケット）に対して均等に挿入する。
【００７５】
具体的には、５個のＴＳパケットに対して７個のＮＵＬＬパケットを挿入する場合は、ＴＳパケット毎に挿入するＮＵＬＬパケットの数は、（NULLパケット数／ＴＳパケット数）の商、すなわち「7／5」の商（＝１）とされる。均等に入れるべきＮＵＬＬパケットの残りは、（ＮＵＬＬパケット数／ＴＳパケット数）の余り、すなわち「7／５」の余り（＝２）とされる。この場合は、図７に示すように、「7／5」の商に基づくＮＵＬＬパケット挿入処理により、ＰＣＲ間に存在する第１乃至第５のＴＳパケットの各パケット間に１個のＮＵＬＬパケットが挿入され、「7／5」の余りに基づくＮＵＬＬパケット挿入処理により、第３および第４のＴＳパケット間およびＰＣＲ間の最後に、さらに１個のＮＵＬＬパケットが挿入される。
【００７６】
なお、調整前後の伝送レートの関係によっては、（ＮＵＬＬパケット数／ＴＳパケット数）の余りに基づくＮＵＬＬパケット挿入を均等に行わなくても、ＴＳパケット毎に（ＮＵＬＬパケット数／ＴＳパケット数）の商に基づくＮＵＬＬパケット挿入を均等に行うだけ、トランスポートバッファにおけるオーバーフローを抑制することができる場合もある。
【００７７】
（第２のＮＵＬＬパケット挿入方法）
挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部１８が、ＮＵＬＬパケットの平均挿入間隔を求め、ＮＵＬＬパケット挿入制御部２２が、そのＮＵＬＬパケットの平均挿入間隔に基づいて、ＮＵＬＬパケット挿入部２４におけるＮＵＬＬパケットの挿入を制御するようにしてもよい。ＮＵＬＬパケットの平均挿入間隔が、例えば「ＴＳパケット／｛（NULLパケット数／ＴＳパケット数）の余り｝」で与えられる場合、平均挿入間隔の値は、通常、小数である。平均挿入間隔の値（小数）のうち、整数部の値（第１の挿入間隔）と、これに「１」を足した値（第２の挿入間隔）とをそれぞれ挿入間隔として、（（ＴＳパケット）+（ＴＳパケット毎に挿入したNULLパケット））に対してＮＵＬＬパケットを挿入する。すなわち、挿入間隔が２であれば、２つの（（（ＴＳパケット）+（ＴＳパケット毎に挿入したNULLパケット））に対してＮＵＬＬパケットを１つ挿入する。
【００７８】
具体的には、以下の手順で、ＮＵＬＬパケットの挿入が行われる。
（１）はじめに、第１および第２の挿入間隔のうちの、大きい方の挿入間隔を用い、この挿入間隔の値の数のＴＳパケットに対してＮＵＬＬパケットを１個挿入する。
（２）ここまでの平均挿入間隔を求める。１回目なので、平均挿入間隔は（「（１）の挿入間隔」／１）となる。
（３）前回の平均挿入間隔が平均挿入間隔より大きければ、挿入間隔を小さい方にし、平均挿入間隔以上であれば挿入間隔を大きい方にする。
（４）（３）で決まった挿入間隔数のＴＳパケットにＮＵＬＬパケットを１個挿入する。
（５）ここまでの平均挿入間隔を求める。そして、（３）に戻り、ＮＵＬＬパケットが（ＮＵＬＬパケット数／ＴＳパケット数）の余りだけ挿入されるまで繰り返す。
【００７９】
以下に、上記の処理を具体的に説明する。
【００８０】
例えば、１０個のＴＳパケットに対して７個のＮＵＬＬパケットを挿入する場合は、「10／7＝1.429」であるので、挿入間隔は、「1.429」の整数部である「１」と、これに「１」を足した「２」となる。
【００８１】
まず、上記（１）のステップにおいて、挿入間隔を大きい方の「２」とし、ＴＳパケット２個に対してＮＵＬＬパケットを１個挿入する。次いで、上記（２）のステップで、ここまでの平均挿入間隔を求める。この場合の平均挿入間隔は、「2／1＝2.000」である。
【００８２】
次に、上記（３）のステップにおいて、前回の平均挿入間隔が、「1.429」より大きいので、挿入間隔を小さい方の「１」とする。次いで、上記（４）のステップにて、ＴＳパケット１個に対してＮＵＬＬパケットを１個挿入する。
【００８３】
次に、上記（５）のステップにおいて、ここまでの平均挿入間隔を求める。この場合の平均挿入間隔は、「3／2＝1.5」である。次いで、上記（３）のステップにおいて、前回の平均挿入間隔（「1.5」）が「1.429」より大きいので、挿入間隔を小さい方の１とする。次いで、上記（４）のステップで、ＴＳパケット１個に対してＮＵＬＬパケットを１個挿入する。
【００８４】
次に、上記（５）のステップにおいて、ここまでの平均挿入間隔を求める。この場合の平均挿入間隔は、「3／2＝1.333」である。次いで、上記（３）のステップにおいて、前回の平均挿入間隔（「1.333」）が1.429より小さいので、挿入間隔を大きい方の２とする。次いで、上記（４）のステップで、ＴＳパケット２個に対してＮＵＬＬパケットを１個挿入する。
【００８５】
次に、上記（５）のステップにおいて、ここまでの平均挿入間隔を求める。この場合の平均挿入間隔は、「3／2＝1.500」である。以降、同じようにＮＵＬＬパケットの挿入を行う。
【００８６】
図８に、上述の手順による、ＮＵＬＬパケットの挿入対象とされるＴＳパケットの数、挿入するＮＵＬＬパケットの数、ＴＳパケットの合計、ＮＵＬＬパケットの合計、平均挿入間隔の値の変化を示す。この図８からも分かるように、最初は、２個のＴＳパケットに対して１個のＮＵＬＬパケットを挿入する。このときの、ＴＳパケットの合計は「２」、ＮＵＬＬパケットの合計は「１」であり、平均挿入間隔は「２．００」である。次いで、１個のＴＳパケットに対して１個のＮＵＬＬパケットを挿入する。このときの、ＴＳパケットの合計は「３」、ＮＵＬＬパケットの合計は「２」であり、平均挿入間隔は「１．５５」である。このような一連の処理が繰り返し行われる。
【００８７】
次に、本第２のＮＵＬＬパケット挿入方法における、ＮＵＬＬパケット挿入例について説明する。
【００８８】
分周比入力信号２６により与えられる分周比を「８」とし、パケット送出部２５がＭＰＥＧデコーダ３へ送出するＴＳデータの伝送レートを２７Ｍｂｐｓとする。
【００８９】
ＭＰＥＧ２−ＴＳファイル１のプロファイルがメイン、レベルがメインとされている場合は、図５に示したトランスポートバッファ２０１ａに入力される映像データのビットレートの上限値は１５Ｍｂｐｓである。トランスポートバッファ２０１ａからの映像データの読み出しレートは、１８Ｍｂｐｓ（＝１．２×１５Ｍｂｐｓ）である。
【００９０】
ＭＰＥＧ２−ＴＳファイル１から読み出したＭＰＥＧ２−ＴＳが１つの映像ストリームと１つの音声ストリームを含む。映像ストリームのビットレートは１４Ｍｂｐｓである。音声ストリームのビットレートは４４８ｋｂｐｓである。読み出したＭＰＥＧ２−ＴＳの伝送レートは１５Ｍｂｐｓである。読み出したＭＰＥＧ２−ＴＳのＰＣＲ間の時間差は９０．２４ｍｓ、ＰＣＲ間パケット数は９００である。
【００９１】
調整後のＴＳパケットの時間長は、「188／27Mbps=55.704μs」である。調整後のＰＣＲ間パケット数は、「PCR差／（変換後のTSパケットの時間長）＝90.24ms／55.704us＝1620」である。したがって、挿入するパケット数は、「1620-900=720」パケットである。この場合は、ＰＣＲ間の９００個のＴＳパケットに対して、７２０個のＮＵＬＬパケットを挿入することになる。
【００９２】
まず、９００個のＴＳパケットあとに、７２０個のＮＵＬＬパケットをまとめて挿入する場合を考える。この場合は、映像ストリームのビットレートは、「１５Ｍｂｐｓ×２７Ｍｂｐｓ／１５Ｍｂｐｓ＝25.2Ｍｂｐｓ」となり、音声ストリームのビットレートは、「４４８ｋｂｐｓ×２７Ｍｂｐｓ／１５Ｍｂｐｓ＝８０６．４ｋｂｐｓ」となる。映像ストリームが、トランスポートストリームの読み出しレート１８Ｍｂｐｓを越えるため、映像のトランスポートバッファ２０１ａが破綻する。
【００９３】
次に、ＴＳパケットの間にＮＵＬＬパケットを均等に挿入する場合について考える。
【００９４】
ＰＣＲ間のＴＳパケット数、PCR間に挿入するNULLパケット数から、ＴＳパケット毎に挿入するNULLパケット数は、（ＮＵＬＬパケット数／ＴＳパケット数）の商、すなわち「720／900」の商（＝0）となる。したがって、（ＮＵＬＬパケット数／ＴＳパケット数）の余り（＝720）に対応するＮＵＬＬパケットを均等に挿入することになる。
【００９５】
「ＴＳパケット数：ＮＵＬＬパケット数」は、「900：720＝5：４」であるので、５個のＴＳパケットに対して、４個のＮＵＬＬパケットを挿入することになる。この場合の、ＮＵＬＬパケットの平均挿入間隔は、「900/720＝1.25」であるので、挿入する間隔は、その整数部分の「１」と、これに１を足した「２」となる。したがって、本第２のＮＵＬＬパケット挿入方法によれば、２個のＴＳパケットに対して、１個のＮＵＬＬパケットを挿入する、または、１個のＴＳパケットに対して１個のＮＵＬＬパケットを挿入することになる。
【００９６】
図９に、上記の手順による、ＮＵＬＬパケットの挿入対象とされるＴＳパケットの数、挿入するＮＵＬＬパケットの数、ＴＳパケットの合計、ＮＵＬＬパケットの合計、平均挿入間隔の値の変化を示す。この図９から分かるように、最初は、２個のＴＳパケットに対して１個のＮＵＬＬパケットを挿入する。このときの、ＴＳパケットの合計は「２」、ＮＵＬＬパケットの合計は「１」であり、平均挿入間隔は「２．００」である。次いで、１個のＴＳパケットに対して１個のＮＵＬＬパケットを挿入する。このときの、ＴＳパケットの合計は「３」、ＮＵＬＬパケットの合計は「２」であり、平均挿入間隔は「１．５」である。このような一連の処理が繰り返し行われて、各ＴＳパケット間にＮＵＬＬパケットがほぼ均等に挿入されることになる。
【００９７】
上記の場合、映像のトランスポートバッファ２０１ａの読み出しレートは１８Ｍｂｐｓ（＝１．２×１５Ｍｂｐｓ）であり、伝送レートは２７Ｍｂｐｓであるので、１つのＴＳパケット（188バイト）がトランスポートバッファ２０１ａに入力される間に、トランスポートバッファ２０１ａから読み出されるデータ量は、「１８Ｍｂｐｓ／２７Ｍｂｐｓ×１８８バイト＝１２５．３バイト」である。
【００９８】
図１０に、上記のようにＮＵＬＬパケットをほぼ均等に挿入した場合における、トランスポートバッファ２０１ａに格納されるデータ量の変化を示し、図１１に、そのトランスポートバッファ２０１ａにおけるデータ量の推移を示す。図１０および図１１から分かるように、トランスポートバッファ２０１ａに格納されるデータ量は、そのバッファ容量である５１２バイトを越えない。したがって、映像のトランスポートバッファ２０１ａは破綻しない。
【００９９】
上述の説明では、映像のトランスポートバッファ２０１ａを例にバッファの破綻を抑制する理由を説明したが、音声のトランスポートバッファについても、本発明により、バッファの破綻を抑制することができる。
【０１００】
また、バッファから読み出したトランスポートパケットの各パケット間に挿入されるＮＵＬＬパケットの数の差は、１個以内であることが望ましい。ＮＵＬＬパケットの数の差を１個以内とすることで、確実にトランスポートバッファを抑制することができるようになる。
【０１０１】
以上の説明から分かるように、本実施形態の伝送レート調整装置によれば、バッファから読み出したトランスポートパケットの間にＮＵＬＬパケットを均等に挿入することで、ＭＰＥＧデコーダ３におけるトランスポートバッファの破綻を抑制することが可能となっている。
【０１０２】
これに対して、前述の特許文献１に記載の装置においては、調整前後の伝送レートの差が大きくないため、ＮＵＬＬパケットをＰＣＲ間の最後にまとめて挿入しても、映像のトランスポートバッファの読み出しレートは、ストリームのビットレートの上限の1.2倍、音声のトランスポートバッファの読み出しレートは、ストリームのビットレートの上限の４倍以上（2Mbps／448ｋbps）ある。このため、例えば、２５Ｍｂｐｓの伝送レートを２７Ｍｂｐｓの伝送レートに変換する場合において、その変換比は１．０８倍であるので、映像および音声のトランスポートバッファが破綻することはない。すなわち、映像ストリームが上限一杯、音声ストリームが上限の448kbpsであっても、読み出しレートを越えることはない。
【０１０３】
また、特許文献１に記載の装置においては、ＰＣＲは１００ｍｓに１回は入っており、２５Ｍｂｐｓの伝送レートでは、ＰＣＲ間に約１６６２バイト（100ms／（188byte／（25Mbps／8）のパケットがトランスポートバッファに入る計算になる。２７Ｍｂｐｓの伝送レートでは、これらパケットが、92ms（100ms／1.08）でトランスポートバッファに入ってしまうだけある。すなわち、２５Ｍｂｐｓの伝送レートでは、９２ｍｓで約１５３８バイト（1662byte／10.8）のパケットがトランスポートバッファに入るところが、２７Ｍｂｐｓの伝送レートでは、約１６６２バイトのパケットがトランスポートバッファに入るだけであるので、トランスポートバッファが破綻することはない。
【０１０４】
上記から分かるように、特許文献１に記載のものでは、調整前後の伝送レートの差があまり大きくない場合を想定しているため、ＮＵＬＬパケットの挿入の仕方によってＭＰＥＧでコーダのトランスポートバッファが破綻する、といった問題が発生することを予測することは困難である。したがって、本実施形態の１つの効果として挙げた、ＮＵＬＬパケットを均等に挿入することで、トランスポートバッファの破綻を抑制する、という技術思想は、特許文献１の記載から想到でき得るものではない。
【０１０５】
なお、ＮＵＬＬパケットを均等に挿入するとは、単にＴＳパケット間に挿入されたＮＵＬＬパケットの数が、各ＴＳパケット間で同じなる、ということを意味するのではない。例えば、第１および第２のＮＵＬＬパケット挿入方法で説明したように、ＴＳパケット間にＮＵＬＬパケットを一個ずつ挿入し、さらに、残ったＮＵＬＬパケットを、ＮＵＬＬパケットが挿入された状態のＴＳパケットに対して時間長が均等になるように分割挿入する、といった方法で、ＮＵＬＬパケットを挿入した場合は、ＴＳパケット間に挿入されたＮＵＬＬパケットの数は、各ＴＳパケット間で同じにならない。よって、本発明においては、ＭＰＥＧデコーダのトランスポートバッファが破綻しない範囲であれば、ＮＵＬＬパケットを均等に挿入した場合の、ＴＳパケット間のＮＵＬＬパケットの数は、同じであってもよいし、異なっていてもよく。
【０１０６】
また、ＴＳパケットおよびＮＵＬＬパケットはいずれも、１８８バイトのパケットとしているが、これに限定されるものではなく、他の固定長のパケット（例えば２０４バイトのパケット）であってもよい。
【図面の簡単な説明】
【０１０７】
【図１】本発明の一実施形態である伝送レート調整装置の概略構成を示すブロック図である。
【図２】図１に示すバッファには格納されるトランスポートパケットおよび付加情報を説明するための図である。
【図３】図１に示す伝送レート調整装置における伝送レートの調整を説明するための図である。
【図４】図１に示す伝送レート調整装置におけるＰＣＲ補正を説明するための図である。
【図５】ＭＰＥＧデコーダの概略構成を示すブロック図である。
【図６】分周比と伝送レートの関係を示す図である。
【図７】ＮＵＬＬパケットが均等に挿入されたトランスポートストリームの一例を示す模式図である。
【図８】図１に示す伝送レート調整装置におけるＮＵＬＬパケットの挿入例を説明するための図である。
【図９】図１に示す伝送レート調整装置におけるＮＵＬＬパケットの他の挿入例を説明するための図である。
【図１０】ＮＵＬＬパケットを均等に挿入した場合における、トランスポートバッファに格納されるデータ量の変化を説明するための図である。
【図１１】ＮＵＬＬパケットを均等に挿入した場合における、トランスポートバッファに格納されるデータ量の推移を示す図である。
【図１２】ＭＰＥＧ−ＴＳのトランスポートパケットの一般的な構成を示す図である。
【図１３】従来のトランスポートストリーム再生装置の構成を示すブロック図である。
【符号の説明】
【０１０８】
１  ＭＰＥＧ−ＴＳファイル
２  伝送レート調整装置
３  ＭＰＥＧデコーダ
４  ＶＣＸＯ
５  バッファ書き込み部
６  バッファ
７  バッファ読み出し部
９  ＰＣＲ間パケット数計測部
１０  ＰＣＲ検出部
１１  前ＰＣＲ格納部
１２  ＰＣＲ差分計算部
１３  バッファ書き込み制御部
１４  クロック分周部
１５  バッファ読み出し制御部
１６  ＰＣＲ差分補正部
１７  伝送レート計算部
１８  挿入ＮＵＬＬパケット数／次ＰＣＲ補正量計算部
１９  ＰＣＲ補正量格納部
２０  ＰＣＲ補正部
２１  ＰＣＲ書き換え部
２２  ＮＵＬＬパケット挿入制御部
２３  ＮＵＬＬパケット生成部
２４  ＮＵＬＬパケット挿入部
２５  パケット送出部
【図１】
0004746998.tif 000002
【図２】
0004746998.tif 000003
【図３】
0004746998.tif 000004
【図４】
0004746998.tif 000005
【図５】
0004746998.tif 000006
【図６】
0004746998.tif 000007
【図７】
0004746998.tif 000008
【図８】
0004746998.tif 000009
【図９】
0004746998.tif 000010
【図１０】
0004746998.tif 000011
【図１１】
0004746998.tif 000012
【図１２】
0004746998.tif 000013
【図１３】
0004746998.tif 000014