JPEG Ghost Scanner
Detects spliced regions in JPEG images by sweeping compression quality levels. Tampered areas saved at a different quality appear as "ghosts" in the difference map.
Drag & drop a file here, Ctrl+V to paste, oror
Compression Ghosts
Reveals regions saved at a different JPEG quality than the rest of the image, indicating splicing or compositing.
Quality Estimation
Sweeps quality levels 60–99 looking for a dip in the error curve. If the lowest error sits at either end of that range, no dip was bracketed and no estimate is reported. Images over 1500 px are scaled first, which makes the estimate unusable.
Diff Heatmap
Amplified difference map, brightest where re-encoding changed the image most. Sharp detail lights up too — a splice reads as a coherent patch with a border, not as scattered brightness.
100% Private
All analysis runs locally in your browser using Canvas API. Your image is never uploaded to any server.
How it works
How JPEG ghost detection works
Every JPEG image carries invisible traces of its compression level. When you re-save a JPEG at the same quality it was originally encoded, the error introduced is minimal — the image is already "adapted" to that quality. But if a region was pasted from a different JPEG saved at a different quality, that spliced region responds differently to recompression. The JPEG Ghost Scanner exploits this by re-encoding the image at every quality level from 60 to 99 and measuring pixel-by-pixel differences. At the estimated original quality, spliced regions can "glow" because they show higher error than the background — though so does any sharp detail, which is why the map is read for coherent patches rather than for brightness alone. Two limits are worth knowing before you read a result. The re-encoding uses your browser's own Canvas JPEG encoder and its quantization tables, not the tables stored in your file, so the estimated quality is a proxy for the original setting rather than a reading of it. And images larger than 1500 px on the long side are scaled down first: resampling rewrites the 8×8 blocks the whole technique depends on, so an estimate from a scaled image is not usable. The technique complements the ELA Scanner, which detects compression inconsistencies from a single re-save rather than a full quality sweep.
When to use this tool
JPEG ghost analysis is most effective when you suspect that parts of an image were copied from another JPEG and pasted into the current one — a technique known as splicing or compositing. Journalists use it to verify whether press photos have been manipulated. Insurance investigators check submitted damage photos for pasted elements. Social media researchers use it to detect fabricated screenshots and doctored evidence. The quality sweep chart also serves as a standalone tool for estimating the JPEG save quality of any image, which is useful for archival and quality assurance. For metadata-based tampering detection, combine this with the Authenticity Checker.
Reading the quality sweep chart
The quality sweep chart plots mean squared error at each re-encode quality from 60 to 99. A characteristic "dip" in the curve marks the estimated original save quality — at that level, re-encoding barely changes the image because it's already optimized for those quantization tables. A sharp, clear dip indicates a single-compression JPEG. A flat or noisy curve may indicate the image has been through multiple compression rounds or was converted from a non-JPEG format. If the lowest error lands on 60 or on 99 — the ends of the swept range — the curve never turned back up, so no dip was bracketed at all: the original quality may lie outside the range, and the scanner reports no estimate rather than printing the boundary value as one. Click any bar to view the ghost heatmap at that quality level. The Quality Analyzer provides additional quality metrics including sharpness, noise, and exposure analysis.
Combining forensic techniques
JPEG ghost analysis is strongest when combined with other forensic tools. The ELA Scanner reveals compression inconsistencies through error level amplification — a complementary approach that sometimes catches edits JPEG ghosts miss, and vice versa. The Thumbnail Scanner checks if the embedded EXIF thumbnail still matches the main image. The Stego Scanner detects hidden data encoded in pixel values. Together, these tools cover pixel-level, compression-level, metadata-level, and steganographic analysis — the four pillars of image forensics. Our photo authenticity guide walks through the complete verification workflow.
The JPEG ghost technique was introduced in academic forensic research as a way to detect double JPEG compression at different quality levels — a telltale sign of image splicing. When a forger takes a region from one JPEG (compressed at quality A), pastes it into another JPEG (compressed at quality B), and saves the result, the pasted region retains artifacts from quality A that conflict with the surrounding quality-B background. By re-encoding at quality B and computing the difference, the pasted region stands out because it hasn't adapted to quality B the way the background has. The quality sweep approach scans all levels to catch splices regardless of the specific quality mismatch. While not foolproof — sophisticated editors can re-save at matching quality or use non-JPEG source material — JPEG ghost analysis remains one of the most accessible forensic techniques for detecting image manipulation. Read it from the heatmap rather than from the summary percentage: the share of blocks that stand out is driven mostly by how much sharp detail a photo contains, and an untouched photograph with a lot of texture can report a higher share than an image that really was spliced. What distinguishes a ghost is its shape — a coherent region with a border that follows an object rather than the picture's detail. Combined with the AI Detector for synthetic content and the File Hash Scanner for verifying file integrity, it provides a thorough forensic toolkit. Read our JPEG ghost analysis guide for tips, examples, and best practices.
Frequently Asked Questions
What is a JPEG ghost?
How does the quality sweep estimate the original save quality?
What does it mean when regions glow in the heatmap?
Why does the summary say the original quality was not determined?
Does image size affect the result?
Is the estimated quality read from the file itself?
Can this detect all types of image manipulation?
Is my image uploaded to a server?
Complementary tools: ELA Scanner for error level analysis • Thumbnail Scanner for EXIF thumbnail mismatch • Authenticity Checker for metadata verification