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"
16 struct 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
31 extern "C" {
32 #endif
33 int vp8_post_proc_frame(struct VP8Common *oci, YV12_BUFFER_CONFIG *dest,
34                         vp8_ppflags_t *flags);
35 
36 
37 void 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 
44 void vp8_deblock(struct VP8Common           *oci,
45                  YV12_BUFFER_CONFIG         *source,
46                  YV12_BUFFER_CONFIG         *post,
47                  int                         q,
48                  int                         low_var_thresh,
49                  int                         flag);
50 
51 #define MFQE_PRECISION 4
52 
53 void vp8_multiframe_quality_enhance(struct VP8Common *cm);
54 #ifdef __cplusplus
55 }  // extern "C"
56 #endif
57 
58 #endif  // VP8_COMMON_POSTPROC_H_
59