2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
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.
17 #include "entropymv.h"
19 #include "vpx_ports/mem.h"
30 // 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries
34 // 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries
39 short *zrun_zbin_boost
;
42 // Zbin Over Quant value
45 unsigned char **base_src
;
62 DECLARE_ALIGNED(16, short, src_diff
[400]); // 16x16 Y 8x8 U 8x8 V 4x4 2nd Y
63 DECLARE_ALIGNED(16, short, coeff
[400]); // 16x16 Y 8x8 U 8x8 V 4x4 2nd Y
65 // 16 Y blocks, 4 U blocks, 4 V blocks, 1 DC 2nd order block each with 16 entries
68 YV12_BUFFER_CONFIG src
;
71 PARTITION_INFO
*partition_info
; /* work pointer */
72 PARTITION_INFO
*pi
; /* Corresponds to upper left visible macroblock */
73 PARTITION_INFO
*pip
; /* Base of allocated array */
77 int searches_per_step
;
87 int mvcosts
[2][MVvals
+1];
89 int mvsadcosts
[2][MVvals
+1];
91 int mbmode_cost
[2][MB_MODE_COUNT
];
92 int intra_uv_mode_cost
[2][MB_MODE_COUNT
];
93 unsigned int bmode_costs
[10][10][10];
94 unsigned int inter_bmode_costs
[B_MODE_COUNT
];
96 // These define limits to motion vector components to prevent them from extending outside the UMV borders
102 int vector_range
; // Used to monitor limiting range of recent vectors to guide search.
107 //char * gf_active_ptr;
108 signed char *gf_active_ptr
;
110 unsigned char *active_ptr
;
113 unsigned int token_costs
[BLOCK_TYPES
] [COEF_BANDS
] [PREV_COEF_CONTEXTS
] [vp8_coef_tokens
];
117 void (*vp8_short_fdct4x4
)(short *input
, short *output
, int pitch
);
118 void (*vp8_short_fdct8x4
)(short *input
, short *output
, int pitch
);
119 void (*short_walsh4x4
)(short *input
, short *output
, int pitch
);
120 void (*quantize_b
)(BLOCK
*b
, BLOCKD
*d
);