米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> エヌイーシーマイクロシステム株式会社

発明の名称 プログラムストリーム多重化方法及び装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−298544(P2003−298544A)
公開日 平成15年10月17日(2003.10.17)
出願番号 特願2002−102270(P2002−102270)
出願日 平成14年4月4日(2002.4.4)
代理人 【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦 (外2名)
【テーマコード(参考)】
5C059
5C063
5K028
【Fターム(参考)】
5C059 KK35 MA00 PP04 RB01 RB10 RC03 RC04 RC32 UA34 
5C063 AB03 AB05 AC01 AC05 AC10 CA11 DA01 DA05 DA07 DA13
5K028 AA14 EE05 EE08 KK01 KK12 SS05 SS15 SS24
発明者 木村 雅宣
要約 課題
P−STDのメインバッファ(MB)の容量に依存することなく、複数のESを多重化可能とする。

解決手段
P−STDのビデオESVSを保持するVMB204及びオーディオESAS1,AS2の各々を保持するAMB207,209の各々のメモリ占有量の状態を管理し、VMB204及びAMB207,209の空になる順番でビデオESVS及びオーディオESAS1,AS2を多重化するよう多重化順位付け及び多重化判断を行い多重化の制御を行うパック選択回路71を備え、MBの状態を管理し、複数のESを多重化するとき、MBが空になる順番で各ESの多重化を行うことにより、MB容量が同一のESを多重化しても、MBがアンダフローすることなく多重化を可能とする。
特許請求の範囲
【請求項1】 ディジタルビデオ信号及び第1,第2のディジタルオーディオ信号の各々を入力し所定の圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(以下、ビデオES)及び第1及び第2のオーディオエレメンタリストリーム(以下、オーディオES)の各々を生成し、これらビデオES及び第1及び第2のオーディオESを多重化してプログラムストリームを生成するプログラムストリーム多重化方法において、前記プログラムストリームを作成するために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)の前記ビデオESを保持するビデオメインバッファ(以下、VMB)及び前記第1,第2のオーディオESを保持する第1,第2のオーディオメインバッファ(以下、AMB)の各々のメモリ占有量の状態を管理し、前記VMB及び第1,第2のAMBの空になる順番で前記ビデオES及び前記第1,第2のオーディオESを多重化するよう多重化順位付け及び多重化判断を行い多重化の制御を行うことを特徴とするプログラムストリーム多重化方法。
【請求項2】 前記VMB及び前記第1,第2のAMBのメモリ占有量の状態を保持するVMBシミュレーション回路及び第1,第2のAMBシミュレーション回路を有し、前記VMBシミュレーション回路及び第1,第2のAMBシミュレーション回路の各々の上記占有量保持内容から、前記P−STD内のメインバッファが空になる順番である空き順位を把握し、前記空き順位を前記ビデオES及び第1及び第2のオーディオESの多重化順位として多重化順位付けを行い、その多重化順位で多重化が行えるかの第1の多重化判断を行い、多重化できる場合多重化を行い、前記ビデオES及び第1及び第2のオーディオESの全てが多重化できないときは、前記多重化順位に従い多重化できない要因である多重化不可能要因を確認し、前記多重化不可能要因が、該当ESのメインバッファに空きがない無空バッファ状態による場合、第2の多重化判断として、前記VMBシミュレーション回路及び前記第1,第2のAMBシミュレーション回路の各々に保持している第1,第2のプレゼンテーションタイムスタンプ(以下、PTS)又は復号タイムスタンプ(以下、DTS)の最小値を呼び出し、その値をシステムクロックリファレンス(以下、SCR)に設定することにより、空きがない前記メインバッファに空きを作成して多重化を行うことにより、前記メインバッファのサイズに依存せず、多重化を行うことを特徴とする請求項1記載のプログラムストリーム多重化方法。
【請求項3】 前記多重化順位付けが、前記VMBシミュレーション回路及び第1,第2のAMBシミュレーション回路の各々から呼び出した前記DTS及び前記第1,第2のPTSの各々の最大値を比較し、前記最大値が小さい方から大きい方に優先的に多重化するよう順序付けし、前記第1の多重化判断が、前記VMB及び前記第1,第2のAMBの各々のシミュレーション用の前記SCRの調整を伴わない多重化判断であり、前記第2の多重化判断が、前記SCRの調整を伴う多重化判断であることを特徴とする請求項2記載のプログラムストリーム多重化方法。
【請求項4】 前記VMBシミュレーション回路及び前記第1,第2のAMBシミュレーション回路の各々が、前記P−STDのそれぞれ対応する前記VMB又は前記第1又は第2のAMBの(以下、MB)の空き容量を保持し、出力ビデオ又は第1又は第2のオーディオESのデータ量(以下、出力ES量)の供給に応答して、前記MBの空き容量から前記出力ES量を減算し使用可能容量を求め、アクセスユニットの数であるAU量及び前記DTS又は前記第1又は第2のPTSの各々(以下、DTS/PTS)の供給に応答してこれらAU量及びDTS/PTSを関連付けて保持し、前記SCR生成回路が出力する第1のSCRの値と前記DTS/PTSの値とを比較し、前記DTS/PTS値の方が小さいとき、前記空き容量に前記DTS/PTSに関連する前記AU量を加算し、前記DTS/PTSの値の方が大きいとき、保持していた前記DTS/PTS及び前記DTS/PTSに関連する前記AU量を削除し、前記パック選択回路からの第2のSCRの供給に応答して、前記第2のSCRの値と前記DTS/PTSの値を比較し、前記DTS/PTSの値が前記第2のSCR値と同一又は小さいとき、前記DTS/PTSに関連するAU量を前記パック選択回路に出力するとともに、前記MBの空き容量に前記DTS/PTSに関連するAU量を加算し、前記加算結果の値である加算値と前記MBの容量とを比較し、前記加算値の方が大きいとき前記MBのアンダフローを出力し、最大値確認要求の供給に応答して、前記DTS/PTSの最大値を出力し、空き容量確認要求の供給に応答して前記MBの空き容量を出力し、最小値確認要求の供給に応答して、前記DTS/PTSの最小値を出力することを特徴とする請求項2記載のプログラムストリーム多重化方法。
【請求項5】 ディジタルビデオ信号及び第1,第2のディジタルオーディオ信号の各々を入力し所定の圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(以下、ビデオES)及び第1及び第2のオーディオエレメンタリストリーム(以下、オーディオES)の各々を生成し、これらビデオES及び第1及び第2のオーディオESを多重化してプログラムストリームを生成するプログラムストリーム多重化方法において、前記プログラムストリームを作成するために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)の前記ビデオESを保持するビデオメインバッファ(以下、VMB)及び前記第1,第2のオーディオESを保持する第1,第2のオーディオメインバッファ(以下、AMB)の各々のメモリ占有量の状態を保持するVMBシミュレーション回路及び第1,第2のAMBシミュレーション回路の各々が保持している復号タイムスタンプ(以下、DTS)又は第1,第2のプレゼンテーションタイムスタンプ(以下、PTS)の各々の最大値を比較し、前記最大値が1番小さいDTS又は第1,第2のPTSに対応するビデオES又は第1又は第2のオーディオES(以下、ES)を多重化順位1とし、以下、前記最大値が大きくなる順序で優先的に多重化する多重化順位付けを行う多重化順位付けステップと、前記多重化順位1であるES(以下、多重化順位1ES)の前記P−STDのシミュレーション用のシステムクロックリファレンス(以下、SCR)の調整を伴わない多重化判断である第1の多重化判断及び多重化処理と、前記多重化順位が2のES(以下、多重化順位2ES)の前記第1の多重化判断及び多重化処理と、前記多重化順位が3のES(以下、多重化順位2ES)の前記第1の多重化判断及び多重化処理と、前記多重化順位1ESの前記SCRの調整を伴う多重化判断である第2の多重化判断及び多重化処理と、前記多重化順位2ESの前記第2の多重化判断及び多重化処理と、前記多重化順位3ESの前記第2の多重化判断及び多重化処理とを行うことを特徴とするプログラムストリーム多重化方法。
【請求項6】 前記多重化順位1ESの前記第1の多重化判断及び多重化処理が、多重化するためのデータ量のES(以下、多重化対象ES)が前記多重化順位1ESのバッファに存在するかを判断するため、前記多重化順位1ESのバッファ占有量を確認し、前記多重化対象ESが前記多重化順位1ESのバッファに存在しない場合、この多重化順位1ESの第1の多重化判断を終了し、前記多重化順位2ESの第1の多重化判断に進む多重化順位1ESの多重化判断ステップと、前記多重化順位1ESの多重化判断ステップで、前記多重化対象ESが前記多重化順位1ESのバッファに存在する場合、前記多重化順位1ESの前記メインバッファがそのESを入力してもオーバフローもアンダフローも起こさず多重化が可能であることを判断する多重化順位1ESの多重化可能性判断処理と、前記多重化順位1ESの多重化可能性判断処理で、多重化が可能である場合、前記多重化順位1ESの多重化を行う多重化順位1ESの多重化処理とを有することを特徴とする請求項5記載のプログラムストリーム多重化方法。
【請求項7】 前記多重化順位1ESの多重化可能性判断処理が、前記多重化順位1ESのMBシミュレーション回路の空き容量である第1の空き容量を呼び出す第1の空き容量確認ステップと、前記第1の空き容量から前記多重化順位1ESの多重化対象ES量を減算し、第2の空き容量を算出する第2の空き容量算出ステップと、多重化を行うときに付加する前記SCRを前記多重化順位1ESの前記MBシミュレーション回路に出力し、前記多重化順位1ESの前記MBシミュレーション回路が、前記SCRで前記多重化順位1ESの前記MBから削除されるアクセスユニットの数であるAU量を呼び出す削除AU量呼出ステップと、前記第2の空き容量に前記AU量を加算し、第3の空き容量を算出する第3の空き容量算出ステップと、前記第3の空き容量が、前記多重化順位1ESの前記メインバッファの容量内か判断し、前記メインバッファの容量内である場合は前記多重化順位1ESの多重化処理に進み、前記メインバッファの容量を超える場合は前記多重化順位1ESの多重化判断1を終了し、前記多重化順位2ESの前記第1の多重化判断に進む多重化順位1ESのMB容量判断ステップとを有し、前記多重化順位1ESの前記多重化処理が、前記多重化順位1ESのバッファが出力ESデータ量(以下、ES量)の指示に応答して指示された前記ES量を出力する出力ES量指示ステップと、前記プログラムストリームPSに付加するSCRを出力し、前記多重化対象ESが前記AUの先頭を含む場合、前記多重化順位1ESがオーディオESの場合は前記PTSと前記AU量を出力し、ビデオESの場合は前記PTSと前記DTSと前記AU量とピクチャタイプを出力するSCRとESパラメータ出力ステップと、前記プログラムストリームに付加する前記SCRをSCR生成回路に出力するシミュレーション用SCR生成ステップと、前記多重化対象ESの前記ES量を前記多重化順位1ESの前記MBシミュレーション回路に出力し、前記多重化対象ESが前記AUの先頭を含む場合、前記多重化順位1ESがオーディオESの場合は前記PTSと前記AU量を出力し、ビデオESの場合は前記DTSと前記AU量とを出力する多重化対象ES量・パラメータ出力ステップと、前記SCRに予め定めたSCR加算値を加算し保持するSCR加算値の加算ステップとを有し、前記ESと前記SCRと前記PTSと前記DTSと前記AU量と前記ピクチャタイプに基づき多重化を行い、前記プログラムストリームを出力することを特徴とする請求項6記載のプログラムストリーム多重化方法。
【請求項8】 ディジタルビデオ信号を入力し所定の圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(以下、ビデオES)を出力するビデオエンコーダと、前記ビデオESを保持するビデオバッファと、第1及び第2のディジタルオーディオ信号の各々を入力しそれぞれ前記圧縮符号化プロトコルに従って圧縮符号化を行い第1及び第2のオーディオエレメンタリストリーム(以下、オーディオES)の各々を出力する第1及び第2のオーディオエンコーダと、前記第1及び第2のオーディオESの各々を保持する第1及び第2のオーディオバッファと、前記ビデオバッファ及び第1,第2のオーディオバッファの各々に保持している前記ビデオES及び第1,第2のオーディオESを多重化してプログラムストリームとして出力する多重器とを備えるプログラムストリーム多重化装置において、前記多重器が、前記ビデオバッファ内の前記ビデオESの占有量を確認し保持するVB占有量確認回路と、前記プログラムストリームを作成するために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)のビデオメインバッファ(以下、VMB)のシミュレーションを行うVMBシミュレーション回路と、前記第1,第2のオーディオバッファの各々内の前記第1,第2のオーディオESの各々の占有量をそれぞれ確認保持する第1,第2のAB占有量確認回路と、前記P−STDの前記第1,第2のオーディオメインバッファ(以下、AMB)の各々のシミュレーションを行う第1,第2のAMBシミュレーション回路と、前記ビデオES及び第1,第2のオーディオESに対し前記P−STDの前記VMB及び前記第1,第2のAMBの各々のメモリ占有量の状態を管理し、前記VMB及び第1,第2のAMBの空になる順番で前記ビデオES及び第1,第2のオーディオESを多重化するよう多重化順位付け及び多重化判断を行い多重化の制御を行うパック選択回路と、前記パック選択回路からのデータに基づき前記P−STDの前記VMB及び第1,第2のAMBのシミュレーション用のシステムクロックリファレンス(以下、SCR)を生成するSCR生成回路と、前記パック選択回路の制御により多重化を行う多重化回路とを備えることを特徴とするプログラムストリーム多重化装置。
【請求項9】 前記多重器が、前記パック選択回路と前記SCR生成回路と前記VMBシミュレーション回路と前記VB占有量確認回路と前記第1,第2のAB占有量確認回路の各々の機能をソフトウェアにより置換したマイクロコントローラを備えることを特徴とする請求項8記載のプログラムストリーム多重化装置。
【請求項10】 前記P−STDが、入力した前記プログラムストリームを前記ビデオESと前記第1,第2のオーディオESと前記SCRと、プレゼンテーションタイムスタンプ(以下、PTS)及び復号タイムスタンプ(以下、DTS)に分解するデマルチプレクス部と、前記SCRの供給を受けシステムタイムクロック(STC)を生成するシステムクロック生成部と、前記ビデオESを保持する前記VMBと、前記第1,第2のオーディオESの各々を保持する前記AMBと、前記ビデオESを復号してビデオ信号Vを出力するビデオデコーダと、前記第1,第2のオーディオESの各々を復号して第1,第2のオーディオ信号の各々を出力する第1,第2のオーディオデコーダと、前記STCと前記PTS又は前記DTSとの比較を行い比較結果に応じて前記VMB又は前記第1又は第2のAMBに対し前記PTS又はDTSに対応するESを前記ビデオデコーダ又は第1又は第2のオーディオデコーダに出力するよう指示するとともに後述の第1,第2のセレクタの制御信号を出力するタイムスタンプ比較部と、前記ビデオ信号のピクチャの配列順を変更するため再配列を行う再配列バッファと、前記制御信号の供給に応答して前記ビデオ信号を前記再配列バッファに供給するよう切り替える第1,第2のセレクタとを備えることを特徴とする請求項8記載のプログラムストリーム多重化装置。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明はプログラムストリーム多重化方法及び装置に関し、特に圧縮符号化されたビデオ及び音声データである複数のプログラムストリームを多重化するためのプログラムストリーム多重化方法及び装置に関する。
【0002】
【従来の技術】近年、限られた伝送帯域で高品質の画像(ビデオ)音声(オーディオ)信号や各種データ信号等を伝送する場合、例えばMPEG2(Moving Picture Expert Group Phase2)等による情報圧縮符号化技術及び多重化技術を用いてビデオオーディオ信号の符号化及び多重化を行い、1本のビットストリームとして伝送する画像音声信号伝送システムが普及しつつある。
【0003】ここで、MPEGはISOとCCITTの専門家グループISO/IEC,JTC1/SC2/WG8(Moving Picture Expert Group)が1993年に勧告ISO/IEC−11172−2として、まず記録媒体への記録を対象とするMPEG1規格(現在最新版はISO/IEC−11172−3)が制定され、以後ISO/IEC−13818−2でMPEG2等が制定されている。以下、説明の便宜上、これら規格を総括してMPEG規格と呼ぶ。
【0004】このような、画像音声信号伝送システムにおける送信装置では、MPEG規格による圧縮符号化技術により、ビデオオーディオ信号や各種データ信号等(以下説明の便宜上、ビデオオーディオ信号と呼ぶ)を符号化し符号化データを生成するとともに、多重化技術により、これらの符号化データを多重化してビットストリームを形成する。ここでは、このビットストリームをプログラムストリーム(以下PS)と呼ぶ。また、ビデオオーディオ信号の各々に対応する符号化データの各々をエレメンタリストリーム(ES)と呼ぶ。すなわち、ビデオ信号対応のビデオES及びオーディオ信号対応のオーディオESを多重化して1つのPSを形成する。
【0005】従来、1つのビデオESと1つのオーディオESを多重化して1つのPSを生成するのが一般的であったが、今後2つ以上のビデオESと2つ以上のオーディオESを多重化することが考えられ、既に1つのビデオESと2つのオーディオESを多重化する市場要求もある。また、MPEG2規格において、32のオーディオESと16のビデオESを多重化できることも規定されている。
【0006】従来のプログラムストリーム多重化方法では、オーディオESのプログラムシステムターゲットデコーダ(以下、P−STD)のメインバッファ容量とビデオESのP−STDメインバッファ容量との差が大きかったため、容量の小さなオーディオESから優先して多重化を行っていた。
【0007】1つのビデオESと1つのオーディオESを多重化する従来の第1のプログラムストリーム多重化装置をブロックで示す図18を参照すると、この従来の第1のプログラムストリーム多重化装置は、入力したディジタルビデオ信号VDをMPEG規格で圧縮符号化しビデオESVSを出力するビデオエンコーダ1と、ビデオESVSを一時保持するビデオバッファ4と、ディジタルオーディオ信号AD1を入力しMPEG規格の圧縮符号化プロトコルに従って圧縮符号化を行いオーディオESAS1を出力するオーディオエンコーダ2と、オーディオESAS1を一時保持するオーディオバッファ5と、ビデオバッファ(VB)4とオーディオバッファ(AB)5に保持しているビデオESVS及びオーディオESAS1を多重化してプログラムストリームPSとして出力する多重器107とを備える。
【0008】多重器107は、ビデオバッファ(VB)4内のビデオESの占有量を確認し保持するVB占有量確認回路73と、後述するプログラムシステムターゲットデコーダ(以下、P−STD)のビデオメインバッファ(以下、VMB)204のシミュレーションを行うVMBシミュレーション回路74と、オーディオバッファ5内のオーディオESAS1の占有量を確認保持するAB占有量確認回路75と、後述するP−STDのオーディオメインバッファ(以下AMB)207のシミュレーションを行うAMBシミュレーション回路76と、後述のパック選択回路171からのデータに基づきMBシミュレーション用のシステムクロックリファレンス(以下、SCR)を生成するSCR生成回路79と、多重化対象のパック(PSの基本単位)であるビデオESVS及びオーディオESAS1を後述の多重化順位付け及び多重化判断を行い多重化の制御を行うパック選択回路171と、選択したパックの多重化を行う多重化回路172とを備える。
【0009】従来の第1のPS多重化装置が出力したPSに対する仮想的な復号器であるP−STDの構成をブロックで示す図19を参照すると、この図に示す従来の第1のP−STDは、入力したPSをビデオESVS,オーディオESAS1,SCR,PTS及びDTSに分解するデマルチプレクス部301と、SCRの供給を受けシステムタイムクロック(STC)を生成するシステムクロック生成部202と、ビデオESを保持するVMB204と、オーディオESAS1を保持するAMB207と、STCとPTS又はDTSとの比較を行い比較結果に応じてVMB204又はAMB207/209に対しPTS又はDTSに対応するESをビデオデコーダ205又はオーディオデコーダ208/210に出力するよう指示するとともに後述のセレクタ206,212の制御信号を出力するタイムスタンプ比較部203と、入力したビデオESを復号してビデオ信号Vを出力するビデオデコーダ205と、入力したオーディオESAS1を復号してオーディオ信号A1を出力するオーディオデコーダ208と、タイムスタンプ比較部203からの制御信号の供給に応答してビデオ信号Vを再配列バッファ211に供給するよう切り替えるセレクタ206,212と、ビデオ信号のピクチャの配列順を変更するため再配列を行う再配列バッファ211とを備える。
【0010】次に、図18、図19及び各部の処理をフローチャートで示す図20〜図22を参照して、従来の第1のプログラムストリーム多重化装置の動作について説明すると、上述したように、従来は、オーディオESから優先して多重化を行うので、まず、オーディオESの多重化判断及び多重化について説明する。
【0011】図20を参照すると、多重化判断ステップL1で、パック選択回路171は、多重化するためのデータ量のES(以下、多重化対象ES)がオーディオバッファ5に存在するか判断するためAB占有量確認回路75に対し容量確認要求を出力し容量確認を行う。すなわち、オーディオバッファ占有量≧オーディオESの多重化量であるかを確認する。
【0012】ステップL1で、多重化対象ESがオーディオバッファ5に存在しない場合、オーディオESの多重化判断を終了し、分岐M以降のビデオESの多重化判断に進む。
【0013】ステップL1で、多重化対象ESがオーディオバッファ5に存在する場合、ステップL2〜L6に進み、AMB207がオーディオESを入力してもオーバフローもアンダフローも起こさないかを判断する。
【0014】まず、MB空き容量確認ステップL2で、パック選択回路171は、AMBシミュレーション回路76に対して空き容量確認要求を出力し、この空き容量確認要求に対する応答である空き容量を入力しこの値を空き容量1とする。空き容量2算出ステップL3で、空き容量1から多重化順位1ESの多重化ES量を減算し、空き容量2を算出する。
【0015】削除AU量呼出ステップL4で、パック選択回路171は、多重化を行うときに付加するSCRをAMBシミュレーション回路76に出力する。AMBシミュレーション回路76は、入力したSCRでAMB207から削除されるAU量を呼び出しパック選択回路171に出力する。
【0016】空き容量3算出ステップL5で、空き容量2にAU量を加算する。この値を空き容量3とする。空き容量3はオーディオESを多重化したときのAMB207の空き容量を示す。
【0017】MB容量判断ステップL6で、パック選択回路171は空き容量3がAMB207の容量内かを判断する。
【0018】ステップL6で、空き容量3がAMB207の容量外である場合、オーディオESの多重化判断を終了し、分岐Mに進み、ビデオESの多重化判断を行う。
【0019】ステップL6で、空き容量3がAMB207の容量内にある場合、オーディオESを多重化してもAMB207はオーバフローもアンダフローも発生しないとして、ステップL7〜L11で、オーディオESの多重化を行う。
【0020】まず、出力ES量指示ステップL7で、パック選択回路171は、オーディオバッファ5に多重化回路172に対して出力するES量を指示する。オーディオバッファ5はその指示を受けて、指示された量のESを多重化回路172に出力する。
【0021】SCRとESパラメータ出力ステップL8で、パック選択回路171はPSに付加するSCRを多重化回路172に出力する。また多重化を行うESにAUの先頭が含まれている場合、PTS、AU量も多重化回路172に出力する。
【0022】シミュレーション用SCR生成ステップL9で、パック選択回路171は、PSに付加するSCRをSCR生成回路79に出力する。
【0023】ステップL10で、パック選択回路171は、多重化対象のES量をAMBシミュレーション回路76に出力する。また多重化を行うESにAUの先頭が含まれている場合、PTS、AU量もAMBシミュレーション回路76に出力する。
【0024】SCR加算値の加算ステップL11で、パック選択回路171は、SCRにSCR加算値を加算し保持する。
【0025】多重化回路172は、入力されたES、SCR、PTS、AU量から多重化を行い、PSを出力する。
【0026】AMBシミュレーション回路76は、AMB207の空き容量から入力ES量を減算する。AMBシミュレーション回路76は入力AU量およびPTSを関連付けて保持する。VMBシミュレーション回路74はSCR生成回路79とVMBシミュレーション回路74に保持しているDTSを比較し、シミュレーション用のSCRSCよりDTSの方が小さいとき、VMB204の空き容量にDTSに関連するAU量を加算し、DTSの方が大きいとき、そのDTSおよびそのDTSに関連するAU量を削除する。
【0027】AMBシミュレーション回路76は、SCRとAMBシミュレーション回路76に保持しているPTSを比較し、PTSの方が小さいとき、AMB207の空き容量にPTSに関連するAU量を加算し、PTSの方が大きいとき、そのPTSおよびそのPTSに関連するAU量を削除する。
【0028】以降、上記に示したSCR生成回路79のSCRの設定値変更に伴う、VMBシミュレーション回路74及びAMBシミュレーション回路76、それぞれに保持している値の変更、削除の動作を、各MBシミュレーション回路は変更されたSCRの値に合わせ保持値の変更を行うと記述する。
【0029】次に、図21を参照して、分岐Mの処理であるビデオESの多重化判断及び多重化について、上述のオーディオESの多重化判断及び多重化との相違点を重点的に説明すると、まず、多重化判断ステップM1で、パック選択回路171は、多重化対象ビデオESが、ビデオバッファ4に存在するか判断するため、VB占有量確認回路73に対し容量確認要求を出力し容量確認を行う。すなわち、ビデオバッファ占有量≧ビデオESの多重化量であるかを確認する。
【0030】ステップM1で、多重化対象ビデオESがビデオバッファ4に存在しない場合、ビデオESの多重化判断を終了し、分岐N以降のSCR調整処理に進む。
【0031】ステップM1で、ビデオバッファ4に多重化対象ビデオESが存在する場合、MB空き容量確認ステップM2、空き容量算出ステップM3、削除AU量呼出ステップM4、空き容量算出ステップM5、MB容量判断ステップM6の各処理を行い、VMB204がビデオESを入力してもオーバフローもアンダフローも起こさないか判断する。これらステップM2〜M6の処理は、オーディオESをビデオESに、オーディオバッファ5をビデオバッファ4に、AMB207をVMB204に、AMBシミュレーション回路76をVMBシミュレーション回路74に、空き容量1,2,3を空き容量7,8,9にそれぞれ読み替えることによりオーディオESの多重化判断及び多重化のステップL2〜L6の処理と同一であるので詳細説明を省略する。
【0032】ステップM6で、空き容量9がVMB204の容量外である場合、ビデオESの多重化判断を終了し、分岐NのSCR調整処理に進む。
【0033】ステップM6で、空き容量9がVMB204の容量内ある場合、ビデオESを多重化してもVMB204はオーバフローもアンダフローも発生しないとして、出力ES量指示ステップM7、SCRとESパラメータ出力ステップM8、シミュレーション用SCR生成ステップM9、多重化対象ES量・パラメータ出力ステップM10、SCR加算値の加算ステップM11の各処理を行い、ビデオESの多重化を行う。これらステップM7〜M11も、上記読替以外はオーディオESの多重化判断及び多重化のステップL7〜L11の処理と同一であるので詳細説明を省略する。
【0034】多重化回路172は、入力されたES、SCR、PTS、DTS、AU量、ピクチャタイプにから多重化を行い、PSを出力する。
【0035】VMBシミュレーション回路74は、VMB204の空き容量から入力ES量を減算し、DTS,AU量を関連付けて保持する。各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0036】次に、図22を参照して分岐Nの処理であるSCR調整処理について説明すると、パック選択回路171は、オーディオES及びビデオESが多重化できなかったとき、SCRの調整を行う。
【0037】まず、多重化判断ステップN1で、パック選択回路171は、多重化対象ES量がオーディオバッファ5に存在するか判断するため、AB占有量確認回路75の容量確認を行い、存在しない場合、SCR調整処理及び多重化処理を終了する。
【0038】ステップN1で、多重化対象ES量がオーディオバッファ5に存在する場合、多重化判断ステップN2で、多重化対象ES量がビデオバッファ4に存在するか判断するため、VB占有量確認回路73の容量確認を行い、存在しない場合、SCR調整処理及び多重化処理を終了する。
【0039】ステップN2で、多重化対象ES量が多重化対象ES量がビデオバッファ4に存在する場合、PTS最小値呼出ステップN3、DTS最小値呼出ステップN4、SCR調整値出力ステップN5、SCR変更ステップN6の各処理を行いSCRの調整を行う。
【0040】まず、PTS最小値呼出ステップN3で、パック選択回路171は、AMBシミュレーション回路76に最小値確認を出力し、AMBシミュレーション回路76は保持しているPTSの最小値をパック選択回路171に出力する。この値を仮SCR3とする。
【0041】DTS最小値呼出ステップN4で、パック選択回路171は、VMBシミュレーション回路74に最小値確認を出力し、VMBシミュレーション回路74は保持しているDTSの最小値をパック選択回路171に出力する。この値を仮SCR4とする。
【0042】SCR調整値出力ステップN5で、パック選択回路171は、仮SCR3と仮SCR4を比較し、小さい方の値をSCR生成回路79に出力する。
【0043】SCR変更ステップN6で、パック選択回路171は、仮SCR3と仮SCR4を比較し、小さい方の値を次に出力するSCRとして設定・保持する。
【0044】次に、1つのビデオESと2つのオーディオESを多重化する従来の第2のプログラムストリーム多重化装置を図18と共通の構成要素には共通の参照文字/数字を付して同様にブロックで示す図23を参照すると、この従来の第2のプログラムストリーム多重化装置の前述の従来の第1のプログラムストリーム多重化装置との相違点は、増加した多重化対象の第2のオーディオESに対応して、第1のプログラムストリーム多重化装置の構成要素に第2のディジタルオーディオ信号AD2を入力しMPEG規格の圧縮符号化プロトコルに従って圧縮符号化を行いオーディオESAS2を出力するオーディオエンコーダ3と、オーディオESASを一時保持するオーディオバッファ6と、多重器107の代わりに、ビデオバッファ(VB)4とオーディオバッファ(AB)5,6に保持しているビデオESVS及びオーディオESAS1,ESAS2を多重化してプログラムストリームPSとして出力する多重器107とを備える。
【0045】多重器107Aは、多重器107の構成要素に加えて、オーディオバッファ6内のオーディオESAS2の占有量を確認保持するAB占有量確認回路77と、AMB209のシミュレーションを行うAMBシミュレーション回路78と、パック選択回路171の代わりに多重化対象のビデオESVS及びオーディオESAS1,ESAS2を多重化順位付け及び多重化判断を行い多重化の制御を行うパック選択回路171Aと、多重化回路172の代わりにオーディオESAS2を含む選択したパックの多重化を行う多重化回路72とを備えることである。
【0046】従来の第2のPS多重化装置に対応するP−STDの構成をブロックで示す図24を参照すると、この図に示す従来の第2のP−STDの従来の第1のP−STDとの相違点は、デマルチプレクス部301の代わりに入力したPSをビデオESVS,オーディオESAS1,ESAS2,システムクロック(SCR),PTS及びDTSに分解するデマルチプレクス部201と、オーディオESAS2を保持するAMB209と、オーディオESASを復号してオーディオ信号A2を出力するオーディオデコーダ210とを備えることである。
【0047】次に、図23、図24及び各部の処理をフローチャートで示す図25〜図28を参照して、従来の第2のプログラムストリーム多重化装置の動作について第1のプログラムストリーム多重化装置の動作との相違点を重点的に説明すると、上述したように、多重化は、P−STDメインバッファ容量の小さい順に行っており、オーディオESが2つの場合は、いずれかを優先して多重化を行うことになる。この例では、説明の便宜上、オーディオESAS1、オーディオESAS2、ビデオESVSの順で多重化を行うものとする。
【0048】図25を参照すると、この図に示すオーディオESAS1の多重化判断及び多重化は、多重化判断ステップL1Aで、多重化対象ESがオーディオバッファ5に存在しない場合、オーディオESAS1の多重化判断を終了し、分岐P以降のオーディオESAS2の多重化判断に進むことを除き、前述の従来の第1のプログラムストリーム多重化装置のオーディオESAS1の多重化判断及び多重化と同一であるので、説明を省略する。
【0049】次に、図26を参照すると、この図に示すオーディオESAS2の多重化判断及び多重化は、多重化判断ステップP1で、多重化対象ESがオーディオバッファ6に存在しない場合、オーディオESAS2の多重化判断を終了し、分岐M以降のビデオESVSの多重化判断に進むこと、ステップL2〜L11をステップP2〜P11に、空き容量1,2,3を空き容量4,5,6にそれぞれ読み替える以外は、上述のオーディオESAS1の多重化判断及び多重化と同一であるので、説明を省略する。
【0050】次に、図27を参照すると、この図に示すビデオESVSの多重化判断及び多重化は、多重化判断ステップM1Aで、多重化対象ESがビデオバッファ4に存在しない場合、ビデオESVSの多重化判断を終了し、分岐Q以降のSCR調整処理に進むこと以外は、前述の従来の第1のプログラムストリーム多重化装置のビデオESVSの多重化判断及び多重化と同一であるので、説明を省略する。
【0051】次に、図28を参照すると、この図に示す従来の第2のプログラムストリーム多重化装置のSCR調整処理は、前述の従来の第1のプログラムストリーム多重化装置のSCR調整処理の多重化判断ステップN1,N2に、オーディオESAS2の多重化判断ステップQ1と、仮SCR5であるABMシミュレーション回路78のPTS最小値呼出ステップQ2が追加され、これに伴い、SCR調整値出力ステップN5の代わりに、仮SCR3,仮SCR4に加え仮SCR5との比較結果の最小値をSCR生成回路79に出力するSCR調整値出力ステップQ3と、SCR変更ステップN6の代わりに、パック選択回路171Aは、仮SCR3,仮SCR4及び仮SCR5を比較結果の最小値を次に出力するSCRとして設定・保持するSCR変更ステップQ4とを有している。従って、このSCR調整処理は、上記相違点以外は従来の第1のプログラムストリーム多重化装置のSCR調整処理と同一であるので、説明を省略する。
【0052】次に、具体的な数値例を用いて従来の第2のプログラムストリーム多重化装置の動作について多重化前及び多重化後の多重器7の状態を説明図で示す図9を参照して説明すると、まず、この例の多重化条件を下記に示す。
【0053】
VMB204の容量=229376バイト。
【0054】AMB207の容量=4096バイトAMB209の容量=4096バイトビデオESの多重化量=2015バイトオーディオESAS1の多重化量=2015バイトオーディオESAS2の多重化量=2015バイト図25を参照すると、まず、ステップL1Aで、オーディオバッファ5の占有量がオーディオESAS1の多重化ES量より多いかを判断し、多重化ES量は2350バイトであり、多重化ES量は上記条件より2015バイトであるので、占有量の方が多い。
【0055】次に、ステップL2〜L6で、オーディオESAS1の多重化を行っても、AMB207がオーバフローもアンダフローも生じないか判断する。
【0056】まず、ステップL2で、AMB207の空き容量(空き容量1)2040バイトを呼出し、ステップL3で2040バイトから、オーディオESAS1の多重化ES量=2015バイトを減算し、空き容量2の25バイトを求める。ステップL4で、保持SCR=60559をAMBシミュレーション回路76に通知する。AMBシミュレーション回路76は、通知SCRで削除されるAU量、PTSがあるかの判断のためSCRとPTSを比較する。通知SCR=60559より小さいPTSは存在しないので、AU量=0バイトをパック選択回路171Aに通知する。
【0057】ステップL5で、通知されたAU量を空き容量2(25バイト)に加算し、オーディオESAS1を多重化したときのAMB207の空き容量を示す空き容量3の25バイトを求める。
【0058】ステップL6で、空き容量3がAMB207の容量内、0バイト以上4096バイト以下であるか判断し、25バイトは、AMB207の容量内にあるので、パック選択回路171Aは、オーディオESAS1の多重化をステップL7〜L11で行う。
【0059】ステップL7で、オーディオバッファ5に出力するES量=2015バイトを通知し、オーディオバッファ5は通知されたES量2015バイトを多重化回路72に出力する。ステップL8で、多重化時に付加するSCR=60559、及びオーディオESAS1はAUの先頭を含むので、多重化時に付加するPTS=68040、AU量=2016バイトも多重化回路72に出力する。ステップL9で、SCR=60559をシミュレーション用のSCR生成回路79に出力する。ステップL10で、オーディオESAS1の多重化ES量=2015バイトをAMBシミュレーション回路76に出力する。オーディオESAS1はAUの先頭を含むので、付加用のPTS=68040、AU量=2016バイトもAMBシミュレーション回路76に出力する。ステップL11で、保持SCRにSCR加算値=159を加算する。多重化回路72は、オーディオESAS1、PTS、AU量、SCRを入力し、多重化を行い、PSを出力する。
【0060】AMBシミュレーション回路76は、オーディオESAS1の多重化ES量=2015を入力し、AMB207の空き容量から多重化ES量を減算し、新たな空き容量25バイトを求める。AU量=2016バイト、PTS=68040を入力し、保持するとともに、SCR=60559と保持PTSとを比較する。SCR=60559より小さいPTSが存在しないので、AU量、PTSの削除は行わない。
【0061】AMBシミュレーション回路78は、SCR=60559と保持PTSとを比較し、保持PTS=60480よりSCR=60559の方が大きいので、AU量、PTSを削除し、削除したAU量をAMB209の空き容量に加算する。加算結果は5152バイトとなり、AMB209容量=4096バイトを超えるので、AMB209でアンダフローが発生する。
【0062】このように、従来の第2のプログラムストリーム多重化回路では、1つのビデオESと2つのオーディオESの多重化を行うと、P−STDのメインバッファでアンダフローが発生するという問題点がある。
【0063】
【発明が解決しようとする課題】上述した従来のプログラムストリーム多重化方法及び装置は、複数のESの多重化が多重化対象のESのサイズと多重化条件及びプログラムストリームターゲットデコーダ(P−STD)のメインバッファの容量に依存するため、メインバッファの容量が多重化対象のエレメンタリストリーム(ES)のサイズと多重化条件に比較して余裕が小さい場合、例えば1つのビデオESと2つのオーディオESの多重化を行うと、P−STDのメインバッファでアンダフローが発生する可能性があるというという欠点があった。
【0064】本発明の目的は、P−STDのメインバッファの容量に依存することなく、複数のESを多重化できるプログラムストリーム多重化方法及び装置を提供することにある。
【0065】
【課題を解決するための手段】請求項1記載の発明のプログラムストリーム多重化方法は、ディジタルビデオ信号及び第1,第2のディジタルオーディオ信号の各々を入力し所定の圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(以下、ビデオES)及び第1及び第2のオーディオエレメンタリストリーム(以下、オーディオES)の各々を生成し、これらビデオES及び第1及び第2のオーディオESを多重化してプログラムストリームを生成するプログラムストリーム多重化方法において、前記プログラムストリームを作成するために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)の前記ビデオESを保持するビデオメインバッファ(以下、VMB)及び前記第1,第2のオーディオESを保持する第1,第2のオーディオメインバッファ(以下、AMB)の各々のメモリ占有量の状態を管理し、前記VMB及び第1,第2のAMBの空になる順番で前記ビデオES及び前記第1,第2のオーディオESを多重化するよう多重化順位付け及び多重化判断を行い多重化の制御を行うことを特徴とするものである。
【0066】また、請求項2記載の発明は、請求項1記載のプログラムストリーム多重化方法において、前記VMB及び前記第1,第2のAMBのメモリ占有量の状態を保持するVMBシミュレーション回路及び第1,第2のAMBシミュレーション回路を有し、前記VMBシミュレーション回路及び第1,第2のAMBシミュレーション回路の各々の上記占有量保持内容から、前記P−STD内のメインバッファが空になる順番である空き順位を把握し、前記空き順位を前記ビデオES及び第1及び第2のオーディオESの多重化順位として多重化順位付けを行い、その多重化順位で多重化が行えるかの第1の多重化判断を行い、多重化できる場合多重化を行い、前記ビデオES及び第1及び第2のオーディオESの全てが多重化できないときは、前記多重化順位に従い多重化できない要因である多重化不可能要因を確認し、前記多重化不可能要因が、該当ESのメインバッファに空きがない無空バッファ状態による場合、第2の多重化判断として、前記VMBシミュレーション回路及び前記第1,第2のAMBシミュレーション回路の各々に保持している第1,第2のプレゼンテーションタイムスタンプ(以下、PTS)又は復号タイムスタンプ(以下、DTS)の最小値を呼び出し、その値をシステムクロックリファレンス(以下、SCR)に設定することにより、空きがない前記メインバッファに空きを作成して多重化を行うことにより、前記メインバッファのサイズに依存せず、多重化を行うことを特徴とするものである。
【0067】また、請求項3記載の発明は、請求項2記載のプログラムストリーム多重化方法において、前記多重化順位付けが、前記VMBシミュレーション回路及び第1,第2のAMBシミュレーション回路の各々から呼び出した前記DTS及び前記第1,第2のPTSの各々の最大値を比較し、前記最大値が小さい方から大きい方に優先的に多重化するよう順序付けし、前記第1の多重化判断が、前記VMB及び前記第1,第2のAMBの各々のシミュレーション用の前記SCRの調整を伴わない多重化判断であり、前記第2の多重化判断が、前記SCRの調整を伴う多重化判断であることを特徴とするものである。
【0068】また、請求項4記載の発明は、請求項2記載のプログラムストリーム多重化方法において、前記VMBシミュレーション回路及び前記第1,第2のAMBシミュレーション回路の各々が、前記P−STDのそれぞれ対応する前記VMB又は前記第1又は第2のAMBの(以下、MB)の空き容量を保持し、出力ビデオ又は第1又は第2のオーディオESのデータ量(以下、出力ES量)の供給に応答して、前記MBの空き容量から前記出力ES量を減算し使用可能容量を求め、アクセスユニットの数であるAU量及び前記DTS又は前記第1又は第2のPTSの各々(以下、DTS/PTS)の供給に応答してこれらAU量及びDTS/PTSを関連付けて保持し、前記SCR生成回路が出力する第1のSCRの値と前記DTS/PTSの値とを比較し、前記DTS/PTS値の方が小さいとき、前記空き容量に前記DTS/PTSに関連する前記AU量を加算し、前記DTS/PTSの値の方が大きいとき、保持していた前記DTS/PTS及び前記DTS/PTSに関連する前記AU量を削除し、前記パック選択回路からの第2のSCRの供給に応答して、前記第2のSCRの値と前記DTS/PTSの値を比較し、前記DTS/PTSの値が前記第2のSCR値と同一又は小さいとき、前記DTS/PTSに関連するAU量を前記パック選択回路に出力するとともに、前記MBの空き容量に前記DTS/PTSに関連するAU量を加算し、前記加算結果の値である加算値と前記MBの容量とを比較し、前記加算値の方が大きいとき前記MBのアンダフローを出力し、最大値確認要求の供給に応答して、前記DTS/PTSの最大値を出力し、空き容量確認要求の供給に応答して前記MBの空き容量を出力し、最小値確認要求の供給に応答して、前記DTS/PTSの最小値を出力することを特徴とするものである。
【0069】また、請求項5記載の発明のプログラムストリーム多重化方法は、ディジタルビデオ信号及び第1,第2のディジタルオーディオ信号の各々を入力し所定の圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(以下、ビデオES)及び第1及び第2のオーディオエレメンタリストリーム(以下、オーディオES)の各々を生成し、これらビデオES及び第1及び第2のオーディオESを多重化してプログラムストリームを生成するプログラムストリーム多重化方法において、前記プログラムストリームを作成するために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)の前記ビデオESを保持するビデオメインバッファ(以下、VMB)及び前記第1,第2のオーディオESを保持する第1,第2のオーディオメインバッファ(以下、AMB)の各々のメモリ占有量の状態を保持するVMBシミュレーション回路及び第1,第2のAMBシミュレーション回路の各々が保持している復号タイムスタンプ(以下、DTS)又は第1,第2のプレゼンテーションタイムスタンプ(以下、PTS)の各々の最大値を比較し、前記最大値が1番小さいDTS又は第1,第2のPTSに対応するビデオES又は第1又は第2のオーディオES(以下、ES)を多重化順位1とし、以下、前記最大値が大きくなる順序で優先的に多重化する多重化順位付けを行う多重化順位付けステップと、前記多重化順位1であるES(以下、多重化順位1ES)の前記P−STDのシミュレーション用のシステムクロックリファレンス(以下、SCR)の調整を伴わない多重化判断である第1の多重化判断及び多重化処理と、前記多重化順位が2のES(以下、多重化順位2ES)の前記第1の多重化判断及び多重化処理と、前記多重化順位が3のES(以下、多重化順位2ES)の前記第1の多重化判断及び多重化処理と、前記多重化順位1ESの前記SCRの調整を伴う多重化判断である第2の多重化判断及び多重化処理と、前記多重化順位2ESの前記第2の多重化判断及び多重化処理と、前記多重化順位3ESの前記第2の多重化判断及び多重化処理とを行うことを特徴とするものである。
【0070】また、請求項6記載の発明は、請求項5記載のプログラムストリーム多重化方法において、前記多重化順位1ESの前記第1の多重化判断及び多重化処理が、多重化するためのデータ量のES(以下、多重化対象ES)が前記多重化順位1ESのバッファに存在するかを判断するため、前記多重化順位1ESのバッファ占有量を確認し、前記多重化対象ESが前記多重化順位1ESのバッファに存在しない場合、この多重化順位1ESの第1の多重化判断を終了し、前記多重化順位2ESの第1の多重化判断に進む多重化順位1ESの多重化判断ステップと、前記多重化順位1ESの多重化判断ステップで、前記多重化対象ESが前記多重化順位1ESのバッファに存在する場合、前記多重化順位1ESの前記メインバッファがそのESを入力してもオーバフローもアンダフローも起こさず多重化が可能であることを判断する多重化順位1ESの多重化可能性判断処理と、前記多重化順位1ESの多重化可能性判断処理で、多重化が可能である場合、前記多重化順位1ESの多重化を行う多重化順位1ESの多重化処理とを有することを特徴とするものである。
【0071】また、請求項7記載の発明は、請求項6記載のプログラムストリーム多重化方法において、前記多重化順位1ESの多重化可能性判断処理が、前記多重化順位1ESのMBシミュレーション回路の空き容量である第1の空き容量を呼び出す第1の空き容量確認ステップと、前記第1の空き容量から前記多重化順位1ESの多重化対象ES量を減算し、第2の空き容量を算出する第2の空き容量算出ステップと、多重化を行うときに付加する前記SCRを前記多重化順位1ESの前記MBシミュレーション回路に出力し、前記多重化順位1ESの前記MBシミュレーション回路が、前記SCRで前記多重化順位1ESの前記MBから削除されるアクセスユニットの数であるAU量を呼び出す削除AU量呼出ステップと、前記第2の空き容量に前記AU量を加算し、第3の空き容量を算出する第3の空き容量算出ステップと、前記第3の空き容量が、前記多重化順位1ESの前記メインバッファの容量内か判断し、前記メインバッファの容量内である場合は前記多重化順位1ESの多重化処理に進み、前記メインバッファの容量を超える場合は前記多重化順位1ESの多重化判断1を終了し、前記多重化順位2ESの前記第1の多重化判断に進む多重化順位1ESのMB容量判断ステップとを有し、前記多重化順位1ESの前記多重化処理が、前記多重化順位1ESのバッファが出力ESデータ量(以下、ES量)の指示に応答して指示された前記ES量を出力する出力ES量指示ステップと、前記プログラムストリームPSに付加するSCRを出力し、前記多重化対象ESが前記AUの先頭を含む場合、前記多重化順位1ESがオーディオESの場合は前記PTSと前記AU量を出力し、ビデオESの場合は前記PTSと前記DTSと前記AU量とピクチャタイプを出力するSCRとESパラメータ出力ステップと、前記プログラムストリームに付加する前記SCRをSCR生成回路に出力するシミュレーション用SCR生成ステップと、前記多重化対象ESの前記ES量を前記多重化順位1ESの前記MBシミュレーション回路に出力し、前記多重化対象ESが前記AUの先頭を含む場合、前記多重化順位1ESがオーディオESの場合は前記PTSと前記AU量を出力し、ビデオESの場合は前記DTSと前記AU量とを出力する多重化対象ES量・パラメータ出力ステップと、前記SCRに予め定めたSCR加算値を加算し保持するSCR加算値の加算ステップとを有し、前記ESと前記SCRと前記PTSと前記DTSと前記AU量と前記ピクチャタイプに基づき多重化を行い、前記プログラムストリームを出力することを特徴とするものである。
【0072】請求項8記載の発明のプログラムストリーム多重化装置は、ディジタルビデオ信号を入力し所定の圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(以下、ビデオES)を出力するビデオエンコーダと、前記ビデオESを保持するビデオバッファと、第1及び第2のディジタルオーディオ信号の各々を入力しそれぞれ前記圧縮符号化プロトコルに従って圧縮符号化を行い第1及び第2のオーディオエレメンタリストリーム(以下、オーディオES)の各々を出力する第1及び第2のオーディオエンコーダと、前記第1及び第2のオーディオESの各々を保持する第1及び第2のオーディオバッファと、前記ビデオバッファ及び第1,第2のオーディオバッファの各々に保持している前記ビデオES及び第1,第2のオーディオESを多重化してプログラムストリームとして出力する多重器とを備えるプログラムストリーム多重化装置において、前記多重器が、前記ビデオバッファ内の前記ビデオESの占有量を確認し保持するVB占有量確認回路と、前記プログラムストリームを作成するために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)のビデオメインバッファ(以下、VMB)のシミュレーションを行うVMBシミュレーション回路と、前記第1,第2のオーディオバッファの各々内の前記第1,第2のオーディオESの各々の占有量をそれぞれ確認保持する第1,第2のAB占有量確認回路と、前記P−STDの前記第1,第2のオーディオメインバッファ(以下、AMB)の各々のシミュレーションを行う第1,第2のAMBシミュレーション回路と、前記ビデオES及び第1,第2のオーディオESに対し前記P−STDの前記VMB及び前記第1,第2のAMBの各々のメモリ占有量の状態を管理し、前記VMB及び第1,第2のAMBの空になる順番で前記ビデオES及び第1,第2のオーディオESを多重化するよう多重化順位付け及び多重化判断を行い多重化の制御を行うパック選択回路と、前記パック選択回路からのデータに基づき前記P−STDの前記VMB及び第1,第2のAMBのシミュレーション用のシステムクロックリファレンス(以下、SCR)を生成するSCR生成回路と、前記パック選択回路の制御により多重化を行う多重化回路とを備えて構成されている。
【0073】また、請求項9記載の発明は、請求項8記載のプログラムストリーム多重化方法において、前記多重器が、前記パック選択回路と前記SCR生成回路と前記VMBシミュレーション回路と前記VB占有量確認回路と前記第1,第2のAB占有量確認回路の各々の機能をソフトウェアにより置換したマイクロコントローラを備えて構成されている。
【0074】また、請求項10記載の発明は、請求項8記載のプログラムストリーム多重化方法において、前記P−STDが、入力した前記プログラムストリームを前記ビデオESと前記第1,第2のオーディオESと前記SCRと、プレゼンテーションタイムスタンプ(以下、PTS)及び復号タイムスタンプ(以下、DTS)に分解するデマルチプレクス部と、前記SCRの供給を受けシステムタイムクロック(STC)を生成するシステムクロック生成部と、前記ビデオESを保持する前記VMBと、前記第1,第2のオーディオESの各々を保持する前記AMBと、前記ビデオESを復号してビデオ信号Vを出力するビデオデコーダと、前記第1,第2のオーディオESの各々を復号して第1,第2のオーディオ信号の各々を出力する第1,第2のオーディオデコーダと、前記STCと前記PTS又は前記DTSとの比較を行い比較結果に応じて前記VMB又は前記第1又は第2のAMBに対し前記PTS又はDTSに対応するESを前記ビデオデコーダ又は第1又は第2のオーディオデコーダに出力するよう指示するとともに後述の第1,第2のセレクタの制御信号を出力するタイムスタンプ比較部と、前記ビデオ信号のピクチャの配列順を変更するため再配列を行う再配列バッファと、前記制御信号の供給に応答して前記ビデオ信号を前記再配列バッファに供給するよう切り替える第1,第2のセレクタとを備えて構成されている。
【0075】
【発明の実施の形態】次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0076】本実施の形態のプログラムストリーム多重化方法及び装置は、動画像及び音声を含む情報の圧縮符号化技術としてISOとCCITTの専門家グループISO/IEC,JTC1/SC2/WG8(Moving Picture Expert Group)が勧告したISO/IEC−11172−3に規定するMPEG1規格又はISO/IEC−13818で規定するMPEG2(以下、MPEG規格)のプログラムストリーム(以下、PS)の多重化を対象とする。
【0077】PSの多重化において、1つのビデオエレメンタリストリーム(以下、ES)と2つのオーディオESを多重化するとき、PS作成のために符号化で使用される仮想的な復号器であるプログラムシステムターゲットデコーダ(以下、P−STD)内のメインバッファのメモリ占有量の状態をP−STDビデオメインバッファ(以下、VMB)シミュレーション回路及び第1,第2のP−STDオーディオメインバッファ(以下、AMB)シミュレーション回路で保持し、パック選択回路は、VMBシミュレーション回路、第1,第2のAMBシミュレーション回路の各々の上記占有量保持内容から、上記P−STD内のメインバッファが空になる順番である空き順位を把握し、その空き順位を各ESの多重化順位とし、その多重化順位で多重化が行えるかの判断を行い、多重化できる場合多重化を行う。全てのESが多重化できないときは、上記パック選択回路は、上記多重化順位に従い多重化できない要因である多重化不可能要因を確認し、多重化不可能要因が、該当ESのメインバッファに空きがない無空バッファ状態による場合、上記VMBシミュレーション回路及び上記第1,第2のAMBシミュレーション回路に保持しているプレゼンテーションタイムスタンプ(以下、PTS)または復号タイムスタンプ(以下、DTS)の最小値を呼び出し、その値をシステムクロックリファレンス(以下、SCR)に設定することにより、空きがない上記メインバッファに空きを作成して多重化を行うことにより、P−STD内に存在するメインバッファサイズに依存せず、多重化することを特徴とするものである。
【0078】次に、本発明の第1の実施の形態のプログラムストリーム多重化装置をブロックで示す図1を参照すると、この図に示す本実施の形態のプログラムストリーム多重化装置は、ディジタルビデオ信号VDを入力してMPEG規格で規定する圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(ES)VSを出力するビデオエンコーダ1と、ビデオESVSを一時保持するビデオバッファ4と、第1及び第2のディジタルオーディオ信号AD1,AD2の各々を入力しそれぞれMPEG規格の圧縮符号化プロトコルに従って圧縮符号化を行いオーディオESAS1,AS2の各々を出力するオーディオエンコーダ2,3と、オーディオESAS1,AS2の各々を一時保持するオーディオバッファ5,6と、ビデオバッファ4及びオーディオバッファ(AB)5,6の各々に保持しているビデオESVS及びオーディオESASを多重化してプログラムストリームPSとして出力する多重器7とを備える。
【0079】多重器7は、ビデオバッファ(VB)4内のビデオESの占有量を確認し保持するVB占有量確認回路73と、後述するようにプログラムシステムターゲットデコーダ(以下、P−STD)のビデオメインバッファ(VMB)204のシミュレーションを行うVMBシミュレーション回路74と、オーディオバッファ5,6の各々内のオーディオESAS1,AS2の各々の占有量をそれぞれ確認保持するAB占有量確認回路75,77と、後述するようにP−STDの第1,第2のオーディオメインバッファ(AMB)207,209の各々のシミュレーションを行うAMBシミュレーション回路76,78と、後述のパック選択回路71からのデータに基づきP−STDメインバッファシミュレーション用のシステムクロックリファレンス(以下、SCR)を生成するSCR生成回路79と、多重化対象のビデオESVS及びオーディオESAS1,AS2からのパケットから成るパック(ストリームの基本単位)を生成するためビデオESVS及びオーディオESAS1,AS2に対しP−STDのVMB204及びAMB207,209の各々のメモリ占有量の状態を管理し、VMB204及びAMB207,209の空になる順番で多重化順位付け及び多重化判断を行い多重化の選択制御を行うパック選択回路71と、パック選択回路71により制御され選択したパックの多重化を行う多重化回路72とを備える。
【0080】本実施の形態のPS多重化装置が出力したPSに対する仮想的な復号器であるP−STDの構成をブロックで示す図19を参照すると、この図に示す本実施の形態のP−STDは、入力したPSをビデオESVS,オーディオESAS1,AS2,SCR,PTS及びDTSに分解するデマルチプレクス部201と、SCRの供給を受けシステムタイムクロック(STC)を生成するシステムクロック生成部202と、ビデオESを保持するVMB204と、オーディオESAS1,AS2の各々をそれぞれ保持するオーディオメインバッファ(AMB)207,209と、STCとPTS又はDTSとの比較を行い比較結果に応じてVMB204又はAMB207/209に対しPTS又はDTSに対応するESをビデオデコーダ205又はオーディオデコーダ208/210に出力するよう指示するとともに後述のセレクタ206,212の制御信号を出力するタイムスタンプ比較部203と、入力したビデオESを復号してビデオ信号Vを出力するビデオデコーダ205と、入力したオーディオESA1、A2の各々を復号してオーディオ信号A1,A2の各々を出力するオーディオデコーダ208,210と、タイムスタンプ比較部203からの制御信号の供給に応答してビデオ信号Vを再配列バッファ211に供給するよう切り替えるセレクタ206,212と、ビデオ信号のピクチャの配列順を変更するため再配列を行う再配列バッファ211とを備える。
【0081】次に、図1及び図2を参照して本実施の形態の動作の概要について説明する。
【0082】まず、各部の動作説明の前に、MPEG規格による一般的なPSの生成について説明する。エンコーダは、符号化対象のビデオ及びオーディオ各デジタルデータをMPEG規格に従い符号化する。符号化したデータをESと表現する。次に、ESを、アクセスユニット(AU)毎、又は任意のサイズ毎にパケット化し、パケタイズドエレメンタリストリーム(PES)パケットに変換する。オーディオの場合は、1つ又はいくつかのオーディオフレーム、ビデオの場合は1つの画像に対する全ての符号化データをAUと表現する。
【0083】PESパケットにはPESヘッダがあり、そのPESパケットにAUの先頭が存在する場合、AUの復号時刻として復号タイムスタンプ(DTS)又は、再生時刻としてプレゼンテーションタイムスタンプ(PTS)を付加する。PESパケットにパックヘッダを加えてストリームの基本単位であるパックを構成(パック化)することによりPS(プログラムストリーム)を作成する。パックヘッダには復号器のシステムクロックを校正するためのシステムクロックリファレンス(SCR)を付加する。ここで、ビデオES及びオーディオESをPSに変換することを多重化と表現する。従って、パックは、パックヘッダと1つ又は2つ以上のESからのパケットを含む。
【0084】多重器は、デコーダでオーディオES及びビデオESを含むPSを再生するとき、音と映像が同期できるようにPSの中にSCRとPTS及びDTSを付加する。また、多重器は、P−STDという仮想的なプログラムシステムターゲットデコーダを定義し、PSがP−STD内の全てのメインバッファ(MB)でアンダフローやオーバフローを引き起こさず、同期再生することを保証しなければならない。
【0085】なお、P−STDの各MBサイズについては、MPEG1規格においてP−STDオーディオメインバッファ(以下、AMD)サイズが4096バイト、P−STDビデオメインバッファ(以下、VMB)サイズが47104バイトとそれぞれ規定されており、また、MPEG2規格において、VMBサイズが229376バイトと規定されている。
【0086】次に、図2を参照して、本実施の形態のP−STDの動作について説明すると、デマルチプレクス部201は、入力したPSをビデオESVSと、オーディオESAS1,AS2と、SCRと、PTSと、DTSとに分解し、ビデオESVSをVMB204に、オーディオESAS1,AS2の各々をAMB207,209の各々に、SCRはシステムクロック生成部202に、PTS及びDTSをタイムスタンプ比較部203にそれぞれ供給する。システムクロック生成部202は、供給を受けたSCRに基づきSTCを生成し、各部に供給する。
【0087】タイムスタンプ比較部203は、供給を受けたSTCとPTS又はDTS(以下、「又は」を/、例えばPTS/DTS等と表記)の比較を行い、PTS/DTSがSTCと一致又はSTCの方が大きいときVMB204/AMB207/AMB209に対して、PTS/DTSに対応するESをビデオデコーダ205/オーディオデコーダ208/210に出力するよう指示する。ビデオデコーダ205は、入力したビデオESを復号してビデオ信号を出力する。オーディオデコーダ208,210の各々は、入力したオーディオESAS1,AS2の各々を復号してオーディオ信号A1,A2の各々を出力する。
【0088】ここで、ビデオESがBピクチャを含む場合、P−STDはビデオ信号Vを出力する順番を変更する必要がある。すなわち、PSではBピクチャを含むビデオESは、IピクチャとPピクチャ(以下、I,Pピクチャ)がBピクチャより先に符号化されているため、復号もI,Pピクチャを先に行うことになる。ただし再生はBピクチャより後になるためI,Pピクチャに対するPTSとDTSは一致しない。従って、I,Pピクチャの場合、タイムスタンプ比較部203は、DTSとSTCが一致又はSTCの方が大きくなった時点でVMB204からビデオデコーダ205にビデオESを出力するように指示する。一方、タイムスタンプ比較部203は、復号したI,Pピクチャを再配列バッファ211に一旦格納するようセレクタ206に指示し、PTSとSTCが一致した時点で再配列バッファ211に保持したI,Pピクチャを出力するようセレクタ212に指示することにより、I,Pピクチャを一旦待機させて出力する。Bピクチャの場合はSTCとの比較を全てPTSで行い、再配列バッファ211には保持しないで、直接ビデオ信号Vとして出力する。このようにして、ビデオ信号の出力順序をB,I,Pの各ピクチャが所定の順序で出力されるよう変更している。
【0089】本実施の形態の多重器は、上述のP−STDの動作を仮想的に実現し、P−STD内の全てのメインバッファでアンダフローやオーバフローを引き起こさないよう、多重化を行っている。
【0090】SCRには、多重化を行う毎に一定の値が加算される。この加算値は次式で表される。
【0091】SCRの加算値(理論値)=パック長/システムビットレート・・・・(1)ここで、システムビットレートは、ビデオES及びオーディオESの各々の生成量に基づき決定する。
【0092】オーディオESの生成量は、オーディオビットレートで決定されその値は一定である。ビデオESの生成量はビデオビットレートで決定されるが、可変ビットレートの場合この値が一定にならずビデオESの生成量が変動し、VMBのアンダフロー及びオーバフローを引き起こす可能性があるため、次の方法を用いてこれを防止する。
【0093】VMBのアンダフローに関しては、予めビデオエンコーダに指示しているビデオビットレートより高めにした値でシステムビットレートを計算し、SCRの加算値を上記理論値より小さくすることによりVMBのアンダフローを防止する。VMBのオーバフローに関しては、VMBがフル状態になったときは、SCRの値を進めてVMBからESを出力させ、VMBのオーバフローを防止する。
【0094】次に、図1及び2を参照して本実施の形態の各部の動作について説明すると、まず、ビデオエンコーダ1は、ディジタルビデオ信号VDを入力してMPEG規格で規定する圧縮符号化プロトコルに従って圧縮符号化を行いビデオエレメンタリストリーム(ES)VSを出力し、ビデオバッファ4に供給する。ビデオバッファ4は、入力したビデオESを保持し、パック選択回路71に指示されたデータ量のビデオESを出力し、多重化回路72に供給する。オーディオエンコーダ2,3は、ディジタルオーディオ信号AD1,AD2の各々を入力しそれぞれMPEG規格の圧縮符号化プロトコルに従って圧縮符号化を行いオーディオESAS1,AS2の各々を出力し、オーディオバッファ5,6の各々に供給する。オーディオバッファ5,6の各々は、入力したオーディオESAS1,AS2の各々を保持し、多重化器7のパック選択回路71に指示されたデータ量のオーディオESAS1,AS2の各々を出力し、多重化回路72に供給する。
【0095】多重化回路72は、詳細は後述するが、入力されたビデオESVS、オーディオESAS1,AS2、SCR、PTS、DTS、各ESのAU量、ピクチャタイプに基づき多重化を行い、PSを出力する。
【0096】多重化器7のVB占有量確認回路73は、ビデオバッファ4が保持しているビデオESVSのデータ量であるVB占有量を確認し保持する。パック選択回路71から容量確認要求QCVをビデオバッファ4を通じて供給を受けると、この容量確認要求QCVの供給に応じて保持しているVB占有量をパック選択回路71に出力する。また、AB占有量確認回路75,77の各々は、オーディオバッファ5,6の各々が保持しているオーディオESAS1,AS2の各々のデータ量であるAS1占有量、AS2占有量の各々を確認し保持する。パック選択回路71から容量確認要求QCAS1,QCAS2の各々をオーディオバッファ5,6の各々を通じて供給を受けると、この容量確認要求QCAS1,QCAS2の各々の供給に応じて保持しているAS1占有量,AS2占有量の各々をパック選択回路71に出力する。
【0097】次に、ビデオESを多重化するときのパック選択回路71の動作について説明すると、パック選択回路71は、ビデオバッファ4に対して多重化回路72への出力ビデオESVOのデータ量を指示するとともに、この出力ビデオESVOのデータ量をVMBシミュレーション回路74に出力し、さらに、PSに付加するSCRを多重化回路72及びSCR生成回路79に出力する。出力ビデオESVOの中にAUの先頭が含まれている場合、PSに付加するPTS、DTS、AU量及びピクチャタイプを多重化回路72に出力する。同時にそのAU量及びDTSをVMBシミュレーション回路74に出力する。さらに、後述するように保持しているSCRにSCR加算値を加算する。以下、出力ビデオESVOのAU量を区別する場合、AUV量と呼ぶ。
【0098】次に、オーディオESAS1,ESAS2を多重化するときのパック選択回路71の動作について説明すると、パック選択回路71は、オーディオバッファ5,6の各々に対して多重化回路72への出力オーディオESAS1O,ESAS2Oの各々のデータ量を指示するとともに、この出力オーディオESAS1O,ESAS2Oの各々のデータ量をAMBシミュレーション回路76,78の各々に出力し、さらに、PSに付加するSCRを多重化回路72及びSCR生成回路79に出力する。出力オーディオESAS1O,ESAS2Oの各々の中にアクセスユニット(AU)の先頭が含まれている場合、PSに付加するPTS及びAU量を多重化回路72に出力する。同時にそのAUの数(以下AU量)及びPTSをAMBシミュレーション回路76,78の各々に出力する。さらに、保持しているSCRにSCR加算値を加算する。以下、オーディオESAS1O,ESAS2Oの各々のAU量をAU1量,AU2量、PTSをPTS1,PTS2と呼ぶ。両者を区別しない場合は、一括してAU量及びPTSと呼ぶ。
【0099】多重化回路72は、オーディオESAS1O,ESAS2O,SCR及びPTSを入力し、多重化を行い、PSを出力する。
【0100】次に、VMBシミュレーション回路74の動作について説明すると、VMBシミュレーション回路74は、P−STDのVMB204の空き容量を保持し、パック選択回路71からの出力ビデオESVOのデータ量の供給に応答して、VMB204の空き容量から出力ビデオESVOのデータ量を減算し使用可能容量を求める。また、AUV量及びDTSの供給に応答してこれらAUV量及びDTSを関連付けて保持する。さらに、SCR生成回路79が出力するシミュレーション用SCRの値(以下、SCR値)と保持しているDTSの値(以下、DTS値)とを比較し、SCR値よりDTS値の方が小さいとき、VMB204の空き容量にDTSに関連するAUV量を加算する。SCR値よりDTS値の方が大きいとき、保持していたDTS及びそのDTSに関連するAU量を削除する。また、パック選択回路71が出力したSCRの供給に応答して、そのSCR値と保持しているDTS値を比較し、DTS値がSCR値と同一又はSCRより小さいとき、そのDTSに関連するAU量をパック選択回路71に出力するとともに、VMB204の空き容量にDTSに関連するAU量を加算する。また、上記加算結果の値である加算値とVMB204の容量とを比較し、加算値の方が大きいときVMB204のアンダフローをパック選択回路71に出力する。さらに、パック選択回路71からの最大値確認要求の供給に応答して、保持しているDTSの最大値をパック選択回路71に出力する。パック選択回路71からの空き容量確認要求の供給に応答してVMB204の空き容量をパック選択回路71に出力する。さらにまた、パック選択回路71からの最小値確認要求の供給に応答して、保持しているDTSの最小値をパック選択回路71に出力する。
【0101】次に、AMBシミュレーション回路76,78を代表してAMBシミュレーション回路76の動作について説明すると、AMBシミュレーション回路76は、P−STDのAMB207の空き容量を保持し、パック選択回路71からの出力オーディオESAS1Oのデータ量の供給に応答して、AMB207の空き容量から出力オーディオESAS1Oのデータ量を減算し使用可能容量を求める。また、AU1量及びPTS1の供給に応答してこれらAU1量及びPTS1を関連付けて保持する。さらに、SCR生成回路79が出力するシミュレーション用SCR値と保持しているPTS1の値(以下PTS1値)とを比較し、SCR値よりPTS1値の方が小さいとき、AMB207の空き容量にPTS1に関連するAU1量を加算する。SCR値よりPTS1値の方が大きいとき、保持していたPTS1及びそのPTS1に関連するAU1量を削除する。また、パック選択回路71が出力したSCRの供給に応答して、そのSCR値と保持しているPTS1値を比較し、PTS1値がSCR値と同一又はSCRより小さいとき、そのPTS1に関連するAU1量をパック選択回路71に出力するとともに、AMB207の空き容量にPTS1に関連するAU1量を加算する。また、上記加算結果の値である加算値とAMB207の容量とを比較し、加算値の方が大きいときAMB207のアンダフローをパック選択回路71に出力する。さらに、パック選択回路71からの最大値確認要求の供給に応答して、保持しているPTS1の最大値をパック選択回路71に出力する。パック選択回路71からの空き容量確認要求の供給に応答してAMB207の空き容量をパック選択回路71に出力する。さらにまた、パック選択回路71からの最小値確認要求の供給に応答して、保持しているPTS1の最小値をパック選択回路71に出力する。
【0102】AMBシミュレーション回路78の動作は、上述のAMBシミュレーション回路76の動作において、AMB207をAMB209に、出力オーディオESAS1Oを出力オーディオESAS2Oに、AU1をAU2に、PTS1をPTS2にそれぞれ読み替える他は同一である。
【0103】次に、パック選択回路71の多重化順位の決定方法について説明すると、パック選択回路71は、VMBシミュレーション回路74及びAMBシミュレーション回路76,78に対して最大値確認要求を出力する。VMBシミュレーション回路74は、最大値確認要求の受領に応じて保持しているDTSの最大値をパック選択回路71に出力する。AMBシミュレーション回路76,78の各々は、最大値確認要求の受領に応じて保持しているPTS1,PTS2の各々の最大値をそれぞれパック選択回路71に出力する。パック選択回路71は、入力したDTSの最大値及びPTS1,PTS2の各々の最大値の計3つの最大値を比較し、最大値が1番小さいDTS/PTS1/PTS2に対応するESを多重化順位1とし、以下、最大値が大きくなる順序で多重化するという多重化順位付けを行う。ここで、この多重化順位付けの順位を多重化順位と呼ぶ。
【0104】多重化判断について説明すると、パック選択回路71は、各ESに対して大別してP−STDメインバッファシミュレーション用のSCRの調整の有無に応じ2種類の多重化判断を行う。第1は、SCRの調整を伴わない多重化判断で、以下、多重化判断1と呼ぶ。第2は、SCRCSの調整を伴う多重化判断で、以下、多重化判断2と呼ぶ。
【0105】パック選択回路71は、決定した多重化順位に従い、各ESに対して多重化判断1を行い、いずれかのESが多重化できることを確認できた時点で、多重化を行い多重化処理を終了する。多重化判断1において全てのESを多重化できなかった場合、決定した多重化順位に従い、各ESに対して多重化判断2を行い、いずれかのESが多重化できることを確認できた時点で、多重化を行い多重化処理を終了する。多重化判断2においても全てのESが多重化できなかった場合、多重化処理を終了する。
【0106】次に、ビデオESVSに対する多重化判断1の動作について説明すると、パック選択回路71は、多重化するためのデータ量を満たしたビデオESVS(以下、多重化対象ビデオES)がビデオバッファ4に存在するかを判断するため、VB占有量確認回路73に対し容量確認要求QCVを出力し容量確認を行う。ビデオバッファ4に多重化対象ビデオESが存在することを確認したとき、VMBシミュレーション回路74に対してP−STDのVMB204の空き容量確認を行う。VMB204の空き容量が、多重化対象ビデオESVSのデータ量より大きいことを確認したとき、ビデオESVSの多重化を行い、多重化処理を終了する。
【0107】パック選択回路71は、ビデオバッファ4に多重化対象ビデオESが存在しないことを確認したとき、及びVMB204の空き容量が多重化対象ビデオESVSのデータ量より小さいことを確認したとき、ビデオESVSに対する多重化判断1を終了する。
【0108】このとき、ビデオESの多重化順位より低順位のESが存在する場合は、そのESに対して多重化判断1を実行する。ビデオESの多重化順位より低順位のESが存在しない場合は、多重化順位1のESに対して多重化判断2を実行する。
【0109】次に、オーディオESAS1に対する多重化判断1の動作について説明すると、パック選択回路71は、多重化するためのデータ量を満たしたオーディオESAS1(以下、多重化対象オーディオESAS1)がオーディオバッファ5に存在するかを判断するため、AB占有量確認回路75にに対し容量確認要求QCVを出力し容量確認を行う。オーディオバッファ5に多重化対象オーディオESAS1が存在していることを確認したとき、AMBシミュレーション回路76に対してP−STDのAMB207の空き容量確認を行う。AMB207の空き容量が多重化対象オーディオESAS1のデータ量より大きいことを確認したとき、オーディオESAS1の多重化を行い、多重化処理を終了する。
【0110】パック選択回路71は、オーディオバッファ5に多重化対象オーディオESAS1が存在しないことを確認したとき、及びAMB207の空き容量が多重化対象オーディオESAS1のデータ量より小さいことを確認したとき、オーディオESAS1に対する多重化判断1を終了する。
【0111】このとき、オーディオESAS1の多重化順位より低順位のESが存在する場合は、そのESに対して多重化判断1を実行する。オーディオESAS1の多重化順位より低順位のESが存在しない場合は、多重化順位1のESに対して多重化判断2を実行する。
【0112】オーディオESAS2に対する多重化判断1の動作は、オーディオESAS1をオーディオESAS2に、オーディオバッファ5をオーディオバッファ6に、AB占有量確認回路75をAB占有量確認回路77に、AMBシミュレーション回路76をAMBシミュレーション回路78に、AMB207をAMB209にそれぞれ読み替える他は、上述のオーディオESAS1に対する多重化判断1の動作と同一である。
【0113】次に、各ESに対する多重化判断2の動作について説明する。なお各ESに対する多重化判断2の動作は各ESの多重化順位により異なるので、以下の説明は多重化順位毎に説明する。
【0114】まず、多重化順位1のビデオESに対する多重化判断2の動作について説明すると、パック選択回路71は、多重化多重化対象ビデオESがビデオバッファ4に存在するかを判断するため、VB占有量確認回路73に対し容量確認要求QCVを出力し容量確認を行う。ビデオバッファ4に多重化対象ビデオESが存在しないことを確認すると、ビデオESに対する多重化判断2を終了し、多重化順位2のESに対して多重化判断2を実行する。
【0115】パック選択回路71は、ビデオバッファ4に多重化対象ビデオESが存在することを確認することにより、P−STDのVMB204にビデオESを入力する空き容量がないということが分かる。このときパック選択回路71は、VMBシミュレーション回路74に保持しているDTSの最小値を呼び出し、その値をSCR生成回路79に出力し、シミュレーション用のSCRの値を変更する。VMBシミュレーション回路74は、変更後のSCRの値に合わせ、保持しているDTS、AUV量、VMB204の空き容量の変更削除を行う。
【0116】上記動作後、パック選択回路71は、VMBシミュレーション回路74に対し空き容量確認要求を出力しVMB204の空き容量確認を行い、VMB204の空き容量が多重化対象ビデオESのデータ量より大きいことを確認したとき、ビデオESの多重化を行い多重化処理を終了する。また、VMB204の空き容量が多重化対象ビデオESの量より小さいことを確認したとき、上述のパック選択回路71によるSCRの変更、VMBシミュレーション回路74の保持値の変更削除、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路78の保持値の変更削除、パック選択回路71によるVMB204の空き容量の確認という動作をビデオESが多重化できるまで繰り返す。
【0117】次に、多重化順位2のビデオESに対する多重化判断2の動作について説明すると、パック選択回路71は、多重化多重化対象ビデオESがビデオバッファ4に存在するかを判断するため、VB占有量確認回路73に対し容量確認要求QCVを出力し容量確認を行う。ビデオバッファ4に多重化対象ビデオESが存在しないことを確認したとき、多重化順位3のESに対して多重化判断2を実行する。また、ビデオバッファ4に多重化対象ビデオESが存在することを確認したとき、VMB204にビデオESを入力する空き容量ないということが分かる。このときパック選択回路71は、VMBシミュレーション回路74に保持しているDTSの最小値を呼び出し、このDTSの最小値をSCRとして多重化順位1のESに対応するメインバッファ(MB)シミュレーション回路に出力し、多重化順位1のP−STDのメインバッファがアンダフローしないかを判断し、アンダフローすることを確認したときは、多重化順位3のESに対して多重化判断2を実行する。また、アンダフローしないことを確認したときは、呼び出したDTSの最小値をSCRに出力する。
【0118】VMBシミュレーション回路74は、変更されたSCRの値に合わせ、保持しているDTS、AUV量、VMB204の空き容量の変更削除を行う。AMBシミュレーション回路76は、変更されたSCRの値に合わせ、保持しているPTS、AUV量、AMB207の空き容量の変更削除を行う。AMBシミュレーション回路78は、変更されたSCRの値に合わせ、保持しているPTS、AUV量、AMB209の空き容量の変更削除を行う。
【0119】上記動作後、パック選択回路71は、VMBシミュレーション回路74に対し空き容量確認要求を出力しVMB204の空き容量確認を行い、VMB204の空き容量が多重化対象ビデオESのデータ量より大きいことを確認したとき、ビデオESの多重化を行い多重化処理を終了する。VMB204の空き容量が多重化対象ビデオESのデータ量より小さいことを確認したとき、上記に示したパック選択回路71によるSCR変更に伴う多重化順位1のP−STDメインバッファのアンダフローの有無の確認及びSCRの変更、VMBシミュレーション回路74の保持値の変更削除、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路78の保持値の変更削除、パック選択回路71によるVMB204の空き容量の確認という動作をビデオESが多重化できるまで繰り返す。
【0120】次に、多重化順位3のビデオESに対する多重化判断2の動作について説明すると、パック選択回路71は、多重化多重化対象ビデオESがビデオバッファ4に存在するかを判断するため、VB占有量確認回路73に対し容量確認要求QCVを出力し容量確認を行う。ビデオバッファ4に多重化対象ビデオESが存在しないことを確認したとき、多重化判断2を終了する。また、多重化対象ビデオESが存在することを確認したとき、VMB204にビデオESを入力する空き容量がないことが分かる。
【0121】パック選択回路71は、VMBシミュレーション回路74に保持しているDTSの最小値を呼び出し、DTSの最小値をSCRとして多重化順位1及び多重化順位2のMBシミュレーション回路に出力し、多重化順位1及び多重化順位2のP−STDのメインバッファがアンダフローしないか判断する。多重化順位1及び多重化順位2のメインバッファのいずれか又は両方がアンダフローすることを確認したときは、多重化判断2を終了する。
【0122】多重化順位1及び多重化順位2のP−STDのメインバッファがアンダフローしないことを確認したとき、呼び出したDTSの最小値をSCR生成回路79に出力し、SCR生成回路79はこのDTSに基づきSCRを変更する。VMBシミュレーション回路74は、変更されたSCRの値に合わせ、保持しているDTS、AUV量、VMB204の空き容量の変更削除を行う。AMBシミュレーション回路76,78の各々は、変更されたSCRの値に合わせ、保持しているPTS1、PTS2、AU1量,AU2量、AMB207、209の各々の空き容量の変更削除を行う。
【0123】上記動作後、パック選択回路71は、VMBシミュレーション回路74に対し空き容量確認要求を出力しMB204の空き容量確認を行う。VMB204の空き容量が多重化対象ビデオESのデータ量より大きいことを確認したとき、ビデオESの多重化を行い多重化処理を終了する。また、VMB204の空き容量が多重化対象ビデオESのデータ量より小さいことを確認したとき、上述のパック選択回路71によるSCR変更に伴う多重化順位1及び多重化順位2のP−STDメインバッファのアンダフローの有無の確認及びSCRの変更、VMBシミュレーション回路74の保持値の変更削除、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路78の保持値の変更削除、パック選択回路71によるVMB204の空き容量の確認という動作をビデオESが多重化できるまで繰り返す。
【0124】次に、多重化順位1のオーディオESAS1に対する多重化判断2の動作について説明すると、パック選択回路71は、多重化対象オーディオESAS1がオーディオバッファ5に存在するかの判断のため、AB占有量確認回路75に対し容量確認要求QCAS1を出力し容量確認を行う。オーディオバッファ5に多重化対象オーディオESAS1が存在しないことを確認すると、オーディオESAS1に対する多重化判断2を終了し、多重化順位2のESに対して多重化判断2を実行する。オーディオバッファ5に多重化対象オーディオESAS1が存在することを確認することにより、AMB207にオーディオESAS1を入力する空き容量がないことが分かる。このときパック選択回路71は、AMBシミュレーション回路76に保持しているPTS1の最小値を呼び出し、その値をSCR生成回路79に出力する。SCR生成回路79は、PTS1の最小値に基づきSCRを変更する。VMBシミュレーション回路74は、変更されたSCRの値に合わせ、保持しているDTS、AUV量、VMB204の空き容量の変更削除を行う。AMBシミュレーション回路76は、変更されたSCRの値に合わせ、保持しているPTS1、AU1量、AMB207の空き容量の変更削除を行う。AMBシミュレーション回路78は、変更されたSCRの値に合わせ、保持しているPTS2、AU2量、AMB209の空き容量の変更削除を行う。
【0125】上記動作後、パック選択回路71は、AMBシミュレーション回路76に対し空き容量確認要求を出力しAMB207の空き容量確認を行い、AMB207の空き容量が多重化対象オーディオESAS1のデータ量より大きいことを確認したとき、オーディオESAS1の多重化を行い多重化処理を終了する。また、AMB207の空き容量が多重化対象オーディオESAS1のデータ量より小さいことを確認したとき、上述のパック選択回路71によるSCRの変更、VMBシミュレーション回路74の保持値の変更削除、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路78の保持値の変更削除、パック選択回路71によるAMB207の空き容量の確認という動作をオーディオESAS1を多重化できるまで繰り返す。
【0126】次に、多重化順位2のオーディオESAS1に対する多重化判断2の動作について説明すると、パック選択回路71は、多重化多重化対象オーディオESAS1がオーディオバッファ5に存在するかを判断するため、AB占有量確認回路75に対し容量確認要求QCAS1を出力し容量確認を行う。オーディオバッファ5に多重化対象オーディオESAS1が存在しないことを確認したとき、多重化順位3のESに対して多重化判断2を実行する。また、オーディオバッファ5に多重化対象オーディオESAS1が存在することを確認したとき、AMB207にオーディオESAS1を入力する空き容量ないということが分かる。このときパック選択回路71は、AMBシミュレーション回路76に保持しているPTS1の最小値を呼び出し、このPTS1の最小値をSCRとして多重化順位1のESに対応するメインバッファ(MB)シミュレーション回路に出力し、多重化順位1のP−STDのメインバッファがアンダフローしないかを判断し、アンダフローすることを確認したときは、多重化順位3のESに対して多重化判断2を実行する。また、アンダフローしないことを確認したときは、呼び出したPTS1の最小値をSCRに出力する。
【0127】VMBシミュレーション回路74は、変更されたSCRの値に合わせ、保持しているDTS、AUV量、VMB204の空き容量の変更削除を行う。AMBシミュレーション回路76は、変更されたSCRの値に合わせ、保持しているPTS1、AU1量、AMB207の空き容量の変更削除を行う。AMBシミュレーション回路78は、変更されたSCRの値に合わせ、保持しているPTS2、AU2量、AMB209の空き容量の変更削除を行う。
【0128】上記動作後、パック選択回路71は、AMBシミュレーション回路76に対し空き容量確認要求を出力しAMB207の空き容量確認を行い、AMB207の空き容量が多重化対象オーディオESAS1のデータ量より大きいことを確認したとき、オーディオESAS1の多重化を行い多重化処理を終了する。AMB207の空き容量が多重化対象オーディオESAS1のデータ量より小さいことを確認したとき、上記に示したパック選択回路71によるSCR変更に伴う多重化順位1のP−STDメインバッファのアンダフローの有無の確認及びSCRの変更、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路78の保持値の変更削除、パック選択回路71によるAMB207の空き容量の確認という動作をオーディオESAS1が多重化できるまで繰り返す。
【0129】次に、多重化順位3のオーディオESAS1に対する多重化判断2の動作について説明すると、パック選択回路71は、多重化多重化対象オーディオESAS1がオーディオバッファ5に存在するかを判断するため、AB占有量確認回路75に対し容量確認要求QCAS1を出力し容量確認を行う。オーディオバッファ5に多重化対象オーディオESAS1が存在しないことを確認したとき、多重化判断2を終了する。また、多重化対象オーディオESAS1が存在することを確認したとき、AMB207にオーディオESAS1を入力する空き容量がないことが分かる。
【0130】パック選択回路71は、AMBシミュレーション回路76に保持しているPTS1の最小値を呼び出し、PTS1の最小値をSCRとして多重化順位1及び多重化順位2のMBシミュレーション回路に出力し、多重化順位1及び多重化順位2のP−STDのメインバッファがアンダフローしないか判断する。多重化順位1及び多重化順位2のメインバッファのいずれか又は両方がアンダフローすることを確認したときは、多重化判断2を終了する。
【0131】多重化順位1及び多重化順位2のP−STDのメインバッファがアンダフローしないことを確認したとき、呼び出したPTS1の最小値をSCR生成回路79に出力し、SCR生成回路79はこのPTS1に基づきSCRを変更する。VMBシミュレーション回路74は、変更されたSCRの値に合わせ、保持しているDTS、AUV量、VMB204の空き容量の変更削除を行う。AMBシミュレーション回路76,78の各々は、変更されたSCRの値に合わせ、保持しているPTS1、PTS2、AU1量,AU2量、AMB207、209の各々の空き容量の変更削除を行う。
【0132】上記動作後、パック選択回路71は、AMBシミュレーション回路76に対し空き容量確認要求を出力しMB204の空き容量確認を行う。AMB207の空き容量が多重化対象オーディオESAS1のデータ量より大きいことを確認したとき、オーディオESAS1の多重化を行い多重化処理を終了する。また、AMB207の空き容量が多重化対象オーディオESAS1のデータ量より小さいことを確認したとき、上述のパック選択回路71によるSCR変更に伴う多重化順位1及び多重化順位2のP−STDメインバッファのアンダフローの有無の確認及びSCRの変更、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路76の保持値の変更削除、AMBシミュレーション回路78の保持値の変更削除、パック選択回路71によるAMB207の空き容量の確認という動作をオーディオESAS1が多重化できるまで繰り返す。
【0133】多重化順位1、2及び3のオーディオESAS2に対する多重化判断2の動作は、オーディオESAS1をオーディオESAS2に、オーディオバッファ5をオーディオバッファ6に、AB占有量確認回路75をAB占有量確認回路77に、AMBシミュレーション回路76をAMBシミュレーション回路78に、AMB207をAMB209に、容量確認要求QCAS1を容量確認要求QCAS2にそれぞれ読み替える他は、上述の多重化順位1、2及び3のオーディオESAS1に対する多重化判断2の動作と同一である。
【0134】次に、図1、図2及び各部の処理をフローチャートで示す図3〜図8を参照して本実施の形態のプログラムストリーム多重化装置の動作である本実施の形態のプログラムストリーム多重化方法について詳細に説明する。
【0135】図3を参照すると、多重化順位付けステップA1では、パック選択回路71は、上述したように、VMBシミュレーション回路74が保持しているDTSの最大値及びAMBシミュレーション回路76,78の各々が保持しているPTS1,PTS2の各々の最大値の計3つの最大値を比較し、最大値が小さいDTS/PTS1/PTS2の各々に対応するESから優先的に多重化する多重化順位付けを行う。
【0136】多重化順位が1のES(以下、多重化順位1ES)のP−STDシミュレーション用のSCRの調整を伴わない多重化判断1及び多重化について説明すると、以降の説明では、多重化順位1ESがビデオESの場合、バッファはビデオバッファ4、バッファ占有量確認回路はVB占有量確認回路73、P−STDメインバッファ(以下、MB)シミュレーション回路はVMBシミュレーション回路74、P−STDのメインバッファはVMB204となる。また、多重化順位1ESがオーディオESAS1,ESAS2の場合、バッファはオーディオバッファ5,6、バッファ占有量確認回路はAB占有量確認回路75,77、MBシミュレーション回路はAMBシミュレーション回路76,78、P−STDのメインバッファはAMB207,209となる。
【0137】多重化順位1ESの多重化判断ステップA2で、パック選択回路71は、多重化するためのデータ量のES(以下、多重化対象ES)が多重化順位1ESのバッファに存在するかを判断するため、多重化順位1ESのバッファ占有量確認回路に対し容量確認要求を出力し容量確認を行う。すなわち、多重化順位1ESのバッファ占有量≧多重化順位1ESの多重化量であるかを確認する。
【0138】ステップA2で、多重化対象ESが多重化順位1ESのバッファに存在しないことを確認した場合、多重化順位1ESの多重化判断1を終了し、分岐B以降の多重化順位2ESの多重化判断1に進む。
【0139】ステップA2で、多重化対象ESが多重化順位1ESのバッファに存在することを確認した場合、ステップA3〜A7の多重化可能性判断処理に進み、多重化順位1ESのP−STDのメインバッファがそのESを入力してもオーバフローもアンダフローも起こさず多重化が可能であることを判断する。
【0140】まず、MB空き容量確認ステップA3で、パック選択回路71は、多重化順位1ESのMBシミュレーション回路に対して空き容量確認要求を出力し、この空き容量確認要求に対する応答である空き容量を入力しこの値を空き容量1とする。空き容量2算出ステップA4で、空き容量1から多重化順位1ESの多重化ES量を減算し、空き容量2を算出する。
【0141】削除AU量呼出ステップA5で、パック選択回路71は、多重化を行うときに付加するSCRを多重化順位1ESのMBシミュレーション回路に出力する。多重化順位1ESのMBシミュレーション回路は、入力したSCRで多重化順位1ESのP−STDメインバッファから削除されるAU量を呼び出しパック選択回路71に出力する。
【0142】空き容量3算出ステップA6で、パック選択回路71は、空き容量2にAU量を加算する。この値を空き容量3とする。空き容量3は多重化順位1ESを多重化したときのこのESのP−STDメインバッファの空き容量を示す。
【0143】多重化順位1ESのMB容量判断ステップA7で、パック選択回路71は、空き容量3が多重化順位1ESのP−STDメインバッファ容量(MB容量)内か判断する。
【0144】ステップA7で、空き容量3が多重化順位1ESのMB容量を超えている場合、多重化順位1ESの多重化判断1を終了し、分岐B以降の多重化順位2ESの多重化判断1に進む。
【0145】ステップA7で、空き容量3が多重化順位1ESのMB容量内である場合、多重化順位1ESを多重化しても多重化順位1ESのMBはオーバフローもアンダフローも発生しないとして、ステップA8〜A12で、多重化順位1ESの多重化を行う。
【0146】出力ES量指示ステップA8で、パック選択回路71は、多重化順位1ESのバッファに多重化回路72に対して出力するESデータ量(以下、ES量)を指示する。多重化順位1ESのバッファはその指示を受けて、指示されたES量を多重化回路72に出力する。
【0147】SCRとESパラメータ出力ステップA9で、パック選択回路71は、PSに付加するSCRを多重化回路72に出力する。また多重化対象ESにAUの先頭が含まれている場合、多重化順位1ESの種類により次のパラメータを多重化回路72に出力する。多重化順位1ESがオーディオESAS1又はESAS2(以下、オーディオESAS1/ESAS2)の場合、PTS、AU量を多重化回路72に出力する。多重化順位1ESがビデオESの場合、PTS、DTS、AU量、ピクチャタイプを多重化回路72に出力する。
【0148】シミュレーション用SCR生成ステップA10で、パック選択回路71は、PSに付加するSCRをSCR生成回路79に出力する。
【0149】多重化対象ES量・パラメータ出力ステップA11で、パック選択回路71は、多重化対象のES量を多重化順位1ESのMBシミュレーション回路に出力する。また多重化対象ESにAUの先頭が含まれている場合、多重化順位1ESの種類により次のパラメータを多重化順位1ESのMBシミュレーション回路に出力する。すなわち、多重化順位1ESがオーディオ1ES/ESAS2の場合、PTS、AU量を出力し、ビデオESの場合、DTS、AU量を出力する。
【0150】SCR加算値の加算ステップA12で、パック選択回路71は、SCRにSCR加算値を加算し保持する。
【0151】多重化回路72は、入力されたES、SCR、PTS、DTS、AU量、ピクチャタイプに基づき多重化を行い、PSを出力する。
【0152】多重化順位1ESのMBシミュレーション回路は、多重化順位1ESのP−STDのメインバッファの空き容量から入力されたES量を減算する。多重化順位1ESがビデオESのとき、MBシミュレーション回路は入力したDTSとAU量を関連付けて保持する。多重化順位1ESがオーディオ1ES/ESAS2のとき、MBシミュレーション回路は入力したPTSとAU量を関連付けて保持する。
【0153】上述したように、VMBシミュレーション回路74は、SCRとVMBシミュレーション回路74に保持しているDTSを比較し、DTSの方が小さいとき、VMB204の空き容量にDTSに関連するAU量を加算し、DTSの方が大きいとき、そのDTS及びそのDTSに関連するAU量を削除する。
【0154】AMBシミュレーション回路76/78は、SCRとAMBシミュレーション回路76,78の各々に保持しているPTS1/PTS2を比較し、PTS1/PTS2の方が小さいとき、AMB207/209の空き容量に、PTS1/PTS2に関連するAU1量/AU2量を加算し、PTS1/PTS2の方が大きいときそのPTS1/PTS2及びPTS1/PTS2に関連するAU量を削除する。
【0155】以下の説明では、上述のSCR設定値変更に伴う、VMBシミュレーション回路74及びAMBシミュレーション回路76,78の各々に保持しているパラメータ値の変更、削除の動作を、各MBシミュレーション回路は変更後のSCRの値に合わせ保持値の変更を行うと記述する。
【0156】次に、分岐Bの処理である多重化順位2ESの多重化判断1及び多重化をフローチャートで示す図4を参照して多重化順位2ESの多重化判断1及び多重化について説明すると、まず、多重化順位2ESの多重化判断ステップB1で、パック選択回路71は、多重化対象ESが、多重化順位が2のES(多重化順位2ES)のバッファに存在するか判断するため、多重化順位2ESのバッファ占有量確認回路に対し容量確認要求を出力し容量確認を行う。すなわち、多重化順位2ESのバッファ占有量≧多重化順位1ESの多重化量であるかを確認する。
【0157】ステップB1で、パック選択回路71は、多重化対象ES量が多重化順位2ESのバッファに存在しないことを確認した場合、多重化順位2ESの多重化判断1を終了し、分岐C以降の多重化順位3ESの多重化判断1に進む。
【0158】ステップB1で、パック選択回路71は、多重化対象ES量が多重化順位2ESのバッファに存在することを確認した場合、ステップB2〜B6に進み、多重化順位2ESのP−STDのメインバッファ(MB)がそのESを入力してもオーバフローもアンダフローも起こさないか判断する。
【0159】まず、MB空き容量確認ステップB2で、パック選択回路71は、多重化順位2ESのMBシミュレーション回路に対して空き容量確認要求を出力し、この空き容量確認要求に対する応答である空き容量を入力し、この値を空き容量4とする。空き容量5算出ステップB3で、空き容量4から多重化順位2ESの多重化ES量を減算し、空き容量5を算出する。
【0160】削除AU量呼出ステップB4で、パック選択回路71は、多重化を行うときに付加するSCRを多重化順位2ESのMBシミュレーション回路に出力する。多重化順位2ESのMBシミュレーション回路は、入力したSCRで多重化順位2ESのMBから削除されるAU量を呼び出しパック選択回路71に出力する。
【0161】空き容量6算出ステップB5で、パック選択回路71は、空き容量5にAU量を加算し空き容量6を算出する。空き容量6は多重化順位2ESを多重化したときのこのESのMBの空き容量を示している。
【0162】多重化順位2ESのMB容量判断ステップB6で、パック選択回路71は、空き容量6が多重化順位2ESのMB容量内にあるかを判断する。
【0163】ステップB6で、空き容量6が多重化順位2ESのMB容量を超えている場合、多重化順位2ESの多重化判断1を終了し、分岐C以降の多重化順位3ESの多重化判断1に進む。
【0164】ステップB6で、空き容量6が多重化順位2ESのMB容量内である場合、多重化順位2ESを多重化しても多重化順位2ESのMBはオーバフローもアンダフローも発生しないとして、ステップB7〜B11で、多重化順位2ESの多重化を行う。
【0165】出力ES量指示ステップB7で、パック選択回路71は、多重化順位2ESのバッファに多重化回路72に対して出力するES量を指示する。多重化順位2ESのバッファはその指示を受けて、指示されたES量を多重化回路72に出力する。
【0166】SCRとESパラメータ出力ステップB8で、パック選択回路71は、PSに付加するSCRを多重化回路72に出力する。また多重化対象ESにAUの先頭が含まれている場合、上述した多重化順位1ESの場合と同様の多重化順位2ESの種類に基づく各パラメータ、すなわち、PTS、DTS、AU量、ピクチャタイプを多重化回路72に出力する。
【0167】シミュレーション用SCR生成ステップB9で、パック選択回路71は、PSに付加するSCRをSCR生成回路79に出力する。
【0168】多重化対象ES量・パラメータ出力ステップB10で、パック選択回路71は、多重化対象のES量を多重化順位2ESのMBシミュレーション回路に出力する。また多重化対象ESにAUの先頭が含まれている場合、上述した多重化順位1ESの場合と同様の多重化順位2ESの種類に基づく各パラメータ、すなわち、PTS、DTS、AU量、ピクチャタイプを出力する。
【0169】SCR加算値の加算ステップB11で、パック選択回路71は、SCRにSCR加算値を加算し保持する。
【0170】多重化回路72は、入力ES、SCR、PTS、DTS、AU量、ピクチャタイプにから多重化を行い、PSを出力する。
【0171】多重化順位2ESのMBシミュレーション回路は、多重化順位2ESのMBの空き容量から入力ES量を減算する。多重化順位2ESがビデオESのとき、MBシミュレーション回路は入力AU量とDTSを関連付けて保持する。多重化順位2ESがオーディオ1ES/ESAS2のとき、MBシミュレーション回路は入力したAU量とPTSを関連付けて保持する。各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0172】次に、分岐Cの処理である多重化順位3ESの多重化判断1及び多重化をフローチャートで示す図5を参照して多重化順位3ESの多重化判断1及び多重化について上述の多重化順位2ESの多重化判断1及び多重化との相違点を重点的に説明すると、この多重化順位3ESの多重化判断1及び多重化は、以下の説明を除き、多重化順位2ESを多重化順位3ESに、ステップB1〜B11の各々をステップC1〜C11の各々に、空き容量4,5,6を空き容量7,8,9にそれぞれ読み替えることにより、多重化順位2ESの多重化判断1及び多重化の動作と同一である。
【0173】まず、多重化順位3ESの多重化判断ステップC1で、パック選択回路71は、多重化順位3ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位3ESのバッファに存在しないことを確認した場合、多重化順位3ESの多重化判断1を終了し、分岐D以降の多重化順位1ESの多重化判断2に進む。
【0174】ステップC1で、パック選択回路71は、多重化対象ES量が多重化順位3ESのバッファに存在することを確認した場合、多重化順位2ESの場合と同様の処理であるステップC2〜C6に進み、多重化順位3ESのMBがそのESを入力してもオーバフローもアンダフローも起こさないか判断する。
【0175】多重化順位3ESのMB容量判断ステップC6で、パック選択回路71は、空き容量9が多重化順位3ESのMB容量内にあるかを判断する。
【0176】ステップC6で、空き容量9が多重化順位3ESのMB容量を超えている場合、多重化順位3ESの多重化判断1を終了し、分岐D以降の多重化順位1ESの多重化判断2に進む。
【0177】ステップC6で、空き容量9が多重化順位3ESのMB容量内である場合、多重化順位3ESを多重化しても多重化順位3ESのMBはオーバフローもアンダフローも発生しないとして、多重化順位2ESの場合と同様の処理であるステップC7〜C11で、多重化順位3ESの多重化を行う。
【0178】多重化回路72は、入力ES、SCR、PTS、DTS、AU量、ピクチャタイプにから多重化を行い、PSを出力する。
【0179】各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0180】次に、分岐Dの処理である多重化順位1ESの多重化判断2及び多重化をフローチャートで示す図6を参照して多重化順位1ESの多重化判断2及び多重化について上述の多重化順位1ESの多重化判断1及び多重化との相違点を重点的に説明すると、まず、多重化順位1ESの多重化判断ステップD1で、パック選択回路71は、多重化対象ESが多重化順位1ESのバッファに存在するかを判断するため、多重化順位1ESのバッファ占有量確認回路に対し容量確認要求を出力し容量確認を行う。すなわち、多重化順位1ESのバッファ占有量≧多重化順位1ESの多重化量であるかを確認する。
【0181】ステップD1で、多重化対象ESが多重化順位1ESのバッファに存在しないことを確認した場合、多重化順位1ESの多重化判断1を終了し、分岐E以降の多重化順位2ESの多重化判断1に進む。
【0182】ステップD1で、多重化対象ESが多重化順位1ESのバッファに存在することを確認した場合、ステップD2〜D4に進み、SCRを調整して多重化順位1ESのMBの空き容量を大きくする。
【0183】まず、MB空き容量確認ステップD2で、パック選択回路71は、多重化順位1ESのMBシミュレーション回路に対して最小値確認要求を出力し、多重化順位1ESがオーディオ1ES/ESAS2の場合、対応のMBシミュレーション回路は、最小値確認要求に対しPTSの最小値をパック選択回路71に応答する。多重化順位1ESがビデオESの場合、対応のMBシミュレーション回路は、最小値確認要求に対しDTSの最小値をパック選択回路71に応答する。
【0184】SCR変更ステップD3で、パック選択回路71は、保持しているSCRに入力したPTS/DTSを設定してSCRを変更すると共に、このPTS/DTSをSCR生成回路79に出力する。各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0185】MB空き容量確認ステップD4で、多重化順位1ESのMBシミュレーション回路に対して空き容量確認要求を出力し、この空き容量確認要求に対する応答である空き容量を入力しこの値を空き容量10とする。
【0186】空き容量判断ステップD5で、パック選択回路71は、空き容量10が多重化順位1ESの多重化ES量より大きいか判断する。
【0187】ステップD5で、空き容量10より多重化順位1ESの多重化ES量が大きい場合、ステップD2〜D5の処理を、空き容量10が多重化順位1ESの多重化ES量より大きくなるまで繰り返す。
【0188】ステップD5で、空き容量10が多重化順位1ESの多重化ES量より大きい場合、ステップD6〜D9に進み、多重化順位1ESの多重化を行う。
【0189】出力ES量指示ステップD6で、パック選択回路71は、多重化順位1ESのバッファに多重化回路72に対して出力するES量を指示する。多重化順位1ESのバッファはその指示を受けて、指示された量のESを多重化回路72に出力する。
【0190】SCRとESパラメータ出力ステップD7で、パック選択回路71は、PSに付加するSCRを多重化回路72に出力する。また多重化対象ESにAUの先頭が含まれている場合、上述した多重化順位1ESの多重化判断1の場合と同様の多重化順位1ESの種類に基づく各パラメータ、すなわち、PTS、DTS、AU量、ピクチャタイプを多重化回路72に出力する。
【0191】多重化対象ES量・パラメータ出力ステップD8で、パック選択回路71は多重化対象ES量を多重化順位1ESのMBシミュレーション回路に出力する。また多重化対象ESにAUの先頭が含まれている場合、多重化順位1ESの種類により次のパラメータを多重化順位1ESのMBシミュレーション回路に出力する。多重化順位1ESがオーディオESAS1/ESAS2の場合、PTSとAU量を多重化順位1ESのMBシミュレーション回路に出力する。多重化順位1ESがビデオESの場合、DTSとAU量を多重化順位1ESのMBシミュレーション回路に出力する。
【0192】SCR加算値の加算ステップD9で、パック選択回路71は、SCRにSCR加算値を加算し保持する。
【0193】多重化回路72は、入力ES、SCR、PTS、DTS、AU量、ピクチャタイプから多重化を行い、PSを出力する。
【0194】各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0195】次に、分岐Eの処理である多重化順位2ESの多重化判断2及び多重化をフローチャートで示す図7を参照して多重化順位2ESの多重化判断2及び多重化について上述の多重化順位1ESの多重化判断2及び多重化との相違点を重点的に説明すると、この多重化順位2ESの多重化判断2及び多重化は、以下の説明を除き、多重化順位1ESを多重化順位2ESに、ステップD1,D4,D5,D6,D7,D8,D9をステップE1,E4,E5,E6,E7,E8,E9に、空き容量10を空き容量11にそれぞれ読み替えることにより、多重化順位1ESの多重化判断2及び多重化の動作と同一である。
【0196】まず、多重化順位2ESの多重化判断ステップE1で、パック選択回路71は、多重化順位2ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位2ESのバッファに存在しないことを確認した場合、多重化順位2ESの多重化判断2を終了し、分岐F以降の多重化順位3ESの多重化判断2に進む。
【0197】ステップE1で、パック選択回路71は、多重化対象ES量が多重化順位2ESのバッファに存在することを確認した場合、後述のステップE12〜E14で、SCRを調整して多重化順位2ESのMBの空き容量を大きくしたときに、多重化順位2ESのMBがアンダフローしないかを確認する。
【0198】まず、MB最小値確認ステップE12で、パック選択回路71は、多重化順位2ESのMBシミュレーション回路から最小値確認要求に対する応答としてPTS/DTSの最小値を受領する。この値を仮SCR1と記述する。
【0199】SCR変更ステップE13で、パック選択回路71は、仮SCR1をSCRとして多重化順位1ESのMBシミュレーション回路に出力し、MBシミュレーション回路は保持しているDTS/PTSがSCRと同値及びSCRより小さいとき、上記MBの空き容量にDTS/PTSに関連するAU量を加算する。多重化順位1ESのMBシミュレーション回路は、加算結果と多重化順位1ESのMB容量を比較し、加算結果の方が大きいとき上記MBのアンダフローをパック選択回路71に出力する。
【0200】アンダフロー発生判断ステップE14で、パック選択回路71は、多重化順位1ESのMBのアンダフローが発生したかを判断し、アンダフローが発生した場合、多重化順位2ESの多重化判断2を終了し、分岐F以降の多重化順位3ESの多重化判断2に進む。
【0201】ステップE14で、多重化順位1ESのMBのアンダフローが発生しなかった場合、SCRを調整しても上記MBがアンダフローしないものとして、ステップE12,E4で、SCRを調整して多重化順位2ESのMBの空き容量を大きくする。
【0202】ステップE15で、パック選択回路71は、仮SCR1をパック選択回路71が保持しているSCRに設定することにより変更すると共に、SCR生成回路79に出力する。各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0203】空き容量確認ステップE4で、パック選択回路71は、多重化順位2ESのMBシミュレーション回路から空き容量確認要求に対する応答として空き容量を受領する。この空き容量を空き容量11とする。
【0204】空き容量判断ステップE5で、パック選択回路71は、空き容量11が多重化順位2ESの多重化ES量より大きいかを判断し、空き容量11より多重化順位2ESの多重化ES量が大きい場合、ステップE12,E13,E14,E15,E4,E5を空き容量11が上記多重化ES量より大きくなるまで繰り返す。
【0205】ステップE5で、空き容量11が上記多重化ES量より大きい場合、多重化順位1ESの場合と同様の処理であるステップE6〜E9で、多重化順位2ESの多重化を行う。
【0206】多重化回路72は、入力ES、SCR、PTS、DTS、AU量、ピクチャタイプにから多重化を行い、PSを出力する。
【0207】各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0208】次に、分岐Fの処理である多重化順位3ESの多重化判断2及び多重化をフローチャートで示す図8を参照して多重化順位3ESの多重化判断2及び多重化について上述の多重化順位2ESの多重化判断2及び多重化との相違点を重点的に説明すると、この多重化順位3Sの多重化判断2及び多重化は、以下の説明を除き、多重化順位2ESを多重化順位3ESに、ステップE1,E4,E5,E6,E7,E8,E9をステップF1,F4,F5,F6,F7,F8,F9に、空き容量11を空き容量12に、SCR1をSCR2にそれぞれ読み替えることにより、多重化順位2ESの多重化判断2及び多重化の動作と同一である。
【0209】まず、多重化順位3ESの多重化判断ステップF1で、パック選択回路71は、多重化順位2ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位2ESのバッファに存在しないことを確認した場合、多重化順位2ESの多重化判断2を終了し、多重化処理を終了する。
【0210】ステップF1で、多重化対象ES量が多重化順位3ESのバッファに存在する場合、ステップF12〜F16で、SCRを調整して多重化順位3ESのMBの空き容量を大きくしたときに、多重化順位1ES及び多重化順位2ESの各々のMBがアンダフローしないかを確認する。
【0211】まず、MB最小値確認ステップF12で、パック選択回路71は、多重化順位3ESのMBシミュレーション回路から最小値確認要求に対する応答としてPTS/DTSの最小値を受領する。この値を仮SCR2と記述する。
【0212】SCR変更ステップF13で、パック選択回路71は、仮SCR2をSCRとして多重化順位1ESのMBシミュレーション回路に出力し、多重化順位1ESのMBシミュレーション回路は保持しているDTS/PTSがSCRと同値及びSCRより小さいとき、上記MBの空き容量にDTS/PTSに関連するAU量を加算する。多重化順位1ESのMBシミュレーション回路は、加算結果と多重化順位1ESのMB容量とを比較し、加算結果の方が大きいとき上記MBのアンダフローをパック選択回路71に出力する。
【0213】アンダフロー発生判断ステップF14で、パック選択回路71は、多重化順位1ESのMBのアンダフローが発生したかを判断し、アンダフローが発生した場合、多重化順位3ESの多重化判断2を終了し、多重化処理を終了する。
【0214】ステップF14で、多重化順位1ESのMBのアンダフローが発生しなかった場合、ステップF15に進む。
【0215】SCR変更ステップF15で、パック選択回路71は、仮SCR2をSCRとして多重化順位2ESのMBシミュレーション回路に出力する。多重化順位2ESのMBシミュレーション回路はSCRと保持しているDTS/PTSが同値及びSCRより小さいとき、上記MBの空き容量にDTS/PTSに関連するAU量を加算し、この加算結果と多重化順位2ESのMB容量とを比較し、加算結果の方が大きいとき上記MBのアンダフローをパック選択回路71に出力する。
【0216】アンダフロー発生判断ステップF16で、パック選択回路71は、多重化順位2ESのMBのアンダフローが発生したかを判断し、アンダフローが発生した場合、多重化順位3ESの多重化判断2を終了し、多重化処理を終了する。
【0217】ステップF16で、多重化順位2ESのMBのアンダフローが発生しなかった場合、SCRを調整しても多重化順位1ES及び多重化順位2ESのMBがアンダフローしないとして、ステップF17,F4に進み、SCRを調整して多重化順位3ESのMBの空き容量を大きくする。
【0218】ステップF17で、パック選択回路71は、仮SCR2をパック選択回路71が保持しているSCRに設定することにより変更すると共に、SCR生成回路79に出力する。各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0219】空き容量確認ステップF4で、パック選択回路71は、多重化順位3ESのMBシミュレーション回路から空き容量確認要求に対する応答として空き容量を受領する。この空き容量を空き容量12と記述する。
【0220】空き容量判断ステップF5で、パック選択回路71は、空き容量12が多重化順位3ESの多重化ES量より大きいかを判断し、空き容量12より多重化順位3ESの多重化ES量が大きい場合、ステップF12,F13,F14,F15,F16,F17,F4,F5を空き容量12が上記多重化ES量より大きくなるまで繰り返す。
【0221】ステップF5で、空き容量12が上記多重化ES量より大きい場合、多重化順位2ESの場合と同様の処理であるステップF6〜F9で、多重化順位3ESの多重化を行う。
【0222】多重化回路72は、入力ES、SCR、PTS、DTS、AU量、ピクチャタイプにから多重化を行い、PSを出力する。
【0223】各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0224】次に、多重化前及び多重化後の多重器7の状態を説明図で示す図9を参照して、本実施の形態の多重化装置の多重化判断及び多重化処理について具体的な数値例を用いて説明すると、上述のように、パック選択回路71は、VMBシミュレーション回路74が保持しているDTSの最大値、AMBシミュレーション回路76,78の各々が保持しているPTS1,PTS2の各々の最大値を比較し、これらDTS/PTS1/PTS2に対応するESのうちでDTS/PTS1/PTS2の各々の最大値が小さい方からの順序を多重化判断を行う順位とする。
【0225】この例の多重化条件を下記に示す。
【0226】VMB204の容量=229376バイト。
【0227】AMB207の容量=4096バイトAMB209の容量=4096バイトビデオESの多重化量=2015バイトオーディオESAS1の多重化量=2015バイトオーディオESAS2の多重化量=2015バイトSCR加算値=159この図では、VMBシミュレーション回路74の保持内容を(A)に、AMBシミュレーション回路76,78の保持内容を(B),(C)に、VB占有量確認回路73の保持内容を(D)に、AB占有量確認回路75,77の保持内容を(E),(F)に、SCR生成回路79の保持内容を(G)に、パック選択回路71の保持内容を(H)にそれぞれ示す。また、AMBシミュレーション回路78、AB占有量確認回路77、SCR生成回路79、パック選択回路71の各々の多重化前及び後の保持内容を(CA),(CB)、(FA),(FB)、(GA),(GB)、(HA)、(HB)にそれぞれ示す。
【0228】この図の例では、DTSの最大値は、Pピクチャの66066、PTS1の最大値は、64800、PTS2の最大値は、60480であり、従ってPTS2<PTS1<DTSである。
【0229】従って、多重化順位1ESはオーディオESAS2、多重化順位2ESはオーディオESAS1、多重化順位3ESはビデオESとなる。
【0230】パック選択回路71は、多重化順位1ESであるオーディオESAS2のバッファ6の占有量がオーディオESAS2の多重化ES量より多いかを判断する。バッファ6に存在するES量(占有量)はAMBシミュレーション回路78で確認でき、図9(FA)に示す2400バイトと分かる。
【0231】オーディオESAS2の多重化ES量は、多重化条件から2015バイトであり、オーディオESAS2のバッファ6の占有量がオーディオESAS2の多重化ES量より大きいことが確認できる。
【0232】次に、パック選択回路71は、オーディオESAS2の多重化を行っても、AMB209がオーバフローもアンダフローも起こさず多重化が可能であることを判断する。オーディオESAS2の多重化ES量は2015バイトであり、オーディオESAS2のバッファ6の占有量2400バイトがオーディオESAS2の多重化ES量より大きいことを確認できる。
【0233】次に、パック選択回路71は、オーディオESAS2の多重化を行っても、AMB209がオーバフローもアンダフローも起こさず多重化が可能であることを判断する。パック選択回路71は、AMBシミュレーション回路78が保持しているAMB209の空き容量を呼び出し、図9(CA)に示すように空き容量が4000バイトであることを確認する。この空き容量を空き容量1と記述する。
【0234】次に、パック選択回路71は、空き容量1からオーディオESAS2の多重化ES量=2015バイトを減算し、この減算結果の値を空き容量2と記述する。空き容量2は1985バイトとなる。
【0235】パック選択回路71は、図9(HA)に示す保持しているSCR=60559をAMBシミュレーション回路78に出力する。
【0236】AMBシミュレーション回路78は、入力したSCRでAMBシミュレーション回路78から削除されるAU量、PTSがあるか、通知されたSCRとPTSを比較する。AMBシミュレーション回路78には通知されたSCR=60559より小さいPTS=60480が存在するので(図9(CA))、そのAU量=1152バイトをパック選択回路71に通知する。
【0237】パック選択回路71は、通知されたAU量を空き容量2に加算し、その加算結果の値を空き容量3と記述する。空き容量3は3137バイトとなる。空き容量3は、オーディオESAS2を多重化したときのAMB209の空き容量を示している(図9(CB))。
【0238】パック選択回路71は、空き容量3がAMB207の容量内、0バイト以上4096バイト以下にあるか判断する。空き容量3はAMB209の容量内にあることを確認できたので、パック選択回路71はオーディオESAS2の多重化を次のように行う。
【0239】パック選択回路71は、バッファ6に出力するES量=2015バイトを通知する。バッファ6は、多重化回路72に通知されたES量2015バイト及び多重化を行うときに付加するSCR=60559を出力する。また、オーディオESAS2にAUの先頭が含まれているので、多重化を行うときに付加するPTS=62460、AU量=1152バイトも出力する。さらにSCR生成回路79にSCR=60559を出力する。さらにまた、AMBシミュレーション回路78にオーディオESAS2の多重化ES量=2015バイトを出力するとともに、オーディオESAS2にAUの先頭が含まれているので、PTS=62460、AU量=1152バイトも出力する。
【0240】パック選択回路71は、保持しているSCRにSCR加算値=159を加算する。加算結果は60758となる((図9(HB)))。多重化回路72は、オーディオESAS2、PTS、AU量、SCRを入力し、多重化を行い、PSを出力する。
【0241】AMBシミュレーション回路78は、オーディオESAS2の多重化ES量=2015を入力し、AMB209の空き容量から多重化ES量を減算する。AMB209の空き容量は1985バイトとなる。AMBシミュレーション回路78は、AU量=1152バイト、PTS=62460を入力し、保持する。また、SCR=60559と保持しているPTSとを比較する。AMBシミュレーション回路78にはSCR=60559より小さいPTS=60480が存在するので、そのAU量=1152バイトとPTS=60480を削除し、またAMB209の空き容量に削除したAU量=1152バイトを加算する。AMB209の空き容量は3137バイトとなる(図9(CB))。
【0242】AMBシミュレーション回路76は、SCR=60559と保持しているPTSとを比較する。保持している全てのPTSはSCR=60559より大きいので、特に保持値の変更は行わない。VMBシミュレーション回路74は、SCR=60559と保持しているPTSとを比較する。保持している全てのPTS及びDTSはSCR=60559より大きいので、特に保持値の変更は行わない。
【0243】このように、本実施の形態のプログラムストリーム多重化方法及び装置は、P−STD内のメインバッファ(MB)の状態を管理し、複数のESを多重化するとき、MBが空になる順番で各ESの多重化を行うことにより、MB容量が同一のESを多重化しても、MBがアンダフローすることがない。
【0244】次に、本発明の第2の実施の形態のプログラムストリーム多重化装置を図1と共通の構成要素には共通の参照文字/数字を付して同様にブロックで示す図10を参照すると、この図に示す本実施の形態の前述の第1の実施の形態との相違点は、1つのビデオESと3つのオーディオESを多重化するものであり、第1の実施の形態の構成要素に加えて、第3のディジタルオーディオ信号AD3を圧縮符号化を行いオーディオESAS3を出力するオーディオエンコーダ8と、オーディオESAS3を一時保持するオーディオバッファ9と、多重器7の代わりにビデオバッファ4及びオーディオバッファ5,6,9の各々に保持しているデータを多重化してプログラムストリームPSとして出力する多重器7Aを備えることである。
【0245】本実施の形態の多重器7Aは、多重器7の構成要素に加えて、オーディオバッファ9内のオーディオESAS3の占有量をそれぞれ確認保持するAB占有量確認回路81と、後述のP−STDの第3のオーディオメインバッファ213のシミュレーションを行うAMBシミュレーション回路82と、パック選択回路71の代わりに選択対象としてオーディオESAS3を追加したパック選択回路71Aと、多重化回路72の代わりにパック選択回路71AによりオーディオESAS3を含む選択したパックを多重化する多重化回路72Aとを備えることである。
【0246】本実施の形態に対応するP−STDの構成を図2と共通の構成要素には共通の参照文字/数字を付して同様にブロックで示す図11を参照すると、この図に示す本実施の形態の前述の第1の実施の形態との相違点は、第1の実施の形態の構成要素に加えて、デマルチプレクス部201の代わりに入力したPSをビデオESVS,オーディオESAS1,AS2,AS3,システムクロック(SCR),PTS及びDTSに分解するデマルチプレクス部201Aと、オーディオESAS3を保持するオーディオメインバッファ(AMB)213と、オーディオESAS3を復号してオーディオ信号A3を出力するオーディオデコーダ214とを備えることである。
【0247】次に、本発明の第2の実施の形態のプログラムストリーム多重化装置を図1と共通の構成要素には共通の参照文字/数字を付して同様にブロックで示す図11を参照すると、この図に示す本実施の形態の前述の第1の実施の形態との相違点は、1つのビデオESと3つのオーディオESを多重化するものであり、第1の実施の形態の構成要素に加えて、第3のディジタルオーディオ信号AD3を圧縮符号化を行いオーディオESAS3を出力するオーディオエンコーダ8と、オーディオESAS3を一時保持するオーディオバッファ9と、多重器7の代わりにビデオバッファ4及びオーディオバッファ5,6,9の各々に保持しているデータを多重化してプログラムストリームPSとして出力する多重器7Aを備えることである。
【0248】本実施の形態の多重器7Aは、多重器7の構成要素に加えて、オーディオバッファ9内のオーディオESAS3の占有量をそれぞれ確認保持するAB占有量確認回路81と、後述のP−STDの第3のオーディオメインバッファ213のシミュレーションを行うAMBシミュレーション回路82と、パック選択回路71の代わりに選択対象としてオーディオESAS3を追加したパック選択回路71Aと、多重化回路72の代わりにパック選択回路71AによりオーディオESAS3を含む選択したパックを多重化する多重化回路72Aとを備えることである。
【0249】本実施の形態に対応するP−STDの構成を図2と共通の構成要素には共通の参照文字/数字を付して同様にブロックで示す図12を参照すると、この図に示す本実施の形態の前述の第1の実施の形態との相違点は、第1の実施の形態の構成要素に加えて、デマルチプレクス部201の代わりに入力したPSをビデオESVS,オーディオESAS1,AS2,AS3,システムクロック(SCR),PTS及びDTSに分解するデマルチプレクス部201Aと、オーディオESAS3を保持するオーディオメインバッファ(AMB)213と、オーディオESAS3を復号してオーディオ信号A3を出力するオーディオデコーダ214とを備えることである。
【0250】次に、図10及び図11を参照して本実施の形態の動作の概要について第1の実施の形態との相違点を重点的に説明すると、オーディオエンコーダ8は、ディジタルオーディオ信号AD3を入力しMPEG規格の圧縮符号化プロトコルに従って圧縮符号化を行いオーディオESAS3を出力し、オーディオバッファ9に供給する。オーディオバッファ9は、入力したオーディオESAS3を保持し、多重化器7Aのパック選択回路71Aに指示されたデータ量のオーディオESAS3を出力し、多重化回路72Aに供給する。
【0251】AB占有量確認回路81は、オーディオバッファ9が保持しているオーディオESAS3占有量を確認し保持する。パック選択回路71Aからの容量確認要求QCAS3の供給に応じて保持しているAS3占有量を応答する。
【0252】パック選択回路71Aは、DTSの最大値及びPTS1,PTS2,及びオーディオESAS3のPTS3の各々の最大値の計4つの最大値を比較し、最大値が小さいDTS/PTS1/PTS2/PTS4に対応するESから優先的に多重化する多重化順位4までの多重化判断を行い、この多重化順位4までの多重化処理を行う。
【0253】従って、本実施の形態の第1の実施の形態の多重化アルゴリズムへの処理の追加は、詳細は後述するように、P−STDメインバッファ(MB)シミュレーション用SCRの調整を伴わない多重化順位4ESの多重化判断(多重化判断1)と多重化処理、及びMBシミュレーション用SCRの調整を伴う多重化順位4ESの多重化判断(多重化判断21)と多重化処理である。
【0254】次に、図10、図11及び各部の処理をフローチャートで示す図4,図6,図7,及び図12〜図16を参照して本実施の形態のプログラムストリーム多重化装置の動作である本実施の形態のプログラムストリーム多重化方法について第1の実施の形態との相違点を重点的にに説明する。
【0255】まず、図12を参照すると、多重化順位付けステップA1Aでは、パック選択回路71Aは、VMBシミュレーション回路74が保持しているDTSの最大値及びAMBシミュレーション回路76,78,82の各々が保持しているPTS1,PTS2、PTS3の各々の最大値の計4つの最大値を比較し、最大値が小さいDTS/PTS1/PTS2/PTS4の各々に対応するESから優先的に多重化する多重化順位付けを行う。
【0256】以降の多重化順位1ESの多重化判断1及び多重化、多重化順位2ESの多重化判断1及び多重化の処理は、パック選択回路71をパック選択回路71Aに、多重化回路72を多重化回路72Aにそれぞれ読み替える以外は、図3及び図4にそれぞれ示した第1の実施の形態の処理と同様であるので説明を省略する。
【0257】次に、分岐Cの処理である多重化順位3ESの多重化判断1及び多重化をフローチャートで示す図12を参照して多重化順位3ESの多重化判断1及び多重化について上述の第1の実施の形態との相違点を重点的に説明すると、多重化順位3ESの多重化判断ステップC1Aで、パック選択回路71Aは、多重化順位3ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位3ESのバッファに存在しないことを確認した場合、多重化順位3ESの多重化判断1を終了し、分岐G以降の多重化順位4ESの多重化判断1に進む。
【0258】ステップC1で、パック選択回路71は、多重化対象ES量が多重化順位3ESのバッファに存在することを確認した場合は、第1の実施の形態で説明したステップC2〜C11の多重化処理を行う。
【0259】次に、分岐Gの処理である多重化順位4ESの多重化判断1及び多重化をフローチャートで示す図14を参照して多重化順位4ESの多重化判断1及び多重化について上述の多重化順位3ESの多重化判断1及び多重化との相違点を重点的に説明すると、この多重化順位4ESの多重化判断1及び多重化は、以下の説明を除き、多重化順位3ESを多重化順位4ESに、ステップC1〜C11の各々をステップG1〜G11の各々に、空き容量7,8,9を空き容量17,18,19にそれぞれ読み替えることにより、多重化順位3ESの多重化判断1及び多重化の動作と同一である。
【0260】まず、多重化順位4ESの多重化判断ステップG1で、パック選択回路71Aは、多重化順位3ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位4ESのバッファに存在しないことを確認した場合、多重化順位4ESの多重化判断1を終了し、分岐D以降の多重化順位1ESの多重化判断2の処理に進む。
【0261】ステップG1で、パック選択回路71Aは、多重化対象ES量が多重化順位4ESのバッファに存在することを確認した場合は、多重化順位3ESの多重化判断1及び多重化のステップC2〜C11と同様な処理であるステップG2〜G11の多重化処理を行う。
【0262】次に、分岐D及び分岐Eの多重化順位1ESの多重化判断2及び多重化、多重化順位2ESの多重化判断2及び多重化の処理は、パック選択回路71をパック選択回路71Aに、多重化回路72を多重化回路72Aにそれぞれ読み替える以外は、図6,図7にそれぞれ示した第1の実施の形態の処理と同様であるので説明を省略する。
【0263】次に、分岐Fの処理である多重化順位3ESの多重化判断2及び多重化をフローチャートで示す図15を参照して多重化順位3ESの多重化判断2及び多重化について上述の第1の実施の形態との相違点を重点的に説明すると、まず、多重化順位3ESの多重化判断ステップF1Aで、パック選択回路71Aは、多重化順位3ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位3ESのバッファに存在しないことを確認した場合、多重化順位3ESの多重化判断2を終了し、分岐Hの多重化順位4ESの多重化判断2に進む。
【0264】ステップF1で、多重化対象ES量が多重化順位3ESのバッファに存在することを確認した場合は、第1の実施の形態で説明したステップF12〜F17,F4〜F9の多重化処理を行う。
【0265】次に、分岐Hの処理である多重化順位4ESの多重化判断2及び多重化をフローチャートで示す図16を参照して多重化順位4ESの多重化判断2及び多重化について上述の多重化順位3ESの多重化判断2及び多重化との相違点を重点的に説明すると、この多重化順位4ESの多重化判断2及び多重化は、以下の説明を除き、ステップステップF12〜F16,F4〜F9の各々をステップH12〜H16,H4〜H9の各々に、多重化順位3ESを多重化順位4ESに、空き容量12を空き容量22に、仮SCR2を仮SCR3にそれぞれ読み替えることにより、多重化順位3ESの多重化判断2及び多重化の動作と同一である。
【0266】まず、多重化順位4ESの多重化判断ステップH1で、パック選択回路71Aは、多重化順位3ESのバッファ占有量確認回路に対し容量確認を行い、多重化対象ES量が多重化順位4ESのバッファに存在しないことを確認した場合、多重化順位4ESの多重化判断2を終了し、多重化処理を終了する。
【0267】ステップH1で、多重化対象ES量が多重化順位4ESのバッファに存在することを確認した場合は、ステップH12〜H18で、SCRを調整して多重化順位4ESのMBの空き容量を大きくしたときに、多重化順位1ES,多重化順位2ES及び多重化順位3ESの各々のMBがアンダフローしないかを確認する。
【0268】まず、MB最小値確認ステップH12で、多重化順位4ESのMBシミュレーション回路から最小値確認要求に対する応答としてPTS/DTSの最小値を受領する。この値を仮SCR3と記述する。
【0269】以下、ステップF13〜F16と同様の処理であるステップH13〜H16の処理を行う。
【0270】多重化順位2ES/多重化順位3ESのアンダフロー発生判断ステップH14/H16で、アンダフローが発生した場合、多重化順位4ESの多重化判断2を終了し、多重化処理を終了する。
【0271】ステップH16で、多重化順位2ESのMBのアンダフローが発生しなかった場合、SCR変更ステップH17で、仮SCR3をSCRとして多重化順位3ESのMBシミュレーション回路に出力する。多重化順位3ESのMBシミュレーション回路はSCRと保持しているDTS/PTSが同値及びSCRより小さいとき、上記MBの空き容量にDTS/PTSに関連するAU量を加算し、この加算結果と多重化順位2ESのMB容量とを比較し、加算結果の方が大きいとき上記MBのアンダフローをパック選択回路71Aに出力する。
【0272】アンダフロー発生判断ステップH18で、多重化順位3ESのMBのアンダフローが発生したかを判断し、アンダフローが発生した場合、多重化順位4ESの多重化判断2を終了し、多重化処理を終了する。
【0273】ステップH18で、多重化順位3ESのMBのアンダフローが発生しなかった場合、SCRを調整しても多重化順位1ES、多重化順位2ES及び多重化順位3ESのMBがアンダフローしないとして、ステップH19,H4に進み、SCRを調整して多重化順位4ESのMBの空き容量を大きくする。
【0274】SCR変更ステップH19で、仮SCR3をパック選択回路71Aが保持しているSCRに設定することにより変更すると共に、SCR生成回路79に出力する。各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0275】空き容量確認ステップH4で、パック選択回路71Aは、多重化順位3ESのMBシミュレーション回路から空き容量確認要求に対する応答として空き容量を受領する。この空き容量を空き容量22とする。
【0276】空き容量判断ステップH5で、パック選択回路71Aは、空き容量22が多重化順位4ESの多重化ES量より大きいかを判断し、空き容量22より多重化順位4ESの多重化ES量が大きい場合、ステップH12,H13,H14,H15,H16,H17,H18,H19,H4,H5を空き容量22が上記多重化ES量より大きくなるまで繰り返す。
【0277】ステップH5で、空き容量22が上記多重化ES量より大きい場合、多重化順位3ESの場合と同様の処理であるステップH6〜H9で、多重化順位4ESの多重化を行う。
【0278】多重化回路72Aは、入力ES、SCR、PTS、DTS、AU量、ピクチャタイプにから多重化を行い、PSを出力する。
【0279】各MBシミュレーション回路は、変更されたSCRの値に合わせ、保持値の変更を行う。
【0280】次に、本発明の第3の実施の形態を図1と共通の構成要素には共通の参照文字/数字を付して同様にブロックで示す図17を参照すると、この図に示す本実施の形態のプログラムストリーム多重化装置の前述の第1の実施の形態との相違点は、多重器7の代わりに、パック選択回路71とVB占有量確認回路73とVMBシミュレーション回路74とAB占有量確認回路75,77とAMBシミュレーション回路76,78とSCR生成回路79の各々の機能を適切なソフトウェアによりマイクロコントローラ80に置換した多重器7Bを備えることである。
【0281】マイクロコントローラ80は、第1の実施の形態で説明したプログラムストリーム多重化方法のアルゴリズムに対応する処理機能を持たせることにより、上記機能を実現する。
【0282】
【発明の効果】以上説明したように、本発明のプログラムストリーム多重化方法及び装置は、P−STDのビデオESを保持するVMB及び第1,第2のオーディオESの各々を保持する第1,第2のAMBの各々のメモリ占有量の状態を管理し、上記VMB及び上記第1,第2のAMBの空になる順番でビデオES及び第1,第2のオーディオESを多重化するよう多重化順位付け及び多重化判断を行い多重化の制御を行うパック選択回路を備え、メインバッファ(MB)の状態を管理し、複数のESを多重化するとき、MBが空になる順番で各ESの多重化を行うことにより、MB容量が同一のESを多重化しても、MBがアンダフローすることなく多重化を可能とするという効果がある。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013