diff options
author | Marco <marpan@google.com> | 2015-05-21 16:15:37 -0700 |
---|---|---|
committer | Marco <marpan@chromium.org> | 2015-06-02 07:54:13 -0700 |
commit | c139b81a13f680340dd874c205cba40a7233d388 (patch) | |
tree | 3a34401e32dad4a602c653d508796716ba19459d /vp9/encoder/vp9_svc_layercontext.h | |
parent | ebf7466cd8b884fd29be42ebe670317f5a7ca04d (diff) | |
download | libvpx-c139b81a13f680340dd874c205cba40a7233d388.tar libvpx-c139b81a13f680340dd874c205cba40a7233d388.tar.gz libvpx-c139b81a13f680340dd874c205cba40a7233d388.tar.bz2 libvpx-c139b81a13f680340dd874c205cba40a7233d388.zip |
Vidyo patch: Rate control for SVC, 1 pass CBR mode.
-Make Rate control work for SVC 1 pass CBR mode.
-Added temporal layering mode.
-Fixed bug in non-rd variance partition.
-Modified/updated the sample encoders (vp9_spatial_svc_encoder, vpx_temporal_svc_encoder).
-Added datarate unittest(s) for 1 pass CBR SVC.
Change-Id: Ie94b1b68a56ea1267b5087c625e5df04def2ee48
Diffstat (limited to 'vp9/encoder/vp9_svc_layercontext.h')
-rw-r--r-- | vp9/encoder/vp9_svc_layercontext.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h index 5063d521f..b6a5ea548 100644 --- a/vp9/encoder/vp9_svc_layercontext.h +++ b/vp9/encoder/vp9_svc_layercontext.h @@ -22,6 +22,7 @@ extern "C" { typedef struct { RATE_CONTROL rc; int target_bandwidth; + int spatial_layer_target_bandwidth; // Target for the spatial layer. double framerate; int avg_frame_size; int max_q; @@ -64,9 +65,11 @@ typedef struct { YV12_BUFFER_CONFIG scaled_frames[MAX_LAG_BUFFERS]; // Layer context used for rate control in one pass temporal CBR mode or - // two pass spatial mode. Defined for temporal or spatial layers for now. - // Does not support temporal combined with spatial RC. - LAYER_CONTEXT layer_context[MAX(VPX_TS_MAX_LAYERS, VPX_SS_MAX_LAYERS)]; + // two pass spatial mode. + LAYER_CONTEXT layer_context[VPX_MAX_LAYERS]; + // Indicates what sort of temporal layering is used. + // Currently, this only works for CBR mode. + VP9E_TEMPORAL_LAYERING_MODE temporal_layering_mode; } SVC; struct VP9_COMP; @@ -110,6 +113,8 @@ struct lookahead_entry *vp9_svc_lookahead_pop(struct VP9_COMP *const cpi, // Start a frame and initialize svc parameters int vp9_svc_start_frame(struct VP9_COMP *const cpi); +int vp9_one_pass_cbr_svc_start_layer(struct VP9_COMP *const cpi); + #ifdef __cplusplus } // extern "C" #endif |