Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: source/libvpx/vp9/common/vp9_onyxc_int.h

Issue 390713002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: libvpx: Pull from upstream Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp9/common/vp9_loopfilter.c ('k') | source/libvpx/vp9/common/vp9_reconinter.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 for (i = 0; i < MAX_MB_PLANE; ++i) { 250 for (i = 0; i < MAX_MB_PLANE; ++i) {
251 xd->plane[i].dqcoeff = xd->dqcoeff[i]; 251 xd->plane[i].dqcoeff = xd->dqcoeff[i];
252 xd->above_context[i] = cm->above_context + 252 xd->above_context[i] = cm->above_context +
253 i * sizeof(*cm->above_context) * 2 * mi_cols_aligned_to_sb(cm->mi_cols); 253 i * sizeof(*cm->above_context) * 2 * mi_cols_aligned_to_sb(cm->mi_cols);
254 } 254 }
255 255
256 xd->above_seg_context = cm->above_seg_context; 256 xd->above_seg_context = cm->above_seg_context;
257 xd->mi_stride = cm->mi_stride; 257 xd->mi_stride = cm->mi_stride;
258 } 258 }
259 259
260 static INLINE int frame_is_intra_only(const VP9_COMMON *const cm) {
261 return cm->frame_type == KEY_FRAME || cm->intra_only;
262 }
263
260 static INLINE const vp9_prob* get_partition_probs(const VP9_COMMON *cm, 264 static INLINE const vp9_prob* get_partition_probs(const VP9_COMMON *cm,
261 int ctx) { 265 int ctx) {
262 return cm->frame_type == KEY_FRAME ? vp9_kf_partition_probs[ctx] 266 return frame_is_intra_only(cm) ? vp9_kf_partition_probs[ctx]
263 : cm->fc.partition_prob[ctx]; 267 : cm->fc.partition_prob[ctx];
264 } 268 }
265 269
266 static INLINE void set_skip_context(MACROBLOCKD *xd, int mi_row, int mi_col) { 270 static INLINE void set_skip_context(MACROBLOCKD *xd, int mi_row, int mi_col) {
267 const int above_idx = mi_col * 2; 271 const int above_idx = mi_col * 2;
268 const int left_idx = (mi_row * 2) & 15; 272 const int left_idx = (mi_row * 2) & 15;
269 int i; 273 int i;
270 for (i = 0; i < MAX_MB_PLANE; ++i) { 274 for (i = 0; i < MAX_MB_PLANE; ++i) {
271 struct macroblockd_plane *const pd = &xd->plane[i]; 275 struct macroblockd_plane *const pd = &xd->plane[i];
272 pd->above_context = &xd->above_context[i][above_idx >> pd->subsampling_x]; 276 pd->above_context = &xd->above_context[i][above_idx >> pd->subsampling_x];
273 pd->left_context = &xd->left_context[i][left_idx >> pd->subsampling_y]; 277 pd->left_context = &xd->left_context[i][left_idx >> pd->subsampling_y];
(...skipping 18 matching lines...) Expand all
292 const int use_prev_in_find_mv_refs = cm->width == cm->last_width && 296 const int use_prev_in_find_mv_refs = cm->width == cm->last_width &&
293 cm->height == cm->last_height && 297 cm->height == cm->last_height &&
294 !cm->intra_only && 298 !cm->intra_only &&
295 cm->last_show_frame; 299 cm->last_show_frame;
296 // Special case: set prev_mi to NULL when the previous mode info 300 // Special case: set prev_mi to NULL when the previous mode info
297 // context cannot be used. 301 // context cannot be used.
298 cm->prev_mi = use_prev_in_find_mv_refs ? 302 cm->prev_mi = use_prev_in_find_mv_refs ?
299 cm->prev_mip + cm->mi_stride + 1 : NULL; 303 cm->prev_mip + cm->mi_stride + 1 : NULL;
300 } 304 }
301 305
302 static INLINE int frame_is_intra_only(const VP9_COMMON *const cm) {
303 return cm->frame_type == KEY_FRAME || cm->intra_only;
304 }
305
306 static INLINE void update_partition_context(MACROBLOCKD *xd, 306 static INLINE void update_partition_context(MACROBLOCKD *xd,
307 int mi_row, int mi_col, 307 int mi_row, int mi_col,
308 BLOCK_SIZE subsize, 308 BLOCK_SIZE subsize,
309 BLOCK_SIZE bsize) { 309 BLOCK_SIZE bsize) {
310 PARTITION_CONTEXT *const above_ctx = xd->above_seg_context + mi_col; 310 PARTITION_CONTEXT *const above_ctx = xd->above_seg_context + mi_col;
311 PARTITION_CONTEXT *const left_ctx = xd->left_seg_context + (mi_row & MI_MASK); 311 PARTITION_CONTEXT *const left_ctx = xd->left_seg_context + (mi_row & MI_MASK);
312 312
313 // num_4x4_blocks_wide_lookup[bsize] / 2 313 // num_4x4_blocks_wide_lookup[bsize] / 2
314 const int bs = num_8x8_blocks_wide_lookup[bsize]; 314 const int bs = num_8x8_blocks_wide_lookup[bsize];
315 315
(...skipping 25 matching lines...) Expand all
341 left = (left & bs) > 0; 341 left = (left & bs) > 0;
342 342
343 return (left * 2 + above) + bsl * PARTITION_PLOFFSET; 343 return (left * 2 + above) + bsl * PARTITION_PLOFFSET;
344 } 344 }
345 345
346 #ifdef __cplusplus 346 #ifdef __cplusplus
347 } // extern "C" 347 } // extern "C"
348 #endif 348 #endif
349 349
350 #endif // VP9_COMMON_VP9_ONYXC_INT_H_ 350 #endif // VP9_COMMON_VP9_ONYXC_INT_H_
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_loopfilter.c ('k') | source/libvpx/vp9/common/vp9_reconinter.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698