4 ms·
A) Having a different color space is a violation of spec (H.264 profile's Baseline, Main, and High all define yuv420p). Don't expect your decoder to present the
by zbobet2012 7y ago
A) Having a different color space is a violation of spec (H.264 profile's Baseline, Main, and High all define yuv420p). Don't expect your decoder to present these properly.
B) The issues you're seeing with background banding are _not_, primarily colorspace issues. While having a larger colorspace helps, these are largely related to the way quantization is done for the macro blocks in h.264.
The original h.264 spec (which is baseline and main profiles) only had a exponential quantization matrix.
During quantization we are "rounding" to the nearest integer for pixels. If we imagine each macroblock only had _one_ frequency coefficient. Dark scenes would have a low coefficient, say 1.4 If we round to 1 that's a 28.5% error in the rounding. A brighter scene which is at 9.4 has a rounding error of only 4.3%.
Custom quantization matrices and non linear quantization matrices(which are available in newer codecs) help deal with this.
Advanced h264 encoders have variance adaptive quantization technologies to help choose what level of quantization to apply to a block.
In short: h264 has technological limitations that are not caused by colorspace and the encoder doing this encode doesn't have strong AQ.