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 |
11 | 11 |
12 /*!\defgroup vp8_encoder WebM VP8 Encoder | 12 /*!\defgroup vp8_encoder WebM VP8 Encoder |
13 * \ingroup vp8 | 13 * \ingroup vp8 |
14 * | 14 * |
15 * @{ | 15 * @{ |
16 */ | 16 */ |
17 #include "vp8.h" | 17 #include "vp8.h" |
18 | 18 |
19 /*!\file | 19 /*!\file |
20 * \brief Provides definitions for using the VP8 encoder algorithm within the | 20 * \brief Provides definitions for using the VP8 encoder algorithm within the |
21 * vpx Codec Interface. | 21 * vpx Codec Interface. |
22 */ | 22 */ |
23 #ifndef VP8CX_H | 23 #ifndef VP8CX_H |
24 #define VP8CX_H | 24 #define VP8CX_H |
25 #include "vpx_codec_impl_top.h" | 25 #include "vpx/vpx_codec_impl_top.h" |
26 | 26 |
27 /*!\name Algorithm interface for VP8 | 27 /*!\name Algorithm interface for VP8 |
28 * | 28 * |
29 * This interface provides the capability to encode raw VP8 streams, as would | 29 * This interface provides the capability to encode raw VP8 streams, as would |
30 * be found in AVI files. | 30 * be found in AVI files. |
31 * @{ | 31 * @{ |
32 */ | 32 */ |
33 extern vpx_codec_iface_t vpx_codec_vp8_cx_algo; | 33 extern vpx_codec_iface_t vpx_codec_vp8_cx_algo; |
34 extern vpx_codec_iface_t* vpx_codec_vp8_cx(void); | 34 extern vpx_codec_iface_t* vpx_codec_vp8_cx(void); |
35 /*!@} - end algorithm interface member group*/ | 35 /*!@} - end algorithm interface member group*/ |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scalin
g mode */ | 131 VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scalin
g mode */ |
132 /*!\brief control function to set vp8 encoder cpuused | 132 /*!\brief control function to set vp8 encoder cpuused |
133 * | 133 * |
134 * Changes in this value influences, among others, the encoder's selection | 134 * Changes in this value influences, among others, the encoder's selection |
135 * of motion estimation methods. Values greater than 0 will increase encoder | 135 * of motion estimation methods. Values greater than 0 will increase encoder |
136 * speed at the expense of quality. | 136 * speed at the expense of quality. |
137 * The full set of adjustments can be found in | 137 * The full set of adjustments can be found in |
138 * onyx_if.c:vp8_set_speed_features(). | 138 * onyx_if.c:vp8_set_speed_features(). |
139 * \todo List highlights of the changes at various levels. | 139 * \todo List highlights of the changes at various levels. |
140 * | 140 * |
141 * \note Valid range: -16..16 | 141 * \note Valid range: -16..16 or {-16..-4, 4..16} w/CONFIG_REALTIME_ONLY |
142 */ | 142 */ |
143 VP8E_SET_CPUUSED = 13, | 143 VP8E_SET_CPUUSED = 13, |
144 VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to auto
matic set and use altref frame */ | 144 VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to auto
matic set and use altref frame */ |
145 VP8E_SET_NOISE_SENSITIVITY, /**< control function to set noise sensitiv
ity */ | 145 VP8E_SET_NOISE_SENSITIVITY, /**< control function to set noise sensitiv
ity */ |
146 VP8E_SET_SHARPNESS, /**< control function to set sharpness */ | 146 VP8E_SET_SHARPNESS, /**< control function to set sharpness */ |
147 VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold
for macroblocks treated static */ | 147 VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold
for macroblocks treated static */ |
148 VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of
token partitions */ | 148 VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of
token partitions */ |
149 VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the | 149 VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the |
150 encoder for the last frame using the i
nternal | 150 encoder for the last frame using the i
nternal |
151 scale */ | 151 scale */ |
152 VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the | 152 VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the |
153 encoder for the last frame, using the
0..63 | 153 encoder for the last frame, using the
0..63 |
154 scale as used by the rc_*_quantizer co
nfig | 154 scale as used by the rc_*_quantizer co
nfig |
155 parameters */ | 155 parameters */ |
156 VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number
of frames blurred creating arf*/ | 156 VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number
of frames blurred creating arf*/ |
157 VP8E_SET_ARNR_STRENGTH , /**< control function to set the filter str
ength for the arf */ | 157 VP8E_SET_ARNR_STRENGTH , /**< control function to set the filter str
ength for the arf */ |
158 VP8E_SET_ARNR_TYPE , /**< control function to set the type of fi
lter to use for the arf*/ | 158 VP8E_SET_ARNR_TYPE , /**< control function to set the type of fi
lter to use for the arf*/ |
159 VP8E_SET_TUNING, /**< control function to set visual tuning
*/ | 159 VP8E_SET_TUNING, /**< control function to set visual tuning
*/ |
160 /*!\brief control function to set constrained quality level | 160 /*!\brief control function to set constrained quality level |
161 * | 161 * |
162 * \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be | 162 * \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be |
163 * set to #VPX_CQ. | 163 * set to #VPX_CQ. |
164 * \note Valid range: 0..63 | 164 * \note Valid range: 0..63 |
165 */ | 165 */ |
166 VP8E_SET_CQ_LEVEL, | 166 VP8E_SET_CQ_LEVEL, |
167 | |
168 /*!\brief Max data rate for Intra frames | |
169 * | |
170 * This value controls additional clamping on the maximum size of a | |
171 * keyframe. It is expressed as a percentage of the average | |
172 * per-frame bitrate, with the special (and default) value 0 meaning | |
173 * unlimited, or no additional clamping beyond the codec's built-in | |
174 * algorithm. | |
175 * | |
176 * For example, to allocate no more than 4.5 frames worth of bitrate | |
177 * to a keyframe, set this to 450. | |
178 * | |
179 */ | |
180 VP8E_SET_MAX_INTRA_BITRATE_PCT, | |
181 }; | 167 }; |
182 | 168 |
183 /*!\brief vpx 1-D scaling mode | 169 /*!\brief vpx 1-D scaling mode |
184 * | 170 * |
185 * This set of constants define 1-D vpx scaling modes | 171 * This set of constants define 1-D vpx scaling modes |
186 */ | 172 */ |
187 typedef enum vpx_scaling_mode_1d | 173 typedef enum vpx_scaling_mode_1d |
188 { | 174 { |
189 VP8E_NORMAL = 0, | 175 VP8E_NORMAL = 0, |
190 VP8E_FOURFIVE = 1, | 176 VP8E_FOURFIVE = 1, |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 | 288 |
303 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int) | 289 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int) |
304 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH , unsigned int) | 290 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH , unsigned int) |
305 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE , unsigned int) | 291 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE , unsigned int) |
306 VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, vp8e_tuning) | 292 VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, vp8e_tuning) |
307 VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL , unsigned int) | 293 VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL , unsigned int) |
308 | 294 |
309 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) | 295 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) |
310 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) | 296 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) |
311 | 297 |
312 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) | |
313 | |
314 | |
315 /*! @} - end defgroup vp8_encoder */ | 298 /*! @} - end defgroup vp8_encoder */ |
316 #include "vpx_codec_impl_bottom.h" | 299 #include "vpx/vpx_codec_impl_bottom.h" |
317 #endif | 300 #endif |
OLD | NEW |