JP2005517362A - ビットストリームの変更方法及び装置 - Google Patents

ビットストリームの変更方法及び装置 Download PDF

Info

Publication number
JP2005517362A
JP2005517362A JP2003567096A JP2003567096A JP2005517362A JP 2005517362 A JP2005517362 A JP 2005517362A JP 2003567096 A JP2003567096 A JP 2003567096A JP 2003567096 A JP2003567096 A JP 2003567096A JP 2005517362 A JP2005517362 A JP 2005517362A
Authority
JP
Japan
Prior art keywords
bitstream
code
original
modified
removal
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.)
Granted
Application number
JP2003567096A
Other languages
English (en)
Other versions
JP4564753B2 (ja
JP2005517362A5 (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 Europe BV United Kingdom Branch
Original Assignee
Sony United Kingdom Ltd
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
Priority claimed from GB0202737A external-priority patent/GB0202737D0/en
Application filed by Sony United Kingdom Ltd filed Critical Sony United Kingdom Ltd
Publication of JP2005517362A publication Critical patent/JP2005517362A/ja
Publication of JP2005517362A5 publication Critical patent/JP2005517362A5/ja
Application granted granted Critical
Publication of JP4564753B2 publication Critical patent/JP4564753B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • G06T1/0035Output size adaptive watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving 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/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • 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/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • H04N21/63345Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0052Embedding of the watermark in the frequency domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0053Embedding of the watermark in the coding stream, possibly without decoding; Embedding of the watermark in the compressed domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】 ビットストリームの変更方法及び装置を提供する。
【解決手段】 ビットストリームは情報信号を表すデジタルコードを含む。少なくとも1つのデジタルコードを選択する。このコードは、情報信号内で視認可能な透かし模様を表す少なくとも1つの透かし模様コードが含まれるビットストリームの一部を占有する。選択されたデジタルコードはビットストリームの該当部分から取り出される。透かし模様コードは選択されたコードの代わりに該ビットストリームの一部に配置される。該当部分から取り外した選択されたコードのビット数は該当部分に挿入される透かし模様コードのビット数に等しいか大きい。取り外された選択コードはビットストリームの最後に添付されか、又はビットストリーム内に生成される透かし模様ユーザデータフィールドに置かれる。

Description

本発明はビットストリームの変更方法、ビットストリームの変更装置、ビットストリームの変更用コンピュータプログラム、かかるプログラムを記録する記録媒体、ビットストリームから変更を取り除く方法、ビットストリームから変更を取り除く装置、ビットストリームから変更を取り除くコンピュータプログラム、かかるプログラムを記録する記録媒体、変更されたビットストリーム及び変更取外しデータを伝達するデータキャリアに関する。
ビデオ、オーディオ、オーディオ・ビジュアル及び/又はその他の情報信号内に透かし模様を付与することが知られている。透かし模様はその情報信号の出処及び/又はその情報信号の所有者又はそれ以外の関係者を確認するために設けられている。透かし模様は視認可能又は隠蔽されたものであってもよい。本発明の好ましい実施形態では視認可能な透かし模様を用いている。
また、画像を空間領域から変換領域、例えば、ウェーブレット(wavelet)領域に変換し、そのウェーブレット係数を変更することにより、画像に透かし模様を加えることも知られている。透かし模様を埋め込んだその変換領域画像は、後に空間領域に逆変換される例えば、イノウエヒサシ等著、「ウェーブレット変換に基づく画像透かし模様法」、IEEE、0−7803−5467−2/99を参照。
米国特許5809139号(Girod等)は、圧縮済みビデオ素材の隠蔽透かし模様法を開示している。MPEG2により圧縮されたビデオをエントロピーデコードし非量子化してDCT係数を求める。拡散スペクトル空間領域の透かし模様をDCT領域に変換し、変換された透かし模様を変換されたビデオのDCT係数に加える。透かし模様を加えても圧縮ビデオのビットレートが維持されるよう種々のステップが取られている。非ゼロ係数だけが変更される。また、エンコードされた透かし模様を加えた係数のビット数が透かし模様以前のその係数のビット数(加えて、前のコーディング操作で節約されたその他余分なスペアビット数)と比較される。制御装置が透かし模様を加えたビットストリームと元の透かし模様の入らないビットストリーム間の出力選択を制御する。もしエントロピーエンコードされた透かし模様が入っていないものの係数がnビットを使い、且つ透かし模様入りエントロピーエンコード係数がnを使い、n<n+nの場合、透かし模様入り係数が出力される。ここで、nは使用可能となるスペアビットの数である。透かし模様はビデオ・デコーダ内で検出できるが透かし模様アルゴリズムを反転させて透かし模様入りビデオを元のビデオに復元することはできない。
WO99/10837号(Digimarc)は、画像を例えばMPEG2を使って圧縮しDCT係数を変更して透かし模様を埋め込むビデオイメージ透かし模様方法を開示している。そのビットレートは係数の変更により増加したビットレート量を表すカウントをその変更により削減されたビットレート量より少なくするように維持することで保持される。累積変更がプラス又はマイナス限界を超えると、それ以上の変更はなされない。その透かし模様はビデオデコーダ内で検出できるがその透かし模様アルゴリズムを反転させて透かし模様を埋め込んだビデオを元のビデオに復元することはできない。
US−A−5809139及びWO99/10837の両者は共に、ビットレートを監視する手段と一定の限界に達した場合に透かし模様埋込み処理を止める手段とを必要とする。US−A−5809139及びWO99/10837にとって、それは結果的には画像内に透かし模様をランダムに分散することになる。これらの提案は画像内にメッセージを表すデータを埋め込む不可逆的非視認透かし模様を狙ったものである。
これは圧縮エンコード情報信号、特に画像信号に対して知られている。更に、情報信号にデータを付加する情報信号に対する変更がなされるとその圧縮は通常非効率的になる。圧縮情報信号を表すビット数への変更を最小限にして、例えば画像内で確認できるような、圧縮されていない情報信号内で視認可能である情報信号の変更を生成できるような圧縮情報信号の処理が望ましい。
本願と共に継続中の先の出願であるEP01310113.4(USSN10・006050)は圧縮ビデオビットストリームの変更及び透かし模様をそれから取り外す方法及び装置の一例である。ビットストリーム上で実行される圧縮処理にはDCT係数を使用する。その変更処理は透かし模様処理されたビットストリームがその透かし模様処理される前のビットストリーム以上のビットを持たないよう、したがって確実に同じビットレートを持つように実行される。DCT係数を表すコードの固定長部分を、その固定長コードにおけるビット数を増やさずに暗号化することによりなされる。その最も好ましい実施形態はIフレームの圧縮ビットストリームであり、しかも可視的透かし模様生成に関してその技法はそのようなビットストリームに適している。その技法はその他の圧縮ビットストリームに適用できるが表示された画像内の透かし模様の視認性はビット数を増やさないとの制限から希望通りのものではない。
MPEG2は周知であり、ISO/IEC/13818に定義されている。
本発明はビデオ、オーディオ、オーディオ・ビジュアル又はその他の情報信号を含むビットストリームに適用可能で、変更を生成するものであって、該情報信号の、好ましくは該ビットレートを変更せずに取り外し可能及び視認可能な変更で、及び好ましくはビットレートを変更しない技術を提供することを目的とする。本発明の一実施形態は、圧縮ビットストリーム(例えばMPEG2)に適用可能であり、同時に圧縮ビットストリーム内のビットレートを変更せずに該変更が該ビットストリームから取り外し可能であるような、所望の視認性を有する変更を生成できる変更技術を提供しようとするものである。
本発明の1つの態様は、情報を表すデジタルコードを含むビットストリームの変更方法が提供される。本方法は、前記情報の変更を表す少なくとも1つの変更コードを含むビットストリームの一部分を占める少なくとも1つのデジタルコードを選択し、該選択されたデジタルコードを前記ビットストリームの該当部分から取り外し、該選択されたコードの代わりに前記ビットストリームの該当部分内に変更されたコードを挿入することを含むものであり、前記ビットストリームから取り出された前記選択されたコードのビット数は、前記ビットストリームに挿入される前記変更コードのビット数より大きいか等しい。本方法は更に(1)前記取り外した選択されたコードを前記ビットストリームと関連させて格納する、及び(2)前記取り外した選択されたコードを、前記ビットストリーム中の1つ以上の取外しコードデータフィールド内に格納する、のいずれか一方又は両者からなる。
前記変更が、前記ビットストリームにより表される情報内において視認可能とすることが好ましい。
本発明の第2の態様によれば、情報を表すデジタルコードを含むビットストリームの変更方法が提供される。本方法は、前記情報内で視認可能な変更を表す少なくとも1つの変更コードが含まれる前記ビットストリームの一部分を占める、少なくとも1つのデジタルコードを選択し、該選択されたデジタルコードを前記ビットストリームの該当部分から取り外し、前記ビットストリームの該当部分に前記選択されたコードの代わりとして前記変更コードを格納することを含むものであり、前記ビットストリームから取り外された前記選択されたコードのビット数は該当部分に代入された前記変更コードのビット数より大きいか又は等しく、前記選択され取り外されたコードは前記ビットストリーム中ではなくその最後に付加する。
本発明の第3の態様によれば、情報を表すデジタルコードを含む情報信号部分を持つビットストリームを変更する方法が提供される。本方法は、前記情報内で視認可能な変更を表す少なくとも1つの変更コードが含まれる前記情報信号部分の一部分を占めるデジタルコードを選択し、前記ビットストリームの該当部分から前記選択されたデジタルコードを取り外し、前記ビットストリームの該当部分に前記選択されたデジタルコードに代えてその変更コードを代入し、該当部分が付加された前記ビットストリームの変更ユーザデータ部分を生成し、該変更ユーザデータ部分に前記選択し取り出されたデジタルコードの少なくとも1つを格納することを含むものであり、前記変更コードが含まれる前記情報信号部分におけるビット数と前記変更ユーザデータ部のビット数とを加えた値は、前記選択されたコードが取り出される前の前記情報信号部のビット数より少ないか等しい。
本発明の各実施態様における変更とは、ビットストリーム内のビットを隠蔽するのではなくむしろ、ビットストリームにより表される情報において視認可能な変更を提供するものである。
このような方法によれば、変更されたビットストリームのビットレートは元のビットストリーム(以下、原ビットストリーム)のそれと同じに保持される。変更コードの追加では追加データが生成される。原コードを取り外し、ビットストリームの最後に、それらを付加することにより、ビットストリーム内のデータ量は増やさないで済む。原コードを取り除くことにより生ずるビットストリーム内のスペア空間は変更ユーザデータフィールドとして、原コードの少なくとも一部のために使用できる。また、このフィールドに収めることのできなかったコードは、ビットストリームの終わりに添付する。コードはビットストリームの開始エンド又はその最終エンドに添付させてもよい。
コードは別のファイルにおいてもよく、又はビットストリームの開始エンド又は最終エンドに添付されるファイル中に置いてもよい。
本発明の好ましい実施例におけるビットストリームは、MPEG2規格により圧縮されたビットストリームであることが好ましい。MPEG2規格においてはビットストリームのビットレートがその規格に準拠することが特に重要である。そこで、本発明では、変更コードを加えてもMPEG2ビットストリームがその規格に準拠できるようにし、その変更処理から生ずる余剰なデータをMPEG2準拠ビットストリーム内に置かず、添付させるようにした。余剰データとはビットストリーム内の変更ユーザデータフィールドに置くことのできなかったデータのことである。
本発明の好ましい実施形態によれば、変更データの取外しと原ビットストリームの復元ができるように、全ての原データの保存を可能としている。(これは勿論、変更されたビットストリームのその他の処理、例えばノイズのあるチャンネルを介した送信、又は変更信号が後段処理により失われないと仮定してのことである。)
本発明の第4の態様によれば、情報を表すデジタルコードを含むビットストリームを変更するための装置が提供される。本装置は、前記情報内で視認可能な変更を表す少なくとも1つの変更コードを含むことになる前記ビットストリームの一部分を占める少なくとも1つのデジタルコードを選択する選択ステージと、該選択されたデジタルコードを前記ビットストリームの該当部分から取り除く取外しステージと、前記選択されたコードの代わりに前記変更コードを前記ビットストリームの該当部分に代入する変更コード代入ステージとを備え、前記ビットストリームから選択され取り出されたコードのビット数が、前記ビットストリームに代入された前記変更コードのビット数より大きいか等しものであり、(1)前記ビットストリームと関連させて前記選択され取り外されたコードを格納する、及び/又は、(2)前記ビットストリーム内の1つ以上の取外しコードデータフィールド中に前記選択され取り出されたコードを格納する、取外しコード代入ステージをさらに備える。
本発明の一実施形態においては、前記ビットストリームは情報信号の変換係数、例えばDC及びAC係数を含むDCT係数を表すデジタルコードを備えている。本発明の一例においては、前記ビットストリームを変更するための種々の技法を用いられる。それらの技法には(1)AC係数の取外しと(2)DC係数の取外しとが含まれる。取り出された係数は変更コードで置き換えられる。変更されたビットストリームのビット数に及ぼす各種技法の効果を評価し、該評価に応じてビットストリームを実際に変更するための1つ以上の技法がその中から選択される。これにより変更ビットストリームのビットレートを原ビットストリームのそれに等しく保持できる技法が選択できる。
原ビットストリームは動きベクトルを表すコードを含むインターエンコードされた画像(inter-encoded picture)を含んでいてもよい。前記変更が画像内で視認可能な透かし模様を表す場合、前記動きベクトルは透かし模様を歪ませてしまう。本発明の一例では、少なくとも1つの変更コードを含むことになるビットストリームの該当部分と関連付けて動きベクトルコードを取り除くステップと、ゼロ動きベクトルを表す動きベクトル変更コードで原動きベクトルコードを置き換えるステップと、該取り外した動きベクトルコードを前記ビットストリームの最後に置くか又は前記ビットストリーム内の取り外したコードのデータフィールドに置くステップとを含む。本例によれば、透かし模様の変形を提言することができる。
MPEG2ビットストリームは、エンコーディングのタイプを示すタイプコードを使ってフィールドタイプ又はフレームタイプでエンコードされたDCTブロックを含んでもよい。1つのフィールドタイプのDCTブロックは変更を受けるが隣接したフィールドタイプのブロックが変更を受けていない場合、その透かし模様はストライプ状に歪むことが知られている。そこで本発明の一例では、フィールドタイプを示す該タイプコードの1つを選択取り外し、フレームタイプを示す変更タイプコードでその取り外したタイプコードを置き換え、該取り外したタイプコードを(1)前記ビットストリームの最後か、(2)前記ビットストリーム内の1つ以上の取り出されたコードのデータフィールド内のうち、いずれか又はその両方に格納する。
本発明の他の態様は注視されるべき特許請求の範囲において具体的に示される。
本発明がより良く理解されるために、及び本発明がどのようにして効果を奏するかを示すために、例として、以下の添付された図を参照して説明する。
以下の説明では、MPEG2圧縮されたビットストリームが変更される。この変更は透かし模様(Watermark)と呼ぶ。この透かし模様をビットストリームに適用することを埋込み(embedding)と呼ぶ。原ビットストリームを復元することを洗浄(washing)と呼ぶ。
第1の実施例
本発明の第1の実施例について説明する。説明を容易にするために、本実施例においては音声の付かない単独ストリームであるMPEG2ビデオビットストリーム、即ちMPEG2ビデオシーケンスファイルのIフレーム中に透かし模様データを配置することについて説明する。なお、ビットストリームはパケット化されたビットストリームであってもよい。もちろん本発明はIフレームに限定されるものではなく、ビデオ又はMPEG2に限定されるものでもない。更に、説明を容易にするために、以下の説明では輝度情報のみについて言及するが、本発明は輝度情報に限定されるものではない。
最初に、MPEG2について説明する。図1にイメージフレーム2を示す。その画像はデジタル画素により表される。図2に示すように8x8画素のブロック4が選択されて、図3に示すようにこれらのブロックは離散コサイン変換(DCT)にかけられて8x8DCT係数を含むDCTブロックを形成する。その係数はDC係数6とAC係数7を含む。連続ビットストリームを形成するために図3に示すように、その係数はジグザク走査パターン8で走査される(その他のパターンも知られている)。図4に示すように、4つの隣接するDCTブロックのグループがマクロブロック10としてグループ化される。図5に示すように、そのイメージフレームはマクロブロックの行R1、R2、R3等として構成される。マクロブロックはスライス状に構成される。1つのスライスはマクロブロックの水平方向の集合である。新しいスライスはマクロブロックの各行の最初からスタートする。1つのスライスには任意の数のマクロブロックが含まれる。一行のマクロブロックには任意の数のスライスが含まれる。
図6において、MPEG2は以下のタイプのフレームを持つ。Iフレームはイントラエンコードされたフレームであって、その他のフレームを参照せずに、そのフレーム内に全てのイメージデータが含まれているフレームである。Pフレームは先行するIフレーム又はBフレームから動作補償予測を用いてコーディングされるフレームである。Bフレームは前の及び/又は将来のIフレーム又はPフレームから動作補償予測を用いてコーディングされるフレームである。説明を容易にするために、第1の実施例の以下の説明ではIフレームだけについて言及する。
フレームはGOPと呼ばれる画像グループに纏められている。図6はI、B、B及びPフレームの列の繰り返しがGOPを形成する代表的なGOPの一部を示す。その他の列も可能である。一般的なGOP内のフレーム数は12又は15であるが、その他のフレーム数も可能である。
図7及び図11は、ここでいわゆる画像データと呼ぶもののデータフォーマットを示す。この画像データは画像スタートコード間の全てのデータを含み、その中にはヘッダー(HDR)、ユーザデータ(UD)及び1フレームのイメージを表すイメージデータ16が含まれる。MPEG2では、ユーザデータ(UD)をイメージデータ16の前の画像データ内に置くことが許可されている。ユーザデータフィールドUDは無くても又は1つ以上のユーザデータフィールドが存在してもよい。
DCTブロックとマクロブロックとはイメージデータ16内で、図8に示すようフォーマットされている。各ブロックはDC係数とそれに続くAC係数を含む。ブロック間はブロックエンドコードEOBで分離される。
IフレームにおいてDC係数は差分に基づきエンコードされる(differentially encoded)。その差分値(differential values)はここではDC差分と呼ぶ。AC係数はランレングス(run length)に基づきエンコードされ可変長コード(VLC)で表され、ここではAC VLCと呼ぶ。
MPEG2エンコーディング処理は、MPEG2規格に準拠する全てのデコーダで復号可能であるビットストリームを生成しなければならない。ビットストリームはバッファ内でデコーディングされるのでデコーダはビットストリームを一時格納するバッファを備える。MPEG2規格はそのバッファのサイズを定義する。一般に、バッファはデータが失われないように、アンダーフローもオーバーフローもしないように構成されている(ある特定の条件の下ではアンダーフローは許容される)。エンコーディング処理はアンダーフロー及びオーバーフローを起こさないよう、そのビットレートを制限して行われる。
本実施例において、ビットストリームに視認可能な透かし模様を加える目的で、エンコードされたビットストリームを変更することでビットレートを変える危険があり、したがってアンダーフローやオーバーフローを起こす危険がある。以下に記載する本実施例では、画像データのビットレートを変えずに、したがってバッファをアンダーフロー又はオーバーフローさせずに、ビットストリームに可視的透かし模様を加え、且つその透かし模様を取り外して原イメージを復元することを目的とする。
図9において、テンプレート18が透かし模様を定義する。図9の実施例において、その透かし模様はSonyのSの字になっているが、透かし模様はどのような形状であってもよい。テンプレートは透かし模様をDCTブロックの解像度で定義する。テンプレートについては後述する「テンプレート」の項で更に説明する。
図10において、本発明の第1の実施例は概略以下のように動作する。これらの動作は本実施例においてはIフレームについてのみ行われるが、本発明はIフレーム上の動作に限られるものではない。
ステップS2において、「透かし模様S内に存在する」マクロブロックが選択され、「これらマクロブロック」の全てのDC差分及びAC VLCが取り出されて、ステップS4において格納される。
ステップS6において、透かし模様を表す新規のDC差分が、取り出された部分に代わり、テンプレートマクロブロックのブロック内に挿入される(AC VLCはこれらのブロック内で置換されない)。Iフレーム内のDC係数は差分に基づきエンコードされる。このため、新規のDC差分値も(詳細は後述)、テンプレートの端部では空間的に先行するマクロブロック及び後続するマクロブロックに依存して計算する必要がある。
ステップS8において、原DC差分値及びAC VLSを取り除くことにより、Iフレームから取り出されたビット数Nrが確認され、新規のDC差分によりIフレームに加えられるビット数Naが決定される。Nr−Naの差が画像データ内におけるスペアデータスペース量を示す。そのスペースが閾値(MPEG2の場合5バイト)を超えると、図11Bに示すように、可視透かし模様ユーザデータスペース20が画像データ内に生成される。少なくとも格納されたDC差分及びAC VLCの一部は、そのデータスペース20内に置かれる。画像データのビットレートが変更されないことを確実にするためにゼロパディング(zero padding)22を画像データに加えてもよい。データスペース20を生成するのに利用できる十分なスペアスペースがない場合には、ゼロパディング22が加えられる。データスペース20に置かれた係数はスペース20に置かれる前に暗号化されており承認された人だけが原イメージを復元できる。
上記処理はビデオシーケンス内のIフレーム毎に繰り返される(S10)。図14においてビデオシーケンスの一部が示される。説明を簡単にするために図14ではIフレームだけが示されている。画像データフレームは説明を容易にするために単純化された形態で示されている。シーケンスがP及び/又はBフレームを含む場合、このフレームでIフレームは分離されることになる。シーケンスの第1のIフレームP1は透かし模様ユーザデータスペース20を含み、透かし模様ユーザデータスペース20はフレームP1の取り出された係数のいずれかを含む。フレームP2はデータスペース20を持ち、フレームP1から取り出されたその他の係数がそのデータスペースに置かれる。図14の実施例において、フレームP2のユーザデータスペース20は、フレームP2の取り出された係数のいずれかを収容する容量がある。フレームP2の取り出されたその他の係数は、フレームP3のユーザデータスペース20に置かれる。フレームP4はユーザデータスペース20に対する余分な容量が無いように示されており、フレームP3から取り出された係数のどれかはフレームP5のユーザデータスペース20に置かれる。このように図14で説明したように、ビデオシーケンスのフレームのイメージデータスペースから一連の順序で取り出された係数は、記録装置から取り出され、暗号化され、画像データのフレーム内に生成された透かし模様ユーザデータスペース20へ、同じ一連の順序で、画像データのビットレートを増やさずに配置される。ビデオシーケンスの終わりはシーケンスエンドコード26により示される。
ビデオシーケンスに生成されたユーザデータスペースは、取り外した全ての係数を収容する十分なスペア容量を提供できない場合がある。そこで、図10のステップS12に示すように、残りの係数は記録装置から取り出され、暗号化されて、図14の符号28で示すように、ビデオシーケンスの最後のシーケンスエンドコード26の後に添付される。MPEG2ビットストリームの最後に添付されたデータは、MPEG2ビットストリームの一部であるがスタートコードが先行しない。このため、添付されたデータはMPEG2デコーダにより無視される。
上述のように、本実施例の処理について、Iフレームだけを引用して説明してきたが、ビデオシーケンスはPフレーム及びBフレームも含むのが一般的である。あるP及びBフレームはゼロパディングを含んでもよい。この場合、ゼロパディングを取り外して透かし模様ユーザデータブロック用に使用してもよく、取り外した原係数をユーザデータブロックに置くことができる。このようなゼロパディングは原ビットストリームを復元中に元に戻される。
以上の概要では一部動作についてその詳細が省略されている。以下ではそれらについて説明する。
ブロックエンド(End of Block)及びその他のコード
図13で最もよく図示されているが、イメージデータ16から取り出された原データ30(DC差分及びAC VLC)には元の(又はそのコピーの)ブロックエンドコードEOBが含まれる。イメージデータ16に加えられたデータ32(即ち新規DC差分)には新規の(又は元の)ブロックエンドコードEOBが含まれる。更に新規に生成された透かし模様ユーザデータスペース20にはユーザデータ開始コード34が含まれるが、これは画像データフレーム内のビット数を増加させる。一旦、原AC及びDC差分が取り出された後、画像データフレーム内で利用できる余分な容量を決定する場合、EOBコードが残っているので、DC差分とAC可変長コードだけが含まれることになる。
透かし模様ユーザデータブロックのフラグ設定
図12において、透かし模様処理により挿入される透かし模様ユーザデータブロック20を元から存在する全てのユーザデータブロックから区別できるようにするのが必要である。この目的のために以下の技法が用いられる。
画像フレームが原ユーザデータブロック36を含むか含まないかに拘らず、透かし模様ユーザデータブロック20を収容するスペースが画像フレーム内にあれば、透かし模様ユーザデータブロック20が画像フレーム内の最後のユーザデータブロックとなる(図12(b)を参照)。透かし模様ユーザデータの最後のバイトの最終ビット38は「1」に設定される(即ち、ユーザデータ内の最後のバイトまで全バイト数を送信し、次に透かし模様データの7ビットだけとそれに続く単一の「1」ビットを送信する)。
図12(c)に示すように、画像が1つ以上の原ユーザデータブロック36を含み、その画像内に透かし模様ユーザデータブロックを収容するスペースがない場合、ユーザデータの最後のブロックの最後のバイトの最終ビット40は透かし模様データに格納されて「0」に置き換られる。
画像が原ユーザデータブロックを含まず、透かし模様ユーザデータブロックを収める余裕が画像内にない場合には、操作は不要である。
上述のように最終ビットを変更することは単なる一例である。代わりに最初のビットを変えてもよい。
透かし模様データの暗号化、図15
透かし模様が施されたMPEG2ファイル中に現れる透かし模様データは、MPEG開始コードを含んではならない。ユーザデータ領域を途中で終了させたり又はその他の好ましくないデコーダ動作の原因となるからである。DC差分及びAC VLCを表すのに使用されるコードの特性としては表示されたイメージデータ内で開始コードが誤って発生されるものであってはならない。したがって透かし模様データ内でもそれらが発生してはならず、フラグ情報を発生する際には要注意である。しかしながら、透かし模様の暗号化の結果として開始コードが生成される場合がある。したがって暗号化されたデータを開始コードと対比してチェックする必要があり、それが発生する場合には暗号化されていない透かし模様データに戻す必要がある(これは正規の鍵を使って復号化するとき、どのバイトが暗号化されずに残っているかを決めることができるだけなので安全性には影響を及ぼさない)。暗号化されない透かし模様データに戻す必要がある場合には、結果的に暗号化データ/非暗号化データ境界線上で別の開始コードの生成がなかったかどうかのチェックも行わなければならない。
任意の適切な暗号化アルゴリズムを使ってもよい。現状ではAESアルゴリズムが好ましい。
図15は排他的OR(XOR)演算を使った暗号化処理を説明するフローチャートを示す。XOR演算が使われるので、復号化処理は暗号化処理と同じである。
図15において、
「idx」は暗号化される(又は復号化される)透かし模様データバイトを割り出すインデックスカウントである。
「zero_count」はビットストリーム内の連続するゼロ数字のカウントである。
「ubyte」は非暗号化透かし模様データのバイトである。
「ebyte」は暗号化透かし模様データのバイトである。
「r」は暗号化アルゴリズムにより発生する乱数でありバイトごとに異なる。
「zero_count++」は増し分zero_countを意味する。
「idx++」は増分(increment)idxを意味する。
概略的には、MPEG開始コードが決して間違って生成されないよう暗号処理が、モニターされる。MPEG開始コードは例えば3つの16進法バイト00 00 01である。このようなコードは非暗号化透かし模様データには発生しないが、暗号化データ中には偶然発生することが起こりうる。このようなコードが暗号化データで発生した場合には非暗号化データが代わりに使われる。
図15の処理では、ゼロの列(ステップS57)又はゼロの列の後に1が続く(ステップS58)ものをチェックし、該当する状態が検出された場合、非暗号化データバイトを出力し(S60)、そうでない場合には暗号化データバイトを出力する(S59)。
図15において、暗号化処理(又は復号化処理)はステップS50で開始され、ステップS51に進み、「idx」及び「zero_count」はゼロに設定される。ステップS52において、「idx」は暗号化する(又は復号化する)透かし模様データのバイト数「num_bytes」と比較される。全てのバイトが処理されると、本処理はステップS53で終了するか、又はステップS54に進み処理する(次の)透かし模様データバイト「ubyte」を入手し、更にステップS55でそのデータを暗号化するための乱数rを入手する。ステップS56において、そのデータバイトはebyte=ubyteXORrの演算により暗号化される。ステップS57及びS58では、得られたデータストリーム中にMPEG開始コードがありそうかどうかをチェックする。ステップS57はubyte又はebyteがゼロ列かどうかをチェックし、そうである場合にはステップS60でubyteを出力する。ステップS58はゼロ列があり(zero_count>1)、その後に1が続くかどうか(ebye==1)をチェックする。イエスであればubyteが出力され(S60)、そうでなければebyteが出力される(S59)。ステップS61で、ubyteがゼロであればzero_countが増分され、そうでなければzero_countはステップS62でゼロに設定され、最後にステップS64でidxは増分されて、本処理はステップS52に戻る。
差分DC記録
イントラブロックに対するDC係数はスライス全体を通して差分的にコード化される。上述のように原差分値は格納され、代わりに新規の差分値が計算され、使われる。これにより所望の、例えば、固定された輝度レベルを提供するような変更が可能になり、テンプレートデザインの良好な定義が可能になる。
図4において、Iフレームが変更されるものとし、中央のマクロブロック10が透かし模様データを含むことになるテンプレート内のマクロブロックであり、その左右のマクロブロックはテンプレート外部にあるものと仮定する。左側ブロックのDC差分60はテンプレート外部にあり、透かし模様の影響を受けない。DC差分61〜64はテンプレート内にある。DC差分61〜64はそのマクロブロックから取り出されて格納される。DC差分61〜64は透かし模様を表す新規の差分値により置換される。説明を簡単にするために、透かし模様が白色レベルの領域と仮定する。DC差分61は所望の白色レベルを表す新規の差分値で置換され、DC差分62〜64は全てDC差分61と同じ白色レベルを表すからゼロに設定される。DC差分65は再計算される。テンプレート外に出るときにはその原差分値(即ち、ブロック65の)を新しい値で置換する動作が伴う。洗浄中に反転処理できるので(ブロック65の)原差分値を格納する必要はない。それは以下の(a)と(b)との差から計算できるからである。(a)非差分値に変換された透かし模様埋込み差分値から計算されたブロック65の値、(b)ブロック64の原(洗浄された)非差分値。
図4ではテンプレートとマクロブロックは一致すると仮定する。これは入口及び出口点の数を最小にしゼロDC差分の数を最大にするので有利である。しかしながら、テンプレートはマクロブロックと一致しなくともよい。
P及びBフレーム
P及びBフレーム内のイントラマクロブロックは上述と同じように変更できる。非イントラコードされたマクロブロックは上述のようにAC VLCを取り除くことができるが、非イントラエンコードされたマクロブロックは予測的にエンコードされているので、その変化は視認しづらくなっている。動きベクトル透かし模様法は、Pフレーム及びBフレーム上だけで実行できる。
色差(chrominance)
上記の説明では透かし模様データを輝度情報だけに与えると仮定しているが、マクロブロックは色差情報のDCTブロックも含んでもよい。上述の輝度に対する方法と同じ方法で透かし模様データを色差DCTブロックに包含させてもよい。更に、その透かし模様データを色差DCTブロックだけに包含させ、輝度ブロックには包含させなくともよいが、ここではその方法はとられていない。
原イメージデータ復元の概要(図16)
図13(c)において、透かし模様が埋め込まれたビットストリーム(一時画像バッファ中の)の一例が示されるが、これは主バッファ70に転送されてデコーダに送信される原ビットストリームを置換する。デコーダで受信されると、原イメージが復元されていない場合には、透かし模様が埋め込まれた画像が表示される。図16は本発明による原イメージの復元(洗浄)処理例の概要を示している。
ステップS20において、透かし模様が埋め込まれたビットストリームが格納され、構文解析(parse)が行われる。ステップS22では、暗号化された透かし模様ユーザデータがビットストリームから抽出されて格納される。また、ビットストリームの最後に添付された全てのデータも格納される。ステップS24において、格納された暗号化透かし模様ユーザデータが復号化され、原DC差分とAC VLCが復元される。ステップS26において、復元された原DC及びAC VLCが透かし模様を表すDC差分を置換する。その結果のビットストリームは透かし模様データを除いたMPEG2圧縮ビットストリームとなる。ステップS28において復元されたビットストリームは従来のMPEG2方法により伸張される。
全ての原係数はユーザデータとして保持され、及び/又は、そのビットストリームの最後に添付させているので、原ビットストリームは完全に復元可能である。結果として得られる洗浄されたファイルは透かし模様のない原ファイルとビット毎に等価である。
原イメージデータ復元処理の一例は、後述する「透かし模様洗浄コード」の項目においてより詳細に説明する。
実施概要(図17、18及び19)
図17には、透かし模様システムの模式図が示されている。ソースからの圧縮されていないデジタルビデオシーケンス50が従来のMPEG2エンコーダ52にかけられる。このエンコーダは周知のものである。本例において、エンコーダ52はコンピュータで実行される圧縮ソフトであるが、そのエンコーダは特定目的用プロセッサで構成されていてもよい。圧縮ビデオシーケンスはファイルとして記録装置54、例えばコンピュータ52のハードディスクに格納される。
透かし模様埋込み装置56は、記録装置54から圧縮ビデオシーケンスを受け取る。本例の埋込み装置はコンピュータで実行される埋込みソフトであるが、以下に説明するように、その埋込み装置は特定目的用のプロセッサで構成されていてもよい。本埋込み処理には、図9に示すようなテンプレートと、少なくとも1つの暗号鍵を使用する暗号化アルゴリズムとが携わり、これら両者はデコーダで原イメージを復元する際に必要になる。本例においては、コンピュータはスマートカードインタフェース57を備え、それを介してテンプレートや鍵がスマートカード64又はその他の安全なデータキャリア上に安全に格納される。又は、そのテンプレートと鍵を、ネットワーク上で安全な方法で又はその他の安全な方法で送ってもよい。
本埋込み装置は圧縮されたビットストリームに対して透かし模様を加える。そして透かし模様を加えられたビットストリームは、別のファイル記録装置60(例えばスタジオ62)に伝送リンク58を介して伝送されるが、その伝送リンクは無線リンク、ネットワーク、例えばディスク、テープその他のデータ記録装置であってもよい。
図18にデコーダの一例を示す。透かし模様を埋め込んだビットストリームは記録装置60から取り出されて、洗浄装置66とも呼ばれる埋込み解除装置にかけられ、原ビットストリームが復元される。本例における洗浄装置はコンピュータで実行される埋込み解除ソフトであり、これについては後述するが、その洗浄装置は特定目的用のプロセッサで構成されていてもよい。本洗浄処理には、図9に示すようなテンプレートと、少なくとも1つの暗号鍵を使用する暗号化アルゴリズムがかかわり、これら両者とも本洗浄装置で原イメージを復元する際に必要になる。本実施例において、コンピュータはスマートカードインタフェース63を備え、これを介してスマートカード64からテンプレートと鍵を受け取る。本洗浄装置の出力は圧縮ビットストリームであり、これは従来型のMPEG2デコーダ65へ供給され、伸張され、表示装置67に表示される。
バッファ
図19(及び図13)に示すように、圧縮されたビットストリームに透かし模様データを埋め込むために、1つのファイル(図12の54)と3つのバッファとが使用される。これらのバッファは:圧縮装置からの原MPEG2準拠圧縮ビットストリームを格納して透かし模様が埋め込まれたビットストリームを出力する主バッファ70;原DC差分及びAC VLCを格納する透かし模様データバッファ72;透かし模様が埋め込まれたビットストリームが主バッファへの伝送用に構成される一時画像バッファ74。これらのバッファは物理バッファでもよいが、本実施例ではソフトウエアで定義される仮想バッファである。
本洗浄処理では、主バッファ70、透かし模様データバッファ72及び一時バッファ74の3つのバッファを使用する。
透かし模様埋込み
次に、上記の種々の処理について、例えば擬似コード導入による実施について説明する。
透かし模様埋込み−擬似コード実施例
主バッファ及び透かし模様データバッファを生成する
(WHILE)画像処理中に
ファイルから1画像分のデータを主バッファに読み込む
一時画像バッファを生成する
(WHILE NOT)表示イメージデータの開始前に
主バッファの構文解析をする
全ての選択された透かし模様技法を割り込み許可する(透かし模様データバッファにフラグ設定)
(WHILE NOT)画像終了前に
(CALL)スライス処理を呼び出す
空間制約条件が満たされているかを確認する
(IF)空間制約条件が満たされていない場合
この画像に対する透かし模様技法のいずれかを不許可(透かし模様データバッファ内にフラグ設定)
(WHILE NOT)画像終了前に
(CALL)スライス処理を呼び出す
新規の透かし模様が埋め込まれた表示イメージデータを持つ画像内で利用できるスペースを決定する
(IF)5バイト未満であり、
(IF)原ユーザデータが存在すれば
ユーザデータの最後のブロックにフラグを立てて、それが透かし模様でないことを示す
表示された画像データを主バッファに出力する
サイズに合わせてその画像をゼロバイトを使ってパディングする
(ELSE)もしくは、
ユーザデータ開始コードを出力する
(WHILE)透かし模様データが存在し(AND)画像内に埋め込む空間があれば、
透かし模様データを暗号化する
暗号化した透かし模様データを一時画像バッファのユーザデータスペースに出力する
ユーザデータのブロックにフラグを立て、それが透かし模様データであることを示す
表示された画像データを主バッファに出力する
(IF)画像内に挿入するスペースがあれば、
サイズに合わせて画像をゼロバイトを使ってパディングする
主バッファから変更された画像をファイルに書き込む
透かし模様データバッファに残っている全てのデータをファイルに書き込む。
スライス処理関数(process slice function)
(WHILE)スライス中で
(IF)データが透かし模様技法に関係していなければ
(POP)上記データを主バッファから取り外し
(PUSH)上記データを画像バッファに記録させる
(ELSE)さもなければ
(POP)主バッファからそのデータを取り外し
(PUSH)上記データを透かし模様データバッファに記録させる
変更値を計算する
変更値をエンコードする
(PUSH)変更値を画像バッファに記録させる。
透かし模様が埋め込まれたコード
透かし模様が埋め込まれたコードの説明をする。MPEG2準拠のビットストリームはファイル、例えば図12の54に格納され、バッファ70、72及び74が用意され、そのファイルから1画像分のデータが主バッファ70に書き込まれて、構文解析が行われる。次に透かし模様技法の選択が行われる。透かし模様技法の選択については図22を参照して以下により詳細に説明する。先ず、全ての透かし模様技法を割り込み可能にする。次に、別途より詳細に説明される「スライス処理関数」が実行される。概略すると、その関数では原DC差分とAC VLCを透かし模様データバッファ72に格納し、新規の透かし模様DC差分(即ち変更値)を計算し、その変更値を画像バッファ74に格納するものである。
次に、空間的制約条件(space constraint)が満たされているかのチェックを行う。最初は、特定の集合の透かし模様技法の全てがビットストリームに対して適用されるものと仮定する。空間的制約条件が満足されない場合には、その技法の1つ以上が割り込み禁止にされる。本実施例の場合、イメージからAC VLCを取り除くことにより解放されるビットの数がDC差分の変更を行うのに必要になるビットの数よりも大きければ、空間制約条件の1つに合格したことになる。それは透かし模様を埋め込んだ表示イメージが原表示イメージより大きくないということを示している。もしその条件が満たされなければ、それはAC VLCの取出しによってDC差分の透かし模様埋込みに対する十分なスペースが解放されなかったことを意味する。
選択された技法を使ったスライス処理関数が再度実行される。本実施例における「利用できるスペースを確認する」のステップでは、新規のDC差分を持つ画像内で利用できるスペースが確認される。
スペアスペースが5バイト未満の場合には、透かし模様ユーザデータフィールド20を含めることはできない。ビットストリームが1つ以上のユーザデータフィールド36を含む場合は、最後のかかるフィールド36の最終ビットは、図12(c)の40で示されるように、ゼロに設定される。透かし模様を表す新規のDC差分を含む表示された画像データは画像バッファ74から主バッファ70へ出力されて、その画像サイズがゼロビットにより原サイズに合わせてパディング(padded)される(図11、12の22を参照)。
例えば、透かし模様を表す新規のDC差分を含む画像データ内に十分なスペースがある場合には、ユーザデータ開始コードを出力することにより透かし模様ユーザデータフィールド20が画像バッファ74内に生成される。透かし模様データバッファ72内に格納されていた原AC VLC及びDC差分は暗号化されて一時画像バッファ74内の透かし模様ユーザデータフィールドに置かれる。図12(b)の38で示すように、透かし模様ユーザデータフィールドの最後のビットは「1」に設定され、それが原AC VLC及びDC差分を含んでいることを示す。一時画像バッファ74の内容は主バッファ70に出力される。透かし模様が埋め込まれた表示イメージデータスペース23を挿入するスペースがあれば、そのスペース23は、図11の22で示すように、ゼロビットで充填される。次に主バッファ70のデータはファイルに書き込まれる。透かし模様データバッファ72に残っているデータがあれば、即ち、原AC VLC及びDC差分データで透かし模様ユーザデータ内部に置かれないデータは暗号化されて、そのファイルを構成するビットストリームの最後に同様に添付される。
スライス処理関数
本処理の説明に際して、本実施例においては、上記図5において説明したように、データはスライス状にされて処理される。然しそれは必須条件ではない。それは単にソフトを実行させる際に便利だからである。
コード「POP」はデータがバッファから取り出されることを示す。コード「PUSH」はデータがバッファに移動されることを示す。
かくして、上述したように、主バッファ70のデータは構文解析される。主バッファ内部ではその表示イメージデータの「スタート」までの全データがスキップされて、そこに残される。画像バッファに移動・格納(PUSHed)される唯一のデータは表示されたイメージデータである。これにより原ユーザデータブロックを変更することが容易になる。透かし模様ユーザデータを追加しなければならない場合には、これを透かし模様埋込み表示イメージデータの前に挿入することが必要である。透かし模様データに関連するデータ、例えば、AC VLC及びDC差分は、主バッファ70から取り出されて透かし模様データバッファ72に置かれる。DC差分の新しい置換値が計算されエンコードされて画像バッファ74に置かれる。
透かし模様洗浄−擬似コード実施例
主バッファと透かし模様データバッファを生成する
(CALL)透かし模様データ・イニシャライズを呼び出す
(WHILE)画像処理中に
1画像分のデータをファイルから主バッファに読み込む
一時画像バッファを生成する
(CALL)透かし模様データ入手を呼び出す
(WHILE NOT)表示されたイメージデータの開始前に
主バッファの構文解析をする
透かし模様データ内のフラグ設定により示された透かし模様技法の割り込みを許可する
(WHILE NOT)画像終了前に
(CALL)スライス処理を呼び出す
画像バッファの内容を主バッファに出力する
(IF)画像中に埋め込むスペースがあれば
ゼロで埋める
変更された画像を主バッファからファイルに書き込む。
透かし模様データ初期化関数
透かし模様ユーザデータブロックをファイルから分離する
上記データを復号化する
一時ファイルに格納する。
透かし模様データ入手関数
(IF)透かし模様データバッファが満杯でなく(AND)且つ透かし模様データがまだ一時ファイルにある場合には
透かし模様データを一時ファイルから透かし模様データバッファに読込む。
スライス処理関数(透かし模様埋込みに使用した機能とは同一ではない)
(WHILE)スライス内で
(IF)データが透かし模様技法に関係しているならば
(POP)上記データを主バッファから取り除く
(PUSH)上記データを画像バッファに移動させる
(ELSE)さもなければ
(POP)上記データを主バッファから取り除く
(POP)透かし模様データバッファから原データを取り除く
(PUSH)元の値を画像バッファに移動する。
透かし模様洗浄コード
透かし模様洗浄コードは原イメージデータを復元する。例えば、デコーダ66には主バッファ70と、透かし模様データバッファ72と、一時バッファ74とが生成される。更に、「透かし模様データ初期化関数」により一時ファイルも生成される。
この透かし模様データ初期化関数は、ファイルから透かし模様ユーザデータブロック、即ち暗号化された原AC及びDC差分を分離し、それらを(スマートカード64の鍵を使って)復号化し、その復号化されたAC VLC及びDC差分を一時ファイルに格納する。
洗浄されていない画像データが存在する場合、そのデータは一時ファイルから主バッファに読込まれる。この段階で一時バッファ74が生成される。
「透かし模様データを入手する」関数は、透かし模様データバッファ72が満杯でなく、(AND)且つ透かし模様データがまだ一時ファイルに存在しているかどうかを確認する。もしそうであれば、次に透かし模様データが一時ファイルから透かし模様データバッファに読み込まれる。これにより透かし模様データバッファ内には常に少なくとも現在の画像を洗浄できる十分なデータが存在することが確認される。
「・・・、透かし模様技法を割り込み可能にする」のステップでは、透かし模様データから1ビットフラグを読出し、選択された全ての技法を用いることで画像への透かし模様が埋め込まれたが成功したかどうかを確認する。そうでなければ、次に追加フラグビットを読出してどの技法が用いられたかを確認する。
「スライス処理呼び出し」のステップは以下のように動作する。
POP(取外し)及びPUSH(移動)は上記と同じ動作を示す。主バッファのデータは構文解析されている。主バッファ内のデータで透かし模様に関係ないものは取り出され画像バッファ74に置かれる。透かし模様データ(即ち、透かし模様を表すDC差分)は主バッファ70から取り出される。透かし模様データバッファ72内の復号化された原AC VLC及びDC差分は取り出され画像バッファ74に置かれる。
次のステップでそのデータを画像バッファから主バッファに転送する。
最後に、復元された画像が主バッファからファイルに書き込まれる。
なお、上述の処理ではどのブロックに透かし模様が含まれ、どのブロックには含まれていないかを確認するために、データキャリア64に格納されたテンプレートが必要である。更に、復号化に必要な鍵もデータキャリア64から受け取る。
後述する「第4の実施例−動きベクトル」の項目で変更された動きベクトルも同様な方法で元の値に復元される。
第2の実施例
非イントラDC変更(non-intra changes)
上記第1の実施例においては、Iフレーム(Intra-frames)のテンプレートブロック内のDC係数の原DC差分を透かし模様を表す新しい値で置き換えることにより透かし模様が加えられる。それ以外の係数は置換されない。元の値は透かし模様ユーザデータスペース及び/又はビットストリームの最後に格納される。
本発明の第2の実施例においては、IフレームのDC係数の置換えに加えて、非Iフレーム(即ちPフレーム及びBフレーム)のテンプレートブロック内のDC係数が、新しい値と透かし模様ユーザデータスペース及び/又はそのビットストリームの最後に格納された元の値によって置き換えられる。
非Iフレームにおいて、DC係数の変化の程度は通常小さいので、現在の係数と所望の係数との差としてコード化する。しかし、その変化の程度がかなり大きい場合もあり透かし模様ブロックのDC値が制限範囲でクリップ(clip)してしまう場合がある。これを避けるためにDC係数の大きさをその最小値「1」に変更することができる(その値をゼロに変更するとVLCは完全になくなり、後に続くコードのランレングス(run-length)が変わる)。
原VLCは透かし模様データバッファ72に格納されて新しいコードが置き換えられる。ランレングスゼロ及びレベル変化1を表すVLCはコーディングテーブル内の最小VLCでありその処理により画像をコーディングするのに必要なビット数が決して増加しないことが保障される。したがって、それはイントラDC変更(intra DC changes)も行われる場合に合わせて、何時でも実行できる。
レベル変化の符号はDC変更が黒色に対してはプラスに設定されその変更が白色に対してはマイナスに設定される。これによりDCクリッピングの発生が防げる。
図20において、非Iフレームは以下のように処理される。ステップS30はフレームタイプを決定する。そのフレームが非IフレームであればプロセスはステップS32へ進む。そうではなく、そのフレームがIフレームであれば、そのプロセスは図10で述べたように進む。ステップS34において、テンプレートブロック内のDC係数(これは上述した差分値)を表すコードは取り出され、透かし模様データバッファ72(図12(b)参照)に格納される。ステップS36において、新しい変更値+/−1が、取り出された係数の代わりにビットストリームへ代入される。ステップS36及びS38において、ビットストリームは一時バッファ74内で再構成される(図12(c)を参照)。利用できるスペースがあれば、取り外した係数値を透かし模様ユーザデータスペース20に置き、スペースがなければステップS40においてビットストリームの最後に添付させる。原DC係数は上述のように暗号化される。
AC VLCは非Iフレームにおいては変更されない。
第3の実施例:フレーム画像、DCTタイプの変更、図21
第1及び第2の実施例は以下のように変更してもよい。
画像タイプにはフィールドタイプとフレームタイプの2つのタイプがある。フィールド画像においてはDCTブロックの1タイプだけが発生する。
第3の実施例においては、フレーム画像だけについて検討する。フレーム画像においてはフィールドとフレームの2つのタイプのDCTブロックが生じうる。フィールドDCTはビデオソースがインタレースされている場合に使用されるが、それは隣接する行間の相関を改善でき、その結果DCTの低周波数成分の信号出力の割合が改善できるからである。然し、それはこの目的のためだけに使用されるのではない。マクロブロックにおいては全てのブロックは同じタイプを備える。
図21(a)において、同じマクロブロックMB内の縦方向の直接上側又は下側のDCTブロックを除く1つだけのDCTブロックB1に対してフレーム画像内のDC変更がなされ、そのマクロブロックのDCTブロックにフィールドタイプが用いられるとするとその変更の結果、そのマクロブロックの全高さ部分にストライプ(stripes)が発生する。これは透かし模様を歪めてしまいその透かし模様が文字・数字(alpha-numeric)の場合に読みづらくなるので好ましくない。
ストライプの現れ方はコンテンツのエンコーディングと、特にフィールドDCTを使ってコード化されたマクロブロックの割合とに完全に依存する。本発明の実施例によれば、この問題を解決するために、少なくとも1つの透かし模様が埋め込まれるDCTブロックを含む、フレーム画像内のいずれのDCTタイプのマクロブロックも、フレームに設定される。これは原DCTタイプコードを透かし模様データバッファ72(図13)に格納して、それをフレームDCT用コードで置換する動作を伴う。DCTタイプコードは常に1ビット値であるからその画像が要求するビット数に影響を及ぼさない。この変更はしたがってDC透かし模様を使用する際には何時でも行える。
動きベクトル変更と同じく、DCTタイプはマクロブロックレベルで操作するので、どの変更でも透かし模様埋込みの有無に拘わらずマクロブロック内の全てのDCTブロックに影響を及ぼす。この場合に発生する副次作用はマクロブロック内の行の再配列が生ずることである。その結果、明瞭、視認可能で不正なマクロブロックが生ずる場合があるが、そのマクロブロックの現れ方は必ずしも受け入れ難いとは言えないかもしれない。
図21(b)はDCTタイプを処理する方法の一例を説明する(フィールドからフレームDCTへの変更及びその逆の変更を含む)。
図21(b)において、
「picture_structure==FRAME」はフレーム画像を検出する。
「&&」は論理AND。
「frame_pred_frame_dct==0」はそのマクロブロックがこの画像に対して全体的に設定されるフレームDCTタイプではなく、個々のベースに基づき特に設定されたDCTタイプを持つことを検出する。
「||」は論理ORである。
「macroblock_intra||macroblock_pattern」はコード化されたDCTブロックを含むイントラエンコード化されたマクロブロック(intra-encoded macroblocks)と非イントラブロック(non-intra blocks)を検出する。イントラエンコード化されたマクロブロックはコード化された全てのDCTブロックを持つ。コード化されたブロックだけがDCTタイプをもつので、この検出が必要である。
DCTタイプ(dct_type)は1ビットコードで表される:1=フィールドタイプ;0=フレームタイプ。
原ビットストリームは主バッファ70に格納されており、取り出されたコードは透かし模様データバッファ72に一時格納される(図13参照)。
本プロセスは、ステップS70から始まりステップS71更にステップS72に進みDCTタイプを持つマクロブロックが検出される。マクロブロックがDCTタイプを持たない場合、本処理はステップENDで終了する。マクロブロックがDCTタイプを持つ場合にはDCTタイプを表す1ビットコードが主バッファ70から取り出される(ステップS73)。ステップS74ではDC変更が割り込み許可され(以下に述べる「選択技法」の項目を参照)、そのマクロブロックがテンプレート内にあることが確認される。イエスであれば、ステップS75で透かし模様をビットストリームに埋め込むのか、又は、透かし模様を埋め込んだビットストリームをその元の形に復元(洗浄)するのかが確認される。ビットストリームに透かし模様を埋め込む場合には、次のステップS76において、「det_type」コード(ステップS73において主バッファから取り出されたもの)が透かし模様データバッファ72(図13参照)に移される。「det_type」コードの値は次にステップS77においてフレームタイプ(=0)に変更され、ステップS79においてその新しいコードが一時バッファ74に移される(図13を参照)。
ステップS74からNOの経路が取られると、取り出された「det_type」コードはステップS79において一時バッファに移動される。
その逆の処理においてもステップS70からS74までは上述のように進む。次にステップS75で透かし模様埋込み処理が反転(洗浄)されようとしているかが確認されて、ステップS78で透かし模様埋め込みされたストリームの「dct_type」コードが、透かし模様データバッファ72から抽出された原コードによって置換される。次にステップS79において、その「dct_type」コードは上記と同じように一時バッファ74に格納される。
図21(b)に示す処理の最後において、一時バッファ74は新しい「dct_type」コードを含み、透かし模様データバッファ72は原コードを含む。バッファ72からの原コードは透かし模様ユーザデータスペース20に転送されるか又はそのビットストリームの最後に添付される。新しい「dct_type」コードが原コードの代わりにビットストリームに置かれる。それらは上記の「透かし模様が埋め込まれたコード」の項目で説明したのと同様に行われる。
選択技法
上述したように、画像には下記のステップにより透かし模様の埋込みがなされる。
(a)第1の実施例:原DC及びAC係数を表す全てのコードをIフレームのテンプレートブロックから取り外し、そのDC係数を透かし模様を表す新たな値で置換する。
(b)第2の実施例:オプションとして更に加えて、非Iフレーム内の原DC係数を表すコードを取り外し、それらを新しい値で置換する。
(c)オプションとして、上記に更に加えて、テンプレートブロックの原動きベクトル値をゼロ値で置き換える。
より一般的には次の3つの技法が用いられる。
1.テンプレートブロック内のDC係数の変更を許可する。
2.テンプレートブロックからAC係数の取外しを許可する。
3.テンプレートブロック内の動きベクトルの変更を許可する。
通常、ここで説明する実施例の技法を用いて透かし模様を埋め込んだ画像をエンコーディングするために必要なビット数は、原画像より少なくて済む。上記第1の実施例においては、これはAC差分を完全に除外したためであるが、DC及び動きベクトル両方をゼロ差分値で多数コーディングした効果も大きい。
しかしながら、透かし模様を完全に埋め込もうとしても、画像に挿入するビットの数がその画像から取り外したビット数よりも大きくなってしまう場合がある。例えば、これはビデオシーケンスで通常遭遇する完全ブラックカラーフレーム等で容易に生じうる。これが発生すれば、画像を表すのに使用するビット数は同じに維持されなければならないという制約条件を満たすために、その条件が満たされるまで画像の透かし模様の埋込みに使用する上記技法の幾つかを割り込み不許可にする必要がある。
本発明の実施例においては、その選択は各画像ベースで行われるので、その画像の正しい洗浄を容易にするためには追加情報を格納する必要がある。そこで現在の画像に対してどの技法が許可されているかを示すフラグビットが挿入される。ここで使用されるシステムが表Aに示される。それは更なる技法の追加にも容易に適応し、且つ利用できる全技法集合の中から選択された部分集合であるにも拘わらず効率的である。ここで注目する点は、第1のフラグビットの選択が透かし模様が埋め込まれたデータ内でのMPEG2開始コードの発生を避けるよう設計されていることである。
Figure 2005517362
可能な限り常にイントラDC変更とAC取外し技法の2つは、最低限適用されるべきである。これにより良好な視認性と頑強性が与えられるからである。イントラDC変更が加えられる場合には、非イントラDC及びDCTタイプ変更も用いることができる。その画像が必要とするビット数が増加しないことが保障されているからである。動きベクトルの変更も視認性品質や透かし模様の完全性を改善するが必須条件ではない。
図22は、例えば3つの透かし模様埋込み技法の選択を説明するフローチャートである。
1.テンプレートブロックにおけるDC係数の変更の割り込み許可。
2.テンプレートブロックからのAC係数取外し許可。
3.テンプレートブロック内の動きベクトルの変更許可。
なお、ここで注意すべき点は以下のとおりである。
・解放されたACビットは必ず負の数ではない。AC取外しは何時でも実行でき決して画像サイズの増加を起こさない。
・DC変更用ビット及びMV変更用ビットは正の数であっても負の数であってもよい。その値が正の場合はその技法を実行するのに必要なビット数は元々存在したビット数より大きくなる。したがって現在の画像に対する変更を行う場合は別の技法を用いて(例えばAC取外し)十分なビット数を解放しなければならない。その値が負数の場合はその技法は元々存在したビット数よりも少ないビット数しか必要とせず、したがって実際には十分なビットが解放されているのでその変更は何時でも実行できること。
解放されたビット数が両者の技法を実行するのに必要とするビット数を補うのに不十分な場合には、MV変更よりもDC変更が常に優先される。
図22において、処理はステップS80から始まりステップS81に進み、ここで最初は3つの技法全てが割り込み許可される。ステップS82において、画像(即ちフレーム又はフィールド)は許可された3つの技法の全てを適用するよう処理される。ステップS83は再処理フラグを「True」に設定して最初は3つの技法全てを用いてその画像が再処理できると想定していることを示す。概説すると、画像は1つのパス(pass)においては3つの技法全てを用いて透かし模様を適用するよう処理されてその結果が解析される。その結果が不首尾の場合は、その画像はその1つ以上の技法を不許可にした第2のパスにて再処理される。
3つの技法の全てを可能にする解放されたACビット
ステップS84では、AC係数を取り除くことによりデータが削除されDC係数変更のためのビット解放がなされたかどうかを確認する(黒色画像に対してはAC係数はないかもしれない)。解放されたビット数がゼロを超えれば、次にステップS85において解放されたACビット数がDC変更用ビットとMV(動きベクトル)変更用ビットの和以上かどうかを確認する。そのDC変更用ビット数は原DCコードを取り除くことにより解放されたビット数と新規のDCコードに使用されたビット数との差である。同様に、MV変更用のビット数は原MVコードを取り除くことにより解放されたビット数と新規のMVコードに使用されたビット数との差である。
解放されたACビット数がDC変更用及びMV変更用ビットの合計より少なくない場合には(すなわち、DC及びMV変更の両方ができるだけの十分なACビットが解放された場合)、3つの技法全部が使用でき、したがって画像の再処理の必要はなくなる。かくしてその再処理フラグはステップS90において「False」に変更される。ステップS91は再処理フラグが「True」、「False」いずれかを確認する。この場合は「False」であるので、処理はステップENDで終了する。
ステップS84:解放されたACビットがない場合
これはかかるAC係数を持たず、したがって透かし模様を埋め込むことができないブラック画像上で起こることがある。ブラック画像には保護するコンテンツがないのでそれは問題にはならない。
ステップS84において解放されたACビットがないことが確認されると、処理はステップS93に進みそこでAC取外し技法が不許可になる。ステップS94はDC変更用のビットがゼロより大きいかどうかをテストする。大きければそのDC変更技法はステップS95で不許可にされる。DC変更用のビットがない場合即ちステップS95が生じた場合には、処理はステップS96に進みそこでMV変更用のビット数がゼロより大きいかどうかがテストされる。大きければステップS97においてMV変更技法が不許可にされる。
要約すると、ACビットが解放されなければ、DC及びMV変更は許可されず、又はDC及びMV変更ビットがないということである。何れの場合でも再処理フラグは依然「True」であるので画像はステップS92で(再度)処理される。
「解放されたACビット」は常に非負数である一方で「DC変更用ビット」及び「MV変更用ビット」は正数であっても負数であってもよいことに注意。取り除くACデータがない場合、DC及びMVの変更はその置換データが原データよりもビット数が少ない場合にだけ(即ち、「DC変更用ビット<=0」且つ「MV変更用ビット<=0」)実行できる。したがって、AC取外しを不許可にする一方でDC及び/又はMV変更を許可することも(ありそうではないが)可能ではある。
3つの技法全部を許可すると最初に仮定しているので、その技法のどれかを不許可にした場合には常に再処理が必要になりフラグデータを変更しなければならず、第1のパスの透かし模様が埋め込まれたフレームは第2のパスの透かし模様が埋め込まれたフレームで上書きされる。
AC VLCデータ欠乏はビット数を増加させる差分DC値の変更を許す画像データのスペース解放ができないことを意味する。そのような場合においては透かし模様の埋込みはできなくとも、保護するコンテンツがないので問題にはならない。然し、透かし模様を取り外すデコーダは、ここでは透かし模様洗浄装置と呼ぶ、そのフレームから透かし模様を取り除こうとしなくても済むようにどこでそのようなケースが発生したかを通知されなければならない。これを示すのに追加フラグビットが用いられる。
ACビットがDC及びMV変更用ビットの総和より少ない場合:ステップS85
DC及びMV変更の両方を行うのには解放されたビット数が不足する場合には、処理はステップS86に進む。
この場合、ステップS86は解放されたACビット数がDC変更を行うのには十分かどうかを調べる。DC変更を行うのに十分なビットがあれば(ステップS86のNO出力)、ステップS97に進みMV変更は不許可となる。次に処理はステップS91へ進む。再処理フラグは「True」であるがMV変更は不許可なので、次にその画像はMV変更不許可且つDC変更許可の状態でステップS92において改めて処理される。
ステップS86がDC変更を行うのには解放されたビットが不十分であると確認した場合(S86の出力YESの場合)、次に処理はステップS87へ進みそこで解放されたACビット数がMV変更を行うのには十分であるかどうかを確認する。MV変更を行うのには十分なビットがあれば(S87の出力NO)、次にステップS88でDC変更が不許可にされる。次に処理はステップS91へ進む。再処理フラグは「True」であるがDC変更が不許可になっているので、次にその画像はDC変更不許可且つMV変更許可の状態でステップS92において改めて処理される。
ステップS87がそのMV変更を行うのにはビットが不十分であると確認すると(S87の出力YESの場合)、次にステップ89でDC及びMV変更の両方が不許可にされてその画像はAC取外し技法だけが有効にされてステップS91及びS92により再処理される。
図22の処理の変形例において、ACを取り外しても問題が決して起きないのが分かっているので、AC取外し機能は常に有効(割り込み許可)となっている。図22においてステップS93は取り除かれAC取外しのためのフラグビットは必要でなくなる。
第4の実施例:動きベクトル:図23−25
動きベクトルのゼロ設定
図23(a)において、動きベクトルはDCTブロック(細線で示された四角形B)よりもむしろマクロブロック(太線で示された四角形MB)と関連付けられる。そこで明るい陰影で示される動きベクトルテンプレートは暗い陰影で示される透かし模様テンプレートに基づいて定義されてもよい。上記の第1の実施例において仮定したように、Iフレームだけが透かし模様データを含んでいるとしても、動きベクトルはその透かし模様を歪ませてしまうことがある。P及び/又はBフレーム内のマクロブロックのどれがその動きベクトルテンプレート内にあるかを確認することが、必須ではないが望ましい。もしあれば、次にそのマクロブロックの動きベクトルの値がゼロに設定される。動きベクトルは差分に基づきにエンコードされるので、その差分値はその動きベクトルに対してゼロの値を表すように設定される(即ち、動きベクトルは上記のDC差分に対すると同じように処理される)。
DC差分を引用して説明したように、DCTマクロブロックの動きベクトルを表す原コードは、これはテンプレート内のDCTブロックを含むが、ビットストリームから取り出されて変更されたコードで、この場合はゼロ値の動きベクトルを表すコードで置換される。原動きベクトルコードは透かし模様ユーザデータスペースに置かれ、及び/又はそのビットストリームの最後に添付される。
そこで、図13及び24を参照してさらに説明する。
ビットストリームは主バッファ70に格納される。
ステップ100において、非Iフレームのマクロブロックがその動きベクトルテンプレートに属するかどうかが確認される。そうであれば、そのマクロブロックと関連する動きベクトルコードは主バッファ70内でビットストリームから取り外され(S102)、透かし模様データバッファ72に格納される(S104)。動きベクトルに対するゼロ値を表す新しい動きベクトルコードが一時バッファ74内のビットストリーム内の元の値の変わりに代入され(S106)、原動きベクトルコードは一時バッファ74内の透かし模様ユーザデータスペース20に置かれ(ステップS108)、及び/又はMPEG準拠ビットストリームの最後に添付される(S110)。原動きベクトルコードはそのユーザデータスペースに置かれる前又はそのビットストリームの最後に添付される前に、図15で上述したように、暗号化される。
上記の実施例の何れにおいても本項目で説明したように、動きベクトルはゼロに設定してもよい。これにより透かし模様の歪みは少なくなっても、依然として透かし模様は特にエッジ部分において歪が残る場合がある。次の項目「境界領域」は透かし模様の歪みを更に削減する方法を説明する。
境界領域:図23(b)
図23(b)において、透かし模様の歪みを更に少なくするために、動きベクトルテンプレートを拡張して、透かし模様テンプレートブロックは含まないがそれと境界を接するマクロブッロクを含むようにさせた。拡張された動きベクトルテンプレート内の全てのマクロブロックの動きベクトルコードを上記図24で説明したように処理した。
これにより透かし模様テンプレートで定義される透かし模様の歪みは小さくなるが、透かし模様テンプレートと境界をなすマクロブロック、これは透かし模様ブロックを含まないが、その動きベクトルによりその画像は境界線上のマクロブロックで歪む。透かし模様の歪み削減より画像の歪み増加の影響が大きいと判断するかどうかは主観の問題である。
動きベクトルコードの値の変更:図25
動きベクトルは「差分DC記録」の項目で説明したのと同様にして差分エンコードされて記録される。Pフレームは前方予測動きベクトルを持つが、Bフレームは前方予測及び後方予測の2つのタイプの動きベクトルを持つ。この2つのタイプは図25で述べるように別々に処理される。
図25(a)は透かし模様の一部ではないその境界の他のマクロブロック0の間にある3つのマクロブロックBからなる非常に単純化された動きベクトルテンプレートを示す。
図25(b)は予測型のマクロブロックを示す。Fは前方(forward)を示し、Bは後方(backward)を示す。幾つかのマクロブロックFBは前方及び後方予測の両方を兼ねる。
図25(c)から(e)において、これら図中の数字は単に説明のためだけであり動きベクトルの実際の値を表すものではない。図25(c)は前方予測動きベクトルの非差分値を示す。対応する差分値(それらの差を取った値)が図25(d)に示される。後方予測動きベクトルは無視されているのが分かる。3つのテンプレートのマクロブロック内の動きベクトルがゼロに設定されると、そのテンプレート内の有効値は結果的にゼロであるがそのテンプレート外の隣接するブロックの有効値が変更されないようにこれらブロックの差分が再計算される。その結果、その先行のマクロブロックに対して変化する、「入口(Entry)」で矢示されるテンプレートの先端部のマクロブロックの差分値が結果的にゼロの動きベクトル値を与え、且つ「出口(Exit)」で矢示される後続端部のマクロブロックの差分値が境界を接する次のマクロブロックの元の値を保持するように変化する。
前方予測動きベクトル値は後方予測値からは独立した差分値シーケンスであり、2つのシーケンスの「入口」及び「出口」のマクロブロック同士は必ずしも一致しないことが理解できる。
更に、テンプレートからの「出口」と境界を接するマクロブロックの動きベクトルの原差分値は、上記の「差分DC記録」の項目のブロック65で説明したように、格納する必要はないがそうすることが望ましいのも理解できよう。
テンプレート:図26〜28
以上述べたように、2つのタイプの画像、フィールドタイプとフレームタイプの画像がある。ビデオシーケンスは、フィールド画像だけ、フレーム画像だけ、又はフィールド画像及びフレーム画像の両方を含んでもよい。
フレーム画像だけのシーケンス
フレーム画像だけのシーケンスについて考える。テンプレートは水平及び縦方向における1つのDCTブロック単位(8x8画素)の解像度で定義する。図26(a)に示された、行当たり720画素及び576行を持つフレーム画像例に対して、必要なテンプレートサイズは90x72ブロックである。図26(b)においてXの字の形のテンプレートが1ブロック単位の解像度で定義されている。その結果、図26(c)に示す透かし模様を埋め込んだ画像は1ブロック8x8画素の表示された透かし模様解像度を持つ。
フィールド画像だけのシーケンス
フィールド画像だけのシーケンスを考える。図27(a1)及び(a2)において、それぞれが720x288画素の2つのフィールドがインタレースされて720x576画素の1つのインタレースされたフレームを定義する。フィールド画像においては、DCTブロックはフレーム画像の行数の半分の行数であっても8x8画素ブロックに対応している。マクロブロックはフレーム画像におけると同様に2x2DCTブロックである。
フィールド画像に対するテンプレート(図27(b)におけるX)は1DCTブロックの解像度で定義される。ストライプの発生を防止するために両方のフィールドに対して同じテンプレートが使用される。ブロックの位置はフィールドの開始に対して固定されているのでそれぞれのフィールドに対する特別の調整は必要ない。
図28において、図28(c)に示される1つのマクロブロックに対して、テンプレートは1つの黒く塗りつぶしたブロックに透かし模様を埋め込むことを示している。インターリーブされたフレームにおいて、図28(a)及び(d)に示すように、それぞれ2つのフィールドからの2つのマクロブロックがインターリーブされて水平方向に2つのDCTブロックと垂直方向に4つのDCTブロックを組み合わせた1つの複合マクロブロックが構成される。その複合マクロブロックはフィールド1からのマクロブロックB1とフィールド2からのマクロブロックB2からなる。インタレースされたフレームの線分はフィールド1からの線はF1により、フィールド2からの線はF2により示される。
表示された透かし模様Xの解像度は、図28(c)に示されるようにテンプレートの解像度は8x8画素であっても、図28(d)に示すように水平に8画素×垂直に16画素の解像度を持つ。
フィールド画像及びフレーム画像のシーケンス
少なくとも1つのフィールド画像と少なくとも1つのフレーム画像を備えるビデオシーケンスを考える。そのテンプレート、図27(b)のXは1つ以上のフィールド画像用に設計されており1DCTブロックの解像度を持つ。その結果、水平に1ブロック×垂直に2ブロックの解像度を持つ透かし模様が表示される。1つ以上のフレーム画像内の透かし模様はフィールド画像のそれと一致する必要がある。これはフイールド画像に使用されたテンプレートからフレーム画像用のテンプレートを自動的に導出することにより保障される。これを達成する最も簡単な方法はフィールドテンプレートの全ての行を2倍にすることである。それによりフレームテンプレートは水平1ブロック×垂直2ブロックの有効解像度を持ちフレーム画像に表示された透かし模様がフィールド画像のそれと確実に一致する。
実際にはビデオシーケンスはその画像のタイプの確認がなされる。フィールドのみ及びフレームのみのシーケンスに対してはその画像タイプに適したテンプレートが用いられる。両方の画像タイプを持つシーケンスに対しては、フィールド画像に適したテンプレートが選ばれてそのシーケンス内のフィールド画像に使用される。次にフレーム画像に使用するテンプレートはそのフィールドテンプレートから導出して透かし模様の外見に矛盾が生じないようにする。
前記テンプレートは1つ以上の記録装置に記録されたビットマップであってもよい。
変更
パケット化されたビットストリーム
元のシーケンスがMPEG−2パケットストリーム(パケット化ビデオシーケンス又はオーディオ・ビデオマルチプレックス)の場合、透かし模様が埋め込まれたビデオシーケンスが再パケット化されて残りの透かし模様データがそのパケット化ストリームエンドコードの後に置かれるのであれば、ビデオシーケンスエンドコードは必要なくなる。
パケット化ストリーム(オーディオ・ビデオマルチプレックス)の埋込みを簡単にするために、そのストリームを前処理してビデオシーケンスを抽出することができる。次に、上記のように、ビデオシーケンスは個別に埋め込みできる。埋め込まれたビデオシーケンスは、テンプレートとして全てのパケット情報の再利用ができ全てのタイミングを保持する既存のパケット化ストリームファイル(画像データサイズを維持する通常の副次効果)を使ってオーディオと一緒に再パケット化できる。この追加処理段階は埋込み処理の操作には必須条件ではないので上記の擬似コードにおいては説明されていない。
圧縮比の変更
上記の実施例では圧縮ビットストリームに透かし模様データを埋め込む前にそのビデオは画質を最高にするために最小の圧縮比で圧縮されているものと想定する。よって、透かし模様ユーザデータフィールドが全ての暗号化された元の係数を含むことはなく、残りのデータはファイルの最後に添付される。本発明の別のバージョンにおいては、ここではその方法は採らないが、圧縮を実行する前に透かし模様データを収納するのに必要なデータスペースの推定値を与えて透かし模様ユーザデータフィールドに元の係数全部を収め且つ表示画像データフィールドに新しいDC係数を収めるのに十分なスペアスペースを提供するよう圧縮を制御する。
暗号化された原AC VLC及びDC差分の添付
上記の実施例においては、透かし模様ユーザデータフィールドに格納される分を超過する原AC VLC及びDC差分はファイルの最後に添付される。しかしそれらはファイルの最初に置いてもよい。
好ましい本実施例においては、ファイルの最後に添付された残余のバイト数がカウントされる。そのカウント数はその残余のデータの最後に置かれており、残余のデータのスタートが容易にアクセスできるようにする。
原AC VLC及びDC係数をユーザデータフィールドに格納する他の方法
上述の説明において、原AC VLC及びDC係数は圧縮されたビットストリームのユーザデータフィールド20に格納される。図14のフレームP1及びP2の実施例で示したように、フレームP1のデータのある部分がフレームP1のユーザデータスペース20に格納されそれを超える部分があればフレームP2のユーザデータスペースに格納される。その処理はビットストリーム全体を通じて継続される。残余のデータがあればビットストリームの最後に添付される。
上記処理の他の実施例においては、図29に示すように、フレームP1の原AC VLC及びDC差分はフレームP1のユーザデータスペース20に格納される。全てのフレームに対して、そのフレームのユーザデータスペースに暗号化されたAC VLC及びDC差分と一緒に収めきれなかった、それらAC VLC及びDC差分のバイト数Bからなる残余データフィールド291が生成される。残余のAC VLC及びDC差分がなければ、そのフレームに対するバイト数Bはゼロである。したがって各フレームはそのユーザデータスペース20内にはそのフレーム自身のデータだけを納め、残りのデータはどこか他の所へ、例えば、図29のバッファ290に格納する。
上記残余のデータ、即ち本実施例においては、バッファ290のコンテンツは、図30に示すMPEGビットストリームの最後に添付させてもよい。292で示すように、それはビットストリームの開始の終わり(End of Start)に添付させてもよく、又は293で示すようにそれはビットストリーム終了の後に添付させてもよい。
ユーザデータのビット数を表すコードBの選択は、MPEGビットストリームで使われている他のコードを表すものでないコード、特にMPEG開始コードと混乱させないように選ばれる。
ファイル
上述のようにコードBと暗号化された残余のAC VLC及びDC差分からなる全ての残余のデータは、ビットストリームの最後に添付される。また他の実施例において、その残余のデータはビットストリームから分離されたファイルに格納される。そのファイルは図30に示すようにビットストリームの初め292、又は最後293に添付させてもよい。図31に示すように、ファイルは送信媒体294、例えばビットストリームから分離されたデータキャリア又は通信チャンネルに格納されてもよい。そのデータキャリアはフロッピー(登録商標)ディスク、テープ又はその他の記録媒体であってもよい。
上記ファイルはそのビットストリームと関連付けられ、一体化される。それは図30に示すようにビットストリームに添付させることにより構成されてもよい。ファイルが図31に示すように分離して格納される場合には、例えば、ファイルとビットストリームを結び付ける識別子を使うことによりそのファイルとビットストリームとを関連付けてもよい。そのような識別子の例としてはUMIDがある。
洗浄
図29のビットストリームから透かし模様を洗浄するために、ビットストリームP1〜Pnを格納して構文解析を行う。コードB、AC VLC及びDC差分からなる残余のデータは構文解析処理中に添付されたデータ292又は293から検索され、又はファイル292、293又は294から取り出されて格納される。各フレームに対し、ユーザデータフィールド20のデータが復号化されてビットストリームの変更データを置き換えるのに使われる。そのフィールドに対するバイト数Bが読み出される。それがゼロより大きい場合、次にそのフィールドに対する残余データが複合化されそのフレームの残っている変更データを置き換えるのに使われる。
MPEGビットストリームの例においては、フレームの番号付けは行わず残余データフィールド291の番号付けも行われない。そのような番号付けは不必要であるからである。全てのフレームとそれと関連する残余データフィールドは連続して処理されるからである。そのような番号付けは本発明のその他の実施例において与えることができる。
透かし模様技法の選択
上記の記述では3つの透かし模様技法の選択について説明した。然し以下の項目を含む多くの技法から選択してもよい。
(a)変更DC差分によるDC差分の置き換えと原DC差分の取出し
(b)ビットストリーム内に原DC差分に対するスペースを空けるためにAC VLCを取り除く方法
(c)取り外した係数をユーザデータブロックに置く方法
(d)取り外した係数をビットストリームの最後に置く方法
(e)透かし模様を行うための動きベクトルの変更
(f)透かし模様を行うための色情報の変更
(g)P及び/又はBフレームのスペアスペースに係数を置く方法
これらの技法は単独又は組み合わせて使ってもよい。例えば、ある場合にはAC VLCを取り出さずにDC係数だけを変更された係数と置き換えることも可能である。常時ではないが、一般に、透かし模様のために係数及び動きベクトルを変更するとビット数が増加する。
使用する技法はビットレートに対するそれらの与える影響に応じて選ばれる。ある特定の技法の組合せの結果ビット数が大きくなりすぎる場合には(例えば、(a)と(c)の組合せ)、別の技法の組合せを選択する。使用する技法はそれを識別するフラグによって透かし模様が埋め込まれたビットストリーム内で識別されるので、そのビットストリームが透かし模様を取り除くために洗浄装置にかけられるときその洗浄装置は正しくその透かし模様を取り除くのに必要な情報が与えられる。
アプリケーション
以上説明した本発明の実施例は次に述べる各状況において適用できる。
コンテンツ仲介(content brokering)
上記の技法を用いて製造される可視透かし模様が埋め込まれたファイルは規格品MPEG−2プレーヤーを使ってコンテンツをプレビューでき(その透かし模様ファイルはMPEG−2実証ストリームである)、特注品のプレーヤーは必要としない。その透かし模様を埋め込んだファイルにはその処理を反転するのに必要な全ての情報が含まれる(暗号キー及びテンプレートファイルを除く)。したがって唯一必要なのはそのコンテンツのコピーを流通/伝送するだけである(従来の手続きでは購買者がそのコンテンツを購入するとそのシーケンスの保護コピーとそれに続く非保護コピーとを流通する手続きがとられる)。
この流通の形態としては次のような多くの形態を採ることができる。
透かし模様を埋め込んだコンテンツは安全サーバ上に格納できるが、ファイル内の透かし模様データの暗号化はファイルのコピーが請求された時点で行うことができる。顧客は自分の詳細情報を入力でき次にそれらは使用された暗号キーのコピーと一緒に安全サーバ上に格納される。次に顧客がそのコンテンツの購入を希望すれば顧客の詳細情報を索引として使って暗号キーが安全サーバから検索できる。このことは一人の顧客のキーは別の顧客の電子すかしを埋め込んだコンテンツのコピーを洗浄するのには使えないことを意味する。勿論、それでもその鍵を持つ顧客がコンテンツ(透かし模様を埋め込んだ又は洗浄された)の彼らのコピーを別の人に提供することは可能であろう。
一旦顧客がそのコンテンツを購入すれば次のどちらかのオプションを選べる。即ち、ファイルを洗浄して可視的透かし模様のないファイルを生成するか、又はそのファイルのローカルコピーとして透かし模様を埋め込んだまま残しておき必要なときにリアルタイムで洗浄するかのいずれかである。前者の場合は現在のモデルと変わらないので受け入れられ易い。
番組毎料金徴収(ペイ・パー・ビュー)放送
透かし模様処理の特性を生かしたリアルタイム洗浄装置を開発することが可能である。これは保護されたコンテンツをプレビューのため聴取者に流すことができることを意味する。続いて聴取者がそのコンテンツに対する支払いを決めると例えば、受信機セットトップボックスに挿入する鍵が与えられてそのコンテンツは受信と同時にローカルに洗浄される。したがって送信中にそのデータを変更する必要はない。リアルタイム洗浄を迅速容易にするためには全ての暗号化透かし模様情報を最初にそのセットトップボックスにダウンロードする必要があろう。又は、追加の透かし模様データ分を補償する十分なパディングを画像フレーム内に含めるようコンテンツ圧縮処理を変更することもできる。予め定めたテンプレートデザインを用いて、補償が必要になる最悪の場合の(ビット数)増加分を計算できる。
本発明はハードウエア又はソフトウエアもしくはそれらの組合せにより実施してもよい。
本発明は、それがコンピュータ上で実行される場合には、上記の方法を実現するコンピュータプログラムを提供する。本発明は更にそのようなプログラムを記録する記録装置を提供する。
画像フレームの概要図である。 画像フレーム内の8x8画素ブロックの概要図である。 DCTブロックの概要図である。 マクロブロックの概要図である。 マクロブロックの行とスライスの概要図である。 画像グループ(GOP)の概要図である。 画像データの1フレームの概要図である。 1つのマクロブロックの1ビットストリームの概要図である。 透かし模様を定義するテンプレートの概要図である。 本発明によるIフレームに適用された透かし模様技術の概要を説明するフローチャートである。 本発明の実施例に使用されたデータフォーマットを説明する概要図である。 本発明の実施例に使用されたデータフォーマットを説明する概要図である。 本発明の実施例に使用されたデータフォーマットを説明する概要図である。 圧縮画像フレーム中に分配されたユーザデータを示す概要図である。 透かし模様暗号化・復号化処理のフローチャートである。 本発明による透かし模様取外し方法の概要を説明するフローチャートである。 本発明による透かし模様システムを説明する概要図である。 透かし模様取外し装置の概要ブロック図である。 透かし模様埋込み処理及び透かし模様取外し処理に使用された3つのバッファの概要図である。 本発明による非Iフレームに適用された透かし模様方法の概要を説明するフローチャートである。 (a)は透かし模様を埋め込んだマクロブロックを示し、(b)はDCTタイプ変更処理のフローチャートである。 技法選択処理のフローチャートである。 動きベクトルと一緒に使用されるテンプレートを示す図である。 本発明の実施形態における動きベクトルコードに適用された方法の概要を説明するフローチャートである。 動きベクトルのコーディングを説明する図である。 ビデオシーケンスのフレーム画像への透かし模様埋込みを説明する図である。 a)ビデオシーケンスのフィールド画像への透かし模様埋込みを説明する図であり、b)ビデオシーケンスのフィールド画像及びフレーム画像への透かし模様埋込みを説明する図である。 インタレースされたフィールド及びフレームに対する透かし模様埋込みマクロブロックを説明する図である。 本発明の変更例を示す図である。 本発明の変更例を示す図である。 本発明の変更例を示す図である。

Claims (100)

  1. 情報を表すデジタルコードを含むビットストリームの変更方法において、
    前記情報の変更を表す少なくとも1つの変更コードが含まれる前記ビットストリームの一部分を占める少なくとも1つのデジタルコードを選択するステップと、
    前記ビットストリームの該一部分から、前記選択されたデジタルコードを取り外すステップと、
    前記選択されたコードの代わりに前記少なくとも1つの変更コードを、前記ビットストリームの該一部分に代入するステップとを有し、
    前記ビットストリームから取り出された前記選択されたコードのビット数は、前記ビットストリームに代入された前記変更コードのビット数に等しいか大きく、
    さらに、(1)前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップと、(2)前記取り外した選択されたコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールド内に配置するステップとのうちの少なくとも一方を有するビットストリームの変更方法。
  2. 前記選択され取り外されたコードを、前記取外しコードデータフィールドに再分配するステップと、
    前記取り外した選択されたコードを、前記ビットストリームと関連付けて好ましい順序で格納するステップとをさらに有し、
    前記好ましい順序は、1)前記取外しコードデータフィールドに格納し、2)前記取り外した選択されたコードを前記ビットストリームに関連付けて格納することを特徴とする請求項1に記載のビットストリームの変更方法。
  3. 前記取り外した選択されたコードの一部分を前記ビットストリームと関連付けて格納するステップと、
    前記取り外した選択されたコードの残余を、前記1つ以上の取外しコードデータフィールド内に配置するステップとをさらに有する請求項1又は2に記載のビットストリームの変更方法。
  4. 前記ステップ(1)の前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップでは、前記取り外した選択されたコードを前記ビットストリームの最後に添付させることを特徴とする請求項1乃至3のいずれか1項に記載のビットストリームの変更方法。
  5. 前記ステップ(1)の前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップでは、前記取り外した選択されたコードをファイルに格納することを特徴とする請求項1乃至3のいずれか1項に記載のビットストリームの変更方法。
  6. 前記ファイルは、前記ビットストリームの最後に添付されることを特徴とする請求項5に記載のビットストリームの変更方法。
  7. 前記ファイルは、前記ビットストリームのスタートエンドに添付されることを特徴とする請求項6に記載のビットストリームの変更方法。
  8. 前記ファイルは、前記ビットストリームから分離されるとともに、該ビットストリームと関連付けられていることを特徴する請求項5に記載のビットストリームの変更方法。
  9. 前記取り外した選択されたコードの全てを、前記ビットストリームの最後に添付させるステップをさらに有する請求項1に記載のビットストリームの変更方法。
  10. 前記取り外した選択されたコードの全てを、前記1つ以上の取外しコードデータフィールド中に配置するステップをさらに有する請求項1に記載のビットストリームの変更方法。
  11. 情報信号を圧縮して前記ビットストリームを生成するステップをさらに有し、
    前記圧縮の量は、前記取り外した選択されたコードの全てが前記ビットストリーム内の取外しコードデータフィールド内に配置できるように、前記変更されるビットストリームのデータ量の予測値に基づくものであることを特徴する請求項1乃至10のいずれか1項に記載のビットストリームの変更方法。
  12. 前記変更されたビットストリームのビットレートが元のビットストリームに対して変わらないように、前記変更されたビットストリームにパディングビットを加えるステップをさらに有する請求項1乃至11のいずれか1項に記載のビットストリームの変更方法。
  13. 前記変更コードが含まれる前記ビットストリームの一部分又は複数の部分を定義するために、テンプレートを用いるステップをさらに有する請求項1乃至12のいずれか1項に記載のビットストリームの変更方法。
  14. 前記情報を表す前記デジタルコードは、前記情報の変換係数を表すコードであることを特徴する請求項1乃至13のいずれか1項に記載のビットストリームの変更方法。
  15. 前記係数は、DCT係数であることを特徴する請求項14に記載のビットストリームの変更方法。
  16. 前記DCTコードは、DC係数及びAC係数を含み、
    前記DC係数及びAC係数を表すコードの全てが前記ビットストリームの該部分から取り出され、
    前記ビットストリームの該部分に配置される前記変更コードは、DC係数を表すコードであることを特徴する請求項15に記載のビットストリームの変更方法。
  17. 前記ビットストリームの同じ部分から取り出されたコードは、グループコードで識別されるグループにグループ分けられることを特徴する請求項16に記載のビットストリームの変更方法。
  18. 前記ビットストリームの該部分は、少なくとも1つのDCTブロックであることを特徴する請求項17に記載のビットストリームの変更方法。
  19. 前記ビットストリームは、(1)AC係数を表すコードを取り除く技術及び(2)DC係数を表すコードを取り除く技術のうち少なくとも1つによって変更可能であり、
    前記DCコードを変更されたDCコードで置き換え、
    前記取り外した選択されたコードを(a)前記ビットストリームと関連付けて格納し、及び/又は(b)前記ビットストリーム内の1つ以上の取外しコードデータフィールド中に配置するものであり、
    さらに、前記技術の前記ビットストリーム内のビット数に及ぼす影響を評価し、該評価に応じて前記ビットストリームの変更を実行するための1つ以上の前記技術を選択するステップを有する請求項16、17又は18に記載のビットストリームの変更方法。
  20. 前記ビットストリームは、少なくともイントラエンコードされた(intra-encoded)画像を含むビデオビットストリームであり、
    前記イントラエンコードされた画像上で実行されることを特徴する請求項15乃至19のいずれか1項に記載のビットストリームの変更方法。
  21. 前記ビットストリームは、インターエンコードされた(inter-encoded)画像を含むものであり、
    前記インターエンコードされた画像上で実行されることを特徴する請求項20に記載のビットストリームの変更方法。
  22. 前記インターエンコードされた画像は、DC係数を表すDCコードを含み、
    さらに、前記DCコードの選択されたものを取り除くステップと、
    前記取り出されたものを前記ビットストリームと関連付けて格納するステップ及び/又は前記ビットストリーム内の1つ以上の取外しコードデータフィールド中に配置するステップと、
    前記取り外したコードを予め定めた値の変更コードで置換するステップとを有する請求項21に記載のビットストリームの変更方法。
  23. 前記インターエンコードされた画像内のDC係数を表す前記DCコードは、量子化された変更値を表し、
    前記予め定めた値は、ゼロより大きい最小変更量子値を表すことを特徴する請求項22に記載のビットストリームの変更方法。
  24. 前記予め定めた値は、正又は負数の1であることを特徴する請求項23に記載のビットストリームの変更方法。
  25. 前記インターエンコードされた画像は動きベクトルを表すコードを含み、
    さらに、前記変更コードが含まれる前記ビットストリームの部分と関連する前記動きベクトルを取り除くステップと、
    原動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換えるステップと、
    前記取り外した動きベクトルコードを前記ビットストリームの最後に添付させるステップ及び/又は前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド内に配置するステップとを有する請求項21乃至24のいずれか1項に記載のビットストリームの変更方法。
  26. 前記変更コードが含まれる前記ビットストリームの部分と画像中で隣接するインターエンコードされた画像の部分と関連する動きベクトルを取り除くステップと、
    前記関連する部分の元の動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換えるステップと、
    前記取り外した動きベクトルコードを前記ビットストリームの最後に添付させるステップ、及び/又は、前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド内に配置するステップとをさらに有する請求項25に記載のビットストリームの変更方法。
  27. 前記変更されるイントラエンコードされた画像のブロックを定義する第1のテンプレートと、前記インターエンコードされた画像の前記第1のテンプレートのブロックに対応するブロックを定義する第2のテンプレートとを提供するステップをさらに有し、
    前記インターエンコードされた画像に関連する動きベクトルは、ゼロに設定されることを特徴する請求項25又は26に記載のビットストリームの変更方法。
  28. 前記第2のテンプレートは、前記関連する動きベクトルがゼロに設定される前記ブロックを含むマクロブロックを定義することを特徴する請求項27に記載のビットストリームの変更方法。
  29. 前記第2のテンプレートは、前記マクロブロックと境界を接する更なるマクロブロックを定義するものであり、
    前記更なるマクロブロックに関連する動きベクトルは、ゼロに設定されることを特徴する請求項28に記載のビットストリームの変更方法。
  30. 前記ビットストリームは、エンコーディングのタイプを示すタイプコードを持ち、フィールドタイプ又はフレームタイプとしてエンコード可能なDCTブロックを備え、
    さらに、フィールドタイプを示す前記タイプコードで選択されたものを取り外すステップと、
    前記取り外したタイプコードをフレームタイプを示す変更タイプコードで置き換えるステップと、
    前記取り外したタイプコードを前記ビットストリームと関連付けて格納する、及び/又は該取り外したタイプコードをビットストリーム内の1つ以上の取外しコードデータフィールド内に配置するステップとを有する請求項20乃至29のいずれか1項に記載のビットストリームの変更方法。
  31. 前記ビットストリームは、MPEG2ビットストリームであることを特徴する請求項15乃至30のいずれか1項に記載のビットストリームの変更方法。
  32. 前記変更コードが含まれる前記ビットストリームの部分を示すデータを提供するステップをさらに有する請求項1乃至31のいずれか1項に記載のビットストリームの変更方法。
  33. 前記ビットストリームは、補助データフィールドを含み、
    前記補助データフィールドから取り出されたコードのデータフィールドを識別するデータを前記ビットストリーム内に提供するステップをさらに有する請求項31又は32に記載のビットストリームの変更方法。
  34. 前記取り外した選択されたコードを前記ビットストリームと関連させて格納する前に暗号化し、及び/又は、該取り外した選択されたコードを前記取外しコードデータフィールド内に配置するステップをさらに有する請求項1乃至33のいずれか1項に記載のビットストリームの変更方法。
  35. 元のビットストリームを復元するビットストリームの復元方法において、
    前記元のコードが取り出され記録されたビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取るステップと、
    前記ビットストリームの構文解析をするステップと、
    記録装置から元のコードを読み出すステップと、
    前記変更コードを元のコードで置き換えるステップとを有するビットストリームの復元方法。
  36. 元のビットストリームを復元するビットストリームの復元方法において、
    前記ビットストリームの選択された部分から元のコードを取り外して前記ビットストリームの変更ユーザデータ部に配置し、前記選択された部分に変更コードを持つ変更されたビットストリームを受け取るステップと、
    前記ビットストリームを構文解析するステップと、
    前記元のコードを格納するステップと、
    前記変更コードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
  37. 元のビットストリームを復元するビットストリームの復元方法において、
    前記ビットストリームの選択された部分から元のコードを取り外して、前記ビットストリームの変更ユーザデータ部に配置し、前記ビットストリームの最後に添付させ、前記選択された部分に変更コードを持つ変更されたビットストリームを受け取るステップと、
    前記ビットストリームを構文解析するステップと、
    前記元のコードを格納するステップと、
    前記変更コードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
  38. 前記元のコードは、暗号化されており、
    前記変更コードを復号化された前記元のコードで置き換える前に、前記暗号化された元のコードを復号化するステップをさらに有する請求項36又は37に記載のビットストリームの復元方法。
  39. 前記変更コードが含まれる前記ビットストリームの部分を定義して置換するコードを選択するためにテンプレートを使用するステップをさらに有する請求項35、36、37又は38に記載のビットストリームの復元方法。
  40. 前記変更は、前記情報信号により表される情報において視認可能な効果を生ずることを特徴する請求項1乃至34のいずれか1項に記載のビットストリームの変更方法。
  41. 請求項1乃至34のいずれか1項又は請求項40に記載のビットストリームの変更方法、又は請求項35乃至39のいずれか1項に記載のビットストリームの復元方法を実行するように構成された装置。
  42. 適したプロセッサで実行された場合、請求項1乃至34のいずれか1項又は請求項40に記載のビットストリームの変更方法、又は請求項35乃至39のいずれか1項に記載のビットストリームの復元方法を実行するように構成されたコンピュータプログラム。
  43. 請求項42に記載のコンピュータプログラムを記録する媒体。
  44. 当該媒体は、記録媒体であることを特徴する請求項43に記載の媒体。
  45. 当該媒体は、通信チャンネルであることを特徴する請求項43に記載の媒体。
  46. ビットストリームの選択された部分から元のコードが取り出され、該ビットストリームの最後に添付されている、前記選択された部分に変更されたコードを持つ、変更されたビットストリーム。
  47. ビットストリームの選択された部分から元のコードが取り出され、該ビットストリーム内の変更ユーザデータ部に配置され、該選択された部分に前記変更コードを持つ、変更されたビットストリーム。
  48. ビットストリームの選択された部分から元のコードが取り出され、その一部が前記ビットストリーム内の変更ユーザデータ部に配置され、他の部分が前記ビットストリームの最後に添付され、前記選択された部分に変更コードを持つ、変更されたビットストリーム。
  49. 情報を表すデジタルコードを含むビットストリームを変更するビットストリームの変更装置において、
    前記情報内で視認可能な変更を表す少なくとも1つの変更コードが含まれる前記ビットストリームの一部分を占有する少なくとも1つのデジタルコードを選択する選択ステージと、
    前記ビットストリームの該一部分から前記選択されたデジタルコードを取り除く取外しステージと、
    前記ビットストリームの該一部分に前記選択取り出されたコードの代わりに前記変更コードを代入する変更コード配置ステージとを備え、
    前記ビットストリームから取り外した前記選択されたコードのビット数は前記ビットストリームに挿入される該変更コードのビット数に等しいか大きく、
    さらに、(1)前記取り外した選択されたコードを前記ビットストリームと関連付けて格納する及び/又は(2)前記取り外した選択されたコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置する取外しコード配置ステージを備えるビットストリームの変更装置。
  50. 前記取外しコード配置ステージは、前記選択され取り出されたコードを前記取外しコードデータフィールドに再分配し、前記取り外し選択されたコードを好ましい順序で前記ビットストリームと関連付けて格納するものであり、
    前記好ましい順序は、(1)前記取外しコードデータフィールドに格納し、(2)前記ビットストリームと関連付けて前記取り外し選択されたコードを格納するものであることを特徴する請求項49に記載のビットストリームの変更装置。
  51. 前記取外しコード配置ステージは、前記取り外し選択されたコードの一部分を前記ビットストリームと関連付けて格納し、前記取り外し選択されたコードの他の部分を前記1つ以上の取外しコードデータフィールドに配置することを特徴する請求項49又は50に記載のビットストリームの変更装置。
  52. 前記取外しコード配置ステージは、(1)前記取り外し選択されたコードを前記ビットストリームと関連付けて前記ビットストリームの最後に、前記取り外し選択されたコードを添付させることにより格納するよう構成されていることを特徴する請求項49、50又は51に記載のビットストリームの変更装置。
  53. 前記取外しコード配置ステージは、(1)前記取り外し選択されたコードを前記ビットストリームと関連付けてファイルに格納するよう構成されていることを特徴する請求項49、50又は51に記載のビットストリームの変更装置。
  54. 前記取外しコード配置ステージは、前記ファイルを前記ビットストリームの最後に添付させるよう構成されていることを特徴する請求項53に記載のビットストリームの変更装置。
  55. 前記取外しコード配置ステージは、前記ファイルを前記ビットストリームとは分離し、該ビットストリームと関連付けて格納するよう構成されることを特徴する請求項53に記載のビットストリームの変更装置。
  56. 前記取外しコード配置ステージは、前記取り外し選択されたコードの全てを前記ビットストリームの最後に添付させるよう構成されることを特徴する請求項49に記載のビットストリームの変更装置。
  57. 前記取外しコード配置ステージは、前記取り外し選択されたコードの全てを該1つ以上の取外しコードデータフィールドに配置するよう構成されることを特徴する請求項49に記載のビットストリームの変更装置。
  58. 前記デジタルコードは、前記情報のDCT係数を表すことを特徴する請求項49乃至57のいずれか1項に記載のビットストリームの変更装置。
  59. 前記DCT係数はDC及びAC係数を含み、
    前記取外しステージは、前記ビットストリームの該部分から前記DC及びAC係数を表す全てのコードを取り外し可能であり、
    前記変更コード配置ステージは、前記ビットストリームの該部分にDC係数を表す前記変更コードを配置するよう構成されることを特徴する請求項58に記載のビットストリームの変更装置。
  60. 前記取外しステージは、(1)AC係数を表すコードを取り除く技術及び(2)DC係数を表す係数を取り除く技術の少なくとも1つを実行可能であり、
    前記変更コード配置ステージは、前記取り外したDCコードを変更されたDCコードで置換可能であり、
    前記取外しコード配置ステージは、前記取り外し選択されたコードを前記ビットストリームと関連付けて格納可能であり、及び/又は、該取り外し選択されたコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置可能であり、
    さらに、前記ビットストリームにおけるビット数に対する前記技術の効果を評価し、該評価に基づき前記技術の1つ以上を選択操作するステージを備える請求項58又は59に記載のビットストリームの変更装置。
  61. 前記取外しコード配置ステージは、前記取り外し選択されたコードを前記ビットストリームの最後に添付させ、及び/又は、該取り外し選択されたコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置することを特徴する請求項60に記載のビットストリームの変更装置。
  62. 前記ビットストリームは、少なくともイントラエンコードされた画像を有し、
    当該ビットストリームの変更装置は、前記イントラエンコードされた画像を変更するよう構成されていることを特徴する請求項59、60又は61に記載のビットストリームの変更装置。
  63. 前記ビットストリームは、インターエンコードされた画像を有し、
    当該ビットストリームの変更装置は、前記インターエンコードされた画像を付加的に変更するよう構成されていることを特徴する請求項62に記載のビットストリームの変更装置。
  64. 前記インターエンコードされた画像は、DC係数を表すコードを含み、
    さらに、前記コードのうち選択されたものを取り外し操作するステージと、
    前記選択されたものを前記ビットストリームと関連付けて格納し、及び/又は、該選択されたものを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置する配置ステージと、
    前記取り外したコードを予め定めた値の変更コードで置換する置換ステージとを備える請求項63に記載のビットストリームの変更装置。
  65. 前記インターエンコードされた画像内のDC係数を表す前記コードは、量子化された変更値を表し、
    前記予め定めた値は、ゼロより大きい最小変更量子の値を表すことを特徴する請求項64に記載のビットストリームの変更装置。
  66. 前記予め定めた値は、プラス又はマイナス1であることを特徴する請求項65に記載のビットストリームの変更装置。
  67. 前記インターエンコードされた画像は、動きベクトルを表すコードを含んでおり、
    前記変更コードが含まれるビットストリームの部分と関連する前記動きベクトルコードを取り外し、元の動きベクトルコードをゼロ動きベクトルを表す動きベクトル変更コードで置換し、該取り外した動きベクトルコードをビットストリームと関連付けて格納し及び/又は取り外したコードをビットストリーム内の取外しコードデータフィールド中に配置する動きベクトルコード取外しステージをさらに備える請求項63乃至66のいずれか1項に記載のビットストリームの変更装置。
  68. 前記動きベクトルコード取外しステージは、前記変更コードが含まれるビットストリームの部分と画面内で隣接するイントラエンコードされた画像の部分と関連する動きベクトルコードを取り外し、該関連する部分の元の動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換え、該取り外した動きベクトルコードを前記ビットストリームと関連付けて格納し及び/又は前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド中に配置することを特徴する請求項67に記載のビットストリームの変更装置。
  69. 前記ビットストリームは、エンコーディングのタイプを示すタイプコードにより、フィールドタイプ又はフレームタイプとしてエンコードされるDCTブロックを含み、
    さらに、フィールドタイプを示す前記タイプコードの中から選択されたものを取り外す取外しステージと、
    前記取り外したタイプコードをフレームタイプを示す変更タイプコードで置き換える置換えステージと、
    前記取り外したタイプコードを前記ビットストリームと関連付けて格納し及び/又は該取り外したタイプコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置する取外しコード配置ステージとを備える請求項58乃至68のいずれか1項に記載のビットストリームの変更装置。
  70. 元のビットストリームを復元するビットストリームの復元装置において、
    元のコードが取り出され記録された、ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
    前記ビットストリームを構文解析する構文解析ステージと、
    前記元のコードを格納する記録部と、
    前記変更コードを前記元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
  71. 元のビットストリームを復元するビットストリームの復元装置において、
    元のコードが取り出されビットストリームの変更ユーザデータ部に格納されている、前記ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
    前記ビットストリームを構文解析する構文解析ステージと、
    前記元のコードを格納する記録部と、
    前記変更コードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
  72. 元のビットストリームを復元するビットストリームの復元装置において、
    元のコードが取り出されビットストリームの変更ユーザデータ部に配置され、前記ビットストリームの最後に添付されている、前記ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
    前記ビットストリームを構文解析する構文解析ステージと、
    前記元のコードを格納する記録部と、
    前記変更コードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
  73. 当該ビットストリームの復元装置は、ビットストリームを使う装置であり、
    前記元のコードが暗号化されており、
    さらに、前記暗号化された元のコードを復号化した後、前記変更コードを該復号化された元のコードで置き換える復号化ステージを備える請求項71又は72に記載のビットストリームの復元装置。
  74. 変更コードと少なくとも1つの復号鍵を含むビットストリームの部分を定義するテンプレートを記録するデータキャリア。
  75. 前記情報信号は、ビデオデータ、オーディオデータ、ビジュアルデータ、及びこれら以外のデータのうち1つ又はそれ以上を含むことを特徴する請求項1乃至34のいずれか1項又は請求項40に記載のビットストリームの変更方法、請求項35乃至39いずれか1項に記載のビットストリームの復元方法、請求項41に記載の装置、請求項42に記載のコンピュータプログラム、請求項43乃至45のいずれか1項に記載の媒体、請求項46乃至48のいずれか1項に記載の変更されたビットストリーム、請求項49乃至69のいずれか1項に記載ビットストリームの変更装置、請求項70乃至73のいずれか1項に記載のビットストリームの復元装置、又は請求項74に記載のデータキャリア。
  76. イントラエンコードされた画像及びインターエンコードされた画像を持つビデオシーケンスに可視的に透かし模様を埋め込む透かし模様埋込み方法において、
    前記画像が前記ビデオの変換係数のブロックを表すデータを含み、動きベクトルが前記インターエンコードされた画像のブロックの少なくともどれかと関連するものであり、
    前記ビデオに可視的に透かし模様の埋込みをするために変更される前記ブロックを定義する少なくとも1つのテンプレートを提供するステップと、
    前記ビデオに可視的に透かし模様の埋込みをするために少なくともイントラエンコードされた画像において前記テンプレートにより定義されるブロック内の変換係数のうち少なくともいずれかを変更するステップと、
    前記テンプレートにより定義されたインターエンコードされた画像のブロックと関連し、前記イントラエンコードされた画像の変更されたブロックに対応する動きベクトルをゼロに設定するステップと有する透かし模様埋込み方法。
  77. 変更されるイントラエンコードされた画像ブロックを定義する第1のテンプレートと、関連する動きベクトルがゼロに設定される前記第1のテンプレートのブロックに対応するインターエンコードされた画像ブロックを定義する第2のテンプレートとを提供するステップを有する請求項76に記載の透かし模様埋込み方法。
  78. 前記第2のテンプレートは、前記関連する動きベクトルがゼロに設定されるブロックを含むマクロブロックを定義することを特徴する請求項77に記載の透かし模様埋込み方法。
  79. 前記第2のテンプレートは、前記マクロブロックと境界を接し、関連する動きベクトルがゼロに設定される更なるマクロブロックを定義することを特徴する請求項78に記載の透かし模様埋込み方法。
  80. 前記ビデオシーケンスは、ブロックと動きベクトルを表すデジタルコードを含むビットストリームにより表されており、
    さらに、変更されるブロックとゼロに設定される動きベクトルを表すデジタルコードを選択するステップと、
    前記選択されたデジタルコードを前記ビットストリームから取り除くステップと、
    前記変更されたコードを、前記選択されたコードの代わりに、前記ビットストリームに配置するステップと、
    (1)前記取り外したコードを前記ビットストリームの最後に添付させるステップ及び(2)前記取り外したコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置するステップのうち少なくとも一方のステップとを有する請求項76乃至79のいずれか1項に記載の透かし模様埋込み方法。
  81. 前記取り外したコードを暗号化するステップをさらに有する請求項80に記載の透かし模様埋込み方法。
  82. 請求項76乃至81のいずれか1項に記載の透かし模様埋込み方法を実行するように構成された装置。
  83. 適したプロセッサで実行された場合、請求項76乃至82のいずれか1項に記載の透かし模様埋込み方法を実施するコンピュータプログラム。
  84. 請求項83に記載のコンピュータプログラムを記録したデータキャリア。
  85. イントラエンコードされた画像及びインターエンコードされた画像を持つビデオシーケンスに可視的に透かし模様を埋め込む透かし模様埋込み装置において、
    前記画像が前記ビデオの変換係数のブロック表すデータを含み、動きベクトルが前記インターエンコードされた画像のブロックの少なくともどれかと関連するものであり、
    前記ビデオに可視的に透かし模様を埋め込むよう変更されるブロックを定義する少なくとも1つのテンプレートを格納する格納手段と、
    前記ビデオに可視的に透かし模様埋込みをするため、少なくとも前記インターエンコードされた画像内において、前記テンプレートにより定義されたブロックの変換係数のうち少なくともどれかを変更するよう構成された変更手段と、
    前記テンプレートにより定義されるインターエンコードされた画像のブロックと関連し、イントラエンコードされた画像の変更されたブロックに対応する動きベクトルをゼロに設定するよう構成された手段とを備える透かし模様埋込み装置。
  86. 前記格納手段は、変更されるイントラエンコードされた画像ブロックを定義する第1のテンプレートと、該第1のテンプレートの画像ブロックに対応し、それに関連する動きベクトルがゼロに設定されるインターエンコードされた画像ブロックを定義する第2のテンプレートとを格納することを特徴する請求項85に記載の透かし模様埋込み装置。
  87. 前記第2のテンプレートは、関連する動きベクトルがゼロに設定されるブロックを含むマクロブロックを定義することを特徴する請求項86に記載の透かし模様埋込み装置。
  88. 前記第2のテンプレートは、前記マクロブロックと境界を接し、関連する動きベクトルがゼロに設定される更なるマクロブロックを定義することを特徴する請求項87に記載の透かし模様埋込み装置。
  89. 前記ビデオシーケンスは、ブロック及び動きベクトルを表すデジタルコードを含むビットストリームにより表され、
    さらに、変更されるブロックとゼロに設定される動きベクトルを表すデジタルコードを選択する手段と、
    前記選択されたデジタルコードを前記ビットストリームから取り外し変更されたコードを、前記選択されたコードの代わりに前記ビットストリームに配置する手段と、
    (1)取り外したコードを前記ビットストリームの最後に添付させ及び/又は(2)前記取り外したコードを前記ビットストリーム内の1つ以上の取外しコードデータフィールドに配置する手段とを備える請求項85乃至88のいずれか1項に記載の透かし模様埋込み装置。
  90. 可視的に透かし模様を埋め込まれることで変更されたビットストリームを復元するビットストリームの復元方法において、
    前記透かし模様は、請求項80又は81に記載の透かし模様埋込み方法により元のビットストリームに埋め込まれたものであり、
    前記変更されたビットストリームは、変更されたブロック及びゼロに設定された動きベクトルを表す変更されたコードを該ビットストリームの選択された部分に備え、
    元のコードは前記選択された部分から取り外され、前記ビットストリームの変更ユーザデータ部分に置かれるか及び/又は該ビットストリームの終端に添付されるものであり、
    前記ビットストリームを構文解析するステップと、
    前記元のコードを格納するステップと、
    前記変更されたコードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
  91. 前記元のコードは、暗号化されており、
    前記暗号化された元のコードを復号化した後、前記変更コードを前記復号化された元のコードで置き換えるステップをさらに有する請求項90に記載のビットストリームの復元方法。
  92. 元のビットストリームを復元するビットストリームの復元装置において、
    請求項5又は6に記載のビットストリームの変更方法によって可視的に透かし模様が埋め込まれた変更されたビットストリームを受け取る受取りステージを備え、
    該変更されたビットストリームからは元のコードが取り出され該ビットストリームの変更ユーザデータ部に配置され及び/又は該ビットストリームの最後に添付されており、該ビットストリームの選択された部分に変更されたブロック及びゼロに設定された動きベクトルを表す変更されたコードが代入されているものであり、
    さらに、前記ビットストリームを構文解析する構文解析ステージと、
    前記元のコードを格納する記録部と、
    前記変更されたコードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
  93. 前記元のコードは、暗号化されており、
    前記暗号化された元のコードを復号化した後、前記変更されたコードを前記復号化された元のコードで置き換えるステージをさらに備える請求項92に記載のビットストリームの復元装置。
  94. 請求項90又は91に記載のビットストリームの復元方法を実行するよう構成された装置。
  95. 適したデータプロセッサで実行された場合、請求項90又は91に記載のビットストリームの復元方法を実施するコンピュータプログラム。
  96. 請求項95に記載のコンピュータプログラムを記録したデータキャリア。
  97. 添付された図面を参照して実質的に前述されたビットストリームを変更する方法。
  98. 添付された図面を参照して実質的に前述されたビットストリームを変更する装置。
  99. 添付された図面を参照して実質的に前述された元のビットストリームを復元する方法。
  100. 添付された図面を参照して実質的に前述された元のビットストリームを復元する装置。
