(57)【特許請求の範囲】
【請求項１】
ＭＰＥＧ２−ＴＳ（トランスポートストリーム）を入力し、その中の特定のコードを検出しながら記録媒体に記録し、記録媒体中のストリームデータを、復号を行なう再生装置へ転送するデータ転送方法において、
特定コードからのストリームデータを転送したい場合、特定コードを含むＴＳパケットを加工し、ＴＳやＰＥＳ（パケッタイズドエレメンタリストリーム）の構造を破壊しないように特定コード以前の余分なデータを削除してデータを転送することを特徴とするデータ転送方法。
【請求項２】
請求項１記載において、
前記特定コードは、ストリーム中に含まれるシーケンスヘッダコードであることを特徴とするデータ転送方法。
【請求項３】
請求項１または２記載において、
前記ＴＳパケットの加工では、該ＴＳパケット中の特定コードの前に、新たなＰＥＳ（パケッタイズドエレメンタリーストリーム）パケットのヘッダを含ませることを特徴とするデータ転送方法。
【請求項４】
請求項１または２記載において、
前記ＴＳパケットの加工では、特定コードを含むＴＳパケットの前に、新たなＰＥＳパケットのヘッダを含むＴＳパケットを配置することを特徴とするデータ転送方法。
【請求項５】
ＭＰＥＧ２−ＴＳを入力し、その中の特定のコードを検出しながら記録媒体に記録し、記録媒体中のストリームデータを、復号を行なう再生装置へ転送するデータ転送方法において、
特定コードまでのストリームデータを転送する場合、特定コードを含むＴＳパケットを加工し、ＴＳやＰＥＳの構造を破壊しないように特定コードを含む以降の余分なデータを削除してデータを転送することを特徴とするデータ転送方法。
【請求項６】
請求項５記載において、
前記特定コードは、ストリーム中に含まれるシーケンスヘッダコードであることを特徴とするデータ転送方法。
【請求項７】
請求項５記載において、
前記特定コードは、ストリーム中に含まれるピクチャ開始コードであることを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ（Moving Picture Experts Group）２−ＴＳ（Transport Stream；トランスポートストリーム）を入力し、その中の特定のコードを検出しながら記録媒体に記録し、記録媒体中のストリームデータを、復号を行なう再生装置へ転送するデータ転送方法に関する。
【０００２】
【従来の技術】
近年、ＭＰＥＧ１、ＭＰＥＧ２等のデジタル圧縮技術の標準化が進み、また、高性能なＣＰＵ、メモリ、蓄積媒体が低価格で入手できるようになってきている。そこで、映像データや音声データをデジタル化して蓄積し、蓄積されたデータを再生するマルチメディア機器が数多く商品化されつつある。
【０００３】
このようなマルチメディア機器の場合、ストリームの途中から再生したり、追っかけ再生や、早速りなどの特殊再生を行なう必要があるが、ＭＰＥＧを用いたシステムでは、フレーム内符号化されたフレームから転送したり、フレーム内符号化とフレーム間符号化の単位となるＧＯＰ（Group of Picture）を単位として転送したり、フレーム内符号化されたフレームだけを転送するなど、フレーム内符号化されたフレームや、ＧＯＰの起点となるシーケンスヘッダコード（以後、ＳＨＣと記す）、ＧＯＰ開始コード（以後、ＧＳＣと記す）、ピクチャ開始コード（以後、ＰＳＣと記す）のいずれかをインデックシングして、その位置からのストリームを記録媒体から読み出し、復号を行なう装置へ転送することによって、再生を行なうことが多い。
【０００４】
例えば、特開平１０−２８５５５５号公報には、ＳＨＣ（シーケンスヘッダコード）の先頭位置がセクタの先頭部に一致するよう記録する技術が開示されている。また、特開平７−１７０４８８号公報には、ＳＨＣの先頭位置からデータを読み出す技術が開示されている。
【０００５】
これらの従来技術は、映像がエレメンタリストリーム（Elementary Stream；以後、ＥＳと記す）で構成されているときには問題はないが、多重化されたストリームを扱うときには、対応できない場合が発生する。
【０００６】
ＭＰＥＧ２では、ＥＳのほかにも、ＥＳを複数のパケットに分割したパケッタイズドエレメンタリストリーム（Packetized Elementary Stream；以後、ＰＥＳと記す）や、ＰＥＳを分割したトランスポートストリーム（Transport Stream；以後、ＴＳと記す）や、複数のＰＥＳパケットをパック化した構成を持つプログラムストリーム（Program Stream；以後ＰＳ）という構成をとることがある。
【０００７】
特に、ＴＳは、映像、音声、データを多重化して扱えたり、固定長のパケット単位で転送することが出来るなどの理由から、デジタル放送などで利用されている。
【０００８】
図８に、ＴＳを構成するパケットの構造を示す。ＴＳパケットは、４バイト固定長のパケットヘッダ、可変長のアダプテーションフィールド及びペイロードから構成される、１８８バイト固定長のパケットである。
【０００９】
パケットヘッダは、同期バイト、ＰＩＤ、アダプテーションフィールド制御フラグ、巡回カウンタ、その他フラグによって構成される。同期バイトは、その位置がＴＳパケットの先頭であることを示すコードを含む１バイトデータである。ＰＩＤは、パケットの識別を行なうための１３ビットで表された番号であり、映像や音声は、それぞれ異なるＰＩＤを持つ複数のＴＳパケットのペイロード中に分割して伝送される。アダプテーション制御フラグは、そのパケット中にアダプテーションフィールドやペイロードが含まれているかを示す２ビットのフラグである。図８の（ａ）は、アダプテーションフィールドとペイロードが含まれている場合のパケット構造を示し、図８の（ｂ）は、ペイロードのみが含まれている場合のパケット構造を示している。巡回カウンタは、同じＰＩＤを持つＴＳパケット間で、０ｘ００から０ｘ０ｆまでの値を巡回するように設定された値を含む４ビットのデータである。その他のフラグには、ペイロード中に新たなＰＥＳパケットが開始されることを示すフラグ等がある。
【００１０】
アダプテーションフィールドは、アダプテーションフィールド長、フラグ、オプショナルフィールド、スタッフィングバイトから構成される。アダプテーションフィールド長は、フラグ以降のアダプテーションフィールドの長さをバイト単位で表した１バイトデータである。オプショナルフィールドは、同期情報などが含まれる領域であり、フラグによって情報の有無が示された可変長の領域である。スタッフィングバイトは、ダミーのデータであり、アダプテーションフィールドの残り領域を満たす。
【００１１】
ペイロードには、伝送すべきデータが含まれる。
【００１２】
ＰＥＳは、ＴＳやＰＳを構成する基本要素であり、両ストリーム間の変換を可能とするための中間ストリームである。図９に、ＰＥＳを構成するパケットの構造を示す。
【００１３】
先頭開始コードは、その位置がＰＥＳパケットの先頭であることを示す固定値を含む３バイトデータである。ストリームＩＤは、ＰＥＳパケット中に含まれるＥＳの種別（映像、音声など）を識別するための番号を含む１バイトデータである。パケット長は、ＰＥＳパケット中のバイト数を規定する値を含む２バイトデータである。ＰＥＳパケット中のデータが映像ＥＳの場合のみ、パケット長が規定されない値０を設定することが出来る。ＰＥＳヘッダ長は、コンディショナルコーディング領域のバイト数を規定する１バイトデータである。コンディショナルコーディングは、１４ビットのフラグによって情報の有無が示された可変長の領域である。パケットデータは、伝送すべきＥＳデータが含まれる。
【００１４】
映像ストリームは、ＥＳストリームをＰＥＳパケットに分割して、さらにＴＳパケットに分割された形式で伝送される。図１０に、ＴＳパケットとＰＥＳパケットとＥＳの関係を示す。
【００１５】
映像ストリームは、フレーム内符号化されたフレームを表すピクチャデータと、フレーム間符号化されたフレームを表すピクチャデータで構成され、各データは、ＰＳＣ（ピクチャ開始コード）で始まる領域に格納される。また、ストリーム中には、ＧＯＰ（グループオブピクチャ）を表すためのＧＳＣ（ＧＯＰ開始コード）やＳＨＣ（シーケンスヘッダコード）が挿入されている。このストリームを分割したものがＰＥＳパケットであり、さらにＴＳパケットに分割される。
【００１６】
【発明が解決しようとする課題】
ここで、ストリームの途中から再生するために、ＧＯＰの起点となるＳＨＣからのデータを転送する場合、ＳＨＣがＰＥＳパケットやＴＳパケット内でどのように格納されているかが問題となる。図１０に示した例では、ＳＨＣは、ＴＳパケットではＴＳ２とＴＳ８に、ＰＥＳパケットではＰＥＳ１とＰＥＳ３に格納されている。
【００１７】
ＳＨＣから再生するためにＳＨＣ以降のデータを転送すると、ＴＳパケットの途中から再生することになり、ＴＳパケットのデータが１８８バイト毎のバウンダリに対してずれてしまう。
【００１８】
また、ＳＨＣを含むＴＳパケットの開始位置から再生しようとした場合には、その基本要素であるＰＥＳパケットが途中で切れてしまうため、異常な状態で転送されてしまう。
【００１９】
早送りのためにピクチャ単位でデータを転送する場合も、同様である。ＰＳＣからデータを転送した場合は、ＴＳパケットを途中から再生することになり、また、ＰＳＣを含むＴＳパケットの開始位置から再生しようとしても、ＰＥＳパケットが途中で切れてしまうため、異常な状態で転送されてしまう。
【００２０】
再生を停止するために、次のＳＨＣが現れるまでのデータを転送する場合にも、同様な事態が発生する。
【００２１】
このような構造が異常なストリームを、復号を行なう装置へ転送すると、復号できない、もしくは異常な動作をすることが予想される。従って、従来技術のように、ＳＨＣからのデータを読み出したり、ＳＨＣを含むＴＳパケットから読み出すのでは、このようなストリームを再生することが出来ない。
【００２２】
本発明は、このような問題に鑑みなされたものであり、その目的とするところは、映像データや音声データをデジタル化したストリームを蓄積し、その中に含まれるデータのＳＨＣ、ＧＳＣ、ＰＳＣなどの位置をインデックシングし、インデックスデータを利用して、ストリームの途中から、もしくは途中までを再生するようなマルチメディア機器において、扱うストリームがＴＳストリームであった場合においても、ＴＳやＰＥＳの構造を破壊せず、正しく復号を行なうことが出来るようにすることにある。
【００２３】
【課題を解決するための手段】
本発明では、上記した目的を達成するため、記録媒体からストリームデータを読み出す際に、転送すべきＳＨＣが含まれるＴＳパケットを加工する。
【００２４】
例えば、再生などの場合で、ＳＨＣ以降のデータが必要な場合、そのＴＳパケットからＳＨＣ以前のデータを削除すればよい。この場合には、ＳＨＣを含むＰＥＳの構造が崩れてしまうが、ＰＥＳパケットのヘッダを追加することにより、新たなＰＥＳを作成することによって対処する。ＰＥＳパケットのヘッダは、図９で示しているように９バイトで構成される。ＰＥＳヘッダの挿入位置としては、シーケンスヘッダを含むＴＳに挿入する場合と、ＳＨＣを含むＴＳの前に、ＰＥＳヘッダで構成されるＴＳを含む場合が考えられる。
【００２５】
また、再生停止などの場合で、ＳＨＣ以前のデータが必要な場合、そのＴＳパケットからＳＨＣ以降のデータを削除すればよい。削除では、ペイロードのデータをずらして、アダプテーションフィールドの長さを長くし、その領域をスタッフィングバイトで埋めれば良い。
【００２６】
また、早送りなど特定のピクチャだけを抽出したいような場合は、そのピクチャの次に位置するピクチャのＰＳＣ以前のデータが必要となる。この場合は、該当するＰＳＣを含むＴＳから、ＰＳＣ以降のデータを削除すればよい。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を用いて説明する。
【００２８】
＜第１実施形態＞
本実施形態は、特定コードからのデータを転送したい場合に、特定コードを含むＴＳパケットを加工し、特定コード以前のデータを削除して、データを転送するようにした、データ転送方法の適用例である。なお、本実施形態では、特定コードとしてＳＨＣを用いるが、ＧＳＣやＰＳＣなどに対して行なってもよい。
【００２９】
図４は、本実施形態によるパケット加工の例を示す図である。図４中で上に位置するＴＳパケットは、その中にＳＨＣを含むパケットを表している。ＳＨＣ以降に位置する斜線領域は、ＳＨＣと共に転送したいデータが含まれた領域であり、ＳＨＣ以前の点模様の領域は、ＳＨＣ以前のＧＯＰに含まれているデータである。このデータを転送すると、ＴＳを復号するデコーダが異常を発生する場合があるため、ＴＳパケットからＳＨＣ以前の点模様の領域のデータを削除する。ただし、そのまま削除してしまうと、該ＴＳに属するＰＥＳパケットは、ヘッダのないパケットとなってしまうため、ＰＥＳパケットのヘッダを挿入する必要が有る。
【００３０】
本実施形態では、この領域を削除するために、アタプテーションフィールドのスタッフィングバイトの機能を利用する。データを削除する代わりに、オプショナルフィールドを持たないアダプテーションフィールドを作成し、削除データの領域をスタッフィングバイトで埋めて、新たなＰＥＳヘッダをＳＨＣの前に挿入し、該ＴＳパケットがＰＥＳパケットの開始であることを示すフラグをＯＮにすることによって、目的のＴＳパケットを得ることが出来る。
【００３１】
図４中で下に位置するＴＳパケットが、加工後のＴＳパケットである。オプショナルフィールドのないアダプテーションフィールドを作成するために、アダプテーションフィールド長とアダプテーションフィールド内のフラグを表す領域を設け、フラグには、オプショナルフィールドがないことを示す値を設定し（図中ＯＦＦ）、アダプテーションフィールド長を削除したデータよりも１０バイト少ない値に設定する。これは、新たなＰＥＳパケットヘッダの９バイトを挿入するためと、アダプテーションフィールド長の領域はカウントされないためである。アダプテーションフィールドの残りの領域には、スタッフィングバイトを挿入する。
【００３２】
図１は、本実施形態による、ＳＨＣを含むＴＳパケットを加工し、ＳＨＣ以前のデータを削除する処理を示すフローチャートである。
【００３３】
まず、ＳＨＣを含むパケットに注目し、該当ＴＳ先頭からのオフセットバイト数を求める（ステップＳ１０１）。以降、この値をＸとして表す。フラグ領域内の、該当ＴＳが新たなＰＥＳパケットの開始であることを表すビットを、ＯＮにする（ステップＳ１０２）。アダプテーションフィールド制御フラグをＯＮにし、該当ＴＳにアダプテーションフィールドが存在することを表す（ステップＳ１０３）。
【００３４】
次に、アダプテーションフィールド長の値として、Ｘ−１４を設定し（ステップＳ１０４）、アダプテーションフィールド内のフラグ領域の値として全てのフラグをＯＦＦにした値を設定する（ステップＳ１０５）。これによって、このＴＳ内にオプショナルフィールドがないことが表される。
【００３５】
続いて、パケット先頭から７バイト目の位置から、Ｘ−１５バイトのスタッフィングバイトを挿入し（ステップＳ１０６）、次のバイト位置からＰＥＳヘッダを挿入する（ステップＳ１０７）。
【００３６】
このフローチャートの処理によって、該当するＴＳは、新たなＰＥＳパケットから開始され、かつ、その中に含まれるＥＳもＳＨＣから開始される。
【００３７】
ＧＳＣやＰＳＣに対して処理する場合は、フローチャート中のＳＨＣをＧＳＣやＰＳＣに置き換えて実行すればよい。ＧＳＣやＰＳＣを持つパケットに対して処理を行なった場合は、該当するＴＳは、新たなＰＥＳパケットから開始され、かつ、その中に含まれるＥＳもＧＳＣやＰＳＣから開始されるようになる。
【００３８】
＜第２実施形態＞
本実施形態は、特定コードからのデータを転送したい場合に、特定コードを含むＴＳパケットを加工し、特定コード以前のデータを削除して、加工するＴＳパケットの前に新たなＰＥＳヘッダを含むＴＳパケットを配置して、データを転送する、データ転送方法の適用例である。本実施形態でも、特定コードとしてＳＨＣを用いるが、ＧＳＣやＰＳＣなどに対して行なってもよい。
【００３９】
図５は、本実施形態によるパケット加工の例を示す図である。図５中で上に位置するＴＳパケットは、その中にＳＨＣを含むパケットを表している。第１実施形態と同様に、ＳＨＣ以降に位置する斜線領域は、ＳＨＣと共に転送したいデータが含まれた領域であり、ＳＨＣ以前の点模様の領域は、ＳＨＣ以前のＧＯＰに含まれているデータである。従って、ＴＳパケットから、この点模様の領域のデータを削除すればよい。ただし、そのまま削除してしまうと、該ＴＳに属するＰＥＳパケットは、ヘッダのないパケットとなってしまうため、ＰＥＳパケットのヘッダを挿入する必要が有る。
【００４０】
本実施形態では、該当ＴＳの前に位置するＴＳパケットを作成し、ＰＥＳパケットのヘッダとＳＨＣをその中に含ませる。このパケットは、ＰＥＳパケットヘッダとＳＨＣコードのみをデータとして持つパケットである。ＰＩＤやフラグ、カウンタは必要な値に設定する。
【００４１】
また、該当ＴＳから点模様の領域とＳＨＣを削除するために、アダプテーションフィールドのスタッフィングバイトの機能を利用する。データを削除する代わりに、オプショナルフィールドを持たないアダプテーションフィールドを作成し、削除データの領域をスタッフィングバイトで埋めることで、目的のＴＳパケットを得ることが出来る。
【００４２】
図５中で下に位置するＴＳパケットが、加工後のＴＳパケットである。同図中の右下に位置するパケットは、ＳＨＣを含んでいたパケットであり、オプショナルフィールドのないアダプテーションフィールドを作成するために、アダプテーションフィールド長とアダプテーションフィールド内のフラグを表す領域を設け、フラグには、オプショナルフィールドがないことを示す値を設定し（図中ＯＦＦ）、アダプテーションフィールド長の値として、削除したデータよりも１バイト少ない値に設定する。アダプテーションフィールドの残りの領域には、スタッフィングバイトを挿入する。
【００４３】
図５中の左下に位置するパケットは、ＳＨＣを含んでいたＴＳパケットの前に挿入するＴＳパケットであり、ペイロード中にＰＥＳパケットヘッダとＳＨＣを含んでいる。ペイロード領域を短くするために、オプショナルフィールドのないアダプテーションフィールドを作成している。アダプテーションフィールド長とアダプテーションフィールド内のフラグを表す領域を設け、フラグには、オプショナルフィールドがないことを示す値を設定し（図中ＯＦＦ）、アダプテーションフィールド長を、値１７０に設定する。この値は、スタッフィングバイトとアダプテーション内のフラグを合せた領域数を示す。ＴＳヘッダ内のＰＩＤには、図中の右下に位置するパケットと同一の値を設定し、該ＴＳパケットがＰＥＳパケットの開始であることを示すフラグをＯＮにする。また、カウンタの値は、図中右下に位置するパケットの値よりも１つ小さい値を設定する。アダプテーション制御フラグには、アダプテーションが含まれていることを示す値を設定する。
【００４４】
図２は、本実施形態による、ＳＨＣを含むＴＳパケットを加工し、ＳＨＣ以前のデータを削除する処理のフローチャートである。
【００４５】
まず、ＳＨＣを含むパケットに対して処理を行なう。ＳＨＣを含むパケットに注目し、該当ＴＳ先頭からのオフセットバイト数を求める（ステップＳ２０１）。以降、この値をＸとして表す。アダプテーションフィールド制御フラグをＯＮにし、該当ＴＳにアダプテーションフィールドが存在することを表す（ステップＳ２０２）。
【００４６】
次に、アダプテーションフィールド長の値としてＸ−１を設定する（ステップＳ２０３）。アダプテーションフィールド内のフラグ領域の値として全てのフラグをＯＦＦにした値を設定する（ステップＳ２０４）。これによって、このＴＳ内にオプショナルフィールドがないことが表される。
【００４７】
次に、パケット先頭から７バイト目の位置から、Ｘ−２バイトのスタッフィングバイトを挿入する（ステップＳ２０５）。
【００４８】
次に、１つ前のＴＳパケットを処理するために、１つ前のＴＳの先頭位置に移動する（ステップＳ２０６）。まず、当該ＴＳのヘッダを設定する（ステップＳ２０７）。ヘッダには、同期バイト、フラグ領域、カウンタ、ＰＩＤが含まれる。カウンタは、ステップＳ２０１〜Ｓ２０５で処理したＴＳパケットの値よりも１つ少ない値を設定し、ＰＩＤは同一の値を設定する。また、フラグでは、当該ＴＳからＰＥＳパケットが開始されることを示すフラグとアダプテーションフィールドを含むことを示すフラグを設定する。
【００４９】
次に、アダプテーションフィールド長を格納する領域に、固定値１７０を設定し（ステップＳ２０８）、アダプテーションフィールド内のフラグを、オプショナルフィールドを含まないことを示す値に設定する（ステップＳ２０９）。
【００５０】
次に、パケット先頭７バイト目から、１６９バイトのスタッフィングバイトを挿入し（ステップＳ２１０）、最後に、ＰＥＳパケットのヘッダと、ＳＨＣを挿入する（ステップＳ２１１、ステップＳ２１２）。
【００５１】
このフローチャートの処理によって、ＴＳは、新たなＰＥＳパケットから開始され、かつ、その中に含まれるＥＳも、ＳＨＣから開始される。
【００５２】
ＧＳＣやＰＳＣに対して処理する場合は、フローチャート中のＳＨＣをＧＳＣやＰＳＣに置き換えて実行すればよい。ＧＳＣやＰＳＣを持つパケットに対して処理を行なった場合は、該当するＴＳは、新たなＰＥＳパケットから開始され、かつ、その中に含まれるＥＳも、ＧＳＣやＰＳＣから開始されるようになる。
【００５３】
本実施形態では、ＳＨＣを含むＴＳからデータを削除した後に、ＰＥＳパケットヘッダを含むＴＳを作成したが、逆の順番で行なっても構わない。また、本実施形態では、ＳＨＣを前に位置するＴＳパケットに挿入する方法を示したが、ＳＨＣを該当ＴＳに残し、前のＴＳパケットにはＰＥＳパケットヘッダのみを含ませる方法も考えられる。
【００５４】
＜第３実施形態＞
本実施形態は、ＳＨＣまでのデータを転送する場合に、ＳＨＣを含むＴＳパケットを加工し、ＳＨＣを含むそれ以降のデータを削除して、データを転送する、データ転送方法の適用例である。
【００５５】
図６は、本実施形態によるパケット加工の例を示す図である。図６中で左に位置するＴＳパケットは、元となるＴＳパケット中にアダプテーションフィールドがない場合の加工前と加工後のＴＳパケットをそれぞれ表し、図６中で右に位置するＴＳパケットは、元となるＴＳパケット中にアダプテーションフィールドがある場合の加工前と加工後のＴＳパケットをそれぞれ表している。
【００５６】
まず、アダプテーションフィールドが存在する場合について説明する。図６中の右上のＴＳパケット内のＳＨＣ以前に位置する斜線領域は、転送したいデータが含まれた領域であり、ＳＨＣとＳＨＣの後に続く点模様の領域は、次のＧＯＰに含まれているデータである。転送するデータを区切りの良いものとするためには、このＳＨＣと点模様のデータを削除すればよい。この場合は、削除するデータの代わりに、アダプテーションフィールド中のスタッフィングバイト数を増加させることによって対処することが出来る。図６中の右下のＴＳパケットが、ＳＨＣと点模様のデータを削除した後のＴＳパケットである。
【００５７】
次に、アダプテーションフィールドが存在しない場合について説明する。図６中の左上のＴＳパケット内のＳＨＣ以前に位置する斜線領域は、転送したいデータが含まれた領域であり、ＳＨＣとＳＨＣの後に続く点模様の領域は、次のＧＯＰに含まれているデータである。転送するデータを区切りの良いものとするためには、アダプテーションフィールドが存在する場合と同様に、このＳＨＣと点模様のデータを削除すればよい。この場合は、アダプテーションフィールドを作成し、削除するデータの代わりにアダプテーションフィールド中をスタッフィングバイトで満たすことによって、対処することが出来る。
【００５８】
図６中の左下のＴＳパケットが、ＳＨＣと点模様のデータを削除した後のＴＳパケットである。アダプテーションフィールドを作成するために、アダプテーションフィールド長を格納する領域とアダプテーションフィールド内のフラグを用意し、残りをスタッフィングバイトとしている。アダプテーションフィールド長には、削除するデータ量から１を引いた値を、フラグには、オプショナルフィールドが含まれないことを示す値を設定する。また、このＴＳには、アダプテーションフィールドが含まれていることを示す値を、アダプテーションフィールド制御フラグに設定する。
【００５９】
図３は、本実施形態による、ＳＨＣを含むＴＳパケットを加工し、ＳＨＣ以降のデータを削除する処理のフローチャートである。
【００６０】
まず、ＳＨＣを含むパケットに注目し、該当ＴＳ先頭からのオフセットバイト数を求める（ステップＳ３０１）。以降、この値をＸとして表す。
【００６１】
次に、該当ＴＳのアダプテーション制御フラグを確認し、アダプテーションフィールドが存在するかをチェックする（ステップＳ３０２）。
【００６２】
ステップＳ３０２において、アダプテーションフィールドが存在することが確認された場合、そのアダプテーションフィールド長を獲得する（ステップＳ３０３）。以降、この値をＹとして表す。
【００６３】
次に、ＳＨＣより前に位置するデータＸ−Ｙ−５バイトを、該当ＴＳパケットの末尾にコピーし（ステップＳ３０４）、パケット先頭からＹ＋６バイト目、パケット末尾から数えてＸ−Ｙ−４バイト目の１８８−Ｘバイトの間をスタッフィングバイトで埋める（ステップＳ３０５）。最後に、アダプテーションフィールド長を、Ｙ＋１８８−Ｘで示される値に設定する（ステップＳ３０６）。
【００６４】
一方、ステップＳ３０２において、アダプテーションフィールドが存在しないことが確認された場合、ＳＨＣより前に位置するデータＸ−４バイトを、該当ＴＳパケットの末尾にコピーし（ステップＳ３０７）、パケット先頭から７バイト目、パケット末尾から数えてＸ−３バイト目の１８６−Ｘバイトの間をスタッフィングバイトで埋める（ステップＳ３０８）。
【００６５】
次に、アダプテーションフィールド長を格納する領域に、１８７−Ｘで示される値を設定し（ステップＳ３０９）、アダプテーションフィールド内のフラグに、オプショナルフィールドが含まれないことを示す値を設定する（ステップＳ３１０）。最後に、ＴＳヘッダ内のアダプテーション制御フラグに、該当ＴＳにはアダプテーションフィールドが含まれることを示す値に設定する（ステップＳ３１１）。
【００６６】
このフローチャートの処理によって、ＴＳは、ＧＯＰ単位で区切りのよい、目的となるデータまでを含むストリームとなる。
【００６７】
＜第４実施形態＞
本実施形態は、ＰＳＣまでのデータを転送する場合に、ＰＳＣを含むＴＳパケットを加工し、ＰＳＣを含むそれ以降のデータを削除して、データを転送する、データ転送方法の適用例である。
【００６８】
図７は、本実施形態によるパケット加工の例を示す図である。図７中で左に位置するＴＳパケットは、元となるＴＳパケット中にアダプテーションフィールドがない場合の加工前と加工後のＴＳパケットをそれぞれ表し、図７中で右に位置するＴＳパケットは、元となるＴＳパケット中にアダプテーションフィールドがある場合の加工前と加工後のＴＳパケットをそれぞれ表している。
【００６９】
まず、アダプテーションフィールドが存在する場合について説明する。図７中の右上のＴＳパケット内のＰＳＣ以前に位置する斜線領域は、転送したいデータが含まれた領域であり、ＰＳＣとＰＳＣの後に続く点模様の領域は、次のピクチャに含まれているデータである。転送するデータを区切りの良いものとするためには、このＰＳＣと点模様のデータを削除すればよい。この場合は、削除するデータの代わりに、アダプテーションフィールド中のスタッフィングバイト数を増加させることによって、対処することが出来る。図７中の右下のＴＳパケットが、ＰＳＣと点模様のデータを削除した後のＴＳパケットである。
【００７０】
次に、アダプテーションフィールドが存在しない場合について説明する。図７中の左上のＴＳパケット内のＰＳＣ以前に位置する斜線領域は、転送したいデータが含まれた領域であり、ＰＳＣとＰＳＣの後に続く点模様の領域は、次のピクチャに含まれているデータである。転送するデータを区切りの良いものとするためには、アダプテーションフィールドが存在する場合と同様に、このＰＳＣと点模様のデータを削除すればよい。この場合は、アダプテーションフィールドを作成し、削除するデータの代わりにアダプテーションフィールド中をスタッフィングバイトで満たすことによって、対処することが出来る。
【００７１】
図７中の左下のＴＳパケットが、ＰＳＣと点模様のデータを削除した後のＴＳパケットである。アダプテーションフィールドを作成するために、アダプテーションフィールド長を格納する領域とアダプテーション内のフラグを用意し、残りをスタッフィングバイトとしている。アダプテーションフィールド長には、削除するデータ量から１を引いた値を、フラグには、オプショナルフィールドが含まれないことを示す値を設定する。また、このＴＳには、アダプテーションフィールドが含まれていることを示す値を、アダプテーションフィールド制御フラグに設定する。
【００７２】
本実施形態の処理は、図３で示したフローチャートで、ＳＨＣをＰＳＣに置き換えて実行することによって達成される。
【００７３】
このフローチャートの処理によって、ＴＳは、ピクチャ単位で区切りのよい、目的となるデータまでを含むストリームとなる。
【００７４】
【発明の効果】
請求項１に係る発明では、ストリームを構成するパケット内に含まれる余分なデータを削除して転送することが出来るため、ストリームの途中から再生を開始するような場合において、ＴＳパケットを単位とした転送を行なっても、余分なデータを含まないデータを転送することが出来る。
【００７５】
請求項２に係る発明では、ＳＨＣから始まるデータを含むＴＳを転送することが出来るため、ＧＯＰを単位としてデータを転送するような場合においても、ＴＳパケットを単位とした、余分なデータを含まないデータを転送することが出来る。
【００７６】
請求項３に係る発明では、ＳＨＣがＰＥＳパケットの途中から開始していても、新たなＰＥＳパケットヘッダを含むＰＥＳパケットとして正しいデータを送付することが出来るため、ＳＨＣを含むＴＳパケットから転送を行なっても、復号を行なう装置が正しく動作できるストリームを送出することが出来る。
【００７７】
請求項４に係る発明では、新たに追加するパケットは、固定長のパケットであり、また、ＳＨＣを含むパケットに対しては、余分なデータを削除するだけで済むので、余分なデータを削除して、ＰＥＳヘッダを追加する仕組みを簡素化することが出来る。
【００７８】
請求項５に係る発明では、ストリームを構成するパケットの末尾に位置する余分なデータを削除して転送することが出来る。
【００７９】
請求項６に係る発明では、ＧＯＰの末尾までを含むストリームを転送することが出来るため、再生停止などの場合においても、復号を行なう装置が正しく動作できるストリームを送出することが出来る。
【００８０】
請求項７に係る発明では、ピクチャの末尾までを含むストリームを転送することが出来るため、早送りなどでピクチャ単位で転送を行なっても、復号を行なう装置が正しく動作できるストリームを送出することが出来る。
【図面の簡単な説明】
【図１】本発明の第１実施形態による処理フローを示すフローチャート図である。
【図２】本発明の第２実施形態による処理フローを示すフローチャート図である。
【図３】本発明の第３実施形態による処理フローを示すフローチャート図である。
【図４】本発明の第１実施形態によるパケット加工の例を示す説明図である。
【図５】本発明の第２実施形態によるパケット加工の例を示す説明図である。
【図６】本発明の第３実施形態によるパケット加工の例を示す説明図である。
【図７】本発明の第４実施形態によるパケット加工の例を示す説明図である。
【図８】ＴＳパケットの構成を示す説明図である。
【図９】ＰＥＳパケットの構成を示す説明図である。
【図１０】ＴＳパケットとＰＥＳパケットとＥＳの関係を示す説明図である。
【図１】
0003645479.tif 000002
【図２】
0003645479.tif 000003
【図３】
0003645479.tif 000004
【図４】
0003645479.tif 000005
【図５】
0003645479.tif 000006
【図６】
0003645479.tif 000007
【図７】
0003645479.tif 000008
【図８】
0003645479.tif 000009
【図９】
0003645479.tif 000010
【図１０】
0003645479.tif 000011