All articles · 2026-09-07

Vectorizing a JPEG without tracing the compression artifacts

JPEG ringing, blocking and colour bleed turn into hundreds of stray shapes in naive tracers. Here is how noise-aware vectorization keeps them out.

JPEG compression adds ringing along every edge and blocks of slightly wrong colour in flat areas. Trace that literally and you get speckles, jagged rims and phantom colours.

Measure, clean, then trace

Curvora measures the noise level of each image and runs an edge-preserving denoise before segmentation. Overshoot rims that hug an edge are recognised as compression artifacts, not colours. Smoothing and curve-fit tolerance widen slightly with the measured noise, so the outline follows the shape rather than the wobble.

Your controls

Noise removal, Despeckle and Minimum shape size are the three sliders that matter for JPEG input. For badly compressed logos, set the colour count yourself with the colour shortcuts.