JP2003567096A 2002-02-06 2003-02-05 ビットストリームの変更方法及び装置 Expired - Fee Related JP4564753B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB0202737A GB0202737D0 (en) 2002-02-06 2002-02-06 Modifying bitstreams
GB0215403A GB0215403D0 (en) 2002-02-06 2002-07-03 Modifying bitstreams
GB0215400A GB0215400D0 (en) 2002-02-06 2002-07-03 Modifying bitstreams
PCT/GB2003/000512 WO2003067886A1 (en) 2002-02-06 2003-02-05 Modifying bitstreams

Publications (3)

Publication Number Publication Date
JP2005517362A true JP2005517362A (ja) 2005-06-09
JP2005517362A5 JP2005517362A5 (ja) 2005-12-22
JP4564753B2 JP4564753B2 (ja) 2010-10-20

Family

ID=27738825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003567096A Expired - Fee Related JP4564753B2 (ja) 2002-02-06 2003-02-05 ビットストリームの変更方法及び装置

Country Status (5)

Country Link
US (1) US8238435B2 (ja)
EP (1) EP1472874A1 (ja)
JP (1) JP4564753B2 (ja)
CN (1) CN1270536C (ja)
WO (1) WO2003067886A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009530903A (ja) * 2006-03-17 2009-08-27 トムソン ライセンシング ディジタル透かしや他のデータを後に挿入するためにコンテンツを処理するシステム及び方法
JP2010118936A (ja) * 2008-11-13 2010-05-27 Mitsubishi Electric Corp 可視透かし埋め込み装置及び画像復元装置
JP2013141253A (ja) * 2011-12-29 2013-07-18 Thomson Licensing ビットストリームを選択的にスクランブルする方法
KR20190133363A (ko) * 2018-05-23 2019-12-03 세종대학교산학협력단 워터마크 기반의 이미지 무결성 검증 방법 및 장치

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2840147B1 (fr) * 2002-05-24 2004-08-27 France Telecom Procedes de brouillage et de debrouillage de signal video, systeme, decodeur, serveur de diffusion, support de donnees pour la mise en oeuvre de ces procedes
US20050047627A1 (en) * 2003-09-02 2005-03-03 Ustra Foundation Method and apparatus for encoding and decoding digital representations of works
US20070223693A1 (en) * 2004-06-08 2007-09-27 Koninklijke Philips Electronics, N.V. Compensating Watermark Irregularities Caused By Moved Objects
MX2007011286A (es) * 2005-03-14 2007-11-15 Nielsen Media Res Inc Aparatos y metodos de codificacion de dominios comprimidos para su utilizacion con senales de medios.
US7599515B2 (en) * 2005-03-17 2009-10-06 Interdigital Technology Corporation Wireless communication method and apparatus for generating, watermarking and securely transmitting content
GB2425906B (en) * 2005-05-05 2011-04-06 Sony Uk Ltd Data processing apparatus and method
ATE423362T1 (de) * 2005-07-14 2009-03-15 Koninkl Philips Electronics Nv Verfahren zur dateneinbettung
US7940926B2 (en) * 2006-06-08 2011-05-10 Novell, Inc. Cooperative encoding of data by pluralities of parties
US8102863B1 (en) 2006-06-27 2012-01-24 Qurio Holdings, Inc. High-speed WAN to wireless LAN gateway
US8615778B1 (en) 2006-09-28 2013-12-24 Qurio Holdings, Inc. Personalized broadcast system
US7983440B1 (en) 2006-11-02 2011-07-19 Qurio Holdings, Inc. Selection of I-frames for client-side watermarking
US7738676B1 (en) 2006-11-02 2010-06-15 Qurio Holdings, Inc. Client-side watermarking using hybrid I-frames
US7802306B1 (en) 2006-11-30 2010-09-21 Qurio Holdings, Inc. Multiple watermarks for digital rights management (DRM) and content tracking
ES2321363B2 (es) * 2006-12-14 2010-01-12 Tredess 2010, S.L. Sistema de marcado de agua digital en particular de un sistema de marcado de aguadigital para la deteccion y localizacion de alteraciones en imagenes digitales.
US8000474B1 (en) 2006-12-15 2011-08-16 Quiro Holdings, Inc. Client-side protection of broadcast or multicast content for non-real-time playback
US8135947B1 (en) 2007-03-21 2012-03-13 Qurio Holdings, Inc. Interconnect device to enable compliance with rights management restrictions
US9191605B1 (en) 2007-03-26 2015-11-17 Qurio Holdings, Inc. Remote monitoring of media content that is associated with rights management restrictions
US7895442B1 (en) * 2007-06-18 2011-02-22 Qurio Holdings, Inc. Interconnect device to enable compliance with rights management restrictions
WO2009033248A1 (en) * 2007-09-10 2009-03-19 Novell, Inc. A method for efficient thread usage for hierarchically structured tasks
US8856313B2 (en) * 2007-11-13 2014-10-07 International Business Machines Corporation Systems and methods for using provenance information for data retention in stream-processing
WO2011001204A1 (en) 2009-06-29 2011-01-06 Nds Limited Content protection message extraction
US8817884B2 (en) * 2009-11-20 2014-08-26 Texas Instruments Incorporated Techniques for perceptual encoding of video frames
US8630412B2 (en) * 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
CN102014266A (zh) * 2010-12-01 2011-04-13 华中科技大学 一种基于数字水印的高清视频加密传输方法及系统
CN104160701B (zh) * 2012-01-27 2017-06-30 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、及图像解码装置
EP2642744A1 (en) * 2012-03-19 2013-09-25 Nagravision S.A. Method and system for scrambling and descrambling a digital image
US9081953B2 (en) 2012-07-17 2015-07-14 Oracle International Corporation Defense against search engine tracking
US20160050069A1 (en) * 2013-03-28 2016-02-18 Nick Pelis Method and system for media path security
US9965601B2 (en) * 2016-03-29 2018-05-08 Adobe Systems Incorporated Editing watermarked assets

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08256321A (ja) * 1995-01-17 1996-10-01 Nippon Telegr & Teleph Corp <Ntt> 画像データ変換装置およびその逆変換装置
JPH09233455A (ja) * 1996-02-23 1997-09-05 Nippon Telegr & Teleph Corp <Ntt> 画像スクランブル処理システムおよび方法
WO2001006455A1 (en) * 1999-07-15 2001-01-25 Koninklijke Philips Electronics N.V. Embedding auxiliary data in an information signal

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0563996A (ja) * 1991-09-02 1993-03-12 Ricoh Co Ltd 画像処理装置
US6229924B1 (en) 1996-05-16 2001-05-08 Digimarc Corporation Method and apparatus for watermarking video images
US5809139A (en) * 1996-09-13 1998-09-15 Vivo Software, Inc. Watermarking method and apparatus for compressed digital video
US6037984A (en) * 1997-12-24 2000-03-14 Sarnoff Corporation Method and apparatus for embedding a watermark into a digital image or image sequence
US6327691B1 (en) * 1999-02-12 2001-12-04 Sony Corporation System and method for computing and encoding error detection sequences
US6687384B1 (en) * 2000-03-27 2004-02-03 Sarnoff Corporation Method and apparatus for embedding data in encoded digital bitstreams

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08256321A (ja) * 1995-01-17 1996-10-01 Nippon Telegr & Teleph Corp <Ntt> 画像データ変換装置およびその逆変換装置
JPH09233455A (ja) * 1996-02-23 1997-09-05 Nippon Telegr & Teleph Corp <Ntt> 画像スクランブル処理システムおよび方法
WO2001006455A1 (en) * 1999-07-15 2001-01-25 Koninklijke Philips Electronics N.V. Embedding auxiliary data in an information signal

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009530903A (ja) * 2006-03-17 2009-08-27 トムソン ライセンシング ディジタル透かしや他のデータを後に挿入するためにコンテンツを処理するシステム及び方法
JP2010118936A (ja) * 2008-11-13 2010-05-27 Mitsubishi Electric Corp 可視透かし埋め込み装置及び画像復元装置
JP2013141253A (ja) * 2011-12-29 2013-07-18 Thomson Licensing ビットストリームを選択的にスクランブルする方法
KR20190133363A (ko) * 2018-05-23 2019-12-03 세종대학교산학협력단 워터마크 기반의 이미지 무결성 검증 방법 및 장치
KR102637177B1 (ko) 2018-05-23 2024-02-14 세종대학교산학협력단 워터마크 기반의 이미지 무결성 검증 방법 및 장치

