OLD | NEW |
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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 int64_t total_actual_bits; | 92 int64_t total_actual_bits; |
93 int64_t total_target_bits; | 93 int64_t total_target_bits; |
94 int64_t total_target_vs_actual; | 94 int64_t total_target_vs_actual; |
95 | 95 |
96 int worst_quality; | 96 int worst_quality; |
97 int best_quality; | 97 int best_quality; |
98 | 98 |
99 int64_t starting_buffer_level; | 99 int64_t starting_buffer_level; |
100 int64_t optimal_buffer_level; | 100 int64_t optimal_buffer_level; |
101 int64_t maximum_buffer_size; | 101 int64_t maximum_buffer_size; |
102 // int active_best_quality; | 102 // rate control history for last frame(1) and the frame before(2). |
| 103 // -1: undershot |
| 104 // 1: overshoot |
| 105 // 0: not initialized. |
| 106 int rc_1_frame; |
| 107 int rc_2_frame; |
| 108 int q_1_frame; |
| 109 int q_2_frame; |
103 } RATE_CONTROL; | 110 } RATE_CONTROL; |
104 | 111 |
105 struct VP9_COMP; | 112 struct VP9_COMP; |
106 struct VP9EncoderConfig; | 113 struct VP9EncoderConfig; |
107 | 114 |
108 void vp9_rc_init(const struct VP9EncoderConfig *oxcf, int pass, | 115 void vp9_rc_init(const struct VP9EncoderConfig *oxcf, int pass, |
109 RATE_CONTROL *rc); | 116 RATE_CONTROL *rc); |
110 | 117 |
111 double vp9_convert_qindex_to_q(int qindex, vpx_bit_depth_t bit_depth); | 118 double vp9_convert_qindex_to_q(int qindex, vpx_bit_depth_t bit_depth); |
112 | 119 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 // to a value that should equate to the given rate ratio. | 198 // to a value that should equate to the given rate ratio. |
192 int vp9_compute_qdelta_by_rate(const RATE_CONTROL *rc, FRAME_TYPE frame_type, | 199 int vp9_compute_qdelta_by_rate(const RATE_CONTROL *rc, FRAME_TYPE frame_type, |
193 int qindex, double rate_target_ratio, | 200 int qindex, double rate_target_ratio, |
194 vpx_bit_depth_t bit_depth); | 201 vpx_bit_depth_t bit_depth); |
195 | 202 |
196 void vp9_rc_update_framerate(struct VP9_COMP *cpi); | 203 void vp9_rc_update_framerate(struct VP9_COMP *cpi); |
197 | 204 |
198 void vp9_rc_set_gf_max_interval(const struct VP9_COMP *const cpi, | 205 void vp9_rc_set_gf_max_interval(const struct VP9_COMP *const cpi, |
199 RATE_CONTROL *const rc); | 206 RATE_CONTROL *const rc); |
200 | 207 |
| 208 void vp9_set_target_rate(struct VP9_COMP *cpi); |
| 209 |
201 #ifdef __cplusplus | 210 #ifdef __cplusplus |
202 } // extern "C" | 211 } // extern "C" |
203 #endif | 212 #endif |
204 | 213 |
205 #endif // VP9_ENCODER_VP9_RATECTRL_H_ | 214 #endif // VP9_ENCODER_VP9_RATECTRL_H_ |
OLD | NEW |