1ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang/*
2ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *
4ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *  Use of this source code is governed by a BSD-style license
5ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *  that can be found in the LICENSE file in the root of the source
6ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *  tree. An additional intellectual property rights grant can be found
7ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *  in the file PATENTS.  All contributing project authors may
8ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang *  be found in the AUTHORS file in the root of the source tree.
9ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang */
10ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
11ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifndef VP9_ENCODER_VP9_ENCODEMB_H_
12ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define VP9_ENCODER_VP9_ENCODEMB_H_
13ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
14ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "./vpx_config.h"
15ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vp9/encoder/vp9_block.h"
16ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
172ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian#ifdef __cplusplus
182ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanianextern "C" {
192ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian#endif
2091037db265ecdd914a26e056cf69207b4f50924ehkuang
21da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanianstruct encode_b_args {
22da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian  MACROBLOCK *x;
23da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian  struct optimize_ctx *ctx;
24da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian  int8_t *skip;
25da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian};
261184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_encode_sb(MACROBLOCK *x, BLOCK_SIZE bsize);
272ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanianvoid vp9_encode_sby_pass1(MACROBLOCK *x, BLOCK_SIZE bsize);
28ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianvoid vp9_xform_quant_fp(MACROBLOCK *x, int plane, int block,
29ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian                        BLOCK_SIZE plane_bsize, TX_SIZE tx_size);
30ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanianvoid vp9_xform_quant_dc(MACROBLOCK *x, int plane, int block,
31ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian                        BLOCK_SIZE plane_bsize, TX_SIZE tx_size);
322ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanianvoid vp9_xform_quant(MACROBLOCK *x, int plane, int block,
332ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian                     BLOCK_SIZE plane_bsize, TX_SIZE tx_size);
34ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
352ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanianvoid vp9_subtract_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane);
36ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
37da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanianvoid vp9_encode_block_intra(int plane, int block, BLOCK_SIZE plane_bsize,
38da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian                            TX_SIZE tx_size, void *arg);
39ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
402ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanianvoid vp9_encode_intra_block_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane);
412ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian
422ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian#ifdef __cplusplus
432ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian}  // extern "C"
442ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian#endif
45ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
46ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif  // VP9_ENCODER_VP9_ENCODEMB_H_
47