1. 10 Aug, 2015 1 commit
  2. 07 Aug, 2015 1 commit
  3. 03 Aug, 2015 1 commit
    • Yaowu Xu's avatar
      Correct the allocation size for ssim_vars · 8f089cbd
      Yaowu Xu authored
      Ssim_vars is used to accumulate stats based 4x4 pixel blocks, this
      commit changes the allocations size to be based on mi_rows and mi_cols
      to avoid out-of-bound memory access for larger size videos. The hard
      coded 720x480 can only work for image size up to 2880x1920.
      
      Change-Id: Id9d07f3f777385b448ac88a6034b7472e4cf3c79
      8f089cbd
  4. 31 Jul, 2015 1 commit
    • Zoe Liu's avatar
      Code refactor on InterpKernel · 7186a2dd
      Zoe Liu authored
      It in essence refactors the code for both the interpolation
      filtering and the convolution. This change includes the moving
      of all the files as well as the changing of the code from vp9_
      prefix to vpx_ prefix accordingly, for underneath architectures:
      (1) x86;
      (2) arm/neon; and
      (3) mips/msa.
      The work on mips/drsp2 will be done in a separate change list.
      
      Change-Id: Ic3ce7fb7f81210db7628b373c73553db68793c46
      7186a2dd
  5. 28 Jul, 2015 1 commit
  6. 23 Jul, 2015 1 commit
  7. 20 Jul, 2015 1 commit
  8. 15 Jul, 2015 1 commit
    • Marco's avatar
      Fix to source scaling for dynamic_resize. · 7b756183
      Marco authored
      The fast scaling for 1 pass mode was being used only on the
      first frame after resizing event (because resize_scale_num/den
      is set to 1 and only changed for first frame following resize event).
      
      Change-Id: I723b63e21823eb858f25f5662d2bbe4f1842e61f
      7b756183
  9. 14 Jul, 2015 1 commit
    • Marco's avatar
      Fix to resize logic for 1 pass mode. · dc7da005
      Marco authored
      Proper use/update of resize_state and resize_pending to constrain
      the total amount of downsizing to be at most one scale down, for now.
      
      Change-Id: Id18fc32499f2fbdbec16728dcdc9e4eac09098f0
      dc7da005
  10. 10 Jul, 2015 1 commit
  11. 08 Jul, 2015 2 commits
  12. 07 Jul, 2015 2 commits
  13. 06 Jul, 2015 2 commits
    • James Zern's avatar
      remove vp9_get_interp_kernel() · 017253b7
      James Zern authored
      expose filter_kernels[] and do the table lookup directly
      
      Change-Id: I0b10bff0327c3e01a723736141a9ffd377cd3d20
      017253b7
    • 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
  14. 02 Jul, 2015 1 commit
  15. 29 Jun, 2015 1 commit
  16. 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
  17. 16 Jun, 2015 1 commit
    • Marco's avatar
      Remove duplicate calls for set_frame_size in 1 pass mode. · 8914ab69
      Marco authored
      set_frame_size() is being called twice, once before entering
      encode_encode_frame_to_data_rate(), and once again in that function.
      No need to call it twice for one-pass mode.
      
      Change-Id: I5fabaf0a90482d4f42cd89ef7ae1402c31aec600
      8914ab69
  18. 13 Jun, 2015 1 commit
  19. 09 Jun, 2015 1 commit
    • Paul Wilkins's avatar
      Enable more split modes for animated content. · 4a28da58
      Paul Wilkins authored
      For content that is identified as likely to contain some
      animation or graphics content, increase the availability
      of split modes for good quality speeds 1-3.
      
      On a problem test animation clip this improves metrics
      results by about 0.25 db and makes a noticeable difference
      visually. It also causes a small drop in file size (~0.5%) but
      a rise in encode time of about 5-6% at speed  2.
      
      For more normal content it should have no effect.
      
      Change-Id: Ic4cd9a8de065af9f9402f4477a17442aebf0e439
      4a28da58
  20. 03 Jun, 2015 1 commit
    • Johann's avatar
      Duplicate reference variance code · ce2ca9f7
      Johann authored
      Some places are using the unoptimized variance function. This was never
      intended and does not fit into the optimization framework.
      
      Change-Id: Id96238407aad03b0ffd4a46cd183555a026daedc
      ce2ca9f7
  21. 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
  22. 27 May, 2015 2 commits
  23. 26 May, 2015 2 commits
  24. 20 May, 2015 4 commits
    • Minghai Shang's avatar
      [svc] Disable tiles for spatial svc case · 9843e7c6
      Minghai Shang authored
      Change-Id: I8655a6760ab61947c09f337ddd9f4c1baf803a56
      9843e7c6
    • Minghai Shang's avatar
      [svc] Turn on frame_parallel_decoding_mode · e2c6a633
      Minghai Shang authored
      Change-Id: I33b0384ee87f83950e03be6c999bc5f193055fd3
      e2c6a633
    • paulwilkins's avatar
      Fast feedback of bits on undershoot. · 883fdd45
      paulwilkins authored
      This patch provides a partial rapid feedback of bits
      resulting from extreme undershoot.
      
      Some  improvement on some problem animated material
      but in its current form only a small impact on the metrics results
      of our standard test sets.
      
      Change-Id: Ie03036ea8123bc2553437cb8c8c9e7a9fc5dac5d
      883fdd45
    • paulwilkins's avatar
      Fix issues with mixed ARF and GF groups. · ade9693a
      paulwilkins authored
      This patch addresses two issues that can occur when the
      encoder chooses to use a mixture of ARF and GF groups.
      
      The first issue relates to a failure to reset the "ARF active" flag
      correctly when transitioning from coding ARF groups to coding
      GF groups. This caused some golden frames to be  encoded
      with an incorrect bit rate target as if they were ARF overlay frames.
      
      The second issue relates to the encoding of a single short GF group
      just before a key frame.  Where the last group before a key frame
      is an ARF group we expect the final frame before the key frame  to
      be an low data rate overlay frame. However, when the last  group
      is a GF group, the final frame before the key frame should be a normal
      frame with a normal bit allocation. This issue had the potential to cause
      a single poorly coded frame just before a key frame. If that key frame
      were a forced key frame rather than a real scene cut, this might cause
      pulsing.
      
      Change-Id: Idf1eb5eaf63a231495a74de7899236e1ead9fb00
      ade9693a
  25. 15 May, 2015 1 commit
  26. 14 May, 2015 1 commit
    • paulwilkins's avatar
      Revert "Skip the last frame update for some frame repeats." · eb8faf1c
      paulwilkins authored
      Testing on another rate control patch reveals that in some
      situations, where the encoder is flipping in and out of arf
      mode, we get an encoder decoder mismatch.
      
      Whilst it is still not clear why, skipping  the last buffer
      update seems to trigger the problem. Until I can establish
      why, or if there is another underlying cause, I am reverting
      this change.
      
      This reverts commit e5112b3a.
      
      Change-Id: I315c5200414de89458015823344b7367e9dd75ba
      eb8faf1c
  27. 13 May, 2015 1 commit
    • Johann's avatar
      Relocate memory operations for common code · 1d7ccd53
      Johann authored
      With the sad functions, and hopefully the variance functions soon,
      moving to the vpx_dsp location, place the defines used in the
      reference C code in a common location.
      
      Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
      1d7ccd53
  28. 12 May, 2015 1 commit
    • Yaowu Xu's avatar
      Protect new metric computation with use_highbitdepth flag · 3f42d108
      Yaowu Xu authored
      The computation of new metrics is not supported yet in highbitdepth
      mode. This commit adds protection to make sure the computation is
      done only when highbitdepth is not on. This protection shall be
      revised when support of highbitdpeth computation is added.
      
      This resolves the encoder crash when configured with both
      --enable-internal-stats
      --enable-vp9-highbitdepth
      
      Change-Id: Id9f4bcc4fa26d9ca0e9eabade83f3f88a5b212e6
      3f42d108
  29. 11 May, 2015 1 commit
  30. 08 May, 2015 1 commit
    • paulwilkins's avatar
      Skip the last frame update for some frame repeats. · e5112b3a
      paulwilkins authored
      Where a frame appears to be a repeat of an earlier
      frame or frame buffer,  but the first pass code
      does not anticipate this (usually because it is matching
      the GF or ARF buffer not the last frame buffer), do not
      update the last frame buffer.
      
      This helps ensure that the content of the last frame buffer
      is kept "different" where possible, and not updated to
      match the GF or ARF. This is particularly helpful in some
      animated sequences where there are groups of repeating
      frames. Here it has quite a big impact. However, in most
      of our standard test clips it has little or no impact.
      
      Change-Id: I77332ee1a69f9ffc0c6080bfeb811c43fd8828e6
      e5112b3a
  31. 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
  32. 29 Apr, 2015 1 commit
    • 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