There is a confusion here. Y'CbCr 4:4:4 is NOT R'G'B' and you won't ever be able to get back to "true" R'G'B' (ie having every legal codeword representing a discrete color) once your signal went through the matrix transform that convert it to luma and a pair of colour differences, whatever you do. Transcoding to Y'CbCr (with or without chroma subsampling) means that 3/4 of the codewords won't represent a valid R'G'B' combination : you lose signal to noise ratio and won't get it back when transcoding to R'G'B' again. Using 8, 10 or one million bit per channel won't change the fact that you'll still ditch 3/4 of your possible colors when going through this matrix transform and won't get them back.
Another confusion, luma is mostly (0.7152 coefficient for BT.709) computed from G' but that doesn't mean the inverse is true. As far as I understand the Y'CbCr to R'G'B' decoding matrix, it isn't.
Regarding the 8 to 10 bits stuff, what does your app exactly do Thomas ? Averaging the luma value of 2x2 blocks of pixels ?
Exclusive: here is the first app to resample Panasonic GH4 4K 8bit to 10bit 4:4:4
In: Cameras
Posted
There is a confusion here. Y'CbCr 4:4:4 is NOT R'G'B' and you won't ever be able to get back to "true" R'G'B' (ie having every legal codeword representing a discrete color) once your signal went through the matrix transform that convert it to luma and a pair of colour differences, whatever you do. Transcoding to Y'CbCr (with or without chroma subsampling) means that 3/4 of the codewords won't represent a valid R'G'B' combination : you lose signal to noise ratio and won't get it back when transcoding to R'G'B' again. Using 8, 10 or one million bit per channel won't change the fact that you'll still ditch 3/4 of your possible colors when going through this matrix transform and won't get them back.
More complete explanations : http://www.poynton.com/papers/Discreet_Logic/index.html
Another confusion, luma is mostly (0.7152 coefficient for BT.709) computed from G' but that doesn't mean the inverse is true. As far as I understand the Y'CbCr to R'G'B' decoding matrix, it isn't.
Regarding the 8 to 10 bits stuff, what does your app exactly do Thomas ? Averaging the luma value of 2x2 blocks of pixels ?