diff options
author | Adrian Grange <agrange@google.com> | 2012-09-17 13:40:07 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2012-09-17 13:40:07 -0700 |
commit | eec08d5cfc71678293ee9e63258ebdf5c8aa0e7b (patch) | |
tree | baf6a252ae9fa362bde356e6284d985e798af1a3 /vp8_scalable_patterns.c | |
parent | 57c7e45066fd210425d25ad5edbd7c8a4fcd6547 (diff) | |
parent | 1076101b2b8d34844e2c5c72ba58264a0676cf06 (diff) | |
download | libvpx-eec08d5cfc71678293ee9e63258ebdf5c8aa0e7b.tar libvpx-eec08d5cfc71678293ee9e63258ebdf5c8aa0e7b.tar.gz libvpx-eec08d5cfc71678293ee9e63258ebdf5c8aa0e7b.tar.bz2 libvpx-eec08d5cfc71678293ee9e63258ebdf5c8aa0e7b.zip |
Merge "Update to 2 layer case in vp8_scalable_patterns."
Diffstat (limited to 'vp8_scalable_patterns.c')
-rw-r--r-- | vp8_scalable_patterns.c | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/vp8_scalable_patterns.c b/vp8_scalable_patterns.c index 0677468c8..06270fecb 100644 --- a/vp8_scalable_patterns.c +++ b/vp8_scalable_patterns.c @@ -427,7 +427,7 @@ int main(int argc, char **argv) { case 8: { - /* 2-layers */ + /* 2-layers, with sync point at first frame of layer 1. */ int ids[2] = {0,1}; cfg.ts_number_layers = 2; cfg.ts_periodicity = 2; @@ -438,22 +438,40 @@ int main(int argc, char **argv) { flag_periodicity = 8; /* 0=L, 1=GF */ + // ARF is used as predictor for all frames, and is only updated on + // key frame. Sync point every 8 frames. + + // Layer 0: predict from L and ARF, update L and G. layer_flags[0] = VPX_EFLAG_FORCE_KF | - VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_ARF | - VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF; - layer_flags[1] = VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_ARF | - VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_ARF; - layer_flags[2] = - layer_flags[4] = - layer_flags[6] = VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_ARF | - VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF; - layer_flags[3] = - layer_flags[5] = VP8_EFLAG_NO_REF_ARF | - VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_LAST; - layer_flags[7] = VP8_EFLAG_NO_REF_ARF | - VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_GF | - VP8_EFLAG_NO_UPD_ARF | + VP8_EFLAG_NO_REF_GF | + VP8_EFLAG_NO_UPD_ARF; + + // Layer 1: sync point: predict from L and ARF, and update G. + layer_flags[1] = VP8_EFLAG_NO_REF_GF | + VP8_EFLAG_NO_UPD_LAST | + VP8_EFLAG_NO_UPD_ARF; + + // Layer 0, predict from L and ARF, update L. + layer_flags[2] = VP8_EFLAG_NO_REF_GF | + VP8_EFLAG_NO_UPD_GF | + VP8_EFLAG_NO_UPD_ARF; + + // Layer 1: predict from L, G and ARF, and update G. + layer_flags[3] = VP8_EFLAG_NO_UPD_ARF | + VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_ENTROPY; + + // Layer 0 + layer_flags[4] = layer_flags[2]; + + // Layer 1 + layer_flags[5] = layer_flags[3]; + + // Layer 0 + layer_flags[6] = layer_flags[4]; + + // Layer 1 + layer_flags[7] = layer_flags[5]; break; } |