| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 | 27 |
| 28 typedef struct | 28 typedef struct |
| 29 { | 29 { |
| 30 // 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries | 30 // 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries |
| 31 short *src_diff; | 31 short *src_diff; |
| 32 short *coeff; | 32 short *coeff; |
| 33 | 33 |
| 34 // 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 |
| 35 short *quant; | 35 short *quant; |
| 36 short *quant_fast; | 36 short *quant_fast; |
| 37 short *quant_shift; | 37 unsigned char *quant_shift; |
| 38 short *zbin; | 38 short *zbin; |
| 39 short *zrun_zbin_boost; | 39 short *zrun_zbin_boost; |
| 40 short *round; | 40 short *round; |
| 41 | 41 |
| 42 // Zbin Over Quant value | 42 // Zbin Over Quant value |
| 43 short zbin_extra; | 43 short zbin_extra; |
| 44 | 44 |
| 45 unsigned char **base_src; | 45 unsigned char **base_src; |
| 46 int src; | 46 int src; |
| 47 int src_stride; | 47 int src_stride; |
| 48 | 48 |
| 49 // MV enc_mv; | 49 // MV enc_mv; |
| 50 int force_empty; | 50 int force_empty; |
| 51 | 51 |
| 52 } BLOCK; | 52 } BLOCK; |
| 53 | 53 |
| 54 typedef struct | 54 typedef struct |
| 55 { | 55 { |
| 56 int count; | 56 int count; |
| 57 B_MODE_INFO bmi[16]; | 57 struct |
| 58 { |
| 59 B_PREDICTION_MODE mode; |
| 60 int_mv mv; |
| 61 } bmi[16]; |
| 58 } PARTITION_INFO; | 62 } PARTITION_INFO; |
| 59 | 63 |
| 60 typedef struct | 64 typedef struct |
| 61 { | 65 { |
| 62 DECLARE_ALIGNED(16, short, src_diff[400]); // 16x16 Y 8x8 U 8x8 V 4x4
2nd Y | 66 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 | 67 DECLARE_ALIGNED(16, short, coeff[400]); // 16x16 Y 8x8 U 8x8 V 4x4 2nd Y |
| 68 DECLARE_ALIGNED(16, unsigned char, thismb[256]); |
| 64 | 69 |
| 70 unsigned char *thismb_ptr; |
| 65 // 16 Y blocks, 4 U blocks, 4 V blocks, 1 DC 2nd order block each with 16 en
tries | 71 // 16 Y blocks, 4 U blocks, 4 V blocks, 1 DC 2nd order block each with 16 en
tries |
| 66 BLOCK block[25]; | 72 BLOCK block[25]; |
| 67 | 73 |
| 68 YV12_BUFFER_CONFIG src; | 74 YV12_BUFFER_CONFIG src; |
| 69 | 75 |
| 70 MACROBLOCKD e_mbd; | 76 MACROBLOCKD e_mbd; |
| 71 PARTITION_INFO *partition_info; /* work pointer */ | 77 PARTITION_INFO *partition_info; /* work pointer */ |
| 72 PARTITION_INFO *pi; /* Corresponds to upper left visible macroblock */ | 78 PARTITION_INFO *pi; /* Corresponds to upper left visible macroblock */ |
| 73 PARTITION_INFO *pip; /* Base of allocated array */ | 79 PARTITION_INFO *pip; /* Base of allocated array */ |
| 74 | 80 |
| 75 search_site *ss; | 81 search_site *ss; |
| 76 int ss_count; | 82 int ss_count; |
| 77 int searches_per_step; | 83 int searches_per_step; |
| 78 | 84 |
| 79 int errorperbit; | 85 int errorperbit; |
| 80 int sadperbit16; | 86 int sadperbit16; |
| 81 int sadperbit4; | 87 int sadperbit4; |
| 82 int errthresh; | |
| 83 int rddiv; | 88 int rddiv; |
| 84 int rdmult; | 89 int rdmult; |
| 85 INT64 activity_sum; | 90 unsigned int * mb_activity_ptr; |
| 91 int * mb_norm_activity_ptr; |
| 92 signed int act_zbin_adj; |
| 86 | 93 |
| 87 int mvcosts[2][MVvals+1]; | 94 int mvcosts[2][MVvals+1]; |
| 88 int *mvcost[2]; | 95 int *mvcost[2]; |
| 89 int mvsadcosts[2][MVvals+1]; | 96 int mvsadcosts[2][MVfpvals+1]; |
| 90 int *mvsadcost[2]; | 97 int *mvsadcost[2]; |
| 91 int mbmode_cost[2][MB_MODE_COUNT]; | 98 int mbmode_cost[2][MB_MODE_COUNT]; |
| 92 int intra_uv_mode_cost[2][MB_MODE_COUNT]; | 99 int intra_uv_mode_cost[2][MB_MODE_COUNT]; |
| 93 unsigned int bmode_costs[10][10][10]; | 100 unsigned int bmode_costs[10][10][10]; |
| 94 unsigned int inter_bmode_costs[B_MODE_COUNT]; | 101 unsigned int inter_bmode_costs[B_MODE_COUNT]; |
| 95 | 102 |
| 96 // These define limits to motion vector components to prevent them from exte
nding outside the UMV borders | 103 // These define limits to motion vector components to prevent them from exte
nding outside the UMV borders |
| 97 int mv_col_min; | 104 int mv_col_min; |
| 98 int mv_col_max; | 105 int mv_col_max; |
| 99 int mv_row_min; | 106 int mv_row_min; |
| 100 int mv_row_max; | 107 int mv_row_max; |
| 101 | 108 |
| 102 int vector_range; // Used to monitor limiting range of recent vectors to
guide search. | 109 int vector_range; // Used to monitor limiting range of recent vectors to
guide search. |
| 103 int skip; | 110 int skip; |
| 104 | 111 |
| 105 int encode_breakout; | 112 int encode_breakout; |
| 106 | 113 |
| 107 //char * gf_active_ptr; | 114 //char * gf_active_ptr; |
| 108 signed char *gf_active_ptr; | 115 signed char *gf_active_ptr; |
| 109 | 116 |
| 110 unsigned char *active_ptr; | 117 unsigned char *active_ptr; |
| 111 MV_CONTEXT *mvc; | 118 MV_CONTEXT *mvc; |
| 112 | 119 |
| 113 unsigned int token_costs[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [vp8
_coef_tokens]; | 120 unsigned int token_costs[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX
_ENTROPY_TOKENS]; |
| 114 int optimize; | 121 int optimize; |
| 115 int q_index; | 122 int q_index; |
| 116 | 123 |
| 117 void (*vp8_short_fdct4x4)(short *input, short *output, int pitch); | 124 void (*vp8_short_fdct4x4)(short *input, short *output, int pitch); |
| 118 void (*vp8_short_fdct8x4)(short *input, short *output, int pitch); | 125 void (*vp8_short_fdct8x4)(short *input, short *output, int pitch); |
| 119 void (*short_walsh4x4)(short *input, short *output, int pitch); | 126 void (*short_walsh4x4)(short *input, short *output, int pitch); |
| 120 void (*quantize_b)(BLOCK *b, BLOCKD *d); | 127 void (*quantize_b)(BLOCK *b, BLOCKD *d); |
| 128 void (*quantize_b_pair)(BLOCK *b1, BLOCK *b2, BLOCKD *d0, BLOCKD *d1); |
| 121 | 129 |
| 122 } MACROBLOCK; | 130 } MACROBLOCK; |
| 123 | 131 |
| 124 | 132 |
| 125 #endif | 133 #endif |
| OLD | NEW |