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

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

Issue 996503002: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 9 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
« 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/internal/vpx_codec_internal.h" 17 #include "vpx/internal/vpx_codec_internal.h"
18 #include "vpx/vp8cx.h" 18 #include "vpx/vp8cx.h"
19 19
20 #include "vp9/common/vp9_alloccommon.h"
20 #include "vp9/common/vp9_ppflags.h" 21 #include "vp9/common/vp9_ppflags.h"
21 #include "vp9/common/vp9_entropymode.h" 22 #include "vp9/common/vp9_entropymode.h"
22 #include "vp9/common/vp9_thread_common.h" 23 #include "vp9/common/vp9_thread_common.h"
23 #include "vp9/common/vp9_onyxc_int.h" 24 #include "vp9/common/vp9_onyxc_int.h"
24 #include "vp9/common/vp9_thread.h" 25 #include "vp9/common/vp9_thread.h"
25 26
26 #include "vp9/encoder/vp9_aq_cyclicrefresh.h" 27 #include "vp9/encoder/vp9_aq_cyclicrefresh.h"
27 #include "vp9/encoder/vp9_context_tree.h" 28 #include "vp9/encoder/vp9_context_tree.h"
28 #include "vp9/encoder/vp9_encodemb.h" 29 #include "vp9/encoder/vp9_encodemb.h"
29 #include "vp9/encoder/vp9_firstpass.h" 30 #include "vp9/encoder/vp9_firstpass.h"
(...skipping 10 matching lines...) Expand all
40 41
41 #if CONFIG_VP9_TEMPORAL_DENOISING 42 #if CONFIG_VP9_TEMPORAL_DENOISING
42 #include "vp9/encoder/vp9_denoiser.h" 43 #include "vp9/encoder/vp9_denoiser.h"
43 #endif 44 #endif
44 45
45 #ifdef __cplusplus 46 #ifdef __cplusplus
46 extern "C" { 47 extern "C" {
47 #endif 48 #endif
48 49
49 #define DEFAULT_GF_INTERVAL 10 50 #define DEFAULT_GF_INTERVAL 10
50 #define INVALID_REF_BUFFER_IDX -1 // Marks an invalid reference buffer id.
51 51
52 typedef struct { 52 typedef struct {
53 int nmvjointcost[MV_JOINTS]; 53 int nmvjointcost[MV_JOINTS];
54 int nmvcosts[2][MV_VALS]; 54 int nmvcosts[2][MV_VALS];
55 int nmvcosts_hp[2][MV_VALS]; 55 int nmvcosts_hp[2][MV_VALS];
56 56
57 vp9_prob segment_pred_probs[PREDICTION_PROBS]; 57 vp9_prob segment_pred_probs[PREDICTION_PROBS];
58 58
59 unsigned char *last_frame_seg_map_copy; 59 unsigned char *last_frame_seg_map_copy;
60 60
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 void vp9_set_svc(VP9_COMP *cpi, int use_svc); 510 void vp9_set_svc(VP9_COMP *cpi, int use_svc);
511 511
512 int vp9_get_quantizer(struct VP9_COMP *cpi); 512 int vp9_get_quantizer(struct VP9_COMP *cpi);
513 513
514 static INLINE int frame_is_kf_gf_arf(const VP9_COMP *cpi) { 514 static INLINE int frame_is_kf_gf_arf(const VP9_COMP *cpi) {
515 return frame_is_intra_only(&cpi->common) || 515 return frame_is_intra_only(&cpi->common) ||
516 cpi->refresh_alt_ref_frame || 516 cpi->refresh_alt_ref_frame ||
517 (cpi->refresh_golden_frame && !cpi->rc.is_src_frame_alt_ref); 517 (cpi->refresh_golden_frame && !cpi->rc.is_src_frame_alt_ref);
518 } 518 }
519 519
520 static INLINE int get_ref_frame_idx(const VP9_COMP *cpi, 520 static INLINE int get_ref_frame_map_idx(const VP9_COMP *cpi,
521 MV_REFERENCE_FRAME ref_frame) { 521 MV_REFERENCE_FRAME ref_frame) {
522 if (ref_frame == LAST_FRAME) { 522 if (ref_frame == LAST_FRAME) {
523 return cpi->lst_fb_idx; 523 return cpi->lst_fb_idx;
524 } else if (ref_frame == GOLDEN_FRAME) { 524 } else if (ref_frame == GOLDEN_FRAME) {
525 return cpi->gld_fb_idx; 525 return cpi->gld_fb_idx;
526 } else { 526 } else {
527 return cpi->alt_fb_idx; 527 return cpi->alt_fb_idx;
528 } 528 }
529 } 529 }
530 530
531 static INLINE int get_ref_frame_buf_idx(const VP9_COMP *const cpi,
532 int ref_frame) {
533 const VP9_COMMON *const cm = &cpi->common;
534 const int map_idx = get_ref_frame_map_idx(cpi, ref_frame);
535 return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : INVALID_IDX;
536 }
537
531 static INLINE YV12_BUFFER_CONFIG *get_ref_frame_buffer( 538 static INLINE YV12_BUFFER_CONFIG *get_ref_frame_buffer(
532 VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) { 539 VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) {
533 VP9_COMMON *const cm = &cpi->common; 540 VP9_COMMON *const cm = &cpi->common;
534 BufferPool *const pool = cm->buffer_pool; 541 const int buf_idx = get_ref_frame_buf_idx(cpi, ref_frame);
535 return &pool->frame_bufs[cm->ref_frame_map[get_ref_frame_idx(cpi, ref_frame)]] 542 return
536 .buf; 543 buf_idx != INVALID_IDX ? &cm->buffer_pool->frame_bufs[buf_idx].buf : NULL;
537 } 544 }
538 545
539 static INLINE int get_token_alloc(int mb_rows, int mb_cols) { 546 static INLINE int get_token_alloc(int mb_rows, int mb_cols) {
540 // TODO(JBB): double check we can't exceed this token count if we have a 547 // TODO(JBB): double check we can't exceed this token count if we have a
541 // 32x32 transform crossing a boundary at a multiple of 16. 548 // 32x32 transform crossing a boundary at a multiple of 16.
542 // mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full 549 // mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full
543 // resolution. We assume up to 1 token per pixel, and then allow 550 // resolution. We assume up to 1 token per pixel, and then allow
544 // a head room of 4. 551 // a head room of 4.
545 return mb_rows * mb_cols * (16 * 16 * 3 + 4); 552 return mb_rows * mb_cols * (16 * 16 * 3 + 4);
546 } 553 }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? cost_list : NULL; 611 return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? cost_list : NULL;
605 } 612 }
606 613
607 void vp9_new_framerate(VP9_COMP *cpi, double framerate); 614 void vp9_new_framerate(VP9_COMP *cpi, double framerate);
608 615
609 #ifdef __cplusplus 616 #ifdef __cplusplus
610 } // extern "C" 617 } // extern "C"
611 #endif 618 #endif
612 619
613 #endif // VP9_ENCODER_VP9_ENCODER_H_ 620 #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