Skip to content
EU AI Act Article 50 is in force. Grace period for existing AI systems ends 2 Dec 2026.EU AI Act Article 50 is in force. The grace period ended on 2 Dec 2026. Check your exposure →

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

FieldValue
Algorithm identifier (alg)com.originalpictures.pdq.1
TypeFingerprint
Decoded media typeImage
Encoded media typesimage/avif, image/jpeg, image/png, image/tiff, image/webp
Underlying algorithmPDQ by Meta (ThreatExchange)
Provider identity and versioncom.meta.pdq threatexchange-baefb4e-float-luma
API value (fingerprint_algorithms)pdq (computed when a request names it)
Calibrationop.pdq.calibration.v1
Match thresholdop.pdq.dihedral-hamming-34.v1
Runtime revisionsop.image-bindings.sign10.1, op.image-bindings.sign10.2
LicencesCode: 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.

FileKindSHA-256SizeSource
threatexchange-source.tar.gzsource7eb03276c7def45d4e4dd0fbcee233fac2f85d24f269e73f1e3fbdcdbee509c6not recordedsource

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.

ParameterValue
ImplementationThreatExchange pdq/cpp at baefb4ed, float32 port
Hash256 bits, with PDQ's 0-100 quality
Queryall eight dihedral variants (flips and 90-degree rotations)
KeyedNo

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/verifications on 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