JP5012626B2 - 情報処理装置および方法、並びにプログラム - Google Patents

情報処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP5012626B2
JP5012626B2 JP2008096992A JP2008096992A JP5012626B2 JP 5012626 B2 JP5012626 B2 JP 5012626B2 JP 2008096992 A JP2008096992 A JP 2008096992A JP 2008096992 A JP2008096992 A JP 2008096992A JP 5012626 B2 JP5012626 B2 JP 5012626B2
Authority
JP
Japan
Prior art keywords
stream
setting information
input
buffer
detection process
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.)
Expired - Fee Related
Application number
JP2008096992A
Other languages
English (en)
Other versions
JP2009253507A (ja
Inventor
智一 日比野
修利 志田
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008096992A priority Critical patent/JP5012626B2/ja
Publication of JP2009253507A publication Critical patent/JP2009253507A/ja
Application granted granted Critical
Publication of JP5012626B2 publication Critical patent/JP5012626B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置および方法、並びにプログラムに関し、特に、より拡張性のある構成で、パターンマッチング処理を実現できるようにした情報処理装置および方法、並びにプログラムに関する。
MPEG2やH.264などのビデオ圧縮規格で符号化されたビデオエレメンタリーストリーム(以下、ESと称する)は、符号化データの属性情報を示すパラメータがヘッダ部分として符号化されており、復号化処理時には、これらのヘッダ部分の情報が必要となる。
ヘッダ部分は、固定ビット長のスタートコードを先頭としたビットであり、復号時はビットストリーム上からスタートコードを示すビットパターンの検出処理が必要となる。
ビットパターン検出処理は、処理速度向上の観点から従来よりハードウェアにより行う場合が多かった。特に、HD(High Definition)画像のESのビットパターン検出処理をソフトウェアで行うことは、いわゆる組込み向けなどの非力なCPU(Central Processing Unit)では、リアルタイム性に欠けるということもあり、かかるESヘッダ処理をハードウェアが行うという状況は今後も変わらないと予想される。
図1は、ハードウェアでESのパターンマッチング処理を行って、ビットパターン検出をする場合における、従来のビットパターン検出装置の構成を示す図である。
図1においては、CPU11は、HW(Hardware)ディテクタ12に対し、ESバッファ13が格納されているメモリのアドレスとサイズ、および、検出すべきビットパターンを指定する。すると、HWディテクタ12は、パターン検出処理を施すべきESが格納されているESバッファ13からビットストリームを読み取り、指定されたビットパターン列を検出する。
HWディテクタ12は、CPU11による指示にしたがって、ESの中のパターン検出処理を継続的に実行し、ビットパターン列が検出された場合には、処理結果をCPU11に通知する。
すなわち、パターンマッチング処理は、CPU11によって、不定長単位で分割されたESのアドレス、サイズ情報を繰り返しHWディテクタ12に設定することによって実現される。また、パターンマッチング処理においては、解析終了後の結果を保持しておく必要がある。その理由は、連続する異なる解析対象境界に検出すべきビットパターンが存在する場合が起こりうるからである。
本出願人は、固定データ長のデータ群により構成される入力データのデータ分離処理に関する技術を先に提案している(例えば、特許文献1参照)。
特開2006−121184号公報
ところで、特許文献1を含む従来の技術では、入力ESが複数となったとき、パターンマッチング処理を並列に処理できるものの、パターンマッチの解析途中の情報を、唯一ハードウェアが保持しているため、入力ESの数だけパターンマッチング処理を行う装置が必要となる。
例えば、図2に示すように、2つのESが入力され、それぞれ、ESバッファ131とESバッファ132に格納されている場合、2つの入力ES対する解析情報を、HWディテクタ121とHWディテクタ122にそれぞれ用意する必要がある。すなわち、入力ESの数が増えると、それに応じて新たなHWディテクタ12を別途設ける必要が出てくる。
従って、ハードウェア規模の増加やチップ面積の増大に伴うコスト増が生じるという問題が出てくる。また、入力ESを増やす場合には、ハードウェアのシステム構成自体を変更する必要が出てくるので、従来の構成では、柔軟性、拡張性に欠けるという問題も有している。
本発明はこのような状況に鑑みてなされたものであり、より拡張性のある構成で、パターンマッチング処理を実現できるようにするものである。
本発明の一側面の情報処理装置は、入力されるMPEG2またはH.264のエレメンタリストリームに含まれるビットパターンを検出する検出手段と、入力される前記エレメンタリストリームが第1のストリームから第2のストリームに切り替えられたとき、前記第1のストリームに対する検出処理に用いられていた第1の設定情報を第1の退避領域に退避させ、前記第2のストリームに対する検出処理に用いられる第2の設定情報を設定する設定手段とを備え、前記設定情報には、検出するビットパターン、前記エレメンタリストリームを格納するバッファの開始アドレス、前記バッファのサイズ、前記バッファにおいてビットパターン検出を開始する位置、および、ビットパターン検出の途中結果イメージに関する情報が含まれており、前記設定手段は、入力される前記エレメンタリストリームが前記第2のストリームから前記第1のストリームに切り替えられたとき、設定されている前記第2の設定情報を第2の退避領域に退避させ、前記第1の退避領域に退避されていた前記第1の設定情報を再設定する。
前記第1の設定情報または前記第2の設定情報を格納する格納手段をさらに備え、前記設定手段は、前記第1のストリームに対する検出処理が終了したとき、前記第1の設定情報を退避させて前記格納手段に格納し、前記第2のストリームに対する検出処理が終了したとき、前記第2の設定情報を退避させて前記格納手段に格納する。
前記検出手段は、前記第1のストリームに対する検出処理が終了したとき、前記格納手段に格納された前記第2の設定情報を用いて、前記第2のストリームに対する検出処理を開始し、前記第2のストリームに対する検出処理が終了したとき、前記格納手段に格納された前記第1の設定情報を用いて、前記第1のストリームに対する検出処理を開始する。
前記設定手段は、前記第1のストリームの検出処理の途中で、前記第2のストリームの検出処理を開始するとき、前記第1の設定情報を退避させて前記格納手段に格納し、前記検出手段は、前記格納手段に格納された前記第2の設定情報を用いて、前記第2のストリームに対する検出処理を行う。
前記設定手段は、前記第1のストリームの検出処理の途中で開始した前記第2のストリームの検出処理が終了したとき、前記第2の設定情報を退避させて前記格納手段に格納し、前記検出手段は、前記格納手段に格納された前記第1の設定情報を用いて、前記第1のストリームに対する検出処理を再開する。
前記ビットパターンには、所定のビットからなるダミーパターンが含まれており、前記検出手段は、前記エレメンタリストリームから、前記ダミーパターン以外のビットと同じサイズ分だけのビットを読み込み、前記ビットパターンと一致するビットを検出する。
本発明の一側面の情報処理方法は、入力されるMPEG2またはH.264のエレメンタリストリームに含まれるビットパターンを検出する情報処理装置の情報処理方法において、入力される前記エレメンタリストリームが第1のストリームから第2のストリームに切り替えられたとき、前記第1のストリームに対する検出処理に用いられていた第1の設定情報を第1の退避領域に退避させ、前記第2のストリームに対する検出処理に用いられる第2の設定情報を設定し、前記設定情報には、検出するビットパターン、前記エレメンタリストリームを格納するバッファの開始アドレス、前記バッファのサイズ、前記バッファにおいてビットパターン検出を開始する位置、および、ビットパターン検出の途中結果イメージに関する情報が含まれており、入力される前記エレメンタリストリームが前記第2のストリームから前記第1のストリームに切り替えられたとき、設定されている前記第2の設定情報を第2の退避領域に退避させ、前記第1の退避領域に退避されていた前記第1の設定情報を再設定するステップを含む。
本発明の一側面のプログラムは、上述した本発明の一側面の情報処理方法に対応するプログラムである。
本発明の一側面の情報処理装置および方法、並びにプログラムにおいては、入力されるMPEG2またはH.264のエレメンタリストリームが第1のストリームから第2のストリームに切り替えられたとき、第1のストリームに対する検出処理に用いられていた第1の設定情報が第1の退避領域に退避され、第2のストリームに対する検出処理に用いられる第2の設定情報が設定される。また、設定情報には、検出するビットパターン、エレメンタリストリームを格納するバッファの開始アドレス、バッファのサイズ、バッファにおいてビットパターン検出を開始する位置、および、ビットパターン検出の途中結果イメージに関する情報が含まれており、入力されるエレメンタリストリームが第2のストリームから第1のストリームに切り替えられたとき、設定されている第2の設定情報が第2の退避領域に退避され、第1の退避領域に退避されていた第1の設定情報が再設定される。
以上のように、本発明の一側面によれば、より拡張性のある構成で、パターンマッチング処理を実現することができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
図3は、本発明を適用したパターン検出装置の一実施の形態の構成を示すブロック図である。
図3に示すように、パターン検出装置21は、CPU31、HWディテクタ32、およびESバッファ33から構成される。
CPU31は、検出するビットパターン、入力ESバッファ情報、検出スタート位置などのコンフィグレーション情報(Configuration)と、入力ESサイズをHWディテクタ32に設定する。以下、CPU31が設定するコンフィグレーション情報を、ビデオコンテキスト情報と称して説明する。
HWディテクタ32は、パターン検出処理を施すべきESが格納されているESバッファ33からビットストリームを読み取り、指定されたビットパターン列を検出する。
HWディテクタ32は、図3に示すように、スタートコードディテクタ41、内部SRAM(Static Random Access Memory)42、メモリリードI/F(Interface)43、およびVSDブロックレジスタ44を含むようにして構成される。
スタートコードディテクタ41には、メモリリードI/F43によって読み出されたESバッファ33からのビットストリームが入力される。スタートコードディテクタ41は、CPU31によって指定されたVSDブロックレジスタ44のビデオコンテキスト情報にしたがって、メモリリードI/F43からのビットストリームから、指定されたビットパターン列を検出し、その処理結果を内部SRAM42に格納する。そして、CPU31は、内部SRAM42に格納された処理結果を読み出し、保持する。
以上のようにして、パターン検出装置21は構成され、パターンマッチング処理を行って、ビットパターンを検出する。
本実施の形態においては、パターン検出装置21によって、MPEG2およびH.264のビデオESのヘッダパターンが検出される例について説明する。そこで、次に、図4乃至図7を参照して、MPEG2およびH.264のシンタックスについて説明する。
MPEG2ビデオとは、ISO/IEC 13818-2で規定されたビデオ圧縮技術である。符号化されたデータは、複数のビデオシーケンスから構成され、各々のシーケンスが各ヘッダで区切られたレイヤ構成をとっている。各ヘッダは、スタートコードでそのヘッダの開始点が示される。MPEG2の規格においては、そのスタートコード長は、4バイト固定となっており、MSBから0x000001xxの値を必ずとることが規定されている。
ここで、xxの値は、スタートコードのタイプを示す1バイトのビットパターンであって、この値によりパターン検出装置21は、スタートコードタイプを決定する。なお、ビデオのスタートコードパターンは、コードエミュレーションが発生しないように符号化されなければならないため、スタートコードパターンが検出された場合は、ヘッダ開始点であると一意に判別してもよい。
図4は、MPEG2 ESビットストリームのシンタックスの例を示している。
MPEG2 Video Sequenceにおいては、先頭に、Sequence Headerが配置され、続いて、GOP Header,Picture Header,Slice Dataの順に配置され、最後に、Sequence End Codeが配置される。
Sequence Headerには、その先頭に、Sequence Start Codeが配置され、さらに、User Data Start Codeも配置される。また、GOP Headerには、その先頭に、GOP Start Codeが配置され、Picture Headerには、その先頭に、Picture Start Codeが配置され、さらに、Extension Start Codeも配置される。さらに、Slice Dataの先頭には、1st Slice Start Codeが配置される。
このように、図4のMPEG2 Video Sequenceにおいては、各種のハッチングで示す領域に、Sequence Start Codeなどのスタートコードが配置される。
かかるスタートコードのタイプの例を示すと、図5の表のようになる。
図5の表は、MPEG2におけるStartCode Nameに対応するStartCode Patternを表している。また、図5のStartCode Nameは、図4で説明した各スタートコードに対応している。
図5においては、例えば、Picture Start CodeのStartCode Patternは、「0x00000100」であることを意味している。同様に、First Slice Start Codeは「0x00000101」、User Data Start Codeは「0x000001B2」、Sequence Start Codeは「0x000001B3」、Sequence Error Codeは「0x000001B4」、Extension Start Codeは「0x000001B5」、Sequence End Codeは「0x000001B7」、
GOP Start Codeは「0x000001B8」であるStartCode Patternをそれぞれ有している。
これらのスタートコードタイプが、パターン検出装置21により検出される。
一方、H.264は、ISO/IEC 14496-10で規定されたビデオ圧縮技術である。H.264は複数のNALユニットと呼ばれる単位で符号化されている。本発明が対象としているのは、すべてのNALにスタートコードが付与されるバイトストリームフォーマットである。そのため、MPEG2と同様に、すべてのNALユニットは、MSBから0x000001xxの値を持つスタートコードを持ち、H.264でも、コードエミュレーションが発生しないことと合わせて、スタートコードタイプが検出された場合には、パターン検出装置21は、ヘッダ開始点であると判別できる。
図6は、H.264のESビットストリームのシンタックスの例を示している。
H.264 Video Sequenceにおいては、先頭に、AU Delimiter Start Codeが配置され、続いて、SPS Header,PPS Header,SEI Header,VCL Dataの順に配置され、最後に、End of Sequence Codeが配置される。
SPS Headerには、その先頭に、SPS Start Codeが配置され、PPS Headerには、その先頭に、PPS Start Codeが配置され、SEI Headerには、SEI Start Codeが配置される。また、VCL Dataの先頭には、VCL Start Codeが配置される。
このように、図6のH.264 Video Sequenceにおいては、各種のハッチングで示す領域に、AU Delimiter Start Codeなどのスタートコードが配置される。
かかるスタートコードのタイプの例を示すと、図7の表のようになる。
図7の表は、H.264におけるStartCode Nameに対応するStartCode Patternを表している。また、図7のStartCode Nameは、図6で説明した各スタートコードに対応している。
図7においては、例えば、SEIのStartCode Patternは、「b'00000000 00000000 00000001 0xx00110」であることを意味している。同様に、SPSは「b'00000000 00000000 00000001 0xx00111」、PPSは「b'00000000 00000000 00000001 0xx01000」、AU Delimiterは「b'00000000 00000000 00000001 0xx01001」、End of Sequenceは「b'00000000 00000000 00000001 0xx01010」、End of Streamは「b'00000000 00000000 00000001 0xx01011」、Filler Dataは「b'00000000 00000000 00000001 0xx01100」であるStartCode Patternをそれぞれ有している。
以上のように、MPEG2やH.264などのビデオESには、所定のスタートコードが含まれているので、図3のパターン検出装置21において、スタートコードディテクタ41は、ESバッファ33から読み出されたESデータから、これらのスタートコードを検出する。そして、パターン検出装置21においては、ビデオコンテキスト情報をCPU31に退避し、入力されるESに合わせてビデオコンテキスト情報を動的に切り替えることにより、複数のESに対して1つのHWディテクタ32によって、パターンマッチング処理が行われる。
例えば、図8に示すように、パターン検出装置21においては、HWディテクタ32によって、ESバッファ331またはESバッファ332のいずれかより読み出されたESデータからスタートコードが検出される場合、CPU31によって、HWディテクタ32に入力されるESが切り替わる度に、ビデオコンテキスト情報の退避と設定を行う。そして、HWディテクタ32は、CPU31により設定されたビデオコンテキスト情報に基づいて、パターンマッチング処理を行い、その結果をCPU31に出力する。すなわち、この場合、入力されるESに対応する数のHWディテクタ32を設けずに、1つのHWディテクタ32によって、パターンマッチング処理が行われ、ビットパターンが検出される。
ここで、ビデオコンテキスト情報は、図9に示すように、例えば、ES Buffer Read Pointer,Current Input Buffer Image,ES Buffer Start Address,ES Buffer Size,Match Patternから構成される。
ES Buffer Read Pointer(図9のES Buf Read Pointer)は、HWディテクタ32によって読み出されるESバッファ33上のRead Pointerである。パターン検出装置21においては、HWディテクタ32を起動すると、Read Pointerからパターンマッチング処理が開始される。
Current Input Buffer Image(図9のInput Buffer Image)は、HWディテクタ32におけるパターンマッチング処理の途中結果のイメージであって、HWディテクタ32内のインプットバッファ(Input Buffer)に格納される。かかる途中結果のイメージの退避と再設定により、複数ESのパターンマッチング処理が実現される。
ES Buffer Start Address(図9のES Buf Start Address)は、ESバッファ33のスタートアドレスである。
ES Buffer Size(図9のES Buf Size)は、ESバッファ33のサイズである。
Match Pattern(図9のMatch Pattern)は、フィルタリングすべきビットパターンであって、例えば、図5または図7に示した、スタートコードがこれに相当する。
なお、当然ながら、図9に示すCPU、HW Detector、ES Bufferは、図3のCPU31、HWディテクタ32、ESバッファ33にそれぞれ対応している。
また、ビデオコンテキスト情報の退避と設定は、HWディテクタ32内のシステムレジスタにより実現される。従って、かかるシステムレジスタ内のビデオコンテキスト情報は、Read/Write属性となる。
上述したように、ビデオコンテキスト情報の退避と設定は、CPU31によって行われるが、ここで、Current Input Buffer(図9のInput Buffer)が4バイトである場合において、HWディテクタ32の入力ESチャンネルが切り替わったときに行われるビデオコンテキスト情報の退避と設定処理について、図10を参照して説明する。
図10においては、図中上側の状態図に示すように、パターンマッチング処理途中に、HWディテクタ32により管理されるInput BufferにES1の0xFF000001であるビットパターン、CPU31のよって管理されるES1用の退避領域1とES2用の退避領域2のうち、退避領域2にES2の0xFFFF0000が退避されている。また、次にパターン検出をすべきES1のESバッファ331の先頭には0xB3FFFFFFが格納され、次にパターンを検出すべきES2のESバッファ332の先頭には0x01B80100が格納されている。つまり、HWディテクタ32においては、ES1に対するパターンマッチング処理が行われている途中である。
この場合において、HWディテクタ32への入力が、ES1からES2に切り替わったときの処理は、図11のフローチャートに示すような手順で行われる。
図11は、入力ES切り替え時のビデオコンテキスト情報の退避再設定処理を説明するフローチャートである。
ステップS11において、CPU31は、HWディテクタ32への入力がES1からES2に切り替わったか否かを判定する。ステップS11において、ES1からES2に切り替わっていないと判定された場合、判定処理が繰り返される。すなわち、HWディテクタ32においては、ES1に対するパターンマッチング処理が継続して行われる。
一方、ステップS11において、ES1からES2に切り替わったと判定された場合、ステップS12において、CPU31は、現在Current Input Bufferに存在するビットパターンを現在の入力であるES1の退避領域1にコピーする。
ステップS13において、CPU31は、切り替わり後の入力であるES2の退避領域2に退避させていたビットパターンをCurrent Input Bufferに再設定する。
ステップS14において、CPU31は、その他のES2に関するビデオコンテキスト情報と入力ESサイズをHWディテクタ32のシステムレジスタに設定する。
ステップS15において、CPU31は、HWディテクタ32を起動させる。
すなわち、ビデオコンテキスト情報を設定後、HWディテクタ32が起動され、HWディテクタ32によって、1バイトごとにマッチング処理が行われる。例えば、図10の下側の状態図は、図10の上側の状態図において、ビデオコンテキスト情報の退避と再設定を行った後の状態を示している。すなわち、図10に示すように、HWディテクタ32への入力がES1からES2に切り替わると、Current Input Bufferに格納されていたES1の0xFF000001であるビットパターンが退避領域1にコピーされる。続いて、退避領域2に退避されていたES2の0xFFFF0000がCurrent Input Bufferに再設定される。これにより、HWディテクタ32によって、例えば、ES2から2バイト入力後にCurrent Input Bufferの0x0000と合わせて、GOP Start Code(0x000001B8)が検出される。
図11のフローチャートに戻り、ステップS16において、CPU31は、ES1の入力が再開されたか否かを判定する。ステップS16において、ES1の入力が再開されていないと判定された場合、判定処理が繰り返される。すなわち、HWディテクタ32においては、ES2に対するパターンマッチング処理が継続して行われる。
一方、ステップS16において、ES1の入力が再開されたと判定された場合、ステップS17において、CPU31は、現在Current Input Bufferに存在するビットパターンを現在の入力であるES2の退避領域2にコピーする。
ステップS18において、CPU31は、入力が再開されたES1の退避領域1に存在しているビットパターンをCurrent Input Bufferに再設定する。
ステップS19において、CPU31は、その他のES1に関するビデオコンテキスト情報と入力ESサイズをHWディテクタ32のシステムレジスタに設定する。
ステップS20において、CPU31は、HWディテクタ32を起動させて、処理は終了する。例えば、図10に示した例の場合には、退避領域1に退避されていたES1の0xFF000001がCurrent Input Bufferに再設定される。これにより、HWディテクタ32においては、ES1に対するパターンマッチング処理が再開される。
以上の処理を行うことで、任意のビットパターン検出処理において、動的に2チャンネルのES入力切り替えを実現できる。
また、かかる処理を実行することで、入力ESがたとえ3つ以上になったとしても、パターン検出装置21においては、CPU31によって管理される退避領域を拡張することにより、上記の2チャンネル時の処理と同様に実現可能となる。一方、ES入力1チャンネル時には、CPU31によるビデオコンテキスト情報の退避と再設定処理を行う必要はないので、パターン検出装置21は、ビデオコンテキスト情報の設定を行わない設定にすることで、ES入力が1チャンネルの場合にも対応可能となる。
ここで、ES1系統入力(ES入力が1チャンネル)と、ES2系統入力(ES入力が2チャンネル)のパターン検出処理を行った場合のタイミングチャートを図示すると、図12のようになる。
図12において、図中の上側には、ES1系統入力のタイミングチャート、図中の下側には、ES2系統入力のタイミングチャートが示されている。また、図中の長方形は、CPU31による処理を意味し、図中の六角形はHWディテクタ32によるパターン検出処理を意味する。なお、パターン検出処理を示す図中の六角形の横方向の大きさはES入力サイズを表しており、その幅が大きくなるほど、入力サイズが大きくなることを意味している。
なお、図12において、水平方向の実線は時間軸を表しており、時間の方向は、図中左から右に向かう方向とされており、後述する図13、図14、図16、図17、図19、および図20のタイミングチャートにおいても同様とされる。また、図中の縦軸において、ES Buf1はESバッファ331に対応し、ES Buf2はESバッファ332に対応し、CPU処理は、CPU31による処理に対応している。
図12の上側に示すように、入力が1系統の場合には、CPU31の処理と、ESバッファ331からの入力とが交互に繰り返され、以下の(1)から(4)までの処理を繰り返すことになる。
(1)Current Input Bufferのデータを退避領域1に退避する。
(2)退避領域1のデータをCurrent Input Bufferに再設定する。
(3)ES1のビデオコンテキスト情報と入力ESサイズを設定する。
(4)HWディテクタ32を起動する。
なお、入力が1系統であるため、データの退避処理は不要であり、図13に示すように、かかる退避処理を行わないようにすることも可能である。この場合、CPU処理は、退避処理を行わないので、例えば、最初に、ES1のビデオコンテキスト情報と入力ESサイズを設定する処理だけとなる。
一方、図12の下側に示すように、入力が2系統の場合には、CPU31の処理と、ESバッファ331からの入力(図中の入力サイズ1)またはESバッファ332からの入力(図中の入力サイズ2)に対するパターン検出処理とが交互に繰り返される。すなわち、パターン検出装置21においては、1系統の入力の場合と同様に、上記の(1)から(4)までの処理を繰り返すことで、Current Input Bufferからのデータの退避、Current Input Bufferへの再設定を繰り返し行うことにより、パターン検出処理が実現される。
ところで、図12乃至図14に示した手法であると、パターン検出前に設定した入力ESサイズ分のパターン検出処理を終了することが、次の入力に対するパターン検出を開始する条件となっている。そこで、本実施の形態においては、次に説明する手法を用いて、あるESバッファからの入力に対するパターン検出処理を途中で一時停止し、別のESバッファからの入力に対するパターン検出終了後に再開する、といった処理も実現可能となる。
かかる処理の例として、HWディテクタ32へのES入力を2系統とした場合に、一方のESに対するパターン検出処理を一時停止し、他方のESに対するパターン検出処理を行ったときのタイミングチャートを示すと、図14のようになる。
図14のタイミングチャートでは、図12の下側の2系統の入力ESのタイミングチャートと同様に、CPU31の処理と、ESバッファ331からの入力(図中の入力サイズ1)またはESバッファ332からの入力(図中の入力サイズ2)に対するパターン検出処理とが交互に繰り返される。ところが、図14のタイミングチャートにおいては、図中の2個目のES1の六角形に示すように、ESバッファ331からの入力ES1に対するパターン検出処理が途中で一時的に停止され、ESバッファ332からの入力ES2が優先的に処理されている。この様な入力ESを、ES1からES2に切り替えるときの処理は、図15のフローチャートに示すような手順で行われる。
図15は、パターン検出処理途中での強制停止処理を説明するフローチャートである。
ステップS31において、CPU31は、ES1のパターン検出処理を起動し、HWディテクタ32に実行させる。すなわち、HWディテクタ32においては、ES1に対するパターンマッチング処理が継続して行われる。
ステップS32において、CPU31は、ES1を一時停止するか否かを判定する。ステップS32において、ES1を一時停止しないと判定された場合、ES1を一時停止すると判定されるまで、HWディテクタ32によって、ES1のパターン検出処理が実行される。
一方、ステップS32において、ES1を一時停止すると判定された場合、CPU31は、ステップS33において、HWディテクタ32を強制的に停止させ、ステップS34において、現在Current Input Bufferに存在するビットパターンを、現在の入力であるES1の退避領域1にコピーする。
ステップS35において、CPU31は、ES2の退避領域2に存在しているビットパターンをCurrent Input Bufferに再設定する。
ステップS36において、CPU31は、その他のES2に関するビデオコンテキスト情報と入力ESサイズをHWディテクタ32のシステムレジスタに設定する。
ステップS37において、CPU31は、HWディテクタ32を起動させる。
ステップS38において、CPU31は、HWディテクタ32によって実行されている、ES2のパターン検出処理が終了したか否かを判定する。ステップS38において、ES2のパターン検出処理が終了していないと判定された場合、ES2のパターン検出処理が終了したと判定されるまで、HWディテクタ32によってES2のパターン検出処理が実行される。
一方、ステップS38において、ES2のパターン検出処理が終了したと判定された場合、ステップS39において、CPU31は、現在Current Input Bufferに存在するビットパターンを、現在の入力であるES2の退避領域2にコピーする。
ステップS40において、CPU31は、ES1の退避領域1に存在しているビットパターンをCurrent Input Bufferに再設定する。
ステップS41において、CPU31は、その他のES1に関するビデオコンテキスト情報と入力ESサイズをHWディテクタ32のシステムレジスタに設定する。
ステップS42において、CPU31は、HWディテクタ32を起動させて、一時的に停止していたES1のパターン検出処理を再開し、その後、処理は終了する。すなわち、ある特定のESを優先的に処理したい場合、パターン検出装置21においては、入力ES1に対するパターン検出処理が途中で中断され、ES2に対するパターン検出処理が優先的に処理され、その優先処理が終了した後、ES1に対するパターン検出処理が中断された位置から再開される。
このように、パターン検出処理途中に、ES入力を切り替えたとしても、ビデオコンテキスト情報の退避と再設定を行うことにより、正常に処理を終了することが可能となる。また、かかる手法によって、パターン検出処理の途中で一時的に処理を中断し、他のESのパターン検出処理を行った後に、再度、中断していたパターン検出処理を再開することは可能となるが、入力ESの切り替えの部分で、CPU31によるビデオコンテキスト情報の退避設定処理によって、HWディテクタ32によるパターン検出処理を連続的に行うことはできない。
すなわち、図16の円で囲っているCPU31の処理で示すように、ESバッファ331からの入力(図中の入力サイズ1)またはESバッファ332からの入力(図中の入力サイズ2)に対するパターン検出処理は、ES入力切り替えで、CPU31の処理を介してHWディテクタ32を起動しないと実行できない。この両者の処理、つまり、パターン検出処理とCPU処理とを同時並行的に処理できれば、処理能力をさらに向上させることが可能となる。例えば、図17に示すように、パターン検出装置21においては、ESバッファ331からの入力(図中の入力サイズ1)またはESバッファ332からの入力(図中の入力サイズ2)に対するパターン検出処理を行っている最中に、CPU31の処理を同時並列的に行うことができれば、HWディテクタ32によって、パターン検出処理を連続的に行うことが可能となる。
そして、図16に示したような、パターン検出処理とCPU処理との並列処理ができない理由は、ハードウェアが管理しているビデオコンテキスト情報管理用のレジスタが1つしかなく、その1つのレジスタでReadとWriteのデータを扱っているためである。そこで、本実施の形態においては、ビデオコンテキスト情報退避レジスタを複数有するシステムとすることで、パターン検出処理とCPU処理とを並列に処理できるようにし、パターン検出処理を高速に行う手法についても提案する。
図18は、かかる手法を適用したハードウェアのレジスタ構成の例である。
図18においては、二重線で囲まれた四角は、システムレジスタを表しており、システム(パターン検出装置21)は、コンテキスト退避用レジスタ51と、パターン検出処理設定用レジスタ52の2つのレジスタを有している。
コンテキスト退避用レジスタ51は、HWディテクタ32の現在の処理結果のビデオコンテキスト情報を格納するためのレジスタである。また、パターン検出処理設定用レジスタ52は、HWディテクタ32の次の処理に設定するビデオコンテキスト情報および入力サイズ情報を格納するためのレジスタである。
具体的には、コンテキスト退避用レジスタ51は、図18に示すシステムにおいて唯一存在するレジスタ群である。このコンテキスト退避用レジスタ51は、パターン検出処理終了時にHWディテクタ32により設定される。コンテキスト退避用レジスタ51は、ビデオコンテキスト情報に対応するレジスタからなるレジスタ群として構成される。
パターン検出処理設定用レジスタ52は、HWディテクタ32が次に行うパターン検出処理の設定情報であって、ビデオコンテキスト情報と入力ESサイズ情報を設定するためのレジスタ群である。HWディテクタ32は、CPU31により設定されたパターン検出処理用コンフィグレーションリスト(Configuration List)53(以下、略して、コンフィグレーションリスト53と称する)に積まれた設定情報を読み込み、逐次処理を実行する。
コンフィグレーションリスト53は、CPU31によって、現在HWディテクタ32により行われているパターン検出処理の次以降に行うべきパターン検出処理に必要な情報がリストとして積まれたものである。ここでリストとして積まれるものは、具体的にはビデオコンテキスト情報と入力ESサイズ情報である。
通常処理では、コンフィグレーションリスト53は、キュー(Queue)構成をとっており、FIFO(First In First Out)により処理を実行する。ここで、コンフィグレーションリスト53がリストとなっている理由は、後述する強制停止(Forced Stop)処理を実行するためである。
また、コンフィグレーションリスト53の段数は、入力ES数から1減算した段数とすることで、パターン検出処理とCPU処理とを同時並行的に処理できる。すなわち、例えば、図19のタイミングチャートに示すように、ES Buf1、ES Buf2、ES Buf3の3系統からESが入力される場合には、入力ES数の3から1を減算した段数、すなわち、2段の段数を有するコンフィグレーションリスト53が必要となる。
例えば、図19のES Buf1乃至CPU処理のタイミングチャートの下段に示した、Configuration List Imageは、図18のコンフィグレーションリスト53に積まれるリストのイメージを表している。このイメージでは、ES1乃至ES3は、対応するESのビデオコンテキスト情報と入力ESサイズからなる設定情報を意味しており、パターン検出処理設定用レジスタ52によって、リストの上位にある設定情報が順次読み込まれ、HWディテクタ32によって、読み込まれた設定情報を用いたパターン検出処理が行われる。
かかるリストについて、図19のタイミングチャートを参照して、実際の処理の流れに沿って説明すると、次のようになる。すなわち、図19に示すように、HWディテクタ32には、ES Buf1,ES Buf2,ES Buf3のそれぞれから、順次、ES1,ES2,ES3が繰り返し入力され、パターン検出処理が施されるが、それらの処理と同時並列的に、CPU31によって、CPU処理が行われる。図19に示すように、CPU処理を示す長方形には、ハッチングが施されていない、ES Buf xのパターン検出処理設定処理を意味する四角と、ハッチングが施された、ES Buf xのビデオコンテキスト情報退避処理を意味する四角の2種類がある。ただし、xは自然数である。
具体的には、HWディテクタ32に対してES1が入力される前に、少なくともES1の設定情報がHWディテクタ32に設定され、コンフィグレーションリスト53には、次以降に行うパターン検出処理に必要となるES2とES3の設定情報が積まれている。HWディテクタ32は、入力ES1に対し、ES1の設定情報を用いてパターン検出処理を施す。その後、ES1に対する処理が終了すると、HWディテクタ32は、コンフィグレーションリスト53の最上位に積まれたES2の設定情報を読み出し、ES1に続いて入力されるES2に対し、ES2の設定情報を用いてパターン検出処理を施す。このとき、CPU31は、ES1のビデオコンテキスト情報の退避処理を行い、続いて、ES1のパターン検出処理設定処理を行う。これにより、コンフィグレーションリスト53には、次以降に行うパターン検出処理に必要となるES3とES1の設定情報が順に積まれる。
そして、HWディテクタ32においては、ES2に対するパターン検出処理が終了すると、コンフィグレーションリスト53の最上位に積まれているES3の設定情報が読み出され、ES2に続いて入力されるES3に対し、読み出したES3の設定情報を用いたパターン検出処理が施される。このとき、CPU31は、ES2のビデオコンテキスト情報の退避処理を行い、続いて、ES2のパターン検出処理設定処理を行う。これにより、コンフィグレーションリスト53には、次以降に行うパターン検出処理に必要となるES1とES2の設定情報が順に積まれる。
その後、HWディテクタ32には、ES Buf1,ES Buf2,ES Buf3のそれぞれから、順次、ES1,ES2,ES3が繰り返し入力されるが、上述したように、コンフィグレーションリスト53から読み出された各ESに応じた設定情報を用いたパターン検出処理が施される。また、かかる処理と同時並列的に、CPU31によって、ビデオコンテキスト情報の退避処理と、パターン検出処理設定処理が行われ、コンフィグレーションリスト53には、次以降に行うパターン検出に必要となる設定情報が順次格納される。
このように、コンフィグレーションリスト53の段数として、入力ES数から1減算した段数を設けることで、パターン検出処理とCPU処理とを同時並行的に処理できる。なお、図19の例では、説明の都合上、3段のコンフィグレーションリスト53を図示しているが、上述した説明でも明らかなように、実際には、入力ES数から1減算した2段だけを使用している。
次に、コンフィグレーションリスト53を用いたパターン検出処理として、パターン検出処理を一時停止し、その後、復帰する処理(以下、強制終了処理(Forced Stop)と称する)について説明する。強制終了処理において、CPU31によって管理されるコンフィグレーションリスト53は、リスト構造を有しており、優先順位の最も高いES入力に対するパターン検出処理で使用される設定情報がリストの最上位に配置される。
したがって、HWディテクタ32に対し、強制終了処理を実行した場合には、リストの最上位に配置された設定情報を用いたパターン検出処理が即座に実行される。一方、強制的に中断させられたほうのパターン検出処理であるが、復帰のための設定情報を再度、コンフィグレーションリスト53に積むことにより、処理復帰することが可能となる。
かかる強制終了処理の詳細について、図20のタイミングチャートを参照して説明する。
なお、図20においては、説明を簡略にするために、図19のタイミングチャートと比べて、入力ESが3系統から2系統に減少しているが、基本的には図19と対応しており、Configuration List Imageは、図19において説明した場合と同様の原理によって、入力ES数から1減算した1段だけを使用したものとなっている。また、CPU処理としては、図19と同様に、CPU31によって、2系統分の処理が行われる。
図20のタイミングチャートは、ES1とES2に対するパターン検出処理が施された後、ES1に対する2回目のES1の設定情報を用いたパターン検出処理が施されているとき、強制終了要求が発せられた場合の例を示している。
このとき、コンフィグレーションリスト53の最上位には、ES2の設定情報が配置されており、ES1に対する2回目のパターン検出処理が行われているときに、強制終了要求に応じた強制終了処理が行われると、ES1のパターン検出処理が中断される。そして、HWディテクタ32は、コンフィグレーションリスト53の最上位に積まれたES2の設定情報を読み出し、入力されるES2に対し、ES2の設定情報を用いたパターン検出処理を施す。
また、このとき、CPU31は、ES1のビデオコンテキスト情報の退避処理を行い、続いて、ES1のパターン検出処理設定処理を行う。これにより、コンフィグレーションリスト53には、次以降に行うパターン検出処理に必要となるES1の設定情報が積まれる。これにより、強制的に中断させられたES1のパターン検出処理の復帰のための設定情報がコンフィグレーションリスト53の最上位に配置されたことになる。
その後、ES2に対するパターン検出処理が終了すると、HWディテクタ32は、コンフィグレーションリスト53の最上位に配置された復帰のためのES1の設定情報を読み出し、再度入力されるES1に対し、ES1の設定情報を用いたパターン検出処理を施す。また、CPU31によって、ES2のビデオコンテキスト情報の退避処理と、ES2のパターン検出処理設定処理が行われることで、コンフィグレーションリスト53には、ES2の設定情報が配置される。
このように、あるESに対しパターン検出処理を行っている最中であっても、強制終了処理によって、優先度の高い別のESに対しパターン検出処理を行うことが可能となるとともに、中断されたほうのパターン検出処理に復帰することも可能となる。
また、あるESに対するパターン検出処理実行中に、HWディテクタ32を強制終了し、ES入力を切り替えることにより、各々のESバッファから入力されるESに対してのパターン検出レートを動的にコントロールすることが可能となる。
なお、強制終了処理を実行するトリガは、例えば、次の(1)から(4)に示すようなものとなる。
(1)ESバッファ33がアンダーフロー気味のときには、他のESの入力に切り替える。
(2)ESバッファ33内のAU消費が増加したとき(例えば変則再生時など)には、ESバッファ33を優先処理する。
(3)ESバッファ33のAU処理がふん詰まり気味のときには、他のESの入力に切り替える。
(4)ESバッファ33のAU処理が過多気味のときには、他のESの入力に切り替える。
すなわち、例えば、上記の(1)から(4)の条件に合致するとき、パターン検出装置21においては、強制終了処理が実行される。
次に、図21のフローチャートを参照して、コンフィグレーションリスト53を用いたパターン検出処理について説明する。
CPU31は、ステップS51において、各種の初期設定を行って、ステップS52において、HWディテクタ32を起動する。
ステップS53において、CPU31は、例えばESバッファ331がアンダーフローとなっているなどの要因によって、強制終了要求が通知されたか否かを判定する。
ステップS53において、強制終了要求が通知されていないと判定された場合、ステップS54において、CPU31は、パターン検出終了割り込みがあるか否かを判定する。
ステップS54において、パターン検出終了割り込みがないと判定された場合、ステップS53に戻り、ステップS53において、強制終了要求があると判定されるか、あるいは、ステップS54において、パターン検出終了割り込みがあると判定されるまで、ステップS53およびステップS54の処理が繰り返される。すなわち、その間、HWディテクタ32においては、例えば、入力されるES1に対し、パターン検出処理が施される。
一方、ステップS53において、強制終了要求が通知されたと判定された場合、ステップS55において、CPU31は、HWディテクタ32を強制停止する。その後、ステップS56において、CPU31は、例えばES1の設定情報などの、HWディテクタ32によりパターン検出処理が施されていたESのビデオコンテキスト情報の退避処理を行う。
ステップS57において、CPU31は、パターン検出要求が通知されたか否かを判定し、パターン検出要求が通知されたと判定されるまで、ステップS57の判定処理が繰り返される。ステップS57において、パターン検出要求が通知されたと判定された場合、ステップS58において、CPU31は、優先処理要求が通知されたか否かを判定する。
ステップS58において、優先処理要求が通知されたと判定された場合、ステップS59において、CPU31は、コンフィグレーションリスト53の最上位に、その優先処理要求が通知されたパターン検出処理要求を設定する。すなわち、例えば、ES2に対し優先的にパターン検出処理を施す要求が通知された場合には、CPU31は、ES2の設定情報を、コンフィグレーションリスト53の最上位に配置する。
その後、処理は、ステップS52に戻り、HWディテクタ32が起動され、例えば、HWディテクタ32は、優先度の高いES2に対し、ES2の設定情報を用いたパターン検出処理を施すことになる。
一方、ステップS58において、優先処理要求が通知されていないと判定された場合、ステップS60において、CPU31は、コンフィグレーションリスト53の最下位にパターン検出処理要求を設定する。その後、処理は、ステップS52に戻り、HWディテクタ32が起動され、HWディテクタ32は、入力されるESに対し、コンフィグレーションリスト53の上位に配置されたESの設定情報を用いて、パターン検出処理を施すことになる。
また、ステップS54において、パターン検出終了割り込みがあると判定された場合には、パターン検出の割り込み処理が終了したので、CPU31によって、上記のステップS56乃至ステップS60と同様の処理が実行される。これにより、HWディテクタ32は、割り込み処理が終了したESの代わりに入力されるESに対し、コンフィグレーションリスト53の上位に配置された入力ESの設定情報を用いて、パターン検出処理を行う。
以上のように、パターン検出装置21においては、コンフィグレーションリスト53を用いたパターン検出処理が行われることにより、複数ESが入力されるとき、パターン検出処理の途中であっても、現在指定されているESに対するパターン検出処理を一時的に中断し、別のESに対するパターン検出処理を行った後に、一時停止していた処理を復帰させることができる。
ところで、パターン検出処理を行う場合、検出したいパターン長は対象となるアプリケーションごとに異なる。例えば、MPEG2やH.264のスタートコードを検出する場合には、4バイト長のパターンマッチフィルタを用意しておけばよいが、例えば、MPEG2やH.264のスタートコードに後続するデータを含めてのパターン検出処理や、その他のビデオコーデックのスタートコード相当のビットパターンを検出したい場合には、必ずしも4バイトのフィルタ長を用意しておけばよい、というわけではない。
本実施の形態において、例えばパターンマッチフィルタ長を12バイトとした場合、ビデオコンテキスト情報のCurrent Input Bufferも12バイト必要になる。すなわち、パターン検出処理を行う際に、Current Input Bufferにデータがすべて溜まったのを以ってパターン検出処理を開始するHWディテクタ32は、例えば、Current Input Bufferが空の状態で処理を開始し、パターン検出処理直後の4バイト長のビットパターンを検出した場合であっても、12バイトの入力を待たなければならない。これは、高速処理が期待されるパターン検出処理において処理速度を低下させる原因となる。
そこで、本実施の形態においては、パターン検出すべきマッチパターンを、マッチパターン(Match Pattern)と、マッチパターンマスク(Match Pattern Mask)を用いて設定することによって、処理速度の低下を抑制することができるようになる。ここで、マッチパターンは、パターン検出したいビットパターン列を表し、マッチパターンマスクは、パターン検出したいビットパターン列に対するマスクビットを表す情報である。すなわち、かかる情報をビデオコンテキスト情報として設定可能にすることで、可変長サイズのパターン検出処理であっても、冗長な入力を待つことなく処理を行うことが可能となる。
次に、図22および図23を参照して、Current Input Buffer長を12バイト、検出したいビットパターンを、0x000001B3とした場合における、ビデオコンテキスト情報を設定しない場合の処理と、ビデオコンテキスト情報を設定した場合の処理について説明する。
図22は、ビデオコンテキスト情報を設定しない場合のパターン検出処理を説明する図である。
図22の上段の四角に囲まれたビットのイメージで表すように、図中左から右に向かう方向に入力されるビットストリームにおいて、マッチさせたいパターンは、12バイトのうち、太枠で囲っている後方の4バイトである。
ビデオコンテキスト情報を設定しない場合、マッチパターンとしての「0x000001B3」は、図22のMatch Patternに示すように、12バイトの左詰で設定される。それに伴って、図22のMatch Pattern Maskに示すように、マッチパターンマスクも、12バイトの左詰で設定される。
このとき、図22のInput Buffer Imageに示すように、12バイトのサイズを有するCurrent Input Bufferに対し、図中右から左にビット列が順次入力されるとすると、Current Input Bufferから0x000001B3を検出するためには、12バイトの読み込みが必要となる。
一方、ビデオコンテキスト情報を設定した場合のパターン検出処理について図示すると、図23のようになる。
図23のMatch Patternに示すように、ビデオコンテキスト情報を設定した場合、マッチパターンとしての0x000001B3を右詰で設定し、図23のMatch Pattern Maskに示すように、マッチパターンマスクも、右詰で、0xFFFFFFFFを設定する。
さらに、ビデオコンテキスト情報のInput Buffer Imageに、ダミーデータとして、0xFFを左詰に8バイト設定しておく。このダミーデータを設定する理由であるが、あらかじめ、Current Input Bufferにダミーデータを8バイト積んでおくことにより、HWディテクタ32によって、12バイトのうちのダミーデータの8バイトを除いた4バイトの読み込みが完了した後、即座にパターンマッチング処理が行われるようにするためである。
換言すれば、このビデオコンテキスト情報を用いることで、実際には、HWディテクタ32が読み込んでいない、Current Input Buffer Imageを設定することが可能となり、この例の場合、冗長なES入力8バイトを削減することができる。その結果、処理速度を向上させることができる。
また、上述した、ビデオコンテキスト情報を用いたパターン検出処理の機能は、図24に示すように、PESバッファ61からESバッファ33への多重化分離処理時においても適用できる。
すなわち、PESバッファ611およびPESバッファ612に格納されるヘッダ解析済みのPES(Packetized Elementary Stream)は、ヘッダ部が除去され、HWディテクタ32において、DMA(Direct Memory Access)によって、ペイロード部がESバッファ331およびESバッファ332に転送される。このとき、かかるDMAにおいて、パターンマッチング機能およびCPU31へのビデオコンテキスト情報の退避・再設定処理を付与することにより、複数PESの分離転送処理とパターンマッチング処理とを同時並列的に行うことが可能となる。
以上のように、本実施の形態においては、ビデオコンテキスト情報の退避・再設定処理により、従来では複数のパターン検出用のハードウェアを具備するシステムでしか実現することのできなかった、複数のESに対するパターン検出処理と、その処理の動的なレートコントロールが実現可能となる。また、入力されるESの数が増加するなどのパターン検出装置に要求される処理機能が変更となった場合であっても、パターン検出用のハードウェアを拡張することなく、ソフトウェアの改修だけで、かかる機能を満たすことが可能となる。
また、本実施の形態においては、ビデオコンテキスト情報を用いることにより、複数ES入力時にパターン検出処理の実行途中であっても、現在指定されているESに対する処理を一時的に停止し、別のESに対するパターン検出処理を行った後に、再度、一時停止していた処理を復帰することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
図25は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU111は、ROM(Read Only Memory)112、または記録部118に記録されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)113には、CPU111が実行するプログラムやデータ等が適宜記憶される。これらのCPU111、ROM112、およびRAM113は、バス114により相互に接続されている。
CPU111にはまた、バス114を介して入出力インターフェース115が接続されている。入出力インターフェース115には、マイクロホン等よりなる入力部116、ディスプレイ、スピーカ等よりなる出力部117が接続されている。CPU111は、入力部116から入力される指令に対応して各種の処理を実行する。そして、CPU111は、処理の結果を出力部117に出力する。
入出力インターフェース115に接続されている記録部118は、例えばハードディスクからなり、CPU111が実行するプログラムや各種のデータを記録する。通信部119は、インターネットやローカルエリアネットワーク等のネットワークを介して外部の装置と通信する。
また、通信部119を介してプログラムを取得し、記録部118に記録してもよい。
入出力インターフェース115に接続されているドライブ120は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア121が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータ等を取得する。取得されたプログラムやデータは、必要に応じて記録部118に転送され、記録される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図25に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア121、または、プログラムが一時的もしくは永続的に格納されるROM112や、記録部118を構成するハードディスク等により構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデム等のインターフェースである通信部119を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
従来のビットパターン検出装置の構成を示す図である。 従来のビットパターン検出装置の構成を示す図である。 本発明を適用したパターン検出装置の一実施の形態の構成を示すブロック図である。 MPEG2のESビットストリームのシンタックスの例を示す図である。 MPEG2のスタートコードの例を示す図である。 H.264のESビットストリームのシンタックスの例を示す図である。 H.264のスタートコードの例を示す図である。 パターン検出装置の構成例を示す図である。 ビデオコンテキスト情報の例を示す図である。 ビデオコンテキスト情報の退避再設定処理の例を説明する図である。 入力ES切り替え時のビデオコンテキスト情報の退避再設定処理を説明するフローチャートである。 2系統のES入力に対するパターン検出処理を示すタイミングチャートである。 1系統のES入力のビデオコンテキスト情報の退避再設定を行わない場合を示すタイミングチャートである。 パターン検出処理の強制ストップを示すタイミングチャートである。 パターン検出処理途中での強制停止処理を説明するフローチャートである。 パターン検出処理とCPU処理との関係を示すタイミングチャートである。 パターン検出処理とCPU処理との理想的な関係を示すタイミングチャートである。 パターン検出処理における関連情報のデータフローの例を示す図である。 複数レジスタを持った場合における複数チャンネルからのES入力時のパターン検出処理を示すタイミングチャートである。 強制終了実行時のパターン検出処理を示すタイミングチャートである。 コンフィグレーションリストを用いたパターン検出処理を説明するフローチャートである。 ビデオコンテキスト情報を設定しない場合におけるパターン検出処理を説明する図である。 ビデオコンテキスト情報を設定する場合におけるパターン検出処理を説明する図である。 ビデオコンテキスト情報を利用するパターン検出装置を用いた他の構成の例について説明する図である。 本発明が適用される情報処理をソフトウェアで実行するコンピュータの構成例を示すブロック図である。
符号の説明
21 パターン検出装置, 31 CPU, 32 HWディテクタ, 33 ESバッファ, 41 スタートコードディテクタ, 42 内部SRAM, 43 メモリリードI/F, 44 VSDブロックレジスタ, 51 コンテキスト退避用レジスタ, 52 パターン検出処理設定用レジスタ, 53 コンフィグレーションリスト, 61 PESバッファ

