1/*
2 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  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
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11
12#ifndef VP8_COMMON_POSTPROC_H_
13#define VP8_COMMON_POSTPROC_H_
14
15#include "vpx_ports/mem.h"
16struct postproc_state
17{
18    int           last_q;
19    int           last_noise;
20    char          noise[3072];
21    int           last_base_qindex;
22    int           last_frame_valid;
23    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"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33int vp8_post_proc_frame(struct VP8Common *oci, YV12_BUFFER_CONFIG *dest,
34                        vp8_ppflags_t *flags);
35
36
37void vp8_de_noise(struct VP8Common           *oci,
38                  YV12_BUFFER_CONFIG         *source,
39                  YV12_BUFFER_CONFIG         *post,
40                  int                         q,
41                  int                         low_var_thresh,
42                  int                         flag,
43                  int                         uvfilter);
44
45void vp8_deblock(struct VP8Common           *oci,
46                 YV12_BUFFER_CONFIG         *source,
47                 YV12_BUFFER_CONFIG         *post,
48                 int                         q,
49                 int                         low_var_thresh,
50                 int                         flag);
51
52#define MFQE_PRECISION 4
53
54void vp8_multiframe_quality_enhance(struct VP8Common *cm);
55#ifdef __cplusplus
56}  // extern "C"
57#endif
58
59#endif  // VP8_COMMON_POSTPROC_H_
60