1. 20 Aug, 2015 1 commit
    • Marco's avatar
      Update to dynamic resize for 1 pass CBR: source scaling. · 93ffe9d6
      Marco authored
      Switch to use the normative (convolve8) filter for source scaling,
      only for 1/2x1/2 scaling for now. This is faster and has better
      quality than either the vpx_scale_frame or the nonnormative scaler.
      
      Remove the vp9_scale_if_required_fast, which is now not used.
      
      Change-Id: I2f7d73950589d19baafb1fa650eac987d531bcc8
      93ffe9d6
  2. 07 Aug, 2015 1 commit
  3. 27 Jul, 2015 1 commit
    • Yunqing Wang's avatar
      Remove tx_select_threshes · b2446fb6
      Yunqing Wang authored
      Removed unused tx_select_threshes and tx_select_diff.
      
      Change-Id: I5e9e7ad170056efe14b5f071e94d0c5a36e4a34c
      b2446fb6
  4. 21 Jul, 2015 1 commit
    • Yaowu Xu's avatar
      vpx_dsp/bitreader.h: vp9_->vpx_ · bf82514b
      Yaowu Xu authored
      Replace vp9_ in names to vpx_ as they are not codec specific.
      
      Change-Id: I2e583aa63dee769353ada4b42417aa15c4074ebb
      bf82514b
  5. 10 Jul, 2015 1 commit
  6. 07 Jul, 2015 1 commit
  7. 06 Jul, 2015 1 commit
    • Debargha Mukherjee's avatar
      Expose params min-gf-interval/max-gf-interval · 98526433
      Debargha Mukherjee authored
      Adds two new vp9 parameters --min-gf-interval and --max-gf-interval
      to enable testing based on frequency of alt-ref frames.
      
      Also adds a unit-test to test enforcement of min-gf-interval.
      
      For both these parameters the default value is 0, which indicates
      they are picked by the encoder, based on resolution and framerate
      considerations. If they are greater than zero, the specified
      parameter is honored.
      
      (Additional note by paulwilkins)
      Note that there is a slight oddity in that key frames are also GFs and
      considered part of  GF only group. However they are treated as not
      being part of an arf group because for arf groups the previous GF is
      assumed to be the terminal or overlay frame for the previous group.
      
      (end note)
      
      Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
      98526433
  8. 02 Jul, 2015 3 commits
  9. 29 Jun, 2015 1 commit
  10. 19 Jun, 2015 1 commit
    • Marco's avatar
      Add dynamic resize logic for 1 pass CBR. · d77f51ba
      Marco authored
      Decision to scale down/up is based on buffer state and average QP
      over previous time window. Limit the total amount of down-scaling
      to be at most one scale down for now.
      
      Reset certain quantities after resize (buffer level, cyclic refresh,
      rate correction factor).
      
      Feature is enable via the setting rc_resize_allowed = 1.
      
      Change-Id: I9b1a53024e1e1e953fb8a1e1f75d21d160280dc7
      d77f51ba
  11. 11 Jun, 2015 1 commit
    • Yunqing Wang's avatar
      Allocate tile data adaptively to accommodate the frame size increase · 2c838ede
      Yunqing Wang authored
      If the frame size increases, the tile data buffer needs to be
      re-allocated according to the number of tiles existing in current
      frame. This patch makes the multi-tile encoding work in spatial
      SVC usage case, and partially solved WebM issue 1018.
      
      Change-Id: I1ad6f33058cf5ce6f60ed5024455a709ca80c5ad
      2c838ede
  12. 02 Jun, 2015 1 commit
    • Marco's avatar
      Vidyo patch: Rate control for SVC, 1 pass CBR mode. · c139b81a
      Marco authored
      -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
      c139b81a
  13. 22 Apr, 2015 1 commit
  14. 21 Apr, 2015 1 commit
  15. 17 Apr, 2015 4 commits
  16. 14 Apr, 2015 1 commit
  17. 13 Apr, 2015 1 commit
    • Marco's avatar
      Force_split on 16x16 blocks in variance partition. · eb8c6675
      Marco authored
      Force split on 16x16 block (to 8x8) based on the minmax over the 8x8 sub-blocks.
      
      Also increase variance threshold for 32x32, and add exit condiiton in choose_partition
      (with very safe threshold) based on sad used to select reference frame.
      
      Some visual improvement near moving boundaries.
      Average gain in psnr/ssim: ~0.6%, some clips go up ~1 or 2%.
      Encoding time increase (due to more 8x8 blocks) from ~1-4%, depending on clip.
      
      Change-Id: I4759bb181251ac41517cd45e326ce2997dadb577
      eb8c6675
  18. 02 Apr, 2015 1 commit
    • Yunqing Wang's avatar
      Set vbp thresholds for aq3 boosted blocks · cae03a7e
      Yunqing Wang authored
      The vbp thresholds are set seperately for boosted/non-boosted
      superblocks according to their segment_id. This way we don't
      have to force the boosted blocks to split to 32x32.
      
      Speed 6 RTC set borg test result showed some quality gains.
      Overall PSNR: +0.199%; Avg PSNR: +0.245%; SSIM: +0.802%.
      No speed change was observed.
      
      Change-Id: I37c6643a3e2da59c4b7dc10ebe05abc8abf4026a
      cae03a7e
  19. 31 Mar, 2015 1 commit
  20. 24 Mar, 2015 1 commit
  21. 12 Mar, 2015 1 commit
  22. 04 Mar, 2015 1 commit
    • Adrian Grange's avatar
      Make encoder buffer allocation dynamic · 3807dd82
      Adrian Grange authored
      Frame buffers are now allocated dynamically on-demand.
      
      Entries in the reference frame map, cm->ref_frame_map,
      may now be set to -1 (INVALID_IDX) to indicate that
      there is not a valid reference buffer in that "slot".
      
      All slots in the reference frame map are now initialized
      to the empty state (-1) and each buffer is initialized
      to have a reference count of 0.
      
      Change-Id: Id1afe98de98db4ae8b2dfefed7889c3b28c68582
      3807dd82
  23. 20 Feb, 2015 1 commit
  24. 10 Feb, 2015 2 commits
    • Yaowu Xu's avatar
      Move computation up to frame level · ee5d7999
      Yaowu Xu authored
      This is to avoid redo the same calculation repeatly, and also allow
      easier adjustments for further experiments.
      
      This commit shall have no effect on quality/compression.
      
      Change-Id: I4460acf5c808ff5518da18d21e002c5da58af857
      ee5d7999
    • Adrian Grange's avatar
      Auto-adaptive encoder frame resizing logic · 23ebacdb
      Adrian Grange authored
      Note: This feature is still in development.
      
      Add an option for the encoder to decide the resolution
      at which to encode each frame.
      
      Each KF/GF/ARF goup is tested to see if it would be
      better encoded at a lower resolution. At present, each
      KF/GF/ARF is coded first at full-size and if the coded
      size exceeds a threshold (twice target data rate) at
      the maximum active Q then the entire group is encoded
      at lower resolution.
      
      This feature is enabled in vpxenc by setting:
        --resize-allowed=1
      
      In addition, if the vpxenc command line also specifies
      valid frame dimensions using:
        --resize-width=XXXX & --resize_height=YYYY
      then *all* frames will be encoded at this resolution.
      
      Change-Id: I13f341e0a82512f9e84e144e0f3b5aed8a65402b
      23ebacdb
  25. 06 Feb, 2015 1 commit
  26. 31 Jan, 2015 1 commit
    • hkuang's avatar
      Try again to merge branch 'frame-parallel' into master branch. · be6aeada
      hkuang authored
      In frame parallel decode, libvpx decoder decodes several frames on all
      cpus in parallel fashion. If not being flushed, it will only return frame
      when all the cpus are busy. If getting flushed, it will return all the
      frames in the decoder. Compare with current serial decode mode in which
      libvpx decoder is idle between decode calls, libvpx decoder is busy
      between decode calls.
      
      Current frame parallel decode will only speed up the decoding for frame
      parallel encoded videos. For non frame parallel encoded videos, frame
      parallel decode is slower than serial decode due to lack of loopfilter
      worker thread.
      
      There are still some known issues that need to be addressed. For example:
      decode frame parallel videos with segmentation enabled is not right sometimes.
      
      * frame-parallel:
        Add error handling for frame parallel decode and unit test for that.
        Fix a bug in frame parallel decode and add a unit test for that.
        Add two test vectors to test frame parallel decode.
        Add key frame seeking to webmdec and webm_video_source.
        Implement frame parallel decode for VP9.
        Increase the thread test range to cover 5, 6, 7, 8 threads.
        Fix a bug in adding frame parallel unit test.
        Add VP9 frame-parallel unit test.
        Manually pick "Make the api behavior conform to api spec." from master branch.
        Move vp9_dec_build_inter_predictors_* to decoder folder.
        Add segmentation map array for current and last frame segmentation.
        Include the right header for VP9 worker thread.
        Move vp9_thread.* to common.
        ctrl_get_reference does not need user_priv.
        Seperate the frame buffers from VP9 encoder/decoder structure.
        Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""
       Conflicts:
             test/codec_factory.h
             test/decode_test_driver.cc
             test/decode_test_driver.h
             test/invalid_file_test.cc
             test/test-data.sha1
             test/test.mk
             test/test_vectors.cc
             vp8/vp8_dx_iface.c
             vp9/common/vp9_alloccommon.c
             vp9/common/vp9_entropymode.c
             vp9/common/vp9_loopfilter_thread.c
             vp9/common/vp9_loopfilter_thread.h
             vp9/common/vp9_mvref_common.c
             vp9/common/vp9_onyxc_int.h
             vp9/common/vp9_reconinter.c
             vp9/decoder/vp9_decodeframe.c
             vp9/decoder/vp9_decodeframe.h
             vp9/decoder/vp9_decodemv.c
             vp9/decoder/vp9_decoder.c
             vp9/decoder/vp9_decoder.h
             vp9/encoder/vp9_encoder.c
             vp9/encoder/vp9_pickmode.c
             vp9/encoder/vp9_rdopt.c
             vp9/vp9_cx_iface.c
             vp9/vp9_dx_iface.c
      
      This reverts commit a18da976.
      
      Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
      be6aeada
  27. 23 Jan, 2015 1 commit
  28. 17 Jan, 2015 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: add parallel loopfilter · e76eaf05
      Yunqing Wang authored
      1. Added row-based loopfilter in encoder;
      2. Moved common multi-threaded loopfilter functions from decoder
         to common;
      3. Merged multi-threaded loopfilter code, and made encoder/
         decoder call same function to reduce code duplication.
      
      Encoder tests showed that 1% - 2% speedup was seen for good-quality
      2-pass mode(at speed 3); 1% - 3% speedup using 2 threads and 4% - 6%
      speedup using 4 threads were seen for real-time mode(at speed 7).
      
      Change-Id: I8a4ac51c2ad9bab9fa7b864e90743931c53ec1c4
      e76eaf05
  29. 14 Jan, 2015 1 commit
    • Yaowu Xu's avatar
      Add encoder control for setting color space · e94b415c
      Yaowu Xu authored
      This commit adds encoder side control for vp9 to set color space info
      in the output compressed bitstream.
      
      It also amends the "vp9_encoder_params_get_to_decoder" test to verify
      the correct color space information is passed from the encoder end to
      decoder end.
      
      Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650
      e94b415c
  30. 09 Jan, 2015 1 commit
  31. 07 Jan, 2015 1 commit
    • Paul Wilkins's avatar
      Use 64 bit to accumulate frame sse. · a3c1a9b4
      Paul Wilkins authored
      When testing frame sse to choose a loop filter value and
      when checking ambient error in kf Q selection, use 64 bit
      values for accumulating the sse, to avoid risk of overflow
      for large image formats.
      
      Change-Id: I03765d16c843d0ade61a45b0cd46312472697e57
      a3c1a9b4
  32. 19 Dec, 2014 1 commit
  33. 18 Dec, 2014 1 commit
    • Paul Wilkins's avatar
      Remove mode dependent zbin boost. · 60e9b731
      Paul Wilkins authored
      Initial patch to remove get_zbin_mode_boost() and
      cpi->zbin_mode_boost.
      
      For now sets a dummy value of 0 for zbin extra pending
      a further clean up patch.
      
      Change-Id: I64a1e1eca2d39baa8ffb0871b515a0be05c9a6af
      60e9b731
  34. 12 Dec, 2014 1 commit