Claims (8)

  1. 入力されるMPEG2またはH.264のエレメンタリストリームに含まれるビットパターンを検出する検出手段と、
    入力される前記エレメンタリストリームが第1のストリームから第2のストリームに切り替えられたとき、前記第1のストリームに対する検出処理に用いられていた第1の設定情報を第1の退避領域に退避させ、前記第2のストリームに対する検出処理に用いられる第2の設定情報を設定する設定手段と
    を備え、
    前記設定情報には、検出するビットパターン、前記エレメンタリストリームを格納するバッファの開始アドレス、前記バッファのサイズ、前記バッファにおいてビットパターン検出を開始する位置、および、ビットパターン検出の途中結果イメージに関する情報が含まれており、
    前記設定手段は、入力される前記エレメンタリストリームが前記第2のストリームから前記第1のストリームに切り替えられたとき、設定されている前記第2の設定情報を第2の退避領域に退避させ、前記第1の退避領域に退避されていた前記第1の設定情報を再設定する
    情報処理装置。
  2. 前記第1の設定情報または前記第2の設定情報を格納する格納手段をさらに備え、
    前記設定手段は、前記第1のストリームに対する検出処理が終了したとき、前記第1の設定情報を退避させて前記格納手段に格納し、前記第2のストリームに対する検出処理が終了したとき、前記第2の設定情報を退避させて前記格納手段に格納する
    請求項1に記載の情報処理装置。
  3. 前記検出手段は、前記第1のストリームに対する検出処理が終了したとき、前記格納手段に格納された前記第2の設定情報を用いて、前記第2のストリームに対する検出処理を開始し、前記第2のストリームに対する検出処理が終了したとき、前記格納手段に格納された前記第1の設定情報を用いて、前記第1のストリームに対する検出処理を開始する
    請求項2に記載の情報処理装置。
  4. 前記設定手段は、前記第1のストリームの検出処理の途中で、前記第2のストリームの検出処理を開始するとき、前記第1の設定情報を退避させて前記格納手段に格納し、
    前記検出手段は、前記格納手段に格納された前記第2の設定情報を用いて、前記第2のストリームに対する検出処理を行う
    請求項2に記載の情報処理装置。
  5. 前記設定手段は、前記第1のストリームの検出処理の途中で開始した前記第2のストリームの検出処理が終了したとき、前記第2の設定情報を退避させて前記格納手段に格納し、
    前記検出手段は、前記格納手段に格納された前記第1の設定情報を用いて、前記第1のストリームに対する検出処理を再開する
    請求項4に記載の情報処理装置。
  6. 前記ビットパターンには、所定のビットからなるダミーパターンが含まれており、
    前記検出手段は、前記エレメンタリストリームから、前記ダミーパターン以外のビットと同じサイズ分だけのビットを読み込み、前記ビットパターンと一致するビットを検出する
    請求項に記載の情報処理装置。
  7. 入力されるMPEG2またはH.264のエレメンタリストリームに含まれるビットパターンを検出する情報処理装置の情報処理方法において、
    入力される前記エレメンタリストリームが第1のストリームから第2のストリームに切り替えられたとき、前記第1のストリームに対する検出処理に用いられていた第1の設定情報を第1の退避領域に退避させ、前記第2のストリームに対する検出処理に用いられる第2の設定情報を設定し、
    前記設定情報には、検出するビットパターン、前記エレメンタリストリームを格納するバッファの開始アドレス、前記バッファのサイズ、前記バッファにおいてビットパターン検出を開始する位置、および、ビットパターン検出の途中結果イメージに関する情報が含まれており、
    入力される前記エレメンタリストリームが前記第2のストリームから前記第1のストリームに切り替えられたとき、設定されている前記第2の設定情報を第2の退避領域に退避させ、前記第1の退避領域に退避されていた前記第1の設定情報を再設定する
    ステップを含む情報処理方法。
  8. 入力されるMPEG2またはH.264のエレメンタリストリームに含まれるビットパターンを検出する機器を制御するコンピュータに実行させるプログラムであって、
    入力される前記エレメンタリストリームが第1のストリームから第2のストリームに切り替えられたとき、前記第1のストリームに対する検出処理に用いられていた第1の設定情報を第1の退避領域に退避させ、前記第2のストリームに対する検出処理に用いられる第2の設定情報を設定し、
    前記設定情報には、検出するビットパターン、前記エレメンタリストリームを格納するバッファの開始アドレス、前記バッファのサイズ、前記バッファにおいてビットパターン検出を開始する位置、および、ビットパターン検出の途中結果イメージに関する情報が含まれており、
    入力される前記エレメンタリストリームが前記第2のストリームから前記第1のストリームに切り替えられたとき、設定されている前記第2の設定情報を第2の退避領域に退避させ、前記第1の退避領域に退避されていた前記第1の設定情報を再設定する
    ステップを含むプログラム。
