JP2009260643A - データストリーム解析装置、復号装置及びデータストリーム解析方法 - Google Patents

データストリーム解析装置、復号装置及びデータストリーム解析方法 Download PDF

Info

Publication number
JP2009260643A
JP2009260643A JP2008107106A JP2008107106A JP2009260643A JP 2009260643 A JP2009260643 A JP 2009260643A JP 2008107106 A JP2008107106 A JP 2008107106A JP 2008107106 A JP2008107106 A JP 2008107106A JP 2009260643 A JP2009260643 A JP 2009260643A
Authority
JP
Japan
Prior art keywords
data
information
stream
header
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008107106A
Other languages
English (en)
Inventor
Masayuki Ienaga
真行 家長
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2008107106A priority Critical patent/JP2009260643A/ja
Priority to EP20090005312 priority patent/EP2111045A1/en
Priority to US12/424,991 priority patent/US20090265478A1/en
Publication of JP2009260643A publication Critical patent/JP2009260643A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4344Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のAV機器が利用できるデータストリームを生成する仕組みを提供する。
【解決手段】データストリーム解析装置1は、ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力して保持するストリームバッファ11と、可変長のデータストリームに関するストリーム情報を保持するストリーム情報保持部12と、新たに入力した入力データとストリーム情報とを解析し、ヘッダ情報を検出できない場合、入力データとストリーム情報とを用いて、新たなストリーム情報を生成してストリーム情報保持部へ格納し、ヘッダ情報を検出した場合、入力データに含まれる転送情報を出力するデータ解析部13と、を備える。
【選択図】図1

Description

