(57)【特許請求の範囲】
【請求項１】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化装置であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定し、
別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定し、
別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重終了時刻あるいは表示終了時刻として設定し、
指定がない場合は未定義として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、
前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段と
を具備することを特徴とするデータ多重化装置。
【請求項２】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化装置であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、
前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段と
を具備し、さらに、
前記パケット生成手段が、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成手段と、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうち、パケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成手段とを具備し、
前記多重時刻管理手段が、
異なる入力ストリームα、βから生成された、前記パケットＩＤが等しく前記多重確定期間が重複している複数の前記固定長パケットを多重する際、前記多重開始時刻が早い前記入力ストリームαに対して多重開始指示を出力して、この前記入力ストリームαから生成した前記固定長パケットを優先して多重し、その前記入力ストリームαをすべて多重し終えた後、多重開始時刻が遅い前記入力ストリームβに対して多重開始指示を出力して、この前記入力ストリームβから生成した前記固定長パケットの多重を開始するセマフォ制御手段を
具備することを特徴とするデータ多重化装置。
【請求項３】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化装置であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、
前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段と
を具備し、さらに、
前記パケット生成手段が、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成手段と、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成手段とを具備し、
前記多重時刻管理手段が、
前記パケットＩＤが使用される毎に前記シーケンス番号の初期値および終了値を随時記憶し、前記同一パケットＩＤが再度使用される場合には、前記記憶したシーケンス番号初期値を元にシーケンス番号初期値を計算するシーケンス番号管理手段
を具備することを特徴とするデータ多重化装置。
【請求項４】
前記パケットデータ生成手段が、
前記パケットＩＤが等しいパケットの前記出力ストリームにおける先頭パケットと最終パケットのシーケンス番号が等しい場合、前記最終パケットの前記パケットデータ部に多重する前記入力ストリームを複数に分割して前記最終パケットを複数パケットとする最終パケット分割判定手段
を具備することを特徴とする請求項３記載のデータ多重化装置。
【請求項５】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化装置であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、
前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段と
を具備し、さらに、
前記パケット生成手段が、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成手段と、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成手段とを具備し、
前記パケットデータ生成手段が、
前記確定多重期間内で先頭パケットデータを生成する前に、前記入力ストリームを含まないダミーパケットデータを生成するダミーパケットデータ生成手段
を具備することを特徴とするデータ多重化装置。
【請求項６】
前記パケットデータ生成手段が、
前記パケットＩＤが等しいパケットの前記出力ストリームにおける最終パケットのシーケンス番号(cc_end)、先頭パケットのシーケンス番号(cc_start)、シーケンス番号総使用個数(CCNUM)＝シーケンス番号最大値(CCMAX)−シーケンス番号最小値(CCMIN)＋1に対して、cc_start＝cc_end＋1を満たすよう、前記最終パケットの前記パケットデータ部に多重すべき前記入力ストリームを、被除数(cc_start−cc_end＋CCNUM)、除数CCNUMとした場合に得られる剰余Ｄ個、但し、cc_start＝cc_endの場合は、Ｄ＝CCNUM個に分割する最終パケット分割個数計算手段
を具備することを特徴とする請求項３記載のデータ多重化装置。
【請求項７】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定し、
別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定し、
別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重終了時刻あるいは表示終了時刻として設定し、
指定がない場合は未定義として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備することを特徴とするデータ多重化方法。
【請求項８】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備し、さらに、
前記パケット生成ステップが、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成ステップと、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成ステップとを具備し、
前記多重時刻管理ステップが、
異なる入力ストリームα、βから生成された、前記パケットＩＤが等しく前記多重確定期間が重複している複数の前記固定長パケットを多重する際、前記多重開始時刻が早い前記入力ストリームαに対して多重開始指示を出力して、この前記入力ストリームαから生成した前記固定長パケットを優先して多重し、その前記入力ストリームαをすべて多重し終えた後、多重開始時刻が遅い前記入力ストリームβに対して多重開始指示を出力して、この前記入力ストリームβから生成した前記固定長パケットの多重を開始するセマフォ制御ステップを
具備することを特徴とするデータ多重化方法。
【請求項９】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備し、さらに、
前記パケット生成ステップが、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成ステップと、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成ステップとを具備し、
前記多重時刻管理ステップが、
前記パケットＩＤが使用される毎に前記シーケンス番号の初期値および終了値を随時記憶し、前記同一パケットＩＤが再度使用される場合には、前記記憶したシーケンス番号初期値を元にシーケンス番号初期値を計算するシーケンス番号管理ステップ
を具備することを特徴とするデータ多重化方法。
【請求項１０】
前記パケットデータ生成ステップが、
前記パケットＩＤが等しいパケットの前記出力ストリームにおける先頭パケットと最終パケットのシーケンス番号が等しい場合、前記最終パケットの前記パケットデータ部に多重する前記入力ストリームを複数に分割して前記最終パケットを複数パケットとする最終パケット分割判定ステップ
を具備することを特徴とする請求項９記載のデータ多重化方法。
【請求項１１】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備し、さらに、
前記パケット生成ステップが、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成ステップと、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成ステップとを具備し、
前記パケットデータ生成ステップが、
前記確定多重期間内で先頭パケットデータを生成する前に、前記入力ストリームを含まないダミーパケットデータを生成するダミーパケットデータ生成ステップ
を具備することを特徴とするデータ多重化方法。
【請求項１２】
前記パケットデータ生成ステップが、
前記パケットＩＤが等しいパケットの前記出力ストリームにおける最終パケットのシーケンス番号(cc_end)、先頭パケットのシーケンス番号(cc_start)、シーケンス番号総使用個数(CCNUM)＝シーケンス番号最大値(CCMAX)−シーケンス番号最小値(CCMIN)＋1に対して、cc_start＝cc_end＋1を満たすよう、前記最終パケットの前記パケットデータ部に多重すべき前記入力ストリームを、被除数(cc_start−cc_end＋CCNUM)、除数CCNUMとした場合に得られる剰余Ｄ個、但し、cc_start＝cc_endの場合は、Ｄ＝CCNUM個に分割する最終パケット分割個数計算ステップ
を具備することを特徴とする請求項９記載のデータ多重化方法。
【請求項１３】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定し、
別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定し、
別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重終了時刻あるいは表示終了時刻として設定し、
指定がない場合は未定義として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備することを特徴とするデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備し、さらに、
前記パケット生成ステップが、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成ステップと、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成ステップとを具備し、
前記多重時刻管理ステップが、
異なる入力ストリームα、βから生成された、前記パケットＩＤが等しく前記多重確定期間が重複している複数の前記固定長パケットを多重する際、前記多重開始時刻が早い前記入力ストリームαに対して多重開始指示を出力して、この前記入力ストリームαから生成した前記固定長パケットを優先して多重し、その前記入力ストリームαをすべて多重し終えた後、多重開始時刻が遅い前記入力ストリームβに対して多重開始指示を出力して、この前記入力ストリームβから生成した前記固定長パケットの多重を開始するセマフォ制御ステップを
具備することを特徴とするデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１５】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備し、さらに、
前記パケット生成ステップが、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成ステップと、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成ステップとを具備し、
前記多重時刻管理ステップが、
前記パケットＩＤが使用される毎に前記シーケンス番号の初期値および終了値を随時記憶し、前記同一パケットＩＤが再度使用される場合には、前記記憶したシーケンス番号初期値を元にシーケンス番号初期値を計算するシーケンス番号管理ステップ
を具備することを特徴とするデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記パケットデータ生成ステップが、
前記パケットＩＤが等しいパケットの前記出力ストリームにおける先頭パケットと最終パケットのシーケンス番号が等しい場合、前記最終パケットの前記パケットデータ部に多重する前記入力ストリームを複数に分割して前記最終パケットを複数パケットとする最終パケット分割判定ステップ
を具備することを特徴とする請求項１５記載のデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
ディジタルデータからなるＮ本(Ｎは正の整数)の入力ストリームを、それぞれ固定長パケットにパケット化し、前記固定長パケットをインタリーブして出力ストリームを生成するデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成する過程をＮ回行うパケット生成ステップと、
前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理ステップと、
前記Ｎ本の入力ストリームそれぞれについて、
多重開始時刻あるいは表示開始時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、
多重終了時刻あるいは表示終了時刻が、
前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、
前記パケット生成ステップにより生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、
これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理ステップと、
前記Ｎ個のパケット生成ステップにより生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重ステップと
を具備し、さらに、
前記パケット生成ステップが、
前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成ステップと、
入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成ステップとを具備し、
前記パケットデータ生成ステップが、
前記確定多重期間内で先頭パケットデータを生成する前に、前記入力ストリームを含まないダミーパケットデータを生成するダミーパケットデータ生成ステップ
を具備することを特徴とするデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記パケットデータ生成ステップが、
前記パケットＩＤが等しいパケットの前記出力ストリームにおける最終パケットのシーケンス番号(cc_end)、先頭パケットのシーケンス番号(cc_start)、シーケンス番号総使用個数(CCNUM)＝シーケンス番号最大値(CCMAX)−シーケンス番号最小値(CCMIN)＋1に対して、cc_start＝cc_end＋1を満たすよう、前記最終パケットの前記パケットデータ部に多重すべき前記入力ストリームを、被除数(cc_start−cc_end＋CCNUM)、除数CCNUMとした場合に得られる剰余Ｄ個、但し、cc_start＝cc_endの場合は、Ｄ＝CCNUM個に分割する最終パケット分割個数計算ステップ
を具備することを特徴とする請求項１５記載のデータ多重化方法を含んだプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のディジタルデータを多重化するデータ多重化装置、データ多重化方法およびデータ多重化方法を記録したコンピュータ読み取り可能な記録媒体に関するものである。
【０００２】
【従来の技術】
多重化の国際標準規格にISO/IEC13818-1(以下MPEG2-TS)がある。MPEG2-TSは、映像エレメンタリストリーム(以下映像ES)、音声エレメンタリストリーム(以下音声ES)、セクション形式ストリーム(以下セクションデータ)等をトランスポートストリームパケット(以下TSパケット)化して多重化したストリームであり、このMPEG2-TSストリームを生成するためには、MPEG2-TSに準拠したデータ多重化装置が必要となる。
【０００３】
以下、従来のデータ多重化装置の例を図面を用いて説明する。図１１は映像ES、音声ES、セクションデータを入力とし、これらをTSパケット化して多重してMPEG2-TSを出力する従来のデータ多重化装置１１００の構成を示すブロック図であり、図１2は図１１におけるパケット生成部１１０１〜１１０７の構成を示すブロック図であり、図１3は図１２におけるヘッダ生成部１２０１の構成を示すブロック図であり、図１4は図１２におけるパケットデータ生成部１２０２の構成を示すブロック図であり、図１５は図１１における多重時刻管理部１１０９の構成を示すブロック図であり、図１６は図１１における従来のデータ多重化装置１１００と再多重化装置１６０８を使って再多重を行う場合の構成を示すブロック図であり、図１７は図１６におけるストリーム生成過程を示す図であり、図１８は出力ストリームを繰り返し送出する場合の様子を示す図であり、図１９はESデータをTSパケット化するまでの多重化過程を示す図であり、図２０は図１９のTSパケット１９０６の詳細を示す図である。
【０００４】
図１１に示すようにデータ多重化装置１１００は、パケット生成部１１０１、１１０２、１１０３、１１０４、１１０５、１１０６、１１０７、パケット多重部１１０８、多重時刻管理部１１０９、出力基準時刻管理部１１１０を含んで構成される。
【０００５】
図１２に示すようにパケット生成部１２００は、ヘッダ生成部１２０１、パケットデータ生成部１２０２、多重部１２０３を含んで構成される。
【０００６】
図１３に示すようにヘッダ生成部１３００は、ヘッダ雛形生成部１３０１、シーケンス番号生成部１３０２、多重部１３０３を含んで構成される。
【０００７】
図１４に示すようにパケットデータ生成部１４００は、バッファ１４０１、パディング付加部１４０２、読み出し制御部１４０３を含んで構成される。
【０００８】
図１５に示すように多重時刻管理部１５００は、多重開始指定時刻記憶部１５０１、多重終了指定時刻記憶部１５０２、比較部１５０３、１５０４を含んで構成される。
【０００９】
図１１において、パケット生成部１１０１〜１１０７は、ビデオエレメンタリストリーム(以下映像ES)、オーディオエレメンタリストリーム(以下音声ES)、セクションデータを入力として、TSパケット(188バイト)を生成する手段であり、パケット多重部１１０８は、パケット生成部１１０１〜１１０７において生成したTSパケット(188バイト)をインタリーブして出力する手段であり、多重時刻管理部１１０９は、TSパケットの多重開始／終了時刻の管理を行う手段であり、出力基準時刻管理部１１１０は、出力ストリームにおける基準時刻を管理する手段である。
【００１０】
図１２において、ヘッダ生成部１２０１は、TSパケット(188バイト)のうちのヘッダ部(4バイト)を生成する手段であり、パケットデータ生成部１２０２は、TSパケット(188バイト)うちのパケットデータ部(184バイト)を生成する手段である。
【００１１】
図１４において、バッファ１４０１内の入力ストリームを読み出してパディング付加部１４０２にてパディングを付加してパケットデータ(184バイト)を生成する。ここで、映像ESおよび音声ESをTSパケット化する際にはPESパケット化の過程が必要であるが、本説明ではバッファ１４０１内でPESヘッダを付加してPES化(図１９のPESパケット１９０２を参照)するものとして、この過程を省略する。
【００１２】
このように構成されたデータ多重化装置１１００の動作について詳細に説明する。
【００１３】
まず、出力ストリームの生成過程について説明する。
図１１において、出力ストリームの基準時刻は出力基準時刻管理部１１１０で管理されており(例えば、出力ストリームを1TSパケット出力する度に時計を進める。)、この基準時刻をもとにした各入力ストリームの多重開始、多重終了指示は、すべて多重時刻管理部１１０９で管理される。各パケット生成部１１０１〜１１０７は、多重時刻管理部１１０９からそれぞれの多重開始指示を受信すると、それぞれ入力ストリームからTSパケットを生成し、それらはパケット多重部１１０８においてインタリーブされ、多重時刻管理部１１０９からそれぞれの多重終了指示を受信すると、TSパケットの生成をやめて、パケット多重部１１０８におけるインタリーブも終了する。
【００１４】
次にパケット生成過程について詳細に説明する。
図１２において、ヘッダ生成部１２０１は、4バイトのヘッダを生成する。そして、パケットデータ生成部１２０２は、入力ストリームに、必要に応じてパディングを加えながら184バイトのパケットデータを生成する(図２０参照)。そして、これらのヘッダ(4バイト)とパケットデータ(184バイト)を多重してTSパケット(188バイト)を生成する。
【００１５】
次にヘッダ生成過程およびパケットデータ生成過程について詳細に説明する。図１３において、ヘッダ雛形生成部１３０１は、4バイトのヘッダの雛形を生成する。そして、シーケンス番号生成部１３０２は、入力されたシーケンス番号初期値を初期値とし、シーケンス番号制御信号によりシーケンス番号をインクリメントして、ヘッダ雛形にこのシーケンス番号を埋め込んで4バイトのヘッダを生成する。
【００１６】
図１４において、入力ストリームはバッファ１４０１に随時書き込まれ、読み出し制御部１４０３からの読み出し制御信号により読み出されて、パディング付加部１４０２において184バイトに満たない量だけパディングを付加してパケットデータ(184バイト)を生成する。読み出し制御部１４０３は、通常184バイトずつ読み出すよう制御するが、PESの境界ではこの限りではない(前述のように、必要であればPESヘッダはバッファ１４０１内で付加されるものとする)。
【００１７】
最後に多重時刻管理過程について説明する。
図１５において、多重開始指定時刻記憶部１５０１からは常にすべての入力ストリームの多重開始指定時刻が出力されている。そこで、現在時刻(出力基準時刻)が多重開始指定時刻に到達した時点で、比較部１５０３から開始要求信号が出力され、これが多重開始指示として出力される。そして、多重を続け、現在時刻(出力基準時刻)が多重終了指定時刻に到達した時点で、比較部１５０４から終了要求信号が出力され、これが多重終了指示として出力される。
【００１８】
このような多重化装置で、映像V1,V2,V3、音声A1、データS1,S2,S3の入力ストリームに関して、V1の後にV2、V2の後にV3、そしてV1、V2、V3それぞれの先頭にS1、S2、S3、さらに、V1の先頭から一番最後、つまりV3の最後までA1が多重された出力ストリームを作成しようとする場合、図１７のように、
▲１▼S1のぶんを考慮して0秒から少し経ったところから多重を開始する。
【００１９】
▲２▼V1の多重が終わる時間をあらかじめ計算し、さらにS2のぶんも含めた余裕をみて多重開始位置を決定して多重を開始する。
【００２０】
▲３▼V2の多重が終わる時間をあらかじめ計算し、さらにS3のぶんも含めた余裕をみて多重開始位置を決定して多重を開始する。
【００２１】
▲４▼V1の多重開始位置の直前に多重する。
▲５▼V2の多重開始位置の直前に多重する。
【００２２】
▲６▼V3の多重開始位置の直前に多重する。
▲７▼V1の多重開始位置から多重を開始する。
【００２３】
▲８▼図１６のような再多重化装置(s-remux)を使って再多重を行う。
といった手順となる。
【００２４】
【発明が解決しようとする課題】
しかしながら、従来の方法では、以下のような課題を有していた。
【００２５】
1)相対指定を含む複雑な多重開始/終了時刻の正確な指定ができず、多重位置の設定精度が低いうえ、充填率の低いストリームしか生成できなかった。
【００２６】
2)同一パケットＩＤを用いて複数ストリームの多重を行う場合、お互いの多重位置が重ならないように多重位置を考慮して厳密に計算する必要があり、しかも充填率の低いストリームしか生成できず、また多重位置を考慮したくない場合には、全ストリーム数分の多くのパケットIDが必要となる。
【００２７】
3)同一パケットＩＤを用いて複数ストリームを多重する場合、それぞれのシーケンス番号初期値をあらかじめ計算することは非常に困難であり、ストリーム間でシーケンス番号の不連続が生じてしまう。
【００２８】
4)出力ストリームを繰り返し送出する際に、先頭パケットと最終パケットのシーケンス番号が等しい場合、duplicateパケットとして、デコーダで先頭パケットが捨てられてしまう。
【００２９】
5)出力ストリームを繰り返し送出する際に、繰り返しの境界で、シーケンス番号の不連続が発生し、デコーダで不必要な不連続処理動作を引き起こしてしまう。
【００３０】
【課題を解決するための手段】
上記目的を達するため本発明は、前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、前記Ｎ本の入力ストリームそれぞれについて、多重開始時刻あるいは表示開始時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定し、別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重開始時刻あるいは表示開始時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、多重終了時刻あるいは表示終了時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定し、別の入力ストリームの多重開始時刻あるいは表示開始時刻、または多重終了時刻あるいは表示終了時刻を相対基準とした相対時刻で指定されている場合は、前記別の入力ストリームの前記相対基準が確定した時点でその時刻を獲得し、その時点あるいはそれ以降に前記出力ストリームの先頭を基準とした絶対時刻に換算してその値を多重終了時刻あるいは表示終了時刻として設定し、指定がない場合は未定義として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段とを具備する構成である。
【００３１】
そして、前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、前記Ｎ本の入力ストリームそれぞれについて、多重開始時刻あるいは表示開始時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、多重終了時刻あるいは表示終了時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段とを具備し、さらに、前記パケット生成手段が、前記固定長パケットの前記パケットデータ部を生成するパケットデータ生成手段と、入力ストリーム毎に等しいパケットＩＤを前記固定長パケットのヘッダに付加し、さらに前記同一パケットＩＤを有するパケットのうちパケットデータ部に前期入力ストリームを含むパケット毎にシーケンス番号最小値CCMINからシーケンス番号最大値CCMAXまでインクリメントしながら巡回するシーケンス番号(CCMIN、CCMAXは0以上の整数)を前記固定長パケットのヘッダに付加するヘッダ生成手段とを具備する構成である。
【００３２】
そして、前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、前記Ｎ本の入力ストリームそれぞれについて、多重開始時刻あるいは表示開始時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、多重終了時刻あるいは表示終了時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段とを具備し、さらに、前記多重時刻管理手段が、異なる入力ストリームα、βから生成された、前記パケットＩＤが等しく前記多重確定期間が重複している複数の前記固定長パケットを多重する際、前記多重開始時刻が早い前記入力ストリームαに対して多重開始指示を出力して、この前記入力ストリームαから生成した前記固定長パケットを優先して多重し、その前記入力ストリームαをすべて多重し終えた後、多重開始時刻が遅い前記入力ストリームβに対して多重開始指示を出力して、この前記入力ストリームβから生成した前記固定長パケットの多重を開始するセマフォ制御手段を具備し、前記多重時刻管理手段が、前記パケットＩＤが使用される毎に前記シーケンス番号の初期値および終了値を随時記憶し、前記同一パケットＩＤが再度使用される場合には、前記記憶したシーケンス番号初期値を元にシーケンス番号初期値を計算するシーケンス番号管理手段を具備する構成である。
【００３３】
そして、前記パケットデータ生成手段が、前記パケットＩＤが等しいパケットの前記出力ストリームにおける先頭パケットと最終パケットのシーケンス番号が等しい場合、前記最終パケットの前記パケットデータ部に多重する前記入力ストリームを複数に分割して前記最終パケットを複数パケットとする最終パケット分割判定手段を具備する構成である。
【００３４】
そして、前記Ｎ本の入力ストリームのうちの一本を入力とし、それを前記固定長パケットのパケットデータ部にマッピングして前記固定長パケットを生成するＮ個のパケット生成手段と、前記出力ストリームの先頭を基準とした絶対時刻である出力基準時刻を管理する出力基準時刻管理手段と、前記Ｎ本の入力ストリームそれぞれについて、多重開始時刻あるいは表示開始時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重開始時刻あるいは表示開始時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重開始時刻あるいは表示開始時刻を決定し、多重終了時刻あるいは表示終了時刻が、前記出力ストリームの先頭を基準とした絶対時刻で指定されている場合は、その値を多重終了時刻あるいは表示終了時刻として設定することで、前記パケット生成手段により生成した前記固定長パケットの出力ストリームにおける多重終了時刻あるいは表示終了時刻を決定し、これらの前記Ｎ本の入力ストリームそれぞれの前記多重開始時刻と前記多重終了時刻とから前記Ｎ本の入力ストリームそれぞれの確定多重期間を管理して、多重開始指示および多重終了指示をおこなう多重時刻管理手段と、前記Ｎ個のパケット生成手段により生成されたそれぞれの固定長パケットを入力とし、前記出力基準時刻が、前記確定多重期間である場合に、前記確定多重期間である固定長パケットをインタリーブして前記出力ストリームとして出力するパケット多重手段とを具備し、さらに、前記パケットデータ生成手段が、前記確定多重期間内で先頭パケットデータを生成する前に、前記入力ストリームを含まないダミーパケットデータを生成するダミーパケットデータ生成手段を具備する構成である。
【００３５】
そして、前記パケットデータ生成手段が、前記パケットＩＤが等しいパケットの前記出力ストリームにおける最終パケットのシーケンス番号(cc_end)、先頭パケットのシーケンス番号(cc_start)、シーケンス番号総使用個数(CCNUM)＝シーケンス番号最大値(CCMAX)−シーケンス番号最小値(CCMIN)＋1に対して、cc_start＝cc_end＋1を満たすよう、前記最終パケットの前記パケットデータ部に多重すべき前記入力ストリームを、被除数(cc_start−cc_end＋CCNUM)、除数CCNUMとした場合に得られる剰余Ｄ個、但し、cc_start＝cc_endの場合は、Ｄ＝CCNUM個に分割する最終パケット分割個数計算手段を具備する構成である。
【００３６】
【発明の実施の形態】
（実施の形態１）
本発明の実施の形態１におけるデータ多重化装置について、図面を参照しつつ説明する。図１は、本実施の形態１のデータ多重化装置１００の構成を示すブロック図であり、図2は図１におけるパケット生成部１０１〜１０７の構成を示すブロック図であり、図3は図２におけるヘッダ生成部２０１の構成を示すブロック図であり、図4は図２におけるパケットデータ生成部２０２の構成を示すブロック図であり、図５は図２におけるパケットデータ生成部２０２の構成を示すブロック図であり、図６は図２におけるパケットデータ生成部２０２の構成を示すブロック図であり、図７は図１における多重時刻管理部１０９の構成を示すブロック図であり、図８(a)は多重開始指定時刻記憶部および多重終了指定時刻記憶部を示す図であり、図８(b)は図８(a)における出力ストリームを示す図であり、図９(a)は多重開始指定時刻記憶部および多重終了指定時刻記憶部を示す図であり、図９(b)は図９(a)における出力ストリームを示す図であり、図１０は出力ストリームを繰り返し送出する場合の様子を示す図である。
【００３７】
図１に示すようにデータ多重化装置１００は、パケット生成部１０１、１０２、１０３、１０４、１０５、１０６、１０７、パケット多重部１０８、多重時刻管理部１０９、出力基準時刻管理部１１０を含んで構成される。
【００３８】
図２に示すようにパケット生成部２００は、ヘッダ生成部２０１、パケットデータ生成部２０２、多重部２０３を含んで構成される。
【００３９】
図３に示すようにヘッダ生成部３００は、ヘッダ雛形生成部３０１、シーケンス番号生成部３０２、多重部３０３を含んで構成される。
【００４０】
図４に示すようにパケットデータ生成部４００は、バッファ４０１、パディング付加部４０２、読み出し制御部４０３、最終パケット分割判定部４０４を含んで構成される。
【００４１】
図５に示すようにパケットデータ生成部５００は、バッファ５０１、パディング付加部５０２、読み出し制御部５０３、ダミーパケット生成判定部５０４を含んで構成される。
【００４２】
図６に示すようにパケットデータ生成部６００は、バッファ６０１、パディング付加部６０２、読み出し制御部６０３、最終パケット分割個数計算部６０４を含んで構成される。
【００４３】
図７に示すように多重時刻管理部７００は、多重開始指定時刻記憶部７０１、多重終了指定時刻記憶部７０２、比較部７０３、７０４、相対指定時刻再計算部７０５、セマフォ制御部７０６、ＰＩＤテーブル７０７、シーケンス番号管理テーブル７０８を含んで構成される。
【００４４】
図１において、パケット生成部１０１〜１０７は、ビデオエレメンタリストリーム(以下映像ES)、オーディオエレメンタリストリーム(以下音声ES)、セクションデータを入力として、TSパケット(188バイト)を生成する手段であり、パケット多重部１０８は、パケット生成部１０１〜１０７において生成したTSパケット(188バイト)をインタリーブして出力する手段であり、多重時刻管理部１０９は、TSパケットの多重開始／終了時刻の管理を行う手段であり、出力基準時刻管理部１１０は、出力ストリームにおける基準時刻を管理する手段である。
【００４５】
図２において、ヘッダ生成部２０１は、TSパケット(188バイト)のうちのヘッダ部(4バイト)を生成する手段であり、パケットデータ生成部２０２は、TSパケット(188バイト)うちのパケットデータ部(184バイト)を生成する手段である。
【００４６】
図４において、最終パケット分割判定部４０４は、バッファ４０１内の入力ストリームが184バイト以下になった場合にバッファ４０１の読み出しデータ量を2分割することで184バイトのパケットデータを2個出力する手段である。
【００４７】
図５において、ダミーパケット生成判定部５０４は、バッファ５０１内の入力ストリームが０以上になった時点、つまり入力ストリームを多重化する前に、バッファ５０１の読み出しデータ量を0とすることで入力ストリームを含まないすべてパディングで埋めたパケットデータ (184バイト)を出力する手段である。
【００４８】
図６において、最終パケット分割個数計算部６０４は、バッファ６０１内の入力ストリームが184バイト以下になった場合にバッファ６０１の読み出しデータ量を分割する個数Dを計算し、184バイトのパケットデータをD個出力する手段である。
【００４９】
ここで、図４〜６において、映像ESおよび音声ESをTSパケット化する際にはPESパケット化の過程が必要であるが、本説明ではバッファ４０１、５０１、６０１内でPESヘッダを付加してPES化するものとして、この過程を省略する。
【００５０】
図７において、セマフォ制御部７０６、ＰＩＤテーブル７０７は、同一パケットID(以下PIDとする)のストリームで多重時刻が重複した場合に片方の多重開始指示を遅らせる制御を行うセマフォ制御手段であり、シーケンス番号管理テーブル７０８は、PID毎のシーケンス番号初期値、終了値を記憶／管理するシーケンス番号管理手段である。
【００５１】
このように構成されたデータ多重化装置１００の動作について説明する。
まず、出力ストリームの生成過程について簡単に説明する。
【００５２】
図１において、出力ストリームの基準時刻は出力基準時刻管理部１１０で管理されており(例えば、出力ストリームを1TSパケット出力する度に時計を進める。)、この基準時刻をもとにした各入力ストリームの多重開始、多重終了指示は、すべて多重時刻管理部１０９で管理される。各パケット生成部１０１〜１０７は、多重時刻管理部１０９からそれぞれの多重開始指示を受信すると、それぞれ入力ストリームからTSパケットを生成し、パケット多重部１０８においてインタリーブされ、多重時刻管理部１０９からそれぞれの多重終了指示を受信すると、TSパケットの生成をやめて、パケット多重部１０８におけるインタリーブも終了する。また、入力ストリームの多重をすべて終了した場合は、パケット多重部１０８が、多重時刻管理部１０９に対して多重終了報告を発信する。これを受けた多重時刻管理部１０９は、これを参照している相対時刻指定(後述)により新たな多重開始指示が発生した場合は、そのストリームに対して多重開始指示を発信する。さらに、多重時刻管理部１０９は、使用するPID毎のシーケンス番号初期値をパケット生成部１０１〜１０７に与え、さらにパケット生成部１０１〜１０７は、入力ストリームの多重をすべて終了した場合に、そのシーケンス番号の終了値(最終値)を多重時刻管理部１０９に返す。以上が動作概略である。相対指定時刻再計算および多重開始指示のセマフォ制御については後で詳しく述べる。
【００５３】
次にパケット生成過程について詳細に説明する。
図２において、ヘッダ生成部２０１は、4バイトのヘッダを生成する。そして、パケットデータ生成部２０２は、入力ストリームに、必要に応じてパディングを加えながら184バイトのパケットデータを生成する。そして、これらのヘッダ(4バイト)とパケットデータ(184バイト)を多重してTSパケット(188バイト)を生成する。
【００５４】
次にヘッダ生成過程およびパケットデータ生成過程について詳細に説明する。図３において、ヘッダ雛形生成部３０１は、4バイトのヘッダの雛形を生成する。そして、シーケンス番号生成部３０２は、入力されたシーケンス番号初期値を初期値とし、シーケンス番号制御信号によりシーケンス番号をインクリメントして、ヘッダ雛形にこのシーケンス番号を埋め込んで4バイトのヘッダを生成する。
【００５５】
図４において(図５、図６においても同様)、入力ストリームはバッファ４０１に随時書き込まれ、読み出し制御部４０３からの読み出し制御信号により読み出されて、パディング付加部４０２において184バイトに満たない量だけパディングを付加してパケットデータ(184バイト)を生成する。読み出し制御部４０３は、通常184バイトずつ読み出すよう制御するが、PESの境界ではこの限りではない(前述のように、必要であればPESヘッダはバッファ４０１内で付加されるものとする)。
【００５６】
ここで、本データ多重化装置で作成した出力ストリームを、なんらかの手段を使って繰り返し送出する場合について、図１０の(1)(2)を併用して説明する。シーケンス番号初期値が0と指定されたV1を多重した結果を(1)とし、これを単に連結して繰り返した結果を(2)とする。(1)のように、シーケンス番号初期値とシーケンス番号終了値が等しくなった場合、(2)の繰り返し2回目の最初のTSパケット(斜線部)は、duplicateパケットとしてMPEGデコーダで捨てられることになる。これを防ぐための2種類の手法を図１０の(3)(4)および図４、図５を用いて説明する。
【００５７】
一つ目の手法について説明する。図５において、パケットデータ生成部５００にて、パケットデータ(184バイト)が生成されるが、入力ストリームがバッファ５０１に初めて入力されたとき、あるいはその直前、バッファ残量を監視していたダミーパケット生成判定部５０４がそれを検出し、読み出し制御部５０３に対して要求信号を出すことで、読み出し制御部５０３は、バッファ５０１から0バイトのデータを読み出して、この0バイトのデータに、パディング付加部５０２で184バイトのパディングを付加して、入力データを含まないパケットデータを生成する。そして、これ以降は、通常どおり、バッファ５０１からＸバイト読み出して、パディング付加部５０２で(184−Ｘ)バイトのパディングを付加して、184バイトのパケットデータを生成する。
【００５８】
こうすることで、図１０(3)のように、常に先頭にV1のダミーパケットが存在することになり、仮にこの出力ストリームを繰り返した場合でも、duplicateパケットとしてMPEGデコーダで捨てられるのはダミーパケットとなるため、V1の再生に影響が及ぶことを防ぐことができる。
【００５９】
次に二つ目の手法について説明する。図４において、最終パケット分割判定部４０４にて、バッファ４０１のバッファ残量が184バイト以下(Ｚバイト)であることを検出し、さらにそれが最終パケットであり、かつそのストリームのシーケンス番号初期値とシーケンス番号終了値が等しくなる場合、読み出し制御部４０３に対して要求信号を出し、読み出し制御部４０３では、読み出しデータ量をＺバイトではなく、Ｙバイトと（Ｚ−Ｙ)バイトの2回に分けて読み出すよう制御することで、184バイトのパケットデータを2個出力することができる。
【００６０】
こうすることで、図１０(4)のように、シーケンス番号終了値をシーケンス番号初期値と違えることができるため、duplicate状態を避けることができる。
【００６１】
本実施の形態では、最終パケットの分割を2回としたが、この回数に限定されるものではない。ただし、分割を16回とした場合は、シーケンス番号が分割前と同じになるため本分割の意味をなさないことは言うまでもない。
【００６２】
さらに、繰り返し送出する場合のシーケンス番号操作について、図６を用いて説明する。
【００６３】
図６において、最終パケット分割個数計算部６０４にて、バッファ６０１のバッファ残量が184バイト以下(Ｚバイト)であることを検出し、さらにそれが最終パケットである場合、最終パケット分割個数計算部６０４は、シーケンス番号初期値(cc_start)とシーケンス番号終了値(cc_end)がcc_start＝cc_end＋1となるよう、入力データの分割個数Ｄ(Ｄ＝(cc_start−cc_end＋16)mod１６、ただしcc_start＝cc_endのときはＤ＝１６とする)を計算し、残りデータをＤ回に分割して多重するよう、読み出し制御部６０３に対して要求信号を出し、読み出し制御部６０３では、読み出しデータ量をＺバイトではなく、Ｚ／ＤバイトをＤ回に分けて読み出すよう制御することで、184バイトのパケットデータをＤ個出力することができる。ここで、本実施の形態では、読み出しデータ量をＤ等分としているが、Ｄ回に分割するのであれば、特に読み出しデータ量を等分にする必要はない。
【００６４】
こうすることで、繰り返し送出する場合でもシーケンス番号の連続性を保つことができる。
【００６５】
最後に多重時刻管理過程について詳細に説明する。
まず、相対指定時刻再計算について詳細に説明する。
【００６６】
図７において、すべての入力ストリームの多重開始指定時刻は多重開始指定時刻記憶部７０１に、多重終了指定時刻は多重終了指定時刻記憶部７０２に格納されている(図８(a)参照)。これらの各多重開始指定時刻、多重終了指定時刻は、比較部７０３、７０４において、入力された現在時刻(出力基準時刻)と比較され、時刻が超過していれば、開始要求および終了要求を出力する。ただし、多重開始指示、多重終了指示は、実際に多重が開始、終了される時刻に出力される信号であり、開始要求、終了要求が出力される時刻とは必ずしも一致しない(後述のセマフォ制御参照)。これについて図８を用いて説明する。まず図８(a)の各行は以下の意味をあらわす。
【００６７】
▲１▼映像ES(V1)
・多重開始時刻＝10秒目
・多重終了時刻＝入力終了まで
▲２▼映像ES(V2)
・多重開始時刻＝V1多重終了時刻
・多重終了時刻＝入力終了まで
▲３▼映像ES(V3)
・多重開始時刻＝V2多重終了時刻
・多重終了時刻＝入力終了まで
▲４▼セクションデータ(S1)
・多重開始時刻＝V1多重開始時刻
・多重終了時刻＝入力終了まで
▲５▼セクションデータ(S2)
・多重開始時刻＝V2多重開始時刻
・多重終了時刻＝入力終了まで
▲６▼セクションデータ(S3)
・多重開始時刻＝V3多重開始時刻
・多重終了時刻＝入力終了まで
▲７▼音声ES(A1)
・多重開始時刻＝10秒目
・多重終了時刻＝V3多重終了時刻
これらを多重した結果は、図８(b)のように、V1の後にV2、V2の後にV3、そしてV1、V2、V3それぞれの先頭にS1、S2、S3、さらに、V1の先頭から一番最後、つまりV3の最後までA1が多重された出力ストリームとなる。
【００６８】
多重開始指定時刻記憶部７０１からは常にすべての入力ストリームの多重開始指定時刻が出力されている。そこで、現在時刻が10秒になった時点で、比較部７０３から開始要求信号が出力され、セマフォ制御部７０６を介して多重開始指示が出力されて、多重が始まる(セマフォ制御部の詳細動作については後で説明する)。V1は多重終了指定時刻が指定されていない、つまり入力すべてを多重するという指定になっているので、比較部７０４からは多重終了指示は出力されない。そして、多重を続け、V1の多重がすべて終了した時点で、多重時刻管理部７００にV1の多重終了報告が入力されるので、相対指定時刻再計算部７０５において、他の入力ストリームの多重開始指定時刻あるいは多重終了指定時刻のなかでV1の多重終了時刻を参照しているものがないかどうか検索し、もしあればその値を更新する。つまりこの例では、V2の多重開始指定時刻がV1の多重終了時刻を参照しているので、V2の多重開始指定時刻にV1の多重終了時刻を代入する。この場合のように、ある入力ストリームの多重終了時刻を参照している場合には、多重終了報告信号に従って相対指定時刻が更新されるが、さらに、ある入力ストリームの多重開始時刻を参照している場合、つまりS２の多重開始指定時刻については、V1の多重終了時点で参照していたV2の多重開始指定時刻が決定したため、この値も即座に更新される。V3、S3、A1についても同様である。このように、相対指定時刻再計算部７０５では、多重開始指定時刻記憶部７０１および多重終了指定時刻７０２のなかで、多重開始指定時刻および多重終了指定時刻が相対指定であるものについては、その参照先が決定し次第、その値を更新して絶対時刻で換算するという動作を行う。
【００６９】
次にセマフォ制御について詳細に説明する。
セマフォ制御部７０６は、比較部７０３より開始要求を受けると、PIDテーブル７０７に対してPIDの使用状況を問い合わせ、未使用であればPIDの登録を行って、シーケンス番号管理テーブル７０８に対してシーケンス番号の初期値を設定し、多重開始指示を出力する。もしPIDが別の入力ストリームの多重過程で使用中であれば、そのPIDが未使用状態になるまで多重開始指示を出力しない。つまり、同一PIDを指定した異なる入力ストリームについては、一方の多重開始時刻を遅らせるという制御を行う。また、多重過程で使用中であったPIDは、多重終了報告がPIDテーブル７０７に入力されることで解放され、同時にシーケンス番号管理テーブル７０８にはシーケンス番号終了値も設定される。これを、図８、９を用いて詳細に説明する。図８において、V1、V2とも多重開始指定時刻は10秒目となっている。この場合、現在時刻が10秒になった時点で、比較部７０３からは、まず優先度の高いV1に関する開始要求が先に出力される。このときセマフォ制御部７０６は、使用するPID(0x30)の使用状況をPIDテーブル７０７に対して問い合わせる。そして、PIDテーブル７０７は、テーブル内を検索し、そのPIDが使用中であるかどうか判断する。もちろん今回は初回なので使用中状態であるPIDはないので、PIDテーブル７０７からは、このPID(0x30)は未使用状態であるという応答が返される。セマフォ制御部７０６は、この未使用状態という応答を受け取ると、PIDテーブル７０７に対してこのPID(0x30)の登録を要求し、PIDテーブル７０７は、このPID (0x30)を登録してこのPID(0x30)を使用中状態とし、これまでの手順に従ってV1の多重が開始される。また、同時に、シーケンス番号初期値の指定がある場合は、その値をシーケンス番号管理テーブル７０８に登録する。次に、V1より優先度の低いV2に関しても、現在時刻が10秒になった時点で、比較部７０３からV2に関する開始要求が出力される。ただし、セマフォ制御部７０６において、使用するPID(0x30；V1と同じPID)の使用状態をPIDテーブル７０７に対して問い合わせると、すでにそのPID(0x30)はV1が使用中であるため、使用中状態という応答を返され、セマフォ制御部７０６からは、V2に関する多重開始指示は出力されない。つまり、このセマフォ制御により、V1の多重中は、V2は多重を開始しない。そしてV1の多重が終了し(図９(b)の20秒目付近)、V1の多重終了報告がPIDテーブル７０７に入力されると、PIDテーブル７０７においてテーブル内のPID(0x30)は未使用状態となる。また同時に、シーケンス番号終了値をシーケンス番号管理テーブル７０８内にPID=0x30と一対で格納しておく。未使用状態になった時点で、セマフォ制御部７０６は、ようやくV2に関するPID(0x30)をPIDテーブル７０７に確保することができ、V2の多重開始指示を出力する。また、図８において、V2の初期シーケンス番号は未指定であるため、さきほどシーケンス番号管理テーブル７０８に記憶しておいたPID=0x30に対応するシーケンス番号終了値に１を加えた値を次の初期値として再格納し、この値を利用する。こうすることで、同一PIDにおけるシーケンス番号の連続性を維持することができる。
【００７０】
なお、この実施の形態１では、多重終了報告をパケット多重部１０８から出力するとしたが、これはパケット生成部１０１〜１０７から出力しても同様に動作することができる。
【００７１】
また、多重開始時刻、多重終了時刻に限定して説明したが、これらは表示開始時刻、表示終了時刻に置き換えても、それらを多重開始時刻、多重終了時刻に換算することで同様に動作することができる。
【００７２】
（実施の形態２）
本発明の実施の形態２におけるデータ多重化方法について、図面を参照しつつ説明する。図２１は、本実施の形態２のデータ多重化方法２１００の処理を示すフローチャートであり、図２２は図２１における多重時刻管理ステップ２１０２にセマフォ制御ステップを加えた処理を示すフローチャートであり、図２３は図２１における多重時刻管理ステップ２１０２にシーケンス番号管理ステップを加えた処理を示すフローチャートであり、図２４は図２１におけるパケット生成ステップ２１０３の処理を示すフローチャートであり、図２５は図２４におけるパケット生成ステップ２１０３に最終パケット分割判定ステップを加えた処理を示すフローチャートであり、図２６は図２４におけるパケット生成ステップ２１０３にダミーパケット生成ステップを加えた処理を示すフローチャートである。
【００７３】
図２１に示すようにデータ多重化方法２１００は、出力時刻管理ステップ２１０１、多重時刻管理ステップ２１０２、パケット生成ステップ２１０３、パケット多重ステップ２１０４を含んで構成される。
【００７４】
図２２に示すように多重時刻管理ステップ２２００は、セマフォ制御ステップ２２０１を含んで構成される。
【００７５】
図２３に示すように多重時刻管理ステップ２３００は、シーケンス番号管理ステップ２３０１を含んで構成される。
【００７６】
図２４に示すようにパケット生成ステップ２４００は、パケット生成ステップ２４０１を含んで構成される。
【００７７】
図２５に示すようにパケット生成ステップ２５００は、最終パケット分割判定ステップ２５０１を含んで構成される。
【００７８】
図２６に示すようにパケット生成ステップ２６００は、最終パケット分割個数計算ステップ２６０１を含んで構成される。
【００７９】
図２７に示すようにパケット生成ステップ２７００は、ダミーパケット生成ステップ２７０１を含んで構成される。
【００８０】
図２１において、パケット生成ステップ２１０３は、ビデオエレメンタリストリーム(以下映像ES)、オーディオエレメンタリストリーム(以下音声ES)、セクションデータを入力として、TSパケット(188バイト)を生成するステップであり、パケット多重ステップ２１０４は、パケット生成ステップ２１０３において生成したTSパケット(188バイト)をインタリーブして出力するステップであり、多重時刻管理ステップ２１０２は、TSパケットの多重開始／終了時刻の管理を行うステップであり、出力基準時刻管理ステップ２１０１は、出力ストリームにおける基準時刻を管理するステップである。
【００８１】
図２４において、パケット生成ステップ２４００は、確定多重期間内(多重開始指示から多重終了指示までの間)において、バッファ内のデータから必要に応じてパディングを行いながらTSパケット(188バイト)のうちのパケットデータ部(184バイト)を生成し、さらにヘッダ部(4バイト)を生成し、それらを多重してTSパケット(188バイト)を生成するステップである。
【００８２】
図２５において、パケット生成ステップ２５００は、図２１のパケット生成ステップ２１０３に加え、バッファ内の入力ストリームが184バイト以下になった場合、もしそれが最終パケットであるならば、シーケンス番号の初期値と終了値が同一になる場合にのみ、バッファからの読み出しデータ量を分割することで184バイトのパケットデータを2個出力する最終パケット分割判定ステップ２５０１を含むステップである。
【００８３】
図２６において、パケット生成ステップ２６００は、図２１のパケット生成ステップ２１０３に加え、バッファ内の入力ストリームが184バイト以下になった場合、もしそれが最終パケットであるならば、バッファからの読み出しデータ量をＤ個に分割することで184バイトのパケットデータをＤ個出力する最終パケット分割個数計算ステップ２６０１を含むステップである(Ｄについては後述)。
【００８４】
図２７において、パケット生成ステップ２７００は、図２１のパケット生成ステップ２１０３に加え、バッファ内の入力ストリームが０以上になった時点で(つまり初回のみ)、入力ストリームを多重化する前に、バッファの読み出しデータ量を0とすることで入力ストリームを含まないすべてパディングで埋めたパケットデータ (184バイト)を出力するダミーパケット生成ステップ２７０１を含むステップである。
【００８５】
ここで、図２５、２６、２７において、映像ESおよび音声ESをTSパケット化する際にはPESパケット化の過程が必要であるが、本説明ではバッファ内でPESヘッダを付加してPES化するものとして、この過程を省略する。
【００８６】
図２２において、多重時刻管理ステップ２２００は、同一パケットID(以下PIDとする)のストリームで多重時刻が重複した場合に片方の多重開始指示を遅らせる制御を行うセマフォ制御ステップを含むステップである。
【００８７】
図２３において、多重時刻管理ステップ２３００は、シーケンス番号管理テーブルに、PID毎のシーケンス番号初期値、終了値を記憶／管理するシーケンス番号管理ステップを含むステップである。
【００８８】
このように構成されたデータ多重化方法２１００の処理について詳細に説明する。
【００８９】
図２１において、以下の処理を行う。
○出力時刻管理ステップ２１０１
ステップ21001では、出力ストリームの基準時刻を出力基準時刻管理ステップ２１０１で管理する(例えば、出力ストリームを1TSパケット出力する度に時計を進める。)。
【００９０】
○多重時刻管理ステップ２１０２
ステップ21002では、多重開始時刻が決定済かどうか確認する。
【００９１】
ステップ21003では、ステップ21002において決定してなければ、多重開始時刻の設定を行うが、その前に、絶対時刻指定か相対時刻指定かどうかの判定を行う。
【００９２】
ステップ21004では、ステップ21003で絶対時刻指定ならば、その値を多重開始時刻として設定する。
【００９３】
ステップ21005では、ステップ21003で相対時刻指定ならば、その参照先が決定しているかどうかの判定を行う。決定していなければ多重開始時刻の設定は行わない。
【００９４】
ステップ21006では、ステップ21005で決定済ならば、参照先の値を取得する。ステップ21007では、ステップ21006で取得した値を使って絶対時刻に換算し、その値を多重開始時刻として設定する。
【００９５】
ステップ21008では、ステップ21001で管理している出力基準時刻と設定した多重開始時刻の比較を行う。
【００９６】
ステップ21009では、多重開始時刻に到達していれば多重開始指示を行う。
ステップ21010〜21017では、ステップ21002〜21009と同様に多重終了時刻の設定および多重終了指示を行う。
【００９７】
ステップ21018では、ステップ21002〜21017に関して、入力ストリームすべてについて行う。
【００９８】
○パケット生成ステップ２１０３
ステップ21019では、それぞれ入力ストリームからTSパケットを生成する。
【００９９】
○パケット多重ステップ２１０４
ステップ21020では、ステップ21019で生成したTSパケットをインタリーブして出力する。
【０１００】
ステップ21021では、ステップ21001〜21020に関して、すべての入力ストリームの多重が終了するまで繰り返す。
【０１０１】
次にパケット生成ステップについて詳細に説明する。
図２４において、以下の処理を行う。
【０１０２】
○パケット生成ステップ２４００
ステップ24001では、確定多重期間内(多重開始指示から多重終了指示までの間)であるかどうかの判定を行う。期間外であればTSパケットの生成を行わない。
【０１０３】
ステップ24002では、ステップ24001において期間内であれば、入力データをすべてTSパケット化したかどうかの判定を行う。
【０１０４】
ステップ24003では、ステップ24002においてすべてTSパケット化済であれば、多重終了報告を行う。
【０１０５】
ステップ24004では、ステップ24002においてまだ入力データが残っていれば、バッファに入力データを読み込む(本実施の形態では、読み込む単位をPES化する単位とし、バッファ内で入力データをPES化するものとする)。
【０１０６】
ステップ24005では、バッファ内のデータ量のチェックを行う。
ステップ24006では、ステップ24005において１８４バイト以上であれば、184バイト読み出してパケットデータ(184バイト)を生成する。
【０１０７】
ステップ24007では、ステップ24005において184バイト未満であれば、184バイトに満たないぶんのパディングを生成する。
【０１０８】
ステップ24008では、ステップ24007で生成したパディング(184-Ｎバイト)とバッファから読み出した入力データとでパケットデータ(184バイト)を生成する。
【０１０９】
ステップ24009では、ヘッダを生成する。
ステップ24010では、生成したパケットデータとヘッダを多重してTSパケット(188バイト)を生成する。
【０１１０】
ステップ24011では、ステップ24001〜24010に関して、すべての入力ストリームについて行う。
【０１１１】
ここで、本データ多重化方法で作成した出力ストリームを、なんらかの手段を使って繰り返し送出する場合について、図１０の(1)(2)を併用して説明する。シーケンス番号初期値が0と指定されたV1を多重した結果を(1)とし、これを単に連結して繰り返した結果を(2)とする。(1)のように、シーケンス番号初期値とシーケンス番号終了値が等しくなった場合、(2)の繰り返し2回目の最初のTSパケット(斜線部)は、duplicateパケットとしてMPEGデコーダで捨てられることになる。これを防ぐための2種類の手法を図１０の(3)(4)および図２５、２７を用いて説明する。
【０１１２】
一つ目の手法について説明する。
図２７において、以下の処理を行う。図２７は、図２４にダミーパケット生成ステップを加えたものである。
【０１１３】
○ダミーパケット生成ステップ２７０１
ステップ27001では、入力ストリームがバッファに初めて入力されるのかどうかの判定を行う。初回以外であれば、通常通りのパケット生成を行う。
【０１１４】
ステップ27002では、ステップ27001において初回であれば、バッファから０バイトのデータを読み出して、以降は、通常のパディング生成を経てTSパケット(188バイト)を生成する。つまり、先頭TSパケットのみ、入力データを含まないTSパケットとなる。
【０１１５】
こうすることで、図１０(3)のように、先頭にV1のダミーパケットが存在することになり、仮にこの出力ストリームを繰り返した場合でも、duplicateパケットとしてMPEGデコーダで捨てられるのはダミーパケットとなるため、V1の再生に影響が及ぶことを防ぐことができる。
【０１１６】
次に二つ目の手法について説明する。
図２５において、以下の処理を行う。図２５は、図２４に最終パケット分割判定ステップを加えたものである。
【０１１７】
○最終パケット分割判定ステップ２５０１
ステップ25001では、バッファデータ量が184バイト以上の場合は、184バイトであるかどうかの判定を行う。184バイトでない場合、通常通りパディングなしでTSパケット(188バイト)の生成を行う。
【０１１８】
ステップ25002では、バッファのデータ量が最終パケットぶんかどうかの判定を行う(ただ1回のみ判定を行う)。最終パケットでない場合、通常通りパディング生成を経てTSパケット(188バイト)を生成する(ただし、バッファ量が184バイトの場合は、パディングは０となり、パディングなしの過程と同様である)。
【０１１９】
ステップ25003では、最終パケットであれば、シーケンス番号管理テーブル(後述)よりシーケンス番号の初期値および終了値(今回のTSパケット生成で使用する予定の値)を取得する。
【０１２０】
ステップ25004では、シーケンス番号の初期値と終了値を比較する。異なる場合は、通常通り、パディング生成を経てTSパケット(188バイト)を生成する。
【０１２１】
ステップ25005では、ステップ25004において初期値と終了値が等しければ、バッファからの読み出しデータ量を抑制する。つまり、バッファ内の184バイト以内のデータを2回にわけて読み出すことで、シーケンス番号の終了値を１だけ遅らせることができる。
【０１２２】
本実施の形態では、ステップ25002における判定を1回のみとしたことでステップ25005における分割を2回としたが、この回数に限定されるものではない。ただし、ステップ25005における分割を16回とした場合は、シーケンス番号が分割前と同じになるため本分割の意味をなさないことは言うまでもない。
【０１２３】
こうすることで、図１０(4)のように、シーケンス番号終了値をシーケンス番号初期値と違えることができるため、duplicate状態を避けることができる。
【０１２４】
さらに、繰り返し送出する場合のシーケンス番号操作について説明する。
図２６において、以下の処理を行う。図２６は、図２４に最終パケット分割個数計算ステップを加えたものである。
【０１２５】
○最終パケット分割個数計算ステップ２６０１
ステップ26001では、バッファデータ量が184バイト以上の場合は、184バイトであるかどうかの判定を行う。184バイトでない場合、通常通りパディングなしでTSパケット(188バイト)の生成を行う。
【０１２６】
ステップ26002では、バッファのデータ量が最終パケットぶんかどうかの判定を行う。最終パケットでない場合、通常通りパディング生成を経てTSパケット(188バイト)を生成する(ただし、バッファ量が184バイトの場合は、パディングは０となり、パディングなしの過程と同様である)。
【０１２７】
ステップ26003では、ステップ26002において最終パケットであれば、この判定が初回目であるかどうかの判定を行う。初回でなければステップ26006へ進む。
【０１２８】
ステップ26004では、ステップ26003において初回であれば、シーケンス番号管理テーブルよりシーケンス番号の初期値および終了値(今回のTSパケット生成で使用する予定の値)を取得する。
【０１２９】
ステップ26005では、シーケンス番号の初期値と終了値とから分割個数Ｄを計算する。
【０１３０】
Ｄ＝(初期値−終了値＋16)mod16、ただし初期値＝終了値の場合はＤ＝16
そして、バッファ読み出し量をｍバイト(ｍ＝Ｎ／Ｄ)とする。
【０１３１】
ステップ26006では、バッファの読み出し量をｍバイトに抑制する。
本実施の形態では、ステップ26006におけるバッファ読み出し量をｍバイト(残りのＤ等分)としたが、分割回数がＤ回であれば、等分に限定されるものではない。
【０１３２】
こうすることで、最終パケットをＤ分割することができ、結果的に、
シーケンス番号初期値＝シーケンス番号終了値＋１
となり、繰り返し送出した場合でも、シーケンス番号の連続性を保つことができる。
【０１３３】
最後に多重時刻管理ステップについて詳細に説明する。
まず、相対指定時刻再計算について詳細に説明する。
【０１３４】
図２１において、すべての入力ストリームの多重開始指定時刻、多重終了指定時刻は格納されており、これらの各多重開始指定時刻、多重終了指定時刻は、現在時刻(出力基準時刻管理ステップ２１０１による現在時刻)と比較され、時刻が超過していれば、開始要求状態および終了要求状態となる。ただし、多重開始指示、多重終了指示は、実際に多重が開始、終了される時刻に出力される信号であり、開始要求、終了要求が出力される時刻とは必ずしも一致しない(後述のセマフォ制御参照)。これについて図８を用いて説明する。まず図８(a)の各行は以下の意味をあらわす。
【０１３５】
▲１▼映像ES(V1)
・多重開始時刻＝10秒目
・多重終了時刻＝入力終了まで
▲２▼映像ES(V2)
・多重開始時刻＝V1多重終了時刻
・多重終了時刻＝入力終了まで
▲３▼映像ES(V3)
・多重開始時刻＝V2多重終了時刻
・多重終了時刻＝入力終了まで
▲４▼セクションデータ(S1)
・多重開始時刻＝V1多重開始時刻
・多重終了時刻＝入力終了まで
▲５▼セクションデータ(S2)
・多重開始時刻＝V2多重開始時刻
・多重終了時刻＝入力終了まで
▲６▼セクションデータ(S3)
・多重開始時刻＝V3多重開始時刻
・多重終了時刻＝入力終了まで
▲７▼音声ES(A1)
・多重開始時刻＝10秒目
・多重終了時刻＝V3多重終了時刻
これらを多重した結果は、図８(b)のように、V1の後にV2、V2の後にV3、そしてV1、V2、V3それぞれの先頭にS1、S2、S3、さらに、V1の先頭から一番最後、つまりV3の最後までA1が多重された出力ストリームとなる。
【０１３６】
ここで、現在時刻が10秒になった時点で、V1の多重開始指示が出力され多重が始まる(セマフォ制御部の詳細動作については後で説明する)。V1は多重終了指定時刻が指定されていない、つまり入力すべてを多重するという指定になっているので、多重終了指示は出力されない。そして、多重を続け、V1の多重がすべて終了した時点で、パケット生成ステップ２１０３からV1の多重終了報告が入力される。そして、次の出力基準時刻において、V2の多重開始指定時刻がV1の多重終了時刻を参照しているので、V2の多重開始指定時刻にV1の多重終了時刻を代入する。この場合のように、ある入力ストリームの多重終了時刻を参照している場合には、多重終了報告信号に従って相対指定時刻が更新されるが、さらに、ある入力ストリームの多重開始時刻を参照している場合、つまりS２の多重開始指定時刻については、V1の多重終了時点で参照していたV2の多重開始指定時刻が決定したため、この値も即座に更新される。V3、S3、A1についても同様である。このように、多重開始指定時刻および多重終了指定時刻が相対指定であるものについては、その参照先が決定し次第、その値を更新して、絶対時刻に換算するという動作を行う。
【０１３７】
次にセマフォ制御について詳細に説明する。
図２２において、以下の処理を行う。図２２は、図２１の多重時刻管理ステップ２１０２にセマフォ制御ステップを加えたものである。
【０１３８】
○セマフォ制御ステップ２２０１
ステップ22001では、PIDの使用権利を取得しているかどうかの判定を行う。すでに取得している場合は、多重開始指示を行う。
【０１３９】
ステップ22002では、まだ取得していなければ、該当PIDの登録状況についてPIDテーブルを検索する。
【０１４０】
ステップ22003では、該当PIDが登録しているかどうかの判定を行う。
ステップ22004では、ステップ22003において未登録であれば、そのPIDをPIDテーブルに登録する。
【０１４１】
ステップ22005では、登録されている該当PIDのフラグをＯＮとする(PID使用権利取得)。
【０１４２】
ステップ22006では、ステップ22003において登録済であれば、その該当PIDのフラグをチェックする。フラグがＯＮである場合、すでに他のストリームがこのPIDを使用中であることを意味するので、多重開始指示は行わない。また、フラグがＯＦＦである場合、すでに他のストリームがこのPIDを使用したけれども、多重終了によりすでにPID使用権利を放棄しているということを意味するので、あらためてPID使用権利を取得し(ステップ22005でフラグをＯＮとし)、多重開始指示を行う。
【０１４３】
ステップ22007では、多重が終了したときには、PIDテーブルのフラグをＯＦＦとすることでPID使用権利を放棄する。
【０１４４】
こうすることで、同一PIDを指定した異なる入力ストリームについては、片方の多重開始時刻を遅らせる制御を行う。
【０１４５】
これを、図９を用いて詳細に説明する。図９(a)において、V1、V2とも多重開始指定時刻は10秒目となっている。この場合、現在時刻が10秒になった時点で、まず優先度の高いV1の方が先に開始要求状態になり、多重開始指示が先に出力される。このときセマフォ制御ステップ２２０１においては、使用するPID(0x30)の使用状況を問い合わせ、そして、PIDテーブル内を検索し、そのPIDが使用中であるかどうか判断する。もちろん今回は初回なので使用中状態であるPIDはないので、PIDテーブルからは、このPID(0x30)は未使用状態であるという応答が返される。この未使用状態という応答を受け取ると、このPID(0x30)をPIDテーブルに登録し、そして使用権利の取得を行ってこのPID(0x30)を使用中状態とし、これまでの手順に従ってV1の多重が開始される。次に、V1より優先度の低いV2に関しても、現在時刻が10秒になった時点で、開始要求状態になるが、セマフォ制御ステップ２２０１において、まずPIDの使用権利を取得していないので、PIDテーブルを検索し、使用するPID(0x30；V1と同じPID)の登録状態を問い合わせると、すでにそのPID(0x30)はV1が登録済みであり、さらにフラグがＯＮ(別ストリームが使用権利取得済)であるため、V2に関する多重開始指示は出力されない。つまり、このセマフォ制御により、V1の多重中は、V2は多重を開始しない。そしてV1の多重が終了し(図９(b)の20秒目付近)、V1の多重終了報告が入力されると、PIDテーブル内のPID(0x30)のフラグがＯＦＦ(他のストリームのいずれも使用権利を取得していない状態)となり、未使用状態となり、ようやくV2の多重開始指示が出力されることになる。
【０１４６】
次にシーケンス番号管理について詳細に説明する。
図２３において、以下の処理を行う。図２３は、図２１の多重時刻管理ステップ２１０２にシーケンス番号管理ステップを加えたものである。
【０１４７】
○シーケンス番号管理ステップ２３０１
ステップ23001では、多重開始時刻に到達した直後(初回のみ)かどうかの判定を行う。直後でなければ、通常通り、多重開始指示を行う。
【０１４８】
ステップ23002では、ステップ23001において直後(初回)の場合、シーケンス番号初期値が指定されているかどうかの判定を行う。
【０１４９】
ステップ23003では、ステップ23001においてシーケンス番号初期値があらかじめ指定されている場合はその値を設定する。
【０１５０】
ステップ23004では、ステップ23001においてシーケンス番号初期値が未指定の場合は、シーケンス番号管理テーブルにおいて、該当PIDの検索を行う。
【０１５１】
ステップ23005では、該当PIDが登録されているかどうかの判定を行う。
ステップ23006では、ステップ23005において該当PIDが登録されていない場合、デフォルト値を設定する。
【０１５２】
ステップ23007では、ステップ23005において該当PIDが登録されている場合、以前にそのPIDを使用したストリームの多重が行われたことを示すので、そのストリームが多重終了時にシーケンス番号管理テーブルに格納した終了値を取得し、その値に１を加えた値を初期値として設定する。
【０１５３】
ステップ23009では、ステップ23003, 23006, 23007で設定した初期値をシーケンス番号管理テーブルに格納する。
【０１５４】
ステップ23008では、多重が終了したとき、シーケンス番号管理テーブルにその終了値を格納する。
【０１５５】
こうすることで、PIDの等しい異なるストリームに関してもシーケンス番号の連続性を保つことができる。
【０１５６】
なお、この実施の形態２では、図２１における処理順序を、出力時刻管理ステップ２１０１、多重時刻管理ステップ２１０２、パケット生成ステップ２１０３、パケット多重ステップ２１０４の順としたが、出力時刻管理ステップ２１０１は多重時刻管理ステップ２１０２の後でも、パケット生成ステップ２１０３の後でも、パケット多重ステップ２１０４の後でも同様に動作することができる。また、図２１の多重時刻管理ステップ２１０２における処理順序を、多重開始時刻設定／多重開始指示、多重終了時刻設定／多重終了指示の順としたが、順序を逆にしても同様に動作することができる。
【０１５７】
また、多重開始時刻、多重終了時刻に限定して説明したが、これらは表示開始時刻、表示終了時刻に置き換えても、それらを多重開始時刻、多重終了時刻に換算することで同様に動作することができる。
【０１５８】
（実施の形態３）
本発明の実施の形態２はプログラムによって実現し、これをフロッピーディスク等の記録媒体に記録して移送することにより、独立した他のコンピュータシステムを容易に実現することができる。図２８、２９、３０はこれをフロッピーディスクで実施する場合を説明する図である。
【０１５９】
図２８は、記録媒体であるフロッピーディスクの物理フォーマットの例を示す図である。フロッピーディスク２８０１は、同心円状に外周から内周に向かってトラックを作成し、角度方向に１６のセクタに分割されている。このように割り当てられた領域に従って、プログラムを記録する。
【０１６０】
図２９は、このフロッピーディスクを収納するケースを説明する図である。左からフロッピーケースの正面図、およびこの断面図、そしてフロッピーディスクをそれぞれ示す。このようにフロッピーディスク２９０２をフロッピーディスクケース２９０１に収納することにより、フロッピーディスク２９０２を埃や外部からの衝撃から守り、安全に移送することができる。
【０１６１】
図３０は、フロッピーディスクにプログラムの記録再生を行うことを説明する図である。図示のようにコンピュータシステム３００５にフロッピーディスクドライブ３００１を接続することにより、フロッピーディスク３００４に対してプログラムを記録再生することが可能となる。フロッピーディスク３００４はフロッピーディスクドライブ３００１に、フロッピーディスク挿入口３００２、３００３を介して組み込み、および取り出しがなされる。記録する場合は、コンピュータシステム３００５からプログラムをフロッピーディスクドライブ３００１によってフロッピーディスク３００４に記録する。再生する場合は、フロッピーディスクドライブ３００１がプログラムをフロッピーディスク３００４から読み出し、コンピュータシステム３００５に転送する。
【０１６２】
なお、この実施の形態３では、記録媒体としてフロッピーディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また記録媒体はこれらに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば、同様に実施することができる。
【０１６３】
また、本発明は上記実施の形態１，２，３に限定されるものではなく、本発明の主旨に基づいて種々の変形が可能であり、これらを本発明の範囲から排除するものではない。また、本実施の形態では、MPEG2を対象としたが、特にMPEG2に限定するものではない。
【０１６４】
【発明の効果】
以上のように本発明によれば、
(1)従来、複雑な多重時刻を指定した複数のストリームを多重する際には、お互いの多重位置が重ならないように個別に多重開始時刻の調整を行ったストリームを作成して、それらをシングルプログラム用の再多重化装置(s-remux)を用いて多重していたため、充填率の非常に低いストリームしか生成できなかったが、別のあるストリームの多重時刻からの相対的な多重時刻指定を可能にする多重時刻管理手段を設けることで複雑な多重位置指定ができ、充填率の高い(＝全ストリーム長の短い)ストリームを生成するデータ多重化装置を、容易な構成で実現することができる。
【０１６５】
(2)従来、複雑な多重時刻を指定した同一ＰＩＤを用いる複数のストリームを多重する際には、お互いの多重位置が重ならないように個別に多重開始時刻の調整を行ったストリームを作成して、その後、それらをシングルプログラム用の再多重化装置(s-remux)を用いて多重することにより、充填率の低いストリームしか生成できなかったり、また別手法として、ストリーム同士が混ざっても良いようにするために、全入力ストリーム数ぶんのPIDを使用することによりストリームを生成していたが、PID毎に多重位置を制御するセマフォ制御手段を設けることで、PIDの使用個数を必要最小限に削減したうえで、充填率の高いストリームを生成することができる。
【０１６６】
(3)従来、複雑な多重時刻を指定した同一ＰＩＤを用いる複数のストリームを多重する際には、お互いの多重位置が重ならないように個別に多重開始時刻の調整を行ったストリームを作成して、それらをシングルプログラム用の再多重化装置(s-remux)を用いて多重していたため、それぞれ個別に作成したストリームのなかで、同一PIDを指定しているストリームが存在した場合、再多重時に、その境界でシーケンス番号の不連続が発生してMPEGデコーダの不必要な不連続処理動作を引き起こしていたが、PID毎のシーケンス番号の初期値と終了値を管理するシーケンス番号管理手段を設けることで、シーケンス番号の連続性を保証することができる。
【０１６７】
(4)従来、データ多重化装置によって生成した出力ストリームをさらに連結する際、その出力ストリーム中のあるPIDのシーケンス番号初期値とシーケンス番号終了値が等しい場合に、MPEGデコーダ側で連結した出力ストリーム中のパケットが失われることがあったが、先頭にダミーパケットを多重する手段を設けることで、もし、シーケンス番号初期値とシーケンス番号終了値が等しい場合でも、MPEGデコーダ側で失われるのはダミーパケットとなり、MPEGデコーダでの正常な再生を保証することができる。
【０１６８】
(5)従来、データ多重化装置によって生成した出力ストリームをさらに連結する際、その出力ストリーム中のあるPIDのシーケンス番号初期値とシーケンス番号終了値が等しい場合に、MPEGデコーダ側で連結した出力ストリーム中のパケットが失われることがあったが、パケット分割判定手段を設けることで、多重終了直前にシーケンス番号初期値とシーケンス番号終了値が等しくなることが判明した場合、入力データを強制分割することで初期値と終了値を違えることができ、MPEGデコーダでの正常な再生を保証することができる。
【０１６９】
(6)従来、データ多重化装置によって生成した出力ストリームをさらに連結する際、その境界で、シーケンス番号が不連続となる場合があり、MPEGデコーダ側で不必要な不連続処理動作を引き起こしていたが、最終パケットを強制的に複数パケットに分割して、シーケンス番号の終了値をシーケンス番号初期値−１とする手段を設けることで、シーケンス番号の連続性を保証することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるデータ多重化装置の構成を示すブロック図
【図２】図１におけるパケット生成部の構成を示すブロック図
【図３】図２におけるヘッダ生成部の構成を示すブロック図
【図４】図２におけるパケットデータ生成部の構成を示すブロック図
【図５】図１における多重時刻管理部の構成を示すブロック図
【図６】図５における多重開始指定時刻と多重終了指定時刻の設定例を示す図
【図７】図６の設定例における出力ストリームの様子を示す図
【図８】図５における多重開始指定時刻と多重終了指定時刻の設定例を示す図
【図９】図８の設定例における出力ストリームの様子を示す図
【図１０】出力ストリームの様子を示す図
【図１１】従来のデータ多重化装置の構成を示すブロック図
【図１２】図１１におけるパケット生成部の構成を示すブロック図
【図１３】図１２におけるヘッダ生成部の構成を示すブロック図
【図１４】図１２におけるパケットデータ生成部の構成を示すブロック図
【図１５】図１１における多重時刻管理部の構成を示すブロック図
【図１６】複雑な多重時刻設定を実現するための再多重の構成を示すブロック図
【図１７】図１６におけるそれぞれの出力ストリームの様子を示す図
【図１８】出力ストリームの様子を示す図
【図１９】  ESデータをTSパケットするまでの多重化過程の様子を示す図
【図２０】図１９におけるTSパケットの様子を示す図
【図２１】本発明の実施の形態におけるデータ多重化方法の処理を示すフローチャート
【図２２】セマフォ制御ステップを含んだ図２１における多重時刻管理ステップの処理を示すフローチャート
【図２３】シーケンス番号管理ステップを含んだ図２１における多重時刻管理ステップの処理を示すフローチャート
【図２４】図２１におけるパケット生成ステップの処理を示すフローチャート
【図２５】最終パケット分割判定ステップを含んだ図２１におけるパケット生成ステップの処理を示すフローチャート
【図２６】最終パケット分割個数計算ステップを含んだ図２１におけるパケット生成ステップの処理を示すフローチャート
【図２７】ダミーパケット生成ステップを含んだ図２１におけるパケット生成ステップの処理を示すフローチャート
【図２８】記録媒体本体であるフロッピーディスクの物理フォーマットの例を示す図
【図２９】記録媒体本体であるフロッピーディスクのケースを示す図
【図３０】記録媒体本体であるフロッピーディスクにプログラムの記録再生を行うことを示す図
【符号の説明】
１００  データ多重化装置
１０１〜１０７  パケット生成部
１０８  パケット多重部
１０９  多重時刻管理部
１１０  出力基準時刻管理部
２００  パケット生成部
２０１  ヘッダ生成部
２０２  パケットデータ生成部
２０３  多重部
３００  ヘッダ生成部
３０１  ヘッダ雛形生成部
３０２  シーケンス番号生成部
３０３  多重部
４００  パケットデータ生成部
４０１  バッファ
４０２  パディング付加部
４０３  読み出し制御部
４０４  最終パケット分割判定部
５００  パケットデータ生成部
５０１  バッファ
５０２  パディング付加部
５０３  読み出し制御部
５０４  ダミーパケット生成判定部
６００  パケットデータ生成部
６０１  バッファ
６０２  パディング付加部
６０３  読み出し制御部
６０４  最終パケット分割個数計算部
７００  多重時刻管理部
７０１  多重開始指定時刻記憶部
７０２  多重終了指定時刻記憶部
７０３〜７０４  比較部
７０５  相対指定時刻再計算部
７０６  セマフォ制御部
７０７  PIDテーブル
７０８  シーケンス番号管理テーブル
８０１  多重開始指定時刻記憶部
８０２  多重終了指定時刻記憶部
８０３  出力ストリーム
９０１  多重開始指定時刻記憶部
９０２  多重終了指定時刻記憶部
９０３  出力ストリーム
１００１  出力ストリーム
１００２  出力ストリームを繰り返したストリーム
１００３  出力ストリーム
１００４  出力ストリーム
１１００  データ多重化装置
１１０１〜１０７  パケット生成部
１１０８  パケット多重部
１１０９  多重時刻管理部
１１１０  出力基準時刻管理部
１２００  パケット生成部
１２０１  ヘッダ生成部
１２０２  パケットデータ生成部
１２０３  多重部
１３００  ヘッダ生成部
１３０１  ヘッダ雛形生成部
１３０２  シーケンス番号生成部
１３０３  多重部
１４００  パケットデータ生成部
１４０１  バッファ
１４０２  パディング付加部
１４０３  読み出し制御部
１５００  多重時刻管理部
１５０１  多重開始指定時刻記憶部
１５０２  多重終了指定時刻記憶部
１５０３〜５０４  比較部
１６０１〜１６０７  従来のデータ多重化装置
１６０８  再多重化装置
１７０１〜１７０７  個別に生成した出力ストリーム
１７０８  再多重して生成した出力ストリーム
１８０１  出力ストリーム
１８０２  出力ストリームを繰り返したストリーム
１９０１  ESデータ
１９０２  PESパケット
１９０３  PESヘッダ
１９０４  TSヘッダ
１９０５  TSパケット(パディングなし)
１９０６  TSパケット(パディングあり)
２００１  TSパケット
２００２  パケットデータ
２００３  ヘッダ
２００４  パケットデータ
２００５  パディング
２００６  入力ストリーム
２１００  データ多重化方法
２１０１  出力基準時刻管理ステップ
２１０２  多重時刻管理ステップ
２１０３  パケット生成ステップ
２１０４  パケット多重ステップ
２２００  多重時刻管理ステップ
２２０１  セマフォ制御ステップ
２３００  多重時刻管理ステップ
２３０１  シーケンス番号管理ステップ
２４００  パケット生成ステップ
２５００  パケット生成ステップ
２５０１  最終パケット分割判定ステップ
２６００  パケット生成ステップ
２６０１  最終パケット分割個数計算ステップ
２７００  パケット生成ステップ
２７０１  ダミーパケット生成ステップ
２８０１  フロッピーディスク
２９０１  フロッピーディスクケース
２９０２  フロッピーディスク
３００１  フロッピーディスクドライブ
３００２  フロッピーディスク挿入口
３００３  フロッピーディスク挿入口
３００４  フロッピーディスク
３００５  コンピュータシステム
【図１】
0003893717.tif 000002
【図２】
0003893717.tif 000003
【図３】
0003893717.tif 000004
【図４】
0003893717.tif 000005
【図５】
0003893717.tif 000006
【図６】
0003893717.tif 000007
【図７】
0003893717.tif 000008
【図８】
0003893717.tif 000009
【図９】
0003893717.tif 000010
【図１０】
0003893717.tif 000011
【図１１】
0003893717.tif 000012
【図１２】
0003893717.tif 000013
【図１３】
0003893717.tif 000014
【図１４】
0003893717.tif 000015
【図１５】
0003893717.tif 000016
【図１６】
0003893717.tif 000017
【図１７】
0003893717.tif 000018
【図１８】
0003893717.tif 000019
【図１９】
0003893717.tif 000020
【図２０】
0003893717.tif 000021
【図２１】
0003893717.tif 000022
【図２２】
0003893717.tif 000023
【図２３】
0003893717.tif 000024
【図２４】
0003893717.tif 000025
【図２５】
0003893717.tif 000026
【図２６】
0003893717.tif 000027
【図２７】
0003893717.tif 000028
【図２８】
0003893717.tif 000029
【図２９】
0003893717.tif 000030
【図３０】
0003893717.tif 000031