Documentation

Reviewing duplicates: the Centre de revue

The Centre de revue (Review Center): filters, groups, recommended master, confidence, decisions.

The Centre de revue (Review Center) shows the groups of files that the analysis has matched together, the master it recommends in each group and why, and lets you record your decisions.

No action on this screen modifies a file. The reminder is always displayed: “Aucune action ne modifie de fichier : les décisions sont enregistrées dans le catalogue.” (No action modifies a file: decisions are recorded in the catalog.) Your decisions are durable: they survive later analyses, and “Rouvrir le groupe” (Reopen group) cancels them.

The Centre de revue: the filter and the list of groups on the left; on the right, the details of the selected group. The Centre de revue: the filter and the list of groups on the left; on the right, the details of the selected group.

Layout

  • At the top, the filter bar: a “Filtre” (Filter) menu and the reminder above. It never covers the list or the details.
  • On the left, the list of groups (or of files, depending on the filter). Its width is fixed: 420 points, or half the screen if the window is narrow. It does not change by itself.
  • On the right, the details of the selected row: a group, a single file, or a proposed move. With nothing selected: “Aucun groupe sélectionné” (No group selected) — “Choisissez un groupe dans la liste pour voir ses membres et son master recommandé.” (Choose a group in the list to see its members and its recommended master.)

The screen reloads the list every time you come back to it. The details always show the row highlighted in the list: if the group displayed is no longer in it (you have just resolved it, or it was decided elsewhere), the selection and the details are cleared together, and the details say “Le groupe a quitté la liste — Choisissez le groupe suivant dans la liste.” (The group has left the list — Choose the next group in the list.) The app never moves to the next group by itself: a second click sent too early cannot decide for you on another group.

Filters

The “Filtre” (Filter) menu shows each filter with its count in parentheses. The filter open by default is “Non résolus” (Unresolved).

FilterWhat it showsMessage when it is empty
Doublons exacts (Exact duplicates)Groups of files with strictly identical content (SHA-256)“Aucun groupe de fichiers au contenu identique.” (No group of files with identical content.)
Doublons probables (Probable duplicates)Visual groups from the analysis, and candidates whose full fingerprint has yet to be computed“Aucun doublon probable en attente de vérification.” (No probable duplicate awaiting verification.)
Correspondances visuelles (Visual matches)Similar images, versions, bursts“Aucune correspondance visuelle.” (No visual match.)
Fichiers uniques (Unique files)Files outside any group“Aucun fichier hors de tout groupe.” (No file outside any group.)
Fichiers corrompus (Corrupt files)Files the analysis could not read, with the reason“Aucun fichier corrompu relevé par le scan.” (No corrupt file found by the scan.)
Non résolus (Unresolved)Groups not yet fully decided“Tous les groupes ont été revus.” (All groups have been reviewed.)
À revoir (Needs review)What the analysis explicitly flags for review (ambiguous master, uncertain move…), and proposed moves (see below)“Rien n’attend de revue.” (Nothing is awaiting review.)

The visual groups produced by the current analysis are filed under “Doublons probables”; “Correspondances visuelles” is intended for similar images, versions and bursts, which the current analysis does not produce.

The list

Each group row shows:

  • as its title, the name of the recommended master (or “Groupe de N fichiers” (Group of N files));
  • an orange “À revoir” (Needs review) flag if the group is awaiting review;
  • its status: “À décider” (To decide), “En cours” (In progress), “Résolu” (Resolved) or “Ignoré” (Ignored);
  • as its subtitle, the number of files, the size — “13 ko chacun” (13 KB each) for exact duplicates or files of the same size, otherwise the range, for example “70 ko – 2,9 Mo” (70 KB – 2.9 MB) —, and the type (“Doublons exacts” (Exact duplicates), “Doublons probables” (Probable duplicates), “Candidats, hash complet requis” (Candidates, full hash required)…);
  • the confidence of the match (see below). It takes priority over the subtitle: when the list is narrow, it is the subtitle that is cut, never the confidence. If space runs short, it is shown in short form — “90 % estimé” (90% estimated), or “100 % · SHA-256” for a verified fact —; hover over it to read the full text.

