Java yuv422To420
摘要:public static byte[] yuv422To420(byte[] yuv422, int width, int height) {
int len = width * height;
//yuv格式数组大小,y亮度占len长度,u,v各占len/4长度。...
public static byte[] yuv422To420(byte[] yuv422, int width, int height) { int len = width * height; //yuv格式数组大小,y亮度占len长度,u,v各占len/4长度。 byte[] yuv = new byte[len * 3 / 2]; int y = 0; int u = len; int index_y = 0, index_u = 0; boolean is_u = true; for (int i = 0; i < height * 2; i++) { for (int j = 0; j < width; j = j + 4) { yuv[y + (index_y++)] = yuv422[width * i + j]; yuv[y + (index_y++)] = yuv422[width * i + j + 2]; } } for (int i = 0; i < height; i = i + 2) { int base = i * width * 2; for (int j = base + 1; j < base + width * 2; j = j + 2) { if (is_u) { yuv[u + (index_u++)] = yuv422[j]; is_u = false; } else { yuv[u + (index_u++)] = yuv422[j]; is_u = true; } } } return yuv; }