55 |
****************************************************************************/ |
****************************************************************************/ |
56 |
|
|
57 |
#include <stdlib.h> |
#include <stdlib.h> |
58 |
#include <string.h> // memcpy, memset |
#include <string.h> /* memcpy, memset */ |
59 |
#include <math.h> |
#include <math.h> |
60 |
|
|
61 |
#include "../portab.h" |
#include "../portab.h" |
62 |
#include "../xvid.h" // XVID_CSP_XXX's |
#include "../xvid.h" /* XVID_CSP_XXX's */ |
63 |
#include "image.h" |
#include "image.h" |
64 |
#include "colorspace.h" |
#include "colorspace.h" |
65 |
#include "interpolate8x8.h" |
#include "interpolate8x8.h" |
203 |
} |
} |
204 |
|
|
205 |
|
|
206 |
//U |
/*U */ |
207 |
dst = image->u - (EDGE_SIZE2 + EDGE_SIZE2 * edged_width2); |
dst = image->u - (EDGE_SIZE2 + EDGE_SIZE2 * edged_width2); |
208 |
src = image->u; |
src = image->u; |
209 |
|
|
231 |
} |
} |
232 |
|
|
233 |
|
|
234 |
// V |
/* V */ |
235 |
dst = image->v - (EDGE_SIZE2 + EDGE_SIZE2 * edged_width2); |
dst = image->v - (EDGE_SIZE2 + EDGE_SIZE2 * edged_width2); |
236 |
src = image->v; |
src = image->v; |
237 |
|
|
259 |
} |
} |
260 |
} |
} |
261 |
|
|
262 |
// bframe encoding requires image-based u,v interpolation |
/* bframe encoding requires image-based u,v interpolation */ |
263 |
void |
void |
264 |
image_interpolate(const IMAGE * refn, |
image_interpolate(const IMAGE * refn, |
265 |
IMAGE * refh, |
IMAGE * refh, |
482 |
edged_width / 2, width, height); |
edged_width / 2, width, height); |
483 |
return 0; |
return 0; |
484 |
|
|
485 |
case XVID_CSP_YV12: // u,v swapped |
case XVID_CSP_YV12: /* u,v swapped */ |
486 |
yv12_to_yuv(dst, dst_stride, image->y, image->v, image->u, edged_width, |
yv12_to_yuv(dst, dst_stride, image->y, image->v, image->u, edged_width, |
487 |
edged_width / 2, width, height); |
edged_width / 2, width, height); |
488 |
return 0; |
return 0; |
492 |
edged_width, edged_width / 2, width, height); |
edged_width, edged_width / 2, width, height); |
493 |
return 0; |
return 0; |
494 |
|
|
495 |
case XVID_CSP_YVYU: // u,v swapped |
case XVID_CSP_YVYU: /* u,v swapped */ |
496 |
yv12_to_yuyv(dst, dst_stride, image->y, image->v, image->u, |
yv12_to_yuyv(dst, dst_stride, image->y, image->v, image->u, |
497 |
edged_width, edged_width / 2, width, height); |
edged_width, edged_width / 2, width, height); |
498 |
return 0; |
return 0; |
551 |
return psnr_y; |
return psnr_y; |
552 |
} |
} |
553 |
|
|
554 |
/* |
#if 0 |
555 |
|
|
556 |
#include <stdio.h> |
#include <stdio.h> |
557 |
#include <string.h> |
#include <string.h> |
575 |
} |
} |
576 |
|
|
577 |
|
|
578 |
// dump image+edges to yuv pgm files |
/* dump image+edges to yuv pgm files */ |
579 |
|
|
580 |
int image_dump(IMAGE * image, uint32_t edged_width, uint32_t edged_height, char * path, int number) |
int image_dump(IMAGE * image, uint32_t edged_width, uint32_t edged_height, char * path, int number) |
581 |
{ |
{ |
598 |
|
|
599 |
return 0; |
return 0; |
600 |
} |
} |
601 |
*/ |
#endif |
602 |
|
|
603 |
|
|
604 |
|
|