(57)【特許請求の範囲】
【請求項１】
複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化装置において、
複数のトランスポート・ストリームを受信する手段と、
受信したトランスポート・ストリームからＰＩＤ値を抽出する手段と、
ＰＩＤ値を変換する手段と、
受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、
多重処理手段と、
ＣＰＵとを有し、
前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定して、
前記ＣＰＵは、その測定値に従って、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込んで、
前記多重処理手段は、そのテーブルの値を参照して、決定された出力ポートに多重されたデータストリームを出力することを特徴とするＭＰＥＧトランスポート・ストリーム多重化装置。
【請求項２】
複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化装置において、
複数のトランスポート・ストリームを受信する手段と、
受信したトランスポート・ストリームからＰＩＤ値を抽出する手段と、
ＰＩＤ値を変換する手段と、
受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、
多重処理手段と、
ＣＰＵとを有し、
入力ポートから前記複数のトランスポート・ストリームを受信して、
前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定して、多重可能な出力ポートを決定し、
その結果を信号として、前記ＣＰＵに伝え、
前記ＣＰＵは、その信号を受け、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込んで、
前記多重処理手段は、前記テーブルよりその値を読み出す信号を受けて、それに従って出力ポートから多重化したトランスポート・ストリームを出力することを特徴とするＭＰＥＧトランスポート・ストリーム多重化装置。
【請求項３】
複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化方法において、
この方法に用いるＭＰＥＧトランスポート・ストリーム多重化装置は、
受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、
多重処理手段と、
ＣＰＵとを有し、
このＭＰＥＧトランスポート・ストリーム多重化方法は、
（１）複数のトランスポート・ストリームを受信する手順、
（２）受信したトランスポート・ストリームからＰＩＤ値を抽出する手順、
（３）前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定する手順、
（４）（ａ）前記ＣＰＵは、その測定値に従って、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込む手順、
（ｂ）前記ＣＰＵは、受信したＰＩＤ値の値を変換して、前記テーブルに変換したＰＩＤ値を書き込む手順、
（５）前記テーブルを参照して、トランスポートストリームのＰＩＤ値を変換する手順、
（６）前記多重処理手段は、そのテーブルの値を参照して、決定された出力ポートに多重されたデータストリームを出力する手順を有することを特徴とするＭＰＥＧトランスポート・ストリーム多重化方法。
【請求項４】
複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化方法において、
この方法に用いるＭＰＥＧトランスポート・ストリーム多重化装置は、
受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、
多重処理手段と、
ＣＰＵとを有し、
このＭＰＥＧトランスポート・ストリーム多重化方法は、
（Ａ１）複数のトランスポート・ストリームを受信する手順、
（Ａ２）受信したトランスポート・ストリームからＰＩＤ値を抽出する手順、
（Ａ３）前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定する手順、
（Ａ４）（ａ１）前記ＣＰＵは、前記多重処理手段からその測定値を信号として受信する手順、
（ａ２）前記ＣＰＵは、その信号を受け、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込む手順、
（ｂ）前記ＣＰＵは、受信したＰＩＤ値の値を変換して、前記テーブルに変換したＰＩＤ値を書き込む手順、
（Ａ５）ＰＩＤ値を変換する手段が、前記テーブルよりその値を読み出す信号を受け、トランスポートストリームのＰＩＤ値を変換する手順、
（Ａ６）前記多重処理手段は、前記テーブルよりその値を読み出す信号を受け、それに従って決定された出力ポートに多重されたデータストリームを出力する手順を有することを特徴とするＭＰＥＧトランスポート・ストリーム多重化方法。
【請求項５】
複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化方法において、
この方法に用いるＭＰＥＧトランスポート・ストリーム多重化装置は、
受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、
多重処理手段と、
ＣＰＵとを有し、
このＭＰＥＧトランスポート・ストリーム多重化方法は、
（Ｂ１）複数のトランスポート・ストリームを受信する手順、
（Ｂ２）受信したトランスポート・ストリームからＰＩＤ値を抽出する手順、
（Ｂ３）前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定する手順、
（Ｂ４）前記ＣＰＵは、前記受信するトランスポート・ストリームの量とその測定量とを比較して、現時点で多重先可能な出力ポートを決定する手順、
（Ｂ５）前記ＣＰＵは、仮の多重先となる出力ポートから多重化するとしたときの仮のＰＳＩパケットを作成する手順、
（Ｂ６）前記多重処理手段は、前記ＣＰＵから受け取った前記仮のＰＳＩパケットをその仮の多重先となる出力ポートから出力する手順、
（Ｂ７）仮の出力ポートを真の多重先となる出力ポートにするか否かを決定する手順、
（Ｂ８）（ａ）前記ＣＰＵは、真の多重先として決定された出力ポートの値を前記テーブルに書き込む手順、
（ｂ）前記ＣＰＵは、受信したＰＩＤ値の値を変換して、前記テーブルに変換したＰＩＤ値を書き込む手順、
（Ｂ９）前記テーブルを参照して、トランスポートストリームのＰＩＤ値を変換する手順、
（Ｂ１０）前記多重処理手段は、そのテーブルの値を参照して、決定された出力ポートに多重されたデータストリームを出力する手順を有し、
前記（Ｂ２）ないし（Ｂ６）の手順の後に再び、前記（Ｂ３）、（Ｂ４）の手順をおこなって、その測定値に従って、前記（Ｂ７）の手順をおこなって、
しかる後に、前記（Ｂ８）ないし（Ｂ１０）の手順をこの順におこなうことを特徴とするＭＰＥＧトランスポート・ストリーム多重化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ(Moving Picture Experts Group)トランスポート・ストリーム多重化装置および方法に係り、ＭＰＥＧ多重化システム仕様（ITU-T H.222.0,ISO/IEC 13818-1）に準拠し、複数のプログラムを含んだトランスポート・ストリームを受信して、複数の出力ポートに多重するための装置および方法に関する。
【０００２】
【従来の技術】
近来、マルチメディア社会を支える基礎技術として、ＭＰＥＧに関する関心が高まっている。ＭＰＥＧは、画像、動画、音声を圧縮する技術に関する規格であるが、そのような圧縮データを、装置、システム間で伝送するためのストリームとしての規格が定まっている。特に、ＭＰＥＧ２のトランスポート・ストリーム（以下、「ＴＳ」と略記する）では、一つのストリームで複数のプログラムを伝送することが可能である。
【０００３】
以下、このＴＳの規約について説明しよう。
【０００４】
ＴＳの規約によれば、映像信号・音響信号等を１８８バイトのＴＳパケット形式で伝送する。ＴＳパケットは、４バイトのヘッダと１８４バイトのデータフィールドとから構成される。
【０００５】
ヘッダ内には、個々のＴＳパケットを区別するための識別子（ＰＩＤ：Packet Identifier）がある。ＴＳ形式の伝送では、このＰＩＤの値を重複が無いように添付することで、複数のＴＳを多重して伝送しても、受け取った装置側で、所望のＴＳを抽出して、番組（プログラム）を再生することが可能である。例えば、映像信号と音響信号から構成される１つの番組を伝送したい場合、映像信号に割り当てるＴＳのＰＩＤ値と音響信号に割り当てるＴＳのＰＩＤ値を異なる値にすれば、多重して伝送しても個々の信号を抽出することができ、それによって映像と音声を別個に再生することができる。
【０００６】
このことは複数の番組に対しても成り立ち、個々の番組（番組を構成する複数信号）に割り当てるＰＩＤ値を伝送路内で重複が無いように添付すれば、複数の番組を多重して伝送しても、再生側では、そのＰＩＤ値を持つパケットを取り出すことによって所望の信号（番組）だけを抽出し再生することが可能である。このため再生側では、複数の番組が多重されて伝送された場合には、番組構成と番組を構成している個々の信号（ＴＳ）のＰＩＤ値を知らなければ所望の番組を再生できない。
【０００７】
そこでＴＳ形式の伝送では、マルチプログラムに対応するようにプログラム仕様情報（Program Specific Information、以下「ＰＳＩ」と略記する）を記述したパケットを伝送するようになっている。ＰＳＩには、より具体的に言うと、番組構成を記述したＰＡＴ（Program Association Table）や個々の番組を構成するＴＳのＰＩＤ値を記述したＰＭＴ（Program Map Table）などがある。再生側では、このＰＳＩデータを解読し、必要なＰＩＤ値を取得することにより、特定のＴＳを選択し、所望の番組を再生することが可能になる。
【０００８】
ＴＳ形式の伝送においては、１伝送路での多重度を変化させる場合、伝送路上での番組構成が変化するため、このＰＳＩ情報を多重処理後の番組構成に合うように書き換えなければならない。
【０００９】
以上述べてきた多重化についての内容は、出力ポートが１ポートであり、かつ多重化数が動的に変化しない場合については、前記ＭＰＥＧ多重化システム仕様に記載あるが、複数出力ポートがある場合や多重化数が動的に変化する場合の具体的な多重化実現方法および実現装置については、特に規定されていない。
【００１０】
【発明が解決しようとする課題】
上記ＭＰＥＧのＴＳは、一つのストリームの中に、複数のプログラムを多重化できる画期的なものではあるが、そのために多重化する装置の出力ポートが１ポートであれば、他チャンネルのマルチメディア時代に対応できないし、動的に多重構成が変化することに追随できないようでは、柔軟性にかける。そこで、従来の装置で、複数ポートの出力ポートに、多重構成が動的に変化する多重化をおこなおうとすると以下の問題点が発生する。
【００１１】
第一の問題点は、多重化処理がおこなわれている状態に、さらに新しく番組（ＴＳ）を受信して、複数ある出力ポートのいずれかに多重して出力する場合に、各出力ポートにおいて現在出力しているデータ量を差し引いた、さらに多重可能なデータ量を知らなければ、実際にその出力ポートで多重可能かどうか判定できず、多重先を決定できない点である。
【００１２】
具体的には、新たに受信するＴＳのデータ量が６Mbit/sである場合、この６Mbit/sのデータ量を多重可能な出力ポートを知らなければ多重先を決定できない点である。例えば、出力ポート１において新たに多重可能なデータ量が４Mbit/sである場合、出力ポート１に対しては新規に受信するＴＳ（６Mbit/s）のデータ量は多重できないが、出力ポート２が新たに多重可能なデータ量が１０Mbit/sであれば、出力ポート２には多重可能である。この様に、各出力ポートにおいて新たに多重可能なデータ量を知らなければ、多重先を決定できないといった問題がある。
【００１３】
第二の問題点は、出力ポートが複数（多重可能なポートが複数）ある場合、新規に受信するＴＳをどの出力ポートに出力（多重）するかを多重化装置が自動的に設定しなければ、新規ＴＳを受信し追加多重する度に、操作者が現在の各出力ポートが多重可能なデータ量から、多重先を判別し、多重先を決定しなければならない点である。
【００１４】
第三の問題点は、複数入力ポートが存在し、受信した複数ＴＳを多重化して出力する場合、視聴者側ではＰＩＤを基に番組を選択するため、多重化された信号中において同一のＰＩＤを持つＴＳが存在すると、希望の番組再生に必要なＰＩＤを持つＴＳを選別できなく、希望の番組を再生できないといった問題がある。
【００１５】
第四の問題点は、受信した複数ＴＳを多重化して視聴者に配信する場合、多重化信号より必要なＰＩＤを持つＴＳを選択するためには、多重化された信号における新たな番組構成を知る必要がある点である。多重化処理が行われると、複数受信したＴＳ中に存在するＰＳＩデータが混在した状態となり、視聴者側において、実際の多重構成と多重構成を示したＰＳＩデータとの間に不一致が生じてしまう問題がある。
【００１６】
本発明は、上記問題点を解決するためになされたもので、その第一の目的は、新規にＴＳ受信を追加する場合に必要となる各出力ポート毎の多重可能なデータ量を自動的に測定する装置を提供することにある。
【００１７】
また、その第二の目的は、各出力ポートが多重可能なデータ量から、新規受信するＴＳの多重（出力）先を自動的に設定し、多重化処理をおこなう装置を提供することにある。
【００１８】
さらに第三の目的は、複数受信したＴＳを多重化して出力する際、多重化された信号中において同一のＰＩＤを持つＴＳが存在しないようＰＩＤ値を変換する装置を提供することにある。
【００１９】
また、第四の目的は、複数受信したＴＳを多重化して出力する際に、多重化した信号における実際の番組構成と番組構成を示したＰＳＩデータとの間に不一致が無いようにＰＳＩデータを変換する装置を提供することにある。
【００２０】
【課題を解決するための手段】
上記目的を達成するために、本発明のＭＰＥＧトランスポート・ストリーム装置に係る発明の第一の構成は、複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧ(Moving Picture Experts Group)トランスポート・ストリーム多重化装置において、複数のトランスポート・ストリームを受信する手段と、受信したトランスポート・ストリームからＰＩＤ（Packet Identifier）値を抽出する手段と、ＰＩＤ値を変換する手段と、受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、多重処理手段と、ＣＰＵとを有し、前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定して、前記ＣＰＵは、その測定値に従って、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込んで、前記多重処理手段は、そのテーブルの値を参照して、決定された出力ポートに多重されたデータストリームを出力するようにしたものである。
【００３５】
次に、上記目的を達成するために、本発明のＭＰＥＧトランスポート・ストリーム装置に係る発明の第二の構成は、複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化装置において、複数のトランスポート・ストリームを受信する手段と、受信したトランスポート・ストリームからＰＩＤ値を抽出する手段と、ＰＩＤ値を変換する手段と、受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、多重処理手段と、ＣＰＵとを有し、入力ポートから前記複数のトランスポート・ストリームを受信して、前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定して、多重可能な出力ポートを決定し、その結果を信号として、前記ＣＰＵに伝え、前記ＣＰＵは、その信号を受け、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込んで、前記多重処理手段は、前記テーブルよりその値を読み出す信号を受けて、それに従って出力ポートから多重化したトランスポート・ストリームを出力するようにしたものである。
【００４４】
上記目的を達成するために、本発明のＭＰＥＧトランスポート・ストリーム装置に係る発明の第三の構成は、前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定して、前記ＣＰＵは、前記受信するトランスポート・ストリームの量とその測定量とを比較して、仮の多重先となる出力ポートを決定し、次に、前記ＣＰＵは、仮の多重先となる出力ポートから多重化するとしたときの仮のＰＳＩパケットを作成して、前記多重処理手段は、前記ＣＰＵから受け取った仮のＰＳＩパケットを、その仮の多重先となる出力ポートから出力し、再び、現時点で出力ポートがさらに多重可能なデータ量を測定して、前記ＣＰＵは、これを受けて、再び、前記受信したトランスポート・ストリームの量とその測定量とを比較して、仮の出力ポートを真の多重先となる出力ポートにするか否かを決定するようにしたものである。
【００４８】
上記目的を達成するために、本発明のＭＰＥＧトランスポート・ストリーム多重化方法に係る発明の第一の構成は、複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化方法において、この方法に用いるＭＰＥＧトランスポート・ストリーム多重化装置は、受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、多重処理手段と、ＣＰＵとを有し、このＭＰＥＧトランスポート・ストリーム多重化方法は、
（１）複数のトランスポート・ストリームを受信する手順、
（２）受信したトランスポート・ストリームからＰＩＤ値を抽出する手順、
（３）前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定する手順、
（４）（ａ）前記ＣＰＵは、その測定値に従って、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込む手順、（ｂ）前記ＣＰＵは、受信したＰＩＤ値の値を変換して、前記テーブルに変換したＰＩＤ値を書き込む手順、
（５）前記テーブルを参照して、トランスポートストリームのＰＩＤ値を変換する手順、
（６）前記多重処理手段は、そのテーブルの値を参照して、決定された出力ポートに多重されたデータストリームを出力する手順を有するようにしたものである。
【００６３】
次に、上記目的を達成するために、本発明のＭＰＥＧトランスポート・ストリーム装置に係る発明の第二の構成は、複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化方法において、この方法に用いるＭＰＥＧトランスポート・ストリーム多重化装置は、受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、多重処理手段と、ＣＰＵとを有し、このＭＰＥＧトランスポート・ストリーム多重化方法は、
（Ａ１）複数のトランスポート・ストリームを受信する手順、
（Ａ２）受信したトランスポート・ストリームからＰＩＤ値を抽出する手順、
（Ａ３）前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定する手順、
（Ａ４）（ａ１）前記ＣＰＵは、前記多重処理手段からその測定値を信号として受信する手順、（ａ２）前記ＣＰＵは、その信号を受け、受信したトランスポート・ストリームの多重先の出力ポートを決定して、前記テーブルにその値を書き込む手順、（ｂ）前記ＣＰＵは、受信したＰＩＤ値の値を変換して、前記テーブルに変換したＰＩＤ値を書き込む手順、
（Ａ５）ＰＩＤ値を変換する手段が、前記テーブルよりその値を読み出す信号を受け、トランスポートストリームのＰＩＤ値を変換する手順、
（Ａ６）前記多重処理手段は、前記テーブルよりその値を読み出す信号を受け、それに従って決定された出力ポートに多重されたデータストリームを出力する手順を有するようにしたものである。
【００７２】
上記目的を達成するために、本発明のＭＰＥＧトランスポート・ストリーム方法に係る発明の第三の構成は、複数のトランスポート・ストリームを受信して、その受信したトランスポート・ストリームを多重化して複数の出力ポートに出力するＭＰＥＧトランスポート・ストリーム多重化方法において、この方法に用いるＭＰＥＧトランスポート・ストリーム多重化装置は、受信したポートと元のＰＩＤ値との対応を示す第一のフィールドと、その第一のフィールドに対応する多重先のポートと変換後のＰＩＤ値の対応を示す第二のフィールドとからなるテーブルを保持する手段と、多重処理手段と、ＣＰＵとを有し、このＭＰＥＧトランスポート・ストリーム多重化方法は、
（Ｂ１）複数のトランスポート・ストリームを受信する手順、
（Ｂ２）受信したトランスポート・ストリームからＰＩＤ値を抽出する手順、
（Ｂ３）前記多重処理手段は、現時点で出力ポートがさらに多重可能なデータ量を測定する手順、
（Ｂ４）前記ＣＰＵは、前記受信するトランスポート・ストリームの量とその測定量とを比較して、現時点で多重先可能な出力ポートを決定する手順、
（Ｂ５）前記ＣＰＵは、仮の多重先となる出力ポートから多重化するとしたときの仮のＰＳＩパケットを作成する手順、
（Ｂ６）前記多重処理手段は、前記ＣＰＵから受け取った前記仮のＰＳＩパケットをその仮の多重先となる出力ポートから出力する手順、
（Ｂ７）仮の出力ポートを真の多重先となる出力ポートにするか否かを決定する手順、
（Ｂ８）（ａ）前記ＣＰＵは、真の多重先として決定された出力ポートの値を前記テーブルに書き込む手順、（ｂ）前記ＣＰＵは、受信したＰＩＤ値の値を変換して、前記テーブルに変換したＰＩＤ値を書き込む手順、
（Ｂ９）前記テーブルを参照して、トランスポートストリームのＰＩＤ値を変換する手順、
（Ｂ１０）前記多重処理手段は、そのテーブルの値を参照して、決定された出力ポートに多重されたデータストリームを出力する手順を有し、前記（Ｂ２）ないし（Ｂ６）の手順の後に再び、前記（Ｂ３）、（Ｂ４）の手順をおこなって、その測定値に従って、前記（Ｂ７）の手順をおこなって、しかる後に、前記（Ｂ８）ないし（Ｂ１０）の手順をこの順におこなうようにしたものである。
【００７６】
【発明の実施の形態】
以下、本発明に係る各実施形態を、図１ないし図９を用いて説明する。
〔実施形態１〕
以下、本発明に係る第一の実施形態を、図１ないし図５を用いて説明する。
【００７７】
ＭＰＥＧ−ＴＳ多重化装置は、例えば、ＣＡＴＶ（ケーブルテレビジョン）の局内に置かれ、１Mbit/s〜６Mbit/s程度の比較的低速のストリームを入力して、出力として、３０Mbit/s程度の比較的高速のストリームを得る装置である。ここで、入力されるのは、一つのＴＳで一つの番組を表すＳＰ−ＴＳ（Simple Program Transport Stream）であり、出力されるのは、それらのストリームを多重化した複数の番組を表すＭＰ−ＴＳ（Multiple Program Transport Stream）であるのが一般的である。
【００７８】
本発明に係るＭＰＥＧ−ＴＳ多重化装置は、複数の出力ポートから多重されたＴＳを出力しているとき、新たに入力されるＴＳが来たときにその多重先となる出力ポートを選定するものである。その考え方としては、現時点での各出力ポートが、さらに多重可能なデータ量を測定して、新たにＴＳ多重をおこなうのに必要となるデータ量と、その測定値を比較し、出力データ量が余裕のある出力ポートを多重先として選定するものである。ここで、新たにＴＳ多重をおこなうのに必要となるデータ量とは、新たに来るＴＳ自体のデータ量と、プログラム記述のために追加されるＰＳＩデータ量との和である。
【００７９】
先ず、図１を用いて本発明に係る第一の実施形態のＭＰＥＧ−ＴＳ多重化装置の構造と動作の概略について説明する。
図１は、本発明に係る第一の実施形態のＭＰＥＧ−ＴＳ多重化装置を示すブロック図である。
【００８０】
ＴＳ受信部１は、複数の入力ポートから来る複数のＴＳを受信する。ＰＩＤ抽出部２は、受信したＴＳを解析し、その中のＰＩＤ（Packet Identifier）値を抽出する。ＰＩＤ−ＬＵＴ（Look Up Table）部３は、抽出されたＰＩＤ値と受信ポート番号を基にして、変換すべき値を求めるためのテーブルである。ＰＩＤ変換部４は、受信したＴＳに対してＰＩＤ−ＬＵＴ部３によって求めた新規ＰＩＤ値を実際に変換する機能を有する。多重処理部５は、ＰＩＤ値の変換をおこなった後のＴＳを、各出力ポートが多重可能なデータ量に応じて多重化処理をおこなう。入力部７は、ユーザからの入力を受け付ける。ＣＰＵ部６は、入力部７から入力されたデータを基にして、データ処理をおこない、多重処理部５に対して指令を与え、かつＰＩＤ−ＬＵＴ部３に値を書き込む。出力部８は、ＣＰＵ部からの情報を表示する。
【００８１】
次に、このＭＰＥＧ−ＴＳ多重化装置の動作の概略について説明しよう。
【００８２】
本多重化装置は、複数のプログラム（ＭＰＥＧのＴＳとして表現されている）を受信して多重化処理をおこなう装置である。複数のＴＳを受信する場合、異なる入力ポートから入力されたＴＳのＰＩＤ値が重なることが考えられる。もちろん、それらは別のプログラムであるから区別されるべきものである。そのような場合において、それらのＴＳを多重化処理したときには、ＰＩＤ値が異なる値になるように変換して多重しないと、再生時に個々のＴＳを判別できなくなる。
【００８３】
そこで、本多重化装置では、受信したＴＳを多重化処理した後は、少なくとも同じ出力ポートから出力するプログラムは、それぞれ、異なったＰＩＤを割り振るようにする。例えば、ＰＩＤ値が異なる値になるように、上位のビットに出力ポート番号を２進表現した値を割り当て、その下位ビットに順次異なった値を割り振って、一つのＰＩＤを決定するようにすれば良い。以下のＰＩＤ抽出部２、ＰＩＤ−ＬＵＴ部３、ＰＩＤ変換部４の機構は、そのために設けられたものである。
【００８４】
先ず、ＴＳ受信部１は、送信された複数入力ポートからのＴＳパケット（１１(1)〜１１(m)）を受信する。ＴＳ受信部は、ＴＳパケットを受信すると、ＴＳパケット受信信号（２１(1)〜２１(m)）をＰＩＤ抽出部２に通知する。ＰＩＤ抽出部２は、ＴＳパケット受信信号（２１(1)〜２１(m)）を受信するとＴＳ受信部１より受信したＴＳパケットデータ１２を読み出し、読み出しを行ったＴＳ受信部１の受信ポート番号信号２８をＰＩＤ−ＬＵＴ部３に伝達する。また、読み出したＴＳパケットに含まれるＰＩＤ値を抽出し、抽出したＰＩＤ値をＰＩＤ値信号１３としてＰＩＤ−ＬＵＴ部３に入力する。さらに、ＴＳ受信部１より読み出したＴＳパケットデータ１２をＰＩＤ変換部４にＴＳパケットデータ１６として伝達する。ＰＩＤ−ＬＵＴ部３は、ＰＩＤ抽出部２からのＴＳ受信ポート番号信号２８及びＰＩＤ値信号１３を受け、変換する新ＰＩＤ値信号１４をＰＩＤ変換部４に伝達し、また多重先を示すデータ値信号１５を多重処理部５に伝達する。なお、ＰＩＤ−ＬＵＴ部３のデータ構造については、図２を用いて後述する。ＰＩＤ変換部４は、ＰＩＤ抽出部２から伝達されたＴＳパケットデータのＰＩＤ値をＰＩＤ−ＬＵＴ部３から伝達された新ＰＩＤ値に変換して多重処理部５にＴＳパケットデータ信号１７として伝達する。
【００８５】
さて、本多重化装置では、入力ストリームに関する情報を入力して、ＣＰＵ部６が計算できるように必要な情報を与えておく必要が有る。そのため、初めに新規受信するＴＳの入力ポート番号とＰＩＤ値の入力を、入力部７を用いておこなう。これは、コンソールからキーボードを用いて入力しても良いし、補助記憶装置からファイル形式で入力しても良い。
【００８６】
また、多重化処理後には、多重化したストリーム構成に合致するＰＳＩデータを作成することが必要である。ＰＳＩデータは、多重化したＴＳのＰＩＤ値とストリームタイプを記述する項があり、そのために、新規に受信するＴＳのＰＩＤ値とストリームタイプの対応を入力部７を用いて入力する。
【００８７】
本発明のＭＰＥＧ−ＴＳ多重化装置は、各出力ポートが多重可能なデータ量と新規受信するＴＳのデータ量の比較をおこない、多重先を選定する装置であった。そのため、さらに、新規受信するＴＳのデータ量（データ伝送速度）も入力部７を用いて入力して、予めＣＰＵ部６に教えておく必要がある。
【００８８】
ＣＰＵ部６は、入力部７から上述のようにして入力された新規多重ＴＳに関するデータをデータ信号２６により受信し、ＣＰＵ部６内のメモリに蓄積する。また、多重処理部５より各出力ポートが、現時点で多重可能なＴＳデータ量（速度）をデータ信号２４により受信し、ＣＰＵ部６内のメモリに蓄積をおこなう。そして、ＣＰＵ部６は、新規に多重をおこなうストリームのエントリ（新規に受信するＴＳに関するデータ入力を、以後「エントリ」と称する）があると、入力されたＴＳのデータ量と付加される予定のＰＳＩデータ量の和と、各出力ポートが、「現時点でさらに多重可能なデータ量との比較をおこなって、多重先出力ポートを選定する。「現時点でさらに多重可能なデータ量」とは、各出力ポートの多重可能なデータ量の最大値と、現時点で出力しているデータ量の差となる。ここで、付加される予定のＰＳＩデータ量とは、出力ポートに対して多重度が変化するために、新たに作成して挿入することになるＰＳＩデータ、具体的には、ＰＡＴ（Program Association Table）、ＰＭＴ（Program Map Table）等のために増加するデータ量である。
【００８９】
多重先の出力ポートを決定するＣＰＵ部６は、多重化後の番組構成に合致する新規のＰＳＩデータを作成して、ＰＳＩデータ信号２５を多重処理部５に伝達する。複数受信したＴＳの多重処理をおこなう場合、受信ＴＳのＰＩＤ値の重複が予想されるので、別の入力ポート番号が受信したプログラムについては、異なったＰＩＤ値が割り振られるように、入力ポート番号と元のＰＩＤ値を基に、新たに変換する新ＰＩＤ値を決定する。そして、ＰＩＤ−ＬＵＴ部３に対して、データ信号２２によりその新ＰＩＤ値データと先に決定している多重先の出力ポート番号との書き込みをおこなう。
【００９０】
多重処理部５は、伝達されたＴＳパケットデータ１７に対してＰＩＤ−ＬＵＴ部３から伝達された多重先データ値信号１５に基づき多重処理をおこなって、多重したＴＳパケットのデータ信号１８（ｉ）を、しかるべき出力ポートに出力する。また、多重処理部５は、いらないパケットを廃棄する機能も有する。この廃棄処理、多重処理の詳細については図２、図３を用いて後述することにする。
【００９１】
次に、図２を用いてＰＩＤ−ＬＵＴ部３について説明する。
図２は、ＰＩＤ−ＬＵＴ部３のデータ構造について示した図である。
【００９２】
ＰＩＤ−ＬＵＴ部３は、例えば半導体メモリで具現化される。図中のアドレス値およびデータ値は、全て１６進数表示された値であり、例えば、１６進数表示した３０という値は、０ｘ３０と表記している。このＰＩＤ−ＬＵＴ部３に入力されるのは、受信したＴＳのポート番号とＰＩＤ値であり、出力データは、受信したＴＳの多重先の出力ポート番号と変換後の新ＰＩＤ値である。このＰＩＤ−ＬＵＴ部３は、これらの値を対応する表として保持するものである。図２の一例を挙げると、例えば受信したＴＳのポート番号が０ｘ３であり、ＰＩＤ値が０ｘ３２である場合、多重先は出力ポート０ｘ３であり、変換後の新ＰＩＤ値は０ｘ０３０１になる。また例えば、多重先が出力ポート０ｘ０の場合には廃棄処理をする約束しておき、多重先データ１５を受け取る多重処理部５で、この０ｘ０の値が来たときに、廃棄するようにすれば、任意のＴＳパケットデータを廃棄可能である。この廃棄処理は、不要なＰＳＩデータのパケットを廃棄するときに利用できる。すなわち、この多重化装置では、入力ＴＳの構成を変更して、新たに多重化して出力ポートから出力する。そのために、新たなＰＳＩを作成するが、当然元のＰＳＩのパケットは新たに出力するＴＳに合致するものではないので不要となる。そのため、この不要となった元のＰＳＩパケットは廃棄されるわけである。また、伝送途中にエラーが起こったエラーパケットを廃棄することにも利用可能である。
【００９３】
さて、新ＰＩＤ値の決定の仕方としては、各出力ポート毎に重なりが無いように適当な値を選択する方法を用いる。具体的には、上で少し述べたように、上位の数ビットを出力ポート番号に当て、残ったビットで順番に割り当てる方法がある。規約により、ＰＩＤ値は１３ビットで表現されるので、例えば、出力ポート数が３ビットで表現できる数（１〜７まで）なら上位３ビットを出力ポート番号にあて、残り１０ビットを受信ＴＳの区別のために用いる方法等がある。各出力ポート毎において受信したＴＳのＰＩＤ値が重ならない用に１０ビットの値を割り当てる方法としては、既に割り当ててしまっている１０ビットの値を除いた値を選択し、順次付与して行く方法がある。この方法によれば、出力ポート数が４ビットで表現できる数（１〜１５まで）なら、上位４ビットを出力ポート番号に当て、残り９ビットを受信ＴＳの区別のために用いることになる。
【００９４】
次に、図３を用いて多重処理について詳細に説明する。
図３は、本発明の第一の実施形態に係る多重処理部５の構造とその中でのデータフローを詳細に示した図である。
【００９５】
多重処理部５は、ＰＩＤ−ＬＵＴ部３の値を参照して、ＰＩＤ変換部１７より入ってくるＴＳをしかるべき出力ポートに多重する本来の機能のほかに、各出力ポートの現時点で、さらに出力可能なデータ量を測定する機能をも有する。多重処理部５は、各出力ポートの伝送データ量に余裕があると、出力するストリームにヌルＴＳを挿入するが、このヌルＴＳをカウントすることにより、各出力ポートの伝送余裕データ量を測定するものである。
【００９６】
多情処理部５は、図３に示されるように、出力先制御部３１、多重量監視部３２、同期信号発生部３７、ＦＩＦＯ（First In First Out Memory）３３、ＰＳＩ挿入部３４、ヌルＴＳ挿入部３５、セレクタ３６から構成されている。ただし、ＦＩＦＯ、ＰＳＩ挿入部、ヌルＴＳ挿入部、セレクタは、各出力ポートの数だけ存在するので、ＦＩＦＯ３３（ｉ）（ｉ＝１,…,Ｎ）のように、インデックスを付けて配列の形式で表すことにする。
【００９７】
出力先制御部３１は、ＰＩＤ−ＬＵＴ部５から来るデータ値信号１５に基づき、入力ＴＳを各ＦＩＦＯ３３（ｉ）に振り分ける。ＦＩＦＯ３３は、ＴＳデータを先入れ、先出しで蓄えておくためのバッファである。
【００９８】
ＰＳＩ挿入部３４（ｉ）は、セレクタ３６（ｉ）に、セレクトするデータの種別を指示する。同期信号発生部３７は、そのためのタイミングをＰＳＩ挿入部３４（ｉ）に伝える部分である。
【００９９】
多重量監視部３２は、ヌルＴＳ挿入部３５（ｉ）から連絡を受け、挿入したヌルＴＳ監視して、ＣＰＵ部６に信号２４として伝える部分である。ヌルＴＳとは、出力データレート調整のために挿入するＴＳであり、ＰＩＤ値が０ｘ１ＦＦＦとして規約で定まっている。
【０１００】
セレクタ３６（ｉ）は、制御信号４５（ｉ）に従い、ＦＩＦＯ３３（ｉ）から来るＴＳパケット、ＰＳＩ挿入部３４（ｉ）から来るＰＳＩデータ、ヌルＴＳ挿入部３５（ｉ）から来るヌルＴＳを選択し、出力ポート１８（ｉ）に出力する部分である。
【０１０１】
以上のように構成された多重処理部５について、以下、セレクタの処理する場合別に分けてその動作を説明する。
【０１０２】
▲１▼セレクタがＴＳデータを出力するとき
初めにＣＰＵ部６によって作成されたＰＳＩデータ２５（ｉ）がＰＳＩ挿入部３４（ｉ）に書き込まれる。ＰＳＩデータの書き込みが終了すると、出力先制御部３１は、ＴＳパケットデータ信号１７の受信を開始し、多重先を示すデータ値信号１５に基づき多重先であるＦＩＦＯ３３（ｉ）にＴＳパケットデータ５１（ｉ）を書き込む。ここで例えば、多重先の出力ポートの番号が０のときは、廃棄処理をおこなうと定めておくと、多重処理部５内で任意のＰＩＤを持つＴＳパケットを廃棄可能である。
【０１０３】
ＦＩＦＯ３３（ｉ）では、ＴＳパケットデータがある一定量以上になるとデータ量信号（４２(1)〜４２(n)）によりＰＳＩ挿入部（３４(1)〜３４(n)）にデータがある一定量以上あることを伝達する。ある一定量とは、ＴＳパケットは１８８バイトで構成されるので、１８８バイトの整数倍で、１８８×ｎバイトになる。
【０１０４】
ＰＳＩ挿入部３４（ｉ）は、ＦＩＦＯ３３（ｉ）にある一定量以上ＴＳパケットデータがあると伝えられている場合で、かつ同期信号発生部３７からの同期信号２９が来たときには、ＦＩＦＯ３３（ｉ）にＴＳパケットデータ出力要求信号４３（ｉ）を伝達する。
【０１０５】
ＦＩＦＯ３３（ｉ）は、ＴＳパケットデータ出力要求信号４３（ｉ）に従い、ＴＳパケットデータ１９（ｉ）をセレクタ３６（ｉ）に出力する。
【０１０６】
一方、ＰＳＩ挿入部３４（ｉ）は、各ＦＩＦＯ３３（ｉ）からの出力ＴＳパケットデータ１９（ｉ）が、最終出力１８（ｉ）になるよう制御信号４５（ｉ）をセレクタ３６（ｉ）に伝達する。これにより、セレクタ３６（ｉ）は、最終出力１８（ｉ）としてＴＳパケットデータを出力することになる。
【０１０７】
▲２▼セレクタがＰＳＩデータを出力するとき
ＰＳＩ挿入部３４（ｉ）は、ある一定の間隔（例えば１００ミリ秒）でＰＳＩデータの挿入（多重）をおこなう。ＰＳＩ挿入部３４（ｉ）は、同期信号発生部３７からの同期信号２９発生時において、ＦＩＦＯ３３（ｉ）に、ある一定量以上のデータが無く、かつＰＳＩデータを挿入する時間に達している場合には、ＰＳＩデータ５２（ｉ）をセレクタ３６（ｉ）へ出力する。この場合には、ＰＳＩ挿入部３４（ｉ）は、出力ＰＳＩデータ５２（ｉ）が最終出力１８（ｉ）になるよう制御信号４５（ｉ）をセレクタ３６（ｉ）に伝達する。これにより、セレクタ３６（ｉ）は、最終出力１８（ｉ）としてＰＳＩデータを出力することになる。
【０１０８】
▲３▼セレクタがヌルＴＳを出力するとき
ＰＳＩ挿入部３４（ｉ）は、同期信号発生部３７からの同期信号２９の発生時において、ＦＩＦＯ３３（ｉ）に、ある一定量以上ＴＳパケットデータが無く、かつＰＳＩデータを挿入する時間に達していない場合には、ヌルＴＳ挿入部３５（ｉ）にヌルＴＳパケットデータ出力要求信号４４（ｉ）を伝達する。各ヌルＴＳ挿入部３５（ｉ）は、ヌルＴＳパケットデータ出力要求信号（ｉ）に従い、ヌルＴＳパケットデータ５３（ｉ）をセレクタ３６（ｉ）に出力する。この場合にはＰＳＩ挿入部３４（ｉ）は、各ヌルＴＳ挿入部からの出力ヌルＴＳパケットデータ５３（ｉ）が最終出力１８（ｉ）になるよう制御信号４５（ｉ）をセレクタ３６（ｉ）に伝達する。これにより、セレクタ３６（ｉ）は、最終出力１８（ｉ）としてＰＳＩデータを出力することになる。
【０１０９】
多重量監視部３２は、ある一定時間（例えば１秒）毎に基準となる信号４１をヌルＴＳ挿入部３５（ｉ）に伝達する。ヌルＴＳ挿入部３５（ｉ）は、基準信号４１毎にカウンタをリセットし、基準時間間隔内に挿入したヌルＴＳパケットデータ数を多重可能データ量信号４６（ｉ）として多重量監視部３２に伝達する。多重量監視部３２は、各出力ポートの多重可能データ量を信号２４としてＣＰＵ部６へ伝達する。これが、出力ポートのデータ転送量を測定する仕組みである。
【０１１０】
次に、図４を用いて本発明の第一の実施形態に係るＣＰＵ部６の動作について順を追って説明する。
図４は、本発明の第一の実施形態に係るＣＰＵ６の処理を示すフローチャートである。
【０１１１】
初めに装置の電源が投入されると、アプリケーションの動作が開始する（Ｓ６０）。アプリケーションの動作が開始されると新規にＴＳを受信するための待ち状態になり（Ｓ６１）、入力部７により新規にＴＳを多重するエントリがあるまで待ち状態（Ｓ６１）が繰り返される。
【０１１２】
入力部７により新規にＴＳを多重するエントリがあると、多重量監視部３２からのデータを参照し（Ｓ６２）、新たにＴＳ多重に必要となるデータ量と各出力ポートが現時点で多重可能なデータ量とを比較して、多重先の候補があるかどうかを判定する（Ｓ６３）。
【０１１３】
候補がある場合には、その中から多重先を決定する（Ｓ６４）。
【０１１４】
多重先候補が無い、すなわち、全てのポートが新たにＴＳ多重をするためのデータ量の余裕がない場合には、新規にＴＳを多重することができないことを出力部８に伝える（Ｓ６７）。出力部８は、例えば、この多重処理装置に接続されているコンソールに現在、多重することができない旨のメッセージを表示する。なお、多重先の決定方法につては、図５を用いて後述する。
【０１１５】
多重先が決定すると、新規に多重するＴＳのデータと多重する出力ポートの既存のＰＳＩデータとから新規のＰＳＩデータを作成し、多重処理部５に送って、多重先であるＰＳＩ挿入部の既存のＰＳＩデータを更新する（Ｓ６５）。また、新規に多重するＴＳのデータを元にして、ＰＩＤ−ＬＵＴ部５へ書き込むデータ（多重先出力ポート番号と新ＰＩＤ値）を作成し、更新する（Ｓ６６）。
【０１１６】
さて次に、図５を用いてＣＰＵ６が新たに多重するデータ量と各出力ポートの多重可能データ量を比較して、多重先の出力ポートを選定する処理について詳細に説明しよう。
図５は、ＣＰＵ部が保持する新規多重ＴＳに関するデータと各出力ポートの多重可能データ量についての例を示した模式図である。
【０１１７】
ＣＰＵ６は、メモリ内に新規エントリ情報テーブル９０を保持している。このテーブルは、受信ポートのフィールド９１、ＰＩＤのフィールド９２、ストリームタイプのフィールド９３、データ量のフィールド９４、付加データ量のフィールド９５、全データ量のフィールド９６で構成されている。
【０１１８】
受信ポートのフィールド９１は、入力部７により入力された新規多重ＴＳの入力ポート番号が入れるためのフィールドである。ＰＩＤのフィールド９２には、受信ＴＳのＰＩＤ値が入る。ストリームタイプのフィールド９３は、入力されたＴＳのストリームタイプを保持するためのフィールドであり、それがＭＰＥＧ２−Ｖｉｄｅｏであるとか、Ａｕｄｉｏであるとかの情報を持つ。これは、ＰＳＩデータを作成するのに必要になる。
【０１１９】
データ量のフィールド９４は、受信するストリームのデータ量（正確には、データ伝送速度）を入れるためのフィールドである。同じく、付加データ量のフィールドには、ＰＳＩデータを付加するときに、必要となるデータ量（データ伝送速度）のためのフィールドである。
【０１２０】
この付加データ量は、ＰＳＩを挿入する頻度で決定されるが、大きめに余裕を取れば定数であるとして良い。
【０１２１】
データ量のフィールド９４の値が、ｖ[Mbit/s]、付加データ量のフィールドの値がα[Mbit/s]のとき、全データ量のフィールド９６に入る値は、図のように、ｖ＋α[Mbit/s]になる。
【０１２２】
多重可能データ量テーブル１００は、各多重先の出力ポート毎に、現時点での多重可能データ量（これも正確には、データ伝送速度）を保持するものである。この現時点での多重可能データ量は、既に述べたように、多重処理部５内で、ヌルＴＳをカウントすることにより得られるものであり、一定時間毎に、多重処理部５からのデータ信号により２４により更新されるものである。
【０１２３】
そして、多重可能データ量ｒ（ｉ）が、全データ量ｖ＋αより、大きいか等しくなったときに、この受信ＴＳを、その出力ポートｉで多重可能であることを意味する。
【０１２４】
ＣＰＵ部６は、このように多重可能な出力ポートの候補をピックアップし、最終的に多重する出力ポートを決定することになる。決定のアルゴリズムについては、以下のように様々なものが考えられる。
【０１２５】
例えば、
（１）多重可能なデータ量ｒ（ｉ）から新規ＴＳを受信するにあたり必要となる伝送量（ｖ＋α）を差し引いた値（ｒ（ｉ）−（ｖ＋α））が０以上で、かつ候補となる全ポートの内で最小となる出力ポートを選定する方法。これは、できるだけ他のポートに空のデータ容量を作ろうとするアルゴリズムである。
【０１２６】
（２）多重可能なデータ量ｒ（ｉ）から新規ＴＳを受信するにあたり必要となる伝送量（ｖ＋α）を差し引いた値（ｒ（ｉ）−（ｖ＋α））が０以上で、かつ候補となる全ポートの内で最大となる出力ポートを選定する方法。これは、できるだけポートに流れるデータを平準化しようとするアルゴリズムである。
【０１２７】
また、候補の選定先の観点を変え、ポート番号に着目する方法、
（３）候補となる出力ポートの内で、ポート番号が最小となるものを選定する方法。
【０１２８】
（４）候補となる出力ポートの内で、ポート番号が最大となるものを選定する方法。
【０１２９】
さらに、このポート番号に着目する方法としては、
（５）前回多重した出力ポート以降のポート番号を持つもので、差分値（ｒ（ｉ）−（ｖ＋α））が０以上となる最初のポートを多重先と決定する方法。
【０１３０】
などが考えられる。
【０１３１】
〔実施形態２〕
以下、本発明に係る第二の実施形態を、図６ないし図９を用いて説明する。
【０１３２】
第一の実施形態に係るＭＰＥＧ−ＴＳ多重化装置は、新たに入力されるＴＳが来たときで、その多重先となる出力ポートを選定するときには、新規エントリの全データ量と、各出力ポートの多重可能なデータ量を比較するものであった。このとき付加されるデータ量（図５のα）は、固定のものとしていた。
【０１３３】
この第二の実施形態では、基本的な原理は同じであるが、すこし手順と考え方を変えたものである。すなわち、付加されるデータ量を可変のものとして取り扱うものである。本実施形態では、先ず、ＴＳの新規データ量（後に出てくる図９のｖ）のみを参照して、これで、仮の多重する出力先を決定する。そして、その構成で仮のＰＳＩデータを作成する。
【０１３４】
次に、この作成したＰＳＩデータを実際に、仮決定された出力ポートに流してみる。ここで、未だ実際のＴＳパケットデータは、出力しないことに留意する。
【０１３５】
このようにＰＳＩデータを流して、多重処理部がヌルＴＳの流れる量を測定し、出力ポートの「さらに多重可能なデータ量」を測定する。これは、実施形態１と同様である。ＰＳＩデータは、既に出力ポートに流しているので、比較するのは、ＰＳＩデータのデータ量とは無関係なＴＳの新規データ量と出力ポートの「さらに多重可能なデータ量」とを比較すれば良いことになる。
【０１３６】
そして、余裕のある出力ポートが見つかれば、それで多重先となる出力ポートは、本決定されたことになる。候補が見つからないときには、出力ポートを仮決定する部分からやりなおすことになる。
【０１３７】
先ず、図６を用いて本発明に係る第二の実施形態のＭＰＥＧ−ＴＳ多重化装置の構造と動作の概略について説明する。
図６は、本発明に係る第二の実施形態のＭＰＥＧ−ＴＳ多重化装置を示すブロック図である。
【０１３８】
基本的な原理は、第一の実施形態と共通なので、本実施形態の固有の部分を強調して説明することにする。図１と図６の図として異なる所は、図６にデータ量測定要求信号２３が加わっていることのみである。
【０１３９】
新たにＴＳパケットを受信すると、ＰＩＤを抽出して、必要な情報をＰＩＤ−ＬＵＴ部３に書き込み、ＰＩＤ変換部４でＰＩＤを変換し、多重処理部５に伝える仕組みは、実施形態１と同様である。
【０１４０】
ＣＰＵ部６は、入力されたＴＳのストリーム量と各出力ポートの多重可能なデータ量とを比較し、仮の多重先出力ポートを選定する。この選定はあくまで仮のものであり、比較するのはＴＳストリームのデータ量自身であり、ＰＳＩデータは入っていないことに留意する。各出力ポートが多重可能なデータ量は、多重処理部５から一定間隔のタイミングで通知されることも実施形態１と同様である。
【０１４１】
その後、仮のＰＳＩデータを作成し、多重処理部５に対して仮のＰＳＩデータ２５の更新をおこなう。更新が終了すると、多重処理部５に対して各出力ポートが多重可能なデータ量を測定するようデータ量測定要求信号２３を伝達する。
【０１４２】
多重処理部５は、ＣＰＵ部６からのデータ量要求測定要求信号２３に基づき、各出力ポートが多重可能なデータ量を測定し、ＣＰＵ部６に各出力ポートが多重可能なデータ量信号２４を伝達する。測定の仕方は、実施形態１と同様、挿入されたヌルＴＳパケットデータをカウントするものである。このヌルＴＳデータを、単位時間当たりに流せる量が、各出力ポートのさらに多重可能なデータ量である。このとき、ＰＳＩデータは、既に出力ポートに流しているので、測定量は、それ以外の実際のＴＳデータ量を流すための量であると解釈できる。
【０１４３】
ＣＰＵ部６は、仮のＰＳＩデータ多重を開始した後の測定値を多重処理部５から受け取り、仮の多重先と決定した出力ポートが、さらに多重可能なデータ量と新たに多重をおこなうＴＳのデータ量とを再度比較して、実際に多重可能かどうかを判定する。
【０１４４】
仮に選定した多重先が多重可能である場合には、図１で説明したようにＰＩＤ−ＬＵＴのデータを作成して更新をおこなう。
【０１４５】
仮に選定した多重先では多重可能でない場合には、仮のＰＳＩデータを元に戻し、より多くのデータを多重可能なポート（次候補）を再度選定する。そして、再度仮のＰＳＩデータを作成して更新をおこない、更新後に再度選定した出力ポートに対して多重可能データ量を測定するよう指示し、再度多重可能かどうかを判定する。
【０１４６】
以上の手続きを繰り返し、多重可能な出力ポートを決定する。多重可能な出力ポートが無い場合には、新規のＴＳ多重が不可であることを出力部８を用いて操作者に伝達する。
【０１４７】
上の説明では、仮の多重先の候補は、一度に一つだけ選ぶアルゴリズムであったが、仮の多重先を複数選ぶことも可能である。例えば、仮の多重先の出力ポートを選ぶフェーズで、可能性のある出力ポートをすべて選び、すべてに対して仮のＰＳＩデータを流して、測定をおこなって、多重可能な出力ポートを選ぶアルゴリズムも考えられる。
【０１４８】
次に、図７を用いて第二の実施形態に固有な多重処理について詳細に説明する。
図７は、本発明の第二の実施形態に係る多重処理部５の構造とその中でのデータフローを詳細に示した図である。図３と図７の図として異なる所も、図７にデータ量測定要求信号２３が加わっていることのみである。
【０１４９】
同期信号に従い、ＦＩＦＯ内のデータ量とそのタイミングがＰＳＩ挿入時間であるか否かを基準に、ＦＩＦＯ内のＴＳデータ、ＰＳＩデータ、ヌルＴＳデータのいずれかをセレクタ３６（ｉ）が選択して、出力するという機能は、実施形態１と同様である。すなわち、この機能については、装置レベルでは異なる所はない。
【０１５０】
異なっているのは、ＣＰＵ部６とのインターフェイスである。すなわち、実施形態２では、ＣＰＵ６が任意のタイミングで、多重処理部５に対してデータ量要求信号２３を出せるようになっている。多重量監視部３２は、ある一定時間（例えば１秒）毎、あるいはＣＰＵ部６からの多重可能なデータ量測定要求信号２３を受信したとき基準となる信号４１を各ヌルＴＳ挿入部３５（ｉ）に伝達する。各ヌルＴＳ挿入部３５（ｉ）は基準信号４１毎にカウンタをリセットし、基準時間間隔内に挿入したヌルＴＳパケットデータ数を多重可能データ量信号４６（ｉ）として多重量監視部３２に伝達する。多重量監視部３２は、各出力ポートの多重可能データ量を信号２４としてＣＰＵ部へ伝達する。
【０１５１】
次に、図８を用いて本発明の第二の実施形態に係るＣＰＵ部６の動作について順を追って説明する。
図８は、本発明の第二の実施形態に係るＣＰＵ６の処理を示すフローチャートである。
【０１５２】
初めに装置の電源が投入されるとアプリケーションの動作が開始する（Ｓ７０）。アプリケーションの動作が開始されると新規にＴＳを受信するかの待ち状態になり（Ｓ７１）、入力部７により新規にＴＳを多重するエントリがされるまで待ち状態（Ｓ７１）が繰り返される。
【０１５３】
入力部７により新規にＴＳを多重するエントリがされると、多重量監視部３２からのデータを参照し（Ｓ７２）、新規に多重するデータ量と各出力ポートの多重可能データ量とを比較し、多重可能な出力ポートがあるかどうかを判定する（Ｓ７３）。
【０１５４】
多重可能な出力ポートが無い場合には、新たにＴＳ多重はできないことを表示する要求を出力部８におこなう。出力部８は、コンソールなどに現在、多重することができない旨のメッセージを表示する。
【０１５５】
多重可能な出力ポートがある場合には、仮の多重先の出力ポートを選定する（Ｓ７５）。
【０１５６】
多重先を選定すると新規に多重するＴＳのデータと多重する出力ポートの既存のＰＳＩデータとから新規のＰＳＩデータを仮に作成する。そして、図６に示されるＰＳＩデータ信号によって多重処理部５内にあるＰＳＩ挿入部の既存のＰＳＩデータを更新する（Ｓ７６）。ＰＳＩデータ更新後、ＣＰＵ部６は、データ量測定要求信号２３により、多重量監視部３２に各出力ポートが多重可能なデータ量を測定するよう指示する（Ｓ７７）。
【０１５７】
多重量監視部３２は、ＣＰＵ部６からの多重可能量測定要求に従い、仮のＰＳＩデータ更新後の多重可能データ量を測定する。
【０１５８】
ＣＰＵ部６は、再度、図６に示されるデータ信号２４により、各出力ポートが多重可能なデータ量を受け取り（Ｓ７８）、仮に選定した出力ポートが新規に多重するＴＳを実際に多重可能であるかを判定する（Ｓ７９）。多重可能であれば新たにＰＩＤ−ＬＵＴ部３に書き込むデータを作成して、更新をおこなう（Ｓ８０）。
【０１５９】
多重可能でなければ、先に作成した仮のＰＳＩデータを元に戻して（Ｓ８１）、より多くのデータを多重可能なポート（次候補）があるかを判定する（Ｓ８２）。
【０１６０】
次候補が無い場合には、新たにＴＳ多重はできないことを表示する要求を出力部８におこなう。出力部８は、コンソールなどに現在、多重することができない旨のメッセージを表示する。
【０１６１】
次候補がある場合には、再度、それを仮の多重先の出力ポートとして選定し（Ｓ７５）、再度仮のＰＳＩデータを作成して、ＰＳＩデータ信号により、多重処理部５のＰＳＩ挿入部４５（ｉ）に対して更新の指示をおこなう（Ｓ７６）。
【０１６２】
仮の新ＰＳＩデータが更新された後に、再度、データ量測定要求信号２３によって各出力ポートが多重可能なデータ量を測定するよう指示する（Ｓ７７）。そして、データ信号２４により、各出力ポートが多重可能なデータ量を受け取り（Ｓ７８）、新規に多重するＴＳが実際にその出力ポートで多重可能か否かを判定する（Ｓ７９）。
【０１６３】
以上の選定動作を繰り返し、新規ＴＳの多重可能な出力ポートを決定する。多重可能な出力ポートが存在しない場合には、新規にＴＳを多重することができないことを出力部８に伝え、出力部８は、例えば、この多重処理装置に接続されているコンソールに現在、多重することができない旨のメッセージを表示する。
【０１６４】
上のアルゴリズムでは、候補となる仮の多重先の出力ポートを、一つずつ選び、テストを繰り返すアルゴリズムであったが、既に述べたように、候補となる仮の多重先を複数、例えば、可能性のある出力ポートをすべて選び、一度に候補先のテストをおこなうアルゴリズムにしても良い。
【０１６５】
次に、図９を用いて本発明の第二の実施形態においてＣＰＵ６が多重先の出力ポートを選定する処理について詳細に説明しよう。
図９は、本発明の第二の実施形態においてＣＰＵ部が保持する新規多重ＴＳに関するデータと各出力ポートの多重可能データ量についての例を示した模式図である。
【０１６６】
第二の実施形態の新規エントリ情報テーブル１１０は、第一の実施形態のテーブルとほぼおなじものであるが、付加データ量と、全データ量のフィールドがないことのみ異なっている。
【０１６７】
これは、ＣＰＵ部６で多重可能な出力ポートを選定するために、各出力ポートの多重可能データ量と比較するデータが、ＰＳＩのデータ量を含んでいないＴＳパケットのみのデータであるためである。逆に言えば、仮の出力ポートを選定するためと、その仮の出力ポートを正式の出力先とする判断に、ＴＳパケットのデータ量（図９のフィールド１１４のｖ[Mbit/s]）のみしか用いないためである。
【０１６８】
本実施形態では、出力ポートｉは、ｒ（ｉ）が、データ量ｖより、大きいか等しくなったときに、その受信ＴＳを多重可能であると判断される。
【０１６９】
仮の出力ポートで、そのような条件を満たすときには、候補の中から仮の出力ポートを一つピックアップする方法として、判断条件が「（ｒ（ｉ）−ｖ）が０以上」になるほかは、実施形態１で説明した（１）〜（５）の方法を用いることができる。
【０１７０】
【発明の効果】
本発明によれば新規にＴＳ受信を追加する場合に必要となる各出力ポート毎の多重可能なデータ量を自動的に測定する装置を提供することができる。
【０１７１】
また、本発明によれば、各出力ポートが多重可能なデータ量から、新規受信するＴＳの多重（出力）先を自動的に設定し、多重化処理をおこなう装置を提供することができる。
【０１７２】
さらに本発明によれば、複数受信したＴＳを多重化して出力する際、多重化された信号中において同一のＰＩＤを持つＴＳが存在しないようＰＩＤ値を変換する装置を提供することができる。
【０１７３】
また、本発明によれば、複数受信したＴＳを多重化して出力する際に、多重化した信号における実際の番組構成と番組構成を示したＰＳＩデータとの間に不一致が無いようにＰＳＩデータを変換する装置を提供することができる。
【図面の簡単な説明】
【図１】本発明に係る第一の実施形態のＭＰＥＧ−ＴＳ多重化装置を示すブロック図である。
【図２】ＰＩＤ−ＬＵＴ部３のデータ構造について示した図である。
【図３】本発明の第一の実施形態に係る多重処理部５の構造とその中でのデータフローを詳細に示した図である。
【図４】本発明の第一の実施形態に係るＣＰＵ６の処理を示すフローチャートである。
【図５】ＣＰＵ部が保持する新規多重ＴＳに関するデータと各出力ポートの多重可能データ量についての例を示した模式図である。
【図６】本発明に係る第二の実施形態のＭＰＥＧ−ＴＳ多重化装置を示すブロック図である。
【図７】本発明の第二の実施形態に係る多重処理部５の構造とその中でのデータフローを詳細に示した図である。
【図８】本発明の第二の実施形態に係るＣＰＵ６の処理を示すフローチャートである。
【図９】本発明の第二の実施形態においてＣＰＵ部が保持する新規多重ＴＳに関するデータと各出力ポートの多重可能データ量についての例を示した模式図である。
【符号の説明】
１…ＴＳ受信部、２…ＰＩＤ抽出部、３…ＰＩＤ−ＬＵＴ部、４…ＰＩＤ変換部、５…多重処理部、６…ＣＰＵ部、７…入力部、８…出力部、３１…出力先制御部、３２…多重量監視部、３３…ＦＩＦＯ、３４…ＰＳＩ挿入部、３５…ヌルＴＳ挿入部、３６…セレクタ、３７…同期信号発生部。
【図１】
0003766525.tif 000002
【図２】
0003766525.tif 000003
【図３】
0003766525.tif 000004
【図４】
0003766525.tif 000005
【図５】
0003766525.tif 000006
【図６】
0003766525.tif 000007
【図７】
0003766525.tif 000008
【図８】
0003766525.tif 000009
【図９】
0003766525.tif 000010