(57)【要約】【課題】  パケット生成処理を高速化する。【解決手段】  多重化制御部１の仮パケット作成手段１２は、ビデオＥＳ情報４２とオーディオＥＳ情報５２を解析し、ヘッダ部データを設定し、情報部が空白の仮パケットを作成して仮パケット記憶手段２２に格納するとともに、情報部に設定するエレメンタリーストリームのデータ転送命令を作成して命令群記憶手段１３に格納する。スケジューリング手段１１は、所定の数の仮パケットが作成されると、多重化処理部２の転送手段２１に対し、仮パケットのデータ転送命令と、命令群記憶手段１３に格納されたデータ転送命令を出力する。転送手段２１は、仮パケット記憶手段２２の仮パケットをストリームバッファ３に転送し、続いてストリームバッファ３の情報部領域にＥＳのデータを転送する。【選択図】  図１
2006115199.tif 000002
【特許請求の範囲】
【請求項１】
順次バッファに格納されるエレメンタリーストリームから少なくともヘッダ部と情報部を備える多重化パケットを生成してストリームバッファに設定する多重化パケット生成装置において、
前記ストリームバッファに転送する仮パケットを一時格納する仮パケット記憶手段と、データ転送命令に従って、指示されたデータ転送元領域のデータをデータ転送先領域へ転送する転送手段と、を有する多重化処理部と、
前記エレメンタリーストリームのデータの転送を指示するデータ転送命令を一時格納する命令群記憶手段と、アクセス単位ごとに前記エレメンタリーストリームを解析し、ヘッダ部データを設定した仮パケットを作成して前記仮パケット記憶手段に格納し、前記情報部に設定される前記エレメンタリーストリームのデータを前記ストリームバッファの指定領域に転送するデータ転送命令を作成して前記命令群記憶手段に格納する仮パケット作成手段と、前記仮パケット作成手段により所定の数の前記仮パケットが作成されたら、前記仮パケット記憶手段に格納された前記仮パケットを前記ストリームバッファへ転送するデータ転送命令と、前記命令群記憶手段に格納された前記データ転送命令を前記転送手段に出力するスケジューリング手段と、を有する多重化制御部と、
を具備することを特徴とする多重化パケット生成装置。
【請求項２】
前記多重化制御部の前記仮パケット作成手段は、前記エレメンタリーストリームの解析結果に基づき、前記ヘッダ部データに続けて前記情報部のデータを格納する領域を確保した仮パケットを作成することを特徴とする請求項１記載の多重化パケット生成装置。
【請求項３】
前記多重化処理部の前記転送手段は、前記データ転送命令をキューとして登録するキュー用バッファを備え、前記バッファに書き込まれた前記データ転送命令を順番に従って処理し、
前記多重化制御部の前記スケジューリング手段は、前記仮パケット記憶手段の格納データの前記データ転送命令と前記命令群記憶手段に格納された前記データ転送命令を前記キュー用バッファに登録する、
ことを特徴とする請求項１記載の多重化パケット生成装置。
【請求項４】
前記多重化処理部の前記転送手段は、前記データ転送命令を解釈し、前記データ転送命令によって指示されたデータ転送元装置からデータ転送先装置へ前記多重化制御部を介さずに直接データを転送することを特徴とする請求項１記載の多重化パケット生成装置。
【請求項５】
前記エレメンタリーストリームは、エンコーダでＭＰＥＧ２（Moving Picture Experts Group 2）の規定に基づいて、ビデオやオーディオのベースバンド信号を符号化して生成されており、
前記多重化制御部の前記仮パケット作成手段は、ＭＰＥＧ２の規定に基づいて、ＰＥＳ（Packetized Elementary Stream）ヘッダ部、ＴＳ（Transport Stream）ヘッダ部およびアダプテーションフィールド部の各データを設定し、ペイロード部を空白にした前記仮パケットを前記仮パケット記憶手段に格納し、前記ペイロード部に設定される前記エレメンタリーストリームのデータを前記ストリームバッファに転送するデータ転送命令を作成して前記命令群記憶手段に格納する、
ことを特徴とする請求項１記載の多重化パケット生成装置。
【請求項６】
順次バッファに格納されるエレメンタリーストリームから少なくともヘッダ部と情報部を備える多重化パケットを生成してストリームバッファに設定する多重化パケット生成方法において、
多重化制御部の仮パケット作成手段が、アクセス単位ごとに前記エレメンタリーストリームを解析し、ヘッダ部データを設定した仮パケットを作成して仮パケット記憶手段に格納し、前記情報部に設定される前記エレメンタリーストリームのデータを格納する前記ストリームバッファの指定領域に転送するデータ転送命令を作成して命令群記憶手段に格納し、
前記多重化制御部のスケジューリング手段が、前記仮パケット作成手段によって所定の数の前記仮パケットが作成されたら、前記仮パケット記憶手段に格納された前記仮パケットを前記ストリームバッファへ転送するデータ転送命令と、前記命令群記憶手段に格納された前記データ転送命令を出力し、
多重化処理部の転送手段が、スケジューリング手段によって出力された前記データ転送命令を取得し、前記データ転送命令に従って前記仮パケット記憶手段に格納された前記仮パケットを前記ストリームバッファに転送し、前記命令群記憶手段の前記データ転送命令に従って、指示された前記多重化パケットの情報部に相当する前記ストリームバッファの指定領域に前記エレメンタリーストリームを転送する、
ことを特徴とする多重化パケット生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は多重化パケット生成装置および多重化パケット生成方法に関し、特に順次バッファに格納されるエレメンタリーストリームから少なくともヘッダ部と情報部を備える多重化パケットを生成してストリームバッファに設定する多重化パケット生成装置および多重化パケット生成方法に関する。
【背景技術】
【０００２】
従来、多重化パケットを生成する多重化パケット生成装置では、エンコーダがビデオやオーディオなどのベースバンド信号を符号化したＥＳ（Elementary Stream）を多重化器によってパケット化している。多重化器は、パケット生成のスケジューリングを行う制御部と、制御部の作成する処理命令を受け、その処理命令に従って指定されたデータを転送し、パケットを生成する処理部とを有する。通常、制御部は、プログラムに記述された手順に従って処理を実行するプロセッサとプログラムを記憶した記憶媒体で構成され、処理部は、データの高速転送を行うハードウェアによって構成される。
【０００３】
パケット生成をスケジューリングする制御部の処理手順について説明する。図８は、従来の多重化パケット生成処理の手順を示したフローチャートである。なお、実際のパケット生成では、オーディオＥＳとビデオＥＳそれぞれ個別に対応処理が行われるが、詳細な個々の手順は省略し、共通する処理手順について説明する。
【０００４】
パケット生成は、ＥＳのアクセス単位ごとに行われる。まず、ビデオエンコーダから出力されたビデオＥＳ情報と、オーディオエンコーダから出力されたオーディオＥＳ情報に関するアクセス単位のＡＵ（Access Unit）情報があるかどうかが判定される（ステップＳ１０１）。ない場合は、揃うまで待つ。存在する場合は、パケット作成を実行するかどうかを判断し（ステップＳ１０２）、実行しない場合は、ステップＳ１０１に戻る。実行であれば、ＴＳヘッダを作成し（ステップＳ１０３）、フレームの先頭であるかどうかを判定し（ステップＳ１０４）、先頭であればＰＥＳヘッダを作成する（ステップＳ１０５）。これまでの手順でヘッダが作成されるので、作成されたヘッダをストリームバッファへ置くコマンドを作成し（ステップＳ１０６）、処理部に対してヘッダを置くコマンドを出力する（ステップＳ１０７）。これにより、処理部が、ステップＳ１０６で作成されたヘッダをストリームバッファへ転送する。続いて、制御部は、ペイロードをストリームバッファに置くコマンドを作成し（ステップＳ１０８）、処理部に対してこのペイロードを置くコマンドを出力する（ステップＳ１０９）。これにより、処理部が、エンコーダが生成したＥＳがペイロードとしてストリームバッファへ転送され、ＰＥＳが生成される。
【０００５】
図９は、従来の多重化パケット生成処理の手順によるパケット生成の一例を示した図である。（Ａ）はヘッダを置くコマンド実行後、（Ｂ）はペイロードを置くコマンド実行後、（Ｃ）は次のヘッダを置くコマンド実行後のストリームバッファの状態を示している。
【０００６】
上記説明の手順のステップＳ１０７によって、アクセス単位、ｎ＿ｖ＃０１に関し、ヘッダを置くコマンドを受けた処理部は、（Ａ）に示したように制御部の生成したＴＳヘッダ（ＴＨ）９０１、ＰＥＳヘッダ（ＰＨ）９０２をストリームバッファ９００に設定する。次に、ステップＳ１０９によりペイロードを置くコマンドを受けると、ＥＳが格納される記憶装置から該当するＥＳを探し出し、バッファに転送し、（Ｂ）に示したようにペイロード９０３を設定する。こうして、１アクセス単位のパケットが作成される。続いて、次のアクセス単位、ｎ＿ｖ＃０２に関し、ヘッダを置くコマンドを受けた処理部は、（Ｃ）に示したように制御部の生成したＴＳヘッダ（ＴＨ）９０４をバッファに設定する。
【０００７】
従来、制御部では、このような処理手順を実行する場合、処理部に対してコマンドを出力した後、コマンドに応じた処理が終了されるまで待ってから次の指示を行っていた。そこで、制御部であるＣＰＵ（Central Processing Unit）が、メモリに格納されたＥＳ情報を取り込む指示を行ってからその処理が終了するまで待つ時間を不要にすることによって、ＣＰＵの処理能力の有効活用を図る多重化パケット生成装置が提案されている（たとえば、特許文献１参照）。
【特許文献１】特開２００１−３４５７７０号公報（段落番号〔００１７〕〜〔００２５〕、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の多重化パケット生成では、パケット生成処理を高速にすることが難しいという問題点がある。
従来の多重化パケット生成装置では、多重化のスケジューリングを行うソフトウェアによって、１パケットごとにヘッダを置くコマンドとペイロードを置くコマンドが作成され、このコマンドを受けたハードウェアによってデータがストリームバッファに転送され、パケットが生成されていた。
【０００９】
データ転送処理を行うハードウェアがコマンドを実行する場合、まず、コマンドの解釈が行われ、解釈に基づいてその処理が行われる。たとえば、ＤＭＡ（Direct Memory Access）転送の場合、転送元アドレス、転送先アドレスおよび転送サイズが指定されると、ＣＰＵを介せずに指定領域のデータを転送する。このようにハードウェアによってデータ転送を行う場合、全体の処理時間に対してコマンド解釈を行う時間の占める割合が高いことが知られている。すなわち、一般に、同じサイズのデータを何回かに分けて転送を行う場合、一度に転送するサイズを大きくしてコマンドの出力回数を減らす方が、転送サイズを小さくしてコマンドの出力回数を多くする場合に比べて、処理時間が短くなり、効率的なデータ転送を行うことができる。
【００１０】
しかしながら、従来の多重化パケット生成では、図８および図９に示したように、１アクセス単位ごとにヘッダを置くコマンドとペイロードを置くコマンドが発行され、それぞれのデータのストリームバッファへの転送がハードウェアによって行われている。このため、パケット数が多くなると、パケット数に比例してハードウェアに発行される処理命令が多くなる。生成するパケット数がＮＰ個の場合、ハードウェアは、２ＮＰ個の処理命令を処理しなければならない。このように、転送処理が１パケットごとに行われているため、処理命令の解釈に要する時間の占める割合が高くなり、データ転送効率が落ちてしまうという問題点がある。
【００１１】
特に、ＴＳの多重化の場合、ＰＳ（Program Stream）の多重化に比べて作成するパケット数が非常に多くなる上、小さなデータの単位で切替えながら書き込むため、ハードウェアの命令を解釈するためのオーバーヘッドは、非常に大きなものになる。
【００１２】
また、ハードウェアによる処理終了までの待ち時間を不要にするパケット生成装置では、ＣＰＵの処理能力の有効活用は図れるが、命令解釈のオーバーヘッドを削減し、ハードウェアによるデータ転送効率を向上させることはできない。
【００１３】
本発明はこのような点に鑑みてなされたものであり、ストリームバッファへの転送処理の効率を向上させ、パケット生成処理を高速化する多重化パケット生成装置および多重化パケット生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明では上記課題を解決するために、仮パケット記憶手段と転送手段を有する多重化処理部と、命令群記憶手段、仮パケット作成手段およびスケジューリング手段を有する多重化制御部を具備する多重化パケット装置が提供される。多重化制御部と多重化処理部により、順次バッファに格納されるエレメンタリーストリームから少なくともヘッダ部と情報部を備える多重化パケットが生成され、ストリームバッファに設定される。
【００１５】
多重化処理部の仮パケット記憶手段は、ストリームバッファに転送する仮パケットを一時格納する。転送手段は、データ転送命令に従って、指定されたデータ転送元領域のデータをデータ転送先領域に転送する。多重化制御部の命令群記憶手段は、多重化処理部の転送手段に出力される、エレメンタリーストリームの転送を指示するデータ転送命令群を一時格納する。仮パケット作成手段は、順次バッファに格納されるエレメンタリーストリームをアクセス単位で取り込んで解析し、ヘッダ部データのみを設定した仮パケットを作成し、仮パケット記憶手段に格納する。また、情報部に設定されるエレメンタリーストリームを格納するストリームバッファの指定領域に転送するデータ転送命令を作成して命令群記憶手段に格納する。スケジューリング手段は、所定の数の仮パケットが作成されたら、仮パケット記憶手段に格納された仮パケットをストリームバッファへ転送するデータ転送命令と、命令群記憶手段に格納されたデータ転送命令を多重化処理部の転送手段へ出力する。
【００１６】
このような多重化パケット生成装置によれば、多重化制御部は、順次バッファに格納されるエレメンタリーストリームを取り込み、多重化パケットの生成処理を制御する。多重化制御部の仮パケット作成手段は、エレメンタリーストリームをアクセス単位で取り込み解析し、多重化パケットのヘッダ部データを作成し、ヘッダ部データのみが設定された仮パケットを作成して仮パケット記憶手段に格納する。また、解析結果に基づき、この多重化パケットの情報部に設定されるエレメンタリーストリームのデータをストリームバッファに転送するデータ転送命令を作成して命令群記憶手段に格納する。こうして、仮パケット記憶手段には複数の仮パケットが格納され、命令群記憶手段には対応する多重化パケットの情報部に関するデータ転送命令群が設定される。スケジューリング手段は、所定の数の仮パケットが生成されると、仮パケット記憶手段に格納された仮パケットのストリームバッファへのデータ転送命令と、命令群記憶手段に格納されているデータ転送命令を転送手段に出力する。転送手段は、データ転送命令を解釈し、仮パケット記憶手段に格納された仮パケットのストリームバッファへの転送処理を実行し、続いて、情報部にエレメンタリーストリームを転送する転送処理を順次実行することによって、ストリームバッファ上に多重化パケットを生成する。
【００１７】
また、上記課題を解決するために、順次バッファに格納されるエレメンタリーストリームから少なくともヘッダ部と情報部を備える多重化パケットを生成してストリームバッファに設定する多重化パケット生成方法において、多重化制御部の仮パケット作成手段が、アクセス単位ごとに前記エレメンタリーストリームを解析し、ヘッダ部データを設定した仮パケットを作成して仮パケット記憶手段に格納し、前記情報部に設定される前記エレメンタリーストリームのデータを格納する前記ストリームバッファの指定領域に転送するデータ転送命令を作成して命令群記憶手段に格納し、多重化制御部のスケジューリング手段が、前記仮パケット作成手段によって所定の数の前記仮パケットが作成されたら、前記仮パケット記憶手段に格納された前記仮パケットを前記ストリームバッファへ転送するデータ転送命令と、前記命令群記憶手段に格納された前記データ転送命令を出力し、多重化処理部の転送手段が、スケジューリング手段によって出力された前記データ転送命令を取得し、前記データ転送命令に従って前記仮パケット記憶手段に格納された前記仮パケットを前記ストリームバッファに転送し、前記命令群記憶手段の前記データ転送命令に従って、指示された前記多重化パケットの情報部に相当する前記ストリームバッファの指定領域に前記エレメンタリーストリームを転送する、ことを特徴とする多重化パケット生成方法、が提供される。
【００１８】
このような多重化パケット生成方法では、入力されるアクセス単位のエレメンタリーストリームの解析によって多重化パケットのヘッダ部データが設定された仮パケットが作成され、仮パケット記憶手段に格納される。さらに、多重化パケットの情報部に設定されるエレメンタリーストリームをストリームバッファの指定領域に転送するデータ転送命令が作成され、命令群記憶手段に格納される。所定の数の仮パケットが作成されたら、仮パケット記憶手段に格納された仮パケットをストリームバッファに転送するデータ転送命令が出力され、続いて、命令群記憶手段に格納されたデータ転送命令が読み出されて順次出力される。データ転送命令を取得した転送手段はデータ転送命令に従って、仮パケット記憶手段の仮パケットをストリームバッファに転送し、ストリームバッファの情報部にエレメンタリーストリームを転送し、ストリームバッファ上に多重化パケットを作成する。
【発明の効果】
【００１９】
本発明の多重化パケット生成装置および多重化パケット生成方法では、複数のパケットを生成する処理を１つの処理単位として、多重化制御部が多重化パケットのヘッダ部データを作成し、ヘッダ部データのみが設定された仮のパケットを作成して一時保存しておき、１つの処理単位分の処理が終了したら、一時保存されている仮のパケットを一括して転送処理を行うハードウェアによって書き込む。その後、対応した情報部にデータを書き込むことによって、多重化パケットをストリームバッファ上に生成する。このように本発明によれば、転送処理を行うハードウェアが実行するデータ転送命令は、複数のヘッダ部データの一括データ転送と、情報部のデータ転送となり、命令数を削減することができる。この結果、転送処理を行うハードウェアの効率的なデータ転送処理が可能となり、多重化パケット生成の高速化が図れる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００２１】
本発明に係る多重化パケット生成装置は、多重化パケットを作成する処理を制御する多重化制御部１と、多重化制御部１に従って多重化パケットをストリームバッファ３に設定する多重化処理部２を具備し、順次入力されるビデオＥＳ４１とビデオＥＳ情報４２、オーディオＥＳ５１とオーディオＥＳ情報５２から多重化パケットを生成する。
【００２２】
ここで、各ＥＳについて説明する。ビデオＥＳ４１は、図示しないエンコーダによってビデオのベースバンド信号が符号化されたＥＳであり、ビデオＥＳ情報４２には、アクセス単位ごとに、各アクセス単位のビデオＥＳが格納されているビデオＥＳバッファ上の位置、サイズ、デコード時刻などの情報が設定されている。同様に、オーディオＥＳ５１は、エンコーダによってオーディオのベースバンド信号が符号化されたＥＳであり、オーディオＥＳ情報５２は、各アクセス単位のオーディオＥＳのバッファ上の位置、サイズなどの情報が設定されている。
【００２３】
次に、各処理部について説明する。
多重化制御部１は、ビデオＥＳ情報４２とオーディオＥＳ情報５２に基づいて、多重化処理のスケジューリングを行うスケジューリング手段１１、ヘッダ部が設定された仮パケットと情報部のデータ転送命令を作成する仮パケット作成手段１２および仮パケット作成手段１２の作成したデータ転送命令群を一時格納する命令群記憶手段１３を有する。スケジューリング手段１１および仮パケット作成手段１２は、各処理手段が有すべき機能の処理内容を記述したプログラムをＣＰＵが実行することによって、各処理機能が実現される。すなわち、多重化制御部１は、ソフトウェアによって実現される。
【００２４】
スケジューリング手段１１は、多重化制御部１による多重化パケット生成処理手順の実行を管理しており、仮パケット作成手段１２によって所定の数の仮パケットが作成されたら、仮パケット作成手段１２によって作成された仮パケットをストリームバッファ３へ転送するデータ転送命令を作成して多重化処理部２の転送手段２１に出力する。さらに、命令群記憶手段１３に格納された仮パケットの情報部に設定されるエレメンタリーストリームのデータをストリームバッファ３に転送するデータ転送命令群を転送手段２１へ出力する。
【００２５】
仮パケット作成手段１２は、アクセス単位ごとにビデオＥＳ情報４２またはオーディオＥＳ情報５２を取り込んで解析し、解析結果に応じた多重化パケットのヘッダ部データを作成し、このヘッダ部データと空白の情報部を有する仮パケットを生成して仮パケット作成手段１２に格納する。仮パケットには、ヘッダ部データに続き、解析結果に応じて算出される情報部のデータ分の領域が確保されている。さらに、多重化パケットが生成されるとき、情報部に設定されるビデオＥＳ４１またはオーディオＥＳ５１のデータをストリームバッファ３に転送するためのデータ転送命令を作成し、命令群記憶手段１３に格納する。ビデオＥＳ情報４２およびオーディオＥＳ情報５２には、それぞれ対応するＥＳが格納されるバッファ上のアドレスやデータサイズが登録されており、これらに基づいてデータ転送元のアドレスと転送サイズが規定される。また、ストリームバッファ３上のデータ転送先アドレスは、多重化制御部１が管理している。
【００２６】
命令群記憶手段１３は、仮パケット作成手段１２によって作成された仮パケットでは空白であった情報部に設定されるエレメンタリーストリームのデータをストリームバッファ３に転送するデータ転送命令群を一時保存するメモリである。
【００２７】
多重化処理部２は、多重化制御部１によって作成されたデータ転送命令に従ってストリームバッファ３に多重化パケットを設定する転送手段２１と、多重化制御部１によって作成されたヘッダを一時格納する仮パケット記憶手段２２を有する。転送手段２１は、データ転送命令を解釈し、命令に従って転送元データが格納される領域から転送先のストリームバッファ３の指定領域に、ＣＰＵを介さずに直接データ転送する。すなわち、多重化処理部２はハードウェアによって実現されており、高速なデータ転送が可能なことが特徴である。また、仮パケット記憶手段２２は、多重化制御部１および転送手段２１からアクセス可能なメモリで、仮パケット作成手段１２によって作成された仮パケットが一時保存される。
【００２８】
このような構成の多重化パケット生成装置の動作について説明する。
図示しないバッファには、エンコーダによって生成されるビデオＥＳ４１、ビデオＥＳ情報４２、オーディオＥＳ５１およびオーディオＥＳ情報５２が順次格納されている。
【００２９】
多重化制御部１では、ビデオＥＳ４１またはオーディオＥＳ５１ごとに、アクセス単位のＥＳがバッファに入力されると、仮パケット作成手段１２は、ビデオＥＳ情報４２またはオーディオＥＳ情報５２を取り込み、解析してヘッダ部データを設定し、作成されたヘッダ部データと空白の情報部を備えた仮パケットを作成する。空白の情報部は、解析結果に応じて算出される情報部のサイズ分の領域が確保される。作成された仮パケットは、仮パケット記憶手段２２に格納する。さらに、情報部に設定するビデオＥＳ４１またはオーディオＥＳ５１のデータを取り込み、ストリームバッファ３に転送するデータ転送命令を作成し、命令群記憶手段１３に格納する。以上の処理がアクセス単位ごとに繰り返されることにより、仮パケット記憶手段２２には、ヘッダ部のみが設定された複数の仮パケットが格納される。従って、仮パケット記憶手段２２は、ストリームバッファ３に設定される多重化パケット群と同じデータ構成の仮パケット群が作成される。ただし、仮パケットの情報部は空白になっている。また、命令群記憶手段１３には、仮パケット記憶手段２２に格納される空白の情報部に対応するストリームバッファ３上の多重化パケットの情報部に有効なデータを転送するデータ転送命令群が格納される。
【００３０】
こうして、所定の数の仮パケットが設定されると、スケジューリング手段１１によって仮パケットをストリームバッファ３へ転送するデータ転送命令が作成され、転送手段２１に出力される。これにより、転送手段２１は、仮パケット記憶手段２２に格納される複数の仮パケットを一括してストリームバッファ３の指定領域に転送する。この結果、ストリームバッファ３上には、ヘッダ部データが設定され、情報部が空白の多重化パケットが設定される。
【００３１】
続いて、スケジューリング手段１１は、命令群記憶手段１３に格納されたデータ転送命令を転送手段２１に出力する。たとえば、データ転送命令を転送手段２１に用意されたキューに一括して登録すれば、多重化制御部１のＣＰＵの処理負荷を減らすことができる。転送手段２１は、データ転送命令に従って、空白となっているストリームバッファ上の多重化パケットの情報部に相当するビデオＥＳ４１もしくはオーディオＥＳ５１のデータを順次転送する。これにより、ストリームバッファ３上の多重化パケットの情報部にデータが設定され、多重化パケットが完成する。
【００３２】
このように、多重化パケットのヘッダ部データのみを設定した複数の仮パケットを仮パケット記憶手段２２上に作成しておき、転送処理を行うハードウェアに一括してストリームバッファ３に転送させることにより、ハードウェアが１回の命令解釈で複数のヘッダ部データをストリームバッファ３上に設定することができる。これにより、転送処理を行うハードウェアの処理効率が上がり、転送処理を高速化することができる。
【００３３】
なお、上記の説明では、命令群記憶手段１３を多重化制御部１に設けるとしたが、多重化制御部１から読み書きが可能な多重化処理部２のメモリ上に設けるとしてもよい。また、エレメンタリーストリームがＴＳの場合で説明したが、ＰＳに適用することもできる。
【００３４】
以下、実施の形態を、ＭＰＥＧ２（Moving Picture Experts Group2）の規定に基づいて、ビデオＥＳとオーディオＥＳを取り込み、これらのＥＳからＰＥＳを生成する多重化パケット生成装置に適用した場合を例に図面を参照して詳細に説明する。
【００３５】
図２は、本発明の実施の形態の多重化パケット生成装置の構成を示したブロック図である。図１と同じものには同じ番号を付し、説明は省略する。
本発明の実施の形態の多重化パケット生成装置は、ストリームバッファ３、ソフトウェアによって構成され多重化処理を制御する多重化部（ソフトウェア、以下、Ｓ／Ｗとする）１０、ハードウェアによって構成され多重化処理を行ってストリームバッファ３に多重化パケットを設定する多重化部（ハードウェア、以下、Ｈ／Ｗとする）２０、ビデオのベースバンド信号からビデオＥＳとビデオＥＳ情報を生成するビデオエンコーダ４０、オーディオのベースバンド信号からオーディオＥＳとオーディオＥＳ情報を生成するオーディオエンコーダ５０、およびそれぞれＥＳを格納するビデオＥＳバッファ６１、ビデオＥＳ情報バッファ６２、オーディオＥＳバッファ６３、オーディオＥＳ情報バッファ６４を具備する。
【００３６】
多重化部（Ｓ／Ｗ）１０は、少なくともＣＰＵと、多重化部（Ｓ／Ｗ）１０が実行すべき機能の処理内容を記述したプログラムを記憶する記憶装置と、処理手順により生成される情報を格納するメモリを有する。ＣＰＵがプログラムを実行することにより多重化制御部１として機能し、スケジューリング手段１１、仮パケット作成手段１２の各処理手段を実現する。
【００３７】
多重化部（Ｈ／Ｗ）２０は、ハードウェアによって直接メモリ間のデータを転送する転送装置と、転送装置および多重化部（Ｓ／Ｗ）１０からアクセス可能なバッファを有する。転送装置は、転送手段２１として機能し、データ転送命令（以下、コマンドとする）を解釈し、指定された転送元アドレスから転送先アドレスへのデータ転送を高速に実行する。たとえば、ＤＭＡにより構成される。また、キュー用のメモリを有し、キューに登録されたコマンドを書き込まれた順に解釈して実行する。バッファは、仮パケット記憶手段２２として機能し、多重化部（Ｓ／Ｗ）１０の作成した仮パケットを格納する。バッファは、たとえば、リングバッファで構成されており、多重化部（Ｓ／Ｗ）１０によって管理される。多重化部（Ｓ／Ｗ）１０は、バッファのどこまで書き込みを行ったか、書き込みを行ったものがどこまで転送装置に使用されたかを常に管理し、仮パケットをバッファ上に設定していく。
【００３８】
ビデオエンコーダ４０は、ビデオのベースバンド信号を入力し、圧縮符号化したビデオＥＳとビデオＥＳに関するビデオＥＳ情報のＥＳを作成し、それぞれビデオＥＳバッファ６１とビデオＥＳ情報バッファ６２に格納する。ビデオＥＳ情報には、対象のビデオＥＳのバッファ上の位置およびデータサイズが格納されている。
【００３９】
オーディオエンコーダ５０は、オーディオのベースバンド信号を入力し、圧縮符号化したオーディオＥＳとオーディオＥＳに関するオーディオＥＳ情報のＥＳを作成し、それぞれオーディオＥＳバッファ６３とオーディオＥＳ情報バッファ６４に格納する。オーディオＥＳ情報には、対象のオーディオＥＳのバッファ上の位置およびデータサイズが格納されている。
【００４０】
このような構成の多重化パケット生成装置の動作について説明する。
ビデオエンコーダ４０によって、順次入力されるビデオのベースバンド信号からビデオＥＳが生成されビデオＥＳバッファ６１に格納されるとともに、ビデオＥＳに関するビデオＥＳ情報が生成されビデオＥＳ情報バッファ６２に格納される。同様に、順次入力されるオーディオのベースバンド信号からオーディオＥＳが生成されオーディオＥＳバッファ６３に格納されるとともに、オーディオＥＳに関するオーディオＥＳ情報が生成されオーディオＥＳ情報バッファ６４に格納される。
【００４１】
多重化部（Ｓ／Ｗ）１０は、ビデオＥＳ情報バッファ６２に格納されるビデオＥＳ情報、およびオーディオＥＳ情報バッファ６４に格納されるオーディオＥＳ情報を解析し、それぞれの仮パケットを作成して多重化部（Ｈ／Ｗ）２０のバッファに書き込む。仮パケットは、解析結果に基づき生成されたヘッダ部データと、空白のペイロードとで構成される。空白のペイロードのサイズは、ビデオＥＳ情報とオーディオＥＳ情報に登録されている対象のビデオＥＳとオーディオＥＳのデータサイズに応じて規定される。さらに、同様にして、ビデオＥＳ情報とオーディオＥＳ情報に登録されている対象のビデオＥＳとオーディオＥＳが格納されるバッファ上の位置とデータサイズを用いて、仮パケットに空白のペイロードに対応するストリームバッファ３上の多重化パケットのペイロードに該当するデータが転送されるようにペイロードデータを転送するコマンドを作成し、一時保存しておく。
【００４２】
そして、所定の数の仮パケットが作成されると、多重化部（Ｓ／Ｗ）１０は、バッファに設定された仮パケット群をストリームバッファ３に転送するコマンドを作成して、多重化部（Ｈ／Ｗ）２０に出力する。多重化部（Ｈ／Ｗ）２０は、コマンドを解釈し、バッファに設定された複数の仮パケットを一括してストリームバッファ３に転送する。
【００４３】
続いて、多重化部（Ｓ／Ｗ）１０は、一時保存したペイロードデータを転送するコマンド群を多重化部（Ｈ／Ｗ）２０のキューに登録する。多重化部（Ｈ／Ｗ）２０は、キューに登録された順番に従って、コマンドを解釈し、ストリームバッファ３のペイロード領域にビデオＥＳおよびオーディオＥＳのデータを転送する処理を繰り返し行う。
【００４４】
以上の転送処理によって、ストリームバッファ３に設定される多重化パケットについて一例を挙げて説明する。図３、図４および図５は、本発明の実施の形態の多重化パケット生成処理によるストリームバッファ上の多重化パケットの状態の一例を示した図である。図で、斜線あるいは格子で囲まれた領域は、有効なデータが設定されていることを示している。
【００４５】
以下、コマンド実行順に従って、（Ａ）ヘッダを置くコマンド実行後（図３）、（Ｂ）ペイロードを置くコマンド実行後（図４）、（Ｃ）次のペイロードを置くコマンド実行後（図５）の状態について説明する。
【００４６】
図３は、ヘッダを置くコマンドを実行後のストリームバッファの状態を示している。ヘッダを置くコマンドは、所定の数の仮パケットがバッファに格納された後、多重化部（Ｓ／Ｗ）１０から多重化部（Ｈ／Ｗ）２０に対して出力される。多重化部（Ｈ／Ｗ）２０は、コマンドに従って、バッファに設定された仮パケットを一括してストリームバッファに転送する。なお、当然ながら、コマンド実行前までには、仮パケットが格納されるバッファに図３に示したデータと同じデータが格納されている。
【００４７】
ヘッダを置くコマンドが実行されると、ストリームバッファ３には、１番目のビデオパケットの仮パケットを構成するＴＳヘッダ（ＴＨｎ＿ｖ＃０１）１０１、ＰＥＳヘッダ（ＰＨｎ＿ｖ＃０１）、空白のペイロード（ペイロードｎ＿ｖ＃０１）１０３が転送される。また、同一コマンドによる転送処理で、同様に２番目のビデオパケットの仮パケット（ＴＳヘッダ１０４、ペイロード１０５）、１番目のオーディオパケットの仮パケット（ＴＳヘッダ１０６、ＰＥＳヘッダ１０７、ペイロード１０８）、３番目のビデオパケットの仮パケット（ＴＳヘッダ１０９、ペイロード１１０）、４番目のビデオパケットの仮パケット（ＴＳヘッダ１１１、ペイロード１１２）、２番目のオーディオパケットの仮パケット（ＴＳヘッダ１１３、ペイロード１１４）というように、複数の仮パケットがストリームバッファ３に転送される。ここで有効なデータは、ＴＳヘッダ１０１、１０４、１０６、１０９、１１１、１１３とＰＥＳヘッダ１０２、１０７のみである。
【００４８】
図４は、最初のペイロードを置くコマンドが実行された後のストリームバッファの状態を示している。
最初のペイロードを置くコマンドが実行されると、図３に示した状態のストリームバッファ３における１番目のビデオパケットの空白のペイロード１０３に対象のビデオＥＳのデータが転送され、有効なペイロード１０３ａが設定される。
【００４９】
図５は、次のペイロードを置くコマンド実行後のストリームバッファの状態を示している。
次のペイロードを置くコマンドが実行されると、図４に示した状態のストリームバッファ３における２番目のビデオパケットの空白のペイロード１０５に対象のビデオＥＳのデータが転送され、有効なペイロード１０５ａが設定される。
【００５０】
このように、ペイロードを置くコマンドにより、空白のペイロードに有効なデータが転送される。すべての仮パケットのペイロードの設定が終了するまで、処理が繰り返される。
【００５１】
以上の処理が実行されることによってストリームバッファ３に設定された多重化パケットは、ペイロードが設定されたパケットから順に送出が可能となる。なお、一括して処理を行うパケットの個数は、アクセスユニットや転送処理の能力、バッファのサイズなどに応じて適宜設定される。また、必要に応じて、状況に応じた可変値とすることもできる。
【００５２】
次に、実施の形態の多重化パケット生成方法について説明する。図６は、本発明の実施の形態の多重化パケット生成方法の手順を示したフローチャートである。
以下の処理手順は、多重化部（Ｓ／Ｗ）１０によって実行される処理手順を示しており、ソフトウェアによって予め設定された仮パケット個数（これをＮＰとする）の仮パケット生成処理が終了すると、多重化部（Ｈ／Ｗ）２０に処理が引き継がれる。
【００５３】
［ステップＳ１］  多重化部（Ｓ／Ｗ）１０による仮パケット生成処理が開始され、生成された仮パケットの個数を示すカウンタ（ｎｐ）が０に初期化される。
［ステップＳ２］  アクセス単位のビデオＥＳとビデオＥＳに関するビデオＥＳ情報（以下、これらをまとめてビデオＡＵ情報とする）が存在するか否かを判定する。ビデオＡＵ情報が存在しない場合は、ビデオＥＳ待ちを続ける。
【００５４】
［ステップＳ３］  ビデオＡＵ情報が存在している場合、続いて、アクセス単位のオーディオＥＳとオーディオＥＳに関するオーディオＥＳ情報（以下、これらをまとめてオーディオＡＵ情報とする）が存在するか否かを判定する。オーディオＡＵ情報が存在しない場合は、オーディオＥＳ待ちを続ける。
【００５５】
［ステップＳ４］  ビデオＡＵ情報とオーディオＡＵ情報がともに存在する場合、それぞれのＥＳに基づいて仮パケット作成処理を行う。仮パケット作成処理により、ヘッダ部データが作成され、空白のペイロードを付加した仮パケットが仮パケット記憶手段に格納される。さらに、ストリームバッファのペイロードにＥＳデータを置くためのコマンドが作成され、一時保存される。詳細な処理については、後述する。
【００５６】
［ステップＳ５］  仮パケットの作成が終了したので、仮パケット個数ｎｐを１増加させる。
［ステップＳ６］  仮パケット個数ｎｐをＮＰと比較する。ＮＰを超えていない場合は、ステップＳ２に戻って、次のＥＳの処理を行う。
【００５７】
［ステップＳ７］  仮パケット個数ｎｐがＮＰ以上の場合、転送処理を開始する。まず、仮パケット記憶手段に格納された仮パケットをストリームバッファへ転送するため、ヘッダを置くコマンドを作成する。
【００５８】
［ステップＳ８］  ステップＳ７で作成したヘッダを置くコマンドと、一時保存されたペイロードを置くコマンドを、転送処理を行うＨ／Ｗに出力する。
以上の処理手順が実行されることにより、複数の仮パケットが一括してストリームバッファに転送された後、ペイロードが設定される。
【００５９】
次に、仮パケット作成処理について説明する。図７は、本発明の実施の形態の仮パケット作成処理の手順を示したフローチャートである。
［ステップＳ１１］  オーディオパケットを作成するかどうか判断する。オーディオパケットを作成しない場合、処理をステップＳ１７へ進める。
【００６０】
［ステップＳ１２］  オーディオパケットを作成する場合、まずＴＳヘッダを作成し、仮パケットのヘッダ部データ格納領域に設定する。
［ステップＳ１３］  続いて、フレーム（ＥＳの単位であるアクセスユニット）先頭であるかどうかを判断する。先頭でない場合、処理をステップＳ１５へ進める。
【００６１】
［ステップＳ１４］  フレームの先頭である場合、ＰＥＳヘッダを作成し、仮パケットのヘッダ部データ格納領域のＴＳヘッダに続けて設定する。
［ステップＳ１５］  空白のペイロードを作成し、仮パケットを生成する。空白のペイロードの作成は、その領域をバッファ上に確保することにより行う。
【００６２】
［ステップＳ１６］  空白のペイロードに設定されるＥＳのオーディオデータをストリームバッファ上のペイロードに置くためのペイロード作成コマンドを作成し、一時保存する。
【００６３】
以上の手順により、オーディオの仮パケットが作成される。
［ステップＳ１７］  オーディオパケットを作成しない場合、ビデオパケットを作成するかどうかを判断する。ビデオパケットを作成しない場合、処理を終了する。
【００６４】
［ステップＳ１８］  ビデオパケットを作成する場合、まずＴＳヘッダを作成し、仮パケットのヘッダ部データ格納領域に設定する。
［ステップＳ１９］  続いて、フレーム先頭であるかどうかを判断する。先頭でない場合、処理をステップＳ２１へ進める。
【００６５】
［ステップＳ２０］  フレームの先頭である場合、ＰＥＳヘッダを作成し、仮パケットのヘッダ部データ格納領域のＴＳヘッダに続けて設定する。
［ステップＳ２１］  空白のペイロードを作成し、仮パケットを作成する。空白のペイロードの作成は、その領域をバッファ上に確保することにより行う。
【００６６】
［ステップＳ２２］  空白のペイロードに設定されるＥＳのビデオデータをストリームバッファ上のペイロードに置くためのペイロード作成コマンドを作成し、一時保存する。
以上の手順により、ビデオの仮パケットが作成される。
【００６７】
このように、仮パケット作成処理では、ヘッダ部と空白のペイロードで構成される仮パケットが作成され、バッファに格納される。この仮パケットの作成が１処理単位分終了すると、一括の転送処理が行われる。
【００６８】
上記の説明の多重化パケット生成装置における多重化パケット生成方法によれば、ＮＰ個の多重化パケットのヘッダ部を１つのコマンドでストリームバッファに転送することができる。この結果、転送処理を行うハードウェアが処理するコマンド数は、パケット数をＮＰ個とすると、ＮＰ＋１となる。従来の多重化パケット生成方法では、ＮＰ個のパケット数の場合、２ＮＰのコマンドを発行しなければならなかったので、コマンド数を(ＮＰ＋１）／２ＮＰ、すなわち約半分に削減することができる。この結果、ハードウェアがコマンドを解釈するオーバーヘッドを少なくすることが可能となり、多重化処理の高速化を図ることができる。特に、パケット数が非常に多く、小さなデータ単位で切替えるためオーバーヘッドが問題となるＴＳに好適であり、ＴＳ多重化処理の高速化が実現できる。
【図面の簡単な説明】
【００６９】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態の多重化パケット生成装置の構成を示したブロック図である。
【図３】本発明の実施の形態の多重化パケット生成処理によるストリームバッファ上の多重化パケットの状態の一例を示した図である（ヘッダを置くコマンド実行後）。
【図４】本発明の実施の形態の多重化パケット生成処理によるストリームバッファ上の多重化パケットの状態の一例を示した図である（ペイロードを置くコマンド実行後）。
【図５】本発明の実施の形態の多重化パケット生成処理によるストリームバッファ上の多重化パケットの状態の一例を示した図である（次のペイロードを置くコマンド実行後）。
【図６】本発明の実施の形態の多重化パケット生成方法の手順を示したフローチャートである。
【図７】本発明の実施の形態の仮パケット作成処理の手順を示したフローチャートである。
【図８】従来の多重化パケット生成処理の手順を示したフローチャートである。
【図９】従来の多重化パケット生成処理の手順によるパケット生成の一例を示した図である。
【符号の説明】
【００７０】
１……多重化制御部、２……多重化処理部、３……ストリームバッファ、１０……多重化部（Ｓ／Ｗ）、１１……スケジューリング手段、１２……仮パケット作成手段、１３……命令群記憶手段、２０……多重化部（Ｈ／Ｗ）、２１……転送手段、２２……仮パケット記憶手段、４０……ビデオエンコーダ、５０……オーディオエンコーダ
【図１】
2006115199.tif 000003
【図２】
2006115199.tif 000004
【図３】
2006115199.tif 000005
【図４】
2006115199.tif 000006
【図５】
2006115199.tif 000007
【図６】
2006115199.tif 000008
【図７】
2006115199.tif 000009
【図８】
2006115199.tif 000010
【図９】
2006115199.tif 000011