(57)【特許請求の範囲】
【請求項１】
ビデオデータと非ビデオデータとを含むデータストリームを入力して処理する回路であって、
入力された前記データストリームを前記ビデオデータと前記非ビデオデータとに分割する分割手段と、
前記ビデオデータを順次格納する第１記憶手段と、
前記第１記憶手段に書き込まれた前記ビデオデータのデータ長と前記非ビデオデータとを前記データストリームが入力された順序で格納する第２記憶手段と、
前記第１記憶手段から読み出された前記ビデオデータに対して電子透かし挿入処理を行う画像処理手段と、
前記第２記憶手段から前記ビデオデータのデータ長および前記非ビデオデータを格納された順序に従って順次読み出し、前記ビデオデータのデータ長を読み出したときに前記画像処理手段により電子透かし挿入処理されたビデオデータを結合させることで、電子透かし挿入処理後のビデオデータと前記非ビデオデータとが元の順序で結合したデータストリームを出力するデータ結合手段と、
を有することを特徴とするビデオデータを含むデータストリームの処理回路。
【請求項２】
前記第１記憶手段に書き込まれる前記ビデオデータのデータ長をカウントし、前記第２記憶手段のデータ残量を参照してデータが残留していない時に、前記第１記憶手段に書き込まれた前記ビデオデータのデータ長を前記第２記憶手段に格納するメモリ制御手段をさらに有することを特徴とする請求項１に記載の処理回路。
【請求項３】
前記データストリームはＭＰＥＧ(Moving Picture Experts Group))データストリームであり、前記非ビデオデータは音声データであることを特徴とする請求項１または２に記載の処理回路。
【請求項４】
入力されたＭＰＥＧデータを処理してＭＰＥＧデータを出力するＭＰＥＧデータストリーム処理回路であって、
入力されたＭＰＥＧデータからビデオエレメンタリーデータと非ビデオエレメンタリーデータとを検出する検出手段と、
前記検出手段の検出結果に従って、前記ビデオエレメンタリーデータをビット単位に分割し格納するバレルシフタと、
前記検出手段の検出結果に従って、前記非ビデオエレメンタリーデータを第１格納形態で、前記ビデオエレメンタリーデータのデータ長を第２格納形態で、前記入力されたＭＰＥＧデータと同じ順序で格納するメモリと、
前記バレルシフタの出力に対して電子透かし挿入処理を行う画像処理手段と、
前記画像処理手段により電子透かし挿入処理されたビデオエレメンタリーデータを所定データ単位からなるデータとして出力するビットパッカー手段と、
前記メモリから前記第１格納形態および第２格納形態のデータを格納された順序に従って読み出し、前記第２格納形態のデータを読み出したときに前記ビットパッカー手段から電子透かし挿入処理されたビデオエレメンタリーデータを結合させることで、元の順序のＭＰＥＧデータを出力するデータ結合手段と、
前記検出手段の検出結果、前記画像処理手段の状態信号、および、前記データ結合手段の結合ステータス信号に基づいて、前記バレルシフタのデータ入出力、前記画像処理手段の電子透かし挿入処理動作、および、前記メモリのデータ入出力を制御する制御手段と、
を有することを特徴とするＭＰＥＧデータストリーム処理回路。
【請求項５】
前記制御手段は、前記検出手段の検出結果からビデオデータストリームが１バイト以上出力されたことを知ると、前記メモリのデータ残量を参照し、前記メモリに格納データが無い場合には前記ビデオエレメンタリーデータのバイト数を前記第２格納形態で前記メモリに格納することを特徴とする請求項４に記載のＭＰＥＧデータストリーム処理回路。
【請求項６】
前記画像処理手段は、
前記バレルシフタの出力に対して可変長復号を行う可変長復号手段と、
前記可変長復号手段の出力に対して電子透かしを挿入する電子透かし挿入手段と、
前記電子透かし挿入手段の出力を可変長符号化して前記電子透かし挿入処理されたビデオエレメンタリーデータを出力する可変長符号化手段と、
を含むことを特徴とする請求項４または５に記載のＭＰＥＧデータストリーム処理回路。
【請求項７】
前記制御手段は先行出力長格納手段と端数長格納手段とを有し、
前記制御手段は、前記バレルシフタ内に残ったビデオエレメンタリーデータの最後尾のビット列が前記可変長復号手段によって復号できない場合、当該最後尾ビット列を前記バレルシフタに保持したまま前記ビットパッカー手段へ先行出力し、前記バレルシフタ内に格納されているデータのデータ長を前記先行出力長格納手段に格納し、
さらに、当該先行出力後に最初に新たなビデオエレメンタリーデータが前記バレルシフタに入力すると、前記新たなビデオエレメンタリーデータの先頭ビット列が前記バレルシフタに残留した前記最後尾ビット列と組み合わせて前記可変長復号手段によって復号できる場合には、前記最後尾ビット列を削除し、さらに前記可変長復号手段によって復号できるビット長から前記先行出力長格納手段のデータ長を減算した結果を端数長として前記端数長格納手段に格納し、前記先行出力長格納手段に格納したデータ長から当該削除ビット長を減算して更新し、続いて、前記端数長格納手段の端数長と同数のビット列を前記バレルシフタから前記ビットパッカー手段へ出力し、前記端数長格納手段の端数長をリセットする、
ことを特徴とする請求項６に記載のＭＰＥＧデータストリーム処理回路。
【請求項８】
ビデオデータと非ビデオデータとを含むデータストリームを入力して処理する回路の制御方法において、
入力された前記データストリームを前記ビデオデータと前記非ビデオデータとに分割するステップと、
前記ビデオデータを第１記憶部に順次格納するステップと、
前記第１記憶手段に書き込まれた前記ビデオデータのデータ長と前記非ビデオデータとを前記データストリームが入力された順序で第２記憶部に格納するステップと、
前記第１記憶手段から読み出された前記ビデオデータに対して電子透かし挿入処理を行うステップと、
前記第２記憶手段から前記ビデオデータのデータ長および前記非ビデオデータを格納された順序に従って順次読み出すステップと、
前記ビデオデータのデータ長を読み出したときに前記電子透かし挿入処理されたビデオデータを結合させ、電子透かし挿入処理後のビデオデータと前記非ビデオデータとが元の順序で結合したデータストリームを出力するステップと、
を有することを特徴とするデータストリーム処理回路の制御方法。
【請求項９】
前記第２記憶部のデータ残量を参照し、格納データが無い場合は、前記第１記憶部に書き込まれた前記ビデオデータのデータ長を前記第２記憶部に書き込むステップをさらに有することを特徴とする請求項８に記載の制御方法。
【請求項１０】
前記データストリームはＭＰＥＧ(Moving Picture Experts Group))データストリームであり、前記非ビデオデータは音声データであることを特徴とする請求項８または９に記載の制御方法。
【請求項１１】
請求項７に記載のＭＰＥＧデータストリーム処理回路の制御方法であって、
入力されたＭＰＥＧデータからビデオエレメンタリーデータと非ビデオエレメンタリーデータとを検出するステップと、
前記検出結果に従って、前記ビデオエレメンタリーデータをビット単位に分割して前記バレルシフタに格納するステップと、
前記検出結果に従って、前記非ビデオエレメンタリーデータを第１格納形態で、前記ビデオエレメンタリーデータのデータ長を第２格納形態で、前記入力されたＭＰＥＧデータと同じ順序で前記メモリに格納するステップと、
前記バレルシフタの出力に対して電子透かし挿入処理を行うステップと、
前記メモリから前記第１格納形態および第２格納形態のデータを格納された順序に従って読み出すステップと、
前記第２格納形態のデータを読み出したときに前記電子透かし挿入処理されたビデオエレメンタリーデータを結合させることで、元の順序のＭＰＥＧデータを出力するステップと、
前記メモリがFull状態で、かつ、前記データ結合手段が入力待ち状態で、かつ、前記画像処理手段にデータがなく、かつ、前記バレルシフタにデータが残留しており当該データが復号できない場合に、前記バレルシフタ内残留データ数を前記先行出力長格納部に格納するとともに前記バレルシフタ内のデータを残留させたまま前記バレルシフタから出力するステップと、
を有するＭＰＥＧデータストリーム処理回路の制御方法。
【請求項１２】
請求項７に記載のＭＰＥＧデータストリーム処理回路の制御方法であって、
入力されたＭＰＥＧデータからビデオエレメンタリーデータと非ビデオエレメンタリーデータとを検出するステップと、
前記検出結果に従って、前記ビデオエレメンタリーデータをビット単位に分割して前記バレルシフタに格納するステップと、
前記検出結果に従って、前記非ビデオエレメンタリーデータを第１格納形態で、前記ビデオエレメンタリーデータのデータ長を第２格納形態で、前記入力されたＭＰＥＧデータと同じ順序で前記メモリに格納するステップと、
前記バレルシフタの出力に対して電子透かし挿入処理を行うステップと、
前記メモリから前記第１格納形態および第２格納形態のデータを格納された順序に従って読み出すステップと、
前記第２格納形態のデータを読み出したときに前記電子透かし挿入処理されたビデオエレメンタリーデータを結合させることで、元の順序のＭＰＥＧデータを出力するステップと、
ＭＰＥＧデータストリームが一定時間入力されない事を検出した場合には、前記バレルシフタに残留しているデータがあればこの残留データを出力するステップ
を有するＭＰＥＧデータストリーム処理回路の制御方法。
【請求項１３】
請求項７に記載のＭＰＥＧデータストリーム処理回路の制御方法であって、
入力されたＭＰＥＧデータからビデオエレメンタリーデータと非ビデオエレメンタリーデータとを検出するステップと、
前記検出結果に従って、前記ビデオエレメンタリーデータをビット単位に分割して前記バレルシフタに格納するステップと、
前記検出結果に従って、前記非ビデオエレメンタリーデータを第１格納形態で、前記ビデオエレメンタリーデータのデータ長を第２格納形態で、前記入力されたＭＰＥＧデータと同じ順序で前記メモリに格納するステップと、
前記バレルシフタの出力に対して電子透かし挿入処理を行うステップと、
前記メモリから前記第１格納形態および第２格納形態のデータを格納された順序に従って読み出すステップと、
前記第２格納形態のデータを読み出したときに前記電子透かし挿入処理されたビデオエレメンタリーデータを結合させることで、元の順序のＭＰＥＧデータを出力するステップと、
ＭＰＥＧデータストリームの１区切りのデータの入力完了通知が外部から入力された場合には、前記バレルシフタに残留しているデータがあればこの残留データを出力するステップと、
を有するＭＰＥＧデータストリーム処理回路の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ(Moving Picture Experts Group)符号化された、ＴＳ(Transport Stream)やＰＳ(Program Stream)のようなシステムストリームに対して、そのVideo データなどに電子透かし（Watermark ）を挿入する等のデータ処理をして、元のシステムストリームの形状に復元し出力するＭＰＥＧデータ処理回路とその制御方法に関する。
【０００２】
【従来の技術】
動画ビデオ画像及び音声信号を、伝送或いは記憶のために圧縮するための標準として、ＭＰＥＧ(Moving Picture Experts Group)規格（ＭＰＥＧ１およびＭＰＥＧ２規格）がある。圧縮されたＭＰＥＧデータストリームは、音声データおよびビデオデータの再構成に必要な種々のパラメータを含む。ＭＰＥＧデータストリームは、２つのデータストリームすなわち音声データストリームおよびビデオデータストリームに容易に分割することができる。
【０００３】
ＭＰＥＧ技術に関連して、ＭＰＥＣ符号化されたＴＳ(Transport Stream)やＰＳ(Program Stream)のようなシステムストリームに対して、そのデータの一部を改竄するデータ処理をして、元のシステムストリームの形状に復元し出力する機能（処理）が求められる。
【０００４】
良く知られた例では、データの著作権保護等の目的で用いられる電子透かし(Watermark) の挿入処理がある。電子透かしは、ビデオデータを元の画像との相違が極めて少ないように、目視では確認できない程度に意図的に変更し、何らかの情報を埋め込む技術である。以下では、ビデオデータに対する電子透かし挿入を例にとり、ＭＰＥＧデータの一部を改竄するデータ処理について説明する。
【０００５】
従来より、NTSCやPAL 方式のビデオ信号状態の映像に電子透かしを刷り込みＭＰＥＧ符号化(Encode)する手法或いは、ＭＰＥＧ符号化されたビデオエレメンタリーストリーム（Video Elementary Stream 、以下ＶＥＳとも記す）に対して、電子透かしを挿入処理して、その後にＭＰＥＧシステムストリーム（ＴＳ／ＰＳ）化する技術が各種提案されてきた。
【０００６】
しかし、ビデオ信号状態の映像に電子透かしを刷り込む方法では、ＭＰＥＧ符号化されたストリームに対して、一旦、ビデオ信号に復号して電子透かしを刷り込み、再びＭＰＥＧエンコードを行う必要があった。
【０００７】
また、ＭＰＥＧ符号化されたＶＥＳに対して電子透かしを刷り込む方法では、全ストリームを一旦、ビデオデータ部と非ビデオデータ部に分離して、大容量記憶媒体（ハードディスク等）に格納し、ＶＥＳに電子透かしを挿入し、それを大容量記憶媒体に格納しなおした後に大容量記憶媒体から、電子透かしを挿入したＶＥＳと先に格納した非ビデオデータ部を読み出し両者を結合する処理が行われてきた。
【０００８】
ＶＥＳに電子透かしを挿入する技術については、例えば特開平2000-244881 号公報；「電子透かしデータ挿入システム」にはＭＰＥＧデータ中のＥＳＣＡＰＥコードに続くＤＣＴ（離散コサイン変換；Discrete Cosine Transform ）係数を検出した場合にこのＤＣＴ係数の位置および電子透かしデータ挿入に必要な情報を抽出しこれらを基に前記ＤＣＴ係数を電子透かしデータが挿入されたＤＣＴ係数に変換して出力ＭＰＥＧデータとする装置が開示されている。
【０００９】
これらの手法では、2 工程以上の作業が必要で、リアルタイム処理はできない。また、大容量の記憶装置が必要であることなどの問題点があった。
【００１０】
特開平11-341450 号公報；「電子透かし埋め込み装置および電子透かし抽出装置」には、ＴＳ(Transport Stream)をデコードすることなしに電子透かしを埋め込むことが可能な電子透かし埋め込み装置が抽出装置と併せて提案されている。この埋め込み装置では、ＴＳに符号化されたＭＰＥＧ２データから、予め定められた３２ビットの開始または終了コードを検出し、この３２ビットコードの位置を基準に計数して所定位置に電子透かしを埋め込んでいる。
【００１１】
この特開平11-341450 号公報に開示の技術においては、ＭＰＥＧ２標準による符号化画像情報のブロック層の１つのＤＣＴ係数中にＰＥＳＨまたはＴＳＨが存在するＭＰＥＧストリームに対応するために大量のメモリを所有する必要がある。ＭＰＥＧの仕様では、１つのＤＣＴ係数を構成するビットがすべてそろわない限り、係数長を判断することができない事になり、引き続く係数のデコードも継続できない。従って、ＤＣＴ係数を構成するビットをすべてそろえる必要がある。この１つのＤＣＴ係数内にＰＥＳＨやＴＳＨが存在した場合は、このヘッダを一次的に保管しておかない限りＤＣＴ係数の全ビットをそろえることができない事になる。従って、ＭＰＥＧストリームに対応するために大量のメモリを備える必要が生じることになり、一般に回路規模は大となってしまう。
【００１２】
本発明は、ＭＰＥＧデータ処理に際してビデオ信号への変換が不要で電子透かしの挿入と検出を同時にリアルタイムで行える装置等（例えば上記特開平11-341450 号公報における装置）に適用可能な回路とその制御方法と併せて提案するものである。特に本発明では、非ビデオデータをごく小規模なメモリで構成されたFIFOバッファや、フリップフロップ回路(Flip-flop) で構成された小さなFIFOバッファを使用して実現可能にし大容量記憶媒体を必要としない規模の小さい構成を提案している。従って、本発明によれば電子透かしの挿入と検出を同時にリアルタイムで行える装置に適用可能な回路を１チップのＬＳＩとして実現でき得る。
【００１３】
【発明が解決しようとする課題】
すなわち、本発明の目的は、大容量記憶媒体を必要とすることなしに、ごく小規模なメモリで構成されたFIFOバッファ、或いはフリップフロップで構成された小さなFIFOバッファを使用してＭＰＥＧデータに対して電子透かしの挿入や検出等がリアルタイムで行える装置に適用する事が可能で、電子透かし挿入に用いた場合にも挿入量が、大容量記憶媒体を利用した場合と比べても遜色ない小規模なＭＰＥＧデータ処理回路を提供することにある。
【００１４】
なお、本発明回路は小規模なメモリを使用した構成であるにもかかわらず、電子透かし挿入に使用した場合には電子透かしの挿入量は、大容量記憶媒体を利用した場合と比べても、ほとんど遜色ない性能が得られる。本発明は、電子透かしの挿入に限らず電子透かしの検出にも応用できる他、ＭＰＥＧデータストリームのデータ置換処理にひろく用い得る。
【００１５】
【課題を解決するための手段】
課題解決のため、本発明によれば、ビデオデータと非ビデオデータとを含むデータストリームを入力して処理する回路は、入力された前記データストリームを前記ビデオデータと前記非ビデオデータとに分割する分割手段と、前記ビデオデータを順次格納する第１記憶手段と、前記第１記憶手段に書き込まれた前記ビデオデータのデータ長と前記非ビデオデータとを前記データストリームが入力された順序で格納する第２記憶手段と、前記第１記憶手段から読み出された前記ビデオデータに対して電子透かし挿入処理を行う画像処理手段と、前記第２記憶手段から前記ビデオデータのデータ長および前記非ビデオデータを格納された順序に従って順次読み出し、前記ビデオデータのデータ長を読み出したときに前記画像処理手段により電子透かし挿入処理されたビデオデータを結合させることで、電子透かし挿入処理後のビデオデータと前記非ビデオデータとが元の順序で結合したデータストリームを出力するデータ結合手段と、を有することを特徴とする。
【００１６】
また、本発明の一実施形態によれば、入力されたＭＰＥＧデータを処理してＭＰＥＧデータを出力するＭＰＥＧデータストリーム処理回路は、入力されたＭＰＥＧデータからビデオエレメンタリーデータと非ビデオエレメンタリーデータとを検出する検出手段と、前記検出手段の検出結果に従って、前記ビデオエレメンタリーデータをビット単位に分割し格納するバレルシフタと、前記検出手段の検出結果に従って、前記非ビデオエレメンタリーデータを第１格納形態で、前記ビデオエレメンタリーデータのデータ長を第２格納形態で、前記入力されたＭＰＥＧデータと同じ順序で格納するメモリと、前記バレルシフタの出力に対して電子透かし挿入処理を行う画像処理手段と、前記画像処理手段により電子透かし挿入処理されたビデオエレメンタリーデータを所定データ単位からなるデータとして出力するビットパッカー手段と、前記メモリから前記第１格納形態および第２格納形態のデータを格納された順序に従って読み出し、前記第２格納形態のデータを読み出したときに前記ビットパッカー手段から電子透かし挿入処理されたビデオエレメンタリーデータを結合させることで、元の順序のＭＰＥＧデータを出力するデータ結合手段と、前記検出手段の検出結果、前記画像処理手段の状態信号、および、前記データ結合手段の結合ステータス信号に基づいて、前記バレルシフタのデータ入出力、前記画像処理手段の電子透かし挿入処理動作、および、前記メモリのデータ入出力を制御する制御手段と、を有することを特徴とする。
【００１７】
上記構成において、前記制御手段が、ビデオデータストリームが１バイト以上出力された場合に前記メモリのデータ残量を参照し前記メモリに格納データが無い場合には前記ビデオエレメンタリーデータのバイト数を前記第２格納形態で前記メモリに格納するようにしても良い。また、前記画像処理手段が可変長デコーダ、電子透かし挿入部および可変長エンコーダを有してもよい。さらに、前記可変長デコーダの出力に電子透かし検出部が接続されていてもよい。これにより、入力されたＭＰＥＧデータストリームの所定位置への電子透かし挿入および／または電子透かし検出を行うことができる。
【００１８】
また、前記バレルシフタ内にも保持したままバレルシフタより先行出力されたバレルシフタ内残留データ数を格納するための先行出力長格納部と、先行出力後に最初にバレルシフタに入力されたデータに対応して出力されるデータ数から前記先行出力長格納部の格納値を引いた差を格納するための端数長格納部とを付加した構成を更に備える構成も採りうる。
【００１９】
また、本発明方法によるＭＰＥＧデータ処理回路制御は、入力された前記データストリームを前記ビデオデータと前記非ビデオデータとに分割するステップと、前記ビデオデータを第１記憶部に順次格納するステップと、前記第１記憶手段に書き込まれた前記ビデオデータのデータ長と前記非ビデオデータとを前記データストリームが入力された順序で第２記憶部に格納するステップと、前記第１記憶手段から読み出された前記ビデオデータに対して電子透かし挿入処理を行うステップと、前記第２記憶手段から前記ビデオデータのデータ長および前記非ビデオデータを格納された順序に従って順次読み出すステップと、前記ビデオデータのデータ長を読み出したときに前記電子透かし挿入処理されたビデオデータを結合させ、電子透かし挿入処理後のビデオデータと前記非ビデオデータとが元の順序で結合したデータストリームを出力するステップと、を有することを特徴とする。
【００２０】
上記制御において、前記第２記憶手段のデータ残量を参照し、格納データが無い場合は、電子透かし挿入処理すべきデータの入力を待たずに、前記第２記憶手段にデータを書き込むようにしても良い。
【００２１】
また本発明方法では、前述した先行出力長格納手段および端数長格納手段をも備えたＭＰＥＧデータ処理回路において、所定データ処理のための各ステップに加えて、前記メモリがFull状態で、かつ、前記データ結合手段が入力待ち状態で、かつ、前記画像処理手段にデータがなく、かつ、前記バレルシフタにデータが残留しており当該データがデコードできない場合を検出した場合には、前記バレルシフタ内残留データ数を前記先行出力長格納手段に格納するとともにバレルシフタ内のデータを残留させたままバレルシフタから出力するように制御する。ＭＰＥＧデータストリームが一定時間入力されない事を検出した場合には前記バレルシフタに残留しているデータがあればこの残留データを出力するように制御するステップを含むようにしたり、ＭＰＥＧデータストリームの１区切りのデータの入力完了通知が外部から入力された場合には前記バレルシフタに残留しているデータがあればこの残留データを出力するように制御するステップを含む制御を行っても良い。
【００２２】
【発明の実施の形態】
本発明によれば、ＭＰＥＧデータ処理回路において、入力されるＭＰＥＧシステムストリームを一時的に、処理が必要なブロック（例えばビデオエレメンタリーデータ部）と、処理を行わないブロック（例えば非ビデオエレメンタリーデータ部）に分割して、第一記憶部（バレルシフタ）に処理すべきデータを順次格納し、第二記憶部（FIFOバッファ）には前記第１メモリに格納したデータ数あるいは処理を行わないデータを、ブロック種別に応じて所定の格納形態で順次格納し管理して、処理が必要なブロックのデータに必要とするデータ処理を行った後で最後に結合しＭＰＥＧシステムストリームとして出力する。
【００２３】
本発明回路は、Ｖ−ＥＳ検出部と、非ビデオエレメンタリーデータ部を格納するメモリと、ビデオエレメンタリーデータ部をビット単位に分割し格納するバレルシフタと、バレルシフタに順に接続された可変長デコーダ、データ置換部、可変長エンコーダ、ビットパッカー部と、前記ビットパッカー部及び前記メモリの出力を結合して元の順序で出力するデータ結合部と、制御部及びメモリ制御部とにより構成できる。
【００２４】
上記回路に、バレルシフタ内にも保持したままバレルシフタより先行出力されたバレルシフタ内残留データ数を格納するための先行出力長格納部と、先行出力後に最初にバレルシフタに入力されたデータに対応して出力されるデータ数から前記先行出力長格納部の格納値を引いた差を格納するための端数長格納部とを更に備えるようにすることもできる。
【００２５】
なお、本発明においては、入力システムストリームデータのデータ数と、出力システムストリームデータのデータ数が一致するシステムを想定している。すなわち、例えば電子透かし挿入の過程でＤＣＴ係数の符号長が異なる等しても良いが、最終的にはＭＰＥＧストリーム全体のバイト数は一致するものとする。以下、実施例を挙げ図面を参照して本発明を説明する。
【００２６】
〔実施例の構成〕図１は、本発明のＭＰＥＧデータ処理回路の一実施例である電子透かし挿入回路の概略構成を示すブロック図である。
【００２７】
図１を参照すると、実施例回路は、Ｖ−ＥＳ（Video Elementary Stream ）検出部10、バレルシフタ20、可変長デコーダ(VLD；Variable Length Decoder) 30 、そしてデータ置換部としての電子透かし挿入部40、更に電子透かし検出部40' 、可変長エンコーダ(VLC;Variable Length enCoder) 50、ビットパッカー(Bit Packer)60、メモリ90、メモリ制御部80、データ結合部70、制御部100 、先行出力長格納部103 及び、端数長格納部104 を具備している。
【００２８】
すなわち、図示ＭＰＥＧデータ処理回路は、入力されたＭＰＥＧデータを判定してシステムストリームデータ11とシステムストリームデータ11中のビデオエレメンタリーデータの出力状態を示すビデオストリームステータス信号12を出力するＶ−ＥＳ検出部10と、前記Ｖ−ＥＳ検出部10からの非ビデオエレメンタリーデータ部を格納する第二の記憶部としてのメモリ90と、前記Ｖ−ＥＳ検出部10からのシステムストリームデータ11をビット単位に分割しビデオエレメンタリーデータを格納する第一の記憶部としてのバレルシフタ20と、前記バレルシフタ20からの出力に接続されており分割されたデータをＤＣＴ係数にデコードする可変長デコーダ(VLD) 30と、この可変長デコーダ30の出力に接続されて電子透かし挿入を行うためのデータ置換部としての電子透かし挿入部40と、この電子透かし挿入部40の出力に接続されていてＤＣＴ係数を再びエンコードする可変長エンコーダ(VLC) 50および電子透かし検出器40' と、前記可変長エンコーダ50の出力に接続されておりビット列を8 ビット単位にパッキングするビットパッカー60と、このビットパッカー60及び前記メモリ90からのそれぞれの出力を結合して元の順序のＭＰＥＧデータを復元して出力するデータ結合部70と、前記Ｖ−ＥＳ検出部10からの制御信号および前記可変長デコーダ30からの信号並びに前記データ結合部70からの信号に基づいて前記バレルシフタ20と前記データ置換部40のデータ入出力を制御する制御部100 と、前記Ｖ−ＥＳ検出部10からの制御信号12に基づき前記メモリ90のデータ入出力を制御するとともに前記制御部100 に制御信号を出力するメモリ制御部80と、制御情報を格納する先行出力長格納部103 及び、端数長格納部104 により構成されている。
【００２９】
なお、図中で破線で示している電子透かし検出器40' は可変長デコーダ30からＤＣＴ係数を抽出するもので、電子透かし挿入機能のみ使用する場合には必要ない。
【００３０】
実施例回路の構成各部の主要なものについて更に説明する。Ｖ−ＥＳ検出部10は、例えば、特願2000-161356 号；「ＭＰＥＧビデオエレメンタリーストリーム抽出装置及び、それに用いるエレメンタリーストリーム抽出方法」の明細書に記載の方法を用いて、ＰＳやＴＳを自動的に判定し、システムストリームデータ11とシステムストリームデータ11中のＶＥＳの出力状態を示すＶＥＳステータス信号12を出力する。このＶ−ＥＳ検出部10は、入力されたシステムストリームデータ1 を数段のFlip-Flop を用いて一定時間遅れて、システムストリームデータ11として出力する。この間に入力システムストリームデータ1 を解析して、前述のＶＥＳステータス信号12を生成する。
【００３１】
バレルシフタ20（第一記憶部）は、例えば、６４ビットのバレルシフタである。バレルシフタ20は、システムストリームデータ11中のビデオエレメンタリーデータのみををビット単位に分割し取込み格納し、制御部100 の管理下で可変長デコーダ30に出力する。
【００３２】
可変長デコーダ（ＶＬＤ）30の主な機能は、ＭＰＥＧビデオデータストリームについて構文解析を行ない、すべてのパラメータおよびビデオデータを抽出し、後続する電子透かし挿入部40と電子透かし検出部40' に出力することである。また可変長エンコーダ50にも必要情報を提供する。
【００３３】
メモリ90（第二記憶部）は、前記Ｖ−ＥＳ検出部10からの非ビデオエレメンタリーデータ部のデータとビデオエレメンタリーデータ部に関する情報（非格納データ長）とをブロック種別に対応付けて入力された順に格納するもので、９Bit 幅の多段構成で、FIFO(Fast In Fast Out)バッファの様に動作し、メモリ内に書き込まれた順番で、データの読み出しが行われる。メモリ90のFIFOとしての段数は、本実施例では、４段〜３２段を想定しているが、多ければ多いほど電子透かし挿入数を増加させることができる。
【００３４】
ここで、図２のメモリ格納フォーマットを表す説明図を用いて、メモリ90内のデータ格納方法を説明する。メモリ90の格納形態は、ブロック種別に応じて第一のメモリ格納形態200 と第二のメモリ格納形態201 の２種類に大別される。メモリ格納形態200 と、メモリ格納形態201 とは、Bit8により区別される。
【００３５】
第一メモリ格納形態200 では、Bit8に“０”がセットされ、Ｖ−ＥＳ検出部10からのＶＥＳステータス信号12が、ＶＥＳでないことを示している時の入力データ１バイト分がBit7〜Bit0に格納される。
【００３６】
第二メモリ格納形態201 は、Bit8に“１”がセットされ、Ｖ−ＥＳ検出部10からのＶＥＳステータス信号12が、ＶＥＳであることを示す場合に、連続してバレルシフタ20に書き込まれたデータのバイト数がBit7〜Bit0を使って格納される。
【００３７】
〔実施例の動作の説明〕最初に、図１を用いて実施例回路の動作を説明する。なお、以下の説明では、実施例の入力システムストリームデータ1 や、システムストリームデータ11や、出力システムストリームデータ71は８Bit 幅であるものとする。
【００３８】
V-ES検出部10は、前述したように特願2000-161356 号の記載で代表される回路であり、ＰＳやＴＳを自動的に判定し、システムストリームデータ11とシステムストリームデータ11中のＶＥＳの出力状態を示すＶＥＳステータス信号12を出力する。その際、入力システムストリームデータ1 を一定時間遅延させてシステムストリームデータ11として出力し、この間にシステムストリームデータ1 を解析してＶＥＳステータス信号12を生成する。
【００３９】
制御部100 は、ＶＥＳステータス信号12が次にバレルシフタ20に入力されるデータがＶＥＳであることを示している場合には、バレルシフタ制御信号101 により、バレルシフタにデータの入力を通知・指示する。
【００４０】
この通知に従って、例えば６４ビットのバレルシフタ20は、８ビット幅のシステムストリームデータ11を入力する。なお、バレルシフタ20内部にデータが詰まっていて、それ以上入力できない状態の場合は、適宜手段（図示省略）により、バレルシフタから、Ｖ−ＥＳ検出部10にその旨が通知され、データの入力を一時的に停止するようになっている。
【００４１】
バレルシフタ20は、バレルシフタ制御信号101 の指示に従い蓄積したデータを1bit単位の任意の長さで可変長デコーダ30に出力する。これが可変長符号21（符号語）に相当する。
【００４２】
可変長デコーダ30では、入力された可変長符号21に基づきデコードを行い、対応するＤＣＴ係数31を出力する。このデコードは、ISO-13818/JT-H262 規格に記載のＤＣＴ係数表０及び１に従う。ＤＣＴ係数31は、ラン(Run) とレベル(Level) を伝達する。
【００４３】
ここで、後で可変長エンコードを行うのに必要な情報は、可変長デコーダ30から図示されない適宜手段により可変長エンコーダ50に伝達されるものとする。これらの情報には、現在の符号がDC係数（直流成分）なのか、あるいはAC係数（交流成分）なのかを示したり、EOB(End of Block) を示したり、可変長エンコード時にＤＣＴ係数表の０を使うのかあるいは１を使用するのか等が含まれている。
【００４４】
なお、電子透かし挿入部40で改竄後のビット長を調整するために、図示されない信号により、可変長符号21のビット長が伝達される構成も考えられる。先の特開平11-341450 号公報の開示技術では、ビットの変化が起こった場合は、スライスの最後のデータ（一般的にはスタッフィングビット、同公報ではＺＳＢと記載されている）で整合性を保っており、この様な方法でも対応可能である。この例は、スライス単位でビット長をあわせているが、その他にも、ブロック単位や、マクロブロック単位等でＤＣＴ係数の符号長の変化を±０にできればよい。
【００４５】
電子透かし挿入部40では、現在入力されているデータが、どのようなデータであるかを示す電子透かし挿入制御信号102 が制御部100 から入力され、これに従い必要に応じて電子透かし挿入処理を行う。電子透かし挿入制御信号102 には、電子透かし挿入部40に入力される符号がどのスライスの何番目のマクロブロックであるかや、マクロブロック内のどのブロックに属しているかや、ブロック内のどの位置の符号か等の情報が含まれている。
【００４６】
可変長エンコーダ50では、可変長デコーダ30の逆の動作つまり電子透かし入りＤＣＴ係数41から、電子透かし入り可変長符号51を生成する。なお、このとき図示されない手段により、可変長符号長もビットパッカー60に伝達される。ビットパッカー60では、可変長符号51を８Bit 単位でパックして、電子透かし入りＶＥＳ61をデータ結合部70へと出力する。
【００４７】
ここで留意すべき点は、バレルシフタ20に入力されるデータは、ＶＥＳであって、可変長デコーダ(VLD) によりＤＣＴ係数にデコードできるものばかりではなく、Sequence Header 層や、Slice Header層などのデータも含まれているということである。
【００４８】
このことに対応するために、別途、ＤＣＴ係数以外のデータをビットパッカー60に伝送する手段が存在するものとする（図１では、明示されていない）。具体的な方法としては、バレルシフタ20から、ビットパッカー60に専用のデータラインを設ける方法をとってもよい。或いは、可変長デコーダ30と、電子透かし挿入部40と、可変長エンコーダ50を改良して、その内部をＤＣＴ係数以外のデータがその属性情報とともに、流れるようにしてもよい。
【００４９】
続いてデータ結合部70の動作を説明する。データ結合部70は、必ず最初にメモリ90からデータを入力し、その情報に基づき動作する。すなわち、メモリ格納形態200 のデータが入力された場合は、データ結合部70はBit7〜0 をシステムストリーム71として出力する。第一メモリ格納形態200 のデータが入力される間は、この動作を繰り返す。
【００５０】
次に、第二メモリ格納形態201 のデータが入力されると、データ結合部70はBit7〜0 の内容をデータ結合部70内部に保持する。そして、保持したデータのバイト数に相当する数のデータを電子透かし入りＶＥＳ61から入力する。相当数の入力が完了すると再び、メモリ出力91からデータを入力し、メモリ格納形態に応じて（Bit8の値に従って）上述したいずれかの動作を同様に繰り返す。
【００５１】
次に、メモリ90と、メモリ制御部80の動作を説明する。Ｖ−ＥＳ検出部10からのＶＥＳステータス信号12が、現在データがＶＥＳでないことを示している場合は、メモリ制御部80で生成されるメモリ制御信号81にてメモリ90に指示がなされ、メモリ90のBit8には０を、Bit7〜0 については、システムストリームデータ11から１バイト分のデータを書き込む。すなわち、第一メモリ格納形態200 での書き込みが行われる（但し、後述するように直前のデータがＶＥＳの場合には第二メモリ格納形態201 での所定書き込みの後に実行される）。メモリ90はFIFO構成のため、逐次、メモリ出力データ91として、データ結合部70に伝達される。
【００５２】
一方、ＶＥＳステータス信号12が、現データがＶＥＳであることを示している場合は、メモリ制御部80にてそのバイト数をメモリ制御部80内部のカウンタ（明示なし）でカウントする。そして、次にＶＥＳでないデータが入力された時点で、メモリ制御信号81にて、メモリ90に指示が出され、先ず、Bit8には１をそしてBit7〜Bit0については上述のカウント値を書き込む（第二メモリ格納形態201 ）。ここでカウント値も、メモリ制御信号81にて伝達される。その後、入力されたＶＥＳでないデータを第一メモリ格納形態201 で書き込む。なお、この過程中で１クロック間データを入力できない期間が発生するため、メモリ制御部80は、図示されない信号によりＶ−ＥＳ検出部10に対して１クロック間のデータ出力停止を通知する。
【００５３】
なお、ＶＥＳが連続して２５５Byte入力された場合は、第二メモリ格納形態201 にて、一旦２５５Byte分のデータ入力があったことをメモリに書き込んだ後、カウンターをクリアーする。その後、再びカウントを継続する。このようにして、２５６Byte以上のデータについては、複数回に分けて記録する。以上が、メモリ制御部80及び、メモリ90の基本動作である。
【００５４】
しかし、上述した制御のみでは、動作上、１点問題がある。基本動作では、第二メモリ格納形態201 での書き込みは、「ＶＥＳであることを示している場合は、メモリ制御部80でそのバイト数をカウントし、次に、ＶＥＳでないデータが入力された時にメモリ90に書き込む」ため、データ結合部70でデータを結合する場合に不都合が発生する。
【００５５】
つまり、データ結合部70が電子透かし入りＶＥＳ61を入力するのは、その前に、メモリ出力データ91から、第二メモリ格納形態201 のデータを入力した後となる。しかるに、メモリ90に第二メモリ格納形態201 が書き込まれるのは、次に、ＶＥＳでないデータが入力された時であるから、ＶＥＳが入力され続けるとデータの転送は中断してしまうことになる。
【００５６】
この不都合に対処するため、本発明では、ＶＥＳであることを示している場合に、メモリ制御部80でそのバイト数をカウントして、カウント値が１以上の場合には、メモリ90のデータ残量を参照するようにし、データ残量が０の場合は、ＶＥＳでないデータが入力されるのを待たずに、メモリ90に第二メモリ格納形態201 のデータを書き込むように制御している。
【００５７】
これにより、ＶＥＳが入力され続けた場合でもデータ結合部70はメモリ90に書き込まれたメモリ格納形態201 のデータに対応してバレルシフタ70からのＶＥＳを出力しデータ転送の中断が発生しない。
【００５８】
実施例回路では、以上のような制御に加えて先行出力長格納部103 と、端数長格納部104 を用いて端数データを先行して仮出力する制御を行う。先ず、こうした制御が必要となる場合について図３の例を用いて解説する。
【００５９】
図３は、ＭＰＥＧデータストリームの構成の一例を表す説明図で、図示例ではビデオデータ220 に引き続き、非ビデオデータ230 、ビデオデータ240 が入力された場合を示している。ビデオデータ220 とビデオデータ240 は、ＶＥＳを示しているものとする。また、非ビデオデータ230 は、音声データ(Audio Data)であるかもしれないし、ＴＳのビデオバケット中のＴＳヘッダや、Adaptation Fieldかもしれないし、ＰＳ時のパックヘッダ等である場合もある。なお、図３の250 〜251 は、JT-H262 のＤＣＴ係数表１から抜粋した対応関係（テーブル）である。
【００６０】
この例では、ビデオデータ220 の最後のデータが、テーブル211 で示される1100 1111bであったとする。また、ビデオデータ240 の先頭データが、テーブル241 で示される0010 0110bであったとする。
【００６１】
以下、図１を参照して、図３のデータが入力された場合について処理過程を順を追って解説する。最初に、ビデオデータ220 が入力される。ビデオデータ220 は、Ｖ−ＥＳ検出部10により、ＶＥＳと判定され、バレルシフタ20に入力される。
【００６２】
メモリ制御部80にてバレルシフタ20に入力されたバイト数が管理され、既述した如くに、逐次、メモリ90に書き込まれる。これらのデータは、データ結合部70にて結合されもとのストリーム形態に戻されシステムストリーム出力データ71として出力される。
【００６３】
ビデオデータ220 が順調に入力され最後の１バイト221 が入力される。このとき、バレルシフタには1100 1111bなるデータが存在することになる。このとき、テーブル250 により1100b が、Run 0 / Level 2 とデコードされ、可変長デコーダ30に渡される。
【００６４】
引き続きデコードを試みるが、データ1111b についてはデコードできる符号がないため、同データが残留する。従って、ビットパッカー60には、データ1100b が残留し、データ結合部70には、データが１バイト分は入力されないままである。
【００６５】
この状態で、Ｖ−ＥＳ検出部10には、先のビデオデータ220 に引き続き非ビデオデータ230 が入力される。対応してＶ−ＥＳ検出部10は、これらのデータをＶＥＳではないと判断する。そのため、非ビデオデータ230 は第一メモリ格納形態200 に従って格納され、データ結合部70へと伝送される。しかし、データ結合部70では、先に入力されたビデオデータ220 の最後の１バイトを待ちつづけているため、システムが停止する。
【００６６】
この場合には、メモリ90からはデータが読み出されず、メモリ90は非ビデオデータ230 でいっぱいになる。ここで、先行出力長格納部103 と、端数長格納部104 を用いた制御を行う。なお、同様な制御は「入力データが定常的に入力されない場合」に対応しても行われるがこれについては後で詳述する。
【００６７】
実施例では、上記した条件でのシステム停止状態、つまり、メモリ90がFull状態で、かつ、データ結合部が電子透かし入りＶＥＳ61の入力待ち状態で、かつ、可変長デコーダ30及び、電子透かし挿入部40及び、可変長エンコーダ50にデータがなく、かつ、バレルシフタ20にデータが残留していて、かつ、バレルシフタ内のデータがＤＣＴ係数にデコードできない場合を検出する。
【００６８】
この検出に応じて、制御部100 では、バレルシフタ内残留データ数（この場合は４）を先行出力長格納部103 に格納して、バレルシフタ内にデータを残留したまま、データ1111b をバレルシフタ20から出力する。これによりビットパッカー60では８bit 分のデータが蓄積され１Byteのデータとして、データ結合部70に引き渡され出力される。
【００６９】
こうして、データ結合部70は、再びメモリ90からのデータを入力するようになり、非ビデオデータ230 は、システムストリーム出力データ71として出力される。
【００７０】
引き続きビデオデータ240 が入力される。Ｖ−ＥＳ検出部10では、このデータがビデオエレメンタリーであると判断する。従って、バレルシフタ20にデータが入力される。ビデオデータ240 の先頭データ241 は、既述したように0010 0110bであるとする。
【００７１】
最初の１バイトが入力されると、先の残量データとあわせて、1111 0010 0110b となる。バレルシフタ内のデータ数は、（bit 単位で）１２である。
【００７２】
上記１バイトが入力されたことに対応する状態として、本来は次の３通りのケースが考えられる。すなわち、(1) 先行出力長格納部103 の値 <テーブルから得られたＤＣＴ符号のビット長、(2) 先行出力長格納部103 の値 >テーブルから得られたＤＣＴ符号のビット長、そして、(3) 先行出力長格納部103 の値 =テーブルから得られたＤＣＴ符号のビット長となる各状態である。
【００７３】
図３に示した例では、「(1) 先行出力長格納部103 の値 <テーブルから得られたＤＣＴ符号のビット長」の状態に相当する。前述具体例データである1111 0010 0110b に対応しては、テーブル251 からRun 1 ／ Level 3とデコードされ、そのデータ長は、８Bit である。
【００７４】
このときには、次段回路（ＤＣＴ係数を用いて何らかの演算を行う回路、例えば、電子透かし検出器）にRun 1 ／Level 3 を供給する。
【００７５】
このとき、同時に、先行出力長格納部103 に相当するデータ(1111b) を破棄する。つまり、バレルシフタ内のデータ数は、１２から、先行出力長格納部103 の格納値；４を差し引いた８となる。
【００７６】
また、このとき同時に、テーブル251 から得られたデータ数；８から、先行出力長格納部103 の保持値；４を差し引いた、値；４を端数長格納部104 に格納する。先行出力長格納部103 の保持値は、４から４を引き０となる。
【００７７】
続いて次のクロックで、端数長格納部104 を参照して格納値が４であることに対応して、同数のデータを図示されない手段で、ビットパッカー60に出力する（送る）。つまり、 Run 1／Level 3 の１符号については電子透かし挿入対象にはならないことを意味する。
【００７８】
これと同時に、端数長格納部104 の格納値；４から出力データ長の４を引いた値を端数長格納部104 に格納する。格納値は、０となる。また、４bit のデータを出力したため、バレルシフタ内の残データは、0110b の４Bit となる。次に、テーブル252 より、0110b は、EOB であるとデコードされることで処理が継続されることとなる。
【００７９】
次に、「(2) 先行出力長格納部103 の値 >テーブルから得られたＤＣＴ符号のビット長」であった場合について解説する。テーブルから得られた値が、４未満であった場合（例えば、３とする）、この条件時には、テーブルに基づきデコードされたＤＣＴ係数を、次段回路に供給する。
【００８０】
このとき、バレルシフタ内のデータ数は、１２から、９となり、３Bit 分のデータを破棄する。また、先行出力長格納部103 の格納値を４から３を差し引いた１にする。この結果の状態は既に説明した(1) の条件に適合しており、その後の動作は、既述動作を経ることでデコードを継続できる。
【００８１】
最後に、「(3) 先行出力長格納部103 の値 =テーブルから得られたＤＣＴ符号のビット長」であった場合について解説する。先の(1)の例では、先行出力長格納部103 の値は４であり、また、テーブル251 から得られた値が８であったので、４< ８のため、上述したような処理となった。しかし、たまたまテーブルから得られた値が、４であった場合には、４= ４であるから、以下のような処理を行う。
【００８２】
テーブルからデコードされたＤＣＴ係数を、次段回路に供給する。このとき、同時に、先行出力長格納部103 に相当するデータ(1111b) を破棄する。その結果、バレルシフタ内のデータ数は、１２から、先行出力長格納部103 の４を差し引いた８となる。
【００８３】
また、このとき同時に、テーブルから得られたデータ数；４から、先行出力長格納部103 の格納値；４を差し引いた値；０を端数長格納部104 に格納する。先行出力長格納部103 の保持値は、４から４を引き０となる。
【００８４】
このようにして上述の(3)の場合には、端数長格納部104 と先行出力長格納部103 は、値０となるため、その後のデコードを継続できるから、以後に特殊な処理は必要としない。
【００８５】
続いて、実施例回路における、入力データが定常的に入力されない場合への対応について説明する。本発明が適用される装置では、入力システムストリームデータ1 が、定常的に入力されるとはかぎならない。たとえば、ＴＳでは、188 バイトは連続して入力するが、続く188 バイトを入力する前に、一定時間の「非入力タイム」が存在することが多い。
【００８６】
このとき、本実施例の回路では、最初の188 バイトの最後のデータがＤＣＴ係数の途中だった場合には、（ＤＣＴ係数の切れ目ではない場合など）バレルシフタ内にデータが残留する。仮にそのままこれを放置すると、最初の188 バイトを入力しても、その後、次の188 バイトの入力を開始しない限り、最初の188 バイトの全体が出力されることはない。実施例回路ではこのような不都合を回避して、入力したデータのすべてを確実に出力することができる。
【００８７】
このために、実施例回路においては、(A);適宜手段によって、データが一定時間入力されない事を検出し、これに基づきバレルシフタ20から残留データを出力するようにしている。これに替えて、(B);１区切りのデータの入力完了を通知してもらい、この通知信号に基いてバレルシフタ20から残留データを出力するように構成することもできる。
【００８８】
上記の、(A) データが一定時間入力されない事を検出する手段（検出回路）は、図１の制御部100 の１機能として実現することが可能である。すなわち、制御部100 によって、Ｖ−ＥＳ検出部10からデータが出力されないクロック数をカウントし、設定数より大きくなったら、「1 区切りのデータ」の入力が完了したものと判断するように構成すれば良い。勿論、別途検出回路（図には明示なし）を設けてデータが一定時間入力されない事を検出して通知信号を発生・通知する構成としても良い。
【００８９】
バレルシフタ20の残量データを出力する制御方法は、段落番号〔００５６〕〜〔００６３〕にて記載されているシステム停止状態に対処するための、段落番号〔００６５〕から記載されている制御と同様で良い。
【００９０】
すなわち、略記すれば、この検出に応じて、制御部100 では、バレルシフタ内残留データ数を先行出力長格納部103 に格納して、バレルシフタ内にデータを残留したまま、当該データをバレルシフタ20から出力させる。これによりデータ結合部70からデータが出力される。
【００９１】
入力システムストリームデータ1 の入力が再開されると、残留データは破棄されて処理が継続される。このようにして連続した１区切りの入力システムストリームデータの出力が中断されたまま長時間経過してしまうとの不都合が回避できる。
【００９２】
前述した、(B); １区切りのデータの入力完了の通知に基いて残留データを出力する構成について説明する。この場合には、１区切りのデータの入力完了を知るために、実施例回路において、図示されない手段、たとえばシステム上に存在するＣＰＵ等から、１区切りのデータの入力完了を知らせる信号（通知信号）を入力してもらうように構成しておく。そして、通知信号も条件として入力システムストリームデータ1 が定常的に入力されずバレルシフタ20内部にデータが残留した場合を検出し、この検出に対応して、制御回路100 が前述したとまったく同様にバレルシフタの残留データを出力するように構成しておく。バレルシフタ20の残量データを出力する制御は既述したのと同様で良い。この構成でも、連続した１区切りの入力システムストリームデータの出力が中断されたまま長時間経過してしまうとの不都合が回避できる。
【００９３】
以上説明したように、実施例によれば、ＭＰＥＧシステムストリームを入力し、電子透かし挿入のためにＤＣＴ係数に改竄をおこない、再び、ＭＰＥＧシステムストリームに復元するデータ処理が、大きなメモリを使用することなしに、リアルタイムに行える。
【００９４】
本発明は、上述実施例に限定されるものでは無く各種の応用が可能である。例えば、既述実施例では、１つのビデオエレメンタリーを処理しているが、２つ以上のビデオエレメンタリーを同時に処理するシステムを構築することができる。一例として、３つのビデオエレメンタリーを内包するＴＳ(Transport Stream)を処理する場合のＭＰＥＧデータ処理回路の実施例を図４の構成ブロック図に、また対応するメモリ格納フォーマットを図５に示す。
【００９５】
すなわち、図４の様に先の図１におけるバレルシフタ20から、ビットパッカー60までの回路を三重化し、メモリ90の管理形態を図５の様に拡張すれば良い。データ結合部70' では、メモリ管理形態301 メモリ管理形態302 、メモリ管理形態303 を入力したときに、各々に対応する三重化されたビットパッカー60からデータを入力するようにする。その他の構成部分は先の実施例と略同様であり同一符号または対応符号を付して説明は省略する（例えば、バレルシフタ20-1,20-2,20-3は、図１のバレルシフタ20と同等であることを示す）。各部の動作についても当業者にとって類推容易であり説明を省略する。
【００９６】
その他にも、先の実施例では、可変長デコーダ30からの出力である可変長符号31は、１つの符号であったが、さらに処理性能を向上させるために、複数の符号が同時にデコードされるように構成したシステムにおいても本発明が適用できる。
【００９７】
また、先の実施例では、入力システムストリームデータ1 や、システムストリームデータ11や、出力システムストリームデータ71を８Bit 幅のものとして説明しているが、１６ビットや３２ビットなど、８の倍数ビットの幅であれば本発明を適用でき高速化が図れる。
【００９８】
また、メモリ出力データ91についても、９Bit 〔８Bit+属性１Bit 〕の場合を説明しているが、８の倍数ビット+ 属性（１Bit ）とした構成が可能である。
【００９９】
また、先の実施例では、ビデオエレメンタリーデータをバレルシフタ20に入力しているが、音声データ側を入力し、音声データを改竄することも可能である。すなわち、Ｖ−ＥＳ検出部10を適宜に変更することで、音声データや、トランスポートストリーム(Transport Stream)時のＰＡＴ等の伝送情報を改善するシステムに応用することもできる。
【０１００】
なお、以上の説明では、電子透かし挿入部40を用いた電子透かし挿入回路について記載しているが、本発明はシステムストリームに含まれるＤＣＴ係数に改竄を行いもとのシステムストリームに復元する回路であればよい。つまり、電子透かし挿入部40相当部分（データ置換部）は、例えば特願平11-353503 号（「画像情報の画質低下制御装置」）に開示されているような回路であってもよい。
【０１０１】
一般に、ＤＣＴ係数の改竄により個々の符号の符号長（ビット長）が変化することが考えられる。本発明は、入力システムストリームデータのデータ数と出力システムストリームデータのデータ数が一致するシステム、すなわち、複数の符号にまたがって最終的に（ストリーム全体で）ビット長の増減が０になるシステムを想定しているが、ＤＣＴ係数の改竄の過程で１つのＤＣＴ係数の符号長が異なることは差し支えない。
【０１０２】
従って、先に従来技術として挙げた、特開平11-341450 号公報；「電子透かし埋め込み装置および電子透かし抽出装置」に本発明を適用することができる。同公報の開示技術では、ビットの変化が起こった場合は、スタッフィングビット（同公報のＺＳＢ）で整合性を保っている。本発明は、その他この種の装置にてひろく応用可能である。
【０１０３】
【発明の効果】
以上説明したように本発明によれば、ごく小規模なメモリで構成されたFIFO、或いはFlipflopで構成された小さなFIFOを使用した、先に詳述した如き回路構成によって、大容量記憶媒体を必要とすることなしに、ＭＰＥＧデータに対して電子透かしの挿入等のＤＣＴ係数改竄とデータ復元処理、あるいは電子透かし検出などのデータ処理をリアルタイムで行える装置に適用する事が可能な小規模なＭＰＥＧデータ処理回路を得ることができる。
【０１０４】
本発明回路は１チップのＬＳＩ化も可能な小規模回路でありながら、電子透かし挿入に用いた場合にもその挿入量は、大容量記憶媒体を利用したものと比べても遜色ない。
【図面の簡単な説明】
【図１】本発明の実施例回路の構成を示すブロック図である。
【図２】本発明に係るメモリにおけるデータ格納フォーマットの説明図である。
【図３】ＭＰＥＧデータストリームの構成例を表す図である。
【図４】本発明の他の実施例回路の構成を示すブロック図である。
【図５】図４の実施例におけるメモリのデータ格納フォーマットの説明図である。
【符号の説明】
１…入力システムストリームデータ
10…ビデオエレメンタリー（Ｖ−ＥＳ) 検出部
11…システムストリームデータ
12…ＶＥＳステータス信号
20…バレルシフタ（第一記憶部）
21…可変長(VL;Variable Length)符号
30…可変長デコーダ(VLD；Variable Length Decoder)
３１…ＤＣＴ係数
32…処理符号長
40…電子透かし挿入部
40' …電子透かし抽出部
41…電子透かし入りＤＣＴ係数
50…可変長エンコーダ(VLC;Variable Length enCoder)
５１…電子透かし入り可変長(VL)符号
60…ビットパッカー(Bit Packer)
６１…電子透かし入りＶＥＳ
70…データ結合部
71…出力システムストリームデータ
72…結合ステータス信号
80…メモリ制御部
81…メモリ制御信号
82…メモリデータ残量ステータス信号
90…メモリ（第二記憶部）
91…メモリ出力データ
100 …制御部
101 …バレルシフタ制御信号
102 …電子透かし挿入制御信号
104 …先行出力長格納部
105 …端数長格納部
200 …第一メモリ格納形態
201 …第二メモリ格納形態
【図１】
0003636062.tif 000002
【図２】
0003636062.tif 000003
【図３】
0003636062.tif 000004
【図４】
0003636062.tif 000005
【図５】
0003636062.tif 000006