Skip to content

Color banding guide with a free PNG depth and gradient lab

Find where color banding enters an image or video export inspect PNG bit depth locally and compare original sixteen bit eight bit and fixed noise gradient samples

FREE GRADIENT EXPORT LAB

Inspect PNG depth and compare a controlled ramp

The header reader stays on your device and reads only the first 33 bytes. It cannot identify banding from image content or certify a monitor. Ramp downloads are original grayscale PNG fixtures.

17 distinct stored samples · 8 bit grayscale · 1024 by 160 pixels

Authored dark grayscale ramp in the selected quantization mode with browser dependent display

A displayed preview can quantize or resample the source · Fixed noise is added before rounding and cannot restore detail · This is a test ramp and header reader rather than an automatic image repair

Original contrast stretched grayscale ramp comparison showing sixteen bit source eight bit rounding and fixed triangular noise

Color banding is a stepped transition where you expected a smooth gradient. To reduce it, find the earliest stage that contains the steps, preserve precision while editing, and inspect the actual delivery file. A higher bit-depth label by itself does not establish a smooth picture.

The free lab above reads a PNG header locally and creates a controlled grayscale ramp. Our original experiment follows the same ramp through sixteen-bit quantization, eight-bit rounding, fixed noise and a later sixteen-bit upconversion. The saved samples make the loss of precision inspectable without relying on how one browser or screen happens to display them.

Find the first file that contains the bands

For a creator video, product image or cinematic background, keep three checkpoints: the strongest source, the edited master and the final export. Compare the same flat background region at the same size. If the source already contains hard tonal boundaries, a new export cannot recover the exact missing shades. If the master looks smooth and the delivery file does not, investigate the delivery settings before generating a replacement scene.

Where you see the problemUseful next comparisonWhat that comparison can establish
Original source and every exportInspect the strongest available source in another suitable viewerWhether the visible steps predate the current edit
Only after a strong gradeDisable the grade on the same frameWhether the adjustment exposes coarse source steps or introduces rounding
Only in one exportCompare the saved master and a second export with documented settingsWhich delivery route changes the gradient
Only in a platform previewCompare the downloaded delivered file and local masterWhether the preview differs from the submitted source
Only on one displayView the same untouched file on another setupWhether the observation depends on the viewing chain

A screenshot captures another processed image, not the original pixel history. Keep the actual file and settings with your observation. Do not diagnose a panel defect from a compressed screenshot, or claim that a web gradient certifies a monitor’s effective precision.

Separate working precision from export precision

Bit depth describes the available encoded values per sample. The PNG specification defines bit depth together with color type. In an indexed PNG, the depth describes palette indices, so an eight-bit palette image is not the same representation as an eight-bit-per-channel RGB image.

Adobe’s color-depth tutorial demonstrates how higher working precision can preserve smoother gradients through adjustments. That is a reason to retain precision before rounding. It does not mean an already quantized source gains its original samples when placed in a higher-depth container.

Record the working mode and output format separately. For video, retain the codec, pixel format, resolution, color tags and encoding settings with the file. Two files with the same extension can have different representations. A ten-bit delivery path can preserve more available precision when the upstream material supports it, but a conversion label alone does not prove that it did.

Use the PNG header reader without overreading its result

  1. Select a PNG in Inspect a PNG header.
  2. Read the encoded dimensions, bit depth and color model.
  3. Keep the original file for a separate pixel and profile inspection.
  4. Compare the result with your editor’s intended export.

The reader checks the signature, IHDR length, IHDR checksum and supported header fields. It reads only the first thirty-three bytes and does not decompress the image. A passing header is not a full integrity check, profile audit, count of meaningful shades or visual diagnosis. A truncated file containing a valid header can still pass this limited inspection.

The lab does not upload the file or automatically repair it. A malformed header replaces the previous header result with an error. For a non-PNG image or a video, use a suitable metadata reader rather than interpreting a renamed extension as a new format.

Inspect the original narrow gradient experiment

Original contrast stretched grayscale ramp comparison showing sixteen bit source eight bit rounding and fixed triangular noise
Contrast stretched inspection views from original numeric ramps rather than AI output or a calibrated display test

We authored a horizontal ramp from byte-normalized value sixteen to thirty-two across 1,024 columns and 160 rows. Every row has the same target values. The source is deliberately narrow and dark, so ordinary eight-bit rounding has only seventeen directly stored levels available across it. Sixteen-bit quantization stores 1,024 distinct samples in this particular raster.

The comparison artwork stretches the original sixteen-to-thirty-two range onto zero to 255 and clips outside it. This makes the boundaries and noise easier to inspect. The displayed contrast is not the original dark image and is not a claim about what every screen will show. Use the original lossless PNGs for exact samples.

