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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 YV12_BUFFER_CONFIG *buf; | 185 YV12_BUFFER_CONFIG *buf; |
186 struct scale_factors sf; | 186 struct scale_factors sf; |
187 } RefBuffer; | 187 } RefBuffer; |
188 | 188 |
189 typedef struct macroblockd { | 189 typedef struct macroblockd { |
190 struct macroblockd_plane plane[MAX_MB_PLANE]; | 190 struct macroblockd_plane plane[MAX_MB_PLANE]; |
191 | 191 |
192 int mi_stride; | 192 int mi_stride; |
193 | 193 |
194 MODE_INFO *mi; | 194 MODE_INFO *mi; |
| 195 MODE_INFO *left_mi; |
| 196 MODE_INFO *above_mi; |
| 197 MB_MODE_INFO *left_mbmi; |
| 198 MB_MODE_INFO *above_mbmi; |
195 | 199 |
196 int up_available; | 200 int up_available; |
197 int left_available; | 201 int left_available; |
198 | 202 |
199 /* Distance of MB away from frame edges */ | 203 /* Distance of MB away from frame edges */ |
200 int mb_to_left_edge; | 204 int mb_to_left_edge; |
201 int mb_to_right_edge; | 205 int mb_to_right_edge; |
202 int mb_to_top_edge; | 206 int mb_to_top_edge; |
203 int mb_to_bottom_edge; | 207 int mb_to_bottom_edge; |
204 | 208 |
205 /* pointers to reference frames */ | 209 /* pointers to reference frames */ |
206 RefBuffer *block_refs[2]; | 210 RefBuffer *block_refs[2]; |
207 | 211 |
208 /* pointer to current frame */ | 212 /* pointer to current frame */ |
209 const YV12_BUFFER_CONFIG *cur_buf; | 213 const YV12_BUFFER_CONFIG *cur_buf; |
210 | 214 |
| 215 ENTROPY_CONTEXT *above_context[MAX_MB_PLANE]; |
| 216 ENTROPY_CONTEXT left_context[MAX_MB_PLANE][16]; |
| 217 |
| 218 PARTITION_CONTEXT *above_seg_context; |
| 219 PARTITION_CONTEXT left_seg_context[8]; |
| 220 |
211 /* mc buffer */ | 221 /* mc buffer */ |
212 DECLARE_ALIGNED(16, uint8_t, mc_buf[80 * 2 * 80 * 2]); | 222 DECLARE_ALIGNED(16, uint8_t, mc_buf[80 * 2 * 80 * 2]); |
213 | 223 |
214 #if CONFIG_VP9_HIGHBITDEPTH | 224 #if CONFIG_VP9_HIGHBITDEPTH |
215 /* Bit depth: 8, 10, 12 */ | 225 /* Bit depth: 8, 10, 12 */ |
216 int bd; | 226 int bd; |
217 DECLARE_ALIGNED(16, uint16_t, mc_buf_high[80 * 2 * 80 * 2]); | 227 DECLARE_ALIGNED(16, uint16_t, mc_buf_high[80 * 2 * 80 * 2]); |
218 #endif | 228 #endif |
219 | 229 |
| 230 /* dqcoeff are shared by all the planes. So planes must be decoded serially */ |
| 231 DECLARE_ALIGNED(16, tran_low_t, dqcoeff[64 * 64]); |
| 232 |
220 int lossless; | 233 int lossless; |
221 | |
222 int corrupted; | 234 int corrupted; |
223 | 235 |
224 DECLARE_ALIGNED(16, tran_low_t, dqcoeff[MAX_MB_PLANE][64 * 64]); | 236 struct vpx_internal_error_info *error_info; |
225 | |
226 ENTROPY_CONTEXT *above_context[MAX_MB_PLANE]; | |
227 ENTROPY_CONTEXT left_context[MAX_MB_PLANE][16]; | |
228 | |
229 PARTITION_CONTEXT *above_seg_context; | |
230 PARTITION_CONTEXT left_seg_context[8]; | |
231 } MACROBLOCKD; | 237 } MACROBLOCKD; |
232 | 238 |
233 static INLINE BLOCK_SIZE get_subsize(BLOCK_SIZE bsize, | 239 static INLINE BLOCK_SIZE get_subsize(BLOCK_SIZE bsize, |
234 PARTITION_TYPE partition) { | 240 PARTITION_TYPE partition) { |
235 return subsize_lookup[partition][bsize]; | 241 return subsize_lookup[partition][bsize]; |
236 } | 242 } |
237 | 243 |
238 extern const TX_TYPE intra_mode_to_tx_type_lookup[INTRA_MODES]; | 244 extern const TX_TYPE intra_mode_to_tx_type_lookup[INTRA_MODES]; |
239 | 245 |
240 static INLINE TX_TYPE get_tx_type(PLANE_TYPE plane_type, | 246 static INLINE TX_TYPE get_tx_type(PLANE_TYPE plane_type, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 | 313 |
308 void vp9_set_contexts(const MACROBLOCKD *xd, struct macroblockd_plane *pd, | 314 void vp9_set_contexts(const MACROBLOCKD *xd, struct macroblockd_plane *pd, |
309 BLOCK_SIZE plane_bsize, TX_SIZE tx_size, int has_eob, | 315 BLOCK_SIZE plane_bsize, TX_SIZE tx_size, int has_eob, |
310 int aoff, int loff); | 316 int aoff, int loff); |
311 | 317 |
312 #ifdef __cplusplus | 318 #ifdef __cplusplus |
313 } // extern "C" | 319 } // extern "C" |
314 #endif | 320 #endif |
315 | 321 |
316 #endif // VP9_COMMON_VP9_BLOCKD_H_ | 322 #endif // VP9_COMMON_VP9_BLOCKD_H_ |
OLD | NEW |