@@ -36,11 +36,19 @@ JNIEXPORT void JNICALL Java_jp_co_cyberagent_android_gpuimage_GPUImageNativeLibr
36
36
Cr = yuv [cOff + 1 ];
37
37
if (Cr < 0 ) Cr += 127 ; else Cr -= 128 ;
38
38
}
39
- R = Y + Cr + (Cr >> 3 ) + (Cr >> 6 );
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
+ //
46
+ Y = Y + (Y >> 3 ) + (Y >> 5 ) + (Y >> 7 );
47
+ R = Y + (Cr << 1 ) + (Cr >> 6 );
40
48
if (R < 0 ) R = 0 ; else if (R > 255 ) R = 255 ;
41
- G = Y - ( Cb >> 1 ) + (Cb >> 4 ) + (Cb >> 5 ) - Cr + (Cr >> 2 ) + (Cr >> 3 ) + ( Cr >> 5 ) + + ( Cr >> 6 );
49
+ G = Y - Cb + (Cb >> 3 ) + (Cb >> 4 ) - (Cr >> 1 ) + (Cr >> 3 );
42
50
if (G < 0 ) G = 0 ; else if (G > 255 ) G = 255 ;
43
- B = Y + (Cb << 1 ) + (Cb >> 5 );
51
+ B = Y + Cb + (Cb >> 1 ) + ( Cb >> 4 ) + (Cb >> 5 );
44
52
if (B < 0 ) B = 0 ; else if (B > 255 ) B = 255 ;
45
53
rgbData [pixPtr ++ ] = 0xff000000 + (R << 16 ) + (G << 8 ) + B ;
46
54
}
@@ -84,11 +92,19 @@ JNIEXPORT void JNICALL Java_jp_co_cyberagent_android_gpuimage_GPUImageNativeLibr
84
92
Cr = yuv [cOff + 1 ];
85
93
if (Cr < 0 ) Cr += 127 ; else Cr -= 128 ;
86
94
}
87
- R = Y + Cr + (Cr >> 3 ) + (Cr >> 6 );
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
+ //
102
+ Y = Y + (Y >> 3 ) + (Y >> 5 ) + (Y >> 7 );
103
+ R = Y + (Cr << 1 ) + (Cr >> 6 );
88
104
if (R < 0 ) R = 0 ; else if (R > 255 ) R = 255 ;
89
- G = Y - ( Cb >> 1 ) + (Cb >> 4 ) + (Cb >> 5 ) - Cr + (Cr >> 2 ) + (Cr >> 3 ) + ( Cr >> 5 ) + + ( Cr >> 6 );
105
+ G = Y - Cb + (Cb >> 3 ) + (Cb >> 4 ) - (Cr >> 1 ) + (Cr >> 3 );
90
106
if (G < 0 ) G = 0 ; else if (G > 255 ) G = 255 ;
91
- B = Y + (Cb << 1 ) + (Cb >> 5 );
107
+ B = Y + Cb + (Cb >> 1 ) + ( Cb >> 4 ) + (Cb >> 5 );
92
108
if (B < 0 ) B = 0 ; else if (B > 255 ) B = 255 ;
93
109
rgbData [pixPtr ++ ] = 0xff000000 + (B << 16 ) + (G << 8 ) + R ;
94
110
}
0 commit comments