1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| /** yyyy yyyy uv uv -> yyyy yyyy uu vv */ void yuv422sp_to_yuv422p(unsigned char* yuv422sp, unsigned char* yuv422p, int width, int height) { int i, j; int y_size; int uv_size; unsigned char* p_y1; unsigned char* p_uv;
unsigned char* p_y2; unsigned char* p_u; unsigned char* p_v;
y_size = uv_size = width * height;
p_y1 = yuv422sp; p_uv = yuv422sp + y_size;
p_y2 = yuv422p; p_u = yuv422p + y_size; p_v = p_u + width * height / 2;
memcpy(p_y2, p_y1, y_size);
for (j = 0, i = 0; j < uv_size; j+=2, i++) { p_u[i] = p_uv[j]; p_v[i] = p_uv[j+1]; } }
/** yyyy yyyy uv uv -> yyyy yyyy uu vv */ void yuv420sp_to_yuv420p(unsigned char* yuv420sp, unsigned char* yuv420p, int width, int height) { int i, j; int y_size = width * height;
unsigned char* y = yuv420sp; unsigned char* uv = yuv420sp + y_size;
unsigned char* y_tmp = yuv420p; unsigned char* u_tmp = yuv420p + y_size; unsigned char* v_tmp = yuv420p + y_size * 5 / 4;
// y memcpy(y_tmp, y, y_size);
// u for (j = 0, i = 0; j < y_size/2; j+=2, i++) { u_tmp[i] = uv[j]; v_tmp[i] = uv[j+1]; } }
|