JP2008096992A 2008-04-03 2008-04-03 情報処理装置および方法、並びにプログラム Expired - Fee Related JP5012626B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008096992A JP5012626B2 (ja) 2008-04-03 2008-04-03 情報処理装置および方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008096992A JP5012626B2 (ja) 2008-04-03 2008-04-03 情報処理装置および方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2009253507A JP2009253507A (ja) 2009-10-29
JP5012626B2 true JP5012626B2 (ja) 2012-08-29

Family

ID=41313783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008096992A Expired - Fee Related JP5012626B2 (ja) 2008-04-03 2008-04-03 情報処理装置および方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP5012626B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011109365A (ja) * 2009-11-17 2011-06-02 Renesas Electronics Corp ビットストリーム処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000307643A (ja) * 1999-04-16 2000-11-02 Sony Corp データ解析装置及びデータ解析方法
JP2001346206A (ja) * 2000-03-29 2001-12-14 Matsushita Electric Ind Co Ltd 復号装置、復号方法、多重化装置及び多重化方法
JP4208116B2 (ja) * 2001-08-06 2009-01-14 パナソニック株式会社 復号装置,復号方法,復号プログラム,および復号プログラム記録媒体
US20090196356A1 (en) * 2005-09-14 2009-08-06 Mitsunori Houki Multi-stream decoder apparatus
JP4736918B2 (ja) * 2006-04-11 2011-07-27 パナソニック株式会社 デジタル再生装置または再生プログラム