A row briefly shows “Chargement…” (Loading…) while its page is being read: the list loads only what you scroll to, which keeps it smooth even with tens of thousands of groups.

Single files

Under “Fichiers uniques” (Unique files), “Fichiers corrompus” (Corrupt files), and for a file flagged in “À revoir” (Needs review), a row is a file, not a group. Select it: the details show its preview if it has one, its nature (“Fichier unique” (Unique file), “Fichier en erreur” (File in error), “Fichier à revoir” (File to review)), its full location — “Volume › Source › chemin” (Volume › Source › path) —, its size, and, if there is one, the logged error. There is nothing to decide on a single file.

For a file in error, the row and the details give the first error the analysis found on that file, in plain language:

You readWhat happened
“Lecture refusée (permissions)” (Read refused (permissions))The file has no read permission for your account.
“Pas une image valide (aucune image dans le fichier)” (Not a valid image (no image in the file))The file has an image extension but contains no image.
“Pas une image valide (format non reconnu)” (Not a valid image (format not recognized))The file does not open as an image.
“JPEG tronqué : la fin de l’image manque” (Truncated JPEG: the end of the image is missing)Interrupted copy, memory card pulled out…
“Image endommagée : impossible à décoder” (Damaged image: cannot be decoded)The image opens but does not decode.

Below the reason, the details also show the technical type and message as recorded (for example PERMISSION_DENIED : …), useful for a report.

The orange “À revoir” (Needs review) flag on a file row means that this file is in the “À revoir” filter: the number shown next to that filter is exactly the number of rows that carry this flag. A corrupt file is not, by itself, “à revoir” (to be reviewed).

Proposed moves

On an exFAT or FAT disk, a folder renamed outside the app leaves “missing” files and as many “new” ones. When the app does not know the content of the missing file, but a single new file has the same name, the same size and the same date, it shows in “À revoir” (Needs review) a “Déplacement proposé : nom” (Proposed move: name) row, with the old and the new path.

Select it: the inspector shows both locations and reminds you that the content has not been compared. Two buttons:

  • “Rattacher à l’ancien” (Attach to the old one) — after confirmation, the file takes over the identity of the old one, and therefore every decision made about it. This choice cannot be undone. It is refused if the situation has changed since the analysis (file modified, returned to its old path, or new file already decided elsewhere);
  • “Garder séparés” (Keep separate) — the old one stays deleted, the new one stays a separate file.

In both cases, no file is touched, and the row leaves “À revoir”.

Group details

From top to bottom:

  1. The header: title, type · status, confidence, and the reason for the match. For example, for a visual group: “empreintes visuelles dHash et pHash à 6 bits au plus (seuil 10) — ni le recadrage ni la rotation ne sont reconnus (ADR-0010)” (dHash and pHash visual fingerprints at most 6 bits apart (threshold 10) — neither cropping nor rotation is recognized (ADR-0010)).
  2. The review reason, if there is one, preceded by an orange flag.
  3. The “Master recommandé” (Recommended master) card: the level of the recommendation and its explanation, criterion by criterion.
  4. One card per member: thumbnail, name, characteristics (dimensions, format, bit depth, size, points scored), location — “Volume › Source › chemin” (Volume › Source › path), so that two copies with the same name on two disks can be told apart —, status, and four decision buttons.
  5. The group actions.

The details of a visual group: the estimated confidence, the recommended master and its explanation, then each member with its preview and its actions. The details of a visual group: the estimated confidence, the recommended master and its explanation, then each member with its preview and its actions.

The master is the copy to keep first. The app recommends it according to a seven-criterion rule scored out of 100: resolution (30 points), bit depth (25), format (20; RAW before TIFF, PNG, HEIC, JPEG), metadata completeness (10), embedded color profile (8), file size (5), capture date (2). The best member or members on a criterion win its full weight; a criterion on which all members are equal does not count.

