DeduplicateSimilarImages

Traitement des images, optimisation

Description

Recherche les Image XObjects indirects perceptuellement similaires, redirige leurs références vers une image canonique déterministe et supprime facultativement les doublons

Les candidats doivent avoir le même dictionnaire sémantique après exclusion des champs du conteneur encodé, puis satisfaire un seuil de hachage différentiel 64 bits et une comparaison colorée 64 × 64

Syntaxe

Function TPDFlib.DeduplicateSimilarImages(
  MaxHashDistance, MaxMeanError, MaxChannelError,
  Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
  MaxHashDistance, MaxMeanError, MaxChannelError,
  Options: Integer;
  Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;

Paramètres

MaxHashDistanceDistance de Hamming maximale de 0 à 7 entre les deux hachages différentiels de 64 bits
MaxMeanErrorDifférence absolue moyenne maximale des canaux, de 0 à 255, dans les échantillons décodés
MaxChannelErrorDifférence absolue maximale de 0 à 255 pour tout canal de couleur échantillonné
OptionsPDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, les deux indicateurs ou 0
StatsReçoit les compteurs de décodage, de candidats, de comparaisons, d'erreurs acceptées, de références, de charges utiles et de collecte d'objets

Valeurs de retour

Positive valueNombre d’objets image similaires consolidés ou signalés par une exécution à blanc
0Aucune paire acceptable n'a été trouvée, aucun document n'est chargé, ou un seuil ou une option n'est pas valide

Remarques

Le plus petit numéro d'objet et la plus petite génération de chaque groupe accepté deviennent l'image canonique

/Length, /Filter et /DecodeParms décrivent le stockage encodé et peuvent différer, tandis que les dimensions, l’espace colorimétrique, la profondeur en bits, les masques, tableaux de décodage, interpolation, contenu facultatif, métadonnées et autres entrées sémantiques doivent correspondre

Les images qui ne peuvent pas être décodées sont ignorées et comptées dans DecodeFailures

Le hachage est divisé en huit bandes indexées, ce qui borne la recherche de candidats dans la plage de distance prise en charge avant la comparaison des échantillons décodés

Cette opération visuelle est volontairement approximative car elle échantillonne une grille fixe 64 × 64 ; les différences plus petites peuvent être manquées même avec tous les seuils à zéro

Utilisez DeduplicateResources lorsqu’une preuve exacte au niveau des octets est requise, et effectuez une simulation avec GetSimilarImageDeduplicationReportJSON avant de choisir les seuils d’un contenu inconnu

Exemple

var
  Stats: TPDFlibImageSimilarityDedupStats;
  Merged: Integer;
begin
  Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
    PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
  PDF.SaveToFile('optimised.pdf');
end;

Voir aussi

GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources