(57)【特許請求の範囲】
【請求項１】
パケットを改変する必要があるか否かを判断し、前記パケットを送り出すパケット取捨選択装置と、
前記パケットを蓄積するバッファと、
前記パケットを改変するパケット改変装置と、を備え、
前記バッファは、前記パケット取捨選択装置から前記パケットを受け取って蓄積し、かつ前記パケットが書き込まれるアドレス（パケット書き込みアドレス）を前記パケット取捨選択装置へ送り返し、
前記パケット取捨選択装置は、前記バッファから前記パケット書き込みアドレスを受け取り、前記パケット改変装置へ前記パケットと前記パケット書き込みアドレスを送り出し、
前記パケット改変装置は、前記パケット取捨選択装置から受け取った前記パケットを改変し、改変済みパケットを前記パケット書き込みアドレスに従って前記バッファに書き込む、ことを特徴とするパケット処理装置。
【請求項２】
前記パケット取捨選択装置は、
前記パケットを改変する必要があるかを判断する判断部と、
前記パケットを前記バッファに送り出し、かつ前記バッファから前記パケット書き込みアドレスを受け取る第１の送受信部と、
前記パケットと前記パケット書き込みアドレスとを、前記パケット改変装置へ送り出す第２の送受信部と、
前記パケットと前記パケット書き込みアドレスとを前記パケット改変装置へ送り出し終わったことを示す割り込み信号を、前記パケット改変装置へ送り出す割り込み信号送信部と、を備えることを特徴とする請求項１記載のパケット処理装置。
【請求項３】
前記バッファは、
前記パケット取捨選択装置から受け取ったパケットと前記パケット改変装置から受け取ったパケットとが書き込まれるメモリと、
前記パケット取捨選択装置から受け取ったパケットが書き込まれる位置を示す前記パケット書き込みアドレスを生成するパケット書き込みアドレス生成部と、
前記パケット書き込みアドレスを保持し、前記パケット取捨選択装置からのスタート信号に同期して前記パケット書き込みアドレスを送り出すラッチ回路と、
前記パケット改変装置から受け取った前記改変済みパケットが書き込まれる位置を示す前記パケット書き込みアドレスを保持するパケット書き込みアドレス保持部と、を備えることを特徴とする請求項１乃至２記載のパケット処理装置。
【請求項４】
パケット取捨選択装置が、順次入力するパケットをパケット蓄積用のバッファに送り出し、前記バッファからパケットが書き込まれるアドレス（パケット書き込みアドレス）を受け取り、パケット識別番号によってパケット改変の要否を判断し、改変が必要であると判断したらパケット改変装置に前記パケットと前記パケット書き込みアドレスを送り出し、前記パケットと前記パケット書き込みアドレスとの送り出しが終了したら、パケット・アドレス送り出し終了通知を前記パケット改変装置に送り出すことを特徴とするパケット処理方法。
【請求項５】
さらに、前記パケット改変装置が、前記パケット・アドレス送り出し終了通知を受け取ったら、受け取ったパケットのパケット識別番号に従ってパケット内データを改変し、改変したパケットを前記パケット書き込みアドレスに従って、未改変パケットを改変済みパケットによって上書きすることを特徴とする請求項４記載のパケット処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット処理装置およびパケット処理方法に関し、特にディジタル放送を受信して得たパケットをハードディスクなどの記憶媒体に記録させる場合に、改変が必要なパケットを選択して、選択されたパケットに所定の改変をした上で記録媒体に記録させる装置および方法に関する。
【０００２】
【従来の技術】
衛星放送やケーブルテレビ等から得られるデジタルストリームをハードディスク（ＨＤ）、ＣＤ−Ｒ、ＤＶＤ−ＲＡＭ等の記録媒体に記録する際に、映像信号と音声信号との同期をとる等のためにデジタルストリームの一部（例えば、セクション情報）を改変してから、ＨＤ等に記録したい場合がある。
【０００３】
従来は、パケット取捨選択装置が受信したパケット毎に改変の要否を判断し、（１−１）改変が必要ないと判断した場合は、（１−２）その受信パケットをそのまま記録媒体のライトバッファに書き込み、一方、（２−１）改変が必要である判断した場合は、（２−２）その受信パケットをＣＰＵ（Central Processing Unit）用メモリに書き込み、（２−３）ＣＰＵが受信パケットを改変した後に、（２−４）パケット取捨選択装置が改変済みパケットをＣＰＵ用メモリから読み出し、記録媒体用ライトバッファに書き込む、としている。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の技術では、ＣＰＵがパケットの一部を改変している間、後続のパケットを溜めておくことができるバッファをパケット取捨選択装置中に設けることが必要となる。つまり、パケット取捨選択装置用バッファが大容量とならざるを得ないために、パケット取捨選択装置の規模が増大してしまうという問題がある。
【０００５】
【課題を解決するための手段】
本発明の特徴は、パケットを改変する必要があるか否かを判断し、前記パケットを送り出すパケット取捨選択装置と、前記パケットを蓄積するバッファと、前記パケットを改変するパケット改変装置と、を備え、前記バッファは、前記パケット取捨選択装置から前記パケットを受け取って蓄積し、かつ前記パケットが書き込まれるアドレス（パケット書き込みアドレス）を前記パケット取捨選択装置へ送り返し、前記パケット取捨選択装置は、前記バッファから前記パケット書き込みアドレスを受け取り、前記パケット改変装置へ前記パケットと前記パケット書き込みアドレスを送り出し、前記パケット改変装置は、前記パケット取捨選択装置から受け取った前記パケットを改変し、改変したパケットを前記パケット書き込みアドレスに従って前記バッファに書き込む、ことにある。
【０００６】
かかる本発明の特徴により、（１）Ｎｕｌｌパケットをとりあえずバッファに蓄積し、（２）後続のパケットもバッファに順次蓄積している間に、（３）パケット改変装置がパケットを改変して、（４）改変が済んだらパケット改変装置がバッファ内のＮｕｌｌパケットを改変後パケットによって上書することが可能となる。
【０００７】
【発明の実施の形態】
図１は、本発明の実施形態に係るパケット取捨選択装置１０１と、ライトバッファ１０３と、記録媒体１０５と、ＣＰＵ用メモリ１０７と、ＣＰＵ１０９との間でのパケットの流れを示す概念図である。ＣＰＵ用メモリ１０７とＣＰＵ１０９とが、パケットを改変するパケット改変装置１１１として機能する。
【０００８】
まず、図１に基づいて、本実施形態において要改変パケットを受信した際のパケットの流れを概説する。
【０００９】
図１に示すように、パケット取捨選択装置１０１はパケットを受信すると、その受信パケットの改変の要否を判断する。パケット取捨選択装置１０１は、改変が「必要」と判断すると、Ｎｕｌｌパケットをライトバッファ１０３に出力する。ライトバッファ１０３は、Ｎｕｌｌパケットをライトバッファ内メモリに書き込み、Ｎｕｌｌパケットが書き込まれたアドレス（Ｎｕｌｌパケット書き込みアドレス）をパケット取捨選択装置１０１へ出力する。ここで、「Ｎｕｌｌパケット」とは、受信したパケットの再生に使用されない「無効なパケット」という意味である。
【００１０】
また、パケット取捨選択装置１０１は、改変が必要と判断されたパケット（要改変パケット）をＣＰＵ用メモリ１０７へ転送するとともに、転送が終了したらＣＰＵ用メモリ１０７への転送が終了した旨をＣＰＵ１０９へ通知する。さらに、パケット取捨選択装置１０１は、ライトバッファ１０３から受け取ったＮｕｌｌパケット書き込みアドレスもＣＰＵ１０９へ通知する。
【００１１】
ＣＰＵ１０９は、要改変パケットがＣＰＵ用メモリ１０７へ転送された旨の通知を受け取った後に、要改変パケットの改変を開始する。
【００１２】
さらに、ＣＰＵ１０９は、改変終了後にＮｕｌｌパケット書き込みアドレスに従って改変後パケットをライトバッファ１０３内のメモリに書き込む。Ｎｕｌｌパケットは、改変後パケットによって上書きされる。
【００１３】
そして、改変後パケットは、パケット取捨選択装置１０１が改変「不要」と判断したパケットとともに、ライトバッファ１０３からＨＤ等の記録媒体１０５へ転送され、記録媒体１０５に記録される。
【００１４】
図２は、図１に示すパケット取捨選択装置１０１の構成を示すブロック図である。
【００１５】
図２に示すように、パケット取捨選択装置１０１は、第１のＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２０１と、ＡＲＢＩＴＥＲ（アービター）２０３と、ＤＡＴＡＲＡＭ（データラム）２０５と、第２のＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２０７と、第３のＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２０９と、ＣＯＮＴＲＯＬＬＥＲ（コントローラ）２１１と、ＨＯＳＴ  Ｉ／Ｆ（ホストインターフェース）２１３とから構成される。
【００１６】
ＤＭＡＣ２０１は、入力されたパケットデータをデータラム２０５に書き込む。
【００１７】
ＡＲＢＩＴＥＲ２０３は、ＤＡＴＡＲＡＭ２０５に対するアクセス権の制御を行う。
【００１８】
ＤＡＴＡＲＡＭ２０５は、入力されたパケットデータを一時的に蓄える。
【００１９】
ＤＭＡＣ２０７は、ＤＡＴＡＲＡＭ２０５に書かれたパケットデータをライトバッファ１０３へ転送する。
【００２０】
ＤＭＡＣ２０９は、ＤＡＴＡＲＡＭ２０５に書かれたパケットデータをＣＰＵ用メモリ１０７へ転送する。
【００２１】
ＣＯＮＴＲＯＬＬＥＲ２１１は、各ＤＭＡＣに対して転送開始の指示を出したり、各ＤＭＡＣから転送終了通知を受けたりする。
【００２２】
ＨＯＳＴ  Ｉ／Ｆ２１３は、ＣＰＵ１０９に対して割り込みを発生したり、Ｎｕｌｌパケットが書き込まれた位置を示すアドレスなどのパラメータの受け渡しを行う。
【００２３】
図３は、図１に示すライトバッファ１０３の構成を示すブロック図である。
【００２４】
ＦＩＦＯ３１１は、ＤＭＡＣ２０７からデータを受け取り、最初に受け取ったデータから順次、ＭＵＸ（マルチプレクサ）３２１へ送る。ＭＵＸ３２１へ送られたデータは、さらにＤＲＡＭ（ダイレクトランダムアクセスメモリ）３３１へ送られ、ライトポインタ（write pointer）３１２が示すアドレスに書き込まれる。
【００２５】
ＣＰＵ１０９は、「アドレス初期値」、「所定値」および「アドレス最終値」をライトポインタ３１２内のレジスタ（図示せず）にセットする。「アドレス初期値」とはＤＲＡＭ３３１内のバッファメモリ領域の先頭アドレスを、「アドレス最終値」とはＤＲＡＭ３３１内のバッファメモリ領域の最終アドレスを意味する。「所定値」は「パケットサイズ」以上の値とする。
【００２６】
ライトポインタ３１２は、「アドレス初期値」に「所定値」を順次加算して、パケットが書き込まれるべきアドレスを順次生成する。具体的には、「アドレス初期値」、「アドレス初期値＋所定値」、「アドレス初期値＋所定値＊２」．．．というアドレスが順次生成される。「アドレス初期値＋所定値＊ｎ（ｎ：整数）」が「アドレス最終値」に達したら、パケットが書き込まれるべきアドレスを「アドレス初期値」へ戻す。なお、後述のように本実施形態においては、パケットは固定長である。したがって、「アドレス初期値＋所定値＊ｎ（ｎ：整数）」を計算することによってパケット書き込みアドレスを順次生成することができる。パケットが可変長である場合は、「アドレス初期値」と「これまでに受け取ったパケットのパケット長の総和」とを加算することによってパケット書き込みアドレスを順次生成する。
【００２７】
ＦＦ（フリップフロップ）３４１は、（１）パケット書き込みアドレスをライトポインタ３１２から受け取り、（２）パケット書き込みアドレス保持し、（３）ＤＭＡＣ２０７からスタート信号を受け取ると、パケット書き込みアドレスを出力する。ＤＭＡＣ２０７は、Ｎｕｌｌパケットの最初の１バイトを送出する際に、スタート信号を出力する。このスタート信号がトリガーとなって、Ｎｕｌｌパケット書き込みアドレスがＦＦ３４１からパケット取捨選択装置１０１内のＤＭＡＣ２０７へ出力される。
【００２８】
ライトポインタ３５２は、ＦＦ３４１からパケット取捨選択装置１０１を介してＣＰＵ１０９へ出力されたＮｕｌｌパケット書き込みアドレスを受け取り、ＦＩＦＯ３５１へ出力する。
【００２９】
ＦＩＦＯ３５１は、ＣＰＵ１０９から改変後パケットを受け取り、最初に受け取ったパケットから順次、ＭＵＸ３２１へ送る。ＭＵＸ３２１へ送られたデータは、さらにＤＲＡＭ３３１へ送られ、ライトポインタ３５２が示すＮｕｌｌパケット書き込みアドレスに書き込まれる。このようにして「Ｎｕｌｌパケット」が「改変後パケット」によって上書きされる。
【００３０】
図４は、パケット内の各フィールドを説明するための図である。パケットは１８８バイトの固定長であり、４バイトのヘッダー部分とadaptation_field４１７とdata_byte４１９とから構成される。daptation_field４１７とdata_byte４１９とはそれぞれ可変長であり、daptation_fieldとdata_byteとの合計は常に１８４バイトである。
【００３１】
sync_byte４０１は、常に0x47に固定される。transport_error_indicator４０３は、このビットが「１」の時はそのパケットにエラーが含まれていることを示す。payload_unit_start_indicator４０５は、このビットが「１」の時はそのパケットのdata_byte４１９にＰＥＳ（Packetized Elementary Stream）またはセクションの先頭バイトが含まれていることを示す。transport_priority４０７が「１」のパケットは、同じＰＩＤ（パケット識別番号）を持つパケットであって、transport_priority４０７が「０」であるパケットよりも優先度が高いことを示す。
【００３２】
ＰＩＤ４０９は、data_byte４１９に含まれるデータの種類を示す。また、ＰＩＤ=0x1FFFはＮｕｌｌパケットを示すものとする。
【００３３】
transport_scrambling_control４１１は、そのパケットにスクランブルがかかっているか否かを示す。
00:スクランブルなし、01,10,11:ユーザー定義(システムにより異なる）
とする。
【００３４】
adaptation_field_control４１３は、アダプテーションフィールド４１７とdata_byte４１９の長さを示す。
00:reserved
01:adaptation_fieldなし、data_byteのみ(すなわち、data_byteが184byte)
10:adaptation_fieldなし、data_byteのみ(すなわち、adaputation_fieldが184byte)
11:adaptation_field、data_byteともにあり
とする。
【００３５】
continuity_counter４１５は、同一PIDを有するパケットが来る毎に1ずつ増加する。adaptation_field４１７は、そのパケットに関する付加的な情報を表し、前記のように、adaptation_field_control４１３が１０または１１の場合のみ存在する。
【００３６】
data_byte４１９には、実際のデータが置かれる。映像や音声やセクションのデータが含まれる。セクションには多数のパケットからなるストリームをデコードするために必要な情報が含まれる。デコードに必要なデータとは、例えば番組情報やデスクランブルに必要なデータなどである。ストリームを録画してから再生する場合、セクションのデータの一部を改変しないと、ストリームを再生することはできない。
【００３７】
パケット取捨選択装置１０１によって改変「必要」と判断された場合に、ＣＰＵ１０９によって改変されるのは、data_byte４１９部分である。
【００３８】
図５（Ａ）〜（Ｃ）は、パケット取捨選択装置１０１が要改変パケットを検出してから、Ｎｕｌｌパケットが改変後パケットによって上書きされるまでの処理の流れを示す図である。
【００３９】
図５（Ａ）に示すように、パケット取捨選択装置１０１は、要改変パケットを検出すると、要改変パケットをＣＰＵ用メモリ１０７へ転送するとともに、Ｎｕｌｌパケットをライトバッファ１０３に送出する。ライトバッファ１０３が受け取ったＮｕｌｌパケットは、ＤＲＡＭ３３１に蓄積される。Ｎｕｌｌパケットが書き込まれるアドレス（Ｎｕｌｌパケット書き込みアドレス）を「ｎ」とし、ＮｕｌｌパケットがＤＲＡＭ３３１に書き込まれる以前に、ＤＲＡＭ３３１に書き込まれたパケットのアドレスを「ｎ−１」、「ｎ−２」とする。
【００４０】
パケット取捨選択装置１０１は、Ｎｕｌｌパケット書き込みアドレス「ｎ」をライトバッファ１０３から受け取り、ＣＰＵ用メモリ１０７へ転送する。
【００４１】
次に、図５（Ｂ）に示すように、パケット取捨選択装置１０１は、新たなパケットを受け取り、改変不要であると判断したら、それらパケットをライトバッファ１０３へ送出する。改変不要と判断されたパケットもＤＲＡＭ３３１に書き込まれる。新たなパケットが書き込まれるアドレスを「ｎ＋１」、「ｎ＋２」とする。
【００４２】
新たなパケットがライトバッファ１０３内のＤＲＡＭ３３１に書き込まれている間に、ＣＰＵ１０９は要改変パケットに対して所定の改変処理を行うとともに、Ｎｕｌｌパケット書き込みアドレス「ｎ」を受け取る。所定の改変処理とは例えば、記録するプログラム番号にしたがって、トランスポートパケットのdata_byte４１９に含まれるセクション情報を改変することである。
【００４３】
さらに、図５（Ｃ）に示すように、ＣＰＵ１０９は、改変後パケットをＤＲＡＭ３３１内のＮｕｌｌパケット書き込みアドレス「ｎ」に書き込む。これによって、ライトバッファ１０３内のＤＲＡＭ３３１に蓄積されているＮｕｌｌパケットが改変後パケットによって上書きされる。
【００４４】
図６は、パケット取捨選択装置１０１が、パケット改変の要否を判断し、ＣＰＵ１０９にＮｕｌｌパケット書き込みアドレスを通知する処理の流れを示すフローチャートである。
【００４５】
図６に示すように、ステップＳ６０１において、ＤＭＡＣ２０１がパケットを受け取ると、ＣＯＮＴＲＯＬＬＥＲ２１１が受け取ったパケットのＰＩＤ４１９（パケット識別番号）を調べて、ライトバッファ１０３に送出すべきか否かを判断する。ここで行うパケット送出の要否判断と、この後に行うパケット改変の要否判断とは相違する。ライトバッファ１０３への送出が必要なパケットの中に、改変が必要なパケットと改変が不要なパケットとが存在する。例えば、映像、音声、セクションに関するパケットはライトバッファ１０３への送出が必要なパケットであり、これらのパケットのうちセクションに関するパケットは改変が必要なパケットである。
【００４６】
ライトバッファ１０３への送出不要と判断された場合、処理を終了する。
ライトバッファ１０３への送出必要と判断された場合、ステップＳ６０３へ進む。
【００４７】
ステップＳ６０３において、ＤＭＡＣ２０７は、（１）ＦＩＦＯ３１１にパケットを送出するとともに、（２）ＦＦ３４１からパケットが書き込まれるアドレスを受け取る。
【００４８】
ステップＳ６０５において、パケット改変の要否が判断される。改変の要否判断もＣＯＮＴＲＯＬＬＥＲ２１１がＰＩＤ４１９を調べることによって行う。
【００４９】
改変不要と判断された場合、処理を終了する。
改変必要と判断された場合、ステップＳ６０７へ進む。
【００５０】
ステップＳ６０７において、ＤＭＡＣ２０９は、（１）ＣＰＵ用メモリ１０７へパケットを送出するとともに、（２）ＣＰＵ１０９へＮｕｌｌパケット書き込みアドレスを通知する。
【００５１】
ステップＳ６０９において、ＣＯＮＴＲＯＬＬＥＲ２１１は、パケット取捨選択装置１０１からＣＰＵ１０９へのパケットおよびパケット書き込みアドレスの転送が終了したか否かを定期的に調べる。
【００５２】
具体的には、ＣＯＮＴＲＯＬＬＥＲ２１１は、ＤＭＡＣ２０９に対して、「転送先のアドレス」、「転送元のアドレス」および「転送バイト数」をセットする。ＤＭＡＣ２０９は、セットされた「転送バイト数」の転送を終了したら、ＣＯＮＴＲＯＬＬＥＲ２１１へパケットおよびパケット書き込みアドレスの転送終了を通知する。
【００５３】
ステップＳ６１１において、ＣＯＮＴＲＯＬＬＥＲ２１１は、ＨＯＳＴ  Ｉ／Ｆ２１３を経由してＣＰＵ１０９へパケットおよびパケット書き込みアドレスの転送終了を通知する。
【００５４】
要改変パケットの転送終了がＣＰＵ１０９へ通知されると、ＣＰＵ１０９はパケットの改変を開始する。
【００５５】
図７は、ＣＰＵ１０９によるパケット改変処理の流れを示すフローチャートである。
【００５６】
図７に示すように、ＣＰＵ１０９は要改変パケットの転送終了通知を認識したら（ステップＳ７０１でＹＥＳ）、ＣＰＵ用メモリ１０７に置かれた要改変パケットのＰＩＤ４０９を調べ（ステップＳ７０３）、記録中のProgramNo.に基づいてパケットをどのように改変するかを判断する（ステップＳ７０５）。例えば、ProgramNo.A,B,Cを含むストリームのうち、ProgramNo.Aに関する情報だけを記録する場合、ProgramNo.A,B,Cの情報を含んでいるセクションデータをProgramNo.Aだけの情報を含むように改変する。
【００５７】
その後、改変後パケットを、パケット取捨選択装置１０１から受け取ったＮｕｌｌパケット書き込みアドレスに書き込む（ステップＳ７０９）。
【００５８】
上記の如く、本発明の実施形態によれば、パケット取捨選択装置１０１はパケットの改変が必要と判断したら、（１−１）Ｎｕｌｌパケットをライトバッファ１０３へ送り出し、（１−２）ライトバッファ１０３からＮｕｌｌパケット書き込みアドレスを受け取り、（１−３）要改変パケットをＣＰＵ用メモリ１０７に送り出し、（１−４）Ｎｕｌｌパケット書き込みアドレスをＣＰＵ１０９へ通知する。
【００５９】
そして、ＣＰＵ１０９は要改変パケットの転送終了通知を認識すると、（２−１）ＣＰＵ用メモリ１０７に置かれたパケットのＰＩＤを調べ、（２−２）記録中のProgramNo.に応じて実行すべき改変の内容を判断し、（２−３）パケットのdata_byte部分を改変し、（２−４）改変後パケットをＮｕｌｌパケット書き込みアドレスに書き込む。
【００６０】
これら一連の処理によって、図５に示すように、パケット取捨選択装置１０１が要改変パケットを受け取った場合、パケット取捨選択装置１０１はとりあえずＮｕｌｌパケットをライトバッファ１０３へ送り出し、またその後にパケット取捨選択装置１０１が受け取ったパケットもライトバッファ１０３へ順次送り出すことができるため、パケット取捨選択装置１０１内に設けるＤＡＴＡＲＡＭ２０５は小容量のメモリで済む。
【００６１】
メモリ容量をどの程度、節約することができるかについて具体的に説明する。要改変パケットをＣＰＵ用メモリ１０７に転送するために約１２００サイクル、ＣＰＵ用メモリ１０７に書かれた要改変パケットをＣＰＵ１０９が改変するために約１００サイクル、改変後のパケットをＣＰＵ用メモリ１０７からパケット取捨選択装置１０１内のＤＡＴＡＲＡＭ２０５に転送するために約１２００サイクルが必要であるとすると、これらの合計は２５００サイクルになる。
【００６２】
ＤＡＴＡＲＡＭ２０５の周波数を１３３ＭＨｚ、入力ストリームが８ビット幅でかつ１０ＭＨｚのレートで入力されたとすると、２５００（サイクル）÷１３３Ｍ（サイクル／秒）＊１０Ｍ（サイクル／秒）＊１（バイト／サイクル）＝約２００バイトとなる。
【００６３】
つまり、本実施形態によれば、要改変パケットをＣＰＵ用メモリ１０７へ転送し、ＣＰＵ１０９がパケットを改変し、改変後パケットをＤＡＴＡＲＡＭ２０５へ転送するまでの間にパケット取捨選択装置１０１が受け取ったパケット（２００バイト）をＤＡＴＡＲＡＭ２０５に蓄積しておく必要がないので、ＤＡＴＡＲＡＭ２０５の容量を２００バイト分節約することができる。入力ビットレートが２倍、４倍、つまり２０ＭＨｚ、４０ＭＨｚに増加すれば、節約することができる容量も２倍、４倍つまり約４００バイト、８００バイトに増加する。
なお、本実施形態では、パケットは固定長としたので、パケット取捨選択装置１０１はＣＰＵ１０９へ、ライトバッファ内ＤＲＡＭ３３１に書き込まれた要改変パケットの先頭アドレス、つまり改変後パケットの書き込み開始アドレスだけを通知すれば良い。しかし、パケットを可変長とする場合には、パケット取捨選択装置１０１はＣＰＵ１０９へ、改変後パケットの書き込み開始アドレスだけでなく、書き込まれる改変後パケットの長さ（パケット長）も通知する必要がある。
【００６４】
また、説明の都合上、パケット取捨選択装置１０１がパケットの改変が必要と判断した際に、パケット取捨選択装置１０１からライトバッファ１０３へ送り出されるパケットに「Ｎｕｌｌパケット」という名前を付け、パケット取捨選択装置１０１からＣＰＵ用メモリ１０７へ送り出されるパケットに「要改変パケット」という名前を付けた。しかし、これらパケットは実質的には同一内容のパケットであっても良い。つまり、パケット取捨選択装置１０１が改変必要と判断したパケットをそのままライトバッファ１０３へ送り出すとしてもなんら問題はない。
【００６５】
さらに、説明の都合上、ＣＰＵ用メモリ１０９とＤＲＡＭ３３１とを別々のメモリのように図示しているが、物理的に一体であるメモリ上の別々の領域をＣＰＵ用とライトバッファ用に割り当てるとしても良い。
【００６６】
【発明の効果】
上記の如く、本発明のパケット記憶装置およびパケット記憶方法を用いることにより、改変がされていないパケット（Ｎｕｌｌパケット）をライトバッファ内にとりあえず蓄積しておいて、パケットの改変終了後に、Ｎｕｌｌパケットを改変後パケットによって上書きすることが可能となる。これにより、パケット取捨選択装置内に設けるメモリを小容量化することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るパケット取捨選択装置と、ライトバッファと、記録媒体と、ＣＰＵ用メモリと、ＣＰＵとの間でのパケットの流れを示す概念図である。
【図２】図１に示すパケット取捨選択装置１０１の構成を示すブロック図である。
【図３】図１に示すライトバッファ１０３の構成を示すブロック図である。
【図４】パケット内の各フィールドを説明するための図である。
【図５】図１に示すパケット取捨選択装置１０１が要改変パケットを検出してから、Ｎｕｌｌパケットが改変後パケットによって上書きされるまでの処理の流れを示す図である。
【図６】図１に示すパケット取捨選択装置１０１が、パケット改変の要否を判断し、ＣＰＵ１０９にパケット書き込みアドレスを通知する処理の流れを示すフローチャートである。
【図７】図１に示すＣＰＵ１０９によるパケット改変処理の流れを示すフローチャートである。
【符号の説明】
１０１  パケット取捨選択装置
１０３  ライトバッファ
１０５  記録媒体
１０７  ＣＰＵ用メモリ
１０９  ＣＰＵ
１１１  パケット改変装置
【図１】
0003857077.tif 000002
【図２】
0003857077.tif 000003
【図３】
0003857077.tif 000004
【図４】
0003857077.tif 000005
【図５】
0003857077.tif 000006
【図６】
0003857077.tif 000007
【図７】
0003857077.tif 000008