1. 03 Dec, 2014 1 commit
  2. 26 Nov, 2014 1 commit
  3. 25 Nov, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: modify VP9_COMP structure · edbd61e1
      Yunqing Wang authored
      This patch modified struct VP9_COMP. Created a struct ThreadData
      to include data that need to be copied for each thread. In
      multiple thread case, one thread processes one tile. all threads
      share one copy of VP9_COMP,
      (refer to VP9_COMP *cpi in the code)
      but each thread has its own copy of ThreadData,
      (refer to ThreadData *td in the code).
      Therefore, within the scope of encode_tiles(), both cpi and td
      need to be passed as function parameters.
      
      In single thread case, the FRAME_COUNTS pointer in ThreadData
      points to "counts" in VP9_COMMON.
      
      Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
      edbd61e1
  4. 21 Nov, 2014 1 commit
    • Paul Wilkins's avatar
      Further AQ1 clean up. · 3d1e8c9a
      Paul Wilkins authored
      Further patch to restructure AQ mode 1.
      
      Change-Id: I566452a033d047a49a40441a7be24690ea69412d
      3d1e8c9a
  5. 20 Nov, 2014 1 commit
  6. 15 Nov, 2014 2 commits
  7. 14 Nov, 2014 1 commit
  8. 13 Nov, 2014 1 commit
    • Adrian Grange's avatar
      Prepare for dynamic frame resizing in the recode loop · 0d085ebc
      Adrian Grange authored
      Prepare for the introduction of frame-size change
      logic into the recode loop.
      
      Separated the speed dependent features into
      separate static and dynamic parts, the latter being
      those features that are dependent on the frame size.
      
      Change-Id: Ia693e28c5cf069a1a7bf12e49ecf83e440e1d313
      0d085ebc
  9. 12 Nov, 2014 1 commit
  10. 06 Nov, 2014 2 commits
    • Yunqing Wang's avatar
      Modify the frame context memory deallocation · 12284334
      Yunqing Wang authored
      This patch was to fix the vpxdec fuzzing3 test failure. When an
      error occurs, setjmp() is invoked, which calls the decoder
      removing routine. In multiple thread situation, other threads
      could try to access the frame context memory that is already
      deallocated, thus causing a segfault.
      
      An invalid unit test was added for this issue.
      
      Change-Id: Ida7442154f3d89759483f0f4fe0324041fffb952
      12284334
    • hkuang's avatar
      Totally remove prev_mi in VP9 decoder. · 4cc7c5a1
      hkuang authored
      This will save the memory and improve the decode speed due to
      removing unnecessary memset of big prev_mi array for
      all the key frames.
      
      Decoding a all key frames 1080p video shows speed improve around 2%.
      
      Change-Id: I6284a445c1291056e3c15135c3c20d502f791c10
      4cc7c5a1
  11. 04 Nov, 2014 1 commit
  12. 03 Nov, 2014 1 commit
    • Marco's avatar
      Allow disable of refresh golden for more than 1 layer encoding. · d6b68837
      Marco authored
      The current logic was allowing for disabling golden refresh only
      for two pass svc encoding. This change disables it as long as
      more than 1 layer encoding is used (for example temporal layers under 1pass CBR).
      
      Change-Id: I4dc5204a7ad365c821ec7963e93b59da82e1826b
      d6b68837
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 09 Oct, 2014 1 commit
  21. 07 Oct, 2014 1 commit
  22. 02 Oct, 2014 2 commits
  23. 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
  24. 30 Sep, 2014 1 commit
  25. 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
  26. 24 Sep, 2014 3 commits
  27. 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
  28. 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
  29. 19 Sep, 2014 1 commit