summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_denoiser.c
diff options
context:
space:
mode:
authorTim Kopp <tkopp@google.com>2014-06-11 16:12:21 -0700
committerTim Kopp <tkopp@google.com>2014-06-18 14:18:09 -0700
commit2a72067301dd5e95e815a3d9789708315039a3b6 (patch)
tree32caf12d9c15296f804cb2ef8056ce35490dd8cb /vp9/encoder/vp9_denoiser.c
parent99d648b943b18b9a35c17d2c449df7408b18a1f3 (diff)
downloadlibvpx-2a72067301dd5e95e815a3d9789708315039a3b6.tar
libvpx-2a72067301dd5e95e815a3d9789708315039a3b6.tar.gz
libvpx-2a72067301dd5e95e815a3d9789708315039a3b6.tar.bz2
libvpx-2a72067301dd5e95e815a3d9789708315039a3b6.zip
Implemented vp9_denoiser_{alloc,free}()
Change-Id: I79eba79f7c52eec19ef2356278597e06620d5e27
Diffstat (limited to 'vp9/encoder/vp9_denoiser.c')
-rw-r--r--vp9/encoder/vp9_denoiser.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_denoiser.c b/vp9/encoder/vp9_denoiser.c
index 687b4c2b2..7e0a0924f 100644
--- a/vp9/encoder/vp9_denoiser.c
+++ b/vp9/encoder/vp9_denoiser.c
@@ -40,10 +40,36 @@ void vp9_denoiser_update_frame_stats() {
int vp9_denoiser_alloc(VP9_DENOISER *denoiser, int width, int height,
int border) {
+ assert(denoiser);
+
+ denoiser->running_avg_y.stride = width + 2 * border;
+
+ denoiser->running_avg_y.buf = calloc(
+ ((2 * border) + width) * ((2 * border) + height), sizeof(uint8_t));
+ if (denoiser->running_avg_y.buf == NULL) {
+ vp9_denoiser_free(denoiser);
+ return 1;
+ }
+
+ denoiser->mc_running_avg_y.stride = width + 2 * border;
+
+ denoiser->mc_running_avg_y.buf = calloc(
+ ((2 * border) + width) * ((2 * border) + height), sizeof(uint8_t));
+ if (denoiser->mc_running_avg_y.buf == NULL) {
+ vp9_denoiser_free(denoiser);
+ return 1;
+ }
+
return 0;
}
void vp9_denoiser_free(VP9_DENOISER *denoiser) {
+ if (denoiser->running_avg_y.buf != NULL) {
+ free(denoiser->running_avg_y.buf);
+ }
+ if (denoiser->mc_running_avg_y.buf != NULL) {
+ free(denoiser->mc_running_avg_y.buf);
+ }
return;
}