メタデータの認識

概要

ファイルに含まれる、タグ、コメント、サムネイル等のメタデータを無視し、データ本体のみを比較することが出来ます。

ファイルの中身を丁寧に確認しているため、処理時間は長くなりますが、正確な比較が可能となっています。

データ本体のみの比較が出来るファイル

画像ファイル


JPEG

Exif、サムネイル、コメントなどを無視します。

・EOIマーカより後ろにある不要なデータは無視します。

・JFIF以外のAPP0セグメントおよび、APPnセグメントは無視します。

・SOIマーカで始まらないファイルや、EOIマーカがないファイルは、JPEGファイルとして認識しません。

PNG

時刻や、コメント等を無視します。

・時刻やテキストが含まれるチャンク(tIME、tEXt、zTXt、iTXtなど)は無視します。

・公開されていないチャンクは無視します。

・PNG識別子で始まらないファイルや、必要なチャンク(IHDR、IEND、IDATなど)が欠けているファイルは、PNGファイルとして認識しません。

音声ファイル


MP3

ID3タグを無視します。

・ID3V1とV2のどちらにも対応しています。

・フレームヘッダが見付からないファイルは、MP3ファイルとして認識しません。

WAV

タグやコメントを無視します。

・fmtチャンク、dataチャンク以外は無視します。

・公開されていないチャンクは無視します。

・IFF識別子、WAVE識別子や、必要なチャンク(fmt、dataなど)がないファイルは、WAVファイルとして認識しません。

パフォーマンスへの影響

拡張子ではなくファイルの中身を確認してファイルの種類を特定するため、メタデータ無視に対応していない種類のファイルであっても、必ずファイルの中身を読みに行きます。このため、処理時間が大幅に増加します。


検索対象に非対応のファイルが含まれないようにすると、処理時間を短くすることが出来ます。


画像ファイルや音声ファイルのみが入っているフォルダのみを検索フォルダとして指定したり、拡張子が信頼できる場合は、拡張子フィルタなどで対象とするファイルを絞り込んだりする事を推奨します。