1. 04 Nov, 2014 1 commit
  2. 01 Nov, 2014 1 commit
    • hkuang's avatar
      Bind motion vectors with frame buffer structure. · 55577431
      hkuang authored
      This will save a lot of memory for decoder due to removing of prev_mi,
      but prev_mi is still needed in encoder. So this will increase a little bit
      memory for encoder.
      
      Change-Id: I24b2f1a423ebffa55a9bd2fcee1077dac995b2ed
      55577431
  3. 24 Oct, 2014 1 commit
    • Jingning Han's avatar
      Tile based adaptive mode search in RD loop · eee201c2
      Jingning Han authored
      Make the spatially adaptive mode search in rate-distortion
      optimization loop inter tile independent. Experiments suggest that
      this does not significantly change the coding staticstics.
      
      Single tile, speed 3:
      pedestrian_area 1080p 1500 kbps
      59192 b/f, 40.611 dB, 101689 ms
      
      blue_sky 1080p 1500 kbps
      58505 b/f, 36.347 dB, 62458 ms
      
      mobile_cal 720p 1000 kbps
      13335 b/f, 35.646 dB, 45655 ms
      
      as compared to 4 column tiles, speed 3:
      pedestrian_area 1080p 1500 kbps
      59329 b/f, 40.597 dB, 101917 ms
      
      blue_sky 1080p 1500 kbps
      58712 b/f, 36.320 dB, 62693 ms
      
      mobile_cal 720p 1000 kbps
      13191 b/f, 35.485 dB, 45319 ms
      
      Change-Id: I35c6e1e0a859fece8f4145dec28623cbc6a12325
      eee201c2
  4. 23 Oct, 2014 2 commits
    • Adrian Grange's avatar
      Move frame re-sizing into the recode loop · 65753eeb
      Adrian Grange authored
      The point at which frames are scaled to their
      coded dimensions is moved into the re-code loop.
      
      This is in preparation for a further patch that
      will add logic into the re-code loop to reduce
      the coded frame size if the encoder is struggling
      to hit the target data rate at the native frame
      size.
      
      Change-Id: Ie4131f5ec6fb93148879f6ce96123296442bf2d1
      65753eeb
    • Paul Wilkins's avatar
      Enable dual arf with constant q. · 8fc3ab77
      Paul Wilkins authored
      Add second level arf Q adjustment when using dual arfs
      in constant Q mode.
      
      Previously in constant Q mode enabling dual arf hurt by ~5%
      but with this change the average benefit is ~1-1.5% with some
      mid range data points up ~10%.
      
      Note however that it still hurts on some clips including
      some very low motion show content.
      
      Change-Id: I5b7789a2f42a6127d9e801cc010c20a7113bdd9b
      8fc3ab77
  5. 22 Oct, 2014 2 commits
    • Yunqing Wang's avatar
      vp9_ethread: allocate frame contexts outside VP9_COMMON struct · 7c7e4d4e
      Yunqing Wang authored
      This patch allocated frame contexts outside VP9_COMMON. This allows
      multiple threads to share the same copy of frame contexts, and
      reduces the overhead. It also guarantees the correct update of
      these contexts during bitstream packing. This patch doesn't change
      encoding result.
      
      Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353
      7c7e4d4e
    • Paul Wilkins's avatar
      Initialization bug for multi arf. · 7cd6330e
      Paul Wilkins authored
      Moved erroneous reset of cpi->multi_arf_last_grp_enabled.
      
      Change-Id: Ibb0b96f6ed1d5eeb575a3b1c798e0fe2ee651d06
      7cd6330e
  6. 20 Oct, 2014 1 commit
    • Paul Wilkins's avatar
      Extend --auto-alt-ref so it can enable multi-alt ref. · 6f0ae3a2
      Paul Wilkins authored
      Extend --auto-alt-ref from parameter so we can use it to
      turn multi-arf on and off from the command line.
      
      For now the range is 0-off, 1-on, 2-multi-arf on.
      
      Rename play_alternate to enable_auto_arf
      
      Change-Id: Id7b64407cfbe76ba0090a83b588a03e22a240386
      6f0ae3a2
  7. 16 Oct, 2014 3 commits
    • Minghai Shang's avatar
      [spatial svc]Another workaround to avoid using prev_mi · 68b550f5
      Minghai Shang authored
      We encode a empty invisible frame in front of the base layer frame to
      avoid using prev_mi. Since there's a restriction for reference frame
      scaling factor, we have to make it smaller and smaller gradually until
      its size is 16x16.
      
      Change remerged.
      
      Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449
      68b550f5
    • Paul Wilkins's avatar
      Revert "Move input frame scaling into the recode loop" · d5130af5
      Paul Wilkins authored
      This reverts commit 452dc215.
      
      This change has introduced a significant quality regression on content
      with forced key frames. (e.g. the YT and yt-hd set). It is most
      noticeable in static content where the kf bits dominate. Here, despite
      key frames being apparently coded at the same Q, there is a drop in all
      metrics of ~20% (e.g clXR and BFa0).
      
      Change-Id: Iba14cc61778c0846fa0a59c33c55a9fc49512cb4
      d5130af5
    • Paul Wilkins's avatar
      Revert "[spatial svc]Another workaround to avoid using prev_mi" · 46803296
      Paul Wilkins authored
      This reverts commit c113457a.
      
      Temporary revert to allow clean revert of another commit.
      
      Change-Id: Ia9b7b755e6c48e1b6e383329f121fef175a24b27
      46803296
  8. 14 Oct, 2014 3 commits
    • Minghai Shang's avatar
      [spatial svc]Another workaround to avoid using prev_mi · c113457a
      Minghai Shang authored
      We encode a empty invisible frame in front of the base layer frame to
      avoid using prev_mi. Since there's a restriction for reference frame
      scaling factor, we have to make it smaller and smaller gradually until
      its size is 16x16.
      Change-Id: I60b680314e33a60b4093cafc296465ee18169c19
      c113457a
    • Yunqing Wang's avatar
      Remove an unneeded function call · a614f228
      Yunqing Wang authored
      set_tile_limits() is called in vp9_change_config() already.
      
      Change-Id: I91c3a0df2c1c7fd7e71546d8f51fd5b65838a7da
      a614f228
    • Adrian Grange's avatar
      Move input frame scaling into the recode loop · 452dc215
      Adrian Grange authored
      Move the point at which input frames are scaled
      into the recode loop. This will allow us to change
      the coded frame size dynamically in response
      to previous attempts to encode the frame at a
      higher resolution.
      
      A following patch will implement a scheme for
      resizing the frame in the recode loop.
      
      Change-Id: I6a59c02d6ac1626512edad6de8b60063b79433e6
      452dc215
  9. 09 Oct, 2014 1 commit
  10. 07 Oct, 2014 1 commit
  11. 02 Oct, 2014 2 commits
  12. 01 Oct, 2014 1 commit
    • Deb Mukherjee's avatar
      High-bitdepth bugfixes · a160d725
      Deb Mukherjee authored
      Miscellaneous bug-fixes for high bitdepth functionality.
      With this patch, high bit-depth profiles become mostly functional,
      except for an intermittent assert failure issue that is being
      tracked.
      
      Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
      a160d725
  13. 30 Sep, 2014 1 commit
  14. 26 Sep, 2014 1 commit
    • Yunqing Wang's avatar
      Skip the partition search for still frames · 1fcbf6ed
      Yunqing Wang authored
      This patch re-enabled the feature in Pengchong's patch
      (commit 12861260). Originally, it
      was turned on while use_lastframe_partitioning > 0(not used anymore).
      Now it was added as a feature, and turned on while speed >= 2.
      As described in the original patch, this feature helps speed up the
      slideshows in YouTube.
      
      Change-Id: I1b0f18d65da1ee1c8d1e117dabba910c5207c471
      1fcbf6ed
  15. 24 Sep, 2014 3 commits
  16. 22 Sep, 2014 1 commit
    • Jingning Han's avatar
      Adaptive mode search scheduling · eee904c9
      Jingning Han authored
      This commit enables an adaptive mode search order scheduling scheme
      in the rate-distortion optimization. It changes the compression
      performance by -0.433% and -0.420% for derf and stdhd respectively.
      It provides speed improvement for speed 3:
      
      bus CIF 1000 kbps
      24590 b/f, 35.513 dB, 7864 ms ->
      24696 b/f, 35.491 dB, 7408 ms (6% speed-up)
      
      stockholm 720p 1000 kbps
      8983 b/f, 35.078 dB, 65698 ms ->
      8962 b/f, 35.054 dB, 60298 ms (8%)
      
      old_town_cross 720p 1000 kbps
      11804 b/f, 35.666 dB, 62492 ms ->
      11778 b/f, 35.609 dB, 56040 ms (10%)
      
      blue_sky 1080p 1500 kbps
      57173 b/f, 36.179 dB, 77879 ms ->
      57199 b/f, 36.131 dB, 69821 ms (10%)
      
      pedestrian_area 1080p 2000 kbps
      74241 b/f, 41.105 dB, 144031 ms ->
      74271 b/f, 41.091 dB, 133614 ms (8%)
      
      Change-Id: Iaad28cbc99399030fc5f9951eb5aa7fa633f320e
      eee904c9
  17. 20 Sep, 2014 1 commit
    • hkuang's avatar
      Remove mi_grid_* structures. · c70cea97
      hkuang authored
      mi_grid_* are arrays of pointer to pointer. They save the pointers that point
      to the MIs in cm->mi. But they are unnecessary and complicated. The original
      goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
      inside MODE_INFO_t, same goal could be achieved.
      
      This commit totally removes the mi_grid_* structures. But there are still
      many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
      will do on-demand MODE_INFO_t allocation in order to save these memories.
      
      Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
      c70cea97
  18. 19 Sep, 2014 1 commit
  19. 18 Sep, 2014 1 commit
  20. 16 Sep, 2014 1 commit
  21. 15 Sep, 2014 1 commit
    • Paul Wilkins's avatar
      Move call to vp9_rc_get_second_pass_params(). · cd95543e
      Paul Wilkins authored
      Call to vp9_rc_get_second_pass_params() moved from
      Pass2Encode() to earlier in vp9_get_compressed_data(),
      to ensure that two pass stats and parameters are
      available before decisions such as frame scaling.
      
      Change-Id: If21537f0073919b04696a7d5e9aac78e23d76f39
      cd95543e
  22. 12 Sep, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds high bitdepth transform functions and tests · 10783d4f
      Deb Mukherjee authored
      Adds various high bitdepth transform functions and tests.
      Much of the changes are related to using typedefs tran_low_t
      and tran_high_t for the final transform cofficients and intermediate
      stages of the transform computation respectively rather than fixed
      types int16_t/int. When vp9_highbitdepth configure flag is off,
      these map tp int16_t/int32_t, but when the flag is on, they map
      to int32_t/int64_t to make space for needed extra precision.
      
      Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
      10783d4f
  23. 11 Sep, 2014 1 commit
  24. 08 Sep, 2014 1 commit
    • Paul Wilkins's avatar
      Fix VS build issue. · f2405457
      Paul Wilkins authored
      Compile fails when CONFIG_INTERNAL_STATS
      flag is set.
      
      Change-Id: Iba7701c058169ca3fc0b9008619ac55a1fe1a8b6
      f2405457
  25. 03 Sep, 2014 1 commit
  26. 02 Sep, 2014 2 commits
    • Deb Mukherjee's avatar
      Adds config opt for highbitdepth + misc. vpx · 5acfafb1
      Deb Mukherjee authored
      Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
      Also includes most vpx level high bit-depth functions. However
      encode/decode in the highbitdepth profiles will not work until
      the rest of the code is in place.
      
      Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
      5acfafb1
    • Minghai Shang's avatar
      [svc] Temporal svc with two pass rate control · be3b08da
      Minghai Shang authored
      It's built based on current spatial svc code.
      We only support one spatial two temporal layers at this time.
      Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
      be3b08da
  27. 30 Aug, 2014 1 commit
  28. 26 Aug, 2014 1 commit
    • Yaowu Xu's avatar
      add a new interp filter search strategy. · 1144fee3
      Yaowu Xu authored
      This commit addes a new strategy to reduce the search for optimal
      interpolation filter type. The encoder counts and store how many each
      filter type is selected and used for each of the reference frames.
      A filter type that is rarely used for all three reference frames is
      masked out to avoid computation.
      
      The impact on compression is neglectible:
      -0.02% on derf
      +0.02% on stdhd
      
      Encoding time is seen to reduce by 2~3%.
      
      Change-Id: Ibafa92291b51185de40da513716222db4b230383
      1144fee3
  29. 25 Aug, 2014 1 commit
    • Minghai Shang's avatar
      [spatial svc]Multiple frame context feature · d4a407c0
      Minghai Shang authored
      We can use one frame context for each layer so that we don't have
      to reset the probs every frame. But we can't use prev_mi since we
      may drop enhancement layers. So we have to generate a non vp9
      compatible bitstream and modify it in the player.
      1. We need to code all frames as invisible frame to let prev_mi
         not to be used. But in the bitstream we need to code the
         show_frame flag to 1 so that the publisher will know it's
         supposed to be a visible frame.
      2. In the player we need to change the show_frame flag to 0 for
         all frames. Then add an one byte frame into the super frame
         to tell the decoder which layer we want to show.
      Change-Id: I75b7304cf31f0ab952f043e33c034495e88f01f3
      d4a407c0
  30. 22 Aug, 2014 1 commit