(57)【要約】【課題】ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のＡＶ機器が利用できるデータストリームを生成する仕組みを提供する。【解決手段】データストリーム解析装置１は、ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力して保持するストリームバッファ１１と、可変長のデータストリームに関するストリーム情報を保持するストリーム情報保持部１２と、新たに入力した入力データとストリーム情報とを解析し、ヘッダ情報を検出できない場合、入力データとストリーム情報とを用いて、新たなストリーム情報を生成してストリーム情報保持部へ格納し、ヘッダ情報を検出した場合、入力データに含まれる転送情報を出力するデータ解析部１３と、を備える。【選択図】図１
2009260643.tif 000002
【特許請求の範囲】
【請求項１】
ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力して保持するバッファと、
前記データストリームに関するストリーム情報を保持するストリーム情報保持部と、
新たに入力した入力データと前記ストリーム情報とを解析し、前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、新たなストリーム情報を生成して前記ストリーム情報保持部へ格納し、前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力するデータ解析部と、を備えるデータストリーム解析装置。
【請求項２】
前記ストリーム情報保持部は、ストリーム情報として、前記入力データの少なくとも一部分である断片データと、前記転送情報の総情報量から前記データ解析部が既に出力した情報量を差し引いた情報残量との少なくとも一方を保持することを特徴とする請求項１記載のデータストリーム解析装置。
【請求項３】
前記データ解析部は、
前記情報残量がゼロであって、前記断片データを保持していない場合、前記入力データから前記ヘッダ情報を検索し、前記ヘッダ情報が取得できるまで、検出したヘッダ情報の一部分をストリーム情報として前記ストリーム情報保持部へ格納し、前記ヘッダ情報が取得できた後、前記ヘッダ情報から前記転送情報の先頭位置と前記総情報量とを取得することによって、前記転送情報の出力を開始し、
前記ストリーム情報保持部が前記情報残量を保持している場合、前記入力データを出力するとともに、前記情報残量を更新することを特徴とする請求項２記載のデータストリーム解析装置。
【請求項４】
前記データ解析部は、前記情報残量がゼロになるまで、前記バッファに入力された入力データを順次出力し、前記情報残量がゼロになっておらず、かつ、未処理の前記入力データがない場合、次に入力データが入力されたときに、残りの転送情報を出力する処理を前記情報残量がゼロになるまで繰り返すことを特徴とする請求項２または３記載のデータストリーム解析装置。
【請求項５】
前記データ解析部は、前記情報残量がゼロになったときに、前記バッファが未処理の入力データを保持している場合、前記ヘッダ情報を検索する処理を再度行うことを特徴とする請求項２乃至４のいずれか一項に記載のデータストリーム解析装置。
【請求項６】
前記データ解析部は、前記ヘッダ情報を検出した場合、データ出力先の機器が必要とする情報を前記ヘッダ情報から選択して出力することを特徴とする請求項１乃至５のいずれか一項に記載のデータストリーム解析装置。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載のデータストリーム解析装置と、
前記データストリーム解析装置が出力する転送情報を固定長ストリームに変換するデータ変換部と、
前記固定長ストリームを格納する変換データバッファと、
前記固定長ストリームを復号する復号部と、を備える復号装置。
【請求項８】
前記データ解析部は、検出したヘッダ情報と、前記転送情報とを出力し、
前記データ変換部は、前記固定長ストリームとして前記復号部が処理できる形式を選択し、前記ヘッダ情報と前記転送情報とを固定長ストリームに変換することを特徴とする請求項７記載の復号装置。
【請求項９】
前記データストリーム解析装置は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）１またはＭＰＥＧ２−ＰＳ形式のデータストリームを入力し、
前記データ変換部は、前記解析装置から出力されるデータをＴＳパケットに変換して前記変換データバッファへ格納することを特徴とする請求項７または８記載の復号装置。
【請求項１０】
ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力してバッファに保持し、
過去に入力した入力データから抽出した、前記データストリームに関するストリーム情報をストリーム情報保持部に保持し、
新たに入力した入力データと前記ストリーム情報とを解析し、
前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、ストリーム情報を生成して前記ストリーム情報保持部へ格納し、
前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力するデータストリーム解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長ストリームデータを解析する技術に関し、特に、ネットワーククライアントとして、転送データ単位が特定されない可変長ストリームデータを解析する技術に関する。
【背景技術】
【０００２】
従来から、民生用デジタルＡＶ機器は、放送とディスクメディアを扱ってきていた。例えば、ＭＰＥＧ（Moving Picture Experts Group）のデータでは、ＡＶ機器に搭載されるデータ処理部は、パケット長が固定、かつパケット単位でアラインされたストリームを扱うのが一般的であった。パケット長が固定であるため、ＡＶ機器は、パケットの位置を容易に検索することが可能であった。
【０００３】
これに対し、ネットワーク（例えば、インターネット）を利用するサーバとクライアントとの間において、パケット長が固定、かつパケット単位でアラインされたストリームを送信するという取り決めがなかった。従って、クライアントは、パケット長が可変であり、パケット単位でアラインされていないストリームを受信することになる。
【０００４】
近年、民生用デジタルＡＶ機器がネットワークと接続されるようになっている。このようなアプリケーションが取り扱うデータとして、パーソナルコンピュータやデジタルカメラなどで作成されたパケット可変長のストリームが含まれるようになってきた。
【０００５】
また、転送元のサーバは、処理量低減のため、データを解析せず、データ内容にかかわらず、所定のデータ長（例えば、５１２ＫＢ）といったまとまったデータサイズで転送するのが一般的であった。
【０００６】
例えば、特許文献１には、復号処理の高速化を図ることを目的とする可変長コード復号装置が開示されている。この可変長コード復号装置によれば、ストリームバッファに蓄積される前に、可変長コードを固定長コードに変換し、該変換した固定長コードをストリームバッファに蓄積し、該蓄積された固定長コードをデコーダ内において復号している。
【０００７】
特許文献１に開示された技術は、完全な可変長ストリームを取り扱うものであった。すわなち、可変長ストリームが途中で途切れるなど、データ転送の悪条件や不完全な状態のデータストリーム、あるいは、パケットアラインを無視したデータストリームには対応していなかった。また、特許文献１では、映像符号のみを対象としており，ＭＰＥＧ１、ＭＰＥＧ２−ＰＳのシステムレイヤでの情報転送に適用することはできなかった。
【特許文献１】特開２００４−３４３４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
近年、ネットワークを利用するクライアントにおいて、サーバから映像などの可変長データストリームを受信する機会が増加している。このような状況から、クライアントとなる復号装置において、転送された可変長データストリームを解釈する必要が生じていた。例えば、クライアントは、サーバがパケットアラインを無視して転送するパケット可変長のＭＰＥＧ１、ＭＰＥＧ２プログラムストリームを取り扱う必要が生じていた。
【０００９】
また、クライアントにおいて、解釈したデータストリームを既存のデジタルＡＶ機器が利用できるように変換することが望まれていた。特に、パケットアラインを無視して転送される可変長データストリームが転送される場合、デジタルＡＶ機器が搭載する機能を変更することなく利用できる固定長パケットが提供されることが望まれていた。
【００１０】
このように、ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のＡＶ機器が利用できるデータストリームを生成する仕組みを提供することが望まれていた。
【課題を解決するための手段】
【００１１】
本発明に係るデータストリーム解析装置の一態様は、ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力して保持するバッファと、前記データストリームに関するストリーム情報を保持するストリーム情報保持部と、新たに入力した入力データと前記ストリーム情報とを解析し、前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、新たなストリーム情報を生成して前記ストリーム情報保持部へ格納し、前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力するデータ解析部と、を備える。データストリーム解析装置は、今回入力した入力データと、既に入力している入力データとを用いて、可変長データストリームに含まれるヘッダ情報を検出する。検出したヘッダ情報を用いて、転送情報を出力する。出力する情報としては、出力先の機器が利用する情報を出力する。このようにして、可変長のデータストリームが複数に分割されて届く場合にも出力先の機器が利用する情報を出力することができる。
【００１２】
また、本発明に係る復号装置の一態様は、上記記載のデータストリーム解析装置と、前記データストリーム解析装置が出力する転送情報を固定長ストリームに変換するデータ変換部と、前記固定長ストリームを格納する変換データバッファと、前記固定長ストリームを復号する復号部と、を備える。データストリーム解析装置が復号部に必要な情報を出力し、データ変換部が復号部で利用できるデータ配置に変換する。このようにして、可変長のデータストリームが複数に分割されて届く場合にも、データを欠損させることなく、復号部が可変長のデータストリームを復号することができる。
【００１３】
さらに、本発明に係るデータストリーム解析方法の一態様は、ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力してバッファに保持し、過去に入力した入力データから抽出した、前記データストリームに関するストリーム情報をストリーム情報保持部に保持し、新たに入力した入力データと前記ストリーム情報とを解析し、前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、ストリーム情報を生成して前記ストリーム情報保持部へ格納し、前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力する。
【発明の効果】
【００１４】
本発明によれば、ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のＡＶ機器が利用できるデータストリームを生成する仕組みを提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１６】
（実施形態１）
実施形態１では、可変長のデータストリームがデータアラインを無視して送信される場合に、まず、ヘッダ情報を検索し、ヘッダ情報を検出した後、転送情報を出力する仕組みを提供する解析装置及び方法、並びに、解析装置を用いる復号装置について説明する。また、この仕組みでは、ＡＶ機器において、転送されてくる可変長のデータストリームに含まれるヘッダ情報と転送情報のうち、ヘッダ情報の一部分または全部、及び、転送情報が必要とされていることを前提とする。
図１は、本発明に係る解析装置の構成例を示すブロック図である。解析装置（データストリーム解析装置）１は、ストリームバッファ１１、ストリーム情報保持部１２、及びデータ解析部１３を備える。
【００１７】
ストリームバッファ１１は、外部から入力する可変長データストリームを保持する。可変長データストリームは、ヘッダ情報と転送情報（ペイロード、コンテンツ）とを含み、例えば、ネットワークを介してサーバから送信される。ストリームバッファ１１は、可変長データストリーム全部を入力して保持する場合、可変長データストリームの一部分を入力して保持する場合があり得る。以降の説明において、ストリームバッファ１１が一回の入力で保持する可変長データストリームの全部または一部分を「入力データ」という。
【００１８】
また、本明細書において、データ配置は、ヘッダ情報及び転送情報の配置構造を意味し、例えば、パケットの配列を定めるパケットアラインなどである。データ配置は、取り扱うデータの種類によって定められているものとする。データ配置は、サーバ側とクライアント側、あるいは、送信側と受信側において、あらかじめ取り決めてられているものであり、この取り決めに沿ってそれぞれの装置においてデータを取り扱うことが可能になる。例えば、ＭＰＥＧにおいて定められているデータ配置が含まれる。
【００１９】
ストリーム情報保持部１２は、可変長データストリームに関するストリーム情報を保持する。ストリーム情報は、過去に入力した入力データを用いて、データ解析部１３が可変長データストリームを解析した結果であり、データ解析部１３が、ストリームバッファ１１が既に保持した１以上の入力データを用いて、可変長データストリーム（完全な可変長データストリーム）に関して検出した情報である。ストリーム情報は、ヘッダ情報の一部分（以下、「断片データ」という）、または、情報残量の少なくともいずれかを含む。ストリーム情報はその他の可変長データストリームに関する情報を含んでいてもよい。
【００２０】
断片データは、可変長データストリームの一部分である。断片データは、１回の入力データに含まれるデータストリームである場合、複数回の入力データに含まれるデータストリームが合成された場合が含まれる。断片データは、入力データであってヘッダ情報であるか判別できない可変長データストリームの一部分を含む。また、断片データは、１以上の入力データから、ヘッダ情報の一部分を抽出したデータを保持することもある。
【００２１】
情報残量は、転送情報の情報量の全体うち、データ解析部１３が出力していない情報量である。言い換えれば、入力データとしてストリームバッファ１１に未だ保持されていない情報量である。情報残量は、完全な可変長データストリームが有する転送情報の総情報量から、既にデータ解析部１３から出力された転送情報量を差し引いた数値となる。
【００２２】
データ解析部１３は、ストリームバッファ１１に保持する入力データとストリーム情報保持部１２に保持するストリーム情報とを解析し、ヘッダ情報を検出することを試みる。データ解析部１３は、ヘッダ情報を検出できない場合、入力データとストリーム情報とに基づいてストリーム情報を生成（更新）し、生成したストリーム情報をストリーム情報保持部１２へ格納する。また、ヘッダ情報を検出した場合、入力データに含まれる転送情報を出力する。また、データ解析部１３は、リードポインタを保持する。リードポインタは、ストリームバッファ１１に保持する入力データを読み出し始めるストリームバッファ１１上のアドレス（ポイント）である。リードポインタは、データを出力するときに、出力するデータを開始するポイントとしても用いる。データ解析部１３は、可変長データストリームがストリームバッファ１１に入力されるときに、可変長データストリームを格納した先頭アドレスとデータのサイズとが通知される。データ解析部１３は、このとき通知されたアドレスあるいは処理中に設定したアドレス（具体的には、ヘッダ情報の先頭）とのいずれかをリードポインタとして保持する。
【００２３】
例えば、データ解析部１３は、例えば次のようにしてヘッダ情報を取得し、転送情報を出力する。データ解析部１３は、ストリーム情報に含まれる情報残量がゼロであって、ヘッダ情報の一部分を保持していない場合、入力データからヘッダ情報を検索し、ヘッダ情報が取得できるまで、検出したヘッダ情報の一部分をストリーム情報としてストリーム情報保持部１２へ格納する。ヘッダ情報が取得できた後、転送情報を出力し、情報残量を設定する。また、データ解析部１３は、ストリーム情報保持部１２が情報残量を保持している場合、入力データを出力するとともに、情報残量を更新する。情報残量がゼロより大きい場合、既に、ヘッダ情報を検出済であると判断できる。このため、本実施形態では、情報残量を、ヘッダ情報が未検出であるかを判断する情報減として用いる態様を説明する。なお、情報残量に替えて、ヘッダ情報の検出・未検出を示すフラグを用いてもよい。または、検出状況を示す検出状況情報を設定して用いることもできる。
【００２４】
次に、図１に示す解析装置１を利用する装置例を説明する。図２は、解析装置１を搭載した復号装置６の構成例を示すブロック図である。復号装置６は、解析装置１、データ変換部２、変換データバッファ３、データ分離部４、及びＡＶ（Audio and Visual）デコーダ（復号部）５を備える。
【００２５】
データ変換部２は、解析装置１から出力される情報（具体的には、ヘッダ情報及び転送情報）を所定の形式に変換する。ここでは、データ変換部２は、固定長データに変換する場合、より具体的には、ＴＳ（Transport）パケットに変換する場合を用いて説明する。なお、解析装置１から出力される情報は、可変長データストリームに基づいた情報であれば、ヘッダ情報及び転送情報に限られることはない。また、解析装置１及びデータ変換部２は、ＡＶデコーダ５が利用できる情報を取り扱う。最終的には、データ変換部２は、ＡＶデコーダが利用可能な形式のデータへ変換することができればよい。
【００２６】
変換データバッファ３は、データ変換部２が変換したデータを保持する。データ分離部４は、変換データバッファ３が保持するデータからＡＶデコーダ５へ出力するデータを抽出してＡＶデコーダ５へ出力する。ＡＶデコーダ５は、符号化されているデータを入力し、音響または映像に復号する。ＡＶデコーダ５は、既存のＡＶ機器を用いることができる。
【００２７】
図３は、可変長データストリームの構成例を示す図である。本発明に係る可変長データストリームは、ヘッダ情報と転送情報との二つの領域から構成される。ヘッダ情報は、後続する転送情報に関する情報、例えば、総転送情報量（総情報量）、データ配置などの情報を含む。転送情報は、転送する情報であり、音響、映像情報などが含まれる。ヘッダ情報の先頭には、ヘッダ情報の開始を示すヘッダ識別子がつけられている。ヘッダ識別子はヘッダコードともいう。ヘッダ情報は、ヘッダ識別子とその他の情報、例えば、ヘッダ全体のサイズ、ヘッダ情報に複数種類のヘッダが含まれている場合にはその関連情報などを含む。
【００２８】
図３の下段は、サーバから可変長データストリームが送信される状況例を示している。可変長データストリームは、サーバからクライアントへ送信されるが、ネットワーク環境やサーバの処理によって、全体が一度に送信されるとは限らない。全体が一度に送信される場合（符号１０１）を完全な可変長データストリームが送信される場合とする。複数回に分けて送信される場合、ヘッダ情報の途中で分断される場合（符号１０２）、転送情報の途中で分断される場合（符号１０３）、ヘッダ情報及び転送情報の途中で分断される場合（符号１０４）などが生じ得る。符号１０１から１０４で示す分断状況は一例を示したものである。可変長データストリームが分割されるポイントは、データ配置に関係なく、例えば、サーバや通信状態などによって決定される。
【００２９】
続いて、解析装置１の動作を説明する。図４から図６は本実施形態の解析装置の動作例を示すフローチャートである。図４は全体の動作、図５はヘッダ検出処理の動作、図６はヘッダ識別子サーチ処理の動作を示す。
【００３０】
ストリームバッファ１１に入力データが入力され、保持されると、データ解析部１３は、ストリーム情報保持部１２のストリーム情報として断片データまたは情報残量が保持されていること、すなわち、ストリーム情報の有無を確認する（Ｓ１１）。断片データまたは情報残量が保持されてない場合（Ｓ１１でＮＯ）、データ解析部１３は、解析処理に使用する変数等の初期化処理を行う。例えば、総転送情報量、リードポインタなど一時的に情報を保持する内部バッファを初期化する。ストリーム情報がある場合（Ｓ１１でＹＥＳ）、データ解析部１３は、ストリーム情報に情報残量の有無を判断する（Ｓ１８）。情報残量がない（ゼロ）場合（Ｓ１８でＮＯ）、ステップＳ１３の処理へ移行し、情報残量がある（ゼロより大きい）場合（Ｓ１８でＹＥＳ）、データ解析部１３は、リードポインタを今回入力した入力データの先頭に設定し、ステップＳ１５の処理へ移行する。
【００３１】
ステップＳ１３では、データ解析部１３は、ヘッダ検出処理を実施する（Ｓ１３）。ヘッダ検出処理については図５を用いて後述する。データ解析部１３は、ヘッダ情報を取得した場合（Ｓ１４でＹｅｓ）、取得したヘッダ情報や転送情報を出力する（Ｓ１５）。ヘッダ情報を取得したとき、データ解析部１３は、リードポインタをヘッダ情報の先頭に設定し、内部バッファの総転送情報量を設定する。また、既にヘッダ情報を取得した後では（Ｓ１８でＹｅｓの場合）、データ解析部１３は、リードポインタを入力データの先頭に設定する。データ解析部１３は、ストリームバッファ１１に保持されている入力データをリードポインタから読み出し、出力する。
【００３２】
このとき、データ解析部１３は、総転送情報量から出力する情報量を差し引いて、未出力の情報量を情報残量として保持する。データ解析部１３は、ストリームバッファ１１が保持するデータを転送情報の情報残量がゼロになるまで、あるいは入力データがなくなるまで読み出し、出力する。情報残量がゼロであって、かつ、未処理データが残っている場合（Ｓ１６でＹＥＳ）、データ解析部１３は、新たな可変長データストリームとなったと判断し、ヘッダ検出処理（Ｓ１３）へ移行する。このとき、データ解析部１３は、リードポインタを未処理データの先頭アドレスに移し、情報残量をゼロのままとする。
【００３３】
未処理データがない場合（Ｓ１６でＮＯ）、及び、ヘッダ情報が取得できなかった場合（Ｓ１４でＮＯ）、新たなストリーム情報を生成し、ストリーム情報保持部１２へ書き込む。このとき、データ解析部１３は、ストリーム情報として、ヘッダ情報が取得できなかった場合断片データを更新し、転送情報の転送途中の場合情報残量を更新し、転送終了の場合断片データと情報残量とを初期値に設定（値をクリア）する。
【００３４】
続いて、ヘッダ検出処理の詳細を図５、６を用いて説明する。データ解析部１３は、ストリーム情報として断片データがある場合（Ｓ２１）、ストリームバッファ１１に保持されている入力データと断片データとを合成する（Ｓ２２）。ここで、合成したデータまたはストリームバッファ１１に今回入力された入力データをサーチ用データとする。データ解析部１３は、サーチ用データを用いてヘッダ識別子をサーチする（Ｓ２３）。
【００３５】
ヘッダ識別子をサーチする具体的な動作を図６に示す。データ解析部１３は、サーチ用データ長がヘッダ識別子の長さ以上である場合（Ｓ３１でＹＥＳ）、サーチ用データとヘッダ識別子とを比較する（Ｓ３２）。サーチ用データ長がヘッダ識別子の長さ未満である場合（Ｓ３１でＮＯ）、ヘッダ識別子をサーチできないため、断片データへサーチ用データを書き込み（Ｓ３６）、ヘッダ情報未検出としてヘッダ識別子サーチ処理を終了する。
【００３６】
例えば、データ解析部１３は、サーチ用データの先頭から順番に一つずつずらしながらヘッダ識別子が存在するかを比較してヘッダ識別子をサーチする。データ解析部１３は、ヘッダ識別子の先頭から一部分を用いてサーチを開始し、一致した場合にさらにヘッダ識別子の情報を追加してサーチをしてもよい。例えば、ヘッダ情報に複数のヘッダがあり、ヘッダ識別子の先頭から一部分が共通する場合には有効である。比較方法の詳細については省略する。
【００３７】
サーチ用データとヘッダ識別子が一致した場合（Ｓ３３でＹＥＳ）、ヘッダ識別子に続く必要な情報が入力データに含まれているかを確認する（Ｓ３４）。必要なデータが含まれている場合（Ｓ３４でＹＥＳ）、データ解析部１３は、ヘッダ情報を入力データから読み込む（Ｓ３５）。必要な情報には、ヘッダ情報のサイズや総転送情報量などが含まれる。
【００３８】
サーチ用データとヘッダ識別子が一致しない場合（Ｓ３３でＮＯ）、または、ヘッダ識別子に続く必要な情報が入力データに含まれていない場合（Ｓ３４でＮＯ）、データ解析部１３は、サーチ用データを断片データに書き込み、ヘッダ情報未検出としてヘッダ識別子サーチ処理を終了する。なお、データ解析部１３は、サーチ用データのうち、次のヘッダ識別子サーチ処理に必要な情報を抽出し、断片データとして保持してもよい。例えば、データ解析部１３は、ヘッダ識別子の先頭から一部分を検出した場合、その一部分を断片データとして保持してもよい。
【００３９】
続いて、データ解析部１３は、ヘッダ情報が検出できた場合（Ｓ２４でＹＥＳ）、読み込んだヘッダ情報から必要な情報を抽出する（Ｓ２５）。具体的には、データ解析部１３は、総転送情報量、リードポインタなどをヘッダ情報から抽出して内部バッファへ設定し、断片データを初期化し、ヘッダ情報検出処理を終了する。ヘッダ情報が検出できなかった場合（Ｓ２４でＮＯ）、ヘッダ情報検出処理を終了する。
【００４０】
図４から図６を用いて説明した動作により、解析装置１は、外部から入力される可変長データストリームを順次出力することが可能になる。具体的には、解析装置１は、ヘッダ情報を取得した後、転送情報を出力する。また、解析装置１は、転送情報が複数回に分断されて入力する場合であっても、入力データに含まれる転送情報を順次出力することができる。すなわち、データ解析部１３は、入力データとして入力された順番に、転送情報を出力することができる。このとき、解析装置１は、転送情報の全部、あるいは、ヘッダ情報及び転送情報の全部が入力されるまで待つ必要がない。
【００４１】
このような解析装置１を実現することにより、図２に示す復号装置６では、解析装置１が出力するヘッダ情報及び転送情報がデータ変換部２に順次入力される。データ変換部２は、解析装置１から入力されるデータを順次固定長のＴＳパケットに変換し、変換データバッファ３へ格納する。このとき、データ変換部２は、入力される転送情報を順次固定長パケットとして生成することができる。例えば、入力されたヘッダ情報または転送データが固定長のサイズ未満であっても、スタッフィングデータを挿入することによって、固定長データを生成することができる。
【００４２】
このように、固定長データとして完全な可変長データストリームが入力するまで待つことなく、順次固定長データを変換データバッファ３に格納することができる。これにより、データ分離部４、ＡＶデコーダ５は、変換データバッファ３へ格納されたＴＳパケットを順次利用することができる。ＡＶデコーダ５において、完全な可変長データストリームが格納されるまで待つことなく処理を進めることが可能になるため、復号処理全体の効率を向上させることができる。
【００４３】
このように、本実施形態の解析装置は、パケットアラインなど、データ配置を無視して転送されるデータストリームをデータ配置に沿った情報として変換することが可能になる。また、本実施形態の解析装置は、データストリームが断続的に転送される場合にも適用することができる。これにより、既存のデータ配置を無視して転送される環境においても、このデータ配置のデータストリームを利用する装置、例えばＡＶデコーダを変更しないで利用することができる。従って、サーバあるいは送信側でデータ配置に沿って作成されたデータストリームが断続的に転送される場合であっても、クライアントあるいは受信側でデータストリームを利用することができる。このように、データ転送にともなって生じるデータストリームの不具合を解消させることができる。
【００４４】
（実施形態２）
実施形態２では、データストリームとして、ＭＰＥＧ１、ＭＰＥＧ２−ＰＳで用いるパックを一例として、解析装置１の動作例を説明する。具体的には、復号装置６において、解析装置１がサーバからパックを受け付け、受け付けたパックをＴＳパケットに変換してＡＶデコーダ５に受け渡す場合を一例として説明する。パックは、ＭＰＥＧ１、ＭＰＥＧ２−ＰＳで用いるデータ配置であり、図３に示す可変長データストリームの一例である。図７、８は、パックのデータ配置例とＴＳパケット化を示す図である。
【００４５】
パックにおいて、ヘッダ情報は、パックヘッダ、システムヘッダ、パケットヘッダを含む。パックによって、システムヘッダは含まれない場合もある。転送情報は、図７、８においてペイロードとして表している。また、パケットヘッダとペイロードとをパケットという。パックでは、パケットヘッダにペイロードのサイズが含まれている。従って、解析装置１は、ヘッダ情報としてパケットヘッダを取得する必要がある。パックヘッダを検出すると、パケットヘッダの位置を取得できる。解析装置１は、まず、パックの先頭を検出してパックヘッダを検出・取得し、続いてパケットヘッダを検出・取得すること、あるいは、パケットヘッダを直接検出・取得することが必要となる。システムヘッダについては、ペイロードのデコードに必要とされてないため、無視することができる。
【００４６】
パケットは、図７に示すように一つのパックに一つ含まれる場合、図８に示すように一つのパックに複数含まれる場合がある。図７、８の下段には、ＴＳパケットの構成例を示している（図中、ｎ、ｍはＴＳパケット数を示す整数）。解析装置１は、パケットを抽出してデータ変換部２へ出力する。データ変換部２は、パケットをＴＳパケットに変換し、変換データバッファ３へ格納する。ＴＳパケットは、固定長データである。
【００４７】
一般に、ＴＳパケットの生成（パックのＴＳ化）は以下のように行う。パックからパックヘッダとシステムヘッダを取り除き，パケットをＴＳの固定長に分割する。終端で余ったデータについては、ＴＳパケットのアダプテーションフィールド（ＡＦ）を延長してスタッフィングを挿入し、その後にデータを配置してＴＳパケットを構成する。パックのＴＳ化は、パケット単位で処理を行う為、パック内に複数のパケットが存在する場合、異なるパケットを一つのＴＳパケットに変換しない。例えば、図８のＴＳパケット  ＃２に示すように、パケット毎にＴＳ化する。一つのパケットの１番目には、パケットヘッダとペイロードとが含まれる（例えば、図７のＴＳパケット  ＃１、図８のＴＳパケット  ＃１及び＃ｍ）。パケットの終端がＴＳパケットのサイズより小さい場合、スタッフィングを含むＴＳパケットを生成する（例えば、図７のＴＳパケット  ＃ｎ）。
【００４８】
本実施形態において、パックのＴＳパケット化の動作概要は次のようになる。解析装置１を、サーバあるいは送信側からのデータ転送１回に対応して１回のストリーム生成処理を行う装置として実現する。ストリーム生成処理は、解析装置１が1回の転送で入力する入力データ（可変長データストリームの少なくとも一部分）を出力する動作をいう。以降１度のデータ転送に対応して解析装置１側で実行される処理をストリーム生成処理と呼び、一つの完全な可変長データストリームにおいて、最初にストリーム生成する場合を初回時とする。解析装置１は、データ終端がどういう箇所であっても，それに続く入力データの到着を待たずにひとまずストリーム生成処理を終了する。このため、ストリーム生成処理は有限時間で終了する。
【００４９】
初回時のストリーム生成処理では、解析装置１は、まずパックヘッダをサーチ、その後パックの文法に沿ってパケットを検出し、パケットを出力する。パケットが出力されると、データ変換部２は、パケットをＴＳ化する。ここで、初回時とは、解析装置１が１回目のストリーム処理を実施するときをいう。初回でない場合、データ先頭は断片化されたパケットとなっている。従って、前回からの情報を引き継いでこれを出力する。その後次のパケットへ移動する。それ以降はパケットが出現するたびに、解析装置１は、検出したパケットを出力する。データ変換部２は、パケットのＴＳ化を行う。
【００５０】
入力データの終端でパケットが途切れている場合は、その時点での処理の状態と必要なデータをストリーム情報として保持してＴＳ化処理を終了する。データ終端に関する情報の保持内容、及び、次回の補完処理は、データ終端がＭＰＥＧの文法上どの箇所で途切れたかによって動作が異なる。
【００５１】
ネットワークアプリケーションにおいてサーバはストリームの任意の箇所から任意のサイズでストリームをクライアントに対して転送することがあり得る。そのためパックやパケット先頭の検出処理、およびＴＳ化処理がデータ終端で中断される場合がある。このため、解析装置１は、処理過程の情報を引き継いで次回のストリーム生成処理を開始する必要がある。本実施形態では、解析装置１は、処理過程の情報をストリーム情報としてストリーム情報保持部１２へ保持して、次のストリーム生成処理を行う。
【００５２】
解析装置１は、初回時の場合、パックヘッダ（０ｘ０００００１ＢＡ）をサーチして検出できたところから処理を開始する。初回以外の場合、前回のストリーム生成処理においてデータがどういう箇所で終わっていたかをストリーム情報に保持する。解析装置１は、ストリーム情報に従って補完を行う。ＭＰＥＧの文法上どこでデータストリームが途切れたかによって補完方法が異なるため、詳細を以下に説明する。
【００５３】
本実施形態では、データストリームの途切れ方を、次のように分類する。（１）ヘッダ（ヘッダの種類が判別できていない）途中で途切れたケース、（２）パックヘッダ途中で途切れたケース、（３）システムヘッダ途中で途切れたケース、（４）パケットヘッダ途中で途切れたケース、（５）ペイロード途中で途切れたケース。以下、図９を用いて順番に説明する。図９は、（１）から（５）について、具体例を示す図である。パックヘッダ、システムヘッダまたはパケットヘッダは、"００  ００  ０１  ＸＸ  ＹＹ  ＺＺ"のヘッダ識別子で始まることになっている。"００  ００  ０１"は各ヘッダとも共通であり、"ＸＸ  ＹＹ  ＺＺ"はヘッダの種類によって異なる。"ＸＸ"は、ヘッダの種類を示す。続いてケース毎に説明する。
【００５４】
（１）ヘッダ（ヘッダの種類が判別できていない）途中で途切れたケース
このケースでは、"００  ００  ０１  ＸＸ  ＹＹ  ＺＺ"（パックヘッダ，またはパケットヘッダ）の途中で途切れた場合である。"００  ００  ０１  ＸＸ"まで取得できないと，パックヘッダかパケットヘッダか判断がつかない。また、"ＹＹ  ＺＺ"まで取得できないとその後に続くデータ長が判明しない。このため、解析装置１は、この６バイトを取得してから処理を後段に進めるものとしている。図９の（１）の欄において、点線で囲んだ二つの部分のいずれかで途切れた場合であり、点線で囲んだ部分全部を検出してから後段の処理に移ることになる。なお、このケースには、ヘッダ未検出な場合、ケース（２）から（５）のいずれにも含まれない場合を含む。
【００５５】
（２）パックヘッダ途中で途切れたケース
パックヘッダの６バイト目以降から次のヘッダの先頭６バイトの途中で途切れた場合である。図９の（２）のＡはシステムヘッダがある場合、Ｂはシステムヘッダがない場合を示しており、点線で囲まれた部分のいずれかで途切れたことになる。パックヘッダとは，規格上"００  ００  ０１  ｂａ"から次のシステムヘッダ、またはパケットヘッダの前までの領域をさす。この領域が取得できない場合、その後に続くヘッダコードを取得するまで後続のデータがシステムヘッダかパケットヘッダか判明しない為である。なお、パックヘッダの先頭"００  ００  ０１  ｂａ  ｙｙ  ｚｚ"の途中で途切れた場合には（１）のケースに分類される。
【００５６】
（３）システムヘッダ途中で途切れたケース
システムヘッダの先頭６バイトを除く領域で途切れた場合である。図９の（３）の点線で囲まれた部分のいずれかで途切れたことになる。システムヘッダの後にはパケットヘッダがつくことが分かっているため，システムヘッダに続くヘッダ部分で途切れた場合、（４）のケースに分類される。
【００５７】
（４）パケットヘッダ途中で途切れたケース
パケットヘッダの内、先頭６バイトを除く領域で途切れた場合である。図９の（４）の点線で囲まれた部分のいずれかで途切れたことになる。なお、先頭６バイトで途切れた場合、（１）のケースに分類される。
【００５８】
（５）ペイロード途中で途切れたケース
パケットのペイロードの領域で途切れた場合である。図９の（３）の点線で囲まれた部分のいずれかで途切れたことになる。なお、パケット先頭から６４バイトに含まれる部分で途切れた場合には（４）のケースに分類される。このケースでは、ストリーム情報に含まれる情報残量が設定されている状態である。
【００５９】
以上が、データストリームが途切れるケースそれぞれの説明である。本実施形態では、データ解析部１３は、データストリームが途切れた部分が上記（１）から（５）のどのケースに分類されるかを判断し、判断結果を途切れ情報としてストリーム情報に含める。解析装置１は、途切れ情報の初期値として、（１）のケースを設定する。解析装置１のデータ解析部１３は、途切れ情報を含めたストリーム情報をストリーム情報保持部１２へ書き込む。従って、本実施形態では、ストリーム情報として、断片データ、情報残量、及び途切れ情報を少なくとも含む。
【００６０】
続いて、本実施形態の動作の詳細を説明する。解析装置１の動作全体は、図４、図５の動作と同様である。ただし、図４のステップＳ１２において、途切れ情報の初期値を設定する点が追加される。本実施形態では、図６に示すヘッダ識別子サーチ処理の動作が異なる。図１０は、実施形態２のヘッダ識別子サーチ処理の詳細を示すフローチャートである。データ解析部１３は、まずスケジュール情報から途切れ情報を読み込み、途切れ情報が上述した（１）から（４）のどれに該当するかを判定する（Ｓ５１）。なお、途切れ情報が（５）ペイロードの途中で途切れた場合、図４のステップ１８において、情報残量がゼロより大きいため、ヘッダ検出処理（Ｓ１３）を実施しないで、ステップ１５の情報出力処理を行うことになる。このため、図１０の処理には含まれない。
【００６１】
途切れ情報がヘッダの途中で途切れたことを示している場合（Ｓ５２でＹＥＳ）、データ解析部１３は、図１１に示すヘッダ識別子サーチ処理１を実施する（Ｓ５３）。具体的には、サーチ用データ長が３バイト以上である場合（Ｓ６１でＹＥＳ）、データ解析部１３は、サーチ用データとヘッダ識別子とを比較する（Ｓ６２）。パックヘッダとパケットヘッダとの先頭３バイトはヘッダコードであり、共通している。この３バイトのヘッダコードを検出することによって、パックヘッダとパケットヘッダとの先頭を検出することが可能になる。このため、サーチ用データが３バイト以上である場合に、サーチを開始する。
【００６２】
データ解析部１３は、ヘッダ識別子として、３バイトのヘッダ共通のヘッダコード、あるいは、パックヘッダの先頭４バイトとパケットヘッダの先頭４バイトとのいずれかのヘッダコードを用いてサーチ用データと比較する。サーチ用データとヘッダ識別子の比較手順の一例を以下に示すが、この手順に限られることはなく、他の手順でパケットヘッダを検出することもできる。例えば、データ解析部１３は、３バイトのヘッダ共通のヘッダコードを用いて、サーチ用データと比較し、ヘッダコードが一致した時点で、次の２バイトを用いて、サーチ用ヘッダと比較し、パックヘッダであるか、パケットヘッダであるかを判断する。パックヘッダであると判断された場合、データ解析部１３は、まず、パックヘッダの先頭６バイトを取得し、さらに続く情報を取得して、次のヘッダコードの先頭位置の情報を取得する。次のヘッダコードの先頭位置の情報に基づいて、入力データからパケットヘッダを検出する手順に入る。次に検出したヘッダコードがシステムヘッダである場合、さらに次のヘッダコードの先頭位置を取得することによって、パケットヘッダの先頭位置を取得することができる。
【００６３】
続いて、パケットヘッダを検出した場合（Ｓ６３でＹＥＳ）、データ解析部１３は、パケットヘッダの先頭から６４バイトの必要な情報が入力データに含まれているかを確認する（Ｓ６４）。必要なデータが含まれている場合（Ｓ６４でＹＥＳ）、データ解析部１３は、ヘッダ情報を入力データから読み込む（Ｓ６５）。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部１３は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し（Ｓ６６）、ヘッダ情報検出としてヘッダ識別子サーチ処理１を終了する。
【００６４】
パケットヘッダが検出できない場合（Ｓ６３でＮＯ）、データ解析部１３は、サーチ用データとヘッダ識別子とを比較した結果に基づいて、ヘッダの途中、パックヘッダの途中、システムヘッダの途中のいずれかで途切れたかを判定し、途切れ情報へ判定結果を書き込む（Ｓ６７）。データ解析部１３は、図９に示す分類に基づいて、入力データが途切れたポイントを判定する。
【００６５】
パケットヘッダの必要な情報が入力データに含まれていない場合（Ｓ６４でＮＯ）、データ解析部１３は、パケットヘッダの途中で途切れたと判定し、途切れ情報へ判定結果を書き込む（Ｓ６８）。
【００６６】
次に、データ解析部１３は、断片データにサーチ用データを書き込み（Ｓ６９）、ヘッダ情報未検出としてヘッダ識別子サーチ処理１を終了する。データ解析部１３は、パックヘッダ、システムヘッダまたはパケットヘッダの途中で途切れたことを検出した場合、サーチ用データに保持するデータのうち、ヘッダ識別子と比較する必要のないデータを切り離して断片データに書き込むことによって、次のヘッダ識別子サーチ処理の負荷を削減することができる。
【００６７】
また、サーチ用データ長が３バイト未満である場合（Ｓ６１でＮＯ）、データ解析部１３は、ヘッダ識別子をサーチできないため、断片データにサーチ用データを書き込み（Ｓ６９）、ヘッダ情報未検出としてヘッダ識別子サーチ処理１を終了する。このとき、途切れた状態に変更がないため、データ解析部１３は、途切れ情報を更新する必要がない。
【００６８】
次に、途切れ情報がパックヘッダの途中で途切れたことを示している場合（Ｓ５４でＹＥＳ）、データ解析部１３は、図１２に示すヘッダ識別子サーチ処理２を実施する（Ｓ５５）。具体的には、サーチ用データからシステムヘッダを終端まで取得した場合（Ｓ７１でＹＥＳ）、データ解析部１３は、検出したパックヘッダの先頭から６バイトを内部バッファへ格納し、次のコードをサーチする（Ｓ７２）。パックには、システムヘッダがある場合とない場合があるが、システムヘッダがある場合、データ解析部１３は、システムヘッダを検出した後、さらにパケットヘッダをサーチする。
【００６９】
パケットヘッダを検出した場合（Ｓ７３でＹＥＳ）、データ解析部１３は、パケットヘッダの先頭から６４バイトの必要な情報が入力データに含まれているかを確認する（Ｓ７４）。必要なデータが含まれている場合（Ｓ７４でＹＥＳ）、データ解析部１３は、ヘッダ情報を入力データから読み込む（Ｓ７５）。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部１３は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し（Ｓ７６）、ヘッダ情報検出としてヘッダ識別子サーチ処理２を終了する。
【００７０】
パケットヘッダが検出できない場合（Ｓ７３でＮＯ）、データ解析部１３は、サーチ用データとヘッダ識別子とを比較した結果に基づいて、パックヘッダの途中、システムヘッダの途中のいずれかで途切れたかを判定し、途切れ情報へ判定結果を書き込む（Ｓ７７）。データ解析部１３は、図９に示す分類に基づいて、入力データが途切れたポイントを判定する。
パケットヘッダの必要な情報が入力データに含まれていない場合（Ｓ７４でＮＯ）、データ解析部１３は、パケットヘッダの途中で途切れたと判定し、途切れ情報へ判定結果を書き込む（Ｓ７８）。
【００７１】
次に、データ解析部１３は、断片データにサーチ用データを書き込み（Ｓ７９）、ヘッダ情報未検出としてヘッダ識別子サーチ処理２を終了する。データ解析部１３は、パックヘッダ、システムヘッダまたはパケットヘッダの途中で途切れたことを検出した場合、サーチ用データに保持するデータのうち、ヘッダ識別子と比較する必要のないデータを切り離して断片データに書き込むことによって、次のヘッダ識別子サーチ処理の負荷を削減することができる。
【００７２】
また、サーチ用データ長からパックヘッダを取得できなかった場合（Ｓ７１でＮＯ）、データ解析部１３は、断片データにサーチ用データを書き込み（Ｓ７７）、ヘッダ情報未検出としてヘッダ識別子サーチ処理２を終了する。このとき、途切れた状態に変更がないため、データ解析部１３は、途切れ情報を更新する必要がない。
【００７３】
次に、途切れ情報がシステムヘッダの途中で途切れたことを示している場合（Ｓ５６でＹＥＳ）、データ解析部１３は、図１３に示すヘッダ識別子サーチ処理３を実施する（Ｓ５７）。具体的には、サーチ用データからパケットヘッダを終端まで取得した場合（Ｓ８１でＹＥＳ）、データ解析部１３は、システムヘッダに続くパケットヘッダをサーチする。パケットヘッダを検出した場合（Ｓ８２でＹＥＳ）、データ解析部１３は、パケットヘッダの先頭から６４バイトの必要な情報が入力データに含まれているかを確認する（Ｓ８３）。必要なデータが含まれている場合（Ｓ８３でＹＥＳ）、データ解析部１３は、ヘッダ情報を入力データから読み込む（Ｓ８４）。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部１３は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し（Ｓ８５）、ヘッダ情報検出としてヘッダ識別子サーチ処理３を終了する。
【００７４】
パケットヘッダが検出できない場合（Ｓ８２でＮＯ）、データ解析部１３は、サーチ用データとヘッダ識別子とを比較した結果に基づいて、システムヘッダの途中で途切れたかを判定し、途切れ情報へ判定結果を書き込む。
パケットヘッダの必要な情報が入力データに含まれていない場合（Ｓ８３でＮＯ）、データ解析部１３は、パケットヘッダの途中で途切れたと判定し、途切れ情報へ判定結果を書き込む。
【００７５】
次に、データ解析部１３は、断片データにサーチ用データを書き込み（Ｓ８８）、ヘッダ情報未検出としてヘッダ識別子サーチ処理３を終了する。データ解析部１３は、システムヘッダまたはパケットヘッダの途中で途切れたことを検出した場合、サーチ用データに保持するデータのうち、ヘッダ識別子と比較する必要のないデータを切り離して断片データに書き込むことによって、次のヘッダ識別子サーチ処理の負荷を削減することができる。
【００７６】
また、サーチ用データ長からシステムヘッダを取得できなかった場合（Ｓ８１でＮＯ）、データ解析部１３は、断片データにサーチ用データを書き込み（Ｓ７７）、ヘッダ情報未検出としてヘッダ識別子サーチ処理３を終了する。このとき、途切れた状態に変更がないため、データ解析部１３は、途切れ情報を更新する必要がない。
【００７７】
次に、途切れ情報がパケットヘッダの途中で途切れたことを示している場合（Ｓ５８でＹＥＳ）、データ解析部１３は、図１４に示すヘッダ識別子サーチ処理４を実施する（Ｓ５９）。具体的には、サーチ用データからパケットヘッダを先頭から６４バイトを取得した場合（Ｓ９１でＹＥＳ）、データ解析部１３は、パケットヘッダの先頭から６４バイトの必要な情報（ヘッダ情報）を入力データから読み込む（Ｓ９２）。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部１３は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し（Ｓ９３）、ヘッダ情報検出としてヘッダ識別子サーチ処理４を終了する。
【００７８】
パケットヘッダが取得できない場合（Ｓ９１でＮＯ）、データ解析部１３は、断片データにサーチ用データを書き込み（Ｓ９４）、ヘッダ情報未検出としてヘッダ識別子サーチ処理４を終了する。このとき、途切れた状態に変更がないため、データ解析部１３は、途切れ情報を更新する必要がない。
【００７９】
以上が本実施形態の解析装置１の動作説明である。データ変換部２は、解析装置１が出力したデータを順次ＴＳパケットに変換する。このようにしてパックのＴＳ化が実施される。
【００８０】
パックのＴＳ化により，出力データは入力データのおよそ１２０％程度の量になる。これは入力データの形式に依存する為一定ではない。このため生成可能なデータ量が、出力バッファサイズをオーバーするケースがあり得る。出力バッファサイズは、予め解析装置１、データ変換部２に通知されている。このような場合、解析装置１は、出力バッファサイズに合わせてデータを出力し、バッファが一杯になった時点で出力を中止することができる。あるいは、データ変換部２は、出力バッファサイズに合わせてＴＳパケット単位で出力し、バッファが一杯になった時点で出力を中止することができる。このとき、解析装置１は、リードポインタが保持する値を、未処理のアドレスに設定する。このようにして、解析装置１は、処理されたデータ量だけシフトして次のストリーム生成処理を開始することで，データ欠損を避けることができる。
【００８１】
このように、サーバが可変長データストリームを分割して送信する場合であっても、完全な可変長データストリームとして編成することが可能となる。例えば、サーバがパケットアラインを無視して転送してくるパケット可変長のＭＰＥＧ１、ＭＰＥＧ２プログラムストリームを既存のＭＰＥＧデータ処理回路単体を用いて再生することが可能となる。
【００８２】
本実施形態によれば、プログラムストリーム文法上のいかなる位置で途切れているか、いかなるサイズ（最悪のケースではバイト単位）で到着するかに関わらず、データを損失することなくトランスポートストリームに変換することができる。さらに、パックのようにヘッダ情報に複数種類のヘッダ情報が含まれている場合、データ解析部１３は、ＡＶデコーダ５（あるいはデータ分離部）が必要とする情報（必要とする種類のヘッダ情報）を抽出して出力することができる。これにより、ＡＶデコーダ５が利用できる固定長ストリームを生成することができる。
【００８３】
なお、実施形態２では、パケット可変長のＭＰＥＧ１、ＭＰＥＧ２プログラムストリームからＴＳパケットを生成する場合を説明したが、他のプログラムストリームを入力データとし、他の固定長パケットを生成する場合にも本発明を適用することは可能である。
【００８４】
（その他の実施形態）
データ解析部１３は、ヘッダ情報のうち、ＡＶデコーダ５が必要とする情報を必要なデータ形式に編集して出力してもよい。この場合、データ解析部１３は、ヘッダ情報から必要な情報を抽出することになる。このように、データ解析部１３は、入力する可変長データストリームを解析する機能に加え、ＡＶデコーダ５が取り扱えるデータへ編集する機能を備えるようにしてもよい。より具体的には、ヘッダ情報のデータの内容や配置が異なる場合、ＡＶデコーダ５が利用可能なデータの内容や配置に沿ってデータを編集する。これにより、サーバから転送される可変長データストリームのデータ形式とＡＶデコーダ５が利用できるデータ形式とが異なる場合にも対応することができる。また、データ形式の変換は、データ変換部２によって実施してもよい。
【００８５】
以上説明したように、本発明によれば、ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のＡＶ機器が利用できるデータストリームを生成する場合に、送信されたデータストリームを解析して、既存のＡＶ機器が利用できるデータストリームを復元する仕組みを提供することができる。
【００８６】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明に係る解析装置の構成例を示すブロック図である。
【図２】図１に示す解析装置を搭載した復号装置の構成例を示すブロック図である。
【図３】可変長データストリームの構成例を示す図である。
【図４】実施形態１の解析装置の動作例を示すフローチャートである。
【図５】実施形態１のヘッダ検出処理の動作例を示すフローチャートである。
【図６】実施形態１のヘッダ識別子サーチ処理の動作例を示すフローチャートである。
【図７】パックのデータ配置例とＴＳパケット化を示す図である（パケットが一つの場合）。
【図８】パックのデータ配置例とＴＳパケット化を示す図である（パケットが複数の場合）。
【図９】データストリームの途切れのケースを説明する図である。
【図１０】実施形態２のヘッダ識別子サーチ処理の動作例を示すフローチャートである。
【図１１】実施形態２のヘッダ識別子サーチ処理１の動作例を示すフローチャートである。
【図１２】実施形態２のヘッダ識別子サーチ処理２の動作例を示すフローチャートである。
【図１３】実施形態２のヘッダ識別子サーチ処理３の動作例を示すフローチャートである。
【図１４】実施形態２のヘッダ識別子サーチ処理４の動作例を示すフローチャートである。
【符号の説明】
【００８８】
１  解析装置
２  データ変換部
３  変換データバッファ
４  データ分離部
５  ＡＶデコーダ
６  復号装置
１１  ストリームバッファ
１２  ストリーム情報保持部
１３  データ解析部
【図１】
2009260643.tif 000003
【図２】
2009260643.tif 000004
【図３】
2009260643.tif 000005
【図４】
2009260643.tif 000006
【図５】
2009260643.tif 000007
【図６】
2009260643.tif 000008
【図７】
2009260643.tif 000009
【図８】
2009260643.tif 000010
【図９】
2009260643.tif 000011
【図１０】
2009260643.tif 000012
【図１１】
2009260643.tif 000013
【図１２】
2009260643.tif 000014
【図１３】
2009260643.tif 000015
【図１４】
2009260643.tif 000016