Also Published As

Publication number Publication date
JP2009253507A (ja) 2009-10-29

Similar Documents

Publication Publication Date Title
US6212208B1 (en) Method for coding and multiplexing multimedia data, apparatus for coding and multiplexing multimedia data, record media containing program for coding and multiplexing multimedia data
US8270800B2 (en) Information processing apparatus and method, recording medium, and program
JP2010219983A (ja) 画像処理装置および方法
JP2001346205A (ja) 信号の誤りを隠蔽する方法
JP5011017B2 (ja) 画像復号化装置
JP4676331B2 (ja) コード変換方法及びその装置
US7613819B2 (en) Image reproduction apparatus, control method thereof, program and storage medium
US20090162030A1 (en) Recording apparatus
JP5012626B2 (ja) 情報処理装置および方法、並びにプログラム
US9473732B2 (en) Self correcting record pipeline
US7924675B2 (en) Information recording apparatus, imaging device, information-recording controlling method, and computer program
JP5046907B2 (ja) 記録装置、その制御方法、プログラム
JP2003324690A (ja) 映像記録再生装置
JP2009100106A (ja) 画像再生装置,およびその処理方法およびそのプログラム
US10950274B2 (en) Image recording apparatus, method for controlling same, and non-transitory computer-readable storage medium
JP4900945B2 (ja) 記録装置、及び記録方法
US7113113B2 (en) Reproduction apparatus
JP3888204B2 (ja) 記録装置および方法、再生装置および方法、記録媒体、並びにプログラム
JPWO2018211613A1 (ja) 符号化映像再生装置および符号化映像再生方法
US8442126B1 (en) Synchronizing audio and video content through buffer wrappers
US20110119465A1 (en) Data processing system
JP4403403B2 (ja) ストリーム多重化装置、ストリーム記録装置およびストリーム多重化方法
JP2005260440A (ja) 画像音声記録再生装置
JP2005528860A (ja) ウォーターマーク検出
JP2009038704A (ja) 撮影データ記録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees