(57)【要約】  【課題】  データファイルにおけるオブジェクトの配列順序を用いて、情報を埋め込む情報処理装置を提供する。  【解決手段】  情報処理装置２は、シリアルに配列されたオブジェクト群の置換パターンを生成し、生成された置換パターンに対してインデクスを付与する。そして、情報処理装置２は、埋め込みたい付加情報に対応するインデクスを決定し、決定されたインデクスに対応する置換パターンを選択し、選択された置換パターンに応じて、データファイルに含まれる置換可能なオブジェクトの配列順序を変更する。【選択図】図２
2007329882.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトが含まれたデータファイルに付加情報を埋め込む情報処理装置であって、
各オブジェクトに付与される識別情報の置換パターンの中から、付加情報に対応する置換パターンを選択するパターン選択手段と、
前記パターン選択手段により選択された置換パターンに応じて、データファイルに含まれる複数のオブジェクトそれぞれに付与された識別情報を配列する識別子配列手段と
を有する情報処理装置。
【請求項２】
オブジェクトそれぞれに予め付された既存識別子を、全順序となる順序識別子に対応付ける識別子変換手段
をさらに有し、
前記パターン選択手段は、前記順序識別子の置換パターンの中から、付加情報に対応する置換パターンを選択し、
前記識別子配列手段は、選択された置換パターンに応じて、前記順序識別子、又は、これらの順序識別子に対応付けられた既存識別子を配列する
請求項１に記載の情報処理装置。
【請求項３】
複数のオブジェクトが含まれたデータファイルに付加情報を埋め込む情報処理装置であって、
既定数のオブジェクトの置換パターンの中から、付加情報に対応する置換パターンを選択するパターン選択手段と、
前記パターン選択手段により選択された置換パターンに応じて、データファイルに含まれるオブジェクトの配列を決定するオブジェクト配列手段と
を有する情報処理装置。
【請求項４】
置換可能なオブジェクトの数に応じて、オブジェクトの置換パターンをインデクスに対応付ける対応テーブルを生成するテーブル生成手段と、
付加情報に対応するインデクスを決定するインデクス決定手段と
をさらに有し、
前記パターン選択手段は、前記テーブル生成手段により生成された対応テーブルを用いて、前記インデクス決定手段により決定されたインデクスに対応する置換パターンを選択する
請求項３に記載の情報処理装置。
【請求項５】
（追加請求項）
オブジェクトのデータに基づいて、データファイルに含まれるオブジェクトの順序を特定する順序特定手段
をさらに有し、
前記オブジェクト配列手段は、前記パターン選択手段により選択された置換パターンと、前記順序特定手段により特定されたオブジェクトの順序とに応じて、データファイルに含まれるオブジェクトを配列する
請求項３に記載の情報処理装置。
【請求項６】
データファイルから付加情報を取り出す情報処理装置であって、
データファイルに含まれる複数のオブジェクトの配列順序を特定するオブジェクト順序特定手段と、
前記オブジェクト順序特定手段により特定されたオブジェクトの配列順序に基づいて、付加情報を生成する付加情報生成手段と
を有する情報処理装置。
【請求項７】
オブジェクトの属性情報は、オブジェクトの基準配列順序に対応付けられており、
前記オブジェクト順序特定手段は、オブジェクトそれぞれの属性情報に基づいて、オブジェクトの配列順序を特定し、
前記付加情報生成手段は、前記オブジェクト順序特定手段により特定されたオブジェクトの配列順序と、前記基準配列順序とに基づいて、付加情報を生成する
請求項６に記載の情報処理装置。
【請求項８】
オブジェクトそれぞれを識別するための識別情報は、オブジェクトの基準配列順序に対応付けられており、
前記オブジェクト順序特定手段は、オブジェクトそれぞれの識別情報に基づいて、オブジェクトの配列順序を特定する
請求項７に記載の情報処理装置。
【請求項９】
前記オブジェクト順序特定手段により特定されたオブジェクトの配列順序と、前記基準配列順序とを比較して、オブジェクトの置換パターンを特定する置換特定手段
をさらに有し、
前記付加情報生成手段は、前記置換特定手段により特定された置換パターンに基づいて、付加情報を生成する
請求項７又は８に記載の情報処理装置。
【請求項１０】
複数のオブジェクトが含まれたデータファイルに付加情報を埋め込む情報処理方法であって、
各オブジェクトに付与すべき識別情報の置換パターンの中から、付加情報に対応する置換パターンを選択し、
選択された前記置換パターンに応じて、データファイルに含まれる複数のオブジェクトそれぞれに付与された識別情報を配列する
情報処理方法。
【請求項１１】
データファイルから付加情報を取り出す情報処理方法であって、
データファイルに含まれる複数のオブジェクトの配列順序を特定し、
特定された前記オブジェクトの配列順序に基づいて、付加情報を生成する
情報処理方法。
【請求項１２】
複数のオブジェクトが含まれたデータファイルに付加情報を埋め込むコンピュータにおいて、
各オブジェクトに付与すべき識別情報の置換パターンの中から、付加情報に対応する置換パターンを選択するステップと、
選択された前記置換パターンに応じて、データファイルに含まれる複数のオブジェクトそれぞれに付与された識別情報を配列するステップと
を前記コンピュータに実行させるプログラム。
【請求項１３】
データファイルから付加情報を取り出すコンピュータにおいて、
データファイルに含まれる複数のオブジェクトの配列順序を特定するステップと、
特定された前記オブジェクトの配列順序に基づいて、付加情報を生成するステップと
を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データファイルに情報を埋め込む情報処理装置に関する。
【背景技術】
【０００２】
例えば、特許文献１は、デジタルウォーターマークを用いて、情報を埋め込む方法を開示する。
また、非特許文献１は、複数のオブジェクトを識別子で管理することを開示する。
【特許文献１】特表２００４−５１１９３８号公報
【特許文献２】特開２００４−００５９２５号公報
【非特許文献１】PDF Reference, fifth edition: Adobe Portable Document Format version 1.6., Adobe Systems Incorporated
【非特許文献２】http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/denshi_sukashi/index.htm
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、データファイルにおけるオブジェクトの配列順序を用いて、情報を埋め込む情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［情報処理装置］
上記目的を達成するために、本発明にかかる情報処理装置は、複数のオブジェクトが含まれたデータファイルに付加情報を埋め込む情報処理装置であって、各オブジェクトに付与される識別情報の置換パターンの中から、付加情報に対応する置換パターンを選択するパターン選択手段と、前記パターン選択手段により選択された置換パターンに応じて、データファイルに含まれる複数のオブジェクトそれぞれに付与された識別情報を配列する識別子配列手段とを有する。
【０００５】
好適には、オブジェクトそれぞれに予め付された既存識別子を、全順序となる順序識別子に対応付ける識別子変換手段をさらに有し、前記パターン選択手段は、前記順序識別子の置換パターンの中から、付加情報に対応する置換パターンを選択し、前記識別子配列手段は、選択された置換パターンに応じて、前記順序識別子、又は、これらの順序識別子に対応付けられた既存識別子を配列する。
【０００６】
また、本発明にかかる情報処理装置は、複数のオブジェクトが含まれたデータファイルに付加情報を埋め込む情報処理装置であって、既定数のオブジェクトの置換パターンの中から、付加情報に対応する置換パターンを選択するパターン選択手段と、前記パターン選択手段により選択された置換パターンに応じて、データファイルに含まれるオブジェクトの配列を決定するオブジェクト配列手段とを有する。
【０００７】
好適には、置換可能なオブジェクトの数に応じて、オブジェクトの置換パターンをインデクスに対応付ける対応テーブルを生成するテーブル生成手段と、付加情報に対応するインデクスを決定するインデクス決定手段とをさらに有し、前記パターン選択手段は、前記テーブル生成手段により生成された対応テーブルを用いて、前記インデクス決定手段により決定されたインデクスに対応する置換パターンを選択する。
好適には、オブジェクトのデータに基づいて、データファイルに含まれるオブジェクトの順序を特定する順序特定手段をさらに有し、前記オブジェクト配列手段は、前記パターン選択手段により選択された置換パターンと、前記順序特定手段により特定されたオブジェクトの順序とに応じて、データファイルに含まれるオブジェクトを配列する。
【０００８】
また、本発明にかかる情報処理装置は、データファイルから付加情報を取り出す情報処理装置であって、データファイルに含まれる複数のオブジェクトの配列順序を特定するオブジェクト順序特定手段と、前記オブジェクト順序特定手段により特定されたオブジェクトの配列順序に基づいて、付加情報を生成する付加情報生成手段とを有する。
【０００９】
好適には、オブジェクトの属性情報は、オブジェクトの基準配列順序に対応付けられており、前記オブジェクト順序特定手段は、オブジェクトそれぞれの属性情報に基づいて、オブジェクトの配列順序を特定し、前記付加情報生成手段は、前記オブジェクト順序特定手段により特定されたオブジェクトの配列順序と、前記基準配列順序とに基づいて、付加情報を生成する。
【００１０】
好適には、オブジェクトそれぞれを識別するための識別情報は、オブジェクトの基準配列順序に対応付けられており、前記オブジェクト順序特定手段は、オブジェクトそれぞれの識別情報に基づいて、オブジェクトの配列順序を特定する。
【００１１】
好適には、前記オブジェクト順序特定手段により特定されたオブジェクトの配列順序と、前記基準配列順序とを比較して、オブジェクトの置換パターンを特定する置換特定手段をさらに有し、前記付加情報生成手段は、前記置換特定手段により特定された置換パターンに基づいて、付加情報を生成する。
【００１２】
［情報処理方法］
また、本発明にかかる情報処理方法は、複数のオブジェクトが含まれたデータファイルに付加情報を埋め込む情報処理方法であって、各オブジェクトに付与すべき識別情報の置換パターンの中から、付加情報に対応する置換パターンを選択し、選択された前記置換パターンに応じて、データファイルに含まれる複数のオブジェクトそれぞれに付与された識別情報を配列する。
【００１３】
また、本発明にかかる情報処理方法は、データファイルから付加情報を取り出す情報処理方法であって、データファイルに含まれる複数のオブジェクトの配列順序を特定し、特定された前記オブジェクトの配列順序に基づいて、付加情報を生成する。
【００１４】
［プログラム］
また、本発明にかかるプログラムは、複数のオブジェクトが含まれたデータファイルに付加情報を埋め込むコンピュータにおいて、各オブジェクトに付与すべき識別情報の置換パターンの中から、付加情報に対応する置換パターンを選択するステップと、選択された前記置換パターンに応じて、データファイルに含まれる複数のオブジェクトそれぞれに付与された識別情報を配列するステップとを前記コンピュータに実行させる。
【００１５】
また、本発明にかかるプログラムは、データファイルから付加情報を取り出すコンピュータにおいて、データファイルに含まれる複数のオブジェクトの配列順序を特定するステップと、特定された前記オブジェクトの配列順序に基づいて、付加情報を生成するステップとを前記コンピュータに実行させる。
【発明の効果】
【００１６】
本発明の情報処理装置によれば、データファイルにおけるオブジェクトの配列順序を用いて、情報を埋め込むことができる。
【発明を実施するための最良の形態】
【００１７】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
データファイルに複数のオブジェクトが含まれている場合には、それぞれのオブジェクトを識別するための識別子が付与され、この識別子を用いて管理されることがある。
例えば、図１（Ａ）に例示するように、複数のオブジェクトを合成して画像を構成するようなマルチオブジェクト形式のデータがある。マルチオブジェクト形式のデータにおいては、各オブジェクトを識別するためにオブジェクトを一意的に識別する順序識別子（ラベルや識別子など）が付加される。本例では、図１（Ｂ）に例示するように、各オブジェクトにシリアル番号が付与され、このシリアル番号が順序識別子として用いられている。
【００１８】
そして、このようなデータファイルにおいては、オブジェクトと順序識別子とが互いに対応付けられていれば、オブジェクトの配列順序を変更しても、その影響はほとんどない。
【００１９】
そこで、図３に例示する本実施形態における情報処理装置２は、データファイルに埋め込みたい情報（以下、付加情報）に応じて、図１（Ｃ）のように、データファイルに含まれる複数のオブジェクトの配列順序を決定することにより、データファイルへの情報の埋め込みを実現する。
より具体的には、本例の情報処理装置２は、シリアルに配列されたオブジェクト群について、図２（Ａ）に例示する置換パターン（本例では、３つのオブジェクトを置換する場合の置換パターン）を生成し、生成された置換パターンに対して、図２（Ｂ）に例示するように既定の手順でインデクスを付与する。そして、情報処理装置２は、図２（Ｃ）に例示するように、ｎ個の付加情報（ａ１,ａ２,...,ａｎ）、例えば、ｎ＝５の場合は（ａ１,ａ２,ａ３,ａ４,ａ５）とインデクスｋとを互いに対応付ける付加情報変換式を用いて、付加情報に対応するインデクスｋを算出し、算出されたインデクスｋに対応する置換パターンに応じて、データファイルに含まれる複数のオブジェクトを配列する。付加情報変換式において、付加情報ａｉの最大ビット数をｎとするとＸ＝２ｎである。インデクスとは、置換パターンそれぞれを識別するための情報である。
ここで、置換パターンとは、既定数の要素の配列パターンであり、例えば、Ｎ個の要素が存在する場合には、Ｎ！個のパターンが存在する。したがって、データファイルに置換可能なオブジェクトがＮ個存在する場合には、｛ｌｏｇ２Ｎ!｝ビットの情報を埋め込むことができる。ここで、｛ｘ｝はｘより小さい最大の整数（ｘの少数点以下を切り捨てた整数）である。例えば、置換可能なオブジェクトが１５個存在する場合には、｛ｌｏｇ２１５!｝（＝４０）ビット、すなわち、５バイトの付加情報を埋め込むことができる。
【００２０】
［ハードウェア構成］
次に、本実施形態における情報処理装置２のハードウェア構成を説明する。
図３は、本発明にかかる情報処理方法が適応される情報処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
図３に例示するように、情報処理装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
情報処理装置２は、例えば、スキャナ／プリンタ装置３からマルチオブジェクト形式の画像データを取得し、取得された画像データに対して付加情報を埋め込む。
【００２１】
［埋め込みプログラム］
次に、情報処理装置２により実行される情報埋め込み処理を説明する。
図４は、制御装置２１（図３）により実行され、本発明にかかる情報処理方法を実現する埋め込みプログラム５の機能構成を例示する図である。
図４に例示するように、第１の埋め込みプログラム５は、データ入力部５００、インデクス決定部５１０、テーブル生成部５２０、パターン選択部５３０、及び配列処理部５４０を有する。
なお、本例では、シリアル番号（１〜Ｎの整数）を順序識別子としてオブジェクトが管理されている場合を具体例として説明する。
【００２２】
埋め込みプログラム５において、データ入力部５００は、複数のオブジェクトを含むデータファイル及び付加情報が入力されると、入力されたデータファイルをそのまま配列処理部５４０に出力し、入力された付加情報をインデクス決定部５１０に出力し、入力されたデータファイルに含まれる置換可能なオブジェクトの個数をテーブル生成部５２０に出力する。
【００２３】
インデクス決定部５１０は、埋め込みたい付加情報に対応するインデクスを生成し、生成されたインデクスをパターン選択部５３０に出力する。
本例のインデクス決定部５１０は、図２（Ｃ）に例示する付加情報変換式を用いて、入力された付加情報（ａ１,ａ２,...,ａｎ）に対応するインデクスｋを算出し、算出されたインデクスｋをパターン選択部５３０に出力する。
なお、インデクス決定部５１０は、埋め込みたい付加情報と、置換パターンに対応付けられたインデクスとを１：１で対応付けることができれば、どのような方法でインデクスを決定してもよく、例えば、予め付加情報とインデクスとを対応付けたテーブルを用いて、付加情報に対応するインデクスを決定してもよい。
【００２４】
テーブル生成部５２０は、インデクスと置換パターンとを互いに対応付ける置換テーブルを生成し、生成された置換テーブルをパターン選択部５３０に出力する。
本例のテーブル生成部５２０は、データ入力部５００から入力されたオブジェクトの個数（置換可能なオブジェクトの個数）に基づいて置換パターンを生成し、生成された置換パターンに対してインデクスを付与することにより、置換テーブルを作成する。
なお、テーブル生成部５２０は、インデクスと置換パターンとが互いに対応付けられて置換テーブルを予め格納しておき、この置換テーブルをパターン選択部５３０に出力してもよい。
【００２５】
パターン選択部５３０は、置換可能なオブジェクトの置換パターンの中から、インデクス決定部５１０から入力されたインデクスに対応する置換パターンを選択し、選択された置換パターンを配列処理部５４０に出力する。
本例のパターン選択部５３０は、テーブル生成部５２０から入力された置換テーブル（図２（Ｂ））の中から、インデクス決定部５１０から入力されたインデクスに対応する置換パターン（図２（Ａ））を選択し、選択された置換パターンを配列処理部５４０に出力する。
【００２６】
配列処理部５４０は、パターン選択部５３０により選択された置換パターンに応じて、データファイルに含まれる複数のオブジェクトの配列順序を決定する。
本例の配列処理部５４０は、パターン選択部５３０により選択された置換パターンに応じて、データ入力部５００から入力されたデータファイル（図１（Ｃ））の中の、順序識別子及びオブジェクトの組を配列する。
【００２７】
［取出しプログラム］
次に、情報取出し処理を説明する。
図５は、制御装置２１（図３）により実行される取出しプログラム６の機能構成を例示する図である。
図５に例示するように、取出しプログラム６は、データ入力部６００、配列特定部６１０、総数特定部６２０、置換特定部６３０、テーブル生成部６４０、及び付加情報生成部６５０を有する。
なお、本例では、上記埋め込みプログラム５によりデータファイルに埋め込まれた付加情報を取り出す場合を具体例として説明する。
【００２８】
取出しプログラム６において、データ入力部６００は、複数のオブジェクトが含まれたデータファイルが入力されると、入力されたデータファイルをそのまま配列特定部６１０に出力する。
本例のデータ入力部５００は、図２（Ｃ）に例示するデータファイル（付加情報に応じてオブジェクトの配列順序が決定されたもの）が入力されると、入力されたデータファイルを配列特定部６１０に出力する。
【００２９】
配列特定部６１０は、データ入力部５００から入力されたデータファイルにおけるオブジェクトの配列順序を特定し、特定された配列順序を置換特定部６３０に出力する。
本例の配列特定部６１０は、オブジェクトそれぞれに付された識別情報（図１（Ｃ）の順序識別子）に基づいて、オブジェクトの配列順序を特定する。
【００３０】
総数特定部６２０は、データファイルに含まれる置換可能なオブジェクトの個数を特定し、特定された個数をテーブル生成部６４０に出力する。
本例の総数特定部６２０は、データ入力部５００に入力されるオブジェクトの数をカウントし、カウント値（オブジェクトの総数）をテーブル生成部６４０に出力する。
【００３１】
置換特定部６３０は、配列特定部６１０により特定されたオブジェクトの配列順序と、オブジェクトの基準配列順序とを比較して、入力された複数のオブジェクトの置換パターンを特定し、特定された置換パターンを付加情報生成部６５０に出力する。ここで、基準配列順序とは、基準となる配列順序であり、例えば、オブジェクトの属性情報（識別子、位置、データ量、平均画素値など）によって規定される。本例の基準配列順序は、図１（Ｂ）に例示する順序識別子に基づいて規定されており、順序識別子の昇順、すなわち、オブジェクト１、オブジェクト２、オブジェクト３、オブジェクト４の配列順序である。
本例の置換特定部６３０は、配列特定部６１０により特定されたオブジェクトの配列順序（すなわち、順序識別子の配列順序）と、各順序識別子の値とに基づいて、置換パターン（図１（Ｃ）の例では、２→１→４→３のパターン）を特定する。
【００３２】
テーブル生成部６４０は、既定の手順（例えば、埋め込みプログラム５のテーブル生成部５２０と同じ手順）で、総数特定部６１０により特定されたオブジェクトの個数に応じた置換テーブルを生成し、生成された置換テーブルを付加情報生成部６５０に出力する。
本例のテーブル生成部６４０は、図４のテーブル生成部５２０と同じ手順で、オブジェクトの個数に応じた置換パターンを生成し、生成された置換パターンに対してインデクスを付与することにより、図４のテーブル生成部５２０により生成されるものと同一の置換テーブルを生成する。
【００３３】
付加情報生成部６５０は、配列特定部６１０により特定されたオブジェクトの配列順序に基づいて、付加情報を生成する。
より具体的には、付加情報生成部６５０は、置換特定部６３０により特定された置換パターンに基づいて、付加情報を生成する。
本例の付加情報生成部６５０は、テーブル生成部６４０により生成された置換テーブル（図２（Ｂ））を参照して、置換特定部６３０により特定された置換パターンに対応するインデクスを選択し、図２（Ｃ）に例示する付加情報変換式に、選択されたインデクスｋを代入することにより、付加情報（ａ１,ａ２,...,ａｎ）を算出する。
【００３４】
以上説明したように、本実施形態における情報処理装置２は、複数のオブジェクトの置換パターンを付加情報と対応付け、埋め込みたい付加情報に対応する置換パターンに応じて、データファイルに含まれるオブジェクトの配列順序を決定することにより、付加情報の埋め込みを実現する。
本実施形態では、置換可能なオブジェクトを並び替えるだけであるから、各オブジェクトの内容が変化することはない。オーバヘッドとなるような追加情報を付加するわけでもないため、好適である。
【００３５】
［変形例１］
次に、上記実施形態の第１の変形例を説明する。
上記実施形態では、データファイルに含まれるオブジェクトに対してシリアル番号が順序識別子として付与されている形態を説明したが、これに限定されるものではない。
第１の変形例では、オブジェクトに付与された識別子（既存識別子）の順序が不明確な場合（以下、このような識別子を非順序識別子という）を説明する。例えば、図６（Ａ）に例示するように、半順序となる非順序識別子が予め付与される場合や、識別子が数値ではなく文字列である場合などである。
このような場合に、本変形例の情報処理装置２は、図６（Ｂ）に例示するように、全順序を定義し、全順序で再構成された非順序識別子に対して、図６（Ｃ）に例示するように順序識別子を対応付け、この順序識別子と、上記置換パターンとに基づいて、オブジェクトの配列順序を決定する。この順序識別子は、オブジェクトの基準となる配列順序を示す情報であり、オブジェクトに１：１で対応付けられる。
【００３６】
図７は、第２の埋め込みプログラム５２の機能構成を例示する図である。なお、本図に示された各構成のうち、図４に示されたものと実質的に同一のものには同一の符号が付されている。
図７に例示するように、第２の埋め込みプログラム５２は、図４の埋め込みプログラム５に、識別子変換部５５０を追加した構成をとる。
【００３７】
本変形例のデータ入力部５００は、複数のオブジェクトを含むデータファイル及び付加情報が入力されると、入力されたデータファイルをそのまま配列処理部５４０及び識別子変換部５５０に出力し、入力された付加情報をインデクス決定部５１０に出力し、入力されたオブジェクトのうち、置換可能なオブジェクトの個数をテーブル生成部５２０に出力する。
【００３８】
識別子変換部５５０は、置換可能なオブジェクトの既存識別子（非順序識別子）に対して、全順序（図６（Ｂ））となる順序識別子に対応付ける。
換言すると、識別子変換部５５０は、置換可能なオブジェクトに対して、基準となる全順序（すなわち、基準となる置換パターン）を定義する。基準となる順序とは、例えば、他のテーブルにおける非順序識別子の順序（後述する属性データファイルなど）、データファイルにおける非順序識別子の出現順などである。
より具体的には、識別子変換部５５０は、図６（Ｃ）に例示するように、置換可能なオブジェクトの非順序識別子を序数からなる順序識別子に対応付ける順序定義テーブルを生成する。この順序定義テーブルは、取出しプログラム６においても同一の手順で同一のものが生成される。また、識別子変換部５５０により生成された順序定義テーブルは、データファイルに添付されて、取出しプログラム６に転送されてもよい。
本例の識別子変換部５５０は、図９に例示する属性データファイル９０２（他のテーブル）における非順序識別子の配列順に順序識別子（１〜Ｎ）を対応付け、パターン選択部５３０から入力された置換パターンの要素（１〜Ｎ）を、対応する非順序識別子で置換して、図９（Ｃ）に例示する置換パターンに変換する。換言すると、本例の識別子変換部５５０は、選択された置換パターンに含まれる序数を、順序定義テーブルに従って、非順序識別子に翻訳する。
【００３９】
本変形例の配列処理部５４０は、パターン選択部５３０により選択された置換パターンに応じて、順序識別子（識別子変換部５５０により非順序識別子に対応付けられたもの）、又は、この順序識別子に対応する非順序識別子を配列する。
より具体的には、本変形例の配列処理部５４０は、識別子変換部５５０により非順序識別子で置換された置換パターンに応じて、データファイルに含まれるオブジェクトを配列する。
【００４０】
次に、本変形例における情報処理装置２（埋め込みプログラム５２）の全体動作を説明する。
図８は、埋め込みプログラム５２（図７）による情報埋め込み処理（Ｓ１０）のフローチャートである。なお、本例では、入力される複数のオブジェクトに対して、これらの全順序を一義的に定義できない非順序識別子（図６）、又は、これらの全順序を一義的に定義できる順序識別子（図１（Ｂ））が付与されている場合を具体例として説明する。
【００４１】
図８に示すように、ステップ１００（Ｓ１００）において、データ入力部５００（図７）は、外部から、データファイル及び付加情報が入力されると、入力されたデータファイルをそのまま配列処理部５４０及び識別子変換部５５０に出力し、入力された付加情報をインデクス決定部５１０に出力し、入力されたデータファイルに含まれるオブジェクトのうち、置換可能なオブジェクトの個数をテーブル生成部５２０に出力する。
【００４２】
ステップ１１０（Ｓ１１０）において、インデクス決定部５１０は、既定の付加情報変換式（例えば、図２（Ｃ）の変換式）を用いて、データ入力部５００から入力された付加情報を整数値に変換し、変換された整数値を置換パターンのインデクスとしてパターン選択部５３０に出力する。
【００４３】
ステップ１２０（Ｓ１２０）において、テーブル生成部５２０は、データ入力部５００から入力されたオブジェクトの個数に応じて、既定の手順により、全ての置換パターンとそれぞれの置換パターンを特定するインデクスとを互いに対応付ける置換テーブル（図２（Ａ）及び（Ｂ））を生成し、生成された置換テーブルをパターン選択部５３０に出力する。
【００４４】
ステップ１３０（Ｓ１３０）において、パターン選択部５３０は、テーブル生成部５２０から入力された置換テーブルを参照して、インデクス決定部５１０から入力されたインデクスに対応する置換パターンを選択し、選択された置換パターンを識別子変換部５５０に出力する。
【００４５】
ステップ１４０（Ｓ１４０）において、識別子変換部５５０は、データ入力部５００から入力されたデータファイルにおいて、オブジェクトに対して、非順序識別子（すなわち、全順序が一義的に定義できない識別子）が付されているか順序識別子（すなわち、全順序が一義的に定義できる識別子）が付されているかを判断する。
埋め込みプログラム５２は、オブジェクトに付されている既存識別子が非順序識別子である場合に、Ｓ１５０の処理に移行し、既存識別子が順序識別子である場合に、Ｓ１７０の処理に移行する。
なお、既存識別子が順序識別子である場合に、識別子変換部５５０は、パターン選択部５３０から入力された置換パターンをそのまま配列処理部５４０に出力する。
【００４６】
ステップ１５０（Ｓ１５０）において、識別子変換部５５０は、序数からなる順序識別子を生成し、生成された順序識別子を、データ入力部５００から入力された非順序識別子に対応付ける。
具体的には、図９（Ａ）に例示するように、入力されるデータファイルには、オブジェクトそれぞれの属性情報が含まれた属性データファイル９０２と、オブジェクトのデータがシリアルに配列されたオブジェクトデータファイル９０４とが含まれている。属性データファイル９０２では、各オブジェクトの属性情報（例えば、画像オブジェクトの座標情報、色数など）がオブジェクトの非順序識別子（Ａ〜Ｄ）に対応付けられている。また、オブジェクトデータファイル９０４では、各オブジェクトのデータ（オブジェクトＤ、オブジェクトＡ、・・・）がオブジェクトの非順序識別子（Ａ〜Ｄ）に対応付けられている。
このような状況において、識別子変換部５５０は、属性データファイル９０２における非順序識別子の出現順序に応じて、各非順序識別子に対して順序識別子を割り当てる。この結果、図９（Ｂ）に例示するように、各非順序識別子に対して、属性データファイル９０２におけるエントリ順に、順序識別子が割り当てられることになる。
【００４７】
ステップ１６０（Ｓ１６０）において、識別子変換部５５０は、図９（Ｃ）に例示するように、パターン選択部５５０から入力された置換パターンの要素（４→１→２→３）を、順序識別子（序数１〜４）に対応する非順序識別子（Ａ〜Ｄ）で置換して、置換パターン（Ｄ→Ａ→Ｂ→Ｃ）を生成し、生成された置換パターンを配列処理部５４０に出力する。
【００４８】
ステップ１７０（Ｓ１７０）において、配列処理部５４０は、識別子変換部５５０から入力された置換パターンに従って、データ入力部５００から入力されたデータファイルにおいて、オブジェクトの配列順序を変更する。
例えば、図９（Ａ）に例示するオブジェクトデータファイル９０４に含まれるオブジェクトが、図９（Ｃ）に例示する置換パターンに従って置換されると、図１０（Ａ）に例示するオブジェクトデータファイル９０４’が生成される。
【００４９】
ステップ１８０（Ｓ１８０）において、配列処理部５４０は、図１０（Ａ）に例示する属性データファイル９０２と、オブジェクトの配列順序が変更されたオブジェクトデータファイル９０４’とを１つのデータファイルとして外部に出力する。
【００５０】
なお、本変形例では、図１０（Ａ）に例示するように、非順序識別子を付与した状態でオブジェクトを置換したが、図１０（Ｂ）に例示するように、オブジェクトに付加された非順序識別子（Ａ〜Ｄ）を、識別子変換部５５０により対応付けられた順序識別子（１〜４）で置換して、この順序識別子、及び、置換パターンに基づいて、オブジェクトを変更してもよい。この場合に、各オブジェクトを特定するときに、順序定義テーブル（図６（Ｃ））を参照する必要があるが、図１０の例では、属性データファイル９０２における非順序識別子の順序がそのまま順序識別子となっているため、順序定義テーブルを別途生成する必要はない。
【００５１】
以上説明したように、第１の変形例の情報処理装置２は、入力されるオブジェクトに対して一義的に全順序が定義されていない場合には、全順序となるような順序識別子を定義し、この順序識別子と、付加情報に応じた置換パターンとに基づいて、オブジェクトの配列順序を決定する。
【００５２】
［変形例２］
次に、上記実施形態の第２の変形例を説明する。
上記実施形態では、図１（Ｃ）に例示するように、データファイルにおけるオブジェクトの配列順序を、付加情報に対応する置換パターンに応じて変更したが、これに限定されるものではなく、例えば、識別子の配列順序を置換パターンに応じて変更してもよい。
例えば、図１１（Ａ）に例示するデータファイルのように、オブジェクトデータファイル９０４におけるオブジェクトが置換可能であるのと同様に、属性データファイル９０２における各エントリ（順序識別子及び属性情報）が置換可能である場合もある。
このような場合に、配列処理部５４０（図４，図７）は、置換パターンに応じて、属性データファイル９０２のエントリの配列順序を変更して、図１１（Ｂ）に例示する属性データファイル９０２’を生成する。
そして、付加情報を取り出すときには、置換特定部６３０は、図１１（Ｂ）に例示する属性データファイル９０２’における順序識別子の置換パターンを特定する。なお、属性データファイル９０２’に含まれる識別子が非順序識別子である場合には、置換特定部６３０は、同じデータファイル内のオブジェクトデータファイル９０４におけるオブジェクト（すなわち、非順序識別子）の配列順序を基準配列順序として、属性データファイル９０２’に含まれる非順序識別子の置換パターンを特定する。
【００５３】
［変形例３］
次に、上記実施形態の第３の変形例を説明する。
上記実施形態及び変形例では、オブジェクトの付属情報（例えば、識別子、属性情報など）の順序付けを用いているが、オブジェクトの付属情報が、存在しない、または、順序付けできない場合には情報埋め込みができない。
そこで、第３の変形例では、オブジェクトのデータ自身から順序付け可能な数を導出し、順序識別子として利用する。
【００５４】
図１２は、第３の埋め込みプログラム５４の機能構成を例示する図である。なお、本図に示された各構成のうち、図４に示されたものと実質的に同一のものには同一の符号が付されている。
図１２に例示するように、第３の埋め込みプログラム５４は、図４の埋め込みプログラム５に、順序特定部５６０を追加した構成をとる。
【００５５】
本変形例のデータ入力部５００は、複数のオブジェクトを含むデータファイル及び付加情報が入力されると、入力されたデータファイルをそのまま配列処理部５４０及び順序特定部５６０に出力し、入力された付加情報をインデクス決定部５１０に出力し、入力されたオブジェクトのうち、置換可能なオブジェクトの個数をテーブル生成部５２０に出力する。
【００５６】
順序特定部５６０は、オブジェクトのデータ自身から所定の順序情報を導出して、各オブジェクトデータが全順序となるように各オブジェクトデータに対応する序数を決定し、決定された各オブジェクトの序数を配列処理部５４０に出力する。
本変形例の配列処理部５４０は、パターン選択部５３０から入力された置換パターン（図２（Ａ））と、順序特定部５６０から入力された各オブジェクトの序数とに応じて、データファイルに含まれるオブジェクトを配列する。
【００５７】
次に、順序特定部５６０による順序特定方法の具体例を説明する。なお、以下の説明では、オブジェクトデータのバイトデータを順序対で表す。例えば、ｉ番目のオブジェクトデータＤｉがｒバイトの場合は、以下のように表される。
Ｄi ＝（ｄi1、ｄi2、 ．．． 、ｄir）。
【００５８】
（順序特定方法１）
まず、第１の方法として、順序特定部５６０は、オブジェクトのデータの長さｒにより順序をつけて、各オブジェクトに全順序となる序数を割り当てる。
【００５９】
（順序特定方法２）
また、第２の方法として、順序特定部５６０は、データ列に対して所定の演算により所定の数を導出して順序をつけて、各オブジェクトに序数を割り当ててもよい。
例えば、順序特定部５６０は、以下の演算によりＸを算出し、Ｘの値の大きさで順序をつける。
Ｘ＝ｄ1−ｄ2＋ｄ3−ｄ4＋ ．．． ＋ｄｒ＝Σ（−１）（ｉ＋１）ｄｉ
なお、Σは、i＝１からｉ＝ｒまでの総和である。
【００６０】
上記演算式の他に、適当な漸化式でもよいし、チェックサムやＣＲＣのような演算でもよい。漸化式としては、例えば以下のものがある。
ｘ０＝０
ｘｉ＋１＝（ｘｉ＋ｄｉ＋１）mod Ａ  （Ａは適当な整数）
Ｘ＝ｘｒ
なお、第１の方法及び第２の方法では、いずれも順序の方向は昇順でも降順でもよい。  
【００６１】
（順序特定方法３）
また、第３の方法として、順序特定部５６０は、オブジェクトデータに含まれる各データに順序をつけ、先頭から辞書式順序となるようにオブジェクトの順序を決定してもよい。
例えば、オブジェクトを構成する各データが、ａ、ｄ、ｃのいずれかであるような長さ３のオブジェクトデータが４つある場合の例を示す。例えば、４つのオブジェクトデータが以下のようなデータとする。
Ｄ１＝（ｂ、ａ、ａ）
Ｄ２＝（ａ、ｃ、ｂ）
Ｄ３＝（ｃ、ｃ、ａ）
Ｄ４＝（ａ、ｂ、ａ）
まず、各データの値に対して順序を決定する。本例では、ａ ＜ ｂ ＜ ｃとする。
次に、各オブジェクトの先頭のデータを、この順序に従って並べると、以下のようになる。
Ｄ２＝（ａ、ｃ、ｂ）
Ｄ４＝（ａ、ｂ、ａ）
Ｄ１＝（ｂ、ａ、ａ）
Ｄ３＝（ｃ、ｃ、ａ）
Ｄ２とＤ４は、同一の順序ａであるから、Ｄ２とＤ４について、２番目のデータの順序で再度並べると、ｂ＜ｃより、以下の順序となる。
Ｄ４＝（ａ、ｂ、ａ）
Ｄ２＝（ａ、ｃ、ｂ）
したがって、４つのオブジェクトデータの辞書式順序は、Ｄ４ ＜ Ｄ２ ＜ Ｄ１ ＜ Ｄ３ となる。
最後に辞書式順序と序数（または自然数）の順序を対応づける。例えば、Ｄ４に０、Ｄ２に１、Ｄ１に３、Ｄ３に４を対応づけて順序付けられた４つの数とオブジェクトデータの対応を決定する。
【００６２】
上記の順序特定方法において、全順序とならない場合は、順序付けできないオブジェクトをまとめて配置し、そのうちの一つを代表として選択する。例えば、同一のオブジェクトデータが複数存在する場合に適用する。例えば、第１の方法におけるデータ長、第２の方法において演算により導出された数、又は、第３の方法における辞書式順序が等しい場合に適用する。
具体的には、第１の方法において各オブジェクトの長さが、（５、４、７、４、３、４）である場合、データ長４のオブジェクトが３つ存在しているので、これらをまとめて（５、４、４、４、３、７）とし、（５、４、３、７）の序数で全順序となるようにする。
第２の方法及び第３の方法も、同様に順序付けできないオブジェクトをまとめて全順序となるようにする。
【００６３】
上記の各順序特定方法はオブジェクト内の全データを順序特定の対象データとしているが、順序特定方法２と順序特定方法３については部分的なデータを順序特定の対象としてもよい。例えば、各オブジェクトから所定のｓバイトのデータ、もしくは、ｔビットの複数のデータを選択して、上記の各順序特定方法を適用してもよい。
このように、第３の変形例では、オブジェクトデータ自身に基づいて、オブジェクトの順序識別子を決定するため、オブジェクトに付属情報が存在しない場合などにも、付加情報の埋込みが可能になる。
【００６４】
［置換テーブルの作成方法］
次に、置換テーブルの作成方法（テーブル生成部５２０，６４０によるテーブル作成手順）の一例を説明する。
置換テーブルは、序数の置換パターンを既定の手順で特定し、特定された置換パターンにインデクスを割り当てることにより作成される。したがって、置換パターンの特定が情報埋め込み側及び情報取出し側で一致している必要がある。
【００６５】
互いに重複しないｎ個の数字に対する置換全体は、互いに重複しない（ｎ−１）個の数字に対する置換全体から構成できる。なお、互いに重複しないｎ個の任意の数字は、適当な１対１対応により、１、２、...、ｎに変換でき、かつ、逆の変換も可能であるので、以下の説明では、ｎ個の数字を１、２、...、ｎとするが、これによって、一般性を失うものではない。
【００６６】
互いに重複しないｎ個の数字に対する置換全体の集合Ｓｎを構成する具体的な手順は、以下である。
［手順１］
（ｎ−１）個の数字１、２、...、ｎ−１の置換全体の集合をＳｎ−１とすると、Ｓｎ−１の各要素の数字すべてに１を足し、新たにできた集合をＳ'ｎ−１とおく。元の数字の最小値は１であるので、１を足すことによりＳ'ｎ−１の各要素において最小の数字は、２となる。
［手順２］
Ｓ'ｎ−１の各要素の数字の並び（順序対）を保ったまま、Ｓ'ｎ−１の各要素の先頭に１を追加して、ｎ個の数字からなる順序対を新たに構成し、新たにできた集合をＳ１ｎとおく。
Ｓ１ｎは、ｎ個の数字１、２、...、ｎの置換全体の集合Ｓｎの部分集合となっている。
［手順３］
Ｓ１ｎの各要素に対して互換（１，２）を適用して、新たにできた集合をＳ２ｎとおく。ここで、互換（ｍ，ｎ）とは、数字ｍと数字ｎとを入れ替える操作である。
［手順４］
同様にして、ｉ＝ｎまでＳｉ−１ｎに互換（ｉ−１，ｉ）を適用して集合Ｓｉｎを次々と構成する。
［手順５］
Ｓ１ｎ、Ｓ２ｎ、...、Ｓｎｎの和集合Ｓ'ｎが、Ｓｎとなる。
［手順６］
符号（順序符号）を割り当てる場合は、例えば、Ｓ１ｎの各要素に１〜（ｎ−１）！の符号（シリアル番号）を付与する。さらに［手順５］において各部分集合を順番に並べて、各部分集合の各要素順にインクリメントして符号（シリアル番号）を付与する。例えば、Ｓ２ｎの最初の要素が（ｎ−１）！＋１となるようにする。同様にＳｉｎの最初の要素が（ｉ−１）（ｎ−１）！＋１となるようにする。
実際に、Ｓ'ｎの要素（置換）の数は、ｎ×（ｎ−１）！＝ｎ！である。
【００６７】
なお、上記［手順３］と［手順４］は纏めて次のようにしてもよい。
ｉ＝２からｉ＝ｎまでＳｉ−１ｎに互換（ｉ−１，ｉ）を適用して集合Ｓｉｎを構成する。
【００６８】
なお、上記では、置換テーブルの作成方法の一例を示したが、情報埋め込み側と情報取出し側とで、置換パターンとインデクスとの組合せが一致していれば、他の方法で置換テーブルを生成してもよい。
【図面の簡単な説明】
【００６９】
【図１】マルチオブジェクト形式のデータファイルを例示する図である。
【図２】付加情報、インデクス及び置換パターンの関係を説明する図である。
【図３】本発明にかかる情報処理方法が適応される情報処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
【図４】制御装置２１（図３）により実行され、本発明にかかる情報処理方法を実現する埋め込みプログラム５の機能構成を例示する図である。
【図５】制御装置２１（図３）により実行される取出しプログラム６の機能構成を例示する図である。
【図６】非順序識別子及び順序識別子を説明する図である。
【図７】第２の埋め込みプログラム５２の機能構成を例示する図である。
【図８】埋め込みプログラム５２（図７）による情報埋め込み処理（Ｓ１０）のフローチャートである。
【図９】順序識別子を定義して置換パターンを翻訳する方法を例示する図である。
【図１０】第２の埋め込みプログラム５２により生成されるデータファイルを例示する図である。
【図１１】属性データファイルにおけるエントリを置換パターンに応じて置換した場合のデータファイルを例示する図である。
【図１２】第３の埋め込みプログラム５４の機能構成を例示する図である。
【符号の説明】
【００７０】
２・・・情報処理装置
５，５２・・・埋め込みプログラム
５００・・・データ入力部
５１０・・・インデクス決定部
５２０・・・テーブル生成部
５３０・・・パターン選択部
５４０・・・配列処理部
５５０・・・識別子変換部
５６０・・・順序特定部
６・・・取出しプログラム
６００・・・データ入力部
６１０・・・配列特定部
６２０・・・総数特定部
６３０・・・置換特定部
６４０・・・テーブル生成部
６５０・・・付加情報生成部
【図１】
2007329882.tif 000003
【図２】
2007329882.tif 000004
【図３】
2007329882.tif 000005
【図４】
2007329882.tif 000006
【図５】
2007329882.tif 000007
【図６】
2007329882.tif 000008
【図７】
2007329882.tif 000009
【図８】
2007329882.tif 000010
【図９】
2007329882.tif 000011
【図１０】
2007329882.tif 000012
【図１１】
2007329882.tif 000013
【図１２】
2007329882.tif 000014