A PNG, a TIFF or a HEIC is ranked ahead of a JPEG in the group only if it brings more than the JPEG: a higher bit depth or resolution. A PNG saved from a JPEG, at the same size and in 8 bits, contains nothing more: it does not win the format points, and the explanation does not say “sans perte” (lossless).

The card shows the level:

  • “Recommandation nette” (Clear recommendation) — a gap of at least 20 points;
  • “Recommandation à confirmer, écart faible” (Recommendation to confirm, small gap);
  • “Égalité stricte, master à confirmer” (Strict tie, master to confirm) — the group then moves to “À revoir” (Needs review);
  • “Contenu identique, tous les exemplaires se valent” (Identical content, all copies are equivalent) — for exact duplicates, any one will do;
  • “Aucune recommandation de master” (No master recommendation).

Followed by “N points sur 100 · règle de choix du master” (N points out of 100 · master selection rule). This number of points is not a probability: it is the result of a rule, which the explanation details.

The recommended member carries the “Recommandé” (Recommended) star. The others show their own score.

Confidence

The group’s confidence badge says what the match is based on:

  • Established (checked seal): “Contenu identique · 100 % · SHA-256 complet vérifié” (Identical content · 100% · full SHA-256 verified). This is a verified fact, not an estimate.
  • Estimated (colored badge, always followed by the word “estimé” (estimated)): an inference, for example “Probablement la même photographie · 90 % estimé” (Probably the same photograph · 90% estimated). The possible qualifiers are “Même négatif” (Same negative), “Probablement la même photographie” (Probably the same photograph), “Possiblement liées” (Possibly related), and “Doublon exact probable, hash complet requis” (Probable exact duplicate, full hash required) for a candidate whose full fingerprint has not yet been computed.

An estimated match is a proposal: it is up to you to decide.

Thumbnails

Each member has a thumbnail slot. The app shows a reduced preview of each member, never the full-resolution image: the thumbnail that the camera placed in the file if it is large enough, otherwise a reduction computed from the image. Previews are kept in a cache (~/Library/Caches/Obscura Trace/), so they appear immediately the next time. An unreadable photo keeps an empty slot.

Decisions

On a member

ButtonEffect
“Choisir comme master” (Choose as master)This file becomes the group’s master, in place of the recommendation.
“Conserver” (Keep)This file is kept: it will never be proposed for removal.
“Marquer comme version” (Mark as version)This file is another version of the same photograph, to be kept.
“Marquer comme doublon” (Mark as duplicate)This file is a duplicate of the master.

Two buttons can be grayed out; hover over them to read why:

  • “Marquer comme doublon” on the current master: “Le master ne peut pas être marqué doublon : choisissez d’abord un autre master” (The master cannot be marked as a duplicate: choose another master first). A group must always keep one copy to be kept.
  • “Choisir comme master” on the master already chosen: “Déjà choisi comme master” (Already chosen as master).

On the group

ButtonEffect
“Ignorer le groupe” (Ignore group)Removes the group from review, without deciding anything about its members. Its member buttons are then grayed out: “Groupe ignoré : rouvrez-le d’abord” (Group ignored: reopen it first).
“Rouvrir le groupe” (Reopen group)Cancels all decisions made on the group. Nothing is erased: the history keeps a record of what was canceled. This button appears as soon as a decision exists or the group is ignored.

On a given member, the latest decision wins.

From the keyboard

All decisions can be made from the keyboard, without any particular accessibility setting, through the Revue (Review) menu. They apply to the active member of the displayed group, outlined in blue: the first member when the group opens.

ShortcutCommand
⌥⌘↓ / ⌥⌘↑Next member / previous member
⇧⌘MChoisir comme master (Choose as master)
⇧⌘KConserver (Keep)
⇧⌘VMarquer comme version (Mark as version)
⇧⌘DMarquer comme doublon (Mark as duplicate)
⇧⌘IIgnorer le groupe (Ignore group)
⇧⌘RRouvrir le groupe (Reopen group)

A command grayed out in the menu is a decision that the corresponding button would also refuse (group ignored, master already chosen…). The menu acts only on the Centre de revue.

When is a group “Résolu”?

