(57)【特許請求の範囲】
【請求項１】
データを符号化するデータ処理装置であって、
第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化手段と、
前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を作成する作成手段と、
前記復号情報を、前記第３のデータに埋め込み、埋め込みデータを生成する埋め込み手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記符号化手段は、前記第１のデータに、前記第２のデータを埋め込むことにより、前記第１および第２のデータを符号化する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記符号化手段は、前記第１のデータの相関性を利用して、前記第３のデータを、前記第１および第２のデータに復号することができるように、前記第１のデータに、前記第２のデータを埋め込む
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記符号化手段は、前記第１および第２のデータを、所定の単位ごとに異なる符号化方法で符号化する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記復号情報は、前記第３のデータを、前記第１および第２のデータに復号する処理をコンピュータに行わせるプログラムである
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記埋め込み手段は、前記第１および第２のデータを提示するのに必要な提示情報も、前記第３のデータに埋め込む
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
前記埋め込み手段は、前記第３のデータの相関性を利用して、前記符号化データを、前記第３のデータおよび復号情報に復号することができるように、前記第３のデータに、前記復号情報を埋め込む
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項８】
前記埋め込み手段は、
前記第１のデータを、所定の符号化ルールにしたがって符号化し、
前記第２のデータに基づき、前記符号化ルールを破壊することにより、前記第１のデータに、前記第２のデータを埋め込む
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項９】
データを符号化するデータ処理方法であって、
第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化ステップと、
前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を作成する作成ステップと
前記復号情報を、前記第３のデータに埋め込み、埋め込みデータを生成する埋め込みステップと
を備えることを特徴とするデータ処理方法。
【請求項１０】
データを符号化するデータ処理を、コンピュータに行わせるプログラムであって、
第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化ステップと、
前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を作成する作成ステップと、
前記復号情報を、前記第３のデータに埋め込み、埋め込みデータを生成する埋め込みステップと
を備えることを特徴とするプログラム。
【請求項１１】
データを符号化するデータ処理を、コンピュータに行わせるプログラムが記録されているプログラム記録媒体であって、
第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化ステップと、
前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を作成する作成ステップと、
前記復号情報を、前記第３のデータに埋め込み、埋め込みデータを生成する埋め込みステップと
を備えるプログラムが記録されている
ことを特徴とするプログラム記録媒体。
【請求項１２】
第１のデータと第２のデータを符号化することにより、第３のデータを生成し、前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を、前記第３のデータに埋め込むことにより生成された埋め込みデータを処理するデータ処理装置であって、
前記埋め込みデータを、前記第３のデータと、そこに埋め込まれている前記復号情報に復号する第１の復号手段と、
前記第３のデータを、前記復号情報にしたがって、前記第１および第２のデータに復号する第２の復号手段と
を備えることを特徴とするデータ処理装置。
【請求項１３】
前記第２の復号手段は、前記復号情報にしたがって、前記第３のデータを、所定の単位ごとに異なる復号方法で、前記第１および第２のデータに復号する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１４】
前記復号情報は、前記第３のデータを、前記第１および第２のデータに復号する処理をコンピュータに行わせるプログラムであり、
前記第２の復号手段は、前記プログラムを実行することにより、前記第３のデータを、前記第１および第２のデータに復号する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１５】
前記埋め込みデータには、前記第１および第２のデータを提示するのに必要な提示情報も埋め込まれており、
前記第１の復号手段は、前記提示情報も復号し、
前記提示情報にしたがって、前記第１および第２のデータを提示する提示手段をさらに備える
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１６】
前記第３のデータは、前記第１のデータに、前記第２のデータを埋め込んだものである
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１７】
前記第２の復号手段は、前記復号情報に基づき、前記第１のデータの相関性を利用して、前記第３のデータを、前記第１のデータと、その第１のデータに埋め込まれている前記第２のデータに復号する
ことを特徴とする請求項１６に記載のデータ処理装置。
【請求項１８】
前記第１の復号手段は、前記第３のデータの相関性を利用して、前記埋め込みデータを、前記第３のデータと、その第３のデータに埋め込まれている前記復号情報に復号する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１９】
前記第３のデータは、前記第１のデータを、所定の符号化ルールにしたがって符号化するとともに、前記第２のデータに基づき、前記符号化ルールを破壊することによって、前記第１のデータに、前記第２のデータを埋め込むことにより得られたものであり、
前記第１の復号手段は、
前記第１のデータを、前記符号化ルールにしたがって符号化されたデータに復元することにより、前記第１および第２のデータを復号する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項２０】
第１のデータと第２のデータを符号化することにより、第３のデータを生成し、前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を、前記第３のデータに埋め込むことにより生成された埋め込みデータを処理するデータ処理方法であって、
前記埋め込みデータを、前記第３のデータと、そこに埋め込まれている前記復号情報に復号する第１の復号ステップと、
前記第３のデータを、前記復号情報にしたがって、前記第１および第２のデータに復号する第２の復号ステップと
を備えることを特徴とするデータ処理方法。
【請求項２１】
第１のデータと第２のデータを符号化することにより、第３のデータを生成し、前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を、前記第３のデータに埋め込むことにより生成された埋め込みデータを処理するデータ処理を、コンピュータに行わせるプログラムであって、
前記埋め込みデータを、前記第３のデータと、そこに埋め込まれている前記復号情報に復号する第１の復号ステップと、
前記第３のデータを、前記復号情報にしたがって、前記第１および第２のデータに復号する第２の復号ステップと
を備えることを特徴とするプログラム。
【請求項２２】
第１のデータと第２のデータを符号化することにより、第３のデータを生成し、前記第３のデータを、前記第１および第２のデータに復号するのに必要な復号情報を、前記第３のデータに埋め込むことにより生成された埋め込みデータを処理するデータ処理を、コンピュータに行わせるプログラムが記録されているプログラム記録媒体であって、
前記埋め込みデータを、前記第３のデータと、そこに埋め込まれている前記復号情報に復号する第１の復号ステップと、
前記第３のデータを、前記復号情報にしたがって、前記第１および第２のデータに復号する第２の復号ステップと
を備えるプログラムが記録されている
ことを特徴とするプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体に関し、特に、例えば、広告情報等の特定の情報を、必ずユーザに提示することができるようにするデータ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体に関する。
【０００２】
【従来の技術】
例えば、インターネットにおいては、WWW(World Wide Web)システムが構築されており、ユーザは、例えば、WWWクライアント（例えば、ブラウザ）を用いることによって、WWWサーバから、各種の情報を、いわゆるWebページの形で、迅速に取得することができる。
【０００３】
【発明が解決しようとする課題】
ところで、Webページは、広告を行うための手段としても注目されており、最近のWWWサーバにおいては、本来の情報の他、各種の広告情報も提供されるようになっている。
【０００４】
しかしながら、WWWクライアント側においては、ユーザは、必要な情報だけを見て、広告情報を見ない場合が多く、広告情報の提供者は、Webページによる広告情報の提供の効果を、十分に享受することができないことがあった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、ユーザに、広告情報等の特定の情報を、必然的に見てもらうことができるようにするものである。
【０００６】
【課題を解決するための手段】
本発明の第１のデータ処理装置は、第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化手段と、第３のデータを、第１および第２のデータに復号するのに必要な復号情報を作成する作成手段と、復号情報を、第３のデータに埋め込み、埋め込みデータを生成する埋め込み手段とを備えることを特徴とする。
【０００７】
本発明の第１のデータ処理方法は、第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化ステップと、第３のデータを、第１および第２のデータに復号するのに必要な復号情報を作成する作成ステップと、復号情報を、第３のデータに埋め込み、埋め込みデータを生成する埋め込みステップとを備えることを特徴とする。
【０００８】
本発明の第１のプログラムは、第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化ステップと、第３のデータを、第１および第２のデータに復号するのに必要な復号情報を作成する作成ステップと、復号情報を、第３のデータに埋め込み、埋め込みデータを生成する埋め込みステップとを備えることを特徴とする。
【０００９】
本発明のプログラム記録媒体は、第１のデータと第２のデータを符号化することにより、第３のデータを生成する符号化ステップと、第３のデータを、第１および第２のデータに復号するのに必要な復号情報を作成する作成ステップと、復号情報を、第３のデータに埋め込み、埋め込みデータを生成する埋め込みステップとを備えるプログラムが記録されていることを特徴とする。
【００１２】
本発明の第２のデータ処理装置は、埋め込みデータを、第３のデータと、そこに埋め込まれている復号情報に復号する第１の復号手段と、第３のデータを、復号情報にしたがって、第１および第２のデータに復号する第２の復号手段とを備えることを特徴とする。
【００１３】
本発明の第２のデータ処理方法は、埋め込みデータを、第３のデータと、そこに埋め込まれている復号情報に復号する第１の復号ステップと、第３のデータを、復号情報にしたがって、第１および第２のデータに復号する第２の復号ステップとを備えることを特徴とする。
【００１４】
本発明の第２のプログラムは、埋め込みデータを、第３のデータと、そこに埋め込まれている復号情報に復号する第１の復号ステップと、第３のデータを、復号情報にしたがって、第１および第２のデータに復号する第２の復号ステップとを備えることを特徴とする。
【００１５】
本発明の第２のプログラム記録媒体は、埋め込みデータを、第３のデータと、そこに埋め込まれている復号情報に復号する第１の復号ステップと、第３のデータを、復号情報にしたがって、第１および第２のデータに復号する第２の復号ステップとを備えるプログラムが記録されていることを特徴とする。
【００１６】
本発明の第１のデータ処理装置およびデータ処理方法、並びにプログラムにおいては、第１のデータと第２のデータを符号化することにより、第３のデータが生成され、第３のデータを、第１および第２のデータに復号するのに必要な復号情報が作成される。そして、その復号情報が、第３のデータに埋め込まれ、埋め込みデータが生成される。
【００１８】
本発明の第２のデータ処理装置およびデータ処理方法、並びにプログラムにおいては、埋め込みデータが、第３のデータと、そこに埋め込まれている復号情報に復号され、第３のデータが、復号情報にしたがって、第１および第２のデータに復号される。
【００１９】
【発明の実施の形態】
図１は、本発明を適用したデータ処理装置の一実施の形態の構成例を示している。
【００２０】
このデータ処理装置は、符号化装置１と復号装置２とで構成されており、符号化装置１は、データを符号化し、その結果得られる符号化データを出力する。
【００２１】
符号化装置１が出力する符号化データは、例えば、地上波、衛星回線、ＣＡＴＶ（Cable Television）網、インターネット、公衆回線などでなる伝送媒体３を介して伝送され、あるいは、また、例えば、半導体メモリ、光磁気ディスク、磁気ディスク、光ディスク、磁気テープ、相変化ディスクなどでなる記録媒体４に記録され、復号装置２に提供される。
【００２２】
復号装置２は、伝送媒体３または記録媒体４を介して提供される符号化データを受信し、その符号化データを復号する。
【００２３】
図２は、図１の符号化装置１の構成例を示している。
【００２４】
図２の実施の形態では、符号化装置１における符号化対象のデータとして、例えば、画像データや音声データ（曲等の音響データを含む）、テキストデータ等の各種のメディアのメディアデータと、商品やサービス等の広告のための広告データとが供給されるようになっている。
【００２５】
このメディアデータと広告データは、統合部１１に供給されるようになっており、統合部１１は、メディアデータと広告データとを、何らかの方法で１つのデータに統合し、埋め込み部１３に供給する。すなわち、例えば、統合部１１は、メディアデータに、広告データを埋め込むことにより、そのメディアデータおよび広告データを符号化し、その結果得られる埋め込みデータを、符号化データとして、埋め込み部１３に供給する。
【００２６】
さらに、統合部１１は、メディアデータに、広告データを埋め込むときの埋め込み方式を表す埋め込み方式信号を生成し、プログラムデータ作成部１２に供給する。
【００２７】
プログラムデータ作成部１２は、統合部１１からの埋め込み方式信号に基づいて、統合部１１が出力する埋め込みデータを、メディアデータと、そのメディアデータに埋め込まれた広告データに復号し、さらに、その提示を行うプログラム（以下、適宜、復号提示プログラムという）を生成して、埋め込み部１３に供給する。
【００２８】
埋め込み部１３は、統合部１１からの符号化データに、プログラムデータ作成部１２からの復号提示プログラムを埋め込み、その結果得られる埋め込みデータを、最終的な符号化データとして出力する。
【００２９】
次に、図３のフローチャートを参照して、図２の符号化装置１の処理について説明する。
【００３０】
統合部１１は、メディアデータと広告データが供給されると、ステップＳ１において、そのメディアデータに、広告データを埋め込み、その結果得られる埋め込みデータを、メディアデータと広告データの符号化データとして、埋め込み部１３に供給する。さらに、統合部１１は、ステップＳ１において、メディアデータに、広告データを埋め込んだときに用いた埋め込み方式を表す埋め込み方式信号を生成し、プログラムデータ作成部１２に供給する。
【００３１】
プログラムデータ作成部１２は、ステップＳ２において、統合部１１からの埋め込み方式信号に基づき、復号提示プログラムを作成し、埋め込み部１３に供給する。
【００３２】
埋め込み部１３は、ステップＳ３において、統合部１１からの符号化データに、プログラムデータ作成部１２からの復号提示プログラムを埋め込み、埋め込みデータを生成して、ステップＳ４に進む。ステップＳ４では、埋め込み部１３は、ステップＳ３で得られた埋め込みデータを、最終的な符号化データとして出力し、処理を終了する。
【００３３】
なお、符号化装置１は、メディアデータと広告データが供給されるごとに、図３のフローチャートにしたがった処理を行う。
【００３４】
次に、図４は、図１の復号装置２の構成例を示している。
【００３５】
伝送媒体３または記録媒体４（図１）から提供される最終的な符号化データとしての埋め込みデータは、復号部２１に供給される。
【００３６】
復号部２１は、そこに供給される埋め込みデータを、符号化データ（メディアデータに、広告データを埋め込んだ埋め込みデータとしての符号化データ（以下、適宜、中間符号化データという））と、その中間符号化データに埋め込まれている復号提示プログラムに復号し、その中間符号化データおよび復号提示プログラムを、プログラム実行部２２に供給する。
【００３７】
プログラム実行部２２は、復号部２３とデータ提示部２４から構成され、復号部２１からの復号提示プログラムを実行することにより、同じく復号部２１からの中間符号化データを、メディアデータと広告データに復号するとともに、それらの提示を行う。
【００３８】
即ち、復号部２３は、復号部２１からの中間符号化データを、メディアデータと、そのメディアデータに埋め込まれている広告データに復号し、データ提示部２４に供給する。
【００３９】
データ提示部２４は、復号部２３からのメディアデータおよび広告データを、図示せぬディスプレイに表示し、あるいは図示せぬスピーカから出力する。
【００４０】
次に、図５のフローチャートを参照して、図４の復号装置２の処理について説明する。
【００４１】
復号部２１に対して、埋め込みデータが供給されると、復号部２１は、ステップＳ１１において、その埋め込みデータを、中間符号化データと、その中間符号化データに埋め込まれている復号提示プログラムに復号し、その中間符号化データおよび復号提示プログラムを、プログラム実行部２２に供給する。
【００４２】
プログラム実行部２２は、ステップＳ１２において、復号部２１からの復号提示プログラムの実行を開始して、ステップＳ１３に進む。これにより、ステップＳ１３では、復号部２３が、復号提示プログラムにしたがい、復号部２１からの中間符号化データを、メディアデータと、そのメディアデータに埋め込まれている広告データに復号し、データ提示部２４に供給し、データ提示部２４が、やはり、復号提示プログラムにしたがい、復号部２３からのメディアデータおよび広告データを提示して、処理を終了する。
【００４３】
なお、復号装置２は、埋め込みデータが供給されるごとに、図５のフローチャートにしたがった処理を行う。
【００４４】
以上のように、符号化装置１では、メディアデータに、広告データを埋め込んで埋め込みデータとしての中間符号化データとし、中間符号化データを、メディアデータおよび広告データに復号するのに必要な復号提示プログラムを、中間符号化データに埋め込み、埋め込みデータとしての最終的な符号化データを生成し、一方、復号装置２では、符号化装置１からの埋め込みデータを、中間符号化データと、そこに埋め込まれている復号提示プログラムに復号し、その復号提示プログラムにしたがって、中間符号化データを、メディアデータおよび広告データに復号するようにしたので、ユーザに、広告データを、必然的に見てもらうことができる。
【００４５】
即ち、メディアデータと広告データは符号化されており、即ち、ここでは、メディアデータに、広告データが埋め込まれ、埋め込みデータとしての中間符号化データとされており、そのままでは、メディアデータを見る（あるいは、聴く）ことはできない。即ち、メディアデータを見るためには、図６に示すように、まず、埋め込みデータを、中間符号化データと復号提示プログラムに復号し、さらに、中間符号化データを、復号提示プログラムによって、メディアデータと広告データに復号しなければならず、従って、メディアデータと広告データとは、いわばセットでなければ見ることができない。その結果、ユーザが、メディアデータを見ようとすれば、必ず、広告データも見ることになる。
【００４６】
さらに、メディアデータと広告データの復号を行うための復号提示プログラムが、中間符号化データに埋め込まれているため（但し、逆に、復号提示プログラムに、中間符号化データを埋め込んでも良い）、後述するように、全体のデータ量の増加を防止することができる。
【００４７】
また、復号提示プログラムには、メディアデータおよび広告データの復号だけでなく、その提示を行うプログラムも含まれるため、広告データを、その提供者（広告主）の要求にあった形で、ユーザに提示することが可能となる。
【００４８】
なお、メディアデータと広告データの符号化は、埋め込みに限定されるものではなく、その他の符号化方式を採用して、メディアデータと広告データとを、それぞれ符号化することも可能である。しかしながら、このように、メディアデータと広告データを、別個独立に符号化した場合には、例えば、悪意のユーザによって、メディアデータだけの復号が行われるおそれがある。
【００４９】
これに対して、メディアデータに、広告データを埋め込むことで（あるいは、逆に、広告データにメディアデータを埋め込むことで）、符号化を行う場合には、メディアデータと広告データとは、いわば統合されたデータとなり、いずれか一方だけを復号することはできなくなる。従って、この場合、上述のような、悪意のユーザによるメディアデータだけの復号が行われることを防止することができる。
【００５０】
以上のようなデータ処理装置は、例えば、インターネット等の、ネットワークを介して、データのダウンロードを行うダウンロードシステム等に適用することができる。
【００５１】
即ち、この場合、ダウンロードシステムは、例えば、図７に示すように、符号化装置１としてのサーバと、復号装置２としてのクライアントとから構成することができる。
【００５２】
図７のダウンロードシステムにおいては、クライアントが、サーバに対して、あるメディアデータのダウンロードを要求すると、サーバは、その要求のあったメディアデータに、広告データを埋め込んで、埋め込みデータとしての中間符号化データを作成し、さらに、その中間符号化データに、復号提示プログラムを埋め込むことで、最終的な符号化データとしての埋め込みデータを生成する。クライアントでは、この埋め込みデータがダウンロードされ、中間符号化データと復号提示プログラムに復号される。さらに、クライアントでは、中間符号化データが、復号提示プログラムにしたがって、メディアデータと広告データに復号され、さらに、そのメディアデータと広告データが、復号提示プログラムにしたがって提示される。
【００５３】
従って、クライアント側において、メディアデータを見ようとすれば、広告データを、必ず見ることになるので、図１のデータ処理装置によれば、ネットワーク上の広告ビジネスに付加価値を付けることができる。
【００５４】
次に、符号化装置１（図２）を構成する統合部１１および１３における埋め込み方法、並びに復号装置２（図４）を構成する復号部２１および２３における復号方法について説明する。
【００５５】
埋め込みには、大きく分けて、埋め込みに用いるデータの相関性を利用するものと、利用しないものがある。
【００５６】
そこで、まず、データの相関性を利用しない埋め込み方法について説明する。
【００５７】
データの相関性を利用しない埋め込み方法としては、例えば、データが埋め込まれる被埋め込み対象データ（例えば、上述のメディアデータや、中間符号化データ）を、所定の符号化ルールにしたがって符号化するとともに、その符号化ルールを、被埋め込み対象データに埋め込まれる埋め込み対象データ（例えば、上述の広告データや、復号提示プログラム）に基づいて破壊することにより、その埋め込み対象データを、被埋め込み対象データに埋め込む方法がある。
【００５８】
図８は、そのような埋め込みを行う場合の、図２の統合部１１（または埋め込み部１３）の第１の構成例を示している。
【００５９】
メモリ３１は、統合部１１に供給される被埋め込み対象データを、所定の単位で記憶する。メモリ３２は、統合部１１に供給される埋め込み対象データを、所定の単位で記憶する。
【００６０】
可変長符号化部３３は、メモリ３１に記憶された被埋め込み対象データを、可変長符号化としての、例えば、ハフマン符号化し、その結果得られる符号化データを、符号化ルール破壊部２５に供給する。また、可変長符号化部３３は、ハフマン符号化の際、後述するようにして、ハフマンテーブルを作成するが、そのハフマンテーブルを、変換テーブル作成部３４に供給する。さらに、可変長符号化部３３は、変換テーブル作成部３４に出力したハフマンテーブルを得るのに必要な情報としてのハフマンテーブル関連情報を、ＭＵＸ（マルチプレクサ）３６に供給する。
【００６１】
変換テーブル作成部３４は、可変長符号化部３３から供給されるハフマンテーブルにおける符号を変換するための変換テーブルを、メモリ３２に記憶された埋め込み対象データに基づいて作成する。即ち、ハフマンテーブルは、ハフマン符号化する対象の値（ここでは、被埋め込み対象データ）と、各符号長の符号（符号化データ）との対応関係を記述したものであるが、変換テーブル作成部３４は、そのようなハフマンテーブルにおける符号を、埋め込み対象データに基づく符号に変換するための変換テーブルを作成する。変換テーブル作成部３４で作成された変換テーブルは、符号化ルール破壊部３５に供給される。
【００６２】
符号化ルール破壊部３５は、埋め込み対象データに基づき、可変長符号化部３３における符号化ルールを破壊することにより、符号化された被埋め込み対象データに、埋め込み対象データを埋め込む。即ち、符号化ルール破壊部３５は、変換テーブル作成部３４が埋め込み対象データに基づき作成した変換テーブルにしたがって、可変長符号化部３３が出力する符号化データ（符号）を変換（操作）し、可変長符号化部３３における符号化ルールを破壊した符号化ルールにより符号化された符号化データを得る。この破壊された符号化ルールにより符号化された符号化データは、元の符号化データに、埋め込み対象データが埋め込まれた埋め込み符号化データとして、符号化ルール破壊部３５からＭＵＸ３６に供給される。
【００６３】
ＭＵＸ３６は、符号化ルール破壊部３５からの埋め込み符号化データと、可変長符号化部３３からのハフマンテーブル関連情報とを多重化し、その結果得られる多重化データを、被埋め込み対象データに埋め込み対象データを埋め込んだ埋め込みデータとして出力する。
【００６４】
次に、図９は、図８の可変長符号化部３３の構成例を示している。
【００６５】
図８のメモリ３１においては、そこに記憶された所定単位の被埋め込み対象データが読み出され、頻度テーブル作成部４１と符号化部４４に供給される。
【００６６】
頻度テーブル作成部４１は、そこに供給される被埋め込み対象データについて、その各値と、その出現頻度とを対応付けた頻度テーブルを作成し、ハフマン木作成部４２に供給する。また、頻度テーブルは、ハフマンテーブル関連情報として、頻度テーブル作成部４１から、図９のＭＵＸ３６に供給される。
【００６７】
ここで、図９の実施の形態では、頻度テーブルを、ハフマンテーブル関連情報として用いるようにしたが、ハフマンテーブル関連情報は、後述するハフマンテーブル作成部４３が作成するハフマンテーブルを得ることができるような情報であれば、特に限定されるものではなく、従って、ハフマンテーブル関連情報としては、頻度テーブルの他、例えば、ハフマンテーブル作成部４３が作成するハフマンテーブルそのもの等を用いることが可能である。
【００６８】
ハフマン木作成部４２は、頻度テーブル作成部４１から供給される頻度テーブルに基づいて、いわゆるハフマン木を作成し、ハフマンテーブル作成部４３に供給する。ハフマンテーブル作成部４３は、ハフマン木作成部４２からのハフマン木に基づき、ハフマンテーブルを作成する。即ち、ハフマンテーブル作成部４３は、被埋め込み対象データに対して、その値の出現頻度が高いほど、短い符号長の符号（出現頻度が低いほど長い符号長の符号）が割り当てられたハフマンテーブルを作成する。このハフマンテーブルは、符号化部４４に供給されるとともに、図８の変換テーブル作成部３４に供給される。
【００６９】
符号化部４４は、そこに供給される被埋め込み対象データの各値を、ハフマンテーブル作成部４３からのハフマンテーブルにおいて対応付けられている符号に変換し、これにより、可変長符号化データを得て出力する。
【００７０】
以上のように構成される可変長符号化部３３では、頻度テーブル作成部４１において、被埋め込み対象データについて頻度テーブルが作成され、ハフマン木作成部４２に供給される。ハフマン木作成部４２では、頻度テーブル作成部４１からの頻度テーブルに基づいて、ハフマン木が作成され、ハフマンテーブル作成部４３に供給される。ハフマンテーブル作成部４３では、ハフマン木作成部４２からのハフマン木に基づき、ハフマンテーブルが作成され、符号化部４４に供給される。符号化部４４では、被埋め込み対象データの各値が、ハフマンテーブルにおいて、その値に対応付けられている符号に変換され、その結果得られる可変長符号化データが出力される。
【００７１】
次に、図１０を参照して、可変長符号化部３３における可変長符号化処理について、さらに説明する。
【００７２】
いま、頻度テーブル作成部４１において、例えば、図１０（Ａ）に示すような頻度テーブルが作成されたとする。ここで、図１０（Ａ）は、被埋め込み対象データにおいて、値「0」、「1」、「2」、「3」、「4」が、それぞれ、5,4,3,2,1回ずつ現れていることを表している。
【００７３】
図１０（Ａ）の頻度テーブルについては、ハフマン木作成部４２において、例えば、図１０（Ｂ）乃至図１０（Ｅ）に示すように、被埋め込み対象データの各値の出現頻度に基づき、いわばボトムアップ式に、ハフマン木が作成される。
【００７４】
即ち、ハフマン木作成部４２は、頻度テーブルにおける値の中から、出現頻度が最も低いものを２つ選択し、１つの接点を構成する。さらに、ハフマン木作成部４２は、選択した２つの値のうちの、出現頻度が低い方に、ビット"0"または"1"のうちの、例えば、"0"を割り当て、他方に、"1"を割り当てる。そして、ハフマン木作成部４２は、選択した２つの値によって構成した接点に対して、その選択した２つの値の出現頻度の加算値を、その接点の出現頻度として割り当てる。
【００７５】
従って、図１０（Ａ）に示した頻度テーブルにおいては、図１０（Ｂ）に示すように、出現頻度が１の値「4」と、出現頻度が２の値「3」が選択され、接点#1が構成されるとともに、その接点#1の出現頻度として、３（＝１＋２）が割り当てられる。さらに、選択された２つの値「4」と「3」のうち、出現頻度が低い方の値「4」に、ビット"0"が割り当てられるとともに、出現頻度が高い方の値「3」に、ビット"1"が割り当てられる。
【００７６】
ここで、図１０（Ｂ）乃至図１０（Ｅ）では、出現頻度を表す数字を、カッコ()で囲って表してある。
【００７７】
なお、選択された２つの値の出現頻度が同一の場合には、いずれの値に、ビット"0"または"1"を割り当てても良い。但し、例えば、値が小さい方に、ビット"0"を割り当てるといったように、どちらの値に、ビット"0"または"1"を割り当てるかを、あらかじめ決めておく必要がある。
【００７８】
ハフマン木作成部４２では、以下、同様の処理が、接点が１つ収束するまで繰り返される。
【００７９】
従って、図１０（Ｂ）の状態からは、図１０（Ｃ）に示すように、出現頻度がいずれも３の接点#1と値「2」が選択され、その接点#1と値「2」が、１つの接点#2とされる。さらに、接点#2の出現頻度が６（＝３＋３）とされ、接点#1と値「2」には、それぞれビット"0"と"1"が割り当てられる。
【００８０】
図１０（Ｃ）の状態からは、図１０（Ｄ）に示すように、出現頻度が４の値「1」と、出現頻度が５の値「0」が選択され、その値「1」と「0」が、１つの接点#3とされる。さらに、接点#3の出現頻度が９（＝４＋５）とされ、値「1」と「0」には、それぞれビット"0"と"1"が割り当てられる。
【００８１】
図１０（Ｄ）の状態からは、図１０（Ｅ）に示すように、出現頻度が６の接点#2と、出現頻度が９の接点#3が選択され、その接点#2と#3が、１つの接点#4とされる。さらに、接点#4の出現頻度が１５（＝６＋９）とされ、接点#2と#3には、それぞれビット"0"と"1"が割り当てられる。
【００８２】
図１０（Ｅ）の状態では、接点が、１つの接点#4に収束しているので、ハフマン木の完成となり、ハフマン木作成部４２は、このハフマン木を、ハフマンテーブル作成部４３に供給する。
【００８３】
ハフマンテーブル作成部４３は、ハフマン木を、収束した接点から、値の方向に辿っていくことで、各値に割り当てられた符号を認識する。
【００８４】
即ち、例えば、図１０（Ｅ）に示したハフマン木を、接点#4から、値「0」の方向に辿っていき、各接点（または値）に割り当てられたビットを並べると、"0"→"0"→"0"となる。これにより、ハフマンテーブル作成部４３は、値「0」に対して、符号"000"が割り当てられたことを認識する。また、図１０（Ｅ）に示したハフマン木を、接点#4から、値「1」の方向に辿っていき、各接点に割り当てられたビットを並べると、"0"→"0"→"1"となる。これにより、ハフマンテーブル作成部４３は、値「1」に対して、符号"001"が割り当てられたことを認識する。
【００８５】
以下、同様にして、ハフマンテーブル作成部４３は、各値に割り当てられた符号を認識し、被埋め込み対象データの各値と符号との対応関係を表すハフマンテーブルを作成する。従って、図１０（Ｅ）に示したハフマン木からは、図１０（Ｆ）に示すようなハフマンテーブルが作成されることになる。
【００８６】
図１０（Ｅ）に示したハフマンテーブルにおいては、出現頻度が5,4,3,2,1回の値「0」、「1」、「2」、「3」、「4」それぞれに、符号"11","10","01","001","000"が割り当てられており、従って、基本的に、出現頻度が高いほど、符号長の短い符号が割り当てられている。
【００８７】
ところで、図１０（Ｅ）のハフマンテーブルにおいては、値「0」、「1」、「2」、「3」、「4」の出現頻度は異なるが、出現頻度が比較的高い値「0」、「1」、「2」には、２ビットの符号が割り当てられており、出現頻度が比較的低い値「3」、「4」には、３ビットの符号が割り当てられている。
【００８８】
このように、ハフマンテーブルにおいては、出現頻度が異なっていても、同一の符号長の符号が割り当てられる場合があり、値の出現頻度と、その値に割り当てられる符号の符号長との関係は、一般に、図１１に示すようになる。
【００８９】
いま、図１１において、ｎビットの符号が割り当てられる値がｘ個あるとすると（但し、ｘは２n以下の整数）、そのｘ個の値に対するｎビットの符号の割り当てパターンは、ｘ！パターンだけ存在するが（！は階乗を表す）、ハフマンテーブルにおいては、そのｘ！パターンのうちの１つだけが、上述したハフマン木を作成する際のルールに基づいて採用されているにすぎない。
【００９０】
一方、ハフマンテーブルにおける、ｘ個の値に対するｎビットの符号の割り当てパターンを変更しても、符号量は増加しない。即ち、ハフマンテーブルにおいて、ｎビットのある符号が割り当てられるある値に、他のｎビットの符号を割り当てても、割り当てられる符号長は、ｎビットのままであるから、符号量は増加しない。
【００９１】
さらに、ハフマンテーブルにおける、ｘ個の値に対するｎビットの符号の割り当てパターンを変更しても、例えば、そのｘ個の値の出現頻度に基づいて、符号の割り当てパターンは、元に戻すことができる。
【００９２】
以上から、ハフマンテーブルにおいて同一の符号長の符号が割り当てられている値に対する符号の割り当てパターンを変更しても、即ち、可変長符号化の符号化ルールを破壊しても、符号量は増加せず、さらに、変更後の割り当てパターンは、元に戻すことができる。
【００９３】
このことは、被埋め込み対象データの各値に対する符号の割り当てパターンの変更を、何らかの情報に基づいて行うことで、全体のデータ量を増加させずに、情報を埋め込むことができ、かつ、その埋め込んだ情報を、オーバヘッドなしで復号することができることを意味する。
【００９４】
即ち、図１２は、８ビットで表される被埋め込み対象データの各値（０乃至２５５）について作成されたハフマンテーブルの例を示している。なお、図１２においては、各値と、その値に割り当てられた符号（可変長符号化データ）の他、各値の出現頻度も示してある。
【００９５】
図１２において、例えば、値「12」乃至「18」の７つの値に注目すると、これらの７つの値には、いずれも、９ビットの符号が割り当てられており、この７つの値に対する９ビットの符号の割り当て方は、７！パターンだけ存在する。従って、この７つの値に対する９ビットの符号の割り当てパターンを変更することで、int[log27!]ビットの情報を埋め込むことができる。なお、int[]は、[]内の値以下の最大の整数値を意味する。
【００９６】
ここで、図１３（Ａ）は、図１２における値「12」乃至「18」それぞれの出現頻度をグラフによって表したものであり、図１３（Ｂ）は、図１２において、値「12」乃至「18」それぞれに割り当てられた９ビットの符号（可変長符号化データ）を表している。
【００９７】
いま、図１３（Ｂ）に示した符号の割り当てを、int[log27!]ビット以下の埋め込み対象データに基づいて、例えば、図１３（Ｃ）に示すように変更したとする。
【００９８】
即ち、図１３（Ｂ）においては、値「12」乃至「18」に対して、符号"110111111","110111010","110100001","110011001","11011000","011101011","010001010"が、それぞれ割り当てられており、図１３（Ｃ）では、値「12」に割り当てられていた符号"110111111"が値「15」に、値「15」に割り当てられていた符号"110011001"が値「12」に、値「16」に割り当てられていた符号"11011000"が値「17」に、値「17」に割り当てられていた符号"011101011"が値「18」に、値「18」に割り当てられていた符号"010001010"が値「16」に、それぞれ割り当て変更されている。なお、図１３では、他の値に対する符号の割り当ては、変更されていない。
【００９９】
ここで、他の符号長の符号が割り当てられた値についても、符号の割り当てパターンを、埋め込み対象データに基づいて変更することができる。図１４に、埋め込み対象データに基づいて、図１２における符号の割り当てパターンを変更した可変長符号化データである埋め込み符号化データの例を示す。なお、図１４には、埋め込み符号化データとともに、その埋め込み符号化データを、図１２に示したハフマンテーブルにしたがって可変長復号を行うことにより得られる復号値（埋め込み符号化データを、正しい可変長符号化データを得るときに用いたハフマンテーブルによって復号した値）も示してある。
【０１００】
図１４において、例えば、値「12」乃至「18」の７つの値に注目し、埋め込み符号化データを、図１２のハフマンテーブルにしたがって復号すると、図１５（Ａ）に示すような復号値が得られる。即ち、埋め込み符号化データを、符号化時に用いたハフマンテーブルにしたがって復号した値を、埋め込み復号値というものとすると、符号"110011001","110111010","110100001","110111111","010001010","11011000","011101011"は、埋め込み復号値「15」、「13」、「14」、「12」、「18」、「16」、「17」に、それぞれ可変長復号される。
【０１０１】
この埋め込み復号値「12」乃至「18」について、その出現頻度をカウントすると、図１５（Ｂ）に示すようになる。即ち、図１２のハフマンテーブルにおいて、値「12」乃至「18」に対して割り当てられた符号を、図１３（Ｂ）および図１３（Ｃ）に示したように変更したことから、値「12」、「15」、「16」乃至「18」については、その出現頻度が、図１３（Ａ）に示したものに一致せず、具体的には、可変長符号化前の値「15」、「12」、「18」、「16」、「17」の出現頻度にそれぞれ一致したものとなる。
【０１０２】
しかしながら、元（可変長符号化前）の値「12」乃至「18」それぞれの出現頻度と、可変長復号の結果得られる値「12」乃至「18」それぞれの出現頻度とは一致するはずであるから、上述のように、値の出現頻度が、可変長符号化前と、可変長復号後とで異なるのはおかしい。
【０１０３】
そこで、図１３（Ａ）に示した元の値の出現頻度と、図１５（Ｂ）に示した埋め込み復号値の出現頻度とを比較し、一致する出現頻度を検出することで、埋め込み対象データに基づいて変更された符号（可変長符号）の割り当てパターンを元に戻すことができる。即ち、埋め込み符号化データを、ハフマンテーブルに基づいて符号化された可変長符号化データに戻すことができる。そして、埋め込み符号化データを可変長符号化データに戻すときの符号の割り当てパターンの変更の仕方から、被埋め込み対象データ（可変長符号化データ）に埋め込まれた埋め込み対象データを復号することができ、また、元に戻した可変長符号化データを可変長復号することで、被埋め込み対象データの元の値を復号することができる。
【０１０４】
具体的には、図１３（Ａ）に示した元の値の出現頻度と、図１５（Ｂ）に示した埋め込み復号値の出現頻度とを比較することで、埋め込み復号値「15」、「13」、「14」、「12」、「17」、「18」、「16」の出現頻度が、元の値「12」乃至「18」の出現頻度とそれぞれ一致することを検出することができる。
【０１０５】
これにより、埋め込み復号値「15」、「13」、「14」、「12」、「17」、「18」、「16」が得られた埋め込み符号化データ"110011001","110111010","110100001","110111111","010001010","11011000","011101011"は、埋め込み対象データが埋め込まれる前は、図１２のハフマンテーブルにおいて、元の値「12」乃至「18」に割り当てられている符号"110111111","110111010","110100001","110011001","11011000","011101011","010001010"であったことが分かる。
【０１０６】
従って、図１５（Ｃ）に示すように、図１３（Ａ）に示した元の値の出現頻度と、図１５（Ｂ）に示した埋め込み復号値の出現頻度が一致するように、埋め込み符号化データを変換することにより、図１２に示したハフマンテーブルにしたがって符号化された可変長符号化データを復元するとともに、埋め込み符号化データと、復元された可変長符号化データとの対応関係から、埋め込み対象データを復号することができる。さらに、復元された可変長符号化データを可変長復号することで、図１５（Ｄ）に示すように、被埋め込み対象データの元の値を復号することができる。
【０１０７】
図８の統合部１１では、以上のように、データ量を増加させずに、オーバヘッドなしの復号が可能な埋め込み符号化処理が行われる。
【０１０８】
次に、図１６は、図２の統合部１１（または１３）が図８に示したように構成される場合の、図４の復号部２１（または復号部２３）の構成例を示している。
【０１０９】
ＤＥＭＵＸ（デマルチプレクサ）５１には、図８の統合部１１が多重化データとして出力する埋め込みデータとハフマンテーブル関連情報との多重化結果が供給され、ＤＥＭＵＸ５１は、その多重化データを、埋め込み符号化データとハフマンテーブル関連情報とに分離し、埋め込み符号化データを、可変長復号部５２および符号化ルール復元部５５に供給するとともに、ハフマンテーブル関連情報を、可変長復号部５２、逆変換テーブル作成部５４、および可変長復号部５６に供給する。
【０１１０】
可変長復号部５２は、ＤＥＭＵＸ５１が出力する埋め込み符号化データおよびハフマン関連情報を受信し、ハフマンテーブル関連情報としての頻度テーブルから、図９の可変長符号化部３３における場合と同様にして、ハフマンテーブルを作成して、逆変換テーブル作成部５４に供給する。
【０１１１】
ここで、ハフマンテーブル関連情報としての頻度テーブルから作成されるハフマンテーブルは、図８の可変長符号化部３３での可変長符号化に用いられるものと同一のものであり、以下、適宜、正ハフマンテーブルという。また、正ハフマンテーブルを得るのに用いられるハフマンテーブル関連情報としての頻度テーブルを、以下、適宜、正頻度テーブルという。
【０１１２】
可変長復号部５２は、さらに、埋め込み符号化データを、正ハフマンテーブルにしたがって可変長復号し、その結果得られる被埋め込み対象データの復号値（埋め込み復号値）を、ハフマンテーブル生成部５３に供給する。
【０１１３】
ハフマンテーブル生成部５３は、可変長復号部５２から供給される埋め込み復号値を可変長符号化するハフマンテーブルを作成し、そのハフマンテーブルと、そのハフマンテーブルを作成する過程で作成される頻度テーブルを、逆変換テーブル作成部５４に供給する。
【０１１４】
ここで、ハフマンテーブル生成部５３が作成するハフマンテーブルは、埋め込み復号値（埋め込み符号化データを、正ハフマンテーブルによって可変長復号したもの）を可変長符号化するものであり、基本的に、正しい可変長符号化データを正しく復号することができるものではない。そこで、この埋め込み復号値から得られるハフマンテーブルを、以下、適宜、正ハフマンテーブルに対して、誤ハフマンテーブルという。また、誤ハフマンテーブルを得るのに用いられる頻度テーブルを、以下、適宜、正頻度テーブルに対して、誤頻度テーブルという。
【０１１５】
逆変換テーブル作成部５４は、可変長復号部５２からの正ハフマンテーブル、ＤＥＭＵＸ５１からのハフマンテーブル関連情報としての正頻度テーブル、ハフマンテーブル生成部５３からの誤ハフマンテーブルおよび誤頻度テーブルに基づいて、埋め込み符号化データを、元の可変長符号化データに変換するための逆変換テーブルを作成する。即ち、逆変換テーブル作成部５４は、図８の変換テーブル作成部３４が作成する変換テーブルと同一の逆変換テーブルを作成する。この逆変換テーブルは、符号化ルール復元部５５に供給される。
【０１１６】
符号化ルール復元部５５は、逆変換テーブル作成部５４から供給される逆変換テーブルに基づき、ＤＥＭＵＸ５１からの埋め込み符号化データを、符号化ルールとしての正ハフマンテーブルにしたがって符号化された可変長符号化データに復元する。さらに、符号化ルール復元部５５は、埋め込み符号化データと、復元した可変長符号化データとの対応関係、即ち、逆変換テーブルに基づいて、埋め込み符号化データに埋め込まれていた埋め込み対象データを復号する。そして、符号化ルール復元部５５は、復元した可変長符号化データを、可変長復号部５６に出力するとともに、復号した埋め込み対象データを、復号埋め込み対象データとして出力する。
【０１１７】
可変長復号部５６は、ＤＥＭＵＸ５１から供給されるハフマン関連情報から、正ハフマンテーブルを作成し、その正ハフマンテーブルに基づいて、符号化ルール復元部５５から供給される可変長符号化データを可変長復号して、その結果得られる被埋め込み対象データの復号値（以下、適宜、復号被埋め込み対象データという）を出力する。
【０１１８】
次に、図１７は、図１６の可変長復号部５２の構成例を示している。
【０１１９】
ＤＥＭＵＸ５１が出力する埋め込み符号化データは、復号部６３に供給されるようになっており、同じく、ＤＥＭＵＸ５１が出力するハフマンテーブル関連情報としての頻度テーブルは、ハフマン木作成部６１に供給されるようになっている。
【０１２０】
ハフマン木作成部６１は、図９のハフマン木作成部４２と同様に、頻度テーブルから、ハフマン木を作成し、ハフマンテーブル作成部６２に供給する。
【０１２１】
ハフマンテーブル作成部６２は、図９のハフマンテーブル作成部４３と同様に、ハフマン木作成部６１からのハフマン木に基づいて、ハフマンテーブルを作成し、復号部６３に供給する。
【０１２２】
復号部６３は、ハフマンテーブル作成部６２からのハフマンテーブルにしたがい、そこに供給される埋め込み符号化データを、可変長復号出力する。
【０１２３】
なお、図１６の可変長復号部５６も、図１７に示した可変長復号部５２と同様に構成される。
【０１２４】
次に、図１８は、図１６のハフマンテーブル生成部５３の構成例を示している。
【０１２５】
ハフマンテーブル生成部５３において、可変長復号部５２が出力する埋め込み復号値は、頻度テーブル７１に供給される。頻度テーブル７１、ハフマン木作成部７２、またはハフマンテーブルテーブル作成部７３は、図９の頻度テーブル作成部４１、ハフマン木作成部４２、またはハフマンテーブル作成部４３における場合とそれぞれ同様の処理を行う。
【０１２６】
これにより、頻度テーブル作成部７１では、埋め込み復号値についての頻度テーブルである誤頻度テーブル（被埋め込み対象データの元の値についての頻度テーブルではない）が作成され、逆変換テーブル作成部５４（図１６）に供給される。また、ハフマンテーブル作成部７３では、埋め込み復号値を、その出現頻度に応じた符号長の符号に変換するためのハフマンテーブルである誤ハフマンテーブル（被埋め込み対象データの元の値についてのハフマンテーブルではない）が作成され、逆変換テーブル作成部５４に供給される。
【０１２７】
次に、図１９は、図１６の逆変換テーブル作成部５４の構成例を示している。
【０１２８】
逆変換テーブル作成部５４には、上述したように、正ハフマンテーブル、正頻度テーブル、誤ハフマンテーブル、および誤頻度テーブルが供給されるようになっており、逆変換テーブル作成部５４では、これらのテーブルに基づき、図１２乃至図１５で説明したようにして、埋め込み符号化データと、正ハフマンテーブルによって符号化された可変長符号化データとの対応関係が認識され、その対応関係が記述された逆変換テーブルが作成される。
【０１２９】
正ハフマンテーブルおよび誤ハフマンテーブルは、符号対応付け部８２に供給され、正頻度テーブルおよび誤頻度テーブルは、比較部８１に供給される。
【０１３０】
そして、比較部８１は、正頻度テーブルと誤頻度テーブルとを比較し、各符号長の符号ごとに、正頻度テーブルと誤頻度テーブルにおいて、同一の頻度となっている値を検出する。さらに、比較部８１は、正頻度テーブルと誤頻度テーブルにおいて、同一の頻度となっている値を対応付けた対応値テーブルを作成し、符号対応付け部８２に供給する。
【０１３１】
符号対応付け部８２は、比較部８１からの対応値テーブルにおいて対応付けられている値を、正ハフマンテーブルと誤ハフマンテーブルから検索し、その検索した値に対応付けられている符号どうしを対応付けることにより、逆変換テーブルを作成する。この逆変換テーブルは、符号化ルール復元部５５に供給される。
【０１３２】
次に、図２０は、被埋め込み対象データを、所定の符号化ルールにしたがって符号化するとともに、その符号化ルールを、埋め込み対象データに基づいて破壊することにより、その埋め込み対象データを、被埋め込み対象データに埋め込む場合の、図２の統合部１１（または埋め込み部１３）の第２の構成例を示している。
【０１３３】
符号化部９１には、被埋め込み対象データが供給されるようになっており、符号化部９１は、被埋め込み対象データを、所定の符号化ルールにしたがって符号化し、その結果得られる符号化データを、埋め込み部９２に出力する。
【０１３４】
埋め込み部９２には、埋め込み対象データが供給されるようになっており、埋め込み部９２は、符号化部９１から供給される符号化データを、埋め込み対象データに基づいて操作して、破壊された符号化ルールにしたがって符号化された符号化データとすることにより、その埋め込み対象データを、符号化された被埋め込み対象データに埋め込み、埋め込み符号化データを出力する。
【０１３５】
次に、図２１は、図２０の符号化部９１の構成例を示している。なお、ここでは、例えば、被埋め込み対象データが、画像データであるとし、さらに、その画像データを構成する画素値が、ＲＧＢ(Red,Green,Blue)で表現されるものとする。
【０１３６】
図２１の符号化部９１においては、被埋め込み対象データとしての各画素値が、ＲＧＢの色空間においてベクトル量子化され、セントロイドベクトルを表すコード（以下、適宜、ＶＱコードという）、そのコードに対応するセントロイドベクトルで表される画素値の、元の画素値に対する誤差（以下、適宜、ＶＱ残差という）、およびベクトル量子化に用いられたコードブックが、符号化データとして出力されるようになっている。
【０１３７】
即ち、被埋め込み対象データは、フレームメモリ１０１に供給され、フレームメモリ１０１は、そこに供給される被埋め込み対象データである画像データを、例えば、フレーム単位で、順次記憶する。
【０１３８】
コードブック作成部１０２は、フレームメモリ１０１に記憶された被埋め込み対象データのフレームを、順次、注目フレームとし、その注目フレームを構成する各画素の画素値から、その色空間におけるベクトル量子化に用いるコードブックを、例えば、いわゆるＬＢＧ（Linde,Buzo,Gray）アルゴリズムによって作成する。このコードブックは、ベクトル量子化部１０３に供給されるとともに、符号化データ（の一部）として出力される。
【０１３９】
ベクトル量子化部１０３は、フレームメモリ１０１から注目フレームを読み出し、その注目フレームを構成する各画素を、例えば、ラスタスキャン順に、順次、注目画素とする。そして、ベクトル量子化部１０３は、注目画素の画素値を、コードブック作成部１０２からのコードブックを用いてベクトル量子化し、その結果得られるＶＱコードおよびＶＱ残差を、符号化データ（の一部）として出力する。
【０１４０】
次に、図２２は、符号化部９１が図２１に示したように構成される場合の、図２０の埋め込み部９２の構成例を示している。
【０１４１】
符号化部９１が出力する符号化データとしての注目フレームのＶＱコード、ＶＱ残差、コードブックは、ＶＱコードメモリ１１１、ＶＱ残差メモリ１１２、コードブックメモリ１１３に、それぞれ供給されて記憶される。
【０１４２】
ＶＱコードメモリ１１１とコードブックメモリ１１３にそれぞれ記憶されたＶＱコードとコードブックは、そこから読み出され、圧縮部１１５に供給される。
【０１４３】
一方、ラインローテーション部１１４は、注目フレームの各ライン（水平ライン）を、例えば、上から下方向に、順次、注目ラインとし、その注目ラインについて、ＶＱ残差メモリ１１２に記憶されたＶＱ残差を読み出す。さらに、ラインローテーション部１１４は、注目ラインを構成する画素数を、ｘとすると、int[log2x]で表されるビット数の埋め込み対象データを受信し、例えば、図２３に示すように、その埋め込み対象データに対応する画素数だけ、注目ラインのＶＱ残差を右ローテーションすることにより、その埋め込み対象データを、注目ラインに埋め込む。即ち、このラインローテーションにより、注目ライン上のある画素に注目すれば、基本的に、その画素についてのＶＱ残差は、ベクトル量子化により得られるものとは異なるものとなり、ベクトル量子化の符号化ルールが破壊される。そして、符号化ルールが破壊されることにより、埋め込み対象データが埋め込まれる。
【０１４４】
その後、ラインローテーション部１１４は、埋め込み対象データを埋め込んだ注目ラインのＶＱ残差を、圧縮部１１５に供給する。
【０１４５】
ここで、注目ラインのＶＱ残差を右ローテーションする場合、注目ラインの右端の画素のＶＱ残差は、注目ラインの左端の画素にローテーションされるものとする。同様に、注目ラインのＶＱ残差を左ローテーションする場合、左端の画素のＶＱ残差は、右端の画素にローテーションされるものとする。
【０１４６】
圧縮部１１５は、そこに供給されるＶＱコード、ＶＱ残差、コードブックを、例えば、空間相関やエントロピーの偏り等を利用して圧縮し、その圧縮結果を、ＭＵＸ１１６に出力する。ＭＵＸ１１６は、圧縮部１１５からのＶＱコード、ＶＱ残差、コードブックそれぞれの圧縮結果を多重化し、その結果得られる多重化データを、埋め込み符号化データとして出力する。
【０１４７】
次に、図２４は、図２の統合部１１（または埋め込み部１３）が図２０に示したように構成される場合の、図４の復号部２１（または復号部２３）の構成例を示している。
【０１４８】
図２０の埋め込み部９２が多重化データとして出力する埋め込み符号化データは、符号化ルール復元部１２１に供給される。
【０１４９】
符号化ルール復元部１２１は、埋め込み符号化データを、図２０の符号化部９１における符号化ルールにしたがって符号化された、正しい符号化データに復元し、これにより、埋め込み符号化データに埋め込まれていた埋め込み対象データを復号する。
【０１５０】
即ち、符号化ルール復元部１２１は、埋め込み符号化データに対して、パラメータコントローラ１２４から供給されるパラメータに基づく操作を施すことにより、正しい符号化データの候補（以下、適宜、仮符号化データという）を求める。さらに、符号化ルール復元部１２１は、埋め込み符号化データを仮符号化データに復元する操作に基づいて、埋め込み符号化データに埋め込まれていた埋め込み対象データの候補（以下、仮復号埋め込み対象データという）を復号する。そして、仮符号化データは、復号部１２２および判定部１２３に、仮復号埋め込み対象データは、判定部１２３に供給される。
【０１５１】
復号部１２２は、符号化ルール復元部１２１からの仮符号化データに対して、図２０の符号化部９１における符号化ルールに基づく復号処理を施すことにより、元の画素値の候補（以下、適宜、仮復号画素値という）を復号する。この仮復号画素値は、判定部１２３に供給される。
【０１５２】
判定部１２３は、パラメータコントローラ１２４を制御することにより、１つ以上の値のパラメータを、符号化ルール復元部１２１に供給させ、その１つ以上の値のパラメータそれぞれに対応して得られる１つ以上の仮復号画素値の中から、正しい（元の画素値に一致する）仮復号画素値を判定する。さらに、判定部１２３は、１つ以上の仮復号画素値それぞれに付随して、符号化ルール復元部１２１から供給される１つ以上の仮復号埋め込み対象データの中から、正しい復号画素値が得られたときのものを、正しい復号埋め込み対象データとして選択し、正しい仮復号画素値と仮復号埋め込み対象データを、被埋め込み対象データと埋め込み対象データの最終的な復号結果（復号被埋め込み対象データと復号埋め込み対象データ）として、それぞれ出力する。
【０１５３】
パラメータコントローラ１２４は、判定部１２３の制御にしたがい、埋め込み符号化データを操作するための所定のパラメータを、符号化ルール復元部１２１に供給する。
【０１５４】
次に、図２５は、図２０の埋め込み部９２が図２２に示したように構成される場合の、図２４の符号化ルール復元部１２１の構成例を示している。
【０１５５】
図２２のＭＵＸ１１６が出力する多重化データとしての埋め込み符号化データは、ＤＥＭＵＸ１３１に供給され、ＤＥＭＵＸ１３１は、そこに供給される埋め込み符号化データを、圧縮されたＶＱコード、ＶＱ残差、およびコードブックに分離し、伸張部１３２に供給する。伸張部１３２は、ＤＥＭＵＸ１３１からの、圧縮されたＶＱコード、ＶＱ残差、コードブックを伸張し、その伸張後のＶＱコード、ＶＱ残差、コードブックを、ＶＱコードメモリ１３３、ＶＱ残差メモリ１３４、コードブックメモリ１３５にそれぞれ供給する。
【０１５６】
ＶＱコードメモリ１３３、ＶＱ残差メモリ１３４、コードブックメモリ１３５は、伸張部１３２からのＶＱコード、ＶＱ残差、コードブックを、それぞれ、フレーム単位で記憶する。
【０１５７】
ラインローテーション部１３６は、ＶＱ残差メモリ１３４に記憶されたフレームの各ラインを、例えば、上から下方向に、順次、注目ラインとし、その注目ラインについて、ＶＱ残差メモリ１３４に記憶されたＶＱ残差を読み出す。さらに、ラインローテーション部１３６は、注目ラインを構成する画素数を、ｘとすると、０乃至ｘの範囲の整数値を、パラメータコントローラ１２４（図２４）から、パラメータとして受信し、そのパラメータに対応する画素数だけ、注目ラインのＶＱ残差を左ローテーションする。そして、ラインローテーション部１３６は、そのローテーション後の各ラインのＶＱ残差を、ＶＱコードメモリ１３３に記憶されたＶＱコード、およびコードブックメモリ１３５に記憶されたコードブックとともに、仮符号化データとして出力する。
【０１５８】
さらに、ラインローテーション部１３６は、パラメータコントローラ１２４からのパラメータの値を、仮復号埋め込み対象データとして出力する。
【０１５９】
次に、図２６は、図２０の符号化部９１が図２１に示したように構成される場合の、図２４の復号部１２２の構成例を示している。
【０１６０】
復号部１２２は、符号化ルール復元部１２１から供給される符号化データとしての１フレームのＶＱコード、ＶＱ残差、およびコードブックに基づき、ベクトル逆量子化を行うことにより、画素値を復号する。
【０１６１】
即ち、ベクトル逆量子化部１４１には、ＶＱコードおよびコードブックが供給されるようになっており、ベクトル逆量子化部１４１は、ＶＱコードに対応するセントロイドベクトルを、コードブックから検出し、そのセントロイドベクトルを、加算部１４２に供給する。加算部１４２には、ベクトル逆量子化部１４１からセントロイドベクトルが供給される他、ＶＱ残差としての差分ベクトルも供給されるようになっており、加算部１４２は、セントロイドベクトルと差分ベクトルとを加算する。そして、加算部１４２は、その加算の結果得られるベクトルの各成分を、Ｒ，Ｇ，Ｂ値とする画素値を、仮復号画素値として出力する。
【０１６２】
次に、図２７は、符号化ルール復元部１２１と復号部１２２が、図２５と図２６に示したようにそれぞれ構成される場合の、図２４の判定部１２３の構成例を示している。
【０１６３】
メモリ１５１には、符号化ルール復元部１２１からの仮復号埋め込み対象データと、復号部１２２からの仮復号画素値が供給されるようになっており、メモリ１５１は、その仮復号埋め込み対象データと仮復号画素値を一時記憶するとともに、正誤判定部１５４の制御にしたがい、記憶した仮復号埋め込み対象データと仮復号画素値を読み出し、それぞれを、復号埋め込み対象データと復号被埋め込み対象データとして出力する。
【０１６４】
符号化部１５２には、符号化ルール復元部１２１が出力する仮符号化データのうちのコードブックと、復号部１２２が出力する仮復号画素値が供給されるようになっており、符号化部１５２は、仮復号画素値を、図２０の符号化部９１と同様に符号化する。即ち、符号化部１５２は、仮復号画素値を、符号化ルール復元部１２１からのコードブックを用いてベクトル量子化し、その結果得られるＶＱコードとＶＱ残差を、比較部１５３に供給する。ここで、以下、適宜、仮復号画素値をベクトル量子化して得られるＶＱコードとＶＱ残差を、それぞれ、仮ＶＱコードと仮ＶＱ残差という。
【０１６５】
比較部１５３には、符号化部１５２が出力する仮ＶＱコードおよび仮ＶＱ残差の他、復号部１２２が出力する仮符号化データのうちのＶＱコードおよびＶＱ残差が供給されるようになっている。比較部１５３は、仮ＶＱコードと、仮符号化データのＶＱコードとを比較するとともに、仮ＶＱ残差と、仮符号化データのＶＱ残差とを比較し、それぞれの比較結果を、正誤判定部１５４に供給する。
【０１６６】
正誤判定部１５４は、パラメータコントローラ１２４を制御することにより、パラメータコントローラ１２４に、ラインローテーションを行うビット数を、パラメータとして、符号化ルール復元部１２１に供給させる。また、正誤判定部１５４は、比較部１５３からの仮ＶＱコードと仮符号化データのＶＱコードとの比較結果、および仮ＶＱ残差と仮符号化データのＶＱ残差との比較結果に基づいて、仮復号画素値が復号結果として正しいかどうかを判定し、その判定結果に基づき、メモリ１５１からの仮復号画素値および仮復号埋め込み対象データの読み出しを制御する。
【０１６７】
次に、図２８を参照して、図２７の正誤判定部１５４が、仮復号画素値が復号結果として正しいかどうかを判定する判定原理について説明する。
【０１６８】
符号化部９１（図２０）では、ＲＧＢ空間においてベクトル量子化が行われるから、そのベクトル量子化に用いられるセントロイドベクトルは、Ｒ成分、Ｂ成分、およびＧ成分の３つの成分から構成される。いま、このＲ成分、Ｂ成分、およびＧ成分からなるセントロイドベクトルを、（Ｒ，Ｇ，Ｂ）と表すとともに、説明を簡単にするために、コードブックにおけるセントロイドベクトルのＲ成分、Ｂ成分、およびＧ成分が、いずれも１０の倍数で表されるものとすると、Ｒ，Ｂ，Ｇ成分が、例えば、それぞれ１０２，１０３，９９の画素値（以下、適宜、画素値（１０２，１０３，９９）と表す）は、セントロイドベクトル（１００，１００，１００）との距離を最も短くするから、セントロイドベクトル（１００，１００，１００）に対応するＶＱコードにベクトル量子化される。ここで、セントロイドベクトル（１００，１００，１００）に対応するＶＱコードを、例えば、０とする。
【０１６９】
この場合、ＶＱ残差は、画素値（１０２，１０３，９９）から、セントロイドベクトル（１００，１００，１００）を減算して、（２，３，−１）となる。従って、画素値（１０２，１０３，９９）は、ＶＱコード０と、ＶＱ残差（２，３，−１）に符号化される。
【０１７０】
そして、このようにして符号化部９１で得られる符号化データとしてのＶＱコード０と、ＶＱ残差（２，３，−１）をベクトル逆量子化すると、図２８（Ａ）に示すように、ＶＱコード０に対応するセントロイドベクトル（１００，１００，１００）と、ＶＱ残差（２，３，−１）とを加算することにより、画素値（１０２，１０３，９９）が得られ、従って、元の画素値に正しく復号される。
【０１７１】
さらに、この復号された画素値（１０２，１０３，９９）を、再度ベクトル量子化すると、図２８（Ａ）に示すように、やはり、ＶＱコード０と、ＶＱ残差（２，３，−１）が得られる。
【０１７２】
以上から、符号化データとしてのＶＱコードとＶＱ残差を復号し、正しい復号結果を得て、その復号結果を再度符号化（ここでは、ベクトル量子化）すると、その符号化の結果得られるＶＱコードとＶＱ残差は、符号化データとしてのＶＱコードとＶＱ残差に、それぞれ一致する。
【０１７３】
一方、符号化部９１で得られる符号化データとしてのＶＱコード０と、ＶＱ残差（２，３，−１）のうちの、ＶＱ残差（２，３，−１）について、上述したようにラインローテーションが行われることにより埋め込み対象データが埋め込まれると、ＶＱコード０と、ＶＱ残差（２，３，−１）に対応する画素のＶＱ残差には、他の画素について得られたＶＱ残差が割り当てられる。いま、この、他の画素のＶＱ残差が、例えば、図２８（Ｂ）に示すように、（１０，１１，１２）であったとすると、ＶＱコード０と、ＶＱ残差（１０，１１，１２）は、図２８（Ｂ）に示すように、ＶＱコード０に対応するセントロイドベクトル（１００，１００，１００）と、ＶＱ残差（１０，１１，１２）とを加算することにより、画素値（１１０，１１１，１１２）に復号され、従って、元の画素値（１０２，１０３，９９）には、正しく復号されない。
【０１７４】
従って、この正しく復号されない画素値（１１０，１１１，１１２）を、再度ベクトル量子化しても、図２８（Ｂ）に示すように、符号化データとしてのＶＱコード０またはＶＱ残差（２，３，−１）とそれぞれ一致するＶＱコードまたはＶＱ残差は得られない。
【０１７５】
即ち、いまの場合、コードブックにおけるセントロイドベクトルのＲ成分、Ｂ成分、およびＧ成分は、いずれも１０の倍数で表されるものとしてあるから、画素値（１１０，１１１，１１２）との距離を最も短くするセントロイドベクトルは、（１１０，１１０，１１０）となる。従って、セントロイドベクトル（１１０，１１０，１１０）を表すＶＱコードを、例えば、１とすると、画素値（１１０，１１１，１１２）は、ＶＱコード１と、ＶＱ残差（０，１，２）（＝（１１０，１１１，１１２）−（１１０，１１０，１１０））にベクトル量子化され、この場合、ＶＱコードも、また、ＶＱ残差も、元の符号化データであるＶＱコード０またはＶＱ残差（１０，１１，１２）に一致しない。
【０１７６】
以上から、図２５のラインローテーション部１３６で、パラメータにしたがってローテーションされる画素数が、埋め込み対象データに一致していない場合、即ち、仮符号化データが、埋め込み対象データが埋め込まれる前の符号化データに一致していない場合には、そのような仮符号化データから得られる仮復号画素値を再度符号化して得られるＶＱコードとＶＱ残差が、仮符号化データとしてのＶＱコードとＶＱ残差に、それぞれ一致せず、これにより、仮符号化データを復号して得られる仮復号画素値が、正しい復号結果でないことを判定することができる。
【０１７７】
一方、図２５のラインローテーション部１３６で、パラメータにしたがってローテーションされる画素数が、埋め込み対象データに一致している場合、即ち、仮符号化データが、埋め込み対象データが埋め込まれる前の符号化データに一致している場合には、そのような仮符号化データから得られる仮復号画素値を再度符号化して得られるＶＱコードとＶＱ残差が、仮符号化データとしてのＶＱコードとＶＱ残差に、それぞれ一致し、これにより、仮符号化データを復号して得られる仮復号画素値が、正しい復号結果であることを判定することができる。図２７の正誤判定部は、このように、正しい復号結果が得られた場合、その正しい復号結果に対応する埋め込み対象データと被埋め込み対象データを、メモリ１５１を制御して読み出させる。
【０１７８】
次に、データの相関性を利用する埋め込み方法について説明する。
【０１７９】
データの相関性を利用する埋め込み方法としては、例えば、データが埋め込まれる被埋め込み対象データが、例えば、画像データである場合に、その画像データを、埋め込み対象データに基づいて操作することで、埋め込み対象データを埋め込み、その結果得られる埋め込みデータを、元の画像の相関性を利用して、埋め込み対象データと、元の画像データとしての被埋め込み対象データとに復号する方法がある。
【０１８０】
図２９は、そのような相関を利用した埋め込みを行う場合の、図２の統合部１１（または埋め込み部１３）の第１の構成例を示している。
【０１８１】
フレームメモリ１６１は、そこに供給される被埋め込み対象データとしての画像データを、例えば、１フレーム単位で一時記憶するようになされている。ラインローテーション部１６２には、埋め込み対象データが供給されるようになっており、その埋め込み対象データに対応したずらし量だけ、フレームメモリ１６１に記憶された画像を構成する所定のラインを、水平方向にずらすことにより、そのラインに、埋め込み対象データを埋め込み、埋め込みデータとして出力するようになされている。
【０１８２】
以上のように構成される統合部１１では、フレームメモリ１６１において、被埋め込み対象データとしての画像データが記憶される。
【０１８３】
一方、ラインローテーション部１６２では、フレームメモリ１６１に記憶された画像を構成する所定の１ラインが読み出され、ステップＳ２に進み、その読み出されたライン（以下、適宜、注目ラインという）が、第１ライン（１フレームの画像の最上行のライン）であるかどうかが判定される。注目ラインが第１ラインである場合、ラインローテーション部１６２は、その第１ラインを、そのまま、埋め込みデータとして出力する。
【０１８４】
また、注目ラインが第１ラインでない場合、即ち、注目ラインが、第２ライン以降のいずれかのラインである場合、ラインローテーション部１６２は、注目ラインに埋め込むべき埋め込み対象データを受信し、注目ラインを、その受信した埋め込み対象データに対応する画素数分だけ、水平方向にローテーションする。
【０１８５】
即ち、例えば、いま、図３０（Ａ）に示すように、第Ｎライン（Ｎ≠１）が注目ラインとされているとすると、ラインローテーション部１６２は、図３０（Ｂ）に示すように、その第Ｎラインを、埋め込み対象データの値と同一の画素数だけ、水平方向である左または右方向のうちの、例えば右方向にローテーションする（ずらす）。そして、ラインローテーション部１６２は、そのローテーションにより、フレームの右にはみ出した第Ｎラインの部分を、図３０（Ｃ）に示すように、その第Ｎラインの左側にはめ込む。
【０１８６】
以上のような埋め込み符号化処理によれば、ある１フレームの画像は、次のような埋め込みデータに符号化される。
【０１８７】
即ち、例えば、図３１（Ａ）に示すような画像（被埋め込み対象データ）に、埋め込み対象データとして、１０，１５０，２００，・・・を埋め込む場合においては、図３１（Ｂ）に示すように、第１ラインは、そのまま出力され、第２ラインは、最初の埋め込み対象データと同一の値である１０画素だけ、右方向にローテーションされる。さらに、第３ラインは、２番目の埋め込み対象データと同一の値である１５０画素だけ、右方向にローテーションされ、第４ラインは、３番目の埋め込み対象データと同一の値である２００画素だけ、右方向にローテーションされる。第５ライン以降も、同様に、埋め込み対象データに対応する画素数だけ、右方向にローテーションされていく。
【０１８８】
以上のように、フレームメモリ１６１に記憶された画像を構成するラインを、埋め込み対象データに対応した画素数だけ、右方向にローテーションすることにより、各ラインに、埋め込み対象データを埋め込む場合には、その逆のローテーション（逆方向へのローテーション）を行うことで、元の画像を復号することができ、さらに、その逆のローテーションを行ったときのローテーション量が埋め込み対象データとなる。従って、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に埋め込み対象データを埋め込むことができる。
【０１８９】
即ち、埋め込み対象データが埋め込まれたラインとしてのローテーションされたラインは、画像の相関性、即ち、ここでは、正しい位置にあるラインとの間の相関を利用することにより、オーバヘッドなしで、正しい位置のラインと埋め込み対象データに復号ことができる（ラインを、正しい位置に逆ローテーションするとともに、埋め込み対象データを復号することができる）。従って、その結果得られる復号画像（再生画像）には、基本的に、埋め込み対象データを埋め込むことによる画質の劣化は生じない。
【０１９０】
なお、埋め込みデータに、正しい位置にあるラインが存在しない場合には、上述のように画像の相関性を利用して、画像（被埋め込み対象データ）と埋め込み対象データを復号するのは困難である。そこで、ここでは、上述したように、各フレームの第１ラインには、埋め込み対象データを埋め込まないで（ローテーションしないで）、そのまま、埋め込みデータとして出力するようにしている。
【０１９１】
次に、図３２は、図２の統合部１１（または埋め込み部１３）が図２９に示したように構成される場合の、図４の復号部２１（または復号部２３）の構成例を示している。
【０１９２】
フレームメモリ１７１は、図２９のフレームメモリ１６１と同様に、埋め込みデータとしての画像データを一時記憶する。
【０１９３】
ライン相関計算部１７２は、フレームメモリ１７１に記憶された埋め込みデータとしての画像のラインを、その第１ラインから順次読み出し、そのラインを、１画素ずつ右または左のうちのいずれか一方向にローテーションしながら、そのローテーション後のラインと、その１つ上の行のラインとの間の相関を表す相関値を演算する。即ち、ライン相関計算部１７２は、図３３（Ａ）に示すように、フレームメモリ１７１に記憶された埋め込みデータ（画像）の復号対象のライン（このラインも、以下、適宜、注目ラインという）と、その１ライン上のライン（このラインは、注目ラインを復号するための、いわばキーとなるため、以下、適宜、キーラインという）とを読み出し、そのラインどうしの相関値を計算する。さらに、ライン相関計算部１７２は、図３３（Ｂ）に示すように、注目ラインを、１画素だけ右または左のうちのいずれかにローテーションし（図３３では、図３０で説明した場合の逆方向である左方向にローテーションしている）、そのローテーション後の注目ラインとキーラインラインとの間の相関値を演算する。以下、同様にして、ライン相関計算部１７２は、注目ラインが元の位置（埋め込みデータとしての画像上の元の位置）に戻るまで、注目ラインをローテーションしながら、キーラインとの間の相関値を計算する。
【０１９４】
ここで、キーラインと注目ラインとの相関を表す相関値としては、例えば、キーラインと注目ラインの対応する画素の差分絶対値（差分の絶対値）の総和の逆数や、その差分の２乗和の逆数等を用いることができる。
【０１９５】
ライン相関計算部１７２において求められた各ローテーション量での注目ラインとキーラインとの相関値は、すべてローテーション量決定部１７３に供給される。ローテーション量決定部１７３は、ライン相関計算部１７２から供給される相関値に基づき、注目ラインとキーラインとの相関が最大になるときの注目ラインのローテーション量を検出し、そのローテーション量を、注目ラインの最終的なローテーション量（以下、適宜、決定ローテーション量という）として決定する。この決定ローテーション量は、埋め込み対象データの復号結果として出力されるとともに、ラインローテーション部１７４に供給される。
【０１９６】
ラインローテーション部１７４は、フレームメモリ１７１に記憶された注目ラインを、ローテーション量決定部１７３から供給されるローテーション量だけ、ライン相関計算部１７２における場合と同様の左方向にローテーションし、さらに、そのローテーション後の注目ラインを読み出し、その注目ラインの復号結果として出力する。
【０１９７】
以上のように、埋め込み対象データが埋め込まれた画像である埋め込みデータを、画像の相関性を利用して、元の画像と埋め込み対象データに復号するようにしたので、その復号のためのオーバヘッドがなくても、埋め込みデータを、元の画像（被埋め込み対象データ）と埋め込み対象データに復号することができる。
従って、その復号画像には、基本的に、埋め込み対象データを埋め込むことによる画質の劣化は生じない。
【０１９８】
なお、上述の場合には、水平方向へのローテーションによって、被埋め込み対象データに、埋め込み対象データを埋め込むようにしたが、その他、埋め込みは、垂直方向等のローテーションによって行うことも可能である。
【０１９９】
次に、図３４は、データの相関性を利用して復号可能なように埋め込みを行う場合の、図２の統合部１１（または埋め込み部１３）の第２の構成例を示している。
【０２００】
フレームメモリ１８１には、被埋め込み対象データとしての、例えば、画像データが供給されるようになっており、フレームメモリ１８１は、その画像データを、例えば、フレーム単位で一時記憶する。
【０２０１】
ＣＰＵ（Central Processing Unit）１８２は、プログラムメモリ１８３に記憶されたプログラムを実行することで、後述する埋め込み符号化処理を行う。即ち、ＣＰＵ１８２は、そこに供給される埋め込み対象データを、例えば、１ビット単位で受信し、その１ビットごとの埋め込み対象データを、フレームメモリ１８１に記憶された画像に埋め込む。具体的には、ＣＰＵ１８２は、フレームメモリ１８１に記憶された画像を構成する一部の画素を選択し、その選択した画素に対して、埋め込み対象データに対応した処理であって、画像の相関性を利用して元に戻すことができるものを施すことにより、画素に、埋め込み対象データを埋め込む。
【０２０２】
プログラムメモリ１８３は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などで構成され、ＣＰＵ１８２に、埋め込み符号化処理を行わせるためのコンピュータプログラムを記憶している。
【０２０３】
出力Ｉ／Ｆ（Interface）３４は、フレームメモリ１８１から、埋め込み対象データの埋め込まれた画像データ（被埋め込み対象データ）を読み出し、埋め込みデータとして出力するようになされている。
【０２０４】
次に、図３５のフローチャートを参照して、図３４の統合部１１において行われる埋め込み符号化処理について説明する。
【０２０５】
フレームメモリ１８１においては、そこに供給される被埋め込み対象データとしての画像データが、１フレーム単位で記憶される。
【０２０６】
一方、ＣＰＵ１８２は、埋め込み対象データを１ビットずつ受信しており、１ビットの埋め込み対象データを受信すると、ステップＳ２１において、その１ビットの埋め込み対象データを埋め込む処理の対象とする画素（以下、適宜、処理対象画素という）を、フレームメモリ１８１に記憶された画像から選択する。
【０２０７】
ここで、本実施の形態では、例えば、図３６に示すように、フレームメモリ１８１に記憶された被埋め込み対象データとしての画像から、五の目格子状に、画素が選択される。即ち、ＣＰＵ１８２では、ステップＳ１の処理が行われるごとに、図３６において、斜線を付していない画素が、例えば、ラスタスキャン順に、順次、処理対象画素として選択される。なお、図３６におけるｐ（ｘ，ｙ）は、左からｘ番目の、上からｙ番目の画素を表している。
【０２０８】
その後、ＣＰＵ１８２は、ステップＳ２２において、埋め込み対象データが１または０のうちのいずれであるかを判定する。ステップＳ２２において、埋め込み対象データが、１または０のうちの、例えば０であると判定された場合、ステップＳ２１に戻る。即ち、ＣＰＵ１８２は、埋め込み対象データが０である場合には、処理対象画素に、何らの処理も施さずに（所定の定数としての０を加算し）、ステップＳ２１に戻り、次の１ビットの埋め込み対象データが供給されてくるのを待って、次に処理対象画素とすべき画素を選択し、以下、同様の処理を繰り返す。
【０２０９】
また、ステップＳ２２において、埋め込み対象データが、１または０のうちの、例えば１であると判定された場合、ステップＳ２３に進み、ＣＰＵ１８２は、処理対象画素に対して、所定の処理を施す。即ち、ＣＰＵ１８２は、所定の定数としての、例えば、２の、画像を構成する画素に割り当てられているビット数−１乗を、処理対象画素の画素値に加算する。
【０２１０】
従って、画像を構成する画素の画素値として、例えば、８ビットが割り当てられている場合には、ステップＳ２３では、２7が、処理対象画素の画素値に加算されることになる。
【０２１１】
なお、この加算は、画素値が、例えば、ＹＵＶなどで表現されている場合には、輝度成分Ｙ、または色成分Ｕ，Ｖのいずれに対して行っても良い。また、加算は、画素値が、例えば、ＲＧＢで表現されている場合には、Ｒ，Ｇ，Ｂのいずれに対して行っても良い。
【０２１２】
また、上述のように、８ビットの画素値に対して、２7を加算することは、その画素値の最上位ビットを反転する操作ととらえることができる。
【０２１３】
ステップＳ２３において、処理対象画素の画素値に、２7が加算された後は、ステップＳ２４に進み、その加算結果がオーバフローしているかどうかが判定される。ステップＳ２４において、加算結果がオーバフローしていないと判定された場合、ステップＳ２５をスキップして、ステップＳ２６に進み、ＣＰＵ１８２は、その加算結果を、処理対象画素の画素値として、フレームメモリ１８１に書き込み（上書きし）、ステップＳ２１に戻る。
【０２１４】
また、ステップＳ２４において、加算結果がオーバフローしていると判定された場合、即ち、加算結果が、２8以上となった場合、ステップＳ２５に進み、その加算値の補正が行われる。即ち、ステップＳ２５では、オーバフローした加算値が、例えば、そのオーバフローした分（オーバフローした加算値から２8を減算した値）に補正される。そして、ステップＳ２６に進み、ＣＰＵ１８２は、その補正後の加算結果を、処理対象画素の画素値として、フレームメモリ１８１に書き込み、次の１ビットの埋め込み対象データが供給されてくるのを待って、ステップＳ２１に戻る。
【０２１５】
なお、フレームメモリ１８１に記憶された、１フレームの画像について処理が行われた後は、出力Ｉ／Ｆ３４は、その１フレームの画像（埋め込み対象データが埋め込まれた被埋め込み対象データとしての画像）を、埋め込みデータとして読み出し、また、ＣＰＵ１８２は、フレームメモリ１８１に記憶された、次の被埋め込み対象データとしての１フレームの画像を対象に、処理を続行する。
【０２１６】
以上のように、フレームメモリ１８１に記憶された画像を構成する一部の画素を選択し、その選択した画素に対して、埋め込み対象データに対応した処理であって、画像の相関性を利用して元に戻すことができるものを施すことにより、画素に、埋め込み対象データを埋め込むことで、画像の画質の劣化を極力なくし、かつデータ量を増加せずに、画像に埋め込み対象データを埋め込むことができる。
【０２１７】
即ち、埋め込み対象データが埋め込まれた画素は、画像の相関性、即ち、ここでは、埋め込み対象データが埋め込まれなかった画素との間の相関を利用することにより、オーバヘッドなしで、元の画素（被埋め込み対象データ）と埋め込み対象データに復号（戻す）ことができる。従って、その結果得られる復号画像（再生画像）には、基本的に、埋め込み対象データを埋め込むことによる画質の劣化は生じない。
【０２１８】
次に、図３７は、図２の統合部１１（または埋め込み部１３）が図３４に示したように構成される場合の、図４の復号部２１（または復号部２３）の構成例を示している。
【０２１９】
埋め込みデータ、即ち、埋め込み対象データが埋め込まれた被埋め込み対象データとしての画像（以下、適宜、埋め込み画像ともいう）は、フレームメモリ１９１に供給されるようになされており、フレームメモリ１９１は、埋め込み画像を、例えば、フレーム単位で一時記憶する。
【０２２０】
出力Ｉ／Ｆ１９２は、フレームメモリ１９１から、ＣＰＵ１９３による、後述する埋め込み復号処理の結果得られる画像（復号画像）を読み出して出力する。
【０２２１】
ＣＰＵ１９３は、プログラムメモリ１９４に記憶されたプログラムを実行することで、埋め込み復号処理を行うようになされている。即ち、ＣＰＵ１９３は、フレームメモリ１９１に記憶された埋め込み画像を、画像の相関性を利用して元の画像としての被埋め込み対象データと、そこに埋め込まれている埋め込み対象データとに復号する。具体的には、ＣＰＵ１９３は、埋め込み画像を構成する一部の画素を、処理対象画素として選択し、図３８に示すように、その処理対象画素に対して、図３４のＣＰＵ１８２が施した処理と逆の処理を施すことで、その画素値を変更する。さらに、図３８に示すように、ＣＰＵ１９３は、画素値の変更前の処理対象画素と、その周辺画素（図３８の実施の形態では、左右に隣接する画素）との相関値Ｒ1（第１の相関）を演算するとともに、画素値の変更された処理対象画素と、その画素の周辺画素との相関値Ｒ2（第２の相関）を演算し、その相関値Ｒ1とＲ2とを比較する。そして、ＣＰＵ１９３は、その比較結果に基づいて、画素値の変更前または変更後の処理対象画素のうちのいずれか一方を、復号結果とするとともに、その処理対象画素に埋め込まれた埋め込み対象データ（ここでは、１ビットの１または０のうちのいずれか一方）を復号する。
【０２２２】
プログラムメモリ４３は、例えば、図３４のプログラムメモリ１８３と同様に構成され、ＣＰＵ１９３に、埋め込み復号化処理を行わせるためのコンピュータプログラムを記憶している。
【０２２３】
次に、図３９のフローチャートを参照して、図３７の復号部２１において行われる埋め込み復号処理について説明する。
【０２２４】
フレームメモリ１９１では、そこに供給される埋め込み画像が、１フレーム単位で順次記憶される。
【０２２５】
一方、ＣＰＵ１９３は、ステップＳ３１において、フレームメモリ１９１に記憶されたあるフレームの埋め込み画像から、復号を行う処理の対象とする画素（処理対象画素）を選択する。
【０２２６】
ここで、ＣＰＵ１９３では、図３６に示したように、図３４のＣＰＵ１８２と同様に、フレームメモリ１９１に記憶された埋め込み画像から、五の目格子状に、画素が選択される。即ち、ＣＰＵ１９３では、ステップＳ３１の処理が行われるごとに、図３６において、斜線を付していない画素が、例えば、ラインスキャン順に、順次、処理対象画素として選択される。
【０２２７】
その後、ステップＳ３２に進み、ＣＰＵ１９３は、処理対象画素に対し、図３４のＣＰＵ１８２が行った処理と逆の処理を施す。即ち、ＣＰＵ１８２は、所定の定数としての、例えば、２の、画像を構成する画素に割り当てられているビット数−１乗を、処理対象画素の画素値から減算する。
【０２２８】
従って、上述したように、画像を構成する画素の画素値として、例えば、８ビットが割り当てられている場合においては、ステップＳ３２では、２7が、処理対象画素の画素値から減算されることになる。なお、この操作も、図３５のステップＳ２３における２7の加算操作と同様に、画素値の最上位ビットを反転する操作ととらえることができる。
【０２２９】
ここで、ステップＳ３２における減算は、画素値が、例えば、ＹＵＶなどで表現されている場合には、輝度成分Ｙ、または色成分Ｕ，Ｖのいずれに対して行っても良い。また、減算は、画素値が、例えば、ＲＧＢで表現されている場合には、Ｒ，Ｇ，Ｂのいずれに対して行っても良い。但し、ステップＳ３２における減算は、図３５のステップＳ３における加算が行われたものと同一のものに対して行う必要がある。即ち、画素値が、例えば、ＹＵＶなどで表現されており、図３５のステップＳ２３における加算が、ＹＵＶのうちの、例えば、Ｙ成分に対して行われた場合には、ステップＳ３２における減算は、やはり、Ｙ成分に対して行う必要がある。
【０２３０】
ステップＳ３２において、処理対象画素の画素値から、２7が減算された後は、ステップＳ３３に進み、その減算結果がアンダフローしているかどうかが判定される。ステップＳ３３において、減算結果がアンダフローしていないと判定された場合、ステップＳ３４をスキップして、ステップＳ３５に進む。
【０２３１】
また、ステップＳ３３において、減算結果がアンダフローしていると判定された場合、即ち、加算結果が、０未満となった場合、ステップＳ３４に進み、その減算値の補正が行われる。即ち、ステップＳ３４では、アンダフローした減算値が、例えば、その減算値に２8を加算した値に補正され、ステップＳ３５に進む。
【０２３２】
ステップＳ３５では、処理対象画素の画素値（ステップＳ２２で２7を減算していないもの）（以下、適宜、第１の画素値という）Ｐ1と、その画素値から２7を減算した減算値（以下では、ステップＳ３４で補正されたものも含むものとする）（以下、適宜、第２の画素値という）Ｐ2のそれぞれについて、処理対象画素の周辺画素としての、例えば、その左右に隣接する画素との間の相関値が演算される。
【０２３３】
即ち、ステップＳ３５では、例えば、処理対象画素の第１の画素値Ｐ1と、その左右の画素それぞれの画素値との差分の絶対値が演算され、その２つの絶対値の加算値が、処理対象画素の第１の画素値Ｐ1についての相関値Ｒ1として求められる。さらに、ステップＳ３５では、処理対象画素の第２の画素値Ｐ2についても、その左右の画素それぞれの画素値との差分の絶対値どうしの加算値が演算され、それが、処理対象画素の第２の画素値Ｐ2の相関値Ｒ2として求められる。
【０２３４】
なお、ステップＳ３５において、処理対象画素との間の相関を求めるのに用いる画素は、その左右に隣接する画素に限定されるものではなく、上下に隣接する画素であっても良いし、時間的に隣接する画素であっても良い。また、必ずしも、空間的または時間的に隣接する画素である必要もない。但し、処理対象画素との相関を求めるにあたっては、図３６において、斜線を付した画素、即ち、埋め込み対象データが埋め込まれていない画素を用いるのが望ましい。これは、処理対象画素について、埋め込み対象データが埋め込まれた画素との相関を求めても、元の画像についての相関を得ることができず、従って、画像の相関性を利用することができないため、埋め込み対象データが埋め込まれた画素から、元の画素値および埋め込み対象データを、正確に復号するのが困難となるからである。また、画像の相関性を利用して、処理対象画素を復号する以上、処理対象画素との相関値を求めるのに用いる画素は、その処理対象画素との空間的または時間的距離が近いものであるのが望ましい。
【０２３５】
第１の画素値Ｐ1についての相関値Ｒ1、および第２の画素値Ｐ2についての相関値Ｒ2の算出後は、ステップＳ３６に進み、ＣＰＵ１９３において、その相関値Ｒ1とＲ2とが比較される。
【０２３６】
ステップＳ３６において、相関値Ｒ1が、相関値Ｒ2より大きい（以上である）と判定された場合、ステップＳ３７に進み、ＣＰＵ１９３において、埋め込み対象データの復号結果として、０が出力され、ステップＳ３１に戻る。そして、この場合、フレームメモリ１９１の記憶値は書き換えられず、従って、処理対象画素の画素値の復号結果は、その画素値Ｐ1のままとされる。
【０２３７】
即ち、第１の画素値Ｐ1についての相関値Ｒ1の方が、第２の画素値Ｐ2についての相関値Ｒ2より大きいということは、処理対象画素の画素値としては、画素値Ｐ2よりも、画素値Ｐ1の方が確からしいこととなるので、処理対象画素の画素値の復号結果は、その確からしい画素値Ｐ1とされる。さらに、画素値Ｐ1は、ステップＳ３２で２7が減算されていないものであるから、図３５のステップＳ２３で２7が加算されていないと考えられる。そして、図３５の埋め込み符号化処理では、埋め込み対象データが０の場合には、２7を加算しないこととしているから、第１の画素値Ｐ1についての相関値Ｒ1の方が大きく、画素値Ｐ1が、処理対象画素の画素値として確からしい場合には、そこに埋め込まれた埋め込み対象データは０ということになる。
【０２３８】
一方、ステップＳ３６において、相関値Ｒ2が、相関値Ｒ1より大きい（以上である）と判定された場合、ステップＳ３８に進み、ＣＰＵ１９３において、フレームメモリ１９１に記憶された処理対象画素の画素値が、その画素値から２7を減算した減算値、即ち、第２の画素値Ｐ2に書き換えられる。従って、この場合、処理対象画素の画素値の復号結果は、その画素値Ｐ2とされる。そして、ステップＳ３９に進み、ＣＰＵ１９３において、埋め込み対象データの復号結果として、１が出力され、ステップＳ３１に戻る。
【０２３９】
即ち、第２の画素値Ｐ2についての相関値Ｒ2の方が、第１の画素値Ｐ1についての相関値Ｒ1より大きいということは、処理対象画素の画素値としては、画素値Ｐ1よりも、画素値Ｐ2の方が確からしいこととなるので、処理対象画素の画素値の復号結果は、その確からしい画素値Ｐ2とされる。さらに、画素値Ｐ2は、ステップＳ３２で、画素値Ｐ1から２7が減算されたものであるから、図３５のステップＳ２３で、元の画素値に２7が加算されたものであると考えられる。そして、図３５の埋め込み符号化処理では、埋め込み対象データが１の場合には、２7を加算することとしているから、第２の画素値Ｐ2についての相関値Ｒ2の方が大きく、画素値Ｐ2が、処理対象画素の画素値として確からしい場合には、そこに埋め込まれた埋め込み対象データは１ということになる。
【０２４０】
ここで、上述のようにして求められる相関値Ｒ1とＲ2との差分が小さい場合には、画素値Ｐ1とＰ2のうちのいずれが、処理対象画素の画素値として確からしいかは、一概にはいえない。そこで、このような場合には、処理対象画素の左右に隣接する画素だけでなく、他の画素をも用いて、画素値Ｐ1，Ｐ2それぞれについての相関値を求め、その相関値を比較することで、画素値Ｐ1，Ｐ2のうちのいずれが、処理対象画素の画素値として確からしいかを決定することができる。
【０２４１】
以上のように、埋め込み対象データが埋め込まれた画像である埋め込みデータを、画像の相関性を利用して、元の画像と埋め込み対象データに復号するようにしたので、その復号のためのオーバヘッドがなくても、埋め込みデータを、元の画像（被埋め込み対象データ）と埋め込み対象データに復号することができる。従って、その復号画像（再生画像）には、基本的に、埋め込み対象データを埋め込むことによる画質の劣化は生じない。
【０２４２】
なお、本実施の形態では、処理対象画素と、他の画素との相関値として、それらの画素値の差分の絶対値を用いるようにしたが、相関値は、これに限定されるものではない。
【０２４３】
また、本実施の形態では、図３６に示したように、画像から、五の目格子状に、画素を選択し、その画素に、埋め込み対象データを埋め込むようにしたが、埋め込み対象データを埋め込む画素の選択パターンは、これに限定されるものではない。但し、埋め込み対象データを埋め込んだ画素の復号にあたっては、上述したように、埋め込み対象データが埋め込まれていない画素を用いて相関を求めるのが望ましく、また、画素どうしの相関は、基本的に、それらの間の空間的または時間的距離が離れるほど小さくなっていく。従って、正確な復号を行う観点からは、埋め込み対象データを埋め込む画素は、空間的または時間的に、いわゆる疎らになるように選択するのが望ましい。一方、多くの埋め込み対象データを埋め込む観点、即ち、圧縮率の観点からは、埋め込み対象データを埋め込む画素は、ある程度多くする必要がある。従って、埋め込み対象データを埋め込む画素は、復号の正確さと、圧縮率とをバランスさせて選択するのが望ましい。
【０２４４】
さらに、本実施の形態では、処理対象画素として選択された１画素に、１ビットの埋め込み対象データを埋め込むようにしたが、１画素に、２ビット以上の埋め込み対象データを埋め込むようにすることも可能である。例えば、１画素に、２ビットの埋め込み対象データを埋め込む場合には、その２ビットの埋め込み対象データにしたがって、例えば、０，２6，２7，２6＋２7のうちのいずれかを、画素値に加算するようにすれば良い。
【０２４５】
また、本実施の形態では、画素値に、０または２7のうちのいずれかを加算することで（画素値に、２7を加算しないか、または加算することで）、埋め込み対象データを埋め込むようにしたが、画素値に加算する値は、２7に限定されるものではない。但し、画素値の下位ビットにしか影響を与えないような値を加算する場合には、その加算値と、元の画素値とが、あまり異なったものとならず、従って、図３９のステップＳ３５で求められる相関値Ｒ1とＲ2も、あまり異なったものとならなくなる。これは、画素値および埋め込み対象データの復号結果の精度を劣化させることとなるから、埋め込み対象データにしたがって、画素値に加算する値は、元の画素値の上位ビットに影響を与えるような値とするのが望ましい。
【０２４６】
さらに、本実施の形態では、画素値に、所定値を加算することで、埋め込み対象データの埋め込みを行うようにしたが、埋め込み対象データの埋め込みは、加算以外の操作（例えば、ビット反転など）を、画素値に施すことによって行うことも可能である。但し、上述したように、画素値および埋め込み対象データの復号結果の精度の劣化を防止する観点から、画素値に施す操作は、元の画素値についての相関と、操作を施した画素値についての相関とが大きく異なるようなものであることが望ましい。
【０２４７】
なお、図２の統合部１１では、メディアデータに広告データを埋め込むようにしたが、メディアデータに埋め込むデータは、広告データに限定されるものではない。
【０２４８】
また、図２の統合部１１では、メディアデータおよび広告データを、メディアデータに広告データを埋め込むことで符号化するようにしたが、メディアデータおよび広告データの符号化方法は、埋め込みに限定されるものではない。但し、図２の統合部１１の符号化方法を限定しない場合には、図２の埋め込み部１３では、埋め込み方法として、データの相関を利用しない埋め込みを行う必要がある。即ち、図２の埋め込み部１３において、データの相関を利用した埋め込みを行う場合には、統合部１１が出力する中間符号化データに、何らかの相関が残っている必要があり、従って、統合部１１の符号化方法を特定しない場合には、統合部１１が出力する中間符号化データが相関性を有しないものとなっていることがあるため、埋め込み部１３の埋め込み方法は、相関性を利用しないものを用いる必要がある。
【０２４９】
ここで、中間符号化データが相関性を有しない符号化方法としては、例えば、ＣＡＴＶや衛星放送等で用いられているスクランブル等があり、統合部１１では、メディアデータと広告データをスクランブルするようにすることが可能である。この場合、復号装置２２では、そのスクランブルを解くためのデスクランブルを行う必要があるが、このデスクランブルを行うための復号提示プログラムは、埋め込み部１３において、相関を利用しない埋め込み方法によって、中間符号化データに埋め込まれる。
【０２５０】
一方、埋め込み部１３において、相関を利用した埋め込み方法を用いるには、統合部１１では、中間符号化データが何らかの相関を有するような符号化を行う必要がある。
【０２５１】
中間符号化データが相関を有するような符号化としては、上述したローテーションによる埋め込み方法があり、統合部１１において、例えば、水平ローテーションによる埋め込み等を行う場合には、埋め込み部１３では、例えば、垂直ローテーションによる埋め込みや、所定値を加算することによる、相関を利用した埋め込みを採用することができる。
【０２５２】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０２５３】
そこで、図４０は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０２５４】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク２０５やＲＯＭ２０３に予め記録しておくことができる。
【０２５５】
あるいはまた、プログラムは、フロッピーディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体２１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体２１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０２５６】
なお、プログラムは、上述したようなリムーバブル記録媒体２１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部２０８で受信し、内蔵するハードディスク２０５にインストールすることができる。
【０２５７】
コンピュータは、CPU(Central Processing Unit)２０２を内蔵している。CPU２０２には、バス２０１を介して、入出力インタフェース２１０が接続されており、CPU２０２は、入出力インタフェース２１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部２０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)２０３に格納されているプログラムを実行する。あるいは、また、CPU２０２は、ハードディスク２０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部２０８で受信されてハードディスク２０５にインストールされたプログラム、またはドライブ２０９に装着されたリムーバブル記録媒体２１１から読み出されてハードディスク２０５にインストールされたプログラムを、RAM(Random Access Memory)２０４にロードして実行する。これにより、CPU２０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU２０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース２１０を介して、LCD(Liquid CryStal Display)やスピーカ等で構成される出力部２０６から出力、あるいは、通信部２０８から送信、さらには、ハードディスク２０５に記録等させる。
【０２５８】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０２５９】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０２６０】
なお、本実施の形態では、符号化装置１（図２）において、メディアデータおよび広告データを復号、提示するプログラムを、中間符号化データに埋め込むようにしたが、中間符号化データには、その他、例えば、メディアデータおよび広告データを復号、提示するのに必要な、プログラム以外のデータを埋め込むようにすることが可能である。即ち、中間符号化データには、その中間符号化データを、元のメディアデータと広告データに復号する復号方法を特定する情報等を埋め込むことが可能である。
【０２６１】
また、メディアデータに、広告データを埋め込む場合には、常に、同一の埋め込み方法により埋め込みを行う他、例えば、メディアデータの所定の単位ごとに、広告データの埋め込みに用いる埋め込み方法を変更することが可能である。この場合、メディアデータに広告データを埋め込んだ中間符号化データには、その復号、提示を行うように必要なデータとして、メディアデータのどのような単位に、どのような埋め込み方法を用いたかといった情報を埋め込むようにすることができる。
【０２６２】
【発明の効果】
本発明の第１のデータ処理装置およびデータ処理方法、並びにプログラムによれば、第１のデータと第２のデータを符号化することにより、第３のデータが生成され、第３のデータを、第１および第２のデータに復号するのに必要な復号情報が作成される。そして、その復号情報が、第３のデータに埋め込まれ、埋め込みデータが生成される。従って、例えば、第１のデータをユーザが欲する情報とするとともに、第２のデータを広告情報とすることにより、ユーザに、広告情報を、必然的に見てもらうことが可能となる。
【０２６４】
本発明の第２のデータ処理装置およびデータ処理方法、並びにプログラムによれば、埋め込みデータが、第３のデータと、そこに埋め込まれている復号情報に復号され、第３のデータが、復号情報にしたがって、第１および第２のデータに復号される。従って、例えば、第１のデータをユーザが欲する情報とするとともに、第２のデータを広告情報とすることにより、ユーザに、広告情報を、必然的に見てもらうことが可能となる。
【図面の簡単な説明】
【図１】本発明を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
【図２】符号化装置１の構成例を示すブロック図である。
【図３】符号化装置１の処理を説明するフローチャートである。
【図４】復号装置２の構成例を示すブロック図である。
【図５】復号装置２の処理を説明するフローチャートである。
【図６】復号装置２の処理を説明するための図である。
【図７】データ処理装置を利用したダウンロードシステムを示す図である。
【図８】統合部１１（１３）の第１の構成例を示すブロック図である。
【図９】可変長符号化部３３の構成例を示すブロック図である。
【図１０】可変長符号化を説明するための図である。
【図１１】被埋め込み対象データの各値の出現頻度と、その値に割り当てられる符号の符号長との関係を示す図である。
【図１２】ハフマンテーブルの例を示す図である。
【図１３】被埋め込み対象データの各値の出現頻度に応じて割り当てられた符号と、その符号の変換を説明する図である。
【図１４】埋め込みデータの例を示す図である。
【図１５】埋め込みデータを、元の可変長符号化データに復元する方法を説明する図である。
【図１６】復号部２１（２３）の第１の構成例を示すブロック図である。
【図１７】可変長復号部５２および５６の構成例を示すブロック図である。
【図１８】ハフマンテーブル生成部５３の構成例を示すブロック図である。
【図１９】逆変換テーブル作成部５４の構成例を示すブロック図である。
【図２０】統合部１１（１３）の第２の構成例を示すブロック図である。
【図２１】符号化部９１の構成例を示すブロック図である。
【図２２】埋め込み部９２の構成例を示すブロック図である。
【図２３】ラインをローテーションすることによる埋め込み対象データの埋め込みを説明する図である。
【図２４】復号部２１（２３）の第２の構成例を示すブロック図である。
【図２５】符号化ルール復元部１２１の構成例を示すブロック図である。
【図２６】復号部１２２の構成例を示すブロック図である。
【図２７】判定部１２３の構成例を示すブロック図である。
【図２８】判定部１２３の処理を説明する図である。
【図２９】統合部１１（１３）の第３の構成例を示すブロック図である。
【図３０】ラインローテーション部１６２の処理を説明する図である。
【図３１】ラインローテーション部１６２の処理を説明する図である。
【図３２】復号部２１（２３）の第３の構成例を示すブロック図である。
【図３３】ライン相関計算部１７２の処理を説明する図である。
【図３４】統合部１１（１３）の第４の構成例を示すブロック図である。
【図３５】ＣＰＵ１８２の処理を説明するフローチャートである。
【図３６】ステップＳ２１の処理を説明するための図である。
【図３７】復号部２１（２３）の第４の構成例を示すブロック図である。
【図３８】ＣＰＵ１９３の処理を説明する図である。
【図３９】ＣＰＵ１９３の処理を説明するフローチャートである。
【図４０】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
１  符号化装置，  ２  復号装置，  ３  伝送媒体，  ４  記録媒体，  １１統合部，  １２  プログラムデータ作成部，  １３  埋め込み部，  ２１  復号部，  ２２  プログラム実行部，  ２３  復号部，  ２４  データ提示部，  ３１，３２  メモリ，  ３３  可変長符号化部，  ３４  変換テーブル作成部，３５  符号化ルール破壊部，  ３６  ＭＵＸ，  ４１  頻度テーブル作成部，４２  ハフマン木作成部，  ４３  ハフマンテーブル作成部，  ４４  符号化部，  ５１  ＤＥＭＵＸ，  ５２  可変長復号部，  ５３  ハフマンテーブル生成部，  ５４  逆変換テーブル作成部，  ５５  符号化ルール復元部，  ５６  可変長復号部，  ６１  ハフマン木作成部，  ６２  ハフマンテーブル作成部，６３  復号部，  ７１  頻度テーブル作成部，  ７２  ハフマン木作成部，  ７３  ハフマンテーブル作成部，  ８１  比較部，  ８２  符号対応付け部，  ９１  符号化部，  ９２  埋め込み部，  １０１  フレームメモリ，  １０２  コードブック作成部，  １０３  ベクトル量子化部，  １１１  ＶＱコードメモリ，  １１２  ＶＱ残差メモリ，  １１３  コードブックメモリ，  １１４  ラインローテーション部，  １１５  圧縮部，  １１６  ＭＵＸ，  １２１  符号化ルール復元部，  １２２  復号部，  １２３  判定部，  １２４  パラメータコントローラ，  １３１  ＤＥＭＵＸ，  １３２  伸張部，  １３３  ＶＱコードメモリ，  １３４  ＶＱ残差メモリ，  １３５  コードブックメモリ，  １３６  ラインローテーション部，  １４１  ベクトル逆量子化部，  １４２  加算部，  １５１  メモリ，  １５２  符号化部，  １５３  比較部，  １５４  正誤判定部，  １６１  フレームメモリ，  １６２  ラインローテーション部，  １７１  フレームメモリ，  １７２  ライン相関計算部，  １７３  ローテーション量決定部，  １７４  ラインローテーション部，  １８１  フレームメモリ，  １８２  ＣＰＵ，  １８３  プログラムメモリ，  １８４  出力Ｉ／Ｆ，  １９１  フレームメモリ，  １９２  出力Ｉ／Ｆ，  １９３  ＣＰＵ，  １９４プログラムメモリ，  ２０１  バス，  ２０２  CPU，  ２０３  ROM，  ２０４  RAM，  ２０５  ハードディスク，  ２０６  出力部，  ２０７  入力部，２０８  通信部，  ２０９  ドライブ，  ２１０  入出力インタフェース，  ２１１  リムーバブル記録媒体
【図１】
0004556087.tif 000002
【図２】
0004556087.tif 000003
【図３】
0004556087.tif 000004
【図４】
0004556087.tif 000005
【図５】
0004556087.tif 000006
【図６】
0004556087.tif 000007
【図７】
0004556087.tif 000008
【図８】
0004556087.tif 000009
【図９】
0004556087.tif 000010
【図１０】
0004556087.tif 000011
【図１１】
0004556087.tif 000012
【図１２】
0004556087.tif 000013
【図１３】
0004556087.tif 000014
【図１４】
0004556087.tif 000015
【図１５】
0004556087.tif 000016
【図１６】
0004556087.tif 000017
【図１７】
0004556087.tif 000018
【図１８】
0004556087.tif 000019
【図１９】
0004556087.tif 000020
【図２０】
0004556087.tif 000021
【図２１】
0004556087.tif 000022
【図２２】
0004556087.tif 000023
【図２３】
0004556087.tif 000024
【図２４】
0004556087.tif 000025
【図２５】
0004556087.tif 000026
【図２６】
0004556087.tif 000027
【図２７】
0004556087.tif 000028
【図２８】
0004556087.tif 000029
【図２９】
0004556087.tif 000030
【図３０】
0004556087.tif 000031
【図３１】
0004556087.tif 000032
【図３２】
0004556087.tif 000033
【図３３】
0004556087.tif 000034
【図３４】
0004556087.tif 000035
【図３５】
0004556087.tif 000036
【図３６】
0004556087.tif 000037
【図３７】
0004556087.tif 000038
【図３８】
0004556087.tif 000039
【図３９】
0004556087.tif 000040
【図４０】
0004556087.tif 000041