Add perceptual hash implementation