Exporting/Playing 16-bit [dreaded banding!]
Hey everyone! Just wanted to thank everyone for the invaluable contributions on this forum, as it's helped me out of countless jams.
I know there's a ton of info out there already on working 8-bit vs 16-bit in AE, as well as solving banding issues, and I've tried to read everything I can on the subjects before resorting to creating a post. However, I find that when it comes to codecs and the like, there is less out there- and I certainly wouldn't call myself a technical person by any stretch.
I've created an animation that has a lot of glow (thats the central visual theme actually) so naturally, I'm encountering a lot of annoying banding. Adding Noise isn't helping, and I wish I could somehow dither the ramps within the effect (I'm using Real Glow), but that's not possible either.
When I switch to 16-bit, of course it helps immensely and would love achieve those results in my output, but I can't for the life of me figure out how to export 16-bit, or play it if I manage to export it. I'm hearing there are no codecs that support 16-bit, that Microcosm does but that's its an intermediate format, and all sorts of different things about ProRes. This animation will eventually be for web, so I understand it'll be compressed eventually, but I primarily need to use it for a presentation which will be run from my laptop to a projector through an HDMI. I just need to understand as simply as possible (and I understand it's not a simple issue) what the best way for me to export and play a 16-bit file would be. I should also note that I'm willing to purchase whatever codecs/players might lead to a resolution.
Any help on this matter would be greatly appreciated! Thanks again for all the generous contributions on this forum :)
I'm going to give away a huge hollywood secret. the secret sauce for removing banding for web is to create a digital intermediate by exporting down to a lossless 8 bit codec like animation or quicktime png. this then forces AE to dither all 32bpc composites into 8 bit. you will then force the dither quality out before any actual compression takes place. the next step is to re-import that new 8 bit lossless back into AE with effect neatvideo. important! (AE working space needs to be 8 bpc in this step) then use its luma, chroma sliders to completely remove the banding. finally, export as h.264 for web. just don't tell anyone this trick!
and yea, noise increases file size by 20-30% btw. that's why really small h.264 sizes are made from denoising before compressing.
In your compression software you can set how far each keyframe is apart - I think AME defaults to 5 seconds between keyframes (so 150 frames at 30fps) To my thinking this would only be appropriate for watching paint dry or grass grow because you just couldn't have much change (action) and have smooth clean video with the key frames that far apart. But that's my level of quality need, yours may vary.
So the trade off is - the closer the keyframes are the smoother the video is going to be (as in: dissolves or fast action wont shred or go pixely or blocky) but it also comes with a higher mb/s bandwidth. Moving the key frames farther apart uses less bandwidth (because the keyframes are where all the data is stored for the rest of the frames and farther apart means there are fewer of them- that's overly simplified, but good enough for now). Because you have less bandwidth being used by more distant keyframes, and because your overall target bandwidth hasn't changed, more of that available bandwidth can go towards the accuracy (and abundance) of colors.
You might have noticed that colors look a little less saturated after a compress. This is that balance being maintained by your compression software. It needed to steal some of the color bandwidth to make sure the motion was smooth. (again, overly simplified)
By the same token if you have a file that is playing at 30fps it will naturally need more data than a file that is playing at 24fps, so again if you can render a slower frame rate, the bandwidth that would have normally gone into creating many more frames per second, can instead be used for more accurate colors. For the web (usually) it doesn't really matter what the frame rate is. Anything above 18 is going to look like real motion (half the time the web is throttling the frame rate anyway to something lower or intermittent).
But you can't just say "please play this 30 fps movie at 18fps" because it will look like it's in slow motion) you have time-interpolate to a new frame rate so that an action that took 1 second at 30fps will still take 1 sec at your new frame rate.
Even better is to plan on a slower frame rate in your creation. (like 24 or 25)
If all elements in after effects have been moved or transformed in AE and there is no running source footage, you can simply do a time stretch on a precomped version of your main comp to get a different frame rate. AE will interpolate that perfectly. If on the other hand you use running footage with discreet frames, you must use something more complicated like the built in time warp effect or RealViz twixtor to do a proper change in the frame rate.
You can often tell your compression software to do the time warp for you, but unless it's a perfect division like 30fps down to 15 or 10 fps, it never looks very good.