A group becomes “Résolu” (Resolved) when you have chosen a master (the recommendation alone is not enough) and qualified each of the other members (kept, version or duplicate). In between, it is “En cours” (In progress). The product recommends; you decide.

When a decision is refused

The reason is shown above the members, for example:

  • “ce groupe est ignoré : rouvrez-le avant de décider” (this group is ignored: reopen it before deciding);
  • “ce groupe n’existe plus sous cette forme : il a été recalculé” (this group no longer exists in this form: it has been recomputed).

In both cases, nothing is recorded.

A decided group leaves the list

Under “Non résolus” (Unresolved), a resolved or ignored group leaves the list as soon as the decision is recorded; the selection and the details are cleared (see “Layout”). To reopen an ignored group or go back to a resolved group, choose the filter for its type — “Doublons exacts” (Exact duplicates), “Doublons probables” (Probable duplicates)… — where it remains displayed with its status, select it, then “Rouvrir le groupe” (Reopen group). If the details show “Groupe recalculé” (Group recomputed) (“Ce groupe a été recalculé depuis l’affichage de la liste. Rechargez-la.” (This group has been recomputed since the list was displayed. Reload it.)), switch filters and come back, or leave the screen and return to it.

Your decisions and later analyses

Groups are recomputed at each analysis, but your decisions are attached to the exact set of files in the group. If a new analysis finds one more copy, that is a different set: it goes back to review, as a precaution.

Your decisions and the Centre de transfert

Decisions filter the transfer plan: a file marked “doublon” (duplicate), when a present master exists, is neither copied nor moved, and stays in place in the source, even in Move mode. A group you have not reviewed, or that you have ignored, is transferred in full (see chapter 6). No decision, by itself, deletes or moves a file.

Comparing two images side by side

The side-by-side viewer: the recommended master on the left, its web version on the right, the histogram and the info sheet of each. The side-by-side viewer: the recommended master on the left, its web version on the right, the histogram and the info sheet of each.

On a group of at least two members, Comparer côte à côte (Compare side by side) opens the viewer: the recommended master on the left, the next member on the right; a menu above each image changes the file (choosing the file from the other side swaps the two). Each menu entry gives the name, “(recommandé)” (recommended) where applicable, and the location: two files with the same name never have the same entry there.

  • Synchronized zoom and pan: pinch, drag, or the Réduire (Zoom out, ⌘−), Agrandir (Zoom in, ⌘=), Ajuster (Fit, ⌘0) buttons. Both images move together and stay aligned on the same relative point, even if their proportions differ.
  • Progressive sharpness: the image is first shown as a preview; beyond the fitted image, a more detailed version is decoded, never larger than what the screen shows. The label at the bottom of each image says what is displayed (“aperçu 1024 px” (preview 1024 px), “détail 3584 px” (detail 3584 px)).
  • Info sheet: path (volume › source › relative path), dimensions, size, EXIF read during the analysis. “non lu” (not read) flags what the analysis could not read, “—” a piece of data absent from the file; both info sheets always have the same lines, aligned. The capture date is that of the camera’s clock, which the file records without a time zone: it is shown that way, for example “15 juin 2001 à 10:00:00 (heure de l’appareil, sans fuseau)” (June 15, 2001 at 10:00:00 (camera time, no time zone)). The orientation is written out in full (“pivotée de 90° vers la droite (6)” (rotated 90° to the right (6))).
  • Missing file: if a file is no longer at its path (moved, renamed, moved to the Trash since the analysis), its side shows “Fichier introuvable” (File not found) with the date of the last analysis; the info sheet is then the catalog’s. Other cases: “Lecture refusée” (Read refused), “Source injoignable” (Source unreachable) (disk not connected), “Aperçu indisponible” (Preview unavailable). The other side remains comparable.
  • Histogram: luminance as a filled area, red, green and blue as curves, computed on the preview.
  • Difference: the switch replaces the right-hand image with |gauche − droite| (|left − right|); black means identical.

The viewer modifies no file and records no decision. Closing it immediately stops everything it was still computing (details, histograms, difference).