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

Side by Side Diff: source/libvpx/vp9/encoder/vp9_encoder.h

Issue 668403002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 1 month 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/encoder/vp9_encodemb.c ('k') | source/libvpx/vp9/encoder/vp9_encoder.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
11 #ifndef VP9_ENCODER_VP9_ENCODER_H_ 11 #ifndef VP9_ENCODER_VP9_ENCODER_H_
12 #define VP9_ENCODER_VP9_ENCODER_H_ 12 #define VP9_ENCODER_VP9_ENCODER_H_
13 13
14 #include <stdio.h> 14 #include <stdio.h>
15 15
16 #include "./vpx_config.h" 16 #include "./vpx_config.h"
17 #include "vpx_ports/mem.h"
18 #include "vpx/internal/vpx_codec_internal.h" 17 #include "vpx/internal/vpx_codec_internal.h"
19 #include "vpx/vp8cx.h" 18 #include "vpx/vp8cx.h"
20 19
21 #include "vp9/common/vp9_ppflags.h" 20 #include "vp9/common/vp9_ppflags.h"
22 #include "vp9/common/vp9_entropy.h"
23 #include "vp9/common/vp9_entropymode.h" 21 #include "vp9/common/vp9_entropymode.h"
24 #include "vp9/common/vp9_onyxc_int.h" 22 #include "vp9/common/vp9_onyxc_int.h"
25 23
26 #include "vp9/encoder/vp9_aq_cyclicrefresh.h" 24 #include "vp9/encoder/vp9_aq_cyclicrefresh.h"
27 #include "vp9/encoder/vp9_context_tree.h" 25 #include "vp9/encoder/vp9_context_tree.h"
28 #include "vp9/encoder/vp9_encodemb.h" 26 #include "vp9/encoder/vp9_encodemb.h"
29 #include "vp9/encoder/vp9_firstpass.h" 27 #include "vp9/encoder/vp9_firstpass.h"
30 #include "vp9/encoder/vp9_lookahead.h" 28 #include "vp9/encoder/vp9_lookahead.h"
31 #include "vp9/encoder/vp9_mbgraph.h" 29 #include "vp9/encoder/vp9_mbgraph.h"
32 #include "vp9/encoder/vp9_mcomp.h" 30 #include "vp9/encoder/vp9_mcomp.h"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 struct lookahead_ctx *lookahead; 232 struct lookahead_ctx *lookahead;
235 struct lookahead_entry *alt_ref_source; 233 struct lookahead_entry *alt_ref_source;
236 234
237 YV12_BUFFER_CONFIG *Source; 235 YV12_BUFFER_CONFIG *Source;
238 YV12_BUFFER_CONFIG *Last_Source; // NULL for first frame and alt_ref frames 236 YV12_BUFFER_CONFIG *Last_Source; // NULL for first frame and alt_ref frames
239 YV12_BUFFER_CONFIG *un_scaled_source; 237 YV12_BUFFER_CONFIG *un_scaled_source;
240 YV12_BUFFER_CONFIG scaled_source; 238 YV12_BUFFER_CONFIG scaled_source;
241 YV12_BUFFER_CONFIG *unscaled_last_source; 239 YV12_BUFFER_CONFIG *unscaled_last_source;
242 YV12_BUFFER_CONFIG scaled_last_source; 240 YV12_BUFFER_CONFIG scaled_last_source;
243 241
244 int skippable_frame; 242 // For a still frame, this flag is set to 1 to skip partition search.
243 int partition_search_skippable_frame;
245 244
246 int scaled_ref_idx[3]; 245 int scaled_ref_idx[3];
247 int lst_fb_idx; 246 int lst_fb_idx;
248 int gld_fb_idx; 247 int gld_fb_idx;
249 int alt_fb_idx; 248 int alt_fb_idx;
250 249
251 int refresh_last_frame; 250 int refresh_last_frame;
252 int refresh_golden_frame; 251 int refresh_golden_frame;
253 int refresh_alt_ref_frame; 252 int refresh_alt_ref_frame;
254 253
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 474
476 static INLINE int get_token_alloc(int mb_rows, int mb_cols) { 475 static INLINE int get_token_alloc(int mb_rows, int mb_cols) {
477 // TODO(JBB): double check we can't exceed this token count if we have a 476 // TODO(JBB): double check we can't exceed this token count if we have a
478 // 32x32 transform crossing a boundary at a multiple of 16. 477 // 32x32 transform crossing a boundary at a multiple of 16.
479 // mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full 478 // mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full
480 // resolution. We assume up to 1 token per pixel, and then allow 479 // resolution. We assume up to 1 token per pixel, and then allow
481 // a head room of 4. 480 // a head room of 4.
482 return mb_rows * mb_cols * (16 * 16 * 3 + 4); 481 return mb_rows * mb_cols * (16 * 16 * 3 + 4);
483 } 482 }
484 483
484 // Get the allocated token size for a tile. It does the same calculation as in
485 // the frame token allocation.
486 static INLINE int allocated_tokens(TileInfo tile) {
487 int tile_mb_rows = (tile.mi_row_end - tile.mi_row_start + 1) >> 1;
488 int tile_mb_cols = (tile.mi_col_end - tile.mi_col_start + 1) >> 1;
489
490 return get_token_alloc(tile_mb_rows, tile_mb_cols);
491 }
492
485 int vp9_get_y_sse(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b); 493 int vp9_get_y_sse(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b);
494 #if CONFIG_VP9_HIGHBITDEPTH
495 int vp9_highbd_get_y_sse(const YV12_BUFFER_CONFIG *a,
496 const YV12_BUFFER_CONFIG *b,
497 vpx_bit_depth_t bit_depth);
498 #endif // CONFIG_VP9_HIGHBITDEPTH
486 499
487 void vp9_alloc_compressor_data(VP9_COMP *cpi); 500 void vp9_alloc_compressor_data(VP9_COMP *cpi);
488 501
489 void vp9_scale_references(VP9_COMP *cpi); 502 void vp9_scale_references(VP9_COMP *cpi);
490 503
491 void vp9_update_reference_frames(VP9_COMP *cpi); 504 void vp9_update_reference_frames(VP9_COMP *cpi);
492 505
493 void vp9_set_high_precision_mv(VP9_COMP *cpi, int allow_high_precision_mv); 506 void vp9_set_high_precision_mv(VP9_COMP *cpi, int allow_high_precision_mv);
494 507
495 YV12_BUFFER_CONFIG *vp9_scale_if_required(VP9_COMMON *cm, 508 YV12_BUFFER_CONFIG *vp9_scale_if_required(VP9_COMMON *cm,
(...skipping 22 matching lines...) Expand all
518 xd->block_refs[0] = &cm->frame_refs[ref0 >= LAST_FRAME ? ref0 - LAST_FRAME 531 xd->block_refs[0] = &cm->frame_refs[ref0 >= LAST_FRAME ? ref0 - LAST_FRAME
519 : 0]; 532 : 0];
520 xd->block_refs[1] = &cm->frame_refs[ref1 >= LAST_FRAME ? ref1 - LAST_FRAME 533 xd->block_refs[1] = &cm->frame_refs[ref1 >= LAST_FRAME ? ref1 - LAST_FRAME
521 : 0]; 534 : 0];
522 } 535 }
523 536
524 static INLINE int get_chessboard_index(const int frame_index) { 537 static INLINE int get_chessboard_index(const int frame_index) {
525 return frame_index & 0x1; 538 return frame_index & 0x1;
526 } 539 }
527 540
528 static INLINE int *cond_sad_list(const struct VP9_COMP *cpi, int *sad_list) { 541 static INLINE int *cond_cost_list(const struct VP9_COMP *cpi, int *cost_list) {
529 return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? sad_list : NULL; 542 return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? cost_list : NULL;
530 } 543 }
531 544
532 #ifdef __cplusplus 545 #ifdef __cplusplus
533 } // extern "C" 546 } // extern "C"
534 #endif 547 #endif
535 548
536 #endif // VP9_ENCODER_VP9_ENCODER_H_ 549 #endif // VP9_ENCODER_VP9_ENCODER_H_
OLDNEW
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_encodemb.c ('k') | source/libvpx/vp9/encoder/vp9_encoder.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698