2017-11-10, 13:32
Okay, that probably sounds like rather a provocative question! I'll elaborate. (And I should make clear that my understanding of colour space conversions may not be perfect; if anything I'm about to say is actually wrong, feel free to correct me!).
On something like a DVD, the video is encoded using the rec.601 colour space. But 1080p or 2160p videos signals use the rec.709 colour space. The biggest difference between the two is that the formulae for deriving an RGB value from a YCrCb value aren't the same; so if you want to take a rec.601 YCbCr video and output it as part of a 1080p image that is also YCbCr, you can't just use original YCbCr values, you have to map from one colour space to another. I'm fairly sure Kodi does that correctly.
But there are other differences between the video standards as well, for example with the colour gamut that is used. An NTSC DVD (I believe) uses the SMPTE-C colour gamut; a PAL DVD uses the EBU gamut. EBU is quite close to the rec.709 gamut, but SMPTE-C has significant differences in the definition of its primary colours. So, if you take video an NTSC DVD and upscale it (or do something else which results in it being part of a 1080p image), it's not enough to take account of the YCbCr/RGB formulae, you also need to compensate for the difference in the primaries.
While this isn't the easiest thing to judge by eye, I suspect that Kodi (on my Nvidia Shield TV, anyway) isn't handling this correctly - that it's not taking account of the difference in the primaries, resulting in oversaturated colours when playing back an NTSC DVD rip.
I'm raising this here rather than on the Android forum because I want to know if Kodi, in general, is supposed to be able to handle this correctly. (If not, then it's obviously not an issue that is specific to Android).
(I tried doing a search before posting this but "rec.601" didn't bring anything back, and "601" is not an acceptable search term. Apologies if this is a duplicate thread!)
On something like a DVD, the video is encoded using the rec.601 colour space. But 1080p or 2160p videos signals use the rec.709 colour space. The biggest difference between the two is that the formulae for deriving an RGB value from a YCrCb value aren't the same; so if you want to take a rec.601 YCbCr video and output it as part of a 1080p image that is also YCbCr, you can't just use original YCbCr values, you have to map from one colour space to another. I'm fairly sure Kodi does that correctly.
But there are other differences between the video standards as well, for example with the colour gamut that is used. An NTSC DVD (I believe) uses the SMPTE-C colour gamut; a PAL DVD uses the EBU gamut. EBU is quite close to the rec.709 gamut, but SMPTE-C has significant differences in the definition of its primary colours. So, if you take video an NTSC DVD and upscale it (or do something else which results in it being part of a 1080p image), it's not enough to take account of the YCbCr/RGB formulae, you also need to compensate for the difference in the primaries.
While this isn't the easiest thing to judge by eye, I suspect that Kodi (on my Nvidia Shield TV, anyway) isn't handling this correctly - that it's not taking account of the difference in the primaries, resulting in oversaturated colours when playing back an NTSC DVD rip.
I'm raising this here rather than on the Android forum because I want to know if Kodi, in general, is supposed to be able to handle this correctly. (If not, then it's obviously not an issue that is specific to Android).
(I tried doing a search before posting this but "rec.601" didn't bring anything back, and "601" is not an acceptable search term. Apologies if this is a duplicate thread!)