// #define OUTPUT_YUV_REC
+#ifdef OUTPUT_YUV_DENOISED
+FILE *yuv_denoised_file;
+#endif
#ifdef OUTPUT_YUV_SRC
FILE *yuv_file;
#endif
cpi->mb.nmvsadcost_hp[1] = &cpi->mb.nmvsadcosts_hp[1][MV_MAX];
cal_nmvsadcosts_hp(cpi->mb.nmvsadcost_hp);
+#ifdef OUTPUT_YUV_DENOISED
+ yuv_denoised_file = fopen("denoised.yuv", "ab");
+#endif
#ifdef OUTPUT_YUV_SRC
yuv_file = fopen("bd.yuv", "ab");
#endif
vp9_remove_common(&cpi->common);
vpx_free(cpi);
+#ifdef OUTPUT_YUV_DENOISED
+ fclose(yuv_denoised_file);
+#endif
#ifdef OUTPUT_YUV_SRC
fclose(yuv_file);
#endif
}
-#ifdef OUTPUT_YUV_SRC
-void vp9_write_yuv_frame(YV12_BUFFER_CONFIG *s) {
+#if defined(OUTPUT_YUV_SRC) || defined(OUTPUT_YUV_DENOISED)
+void vp9_write_yuv_frame(YV12_BUFFER_CONFIG *s, FILE *f) {
uint8_t *src = s->y_buffer;
int h = s->y_height;
do {
- fwrite(src, s->y_width, 1, yuv_file);
+ fwrite(src, s->y_width, 1, f);
src += s->y_stride;
} while (--h);
h = s->uv_height;
do {
- fwrite(src, s->uv_width, 1, yuv_file);
+ fwrite(src, s->uv_width, 1, f);
src += s->uv_stride;
} while (--h);
h = s->uv_height;
do {
- fwrite(src, s->uv_width, 1, yuv_file);
+ fwrite(src, s->uv_width, 1, f);
src += s->uv_stride;
} while (--h);
}
}
#endif
+#ifdef OUTPUT_YUV_DENOISED
+ vp9_write_yuv_frame(&cpi->denoiser.running_avg_y[INTRA_FRAME],
+ yuv_denoised_file);
+#endif
#ifdef OUTPUT_YUV_SRC
- vp9_write_yuv_frame(cpi->Source);
+ vp9_write_yuv_frame(cpi->Source, yuv_file);
#endif
set_speed_features(cpi);