Saved fixtureEncoded depthDistinct stored samplesMean absolute error in byte units
Source quantized to sixteen bits1610240.000972
Nearest rounding8170.249756
Fixed triangular noise before rounding8190.405502
Nearest result later stored in sixteen bits16170.249756

Download the sixteen-bit source PNG, eight-bit nearest PNG, fixed-noise PNG and later sixteen-bit upconversion. The measured CSV and measurement record preserve the results.

Why noise changes the pattern rather than restoring the source

The noise mode adds the difference between two fixed pseudorandom uniform draws before rounding. Its range is less than one byte unit in either direction. Seed seventeen makes the experiment repeatable. The noise can select values just outside the original endpoints, which explains why this fixture contains nineteen stored values instead of seventeen.

That larger count is not recovered source information. Its mean absolute sample error is higher than the nearest-rounding baseline. The spatial pattern trades clean boundaries for texture; whether that texture is acceptable depends on the image, scale and final delivery. Inspect faces, product lettering and dark gradients independently before applying a global finishing treatment.

For a deliberate graphic effect with a small grayscale palette, use our image dithering converter. That tool owns the Bayer and Floyd–Steinberg conversion workflow. This page instead follows precision loss and export diagnosis in a nearly continuous gradient.

Why a sixteen bit conversion can still contain seventeen shades

The upconversion fixture starts with the already rounded eight-bit raster and multiplies each stored value by 257. It is genuinely stored as a sixteen-bit PNG, yet still has seventeen distinct samples. The container has more representational capacity while the image has retained its earlier quantization.

Return to an earlier higher-precision source when one exists. When it does not, a smoothing or debanding treatment estimates a different transition. Compare that estimate with important edges and keep the untouched source. Do not describe an inferred transition as an exact recovery of the original gradient.

For texture loss and other delivery changes, compare the original files in our compression artifacts experiment.

Keep the final video encode in the experiment

Test a short representative region through the complete delivery route. Include a smooth background, a detailed edge and motion if the real scene moves. Compare the returned file rather than trusting an editor preview. Keep resolution, crop and viewing scale fixed so the result can be interpreted.

The official FFmpeg gradfun documentation specifically describes a playback debanding filter and warns that lossy compression can remove its dithering and bring bands back. Do not turn a playback recommendation into a universal pre-encode repair command. This study does not benchmark video codecs or claim that HEVC always avoids banding better than AVC.

For AI-generated cinema, inspect the earliest returned file from the chosen workflow before grading and export. A flat generated sky may already contain steps. In Clout Cinema, define the scene and review the actual returned clip; in Image and Video, preserve the accepted still. The local lab here neither configures those models nor repairs their output.

Reproduce the samples and keep a review record

Change the lab’s byte endpoints and compare all three modes with the same settings. Use whole endpoints from zero to 255 with the end above the start. The seed changes the fixed-noise realization. Download the PNG, JSON report and sample-count CSV after selecting the desired mode. The preview depends on browser decoding and display behavior; the report counts the authored stored samples.

The original helper, asset builder, independent Python verifier and reproduction instructions make the fixture inspectable. The verifier checks PNG chunks, saved samples, noise generation, counts and the upconversion. The asset manifest records hashes.

For your own export, record the source filename, affected region, first problematic stage, settings change and result in the final file. A useful conclusion names that stage and the visible tradeoff. More stored bits, more noise or a smoother preview alone is not a complete production decision.

Sources and testing

Semrush US overview checked October 24 2026 showed color banding volume 880 KD23 and global volume 6100. W3C PNG header rules Adobe working precision references and FFmpeg gradfun documentation were checked for the limited claims cited. Original numeric ramps and exact saved sample verification are not AI output video codec benchmarks or display calibration.

Questions, answered

Frequently asked questions

What is color banding

Color banding is a visible stepped transition where a gradient was expected to be smooth. Inspect the source edit export and viewing chain to locate its first appearance.

Does converting an image to sixteen bits remove banding

Not by itself. Our original eight bit ramp retains seventeen distinct samples after being stored in a sixteen bit PNG.

Does the PNG reader detect banding automatically

No. It reads the signature and IHDR fields locally. It does not decode pixels inspect a color profile or certify the full file.

Does adding noise recover lost colors

No. It changes the spatial pattern and can mask boundaries at the cost of texture. The fixed noise fixture has higher sample error than nearest rounding.

Can this page test my monitor bit depth

No. Browser decoding scaling operating system processing and the display can all affect the preview. The fixture measurements describe saved samples.

Is one video codec guaranteed to prevent banding

No. Judge the complete source processing and delivery route. This experiment measures PNG ramps and does not rank video codecs.