Ten-Bit Intermediates to Stop Grade Banding
8-bit timelines stripe skies after a mild S-curve. Make 10-bit 4:2:2 the house intermediate, and keep stills that prove the banding was the file.
An 8-bit timeline will stripe a sky after a mild S-curve. The bands were already in the file. The curve stretched them until you could count them. Making 10-bit 4:2:2 the house intermediate is how you stop relearning that on every grade.
Generated clips typically arrive as compressed 8-bit 4:2:0 MP4s. That is enough to watch, and enough to cut. It is not a grading medium. What a grade can and cannot rescue already names banding as the failure a hard grade creates on compressed AI footage. This is the house rule that prevents you from creating it: transcode to a 10-bit 4:2:2 mezzanine before you touch contrast, then prove the choice with stills.
Why 8-bit stripes a sky
8-bit luma has 256 code values. In narrow (studio) range, the legal excursion is 16–235, which is 220 steps. 10-bit narrow range is 64–940, which is 877 steps. That is four times the luma codes in the same light range, using the digital levels that travel with Recommendation ITU-R BT.709.
A sky, a wall, or a soft shadow is a shallow gradient: maybe a few dozen 8-bit codes from one side of the frame to the other. An S-curve steepens the middle of that ramp. The same dozen codes now cover more of the display's contrast. The steps stop hiding. You have not "found detail." You have made quantisation large enough to see.
Chroma is the second half of the same story. 4:2:0 samples colour on a 2×2 block. 4:2:2 samples colour every line, every other horizontal pixel. Skin edges, qualified keys and any sat push live or die on that extra chroma. Banding in a sky is mostly luma. A magenta patch on a cheek after a sat lift is often 4:2:0. The house intermediate takes both: 10-bit, 4:2:2.
Dither on an 8-bit export will sometimes hide the steps in a still. It will not give the grade more codes to work with. If you need the S-curve, you need the extra bits first.
Make 10-bit 4:2:2 the house intermediate
Do this once per job, as a conform, not as a creative look.
- Lock the cut on the compressed originals. Do not grade there. Versely's video editor is an assembly surface: one timeline, re-renderable, with a free 480p preview pass that carries a short per-user cooldown, and a single charge on the final export. Use it to decide order, trims and which take. Then leave it.
- Transcode each approved clip (or the locked sequence) to a 10-bit 4:2:2 mezzanine. Named flavours that actually mean that are Apple ProRes 422 / 422 HQ and Avid DNxHR HQX. Write the flavour on the delivery sheet. "ProRes" and "DNx" are not flavours.
- Keep range explicit. If the source was narrow, keep it narrow (64–940 in 10-bit). A silent full-range interpret will lift blacks and look like a grade you did not do.
- Grade on the mezzanine. Neutralise and match first, look second. A creative LUT on unmatched 8-bit clips is two mistakes stacked; a creative LUT will not fix mismatched shots.
- Export delivery encodes from the graded mezzanine, not from the original MP4 with the grade baked as a filter on top of 8-bit 4:2:0.
The mezzanine is not the air master and not the social encode. It is the file the grade is allowed to live on. Handing generated clips to a human editor is the sibling rule for the cut: one frame rate, a named codec, a shot log. Add bit depth and chroma to that list. An editor who receives 8-bit H.264 and is then asked for a film curve will either refuse or show you the sky.
Upscaling does not substitute for this. Upscaling may add pixels. It does not turn 220 luma codes into 877. A 4K 8-bit 4:2:0 file can still band. Resolution and bit depth are different budgets.
The 480p preview will not warn you. It is 480p, it is a preview, and it is the wrong place to judge a gradient. Free 480p previews are for pace and for whether the cut reads. Banding QC is a 100% still on the graded mezzanine.
Stills that prove the 8-bit file was the source
Do not argue with a client about whether they "see banding." Capture it.
- Take one generated clip that contains a sky, a wall, or a large soft shadow. Same clip for both legs.
- Leg A. Place it on an 8-bit 4:2:0 timeline. Apply a gentle S-curve only (no LUT, no sat, no sharpening). Park on a frame where the gradient is clean. Export a still as PNG, not JPEG.
- Leg B. Conform that same clip to the 10-bit 4:2:2 mezzanine. Apply the same curve, same node values, same frame. Export a PNG.
- View both stills at 100%, not fit-to-window. Fit-to-window resamples and will hide steps.
- Label them
clip_scurve_8bit.pngandclip_scurve_10bit.pngand keep them with the grade notes.
What you should see: Leg A shows stripes, contouring, or a staircase in the sky. Leg B holds a ramp. If both stills band, the source was already crushed (a hard clip, a posterised generation, or a previous 8-bit recode) and a mezzanine cannot invent codes that are gone. If only Leg A bands, you have the proof that the grade was not the villain. The working space was.
A third still is worth taking when someone wants to "just add grain instead": Leg A with grain, still at 100%. Grain can mask steps and still leave them in the file, which then reappear on a different display or after a platform encode. Masking is not the house intermediate.
Do this on one hero sky per job, not on every clip. Once the stills exist, the rule is cheap to defend. Without them, you will be asked to "pull the contrast back a bit" forever.
What the house rule does not excuse
10-bit 4:2:2 will not repair a generation that never rendered a sky. If the model output a banded gradient, the mezzanine preserves the bands at higher precision. Pull a still off the original file with no curve. If the steps are already there, regenerate or pick a different take. The intermediate is for grades you have not yet done, not for miracles.
It also does not replace shot matching. Two models, two white points, one 10-bit timeline: you still match, then look. Extra bits make the match less likely to fall apart when you add contrast. They do not perform the match.
Delivery encodes can go back to 8-bit 4:2:0 when the destination is a social platform or a web player that will recode you anyway. Do that after the grade, from the mezzanine, with a dithered 8-bit export if your tool offers it. Grading in the delivery codec is the move this post exists to stop.
If you never grade, you may never need the mezzanine. A cut that ships the generated files as-is, no S-curve, no LUT, no sat lift, can stay 8-bit. The moment anyone says "just a little more contrast," you are in the sky, and you want the stills ready.
FAQ
Is ProRes 422 HQ required?
No. Any named 10-bit 4:2:2 flavour your NLE and your editor both open is the requirement. ProRes 422 HQ and DNxHR HQX are the common answers, not the only ones. An 8-bit "high bitrate" H.264 file is not an answer. Bitrate is not bit depth.
Can dither on the 8-bit file replace 10-bit?
It can hide steps in a still. It cannot add the codes an S-curve is about to stretch. Dither belongs on the way out of a 10-bit grade into an 8-bit delivery, not as the working space.
Will the 480p preview show banding?
Do not trust it to. The preview is 480p, it is there to check the cut, and it carries a short per-user cooldown so it is not an infinite render loop. Banding QC is a full-resolution still at 100% on the graded intermediate.
What if the 10-bit still bands too?
Then the source was already posterised, or you are looking at a previous 8-bit recode you thought was a camera file. Open the original with no grade. If the staircase is in that still, stop grading and replace the take.