{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20 02/25/2010\par \b pHash windows v0.9.0 \par \b0\par \b contact: \b0 eklinger@phash.org\par dstarkweather@phash.org \par \par \b dendencies:\par \b0\tab CImg 1.3.2 image processing library (all code is int cimg.h header file)\par ffmpeg libraries (must reside on your PATH env variable)\par \tab\tab libavformat 52.39.2\par libavcodec 52.41.0\par libavutil 50.40.0\par libswscale 0.7.1\par libjpeg static lib (for image hash jpeg support) - (must define #define cimg_use_libjpeg)\par libpng static lib(for image hash png support) - ( must #define cimg_use_png)\par \par *libjpeg and libpng only required if compiling the pHash.dll.\par \par \b installation:\par \b0 unzip the installation file into a suitably chosen directory. Create program in visual studio by linking to the bin \tab subdirectory. Add the directory in which cimg resides to the list of directories included. Also, be sure the ffmpeg \tab librarry directory location resides on the path.\par \par If compiling the phash.dll, you must include the libjpeg and libpng static libraries in the project settings.\b\par \b0\par \b\fs24 hash functions:\par \b0\fs20\par Examples exist in the examples directory detailing how to use the different hash functions.\par \par test_mhimagehash.cpp - marr wavlet (based on edge/corner information)\par \par test_audiophash.cpp (based on bark scale frequency information)\par test_audiophash_main.cpp\par \par test_videohash.cpp - video hash based on low frequencies of the dct transform \par \par texthash.cpp - cyclic polynomial hashing of textual data\par texthash2.cpp\par \par \par \b\fs24 mvp indexing file:\par \b0\fs20\par Examples exist in the examples directory detailing how to use the mvp tree indexing structure. The basic sequence consists of building the tree from a core set of files, adding additional files to the db and then the ability to query for files. The initial parameters for the tree structure are set in the build stage (in the MVPFile structure. The key point of concern is to be sure that the page size is suitably large enough for the leaf capacity of each node. (One page corresponds to one node of the tree structure.) Page size must be a power of 2 and at least as large as the system host page size (usually 4kb). If the page size is insufficient, a suitable error code is returned. Error codes are defined in phash.h header file. The audio examples are set to read in the first 45 seconds of each file, so any subsequent queries must include at least part of that first 45 second clip. You can change this time duration to include the whole file by setting to 0. However, doing so will use up significantly more file space, as the audio hashes are variable in length. So just be prepared to either increase the page size or reduce the leaf capacity. \par \par build_mvptree_audio.cpp\par add_mvptree_audio.cpp\par query_mvptree_audio.cpp\par \par image hash using marr wavelet:\par \par build_mvptree.cpp\par add_mvptree.cpp\par query_mvptree.cpp\par \par imagehash using dct transform:\par \par build_mvptree2.cpp\par add_mvptree2.cpp\par query_mvptree2.cpp\par \par \par }