"Uploaded a reference photo and Sakarto found every crop and resize across my entire drive in seconds. Absolutely brilliant."
How It Works
- 1. Upload ReferenceSelect any image, video, or audio as your reference file — its hash is computed immediately
- 2. Pick a FolderSelect the folder to search through. The reference doesn’t need to be inside it.
- 3. Scan & FindSakarto scans every file and shows matches live as they are found — no waiting for full scan
- 4. Reference ProtectedThe reference card is always pinned first. Only matched files can be moved or deleted.
Reverse Image Search — 7 Algorithms
Upload an image or video as your reference, select a folder, and Sakarto finds everything similar to it. Each algorithm compares your reference against every folder file using a 64-bit hash and Hamming distance. Lower threshold = stricter (except ORB, which is inverted).
| Algorithm | How it compares against your reference | Canvas / Basis | Rotation-safe | Re-compression | Brightness shifts | Speed | Videos |
|---|---|---|---|---|---|---|---|
| Color Signature | Compares YUV colour grids between reference and each folder file. The only algorithm that actually compares colour content, not just luminance. | 24×24 YUV grid | — | ✓ Good | ⚠ Partial | ⚡ Fast | ✓ |
| aHash | Compares 16×16 grayscale brightness hashes. Each bit: pixel above mean = 1, below = 0. Simple and extremely fast. | 16×16 grayscale | — | ✓ Good | ⚠ Moderate | ⚡ Fastest | ✓ |
| BlockHash | Divides 64×64 canvas into 16×16 blocks, averages each, compares blocks to median. Block averaging absorbs JPEG noise and compression artifacts well. | 64×64, 16 blocks | — | ✓ Excellent | ✓ Good | ⚡ Very Fast | ✓ |
| dHash | Compares 17×16 gradient hashes — each bit encodes whether a pixel is brighter than its right-neighbour. Robust to brightness changes since it encodes relative direction, not absolute values. | 17×16 gradient | — | ✓ Good | ✓ Excellent | ⚡ Very Fast | ✓ |
| pHash | Applies a 2D DCT on a 32×32 canvas and extracts the top-left 8×8 low-frequency coefficients. Frequency-domain encoding is very stable across re-compression, sharpening, and mild colour grading. | 32×32 DCT | — | ✓ Excellent | ✓ Good | ⚠ Moderate | ✓ |
| wHash | Applies a multi-level Haar Wavelet Transform on a 64×64 canvas and extracts the 8×8 LL sub-band. Similar quality to pHash at lower CPU cost. | 64×64 Haar | — | ✓ Good | ✓ Good | ⚡ Fast | ✓ |
| ORB | Uses OpenCV.js WASM to detect FAST keypoints on the reference and match them against folder files using BRIEF descriptors + Lowe’s ratio test. Threshold inverted: higher = stricter. | Keypoint features | ✓ Yes | ✓ Good | ✓ Good | Slower | ⚠ Middle frame |
Color Signature — Reverse Image Search
Compares actual YUV colour values across a 24×24 regional grid against your reference. The only algorithm that compares colour directly. Finds colour-similar copies even if re-encoded or lightly edited. Will not match colour-shifted versions.
Average Hash (aHash) — Reverse Image Search
The fastest reverse image search. Resizes to 16×16, converts to grayscale, and compares each pixel to the overall mean. Finds copies based on overall brightness distribution — resized, re-saved, or format-converted versions of your reference.
Block Hash — Reverse Image Search
Divides a 64×64 canvas into 16×16 blocks and averages each block. Block averaging absorbs JPEG compression noise, making it good for finding noisy or degraded versions of your reference that other hash methods miss.
Difference Hash (dHash) — Reverse Image Search
Resizes to 17×16 (one extra column), converts to grayscale, and compares each pixel to its right neighbour. Encodes brightness direction rather than absolute values — robust to brightness and exposure shifts.
Perceptual Hash (pHash) — Reverse Image Search
Applies a separable 2D DCT on a 32×32 canvas and extracts the top-left 8×8 low-frequency coefficients. Frequency-domain encoding is very stable — finds copies across formats, resolutions, mild colour grading, sharpening, and re-compression.
Wavelet Hash (wHash) — Reverse Image Search
Uses a multi-level Haar Wavelet Transform on a 64×64 canvas (larger than the duplicate finder for better accuracy). Extracts the 8×8 LL sub-band. Similar quality to pHash with good speed — particularly good for copies with local edits in one area.
Feature Matching (ORB) — Reverse Image Search
Uses OpenCV.js (WebAssembly) to detect FAST keypoints on your reference and match them against folder files using BRIEF binary descriptors + Lowe’s ratio test. The only algorithm that handles rotated, cropped, or perspective-warped copies. Supports images and videos — the middle frame is extracted from videos for matching.
📊 Which Image / Video Algorithm?
Quick reference for choosing based on what kind of copies you expect your reference to have.
| I expect my reference has copies that are… | Color Sig. | aHash | BlockHash | dHash | pHash | wHash | ORB |
|---|---|---|---|---|---|---|---|
| Exact copies / same file | ✓ | Best | ✓ | ✓ | ✓ | ✓ | ✓ |
| Resized to different resolution | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Re-compressed / different format | ✓ | ✓ | Best | ✓ | ✓ | ✓ | ✓ |
| Brightness / exposure adjusted | — | ⚠ | ⚠ | Best | ✓ | ✓ | ✓ |
| Colour-graded (hue/saturation changed) | — | ⚠ | ⚠ | ✓ | ✓ | ✓ | ✓ |
| Same colour palette / scene as reference | Best | — | — | — | — | — | — |
| Watermarked or lightly edited | ⚠ | ⚠ | ⚠ | ✓ | Best | ✓ | ✓ |
| Rotated or mirrored | — | — | — | — | — | — | Best |
| Cropped or perspective-warped | — | — | — | — | — | — | Best |
| In a very large folder (speed priority) | — | Best | ✓ | ✓ | ⚠ | ✓ | Avoid |
Reverse Audio Search — 3 Algorithms
Upload a reference audio file and Sakarto scans a folder to find all recordings that sound similar to it. The reference file is always pinned at the top and protected from accidental deletion. All audio processing continues in the background even when you switch browser tabs.
| Algorithm | How it compares your reference | Best reference type | Finds covers / alt versions | Finds speech / podcasts | Threshold direction | Speed | External library |
|---|---|---|---|---|---|---|---|
| Chromaprint Spectral hash | Hashes spectral band energy into compact 15-bit frames. Compares against reference using Hamming distance on the spectral fingerprint. Pure JavaScript — no CDN. | A song you want all copies of — different formats, bitrates, or re-encodes of the same master | ⚠ Limited | ✓ Good | Lower = stricter | ⚡ Fastest — no CDN | ✓ None |
| Essentia HPCP Harmonic chroma | Extracts a 12-bin Harmonic Pitch Class Profile via Essentia.js WASM at 44,100 Hz. Compares reference and folder files using cosine similarity. | A song you want all covers, live versions, or alternate arrangements of — even in a different key | ✓ Excellent | ✕ Poor | Higher = stricter | ⚠ Moderate — WASM init once | ⚠ Essentia.js (CDN) |
| Meyda MFCC Timbral texture | Extracts 13 MFCCs per frame via Meyda.js at 22,050 Hz, first 10 seconds only. Compares timbral texture of reference vs folder files using Euclidean distance. | A podcast episode, voice memo, or sound effect you want all copies of regardless of format or quality | ✕ Poor | ✓ Excellent | Lower = stricter | ⚡ Fast — 10s window per file | ⚠ Meyda.js (CDN) |
Chromaprint — Reverse Audio Search
Upload a track and Sakarto hashes its spectral band energy into 15-bit frames, then finds all folder files whose spectral fingerprint is close to your reference using Hamming distance. Pure JavaScript — no external library or CDN needed. Works fully offline.
Essentia HPCP — Reverse Audio Search
Upload a reference track and Sakarto extracts a 12-bin Harmonic Pitch Class Profile via Essentia.js WASM at 44,100 Hz. Compares it against every folder file using cosine similarity. Higher threshold = stricter. Best for harmonically similar music.
Meyda MFCC — Reverse Audio Search
Upload a reference audio file and Sakarto extracts 13 Mel-Frequency Cepstral Coefficients at 22,050 Hz from the first 10 seconds, then finds folder files with similar timbral texture using Euclidean distance. Captures the sonic character independent of pitch.
⭐ What Users Say
"The reverse audio search found a live version of a song I'd been looking for for years. Chromaprint is magic."
"ORB found rotated and cropped copies that every other tool missed. Sakarto is my go-to now."
"Love that the reference is pinned and protected. I can upload a master file and safely delete all the duplicates without worrying about losing the original."