(57)【特許請求の範囲】
【請求項１】
データを記録する方法において、
つぎの順次のステップ、すなわち、
−  所定のコンテナ長（lｅ；lｍ）を有するデータコンテナ（KｅLｅVｅ；KｍLｍVｍ）を記録するステップと、
−  バックポインタを示すキー（Kｂｐ）を記録するステップと、
−  長さ指示子（Lｂｐ）を記録するステップと、
−  上記のコンテナ長（lｅ；lｍ）を示す値（Vｂｐ）を記録するステップとを有することを特徴とする、
データを記録する方法。
【請求項２】
さらに
−  前記の長さ指示子を記録するステップを有する、
請求項１に記載の方法。
【請求項３】
さらに
−  前記のバックポインタを指示するキーを記憶するステップを有する、
請求項２に記載の方法。
【請求項４】
媒体上のデータの集合を、記録の順序とは逆の順序で取り出す方法において、
−  データの第１の集合にアクセスし、
−  バックポインタを示すキー（Kｂｐ）にアクセスするステップと、
−  コンテナ長を示す値（Vｂｐ）を読み出すステップと、
−  当該値（Vｂｐ）を使用してデータの第２の集合（KｅLｅVｅ；KｍLｍVｍ）にアクセスするステップとを有することを特徴とする、
媒体上のデータの集合を記録の順序とは逆の順序で取り出す方法。
【請求項５】
前記のデータの集合をＫＬＶ符号化する、
請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ構造に関し、殊にディジタルビデオ、ディジタル音声および／または関連するメタデータについてのデータ構造に関する。
【０００２】
今日では世界的にディジタル技術が広く使用されることにより、ビデオであれ、音声であり、または別の任意の素材であれ、ディジタルコンテンツのディジタル構造を標準化するさまざまな提案がなされている。このような提案のうちの１つがＭＸＦ（Material eXchange Format）である。
【０００３】
これらのフォーマットによって得られるのは、第１のマシンによって媒体に記憶されるかまたはディジタルストリームとして送出される１つのまとまったデータの集合（またはファイル）として、データを構造化する複数の規則である。これらの規則により、任意の第２のマシンは、このディジタルストリームを受信するかまたは媒体を読み出す場合、このデータを正しく取り出すことができるのである。
【０００４】
このような方式に沿って、ファイル、例えばＭＸＦファイルおよび殊にＭＸＦファイルに含まれるメタデータに対する構造としてＫＬＶ（キー（Key）、長さ（Length）、値（Value））符号化を使用することがすでに提案されている。特許明細書WO 02/21 845には、ＭＸＦファイルにおいてＫＬＶ符号化を使用する例が示されている。
【０００５】
正確にいうと、ＫＬＶ符号化により、以下のデータ構造、すなわち
−  カプセル化されたデータのタイプを示す標準化されたキー、これに続いて、
−  カプセル化されたデータの長さの指示子、これに続いて
−  カプセル化されたデータ
の繰り返しが提案される（SMPTE標準 SMPTE 336M Data Encoding Protocol Using KLVも参照されたい）。
【０００６】
この構造に本来的であるように、このタイプの符号化は殊に、正方向に（はじめから終わりに向かって）ファイルを読み出す場合に適合されている。すなわち、上記のキーを読み出し、つぎに長さを、さらにそのつぎにこの長さに依存して値を読み出す場合に適合されているのである。しかしながらこのデータ構造は、ファイルを逆方向に簡単に読み出すためには機能しない。それは最初に出現するデータは、その長さの指示のまったくないカプセル化されたデータだからである。
【０００７】
この欠点を改善するために、長さの等しくない複数のＫＬＶブロックを読み出す場合であっても、インデックステーブルを使用して、ＫＬＶ符号化されたデータの指定したブロックにジャンプできるようにすることが提案されている。しかしながら殊にＫＬＶ符号化されたデータに正方向に簡単にアクセスできるのに比べて、インデックステーブルの使用は複雑である。
【０００８】
本発明の目的は、（ビデオ、音声および／またはメタデータであれ）カプセル化されたデータに正方向および逆方向のいずれにも簡単にアクセスできるデータ構造を得ることである。
【０００９】
このために本発明によって提案されるのは、つぎの順次のステップ、すなわち、
−  所定のコンテナ長を有するデータコンテナを記録するステップと、
−  バックポインタを示すキーを記録するステップと、
−  長さ指示子を記録するステップと、
−  上記のコンテナ長を示す値を記録するステップとを有するデータ記録方法である。
【００１０】
またこの方法は有利にはつぎのステップのうちの１つまたは両方も有する。すなわち、
−  長さ指示を記録するステップ、および
−  上記のバックポインタを示すキーを記録するステップ
も有するのである。
【００１１】
この記録方法により、データの集合を逆方向に簡単に読み出すことでき、ここでこれは本発明により同時に提案される以下の方法によって行われる。すなわち、媒体上のデータの集合を、記録の順序とは逆の順序で取り出す方法において、以下のステップ、すなわち、
−  データの第１の集合にアクセスするステップと、
−  バックポインタを示すキーにアクセスするステップと、
−  コンテナ長を示す値を読み出すステップと、
−  この値を使用してデータの第２の集合にアクセスするステップとを有する方法によって行われるのである。
【００１２】
有利には上記のデータの集合をＫＬＶ符号化する。
【００１３】
このために本発明により、連続するブロックからなるデータファイルが提案され、ここで各ブロックは、順次に
−  コンテナ長を有するデータコンテナと、
−  バックポインタキーと、
−  長さ指示子と、
−  上記のコンテナ長を示す値とを含んでおり、
さらに本発明により、このようなデータファイルを収容する媒体が提案される。
【００１４】
このために本発明によって以下を順次に有するデータ構造が提案される。すなわち、
−  データコンテナと、
−  バックポインタキーと、
−  長さ指示子と、
−  上記のデータコンテナの長さを示す値とを順次に有するデータ構造が提案されるのである。
【００１５】
有利にはこのデータ構造は、以下のフィールドのうちの１つまたは両方を有する。すなわち、
−  長さ指示子
−  バッグポインタキー
のうちの１つまたは両方を有するのである。
【００１６】
データコンテナの直後に位置しかつその長さを示すバッグポインタ項目によって、このデータコンテナの末尾（すなわちつぎのデータコンテナの先頭）から、このデータコンテナの先頭までのジャンプが高速かつ簡単になり、これによってこのファイルにおいて逆方向に簡単に読み出しを行うことができるのである。
【００１７】
本発明によってＫＬＶＬおよびKLVLK符号化も提案される。
【００１８】
本発明の別の特徴は、添付の図面に基づく本発明の有利な実施形態の以下の説明を考え合わせれば明らかになろう。ここで、
−  図１は、本発明によるデータ構造の第１実施形態を示しており、
−  図２は、本発明によるデータ構造の第２実施形態を示しており、
−  図３は、新たに提案されるＫＬＶＬ符号化の例を示しており、
−  図４は、新たに提案されるKLVLK符号化の例を示している。
【００１９】
図１は、殊にエッセンスデータ（essence data）を記録するのに使用できるデータ構造を示しており、ここでコンテナ当たりのバイト数は変えることができる。例えば、このエッセンスは、長さの等しくない圧縮ビデオデータのフレームの集合である。この特定のアプリケーションにおいて図１のデータ構造は、ビデオシーケンスを記録する場合にビデオレコーダによって使用される。このデータ構造は、このビデオシーケンスを再生するビデオ再生機によって同じように使用される。
【００２０】
ビデオシーケンスの各フレームはＫＬＶ符号化される。したがってこれは、これらのデータがビデオデータ、例えばＭＰＥＧ符号化されたビデオデータであることを示すキーフィールドKｅと、これらのビデオデータの長さを示す長さフィールドLｅと、ビデオデータ（エッセンス）を含む値フィールドVｅとによって表される。
【００２１】
この集合の各フレームの後には、バッグポインタＫＬＶ項目が挿入される。このバックポインタＫＬＶ項目は、先行するフレームの先頭への（すなわち先行するデータコンテナへの）相対的なポインタである。このバッグポインタＫＬＶ項目の機能はそのキーKｂｐによって示され、その値Vｂｐは先行するビデオフレームの（またはより一般的にいえば先行するデータコンテナの）長さを示す。例えば、その値は、フレームを表すＫＬＶ符号化項目の長さlｅである（Vｂｐ = lｅ）。考えられ得る変形形態として、エッセンスＫＬＶ項目とバックポインタＫＬＶ項目とを（まとめた）長さlｔを代わりに使用することができる。
【００２２】
ふつう長さフィールドLｂｐは、値フィールドVｂｐの長さを表す。有利な解決手段は、バックポインタ項目に対して固定長Lｂｐを有するようにすることであるが、以下に説明するように可変長も可能である。
【００２３】
したがって３つのフレームF1，F2およびF3を記録する場合、図１のデータ構造を使用するビデオレコーダはつぎのようなシーケンスを記録することになる。すなわち、
Kｅ L1 F1 Kｂｐ  Lｂｐ  l１  Kｅ  L2 F2 Kｂｐ  Lｂｐ  l２  Kｅ  L3 F3 Kｂｐ  Lｂｐ  l３
であり、ここでLiは、符号化データFiの長さであり、lｉは符号化されたデータFiを含むＫＬＶ項目（Kｅ Li Fi）の長さである。
【００２４】
これらのデータの集合は、以下に説明するようにビデオ再生機によって正方向および逆方向に簡単に取り出すことができる。
【００２５】
ビデオ再生機が正方向に（すなわち、この集合が記録されたのと同じ方向に）上記の集合を読み出す場合、このファイルのＫＬＶ構造により、項目を簡単にスキップすることができる。殊にバックポインタＫＬＶ項目は、その長さフィールドLｂｐを使用することによって簡単にスキップ可能である。
【００２６】
またこのビデオ再生機は、上記の集合を逆方向にも簡単に読み出すことができる。フレームF3を表すＫＬＶ項目に現在アクセスしているとすると、先行するバックポインタＫＬＶ項目Kｂｐ Lｂｐ I２へのアクセスは、長さLｂｐが固定であれば、直ちに行われる。バックポインタＫＬＶ項目の値l２を読み出すことによって、このビデオ再生機はつぎに、l２バイト逆方向にジャンプすることによって、フレームF2を表す先行のＫＬＶ項目に直ちにアクセスすることができる。
【００２７】
このビデオ再生機はつぎにＫＬＶ項目Kｅ L2 F2の内容を読み出してフレームF2を復号化するか、またはバックポインタ項目Kｂｐ Lｂｐ I１を同様に使用することによって直ちに、逆方向にフレームF1にジャンプすることができる。
【００２８】
バックポインタ項目を使用することによって、フレームからフレームへの逆方向の高速なジャンプが可能になり、また各時点にフレームを復号化するか否かの選択が行われる。したがってバッグポインタ項目は殊に、出現した画像の一部だけを高速に逆方向モードで表示できるようにするのに有利である。
【００２９】
注意すべきであるのは、これらのバックポインタにより、それらの長さLｂｐが固定でない場合であっても上記の利点が得られることである。この場合、逆方向にキーKｂｐをサーチすることによって先行するバックポインタＫＬＶ項目にアクセスすることができる。これは当然のことながら、先行するエッセンスキーKｅを逆方向にサーチするよりも格段に高速である。それはバックポインタＫＬＶ項目が、フレーム（エッセンス）ＫＬＶ項目よりもはるかに短いからである。
【００３０】
以下に説明するように上記のバックポインタをＫＬＶＬ符号化またはKLVLK符号化で符号化することも可能である。上で説明したようにこのタイプの符号化により、項目を正方向および逆方向に読み出すことができる。
【００３１】
上記の例では、バックポインタ項目の使用をエッセンスデータに関連して説明した。当然のことながら、このようなバックポインタ項目は、メタデータまたは別の任意のタイプのデータにも同様に使用可能である。
【００３２】
図２に示されているのは、メタデータに関連してバックポインタ項目を使用する例である。
【００３３】
ｋ個のメタデータV１，…，Vｋの集合は、ＫＬＶ符号化されており、１ＫＬＶ項目の値フィールドVｍとして結合されている。一般に「メタデータ集合ＫＬＶ項目」と称される。このメタデータ集合項目は、固有のキーフィールドKｍと、値フィールドVｍの長さを示す長さフィールドとを有する。
【００３４】
バックポインタＫＬＶ項目KｂｐLｂｐVｂｐが、メタデータ集合ＫＬＶ項目KｍLｍVｍに直接続いている。このキーKｂｐは、この現在のＫＬＶ項目が、先行するＫＬＶ項目（またはデータコンテナ）の先頭への相対的なポインタであることを示しており、ここではメタデータ集合の先頭へのポインタである。長さフィールドLｂｐは、値フィールドVｂｐの長さを示し、ここでこの値フィールドそれ自体は、先行するＫＬＶ項目の長さlｍ、すなわちここではメタデータ集合の長さを示す。
【００３５】
これらのデータがレコーダにより、図２において左から右（正方向）に示したように記録される場合、つぎに示すように、再生機によって正方向にも逆方向にもこれらのデータに簡単にアクセスする（また場合によっては読み出す）ことができる。
【００３６】
正方向ではまず、アクセスされるデータの集合がメタデータ集合であることを通知するKｍにアクセスする。この再生機は、つぎの長さフィールドLｍを使用してこのメタデータ集合をスキップするか、または値フィールドVｍを読み出して１つまたはいくつかのメタデータに実際にアクセスすることができる。
【００３７】
このメタデータ集合をスキップする場合、この再生機は、バックポインタＫＬＶ項目を検索し、そのキーKｂｐによってこれをバックポインタＫＬＶ項目として識別し、また長さフィールドLｂｐによってこのバックポインタＫＬＶ項目をスキップする。
【００３８】
これに対して値フィールドVｍを実際に読み出す場合、再生機は、正方向にはそのＫＬＶ構造によってメタデータV１，…，Vｋに１つずつ簡単にアクセスすることができる。つぎにこの再生機は、バックポインタＫＬＶ項目にアクセスして、これを上記のようにスキップする。
【００３９】
逆方向にはこの再生機は、どのデータがバックポインタ項目を構成するかを識別しなければならない。上記のように有利な解決手段は、あらかじめバックポインタ項目が固定長を有すると決めることである。この場合、この再生機はこの固定長だけ逆方向に進んでキーKｂｐにアクセスすることができる。
【００４０】
このバックポインタ項目の長さが変化する場合であっても、再生機は、キーKｂｐを逆方向に探すことによってこれに簡単にアクセスすることができる。当然のことながら、メタデータ集合を逆方向に読み出そうとするよりも、所定のキー（Kｂｐ）を探す方が格段に高速であり、格段に簡単であり、格段に信頼性が高い（メタデータ集合を逆方向に読み出すことは大量のデータにおいて、相応の新しいキーを有する新しいメタデータが挿入され得ることを識別しながら、考えられ得るすべてのキーを探すことである）。
【００４１】
上述のようにバッグポインタは、ＫＬＶＬまたはKLVLK符号化することも可能である。
【００４２】
パックポインタ項目が識別されると、値フィールドVｂｐは値lｍで読み出され、この結果、再生機は逆方向にlｍバイトジャンプして、メタデータ集合のＫＬＶ項目KｍLｍVｍに直ちにアクセスする。
【００４３】
つぎにこの再生機はメタデータ集合の項目を読み出してメタデータのうちのいくつかを（上記のように正方向に）収集するか、またはこのメタデータ集合を無視し、逆方向の読み出しを継続して、図１のKｂｐ Lｂｐ I３のような新たなバックポインタ項目にアクセスする。
【００４４】
図２の択一的な例として、バックポインタ項目KｂｐLｂｐVｂｐをメタデータ集合KｍLｍVｍの一部とみなすことができる。動作の基本原理は正方向でも逆方向でもそのままである。しかしながらこの場合、値フィールドVｂｐがメタデータ集合の項目全体の長さをなお表すとすると、再生機は、逆方向にジャンプする前にバックポインタ項目それ自体の長さを値Vｂｐから導き出されなればならない。値フィールドVｂｐが、データコンテナ（ここではキーKｍ）の先頭と、バッグポインタ項目（キーKｂｐ）との間のバイト長を示すのであれば、別の変形形態を使用可能である。
【００４５】
上記のバックポインタ項目は、前の例において１メタデータ集合全体を越えて逆方向にジャンプするように設計されていたが、当然、バックポインタ項目を設けて、このメタデータ集合に含まれる、メタデータからなる複数の部分集合を越えて逆方向にジャンプさせることできる。
【００４６】
図１および図２で提案されているのは、バックポインタ項目を使用して、データの集合、殊にＭＸＦファイルにおけるＫＬＶ符号化データの集合の逆方向読み出しを極めて簡単にすることである。
【００４７】
有利にはファイルのヘッダは、このファイルにおいてバックポインタ項目が使用されているか否かを示すフラグ（例えば１ビット）を有している。例えば、ＫＬＶＬまたはKLVLK符号化またはバックポインタ項目の固定長の使用（使用している場合）などの別の情報もファイルヘッダに含めることができる。このヘッダはメタデータとしてファイルに添付することができる。
【００４８】
以下は、本発明によって同様に提案されるＫＬＶＬ符号化およびKLVLK符号化の説明である。これらは有利には上記のようなバックポインタ項目だけに適用されるが、任意のタイプのデータに適用可能である。
【００４９】
図３は、ＫＬＶＬ符号化の１例として、いくつかのメタデータ項目のＫＬＶＬ符号化を示している。各項目は、所定の情報（またはパラメタ）を表し、これは値Viを有する。転送および取り出しのため、データの各集合は以下に説明するようにカプセル化される。
【００５０】
キーKi（例えば１６バイトで符号化される）は決められており、この項目によってどのような種類の情報が表されているかを示す。情報または値Viを表すデータの（例えばバイトによる）長さも、（例えば４バイトで符号化されて）長さ指示子Liとして決定される。
【００５１】
メタデータを記録する場合、レコーダは項目毎につぎのシーケンスを（示した順序で）書き込む。すなわちKi Li Vi Liを書き込むのである。上記のバイト長の例によれば、シーケンスKi Li Vi Liは（２４＋Li）バイト長である。
【００５２】
図３に示した例ではメタデータ情報の以下の３つの部分（項目）を考慮する。すなわち、
−  データV1に定義され、２５６バイトで符号化される（L1は２５６である）この記録のタイトル（キーK1）と、
−  データV2に定義され、２バイトで符号化される（L2は２である）ビデオ圧縮法（キーK2）と、
−  データV3に定義され、４バイトで符号化される（L3は４である）記録の秒単位での持続時間（キーK3）とを考慮する。
【００５３】
上記のビデオレコーダは、つぎの順序でこれらのメタデータを記録する。すなわち、図３に示したように、
K1L1V1L1K2L2V2L2K3L3V3L3
で記録する。
【００５４】
これらのメタデータは当然のことながらMaterial eXchange Formatによって提供されているより大きな構造に含まれて書き込まれる。これは例えば、特許明細書WO 02/21 845に記載されているとおりである。しかしながらＫＬＶ符号化は、少なくともいくつかの項目についてはＫＬＶＬ符号化によって置き換えられる。
【００５５】
別のマシンがこのファイルを読み出す場合、これらのメタデータにアクセスすることができる。
【００５６】
オーディオビデオファイルを正方向に（すなわち記録時と同じ方向に）読み出す場合、キーK1が最初に読み出され、つぎにL1が読み出される。これによってデータV1のバイト長を決定することができるため、値V1を読み出すことができる。V1に続く４バイト（L1）は無視され、K2にアクセスすることができる。メタデータのさらなる取り出しは同様に行うことができる。
【００５７】
このオーディオビデオファイルを逆方向に読み出す場合、最初に長さL3にアクセスする。これにより、値V3として読み出すバイトの長さが直ちに得られる。V3を読み出してしまえば、逆方向におけるつぎの４バイト（同じくL3である）は無視され、つぎにK3にアクセスする。したがって逆方向に読み出す場合、インデックステーブルを必要とすることなしにV3およびK3は直ちに決定されるのである。
【００５８】
当然のことながらメタデータの逆方向のさらなる取り出しは、同じ簡単な方式によって継続される。すなわち、L2が読み出され、これによってV2を読み出すことができ、V2とK2との間に出現するL2は無視され、K2が読み出されるのである。最後にL1が読み出され、これによって値V1に直ちにアクセスすることができ、L1の４バイトをスキップすることによってキーK1にアクセスすることができる。
【００５９】
この例によって示したように、ＫＬＶＬシーケンスを正方向または逆方向に読み出す場合、ＫＬＶＬ符号化によって、カプセル化されたデータ（Ｖ）を簡単に取り出すことができるのである。
【００６０】
考えられ得る変形形態として、（正方向または逆方向のいずれかで）長さ指示フィールドＬを２度目に読み出した時にこれと、最初に読み出した長さ指示子とを比較することができる（上記のように２度目に読み出した長さ指示子を単純に無視する代わりに）。これによって、このファイルが、予想されるフォーマットを有しており、エラーがなく、また逆方向にデータをスキップするための提案したアルゴリズムとこのファイルのＫＬＶＬ符号化とがなお同期しているか否かをチェックすることができる。
【００６１】
相応のやり形で項目Viをつぎの順序で、すなわち、
Ki Li Vi Li Ki
で記録することによってKLVLK符号化が得られる。
【００６２】
図４は、KLVLK符号化の１例として、いくつかのメタデータ項目のKLVLK符号化を示している。各項目は、所定の情報（またはパラメタ）を表し、これは値Viを有する。転送および取り出しのため、データの各集合は以下に説明するようにカプセル化される。
【００６３】
キーKi（例えば１６バイトで符号化される）は決められており、この項目によってどのような種類の情報が表されているかを示す。情報または値Viを表すデータの（例えばバイトによる）長さも、（例えば４バイトで符号化されて）長さ指示子Liとして決定される。
【００６４】
メタデータを記録する場合、レコーダは項目毎につぎのシーケンスを（示した順序で）書き込む。すなわちKi Li Vi Li Kiを書き込むのである。上記のバイト長の例によれば、シーケンスKi Li Vi Li Kiは（４０＋Li）バイト長である。
【００６５】
図４に示した例ではメタデータ情報の以下の２つの部分（項目）を考慮する。すなわち、
−  データV1に定義され、２５６バイトで符号化される（L1は２５６である）この記録のタイトル（キーK1）と、
−  データV2に定義され、２バイトで符号化される（L2は２である）ビデオ圧縮法（キーK2）とを考慮する。
【００６６】
上記のビデオレコーダは、つぎの順序でこれらのメタデータを記録する。すなわち、図４に示したように、
K1L1V1L1K1K2L2V2L2K2
で記録する。
【００６７】
別のマシンがこのファイルを読み出す場合、これらのメタデータにアクセスすることができる。
【００６８】
オーディオビデオファイルを正方向に（すなわち記録時と同じ方向に）読み出す場合、キーK1が最初に読み出され、つぎにL1が読み出される。これによってデータV1のバイト長を決定することができるため、値V1を読み出すことができる。V1に続く２０バイト（L1K1）は無視され、K2にアクセスすることができる。メタデータのさらなる取り出しは同様に行うことができる。
【００６９】
このオーディオビデオファイルを逆方向に読み出す場合、最初にキーK2にアクセスし、つぎに長さL2が読み出される。これにより、データV2のバイト長を決定することができるため、値V2を読み出すことができる。さらなる２０バイト（L2K2)は無視することができる。
【００７０】
メタデータの逆方向のさらなる取り出しは、同じ簡単な方式によって継続される。実際にKLVLK符号化では記録は対称的であるため、逆方向の読み出しは、正方向の読み出しと同じアルゴリズムを使用し、したがって正方向の読み出しと同様に簡単である。
【００７１】
考えられ得る変形形態として、（正方向または逆方向のいずれかで）長さ指示子ＬおよびキーＫフィールドを２度目に読み出す時にこれらと、最初に読み出した長さ指示子およびキー指示子とを比較することができる（上記のように２度目に読み出した長さ指示子およびキー指示子を単純に無視する代わりに）。これによって、このファイルが、予想されるフォーマットを有しており、エラーがなく、また提案したアルゴリズムがこのファイルのKLVLK符号化となお同期しているか否かをチェックすることができる。
【００７２】
本発明は上に示した実施形態に限定されるものではない。これらの実施形態の変形形態は、本発明の範囲を逸脱することなく構成することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明によるデータ構造の第１実施形態を示す図である。
【図２】本発明によるデータ構造の第２実施形態を示す図である。
【図３】新たに提案されるＫＬＶＬ符号化の例を示す図である。
【図４】新たに提案されるKLVLK符号化の例を示す図である。
【図１】
0004565499.tif 000002
【図２】
0004565499.tif 000003
【図３】
0004565499.tif 000004
【図４】
0004565499.tif 000005