(57)【要約】ハフマン・コード長情報を生成する方法の実施形態を提供すること。もちろん、本発明の範囲が提供された特定の実施形態に限られるものではないが、このような一実施形態では、データ構造が用いられる。
2004525537.tif 000002
【特許請求の範囲】
【請求項１】
データ構造を使用して、コード化しようとするシンボルのためのコード長を生成する方法であって、
コード化されているシンボルの頻度に少なくとも部分的に基づいて、データ構造をソートすること、データ構造内のシンボルを組み合わせること、およびシンボル長を更新することを含む方法。
【請求項２】
最初に、コード化しようとするそれぞれのシンボルに、異なるビット・フラグおよび同じ長さが割り当てられる請求項１に記載の方法。
【請求項３】
同じ長さが最初にゼロである請求項２に記載の方法。
【請求項４】
データ構造が、少なくとも２つの部分、すなわち、シンボル・インデックスと関連するシンボル長情報を有する第１の部分および、グループ頻度と割当ビット・フラグ情報を有する第２の部分を有する請求項２に記載の方法。
【請求項５】
シンボルが頻度に基づいて降順でデータ構造内でソートされる請求項４に記載の方法。
【請求項６】
シンボルが最小頻度シンボルで始まるデータ構造内で組み合わせられる請求項５に記載の方法。
【請求項７】
シンボル長情報が更新されて、データ構造内で組み合わせられたシンボルを反映した後、シンボルが頻度に基づいて降順で再ソートされる請求項６に記載の方法。
【請求項８】
シンボルが頻度に基づいて昇順でデータ構造内でソートされる請求項４に記載の方法。
【請求項９】
シンボルが最小頻度シンボルで始まるデータ構造内で組み合わせられる請求項８に記載の方法。
【請求項１０】
シンボル長情報が更新されて、データ構造内で組み合わせられたシンボルを反映した後、シンボルが頻度に基づいて昇順で再ソートされる請求項９に記載の方法。
【請求項１１】
ゼロ頻度を有するシンボルが省略される請求項１に記載の方法。
【請求項１２】
ハフマン木を生成せずに、ハフマン・コードに従ってコード化しようとする１グループのシンボルのためのコード長を生成する方法であって、
（ａ）頻度によってシンボルをソートし、異なるフラグおよび同じ初期長をそれぞれのシンボルに割り当てること、
（ｂ）最小頻度シンボルで開始して、シンボル・フラグを組み合わせること、
（ｃ）シンボルを再ソートし、長さ情報を更新して、組合せを反映すること、
もはや組み合わせるべきシンボルがなくなるまで、（ｂ）および（ｃ）を繰り返すことを含む方法。
【請求項１３】
頻度によってシンボルをソートすることが、ゼロ頻度を有するシンボルを省略することを含む請求項１２に記載の方法。
【請求項１４】
同じ初期長がゼロを有する請求項１２に記載の方法。
【請求項１５】
頻度によってソートされるシンボル・インデックスおよび最初に割り当てられた長さとを有する第１の部分と、
グループ頻度情報およびそれぞれの各シンボルに対応する割り当てられたビット・フラグを有する第２の部分と
の少なくとも２つの部分を有するデータ構造。
【請求項１６】
シンボルが頻度により降順でデータ構造内でソートされる請求項１５に記載のデータ構造。
【請求項１７】
シンボルが頻度により昇順でデータ構造内でソートされる請求項１５に記載のデータ構造。
【請求項１８】
命令が実行されたとき、データ構造を使用して実行される、コード化しようとするシンボルに対してコード長を生成する方法、すなわち
コード化されているシンボルの頻度に、少なくとも部分的に基づいて、データ構造をソートし、データ構造内のシンボルを組み合わせ、およびシンボル長を更新する方法を実施することになる命令を格納した記憶媒体を備える製品。
【請求項１９】
前記命令が実行されたとき、最初にコード化しようとするそれぞれのシンボルに、異なるビット・フラグおよび同じ長さが割り当てられる請求項１８に記載の製品。
【請求項２０】
前記命令が実行されたとき、データ構造が、
少なくとも２つの部分、すなわち、シンボル・インデックスおよび関連するシンボル長情報を有する第１の部分と、グループ頻度および割当ビット・フラグ情報を有する第２の部分とを有する請求項１９に記載の製品。
【請求項２１】
命令が実行されたとき、コード化しようとするシンボルに対するコード長を生成するためにデータ構造を初期化する方法、すなわち
頻度によってシンボルをソートし、異なるフラグおよび同じ初期長をそれぞれのシンボルに割り当てる方法が実行される命令を格納した記憶媒体を備える製品。
【請求項２２】
前記命令が実行されたときさらに、それぞれのシンボルにゼロの初期長が割り当てられる請求項２１に記載の製品。
【請求項２３】
前記命令が実行されたときさらに、データ構造が、それぞれのシンボルのためのグループ頻度情報を有する請求項２１に記載の製品。
【請求項２４】
シンボルをエンコードする方法であって、
コード長情報を使用してシンボルをエンコードすること、
ハフマン木を使用せずにコード長情報を生成することを含む方法。
【請求項２５】
ハフマン木を使用せずに、コード長情報を生成することが、データ構造を用いることを含む請求項２４に記載の方法。
【請求項２６】
前記データ構造が、シンボル・インデックス、それぞれのシンボルのためのグループ頻度情報、最初に割り当てられたビット・フラグおよびコード長を有する請求項２５に記載の方法。
【請求項２７】
シンボルをデコードする方法であって、
ハフマン木を使用せずに生成されたコード長情報を使用してエンコードされているシンボルをデコードすることを含む方法。
【請求項２８】
コード長情報がデータ構造を使用して生成された請求項２７に記載の方法。
【請求項２９】
データ構造が、シンボル・インデックス、それぞれのシンボルのためのグループ頻度情報、最初に割り当てられたビット・フラグおよびコード長を有する請求項２７に記載の方法。
【発明の詳細な説明】
【０００１】
（関連出願）
本特許出願は、Ａｃｈａｒｙａらによる、同時出願された米国特許出願第０９／７０４，３８０号、「Ａ  Ｍｅｔｈｏｄ  ｏｆ  Ｐｅｒｆｏｒｍｉｎｇ  Ｈｕｆｆｍａｎ  Ｄｅｃｏｄｉｎｇ」（代理人整理番号第０４２３９０号、Ｐ９８２０）に関するものであり、本発明の譲受人に譲受され、かつ参照により、本明細書に組み込んである。
【０００２】
（背景）
本開示は、ハフマン・コーディングに関する。
【０００３】
周知のように、１組のシンボルのハフマン・コードは、ソース・シンボルの出現確率に少なくとも部分的に基づいて生成される。通常「ハフマン木」と呼ばれる２分木が生成されて、２進コードおよびコード長を抽出する。たとえば、Ｄ．Ａ．Ｈｕｆｆｍａｎ、「Ａ  Ｍｅｔｈｏｄ  ｆｏｒ  ｔｈｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  ｏｆ  Ｍｉｎｉｍｕｍ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅｓ」（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＲＥ，Ｖｏｌｕｍｅ  ４０  Ｎｏ．９，ｐａｇｅｓ  １０９８〜１１０１，１９５２）を参照されたい。上述の文書で、Ｄ．Ａ．Ｈｕｆｆｍａｎは、このようにプロセスを記述している。
・すべての可能なシンボルをその確率とともに列挙する。
・最小の確率を有する２つのシンボルを見つける。
・これらを、その確率が個々の確率の合計である、両方のシンボルを含む単一の集合と置き換える。
・リストがただ１つのメンバしか含まなくなるまで繰り返す。
この手順により、複数の集合の再帰的に構造化された集合が作成される。そのそれぞれが正確に２つのメンバを含む。したがって、それは、「葉」としてのシンボルを有する２分木（「ハフマン木」）として表すことができる。次いで、特定のシンボルのためのコード（「ハフマン・コード」）を形成するために、２分木を根からそのシンボルまでトラバースし、左の枝には「０」を、右の枝には「１」を記録する。しかし、この手順についての１つの問題点は、得られるハフマン木が一意ではないことである。このようなコードの応用例の一例が、ＧＺＩＰなどのテキスト圧縮である。ＧＺＩＰは、「無料の」または自由に使用可能なＵＮＩＸ（登録商標）のようなオペレーション・システムを開発するという目標を有するＧＮＵ（Ｇｎｕ’ｓ  Ｎｏｔ  Ｕｎｉｘ）プロジェクトの下で開発されたテキスト圧縮ユーティリティであり、ＵＮＩＸオペレーション・システム上で「ｃｏｍｐｒｅｓｓ」テキスト圧縮ユーティリティを置き換えるためのものである。たとえば、ウェブサイト「ｈｔｔｐ：／／ｗｗｗ．ｇｚｉｐ．ｏｒｈ／」のｇｚｉｐ−１．２．４．ｔａｒとして使用可能なＧａｉｌｌｙ，Ｊ．Ｌ．およびＡｄｌｅｒ，Ｍ．による「ＧＺＩＰ  ｄｏｃｕｍｅｎｔａｔｉｏｎ  ａｎｄ  ｓｏｕｒｃｅｓ」を参照されたい。ＧＺＩＰでは、ハフマン木情報が、圧縮されたテキストとともに１組のコード長で、エンコーダからデコーダに通過する。したがって、エンコーダとデコーダは共に、このコード長情報に基づいて、一意のハフマン・コードを生成する。しかし、対応するハフマン木を構築することにより、ハフマン・コードのための長さ情報を生成することは非効率的である。特に、ハフマン木から得られるハフマン・コードは、エンコーダおよびデコーダがコード長情報から同じハフマン・コードを生成するので、通常、放棄されてしまう。したがって、コード長情報を生成するための別のアプローチが使用可能であれば、望ましいであろう。
【０００４】
本発明の主題については、本明細書の結論部分において、詳細に記載しかつ明確に特許請求することとする。しかし、本発明は、構成およびオペレーションの方法と、その目的、特徴、利点の両方に関して、以下の詳細な説明を添付図面と合わせて参照することにより、最も良く理解されるであろう。
【０００５】
（詳細な説明）
以下の詳細な説明において、本発明を完全に理解するために、多数の具体的な詳細事項を記載する。しかし、これらの具体的な詳細事項なしに本発明を実施できることは当業者なら理解するであろう。他の例においては、本発明の意味が不明確とならないように、周知の方法、手順、構成要素、回路について詳細に記述していない。
【０００６】
上記に記述したように、１組のシンボルのためのハフマン・コードが、少なくとも部分的には、ソース・シンボルの出現確率に基づいて生成される。したがって、通常ハフマン木と呼ぶ２分木が生成されて、２進コードおよびコード長を抽出する。たとえば、ＧＺＩＰなどのテキスト圧縮規格のための一応用例では、もちろん、本発明の範囲がこの特定の応用例に限定されないが、ハフマン木情報は、圧縮されたテキスト・データを有する１組のコード長として、エンコーダからデコーダに通過する。エンコーダとデコーダの両方は、コード長情報に基づいて一意のハフマン・コードを生成する。しかし、対応するハフマン木を構築することにより、ハフマン・コードのための長さ情報を生成することは非効率的であり、かつしばしば冗長である。ハフマン・コードがハフマン木から作成された後に、コードは、エンコーダおよびデコーダが長さ情報に基づいてハフマン・コードを生成するので、放棄されてしまう。したがって、ハフマン木を作成せずに、長さ情報を判断できるならば、望ましいであろう。
【０００７】
データ構造を使用して、エンコードしようとするコードのためのコード長を生成する方法の本発明による一実施形態が提供される。この特定の実施形態では、コード化されているシンボルの頻度に少なくとも部分的に基づいて、データ構造がソートされ、データ構造内のシンボルが組み合わされ、シンボル長が更新される。この特定の実施形態では、データ構造は、シンボルの出現確率が周知であるハフマン木を生成せずに、１グループのシンボルからハフマン・コードの長さを抽出することを助ける。本発明の範囲がこの特定の実施形態に限定されるものではないが、ソフトウェアとハードウェアの実施の両方に適切なメモリの計算と使用の両方において効率的であることが、実験結果から示されている。
【０００８】
図１は、対応する頻度とともに１組のシンボルを例示する表であるが、もちろん、これは単に選択的な例として提供するものである。本発明によるコード長を生成する方法の一実施形態がこの集合のシンボルに適用できる。図１は、１組の１８シンボルを例示しているが、もちろん、本発明の範囲がこの点に限定されるものではない。この特定の例では、繰り返すが、本発明の範囲がこの例に限定されるものではないが、頻度情報を点検すると、図１の陰影を付けた領域のインデックス番号７と１３である２つのシンボルが、このシンボルの集合内では出現しないことが分かる。したがって、これらのシンボルは、ハフマン・コーディングについて考慮する必要はない。この特定の実施形態では、ゼロ頻度を有するシンボルが省略されているが、本発明の範囲がこの点に限定されるものではない。
【０００９】
この特定の実施形態では、繰り返すが、本発明の範囲がこの点に限定されるものではないが、用いるべきデータ構造は少なくとも２つの部分を有する。上記に表示したように、本発明の範囲がこの特定のデータ構造に限定されるものではないことに留意されたい。明らかに、この特定のデータ構造の多くの修正形態が可能であり、依然として上記に記述した内容の精神および範囲内にある。しかし、この実施形態については、１部分が図２に例示してある。データ構造のこの部分が、それぞれのゼロ以外の頻度シンボルのためのインデックスおよび長さ情報を追跡し、または格納する。図２に例示したように、この部分が、頻度およびシンボル・インデックスで、ゼロ長を有し降順で初期化される。もちろん、たとえば、昇順を使用するなどの他の実施形態も適用可能である。図２は、図１のシンボルに適用される一実施形態の、この第１の部分を例示する図である。
【００１０】
例示してあるように、図２は、ゼロ以外の１６の頻度シンボルに対応するゼロから１５までの１６エントリを含む。この特定のデータ構造では、本発明の範囲がこの点に限定されるものではないが、第１のフィールドすなわち第１の列は、上記で記述したソート・オペレーション後の、関連するシンボル・インデックスを示す。図２に例示したシンボル頻度情報はデータ構造の一部ではないが、ここでは単に例示目的で記載している。この例では、頻度で降順のシンボルを例示している。データ構造の第２のフィールドすなわち第２の列は、繰り返すが、本発明の範囲がこの点にまたはこの特定の実施形態に限定されるものではないが、それぞれのシンボルのための長さ情報を有し、ゼロに初期化される。
【００１１】
図２のデータまたはシンボルを使用した初期化後の、この特定の実施形態に対するデータ構造の第２の部または第２の部分が図３に例示すなわち示してある。この特定の実施形態では、データ構造のこの部分の第１のフィールド、つまり図３に例示した部分にはそのグループに対する頻度が入っている。この特定の実施形態の第２のフィールドにはビット・フラグが入っている。ビット・フラグは、そのグループに属するシンボルのエントリ番号に対応するか、またはエントリ番号を表示する。たとえば、図３に例示したように、陰影を付けた区域は、エントリ番号３を有するシンボルを含む。この特定のシンボルについては、グループ頻度は３であり、ビット・フラグは、
ビット番号：（１５−−−−−３２１０）
ビット値：  ００００  ００００  ００００  １０００
に設定される。
つまり、この例では、ビット番号３が「１」に設定され、残りのビットは「０」に設定される。
【００１２】
上記に記述したように、最初に、コード化しようとするシンボルに、それぞれのシンボルのための異なるビット・フラグが割り当てられる。繰り返すが、この特定の実施形態では、本発明の範囲がこの点に限定されるものではないが、コード長は、最初、それぞれのシンボルに対してゼロを有する。以下にさらに詳細に記述するが、この特定の実施形態では、初期化されたデータ構造を用いて、シンボル・フラグが、最小頻度シンボルから開始して、組み合わせられる。次いで、シンボルは再ソートされ、頻度情報は更新されて、その組合せを反映する。次いで、信号フラグを組み合わせ、再ソートするというこれらのオペレーションを、組み合わしようとするシンボルがなくなるまで、繰り返す。
【００１３】
上記に記述したように、上記に記述した実施形態などのデータ構造を初期化し、ここで「ｎｏ＿ｏｆ＿ｇｒｏｕｐ」に指定されている「カウンタ」を、ここでは１６である、ゼロ以外の頻度シンボルの数に設定することにより、プロセスが開始される。次に、この「カウンタ」、つまり、ｎｏ＿ｏｆ＿ｇｒｏｕｐが、１より大きい間、以下のオペレーションが実施される。
開始
１：上述したように、データ構造（パートＩおよびＩＩの両方）を初期化し、ｎｏ＿ｏｆ＿ｇｒｏｕｐをゼロ以外の頻度シンボルの数に設定する。
２：ｗｈｉｌｅ（ｎｏ＿ｏｆ＿ｇｒｏｕｐ  ＞１）｛
２．１：パートＩＩのデータ構造内の最後の２つのグループをマージし、それを再びリスト内に挿入する。
／＊  グループ頻度のためのマージ・オペレーションは、単にそれを加算するだけであり、第２のフィールドのためのマージ・オペレーションは、単にビット毎の「ＯＲ」オペレーションである。両方とも、ソフトウェアおよびハードウェアでの実装が非常に簡単である。図５は、このステップのための一例を示す図である。分かるように、最後の２つのグループがマージされ、再び（陰影区域に示す）リスト内に挿入される。常に２つのグループを１つにマージしているために、メモリが再使用でき、初期化後に、新しいメモリを動的に割り当てる必要がない。＊／
２．２：パートＩのデータ構造内の長さ情報を更新する。
／＊  このステップは、マージされたビット・フラグ（パートＩＩのデータ構造内の第２のフィールド）内の「１」ビットをスキャンすることによってなされ、データ構造内の対応するエントリ内で１だけ、長さ情報を増加する。図４は、図５に示したマージ・ステップ後の、更新を示す図である。＊／
２．３：ｎｏ＿ｏｆ＿ｇｒｏｕｐを１だけ減少させる。
｝／＊ｗｈｉｌｅの終了＊／
終了
【００１４】
図５に例示したように、たとえば、データ構造の第２の部すなわち第２の部分内の最後の２つの「グループ」または「行」が、組み合わされるかまたはマージされ、図５に例示したように、データ構造のこの部分が再ソートされる。つまり、この特定の実施形態では、組み合わされたシンボルは、グループ頻度に基づいてデータ構造内で適切にソートされる。
【００１５】
同様に、本発明の範囲がこの点に限定されるものではないが、グループ頻度のためのマージまたは組合せオペレーションは、この特定の実施形態では、単に頻度を加算することによって実施でき、この特定の実施形態のためのデータ構造の第２のフィールドのためのマージ／組合せオペレーションが、「ビット毎の」論理ＯＲオペレーションとして実施できる。このことにより、ソフトウェアおよび／またはハードウェアで実装する場合の利点が提供される。この特定の実施形態の別の利点が、加算および論理ＯＲオペレーションなどのオペレーションの実施のしやすさに加えて、効率的なメモリの使用である。
【００１６】
上記に記述したように、組合せまたはマージ・オペレーションにより、２つの「グループ」または「行」が１つに組み合わせられることとなる。したがって、割り当てられているメモリを再使用でき、初期化後の新しいメモリの動的割当が、減少または回避できる。
【００１７】
次に、この特定の実施形態のためのデータ構造の第１の部すなわち第１の部分内の長さ情報が更新されて、以前のマージングまたは組合せオペレーションを反映する。このことは、たとえば、この特定の実施形態については、図４に例示してある。このオペレーションを実施するための１つの方法が、本発明の範囲がこの点に限定されるものではないが、マージされたビット・フラグの「１」ビットをスキャンすることによるものである。つまり、この特定の実施形態では、データ構造の第２の部分内の第２のフィールドがスキャンされ、長さ情報が、データ構造の第１の部分または部内の対応するエントリ内で、１だけ増加または増補される。
【００１８】
次に、「カウンタ」、つまりここではｎｏ＿ｏｆ＿ｇｒｏｕｐが、１だけ減少される。この特定の実施形態では、以前のオペレーションを、カウンタが値１に到達するまで繰り返す。
【００１９】
この特定の実施形態については、いったん「カウンタ」が１に到達すると、図６に例示したように、総グループ頻度に等しいグループ頻度を有するデータ構造の第２の部分内には１グループまたは行があるべきであり、ビット・フラグ内のすべてのビットが１に設定されるべきであることに留意されたい。しかし、同様に、図７は、このことが出現したコード長情報の最終結果を示す図である。したがって、図７に例示したように、所望のコード長情報が得られる。
【００２０】
上記に記述したように、コード長情報を生成する方法のこの特定の実施形態については、いくつかの利点が存在する。上記に説明したように、たとえばハフマン木を生成することと比較して、メモリ使用が削減され、メモリの動的割当が回避できるか、または動的に割り当てるべきメモリの量が削減される。同様に、計算上の複雑さも減少する。
【００２１】
同様に、上記に記述したように、上記に記述した実施形態を実施するために用いられるオペレーションを、ハードウェアまたはソフトウェアで実装することは比較的容易であるが、本発明の範囲がこれらの特定のオペレーションにおけるこれらの実施形態に限定されるものではない。したがって、ハフマン・コード長情報をハフマン木を生成せずに抽出または作成することができる。
【００２２】
本発明による代替実施形態では、シンボルをエンコードする方法が、コード長情報を使用してシンボルをエンコードすること、たとえば、コード長情報を生成するための上記に記述した実施形態を使用することなどの、ハフマン木を使用せずにコード長情報を生成することを含むが、もちろん、本発明の範囲が前の実施形態に限定されるものではない。この状況下では、長さ情報がハフマン・コードから生成される場合に、シンボルをエンコードするために長さ情報を用いることを、もちろん、理解されよう。同様に、本発明による別の代替実施形態では、シンボルをデコードする方法が、ハフマン木を使用せずに生成されたコード長情報を使用してエンコードされたシンボルをデコードすることを含むことができる。繰り返すが、この状況下において、シンボルをエンコードするために用いられる長さ情報が、ハフマン・コードから生成されることを理解されたい。繰り返すが、コード長情報を生成するための１つのアプローチが、上記に記述した実施形態を含む。
【００２３】
特定の実施形態のみを記述してきたが、本発明の範囲が特定の実施形態または実装形態に限定されるものではないことを、もちろん、理解されるであろう。たとえば、一実施形態はハードウェアでなされ、別の実施形態はソフトウェアでなされることがあり得る。同様に、一実施形態が、たとえば、ファームウェア、あるいはハードウェア、ソフトウェア、またはファームウェアの組合せでもよい。同様に、本発明の範囲がこの点に限定されるものではないが、一実施形態が、記憶媒体などの製品を備えることができる。たとえば、ＣＤ−ＲＯＭやディスクなどの記憶媒体が、それに命令を格納していることがあり、コンピュータ・システムやプラットフォームまたは画像作成システムなどのシステムによって実行された場合、その結果、たとえば、上記に記述したようなハフマン・コード長情報を生成する方法などの、本発明による方法の一実施形態を実行できる。同様に、データ構造を初期化し、シンボルをエンコードし、かつ／またはシンボルをデコードする方法の実施形態を本発明に従って実行できる。
【００２４】
本発明のある特徴について、本明細書に例示し記述してきたが、当業者には、多くの修正形態、置換形態、変更形態、均等物が考えられるであろう。したがって、頭記の特許請求の範囲は、すべてのこのような修正形態および変更形態を、本発明の真の趣旨内に入るものとして、包含することを意図することを理解されるであろう。
【図面の簡単な説明】
【図１】
本発明による一実施形態が適用できる、対応する頻度とともに１組のシンボルを例示する表である。
【図２】
図１に示したデータの初期化の後の、本発明による一実施形態の第１の部分を例示する表である。
【図３】
図２に示したデータの初期化の後の、本発明による一実施形態の第２の部分を例示する表である。
【図４】
第１のマージング・オペレーションが適用された後の図２を示す表である。
【図５】
第１のマージング・オペレーションが適用された後の図３を示す表である。
【図６】
マージング・オペレーションが完了した後の図５を示す表である。
【図７】
マージング・オペレーションが完了した後の図４を示す表である。
【図１】
2004525537.tif 000003
【図２】
2004525537.tif 000004
【図３】
2004525537.tif 000005
【図４】
2004525537.tif 000006
【図５】
2004525537.tif 000007
【図６】
2004525537.tif 000008
【図７】
2004525537.tif 000009
【国際公開パンフレット】
2004525537.tif 000010
2004525537.tif 000011
2004525537.tif 000012
2004525537.tif 000013
2004525537.tif 000014
2004525537.tif 000015
2004525537.tif 000016
2004525537.tif 000017
2004525537.tif 000018
2004525537.tif 000019
2004525537.tif 000020
2004525537.tif 000021
2004525537.tif 000022
2004525537.tif 000023
2004525537.tif 000024
2004525537.tif 000025
2004525537.tif 000026
2004525537.tif 000027
2004525537.tif 000028
2004525537.tif 000029
2004525537.tif 000030
2004525537.tif 000031
2004525537.tif 000032
2004525537.tif 000033
【国際公開パンフレット（コレクトバージョン）】
2004525537.tif 000034
【国際調査報告】
2004525537.tif 000035
2004525537.tif 000036
2004525537.tif 000037