Skip to content

Commit 49e50f5

Browse files
committed
fix formats and update comments
1 parent f95800e commit 49e50f5

File tree

1 file changed

+26
-32
lines changed

1 file changed

+26
-32
lines changed

library/jni/yuv-decoder.c

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,20 @@ JNIEXPORT void JNICALL Java_jp_co_cyberagent_android_gpuimage_GPUImageNativeLibr
3636
Cr = yuv[cOff + 1];
3737
if(Cr < 0) Cr += 127; else Cr -= 128;
3838
}
39-
//==============================
40-
//R = 1.164Y + 2.018Cr;
41-
//G = 1.164Y - 0.813Cb - 0.391Cr;
42-
//B = 1.164Y + 1.596Cb;
43-
//==============================
44-
//===== Approximation ==========
45-
// R = 1.1640625Y + 2.015625Cr
46-
// G = 1.1640625Y - 0.8125Cb - 0.375Cr
47-
// B = 1.1640625Y + 1.59375Cb
48-
//==============================
39+
40+
//ITU-R BT.601 conversion
41+
//
42+
//R = 1.164*(Y-16) + 2.018*(Cr-128);
43+
//G = 1.164*(Y-16) - 0.813*(Cb-128) - 0.391*(Cr-128);
44+
//B = 1.164*(Y-16) + 1.596*(Cb-128);
45+
//
4946
Y = Y + (Y >> 3) + (Y >> 5) + (Y >> 7);
50-
R = Y + (Cr << 1) + (Cr >> 6);
51-
if(R < 0) R = 0; else if(R > 255) R = 255;
52-
G = Y - Cb + (Cb >> 3) + (Cb >> 4) - (Cr >> 1) + (Cr >> 3);
53-
if(G < 0) G = 0; else if(G > 255) G = 255;
54-
B = Y + Cb + (Cb >> 1) + (Cb >> 4) + (Cb >> 5);
55-
if(B < 0) B = 0; else if(B > 255) B = 255;
47+
R = Y + (Cr << 1) + (Cr >> 6);
48+
if(R < 0) R = 0; else if(R > 255) R = 255;
49+
G = Y - Cb + (Cb >> 3) + (Cb >> 4) - (Cr >> 1) + (Cr >> 3);
50+
if(G < 0) G = 0; else if(G > 255) G = 255;
51+
B = Y + Cb + (Cb >> 1) + (Cb >> 4) + (Cb >> 5);
52+
if(B < 0) B = 0; else if(B > 255) B = 255;
5653
rgbData[pixPtr++] = 0xff000000 + (R << 16) + (G << 8) + B;
5754
}
5855
}
@@ -95,23 +92,20 @@ JNIEXPORT void JNICALL Java_jp_co_cyberagent_android_gpuimage_GPUImageNativeLibr
9592
Cr = yuv[cOff + 1];
9693
if(Cr < 0) Cr += 127; else Cr -= 128;
9794
}
98-
//==============================
99-
//R = 1.164Y + 2.018Cr;
100-
//G = 1.164Y - 0.813Cb - 0.391Cr;
101-
//B = 1.164Y + 1.596Cb;
102-
//==============================
103-
//===== Approximation ==========
104-
// R = 1.1640625Y + 2.015625Cr
105-
// G = 1.1640625Y - 0.8125Cb - 0.375Cr
106-
// B = 1.1640625Y + 1.59375Cb
107-
//==============================
95+
96+
//ITU-R BT.601 conversion
97+
//
98+
//R = 1.164*(Y-16) + 2.018*(Cr-128);
99+
//G = 1.164*(Y-16) - 0.813*(Cb-128) - 0.391*(Cr-128);
100+
//B = 1.164*(Y-16) + 1.596*(Cb-128);
101+
//
108102
Y = Y + (Y >> 3) + (Y >> 5) + (Y >> 7);
109-
R = Y + (Cr << 1) + (Cr >> 6);
110-
if(R < 0) R = 0; else if(R > 255) R = 255;
111-
G = Y - Cb + (Cb >> 3) + (Cb >> 4) - (Cr >> 1) + (Cr >> 3);
112-
if(G < 0) G = 0; else if(G > 255) G = 255;
113-
B = Y + Cb + (Cb >> 1) + (Cb >> 4) + (Cb >> 5);
114-
if(B < 0) B = 0; else if(B > 255) B = 255;
103+
R = Y + (Cr << 1) + (Cr >> 6);
104+
if(R < 0) R = 0; else if(R > 255) R = 255;
105+
G = Y - Cb + (Cb >> 3) + (Cb >> 4) - (Cr >> 1) + (Cr >> 3);
106+
if(G < 0) G = 0; else if(G > 255) G = 255;
107+
B = Y + Cb + (Cb >> 1) + (Cb >> 4) + (Cb >> 5);
108+
if(B < 0) B = 0; else if(B > 255) B = 255;
115109
rgbData[pixPtr++] = 0xff000000 + (B << 16) + (G << 8) + R;
116110
}
117111
}

0 commit comments

Comments
 (0)