Also Published As

Publication number Publication date
EP1472874A1 (en) 2004-11-03
CN1515117A (zh) 2004-07-21
JP4564753B2 (ja) 2010-10-20
US8238435B2 (en) 2012-08-07
US20060050880A1 (en) 2006-03-09
WO2003067886A1 (en) 2003-08-14
CN1270536C (zh) 2006-08-16

Similar Documents

Publication Publication Date Title
JP4564753B2 (ja) ビットストリームの変更方法及び装置
EP0928110B1 (en) Image signal processing for electronic watermarking
US6810131B2 (en) Information processing method and apparatus
US8995711B2 (en) Efficient watermarking approaches of compressed media
US7779271B2 (en) Watermark embedding
US6061451A (en) Apparatus and method for receiving and decrypting encrypted data and protecting decrypted data from illegal use
JP4617049B2 (ja) エンコードされたデジタルビットストリームでデータを埋め込むための方法及び装置
JP4035257B2 (ja) 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
US20060133477A1 (en) Combined video decoder and watermark creator
US20070189377A1 (en) Data processing apparatus
JP2008235999A (ja) コンテンツ暗号化装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
JP4644851B2 (ja) ビデオシーケンス供給方法、ビデオストリーム送信装置、ビデオストリーム受信装置、およびビデオストリーム伝送システム
JP4023324B2 (ja) 透かし埋め込み及び画像圧縮部
JP2005535242A (ja) Mpeg−4タイプの音響映像マルチメディアコンテンツのスクランブル装置
JP3601566B2 (ja) 情報多重化方法および著作権保護システム
US10958989B2 (en) Framework for embedding data in encoded video
JP4018305B2 (ja) 画像処理方法及びその装置と記憶媒体
JP4296034B2 (ja) 情報埋め込み方法、情報処理装置
JPH09233455A (ja) 画像スクランブル処理システムおよび方法
JP2006287502A (ja) スクランブル映像配信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071023

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080303

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080324

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080423

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080509

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090821

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091028

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: 20100720

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: 20100802

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees