(57)【特許請求の範囲】
【請求項１】
複数の符号化ストリームを多重化するデータ多重化装置において、
ビデオデータを含む複数の入力データをそれぞれ固定のビットレートで符号化して前記複数の符号化ストリームを生成する符号化手段と、
生成された前記複数の符号化ストリームのそれぞれから、すべて同一データ長のパケットデータを生成するパケットデータ生成手段と、
前記各パケットデータに対応する固定長のヘッダデータを生成するヘッダデータ生成手段と、
前記各符号化ストリームから生成された前記各パケットデータが現れる割合が前記各符号化ストリームの前記ビットレートの比と同じになるように、前記ヘッダデータ生成手段によって生成された前記ヘッダデータと、これに対応する、前記パケットデータ生成手段によって生成された前記パケットデータとを交互に多重化して、多重化ストリームを生成する多重化手段と、
を有し、
前記各符号化ストリームの前記ビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされ、
前記ヘッダデータ生成手段は、
復号化器におけるバッファへの前記各符号化ストリームの蓄積開始から復号化開始までのデータ蓄積時間をあらかじめ設定し、前記ヘッダデータのうち、アクセスユニットの先頭データが存在する前記パケットデータに対応する前記ヘッダデータに対して、前記データ蓄積時間と前記参照時刻情報とに基づいて当該アクセスユニットの再生時刻情報を記録するとともに、前記バッファの必要容量情報を記録し、
前記各符号化ストリームの前記ビットレートの比が整数にならない場合には、前記ビットレートの比が整数になる場合と比較して、前記バッファに前記パケットデータが１つ以上多く蓄積されるように前記データ蓄積時間を長く設定するとともに、前記バッファの必要容量情報の設定値を前記パケットデータのデータ長以上の大きさだけ大きくする、
ことを特徴とするデータ多重化装置。
【請求項２】
前記符号化ストリームとしてビデオストリームとオーディオストリームとが多重化される場合に、前記ヘッダデータ生成手段は、
前記各符号化ストリームの前記ビットレートの比が整数であるとき、ｎを０として次の式（１）〜（４）に従って求められた前記データ蓄積時間を設定し、
前記各符号化ストリームの前記ビットレートの比が整数にならないとき、ｎを１以上の整数として次の式（１）〜（４）に従って求められた前記データ蓄積時間を設定するとともに、前記バッファの必要容量情報の設定値をｎ個の前記パケットデータのデータ長だけ大きくすることを特徴とする請求項１記載のデータ多重化装置。
Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙ＝Ｄａｔａ＿Ｌｅｎｇｔｈ／Ｍｕｘ＿Ｒａｔｅ……（１）
Ｄａｔａ＿Ｌｅｎｇｔｈ＝Ｐａｃｋｅｔ＿Ｃｎｔ×Ｐａｃｋ＿Ｌｅｎｇｔｈ……（２）
Ｐａｃｋｅｔ＿Ｃｎｔ＝Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ＋Ａ＿Ｐａｃｋｅｔ＿Ｃｎｔ
……（３）
Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ＝ｎ＋Ｖｉｄｅｏ＿Ｒａｔｅ×Ｆｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙ／Ｐａｃｋｅｔ−ｄａｔａ＿Ｓｉｚｅ                                ……（４）
（ただし、
Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙ：前記データ蓄積時間、
Ｄａｔａ＿Ｌｅｎｇｔｈ：前記データ蓄積時間において前記バッファに格納される前記パケットデータおよび前記ヘッダデータの全体のデータ長、
Ｍｕｘ＿Ｒａｔｅ：前記多重化ストリームの転送レート、
Ｐａｃｋｅｔ＿Ｃｎｔ：前記データ蓄積時間において前記バッファに格納される前記パケットデータの総数、
Ｐａｃｋ＿Ｌｅｎｇｔｈ：前記パケットデータおよび前記ヘッダデータの総データ長、
Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ：前記データ蓄積時間において前記バッファに格納される、ビデオデータを含む前記パケットデータの総数、
Ａ＿Ｐａｃｋｅｔ＿Ｃｎｔ：前記データ蓄積時間において前記バッファに格納される、オーディオデータを含む前記パケットデータの総数、
Ｖｉｄｅｏ＿Ｒａｔｅ：前記ビデオストリームの転送レート、
Ｆｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙ：前記ビデオストリームにおける１番目のアクセスユニットの前記バッファに対する仮想蓄積時間、
Ｐａｃｋｅｔ−ｄａｔａ＿Ｓｉｚｅ：前記パケットデータのサイズ。）
【請求項３】
前記多重化ストリームはＭＰＥＧ−１規格に準拠し、前記ヘッダデータは、パックヘッダおよびパケットヘッダを含み、また必要に応じてシステムヘッダを含むことを特徴とする請求項１または２記載のデータ多重化装置。
【請求項４】
複数の符号化ストリームを多重化するデータ多重化方法において、
ビデオデータを含む複数の入力データをそれぞれ固定のビットレートで符号化して前記複数の符号化ストリームを生成するステップと、
生成された前記複数の符号化ストリームのそれぞれから、すべて同一データ長のパケットデータを生成するステップと、
前記各パケットデータに対応する固定長のヘッダデータを生成するステップと、
前記各符号化ストリームから生成された前記各パケットデータが現れる割合が前記各符号化ストリームの前記ビットレートの比と同じになるように、生成された前記ヘッダデータとこれに対応する前記パケットデータとを交互に多重化して、多重化ストリームを生成するステップと、
を含み、
前記各符号化ストリームの前記ビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされ、
前記ヘッダデータを生成するステップでは、
復号化器におけるバッファへの前記各符号化ストリームの蓄積開始から復号化開始までのデータ蓄積時間をあらかじめ設定し、前記ヘッダデータのうち、アクセスユニットの先頭データが存在する前記パケットデータに対応する前記ヘッダデータに対して、前記データ蓄積時間と前記参照時刻情報とに基づいて当該アクセスユニットの再生時刻情報を記録するとともに、前記バッファの必要容量情報を記録し、
前記各符号化ストリームの前記ビットレートの比が整数にならない場合には、前記ビットレートの比が整数になる場合と比較して、前記バッファに前記パケットデータが１つ以上多く蓄積されるように前記データ蓄積時間を長く設定するとともに、前記バッファの必要容量情報の設定値を前記パケットデータのデータ長以上の大きさだけ大きくする、
ことを特徴とするデータ多重化方法。
【請求項５】
前記符号化ストリームとしてビデオストリームとオーディオストリームとが多重化される場合に、前記ヘッダデータを生成するステップでは、
前記各符号化ストリームの前記ビットレートの比が整数であるとき、ｎを０として次の式（５）〜（８）に従って求められた前記データ蓄積時間を設定し、
前記各符号化ストリームの前記ビットレートの比が整数にならないとき、ｎを１以上の整数として次の式（５）〜（８）に従って求められた前記データ蓄積時間を設定するとともに、前記バッファの必要容量情報の設定値をｎ個の前記パケットデータのデータ長だけ大きくすることを特徴とする請求項４記載のデータ多重化方法。
Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙ＝Ｄａｔａ＿Ｌｅｎｇｔｈ／Ｍｕｘ＿Ｒａｔｅ……（５）
Ｄａｔａ＿Ｌｅｎｇｔｈ＝Ｐａｃｋｅｔ＿Ｃｎｔ×Ｐａｃｋ＿Ｌｅｎｇｔｈ……（６）
Ｐａｃｋｅｔ＿Ｃｎｔ＝Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ＋Ａ＿Ｐａｃｋｅｔ＿Ｃｎｔ
……（７）
Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ＝ｎ＋Ｖｉｄｅｏ＿Ｒａｔｅ×Ｆｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙ／Ｐａｃｋｅｔ−ｄａｔａ＿Ｓｉｚｅ                                ……（８）
（ただし、
Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙ：前記データ蓄積時間、
Ｄａｔａ＿Ｌｅｎｇｔｈ：前記データ蓄積時間において前記バッファに格納される前記パケットデータおよび前記ヘッダデータの全体のデータ長、
Ｍｕｘ＿Ｒａｔｅ：前記多重化ストリームの転送レート、
Ｐａｃｋｅｔ＿Ｃｎｔ：前記データ蓄積時間において前記バッファに格納される前記パケットデータの総数、
Ｐａｃｋ＿Ｌｅｎｇｔｈ：前記パケットデータおよび前記ヘッダデータの総データ長、
Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ：前記データ蓄積時間において前記バッファに格納される、ビデオデータを含む前記パケットデータの総数、
Ａ＿Ｐａｃｋｅｔ＿Ｃｎｔ：前記データ蓄積時間において前記バッファに格納される、オーディオデータを含む前記パケットデータの総数、
Ｖｉｄｅｏ＿Ｒａｔｅ：前記ビデオストリームの転送レート、
Ｆｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙ：前記ビデオストリームにおける１番目のアクセスユニットの前記バッファに対する仮想蓄積時間、
Ｐａｃｋｅｔ−ｄａｔａ＿Ｓｉｚｅ：前記パケットデータのサイズ。）
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の符号化ストリームを多重化するデータ多重化装置およびデータ多重化方法に関する。
【０００２】
【従来の技術】
ビデオデータおよびオーディオデータの符号化、およびこれらのデータの多重化に関する国際規格として、ＭＰＥＧ（Moving Picture Expert Group）規格が広く知られている。このうち、ＭＰＥＧ−１（ＩＳＯ１１１７２、ＩＳＯ：International Organization for Standardization）規格は、データ転送レート１．５ＭｂｐｓまでのＣＤ−ＲＯＭ等の蓄積メディアを使用した保存および再生を主な目的としており、例えばＶｉｄｅｏ−ＣＤのデータ規格に採用されている。
【０００３】
また、近年、短時間のビデオデータを例えばスティック型等の小型で取り外しが可能な半導体メモリ等に記録する機会が増えている。例えば、磁気テープの記録再生装置を具備するビデオカメラ装置（以下、カムコーダと呼称する）では、撮影した短時間のビデオデータを上記のような可搬型半導体メモリに記録させるという付加的な機能が設けられたものがある。このように短時間のビデオデータを記録する場合には、ビデオデータのエンコードおよび可搬型半導体メモリに対する記録処理のための専用の安価なＣＰＵを使用することが多い。
【０００４】
ここで、図１５に、ＭＰＥＧ−１規格を用いたデータの符号化・多重化処理および分離・復号化処理を行う従来の多重分離システムの構成例を示す。
図１５に示す多重分離システム１００は、ビデオデータおよびオーディオデータの符号化および多重化処理を行うデータ多重化装置１１０と、データ多重化装置１１０から出力された多重化ストリームが蓄積されるＤＳＭ（Digital Storage Media）１２０と、ＤＳＭ１２０から読み出した多重化ストリームに対する分離および復号化処理を行うデータ分離装置１３０によって構成される。
【０００５】
データ多重化装置１１０は、ビデオ信号の入力を受けて、符号化データの再生時における再生出力タイミングを示すＰＴＳ（Presentation Time Stamp）の値を生成するＰＴＳ生成部１１１と、ＭＰＥＧ−１規格に従ってビデオデータを符号化するビデオエンコーダ１１２と、オーディオ信号の入力を受けてＰＴＳを出力するＰＴＳ生成部１１３と、ＭＰＥＧ−１規格に従ってオーディオ信号を符号化するオーディオエンコーダ１１４と、符号化されたビデオ信号とオーディオ信号とを多重化する多重化処理部１１５と、多重化の際の基準同期信号となるＳＴＣ（System Time Clock）を発生させるシステムエンコーダ１１６によって構成される。
【０００６】
また、データ分離装置１３０は、入力された多重化ストリームの分離処理を行う分離処理部１３１と、分離されたビデオデータが一時記憶されるビデオＳＴＤ（System Target Decoder）バッファ１３２と、ビデオデータを復号化するビデオデコーダ１３３と、ＰＴＳとＳＴＣとの値を比較して出力タイミングを制御するＰＴＳ比較部１３４と、分離されたオーディオデータが一時記憶されるオーディオＳＴＤバッファ１３５と、オーディオデータを復号化するオーディオデコーダ１３６と、ＰＴＳとＳＴＣとの値を比較して出力タイミングを制御するＰＴＳ比較部１３７と、ＳＴＣを発生させるシステムデコーダ１３８によって構成される。
【０００７】
データ多重化装置１１０において、ビデオデータ用のＰＴＳ生成部１１１は、システムエンコーダ１１６からのＳＴＣを参照して、入力されたビデオ信号の各フレームに対する復号時のＰＴＳを生成し、各フレームのデータとともにビデオエンコーダ１１２に出力する。ビデオエンコーダ１１２は、ＰＴＳ生成部１１１からのビデオデータに対する圧縮・符号化処理を行い、生成した符号化ストリームを多重化処理部１１５に出力する。一方、オーディオデータ用のＰＴＳ生成部１１３は、入力されたオーディオ信号の各オーディオフレームに対するＰＴＳをシステムエンコーダ１１６からのＳＴＣを基準にして生成する。オーディオエンコーダ１１４は、ＰＴＳ生成部１１３からのオーディオデータに対する圧縮・符号化処理を行い、生成した符号化ストリームを多重化処理部１１５に出力する。
【０００８】
多重化処理部１１５は、ビデオエンコーダ１１２およびオーディオエンコーダ１１４からのビデオデータおよびオーディオデータによる各符号化ストリームを、システムエンコーダ１１６からのＳＴＣを基準にして多重化し、ＤＳＭ１２０に対して出力する。この多重化処理では、複数のパケットで構成されるパック単位でブロック化された、ＩＳＯ１１１７２−１の規定による多重化ストリームが生成され、パックおよびパケットの先頭部には所定のヘッダ情報が付与される。また、ビデオデータを含むパケットのヘッダには、復号化の際の復号タイミングを示すＤＴＳ（Decoding Time Stamp）が必要に応じて記述される。システムエンコーダ１１６は、これらのＰＴＳ、ＤＴＳの時刻基準として周波数９０ｋＨｚのＳＴＣを発生させる。
【０００９】
ＤＳＭ１２０は、例えばハードディスク、光ディスク、半導体メモリ等のデジタルデータに対する蓄積媒体であり、データ多重化装置１１０より出力された多重化ストリームを順次記憶し、また、データ分離装置１３０の要求に応じて、記憶した多重化ストリームをデータ分離装置１３０に対して順次出力する。
【００１０】
また、データ分離装置１３０において、分離処理部１３１は、システムデコーダ１３８からのＳＴＣに基づいて、ＤＳＭ１２０から出力された多重化ストリームをビデオおよびオーディオの各符号化ストリームに分離し、それぞれビデオＳＴＤバッファ１３２およびオーディオＳＴＤバッファ１３５に対して出力する。ビデオＳＴＤバッファ１３２は、分離されたビデオデータの符号化ストリームを一時記憶し、ビデオデコーダ１３３に対して順次出力する。ビデオデコーダ１３３は、入力された符号化ストリームに対する復号化および伸張処理を行い、元のビデオデータを復元する。ＰＴＳ比較部１３４は、ビデオデータの各ピクチャに付されたＰＴＳとシステムデコーダ１３８からのＳＴＣとを比較し、ＰＴＳとＳＴＣが一致したときに、対応するピクチャのデータを図示しないビデオＤＡＣ（Digital-Analog Converter）に出力する。
【００１１】
一方、オーディオＳＴＤバッファ１３５は、分離処理部１３１により分離されたオーディオデータの符号化ストリームを一時記憶し、オーディオデコーダ１３６に対して順次出力する。オーディオデコーダ１３６は、入力された符号化ストリームに対する復号化および伸張処理を行い、元のオーディオデータを復元する。ＰＴＳ比較部１３７は、復元されたオーディオデータの各オーディオフレームに付されたＰＴＳと、システムデコーダ１３８からのＳＴＣとが一致したときに、このオーディオフレームのデータを図示しないオーディオＤＡＣに出力する。システムデコーダ１３８は、ＰＴＳおよびＤＴＳの基準時刻情報として、９０ｋＨｚのＳＴＣを発生させる。
【００１２】
この分離多重システム１００では、データ多重化装置１１０内で生成されるＳＴＣに基づいてＰＴＳを多重化ストリームに付与し、データ分離装置１３０内で分離・復号化されたデータをＰＴＳの値に基づいて再生出力することにより、元のビデオおよびオーディオデータの同期を保ったまま正確に再生出力することが可能となっている。
【００１３】
ところで、上記のデータ多重化装置１１０において、ビデオおよびオーディオの多重化ストリームを生成する際には、データ分離装置１３０側のビデオＳＴＤバッファ１３２およびオーディオＳＴＤバッファ１３５がそれぞれオーバフローやアンダフローを起こさないように、各ストリームを多重化しなければならない。
【００１４】
ここで、図１６に、ＩＳＯ１１１７２−１規格の多重化ストリーム構成と各ＳＴＤバッファの蓄積状態の例について示す。
図１６（Ａ）に示すように、ＩＳＯ１１１７２−１において規定されたＭＰＥＧ−１の多重化ストリーム（システムストリーム）は、パック単位でブロック化されて、終端には終了コードが付される。また、パックの先頭部にはパックヘッダが設けられ、このパックヘッダには、パック開始コードを先頭に、データ分離装置１３０側のＳＴＣをデータ多重化装置１１０側の意図した値にセット・構成するための情報であるＳＣＲ（System Time Clock）や多重化レート（Ｍｕｘ＿Ｒａｔｅ）等が記述され、この後にさらにシステムヘッダが設けられることもある。
【００１５】
このパックヘッダまたはシステムヘッダの後には、図１６（Ｂ）に示すように、ビデオデータやオーディオデータ等が格納されたパケットが通常、複数配置される。各パケットの先頭部にはパケットヘッダが設けられ、このパケットヘッダには、パケット開始コードを先頭に、パケットに含まれるデータの種類を示すストリームＩＤや、パケット長、タイムスタンプ情報（ＰＴＳ、ＤＴＳ）等が記述される。そして、図１６（Ｃ）に示すように、この後に符号化されたビデオデータおよびオーディオデータ、パディングデータのいずれかを含むパケットデータが格納される。
【００１６】
また、図１６（Ｄ）および（Ｅ）は、このような多重化ストリームをデータ分離装置１３０において分離・復号化する場合の、ビデオＳＴＤバッファ１３２およびオーディオＳＴＤバッファ１３５におけるデータ蓄積状態の例を示している。パケットデータとして格納されていたビデオおよびオーディオの符号化データは、分離処理部１３１により分離されると、それぞれビデオＳＴＤバッファ１３２およびオーディオＳＴＤバッファ１３５に一時記憶される。各ＳＴＤバッファでは、通常、スタートアップ・ディレイと呼ばれる期間において、分離されたデータの蓄積のみが行われた後、ビデオデコーダ１３３およびオーディオデコーダ１３６における復号化の開始とともに、データの蓄積を順次行いながら各デコーダに対するデータの読み出しが行われる。
【００１７】
【発明が解決しようとする課題】
ところで、このような各ＳＴＤバッファにおけるデータ蓄積状態は、データ多重化装置１１０におけるビデオおよびオーディオの各符号化データのパケットへの割り当てやそのデータ量等の多重化処理時の状況によって決定されるが、この多重化処理時の状況によっては、図１６（Ｄ）に示すように、ビデオＳＴＤバッファ１３２の容量に対してデータがオーバフローしてしまったり、あるいは図１６（Ｅ）に示すように、オーディオＳＴＤバッファ１３５においてデータがアンダフローを起こすことにより、正確な復号化ができない場合がある。
【００１８】
このため、従来では、データ多重化装置１１０における多重化処理の際に、データ分離装置１３０側の各ＳＴＤバッファの蓄積状態を仮想的に逐次チェックしながら、オーバフローおよびアンダフローを起こさないように、パケット長を変化させたり、不必要なパディングデータを挿入するバッファ制御を行う必要があった。
【００１９】
このようなバッファ制御を行う従来のデータ多重化装置の例が、特開平８−９８１６０公報に開示されている。この公報によれば、多重化処理時において、仮想的な復号化バッファの占有量をシミュレートし、その占有量の大小に応じて各符号化ストリームを多重化することにより、復号化バッファの変動量が少なくなり、パディングデータを挿入することなく、オーバフローおよびアンダフローを防ぐことが可能としている。
【００２０】
しかし、このように多重化処理時において復号器側のバッファの蓄積状態を仮想的にチェックするバッファ制御は複雑な処理となるため、バッファ制御を伴う多重化処理を行うにはある程度の処理能力が必要となり、低速で安価なＣＰＵ等の制御装置を使用して処理することは困難であった。例えば、上述したカムコーダの例のように、可搬型半導体メモリ等への短時間のビデオデータの記録が行われる場合では、ビデオデータのＭＰＥＧ−１データへの符号化や記録処理を行うために専用のＣＰＵが使用される場合があるが、このＣＰＵはコスト削減のために安価で低速なものを使用することが多く、符号化・多重化処理の際の上記のバッファ制御を行うには、処理能力が足りない。
【００２１】
本発明はこのような課題に鑑みてなされたものであり、復号器側のバッファの蓄積容量に対する仮想的な制御を必要とせずに、簡易な処理によって複数の符号化ストリームを多重化することが可能なデータ多重化装置を提供することを目的とする。
【００２２】
また、本発明の他の目的は、復号器側のバッファの蓄積容量に対する仮想的な制御を必要とせずに、簡易な処理によって複数の符号化ストリームを多重化することが可能なデータ多重化方法を提供することである。
【００２３】
【課題を解決するための手段】
本発明では上記課題を解決するために、複数の符号化ストリームを多重化するデータ多重化装置において、ビデオデータを含む複数の入力データをそれぞれ固定のビットレートで符号化して前記複数の符号化ストリームを生成する符号化手段と、生成された前記複数の符号化ストリームのそれぞれから、すべて同一データ長のパケットデータを生成するパケットデータ生成手段と、前記各パケットデータに対応する固定長のヘッダデータを生成するヘッダデータ生成手段と、前記各符号化ストリームから生成された前記各パケットデータが現れる割合が前記各符号化ストリームの前記ビットレートの比と同じになるように、前記ヘッダデータ生成手段によって生成された前記ヘッダデータと、これに対応する、前記パケットデータ生成手段によって生成された前記パケットデータとを交互に多重化して、多重化ストリームを生成する多重化手段と、を有し、前記各符号化ストリームの前記ビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされ、前記ヘッダデータ生成手段は、復号化器におけるバッファへの前記各符号化ストリームの蓄積開始から復号化開始までのデータ蓄積時間をあらかじめ設定し、前記ヘッダデータのうち、アクセスユニットの先頭データが存在する前記パケットデータに対応する前記ヘッダデータに対して、前記データ蓄積時間と前記参照時刻情報とに基づいて当該アクセスユニットの再生時刻情報を記録するとともに、前記バッファの必要容量情報を記録し、前記各符号化ストリームの前記ビットレートの比が整数にならない場合には、前記ビットレートの比が整数になる場合と比較して、前記バッファに前記パケットデータが１つ以上多く蓄積されるように前記データ蓄積時間を長く設定するとともに、前記バッファの必要容量情報の設定値を前記パケットデータのデータ長以上の大きさだけ大きくする、ことを特徴とするデータ多重化装置が提供される。
【００２４】
このようなデータ多重化装置では、パケットデータ生成手段が複数の符号化ストリームから固定長のパケットデータを生成し、ヘッダデータ生成手段が固定長のヘッダデータを生成して、多重化手段がこのヘッダデータと対応するパケットデータとを交互に多重化する。この多重化の際には、各符号化ストリームのパケットデータが現れる割合が各符号化ストリームのビットレートの比と同じになるようになされる。また、各符号化ストリームのビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされる。さらに、ヘッダデータ生成手段は、復号化器におけるバッファへの各符号化ストリームの蓄積開始から復号化開始までのデータ蓄積時間をあらかじめ設定する。そして、ヘッダデータのうち、アクセスユニットの先頭データが存在するパケットデータに対応するヘッダデータに対して、データ蓄積時間と参照時刻情報とに基づいて当該アクセスユニットの再生時刻情報を記録するとともに、バッファの必要容量情報を記録する。また、各符号化ストリームのビットレートの比が整数にならない場合には、ビットレートの比が整数になる場合と比較して、バッファにパケットデータが１つ以上多く蓄積されるようにデータ蓄積時間を長く設定するとともに、バッファの必要容量情報の設定値をパケットデータのデータ長以上の大きさだけ大きくする。
【００２５】
また、本発明では、複数の符号化ストリームを多重化するデータ多重化方法において、ビデオデータを含む複数の入力データをそれぞれ固定のビットレートで符号化して前記複数の符号化ストリームを生成するステップと、生成された前記複数の符号化ストリームのそれぞれから、すべて同一データ長のパケットデータを生成するステップと、前記各パケットデータに対応する固定長のヘッダデータを生成するステップと、前記各符号化ストリームから生成された前記各パケットデータが現れる割合が前記各符号化ストリームの前記ビットレートの比と同じになるように、生成された前記ヘッダデータとこれに対応する前記パケットデータとを交互に多重化して、多重化ストリームを生成するステップと、を含み、前記各符号化ストリームの前記ビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされ、前記ヘッダデータを生成するステップでは、復号化器におけるバッファへの前記各符号化ストリームの蓄積開始から復号化開始までのデータ蓄積時間をあらかじめ設定し、前記ヘッダデータのうち、アクセスユニットの先頭データが存在する前記パケットデータに対応する前記ヘッダデータに対して、前記データ蓄積時間と前記参照時刻情報とに基づいて当該アクセスユニットの再生時刻情報を記録するとともに、前記バッファの必要容量情報を記録し、前記各符号化ストリームの前記ビットレートの比が整数にならない場合には、前記ビットレートの比が整数になる場合と比較して、前記バッファに前記パケットデータが１つ以上多く蓄積されるように前記データ蓄積時間を長く設定するとともに、前記バッファの必要容量情報の設定値を前記パケットデータのデータ長以上の大きさだけ大きくする、ことを特徴とするデータ多重化方法が提供される。
【００２６】
このようなデータ多重化方法では、複数の符号化ストリームから固定長のパケットデータが生成され、またこれらに対応する固定長のヘッダデータが生成されて、ヘッダデータとパケットデータとが交互に多重化される。この多重化の際には、各符号化ストリームのパケットデータが現れる割合が各符号化ストリームのビットレートの比と同じになるようになされる。また、各符号化ストリームのビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされる。さらに、ヘッダデータを生成する際には、復号化器におけるバッファへの各符号化ストリームの蓄積開始から復号化開始までのデータ蓄積時間をあらかじめ設定する。そして、ヘッダデータのうち、アクセスユニットの先頭データが存在するパケットデータに対応するヘッダデータに対して、データ蓄積時間と参照時刻情報とに基づいて当該アクセスユニットの再生時刻情報を記録するとともに、バッファの必要容量情報を記録する。また、各符号化ストリームのビットレートの比が整数にならない場合には、ビットレートの比が整数になる場合と比較して、バッファにパケットデータが１つ以上多く蓄積されるようにデータ蓄積時間を長く設定するとともに、バッファの必要容量情報の設定値をパケットデータのデータ長以上の大きさだけ大きくする。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１に、本発明のデータ多重化装置の構成例を示す。
【００２８】
図１に示すデータ多重化装置１は、ＭＰＥＧ−１規格に従って、ビデオデータおよびオーディオデータを符号化し、これらの符号化ストリーム（以下、それぞれビデオストリーム、オーディオストリームと呼称する）を多重化して、可搬型半導体メモリ２に対して多重化ストリームとして記録するための装置である。このデータ多重化装置１は、例えばカムコーダ等に設けられて、この付加機能として、数十秒といった短時間のビデオデータを可搬型半導体メモリ２にＭＰＥＧ−１データとして記憶させる機能を実現する。
【００２９】
このデータ多重化装置１は、入力されたビデオデータを符号化するビデオエンコーダ１１と、ビデオエンコーダ１１から出力されたビデオストリームを一時記憶するビデオ入力バッファ１２と、入力されたオーディオデータを符号化するオーディオエンコーダ１３と、オーディオエンコーダ１３から出力されたオーディオストリームを一時記憶するオーディオ入力バッファ１４と、各符号化ストリームが多重化されて一時記憶される出力バッファ１５と、各部の制御をつかさどるＣＰＵ１６によって構成される。また、ＣＰＵ１６と、ビデオ入力バッファ１２、オーディオ入力バッファ１４、出力バッファ１５および可搬型半導体メモリ２とは、ＣＰＵバス１７によって接続されて、データの送受信が行われる。
【００３０】
このデータ多重化装置１において、ビデオエンコーダ１１は、ＣＰＵ１６からの制御信号に応じて、入力されたビデオデータに対して固定ビットレートにより圧縮・符号化処理を行い、生成したビデオストリームをビデオ入力バッファ１２に対して順次出力する。ビデオ入力バッファ１２は、例えば半導体によって構成され、記憶したビデオストリームを、ＣＰＵ１６からの要求に応じて出力バッファ１５に出力する。
【００３１】
また、同様に、オーディオエンコーダ１３は、ＣＰＵ１６からの制御信号に応じて、入力されたオーディオデータに対して固定ビットレートにより圧縮・符号化処理を行い、生成したオーディオストリームをオーディオ入力バッファ１４に対して順次出力する。オーディオ入力バッファ１４は、例えば半導体によって構成され、記憶したオーディオストリームを、ＣＰＵ１６からの要求に応じて出力バッファ１５に出力する。
【００３２】
出力バッファ１５は、例えば半導体によって構成され、ＣＰＵ１６の制御に基づいて、ビデオ入力バッファ１２およびオーディオ入力バッファ１４から出力されたデータや、ＣＰＵ１６により生成されたヘッダ情報等を、指定されたアドレスに記憶し、また、これにより生成された多重化ストリームを可搬型半導体メモリ２に出力する。
【００３３】
ＣＰＵ１６は、例えばカムコーダのコントローラ等の外部からの信号記録開始・終了の要求を受けて、ビデオエンコーダ１１およびオーディオエンコーダ１３に対して制御信号を出力し、各エンコーダにおける符号化処理の開始・停止タイミングを制御する。また、ＣＰＵバス１７を通じて、ビデオ入力バッファ１２およびオーディオ入力バッファ１４に記憶された各符号化ストリームのデータを読み出すとともに、ヘッダ情報を生成して、これらを出力バッファ１５の指定アドレスに対して記憶させることにより多重化ストリームを生成する。さらに、ＣＰＵ１６は、出力バッファ１５の蓄積量が満杯になると、この多重化ストリームを読み出して可搬型半導体メモリ２に順次記憶させる。
【００３４】
可搬型半導体メモリ２は、例えばスティック型等の小型の外部記録媒体であり、図示しない読み出し・書き込みスロットに挿入されて、出力バッファ１５上に生成された多重化ストリームを記憶する。また、再生時には、この読み出し・書き込みスロットに挿入されたまま、あるいは、この読み出し・書き込みスロットから引き抜かれて、図示しないデータ分離装置に対して記憶データを順次出力する。
【００３５】
このデータ多重化装置１では、ビデオエンコーダ１１およびオーディオエンコーダ１３によって圧縮・符号化されたビデオおよびオーディオストリームを、それぞれビデオ入力バッファ１２およびオーディオ入力バッファ１４に一時記憶した後、これらのデータを読み出して、ヘッダ情報とともに出力バッファ１５の指定領域に記録していくことで多重化処理が行われる。この多重化処理の際には、復号器側に設けられるＳＴＤバッファがオーバフローおよびアンダフローを起こさないように、ビデオおよびオーディオストリームのデータのパケットに対する割り当てを行う必要がある。
【００３６】
また、データ多重化装置１は、上述したように短時間のビデオデータを可搬型半導体メモリ２に記憶させる機能を実現する装置であることから、ＣＰＵ１６は、ビデオデータおよびオーディオデータの符号化処理と半導体メモリ１８への書き込み処理とを行うための専用に設けられており、コスト削減のために低速で安価なものとなっている。
【００３７】
このため、本発明のデータ多重化装置１では、多重化ストリームを構成するパックやパケットのヘッダ伝送レートを一定にし、また、パックが復号器側に到着する間隔（ＳＣＲ）を一定にすることにより、復号器側のＳＴＤバッファの蓄積量に対するシミュレーションを行うことなく、簡単な処理によって多重化を行い、多重化処理におけるＣＰＵ１６の負荷を軽減する。
【００３８】
ここで、図２に、ビデオおよびオーディオの各パケットの割り当て方法を概念的に示し、本発明で行われる多重化処理方法の概略を説明する。
まず、復号器側のＳＴＤバッファがオーバフローおよびアンダフローを起こさないように簡単に多重化するためには、ビデオおよびオーディオの各符号化ストリームのビットレートの比で、各符号化ストリームのデータを多重化ストリーム中に割り当てればよい。
【００３９】
例えば、ビデオストリームのビットレート（以下、ビデオレートと略称する）が１２８ｋｂｐｓ、オーディオストリームのビットレート（以下、オーディオレートと略称する）が３２ｋｂｐｓの場合、ビデオレートとオーディオレートの比は４：１となる。このとき、図２（Ａ）に示すように、各符号化ストリームを一定のデータ量のパケットデータとして区切り、ビデオパケット４つとオーディオパケット１つを交互に多重化する。この多重化されたストリーム全体の転送レートＲｍｕｘ１は、各符号化ストリームのビットレートの和で表され、Ｒｍｕｘ１＝１２８＋３２＝１６０（ｋｂｐｓ）となる。従って、パックやパケットに対するヘッダが付与されなければ、この多重化ストリームはビデオとオーディオのデータが一定の割合で割り当てられることになり、長期的には復号器側のＳＴＤバッファの蓄積量は増加も減少もしない。
【００４０】
また、パックおよびパケットのヘッダ領域の転送レートも一定とし、このヘッダ領域を独立した第３のストリームのように扱って、図２（Ｂ）に示すように、ビデオ、オーディオおよびヘッダの３つのストリームを多重化するイメージでとらえると、このときの多重化ストリーム全体の転送レートＲｍｕｘ２は、３つのストリームの各転送レートの和で表すことができる。従って、図２（Ａ）の場合と同様に、生成された多重化ストリームは各データが一定の割合で割り当てられることになる。また、このときヘッダ領域およびパケットデータによってなるパックの長さが一定であるため、パックヘッダに記録されるＳＣＲの値は一定となる。
【００４１】
以上のようなパケットの割り当て処理では、生成された多重化ストリーム内にビデオおよびオーディオの各データが常に一定割合で含まれることから、復号器側のＳＴＤバッファには単位時間内に一定以上の量のデータが入力することがなく、オーバフローは発生しない。しかし、実際にはビデオおよびオーディオのアクセスユニットごとのデータ量は一定でないため、ＳＴＤバッファに対する入力データ量は常に一定とはならず、アンダフローを防ぐことはできない。
【００４２】
従って、ＳＴＤバッファのアンダフローを防ぐためには、図２（Ｃ）に示すように、復号器側において、入力されたデータをあらかじめＳＴＤバッファにある程度蓄積したあと、順次読み出して復号化を開始するようにする。このように、復号化の開始以前にあらかじめデータを蓄積するために要する時間はスタートアップ・ディレイと呼ばれる。このスタートアップ・ディレイ（Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙ）の値は、以下の式（１）〜（４）によって求められる。
【００４３】
【数１】
0004608831.tif 000002
【００４４】
ただし、スタートアップ・ディレイの範囲に配置されるビデオパケットの数をＶ＿Ｐａｃｋｅｔ＿Ｃｎｔ、ビデオレートをＶｉｄｅｏ＿Ｒａｔｅ（単位：ｂｐｓ）、ビデオストリームにおける１番目のアクセスユニット（ピクチャ）のＳＴＤバッファに対する仮想蓄積時間をＦｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙ（単位：ｓ）（ＶＢＶ：Video Buffering Verifier）、１パケットにおけるパケットデータのサイズをＰａｃｋｅｔ−ｄａｔａ＿Ｓｉｚｅ（単位：ｂｉｔ）、スタートアップ・ディレイの範囲に配置されるパケット総数をＰａｃｋｅｔ＿Ｃｎｔ、この範囲に配置されるオーディオパケットの数をＡ＿Ｐａｃｋｅｔ＿Ｃｎｔ、この範囲のビデオパケット、オーディオパケットおよびヘッダデータを含む全体のデータ長をＤａｔａ＿Ｌｅｎｇｔｈ（単位：ｂｉｔ）、１パックの長さをＰａｃｋ＿Ｌｅｎｇｔｈ（単位：ｂｉｔ）、多重化ストリームの転送レート（多重化レート）をＭｕｘ＿Ｒａｔｅ（単位：ｂｐｓ）としている。
【００４５】
ここで、Ｆｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙの値は、ビデオレートごとに実験値としてあらかじめ設定することができる。従って、上記のデータ多重化装置１では、スタートアップ・ディレイの値を多重化処理に先立ってあらかじめ設定することによって、多重化処理中にＳＴＤバッファの蓄積量をシミュレーションすることなく、ＳＴＤバッファにおけるオーバフローおよびアンダフローを防止することが可能となる。
【００４６】
なお、ビデオストリームおよびオーディオストリームのパケットデータのうち、上記のように設定されたスタートアップ・ディレイの期間中にＳＴＤバッファに蓄積されるデータを含むパケットデータについては、これらに対応するヘッダデータを含む多重化ストリームの転送時間がスタートアップ・ディレイの値以下となる必要があることから、多重化されるビデオパケットとオーディオパケットの比がこれらのビットレートの比と一致しない場合があり得る。
【００４７】
次に、上記のデータ多重化装置１において、多重化ストリーム内に生成されるパックおよびパケットの構成について説明する。図３は、ビデオおよびオーディオの各符号化ストリームの先頭のデータを含むパックの構成例を示し、図４は、各符号化ストリームの２つ目以降のパックおよびパディングパックの構成例を示す。
【００４８】
上述したように、データ多重化装置１では、出力バッファ１５内に生成される多重化ストリーム中のパックの長さを固定し、パック中のパックヘッダ、システムヘッダおよびパケットヘッダが記録されるヘッダ領域のデータ長、およびビデオ、オーディオストリームの各データが格納されるパケットデータの長さもすべて一定値とする。図３および図４では、例として、パックの長さを２０４８バイト、ヘッダ領域の長さを４８バイト、パケットデータの長さを２０００バイトとしている。
【００４９】
まず、パックヘッダの長さは、ＩＳＯ１１１７２−１の規定により、すべてのパックにおいて先頭からの１２バイトが割り当てられる。パックヘッダには、パック開始コードやＳＣＲ、多重化レートが記録される。
【００５０】
次に、パケットデータ内にビデオストリームの先頭が含まれる場合は、図３（Ａ）に示すように、システムヘッダの領域となる。このシステムヘッダは１８バイトの固定長とされ、この中にはビデオストリームのビットレートや、基本ストリーム情報としてビデオストリームヘッダおよびオーディオストリームヘッダ等が記録される。さらに次は、１８バイトの固定長のパケットヘッダの領域となり、ストリームＩＤやパケット長、復号器側のＳＴＤバッファに対する情報、およびタイムスタンプとしてＰＴＳ、ＤＴＳの双方が記録される。そして、続く領域にはパケットデータとして、ビデオストリームの先頭からのデータが２０００バイト分だけ格納される。
【００５１】
次に、パケットデータ内にオーディオストリームの先頭が含まれる場合は、図３（Ｂ）に示すように、１２バイトのパックヘッダの後、システムヘッダが記録されないため、この分の１８バイトのパディングデータ（１６進数でＦＦ）が格納される。そして、この後が１８バイトのパケットヘッダの領域となり、ストリームＩＤや復号器側のＳＴＤバッファに対する情報等とともに、タイムスタンプとしてＰＴＳのみが記録される。なお、パケットヘッダ内において、ＤＴＳの記憶領域にはスタッフィングバイトが挿入される。続く領域には、パケットデータとしてオーディオストリームの先頭からのデータが２０００バイト分だけ格納される。
【００５２】
次に、図４（Ａ）、（Ｂ）および（Ｃ）には、ビデオおよびオーディオストリームの先頭のデータを含まない、各符号化ストリームについて多重化ストリーム内に現れる２つ目以降のパックが示されている。これらのパックにはシステムヘッダが含まれないので、先頭から１２バイトのパックヘッダの後、１８バイト分のパディングデータ（１６進数でＦＦ）が格納される。
【００５３】
また、続く１８バイトがパケットヘッダの領域で、さらに２０００バイトのパケットデータの領域となるが、パケットデータ内にビデオストリームのＰピクチャまたはＩピクチャの先頭データが存在する場合は、図４（Ａ）に示すように、ＰＴＳおよびＤＴＳの双方がパケットヘッダ内に記録される。また、パケットデータ内のデータがビデオストリームのＢピクチャの先頭データ、またはオーディオストリームのオーディオフレームの先頭データである場合は、図４（Ｂ）に示すように、パケットヘッダ内にはタイムスタンプとしてＰＴＳのみが記録される。さらに、パケットデータにビデオおよびオーディオのアクセスユニットの先頭データが含まれない場合は、図４（Ｃ）に示すようにタイムスタンプは記録されない。
【００５４】
また、図４（Ｄ）に示すパディングパックは、１２バイトのパックヘッダの後、システムヘッダ、パケットヘッダおよびパケットデータが記録されず、代わりにパディングデータのみが記録されている。このパディングパックは、各符号化ストリームの多重化ストリームにおける終端位置付近に挿入される場合がある。
【００５５】
ここで、図５にこのようなパディングパックの多重化ストリームへの挿入例を示す。
図５（Ａ）および（Ｂ）では、多重化ストリームの終端部におけるパック配置例を示している。上述したように、ビデオパケットを含むパック（以下、ビデオパックと呼称する）とオーディオパケットを含むパック（以下、オーディオパックと呼称する）は一定の比で多重化されるが、例えば多重化処理中に出力バッファ１５が満杯となったときや、あるいは外部より多重化処理の停止命令がＣＰＵ１６に対して与えられたときには、本来ビデオパックまたはオーディオパックが挿入される位置に、符号化ストリームの符号化状況によって必要なパックが供給されない場合があり得る。
【００５６】
図５（Ａ）の例では、ビデオパックの間に１つ分のオーディオパックが挿入されるはずのスペース５００ａができており、また図５（Ｂ）の例では、最後のオーディオパックの挿入位置までの間にビデオパックの供給が止まってビデオパック３つ分のスペース５００ｂができている。これらのスペース５００ａおよび５００ｂのように必要なパックが生成されない場合に、図４（Ｄ）に示すパディングデータが挿入されることにより、必要な多重化レートを保ったまま多重化ストリームの生成を終了することができる。
【００５７】
以上のようなパック構成をとることにより、多重化ストリーム内のパックおよびパケットに対するヘッダの伝送レートが一定となり、ＳＣＲが一定の値をとることになる。このため、上記のデータ多重化装置１では、ＳＣＲの値が整数となるように、ビデオストリームおよびオーディオストリームのビットレートを設定する必要がある。
【００５８】
ここで、図６は、ＳＣＲの値が整数となる場合のビデオストリームのビットレートの例を示すグラフである。オーディオストリームのビットレートを３２ｋｂｐｓとしたとき、ＳＣＲの値が整数となるビデオストリームのビットレートと、このときのビデオとオーディオのビットストリームの比（以下、Ｖ／Ａ比と呼称する）との関係は図６のようになる。このＶ／Ａ比が整数となる場合には、ビデオパックとオーディオパックが多重化ストリームに格納される割合を、常に一定に保つことができる。表１に、このようにＶ／Ａ比が整数となる場合のビットレートおよびＳＣＲの値の例を示す。
【００５９】
【表１】
0004608831.tif 000003
【００６０】
この表１では、例として図３および図４に示したパック構造と同様に、ヘッダのデータ長（Ｈｅａｄｅｒ＿Ｌｅｎｇｔｈ）を４８ｂｙｔｅｓ、パケットのデータ長を２０００ｂｙｔｅｓとしており、従って１パックのデータ長は２０４８ｂｙｔｅｓとなる。また、オーディオレートを３２ｋｂｐｓとしている。ＳＣＲの値は、１パックのデータ長を多重化レートで割った値を９０ｋＨｚのクロック数で表すことにより求められる。
【００６１】
次に、パック（パケットデータおよびヘッダデータ）の生成処理および多重化処理についてフローチャートを用いて詳述する。まず、図７に、出力バッファ１５に対するビデオパックの生成処理および多重化処理のフローチャートを示す。
【００６２】
図７では、ビデオエンコーダ１１によって符号化され、ビデオ入力バッファ１２に一時的に記憶されたビデオストリームを、ＣＰＵ１６の制御により、ビデオ入力バッファ１２から順次読み出すとともに、ヘッダデータを生成して、これらを出力バッファ１５に記憶しながら多重化する処理について示している。ステップＳ７０１において、ビデオ入力バッファ１２に記録されたビデオストリームをパケットデータ化するサブルーチンが実行される。このサブルーチンでは、ビデオ入力バッファ１２の記録データを１バイトずつ読み出して出力バッファ１５に書き込み、２０００バイトのパケットデータを生成する。なお、このサブルーチンの内容は図８において詳述する。
【００６３】
ステップＳ７０２において、パックおよびパケットのヘッダデータを生成して、出力バッファ１５に書き込むサブルーチンが実行される。このサブルーチンでは、ステップＳ７０１の処理で生成されたパケットデータにピクチャの先頭データが含まれていた場合に、このピクチャに対するＰＴＳの値と、必要に応じてＤＴＳの値とを計算し、ヘッダデータ中に記録する。なお、このサブルーチンについては、図１２において詳述する。
【００６４】
ステップＳ７０３において、次のパケットデータを記憶させるための出力バッファ１５におけるアドレスを計算する。具体的には、次のパックにはビデオデータおよびオーディオデータのいずれが格納されるかを判断し、この判断に応じてヘッダの記憶領域、あるいは１パック分の記憶領域とヘッダの記憶領域の分だけ、記憶するアドレスに対するポインタを進める。
【００６５】
なお、このステップＳ７０３では、ビデオパックとオーディオパックの挿入比率がビデオレートとオーディオレートの比となるように、出力バッファ１５の記憶アドレスが設定されるが、上述したように、設定されたスタートアップ・ディレイの期間中にＳＴＤバッファに蓄積されるデータを含むビデオパックについては、挿入比率をビットレートに関係なく調整する必要があることから、このステップＳ７０３におけるアドレス計算によってこのような挿入比率の調整が行われる。
【００６６】
次に、図８に、図７のステップＳ７０１において示した、ビデオストリームをパケットデータ化する処理のフローチャートを示す。
ステップＳ８０１において、パケットデータに記憶させたビデオデータのバイト数を示すＮの値に０を代入する。ステップＳ８０２において、例えば、出力バッファ１５が満杯になる、あるいは、ＣＰＵ１６が外部からの終了要求を受けて符号化および多重化処理を中止する等により、多重化ストリームの記録が終了されたか否かが判断され、終了しない場合はステップＳ８０３に進み、終了する場合はステップＳ８０６に進む。
【００６７】
ステップＳ８０３において、ビデオ入力バッファ１２から１バイト分のデータを取得して出力バッファに書き込むサブルーチンが実行される。このサブルーチンでは、ビデオストリームを１バイトずつ出力バッファ１５に書き込むとともに、ビデオストリーム中のアクセスユニットすなわちピクチャの先頭部を検出してこのピクチャタイプを取得する。なお、このサブルーチンについては図９において詳述する。
【００６８】
ステップＳ８０４において、ビデオデータのバイト数Ｎに、取得したデータのバイト数ｎ（ここでは常に１）を加算する。ステップＳ８０５において、ビデオデータのバイト数Ｎが２０００に達したか否かを判断し、達していない場合はステップＳ８０２に戻り、達した場合は図７のステップＳ７０２に進む。
【００６９】
また、ステップＳ８０２において記録終了と判断されると、ステップＳ８０６において、生成された多重化ストリームに対する終了処理が行われる。この終了処理では、図４（Ｄ）で示したパディングパックの挿入処理や、多重化ストリームの終了コードの挿入を行い、生成された多重化ストリームを可搬型半導体メモリ２に対して記憶させる。
【００７０】
次に、図９に、図８のステップＳ８０３で示した１バイト分のデータの取得および書き込み処理のフローチャートを示す。
ビデオ入力バッファ１２から読み出された１バイト分のデータは、一旦出力バッファ１５の具備する８バイトのシフトレジスタに順次記憶され、このシフトレジスタから溢れた１バイト分のデータが出力バッファ１５に書き込まれる。また、このシフトレジスタの記憶データより、ピクチャについてのデータを取得する。
【００７１】
ステップＳ９０１において、取得したデータのバイト数ｎに０を代入する。ステップＳ９０２において、ビデオ入力バッファ１２からのデータの取得が終了されたか否かが判断され、終了していない場合はステップＳ９０３に進み、終了した場合はステップＳ９０８に進む。ステップＳ９０３において、ビデオ入力バッファ１２にデータがあるか否かが判断され、ある場合はステップＳ９０４に進み、ない場合は図８のステップＳ８０４に進む。
【００７２】
ステップＳ９０４において、シフトレジスタの先頭の４バイト分のデータを参照し、ピクチャ開始コード（Ｐｉｃｔｕｒｅ＿Ｓｔａｒｔ＿Ｃｏｄｅ）のデータ（１６進数で０００００１００）が存在するか否かが判断されて、存在する場合はステップＳ９０５に進み、存在しない場合はステップＳ９０６に進む。
【００７３】
ステップＳ９０５において、このときシフトレジスタのピクチャ開始コードから１０ビット分後に存在する３ビットのピクチャタイプ（Ｐｉｃｔｕｒｅ＿Ｃｏｄｉｎｇ＿Ｔｙｐｅ）の値を取得する。このピクチャタイプでは、２進数で「００１」の場合はＩピクチャ、０１０の場合はＰピクチャ、０１１の場合はＢピクチャと判断される。なお、ここで取得されたピクチャタイプは、後述する図１２のＰＴＳ、ＤＴＳの計算処理、およびヘッダデータの書き込み処理において使用される。
【００７４】
ステップＳ９０６において、ビデオ入力バッファ１２から１バイト分のデータを読み出す。ステップＳ９０７において、読み出した１バイト分のデータをシフトレジスタに書き込み、溢れた１バイト分のデータを出力バッファ１５の所定アドレスに書き込む。またこのとき、取得したデータのバイト数ｎに１を代入する。
【００７５】
次に、図７のステップＳ７０２におけるヘッダデータの書き込み処理について説明する。まず、ヘッダデータに記録されるＰＴＳおよびＤＴＳの計算方法について説明する。
【００７６】
図７のステップＳ７０１において生成されたパケットデータに、ピクチャの先頭データすなわちピクチャ開始コードの先頭データが存在する場合は、このパケットデータに対応するヘッダデータに、先頭データから開始されるピクチャについてのタイムスタンプを記録する必要がある。ここで、このピクチャがＢピクチャの場合は、ＰＴＳとＤＴＳは同一となるためＰＴＳのみ記録されるが、ＩピクチャまたはＰピクチャの場合は、ＰＴＳはＤＴＳから、ＩピクチャまたはＰピクチャが現れる周期の分だけ遅くなる。また、上述したように、多重化ストリームの復号化時では、スタートアップ・ディレイの期間だけＳＴＤバッファにデータを蓄積させた後、復号化を開始するため、復号化の開始時刻は多重化ストリームの先頭データがＳＴＤバッファに転送されてからスタートアップ・ディレイ分だけ遅延された時刻となる。
【００７７】
以上のことから、ビデオストリームの先頭からｍ番目のアクセスユニット（ピクチャ）の先頭データがパケットデータ内に存在するとき、このピクチャがＩピクチャまたはＰピクチャである場合のＰＴＳ（ＩＰ）ｍおよびＤＴＳ（ＩＰ）ｍはそれぞれ次の式（５）および（６）のように表される。また、このピクチャがＢピクチャである場合のＰＴＳ（Ｂ）ｍは式（７）のように表される。
【００７８】
【数２】
0004608831.tif 000004
【００７９】
ただし、ＳＣＰＲ（System Clock Frequency Per Picture Rate）は、ビデオストリームのフレーム周期を９０ｋＨｚ基準のＳＴＣで計数した値であり、フレーム周期が２９．９７ＨｚであるＮＴＳＣ（National Television Standards Committee）規格の場合はＳＣＰＲ＝３００３、２５ＨｚであるＰＡＬ（Phase Alternation by Line）規格の場合はＳＣＰＲ＝３６００となる。また、Ｍはビデオストリーム中に現れるＩピクチャまたはＰピクチャの周期（ピクチャ数）を表している。さらに、式（５）〜（７）において、Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙの値は９０ｋＨｚのクロック数で表される。
【００８０】
ここで、図１０に記録するタイムスタンプが異なる場合のパケットデータの構成例を示す。
図１０（Ａ）は、パケットデータ内に、ビデオストリームの先頭からｍ番目のＩピクチャまたはＰピクチャのピクチャ開始コードの先頭部が１つだけ存在する場合の構成例を示しており、この場合はパックヘッダには、式（５）および（６）に示すＰＴＳ（ＩＰ）ｍおよびＤＴＳ（ＩＰ）ｍの双方の値が記録される。
【００８１】
また、図１０（Ｂ）は、パケットデータ内に先頭からｍ番目のピクチャの中間部のデータのみが存在し、ピクチャ開始コードの先頭部が存在しない場合の構成例を示しており、この場合はパックヘッダにＰＴＳおよびＤＴＳの双方とも記録されない。
【００８２】
さらに、図１０（Ｃ）は、パケットデータ内に先頭からｍ番目のＢピクチャのピクチャ開始コードの先頭部が１つだけ存在する場合の構成例を示しており、この場合は式（７）に示すＰＴＳ（Ｂ）ｍの値のみがパックヘッダに記録される。
【００８３】
次に、図１１に、タイムスタンプの付与方法に注意が必要な場合のパケットデータの構成例を示す。
図１１（Ａ）は、パケットデータ内にピクチャの先頭部が複数存在する場合の構成例を示しており、先頭からｍ番目および（ｍ＋１）番目の２つのピクチャのピクチャ開始コードの先頭部が１つのパケットデータ内に存在している。この場合は、パケットデータ内において先頭部が最初に存在する方のピクチャについてのタイムスタンプをパックヘッダに記録する。
【００８４】
また、図１１（Ｂ）は、ピクチャ開始コードのデータ領域が（ｍ−１）番目からｍ番目の２つのパケットデータにまたがる場合の構成例を示しており、この場合は、ｍ番目のピクチャのタイムスタンプを、ピクチャ開始コードの先頭部が存在する方のパックヘッダに記録する。
【００８５】
図７のステップＳ７０２の処理では、以上の法則に従って、ステップＳ７０１において生成されたパケットデータに応じたタイムスタンプの値が計算、対応するヘッダデータの領域に記録される。ここで、図１２に、このステップＳ７０２で示した、パックおよびパケットのヘッダデータを生成して出力バッファ１５に書き込む処理のフローチャートを示す。
【００８６】
ステップＳ１２０１において、図７のステップＳ７０１の処理により生成されたパケットデータに、ピクチャ開始コードの先頭部が存在するか否かを判断し、存在する場合はステップＳ１２０２に進み、存在しない場合はステップＳ１２０７に進む。ステップＳ１２０２において、生成されたパケットデータが多重化ストリーム内の最初のパックであるか否かを判断し、そうである場合はステップＳ１２０３に進み、そうでない場合はステップＳ１２０４に進む。
【００８７】
ステップＳ１２０３において、多重化ストリーム内で最初に現れるビデオパックであると判断されたことから、このときのパケットデータ中にはＩピクチャの先頭部が最初に現れるので、パケットデータは図１０（Ａ）と同様の構成となる。従って、ステップＳ１２０３では、式（５）および（６）を用いて、パケットデータに含まれる先頭ピクチャのＰＴＳおよびＤＴＳを計算する。
【００８８】
また、ステップＳ１２０４において、図９のステップＳ９０５の処理によって取得された、パケットデータ中に先頭部（ピクチャ開始コードの先頭データ）が最初に現れるピクチャのピクチャタイプを参照し、このピクチャがＩピクチャまたはＰピクチャの場合はステップＳ１２０５に進み、Ｂピクチャの場合はステップＳ１２０６に進む。
【００８９】
ステップＳ１２０５において、多重化ストリーム内に現れる２番目以降のビデオパックで、かつパケットデータ中に先頭部が最初に現れるピクチャがＩピクチャまたはＰピクチャであると判断されたことから、パケットデータは図１０（Ａ）と同様の構成となり、式（５）および（６）を用いてこのピクチャのＰＴＳおよびＤＴＳを計算する。また、ステップＳ１２０６において、多重化ストリーム内の２番目以降のビデオパックで、かつ先頭部が最初に現れるのがＢピクチャであると判断されたことから、パケットデータは図１０（Ｃ）と同様の構成となり、式（７）を用いてこのピクチャのＰＴＳおよびＤＴＳを計算する。
【００９０】
一方、ステップＳ１２０７において、パケットデータ内にピクチャの先頭部が含まれないと判断されたことから、パケットデータは図１０（Ｂ）と同様の構成となり、タイムスタンプの計算を行わない。
【００９１】
ステップＳ１２０８において、算出されたタイムスタンプを含むヘッダデータを、出力バッファ１５中の所定のアドレスに書き込む。具体的には、出力バッファ１５に記憶された対応するパケットデータに対して、その直前の４８バイトの領域に、生成したヘッダデータを書き込む。これにより、ヘッダデータとパケットデータによりなるビデオパックが出力バッファ１５中に構成される。
【００９２】
次に、図１３に、出力バッファ１５に対するオーディオパックの生成処理および多重化処理のフローチャートを示す。
オーディオパックの場合でも、上記のビデオパックの場合と同様に、オーディオ入力バッファ１４に記憶されたビデオストリームのデータを１バイトずつ読み出してパケットデータを生成するとともに、ヘッダデータを生成して、パケットデータとヘッダデータを出力バッファ１５の所定記録位置に書き込むことにより、多重化する。
【００９３】
ステップＳ１３０１において、図８のステップＳ８０２と同様に、例えば、出力バッファ１５が満杯になる、あるいは、ＣＰＵ１６が外部からの終了要求を受けて符号化および多重化処理を中止する等により、多重化ストリームの記録が終了されたか否かが判断され、終了しない場合はステップＳ１３０２に進み、終了する場合はステップＳ１３０６に進む。
【００９４】
ステップＳ１３０２において、ヘッダデータに記録するタイムスタンプ（ＰＴＳ）を計算する。オーディオストリームの場合、１つのアクセスユニットのデータ長は固定されているため、このデータ長とパケットデータのデータ長が設定されると、パケットデータの先頭からの番号を参照することにより対応するヘッダデータに記録するＰＴＳを一意に計算することが可能となる。なお、この計算方法については、図１４において詳述する。
【００９５】
ステップＳ１３０３において、オーディオ入力バッファ１４に記録されたオーディオストリームのデータを、１バイトずつ読み出して出力バッファ１５の所定アドレスに書き込み、２０００バイトのパケットデータを生成する。ステップＳ１３０４において、計算されたＰＴＳを含むヘッダデータを生成し、出力バッファ１５における、対応するパケットデータの直前の４８バイト分の領域に書き込む。これにより、ヘッダデータおよびパケットデータによってなるオーディオパックが出力バッファ１５上に生成される。
【００９６】
ステップＳ１３０５において、次に生成するオーディオパケットに対する出力バッファ１５上の記録アドレスを計算する。具体的には、次のパックにはビデオデータおよびオーディオデータのいずれが格納されるかを判断し、この判断に応じてヘッダの記憶領域、あるいは１パック分の記憶領域とヘッダの記憶領域の分だけ、記憶するアドレスに対するポインタを進める。なお、この処理では、前述したビデオパックの場合と同様に、設定されたスタートアップ・ディレイの期間中に相当するオーディオパックについては、挿入比率をＶ／Ａ比に関係なく必要に応じて調整する。
【００９７】
また、ステップＳ１３０１において記録終了と判断された場合には、ステップＳ１３０６において、生成された多重化ストリームに対する終了処理が行われる。この終了処理では、パディングパックの挿入処理や、多重化ストリームの終了コードの挿入を行い、生成された多重化ストリームを可搬型半導体メモリ２に対して記憶させる。
【００９８】
次に、図１４は、オーディオパケット内のアクセスユニットの配置例を示し、この図１４を用いて、オーディオパックに対するＰＴＳの計算方法を説明する。
図１４の例では、オーディオパケットのデータ長を２０００バイト、１つのオーディオアクセスユニット（以下、オーディオＡＵと略称する）のデータ長を１４４バイトとする。この場合、パケットデータ中のオーディオＡＵの配置パターンは、図１４（Ａ）に示すように、パケットデータの先頭部にオーディオＡＵの先頭データが配置される場合と、図１４（Ｂ）に示すように、パケットデータの先頭部および終端部の双方にオーディオＡＵの中間データが配置される場合と、図１４（Ｃ）に示すように、パケットデータの終端部にオーディオＡＵの終端データが配置される場合とに大別される。
【００９９】
このうち、図１４（Ｂ）および（Ｃ）のような場合には、オーディオパケット中に先頭データが最初に現れるオーディオＡＵについてのＰＴＳを計算し、ヘッダデータに記録する。例えば、このようなオーディオＡＵに対するオーディオストリームの先頭からの通し番号をｐ（ただし、ｐ：０、１、２・・・）とすると、図１４（Ｂ）のオーディオパケットでは、ｐ＝１４のオーディオＡＵに対するＰＴＳを計算し、また図１４（Ｃ）のオーディオパケットでは、ｐ＝１１１のオーディオＡＵに対するＰＴＳを計算する。
【０１００】
また、各オーディオＡＵに対するＰＴＳは、復号開始までのＳＴＤバッファへのデータ蓄積時間であるスタートアップ・ディレイに、ビデオストリームの最初のＢピクチャに同期させるためにＳＣＰＲを加算した値に、１オーディオフレームの再生時間を順次加算することにより求められる。ここで、プレゼンテーションユニット（復号されたオーディオフレーム）のデータ長を１１５２ビット、オーディオのサンプリングレートを３２ｋｂｐｓとすると、１オーディオフレームの再生時間は、１１５２／３２０００＝３６（ｍｓ）となる。
【０１０１】
従って、図１４の例において、オーディオパックに記録されるＰＴＳの値は、次の式（８）で表される。なお、この式（８）において、Ｓｔａｒｔ−ｕｐ＿Ｄｅｌａｙの値は９０ｋＨｚのクロック数で表されている。
【０１０２】
【数３】
0004608831.tif 000005
【０１０３】
以上の処理によって、データ多重化装置１では、多重化ストリームの生成の際に、同一データ長であるビデオパケットとオーディオパケットが現れる割合がＶ／Ａ比となるように多重化して、パックやヘッダデータの伝送レートを一定にするとともに、ビデオパケットおよびオーディオパケットを復号開始時刻までにＳＴＤバッファに蓄積するスタートアップ・ディレイの時間をあらかじめ設定して、多重化時においてヘッダデータに記録するタイムスタンプの値に反映させることにより、ＳＴＤバッファのオーバフローおよびアンダフローが生じないように多重化することが可能となる。従って、生成された多重化ストリームの復号化時におけるＳＴＤバッファの占有量をシミュレートしながら多重化処理を行う必要がなくなり、ＣＰＵ１６の負担が軽減されるので、低速で安価なＣＰＵ１６を使用して、精度の高い多重化ストリームを生成することが可能となる。
【０１０４】
なお、上記の実施の形態例では、１パック中に１つのパケットデータのみを割り当てていたが、ビデオパケットおよびオーディオパケットの現れる割合がＶ／Ａ比となる範囲内では、１パックに複数のパケットを格納するようにしてもよい。この場合、すべてのパック長が一定で、１パック中に格納されるパケットデータはビデオまたはオーディオのいずれか１種類のみとし、この条件でＳＣＲの値が整数となるビデオレートおよびオーディオレートを選択する。
【０１０５】
また、スタートアップ・ディレイの値は上述した式（１）〜（４）により算出するが、実際にはこのように算出されたスタートアップ・ディレイ値を使用した場合には、復号時に必要とされるＳＴＤバッファの容量を大きくする必要が生じることがある。
【０１０６】
例えば、ビデオレートを１６０ｋｂｐｓ、オーディオレートを３２ｋｂｐｓ、パケット長を２０００バイト、事前の実験により設定したＦｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙの値を０．５０６秒とすると、式（１）より、スタートアップ・ディレイの範囲に配置されるビデオパケットの数（Ｖ＿Ｐａｃｋｅｔ＿Ｃｎｔ）は「５．０６」となる。これにより、スタートアップ・ディレイの範囲で最低限必要なビデオパケット数は「６」となるが、「５．０６」を「６」に切り上げたことにより、計算上求められるＳＴＤバッファの容量ではオーバフローが生じてしまうので、この場合には、ＳＴＤバッファの容量を増加させる。具体的には、図１２におけるヘッダデータ生成処理の際に、システムヘッダ領域およびパケットヘッダ領域に記録するＳＴＤバッファの必要容量の値を変更する。
【０１０７】
また、上記の実施の形態例では、Ｖ／Ａ比が整数となる場合について説明したが、このＶ／Ａ比が整数にならない場合でも、ＳＣＲが整数となれば本発明を適用することができる。ここで、表２に、Ｖ／Ａ比が整数とならない場合のビデオレートおよびオーディオレートの適用例を示す。また、表３に、このような場合に事前の実験に基づいて設定されるＦｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙの値の例を示す。なお、ここではパケットデータを２０００バイト、ヘッダデータを４８バイトとしている。
【０１０８】
【表２】
0004608831.tif 000006
【０１０９】
【表３】
0004608831.tif 000007
【０１１０】
例えば、ビデオレートを１１６８ｋｂｐｓ、オーディオレートを３２ｋｂｐｓとした場合では、Ｖ／Ａ比は７３：２となり、多重化の際にパケットデータを、ビデオ３７個、オーディオ１個、ビデオ３６個、オーディオ１個・・・という配列を行うことにより、多重化ストリーム内のビデオデータ、オーディオデータの割合を一定に保つことが可能となる。
【０１１１】
従ってこの場合、表３よりＦｉｒｓｔ＿ＶＢＶ＿Ｄｅｌａｙを０．２０１２とすると、式（１）よりＶ＿Ｐａｃｋｅｔ＿Ｃｎｔは「１４．７」となり、スタートアップ・ディレイの範囲で最低限必要なビデオパケット数は「１５」となる。この数値の切り上げ分は、上述したＶ／Ａ比が整数の場合と同様に、ＳＴＤバッファの容量を増加させることにより対応する。また、式（２）〜（４）により、スタートアップ・ディレイの値は０．２１３秒となる。
【０１１２】
しかし、このようにＶ／Ａ比が整数でない場合、ＳＴＤバッファにはビデオデータが常に一定の割合で蓄積されないため、ＳＴＤバッファがアンダフローする可能性がある。このアンダフローを防止するためには、スタートアップ・ディレイの量を増加させて、復号化前にＳＴＤバッファにあらかじめ蓄積させるデータ量を増加させる。例えば、スタートアップ・ディレイの範囲のビデオパケット数を「１５」から「１６」に増やすことにより、スタートアップ・ディレイの値は０．２２６秒となる。表３に示した「１ｓｔ＿Ｖ」の値は、このようにスタートアップ・ディレイの範囲に含まれるビデオパケット数を増やした場合について示している。また、スタートアップ・ディレイ内のビデオパケット数の増加に伴い、ヘッダデータに記憶させるＳＴＤバッファの必要量の値もさらに増加させる。これによって、Ｖ／Ａ比が整数でない場合でも、ＣＰＵ１６の負荷を大きく高めることなく、ＳＴＤバッファのオーバフローおよびアンダフローを防止することが可能となる。
【０１１３】
【発明の効果】
以上説明したように、本発明のデータ多重化装置では、固定長のパケットデータと固定長のヘッダデータとが、多重化手段により交互に多重化され、この多重化の際に、各符号化ストリームのパケットデータが現れる割合が各符号化ストリームのビットレートの比と同じになるようになされるので、パックやヘッダデータの伝送レートが一定で、かつ単位時間内に伝送される各符号化ストリームのデータ量が一定になり、生成された多重化ストリームの復号化時におけるバッファのオーバフローが防止される。また、各符号化ストリームのビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされる。そして、ヘッダデータ生成手段は、各符号化ストリームのビットレートの比が整数にならない場合には、ビットレートの比が整数になる場合と比較して、バッファにパケットデータが１つ以上多く蓄積されるようにデータ蓄積時間を長く設定するとともに、バッファの必要容量情報の設定値をパケットデータのデータ長以上の大きさだけ大きくする。これにより、バッファがアンダフローする可能性が抑制される。
【０１１４】
また、本発明のデータ多重化方法では、固定長のパケットデータと固定長のヘッダデータとが交互に多重化され、この多重化の際に、各符号化ストリームのパケットデータが現れる割合が各符号化ストリームのビットレートの比と同じになるようになされるので、パックやヘッダデータの伝送レートが一定で、かつ単位時間内に伝送される各符号化ストリームのデータ量が一定になり、生成された多重化ストリームの復号化時におけるバッファのオーバフローが防止される。また、各符号化ストリームのビットレートは、復号化されたデータの再生時刻の基準となる時刻基準値を復元するために復号化器によって参照される参照時刻情報が、整数となるような値とされる。そして、ヘッダデータを生成する際に、各符号化ストリームのビットレートの比が整数にならない場合には、ビットレートの比が整数になる場合と比較して、バッファにパケットデータが１つ以上多く蓄積されるようにデータ蓄積時間を長く設定するとともに、バッファの必要容量情報の設定値をパケットデータのデータ長以上の大きさだけ大きくする。これにより、バッファがアンダフローする可能性が抑制される。
【図面の簡単な説明】
【図１】本発明のデータ多重化装置の構成例を示す図である。
【図２】ビデオおよびオーディオの各パケットの割り当て方法を概念的に示す図である。
【図３】ビデオおよびオーディオの各符号化ストリームの先頭のデータを含むパックの構成例を示す図である。
【図４】ビデオおよびオーディオの各符号化ストリームの２つ目以降のパックおよびパディングパックの構成例を示す図である。
【図５】パディングパックの多重化ストリームへの挿入例を示す図である。
【図６】ＳＣＲの値が整数となる場合のビデオストリームのビットレートの例を示すグラフである。
【図７】出力バッファに対するビデオデータのパック生成処理および多重化処理を示すフローチャートである。
【図８】ビデオストリームをパケットデータ化する処理を示すフローチャートである。
【図９】１バイト分のデータの取得および出力バッファへの書き込み処理を示すフローチャートである。
【図１０】記録するタイムスタンプが異なる場合のパケットデータの構成例を示す図である。
【図１１】タイムスタンプの付与方法に注意が必要な場合のパケットデータの構成例を示す図である。
【図１２】パックおよびパケットのヘッダデータを生成して出力バッファに書き込む処理を示すフローチャートである。
【図１３】出力バッファに対するオーディオパックの生成処理および多重化処理を示すフローチャートである。
【図１４】オーディオパケット内のアクセスユニットの配置例を示す図である。
【図１５】ＭＰＥＧ−１規格を用いた従来の多重分離システムの構成例を示す図である。
【図１６】ＩＳＯ１１１７２−１規格のストリーム構成と各ＳＴＤバッファの蓄積状態の例について示す図である。
【符号の説明】
１……データ多重化装置、２……可搬型半導体メモリ、１１……ビデオエンコーダ、１２……ビデオ入力バッファ、１３……オーディオエンコーダ、１４……オーディオ入力バッファ、１５……出力バッファ、１６……ＣＰＵ、１７……ＣＰＵバス
【図１】
0004608831.tif 000008
【図２】
0004608831.tif 000009
【図３】
0004608831.tif 000010
【図４】
0004608831.tif 000011
【図５】
0004608831.tif 000012
【図６】
0004608831.tif 000013
【図７】
0004608831.tif 000014
【図８】
0004608831.tif 000015
【図９】
0004608831.tif 000016
【図１０】
0004608831.tif 000017
【図１１】
0004608831.tif 000018
【図１２】
0004608831.tif 000019
【図１３】
0004608831.tif 000020
【図１４】
0004608831.tif 000021
【図１５】
0004608831.tif 000022
【図１６】
0004608831.tif 000023