1. 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
  2. 07 Jan, 2015 1 commit
  3. 17 Dec, 2014 1 commit
  4. 12 Dec, 2014 1 commit
  5. 06 Dec, 2014 1 commit
  6. 03 Dec, 2014 2 commits
    • Jingning Han's avatar
      Remove unused ONE_LOOP entry from speed feature · a8d8c0f6
      Jingning Han authored
      Change-Id: I56ead0ebc2491144c4e79e5859b05e126176702c
      a8d8c0f6
    • Jingning Han's avatar
      Rework coeff probability model update for rtc coding · 8fe50191
      Jingning Han authored
      This commit reworks the ONE_LOOP_REDUCED coefficient probability
      model update process. It allows model update for every coefficient
      across the spectrum at a coarser resolution, instead of performing
      precise update only for certain subset of probability models.
      
      The overall runtime remains nearly same (<1% change) for speed -6.
      The compression performance is improved by 7.5% in PSNR for speed
      -5 and 4.57% for speed -6, respectively.
      
      Change-Id: Ifb17136382ee7e39a9f34ff4a4f09a753125c8d1
      8fe50191
  7. 26 Nov, 2014 1 commit
  8. 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
  9. 20 Nov, 2014 1 commit
  10. 15 Nov, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: combine encoder counts in separate struct · d0b547c6
      Yunqing Wang authored
      Several frame counters in encoder are updated at SB level. Combine
      those counters and put them in a separate struct, which allows us
      to allocate one copy for each thread.
      
      Change-Id: I00366296a13c0ada4d8fa12f5e07728388b6cab7
      d0b547c6
  11. 14 Nov, 2014 1 commit
  12. 05 Nov, 2014 1 commit
  13. 28 Oct, 2014 1 commit
  14. 22 Oct, 2014 1 commit
    • 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
  15. 17 Oct, 2014 1 commit
    • Yunqing Wang's avatar
      Remove the dependency in token storing locations · 7c4992c4
      Yunqing Wang authored
      Currently, the tokens for a tile are stored immediately after its
      preceding tile, which causes a dependency. This is unnecessary
      since we always allocate enough memory for tokens. Removing
      the dependency allows token writing done in parallel. This patch
      doesn't change encoding result.
      
      Change-Id: I7365a6e5e2c2833eb14377c37e1503c9d0f26543
      7c4992c4
  16. 16 Oct, 2014 2 commits
  17. 14 Oct, 2014 1 commit
    • 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
  18. 07 Oct, 2014 1 commit
    • Jingning Han's avatar
      Take out repeated block width/height lookup functions · b66f7016
      Jingning Han authored
      The functions b_width_log2 and b_height_log2 only do direct
      table fetch. This commit unifies such use cases by using the
      table directly and removes these functions.
      
      Change-Id: I3103fc6ba959c1182886a2799d21b8b77c8a7b6b
      b66f7016
  19. 25 Sep, 2014 1 commit
  20. 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
  21. 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
  22. 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
  23. 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
  24. 22 Aug, 2014 1 commit
  25. 14 Aug, 2014 1 commit
    • Adrian Grange's avatar
      Fix bug 837: realloc mode info buffers on resize · 4e30565a
      Adrian Grange authored
      The test to determine if the mode info buffers need
      to be resized when the frame size changes was
      incorrect, as per bug 837.
      
      By storing the size of the allocated data structure,
      a simple test determines whether to allocate more
      memory when the frame size changes.
      
      Change-Id: I1544698f2882cf958fc672485614f2f46e9719bd
      4e30565a
  26. 08 Aug, 2014 1 commit
    • Dmitry Kovalev's avatar
      Moving pass from VP9_COMP to VP9EncoderConfig. · 91c2f1e4
      Dmitry Kovalev authored
      We had a very complicated way to initialize cpi->pass from
      cfg->g_pass:
      switch (cfg->g_pass) {
        case VPX_RC_ONE_PASS:
          oxcf->mode = ONE_PASS_GOOD;
          break;
        case VPX_RC_FIRST_PASS:
          oxcf->mode = TWO_PASS_FIRST;
          break;
        case VPX_RC_LAST_PASS:
          oxcf->mode = TWO_PASS_SECOND_BEST;
          break;
      }
      
      cpi->pass = get_pass(oxcf->mode).
      
      Now pass is moved to VP9EncoderConfig and initialization is simple:
      switch (cfg->g_pass) {
        case VPX_RC_ONE_PASS:
          oxcf->pass = 0;
          break;
        case VPX_RC_FIRST_PASS:
          oxcf->pass = 1;
          break;
        case VPX_RC_LAST_PASS:
          oxcf->pass = 2;
          break;
      }
      
      Change-Id: I8f582203a4575f5e39b071598484a8ad2b72e0d9
      91c2f1e4
  27. 07 Aug, 2014 2 commits
  28. 06 Aug, 2014 2 commits
  29. 05 Aug, 2014 2 commits
  30. 04 Aug, 2014 1 commit
  31. 22 Jul, 2014 1 commit
    • James Zern's avatar
      vp9_bitstream.c: cosmetics · de4db2dc
      James Zern authored
      fix indent, spelling and drop some vertical whitespace
      
      Change-Id: I722671381a374a24763b07a02805ab1d149ab3f4
      de4db2dc
  32. 21 Jul, 2014 1 commit
  33. 18 Jul, 2014 1 commit
  34. 26 Jun, 2014 1 commit
    • Paul Wilkins's avatar
      Fix quality regression for multi arf off case. · 1c27e1f1
      Paul Wilkins authored
      Bug introduced during multiple iterations on: I3831*
      
      gf_group->arf_update_idx[] cannot currently be used
      to select the arf buffer index if buffer flipping on overlays
      is enabled (still currently the case when multi arf OFF).
      
      Change-Id: I4ce9ea08f1dd03ac3ad8b3e27375a91ee1d964dc
      1c27e1f1