本発明は、可変長ストリームデータを解析する技術に関し、特に、ネットワーククライアントとして、転送データ単位が特定されない可変長ストリームデータを解析する技術に関する。
従来から、民生用デジタルAV機器は、放送とディスクメディアを扱ってきていた。例えば、MPEG(Moving Picture Experts Group)のデータでは、AV機器に搭載されるデータ処理部は、パケット長が固定、かつパケット単位でアラインされたストリームを扱うのが一般的であった。パケット長が固定であるため、AV機器は、パケットの位置を容易に検索することが可能であった。
これに対し、ネットワーク(例えば、インターネット)を利用するサーバとクライアントとの間において、パケット長が固定、かつパケット単位でアラインされたストリームを送信するという取り決めがなかった。従って、クライアントは、パケット長が可変であり、パケット単位でアラインされていないストリームを受信することになる。
近年、民生用デジタルAV機器がネットワークと接続されるようになっている。このようなアプリケーションが取り扱うデータとして、パーソナルコンピュータやデジタルカメラなどで作成されたパケット可変長のストリームが含まれるようになってきた。
また、転送元のサーバは、処理量低減のため、データを解析せず、データ内容にかかわらず、所定のデータ長(例えば、512KB)といったまとまったデータサイズで転送するのが一般的であった。
例えば、特許文献1には、復号処理の高速化を図ることを目的とする可変長コード復号装置が開示されている。この可変長コード復号装置によれば、ストリームバッファに蓄積される前に、可変長コードを固定長コードに変換し、該変換した固定長コードをストリームバッファに蓄積し、該蓄積された固定長コードをデコーダ内において復号している。
特許文献1に開示された技術は、完全な可変長ストリームを取り扱うものであった。すわなち、可変長ストリームが途中で途切れるなど、データ転送の悪条件や不完全な状態のデータストリーム、あるいは、パケットアラインを無視したデータストリームには対応していなかった。また、特許文献1では、映像符号のみを対象としており,MPEG1、MPEG2−PSのシステムレイヤでの情報転送に適用することはできなかった。
特開2004−343473号公報
近年、ネットワークを利用するクライアントにおいて、サーバから映像などの可変長データストリームを受信する機会が増加している。このような状況から、クライアントとなる復号装置において、転送された可変長データストリームを解釈する必要が生じていた。例えば、クライアントは、サーバがパケットアラインを無視して転送するパケット可変長のMPEG1、MPEG2プログラムストリームを取り扱う必要が生じていた。
また、クライアントにおいて、解釈したデータストリームを既存のデジタルAV機器が利用できるように変換することが望まれていた。特に、パケットアラインを無視して転送される可変長データストリームが転送される場合、デジタルAV機器が搭載する機能を変更することなく利用できる固定長パケットが提供されることが望まれていた。
このように、ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のAV機器が利用できるデータストリームを生成する仕組みを提供することが望まれていた。
本発明に係るデータストリーム解析装置の一態様は、ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力して保持するバッファと、前記データストリームに関するストリーム情報を保持するストリーム情報保持部と、新たに入力した入力データと前記ストリーム情報とを解析し、前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、新たなストリーム情報を生成して前記ストリーム情報保持部へ格納し、前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力するデータ解析部と、を備える。データストリーム解析装置は、今回入力した入力データと、既に入力している入力データとを用いて、可変長データストリームに含まれるヘッダ情報を検出する。検出したヘッダ情報を用いて、転送情報を出力する。出力する情報としては、出力先の機器が利用する情報を出力する。このようにして、可変長のデータストリームが複数に分割されて届く場合にも出力先の機器が利用する情報を出力することができる。
また、本発明に係る復号装置の一態様は、上記記載のデータストリーム解析装置と、前記データストリーム解析装置が出力する転送情報を固定長ストリームに変換するデータ変換部と、前記固定長ストリームを格納する変換データバッファと、前記固定長ストリームを復号する復号部と、を備える。データストリーム解析装置が復号部に必要な情報を出力し、データ変換部が復号部で利用できるデータ配置に変換する。このようにして、可変長のデータストリームが複数に分割されて届く場合にも、データを欠損させることなく、復号部が可変長のデータストリームを復号することができる。
さらに、本発明に係るデータストリーム解析方法の一態様は、ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力してバッファに保持し、過去に入力した入力データから抽出した、前記データストリームに関するストリーム情報をストリーム情報保持部に保持し、新たに入力した入力データと前記ストリーム情報とを解析し、前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、ストリーム情報を生成して前記ストリーム情報保持部へ格納し、前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力する。
本発明によれば、ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のAV機器が利用できるデータストリームを生成する仕組みを提供することができる。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
(実施形態1)
実施形態1では、可変長のデータストリームがデータアラインを無視して送信される場合に、まず、ヘッダ情報を検索し、ヘッダ情報を検出した後、転送情報を出力する仕組みを提供する解析装置及び方法、並びに、解析装置を用いる復号装置について説明する。また、この仕組みでは、AV機器において、転送されてくる可変長のデータストリームに含まれるヘッダ情報と転送情報のうち、ヘッダ情報の一部分または全部、及び、転送情報が必要とされていることを前提とする。
図1は、本発明に係る解析装置の構成例を示すブロック図である。解析装置(データストリーム解析装置)1は、ストリームバッファ11、ストリーム情報保持部12、及びデータ解析部13を備える。
ストリームバッファ11は、外部から入力する可変長データストリームを保持する。可変長データストリームは、ヘッダ情報と転送情報(ペイロード、コンテンツ)とを含み、例えば、ネットワークを介してサーバから送信される。ストリームバッファ11は、可変長データストリーム全部を入力して保持する場合、可変長データストリームの一部分を入力して保持する場合があり得る。以降の説明において、ストリームバッファ11が一回の入力で保持する可変長データストリームの全部または一部分を「入力データ」という。
また、本明細書において、データ配置は、ヘッダ情報及び転送情報の配置構造を意味し、例えば、パケットの配列を定めるパケットアラインなどである。データ配置は、取り扱うデータの種類によって定められているものとする。データ配置は、サーバ側とクライアント側、あるいは、送信側と受信側において、あらかじめ取り決めてられているものであり、この取り決めに沿ってそれぞれの装置においてデータを取り扱うことが可能になる。例えば、MPEGにおいて定められているデータ配置が含まれる。
ストリーム情報保持部12は、可変長データストリームに関するストリーム情報を保持する。ストリーム情報は、過去に入力した入力データを用いて、データ解析部13が可変長データストリームを解析した結果であり、データ解析部13が、ストリームバッファ11が既に保持した1以上の入力データを用いて、可変長データストリーム(完全な可変長データストリーム)に関して検出した情報である。ストリーム情報は、ヘッダ情報の一部分(以下、「断片データ」という)、または、情報残量の少なくともいずれかを含む。ストリーム情報はその他の可変長データストリームに関する情報を含んでいてもよい。
断片データは、可変長データストリームの一部分である。断片データは、1回の入力データに含まれるデータストリームである場合、複数回の入力データに含まれるデータストリームが合成された場合が含まれる。断片データは、入力データであってヘッダ情報であるか判別できない可変長データストリームの一部分を含む。また、断片データは、1以上の入力データから、ヘッダ情報の一部分を抽出したデータを保持することもある。
情報残量は、転送情報の情報量の全体うち、データ解析部13が出力していない情報量である。言い換えれば、入力データとしてストリームバッファ11に未だ保持されていない情報量である。情報残量は、完全な可変長データストリームが有する転送情報の総情報量から、既にデータ解析部13から出力された転送情報量を差し引いた数値となる。
データ解析部13は、ストリームバッファ11に保持する入力データとストリーム情報保持部12に保持するストリーム情報とを解析し、ヘッダ情報を検出することを試みる。データ解析部13は、ヘッダ情報を検出できない場合、入力データとストリーム情報とに基づいてストリーム情報を生成(更新)し、生成したストリーム情報をストリーム情報保持部12へ格納する。また、ヘッダ情報を検出した場合、入力データに含まれる転送情報を出力する。また、データ解析部13は、リードポインタを保持する。リードポインタは、ストリームバッファ11に保持する入力データを読み出し始めるストリームバッファ11上のアドレス(ポイント)である。リードポインタは、データを出力するときに、出力するデータを開始するポイントとしても用いる。データ解析部13は、可変長データストリームがストリームバッファ11に入力されるときに、可変長データストリームを格納した先頭アドレスとデータのサイズとが通知される。データ解析部13は、このとき通知されたアドレスあるいは処理中に設定したアドレス(具体的には、ヘッダ情報の先頭)とのいずれかをリードポインタとして保持する。
例えば、データ解析部13は、例えば次のようにしてヘッダ情報を取得し、転送情報を出力する。データ解析部13は、ストリーム情報に含まれる情報残量がゼロであって、ヘッダ情報の一部分を保持していない場合、入力データからヘッダ情報を検索し、ヘッダ情報が取得できるまで、検出したヘッダ情報の一部分をストリーム情報としてストリーム情報保持部12へ格納する。ヘッダ情報が取得できた後、転送情報を出力し、情報残量を設定する。また、データ解析部13は、ストリーム情報保持部12が情報残量を保持している場合、入力データを出力するとともに、情報残量を更新する。情報残量がゼロより大きい場合、既に、ヘッダ情報を検出済であると判断できる。このため、本実施形態では、情報残量を、ヘッダ情報が未検出であるかを判断する情報減として用いる態様を説明する。なお、情報残量に替えて、ヘッダ情報の検出・未検出を示すフラグを用いてもよい。または、検出状況を示す検出状況情報を設定して用いることもできる。
次に、図1に示す解析装置1を利用する装置例を説明する。図2は、解析装置1を搭載した復号装置6の構成例を示すブロック図である。復号装置6は、解析装置1、データ変換部2、変換データバッファ3、データ分離部4、及びAV(Audio and Visual)デコーダ(復号部)5を備える。
データ変換部2は、解析装置1から出力される情報(具体的には、ヘッダ情報及び転送情報)を所定の形式に変換する。ここでは、データ変換部2は、固定長データに変換する場合、より具体的には、TS(Transport)パケットに変換する場合を用いて説明する。なお、解析装置1から出力される情報は、可変長データストリームに基づいた情報であれば、ヘッダ情報及び転送情報に限られることはない。また、解析装置1及びデータ変換部2は、AVデコーダ5が利用できる情報を取り扱う。最終的には、データ変換部2は、AVデコーダが利用可能な形式のデータへ変換することができればよい。
変換データバッファ3は、データ変換部2が変換したデータを保持する。データ分離部4は、変換データバッファ3が保持するデータからAVデコーダ5へ出力するデータを抽出してAVデコーダ5へ出力する。AVデコーダ5は、符号化されているデータを入力し、音響または映像に復号する。AVデコーダ5は、既存のAV機器を用いることができる。
図3は、可変長データストリームの構成例を示す図である。本発明に係る可変長データストリームは、ヘッダ情報と転送情報との二つの領域から構成される。ヘッダ情報は、後続する転送情報に関する情報、例えば、総転送情報量(総情報量)、データ配置などの情報を含む。転送情報は、転送する情報であり、音響、映像情報などが含まれる。ヘッダ情報の先頭には、ヘッダ情報の開始を示すヘッダ識別子がつけられている。ヘッダ識別子はヘッダコードともいう。ヘッダ情報は、ヘッダ識別子とその他の情報、例えば、ヘッダ全体のサイズ、ヘッダ情報に複数種類のヘッダが含まれている場合にはその関連情報などを含む。
図3の下段は、サーバから可変長データストリームが送信される状況例を示している。可変長データストリームは、サーバからクライアントへ送信されるが、ネットワーク環境やサーバの処理によって、全体が一度に送信されるとは限らない。全体が一度に送信される場合(符号101)を完全な可変長データストリームが送信される場合とする。複数回に分けて送信される場合、ヘッダ情報の途中で分断される場合(符号102)、転送情報の途中で分断される場合(符号103)、ヘッダ情報及び転送情報の途中で分断される場合(符号104)などが生じ得る。符号101から104で示す分断状況は一例を示したものである。可変長データストリームが分割されるポイントは、データ配置に関係なく、例えば、サーバや通信状態などによって決定される。
続いて、解析装置1の動作を説明する。図4から図6は本実施形態の解析装置の動作例を示すフローチャートである。図4は全体の動作、図5はヘッダ検出処理の動作、図6はヘッダ識別子サーチ処理の動作を示す。
ストリームバッファ11に入力データが入力され、保持されると、データ解析部13は、ストリーム情報保持部12のストリーム情報として断片データまたは情報残量が保持されていること、すなわち、ストリーム情報の有無を確認する(S11)。断片データまたは情報残量が保持されてない場合(S11でNO)、データ解析部13は、解析処理に使用する変数等の初期化処理を行う。例えば、総転送情報量、リードポインタなど一時的に情報を保持する内部バッファを初期化する。ストリーム情報がある場合(S11でYES)、データ解析部13は、ストリーム情報に情報残量の有無を判断する(S18)。情報残量がない(ゼロ)場合(S18でNO)、ステップS13の処理へ移行し、情報残量がある(ゼロより大きい)場合(S18でYES)、データ解析部13は、リードポインタを今回入力した入力データの先頭に設定し、ステップS15の処理へ移行する。
ステップS13では、データ解析部13は、ヘッダ検出処理を実施する(S13)。ヘッダ検出処理については図5を用いて後述する。データ解析部13は、ヘッダ情報を取得した場合(S14でYes)、取得したヘッダ情報や転送情報を出力する(S15)。ヘッダ情報を取得したとき、データ解析部13は、リードポインタをヘッダ情報の先頭に設定し、内部バッファの総転送情報量を設定する。また、既にヘッダ情報を取得した後では(S18でYesの場合)、データ解析部13は、リードポインタを入力データの先頭に設定する。データ解析部13は、ストリームバッファ11に保持されている入力データをリードポインタから読み出し、出力する。
このとき、データ解析部13は、総転送情報量から出力する情報量を差し引いて、未出力の情報量を情報残量として保持する。データ解析部13は、ストリームバッファ11が保持するデータを転送情報の情報残量がゼロになるまで、あるいは入力データがなくなるまで読み出し、出力する。情報残量がゼロであって、かつ、未処理データが残っている場合(S16でYES)、データ解析部13は、新たな可変長データストリームとなったと判断し、ヘッダ検出処理(S13)へ移行する。このとき、データ解析部13は、リードポインタを未処理データの先頭アドレスに移し、情報残量をゼロのままとする。
未処理データがない場合(S16でNO)、及び、ヘッダ情報が取得できなかった場合(S14でNO)、新たなストリーム情報を生成し、ストリーム情報保持部12へ書き込む。このとき、データ解析部13は、ストリーム情報として、ヘッダ情報が取得できなかった場合断片データを更新し、転送情報の転送途中の場合情報残量を更新し、転送終了の場合断片データと情報残量とを初期値に設定(値をクリア)する。
続いて、ヘッダ検出処理の詳細を図5、6を用いて説明する。データ解析部13は、ストリーム情報として断片データがある場合(S21)、ストリームバッファ11に保持されている入力データと断片データとを合成する(S22)。ここで、合成したデータまたはストリームバッファ11に今回入力された入力データをサーチ用データとする。データ解析部13は、サーチ用データを用いてヘッダ識別子をサーチする(S23)。
ヘッダ識別子をサーチする具体的な動作を図6に示す。データ解析部13は、サーチ用データ長がヘッダ識別子の長さ以上である場合(S31でYES)、サーチ用データとヘッダ識別子とを比較する(S32)。サーチ用データ長がヘッダ識別子の長さ未満である場合(S31でNO)、ヘッダ識別子をサーチできないため、断片データへサーチ用データを書き込み(S36)、ヘッダ情報未検出としてヘッダ識別子サーチ処理を終了する。
例えば、データ解析部13は、サーチ用データの先頭から順番に一つずつずらしながらヘッダ識別子が存在するかを比較してヘッダ識別子をサーチする。データ解析部13は、ヘッダ識別子の先頭から一部分を用いてサーチを開始し、一致した場合にさらにヘッダ識別子の情報を追加してサーチをしてもよい。例えば、ヘッダ情報に複数のヘッダがあり、ヘッダ識別子の先頭から一部分が共通する場合には有効である。比較方法の詳細については省略する。
サーチ用データとヘッダ識別子が一致した場合(S33でYES)、ヘッダ識別子に続く必要な情報が入力データに含まれているかを確認する(S34)。必要なデータが含まれている場合(S34でYES)、データ解析部13は、ヘッダ情報を入力データから読み込む(S35)。必要な情報には、ヘッダ情報のサイズや総転送情報量などが含まれる。
サーチ用データとヘッダ識別子が一致しない場合(S33でNO)、または、ヘッダ識別子に続く必要な情報が入力データに含まれていない場合(S34でNO)、データ解析部13は、サーチ用データを断片データに書き込み、ヘッダ情報未検出としてヘッダ識別子サーチ処理を終了する。なお、データ解析部13は、サーチ用データのうち、次のヘッダ識別子サーチ処理に必要な情報を抽出し、断片データとして保持してもよい。例えば、データ解析部13は、ヘッダ識別子の先頭から一部分を検出した場合、その一部分を断片データとして保持してもよい。
続いて、データ解析部13は、ヘッダ情報が検出できた場合(S24でYES)、読み込んだヘッダ情報から必要な情報を抽出する(S25)。具体的には、データ解析部13は、総転送情報量、リードポインタなどをヘッダ情報から抽出して内部バッファへ設定し、断片データを初期化し、ヘッダ情報検出処理を終了する。ヘッダ情報が検出できなかった場合(S24でNO)、ヘッダ情報検出処理を終了する。
図4から図6を用いて説明した動作により、解析装置1は、外部から入力される可変長データストリームを順次出力することが可能になる。具体的には、解析装置1は、ヘッダ情報を取得した後、転送情報を出力する。また、解析装置1は、転送情報が複数回に分断されて入力する場合であっても、入力データに含まれる転送情報を順次出力することができる。すなわち、データ解析部13は、入力データとして入力された順番に、転送情報を出力することができる。このとき、解析装置1は、転送情報の全部、あるいは、ヘッダ情報及び転送情報の全部が入力されるまで待つ必要がない。
このような解析装置1を実現することにより、図2に示す復号装置6では、解析装置1が出力するヘッダ情報及び転送情報がデータ変換部2に順次入力される。データ変換部2は、解析装置1から入力されるデータを順次固定長のTSパケットに変換し、変換データバッファ3へ格納する。このとき、データ変換部2は、入力される転送情報を順次固定長パケットとして生成することができる。例えば、入力されたヘッダ情報または転送データが固定長のサイズ未満であっても、スタッフィングデータを挿入することによって、固定長データを生成することができる。
このように、固定長データとして完全な可変長データストリームが入力するまで待つことなく、順次固定長データを変換データバッファ3に格納することができる。これにより、データ分離部4、AVデコーダ5は、変換データバッファ3へ格納されたTSパケットを順次利用することができる。AVデコーダ5において、完全な可変長データストリームが格納されるまで待つことなく処理を進めることが可能になるため、復号処理全体の効率を向上させることができる。
このように、本実施形態の解析装置は、パケットアラインなど、データ配置を無視して転送されるデータストリームをデータ配置に沿った情報として変換することが可能になる。また、本実施形態の解析装置は、データストリームが断続的に転送される場合にも適用することができる。これにより、既存のデータ配置を無視して転送される環境においても、このデータ配置のデータストリームを利用する装置、例えばAVデコーダを変更しないで利用することができる。従って、サーバあるいは送信側でデータ配置に沿って作成されたデータストリームが断続的に転送される場合であっても、クライアントあるいは受信側でデータストリームを利用することができる。このように、データ転送にともなって生じるデータストリームの不具合を解消させることができる。
(実施形態2)
実施形態2では、データストリームとして、MPEG1、MPEG2−PSで用いるパックを一例として、解析装置1の動作例を説明する。具体的には、復号装置6において、解析装置1がサーバからパックを受け付け、受け付けたパックをTSパケットに変換してAVデコーダ5に受け渡す場合を一例として説明する。パックは、MPEG1、MPEG2−PSで用いるデータ配置であり、図3に示す可変長データストリームの一例である。図7、8は、パックのデータ配置例とTSパケット化を示す図である。
パックにおいて、ヘッダ情報は、パックヘッダ、システムヘッダ、パケットヘッダを含む。パックによって、システムヘッダは含まれない場合もある。転送情報は、図7、8においてペイロードとして表している。また、パケットヘッダとペイロードとをパケットという。パックでは、パケットヘッダにペイロードのサイズが含まれている。従って、解析装置1は、ヘッダ情報としてパケットヘッダを取得する必要がある。パックヘッダを検出すると、パケットヘッダの位置を取得できる。解析装置1は、まず、パックの先頭を検出してパックヘッダを検出・取得し、続いてパケットヘッダを検出・取得すること、あるいは、パケットヘッダを直接検出・取得することが必要となる。システムヘッダについては、ペイロードのデコードに必要とされてないため、無視することができる。
パケットは、図7に示すように一つのパックに一つ含まれる場合、図8に示すように一つのパックに複数含まれる場合がある。図7、8の下段には、TSパケットの構成例を示している(図中、n、mはTSパケット数を示す整数)。解析装置1は、パケットを抽出してデータ変換部2へ出力する。データ変換部2は、パケットをTSパケットに変換し、変換データバッファ3へ格納する。TSパケットは、固定長データである。
一般に、TSパケットの生成(パックのTS化)は以下のように行う。パックからパックヘッダとシステムヘッダを取り除き,パケットをTSの固定長に分割する。終端で余ったデータについては、TSパケットのアダプテーションフィールド(AF)を延長してスタッフィングを挿入し、その後にデータを配置してTSパケットを構成する。パックのTS化は、パケット単位で処理を行う為、パック内に複数のパケットが存在する場合、異なるパケットを一つのTSパケットに変換しない。例えば、図8のTSパケット #2に示すように、パケット毎にTS化する。一つのパケットの1番目には、パケットヘッダとペイロードとが含まれる(例えば、図7のTSパケット #1、図8のTSパケット #1及び#m)。パケットの終端がTSパケットのサイズより小さい場合、スタッフィングを含むTSパケットを生成する(例えば、図7のTSパケット #n)。
本実施形態において、パックのTSパケット化の動作概要は次のようになる。解析装置1を、サーバあるいは送信側からのデータ転送1回に対応して1回のストリーム生成処理を行う装置として実現する。ストリーム生成処理は、解析装置1が1回の転送で入力する入力データ(可変長データストリームの少なくとも一部分)を出力する動作をいう。以降1度のデータ転送に対応して解析装置1側で実行される処理をストリーム生成処理と呼び、一つの完全な可変長データストリームにおいて、最初にストリーム生成する場合を初回時とする。解析装置1は、データ終端がどういう箇所であっても,それに続く入力データの到着を待たずにひとまずストリーム生成処理を終了する。このため、ストリーム生成処理は有限時間で終了する。
初回時のストリーム生成処理では、解析装置1は、まずパックヘッダをサーチ、その後パックの文法に沿ってパケットを検出し、パケットを出力する。パケットが出力されると、データ変換部2は、パケットをTS化する。ここで、初回時とは、解析装置1が1回目のストリーム処理を実施するときをいう。初回でない場合、データ先頭は断片化されたパケットとなっている。従って、前回からの情報を引き継いでこれを出力する。その後次のパケットへ移動する。それ以降はパケットが出現するたびに、解析装置1は、検出したパケットを出力する。データ変換部2は、パケットのTS化を行う。
入力データの終端でパケットが途切れている場合は、その時点での処理の状態と必要なデータをストリーム情報として保持してTS化処理を終了する。データ終端に関する情報の保持内容、及び、次回の補完処理は、データ終端がMPEGの文法上どの箇所で途切れたかによって動作が異なる。
ネットワークアプリケーションにおいてサーバはストリームの任意の箇所から任意のサイズでストリームをクライアントに対して転送することがあり得る。そのためパックやパケット先頭の検出処理、およびTS化処理がデータ終端で中断される場合がある。このため、解析装置1は、処理過程の情報を引き継いで次回のストリーム生成処理を開始する必要がある。本実施形態では、解析装置1は、処理過程の情報をストリーム情報としてストリーム情報保持部12へ保持して、次のストリーム生成処理を行う。
解析装置1は、初回時の場合、パックヘッダ(0x000001BA)をサーチして検出できたところから処理を開始する。初回以外の場合、前回のストリーム生成処理においてデータがどういう箇所で終わっていたかをストリーム情報に保持する。解析装置1は、ストリーム情報に従って補完を行う。MPEGの文法上どこでデータストリームが途切れたかによって補完方法が異なるため、詳細を以下に説明する。
本実施形態では、データストリームの途切れ方を、次のように分類する。(1)ヘッダ(ヘッダの種類が判別できていない)途中で途切れたケース、(2)パックヘッダ途中で途切れたケース、(3)システムヘッダ途中で途切れたケース、(4)パケットヘッダ途中で途切れたケース、(5)ペイロード途中で途切れたケース。以下、図9を用いて順番に説明する。図9は、(1)から(5)について、具体例を示す図である。パックヘッダ、システムヘッダまたはパケットヘッダは、"00 00 01 XX YY ZZ"のヘッダ識別子で始まることになっている。"00 00 01"は各ヘッダとも共通であり、"XX YY ZZ"はヘッダの種類によって異なる。"XX"は、ヘッダの種類を示す。続いてケース毎に説明する。
(1)ヘッダ(ヘッダの種類が判別できていない)途中で途切れたケース
このケースでは、"00 00 01 XX YY ZZ"(パックヘッダ,またはパケットヘッダ)の途中で途切れた場合である。"00 00 01 XX"まで取得できないと,パックヘッダかパケットヘッダか判断がつかない。また、"YY ZZ"まで取得できないとその後に続くデータ長が判明しない。このため、解析装置1は、この6バイトを取得してから処理を後段に進めるものとしている。図9の(1)の欄において、点線で囲んだ二つの部分のいずれかで途切れた場合であり、点線で囲んだ部分全部を検出してから後段の処理に移ることになる。なお、このケースには、ヘッダ未検出な場合、ケース(2)から(5)のいずれにも含まれない場合を含む。
(2)パックヘッダ途中で途切れたケース
パックヘッダの6バイト目以降から次のヘッダの先頭6バイトの途中で途切れた場合である。図9の(2)のAはシステムヘッダがある場合、Bはシステムヘッダがない場合を示しており、点線で囲まれた部分のいずれかで途切れたことになる。パックヘッダとは,規格上"00 00 01 ba"から次のシステムヘッダ、またはパケットヘッダの前までの領域をさす。この領域が取得できない場合、その後に続くヘッダコードを取得するまで後続のデータがシステムヘッダかパケットヘッダか判明しない為である。なお、パックヘッダの先頭"00 00 01 ba yy zz"の途中で途切れた場合には(1)のケースに分類される。
(3)システムヘッダ途中で途切れたケース
システムヘッダの先頭6バイトを除く領域で途切れた場合である。図9の(3)の点線で囲まれた部分のいずれかで途切れたことになる。システムヘッダの後にはパケットヘッダがつくことが分かっているため,システムヘッダに続くヘッダ部分で途切れた場合、(4)のケースに分類される。
(4)パケットヘッダ途中で途切れたケース
パケットヘッダの内、先頭6バイトを除く領域で途切れた場合である。図9の(4)の点線で囲まれた部分のいずれかで途切れたことになる。なお、先頭6バイトで途切れた場合、(1)のケースに分類される。
(5)ペイロード途中で途切れたケース
パケットのペイロードの領域で途切れた場合である。図9の(3)の点線で囲まれた部分のいずれかで途切れたことになる。なお、パケット先頭から64バイトに含まれる部分で途切れた場合には(4)のケースに分類される。このケースでは、ストリーム情報に含まれる情報残量が設定されている状態である。
以上が、データストリームが途切れるケースそれぞれの説明である。本実施形態では、データ解析部13は、データストリームが途切れた部分が上記(1)から(5)のどのケースに分類されるかを判断し、判断結果を途切れ情報としてストリーム情報に含める。解析装置1は、途切れ情報の初期値として、(1)のケースを設定する。解析装置1のデータ解析部13は、途切れ情報を含めたストリーム情報をストリーム情報保持部12へ書き込む。従って、本実施形態では、ストリーム情報として、断片データ、情報残量、及び途切れ情報を少なくとも含む。
続いて、本実施形態の動作の詳細を説明する。解析装置1の動作全体は、図4、図5の動作と同様である。ただし、図4のステップS12において、途切れ情報の初期値を設定する点が追加される。本実施形態では、図6に示すヘッダ識別子サーチ処理の動作が異なる。図10は、実施形態2のヘッダ識別子サーチ処理の詳細を示すフローチャートである。データ解析部13は、まずスケジュール情報から途切れ情報を読み込み、途切れ情報が上述した(1)から(4)のどれに該当するかを判定する(S51)。なお、途切れ情報が(5)ペイロードの途中で途切れた場合、図4のステップ18において、情報残量がゼロより大きいため、ヘッダ検出処理(S13)を実施しないで、ステップ15の情報出力処理を行うことになる。このため、図10の処理には含まれない。
途切れ情報がヘッダの途中で途切れたことを示している場合(S52でYES)、データ解析部13は、図11に示すヘッダ識別子サーチ処理1を実施する(S53)。具体的には、サーチ用データ長が3バイト以上である場合(S61でYES)、データ解析部13は、サーチ用データとヘッダ識別子とを比較する(S62)。パックヘッダとパケットヘッダとの先頭3バイトはヘッダコードであり、共通している。この3バイトのヘッダコードを検出することによって、パックヘッダとパケットヘッダとの先頭を検出することが可能になる。このため、サーチ用データが3バイト以上である場合に、サーチを開始する。
データ解析部13は、ヘッダ識別子として、3バイトのヘッダ共通のヘッダコード、あるいは、パックヘッダの先頭4バイトとパケットヘッダの先頭4バイトとのいずれかのヘッダコードを用いてサーチ用データと比較する。サーチ用データとヘッダ識別子の比較手順の一例を以下に示すが、この手順に限られることはなく、他の手順でパケットヘッダを検出することもできる。例えば、データ解析部13は、3バイトのヘッダ共通のヘッダコードを用いて、サーチ用データと比較し、ヘッダコードが一致した時点で、次の2バイトを用いて、サーチ用ヘッダと比較し、パックヘッダであるか、パケットヘッダであるかを判断する。パックヘッダであると判断された場合、データ解析部13は、まず、パックヘッダの先頭6バイトを取得し、さらに続く情報を取得して、次のヘッダコードの先頭位置の情報を取得する。次のヘッダコードの先頭位置の情報に基づいて、入力データからパケットヘッダを検出する手順に入る。次に検出したヘッダコードがシステムヘッダである場合、さらに次のヘッダコードの先頭位置を取得することによって、パケットヘッダの先頭位置を取得することができる。
続いて、パケットヘッダを検出した場合(S63でYES)、データ解析部13は、パケットヘッダの先頭から64バイトの必要な情報が入力データに含まれているかを確認する(S64)。必要なデータが含まれている場合(S64でYES)、データ解析部13は、ヘッダ情報を入力データから読み込む(S65)。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部13は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し(S66)、ヘッダ情報検出としてヘッダ識別子サーチ処理1を終了する。
パケットヘッダが検出できない場合(S63でNO)、データ解析部13は、サーチ用データとヘッダ識別子とを比較した結果に基づいて、ヘッダの途中、パックヘッダの途中、システムヘッダの途中のいずれかで途切れたかを判定し、途切れ情報へ判定結果を書き込む(S67)。データ解析部13は、図9に示す分類に基づいて、入力データが途切れたポイントを判定する。
パケットヘッダの必要な情報が入力データに含まれていない場合(S64でNO)、データ解析部13は、パケットヘッダの途中で途切れたと判定し、途切れ情報へ判定結果を書き込む(S68)。
次に、データ解析部13は、断片データにサーチ用データを書き込み(S69)、ヘッダ情報未検出としてヘッダ識別子サーチ処理1を終了する。データ解析部13は、パックヘッダ、システムヘッダまたはパケットヘッダの途中で途切れたことを検出した場合、サーチ用データに保持するデータのうち、ヘッダ識別子と比較する必要のないデータを切り離して断片データに書き込むことによって、次のヘッダ識別子サーチ処理の負荷を削減することができる。
また、サーチ用データ長が3バイト未満である場合(S61でNO)、データ解析部13は、ヘッダ識別子をサーチできないため、断片データにサーチ用データを書き込み(S69)、ヘッダ情報未検出としてヘッダ識別子サーチ処理1を終了する。このとき、途切れた状態に変更がないため、データ解析部13は、途切れ情報を更新する必要がない。
次に、途切れ情報がパックヘッダの途中で途切れたことを示している場合(S54でYES)、データ解析部13は、図12に示すヘッダ識別子サーチ処理2を実施する(S55)。具体的には、サーチ用データからシステムヘッダを終端まで取得した場合(S71でYES)、データ解析部13は、検出したパックヘッダの先頭から6バイトを内部バッファへ格納し、次のコードをサーチする(S72)。パックには、システムヘッダがある場合とない場合があるが、システムヘッダがある場合、データ解析部13は、システムヘッダを検出した後、さらにパケットヘッダをサーチする。
パケットヘッダを検出した場合(S73でYES)、データ解析部13は、パケットヘッダの先頭から64バイトの必要な情報が入力データに含まれているかを確認する(S74)。必要なデータが含まれている場合(S74でYES)、データ解析部13は、ヘッダ情報を入力データから読み込む(S75)。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部13は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し(S76)、ヘッダ情報検出としてヘッダ識別子サーチ処理2を終了する。
パケットヘッダが検出できない場合(S73でNO)、データ解析部13は、サーチ用データとヘッダ識別子とを比較した結果に基づいて、パックヘッダの途中、システムヘッダの途中のいずれかで途切れたかを判定し、途切れ情報へ判定結果を書き込む(S77)。データ解析部13は、図9に示す分類に基づいて、入力データが途切れたポイントを判定する。
パケットヘッダの必要な情報が入力データに含まれていない場合(S74でNO)、データ解析部13は、パケットヘッダの途中で途切れたと判定し、途切れ情報へ判定結果を書き込む(S78)。
次に、データ解析部13は、断片データにサーチ用データを書き込み(S79)、ヘッダ情報未検出としてヘッダ識別子サーチ処理2を終了する。データ解析部13は、パックヘッダ、システムヘッダまたはパケットヘッダの途中で途切れたことを検出した場合、サーチ用データに保持するデータのうち、ヘッダ識別子と比較する必要のないデータを切り離して断片データに書き込むことによって、次のヘッダ識別子サーチ処理の負荷を削減することができる。
また、サーチ用データ長からパックヘッダを取得できなかった場合(S71でNO)、データ解析部13は、断片データにサーチ用データを書き込み(S77)、ヘッダ情報未検出としてヘッダ識別子サーチ処理2を終了する。このとき、途切れた状態に変更がないため、データ解析部13は、途切れ情報を更新する必要がない。
次に、途切れ情報がシステムヘッダの途中で途切れたことを示している場合(S56でYES)、データ解析部13は、図13に示すヘッダ識別子サーチ処理3を実施する(S57)。具体的には、サーチ用データからパケットヘッダを終端まで取得した場合(S81でYES)、データ解析部13は、システムヘッダに続くパケットヘッダをサーチする。パケットヘッダを検出した場合(S82でYES)、データ解析部13は、パケットヘッダの先頭から64バイトの必要な情報が入力データに含まれているかを確認する(S83)。必要なデータが含まれている場合(S83でYES)、データ解析部13は、ヘッダ情報を入力データから読み込む(S84)。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部13は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し(S85)、ヘッダ情報検出としてヘッダ識別子サーチ処理3を終了する。
パケットヘッダが検出できない場合(S82でNO)、データ解析部13は、サーチ用データとヘッダ識別子とを比較した結果に基づいて、システムヘッダの途中で途切れたかを判定し、途切れ情報へ判定結果を書き込む。
パケットヘッダの必要な情報が入力データに含まれていない場合(S83でNO)、データ解析部13は、パケットヘッダの途中で途切れたと判定し、途切れ情報へ判定結果を書き込む。
次に、データ解析部13は、断片データにサーチ用データを書き込み(S88)、ヘッダ情報未検出としてヘッダ識別子サーチ処理3を終了する。データ解析部13は、システムヘッダまたはパケットヘッダの途中で途切れたことを検出した場合、サーチ用データに保持するデータのうち、ヘッダ識別子と比較する必要のないデータを切り離して断片データに書き込むことによって、次のヘッダ識別子サーチ処理の負荷を削減することができる。
また、サーチ用データ長からシステムヘッダを取得できなかった場合(S81でNO)、データ解析部13は、断片データにサーチ用データを書き込み(S77)、ヘッダ情報未検出としてヘッダ識別子サーチ処理3を終了する。このとき、途切れた状態に変更がないため、データ解析部13は、途切れ情報を更新する必要がない。
次に、途切れ情報がパケットヘッダの途中で途切れたことを示している場合(S58でYES)、データ解析部13は、図14に示すヘッダ識別子サーチ処理4を実施する(S59)。具体的には、サーチ用データからパケットヘッダを先頭から64バイトを取得した場合(S91でYES)、データ解析部13は、パケットヘッダの先頭から64バイトの必要な情報(ヘッダ情報)を入力データから読み込む(S92)。必要な情報には、パケットヘッダに続くペイロードのサイズが含まれる。データ解析部13は、この時点で、途切れ情報にペイロードの途中で取れたという情報を設定し(S93)、ヘッダ情報検出としてヘッダ識別子サーチ処理4を終了する。
パケットヘッダが取得できない場合(S91でNO)、データ解析部13は、断片データにサーチ用データを書き込み(S94)、ヘッダ情報未検出としてヘッダ識別子サーチ処理4を終了する。このとき、途切れた状態に変更がないため、データ解析部13は、途切れ情報を更新する必要がない。
以上が本実施形態の解析装置1の動作説明である。データ変換部2は、解析装置1が出力したデータを順次TSパケットに変換する。このようにしてパックのTS化が実施される。
パックのTS化により,出力データは入力データのおよそ120%程度の量になる。これは入力データの形式に依存する為一定ではない。このため生成可能なデータ量が、出力バッファサイズをオーバーするケースがあり得る。出力バッファサイズは、予め解析装置1、データ変換部2に通知されている。このような場合、解析装置1は、出力バッファサイズに合わせてデータを出力し、バッファが一杯になった時点で出力を中止することができる。あるいは、データ変換部2は、出力バッファサイズに合わせてTSパケット単位で出力し、バッファが一杯になった時点で出力を中止することができる。このとき、解析装置1は、リードポインタが保持する値を、未処理のアドレスに設定する。このようにして、解析装置1は、処理されたデータ量だけシフトして次のストリーム生成処理を開始することで,データ欠損を避けることができる。
このように、サーバが可変長データストリームを分割して送信する場合であっても、完全な可変長データストリームとして編成することが可能となる。例えば、サーバがパケットアラインを無視して転送してくるパケット可変長のMPEG1、MPEG2プログラムストリームを既存のMPEGデータ処理回路単体を用いて再生することが可能となる。
本実施形態によれば、プログラムストリーム文法上のいかなる位置で途切れているか、いかなるサイズ(最悪のケースではバイト単位)で到着するかに関わらず、データを損失することなくトランスポートストリームに変換することができる。さらに、パックのようにヘッダ情報に複数種類のヘッダ情報が含まれている場合、データ解析部13は、AVデコーダ5(あるいはデータ分離部)が必要とする情報(必要とする種類のヘッダ情報)を抽出して出力することができる。これにより、AVデコーダ5が利用できる固定長ストリームを生成することができる。
なお、実施形態2では、パケット可変長のMPEG1、MPEG2プログラムストリームからTSパケットを生成する場合を説明したが、他のプログラムストリームを入力データとし、他の固定長パケットを生成する場合にも本発明を適用することは可能である。
(その他の実施形態)
データ解析部13は、ヘッダ情報のうち、AVデコーダ5が必要とする情報を必要なデータ形式に編集して出力してもよい。この場合、データ解析部13は、ヘッダ情報から必要な情報を抽出することになる。このように、データ解析部13は、入力する可変長データストリームを解析する機能に加え、AVデコーダ5が取り扱えるデータへ編集する機能を備えるようにしてもよい。より具体的には、ヘッダ情報のデータの内容や配置が異なる場合、AVデコーダ5が利用可能なデータの内容や配置に沿ってデータを編集する。これにより、サーバから転送される可変長データストリームのデータ形式とAVデコーダ5が利用できるデータ形式とが異なる場合にも対応することができる。また、データ形式の変換は、データ変換部2によって実施してもよい。
以上説明したように、本発明によれば、ネットワークを利用するクライアントにおいて、可変長のデータストリームがデータアラインを無視して送信される場合、データストリームを解析して、既存のAV機器が利用できるデータストリームを生成する場合に、送信されたデータストリームを解析して、既存のAV機器が利用できるデータストリームを復元する仕組みを提供することができる。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
本発明に係る解析装置の構成例を示すブロック図である。 図1に示す解析装置を搭載した復号装置の構成例を示すブロック図である。 可変長データストリームの構成例を示す図である。 実施形態1の解析装置の動作例を示すフローチャートである。 実施形態1のヘッダ検出処理の動作例を示すフローチャートである。 実施形態1のヘッダ識別子サーチ処理の動作例を示すフローチャートである。 パックのデータ配置例とTSパケット化を示す図である(パケットが一つの場合)。 パックのデータ配置例とTSパケット化を示す図である(パケットが複数の場合)。 データストリームの途切れのケースを説明する図である。 実施形態2のヘッダ識別子サーチ処理の動作例を示すフローチャートである。 実施形態2のヘッダ識別子サーチ処理1の動作例を示すフローチャートである。 実施形態2のヘッダ識別子サーチ処理2の動作例を示すフローチャートである。 実施形態2のヘッダ識別子サーチ処理3の動作例を示すフローチャートである。 実施形態2のヘッダ識別子サーチ処理4の動作例を示すフローチャートである。
符号の説明
1 解析装置
2 データ変換部
3 変換データバッファ
4 データ分離部
5 AVデコーダ
6 復号装置
11 ストリームバッファ
12 ストリーム情報保持部
13 データ解析部

