1. 06 May, 2015 1 commit
    • Johann's avatar
      Move shared SAD code to vpx_dsp · d5d92898
      Johann authored
      Create a new component, vpx_dsp, for code that can be shared
      between codecs. Move the SAD code into the component.
      
      This reduces the size of vpxenc/dec by 36k on x86_64 builds.
      
      Change-Id: I73f837ddaecac6b350bf757af0cfe19c4ab9327a
      d5d92898
  2. 29 Apr, 2015 2 commits
    • James Zern's avatar
      vpx_mem: remove vpx_memset · f58011ad
      James Zern authored
      vestigial. replace instances with memset() which they already were being
      defined to.
      
      Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
      f58011ad
    • James Zern's avatar
      vpx_mem: remove vpx_memcpy · f274c219
      James Zern authored
      vestigial. replace instances with memcpy() which they already were being
      defined to.
      
      Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
      f274c219
  3. 22 Apr, 2015 1 commit
  4. 21 Apr, 2015 2 commits
  5. 17 Apr, 2015 3 commits
  6. 16 Apr, 2015 1 commit
  7. 15 Apr, 2015 2 commits
  8. 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
  9. 24 Mar, 2015 1 commit
  10. 20 Mar, 2015 2 commits
  11. 19 Mar, 2015 1 commit
  12. 18 Mar, 2015 1 commit
  13. 16 Mar, 2015 1 commit
  14. 12 Mar, 2015 1 commit
  15. 10 Mar, 2015 1 commit
  16. 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
  17. 27 Feb, 2015 1 commit
    • Adrian Grange's avatar
      Fix calc_highbd_psnr · 54293ee3
      Adrian Grange authored
      Should use the crop dimensions of the frame rather
      than the extended size.
      
      Change-Id: I49ed041a46ff0753d43e074020857b7ff2f95e17
      54293ee3
  18. 26 Feb, 2015 2 commits
  19. 12 Feb, 2015 1 commit
    • Marco's avatar
      Add skin detection. · 56435bb7
      Marco authored
      Simple skin detection, from vp8; works reasonable on most of the
      RTC clips, but could miss sometimes.
      
      Added debug flag to write out skin map over source input.
      
      Change-Id: I2caea7592f1c459047aac46627eeb24a94946464
      56435bb7
  20. 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
  21. 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
  22. 29 Jan, 2015 1 commit
  23. 28 Jan, 2015 1 commit
  24. 23 Jan, 2015 1 commit
  25. 21 Jan, 2015 1 commit
  26. 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
  27. 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
  28. 09 Jan, 2015 2 commits
    • Yaowu Xu's avatar
      Added plumbing for setting color space · ce52b0f8
      Yaowu Xu authored
      Change-Id: If64052cc6e404abc8a64a889f42930d14fad21d3
      ce52b0f8
    • Yaowu Xu's avatar
      Fix comments and color format · ecbca31a
      Yaowu Xu authored
      Replaced "color space" with "color format" in comments where color
      sampling format is concerned, so to differentiate from the concept
      defined in COLOR_SPACE.
      
      Change-Id: I8c935034c166b24307a99352dab1686531276bb8
      ecbca31a
  29. 07 Jan, 2015 3 commits
    • Jingning Han's avatar
      Always check and free denoiser buffer memory space · ce080069
      Jingning Han authored
      The vp9_denoiser_free() function will internally check if the
      buffer pointers are NULL. This commit makes the encoder always
      call vp9_denoiser_free() after finishing encoding. It protects the
      case where noise_sensitivity_level is changed during encoding
      process and happen to be turned off towards the end of sequence,
      which could result memory space allocated to denoiser not being
      released.
      
      Change-Id: Ie20dc2f2e6e5fb6333fbab3356bc153978a6a0f8
      ce080069
    • Jingning Han's avatar
      Skip duplicate denoiser frame buffer allocation · 27582e57
      Jingning Han authored
      Allocate the frame buffer allocation for denoiser once during the
      encoder initialization. This avoids allocating frame buffer
      multiple times and overwriting the buffer pointer without proper
      releasing.
      
      Change-Id: I9b3baa6283449d86fd164534d344c036bb035700
      27582e57
    • 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