com.originalpictures.pdq.1
PDQ image fingerprint: Original Pictures' deployment of PDQ by Meta (ThreatExchange), with its own parameters, calibration and match threshold.
- Match threshold op.pdq.dihedral-hamming-34.v1
- Encoded media types: image/avif, image/jpeg, image/png, image/tiff, image/webp
- Registration requested with the C2PA soft binding algorithm list
Identity
| Field | Value |
|---|---|
Algorithm identifier (alg) | com.originalpictures.pdq.1 |
| Type | Fingerprint |
| Decoded media type | Image |
| Encoded media types | image/avif, image/jpeg, image/png, image/tiff, image/webp |
| Underlying algorithm | PDQ by Meta (ThreatExchange) |
| Provider identity and version | com.meta.pdq threatexchange-baefb4e-float-luma |
API value (fingerprint_algorithms) | pdq (computed when a request names it) |
| Calibration | op.pdq.calibration.v1 |
| Match threshold | op.pdq.dihedral-hamming-34.v1 |
| Runtime revisions | op.image-bindings.sign10.1, op.image-bindings.sign10.2 |
| Licences | Code: BSD (facebook/ThreatExchange LICENSE). Weights: n/a (no learned weights). |
Pinned artefacts
Every file the runtime loads or builds from is pinned by SHA-256; a file with any other hash is refused.
| File | Kind | SHA-256 | Size | Source |
|---|---|---|---|---|
threatexchange-source.tar.gz | source | 7eb03276c7def45d4e4dd0fbcee233fac2f85d24f269e73f1e3fbdcdbee509c6 | not recorded | source |
How the fingerprint is computed
Meta's PDQ hash, computed on the image's luma by Original Pictures' float32 port of ThreatExchange pdq/cpp at baefb4ed, checked against the pdqhash 0.2.8 reference. The stored fingerprint is the hash of the image as signed together with its seven dihedral variants.
| Parameter | Value |
|---|---|
| Implementation | ThreatExchange pdq/cpp at baefb4ed, float32 port |
| Hash | 256 bits, with PDQ's 0-100 quality |
| Query | all eight dihedral variants (flips and 90-degree rotations) |
| Keyed | No |
How matching works
A query is compared through all eight dihedral variants and matches at a Hamming distance of at most 34 of 256 bits. A fingerprint is compared only with fingerprints of the same algorithm, calibration and threshold, within the account that signed the file. Industry hash-sharing standard; survives flips and 90-degree rotations; weak on crops.
What a positive result means
A match means the file looks or sounds like a file the signer's account signed, closely enough to pass the threshold above. It points to that file's C2PA manifest, which declares its origin. It is a probabilistic lead, not cryptographic proof: a fingerprint matches similar content, can miss heavily edited copies, and says nothing about whether the content is true. The signed manifest, where it survives, is the proof.
Measured performance
On Original Pictures' 2026 fingerprint benchmark (method PDQ-dihedral), at the production threshold, which corresponds to a pair-level false-match rate of 1 in 10,000,000, 54.6% of transformed copies (95% interval 54.2% to 54.9%) were matched to their original, over the benchmark's transformations of its fixed corpus (re-encoding, resizing, cropping and overlays, and the edits typical of the media type). These are measurements on a fixed corpus, not a guarantee for every file.
The value a soft-binding assertion would carry
- Value: The 256-bit PDQ hash of the image as signed (not its dihedral variants), as 64 lowercase hexadecimal characters, ThreatExchange's usual form.
- Scope: The whole image.
- Encoding note: The C2PA schema defines a soft-binding value as a byte string. Original Pictures' signing engine writes it as text, as it already does for the ISCC binding, so the form above is the text a manifest would carry.
- Emission: Planned after the identifier is assigned.
How to check a file
- Content Credentials. Any C2PA-aware validator can read and check the manifest of a file that still carries one, without calling Original Pictures.
- The fingerprint. Fingerprint recovery runs inside a verification:
POST /v1/verificationson the Original Pictures API. When no manifest can be read, the verification compares the file's fingerprints with the recorded ones and reports a single match as recovery-only (VALIDATION_RECOVERY_ONLY), never as cryptographic validity; several plausible matches fail closed as ambiguous. Recovery searches only the bindings of the account that runs the verification. See lookup and recovery and fingerprints. - There is no public soft-binding resolution API. A third party can check a file on the signer's hosted verify page, if the signer publishes one; that page searches the signer's own fingerprints only when the signer has switched recovery on (
recover_own_assets). Otherwise, contact the signer or us. - Comparing values yourself. PDQ is public, so once the value is in a manifest anyone can hash a candidate with any PDQ implementation and compare the two.
Relation to C2PA
When a fingerprint algorithm has an identifier on the C2PA soft-binding algorithm list, the manifest can carry a c2pa.soft-binding assertion that names it in its alg field. Registration for com.originalpictures.pdq.1 has been requested with the C2PA soft binding algorithm list; no identifier has been assigned yet. Until one is, and until Original Pictures ships the change that writes it, no manifest names this fingerprint: it is a server-side recovery signal only. Today the one fingerprint a manifest carries is ISCC Image-Code (io.iscc.v0). This page is the entry's informational URL.
Status and contact
- Status: registration requested with the C2PA soft binding algorithm list.
- Contact: hello@originalpictures.com
- Last updated: 2026-11-08. The values on this page are generated from the production registry.
- All Original Pictures soft-binding algorithms