summaryrefslogtreecommitdiff
path: root/vpx
diff options
context:
space:
mode:
authorIvan Maltz <ivanmaltz@google.com>2013-09-05 08:55:47 -0700
committerIvan Maltz <ivanmaltz@google.com>2013-09-09 15:57:56 -0700
commit01b35c3c160e6158babfce046360bdc6a09d5c17 (patch)
tree433722120deacb3a9f6e1fa618b6742eb581ecc5 /vpx
parent1cf2272347f8a07b29a0ee2d9d6445826f2f7e6f (diff)
downloadlibvpx-01b35c3c160e6158babfce046360bdc6a09d5c17.tar
libvpx-01b35c3c160e6158babfce046360bdc6a09d5c17.tar.gz
libvpx-01b35c3c160e6158babfce046360bdc6a09d5c17.tar.bz2
libvpx-01b35c3c160e6158babfce046360bdc6a09d5c17.zip
API extensions and sample app for spacial scalable encoder
Sample app: vp9_spatial_scalable_encoder vpx_codec_control extensions: VP9E_SET_SVC VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER VP9E_SET_MIN_Q, VP9E_SET_MAX_Q expanded buffer size for vp9_convolve modified setting of initial width in vp9_onyx_if.c so that layer size can be set prior to initial encode Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS) Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
Diffstat (limited to 'vpx')
-rw-r--r--vpx/vp8cx.h19
-rw-r--r--vpx/vpx_encoder.h14
2 files changed, 31 insertions, 2 deletions
diff --git a/vpx/vp8cx.h b/vpx/vp8cx.h
index f8e2ef9c3..f3ea6d3a2 100644
--- a/vpx/vp8cx.h
+++ b/vpx/vp8cx.h
@@ -190,7 +190,15 @@ enum vp8e_enc_control_id {
VP9E_SET_LOSSLESS,
VP9E_SET_TILE_COLUMNS,
VP9E_SET_TILE_ROWS,
- VP9E_SET_FRAME_PARALLEL_DECODING
+ VP9E_SET_FRAME_PARALLEL_DECODING,
+
+ VP9E_SET_WIDTH = 99,
+ VP9E_SET_HEIGHT,
+ VP9E_SET_LAYER,
+ VP9E_SET_SVC,
+
+ VP9E_SET_MAX_Q,
+ VP9E_SET_MIN_Q
};
/*!\brief vpx 1-D scaling mode
@@ -292,6 +300,12 @@ VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *)
VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *)
VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)
+VPX_CTRL_USE_TYPE(VP9E_SET_LAYER, int *)
+VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int)
+
+VPX_CTRL_USE_TYPE(VP9E_SET_WIDTH, unsigned int *)
+VPX_CTRL_USE_TYPE(VP9E_SET_HEIGHT, unsigned int *)
+
VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
@@ -316,6 +330,9 @@ VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int)
VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int)
VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int)
+
+VPX_CTRL_USE_TYPE(VP9E_SET_MAX_Q, unsigned int)
+VPX_CTRL_USE_TYPE(VP9E_SET_MIN_Q, unsigned int)
/*! @} - end defgroup vp8_encoder */
#include "vpx_codec_impl_bottom.h"
#endif
diff --git a/vpx/vpx_encoder.h b/vpx/vpx_encoder.h
index ffdbc0644..181b92a3c 100644
--- a/vpx/vpx_encoder.h
+++ b/vpx/vpx_encoder.h
@@ -46,6 +46,12 @@ extern "C" {
/*!\deprecated Use #VPX_TS_MAX_LAYERS instead. */
#define MAX_LAYERS VPX_TS_MAX_LAYERS
+/*! Spatial Scalability: Maximum number of coding layers */
+#define VPX_SS_MAX_LAYERS 5
+
+/*! Spatial Scalability: Default number of coding layers */
+#define VPX_SS_DEFAULT_LAYERS 3
+
/*!\brief Current ABI version number
*
* \internal
@@ -595,8 +601,14 @@ extern "C" {
unsigned int kf_max_dist;
/*
- * Temporal scalability settings (ts)
+ * Spatial scalability settings (ss)
+ */
+
+ /*!\brief Number of coding layers (spatial)
+ *
+ * This value specifies the number of coding layers to be used.
*/
+ unsigned int ss_number_layers;
/*!\brief Number of coding layers
*