]> git.sesse.net Git - movit/blobdiff - ycbcr.cpp
Prepare for better understanding of 10- and 12-bit Y'CbCr.
[movit] / ycbcr.cpp
index 6dbcd9d94691e1a1190d1fcabf36c1ff373e1919..dc223e7441c845cf7c1449e439862c5732efc71f 100644 (file)
--- a/ycbcr.cpp
+++ b/ycbcr.cpp
@@ -52,7 +52,7 @@ float compute_chroma_offset(float pos, unsigned subsampling_factor, unsigned res
                // x + (-0) can be optimized away freely, as opposed to x + 0.
                return -0.0;
        } else {
-               return (local_chroma_pos - 0.5) / resolution;
+               return (0.5 - local_chroma_pos) / resolution;
        }
 }
 
@@ -90,6 +90,7 @@ void compute_ycbcr_matrix(YCbCrFormat ycbcr_format, float* offset, Matrix3d* ycb
        }
 
        if (ycbcr_format.full_range) {
+               // TODO: Use num_levels.
                offset[0] = 0.0 / 255.0;
                offset[1] = 128.0 / 255.0;
                offset[2] = 128.0 / 255.0;
@@ -99,6 +100,7 @@ void compute_ycbcr_matrix(YCbCrFormat ycbcr_format, float* offset, Matrix3d* ycb
                scale[2] = 1.0;
        } else {
                // Rec. 601, page 4; Rec. 709, page 19; Rec. 2020, page 4.
+               // TODO: Use num_levels.
                offset[0] = 16.0 / 255.0;
                offset[1] = 128.0 / 255.0;
                offset[2] = 128.0 / 255.0;