Claims (10)

  1. ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力して保持するバッファと、
    前記データストリームに関するストリーム情報を保持するストリーム情報保持部と、
    新たに入力した入力データと前記ストリーム情報とを解析し、前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、新たなストリーム情報を生成して前記ストリーム情報保持部へ格納し、前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力するデータ解析部と、を備えるデータストリーム解析装置。
  2. 前記ストリーム情報保持部は、ストリーム情報として、前記入力データの少なくとも一部分である断片データと、前記転送情報の総情報量から前記データ解析部が既に出力した情報量を差し引いた情報残量との少なくとも一方を保持することを特徴とする請求項1記載のデータストリーム解析装置。
  3. 前記データ解析部は、
    前記情報残量がゼロであって、前記断片データを保持していない場合、前記入力データから前記ヘッダ情報を検索し、前記ヘッダ情報が取得できるまで、検出したヘッダ情報の一部分をストリーム情報として前記ストリーム情報保持部へ格納し、前記ヘッダ情報が取得できた後、前記ヘッダ情報から前記転送情報の先頭位置と前記総情報量とを取得することによって、前記転送情報の出力を開始し、
    前記ストリーム情報保持部が前記情報残量を保持している場合、前記入力データを出力するとともに、前記情報残量を更新することを特徴とする請求項2記載のデータストリーム解析装置。
  4. 前記データ解析部は、前記情報残量がゼロになるまで、前記バッファに入力された入力データを順次出力し、前記情報残量がゼロになっておらず、かつ、未処理の前記入力データがない場合、次に入力データが入力されたときに、残りの転送情報を出力する処理を前記情報残量がゼロになるまで繰り返すことを特徴とする請求項2または3記載のデータストリーム解析装置。
  5. 前記データ解析部は、前記情報残量がゼロになったときに、前記バッファが未処理の入力データを保持している場合、前記ヘッダ情報を検索する処理を再度行うことを特徴とする請求項2乃至4のいずれか一項に記載のデータストリーム解析装置。
  6. 前記データ解析部は、前記ヘッダ情報を検出した場合、データ出力先の機器が必要とする情報を前記ヘッダ情報から選択して出力することを特徴とする請求項1乃至5のいずれか一項に記載のデータストリーム解析装置。
  7. 請求項1乃至請求項6のいずれか一項に記載のデータストリーム解析装置と、
    前記データストリーム解析装置が出力する転送情報を固定長ストリームに変換するデータ変換部と、
    前記固定長ストリームを格納する変換データバッファと、
    前記固定長ストリームを復号する復号部と、を備える復号装置。
  8. 前記データ解析部は、検出したヘッダ情報と、前記転送情報とを出力し、
    前記データ変換部は、前記固定長ストリームとして前記復号部が処理できる形式を選択し、前記ヘッダ情報と前記転送情報とを固定長ストリームに変換することを特徴とする請求項7記載の復号装置。
  9. 前記データストリーム解析装置は、MPEG(Moving Picture Experts Group)1またはMPEG2−PS形式のデータストリームを入力し、
    前記データ変換部は、前記解析装置から出力されるデータをTSパケットに変換して前記変換データバッファへ格納することを特徴とする請求項7または8記載の復号装置。
  10. ヘッダ情報と転送情報とを含む可変長のデータストリームの一部分を入力データとして入力してバッファに保持し、
    過去に入力した入力データから抽出した、前記データストリームに関するストリーム情報をストリーム情報保持部に保持し、
    新たに入力した入力データと前記ストリーム情報とを解析し、
    前記ヘッダ情報を検出できない場合、前記入力データと前記ストリーム情報とを用いて、ストリーム情報を生成して前記ストリーム情報保持部へ格納し、
    前記ヘッダ情報を検出した場合、前記入力データに含まれる転送情報を出力するデータストリーム解析方法。
