Home | History | Annotate | Download | only in encoder
      1 /*
      2  *  Copyright (c) 2014 The WebM project authors. All Rights Reserved.
      3  *
      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
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 
     12 #ifndef VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_
     13 #define VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_
     14 
     15 #include "vp9/common/vp9_blockd.h"
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 
     21 struct VP9_COMP;
     22 
     23 struct CYCLIC_REFRESH;
     24 typedef struct CYCLIC_REFRESH CYCLIC_REFRESH;
     25 
     26 CYCLIC_REFRESH *vp9_cyclic_refresh_alloc(int mi_rows, int mi_cols);
     27 
     28 void vp9_cyclic_refresh_free(CYCLIC_REFRESH *cr);
     29 
     30 // Prior to coding a given prediction block, of size bsize at (mi_row, mi_col),
     31 // check if we should reset the segment_id, and update the cyclic_refresh map
     32 // and segmentation map.
     33 void vp9_cyclic_refresh_update_segment(struct VP9_COMP *const cpi,
     34                                        MB_MODE_INFO *const mbmi,
     35                                        int mi_row, int mi_col,
     36                                        BLOCK_SIZE bsize, int use_rd);
     37 
     38 // Setup cyclic background refresh: set delta q and segmentation map.
     39 void vp9_cyclic_refresh_setup(struct VP9_COMP *const cpi);
     40 
     41 void vp9_cyclic_refresh_set_rate_and_dist_sb(CYCLIC_REFRESH *cr,
     42                                              int64_t rate_sb, int64_t dist_sb);
     43 
     44 int vp9_cyclic_refresh_get_rdmult(const CYCLIC_REFRESH *cr);
     45 
     46 #ifdef __cplusplus
     47 }  // extern "C"
     48 #endif
     49 
     50 #endif  // VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_
     51