카메라에서 색상축출어플을 만드는데 아래와 같은 오류가 발생합니다

 public int[] decodeYUV420SP(byte[] yuv420sp, int width, int height) {
final int frameSize = width * height;
int[] rgb = new int[frameSize];
for (int j = 0, yp = 0; j < height; j++) {
int uvp = frameSize + (j >> 1) * width, u = 0, v = 0;
for (int i = 0; i < width; i++, yp++) {

int y = (0xff & ((int) yuv420sp[yp])) - 16;
if (y < 0) y = 0;
if ((i & 1) == 0) {
v = (0xff & yuv420sp[uvp++]) - 128;
u = (0xff & yuv420sp[uvp++]) - 128;
}

v = (0xff & yuv420sp[uvp++]) - 128; <--- 에러

 

02-20 17:18:26.945: E/AndroidRuntime(1515): FATAL EXCEPTION: main
02-20 17:18:26.945: E/AndroidRuntime(1515): Process: com.toright, PID: 1515

02-20 17:18:26.945: E/AndroidRuntime(1515): java.lang.ArrayIndexOutOfBoundsException: length=1843200; index=1843200

02-20 17:18:26.945: E/AndroidRuntime(1515): at com.toright.CameraActivity$Preview.decodeYUV420SP(CameraActivity.java:412)

02-20 17:18:26.945: E/AndroidRuntime(1515): at com.toright.CameraActivity$Preview.colorRGB(CameraActivity.java:375)

02-20 17:18:26.945: E/AndroidRuntime(1515): at com.toright.CameraActivity$Preview.access$0(CameraActivity.java:373)

02-20 17:18:26.945: E/AndroidRuntime(1515): at com.toright.CameraActivity$Preview$1.onPreviewFrame(CameraActivity.java:368)

02-20 17:18:26.945: E/AndroidRuntime(1515): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:981)

02-20 17:18:26.945: E/AndroidRuntime(1515): at android.os.Handler.dispatchMessage(Handler.java:102)

02-20 17:18:26.945: E/AndroidRuntime(1515): at android.os.Looper.loop(Looper.java:136)

02-20 17:18:26.945: E/AndroidRuntime(1515): at android.app.ActivityThread.main(ActivityThread.java:5105)

02-20 17:18:26.945: E/AndroidRuntime(1515): at java.lang.reflect.Method.invokeNative(Native Method)

02-20 17:18:26.945: E/AndroidRuntime(1515): at java.lang.reflect.Method.invoke(Method.java:515)

02-20 17:18:26.945: E/AndroidRuntime(1515): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)

02-20 17:18:26.945: E/AndroidRuntime(1515): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)

02-20 17:18:26.945: E/AndroidRuntime(1515): at dalvik.system.NativeStart.main(Native Method)

====================================================

위와같은 에러가 갤럭시3에서는 안나고요 LG G2하고 스카이폰에서 위와같은 에러가 발생합니다

 

v = (0xff & yuv420sp[uvp++]) - 128; <--- 에러

여기에서 에러가 발생합니다

왜 그럴까요?

미쳐버리겟습니다