JP2008107106A 2008-04-16 2008-04-16 データストリーム解析装置、復号装置及びデータストリーム解析方法 Pending JP2009260643A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008107106A JP2009260643A (ja) 2008-04-16 2008-04-16 データストリーム解析装置、復号装置及びデータストリーム解析方法
EP20090005312 EP2111045A1 (en) 2008-04-16 2009-04-14 Method and apparatus for data stream analysis and decoding apparatus
US12/424,991 US20090265478A1 (en) 2008-04-16 2009-04-16 Method and apparatus for data stream analysis and decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008107106A JP2009260643A (ja) 2008-04-16 2008-04-16 データストリーム解析装置、復号装置及びデータストリーム解析方法

Publications (1)

Publication Number Publication Date
JP2009260643A true JP2009260643A (ja) 2009-11-05

Family

ID=40874587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008107106A Pending JP2009260643A (ja) 2008-04-16 2008-04-16 データストリーム解析装置、復号装置及びデータストリーム解析方法

Country Status (3)

Country Link
US (1) US20090265478A1 (ja)
EP (1) EP2111045A1 (ja)
JP (1) JP2009260643A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018007200A (ja) * 2016-07-08 2018-01-11 パナソニックIpマネジメント株式会社 コンテンツ復号装置、コンテンツ復号方法、受信装置及びプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065641B (zh) * 2013-02-01 2014-12-10 飞天诚信科技股份有限公司 一种解析音频数据的方法
CN103198837B (zh) * 2013-03-12 2015-07-22 飞天诚信科技股份有限公司 一种解析音频数据的方法
US9838292B2 (en) * 2014-09-19 2017-12-05 Splunk Inc. Utilizing packet headers to monitor network traffic in association with a client device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5726989A (en) * 1995-11-06 1998-03-10 Stellar One Corporation Method for ensuring synchronization of MPEG-1 data carried in an MPEG-2 transport stream
US6188703B1 (en) * 1997-08-01 2001-02-13 International Business Machines Corp. Multiplexer for multiple media streams
JPH11136225A (ja) * 1997-10-30 1999-05-21 Matsushita Electric Ind Co Ltd ビットストリームにおけるスタートコードを検出する方法および装置
GB9807208D0 (en) * 1998-04-03 1998-06-03 Nds Ltd Method and apparatus for detecting a sequence in a bitstream
US6963612B2 (en) * 2001-08-31 2005-11-08 Stmicroelectronic, Inc. System for detecting start codes in MPEG video streams and method of operating the same
JP2004343473A (ja) 2003-05-16 2004-12-02 Lsi Systems:Kk 可変長コード復号装置、可変長コード復号方法および可変長コード復号プログラム
KR100739676B1 (ko) * 2003-07-31 2007-07-13 삼성전자주식회사 그래픽 데이터를 포함하는 정보저장매체, 그 처리장치 및처리방법
JP4095081B2 (ja) * 2005-08-26 2008-06-04 パイオニア株式会社 ストリーム変換装置
JP2007124495A (ja) * 2005-10-31 2007-05-17 Nec Electronics Corp ストリームデータ処理装置
JP4750730B2 (ja) * 2006-02-28 2011-08-17 パナソニック株式会社 データ解析装置、及びデータ解析方法
US7729381B2 (en) * 2006-09-15 2010-06-01 At&T Intellectual Property I, L.P. In-band media performance monitoring

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018007200A (ja) * 2016-07-08 2018-01-11 パナソニックIpマネジメント株式会社 コンテンツ復号装置、コンテンツ復号方法、受信装置及びプログラム

