blob: 0fa12a7c67a399be42e6b178195ba3332d4bee28 [file] [log] [blame]
John Koleszar0ea50ce2010-05-18 11:58:33 -04001/*
John Koleszarc2140b82010-09-09 08:16:39 -04002 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
John Koleszar0ea50ce2010-05-18 11:58:33 -04003 *
John Koleszar94c52e42010-06-18 12:39:21 -04004 * Use of this source code is governed by a BSD-style license
John Koleszar09202d82010-06-04 16:19:40 -04005 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
John Koleszar94c52e42010-06-18 12:39:21 -04007 * in the file PATENTS. All contributing project authors may
John Koleszar09202d82010-06-04 16:19:40 -04008 * be found in the AUTHORS file in the root of the source tree.
John Koleszar0ea50ce2010-05-18 11:58:33 -04009 */
10
11
James Zerne903cac2013-12-15 18:20:21 -080012#ifndef VP8_COMMON_POSTPROC_H_
13#define VP8_COMMON_POSTPROC_H_
John Koleszar0ea50ce2010-05-18 11:58:33 -040014
John Koleszar0ea50ce2010-05-18 11:58:33 -040015#include "vpx_ports/mem.h"
16struct postproc_state
17{
18 int last_q;
19 int last_noise;
20 char noise[3072];
Deb Mukherjee87aa8462011-12-20 14:50:31 -080021 int last_base_qindex;
Deb Mukherjee66ba79f2012-03-22 09:13:18 -070022 int last_frame_valid;
John Koleszar0ea50ce2010-05-18 11:58:33 -040023 DECLARE_ALIGNED(16, char, blackclamp[16]);
24 DECLARE_ALIGNED(16, char, whiteclamp[16]);
25 DECLARE_ALIGNED(16, char, bothclamp[16]);
26};
27#include "onyxc_int.h"
28#include "ppflags.h"
James Zernaceba822014-01-18 12:16:11 -080029
30#ifdef __cplusplus
31extern "C" {
32#endif
John Koleszar0ea50ce2010-05-18 11:58:33 -040033int vp8_post_proc_frame(struct VP8Common *oci, YV12_BUFFER_CONFIG *dest,
Fritz Koenig647df002010-11-04 16:03:36 -070034 vp8_ppflags_t *flags);
John Koleszar0ea50ce2010-05-18 11:58:33 -040035
36
Yunqing Wangf6886c42012-10-10 11:27:11 -070037void vp8_de_noise(struct VP8Common *oci,
38 YV12_BUFFER_CONFIG *source,
John Koleszar0ea50ce2010-05-18 11:58:33 -040039 YV12_BUFFER_CONFIG *post,
40 int q,
41 int low_var_thresh,
Marco06fce6b2014-09-10 10:12:45 -070042 int flag,
43 int uvfilter);
Luca Barbatoe7876ab2010-05-28 10:37:43 +020044
Yunqing Wang4c53bac2012-09-28 10:13:07 -070045void vp8_deblock(struct VP8Common *oci,
46 YV12_BUFFER_CONFIG *source,
Luca Barbatoe7876ab2010-05-28 10:37:43 +020047 YV12_BUFFER_CONFIG *post,
48 int q,
49 int low_var_thresh,
John Koleszar2a8f57f2012-01-12 16:55:44 -080050 int flag);
Johannfd903902012-01-27 10:23:52 -080051
52#define MFQE_PRECISION 4
53
54void vp8_multiframe_quality_enhance(struct VP8Common *cm);
James Zernaceba822014-01-18 12:16:11 -080055#ifdef __cplusplus
56} // extern "C"
57#endif
58
James Zerne903cac2013-12-15 18:20:21 -080059#endif // VP8_COMMON_POSTPROC_H_