Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00017 #include "vp8.h"
00018
00023 #ifndef VP8CX_H
00024 #define VP8CX_H
00025 #include "vpx/vpx_codec_impl_top.h"
00026
00032 extern vpx_codec_iface_t vpx_codec_vp8_cx_algo;
00033 extern vpx_codec_iface_t* vpx_codec_vp8_cx(void);
00034
00035
00036
00037
00038
00039
00046 #define VP8_EFLAG_NO_REF_LAST (1<<16)
00047
00048
00055 #define VP8_EFLAG_NO_REF_GF (1<<17)
00056
00057
00064 #define VP8_EFLAG_NO_REF_ARF (1<<21)
00065
00066
00072 #define VP8_EFLAG_NO_UPD_LAST (1<<18)
00073
00074
00080 #define VP8_EFLAG_NO_UPD_GF (1<<22)
00081
00082
00088 #define VP8_EFLAG_NO_UPD_ARF (1<<23)
00089
00090
00096 #define VP8_EFLAG_FORCE_GF (1<<19)
00097
00098
00104 #define VP8_EFLAG_FORCE_ARF (1<<24)
00105
00106
00112 #define VP8_EFLAG_NO_UPD_ENTROPY (1<<20)
00113
00114
00119 enum vp8e_enc_control_id
00120 {
00121 VP8E_UPD_ENTROPY = 5,
00122 VP8E_UPD_REFERENCE,
00123 VP8E_USE_REFERENCE,
00124 VP8E_SET_ROI_MAP,
00125 VP8E_SET_ACTIVEMAP,
00126 VP8E_SET_SCALEMODE = 11,
00127 VP8E_SET_CPUUSED = 13,
00128 VP8E_SET_ENABLEAUTOALTREF,
00129 VP8E_SET_NOISE_SENSITIVITY,
00130 VP8E_SET_SHARPNESS,
00131 VP8E_SET_STATIC_THRESHOLD,
00132 VP8E_SET_TOKEN_PARTITIONS,
00133 VP8E_GET_LAST_QUANTIZER,
00136 VP8E_GET_LAST_QUANTIZER_64,
00140 VP8E_SET_ARNR_MAXFRAMES,
00141 VP8E_SET_ARNR_STRENGTH ,
00142 VP8E_SET_ARNR_TYPE ,
00143 } ;
00144
00149 typedef enum vpx_scaling_mode_1d
00150 {
00151 VP8E_NORMAL = 0,
00152 VP8E_FOURFIVE = 1,
00153 VP8E_THREEFIVE = 2,
00154 VP8E_ONETWO = 3
00155 } VPX_SCALING_MODE;
00156
00157
00164 typedef struct vpx_roi_map
00165 {
00166 unsigned char *roi_map;
00167 unsigned int rows;
00168 unsigned int cols;
00169 int delta_q[4];
00170 int delta_lf[4];
00171 unsigned int static_threshold[4];
00172 } vpx_roi_map_t;
00173
00181 typedef struct vpx_active_map
00182 {
00183 unsigned char *active_map;
00184 unsigned int rows;
00185 unsigned int cols;
00186 } vpx_active_map_t;
00187
00193 typedef struct vpx_scaling_mode
00194 {
00195 VPX_SCALING_MODE h_scaling_mode;
00196 VPX_SCALING_MODE v_scaling_mode;
00197 } vpx_scaling_mode_t;
00198
00204 typedef enum
00205 {
00206 VP8_BEST_QUALITY_ENCODING,
00207 VP8_GOOD_QUALITY_ENCODING,
00208 VP8_REAL_TIME_ENCODING
00209 } vp8e_encoding_mode;
00210
00218 typedef enum
00219 {
00220 VP8_ONE_TOKENPARTITION = 0,
00221 VP8_TWO_TOKENPARTITION = 1,
00222 VP8_FOUR_TOKENPARTITION = 2,
00223 VP8_EIGHT_TOKENPARTITION = 3,
00224 } vp8e_token_partitions;
00225
00226
00235
00236
00237
00238 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_ENTROPY, int)
00239 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_REFERENCE, int)
00240 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_USE_REFERENCE, int)
00241
00242 VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *)
00243 VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *)
00244 VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)
00245
00246 VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
00247 VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int)
00248 VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
00249 VPX_CTRL_USE_TYPE(VP8E_SET_SHARPNESS, unsigned int)
00250 VPX_CTRL_USE_TYPE(VP8E_SET_STATIC_THRESHOLD, unsigned int)
00251 VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, vp8e_token_partitions)
00252
00253 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int)
00254 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH , unsigned int)
00255 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE , unsigned int)
00256
00257
00258 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *)
00259 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *)
00260
00262 #include "vpx/vpx_codec_impl_bottom.h"
00263 #endif