Index: source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h |
diff --git a/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h b/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h |
index 29d2a91bc6993fb0d92625e828cadbaa8463e9ad..7da1f94cfc8e98203181d82e1a1337a900aba6da 100644 |
--- a/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h |
+++ b/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h |
@@ -12,6 +12,7 @@ |
#ifndef VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ |
#define VP9_ENCODER_VP9_AQ_CYCLICREFRESH_H_ |
+#include "vpx/vpx_integer.h" |
#include "vp9/common/vp9_blockd.h" |
#ifdef __cplusplus |
@@ -27,9 +28,46 @@ extern "C" { |
// Maximum rate target ratio for setting segment delta-qp. |
#define CR_MAX_RATE_TARGET_RATIO 4.0 |
+struct CYCLIC_REFRESH { |
+ // Percentage of blocks per frame that are targeted as candidates |
+ // for cyclic refresh. |
+ int percent_refresh; |
+ // Maximum q-delta as percentage of base q. |
+ int max_qdelta_perc; |
+ // Superblock starting index for cycling through the frame. |
+ int sb_index; |
+ // Controls how long block will need to wait to be refreshed again, in |
+ // excess of the cycle time, i.e., in the case of all zero motion, block |
+ // will be refreshed every (100/percent_refresh + time_for_refresh) frames. |
+ int time_for_refresh; |
+ // Target number of (8x8) blocks that are set for delta-q. |
+ int target_num_seg_blocks; |
+ // Actual number of (8x8) blocks that were applied delta-q. |
+ int actual_num_seg1_blocks; |
+ int actual_num_seg2_blocks; |
+ // RD mult. parameters for segment 1. |
+ int rdmult; |
+ // Cyclic refresh map. |
+ signed char *map; |
+ // Map of the last q a block was coded at. |
+ uint8_t *last_coded_q_map; |
+ // Thresholds applied to the projected rate/distortion of the coding block, |
+ // when deciding whether block should be refreshed. |
+ int64_t thresh_rate_sb; |
+ int64_t thresh_dist_sb; |
+ // Threshold applied to the motion vector (in units of 1/8 pel) of the |
+ // coding block, when deciding whether block should be refreshed. |
+ int16_t motion_thresh; |
+ // Rate target ratio to set q delta. |
+ double rate_ratio_qdelta; |
+ // Boost factor for rate target ratio, for segment CR_SEGMENT_ID_BOOST2. |
+ int rate_boost_fac; |
+ double low_content_avg; |
+ int qindex_delta[3]; |
+}; |
+ |
struct VP9_COMP; |
-struct CYCLIC_REFRESH; |
typedef struct CYCLIC_REFRESH CYCLIC_REFRESH; |
CYCLIC_REFRESH *vp9_cyclic_refresh_alloc(int mi_rows, int mi_cols); |