Also Published As

Publication number Publication date
US20090265478A1 (en) 2009-10-22
EP2111045A1 (en) 2009-10-21

Similar Documents

Publication Publication Date Title
US6970482B2 (en) Apparatus and method for demultiplexing of transport stream
US20060013123A1 (en) Method and apparatus for processing transmission error in DMB system
CN101543072B (zh) 数据复用/分离装置
JP4964467B2 (ja) 情報処理装置、情報処理方法、プログラム、データ構造、および記録媒体
US9503777B2 (en) Method and system for unified start code emulation prevention bits processing for AVS
JP2007124495A (ja) ストリームデータ処理装置
JP2009260643A (ja) データストリーム解析装置、復号装置及びデータストリーム解析方法
JP2006311508A (ja) データ伝送システムとその送信側装置及び受信側装置
US7120171B2 (en) Packet data processing apparatus and packet data processing method
JP4750730B2 (ja) データ解析装置、及びデータ解析方法
JP4457349B2 (ja) Mpegコンテンツの同期再生方法、クライアント端末、mpegコンテンツの同期再生プログラム
US7058081B2 (en) Transmitting apparatus, transmitting method, source packet generating apparatus, source packet generating method, packet mode determining method, medium and program
US7917642B2 (en) Isochronous audio network software interface
JP4679609B2 (ja) 映像収録再生装置、映像収録方法及び映像再生方法
US20070189286A1 (en) Method for depacketization of multimedia packet data
KR20100138713A (ko) 패킷의 길이가 가변적인 mpeg-2 트랜스포트 패킷 생성 장치 및 방법
JP2016163221A (ja) 伝送装置、伝送プログラムおよび伝送方法
KR20100029010A (ko) 멀티미디어 데이터를 처리하기 위한 다중 프로세서 시스템들 및 그것의 방법들
JP2005110024A (ja) データ送信装置、データ送受信システム、及びデータ送受信方法
JP5268907B2 (ja) デコーダ構成をアップデートするための方法及び装置
US20240135942A1 (en) Decoding method and apparatus, and computer readable storage medium
JP2008205681A (ja) ビットストリーム解析装置及びビットストリーム解析方法
JP2005348347A (ja) 映像音声復号方法、映像音声復号装置、映像音声復号プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US8098657B2 (en) System and method for providing data commonality in a programmable transport demultiplexer engine
JP2008047250A (ja) デマルチプレクサ