|
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 #ifndef VP9_ENCODER_VP9_ENCODEMB_H_ |
|
12 #define VP9_ENCODER_VP9_ENCODEMB_H_ |
|
13 |
|
14 #include "./vpx_config.h" |
|
15 #include "vp9/encoder/vp9_block.h" |
|
16 #include "vp9/encoder/vp9_onyx_int.h" |
|
17 #include "vp9/common/vp9_onyxc_int.h" |
|
18 |
|
19 typedef struct { |
|
20 MB_PREDICTION_MODE mode; |
|
21 MV_REFERENCE_FRAME ref_frame; |
|
22 MV_REFERENCE_FRAME second_ref_frame; |
|
23 } MODE_DEFINITION; |
|
24 |
|
25 typedef struct { |
|
26 MV_REFERENCE_FRAME ref_frame; |
|
27 MV_REFERENCE_FRAME second_ref_frame; |
|
28 } REF_DEFINITION; |
|
29 |
|
30 struct optimize_ctx { |
|
31 ENTROPY_CONTEXT ta[MAX_MB_PLANE][16]; |
|
32 ENTROPY_CONTEXT tl[MAX_MB_PLANE][16]; |
|
33 }; |
|
34 |
|
35 struct encode_b_args { |
|
36 MACROBLOCK *x; |
|
37 struct optimize_ctx *ctx; |
|
38 }; |
|
39 |
|
40 void vp9_encode_sb(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
41 void vp9_encode_sby(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
42 |
|
43 void vp9_xform_quant(int plane, int block, BLOCK_SIZE plane_bsize, |
|
44 TX_SIZE tx_size, void *arg); |
|
45 |
|
46 void vp9_subtract_sby(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
47 void vp9_subtract_sbuv(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
48 void vp9_subtract_sb(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
49 |
|
50 void vp9_encode_intra_block_y(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
51 void vp9_encode_intra_block_uv(MACROBLOCK *x, BLOCK_SIZE bsize); |
|
52 |
|
53 |
|
54 #endif // VP9_ENCODER_VP9_ENCODEMB_H_ |