WebM Codec SDK: vpx/vp8cx.h Source File

WebM Codec SDK

vp8cx.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2010 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#ifndef VPX_VPX_VP8CX_H_
11#define VPX_VPX_VP8CX_H_
12
18#include "./vp8.h"
19#include "./vpx_encoder.h"
20#include "./vpx_ext_ratectrl.h"
21
27#ifdef __cplusplus
28extern "C" {
29#endif
30
41extern vpx_codec_iface_t vpx_codec_vp8_cx_algo;
42
45 extern vpx_codec_iface_t *vpx_codec_vp8_cx(void);
58extern vpx_codec_iface_t vpx_codec_vp9_cx_algo;
59
62 extern vpx_codec_iface_t *vpx_codec_vp9_cx(void);
65/*
66 * Algorithm Flags
67 */
68
75#define VP8_EFLAG_NO_REF_LAST (1 << 16)
76
83#define VP8_EFLAG_NO_REF_GF (1 << 17)
84
91#define VP8_EFLAG_NO_REF_ARF (1 << 21)
92
98#define VP8_EFLAG_NO_UPD_LAST (1 << 18)
99
105#define VP8_EFLAG_NO_UPD_GF (1 << 22)
106
112#define VP8_EFLAG_NO_UPD_ARF (1 << 23)
113
119#define VP8_EFLAG_FORCE_GF (1 << 19)
120
126#define VP8_EFLAG_FORCE_ARF (1 << 24)
127
133#define VP8_EFLAG_NO_UPD_ENTROPY (1 << 20)
134
142 enum vp8e_enc_control_id {
147 VP8E_SET_ROI_MAP = 8,
148
153 VP8E_SET_ACTIVEMAP,
154
159 VP8E_SET_SCALEMODE = 11,
160
173 VP8E_SET_CPUUSED = 13,
174
182 VP8E_SET_ENABLEAUTOALTREF,
183
191 VP8E_SET_NOISE_SENSITIVITY,
192
200 VP8E_SET_SHARPNESS,
201
206 VP8E_SET_STATIC_THRESHOLD,
207
212 VP8E_SET_TOKEN_PARTITIONS,
213
220 VP8E_GET_LAST_QUANTIZER,
221
229 VP8E_GET_LAST_QUANTIZER_64,
230
235 VP8E_SET_ARNR_MAXFRAMES,
236
241 VP8E_SET_ARNR_STRENGTH,
242
244 VP8E_SET_ARNR_TYPE,
245
250 VP8E_SET_TUNING,
251
260 VP8E_SET_CQ_LEVEL,
261
275 VP8E_SET_MAX_INTRA_BITRATE_PCT,
276
281 VP8E_SET_FRAME_FLAGS,
282
296 VP9E_SET_MAX_INTER_BITRATE_PCT,
297
311 VP9E_SET_GF_CBR_BOOST_PCT,
312
322 VP8E_SET_TEMPORAL_LAYER_ID,
323
330 VP8E_SET_SCREEN_CONTENT_MODE,
331
345 VP9E_SET_LOSSLESS,
346
369 VP9E_SET_TILE_COLUMNS,
370
389 VP9E_SET_TILE_ROWS,
390
403 VP9E_SET_FRAME_PARALLEL_DECODING,
404
416 VP9E_SET_AQ_MODE,
417
431 VP9E_SET_FRAME_PERIODIC_BOOST,
432
439 VP9E_SET_NOISE_SENSITIVITY,
440
448 VP9E_SET_SVC,
449
454 VP9E_SET_ROI_MAP,
455
462 VP9E_SET_SVC_PARAMETERS,
463
471 VP9E_SET_SVC_LAYER_ID,
472
481 VP9E_SET_TUNE_CONTENT,
482
489 VP9E_GET_SVC_LAYER_ID,
490
497 VP9E_REGISTER_CX_CALLBACK,
498
512 VP9E_SET_COLOR_SPACE,
513
520 VP9E_SET_MIN_GF_INTERVAL = 48,
521
528 VP9E_SET_MAX_GF_INTERVAL,
529
534 VP9E_GET_ACTIVEMAP,
535
543 VP9E_SET_COLOR_RANGE,
544
551 VP9E_SET_SVC_REF_FRAME_CONFIG,
552
559 VP9E_SET_RENDER_SIZE,
560
568 VP9E_SET_TARGET_LEVEL,
569
576 VP9E_SET_ROW_MT,
577
582 VP9E_GET_LEVEL,
583
592 VP9E_SET_ALT_REF_AQ,
593
607 VP8E_SET_GF_CBR_BOOST_PCT,
608
616 VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST,
617
625 VP9E_SET_SVC_INTER_LAYER_PRED,
626
634 VP9E_SET_SVC_FRAME_DROP_LAYER,
635
641 VP9E_GET_SVC_REF_FRAME_CONFIG,
642
651 VP9E_SET_SVC_GF_TEMPORAL_REF,
652
666 VP9E_SET_SVC_SPATIAL_LAYER_SYNC,
667
674 VP9E_SET_TPL,
675
682 VP9E_SET_KEY_FRAME_FILTERING,
683
692 VP9E_SET_POSTENCODE_DROP,
693
700 VP9E_SET_DELTA_Q_UV,
701
708 VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR,
709
717 VP9E_SET_DISABLE_LOOPFILTER,
718
727 VP9E_SET_EXTERNAL_RATE_CONTROL,
728
741 VP9E_SET_RTC_EXTERNAL_RATECTRL,
742
747 VP9E_GET_LOOPFILTER_LEVEL,
748
757 VP9E_GET_LAST_QUANTIZER_SVC_LAYERS,
758
768 VP8E_SET_RTC_EXTERNAL_RATECTRL,
769
778 VP9E_SET_QUANTIZER_ONE_PASS,
779};
780
785 typedef enum vpx_scaling_mode_1d {
786 VP8E_NORMAL = 0,
787 VP8E_FOURFIVE = 1,
788 VP8E_THREEFIVE = 2,
789 VP8E_ONETWO = 3
790} VPX_SCALING_MODE;
791
798 typedef enum vp9e_temporal_layering_mode {
802 VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING = 0,
803
808 VP9E_TEMPORAL_LAYERING_MODE_BYPASS = 1,
809
812 VP9E_TEMPORAL_LAYERING_MODE_0101 = 2,
813
816 VP9E_TEMPORAL_LAYERING_MODE_0212 = 3
817} VP9E_TEMPORAL_LAYERING_MODE;
818
825 typedef struct vpx_roi_map {
827 uint8_t enabled;
830 unsigned char *roi_map;
831 unsigned int rows;
832 unsigned int cols;
834 int delta_q[8];
835 int delta_lf[8];
837 int skip[8];
838 int ref_frame[8];
840 unsigned int static_threshold[4];
841} vpx_roi_map_t;
842
849 typedef struct vpx_active_map {
851 unsigned char *active_map;
852 unsigned int rows;
853 unsigned int cols;
854} vpx_active_map_t;
855
861 typedef struct vpx_scaling_mode {
862 VPX_SCALING_MODE h_scaling_mode;
863 VPX_SCALING_MODE v_scaling_mode;
864} vpx_scaling_mode_t;
865
873 typedef enum {
874 VP8_ONE_TOKENPARTITION = 0,
875 VP8_TWO_TOKENPARTITION = 1,
876 VP8_FOUR_TOKENPARTITION = 2,
877 VP8_EIGHT_TOKENPARTITION = 3
878} vp8e_token_partitions;
879
881 typedef enum {
882 VP9E_CONTENT_DEFAULT,
883 VP9E_CONTENT_SCREEN,
884 VP9E_CONTENT_FILM,
885 VP9E_CONTENT_INVALID
886} vp9e_tune_content;
887
893 typedef enum { VP8_TUNE_PSNR, VP8_TUNE_SSIM } vp8e_tuning;
894
902 typedef struct vpx_svc_layer_id {
903 int spatial_layer_id;
904 // TODO(jianj): Deprecated, to be removed.
905 int temporal_layer_id;
906 int temporal_layer_id_per_spatial[VPX_SS_MAX_LAYERS];
907} vpx_svc_layer_id_t;
908
917 typedef struct vpx_svc_ref_frame_config {
918 int lst_fb_idx[VPX_SS_MAX_LAYERS];
919 int gld_fb_idx[VPX_SS_MAX_LAYERS];
920 int alt_fb_idx[VPX_SS_MAX_LAYERS];
921 int update_buffer_slot[VPX_SS_MAX_LAYERS];
922 // TODO(jianj): Remove update_last/golden/alt_ref, these are deprecated.
923 int update_last[VPX_SS_MAX_LAYERS];
924 int update_golden[VPX_SS_MAX_LAYERS];
925 int update_alt_ref[VPX_SS_MAX_LAYERS];
926 int reference_last[VPX_SS_MAX_LAYERS];
927 int reference_golden[VPX_SS_MAX_LAYERS];
928 int reference_alt_ref[VPX_SS_MAX_LAYERS];
929 int64_t duration[VPX_SS_MAX_LAYERS];
930} vpx_svc_ref_frame_config_t;
931
937 typedef enum {
938 CONSTRAINED_LAYER_DROP,
940 LAYER_DROP,
941 FULL_SUPERFRAME_DROP,
942 CONSTRAINED_FROM_ABOVE_DROP,
944} SVC_LAYER_DROP_MODE;
945
953 typedef struct vpx_svc_frame_drop {
954 int framedrop_thresh[VPX_SS_MAX_LAYERS];
955 SVC_LAYER_DROP_MODE
956 framedrop_mode;
957 int max_consec_drop;
958} vpx_svc_frame_drop_t;
959
965 typedef struct vpx_svc_spatial_layer_sync {
966 int spatial_layer_sync[VPX_SS_MAX_LAYERS];
967 int base_layer_intra_only;
968} vpx_svc_spatial_layer_sync_t;
969
978 VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *)
979#define VPX_CTRL_VP8E_SET_ROI_MAP
980 VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *)
981#define VPX_CTRL_VP8E_SET_ACTIVEMAP
982 VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)
983#define VPX_CTRL_VP8E_SET_SCALEMODE
984 VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
985#define VPX_CTRL_VP8E_SET_CPUUSED
986 VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int)
987#define VPX_CTRL_VP8E_SET_ENABLEAUTOALTREF
988 VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
989#define VPX_CTRL_VP8E_SET_NOISE_SENSITIVITY
990 VPX_CTRL_USE_TYPE(VP8E_SET_SHARPNESS, unsigned int)
991#define VPX_CTRL_VP8E_SET_SHARPNESS
992 VPX_CTRL_USE_TYPE(VP8E_SET_STATIC_THRESHOLD, unsigned int)
993#define VPX_CTRL_VP8E_SET_STATIC_THRESHOLD
994 VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */
995#define VPX_CTRL_VP8E_SET_TOKEN_PARTITIONS
996 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *)
997#define VPX_CTRL_VP8E_GET_LAST_QUANTIZER
998 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *)
999#define VPX_CTRL_VP8E_GET_LAST_QUANTIZER_64
1000 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int)
1001#define VPX_CTRL_VP8E_SET_ARNR_MAXFRAMES
1002 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH, unsigned int)
1003#define VPX_CTRL_VP8E_SET_ARNR_STRENGTH
1004 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_ARNR_TYPE, unsigned int)
1005#define VPX_CTRL_VP8E_SET_ARNR_TYPE
1006 VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, int) /* vp8e_tuning */
1007#define VPX_CTRL_VP8E_SET_TUNING
1008 VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL, unsigned int)
1009#define VPX_CTRL_VP8E_SET_CQ_LEVEL
1010 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int)
1011#define VPX_CTRL_VP8E_SET_MAX_INTRA_BITRATE_PCT
1012 VPX_CTRL_USE_TYPE(VP8E_SET_FRAME_FLAGS, int)
1013#define VPX_CTRL_VP8E_SET_FRAME_FLAGS
1014 VPX_CTRL_USE_TYPE(VP9E_SET_MAX_INTER_BITRATE_PCT, unsigned int)
1015#define VPX_CTRL_VP9E_SET_MAX_INTER_BITRATE_PCT
1016 VPX_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int)
1017#define VPX_CTRL_VP9E_SET_GF_CBR_BOOST_PCT
1018 VPX_CTRL_USE_TYPE(VP8E_SET_TEMPORAL_LAYER_ID, int)
1019#define VPX_CTRL_VP8E_SET_TEMPORAL_LAYER_ID
1020 VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int)
1021#define VPX_CTRL_VP8E_SET_SCREEN_CONTENT_MODE
1022 VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int)
1023#define VPX_CTRL_VP9E_SET_LOSSLESS
1024 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int)
1025#define VPX_CTRL_VP9E_SET_TILE_COLUMNS
1026 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int)
1027#define VPX_CTRL_VP9E_SET_TILE_ROWS
1028 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int)
1029#define VPX_CTRL_VP9E_SET_FRAME_PARALLEL_DECODING
1030 VPX_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int)
1031#define VPX_CTRL_VP9E_SET_AQ_MODE
1032 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int)
1033#define VPX_CTRL_VP9E_SET_FRAME_PERIODIC_BOOST
1034 VPX_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int)
1035#define VPX_CTRL_VP9E_SET_NOISE_SENSITIVITY
1036 VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int)
1037#define VPX_CTRL_VP9E_SET_SVC
1038 VPX_CTRL_USE_TYPE(VP9E_SET_ROI_MAP, vpx_roi_map_t *)
1039#define VPX_CTRL_VP9E_SET_ROI_MAP
1040 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_PARAMETERS, void *)
1041#define VPX_CTRL_VP9E_SET_SVC_PARAMETERS
1042 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
1043#define VPX_CTRL_VP9E_SET_SVC_LAYER_ID
1044 VPX_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* vp9e_tune_content */
1045#define VPX_CTRL_VP9E_SET_TUNE_CONTENT
1046 VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
1047#define VPX_CTRL_VP9E_GET_SVC_LAYER_ID
1048 VPX_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, void *)
1049#define VPX_CTRL_VP9E_REGISTER_CX_CALLBACK
1050 VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int)
1051#define VPX_CTRL_VP9E_SET_COLOR_SPACE
1052 VPX_CTRL_USE_TYPE(VP9E_SET_MIN_GF_INTERVAL, unsigned int)
1053#define VPX_CTRL_VP9E_SET_MIN_GF_INTERVAL
1054 VPX_CTRL_USE_TYPE(VP9E_SET_MAX_GF_INTERVAL, unsigned int)
1055#define VPX_CTRL_VP9E_SET_MAX_GF_INTERVAL
1056 VPX_CTRL_USE_TYPE(VP9E_GET_ACTIVEMAP, vpx_active_map_t *)
1057#define VPX_CTRL_VP9E_GET_ACTIVEMAP
1058 VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_RANGE, int)
1059#define VPX_CTRL_VP9E_SET_COLOR_RANGE
1060 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_REF_FRAME_CONFIG, vpx_svc_ref_frame_config_t *)
1061#define VPX_CTRL_VP9E_SET_SVC_REF_FRAME_CONFIG
1062 VPX_CTRL_USE_TYPE(VP9E_SET_RENDER_SIZE, int *)
1063#define VPX_CTRL_VP9E_SET_RENDER_SIZE
1064 VPX_CTRL_USE_TYPE(VP9E_SET_TARGET_LEVEL, unsigned int)
1065#define VPX_CTRL_VP9E_SET_TARGET_LEVEL
1066 VPX_CTRL_USE_TYPE(VP9E_SET_ROW_MT, unsigned int)
1067#define VPX_CTRL_VP9E_SET_ROW_MT
1068 VPX_CTRL_USE_TYPE(VP9E_GET_LEVEL, int *)
1069#define VPX_CTRL_VP9E_GET_LEVEL
1070 VPX_CTRL_USE_TYPE(VP9E_SET_ALT_REF_AQ, int)
1071#define VPX_CTRL_VP9E_SET_ALT_REF_AQ
1072 VPX_CTRL_USE_TYPE(VP8E_SET_GF_CBR_BOOST_PCT, unsigned int)
1073#define VPX_CTRL_VP8E_SET_GF_CBR_BOOST_PCT
1074 VPX_CTRL_USE_TYPE(VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST, unsigned int)
1075#define VPX_CTRL_VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST
1076 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_INTER_LAYER_PRED, unsigned int)
1077#define VPX_CTRL_VP9E_SET_SVC_INTER_LAYER_PRED
1078 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_FRAME_DROP_LAYER, vpx_svc_frame_drop_t *)
1079#define VPX_CTRL_VP9E_SET_SVC_FRAME_DROP_LAYER
1080 VPX_CTRL_USE_TYPE(VP9E_GET_SVC_REF_FRAME_CONFIG, vpx_svc_ref_frame_config_t *)
1081#define VPX_CTRL_VP9E_GET_SVC_REF_FRAME_CONFIG
1082 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_GF_TEMPORAL_REF, unsigned int)
1083#define VPX_CTRL_VP9E_SET_SVC_GF_TEMPORAL_REF
1084 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_SPATIAL_LAYER_SYNC,
1085 vpx_svc_spatial_layer_sync_t *)
1086#define VPX_CTRL_VP9E_SET_SVC_SPATIAL_LAYER_SYNC
1087 VPX_CTRL_USE_TYPE(VP9E_SET_TPL, int)
1088#define VPX_CTRL_VP9E_SET_TPL
1089 VPX_CTRL_USE_TYPE(VP9E_SET_KEY_FRAME_FILTERING, int)
1090#define VPX_CTRL_VP9E_SET_KEY_FRAME_FILTERING
1091 VPX_CTRL_USE_TYPE(VP9E_SET_POSTENCODE_DROP, unsigned int)
1092#define VPX_CTRL_VP9E_SET_POSTENCODE_DROP
1093 VPX_CTRL_USE_TYPE(VP9E_SET_DELTA_Q_UV, int)
1094#define VPX_CTRL_VP9E_SET_DELTA_Q_UV
1095 VPX_CTRL_USE_TYPE(VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR, int)
1096#define VPX_CTRL_VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR
1097 VPX_CTRL_USE_TYPE(VP9E_SET_DISABLE_LOOPFILTER, int)
1098#define VPX_CTRL_VP9E_SET_DISABLE_LOOPFILTER
1099 VPX_CTRL_USE_TYPE(VP9E_SET_EXTERNAL_RATE_CONTROL, vpx_rc_funcs_t *)
1100#define VPX_CTRL_VP9E_SET_EXTERNAL_RATE_CONTROL
1101 VPX_CTRL_USE_TYPE(VP9E_SET_RTC_EXTERNAL_RATECTRL, int)
1102#define VPX_CTRL_VP9E_SET_RTC_EXTERNAL_RATECTRL
1103 VPX_CTRL_USE_TYPE(VP9E_GET_LOOPFILTER_LEVEL, int *)
1104#define VPX_CTRL_VP9E_GET_LOOPFILTER_LEVEL
1105 VPX_CTRL_USE_TYPE(VP9E_GET_LAST_QUANTIZER_SVC_LAYERS, int *)
1106#define VPX_CTRL_VP9E_GET_LAST_QUANTIZER_SVC_LAYERS
1107 VPX_CTRL_USE_TYPE(VP8E_SET_RTC_EXTERNAL_RATECTRL, int)
1108#define VPX_CTRL_VP8E_SET_RTC_EXTERNAL_RATECTRL
1109 VPX_CTRL_USE_TYPE(VP9E_SET_QUANTIZER_ONE_PASS, int)
1110#define VPX_CTRL_VP9E_SET_QUANTIZER_ONE_PASS
1111
1114#ifdef __cplusplus
1115} // extern "C"
1116#endif
1117
1118#endif // VPX_VPX_VP8CX_H_
VPX_CTRL_USE_TYPE_DEPRECATED
#define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ)
vpx_codec_control deprecated type definition macro
Definition vpx_codec.h:441
VPX_CTRL_USE_TYPE
#define VPX_CTRL_USE_TYPE(id, typ)
vpx_codec_control type definition macro
Definition vpx_codec.h:422
vpx_codec_iface_t
const struct vpx_codec_iface vpx_codec_iface_t
Codec interface structure.
Definition vpx_codec.h:177
VPX_SS_MAX_LAYERS
#define VPX_SS_MAX_LAYERS
Definition vpx_encoder.h:47
vpx_active_map_t
struct vpx_active_map vpx_active_map_t
vpx active region map
vpx_codec_vp9_cx
vpx_codec_iface_t * vpx_codec_vp9_cx(void)
The interface to the VP9 encoder.
vpx_svc_layer_id_t
struct vpx_svc_layer_id vpx_svc_layer_id_t
vp9 svc layer parameters
vpx_codec_vp9_cx_algo
vpx_codec_iface_t vpx_codec_vp9_cx_algo
A single instance of the VP9 encoder.
SVC_LAYER_DROP_MODE
SVC_LAYER_DROP_MODE
VP9 svc frame dropping mode.
Definition vp8cx.h:937
vp8e_tuning
vp8e_tuning
VP8 model tuning parameters.
Definition vp8cx.h:893
VP9E_TEMPORAL_LAYERING_MODE
enum vp9e_temporal_layering_mode VP9E_TEMPORAL_LAYERING_MODE
Temporal layering mode enum for VP9 SVC.
vpx_scaling_mode_t
struct vpx_scaling_mode vpx_scaling_mode_t
vpx image scaling mode
vp8e_token_partitions
vp8e_token_partitions
VP8 token partition mode.
Definition vp8cx.h:873
vpx_codec_vp8_cx_algo
vpx_codec_iface_t vpx_codec_vp8_cx_algo
A single instance of the VP8 encoder.
vp8e_enc_control_id
vp8e_enc_control_id
VPx encoder control functions.
Definition vp8cx.h:142
vpx_codec_vp8_cx
vpx_codec_iface_t * vpx_codec_vp8_cx(void)
The interface to the VP8 encoder.
vpx_scaling_mode_1d
vpx_scaling_mode_1d
vpx 1-D scaling mode
Definition vp8cx.h:785
vp9e_tune_content
vp9e_tune_content
Definition vp8cx.h:881
vpx_roi_map_t
struct vpx_roi_map vpx_roi_map_t
vpx region of interest map
vpx_svc_ref_frame_config_t
struct vpx_svc_ref_frame_config vpx_svc_ref_frame_config_t
vp9 svc frame flag parameters.
vp9e_temporal_layering_mode
vp9e_temporal_layering_mode
Temporal layering mode enum for VP9 SVC.
Definition vp8cx.h:798
vpx_svc_frame_drop_t
struct vpx_svc_frame_drop vpx_svc_frame_drop_t
vp9 svc frame dropping parameters.
VPX_SCALING_MODE
enum vpx_scaling_mode_1d VPX_SCALING_MODE
vpx 1-D scaling mode
vpx_svc_spatial_layer_sync_t
struct vpx_svc_spatial_layer_sync vpx_svc_spatial_layer_sync_t
vp9 svc spatial layer sync parameters.
CONSTRAINED_FROM_ABOVE_DROP
@ CONSTRAINED_FROM_ABOVE_DROP
Definition vp8cx.h:942
FULL_SUPERFRAME_DROP
@ FULL_SUPERFRAME_DROP
Definition vp8cx.h:941
CONSTRAINED_LAYER_DROP
@ CONSTRAINED_LAYER_DROP
Definition vp8cx.h:938
LAYER_DROP
@ LAYER_DROP
Definition vp8cx.h:940
VP9E_SET_MIN_GF_INTERVAL
@ VP9E_SET_MIN_GF_INTERVAL
Codec control function to set minimum interval between GF/ARF frames.
Definition vp8cx.h:520
VP9E_SET_MAX_INTER_BITRATE_PCT
@ VP9E_SET_MAX_INTER_BITRATE_PCT
Codec control function to set max data rate for Inter frames.
Definition vp8cx.h:296
VP9E_SET_FRAME_PERIODIC_BOOST
@ VP9E_SET_FRAME_PERIODIC_BOOST
Codec control function to enable/disable periodic Q boost.
Definition vp8cx.h:431
VP9E_SET_SVC_LAYER_ID
@ VP9E_SET_SVC_LAYER_ID
Codec control function to set svc layer for spatial and temporal.
Definition vp8cx.h:471
VP8E_SET_MAX_INTRA_BITRATE_PCT
@ VP8E_SET_MAX_INTRA_BITRATE_PCT
Codec control function to set Max data rate for Intra frames.
Definition vp8cx.h:275
VP8E_SET_ARNR_STRENGTH
@ VP8E_SET_ARNR_STRENGTH
Codec control function to set the filter strength for the arf.
Definition vp8cx.h:241
VP8E_SET_TUNING
@ VP8E_SET_TUNING
Codec control function to set visual tuning.
Definition vp8cx.h:250
VP9E_SET_SVC_INTER_LAYER_PRED
@ VP9E_SET_SVC_INTER_LAYER_PRED
Codec control function to constrain the inter-layer prediction (prediction of lower spatial resolutio...
Definition vp8cx.h:625
VP9E_SET_ROI_MAP
@ VP9E_SET_ROI_MAP
Codec control function to pass an ROI map to encoder.
Definition vp8cx.h:454
VP9E_GET_LOOPFILTER_LEVEL
@ VP9E_GET_LOOPFILTER_LEVEL
Codec control function to get loopfilter level in the encoder.
Definition vp8cx.h:747
VP8E_SET_ENABLEAUTOALTREF
@ VP8E_SET_ENABLEAUTOALTREF
Codec control function to enable automatic use of arf frames.
Definition vp8cx.h:182
VP8E_SET_ROI_MAP
@ VP8E_SET_ROI_MAP
Codec control function to pass an ROI map to encoder.
Definition vp8cx.h:147
VP8E_SET_RTC_EXTERNAL_RATECTRL
@ VP8E_SET_RTC_EXTERNAL_RATECTRL
Codec control to disable internal features in rate control.
Definition vp8cx.h:768
VP9E_SET_KEY_FRAME_FILTERING
@ VP9E_SET_KEY_FRAME_FILTERING
Codec control function to enable key frame temporal filtering.
Definition vp8cx.h:682
VP9E_SET_TARGET_LEVEL
@ VP9E_SET_TARGET_LEVEL
Codec control function to set target level.
Definition vp8cx.h:568
VP9E_GET_LEVEL
@ VP9E_GET_LEVEL
Codec control function to get bitstream level.
Definition vp8cx.h:582
VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST
@ VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST
Codec control function to enable the extreme motion vector unit test in VP9. Please note that this is...
Definition vp8cx.h:616
VP9E_SET_AQ_MODE
@ VP9E_SET_AQ_MODE
Codec control function to set adaptive quantization mode.
Definition vp8cx.h:416
VP9E_GET_SVC_REF_FRAME_CONFIG
@ VP9E_GET_SVC_REF_FRAME_CONFIG
Codec control function to get the refresh and reference flags and the buffer indices,...
Definition vp8cx.h:641
VP9E_SET_SVC_GF_TEMPORAL_REF
@ VP9E_SET_SVC_GF_TEMPORAL_REF
Codec control function to enable/disable use of golden reference as a second temporal reference for S...
Definition vp8cx.h:651
VP8E_SET_NOISE_SENSITIVITY
@ VP8E_SET_NOISE_SENSITIVITY
control function to set noise sensitivity
Definition vp8cx.h:191
VP8E_SET_TOKEN_PARTITIONS
@ VP8E_SET_TOKEN_PARTITIONS
Codec control function to set the number of token partitions.
Definition vp8cx.h:212
VP9E_SET_POSTENCODE_DROP
@ VP9E_SET_POSTENCODE_DROP
Codec control function to enable postencode frame drop.
Definition vp8cx.h:692
VP9E_REGISTER_CX_CALLBACK
@ VP9E_REGISTER_CX_CALLBACK
Codec control function to register callback to get per layer packet.
Definition vp8cx.h:497
VP8E_SET_ARNR_TYPE
@ VP8E_SET_ARNR_TYPE
Definition vp8cx.h:244
VP9E_SET_COLOR_RANGE
@ VP9E_SET_COLOR_RANGE
Codec control function to set color range bit.
Definition vp8cx.h:543
VP8E_GET_LAST_QUANTIZER
@ VP8E_GET_LAST_QUANTIZER
Codec control function to get last quantizer chosen by the encoder.
Definition vp8cx.h:220
VP9E_SET_TILE_ROWS
@ VP9E_SET_TILE_ROWS
Codec control function to set number of tile rows.
Definition vp8cx.h:389
VP8E_SET_ARNR_MAXFRAMES
@ VP8E_SET_ARNR_MAXFRAMES
Codec control function to set the max no of frames to create arf.
Definition vp8cx.h:235
VP8E_SET_ACTIVEMAP
@ VP8E_SET_ACTIVEMAP
Codec control function to pass an Active map to encoder.
Definition vp8cx.h:153
VP9E_SET_LOSSLESS
@ VP9E_SET_LOSSLESS
Codec control function to set lossless encoding mode.
Definition vp8cx.h:345
VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR
@ VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR
Codec control function to disable increase Q on overshoot in CBR.
Definition vp8cx.h:708
VP9E_SET_SVC_SPATIAL_LAYER_SYNC
@ VP9E_SET_SVC_SPATIAL_LAYER_SYNC
Codec control function to enable spatial layer sync frame, for any spatial layer. Enabling it for lay...
Definition vp8cx.h:666
VP9E_SET_SVC_PARAMETERS
@ VP9E_SET_SVC_PARAMETERS
Codec control function to set parameters for SVC.
Definition vp8cx.h:462
VP8E_SET_SCALEMODE
@ VP8E_SET_SCALEMODE
Codec control function to set encoder scaling mode.
Definition vp8cx.h:159
VP9E_SET_FRAME_PARALLEL_DECODING
@ VP9E_SET_FRAME_PARALLEL_DECODING
Codec control function to enable frame parallel decoding feature.
Definition vp8cx.h:403
VP8E_SET_SHARPNESS
@ VP8E_SET_SHARPNESS
Codec control function to set higher sharpness at the expense of a lower PSNR.
Definition vp8cx.h:200
VP8E_SET_GF_CBR_BOOST_PCT
@ VP8E_SET_GF_CBR_BOOST_PCT
Boost percentage for Golden Frame in CBR mode.
Definition vp8cx.h:607
VP9E_SET_TUNE_CONTENT
@ VP9E_SET_TUNE_CONTENT
Codec control function to set content type.
Definition vp8cx.h:481
VP9E_SET_SVC
@ VP9E_SET_SVC
Codec control function to turn on/off SVC in encoder.
Definition vp8cx.h:448
VP9E_SET_TPL
@ VP9E_SET_TPL
Codec control function to enable temporal dependency model.
Definition vp8cx.h:674
VP9E_SET_ROW_MT
@ VP9E_SET_ROW_MT
Codec control function to set row level multi-threading.
Definition vp8cx.h:576
VP8E_SET_CPUUSED
@ VP8E_SET_CPUUSED
Codec control function to set encoder internal speed settings.
Definition vp8cx.h:173
VP8E_SET_TEMPORAL_LAYER_ID
@ VP8E_SET_TEMPORAL_LAYER_ID
Codec control function to set the temporal layer id.
Definition vp8cx.h:322
VP9E_SET_TILE_COLUMNS
@ VP9E_SET_TILE_COLUMNS
Codec control function to set number of tile columns.
Definition vp8cx.h:369
VP9E_SET_SVC_FRAME_DROP_LAYER
@ VP9E_SET_SVC_FRAME_DROP_LAYER
Codec control function to set mode and thresholds for frame dropping in SVC. Drop frame thresholds ar...
Definition vp8cx.h:634
VP9E_SET_SVC_REF_FRAME_CONFIG
@ VP9E_SET_SVC_REF_FRAME_CONFIG
Codec control function to set the frame flags and buffer indices for spatial layers....
Definition vp8cx.h:551
VP8E_SET_STATIC_THRESHOLD
@ VP8E_SET_STATIC_THRESHOLD
Codec control function to set the threshold for MBs treated static.
Definition vp8cx.h:206
VP9E_SET_COLOR_SPACE
@ VP9E_SET_COLOR_SPACE
Codec control function to set color space info.
Definition vp8cx.h:512
VP9E_GET_LAST_QUANTIZER_SVC_LAYERS
@ VP9E_GET_LAST_QUANTIZER_SVC_LAYERS
Codec control to get last quantizers for all spatial layers.
Definition vp8cx.h:757
VP9E_SET_RENDER_SIZE
@ VP9E_SET_RENDER_SIZE
Codec control function to set intended rendering image size.
Definition vp8cx.h:559
VP8E_SET_SCREEN_CONTENT_MODE
@ VP8E_SET_SCREEN_CONTENT_MODE
Codec control function to set encoder screen content mode.
Definition vp8cx.h:330
VP9E_SET_DISABLE_LOOPFILTER
@ VP9E_SET_DISABLE_LOOPFILTER
Codec control function to disable loopfilter.
Definition vp8cx.h:717
VP8E_SET_CQ_LEVEL
@ VP8E_SET_CQ_LEVEL
Codec control function to set constrained / constant quality level.
Definition vp8cx.h:260
VP9E_SET_NOISE_SENSITIVITY
@ VP9E_SET_NOISE_SENSITIVITY
Codec control function to set noise sensitivity.
Definition vp8cx.h:439
VP8E_GET_LAST_QUANTIZER_64
@ VP8E_GET_LAST_QUANTIZER_64
Codec control function to get last quantizer chosen by the encoder.
Definition vp8cx.h:229
VP9E_SET_QUANTIZER_ONE_PASS
@ VP9E_SET_QUANTIZER_ONE_PASS
Codec control to set quantizer for the next frame.
Definition vp8cx.h:778
VP8E_SET_FRAME_FLAGS
@ VP8E_SET_FRAME_FLAGS
Codec control function to set reference and update frame flags.
Definition vp8cx.h:281
VP9E_GET_ACTIVEMAP
@ VP9E_GET_ACTIVEMAP
Codec control function to get an Active map back from the encoder.
Definition vp8cx.h:534
VP9E_SET_GF_CBR_BOOST_PCT
@ VP9E_SET_GF_CBR_BOOST_PCT
Boost percentage for Golden Frame in CBR mode.
Definition vp8cx.h:311
VP9E_SET_RTC_EXTERNAL_RATECTRL
@ VP9E_SET_RTC_EXTERNAL_RATECTRL
Codec control to disable internal features in rate control.
Definition vp8cx.h:741
VP9E_GET_SVC_LAYER_ID
@ VP9E_GET_SVC_LAYER_ID
Codec control function to get svc layer ID.
Definition vp8cx.h:489
VP9E_SET_EXTERNAL_RATE_CONTROL
@ VP9E_SET_EXTERNAL_RATE_CONTROL
Codec control function to enable external rate control library.
Definition vp8cx.h:727
VP9E_SET_MAX_GF_INTERVAL
@ VP9E_SET_MAX_GF_INTERVAL
Codec control function to set minimum interval between GF/ARF frames.
Definition vp8cx.h:528
VP9E_SET_ALT_REF_AQ
@ VP9E_SET_ALT_REF_AQ
Codec control function to enable/disable special mode for altref adaptive quantization....
Definition vp8cx.h:592
VP9E_SET_DELTA_Q_UV
@ VP9E_SET_DELTA_Q_UV
Codec control function to set delta q for uv.
Definition vp8cx.h:700
VP9E_TEMPORAL_LAYERING_MODE_BYPASS
@ VP9E_TEMPORAL_LAYERING_MODE_BYPASS
Bypass mode. Used when application needs to control temporal layering. This will only work when the n...
Definition vp8cx.h:808
VP9E_TEMPORAL_LAYERING_MODE_0101
@ VP9E_TEMPORAL_LAYERING_MODE_0101
0-1-0-1... temporal layering scheme with two temporal layers.
Definition vp8cx.h:812
VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING
@ VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING
No temporal layering. Used when only spatial layering is used.
Definition vp8cx.h:802
VP9E_TEMPORAL_LAYERING_MODE_0212
@ VP9E_TEMPORAL_LAYERING_MODE_0212
0-2-1-2... temporal layering scheme with three temporal layers.
Definition vp8cx.h:816
vpx_active_map
vpx active region map
Definition vp8cx.h:849
vpx_active_map::rows
unsigned int rows
Definition vp8cx.h:852
vpx_active_map::cols
unsigned int cols
Definition vp8cx.h:853
vpx_active_map::active_map
unsigned char * active_map
specify an on (1) or off (0) each 16x16 region within a frame
Definition vp8cx.h:851
vpx_rc_funcs
Callback function set for external rate control.
Definition vpx_ext_ratectrl.h:534
vpx_roi_map
vpx region of interest map
Definition vp8cx.h:825
vpx_roi_map::enabled
uint8_t enabled
Definition vp8cx.h:827
vpx_roi_map::skip
int skip[8]
Definition vp8cx.h:837
vpx_roi_map::static_threshold
unsigned int static_threshold[4]
Definition vp8cx.h:840
vpx_roi_map::rows
unsigned int rows
Definition vp8cx.h:831
vpx_roi_map::cols
unsigned int cols
Definition vp8cx.h:832
vpx_roi_map::ref_frame
int ref_frame[8]
Definition vp8cx.h:838
vpx_roi_map::delta_q
int delta_q[8]
Definition vp8cx.h:834
vpx_roi_map::roi_map
unsigned char * roi_map
Definition vp8cx.h:830
vpx_roi_map::delta_lf
int delta_lf[8]
Definition vp8cx.h:835
vpx_scaling_mode
vpx image scaling mode
Definition vp8cx.h:861
vpx_scaling_mode::v_scaling_mode
VPX_SCALING_MODE v_scaling_mode
Definition vp8cx.h:863
vpx_scaling_mode::h_scaling_mode
VPX_SCALING_MODE h_scaling_mode
Definition vp8cx.h:862
vpx_svc_frame_drop
vp9 svc frame dropping parameters.
Definition vp8cx.h:953
vpx_svc_frame_drop::framedrop_thresh
int framedrop_thresh[5]
Definition vp8cx.h:954
vpx_svc_frame_drop::framedrop_mode
SVC_LAYER_DROP_MODE framedrop_mode
Definition vp8cx.h:956
vpx_svc_frame_drop::max_consec_drop
int max_consec_drop
Definition vp8cx.h:957
vpx_svc_layer_id
vp9 svc layer parameters
Definition vp8cx.h:902
vpx_svc_layer_id::temporal_layer_id
int temporal_layer_id
Definition vp8cx.h:905
vpx_svc_layer_id::temporal_layer_id_per_spatial
int temporal_layer_id_per_spatial[5]
Definition vp8cx.h:906
vpx_svc_layer_id::spatial_layer_id
int spatial_layer_id
Definition vp8cx.h:903
vpx_svc_ref_frame_config
vp9 svc frame flag parameters.
Definition vp8cx.h:917
vpx_svc_ref_frame_config::lst_fb_idx
int lst_fb_idx[5]
Definition vp8cx.h:918
vpx_svc_ref_frame_config::update_alt_ref
int update_alt_ref[5]
Definition vp8cx.h:925
vpx_svc_ref_frame_config::update_buffer_slot
int update_buffer_slot[5]
Definition vp8cx.h:921
vpx_svc_ref_frame_config::gld_fb_idx
int gld_fb_idx[5]
Definition vp8cx.h:919
vpx_svc_ref_frame_config::reference_last
int reference_last[5]
Definition vp8cx.h:926
vpx_svc_ref_frame_config::reference_golden
int reference_golden[5]
Definition vp8cx.h:927
vpx_svc_ref_frame_config::update_last
int update_last[5]
Definition vp8cx.h:923
vpx_svc_ref_frame_config::reference_alt_ref
int reference_alt_ref[5]
Definition vp8cx.h:928
vpx_svc_ref_frame_config::duration
int64_t duration[5]
Definition vp8cx.h:929
vpx_svc_ref_frame_config::alt_fb_idx
int alt_fb_idx[5]
Definition vp8cx.h:920
vpx_svc_ref_frame_config::update_golden
int update_golden[5]
Definition vp8cx.h:924
vpx_svc_spatial_layer_sync
vp9 svc spatial layer sync parameters.
Definition vp8cx.h:965
vpx_svc_spatial_layer_sync::spatial_layer_sync
int spatial_layer_sync[5]
Definition vp8cx.h:966
vpx_svc_spatial_layer_sync::base_layer_intra_only
int base_layer_intra_only
Definition vp8cx.h:967
vp8.h
Provides controls common to both the VP8 encoder and decoder.
vpx_encoder.h
Describes the encoder algorithm interface to applications.
vpx_ext_ratectrl.h
Defines structs and callbacks needed for external rate control.