in reply to Re^2: high speed checksum for video finger printing?
in thread high speed checksum for video finger printing?
if no one has anything similar to this already.
Nothing I've seen, so go for it.
My suggestion would be to use Math::Random::MT as the PRNG. It is portable and reproducible cross-platform.
Then something like:
use Math::Random::MT qw[ rand srand ]; use Digest::CRC qw[ crc64 ]; sub fingerPrintFile{ my $file = shift; my $filesize = -s( $file ); srand $filesize; open my $fh, "<', $file or die $!; ## assuming CRC-64 my $chunks = int( $filesize / 8 ) - 1; ## Added sort per RichardK's suggestion below. my @posns = sort{ $a <=> $b } map 8*int( rand $chunks ), 1 .. 100; my $rawSample = join '', map{ seek $fh, $_, 0; read( $fh, my $chun +k, 8 ); $chunk } @posns; close $fh; return crc64( $rawSample ); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: high speed checksum for video finger printing?
by RichardK (Parson) on Feb 05, 2012 at 13:51 UTC | |
by BrowserUk (Patriarch) on Feb 05, 2012 at 13:55 UTC |